From dee8f2624e37dd65128a0f39921d5f08e38b2611 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=87=BD=E6=95=8F?= <359391169@qq.com> Date: Tue, 17 Aug 2021 13:51:55 +0800 Subject: [PATCH 01/56] =?UTF-8?q?=E5=AF=B9with=E8=AF=AD=E6=B3=95=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt index 0034c96..ea5d313 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt @@ -469,7 +469,7 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { statementData.limit = limit return StatementData(StatementType.SELECT, statementData) - } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text)) { + } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text) || StringUtils.equalsIgnoreCase("with", ctx.start.text) { super.visitQuery(ctx.query()) val tableContext = ctx.query().queryNoWith().getChild(0) @@ -588,4 +588,4 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { override fun shouldVisitNextChild(node: RuleNode?, currentResult: StatementData?): Boolean { return if(currentResult == null) true else false } -} \ No newline at end of file +} From 7f0471cdaa8f4ee1d67ea63d2a89f894cd91accf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=87=BD=E6=95=8F?= <359391169@qq.com> Date: Tue, 17 Aug 2021 14:27:19 +0800 Subject: [PATCH 02/56] fix bug --- .../github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt index ea5d313..cec1675 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt @@ -469,7 +469,7 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { statementData.limit = limit return StatementData(StatementType.SELECT, statementData) - } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text) || StringUtils.equalsIgnoreCase("with", ctx.start.text) { + } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text) || StringUtils.equalsIgnoreCase("with", ctx.start.text)) { super.visitQuery(ctx.query()) val tableContext = ctx.query().queryNoWith().getChild(0) From df6d5b03a591146eedb9abeb82f75a7d19a80c91 Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Tue, 17 Aug 2021 14:45:24 +0800 Subject: [PATCH 03/56] kotlin version --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a824ddb..cda7e7b 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 2.1.0-SNAPSHOT - 1.2.51 + 1.3.72 4.7 @@ -183,4 +183,4 @@ https://repository.cloudera.com/content/repositories/releases/ - \ No newline at end of file + From ec8a61df697e79ceac0cd18e828b71ea6ea7ca00 Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 13:59:16 +0800 Subject: [PATCH 04/56] =?UTF-8?q?=E6=94=AF=E6=8C=81Presto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- pom.xml | 22 +- .../bigdata/sql/antlr4/presto/PrestoSql.g4 | 891 + src/main/java/PrestoSql.tokens | 465 + src/main/java/PrestoSqlLexer.tokens | 464 + .../antlr4/presto/PrestoSqlBaseListener.java | 2511 +++ .../antlr4/presto/PrestoSqlBaseVisitor.java | 1456 ++ .../sql/antlr4/presto/PrestoSqlLexer.java | 1059 ++ .../sql/antlr4/presto/PrestoSqlListener.java | 2372 +++ .../sql/antlr4/presto/PrestoSqlParser.java | 14787 ++++++++++++++++ .../sql/antlr4/presto/PrestoSqlVisitor.java | 1400 ++ .../sql/parser/presto/PrestoSQLHelper.kt | 84 + .../sql/parser/presto/PrestoSqlParserTest.kt | 26 + 13 files changed, 25526 insertions(+), 13 deletions(-) create mode 100644 src/main/antlr4/com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 create mode 100644 src/main/java/PrestoSql.tokens create mode 100644 src/main/java/PrestoSqlLexer.tokens create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlVisitor.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt create mode 100644 src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt diff --git a/README.md b/README.md index 46cc753..27b0cd5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ### 介绍 -基于antlr4 statement 解析器,支持spark sql, tidb sql, flink sql, Spark/flink jar 运行命令解析 +基于antlr4 statement 数据血缘解析器,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令解析 ##### build diff --git a/pom.xml b/pom.xml index cda7e7b..2e8272d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.bigdata.sql.parser bigdata-sql-parser - 2.1.0-SNAPSHOT + 1.0.0 1.3.72 @@ -31,12 +31,19 @@ commons-collections 3.2.2 + commons-configuration commons-configuration 1.10 + + com.facebook.presto + presto-parser + 0.259.1 + + junit junit @@ -48,22 +55,13 @@ org.slf4j slf4j-api 1.7.24 + provided org.slf4j log4j-over-slf4j 1.7.24 - - - - ch.qos.logback - logback-core - 1.2.1 - - - ch.qos.logback - logback-classic - 1.2.1 + provided diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 new file mode 100644 index 0000000..6c6af4e --- /dev/null +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 @@ -0,0 +1,891 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +grammar PrestoSql; + +tokens { + DELIMITER +} + +singleStatement + : statement EOF + ; + +standaloneExpression + : expression EOF + ; + +standaloneRoutineBody + : routineBody EOF + ; + +statement + : query #statementDefault + | USE schema=identifier #use + | USE catalog=identifier '.' schema=identifier #use + | CREATE SCHEMA (IF NOT EXISTS)? qualifiedName + (WITH properties)? #createSchema + | DROP SCHEMA (IF EXISTS)? qualifiedName (CASCADE | RESTRICT)? #dropSchema + | ALTER SCHEMA qualifiedName RENAME TO identifier #renameSchema + | CREATE TABLE (IF NOT EXISTS)? qualifiedName columnAliases? + (COMMENT string)? + (WITH properties)? AS (query | '('query')') + (WITH (NO)? DATA)? #createTableAsSelect + | CREATE TABLE (IF NOT EXISTS)? qualifiedName + '(' tableElement (',' tableElement)* ')' + (COMMENT string)? + (WITH properties)? #createTable + | DROP TABLE (IF EXISTS)? qualifiedName #dropTable + | INSERT INTO qualifiedName columnAliases? query #insertInto + | DELETE FROM qualifiedName (WHERE booleanExpression)? #delete + | ALTER TABLE (IF EXISTS)? from=qualifiedName + RENAME TO to=qualifiedName #renameTable + | ALTER TABLE (IF EXISTS)? tableName=qualifiedName + RENAME COLUMN (IF EXISTS)? from=identifier TO to=identifier #renameColumn + | ALTER TABLE (IF EXISTS)? tableName=qualifiedName + DROP COLUMN (IF EXISTS)? column=qualifiedName #dropColumn + | ALTER TABLE (IF EXISTS)? tableName=qualifiedName + ADD COLUMN (IF NOT EXISTS)? column=columnDefinition #addColumn + | ANALYZE qualifiedName (WITH properties)? #analyze + | CREATE TYPE qualifiedName AS ( + '(' sqlParameterDeclaration (',' sqlParameterDeclaration)* ')' + | type) #createType + | CREATE (OR REPLACE)? VIEW qualifiedName + (SECURITY (DEFINER | INVOKER))? AS query #createView + | DROP VIEW (IF EXISTS)? qualifiedName #dropView + | CREATE MATERIALIZED VIEW (IF NOT EXISTS)? qualifiedName + (COMMENT string)? + (WITH properties)? AS (query | '('query')') #createMaterializedView + | DROP MATERIALIZED VIEW (IF EXISTS)? qualifiedName #dropMaterializedView + | REFRESH MATERIALIZED VIEW qualifiedName WHERE booleanExpression #refreshMaterializedView + | CREATE (OR REPLACE)? TEMPORARY? FUNCTION functionName=qualifiedName + '(' (sqlParameterDeclaration (',' sqlParameterDeclaration)*)? ')' + RETURNS returnType=type + (COMMENT string)? + routineCharacteristics routineBody #createFunction + | ALTER FUNCTION qualifiedName types? + alterRoutineCharacteristics #alterFunction + | DROP TEMPORARY? FUNCTION (IF EXISTS)? qualifiedName types? #dropFunction + | CALL qualifiedName '(' (callArgument (',' callArgument)*)? ')' #call + | CREATE ROLE name=identifier + (WITH ADMIN grantor)? #createRole + | DROP ROLE name=identifier #dropRole + | GRANT + roles + TO principal (',' principal)* + (WITH ADMIN OPTION)? + (GRANTED BY grantor)? #grantRoles + | REVOKE + (ADMIN OPTION FOR)? + roles + FROM principal (',' principal)* + (GRANTED BY grantor)? #revokeRoles + | SET ROLE (ALL | NONE | role=identifier) #setRole + | GRANT + (privilege (',' privilege)* | ALL PRIVILEGES) + ON TABLE? qualifiedName TO grantee=principal + (WITH GRANT OPTION)? #grant + | REVOKE + (GRANT OPTION FOR)? + (privilege (',' privilege)* | ALL PRIVILEGES) + ON TABLE? qualifiedName FROM grantee=principal #revoke + | SHOW GRANTS + (ON TABLE? qualifiedName)? #showGrants + | EXPLAIN ANALYZE? VERBOSE? + ('(' explainOption (',' explainOption)* ')')? statement #explain + | SHOW CREATE TABLE qualifiedName #showCreateTable + | SHOW CREATE VIEW qualifiedName #showCreateView + | SHOW CREATE MATERIALIZED VIEW qualifiedName #showCreateMaterializedView + | SHOW CREATE FUNCTION qualifiedName types? #showCreateFunction + | SHOW TABLES ((FROM | IN) qualifiedName)? + (LIKE pattern=string (ESCAPE escape=string)?)? #showTables + | SHOW SCHEMAS ((FROM | IN) identifier)? + (LIKE pattern=string (ESCAPE escape=string)?)? #showSchemas + | SHOW CATALOGS (LIKE pattern=string)? #showCatalogs + | SHOW COLUMNS (FROM | IN) qualifiedName #showColumns + | SHOW STATS FOR qualifiedName #showStats + | SHOW STATS FOR '(' querySpecification ')' #showStatsForQuery + | SHOW CURRENT? ROLES ((FROM | IN) identifier)? #showRoles + | SHOW ROLE GRANTS ((FROM | IN) identifier)? #showRoleGrants + | DESCRIBE qualifiedName #showColumns + | DESC qualifiedName #showColumns + | SHOW FUNCTIONS + (LIKE pattern=string (ESCAPE escape=string)?)? #showFunctions + | SHOW SESSION #showSession + | SET SESSION qualifiedName EQ expression #setSession + | RESET SESSION qualifiedName #resetSession + | START TRANSACTION (transactionMode (',' transactionMode)*)? #startTransaction + | COMMIT WORK? #commit + | ROLLBACK WORK? #rollback + | PREPARE identifier FROM statement #prepare + | DEALLOCATE PREPARE identifier #deallocate + | EXECUTE identifier (USING expression (',' expression)*)? #execute + | DESCRIBE INPUT identifier #describeInput + | DESCRIBE OUTPUT identifier #describeOutput + ; + +query + : with? queryNoWith + ; + +with + : WITH RECURSIVE? namedQuery (',' namedQuery)* + ; + +tableElement + : columnDefinition + | likeClause + ; + +columnDefinition + : identifier type (NOT NULL)? (COMMENT string)? (WITH properties)? + ; + +likeClause + : LIKE qualifiedName (optionType=(INCLUDING | EXCLUDING) PROPERTIES)? + ; + +properties + : '(' property (',' property)* ')' + ; + +property + : identifier EQ expression + ; + +sqlParameterDeclaration + : identifier type + ; + +routineCharacteristics + : routineCharacteristic* + ; + +routineCharacteristic + : LANGUAGE language + | determinism + | nullCallClause + ; + +alterRoutineCharacteristics + : alterRoutineCharacteristic* + ; + +alterRoutineCharacteristic + : nullCallClause + ; + +routineBody + : returnStatement + | externalBodyReference + ; + +returnStatement + : RETURN expression + ; + +externalBodyReference + : EXTERNAL (NAME externalRoutineName)? + ; + +language + : SQL + | identifier + ; + +determinism + : DETERMINISTIC + | NOT DETERMINISTIC; + +nullCallClause + : RETURNS NULL ON NULL INPUT + | CALLED ON NULL INPUT + ; + +externalRoutineName + : identifier + ; + +queryNoWith: + queryTerm + (ORDER BY sortItem (',' sortItem)*)? + (OFFSET offset=INTEGER_VALUE (ROW | ROWS)?)? + (LIMIT limit=(INTEGER_VALUE | ALL))? + ; + +queryTerm + : queryPrimary #queryTermDefault + | left=queryTerm operator=INTERSECT setQuantifier? right=queryTerm #setOperation + | left=queryTerm operator=(UNION | EXCEPT) setQuantifier? right=queryTerm #setOperation + ; + +queryPrimary + : querySpecification #queryPrimaryDefault + | TABLE qualifiedName #table + | VALUES expression (',' expression)* #inlineTable + | '(' queryNoWith ')' #subquery + ; + +sortItem + : expression ordering=(ASC | DESC)? (NULLS nullOrdering=(FIRST | LAST))? + ; + +querySpecification + : SELECT setQuantifier? selectItem (',' selectItem)* + (FROM relation (',' relation)*)? + (WHERE where=booleanExpression)? + (GROUP BY groupBy)? + (HAVING having=booleanExpression)? + ; + +groupBy + : setQuantifier? groupingElement (',' groupingElement)* + ; + +groupingElement + : groupingSet #singleGroupingSet + | ROLLUP '(' (expression (',' expression)*)? ')' #rollup + | CUBE '(' (expression (',' expression)*)? ')' #cube + | GROUPING SETS '(' groupingSet (',' groupingSet)* ')' #multipleGroupingSets + ; + +groupingSet + : '(' (expression (',' expression)*)? ')' + | expression + ; + +namedQuery + : name=identifier (columnAliases)? AS '(' query ')' + ; + +setQuantifier + : DISTINCT + | ALL + ; + +selectItem + : expression (AS? identifier)? #selectSingle + | qualifiedName '.' ASTERISK #selectAll + | ASTERISK #selectAll + ; + +relation + : left=relation + ( CROSS JOIN right=sampledRelation + | joinType JOIN rightRelation=relation joinCriteria + | NATURAL joinType JOIN right=sampledRelation + ) #joinRelation + | sampledRelation #relationDefault + ; + +joinType + : INNER? + | LEFT OUTER? + | RIGHT OUTER? + | FULL OUTER? + ; + +joinCriteria + : ON booleanExpression + | USING '(' identifier (',' identifier)* ')' + ; + +sampledRelation + : aliasedRelation ( + TABLESAMPLE sampleType '(' percentage=expression ')' + )? + ; + +sampleType + : BERNOULLI + | SYSTEM + ; + +aliasedRelation + : relationPrimary (AS? identifier columnAliases?)? + ; + +columnAliases + : '(' identifier (',' identifier)* ')' + ; + +relationPrimary + : qualifiedName #tableName + | '(' query ')' #subqueryRelation + | UNNEST '(' expression (',' expression)* ')' (WITH ORDINALITY)? #unnest + | LATERAL '(' query ')' #lateral + | '(' relation ')' #parenthesizedRelation + ; + +expression + : booleanExpression + ; + +booleanExpression + : valueExpression predicate[$valueExpression.ctx]? #predicated + | NOT booleanExpression #logicalNot + | left=booleanExpression operator=AND right=booleanExpression #logicalBinary + | left=booleanExpression operator=OR right=booleanExpression #logicalBinary + ; + +// workaround for https://github.com/antlr/antlr4/issues/780 +predicate[ParserRuleContext value] + : comparisonOperator right=valueExpression #comparison + | comparisonOperator comparisonQuantifier '(' query ')' #quantifiedComparison + | NOT? BETWEEN lower=valueExpression AND upper=valueExpression #between + | NOT? IN '(' expression (',' expression)* ')' #inList + | NOT? IN '(' query ')' #inSubquery + | NOT? LIKE pattern=valueExpression (ESCAPE escape=valueExpression)? #like + | IS NOT? NULL #nullPredicate + | IS NOT? DISTINCT FROM right=valueExpression #distinctFrom + ; + +valueExpression + : primaryExpression #valueExpressionDefault + | valueExpression AT timeZoneSpecifier #atTimeZone + | operator=(MINUS | PLUS) valueExpression #arithmeticUnary + | left=valueExpression operator=(ASTERISK | SLASH | PERCENT) right=valueExpression #arithmeticBinary + | left=valueExpression operator=(PLUS | MINUS) right=valueExpression #arithmeticBinary + | left=valueExpression CONCAT right=valueExpression #concatenation + ; + +primaryExpression + : NULL #nullLiteral + | interval #intervalLiteral + | identifier string #typeConstructor + | DOUBLE_PRECISION string #typeConstructor + | number #numericLiteral + | booleanValue #booleanLiteral + | string #stringLiteral + | BINARY_LITERAL #binaryLiteral + | '?' #parameter + | POSITION '(' valueExpression IN valueExpression ')' #position + | '(' expression (',' expression)+ ')' #rowConstructor + | ROW '(' expression (',' expression)* ')' #rowConstructor + | qualifiedName '(' ASTERISK ')' filter? over? #functionCall + | qualifiedName '(' (setQuantifier? expression (',' expression)*)? + (ORDER BY sortItem (',' sortItem)*)? ')' filter? (nullTreatment? over)? #functionCall + | identifier '->' expression #lambda + | '(' (identifier (',' identifier)*)? ')' '->' expression #lambda + | '(' query ')' #subqueryExpression + // This is an extension to ANSI SQL, which considers EXISTS to be a + | EXISTS '(' query ')' #exists + | CASE valueExpression whenClause+ (ELSE elseExpression=expression)? END #simpleCase + | CASE whenClause+ (ELSE elseExpression=expression)? END #searchedCase + | CAST '(' expression AS type ')' #cast + | TRY_CAST '(' expression AS type ')' #cast + | ARRAY '[' (expression (',' expression)*)? ']' #arrayConstructor + | value=primaryExpression '[' index=valueExpression ']' #subscript + | identifier #columnReference + | base=primaryExpression '.' fieldName=identifier #dereference + | name=CURRENT_DATE #specialDateTimeFunction + | name=CURRENT_TIME ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction + | name=CURRENT_TIMESTAMP ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction + | name=LOCALTIME ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction + | name=LOCALTIMESTAMP ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction + | name=CURRENT_USER #currentUser + | SUBSTRING '(' valueExpression FROM valueExpression (FOR valueExpression)? ')' #substring + | NORMALIZE '(' valueExpression (',' normalForm)? ')' #normalize + | EXTRACT '(' identifier FROM valueExpression ')' #extract + | '(' expression ')' #parenthesizedExpression + | GROUPING '(' (qualifiedName (',' qualifiedName)*)? ')' #groupingOperation + ; + +string + : STRING #basicStringLiteral + | UNICODE_STRING (UESCAPE STRING)? #unicodeStringLiteral + ; + +nullTreatment + : IGNORE NULLS + | RESPECT NULLS + ; + +timeZoneSpecifier + : TIME ZONE interval #timeZoneInterval + | TIME ZONE string #timeZoneString + ; + +comparisonOperator + : EQ | NEQ | LT | LTE | GT | GTE + ; + +comparisonQuantifier + : ALL | SOME | ANY + ; + +booleanValue + : TRUE | FALSE + ; + +interval + : INTERVAL sign=(PLUS | MINUS)? string from=intervalField (TO to=intervalField)? + ; + +intervalField + : YEAR | MONTH | DAY | HOUR | MINUTE | SECOND + ; + +normalForm + : NFD | NFC | NFKD | NFKC + ; + +types + : '(' (type (',' type)*)? ')' + ; + +type + : type ARRAY + | ARRAY '<' type '>' + | MAP '<' type ',' type '>' + | ROW '(' identifier type (',' identifier type)* ')' + | baseType ('(' typeParameter (',' typeParameter)* ')')? + | INTERVAL from=intervalField TO to=intervalField + ; + +typeParameter + : INTEGER_VALUE | type + ; + +baseType + : TIME_WITH_TIME_ZONE + | TIMESTAMP_WITH_TIME_ZONE + | DOUBLE_PRECISION + | qualifiedName + ; + +whenClause + : WHEN condition=expression THEN result=expression + ; + +filter + : FILTER '(' WHERE booleanExpression ')' + ; + +over + : OVER '(' + (PARTITION BY partition+=expression (',' partition+=expression)*)? + (ORDER BY sortItem (',' sortItem)*)? + windowFrame? + ')' + ; + +windowFrame + : frameType=RANGE start=frameBound + | frameType=ROWS start=frameBound + | frameType=RANGE BETWEEN start=frameBound AND end=frameBound + | frameType=ROWS BETWEEN start=frameBound AND end=frameBound + ; + +frameBound + : UNBOUNDED boundType=PRECEDING #unboundedFrame + | UNBOUNDED boundType=FOLLOWING #unboundedFrame + | CURRENT ROW #currentRowBound + | expression boundType=(PRECEDING | FOLLOWING) #boundedFrame // expression should be unsignedLiteral + ; + + +explainOption + : FORMAT value=(TEXT | GRAPHVIZ | JSON) #explainFormat + | TYPE value=(LOGICAL | DISTRIBUTED | VALIDATE | IO) #explainType + ; + +transactionMode + : ISOLATION LEVEL levelOfIsolation #isolationLevel + | READ accessMode=(ONLY | WRITE) #transactionAccessMode + ; + +levelOfIsolation + : READ UNCOMMITTED #readUncommitted + | READ COMMITTED #readCommitted + | REPEATABLE READ #repeatableRead + | SERIALIZABLE #serializable + ; + +callArgument + : expression #positionalArgument + | identifier '=>' expression #namedArgument + ; + +privilege + : SELECT | DELETE | INSERT | identifier + ; + +qualifiedName + : identifier ('.' identifier)* + ; + +grantor + : CURRENT_USER #currentUserGrantor + | CURRENT_ROLE #currentRoleGrantor + | principal #specifiedPrincipal + ; + +principal + : USER identifier #userPrincipal + | ROLE identifier #rolePrincipal + | identifier #unspecifiedPrincipal + ; + +roles + : identifier (',' identifier)* + ; + +identifier + : IDENTIFIER #unquotedIdentifier + | QUOTED_IDENTIFIER #quotedIdentifier + | nonReserved #unquotedIdentifier + | BACKQUOTED_IDENTIFIER #backQuotedIdentifier + | DIGIT_IDENTIFIER #digitIdentifier + ; + +number + : DECIMAL_VALUE #decimalLiteral + | DOUBLE_VALUE #doubleLiteral + | INTEGER_VALUE #integerLiteral + ; + +nonReserved + // IMPORTANT: this rule must only contain tokens. Nested rules are not supported. See SqlParser.exitNonReserved + : ADD | ADMIN | ALL | ANALYZE | ANY | ARRAY | ASC | AT + | BERNOULLI + | CALL | CALLED | CASCADE | CATALOGS | COLUMN | COLUMNS | COMMENT | COMMIT | COMMITTED | CURRENT | CURRENT_ROLE + | DATA | DATE | DAY | DEFINER | DESC | DETERMINISTIC | DISTRIBUTED + | EXCLUDING | EXPLAIN | EXTERNAL + | FILTER | FIRST | FOLLOWING | FORMAT | FUNCTION | FUNCTIONS + | GRANT | GRANTED | GRANTS | GRAPHVIZ + | HOUR + | IF | IGNORE | INCLUDING | INPUT | INTERVAL | INVOKER | IO | ISOLATION + | JSON + | LANGUAGE | LAST | LATERAL | LEVEL | LIMIT | LOGICAL + | MAP | MATERIALIZED | MINUTE | MONTH + | NAME | NFC | NFD | NFKC | NFKD | NO | NONE | NULLIF | NULLS + | OFFSET | ONLY | OPTION | ORDINALITY | OUTPUT | OVER + | PARTITION | PARTITIONS | POSITION | PRECEDING | PRIVILEGES | PROPERTIES + | RANGE | READ | REFRESH | RENAME | REPEATABLE | REPLACE | RESET | RESPECT | RESTRICT | RETURN | RETURNS | REVOKE | ROLE | ROLES | ROLLBACK | ROW | ROWS + | SCHEMA | SCHEMAS | SECOND | SECURITY | SERIALIZABLE | SESSION | SET | SETS | SQL + | SHOW | SOME | START | STATS | SUBSTRING | SYSTEM + | TABLES | TABLESAMPLE | TEMPORARY | TEXT | TIME | TIMESTAMP | TO | TRANSACTION | TRY_CAST | TYPE + | UNBOUNDED | UNCOMMITTED | USE | USER + | VALIDATE | VERBOSE | VIEW + | WORK | WRITE + | YEAR + | ZONE + ; + +ADD: 'ADD'; +ADMIN: 'ADMIN'; +ALL: 'ALL'; +ALTER: 'ALTER'; +ANALYZE: 'ANALYZE'; +AND: 'AND'; +ANY: 'ANY'; +ARRAY: 'ARRAY'; +AS: 'AS'; +ASC: 'ASC'; +AT: 'AT'; +BERNOULLI: 'BERNOULLI'; +BETWEEN: 'BETWEEN'; +BY: 'BY'; +CALL: 'CALL'; +CALLED: 'CALLED'; +CASCADE: 'CASCADE'; +CASE: 'CASE'; +CAST: 'CAST'; +CATALOGS: 'CATALOGS'; +COLUMN: 'COLUMN'; +COLUMNS: 'COLUMNS'; +COMMENT: 'COMMENT'; +COMMIT: 'COMMIT'; +COMMITTED: 'COMMITTED'; +CONSTRAINT: 'CONSTRAINT'; +CREATE: 'CREATE'; +CROSS: 'CROSS'; +CUBE: 'CUBE'; +CURRENT: 'CURRENT'; +CURRENT_DATE: 'CURRENT_DATE'; +CURRENT_ROLE: 'CURRENT_ROLE'; +CURRENT_TIME: 'CURRENT_TIME'; +CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'; +CURRENT_USER: 'CURRENT_USER'; +DATA: 'DATA'; +DATE: 'DATE'; +DAY: 'DAY'; +DEALLOCATE: 'DEALLOCATE'; +DEFINER: 'DEFINER'; +DELETE: 'DELETE'; +DESC: 'DESC'; +DESCRIBE: 'DESCRIBE'; +DETERMINISTIC: 'DETERMINISTIC'; +DISTINCT: 'DISTINCT'; +DISTRIBUTED: 'DISTRIBUTED'; +DROP: 'DROP'; +ELSE: 'ELSE'; +END: 'END'; +ESCAPE: 'ESCAPE'; +EXCEPT: 'EXCEPT'; +EXCLUDING: 'EXCLUDING'; +EXECUTE: 'EXECUTE'; +EXISTS: 'EXISTS'; +EXPLAIN: 'EXPLAIN'; +EXTRACT: 'EXTRACT'; +EXTERNAL: 'EXTERNAL'; +FALSE: 'FALSE'; +FILTER: 'FILTER'; +FIRST: 'FIRST'; +FOLLOWING: 'FOLLOWING'; +FOR: 'FOR'; +FORMAT: 'FORMAT'; +FROM: 'FROM'; +FULL: 'FULL'; +FUNCTION: 'FUNCTION'; +FUNCTIONS: 'FUNCTIONS'; +GRANT: 'GRANT'; +GRANTED: 'GRANTED'; +GRANTS: 'GRANTS'; +GRAPHVIZ: 'GRAPHVIZ'; +GROUP: 'GROUP'; +GROUPING: 'GROUPING'; +HAVING: 'HAVING'; +HOUR: 'HOUR'; +IF: 'IF'; +IGNORE: 'IGNORE'; +IN: 'IN'; +INCLUDING: 'INCLUDING'; +INNER: 'INNER'; +INPUT: 'INPUT'; +INSERT: 'INSERT'; +INTERSECT: 'INTERSECT'; +INTERVAL: 'INTERVAL'; +INTO: 'INTO'; +INVOKER: 'INVOKER'; +IO: 'IO'; +IS: 'IS'; +ISOLATION: 'ISOLATION'; +JSON: 'JSON'; +JOIN: 'JOIN'; +LANGUAGE: 'LANGUAGE'; +LAST: 'LAST'; +LATERAL: 'LATERAL'; +LEFT: 'LEFT'; +LEVEL: 'LEVEL'; +LIKE: 'LIKE'; +LIMIT: 'LIMIT'; +LOCALTIME: 'LOCALTIME'; +LOCALTIMESTAMP: 'LOCALTIMESTAMP'; +LOGICAL: 'LOGICAL'; +MAP: 'MAP'; +MATERIALIZED: 'MATERIALIZED'; +MINUTE: 'MINUTE'; +MONTH: 'MONTH'; +NAME: 'NAME'; +NATURAL: 'NATURAL'; +NFC : 'NFC'; +NFD : 'NFD'; +NFKC : 'NFKC'; +NFKD : 'NFKD'; +NO: 'NO'; +NONE: 'NONE'; +NORMALIZE: 'NORMALIZE'; +NOT: 'NOT'; +NULL: 'NULL'; +NULLIF: 'NULLIF'; +NULLS: 'NULLS'; +OFFSET: 'OFFSET'; +ON: 'ON'; +ONLY: 'ONLY'; +OPTION: 'OPTION'; +OR: 'OR'; +ORDER: 'ORDER'; +ORDINALITY: 'ORDINALITY'; +OUTER: 'OUTER'; +OUTPUT: 'OUTPUT'; +OVER: 'OVER'; +PARTITION: 'PARTITION'; +PARTITIONS: 'PARTITIONS'; +POSITION: 'POSITION'; +PRECEDING: 'PRECEDING'; +PREPARE: 'PREPARE'; +PRIVILEGES: 'PRIVILEGES'; +PROPERTIES: 'PROPERTIES'; +RANGE: 'RANGE'; +READ: 'READ'; +RECURSIVE: 'RECURSIVE'; +REFRESH: 'REFRESH'; +RENAME: 'RENAME'; +REPEATABLE: 'REPEATABLE'; +REPLACE: 'REPLACE'; +RESET: 'RESET'; +RESPECT: 'RESPECT'; +RESTRICT: 'RESTRICT'; +RETURN: 'RETURN'; +RETURNS: 'RETURNS'; +REVOKE: 'REVOKE'; +RIGHT: 'RIGHT'; +ROLE: 'ROLE'; +ROLES: 'ROLES'; +ROLLBACK: 'ROLLBACK'; +ROLLUP: 'ROLLUP'; +ROW: 'ROW'; +ROWS: 'ROWS'; +SCHEMA: 'SCHEMA'; +SCHEMAS: 'SCHEMAS'; +SECOND: 'SECOND'; +SECURITY: 'SECURITY'; +SELECT: 'SELECT'; +SERIALIZABLE: 'SERIALIZABLE'; +SESSION: 'SESSION'; +SET: 'SET'; +SETS: 'SETS'; +SHOW: 'SHOW'; +SOME: 'SOME'; +SQL: 'SQL'; +START: 'START'; +STATS: 'STATS'; +SUBSTRING: 'SUBSTRING'; +SYSTEM: 'SYSTEM'; +TABLE: 'TABLE'; +TABLES: 'TABLES'; +TABLESAMPLE: 'TABLESAMPLE'; +TEMPORARY: 'TEMPORARY'; +TEXT: 'TEXT'; +THEN: 'THEN'; +TIME: 'TIME'; +TIMESTAMP: 'TIMESTAMP'; +TO: 'TO'; +TRANSACTION: 'TRANSACTION'; +TRUE: 'TRUE'; +TRY_CAST: 'TRY_CAST'; +TYPE: 'TYPE'; +UESCAPE: 'UESCAPE'; +UNBOUNDED: 'UNBOUNDED'; +UNCOMMITTED: 'UNCOMMITTED'; +UNION: 'UNION'; +UNNEST: 'UNNEST'; +USE: 'USE'; +USER: 'USER'; +USING: 'USING'; +VALIDATE: 'VALIDATE'; +VALUES: 'VALUES'; +VERBOSE: 'VERBOSE'; +VIEW: 'VIEW'; +WHEN: 'WHEN'; +WHERE: 'WHERE'; +WITH: 'WITH'; +WORK: 'WORK'; +WRITE: 'WRITE'; +YEAR: 'YEAR'; +ZONE: 'ZONE'; + +EQ : '='; +NEQ : '<>' | '!='; +LT : '<'; +LTE : '<='; +GT : '>'; +GTE : '>='; + +PLUS: '+'; +MINUS: '-'; +ASTERISK: '*'; +SLASH: '/'; +PERCENT: '%'; +CONCAT: '||'; + +STRING + : '\'' ( ~'\'' | '\'\'' )* '\'' + ; + +UNICODE_STRING + : 'U&\'' ( ~'\'' | '\'\'' )* '\'' + ; + +// Note: we allow any character inside the binary literal and validate +// its a correct literal when the AST is being constructed. This +// allows us to provide more meaningful error messages to the user +BINARY_LITERAL + : 'X\'' (~'\'')* '\'' + ; + +INTEGER_VALUE + : DIGIT+ + ; + +DECIMAL_VALUE + : DIGIT+ '.' DIGIT* + | '.' DIGIT+ + ; + +DOUBLE_VALUE + : DIGIT+ ('.' DIGIT*)? EXPONENT + | '.' DIGIT+ EXPONENT + ; + +IDENTIFIER + : (LETTER | '_') (LETTER | DIGIT | '_' | '@' | ':')* + ; + +DIGIT_IDENTIFIER + : DIGIT (LETTER | DIGIT | '_' | '@' | ':')+ + ; + +QUOTED_IDENTIFIER + : '"' ( ~'"' | '""' )* '"' + ; + +BACKQUOTED_IDENTIFIER + : '`' ( ~'`' | '``' )* '`' + ; + +TIME_WITH_TIME_ZONE + : 'TIME' WS 'WITH' WS 'TIME' WS 'ZONE' + ; + +TIMESTAMP_WITH_TIME_ZONE + : 'TIMESTAMP' WS 'WITH' WS 'TIME' WS 'ZONE' + ; + +DOUBLE_PRECISION + : 'DOUBLE' WS 'PRECISION' + ; + +fragment EXPONENT + : 'E' [+-]? DIGIT+ + ; + +fragment DIGIT + : [0-9] + ; + +fragment LETTER + : [A-Z] + ; + +SIMPLE_COMMENT + : '--' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN) + ; + +BRACKETED_COMMENT + : '/*' .*? '*/' -> channel(HIDDEN) + ; + +WS + : [ \r\n\t]+ -> channel(HIDDEN) + ; + +// Catch-all for anything we can't recognize. +// We use this to be able to ignore and recover all the text +// when splitting statements with DelimiterLexer +UNRECOGNIZED + : . + ; diff --git a/src/main/java/PrestoSql.tokens b/src/main/java/PrestoSql.tokens new file mode 100644 index 0000000..d83d3e4 --- /dev/null +++ b/src/main/java/PrestoSql.tokens @@ -0,0 +1,465 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +ADD=10 +ADMIN=11 +ALL=12 +ALTER=13 +ANALYZE=14 +AND=15 +ANY=16 +ARRAY=17 +AS=18 +ASC=19 +AT=20 +BERNOULLI=21 +BETWEEN=22 +BY=23 +CALL=24 +CALLED=25 +CASCADE=26 +CASE=27 +CAST=28 +CATALOGS=29 +COLUMN=30 +COLUMNS=31 +COMMENT=32 +COMMIT=33 +COMMITTED=34 +CONSTRAINT=35 +CREATE=36 +CROSS=37 +CUBE=38 +CURRENT=39 +CURRENT_DATE=40 +CURRENT_ROLE=41 +CURRENT_TIME=42 +CURRENT_TIMESTAMP=43 +CURRENT_USER=44 +DATA=45 +DATE=46 +DAY=47 +DEALLOCATE=48 +DEFINER=49 +DELETE=50 +DESC=51 +DESCRIBE=52 +DETERMINISTIC=53 +DISTINCT=54 +DISTRIBUTED=55 +DROP=56 +ELSE=57 +END=58 +ESCAPE=59 +EXCEPT=60 +EXCLUDING=61 +EXECUTE=62 +EXISTS=63 +EXPLAIN=64 +EXTRACT=65 +EXTERNAL=66 +FALSE=67 +FILTER=68 +FIRST=69 +FOLLOWING=70 +FOR=71 +FORMAT=72 +FROM=73 +FULL=74 +FUNCTION=75 +FUNCTIONS=76 +GRANT=77 +GRANTED=78 +GRANTS=79 +GRAPHVIZ=80 +GROUP=81 +GROUPING=82 +HAVING=83 +HOUR=84 +IF=85 +IGNORE=86 +IN=87 +INCLUDING=88 +INNER=89 +INPUT=90 +INSERT=91 +INTERSECT=92 +INTERVAL=93 +INTO=94 +INVOKER=95 +IO=96 +IS=97 +ISOLATION=98 +JSON=99 +JOIN=100 +LANGUAGE=101 +LAST=102 +LATERAL=103 +LEFT=104 +LEVEL=105 +LIKE=106 +LIMIT=107 +LOCALTIME=108 +LOCALTIMESTAMP=109 +LOGICAL=110 +MAP=111 +MATERIALIZED=112 +MINUTE=113 +MONTH=114 +NAME=115 +NATURAL=116 +NFC=117 +NFD=118 +NFKC=119 +NFKD=120 +NO=121 +NONE=122 +NORMALIZE=123 +NOT=124 +NULL=125 +NULLIF=126 +NULLS=127 +OFFSET=128 +ON=129 +ONLY=130 +OPTION=131 +OR=132 +ORDER=133 +ORDINALITY=134 +OUTER=135 +OUTPUT=136 +OVER=137 +PARTITION=138 +PARTITIONS=139 +POSITION=140 +PRECEDING=141 +PREPARE=142 +PRIVILEGES=143 +PROPERTIES=144 +RANGE=145 +READ=146 +RECURSIVE=147 +REFRESH=148 +RENAME=149 +REPEATABLE=150 +REPLACE=151 +RESET=152 +RESPECT=153 +RESTRICT=154 +RETURN=155 +RETURNS=156 +REVOKE=157 +RIGHT=158 +ROLE=159 +ROLES=160 +ROLLBACK=161 +ROLLUP=162 +ROW=163 +ROWS=164 +SCHEMA=165 +SCHEMAS=166 +SECOND=167 +SECURITY=168 +SELECT=169 +SERIALIZABLE=170 +SESSION=171 +SET=172 +SETS=173 +SHOW=174 +SOME=175 +SQL=176 +START=177 +STATS=178 +SUBSTRING=179 +SYSTEM=180 +TABLE=181 +TABLES=182 +TABLESAMPLE=183 +TEMPORARY=184 +TEXT=185 +THEN=186 +TIME=187 +TIMESTAMP=188 +TO=189 +TRANSACTION=190 +TRUE=191 +TRY_CAST=192 +TYPE=193 +UESCAPE=194 +UNBOUNDED=195 +UNCOMMITTED=196 +UNION=197 +UNNEST=198 +USE=199 +USER=200 +USING=201 +VALIDATE=202 +VALUES=203 +VERBOSE=204 +VIEW=205 +WHEN=206 +WHERE=207 +WITH=208 +WORK=209 +WRITE=210 +YEAR=211 +ZONE=212 +EQ=213 +NEQ=214 +LT=215 +LTE=216 +GT=217 +GTE=218 +PLUS=219 +MINUS=220 +ASTERISK=221 +SLASH=222 +PERCENT=223 +CONCAT=224 +STRING=225 +UNICODE_STRING=226 +BINARY_LITERAL=227 +INTEGER_VALUE=228 +DECIMAL_VALUE=229 +DOUBLE_VALUE=230 +IDENTIFIER=231 +DIGIT_IDENTIFIER=232 +QUOTED_IDENTIFIER=233 +BACKQUOTED_IDENTIFIER=234 +TIME_WITH_TIME_ZONE=235 +TIMESTAMP_WITH_TIME_ZONE=236 +DOUBLE_PRECISION=237 +SIMPLE_COMMENT=238 +BRACKETED_COMMENT=239 +WS=240 +UNRECOGNIZED=241 +DELIMITER=242 +'.'=1 +'('=2 +')'=3 +','=4 +'?'=5 +'->'=6 +'['=7 +']'=8 +'=>'=9 +'ADD'=10 +'ADMIN'=11 +'ALL'=12 +'ALTER'=13 +'ANALYZE'=14 +'AND'=15 +'ANY'=16 +'ARRAY'=17 +'AS'=18 +'ASC'=19 +'AT'=20 +'BERNOULLI'=21 +'BETWEEN'=22 +'BY'=23 +'CALL'=24 +'CALLED'=25 +'CASCADE'=26 +'CASE'=27 +'CAST'=28 +'CATALOGS'=29 +'COLUMN'=30 +'COLUMNS'=31 +'COMMENT'=32 +'COMMIT'=33 +'COMMITTED'=34 +'CONSTRAINT'=35 +'CREATE'=36 +'CROSS'=37 +'CUBE'=38 +'CURRENT'=39 +'CURRENT_DATE'=40 +'CURRENT_ROLE'=41 +'CURRENT_TIME'=42 +'CURRENT_TIMESTAMP'=43 +'CURRENT_USER'=44 +'DATA'=45 +'DATE'=46 +'DAY'=47 +'DEALLOCATE'=48 +'DEFINER'=49 +'DELETE'=50 +'DESC'=51 +'DESCRIBE'=52 +'DETERMINISTIC'=53 +'DISTINCT'=54 +'DISTRIBUTED'=55 +'DROP'=56 +'ELSE'=57 +'END'=58 +'ESCAPE'=59 +'EXCEPT'=60 +'EXCLUDING'=61 +'EXECUTE'=62 +'EXISTS'=63 +'EXPLAIN'=64 +'EXTRACT'=65 +'EXTERNAL'=66 +'FALSE'=67 +'FILTER'=68 +'FIRST'=69 +'FOLLOWING'=70 +'FOR'=71 +'FORMAT'=72 +'FROM'=73 +'FULL'=74 +'FUNCTION'=75 +'FUNCTIONS'=76 +'GRANT'=77 +'GRANTED'=78 +'GRANTS'=79 +'GRAPHVIZ'=80 +'GROUP'=81 +'GROUPING'=82 +'HAVING'=83 +'HOUR'=84 +'IF'=85 +'IGNORE'=86 +'IN'=87 +'INCLUDING'=88 +'INNER'=89 +'INPUT'=90 +'INSERT'=91 +'INTERSECT'=92 +'INTERVAL'=93 +'INTO'=94 +'INVOKER'=95 +'IO'=96 +'IS'=97 +'ISOLATION'=98 +'JSON'=99 +'JOIN'=100 +'LANGUAGE'=101 +'LAST'=102 +'LATERAL'=103 +'LEFT'=104 +'LEVEL'=105 +'LIKE'=106 +'LIMIT'=107 +'LOCALTIME'=108 +'LOCALTIMESTAMP'=109 +'LOGICAL'=110 +'MAP'=111 +'MATERIALIZED'=112 +'MINUTE'=113 +'MONTH'=114 +'NAME'=115 +'NATURAL'=116 +'NFC'=117 +'NFD'=118 +'NFKC'=119 +'NFKD'=120 +'NO'=121 +'NONE'=122 +'NORMALIZE'=123 +'NOT'=124 +'NULL'=125 +'NULLIF'=126 +'NULLS'=127 +'OFFSET'=128 +'ON'=129 +'ONLY'=130 +'OPTION'=131 +'OR'=132 +'ORDER'=133 +'ORDINALITY'=134 +'OUTER'=135 +'OUTPUT'=136 +'OVER'=137 +'PARTITION'=138 +'PARTITIONS'=139 +'POSITION'=140 +'PRECEDING'=141 +'PREPARE'=142 +'PRIVILEGES'=143 +'PROPERTIES'=144 +'RANGE'=145 +'READ'=146 +'RECURSIVE'=147 +'REFRESH'=148 +'RENAME'=149 +'REPEATABLE'=150 +'REPLACE'=151 +'RESET'=152 +'RESPECT'=153 +'RESTRICT'=154 +'RETURN'=155 +'RETURNS'=156 +'REVOKE'=157 +'RIGHT'=158 +'ROLE'=159 +'ROLES'=160 +'ROLLBACK'=161 +'ROLLUP'=162 +'ROW'=163 +'ROWS'=164 +'SCHEMA'=165 +'SCHEMAS'=166 +'SECOND'=167 +'SECURITY'=168 +'SELECT'=169 +'SERIALIZABLE'=170 +'SESSION'=171 +'SET'=172 +'SETS'=173 +'SHOW'=174 +'SOME'=175 +'SQL'=176 +'START'=177 +'STATS'=178 +'SUBSTRING'=179 +'SYSTEM'=180 +'TABLE'=181 +'TABLES'=182 +'TABLESAMPLE'=183 +'TEMPORARY'=184 +'TEXT'=185 +'THEN'=186 +'TIME'=187 +'TIMESTAMP'=188 +'TO'=189 +'TRANSACTION'=190 +'TRUE'=191 +'TRY_CAST'=192 +'TYPE'=193 +'UESCAPE'=194 +'UNBOUNDED'=195 +'UNCOMMITTED'=196 +'UNION'=197 +'UNNEST'=198 +'USE'=199 +'USER'=200 +'USING'=201 +'VALIDATE'=202 +'VALUES'=203 +'VERBOSE'=204 +'VIEW'=205 +'WHEN'=206 +'WHERE'=207 +'WITH'=208 +'WORK'=209 +'WRITE'=210 +'YEAR'=211 +'ZONE'=212 +'='=213 +'<'=215 +'<='=216 +'>'=217 +'>='=218 +'+'=219 +'-'=220 +'*'=221 +'/'=222 +'%'=223 +'||'=224 diff --git a/src/main/java/PrestoSqlLexer.tokens b/src/main/java/PrestoSqlLexer.tokens new file mode 100644 index 0000000..afe2d9c --- /dev/null +++ b/src/main/java/PrestoSqlLexer.tokens @@ -0,0 +1,464 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +ADD=10 +ADMIN=11 +ALL=12 +ALTER=13 +ANALYZE=14 +AND=15 +ANY=16 +ARRAY=17 +AS=18 +ASC=19 +AT=20 +BERNOULLI=21 +BETWEEN=22 +BY=23 +CALL=24 +CALLED=25 +CASCADE=26 +CASE=27 +CAST=28 +CATALOGS=29 +COLUMN=30 +COLUMNS=31 +COMMENT=32 +COMMIT=33 +COMMITTED=34 +CONSTRAINT=35 +CREATE=36 +CROSS=37 +CUBE=38 +CURRENT=39 +CURRENT_DATE=40 +CURRENT_ROLE=41 +CURRENT_TIME=42 +CURRENT_TIMESTAMP=43 +CURRENT_USER=44 +DATA=45 +DATE=46 +DAY=47 +DEALLOCATE=48 +DEFINER=49 +DELETE=50 +DESC=51 +DESCRIBE=52 +DETERMINISTIC=53 +DISTINCT=54 +DISTRIBUTED=55 +DROP=56 +ELSE=57 +END=58 +ESCAPE=59 +EXCEPT=60 +EXCLUDING=61 +EXECUTE=62 +EXISTS=63 +EXPLAIN=64 +EXTRACT=65 +EXTERNAL=66 +FALSE=67 +FILTER=68 +FIRST=69 +FOLLOWING=70 +FOR=71 +FORMAT=72 +FROM=73 +FULL=74 +FUNCTION=75 +FUNCTIONS=76 +GRANT=77 +GRANTED=78 +GRANTS=79 +GRAPHVIZ=80 +GROUP=81 +GROUPING=82 +HAVING=83 +HOUR=84 +IF=85 +IGNORE=86 +IN=87 +INCLUDING=88 +INNER=89 +INPUT=90 +INSERT=91 +INTERSECT=92 +INTERVAL=93 +INTO=94 +INVOKER=95 +IO=96 +IS=97 +ISOLATION=98 +JSON=99 +JOIN=100 +LANGUAGE=101 +LAST=102 +LATERAL=103 +LEFT=104 +LEVEL=105 +LIKE=106 +LIMIT=107 +LOCALTIME=108 +LOCALTIMESTAMP=109 +LOGICAL=110 +MAP=111 +MATERIALIZED=112 +MINUTE=113 +MONTH=114 +NAME=115 +NATURAL=116 +NFC=117 +NFD=118 +NFKC=119 +NFKD=120 +NO=121 +NONE=122 +NORMALIZE=123 +NOT=124 +NULL=125 +NULLIF=126 +NULLS=127 +OFFSET=128 +ON=129 +ONLY=130 +OPTION=131 +OR=132 +ORDER=133 +ORDINALITY=134 +OUTER=135 +OUTPUT=136 +OVER=137 +PARTITION=138 +PARTITIONS=139 +POSITION=140 +PRECEDING=141 +PREPARE=142 +PRIVILEGES=143 +PROPERTIES=144 +RANGE=145 +READ=146 +RECURSIVE=147 +REFRESH=148 +RENAME=149 +REPEATABLE=150 +REPLACE=151 +RESET=152 +RESPECT=153 +RESTRICT=154 +RETURN=155 +RETURNS=156 +REVOKE=157 +RIGHT=158 +ROLE=159 +ROLES=160 +ROLLBACK=161 +ROLLUP=162 +ROW=163 +ROWS=164 +SCHEMA=165 +SCHEMAS=166 +SECOND=167 +SECURITY=168 +SELECT=169 +SERIALIZABLE=170 +SESSION=171 +SET=172 +SETS=173 +SHOW=174 +SOME=175 +SQL=176 +START=177 +STATS=178 +SUBSTRING=179 +SYSTEM=180 +TABLE=181 +TABLES=182 +TABLESAMPLE=183 +TEMPORARY=184 +TEXT=185 +THEN=186 +TIME=187 +TIMESTAMP=188 +TO=189 +TRANSACTION=190 +TRUE=191 +TRY_CAST=192 +TYPE=193 +UESCAPE=194 +UNBOUNDED=195 +UNCOMMITTED=196 +UNION=197 +UNNEST=198 +USE=199 +USER=200 +USING=201 +VALIDATE=202 +VALUES=203 +VERBOSE=204 +VIEW=205 +WHEN=206 +WHERE=207 +WITH=208 +WORK=209 +WRITE=210 +YEAR=211 +ZONE=212 +EQ=213 +NEQ=214 +LT=215 +LTE=216 +GT=217 +GTE=218 +PLUS=219 +MINUS=220 +ASTERISK=221 +SLASH=222 +PERCENT=223 +CONCAT=224 +STRING=225 +UNICODE_STRING=226 +BINARY_LITERAL=227 +INTEGER_VALUE=228 +DECIMAL_VALUE=229 +DOUBLE_VALUE=230 +IDENTIFIER=231 +DIGIT_IDENTIFIER=232 +QUOTED_IDENTIFIER=233 +BACKQUOTED_IDENTIFIER=234 +TIME_WITH_TIME_ZONE=235 +TIMESTAMP_WITH_TIME_ZONE=236 +DOUBLE_PRECISION=237 +SIMPLE_COMMENT=238 +BRACKETED_COMMENT=239 +WS=240 +UNRECOGNIZED=241 +'.'=1 +'('=2 +')'=3 +','=4 +'?'=5 +'->'=6 +'['=7 +']'=8 +'=>'=9 +'ADD'=10 +'ADMIN'=11 +'ALL'=12 +'ALTER'=13 +'ANALYZE'=14 +'AND'=15 +'ANY'=16 +'ARRAY'=17 +'AS'=18 +'ASC'=19 +'AT'=20 +'BERNOULLI'=21 +'BETWEEN'=22 +'BY'=23 +'CALL'=24 +'CALLED'=25 +'CASCADE'=26 +'CASE'=27 +'CAST'=28 +'CATALOGS'=29 +'COLUMN'=30 +'COLUMNS'=31 +'COMMENT'=32 +'COMMIT'=33 +'COMMITTED'=34 +'CONSTRAINT'=35 +'CREATE'=36 +'CROSS'=37 +'CUBE'=38 +'CURRENT'=39 +'CURRENT_DATE'=40 +'CURRENT_ROLE'=41 +'CURRENT_TIME'=42 +'CURRENT_TIMESTAMP'=43 +'CURRENT_USER'=44 +'DATA'=45 +'DATE'=46 +'DAY'=47 +'DEALLOCATE'=48 +'DEFINER'=49 +'DELETE'=50 +'DESC'=51 +'DESCRIBE'=52 +'DETERMINISTIC'=53 +'DISTINCT'=54 +'DISTRIBUTED'=55 +'DROP'=56 +'ELSE'=57 +'END'=58 +'ESCAPE'=59 +'EXCEPT'=60 +'EXCLUDING'=61 +'EXECUTE'=62 +'EXISTS'=63 +'EXPLAIN'=64 +'EXTRACT'=65 +'EXTERNAL'=66 +'FALSE'=67 +'FILTER'=68 +'FIRST'=69 +'FOLLOWING'=70 +'FOR'=71 +'FORMAT'=72 +'FROM'=73 +'FULL'=74 +'FUNCTION'=75 +'FUNCTIONS'=76 +'GRANT'=77 +'GRANTED'=78 +'GRANTS'=79 +'GRAPHVIZ'=80 +'GROUP'=81 +'GROUPING'=82 +'HAVING'=83 +'HOUR'=84 +'IF'=85 +'IGNORE'=86 +'IN'=87 +'INCLUDING'=88 +'INNER'=89 +'INPUT'=90 +'INSERT'=91 +'INTERSECT'=92 +'INTERVAL'=93 +'INTO'=94 +'INVOKER'=95 +'IO'=96 +'IS'=97 +'ISOLATION'=98 +'JSON'=99 +'JOIN'=100 +'LANGUAGE'=101 +'LAST'=102 +'LATERAL'=103 +'LEFT'=104 +'LEVEL'=105 +'LIKE'=106 +'LIMIT'=107 +'LOCALTIME'=108 +'LOCALTIMESTAMP'=109 +'LOGICAL'=110 +'MAP'=111 +'MATERIALIZED'=112 +'MINUTE'=113 +'MONTH'=114 +'NAME'=115 +'NATURAL'=116 +'NFC'=117 +'NFD'=118 +'NFKC'=119 +'NFKD'=120 +'NO'=121 +'NONE'=122 +'NORMALIZE'=123 +'NOT'=124 +'NULL'=125 +'NULLIF'=126 +'NULLS'=127 +'OFFSET'=128 +'ON'=129 +'ONLY'=130 +'OPTION'=131 +'OR'=132 +'ORDER'=133 +'ORDINALITY'=134 +'OUTER'=135 +'OUTPUT'=136 +'OVER'=137 +'PARTITION'=138 +'PARTITIONS'=139 +'POSITION'=140 +'PRECEDING'=141 +'PREPARE'=142 +'PRIVILEGES'=143 +'PROPERTIES'=144 +'RANGE'=145 +'READ'=146 +'RECURSIVE'=147 +'REFRESH'=148 +'RENAME'=149 +'REPEATABLE'=150 +'REPLACE'=151 +'RESET'=152 +'RESPECT'=153 +'RESTRICT'=154 +'RETURN'=155 +'RETURNS'=156 +'REVOKE'=157 +'RIGHT'=158 +'ROLE'=159 +'ROLES'=160 +'ROLLBACK'=161 +'ROLLUP'=162 +'ROW'=163 +'ROWS'=164 +'SCHEMA'=165 +'SCHEMAS'=166 +'SECOND'=167 +'SECURITY'=168 +'SELECT'=169 +'SERIALIZABLE'=170 +'SESSION'=171 +'SET'=172 +'SETS'=173 +'SHOW'=174 +'SOME'=175 +'SQL'=176 +'START'=177 +'STATS'=178 +'SUBSTRING'=179 +'SYSTEM'=180 +'TABLE'=181 +'TABLES'=182 +'TABLESAMPLE'=183 +'TEMPORARY'=184 +'TEXT'=185 +'THEN'=186 +'TIME'=187 +'TIMESTAMP'=188 +'TO'=189 +'TRANSACTION'=190 +'TRUE'=191 +'TRY_CAST'=192 +'TYPE'=193 +'UESCAPE'=194 +'UNBOUNDED'=195 +'UNCOMMITTED'=196 +'UNION'=197 +'UNNEST'=198 +'USE'=199 +'USER'=200 +'USING'=201 +'VALIDATE'=202 +'VALUES'=203 +'VERBOSE'=204 +'VIEW'=205 +'WHEN'=206 +'WHERE'=207 +'WITH'=208 +'WORK'=209 +'WRITE'=210 +'YEAR'=211 +'ZONE'=212 +'='=213 +'<'=215 +'<='=216 +'>'=217 +'>='=218 +'+'=219 +'-'=220 +'*'=221 +'/'=222 +'%'=223 +'||'=224 diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java new file mode 100644 index 0000000..c20e106 --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java @@ -0,0 +1,2511 @@ +// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.presto; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link PrestoSqlListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class PrestoSqlBaseListener implements PrestoSqlListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSingleStatement(PrestoSqlParser.SingleStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSingleStatement(PrestoSqlParser.SingleStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementDefault(PrestoSqlParser.StatementDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUse(PrestoSqlParser.UseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUse(PrestoSqlParser.UseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateSchema(PrestoSqlParser.CreateSchemaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropSchema(PrestoSqlParser.DropSchemaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropSchema(PrestoSqlParser.DropSchemaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRenameSchema(PrestoSqlParser.RenameSchemaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateTable(PrestoSqlParser.CreateTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateTable(PrestoSqlParser.CreateTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropTable(PrestoSqlParser.DropTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropTable(PrestoSqlParser.DropTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertInto(PrestoSqlParser.InsertIntoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertInto(PrestoSqlParser.InsertIntoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDelete(PrestoSqlParser.DeleteContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDelete(PrestoSqlParser.DeleteContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRenameTable(PrestoSqlParser.RenameTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRenameTable(PrestoSqlParser.RenameTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRenameColumn(PrestoSqlParser.RenameColumnContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRenameColumn(PrestoSqlParser.RenameColumnContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropColumn(PrestoSqlParser.DropColumnContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropColumn(PrestoSqlParser.DropColumnContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAddColumn(PrestoSqlParser.AddColumnContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAddColumn(PrestoSqlParser.AddColumnContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnalyze(PrestoSqlParser.AnalyzeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnalyze(PrestoSqlParser.AnalyzeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateType(PrestoSqlParser.CreateTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateType(PrestoSqlParser.CreateTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateView(PrestoSqlParser.CreateViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateView(PrestoSqlParser.CreateViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropView(PrestoSqlParser.DropViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropView(PrestoSqlParser.DropViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateFunction(PrestoSqlParser.CreateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlterFunction(PrestoSqlParser.AlterFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropFunction(PrestoSqlParser.DropFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropFunction(PrestoSqlParser.DropFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCall(PrestoSqlParser.CallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCall(PrestoSqlParser.CallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateRole(PrestoSqlParser.CreateRoleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateRole(PrestoSqlParser.CreateRoleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropRole(PrestoSqlParser.DropRoleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropRole(PrestoSqlParser.DropRoleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGrantRoles(PrestoSqlParser.GrantRolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGrantRoles(PrestoSqlParser.GrantRolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetRole(PrestoSqlParser.SetRoleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetRole(PrestoSqlParser.SetRoleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGrant(PrestoSqlParser.GrantContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGrant(PrestoSqlParser.GrantContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRevoke(PrestoSqlParser.RevokeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRevoke(PrestoSqlParser.RevokeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowGrants(PrestoSqlParser.ShowGrantsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowGrants(PrestoSqlParser.ShowGrantsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplain(PrestoSqlParser.ExplainContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplain(PrestoSqlParser.ExplainContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowTables(PrestoSqlParser.ShowTablesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowTables(PrestoSqlParser.ShowTablesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowSchemas(PrestoSqlParser.ShowSchemasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowColumns(PrestoSqlParser.ShowColumnsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowColumns(PrestoSqlParser.ShowColumnsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowStats(PrestoSqlParser.ShowStatsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowStats(PrestoSqlParser.ShowStatsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowRoles(PrestoSqlParser.ShowRolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowRoles(PrestoSqlParser.ShowRolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShowSession(PrestoSqlParser.ShowSessionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShowSession(PrestoSqlParser.ShowSessionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetSession(PrestoSqlParser.SetSessionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetSession(PrestoSqlParser.SetSessionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResetSession(PrestoSqlParser.ResetSessionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResetSession(PrestoSqlParser.ResetSessionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStartTransaction(PrestoSqlParser.StartTransactionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStartTransaction(PrestoSqlParser.StartTransactionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCommit(PrestoSqlParser.CommitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCommit(PrestoSqlParser.CommitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRollback(PrestoSqlParser.RollbackContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRollback(PrestoSqlParser.RollbackContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrepare(PrestoSqlParser.PrepareContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrepare(PrestoSqlParser.PrepareContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeallocate(PrestoSqlParser.DeallocateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeallocate(PrestoSqlParser.DeallocateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExecute(PrestoSqlParser.ExecuteContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExecute(PrestoSqlParser.ExecuteContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDescribeInput(PrestoSqlParser.DescribeInputContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDescribeInput(PrestoSqlParser.DescribeInputContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuery(PrestoSqlParser.QueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuery(PrestoSqlParser.QueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWith(PrestoSqlParser.WithContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWith(PrestoSqlParser.WithContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTableElement(PrestoSqlParser.TableElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTableElement(PrestoSqlParser.TableElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLikeClause(PrestoSqlParser.LikeClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLikeClause(PrestoSqlParser.LikeClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProperties(PrestoSqlParser.PropertiesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProperties(PrestoSqlParser.PropertiesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProperty(PrestoSqlParser.PropertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProperty(PrestoSqlParser.PropertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoutineBody(PrestoSqlParser.RoutineBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnStatement(PrestoSqlParser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLanguage(PrestoSqlParser.LanguageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLanguage(PrestoSqlParser.LanguageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeterminism(PrestoSqlParser.DeterminismContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeterminism(PrestoSqlParser.DeterminismContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullCallClause(PrestoSqlParser.NullCallClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetOperation(PrestoSqlParser.SetOperationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetOperation(PrestoSqlParser.SetOperationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTable(PrestoSqlParser.TableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTable(PrestoSqlParser.TableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInlineTable(PrestoSqlParser.InlineTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInlineTable(PrestoSqlParser.InlineTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubquery(PrestoSqlParser.SubqueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubquery(PrestoSqlParser.SubqueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSortItem(PrestoSqlParser.SortItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSortItem(PrestoSqlParser.SortItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroupBy(PrestoSqlParser.GroupByContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroupBy(PrestoSqlParser.GroupByContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRollup(PrestoSqlParser.RollupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRollup(PrestoSqlParser.RollupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCube(PrestoSqlParser.CubeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCube(PrestoSqlParser.CubeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroupingSet(PrestoSqlParser.GroupingSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroupingSet(PrestoSqlParser.GroupingSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamedQuery(PrestoSqlParser.NamedQueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamedQuery(PrestoSqlParser.NamedQueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectSingle(PrestoSqlParser.SelectSingleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectSingle(PrestoSqlParser.SelectSingleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectAll(PrestoSqlParser.SelectAllContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectAll(PrestoSqlParser.SelectAllContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelationDefault(PrestoSqlParser.RelationDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJoinRelation(PrestoSqlParser.JoinRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJoinRelation(PrestoSqlParser.JoinRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJoinType(PrestoSqlParser.JoinTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJoinType(PrestoSqlParser.JoinTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSampledRelation(PrestoSqlParser.SampledRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSampledRelation(PrestoSqlParser.SampledRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSampleType(PrestoSqlParser.SampleTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSampleType(PrestoSqlParser.SampleTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTableName(PrestoSqlParser.TableNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTableName(PrestoSqlParser.TableNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnnest(PrestoSqlParser.UnnestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnnest(PrestoSqlParser.UnnestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLateral(PrestoSqlParser.LateralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLateral(PrestoSqlParser.LateralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression(PrestoSqlParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(PrestoSqlParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLogicalNot(PrestoSqlParser.LogicalNotContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLogicalNot(PrestoSqlParser.LogicalNotContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredicated(PrestoSqlParser.PredicatedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredicated(PrestoSqlParser.PredicatedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparison(PrestoSqlParser.ComparisonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparison(PrestoSqlParser.ComparisonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBetween(PrestoSqlParser.BetweenContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBetween(PrestoSqlParser.BetweenContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInList(PrestoSqlParser.InListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInList(PrestoSqlParser.InListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInSubquery(PrestoSqlParser.InSubqueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInSubquery(PrestoSqlParser.InSubqueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLike(PrestoSqlParser.LikeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLike(PrestoSqlParser.LikeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullPredicate(PrestoSqlParser.NullPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullPredicate(PrestoSqlParser.NullPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDistinctFrom(PrestoSqlParser.DistinctFromContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConcatenation(PrestoSqlParser.ConcatenationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConcatenation(PrestoSqlParser.ConcatenationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDereference(PrestoSqlParser.DereferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDereference(PrestoSqlParser.DereferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubstring(PrestoSqlParser.SubstringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubstring(PrestoSqlParser.SubstringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCast(PrestoSqlParser.CastContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCast(PrestoSqlParser.CastContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambda(PrestoSqlParser.LambdaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambda(PrestoSqlParser.LambdaContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParameter(PrestoSqlParser.ParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParameter(PrestoSqlParser.ParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalize(PrestoSqlParser.NormalizeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalize(PrestoSqlParser.NormalizeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleCase(PrestoSqlParser.SimpleCaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumnReference(PrestoSqlParser.ColumnReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullLiteral(PrestoSqlParser.NullLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullLiteral(PrestoSqlParser.NullLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRowConstructor(PrestoSqlParser.RowConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRowConstructor(PrestoSqlParser.RowConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubscript(PrestoSqlParser.SubscriptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubscript(PrestoSqlParser.SubscriptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCurrentUser(PrestoSqlParser.CurrentUserContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCurrentUser(PrestoSqlParser.CurrentUserContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtract(PrestoSqlParser.ExtractContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtract(PrestoSqlParser.ExtractContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStringLiteral(PrestoSqlParser.StringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStringLiteral(PrestoSqlParser.StringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunctionCall(PrestoSqlParser.FunctionCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunctionCall(PrestoSqlParser.FunctionCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExists(PrestoSqlParser.ExistsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExists(PrestoSqlParser.ExistsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPosition(PrestoSqlParser.PositionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPosition(PrestoSqlParser.PositionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSearchedCase(PrestoSqlParser.SearchedCaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullTreatment(PrestoSqlParser.NullTreatmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBooleanValue(PrestoSqlParser.BooleanValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBooleanValue(PrestoSqlParser.BooleanValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterval(PrestoSqlParser.IntervalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterval(PrestoSqlParser.IntervalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntervalField(PrestoSqlParser.IntervalFieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntervalField(PrestoSqlParser.IntervalFieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalForm(PrestoSqlParser.NormalFormContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalForm(PrestoSqlParser.NormalFormContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypes(PrestoSqlParser.TypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypes(PrestoSqlParser.TypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType(PrestoSqlParser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType(PrestoSqlParser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameter(PrestoSqlParser.TypeParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameter(PrestoSqlParser.TypeParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBaseType(PrestoSqlParser.BaseTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBaseType(PrestoSqlParser.BaseTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhenClause(PrestoSqlParser.WhenClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhenClause(PrestoSqlParser.WhenClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFilter(PrestoSqlParser.FilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFilter(PrestoSqlParser.FilterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOver(PrestoSqlParser.OverContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOver(PrestoSqlParser.OverContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWindowFrame(PrestoSqlParser.WindowFrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWindowFrame(PrestoSqlParser.WindowFrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplainFormat(PrestoSqlParser.ExplainFormatContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplainType(PrestoSqlParser.ExplainTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplainType(PrestoSqlParser.ExplainTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReadCommitted(PrestoSqlParser.ReadCommittedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSerializable(PrestoSqlParser.SerializableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSerializable(PrestoSqlParser.SerializableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamedArgument(PrestoSqlParser.NamedArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrivilege(PrestoSqlParser.PrivilegeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrivilege(PrestoSqlParser.PrivilegeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQualifiedName(PrestoSqlParser.QualifiedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoles(PrestoSqlParser.RolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoles(PrestoSqlParser.RolesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonReserved(PrestoSqlParser.NonReservedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonReserved(PrestoSqlParser.NonReservedContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java new file mode 100644 index 0000000..121b11b --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java @@ -0,0 +1,1456 @@ +// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.presto; +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; + +/** + * This class provides an empty implementation of {@link PrestoSqlVisitor}, + * which can be extended to create a visitor which only needs to handle a subset + * of the available methods. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public class PrestoSqlBaseVisitor extends AbstractParseTreeVisitor implements PrestoSqlVisitor { + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSingleStatement(PrestoSqlParser.SingleStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUse(PrestoSqlParser.UseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropSchema(PrestoSqlParser.DropSchemaContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateTable(PrestoSqlParser.CreateTableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropTable(PrestoSqlParser.DropTableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInsertInto(PrestoSqlParser.InsertIntoContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDelete(PrestoSqlParser.DeleteContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRenameTable(PrestoSqlParser.RenameTableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRenameColumn(PrestoSqlParser.RenameColumnContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropColumn(PrestoSqlParser.DropColumnContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAddColumn(PrestoSqlParser.AddColumnContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnalyze(PrestoSqlParser.AnalyzeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateType(PrestoSqlParser.CreateTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateView(PrestoSqlParser.CreateViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropView(PrestoSqlParser.DropViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropFunction(PrestoSqlParser.DropFunctionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCall(PrestoSqlParser.CallContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreateRole(PrestoSqlParser.CreateRoleContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDropRole(PrestoSqlParser.DropRoleContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGrantRoles(PrestoSqlParser.GrantRolesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSetRole(PrestoSqlParser.SetRoleContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGrant(PrestoSqlParser.GrantContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRevoke(PrestoSqlParser.RevokeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowGrants(PrestoSqlParser.ShowGrantsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplain(PrestoSqlParser.ExplainContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowTables(PrestoSqlParser.ShowTablesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowColumns(PrestoSqlParser.ShowColumnsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowStats(PrestoSqlParser.ShowStatsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowRoles(PrestoSqlParser.ShowRolesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShowSession(PrestoSqlParser.ShowSessionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSetSession(PrestoSqlParser.SetSessionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitResetSession(PrestoSqlParser.ResetSessionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStartTransaction(PrestoSqlParser.StartTransactionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCommit(PrestoSqlParser.CommitContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRollback(PrestoSqlParser.RollbackContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrepare(PrestoSqlParser.PrepareContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeallocate(PrestoSqlParser.DeallocateContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExecute(PrestoSqlParser.ExecuteContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDescribeInput(PrestoSqlParser.DescribeInputContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuery(PrestoSqlParser.QueryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWith(PrestoSqlParser.WithContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTableElement(PrestoSqlParser.TableElementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLikeClause(PrestoSqlParser.LikeClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitProperties(PrestoSqlParser.PropertiesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitProperty(PrestoSqlParser.PropertyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLanguage(PrestoSqlParser.LanguageContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeterminism(PrestoSqlParser.DeterminismContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSetOperation(PrestoSqlParser.SetOperationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTable(PrestoSqlParser.TableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInlineTable(PrestoSqlParser.InlineTableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSubquery(PrestoSqlParser.SubqueryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSortItem(PrestoSqlParser.SortItemContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGroupBy(PrestoSqlParser.GroupByContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRollup(PrestoSqlParser.RollupContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCube(PrestoSqlParser.CubeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGroupingSet(PrestoSqlParser.GroupingSetContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamedQuery(PrestoSqlParser.NamedQueryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSelectSingle(PrestoSqlParser.SelectSingleContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSelectAll(PrestoSqlParser.SelectAllContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitJoinRelation(PrestoSqlParser.JoinRelationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitJoinType(PrestoSqlParser.JoinTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSampledRelation(PrestoSqlParser.SampledRelationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSampleType(PrestoSqlParser.SampleTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTableName(PrestoSqlParser.TableNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnnest(PrestoSqlParser.UnnestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLateral(PrestoSqlParser.LateralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpression(PrestoSqlParser.ExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLogicalNot(PrestoSqlParser.LogicalNotContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPredicated(PrestoSqlParser.PredicatedContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitComparison(PrestoSqlParser.ComparisonContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBetween(PrestoSqlParser.BetweenContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInList(PrestoSqlParser.InListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInSubquery(PrestoSqlParser.InSubqueryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLike(PrestoSqlParser.LikeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNullPredicate(PrestoSqlParser.NullPredicateContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConcatenation(PrestoSqlParser.ConcatenationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDereference(PrestoSqlParser.DereferenceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSubstring(PrestoSqlParser.SubstringContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCast(PrestoSqlParser.CastContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambda(PrestoSqlParser.LambdaContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParameter(PrestoSqlParser.ParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNormalize(PrestoSqlParser.NormalizeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNullLiteral(PrestoSqlParser.NullLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRowConstructor(PrestoSqlParser.RowConstructorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSubscript(PrestoSqlParser.SubscriptContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCurrentUser(PrestoSqlParser.CurrentUserContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExtract(PrestoSqlParser.ExtractContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStringLiteral(PrestoSqlParser.StringLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunctionCall(PrestoSqlParser.FunctionCallContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExists(PrestoSqlParser.ExistsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPosition(PrestoSqlParser.PositionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBooleanValue(PrestoSqlParser.BooleanValueContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterval(PrestoSqlParser.IntervalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntervalField(PrestoSqlParser.IntervalFieldContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNormalForm(PrestoSqlParser.NormalFormContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypes(PrestoSqlParser.TypesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType(PrestoSqlParser.TypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeParameter(PrestoSqlParser.TypeParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBaseType(PrestoSqlParser.BaseTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhenClause(PrestoSqlParser.WhenClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFilter(PrestoSqlParser.FilterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOver(PrestoSqlParser.OverContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWindowFrame(PrestoSqlParser.WindowFrameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplainType(PrestoSqlParser.ExplainTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSerializable(PrestoSqlParser.SerializableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrivilege(PrestoSqlParser.PrivilegeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRoles(PrestoSqlParser.RolesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNonReserved(PrestoSqlParser.NonReservedContext ctx) { return visitChildren(ctx); } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java new file mode 100644 index 0000000..de3c65d --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java @@ -0,0 +1,1059 @@ +// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.presto; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class PrestoSqlLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + ADD=10, ADMIN=11, ALL=12, ALTER=13, ANALYZE=14, AND=15, ANY=16, ARRAY=17, + AS=18, ASC=19, AT=20, BERNOULLI=21, BETWEEN=22, BY=23, CALL=24, CALLED=25, + CASCADE=26, CASE=27, CAST=28, CATALOGS=29, COLUMN=30, COLUMNS=31, COMMENT=32, + COMMIT=33, COMMITTED=34, CONSTRAINT=35, CREATE=36, CROSS=37, CUBE=38, + CURRENT=39, CURRENT_DATE=40, CURRENT_ROLE=41, CURRENT_TIME=42, CURRENT_TIMESTAMP=43, + CURRENT_USER=44, DATA=45, DATE=46, DAY=47, DEALLOCATE=48, DEFINER=49, + DELETE=50, DESC=51, DESCRIBE=52, DETERMINISTIC=53, DISTINCT=54, DISTRIBUTED=55, + DROP=56, ELSE=57, END=58, ESCAPE=59, EXCEPT=60, EXCLUDING=61, EXECUTE=62, + EXISTS=63, EXPLAIN=64, EXTRACT=65, EXTERNAL=66, FALSE=67, FILTER=68, FIRST=69, + FOLLOWING=70, FOR=71, FORMAT=72, FROM=73, FULL=74, FUNCTION=75, FUNCTIONS=76, + GRANT=77, GRANTED=78, GRANTS=79, GRAPHVIZ=80, GROUP=81, GROUPING=82, HAVING=83, + HOUR=84, IF=85, IGNORE=86, IN=87, INCLUDING=88, INNER=89, INPUT=90, INSERT=91, + INTERSECT=92, INTERVAL=93, INTO=94, INVOKER=95, IO=96, IS=97, ISOLATION=98, + JSON=99, JOIN=100, LANGUAGE=101, LAST=102, LATERAL=103, LEFT=104, LEVEL=105, + LIKE=106, LIMIT=107, LOCALTIME=108, LOCALTIMESTAMP=109, LOGICAL=110, MAP=111, + MATERIALIZED=112, MINUTE=113, MONTH=114, NAME=115, NATURAL=116, NFC=117, + NFD=118, NFKC=119, NFKD=120, NO=121, NONE=122, NORMALIZE=123, NOT=124, + NULL=125, NULLIF=126, NULLS=127, OFFSET=128, ON=129, ONLY=130, OPTION=131, + OR=132, ORDER=133, ORDINALITY=134, OUTER=135, OUTPUT=136, OVER=137, PARTITION=138, + PARTITIONS=139, POSITION=140, PRECEDING=141, PREPARE=142, PRIVILEGES=143, + PROPERTIES=144, RANGE=145, READ=146, RECURSIVE=147, REFRESH=148, RENAME=149, + REPEATABLE=150, REPLACE=151, RESET=152, RESPECT=153, RESTRICT=154, RETURN=155, + RETURNS=156, REVOKE=157, RIGHT=158, ROLE=159, ROLES=160, ROLLBACK=161, + ROLLUP=162, ROW=163, ROWS=164, SCHEMA=165, SCHEMAS=166, SECOND=167, SECURITY=168, + SELECT=169, SERIALIZABLE=170, SESSION=171, SET=172, SETS=173, SHOW=174, + SOME=175, SQL=176, START=177, STATS=178, SUBSTRING=179, SYSTEM=180, TABLE=181, + TABLES=182, TABLESAMPLE=183, TEMPORARY=184, TEXT=185, THEN=186, TIME=187, + TIMESTAMP=188, TO=189, TRANSACTION=190, TRUE=191, TRY_CAST=192, TYPE=193, + UESCAPE=194, UNBOUNDED=195, UNCOMMITTED=196, UNION=197, UNNEST=198, USE=199, + USER=200, USING=201, VALIDATE=202, VALUES=203, VERBOSE=204, VIEW=205, + WHEN=206, WHERE=207, WITH=208, WORK=209, WRITE=210, YEAR=211, ZONE=212, + EQ=213, NEQ=214, LT=215, LTE=216, GT=217, GTE=218, PLUS=219, MINUS=220, + ASTERISK=221, SLASH=222, PERCENT=223, CONCAT=224, STRING=225, UNICODE_STRING=226, + BINARY_LITERAL=227, INTEGER_VALUE=228, DECIMAL_VALUE=229, DOUBLE_VALUE=230, + IDENTIFIER=231, DIGIT_IDENTIFIER=232, QUOTED_IDENTIFIER=233, BACKQUOTED_IDENTIFIER=234, + TIME_WITH_TIME_ZONE=235, TIMESTAMP_WITH_TIME_ZONE=236, DOUBLE_PRECISION=237, + SIMPLE_COMMENT=238, BRACKETED_COMMENT=239, WS=240, UNRECOGNIZED=241; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "ADD", "ADMIN", "ALL", "ALTER", "ANALYZE", "AND", "ANY", "ARRAY", "AS", + "ASC", "AT", "BERNOULLI", "BETWEEN", "BY", "CALL", "CALLED", "CASCADE", + "CASE", "CAST", "CATALOGS", "COLUMN", "COLUMNS", "COMMENT", "COMMIT", + "COMMITTED", "CONSTRAINT", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DATA", + "DATE", "DAY", "DEALLOCATE", "DEFINER", "DELETE", "DESC", "DESCRIBE", + "DETERMINISTIC", "DISTINCT", "DISTRIBUTED", "DROP", "ELSE", "END", "ESCAPE", + "EXCEPT", "EXCLUDING", "EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "EXTERNAL", + "FALSE", "FILTER", "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", "FULL", + "FUNCTION", "FUNCTIONS", "GRANT", "GRANTED", "GRANTS", "GRAPHVIZ", "GROUP", + "GROUPING", "HAVING", "HOUR", "IF", "IGNORE", "IN", "INCLUDING", "INNER", + "INPUT", "INSERT", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IO", "IS", + "ISOLATION", "JSON", "JOIN", "LANGUAGE", "LAST", "LATERAL", "LEFT", "LEVEL", + "LIKE", "LIMIT", "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", "MAP", "MATERIALIZED", + "MINUTE", "MONTH", "NAME", "NATURAL", "NFC", "NFD", "NFKC", "NFKD", "NO", + "NONE", "NORMALIZE", "NOT", "NULL", "NULLIF", "NULLS", "OFFSET", "ON", + "ONLY", "OPTION", "OR", "ORDER", "ORDINALITY", "OUTER", "OUTPUT", "OVER", + "PARTITION", "PARTITIONS", "POSITION", "PRECEDING", "PREPARE", "PRIVILEGES", + "PROPERTIES", "RANGE", "READ", "RECURSIVE", "REFRESH", "RENAME", "REPEATABLE", + "REPLACE", "RESET", "RESPECT", "RESTRICT", "RETURN", "RETURNS", "REVOKE", + "RIGHT", "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "SCHEMA", + "SCHEMAS", "SECOND", "SECURITY", "SELECT", "SERIALIZABLE", "SESSION", + "SET", "SETS", "SHOW", "SOME", "SQL", "START", "STATS", "SUBSTRING", "SYSTEM", + "TABLE", "TABLES", "TABLESAMPLE", "TEMPORARY", "TEXT", "THEN", "TIME", + "TIMESTAMP", "TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNION", "UNNEST", "USE", "USER", "USING", + "VALIDATE", "VALUES", "VERBOSE", "VIEW", "WHEN", "WHERE", "WITH", "WORK", + "WRITE", "YEAR", "ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", + "MINUS", "ASTERISK", "SLASH", "PERCENT", "CONCAT", "STRING", "UNICODE_STRING", + "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER", + "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE", + "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "EXPONENT", "DIGIT", "LETTER", + "SIMPLE_COMMENT", "BRACKETED_COMMENT", "WS", "UNRECOGNIZED" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'.'", "'('", "')'", "','", "'?'", "'->'", "'['", "']'", "'=>'", + "'ADD'", "'ADMIN'", "'ALL'", "'ALTER'", "'ANALYZE'", "'AND'", "'ANY'", + "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'BERNOULLI'", "'BETWEEN'", "'BY'", + "'CALL'", "'CALLED'", "'CASCADE'", "'CASE'", "'CAST'", "'CATALOGS'", "'COLUMN'", + "'COLUMNS'", "'COMMENT'", "'COMMIT'", "'COMMITTED'", "'CONSTRAINT'", "'CREATE'", + "'CROSS'", "'CUBE'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_ROLE'", + "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'DATA'", "'DATE'", + "'DAY'", "'DEALLOCATE'", "'DEFINER'", "'DELETE'", "'DESC'", "'DESCRIBE'", + "'DETERMINISTIC'", "'DISTINCT'", "'DISTRIBUTED'", "'DROP'", "'ELSE'", + "'END'", "'ESCAPE'", "'EXCEPT'", "'EXCLUDING'", "'EXECUTE'", "'EXISTS'", + "'EXPLAIN'", "'EXTRACT'", "'EXTERNAL'", "'FALSE'", "'FILTER'", "'FIRST'", + "'FOLLOWING'", "'FOR'", "'FORMAT'", "'FROM'", "'FULL'", "'FUNCTION'", + "'FUNCTIONS'", "'GRANT'", "'GRANTED'", "'GRANTS'", "'GRAPHVIZ'", "'GROUP'", + "'GROUPING'", "'HAVING'", "'HOUR'", "'IF'", "'IGNORE'", "'IN'", "'INCLUDING'", + "'INNER'", "'INPUT'", "'INSERT'", "'INTERSECT'", "'INTERVAL'", "'INTO'", + "'INVOKER'", "'IO'", "'IS'", "'ISOLATION'", "'JSON'", "'JOIN'", "'LANGUAGE'", + "'LAST'", "'LATERAL'", "'LEFT'", "'LEVEL'", "'LIKE'", "'LIMIT'", "'LOCALTIME'", + "'LOCALTIMESTAMP'", "'LOGICAL'", "'MAP'", "'MATERIALIZED'", "'MINUTE'", + "'MONTH'", "'NAME'", "'NATURAL'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'", + "'NO'", "'NONE'", "'NORMALIZE'", "'NOT'", "'NULL'", "'NULLIF'", "'NULLS'", + "'OFFSET'", "'ON'", "'ONLY'", "'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'", + "'OUTER'", "'OUTPUT'", "'OVER'", "'PARTITION'", "'PARTITIONS'", "'POSITION'", + "'PRECEDING'", "'PREPARE'", "'PRIVILEGES'", "'PROPERTIES'", "'RANGE'", + "'READ'", "'RECURSIVE'", "'REFRESH'", "'RENAME'", "'REPEATABLE'", "'REPLACE'", + "'RESET'", "'RESPECT'", "'RESTRICT'", "'RETURN'", "'RETURNS'", "'REVOKE'", + "'RIGHT'", "'ROLE'", "'ROLES'", "'ROLLBACK'", "'ROLLUP'", "'ROW'", "'ROWS'", + "'SCHEMA'", "'SCHEMAS'", "'SECOND'", "'SECURITY'", "'SELECT'", "'SERIALIZABLE'", + "'SESSION'", "'SET'", "'SETS'", "'SHOW'", "'SOME'", "'SQL'", "'START'", + "'STATS'", "'SUBSTRING'", "'SYSTEM'", "'TABLE'", "'TABLES'", "'TABLESAMPLE'", + "'TEMPORARY'", "'TEXT'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TO'", "'TRANSACTION'", + "'TRUE'", "'TRY_CAST'", "'TYPE'", "'UESCAPE'", "'UNBOUNDED'", "'UNCOMMITTED'", + "'UNION'", "'UNNEST'", "'USE'", "'USER'", "'USING'", "'VALIDATE'", "'VALUES'", + "'VERBOSE'", "'VIEW'", "'WHEN'", "'WHERE'", "'WITH'", "'WORK'", "'WRITE'", + "'YEAR'", "'ZONE'", "'='", null, "'<'", "'<='", "'>'", "'>='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'||'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, null, null, null, "ADD", "ADMIN", + "ALL", "ALTER", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "AT", "BERNOULLI", + "BETWEEN", "BY", "CALL", "CALLED", "CASCADE", "CASE", "CAST", "CATALOGS", + "COLUMN", "COLUMNS", "COMMENT", "COMMIT", "COMMITTED", "CONSTRAINT", "CREATE", + "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "DATA", "DATE", "DAY", "DEALLOCATE", + "DEFINER", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT", + "DISTRIBUTED", "DROP", "ELSE", "END", "ESCAPE", "EXCEPT", "EXCLUDING", + "EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "EXTERNAL", "FALSE", "FILTER", + "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", "FULL", "FUNCTION", "FUNCTIONS", + "GRANT", "GRANTED", "GRANTS", "GRAPHVIZ", "GROUP", "GROUPING", "HAVING", + "HOUR", "IF", "IGNORE", "IN", "INCLUDING", "INNER", "INPUT", "INSERT", + "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IO", "IS", "ISOLATION", "JSON", + "JOIN", "LANGUAGE", "LAST", "LATERAL", "LEFT", "LEVEL", "LIKE", "LIMIT", + "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", "MAP", "MATERIALIZED", "MINUTE", + "MONTH", "NAME", "NATURAL", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE", + "NORMALIZE", "NOT", "NULL", "NULLIF", "NULLS", "OFFSET", "ON", "ONLY", + "OPTION", "OR", "ORDER", "ORDINALITY", "OUTER", "OUTPUT", "OVER", "PARTITION", + "PARTITIONS", "POSITION", "PRECEDING", "PREPARE", "PRIVILEGES", "PROPERTIES", + "RANGE", "READ", "RECURSIVE", "REFRESH", "RENAME", "REPEATABLE", "REPLACE", + "RESET", "RESPECT", "RESTRICT", "RETURN", "RETURNS", "REVOKE", "RIGHT", + "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "SCHEMA", "SCHEMAS", + "SECOND", "SECURITY", "SELECT", "SERIALIZABLE", "SESSION", "SET", "SETS", + "SHOW", "SOME", "SQL", "START", "STATS", "SUBSTRING", "SYSTEM", "TABLE", + "TABLES", "TABLESAMPLE", "TEMPORARY", "TEXT", "THEN", "TIME", "TIMESTAMP", + "TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE", "UNBOUNDED", + "UNCOMMITTED", "UNION", "UNNEST", "USE", "USER", "USING", "VALIDATE", + "VALUES", "VERBOSE", "VIEW", "WHEN", "WHERE", "WITH", "WORK", "WRITE", + "YEAR", "ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", + "ASTERISK", "SLASH", "PERCENT", "CONCAT", "STRING", "UNICODE_STRING", + "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER", + "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE", + "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "SIMPLE_COMMENT", "BRACKETED_COMMENT", + "WS", "UNRECOGNIZED" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public PrestoSqlLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "PrestoSql.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u00f3\u08b0\b\1\4"+ + "\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n"+ + "\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+ + "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"+ + "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t"+ + " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t"+ + "+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64"+ + "\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t"+ + "=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4"+ + "I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\t"+ + "T\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_"+ + "\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k"+ + "\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv"+ + "\4w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t"+ + "\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084"+ + "\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089"+ + "\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d"+ + "\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092"+ + "\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096"+ + "\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b"+ + "\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f"+ + "\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4"+ + "\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8"+ + "\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad"+ + "\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1"+ + "\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6"+ + "\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba"+ + "\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf"+ + "\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3"+ + "\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8"+ + "\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc"+ + "\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1"+ + "\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5"+ + "\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da"+ + "\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de"+ + "\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3"+ + "\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7"+ + "\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec"+ + "\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0"+ + "\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5"+ + "\t\u00f5\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\7\3\b\3\b\3"+ + "\t\3\t\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r"+ + "\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3"+ + "\17\3\17\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3"+ + "\22\3\22\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\26\3\26\3"+ + "\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27\3"+ + "\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3"+ + "\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3"+ + "\34\3\34\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3"+ + "\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\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#\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\'\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*\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,\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\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61"+ + "\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\63"+ + "\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65"+ + "\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66"+ + "\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67"+ + "\3\67\38\38\38\38\38\38\38\38\38\38\38\38\39\39\39\39\39\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>\3>\3>\3?\3?\3?\3?\3?\3?\3?\3?\3@\3@\3@\3@\3@\3@\3@\3A\3A\3"+ + "A\3A\3A\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3B\3C\3C\3C\3C\3C\3C\3C\3C\3C\3"+ + "D\3D\3D\3D\3D\3D\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3F\3F\3F\3G\3G\3G\3G\3"+ + "G\3G\3G\3G\3G\3G\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3K\3"+ + "K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3"+ + "N\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3"+ + "Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3S\3S\3S\3T\3"+ + "T\3T\3T\3T\3T\3T\3U\3U\3U\3U\3U\3V\3V\3V\3W\3W\3W\3W\3W\3W\3W\3X\3X\3"+ + "X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\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^\3^\3_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3b\3b\3"+ + "b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3f\3f\3"+ + "f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3"+ + "i\3i\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3l\3m\3m\3m\3m\3"+ + "m\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3o\3o\3"+ + "o\3o\3o\3o\3o\3o\3p\3p\3p\3p\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3"+ + "r\3r\3r\3r\3r\3r\3r\3s\3s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3u\3u\3u\3u\3u\3"+ + "u\3u\3u\3v\3v\3v\3v\3w\3w\3w\3w\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3z\3z\3"+ + "z\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\177\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3\u0080"+ + "\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081"+ + "\3\u0081\3\u0082\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083"+ + "\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085\3\u0085"+ + "\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0087\3\u0087"+ + "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087"+ + "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089"+ + "\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a"+ + "\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b"+ + "\3\u008b\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c"+ + "\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d"+ + "\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+ + "\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090"+ + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091"+ + "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0092\3\u0092"+ + "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093"+ + "\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094"+ + "\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095"+ + "\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097"+ + "\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097"+ + "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099"+ + "\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a"+ + "\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b"+ + "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c"+ + "\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d"+ + "\3\u009d\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f"+ + "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\3\u00a0"+ + "\3\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2"+ + "\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4"+ + "\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6"+ + "\3\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7"+ + "\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8"+ + "\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ + "\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab"+ + "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ + "\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+ + "\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\3\u00ae\3\u00ae\3\u00ae"+ + "\3\u00ae\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00b0\3\u00b0\3\u00b0"+ + "\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\3\u00b2"+ + "\3\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3"+ + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b6"+ + "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7"+ + "\3\u00b7\3\u00b7\3\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8"+ + "\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9"+ + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00ba\3\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd"+ + "\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00bf"+ + "\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c2\3\u00c2"+ + "\3\u00c2\3\u00c2\3\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c4\3\u00c4\3\u00c4\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+ + "\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3\u00c9\3\u00c9"+ + "\3\u00c9\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb"+ + "\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cc\3\u00cc"+ + "\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ + "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0\3\u00d0"+ + "\3\u00d0\3\u00d0\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d2\3\u00d2"+ + "\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3"+ + "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d5\3\u00d5\3\u00d5\3\u00d5"+ + "\3\u00d5\3\u00d6\3\u00d6\3\u00d7\3\u00d7\3\u00d7\3\u00d7\5\u00d7\u079d"+ + "\n\u00d7\3\u00d8\3\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00db"+ + "\3\u00db\3\u00db\3\u00dc\3\u00dc\3\u00dd\3\u00dd\3\u00de\3\u00de\3\u00df"+ + "\3\u00df\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00e2\7\u00e2\u07ba\n\u00e2\f\u00e2\16\u00e2\u07bd\13\u00e2\3\u00e2"+ + "\3\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\7\u00e3"+ + "\u07c8\n\u00e3\f\u00e3\16\u00e3\u07cb\13\u00e3\3\u00e3\3\u00e3\3\u00e4"+ + "\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u07d3\n\u00e4\f\u00e4\16\u00e4\u07d6"+ + "\13\u00e4\3\u00e4\3\u00e4\3\u00e5\6\u00e5\u07db\n\u00e5\r\u00e5\16\u00e5"+ + "\u07dc\3\u00e6\6\u00e6\u07e0\n\u00e6\r\u00e6\16\u00e6\u07e1\3\u00e6\3"+ + "\u00e6\7\u00e6\u07e6\n\u00e6\f\u00e6\16\u00e6\u07e9\13\u00e6\3\u00e6\3"+ + "\u00e6\6\u00e6\u07ed\n\u00e6\r\u00e6\16\u00e6\u07ee\5\u00e6\u07f1\n\u00e6"+ + "\3\u00e7\6\u00e7\u07f4\n\u00e7\r\u00e7\16\u00e7\u07f5\3\u00e7\3\u00e7"+ + "\7\u00e7\u07fa\n\u00e7\f\u00e7\16\u00e7\u07fd\13\u00e7\5\u00e7\u07ff\n"+ + "\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\6\u00e7\u0805\n\u00e7\r\u00e7\16"+ + "\u00e7\u0806\3\u00e7\3\u00e7\5\u00e7\u080b\n\u00e7\3\u00e8\3\u00e8\5\u00e8"+ + "\u080f\n\u00e8\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u0814\n\u00e8\f\u00e8\16"+ + "\u00e8\u0817\13\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9\6\u00e9\u081d\n"+ + "\u00e9\r\u00e9\16\u00e9\u081e\3\u00ea\3\u00ea\3\u00ea\3\u00ea\7\u00ea"+ + "\u0825\n\u00ea\f\u00ea\16\u00ea\u0828\13\u00ea\3\u00ea\3\u00ea\3\u00eb"+ + "\3\u00eb\3\u00eb\3\u00eb\7\u00eb\u0830\n\u00eb\f\u00eb\16\u00eb\u0833"+ + "\13\u00eb\3\u00eb\3\u00eb\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec"+ + "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec"+ + "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+ + "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+ + "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+ + "\3\u00ef\3\u00ef\5\u00ef\u087e\n\u00ef\3\u00ef\6\u00ef\u0881\n\u00ef\r"+ + "\u00ef\16\u00ef\u0882\3\u00f0\3\u00f0\3\u00f1\3\u00f1\3\u00f2\3\u00f2"+ + "\3\u00f2\3\u00f2\7\u00f2\u088d\n\u00f2\f\u00f2\16\u00f2\u0890\13\u00f2"+ + "\3\u00f2\5\u00f2\u0893\n\u00f2\3\u00f2\5\u00f2\u0896\n\u00f2\3\u00f2\3"+ + "\u00f2\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u089e\n\u00f3\f\u00f3\16"+ + "\u00f3\u08a1\13\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f4"+ + "\6\u00f4\u08a9\n\u00f4\r\u00f4\16\u00f4\u08aa\3\u00f4\3\u00f4\3\u00f5"+ + "\3\u00f5\3\u089f\2\u00f6\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f"+ + "\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63"+ + "\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62"+ + "c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087"+ + "E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b"+ + "O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00af"+ + "Y\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3"+ + "c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7"+ + "m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00eb"+ + "w\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\177\u00fd\u0080"+ + "\u00ff\u0081\u0101\u0082\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086"+ + "\u010b\u0087\u010d\u0088\u010f\u0089\u0111\u008a\u0113\u008b\u0115\u008c"+ + "\u0117\u008d\u0119\u008e\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092"+ + "\u0123\u0093\u0125\u0094\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098"+ + "\u012f\u0099\u0131\u009a\u0133\u009b\u0135\u009c\u0137\u009d\u0139\u009e"+ + "\u013b\u009f\u013d\u00a0\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4"+ + "\u0147\u00a5\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa"+ + "\u0153\u00ab\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d\u00b0"+ + "\u015f\u00b1\u0161\u00b2\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6"+ + "\u016b\u00b7\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc"+ + "\u0177\u00bd\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181\u00c2"+ + "\u0183\u00c3\u0185\u00c4\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8"+ + "\u018f\u00c9\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce"+ + "\u019b\u00cf\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4"+ + "\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da"+ + "\u01b3\u00db\u01b5\u00dc\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0"+ + "\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6"+ + "\u01cb\u00e7\u01cd\u00e8\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec"+ + "\u01d7\u00ed\u01d9\u00ee\u01db\u00ef\u01dd\2\u01df\2\u01e1\2\u01e3\u00f0"+ + "\u01e5\u00f1\u01e7\u00f2\u01e9\u00f3\3\2\13\3\2))\5\2<\3\2\2\2\u0276\u0277\7E\2\2\u0277\u0278"+ + "\7Q\2\2\u0278\u0279\7N\2\2\u0279\u027a\7W\2\2\u027a\u027b\7O\2\2\u027b"+ + "\u027c\7P\2\2\u027c\u027d\7U\2\2\u027d@\3\2\2\2\u027e\u027f\7E\2\2\u027f"+ + "\u0280\7Q\2\2\u0280\u0281\7O\2\2\u0281\u0282\7O\2\2\u0282\u0283\7G\2\2"+ + "\u0283\u0284\7P\2\2\u0284\u0285\7V\2\2\u0285B\3\2\2\2\u0286\u0287\7E\2"+ + "\2\u0287\u0288\7Q\2\2\u0288\u0289\7O\2\2\u0289\u028a\7O\2\2\u028a\u028b"+ + "\7K\2\2\u028b\u028c\7V\2\2\u028cD\3\2\2\2\u028d\u028e\7E\2\2\u028e\u028f"+ + "\7Q\2\2\u028f\u0290\7O\2\2\u0290\u0291\7O\2\2\u0291\u0292\7K\2\2\u0292"+ + "\u0293\7V\2\2\u0293\u0294\7V\2\2\u0294\u0295\7G\2\2\u0295\u0296\7F\2\2"+ + "\u0296F\3\2\2\2\u0297\u0298\7E\2\2\u0298\u0299\7Q\2\2\u0299\u029a\7P\2"+ + "\2\u029a\u029b\7U\2\2\u029b\u029c\7V\2\2\u029c\u029d\7T\2\2\u029d\u029e"+ + "\7C\2\2\u029e\u029f\7K\2\2\u029f\u02a0\7P\2\2\u02a0\u02a1\7V\2\2\u02a1"+ + "H\3\2\2\2\u02a2\u02a3\7E\2\2\u02a3\u02a4\7T\2\2\u02a4\u02a5\7G\2\2\u02a5"+ + "\u02a6\7C\2\2\u02a6\u02a7\7V\2\2\u02a7\u02a8\7G\2\2\u02a8J\3\2\2\2\u02a9"+ + "\u02aa\7E\2\2\u02aa\u02ab\7T\2\2\u02ab\u02ac\7Q\2\2\u02ac\u02ad\7U\2\2"+ + "\u02ad\u02ae\7U\2\2\u02aeL\3\2\2\2\u02af\u02b0\7E\2\2\u02b0\u02b1\7W\2"+ + "\2\u02b1\u02b2\7D\2\2\u02b2\u02b3\7G\2\2\u02b3N\3\2\2\2\u02b4\u02b5\7"+ + "E\2\2\u02b5\u02b6\7W\2\2\u02b6\u02b7\7T\2\2\u02b7\u02b8\7T\2\2\u02b8\u02b9"+ + "\7G\2\2\u02b9\u02ba\7P\2\2\u02ba\u02bb\7V\2\2\u02bbP\3\2\2\2\u02bc\u02bd"+ + "\7E\2\2\u02bd\u02be\7W\2\2\u02be\u02bf\7T\2\2\u02bf\u02c0\7T\2\2\u02c0"+ + "\u02c1\7G\2\2\u02c1\u02c2\7P\2\2\u02c2\u02c3\7V\2\2\u02c3\u02c4\7a\2\2"+ + "\u02c4\u02c5\7F\2\2\u02c5\u02c6\7C\2\2\u02c6\u02c7\7V\2\2\u02c7\u02c8"+ + "\7G\2\2\u02c8R\3\2\2\2\u02c9\u02ca\7E\2\2\u02ca\u02cb\7W\2\2\u02cb\u02cc"+ + "\7T\2\2\u02cc\u02cd\7T\2\2\u02cd\u02ce\7G\2\2\u02ce\u02cf\7P\2\2\u02cf"+ + "\u02d0\7V\2\2\u02d0\u02d1\7a\2\2\u02d1\u02d2\7T\2\2\u02d2\u02d3\7Q\2\2"+ + "\u02d3\u02d4\7N\2\2\u02d4\u02d5\7G\2\2\u02d5T\3\2\2\2\u02d6\u02d7\7E\2"+ + "\2\u02d7\u02d8\7W\2\2\u02d8\u02d9\7T\2\2\u02d9\u02da\7T\2\2\u02da\u02db"+ + "\7G\2\2\u02db\u02dc\7P\2\2\u02dc\u02dd\7V\2\2\u02dd\u02de\7a\2\2\u02de"+ + "\u02df\7V\2\2\u02df\u02e0\7K\2\2\u02e0\u02e1\7O\2\2\u02e1\u02e2\7G\2\2"+ + "\u02e2V\3\2\2\2\u02e3\u02e4\7E\2\2\u02e4\u02e5\7W\2\2\u02e5\u02e6\7T\2"+ + "\2\u02e6\u02e7\7T\2\2\u02e7\u02e8\7G\2\2\u02e8\u02e9\7P\2\2\u02e9\u02ea"+ + "\7V\2\2\u02ea\u02eb\7a\2\2\u02eb\u02ec\7V\2\2\u02ec\u02ed\7K\2\2\u02ed"+ + "\u02ee\7O\2\2\u02ee\u02ef\7G\2\2\u02ef\u02f0\7U\2\2\u02f0\u02f1\7V\2\2"+ + "\u02f1\u02f2\7C\2\2\u02f2\u02f3\7O\2\2\u02f3\u02f4\7R\2\2\u02f4X\3\2\2"+ + "\2\u02f5\u02f6\7E\2\2\u02f6\u02f7\7W\2\2\u02f7\u02f8\7T\2\2\u02f8\u02f9"+ + "\7T\2\2\u02f9\u02fa\7G\2\2\u02fa\u02fb\7P\2\2\u02fb\u02fc\7V\2\2\u02fc"+ + "\u02fd\7a\2\2\u02fd\u02fe\7W\2\2\u02fe\u02ff\7U\2\2\u02ff\u0300\7G\2\2"+ + "\u0300\u0301\7T\2\2\u0301Z\3\2\2\2\u0302\u0303\7F\2\2\u0303\u0304\7C\2"+ + "\2\u0304\u0305\7V\2\2\u0305\u0306\7C\2\2\u0306\\\3\2\2\2\u0307\u0308\7"+ + "F\2\2\u0308\u0309\7C\2\2\u0309\u030a\7V\2\2\u030a\u030b\7G\2\2\u030b^"+ + "\3\2\2\2\u030c\u030d\7F\2\2\u030d\u030e\7C\2\2\u030e\u030f\7[\2\2\u030f"+ + "`\3\2\2\2\u0310\u0311\7F\2\2\u0311\u0312\7G\2\2\u0312\u0313\7C\2\2\u0313"+ + "\u0314\7N\2\2\u0314\u0315\7N\2\2\u0315\u0316\7Q\2\2\u0316\u0317\7E\2\2"+ + "\u0317\u0318\7C\2\2\u0318\u0319\7V\2\2\u0319\u031a\7G\2\2\u031ab\3\2\2"+ + "\2\u031b\u031c\7F\2\2\u031c\u031d\7G\2\2\u031d\u031e\7H\2\2\u031e\u031f"+ + "\7K\2\2\u031f\u0320\7P\2\2\u0320\u0321\7G\2\2\u0321\u0322\7T\2\2\u0322"+ + "d\3\2\2\2\u0323\u0324\7F\2\2\u0324\u0325\7G\2\2\u0325\u0326\7N\2\2\u0326"+ + "\u0327\7G\2\2\u0327\u0328\7V\2\2\u0328\u0329\7G\2\2\u0329f\3\2\2\2\u032a"+ + "\u032b\7F\2\2\u032b\u032c\7G\2\2\u032c\u032d\7U\2\2\u032d\u032e\7E\2\2"+ + "\u032eh\3\2\2\2\u032f\u0330\7F\2\2\u0330\u0331\7G\2\2\u0331\u0332\7U\2"+ + "\2\u0332\u0333\7E\2\2\u0333\u0334\7T\2\2\u0334\u0335\7K\2\2\u0335\u0336"+ + "\7D\2\2\u0336\u0337\7G\2\2\u0337j\3\2\2\2\u0338\u0339\7F\2\2\u0339\u033a"+ + "\7G\2\2\u033a\u033b\7V\2\2\u033b\u033c\7G\2\2\u033c\u033d\7T\2\2\u033d"+ + "\u033e\7O\2\2\u033e\u033f\7K\2\2\u033f\u0340\7P\2\2\u0340\u0341\7K\2\2"+ + "\u0341\u0342\7U\2\2\u0342\u0343\7V\2\2\u0343\u0344\7K\2\2\u0344\u0345"+ + "\7E\2\2\u0345l\3\2\2\2\u0346\u0347\7F\2\2\u0347\u0348\7K\2\2\u0348\u0349"+ + "\7U\2\2\u0349\u034a\7V\2\2\u034a\u034b\7K\2\2\u034b\u034c\7P\2\2\u034c"+ + "\u034d\7E\2\2\u034d\u034e\7V\2\2\u034en\3\2\2\2\u034f\u0350\7F\2\2\u0350"+ + "\u0351\7K\2\2\u0351\u0352\7U\2\2\u0352\u0353\7V\2\2\u0353\u0354\7T\2\2"+ + "\u0354\u0355\7K\2\2\u0355\u0356\7D\2\2\u0356\u0357\7W\2\2\u0357\u0358"+ + "\7V\2\2\u0358\u0359\7G\2\2\u0359\u035a\7F\2\2\u035ap\3\2\2\2\u035b\u035c"+ + "\7F\2\2\u035c\u035d\7T\2\2\u035d\u035e\7Q\2\2\u035e\u035f\7R\2\2\u035f"+ + "r\3\2\2\2\u0360\u0361\7G\2\2\u0361\u0362\7N\2\2\u0362\u0363\7U\2\2\u0363"+ + "\u0364\7G\2\2\u0364t\3\2\2\2\u0365\u0366\7G\2\2\u0366\u0367\7P\2\2\u0367"+ + "\u0368\7F\2\2\u0368v\3\2\2\2\u0369\u036a\7G\2\2\u036a\u036b\7U\2\2\u036b"+ + "\u036c\7E\2\2\u036c\u036d\7C\2\2\u036d\u036e\7R\2\2\u036e\u036f\7G\2\2"+ + "\u036fx\3\2\2\2\u0370\u0371\7G\2\2\u0371\u0372\7Z\2\2\u0372\u0373\7E\2"+ + "\2\u0373\u0374\7G\2\2\u0374\u0375\7R\2\2\u0375\u0376\7V\2\2\u0376z\3\2"+ + "\2\2\u0377\u0378\7G\2\2\u0378\u0379\7Z\2\2\u0379\u037a\7E\2\2\u037a\u037b"+ + "\7N\2\2\u037b\u037c\7W\2\2\u037c\u037d\7F\2\2\u037d\u037e\7K\2\2\u037e"+ + "\u037f\7P\2\2\u037f\u0380\7I\2\2\u0380|\3\2\2\2\u0381\u0382\7G\2\2\u0382"+ + "\u0383\7Z\2\2\u0383\u0384\7G\2\2\u0384\u0385\7E\2\2\u0385\u0386\7W\2\2"+ + "\u0386\u0387\7V\2\2\u0387\u0388\7G\2\2\u0388~\3\2\2\2\u0389\u038a\7G\2"+ + "\2\u038a\u038b\7Z\2\2\u038b\u038c\7K\2\2\u038c\u038d\7U\2\2\u038d\u038e"+ + "\7V\2\2\u038e\u038f\7U\2\2\u038f\u0080\3\2\2\2\u0390\u0391\7G\2\2\u0391"+ + "\u0392\7Z\2\2\u0392\u0393\7R\2\2\u0393\u0394\7N\2\2\u0394\u0395\7C\2\2"+ + "\u0395\u0396\7K\2\2\u0396\u0397\7P\2\2\u0397\u0082\3\2\2\2\u0398\u0399"+ + "\7G\2\2\u0399\u039a\7Z\2\2\u039a\u039b\7V\2\2\u039b\u039c\7T\2\2\u039c"+ + "\u039d\7C\2\2\u039d\u039e\7E\2\2\u039e\u039f\7V\2\2\u039f\u0084\3\2\2"+ + "\2\u03a0\u03a1\7G\2\2\u03a1\u03a2\7Z\2\2\u03a2\u03a3\7V\2\2\u03a3\u03a4"+ + "\7G\2\2\u03a4\u03a5\7T\2\2\u03a5\u03a6\7P\2\2\u03a6\u03a7\7C\2\2\u03a7"+ + "\u03a8\7N\2\2\u03a8\u0086\3\2\2\2\u03a9\u03aa\7H\2\2\u03aa\u03ab\7C\2"+ + "\2\u03ab\u03ac\7N\2\2\u03ac\u03ad\7U\2\2\u03ad\u03ae\7G\2\2\u03ae\u0088"+ + "\3\2\2\2\u03af\u03b0\7H\2\2\u03b0\u03b1\7K\2\2\u03b1\u03b2\7N\2\2\u03b2"+ + "\u03b3\7V\2\2\u03b3\u03b4\7G\2\2\u03b4\u03b5\7T\2\2\u03b5\u008a\3\2\2"+ + "\2\u03b6\u03b7\7H\2\2\u03b7\u03b8\7K\2\2\u03b8\u03b9\7T\2\2\u03b9\u03ba"+ + "\7U\2\2\u03ba\u03bb\7V\2\2\u03bb\u008c\3\2\2\2\u03bc\u03bd\7H\2\2\u03bd"+ + "\u03be\7Q\2\2\u03be\u03bf\7N\2\2\u03bf\u03c0\7N\2\2\u03c0\u03c1\7Q\2\2"+ + "\u03c1\u03c2\7Y\2\2\u03c2\u03c3\7K\2\2\u03c3\u03c4\7P\2\2\u03c4\u03c5"+ + "\7I\2\2\u03c5\u008e\3\2\2\2\u03c6\u03c7\7H\2\2\u03c7\u03c8\7Q\2\2\u03c8"+ + "\u03c9\7T\2\2\u03c9\u0090\3\2\2\2\u03ca\u03cb\7H\2\2\u03cb\u03cc\7Q\2"+ + "\2\u03cc\u03cd\7T\2\2\u03cd\u03ce\7O\2\2\u03ce\u03cf\7C\2\2\u03cf\u03d0"+ + "\7V\2\2\u03d0\u0092\3\2\2\2\u03d1\u03d2\7H\2\2\u03d2\u03d3\7T\2\2\u03d3"+ + "\u03d4\7Q\2\2\u03d4\u03d5\7O\2\2\u03d5\u0094\3\2\2\2\u03d6\u03d7\7H\2"+ + "\2\u03d7\u03d8\7W\2\2\u03d8\u03d9\7N\2\2\u03d9\u03da\7N\2\2\u03da\u0096"+ + "\3\2\2\2\u03db\u03dc\7H\2\2\u03dc\u03dd\7W\2\2\u03dd\u03de\7P\2\2\u03de"+ + "\u03df\7E\2\2\u03df\u03e0\7V\2\2\u03e0\u03e1\7K\2\2\u03e1\u03e2\7Q\2\2"+ + "\u03e2\u03e3\7P\2\2\u03e3\u0098\3\2\2\2\u03e4\u03e5\7H\2\2\u03e5\u03e6"+ + "\7W\2\2\u03e6\u03e7\7P\2\2\u03e7\u03e8\7E\2\2\u03e8\u03e9\7V\2\2\u03e9"+ + "\u03ea\7K\2\2\u03ea\u03eb\7Q\2\2\u03eb\u03ec\7P\2\2\u03ec\u03ed\7U\2\2"+ + "\u03ed\u009a\3\2\2\2\u03ee\u03ef\7I\2\2\u03ef\u03f0\7T\2\2\u03f0\u03f1"+ + "\7C\2\2\u03f1\u03f2\7P\2\2\u03f2\u03f3\7V\2\2\u03f3\u009c\3\2\2\2\u03f4"+ + "\u03f5\7I\2\2\u03f5\u03f6\7T\2\2\u03f6\u03f7\7C\2\2\u03f7\u03f8\7P\2\2"+ + "\u03f8\u03f9\7V\2\2\u03f9\u03fa\7G\2\2\u03fa\u03fb\7F\2\2\u03fb\u009e"+ + "\3\2\2\2\u03fc\u03fd\7I\2\2\u03fd\u03fe\7T\2\2\u03fe\u03ff\7C\2\2\u03ff"+ + "\u0400\7P\2\2\u0400\u0401\7V\2\2\u0401\u0402\7U\2\2\u0402\u00a0\3\2\2"+ + "\2\u0403\u0404\7I\2\2\u0404\u0405\7T\2\2\u0405\u0406\7C\2\2\u0406\u0407"+ + "\7R\2\2\u0407\u0408\7J\2\2\u0408\u0409\7X\2\2\u0409\u040a\7K\2\2\u040a"+ + "\u040b\7\\\2\2\u040b\u00a2\3\2\2\2\u040c\u040d\7I\2\2\u040d\u040e\7T\2"+ + "\2\u040e\u040f\7Q\2\2\u040f\u0410\7W\2\2\u0410\u0411\7R\2\2\u0411\u00a4"+ + "\3\2\2\2\u0412\u0413\7I\2\2\u0413\u0414\7T\2\2\u0414\u0415\7Q\2\2\u0415"+ + "\u0416\7W\2\2\u0416\u0417\7R\2\2\u0417\u0418\7K\2\2\u0418\u0419\7P\2\2"+ + "\u0419\u041a\7I\2\2\u041a\u00a6\3\2\2\2\u041b\u041c\7J\2\2\u041c\u041d"+ + "\7C\2\2\u041d\u041e\7X\2\2\u041e\u041f\7K\2\2\u041f\u0420\7P\2\2\u0420"+ + "\u0421\7I\2\2\u0421\u00a8\3\2\2\2\u0422\u0423\7J\2\2\u0423\u0424\7Q\2"+ + "\2\u0424\u0425\7W\2\2\u0425\u0426\7T\2\2\u0426\u00aa\3\2\2\2\u0427\u0428"+ + "\7K\2\2\u0428\u0429\7H\2\2\u0429\u00ac\3\2\2\2\u042a\u042b\7K\2\2\u042b"+ + "\u042c\7I\2\2\u042c\u042d\7P\2\2\u042d\u042e\7Q\2\2\u042e\u042f\7T\2\2"+ + "\u042f\u0430\7G\2\2\u0430\u00ae\3\2\2\2\u0431\u0432\7K\2\2\u0432\u0433"+ + "\7P\2\2\u0433\u00b0\3\2\2\2\u0434\u0435\7K\2\2\u0435\u0436\7P\2\2\u0436"+ + "\u0437\7E\2\2\u0437\u0438\7N\2\2\u0438\u0439\7W\2\2\u0439\u043a\7F\2\2"+ + "\u043a\u043b\7K\2\2\u043b\u043c\7P\2\2\u043c\u043d\7I\2\2\u043d\u00b2"+ + "\3\2\2\2\u043e\u043f\7K\2\2\u043f\u0440\7P\2\2\u0440\u0441\7P\2\2\u0441"+ + "\u0442\7G\2\2\u0442\u0443\7T\2\2\u0443\u00b4\3\2\2\2\u0444\u0445\7K\2"+ + "\2\u0445\u0446\7P\2\2\u0446\u0447\7R\2\2\u0447\u0448\7W\2\2\u0448\u0449"+ + "\7V\2\2\u0449\u00b6\3\2\2\2\u044a\u044b\7K\2\2\u044b\u044c\7P\2\2\u044c"+ + "\u044d\7U\2\2\u044d\u044e\7G\2\2\u044e\u044f\7T\2\2\u044f\u0450\7V\2\2"+ + "\u0450\u00b8\3\2\2\2\u0451\u0452\7K\2\2\u0452\u0453\7P\2\2\u0453\u0454"+ + "\7V\2\2\u0454\u0455\7G\2\2\u0455\u0456\7T\2\2\u0456\u0457\7U\2\2\u0457"+ + "\u0458\7G\2\2\u0458\u0459\7E\2\2\u0459\u045a\7V\2\2\u045a\u00ba\3\2\2"+ + "\2\u045b\u045c\7K\2\2\u045c\u045d\7P\2\2\u045d\u045e\7V\2\2\u045e\u045f"+ + "\7G\2\2\u045f\u0460\7T\2\2\u0460\u0461\7X\2\2\u0461\u0462\7C\2\2\u0462"+ + "\u0463\7N\2\2\u0463\u00bc\3\2\2\2\u0464\u0465\7K\2\2\u0465\u0466\7P\2"+ + "\2\u0466\u0467\7V\2\2\u0467\u0468\7Q\2\2\u0468\u00be\3\2\2\2\u0469\u046a"+ + "\7K\2\2\u046a\u046b\7P\2\2\u046b\u046c\7X\2\2\u046c\u046d\7Q\2\2\u046d"+ + "\u046e\7M\2\2\u046e\u046f\7G\2\2\u046f\u0470\7T\2\2\u0470\u00c0\3\2\2"+ + "\2\u0471\u0472\7K\2\2\u0472\u0473\7Q\2\2\u0473\u00c2\3\2\2\2\u0474\u0475"+ + "\7K\2\2\u0475\u0476\7U\2\2\u0476\u00c4\3\2\2\2\u0477\u0478\7K\2\2\u0478"+ + "\u0479\7U\2\2\u0479\u047a\7Q\2\2\u047a\u047b\7N\2\2\u047b\u047c\7C\2\2"+ + "\u047c\u047d\7V\2\2\u047d\u047e\7K\2\2\u047e\u047f\7Q\2\2\u047f\u0480"+ + "\7P\2\2\u0480\u00c6\3\2\2\2\u0481\u0482\7L\2\2\u0482\u0483\7U\2\2\u0483"+ + "\u0484\7Q\2\2\u0484\u0485\7P\2\2\u0485\u00c8\3\2\2\2\u0486\u0487\7L\2"+ + "\2\u0487\u0488\7Q\2\2\u0488\u0489\7K\2\2\u0489\u048a\7P\2\2\u048a\u00ca"+ + "\3\2\2\2\u048b\u048c\7N\2\2\u048c\u048d\7C\2\2\u048d\u048e\7P\2\2\u048e"+ + "\u048f\7I\2\2\u048f\u0490\7W\2\2\u0490\u0491\7C\2\2\u0491\u0492\7I\2\2"+ + "\u0492\u0493\7G\2\2\u0493\u00cc\3\2\2\2\u0494\u0495\7N\2\2\u0495\u0496"+ + "\7C\2\2\u0496\u0497\7U\2\2\u0497\u0498\7V\2\2\u0498\u00ce\3\2\2\2\u0499"+ + "\u049a\7N\2\2\u049a\u049b\7C\2\2\u049b\u049c\7V\2\2\u049c\u049d\7G\2\2"+ + "\u049d\u049e\7T\2\2\u049e\u049f\7C\2\2\u049f\u04a0\7N\2\2\u04a0\u00d0"+ + "\3\2\2\2\u04a1\u04a2\7N\2\2\u04a2\u04a3\7G\2\2\u04a3\u04a4\7H\2\2\u04a4"+ + "\u04a5\7V\2\2\u04a5\u00d2\3\2\2\2\u04a6\u04a7\7N\2\2\u04a7\u04a8\7G\2"+ + "\2\u04a8\u04a9\7X\2\2\u04a9\u04aa\7G\2\2\u04aa\u04ab\7N\2\2\u04ab\u00d4"+ + "\3\2\2\2\u04ac\u04ad\7N\2\2\u04ad\u04ae\7K\2\2\u04ae\u04af\7M\2\2\u04af"+ + "\u04b0\7G\2\2\u04b0\u00d6\3\2\2\2\u04b1\u04b2\7N\2\2\u04b2\u04b3\7K\2"+ + "\2\u04b3\u04b4\7O\2\2\u04b4\u04b5\7K\2\2\u04b5\u04b6\7V\2\2\u04b6\u00d8"+ + "\3\2\2\2\u04b7\u04b8\7N\2\2\u04b8\u04b9\7Q\2\2\u04b9\u04ba\7E\2\2\u04ba"+ + "\u04bb\7C\2\2\u04bb\u04bc\7N\2\2\u04bc\u04bd\7V\2\2\u04bd\u04be\7K\2\2"+ + "\u04be\u04bf\7O\2\2\u04bf\u04c0\7G\2\2\u04c0\u00da\3\2\2\2\u04c1\u04c2"+ + "\7N\2\2\u04c2\u04c3\7Q\2\2\u04c3\u04c4\7E\2\2\u04c4\u04c5\7C\2\2\u04c5"+ + "\u04c6\7N\2\2\u04c6\u04c7\7V\2\2\u04c7\u04c8\7K\2\2\u04c8\u04c9\7O\2\2"+ + "\u04c9\u04ca\7G\2\2\u04ca\u04cb\7U\2\2\u04cb\u04cc\7V\2\2\u04cc\u04cd"+ + "\7C\2\2\u04cd\u04ce\7O\2\2\u04ce\u04cf\7R\2\2\u04cf\u00dc\3\2\2\2\u04d0"+ + "\u04d1\7N\2\2\u04d1\u04d2\7Q\2\2\u04d2\u04d3\7I\2\2\u04d3\u04d4\7K\2\2"+ + "\u04d4\u04d5\7E\2\2\u04d5\u04d6\7C\2\2\u04d6\u04d7\7N\2\2\u04d7\u00de"+ + "\3\2\2\2\u04d8\u04d9\7O\2\2\u04d9\u04da\7C\2\2\u04da\u04db\7R\2\2\u04db"+ + "\u00e0\3\2\2\2\u04dc\u04dd\7O\2\2\u04dd\u04de\7C\2\2\u04de\u04df\7V\2"+ + "\2\u04df\u04e0\7G\2\2\u04e0\u04e1\7T\2\2\u04e1\u04e2\7K\2\2\u04e2\u04e3"+ + "\7C\2\2\u04e3\u04e4\7N\2\2\u04e4\u04e5\7K\2\2\u04e5\u04e6\7\\\2\2\u04e6"+ + "\u04e7\7G\2\2\u04e7\u04e8\7F\2\2\u04e8\u00e2\3\2\2\2\u04e9\u04ea\7O\2"+ + "\2\u04ea\u04eb\7K\2\2\u04eb\u04ec\7P\2\2\u04ec\u04ed\7W\2\2\u04ed\u04ee"+ + "\7V\2\2\u04ee\u04ef\7G\2\2\u04ef\u00e4\3\2\2\2\u04f0\u04f1\7O\2\2\u04f1"+ + "\u04f2\7Q\2\2\u04f2\u04f3\7P\2\2\u04f3\u04f4\7V\2\2\u04f4\u04f5\7J\2\2"+ + "\u04f5\u00e6\3\2\2\2\u04f6\u04f7\7P\2\2\u04f7\u04f8\7C\2\2\u04f8\u04f9"+ + "\7O\2\2\u04f9\u04fa\7G\2\2\u04fa\u00e8\3\2\2\2\u04fb\u04fc\7P\2\2\u04fc"+ + "\u04fd\7C\2\2\u04fd\u04fe\7V\2\2\u04fe\u04ff\7W\2\2\u04ff\u0500\7T\2\2"+ + "\u0500\u0501\7C\2\2\u0501\u0502\7N\2\2\u0502\u00ea\3\2\2\2\u0503\u0504"+ + "\7P\2\2\u0504\u0505\7H\2\2\u0505\u0506\7E\2\2\u0506\u00ec\3\2\2\2\u0507"+ + "\u0508\7P\2\2\u0508\u0509\7H\2\2\u0509\u050a\7F\2\2\u050a\u00ee\3\2\2"+ + "\2\u050b\u050c\7P\2\2\u050c\u050d\7H\2\2\u050d\u050e\7M\2\2\u050e\u050f"+ + "\7E\2\2\u050f\u00f0\3\2\2\2\u0510\u0511\7P\2\2\u0511\u0512\7H\2\2\u0512"+ + "\u0513\7M\2\2\u0513\u0514\7F\2\2\u0514\u00f2\3\2\2\2\u0515\u0516\7P\2"+ + "\2\u0516\u0517\7Q\2\2\u0517\u00f4\3\2\2\2\u0518\u0519\7P\2\2\u0519\u051a"+ + "\7Q\2\2\u051a\u051b\7P\2\2\u051b\u051c\7G\2\2\u051c\u00f6\3\2\2\2\u051d"+ + "\u051e\7P\2\2\u051e\u051f\7Q\2\2\u051f\u0520\7T\2\2\u0520\u0521\7O\2\2"+ + "\u0521\u0522\7C\2\2\u0522\u0523\7N\2\2\u0523\u0524\7K\2\2\u0524\u0525"+ + "\7\\\2\2\u0525\u0526\7G\2\2\u0526\u00f8\3\2\2\2\u0527\u0528\7P\2\2\u0528"+ + "\u0529\7Q\2\2\u0529\u052a\7V\2\2\u052a\u00fa\3\2\2\2\u052b\u052c\7P\2"+ + "\2\u052c\u052d\7W\2\2\u052d\u052e\7N\2\2\u052e\u052f\7N\2\2\u052f\u00fc"+ + "\3\2\2\2\u0530\u0531\7P\2\2\u0531\u0532\7W\2\2\u0532\u0533\7N\2\2\u0533"+ + "\u0534\7N\2\2\u0534\u0535\7K\2\2\u0535\u0536\7H\2\2\u0536\u00fe\3\2\2"+ + "\2\u0537\u0538\7P\2\2\u0538\u0539\7W\2\2\u0539\u053a\7N\2\2\u053a\u053b"+ + "\7N\2\2\u053b\u053c\7U\2\2\u053c\u0100\3\2\2\2\u053d\u053e\7Q\2\2\u053e"+ + "\u053f\7H\2\2\u053f\u0540\7H\2\2\u0540\u0541\7U\2\2\u0541\u0542\7G\2\2"+ + "\u0542\u0543\7V\2\2\u0543\u0102\3\2\2\2\u0544\u0545\7Q\2\2\u0545\u0546"+ + "\7P\2\2\u0546\u0104\3\2\2\2\u0547\u0548\7Q\2\2\u0548\u0549\7P\2\2\u0549"+ + "\u054a\7N\2\2\u054a\u054b\7[\2\2\u054b\u0106\3\2\2\2\u054c\u054d\7Q\2"+ + "\2\u054d\u054e\7R\2\2\u054e\u054f\7V\2\2\u054f\u0550\7K\2\2\u0550\u0551"+ + "\7Q\2\2\u0551\u0552\7P\2\2\u0552\u0108\3\2\2\2\u0553\u0554\7Q\2\2\u0554"+ + "\u0555\7T\2\2\u0555\u010a\3\2\2\2\u0556\u0557\7Q\2\2\u0557\u0558\7T\2"+ + "\2\u0558\u0559\7F\2\2\u0559\u055a\7G\2\2\u055a\u055b\7T\2\2\u055b\u010c"+ + "\3\2\2\2\u055c\u055d\7Q\2\2\u055d\u055e\7T\2\2\u055e\u055f\7F\2\2\u055f"+ + "\u0560\7K\2\2\u0560\u0561\7P\2\2\u0561\u0562\7C\2\2\u0562\u0563\7N\2\2"+ + "\u0563\u0564\7K\2\2\u0564\u0565\7V\2\2\u0565\u0566\7[\2\2\u0566\u010e"+ + "\3\2\2\2\u0567\u0568\7Q\2\2\u0568\u0569\7W\2\2\u0569\u056a\7V\2\2\u056a"+ + "\u056b\7G\2\2\u056b\u056c\7T\2\2\u056c\u0110\3\2\2\2\u056d\u056e\7Q\2"+ + "\2\u056e\u056f\7W\2\2\u056f\u0570\7V\2\2\u0570\u0571\7R\2\2\u0571\u0572"+ + "\7W\2\2\u0572\u0573\7V\2\2\u0573\u0112\3\2\2\2\u0574\u0575\7Q\2\2\u0575"+ + "\u0576\7X\2\2\u0576\u0577\7G\2\2\u0577\u0578\7T\2\2\u0578\u0114\3\2\2"+ + "\2\u0579\u057a\7R\2\2\u057a\u057b\7C\2\2\u057b\u057c\7T\2\2\u057c\u057d"+ + "\7V\2\2\u057d\u057e\7K\2\2\u057e\u057f\7V\2\2\u057f\u0580\7K\2\2\u0580"+ + "\u0581\7Q\2\2\u0581\u0582\7P\2\2\u0582\u0116\3\2\2\2\u0583\u0584\7R\2"+ + "\2\u0584\u0585\7C\2\2\u0585\u0586\7T\2\2\u0586\u0587\7V\2\2\u0587\u0588"+ + "\7K\2\2\u0588\u0589\7V\2\2\u0589\u058a\7K\2\2\u058a\u058b\7Q\2\2\u058b"+ + "\u058c\7P\2\2\u058c\u058d\7U\2\2\u058d\u0118\3\2\2\2\u058e\u058f\7R\2"+ + "\2\u058f\u0590\7Q\2\2\u0590\u0591\7U\2\2\u0591\u0592\7K\2\2\u0592\u0593"+ + "\7V\2\2\u0593\u0594\7K\2\2\u0594\u0595\7Q\2\2\u0595\u0596\7P\2\2\u0596"+ + "\u011a\3\2\2\2\u0597\u0598\7R\2\2\u0598\u0599\7T\2\2\u0599\u059a\7G\2"+ + "\2\u059a\u059b\7E\2\2\u059b\u059c\7G\2\2\u059c\u059d\7F\2\2\u059d\u059e"+ + "\7K\2\2\u059e\u059f\7P\2\2\u059f\u05a0\7I\2\2\u05a0\u011c\3\2\2\2\u05a1"+ + "\u05a2\7R\2\2\u05a2\u05a3\7T\2\2\u05a3\u05a4\7G\2\2\u05a4\u05a5\7R\2\2"+ + "\u05a5\u05a6\7C\2\2\u05a6\u05a7\7T\2\2\u05a7\u05a8\7G\2\2\u05a8\u011e"+ + "\3\2\2\2\u05a9\u05aa\7R\2\2\u05aa\u05ab\7T\2\2\u05ab\u05ac\7K\2\2\u05ac"+ + "\u05ad\7X\2\2\u05ad\u05ae\7K\2\2\u05ae\u05af\7N\2\2\u05af\u05b0\7G\2\2"+ + "\u05b0\u05b1\7I\2\2\u05b1\u05b2\7G\2\2\u05b2\u05b3\7U\2\2\u05b3\u0120"+ + "\3\2\2\2\u05b4\u05b5\7R\2\2\u05b5\u05b6\7T\2\2\u05b6\u05b7\7Q\2\2\u05b7"+ + "\u05b8\7R\2\2\u05b8\u05b9\7G\2\2\u05b9\u05ba\7T\2\2\u05ba\u05bb\7V\2\2"+ + "\u05bb\u05bc\7K\2\2\u05bc\u05bd\7G\2\2\u05bd\u05be\7U\2\2\u05be\u0122"+ + "\3\2\2\2\u05bf\u05c0\7T\2\2\u05c0\u05c1\7C\2\2\u05c1\u05c2\7P\2\2\u05c2"+ + "\u05c3\7I\2\2\u05c3\u05c4\7G\2\2\u05c4\u0124\3\2\2\2\u05c5\u05c6\7T\2"+ + "\2\u05c6\u05c7\7G\2\2\u05c7\u05c8\7C\2\2\u05c8\u05c9\7F\2\2\u05c9\u0126"+ + "\3\2\2\2\u05ca\u05cb\7T\2\2\u05cb\u05cc\7G\2\2\u05cc\u05cd\7E\2\2\u05cd"+ + "\u05ce\7W\2\2\u05ce\u05cf\7T\2\2\u05cf\u05d0\7U\2\2\u05d0\u05d1\7K\2\2"+ + "\u05d1\u05d2\7X\2\2\u05d2\u05d3\7G\2\2\u05d3\u0128\3\2\2\2\u05d4\u05d5"+ + "\7T\2\2\u05d5\u05d6\7G\2\2\u05d6\u05d7\7H\2\2\u05d7\u05d8\7T\2\2\u05d8"+ + "\u05d9\7G\2\2\u05d9\u05da\7U\2\2\u05da\u05db\7J\2\2\u05db\u012a\3\2\2"+ + "\2\u05dc\u05dd\7T\2\2\u05dd\u05de\7G\2\2\u05de\u05df\7P\2\2\u05df\u05e0"+ + "\7C\2\2\u05e0\u05e1\7O\2\2\u05e1\u05e2\7G\2\2\u05e2\u012c\3\2\2\2\u05e3"+ + "\u05e4\7T\2\2\u05e4\u05e5\7G\2\2\u05e5\u05e6\7R\2\2\u05e6\u05e7\7G\2\2"+ + "\u05e7\u05e8\7C\2\2\u05e8\u05e9\7V\2\2\u05e9\u05ea\7C\2\2\u05ea\u05eb"+ + "\7D\2\2\u05eb\u05ec\7N\2\2\u05ec\u05ed\7G\2\2\u05ed\u012e\3\2\2\2\u05ee"+ + "\u05ef\7T\2\2\u05ef\u05f0\7G\2\2\u05f0\u05f1\7R\2\2\u05f1\u05f2\7N\2\2"+ + "\u05f2\u05f3\7C\2\2\u05f3\u05f4\7E\2\2\u05f4\u05f5\7G\2\2\u05f5\u0130"+ + "\3\2\2\2\u05f6\u05f7\7T\2\2\u05f7\u05f8\7G\2\2\u05f8\u05f9\7U\2\2\u05f9"+ + "\u05fa\7G\2\2\u05fa\u05fb\7V\2\2\u05fb\u0132\3\2\2\2\u05fc\u05fd\7T\2"+ + "\2\u05fd\u05fe\7G\2\2\u05fe\u05ff\7U\2\2\u05ff\u0600\7R\2\2\u0600\u0601"+ + "\7G\2\2\u0601\u0602\7E\2\2\u0602\u0603\7V\2\2\u0603\u0134\3\2\2\2\u0604"+ + "\u0605\7T\2\2\u0605\u0606\7G\2\2\u0606\u0607\7U\2\2\u0607\u0608\7V\2\2"+ + "\u0608\u0609\7T\2\2\u0609\u060a\7K\2\2\u060a\u060b\7E\2\2\u060b\u060c"+ + "\7V\2\2\u060c\u0136\3\2\2\2\u060d\u060e\7T\2\2\u060e\u060f\7G\2\2\u060f"+ + "\u0610\7V\2\2\u0610\u0611\7W\2\2\u0611\u0612\7T\2\2\u0612\u0613\7P\2\2"+ + "\u0613\u0138\3\2\2\2\u0614\u0615\7T\2\2\u0615\u0616\7G\2\2\u0616\u0617"+ + "\7V\2\2\u0617\u0618\7W\2\2\u0618\u0619\7T\2\2\u0619\u061a\7P\2\2\u061a"+ + "\u061b\7U\2\2\u061b\u013a\3\2\2\2\u061c\u061d\7T\2\2\u061d\u061e\7G\2"+ + "\2\u061e\u061f\7X\2\2\u061f\u0620\7Q\2\2\u0620\u0621\7M\2\2\u0621\u0622"+ + "\7G\2\2\u0622\u013c\3\2\2\2\u0623\u0624\7T\2\2\u0624\u0625\7K\2\2\u0625"+ + "\u0626\7I\2\2\u0626\u0627\7J\2\2\u0627\u0628\7V\2\2\u0628\u013e\3\2\2"+ + "\2\u0629\u062a\7T\2\2\u062a\u062b\7Q\2\2\u062b\u062c\7N\2\2\u062c\u062d"+ + "\7G\2\2\u062d\u0140\3\2\2\2\u062e\u062f\7T\2\2\u062f\u0630\7Q\2\2\u0630"+ + "\u0631\7N\2\2\u0631\u0632\7G\2\2\u0632\u0633\7U\2\2\u0633\u0142\3\2\2"+ + "\2\u0634\u0635\7T\2\2\u0635\u0636\7Q\2\2\u0636\u0637\7N\2\2\u0637\u0638"+ + "\7N\2\2\u0638\u0639\7D\2\2\u0639\u063a\7C\2\2\u063a\u063b\7E\2\2\u063b"+ + "\u063c\7M\2\2\u063c\u0144\3\2\2\2\u063d\u063e\7T\2\2\u063e\u063f\7Q\2"+ + "\2\u063f\u0640\7N\2\2\u0640\u0641\7N\2\2\u0641\u0642\7W\2\2\u0642\u0643"+ + "\7R\2\2\u0643\u0146\3\2\2\2\u0644\u0645\7T\2\2\u0645\u0646\7Q\2\2\u0646"+ + "\u0647\7Y\2\2\u0647\u0148\3\2\2\2\u0648\u0649\7T\2\2\u0649\u064a\7Q\2"+ + "\2\u064a\u064b\7Y\2\2\u064b\u064c\7U\2\2\u064c\u014a\3\2\2\2\u064d\u064e"+ + "\7U\2\2\u064e\u064f\7E\2\2\u064f\u0650\7J\2\2\u0650\u0651\7G\2\2\u0651"+ + "\u0652\7O\2\2\u0652\u0653\7C\2\2\u0653\u014c\3\2\2\2\u0654\u0655\7U\2"+ + "\2\u0655\u0656\7E\2\2\u0656\u0657\7J\2\2\u0657\u0658\7G\2\2\u0658\u0659"+ + "\7O\2\2\u0659\u065a\7C\2\2\u065a\u065b\7U\2\2\u065b\u014e\3\2\2\2\u065c"+ + "\u065d\7U\2\2\u065d\u065e\7G\2\2\u065e\u065f\7E\2\2\u065f\u0660\7Q\2\2"+ + "\u0660\u0661\7P\2\2\u0661\u0662\7F\2\2\u0662\u0150\3\2\2\2\u0663\u0664"+ + "\7U\2\2\u0664\u0665\7G\2\2\u0665\u0666\7E\2\2\u0666\u0667\7W\2\2\u0667"+ + "\u0668\7T\2\2\u0668\u0669\7K\2\2\u0669\u066a\7V\2\2\u066a\u066b\7[\2\2"+ + "\u066b\u0152\3\2\2\2\u066c\u066d\7U\2\2\u066d\u066e\7G\2\2\u066e\u066f"+ + "\7N\2\2\u066f\u0670\7G\2\2\u0670\u0671\7E\2\2\u0671\u0672\7V\2\2\u0672"+ + "\u0154\3\2\2\2\u0673\u0674\7U\2\2\u0674\u0675\7G\2\2\u0675\u0676\7T\2"+ + "\2\u0676\u0677\7K\2\2\u0677\u0678\7C\2\2\u0678\u0679\7N\2\2\u0679\u067a"+ + "\7K\2\2\u067a\u067b\7\\\2\2\u067b\u067c\7C\2\2\u067c\u067d\7D\2\2\u067d"+ + "\u067e\7N\2\2\u067e\u067f\7G\2\2\u067f\u0156\3\2\2\2\u0680\u0681\7U\2"+ + "\2\u0681\u0682\7G\2\2\u0682\u0683\7U\2\2\u0683\u0684\7U\2\2\u0684\u0685"+ + "\7K\2\2\u0685\u0686\7Q\2\2\u0686\u0687\7P\2\2\u0687\u0158\3\2\2\2\u0688"+ + "\u0689\7U\2\2\u0689\u068a\7G\2\2\u068a\u068b\7V\2\2\u068b\u015a\3\2\2"+ + "\2\u068c\u068d\7U\2\2\u068d\u068e\7G\2\2\u068e\u068f\7V\2\2\u068f\u0690"+ + "\7U\2\2\u0690\u015c\3\2\2\2\u0691\u0692\7U\2\2\u0692\u0693\7J\2\2\u0693"+ + "\u0694\7Q\2\2\u0694\u0695\7Y\2\2\u0695\u015e\3\2\2\2\u0696\u0697\7U\2"+ + "\2\u0697\u0698\7Q\2\2\u0698\u0699\7O\2\2\u0699\u069a\7G\2\2\u069a\u0160"+ + "\3\2\2\2\u069b\u069c\7U\2\2\u069c\u069d\7S\2\2\u069d\u069e\7N\2\2\u069e"+ + "\u0162\3\2\2\2\u069f\u06a0\7U\2\2\u06a0\u06a1\7V\2\2\u06a1\u06a2\7C\2"+ + "\2\u06a2\u06a3\7T\2\2\u06a3\u06a4\7V\2\2\u06a4\u0164\3\2\2\2\u06a5\u06a6"+ + "\7U\2\2\u06a6\u06a7\7V\2\2\u06a7\u06a8\7C\2\2\u06a8\u06a9\7V\2\2\u06a9"+ + "\u06aa\7U\2\2\u06aa\u0166\3\2\2\2\u06ab\u06ac\7U\2\2\u06ac\u06ad\7W\2"+ + "\2\u06ad\u06ae\7D\2\2\u06ae\u06af\7U\2\2\u06af\u06b0\7V\2\2\u06b0\u06b1"+ + "\7T\2\2\u06b1\u06b2\7K\2\2\u06b2\u06b3\7P\2\2\u06b3\u06b4\7I\2\2\u06b4"+ + "\u0168\3\2\2\2\u06b5\u06b6\7U\2\2\u06b6\u06b7\7[\2\2\u06b7\u06b8\7U\2"+ + "\2\u06b8\u06b9\7V\2\2\u06b9\u06ba\7G\2\2\u06ba\u06bb\7O\2\2\u06bb\u016a"+ + "\3\2\2\2\u06bc\u06bd\7V\2\2\u06bd\u06be\7C\2\2\u06be\u06bf\7D\2\2\u06bf"+ + "\u06c0\7N\2\2\u06c0\u06c1\7G\2\2\u06c1\u016c\3\2\2\2\u06c2\u06c3\7V\2"+ + "\2\u06c3\u06c4\7C\2\2\u06c4\u06c5\7D\2\2\u06c5\u06c6\7N\2\2\u06c6\u06c7"+ + "\7G\2\2\u06c7\u06c8\7U\2\2\u06c8\u016e\3\2\2\2\u06c9\u06ca\7V\2\2\u06ca"+ + "\u06cb\7C\2\2\u06cb\u06cc\7D\2\2\u06cc\u06cd\7N\2\2\u06cd\u06ce\7G\2\2"+ + "\u06ce\u06cf\7U\2\2\u06cf\u06d0\7C\2\2\u06d0\u06d1\7O\2\2\u06d1\u06d2"+ + "\7R\2\2\u06d2\u06d3\7N\2\2\u06d3\u06d4\7G\2\2\u06d4\u0170\3\2\2\2\u06d5"+ + "\u06d6\7V\2\2\u06d6\u06d7\7G\2\2\u06d7\u06d8\7O\2\2\u06d8\u06d9\7R\2\2"+ + "\u06d9\u06da\7Q\2\2\u06da\u06db\7T\2\2\u06db\u06dc\7C\2\2\u06dc\u06dd"+ + "\7T\2\2\u06dd\u06de\7[\2\2\u06de\u0172\3\2\2\2\u06df\u06e0\7V\2\2\u06e0"+ + "\u06e1\7G\2\2\u06e1\u06e2\7Z\2\2\u06e2\u06e3\7V\2\2\u06e3\u0174\3\2\2"+ + "\2\u06e4\u06e5\7V\2\2\u06e5\u06e6\7J\2\2\u06e6\u06e7\7G\2\2\u06e7\u06e8"+ + "\7P\2\2\u06e8\u0176\3\2\2\2\u06e9\u06ea\7V\2\2\u06ea\u06eb\7K\2\2\u06eb"+ + "\u06ec\7O\2\2\u06ec\u06ed\7G\2\2\u06ed\u0178\3\2\2\2\u06ee\u06ef\7V\2"+ + "\2\u06ef\u06f0\7K\2\2\u06f0\u06f1\7O\2\2\u06f1\u06f2\7G\2\2\u06f2\u06f3"+ + "\7U\2\2\u06f3\u06f4\7V\2\2\u06f4\u06f5\7C\2\2\u06f5\u06f6\7O\2\2\u06f6"+ + "\u06f7\7R\2\2\u06f7\u017a\3\2\2\2\u06f8\u06f9\7V\2\2\u06f9\u06fa\7Q\2"+ + "\2\u06fa\u017c\3\2\2\2\u06fb\u06fc\7V\2\2\u06fc\u06fd\7T\2\2\u06fd\u06fe"+ + "\7C\2\2\u06fe\u06ff\7P\2\2\u06ff\u0700\7U\2\2\u0700\u0701\7C\2\2\u0701"+ + "\u0702\7E\2\2\u0702\u0703\7V\2\2\u0703\u0704\7K\2\2\u0704\u0705\7Q\2\2"+ + "\u0705\u0706\7P\2\2\u0706\u017e\3\2\2\2\u0707\u0708\7V\2\2\u0708\u0709"+ + "\7T\2\2\u0709\u070a\7W\2\2\u070a\u070b\7G\2\2\u070b\u0180\3\2\2\2\u070c"+ + "\u070d\7V\2\2\u070d\u070e\7T\2\2\u070e\u070f\7[\2\2\u070f\u0710\7a\2\2"+ + "\u0710\u0711\7E\2\2\u0711\u0712\7C\2\2\u0712\u0713\7U\2\2\u0713\u0714"+ + "\7V\2\2\u0714\u0182\3\2\2\2\u0715\u0716\7V\2\2\u0716\u0717\7[\2\2\u0717"+ + "\u0718\7R\2\2\u0718\u0719\7G\2\2\u0719\u0184\3\2\2\2\u071a\u071b\7W\2"+ + "\2\u071b\u071c\7G\2\2\u071c\u071d\7U\2\2\u071d\u071e\7E\2\2\u071e\u071f"+ + "\7C\2\2\u071f\u0720\7R\2\2\u0720\u0721\7G\2\2\u0721\u0186\3\2\2\2\u0722"+ + "\u0723\7W\2\2\u0723\u0724\7P\2\2\u0724\u0725\7D\2\2\u0725\u0726\7Q\2\2"+ + "\u0726\u0727\7W\2\2\u0727\u0728\7P\2\2\u0728\u0729\7F\2\2\u0729\u072a"+ + "\7G\2\2\u072a\u072b\7F\2\2\u072b\u0188\3\2\2\2\u072c\u072d\7W\2\2\u072d"+ + "\u072e\7P\2\2\u072e\u072f\7E\2\2\u072f\u0730\7Q\2\2\u0730\u0731\7O\2\2"+ + "\u0731\u0732\7O\2\2\u0732\u0733\7K\2\2\u0733\u0734\7V\2\2\u0734\u0735"+ + "\7V\2\2\u0735\u0736\7G\2\2\u0736\u0737\7F\2\2\u0737\u018a\3\2\2\2\u0738"+ + "\u0739\7W\2\2\u0739\u073a\7P\2\2\u073a\u073b\7K\2\2\u073b\u073c\7Q\2\2"+ + "\u073c\u073d\7P\2\2\u073d\u018c\3\2\2\2\u073e\u073f\7W\2\2\u073f\u0740"+ + "\7P\2\2\u0740\u0741\7P\2\2\u0741\u0742\7G\2\2\u0742\u0743\7U\2\2\u0743"+ + "\u0744\7V\2\2\u0744\u018e\3\2\2\2\u0745\u0746\7W\2\2\u0746\u0747\7U\2"+ + "\2\u0747\u0748\7G\2\2\u0748\u0190\3\2\2\2\u0749\u074a\7W\2\2\u074a\u074b"+ + "\7U\2\2\u074b\u074c\7G\2\2\u074c\u074d\7T\2\2\u074d\u0192\3\2\2\2\u074e"+ + "\u074f\7W\2\2\u074f\u0750\7U\2\2\u0750\u0751\7K\2\2\u0751\u0752\7P\2\2"+ + "\u0752\u0753\7I\2\2\u0753\u0194\3\2\2\2\u0754\u0755\7X\2\2\u0755\u0756"+ + "\7C\2\2\u0756\u0757\7N\2\2\u0757\u0758\7K\2\2\u0758\u0759\7F\2\2\u0759"+ + "\u075a\7C\2\2\u075a\u075b\7V\2\2\u075b\u075c\7G\2\2\u075c\u0196\3\2\2"+ + "\2\u075d\u075e\7X\2\2\u075e\u075f\7C\2\2\u075f\u0760\7N\2\2\u0760\u0761"+ + "\7W\2\2\u0761\u0762\7G\2\2\u0762\u0763\7U\2\2\u0763\u0198\3\2\2\2\u0764"+ + "\u0765\7X\2\2\u0765\u0766\7G\2\2\u0766\u0767\7T\2\2\u0767\u0768\7D\2\2"+ + "\u0768\u0769\7Q\2\2\u0769\u076a\7U\2\2\u076a\u076b\7G\2\2\u076b\u019a"+ + "\3\2\2\2\u076c\u076d\7X\2\2\u076d\u076e\7K\2\2\u076e\u076f\7G\2\2\u076f"+ + "\u0770\7Y\2\2\u0770\u019c\3\2\2\2\u0771\u0772\7Y\2\2\u0772\u0773\7J\2"+ + "\2\u0773\u0774\7G\2\2\u0774\u0775\7P\2\2\u0775\u019e\3\2\2\2\u0776\u0777"+ + "\7Y\2\2\u0777\u0778\7J\2\2\u0778\u0779\7G\2\2\u0779\u077a\7T\2\2\u077a"+ + "\u077b\7G\2\2\u077b\u01a0\3\2\2\2\u077c\u077d\7Y\2\2\u077d\u077e\7K\2"+ + "\2\u077e\u077f\7V\2\2\u077f\u0780\7J\2\2\u0780\u01a2\3\2\2\2\u0781\u0782"+ + "\7Y\2\2\u0782\u0783\7Q\2\2\u0783\u0784\7T\2\2\u0784\u0785\7M\2\2\u0785"+ + "\u01a4\3\2\2\2\u0786\u0787\7Y\2\2\u0787\u0788\7T\2\2\u0788\u0789\7K\2"+ + "\2\u0789\u078a\7V\2\2\u078a\u078b\7G\2\2\u078b\u01a6\3\2\2\2\u078c\u078d"+ + "\7[\2\2\u078d\u078e\7G\2\2\u078e\u078f\7C\2\2\u078f\u0790\7T\2\2\u0790"+ + "\u01a8\3\2\2\2\u0791\u0792\7\\\2\2\u0792\u0793\7Q\2\2\u0793\u0794\7P\2"+ + "\2\u0794\u0795\7G\2\2\u0795\u01aa\3\2\2\2\u0796\u0797\7?\2\2\u0797\u01ac"+ + "\3\2\2\2\u0798\u0799\7>\2\2\u0799\u079d\7@\2\2\u079a\u079b\7#\2\2\u079b"+ + "\u079d\7?\2\2\u079c\u0798\3\2\2\2\u079c\u079a\3\2\2\2\u079d\u01ae\3\2"+ + "\2\2\u079e\u079f\7>\2\2\u079f\u01b0\3\2\2\2\u07a0\u07a1\7>\2\2\u07a1\u07a2"+ + "\7?\2\2\u07a2\u01b2\3\2\2\2\u07a3\u07a4\7@\2\2\u07a4\u01b4\3\2\2\2\u07a5"+ + "\u07a6\7@\2\2\u07a6\u07a7\7?\2\2\u07a7\u01b6\3\2\2\2\u07a8\u07a9\7-\2"+ + "\2\u07a9\u01b8\3\2\2\2\u07aa\u07ab\7/\2\2\u07ab\u01ba\3\2\2\2\u07ac\u07ad"+ + "\7,\2\2\u07ad\u01bc\3\2\2\2\u07ae\u07af\7\61\2\2\u07af\u01be\3\2\2\2\u07b0"+ + "\u07b1\7\'\2\2\u07b1\u01c0\3\2\2\2\u07b2\u07b3\7~\2\2\u07b3\u07b4\7~\2"+ + "\2\u07b4\u01c2\3\2\2\2\u07b5\u07bb\7)\2\2\u07b6\u07ba\n\2\2\2\u07b7\u07b8"+ + "\7)\2\2\u07b8\u07ba\7)\2\2\u07b9\u07b6\3\2\2\2\u07b9\u07b7\3\2\2\2\u07ba"+ + "\u07bd\3\2\2\2\u07bb\u07b9\3\2\2\2\u07bb\u07bc\3\2\2\2\u07bc\u07be\3\2"+ + "\2\2\u07bd\u07bb\3\2\2\2\u07be\u07bf\7)\2\2\u07bf\u01c4\3\2\2\2\u07c0"+ + "\u07c1\7W\2\2\u07c1\u07c2\7(\2\2\u07c2\u07c3\7)\2\2\u07c3\u07c9\3\2\2"+ + "\2\u07c4\u07c8\n\2\2\2\u07c5\u07c6\7)\2\2\u07c6\u07c8\7)\2\2\u07c7\u07c4"+ + "\3\2\2\2\u07c7\u07c5\3\2\2\2\u07c8\u07cb\3\2\2\2\u07c9\u07c7\3\2\2\2\u07c9"+ + "\u07ca\3\2\2\2\u07ca\u07cc\3\2\2\2\u07cb\u07c9\3\2\2\2\u07cc\u07cd\7)"+ + "\2\2\u07cd\u01c6\3\2\2\2\u07ce\u07cf\7Z\2\2\u07cf\u07d0\7)\2\2\u07d0\u07d4"+ + "\3\2\2\2\u07d1\u07d3\n\2\2\2\u07d2\u07d1\3\2\2\2\u07d3\u07d6\3\2\2\2\u07d4"+ + "\u07d2\3\2\2\2\u07d4\u07d5\3\2\2\2\u07d5\u07d7\3\2\2\2\u07d6\u07d4\3\2"+ + "\2\2\u07d7\u07d8\7)\2\2\u07d8\u01c8\3\2\2\2\u07d9\u07db\5\u01df\u00f0"+ + "\2\u07da\u07d9\3\2\2\2\u07db\u07dc\3\2\2\2\u07dc\u07da\3\2\2\2\u07dc\u07dd"+ + "\3\2\2\2\u07dd\u01ca\3\2\2\2\u07de\u07e0\5\u01df\u00f0\2\u07df\u07de\3"+ + "\2\2\2\u07e0\u07e1\3\2\2\2\u07e1\u07df\3\2\2\2\u07e1\u07e2\3\2\2\2\u07e2"+ + "\u07e3\3\2\2\2\u07e3\u07e7\7\60\2\2\u07e4\u07e6\5\u01df\u00f0\2\u07e5"+ + "\u07e4\3\2\2\2\u07e6\u07e9\3\2\2\2\u07e7\u07e5\3\2\2\2\u07e7\u07e8\3\2"+ + "\2\2\u07e8\u07f1\3\2\2\2\u07e9\u07e7\3\2\2\2\u07ea\u07ec\7\60\2\2\u07eb"+ + "\u07ed\5\u01df\u00f0\2\u07ec\u07eb\3\2\2\2\u07ed\u07ee\3\2\2\2\u07ee\u07ec"+ + "\3\2\2\2\u07ee\u07ef\3\2\2\2\u07ef\u07f1\3\2\2\2\u07f0\u07df\3\2\2\2\u07f0"+ + "\u07ea\3\2\2\2\u07f1\u01cc\3\2\2\2\u07f2\u07f4\5\u01df\u00f0\2\u07f3\u07f2"+ + "\3\2\2\2\u07f4\u07f5\3\2\2\2\u07f5\u07f3\3\2\2\2\u07f5\u07f6\3\2\2\2\u07f6"+ + "\u07fe\3\2\2\2\u07f7\u07fb\7\60\2\2\u07f8\u07fa\5\u01df\u00f0\2\u07f9"+ + "\u07f8\3\2\2\2\u07fa\u07fd\3\2\2\2\u07fb\u07f9\3\2\2\2\u07fb\u07fc\3\2"+ + "\2\2\u07fc\u07ff\3\2\2\2\u07fd\u07fb\3\2\2\2\u07fe\u07f7\3\2\2\2\u07fe"+ + "\u07ff\3\2\2\2\u07ff\u0800\3\2\2\2\u0800\u0801\5\u01dd\u00ef\2\u0801\u080b"+ + "\3\2\2\2\u0802\u0804\7\60\2\2\u0803\u0805\5\u01df\u00f0\2\u0804\u0803"+ + "\3\2\2\2\u0805\u0806\3\2\2\2\u0806\u0804\3\2\2\2\u0806\u0807\3\2\2\2\u0807"+ + "\u0808\3\2\2\2\u0808\u0809\5\u01dd\u00ef\2\u0809\u080b\3\2\2\2\u080a\u07f3"+ + "\3\2\2\2\u080a\u0802\3\2\2\2\u080b\u01ce\3\2\2\2\u080c\u080f\5\u01e1\u00f1"+ + "\2\u080d\u080f\7a\2\2\u080e\u080c\3\2\2\2\u080e\u080d\3\2\2\2\u080f\u0815"+ + "\3\2\2\2\u0810\u0814\5\u01e1\u00f1\2\u0811\u0814\5\u01df\u00f0\2\u0812"+ + "\u0814\t\3\2\2\u0813\u0810\3\2\2\2\u0813\u0811\3\2\2\2\u0813\u0812\3\2"+ + "\2\2\u0814\u0817\3\2\2\2\u0815\u0813\3\2\2\2\u0815\u0816\3\2\2\2\u0816"+ + "\u01d0\3\2\2\2\u0817\u0815\3\2\2\2\u0818\u081c\5\u01df\u00f0\2\u0819\u081d"+ + "\5\u01e1\u00f1\2\u081a\u081d\5\u01df\u00f0\2\u081b\u081d\t\3\2\2\u081c"+ + "\u0819\3\2\2\2\u081c\u081a\3\2\2\2\u081c\u081b\3\2\2\2\u081d\u081e\3\2"+ + "\2\2\u081e\u081c\3\2\2\2\u081e\u081f\3\2\2\2\u081f\u01d2\3\2\2\2\u0820"+ + "\u0826\7$\2\2\u0821\u0825\n\4\2\2\u0822\u0823\7$\2\2\u0823\u0825\7$\2"+ + "\2\u0824\u0821\3\2\2\2\u0824\u0822\3\2\2\2\u0825\u0828\3\2\2\2\u0826\u0824"+ + "\3\2\2\2\u0826\u0827\3\2\2\2\u0827\u0829\3\2\2\2\u0828\u0826\3\2\2\2\u0829"+ + "\u082a\7$\2\2\u082a\u01d4\3\2\2\2\u082b\u0831\7b\2\2\u082c\u0830\n\5\2"+ + "\2\u082d\u082e\7b\2\2\u082e\u0830\7b\2\2\u082f\u082c\3\2\2\2\u082f\u082d"+ + "\3\2\2\2\u0830\u0833\3\2\2\2\u0831\u082f\3\2\2\2\u0831\u0832\3\2\2\2\u0832"+ + "\u0834\3\2\2\2\u0833\u0831\3\2\2\2\u0834\u0835\7b\2\2\u0835\u01d6\3\2"+ + "\2\2\u0836\u0837\7V\2\2\u0837\u0838\7K\2\2\u0838\u0839\7O\2\2\u0839\u083a"+ + "\7G\2\2\u083a\u083b\3\2\2\2\u083b\u083c\5\u01e7\u00f4\2\u083c\u083d\7"+ + "Y\2\2\u083d\u083e\7K\2\2\u083e\u083f\7V\2\2\u083f\u0840\7J\2\2\u0840\u0841"+ + "\3\2\2\2\u0841\u0842\5\u01e7\u00f4\2\u0842\u0843\7V\2\2\u0843\u0844\7"+ + "K\2\2\u0844\u0845\7O\2\2\u0845\u0846\7G\2\2\u0846\u0847\3\2\2\2\u0847"+ + "\u0848\5\u01e7\u00f4\2\u0848\u0849\7\\\2\2\u0849\u084a\7Q\2\2\u084a\u084b"+ + "\7P\2\2\u084b\u084c\7G\2\2\u084c\u01d8\3\2\2\2\u084d\u084e\7V\2\2\u084e"+ + "\u084f\7K\2\2\u084f\u0850\7O\2\2\u0850\u0851\7G\2\2\u0851\u0852\7U\2\2"+ + "\u0852\u0853\7V\2\2\u0853\u0854\7C\2\2\u0854\u0855\7O\2\2\u0855\u0856"+ + "\7R\2\2\u0856\u0857\3\2\2\2\u0857\u0858\5\u01e7\u00f4\2\u0858\u0859\7"+ + "Y\2\2\u0859\u085a\7K\2\2\u085a\u085b\7V\2\2\u085b\u085c\7J\2\2\u085c\u085d"+ + "\3\2\2\2\u085d\u085e\5\u01e7\u00f4\2\u085e\u085f\7V\2\2\u085f\u0860\7"+ + "K\2\2\u0860\u0861\7O\2\2\u0861\u0862\7G\2\2\u0862\u0863\3\2\2\2\u0863"+ + "\u0864\5\u01e7\u00f4\2\u0864\u0865\7\\\2\2\u0865\u0866\7Q\2\2\u0866\u0867"+ + "\7P\2\2\u0867\u0868\7G\2\2\u0868\u01da\3\2\2\2\u0869\u086a\7F\2\2\u086a"+ + "\u086b\7Q\2\2\u086b\u086c\7W\2\2\u086c\u086d\7D\2\2\u086d\u086e\7N\2\2"+ + "\u086e\u086f\7G\2\2\u086f\u0870\3\2\2\2\u0870\u0871\5\u01e7\u00f4\2\u0871"+ + "\u0872\7R\2\2\u0872\u0873\7T\2\2\u0873\u0874\7G\2\2\u0874\u0875\7E\2\2"+ + "\u0875\u0876\7K\2\2\u0876\u0877\7U\2\2\u0877\u0878\7K\2\2\u0878\u0879"+ + "\7Q\2\2\u0879\u087a\7P\2\2\u087a\u01dc\3\2\2\2\u087b\u087d\7G\2\2\u087c"+ + "\u087e\t\6\2\2\u087d\u087c\3\2\2\2\u087d\u087e\3\2\2\2\u087e\u0880\3\2"+ + "\2\2\u087f\u0881\5\u01df\u00f0\2\u0880\u087f\3\2\2\2\u0881\u0882\3\2\2"+ + "\2\u0882\u0880\3\2\2\2\u0882\u0883\3\2\2\2\u0883\u01de\3\2\2\2\u0884\u0885"+ + "\t\7\2\2\u0885\u01e0\3\2\2\2\u0886\u0887\t\b\2\2\u0887\u01e2\3\2\2\2\u0888"+ + "\u0889\7/\2\2\u0889\u088a\7/\2\2\u088a\u088e\3\2\2\2\u088b\u088d\n\t\2"+ + "\2\u088c\u088b\3\2\2\2\u088d\u0890\3\2\2\2\u088e\u088c\3\2\2\2\u088e\u088f"+ + "\3\2\2\2\u088f\u0892\3\2\2\2\u0890\u088e\3\2\2\2\u0891\u0893\7\17\2\2"+ + "\u0892\u0891\3\2\2\2\u0892\u0893\3\2\2\2\u0893\u0895\3\2\2\2\u0894\u0896"+ + "\7\f\2\2\u0895\u0894\3\2\2\2\u0895\u0896\3\2\2\2\u0896\u0897\3\2\2\2\u0897"+ + "\u0898\b\u00f2\2\2\u0898\u01e4\3\2\2\2\u0899\u089a\7\61\2\2\u089a\u089b"+ + "\7,\2\2\u089b\u089f\3\2\2\2\u089c\u089e\13\2\2\2\u089d\u089c\3\2\2\2\u089e"+ + "\u08a1\3\2\2\2\u089f\u08a0\3\2\2\2\u089f\u089d\3\2\2\2\u08a0\u08a2\3\2"+ + "\2\2\u08a1\u089f\3\2\2\2\u08a2\u08a3\7,\2\2\u08a3\u08a4\7\61\2\2\u08a4"+ + "\u08a5\3\2\2\2\u08a5\u08a6\b\u00f3\2\2\u08a6\u01e6\3\2\2\2\u08a7\u08a9"+ + "\t\n\2\2\u08a8\u08a7\3\2\2\2\u08a9\u08aa\3\2\2\2\u08aa\u08a8\3\2\2\2\u08aa"+ + "\u08ab\3\2\2\2\u08ab\u08ac\3\2\2\2\u08ac\u08ad\b\u00f4\2\2\u08ad\u01e8"+ + "\3\2\2\2\u08ae\u08af\13\2\2\2\u08af\u01ea\3\2\2\2#\2\u079c\u07b9\u07bb"+ + "\u07c7\u07c9\u07d4\u07dc\u07e1\u07e7\u07ee\u07f0\u07f5\u07fb\u07fe\u0806"+ + "\u080a\u080e\u0813\u0815\u081c\u081e\u0824\u0826\u082f\u0831\u087d\u0882"+ + "\u088e\u0892\u0895\u089f\u08aa\3\2\3\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java new file mode 100644 index 0000000..d403528 --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java @@ -0,0 +1,2372 @@ +// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.presto; +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link PrestoSqlParser}. + */ +public interface PrestoSqlListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link PrestoSqlParser#singleStatement}. + * @param ctx the parse tree + */ + void enterSingleStatement(PrestoSqlParser.SingleStatementContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#singleStatement}. + * @param ctx the parse tree + */ + void exitSingleStatement(PrestoSqlParser.SingleStatementContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#standaloneExpression}. + * @param ctx the parse tree + */ + void enterStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#standaloneExpression}. + * @param ctx the parse tree + */ + void exitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#standaloneRoutineBody}. + * @param ctx the parse tree + */ + void enterStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#standaloneRoutineBody}. + * @param ctx the parse tree + */ + void exitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx); + /** + * Enter a parse tree produced by the {@code statementDefault} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterStatementDefault(PrestoSqlParser.StatementDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code statementDefault} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx); + /** + * Enter a parse tree produced by the {@code use} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterUse(PrestoSqlParser.UseContext ctx); + /** + * Exit a parse tree produced by the {@code use} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitUse(PrestoSqlParser.UseContext ctx); + /** + * Enter a parse tree produced by the {@code createSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateSchema(PrestoSqlParser.CreateSchemaContext ctx); + /** + * Exit a parse tree produced by the {@code createSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx); + /** + * Enter a parse tree produced by the {@code dropSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropSchema(PrestoSqlParser.DropSchemaContext ctx); + /** + * Exit a parse tree produced by the {@code dropSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropSchema(PrestoSqlParser.DropSchemaContext ctx); + /** + * Enter a parse tree produced by the {@code renameSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRenameSchema(PrestoSqlParser.RenameSchemaContext ctx); + /** + * Exit a parse tree produced by the {@code renameSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx); + /** + * Enter a parse tree produced by the {@code createTableAsSelect} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx); + /** + * Exit a parse tree produced by the {@code createTableAsSelect} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx); + /** + * Enter a parse tree produced by the {@code createTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateTable(PrestoSqlParser.CreateTableContext ctx); + /** + * Exit a parse tree produced by the {@code createTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateTable(PrestoSqlParser.CreateTableContext ctx); + /** + * Enter a parse tree produced by the {@code dropTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropTable(PrestoSqlParser.DropTableContext ctx); + /** + * Exit a parse tree produced by the {@code dropTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropTable(PrestoSqlParser.DropTableContext ctx); + /** + * Enter a parse tree produced by the {@code insertInto} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterInsertInto(PrestoSqlParser.InsertIntoContext ctx); + /** + * Exit a parse tree produced by the {@code insertInto} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitInsertInto(PrestoSqlParser.InsertIntoContext ctx); + /** + * Enter a parse tree produced by the {@code delete} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDelete(PrestoSqlParser.DeleteContext ctx); + /** + * Exit a parse tree produced by the {@code delete} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDelete(PrestoSqlParser.DeleteContext ctx); + /** + * Enter a parse tree produced by the {@code renameTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRenameTable(PrestoSqlParser.RenameTableContext ctx); + /** + * Exit a parse tree produced by the {@code renameTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRenameTable(PrestoSqlParser.RenameTableContext ctx); + /** + * Enter a parse tree produced by the {@code renameColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRenameColumn(PrestoSqlParser.RenameColumnContext ctx); + /** + * Exit a parse tree produced by the {@code renameColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRenameColumn(PrestoSqlParser.RenameColumnContext ctx); + /** + * Enter a parse tree produced by the {@code dropColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropColumn(PrestoSqlParser.DropColumnContext ctx); + /** + * Exit a parse tree produced by the {@code dropColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropColumn(PrestoSqlParser.DropColumnContext ctx); + /** + * Enter a parse tree produced by the {@code addColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterAddColumn(PrestoSqlParser.AddColumnContext ctx); + /** + * Exit a parse tree produced by the {@code addColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitAddColumn(PrestoSqlParser.AddColumnContext ctx); + /** + * Enter a parse tree produced by the {@code analyze} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterAnalyze(PrestoSqlParser.AnalyzeContext ctx); + /** + * Exit a parse tree produced by the {@code analyze} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitAnalyze(PrestoSqlParser.AnalyzeContext ctx); + /** + * Enter a parse tree produced by the {@code createType} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateType(PrestoSqlParser.CreateTypeContext ctx); + /** + * Exit a parse tree produced by the {@code createType} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateType(PrestoSqlParser.CreateTypeContext ctx); + /** + * Enter a parse tree produced by the {@code createView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateView(PrestoSqlParser.CreateViewContext ctx); + /** + * Exit a parse tree produced by the {@code createView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateView(PrestoSqlParser.CreateViewContext ctx); + /** + * Enter a parse tree produced by the {@code dropView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropView(PrestoSqlParser.DropViewContext ctx); + /** + * Exit a parse tree produced by the {@code dropView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropView(PrestoSqlParser.DropViewContext ctx); + /** + * Enter a parse tree produced by the {@code createMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx); + /** + * Exit a parse tree produced by the {@code createMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx); + /** + * Enter a parse tree produced by the {@code dropMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx); + /** + * Exit a parse tree produced by the {@code dropMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx); + /** + * Enter a parse tree produced by the {@code refreshMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx); + /** + * Exit a parse tree produced by the {@code refreshMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx); + /** + * Enter a parse tree produced by the {@code createFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateFunction(PrestoSqlParser.CreateFunctionContext ctx); + /** + * Exit a parse tree produced by the {@code createFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx); + /** + * Enter a parse tree produced by the {@code alterFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterAlterFunction(PrestoSqlParser.AlterFunctionContext ctx); + /** + * Exit a parse tree produced by the {@code alterFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx); + /** + * Enter a parse tree produced by the {@code dropFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropFunction(PrestoSqlParser.DropFunctionContext ctx); + /** + * Exit a parse tree produced by the {@code dropFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropFunction(PrestoSqlParser.DropFunctionContext ctx); + /** + * Enter a parse tree produced by the {@code call} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCall(PrestoSqlParser.CallContext ctx); + /** + * Exit a parse tree produced by the {@code call} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCall(PrestoSqlParser.CallContext ctx); + /** + * Enter a parse tree produced by the {@code createRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCreateRole(PrestoSqlParser.CreateRoleContext ctx); + /** + * Exit a parse tree produced by the {@code createRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCreateRole(PrestoSqlParser.CreateRoleContext ctx); + /** + * Enter a parse tree produced by the {@code dropRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDropRole(PrestoSqlParser.DropRoleContext ctx); + /** + * Exit a parse tree produced by the {@code dropRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDropRole(PrestoSqlParser.DropRoleContext ctx); + /** + * Enter a parse tree produced by the {@code grantRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterGrantRoles(PrestoSqlParser.GrantRolesContext ctx); + /** + * Exit a parse tree produced by the {@code grantRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitGrantRoles(PrestoSqlParser.GrantRolesContext ctx); + /** + * Enter a parse tree produced by the {@code revokeRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx); + /** + * Exit a parse tree produced by the {@code revokeRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx); + /** + * Enter a parse tree produced by the {@code setRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterSetRole(PrestoSqlParser.SetRoleContext ctx); + /** + * Exit a parse tree produced by the {@code setRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitSetRole(PrestoSqlParser.SetRoleContext ctx); + /** + * Enter a parse tree produced by the {@code grant} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterGrant(PrestoSqlParser.GrantContext ctx); + /** + * Exit a parse tree produced by the {@code grant} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitGrant(PrestoSqlParser.GrantContext ctx); + /** + * Enter a parse tree produced by the {@code revoke} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRevoke(PrestoSqlParser.RevokeContext ctx); + /** + * Exit a parse tree produced by the {@code revoke} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRevoke(PrestoSqlParser.RevokeContext ctx); + /** + * Enter a parse tree produced by the {@code showGrants} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowGrants(PrestoSqlParser.ShowGrantsContext ctx); + /** + * Exit a parse tree produced by the {@code showGrants} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowGrants(PrestoSqlParser.ShowGrantsContext ctx); + /** + * Enter a parse tree produced by the {@code explain} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterExplain(PrestoSqlParser.ExplainContext ctx); + /** + * Exit a parse tree produced by the {@code explain} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitExplain(PrestoSqlParser.ExplainContext ctx); + /** + * Enter a parse tree produced by the {@code showCreateTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx); + /** + * Exit a parse tree produced by the {@code showCreateTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx); + /** + * Enter a parse tree produced by the {@code showCreateView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx); + /** + * Exit a parse tree produced by the {@code showCreateView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx); + /** + * Enter a parse tree produced by the {@code showCreateMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx); + /** + * Exit a parse tree produced by the {@code showCreateMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx); + /** + * Enter a parse tree produced by the {@code showCreateFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx); + /** + * Exit a parse tree produced by the {@code showCreateFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx); + /** + * Enter a parse tree produced by the {@code showTables} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowTables(PrestoSqlParser.ShowTablesContext ctx); + /** + * Exit a parse tree produced by the {@code showTables} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowTables(PrestoSqlParser.ShowTablesContext ctx); + /** + * Enter a parse tree produced by the {@code showSchemas} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowSchemas(PrestoSqlParser.ShowSchemasContext ctx); + /** + * Exit a parse tree produced by the {@code showSchemas} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx); + /** + * Enter a parse tree produced by the {@code showCatalogs} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx); + /** + * Exit a parse tree produced by the {@code showCatalogs} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx); + /** + * Enter a parse tree produced by the {@code showColumns} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowColumns(PrestoSqlParser.ShowColumnsContext ctx); + /** + * Exit a parse tree produced by the {@code showColumns} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowColumns(PrestoSqlParser.ShowColumnsContext ctx); + /** + * Enter a parse tree produced by the {@code showStats} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowStats(PrestoSqlParser.ShowStatsContext ctx); + /** + * Exit a parse tree produced by the {@code showStats} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowStats(PrestoSqlParser.ShowStatsContext ctx); + /** + * Enter a parse tree produced by the {@code showStatsForQuery} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx); + /** + * Exit a parse tree produced by the {@code showStatsForQuery} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx); + /** + * Enter a parse tree produced by the {@code showRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowRoles(PrestoSqlParser.ShowRolesContext ctx); + /** + * Exit a parse tree produced by the {@code showRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowRoles(PrestoSqlParser.ShowRolesContext ctx); + /** + * Enter a parse tree produced by the {@code showRoleGrants} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx); + /** + * Exit a parse tree produced by the {@code showRoleGrants} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx); + /** + * Enter a parse tree produced by the {@code showFunctions} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx); + /** + * Exit a parse tree produced by the {@code showFunctions} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx); + /** + * Enter a parse tree produced by the {@code showSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterShowSession(PrestoSqlParser.ShowSessionContext ctx); + /** + * Exit a parse tree produced by the {@code showSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitShowSession(PrestoSqlParser.ShowSessionContext ctx); + /** + * Enter a parse tree produced by the {@code setSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterSetSession(PrestoSqlParser.SetSessionContext ctx); + /** + * Exit a parse tree produced by the {@code setSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitSetSession(PrestoSqlParser.SetSessionContext ctx); + /** + * Enter a parse tree produced by the {@code resetSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterResetSession(PrestoSqlParser.ResetSessionContext ctx); + /** + * Exit a parse tree produced by the {@code resetSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitResetSession(PrestoSqlParser.ResetSessionContext ctx); + /** + * Enter a parse tree produced by the {@code startTransaction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterStartTransaction(PrestoSqlParser.StartTransactionContext ctx); + /** + * Exit a parse tree produced by the {@code startTransaction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitStartTransaction(PrestoSqlParser.StartTransactionContext ctx); + /** + * Enter a parse tree produced by the {@code commit} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterCommit(PrestoSqlParser.CommitContext ctx); + /** + * Exit a parse tree produced by the {@code commit} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitCommit(PrestoSqlParser.CommitContext ctx); + /** + * Enter a parse tree produced by the {@code rollback} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterRollback(PrestoSqlParser.RollbackContext ctx); + /** + * Exit a parse tree produced by the {@code rollback} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitRollback(PrestoSqlParser.RollbackContext ctx); + /** + * Enter a parse tree produced by the {@code prepare} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterPrepare(PrestoSqlParser.PrepareContext ctx); + /** + * Exit a parse tree produced by the {@code prepare} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitPrepare(PrestoSqlParser.PrepareContext ctx); + /** + * Enter a parse tree produced by the {@code deallocate} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDeallocate(PrestoSqlParser.DeallocateContext ctx); + /** + * Exit a parse tree produced by the {@code deallocate} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDeallocate(PrestoSqlParser.DeallocateContext ctx); + /** + * Enter a parse tree produced by the {@code execute} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterExecute(PrestoSqlParser.ExecuteContext ctx); + /** + * Exit a parse tree produced by the {@code execute} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitExecute(PrestoSqlParser.ExecuteContext ctx); + /** + * Enter a parse tree produced by the {@code describeInput} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDescribeInput(PrestoSqlParser.DescribeInputContext ctx); + /** + * Exit a parse tree produced by the {@code describeInput} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDescribeInput(PrestoSqlParser.DescribeInputContext ctx); + /** + * Enter a parse tree produced by the {@code describeOutput} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void enterDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx); + /** + * Exit a parse tree produced by the {@code describeOutput} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + */ + void exitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#query}. + * @param ctx the parse tree + */ + void enterQuery(PrestoSqlParser.QueryContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#query}. + * @param ctx the parse tree + */ + void exitQuery(PrestoSqlParser.QueryContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#with}. + * @param ctx the parse tree + */ + void enterWith(PrestoSqlParser.WithContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#with}. + * @param ctx the parse tree + */ + void exitWith(PrestoSqlParser.WithContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#tableElement}. + * @param ctx the parse tree + */ + void enterTableElement(PrestoSqlParser.TableElementContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#tableElement}. + * @param ctx the parse tree + */ + void exitTableElement(PrestoSqlParser.TableElementContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#columnDefinition}. + * @param ctx the parse tree + */ + void enterColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#columnDefinition}. + * @param ctx the parse tree + */ + void exitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#likeClause}. + * @param ctx the parse tree + */ + void enterLikeClause(PrestoSqlParser.LikeClauseContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#likeClause}. + * @param ctx the parse tree + */ + void exitLikeClause(PrestoSqlParser.LikeClauseContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#properties}. + * @param ctx the parse tree + */ + void enterProperties(PrestoSqlParser.PropertiesContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#properties}. + * @param ctx the parse tree + */ + void exitProperties(PrestoSqlParser.PropertiesContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#property}. + * @param ctx the parse tree + */ + void enterProperty(PrestoSqlParser.PropertyContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#property}. + * @param ctx the parse tree + */ + void exitProperty(PrestoSqlParser.PropertyContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#sqlParameterDeclaration}. + * @param ctx the parse tree + */ + void enterSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#sqlParameterDeclaration}. + * @param ctx the parse tree + */ + void exitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#routineCharacteristics}. + * @param ctx the parse tree + */ + void enterRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#routineCharacteristics}. + * @param ctx the parse tree + */ + void exitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#routineCharacteristic}. + * @param ctx the parse tree + */ + void enterRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#routineCharacteristic}. + * @param ctx the parse tree + */ + void exitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristics}. + * @param ctx the parse tree + */ + void enterAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristics}. + * @param ctx the parse tree + */ + void exitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristic}. + * @param ctx the parse tree + */ + void enterAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristic}. + * @param ctx the parse tree + */ + void exitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#routineBody}. + * @param ctx the parse tree + */ + void enterRoutineBody(PrestoSqlParser.RoutineBodyContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#routineBody}. + * @param ctx the parse tree + */ + void exitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#returnStatement}. + * @param ctx the parse tree + */ + void enterReturnStatement(PrestoSqlParser.ReturnStatementContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#returnStatement}. + * @param ctx the parse tree + */ + void exitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#externalBodyReference}. + * @param ctx the parse tree + */ + void enterExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#externalBodyReference}. + * @param ctx the parse tree + */ + void exitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#language}. + * @param ctx the parse tree + */ + void enterLanguage(PrestoSqlParser.LanguageContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#language}. + * @param ctx the parse tree + */ + void exitLanguage(PrestoSqlParser.LanguageContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#determinism}. + * @param ctx the parse tree + */ + void enterDeterminism(PrestoSqlParser.DeterminismContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#determinism}. + * @param ctx the parse tree + */ + void exitDeterminism(PrestoSqlParser.DeterminismContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#nullCallClause}. + * @param ctx the parse tree + */ + void enterNullCallClause(PrestoSqlParser.NullCallClauseContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#nullCallClause}. + * @param ctx the parse tree + */ + void exitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#externalRoutineName}. + * @param ctx the parse tree + */ + void enterExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#externalRoutineName}. + * @param ctx the parse tree + */ + void exitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#queryNoWith}. + * @param ctx the parse tree + */ + void enterQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#queryNoWith}. + * @param ctx the parse tree + */ + void exitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx); + /** + * Enter a parse tree produced by the {@code queryTermDefault} + * labeled alternative in {@link PrestoSqlParser#queryTerm}. + * @param ctx the parse tree + */ + void enterQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code queryTermDefault} + * labeled alternative in {@link PrestoSqlParser#queryTerm}. + * @param ctx the parse tree + */ + void exitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx); + /** + * Enter a parse tree produced by the {@code setOperation} + * labeled alternative in {@link PrestoSqlParser#queryTerm}. + * @param ctx the parse tree + */ + void enterSetOperation(PrestoSqlParser.SetOperationContext ctx); + /** + * Exit a parse tree produced by the {@code setOperation} + * labeled alternative in {@link PrestoSqlParser#queryTerm}. + * @param ctx the parse tree + */ + void exitSetOperation(PrestoSqlParser.SetOperationContext ctx); + /** + * Enter a parse tree produced by the {@code queryPrimaryDefault} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void enterQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code queryPrimaryDefault} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void exitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx); + /** + * Enter a parse tree produced by the {@code table} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void enterTable(PrestoSqlParser.TableContext ctx); + /** + * Exit a parse tree produced by the {@code table} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void exitTable(PrestoSqlParser.TableContext ctx); + /** + * Enter a parse tree produced by the {@code inlineTable} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void enterInlineTable(PrestoSqlParser.InlineTableContext ctx); + /** + * Exit a parse tree produced by the {@code inlineTable} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void exitInlineTable(PrestoSqlParser.InlineTableContext ctx); + /** + * Enter a parse tree produced by the {@code subquery} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void enterSubquery(PrestoSqlParser.SubqueryContext ctx); + /** + * Exit a parse tree produced by the {@code subquery} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + */ + void exitSubquery(PrestoSqlParser.SubqueryContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#sortItem}. + * @param ctx the parse tree + */ + void enterSortItem(PrestoSqlParser.SortItemContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#sortItem}. + * @param ctx the parse tree + */ + void exitSortItem(PrestoSqlParser.SortItemContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#querySpecification}. + * @param ctx the parse tree + */ + void enterQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#querySpecification}. + * @param ctx the parse tree + */ + void exitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#groupBy}. + * @param ctx the parse tree + */ + void enterGroupBy(PrestoSqlParser.GroupByContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#groupBy}. + * @param ctx the parse tree + */ + void exitGroupBy(PrestoSqlParser.GroupByContext ctx); + /** + * Enter a parse tree produced by the {@code singleGroupingSet} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void enterSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx); + /** + * Exit a parse tree produced by the {@code singleGroupingSet} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void exitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx); + /** + * Enter a parse tree produced by the {@code rollup} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void enterRollup(PrestoSqlParser.RollupContext ctx); + /** + * Exit a parse tree produced by the {@code rollup} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void exitRollup(PrestoSqlParser.RollupContext ctx); + /** + * Enter a parse tree produced by the {@code cube} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void enterCube(PrestoSqlParser.CubeContext ctx); + /** + * Exit a parse tree produced by the {@code cube} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void exitCube(PrestoSqlParser.CubeContext ctx); + /** + * Enter a parse tree produced by the {@code multipleGroupingSets} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void enterMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx); + /** + * Exit a parse tree produced by the {@code multipleGroupingSets} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + */ + void exitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#groupingSet}. + * @param ctx the parse tree + */ + void enterGroupingSet(PrestoSqlParser.GroupingSetContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#groupingSet}. + * @param ctx the parse tree + */ + void exitGroupingSet(PrestoSqlParser.GroupingSetContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#namedQuery}. + * @param ctx the parse tree + */ + void enterNamedQuery(PrestoSqlParser.NamedQueryContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#namedQuery}. + * @param ctx the parse tree + */ + void exitNamedQuery(PrestoSqlParser.NamedQueryContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#setQuantifier}. + * @param ctx the parse tree + */ + void enterSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#setQuantifier}. + * @param ctx the parse tree + */ + void exitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx); + /** + * Enter a parse tree produced by the {@code selectSingle} + * labeled alternative in {@link PrestoSqlParser#selectItem}. + * @param ctx the parse tree + */ + void enterSelectSingle(PrestoSqlParser.SelectSingleContext ctx); + /** + * Exit a parse tree produced by the {@code selectSingle} + * labeled alternative in {@link PrestoSqlParser#selectItem}. + * @param ctx the parse tree + */ + void exitSelectSingle(PrestoSqlParser.SelectSingleContext ctx); + /** + * Enter a parse tree produced by the {@code selectAll} + * labeled alternative in {@link PrestoSqlParser#selectItem}. + * @param ctx the parse tree + */ + void enterSelectAll(PrestoSqlParser.SelectAllContext ctx); + /** + * Exit a parse tree produced by the {@code selectAll} + * labeled alternative in {@link PrestoSqlParser#selectItem}. + * @param ctx the parse tree + */ + void exitSelectAll(PrestoSqlParser.SelectAllContext ctx); + /** + * Enter a parse tree produced by the {@code relationDefault} + * labeled alternative in {@link PrestoSqlParser#relation}. + * @param ctx the parse tree + */ + void enterRelationDefault(PrestoSqlParser.RelationDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code relationDefault} + * labeled alternative in {@link PrestoSqlParser#relation}. + * @param ctx the parse tree + */ + void exitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx); + /** + * Enter a parse tree produced by the {@code joinRelation} + * labeled alternative in {@link PrestoSqlParser#relation}. + * @param ctx the parse tree + */ + void enterJoinRelation(PrestoSqlParser.JoinRelationContext ctx); + /** + * Exit a parse tree produced by the {@code joinRelation} + * labeled alternative in {@link PrestoSqlParser#relation}. + * @param ctx the parse tree + */ + void exitJoinRelation(PrestoSqlParser.JoinRelationContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#joinType}. + * @param ctx the parse tree + */ + void enterJoinType(PrestoSqlParser.JoinTypeContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#joinType}. + * @param ctx the parse tree + */ + void exitJoinType(PrestoSqlParser.JoinTypeContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#joinCriteria}. + * @param ctx the parse tree + */ + void enterJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#joinCriteria}. + * @param ctx the parse tree + */ + void exitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#sampledRelation}. + * @param ctx the parse tree + */ + void enterSampledRelation(PrestoSqlParser.SampledRelationContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#sampledRelation}. + * @param ctx the parse tree + */ + void exitSampledRelation(PrestoSqlParser.SampledRelationContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#sampleType}. + * @param ctx the parse tree + */ + void enterSampleType(PrestoSqlParser.SampleTypeContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#sampleType}. + * @param ctx the parse tree + */ + void exitSampleType(PrestoSqlParser.SampleTypeContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#aliasedRelation}. + * @param ctx the parse tree + */ + void enterAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#aliasedRelation}. + * @param ctx the parse tree + */ + void exitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#columnAliases}. + * @param ctx the parse tree + */ + void enterColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#columnAliases}. + * @param ctx the parse tree + */ + void exitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx); + /** + * Enter a parse tree produced by the {@code tableName} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void enterTableName(PrestoSqlParser.TableNameContext ctx); + /** + * Exit a parse tree produced by the {@code tableName} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void exitTableName(PrestoSqlParser.TableNameContext ctx); + /** + * Enter a parse tree produced by the {@code subqueryRelation} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void enterSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx); + /** + * Exit a parse tree produced by the {@code subqueryRelation} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void exitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx); + /** + * Enter a parse tree produced by the {@code unnest} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void enterUnnest(PrestoSqlParser.UnnestContext ctx); + /** + * Exit a parse tree produced by the {@code unnest} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void exitUnnest(PrestoSqlParser.UnnestContext ctx); + /** + * Enter a parse tree produced by the {@code lateral} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void enterLateral(PrestoSqlParser.LateralContext ctx); + /** + * Exit a parse tree produced by the {@code lateral} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void exitLateral(PrestoSqlParser.LateralContext ctx); + /** + * Enter a parse tree produced by the {@code parenthesizedRelation} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void enterParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx); + /** + * Exit a parse tree produced by the {@code parenthesizedRelation} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + */ + void exitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#expression}. + * @param ctx the parse tree + */ + void enterExpression(PrestoSqlParser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#expression}. + * @param ctx the parse tree + */ + void exitExpression(PrestoSqlParser.ExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code logicalNot} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + */ + void enterLogicalNot(PrestoSqlParser.LogicalNotContext ctx); + /** + * Exit a parse tree produced by the {@code logicalNot} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + */ + void exitLogicalNot(PrestoSqlParser.LogicalNotContext ctx); + /** + * Enter a parse tree produced by the {@code predicated} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + */ + void enterPredicated(PrestoSqlParser.PredicatedContext ctx); + /** + * Exit a parse tree produced by the {@code predicated} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + */ + void exitPredicated(PrestoSqlParser.PredicatedContext ctx); + /** + * Enter a parse tree produced by the {@code logicalBinary} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + */ + void enterLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx); + /** + * Exit a parse tree produced by the {@code logicalBinary} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + */ + void exitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx); + /** + * Enter a parse tree produced by the {@code comparison} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterComparison(PrestoSqlParser.ComparisonContext ctx); + /** + * Exit a parse tree produced by the {@code comparison} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitComparison(PrestoSqlParser.ComparisonContext ctx); + /** + * Enter a parse tree produced by the {@code quantifiedComparison} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx); + /** + * Exit a parse tree produced by the {@code quantifiedComparison} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx); + /** + * Enter a parse tree produced by the {@code between} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterBetween(PrestoSqlParser.BetweenContext ctx); + /** + * Exit a parse tree produced by the {@code between} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitBetween(PrestoSqlParser.BetweenContext ctx); + /** + * Enter a parse tree produced by the {@code inList} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterInList(PrestoSqlParser.InListContext ctx); + /** + * Exit a parse tree produced by the {@code inList} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitInList(PrestoSqlParser.InListContext ctx); + /** + * Enter a parse tree produced by the {@code inSubquery} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterInSubquery(PrestoSqlParser.InSubqueryContext ctx); + /** + * Exit a parse tree produced by the {@code inSubquery} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitInSubquery(PrestoSqlParser.InSubqueryContext ctx); + /** + * Enter a parse tree produced by the {@code like} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterLike(PrestoSqlParser.LikeContext ctx); + /** + * Exit a parse tree produced by the {@code like} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitLike(PrestoSqlParser.LikeContext ctx); + /** + * Enter a parse tree produced by the {@code nullPredicate} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterNullPredicate(PrestoSqlParser.NullPredicateContext ctx); + /** + * Exit a parse tree produced by the {@code nullPredicate} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitNullPredicate(PrestoSqlParser.NullPredicateContext ctx); + /** + * Enter a parse tree produced by the {@code distinctFrom} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void enterDistinctFrom(PrestoSqlParser.DistinctFromContext ctx); + /** + * Exit a parse tree produced by the {@code distinctFrom} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + */ + void exitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx); + /** + * Enter a parse tree produced by the {@code valueExpressionDefault} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void enterValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code valueExpressionDefault} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void exitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx); + /** + * Enter a parse tree produced by the {@code concatenation} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void enterConcatenation(PrestoSqlParser.ConcatenationContext ctx); + /** + * Exit a parse tree produced by the {@code concatenation} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void exitConcatenation(PrestoSqlParser.ConcatenationContext ctx); + /** + * Enter a parse tree produced by the {@code arithmeticBinary} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void enterArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx); + /** + * Exit a parse tree produced by the {@code arithmeticBinary} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void exitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx); + /** + * Enter a parse tree produced by the {@code arithmeticUnary} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void enterArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx); + /** + * Exit a parse tree produced by the {@code arithmeticUnary} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void exitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx); + /** + * Enter a parse tree produced by the {@code atTimeZone} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void enterAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx); + /** + * Exit a parse tree produced by the {@code atTimeZone} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + */ + void exitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx); + /** + * Enter a parse tree produced by the {@code dereference} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterDereference(PrestoSqlParser.DereferenceContext ctx); + /** + * Exit a parse tree produced by the {@code dereference} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitDereference(PrestoSqlParser.DereferenceContext ctx); + /** + * Enter a parse tree produced by the {@code typeConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx); + /** + * Exit a parse tree produced by the {@code typeConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx); + /** + * Enter a parse tree produced by the {@code specialDateTimeFunction} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx); + /** + * Exit a parse tree produced by the {@code specialDateTimeFunction} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx); + /** + * Enter a parse tree produced by the {@code substring} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterSubstring(PrestoSqlParser.SubstringContext ctx); + /** + * Exit a parse tree produced by the {@code substring} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitSubstring(PrestoSqlParser.SubstringContext ctx); + /** + * Enter a parse tree produced by the {@code cast} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterCast(PrestoSqlParser.CastContext ctx); + /** + * Exit a parse tree produced by the {@code cast} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitCast(PrestoSqlParser.CastContext ctx); + /** + * Enter a parse tree produced by the {@code lambda} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterLambda(PrestoSqlParser.LambdaContext ctx); + /** + * Exit a parse tree produced by the {@code lambda} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitLambda(PrestoSqlParser.LambdaContext ctx); + /** + * Enter a parse tree produced by the {@code parenthesizedExpression} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code parenthesizedExpression} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code parameter} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterParameter(PrestoSqlParser.ParameterContext ctx); + /** + * Exit a parse tree produced by the {@code parameter} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitParameter(PrestoSqlParser.ParameterContext ctx); + /** + * Enter a parse tree produced by the {@code normalize} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterNormalize(PrestoSqlParser.NormalizeContext ctx); + /** + * Exit a parse tree produced by the {@code normalize} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitNormalize(PrestoSqlParser.NormalizeContext ctx); + /** + * Enter a parse tree produced by the {@code intervalLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code intervalLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code numericLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code numericLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code booleanLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code booleanLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code simpleCase} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterSimpleCase(PrestoSqlParser.SimpleCaseContext ctx); + /** + * Exit a parse tree produced by the {@code simpleCase} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx); + /** + * Enter a parse tree produced by the {@code columnReference} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterColumnReference(PrestoSqlParser.ColumnReferenceContext ctx); + /** + * Exit a parse tree produced by the {@code columnReference} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx); + /** + * Enter a parse tree produced by the {@code nullLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterNullLiteral(PrestoSqlParser.NullLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code nullLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitNullLiteral(PrestoSqlParser.NullLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code rowConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterRowConstructor(PrestoSqlParser.RowConstructorContext ctx); + /** + * Exit a parse tree produced by the {@code rowConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitRowConstructor(PrestoSqlParser.RowConstructorContext ctx); + /** + * Enter a parse tree produced by the {@code subscript} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterSubscript(PrestoSqlParser.SubscriptContext ctx); + /** + * Exit a parse tree produced by the {@code subscript} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitSubscript(PrestoSqlParser.SubscriptContext ctx); + /** + * Enter a parse tree produced by the {@code subqueryExpression} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code subqueryExpression} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code binaryLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code binaryLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code currentUser} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterCurrentUser(PrestoSqlParser.CurrentUserContext ctx); + /** + * Exit a parse tree produced by the {@code currentUser} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitCurrentUser(PrestoSqlParser.CurrentUserContext ctx); + /** + * Enter a parse tree produced by the {@code extract} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterExtract(PrestoSqlParser.ExtractContext ctx); + /** + * Exit a parse tree produced by the {@code extract} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitExtract(PrestoSqlParser.ExtractContext ctx); + /** + * Enter a parse tree produced by the {@code stringLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterStringLiteral(PrestoSqlParser.StringLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code stringLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitStringLiteral(PrestoSqlParser.StringLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code arrayConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx); + /** + * Exit a parse tree produced by the {@code arrayConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx); + /** + * Enter a parse tree produced by the {@code functionCall} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterFunctionCall(PrestoSqlParser.FunctionCallContext ctx); + /** + * Exit a parse tree produced by the {@code functionCall} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitFunctionCall(PrestoSqlParser.FunctionCallContext ctx); + /** + * Enter a parse tree produced by the {@code exists} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterExists(PrestoSqlParser.ExistsContext ctx); + /** + * Exit a parse tree produced by the {@code exists} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitExists(PrestoSqlParser.ExistsContext ctx); + /** + * Enter a parse tree produced by the {@code position} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterPosition(PrestoSqlParser.PositionContext ctx); + /** + * Exit a parse tree produced by the {@code position} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitPosition(PrestoSqlParser.PositionContext ctx); + /** + * Enter a parse tree produced by the {@code searchedCase} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterSearchedCase(PrestoSqlParser.SearchedCaseContext ctx); + /** + * Exit a parse tree produced by the {@code searchedCase} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx); + /** + * Enter a parse tree produced by the {@code groupingOperation} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void enterGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx); + /** + * Exit a parse tree produced by the {@code groupingOperation} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + */ + void exitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx); + /** + * Enter a parse tree produced by the {@code basicStringLiteral} + * labeled alternative in {@link PrestoSqlParser#string}. + * @param ctx the parse tree + */ + void enterBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code basicStringLiteral} + * labeled alternative in {@link PrestoSqlParser#string}. + * @param ctx the parse tree + */ + void exitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code unicodeStringLiteral} + * labeled alternative in {@link PrestoSqlParser#string}. + * @param ctx the parse tree + */ + void enterUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code unicodeStringLiteral} + * labeled alternative in {@link PrestoSqlParser#string}. + * @param ctx the parse tree + */ + void exitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#nullTreatment}. + * @param ctx the parse tree + */ + void enterNullTreatment(PrestoSqlParser.NullTreatmentContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#nullTreatment}. + * @param ctx the parse tree + */ + void exitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx); + /** + * Enter a parse tree produced by the {@code timeZoneInterval} + * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}. + * @param ctx the parse tree + */ + void enterTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx); + /** + * Exit a parse tree produced by the {@code timeZoneInterval} + * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}. + * @param ctx the parse tree + */ + void exitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx); + /** + * Enter a parse tree produced by the {@code timeZoneString} + * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}. + * @param ctx the parse tree + */ + void enterTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx); + /** + * Exit a parse tree produced by the {@code timeZoneString} + * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}. + * @param ctx the parse tree + */ + void exitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#comparisonOperator}. + * @param ctx the parse tree + */ + void enterComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#comparisonOperator}. + * @param ctx the parse tree + */ + void exitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#comparisonQuantifier}. + * @param ctx the parse tree + */ + void enterComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#comparisonQuantifier}. + * @param ctx the parse tree + */ + void exitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#booleanValue}. + * @param ctx the parse tree + */ + void enterBooleanValue(PrestoSqlParser.BooleanValueContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#booleanValue}. + * @param ctx the parse tree + */ + void exitBooleanValue(PrestoSqlParser.BooleanValueContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#interval}. + * @param ctx the parse tree + */ + void enterInterval(PrestoSqlParser.IntervalContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#interval}. + * @param ctx the parse tree + */ + void exitInterval(PrestoSqlParser.IntervalContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#intervalField}. + * @param ctx the parse tree + */ + void enterIntervalField(PrestoSqlParser.IntervalFieldContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#intervalField}. + * @param ctx the parse tree + */ + void exitIntervalField(PrestoSqlParser.IntervalFieldContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#normalForm}. + * @param ctx the parse tree + */ + void enterNormalForm(PrestoSqlParser.NormalFormContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#normalForm}. + * @param ctx the parse tree + */ + void exitNormalForm(PrestoSqlParser.NormalFormContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#types}. + * @param ctx the parse tree + */ + void enterTypes(PrestoSqlParser.TypesContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#types}. + * @param ctx the parse tree + */ + void exitTypes(PrestoSqlParser.TypesContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#type}. + * @param ctx the parse tree + */ + void enterType(PrestoSqlParser.TypeContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#type}. + * @param ctx the parse tree + */ + void exitType(PrestoSqlParser.TypeContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#typeParameter}. + * @param ctx the parse tree + */ + void enterTypeParameter(PrestoSqlParser.TypeParameterContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#typeParameter}. + * @param ctx the parse tree + */ + void exitTypeParameter(PrestoSqlParser.TypeParameterContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#baseType}. + * @param ctx the parse tree + */ + void enterBaseType(PrestoSqlParser.BaseTypeContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#baseType}. + * @param ctx the parse tree + */ + void exitBaseType(PrestoSqlParser.BaseTypeContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#whenClause}. + * @param ctx the parse tree + */ + void enterWhenClause(PrestoSqlParser.WhenClauseContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#whenClause}. + * @param ctx the parse tree + */ + void exitWhenClause(PrestoSqlParser.WhenClauseContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#filter}. + * @param ctx the parse tree + */ + void enterFilter(PrestoSqlParser.FilterContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#filter}. + * @param ctx the parse tree + */ + void exitFilter(PrestoSqlParser.FilterContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#over}. + * @param ctx the parse tree + */ + void enterOver(PrestoSqlParser.OverContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#over}. + * @param ctx the parse tree + */ + void exitOver(PrestoSqlParser.OverContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#windowFrame}. + * @param ctx the parse tree + */ + void enterWindowFrame(PrestoSqlParser.WindowFrameContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#windowFrame}. + * @param ctx the parse tree + */ + void exitWindowFrame(PrestoSqlParser.WindowFrameContext ctx); + /** + * Enter a parse tree produced by the {@code unboundedFrame} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + */ + void enterUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx); + /** + * Exit a parse tree produced by the {@code unboundedFrame} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + */ + void exitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx); + /** + * Enter a parse tree produced by the {@code currentRowBound} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + */ + void enterCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx); + /** + * Exit a parse tree produced by the {@code currentRowBound} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + */ + void exitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx); + /** + * Enter a parse tree produced by the {@code boundedFrame} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + */ + void enterBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx); + /** + * Exit a parse tree produced by the {@code boundedFrame} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + */ + void exitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx); + /** + * Enter a parse tree produced by the {@code explainFormat} + * labeled alternative in {@link PrestoSqlParser#explainOption}. + * @param ctx the parse tree + */ + void enterExplainFormat(PrestoSqlParser.ExplainFormatContext ctx); + /** + * Exit a parse tree produced by the {@code explainFormat} + * labeled alternative in {@link PrestoSqlParser#explainOption}. + * @param ctx the parse tree + */ + void exitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx); + /** + * Enter a parse tree produced by the {@code explainType} + * labeled alternative in {@link PrestoSqlParser#explainOption}. + * @param ctx the parse tree + */ + void enterExplainType(PrestoSqlParser.ExplainTypeContext ctx); + /** + * Exit a parse tree produced by the {@code explainType} + * labeled alternative in {@link PrestoSqlParser#explainOption}. + * @param ctx the parse tree + */ + void exitExplainType(PrestoSqlParser.ExplainTypeContext ctx); + /** + * Enter a parse tree produced by the {@code isolationLevel} + * labeled alternative in {@link PrestoSqlParser#transactionMode}. + * @param ctx the parse tree + */ + void enterIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx); + /** + * Exit a parse tree produced by the {@code isolationLevel} + * labeled alternative in {@link PrestoSqlParser#transactionMode}. + * @param ctx the parse tree + */ + void exitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx); + /** + * Enter a parse tree produced by the {@code transactionAccessMode} + * labeled alternative in {@link PrestoSqlParser#transactionMode}. + * @param ctx the parse tree + */ + void enterTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx); + /** + * Exit a parse tree produced by the {@code transactionAccessMode} + * labeled alternative in {@link PrestoSqlParser#transactionMode}. + * @param ctx the parse tree + */ + void exitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx); + /** + * Enter a parse tree produced by the {@code readUncommitted} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void enterReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx); + /** + * Exit a parse tree produced by the {@code readUncommitted} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void exitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx); + /** + * Enter a parse tree produced by the {@code readCommitted} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void enterReadCommitted(PrestoSqlParser.ReadCommittedContext ctx); + /** + * Exit a parse tree produced by the {@code readCommitted} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void exitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx); + /** + * Enter a parse tree produced by the {@code repeatableRead} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void enterRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx); + /** + * Exit a parse tree produced by the {@code repeatableRead} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void exitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx); + /** + * Enter a parse tree produced by the {@code serializable} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void enterSerializable(PrestoSqlParser.SerializableContext ctx); + /** + * Exit a parse tree produced by the {@code serializable} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + */ + void exitSerializable(PrestoSqlParser.SerializableContext ctx); + /** + * Enter a parse tree produced by the {@code positionalArgument} + * labeled alternative in {@link PrestoSqlParser#callArgument}. + * @param ctx the parse tree + */ + void enterPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx); + /** + * Exit a parse tree produced by the {@code positionalArgument} + * labeled alternative in {@link PrestoSqlParser#callArgument}. + * @param ctx the parse tree + */ + void exitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx); + /** + * Enter a parse tree produced by the {@code namedArgument} + * labeled alternative in {@link PrestoSqlParser#callArgument}. + * @param ctx the parse tree + */ + void enterNamedArgument(PrestoSqlParser.NamedArgumentContext ctx); + /** + * Exit a parse tree produced by the {@code namedArgument} + * labeled alternative in {@link PrestoSqlParser#callArgument}. + * @param ctx the parse tree + */ + void exitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#privilege}. + * @param ctx the parse tree + */ + void enterPrivilege(PrestoSqlParser.PrivilegeContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#privilege}. + * @param ctx the parse tree + */ + void exitPrivilege(PrestoSqlParser.PrivilegeContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#qualifiedName}. + * @param ctx the parse tree + */ + void enterQualifiedName(PrestoSqlParser.QualifiedNameContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#qualifiedName}. + * @param ctx the parse tree + */ + void exitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx); + /** + * Enter a parse tree produced by the {@code currentUserGrantor} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + */ + void enterCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx); + /** + * Exit a parse tree produced by the {@code currentUserGrantor} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + */ + void exitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx); + /** + * Enter a parse tree produced by the {@code currentRoleGrantor} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + */ + void enterCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx); + /** + * Exit a parse tree produced by the {@code currentRoleGrantor} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + */ + void exitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx); + /** + * Enter a parse tree produced by the {@code specifiedPrincipal} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + */ + void enterSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx); + /** + * Exit a parse tree produced by the {@code specifiedPrincipal} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + */ + void exitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx); + /** + * Enter a parse tree produced by the {@code userPrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + */ + void enterUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx); + /** + * Exit a parse tree produced by the {@code userPrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + */ + void exitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx); + /** + * Enter a parse tree produced by the {@code rolePrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + */ + void enterRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx); + /** + * Exit a parse tree produced by the {@code rolePrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + */ + void exitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx); + /** + * Enter a parse tree produced by the {@code unspecifiedPrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + */ + void enterUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx); + /** + * Exit a parse tree produced by the {@code unspecifiedPrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + */ + void exitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#roles}. + * @param ctx the parse tree + */ + void enterRoles(PrestoSqlParser.RolesContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#roles}. + * @param ctx the parse tree + */ + void exitRoles(PrestoSqlParser.RolesContext ctx); + /** + * Enter a parse tree produced by the {@code unquotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void enterUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx); + /** + * Exit a parse tree produced by the {@code unquotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void exitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx); + /** + * Enter a parse tree produced by the {@code quotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void enterQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx); + /** + * Exit a parse tree produced by the {@code quotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void exitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx); + /** + * Enter a parse tree produced by the {@code backQuotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void enterBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx); + /** + * Exit a parse tree produced by the {@code backQuotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void exitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx); + /** + * Enter a parse tree produced by the {@code digitIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void enterDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx); + /** + * Exit a parse tree produced by the {@code digitIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + */ + void exitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx); + /** + * Enter a parse tree produced by the {@code decimalLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + */ + void enterDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code decimalLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + */ + void exitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code doubleLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + */ + void enterDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code doubleLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + */ + void exitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code integerLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + */ + void enterIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code integerLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + */ + void exitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx); + /** + * Enter a parse tree produced by {@link PrestoSqlParser#nonReserved}. + * @param ctx the parse tree + */ + void enterNonReserved(PrestoSqlParser.NonReservedContext ctx); + /** + * Exit a parse tree produced by {@link PrestoSqlParser#nonReserved}. + * @param ctx the parse tree + */ + void exitNonReserved(PrestoSqlParser.NonReservedContext ctx); +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java new file mode 100644 index 0000000..9438e2a --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java @@ -0,0 +1,14787 @@ +// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.presto; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class PrestoSqlParser extends Parser { + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + ADD=10, ADMIN=11, ALL=12, ALTER=13, ANALYZE=14, AND=15, ANY=16, ARRAY=17, + AS=18, ASC=19, AT=20, BERNOULLI=21, BETWEEN=22, BY=23, CALL=24, CALLED=25, + CASCADE=26, CASE=27, CAST=28, CATALOGS=29, COLUMN=30, COLUMNS=31, COMMENT=32, + COMMIT=33, COMMITTED=34, CONSTRAINT=35, CREATE=36, CROSS=37, CUBE=38, + CURRENT=39, CURRENT_DATE=40, CURRENT_ROLE=41, CURRENT_TIME=42, CURRENT_TIMESTAMP=43, + CURRENT_USER=44, DATA=45, DATE=46, DAY=47, DEALLOCATE=48, DEFINER=49, + DELETE=50, DESC=51, DESCRIBE=52, DETERMINISTIC=53, DISTINCT=54, DISTRIBUTED=55, + DROP=56, ELSE=57, END=58, ESCAPE=59, EXCEPT=60, EXCLUDING=61, EXECUTE=62, + EXISTS=63, EXPLAIN=64, EXTRACT=65, EXTERNAL=66, FALSE=67, FILTER=68, FIRST=69, + FOLLOWING=70, FOR=71, FORMAT=72, FROM=73, FULL=74, FUNCTION=75, FUNCTIONS=76, + GRANT=77, GRANTED=78, GRANTS=79, GRAPHVIZ=80, GROUP=81, GROUPING=82, HAVING=83, + HOUR=84, IF=85, IGNORE=86, IN=87, INCLUDING=88, INNER=89, INPUT=90, INSERT=91, + INTERSECT=92, INTERVAL=93, INTO=94, INVOKER=95, IO=96, IS=97, ISOLATION=98, + JSON=99, JOIN=100, LANGUAGE=101, LAST=102, LATERAL=103, LEFT=104, LEVEL=105, + LIKE=106, LIMIT=107, LOCALTIME=108, LOCALTIMESTAMP=109, LOGICAL=110, MAP=111, + MATERIALIZED=112, MINUTE=113, MONTH=114, NAME=115, NATURAL=116, NFC=117, + NFD=118, NFKC=119, NFKD=120, NO=121, NONE=122, NORMALIZE=123, NOT=124, + NULL=125, NULLIF=126, NULLS=127, OFFSET=128, ON=129, ONLY=130, OPTION=131, + OR=132, ORDER=133, ORDINALITY=134, OUTER=135, OUTPUT=136, OVER=137, PARTITION=138, + PARTITIONS=139, POSITION=140, PRECEDING=141, PREPARE=142, PRIVILEGES=143, + PROPERTIES=144, RANGE=145, READ=146, RECURSIVE=147, REFRESH=148, RENAME=149, + REPEATABLE=150, REPLACE=151, RESET=152, RESPECT=153, RESTRICT=154, RETURN=155, + RETURNS=156, REVOKE=157, RIGHT=158, ROLE=159, ROLES=160, ROLLBACK=161, + ROLLUP=162, ROW=163, ROWS=164, SCHEMA=165, SCHEMAS=166, SECOND=167, SECURITY=168, + SELECT=169, SERIALIZABLE=170, SESSION=171, SET=172, SETS=173, SHOW=174, + SOME=175, SQL=176, START=177, STATS=178, SUBSTRING=179, SYSTEM=180, TABLE=181, + TABLES=182, TABLESAMPLE=183, TEMPORARY=184, TEXT=185, THEN=186, TIME=187, + TIMESTAMP=188, TO=189, TRANSACTION=190, TRUE=191, TRY_CAST=192, TYPE=193, + UESCAPE=194, UNBOUNDED=195, UNCOMMITTED=196, UNION=197, UNNEST=198, USE=199, + USER=200, USING=201, VALIDATE=202, VALUES=203, VERBOSE=204, VIEW=205, + WHEN=206, WHERE=207, WITH=208, WORK=209, WRITE=210, YEAR=211, ZONE=212, + EQ=213, NEQ=214, LT=215, LTE=216, GT=217, GTE=218, PLUS=219, MINUS=220, + ASTERISK=221, SLASH=222, PERCENT=223, CONCAT=224, STRING=225, UNICODE_STRING=226, + BINARY_LITERAL=227, INTEGER_VALUE=228, DECIMAL_VALUE=229, DOUBLE_VALUE=230, + IDENTIFIER=231, DIGIT_IDENTIFIER=232, QUOTED_IDENTIFIER=233, BACKQUOTED_IDENTIFIER=234, + TIME_WITH_TIME_ZONE=235, TIMESTAMP_WITH_TIME_ZONE=236, DOUBLE_PRECISION=237, + SIMPLE_COMMENT=238, BRACKETED_COMMENT=239, WS=240, UNRECOGNIZED=241, DELIMITER=242; + public static final int + RULE_singleStatement = 0, RULE_standaloneExpression = 1, RULE_standaloneRoutineBody = 2, + RULE_statement = 3, RULE_query = 4, RULE_with = 5, RULE_tableElement = 6, + RULE_columnDefinition = 7, RULE_likeClause = 8, RULE_properties = 9, RULE_property = 10, + RULE_sqlParameterDeclaration = 11, RULE_routineCharacteristics = 12, RULE_routineCharacteristic = 13, + RULE_alterRoutineCharacteristics = 14, RULE_alterRoutineCharacteristic = 15, + RULE_routineBody = 16, RULE_returnStatement = 17, RULE_externalBodyReference = 18, + RULE_language = 19, RULE_determinism = 20, RULE_nullCallClause = 21, RULE_externalRoutineName = 22, + RULE_queryNoWith = 23, RULE_queryTerm = 24, RULE_queryPrimary = 25, RULE_sortItem = 26, + RULE_querySpecification = 27, RULE_groupBy = 28, RULE_groupingElement = 29, + RULE_groupingSet = 30, RULE_namedQuery = 31, RULE_setQuantifier = 32, + RULE_selectItem = 33, RULE_relation = 34, RULE_joinType = 35, RULE_joinCriteria = 36, + RULE_sampledRelation = 37, RULE_sampleType = 38, RULE_aliasedRelation = 39, + RULE_columnAliases = 40, RULE_relationPrimary = 41, RULE_expression = 42, + RULE_booleanExpression = 43, RULE_predicate = 44, RULE_valueExpression = 45, + RULE_primaryExpression = 46, RULE_string = 47, RULE_nullTreatment = 48, + RULE_timeZoneSpecifier = 49, RULE_comparisonOperator = 50, RULE_comparisonQuantifier = 51, + RULE_booleanValue = 52, RULE_interval = 53, RULE_intervalField = 54, RULE_normalForm = 55, + RULE_types = 56, RULE_type = 57, RULE_typeParameter = 58, RULE_baseType = 59, + RULE_whenClause = 60, RULE_filter = 61, RULE_over = 62, RULE_windowFrame = 63, + RULE_frameBound = 64, RULE_explainOption = 65, RULE_transactionMode = 66, + RULE_levelOfIsolation = 67, RULE_callArgument = 68, RULE_privilege = 69, + RULE_qualifiedName = 70, RULE_grantor = 71, RULE_principal = 72, RULE_roles = 73, + RULE_identifier = 74, RULE_number = 75, RULE_nonReserved = 76; + public static final String[] ruleNames = { + "singleStatement", "standaloneExpression", "standaloneRoutineBody", "statement", + "query", "with", "tableElement", "columnDefinition", "likeClause", "properties", + "property", "sqlParameterDeclaration", "routineCharacteristics", "routineCharacteristic", + "alterRoutineCharacteristics", "alterRoutineCharacteristic", "routineBody", + "returnStatement", "externalBodyReference", "language", "determinism", + "nullCallClause", "externalRoutineName", "queryNoWith", "queryTerm", "queryPrimary", + "sortItem", "querySpecification", "groupBy", "groupingElement", "groupingSet", + "namedQuery", "setQuantifier", "selectItem", "relation", "joinType", "joinCriteria", + "sampledRelation", "sampleType", "aliasedRelation", "columnAliases", "relationPrimary", + "expression", "booleanExpression", "predicate", "valueExpression", "primaryExpression", + "string", "nullTreatment", "timeZoneSpecifier", "comparisonOperator", + "comparisonQuantifier", "booleanValue", "interval", "intervalField", "normalForm", + "types", "type", "typeParameter", "baseType", "whenClause", "filter", + "over", "windowFrame", "frameBound", "explainOption", "transactionMode", + "levelOfIsolation", "callArgument", "privilege", "qualifiedName", "grantor", + "principal", "roles", "identifier", "number", "nonReserved" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'.'", "'('", "')'", "','", "'?'", "'->'", "'['", "']'", "'=>'", + "'ADD'", "'ADMIN'", "'ALL'", "'ALTER'", "'ANALYZE'", "'AND'", "'ANY'", + "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'BERNOULLI'", "'BETWEEN'", "'BY'", + "'CALL'", "'CALLED'", "'CASCADE'", "'CASE'", "'CAST'", "'CATALOGS'", "'COLUMN'", + "'COLUMNS'", "'COMMENT'", "'COMMIT'", "'COMMITTED'", "'CONSTRAINT'", "'CREATE'", + "'CROSS'", "'CUBE'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_ROLE'", + "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'DATA'", "'DATE'", + "'DAY'", "'DEALLOCATE'", "'DEFINER'", "'DELETE'", "'DESC'", "'DESCRIBE'", + "'DETERMINISTIC'", "'DISTINCT'", "'DISTRIBUTED'", "'DROP'", "'ELSE'", + "'END'", "'ESCAPE'", "'EXCEPT'", "'EXCLUDING'", "'EXECUTE'", "'EXISTS'", + "'EXPLAIN'", "'EXTRACT'", "'EXTERNAL'", "'FALSE'", "'FILTER'", "'FIRST'", + "'FOLLOWING'", "'FOR'", "'FORMAT'", "'FROM'", "'FULL'", "'FUNCTION'", + "'FUNCTIONS'", "'GRANT'", "'GRANTED'", "'GRANTS'", "'GRAPHVIZ'", "'GROUP'", + "'GROUPING'", "'HAVING'", "'HOUR'", "'IF'", "'IGNORE'", "'IN'", "'INCLUDING'", + "'INNER'", "'INPUT'", "'INSERT'", "'INTERSECT'", "'INTERVAL'", "'INTO'", + "'INVOKER'", "'IO'", "'IS'", "'ISOLATION'", "'JSON'", "'JOIN'", "'LANGUAGE'", + "'LAST'", "'LATERAL'", "'LEFT'", "'LEVEL'", "'LIKE'", "'LIMIT'", "'LOCALTIME'", + "'LOCALTIMESTAMP'", "'LOGICAL'", "'MAP'", "'MATERIALIZED'", "'MINUTE'", + "'MONTH'", "'NAME'", "'NATURAL'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'", + "'NO'", "'NONE'", "'NORMALIZE'", "'NOT'", "'NULL'", "'NULLIF'", "'NULLS'", + "'OFFSET'", "'ON'", "'ONLY'", "'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'", + "'OUTER'", "'OUTPUT'", "'OVER'", "'PARTITION'", "'PARTITIONS'", "'POSITION'", + "'PRECEDING'", "'PREPARE'", "'PRIVILEGES'", "'PROPERTIES'", "'RANGE'", + "'READ'", "'RECURSIVE'", "'REFRESH'", "'RENAME'", "'REPEATABLE'", "'REPLACE'", + "'RESET'", "'RESPECT'", "'RESTRICT'", "'RETURN'", "'RETURNS'", "'REVOKE'", + "'RIGHT'", "'ROLE'", "'ROLES'", "'ROLLBACK'", "'ROLLUP'", "'ROW'", "'ROWS'", + "'SCHEMA'", "'SCHEMAS'", "'SECOND'", "'SECURITY'", "'SELECT'", "'SERIALIZABLE'", + "'SESSION'", "'SET'", "'SETS'", "'SHOW'", "'SOME'", "'SQL'", "'START'", + "'STATS'", "'SUBSTRING'", "'SYSTEM'", "'TABLE'", "'TABLES'", "'TABLESAMPLE'", + "'TEMPORARY'", "'TEXT'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TO'", "'TRANSACTION'", + "'TRUE'", "'TRY_CAST'", "'TYPE'", "'UESCAPE'", "'UNBOUNDED'", "'UNCOMMITTED'", + "'UNION'", "'UNNEST'", "'USE'", "'USER'", "'USING'", "'VALIDATE'", "'VALUES'", + "'VERBOSE'", "'VIEW'", "'WHEN'", "'WHERE'", "'WITH'", "'WORK'", "'WRITE'", + "'YEAR'", "'ZONE'", "'='", null, "'<'", "'<='", "'>'", "'>='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'||'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, null, null, null, "ADD", "ADMIN", + "ALL", "ALTER", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "AT", "BERNOULLI", + "BETWEEN", "BY", "CALL", "CALLED", "CASCADE", "CASE", "CAST", "CATALOGS", + "COLUMN", "COLUMNS", "COMMENT", "COMMIT", "COMMITTED", "CONSTRAINT", "CREATE", + "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "DATA", "DATE", "DAY", "DEALLOCATE", + "DEFINER", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT", + "DISTRIBUTED", "DROP", "ELSE", "END", "ESCAPE", "EXCEPT", "EXCLUDING", + "EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "EXTERNAL", "FALSE", "FILTER", + "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", "FULL", "FUNCTION", "FUNCTIONS", + "GRANT", "GRANTED", "GRANTS", "GRAPHVIZ", "GROUP", "GROUPING", "HAVING", + "HOUR", "IF", "IGNORE", "IN", "INCLUDING", "INNER", "INPUT", "INSERT", + "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IO", "IS", "ISOLATION", "JSON", + "JOIN", "LANGUAGE", "LAST", "LATERAL", "LEFT", "LEVEL", "LIKE", "LIMIT", + "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", "MAP", "MATERIALIZED", "MINUTE", + "MONTH", "NAME", "NATURAL", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE", + "NORMALIZE", "NOT", "NULL", "NULLIF", "NULLS", "OFFSET", "ON", "ONLY", + "OPTION", "OR", "ORDER", "ORDINALITY", "OUTER", "OUTPUT", "OVER", "PARTITION", + "PARTITIONS", "POSITION", "PRECEDING", "PREPARE", "PRIVILEGES", "PROPERTIES", + "RANGE", "READ", "RECURSIVE", "REFRESH", "RENAME", "REPEATABLE", "REPLACE", + "RESET", "RESPECT", "RESTRICT", "RETURN", "RETURNS", "REVOKE", "RIGHT", + "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "SCHEMA", "SCHEMAS", + "SECOND", "SECURITY", "SELECT", "SERIALIZABLE", "SESSION", "SET", "SETS", + "SHOW", "SOME", "SQL", "START", "STATS", "SUBSTRING", "SYSTEM", "TABLE", + "TABLES", "TABLESAMPLE", "TEMPORARY", "TEXT", "THEN", "TIME", "TIMESTAMP", + "TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE", "UNBOUNDED", + "UNCOMMITTED", "UNION", "UNNEST", "USE", "USER", "USING", "VALIDATE", + "VALUES", "VERBOSE", "VIEW", "WHEN", "WHERE", "WITH", "WORK", "WRITE", + "YEAR", "ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", + "ASTERISK", "SLASH", "PERCENT", "CONCAT", "STRING", "UNICODE_STRING", + "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER", + "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE", + "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "SIMPLE_COMMENT", "BRACKETED_COMMENT", + "WS", "UNRECOGNIZED", "DELIMITER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "PrestoSql.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public PrestoSqlParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class SingleStatementContext extends ParserRuleContext { + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode EOF() { return getToken(PrestoSqlParser.EOF, 0); } + public SingleStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSingleStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSingleStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSingleStatement(this); + else return visitor.visitChildren(this); + } + } + + public final SingleStatementContext singleStatement() throws RecognitionException { + SingleStatementContext _localctx = new SingleStatementContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_singleStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(154); + statement(); + setState(155); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StandaloneExpressionContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode EOF() { return getToken(PrestoSqlParser.EOF, 0); } + public StandaloneExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_standaloneExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStandaloneExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStandaloneExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitStandaloneExpression(this); + else return visitor.visitChildren(this); + } + } + + public final StandaloneExpressionContext standaloneExpression() throws RecognitionException { + StandaloneExpressionContext _localctx = new StandaloneExpressionContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_standaloneExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(157); + expression(); + setState(158); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StandaloneRoutineBodyContext extends ParserRuleContext { + public RoutineBodyContext routineBody() { + return getRuleContext(RoutineBodyContext.class,0); + } + public TerminalNode EOF() { return getToken(PrestoSqlParser.EOF, 0); } + public StandaloneRoutineBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_standaloneRoutineBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStandaloneRoutineBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStandaloneRoutineBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitStandaloneRoutineBody(this); + else return visitor.visitChildren(this); + } + } + + public final StandaloneRoutineBodyContext standaloneRoutineBody() throws RecognitionException { + StandaloneRoutineBodyContext _localctx = new StandaloneRoutineBodyContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_standaloneRoutineBody); + try { + enterOuterAlt(_localctx, 1); + { + setState(160); + routineBody(); + setState(161); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatementContext extends ParserRuleContext { + public StatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement; } + + public StatementContext() { } + public void copyFrom(StatementContext ctx) { + super.copyFrom(ctx); + } + } + public static class ExplainContext extends StatementContext { + public TerminalNode EXPLAIN() { return getToken(PrestoSqlParser.EXPLAIN, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode ANALYZE() { return getToken(PrestoSqlParser.ANALYZE, 0); } + public TerminalNode VERBOSE() { return getToken(PrestoSqlParser.VERBOSE, 0); } + public List explainOption() { + return getRuleContexts(ExplainOptionContext.class); + } + public ExplainOptionContext explainOption(int i) { + return getRuleContext(ExplainOptionContext.class,i); + } + public ExplainContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExplain(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExplain(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExplain(this); + else return visitor.visitChildren(this); + } + } + public static class PrepareContext extends StatementContext { + public TerminalNode PREPARE() { return getToken(PrestoSqlParser.PREPARE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public PrepareContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPrepare(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPrepare(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitPrepare(this); + else return visitor.visitChildren(this); + } + } + public static class DropMaterializedViewContext extends StatementContext { + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public DropMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropMaterializedView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropMaterializedView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropMaterializedView(this); + else return visitor.visitChildren(this); + } + } + public static class UseContext extends StatementContext { + public IdentifierContext schema; + public IdentifierContext catalog; + public TerminalNode USE() { return getToken(PrestoSqlParser.USE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public UseContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUse(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUse(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUse(this); + else return visitor.visitChildren(this); + } + } + public static class DeallocateContext extends StatementContext { + public TerminalNode DEALLOCATE() { return getToken(PrestoSqlParser.DEALLOCATE, 0); } + public TerminalNode PREPARE() { return getToken(PrestoSqlParser.PREPARE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public DeallocateContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDeallocate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDeallocate(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDeallocate(this); + else return visitor.visitChildren(this); + } + } + public static class RenameTableContext extends StatementContext { + public QualifiedNameContext from; + public QualifiedNameContext to; + public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public List qualifiedName() { + return getRuleContexts(QualifiedNameContext.class); + } + public QualifiedNameContext qualifiedName(int i) { + return getRuleContext(QualifiedNameContext.class,i); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public RenameTableContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRenameTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRenameTable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRenameTable(this); + else return visitor.visitChildren(this); + } + } + public static class CommitContext extends StatementContext { + public TerminalNode COMMIT() { return getToken(PrestoSqlParser.COMMIT, 0); } + public TerminalNode WORK() { return getToken(PrestoSqlParser.WORK, 0); } + public CommitContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCommit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCommit(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCommit(this); + else return visitor.visitChildren(this); + } + } + public static class CreateRoleContext extends StatementContext { + public IdentifierContext name; + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); } + public GrantorContext grantor() { + return getRuleContext(GrantorContext.class,0); + } + public CreateRoleContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateRole(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateRole(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateRole(this); + else return visitor.visitChildren(this); + } + } + public static class ShowCreateFunctionContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TypesContext types() { + return getRuleContext(TypesContext.class,0); + } + public ShowCreateFunctionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateFunction(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowCreateFunction(this); + else return visitor.visitChildren(this); + } + } + public static class DropColumnContext extends StatementContext { + public QualifiedNameContext tableName; + public QualifiedNameContext column; + public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); } + public List qualifiedName() { + return getRuleContexts(QualifiedNameContext.class); + } + public QualifiedNameContext qualifiedName(int i) { + return getRuleContext(QualifiedNameContext.class,i); + } + public List IF() { return getTokens(PrestoSqlParser.IF); } + public TerminalNode IF(int i) { + return getToken(PrestoSqlParser.IF, i); + } + public List EXISTS() { return getTokens(PrestoSqlParser.EXISTS); } + public TerminalNode EXISTS(int i) { + return getToken(PrestoSqlParser.EXISTS, i); + } + public DropColumnContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropColumn(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropColumn(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropColumn(this); + else return visitor.visitChildren(this); + } + } + public static class DropViewContext extends StatementContext { + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public DropViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropView(this); + else return visitor.visitChildren(this); + } + } + public static class ShowTablesContext extends StatementContext { + public StringContext pattern; + public StringContext escape; + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode TABLES() { return getToken(PrestoSqlParser.TABLES, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public List string() { + return getRuleContexts(StringContext.class); + } + public StringContext string(int i) { + return getRuleContext(StringContext.class,i); + } + public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); } + public ShowTablesContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowTables(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowTables(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowTables(this); + else return visitor.visitChildren(this); + } + } + public static class ShowCatalogsContext extends StatementContext { + public StringContext pattern; + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode CATALOGS() { return getToken(PrestoSqlParser.CATALOGS, 0); } + public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public ShowCatalogsContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCatalogs(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCatalogs(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowCatalogs(this); + else return visitor.visitChildren(this); + } + } + public static class ShowRolesContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode ROLES() { return getToken(PrestoSqlParser.ROLES, 0); } + public TerminalNode CURRENT() { return getToken(PrestoSqlParser.CURRENT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public ShowRolesContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowRoles(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowRoles(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowRoles(this); + else return visitor.visitChildren(this); + } + } + public static class RenameColumnContext extends StatementContext { + public QualifiedNameContext tableName; + public IdentifierContext from; + public IdentifierContext to; + public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); } + public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List IF() { return getTokens(PrestoSqlParser.IF); } + public TerminalNode IF(int i) { + return getToken(PrestoSqlParser.IF, i); + } + public List EXISTS() { return getTokens(PrestoSqlParser.EXISTS); } + public TerminalNode EXISTS(int i) { + return getToken(PrestoSqlParser.EXISTS, i); + } + public RenameColumnContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRenameColumn(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRenameColumn(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRenameColumn(this); + else return visitor.visitChildren(this); + } + } + public static class RevokeRolesContext extends StatementContext { + public TerminalNode REVOKE() { return getToken(PrestoSqlParser.REVOKE, 0); } + public RolesContext roles() { + return getRuleContext(RolesContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public List principal() { + return getRuleContexts(PrincipalContext.class); + } + public PrincipalContext principal(int i) { + return getRuleContext(PrincipalContext.class,i); + } + public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); } + public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); } + public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); } + public TerminalNode GRANTED() { return getToken(PrestoSqlParser.GRANTED, 0); } + public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); } + public GrantorContext grantor() { + return getRuleContext(GrantorContext.class,0); + } + public RevokeRolesContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRevokeRoles(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRevokeRoles(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRevokeRoles(this); + else return visitor.visitChildren(this); + } + } + public static class ShowCreateTableContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ShowCreateTableContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateTable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowCreateTable(this); + else return visitor.visitChildren(this); + } + } + public static class ShowColumnsContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode COLUMNS() { return getToken(PrestoSqlParser.COLUMNS, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public TerminalNode DESCRIBE() { return getToken(PrestoSqlParser.DESCRIBE, 0); } + public TerminalNode DESC() { return getToken(PrestoSqlParser.DESC, 0); } + public ShowColumnsContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowColumns(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowColumns(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowColumns(this); + else return visitor.visitChildren(this); + } + } + public static class ShowRoleGrantsContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); } + public TerminalNode GRANTS() { return getToken(PrestoSqlParser.GRANTS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public ShowRoleGrantsContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowRoleGrants(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowRoleGrants(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowRoleGrants(this); + else return visitor.visitChildren(this); + } + } + public static class AddColumnContext extends StatementContext { + public QualifiedNameContext tableName; + public ColumnDefinitionContext column; + public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public TerminalNode ADD() { return getToken(PrestoSqlParser.ADD, 0); } + public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ColumnDefinitionContext columnDefinition() { + return getRuleContext(ColumnDefinitionContext.class,0); + } + public List IF() { return getTokens(PrestoSqlParser.IF); } + public TerminalNode IF(int i) { + return getToken(PrestoSqlParser.IF, i); + } + public List EXISTS() { return getTokens(PrestoSqlParser.EXISTS); } + public TerminalNode EXISTS(int i) { + return getToken(PrestoSqlParser.EXISTS, i); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public AddColumnContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAddColumn(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAddColumn(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAddColumn(this); + else return visitor.visitChildren(this); + } + } + public static class ResetSessionContext extends StatementContext { + public TerminalNode RESET() { return getToken(PrestoSqlParser.RESET, 0); } + public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ResetSessionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterResetSession(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitResetSession(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitResetSession(this); + else return visitor.visitChildren(this); + } + } + public static class InsertIntoContext extends StatementContext { + public TerminalNode INSERT() { return getToken(PrestoSqlParser.INSERT, 0); } + public TerminalNode INTO() { return getToken(PrestoSqlParser.INTO, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public ColumnAliasesContext columnAliases() { + return getRuleContext(ColumnAliasesContext.class,0); + } + public InsertIntoContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInsertInto(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInsertInto(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitInsertInto(this); + else return visitor.visitChildren(this); + } + } + public static class ShowSessionContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); } + public ShowSessionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowSession(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowSession(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowSession(this); + else return visitor.visitChildren(this); + } + } + public static class CreateSchemaContext extends StatementContext { + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public PropertiesContext properties() { + return getRuleContext(PropertiesContext.class,0); + } + public CreateSchemaContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateSchema(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateSchema(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateSchema(this); + else return visitor.visitChildren(this); + } + } + public static class ExecuteContext extends StatementContext { + public TerminalNode EXECUTE() { return getToken(PrestoSqlParser.EXECUTE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode USING() { return getToken(PrestoSqlParser.USING, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ExecuteContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExecute(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExecute(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExecute(this); + else return visitor.visitChildren(this); + } + } + public static class RenameSchemaContext extends StatementContext { + public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); } + public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public RenameSchemaContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRenameSchema(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRenameSchema(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRenameSchema(this); + else return visitor.visitChildren(this); + } + } + public static class DropRoleContext extends StatementContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public DropRoleContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropRole(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropRole(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropRole(this); + else return visitor.visitChildren(this); + } + } + public static class AnalyzeContext extends StatementContext { + public TerminalNode ANALYZE() { return getToken(PrestoSqlParser.ANALYZE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public PropertiesContext properties() { + return getRuleContext(PropertiesContext.class,0); + } + public AnalyzeContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAnalyze(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAnalyze(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAnalyze(this); + else return visitor.visitChildren(this); + } + } + public static class SetRoleContext extends StatementContext { + public IdentifierContext role; + public TerminalNode SET() { return getToken(PrestoSqlParser.SET, 0); } + public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); } + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public TerminalNode NONE() { return getToken(PrestoSqlParser.NONE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public SetRoleContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetRole(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetRole(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSetRole(this); + else return visitor.visitChildren(this); + } + } + public static class CreateFunctionContext extends StatementContext { + public QualifiedNameContext functionName; + public TypeContext returnType; + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); } + public TerminalNode RETURNS() { return getToken(PrestoSqlParser.RETURNS, 0); } + public RoutineCharacteristicsContext routineCharacteristics() { + return getRuleContext(RoutineCharacteristicsContext.class,0); + } + public RoutineBodyContext routineBody() { + return getRuleContext(RoutineBodyContext.class,0); + } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode OR() { return getToken(PrestoSqlParser.OR, 0); } + public TerminalNode REPLACE() { return getToken(PrestoSqlParser.REPLACE, 0); } + public TerminalNode TEMPORARY() { return getToken(PrestoSqlParser.TEMPORARY, 0); } + public List sqlParameterDeclaration() { + return getRuleContexts(SqlParameterDeclarationContext.class); + } + public SqlParameterDeclarationContext sqlParameterDeclaration(int i) { + return getRuleContext(SqlParameterDeclarationContext.class,i); + } + public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public CreateFunctionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateFunction(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateFunction(this); + else return visitor.visitChildren(this); + } + } + public static class ShowGrantsContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode GRANTS() { return getToken(PrestoSqlParser.GRANTS, 0); } + public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public ShowGrantsContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowGrants(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowGrants(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowGrants(this); + else return visitor.visitChildren(this); + } + } + public static class DropSchemaContext extends StatementContext { + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PrestoSqlParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PrestoSqlParser.RESTRICT, 0); } + public DropSchemaContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropSchema(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropSchema(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropSchema(this); + else return visitor.visitChildren(this); + } + } + public static class ShowCreateViewContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ShowCreateViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowCreateView(this); + else return visitor.visitChildren(this); + } + } + public static class CreateTableContext extends StatementContext { + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public List tableElement() { + return getRuleContexts(TableElementContext.class); + } + public TableElementContext tableElement(int i) { + return getRuleContext(TableElementContext.class,i); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public PropertiesContext properties() { + return getRuleContext(PropertiesContext.class,0); + } + public CreateTableContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateTable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateTable(this); + else return visitor.visitChildren(this); + } + } + public static class StartTransactionContext extends StatementContext { + public TerminalNode START() { return getToken(PrestoSqlParser.START, 0); } + public TerminalNode TRANSACTION() { return getToken(PrestoSqlParser.TRANSACTION, 0); } + public List transactionMode() { + return getRuleContexts(TransactionModeContext.class); + } + public TransactionModeContext transactionMode(int i) { + return getRuleContext(TransactionModeContext.class,i); + } + public StartTransactionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStartTransaction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStartTransaction(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitStartTransaction(this); + else return visitor.visitChildren(this); + } + } + public static class CreateTableAsSelectContext extends StatementContext { + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public ColumnAliasesContext columnAliases() { + return getRuleContext(ColumnAliasesContext.class,0); + } + public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public List WITH() { return getTokens(PrestoSqlParser.WITH); } + public TerminalNode WITH(int i) { + return getToken(PrestoSqlParser.WITH, i); + } + public PropertiesContext properties() { + return getRuleContext(PropertiesContext.class,0); + } + public TerminalNode DATA() { return getToken(PrestoSqlParser.DATA, 0); } + public TerminalNode NO() { return getToken(PrestoSqlParser.NO, 0); } + public CreateTableAsSelectContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateTableAsSelect(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateTableAsSelect(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateTableAsSelect(this); + else return visitor.visitChildren(this); + } + } + public static class ShowStatsContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode STATS() { return getToken(PrestoSqlParser.STATS, 0); } + public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ShowStatsContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowStats(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowStats(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowStats(this); + else return visitor.visitChildren(this); + } + } + public static class DropFunctionContext extends StatementContext { + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode TEMPORARY() { return getToken(PrestoSqlParser.TEMPORARY, 0); } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public TypesContext types() { + return getRuleContext(TypesContext.class,0); + } + public DropFunctionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropFunction(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropFunction(this); + else return visitor.visitChildren(this); + } + } + public static class RevokeContext extends StatementContext { + public PrincipalContext grantee; + public TerminalNode REVOKE() { return getToken(PrestoSqlParser.REVOKE, 0); } + public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public PrincipalContext principal() { + return getRuleContext(PrincipalContext.class,0); + } + public List privilege() { + return getRuleContexts(PrivilegeContext.class); + } + public PrivilegeContext privilege(int i) { + return getRuleContext(PrivilegeContext.class,i); + } + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public TerminalNode PRIVILEGES() { return getToken(PrestoSqlParser.PRIVILEGES, 0); } + public TerminalNode GRANT() { return getToken(PrestoSqlParser.GRANT, 0); } + public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); } + public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public RevokeContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRevoke(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRevoke(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRevoke(this); + else return visitor.visitChildren(this); + } + } + public static class CreateTypeContext extends StatementContext { + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode TYPE() { return getToken(PrestoSqlParser.TYPE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public List sqlParameterDeclaration() { + return getRuleContexts(SqlParameterDeclarationContext.class); + } + public SqlParameterDeclarationContext sqlParameterDeclaration(int i) { + return getRuleContext(SqlParameterDeclarationContext.class,i); + } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public CreateTypeContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateType(this); + else return visitor.visitChildren(this); + } + } + public static class DeleteContext extends StatementContext { + public TerminalNode DELETE() { return getToken(PrestoSqlParser.DELETE, 0); } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); } + public BooleanExpressionContext booleanExpression() { + return getRuleContext(BooleanExpressionContext.class,0); + } + public DeleteContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDelete(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDelete(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDelete(this); + else return visitor.visitChildren(this); + } + } + public static class DescribeInputContext extends StatementContext { + public TerminalNode DESCRIBE() { return getToken(PrestoSqlParser.DESCRIBE, 0); } + public TerminalNode INPUT() { return getToken(PrestoSqlParser.INPUT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public DescribeInputContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDescribeInput(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDescribeInput(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDescribeInput(this); + else return visitor.visitChildren(this); + } + } + public static class ShowStatsForQueryContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode STATS() { return getToken(PrestoSqlParser.STATS, 0); } + public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); } + public QuerySpecificationContext querySpecification() { + return getRuleContext(QuerySpecificationContext.class,0); + } + public ShowStatsForQueryContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowStatsForQuery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowStatsForQuery(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowStatsForQuery(this); + else return visitor.visitChildren(this); + } + } + public static class StatementDefaultContext extends StatementContext { + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public StatementDefaultContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStatementDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStatementDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitStatementDefault(this); + else return visitor.visitChildren(this); + } + } + public static class CreateMaterializedViewContext extends StatementContext { + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public PropertiesContext properties() { + return getRuleContext(PropertiesContext.class,0); + } + public CreateMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateMaterializedView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateMaterializedView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateMaterializedView(this); + else return visitor.visitChildren(this); + } + } + public static class AlterFunctionContext extends StatementContext { + public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); } + public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public AlterRoutineCharacteristicsContext alterRoutineCharacteristics() { + return getRuleContext(AlterRoutineCharacteristicsContext.class,0); + } + public TypesContext types() { + return getRuleContext(TypesContext.class,0); + } + public AlterFunctionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAlterFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAlterFunction(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAlterFunction(this); + else return visitor.visitChildren(this); + } + } + public static class SetSessionContext extends StatementContext { + public TerminalNode SET() { return getToken(PrestoSqlParser.SET, 0); } + public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode EQ() { return getToken(PrestoSqlParser.EQ, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public SetSessionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetSession(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetSession(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSetSession(this); + else return visitor.visitChildren(this); + } + } + public static class CreateViewContext extends StatementContext { + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public TerminalNode OR() { return getToken(PrestoSqlParser.OR, 0); } + public TerminalNode REPLACE() { return getToken(PrestoSqlParser.REPLACE, 0); } + public TerminalNode SECURITY() { return getToken(PrestoSqlParser.SECURITY, 0); } + public TerminalNode DEFINER() { return getToken(PrestoSqlParser.DEFINER, 0); } + public TerminalNode INVOKER() { return getToken(PrestoSqlParser.INVOKER, 0); } + public CreateViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCreateView(this); + else return visitor.visitChildren(this); + } + } + public static class ShowSchemasContext extends StatementContext { + public StringContext pattern; + public StringContext escape; + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode SCHEMAS() { return getToken(PrestoSqlParser.SCHEMAS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public List string() { + return getRuleContexts(StringContext.class); + } + public StringContext string(int i) { + return getRuleContext(StringContext.class,i); + } + public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); } + public ShowSchemasContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowSchemas(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowSchemas(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowSchemas(this); + else return visitor.visitChildren(this); + } + } + public static class DropTableContext extends StatementContext { + public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public DropTableContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropTable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDropTable(this); + else return visitor.visitChildren(this); + } + } + public static class RollbackContext extends StatementContext { + public TerminalNode ROLLBACK() { return getToken(PrestoSqlParser.ROLLBACK, 0); } + public TerminalNode WORK() { return getToken(PrestoSqlParser.WORK, 0); } + public RollbackContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRollback(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRollback(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRollback(this); + else return visitor.visitChildren(this); + } + } + public static class GrantRolesContext extends StatementContext { + public TerminalNode GRANT() { return getToken(PrestoSqlParser.GRANT, 0); } + public RolesContext roles() { + return getRuleContext(RolesContext.class,0); + } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public List principal() { + return getRuleContexts(PrincipalContext.class); + } + public PrincipalContext principal(int i) { + return getRuleContext(PrincipalContext.class,i); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); } + public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); } + public TerminalNode GRANTED() { return getToken(PrestoSqlParser.GRANTED, 0); } + public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); } + public GrantorContext grantor() { + return getRuleContext(GrantorContext.class,0); + } + public GrantRolesContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGrantRoles(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGrantRoles(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitGrantRoles(this); + else return visitor.visitChildren(this); + } + } + public static class CallContext extends StatementContext { + public TerminalNode CALL() { return getToken(PrestoSqlParser.CALL, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public List callArgument() { + return getRuleContexts(CallArgumentContext.class); + } + public CallArgumentContext callArgument(int i) { + return getRuleContext(CallArgumentContext.class,i); + } + public CallContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCall(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCall(this); + else return visitor.visitChildren(this); + } + } + public static class RefreshMaterializedViewContext extends StatementContext { + public TerminalNode REFRESH() { return getToken(PrestoSqlParser.REFRESH, 0); } + public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); } + public BooleanExpressionContext booleanExpression() { + return getRuleContext(BooleanExpressionContext.class,0); + } + public RefreshMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRefreshMaterializedView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRefreshMaterializedView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRefreshMaterializedView(this); + else return visitor.visitChildren(this); + } + } + public static class ShowCreateMaterializedViewContext extends StatementContext { + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); } + public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ShowCreateMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateMaterializedView(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateMaterializedView(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowCreateMaterializedView(this); + else return visitor.visitChildren(this); + } + } + public static class ShowFunctionsContext extends StatementContext { + public StringContext pattern; + public StringContext escape; + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode FUNCTIONS() { return getToken(PrestoSqlParser.FUNCTIONS, 0); } + public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); } + public List string() { + return getRuleContexts(StringContext.class); + } + public StringContext string(int i) { + return getRuleContext(StringContext.class,i); + } + public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); } + public ShowFunctionsContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowFunctions(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowFunctions(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitShowFunctions(this); + else return visitor.visitChildren(this); + } + } + public static class DescribeOutputContext extends StatementContext { + public TerminalNode DESCRIBE() { return getToken(PrestoSqlParser.DESCRIBE, 0); } + public TerminalNode OUTPUT() { return getToken(PrestoSqlParser.OUTPUT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public DescribeOutputContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDescribeOutput(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDescribeOutput(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDescribeOutput(this); + else return visitor.visitChildren(this); + } + } + public static class GrantContext extends StatementContext { + public PrincipalContext grantee; + public List GRANT() { return getTokens(PrestoSqlParser.GRANT); } + public TerminalNode GRANT(int i) { + return getToken(PrestoSqlParser.GRANT, i); + } + public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public PrincipalContext principal() { + return getRuleContext(PrincipalContext.class,0); + } + public List privilege() { + return getRuleContexts(PrivilegeContext.class); + } + public PrivilegeContext privilege(int i) { + return getRuleContext(PrivilegeContext.class,i); + } + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public TerminalNode PRIVILEGES() { return getToken(PrestoSqlParser.PRIVILEGES, 0); } + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); } + public GrantContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGrant(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGrant(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitGrant(this); + else return visitor.visitChildren(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_statement); + int _la; + try { + setState(791); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) { + case 1: + _localctx = new StatementDefaultContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(163); + query(); + } + break; + case 2: + _localctx = new UseContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(164); + match(USE); + setState(165); + ((UseContext)_localctx).schema = identifier(); + } + break; + case 3: + _localctx = new UseContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(166); + match(USE); + setState(167); + ((UseContext)_localctx).catalog = identifier(); + setState(168); + match(T__0); + setState(169); + ((UseContext)_localctx).schema = identifier(); + } + break; + case 4: + _localctx = new CreateSchemaContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(171); + match(CREATE); + setState(172); + match(SCHEMA); + setState(176); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { + case 1: + { + setState(173); + match(IF); + setState(174); + match(NOT); + setState(175); + match(EXISTS); + } + break; + } + setState(178); + qualifiedName(); + setState(181); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(179); + match(WITH); + setState(180); + properties(); + } + } + + } + break; + case 5: + _localctx = new DropSchemaContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(183); + match(DROP); + setState(184); + match(SCHEMA); + setState(187); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { + case 1: + { + setState(185); + match(IF); + setState(186); + match(EXISTS); + } + break; + } + setState(189); + qualifiedName(); + setState(191); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(190); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 6: + _localctx = new RenameSchemaContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(193); + match(ALTER); + setState(194); + match(SCHEMA); + setState(195); + qualifiedName(); + setState(196); + match(RENAME); + setState(197); + match(TO); + setState(198); + identifier(); + } + break; + case 7: + _localctx = new CreateTableAsSelectContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(200); + match(CREATE); + setState(201); + match(TABLE); + setState(205); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { + case 1: + { + setState(202); + match(IF); + setState(203); + match(NOT); + setState(204); + match(EXISTS); + } + break; + } + setState(207); + qualifiedName(); + setState(209); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(208); + columnAliases(); + } + } + + setState(213); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMENT) { + { + setState(211); + match(COMMENT); + setState(212); + string(); + } + } + + setState(217); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(215); + match(WITH); + setState(216); + properties(); + } + } + + setState(219); + match(AS); + setState(225); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) { + case 1: + { + setState(220); + query(); + } + break; + case 2: + { + setState(221); + match(T__1); + setState(222); + query(); + setState(223); + match(T__2); + } + break; + } + setState(232); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(227); + match(WITH); + setState(229); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NO) { + { + setState(228); + match(NO); + } + } + + setState(231); + match(DATA); + } + } + + } + break; + case 8: + _localctx = new CreateTableContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(234); + match(CREATE); + setState(235); + match(TABLE); + setState(239); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { + case 1: + { + setState(236); + match(IF); + setState(237); + match(NOT); + setState(238); + match(EXISTS); + } + break; + } + setState(241); + qualifiedName(); + setState(242); + match(T__1); + setState(243); + tableElement(); + setState(248); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(244); + match(T__3); + setState(245); + tableElement(); + } + } + setState(250); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(251); + match(T__2); + setState(254); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMENT) { + { + setState(252); + match(COMMENT); + setState(253); + string(); + } + } + + setState(258); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(256); + match(WITH); + setState(257); + properties(); + } + } + + } + break; + case 9: + _localctx = new DropTableContext(_localctx); + enterOuterAlt(_localctx, 9); + { + setState(260); + match(DROP); + setState(261); + match(TABLE); + setState(264); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) { + case 1: + { + setState(262); + match(IF); + setState(263); + match(EXISTS); + } + break; + } + setState(266); + qualifiedName(); + } + break; + case 10: + _localctx = new InsertIntoContext(_localctx); + enterOuterAlt(_localctx, 10); + { + setState(267); + match(INSERT); + setState(268); + match(INTO); + setState(269); + qualifiedName(); + setState(271); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + { + setState(270); + columnAliases(); + } + break; + } + setState(273); + query(); + } + break; + case 11: + _localctx = new DeleteContext(_localctx); + enterOuterAlt(_localctx, 11); + { + setState(275); + match(DELETE); + setState(276); + match(FROM); + setState(277); + qualifiedName(); + setState(280); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(278); + match(WHERE); + setState(279); + booleanExpression(0); + } + } + + } + break; + case 12: + _localctx = new RenameTableContext(_localctx); + enterOuterAlt(_localctx, 12); + { + setState(282); + match(ALTER); + setState(283); + match(TABLE); + setState(286); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { + case 1: + { + setState(284); + match(IF); + setState(285); + match(EXISTS); + } + break; + } + setState(288); + ((RenameTableContext)_localctx).from = qualifiedName(); + setState(289); + match(RENAME); + setState(290); + match(TO); + setState(291); + ((RenameTableContext)_localctx).to = qualifiedName(); + } + break; + case 13: + _localctx = new RenameColumnContext(_localctx); + enterOuterAlt(_localctx, 13); + { + setState(293); + match(ALTER); + setState(294); + match(TABLE); + setState(297); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) { + case 1: + { + setState(295); + match(IF); + setState(296); + match(EXISTS); + } + break; + } + setState(299); + ((RenameColumnContext)_localctx).tableName = qualifiedName(); + setState(300); + match(RENAME); + setState(301); + match(COLUMN); + setState(304); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) { + case 1: + { + setState(302); + match(IF); + setState(303); + match(EXISTS); + } + break; + } + setState(306); + ((RenameColumnContext)_localctx).from = identifier(); + setState(307); + match(TO); + setState(308); + ((RenameColumnContext)_localctx).to = identifier(); + } + break; + case 14: + _localctx = new DropColumnContext(_localctx); + enterOuterAlt(_localctx, 14); + { + setState(310); + match(ALTER); + setState(311); + match(TABLE); + setState(314); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,21,_ctx) ) { + case 1: + { + setState(312); + match(IF); + setState(313); + match(EXISTS); + } + break; + } + setState(316); + ((DropColumnContext)_localctx).tableName = qualifiedName(); + setState(317); + match(DROP); + setState(318); + match(COLUMN); + setState(321); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,22,_ctx) ) { + case 1: + { + setState(319); + match(IF); + setState(320); + match(EXISTS); + } + break; + } + setState(323); + ((DropColumnContext)_localctx).column = qualifiedName(); + } + break; + case 15: + _localctx = new AddColumnContext(_localctx); + enterOuterAlt(_localctx, 15); + { + setState(325); + match(ALTER); + setState(326); + match(TABLE); + setState(329); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) { + case 1: + { + setState(327); + match(IF); + setState(328); + match(EXISTS); + } + break; + } + setState(331); + ((AddColumnContext)_localctx).tableName = qualifiedName(); + setState(332); + match(ADD); + setState(333); + match(COLUMN); + setState(337); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) { + case 1: + { + setState(334); + match(IF); + setState(335); + match(NOT); + setState(336); + match(EXISTS); + } + break; + } + setState(339); + ((AddColumnContext)_localctx).column = columnDefinition(); + } + break; + case 16: + _localctx = new AnalyzeContext(_localctx); + enterOuterAlt(_localctx, 16); + { + setState(341); + match(ANALYZE); + setState(342); + qualifiedName(); + setState(345); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(343); + match(WITH); + setState(344); + properties(); + } + } + + } + break; + case 17: + _localctx = new CreateTypeContext(_localctx); + enterOuterAlt(_localctx, 17); + { + setState(347); + match(CREATE); + setState(348); + match(TYPE); + setState(349); + qualifiedName(); + setState(350); + match(AS); + setState(363); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__1: + { + setState(351); + match(T__1); + setState(352); + sqlParameterDeclaration(); + setState(357); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(353); + match(T__3); + setState(354); + sqlParameterDeclaration(); + } + } + setState(359); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(360); + match(T__2); + } + break; + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_ROLE: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXPLAIN: + case EXTERNAL: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + case TIME_WITH_TIME_ZONE: + case TIMESTAMP_WITH_TIME_ZONE: + case DOUBLE_PRECISION: + { + setState(362); + type(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 18: + _localctx = new CreateViewContext(_localctx); + enterOuterAlt(_localctx, 18); + { + setState(365); + match(CREATE); + setState(368); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(366); + match(OR); + setState(367); + match(REPLACE); + } + } + + setState(370); + match(VIEW); + setState(371); + qualifiedName(); + setState(374); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SECURITY) { + { + setState(372); + match(SECURITY); + setState(373); + _la = _input.LA(1); + if ( !(_la==DEFINER || _la==INVOKER) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(376); + match(AS); + setState(377); + query(); + } + break; + case 19: + _localctx = new DropViewContext(_localctx); + enterOuterAlt(_localctx, 19); + { + setState(379); + match(DROP); + setState(380); + match(VIEW); + setState(383); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) { + case 1: + { + setState(381); + match(IF); + setState(382); + match(EXISTS); + } + break; + } + setState(385); + qualifiedName(); + } + break; + case 20: + _localctx = new CreateMaterializedViewContext(_localctx); + enterOuterAlt(_localctx, 20); + { + setState(386); + match(CREATE); + setState(387); + match(MATERIALIZED); + setState(388); + match(VIEW); + setState(392); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) { + case 1: + { + setState(389); + match(IF); + setState(390); + match(NOT); + setState(391); + match(EXISTS); + } + break; + } + setState(394); + qualifiedName(); + setState(397); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMENT) { + { + setState(395); + match(COMMENT); + setState(396); + string(); + } + } + + setState(401); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(399); + match(WITH); + setState(400); + properties(); + } + } + + setState(403); + match(AS); + setState(409); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) { + case 1: + { + setState(404); + query(); + } + break; + case 2: + { + setState(405); + match(T__1); + setState(406); + query(); + setState(407); + match(T__2); + } + break; + } + } + break; + case 21: + _localctx = new DropMaterializedViewContext(_localctx); + enterOuterAlt(_localctx, 21); + { + setState(411); + match(DROP); + setState(412); + match(MATERIALIZED); + setState(413); + match(VIEW); + setState(416); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) { + case 1: + { + setState(414); + match(IF); + setState(415); + match(EXISTS); + } + break; + } + setState(418); + qualifiedName(); + } + break; + case 22: + _localctx = new RefreshMaterializedViewContext(_localctx); + enterOuterAlt(_localctx, 22); + { + setState(419); + match(REFRESH); + setState(420); + match(MATERIALIZED); + setState(421); + match(VIEW); + setState(422); + qualifiedName(); + setState(423); + match(WHERE); + setState(424); + booleanExpression(0); + } + break; + case 23: + _localctx = new CreateFunctionContext(_localctx); + enterOuterAlt(_localctx, 23); + { + setState(426); + match(CREATE); + setState(429); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(427); + match(OR); + setState(428); + match(REPLACE); + } + } + + setState(432); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TEMPORARY) { + { + setState(431); + match(TEMPORARY); + } + } + + setState(434); + match(FUNCTION); + setState(435); + ((CreateFunctionContext)_localctx).functionName = qualifiedName(); + setState(436); + match(T__1); + setState(445); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)))) != 0)) { + { + setState(437); + sqlParameterDeclaration(); + setState(442); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(438); + match(T__3); + setState(439); + sqlParameterDeclaration(); + } + } + setState(444); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(447); + match(T__2); + setState(448); + match(RETURNS); + setState(449); + ((CreateFunctionContext)_localctx).returnType = type(0); + setState(452); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMENT) { + { + setState(450); + match(COMMENT); + setState(451); + string(); + } + } + + setState(454); + routineCharacteristics(); + setState(455); + routineBody(); + } + break; + case 24: + _localctx = new AlterFunctionContext(_localctx); + enterOuterAlt(_localctx, 24); + { + setState(457); + match(ALTER); + setState(458); + match(FUNCTION); + setState(459); + qualifiedName(); + setState(461); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(460); + types(); + } + } + + setState(463); + alterRoutineCharacteristics(); + } + break; + case 25: + _localctx = new DropFunctionContext(_localctx); + enterOuterAlt(_localctx, 25); + { + setState(465); + match(DROP); + setState(467); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TEMPORARY) { + { + setState(466); + match(TEMPORARY); + } + } + + setState(469); + match(FUNCTION); + setState(472); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) { + case 1: + { + setState(470); + match(IF); + setState(471); + match(EXISTS); + } + break; + } + setState(474); + qualifiedName(); + setState(476); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(475); + types(); + } + } + + } + break; + case 26: + _localctx = new CallContext(_localctx); + enterOuterAlt(_localctx, 26); + { + setState(478); + match(CALL); + setState(479); + qualifiedName(); + setState(480); + match(T__1); + setState(489); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(481); + callArgument(); + setState(486); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(482); + match(T__3); + setState(483); + callArgument(); + } + } + setState(488); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(491); + match(T__2); + } + break; + case 27: + _localctx = new CreateRoleContext(_localctx); + enterOuterAlt(_localctx, 27); + { + setState(493); + match(CREATE); + setState(494); + match(ROLE); + setState(495); + ((CreateRoleContext)_localctx).name = identifier(); + setState(499); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(496); + match(WITH); + setState(497); + match(ADMIN); + setState(498); + grantor(); + } + } + + } + break; + case 28: + _localctx = new DropRoleContext(_localctx); + enterOuterAlt(_localctx, 28); + { + setState(501); + match(DROP); + setState(502); + match(ROLE); + setState(503); + ((DropRoleContext)_localctx).name = identifier(); + } + break; + case 29: + _localctx = new GrantRolesContext(_localctx); + enterOuterAlt(_localctx, 29); + { + setState(504); + match(GRANT); + setState(505); + roles(); + setState(506); + match(TO); + setState(507); + principal(); + setState(512); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(508); + match(T__3); + setState(509); + principal(); + } + } + setState(514); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(518); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(515); + match(WITH); + setState(516); + match(ADMIN); + setState(517); + match(OPTION); + } + } + + setState(523); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GRANTED) { + { + setState(520); + match(GRANTED); + setState(521); + match(BY); + setState(522); + grantor(); + } + } + + } + break; + case 30: + _localctx = new RevokeRolesContext(_localctx); + enterOuterAlt(_localctx, 30); + { + setState(525); + match(REVOKE); + setState(529); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) { + case 1: + { + setState(526); + match(ADMIN); + setState(527); + match(OPTION); + setState(528); + match(FOR); + } + break; + } + setState(531); + roles(); + setState(532); + match(FROM); + setState(533); + principal(); + setState(538); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(534); + match(T__3); + setState(535); + principal(); + } + } + setState(540); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(544); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GRANTED) { + { + setState(541); + match(GRANTED); + setState(542); + match(BY); + setState(543); + grantor(); + } + } + + } + break; + case 31: + _localctx = new SetRoleContext(_localctx); + enterOuterAlt(_localctx, 31); + { + setState(546); + match(SET); + setState(547); + match(ROLE); + setState(551); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,54,_ctx) ) { + case 1: + { + setState(548); + match(ALL); + } + break; + case 2: + { + setState(549); + match(NONE); + } + break; + case 3: + { + setState(550); + ((SetRoleContext)_localctx).role = identifier(); + } + break; + } + } + break; + case 32: + _localctx = new GrantContext(_localctx); + enterOuterAlt(_localctx, 32); + { + setState(553); + match(GRANT); + setState(564); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) { + case 1: + { + setState(554); + privilege(); + setState(559); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(555); + match(T__3); + setState(556); + privilege(); + } + } + setState(561); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + break; + case 2: + { + setState(562); + match(ALL); + setState(563); + match(PRIVILEGES); + } + break; + } + setState(566); + match(ON); + setState(568); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLE) { + { + setState(567); + match(TABLE); + } + } + + setState(570); + qualifiedName(); + setState(571); + match(TO); + setState(572); + ((GrantContext)_localctx).grantee = principal(); + setState(576); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(573); + match(WITH); + setState(574); + match(GRANT); + setState(575); + match(OPTION); + } + } + + } + break; + case 33: + _localctx = new RevokeContext(_localctx); + enterOuterAlt(_localctx, 33); + { + setState(578); + match(REVOKE); + setState(582); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { + case 1: + { + setState(579); + match(GRANT); + setState(580); + match(OPTION); + setState(581); + match(FOR); + } + break; + } + setState(594); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { + case 1: + { + setState(584); + privilege(); + setState(589); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(585); + match(T__3); + setState(586); + privilege(); + } + } + setState(591); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + break; + case 2: + { + setState(592); + match(ALL); + setState(593); + match(PRIVILEGES); + } + break; + } + setState(596); + match(ON); + setState(598); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLE) { + { + setState(597); + match(TABLE); + } + } + + setState(600); + qualifiedName(); + setState(601); + match(FROM); + setState(602); + ((RevokeContext)_localctx).grantee = principal(); + } + break; + case 34: + _localctx = new ShowGrantsContext(_localctx); + enterOuterAlt(_localctx, 34); + { + setState(604); + match(SHOW); + setState(605); + match(GRANTS); + setState(611); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ON) { + { + setState(606); + match(ON); + setState(608); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLE) { + { + setState(607); + match(TABLE); + } + } + + setState(610); + qualifiedName(); + } + } + + } + break; + case 35: + _localctx = new ExplainContext(_localctx); + enterOuterAlt(_localctx, 35); + { + setState(613); + match(EXPLAIN); + setState(615); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,65,_ctx) ) { + case 1: + { + setState(614); + match(ANALYZE); + } + break; + } + setState(618); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VERBOSE) { + { + setState(617); + match(VERBOSE); + } + } + + setState(631); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) { + case 1: + { + setState(620); + match(T__1); + setState(621); + explainOption(); + setState(626); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(622); + match(T__3); + setState(623); + explainOption(); + } + } + setState(628); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(629); + match(T__2); + } + break; + } + setState(633); + statement(); + } + break; + case 36: + _localctx = new ShowCreateTableContext(_localctx); + enterOuterAlt(_localctx, 36); + { + setState(634); + match(SHOW); + setState(635); + match(CREATE); + setState(636); + match(TABLE); + setState(637); + qualifiedName(); + } + break; + case 37: + _localctx = new ShowCreateViewContext(_localctx); + enterOuterAlt(_localctx, 37); + { + setState(638); + match(SHOW); + setState(639); + match(CREATE); + setState(640); + match(VIEW); + setState(641); + qualifiedName(); + } + break; + case 38: + _localctx = new ShowCreateMaterializedViewContext(_localctx); + enterOuterAlt(_localctx, 38); + { + setState(642); + match(SHOW); + setState(643); + match(CREATE); + setState(644); + match(MATERIALIZED); + setState(645); + match(VIEW); + setState(646); + qualifiedName(); + } + break; + case 39: + _localctx = new ShowCreateFunctionContext(_localctx); + enterOuterAlt(_localctx, 39); + { + setState(647); + match(SHOW); + setState(648); + match(CREATE); + setState(649); + match(FUNCTION); + setState(650); + qualifiedName(); + setState(652); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(651); + types(); + } + } + + } + break; + case 40: + _localctx = new ShowTablesContext(_localctx); + enterOuterAlt(_localctx, 40); + { + setState(654); + match(SHOW); + setState(655); + match(TABLES); + setState(658); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM || _la==IN) { + { + setState(656); + _la = _input.LA(1); + if ( !(_la==FROM || _la==IN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(657); + qualifiedName(); + } + } + + setState(666); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LIKE) { + { + setState(660); + match(LIKE); + setState(661); + ((ShowTablesContext)_localctx).pattern = string(); + setState(664); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ESCAPE) { + { + setState(662); + match(ESCAPE); + setState(663); + ((ShowTablesContext)_localctx).escape = string(); + } + } + + } + } + + } + break; + case 41: + _localctx = new ShowSchemasContext(_localctx); + enterOuterAlt(_localctx, 41); + { + setState(668); + match(SHOW); + setState(669); + match(SCHEMAS); + setState(672); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM || _la==IN) { + { + setState(670); + _la = _input.LA(1); + if ( !(_la==FROM || _la==IN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(671); + identifier(); + } + } + + setState(680); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LIKE) { + { + setState(674); + match(LIKE); + setState(675); + ((ShowSchemasContext)_localctx).pattern = string(); + setState(678); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ESCAPE) { + { + setState(676); + match(ESCAPE); + setState(677); + ((ShowSchemasContext)_localctx).escape = string(); + } + } + + } + } + + } + break; + case 42: + _localctx = new ShowCatalogsContext(_localctx); + enterOuterAlt(_localctx, 42); + { + setState(682); + match(SHOW); + setState(683); + match(CATALOGS); + setState(686); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LIKE) { + { + setState(684); + match(LIKE); + setState(685); + ((ShowCatalogsContext)_localctx).pattern = string(); + } + } + + } + break; + case 43: + _localctx = new ShowColumnsContext(_localctx); + enterOuterAlt(_localctx, 43); + { + setState(688); + match(SHOW); + setState(689); + match(COLUMNS); + setState(690); + _la = _input.LA(1); + if ( !(_la==FROM || _la==IN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(691); + qualifiedName(); + } + break; + case 44: + _localctx = new ShowStatsContext(_localctx); + enterOuterAlt(_localctx, 44); + { + setState(692); + match(SHOW); + setState(693); + match(STATS); + setState(694); + match(FOR); + setState(695); + qualifiedName(); + } + break; + case 45: + _localctx = new ShowStatsForQueryContext(_localctx); + enterOuterAlt(_localctx, 45); + { + setState(696); + match(SHOW); + setState(697); + match(STATS); + setState(698); + match(FOR); + setState(699); + match(T__1); + setState(700); + querySpecification(); + setState(701); + match(T__2); + } + break; + case 46: + _localctx = new ShowRolesContext(_localctx); + enterOuterAlt(_localctx, 46); + { + setState(703); + match(SHOW); + setState(705); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CURRENT) { + { + setState(704); + match(CURRENT); + } + } + + setState(707); + match(ROLES); + setState(710); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM || _la==IN) { + { + setState(708); + _la = _input.LA(1); + if ( !(_la==FROM || _la==IN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(709); + identifier(); + } + } + + } + break; + case 47: + _localctx = new ShowRoleGrantsContext(_localctx); + enterOuterAlt(_localctx, 47); + { + setState(712); + match(SHOW); + setState(713); + match(ROLE); + setState(714); + match(GRANTS); + setState(717); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM || _la==IN) { + { + setState(715); + _la = _input.LA(1); + if ( !(_la==FROM || _la==IN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(716); + identifier(); + } + } + + } + break; + case 48: + _localctx = new ShowColumnsContext(_localctx); + enterOuterAlt(_localctx, 48); + { + setState(719); + match(DESCRIBE); + setState(720); + qualifiedName(); + } + break; + case 49: + _localctx = new ShowColumnsContext(_localctx); + enterOuterAlt(_localctx, 49); + { + setState(721); + match(DESC); + setState(722); + qualifiedName(); + } + break; + case 50: + _localctx = new ShowFunctionsContext(_localctx); + enterOuterAlt(_localctx, 50); + { + setState(723); + match(SHOW); + setState(724); + match(FUNCTIONS); + setState(731); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LIKE) { + { + setState(725); + match(LIKE); + setState(726); + ((ShowFunctionsContext)_localctx).pattern = string(); + setState(729); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ESCAPE) { + { + setState(727); + match(ESCAPE); + setState(728); + ((ShowFunctionsContext)_localctx).escape = string(); + } + } + + } + } + + } + break; + case 51: + _localctx = new ShowSessionContext(_localctx); + enterOuterAlt(_localctx, 51); + { + setState(733); + match(SHOW); + setState(734); + match(SESSION); + } + break; + case 52: + _localctx = new SetSessionContext(_localctx); + enterOuterAlt(_localctx, 52); + { + setState(735); + match(SET); + setState(736); + match(SESSION); + setState(737); + qualifiedName(); + setState(738); + match(EQ); + setState(739); + expression(); + } + break; + case 53: + _localctx = new ResetSessionContext(_localctx); + enterOuterAlt(_localctx, 53); + { + setState(741); + match(RESET); + setState(742); + match(SESSION); + setState(743); + qualifiedName(); + } + break; + case 54: + _localctx = new StartTransactionContext(_localctx); + enterOuterAlt(_localctx, 54); + { + setState(744); + match(START); + setState(745); + match(TRANSACTION); + setState(754); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ISOLATION || _la==READ) { + { + setState(746); + transactionMode(); + setState(751); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(747); + match(T__3); + setState(748); + transactionMode(); + } + } + setState(753); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + } + break; + case 55: + _localctx = new CommitContext(_localctx); + enterOuterAlt(_localctx, 55); + { + setState(756); + match(COMMIT); + setState(758); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WORK) { + { + setState(757); + match(WORK); + } + } + + } + break; + case 56: + _localctx = new RollbackContext(_localctx); + enterOuterAlt(_localctx, 56); + { + setState(760); + match(ROLLBACK); + setState(762); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WORK) { + { + setState(761); + match(WORK); + } + } + + } + break; + case 57: + _localctx = new PrepareContext(_localctx); + enterOuterAlt(_localctx, 57); + { + setState(764); + match(PREPARE); + setState(765); + identifier(); + setState(766); + match(FROM); + setState(767); + statement(); + } + break; + case 58: + _localctx = new DeallocateContext(_localctx); + enterOuterAlt(_localctx, 58); + { + setState(769); + match(DEALLOCATE); + setState(770); + match(PREPARE); + setState(771); + identifier(); + } + break; + case 59: + _localctx = new ExecuteContext(_localctx); + enterOuterAlt(_localctx, 59); + { + setState(772); + match(EXECUTE); + setState(773); + identifier(); + setState(783); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(774); + match(USING); + setState(775); + expression(); + setState(780); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(776); + match(T__3); + setState(777); + expression(); + } + } + setState(782); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + } + break; + case 60: + _localctx = new DescribeInputContext(_localctx); + enterOuterAlt(_localctx, 60); + { + setState(785); + match(DESCRIBE); + setState(786); + match(INPUT); + setState(787); + identifier(); + } + break; + case 61: + _localctx = new DescribeOutputContext(_localctx); + enterOuterAlt(_localctx, 61); + { + setState(788); + match(DESCRIBE); + setState(789); + match(OUTPUT); + setState(790); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class QueryContext extends ParserRuleContext { + public QueryNoWithContext queryNoWith() { + return getRuleContext(QueryNoWithContext.class,0); + } + public WithContext with() { + return getRuleContext(WithContext.class,0); + } + public QueryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_query; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuery(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQuery(this); + else return visitor.visitChildren(this); + } + } + + public final QueryContext query() throws RecognitionException { + QueryContext _localctx = new QueryContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_query); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(794); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(793); + with(); + } + } + + setState(796); + queryNoWith(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WithContext extends ParserRuleContext { + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public List namedQuery() { + return getRuleContexts(NamedQueryContext.class); + } + public NamedQueryContext namedQuery(int i) { + return getRuleContext(NamedQueryContext.class,i); + } + public TerminalNode RECURSIVE() { return getToken(PrestoSqlParser.RECURSIVE, 0); } + public WithContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_with; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterWith(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitWith(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitWith(this); + else return visitor.visitChildren(this); + } + } + + public final WithContext with() throws RecognitionException { + WithContext _localctx = new WithContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_with); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(798); + match(WITH); + setState(800); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RECURSIVE) { + { + setState(799); + match(RECURSIVE); + } + } + + setState(802); + namedQuery(); + setState(807); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(803); + match(T__3); + setState(804); + namedQuery(); + } + } + setState(809); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TableElementContext extends ParserRuleContext { + public ColumnDefinitionContext columnDefinition() { + return getRuleContext(ColumnDefinitionContext.class,0); + } + public LikeClauseContext likeClause() { + return getRuleContext(LikeClauseContext.class,0); + } + public TableElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tableElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTableElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTableElement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTableElement(this); + else return visitor.visitChildren(this); + } + } + + public final TableElementContext tableElement() throws RecognitionException { + TableElementContext _localctx = new TableElementContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_tableElement); + try { + setState(812); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_ROLE: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXPLAIN: + case EXTERNAL: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(810); + columnDefinition(); + } + break; + case LIKE: + enterOuterAlt(_localctx, 2); + { + setState(811); + likeClause(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ColumnDefinitionContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public TerminalNode NULL() { return getToken(PrestoSqlParser.NULL, 0); } + public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public PropertiesContext properties() { + return getRuleContext(PropertiesContext.class,0); + } + public ColumnDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_columnDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterColumnDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitColumnDefinition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitColumnDefinition(this); + else return visitor.visitChildren(this); + } + } + + public final ColumnDefinitionContext columnDefinition() throws RecognitionException { + ColumnDefinitionContext _localctx = new ColumnDefinitionContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_columnDefinition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(814); + identifier(); + setState(815); + type(0); + setState(818); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(816); + match(NOT); + setState(817); + match(NULL); + } + } + + setState(822); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMENT) { + { + setState(820); + match(COMMENT); + setState(821); + string(); + } + } + + setState(826); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(824); + match(WITH); + setState(825); + properties(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LikeClauseContext extends ParserRuleContext { + public Token optionType; + public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode PROPERTIES() { return getToken(PrestoSqlParser.PROPERTIES, 0); } + public TerminalNode INCLUDING() { return getToken(PrestoSqlParser.INCLUDING, 0); } + public TerminalNode EXCLUDING() { return getToken(PrestoSqlParser.EXCLUDING, 0); } + public LikeClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_likeClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLikeClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLikeClause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLikeClause(this); + else return visitor.visitChildren(this); + } + } + + public final LikeClauseContext likeClause() throws RecognitionException { + LikeClauseContext _localctx = new LikeClauseContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_likeClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(828); + match(LIKE); + setState(829); + qualifiedName(); + setState(832); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXCLUDING || _la==INCLUDING) { + { + setState(830); + ((LikeClauseContext)_localctx).optionType = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==EXCLUDING || _la==INCLUDING) ) { + ((LikeClauseContext)_localctx).optionType = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(831); + match(PROPERTIES); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PropertiesContext extends ParserRuleContext { + public List property() { + return getRuleContexts(PropertyContext.class); + } + public PropertyContext property(int i) { + return getRuleContext(PropertyContext.class,i); + } + public PropertiesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_properties; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterProperties(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitProperties(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitProperties(this); + else return visitor.visitChildren(this); + } + } + + public final PropertiesContext properties() throws RecognitionException { + PropertiesContext _localctx = new PropertiesContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_properties); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(834); + match(T__1); + setState(835); + property(); + setState(840); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(836); + match(T__3); + setState(837); + property(); + } + } + setState(842); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(843); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PropertyContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode EQ() { return getToken(PrestoSqlParser.EQ, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public PropertyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_property; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterProperty(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitProperty(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitProperty(this); + else return visitor.visitChildren(this); + } + } + + public final PropertyContext property() throws RecognitionException { + PropertyContext _localctx = new PropertyContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_property); + try { + enterOuterAlt(_localctx, 1); + { + setState(845); + identifier(); + setState(846); + match(EQ); + setState(847); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SqlParameterDeclarationContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public SqlParameterDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sqlParameterDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSqlParameterDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSqlParameterDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSqlParameterDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final SqlParameterDeclarationContext sqlParameterDeclaration() throws RecognitionException { + SqlParameterDeclarationContext _localctx = new SqlParameterDeclarationContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_sqlParameterDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(849); + identifier(); + setState(850); + type(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RoutineCharacteristicsContext extends ParserRuleContext { + public List routineCharacteristic() { + return getRuleContexts(RoutineCharacteristicContext.class); + } + public RoutineCharacteristicContext routineCharacteristic(int i) { + return getRuleContext(RoutineCharacteristicContext.class,i); + } + public RoutineCharacteristicsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_routineCharacteristics; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoutineCharacteristics(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoutineCharacteristics(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRoutineCharacteristics(this); + else return visitor.visitChildren(this); + } + } + + public final RoutineCharacteristicsContext routineCharacteristics() throws RecognitionException { + RoutineCharacteristicsContext _localctx = new RoutineCharacteristicsContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_routineCharacteristics); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(855); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CALLED || _la==DETERMINISTIC || ((((_la - 101)) & ~0x3f) == 0 && ((1L << (_la - 101)) & ((1L << (LANGUAGE - 101)) | (1L << (NOT - 101)) | (1L << (RETURNS - 101)))) != 0)) { + { + { + setState(852); + routineCharacteristic(); + } + } + setState(857); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RoutineCharacteristicContext extends ParserRuleContext { + public TerminalNode LANGUAGE() { return getToken(PrestoSqlParser.LANGUAGE, 0); } + public LanguageContext language() { + return getRuleContext(LanguageContext.class,0); + } + public DeterminismContext determinism() { + return getRuleContext(DeterminismContext.class,0); + } + public NullCallClauseContext nullCallClause() { + return getRuleContext(NullCallClauseContext.class,0); + } + public RoutineCharacteristicContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_routineCharacteristic; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoutineCharacteristic(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoutineCharacteristic(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRoutineCharacteristic(this); + else return visitor.visitChildren(this); + } + } + + public final RoutineCharacteristicContext routineCharacteristic() throws RecognitionException { + RoutineCharacteristicContext _localctx = new RoutineCharacteristicContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_routineCharacteristic); + try { + setState(862); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LANGUAGE: + enterOuterAlt(_localctx, 1); + { + setState(858); + match(LANGUAGE); + setState(859); + language(); + } + break; + case DETERMINISTIC: + case NOT: + enterOuterAlt(_localctx, 2); + { + setState(860); + determinism(); + } + break; + case CALLED: + case RETURNS: + enterOuterAlt(_localctx, 3); + { + setState(861); + nullCallClause(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AlterRoutineCharacteristicsContext extends ParserRuleContext { + public List alterRoutineCharacteristic() { + return getRuleContexts(AlterRoutineCharacteristicContext.class); + } + public AlterRoutineCharacteristicContext alterRoutineCharacteristic(int i) { + return getRuleContext(AlterRoutineCharacteristicContext.class,i); + } + public AlterRoutineCharacteristicsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alterRoutineCharacteristics; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAlterRoutineCharacteristics(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAlterRoutineCharacteristics(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAlterRoutineCharacteristics(this); + else return visitor.visitChildren(this); + } + } + + public final AlterRoutineCharacteristicsContext alterRoutineCharacteristics() throws RecognitionException { + AlterRoutineCharacteristicsContext _localctx = new AlterRoutineCharacteristicsContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_alterRoutineCharacteristics); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(867); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CALLED || _la==RETURNS) { + { + { + setState(864); + alterRoutineCharacteristic(); + } + } + setState(869); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AlterRoutineCharacteristicContext extends ParserRuleContext { + public NullCallClauseContext nullCallClause() { + return getRuleContext(NullCallClauseContext.class,0); + } + public AlterRoutineCharacteristicContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alterRoutineCharacteristic; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAlterRoutineCharacteristic(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAlterRoutineCharacteristic(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAlterRoutineCharacteristic(this); + else return visitor.visitChildren(this); + } + } + + public final AlterRoutineCharacteristicContext alterRoutineCharacteristic() throws RecognitionException { + AlterRoutineCharacteristicContext _localctx = new AlterRoutineCharacteristicContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_alterRoutineCharacteristic); + try { + enterOuterAlt(_localctx, 1); + { + setState(870); + nullCallClause(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RoutineBodyContext extends ParserRuleContext { + public ReturnStatementContext returnStatement() { + return getRuleContext(ReturnStatementContext.class,0); + } + public ExternalBodyReferenceContext externalBodyReference() { + return getRuleContext(ExternalBodyReferenceContext.class,0); + } + public RoutineBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_routineBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoutineBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoutineBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRoutineBody(this); + else return visitor.visitChildren(this); + } + } + + public final RoutineBodyContext routineBody() throws RecognitionException { + RoutineBodyContext _localctx = new RoutineBodyContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_routineBody); + try { + setState(874); + _errHandler.sync(this); + switch (_input.LA(1)) { + case RETURN: + enterOuterAlt(_localctx, 1); + { + setState(872); + returnStatement(); + } + break; + case EXTERNAL: + enterOuterAlt(_localctx, 2); + { + setState(873); + externalBodyReference(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ReturnStatementContext extends ParserRuleContext { + public TerminalNode RETURN() { return getToken(PrestoSqlParser.RETURN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ReturnStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitReturnStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitReturnStatement(this); + else return visitor.visitChildren(this); + } + } + + public final ReturnStatementContext returnStatement() throws RecognitionException { + ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_returnStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(876); + match(RETURN); + setState(877); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExternalBodyReferenceContext extends ParserRuleContext { + public TerminalNode EXTERNAL() { return getToken(PrestoSqlParser.EXTERNAL, 0); } + public TerminalNode NAME() { return getToken(PrestoSqlParser.NAME, 0); } + public ExternalRoutineNameContext externalRoutineName() { + return getRuleContext(ExternalRoutineNameContext.class,0); + } + public ExternalBodyReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_externalBodyReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExternalBodyReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExternalBodyReference(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExternalBodyReference(this); + else return visitor.visitChildren(this); + } + } + + public final ExternalBodyReferenceContext externalBodyReference() throws RecognitionException { + ExternalBodyReferenceContext _localctx = new ExternalBodyReferenceContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_externalBodyReference); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(879); + match(EXTERNAL); + setState(882); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NAME) { + { + setState(880); + match(NAME); + setState(881); + externalRoutineName(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LanguageContext extends ParserRuleContext { + public TerminalNode SQL() { return getToken(PrestoSqlParser.SQL, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public LanguageContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_language; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLanguage(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLanguage(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLanguage(this); + else return visitor.visitChildren(this); + } + } + + public final LanguageContext language() throws RecognitionException { + LanguageContext _localctx = new LanguageContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_language); + try { + setState(886); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,103,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(884); + match(SQL); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(885); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DeterminismContext extends ParserRuleContext { + public TerminalNode DETERMINISTIC() { return getToken(PrestoSqlParser.DETERMINISTIC, 0); } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public DeterminismContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_determinism; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDeterminism(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDeterminism(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDeterminism(this); + else return visitor.visitChildren(this); + } + } + + public final DeterminismContext determinism() throws RecognitionException { + DeterminismContext _localctx = new DeterminismContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_determinism); + try { + setState(891); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DETERMINISTIC: + enterOuterAlt(_localctx, 1); + { + setState(888); + match(DETERMINISTIC); + } + break; + case NOT: + enterOuterAlt(_localctx, 2); + { + setState(889); + match(NOT); + setState(890); + match(DETERMINISTIC); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NullCallClauseContext extends ParserRuleContext { + public TerminalNode RETURNS() { return getToken(PrestoSqlParser.RETURNS, 0); } + public List NULL() { return getTokens(PrestoSqlParser.NULL); } + public TerminalNode NULL(int i) { + return getToken(PrestoSqlParser.NULL, i); + } + public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); } + public TerminalNode INPUT() { return getToken(PrestoSqlParser.INPUT, 0); } + public TerminalNode CALLED() { return getToken(PrestoSqlParser.CALLED, 0); } + public NullCallClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullCallClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullCallClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullCallClause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNullCallClause(this); + else return visitor.visitChildren(this); + } + } + + public final NullCallClauseContext nullCallClause() throws RecognitionException { + NullCallClauseContext _localctx = new NullCallClauseContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_nullCallClause); + try { + setState(902); + _errHandler.sync(this); + switch (_input.LA(1)) { + case RETURNS: + enterOuterAlt(_localctx, 1); + { + setState(893); + match(RETURNS); + setState(894); + match(NULL); + setState(895); + match(ON); + setState(896); + match(NULL); + setState(897); + match(INPUT); + } + break; + case CALLED: + enterOuterAlt(_localctx, 2); + { + setState(898); + match(CALLED); + setState(899); + match(ON); + setState(900); + match(NULL); + setState(901); + match(INPUT); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExternalRoutineNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ExternalRoutineNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_externalRoutineName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExternalRoutineName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExternalRoutineName(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExternalRoutineName(this); + else return visitor.visitChildren(this); + } + } + + public final ExternalRoutineNameContext externalRoutineName() throws RecognitionException { + ExternalRoutineNameContext _localctx = new ExternalRoutineNameContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_externalRoutineName); + try { + enterOuterAlt(_localctx, 1); + { + setState(904); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class QueryNoWithContext extends ParserRuleContext { + public Token offset; + public Token limit; + public QueryTermContext queryTerm() { + return getRuleContext(QueryTermContext.class,0); + } + public TerminalNode ORDER() { return getToken(PrestoSqlParser.ORDER, 0); } + public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); } + public List sortItem() { + return getRuleContexts(SortItemContext.class); + } + public SortItemContext sortItem(int i) { + return getRuleContext(SortItemContext.class,i); + } + public TerminalNode OFFSET() { return getToken(PrestoSqlParser.OFFSET, 0); } + public TerminalNode LIMIT() { return getToken(PrestoSqlParser.LIMIT, 0); } + public List INTEGER_VALUE() { return getTokens(PrestoSqlParser.INTEGER_VALUE); } + public TerminalNode INTEGER_VALUE(int i) { + return getToken(PrestoSqlParser.INTEGER_VALUE, i); + } + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); } + public TerminalNode ROWS() { return getToken(PrestoSqlParser.ROWS, 0); } + public QueryNoWithContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_queryNoWith; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQueryNoWith(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQueryNoWith(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQueryNoWith(this); + else return visitor.visitChildren(this); + } + } + + public final QueryNoWithContext queryNoWith() throws RecognitionException { + QueryNoWithContext _localctx = new QueryNoWithContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_queryNoWith); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(906); + queryTerm(0); + setState(917); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ORDER) { + { + setState(907); + match(ORDER); + setState(908); + match(BY); + setState(909); + sortItem(); + setState(914); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(910); + match(T__3); + setState(911); + sortItem(); + } + } + setState(916); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(924); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OFFSET) { + { + setState(919); + match(OFFSET); + setState(920); + ((QueryNoWithContext)_localctx).offset = match(INTEGER_VALUE); + setState(922); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ROW || _la==ROWS) { + { + setState(921); + _la = _input.LA(1); + if ( !(_la==ROW || _la==ROWS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + + setState(928); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LIMIT) { + { + setState(926); + match(LIMIT); + setState(927); + ((QueryNoWithContext)_localctx).limit = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ALL || _la==INTEGER_VALUE) ) { + ((QueryNoWithContext)_localctx).limit = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class QueryTermContext extends ParserRuleContext { + public QueryTermContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_queryTerm; } + + public QueryTermContext() { } + public void copyFrom(QueryTermContext ctx) { + super.copyFrom(ctx); + } + } + public static class QueryTermDefaultContext extends QueryTermContext { + public QueryPrimaryContext queryPrimary() { + return getRuleContext(QueryPrimaryContext.class,0); + } + public QueryTermDefaultContext(QueryTermContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQueryTermDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQueryTermDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQueryTermDefault(this); + else return visitor.visitChildren(this); + } + } + public static class SetOperationContext extends QueryTermContext { + public QueryTermContext left; + public Token operator; + public QueryTermContext right; + public List queryTerm() { + return getRuleContexts(QueryTermContext.class); + } + public QueryTermContext queryTerm(int i) { + return getRuleContext(QueryTermContext.class,i); + } + public TerminalNode INTERSECT() { return getToken(PrestoSqlParser.INTERSECT, 0); } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public TerminalNode UNION() { return getToken(PrestoSqlParser.UNION, 0); } + public TerminalNode EXCEPT() { return getToken(PrestoSqlParser.EXCEPT, 0); } + public SetOperationContext(QueryTermContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetOperation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetOperation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSetOperation(this); + else return visitor.visitChildren(this); + } + } + + public final QueryTermContext queryTerm() throws RecognitionException { + return queryTerm(0); + } + + private QueryTermContext queryTerm(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + QueryTermContext _localctx = new QueryTermContext(_ctx, _parentState); + QueryTermContext _prevctx = _localctx; + int _startState = 48; + enterRecursionRule(_localctx, 48, RULE_queryTerm, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + _localctx = new QueryTermDefaultContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(931); + queryPrimary(); + } + _ctx.stop = _input.LT(-1); + setState(947); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,114,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(945); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,113,_ctx) ) { + case 1: + { + _localctx = new SetOperationContext(new QueryTermContext(_parentctx, _parentState)); + ((SetOperationContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_queryTerm); + setState(933); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(934); + ((SetOperationContext)_localctx).operator = match(INTERSECT); + setState(936); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(935); + setQuantifier(); + } + } + + setState(938); + ((SetOperationContext)_localctx).right = queryTerm(3); + } + break; + case 2: + { + _localctx = new SetOperationContext(new QueryTermContext(_parentctx, _parentState)); + ((SetOperationContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_queryTerm); + setState(939); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(940); + ((SetOperationContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==EXCEPT || _la==UNION) ) { + ((SetOperationContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(942); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(941); + setQuantifier(); + } + } + + setState(944); + ((SetOperationContext)_localctx).right = queryTerm(2); + } + break; + } + } + } + setState(949); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,114,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class QueryPrimaryContext extends ParserRuleContext { + public QueryPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_queryPrimary; } + + public QueryPrimaryContext() { } + public void copyFrom(QueryPrimaryContext ctx) { + super.copyFrom(ctx); + } + } + public static class SubqueryContext extends QueryPrimaryContext { + public QueryNoWithContext queryNoWith() { + return getRuleContext(QueryNoWithContext.class,0); + } + public SubqueryContext(QueryPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubquery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubquery(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSubquery(this); + else return visitor.visitChildren(this); + } + } + public static class QueryPrimaryDefaultContext extends QueryPrimaryContext { + public QuerySpecificationContext querySpecification() { + return getRuleContext(QuerySpecificationContext.class,0); + } + public QueryPrimaryDefaultContext(QueryPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQueryPrimaryDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQueryPrimaryDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQueryPrimaryDefault(this); + else return visitor.visitChildren(this); + } + } + public static class TableContext extends QueryPrimaryContext { + public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TableContext(QueryPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTable(this); + else return visitor.visitChildren(this); + } + } + public static class InlineTableContext extends QueryPrimaryContext { + public TerminalNode VALUES() { return getToken(PrestoSqlParser.VALUES, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public InlineTableContext(QueryPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInlineTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInlineTable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitInlineTable(this); + else return visitor.visitChildren(this); + } + } + + public final QueryPrimaryContext queryPrimary() throws RecognitionException { + QueryPrimaryContext _localctx = new QueryPrimaryContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_queryPrimary); + try { + int _alt; + setState(966); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: + _localctx = new QueryPrimaryDefaultContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(950); + querySpecification(); + } + break; + case TABLE: + _localctx = new TableContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(951); + match(TABLE); + setState(952); + qualifiedName(); + } + break; + case VALUES: + _localctx = new InlineTableContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(953); + match(VALUES); + setState(954); + expression(); + setState(959); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,115,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(955); + match(T__3); + setState(956); + expression(); + } + } + } + setState(961); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,115,_ctx); + } + } + break; + case T__1: + _localctx = new SubqueryContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(962); + match(T__1); + setState(963); + queryNoWith(); + setState(964); + match(T__2); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SortItemContext extends ParserRuleContext { + public Token ordering; + public Token nullOrdering; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode NULLS() { return getToken(PrestoSqlParser.NULLS, 0); } + public TerminalNode ASC() { return getToken(PrestoSqlParser.ASC, 0); } + public TerminalNode DESC() { return getToken(PrestoSqlParser.DESC, 0); } + public TerminalNode FIRST() { return getToken(PrestoSqlParser.FIRST, 0); } + public TerminalNode LAST() { return getToken(PrestoSqlParser.LAST, 0); } + public SortItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sortItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSortItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSortItem(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSortItem(this); + else return visitor.visitChildren(this); + } + } + + public final SortItemContext sortItem() throws RecognitionException { + SortItemContext _localctx = new SortItemContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_sortItem); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(968); + expression(); + setState(970); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASC || _la==DESC) { + { + setState(969); + ((SortItemContext)_localctx).ordering = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ASC || _la==DESC) ) { + ((SortItemContext)_localctx).ordering = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(974); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NULLS) { + { + setState(972); + match(NULLS); + setState(973); + ((SortItemContext)_localctx).nullOrdering = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==FIRST || _la==LAST) ) { + ((SortItemContext)_localctx).nullOrdering = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class QuerySpecificationContext extends ParserRuleContext { + public BooleanExpressionContext where; + public BooleanExpressionContext having; + public TerminalNode SELECT() { return getToken(PrestoSqlParser.SELECT, 0); } + public List selectItem() { + return getRuleContexts(SelectItemContext.class); + } + public SelectItemContext selectItem(int i) { + return getRuleContext(SelectItemContext.class,i); + } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public List relation() { + return getRuleContexts(RelationContext.class); + } + public RelationContext relation(int i) { + return getRuleContext(RelationContext.class,i); + } + public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); } + public TerminalNode GROUP() { return getToken(PrestoSqlParser.GROUP, 0); } + public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); } + public GroupByContext groupBy() { + return getRuleContext(GroupByContext.class,0); + } + public TerminalNode HAVING() { return getToken(PrestoSqlParser.HAVING, 0); } + public List booleanExpression() { + return getRuleContexts(BooleanExpressionContext.class); + } + public BooleanExpressionContext booleanExpression(int i) { + return getRuleContext(BooleanExpressionContext.class,i); + } + public QuerySpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_querySpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuerySpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuerySpecification(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQuerySpecification(this); + else return visitor.visitChildren(this); + } + } + + public final QuerySpecificationContext querySpecification() throws RecognitionException { + QuerySpecificationContext _localctx = new QuerySpecificationContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_querySpecification); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(976); + match(SELECT); + setState(978); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) { + case 1: + { + setState(977); + setQuantifier(); + } + break; + } + setState(980); + selectItem(); + setState(985); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,120,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(981); + match(T__3); + setState(982); + selectItem(); + } + } + } + setState(987); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,120,_ctx); + } + setState(997); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) { + case 1: + { + setState(988); + match(FROM); + setState(989); + relation(0); + setState(994); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,121,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(990); + match(T__3); + setState(991); + relation(0); + } + } + } + setState(996); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,121,_ctx); + } + } + break; + } + setState(1001); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) { + case 1: + { + setState(999); + match(WHERE); + setState(1000); + ((QuerySpecificationContext)_localctx).where = booleanExpression(0); + } + break; + } + setState(1006); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) { + case 1: + { + setState(1003); + match(GROUP); + setState(1004); + match(BY); + setState(1005); + groupBy(); + } + break; + } + setState(1010); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) { + case 1: + { + setState(1008); + match(HAVING); + setState(1009); + ((QuerySpecificationContext)_localctx).having = booleanExpression(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class GroupByContext extends ParserRuleContext { + public List groupingElement() { + return getRuleContexts(GroupingElementContext.class); + } + public GroupingElementContext groupingElement(int i) { + return getRuleContext(GroupingElementContext.class,i); + } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public GroupByContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_groupBy; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGroupBy(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGroupBy(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitGroupBy(this); + else return visitor.visitChildren(this); + } + } + + public final GroupByContext groupBy() throws RecognitionException { + GroupByContext _localctx = new GroupByContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_groupBy); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1013); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { + case 1: + { + setState(1012); + setQuantifier(); + } + break; + } + setState(1015); + groupingElement(); + setState(1020); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,127,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1016); + match(T__3); + setState(1017); + groupingElement(); + } + } + } + setState(1022); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,127,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class GroupingElementContext extends ParserRuleContext { + public GroupingElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_groupingElement; } + + public GroupingElementContext() { } + public void copyFrom(GroupingElementContext ctx) { + super.copyFrom(ctx); + } + } + public static class MultipleGroupingSetsContext extends GroupingElementContext { + public TerminalNode GROUPING() { return getToken(PrestoSqlParser.GROUPING, 0); } + public TerminalNode SETS() { return getToken(PrestoSqlParser.SETS, 0); } + public List groupingSet() { + return getRuleContexts(GroupingSetContext.class); + } + public GroupingSetContext groupingSet(int i) { + return getRuleContext(GroupingSetContext.class,i); + } + public MultipleGroupingSetsContext(GroupingElementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterMultipleGroupingSets(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitMultipleGroupingSets(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitMultipleGroupingSets(this); + else return visitor.visitChildren(this); + } + } + public static class SingleGroupingSetContext extends GroupingElementContext { + public GroupingSetContext groupingSet() { + return getRuleContext(GroupingSetContext.class,0); + } + public SingleGroupingSetContext(GroupingElementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSingleGroupingSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSingleGroupingSet(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSingleGroupingSet(this); + else return visitor.visitChildren(this); + } + } + public static class CubeContext extends GroupingElementContext { + public TerminalNode CUBE() { return getToken(PrestoSqlParser.CUBE, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public CubeContext(GroupingElementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCube(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCube(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCube(this); + else return visitor.visitChildren(this); + } + } + public static class RollupContext extends GroupingElementContext { + public TerminalNode ROLLUP() { return getToken(PrestoSqlParser.ROLLUP, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public RollupContext(GroupingElementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRollup(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRollup(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRollup(this); + else return visitor.visitChildren(this); + } + } + + public final GroupingElementContext groupingElement() throws RecognitionException { + GroupingElementContext _localctx = new GroupingElementContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_groupingElement); + int _la; + try { + setState(1063); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) { + case 1: + _localctx = new SingleGroupingSetContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1023); + groupingSet(); + } + break; + case 2: + _localctx = new RollupContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1024); + match(ROLLUP); + setState(1025); + match(T__1); + setState(1034); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(1026); + expression(); + setState(1031); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1027); + match(T__3); + setState(1028); + expression(); + } + } + setState(1033); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1036); + match(T__2); + } + break; + case 3: + _localctx = new CubeContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1037); + match(CUBE); + setState(1038); + match(T__1); + setState(1047); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(1039); + expression(); + setState(1044); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1040); + match(T__3); + setState(1041); + expression(); + } + } + setState(1046); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1049); + match(T__2); + } + break; + case 4: + _localctx = new MultipleGroupingSetsContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1050); + match(GROUPING); + setState(1051); + match(SETS); + setState(1052); + match(T__1); + setState(1053); + groupingSet(); + setState(1058); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1054); + match(T__3); + setState(1055); + groupingSet(); + } + } + setState(1060); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1061); + match(T__2); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class GroupingSetContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public GroupingSetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_groupingSet; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGroupingSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGroupingSet(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitGroupingSet(this); + else return visitor.visitChildren(this); + } + } + + public final GroupingSetContext groupingSet() throws RecognitionException { + GroupingSetContext _localctx = new GroupingSetContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_groupingSet); + int _la; + try { + setState(1078); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,136,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1065); + match(T__1); + setState(1074); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(1066); + expression(); + setState(1071); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1067); + match(T__3); + setState(1068); + expression(); + } + } + setState(1073); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1076); + match(T__2); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1077); + expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NamedQueryContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ColumnAliasesContext columnAliases() { + return getRuleContext(ColumnAliasesContext.class,0); + } + public NamedQueryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namedQuery; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNamedQuery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNamedQuery(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNamedQuery(this); + else return visitor.visitChildren(this); + } + } + + public final NamedQueryContext namedQuery() throws RecognitionException { + NamedQueryContext _localctx = new NamedQueryContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_namedQuery); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1080); + ((NamedQueryContext)_localctx).name = identifier(); + setState(1082); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(1081); + columnAliases(); + } + } + + setState(1084); + match(AS); + setState(1085); + match(T__1); + setState(1086); + query(); + setState(1087); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SetQuantifierContext extends ParserRuleContext { + public TerminalNode DISTINCT() { return getToken(PrestoSqlParser.DISTINCT, 0); } + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public SetQuantifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setQuantifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetQuantifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetQuantifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSetQuantifier(this); + else return visitor.visitChildren(this); + } + } + + public final SetQuantifierContext setQuantifier() throws RecognitionException { + SetQuantifierContext _localctx = new SetQuantifierContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_setQuantifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1089); + _la = _input.LA(1); + if ( !(_la==ALL || _la==DISTINCT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SelectItemContext extends ParserRuleContext { + public SelectItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectItem; } + + public SelectItemContext() { } + public void copyFrom(SelectItemContext ctx) { + super.copyFrom(ctx); + } + } + public static class SelectAllContext extends SelectItemContext { + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode ASTERISK() { return getToken(PrestoSqlParser.ASTERISK, 0); } + public SelectAllContext(SelectItemContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSelectAll(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSelectAll(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSelectAll(this); + else return visitor.visitChildren(this); + } + } + public static class SelectSingleContext extends SelectItemContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public SelectSingleContext(SelectItemContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSelectSingle(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSelectSingle(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSelectSingle(this); + else return visitor.visitChildren(this); + } + } + + public final SelectItemContext selectItem() throws RecognitionException { + SelectItemContext _localctx = new SelectItemContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_selectItem); + int _la; + try { + setState(1103); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,140,_ctx) ) { + case 1: + _localctx = new SelectSingleContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1091); + expression(); + setState(1096); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,139,_ctx) ) { + case 1: + { + setState(1093); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(1092); + match(AS); + } + } + + setState(1095); + identifier(); + } + break; + } + } + break; + case 2: + _localctx = new SelectAllContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1098); + qualifiedName(); + setState(1099); + match(T__0); + setState(1100); + match(ASTERISK); + } + break; + case 3: + _localctx = new SelectAllContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1102); + match(ASTERISK); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RelationContext extends ParserRuleContext { + public RelationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relation; } + + public RelationContext() { } + public void copyFrom(RelationContext ctx) { + super.copyFrom(ctx); + } + } + public static class RelationDefaultContext extends RelationContext { + public SampledRelationContext sampledRelation() { + return getRuleContext(SampledRelationContext.class,0); + } + public RelationDefaultContext(RelationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRelationDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRelationDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRelationDefault(this); + else return visitor.visitChildren(this); + } + } + public static class JoinRelationContext extends RelationContext { + public RelationContext left; + public SampledRelationContext right; + public RelationContext rightRelation; + public List relation() { + return getRuleContexts(RelationContext.class); + } + public RelationContext relation(int i) { + return getRuleContext(RelationContext.class,i); + } + public TerminalNode CROSS() { return getToken(PrestoSqlParser.CROSS, 0); } + public TerminalNode JOIN() { return getToken(PrestoSqlParser.JOIN, 0); } + public JoinTypeContext joinType() { + return getRuleContext(JoinTypeContext.class,0); + } + public JoinCriteriaContext joinCriteria() { + return getRuleContext(JoinCriteriaContext.class,0); + } + public TerminalNode NATURAL() { return getToken(PrestoSqlParser.NATURAL, 0); } + public SampledRelationContext sampledRelation() { + return getRuleContext(SampledRelationContext.class,0); + } + public JoinRelationContext(RelationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterJoinRelation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitJoinRelation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitJoinRelation(this); + else return visitor.visitChildren(this); + } + } + + public final RelationContext relation() throws RecognitionException { + return relation(0); + } + + private RelationContext relation(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + RelationContext _localctx = new RelationContext(_ctx, _parentState); + RelationContext _prevctx = _localctx; + int _startState = 68; + enterRecursionRule(_localctx, 68, RULE_relation, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + _localctx = new RelationDefaultContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(1106); + sampledRelation(); + } + _ctx.stop = _input.LT(-1); + setState(1126); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,142,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new JoinRelationContext(new RelationContext(_parentctx, _parentState)); + ((JoinRelationContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_relation); + setState(1108); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(1122); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CROSS: + { + setState(1109); + match(CROSS); + setState(1110); + match(JOIN); + setState(1111); + ((JoinRelationContext)_localctx).right = sampledRelation(); + } + break; + case FULL: + case INNER: + case JOIN: + case LEFT: + case RIGHT: + { + setState(1112); + joinType(); + setState(1113); + match(JOIN); + setState(1114); + ((JoinRelationContext)_localctx).rightRelation = relation(0); + setState(1115); + joinCriteria(); + } + break; + case NATURAL: + { + setState(1117); + match(NATURAL); + setState(1118); + joinType(); + setState(1119); + match(JOIN); + setState(1120); + ((JoinRelationContext)_localctx).right = sampledRelation(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + } + setState(1128); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,142,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class JoinTypeContext extends ParserRuleContext { + public TerminalNode INNER() { return getToken(PrestoSqlParser.INNER, 0); } + public TerminalNode LEFT() { return getToken(PrestoSqlParser.LEFT, 0); } + public TerminalNode OUTER() { return getToken(PrestoSqlParser.OUTER, 0); } + public TerminalNode RIGHT() { return getToken(PrestoSqlParser.RIGHT, 0); } + public TerminalNode FULL() { return getToken(PrestoSqlParser.FULL, 0); } + public JoinTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_joinType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterJoinType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitJoinType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitJoinType(this); + else return visitor.visitChildren(this); + } + } + + public final JoinTypeContext joinType() throws RecognitionException { + JoinTypeContext _localctx = new JoinTypeContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_joinType); + int _la; + try { + setState(1144); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INNER: + case JOIN: + enterOuterAlt(_localctx, 1); + { + setState(1130); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INNER) { + { + setState(1129); + match(INNER); + } + } + + } + break; + case LEFT: + enterOuterAlt(_localctx, 2); + { + setState(1132); + match(LEFT); + setState(1134); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUTER) { + { + setState(1133); + match(OUTER); + } + } + + } + break; + case RIGHT: + enterOuterAlt(_localctx, 3); + { + setState(1136); + match(RIGHT); + setState(1138); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUTER) { + { + setState(1137); + match(OUTER); + } + } + + } + break; + case FULL: + enterOuterAlt(_localctx, 4); + { + setState(1140); + match(FULL); + setState(1142); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUTER) { + { + setState(1141); + match(OUTER); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class JoinCriteriaContext extends ParserRuleContext { + public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); } + public BooleanExpressionContext booleanExpression() { + return getRuleContext(BooleanExpressionContext.class,0); + } + public TerminalNode USING() { return getToken(PrestoSqlParser.USING, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public JoinCriteriaContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_joinCriteria; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterJoinCriteria(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitJoinCriteria(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitJoinCriteria(this); + else return visitor.visitChildren(this); + } + } + + public final JoinCriteriaContext joinCriteria() throws RecognitionException { + JoinCriteriaContext _localctx = new JoinCriteriaContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_joinCriteria); + int _la; + try { + setState(1160); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ON: + enterOuterAlt(_localctx, 1); + { + setState(1146); + match(ON); + setState(1147); + booleanExpression(0); + } + break; + case USING: + enterOuterAlt(_localctx, 2); + { + setState(1148); + match(USING); + setState(1149); + match(T__1); + setState(1150); + identifier(); + setState(1155); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1151); + match(T__3); + setState(1152); + identifier(); + } + } + setState(1157); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1158); + match(T__2); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SampledRelationContext extends ParserRuleContext { + public ExpressionContext percentage; + public AliasedRelationContext aliasedRelation() { + return getRuleContext(AliasedRelationContext.class,0); + } + public TerminalNode TABLESAMPLE() { return getToken(PrestoSqlParser.TABLESAMPLE, 0); } + public SampleTypeContext sampleType() { + return getRuleContext(SampleTypeContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public SampledRelationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sampledRelation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSampledRelation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSampledRelation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSampledRelation(this); + else return visitor.visitChildren(this); + } + } + + public final SampledRelationContext sampledRelation() throws RecognitionException { + SampledRelationContext _localctx = new SampledRelationContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_sampledRelation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1162); + aliasedRelation(); + setState(1169); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { + case 1: + { + setState(1163); + match(TABLESAMPLE); + setState(1164); + sampleType(); + setState(1165); + match(T__1); + setState(1166); + ((SampledRelationContext)_localctx).percentage = expression(); + setState(1167); + match(T__2); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SampleTypeContext extends ParserRuleContext { + public TerminalNode BERNOULLI() { return getToken(PrestoSqlParser.BERNOULLI, 0); } + public TerminalNode SYSTEM() { return getToken(PrestoSqlParser.SYSTEM, 0); } + public SampleTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sampleType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSampleType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSampleType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSampleType(this); + else return visitor.visitChildren(this); + } + } + + public final SampleTypeContext sampleType() throws RecognitionException { + SampleTypeContext _localctx = new SampleTypeContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_sampleType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1171); + _la = _input.LA(1); + if ( !(_la==BERNOULLI || _la==SYSTEM) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AliasedRelationContext extends ParserRuleContext { + public RelationPrimaryContext relationPrimary() { + return getRuleContext(RelationPrimaryContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public ColumnAliasesContext columnAliases() { + return getRuleContext(ColumnAliasesContext.class,0); + } + public AliasedRelationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_aliasedRelation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAliasedRelation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAliasedRelation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAliasedRelation(this); + else return visitor.visitChildren(this); + } + } + + public final AliasedRelationContext aliasedRelation() throws RecognitionException { + AliasedRelationContext _localctx = new AliasedRelationContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_aliasedRelation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1173); + relationPrimary(); + setState(1181); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,153,_ctx) ) { + case 1: + { + setState(1175); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(1174); + match(AS); + } + } + + setState(1177); + identifier(); + setState(1179); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,152,_ctx) ) { + case 1: + { + setState(1178); + columnAliases(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ColumnAliasesContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public ColumnAliasesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_columnAliases; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterColumnAliases(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitColumnAliases(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitColumnAliases(this); + else return visitor.visitChildren(this); + } + } + + public final ColumnAliasesContext columnAliases() throws RecognitionException { + ColumnAliasesContext _localctx = new ColumnAliasesContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_columnAliases); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1183); + match(T__1); + setState(1184); + identifier(); + setState(1189); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1185); + match(T__3); + setState(1186); + identifier(); + } + } + setState(1191); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1192); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RelationPrimaryContext extends ParserRuleContext { + public RelationPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relationPrimary; } + + public RelationPrimaryContext() { } + public void copyFrom(RelationPrimaryContext ctx) { + super.copyFrom(ctx); + } + } + public static class SubqueryRelationContext extends RelationPrimaryContext { + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public SubqueryRelationContext(RelationPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubqueryRelation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubqueryRelation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSubqueryRelation(this); + else return visitor.visitChildren(this); + } + } + public static class ParenthesizedRelationContext extends RelationPrimaryContext { + public RelationContext relation() { + return getRuleContext(RelationContext.class,0); + } + public ParenthesizedRelationContext(RelationPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterParenthesizedRelation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitParenthesizedRelation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitParenthesizedRelation(this); + else return visitor.visitChildren(this); + } + } + public static class UnnestContext extends RelationPrimaryContext { + public TerminalNode UNNEST() { return getToken(PrestoSqlParser.UNNEST, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); } + public TerminalNode ORDINALITY() { return getToken(PrestoSqlParser.ORDINALITY, 0); } + public UnnestContext(RelationPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnnest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnnest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUnnest(this); + else return visitor.visitChildren(this); + } + } + public static class LateralContext extends RelationPrimaryContext { + public TerminalNode LATERAL() { return getToken(PrestoSqlParser.LATERAL, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public LateralContext(RelationPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLateral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLateral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLateral(this); + else return visitor.visitChildren(this); + } + } + public static class TableNameContext extends RelationPrimaryContext { + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TableNameContext(RelationPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTableName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTableName(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTableName(this); + else return visitor.visitChildren(this); + } + } + + public final RelationPrimaryContext relationPrimary() throws RecognitionException { + RelationPrimaryContext _localctx = new RelationPrimaryContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_relationPrimary); + int _la; + try { + setState(1223); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,157,_ctx) ) { + case 1: + _localctx = new TableNameContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1194); + qualifiedName(); + } + break; + case 2: + _localctx = new SubqueryRelationContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1195); + match(T__1); + setState(1196); + query(); + setState(1197); + match(T__2); + } + break; + case 3: + _localctx = new UnnestContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1199); + match(UNNEST); + setState(1200); + match(T__1); + setState(1201); + expression(); + setState(1206); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1202); + match(T__3); + setState(1203); + expression(); + } + } + setState(1208); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1209); + match(T__2); + setState(1212); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,156,_ctx) ) { + case 1: + { + setState(1210); + match(WITH); + setState(1211); + match(ORDINALITY); + } + break; + } + } + break; + case 4: + _localctx = new LateralContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1214); + match(LATERAL); + setState(1215); + match(T__1); + setState(1216); + query(); + setState(1217); + match(T__2); + } + break; + case 5: + _localctx = new ParenthesizedRelationContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1219); + match(T__1); + setState(1220); + relation(0); + setState(1221); + match(T__2); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExpressionContext extends ParserRuleContext { + public BooleanExpressionContext booleanExpression() { + return getRuleContext(BooleanExpressionContext.class,0); + } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExpression(this); + else return visitor.visitChildren(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(1225); + booleanExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BooleanExpressionContext extends ParserRuleContext { + public BooleanExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_booleanExpression; } + + public BooleanExpressionContext() { } + public void copyFrom(BooleanExpressionContext ctx) { + super.copyFrom(ctx); + } + } + public static class LogicalNotContext extends BooleanExpressionContext { + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public BooleanExpressionContext booleanExpression() { + return getRuleContext(BooleanExpressionContext.class,0); + } + public LogicalNotContext(BooleanExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLogicalNot(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLogicalNot(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLogicalNot(this); + else return visitor.visitChildren(this); + } + } + public static class PredicatedContext extends BooleanExpressionContext { + public ValueExpressionContext valueExpression; + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public PredicatedContext(BooleanExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPredicated(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPredicated(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitPredicated(this); + else return visitor.visitChildren(this); + } + } + public static class LogicalBinaryContext extends BooleanExpressionContext { + public BooleanExpressionContext left; + public Token operator; + public BooleanExpressionContext right; + public List booleanExpression() { + return getRuleContexts(BooleanExpressionContext.class); + } + public BooleanExpressionContext booleanExpression(int i) { + return getRuleContext(BooleanExpressionContext.class,i); + } + public TerminalNode AND() { return getToken(PrestoSqlParser.AND, 0); } + public TerminalNode OR() { return getToken(PrestoSqlParser.OR, 0); } + public LogicalBinaryContext(BooleanExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLogicalBinary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLogicalBinary(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLogicalBinary(this); + else return visitor.visitChildren(this); + } + } + + public final BooleanExpressionContext booleanExpression() throws RecognitionException { + return booleanExpression(0); + } + + private BooleanExpressionContext booleanExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + BooleanExpressionContext _localctx = new BooleanExpressionContext(_ctx, _parentState); + BooleanExpressionContext _prevctx = _localctx; + int _startState = 86; + enterRecursionRule(_localctx, 86, RULE_booleanExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1234); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__1: + case T__4: + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CASE: + case CAST: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_DATE: + case CURRENT_ROLE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case CURRENT_USER: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXISTS: + case EXPLAIN: + case EXTRACT: + case EXTERNAL: + case FALSE: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case GROUPING: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOCALTIME: + case LOCALTIMESTAMP: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NORMALIZE: + case NULL: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRUE: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case PLUS: + case MINUS: + case STRING: + case UNICODE_STRING: + case BINARY_LITERAL: + case INTEGER_VALUE: + case DECIMAL_VALUE: + case DOUBLE_VALUE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + case DOUBLE_PRECISION: + { + _localctx = new PredicatedContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(1228); + ((PredicatedContext)_localctx).valueExpression = valueExpression(0); + setState(1230); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + { + setState(1229); + predicate(((PredicatedContext)_localctx).valueExpression); + } + break; + } + } + break; + case NOT: + { + _localctx = new LogicalNotContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1232); + match(NOT); + setState(1233); + booleanExpression(3); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(1244); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,161,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(1242); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,160,_ctx) ) { + case 1: + { + _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); + ((LogicalBinaryContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_booleanExpression); + setState(1236); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(1237); + ((LogicalBinaryContext)_localctx).operator = match(AND); + setState(1238); + ((LogicalBinaryContext)_localctx).right = booleanExpression(3); + } + break; + case 2: + { + _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); + ((LogicalBinaryContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_booleanExpression); + setState(1239); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(1240); + ((LogicalBinaryContext)_localctx).operator = match(OR); + setState(1241); + ((LogicalBinaryContext)_localctx).right = booleanExpression(2); + } + break; + } + } + } + setState(1246); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,161,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class PredicateContext extends ParserRuleContext { + public ParserRuleContext value; + public PredicateContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } + public PredicateContext(ParserRuleContext parent, int invokingState, ParserRuleContext value) { + super(parent, invokingState); + this.value = value; + } + @Override public int getRuleIndex() { return RULE_predicate; } + + public PredicateContext() { } + public void copyFrom(PredicateContext ctx) { + super.copyFrom(ctx); + this.value = ctx.value; + } + } + public static class ComparisonContext extends PredicateContext { + public ValueExpressionContext right; + public ComparisonOperatorContext comparisonOperator() { + return getRuleContext(ComparisonOperatorContext.class,0); + } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ComparisonContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterComparison(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitComparison(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitComparison(this); + else return visitor.visitChildren(this); + } + } + public static class LikeContext extends PredicateContext { + public ValueExpressionContext pattern; + public ValueExpressionContext escape; + public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); } + public LikeContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLike(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLike(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLike(this); + else return visitor.visitChildren(this); + } + } + public static class InSubqueryContext extends PredicateContext { + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public InSubqueryContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInSubquery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInSubquery(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitInSubquery(this); + else return visitor.visitChildren(this); + } + } + public static class DistinctFromContext extends PredicateContext { + public ValueExpressionContext right; + public TerminalNode IS() { return getToken(PrestoSqlParser.IS, 0); } + public TerminalNode DISTINCT() { return getToken(PrestoSqlParser.DISTINCT, 0); } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public DistinctFromContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDistinctFrom(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDistinctFrom(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDistinctFrom(this); + else return visitor.visitChildren(this); + } + } + public static class InListContext extends PredicateContext { + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public InListContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitInList(this); + else return visitor.visitChildren(this); + } + } + public static class NullPredicateContext extends PredicateContext { + public TerminalNode IS() { return getToken(PrestoSqlParser.IS, 0); } + public TerminalNode NULL() { return getToken(PrestoSqlParser.NULL, 0); } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public NullPredicateContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullPredicate(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNullPredicate(this); + else return visitor.visitChildren(this); + } + } + public static class BetweenContext extends PredicateContext { + public ValueExpressionContext lower; + public ValueExpressionContext upper; + public TerminalNode BETWEEN() { return getToken(PrestoSqlParser.BETWEEN, 0); } + public TerminalNode AND() { return getToken(PrestoSqlParser.AND, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); } + public BetweenContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBetween(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBetween(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBetween(this); + else return visitor.visitChildren(this); + } + } + public static class QuantifiedComparisonContext extends PredicateContext { + public ComparisonOperatorContext comparisonOperator() { + return getRuleContext(ComparisonOperatorContext.class,0); + } + public ComparisonQuantifierContext comparisonQuantifier() { + return getRuleContext(ComparisonQuantifierContext.class,0); + } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public QuantifiedComparisonContext(PredicateContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuantifiedComparison(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuantifiedComparison(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQuantifiedComparison(this); + else return visitor.visitChildren(this); + } + } + + public final PredicateContext predicate(ParserRuleContext value) throws RecognitionException { + PredicateContext _localctx = new PredicateContext(_ctx, getState(), value); + enterRule(_localctx, 88, RULE_predicate); + int _la; + try { + setState(1308); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { + case 1: + _localctx = new ComparisonContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1247); + comparisonOperator(); + setState(1248); + ((ComparisonContext)_localctx).right = valueExpression(0); + } + break; + case 2: + _localctx = new QuantifiedComparisonContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1250); + comparisonOperator(); + setState(1251); + comparisonQuantifier(); + setState(1252); + match(T__1); + setState(1253); + query(); + setState(1254); + match(T__2); + } + break; + case 3: + _localctx = new BetweenContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1257); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(1256); + match(NOT); + } + } + + setState(1259); + match(BETWEEN); + setState(1260); + ((BetweenContext)_localctx).lower = valueExpression(0); + setState(1261); + match(AND); + setState(1262); + ((BetweenContext)_localctx).upper = valueExpression(0); + } + break; + case 4: + _localctx = new InListContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1265); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(1264); + match(NOT); + } + } + + setState(1267); + match(IN); + setState(1268); + match(T__1); + setState(1269); + expression(); + setState(1274); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1270); + match(T__3); + setState(1271); + expression(); + } + } + setState(1276); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1277); + match(T__2); + } + break; + case 5: + _localctx = new InSubqueryContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1280); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(1279); + match(NOT); + } + } + + setState(1282); + match(IN); + setState(1283); + match(T__1); + setState(1284); + query(); + setState(1285); + match(T__2); + } + break; + case 6: + _localctx = new LikeContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(1288); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(1287); + match(NOT); + } + } + + setState(1290); + match(LIKE); + setState(1291); + ((LikeContext)_localctx).pattern = valueExpression(0); + setState(1294); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,167,_ctx) ) { + case 1: + { + setState(1292); + match(ESCAPE); + setState(1293); + ((LikeContext)_localctx).escape = valueExpression(0); + } + break; + } + } + break; + case 7: + _localctx = new NullPredicateContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(1296); + match(IS); + setState(1298); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(1297); + match(NOT); + } + } + + setState(1300); + match(NULL); + } + break; + case 8: + _localctx = new DistinctFromContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(1301); + match(IS); + setState(1303); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(1302); + match(NOT); + } + } + + setState(1305); + match(DISTINCT); + setState(1306); + match(FROM); + setState(1307); + ((DistinctFromContext)_localctx).right = valueExpression(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueExpression; } + + public ValueExpressionContext() { } + public void copyFrom(ValueExpressionContext ctx) { + super.copyFrom(ctx); + } + } + public static class ValueExpressionDefaultContext extends ValueExpressionContext { + public PrimaryExpressionContext primaryExpression() { + return getRuleContext(PrimaryExpressionContext.class,0); + } + public ValueExpressionDefaultContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterValueExpressionDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitValueExpressionDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitValueExpressionDefault(this); + else return visitor.visitChildren(this); + } + } + public static class ConcatenationContext extends ValueExpressionContext { + public ValueExpressionContext left; + public ValueExpressionContext right; + public TerminalNode CONCAT() { return getToken(PrestoSqlParser.CONCAT, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public ConcatenationContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterConcatenation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitConcatenation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitConcatenation(this); + else return visitor.visitChildren(this); + } + } + public static class ArithmeticBinaryContext extends ValueExpressionContext { + public ValueExpressionContext left; + public Token operator; + public ValueExpressionContext right; + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode ASTERISK() { return getToken(PrestoSqlParser.ASTERISK, 0); } + public TerminalNode SLASH() { return getToken(PrestoSqlParser.SLASH, 0); } + public TerminalNode PERCENT() { return getToken(PrestoSqlParser.PERCENT, 0); } + public TerminalNode PLUS() { return getToken(PrestoSqlParser.PLUS, 0); } + public TerminalNode MINUS() { return getToken(PrestoSqlParser.MINUS, 0); } + public ArithmeticBinaryContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterArithmeticBinary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitArithmeticBinary(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitArithmeticBinary(this); + else return visitor.visitChildren(this); + } + } + public static class ArithmeticUnaryContext extends ValueExpressionContext { + public Token operator; + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode MINUS() { return getToken(PrestoSqlParser.MINUS, 0); } + public TerminalNode PLUS() { return getToken(PrestoSqlParser.PLUS, 0); } + public ArithmeticUnaryContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterArithmeticUnary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitArithmeticUnary(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitArithmeticUnary(this); + else return visitor.visitChildren(this); + } + } + public static class AtTimeZoneContext extends ValueExpressionContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode AT() { return getToken(PrestoSqlParser.AT, 0); } + public TimeZoneSpecifierContext timeZoneSpecifier() { + return getRuleContext(TimeZoneSpecifierContext.class,0); + } + public AtTimeZoneContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAtTimeZone(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAtTimeZone(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitAtTimeZone(this); + else return visitor.visitChildren(this); + } + } + + public final ValueExpressionContext valueExpression() throws RecognitionException { + return valueExpression(0); + } + + private ValueExpressionContext valueExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ValueExpressionContext _localctx = new ValueExpressionContext(_ctx, _parentState); + ValueExpressionContext _prevctx = _localctx; + int _startState = 90; + enterRecursionRule(_localctx, 90, RULE_valueExpression, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1314); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__1: + case T__4: + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CASE: + case CAST: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_DATE: + case CURRENT_ROLE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case CURRENT_USER: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXISTS: + case EXPLAIN: + case EXTRACT: + case EXTERNAL: + case FALSE: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case GROUPING: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOCALTIME: + case LOCALTIMESTAMP: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NORMALIZE: + case NULL: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRUE: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case STRING: + case UNICODE_STRING: + case BINARY_LITERAL: + case INTEGER_VALUE: + case DECIMAL_VALUE: + case DOUBLE_VALUE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + case DOUBLE_PRECISION: + { + _localctx = new ValueExpressionDefaultContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(1311); + primaryExpression(0); + } + break; + case PLUS: + case MINUS: + { + _localctx = new ArithmeticUnaryContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1312); + ((ArithmeticUnaryContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==PLUS || _la==MINUS) ) { + ((ArithmeticUnaryContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1313); + valueExpression(4); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(1330); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,173,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(1328); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { + case 1: + { + _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); + ((ArithmeticBinaryContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(1316); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(1317); + ((ArithmeticBinaryContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 221)) & ~0x3f) == 0 && ((1L << (_la - 221)) & ((1L << (ASTERISK - 221)) | (1L << (SLASH - 221)) | (1L << (PERCENT - 221)))) != 0)) ) { + ((ArithmeticBinaryContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1318); + ((ArithmeticBinaryContext)_localctx).right = valueExpression(4); + } + break; + case 2: + { + _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); + ((ArithmeticBinaryContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(1319); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(1320); + ((ArithmeticBinaryContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==PLUS || _la==MINUS) ) { + ((ArithmeticBinaryContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1321); + ((ArithmeticBinaryContext)_localctx).right = valueExpression(3); + } + break; + case 3: + { + _localctx = new ConcatenationContext(new ValueExpressionContext(_parentctx, _parentState)); + ((ConcatenationContext)_localctx).left = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(1322); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(1323); + match(CONCAT); + setState(1324); + ((ConcatenationContext)_localctx).right = valueExpression(2); + } + break; + case 4: + { + _localctx = new AtTimeZoneContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(1325); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(1326); + match(AT); + setState(1327); + timeZoneSpecifier(); + } + break; + } + } + } + setState(1332); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,173,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class PrimaryExpressionContext extends ParserRuleContext { + public PrimaryExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryExpression; } + + public PrimaryExpressionContext() { } + public void copyFrom(PrimaryExpressionContext ctx) { + super.copyFrom(ctx); + } + } + public static class DereferenceContext extends PrimaryExpressionContext { + public PrimaryExpressionContext base; + public IdentifierContext fieldName; + public PrimaryExpressionContext primaryExpression() { + return getRuleContext(PrimaryExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public DereferenceContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDereference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDereference(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDereference(this); + else return visitor.visitChildren(this); + } + } + public static class TypeConstructorContext extends PrimaryExpressionContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public TerminalNode DOUBLE_PRECISION() { return getToken(PrestoSqlParser.DOUBLE_PRECISION, 0); } + public TypeConstructorContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTypeConstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTypeConstructor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTypeConstructor(this); + else return visitor.visitChildren(this); + } + } + public static class SpecialDateTimeFunctionContext extends PrimaryExpressionContext { + public Token name; + public Token precision; + public TerminalNode CURRENT_DATE() { return getToken(PrestoSqlParser.CURRENT_DATE, 0); } + public TerminalNode CURRENT_TIME() { return getToken(PrestoSqlParser.CURRENT_TIME, 0); } + public TerminalNode INTEGER_VALUE() { return getToken(PrestoSqlParser.INTEGER_VALUE, 0); } + public TerminalNode CURRENT_TIMESTAMP() { return getToken(PrestoSqlParser.CURRENT_TIMESTAMP, 0); } + public TerminalNode LOCALTIME() { return getToken(PrestoSqlParser.LOCALTIME, 0); } + public TerminalNode LOCALTIMESTAMP() { return getToken(PrestoSqlParser.LOCALTIMESTAMP, 0); } + public SpecialDateTimeFunctionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSpecialDateTimeFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSpecialDateTimeFunction(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSpecialDateTimeFunction(this); + else return visitor.visitChildren(this); + } + } + public static class SubstringContext extends PrimaryExpressionContext { + public TerminalNode SUBSTRING() { return getToken(PrestoSqlParser.SUBSTRING, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); } + public SubstringContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubstring(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubstring(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSubstring(this); + else return visitor.visitChildren(this); + } + } + public static class CastContext extends PrimaryExpressionContext { + public TerminalNode CAST() { return getToken(PrestoSqlParser.CAST, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode TRY_CAST() { return getToken(PrestoSqlParser.TRY_CAST, 0); } + public CastContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCast(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCast(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCast(this); + else return visitor.visitChildren(this); + } + } + public static class LambdaContext extends PrimaryExpressionContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public LambdaContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLambda(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLambda(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitLambda(this); + else return visitor.visitChildren(this); + } + } + public static class ParenthesizedExpressionContext extends PrimaryExpressionContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ParenthesizedExpressionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterParenthesizedExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitParenthesizedExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitParenthesizedExpression(this); + else return visitor.visitChildren(this); + } + } + public static class ParameterContext extends PrimaryExpressionContext { + public ParameterContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitParameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitParameter(this); + else return visitor.visitChildren(this); + } + } + public static class NormalizeContext extends PrimaryExpressionContext { + public TerminalNode NORMALIZE() { return getToken(PrestoSqlParser.NORMALIZE, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public NormalFormContext normalForm() { + return getRuleContext(NormalFormContext.class,0); + } + public NormalizeContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNormalize(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNormalize(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNormalize(this); + else return visitor.visitChildren(this); + } + } + public static class IntervalLiteralContext extends PrimaryExpressionContext { + public IntervalContext interval() { + return getRuleContext(IntervalContext.class,0); + } + public IntervalLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterIntervalLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitIntervalLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitIntervalLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class NumericLiteralContext extends PrimaryExpressionContext { + public NumberContext number() { + return getRuleContext(NumberContext.class,0); + } + public NumericLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNumericLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNumericLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNumericLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class BooleanLiteralContext extends PrimaryExpressionContext { + public BooleanValueContext booleanValue() { + return getRuleContext(BooleanValueContext.class,0); + } + public BooleanLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBooleanLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBooleanLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBooleanLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class SimpleCaseContext extends PrimaryExpressionContext { + public ExpressionContext elseExpression; + public TerminalNode CASE() { return getToken(PrestoSqlParser.CASE, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode END() { return getToken(PrestoSqlParser.END, 0); } + public List whenClause() { + return getRuleContexts(WhenClauseContext.class); + } + public WhenClauseContext whenClause(int i) { + return getRuleContext(WhenClauseContext.class,i); + } + public TerminalNode ELSE() { return getToken(PrestoSqlParser.ELSE, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public SimpleCaseContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSimpleCase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSimpleCase(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSimpleCase(this); + else return visitor.visitChildren(this); + } + } + public static class ColumnReferenceContext extends PrimaryExpressionContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ColumnReferenceContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterColumnReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitColumnReference(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitColumnReference(this); + else return visitor.visitChildren(this); + } + } + public static class NullLiteralContext extends PrimaryExpressionContext { + public TerminalNode NULL() { return getToken(PrestoSqlParser.NULL, 0); } + public NullLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNullLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class RowConstructorContext extends PrimaryExpressionContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); } + public RowConstructorContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRowConstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRowConstructor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRowConstructor(this); + else return visitor.visitChildren(this); + } + } + public static class SubscriptContext extends PrimaryExpressionContext { + public PrimaryExpressionContext value; + public ValueExpressionContext index; + public PrimaryExpressionContext primaryExpression() { + return getRuleContext(PrimaryExpressionContext.class,0); + } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public SubscriptContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubscript(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubscript(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSubscript(this); + else return visitor.visitChildren(this); + } + } + public static class SubqueryExpressionContext extends PrimaryExpressionContext { + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public SubqueryExpressionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubqueryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubqueryExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSubqueryExpression(this); + else return visitor.visitChildren(this); + } + } + public static class BinaryLiteralContext extends PrimaryExpressionContext { + public TerminalNode BINARY_LITERAL() { return getToken(PrestoSqlParser.BINARY_LITERAL, 0); } + public BinaryLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBinaryLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBinaryLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBinaryLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class CurrentUserContext extends PrimaryExpressionContext { + public Token name; + public TerminalNode CURRENT_USER() { return getToken(PrestoSqlParser.CURRENT_USER, 0); } + public CurrentUserContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCurrentUser(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCurrentUser(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCurrentUser(this); + else return visitor.visitChildren(this); + } + } + public static class ExtractContext extends PrimaryExpressionContext { + public TerminalNode EXTRACT() { return getToken(PrestoSqlParser.EXTRACT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ExtractContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExtract(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExtract(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExtract(this); + else return visitor.visitChildren(this); + } + } + public static class StringLiteralContext extends PrimaryExpressionContext { + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public StringLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStringLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStringLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitStringLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class ArrayConstructorContext extends PrimaryExpressionContext { + public TerminalNode ARRAY() { return getToken(PrestoSqlParser.ARRAY, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ArrayConstructorContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterArrayConstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitArrayConstructor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitArrayConstructor(this); + else return visitor.visitChildren(this); + } + } + public static class FunctionCallContext extends PrimaryExpressionContext { + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode ASTERISK() { return getToken(PrestoSqlParser.ASTERISK, 0); } + public FilterContext filter() { + return getRuleContext(FilterContext.class,0); + } + public OverContext over() { + return getRuleContext(OverContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode ORDER() { return getToken(PrestoSqlParser.ORDER, 0); } + public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); } + public List sortItem() { + return getRuleContexts(SortItemContext.class); + } + public SortItemContext sortItem(int i) { + return getRuleContext(SortItemContext.class,i); + } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public NullTreatmentContext nullTreatment() { + return getRuleContext(NullTreatmentContext.class,0); + } + public FunctionCallContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterFunctionCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitFunctionCall(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitFunctionCall(this); + else return visitor.visitChildren(this); + } + } + public static class ExistsContext extends PrimaryExpressionContext { + public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); } + public QueryContext query() { + return getRuleContext(QueryContext.class,0); + } + public ExistsContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExists(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExists(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExists(this); + else return visitor.visitChildren(this); + } + } + public static class PositionContext extends PrimaryExpressionContext { + public TerminalNode POSITION() { return getToken(PrestoSqlParser.POSITION, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); } + public PositionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPosition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPosition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitPosition(this); + else return visitor.visitChildren(this); + } + } + public static class SearchedCaseContext extends PrimaryExpressionContext { + public ExpressionContext elseExpression; + public TerminalNode CASE() { return getToken(PrestoSqlParser.CASE, 0); } + public TerminalNode END() { return getToken(PrestoSqlParser.END, 0); } + public List whenClause() { + return getRuleContexts(WhenClauseContext.class); + } + public WhenClauseContext whenClause(int i) { + return getRuleContext(WhenClauseContext.class,i); + } + public TerminalNode ELSE() { return getToken(PrestoSqlParser.ELSE, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public SearchedCaseContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSearchedCase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSearchedCase(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSearchedCase(this); + else return visitor.visitChildren(this); + } + } + public static class GroupingOperationContext extends PrimaryExpressionContext { + public TerminalNode GROUPING() { return getToken(PrestoSqlParser.GROUPING, 0); } + public List qualifiedName() { + return getRuleContexts(QualifiedNameContext.class); + } + public QualifiedNameContext qualifiedName(int i) { + return getRuleContext(QualifiedNameContext.class,i); + } + public GroupingOperationContext(PrimaryExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGroupingOperation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGroupingOperation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitGroupingOperation(this); + else return visitor.visitChildren(this); + } + } + + public final PrimaryExpressionContext primaryExpression() throws RecognitionException { + return primaryExpression(0); + } + + private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + PrimaryExpressionContext _localctx = new PrimaryExpressionContext(_ctx, _parentState); + PrimaryExpressionContext _prevctx = _localctx; + int _startState = 92; + enterRecursionRule(_localctx, 92, RULE_primaryExpression, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1572); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { + case 1: + { + _localctx = new NullLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(1334); + match(NULL); + } + break; + case 2: + { + _localctx = new IntervalLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1335); + interval(); + } + break; + case 3: + { + _localctx = new TypeConstructorContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1336); + identifier(); + setState(1337); + string(); + } + break; + case 4: + { + _localctx = new TypeConstructorContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1339); + match(DOUBLE_PRECISION); + setState(1340); + string(); + } + break; + case 5: + { + _localctx = new NumericLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1341); + number(); + } + break; + case 6: + { + _localctx = new BooleanLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1342); + booleanValue(); + } + break; + case 7: + { + _localctx = new StringLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1343); + string(); + } + break; + case 8: + { + _localctx = new BinaryLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1344); + match(BINARY_LITERAL); + } + break; + case 9: + { + _localctx = new ParameterContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1345); + match(T__4); + } + break; + case 10: + { + _localctx = new PositionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1346); + match(POSITION); + setState(1347); + match(T__1); + setState(1348); + valueExpression(0); + setState(1349); + match(IN); + setState(1350); + valueExpression(0); + setState(1351); + match(T__2); + } + break; + case 11: + { + _localctx = new RowConstructorContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1353); + match(T__1); + setState(1354); + expression(); + setState(1357); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1355); + match(T__3); + setState(1356); + expression(); + } + } + setState(1359); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__3 ); + setState(1361); + match(T__2); + } + break; + case 12: + { + _localctx = new RowConstructorContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1363); + match(ROW); + setState(1364); + match(T__1); + setState(1365); + expression(); + setState(1370); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1366); + match(T__3); + setState(1367); + expression(); + } + } + setState(1372); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1373); + match(T__2); + } + break; + case 13: + { + _localctx = new FunctionCallContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1375); + qualifiedName(); + setState(1376); + match(T__1); + setState(1377); + match(ASTERISK); + setState(1378); + match(T__2); + setState(1380); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) { + case 1: + { + setState(1379); + filter(); + } + break; + } + setState(1383); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) { + case 1: + { + setState(1382); + over(); + } + break; + } + } + break; + case 14: + { + _localctx = new FunctionCallContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1385); + qualifiedName(); + setState(1386); + match(T__1); + setState(1398); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTINCT) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(1388); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { + case 1: + { + setState(1387); + setQuantifier(); + } + break; + } + setState(1390); + expression(); + setState(1395); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1391); + match(T__3); + setState(1392); + expression(); + } + } + setState(1397); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1410); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ORDER) { + { + setState(1400); + match(ORDER); + setState(1401); + match(BY); + setState(1402); + sortItem(); + setState(1407); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1403); + match(T__3); + setState(1404); + sortItem(); + } + } + setState(1409); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1412); + match(T__2); + setState(1414); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,183,_ctx) ) { + case 1: + { + setState(1413); + filter(); + } + break; + } + setState(1420); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) { + case 1: + { + setState(1417); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IGNORE || _la==RESPECT) { + { + setState(1416); + nullTreatment(); + } + } + + setState(1419); + over(); + } + break; + } + } + break; + case 15: + { + _localctx = new LambdaContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1422); + identifier(); + setState(1423); + match(T__5); + setState(1424); + expression(); + } + break; + case 16: + { + _localctx = new LambdaContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1426); + match(T__1); + setState(1435); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)))) != 0)) { + { + setState(1427); + identifier(); + setState(1432); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1428); + match(T__3); + setState(1429); + identifier(); + } + } + setState(1434); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1437); + match(T__2); + setState(1438); + match(T__5); + setState(1439); + expression(); + } + break; + case 17: + { + _localctx = new SubqueryExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1440); + match(T__1); + setState(1441); + query(); + setState(1442); + match(T__2); + } + break; + case 18: + { + _localctx = new ExistsContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1444); + match(EXISTS); + setState(1445); + match(T__1); + setState(1446); + query(); + setState(1447); + match(T__2); + } + break; + case 19: + { + _localctx = new SimpleCaseContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1449); + match(CASE); + setState(1450); + valueExpression(0); + setState(1452); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1451); + whenClause(); + } + } + setState(1454); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHEN ); + setState(1458); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ELSE) { + { + setState(1456); + match(ELSE); + setState(1457); + ((SimpleCaseContext)_localctx).elseExpression = expression(); + } + } + + setState(1460); + match(END); + } + break; + case 20: + { + _localctx = new SearchedCaseContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1462); + match(CASE); + setState(1464); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1463); + whenClause(); + } + } + setState(1466); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHEN ); + setState(1470); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ELSE) { + { + setState(1468); + match(ELSE); + setState(1469); + ((SearchedCaseContext)_localctx).elseExpression = expression(); + } + } + + setState(1472); + match(END); + } + break; + case 21: + { + _localctx = new CastContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1474); + match(CAST); + setState(1475); + match(T__1); + setState(1476); + expression(); + setState(1477); + match(AS); + setState(1478); + type(0); + setState(1479); + match(T__2); + } + break; + case 22: + { + _localctx = new CastContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1481); + match(TRY_CAST); + setState(1482); + match(T__1); + setState(1483); + expression(); + setState(1484); + match(AS); + setState(1485); + type(0); + setState(1486); + match(T__2); + } + break; + case 23: + { + _localctx = new ArrayConstructorContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1488); + match(ARRAY); + setState(1489); + match(T__6); + setState(1498); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(1490); + expression(); + setState(1495); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1491); + match(T__3); + setState(1492); + expression(); + } + } + setState(1497); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1500); + match(T__7); + } + break; + case 24: + { + _localctx = new ColumnReferenceContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1501); + identifier(); + } + break; + case 25: + { + _localctx = new SpecialDateTimeFunctionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1502); + ((SpecialDateTimeFunctionContext)_localctx).name = match(CURRENT_DATE); + } + break; + case 26: + { + _localctx = new SpecialDateTimeFunctionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1503); + ((SpecialDateTimeFunctionContext)_localctx).name = match(CURRENT_TIME); + setState(1507); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) { + case 1: + { + setState(1504); + match(T__1); + setState(1505); + ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE); + setState(1506); + match(T__2); + } + break; + } + } + break; + case 27: + { + _localctx = new SpecialDateTimeFunctionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1509); + ((SpecialDateTimeFunctionContext)_localctx).name = match(CURRENT_TIMESTAMP); + setState(1513); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { + case 1: + { + setState(1510); + match(T__1); + setState(1511); + ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE); + setState(1512); + match(T__2); + } + break; + } + } + break; + case 28: + { + _localctx = new SpecialDateTimeFunctionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1515); + ((SpecialDateTimeFunctionContext)_localctx).name = match(LOCALTIME); + setState(1519); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) { + case 1: + { + setState(1516); + match(T__1); + setState(1517); + ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE); + setState(1518); + match(T__2); + } + break; + } + } + break; + case 29: + { + _localctx = new SpecialDateTimeFunctionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1521); + ((SpecialDateTimeFunctionContext)_localctx).name = match(LOCALTIMESTAMP); + setState(1525); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) { + case 1: + { + setState(1522); + match(T__1); + setState(1523); + ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE); + setState(1524); + match(T__2); + } + break; + } + } + break; + case 30: + { + _localctx = new CurrentUserContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1527); + ((CurrentUserContext)_localctx).name = match(CURRENT_USER); + } + break; + case 31: + { + _localctx = new SubstringContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1528); + match(SUBSTRING); + setState(1529); + match(T__1); + setState(1530); + valueExpression(0); + setState(1531); + match(FROM); + setState(1532); + valueExpression(0); + setState(1535); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FOR) { + { + setState(1533); + match(FOR); + setState(1534); + valueExpression(0); + } + } + + setState(1537); + match(T__2); + } + break; + case 32: + { + _localctx = new NormalizeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1539); + match(NORMALIZE); + setState(1540); + match(T__1); + setState(1541); + valueExpression(0); + setState(1544); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__3) { + { + setState(1542); + match(T__3); + setState(1543); + normalForm(); + } + } + + setState(1546); + match(T__2); + } + break; + case 33: + { + _localctx = new ExtractContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1548); + match(EXTRACT); + setState(1549); + match(T__1); + setState(1550); + identifier(); + setState(1551); + match(FROM); + setState(1552); + valueExpression(0); + setState(1553); + match(T__2); + } + break; + case 34: + { + _localctx = new ParenthesizedExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1555); + match(T__1); + setState(1556); + expression(); + setState(1557); + match(T__2); + } + break; + case 35: + { + _localctx = new GroupingOperationContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1559); + match(GROUPING); + setState(1560); + match(T__1); + setState(1569); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)))) != 0)) { + { + setState(1561); + qualifiedName(); + setState(1566); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1562); + match(T__3); + setState(1563); + qualifiedName(); + } + } + setState(1568); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1571); + match(T__2); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(1584); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,204,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(1582); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,203,_ctx) ) { + case 1: + { + _localctx = new SubscriptContext(new PrimaryExpressionContext(_parentctx, _parentState)); + ((SubscriptContext)_localctx).value = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_primaryExpression); + setState(1574); + if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)"); + setState(1575); + match(T__6); + setState(1576); + ((SubscriptContext)_localctx).index = valueExpression(0); + setState(1577); + match(T__7); + } + break; + case 2: + { + _localctx = new DereferenceContext(new PrimaryExpressionContext(_parentctx, _parentState)); + ((DereferenceContext)_localctx).base = _prevctx; + pushNewRecursionContext(_localctx, _startState, RULE_primaryExpression); + setState(1579); + if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); + setState(1580); + match(T__0); + setState(1581); + ((DereferenceContext)_localctx).fieldName = identifier(); + } + break; + } + } + } + setState(1586); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,204,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class StringContext extends ParserRuleContext { + public StringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_string; } + + public StringContext() { } + public void copyFrom(StringContext ctx) { + super.copyFrom(ctx); + } + } + public static class UnicodeStringLiteralContext extends StringContext { + public TerminalNode UNICODE_STRING() { return getToken(PrestoSqlParser.UNICODE_STRING, 0); } + public TerminalNode UESCAPE() { return getToken(PrestoSqlParser.UESCAPE, 0); } + public TerminalNode STRING() { return getToken(PrestoSqlParser.STRING, 0); } + public UnicodeStringLiteralContext(StringContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnicodeStringLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnicodeStringLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUnicodeStringLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class BasicStringLiteralContext extends StringContext { + public TerminalNode STRING() { return getToken(PrestoSqlParser.STRING, 0); } + public BasicStringLiteralContext(StringContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBasicStringLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBasicStringLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBasicStringLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final StringContext string() throws RecognitionException { + StringContext _localctx = new StringContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_string); + try { + setState(1593); + _errHandler.sync(this); + switch (_input.LA(1)) { + case STRING: + _localctx = new BasicStringLiteralContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1587); + match(STRING); + } + break; + case UNICODE_STRING: + _localctx = new UnicodeStringLiteralContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1588); + match(UNICODE_STRING); + setState(1591); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { + case 1: + { + setState(1589); + match(UESCAPE); + setState(1590); + match(STRING); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NullTreatmentContext extends ParserRuleContext { + public TerminalNode IGNORE() { return getToken(PrestoSqlParser.IGNORE, 0); } + public TerminalNode NULLS() { return getToken(PrestoSqlParser.NULLS, 0); } + public TerminalNode RESPECT() { return getToken(PrestoSqlParser.RESPECT, 0); } + public NullTreatmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullTreatment; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullTreatment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullTreatment(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNullTreatment(this); + else return visitor.visitChildren(this); + } + } + + public final NullTreatmentContext nullTreatment() throws RecognitionException { + NullTreatmentContext _localctx = new NullTreatmentContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_nullTreatment); + try { + setState(1599); + _errHandler.sync(this); + switch (_input.LA(1)) { + case IGNORE: + enterOuterAlt(_localctx, 1); + { + setState(1595); + match(IGNORE); + setState(1596); + match(NULLS); + } + break; + case RESPECT: + enterOuterAlt(_localctx, 2); + { + setState(1597); + match(RESPECT); + setState(1598); + match(NULLS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TimeZoneSpecifierContext extends ParserRuleContext { + public TimeZoneSpecifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeZoneSpecifier; } + + public TimeZoneSpecifierContext() { } + public void copyFrom(TimeZoneSpecifierContext ctx) { + super.copyFrom(ctx); + } + } + public static class TimeZoneIntervalContext extends TimeZoneSpecifierContext { + public TerminalNode TIME() { return getToken(PrestoSqlParser.TIME, 0); } + public TerminalNode ZONE() { return getToken(PrestoSqlParser.ZONE, 0); } + public IntervalContext interval() { + return getRuleContext(IntervalContext.class,0); + } + public TimeZoneIntervalContext(TimeZoneSpecifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTimeZoneInterval(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTimeZoneInterval(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTimeZoneInterval(this); + else return visitor.visitChildren(this); + } + } + public static class TimeZoneStringContext extends TimeZoneSpecifierContext { + public TerminalNode TIME() { return getToken(PrestoSqlParser.TIME, 0); } + public TerminalNode ZONE() { return getToken(PrestoSqlParser.ZONE, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public TimeZoneStringContext(TimeZoneSpecifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTimeZoneString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTimeZoneString(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTimeZoneString(this); + else return visitor.visitChildren(this); + } + } + + public final TimeZoneSpecifierContext timeZoneSpecifier() throws RecognitionException { + TimeZoneSpecifierContext _localctx = new TimeZoneSpecifierContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_timeZoneSpecifier); + try { + setState(1607); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { + case 1: + _localctx = new TimeZoneIntervalContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1601); + match(TIME); + setState(1602); + match(ZONE); + setState(1603); + interval(); + } + break; + case 2: + _localctx = new TimeZoneStringContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1604); + match(TIME); + setState(1605); + match(ZONE); + setState(1606); + string(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ComparisonOperatorContext extends ParserRuleContext { + public TerminalNode EQ() { return getToken(PrestoSqlParser.EQ, 0); } + public TerminalNode NEQ() { return getToken(PrestoSqlParser.NEQ, 0); } + public TerminalNode LT() { return getToken(PrestoSqlParser.LT, 0); } + public TerminalNode LTE() { return getToken(PrestoSqlParser.LTE, 0); } + public TerminalNode GT() { return getToken(PrestoSqlParser.GT, 0); } + public TerminalNode GTE() { return getToken(PrestoSqlParser.GTE, 0); } + public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comparisonOperator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterComparisonOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitComparisonOperator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitComparisonOperator(this); + else return visitor.visitChildren(this); + } + } + + public final ComparisonOperatorContext comparisonOperator() throws RecognitionException { + ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_comparisonOperator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1609); + _la = _input.LA(1); + if ( !(((((_la - 213)) & ~0x3f) == 0 && ((1L << (_la - 213)) & ((1L << (EQ - 213)) | (1L << (NEQ - 213)) | (1L << (LT - 213)) | (1L << (LTE - 213)) | (1L << (GT - 213)) | (1L << (GTE - 213)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ComparisonQuantifierContext extends ParserRuleContext { + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public TerminalNode SOME() { return getToken(PrestoSqlParser.SOME, 0); } + public TerminalNode ANY() { return getToken(PrestoSqlParser.ANY, 0); } + public ComparisonQuantifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comparisonQuantifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterComparisonQuantifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitComparisonQuantifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitComparisonQuantifier(this); + else return visitor.visitChildren(this); + } + } + + public final ComparisonQuantifierContext comparisonQuantifier() throws RecognitionException { + ComparisonQuantifierContext _localctx = new ComparisonQuantifierContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_comparisonQuantifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1611); + _la = _input.LA(1); + if ( !(_la==ALL || _la==ANY || _la==SOME) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BooleanValueContext extends ParserRuleContext { + public TerminalNode TRUE() { return getToken(PrestoSqlParser.TRUE, 0); } + public TerminalNode FALSE() { return getToken(PrestoSqlParser.FALSE, 0); } + public BooleanValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_booleanValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBooleanValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBooleanValue(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBooleanValue(this); + else return visitor.visitChildren(this); + } + } + + public final BooleanValueContext booleanValue() throws RecognitionException { + BooleanValueContext _localctx = new BooleanValueContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_booleanValue); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1613); + _la = _input.LA(1); + if ( !(_la==FALSE || _la==TRUE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IntervalContext extends ParserRuleContext { + public Token sign; + public IntervalFieldContext from; + public IntervalFieldContext to; + public TerminalNode INTERVAL() { return getToken(PrestoSqlParser.INTERVAL, 0); } + public StringContext string() { + return getRuleContext(StringContext.class,0); + } + public List intervalField() { + return getRuleContexts(IntervalFieldContext.class); + } + public IntervalFieldContext intervalField(int i) { + return getRuleContext(IntervalFieldContext.class,i); + } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public TerminalNode PLUS() { return getToken(PrestoSqlParser.PLUS, 0); } + public TerminalNode MINUS() { return getToken(PrestoSqlParser.MINUS, 0); } + public IntervalContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interval; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInterval(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInterval(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitInterval(this); + else return visitor.visitChildren(this); + } + } + + public final IntervalContext interval() throws RecognitionException { + IntervalContext _localctx = new IntervalContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_interval); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1615); + match(INTERVAL); + setState(1617); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PLUS || _la==MINUS) { + { + setState(1616); + ((IntervalContext)_localctx).sign = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==PLUS || _la==MINUS) ) { + ((IntervalContext)_localctx).sign = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(1619); + string(); + setState(1620); + ((IntervalContext)_localctx).from = intervalField(); + setState(1623); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,210,_ctx) ) { + case 1: + { + setState(1621); + match(TO); + setState(1622); + ((IntervalContext)_localctx).to = intervalField(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IntervalFieldContext extends ParserRuleContext { + public TerminalNode YEAR() { return getToken(PrestoSqlParser.YEAR, 0); } + public TerminalNode MONTH() { return getToken(PrestoSqlParser.MONTH, 0); } + public TerminalNode DAY() { return getToken(PrestoSqlParser.DAY, 0); } + public TerminalNode HOUR() { return getToken(PrestoSqlParser.HOUR, 0); } + public TerminalNode MINUTE() { return getToken(PrestoSqlParser.MINUTE, 0); } + public TerminalNode SECOND() { return getToken(PrestoSqlParser.SECOND, 0); } + public IntervalFieldContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_intervalField; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterIntervalField(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitIntervalField(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitIntervalField(this); + else return visitor.visitChildren(this); + } + } + + public final IntervalFieldContext intervalField() throws RecognitionException { + IntervalFieldContext _localctx = new IntervalFieldContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_intervalField); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1625); + _la = _input.LA(1); + if ( !(_la==DAY || ((((_la - 84)) & ~0x3f) == 0 && ((1L << (_la - 84)) & ((1L << (HOUR - 84)) | (1L << (MINUTE - 84)) | (1L << (MONTH - 84)))) != 0) || _la==SECOND || _la==YEAR) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NormalFormContext extends ParserRuleContext { + public TerminalNode NFD() { return getToken(PrestoSqlParser.NFD, 0); } + public TerminalNode NFC() { return getToken(PrestoSqlParser.NFC, 0); } + public TerminalNode NFKD() { return getToken(PrestoSqlParser.NFKD, 0); } + public TerminalNode NFKC() { return getToken(PrestoSqlParser.NFKC, 0); } + public NormalFormContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalForm; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNormalForm(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNormalForm(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNormalForm(this); + else return visitor.visitChildren(this); + } + } + + public final NormalFormContext normalForm() throws RecognitionException { + NormalFormContext _localctx = new NormalFormContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_normalForm); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1627); + _la = _input.LA(1); + if ( !(((((_la - 117)) & ~0x3f) == 0 && ((1L << (_la - 117)) & ((1L << (NFC - 117)) | (1L << (NFD - 117)) | (1L << (NFKC - 117)) | (1L << (NFKD - 117)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypesContext extends ParserRuleContext { + public List type() { + return getRuleContexts(TypeContext.class); + } + public TypeContext type(int i) { + return getRuleContext(TypeContext.class,i); + } + public TypesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_types; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTypes(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTypes(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTypes(this); + else return visitor.visitChildren(this); + } + } + + public final TypesContext types() throws RecognitionException { + TypesContext _localctx = new TypesContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_types); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1629); + match(T__1); + setState(1638); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (TIME_WITH_TIME_ZONE - 192)) | (1L << (TIMESTAMP_WITH_TIME_ZONE - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) { + { + setState(1630); + type(0); + setState(1635); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1631); + match(T__3); + setState(1632); + type(0); + } + } + setState(1637); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1640); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeContext extends ParserRuleContext { + public IntervalFieldContext from; + public IntervalFieldContext to; + public TerminalNode ARRAY() { return getToken(PrestoSqlParser.ARRAY, 0); } + public List type() { + return getRuleContexts(TypeContext.class); + } + public TypeContext type(int i) { + return getRuleContext(TypeContext.class,i); + } + public TerminalNode MAP() { return getToken(PrestoSqlParser.MAP, 0); } + public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public BaseTypeContext baseType() { + return getRuleContext(BaseTypeContext.class,0); + } + public List typeParameter() { + return getRuleContexts(TypeParameterContext.class); + } + public TypeParameterContext typeParameter(int i) { + return getRuleContext(TypeParameterContext.class,i); + } + public TerminalNode INTERVAL() { return getToken(PrestoSqlParser.INTERVAL, 0); } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public List intervalField() { + return getRuleContexts(IntervalFieldContext.class); + } + public IntervalFieldContext intervalField(int i) { + return getRuleContext(IntervalFieldContext.class,i); + } + public TypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitType(this); + else return visitor.visitChildren(this); + } + } + + public final TypeContext type() throws RecognitionException { + return type(0); + } + + private TypeContext type(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + TypeContext _localctx = new TypeContext(_ctx, _parentState); + TypeContext _prevctx = _localctx; + int _startState = 114; + enterRecursionRule(_localctx, 114, RULE_type, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1689); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,216,_ctx) ) { + case 1: + { + setState(1643); + match(ARRAY); + setState(1644); + match(LT); + setState(1645); + type(0); + setState(1646); + match(GT); + } + break; + case 2: + { + setState(1648); + match(MAP); + setState(1649); + match(LT); + setState(1650); + type(0); + setState(1651); + match(T__3); + setState(1652); + type(0); + setState(1653); + match(GT); + } + break; + case 3: + { + setState(1655); + match(ROW); + setState(1656); + match(T__1); + setState(1657); + identifier(); + setState(1658); + type(0); + setState(1665); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1659); + match(T__3); + setState(1660); + identifier(); + setState(1661); + type(0); + } + } + setState(1667); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1668); + match(T__2); + } + break; + case 4: + { + setState(1670); + baseType(); + setState(1682); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,215,_ctx) ) { + case 1: + { + setState(1671); + match(T__1); + setState(1672); + typeParameter(); + setState(1677); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1673); + match(T__3); + setState(1674); + typeParameter(); + } + } + setState(1679); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1680); + match(T__2); + } + break; + } + } + break; + case 5: + { + setState(1684); + match(INTERVAL); + setState(1685); + ((TypeContext)_localctx).from = intervalField(); + setState(1686); + match(TO); + setState(1687); + ((TypeContext)_localctx).to = intervalField(); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(1695); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,217,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new TypeContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_type); + setState(1691); + if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); + setState(1692); + match(ARRAY); + } + } + } + setState(1697); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,217,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class TypeParameterContext extends ParserRuleContext { + public TerminalNode INTEGER_VALUE() { return getToken(PrestoSqlParser.INTEGER_VALUE, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TypeParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTypeParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTypeParameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTypeParameter(this); + else return visitor.visitChildren(this); + } + } + + public final TypeParameterContext typeParameter() throws RecognitionException { + TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_typeParameter); + try { + setState(1700); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INTEGER_VALUE: + enterOuterAlt(_localctx, 1); + { + setState(1698); + match(INTEGER_VALUE); + } + break; + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_ROLE: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXPLAIN: + case EXTERNAL: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + case TIME_WITH_TIME_ZONE: + case TIMESTAMP_WITH_TIME_ZONE: + case DOUBLE_PRECISION: + enterOuterAlt(_localctx, 2); + { + setState(1699); + type(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BaseTypeContext extends ParserRuleContext { + public TerminalNode TIME_WITH_TIME_ZONE() { return getToken(PrestoSqlParser.TIME_WITH_TIME_ZONE, 0); } + public TerminalNode TIMESTAMP_WITH_TIME_ZONE() { return getToken(PrestoSqlParser.TIMESTAMP_WITH_TIME_ZONE, 0); } + public TerminalNode DOUBLE_PRECISION() { return getToken(PrestoSqlParser.DOUBLE_PRECISION, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public BaseTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_baseType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBaseType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBaseType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBaseType(this); + else return visitor.visitChildren(this); + } + } + + public final BaseTypeContext baseType() throws RecognitionException { + BaseTypeContext _localctx = new BaseTypeContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_baseType); + try { + setState(1706); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TIME_WITH_TIME_ZONE: + enterOuterAlt(_localctx, 1); + { + setState(1702); + match(TIME_WITH_TIME_ZONE); + } + break; + case TIMESTAMP_WITH_TIME_ZONE: + enterOuterAlt(_localctx, 2); + { + setState(1703); + match(TIMESTAMP_WITH_TIME_ZONE); + } + break; + case DOUBLE_PRECISION: + enterOuterAlt(_localctx, 3); + { + setState(1704); + match(DOUBLE_PRECISION); + } + break; + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_ROLE: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXPLAIN: + case EXTERNAL: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + enterOuterAlt(_localctx, 4); + { + setState(1705); + qualifiedName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WhenClauseContext extends ParserRuleContext { + public ExpressionContext condition; + public ExpressionContext result; + public TerminalNode WHEN() { return getToken(PrestoSqlParser.WHEN, 0); } + public TerminalNode THEN() { return getToken(PrestoSqlParser.THEN, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public WhenClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_whenClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterWhenClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitWhenClause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitWhenClause(this); + else return visitor.visitChildren(this); + } + } + + public final WhenClauseContext whenClause() throws RecognitionException { + WhenClauseContext _localctx = new WhenClauseContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_whenClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1708); + match(WHEN); + setState(1709); + ((WhenClauseContext)_localctx).condition = expression(); + setState(1710); + match(THEN); + setState(1711); + ((WhenClauseContext)_localctx).result = expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FilterContext extends ParserRuleContext { + public TerminalNode FILTER() { return getToken(PrestoSqlParser.FILTER, 0); } + public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); } + public BooleanExpressionContext booleanExpression() { + return getRuleContext(BooleanExpressionContext.class,0); + } + public FilterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_filter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterFilter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitFilter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitFilter(this); + else return visitor.visitChildren(this); + } + } + + public final FilterContext filter() throws RecognitionException { + FilterContext _localctx = new FilterContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_filter); + try { + enterOuterAlt(_localctx, 1); + { + setState(1713); + match(FILTER); + setState(1714); + match(T__1); + setState(1715); + match(WHERE); + setState(1716); + booleanExpression(0); + setState(1717); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class OverContext extends ParserRuleContext { + public ExpressionContext expression; + public List partition = new ArrayList(); + public TerminalNode OVER() { return getToken(PrestoSqlParser.OVER, 0); } + public TerminalNode PARTITION() { return getToken(PrestoSqlParser.PARTITION, 0); } + public List BY() { return getTokens(PrestoSqlParser.BY); } + public TerminalNode BY(int i) { + return getToken(PrestoSqlParser.BY, i); + } + public TerminalNode ORDER() { return getToken(PrestoSqlParser.ORDER, 0); } + public List sortItem() { + return getRuleContexts(SortItemContext.class); + } + public SortItemContext sortItem(int i) { + return getRuleContext(SortItemContext.class,i); + } + public WindowFrameContext windowFrame() { + return getRuleContext(WindowFrameContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public OverContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_over; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterOver(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitOver(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitOver(this); + else return visitor.visitChildren(this); + } + } + + public final OverContext over() throws RecognitionException { + OverContext _localctx = new OverContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_over); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1719); + match(OVER); + setState(1720); + match(T__1); + setState(1731); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PARTITION) { + { + setState(1721); + match(PARTITION); + setState(1722); + match(BY); + setState(1723); + ((OverContext)_localctx).expression = expression(); + ((OverContext)_localctx).partition.add(((OverContext)_localctx).expression); + setState(1728); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1724); + match(T__3); + setState(1725); + ((OverContext)_localctx).expression = expression(); + ((OverContext)_localctx).partition.add(((OverContext)_localctx).expression); + } + } + setState(1730); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1743); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ORDER) { + { + setState(1733); + match(ORDER); + setState(1734); + match(BY); + setState(1735); + sortItem(); + setState(1740); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1736); + match(T__3); + setState(1737); + sortItem(); + } + } + setState(1742); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(1746); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RANGE || _la==ROWS) { + { + setState(1745); + windowFrame(); + } + } + + setState(1748); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WindowFrameContext extends ParserRuleContext { + public Token frameType; + public FrameBoundContext start; + public FrameBoundContext end; + public TerminalNode RANGE() { return getToken(PrestoSqlParser.RANGE, 0); } + public List frameBound() { + return getRuleContexts(FrameBoundContext.class); + } + public FrameBoundContext frameBound(int i) { + return getRuleContext(FrameBoundContext.class,i); + } + public TerminalNode ROWS() { return getToken(PrestoSqlParser.ROWS, 0); } + public TerminalNode BETWEEN() { return getToken(PrestoSqlParser.BETWEEN, 0); } + public TerminalNode AND() { return getToken(PrestoSqlParser.AND, 0); } + public WindowFrameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_windowFrame; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterWindowFrame(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitWindowFrame(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitWindowFrame(this); + else return visitor.visitChildren(this); + } + } + + public final WindowFrameContext windowFrame() throws RecognitionException { + WindowFrameContext _localctx = new WindowFrameContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_windowFrame); + try { + setState(1766); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,225,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1750); + ((WindowFrameContext)_localctx).frameType = match(RANGE); + setState(1751); + ((WindowFrameContext)_localctx).start = frameBound(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1752); + ((WindowFrameContext)_localctx).frameType = match(ROWS); + setState(1753); + ((WindowFrameContext)_localctx).start = frameBound(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1754); + ((WindowFrameContext)_localctx).frameType = match(RANGE); + setState(1755); + match(BETWEEN); + setState(1756); + ((WindowFrameContext)_localctx).start = frameBound(); + setState(1757); + match(AND); + setState(1758); + ((WindowFrameContext)_localctx).end = frameBound(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1760); + ((WindowFrameContext)_localctx).frameType = match(ROWS); + setState(1761); + match(BETWEEN); + setState(1762); + ((WindowFrameContext)_localctx).start = frameBound(); + setState(1763); + match(AND); + setState(1764); + ((WindowFrameContext)_localctx).end = frameBound(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FrameBoundContext extends ParserRuleContext { + public FrameBoundContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_frameBound; } + + public FrameBoundContext() { } + public void copyFrom(FrameBoundContext ctx) { + super.copyFrom(ctx); + } + } + public static class BoundedFrameContext extends FrameBoundContext { + public Token boundType; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode PRECEDING() { return getToken(PrestoSqlParser.PRECEDING, 0); } + public TerminalNode FOLLOWING() { return getToken(PrestoSqlParser.FOLLOWING, 0); } + public BoundedFrameContext(FrameBoundContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBoundedFrame(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBoundedFrame(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBoundedFrame(this); + else return visitor.visitChildren(this); + } + } + public static class UnboundedFrameContext extends FrameBoundContext { + public Token boundType; + public TerminalNode UNBOUNDED() { return getToken(PrestoSqlParser.UNBOUNDED, 0); } + public TerminalNode PRECEDING() { return getToken(PrestoSqlParser.PRECEDING, 0); } + public TerminalNode FOLLOWING() { return getToken(PrestoSqlParser.FOLLOWING, 0); } + public UnboundedFrameContext(FrameBoundContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnboundedFrame(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnboundedFrame(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUnboundedFrame(this); + else return visitor.visitChildren(this); + } + } + public static class CurrentRowBoundContext extends FrameBoundContext { + public TerminalNode CURRENT() { return getToken(PrestoSqlParser.CURRENT, 0); } + public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); } + public CurrentRowBoundContext(FrameBoundContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCurrentRowBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCurrentRowBound(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCurrentRowBound(this); + else return visitor.visitChildren(this); + } + } + + public final FrameBoundContext frameBound() throws RecognitionException { + FrameBoundContext _localctx = new FrameBoundContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_frameBound); + int _la; + try { + setState(1777); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { + case 1: + _localctx = new UnboundedFrameContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1768); + match(UNBOUNDED); + setState(1769); + ((UnboundedFrameContext)_localctx).boundType = match(PRECEDING); + } + break; + case 2: + _localctx = new UnboundedFrameContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1770); + match(UNBOUNDED); + setState(1771); + ((UnboundedFrameContext)_localctx).boundType = match(FOLLOWING); + } + break; + case 3: + _localctx = new CurrentRowBoundContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1772); + match(CURRENT); + setState(1773); + match(ROW); + } + break; + case 4: + _localctx = new BoundedFrameContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1774); + expression(); + setState(1775); + ((BoundedFrameContext)_localctx).boundType = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==FOLLOWING || _la==PRECEDING) ) { + ((BoundedFrameContext)_localctx).boundType = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExplainOptionContext extends ParserRuleContext { + public ExplainOptionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explainOption; } + + public ExplainOptionContext() { } + public void copyFrom(ExplainOptionContext ctx) { + super.copyFrom(ctx); + } + } + public static class ExplainFormatContext extends ExplainOptionContext { + public Token value; + public TerminalNode FORMAT() { return getToken(PrestoSqlParser.FORMAT, 0); } + public TerminalNode TEXT() { return getToken(PrestoSqlParser.TEXT, 0); } + public TerminalNode GRAPHVIZ() { return getToken(PrestoSqlParser.GRAPHVIZ, 0); } + public TerminalNode JSON() { return getToken(PrestoSqlParser.JSON, 0); } + public ExplainFormatContext(ExplainOptionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExplainFormat(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExplainFormat(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExplainFormat(this); + else return visitor.visitChildren(this); + } + } + public static class ExplainTypeContext extends ExplainOptionContext { + public Token value; + public TerminalNode TYPE() { return getToken(PrestoSqlParser.TYPE, 0); } + public TerminalNode LOGICAL() { return getToken(PrestoSqlParser.LOGICAL, 0); } + public TerminalNode DISTRIBUTED() { return getToken(PrestoSqlParser.DISTRIBUTED, 0); } + public TerminalNode VALIDATE() { return getToken(PrestoSqlParser.VALIDATE, 0); } + public TerminalNode IO() { return getToken(PrestoSqlParser.IO, 0); } + public ExplainTypeContext(ExplainOptionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExplainType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExplainType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitExplainType(this); + else return visitor.visitChildren(this); + } + } + + public final ExplainOptionContext explainOption() throws RecognitionException { + ExplainOptionContext _localctx = new ExplainOptionContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_explainOption); + int _la; + try { + setState(1783); + _errHandler.sync(this); + switch (_input.LA(1)) { + case FORMAT: + _localctx = new ExplainFormatContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1779); + match(FORMAT); + setState(1780); + ((ExplainFormatContext)_localctx).value = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==GRAPHVIZ || _la==JSON || _la==TEXT) ) { + ((ExplainFormatContext)_localctx).value = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case TYPE: + _localctx = new ExplainTypeContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1781); + match(TYPE); + setState(1782); + ((ExplainTypeContext)_localctx).value = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 55)) & ~0x3f) == 0 && ((1L << (_la - 55)) & ((1L << (DISTRIBUTED - 55)) | (1L << (IO - 55)) | (1L << (LOGICAL - 55)))) != 0) || _la==VALIDATE) ) { + ((ExplainTypeContext)_localctx).value = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TransactionModeContext extends ParserRuleContext { + public TransactionModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transactionMode; } + + public TransactionModeContext() { } + public void copyFrom(TransactionModeContext ctx) { + super.copyFrom(ctx); + } + } + public static class TransactionAccessModeContext extends TransactionModeContext { + public Token accessMode; + public TerminalNode READ() { return getToken(PrestoSqlParser.READ, 0); } + public TerminalNode ONLY() { return getToken(PrestoSqlParser.ONLY, 0); } + public TerminalNode WRITE() { return getToken(PrestoSqlParser.WRITE, 0); } + public TransactionAccessModeContext(TransactionModeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTransactionAccessMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTransactionAccessMode(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitTransactionAccessMode(this); + else return visitor.visitChildren(this); + } + } + public static class IsolationLevelContext extends TransactionModeContext { + public TerminalNode ISOLATION() { return getToken(PrestoSqlParser.ISOLATION, 0); } + public TerminalNode LEVEL() { return getToken(PrestoSqlParser.LEVEL, 0); } + public LevelOfIsolationContext levelOfIsolation() { + return getRuleContext(LevelOfIsolationContext.class,0); + } + public IsolationLevelContext(TransactionModeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterIsolationLevel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitIsolationLevel(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitIsolationLevel(this); + else return visitor.visitChildren(this); + } + } + + public final TransactionModeContext transactionMode() throws RecognitionException { + TransactionModeContext _localctx = new TransactionModeContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_transactionMode); + int _la; + try { + setState(1790); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ISOLATION: + _localctx = new IsolationLevelContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1785); + match(ISOLATION); + setState(1786); + match(LEVEL); + setState(1787); + levelOfIsolation(); + } + break; + case READ: + _localctx = new TransactionAccessModeContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1788); + match(READ); + setState(1789); + ((TransactionAccessModeContext)_localctx).accessMode = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ONLY || _la==WRITE) ) { + ((TransactionAccessModeContext)_localctx).accessMode = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LevelOfIsolationContext extends ParserRuleContext { + public LevelOfIsolationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_levelOfIsolation; } + + public LevelOfIsolationContext() { } + public void copyFrom(LevelOfIsolationContext ctx) { + super.copyFrom(ctx); + } + } + public static class ReadUncommittedContext extends LevelOfIsolationContext { + public TerminalNode READ() { return getToken(PrestoSqlParser.READ, 0); } + public TerminalNode UNCOMMITTED() { return getToken(PrestoSqlParser.UNCOMMITTED, 0); } + public ReadUncommittedContext(LevelOfIsolationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterReadUncommitted(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitReadUncommitted(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitReadUncommitted(this); + else return visitor.visitChildren(this); + } + } + public static class SerializableContext extends LevelOfIsolationContext { + public TerminalNode SERIALIZABLE() { return getToken(PrestoSqlParser.SERIALIZABLE, 0); } + public SerializableContext(LevelOfIsolationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSerializable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSerializable(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSerializable(this); + else return visitor.visitChildren(this); + } + } + public static class ReadCommittedContext extends LevelOfIsolationContext { + public TerminalNode READ() { return getToken(PrestoSqlParser.READ, 0); } + public TerminalNode COMMITTED() { return getToken(PrestoSqlParser.COMMITTED, 0); } + public ReadCommittedContext(LevelOfIsolationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterReadCommitted(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitReadCommitted(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitReadCommitted(this); + else return visitor.visitChildren(this); + } + } + public static class RepeatableReadContext extends LevelOfIsolationContext { + public TerminalNode REPEATABLE() { return getToken(PrestoSqlParser.REPEATABLE, 0); } + public TerminalNode READ() { return getToken(PrestoSqlParser.READ, 0); } + public RepeatableReadContext(LevelOfIsolationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRepeatableRead(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRepeatableRead(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRepeatableRead(this); + else return visitor.visitChildren(this); + } + } + + public final LevelOfIsolationContext levelOfIsolation() throws RecognitionException { + LevelOfIsolationContext _localctx = new LevelOfIsolationContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_levelOfIsolation); + try { + setState(1799); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,229,_ctx) ) { + case 1: + _localctx = new ReadUncommittedContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1792); + match(READ); + setState(1793); + match(UNCOMMITTED); + } + break; + case 2: + _localctx = new ReadCommittedContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1794); + match(READ); + setState(1795); + match(COMMITTED); + } + break; + case 3: + _localctx = new RepeatableReadContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1796); + match(REPEATABLE); + setState(1797); + match(READ); + } + break; + case 4: + _localctx = new SerializableContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1798); + match(SERIALIZABLE); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CallArgumentContext extends ParserRuleContext { + public CallArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callArgument; } + + public CallArgumentContext() { } + public void copyFrom(CallArgumentContext ctx) { + super.copyFrom(ctx); + } + } + public static class PositionalArgumentContext extends CallArgumentContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public PositionalArgumentContext(CallArgumentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPositionalArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPositionalArgument(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitPositionalArgument(this); + else return visitor.visitChildren(this); + } + } + public static class NamedArgumentContext extends CallArgumentContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public NamedArgumentContext(CallArgumentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNamedArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNamedArgument(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNamedArgument(this); + else return visitor.visitChildren(this); + } + } + + public final CallArgumentContext callArgument() throws RecognitionException { + CallArgumentContext _localctx = new CallArgumentContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_callArgument); + try { + setState(1806); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { + case 1: + _localctx = new PositionalArgumentContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1801); + expression(); + } + break; + case 2: + _localctx = new NamedArgumentContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1802); + identifier(); + setState(1803); + match(T__8); + setState(1804); + expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrivilegeContext extends ParserRuleContext { + public TerminalNode SELECT() { return getToken(PrestoSqlParser.SELECT, 0); } + public TerminalNode DELETE() { return getToken(PrestoSqlParser.DELETE, 0); } + public TerminalNode INSERT() { return getToken(PrestoSqlParser.INSERT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public PrivilegeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_privilege; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPrivilege(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPrivilege(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitPrivilege(this); + else return visitor.visitChildren(this); + } + } + + public final PrivilegeContext privilege() throws RecognitionException { + PrivilegeContext _localctx = new PrivilegeContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_privilege); + try { + setState(1812); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: + enterOuterAlt(_localctx, 1); + { + setState(1808); + match(SELECT); + } + break; + case DELETE: + enterOuterAlt(_localctx, 2); + { + setState(1809); + match(DELETE); + } + break; + case INSERT: + enterOuterAlt(_localctx, 3); + { + setState(1810); + match(INSERT); + } + break; + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_ROLE: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXPLAIN: + case EXTERNAL: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case IDENTIFIER: + case DIGIT_IDENTIFIER: + case QUOTED_IDENTIFIER: + case BACKQUOTED_IDENTIFIER: + enterOuterAlt(_localctx, 4); + { + setState(1811); + identifier(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class QualifiedNameContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public QualifiedNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qualifiedName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQualifiedName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQualifiedName(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQualifiedName(this); + else return visitor.visitChildren(this); + } + } + + public final QualifiedNameContext qualifiedName() throws RecognitionException { + QualifiedNameContext _localctx = new QualifiedNameContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_qualifiedName); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1814); + identifier(); + setState(1819); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,232,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1815); + match(T__0); + setState(1816); + identifier(); + } + } + } + setState(1821); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,232,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class GrantorContext extends ParserRuleContext { + public GrantorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_grantor; } + + public GrantorContext() { } + public void copyFrom(GrantorContext ctx) { + super.copyFrom(ctx); + } + } + public static class CurrentUserGrantorContext extends GrantorContext { + public TerminalNode CURRENT_USER() { return getToken(PrestoSqlParser.CURRENT_USER, 0); } + public CurrentUserGrantorContext(GrantorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCurrentUserGrantor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCurrentUserGrantor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCurrentUserGrantor(this); + else return visitor.visitChildren(this); + } + } + public static class SpecifiedPrincipalContext extends GrantorContext { + public PrincipalContext principal() { + return getRuleContext(PrincipalContext.class,0); + } + public SpecifiedPrincipalContext(GrantorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSpecifiedPrincipal(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSpecifiedPrincipal(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitSpecifiedPrincipal(this); + else return visitor.visitChildren(this); + } + } + public static class CurrentRoleGrantorContext extends GrantorContext { + public TerminalNode CURRENT_ROLE() { return getToken(PrestoSqlParser.CURRENT_ROLE, 0); } + public CurrentRoleGrantorContext(GrantorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCurrentRoleGrantor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCurrentRoleGrantor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitCurrentRoleGrantor(this); + else return visitor.visitChildren(this); + } + } + + public final GrantorContext grantor() throws RecognitionException { + GrantorContext _localctx = new GrantorContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_grantor); + try { + setState(1825); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,233,_ctx) ) { + case 1: + _localctx = new CurrentUserGrantorContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1822); + match(CURRENT_USER); + } + break; + case 2: + _localctx = new CurrentRoleGrantorContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1823); + match(CURRENT_ROLE); + } + break; + case 3: + _localctx = new SpecifiedPrincipalContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1824); + principal(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrincipalContext extends ParserRuleContext { + public PrincipalContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_principal; } + + public PrincipalContext() { } + public void copyFrom(PrincipalContext ctx) { + super.copyFrom(ctx); + } + } + public static class UnspecifiedPrincipalContext extends PrincipalContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public UnspecifiedPrincipalContext(PrincipalContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnspecifiedPrincipal(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnspecifiedPrincipal(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUnspecifiedPrincipal(this); + else return visitor.visitChildren(this); + } + } + public static class UserPrincipalContext extends PrincipalContext { + public TerminalNode USER() { return getToken(PrestoSqlParser.USER, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public UserPrincipalContext(PrincipalContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUserPrincipal(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUserPrincipal(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUserPrincipal(this); + else return visitor.visitChildren(this); + } + } + public static class RolePrincipalContext extends PrincipalContext { + public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public RolePrincipalContext(PrincipalContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRolePrincipal(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRolePrincipal(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRolePrincipal(this); + else return visitor.visitChildren(this); + } + } + + public final PrincipalContext principal() throws RecognitionException { + PrincipalContext _localctx = new PrincipalContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_principal); + try { + setState(1832); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,234,_ctx) ) { + case 1: + _localctx = new UserPrincipalContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1827); + match(USER); + setState(1828); + identifier(); + } + break; + case 2: + _localctx = new RolePrincipalContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1829); + match(ROLE); + setState(1830); + identifier(); + } + break; + case 3: + _localctx = new UnspecifiedPrincipalContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1831); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RolesContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public RolesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_roles; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoles(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoles(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitRoles(this); + else return visitor.visitChildren(this); + } + } + + public final RolesContext roles() throws RecognitionException { + RolesContext _localctx = new RolesContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_roles); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1834); + identifier(); + setState(1839); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__3) { + { + { + setState(1835); + match(T__3); + setState(1836); + identifier(); + } + } + setState(1841); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdentifierContext extends ParserRuleContext { + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier; } + + public IdentifierContext() { } + public void copyFrom(IdentifierContext ctx) { + super.copyFrom(ctx); + } + } + public static class BackQuotedIdentifierContext extends IdentifierContext { + public TerminalNode BACKQUOTED_IDENTIFIER() { return getToken(PrestoSqlParser.BACKQUOTED_IDENTIFIER, 0); } + public BackQuotedIdentifierContext(IdentifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBackQuotedIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBackQuotedIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitBackQuotedIdentifier(this); + else return visitor.visitChildren(this); + } + } + public static class QuotedIdentifierContext extends IdentifierContext { + public TerminalNode QUOTED_IDENTIFIER() { return getToken(PrestoSqlParser.QUOTED_IDENTIFIER, 0); } + public QuotedIdentifierContext(IdentifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuotedIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuotedIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitQuotedIdentifier(this); + else return visitor.visitChildren(this); + } + } + public static class DigitIdentifierContext extends IdentifierContext { + public TerminalNode DIGIT_IDENTIFIER() { return getToken(PrestoSqlParser.DIGIT_IDENTIFIER, 0); } + public DigitIdentifierContext(IdentifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDigitIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDigitIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDigitIdentifier(this); + else return visitor.visitChildren(this); + } + } + public static class UnquotedIdentifierContext extends IdentifierContext { + public TerminalNode IDENTIFIER() { return getToken(PrestoSqlParser.IDENTIFIER, 0); } + public NonReservedContext nonReserved() { + return getRuleContext(NonReservedContext.class,0); + } + public UnquotedIdentifierContext(IdentifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnquotedIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnquotedIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitUnquotedIdentifier(this); + else return visitor.visitChildren(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_identifier); + try { + setState(1847); + _errHandler.sync(this); + switch (_input.LA(1)) { + case IDENTIFIER: + _localctx = new UnquotedIdentifierContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1842); + match(IDENTIFIER); + } + break; + case QUOTED_IDENTIFIER: + _localctx = new QuotedIdentifierContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1843); + match(QUOTED_IDENTIFIER); + } + break; + case ADD: + case ADMIN: + case ALL: + case ANALYZE: + case ANY: + case ARRAY: + case ASC: + case AT: + case BERNOULLI: + case CALL: + case CALLED: + case CASCADE: + case CATALOGS: + case COLUMN: + case COLUMNS: + case COMMENT: + case COMMIT: + case COMMITTED: + case CURRENT: + case CURRENT_ROLE: + case DATA: + case DATE: + case DAY: + case DEFINER: + case DESC: + case DETERMINISTIC: + case DISTRIBUTED: + case EXCLUDING: + case EXPLAIN: + case EXTERNAL: + case FILTER: + case FIRST: + case FOLLOWING: + case FORMAT: + case FUNCTION: + case FUNCTIONS: + case GRANT: + case GRANTED: + case GRANTS: + case GRAPHVIZ: + case HOUR: + case IF: + case IGNORE: + case INCLUDING: + case INPUT: + case INTERVAL: + case INVOKER: + case IO: + case ISOLATION: + case JSON: + case LANGUAGE: + case LAST: + case LATERAL: + case LEVEL: + case LIMIT: + case LOGICAL: + case MAP: + case MATERIALIZED: + case MINUTE: + case MONTH: + case NAME: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NONE: + case NULLIF: + case NULLS: + case OFFSET: + case ONLY: + case OPTION: + case ORDINALITY: + case OUTPUT: + case OVER: + case PARTITION: + case PARTITIONS: + case POSITION: + case PRECEDING: + case PRIVILEGES: + case PROPERTIES: + case RANGE: + case READ: + case REFRESH: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESPECT: + case RESTRICT: + case RETURN: + case RETURNS: + case REVOKE: + case ROLE: + case ROLES: + case ROLLBACK: + case ROW: + case ROWS: + case SCHEMA: + case SCHEMAS: + case SECOND: + case SECURITY: + case SERIALIZABLE: + case SESSION: + case SET: + case SETS: + case SHOW: + case SOME: + case SQL: + case START: + case STATS: + case SUBSTRING: + case SYSTEM: + case TABLES: + case TABLESAMPLE: + case TEMPORARY: + case TEXT: + case TIME: + case TIMESTAMP: + case TO: + case TRANSACTION: + case TRY_CAST: + case TYPE: + case UNBOUNDED: + case UNCOMMITTED: + case USE: + case USER: + case VALIDATE: + case VERBOSE: + case VIEW: + case WORK: + case WRITE: + case YEAR: + case ZONE: + _localctx = new UnquotedIdentifierContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1844); + nonReserved(); + } + break; + case BACKQUOTED_IDENTIFIER: + _localctx = new BackQuotedIdentifierContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1845); + match(BACKQUOTED_IDENTIFIER); + } + break; + case DIGIT_IDENTIFIER: + _localctx = new DigitIdentifierContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1846); + match(DIGIT_IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NumberContext extends ParserRuleContext { + public NumberContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_number; } + + public NumberContext() { } + public void copyFrom(NumberContext ctx) { + super.copyFrom(ctx); + } + } + public static class DecimalLiteralContext extends NumberContext { + public TerminalNode DECIMAL_VALUE() { return getToken(PrestoSqlParser.DECIMAL_VALUE, 0); } + public DecimalLiteralContext(NumberContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDecimalLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDecimalLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDecimalLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class DoubleLiteralContext extends NumberContext { + public TerminalNode DOUBLE_VALUE() { return getToken(PrestoSqlParser.DOUBLE_VALUE, 0); } + public DoubleLiteralContext(NumberContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDoubleLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDoubleLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitDoubleLiteral(this); + else return visitor.visitChildren(this); + } + } + public static class IntegerLiteralContext extends NumberContext { + public TerminalNode INTEGER_VALUE() { return getToken(PrestoSqlParser.INTEGER_VALUE, 0); } + public IntegerLiteralContext(NumberContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterIntegerLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitIntegerLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitIntegerLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final NumberContext number() throws RecognitionException { + NumberContext _localctx = new NumberContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_number); + try { + setState(1852); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DECIMAL_VALUE: + _localctx = new DecimalLiteralContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1849); + match(DECIMAL_VALUE); + } + break; + case DOUBLE_VALUE: + _localctx = new DoubleLiteralContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1850); + match(DOUBLE_VALUE); + } + break; + case INTEGER_VALUE: + _localctx = new IntegerLiteralContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1851); + match(INTEGER_VALUE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NonReservedContext extends ParserRuleContext { + public TerminalNode ADD() { return getToken(PrestoSqlParser.ADD, 0); } + public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); } + public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); } + public TerminalNode ANALYZE() { return getToken(PrestoSqlParser.ANALYZE, 0); } + public TerminalNode ANY() { return getToken(PrestoSqlParser.ANY, 0); } + public TerminalNode ARRAY() { return getToken(PrestoSqlParser.ARRAY, 0); } + public TerminalNode ASC() { return getToken(PrestoSqlParser.ASC, 0); } + public TerminalNode AT() { return getToken(PrestoSqlParser.AT, 0); } + public TerminalNode BERNOULLI() { return getToken(PrestoSqlParser.BERNOULLI, 0); } + public TerminalNode CALL() { return getToken(PrestoSqlParser.CALL, 0); } + public TerminalNode CALLED() { return getToken(PrestoSqlParser.CALLED, 0); } + public TerminalNode CASCADE() { return getToken(PrestoSqlParser.CASCADE, 0); } + public TerminalNode CATALOGS() { return getToken(PrestoSqlParser.CATALOGS, 0); } + public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); } + public TerminalNode COLUMNS() { return getToken(PrestoSqlParser.COLUMNS, 0); } + public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); } + public TerminalNode COMMIT() { return getToken(PrestoSqlParser.COMMIT, 0); } + public TerminalNode COMMITTED() { return getToken(PrestoSqlParser.COMMITTED, 0); } + public TerminalNode CURRENT() { return getToken(PrestoSqlParser.CURRENT, 0); } + public TerminalNode CURRENT_ROLE() { return getToken(PrestoSqlParser.CURRENT_ROLE, 0); } + public TerminalNode DATA() { return getToken(PrestoSqlParser.DATA, 0); } + public TerminalNode DATE() { return getToken(PrestoSqlParser.DATE, 0); } + public TerminalNode DAY() { return getToken(PrestoSqlParser.DAY, 0); } + public TerminalNode DEFINER() { return getToken(PrestoSqlParser.DEFINER, 0); } + public TerminalNode DESC() { return getToken(PrestoSqlParser.DESC, 0); } + public TerminalNode DETERMINISTIC() { return getToken(PrestoSqlParser.DETERMINISTIC, 0); } + public TerminalNode DISTRIBUTED() { return getToken(PrestoSqlParser.DISTRIBUTED, 0); } + public TerminalNode EXCLUDING() { return getToken(PrestoSqlParser.EXCLUDING, 0); } + public TerminalNode EXPLAIN() { return getToken(PrestoSqlParser.EXPLAIN, 0); } + public TerminalNode EXTERNAL() { return getToken(PrestoSqlParser.EXTERNAL, 0); } + public TerminalNode FILTER() { return getToken(PrestoSqlParser.FILTER, 0); } + public TerminalNode FIRST() { return getToken(PrestoSqlParser.FIRST, 0); } + public TerminalNode FOLLOWING() { return getToken(PrestoSqlParser.FOLLOWING, 0); } + public TerminalNode FORMAT() { return getToken(PrestoSqlParser.FORMAT, 0); } + public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); } + public TerminalNode FUNCTIONS() { return getToken(PrestoSqlParser.FUNCTIONS, 0); } + public TerminalNode GRANT() { return getToken(PrestoSqlParser.GRANT, 0); } + public TerminalNode GRANTED() { return getToken(PrestoSqlParser.GRANTED, 0); } + public TerminalNode GRANTS() { return getToken(PrestoSqlParser.GRANTS, 0); } + public TerminalNode GRAPHVIZ() { return getToken(PrestoSqlParser.GRAPHVIZ, 0); } + public TerminalNode HOUR() { return getToken(PrestoSqlParser.HOUR, 0); } + public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); } + public TerminalNode IGNORE() { return getToken(PrestoSqlParser.IGNORE, 0); } + public TerminalNode INCLUDING() { return getToken(PrestoSqlParser.INCLUDING, 0); } + public TerminalNode INPUT() { return getToken(PrestoSqlParser.INPUT, 0); } + public TerminalNode INTERVAL() { return getToken(PrestoSqlParser.INTERVAL, 0); } + public TerminalNode INVOKER() { return getToken(PrestoSqlParser.INVOKER, 0); } + public TerminalNode IO() { return getToken(PrestoSqlParser.IO, 0); } + public TerminalNode ISOLATION() { return getToken(PrestoSqlParser.ISOLATION, 0); } + public TerminalNode JSON() { return getToken(PrestoSqlParser.JSON, 0); } + public TerminalNode LANGUAGE() { return getToken(PrestoSqlParser.LANGUAGE, 0); } + public TerminalNode LAST() { return getToken(PrestoSqlParser.LAST, 0); } + public TerminalNode LATERAL() { return getToken(PrestoSqlParser.LATERAL, 0); } + public TerminalNode LEVEL() { return getToken(PrestoSqlParser.LEVEL, 0); } + public TerminalNode LIMIT() { return getToken(PrestoSqlParser.LIMIT, 0); } + public TerminalNode LOGICAL() { return getToken(PrestoSqlParser.LOGICAL, 0); } + public TerminalNode MAP() { return getToken(PrestoSqlParser.MAP, 0); } + public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); } + public TerminalNode MINUTE() { return getToken(PrestoSqlParser.MINUTE, 0); } + public TerminalNode MONTH() { return getToken(PrestoSqlParser.MONTH, 0); } + public TerminalNode NAME() { return getToken(PrestoSqlParser.NAME, 0); } + public TerminalNode NFC() { return getToken(PrestoSqlParser.NFC, 0); } + public TerminalNode NFD() { return getToken(PrestoSqlParser.NFD, 0); } + public TerminalNode NFKC() { return getToken(PrestoSqlParser.NFKC, 0); } + public TerminalNode NFKD() { return getToken(PrestoSqlParser.NFKD, 0); } + public TerminalNode NO() { return getToken(PrestoSqlParser.NO, 0); } + public TerminalNode NONE() { return getToken(PrestoSqlParser.NONE, 0); } + public TerminalNode NULLIF() { return getToken(PrestoSqlParser.NULLIF, 0); } + public TerminalNode NULLS() { return getToken(PrestoSqlParser.NULLS, 0); } + public TerminalNode OFFSET() { return getToken(PrestoSqlParser.OFFSET, 0); } + public TerminalNode ONLY() { return getToken(PrestoSqlParser.ONLY, 0); } + public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); } + public TerminalNode ORDINALITY() { return getToken(PrestoSqlParser.ORDINALITY, 0); } + public TerminalNode OUTPUT() { return getToken(PrestoSqlParser.OUTPUT, 0); } + public TerminalNode OVER() { return getToken(PrestoSqlParser.OVER, 0); } + public TerminalNode PARTITION() { return getToken(PrestoSqlParser.PARTITION, 0); } + public TerminalNode PARTITIONS() { return getToken(PrestoSqlParser.PARTITIONS, 0); } + public TerminalNode POSITION() { return getToken(PrestoSqlParser.POSITION, 0); } + public TerminalNode PRECEDING() { return getToken(PrestoSqlParser.PRECEDING, 0); } + public TerminalNode PRIVILEGES() { return getToken(PrestoSqlParser.PRIVILEGES, 0); } + public TerminalNode PROPERTIES() { return getToken(PrestoSqlParser.PROPERTIES, 0); } + public TerminalNode RANGE() { return getToken(PrestoSqlParser.RANGE, 0); } + public TerminalNode READ() { return getToken(PrestoSqlParser.READ, 0); } + public TerminalNode REFRESH() { return getToken(PrestoSqlParser.REFRESH, 0); } + public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); } + public TerminalNode REPEATABLE() { return getToken(PrestoSqlParser.REPEATABLE, 0); } + public TerminalNode REPLACE() { return getToken(PrestoSqlParser.REPLACE, 0); } + public TerminalNode RESET() { return getToken(PrestoSqlParser.RESET, 0); } + public TerminalNode RESPECT() { return getToken(PrestoSqlParser.RESPECT, 0); } + public TerminalNode RESTRICT() { return getToken(PrestoSqlParser.RESTRICT, 0); } + public TerminalNode RETURN() { return getToken(PrestoSqlParser.RETURN, 0); } + public TerminalNode RETURNS() { return getToken(PrestoSqlParser.RETURNS, 0); } + public TerminalNode REVOKE() { return getToken(PrestoSqlParser.REVOKE, 0); } + public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); } + public TerminalNode ROLES() { return getToken(PrestoSqlParser.ROLES, 0); } + public TerminalNode ROLLBACK() { return getToken(PrestoSqlParser.ROLLBACK, 0); } + public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); } + public TerminalNode ROWS() { return getToken(PrestoSqlParser.ROWS, 0); } + public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); } + public TerminalNode SCHEMAS() { return getToken(PrestoSqlParser.SCHEMAS, 0); } + public TerminalNode SECOND() { return getToken(PrestoSqlParser.SECOND, 0); } + public TerminalNode SECURITY() { return getToken(PrestoSqlParser.SECURITY, 0); } + public TerminalNode SERIALIZABLE() { return getToken(PrestoSqlParser.SERIALIZABLE, 0); } + public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); } + public TerminalNode SET() { return getToken(PrestoSqlParser.SET, 0); } + public TerminalNode SETS() { return getToken(PrestoSqlParser.SETS, 0); } + public TerminalNode SQL() { return getToken(PrestoSqlParser.SQL, 0); } + public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); } + public TerminalNode SOME() { return getToken(PrestoSqlParser.SOME, 0); } + public TerminalNode START() { return getToken(PrestoSqlParser.START, 0); } + public TerminalNode STATS() { return getToken(PrestoSqlParser.STATS, 0); } + public TerminalNode SUBSTRING() { return getToken(PrestoSqlParser.SUBSTRING, 0); } + public TerminalNode SYSTEM() { return getToken(PrestoSqlParser.SYSTEM, 0); } + public TerminalNode TABLES() { return getToken(PrestoSqlParser.TABLES, 0); } + public TerminalNode TABLESAMPLE() { return getToken(PrestoSqlParser.TABLESAMPLE, 0); } + public TerminalNode TEMPORARY() { return getToken(PrestoSqlParser.TEMPORARY, 0); } + public TerminalNode TEXT() { return getToken(PrestoSqlParser.TEXT, 0); } + public TerminalNode TIME() { return getToken(PrestoSqlParser.TIME, 0); } + public TerminalNode TIMESTAMP() { return getToken(PrestoSqlParser.TIMESTAMP, 0); } + public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); } + public TerminalNode TRANSACTION() { return getToken(PrestoSqlParser.TRANSACTION, 0); } + public TerminalNode TRY_CAST() { return getToken(PrestoSqlParser.TRY_CAST, 0); } + public TerminalNode TYPE() { return getToken(PrestoSqlParser.TYPE, 0); } + public TerminalNode UNBOUNDED() { return getToken(PrestoSqlParser.UNBOUNDED, 0); } + public TerminalNode UNCOMMITTED() { return getToken(PrestoSqlParser.UNCOMMITTED, 0); } + public TerminalNode USE() { return getToken(PrestoSqlParser.USE, 0); } + public TerminalNode USER() { return getToken(PrestoSqlParser.USER, 0); } + public TerminalNode VALIDATE() { return getToken(PrestoSqlParser.VALIDATE, 0); } + public TerminalNode VERBOSE() { return getToken(PrestoSqlParser.VERBOSE, 0); } + public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); } + public TerminalNode WORK() { return getToken(PrestoSqlParser.WORK, 0); } + public TerminalNode WRITE() { return getToken(PrestoSqlParser.WRITE, 0); } + public TerminalNode YEAR() { return getToken(PrestoSqlParser.YEAR, 0); } + public TerminalNode ZONE() { return getToken(PrestoSqlParser.ZONE, 0); } + public NonReservedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonReserved; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNonReserved(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNonReserved(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor)visitor).visitNonReserved(this); + else return visitor.visitChildren(this); + } + } + + public final NonReservedContext nonReserved() throws RecognitionException { + NonReservedContext _localctx = new NonReservedContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_nonReserved); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1854); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 24: + return queryTerm_sempred((QueryTermContext)_localctx, predIndex); + case 34: + return relation_sempred((RelationContext)_localctx, predIndex); + case 43: + return booleanExpression_sempred((BooleanExpressionContext)_localctx, predIndex); + case 45: + return valueExpression_sempred((ValueExpressionContext)_localctx, predIndex); + case 46: + return primaryExpression_sempred((PrimaryExpressionContext)_localctx, predIndex); + case 57: + return type_sempred((TypeContext)_localctx, predIndex); + } + return true; + } + private boolean queryTerm_sempred(QueryTermContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 2); + case 1: + return precpred(_ctx, 1); + } + return true; + } + private boolean relation_sempred(RelationContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return precpred(_ctx, 2); + } + return true; + } + private boolean booleanExpression_sempred(BooleanExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 3: + return precpred(_ctx, 2); + case 4: + return precpred(_ctx, 1); + } + return true; + } + private boolean valueExpression_sempred(ValueExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return precpred(_ctx, 3); + case 6: + return precpred(_ctx, 2); + case 7: + return precpred(_ctx, 1); + case 8: + return precpred(_ctx, 5); + } + return true; + } + private boolean primaryExpression_sempred(PrimaryExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 9: + return precpred(_ctx, 14); + case 10: + return precpred(_ctx, 12); + } + return true; + } + private boolean type_sempred(TypeContext _localctx, int predIndex) { + switch (predIndex) { + case 11: + return precpred(_ctx, 6); + } + return true; + } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u00f4\u0743\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ + "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\3\2\3\2\3\2\3\3\3\3\3\3\3\4\3\4\3\4"+ + "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u00b3\n\5\3\5"+ + "\3\5\3\5\5\5\u00b8\n\5\3\5\3\5\3\5\3\5\5\5\u00be\n\5\3\5\3\5\5\5\u00c2"+ + "\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u00d0\n\5\3\5"+ + "\3\5\5\5\u00d4\n\5\3\5\3\5\5\5\u00d8\n\5\3\5\3\5\5\5\u00dc\n\5\3\5\3\5"+ + "\3\5\3\5\3\5\3\5\5\5\u00e4\n\5\3\5\3\5\5\5\u00e8\n\5\3\5\5\5\u00eb\n\5"+ + "\3\5\3\5\3\5\3\5\3\5\5\5\u00f2\n\5\3\5\3\5\3\5\3\5\3\5\7\5\u00f9\n\5\f"+ + "\5\16\5\u00fc\13\5\3\5\3\5\3\5\5\5\u0101\n\5\3\5\3\5\5\5\u0105\n\5\3\5"+ + "\3\5\3\5\3\5\5\5\u010b\n\5\3\5\3\5\3\5\3\5\3\5\5\5\u0112\n\5\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\5\5\u011b\n\5\3\5\3\5\3\5\3\5\5\5\u0121\n\5\3\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u012c\n\5\3\5\3\5\3\5\3\5\3\5\5\5\u0133"+ + "\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u013d\n\5\3\5\3\5\3\5\3\5\3\5"+ + "\5\5\u0144\n\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u014c\n\5\3\5\3\5\3\5\3\5\3"+ + "\5\3\5\5\5\u0154\n\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u015c\n\5\3\5\3\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\7\5\u0166\n\5\f\5\16\5\u0169\13\5\3\5\3\5\3\5\5\5"+ + "\u016e\n\5\3\5\3\5\3\5\5\5\u0173\n\5\3\5\3\5\3\5\3\5\5\5\u0179\n\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u0182\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5"+ + "\u018b\n\5\3\5\3\5\3\5\5\5\u0190\n\5\3\5\3\5\5\5\u0194\n\5\3\5\3\5\3\5"+ + "\3\5\3\5\3\5\5\5\u019c\n\5\3\5\3\5\3\5\3\5\3\5\5\5\u01a3\n\5\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u01b0\n\5\3\5\5\5\u01b3\n\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\7\5\u01bb\n\5\f\5\16\5\u01be\13\5\5\5\u01c0\n\5\3"+ + "\5\3\5\3\5\3\5\3\5\5\5\u01c7\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u01d0"+ + "\n\5\3\5\3\5\3\5\3\5\5\5\u01d6\n\5\3\5\3\5\3\5\5\5\u01db\n\5\3\5\3\5\5"+ + "\5\u01df\n\5\3\5\3\5\3\5\3\5\3\5\3\5\7\5\u01e7\n\5\f\5\16\5\u01ea\13\5"+ + "\5\5\u01ec\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u01f6\n\5\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\3\5\7\5\u0201\n\5\f\5\16\5\u0204\13\5\3\5\3\5\3"+ + "\5\5\5\u0209\n\5\3\5\3\5\3\5\5\5\u020e\n\5\3\5\3\5\3\5\3\5\5\5\u0214\n"+ + "\5\3\5\3\5\3\5\3\5\3\5\7\5\u021b\n\5\f\5\16\5\u021e\13\5\3\5\3\5\3\5\5"+ + "\5\u0223\n\5\3\5\3\5\3\5\3\5\3\5\5\5\u022a\n\5\3\5\3\5\3\5\3\5\7\5\u0230"+ + "\n\5\f\5\16\5\u0233\13\5\3\5\3\5\5\5\u0237\n\5\3\5\3\5\5\5\u023b\n\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\5\5\u0243\n\5\3\5\3\5\3\5\3\5\5\5\u0249\n\5\3\5"+ + "\3\5\3\5\7\5\u024e\n\5\f\5\16\5\u0251\13\5\3\5\3\5\5\5\u0255\n\5\3\5\3"+ + "\5\5\5\u0259\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u0263\n\5\3\5\5\5"+ + "\u0266\n\5\3\5\3\5\5\5\u026a\n\5\3\5\5\5\u026d\n\5\3\5\3\5\3\5\3\5\7\5"+ + "\u0273\n\5\f\5\16\5\u0276\13\5\3\5\3\5\5\5\u027a\n\5\3\5\3\5\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u028f\n"+ + "\5\3\5\3\5\3\5\3\5\5\5\u0295\n\5\3\5\3\5\3\5\3\5\5\5\u029b\n\5\5\5\u029d"+ + "\n\5\3\5\3\5\3\5\3\5\5\5\u02a3\n\5\3\5\3\5\3\5\3\5\5\5\u02a9\n\5\5\5\u02ab"+ + "\n\5\3\5\3\5\3\5\3\5\5\5\u02b1\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u02c4\n\5\3\5\3\5\3\5\5\5\u02c9\n"+ + "\5\3\5\3\5\3\5\3\5\3\5\5\5\u02d0\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+ + "\5\3\5\5\5\u02dc\n\5\5\5\u02de\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\7\5\u02f0\n\5\f\5\16\5\u02f3\13\5\5\5\u02f5"+ + "\n\5\3\5\3\5\5\5\u02f9\n\5\3\5\3\5\5\5\u02fd\n\5\3\5\3\5\3\5\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\7\5\u030d\n\5\f\5\16\5\u0310\13\5\5"+ + "\5\u0312\n\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5\u031a\n\5\3\6\5\6\u031d\n\6\3"+ + "\6\3\6\3\7\3\7\5\7\u0323\n\7\3\7\3\7\3\7\7\7\u0328\n\7\f\7\16\7\u032b"+ + "\13\7\3\b\3\b\5\b\u032f\n\b\3\t\3\t\3\t\3\t\5\t\u0335\n\t\3\t\3\t\5\t"+ + "\u0339\n\t\3\t\3\t\5\t\u033d\n\t\3\n\3\n\3\n\3\n\5\n\u0343\n\n\3\13\3"+ + "\13\3\13\3\13\7\13\u0349\n\13\f\13\16\13\u034c\13\13\3\13\3\13\3\f\3\f"+ + "\3\f\3\f\3\r\3\r\3\r\3\16\7\16\u0358\n\16\f\16\16\16\u035b\13\16\3\17"+ + "\3\17\3\17\3\17\5\17\u0361\n\17\3\20\7\20\u0364\n\20\f\20\16\20\u0367"+ + "\13\20\3\21\3\21\3\22\3\22\5\22\u036d\n\22\3\23\3\23\3\23\3\24\3\24\3"+ + "\24\5\24\u0375\n\24\3\25\3\25\5\25\u0379\n\25\3\26\3\26\3\26\5\26\u037e"+ + "\n\26\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\5\27\u0389\n\27\3\30"+ + "\3\30\3\31\3\31\3\31\3\31\3\31\3\31\7\31\u0393\n\31\f\31\16\31\u0396\13"+ + "\31\5\31\u0398\n\31\3\31\3\31\3\31\5\31\u039d\n\31\5\31\u039f\n\31\3\31"+ + "\3\31\5\31\u03a3\n\31\3\32\3\32\3\32\3\32\3\32\3\32\5\32\u03ab\n\32\3"+ + "\32\3\32\3\32\3\32\5\32\u03b1\n\32\3\32\7\32\u03b4\n\32\f\32\16\32\u03b7"+ + "\13\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\7\33\u03c0\n\33\f\33\16\33\u03c3"+ + "\13\33\3\33\3\33\3\33\3\33\5\33\u03c9\n\33\3\34\3\34\5\34\u03cd\n\34\3"+ + "\34\3\34\5\34\u03d1\n\34\3\35\3\35\5\35\u03d5\n\35\3\35\3\35\3\35\7\35"+ + "\u03da\n\35\f\35\16\35\u03dd\13\35\3\35\3\35\3\35\3\35\7\35\u03e3\n\35"+ + "\f\35\16\35\u03e6\13\35\5\35\u03e8\n\35\3\35\3\35\5\35\u03ec\n\35\3\35"+ + "\3\35\3\35\5\35\u03f1\n\35\3\35\3\35\5\35\u03f5\n\35\3\36\5\36\u03f8\n"+ + "\36\3\36\3\36\3\36\7\36\u03fd\n\36\f\36\16\36\u0400\13\36\3\37\3\37\3"+ + "\37\3\37\3\37\3\37\7\37\u0408\n\37\f\37\16\37\u040b\13\37\5\37\u040d\n"+ + "\37\3\37\3\37\3\37\3\37\3\37\3\37\7\37\u0415\n\37\f\37\16\37\u0418\13"+ + "\37\5\37\u041a\n\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\7\37\u0423\n\37"+ + "\f\37\16\37\u0426\13\37\3\37\3\37\5\37\u042a\n\37\3 \3 \3 \3 \7 \u0430"+ + "\n \f \16 \u0433\13 \5 \u0435\n \3 \3 \5 \u0439\n \3!\3!\5!\u043d\n!\3"+ + "!\3!\3!\3!\3!\3\"\3\"\3#\3#\5#\u0448\n#\3#\5#\u044b\n#\3#\3#\3#\3#\3#"+ + "\5#\u0452\n#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0465"+ + "\n$\7$\u0467\n$\f$\16$\u046a\13$\3%\5%\u046d\n%\3%\3%\5%\u0471\n%\3%\3"+ + "%\5%\u0475\n%\3%\3%\5%\u0479\n%\5%\u047b\n%\3&\3&\3&\3&\3&\3&\3&\7&\u0484"+ + "\n&\f&\16&\u0487\13&\3&\3&\5&\u048b\n&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\5\'"+ + "\u0494\n\'\3(\3(\3)\3)\5)\u049a\n)\3)\3)\5)\u049e\n)\5)\u04a0\n)\3*\3"+ + "*\3*\3*\7*\u04a6\n*\f*\16*\u04a9\13*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+"+ + "\3+\7+\u04b7\n+\f+\16+\u04ba\13+\3+\3+\3+\5+\u04bf\n+\3+\3+\3+\3+\3+\3"+ + "+\3+\3+\3+\5+\u04ca\n+\3,\3,\3-\3-\3-\5-\u04d1\n-\3-\3-\5-\u04d5\n-\3"+ + "-\3-\3-\3-\3-\3-\7-\u04dd\n-\f-\16-\u04e0\13-\3.\3.\3.\3.\3.\3.\3.\3."+ + "\3.\3.\5.\u04ec\n.\3.\3.\3.\3.\3.\3.\5.\u04f4\n.\3.\3.\3.\3.\3.\7.\u04fb"+ + "\n.\f.\16.\u04fe\13.\3.\3.\3.\5.\u0503\n.\3.\3.\3.\3.\3.\3.\5.\u050b\n"+ + ".\3.\3.\3.\3.\5.\u0511\n.\3.\3.\5.\u0515\n.\3.\3.\3.\5.\u051a\n.\3.\3"+ + ".\3.\5.\u051f\n.\3/\3/\3/\3/\5/\u0525\n/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3"+ + "/\3/\3/\7/\u0533\n/\f/\16/\u0536\13/\3\60\3\60\3\60\3\60\3\60\3\60\3\60"+ + "\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60"+ + "\3\60\3\60\3\60\6\60\u0550\n\60\r\60\16\60\u0551\3\60\3\60\3\60\3\60\3"+ + "\60\3\60\3\60\7\60\u055b\n\60\f\60\16\60\u055e\13\60\3\60\3\60\3\60\3"+ + "\60\3\60\3\60\3\60\5\60\u0567\n\60\3\60\5\60\u056a\n\60\3\60\3\60\3\60"+ + "\5\60\u056f\n\60\3\60\3\60\3\60\7\60\u0574\n\60\f\60\16\60\u0577\13\60"+ + "\5\60\u0579\n\60\3\60\3\60\3\60\3\60\3\60\7\60\u0580\n\60\f\60\16\60\u0583"+ + "\13\60\5\60\u0585\n\60\3\60\3\60\5\60\u0589\n\60\3\60\5\60\u058c\n\60"+ + "\3\60\5\60\u058f\n\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\7\60\u0599"+ + "\n\60\f\60\16\60\u059c\13\60\5\60\u059e\n\60\3\60\3\60\3\60\3\60\3\60"+ + "\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\6\60\u05af\n\60\r\60"+ + "\16\60\u05b0\3\60\3\60\5\60\u05b5\n\60\3\60\3\60\3\60\3\60\6\60\u05bb"+ + "\n\60\r\60\16\60\u05bc\3\60\3\60\5\60\u05c1\n\60\3\60\3\60\3\60\3\60\3"+ + "\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3"+ + "\60\3\60\3\60\7\60\u05d8\n\60\f\60\16\60\u05db\13\60\5\60\u05dd\n\60\3"+ + "\60\3\60\3\60\3\60\3\60\3\60\3\60\5\60\u05e6\n\60\3\60\3\60\3\60\3\60"+ + "\5\60\u05ec\n\60\3\60\3\60\3\60\3\60\5\60\u05f2\n\60\3\60\3\60\3\60\3"+ + "\60\5\60\u05f8\n\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\5\60\u0602"+ + "\n\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\5\60\u060b\n\60\3\60\3\60\3\60"+ + "\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60"+ + "\3\60\7\60\u061f\n\60\f\60\16\60\u0622\13\60\5\60\u0624\n\60\3\60\5\60"+ + "\u0627\n\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\7\60\u0631\n\60\f"+ + "\60\16\60\u0634\13\60\3\61\3\61\3\61\3\61\5\61\u063a\n\61\5\61\u063c\n"+ + "\61\3\62\3\62\3\62\3\62\5\62\u0642\n\62\3\63\3\63\3\63\3\63\3\63\3\63"+ + "\5\63\u064a\n\63\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\5\67\u0654\n"+ + "\67\3\67\3\67\3\67\3\67\5\67\u065a\n\67\38\38\39\39\3:\3:\3:\3:\7:\u0664"+ + "\n:\f:\16:\u0667\13:\5:\u0669\n:\3:\3:\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3"+ + ";\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\7;\u0682\n;\f;\16;\u0685\13;\3;\3;\3;"+ + "\3;\3;\3;\3;\7;\u068e\n;\f;\16;\u0691\13;\3;\3;\5;\u0695\n;\3;\3;\3;\3"+ + ";\3;\5;\u069c\n;\3;\3;\7;\u06a0\n;\f;\16;\u06a3\13;\3<\3<\5<\u06a7\n<"+ + "\3=\3=\3=\3=\5=\u06ad\n=\3>\3>\3>\3>\3>\3?\3?\3?\3?\3?\3?\3@\3@\3@\3@"+ + "\3@\3@\3@\7@\u06c1\n@\f@\16@\u06c4\13@\5@\u06c6\n@\3@\3@\3@\3@\3@\7@\u06cd"+ + "\n@\f@\16@\u06d0\13@\5@\u06d2\n@\3@\5@\u06d5\n@\3@\3@\3A\3A\3A\3A\3A\3"+ + "A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\5A\u06e9\nA\3B\3B\3B\3B\3B\3B\3B\3B\3"+ + "B\5B\u06f4\nB\3C\3C\3C\3C\5C\u06fa\nC\3D\3D\3D\3D\3D\5D\u0701\nD\3E\3"+ + "E\3E\3E\3E\3E\3E\5E\u070a\nE\3F\3F\3F\3F\3F\5F\u0711\nF\3G\3G\3G\3G\5"+ + "G\u0717\nG\3H\3H\3H\7H\u071c\nH\fH\16H\u071f\13H\3I\3I\3I\5I\u0724\nI"+ + "\3J\3J\3J\3J\3J\5J\u072b\nJ\3K\3K\3K\7K\u0730\nK\fK\16K\u0733\13K\3L\3"+ + "L\3L\3L\3L\5L\u073a\nL\3M\3M\3M\5M\u073f\nM\3N\3N\3N\2\b\62FX\\^tO\2\4"+ + "\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNP"+ + "RTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e"+ + "\u0090\u0092\u0094\u0096\u0098\u009a\2\31\4\2\34\34\u009c\u009c\4\2\63"+ + "\63aa\4\2KKYY\4\2??ZZ\3\2\u00a5\u00a6\4\2\16\16\u00e6\u00e6\4\2>>\u00c7"+ + "\u00c7\4\2\25\25\65\65\4\2GGhh\4\2\16\1688\4\2\27\27\u00b6\u00b6\3\2\u00dd"+ + "\u00de\3\2\u00df\u00e1\3\2\u00d7\u00dc\5\2\16\16\22\22\u00b1\u00b1\4\2"+ + "EE\u00c1\u00c1\7\2\61\61VVst\u00a9\u00a9\u00d5\u00d5\3\2wz\4\2HH\u008f"+ + "\u008f\5\2RRee\u00bb\u00bb\6\299bbpp\u00cc\u00cc\4\2\u0084\u0084\u00d4"+ + "\u00d4\61\2\f\16\20\20\22\23\25\27\32\34\37$))++/\61\63\63\65\65\67\67"+ + "99??BBDDFHJJMRVXZZ\\\\__abdegikkmmpuw|\u0080\u0082\u0084\u0085\u0088\u0088"+ + "\u008a\u008f\u0091\u0094\u0096\u009f\u00a1\u00a3\u00a5\u00aa\u00ac\u00b6"+ + "\u00b8\u00bb\u00bd\u00c0\u00c2\u00c3\u00c5\u00c6\u00c9\u00ca\u00cc\u00cc"+ + "\u00ce\u00cf\u00d3\u00d6\2\u0867\2\u009c\3\2\2\2\4\u009f\3\2\2\2\6\u00a2"+ + "\3\2\2\2\b\u0319\3\2\2\2\n\u031c\3\2\2\2\f\u0320\3\2\2\2\16\u032e\3\2"+ + "\2\2\20\u0330\3\2\2\2\22\u033e\3\2\2\2\24\u0344\3\2\2\2\26\u034f\3\2\2"+ + "\2\30\u0353\3\2\2\2\32\u0359\3\2\2\2\34\u0360\3\2\2\2\36\u0365\3\2\2\2"+ + " \u0368\3\2\2\2\"\u036c\3\2\2\2$\u036e\3\2\2\2&\u0371\3\2\2\2(\u0378\3"+ + "\2\2\2*\u037d\3\2\2\2,\u0388\3\2\2\2.\u038a\3\2\2\2\60\u038c\3\2\2\2\62"+ + "\u03a4\3\2\2\2\64\u03c8\3\2\2\2\66\u03ca\3\2\2\28\u03d2\3\2\2\2:\u03f7"+ + "\3\2\2\2<\u0429\3\2\2\2>\u0438\3\2\2\2@\u043a\3\2\2\2B\u0443\3\2\2\2D"+ + "\u0451\3\2\2\2F\u0453\3\2\2\2H\u047a\3\2\2\2J\u048a\3\2\2\2L\u048c\3\2"+ + "\2\2N\u0495\3\2\2\2P\u0497\3\2\2\2R\u04a1\3\2\2\2T\u04c9\3\2\2\2V\u04cb"+ + "\3\2\2\2X\u04d4\3\2\2\2Z\u051e\3\2\2\2\\\u0524\3\2\2\2^\u0626\3\2\2\2"+ + "`\u063b\3\2\2\2b\u0641\3\2\2\2d\u0649\3\2\2\2f\u064b\3\2\2\2h\u064d\3"+ + "\2\2\2j\u064f\3\2\2\2l\u0651\3\2\2\2n\u065b\3\2\2\2p\u065d\3\2\2\2r\u065f"+ + "\3\2\2\2t\u069b\3\2\2\2v\u06a6\3\2\2\2x\u06ac\3\2\2\2z\u06ae\3\2\2\2|"+ + "\u06b3\3\2\2\2~\u06b9\3\2\2\2\u0080\u06e8\3\2\2\2\u0082\u06f3\3\2\2\2"+ + "\u0084\u06f9\3\2\2\2\u0086\u0700\3\2\2\2\u0088\u0709\3\2\2\2\u008a\u0710"+ + "\3\2\2\2\u008c\u0716\3\2\2\2\u008e\u0718\3\2\2\2\u0090\u0723\3\2\2\2\u0092"+ + "\u072a\3\2\2\2\u0094\u072c\3\2\2\2\u0096\u0739\3\2\2\2\u0098\u073e\3\2"+ + "\2\2\u009a\u0740\3\2\2\2\u009c\u009d\5\b\5\2\u009d\u009e\7\2\2\3\u009e"+ + "\3\3\2\2\2\u009f\u00a0\5V,\2\u00a0\u00a1\7\2\2\3\u00a1\5\3\2\2\2\u00a2"+ + "\u00a3\5\"\22\2\u00a3\u00a4\7\2\2\3\u00a4\7\3\2\2\2\u00a5\u031a\5\n\6"+ + "\2\u00a6\u00a7\7\u00c9\2\2\u00a7\u031a\5\u0096L\2\u00a8\u00a9\7\u00c9"+ + "\2\2\u00a9\u00aa\5\u0096L\2\u00aa\u00ab\7\3\2\2\u00ab\u00ac\5\u0096L\2"+ + "\u00ac\u031a\3\2\2\2\u00ad\u00ae\7&\2\2\u00ae\u00b2\7\u00a7\2\2\u00af"+ + "\u00b0\7W\2\2\u00b0\u00b1\7~\2\2\u00b1\u00b3\7A\2\2\u00b2\u00af\3\2\2"+ + "\2\u00b2\u00b3\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4\u00b7\5\u008eH\2\u00b5"+ + "\u00b6\7\u00d2\2\2\u00b6\u00b8\5\24\13\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8"+ + "\3\2\2\2\u00b8\u031a\3\2\2\2\u00b9\u00ba\7:\2\2\u00ba\u00bd\7\u00a7\2"+ + "\2\u00bb\u00bc\7W\2\2\u00bc\u00be\7A\2\2\u00bd\u00bb\3\2\2\2\u00bd\u00be"+ + "\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf\u00c1\5\u008eH\2\u00c0\u00c2\t\2\2"+ + "\2\u00c1\u00c0\3\2\2\2\u00c1\u00c2\3\2\2\2\u00c2\u031a\3\2\2\2\u00c3\u00c4"+ + "\7\17\2\2\u00c4\u00c5\7\u00a7\2\2\u00c5\u00c6\5\u008eH\2\u00c6\u00c7\7"+ + "\u0097\2\2\u00c7\u00c8\7\u00bf\2\2\u00c8\u00c9\5\u0096L\2\u00c9\u031a"+ + "\3\2\2\2\u00ca\u00cb\7&\2\2\u00cb\u00cf\7\u00b7\2\2\u00cc\u00cd\7W\2\2"+ + "\u00cd\u00ce\7~\2\2\u00ce\u00d0\7A\2\2\u00cf\u00cc\3\2\2\2\u00cf\u00d0"+ + "\3\2\2\2\u00d0\u00d1\3\2\2\2\u00d1\u00d3\5\u008eH\2\u00d2\u00d4\5R*\2"+ + "\u00d3\u00d2\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4\u00d7\3\2\2\2\u00d5\u00d6"+ + "\7\"\2\2\u00d6\u00d8\5`\61\2\u00d7\u00d5\3\2\2\2\u00d7\u00d8\3\2\2\2\u00d8"+ + "\u00db\3\2\2\2\u00d9\u00da\7\u00d2\2\2\u00da\u00dc\5\24\13\2\u00db\u00d9"+ + "\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc\u00dd\3\2\2\2\u00dd\u00e3\7\24\2\2"+ + "\u00de\u00e4\5\n\6\2\u00df\u00e0\7\4\2\2\u00e0\u00e1\5\n\6\2\u00e1\u00e2"+ + "\7\5\2\2\u00e2\u00e4\3\2\2\2\u00e3\u00de\3\2\2\2\u00e3\u00df\3\2\2\2\u00e4"+ + "\u00ea\3\2\2\2\u00e5\u00e7\7\u00d2\2\2\u00e6\u00e8\7{\2\2\u00e7\u00e6"+ + "\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\u00e9\3\2\2\2\u00e9\u00eb\7/\2\2\u00ea"+ + "\u00e5\3\2\2\2\u00ea\u00eb\3\2\2\2\u00eb\u031a\3\2\2\2\u00ec\u00ed\7&"+ + "\2\2\u00ed\u00f1\7\u00b7\2\2\u00ee\u00ef\7W\2\2\u00ef\u00f0\7~\2\2\u00f0"+ + "\u00f2\7A\2\2\u00f1\u00ee\3\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\u00f3\3\2"+ + "\2\2\u00f3\u00f4\5\u008eH\2\u00f4\u00f5\7\4\2\2\u00f5\u00fa\5\16\b\2\u00f6"+ + "\u00f7\7\6\2\2\u00f7\u00f9\5\16\b\2\u00f8\u00f6\3\2\2\2\u00f9\u00fc\3"+ + "\2\2\2\u00fa\u00f8\3\2\2\2\u00fa\u00fb\3\2\2\2\u00fb\u00fd\3\2\2\2\u00fc"+ + "\u00fa\3\2\2\2\u00fd\u0100\7\5\2\2\u00fe\u00ff\7\"\2\2\u00ff\u0101\5`"+ + "\61\2\u0100\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101\u0104\3\2\2\2\u0102"+ + "\u0103\7\u00d2\2\2\u0103\u0105\5\24\13\2\u0104\u0102\3\2\2\2\u0104\u0105"+ + "\3\2\2\2\u0105\u031a\3\2\2\2\u0106\u0107\7:\2\2\u0107\u010a\7\u00b7\2"+ + "\2\u0108\u0109\7W\2\2\u0109\u010b\7A\2\2\u010a\u0108\3\2\2\2\u010a\u010b"+ + "\3\2\2\2\u010b\u010c\3\2\2\2\u010c\u031a\5\u008eH\2\u010d\u010e\7]\2\2"+ + "\u010e\u010f\7`\2\2\u010f\u0111\5\u008eH\2\u0110\u0112\5R*\2\u0111\u0110"+ + "\3\2\2\2\u0111\u0112\3\2\2\2\u0112\u0113\3\2\2\2\u0113\u0114\5\n\6\2\u0114"+ + "\u031a\3\2\2\2\u0115\u0116\7\64\2\2\u0116\u0117\7K\2\2\u0117\u011a\5\u008e"+ + "H\2\u0118\u0119\7\u00d1\2\2\u0119\u011b\5X-\2\u011a\u0118\3\2\2\2\u011a"+ + "\u011b\3\2\2\2\u011b\u031a\3\2\2\2\u011c\u011d\7\17\2\2\u011d\u0120\7"+ + "\u00b7\2\2\u011e\u011f\7W\2\2\u011f\u0121\7A\2\2\u0120\u011e\3\2\2\2\u0120"+ + "\u0121\3\2\2\2\u0121\u0122\3\2\2\2\u0122\u0123\5\u008eH\2\u0123\u0124"+ + "\7\u0097\2\2\u0124\u0125\7\u00bf\2\2\u0125\u0126\5\u008eH\2\u0126\u031a"+ + "\3\2\2\2\u0127\u0128\7\17\2\2\u0128\u012b\7\u00b7\2\2\u0129\u012a\7W\2"+ + "\2\u012a\u012c\7A\2\2\u012b\u0129\3\2\2\2\u012b\u012c\3\2\2\2\u012c\u012d"+ + "\3\2\2\2\u012d\u012e\5\u008eH\2\u012e\u012f\7\u0097\2\2\u012f\u0132\7"+ + " \2\2\u0130\u0131\7W\2\2\u0131\u0133\7A\2\2\u0132\u0130\3\2\2\2\u0132"+ + "\u0133\3\2\2\2\u0133\u0134\3\2\2\2\u0134\u0135\5\u0096L\2\u0135\u0136"+ + "\7\u00bf\2\2\u0136\u0137\5\u0096L\2\u0137\u031a\3\2\2\2\u0138\u0139\7"+ + "\17\2\2\u0139\u013c\7\u00b7\2\2\u013a\u013b\7W\2\2\u013b\u013d\7A\2\2"+ + "\u013c\u013a\3\2\2\2\u013c\u013d\3\2\2\2\u013d\u013e\3\2\2\2\u013e\u013f"+ + "\5\u008eH\2\u013f\u0140\7:\2\2\u0140\u0143\7 \2\2\u0141\u0142\7W\2\2\u0142"+ + "\u0144\7A\2\2\u0143\u0141\3\2\2\2\u0143\u0144\3\2\2\2\u0144\u0145\3\2"+ + "\2\2\u0145\u0146\5\u008eH\2\u0146\u031a\3\2\2\2\u0147\u0148\7\17\2\2\u0148"+ + "\u014b\7\u00b7\2\2\u0149\u014a\7W\2\2\u014a\u014c\7A\2\2\u014b\u0149\3"+ + "\2\2\2\u014b\u014c\3\2\2\2\u014c\u014d\3\2\2\2\u014d\u014e\5\u008eH\2"+ + "\u014e\u014f\7\f\2\2\u014f\u0153\7 \2\2\u0150\u0151\7W\2\2\u0151\u0152"+ + "\7~\2\2\u0152\u0154\7A\2\2\u0153\u0150\3\2\2\2\u0153\u0154\3\2\2\2\u0154"+ + "\u0155\3\2\2\2\u0155\u0156\5\20\t\2\u0156\u031a\3\2\2\2\u0157\u0158\7"+ + "\20\2\2\u0158\u015b\5\u008eH\2\u0159\u015a\7\u00d2\2\2\u015a\u015c\5\24"+ + "\13\2\u015b\u0159\3\2\2\2\u015b\u015c\3\2\2\2\u015c\u031a\3\2\2\2\u015d"+ + "\u015e\7&\2\2\u015e\u015f\7\u00c3\2\2\u015f\u0160\5\u008eH\2\u0160\u016d"+ + "\7\24\2\2\u0161\u0162\7\4\2\2\u0162\u0167\5\30\r\2\u0163\u0164\7\6\2\2"+ + "\u0164\u0166\5\30\r\2\u0165\u0163\3\2\2\2\u0166\u0169\3\2\2\2\u0167\u0165"+ + "\3\2\2\2\u0167\u0168\3\2\2\2\u0168\u016a\3\2\2\2\u0169\u0167\3\2\2\2\u016a"+ + "\u016b\7\5\2\2\u016b\u016e\3\2\2\2\u016c\u016e\5t;\2\u016d\u0161\3\2\2"+ + "\2\u016d\u016c\3\2\2\2\u016e\u031a\3\2\2\2\u016f\u0172\7&\2\2\u0170\u0171"+ + "\7\u0086\2\2\u0171\u0173\7\u0099\2\2\u0172\u0170\3\2\2\2\u0172\u0173\3"+ + "\2\2\2\u0173\u0174\3\2\2\2\u0174\u0175\7\u00cf\2\2\u0175\u0178\5\u008e"+ + "H\2\u0176\u0177\7\u00aa\2\2\u0177\u0179\t\3\2\2\u0178\u0176\3\2\2\2\u0178"+ + "\u0179\3\2\2\2\u0179\u017a\3\2\2\2\u017a\u017b\7\24\2\2\u017b\u017c\5"+ + "\n\6\2\u017c\u031a\3\2\2\2\u017d\u017e\7:\2\2\u017e\u0181\7\u00cf\2\2"+ + "\u017f\u0180\7W\2\2\u0180\u0182\7A\2\2\u0181\u017f\3\2\2\2\u0181\u0182"+ + "\3\2\2\2\u0182\u0183\3\2\2\2\u0183\u031a\5\u008eH\2\u0184\u0185\7&\2\2"+ + "\u0185\u0186\7r\2\2\u0186\u018a\7\u00cf\2\2\u0187\u0188\7W\2\2\u0188\u0189"+ + "\7~\2\2\u0189\u018b\7A\2\2\u018a\u0187\3\2\2\2\u018a\u018b\3\2\2\2\u018b"+ + "\u018c\3\2\2\2\u018c\u018f\5\u008eH\2\u018d\u018e\7\"\2\2\u018e\u0190"+ + "\5`\61\2\u018f\u018d\3\2\2\2\u018f\u0190\3\2\2\2\u0190\u0193\3\2\2\2\u0191"+ + "\u0192\7\u00d2\2\2\u0192\u0194\5\24\13\2\u0193\u0191\3\2\2\2\u0193\u0194"+ + "\3\2\2\2\u0194\u0195\3\2\2\2\u0195\u019b\7\24\2\2\u0196\u019c\5\n\6\2"+ + "\u0197\u0198\7\4\2\2\u0198\u0199\5\n\6\2\u0199\u019a\7\5\2\2\u019a\u019c"+ + "\3\2\2\2\u019b\u0196\3\2\2\2\u019b\u0197\3\2\2\2\u019c\u031a\3\2\2\2\u019d"+ + "\u019e\7:\2\2\u019e\u019f\7r\2\2\u019f\u01a2\7\u00cf\2\2\u01a0\u01a1\7"+ + "W\2\2\u01a1\u01a3\7A\2\2\u01a2\u01a0\3\2\2\2\u01a2\u01a3\3\2\2\2\u01a3"+ + "\u01a4\3\2\2\2\u01a4\u031a\5\u008eH\2\u01a5\u01a6\7\u0096\2\2\u01a6\u01a7"+ + "\7r\2\2\u01a7\u01a8\7\u00cf\2\2\u01a8\u01a9\5\u008eH\2\u01a9\u01aa\7\u00d1"+ + "\2\2\u01aa\u01ab\5X-\2\u01ab\u031a\3\2\2\2\u01ac\u01af\7&\2\2\u01ad\u01ae"+ + "\7\u0086\2\2\u01ae\u01b0\7\u0099\2\2\u01af\u01ad\3\2\2\2\u01af\u01b0\3"+ + "\2\2\2\u01b0\u01b2\3\2\2\2\u01b1\u01b3\7\u00ba\2\2\u01b2\u01b1\3\2\2\2"+ + "\u01b2\u01b3\3\2\2\2\u01b3\u01b4\3\2\2\2\u01b4\u01b5\7M\2\2\u01b5\u01b6"+ + "\5\u008eH\2\u01b6\u01bf\7\4\2\2\u01b7\u01bc\5\30\r\2\u01b8\u01b9\7\6\2"+ + "\2\u01b9\u01bb\5\30\r\2\u01ba\u01b8\3\2\2\2\u01bb\u01be\3\2\2\2\u01bc"+ + "\u01ba\3\2\2\2\u01bc\u01bd\3\2\2\2\u01bd\u01c0\3\2\2\2\u01be\u01bc\3\2"+ + "\2\2\u01bf\u01b7\3\2\2\2\u01bf\u01c0\3\2\2\2\u01c0\u01c1\3\2\2\2\u01c1"+ + "\u01c2\7\5\2\2\u01c2\u01c3\7\u009e\2\2\u01c3\u01c6\5t;\2\u01c4\u01c5\7"+ + "\"\2\2\u01c5\u01c7\5`\61\2\u01c6\u01c4\3\2\2\2\u01c6\u01c7\3\2\2\2\u01c7"+ + "\u01c8\3\2\2\2\u01c8\u01c9\5\32\16\2\u01c9\u01ca\5\"\22\2\u01ca\u031a"+ + "\3\2\2\2\u01cb\u01cc\7\17\2\2\u01cc\u01cd\7M\2\2\u01cd\u01cf\5\u008eH"+ + "\2\u01ce\u01d0\5r:\2\u01cf\u01ce\3\2\2\2\u01cf\u01d0\3\2\2\2\u01d0\u01d1"+ + "\3\2\2\2\u01d1\u01d2\5\36\20\2\u01d2\u031a\3\2\2\2\u01d3\u01d5\7:\2\2"+ + "\u01d4\u01d6\7\u00ba\2\2\u01d5\u01d4\3\2\2\2\u01d5\u01d6\3\2\2\2\u01d6"+ + "\u01d7\3\2\2\2\u01d7\u01da\7M\2\2\u01d8\u01d9\7W\2\2\u01d9\u01db\7A\2"+ + "\2\u01da\u01d8\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc\u01de"+ + "\5\u008eH\2\u01dd\u01df\5r:\2\u01de\u01dd\3\2\2\2\u01de\u01df\3\2\2\2"+ + "\u01df\u031a\3\2\2\2\u01e0\u01e1\7\32\2\2\u01e1\u01e2\5\u008eH\2\u01e2"+ + "\u01eb\7\4\2\2\u01e3\u01e8\5\u008aF\2\u01e4\u01e5\7\6\2\2\u01e5\u01e7"+ + "\5\u008aF\2\u01e6\u01e4\3\2\2\2\u01e7\u01ea\3\2\2\2\u01e8\u01e6\3\2\2"+ + "\2\u01e8\u01e9\3\2\2\2\u01e9\u01ec\3\2\2\2\u01ea\u01e8\3\2\2\2\u01eb\u01e3"+ + "\3\2\2\2\u01eb\u01ec\3\2\2\2\u01ec\u01ed\3\2\2\2\u01ed\u01ee\7\5\2\2\u01ee"+ + "\u031a\3\2\2\2\u01ef\u01f0\7&\2\2\u01f0\u01f1\7\u00a1\2\2\u01f1\u01f5"+ + "\5\u0096L\2\u01f2\u01f3\7\u00d2\2\2\u01f3\u01f4\7\r\2\2\u01f4\u01f6\5"+ + "\u0090I\2\u01f5\u01f2\3\2\2\2\u01f5\u01f6\3\2\2\2\u01f6\u031a\3\2\2\2"+ + "\u01f7\u01f8\7:\2\2\u01f8\u01f9\7\u00a1\2\2\u01f9\u031a\5\u0096L\2\u01fa"+ + "\u01fb\7O\2\2\u01fb\u01fc\5\u0094K\2\u01fc\u01fd\7\u00bf\2\2\u01fd\u0202"+ + "\5\u0092J\2\u01fe\u01ff\7\6\2\2\u01ff\u0201\5\u0092J\2\u0200\u01fe\3\2"+ + "\2\2\u0201\u0204\3\2\2\2\u0202\u0200\3\2\2\2\u0202\u0203\3\2\2\2\u0203"+ + "\u0208\3\2\2\2\u0204\u0202\3\2\2\2\u0205\u0206\7\u00d2\2\2\u0206\u0207"+ + "\7\r\2\2\u0207\u0209\7\u0085\2\2\u0208\u0205\3\2\2\2\u0208\u0209\3\2\2"+ + "\2\u0209\u020d\3\2\2\2\u020a\u020b\7P\2\2\u020b\u020c\7\31\2\2\u020c\u020e"+ + "\5\u0090I\2\u020d\u020a\3\2\2\2\u020d\u020e\3\2\2\2\u020e\u031a\3\2\2"+ + "\2\u020f\u0213\7\u009f\2\2\u0210\u0211\7\r\2\2\u0211\u0212\7\u0085\2\2"+ + "\u0212\u0214\7I\2\2\u0213\u0210\3\2\2\2\u0213\u0214\3\2\2\2\u0214\u0215"+ + "\3\2\2\2\u0215\u0216\5\u0094K\2\u0216\u0217\7K\2\2\u0217\u021c\5\u0092"+ + "J\2\u0218\u0219\7\6\2\2\u0219\u021b\5\u0092J\2\u021a\u0218\3\2\2\2\u021b"+ + "\u021e\3\2\2\2\u021c\u021a\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u0222\3\2"+ + "\2\2\u021e\u021c\3\2\2\2\u021f\u0220\7P\2\2\u0220\u0221\7\31\2\2\u0221"+ + "\u0223\5\u0090I\2\u0222\u021f\3\2\2\2\u0222\u0223\3\2\2\2\u0223\u031a"+ + "\3\2\2\2\u0224\u0225\7\u00ae\2\2\u0225\u0229\7\u00a1\2\2\u0226\u022a\7"+ + "\16\2\2\u0227\u022a\7|\2\2\u0228\u022a\5\u0096L\2\u0229\u0226\3\2\2\2"+ + "\u0229\u0227\3\2\2\2\u0229\u0228\3\2\2\2\u022a\u031a\3\2\2\2\u022b\u0236"+ + "\7O\2\2\u022c\u0231\5\u008cG\2\u022d\u022e\7\6\2\2\u022e\u0230\5\u008c"+ + "G\2\u022f\u022d\3\2\2\2\u0230\u0233\3\2\2\2\u0231\u022f\3\2\2\2\u0231"+ + "\u0232\3\2\2\2\u0232\u0237\3\2\2\2\u0233\u0231\3\2\2\2\u0234\u0235\7\16"+ + "\2\2\u0235\u0237\7\u0091\2\2\u0236\u022c\3\2\2\2\u0236\u0234\3\2\2\2\u0237"+ + "\u0238\3\2\2\2\u0238\u023a\7\u0083\2\2\u0239\u023b\7\u00b7\2\2\u023a\u0239"+ + "\3\2\2\2\u023a\u023b\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023d\5\u008eH"+ + "\2\u023d\u023e\7\u00bf\2\2\u023e\u0242\5\u0092J\2\u023f\u0240\7\u00d2"+ + "\2\2\u0240\u0241\7O\2\2\u0241\u0243\7\u0085\2\2\u0242\u023f\3\2\2\2\u0242"+ + "\u0243\3\2\2\2\u0243\u031a\3\2\2\2\u0244\u0248\7\u009f\2\2\u0245\u0246"+ + "\7O\2\2\u0246\u0247\7\u0085\2\2\u0247\u0249\7I\2\2\u0248\u0245\3\2\2\2"+ + "\u0248\u0249\3\2\2\2\u0249\u0254\3\2\2\2\u024a\u024f\5\u008cG\2\u024b"+ + "\u024c\7\6\2\2\u024c\u024e\5\u008cG\2\u024d\u024b\3\2\2\2\u024e\u0251"+ + "\3\2\2\2\u024f\u024d\3\2\2\2\u024f\u0250\3\2\2\2\u0250\u0255\3\2\2\2\u0251"+ + "\u024f\3\2\2\2\u0252\u0253\7\16\2\2\u0253\u0255\7\u0091\2\2\u0254\u024a"+ + "\3\2\2\2\u0254\u0252\3\2\2\2\u0255\u0256\3\2\2\2\u0256\u0258\7\u0083\2"+ + "\2\u0257\u0259\7\u00b7\2\2\u0258\u0257\3\2\2\2\u0258\u0259\3\2\2\2\u0259"+ + "\u025a\3\2\2\2\u025a\u025b\5\u008eH\2\u025b\u025c\7K\2\2\u025c\u025d\5"+ + "\u0092J\2\u025d\u031a\3\2\2\2\u025e\u025f\7\u00b0\2\2\u025f\u0265\7Q\2"+ + "\2\u0260\u0262\7\u0083\2\2\u0261\u0263\7\u00b7\2\2\u0262\u0261\3\2\2\2"+ + "\u0262\u0263\3\2\2\2\u0263\u0264\3\2\2\2\u0264\u0266\5\u008eH\2\u0265"+ + "\u0260\3\2\2\2\u0265\u0266\3\2\2\2\u0266\u031a\3\2\2\2\u0267\u0269\7B"+ + "\2\2\u0268\u026a\7\20\2\2\u0269\u0268\3\2\2\2\u0269\u026a\3\2\2\2\u026a"+ + "\u026c\3\2\2\2\u026b\u026d\7\u00ce\2\2\u026c\u026b\3\2\2\2\u026c\u026d"+ + "\3\2\2\2\u026d\u0279\3\2\2\2\u026e\u026f\7\4\2\2\u026f\u0274\5\u0084C"+ + "\2\u0270\u0271\7\6\2\2\u0271\u0273\5\u0084C\2\u0272\u0270\3\2\2\2\u0273"+ + "\u0276\3\2\2\2\u0274\u0272\3\2\2\2\u0274\u0275\3\2\2\2\u0275\u0277\3\2"+ + "\2\2\u0276\u0274\3\2\2\2\u0277\u0278\7\5\2\2\u0278\u027a\3\2\2\2\u0279"+ + "\u026e\3\2\2\2\u0279\u027a\3\2\2\2\u027a\u027b\3\2\2\2\u027b\u031a\5\b"+ + "\5\2\u027c\u027d\7\u00b0\2\2\u027d\u027e\7&\2\2\u027e\u027f\7\u00b7\2"+ + "\2\u027f\u031a\5\u008eH\2\u0280\u0281\7\u00b0\2\2\u0281\u0282\7&\2\2\u0282"+ + "\u0283\7\u00cf\2\2\u0283\u031a\5\u008eH\2\u0284\u0285\7\u00b0\2\2\u0285"+ + "\u0286\7&\2\2\u0286\u0287\7r\2\2\u0287\u0288\7\u00cf\2\2\u0288\u031a\5"+ + "\u008eH\2\u0289\u028a\7\u00b0\2\2\u028a\u028b\7&\2\2\u028b\u028c\7M\2"+ + "\2\u028c\u028e\5\u008eH\2\u028d\u028f\5r:\2\u028e\u028d\3\2\2\2\u028e"+ + "\u028f\3\2\2\2\u028f\u031a\3\2\2\2\u0290\u0291\7\u00b0\2\2\u0291\u0294"+ + "\7\u00b8\2\2\u0292\u0293\t\4\2\2\u0293\u0295\5\u008eH\2\u0294\u0292\3"+ + "\2\2\2\u0294\u0295\3\2\2\2\u0295\u029c\3\2\2\2\u0296\u0297\7l\2\2\u0297"+ + "\u029a\5`\61\2\u0298\u0299\7=\2\2\u0299\u029b\5`\61\2\u029a\u0298\3\2"+ + "\2\2\u029a\u029b\3\2\2\2\u029b\u029d\3\2\2\2\u029c\u0296\3\2\2\2\u029c"+ + "\u029d\3\2\2\2\u029d\u031a\3\2\2\2\u029e\u029f\7\u00b0\2\2\u029f\u02a2"+ + "\7\u00a8\2\2\u02a0\u02a1\t\4\2\2\u02a1\u02a3\5\u0096L\2\u02a2\u02a0\3"+ + "\2\2\2\u02a2\u02a3\3\2\2\2\u02a3\u02aa\3\2\2\2\u02a4\u02a5\7l\2\2\u02a5"+ + "\u02a8\5`\61\2\u02a6\u02a7\7=\2\2\u02a7\u02a9\5`\61\2\u02a8\u02a6\3\2"+ + "\2\2\u02a8\u02a9\3\2\2\2\u02a9\u02ab\3\2\2\2\u02aa\u02a4\3\2\2\2\u02aa"+ + "\u02ab\3\2\2\2\u02ab\u031a\3\2\2\2\u02ac\u02ad\7\u00b0\2\2\u02ad\u02b0"+ + "\7\37\2\2\u02ae\u02af\7l\2\2\u02af\u02b1\5`\61\2\u02b0\u02ae\3\2\2\2\u02b0"+ + "\u02b1\3\2\2\2\u02b1\u031a\3\2\2\2\u02b2\u02b3\7\u00b0\2\2\u02b3\u02b4"+ + "\7!\2\2\u02b4\u02b5\t\4\2\2\u02b5\u031a\5\u008eH\2\u02b6\u02b7\7\u00b0"+ + "\2\2\u02b7\u02b8\7\u00b4\2\2\u02b8\u02b9\7I\2\2\u02b9\u031a\5\u008eH\2"+ + "\u02ba\u02bb\7\u00b0\2\2\u02bb\u02bc\7\u00b4\2\2\u02bc\u02bd\7I\2\2\u02bd"+ + "\u02be\7\4\2\2\u02be\u02bf\58\35\2\u02bf\u02c0\7\5\2\2\u02c0\u031a\3\2"+ + "\2\2\u02c1\u02c3\7\u00b0\2\2\u02c2\u02c4\7)\2\2\u02c3\u02c2\3\2\2\2\u02c3"+ + "\u02c4\3\2\2\2\u02c4\u02c5\3\2\2\2\u02c5\u02c8\7\u00a2\2\2\u02c6\u02c7"+ + "\t\4\2\2\u02c7\u02c9\5\u0096L\2\u02c8\u02c6\3\2\2\2\u02c8\u02c9\3\2\2"+ + "\2\u02c9\u031a\3\2\2\2\u02ca\u02cb\7\u00b0\2\2\u02cb\u02cc\7\u00a1\2\2"+ + "\u02cc\u02cf\7Q\2\2\u02cd\u02ce\t\4\2\2\u02ce\u02d0\5\u0096L\2\u02cf\u02cd"+ + "\3\2\2\2\u02cf\u02d0\3\2\2\2\u02d0\u031a\3\2\2\2\u02d1\u02d2\7\66\2\2"+ + "\u02d2\u031a\5\u008eH\2\u02d3\u02d4\7\65\2\2\u02d4\u031a\5\u008eH\2\u02d5"+ + "\u02d6\7\u00b0\2\2\u02d6\u02dd\7N\2\2\u02d7\u02d8\7l\2\2\u02d8\u02db\5"+ + "`\61\2\u02d9\u02da\7=\2\2\u02da\u02dc\5`\61\2\u02db\u02d9\3\2\2\2\u02db"+ + "\u02dc\3\2\2\2\u02dc\u02de\3\2\2\2\u02dd\u02d7\3\2\2\2\u02dd\u02de\3\2"+ + "\2\2\u02de\u031a\3\2\2\2\u02df\u02e0\7\u00b0\2\2\u02e0\u031a\7\u00ad\2"+ + "\2\u02e1\u02e2\7\u00ae\2\2\u02e2\u02e3\7\u00ad\2\2\u02e3\u02e4\5\u008e"+ + "H\2\u02e4\u02e5\7\u00d7\2\2\u02e5\u02e6\5V,\2\u02e6\u031a\3\2\2\2\u02e7"+ + "\u02e8\7\u009a\2\2\u02e8\u02e9\7\u00ad\2\2\u02e9\u031a\5\u008eH\2\u02ea"+ + "\u02eb\7\u00b3\2\2\u02eb\u02f4\7\u00c0\2\2\u02ec\u02f1\5\u0086D\2\u02ed"+ + "\u02ee\7\6\2\2\u02ee\u02f0\5\u0086D\2\u02ef\u02ed\3\2\2\2\u02f0\u02f3"+ + "\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f1\u02f2\3\2\2\2\u02f2\u02f5\3\2\2\2\u02f3"+ + "\u02f1\3\2\2\2\u02f4\u02ec\3\2\2\2\u02f4\u02f5\3\2\2\2\u02f5\u031a\3\2"+ + "\2\2\u02f6\u02f8\7#\2\2\u02f7\u02f9\7\u00d3\2\2\u02f8\u02f7\3\2\2\2\u02f8"+ + "\u02f9\3\2\2\2\u02f9\u031a\3\2\2\2\u02fa\u02fc\7\u00a3\2\2\u02fb\u02fd"+ + "\7\u00d3\2\2\u02fc\u02fb\3\2\2\2\u02fc\u02fd\3\2\2\2\u02fd\u031a\3\2\2"+ + "\2\u02fe\u02ff\7\u0090\2\2\u02ff\u0300\5\u0096L\2\u0300\u0301\7K\2\2\u0301"+ + "\u0302\5\b\5\2\u0302\u031a\3\2\2\2\u0303\u0304\7\62\2\2\u0304\u0305\7"+ + "\u0090\2\2\u0305\u031a\5\u0096L\2\u0306\u0307\7@\2\2\u0307\u0311\5\u0096"+ + "L\2\u0308\u0309\7\u00cb\2\2\u0309\u030e\5V,\2\u030a\u030b\7\6\2\2\u030b"+ + "\u030d\5V,\2\u030c\u030a\3\2\2\2\u030d\u0310\3\2\2\2\u030e\u030c\3\2\2"+ + "\2\u030e\u030f\3\2\2\2\u030f\u0312\3\2\2\2\u0310\u030e\3\2\2\2\u0311\u0308"+ + "\3\2\2\2\u0311\u0312\3\2\2\2\u0312\u031a\3\2\2\2\u0313\u0314\7\66\2\2"+ + "\u0314\u0315\7\\\2\2\u0315\u031a\5\u0096L\2\u0316\u0317\7\66\2\2\u0317"+ + "\u0318\7\u008a\2\2\u0318\u031a\5\u0096L\2\u0319\u00a5\3\2\2\2\u0319\u00a6"+ + "\3\2\2\2\u0319\u00a8\3\2\2\2\u0319\u00ad\3\2\2\2\u0319\u00b9\3\2\2\2\u0319"+ + "\u00c3\3\2\2\2\u0319\u00ca\3\2\2\2\u0319\u00ec\3\2\2\2\u0319\u0106\3\2"+ + "\2\2\u0319\u010d\3\2\2\2\u0319\u0115\3\2\2\2\u0319\u011c\3\2\2\2\u0319"+ + "\u0127\3\2\2\2\u0319\u0138\3\2\2\2\u0319\u0147\3\2\2\2\u0319\u0157\3\2"+ + "\2\2\u0319\u015d\3\2\2\2\u0319\u016f\3\2\2\2\u0319\u017d\3\2\2\2\u0319"+ + "\u0184\3\2\2\2\u0319\u019d\3\2\2\2\u0319\u01a5\3\2\2\2\u0319\u01ac\3\2"+ + "\2\2\u0319\u01cb\3\2\2\2\u0319\u01d3\3\2\2\2\u0319\u01e0\3\2\2\2\u0319"+ + "\u01ef\3\2\2\2\u0319\u01f7\3\2\2\2\u0319\u01fa\3\2\2\2\u0319\u020f\3\2"+ + "\2\2\u0319\u0224\3\2\2\2\u0319\u022b\3\2\2\2\u0319\u0244\3\2\2\2\u0319"+ + "\u025e\3\2\2\2\u0319\u0267\3\2\2\2\u0319\u027c\3\2\2\2\u0319\u0280\3\2"+ + "\2\2\u0319\u0284\3\2\2\2\u0319\u0289\3\2\2\2\u0319\u0290\3\2\2\2\u0319"+ + "\u029e\3\2\2\2\u0319\u02ac\3\2\2\2\u0319\u02b2\3\2\2\2\u0319\u02b6\3\2"+ + "\2\2\u0319\u02ba\3\2\2\2\u0319\u02c1\3\2\2\2\u0319\u02ca\3\2\2\2\u0319"+ + "\u02d1\3\2\2\2\u0319\u02d3\3\2\2\2\u0319\u02d5\3\2\2\2\u0319\u02df\3\2"+ + "\2\2\u0319\u02e1\3\2\2\2\u0319\u02e7\3\2\2\2\u0319\u02ea\3\2\2\2\u0319"+ + "\u02f6\3\2\2\2\u0319\u02fa\3\2\2\2\u0319\u02fe\3\2\2\2\u0319\u0303\3\2"+ + "\2\2\u0319\u0306\3\2\2\2\u0319\u0313\3\2\2\2\u0319\u0316\3\2\2\2\u031a"+ + "\t\3\2\2\2\u031b\u031d\5\f\7\2\u031c\u031b\3\2\2\2\u031c\u031d\3\2\2\2"+ + "\u031d\u031e\3\2\2\2\u031e\u031f\5\60\31\2\u031f\13\3\2\2\2\u0320\u0322"+ + "\7\u00d2\2\2\u0321\u0323\7\u0095\2\2\u0322\u0321\3\2\2\2\u0322\u0323\3"+ + "\2\2\2\u0323\u0324\3\2\2\2\u0324\u0329\5@!\2\u0325\u0326\7\6\2\2\u0326"+ + "\u0328\5@!\2\u0327\u0325\3\2\2\2\u0328\u032b\3\2\2\2\u0329\u0327\3\2\2"+ + "\2\u0329\u032a\3\2\2\2\u032a\r\3\2\2\2\u032b\u0329\3\2\2\2\u032c\u032f"+ + "\5\20\t\2\u032d\u032f\5\22\n\2\u032e\u032c\3\2\2\2\u032e\u032d\3\2\2\2"+ + "\u032f\17\3\2\2\2\u0330\u0331\5\u0096L\2\u0331\u0334\5t;\2\u0332\u0333"+ + "\7~\2\2\u0333\u0335\7\177\2\2\u0334\u0332\3\2\2\2\u0334\u0335\3\2\2\2"+ + "\u0335\u0338\3\2\2\2\u0336\u0337\7\"\2\2\u0337\u0339\5`\61\2\u0338\u0336"+ + "\3\2\2\2\u0338\u0339\3\2\2\2\u0339\u033c\3\2\2\2\u033a\u033b\7\u00d2\2"+ + "\2\u033b\u033d\5\24\13\2\u033c\u033a\3\2\2\2\u033c\u033d\3\2\2\2\u033d"+ + "\21\3\2\2\2\u033e\u033f\7l\2\2\u033f\u0342\5\u008eH\2\u0340\u0341\t\5"+ + "\2\2\u0341\u0343\7\u0092\2\2\u0342\u0340\3\2\2\2\u0342\u0343\3\2\2\2\u0343"+ + "\23\3\2\2\2\u0344\u0345\7\4\2\2\u0345\u034a\5\26\f\2\u0346\u0347\7\6\2"+ + "\2\u0347\u0349\5\26\f\2\u0348\u0346\3\2\2\2\u0349\u034c\3\2\2\2\u034a"+ + "\u0348\3\2\2\2\u034a\u034b\3\2\2\2\u034b\u034d\3\2\2\2\u034c\u034a\3\2"+ + "\2\2\u034d\u034e\7\5\2\2\u034e\25\3\2\2\2\u034f\u0350\5\u0096L\2\u0350"+ + "\u0351\7\u00d7\2\2\u0351\u0352\5V,\2\u0352\27\3\2\2\2\u0353\u0354\5\u0096"+ + "L\2\u0354\u0355\5t;\2\u0355\31\3\2\2\2\u0356\u0358\5\34\17\2\u0357\u0356"+ + "\3\2\2\2\u0358\u035b\3\2\2\2\u0359\u0357\3\2\2\2\u0359\u035a\3\2\2\2\u035a"+ + "\33\3\2\2\2\u035b\u0359\3\2\2\2\u035c\u035d\7g\2\2\u035d\u0361\5(\25\2"+ + "\u035e\u0361\5*\26\2\u035f\u0361\5,\27\2\u0360\u035c\3\2\2\2\u0360\u035e"+ + "\3\2\2\2\u0360\u035f\3\2\2\2\u0361\35\3\2\2\2\u0362\u0364\5 \21\2\u0363"+ + "\u0362\3\2\2\2\u0364\u0367\3\2\2\2\u0365\u0363\3\2\2\2\u0365\u0366\3\2"+ + "\2\2\u0366\37\3\2\2\2\u0367\u0365\3\2\2\2\u0368\u0369\5,\27\2\u0369!\3"+ + "\2\2\2\u036a\u036d\5$\23\2\u036b\u036d\5&\24\2\u036c\u036a\3\2\2\2\u036c"+ + "\u036b\3\2\2\2\u036d#\3\2\2\2\u036e\u036f\7\u009d\2\2\u036f\u0370\5V,"+ + "\2\u0370%\3\2\2\2\u0371\u0374\7D\2\2\u0372\u0373\7u\2\2\u0373\u0375\5"+ + ".\30\2\u0374\u0372\3\2\2\2\u0374\u0375\3\2\2\2\u0375\'\3\2\2\2\u0376\u0379"+ + "\7\u00b2\2\2\u0377\u0379\5\u0096L\2\u0378\u0376\3\2\2\2\u0378\u0377\3"+ + "\2\2\2\u0379)\3\2\2\2\u037a\u037e\7\67\2\2\u037b\u037c\7~\2\2\u037c\u037e"+ + "\7\67\2\2\u037d\u037a\3\2\2\2\u037d\u037b\3\2\2\2\u037e+\3\2\2\2\u037f"+ + "\u0380\7\u009e\2\2\u0380\u0381\7\177\2\2\u0381\u0382\7\u0083\2\2\u0382"+ + "\u0383\7\177\2\2\u0383\u0389\7\\\2\2\u0384\u0385\7\33\2\2\u0385\u0386"+ + "\7\u0083\2\2\u0386\u0387\7\177\2\2\u0387\u0389\7\\\2\2\u0388\u037f\3\2"+ + "\2\2\u0388\u0384\3\2\2\2\u0389-\3\2\2\2\u038a\u038b\5\u0096L\2\u038b/"+ + "\3\2\2\2\u038c\u0397\5\62\32\2\u038d\u038e\7\u0087\2\2\u038e\u038f\7\31"+ + "\2\2\u038f\u0394\5\66\34\2\u0390\u0391\7\6\2\2\u0391\u0393\5\66\34\2\u0392"+ + "\u0390\3\2\2\2\u0393\u0396\3\2\2\2\u0394\u0392\3\2\2\2\u0394\u0395\3\2"+ + "\2\2\u0395\u0398\3\2\2\2\u0396\u0394\3\2\2\2\u0397\u038d\3\2\2\2\u0397"+ + "\u0398\3\2\2\2\u0398\u039e\3\2\2\2\u0399\u039a\7\u0082\2\2\u039a\u039c"+ + "\7\u00e6\2\2\u039b\u039d\t\6\2\2\u039c\u039b\3\2\2\2\u039c\u039d\3\2\2"+ + "\2\u039d\u039f\3\2\2\2\u039e\u0399\3\2\2\2\u039e\u039f\3\2\2\2\u039f\u03a2"+ + "\3\2\2\2\u03a0\u03a1\7m\2\2\u03a1\u03a3\t\7\2\2\u03a2\u03a0\3\2\2\2\u03a2"+ + "\u03a3\3\2\2\2\u03a3\61\3\2\2\2\u03a4\u03a5\b\32\1\2\u03a5\u03a6\5\64"+ + "\33\2\u03a6\u03b5\3\2\2\2\u03a7\u03a8\f\4\2\2\u03a8\u03aa\7^\2\2\u03a9"+ + "\u03ab\5B\"\2\u03aa\u03a9\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab\u03ac\3\2"+ + "\2\2\u03ac\u03b4\5\62\32\5\u03ad\u03ae\f\3\2\2\u03ae\u03b0\t\b\2\2\u03af"+ + "\u03b1\5B\"\2\u03b0\u03af\3\2\2\2\u03b0\u03b1\3\2\2\2\u03b1\u03b2\3\2"+ + "\2\2\u03b2\u03b4\5\62\32\4\u03b3\u03a7\3\2\2\2\u03b3\u03ad\3\2\2\2\u03b4"+ + "\u03b7\3\2\2\2\u03b5\u03b3\3\2\2\2\u03b5\u03b6\3\2\2\2\u03b6\63\3\2\2"+ + "\2\u03b7\u03b5\3\2\2\2\u03b8\u03c9\58\35\2\u03b9\u03ba\7\u00b7\2\2\u03ba"+ + "\u03c9\5\u008eH\2\u03bb\u03bc\7\u00cd\2\2\u03bc\u03c1\5V,\2\u03bd\u03be"+ + "\7\6\2\2\u03be\u03c0\5V,\2\u03bf\u03bd\3\2\2\2\u03c0\u03c3\3\2\2\2\u03c1"+ + "\u03bf\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2\u03c9\3\2\2\2\u03c3\u03c1\3\2"+ + "\2\2\u03c4\u03c5\7\4\2\2\u03c5\u03c6\5\60\31\2\u03c6\u03c7\7\5\2\2\u03c7"+ + "\u03c9\3\2\2\2\u03c8\u03b8\3\2\2\2\u03c8\u03b9\3\2\2\2\u03c8\u03bb\3\2"+ + "\2\2\u03c8\u03c4\3\2\2\2\u03c9\65\3\2\2\2\u03ca\u03cc\5V,\2\u03cb\u03cd"+ + "\t\t\2\2\u03cc\u03cb\3\2\2\2\u03cc\u03cd\3\2\2\2\u03cd\u03d0\3\2\2\2\u03ce"+ + "\u03cf\7\u0081\2\2\u03cf\u03d1\t\n\2\2\u03d0\u03ce\3\2\2\2\u03d0\u03d1"+ + "\3\2\2\2\u03d1\67\3\2\2\2\u03d2\u03d4\7\u00ab\2\2\u03d3\u03d5\5B\"\2\u03d4"+ + "\u03d3\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u03d6\3\2\2\2\u03d6\u03db\5D"+ + "#\2\u03d7\u03d8\7\6\2\2\u03d8\u03da\5D#\2\u03d9\u03d7\3\2\2\2\u03da\u03dd"+ + "\3\2\2\2\u03db\u03d9\3\2\2\2\u03db\u03dc\3\2\2\2\u03dc\u03e7\3\2\2\2\u03dd"+ + "\u03db\3\2\2\2\u03de\u03df\7K\2\2\u03df\u03e4\5F$\2\u03e0\u03e1\7\6\2"+ + "\2\u03e1\u03e3\5F$\2\u03e2\u03e0\3\2\2\2\u03e3\u03e6\3\2\2\2\u03e4\u03e2"+ + "\3\2\2\2\u03e4\u03e5\3\2\2\2\u03e5\u03e8\3\2\2\2\u03e6\u03e4\3\2\2\2\u03e7"+ + "\u03de\3\2\2\2\u03e7\u03e8\3\2\2\2\u03e8\u03eb\3\2\2\2\u03e9\u03ea\7\u00d1"+ + "\2\2\u03ea\u03ec\5X-\2\u03eb\u03e9\3\2\2\2\u03eb\u03ec\3\2\2\2\u03ec\u03f0"+ + "\3\2\2\2\u03ed\u03ee\7S\2\2\u03ee\u03ef\7\31\2\2\u03ef\u03f1\5:\36\2\u03f0"+ + "\u03ed\3\2\2\2\u03f0\u03f1\3\2\2\2\u03f1\u03f4\3\2\2\2\u03f2\u03f3\7U"+ + "\2\2\u03f3\u03f5\5X-\2\u03f4\u03f2\3\2\2\2\u03f4\u03f5\3\2\2\2\u03f59"+ + "\3\2\2\2\u03f6\u03f8\5B\"\2\u03f7\u03f6\3\2\2\2\u03f7\u03f8\3\2\2\2\u03f8"+ + "\u03f9\3\2\2\2\u03f9\u03fe\5<\37\2\u03fa\u03fb\7\6\2\2\u03fb\u03fd\5<"+ + "\37\2\u03fc\u03fa\3\2\2\2\u03fd\u0400\3\2\2\2\u03fe\u03fc\3\2\2\2\u03fe"+ + "\u03ff\3\2\2\2\u03ff;\3\2\2\2\u0400\u03fe\3\2\2\2\u0401\u042a\5> \2\u0402"+ + "\u0403\7\u00a4\2\2\u0403\u040c\7\4\2\2\u0404\u0409\5V,\2\u0405\u0406\7"+ + "\6\2\2\u0406\u0408\5V,\2\u0407\u0405\3\2\2\2\u0408\u040b\3\2\2\2\u0409"+ + "\u0407\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040d\3\2\2\2\u040b\u0409\3\2"+ + "\2\2\u040c\u0404\3\2\2\2\u040c\u040d\3\2\2\2\u040d\u040e\3\2\2\2\u040e"+ + "\u042a\7\5\2\2\u040f\u0410\7(\2\2\u0410\u0419\7\4\2\2\u0411\u0416\5V,"+ + "\2\u0412\u0413\7\6\2\2\u0413\u0415\5V,\2\u0414\u0412\3\2\2\2\u0415\u0418"+ + "\3\2\2\2\u0416\u0414\3\2\2\2\u0416\u0417\3\2\2\2\u0417\u041a\3\2\2\2\u0418"+ + "\u0416\3\2\2\2\u0419\u0411\3\2\2\2\u0419\u041a\3\2\2\2\u041a\u041b\3\2"+ + "\2\2\u041b\u042a\7\5\2\2\u041c\u041d\7T\2\2\u041d\u041e\7\u00af\2\2\u041e"+ + "\u041f\7\4\2\2\u041f\u0424\5> \2\u0420\u0421\7\6\2\2\u0421\u0423\5> \2"+ + "\u0422\u0420\3\2\2\2\u0423\u0426\3\2\2\2\u0424\u0422\3\2\2\2\u0424\u0425"+ + "\3\2\2\2\u0425\u0427\3\2\2\2\u0426\u0424\3\2\2\2\u0427\u0428\7\5\2\2\u0428"+ + "\u042a\3\2\2\2\u0429\u0401\3\2\2\2\u0429\u0402\3\2\2\2\u0429\u040f\3\2"+ + "\2\2\u0429\u041c\3\2\2\2\u042a=\3\2\2\2\u042b\u0434\7\4\2\2\u042c\u0431"+ + "\5V,\2\u042d\u042e\7\6\2\2\u042e\u0430\5V,\2\u042f\u042d\3\2\2\2\u0430"+ + "\u0433\3\2\2\2\u0431\u042f\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0435\3\2"+ + "\2\2\u0433\u0431\3\2\2\2\u0434\u042c\3\2\2\2\u0434\u0435\3\2\2\2\u0435"+ + "\u0436\3\2\2\2\u0436\u0439\7\5\2\2\u0437\u0439\5V,\2\u0438\u042b\3\2\2"+ + "\2\u0438\u0437\3\2\2\2\u0439?\3\2\2\2\u043a\u043c\5\u0096L\2\u043b\u043d"+ + "\5R*\2\u043c\u043b\3\2\2\2\u043c\u043d\3\2\2\2\u043d\u043e\3\2\2\2\u043e"+ + "\u043f\7\24\2\2\u043f\u0440\7\4\2\2\u0440\u0441\5\n\6\2\u0441\u0442\7"+ + "\5\2\2\u0442A\3\2\2\2\u0443\u0444\t\13\2\2\u0444C\3\2\2\2\u0445\u044a"+ + "\5V,\2\u0446\u0448\7\24\2\2\u0447\u0446\3\2\2\2\u0447\u0448\3\2\2\2\u0448"+ + "\u0449\3\2\2\2\u0449\u044b\5\u0096L\2\u044a\u0447\3\2\2\2\u044a\u044b"+ + "\3\2\2\2\u044b\u0452\3\2\2\2\u044c\u044d\5\u008eH\2\u044d\u044e\7\3\2"+ + "\2\u044e\u044f\7\u00df\2\2\u044f\u0452\3\2\2\2\u0450\u0452\7\u00df\2\2"+ + "\u0451\u0445\3\2\2\2\u0451\u044c\3\2\2\2\u0451\u0450\3\2\2\2\u0452E\3"+ + "\2\2\2\u0453\u0454\b$\1\2\u0454\u0455\5L\'\2\u0455\u0468\3\2\2\2\u0456"+ + "\u0464\f\4\2\2\u0457\u0458\7\'\2\2\u0458\u0459\7f\2\2\u0459\u0465\5L\'"+ + "\2\u045a\u045b\5H%\2\u045b\u045c\7f\2\2\u045c\u045d\5F$\2\u045d\u045e"+ + "\5J&\2\u045e\u0465\3\2\2\2\u045f\u0460\7v\2\2\u0460\u0461\5H%\2\u0461"+ + "\u0462\7f\2\2\u0462\u0463\5L\'\2\u0463\u0465\3\2\2\2\u0464\u0457\3\2\2"+ + "\2\u0464\u045a\3\2\2\2\u0464\u045f\3\2\2\2\u0465\u0467\3\2\2\2\u0466\u0456"+ + "\3\2\2\2\u0467\u046a\3\2\2\2\u0468\u0466\3\2\2\2\u0468\u0469\3\2\2\2\u0469"+ + "G\3\2\2\2\u046a\u0468\3\2\2\2\u046b\u046d\7[\2\2\u046c\u046b\3\2\2\2\u046c"+ + "\u046d\3\2\2\2\u046d\u047b\3\2\2\2\u046e\u0470\7j\2\2\u046f\u0471\7\u0089"+ + "\2\2\u0470\u046f\3\2\2\2\u0470\u0471\3\2\2\2\u0471\u047b\3\2\2\2\u0472"+ + "\u0474\7\u00a0\2\2\u0473\u0475\7\u0089\2\2\u0474\u0473\3\2\2\2\u0474\u0475"+ + "\3\2\2\2\u0475\u047b\3\2\2\2\u0476\u0478\7L\2\2\u0477\u0479\7\u0089\2"+ + "\2\u0478\u0477\3\2\2\2\u0478\u0479\3\2\2\2\u0479\u047b\3\2\2\2\u047a\u046c"+ + "\3\2\2\2\u047a\u046e\3\2\2\2\u047a\u0472\3\2\2\2\u047a\u0476\3\2\2\2\u047b"+ + "I\3\2\2\2\u047c\u047d\7\u0083\2\2\u047d\u048b\5X-\2\u047e\u047f\7\u00cb"+ + "\2\2\u047f\u0480\7\4\2\2\u0480\u0485\5\u0096L\2\u0481\u0482\7\6\2\2\u0482"+ + "\u0484\5\u0096L\2\u0483\u0481\3\2\2\2\u0484\u0487\3\2\2\2\u0485\u0483"+ + "\3\2\2\2\u0485\u0486\3\2\2\2\u0486\u0488\3\2\2\2\u0487\u0485\3\2\2\2\u0488"+ + "\u0489\7\5\2\2\u0489\u048b\3\2\2\2\u048a\u047c\3\2\2\2\u048a\u047e\3\2"+ + "\2\2\u048bK\3\2\2\2\u048c\u0493\5P)\2\u048d\u048e\7\u00b9\2\2\u048e\u048f"+ + "\5N(\2\u048f\u0490\7\4\2\2\u0490\u0491\5V,\2\u0491\u0492\7\5\2\2\u0492"+ + "\u0494\3\2\2\2\u0493\u048d\3\2\2\2\u0493\u0494\3\2\2\2\u0494M\3\2\2\2"+ + "\u0495\u0496\t\f\2\2\u0496O\3\2\2\2\u0497\u049f\5T+\2\u0498\u049a\7\24"+ + "\2\2\u0499\u0498\3\2\2\2\u0499\u049a\3\2\2\2\u049a\u049b\3\2\2\2\u049b"+ + "\u049d\5\u0096L\2\u049c\u049e\5R*\2\u049d\u049c\3\2\2\2\u049d\u049e\3"+ + "\2\2\2\u049e\u04a0\3\2\2\2\u049f\u0499\3\2\2\2\u049f\u04a0\3\2\2\2\u04a0"+ + "Q\3\2\2\2\u04a1\u04a2\7\4\2\2\u04a2\u04a7\5\u0096L\2\u04a3\u04a4\7\6\2"+ + "\2\u04a4\u04a6\5\u0096L\2\u04a5\u04a3\3\2\2\2\u04a6\u04a9\3\2\2\2\u04a7"+ + "\u04a5\3\2\2\2\u04a7\u04a8\3\2\2\2\u04a8\u04aa\3\2\2\2\u04a9\u04a7\3\2"+ + "\2\2\u04aa\u04ab\7\5\2\2\u04abS\3\2\2\2\u04ac\u04ca\5\u008eH\2\u04ad\u04ae"+ + "\7\4\2\2\u04ae\u04af\5\n\6\2\u04af\u04b0\7\5\2\2\u04b0\u04ca\3\2\2\2\u04b1"+ + "\u04b2\7\u00c8\2\2\u04b2\u04b3\7\4\2\2\u04b3\u04b8\5V,\2\u04b4\u04b5\7"+ + "\6\2\2\u04b5\u04b7\5V,\2\u04b6\u04b4\3\2\2\2\u04b7\u04ba\3\2\2\2\u04b8"+ + "\u04b6\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9\u04bb\3\2\2\2\u04ba\u04b8\3\2"+ + "\2\2\u04bb\u04be\7\5\2\2\u04bc\u04bd\7\u00d2\2\2\u04bd\u04bf\7\u0088\2"+ + "\2\u04be\u04bc\3\2\2\2\u04be\u04bf\3\2\2\2\u04bf\u04ca\3\2\2\2\u04c0\u04c1"+ + "\7i\2\2\u04c1\u04c2\7\4\2\2\u04c2\u04c3\5\n\6\2\u04c3\u04c4\7\5\2\2\u04c4"+ + "\u04ca\3\2\2\2\u04c5\u04c6\7\4\2\2\u04c6\u04c7\5F$\2\u04c7\u04c8\7\5\2"+ + "\2\u04c8\u04ca\3\2\2\2\u04c9\u04ac\3\2\2\2\u04c9\u04ad\3\2\2\2\u04c9\u04b1"+ + "\3\2\2\2\u04c9\u04c0\3\2\2\2\u04c9\u04c5\3\2\2\2\u04caU\3\2\2\2\u04cb"+ + "\u04cc\5X-\2\u04ccW\3\2\2\2\u04cd\u04ce\b-\1\2\u04ce\u04d0\5\\/\2\u04cf"+ + "\u04d1\5Z.\2\u04d0\u04cf\3\2\2\2\u04d0\u04d1\3\2\2\2\u04d1\u04d5\3\2\2"+ + "\2\u04d2\u04d3\7~\2\2\u04d3\u04d5\5X-\5\u04d4\u04cd\3\2\2\2\u04d4\u04d2"+ + "\3\2\2\2\u04d5\u04de\3\2\2\2\u04d6\u04d7\f\4\2\2\u04d7\u04d8\7\21\2\2"+ + "\u04d8\u04dd\5X-\5\u04d9\u04da\f\3\2\2\u04da\u04db\7\u0086\2\2\u04db\u04dd"+ + "\5X-\4\u04dc\u04d6\3\2\2\2\u04dc\u04d9\3\2\2\2\u04dd\u04e0\3\2\2\2\u04de"+ + "\u04dc\3\2\2\2\u04de\u04df\3\2\2\2\u04dfY\3\2\2\2\u04e0\u04de\3\2\2\2"+ + "\u04e1\u04e2\5f\64\2\u04e2\u04e3\5\\/\2\u04e3\u051f\3\2\2\2\u04e4\u04e5"+ + "\5f\64\2\u04e5\u04e6\5h\65\2\u04e6\u04e7\7\4\2\2\u04e7\u04e8\5\n\6\2\u04e8"+ + "\u04e9\7\5\2\2\u04e9\u051f\3\2\2\2\u04ea\u04ec\7~\2\2\u04eb\u04ea\3\2"+ + "\2\2\u04eb\u04ec\3\2\2\2\u04ec\u04ed\3\2\2\2\u04ed\u04ee\7\30\2\2\u04ee"+ + "\u04ef\5\\/\2\u04ef\u04f0\7\21\2\2\u04f0\u04f1\5\\/\2\u04f1\u051f\3\2"+ + "\2\2\u04f2\u04f4\7~\2\2\u04f3\u04f2\3\2\2\2\u04f3\u04f4\3\2\2\2\u04f4"+ + "\u04f5\3\2\2\2\u04f5\u04f6\7Y\2\2\u04f6\u04f7\7\4\2\2\u04f7\u04fc\5V,"+ + "\2\u04f8\u04f9\7\6\2\2\u04f9\u04fb\5V,\2\u04fa\u04f8\3\2\2\2\u04fb\u04fe"+ + "\3\2\2\2\u04fc\u04fa\3\2\2\2\u04fc\u04fd\3\2\2\2\u04fd\u04ff\3\2\2\2\u04fe"+ + "\u04fc\3\2\2\2\u04ff\u0500\7\5\2\2\u0500\u051f\3\2\2\2\u0501\u0503\7~"+ + "\2\2\u0502\u0501\3\2\2\2\u0502\u0503\3\2\2\2\u0503\u0504\3\2\2\2\u0504"+ + "\u0505\7Y\2\2\u0505\u0506\7\4\2\2\u0506\u0507\5\n\6\2\u0507\u0508\7\5"+ + "\2\2\u0508\u051f\3\2\2\2\u0509\u050b\7~\2\2\u050a\u0509\3\2\2\2\u050a"+ + "\u050b\3\2\2\2\u050b\u050c\3\2\2\2\u050c\u050d\7l\2\2\u050d\u0510\5\\"+ + "/\2\u050e\u050f\7=\2\2\u050f\u0511\5\\/\2\u0510\u050e\3\2\2\2\u0510\u0511"+ + "\3\2\2\2\u0511\u051f\3\2\2\2\u0512\u0514\7c\2\2\u0513\u0515\7~\2\2\u0514"+ + "\u0513\3\2\2\2\u0514\u0515\3\2\2\2\u0515\u0516\3\2\2\2\u0516\u051f\7\177"+ + "\2\2\u0517\u0519\7c\2\2\u0518\u051a\7~\2\2\u0519\u0518\3\2\2\2\u0519\u051a"+ + "\3\2\2\2\u051a\u051b\3\2\2\2\u051b\u051c\78\2\2\u051c\u051d\7K\2\2\u051d"+ + "\u051f\5\\/\2\u051e\u04e1\3\2\2\2\u051e\u04e4\3\2\2\2\u051e\u04eb\3\2"+ + "\2\2\u051e\u04f3\3\2\2\2\u051e\u0502\3\2\2\2\u051e\u050a\3\2\2\2\u051e"+ + "\u0512\3\2\2\2\u051e\u0517\3\2\2\2\u051f[\3\2\2\2\u0520\u0521\b/\1\2\u0521"+ + "\u0525\5^\60\2\u0522\u0523\t\r\2\2\u0523\u0525\5\\/\6\u0524\u0520\3\2"+ + "\2\2\u0524\u0522\3\2\2\2\u0525\u0534\3\2\2\2\u0526\u0527\f\5\2\2\u0527"+ + "\u0528\t\16\2\2\u0528\u0533\5\\/\6\u0529\u052a\f\4\2\2\u052a\u052b\t\r"+ + "\2\2\u052b\u0533\5\\/\5\u052c\u052d\f\3\2\2\u052d\u052e\7\u00e2\2\2\u052e"+ + "\u0533\5\\/\4\u052f\u0530\f\7\2\2\u0530\u0531\7\26\2\2\u0531\u0533\5d"+ + "\63\2\u0532\u0526\3\2\2\2\u0532\u0529\3\2\2\2\u0532\u052c\3\2\2\2\u0532"+ + "\u052f\3\2\2\2\u0533\u0536\3\2\2\2\u0534\u0532\3\2\2\2\u0534\u0535\3\2"+ + "\2\2\u0535]\3\2\2\2\u0536\u0534\3\2\2\2\u0537\u0538\b\60\1\2\u0538\u0627"+ + "\7\177\2\2\u0539\u0627\5l\67\2\u053a\u053b\5\u0096L\2\u053b\u053c\5`\61"+ + "\2\u053c\u0627\3\2\2\2\u053d\u053e\7\u00ef\2\2\u053e\u0627\5`\61\2\u053f"+ + "\u0627\5\u0098M\2\u0540\u0627\5j\66\2\u0541\u0627\5`\61\2\u0542\u0627"+ + "\7\u00e5\2\2\u0543\u0627\7\7\2\2\u0544\u0545\7\u008e\2\2\u0545\u0546\7"+ + "\4\2\2\u0546\u0547\5\\/\2\u0547\u0548\7Y\2\2\u0548\u0549\5\\/\2\u0549"+ + "\u054a\7\5\2\2\u054a\u0627\3\2\2\2\u054b\u054c\7\4\2\2\u054c\u054f\5V"+ + ",\2\u054d\u054e\7\6\2\2\u054e\u0550\5V,\2\u054f\u054d\3\2\2\2\u0550\u0551"+ + "\3\2\2\2\u0551\u054f\3\2\2\2\u0551\u0552\3\2\2\2\u0552\u0553\3\2\2\2\u0553"+ + "\u0554\7\5\2\2\u0554\u0627\3\2\2\2\u0555\u0556\7\u00a5\2\2\u0556\u0557"+ + "\7\4\2\2\u0557\u055c\5V,\2\u0558\u0559\7\6\2\2\u0559\u055b\5V,\2\u055a"+ + "\u0558\3\2\2\2\u055b\u055e\3\2\2\2\u055c\u055a\3\2\2\2\u055c\u055d\3\2"+ + "\2\2\u055d\u055f\3\2\2\2\u055e\u055c\3\2\2\2\u055f\u0560\7\5\2\2\u0560"+ + "\u0627\3\2\2\2\u0561\u0562\5\u008eH\2\u0562\u0563\7\4\2\2\u0563\u0564"+ + "\7\u00df\2\2\u0564\u0566\7\5\2\2\u0565\u0567\5|?\2\u0566\u0565\3\2\2\2"+ + "\u0566\u0567\3\2\2\2\u0567\u0569\3\2\2\2\u0568\u056a\5~@\2\u0569\u0568"+ + "\3\2\2\2\u0569\u056a\3\2\2\2\u056a\u0627\3\2\2\2\u056b\u056c\5\u008eH"+ + "\2\u056c\u0578\7\4\2\2\u056d\u056f\5B\"\2\u056e\u056d\3\2\2\2\u056e\u056f"+ + "\3\2\2\2\u056f\u0570\3\2\2\2\u0570\u0575\5V,\2\u0571\u0572\7\6\2\2\u0572"+ + "\u0574\5V,\2\u0573\u0571\3\2\2\2\u0574\u0577\3\2\2\2\u0575\u0573\3\2\2"+ + "\2\u0575\u0576\3\2\2\2\u0576\u0579\3\2\2\2\u0577\u0575\3\2\2\2\u0578\u056e"+ + "\3\2\2\2\u0578\u0579\3\2\2\2\u0579\u0584\3\2\2\2\u057a\u057b\7\u0087\2"+ + "\2\u057b\u057c\7\31\2\2\u057c\u0581\5\66\34\2\u057d\u057e\7\6\2\2\u057e"+ + "\u0580\5\66\34\2\u057f\u057d\3\2\2\2\u0580\u0583\3\2\2\2\u0581\u057f\3"+ + "\2\2\2\u0581\u0582\3\2\2\2\u0582\u0585\3\2\2\2\u0583\u0581\3\2\2\2\u0584"+ + "\u057a\3\2\2\2\u0584\u0585\3\2\2\2\u0585\u0586\3\2\2\2\u0586\u0588\7\5"+ + "\2\2\u0587\u0589\5|?\2\u0588\u0587\3\2\2\2\u0588\u0589\3\2\2\2\u0589\u058e"+ + "\3\2\2\2\u058a\u058c\5b\62\2\u058b\u058a\3\2\2\2\u058b\u058c\3\2\2\2\u058c"+ + "\u058d\3\2\2\2\u058d\u058f\5~@\2\u058e\u058b\3\2\2\2\u058e\u058f\3\2\2"+ + "\2\u058f\u0627\3\2\2\2\u0590\u0591\5\u0096L\2\u0591\u0592\7\b\2\2\u0592"+ + "\u0593\5V,\2\u0593\u0627\3\2\2\2\u0594\u059d\7\4\2\2\u0595\u059a\5\u0096"+ + "L\2\u0596\u0597\7\6\2\2\u0597\u0599\5\u0096L\2\u0598\u0596\3\2\2\2\u0599"+ + "\u059c\3\2\2\2\u059a\u0598\3\2\2\2\u059a\u059b\3\2\2\2\u059b\u059e\3\2"+ + "\2\2\u059c\u059a\3\2\2\2\u059d\u0595\3\2\2\2\u059d\u059e\3\2\2\2\u059e"+ + "\u059f\3\2\2\2\u059f\u05a0\7\5\2\2\u05a0\u05a1\7\b\2\2\u05a1\u0627\5V"+ + ",\2\u05a2\u05a3\7\4\2\2\u05a3\u05a4\5\n\6\2\u05a4\u05a5\7\5\2\2\u05a5"+ + "\u0627\3\2\2\2\u05a6\u05a7\7A\2\2\u05a7\u05a8\7\4\2\2\u05a8\u05a9\5\n"+ + "\6\2\u05a9\u05aa\7\5\2\2\u05aa\u0627\3\2\2\2\u05ab\u05ac\7\35\2\2\u05ac"+ + "\u05ae\5\\/\2\u05ad\u05af\5z>\2\u05ae\u05ad\3\2\2\2\u05af\u05b0\3\2\2"+ + "\2\u05b0\u05ae\3\2\2\2\u05b0\u05b1\3\2\2\2\u05b1\u05b4\3\2\2\2\u05b2\u05b3"+ + "\7;\2\2\u05b3\u05b5\5V,\2\u05b4\u05b2\3\2\2\2\u05b4\u05b5\3\2\2\2\u05b5"+ + "\u05b6\3\2\2\2\u05b6\u05b7\7<\2\2\u05b7\u0627\3\2\2\2\u05b8\u05ba\7\35"+ + "\2\2\u05b9\u05bb\5z>\2\u05ba\u05b9\3\2\2\2\u05bb\u05bc\3\2\2\2\u05bc\u05ba"+ + "\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05c0\3\2\2\2\u05be\u05bf\7;\2\2\u05bf"+ + "\u05c1\5V,\2\u05c0\u05be\3\2\2\2\u05c0\u05c1\3\2\2\2\u05c1\u05c2\3\2\2"+ + "\2\u05c2\u05c3\7<\2\2\u05c3\u0627\3\2\2\2\u05c4\u05c5\7\36\2\2\u05c5\u05c6"+ + "\7\4\2\2\u05c6\u05c7\5V,\2\u05c7\u05c8\7\24\2\2\u05c8\u05c9\5t;\2\u05c9"+ + "\u05ca\7\5\2\2\u05ca\u0627\3\2\2\2\u05cb\u05cc\7\u00c2\2\2\u05cc\u05cd"+ + "\7\4\2\2\u05cd\u05ce\5V,\2\u05ce\u05cf\7\24\2\2\u05cf\u05d0\5t;\2\u05d0"+ + "\u05d1\7\5\2\2\u05d1\u0627\3\2\2\2\u05d2\u05d3\7\23\2\2\u05d3\u05dc\7"+ + "\t\2\2\u05d4\u05d9\5V,\2\u05d5\u05d6\7\6\2\2\u05d6\u05d8\5V,\2\u05d7\u05d5"+ + "\3\2\2\2\u05d8\u05db\3\2\2\2\u05d9\u05d7\3\2\2\2\u05d9\u05da\3\2\2\2\u05da"+ + "\u05dd\3\2\2\2\u05db\u05d9\3\2\2\2\u05dc\u05d4\3\2\2\2\u05dc\u05dd\3\2"+ + "\2\2\u05dd\u05de\3\2\2\2\u05de\u0627\7\n\2\2\u05df\u0627\5\u0096L\2\u05e0"+ + "\u0627\7*\2\2\u05e1\u05e5\7,\2\2\u05e2\u05e3\7\4\2\2\u05e3\u05e4\7\u00e6"+ + "\2\2\u05e4\u05e6\7\5\2\2\u05e5\u05e2\3\2\2\2\u05e5\u05e6\3\2\2\2\u05e6"+ + "\u0627\3\2\2\2\u05e7\u05eb\7-\2\2\u05e8\u05e9\7\4\2\2\u05e9\u05ea\7\u00e6"+ + "\2\2\u05ea\u05ec\7\5\2\2\u05eb\u05e8\3\2\2\2\u05eb\u05ec\3\2\2\2\u05ec"+ + "\u0627\3\2\2\2\u05ed\u05f1\7n\2\2\u05ee\u05ef\7\4\2\2\u05ef\u05f0\7\u00e6"+ + "\2\2\u05f0\u05f2\7\5\2\2\u05f1\u05ee\3\2\2\2\u05f1\u05f2\3\2\2\2\u05f2"+ + "\u0627\3\2\2\2\u05f3\u05f7\7o\2\2\u05f4\u05f5\7\4\2\2\u05f5\u05f6\7\u00e6"+ + "\2\2\u05f6\u05f8\7\5\2\2\u05f7\u05f4\3\2\2\2\u05f7\u05f8\3\2\2\2\u05f8"+ + "\u0627\3\2\2\2\u05f9\u0627\7.\2\2\u05fa\u05fb\7\u00b5\2\2\u05fb\u05fc"+ + "\7\4\2\2\u05fc\u05fd\5\\/\2\u05fd\u05fe\7K\2\2\u05fe\u0601\5\\/\2\u05ff"+ + "\u0600\7I\2\2\u0600\u0602\5\\/\2\u0601\u05ff\3\2\2\2\u0601\u0602\3\2\2"+ + "\2\u0602\u0603\3\2\2\2\u0603\u0604\7\5\2\2\u0604\u0627\3\2\2\2\u0605\u0606"+ + "\7}\2\2\u0606\u0607\7\4\2\2\u0607\u060a\5\\/\2\u0608\u0609\7\6\2\2\u0609"+ + "\u060b\5p9\2\u060a\u0608\3\2\2\2\u060a\u060b\3\2\2\2\u060b\u060c\3\2\2"+ + "\2\u060c\u060d\7\5\2\2\u060d\u0627\3\2\2\2\u060e\u060f\7C\2\2\u060f\u0610"+ + "\7\4\2\2\u0610\u0611\5\u0096L\2\u0611\u0612\7K\2\2\u0612\u0613\5\\/\2"+ + "\u0613\u0614\7\5\2\2\u0614\u0627\3\2\2\2\u0615\u0616\7\4\2\2\u0616\u0617"+ + "\5V,\2\u0617\u0618\7\5\2\2\u0618\u0627\3\2\2\2\u0619\u061a\7T\2\2\u061a"+ + "\u0623\7\4\2\2\u061b\u0620\5\u008eH\2\u061c\u061d\7\6\2\2\u061d\u061f"+ + "\5\u008eH\2\u061e\u061c\3\2\2\2\u061f\u0622\3\2\2\2\u0620\u061e\3\2\2"+ + "\2\u0620\u0621\3\2\2\2\u0621\u0624\3\2\2\2\u0622\u0620\3\2\2\2\u0623\u061b"+ + "\3\2\2\2\u0623\u0624\3\2\2\2\u0624\u0625\3\2\2\2\u0625\u0627\7\5\2\2\u0626"+ + "\u0537\3\2\2\2\u0626\u0539\3\2\2\2\u0626\u053a\3\2\2\2\u0626\u053d\3\2"+ + "\2\2\u0626\u053f\3\2\2\2\u0626\u0540\3\2\2\2\u0626\u0541\3\2\2\2\u0626"+ + "\u0542\3\2\2\2\u0626\u0543\3\2\2\2\u0626\u0544\3\2\2\2\u0626\u054b\3\2"+ + "\2\2\u0626\u0555\3\2\2\2\u0626\u0561\3\2\2\2\u0626\u056b\3\2\2\2\u0626"+ + "\u0590\3\2\2\2\u0626\u0594\3\2\2\2\u0626\u05a2\3\2\2\2\u0626\u05a6\3\2"+ + "\2\2\u0626\u05ab\3\2\2\2\u0626\u05b8\3\2\2\2\u0626\u05c4\3\2\2\2\u0626"+ + "\u05cb\3\2\2\2\u0626\u05d2\3\2\2\2\u0626\u05df\3\2\2\2\u0626\u05e0\3\2"+ + "\2\2\u0626\u05e1\3\2\2\2\u0626\u05e7\3\2\2\2\u0626\u05ed\3\2\2\2\u0626"+ + "\u05f3\3\2\2\2\u0626\u05f9\3\2\2\2\u0626\u05fa\3\2\2\2\u0626\u0605\3\2"+ + "\2\2\u0626\u060e\3\2\2\2\u0626\u0615\3\2\2\2\u0626\u0619\3\2\2\2\u0627"+ + "\u0632\3\2\2\2\u0628\u0629\f\20\2\2\u0629\u062a\7\t\2\2\u062a\u062b\5"+ + "\\/\2\u062b\u062c\7\n\2\2\u062c\u0631\3\2\2\2\u062d\u062e\f\16\2\2\u062e"+ + "\u062f\7\3\2\2\u062f\u0631\5\u0096L\2\u0630\u0628\3\2\2\2\u0630\u062d"+ + "\3\2\2\2\u0631\u0634\3\2\2\2\u0632\u0630\3\2\2\2\u0632\u0633\3\2\2\2\u0633"+ + "_\3\2\2\2\u0634\u0632\3\2\2\2\u0635\u063c\7\u00e3\2\2\u0636\u0639\7\u00e4"+ + "\2\2\u0637\u0638\7\u00c4\2\2\u0638\u063a\7\u00e3\2\2\u0639\u0637\3\2\2"+ + "\2\u0639\u063a\3\2\2\2\u063a\u063c\3\2\2\2\u063b\u0635\3\2\2\2\u063b\u0636"+ + "\3\2\2\2\u063ca\3\2\2\2\u063d\u063e\7X\2\2\u063e\u0642\7\u0081\2\2\u063f"+ + "\u0640\7\u009b\2\2\u0640\u0642\7\u0081\2\2\u0641\u063d\3\2\2\2\u0641\u063f"+ + "\3\2\2\2\u0642c\3\2\2\2\u0643\u0644\7\u00bd\2\2\u0644\u0645\7\u00d6\2"+ + "\2\u0645\u064a\5l\67\2\u0646\u0647\7\u00bd\2\2\u0647\u0648\7\u00d6\2\2"+ + "\u0648\u064a\5`\61\2\u0649\u0643\3\2\2\2\u0649\u0646\3\2\2\2\u064ae\3"+ + "\2\2\2\u064b\u064c\t\17\2\2\u064cg\3\2\2\2\u064d\u064e\t\20\2\2\u064e"+ + "i\3\2\2\2\u064f\u0650\t\21\2\2\u0650k\3\2\2\2\u0651\u0653\7_\2\2\u0652"+ + "\u0654\t\r\2\2\u0653\u0652\3\2\2\2\u0653\u0654\3\2\2\2\u0654\u0655\3\2"+ + "\2\2\u0655\u0656\5`\61\2\u0656\u0659\5n8\2\u0657\u0658\7\u00bf\2\2\u0658"+ + "\u065a\5n8\2\u0659\u0657\3\2\2\2\u0659\u065a\3\2\2\2\u065am\3\2\2\2\u065b"+ + "\u065c\t\22\2\2\u065co\3\2\2\2\u065d\u065e\t\23\2\2\u065eq\3\2\2\2\u065f"+ + "\u0668\7\4\2\2\u0660\u0665\5t;\2\u0661\u0662\7\6\2\2\u0662\u0664\5t;\2"+ + "\u0663\u0661\3\2\2\2\u0664\u0667\3\2\2\2\u0665\u0663\3\2\2\2\u0665\u0666"+ + "\3\2\2\2\u0666\u0669\3\2\2\2\u0667\u0665\3\2\2\2\u0668\u0660\3\2\2\2\u0668"+ + "\u0669\3\2\2\2\u0669\u066a\3\2\2\2\u066a\u066b\7\5\2\2\u066bs\3\2\2\2"+ + "\u066c\u066d\b;\1\2\u066d\u066e\7\23\2\2\u066e\u066f\7\u00d9\2\2\u066f"+ + "\u0670\5t;\2\u0670\u0671\7\u00db\2\2\u0671\u069c\3\2\2\2\u0672\u0673\7"+ + "q\2\2\u0673\u0674\7\u00d9\2\2\u0674\u0675\5t;\2\u0675\u0676\7\6\2\2\u0676"+ + "\u0677\5t;\2\u0677\u0678\7\u00db\2\2\u0678\u069c\3\2\2\2\u0679\u067a\7"+ + "\u00a5\2\2\u067a\u067b\7\4\2\2\u067b\u067c\5\u0096L\2\u067c\u0683\5t;"+ + "\2\u067d\u067e\7\6\2\2\u067e\u067f\5\u0096L\2\u067f\u0680\5t;\2\u0680"+ + "\u0682\3\2\2\2\u0681\u067d\3\2\2\2\u0682\u0685\3\2\2\2\u0683\u0681\3\2"+ + "\2\2\u0683\u0684\3\2\2\2\u0684\u0686\3\2\2\2\u0685\u0683\3\2\2\2\u0686"+ + "\u0687\7\5\2\2\u0687\u069c\3\2\2\2\u0688\u0694\5x=\2\u0689\u068a\7\4\2"+ + "\2\u068a\u068f\5v<\2\u068b\u068c\7\6\2\2\u068c\u068e\5v<\2\u068d\u068b"+ + "\3\2\2\2\u068e\u0691\3\2\2\2\u068f\u068d\3\2\2\2\u068f\u0690\3\2\2\2\u0690"+ + "\u0692\3\2\2\2\u0691\u068f\3\2\2\2\u0692\u0693\7\5\2\2\u0693\u0695\3\2"+ + "\2\2\u0694\u0689\3\2\2\2\u0694\u0695\3\2\2\2\u0695\u069c\3\2\2\2\u0696"+ + "\u0697\7_\2\2\u0697\u0698\5n8\2\u0698\u0699\7\u00bf\2\2\u0699\u069a\5"+ + "n8\2\u069a\u069c\3\2\2\2\u069b\u066c\3\2\2\2\u069b\u0672\3\2\2\2\u069b"+ + "\u0679\3\2\2\2\u069b\u0688\3\2\2\2\u069b\u0696\3\2\2\2\u069c\u06a1\3\2"+ + "\2\2\u069d\u069e\f\b\2\2\u069e\u06a0\7\23\2\2\u069f\u069d\3\2\2\2\u06a0"+ + "\u06a3\3\2\2\2\u06a1\u069f\3\2\2\2\u06a1\u06a2\3\2\2\2\u06a2u\3\2\2\2"+ + "\u06a3\u06a1\3\2\2\2\u06a4\u06a7\7\u00e6\2\2\u06a5\u06a7\5t;\2\u06a6\u06a4"+ + "\3\2\2\2\u06a6\u06a5\3\2\2\2\u06a7w\3\2\2\2\u06a8\u06ad\7\u00ed\2\2\u06a9"+ + "\u06ad\7\u00ee\2\2\u06aa\u06ad\7\u00ef\2\2\u06ab\u06ad\5\u008eH\2\u06ac"+ + "\u06a8\3\2\2\2\u06ac\u06a9\3\2\2\2\u06ac\u06aa\3\2\2\2\u06ac\u06ab\3\2"+ + "\2\2\u06ady\3\2\2\2\u06ae\u06af\7\u00d0\2\2\u06af\u06b0\5V,\2\u06b0\u06b1"+ + "\7\u00bc\2\2\u06b1\u06b2\5V,\2\u06b2{\3\2\2\2\u06b3\u06b4\7F\2\2\u06b4"+ + "\u06b5\7\4\2\2\u06b5\u06b6\7\u00d1\2\2\u06b6\u06b7\5X-\2\u06b7\u06b8\7"+ + "\5\2\2\u06b8}\3\2\2\2\u06b9\u06ba\7\u008b\2\2\u06ba\u06c5\7\4\2\2\u06bb"+ + "\u06bc\7\u008c\2\2\u06bc\u06bd\7\31\2\2\u06bd\u06c2\5V,\2\u06be\u06bf"+ + "\7\6\2\2\u06bf\u06c1\5V,\2\u06c0\u06be\3\2\2\2\u06c1\u06c4\3\2\2\2\u06c2"+ + "\u06c0\3\2\2\2\u06c2\u06c3\3\2\2\2\u06c3\u06c6\3\2\2\2\u06c4\u06c2\3\2"+ + "\2\2\u06c5\u06bb\3\2\2\2\u06c5\u06c6\3\2\2\2\u06c6\u06d1\3\2\2\2\u06c7"+ + "\u06c8\7\u0087\2\2\u06c8\u06c9\7\31\2\2\u06c9\u06ce\5\66\34\2\u06ca\u06cb"+ + "\7\6\2\2\u06cb\u06cd\5\66\34\2\u06cc\u06ca\3\2\2\2\u06cd\u06d0\3\2\2\2"+ + "\u06ce\u06cc\3\2\2\2\u06ce\u06cf\3\2\2\2\u06cf\u06d2\3\2\2\2\u06d0\u06ce"+ + "\3\2\2\2\u06d1\u06c7\3\2\2\2\u06d1\u06d2\3\2\2\2\u06d2\u06d4\3\2\2\2\u06d3"+ + "\u06d5\5\u0080A\2\u06d4\u06d3\3\2\2\2\u06d4\u06d5\3\2\2\2\u06d5\u06d6"+ + "\3\2\2\2\u06d6\u06d7\7\5\2\2\u06d7\177\3\2\2\2\u06d8\u06d9\7\u0093\2\2"+ + "\u06d9\u06e9\5\u0082B\2\u06da\u06db\7\u00a6\2\2\u06db\u06e9\5\u0082B\2"+ + "\u06dc\u06dd\7\u0093\2\2\u06dd\u06de\7\30\2\2\u06de\u06df\5\u0082B\2\u06df"+ + "\u06e0\7\21\2\2\u06e0\u06e1\5\u0082B\2\u06e1\u06e9\3\2\2\2\u06e2\u06e3"+ + "\7\u00a6\2\2\u06e3\u06e4\7\30\2\2\u06e4\u06e5\5\u0082B\2\u06e5\u06e6\7"+ + "\21\2\2\u06e6\u06e7\5\u0082B\2\u06e7\u06e9\3\2\2\2\u06e8\u06d8\3\2\2\2"+ + "\u06e8\u06da\3\2\2\2\u06e8\u06dc\3\2\2\2\u06e8\u06e2\3\2\2\2\u06e9\u0081"+ + "\3\2\2\2\u06ea\u06eb\7\u00c5\2\2\u06eb\u06f4\7\u008f\2\2\u06ec\u06ed\7"+ + "\u00c5\2\2\u06ed\u06f4\7H\2\2\u06ee\u06ef\7)\2\2\u06ef\u06f4\7\u00a5\2"+ + "\2\u06f0\u06f1\5V,\2\u06f1\u06f2\t\24\2\2\u06f2\u06f4\3\2\2\2\u06f3\u06ea"+ + "\3\2\2\2\u06f3\u06ec\3\2\2\2\u06f3\u06ee\3\2\2\2\u06f3\u06f0\3\2\2\2\u06f4"+ + "\u0083\3\2\2\2\u06f5\u06f6\7J\2\2\u06f6\u06fa\t\25\2\2\u06f7\u06f8\7\u00c3"+ + "\2\2\u06f8\u06fa\t\26\2\2\u06f9\u06f5\3\2\2\2\u06f9\u06f7\3\2\2\2\u06fa"+ + "\u0085\3\2\2\2\u06fb\u06fc\7d\2\2\u06fc\u06fd\7k\2\2\u06fd\u0701\5\u0088"+ + "E\2\u06fe\u06ff\7\u0094\2\2\u06ff\u0701\t\27\2\2\u0700\u06fb\3\2\2\2\u0700"+ + "\u06fe\3\2\2\2\u0701\u0087\3\2\2\2\u0702\u0703\7\u0094\2\2\u0703\u070a"+ + "\7\u00c6\2\2\u0704\u0705\7\u0094\2\2\u0705\u070a\7$\2\2\u0706\u0707\7"+ + "\u0098\2\2\u0707\u070a\7\u0094\2\2\u0708\u070a\7\u00ac\2\2\u0709\u0702"+ + "\3\2\2\2\u0709\u0704\3\2\2\2\u0709\u0706\3\2\2\2\u0709\u0708\3\2\2\2\u070a"+ + "\u0089\3\2\2\2\u070b\u0711\5V,\2\u070c\u070d\5\u0096L\2\u070d\u070e\7"+ + "\13\2\2\u070e\u070f\5V,\2\u070f\u0711\3\2\2\2\u0710\u070b\3\2\2\2\u0710"+ + "\u070c\3\2\2\2\u0711\u008b\3\2\2\2\u0712\u0717\7\u00ab\2\2\u0713\u0717"+ + "\7\64\2\2\u0714\u0717\7]\2\2\u0715\u0717\5\u0096L\2\u0716\u0712\3\2\2"+ + "\2\u0716\u0713\3\2\2\2\u0716\u0714\3\2\2\2\u0716\u0715\3\2\2\2\u0717\u008d"+ + "\3\2\2\2\u0718\u071d\5\u0096L\2\u0719\u071a\7\3\2\2\u071a\u071c\5\u0096"+ + "L\2\u071b\u0719\3\2\2\2\u071c\u071f\3\2\2\2\u071d\u071b\3\2\2\2\u071d"+ + "\u071e\3\2\2\2\u071e\u008f\3\2\2\2\u071f\u071d\3\2\2\2\u0720\u0724\7."+ + "\2\2\u0721\u0724\7+\2\2\u0722\u0724\5\u0092J\2\u0723\u0720\3\2\2\2\u0723"+ + "\u0721\3\2\2\2\u0723\u0722\3\2\2\2\u0724\u0091\3\2\2\2\u0725\u0726\7\u00ca"+ + "\2\2\u0726\u072b\5\u0096L\2\u0727\u0728\7\u00a1\2\2\u0728\u072b\5\u0096"+ + "L\2\u0729\u072b\5\u0096L\2\u072a\u0725\3\2\2\2\u072a\u0727\3\2\2\2\u072a"+ + "\u0729\3\2\2\2\u072b\u0093\3\2\2\2\u072c\u0731\5\u0096L\2\u072d\u072e"+ + "\7\6\2\2\u072e\u0730\5\u0096L\2\u072f\u072d\3\2\2\2\u0730\u0733\3\2\2"+ + "\2\u0731\u072f\3\2\2\2\u0731\u0732\3\2\2\2\u0732\u0095\3\2\2\2\u0733\u0731"+ + "\3\2\2\2\u0734\u073a\7\u00e9\2\2\u0735\u073a\7\u00eb\2\2\u0736\u073a\5"+ + "\u009aN\2\u0737\u073a\7\u00ec\2\2\u0738\u073a\7\u00ea\2\2\u0739\u0734"+ + "\3\2\2\2\u0739\u0735\3\2\2\2\u0739\u0736\3\2\2\2\u0739\u0737\3\2\2\2\u0739"+ + "\u0738\3\2\2\2\u073a\u0097\3\2\2\2\u073b\u073f\7\u00e7\2\2\u073c\u073f"+ + "\7\u00e8\2\2\u073d\u073f\7\u00e6\2\2\u073e\u073b\3\2\2\2\u073e\u073c\3"+ + "\2\2\2\u073e\u073d\3\2\2\2\u073f\u0099\3\2\2\2\u0740\u0741\t\30\2\2\u0741"+ + "\u009b\3\2\2\2\u00f0\u00b2\u00b7\u00bd\u00c1\u00cf\u00d3\u00d7\u00db\u00e3"+ + "\u00e7\u00ea\u00f1\u00fa\u0100\u0104\u010a\u0111\u011a\u0120\u012b\u0132"+ + "\u013c\u0143\u014b\u0153\u015b\u0167\u016d\u0172\u0178\u0181\u018a\u018f"+ + "\u0193\u019b\u01a2\u01af\u01b2\u01bc\u01bf\u01c6\u01cf\u01d5\u01da\u01de"+ + "\u01e8\u01eb\u01f5\u0202\u0208\u020d\u0213\u021c\u0222\u0229\u0231\u0236"+ + "\u023a\u0242\u0248\u024f\u0254\u0258\u0262\u0265\u0269\u026c\u0274\u0279"+ + "\u028e\u0294\u029a\u029c\u02a2\u02a8\u02aa\u02b0\u02c3\u02c8\u02cf\u02db"+ + "\u02dd\u02f1\u02f4\u02f8\u02fc\u030e\u0311\u0319\u031c\u0322\u0329\u032e"+ + "\u0334\u0338\u033c\u0342\u034a\u0359\u0360\u0365\u036c\u0374\u0378\u037d"+ + "\u0388\u0394\u0397\u039c\u039e\u03a2\u03aa\u03b0\u03b3\u03b5\u03c1\u03c8"+ + "\u03cc\u03d0\u03d4\u03db\u03e4\u03e7\u03eb\u03f0\u03f4\u03f7\u03fe\u0409"+ + "\u040c\u0416\u0419\u0424\u0429\u0431\u0434\u0438\u043c\u0447\u044a\u0451"+ + "\u0464\u0468\u046c\u0470\u0474\u0478\u047a\u0485\u048a\u0493\u0499\u049d"+ + "\u049f\u04a7\u04b8\u04be\u04c9\u04d0\u04d4\u04dc\u04de\u04eb\u04f3\u04fc"+ + "\u0502\u050a\u0510\u0514\u0519\u051e\u0524\u0532\u0534\u0551\u055c\u0566"+ + "\u0569\u056e\u0575\u0578\u0581\u0584\u0588\u058b\u058e\u059a\u059d\u05b0"+ + "\u05b4\u05bc\u05c0\u05d9\u05dc\u05e5\u05eb\u05f1\u05f7\u0601\u060a\u0620"+ + "\u0623\u0626\u0630\u0632\u0639\u063b\u0641\u0649\u0653\u0659\u0665\u0668"+ + "\u0683\u068f\u0694\u069b\u06a1\u06a6\u06ac\u06c2\u06c5\u06ce\u06d1\u06d4"+ + "\u06e8\u06f3\u06f9\u0700\u0709\u0710\u0716\u071d\u0723\u072a\u0731\u0739"+ + "\u073e"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlVisitor.java new file mode 100644 index 0000000..60fd888 --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlVisitor.java @@ -0,0 +1,1400 @@ +// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.presto; +import org.antlr.v4.runtime.tree.ParseTreeVisitor; + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by {@link PrestoSqlParser}. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public interface PrestoSqlVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by {@link PrestoSqlParser#singleStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSingleStatement(PrestoSqlParser.SingleStatementContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#standaloneExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#standaloneRoutineBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx); + /** + * Visit a parse tree produced by the {@code statementDefault} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx); + /** + * Visit a parse tree produced by the {@code use} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUse(PrestoSqlParser.UseContext ctx); + /** + * Visit a parse tree produced by the {@code createSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx); + /** + * Visit a parse tree produced by the {@code dropSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropSchema(PrestoSqlParser.DropSchemaContext ctx); + /** + * Visit a parse tree produced by the {@code renameSchema} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx); + /** + * Visit a parse tree produced by the {@code createTableAsSelect} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx); + /** + * Visit a parse tree produced by the {@code createTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateTable(PrestoSqlParser.CreateTableContext ctx); + /** + * Visit a parse tree produced by the {@code dropTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropTable(PrestoSqlParser.DropTableContext ctx); + /** + * Visit a parse tree produced by the {@code insertInto} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInsertInto(PrestoSqlParser.InsertIntoContext ctx); + /** + * Visit a parse tree produced by the {@code delete} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDelete(PrestoSqlParser.DeleteContext ctx); + /** + * Visit a parse tree produced by the {@code renameTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRenameTable(PrestoSqlParser.RenameTableContext ctx); + /** + * Visit a parse tree produced by the {@code renameColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRenameColumn(PrestoSqlParser.RenameColumnContext ctx); + /** + * Visit a parse tree produced by the {@code dropColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropColumn(PrestoSqlParser.DropColumnContext ctx); + /** + * Visit a parse tree produced by the {@code addColumn} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAddColumn(PrestoSqlParser.AddColumnContext ctx); + /** + * Visit a parse tree produced by the {@code analyze} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnalyze(PrestoSqlParser.AnalyzeContext ctx); + /** + * Visit a parse tree produced by the {@code createType} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateType(PrestoSqlParser.CreateTypeContext ctx); + /** + * Visit a parse tree produced by the {@code createView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateView(PrestoSqlParser.CreateViewContext ctx); + /** + * Visit a parse tree produced by the {@code dropView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropView(PrestoSqlParser.DropViewContext ctx); + /** + * Visit a parse tree produced by the {@code createMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx); + /** + * Visit a parse tree produced by the {@code dropMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx); + /** + * Visit a parse tree produced by the {@code refreshMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx); + /** + * Visit a parse tree produced by the {@code createFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx); + /** + * Visit a parse tree produced by the {@code alterFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx); + /** + * Visit a parse tree produced by the {@code dropFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropFunction(PrestoSqlParser.DropFunctionContext ctx); + /** + * Visit a parse tree produced by the {@code call} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCall(PrestoSqlParser.CallContext ctx); + /** + * Visit a parse tree produced by the {@code createRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreateRole(PrestoSqlParser.CreateRoleContext ctx); + /** + * Visit a parse tree produced by the {@code dropRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDropRole(PrestoSqlParser.DropRoleContext ctx); + /** + * Visit a parse tree produced by the {@code grantRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrantRoles(PrestoSqlParser.GrantRolesContext ctx); + /** + * Visit a parse tree produced by the {@code revokeRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx); + /** + * Visit a parse tree produced by the {@code setRole} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSetRole(PrestoSqlParser.SetRoleContext ctx); + /** + * Visit a parse tree produced by the {@code grant} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrant(PrestoSqlParser.GrantContext ctx); + /** + * Visit a parse tree produced by the {@code revoke} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRevoke(PrestoSqlParser.RevokeContext ctx); + /** + * Visit a parse tree produced by the {@code showGrants} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowGrants(PrestoSqlParser.ShowGrantsContext ctx); + /** + * Visit a parse tree produced by the {@code explain} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplain(PrestoSqlParser.ExplainContext ctx); + /** + * Visit a parse tree produced by the {@code showCreateTable} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx); + /** + * Visit a parse tree produced by the {@code showCreateView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx); + /** + * Visit a parse tree produced by the {@code showCreateMaterializedView} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx); + /** + * Visit a parse tree produced by the {@code showCreateFunction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx); + /** + * Visit a parse tree produced by the {@code showTables} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowTables(PrestoSqlParser.ShowTablesContext ctx); + /** + * Visit a parse tree produced by the {@code showSchemas} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx); + /** + * Visit a parse tree produced by the {@code showCatalogs} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx); + /** + * Visit a parse tree produced by the {@code showColumns} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowColumns(PrestoSqlParser.ShowColumnsContext ctx); + /** + * Visit a parse tree produced by the {@code showStats} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowStats(PrestoSqlParser.ShowStatsContext ctx); + /** + * Visit a parse tree produced by the {@code showStatsForQuery} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx); + /** + * Visit a parse tree produced by the {@code showRoles} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowRoles(PrestoSqlParser.ShowRolesContext ctx); + /** + * Visit a parse tree produced by the {@code showRoleGrants} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx); + /** + * Visit a parse tree produced by the {@code showFunctions} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx); + /** + * Visit a parse tree produced by the {@code showSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShowSession(PrestoSqlParser.ShowSessionContext ctx); + /** + * Visit a parse tree produced by the {@code setSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSetSession(PrestoSqlParser.SetSessionContext ctx); + /** + * Visit a parse tree produced by the {@code resetSession} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitResetSession(PrestoSqlParser.ResetSessionContext ctx); + /** + * Visit a parse tree produced by the {@code startTransaction} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStartTransaction(PrestoSqlParser.StartTransactionContext ctx); + /** + * Visit a parse tree produced by the {@code commit} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCommit(PrestoSqlParser.CommitContext ctx); + /** + * Visit a parse tree produced by the {@code rollback} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback(PrestoSqlParser.RollbackContext ctx); + /** + * Visit a parse tree produced by the {@code prepare} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrepare(PrestoSqlParser.PrepareContext ctx); + /** + * Visit a parse tree produced by the {@code deallocate} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeallocate(PrestoSqlParser.DeallocateContext ctx); + /** + * Visit a parse tree produced by the {@code execute} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExecute(PrestoSqlParser.ExecuteContext ctx); + /** + * Visit a parse tree produced by the {@code describeInput} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDescribeInput(PrestoSqlParser.DescribeInputContext ctx); + /** + * Visit a parse tree produced by the {@code describeOutput} + * labeled alternative in {@link PrestoSqlParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#query}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuery(PrestoSqlParser.QueryContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#with}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith(PrestoSqlParser.WithContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#tableElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTableElement(PrestoSqlParser.TableElementContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#columnDefinition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#likeClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLikeClause(PrestoSqlParser.LikeClauseContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#properties}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitProperties(PrestoSqlParser.PropertiesContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#property}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitProperty(PrestoSqlParser.PropertyContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#sqlParameterDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#routineCharacteristics}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#routineCharacteristic}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristics}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristic}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#routineBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#returnStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#externalBodyReference}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#language}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLanguage(PrestoSqlParser.LanguageContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#determinism}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeterminism(PrestoSqlParser.DeterminismContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#nullCallClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#externalRoutineName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#queryNoWith}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx); + /** + * Visit a parse tree produced by the {@code queryTermDefault} + * labeled alternative in {@link PrestoSqlParser#queryTerm}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx); + /** + * Visit a parse tree produced by the {@code setOperation} + * labeled alternative in {@link PrestoSqlParser#queryTerm}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSetOperation(PrestoSqlParser.SetOperationContext ctx); + /** + * Visit a parse tree produced by the {@code queryPrimaryDefault} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx); + /** + * Visit a parse tree produced by the {@code table} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTable(PrestoSqlParser.TableContext ctx); + /** + * Visit a parse tree produced by the {@code inlineTable} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInlineTable(PrestoSqlParser.InlineTableContext ctx); + /** + * Visit a parse tree produced by the {@code subquery} + * labeled alternative in {@link PrestoSqlParser#queryPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSubquery(PrestoSqlParser.SubqueryContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#sortItem}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSortItem(PrestoSqlParser.SortItemContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#querySpecification}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#groupBy}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGroupBy(PrestoSqlParser.GroupByContext ctx); + /** + * Visit a parse tree produced by the {@code singleGroupingSet} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx); + /** + * Visit a parse tree produced by the {@code rollup} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollup(PrestoSqlParser.RollupContext ctx); + /** + * Visit a parse tree produced by the {@code cube} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCube(PrestoSqlParser.CubeContext ctx); + /** + * Visit a parse tree produced by the {@code multipleGroupingSets} + * labeled alternative in {@link PrestoSqlParser#groupingElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#groupingSet}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGroupingSet(PrestoSqlParser.GroupingSetContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#namedQuery}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamedQuery(PrestoSqlParser.NamedQueryContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#setQuantifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx); + /** + * Visit a parse tree produced by the {@code selectSingle} + * labeled alternative in {@link PrestoSqlParser#selectItem}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelectSingle(PrestoSqlParser.SelectSingleContext ctx); + /** + * Visit a parse tree produced by the {@code selectAll} + * labeled alternative in {@link PrestoSqlParser#selectItem}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelectAll(PrestoSqlParser.SelectAllContext ctx); + /** + * Visit a parse tree produced by the {@code relationDefault} + * labeled alternative in {@link PrestoSqlParser#relation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx); + /** + * Visit a parse tree produced by the {@code joinRelation} + * labeled alternative in {@link PrestoSqlParser#relation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoinRelation(PrestoSqlParser.JoinRelationContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#joinType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoinType(PrestoSqlParser.JoinTypeContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#joinCriteria}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#sampledRelation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSampledRelation(PrestoSqlParser.SampledRelationContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#sampleType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSampleType(PrestoSqlParser.SampleTypeContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#aliasedRelation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#columnAliases}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx); + /** + * Visit a parse tree produced by the {@code tableName} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTableName(PrestoSqlParser.TableNameContext ctx); + /** + * Visit a parse tree produced by the {@code subqueryRelation} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx); + /** + * Visit a parse tree produced by the {@code unnest} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnnest(PrestoSqlParser.UnnestContext ctx); + /** + * Visit a parse tree produced by the {@code lateral} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLateral(PrestoSqlParser.LateralContext ctx); + /** + * Visit a parse tree produced by the {@code parenthesizedRelation} + * labeled alternative in {@link PrestoSqlParser#relationPrimary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpression(PrestoSqlParser.ExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code logicalNot} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLogicalNot(PrestoSqlParser.LogicalNotContext ctx); + /** + * Visit a parse tree produced by the {@code predicated} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPredicated(PrestoSqlParser.PredicatedContext ctx); + /** + * Visit a parse tree produced by the {@code logicalBinary} + * labeled alternative in {@link PrestoSqlParser#booleanExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx); + /** + * Visit a parse tree produced by the {@code comparison} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitComparison(PrestoSqlParser.ComparisonContext ctx); + /** + * Visit a parse tree produced by the {@code quantifiedComparison} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx); + /** + * Visit a parse tree produced by the {@code between} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBetween(PrestoSqlParser.BetweenContext ctx); + /** + * Visit a parse tree produced by the {@code inList} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInList(PrestoSqlParser.InListContext ctx); + /** + * Visit a parse tree produced by the {@code inSubquery} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInSubquery(PrestoSqlParser.InSubqueryContext ctx); + /** + * Visit a parse tree produced by the {@code like} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLike(PrestoSqlParser.LikeContext ctx); + /** + * Visit a parse tree produced by the {@code nullPredicate} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNullPredicate(PrestoSqlParser.NullPredicateContext ctx); + /** + * Visit a parse tree produced by the {@code distinctFrom} + * labeled alternative in {@link PrestoSqlParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx); + /** + * Visit a parse tree produced by the {@code valueExpressionDefault} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx); + /** + * Visit a parse tree produced by the {@code concatenation} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConcatenation(PrestoSqlParser.ConcatenationContext ctx); + /** + * Visit a parse tree produced by the {@code arithmeticBinary} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx); + /** + * Visit a parse tree produced by the {@code arithmeticUnary} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx); + /** + * Visit a parse tree produced by the {@code atTimeZone} + * labeled alternative in {@link PrestoSqlParser#valueExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx); + /** + * Visit a parse tree produced by the {@code dereference} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDereference(PrestoSqlParser.DereferenceContext ctx); + /** + * Visit a parse tree produced by the {@code typeConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx); + /** + * Visit a parse tree produced by the {@code specialDateTimeFunction} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx); + /** + * Visit a parse tree produced by the {@code substring} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSubstring(PrestoSqlParser.SubstringContext ctx); + /** + * Visit a parse tree produced by the {@code cast} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCast(PrestoSqlParser.CastContext ctx); + /** + * Visit a parse tree produced by the {@code lambda} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambda(PrestoSqlParser.LambdaContext ctx); + /** + * Visit a parse tree produced by the {@code parenthesizedExpression} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code parameter} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParameter(PrestoSqlParser.ParameterContext ctx); + /** + * Visit a parse tree produced by the {@code normalize} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNormalize(PrestoSqlParser.NormalizeContext ctx); + /** + * Visit a parse tree produced by the {@code intervalLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code numericLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code booleanLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code simpleCase} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx); + /** + * Visit a parse tree produced by the {@code columnReference} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx); + /** + * Visit a parse tree produced by the {@code nullLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNullLiteral(PrestoSqlParser.NullLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code rowConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRowConstructor(PrestoSqlParser.RowConstructorContext ctx); + /** + * Visit a parse tree produced by the {@code subscript} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSubscript(PrestoSqlParser.SubscriptContext ctx); + /** + * Visit a parse tree produced by the {@code subqueryExpression} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code binaryLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code currentUser} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCurrentUser(PrestoSqlParser.CurrentUserContext ctx); + /** + * Visit a parse tree produced by the {@code extract} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExtract(PrestoSqlParser.ExtractContext ctx); + /** + * Visit a parse tree produced by the {@code stringLiteral} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStringLiteral(PrestoSqlParser.StringLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code arrayConstructor} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx); + /** + * Visit a parse tree produced by the {@code functionCall} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunctionCall(PrestoSqlParser.FunctionCallContext ctx); + /** + * Visit a parse tree produced by the {@code exists} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExists(PrestoSqlParser.ExistsContext ctx); + /** + * Visit a parse tree produced by the {@code position} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPosition(PrestoSqlParser.PositionContext ctx); + /** + * Visit a parse tree produced by the {@code searchedCase} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx); + /** + * Visit a parse tree produced by the {@code groupingOperation} + * labeled alternative in {@link PrestoSqlParser#primaryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx); + /** + * Visit a parse tree produced by the {@code basicStringLiteral} + * labeled alternative in {@link PrestoSqlParser#string}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code unicodeStringLiteral} + * labeled alternative in {@link PrestoSqlParser#string}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#nullTreatment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx); + /** + * Visit a parse tree produced by the {@code timeZoneInterval} + * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx); + /** + * Visit a parse tree produced by the {@code timeZoneString} + * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#comparisonOperator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#comparisonQuantifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#booleanValue}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBooleanValue(PrestoSqlParser.BooleanValueContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#interval}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterval(PrestoSqlParser.IntervalContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#intervalField}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntervalField(PrestoSqlParser.IntervalFieldContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#normalForm}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNormalForm(PrestoSqlParser.NormalFormContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#types}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypes(PrestoSqlParser.TypesContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType(PrestoSqlParser.TypeContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#typeParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeParameter(PrestoSqlParser.TypeParameterContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#baseType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBaseType(PrestoSqlParser.BaseTypeContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#whenClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhenClause(PrestoSqlParser.WhenClauseContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#filter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFilter(PrestoSqlParser.FilterContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#over}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOver(PrestoSqlParser.OverContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#windowFrame}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindowFrame(PrestoSqlParser.WindowFrameContext ctx); + /** + * Visit a parse tree produced by the {@code unboundedFrame} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx); + /** + * Visit a parse tree produced by the {@code currentRowBound} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx); + /** + * Visit a parse tree produced by the {@code boundedFrame} + * labeled alternative in {@link PrestoSqlParser#frameBound}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx); + /** + * Visit a parse tree produced by the {@code explainFormat} + * labeled alternative in {@link PrestoSqlParser#explainOption}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx); + /** + * Visit a parse tree produced by the {@code explainType} + * labeled alternative in {@link PrestoSqlParser#explainOption}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplainType(PrestoSqlParser.ExplainTypeContext ctx); + /** + * Visit a parse tree produced by the {@code isolationLevel} + * labeled alternative in {@link PrestoSqlParser#transactionMode}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx); + /** + * Visit a parse tree produced by the {@code transactionAccessMode} + * labeled alternative in {@link PrestoSqlParser#transactionMode}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx); + /** + * Visit a parse tree produced by the {@code readUncommitted} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx); + /** + * Visit a parse tree produced by the {@code readCommitted} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx); + /** + * Visit a parse tree produced by the {@code repeatableRead} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx); + /** + * Visit a parse tree produced by the {@code serializable} + * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSerializable(PrestoSqlParser.SerializableContext ctx); + /** + * Visit a parse tree produced by the {@code positionalArgument} + * labeled alternative in {@link PrestoSqlParser#callArgument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx); + /** + * Visit a parse tree produced by the {@code namedArgument} + * labeled alternative in {@link PrestoSqlParser#callArgument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#privilege}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrivilege(PrestoSqlParser.PrivilegeContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#qualifiedName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx); + /** + * Visit a parse tree produced by the {@code currentUserGrantor} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx); + /** + * Visit a parse tree produced by the {@code currentRoleGrantor} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx); + /** + * Visit a parse tree produced by the {@code specifiedPrincipal} + * labeled alternative in {@link PrestoSqlParser#grantor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx); + /** + * Visit a parse tree produced by the {@code userPrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx); + /** + * Visit a parse tree produced by the {@code rolePrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx); + /** + * Visit a parse tree produced by the {@code unspecifiedPrincipal} + * labeled alternative in {@link PrestoSqlParser#principal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#roles}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRoles(PrestoSqlParser.RolesContext ctx); + /** + * Visit a parse tree produced by the {@code unquotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx); + /** + * Visit a parse tree produced by the {@code quotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx); + /** + * Visit a parse tree produced by the {@code backQuotedIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx); + /** + * Visit a parse tree produced by the {@code digitIdentifier} + * labeled alternative in {@link PrestoSqlParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx); + /** + * Visit a parse tree produced by the {@code decimalLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code doubleLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code integerLiteral} + * labeled alternative in {@link PrestoSqlParser#number}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx); + /** + * Visit a parse tree produced by {@link PrestoSqlParser#nonReserved}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNonReserved(PrestoSqlParser.NonReservedContext ctx); +} \ No newline at end of file diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt new file mode 100644 index 0000000..ebac196 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -0,0 +1,84 @@ +package com.github.bigdata.sql.parser.presto + +import com.facebook.presto.sql.parser.ParsingOptions +import com.facebook.presto.sql.parser.SqlParser +import com.facebook.presto.sql.tree.* +import com.github.bigdata.sql.parser.StatementData +import com.github.bigdata.sql.parser.StatementType +import com.github.bigdata.sql.parser.TableData +import com.github.bigdata.sql.parser.TableSource +import org.apache.commons.collections.CollectionUtils +import org.apache.commons.lang.StringUtils + + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/8/17 15:26 + */ +object PrestoSQLHelper { + private val SQL_PARSER = SqlParser() + + @JvmStatic fun getStatementData(sql: String): StatementData{ + val statementData = TableData() + val parsingOptions = ParsingOptions(ParsingOptions.DecimalLiteralTreatment.AS_DOUBLE) + val statement = SQL_PARSER.createStatement(sql, parsingOptions) + + when (statement) { + is Insert -> { + statementData.outpuTables.add(tableSource(statement.target.toString())) + } + } + maxDepthLeaf(statement.children,statementData) + + val hashSet = HashSet(statementData.inputTables) + statementData.inputTables.clear() + statementData.inputTables.addAll(hashSet) + return StatementData(StatementType.UNKOWN, statementData) + } + + private fun tableSource(str: String): TableSource { + val split = StringUtils.split(str, ".") + var tableSource: TableSource = when (split.size) { + 2 -> { + TableSource(split[0], split[1]) + } + 3 -> { + TableSource(split[1], split[2]) + } + 1 -> { + TableSource("", split[0]) + } + else -> { + TableSource("", "") + } + } + return tableSource + } + + private fun maxDepthLeaf(treeList: List,statement:TableData) { + if (CollectionUtils.isNotEmpty(treeList)) { + for (node in treeList) { + + val children = node.children + + if (node is QuerySpecification){ + val from = node.from.get() + if(from is Table){ + statement.inputTables.add(tableSource(from.name.toString())) + //println("输入表:"+from.name + "----------输入字段:"+node.select.selectItems) + } + } + + if(node is Table){ + statement.inputTables.add(tableSource(node.name.toString())) + } + + if (CollectionUtils.isNotEmpty(children)) { + maxDepthLeaf(children,statement) + } + } + } + } +} diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt new file mode 100644 index 0000000..c7ff597 --- /dev/null +++ b/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt @@ -0,0 +1,26 @@ +package com.github.bigdata.sql.parser.presto + +import org.junit.Test + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/8/18 13:31 + */ +class PrestoSqlParserTest { + + @Test + fun sqlTest() { + val sql = "with recursive t as (select * from a.x) select * from t" + val statementData = PrestoSQLHelper.getStatementData(sql) + println(statementData.statement) + } + + @Test + fun sql1Test() { + val sql = "INSERT INTO adc.fsfd with recursive t as (select a,b,v from a.x) select a,b,v from t" + val statementData = PrestoSQLHelper.getStatementData(sql) + println(statementData.statement) + } +} From deb7e6397a9ba58aa2990a613200de6860f55622 Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 14:10:19 +0800 Subject: [PATCH 05/56] UP doc --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index 27b0cd5..eb20e6e 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,42 @@ mvn antlr4:antlr4 mvn clean package +##### 使用 + +* spark SQL +```kotlin +val sql = "CREATE DATABASE IF NOT EXISTS bigdata" +val statementData = SparkSQLHelper.getStatementData(sql) +println(statementData.statement) +``` + +* presto SQL +```kotlin +val sql = "INSERT INTO adc.fsfd with recursive t as (select a,b,v from a.x) select a,b,v from t" +val statementData = PrestoSQLHelper.getStatementData(sql) +println(statementData.statement) +``` + +* Tidb SQL/MySQL +```kotlin +val sql = "insert into bigdata.user select * from users a left outer join address b on a.address_id = b.id" +val statementData = PrestoSQLHelper.getStatementData(sql) +println(statementData.statement) +``` + +* Flink SQL +```kotlin + val sql = "CREATE SOURCE TABLE student_scores (\n" + + " student_number varchar comment '学号', \n" + + " student_name varchar comment '姓名', \n" + + " subject varchar comment '学科',\n" + + " score INT comment '成绩' \n" + + ")\n" + + "WITH (\n" + + " type = \"dis\",\n" + + " kafka.region = \"cn-north-1\"\n" + + ") TIMESTAMP BY proctime proctime1" + +val statementData = StreamSQLHelper.getStatementData(sql).get(0) +println(statementData.statement) +``` From 23562493870d8b852d6675ca6c1fbd2234480eaf Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 14:10:48 +0800 Subject: [PATCH 06/56] UP doc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb20e6e..71b0136 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ println(statementData.statement) * Flink SQL ```kotlin - val sql = "CREATE SOURCE TABLE student_scores (\n" + +val sql = "CREATE SOURCE TABLE student_scores (\n" + " student_number varchar comment '学号', \n" + " student_name varchar comment '姓名', \n" + " subject varchar comment '学科',\n" + From c8962f733eb9cfbe216e0b7ba36464dea5e5218b Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 14:11:33 +0800 Subject: [PATCH 07/56] UP doc --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 71b0136..02e6df1 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ##### build mvn antlr4:antlr4 + mvn clean package ##### 使用 From 4cac969788f1a61c2c2e8ca8ce5a19c4273f2374 Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 14:12:17 +0800 Subject: [PATCH 08/56] UP doc --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 02e6df1..d413805 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -### 介绍 +# 介绍 基于antlr4 statement 数据血缘解析器,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令解析 -##### build +# build mvn antlr4:antlr4 mvn clean package -##### 使用 +# 使用 * spark SQL ```kotlin From d6f72cfbaa4491f404a3f55e0942098adfeec614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=87=BD=E6=95=8F?= <359391169@qq.com> Date: Wed, 18 Aug 2021 19:27:25 +0800 Subject: [PATCH 09/56] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d413805..b40303f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 介绍 -基于antlr4 statement 数据血缘解析器,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令解析 +数据血缘解析器,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令的血缘解析 # build From 84c288debeae23bae3a060d489e50a92e81357f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=87=BD=E6=95=8F?= <359391169@qq.com> Date: Wed, 18 Aug 2021 19:27:45 +0800 Subject: [PATCH 10/56] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b40303f..545be4c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 介绍 -数据血缘解析器,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令的血缘解析 +数据血缘,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令的血缘解析 # build From 630dc5d271fa6176e001d5bf3c80855108d1e350 Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 19:31:32 +0800 Subject: [PATCH 11/56] UP doc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 545be4c..64cb3dc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 数据血缘,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令的血缘解析 -# build +# 编译 mvn antlr4:antlr4 From 9c278e38c8a36fdc95dee52c308fe7d58e75e1b5 Mon Sep 17 00:00:00 2001 From: duhanmin <627820752ab> Date: Wed, 18 Aug 2021 19:35:53 +0800 Subject: [PATCH 12/56] add LICENSE --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file From 0bb2d826545251261eb27a8b37bb064aa60325e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=87=BD=E6=95=8F?= <359391169@qq.com> Date: Fri, 20 Aug 2021 14:29:05 +0800 Subject: [PATCH 13/56] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 64cb3dc..beeb596 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ 数据血缘,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令的血缘解析 +* 特别提示:presto和spark均支持with语法 +* 目前解析到表级别,可以扩展到字段级别 + # 编译 mvn antlr4:antlr4 From 3271841b5b54e258b12c2ad3539751190b90aa19 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 28 Dec 2021 19:21:38 +0800 Subject: [PATCH 14/56] =?UTF-8?q?datax=20=E8=A1=80=E7=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 38 +- .../bigdata/sql/parser/datax/DataxLHelper.kt | 64 +++ .../sql/parser/datax/commons/DataxType.java | 35 ++ .../sql/parser/datax/reader/DBReader.java | 130 +++++++ .../sql/parser/datax/reader/S3Reader.java | 21 + .../sql/parser/datax/writer/DBWriter.java | 9 + .../sql/parser/datax/writer/S3Writer.java | 65 ++++ .../sql/parser/presto/PrestoSQLHelper.kt | 6 +- .../sql/parser/spark/SparkSQLHelper.kt | 2 +- .../sql/parser/tidb/TidbSQLAntlr4Visitor.kt | 2 +- .../sql/parser/util/SqlParserTool.java | 366 ++++++++++++++++++ .../sql/parser/datax/DataxParserTest.kt | 27 ++ .../sql/parser/spark/SparkSqlParserTest.kt | 104 ++++- src/test/resources/datax/mysql2s3.json | 89 +++++ src/test/resources/datax/mysql2s3_1.json | 92 +++++ src/test/resources/datax/pg2s3.json | 89 +++++ src/test/resources/datax/pg2s3_1.json | 92 +++++ 17 files changed, 1222 insertions(+), 9 deletions(-) create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java create mode 100644 src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt create mode 100644 src/test/resources/datax/mysql2s3.json create mode 100644 src/test/resources/datax/mysql2s3_1.json create mode 100644 src/test/resources/datax/pg2s3.json create mode 100644 src/test/resources/datax/pg2s3_1.json diff --git a/pom.xml b/pom.xml index 2e8272d..9690b97 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,24 @@ 3.2.2 + + cn.hutool + hutool-all + 5.7.2 + + + + com.github.jsqlparser + jsqlparser + 1.4 + + + + org.apache.calcite.avatica + avatica-core + 1.16.0 + + commons-configuration commons-configuration @@ -39,9 +57,9 @@ - com.facebook.presto - presto-parser - 0.259.1 + io.trino + trino-parser + 366 @@ -65,6 +83,20 @@ + + + nexus-releases + internal releases + http://maven.dev.longbridge-inc.com:8081/nexus/repository/maven-releases/ + + + nexus-snapshots + internal snapshot + http://maven.dev.longbridge-inc.com:8081/nexus/repository/maven-snapshots/ + false + + + diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt new file mode 100644 index 0000000..5f46c7d --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -0,0 +1,64 @@ +package com.github.bigdata.sql.parser.datax + +import cn.hutool.json.JSONObject +import cn.hutool.json.JSONUtil +import com.github.bigdata.sql.parser.StatementData +import com.github.bigdata.sql.parser.StatementType +import com.github.bigdata.sql.parser.TableData +import com.github.bigdata.sql.parser.TableSource +import com.github.bigdata.sql.parser.datax.commons.DataxType +import com.github.bigdata.sql.parser.datax.reader.DBReader +import com.github.bigdata.sql.parser.datax.writer.S3Writer + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/28 15:55 + */ +object DataxLHelper { + + @JvmStatic fun getStatementData(json: String): StatementData { + + // 解析json + val reader: JSONObject + val writer: JSONObject + val readerName: String + val writerName: String + try { + val content: JSONObject = JSONUtil.parseObj(json).getJSONObject("job").getJSONArray("content").getJSONObject(0) + val readerJSONObject: JSONObject = content.getJSONObject("reader") + reader = readerJSONObject.getJSONObject("parameter") + readerName = readerJSONObject.getStr("name") + + val writerJSONObject: JSONObject = content.getJSONObject("writer") + writer = writerJSONObject.getJSONObject("parameter") + writerName = writerJSONObject.getStr("name") + }catch (e: Exception){ + e.printStackTrace() + return StatementData(StatementType.UNKOWN, null) + } + + val statementData = TableData() + + //拿到reader + if (readerName.equals(DataxType.Reader.pg.code) || readerName.equals(DataxType.Reader.mysql.code)){ + val dbReader = DBReader(readerName,reader) + var tableSource = TableSource(dbReader.db, dbReader.table,null,dbReader.columns) + statementData.inputTables.add(tableSource) + }else if (readerName.equals(DataxType.Reader.s3.code)){ + + } + + //拿到writer + if (writerName.equals(DataxType.Writer.pg.code) || writerName.equals(DataxType.Writer.mysql.code)){ + + }else if (writerName.equals(DataxType.Writer.s3.code)){ + val s3Writer = S3Writer(writerName, writer) + var tableSource = TableSource(s3Writer.db, s3Writer.table,null,s3Writer.columns) + statementData.outpuTables.add(tableSource) + } + + return StatementData(StatementType.UNKOWN, statementData) + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java new file mode 100644 index 0000000..9fd6632 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java @@ -0,0 +1,35 @@ +package com.github.bigdata.sql.parser.datax.commons; + +/** + * Author: duhanmin + * Description: + * Date: 2021/12/28 16:09 + */ +public interface DataxType { + + enum Reader { + mysql("mysqlreader"),pg("postgresqlreader"),s3("s3reader"); + private String code; + + Reader(String name) { + this.code = name; + } + + public String getCode() { + return code; + } + } + + enum Writer { + mysql("mysqlwriter"),pg("postgresqlwriter"),s3("s3writer"); + private String code; + + Writer(String name) { + this.code = name; + } + + public String getCode() { + return code; + } + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java new file mode 100644 index 0000000..49812cc --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java @@ -0,0 +1,130 @@ +package com.github.bigdata.sql.parser.datax.reader; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.github.bigdata.sql.parser.Statement; +import com.github.bigdata.sql.parser.TableData; +import com.github.bigdata.sql.parser.TableSource; +import com.github.bigdata.sql.parser.datax.commons.DataxType; +import com.github.bigdata.sql.parser.tidb.TidbSQLHelper; +import com.github.bigdata.sql.parser.util.SqlParserTool; + +import java.util.ArrayList; +import java.util.List; + +/** + * Author: duhanmin + * Description: + * Date: 2021/12/28 15:38 + */ +public class DBReader { + + private String name; + private JSONObject reader; + private String db; + private String table; + private List columns = new ArrayList<>(); + + public DBReader(String name,JSONObject reader) throws Exception { + this.name = name; + this.reader = reader; + init(); + + } + + private void init() throws Exception { + final JSONObject connection = reader.getJSONArray("connection").getJSONObject(0); + final String jdbcUrl = connection.getJSONArray("jdbcUrl").getStr(0); + final String[] split = jdbcUrl.split("/"); + + db = split[split.length-1]; + + if (DataxType.Reader.pg.getCode().equals(name)){ + pg(connection); + }else{ + db(connection); + } + + } + + private void pg(JSONObject connection) throws Exception { + if (!reader.containsKey("column")){ + final String querySql = connection.getJSONArray("querySql").getStr(0); + final Statement statement = TidbSQLHelper.getStatementData(querySql).getStatement(); + + TableData tableData; + if (statement instanceof TableData) { + tableData = (TableData) statement; + }else { + throw new RuntimeException("血缘无法解析 -> "+statement); + } + + final TableSource tableSource = tableData.getInputTables().get(0); + String databaseName = tableSource.getDatabaseName(); + if (StrUtil.isBlank(databaseName)) databaseName = "public"; + table = databaseName + "." + tableSource.getTableName(); + columns.addAll(SqlParserTool.getSelectColumnName(querySql)); + }else { + final String table = connection.getJSONArray("table").getStr(0); + if (!table.contains(".")){ + this.table = "public" + "." + table; + } + final JSONArray column = reader.getJSONArray("column"); + columns.addAll(JSONUtil.toList(column,String.class)); + } + } + + private void db(JSONObject connection) throws Exception { + if (!reader.containsKey("column")){ + final String querySql = connection.getJSONArray("querySql").getStr(0); + final Statement statement = TidbSQLHelper.getStatementData(querySql).getStatement(); + + TableData tableData; + if (statement instanceof TableData) { + tableData = (TableData) statement; + }else { + throw new RuntimeException("血缘无法解析 -> "+statement); + } + + final TableSource tableSource = tableData.getInputTables().get(0); + + table = tableSource.getTableName(); + columns.addAll(SqlParserTool.getSelectColumnName(querySql)); + }else { + table = connection.getJSONArray("table").getStr(0); + final JSONArray column = reader.getJSONArray("column"); + columns.addAll(JSONUtil.toList(column,String.class)); + } + } + + public String getDb() { + return db; + } + + public void setDb(String db) { + this.db = db; + } + + public String getTable() { + return table; + } + + public void setTable(String table) { + this.table = table; + } + + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } + + @Override + public String toString() { + return JSONUtil.toJsonStr(this); + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java new file mode 100644 index 0000000..cc57191 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java @@ -0,0 +1,21 @@ +package com.github.bigdata.sql.parser.datax.reader; + +import cn.hutool.json.JSONObject; + +import java.util.ArrayList; +import java.util.List; + +/** + * Author: duhanmin + * Description: + * Date: 2021/12/28 15:38 + */ +public class S3Reader { + + private String name; + private JSONObject reader; + private String db; + private String table; + private List columns = new ArrayList<>(); + +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java new file mode 100644 index 0000000..ecd84fa --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java @@ -0,0 +1,9 @@ +package com.github.bigdata.sql.parser.datax.writer; + +/** + * Author: duhanmin + * Description: + * Date: 2021/12/28 15:38 + */ +public class DBWriter { +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java new file mode 100644 index 0000000..adf1c79 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java @@ -0,0 +1,65 @@ +package com.github.bigdata.sql.parser.datax.writer; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; + +import java.util.ArrayList; +import java.util.List; + +/** + * Author: duhanmin + * Description: + * Date: 2021/12/28 15:38 + */ +public class S3Writer { + private String name; + private JSONObject writer; + private String db; + private String table; + private List columns = new ArrayList<>(); + + public S3Writer(String name, JSONObject writer) throws Exception { + this.name = name; + this.writer = writer; + init(); + } + + private void init() throws Exception { + final String path = writer.getStr("path"); + final String[] split = path.split("/"); + if (!(split.length >= 3)) throw new RuntimeException("path 无法解析出库和表,path:"+ ArrayUtil.toString(split)); + db = split[1]; + table = split[2]; + + final JSONArray column = writer.getJSONArray("column"); + for (int i = 0; i < column.size(); i++) { + final String name = column.getJSONObject(i).getStr("name"); + columns.add(name); + } + } + + public String getDb() { + return db; + } + + public void setDb(String db) { + this.db = db; + } + + public String getTable() { + return table; + } + + public void setTable(String table) { + this.table = table; + } + + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index ebac196..ff9d9c9 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -1,8 +1,8 @@ package com.github.bigdata.sql.parser.presto -import com.facebook.presto.sql.parser.ParsingOptions -import com.facebook.presto.sql.parser.SqlParser -import com.facebook.presto.sql.tree.* +import io.trino.sql.parser.ParsingOptions +import io.trino.sql.parser.SqlParser +import io.trino.sql.tree.* import com.github.bigdata.sql.parser.StatementData import com.github.bigdata.sql.parser.StatementType import com.github.bigdata.sql.parser.TableData diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLHelper.kt index 26bbd22..36dd65a 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLHelper.kt @@ -128,4 +128,4 @@ object SparkSQLHelper { } } } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/tidb/TidbSQLAntlr4Visitor.kt b/src/main/kotlin/com/github/bigdata/sql/parser/tidb/TidbSQLAntlr4Visitor.kt index 9a2c416..bd0799b 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/tidb/TidbSQLAntlr4Visitor.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/tidb/TidbSQLAntlr4Visitor.kt @@ -332,4 +332,4 @@ class TidbSQLAntlr4Visitor : MySqlParserBaseVisitor() { return Pair(databaseName, tableName); } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java b/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java new file mode 100644 index 0000000..87b110f --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java @@ -0,0 +1,366 @@ +package com.github.bigdata.sql.parser.util; + +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.expression.*; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import net.sf.jsqlparser.parser.SimpleNode; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.alter.Alter; +import net.sf.jsqlparser.statement.create.index.CreateIndex; +import net.sf.jsqlparser.statement.create.table.CreateTable; +import net.sf.jsqlparser.statement.create.view.CreateView; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.drop.Drop; +import net.sf.jsqlparser.statement.execute.Execute; +import net.sf.jsqlparser.statement.insert.Insert; +import net.sf.jsqlparser.statement.merge.Merge; +import net.sf.jsqlparser.statement.replace.Replace; +import net.sf.jsqlparser.statement.select.*; +import net.sf.jsqlparser.statement.truncate.Truncate; +import net.sf.jsqlparser.statement.update.Update; +import net.sf.jsqlparser.statement.upsert.Upsert; +import net.sf.jsqlparser.util.TablesNamesFinder; +import org.apache.calcite.avatica.SqlType; + +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @description: jsqlparser解析SQL工具类 + * PlainSelect类不支持union、union all等请使用SetOperationList接口 + * Author: duhanmin + * Description: + * Date: 2021/12/28 17:56 + */ +public class SqlParserTool { + + + /** + * 由于jsqlparser没有获取SQL类型的原始工具,并且在下面操作时需要知道SQL类型,所以编写此工具方法 + * + * @param sql sql语句 + * @return sql类型, + * @throws JSQLParserException + */ + public static SqlType getSqlType(String sql) throws JSQLParserException { + Statement sqlStmt = CCJSqlParserUtil.parse(new StringReader(sql)); + if (sqlStmt instanceof Alter) { + return SqlType.ALTER; + } else if (sqlStmt instanceof CreateIndex) { + return SqlType.CREATEINDEX; + } else if (sqlStmt instanceof CreateTable) { + return SqlType.CREATETABLE; + } else if (sqlStmt instanceof CreateView) { + return SqlType.CREATEVIEW; + } else if (sqlStmt instanceof Delete) { + return SqlType.DELETE; + } else if (sqlStmt instanceof Drop) { + return SqlType.DROP; + } else if (sqlStmt instanceof Execute) { + return SqlType.EXECUTE; + } else if (sqlStmt instanceof Insert) { + return SqlType.INSERT; + } else if (sqlStmt instanceof Merge) { + return SqlType.MERGE; + } else if (sqlStmt instanceof Replace) { + return SqlType.REPLACE; + } else if (sqlStmt instanceof Select) { + return SqlType.SELECT; + } else if (sqlStmt instanceof Truncate) { + return SqlType.TRUNCATE; + } else if (sqlStmt instanceof Update) { + return SqlType.UPDATE; + } else if (sqlStmt instanceof Upsert) { + return SqlType.UPSERT; + } else { + return SqlType.NONE; + } + } + + /** + * 获取sql操作接口,与上面类型判断结合使用 + * example: + * String sql = "create table a(a string)"; + * SqlType sqlType = SqlParserTool.getSqlType(sql); + * if(sqlType.equals(SqlType.SELECT)){ + * Select statement = (Select) SqlParserTool.getStatement(sql); + * } + * + * @param sql + * @return + * @throws JSQLParserException + */ + public static Statement getStatement(String sql) throws JSQLParserException { + Statement sqlStmt = CCJSqlParserUtil.parse(new StringReader(sql)); + return sqlStmt; + } + + /** + * 获取tables的表名 + * + * @param statement + * @return + */ + public static List getTableList(Select statement) { + TablesNamesFinder tablesNamesFinder = new TablesNamesFinder(); + List tableList = tablesNamesFinder.getTableList(statement); + return tableList; + } + + /** + * 获取join层级 + * + * @param selectBody + * @return + */ + public static List getJoins(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + List joins = ((PlainSelect) selectBody).getJoins(); + return joins; + } + return new ArrayList(); + } + + /** + * @param selectBody + * @return + */ + public static List getIntoTables(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + List
tables = ((PlainSelect) selectBody).getIntoTables(); + return tables; + } + return new ArrayList
(); + } + + /** + * @param selectBody + * @return + */ + public static void setIntoTables(SelectBody selectBody, List
tables) { + if (selectBody instanceof PlainSelect) { + ((PlainSelect) selectBody).setIntoTables(tables); + } + } + + /** + * 获取limit值 + * + * @param selectBody + * @return + */ + public static Limit getLimit(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + Limit limit = ((PlainSelect) selectBody).getLimit(); + return limit; + } + return null; + } + + /** + * 为SQL增加limit值 + * + * @param selectBody + * @param l + */ + public static void setLimit(SelectBody selectBody, long l) { + if (selectBody instanceof PlainSelect) { + Limit limit = new Limit(); + limit.setRowCount(new LongValue(String.valueOf(l))); + ((PlainSelect) selectBody).setLimit(limit); + } + } + + /** + * 获取FromItem不支持子查询操作 + * + * @param selectBody + * @return + */ + public static FromItem getFromItem(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + FromItem fromItem = ((PlainSelect) selectBody).getFromItem(); + return fromItem; + } else if (selectBody instanceof WithItem) { + SqlParserTool.getFromItem(((WithItem) selectBody).getSelectBody()); + } + return null; + } + + /** + * 获取子查询 + * + * @param selectBody + * @return + */ + public static SubSelect getSubSelect(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + FromItem fromItem = ((PlainSelect) selectBody).getFromItem(); + if (fromItem instanceof SubSelect) { + return ((SubSelect) fromItem); + } + } else if (selectBody instanceof WithItem) { + SqlParserTool.getSubSelect(((WithItem) selectBody).getSelectBody()); + } + return null; + } + + /** + * 判断是否为多级子查询 + * + * @param selectBody + * @return + */ + public static boolean isMultiSubSelect(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + FromItem fromItem = ((PlainSelect) selectBody).getFromItem(); + if (fromItem instanceof SubSelect) { + SelectBody subBody = ((SubSelect) fromItem).getSelectBody(); + if (subBody instanceof PlainSelect) { + FromItem subFromItem = ((PlainSelect) subBody).getFromItem(); + if (subFromItem instanceof SubSelect) { + return true; + } + } + } + } + return false; + } + + /** + * 获取查询字段 + * + * @param selectBody + * @return + */ + public static List getSelectItems(SelectBody selectBody) { + if (selectBody instanceof PlainSelect) { + List selectItems = ((PlainSelect) selectBody).getSelectItems(); + return selectItems; + } + return null; + } + + public static List getSelectColumnName(String selectSql) throws JSQLParserException { + + SqlType sqlType = getSqlType(selectSql); + List items = new ArrayList<>(); + + if (sqlType.equals(SqlType.SELECT)) { + Select select = (Select) SqlParserTool.getStatement(selectSql); + PlainSelect plain = (PlainSelect) select.getSelectBody(); + List selectItems = plain.getSelectItems(); + + if (selectItems != null) { + for (SelectItem selectItem : selectItems) { + if (selectItem instanceof SelectExpressionItem) { + SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem; + + String columnName = ""; + Alias alias = selectExpressionItem.getAlias(); + + Expression expression = selectExpressionItem.getExpression(); + if (expression instanceof CaseExpression) { + // case表达式 + columnName = alias.getName(); + } else if (expression instanceof LongValue || expression instanceof StringValue || expression instanceof DateValue || expression instanceof DoubleValue) { + // 值表达式 + columnName = Objects.nonNull(alias.getName()) ? alias.getName() : expression.getASTNode().jjtGetValue().toString(); + } else if (expression instanceof TimeKeyExpression) { + // 日期 + columnName = alias.getName(); + } else { + if (alias != null) { + columnName = alias.getName(); + } else { + SimpleNode node = expression.getASTNode(); + Object value = node.jjtGetValue(); + if (value instanceof Column) { + columnName = ((Column) value).getColumnName(); + } else if (value instanceof Function) { + columnName = value.toString(); + } else { + // 增加对select 'aaa' from table; 的支持 + columnName = String.valueOf(value); + columnName = columnName.replace("'", ""); + columnName = columnName.replace("\"", ""); + columnName = columnName.replace("`", ""); + } + } + } + + columnName = columnName.replace("'", ""); + columnName = columnName.replace("\"", ""); + columnName = columnName.replace("`", ""); + + items.add(columnName); + } else if (selectItem instanceof AllTableColumns) { + AllTableColumns allTableColumns = (AllTableColumns) selectItem; + items.add(allTableColumns.toString()); + } else { + items.add(selectItem.toString()); + } + } + } + } + return items; + } + + public static void main(String[] args) throws JSQLParserException { + String sql = "select userid,username as name,CASE WHEN age < 18 THEN 0 WHEN age >= 18 AND age < 60 THEN 1 ELSE 2 END AS age, sex from student"; + /*SqlType sqlType = SqlParserTool.getSqlType(sql); + if (sqlType.equals(SqlType.SELECT)) { + Select statement = (Select) SqlParserTool.getStatement(sql); + SelectBody selectBody = statement.getSelectBody(); + SubSelect subSelect = SqlParserTool.getSubSelect(selectBody); + System.out.println(subSelect); + List selectItems = getSelectItems(subSelect.getSelectBody()); + selectItems.forEach(selectItem -> System.out.println(selectItem.getASTNode())); + + }*/ + List columnName = getSelectColumnName(sql); + for (String s : columnName) { + System.out.println(s); + } + } + + /** + * @description: 定义sql返回类型 + * @author: ZhiWen + * @create: 2021-02-23 + **/ + public enum SqlType { + ALTER, + CREATEINDEX, + CREATETABLE, + CREATEVIEW, + DELETE, + DROP, + EXECUTE, + INSERT, + MERGE, + REPLACE, + SELECT, + TRUNCATE, + UPDATE, + UPSERT, + NONE + } + + /*不需要引入依赖 + * + com.github.jsqlparser + jsqlparser + 1.4 + + * */ + +} + + + + diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt new file mode 100644 index 0000000..a198861 --- /dev/null +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -0,0 +1,27 @@ +package com.github.bigdata.sql.parser.datax + +import org.junit.Test + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/28 15:53 + */ +class DataxParserTest { + fun readText(path:String): String = DataxParserTest::class.java.getResource(path).readText() + + fun run(path:String) { + val json = readText(path) + val statementData = DataxLHelper.getStatementData(json) + println(statementData.statement) + } + + @Test + fun test() { + run("/datax/pg2s3.json") + run("/datax/pg2s3_1.json") + run("/datax/mysql2s3.json") + run("/datax/mysql2s3_1.json") + } +} diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt index 50d390a..fd236e8 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt @@ -647,4 +647,106 @@ class SparkSqlParserTest { val statementData = SparkSQLHelper.getStatementData(sql) Assert.assertEquals(StatementType.SET, statementData.type) } -} \ No newline at end of file + + + @Test + fun sql() { + var sql = "WITH tmp1 AS\n" + + " (SELECT cast(member_id AS string) AS member_id,\n" + + " account_created_date,\n" + + " case when account_created_date is null then 0 else 1 end as is_openaccount,\n" + + " CASE\n" + + " WHEN accum_deposit_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_deposit,\n" + + " CASE\n" + + " WHEN accum_rollin_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_rollin,\n" + + " CASE\n" + + " WHEN accum_trade_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_deal,\n" + + " CASE\n" + + " WHEN accum_withdraw_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_withdraw,\n" + + " CASE\n" + + " WHEN accum_rollout_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_rollout\n" + + " FROM lb_bi_presto.member_properties\n" + + " WHERE pt='20210812'\n" + + " GROUP BY cast(member_id AS string),\n" + + " account_created_date,\n" + + " case when account_created_date is null then 1 else 0 end,\n" + + " CASE\n" + + " WHEN accum_deposit_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_rollin_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_trade_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_withdraw_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_rollout_times>0 THEN 1\n" + + " ELSE 0\n" + + " END),\n" + + " tmp2 AS\n" + + " (SELECT *\n" + + " FROM lb_bi_user.dws_user_profile_attribution_invite_d\n" + + " WHERE pt='20210812'),\n" + + " tmp3 as (select member_id,\n" + + " case when state=0 then '初始化' when state=1 then '身份信息已认证' when state=2 then '已通过活体验证' when state=3 then '用户提交中'\n" + + " when state=4 then '用户提交待确认' when state=5 then '用户已提交' when state=6 then '等待提交给辉立' when state=7 then '辉立审核中'\n" + + " when state=8 then '审核失败' when state=9 then '开户完成'\n" + + " end as open_account_status\n" + + " from lb_member_service.account_applications\n" + + " )\n" + + " INSERT overwrite TABLE lb_bi_user.dim_user_profile_attribution_dynamic_d partition(pt='20210812')\n" + + " SELECT tmp1.member_id,\n" + + " tmp1.account_created_date,\n" + + " tmp1.is_openaccount,\n" + + " tmp1.is_deposit,\n" + + " tmp1.is_rollin,\n" + + " tmp1.is_deal,\n" + + " tmp1.is_withdraw,\n" + + " tmp1.is_rollout,\n" + + " CASE\n" + + " WHEN tmp2.invite_num_all>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_inviter,\n" + + " nvl(tmp2.invite_num_all,0) AS invite_num_all,\n" + + " nvl(tmp2.invite_num_30,0) AS invite_num_30,\n" + + " tmp3.open_account_status\n" + + " FROM tmp1\n" + + " LEFT JOIN tmp2 ON tmp1.member_id=tmp2.member_id\n" + + " left join tmp3 on tmp1.member_id=tmp3.member_id\n" + + " GROUP BY tmp1.member_id,\n" + + " tmp1.account_created_date,\n" + + " tmp1.is_openaccount,\n" + + " tmp1.is_deposit,\n" + + " tmp1.is_rollin,\n" + + " tmp1.is_deal,\n" + + " tmp1.is_withdraw,\n" + + " tmp1.is_rollout,\n" + + " CASE\n" + + " WHEN tmp2.invite_num_all>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " nvl(tmp2.invite_num_all,0),\n" + + " nvl(tmp2.invite_num_30,0),\n" + + " tmp3.open_account_status" + + val statementData = SparkSQLHelper.getStatementData(sql) + println(statementData.statement) + } +} diff --git a/src/test/resources/datax/mysql2s3.json b/src/test/resources/datax/mysql2s3.json new file mode 100644 index 0000000..b3a9f0c --- /dev/null +++ b/src/test/resources/datax/mysql2s3.json @@ -0,0 +1,89 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 2 + } + }, + "content": [ + { + "reader": { + "name": "mysqlreader", + "parameter": { + "username": "postgres", + "password": "871d1f7908f3f6f1fa28d1509069cb1d", + "splitPk": "qw", + "connection": [ + { + "querySql": [ + "select a,b,v,cx,z,ss,s,e from test.table_name;" + ], + "jdbcUrl": [ + "jdbc:postgresql://localhost:5432/postgres" + ] + } + ] + } + }, + "writer": { + "name": "s3writer", + "parameter": { + "bucket": "bitestduhanmin", + "path": "ods/flinkx/ww/pt=20200508/", + "fieldDelimiter": ",", + "compression":"SNAPPY", + "stored":"PARQUET", + "writeMode": "truncate", + "column":[ + { + "name": "qw", + "type": "bigint" + }, + { + "name": "qwqw", + "type": "bigint" + }, + { + "name": "a", + "type": "string" + }, + { + "name": "b", + "type": "string" + }, + { + "name": "column_5", + "type": "decimal(10,2)" + } + , + { + "name": "column_6", + "type": "decimal(10,4)" + } + , + { + "name": "column_7", + "type": "string" + } + , + { + "name": "column_8", + "type": "bigint" + } + , + { + "name": "column_9", + "type": "bigint" + } + , + { + "name": "column_10", + "type": "boolean" + } + ] + } + } + } + ] + } +} diff --git a/src/test/resources/datax/mysql2s3_1.json b/src/test/resources/datax/mysql2s3_1.json new file mode 100644 index 0000000..0354ceb --- /dev/null +++ b/src/test/resources/datax/mysql2s3_1.json @@ -0,0 +1,92 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 2 + } + }, + "content": [ + { + "reader": { + "name": "mysqlreader", + "parameter": { + "username": "xx", + "password": "xx", + "column": [ + "id","name" + ], + "splitPk": "id", + "connection": [ + { + "table": [ + "table" + ], + "jdbcUrl": [ + "jdbc:postgresql://host:port/database" + ] + } + ] + } + }, + "writer": { + "name": "s3writer", + "parameter": { + "bucket": "bitestduhanmin", + "path": "ods/flinkx/ww/pt=20200508/", + "fieldDelimiter": ",", + "compression":"SNAPPY", + "stored":"PARQUET", + "writeMode": "truncate", + "column":[ + { + "name": "qw", + "type": "bigint" + }, + { + "name": "qwqw", + "type": "bigint" + }, + { + "name": "a", + "type": "string" + }, + { + "name": "b", + "type": "string" + }, + { + "name": "column_5", + "type": "decimal(10,2)" + } + , + { + "name": "column_6", + "type": "decimal(10,4)" + } + , + { + "name": "column_7", + "type": "string" + } + , + { + "name": "column_8", + "type": "bigint" + } + , + { + "name": "column_9", + "type": "bigint" + } + , + { + "name": "column_10", + "type": "boolean" + } + ] + } + } + } + ] + } +} diff --git a/src/test/resources/datax/pg2s3.json b/src/test/resources/datax/pg2s3.json new file mode 100644 index 0000000..527307b --- /dev/null +++ b/src/test/resources/datax/pg2s3.json @@ -0,0 +1,89 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 2 + } + }, + "content": [ + { + "reader": { + "name": "postgresqlreader", + "parameter": { + "username": "postgres", + "password": "871d1f7908f3f6f1fa28d1509069cb1d", + "splitPk": "qw", + "connection": [ + { + "querySql": [ + "select a,b,v,cx,z,ss,s,e from test.table_name;" + ], + "jdbcUrl": [ + "jdbc:postgresql://localhost:5432/postgres" + ] + } + ] + } + }, + "writer": { + "name": "s3writer", + "parameter": { + "bucket": "bitestduhanmin", + "path": "ods/flinkx/ww/pt=20200508/", + "fieldDelimiter": ",", + "compression":"SNAPPY", + "stored":"PARQUET", + "writeMode": "truncate", + "column":[ + { + "name": "qw", + "type": "bigint" + }, + { + "name": "qwqw", + "type": "bigint" + }, + { + "name": "a", + "type": "string" + }, + { + "name": "b", + "type": "string" + }, + { + "name": "column_5", + "type": "decimal(10,2)" + } + , + { + "name": "column_6", + "type": "decimal(10,4)" + } + , + { + "name": "column_7", + "type": "string" + } + , + { + "name": "column_8", + "type": "bigint" + } + , + { + "name": "column_9", + "type": "bigint" + } + , + { + "name": "column_10", + "type": "boolean" + } + ] + } + } + } + ] + } +} diff --git a/src/test/resources/datax/pg2s3_1.json b/src/test/resources/datax/pg2s3_1.json new file mode 100644 index 0000000..d261f5d --- /dev/null +++ b/src/test/resources/datax/pg2s3_1.json @@ -0,0 +1,92 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 2 + } + }, + "content": [ + { + "reader": { + "name": "postgresqlreader", + "parameter": { + "username": "xx", + "password": "xx", + "column": [ + "id","name" + ], + "splitPk": "id", + "connection": [ + { + "table": [ + "table" + ], + "jdbcUrl": [ + "jdbc:postgresql://host:port/database" + ] + } + ] + } + }, + "writer": { + "name": "s3writer", + "parameter": { + "bucket": "bitestduhanmin", + "path": "ods/flinkx/ww/pt=20200508/", + "fieldDelimiter": ",", + "compression":"SNAPPY", + "stored":"PARQUET", + "writeMode": "truncate", + "column":[ + { + "name": "qw", + "type": "bigint" + }, + { + "name": "qwqw", + "type": "bigint" + }, + { + "name": "a", + "type": "string" + }, + { + "name": "b", + "type": "string" + }, + { + "name": "column_5", + "type": "decimal(10,2)" + } + , + { + "name": "column_6", + "type": "decimal(10,4)" + } + , + { + "name": "column_7", + "type": "string" + } + , + { + "name": "column_8", + "type": "bigint" + } + , + { + "name": "column_9", + "type": "bigint" + } + , + { + "name": "column_10", + "type": "boolean" + } + ] + } + } + } + ] + } +} From 07aaec4fc12764dc07afa9736f5520d1f31b7598 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 28 Dec 2021 19:45:37 +0800 Subject: [PATCH 15/56] =?UTF-8?q?datax=20=E8=A1=80=E7=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index beeb596..aaf136d 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ * 特别提示:presto和spark均支持with语法 * 目前解析到表级别,可以扩展到字段级别 +* 支持datax mysql/pg/s3血缘 # 编译 From 139e7654f0c5de27bcee8294ab877a639790bdde Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 28 Dec 2021 19:51:20 +0800 Subject: [PATCH 16/56] =?UTF-8?q?datax=20=E8=A1=80=E7=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aaf136d..453d942 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ * 特别提示:presto和spark均支持with语法 * 目前解析到表级别,可以扩展到字段级别 -* 支持datax mysql/pg/s3血缘 +* 支持datax血缘(mysql/pg/s3) # 编译 From 1dde9c2c69175248a45f7b54df62ab4bcf68352e Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 29 Dec 2021 12:36:04 +0800 Subject: [PATCH 17/56] =?UTF-8?q?datax=20=E8=A1=80=E7=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 +- .../com/github/bigdata/sql/parser/Data.kt | 5 +- .../bigdata/sql/parser/datax/DataxLHelper.kt | 19 +- .../sql/parser/datax/commons/DataxType.java | 35 -- .../sql/parser/datax/commons/DataxType.kt | 17 + .../sql/parser/datax/reader/DBReader.java | 130 ------- .../sql/parser/datax/reader/DBReader.kt | 99 +++++ .../sql/parser/datax/reader/S3Reader.java | 21 - .../sql/parser/datax/reader/S3Reader.kt | 40 ++ .../sql/parser/datax/writer/DBWriter.java | 9 - .../sql/parser/datax/writer/DBWriter.kt | 55 +++ .../sql/parser/datax/writer/S3Writer.java | 65 ---- .../sql/parser/datax/writer/S3Writer.kt | 40 ++ .../sql/parser/presto/PrestoSQLHelper.kt | 11 +- .../sql/parser/util/SqlParserTool.java | 366 ------------------ .../bigdata/sql/parser/util/SqlParserTool.kt | 331 ++++++++++++++++ .../sql/parser/datax/DataxParserTest.kt | 2 + src/test/resources/datax/s32mysql.json | 91 +++++ src/test/resources/datax/s32pg.json | 87 +++++ 19 files changed, 788 insertions(+), 641 deletions(-) delete mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.kt delete mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt delete mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt delete mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt delete mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt delete mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.kt create mode 100644 src/test/resources/datax/s32mysql.json create mode 100644 src/test/resources/datax/s32pg.json diff --git a/pom.xml b/pom.xml index 9690b97..6cf8a1b 100644 --- a/pom.xml +++ b/pom.xml @@ -57,9 +57,9 @@ - io.trino - trino-parser - 366 + com.facebook.presto + presto-parser + 0.259.1 diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt b/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt index aeb936d..7451091 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt @@ -80,13 +80,14 @@ data class TableData( @DefaultConstructor data class TableSource( + var connectors: String? = null, var databaseName: String?, - var tableName: String, + var tableName: String?, var column: DcColumn? = null, var columns: List? = ArrayList() ): Statement() { constructor(databaseName: String?, - tableName: String): this(databaseName, tableName, null) + tableName: String): this(null,databaseName, tableName, null) } data class DcRenameTable( diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt index 5f46c7d..58a0927 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -8,6 +8,8 @@ import com.github.bigdata.sql.parser.TableData import com.github.bigdata.sql.parser.TableSource import com.github.bigdata.sql.parser.datax.commons.DataxType import com.github.bigdata.sql.parser.datax.reader.DBReader +import com.github.bigdata.sql.parser.datax.reader.S3Reader +import com.github.bigdata.sql.parser.datax.writer.DBWriter import com.github.bigdata.sql.parser.datax.writer.S3Writer /** @@ -41,23 +43,28 @@ object DataxLHelper { val statementData = TableData() + var tableSourceReader:TableSource? = null //拿到reader if (readerName.equals(DataxType.Reader.pg.code) || readerName.equals(DataxType.Reader.mysql.code)){ val dbReader = DBReader(readerName,reader) - var tableSource = TableSource(dbReader.db, dbReader.table,null,dbReader.columns) - statementData.inputTables.add(tableSource) + tableSourceReader = TableSource(dbReader.connectors,dbReader.db, dbReader.table,null,dbReader.columns) }else if (readerName.equals(DataxType.Reader.s3.code)){ - + val s3Reader = S3Reader(readerName,reader) + tableSourceReader = TableSource(null,s3Reader.db, s3Reader.table,null,s3Reader.columns) } + tableSourceReader?.let { statementData.inputTables.add(it) } + var tableSourceWriter:TableSource? = null //拿到writer if (writerName.equals(DataxType.Writer.pg.code) || writerName.equals(DataxType.Writer.mysql.code)){ - + val dbWriter = DBWriter(writerName, writer) + tableSourceWriter = TableSource(dbWriter.connectors,dbWriter.db, dbWriter.table,null,dbWriter.columns) }else if (writerName.equals(DataxType.Writer.s3.code)){ val s3Writer = S3Writer(writerName, writer) - var tableSource = TableSource(s3Writer.db, s3Writer.table,null,s3Writer.columns) - statementData.outpuTables.add(tableSource) + tableSourceWriter = TableSource(s3Writer.connectors,s3Writer.db, s3Writer.table,null,s3Writer.columns) + } + tableSourceWriter?.let { statementData.outpuTables.add(it) } return StatementData(StatementType.UNKOWN, statementData) } diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java deleted file mode 100644 index 9fd6632..0000000 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.github.bigdata.sql.parser.datax.commons; - -/** - * Author: duhanmin - * Description: - * Date: 2021/12/28 16:09 - */ -public interface DataxType { - - enum Reader { - mysql("mysqlreader"),pg("postgresqlreader"),s3("s3reader"); - private String code; - - Reader(String name) { - this.code = name; - } - - public String getCode() { - return code; - } - } - - enum Writer { - mysql("mysqlwriter"),pg("postgresqlwriter"),s3("s3writer"); - private String code; - - Writer(String name) { - this.code = name; - } - - public String getCode() { - return code; - } - } -} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.kt new file mode 100644 index 0000000..720c13a --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/commons/DataxType.kt @@ -0,0 +1,17 @@ +package com.github.bigdata.sql.parser.datax.commons + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/29 11:12 + */ +class DataxType { + enum class Reader(val code: String) { + mysql("mysqlreader"), pg("postgresqlreader"), s3("s3reader"); + } + + enum class Writer(val code: String) { + mysql("mysqlwriter"), pg("postgresqlwriter"), s3("s3writer"); + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java deleted file mode 100644 index 49812cc..0000000 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.github.bigdata.sql.parser.datax.reader; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.github.bigdata.sql.parser.Statement; -import com.github.bigdata.sql.parser.TableData; -import com.github.bigdata.sql.parser.TableSource; -import com.github.bigdata.sql.parser.datax.commons.DataxType; -import com.github.bigdata.sql.parser.tidb.TidbSQLHelper; -import com.github.bigdata.sql.parser.util.SqlParserTool; - -import java.util.ArrayList; -import java.util.List; - -/** - * Author: duhanmin - * Description: - * Date: 2021/12/28 15:38 - */ -public class DBReader { - - private String name; - private JSONObject reader; - private String db; - private String table; - private List columns = new ArrayList<>(); - - public DBReader(String name,JSONObject reader) throws Exception { - this.name = name; - this.reader = reader; - init(); - - } - - private void init() throws Exception { - final JSONObject connection = reader.getJSONArray("connection").getJSONObject(0); - final String jdbcUrl = connection.getJSONArray("jdbcUrl").getStr(0); - final String[] split = jdbcUrl.split("/"); - - db = split[split.length-1]; - - if (DataxType.Reader.pg.getCode().equals(name)){ - pg(connection); - }else{ - db(connection); - } - - } - - private void pg(JSONObject connection) throws Exception { - if (!reader.containsKey("column")){ - final String querySql = connection.getJSONArray("querySql").getStr(0); - final Statement statement = TidbSQLHelper.getStatementData(querySql).getStatement(); - - TableData tableData; - if (statement instanceof TableData) { - tableData = (TableData) statement; - }else { - throw new RuntimeException("血缘无法解析 -> "+statement); - } - - final TableSource tableSource = tableData.getInputTables().get(0); - String databaseName = tableSource.getDatabaseName(); - if (StrUtil.isBlank(databaseName)) databaseName = "public"; - table = databaseName + "." + tableSource.getTableName(); - columns.addAll(SqlParserTool.getSelectColumnName(querySql)); - }else { - final String table = connection.getJSONArray("table").getStr(0); - if (!table.contains(".")){ - this.table = "public" + "." + table; - } - final JSONArray column = reader.getJSONArray("column"); - columns.addAll(JSONUtil.toList(column,String.class)); - } - } - - private void db(JSONObject connection) throws Exception { - if (!reader.containsKey("column")){ - final String querySql = connection.getJSONArray("querySql").getStr(0); - final Statement statement = TidbSQLHelper.getStatementData(querySql).getStatement(); - - TableData tableData; - if (statement instanceof TableData) { - tableData = (TableData) statement; - }else { - throw new RuntimeException("血缘无法解析 -> "+statement); - } - - final TableSource tableSource = tableData.getInputTables().get(0); - - table = tableSource.getTableName(); - columns.addAll(SqlParserTool.getSelectColumnName(querySql)); - }else { - table = connection.getJSONArray("table").getStr(0); - final JSONArray column = reader.getJSONArray("column"); - columns.addAll(JSONUtil.toList(column,String.class)); - } - } - - public String getDb() { - return db; - } - - public void setDb(String db) { - this.db = db; - } - - public String getTable() { - return table; - } - - public void setTable(String table) { - this.table = table; - } - - public List getColumns() { - return columns; - } - - public void setColumns(List columns) { - this.columns = columns; - } - - @Override - public String toString() { - return JSONUtil.toJsonStr(this); - } -} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt new file mode 100644 index 0000000..97fbe18 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -0,0 +1,99 @@ +package com.github.bigdata.sql.parser.datax.reader + +import cn.hutool.core.util.StrUtil +import cn.hutool.json.JSONObject +import cn.hutool.json.JSONUtil +import com.github.bigdata.sql.parser.TableData +import com.github.bigdata.sql.parser.datax.commons.DataxType +import com.github.bigdata.sql.parser.tidb.TidbSQLHelper.getStatementData +import com.github.bigdata.sql.parser.util.SqlParserTool + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/29 11:13 + */ +class DBReader { + private var name: String? = null + private var reader: JSONObject? = null + var connectors: String? = null + var db: String? = null + var table: String? = null + var columns: MutableList = ArrayList() + + @Throws(Exception::class) + constructor(name: String?, reader: JSONObject?) { + this.name = name + this.reader = reader + init() + } + + @Throws(Exception::class) + private fun init() { + val connection = reader!!.getJSONArray("connection").getJSONObject(0) + var jdbcUrl = connection.getJSONArray("jdbcUrl").getStr(0) + if (jdbcUrl.contains("?")){ + jdbcUrl = jdbcUrl.split("?")[0] + } + val split = jdbcUrl.split("/").toTypedArray() + db = split[split.size - 1] + if (DataxType.Reader.pg.code == name) { + pg(connection) + } else { + db(connection) + } + } + + @Throws(Exception::class) + private fun pg(connection: JSONObject) { + connectors = db + if (!reader!!.containsKey("column")) { + val querySql = connection.getJSONArray("querySql").getStr(0) + val statement = getStatementData(querySql).statement + val tableData: TableData + tableData = if (statement is TableData) { + statement + } else { + throw RuntimeException("血缘无法解析 -> $statement") + } + val (_, databaseName, tableName) = tableData.inputTables[0] + db = if (StrUtil.isBlank(databaseName)) "public" else databaseName + table = tableName + columns.addAll(SqlParserTool.getSelectColumnName(querySql)) + } else { + val table = connection.getJSONArray("table").getStr(0) + if (!table.contains(".")) { + db = "public" + this.table = table + } else { + val tables = table.split(".").toTypedArray() + db = tables[0] + this.table = tables[1] + } + val column = reader!!.getJSONArray("column") + columns.addAll(JSONUtil.toList(column, String::class.java)) + } + } + + @Throws(Exception::class) + private fun db(connection: JSONObject) { + if (!reader!!.containsKey("column")) { + val querySql = connection.getJSONArray("querySql").getStr(0) + val statement = getStatementData(querySql).statement + val tableData: TableData + tableData = if (statement is TableData) { + statement + } else { + throw RuntimeException("血缘无法解析 -> $statement") + } + val (_, _, tableName) = tableData.inputTables[0] + table = tableName + columns.addAll(SqlParserTool.getSelectColumnName(querySql)) + } else { + table = connection.getJSONArray("table").getStr(0) + val column = reader!!.getJSONArray("column") + columns.addAll(JSONUtil.toList(column, String::class.java)) + } + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java deleted file mode 100644 index cc57191..0000000 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.github.bigdata.sql.parser.datax.reader; - -import cn.hutool.json.JSONObject; - -import java.util.ArrayList; -import java.util.List; - -/** - * Author: duhanmin - * Description: - * Date: 2021/12/28 15:38 - */ -public class S3Reader { - - private String name; - private JSONObject reader; - private String db; - private String table; - private List columns = new ArrayList<>(); - -} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt new file mode 100644 index 0000000..8152e59 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt @@ -0,0 +1,40 @@ +package com.github.bigdata.sql.parser.datax.reader + +import cn.hutool.core.util.ArrayUtil +import cn.hutool.json.JSONObject + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/29 11:14 + */ +class S3Reader { + private var name: String? = null + private var reader: JSONObject? = null + var db: String? = null + var table: String? = null + var columns: MutableList = ArrayList() + + @Throws(Exception::class) + constructor(name: String?, reader: JSONObject?) { + this.name = name + this.reader = reader + init() + } + + @Throws(Exception::class) + private fun init() { + val path = reader!!.getJSONArray("path").getStr(0) + val split = path.split("/").toTypedArray() + if (split.size < 3) throw RuntimeException("path 无法解析出库和表,path:" + ArrayUtil.toString(split)) + db = split[1] + table = split[2] + val columns = reader!!.getJSONArray("column") + for (i in columns.indices) { + val column = columns.getJSONObject(i) + if (column.containsKey("name")) + this.columns.add(column.getStr("name")) + } + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java deleted file mode 100644 index ecd84fa..0000000 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.github.bigdata.sql.parser.datax.writer; - -/** - * Author: duhanmin - * Description: - * Date: 2021/12/28 15:38 - */ -public class DBWriter { -} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt new file mode 100644 index 0000000..798391f --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt @@ -0,0 +1,55 @@ +package com.github.bigdata.sql.parser.datax.writer + +import cn.hutool.json.JSONObject +import cn.hutool.json.JSONUtil +import com.github.bigdata.sql.parser.datax.commons.DataxType + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/29 11:14 + */ +class DBWriter { + private var name: String? = null + private var writer: JSONObject? = null + var db: String? = null + var table: String? = null + var connectors: String? = null + var columns: MutableList = ArrayList() + + @Throws(Exception::class) + constructor(name: String?, writer: JSONObject?) { + this.name = name + this.writer = writer + init() + } + + @Throws(Exception::class) + private fun init() { + val connection = writer!!.getJSONArray("connection").getJSONObject(0) + var jdbcUrl = connection.getStr("jdbcUrl") + if (jdbcUrl.contains("?")){ + jdbcUrl = jdbcUrl.split("?")[0] + } + val split = jdbcUrl.split("/").toTypedArray() + + db = split[split.size - 1] + val table = connection.getJSONArray("table").getStr(0) + this.table = table + + if (DataxType.Writer.pg.code == name) { + connectors = db + if (!table.contains(".")) { + db = "public" + this.table = table + } else { + val tables = table.split(".").toTypedArray() + db = tables[0] + this.table = tables[1] + } + } + val column = writer!!.getJSONArray("column") + columns.addAll(JSONUtil.toList(column, String::class.java)) + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java deleted file mode 100644 index adf1c79..0000000 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.github.bigdata.sql.parser.datax.writer; - -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; - -import java.util.ArrayList; -import java.util.List; - -/** - * Author: duhanmin - * Description: - * Date: 2021/12/28 15:38 - */ -public class S3Writer { - private String name; - private JSONObject writer; - private String db; - private String table; - private List columns = new ArrayList<>(); - - public S3Writer(String name, JSONObject writer) throws Exception { - this.name = name; - this.writer = writer; - init(); - } - - private void init() throws Exception { - final String path = writer.getStr("path"); - final String[] split = path.split("/"); - if (!(split.length >= 3)) throw new RuntimeException("path 无法解析出库和表,path:"+ ArrayUtil.toString(split)); - db = split[1]; - table = split[2]; - - final JSONArray column = writer.getJSONArray("column"); - for (int i = 0; i < column.size(); i++) { - final String name = column.getJSONObject(i).getStr("name"); - columns.add(name); - } - } - - public String getDb() { - return db; - } - - public void setDb(String db) { - this.db = db; - } - - public String getTable() { - return table; - } - - public void setTable(String table) { - this.table = table; - } - - public List getColumns() { - return columns; - } - - public void setColumns(List columns) { - this.columns = columns; - } -} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt new file mode 100644 index 0000000..eecd5cc --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt @@ -0,0 +1,40 @@ +package com.github.bigdata.sql.parser.datax.writer + +import cn.hutool.core.util.ArrayUtil +import cn.hutool.json.JSONObject + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/29 11:14 + */ +class S3Writer { + private var name: String? = null + private var writer: JSONObject? = null + var db: String? = null + var table: String? = null + var connectors: String? = null + var columns: MutableList = ArrayList() + + @Throws(Exception::class) + constructor(name: String?, writer: JSONObject?) { + this.name = name + this.writer = writer + init() + } + + @Throws(Exception::class) + private fun init() { + val path = writer!!.getStr("path") + val split = path.split("/").toTypedArray() + if (split.size < 3) throw RuntimeException("path 无法解析出库和表,path:" + ArrayUtil.toString(split)) + db = split[1] + table = split[2] + val column = writer!!.getJSONArray("column") + for (i in column.indices) { + val name = column.getJSONObject(i).getStr("name") + columns.add(name) + } + } +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index ff9d9c9..cc7e933 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -1,8 +1,11 @@ package com.github.bigdata.sql.parser.presto -import io.trino.sql.parser.ParsingOptions -import io.trino.sql.parser.SqlParser -import io.trino.sql.tree.* +import com.facebook.presto.sql.parser.ParsingOptions +import com.facebook.presto.sql.parser.SqlParser +import com.facebook.presto.sql.tree.Insert +import com.facebook.presto.sql.tree.Node +import com.facebook.presto.sql.tree.QuerySpecification +import com.facebook.presto.sql.tree.Table import com.github.bigdata.sql.parser.StatementData import com.github.bigdata.sql.parser.StatementType import com.github.bigdata.sql.parser.TableData @@ -57,7 +60,7 @@ object PrestoSQLHelper { return tableSource } - private fun maxDepthLeaf(treeList: List,statement:TableData) { + private fun maxDepthLeaf(treeList: List, statement:TableData) { if (CollectionUtils.isNotEmpty(treeList)) { for (node in treeList) { diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java b/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java deleted file mode 100644 index 87b110f..0000000 --- a/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.java +++ /dev/null @@ -1,366 +0,0 @@ -package com.github.bigdata.sql.parser.util; - -import net.sf.jsqlparser.JSQLParserException; -import net.sf.jsqlparser.expression.*; -import net.sf.jsqlparser.parser.CCJSqlParserUtil; -import net.sf.jsqlparser.parser.SimpleNode; -import net.sf.jsqlparser.schema.Column; -import net.sf.jsqlparser.schema.Table; -import net.sf.jsqlparser.statement.Statement; -import net.sf.jsqlparser.statement.alter.Alter; -import net.sf.jsqlparser.statement.create.index.CreateIndex; -import net.sf.jsqlparser.statement.create.table.CreateTable; -import net.sf.jsqlparser.statement.create.view.CreateView; -import net.sf.jsqlparser.statement.delete.Delete; -import net.sf.jsqlparser.statement.drop.Drop; -import net.sf.jsqlparser.statement.execute.Execute; -import net.sf.jsqlparser.statement.insert.Insert; -import net.sf.jsqlparser.statement.merge.Merge; -import net.sf.jsqlparser.statement.replace.Replace; -import net.sf.jsqlparser.statement.select.*; -import net.sf.jsqlparser.statement.truncate.Truncate; -import net.sf.jsqlparser.statement.update.Update; -import net.sf.jsqlparser.statement.upsert.Upsert; -import net.sf.jsqlparser.util.TablesNamesFinder; -import org.apache.calcite.avatica.SqlType; - -import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * @description: jsqlparser解析SQL工具类 - * PlainSelect类不支持union、union all等请使用SetOperationList接口 - * Author: duhanmin - * Description: - * Date: 2021/12/28 17:56 - */ -public class SqlParserTool { - - - /** - * 由于jsqlparser没有获取SQL类型的原始工具,并且在下面操作时需要知道SQL类型,所以编写此工具方法 - * - * @param sql sql语句 - * @return sql类型, - * @throws JSQLParserException - */ - public static SqlType getSqlType(String sql) throws JSQLParserException { - Statement sqlStmt = CCJSqlParserUtil.parse(new StringReader(sql)); - if (sqlStmt instanceof Alter) { - return SqlType.ALTER; - } else if (sqlStmt instanceof CreateIndex) { - return SqlType.CREATEINDEX; - } else if (sqlStmt instanceof CreateTable) { - return SqlType.CREATETABLE; - } else if (sqlStmt instanceof CreateView) { - return SqlType.CREATEVIEW; - } else if (sqlStmt instanceof Delete) { - return SqlType.DELETE; - } else if (sqlStmt instanceof Drop) { - return SqlType.DROP; - } else if (sqlStmt instanceof Execute) { - return SqlType.EXECUTE; - } else if (sqlStmt instanceof Insert) { - return SqlType.INSERT; - } else if (sqlStmt instanceof Merge) { - return SqlType.MERGE; - } else if (sqlStmt instanceof Replace) { - return SqlType.REPLACE; - } else if (sqlStmt instanceof Select) { - return SqlType.SELECT; - } else if (sqlStmt instanceof Truncate) { - return SqlType.TRUNCATE; - } else if (sqlStmt instanceof Update) { - return SqlType.UPDATE; - } else if (sqlStmt instanceof Upsert) { - return SqlType.UPSERT; - } else { - return SqlType.NONE; - } - } - - /** - * 获取sql操作接口,与上面类型判断结合使用 - * example: - * String sql = "create table a(a string)"; - * SqlType sqlType = SqlParserTool.getSqlType(sql); - * if(sqlType.equals(SqlType.SELECT)){ - * Select statement = (Select) SqlParserTool.getStatement(sql); - * } - * - * @param sql - * @return - * @throws JSQLParserException - */ - public static Statement getStatement(String sql) throws JSQLParserException { - Statement sqlStmt = CCJSqlParserUtil.parse(new StringReader(sql)); - return sqlStmt; - } - - /** - * 获取tables的表名 - * - * @param statement - * @return - */ - public static List getTableList(Select statement) { - TablesNamesFinder tablesNamesFinder = new TablesNamesFinder(); - List tableList = tablesNamesFinder.getTableList(statement); - return tableList; - } - - /** - * 获取join层级 - * - * @param selectBody - * @return - */ - public static List getJoins(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - List joins = ((PlainSelect) selectBody).getJoins(); - return joins; - } - return new ArrayList(); - } - - /** - * @param selectBody - * @return - */ - public static List
getIntoTables(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - List
tables = ((PlainSelect) selectBody).getIntoTables(); - return tables; - } - return new ArrayList
(); - } - - /** - * @param selectBody - * @return - */ - public static void setIntoTables(SelectBody selectBody, List
tables) { - if (selectBody instanceof PlainSelect) { - ((PlainSelect) selectBody).setIntoTables(tables); - } - } - - /** - * 获取limit值 - * - * @param selectBody - * @return - */ - public static Limit getLimit(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - Limit limit = ((PlainSelect) selectBody).getLimit(); - return limit; - } - return null; - } - - /** - * 为SQL增加limit值 - * - * @param selectBody - * @param l - */ - public static void setLimit(SelectBody selectBody, long l) { - if (selectBody instanceof PlainSelect) { - Limit limit = new Limit(); - limit.setRowCount(new LongValue(String.valueOf(l))); - ((PlainSelect) selectBody).setLimit(limit); - } - } - - /** - * 获取FromItem不支持子查询操作 - * - * @param selectBody - * @return - */ - public static FromItem getFromItem(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - FromItem fromItem = ((PlainSelect) selectBody).getFromItem(); - return fromItem; - } else if (selectBody instanceof WithItem) { - SqlParserTool.getFromItem(((WithItem) selectBody).getSelectBody()); - } - return null; - } - - /** - * 获取子查询 - * - * @param selectBody - * @return - */ - public static SubSelect getSubSelect(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - FromItem fromItem = ((PlainSelect) selectBody).getFromItem(); - if (fromItem instanceof SubSelect) { - return ((SubSelect) fromItem); - } - } else if (selectBody instanceof WithItem) { - SqlParserTool.getSubSelect(((WithItem) selectBody).getSelectBody()); - } - return null; - } - - /** - * 判断是否为多级子查询 - * - * @param selectBody - * @return - */ - public static boolean isMultiSubSelect(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - FromItem fromItem = ((PlainSelect) selectBody).getFromItem(); - if (fromItem instanceof SubSelect) { - SelectBody subBody = ((SubSelect) fromItem).getSelectBody(); - if (subBody instanceof PlainSelect) { - FromItem subFromItem = ((PlainSelect) subBody).getFromItem(); - if (subFromItem instanceof SubSelect) { - return true; - } - } - } - } - return false; - } - - /** - * 获取查询字段 - * - * @param selectBody - * @return - */ - public static List getSelectItems(SelectBody selectBody) { - if (selectBody instanceof PlainSelect) { - List selectItems = ((PlainSelect) selectBody).getSelectItems(); - return selectItems; - } - return null; - } - - public static List getSelectColumnName(String selectSql) throws JSQLParserException { - - SqlType sqlType = getSqlType(selectSql); - List items = new ArrayList<>(); - - if (sqlType.equals(SqlType.SELECT)) { - Select select = (Select) SqlParserTool.getStatement(selectSql); - PlainSelect plain = (PlainSelect) select.getSelectBody(); - List selectItems = plain.getSelectItems(); - - if (selectItems != null) { - for (SelectItem selectItem : selectItems) { - if (selectItem instanceof SelectExpressionItem) { - SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem; - - String columnName = ""; - Alias alias = selectExpressionItem.getAlias(); - - Expression expression = selectExpressionItem.getExpression(); - if (expression instanceof CaseExpression) { - // case表达式 - columnName = alias.getName(); - } else if (expression instanceof LongValue || expression instanceof StringValue || expression instanceof DateValue || expression instanceof DoubleValue) { - // 值表达式 - columnName = Objects.nonNull(alias.getName()) ? alias.getName() : expression.getASTNode().jjtGetValue().toString(); - } else if (expression instanceof TimeKeyExpression) { - // 日期 - columnName = alias.getName(); - } else { - if (alias != null) { - columnName = alias.getName(); - } else { - SimpleNode node = expression.getASTNode(); - Object value = node.jjtGetValue(); - if (value instanceof Column) { - columnName = ((Column) value).getColumnName(); - } else if (value instanceof Function) { - columnName = value.toString(); - } else { - // 增加对select 'aaa' from table; 的支持 - columnName = String.valueOf(value); - columnName = columnName.replace("'", ""); - columnName = columnName.replace("\"", ""); - columnName = columnName.replace("`", ""); - } - } - } - - columnName = columnName.replace("'", ""); - columnName = columnName.replace("\"", ""); - columnName = columnName.replace("`", ""); - - items.add(columnName); - } else if (selectItem instanceof AllTableColumns) { - AllTableColumns allTableColumns = (AllTableColumns) selectItem; - items.add(allTableColumns.toString()); - } else { - items.add(selectItem.toString()); - } - } - } - } - return items; - } - - public static void main(String[] args) throws JSQLParserException { - String sql = "select userid,username as name,CASE WHEN age < 18 THEN 0 WHEN age >= 18 AND age < 60 THEN 1 ELSE 2 END AS age, sex from student"; - /*SqlType sqlType = SqlParserTool.getSqlType(sql); - if (sqlType.equals(SqlType.SELECT)) { - Select statement = (Select) SqlParserTool.getStatement(sql); - SelectBody selectBody = statement.getSelectBody(); - SubSelect subSelect = SqlParserTool.getSubSelect(selectBody); - System.out.println(subSelect); - List selectItems = getSelectItems(subSelect.getSelectBody()); - selectItems.forEach(selectItem -> System.out.println(selectItem.getASTNode())); - - }*/ - List columnName = getSelectColumnName(sql); - for (String s : columnName) { - System.out.println(s); - } - } - - /** - * @description: 定义sql返回类型 - * @author: ZhiWen - * @create: 2021-02-23 - **/ - public enum SqlType { - ALTER, - CREATEINDEX, - CREATETABLE, - CREATEVIEW, - DELETE, - DROP, - EXECUTE, - INSERT, - MERGE, - REPLACE, - SELECT, - TRUNCATE, - UPDATE, - UPSERT, - NONE - } - - /*不需要引入依赖 - * - com.github.jsqlparser - jsqlparser - 1.4 - - * */ - -} - - - - diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.kt b/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.kt new file mode 100644 index 0000000..12edb31 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/util/SqlParserTool.kt @@ -0,0 +1,331 @@ +package com.github.bigdata.sql.parser.util + +import net.sf.jsqlparser.JSQLParserException +import net.sf.jsqlparser.expression.* +import net.sf.jsqlparser.expression.Function +import net.sf.jsqlparser.parser.CCJSqlParserUtil +import net.sf.jsqlparser.schema.Column +import net.sf.jsqlparser.schema.Table +import net.sf.jsqlparser.statement.Statement +import net.sf.jsqlparser.statement.alter.Alter +import net.sf.jsqlparser.statement.create.index.CreateIndex +import net.sf.jsqlparser.statement.create.table.CreateTable +import net.sf.jsqlparser.statement.create.view.CreateView +import net.sf.jsqlparser.statement.delete.Delete +import net.sf.jsqlparser.statement.drop.Drop +import net.sf.jsqlparser.statement.execute.Execute +import net.sf.jsqlparser.statement.insert.Insert +import net.sf.jsqlparser.statement.merge.Merge +import net.sf.jsqlparser.statement.replace.Replace +import net.sf.jsqlparser.statement.select.* +import net.sf.jsqlparser.statement.truncate.Truncate +import net.sf.jsqlparser.statement.update.Update +import net.sf.jsqlparser.statement.upsert.Upsert +import net.sf.jsqlparser.util.TablesNamesFinder +import java.io.StringReader +import java.util.* + +/** + * + * Author: duhanmin + * Description: + * Date: 2021/12/29 11:21 + */ +object SqlParserTool { + + /** + * 由于jsqlparser没有获取SQL类型的原始工具,并且在下面操作时需要知道SQL类型,所以编写此工具方法 + * + * @param sql sql语句 + * @return sql类型, + * @throws JSQLParserException + */ + @Throws(JSQLParserException::class) + fun getSqlType(sql: String?): SqlType { + val sqlStmt = CCJSqlParserUtil.parse(StringReader(sql)) + return if (sqlStmt is Alter) { + SqlType.ALTER + } else if (sqlStmt is CreateIndex) { + SqlType.CREATEINDEX + } else if (sqlStmt is CreateTable) { + SqlType.CREATETABLE + } else if (sqlStmt is CreateView) { + SqlType.CREATEVIEW + } else if (sqlStmt is Delete) { + SqlType.DELETE + } else if (sqlStmt is Drop) { + SqlType.DROP + } else if (sqlStmt is Execute) { + SqlType.EXECUTE + } else if (sqlStmt is Insert) { + SqlType.INSERT + } else if (sqlStmt is Merge) { + SqlType.MERGE + } else if (sqlStmt is Replace) { + SqlType.REPLACE + } else if (sqlStmt is Select) { + SqlType.SELECT + } else if (sqlStmt is Truncate) { + SqlType.TRUNCATE + } else if (sqlStmt is Update) { + SqlType.UPDATE + } else if (sqlStmt is Upsert) { + SqlType.UPSERT + } else { + SqlType.NONE + } + } + + /** + * 获取sql操作接口,与上面类型判断结合使用 + * example: + * String sql = "create table a(a string)"; + * SqlType sqlType = SqlParserTool.getSqlType(sql); + * if(sqlType.equals(SqlType.SELECT)){ + * Select statement = (Select) SqlParserTool.getStatement(sql); + * } + * + * @param sql + * @return + * @throws JSQLParserException + */ + @Throws(JSQLParserException::class) + fun getStatement(sql: String?): Statement? { + return CCJSqlParserUtil.parse(StringReader(sql)) + } + + /** + * 获取tables的表名 + * + * @param statement + * @return + */ + fun getTableList(statement: Select?): List? { + val tablesNamesFinder = TablesNamesFinder() + return tablesNamesFinder.getTableList(statement) + } + + /** + * 获取join层级 + * + * @param selectBody + * @return + */ + fun getJoins(selectBody: SelectBody?): List? { + return if (selectBody is PlainSelect) { + selectBody.joins + } else ArrayList() + } + + /** + * @param selectBody + * @return + */ + fun getIntoTables(selectBody: SelectBody?): List? { + return if (selectBody is PlainSelect) { + selectBody.intoTables + } else ArrayList() + } + + /** + * @param selectBody + * @return + */ + fun setIntoTables(selectBody: SelectBody?, tables: List?) { + if (selectBody is PlainSelect) { + selectBody.intoTables = tables + } + } + + /** + * 获取limit值 + * + * @param selectBody + * @return + */ + fun getLimit(selectBody: SelectBody?): Limit? { + return if (selectBody is PlainSelect) { + selectBody.limit + } else null + } + + /** + * 为SQL增加limit值 + * + * @param selectBody + * @param l + */ + fun setLimit(selectBody: SelectBody?, l: Long) { + if (selectBody is PlainSelect) { + val limit = Limit() + limit.rowCount = LongValue(l.toString()) + selectBody.limit = limit + } + } + + /** + * 获取FromItem不支持子查询操作 + * + * @param selectBody + * @return + */ + fun getFromItem(selectBody: SelectBody?): FromItem? { + if (selectBody is PlainSelect) { + return selectBody.fromItem + } else if (selectBody is WithItem) { + getFromItem(selectBody.selectBody) + } + return null + } + + /** + * 获取子查询 + * + * @param selectBody + * @return + */ + fun getSubSelect(selectBody: SelectBody?): SubSelect? { + if (selectBody is PlainSelect) { + val fromItem = selectBody.fromItem + if (fromItem is SubSelect) { + return fromItem + } + } else if (selectBody is WithItem) { + getSubSelect(selectBody.selectBody) + } + return null + } + + /** + * 判断是否为多级子查询 + * + * @param selectBody + * @return + */ + fun isMultiSubSelect(selectBody: SelectBody?): Boolean { + if (selectBody is PlainSelect) { + val fromItem = selectBody.fromItem + if (fromItem is SubSelect) { + val subBody = fromItem.selectBody + if (subBody is PlainSelect) { + val subFromItem = subBody.fromItem + if (subFromItem is SubSelect) { + return true + } + } + } + } + return false + } + + /** + * 获取查询字段 + * + * @param selectBody + * @return + */ + fun getSelectItems(selectBody: SelectBody?): List? { + return if (selectBody is PlainSelect) { + selectBody.selectItems + } else null + } + + @Throws(JSQLParserException::class) + public fun getSelectColumnName(selectSql: String?): List { + val sqlType = getSqlType(selectSql) + val items: MutableList = ArrayList() + if (sqlType == SqlType.SELECT) { + val select = getStatement(selectSql) as Select + val plain = select.selectBody as PlainSelect + val selectItems = plain.selectItems + if (selectItems != null) { + for (selectItem in selectItems) { + if (selectItem is SelectExpressionItem) { + val selectExpressionItem = selectItem + var columnName = "" + val alias = selectExpressionItem.alias + val expression = selectExpressionItem.expression + if (expression is CaseExpression) { + // case表达式 + columnName = alias!!.name + } else if (expression is LongValue || expression is StringValue || expression is DateValue || expression is DoubleValue) { + // 值表达式 + columnName = + if (Objects.nonNull(alias!!.name)) alias.name else expression.astNode.jjtGetValue() + .toString() + } else if (expression is TimeKeyExpression) { + // 日期 + columnName = alias!!.name + } else { + if (alias != null) { + columnName = alias.name + } else { + val node = expression.astNode + val value = node.jjtGetValue() + if (value is Column) { + columnName = value.columnName + } else if (value is Function) { + columnName = value.toString() + } else { + // 增加对select 'aaa' from table; 的支持 + columnName = value.toString() + columnName = columnName.replace("'", "") + columnName = columnName.replace("\"", "") + columnName = columnName.replace("`", "") + } + } + } + columnName = columnName.replace("'", "") + columnName = columnName.replace("\"", "") + columnName = columnName.replace("`", "") + items.add(columnName) + } else if (selectItem is AllTableColumns) { + items.add(selectItem.toString()) + } else { + items.add(selectItem.toString()) + } + } + } + } + return items + } + + /** + * @description: 定义sql返回类型 + * @author: ZhiWen + * @create: 2021-02-23 + */ + enum class SqlType { + ALTER, CREATEINDEX, CREATETABLE, CREATEVIEW, DELETE, DROP, EXECUTE, INSERT, MERGE, REPLACE, SELECT, TRUNCATE, UPDATE, UPSERT, NONE + } + + /*不需要引入依赖 + * + com.github.jsqlparser + jsqlparser + 1.4 + + * */ + + @Throws(JSQLParserException::class) + @JvmStatic + fun main(args: Array) { + val sql = + "select userid,username as name,CASE WHEN age < 18 THEN 0 WHEN age >= 18 AND age < 60 THEN 1 ELSE 2 END AS age, sex from student" + /*SqlType sqlType = SqlParserTool.getSqlType(sql); + if (sqlType.equals(SqlType.SELECT)) { + Select statement = (Select) SqlParserTool.getStatement(sql); + SelectBody selectBody = statement.getSelectBody(); + SubSelect subSelect = SqlParserTool.getSubSelect(selectBody); + System.out.println(subSelect); + List selectItems = getSelectItems(subSelect.getSelectBody()); + selectItems.forEach(selectItem -> System.out.println(selectItem.getASTNode())); + + }*/ + + val columnName = SqlParserTool.getSelectColumnName(sql) + for (s in columnName) { + println(s) + } + } +} diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index a198861..0119790 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -23,5 +23,7 @@ class DataxParserTest { run("/datax/pg2s3_1.json") run("/datax/mysql2s3.json") run("/datax/mysql2s3_1.json") + run("/datax/s32mysql.json") + run("/datax/s32pg.json") } } diff --git a/src/test/resources/datax/s32mysql.json b/src/test/resources/datax/s32mysql.json new file mode 100644 index 0000000..959223f --- /dev/null +++ b/src/test/resources/datax/s32mysql.json @@ -0,0 +1,91 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 1 + } + }, + "content": [ + { + "reader": { + "name": "s3reader", + "parameter": { + "bucket": "bitestduhanmin", + "path": ["ods/s1/textfile_none/pt=202106510/"], + "stored": "text", + "fieldDelimiter": "\u0001", + "compression": "none", + "column": [ + { + "index": 0, + "type": "bigint" + }, + { + "index": 1, + "type": "bigint" + }, + { + "index": 2, + "type": "string" + }, + { + "index": 3, + "type": "string" + }, + { + "index": 4, + "type": "decimal(10,2)" + }, + { + "index": 5, + "type": "decimal(10,4)" + }, + { + "index": 6, + "type": "string" + }, + { + "index": 7, + "type": "timestamp" + }, + { + "index": 8, + "type": "date" + }, + { + "index": 9, + "type": "boolean" + } + ] + } + }, + "writer": { + "name": "mysqlwriter", + "parameter": { + "writeMode": "insert", + "username": "root", + "password": "root", + "column": [ + "id", + "name" + ], + "session": [ + "set session sql_mode='ANSI'" + ], + "preSql": [ + "delete from test" + ], + "connection": [ + { + "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/datax?useUnicode=true&characterEncoding=gbk", + "table": [ + "test" + ] + } + ] + } + } + } + ] + } +} diff --git a/src/test/resources/datax/s32pg.json b/src/test/resources/datax/s32pg.json new file mode 100644 index 0000000..6465698 --- /dev/null +++ b/src/test/resources/datax/s32pg.json @@ -0,0 +1,87 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 1 + } + }, + "content": [ + { + "reader": { + "name": "s3reader", + "parameter": { + "bucket": "bitestduhanmin", + "path": ["ods/s1/textfile_none/pt=202106510/"], + "stored": "text", + "fieldDelimiter": "\u0001", + "compression": "none", + "column": [ + { + "index": 0, + "type": "bigint" + }, + { + "index": 1, + "type": "bigint" + }, + { + "index": 2, + "type": "string" + }, + { + "index": 3, + "type": "string" + }, + { + "index": 4, + "type": "decimal(10,2)" + }, + { + "index": 5, + "type": "decimal(10,4)" + }, + { + "index": 6, + "type": "string" + }, + { + "index": 7, + "type": "timestamp" + }, + { + "index": 8, + "type": "date" + }, + { + "index": 9, + "type": "boolean" + } + ] + } + }, + "writer": { + "name": "postgresqlwriter", + "parameter": { + "username": "xx", + "password": "xx", + "column": [ + "id", + "name" + ], + "preSql": [ + "delete from test" + ], + "connection": [ + { + "jdbcUrl": "jdbc:postgresql://127.0.0.1:3002/datax", + "table": [ + "test" + ] + } + ] + } + } + } + ] + } +} From 5194ff1bab167a88077eab579d088a7166251f00 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 29 Dec 2021 16:50:03 +0800 Subject: [PATCH 18/56] del --- .../kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt index 58a0927..0de75e5 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -62,7 +62,6 @@ object DataxLHelper { }else if (writerName.equals(DataxType.Writer.s3.code)){ val s3Writer = S3Writer(writerName, writer) tableSourceWriter = TableSource(s3Writer.connectors,s3Writer.db, s3Writer.table,null,s3Writer.columns) - } tableSourceWriter?.let { statementData.outpuTables.add(it) } From 51a025907f7ce587410cf07519dbe48010add228 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 29 Dec 2021 16:56:43 +0800 Subject: [PATCH 19/56] =?UTF-8?q?add=20=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/github/bigdata/sql/parser/StatementType.kt | 5 ++++- .../com/github/bigdata/sql/parser/datax/DataxLHelper.kt | 2 +- .../com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt | 2 +- .../com/github/bigdata/sql/parser/datax/DataxParserTest.kt | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt b/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt index 37d8aaa..936e0f8 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt @@ -94,5 +94,8 @@ enum class StatementType: Serializable { JOB, USE, + DATAX, + PRESTO, + UNKOWN; -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt index 0de75e5..a420f18 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -65,6 +65,6 @@ object DataxLHelper { } tableSourceWriter?.let { statementData.outpuTables.add(it) } - return StatementData(StatementType.UNKOWN, statementData) + return StatementData(StatementType.DATAX, statementData) } } diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index cc7e933..94adb49 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -38,7 +38,7 @@ object PrestoSQLHelper { val hashSet = HashSet(statementData.inputTables) statementData.inputTables.clear() statementData.inputTables.addAll(hashSet) - return StatementData(StatementType.UNKOWN, statementData) + return StatementData(StatementType.PRESTO, statementData) } private fun tableSource(str: String): TableSource { diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index 0119790..af9c272 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -14,7 +14,7 @@ class DataxParserTest { fun run(path:String) { val json = readText(path) val statementData = DataxLHelper.getStatementData(json) - println(statementData.statement) + println(statementData) } @Test From b163222d007572bea8b848ed81a4a94507569402 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 29 Dec 2021 17:14:51 +0800 Subject: [PATCH 20/56] =?UTF-8?q?add=20=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/bigdata/sql/parser/datax/DataxParserTest.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index af9c272..00a1227 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -1,5 +1,6 @@ package com.github.bigdata.sql.parser.datax +import cn.hutool.json.JSONUtil import org.junit.Test /** @@ -14,7 +15,7 @@ class DataxParserTest { fun run(path:String) { val json = readText(path) val statementData = DataxLHelper.getStatementData(json) - println(statementData) + println(JSONUtil.toJsonStr(statementData)) } @Test From 77f16baa6d6a1a0cefdb0bce0e50d937e03b4381 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 29 Dec 2021 17:46:38 +0800 Subject: [PATCH 21/56] del --- pom.xml | 34 ++++++++++++++----- .../sql/parser/presto/PrestoSQLHelper.kt | 6 ++-- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 6cf8a1b..e907788 100644 --- a/pom.xml +++ b/pom.xml @@ -26,12 +26,6 @@ ${kotlin.version} - - commons-collections - commons-collections - 3.2.2 - - cn.hutool hutool-all @@ -48,12 +42,34 @@ org.apache.calcite.avatica avatica-core 1.16.0 + + + org.apache.httpcomponents + * + + + com.fasterxml.jackson.core + * + + + org.apache.calcite.avatica + avatica-metrics + + + org.slf4j + * + + + com.google.protobuf + * + + - commons-configuration - commons-configuration - 1.10 + commons-lang + commons-lang + 2.6 diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index 94adb49..d70260a 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -1,5 +1,6 @@ package com.github.bigdata.sql.parser.presto +import cn.hutool.core.collection.CollUtil import com.facebook.presto.sql.parser.ParsingOptions import com.facebook.presto.sql.parser.SqlParser import com.facebook.presto.sql.tree.Insert @@ -10,7 +11,6 @@ import com.github.bigdata.sql.parser.StatementData import com.github.bigdata.sql.parser.StatementType import com.github.bigdata.sql.parser.TableData import com.github.bigdata.sql.parser.TableSource -import org.apache.commons.collections.CollectionUtils import org.apache.commons.lang.StringUtils @@ -61,7 +61,7 @@ object PrestoSQLHelper { } private fun maxDepthLeaf(treeList: List, statement:TableData) { - if (CollectionUtils.isNotEmpty(treeList)) { + if (CollUtil.isNotEmpty(treeList)) { for (node in treeList) { val children = node.children @@ -78,7 +78,7 @@ object PrestoSQLHelper { statement.inputTables.add(tableSource(node.name.toString())) } - if (CollectionUtils.isNotEmpty(children)) { + if (CollUtil.isNotEmpty(children)) { maxDepthLeaf(children,statement) } } From 9fe5b767d8bf6cb89b66229a42be26ad20645997 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 30 Dec 2021 14:31:27 +0800 Subject: [PATCH 22/56] =?UTF-8?q?=E6=89=A9=E5=B1=95PrestoSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bigdata/sql/parser/presto/PrestoSQLHelper.kt | 4 ++-- .../bigdata/sql/parser/datax/DataxParserTest.kt | 13 ++++++++++++- .../sql/parser/presto/PrestoSqlParserTest.kt | 7 +++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index d70260a..b1ac440 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -45,10 +45,10 @@ object PrestoSQLHelper { val split = StringUtils.split(str, ".") var tableSource: TableSource = when (split.size) { 2 -> { - TableSource(split[0], split[1]) + TableSource("hive",split[0], split[1],null,null) } 3 -> { - TableSource(split[1], split[2]) + TableSource(split[0], split[1], split[2],null,null) } 1 -> { TableSource("", split[0]) diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index 00a1227..9142daa 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -1,6 +1,7 @@ package com.github.bigdata.sql.parser.datax import cn.hutool.json.JSONUtil +import com.github.bigdata.sql.parser.TableData import org.junit.Test /** @@ -15,7 +16,17 @@ class DataxParserTest { fun run(path:String) { val json = readText(path) val statementData = DataxLHelper.getStatementData(json) - println(JSONUtil.toJsonStr(statementData)) + val statement = statementData.statement + + val tableData: TableData + tableData = if (statement is TableData) { + statement + } else { + throw RuntimeException("血缘无法解析 -> $statement") + } + + println(statement) + //println(JSONUtil.toJsonStr(statementData)) } @Test diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt index c7ff597..9774906 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt @@ -23,4 +23,11 @@ class PrestoSqlParserTest { val statementData = PrestoSQLHelper.getStatementData(sql) println(statementData.statement) } + + @Test + fun sql2Test() { + val sql = "INSERT INTO a.adc.fsfd with recursive t as (select a,b,v from a.a.x) select a,b,v from t.t.re" + val statementData = PrestoSQLHelper.getStatementData(sql) + println(statementData.statement) + } } From 47a375cb74e388d64fd39516bdbe07e687a0ceeb Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 30 Dec 2021 14:56:41 +0800 Subject: [PATCH 23/56] =?UTF-8?q?=E6=89=A9=E5=B1=95PrestoSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index b1ac440..1faaa71 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -45,7 +45,7 @@ object PrestoSQLHelper { val split = StringUtils.split(str, ".") var tableSource: TableSource = when (split.size) { 2 -> { - TableSource("hive",split[0], split[1],null,null) + TableSource(split[0], split[1]) } 3 -> { TableSource(split[0], split[1], split[2],null,null) From 2861d8608012f0c5f4ce6bed69e3ee31847ad1c7 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 30 Dec 2021 15:51:44 +0800 Subject: [PATCH 24/56] =?UTF-8?q?=E6=89=A9=E5=B1=95PrestoSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/com/github/bigdata/sql/parser/Data.kt | 5 +++-- .../com/github/bigdata/sql/parser/datax/DataxLHelper.kt | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt b/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt index 7451091..607cb86 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt @@ -84,10 +84,11 @@ data class TableSource( var databaseName: String?, var tableName: String?, var column: DcColumn? = null, - var columns: List? = ArrayList() + var columns: List? = ArrayList(), + var type: String? = null ): Statement() { constructor(databaseName: String?, - tableName: String): this(null,databaseName, tableName, null) + tableName: String): this(null,databaseName, tableName, null, null) } data class DcRenameTable( diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt index a420f18..d1ff82e 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -47,10 +47,10 @@ object DataxLHelper { //拿到reader if (readerName.equals(DataxType.Reader.pg.code) || readerName.equals(DataxType.Reader.mysql.code)){ val dbReader = DBReader(readerName,reader) - tableSourceReader = TableSource(dbReader.connectors,dbReader.db, dbReader.table,null,dbReader.columns) + tableSourceReader = TableSource(dbReader.connectors,dbReader.db, dbReader.table,null,dbReader.columns,readerName) }else if (readerName.equals(DataxType.Reader.s3.code)){ val s3Reader = S3Reader(readerName,reader) - tableSourceReader = TableSource(null,s3Reader.db, s3Reader.table,null,s3Reader.columns) + tableSourceReader = TableSource(null,s3Reader.db, s3Reader.table,null,s3Reader.columns,readerName) } tableSourceReader?.let { statementData.inputTables.add(it) } @@ -58,10 +58,10 @@ object DataxLHelper { //拿到writer if (writerName.equals(DataxType.Writer.pg.code) || writerName.equals(DataxType.Writer.mysql.code)){ val dbWriter = DBWriter(writerName, writer) - tableSourceWriter = TableSource(dbWriter.connectors,dbWriter.db, dbWriter.table,null,dbWriter.columns) + tableSourceWriter = TableSource(dbWriter.connectors,dbWriter.db, dbWriter.table,null,dbWriter.columns,readerName) }else if (writerName.equals(DataxType.Writer.s3.code)){ val s3Writer = S3Writer(writerName, writer) - tableSourceWriter = TableSource(s3Writer.connectors,s3Writer.db, s3Writer.table,null,s3Writer.columns) + tableSourceWriter = TableSource(s3Writer.connectors,s3Writer.db, s3Writer.table,null,s3Writer.columns,readerName) } tableSourceWriter?.let { statementData.outpuTables.add(it) } From 43cd3000cf74535d79d263cf0103dac8fe80f5af Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 30 Dec 2021 16:01:02 +0800 Subject: [PATCH 25/56] =?UTF-8?q?=E6=89=A9=E5=B1=95PrestoSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/bigdata/sql/parser/datax/DataxLHelper.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt index d1ff82e..961568f 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -58,10 +58,10 @@ object DataxLHelper { //拿到writer if (writerName.equals(DataxType.Writer.pg.code) || writerName.equals(DataxType.Writer.mysql.code)){ val dbWriter = DBWriter(writerName, writer) - tableSourceWriter = TableSource(dbWriter.connectors,dbWriter.db, dbWriter.table,null,dbWriter.columns,readerName) + tableSourceWriter = TableSource(dbWriter.connectors,dbWriter.db, dbWriter.table,null,dbWriter.columns,writerName) }else if (writerName.equals(DataxType.Writer.s3.code)){ val s3Writer = S3Writer(writerName, writer) - tableSourceWriter = TableSource(s3Writer.connectors,s3Writer.db, s3Writer.table,null,s3Writer.columns,readerName) + tableSourceWriter = TableSource(s3Writer.connectors,s3Writer.db, s3Writer.table,null,s3Writer.columns,writerName) } tableSourceWriter?.let { statementData.outpuTables.add(it) } From 535484cdebdc7798ceeba19558488e94daef9ddc Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 21 Jun 2022 17:53:39 +0800 Subject: [PATCH 26/56] =?UTF-8?q?=E6=89=A9=E5=B1=95datax?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sql/parser/datax/writer/S3Writer.kt | 17 +++++--- .../sql/parser/datax/DataxParserTest.kt | 6 ++- src/test/resources/datax/pg2s3old.json | 39 +++++++++++++++++++ 3 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 src/test/resources/datax/pg2s3old.json diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt index eecd5cc..84f2932 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt @@ -29,12 +29,17 @@ class S3Writer { val path = writer!!.getStr("path") val split = path.split("/").toTypedArray() if (split.size < 3) throw RuntimeException("path 无法解析出库和表,path:" + ArrayUtil.toString(split)) - db = split[1] - table = split[2] - val column = writer!!.getJSONArray("column") - for (i in column.indices) { - val name = column.getJSONObject(i).getStr("name") - columns.add(name) + if (writer!!.containsKey("old")){ + db = split[2] + table = split[3] + }else{ + db = split[1] + table = split[2] + val column = writer!!.getJSONArray("column") + for (i in column.indices) { + val name = column.getJSONObject(i).getStr("name") + columns.add(name) + } } } } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index 9142daa..a3247c8 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -31,11 +31,13 @@ class DataxParserTest { @Test fun test() { - run("/datax/pg2s3.json") +/* run("/datax/pg2s3.json") run("/datax/pg2s3_1.json") run("/datax/mysql2s3.json") run("/datax/mysql2s3_1.json") run("/datax/s32mysql.json") - run("/datax/s32pg.json") + run("/datax/s32pg.json")*/ + run("/datax/pg2s3old.json") + } } diff --git a/src/test/resources/datax/pg2s3old.json b/src/test/resources/datax/pg2s3old.json new file mode 100644 index 0000000..b83a3cb --- /dev/null +++ b/src/test/resources/datax/pg2s3old.json @@ -0,0 +1,39 @@ +{ + "job": { + "setting": { + "speed": { + "channel": 2 + } + }, + "content": [ + { + "reader": { + "name": "postgresqlreader", + "parameter": { + "username": "postgres", + "password": "871d1f7908f3f6f1fa28d1509069cb1d", + "splitPk": "qw", + "connection": [ + { + "querySql": [ + "select a,b,v,cx,z,ss,s,e from test.table_name;" + ], + "jdbcUrl": [ + "jdbc:postgresql://localhost:5432/postgres" + ] + } + ] + } + }, + "writer": { + "name": "s3writer", + "parameter": { + "old": true, + "writeMode": "overwrite", + "path": "canary-lb-bi-data-warehouse/ods/stock_info/ipo_hk_subscription/" + } + } + } + ] + } +} From d4736927f71f5ba2dd9b3be0e1450833ee92e502 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 24 Jun 2022 14:25:28 +0800 Subject: [PATCH 27/56] =?UTF-8?q?=E6=89=A9=E5=B1=95datax?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sql/parser/datax/reader/DBReader.kt | 11 +- .../sql/parser/spark/SparkSqlParserTest.kt | 117 ++++-------------- src/test/resources/datax/pg2s3old.json | 40 +++--- 3 files changed, 53 insertions(+), 115 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt index 97fbe18..6055241 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject import cn.hutool.json.JSONUtil import com.github.bigdata.sql.parser.TableData import com.github.bigdata.sql.parser.datax.commons.DataxType +import com.github.bigdata.sql.parser.presto.PrestoSQLHelper import com.github.bigdata.sql.parser.tidb.TidbSQLHelper.getStatementData import com.github.bigdata.sql.parser.util.SqlParserTool @@ -49,8 +50,8 @@ class DBReader { private fun pg(connection: JSONObject) { connectors = db if (!reader!!.containsKey("column")) { - val querySql = connection.getJSONArray("querySql").getStr(0) - val statement = getStatementData(querySql).statement + val querySql = connection.getJSONArray("querySql").getStr(0).replace(":","") + val statement = PrestoSQLHelper.getStatementData(querySql).statement val tableData: TableData tableData = if (statement is TableData) { statement @@ -60,7 +61,11 @@ class DBReader { val (_, databaseName, tableName) = tableData.inputTables[0] db = if (StrUtil.isBlank(databaseName)) "public" else databaseName table = tableName - columns.addAll(SqlParserTool.getSelectColumnName(querySql)) + try { + columns.addAll(SqlParserTool.getSelectColumnName(querySql)) + } catch (e: Exception) { + e.printStackTrace() + } } else { val table = connection.getJSONArray("table").getStr(0) if (!table.contains(".")) { diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt index fd236e8..f226ddb 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt @@ -651,100 +651,29 @@ class SparkSqlParserTest { @Test fun sql() { - var sql = "WITH tmp1 AS\n" + - " (SELECT cast(member_id AS string) AS member_id,\n" + - " account_created_date,\n" + - " case when account_created_date is null then 0 else 1 end as is_openaccount,\n" + - " CASE\n" + - " WHEN accum_deposit_times>0 THEN 1\n" + - " ELSE 0\n" + - " END AS is_deposit,\n" + - " CASE\n" + - " WHEN accum_rollin_times>0 THEN 1\n" + - " ELSE 0\n" + - " END AS is_rollin,\n" + - " CASE\n" + - " WHEN accum_trade_times>0 THEN 1\n" + - " ELSE 0\n" + - " END AS is_deal,\n" + - " CASE\n" + - " WHEN accum_withdraw_times>0 THEN 1\n" + - " ELSE 0\n" + - " END AS is_withdraw,\n" + - " CASE\n" + - " WHEN accum_rollout_times>0 THEN 1\n" + - " ELSE 0\n" + - " END AS is_rollout\n" + - " FROM lb_bi_presto.member_properties\n" + - " WHERE pt='20210812'\n" + - " GROUP BY cast(member_id AS string),\n" + - " account_created_date,\n" + - " case when account_created_date is null then 1 else 0 end,\n" + - " CASE\n" + - " WHEN accum_deposit_times>0 THEN 1\n" + - " ELSE 0\n" + - " END,\n" + - " CASE\n" + - " WHEN accum_rollin_times>0 THEN 1\n" + - " ELSE 0\n" + - " END,\n" + - " CASE\n" + - " WHEN accum_trade_times>0 THEN 1\n" + - " ELSE 0\n" + - " END,\n" + - " CASE\n" + - " WHEN accum_withdraw_times>0 THEN 1\n" + - " ELSE 0\n" + - " END,\n" + - " CASE\n" + - " WHEN accum_rollout_times>0 THEN 1\n" + - " ELSE 0\n" + - " END),\n" + - " tmp2 AS\n" + - " (SELECT *\n" + - " FROM lb_bi_user.dws_user_profile_attribution_invite_d\n" + - " WHERE pt='20210812'),\n" + - " tmp3 as (select member_id,\n" + - " case when state=0 then '初始化' when state=1 then '身份信息已认证' when state=2 then '已通过活体验证' when state=3 then '用户提交中'\n" + - " when state=4 then '用户提交待确认' when state=5 then '用户已提交' when state=6 then '等待提交给辉立' when state=7 then '辉立审核中'\n" + - " when state=8 then '审核失败' when state=9 then '开户完成'\n" + - " end as open_account_status\n" + - " from lb_member_service.account_applications\n" + - " )\n" + - " INSERT overwrite TABLE lb_bi_user.dim_user_profile_attribution_dynamic_d partition(pt='20210812')\n" + - " SELECT tmp1.member_id,\n" + - " tmp1.account_created_date,\n" + - " tmp1.is_openaccount,\n" + - " tmp1.is_deposit,\n" + - " tmp1.is_rollin,\n" + - " tmp1.is_deal,\n" + - " tmp1.is_withdraw,\n" + - " tmp1.is_rollout,\n" + - " CASE\n" + - " WHEN tmp2.invite_num_all>0 THEN 1\n" + - " ELSE 0\n" + - " END AS is_inviter,\n" + - " nvl(tmp2.invite_num_all,0) AS invite_num_all,\n" + - " nvl(tmp2.invite_num_30,0) AS invite_num_30,\n" + - " tmp3.open_account_status\n" + - " FROM tmp1\n" + - " LEFT JOIN tmp2 ON tmp1.member_id=tmp2.member_id\n" + - " left join tmp3 on tmp1.member_id=tmp3.member_id\n" + - " GROUP BY tmp1.member_id,\n" + - " tmp1.account_created_date,\n" + - " tmp1.is_openaccount,\n" + - " tmp1.is_deposit,\n" + - " tmp1.is_rollin,\n" + - " tmp1.is_deal,\n" + - " tmp1.is_withdraw,\n" + - " tmp1.is_rollout,\n" + - " CASE\n" + - " WHEN tmp2.invite_num_all>0 THEN 1\n" + - " ELSE 0\n" + - " END,\n" + - " nvl(tmp2.invite_num_all,0),\n" + - " nvl(tmp2.invite_num_30,0),\n" + - " tmp3.open_account_status" + var sql = + " INSERT INTO hive.<<>>.scdim_fund_nav_histories_d\n" + + " SELECT\n" + + " id,\n" + + " created_at,\n" + + " updated_at,\n" + + " account_channel,\n" + + " CAST(nav AS DECIMAL(38, 10)) AS nav,\n" + + " counter_id,\n" + + " company_channel,\n" + + " nav_date,\n" + + " CAST(seven_day_income_rate AS DECIMAL(38, 10)) AS seven_day_income_rate,\n" + + " trade_date,\n" + + " dt,\n" + + " '{flow_date}' AS pt\n" + + " FROM\n" + + " (SELECT\n" + + " *,\n" + + " rank() OVER (PARTITION BY counter_id ORDER BY dt DESC) AS rank\n" + + " FROM hive.<<>>.fund_nav_histories\n" + + " WHERE dt <= DATE_FORMAT(DATE_ADD('day', -1, DATE(Date_parse('{flow_date}', '%Y%m%d'))), '%Y%m%d')\n" + + " ) t\n" + + " WHERE rank = 1" val statementData = SparkSQLHelper.getStatementData(sql) println(statementData.statement) diff --git a/src/test/resources/datax/pg2s3old.json b/src/test/resources/datax/pg2s3old.json index b83a3cb..24498bc 100644 --- a/src/test/resources/datax/pg2s3old.json +++ b/src/test/resources/datax/pg2s3old.json @@ -1,39 +1,43 @@ { "job": { - "setting": { - "speed": { - "channel": 2 - } - }, "content": [ { "reader": { - "name": "postgresqlreader", "parameter": { - "username": "postgres", - "password": "871d1f7908f3f6f1fa28d1509069cb1d", - "splitPk": "qw", + "password": "/WfxYZ0asdasdsasdB11j4b+asdsadsa=", "connection": [ { "querySql": [ - "select a,b,v,cx,z,ss,s,e from test.table_name;" + "select id, content, member_id, created_at, updated_at, status, resolved_at, meta::varchar AS meta, user_id, type, target_id, target_type, sub_type, audit_user_name from tickets where meta -> account_channel = 1" ], "jdbcUrl": [ - "jdbc:postgresql://localhost:5432/postgres" + "jdbc:postgresql://sadasadasdsadsadsadsa:5432/lb-support-canary" ] } - ] - } + ], + "splitPk": "", + "username": "c/rEasdsadasd==" + }, + "name": "postgresqlreader" }, "writer": { - "name": "s3writer", "parameter": { "old": true, "writeMode": "overwrite", - "path": "canary-lb-bi-data-warehouse/ods/stock_info/ipo_hk_subscription/" - } + "path": "canary-lb-bi-data-warehouse/ods/lb_support/tickets/" + }, + "name": "s3writer" } } - ] + ], + "setting": { + "errorLimit": { + "record": 0, + "percentage": 0.02 + }, + "speed": { + "channel": 1 + } + } } -} +} \ No newline at end of file From acd71b1fb7e70df6f7667798fb65558d1504dc63 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Mon, 27 Jun 2022 11:23:43 +0800 Subject: [PATCH 28/56] trino --- .../sql/parser/presto/PrestoSQLHelper.kt | 9 +- .../sql/parser/presto/PrestoSqlParserTest.kt | 285 ++++++++++++++++++ .../sql/parser/spark/SparkSqlParserTest.kt | 137 +++++++-- 3 files changed, 398 insertions(+), 33 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt index 1faaa71..e85f48e 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/presto/PrestoSQLHelper.kt @@ -67,10 +67,11 @@ object PrestoSQLHelper { val children = node.children if (node is QuerySpecification){ - val from = node.from.get() - if(from is Table){ - statement.inputTables.add(tableSource(from.name.toString())) - //println("输入表:"+from.name + "----------输入字段:"+node.select.selectItems) + if (node.from.isPresent){ + val from = node.from.get() + if(from is Table){ + statement.inputTables.add(tableSource(from.name.toString())) + } } } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt index 9774906..f5ea5b7 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/presto/PrestoSqlParserTest.kt @@ -1,5 +1,7 @@ package com.github.bigdata.sql.parser.presto +import cn.hutool.core.util.StrUtil +import cn.hutool.json.JSONUtil import org.junit.Test /** @@ -30,4 +32,287 @@ class PrestoSqlParserTest { val statementData = PrestoSQLHelper.getStatementData(sql) println(statementData.statement) } + + + @Test + fun sql3Test() { + val sql = + "INSERT INTO hive.lb_bi_finance.dws_stock_profit_and_loss_flows_d\n" + + " WITH \n" + + " TABLE_DT AS (\n" + + " SELECT date_add('day', -1, Date(Date_parse('{flow_date}', '%Y%m%d'))) AS dt\n" + + " ),\n" + + " TABLE_IPO AS (\n" + + " -- 打新交易流水\n" + + " SELECT\n" + + " id,\n" + + " account_channel, -- 20210824临时修复\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " lot_win_qty,\n" + + " luck_sub_amount,\n" + + " issue_price,\n" + + " sub_fee,\n" + + " luckly_fee,\n" + + " status,\n" + + " 'BUY' AS direction,\n" + + " COALESCE(DATE_FORMAT(AT_TIMEZONE(luck_at, 'Asia/Shanghai'), '%Y%m%d%H%i%S%f'), CONCAT(pre_ipo_dt, '000000000000')) AS executed_time\n" + + " FROM hive.lb_bi_trade.dwb_ipo_trades_d\n" + + " WHERE pt = '{flow_date}'\n" + + " AND pre_ipo_dt = DATE_FORMAT((SELECT dt FROM TABLE_DT), '%Y%m%d') -- 暗盘日/公布中签日\n" + + " AND status IN (4, 5) -- 已公布中签,已公布未中签\n" + + " ),\n" + + " TABLE_LB_TRADE_FEE AS (\n" + + " -- lb股票交易费\n" + + " SELECT\n" + + " t2.account_channel,\n" + + " t2.aaid,\n" + + " t2.counter_id,\n" + + " t2.market,\n" + + " t2.currency,\n" + + " 0 AS executed_qty,\n" + + " t1.amount AS executed_amount,\n" + + " 0 AS executed_price,\n" + + " t2.direction,\n" + + " DATE_FORMAT((SELECT dt FROM TABLE_DT), '%Y%m%d%H%i%S%f') AS executed_time,\n" + + " IF(t1.biz_type = 1, 'lb_trade_fee', 'lb_option_trade_fee') AS flow_type,\n" + + " CONCAT('contract_id:', CAST(t2.id AS VARCHAR)) AS flow_desc,\n" + + " t1.biz_type,\n" + + " IF(t1.biz_type = 1, 'LONG', t4.position_side) AS position_side\n" + + " FROM\n" + + " (SELECT\n" + + " contract_id,\n" + + " amount,\n" + + " biz_type\n" + + " FROM hive.billing.contract_charges_di\n" + + " WHERE pt = '{flow_date}'\n" + + " AND state = 2 -- 1待冻结 2冻结中 3已经解冻\n" + + " AND (biz_type = 1 OR biz_type = 5) -- 1股票交易 2融资利息 3存款利息 4出金 5期权 6转仓\n" + + " ) t1\n" + + " LEFT JOIN\n" + + " (SELECT\n" + + " id,\n" + + " market,\n" + + " counter_id,\n" + + " IF(direction = 1, 'BUY', 'SELL') AS direction,\n" + + " currency,\n" + + " account_channel,\n" + + " aaid,\n" + + " biz_type\n" + + " FROM hive.billing.stock_exchange_contracts_di\n" + + " WHERE pt = '{flow_date}'\n" + + " AND biz_type IN (1, 5)-- 1 股票交易, 5 期权交易\n" + + " ) t2\n" + + " ON t1.contract_id = t2.id\n" + + " AND t1.biz_type=t2.biz_type\n" + + " LEFT JOIN \n" + + " (SELECT contract_id,\n" + + " MAX(order_id) AS order_id\n" + + " FROM hive.billing.stock_exchange_contract_orders_di\n" + + " WHERE pt = '{flow_date}'\n" + + " GROUP BY contract_id\n" + + " ) t3\n" + + " ON t2.id = t3.contract_id\n" + + " LEFT JOIN \n" + + " (SELECT order_id,position_side FROM hive.lb_bi_trade.dwb_lb_option_trade_done_d\n" + + " WHERE pt in(\n" + + " '{flow_date}',\n" + + " DATE_FORMAT(DATE_ADD('day', -1, DATE(DATE_PARSE('{flow_date}', '%Y%m%d'))), '%Y%m%d'),\n" + + " DATE_FORMAT(DATE_ADD('day', -2, DATE(DATE_PARSE('{flow_date}', '%Y%m%d'))), '%Y%m%d'),\n" + + " DATE_FORMAT(DATE_ADD('day', -3, DATE(DATE_PARSE('{flow_date}', '%Y%m%d'))), '%Y%m%d'),\n" + + " DATE_FORMAT(DATE_ADD('day', -4, DATE(DATE_PARSE('{flow_date}', '%Y%m%d'))), '%Y%m%d')\n" + + " )\n" + + " ) t4\n" + + " ON t3.order_id = t4.order_id\n" + + " )\n" + + " SELECT \n" + + " t1.dt,\n" + + " t1.member_id,\n" + + " t1.aaid,\n" + + " t1.counter_id,\n" + + " t1.market,\n" + + " t1.currency,\n" + + " t1.executed_qty,\n" + + " t1.executed_amount,\n" + + " t1.executed_price,\n" + + " t1.direction,\n" + + " t1.executed_time,\n" + + " t1.flow_type,\n" + + " t1.flow_desc,\n" + + " t1.position_side,\n" + + " t1.multiplier,\n" + + " (CASE WHEN split(t1.counter_id, '/')[1] = 'OP' AND t2.underlying_counter_id IS NOT NULL THEN t2.underlying_counter_id\n" + + " WHEN split(t1.counter_id, '/')[1] = 'WT' AND t3.underlying_counter_id IS NOT NULL THEN t3.underlying_counter_id\n" + + " ELSE t1.counter_id\n" + + " END\n" + + " ) AS underlying_counter_id,\n" + + " t1.account_channel,\n" + + " '{flow_date}' AS pt\n" + + " FROM \n" + + " (SELECT\n" + + " (SELECT dt FROM TABLE_DT) AS dt,\n" + + " NULL AS member_id,\n" + + " account_channel,\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " CAST(executed_qty AS DECIMAL(38, 10)) AS executed_qty,\n" + + " CAST(executed_amount AS DECIMAL(38, 10)) AS executed_amount,\n" + + " CAST(executed_price AS DECIMAL(38, 10)) AS executed_price,\n" + + " direction,\n" + + " executed_time,\n" + + " flow_type,\n" + + " flow_desc,\n" + + " position_side,\n" + + " multiplier \n" + + " FROM\n" + + " (\n" + + " -- lb计算成本流水\n" + + " SELECT\n" + + " account_channel,\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " executed_qty,\n" + + " executed_amount,\n" + + " executed_amount / (executed_qty * multiplier) AS executed_price,\n" + + " direction,\n" + + " executed_time,\n" + + " IF(flow_type = 'lb_corperate_action_diluted_avg_cost', 'lb_corperate_action', flow_type) AS flow_type,\n" + + " flow_desc,\n" + + " position_side,\n" + + " multiplier\n" + + " FROM hive.lb_bi_finance.dws_stock_flows_d\n" + + " WHERE pt = '{flow_date}' \n" + + " AND flow_type IN (\n" + + " 'lb_stock_balance_change_ticket',\n" + + " 'lb_trade_done',\n" + + " 'lb_rollover',\n" + + " 'lb_corperate_action_diluted_avg_cost',\n" + + " 'stock_card',\n" + + " 'lb_corperate_action',\n" + + " 'lb_option_trade_done',\n" + + " 'lb_option_giveup_exercise',\n" + + " 'lb_option_due_exercise',\n" + + " 'lb_cs_due_exercise',\n" + + " 'lb_option_forced_liquidation_exercise',\n" + + " 'lb_ipo_win'\n" + + " )\n" + + " AND executed_qty != 0-- 过滤后台脏数据\n" + + " \n" + + " UNION ALL\n" + + "\n" + + " -- lb股票交易手续费\n" + + " SELECT\n" + + " account_channel,\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " executed_qty,\n" + + " executed_amount,\n" + + " executed_price,\n" + + " direction,\n" + + " executed_time,\n" + + " flow_type,\n" + + " flow_desc,\n" + + " position_side,\n" + + " 1 AS multiplier\n" + + " FROM TABLE_LB_TRADE_FEE\n" + + " \n" + + " UNION ALL\n" + + "\n" + + " -- 打新认购费\n" + + " SELECT\n" + + " account_channel,\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " 0 AS executed_qty,\n" + + " sub_fee AS executed_amount,\n" + + " 0 AS executed_price,\n" + + " direction,\n" + + " executed_time,\n" + + " 'lb_ipo_sub_fee' AS flow_type,\n" + + " CONCAT('ipo order_id:', CAST(id AS VARCHAR)) AS flow_desc,\n" + + " 'LONG' AS position_side,\n" + + " 1 AS multiplier\n" + + " FROM TABLE_IPO\n" + + " \n" + + " UNION ALL\n" + + "\n" + + " -- 打新中签费\n" + + " SELECT\n" + + " account_channel,\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " 0 AS executed_qty,\n" + + " luckly_fee AS executed_amount,\n" + + " 0 AS executed_price,\n" + + " direction,\n" + + " executed_time,\n" + + " 'lb_ipo_win_fee' AS flow_type,\n" + + " CONCAT('ipo order_id:', CAST(id AS VARCHAR)) AS flow_desc,\n" + + " 'LONG' AS position_side,\n" + + " 1 AS multiplier\n" + + " FROM TABLE_IPO\n" + + " WHERE status = 4 -- 已公布中签\n" + + "\n" + + " UNION ALL\n" + + "\n" + + " -- 打新融资利息\n" + + " SELECT\n" + + " account_channel,\n" + + " aaid,\n" + + " counter_id,\n" + + " market,\n" + + " currency,\n" + + " 0 AS executed_qty,\n" + + " financing_interest_amount_accum_td AS executed_amount,\n" + + " 0 AS executed_price,\n" + + " 'BUY' AS direction,\n" + + " DATE_FORMAT(AT_TIMEZONE(issue_result_publ_date, 'Asia/Shanghai'), '%Y%m%d%H%i%S%f') AS executed_time,\n" + + " 'lb_ipo_financing_interest' AS flow_type,\n" + + " CONCAT('ipo order_id:', CAST(id AS VARCHAR)) AS flow_desc,\n" + + " 'LONG' AS position_side,\n" + + " 1 AS multiplier\n" + + " FROM hive.lb_bi_trade.dwb_ipo_finance_d\n" + + " WHERE pt = '{flow_date}'\n" + + " ) all_flows\n" + + " ) t1\n" + + " \n" + + " LEFT JOIN\n" + + " (SELECT \n" + + " underlying_counter_id, \n" + + " counter_id\n" + + " FROM hive.lb_bi_product.dim_options_metadata\n" + + " ) t2\n" + + " ON t1.counter_id = t2.counter_id\n" + + " AND split(t1.counter_id, '/')[1] = 'OP'\n" + + "\n" + + " LEFT JOIN\n" + + " (SELECT \n" + + " underlying_counter_id, \n" + + " counter_id \n" + + " FROM hive.lb_gemini.warrant_metadata_snapshot_6am\n" + + " WHERE pt = IF('{flow_date}' <= '20220119', '20220119', '{flow_date}')\n" + + " ) t3\n" + + " ON t1.counter_id = t3.counter_id \n" + + " AND split(t1.counter_id, '/')[1] = 'WT'\n" + + + val statementData = PrestoSQLHelper.getStatementData(sql) + println(JSONUtil.toJsonStr(statementData.statement)) + val putOnce = JSONUtil.createObj().putOnce("type", "presto").putOnce("script", sql) + println(putOnce) + } + + } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt index f226ddb..288537c 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt @@ -136,7 +136,8 @@ class SparkSqlParserTest { @Test fun createTableSelectTest() { - val sql = "create table \nIF NOT EXISTS tdl_users_1 as select * from users a left outer join address b on a.addr_id = b.id" + val sql = + "create table \nIF NOT EXISTS tdl_users_1 as select * from users a left outer join address b on a.addr_id = b.id" val statementData = SparkSQLHelper.getStatementData(sql) val statement = statementData.statement @@ -144,7 +145,10 @@ class SparkSqlParserTest { val name = statement.tableName Assert.assertEquals(StatementType.CREATE_TABLE_AS_SELECT, statementData.type) Assert.assertEquals("tdl_users_1", name) - Assert.assertEquals("select * from users a left outer join address b on a.addr_id = b.id", statement.querySql) + Assert.assertEquals( + "select * from users a left outer join address b on a.addr_id = b.id", + statement.querySql + ) Assert.assertEquals(2, statement.tableData?.inputTables?.size) Assert.assertEquals("address", statement.tableData?.inputTables?.get(1)?.tableName) } else { @@ -262,7 +266,8 @@ class SparkSqlParserTest { @Test fun alterTablePropertiesTest() { - val sql = "ALTER TABLE test.sale_detail SET TBLPROPERTIES ('comment' = 'new coments for statement sale_detail', 'lifeCycle' = '7')" + val sql = + "ALTER TABLE test.sale_detail SET TBLPROPERTIES ('comment' = 'new coments for statement sale_detail', 'lifeCycle' = '7')" val statementData = SparkSQLHelper.getStatementData(sql) val statement = statementData.statement @@ -277,7 +282,8 @@ class SparkSqlParserTest { @Test fun addColumnTest() { - val sql = "alter table test.sale_detail add columns (col_name1 string comment 'col_name1', col_name2 string comment 'col_name2')" + val sql = + "alter table test.sale_detail add columns (col_name1 string comment 'col_name1', col_name2 string comment 'col_name2')" val statementData = SparkSQLHelper.getStatementData(sql) val statement = statementData.statement @@ -447,7 +453,8 @@ class SparkSqlParserTest { @Test fun queryTest2() { - val sql = "select * from users a join (select * from address where type='hangzhou') b on a.addr_id=b.id limit 101" + val sql = + "select * from users a join (select * from address where type='hangzhou') b on a.addr_id=b.id limit 101" val statementData = SparkSQLHelper.getStatementData(sql) val statement = statementData.statement if (statement is TableData) { @@ -563,7 +570,8 @@ class SparkSqlParserTest { @Test fun insertOverwriteQueryTest0() { - val sql = "insert OVERWRITE TABLE users PARTITION(ds='20170220') select * from account a join address b on a.addr_id=b.id" + val sql = + "insert OVERWRITE TABLE users PARTITION(ds='20170220') select * from account a join address b on a.addr_id=b.id" val statementData = SparkSQLHelper.getStatementData(sql) val statement = statementData.statement if (statement is TableData) { @@ -651,29 +659,100 @@ class SparkSqlParserTest { @Test fun sql() { - var sql = - " INSERT INTO hive.<<>>.scdim_fund_nav_histories_d\n" + - " SELECT\n" + - " id,\n" + - " created_at,\n" + - " updated_at,\n" + - " account_channel,\n" + - " CAST(nav AS DECIMAL(38, 10)) AS nav,\n" + - " counter_id,\n" + - " company_channel,\n" + - " nav_date,\n" + - " CAST(seven_day_income_rate AS DECIMAL(38, 10)) AS seven_day_income_rate,\n" + - " trade_date,\n" + - " dt,\n" + - " '{flow_date}' AS pt\n" + - " FROM\n" + - " (SELECT\n" + - " *,\n" + - " rank() OVER (PARTITION BY counter_id ORDER BY dt DESC) AS rank\n" + - " FROM hive.<<>>.fund_nav_histories\n" + - " WHERE dt <= DATE_FORMAT(DATE_ADD('day', -1, DATE(Date_parse('{flow_date}', '%Y%m%d'))), '%Y%m%d')\n" + - " ) t\n" + - " WHERE rank = 1" + var sql = "WITH tmp1 AS\n" + + " (SELECT cast(member_id AS string) AS member_id,\n" + + " account_created_date,\n" + + " case when account_created_date is null then 0 else 1 end as is_openaccount,\n" + + " CASE\n" + + " WHEN accum_deposit_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_deposit,\n" + + " CASE\n" + + " WHEN accum_rollin_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_rollin,\n" + + " CASE\n" + + " WHEN accum_trade_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_deal,\n" + + " CASE\n" + + " WHEN accum_withdraw_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_withdraw,\n" + + " CASE\n" + + " WHEN accum_rollout_times>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_rollout\n" + + " FROM lb_bi_presto.member_properties\n" + + " WHERE pt='20210812'\n" + + " GROUP BY cast(member_id AS string),\n" + + " account_created_date,\n" + + " case when account_created_date is null then 1 else 0 end,\n" + + " CASE\n" + + " WHEN accum_deposit_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_rollin_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_trade_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_withdraw_times>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " CASE\n" + + " WHEN accum_rollout_times>0 THEN 1\n" + + " ELSE 0\n" + + " END),\n" + + " tmp2 AS\n" + + " (SELECT *\n" + + " FROM lb_bi_user.dws_user_profile_attribution_invite_d\n" + + " WHERE pt='20210812'),\n" + + " tmp3 as (select member_id,\n" + + " case when state=0 then '初始化' when state=1 then '身份信息已认证' when state=2 then '已通过活体验证' when state=3 then '用户提交中'\n" + + " when state=4 then '用户提交待确认' when state=5 then '用户已提交' when state=6 then '等待提交给辉立' when state=7 then '辉立审核中'\n" + + " when state=8 then '审核失败' when state=9 then '开户完成'\n" + + " end as open_account_status\n" + + " from lb_member_service.account_applications\n" + + " )\n" + + " INSERT overwrite TABLE lb_bi_user.dim_user_profile_attribution_dynamic_d partition(pt='20210812')\n" + + " SELECT tmp1.member_id,\n" + + " tmp1.account_created_date,\n" + + " tmp1.is_openaccount,\n" + + " tmp1.is_deposit,\n" + + " tmp1.is_rollin,\n" + + " tmp1.is_deal,\n" + + " tmp1.is_withdraw,\n" + + " tmp1.is_rollout,\n" + + " CASE\n" + + " WHEN tmp2.invite_num_all>0 THEN 1\n" + + " ELSE 0\n" + + " END AS is_inviter,\n" + + " nvl(tmp2.invite_num_all,0) AS invite_num_all,\n" + + " nvl(tmp2.invite_num_30,0) AS invite_num_30,\n" + + " tmp3.open_account_status\n" + + " FROM tmp1\n" + + " LEFT JOIN tmp2 ON tmp1.member_id=tmp2.member_id\n" + + " left join tmp3 on tmp1.member_id=tmp3.member_id\n" + + " GROUP BY tmp1.member_id,\n" + + " tmp1.account_created_date,\n" + + " tmp1.is_openaccount,\n" + + " tmp1.is_deposit,\n" + + " tmp1.is_rollin,\n" + + " tmp1.is_deal,\n" + + " tmp1.is_withdraw,\n" + + " tmp1.is_rollout,\n" + + " CASE\n" + + " WHEN tmp2.invite_num_all>0 THEN 1\n" + + " ELSE 0\n" + + " END,\n" + + " nvl(tmp2.invite_num_all,0),\n" + + " nvl(tmp2.invite_num_30,0),\n" + + " tmp3.open_account_status" val statementData = SparkSQLHelper.getStatementData(sql) println(statementData.statement) From 7401d0018c6c0e97ec4954ed26edb65b017f9263 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 7 Jul 2022 11:36:54 +0800 Subject: [PATCH 29/56] =?UTF-8?q?insert=20overwrite=20TABLE=E5=8F=AF?= =?UTF-8?q?=E5=BF=BD=E7=95=A5TABLE=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gen/MySqlLexer.interp | 2949 +++++++ gen/MySqlLexer.java | 7703 +++++++++++++++++ gen/MySqlLexer.tokens | 1925 ++++ gen/SparkLexer.interp | 1002 +++ gen/SparkLexer.java | 2382 +++++ gen/SparkLexer.tokens | 632 ++ .../bigdata/sql/antlr4/spark/SparkSqlBase.g4 | 2 +- .../sql/antlr4/spark/SparkSqlBaseParser.java | 3962 ++++----- 8 files changed, 18580 insertions(+), 1977 deletions(-) create mode 100644 gen/MySqlLexer.interp create mode 100644 gen/MySqlLexer.java create mode 100644 gen/MySqlLexer.tokens create mode 100644 gen/SparkLexer.interp create mode 100644 gen/SparkLexer.java create mode 100644 gen/SparkLexer.tokens diff --git a/gen/MySqlLexer.interp b/gen/MySqlLexer.interp new file mode 100644 index 0000000..0f92998 --- /dev/null +++ b/gen/MySqlLexer.interp @@ -0,0 +1,2949 @@ +token literal names: +null +null +null +null +null +'ADD' +'ALL' +'ALTER' +'ANALYZE' +'AND' +'AS' +'ASC' +'BEFORE' +'BETWEEN' +'BOTH' +'BY' +'CALL' +'CASCADE' +'CASE' +'CAST' +'CHANGE' +'CHARACTER' +'CHECK' +'COLLATE' +'COLUMN' +'CONDITION' +'CONSTRAINT' +'CONTINUE' +'CONVERT' +'CREATE' +'CROSS' +'CURRENT_USER' +'CURSOR' +'DATABASE' +'DATABASES' +'DECLARE' +'DEFAULT' +'DELAYED' +'DELETE' +'DESC' +'DESCRIBE' +'DETERMINISTIC' +'DISTINCT' +'DISTINCTROW' +'DROP' +'EACH' +'ELSE' +'ELSEIF' +'ENCLOSED' +'ESCAPED' +'EXISTS' +'EXIT' +'EXPLAIN' +'FALSE' +'FETCH' +'FOR' +'FORCE' +'FOREIGN' +'FROM' +'FULLTEXT' +'GRANT' +'GROUP' +'HAVING' +'HIGH_PRIORITY' +'IF' +'IGNORE' +'IN' +'INDEX' +'INFILE' +'INNER' +'INOUT' +'INSERT' +'INTERVAL' +'INTO' +'IS' +'ITERATE' +'JOIN' +'KEY' +'KEYS' +'KILL' +'LEADING' +'LEAVE' +'LEFT' +'LIKE' +'LIMIT' +'LINEAR' +'LINES' +'LOAD' +'LOCK' +'LOOP' +'LOW_PRIORITY' +'MASTER_BIND' +'MASTER_SSL_VERIFY_SERVER_CERT' +'MATCH' +'MAXVALUE' +'MODIFIES' +'NATURAL' +'NOT' +'NO_WRITE_TO_BINLOG' +'NULL' +'ON' +'OPTIMIZE' +'OPTION' +'OPTIONALLY' +'OR' +'ORDER' +'OUT' +'OUTER' +'OUTFILE' +'PARTITION' +'PRIMARY' +'PROCEDURE' +'PURGE' +'RANGE' +'READ' +'READS' +'REFERENCES' +'REGEXP' +'RELEASE' +'RENAME' +'REPEAT' +'REPLACE' +'REQUIRE' +'RESTRICT' +'RETURN' +'REVOKE' +'RIGHT' +'RLIKE' +'SCHEMA' +'SCHEMAS' +'SELECT' +'SET' +'SEPARATOR' +'SHOW' +'SPATIAL' +'SQL' +'SQLEXCEPTION' +'SQLSTATE' +'SQLWARNING' +'SQL_BIG_RESULT' +'SQL_CALC_FOUND_ROWS' +'SQL_SMALL_RESULT' +'SSL' +'STARTING' +'STRAIGHT_JOIN' +'TABLE' +'TERMINATED' +'THEN' +'TO' +'TRAILING' +'TRIGGER' +'TRUE' +'UNDO' +'UNION' +'UNIQUE' +'UNLOCK' +'UNSIGNED' +'UPDATE' +'USAGE' +'USE' +'USING' +'VALUES' +'WHEN' +'WHERE' +'WHILE' +'WITH' +'WRITE' +'XOR' +'ZEROFILL' +'TINYINT' +'SMALLINT' +'MEDIUMINT' +'INT' +'INTEGER' +'BIGINT' +'REAL' +'DOUBLE' +'FLOAT' +'DECIMAL' +'NUMERIC' +'DATE' +'TIME' +'TIMESTAMP' +'DATETIME' +'YEAR' +'CHAR' +'VARCHAR' +'BINARY' +'VARBINARY' +'TINYBLOB' +'BLOB' +'MEDIUMBLOB' +'LONGBLOB' +'TINYTEXT' +'TEXT' +'MEDIUMTEXT' +'LONGTEXT' +'ENUM' +'YEAR_MONTH' +'DAY_HOUR' +'DAY_MINUTE' +'DAY_SECOND' +'HOUR_MINUTE' +'HOUR_SECOND' +'MINUTE_SECOND' +'SECOND_MICROSECOND' +'MINUTE_MICROSECOND' +'HOUR_MICROSECOND' +'DAY_MICROSECOND' +'AVG' +'BIT_AND' +'BIT_OR' +'BIT_XOR' +'COUNT' +'GROUP_CONCAT' +'MAX' +'MIN' +'STD' +'STDDEV' +'STDDEV_POP' +'STDDEV_SAMP' +'SUM' +'VAR_POP' +'VAR_SAMP' +'VARIANCE' +'CURRENT_DATE' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'LOCALTIME' +'CURDATE' +'CURTIME' +'DATE_ADD' +'DATE_SUB' +'EXTRACT' +'LOCALTIMESTAMP' +'NOW' +'POSITION' +'SUBSTR' +'SUBSTRING' +'SYSDATE' +'TRIM' +'UTC_DATE' +'UTC_TIME' +'UTC_TIMESTAMP' +'ACCOUNT' +'ACTION' +'AFTER' +'AGGREGATE' +'ALGORITHM' +'ANY' +'AT' +'AUTHORS' +'AUTOCOMMIT' +'AUTOEXTEND_SIZE' +'AUTO_INCREMENT' +'AVG_ROW_LENGTH' +'BEGIN' +'BINLOG' +'BIT' +'BLOCK' +'BOOL' +'BOOLEAN' +'BTREE' +'CACHE' +'CASCADED' +'CHAIN' +'CHANGED' +'CHANNEL' +'CHECKSUM' +'CIPHER' +'CLIENT' +'CLOSE' +'COALESCE' +'CODE' +'COLUMNS' +'COLUMN_FORMAT' +'COMMENT' +'COMMIT' +'COMPACT' +'COMPLETION' +'COMPRESSED' +'COMPRESSION' +'CONCURRENT' +'CONNECTION' +'CONSISTENT' +'CONTAINS' +'CONTEXT' +'CONTRIBUTORS' +'COPY' +'CPU' +'DATA' +'DATAFILE' +'DEALLOCATE' +'DEFAULT_AUTH' +'DEFINER' +'DELAY_KEY_WRITE' +'DES_KEY_FILE' +'DIRECTORY' +'DISABLE' +'DISCARD' +'DISK' +'DO' +'DUMPFILE' +'DUPLICATE' +'DYNAMIC' +'ENABLE' +'ENCRYPTION' +'END' +'ENDS' +'ENGINE' +'ENGINES' +'ERROR' +'ERRORS' +'ESCAPE' +'EVEN' +'EVENT' +'EVENTS' +'EVERY' +'EXCHANGE' +'EXCLUSIVE' +'EXPIRE' +'EXPORT' +'EXTENDED' +'EXTENT_SIZE' +'FAST' +'FAULTS' +'FIELDS' +'FILE_BLOCK_SIZE' +'FILTER' +'FIRST' +'FIXED' +'FLUSH' +'FOLLOWS' +'FOUND' +'FULL' +'FUNCTION' +'GENERAL' +'GLOBAL' +'GRANTS' +'GROUP_REPLICATION' +'HANDLER' +'HASH' +'HELP' +'HOST' +'HOSTS' +'IDENTIFIED' +'IGNORE_SERVER_IDS' +'IMPORT' +'INDEXES' +'INITIAL_SIZE' +'INPLACE' +'INSERT_METHOD' +'INSTALL' +'INSTANCE' +'INVOKER' +'IO' +'IO_THREAD' +'IPC' +'ISOLATION' +'ISSUER' +'JSON' +'KEY_BLOCK_SIZE' +'LANGUAGE' +'LAST' +'LEAVES' +'LESS' +'LEVEL' +'LIST' +'LOCAL' +'LOGFILE' +'LOGS' +'MASTER' +'MASTER_AUTO_POSITION' +'MASTER_CONNECT_RETRY' +'MASTER_DELAY' +'MASTER_HEARTBEAT_PERIOD' +'MASTER_HOST' +'MASTER_LOG_FILE' +'MASTER_LOG_POS' +'MASTER_PASSWORD' +'MASTER_PORT' +'MASTER_RETRY_COUNT' +'MASTER_SSL' +'MASTER_SSL_CA' +'MASTER_SSL_CAPATH' +'MASTER_SSL_CERT' +'MASTER_SSL_CIPHER' +'MASTER_SSL_CRL' +'MASTER_SSL_CRLPATH' +'MASTER_SSL_KEY' +'MASTER_TLS_VERSION' +'MASTER_USER' +'MAX_CONNECTIONS_PER_HOUR' +'MAX_QUERIES_PER_HOUR' +'MAX_ROWS' +'MAX_SIZE' +'MAX_UPDATES_PER_HOUR' +'MAX_USER_CONNECTIONS' +'MEDIUM' +'MERGE' +'MID' +'MIGRATE' +'MIN_ROWS' +'MODE' +'MODIFY' +'MUTEX' +'MYSQL' +'NAME' +'NAMES' +'NCHAR' +'NEVER' +'NEXT' +'NO' +'NODEGROUP' +'NONE' +'OFFLINE' +'OFFSET' +'OJ' +'OLD_PASSWORD' +'ONE' +'ONLINE' +'ONLY' +'OPEN' +'OPTIMIZER_COSTS' +'OPTIONS' +'OWNER' +'PACK_KEYS' +'PAGE' +'PARSER' +'PARTIAL' +'PARTITIONING' +'PARTITIONS' +'PASSWORD' +'PHASE' +'PLUGIN' +'PLUGIN_DIR' +'PLUGINS' +'PORT' +'PRECEDES' +'PREPARE' +'PRESERVE' +'PREV' +'PROCESSLIST' +'PROFILE' +'PROFILES' +'PROXY' +'QUERY' +'QUICK' +'REBUILD' +'RECOVER' +'REDO_BUFFER_SIZE' +'REDUNDANT' +'RELAY' +'RELAY_LOG_FILE' +'RELAY_LOG_POS' +'RELAYLOG' +'REMOVE' +'REORGANIZE' +'REPAIR' +'REPLICATE_DO_DB' +'REPLICATE_DO_TABLE' +'REPLICATE_IGNORE_DB' +'REPLICATE_IGNORE_TABLE' +'REPLICATE_REWRITE_DB' +'REPLICATE_WILD_DO_TABLE' +'REPLICATE_WILD_IGNORE_TABLE' +'REPLICATION' +'RESET' +'RESUME' +'RETURNS' +'ROLLBACK' +'ROLLUP' +'ROTATE' +'ROW' +'ROWS' +'ROW_FORMAT' +'SAVEPOINT' +'SCHEDULE' +'SECURITY' +'SERVER' +'SESSION' +'SHARE' +'SHARED' +'SIGNED' +'SIMPLE' +'SLAVE' +'SLOW' +'SNAPSHOT' +'SOCKET' +'SOME' +'SONAME' +'SOUNDS' +'SOURCE' +'SQL_AFTER_GTIDS' +'SQL_AFTER_MTS_GAPS' +'SQL_BEFORE_GTIDS' +'SQL_BUFFER_RESULT' +'SQL_CACHE' +'SQL_NO_CACHE' +'SQL_THREAD' +'START' +'STARTS' +'STATS_AUTO_RECALC' +'STATS_PERSISTENT' +'STATS_SAMPLE_PAGES' +'STATUS' +'STOP' +'STORAGE' +'STRING' +'SUBJECT' +'SUBPARTITION' +'SUBPARTITIONS' +'SUSPEND' +'SWAPS' +'SWITCHES' +'TABLESPACE' +'TEMPORARY' +'TEMPTABLE' +'THAN' +'TRADITIONAL' +'TRANSACTION' +'TRIGGERS' +'TRUNCATE' +'UNDEFINED' +'UNDOFILE' +'UNDO_BUFFER_SIZE' +'UNINSTALL' +'UNKNOWN' +'UNTIL' +'UPGRADE' +'USER' +'USE_FRM' +'USER_RESOURCES' +'VALIDATION' +'VALUE' +'VARIABLES' +'VIEW' +'WAIT' +'WARNINGS' +'WITHOUT' +'WORK' +'WRAPPER' +'X509' +'XA' +'XML' +'EUR' +'USA' +'JIS' +'ISO' +'INTERNAL' +'QUARTER' +'MONTH' +'DAY' +'HOUR' +'MINUTE' +'WEEK' +'SECOND' +'MICROSECOND' +'TABLES' +'ROUTINE' +'EXECUTE' +'FILE' +'PROCESS' +'RELOAD' +'SHUTDOWN' +'SUPER' +'PRIVILEGES' +'ARMSCII8' +'ASCII' +'BIG5' +'CP1250' +'CP1251' +'CP1256' +'CP1257' +'CP850' +'CP852' +'CP866' +'CP932' +'DEC8' +'EUCJPMS' +'EUCKR' +'GB2312' +'GBK' +'GEOSTD8' +'GREEK' +'HEBREW' +'HP8' +'KEYBCS2' +'KOI8R' +'KOI8U' +'LATIN1' +'LATIN2' +'LATIN5' +'LATIN7' +'MACCE' +'MACROMAN' +'SJIS' +'SWE7' +'TIS620' +'UCS2' +'UJIS' +'UTF16' +'UTF16LE' +'UTF32' +'UTF8' +'UTF8MB3' +'UTF8MB4' +'ARCHIVE' +'BLACKHOLE' +'CSV' +'FEDERATED' +'INNODB' +'MEMORY' +'MRG_MYISAM' +'MYISAM' +'NDB' +'NDBCLUSTER' +'PERFOMANCE_SCHEMA' +'REPEATABLE' +'COMMITTED' +'UNCOMMITTED' +'SERIALIZABLE' +'GEOMETRYCOLLECTION' +'LINESTRING' +'MULTILINESTRING' +'MULTIPOINT' +'MULTIPOLYGON' +'POINT' +'POLYGON' +'ABS' +'ACOS' +'ADDDATE' +'ADDTIME' +'AES_DECRYPT' +'AES_ENCRYPT' +'AREA' +'ASBINARY' +'ASIN' +'ASTEXT' +'ASWKB' +'ASWKT' +'ASYMMETRIC_DECRYPT' +'ASYMMETRIC_DERIVE' +'ASYMMETRIC_ENCRYPT' +'ASYMMETRIC_SIGN' +'ASYMMETRIC_VERIFY' +'ATAN' +'ATAN2' +'BENCHMARK' +'BIN' +'BIT_COUNT' +'BIT_LENGTH' +'BUFFER' +'CEIL' +'CEILING' +'CENTROID' +'CHARACTER_LENGTH' +'CHARSET' +'CHAR_LENGTH' +'COERCIBILITY' +'COLLATION' +'COMPRESS' +'CONCAT' +'CONCAT_WS' +'CONNECTION_ID' +'CONV' +'CONVERT_TZ' +'COS' +'COT' +'CRC32' +'CREATE_ASYMMETRIC_PRIV_KEY' +'CREATE_ASYMMETRIC_PUB_KEY' +'CREATE_DH_PARAMETERS' +'CREATE_DIGEST' +'CROSSES' +'DATEDIFF' +'DATE_FORMAT' +'DAYNAME' +'DAYOFMONTH' +'DAYOFWEEK' +'DAYOFYEAR' +'DECODE' +'DEGREES' +'DES_DECRYPT' +'DES_ENCRYPT' +'DIMENSION' +'DISJOINT' +'ELT' +'ENCODE' +'ENCRYPT' +'ENDPOINT' +'ENVELOPE' +'EQUALS' +'EXP' +'EXPORT_SET' +'EXTERIORRING' +'EXTRACTVALUE' +'FIELD' +'FIND_IN_SET' +'FLOOR' +'FORMAT' +'FOUND_ROWS' +'FROM_BASE64' +'FROM_DAYS' +'FROM_UNIXTIME' +'GEOMCOLLFROMTEXT' +'GEOMCOLLFROMWKB' +'GEOMETRYCOLLECTIONFROMTEXT' +'GEOMETRYCOLLECTIONFROMWKB' +'GEOMETRYFROMTEXT' +'GEOMETRYFROMWKB' +'GEOMETRYN' +'GEOMETRYTYPE' +'GEOMFROMTEXT' +'GEOMFROMWKB' +'GET_FORMAT' +'GET_LOCK' +'GLENGTH' +'GREATEST' +'GTID_SUBSET' +'GTID_SUBTRACT' +'HEX' +'IFNULL' +'INET6_ATON' +'INET6_NTOA' +'INET_ATON' +'INET_NTOA' +'INSTR' +'INTERIORRINGN' +'INTERSECTS' +'ISCLOSED' +'ISEMPTY' +'ISNULL' +'ISSIMPLE' +'IS_FREE_LOCK' +'IS_IPV4' +'IS_IPV4_COMPAT' +'IS_IPV4_MAPPED' +'IS_IPV6' +'IS_USED_LOCK' +'LAST_INSERT_ID' +'LCASE' +'LEAST' +'LENGTH' +'LINEFROMTEXT' +'LINEFROMWKB' +'LINESTRINGFROMTEXT' +'LINESTRINGFROMWKB' +'LN' +'LOAD_FILE' +'LOCATE' +'LOG' +'LOG10' +'LOG2' +'LOWER' +'LPAD' +'LTRIM' +'MAKEDATE' +'MAKETIME' +'MAKE_SET' +'MASTER_POS_WAIT' +'MBRCONTAINS' +'MBRDISJOINT' +'MBREQUAL' +'MBRINTERSECTS' +'MBROVERLAPS' +'MBRTOUCHES' +'MBRWITHIN' +'MD5' +'MLINEFROMTEXT' +'MLINEFROMWKB' +'MONTHNAME' +'MPOINTFROMTEXT' +'MPOINTFROMWKB' +'MPOLYFROMTEXT' +'MPOLYFROMWKB' +'MULTILINESTRINGFROMTEXT' +'MULTILINESTRINGFROMWKB' +'MULTIPOINTFROMTEXT' +'MULTIPOINTFROMWKB' +'MULTIPOLYGONFROMTEXT' +'MULTIPOLYGONFROMWKB' +'NAME_CONST' +'NULLIF' +'NUMGEOMETRIES' +'NUMINTERIORRINGS' +'NUMPOINTS' +'OCT' +'OCTET_LENGTH' +'ORD' +'OVERLAPS' +'PERIOD_ADD' +'PERIOD_DIFF' +'PI' +'POINTFROMTEXT' +'POINTFROMWKB' +'POINTN' +'POLYFROMTEXT' +'POLYFROMWKB' +'POLYGONFROMTEXT' +'POLYGONFROMWKB' +'POW' +'POWER' +'QUOTE' +'RADIANS' +'RAND' +'RANDOM_BYTES' +'RELEASE_LOCK' +'REVERSE' +'ROUND' +'ROW_COUNT' +'RPAD' +'RTRIM' +'SEC_TO_TIME' +'SESSION_USER' +'SHA' +'SHA1' +'SHA2' +'SIGN' +'SIN' +'SLEEP' +'SOUNDEX' +'SQL_THREAD_WAIT_AFTER_GTIDS' +'SQRT' +'SRID' +'STARTPOINT' +'STRCMP' +'STR_TO_DATE' +'ST_AREA' +'ST_ASBINARY' +'ST_ASTEXT' +'ST_ASWKB' +'ST_ASWKT' +'ST_BUFFER' +'ST_CENTROID' +'ST_CONTAINS' +'ST_CROSSES' +'ST_DIFFERENCE' +'ST_DIMENSION' +'ST_DISJOINT' +'ST_DISTANCE' +'ST_ENDPOINT' +'ST_ENVELOPE' +'ST_EQUALS' +'ST_EXTERIORRING' +'ST_GEOMCOLLFROMTEXT' +'ST_GEOMCOLLFROMTXT' +'ST_GEOMCOLLFROMWKB' +'ST_GEOMETRYCOLLECTIONFROMTEXT' +'ST_GEOMETRYCOLLECTIONFROMWKB' +'ST_GEOMETRYFROMTEXT' +'ST_GEOMETRYFROMWKB' +'ST_GEOMETRYN' +'ST_GEOMETRYTYPE' +'ST_GEOMFROMTEXT' +'ST_GEOMFROMWKB' +'ST_INTERIORRINGN' +'ST_INTERSECTION' +'ST_INTERSECTS' +'ST_ISCLOSED' +'ST_ISEMPTY' +'ST_ISSIMPLE' +'ST_LINEFROMTEXT' +'ST_LINEFROMWKB' +'ST_LINESTRINGFROMTEXT' +'ST_LINESTRINGFROMWKB' +'ST_NUMGEOMETRIES' +'ST_NUMINTERIORRING' +'ST_NUMINTERIORRINGS' +'ST_NUMPOINTS' +'ST_OVERLAPS' +'ST_POINTFROMTEXT' +'ST_POINTFROMWKB' +'ST_POINTN' +'ST_POLYFROMTEXT' +'ST_POLYFROMWKB' +'ST_POLYGONFROMTEXT' +'ST_POLYGONFROMWKB' +'ST_SRID' +'ST_STARTPOINT' +'ST_SYMDIFFERENCE' +'ST_TOUCHES' +'ST_UNION' +'ST_WITHIN' +'ST_X' +'ST_Y' +'SUBDATE' +'SUBSTRING_INDEX' +'SUBTIME' +'SYSTEM_USER' +'TAN' +'TIMEDIFF' +'TIMESTAMPADD' +'TIMESTAMPDIFF' +'TIME_FORMAT' +'TIME_TO_SEC' +'TOUCHES' +'TO_BASE64' +'TO_DAYS' +'TO_SECONDS' +'UCASE' +'UNCOMPRESS' +'UNCOMPRESSED_LENGTH' +'UNHEX' +'UNIX_TIMESTAMP' +'UPDATEXML' +'UPPER' +'UUID' +'UUID_SHORT' +'VALIDATE_PASSWORD_STRENGTH' +'VERSION' +'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' +'WEEKDAY' +'WEEKOFYEAR' +'WEIGHT_STRING' +'WITHIN' +'YEARWEEK' +'Y' +'X' +':=' +'+=' +'-=' +'*=' +'/=' +'%=' +'&=' +'^=' +'|=' +'*' +'/' +'%' +'+' +'--' +'-' +'DIV' +'MOD' +'=' +'>' +'<' +'!' +'~' +'|' +'&' +'^' +'.' +'(' +')' +',' +';' +'@' +'0' +'1' +'2' +'\'' +'"' +'`' +':' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +SPACE +SPEC_MYSQL_COMMENT +COMMENT_INPUT +LINE_COMMENT +ADD +ALL +ALTER +ANALYZE +AND +AS +ASC +BEFORE +BETWEEN +BOTH +BY +CALL +CASCADE +CASE +CAST +CHANGE +CHARACTER +CHECK +COLLATE +COLUMN +CONDITION +CONSTRAINT +CONTINUE +CONVERT +CREATE +CROSS +CURRENT_USER +CURSOR +DATABASE +DATABASES +DECLARE +DEFAULT +DELAYED +DELETE +DESC +DESCRIBE +DETERMINISTIC +DISTINCT +DISTINCTROW +DROP +EACH +ELSE +ELSEIF +ENCLOSED +ESCAPED +EXISTS +EXIT +EXPLAIN +FALSE +FETCH +FOR +FORCE +FOREIGN +FROM +FULLTEXT +GRANT +GROUP +HAVING +HIGH_PRIORITY +IF +IGNORE +IN +INDEX +INFILE +INNER +INOUT +INSERT +INTERVAL +INTO +IS +ITERATE +JOIN +KEY +KEYS +KILL +LEADING +LEAVE +LEFT +LIKE +LIMIT +LINEAR +LINES +LOAD +LOCK +LOOP +LOW_PRIORITY +MASTER_BIND +MASTER_SSL_VERIFY_SERVER_CERT +MATCH +MAXVALUE +MODIFIES +NATURAL +NOT +NO_WRITE_TO_BINLOG +NULL_LITERAL +ON +OPTIMIZE +OPTION +OPTIONALLY +OR +ORDER +OUT +OUTER +OUTFILE +PARTITION +PRIMARY +PROCEDURE +PURGE +RANGE +READ +READS +REFERENCES +REGEXP +RELEASE +RENAME +REPEAT +REPLACE +REQUIRE +RESTRICT +RETURN +REVOKE +RIGHT +RLIKE +SCHEMA +SCHEMAS +SELECT +SET +SEPARATOR +SHOW +SPATIAL +SQL +SQLEXCEPTION +SQLSTATE +SQLWARNING +SQL_BIG_RESULT +SQL_CALC_FOUND_ROWS +SQL_SMALL_RESULT +SSL +STARTING +STRAIGHT_JOIN +TABLE +TERMINATED +THEN +TO +TRAILING +TRIGGER +TRUE +UNDO +UNION +UNIQUE +UNLOCK +UNSIGNED +UPDATE +USAGE +USE +USING +VALUES +WHEN +WHERE +WHILE +WITH +WRITE +XOR +ZEROFILL +TINYINT +SMALLINT +MEDIUMINT +INT +INTEGER +BIGINT +REAL +DOUBLE +FLOAT +DECIMAL +NUMERIC +DATE +TIME +TIMESTAMP +DATETIME +YEAR +CHAR +VARCHAR +BINARY +VARBINARY +TINYBLOB +BLOB +MEDIUMBLOB +LONGBLOB +TINYTEXT +TEXT +MEDIUMTEXT +LONGTEXT +ENUM +YEAR_MONTH +DAY_HOUR +DAY_MINUTE +DAY_SECOND +HOUR_MINUTE +HOUR_SECOND +MINUTE_SECOND +SECOND_MICROSECOND +MINUTE_MICROSECOND +HOUR_MICROSECOND +DAY_MICROSECOND +AVG +BIT_AND +BIT_OR +BIT_XOR +COUNT +GROUP_CONCAT +MAX +MIN +STD +STDDEV +STDDEV_POP +STDDEV_SAMP +SUM +VAR_POP +VAR_SAMP +VARIANCE +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +LOCALTIME +CURDATE +CURTIME +DATE_ADD +DATE_SUB +EXTRACT +LOCALTIMESTAMP +NOW +POSITION +SUBSTR +SUBSTRING +SYSDATE +TRIM +UTC_DATE +UTC_TIME +UTC_TIMESTAMP +ACCOUNT +ACTION +AFTER +AGGREGATE +ALGORITHM +ANY +AT +AUTHORS +AUTOCOMMIT +AUTOEXTEND_SIZE +AUTO_INCREMENT +AVG_ROW_LENGTH +BEGIN +BINLOG +BIT +BLOCK +BOOL +BOOLEAN +BTREE +CACHE +CASCADED +CHAIN +CHANGED +CHANNEL +CHECKSUM +CIPHER +CLIENT +CLOSE +COALESCE +CODE +COLUMNS +COLUMN_FORMAT +COMMENT +COMMIT +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONNECTION +CONSISTENT +CONTAINS +CONTEXT +CONTRIBUTORS +COPY +CPU +DATA +DATAFILE +DEALLOCATE +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DES_KEY_FILE +DIRECTORY +DISABLE +DISCARD +DISK +DO +DUMPFILE +DUPLICATE +DYNAMIC +ENABLE +ENCRYPTION +END +ENDS +ENGINE +ENGINES +ERROR +ERRORS +ESCAPE +EVEN +EVENT +EVENTS +EVERY +EXCHANGE +EXCLUSIVE +EXPIRE +EXPORT +EXTENDED +EXTENT_SIZE +FAST +FAULTS +FIELDS +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLUSH +FOLLOWS +FOUND +FULL +FUNCTION +GENERAL +GLOBAL +GRANTS +GROUP_REPLICATION +HANDLER +HASH +HELP +HOST +HOSTS +IDENTIFIED +IGNORE_SERVER_IDS +IMPORT +INDEXES +INITIAL_SIZE +INPLACE +INSERT_METHOD +INSTALL +INSTANCE +INVOKER +IO +IO_THREAD +IPC +ISOLATION +ISSUER +JSON +KEY_BLOCK_SIZE +LANGUAGE +LAST +LEAVES +LESS +LEVEL +LIST +LOCAL +LOGFILE +LOGS +MASTER +MASTER_AUTO_POSITION +MASTER_CONNECT_RETRY +MASTER_DELAY +MASTER_HEARTBEAT_PERIOD +MASTER_HOST +MASTER_LOG_FILE +MASTER_LOG_POS +MASTER_PASSWORD +MASTER_PORT +MASTER_RETRY_COUNT +MASTER_SSL +MASTER_SSL_CA +MASTER_SSL_CAPATH +MASTER_SSL_CERT +MASTER_SSL_CIPHER +MASTER_SSL_CRL +MASTER_SSL_CRLPATH +MASTER_SSL_KEY +MASTER_TLS_VERSION +MASTER_USER +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MEDIUM +MERGE +MID +MIGRATE +MIN_ROWS +MODE +MODIFY +MUTEX +MYSQL +NAME +NAMES +NCHAR +NEVER +NEXT +NO +NODEGROUP +NONE +OFFLINE +OFFSET +OJ +OLD_PASSWORD +ONE +ONLINE +ONLY +OPEN +OPTIMIZER_COSTS +OPTIONS +OWNER +PACK_KEYS +PAGE +PARSER +PARTIAL +PARTITIONING +PARTITIONS +PASSWORD +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +PORT +PRECEDES +PREPARE +PRESERVE +PREV +PROCESSLIST +PROFILE +PROFILES +PROXY +QUERY +QUICK +REBUILD +RECOVER +REDO_BUFFER_SIZE +REDUNDANT +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAYLOG +REMOVE +REORGANIZE +REPAIR +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +RESET +RESUME +RETURNS +ROLLBACK +ROLLUP +ROTATE +ROW +ROWS +ROW_FORMAT +SAVEPOINT +SCHEDULE +SECURITY +SERVER +SESSION +SHARE +SHARED +SIGNED +SIMPLE +SLAVE +SLOW +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BUFFER_RESULT +SQL_CACHE +SQL_NO_CACHE +SQL_THREAD +START +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STRING +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUSPEND +SWAPS +SWITCHES +TABLESPACE +TEMPORARY +TEMPTABLE +THAN +TRADITIONAL +TRANSACTION +TRIGGERS +TRUNCATE +UNDEFINED +UNDOFILE +UNDO_BUFFER_SIZE +UNINSTALL +UNKNOWN +UNTIL +UPGRADE +USER +USE_FRM +USER_RESOURCES +VALIDATION +VALUE +VARIABLES +VIEW +WAIT +WARNINGS +WITHOUT +WORK +WRAPPER +X509 +XA +XML +EUR +USA +JIS +ISO +INTERNAL +QUARTER +MONTH +DAY +HOUR +MINUTE +WEEK +SECOND +MICROSECOND +TABLES +ROUTINE +EXECUTE +FILE +PROCESS +RELOAD +SHUTDOWN +SUPER +PRIVILEGES +ARMSCII8 +ASCII +BIG5 +CP1250 +CP1251 +CP1256 +CP1257 +CP850 +CP852 +CP866 +CP932 +DEC8 +EUCJPMS +EUCKR +GB2312 +GBK +GEOSTD8 +GREEK +HEBREW +HP8 +KEYBCS2 +KOI8R +KOI8U +LATIN1 +LATIN2 +LATIN5 +LATIN7 +MACCE +MACROMAN +SJIS +SWE7 +TIS620 +UCS2 +UJIS +UTF16 +UTF16LE +UTF32 +UTF8 +UTF8MB3 +UTF8MB4 +ARCHIVE +BLACKHOLE +CSV +FEDERATED +INNODB +MEMORY +MRG_MYISAM +MYISAM +NDB +NDBCLUSTER +PERFOMANCE_SCHEMA +REPEATABLE +COMMITTED +UNCOMMITTED +SERIALIZABLE +GEOMETRYCOLLECTION +LINESTRING +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +POINT +POLYGON +ABS +ACOS +ADDDATE +ADDTIME +AES_DECRYPT +AES_ENCRYPT +AREA +ASBINARY +ASIN +ASTEXT +ASWKB +ASWKT +ASYMMETRIC_DECRYPT +ASYMMETRIC_DERIVE +ASYMMETRIC_ENCRYPT +ASYMMETRIC_SIGN +ASYMMETRIC_VERIFY +ATAN +ATAN2 +BENCHMARK +BIN +BIT_COUNT +BIT_LENGTH +BUFFER +CEIL +CEILING +CENTROID +CHARACTER_LENGTH +CHARSET +CHAR_LENGTH +COERCIBILITY +COLLATION +COMPRESS +CONCAT +CONCAT_WS +CONNECTION_ID +CONV +CONVERT_TZ +COS +COT +CRC32 +CREATE_ASYMMETRIC_PRIV_KEY +CREATE_ASYMMETRIC_PUB_KEY +CREATE_DH_PARAMETERS +CREATE_DIGEST +CROSSES +DATEDIFF +DATE_FORMAT +DAYNAME +DAYOFMONTH +DAYOFWEEK +DAYOFYEAR +DECODE +DEGREES +DES_DECRYPT +DES_ENCRYPT +DIMENSION +DISJOINT +ELT +ENCODE +ENCRYPT +ENDPOINT +ENVELOPE +EQUALS +EXP +EXPORT_SET +EXTERIORRING +EXTRACTVALUE +FIELD +FIND_IN_SET +FLOOR +FORMAT +FOUND_ROWS +FROM_BASE64 +FROM_DAYS +FROM_UNIXTIME +GEOMCOLLFROMTEXT +GEOMCOLLFROMWKB +GEOMETRYCOLLECTIONFROMTEXT +GEOMETRYCOLLECTIONFROMWKB +GEOMETRYFROMTEXT +GEOMETRYFROMWKB +GEOMETRYN +GEOMETRYTYPE +GEOMFROMTEXT +GEOMFROMWKB +GET_FORMAT +GET_LOCK +GLENGTH +GREATEST +GTID_SUBSET +GTID_SUBTRACT +HEX +IFNULL +INET6_ATON +INET6_NTOA +INET_ATON +INET_NTOA +INSTR +INTERIORRINGN +INTERSECTS +ISCLOSED +ISEMPTY +ISNULL +ISSIMPLE +IS_FREE_LOCK +IS_IPV4 +IS_IPV4_COMPAT +IS_IPV4_MAPPED +IS_IPV6 +IS_USED_LOCK +LAST_INSERT_ID +LCASE +LEAST +LENGTH +LINEFROMTEXT +LINEFROMWKB +LINESTRINGFROMTEXT +LINESTRINGFROMWKB +LN +LOAD_FILE +LOCATE +LOG +LOG10 +LOG2 +LOWER +LPAD +LTRIM +MAKEDATE +MAKETIME +MAKE_SET +MASTER_POS_WAIT +MBRCONTAINS +MBRDISJOINT +MBREQUAL +MBRINTERSECTS +MBROVERLAPS +MBRTOUCHES +MBRWITHIN +MD5 +MLINEFROMTEXT +MLINEFROMWKB +MONTHNAME +MPOINTFROMTEXT +MPOINTFROMWKB +MPOLYFROMTEXT +MPOLYFROMWKB +MULTILINESTRINGFROMTEXT +MULTILINESTRINGFROMWKB +MULTIPOINTFROMTEXT +MULTIPOINTFROMWKB +MULTIPOLYGONFROMTEXT +MULTIPOLYGONFROMWKB +NAME_CONST +NULLIF +NUMGEOMETRIES +NUMINTERIORRINGS +NUMPOINTS +OCT +OCTET_LENGTH +ORD +OVERLAPS +PERIOD_ADD +PERIOD_DIFF +PI +POINTFROMTEXT +POINTFROMWKB +POINTN +POLYFROMTEXT +POLYFROMWKB +POLYGONFROMTEXT +POLYGONFROMWKB +POW +POWER +QUOTE +RADIANS +RAND +RANDOM_BYTES +RELEASE_LOCK +REVERSE +ROUND +ROW_COUNT +RPAD +RTRIM +SEC_TO_TIME +SESSION_USER +SHA +SHA1 +SHA2 +SIGN +SIN +SLEEP +SOUNDEX +SQL_THREAD_WAIT_AFTER_GTIDS +SQRT +SRID +STARTPOINT +STRCMP +STR_TO_DATE +ST_AREA +ST_ASBINARY +ST_ASTEXT +ST_ASWKB +ST_ASWKT +ST_BUFFER +ST_CENTROID +ST_CONTAINS +ST_CROSSES +ST_DIFFERENCE +ST_DIMENSION +ST_DISJOINT +ST_DISTANCE +ST_ENDPOINT +ST_ENVELOPE +ST_EQUALS +ST_EXTERIORRING +ST_GEOMCOLLFROMTEXT +ST_GEOMCOLLFROMTXT +ST_GEOMCOLLFROMWKB +ST_GEOMETRYCOLLECTIONFROMTEXT +ST_GEOMETRYCOLLECTIONFROMWKB +ST_GEOMETRYFROMTEXT +ST_GEOMETRYFROMWKB +ST_GEOMETRYN +ST_GEOMETRYTYPE +ST_GEOMFROMTEXT +ST_GEOMFROMWKB +ST_INTERIORRINGN +ST_INTERSECTION +ST_INTERSECTS +ST_ISCLOSED +ST_ISEMPTY +ST_ISSIMPLE +ST_LINEFROMTEXT +ST_LINEFROMWKB +ST_LINESTRINGFROMTEXT +ST_LINESTRINGFROMWKB +ST_NUMGEOMETRIES +ST_NUMINTERIORRING +ST_NUMINTERIORRINGS +ST_NUMPOINTS +ST_OVERLAPS +ST_POINTFROMTEXT +ST_POINTFROMWKB +ST_POINTN +ST_POLYFROMTEXT +ST_POLYFROMWKB +ST_POLYGONFROMTEXT +ST_POLYGONFROMWKB +ST_SRID +ST_STARTPOINT +ST_SYMDIFFERENCE +ST_TOUCHES +ST_UNION +ST_WITHIN +ST_X +ST_Y +SUBDATE +SUBSTRING_INDEX +SUBTIME +SYSTEM_USER +TAN +TIMEDIFF +TIMESTAMPADD +TIMESTAMPDIFF +TIME_FORMAT +TIME_TO_SEC +TOUCHES +TO_BASE64 +TO_DAYS +TO_SECONDS +UCASE +UNCOMPRESS +UNCOMPRESSED_LENGTH +UNHEX +UNIX_TIMESTAMP +UPDATEXML +UPPER +UUID +UUID_SHORT +VALIDATE_PASSWORD_STRENGTH +VERSION +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS +WEEKDAY +WEEKOFYEAR +WEIGHT_STRING +WITHIN +YEARWEEK +Y_FUNCTION +X_FUNCTION +VAR_ASSIGN +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +STAR +DIVIDE +MODULE +PLUS +MINUSMINUS +MINUS +DIV +MOD +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LR_BRACKET +RR_BRACKET +COMMA +SEMI +AT_SIGN +ZERO_DECIMAL +ONE_DECIMAL +TWO_DECIMAL +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +CHARSET_REVERSE_QOUTE_STRING +FILESIZE_LITERAL +START_NATIONAL_STRING_LITERAL +STRING_LITERAL +DECIMAL_LITERAL +HEXADECIMAL_LITERAL +REAL_LITERAL +NULL_SPEC_LITERAL +BIT_STRING +STRING_CHARSET_NAME +DOT_ID +ID +REVERSE_QUOTE_ID +STRING_USER_NAME +LOCAL_ID +GLOBAL_ID +ERROR_RECONGNIGION + +rule names: +SPACE +SPEC_MYSQL_COMMENT +COMMENT_INPUT +LINE_COMMENT +ADD +ALL +ALTER +ANALYZE +AND +AS +ASC +BEFORE +BETWEEN +BOTH +BY +CALL +CASCADE +CASE +CAST +CHANGE +CHARACTER +CHECK +COLLATE +COLUMN +CONDITION +CONSTRAINT +CONTINUE +CONVERT +CREATE +CROSS +CURRENT_USER +CURSOR +DATABASE +DATABASES +DECLARE +DEFAULT +DELAYED +DELETE +DESC +DESCRIBE +DETERMINISTIC +DISTINCT +DISTINCTROW +DROP +EACH +ELSE +ELSEIF +ENCLOSED +ESCAPED +EXISTS +EXIT +EXPLAIN +FALSE +FETCH +FOR +FORCE +FOREIGN +FROM +FULLTEXT +GRANT +GROUP +HAVING +HIGH_PRIORITY +IF +IGNORE +IN +INDEX +INFILE +INNER +INOUT +INSERT +INTERVAL +INTO +IS +ITERATE +JOIN +KEY +KEYS +KILL +LEADING +LEAVE +LEFT +LIKE +LIMIT +LINEAR +LINES +LOAD +LOCK +LOOP +LOW_PRIORITY +MASTER_BIND +MASTER_SSL_VERIFY_SERVER_CERT +MATCH +MAXVALUE +MODIFIES +NATURAL +NOT +NO_WRITE_TO_BINLOG +NULL_LITERAL +ON +OPTIMIZE +OPTION +OPTIONALLY +OR +ORDER +OUT +OUTER +OUTFILE +PARTITION +PRIMARY +PROCEDURE +PURGE +RANGE +READ +READS +REFERENCES +REGEXP +RELEASE +RENAME +REPEAT +REPLACE +REQUIRE +RESTRICT +RETURN +REVOKE +RIGHT +RLIKE +SCHEMA +SCHEMAS +SELECT +SET +SEPARATOR +SHOW +SPATIAL +SQL +SQLEXCEPTION +SQLSTATE +SQLWARNING +SQL_BIG_RESULT +SQL_CALC_FOUND_ROWS +SQL_SMALL_RESULT +SSL +STARTING +STRAIGHT_JOIN +TABLE +TERMINATED +THEN +TO +TRAILING +TRIGGER +TRUE +UNDO +UNION +UNIQUE +UNLOCK +UNSIGNED +UPDATE +USAGE +USE +USING +VALUES +WHEN +WHERE +WHILE +WITH +WRITE +XOR +ZEROFILL +TINYINT +SMALLINT +MEDIUMINT +INT +INTEGER +BIGINT +REAL +DOUBLE +FLOAT +DECIMAL +NUMERIC +DATE +TIME +TIMESTAMP +DATETIME +YEAR +CHAR +VARCHAR +BINARY +VARBINARY +TINYBLOB +BLOB +MEDIUMBLOB +LONGBLOB +TINYTEXT +TEXT +MEDIUMTEXT +LONGTEXT +ENUM +YEAR_MONTH +DAY_HOUR +DAY_MINUTE +DAY_SECOND +HOUR_MINUTE +HOUR_SECOND +MINUTE_SECOND +SECOND_MICROSECOND +MINUTE_MICROSECOND +HOUR_MICROSECOND +DAY_MICROSECOND +AVG +BIT_AND +BIT_OR +BIT_XOR +COUNT +GROUP_CONCAT +MAX +MIN +STD +STDDEV +STDDEV_POP +STDDEV_SAMP +SUM +VAR_POP +VAR_SAMP +VARIANCE +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +LOCALTIME +CURDATE +CURTIME +DATE_ADD +DATE_SUB +EXTRACT +LOCALTIMESTAMP +NOW +POSITION +SUBSTR +SUBSTRING +SYSDATE +TRIM +UTC_DATE +UTC_TIME +UTC_TIMESTAMP +ACCOUNT +ACTION +AFTER +AGGREGATE +ALGORITHM +ANY +AT +AUTHORS +AUTOCOMMIT +AUTOEXTEND_SIZE +AUTO_INCREMENT +AVG_ROW_LENGTH +BEGIN +BINLOG +BIT +BLOCK +BOOL +BOOLEAN +BTREE +CACHE +CASCADED +CHAIN +CHANGED +CHANNEL +CHECKSUM +CIPHER +CLIENT +CLOSE +COALESCE +CODE +COLUMNS +COLUMN_FORMAT +COMMENT +COMMIT +COMPACT +COMPLETION +COMPRESSED +COMPRESSION +CONCURRENT +CONNECTION +CONSISTENT +CONTAINS +CONTEXT +CONTRIBUTORS +COPY +CPU +DATA +DATAFILE +DEALLOCATE +DEFAULT_AUTH +DEFINER +DELAY_KEY_WRITE +DES_KEY_FILE +DIRECTORY +DISABLE +DISCARD +DISK +DO +DUMPFILE +DUPLICATE +DYNAMIC +ENABLE +ENCRYPTION +END +ENDS +ENGINE +ENGINES +ERROR +ERRORS +ESCAPE +EVEN +EVENT +EVENTS +EVERY +EXCHANGE +EXCLUSIVE +EXPIRE +EXPORT +EXTENDED +EXTENT_SIZE +FAST +FAULTS +FIELDS +FILE_BLOCK_SIZE +FILTER +FIRST +FIXED +FLUSH +FOLLOWS +FOUND +FULL +FUNCTION +GENERAL +GLOBAL +GRANTS +GROUP_REPLICATION +HANDLER +HASH +HELP +HOST +HOSTS +IDENTIFIED +IGNORE_SERVER_IDS +IMPORT +INDEXES +INITIAL_SIZE +INPLACE +INSERT_METHOD +INSTALL +INSTANCE +INVOKER +IO +IO_THREAD +IPC +ISOLATION +ISSUER +JSON +KEY_BLOCK_SIZE +LANGUAGE +LAST +LEAVES +LESS +LEVEL +LIST +LOCAL +LOGFILE +LOGS +MASTER +MASTER_AUTO_POSITION +MASTER_CONNECT_RETRY +MASTER_DELAY +MASTER_HEARTBEAT_PERIOD +MASTER_HOST +MASTER_LOG_FILE +MASTER_LOG_POS +MASTER_PASSWORD +MASTER_PORT +MASTER_RETRY_COUNT +MASTER_SSL +MASTER_SSL_CA +MASTER_SSL_CAPATH +MASTER_SSL_CERT +MASTER_SSL_CIPHER +MASTER_SSL_CRL +MASTER_SSL_CRLPATH +MASTER_SSL_KEY +MASTER_TLS_VERSION +MASTER_USER +MAX_CONNECTIONS_PER_HOUR +MAX_QUERIES_PER_HOUR +MAX_ROWS +MAX_SIZE +MAX_UPDATES_PER_HOUR +MAX_USER_CONNECTIONS +MEDIUM +MERGE +MID +MIGRATE +MIN_ROWS +MODE +MODIFY +MUTEX +MYSQL +NAME +NAMES +NCHAR +NEVER +NEXT +NO +NODEGROUP +NONE +OFFLINE +OFFSET +OJ +OLD_PASSWORD +ONE +ONLINE +ONLY +OPEN +OPTIMIZER_COSTS +OPTIONS +OWNER +PACK_KEYS +PAGE +PARSER +PARTIAL +PARTITIONING +PARTITIONS +PASSWORD +PHASE +PLUGIN +PLUGIN_DIR +PLUGINS +PORT +PRECEDES +PREPARE +PRESERVE +PREV +PROCESSLIST +PROFILE +PROFILES +PROXY +QUERY +QUICK +REBUILD +RECOVER +REDO_BUFFER_SIZE +REDUNDANT +RELAY +RELAY_LOG_FILE +RELAY_LOG_POS +RELAYLOG +REMOVE +REORGANIZE +REPAIR +REPLICATE_DO_DB +REPLICATE_DO_TABLE +REPLICATE_IGNORE_DB +REPLICATE_IGNORE_TABLE +REPLICATE_REWRITE_DB +REPLICATE_WILD_DO_TABLE +REPLICATE_WILD_IGNORE_TABLE +REPLICATION +RESET +RESUME +RETURNS +ROLLBACK +ROLLUP +ROTATE +ROW +ROWS +ROW_FORMAT +SAVEPOINT +SCHEDULE +SECURITY +SERVER +SESSION +SHARE +SHARED +SIGNED +SIMPLE +SLAVE +SLOW +SNAPSHOT +SOCKET +SOME +SONAME +SOUNDS +SOURCE +SQL_AFTER_GTIDS +SQL_AFTER_MTS_GAPS +SQL_BEFORE_GTIDS +SQL_BUFFER_RESULT +SQL_CACHE +SQL_NO_CACHE +SQL_THREAD +START +STARTS +STATS_AUTO_RECALC +STATS_PERSISTENT +STATS_SAMPLE_PAGES +STATUS +STOP +STORAGE +STRING +SUBJECT +SUBPARTITION +SUBPARTITIONS +SUSPEND +SWAPS +SWITCHES +TABLESPACE +TEMPORARY +TEMPTABLE +THAN +TRADITIONAL +TRANSACTION +TRIGGERS +TRUNCATE +UNDEFINED +UNDOFILE +UNDO_BUFFER_SIZE +UNINSTALL +UNKNOWN +UNTIL +UPGRADE +USER +USE_FRM +USER_RESOURCES +VALIDATION +VALUE +VARIABLES +VIEW +WAIT +WARNINGS +WITHOUT +WORK +WRAPPER +X509 +XA +XML +EUR +USA +JIS +ISO +INTERNAL +QUARTER +MONTH +DAY +HOUR +MINUTE +WEEK +SECOND +MICROSECOND +TABLES +ROUTINE +EXECUTE +FILE +PROCESS +RELOAD +SHUTDOWN +SUPER +PRIVILEGES +ARMSCII8 +ASCII +BIG5 +CP1250 +CP1251 +CP1256 +CP1257 +CP850 +CP852 +CP866 +CP932 +DEC8 +EUCJPMS +EUCKR +GB2312 +GBK +GEOSTD8 +GREEK +HEBREW +HP8 +KEYBCS2 +KOI8R +KOI8U +LATIN1 +LATIN2 +LATIN5 +LATIN7 +MACCE +MACROMAN +SJIS +SWE7 +TIS620 +UCS2 +UJIS +UTF16 +UTF16LE +UTF32 +UTF8 +UTF8MB3 +UTF8MB4 +ARCHIVE +BLACKHOLE +CSV +FEDERATED +INNODB +MEMORY +MRG_MYISAM +MYISAM +NDB +NDBCLUSTER +PERFOMANCE_SCHEMA +REPEATABLE +COMMITTED +UNCOMMITTED +SERIALIZABLE +GEOMETRYCOLLECTION +LINESTRING +MULTILINESTRING +MULTIPOINT +MULTIPOLYGON +POINT +POLYGON +ABS +ACOS +ADDDATE +ADDTIME +AES_DECRYPT +AES_ENCRYPT +AREA +ASBINARY +ASIN +ASTEXT +ASWKB +ASWKT +ASYMMETRIC_DECRYPT +ASYMMETRIC_DERIVE +ASYMMETRIC_ENCRYPT +ASYMMETRIC_SIGN +ASYMMETRIC_VERIFY +ATAN +ATAN2 +BENCHMARK +BIN +BIT_COUNT +BIT_LENGTH +BUFFER +CEIL +CEILING +CENTROID +CHARACTER_LENGTH +CHARSET +CHAR_LENGTH +COERCIBILITY +COLLATION +COMPRESS +CONCAT +CONCAT_WS +CONNECTION_ID +CONV +CONVERT_TZ +COS +COT +CRC32 +CREATE_ASYMMETRIC_PRIV_KEY +CREATE_ASYMMETRIC_PUB_KEY +CREATE_DH_PARAMETERS +CREATE_DIGEST +CROSSES +DATEDIFF +DATE_FORMAT +DAYNAME +DAYOFMONTH +DAYOFWEEK +DAYOFYEAR +DECODE +DEGREES +DES_DECRYPT +DES_ENCRYPT +DIMENSION +DISJOINT +ELT +ENCODE +ENCRYPT +ENDPOINT +ENVELOPE +EQUALS +EXP +EXPORT_SET +EXTERIORRING +EXTRACTVALUE +FIELD +FIND_IN_SET +FLOOR +FORMAT +FOUND_ROWS +FROM_BASE64 +FROM_DAYS +FROM_UNIXTIME +GEOMCOLLFROMTEXT +GEOMCOLLFROMWKB +GEOMETRYCOLLECTIONFROMTEXT +GEOMETRYCOLLECTIONFROMWKB +GEOMETRYFROMTEXT +GEOMETRYFROMWKB +GEOMETRYN +GEOMETRYTYPE +GEOMFROMTEXT +GEOMFROMWKB +GET_FORMAT +GET_LOCK +GLENGTH +GREATEST +GTID_SUBSET +GTID_SUBTRACT +HEX +IFNULL +INET6_ATON +INET6_NTOA +INET_ATON +INET_NTOA +INSTR +INTERIORRINGN +INTERSECTS +ISCLOSED +ISEMPTY +ISNULL +ISSIMPLE +IS_FREE_LOCK +IS_IPV4 +IS_IPV4_COMPAT +IS_IPV4_MAPPED +IS_IPV6 +IS_USED_LOCK +LAST_INSERT_ID +LCASE +LEAST +LENGTH +LINEFROMTEXT +LINEFROMWKB +LINESTRINGFROMTEXT +LINESTRINGFROMWKB +LN +LOAD_FILE +LOCATE +LOG +LOG10 +LOG2 +LOWER +LPAD +LTRIM +MAKEDATE +MAKETIME +MAKE_SET +MASTER_POS_WAIT +MBRCONTAINS +MBRDISJOINT +MBREQUAL +MBRINTERSECTS +MBROVERLAPS +MBRTOUCHES +MBRWITHIN +MD5 +MLINEFROMTEXT +MLINEFROMWKB +MONTHNAME +MPOINTFROMTEXT +MPOINTFROMWKB +MPOLYFROMTEXT +MPOLYFROMWKB +MULTILINESTRINGFROMTEXT +MULTILINESTRINGFROMWKB +MULTIPOINTFROMTEXT +MULTIPOINTFROMWKB +MULTIPOLYGONFROMTEXT +MULTIPOLYGONFROMWKB +NAME_CONST +NULLIF +NUMGEOMETRIES +NUMINTERIORRINGS +NUMPOINTS +OCT +OCTET_LENGTH +ORD +OVERLAPS +PERIOD_ADD +PERIOD_DIFF +PI +POINTFROMTEXT +POINTFROMWKB +POINTN +POLYFROMTEXT +POLYFROMWKB +POLYGONFROMTEXT +POLYGONFROMWKB +POW +POWER +QUOTE +RADIANS +RAND +RANDOM_BYTES +RELEASE_LOCK +REVERSE +ROUND +ROW_COUNT +RPAD +RTRIM +SEC_TO_TIME +SESSION_USER +SHA +SHA1 +SHA2 +SIGN +SIN +SLEEP +SOUNDEX +SQL_THREAD_WAIT_AFTER_GTIDS +SQRT +SRID +STARTPOINT +STRCMP +STR_TO_DATE +ST_AREA +ST_ASBINARY +ST_ASTEXT +ST_ASWKB +ST_ASWKT +ST_BUFFER +ST_CENTROID +ST_CONTAINS +ST_CROSSES +ST_DIFFERENCE +ST_DIMENSION +ST_DISJOINT +ST_DISTANCE +ST_ENDPOINT +ST_ENVELOPE +ST_EQUALS +ST_EXTERIORRING +ST_GEOMCOLLFROMTEXT +ST_GEOMCOLLFROMTXT +ST_GEOMCOLLFROMWKB +ST_GEOMETRYCOLLECTIONFROMTEXT +ST_GEOMETRYCOLLECTIONFROMWKB +ST_GEOMETRYFROMTEXT +ST_GEOMETRYFROMWKB +ST_GEOMETRYN +ST_GEOMETRYTYPE +ST_GEOMFROMTEXT +ST_GEOMFROMWKB +ST_INTERIORRINGN +ST_INTERSECTION +ST_INTERSECTS +ST_ISCLOSED +ST_ISEMPTY +ST_ISSIMPLE +ST_LINEFROMTEXT +ST_LINEFROMWKB +ST_LINESTRINGFROMTEXT +ST_LINESTRINGFROMWKB +ST_NUMGEOMETRIES +ST_NUMINTERIORRING +ST_NUMINTERIORRINGS +ST_NUMPOINTS +ST_OVERLAPS +ST_POINTFROMTEXT +ST_POINTFROMWKB +ST_POINTN +ST_POLYFROMTEXT +ST_POLYFROMWKB +ST_POLYGONFROMTEXT +ST_POLYGONFROMWKB +ST_SRID +ST_STARTPOINT +ST_SYMDIFFERENCE +ST_TOUCHES +ST_UNION +ST_WITHIN +ST_X +ST_Y +SUBDATE +SUBSTRING_INDEX +SUBTIME +SYSTEM_USER +TAN +TIMEDIFF +TIMESTAMPADD +TIMESTAMPDIFF +TIME_FORMAT +TIME_TO_SEC +TOUCHES +TO_BASE64 +TO_DAYS +TO_SECONDS +UCASE +UNCOMPRESS +UNCOMPRESSED_LENGTH +UNHEX +UNIX_TIMESTAMP +UPDATEXML +UPPER +UUID +UUID_SHORT +VALIDATE_PASSWORD_STRENGTH +VERSION +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS +WEEKDAY +WEEKOFYEAR +WEIGHT_STRING +WITHIN +YEARWEEK +Y_FUNCTION +X_FUNCTION +VAR_ASSIGN +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +STAR +DIVIDE +MODULE +PLUS +MINUSMINUS +MINUS +DIV +MOD +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LR_BRACKET +RR_BRACKET +COMMA +SEMI +AT_SIGN +ZERO_DECIMAL +ONE_DECIMAL +TWO_DECIMAL +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +CHARSET_REVERSE_QOUTE_STRING +FILESIZE_LITERAL +START_NATIONAL_STRING_LITERAL +STRING_LITERAL +DECIMAL_LITERAL +HEXADECIMAL_LITERAL +REAL_LITERAL +NULL_SPEC_LITERAL +BIT_STRING +STRING_CHARSET_NAME +DOT_ID +ID +REVERSE_QUOTE_ID +STRING_USER_NAME +LOCAL_ID +GLOBAL_ID +CHARSET_NAME +EXPONENT_NUM_PART +ID_LITERAL +DQUOTA_STRING +SQUOTA_STRING +BQUOTA_STRING +HEX_DIGIT +DEC_DIGIT +BIT_STRING_L +ERROR_RECONGNIGION + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN +null +null +MYSQLCOMMENT +ERRORCHANNEL + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 973, 10994, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 2, 864, 7, 864, 2, 865, 7, 865, 2, 866, 7, 866, 2, 867, 7, 867, 2, 868, 7, 868, 2, 869, 7, 869, 2, 870, 7, 870, 2, 871, 7, 871, 2, 872, 7, 872, 2, 873, 7, 873, 2, 874, 7, 874, 2, 875, 7, 875, 2, 876, 7, 876, 2, 877, 7, 877, 2, 878, 7, 878, 2, 879, 7, 879, 2, 880, 7, 880, 2, 881, 7, 881, 2, 882, 7, 882, 2, 883, 7, 883, 2, 884, 7, 884, 2, 885, 7, 885, 2, 886, 7, 886, 2, 887, 7, 887, 2, 888, 7, 888, 2, 889, 7, 889, 2, 890, 7, 890, 2, 891, 7, 891, 2, 892, 7, 892, 2, 893, 7, 893, 2, 894, 7, 894, 2, 895, 7, 895, 2, 896, 7, 896, 2, 897, 7, 897, 2, 898, 7, 898, 2, 899, 7, 899, 2, 900, 7, 900, 2, 901, 7, 901, 2, 902, 7, 902, 2, 903, 7, 903, 2, 904, 7, 904, 2, 905, 7, 905, 2, 906, 7, 906, 2, 907, 7, 907, 2, 908, 7, 908, 2, 909, 7, 909, 2, 910, 7, 910, 2, 911, 7, 911, 2, 912, 7, 912, 2, 913, 7, 913, 2, 914, 7, 914, 2, 915, 7, 915, 2, 916, 7, 916, 2, 917, 7, 917, 2, 918, 7, 918, 2, 919, 7, 919, 2, 920, 7, 920, 2, 921, 7, 921, 2, 922, 7, 922, 2, 923, 7, 923, 2, 924, 7, 924, 2, 925, 7, 925, 2, 926, 7, 926, 2, 927, 7, 927, 2, 928, 7, 928, 2, 929, 7, 929, 2, 930, 7, 930, 2, 931, 7, 931, 2, 932, 7, 932, 2, 933, 7, 933, 2, 934, 7, 934, 2, 935, 7, 935, 2, 936, 7, 936, 2, 937, 7, 937, 2, 938, 7, 938, 2, 939, 7, 939, 2, 940, 7, 940, 2, 941, 7, 941, 2, 942, 7, 942, 2, 943, 7, 943, 2, 944, 7, 944, 2, 945, 7, 945, 2, 946, 7, 946, 2, 947, 7, 947, 2, 948, 7, 948, 2, 949, 7, 949, 2, 950, 7, 950, 2, 951, 7, 951, 2, 952, 7, 952, 2, 953, 7, 953, 2, 954, 7, 954, 2, 955, 7, 955, 2, 956, 7, 956, 2, 957, 7, 957, 2, 958, 7, 958, 2, 959, 7, 959, 2, 960, 7, 960, 2, 961, 7, 961, 2, 962, 7, 962, 2, 963, 7, 963, 2, 964, 7, 964, 2, 965, 7, 965, 2, 966, 7, 966, 2, 967, 7, 967, 2, 968, 7, 968, 2, 969, 7, 969, 2, 970, 7, 970, 2, 971, 7, 971, 2, 972, 7, 972, 2, 973, 7, 973, 2, 974, 7, 974, 2, 975, 7, 975, 2, 976, 7, 976, 2, 977, 7, 977, 2, 978, 7, 978, 2, 979, 7, 979, 2, 980, 7, 980, 2, 981, 7, 981, 1, 0, 4, 0, 1967, 8, 0, 11, 0, 12, 0, 1968, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1978, 8, 1, 11, 1, 12, 1, 1979, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1991, 8, 2, 10, 2, 12, 2, 1994, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 2005, 8, 3, 1, 3, 5, 3, 2008, 8, 3, 10, 3, 12, 3, 2011, 9, 3, 1, 3, 3, 3, 2014, 8, 3, 1, 3, 1, 3, 3, 3, 2018, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 2024, 8, 3, 1, 3, 1, 3, 3, 3, 2028, 8, 3, 3, 3, 2030, 8, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 613, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 789, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 790, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 791, 1, 792, 1, 792, 1, 792, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 793, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 794, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 795, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 796, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 797, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 798, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 1, 800, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 801, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 802, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 803, 1, 804, 1, 804, 1, 804, 1, 804, 1, 804, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 805, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 806, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 807, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 808, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 809, 1, 810, 1, 810, 1, 810, 1, 810, 1, 810, 1, 811, 1, 811, 1, 811, 1, 811, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 815, 1, 815, 1, 815, 1, 816, 1, 816, 1, 816, 1, 816, 1, 816, 1, 817, 1, 817, 1, 817, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 819, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 820, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 821, 1, 822, 1, 822, 1, 822, 1, 822, 1, 822, 1, 823, 1, 823, 1, 823, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 825, 1, 825, 1, 825, 1, 825, 1, 825, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 833, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 842, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 843, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 844, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 848, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 849, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 854, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 855, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 863, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 864, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 865, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 866, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 867, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 868, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 869, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 870, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 871, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 872, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 873, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 874, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 875, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 876, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 877, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 878, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 879, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 880, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 881, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 882, 1, 883, 1, 883, 1, 883, 1, 883, 1, 883, 1, 884, 1, 884, 1, 884, 1, 884, 1, 884, 1, 885, 1, 885, 1, 885, 1, 885, 1, 885, 1, 885, 1, 885, 1, 885, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 886, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 887, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 888, 1, 889, 1, 889, 1, 889, 1, 889, 1, 890, 1, 890, 1, 890, 1, 890, 1, 890, 1, 890, 1, 890, 1, 890, 1, 890, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 891, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 892, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 893, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 894, 1, 895, 1, 895, 1, 895, 1, 895, 1, 895, 1, 895, 1, 895, 1, 895, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 896, 1, 897, 1, 897, 1, 897, 1, 897, 1, 897, 1, 897, 1, 897, 1, 897, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 898, 1, 899, 1, 899, 1, 899, 1, 899, 1, 899, 1, 899, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 900, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 901, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 902, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 903, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 904, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 905, 1, 906, 1, 906, 1, 906, 1, 906, 1, 906, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 907, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 908, 1, 909, 1, 909, 1, 909, 1, 909, 1, 909, 1, 909, 1, 909, 1, 909, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 910, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 911, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 912, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 913, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 914, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 915, 1, 916, 1, 916, 1, 917, 1, 917, 1, 918, 1, 918, 1, 918, 1, 919, 1, 919, 1, 919, 1, 920, 1, 920, 1, 920, 1, 921, 1, 921, 1, 921, 1, 922, 1, 922, 1, 922, 1, 923, 1, 923, 1, 923, 1, 924, 1, 924, 1, 924, 1, 925, 1, 925, 1, 925, 1, 926, 1, 926, 1, 926, 1, 927, 1, 927, 1, 928, 1, 928, 1, 929, 1, 929, 1, 930, 1, 930, 1, 931, 1, 931, 1, 931, 1, 932, 1, 932, 1, 933, 1, 933, 1, 933, 1, 933, 1, 934, 1, 934, 1, 934, 1, 934, 1, 935, 1, 935, 1, 936, 1, 936, 1, 937, 1, 937, 1, 938, 1, 938, 1, 939, 1, 939, 1, 940, 1, 940, 1, 941, 1, 941, 1, 942, 1, 942, 1, 943, 1, 943, 1, 944, 1, 944, 1, 945, 1, 945, 1, 946, 1, 946, 1, 947, 1, 947, 1, 948, 1, 948, 1, 949, 1, 949, 1, 950, 1, 950, 1, 951, 1, 951, 1, 952, 1, 952, 1, 953, 1, 953, 1, 954, 1, 954, 1, 955, 1, 955, 1, 956, 1, 956, 1, 956, 1, 956, 1, 957, 4, 957, 10732, 8, 957, 11, 957, 12, 957, 10733, 1, 957, 1, 957, 1, 958, 1, 958, 1, 958, 1, 959, 1, 959, 3, 959, 10743, 8, 959, 1, 960, 4, 960, 10746, 8, 960, 11, 960, 12, 960, 10747, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 4, 961, 10755, 8, 961, 11, 961, 12, 961, 10756, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 1, 961, 4, 961, 10765, 8, 961, 11, 961, 12, 961, 10766, 3, 961, 10769, 8, 961, 1, 962, 4, 962, 10772, 8, 962, 11, 962, 12, 962, 10773, 3, 962, 10776, 8, 962, 1, 962, 1, 962, 4, 962, 10780, 8, 962, 11, 962, 12, 962, 10781, 1, 962, 4, 962, 10785, 8, 962, 11, 962, 12, 962, 10786, 1, 962, 1, 962, 1, 962, 1, 962, 4, 962, 10793, 8, 962, 11, 962, 12, 962, 10794, 3, 962, 10797, 8, 962, 1, 962, 1, 962, 4, 962, 10801, 8, 962, 11, 962, 12, 962, 10802, 1, 962, 1, 962, 1, 962, 4, 962, 10808, 8, 962, 11, 962, 12, 962, 10809, 1, 962, 1, 962, 3, 962, 10814, 8, 962, 1, 963, 1, 963, 1, 963, 1, 964, 1, 964, 1, 965, 1, 965, 1, 965, 1, 966, 1, 966, 1, 966, 1, 967, 1, 967, 1, 968, 1, 968, 4, 968, 10831, 8, 968, 11, 968, 12, 968, 10832, 1, 968, 1, 968, 1, 969, 1, 969, 1, 969, 1, 969, 3, 969, 10841, 8, 969, 1, 969, 1, 969, 1, 969, 1, 969, 1, 969, 3, 969, 10848, 8, 969, 1, 970, 1, 970, 4, 970, 10852, 8, 970, 11, 970, 12, 970, 10853, 1, 970, 1, 970, 1, 970, 3, 970, 10859, 8, 970, 1, 971, 1, 971, 1, 971, 4, 971, 10864, 8, 971, 11, 971, 12, 971, 10865, 1, 971, 3, 971, 10869, 8, 971, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 1, 972, 3, 972, 10911, 8, 972, 1, 973, 1, 973, 3, 973, 10915, 8, 973, 1, 973, 4, 973, 10918, 8, 973, 11, 973, 12, 973, 10919, 1, 974, 5, 974, 10923, 8, 974, 10, 974, 12, 974, 10926, 9, 974, 1, 974, 4, 974, 10929, 8, 974, 11, 974, 12, 974, 10930, 1, 974, 5, 974, 10934, 8, 974, 10, 974, 12, 974, 10937, 9, 974, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 1, 975, 5, 975, 10945, 8, 975, 10, 975, 12, 975, 10948, 9, 975, 1, 975, 1, 975, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 1, 976, 5, 976, 10958, 8, 976, 10, 976, 12, 976, 10961, 9, 976, 1, 976, 1, 976, 1, 977, 1, 977, 1, 977, 1, 977, 1, 977, 1, 977, 5, 977, 10971, 8, 977, 10, 977, 12, 977, 10974, 9, 977, 1, 977, 1, 977, 1, 978, 1, 978, 1, 979, 1, 979, 1, 980, 1, 980, 1, 980, 4, 980, 10985, 8, 980, 11, 980, 12, 980, 10986, 1, 980, 1, 980, 1, 981, 1, 981, 1, 981, 1, 981, 4, 1979, 1992, 10924, 10930, 0, 982, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229, 459, 230, 461, 231, 463, 232, 465, 233, 467, 234, 469, 235, 471, 236, 473, 237, 475, 238, 477, 239, 479, 240, 481, 241, 483, 242, 485, 243, 487, 244, 489, 245, 491, 246, 493, 247, 495, 248, 497, 249, 499, 250, 501, 251, 503, 252, 505, 253, 507, 254, 509, 255, 511, 256, 513, 257, 515, 258, 517, 259, 519, 260, 521, 261, 523, 262, 525, 263, 527, 264, 529, 265, 531, 266, 533, 267, 535, 268, 537, 269, 539, 270, 541, 271, 543, 272, 545, 273, 547, 274, 549, 275, 551, 276, 553, 277, 555, 278, 557, 279, 559, 280, 561, 281, 563, 282, 565, 283, 567, 284, 569, 285, 571, 286, 573, 287, 575, 288, 577, 289, 579, 290, 581, 291, 583, 292, 585, 293, 587, 294, 589, 295, 591, 296, 593, 297, 595, 298, 597, 299, 599, 300, 601, 301, 603, 302, 605, 303, 607, 304, 609, 305, 611, 306, 613, 307, 615, 308, 617, 309, 619, 310, 621, 311, 623, 312, 625, 313, 627, 314, 629, 315, 631, 316, 633, 317, 635, 318, 637, 319, 639, 320, 641, 321, 643, 322, 645, 323, 647, 324, 649, 325, 651, 326, 653, 327, 655, 328, 657, 329, 659, 330, 661, 331, 663, 332, 665, 333, 667, 334, 669, 335, 671, 336, 673, 337, 675, 338, 677, 339, 679, 340, 681, 341, 683, 342, 685, 343, 687, 344, 689, 345, 691, 346, 693, 347, 695, 348, 697, 349, 699, 350, 701, 351, 703, 352, 705, 353, 707, 354, 709, 355, 711, 356, 713, 357, 715, 358, 717, 359, 719, 360, 721, 361, 723, 362, 725, 363, 727, 364, 729, 365, 731, 366, 733, 367, 735, 368, 737, 369, 739, 370, 741, 371, 743, 372, 745, 373, 747, 374, 749, 375, 751, 376, 753, 377, 755, 378, 757, 379, 759, 380, 761, 381, 763, 382, 765, 383, 767, 384, 769, 385, 771, 386, 773, 387, 775, 388, 777, 389, 779, 390, 781, 391, 783, 392, 785, 393, 787, 394, 789, 395, 791, 396, 793, 397, 795, 398, 797, 399, 799, 400, 801, 401, 803, 402, 805, 403, 807, 404, 809, 405, 811, 406, 813, 407, 815, 408, 817, 409, 819, 410, 821, 411, 823, 412, 825, 413, 827, 414, 829, 415, 831, 416, 833, 417, 835, 418, 837, 419, 839, 420, 841, 421, 843, 422, 845, 423, 847, 424, 849, 425, 851, 426, 853, 427, 855, 428, 857, 429, 859, 430, 861, 431, 863, 432, 865, 433, 867, 434, 869, 435, 871, 436, 873, 437, 875, 438, 877, 439, 879, 440, 881, 441, 883, 442, 885, 443, 887, 444, 889, 445, 891, 446, 893, 447, 895, 448, 897, 449, 899, 450, 901, 451, 903, 452, 905, 453, 907, 454, 909, 455, 911, 456, 913, 457, 915, 458, 917, 459, 919, 460, 921, 461, 923, 462, 925, 463, 927, 464, 929, 465, 931, 466, 933, 467, 935, 468, 937, 469, 939, 470, 941, 471, 943, 472, 945, 473, 947, 474, 949, 475, 951, 476, 953, 477, 955, 478, 957, 479, 959, 480, 961, 481, 963, 482, 965, 483, 967, 484, 969, 485, 971, 486, 973, 487, 975, 488, 977, 489, 979, 490, 981, 491, 983, 492, 985, 493, 987, 494, 989, 495, 991, 496, 993, 497, 995, 498, 997, 499, 999, 500, 1001, 501, 1003, 502, 1005, 503, 1007, 504, 1009, 505, 1011, 506, 1013, 507, 1015, 508, 1017, 509, 1019, 510, 1021, 511, 1023, 512, 1025, 513, 1027, 514, 1029, 515, 1031, 516, 1033, 517, 1035, 518, 1037, 519, 1039, 520, 1041, 521, 1043, 522, 1045, 523, 1047, 524, 1049, 525, 1051, 526, 1053, 527, 1055, 528, 1057, 529, 1059, 530, 1061, 531, 1063, 532, 1065, 533, 1067, 534, 1069, 535, 1071, 536, 1073, 537, 1075, 538, 1077, 539, 1079, 540, 1081, 541, 1083, 542, 1085, 543, 1087, 544, 1089, 545, 1091, 546, 1093, 547, 1095, 548, 1097, 549, 1099, 550, 1101, 551, 1103, 552, 1105, 553, 1107, 554, 1109, 555, 1111, 556, 1113, 557, 1115, 558, 1117, 559, 1119, 560, 1121, 561, 1123, 562, 1125, 563, 1127, 564, 1129, 565, 1131, 566, 1133, 567, 1135, 568, 1137, 569, 1139, 570, 1141, 571, 1143, 572, 1145, 573, 1147, 574, 1149, 575, 1151, 576, 1153, 577, 1155, 578, 1157, 579, 1159, 580, 1161, 581, 1163, 582, 1165, 583, 1167, 584, 1169, 585, 1171, 586, 1173, 587, 1175, 588, 1177, 589, 1179, 590, 1181, 591, 1183, 592, 1185, 593, 1187, 594, 1189, 595, 1191, 596, 1193, 597, 1195, 598, 1197, 599, 1199, 600, 1201, 601, 1203, 602, 1205, 603, 1207, 604, 1209, 605, 1211, 606, 1213, 607, 1215, 608, 1217, 609, 1219, 610, 1221, 611, 1223, 612, 1225, 613, 1227, 614, 1229, 615, 1231, 616, 1233, 617, 1235, 618, 1237, 619, 1239, 620, 1241, 621, 1243, 622, 1245, 623, 1247, 624, 1249, 625, 1251, 626, 1253, 627, 1255, 628, 1257, 629, 1259, 630, 1261, 631, 1263, 632, 1265, 633, 1267, 634, 1269, 635, 1271, 636, 1273, 637, 1275, 638, 1277, 639, 1279, 640, 1281, 641, 1283, 642, 1285, 643, 1287, 644, 1289, 645, 1291, 646, 1293, 647, 1295, 648, 1297, 649, 1299, 650, 1301, 651, 1303, 652, 1305, 653, 1307, 654, 1309, 655, 1311, 656, 1313, 657, 1315, 658, 1317, 659, 1319, 660, 1321, 661, 1323, 662, 1325, 663, 1327, 664, 1329, 665, 1331, 666, 1333, 667, 1335, 668, 1337, 669, 1339, 670, 1341, 671, 1343, 672, 1345, 673, 1347, 674, 1349, 675, 1351, 676, 1353, 677, 1355, 678, 1357, 679, 1359, 680, 1361, 681, 1363, 682, 1365, 683, 1367, 684, 1369, 685, 1371, 686, 1373, 687, 1375, 688, 1377, 689, 1379, 690, 1381, 691, 1383, 692, 1385, 693, 1387, 694, 1389, 695, 1391, 696, 1393, 697, 1395, 698, 1397, 699, 1399, 700, 1401, 701, 1403, 702, 1405, 703, 1407, 704, 1409, 705, 1411, 706, 1413, 707, 1415, 708, 1417, 709, 1419, 710, 1421, 711, 1423, 712, 1425, 713, 1427, 714, 1429, 715, 1431, 716, 1433, 717, 1435, 718, 1437, 719, 1439, 720, 1441, 721, 1443, 722, 1445, 723, 1447, 724, 1449, 725, 1451, 726, 1453, 727, 1455, 728, 1457, 729, 1459, 730, 1461, 731, 1463, 732, 1465, 733, 1467, 734, 1469, 735, 1471, 736, 1473, 737, 1475, 738, 1477, 739, 1479, 740, 1481, 741, 1483, 742, 1485, 743, 1487, 744, 1489, 745, 1491, 746, 1493, 747, 1495, 748, 1497, 749, 1499, 750, 1501, 751, 1503, 752, 1505, 753, 1507, 754, 1509, 755, 1511, 756, 1513, 757, 1515, 758, 1517, 759, 1519, 760, 1521, 761, 1523, 762, 1525, 763, 1527, 764, 1529, 765, 1531, 766, 1533, 767, 1535, 768, 1537, 769, 1539, 770, 1541, 771, 1543, 772, 1545, 773, 1547, 774, 1549, 775, 1551, 776, 1553, 777, 1555, 778, 1557, 779, 1559, 780, 1561, 781, 1563, 782, 1565, 783, 1567, 784, 1569, 785, 1571, 786, 1573, 787, 1575, 788, 1577, 789, 1579, 790, 1581, 791, 1583, 792, 1585, 793, 1587, 794, 1589, 795, 1591, 796, 1593, 797, 1595, 798, 1597, 799, 1599, 800, 1601, 801, 1603, 802, 1605, 803, 1607, 804, 1609, 805, 1611, 806, 1613, 807, 1615, 808, 1617, 809, 1619, 810, 1621, 811, 1623, 812, 1625, 813, 1627, 814, 1629, 815, 1631, 816, 1633, 817, 1635, 818, 1637, 819, 1639, 820, 1641, 821, 1643, 822, 1645, 823, 1647, 824, 1649, 825, 1651, 826, 1653, 827, 1655, 828, 1657, 829, 1659, 830, 1661, 831, 1663, 832, 1665, 833, 1667, 834, 1669, 835, 1671, 836, 1673, 837, 1675, 838, 1677, 839, 1679, 840, 1681, 841, 1683, 842, 1685, 843, 1687, 844, 1689, 845, 1691, 846, 1693, 847, 1695, 848, 1697, 849, 1699, 850, 1701, 851, 1703, 852, 1705, 853, 1707, 854, 1709, 855, 1711, 856, 1713, 857, 1715, 858, 1717, 859, 1719, 860, 1721, 861, 1723, 862, 1725, 863, 1727, 864, 1729, 865, 1731, 866, 1733, 867, 1735, 868, 1737, 869, 1739, 870, 1741, 871, 1743, 872, 1745, 873, 1747, 874, 1749, 875, 1751, 876, 1753, 877, 1755, 878, 1757, 879, 1759, 880, 1761, 881, 1763, 882, 1765, 883, 1767, 884, 1769, 885, 1771, 886, 1773, 887, 1775, 888, 1777, 889, 1779, 890, 1781, 891, 1783, 892, 1785, 893, 1787, 894, 1789, 895, 1791, 896, 1793, 897, 1795, 898, 1797, 899, 1799, 900, 1801, 901, 1803, 902, 1805, 903, 1807, 904, 1809, 905, 1811, 906, 1813, 907, 1815, 908, 1817, 909, 1819, 910, 1821, 911, 1823, 912, 1825, 913, 1827, 914, 1829, 915, 1831, 916, 1833, 917, 1835, 918, 1837, 919, 1839, 920, 1841, 921, 1843, 922, 1845, 923, 1847, 924, 1849, 925, 1851, 926, 1853, 927, 1855, 928, 1857, 929, 1859, 930, 1861, 931, 1863, 932, 1865, 933, 1867, 934, 1869, 935, 1871, 936, 1873, 937, 1875, 938, 1877, 939, 1879, 940, 1881, 941, 1883, 942, 1885, 943, 1887, 944, 1889, 945, 1891, 946, 1893, 947, 1895, 948, 1897, 949, 1899, 950, 1901, 951, 1903, 952, 1905, 953, 1907, 954, 1909, 955, 1911, 956, 1913, 957, 1915, 958, 1917, 959, 1919, 960, 1921, 961, 1923, 962, 1925, 963, 1927, 964, 1929, 965, 1931, 966, 1933, 967, 1935, 968, 1937, 969, 1939, 970, 1941, 971, 1943, 972, 1945, 0, 1947, 0, 1949, 0, 1951, 0, 1953, 0, 1955, 0, 1957, 0, 1959, 0, 1961, 0, 1963, 973, 1, 0, 13, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 10, 10, 13, 13, 4, 0, 71, 71, 75, 75, 77, 77, 84, 84, 1, 0, 96, 96, 5, 0, 36, 36, 46, 46, 48, 57, 65, 90, 95, 95, 4, 0, 36, 36, 48, 57, 65, 90, 95, 95, 3, 0, 36, 36, 65, 90, 95, 95, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 2, 0, 92, 92, 96, 96, 2, 0, 48, 57, 65, 70, 1, 0, 48, 57, 1, 0, 48, 49, 11078, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 0, 1729, 1, 0, 0, 0, 0, 1731, 1, 0, 0, 0, 0, 1733, 1, 0, 0, 0, 0, 1735, 1, 0, 0, 0, 0, 1737, 1, 0, 0, 0, 0, 1739, 1, 0, 0, 0, 0, 1741, 1, 0, 0, 0, 0, 1743, 1, 0, 0, 0, 0, 1745, 1, 0, 0, 0, 0, 1747, 1, 0, 0, 0, 0, 1749, 1, 0, 0, 0, 0, 1751, 1, 0, 0, 0, 0, 1753, 1, 0, 0, 0, 0, 1755, 1, 0, 0, 0, 0, 1757, 1, 0, 0, 0, 0, 1759, 1, 0, 0, 0, 0, 1761, 1, 0, 0, 0, 0, 1763, 1, 0, 0, 0, 0, 1765, 1, 0, 0, 0, 0, 1767, 1, 0, 0, 0, 0, 1769, 1, 0, 0, 0, 0, 1771, 1, 0, 0, 0, 0, 1773, 1, 0, 0, 0, 0, 1775, 1, 0, 0, 0, 0, 1777, 1, 0, 0, 0, 0, 1779, 1, 0, 0, 0, 0, 1781, 1, 0, 0, 0, 0, 1783, 1, 0, 0, 0, 0, 1785, 1, 0, 0, 0, 0, 1787, 1, 0, 0, 0, 0, 1789, 1, 0, 0, 0, 0, 1791, 1, 0, 0, 0, 0, 1793, 1, 0, 0, 0, 0, 1795, 1, 0, 0, 0, 0, 1797, 1, 0, 0, 0, 0, 1799, 1, 0, 0, 0, 0, 1801, 1, 0, 0, 0, 0, 1803, 1, 0, 0, 0, 0, 1805, 1, 0, 0, 0, 0, 1807, 1, 0, 0, 0, 0, 1809, 1, 0, 0, 0, 0, 1811, 1, 0, 0, 0, 0, 1813, 1, 0, 0, 0, 0, 1815, 1, 0, 0, 0, 0, 1817, 1, 0, 0, 0, 0, 1819, 1, 0, 0, 0, 0, 1821, 1, 0, 0, 0, 0, 1823, 1, 0, 0, 0, 0, 1825, 1, 0, 0, 0, 0, 1827, 1, 0, 0, 0, 0, 1829, 1, 0, 0, 0, 0, 1831, 1, 0, 0, 0, 0, 1833, 1, 0, 0, 0, 0, 1835, 1, 0, 0, 0, 0, 1837, 1, 0, 0, 0, 0, 1839, 1, 0, 0, 0, 0, 1841, 1, 0, 0, 0, 0, 1843, 1, 0, 0, 0, 0, 1845, 1, 0, 0, 0, 0, 1847, 1, 0, 0, 0, 0, 1849, 1, 0, 0, 0, 0, 1851, 1, 0, 0, 0, 0, 1853, 1, 0, 0, 0, 0, 1855, 1, 0, 0, 0, 0, 1857, 1, 0, 0, 0, 0, 1859, 1, 0, 0, 0, 0, 1861, 1, 0, 0, 0, 0, 1863, 1, 0, 0, 0, 0, 1865, 1, 0, 0, 0, 0, 1867, 1, 0, 0, 0, 0, 1869, 1, 0, 0, 0, 0, 1871, 1, 0, 0, 0, 0, 1873, 1, 0, 0, 0, 0, 1875, 1, 0, 0, 0, 0, 1877, 1, 0, 0, 0, 0, 1879, 1, 0, 0, 0, 0, 1881, 1, 0, 0, 0, 0, 1883, 1, 0, 0, 0, 0, 1885, 1, 0, 0, 0, 0, 1887, 1, 0, 0, 0, 0, 1889, 1, 0, 0, 0, 0, 1891, 1, 0, 0, 0, 0, 1893, 1, 0, 0, 0, 0, 1895, 1, 0, 0, 0, 0, 1897, 1, 0, 0, 0, 0, 1899, 1, 0, 0, 0, 0, 1901, 1, 0, 0, 0, 0, 1903, 1, 0, 0, 0, 0, 1905, 1, 0, 0, 0, 0, 1907, 1, 0, 0, 0, 0, 1909, 1, 0, 0, 0, 0, 1911, 1, 0, 0, 0, 0, 1913, 1, 0, 0, 0, 0, 1915, 1, 0, 0, 0, 0, 1917, 1, 0, 0, 0, 0, 1919, 1, 0, 0, 0, 0, 1921, 1, 0, 0, 0, 0, 1923, 1, 0, 0, 0, 0, 1925, 1, 0, 0, 0, 0, 1927, 1, 0, 0, 0, 0, 1929, 1, 0, 0, 0, 0, 1931, 1, 0, 0, 0, 0, 1933, 1, 0, 0, 0, 0, 1935, 1, 0, 0, 0, 0, 1937, 1, 0, 0, 0, 0, 1939, 1, 0, 0, 0, 0, 1941, 1, 0, 0, 0, 0, 1943, 1, 0, 0, 0, 0, 1963, 1, 0, 0, 0, 1, 1966, 1, 0, 0, 0, 3, 1972, 1, 0, 0, 0, 5, 1986, 1, 0, 0, 0, 7, 2029, 1, 0, 0, 0, 9, 2033, 1, 0, 0, 0, 11, 2037, 1, 0, 0, 0, 13, 2041, 1, 0, 0, 0, 15, 2047, 1, 0, 0, 0, 17, 2055, 1, 0, 0, 0, 19, 2059, 1, 0, 0, 0, 21, 2062, 1, 0, 0, 0, 23, 2066, 1, 0, 0, 0, 25, 2073, 1, 0, 0, 0, 27, 2081, 1, 0, 0, 0, 29, 2086, 1, 0, 0, 0, 31, 2089, 1, 0, 0, 0, 33, 2094, 1, 0, 0, 0, 35, 2102, 1, 0, 0, 0, 37, 2107, 1, 0, 0, 0, 39, 2112, 1, 0, 0, 0, 41, 2119, 1, 0, 0, 0, 43, 2129, 1, 0, 0, 0, 45, 2135, 1, 0, 0, 0, 47, 2143, 1, 0, 0, 0, 49, 2150, 1, 0, 0, 0, 51, 2160, 1, 0, 0, 0, 53, 2171, 1, 0, 0, 0, 55, 2180, 1, 0, 0, 0, 57, 2188, 1, 0, 0, 0, 59, 2195, 1, 0, 0, 0, 61, 2201, 1, 0, 0, 0, 63, 2214, 1, 0, 0, 0, 65, 2221, 1, 0, 0, 0, 67, 2230, 1, 0, 0, 0, 69, 2240, 1, 0, 0, 0, 71, 2248, 1, 0, 0, 0, 73, 2256, 1, 0, 0, 0, 75, 2264, 1, 0, 0, 0, 77, 2271, 1, 0, 0, 0, 79, 2276, 1, 0, 0, 0, 81, 2285, 1, 0, 0, 0, 83, 2299, 1, 0, 0, 0, 85, 2308, 1, 0, 0, 0, 87, 2320, 1, 0, 0, 0, 89, 2325, 1, 0, 0, 0, 91, 2330, 1, 0, 0, 0, 93, 2335, 1, 0, 0, 0, 95, 2342, 1, 0, 0, 0, 97, 2351, 1, 0, 0, 0, 99, 2359, 1, 0, 0, 0, 101, 2366, 1, 0, 0, 0, 103, 2371, 1, 0, 0, 0, 105, 2379, 1, 0, 0, 0, 107, 2385, 1, 0, 0, 0, 109, 2391, 1, 0, 0, 0, 111, 2395, 1, 0, 0, 0, 113, 2401, 1, 0, 0, 0, 115, 2409, 1, 0, 0, 0, 117, 2414, 1, 0, 0, 0, 119, 2423, 1, 0, 0, 0, 121, 2429, 1, 0, 0, 0, 123, 2435, 1, 0, 0, 0, 125, 2442, 1, 0, 0, 0, 127, 2456, 1, 0, 0, 0, 129, 2459, 1, 0, 0, 0, 131, 2466, 1, 0, 0, 0, 133, 2469, 1, 0, 0, 0, 135, 2475, 1, 0, 0, 0, 137, 2482, 1, 0, 0, 0, 139, 2488, 1, 0, 0, 0, 141, 2494, 1, 0, 0, 0, 143, 2501, 1, 0, 0, 0, 145, 2510, 1, 0, 0, 0, 147, 2515, 1, 0, 0, 0, 149, 2518, 1, 0, 0, 0, 151, 2526, 1, 0, 0, 0, 153, 2531, 1, 0, 0, 0, 155, 2535, 1, 0, 0, 0, 157, 2540, 1, 0, 0, 0, 159, 2545, 1, 0, 0, 0, 161, 2553, 1, 0, 0, 0, 163, 2559, 1, 0, 0, 0, 165, 2564, 1, 0, 0, 0, 167, 2569, 1, 0, 0, 0, 169, 2575, 1, 0, 0, 0, 171, 2582, 1, 0, 0, 0, 173, 2588, 1, 0, 0, 0, 175, 2593, 1, 0, 0, 0, 177, 2598, 1, 0, 0, 0, 179, 2603, 1, 0, 0, 0, 181, 2616, 1, 0, 0, 0, 183, 2628, 1, 0, 0, 0, 185, 2658, 1, 0, 0, 0, 187, 2664, 1, 0, 0, 0, 189, 2673, 1, 0, 0, 0, 191, 2682, 1, 0, 0, 0, 193, 2690, 1, 0, 0, 0, 195, 2694, 1, 0, 0, 0, 197, 2713, 1, 0, 0, 0, 199, 2718, 1, 0, 0, 0, 201, 2721, 1, 0, 0, 0, 203, 2730, 1, 0, 0, 0, 205, 2737, 1, 0, 0, 0, 207, 2748, 1, 0, 0, 0, 209, 2751, 1, 0, 0, 0, 211, 2757, 1, 0, 0, 0, 213, 2761, 1, 0, 0, 0, 215, 2767, 1, 0, 0, 0, 217, 2775, 1, 0, 0, 0, 219, 2785, 1, 0, 0, 0, 221, 2793, 1, 0, 0, 0, 223, 2803, 1, 0, 0, 0, 225, 2809, 1, 0, 0, 0, 227, 2815, 1, 0, 0, 0, 229, 2820, 1, 0, 0, 0, 231, 2826, 1, 0, 0, 0, 233, 2837, 1, 0, 0, 0, 235, 2844, 1, 0, 0, 0, 237, 2852, 1, 0, 0, 0, 239, 2859, 1, 0, 0, 0, 241, 2866, 1, 0, 0, 0, 243, 2874, 1, 0, 0, 0, 245, 2882, 1, 0, 0, 0, 247, 2891, 1, 0, 0, 0, 249, 2898, 1, 0, 0, 0, 251, 2905, 1, 0, 0, 0, 253, 2911, 1, 0, 0, 0, 255, 2917, 1, 0, 0, 0, 257, 2924, 1, 0, 0, 0, 259, 2932, 1, 0, 0, 0, 261, 2939, 1, 0, 0, 0, 263, 2943, 1, 0, 0, 0, 265, 2953, 1, 0, 0, 0, 267, 2958, 1, 0, 0, 0, 269, 2966, 1, 0, 0, 0, 271, 2970, 1, 0, 0, 0, 273, 2983, 1, 0, 0, 0, 275, 2992, 1, 0, 0, 0, 277, 3003, 1, 0, 0, 0, 279, 3018, 1, 0, 0, 0, 281, 3038, 1, 0, 0, 0, 283, 3055, 1, 0, 0, 0, 285, 3059, 1, 0, 0, 0, 287, 3068, 1, 0, 0, 0, 289, 3082, 1, 0, 0, 0, 291, 3088, 1, 0, 0, 0, 293, 3099, 1, 0, 0, 0, 295, 3104, 1, 0, 0, 0, 297, 3107, 1, 0, 0, 0, 299, 3116, 1, 0, 0, 0, 301, 3124, 1, 0, 0, 0, 303, 3129, 1, 0, 0, 0, 305, 3134, 1, 0, 0, 0, 307, 3140, 1, 0, 0, 0, 309, 3147, 1, 0, 0, 0, 311, 3154, 1, 0, 0, 0, 313, 3163, 1, 0, 0, 0, 315, 3170, 1, 0, 0, 0, 317, 3176, 1, 0, 0, 0, 319, 3180, 1, 0, 0, 0, 321, 3186, 1, 0, 0, 0, 323, 3193, 1, 0, 0, 0, 325, 3198, 1, 0, 0, 0, 327, 3204, 1, 0, 0, 0, 329, 3210, 1, 0, 0, 0, 331, 3215, 1, 0, 0, 0, 333, 3221, 1, 0, 0, 0, 335, 3225, 1, 0, 0, 0, 337, 3234, 1, 0, 0, 0, 339, 3242, 1, 0, 0, 0, 341, 3251, 1, 0, 0, 0, 343, 3261, 1, 0, 0, 0, 345, 3265, 1, 0, 0, 0, 347, 3273, 1, 0, 0, 0, 349, 3280, 1, 0, 0, 0, 351, 3285, 1, 0, 0, 0, 353, 3292, 1, 0, 0, 0, 355, 3298, 1, 0, 0, 0, 357, 3306, 1, 0, 0, 0, 359, 3314, 1, 0, 0, 0, 361, 3319, 1, 0, 0, 0, 363, 3324, 1, 0, 0, 0, 365, 3334, 1, 0, 0, 0, 367, 3343, 1, 0, 0, 0, 369, 3348, 1, 0, 0, 0, 371, 3353, 1, 0, 0, 0, 373, 3361, 1, 0, 0, 0, 375, 3368, 1, 0, 0, 0, 377, 3378, 1, 0, 0, 0, 379, 3387, 1, 0, 0, 0, 381, 3392, 1, 0, 0, 0, 383, 3403, 1, 0, 0, 0, 385, 3412, 1, 0, 0, 0, 387, 3421, 1, 0, 0, 0, 389, 3426, 1, 0, 0, 0, 391, 3437, 1, 0, 0, 0, 393, 3446, 1, 0, 0, 0, 395, 3451, 1, 0, 0, 0, 397, 3462, 1, 0, 0, 0, 399, 3471, 1, 0, 0, 0, 401, 3482, 1, 0, 0, 0, 403, 3493, 1, 0, 0, 0, 405, 3505, 1, 0, 0, 0, 407, 3517, 1, 0, 0, 0, 409, 3531, 1, 0, 0, 0, 411, 3550, 1, 0, 0, 0, 413, 3569, 1, 0, 0, 0, 415, 3586, 1, 0, 0, 0, 417, 3602, 1, 0, 0, 0, 419, 3606, 1, 0, 0, 0, 421, 3614, 1, 0, 0, 0, 423, 3621, 1, 0, 0, 0, 425, 3629, 1, 0, 0, 0, 427, 3635, 1, 0, 0, 0, 429, 3648, 1, 0, 0, 0, 431, 3652, 1, 0, 0, 0, 433, 3656, 1, 0, 0, 0, 435, 3660, 1, 0, 0, 0, 437, 3667, 1, 0, 0, 0, 439, 3678, 1, 0, 0, 0, 441, 3690, 1, 0, 0, 0, 443, 3694, 1, 0, 0, 0, 445, 3702, 1, 0, 0, 0, 447, 3711, 1, 0, 0, 0, 449, 3720, 1, 0, 0, 0, 451, 3733, 1, 0, 0, 0, 453, 3746, 1, 0, 0, 0, 455, 3764, 1, 0, 0, 0, 457, 3774, 1, 0, 0, 0, 459, 3782, 1, 0, 0, 0, 461, 3790, 1, 0, 0, 0, 463, 3799, 1, 0, 0, 0, 465, 3808, 1, 0, 0, 0, 467, 3816, 1, 0, 0, 0, 469, 3831, 1, 0, 0, 0, 471, 3835, 1, 0, 0, 0, 473, 3844, 1, 0, 0, 0, 475, 3851, 1, 0, 0, 0, 477, 3861, 1, 0, 0, 0, 479, 3869, 1, 0, 0, 0, 481, 3874, 1, 0, 0, 0, 483, 3883, 1, 0, 0, 0, 485, 3892, 1, 0, 0, 0, 487, 3906, 1, 0, 0, 0, 489, 3914, 1, 0, 0, 0, 491, 3921, 1, 0, 0, 0, 493, 3927, 1, 0, 0, 0, 495, 3937, 1, 0, 0, 0, 497, 3947, 1, 0, 0, 0, 499, 3951, 1, 0, 0, 0, 501, 3954, 1, 0, 0, 0, 503, 3962, 1, 0, 0, 0, 505, 3973, 1, 0, 0, 0, 507, 3989, 1, 0, 0, 0, 509, 4004, 1, 0, 0, 0, 511, 4019, 1, 0, 0, 0, 513, 4025, 1, 0, 0, 0, 515, 4032, 1, 0, 0, 0, 517, 4036, 1, 0, 0, 0, 519, 4042, 1, 0, 0, 0, 521, 4047, 1, 0, 0, 0, 523, 4055, 1, 0, 0, 0, 525, 4061, 1, 0, 0, 0, 527, 4067, 1, 0, 0, 0, 529, 4076, 1, 0, 0, 0, 531, 4082, 1, 0, 0, 0, 533, 4090, 1, 0, 0, 0, 535, 4098, 1, 0, 0, 0, 537, 4107, 1, 0, 0, 0, 539, 4114, 1, 0, 0, 0, 541, 4121, 1, 0, 0, 0, 543, 4127, 1, 0, 0, 0, 545, 4136, 1, 0, 0, 0, 547, 4141, 1, 0, 0, 0, 549, 4149, 1, 0, 0, 0, 551, 4163, 1, 0, 0, 0, 553, 4171, 1, 0, 0, 0, 555, 4178, 1, 0, 0, 0, 557, 4186, 1, 0, 0, 0, 559, 4197, 1, 0, 0, 0, 561, 4208, 1, 0, 0, 0, 563, 4220, 1, 0, 0, 0, 565, 4231, 1, 0, 0, 0, 567, 4242, 1, 0, 0, 0, 569, 4253, 1, 0, 0, 0, 571, 4262, 1, 0, 0, 0, 573, 4270, 1, 0, 0, 0, 575, 4283, 1, 0, 0, 0, 577, 4288, 1, 0, 0, 0, 579, 4292, 1, 0, 0, 0, 581, 4297, 1, 0, 0, 0, 583, 4306, 1, 0, 0, 0, 585, 4317, 1, 0, 0, 0, 587, 4330, 1, 0, 0, 0, 589, 4338, 1, 0, 0, 0, 591, 4354, 1, 0, 0, 0, 593, 4367, 1, 0, 0, 0, 595, 4377, 1, 0, 0, 0, 597, 4385, 1, 0, 0, 0, 599, 4393, 1, 0, 0, 0, 601, 4398, 1, 0, 0, 0, 603, 4401, 1, 0, 0, 0, 605, 4410, 1, 0, 0, 0, 607, 4420, 1, 0, 0, 0, 609, 4428, 1, 0, 0, 0, 611, 4435, 1, 0, 0, 0, 613, 4446, 1, 0, 0, 0, 615, 4450, 1, 0, 0, 0, 617, 4455, 1, 0, 0, 0, 619, 4462, 1, 0, 0, 0, 621, 4470, 1, 0, 0, 0, 623, 4476, 1, 0, 0, 0, 625, 4483, 1, 0, 0, 0, 627, 4490, 1, 0, 0, 0, 629, 4495, 1, 0, 0, 0, 631, 4501, 1, 0, 0, 0, 633, 4508, 1, 0, 0, 0, 635, 4514, 1, 0, 0, 0, 637, 4523, 1, 0, 0, 0, 639, 4533, 1, 0, 0, 0, 641, 4540, 1, 0, 0, 0, 643, 4547, 1, 0, 0, 0, 645, 4556, 1, 0, 0, 0, 647, 4568, 1, 0, 0, 0, 649, 4573, 1, 0, 0, 0, 651, 4580, 1, 0, 0, 0, 653, 4587, 1, 0, 0, 0, 655, 4603, 1, 0, 0, 0, 657, 4610, 1, 0, 0, 0, 659, 4616, 1, 0, 0, 0, 661, 4622, 1, 0, 0, 0, 663, 4628, 1, 0, 0, 0, 665, 4636, 1, 0, 0, 0, 667, 4642, 1, 0, 0, 0, 669, 4647, 1, 0, 0, 0, 671, 4656, 1, 0, 0, 0, 673, 4664, 1, 0, 0, 0, 675, 4671, 1, 0, 0, 0, 677, 4678, 1, 0, 0, 0, 679, 4696, 1, 0, 0, 0, 681, 4704, 1, 0, 0, 0, 683, 4709, 1, 0, 0, 0, 685, 4714, 1, 0, 0, 0, 687, 4719, 1, 0, 0, 0, 689, 4725, 1, 0, 0, 0, 691, 4736, 1, 0, 0, 0, 693, 4754, 1, 0, 0, 0, 695, 4761, 1, 0, 0, 0, 697, 4769, 1, 0, 0, 0, 699, 4782, 1, 0, 0, 0, 701, 4790, 1, 0, 0, 0, 703, 4804, 1, 0, 0, 0, 705, 4812, 1, 0, 0, 0, 707, 4821, 1, 0, 0, 0, 709, 4829, 1, 0, 0, 0, 711, 4832, 1, 0, 0, 0, 713, 4842, 1, 0, 0, 0, 715, 4846, 1, 0, 0, 0, 717, 4856, 1, 0, 0, 0, 719, 4863, 1, 0, 0, 0, 721, 4868, 1, 0, 0, 0, 723, 4883, 1, 0, 0, 0, 725, 4892, 1, 0, 0, 0, 727, 4897, 1, 0, 0, 0, 729, 4904, 1, 0, 0, 0, 731, 4909, 1, 0, 0, 0, 733, 4915, 1, 0, 0, 0, 735, 4920, 1, 0, 0, 0, 737, 4926, 1, 0, 0, 0, 739, 4934, 1, 0, 0, 0, 741, 4939, 1, 0, 0, 0, 743, 4946, 1, 0, 0, 0, 745, 4967, 1, 0, 0, 0, 747, 4988, 1, 0, 0, 0, 749, 5001, 1, 0, 0, 0, 751, 5025, 1, 0, 0, 0, 753, 5037, 1, 0, 0, 0, 755, 5053, 1, 0, 0, 0, 757, 5068, 1, 0, 0, 0, 759, 5084, 1, 0, 0, 0, 761, 5096, 1, 0, 0, 0, 763, 5115, 1, 0, 0, 0, 765, 5126, 1, 0, 0, 0, 767, 5140, 1, 0, 0, 0, 769, 5158, 1, 0, 0, 0, 771, 5174, 1, 0, 0, 0, 773, 5192, 1, 0, 0, 0, 775, 5207, 1, 0, 0, 0, 777, 5226, 1, 0, 0, 0, 779, 5241, 1, 0, 0, 0, 781, 5260, 1, 0, 0, 0, 783, 5272, 1, 0, 0, 0, 785, 5297, 1, 0, 0, 0, 787, 5318, 1, 0, 0, 0, 789, 5327, 1, 0, 0, 0, 791, 5336, 1, 0, 0, 0, 793, 5357, 1, 0, 0, 0, 795, 5378, 1, 0, 0, 0, 797, 5385, 1, 0, 0, 0, 799, 5391, 1, 0, 0, 0, 801, 5395, 1, 0, 0, 0, 803, 5403, 1, 0, 0, 0, 805, 5412, 1, 0, 0, 0, 807, 5417, 1, 0, 0, 0, 809, 5424, 1, 0, 0, 0, 811, 5430, 1, 0, 0, 0, 813, 5436, 1, 0, 0, 0, 815, 5441, 1, 0, 0, 0, 817, 5447, 1, 0, 0, 0, 819, 5453, 1, 0, 0, 0, 821, 5459, 1, 0, 0, 0, 823, 5464, 1, 0, 0, 0, 825, 5467, 1, 0, 0, 0, 827, 5477, 1, 0, 0, 0, 829, 5482, 1, 0, 0, 0, 831, 5490, 1, 0, 0, 0, 833, 5497, 1, 0, 0, 0, 835, 5500, 1, 0, 0, 0, 837, 5513, 1, 0, 0, 0, 839, 5517, 1, 0, 0, 0, 841, 5524, 1, 0, 0, 0, 843, 5529, 1, 0, 0, 0, 845, 5534, 1, 0, 0, 0, 847, 5550, 1, 0, 0, 0, 849, 5558, 1, 0, 0, 0, 851, 5564, 1, 0, 0, 0, 853, 5574, 1, 0, 0, 0, 855, 5579, 1, 0, 0, 0, 857, 5586, 1, 0, 0, 0, 859, 5594, 1, 0, 0, 0, 861, 5607, 1, 0, 0, 0, 863, 5618, 1, 0, 0, 0, 865, 5627, 1, 0, 0, 0, 867, 5633, 1, 0, 0, 0, 869, 5640, 1, 0, 0, 0, 871, 5651, 1, 0, 0, 0, 873, 5659, 1, 0, 0, 0, 875, 5664, 1, 0, 0, 0, 877, 5673, 1, 0, 0, 0, 879, 5681, 1, 0, 0, 0, 881, 5690, 1, 0, 0, 0, 883, 5695, 1, 0, 0, 0, 885, 5707, 1, 0, 0, 0, 887, 5715, 1, 0, 0, 0, 889, 5724, 1, 0, 0, 0, 891, 5730, 1, 0, 0, 0, 893, 5736, 1, 0, 0, 0, 895, 5742, 1, 0, 0, 0, 897, 5750, 1, 0, 0, 0, 899, 5758, 1, 0, 0, 0, 901, 5775, 1, 0, 0, 0, 903, 5785, 1, 0, 0, 0, 905, 5791, 1, 0, 0, 0, 907, 5806, 1, 0, 0, 0, 909, 5820, 1, 0, 0, 0, 911, 5829, 1, 0, 0, 0, 913, 5836, 1, 0, 0, 0, 915, 5847, 1, 0, 0, 0, 917, 5854, 1, 0, 0, 0, 919, 5870, 1, 0, 0, 0, 921, 5889, 1, 0, 0, 0, 923, 5909, 1, 0, 0, 0, 925, 5932, 1, 0, 0, 0, 927, 5953, 1, 0, 0, 0, 929, 5977, 1, 0, 0, 0, 931, 6005, 1, 0, 0, 0, 933, 6017, 1, 0, 0, 0, 935, 6023, 1, 0, 0, 0, 937, 6030, 1, 0, 0, 0, 939, 6038, 1, 0, 0, 0, 941, 6047, 1, 0, 0, 0, 943, 6054, 1, 0, 0, 0, 945, 6061, 1, 0, 0, 0, 947, 6065, 1, 0, 0, 0, 949, 6070, 1, 0, 0, 0, 951, 6081, 1, 0, 0, 0, 953, 6091, 1, 0, 0, 0, 955, 6100, 1, 0, 0, 0, 957, 6109, 1, 0, 0, 0, 959, 6116, 1, 0, 0, 0, 961, 6124, 1, 0, 0, 0, 963, 6130, 1, 0, 0, 0, 965, 6137, 1, 0, 0, 0, 967, 6144, 1, 0, 0, 0, 969, 6151, 1, 0, 0, 0, 971, 6157, 1, 0, 0, 0, 973, 6162, 1, 0, 0, 0, 975, 6171, 1, 0, 0, 0, 977, 6178, 1, 0, 0, 0, 979, 6183, 1, 0, 0, 0, 981, 6190, 1, 0, 0, 0, 983, 6197, 1, 0, 0, 0, 985, 6204, 1, 0, 0, 0, 987, 6220, 1, 0, 0, 0, 989, 6239, 1, 0, 0, 0, 991, 6256, 1, 0, 0, 0, 993, 6274, 1, 0, 0, 0, 995, 6284, 1, 0, 0, 0, 997, 6297, 1, 0, 0, 0, 999, 6308, 1, 0, 0, 0, 1001, 6314, 1, 0, 0, 0, 1003, 6321, 1, 0, 0, 0, 1005, 6339, 1, 0, 0, 0, 1007, 6356, 1, 0, 0, 0, 1009, 6375, 1, 0, 0, 0, 1011, 6382, 1, 0, 0, 0, 1013, 6387, 1, 0, 0, 0, 1015, 6395, 1, 0, 0, 0, 1017, 6402, 1, 0, 0, 0, 1019, 6410, 1, 0, 0, 0, 1021, 6423, 1, 0, 0, 0, 1023, 6437, 1, 0, 0, 0, 1025, 6445, 1, 0, 0, 0, 1027, 6451, 1, 0, 0, 0, 1029, 6460, 1, 0, 0, 0, 1031, 6471, 1, 0, 0, 0, 1033, 6481, 1, 0, 0, 0, 1035, 6491, 1, 0, 0, 0, 1037, 6496, 1, 0, 0, 0, 1039, 6508, 1, 0, 0, 0, 1041, 6520, 1, 0, 0, 0, 1043, 6529, 1, 0, 0, 0, 1045, 6538, 1, 0, 0, 0, 1047, 6548, 1, 0, 0, 0, 1049, 6557, 1, 0, 0, 0, 1051, 6574, 1, 0, 0, 0, 1053, 6584, 1, 0, 0, 0, 1055, 6592, 1, 0, 0, 0, 1057, 6598, 1, 0, 0, 0, 1059, 6606, 1, 0, 0, 0, 1061, 6611, 1, 0, 0, 0, 1063, 6619, 1, 0, 0, 0, 1065, 6634, 1, 0, 0, 0, 1067, 6645, 1, 0, 0, 0, 1069, 6651, 1, 0, 0, 0, 1071, 6661, 1, 0, 0, 0, 1073, 6666, 1, 0, 0, 0, 1075, 6671, 1, 0, 0, 0, 1077, 6680, 1, 0, 0, 0, 1079, 6688, 1, 0, 0, 0, 1081, 6693, 1, 0, 0, 0, 1083, 6701, 1, 0, 0, 0, 1085, 6706, 1, 0, 0, 0, 1087, 6709, 1, 0, 0, 0, 1089, 6713, 1, 0, 0, 0, 1091, 6717, 1, 0, 0, 0, 1093, 6721, 1, 0, 0, 0, 1095, 6725, 1, 0, 0, 0, 1097, 6729, 1, 0, 0, 0, 1099, 6738, 1, 0, 0, 0, 1101, 6746, 1, 0, 0, 0, 1103, 6752, 1, 0, 0, 0, 1105, 6756, 1, 0, 0, 0, 1107, 6761, 1, 0, 0, 0, 1109, 6768, 1, 0, 0, 0, 1111, 6773, 1, 0, 0, 0, 1113, 6780, 1, 0, 0, 0, 1115, 6792, 1, 0, 0, 0, 1117, 6799, 1, 0, 0, 0, 1119, 6807, 1, 0, 0, 0, 1121, 6815, 1, 0, 0, 0, 1123, 6820, 1, 0, 0, 0, 1125, 6828, 1, 0, 0, 0, 1127, 6835, 1, 0, 0, 0, 1129, 6844, 1, 0, 0, 0, 1131, 6850, 1, 0, 0, 0, 1133, 6861, 1, 0, 0, 0, 1135, 6870, 1, 0, 0, 0, 1137, 6876, 1, 0, 0, 0, 1139, 6881, 1, 0, 0, 0, 1141, 6888, 1, 0, 0, 0, 1143, 6895, 1, 0, 0, 0, 1145, 6902, 1, 0, 0, 0, 1147, 6909, 1, 0, 0, 0, 1149, 6915, 1, 0, 0, 0, 1151, 6921, 1, 0, 0, 0, 1153, 6927, 1, 0, 0, 0, 1155, 6933, 1, 0, 0, 0, 1157, 6938, 1, 0, 0, 0, 1159, 6946, 1, 0, 0, 0, 1161, 6952, 1, 0, 0, 0, 1163, 6959, 1, 0, 0, 0, 1165, 6963, 1, 0, 0, 0, 1167, 6971, 1, 0, 0, 0, 1169, 6977, 1, 0, 0, 0, 1171, 6984, 1, 0, 0, 0, 1173, 6988, 1, 0, 0, 0, 1175, 6996, 1, 0, 0, 0, 1177, 7002, 1, 0, 0, 0, 1179, 7008, 1, 0, 0, 0, 1181, 7015, 1, 0, 0, 0, 1183, 7022, 1, 0, 0, 0, 1185, 7029, 1, 0, 0, 0, 1187, 7036, 1, 0, 0, 0, 1189, 7042, 1, 0, 0, 0, 1191, 7051, 1, 0, 0, 0, 1193, 7056, 1, 0, 0, 0, 1195, 7061, 1, 0, 0, 0, 1197, 7068, 1, 0, 0, 0, 1199, 7073, 1, 0, 0, 0, 1201, 7078, 1, 0, 0, 0, 1203, 7084, 1, 0, 0, 0, 1205, 7092, 1, 0, 0, 0, 1207, 7098, 1, 0, 0, 0, 1209, 7103, 1, 0, 0, 0, 1211, 7111, 1, 0, 0, 0, 1213, 7119, 1, 0, 0, 0, 1215, 7127, 1, 0, 0, 0, 1217, 7137, 1, 0, 0, 0, 1219, 7141, 1, 0, 0, 0, 1221, 7151, 1, 0, 0, 0, 1223, 7158, 1, 0, 0, 0, 1225, 7165, 1, 0, 0, 0, 1227, 7176, 1, 0, 0, 0, 1229, 7183, 1, 0, 0, 0, 1231, 7187, 1, 0, 0, 0, 1233, 7198, 1, 0, 0, 0, 1235, 7216, 1, 0, 0, 0, 1237, 7227, 1, 0, 0, 0, 1239, 7237, 1, 0, 0, 0, 1241, 7249, 1, 0, 0, 0, 1243, 7262, 1, 0, 0, 0, 1245, 7281, 1, 0, 0, 0, 1247, 7292, 1, 0, 0, 0, 1249, 7308, 1, 0, 0, 0, 1251, 7319, 1, 0, 0, 0, 1253, 7332, 1, 0, 0, 0, 1255, 7338, 1, 0, 0, 0, 1257, 7346, 1, 0, 0, 0, 1259, 7350, 1, 0, 0, 0, 1261, 7355, 1, 0, 0, 0, 1263, 7363, 1, 0, 0, 0, 1265, 7371, 1, 0, 0, 0, 1267, 7383, 1, 0, 0, 0, 1269, 7395, 1, 0, 0, 0, 1271, 7400, 1, 0, 0, 0, 1273, 7409, 1, 0, 0, 0, 1275, 7414, 1, 0, 0, 0, 1277, 7421, 1, 0, 0, 0, 1279, 7427, 1, 0, 0, 0, 1281, 7433, 1, 0, 0, 0, 1283, 7452, 1, 0, 0, 0, 1285, 7470, 1, 0, 0, 0, 1287, 7489, 1, 0, 0, 0, 1289, 7505, 1, 0, 0, 0, 1291, 7523, 1, 0, 0, 0, 1293, 7528, 1, 0, 0, 0, 1295, 7534, 1, 0, 0, 0, 1297, 7544, 1, 0, 0, 0, 1299, 7548, 1, 0, 0, 0, 1301, 7558, 1, 0, 0, 0, 1303, 7569, 1, 0, 0, 0, 1305, 7576, 1, 0, 0, 0, 1307, 7581, 1, 0, 0, 0, 1309, 7589, 1, 0, 0, 0, 1311, 7598, 1, 0, 0, 0, 1313, 7615, 1, 0, 0, 0, 1315, 7623, 1, 0, 0, 0, 1317, 7635, 1, 0, 0, 0, 1319, 7648, 1, 0, 0, 0, 1321, 7658, 1, 0, 0, 0, 1323, 7667, 1, 0, 0, 0, 1325, 7674, 1, 0, 0, 0, 1327, 7684, 1, 0, 0, 0, 1329, 7698, 1, 0, 0, 0, 1331, 7703, 1, 0, 0, 0, 1333, 7714, 1, 0, 0, 0, 1335, 7718, 1, 0, 0, 0, 1337, 7722, 1, 0, 0, 0, 1339, 7728, 1, 0, 0, 0, 1341, 7755, 1, 0, 0, 0, 1343, 7781, 1, 0, 0, 0, 1345, 7802, 1, 0, 0, 0, 1347, 7816, 1, 0, 0, 0, 1349, 7824, 1, 0, 0, 0, 1351, 7833, 1, 0, 0, 0, 1353, 7845, 1, 0, 0, 0, 1355, 7853, 1, 0, 0, 0, 1357, 7864, 1, 0, 0, 0, 1359, 7874, 1, 0, 0, 0, 1361, 7884, 1, 0, 0, 0, 1363, 7891, 1, 0, 0, 0, 1365, 7899, 1, 0, 0, 0, 1367, 7911, 1, 0, 0, 0, 1369, 7923, 1, 0, 0, 0, 1371, 7933, 1, 0, 0, 0, 1373, 7942, 1, 0, 0, 0, 1375, 7946, 1, 0, 0, 0, 1377, 7953, 1, 0, 0, 0, 1379, 7961, 1, 0, 0, 0, 1381, 7970, 1, 0, 0, 0, 1383, 7979, 1, 0, 0, 0, 1385, 7986, 1, 0, 0, 0, 1387, 7990, 1, 0, 0, 0, 1389, 8001, 1, 0, 0, 0, 1391, 8014, 1, 0, 0, 0, 1393, 8027, 1, 0, 0, 0, 1395, 8033, 1, 0, 0, 0, 1397, 8045, 1, 0, 0, 0, 1399, 8051, 1, 0, 0, 0, 1401, 8058, 1, 0, 0, 0, 1403, 8069, 1, 0, 0, 0, 1405, 8081, 1, 0, 0, 0, 1407, 8091, 1, 0, 0, 0, 1409, 8105, 1, 0, 0, 0, 1411, 8122, 1, 0, 0, 0, 1413, 8138, 1, 0, 0, 0, 1415, 8165, 1, 0, 0, 0, 1417, 8191, 1, 0, 0, 0, 1419, 8208, 1, 0, 0, 0, 1421, 8224, 1, 0, 0, 0, 1423, 8234, 1, 0, 0, 0, 1425, 8247, 1, 0, 0, 0, 1427, 8260, 1, 0, 0, 0, 1429, 8272, 1, 0, 0, 0, 1431, 8283, 1, 0, 0, 0, 1433, 8292, 1, 0, 0, 0, 1435, 8300, 1, 0, 0, 0, 1437, 8309, 1, 0, 0, 0, 1439, 8321, 1, 0, 0, 0, 1441, 8335, 1, 0, 0, 0, 1443, 8339, 1, 0, 0, 0, 1445, 8346, 1, 0, 0, 0, 1447, 8357, 1, 0, 0, 0, 1449, 8368, 1, 0, 0, 0, 1451, 8378, 1, 0, 0, 0, 1453, 8388, 1, 0, 0, 0, 1455, 8394, 1, 0, 0, 0, 1457, 8408, 1, 0, 0, 0, 1459, 8419, 1, 0, 0, 0, 1461, 8428, 1, 0, 0, 0, 1463, 8436, 1, 0, 0, 0, 1465, 8443, 1, 0, 0, 0, 1467, 8452, 1, 0, 0, 0, 1469, 8465, 1, 0, 0, 0, 1471, 8473, 1, 0, 0, 0, 1473, 8488, 1, 0, 0, 0, 1475, 8503, 1, 0, 0, 0, 1477, 8511, 1, 0, 0, 0, 1479, 8524, 1, 0, 0, 0, 1481, 8539, 1, 0, 0, 0, 1483, 8545, 1, 0, 0, 0, 1485, 8551, 1, 0, 0, 0, 1487, 8558, 1, 0, 0, 0, 1489, 8571, 1, 0, 0, 0, 1491, 8583, 1, 0, 0, 0, 1493, 8602, 1, 0, 0, 0, 1495, 8620, 1, 0, 0, 0, 1497, 8623, 1, 0, 0, 0, 1499, 8633, 1, 0, 0, 0, 1501, 8640, 1, 0, 0, 0, 1503, 8644, 1, 0, 0, 0, 1505, 8650, 1, 0, 0, 0, 1507, 8655, 1, 0, 0, 0, 1509, 8661, 1, 0, 0, 0, 1511, 8666, 1, 0, 0, 0, 1513, 8672, 1, 0, 0, 0, 1515, 8681, 1, 0, 0, 0, 1517, 8690, 1, 0, 0, 0, 1519, 8699, 1, 0, 0, 0, 1521, 8715, 1, 0, 0, 0, 1523, 8727, 1, 0, 0, 0, 1525, 8739, 1, 0, 0, 0, 1527, 8748, 1, 0, 0, 0, 1529, 8762, 1, 0, 0, 0, 1531, 8774, 1, 0, 0, 0, 1533, 8785, 1, 0, 0, 0, 1535, 8795, 1, 0, 0, 0, 1537, 8799, 1, 0, 0, 0, 1539, 8813, 1, 0, 0, 0, 1541, 8826, 1, 0, 0, 0, 1543, 8836, 1, 0, 0, 0, 1545, 8851, 1, 0, 0, 0, 1547, 8865, 1, 0, 0, 0, 1549, 8879, 1, 0, 0, 0, 1551, 8892, 1, 0, 0, 0, 1553, 8916, 1, 0, 0, 0, 1555, 8939, 1, 0, 0, 0, 1557, 8958, 1, 0, 0, 0, 1559, 8976, 1, 0, 0, 0, 1561, 8997, 1, 0, 0, 0, 1563, 9017, 1, 0, 0, 0, 1565, 9028, 1, 0, 0, 0, 1567, 9035, 1, 0, 0, 0, 1569, 9049, 1, 0, 0, 0, 1571, 9066, 1, 0, 0, 0, 1573, 9076, 1, 0, 0, 0, 1575, 9080, 1, 0, 0, 0, 1577, 9093, 1, 0, 0, 0, 1579, 9097, 1, 0, 0, 0, 1581, 9106, 1, 0, 0, 0, 1583, 9117, 1, 0, 0, 0, 1585, 9129, 1, 0, 0, 0, 1587, 9132, 1, 0, 0, 0, 1589, 9146, 1, 0, 0, 0, 1591, 9159, 1, 0, 0, 0, 1593, 9166, 1, 0, 0, 0, 1595, 9179, 1, 0, 0, 0, 1597, 9191, 1, 0, 0, 0, 1599, 9207, 1, 0, 0, 0, 1601, 9222, 1, 0, 0, 0, 1603, 9226, 1, 0, 0, 0, 1605, 9232, 1, 0, 0, 0, 1607, 9238, 1, 0, 0, 0, 1609, 9246, 1, 0, 0, 0, 1611, 9251, 1, 0, 0, 0, 1613, 9264, 1, 0, 0, 0, 1615, 9277, 1, 0, 0, 0, 1617, 9285, 1, 0, 0, 0, 1619, 9291, 1, 0, 0, 0, 1621, 9301, 1, 0, 0, 0, 1623, 9306, 1, 0, 0, 0, 1625, 9312, 1, 0, 0, 0, 1627, 9324, 1, 0, 0, 0, 1629, 9337, 1, 0, 0, 0, 1631, 9341, 1, 0, 0, 0, 1633, 9346, 1, 0, 0, 0, 1635, 9351, 1, 0, 0, 0, 1637, 9356, 1, 0, 0, 0, 1639, 9360, 1, 0, 0, 0, 1641, 9366, 1, 0, 0, 0, 1643, 9374, 1, 0, 0, 0, 1645, 9402, 1, 0, 0, 0, 1647, 9407, 1, 0, 0, 0, 1649, 9412, 1, 0, 0, 0, 1651, 9423, 1, 0, 0, 0, 1653, 9430, 1, 0, 0, 0, 1655, 9442, 1, 0, 0, 0, 1657, 9450, 1, 0, 0, 0, 1659, 9462, 1, 0, 0, 0, 1661, 9472, 1, 0, 0, 0, 1663, 9481, 1, 0, 0, 0, 1665, 9490, 1, 0, 0, 0, 1667, 9500, 1, 0, 0, 0, 1669, 9512, 1, 0, 0, 0, 1671, 9524, 1, 0, 0, 0, 1673, 9535, 1, 0, 0, 0, 1675, 9549, 1, 0, 0, 0, 1677, 9562, 1, 0, 0, 0, 1679, 9574, 1, 0, 0, 0, 1681, 9586, 1, 0, 0, 0, 1683, 9598, 1, 0, 0, 0, 1685, 9610, 1, 0, 0, 0, 1687, 9620, 1, 0, 0, 0, 1689, 9636, 1, 0, 0, 0, 1691, 9656, 1, 0, 0, 0, 1693, 9675, 1, 0, 0, 0, 1695, 9694, 1, 0, 0, 0, 1697, 9724, 1, 0, 0, 0, 1699, 9753, 1, 0, 0, 0, 1701, 9773, 1, 0, 0, 0, 1703, 9792, 1, 0, 0, 0, 1705, 9805, 1, 0, 0, 0, 1707, 9821, 1, 0, 0, 0, 1709, 9837, 1, 0, 0, 0, 1711, 9852, 1, 0, 0, 0, 1713, 9869, 1, 0, 0, 0, 1715, 9885, 1, 0, 0, 0, 1717, 9899, 1, 0, 0, 0, 1719, 9911, 1, 0, 0, 0, 1721, 9922, 1, 0, 0, 0, 1723, 9934, 1, 0, 0, 0, 1725, 9950, 1, 0, 0, 0, 1727, 9965, 1, 0, 0, 0, 1729, 9987, 1, 0, 0, 0, 1731, 10008, 1, 0, 0, 0, 1733, 10025, 1, 0, 0, 0, 1735, 10044, 1, 0, 0, 0, 1737, 10064, 1, 0, 0, 0, 1739, 10077, 1, 0, 0, 0, 1741, 10089, 1, 0, 0, 0, 1743, 10106, 1, 0, 0, 0, 1745, 10122, 1, 0, 0, 0, 1747, 10132, 1, 0, 0, 0, 1749, 10148, 1, 0, 0, 0, 1751, 10163, 1, 0, 0, 0, 1753, 10182, 1, 0, 0, 0, 1755, 10200, 1, 0, 0, 0, 1757, 10208, 1, 0, 0, 0, 1759, 10222, 1, 0, 0, 0, 1761, 10239, 1, 0, 0, 0, 1763, 10250, 1, 0, 0, 0, 1765, 10259, 1, 0, 0, 0, 1767, 10269, 1, 0, 0, 0, 1769, 10274, 1, 0, 0, 0, 1771, 10279, 1, 0, 0, 0, 1773, 10287, 1, 0, 0, 0, 1775, 10303, 1, 0, 0, 0, 1777, 10311, 1, 0, 0, 0, 1779, 10323, 1, 0, 0, 0, 1781, 10327, 1, 0, 0, 0, 1783, 10336, 1, 0, 0, 0, 1785, 10349, 1, 0, 0, 0, 1787, 10363, 1, 0, 0, 0, 1789, 10375, 1, 0, 0, 0, 1791, 10387, 1, 0, 0, 0, 1793, 10395, 1, 0, 0, 0, 1795, 10405, 1, 0, 0, 0, 1797, 10413, 1, 0, 0, 0, 1799, 10424, 1, 0, 0, 0, 1801, 10430, 1, 0, 0, 0, 1803, 10441, 1, 0, 0, 0, 1805, 10461, 1, 0, 0, 0, 1807, 10467, 1, 0, 0, 0, 1809, 10482, 1, 0, 0, 0, 1811, 10492, 1, 0, 0, 0, 1813, 10498, 1, 0, 0, 0, 1815, 10503, 1, 0, 0, 0, 1817, 10514, 1, 0, 0, 0, 1819, 10541, 1, 0, 0, 0, 1821, 10549, 1, 0, 0, 0, 1823, 10583, 1, 0, 0, 0, 1825, 10591, 1, 0, 0, 0, 1827, 10602, 1, 0, 0, 0, 1829, 10616, 1, 0, 0, 0, 1831, 10623, 1, 0, 0, 0, 1833, 10632, 1, 0, 0, 0, 1835, 10634, 1, 0, 0, 0, 1837, 10636, 1, 0, 0, 0, 1839, 10639, 1, 0, 0, 0, 1841, 10642, 1, 0, 0, 0, 1843, 10645, 1, 0, 0, 0, 1845, 10648, 1, 0, 0, 0, 1847, 10651, 1, 0, 0, 0, 1849, 10654, 1, 0, 0, 0, 1851, 10657, 1, 0, 0, 0, 1853, 10660, 1, 0, 0, 0, 1855, 10663, 1, 0, 0, 0, 1857, 10665, 1, 0, 0, 0, 1859, 10667, 1, 0, 0, 0, 1861, 10669, 1, 0, 0, 0, 1863, 10671, 1, 0, 0, 0, 1865, 10674, 1, 0, 0, 0, 1867, 10676, 1, 0, 0, 0, 1869, 10680, 1, 0, 0, 0, 1871, 10684, 1, 0, 0, 0, 1873, 10686, 1, 0, 0, 0, 1875, 10688, 1, 0, 0, 0, 1877, 10690, 1, 0, 0, 0, 1879, 10692, 1, 0, 0, 0, 1881, 10694, 1, 0, 0, 0, 1883, 10696, 1, 0, 0, 0, 1885, 10698, 1, 0, 0, 0, 1887, 10700, 1, 0, 0, 0, 1889, 10702, 1, 0, 0, 0, 1891, 10704, 1, 0, 0, 0, 1893, 10706, 1, 0, 0, 0, 1895, 10708, 1, 0, 0, 0, 1897, 10710, 1, 0, 0, 0, 1899, 10712, 1, 0, 0, 0, 1901, 10714, 1, 0, 0, 0, 1903, 10716, 1, 0, 0, 0, 1905, 10718, 1, 0, 0, 0, 1907, 10720, 1, 0, 0, 0, 1909, 10722, 1, 0, 0, 0, 1911, 10724, 1, 0, 0, 0, 1913, 10726, 1, 0, 0, 0, 1915, 10731, 1, 0, 0, 0, 1917, 10737, 1, 0, 0, 0, 1919, 10742, 1, 0, 0, 0, 1921, 10745, 1, 0, 0, 0, 1923, 10768, 1, 0, 0, 0, 1925, 10813, 1, 0, 0, 0, 1927, 10815, 1, 0, 0, 0, 1929, 10818, 1, 0, 0, 0, 1931, 10820, 1, 0, 0, 0, 1933, 10823, 1, 0, 0, 0, 1935, 10826, 1, 0, 0, 0, 1937, 10828, 1, 0, 0, 0, 1939, 10840, 1, 0, 0, 0, 1941, 10849, 1, 0, 0, 0, 1943, 10860, 1, 0, 0, 0, 1945, 10910, 1, 0, 0, 0, 1947, 10912, 1, 0, 0, 0, 1949, 10924, 1, 0, 0, 0, 1951, 10938, 1, 0, 0, 0, 1953, 10951, 1, 0, 0, 0, 1955, 10964, 1, 0, 0, 0, 1957, 10977, 1, 0, 0, 0, 1959, 10979, 1, 0, 0, 0, 1961, 10981, 1, 0, 0, 0, 1963, 10990, 1, 0, 0, 0, 1965, 1967, 7, 0, 0, 0, 1966, 1965, 1, 0, 0, 0, 1967, 1968, 1, 0, 0, 0, 1968, 1966, 1, 0, 0, 0, 1968, 1969, 1, 0, 0, 0, 1969, 1970, 1, 0, 0, 0, 1970, 1971, 6, 0, 0, 0, 1971, 2, 1, 0, 0, 0, 1972, 1973, 5, 47, 0, 0, 1973, 1974, 5, 42, 0, 0, 1974, 1975, 5, 33, 0, 0, 1975, 1977, 1, 0, 0, 0, 1976, 1978, 9, 0, 0, 0, 1977, 1976, 1, 0, 0, 0, 1978, 1979, 1, 0, 0, 0, 1979, 1980, 1, 0, 0, 0, 1979, 1977, 1, 0, 0, 0, 1980, 1981, 1, 0, 0, 0, 1981, 1982, 5, 42, 0, 0, 1982, 1983, 5, 47, 0, 0, 1983, 1984, 1, 0, 0, 0, 1984, 1985, 6, 1, 1, 0, 1985, 4, 1, 0, 0, 0, 1986, 1987, 5, 47, 0, 0, 1987, 1988, 5, 42, 0, 0, 1988, 1992, 1, 0, 0, 0, 1989, 1991, 9, 0, 0, 0, 1990, 1989, 1, 0, 0, 0, 1991, 1994, 1, 0, 0, 0, 1992, 1993, 1, 0, 0, 0, 1992, 1990, 1, 0, 0, 0, 1993, 1995, 1, 0, 0, 0, 1994, 1992, 1, 0, 0, 0, 1995, 1996, 5, 42, 0, 0, 1996, 1997, 5, 47, 0, 0, 1997, 1998, 1, 0, 0, 0, 1998, 1999, 6, 2, 0, 0, 1999, 6, 1, 0, 0, 0, 2000, 2001, 5, 45, 0, 0, 2001, 2002, 5, 45, 0, 0, 2002, 2005, 5, 32, 0, 0, 2003, 2005, 5, 35, 0, 0, 2004, 2000, 1, 0, 0, 0, 2004, 2003, 1, 0, 0, 0, 2005, 2009, 1, 0, 0, 0, 2006, 2008, 8, 1, 0, 0, 2007, 2006, 1, 0, 0, 0, 2008, 2011, 1, 0, 0, 0, 2009, 2007, 1, 0, 0, 0, 2009, 2010, 1, 0, 0, 0, 2010, 2017, 1, 0, 0, 0, 2011, 2009, 1, 0, 0, 0, 2012, 2014, 5, 13, 0, 0, 2013, 2012, 1, 0, 0, 0, 2013, 2014, 1, 0, 0, 0, 2014, 2015, 1, 0, 0, 0, 2015, 2018, 5, 10, 0, 0, 2016, 2018, 5, 0, 0, 1, 2017, 2013, 1, 0, 0, 0, 2017, 2016, 1, 0, 0, 0, 2018, 2030, 1, 0, 0, 0, 2019, 2020, 5, 45, 0, 0, 2020, 2021, 5, 45, 0, 0, 2021, 2027, 1, 0, 0, 0, 2022, 2024, 5, 13, 0, 0, 2023, 2022, 1, 0, 0, 0, 2023, 2024, 1, 0, 0, 0, 2024, 2025, 1, 0, 0, 0, 2025, 2028, 5, 10, 0, 0, 2026, 2028, 5, 0, 0, 1, 2027, 2023, 1, 0, 0, 0, 2027, 2026, 1, 0, 0, 0, 2028, 2030, 1, 0, 0, 0, 2029, 2004, 1, 0, 0, 0, 2029, 2019, 1, 0, 0, 0, 2030, 2031, 1, 0, 0, 0, 2031, 2032, 6, 3, 0, 0, 2032, 8, 1, 0, 0, 0, 2033, 2034, 5, 65, 0, 0, 2034, 2035, 5, 68, 0, 0, 2035, 2036, 5, 68, 0, 0, 2036, 10, 1, 0, 0, 0, 2037, 2038, 5, 65, 0, 0, 2038, 2039, 5, 76, 0, 0, 2039, 2040, 5, 76, 0, 0, 2040, 12, 1, 0, 0, 0, 2041, 2042, 5, 65, 0, 0, 2042, 2043, 5, 76, 0, 0, 2043, 2044, 5, 84, 0, 0, 2044, 2045, 5, 69, 0, 0, 2045, 2046, 5, 82, 0, 0, 2046, 14, 1, 0, 0, 0, 2047, 2048, 5, 65, 0, 0, 2048, 2049, 5, 78, 0, 0, 2049, 2050, 5, 65, 0, 0, 2050, 2051, 5, 76, 0, 0, 2051, 2052, 5, 89, 0, 0, 2052, 2053, 5, 90, 0, 0, 2053, 2054, 5, 69, 0, 0, 2054, 16, 1, 0, 0, 0, 2055, 2056, 5, 65, 0, 0, 2056, 2057, 5, 78, 0, 0, 2057, 2058, 5, 68, 0, 0, 2058, 18, 1, 0, 0, 0, 2059, 2060, 5, 65, 0, 0, 2060, 2061, 5, 83, 0, 0, 2061, 20, 1, 0, 0, 0, 2062, 2063, 5, 65, 0, 0, 2063, 2064, 5, 83, 0, 0, 2064, 2065, 5, 67, 0, 0, 2065, 22, 1, 0, 0, 0, 2066, 2067, 5, 66, 0, 0, 2067, 2068, 5, 69, 0, 0, 2068, 2069, 5, 70, 0, 0, 2069, 2070, 5, 79, 0, 0, 2070, 2071, 5, 82, 0, 0, 2071, 2072, 5, 69, 0, 0, 2072, 24, 1, 0, 0, 0, 2073, 2074, 5, 66, 0, 0, 2074, 2075, 5, 69, 0, 0, 2075, 2076, 5, 84, 0, 0, 2076, 2077, 5, 87, 0, 0, 2077, 2078, 5, 69, 0, 0, 2078, 2079, 5, 69, 0, 0, 2079, 2080, 5, 78, 0, 0, 2080, 26, 1, 0, 0, 0, 2081, 2082, 5, 66, 0, 0, 2082, 2083, 5, 79, 0, 0, 2083, 2084, 5, 84, 0, 0, 2084, 2085, 5, 72, 0, 0, 2085, 28, 1, 0, 0, 0, 2086, 2087, 5, 66, 0, 0, 2087, 2088, 5, 89, 0, 0, 2088, 30, 1, 0, 0, 0, 2089, 2090, 5, 67, 0, 0, 2090, 2091, 5, 65, 0, 0, 2091, 2092, 5, 76, 0, 0, 2092, 2093, 5, 76, 0, 0, 2093, 32, 1, 0, 0, 0, 2094, 2095, 5, 67, 0, 0, 2095, 2096, 5, 65, 0, 0, 2096, 2097, 5, 83, 0, 0, 2097, 2098, 5, 67, 0, 0, 2098, 2099, 5, 65, 0, 0, 2099, 2100, 5, 68, 0, 0, 2100, 2101, 5, 69, 0, 0, 2101, 34, 1, 0, 0, 0, 2102, 2103, 5, 67, 0, 0, 2103, 2104, 5, 65, 0, 0, 2104, 2105, 5, 83, 0, 0, 2105, 2106, 5, 69, 0, 0, 2106, 36, 1, 0, 0, 0, 2107, 2108, 5, 67, 0, 0, 2108, 2109, 5, 65, 0, 0, 2109, 2110, 5, 83, 0, 0, 2110, 2111, 5, 84, 0, 0, 2111, 38, 1, 0, 0, 0, 2112, 2113, 5, 67, 0, 0, 2113, 2114, 5, 72, 0, 0, 2114, 2115, 5, 65, 0, 0, 2115, 2116, 5, 78, 0, 0, 2116, 2117, 5, 71, 0, 0, 2117, 2118, 5, 69, 0, 0, 2118, 40, 1, 0, 0, 0, 2119, 2120, 5, 67, 0, 0, 2120, 2121, 5, 72, 0, 0, 2121, 2122, 5, 65, 0, 0, 2122, 2123, 5, 82, 0, 0, 2123, 2124, 5, 65, 0, 0, 2124, 2125, 5, 67, 0, 0, 2125, 2126, 5, 84, 0, 0, 2126, 2127, 5, 69, 0, 0, 2127, 2128, 5, 82, 0, 0, 2128, 42, 1, 0, 0, 0, 2129, 2130, 5, 67, 0, 0, 2130, 2131, 5, 72, 0, 0, 2131, 2132, 5, 69, 0, 0, 2132, 2133, 5, 67, 0, 0, 2133, 2134, 5, 75, 0, 0, 2134, 44, 1, 0, 0, 0, 2135, 2136, 5, 67, 0, 0, 2136, 2137, 5, 79, 0, 0, 2137, 2138, 5, 76, 0, 0, 2138, 2139, 5, 76, 0, 0, 2139, 2140, 5, 65, 0, 0, 2140, 2141, 5, 84, 0, 0, 2141, 2142, 5, 69, 0, 0, 2142, 46, 1, 0, 0, 0, 2143, 2144, 5, 67, 0, 0, 2144, 2145, 5, 79, 0, 0, 2145, 2146, 5, 76, 0, 0, 2146, 2147, 5, 85, 0, 0, 2147, 2148, 5, 77, 0, 0, 2148, 2149, 5, 78, 0, 0, 2149, 48, 1, 0, 0, 0, 2150, 2151, 5, 67, 0, 0, 2151, 2152, 5, 79, 0, 0, 2152, 2153, 5, 78, 0, 0, 2153, 2154, 5, 68, 0, 0, 2154, 2155, 5, 73, 0, 0, 2155, 2156, 5, 84, 0, 0, 2156, 2157, 5, 73, 0, 0, 2157, 2158, 5, 79, 0, 0, 2158, 2159, 5, 78, 0, 0, 2159, 50, 1, 0, 0, 0, 2160, 2161, 5, 67, 0, 0, 2161, 2162, 5, 79, 0, 0, 2162, 2163, 5, 78, 0, 0, 2163, 2164, 5, 83, 0, 0, 2164, 2165, 5, 84, 0, 0, 2165, 2166, 5, 82, 0, 0, 2166, 2167, 5, 65, 0, 0, 2167, 2168, 5, 73, 0, 0, 2168, 2169, 5, 78, 0, 0, 2169, 2170, 5, 84, 0, 0, 2170, 52, 1, 0, 0, 0, 2171, 2172, 5, 67, 0, 0, 2172, 2173, 5, 79, 0, 0, 2173, 2174, 5, 78, 0, 0, 2174, 2175, 5, 84, 0, 0, 2175, 2176, 5, 73, 0, 0, 2176, 2177, 5, 78, 0, 0, 2177, 2178, 5, 85, 0, 0, 2178, 2179, 5, 69, 0, 0, 2179, 54, 1, 0, 0, 0, 2180, 2181, 5, 67, 0, 0, 2181, 2182, 5, 79, 0, 0, 2182, 2183, 5, 78, 0, 0, 2183, 2184, 5, 86, 0, 0, 2184, 2185, 5, 69, 0, 0, 2185, 2186, 5, 82, 0, 0, 2186, 2187, 5, 84, 0, 0, 2187, 56, 1, 0, 0, 0, 2188, 2189, 5, 67, 0, 0, 2189, 2190, 5, 82, 0, 0, 2190, 2191, 5, 69, 0, 0, 2191, 2192, 5, 65, 0, 0, 2192, 2193, 5, 84, 0, 0, 2193, 2194, 5, 69, 0, 0, 2194, 58, 1, 0, 0, 0, 2195, 2196, 5, 67, 0, 0, 2196, 2197, 5, 82, 0, 0, 2197, 2198, 5, 79, 0, 0, 2198, 2199, 5, 83, 0, 0, 2199, 2200, 5, 83, 0, 0, 2200, 60, 1, 0, 0, 0, 2201, 2202, 5, 67, 0, 0, 2202, 2203, 5, 85, 0, 0, 2203, 2204, 5, 82, 0, 0, 2204, 2205, 5, 82, 0, 0, 2205, 2206, 5, 69, 0, 0, 2206, 2207, 5, 78, 0, 0, 2207, 2208, 5, 84, 0, 0, 2208, 2209, 5, 95, 0, 0, 2209, 2210, 5, 85, 0, 0, 2210, 2211, 5, 83, 0, 0, 2211, 2212, 5, 69, 0, 0, 2212, 2213, 5, 82, 0, 0, 2213, 62, 1, 0, 0, 0, 2214, 2215, 5, 67, 0, 0, 2215, 2216, 5, 85, 0, 0, 2216, 2217, 5, 82, 0, 0, 2217, 2218, 5, 83, 0, 0, 2218, 2219, 5, 79, 0, 0, 2219, 2220, 5, 82, 0, 0, 2220, 64, 1, 0, 0, 0, 2221, 2222, 5, 68, 0, 0, 2222, 2223, 5, 65, 0, 0, 2223, 2224, 5, 84, 0, 0, 2224, 2225, 5, 65, 0, 0, 2225, 2226, 5, 66, 0, 0, 2226, 2227, 5, 65, 0, 0, 2227, 2228, 5, 83, 0, 0, 2228, 2229, 5, 69, 0, 0, 2229, 66, 1, 0, 0, 0, 2230, 2231, 5, 68, 0, 0, 2231, 2232, 5, 65, 0, 0, 2232, 2233, 5, 84, 0, 0, 2233, 2234, 5, 65, 0, 0, 2234, 2235, 5, 66, 0, 0, 2235, 2236, 5, 65, 0, 0, 2236, 2237, 5, 83, 0, 0, 2237, 2238, 5, 69, 0, 0, 2238, 2239, 5, 83, 0, 0, 2239, 68, 1, 0, 0, 0, 2240, 2241, 5, 68, 0, 0, 2241, 2242, 5, 69, 0, 0, 2242, 2243, 5, 67, 0, 0, 2243, 2244, 5, 76, 0, 0, 2244, 2245, 5, 65, 0, 0, 2245, 2246, 5, 82, 0, 0, 2246, 2247, 5, 69, 0, 0, 2247, 70, 1, 0, 0, 0, 2248, 2249, 5, 68, 0, 0, 2249, 2250, 5, 69, 0, 0, 2250, 2251, 5, 70, 0, 0, 2251, 2252, 5, 65, 0, 0, 2252, 2253, 5, 85, 0, 0, 2253, 2254, 5, 76, 0, 0, 2254, 2255, 5, 84, 0, 0, 2255, 72, 1, 0, 0, 0, 2256, 2257, 5, 68, 0, 0, 2257, 2258, 5, 69, 0, 0, 2258, 2259, 5, 76, 0, 0, 2259, 2260, 5, 65, 0, 0, 2260, 2261, 5, 89, 0, 0, 2261, 2262, 5, 69, 0, 0, 2262, 2263, 5, 68, 0, 0, 2263, 74, 1, 0, 0, 0, 2264, 2265, 5, 68, 0, 0, 2265, 2266, 5, 69, 0, 0, 2266, 2267, 5, 76, 0, 0, 2267, 2268, 5, 69, 0, 0, 2268, 2269, 5, 84, 0, 0, 2269, 2270, 5, 69, 0, 0, 2270, 76, 1, 0, 0, 0, 2271, 2272, 5, 68, 0, 0, 2272, 2273, 5, 69, 0, 0, 2273, 2274, 5, 83, 0, 0, 2274, 2275, 5, 67, 0, 0, 2275, 78, 1, 0, 0, 0, 2276, 2277, 5, 68, 0, 0, 2277, 2278, 5, 69, 0, 0, 2278, 2279, 5, 83, 0, 0, 2279, 2280, 5, 67, 0, 0, 2280, 2281, 5, 82, 0, 0, 2281, 2282, 5, 73, 0, 0, 2282, 2283, 5, 66, 0, 0, 2283, 2284, 5, 69, 0, 0, 2284, 80, 1, 0, 0, 0, 2285, 2286, 5, 68, 0, 0, 2286, 2287, 5, 69, 0, 0, 2287, 2288, 5, 84, 0, 0, 2288, 2289, 5, 69, 0, 0, 2289, 2290, 5, 82, 0, 0, 2290, 2291, 5, 77, 0, 0, 2291, 2292, 5, 73, 0, 0, 2292, 2293, 5, 78, 0, 0, 2293, 2294, 5, 73, 0, 0, 2294, 2295, 5, 83, 0, 0, 2295, 2296, 5, 84, 0, 0, 2296, 2297, 5, 73, 0, 0, 2297, 2298, 5, 67, 0, 0, 2298, 82, 1, 0, 0, 0, 2299, 2300, 5, 68, 0, 0, 2300, 2301, 5, 73, 0, 0, 2301, 2302, 5, 83, 0, 0, 2302, 2303, 5, 84, 0, 0, 2303, 2304, 5, 73, 0, 0, 2304, 2305, 5, 78, 0, 0, 2305, 2306, 5, 67, 0, 0, 2306, 2307, 5, 84, 0, 0, 2307, 84, 1, 0, 0, 0, 2308, 2309, 5, 68, 0, 0, 2309, 2310, 5, 73, 0, 0, 2310, 2311, 5, 83, 0, 0, 2311, 2312, 5, 84, 0, 0, 2312, 2313, 5, 73, 0, 0, 2313, 2314, 5, 78, 0, 0, 2314, 2315, 5, 67, 0, 0, 2315, 2316, 5, 84, 0, 0, 2316, 2317, 5, 82, 0, 0, 2317, 2318, 5, 79, 0, 0, 2318, 2319, 5, 87, 0, 0, 2319, 86, 1, 0, 0, 0, 2320, 2321, 5, 68, 0, 0, 2321, 2322, 5, 82, 0, 0, 2322, 2323, 5, 79, 0, 0, 2323, 2324, 5, 80, 0, 0, 2324, 88, 1, 0, 0, 0, 2325, 2326, 5, 69, 0, 0, 2326, 2327, 5, 65, 0, 0, 2327, 2328, 5, 67, 0, 0, 2328, 2329, 5, 72, 0, 0, 2329, 90, 1, 0, 0, 0, 2330, 2331, 5, 69, 0, 0, 2331, 2332, 5, 76, 0, 0, 2332, 2333, 5, 83, 0, 0, 2333, 2334, 5, 69, 0, 0, 2334, 92, 1, 0, 0, 0, 2335, 2336, 5, 69, 0, 0, 2336, 2337, 5, 76, 0, 0, 2337, 2338, 5, 83, 0, 0, 2338, 2339, 5, 69, 0, 0, 2339, 2340, 5, 73, 0, 0, 2340, 2341, 5, 70, 0, 0, 2341, 94, 1, 0, 0, 0, 2342, 2343, 5, 69, 0, 0, 2343, 2344, 5, 78, 0, 0, 2344, 2345, 5, 67, 0, 0, 2345, 2346, 5, 76, 0, 0, 2346, 2347, 5, 79, 0, 0, 2347, 2348, 5, 83, 0, 0, 2348, 2349, 5, 69, 0, 0, 2349, 2350, 5, 68, 0, 0, 2350, 96, 1, 0, 0, 0, 2351, 2352, 5, 69, 0, 0, 2352, 2353, 5, 83, 0, 0, 2353, 2354, 5, 67, 0, 0, 2354, 2355, 5, 65, 0, 0, 2355, 2356, 5, 80, 0, 0, 2356, 2357, 5, 69, 0, 0, 2357, 2358, 5, 68, 0, 0, 2358, 98, 1, 0, 0, 0, 2359, 2360, 5, 69, 0, 0, 2360, 2361, 5, 88, 0, 0, 2361, 2362, 5, 73, 0, 0, 2362, 2363, 5, 83, 0, 0, 2363, 2364, 5, 84, 0, 0, 2364, 2365, 5, 83, 0, 0, 2365, 100, 1, 0, 0, 0, 2366, 2367, 5, 69, 0, 0, 2367, 2368, 5, 88, 0, 0, 2368, 2369, 5, 73, 0, 0, 2369, 2370, 5, 84, 0, 0, 2370, 102, 1, 0, 0, 0, 2371, 2372, 5, 69, 0, 0, 2372, 2373, 5, 88, 0, 0, 2373, 2374, 5, 80, 0, 0, 2374, 2375, 5, 76, 0, 0, 2375, 2376, 5, 65, 0, 0, 2376, 2377, 5, 73, 0, 0, 2377, 2378, 5, 78, 0, 0, 2378, 104, 1, 0, 0, 0, 2379, 2380, 5, 70, 0, 0, 2380, 2381, 5, 65, 0, 0, 2381, 2382, 5, 76, 0, 0, 2382, 2383, 5, 83, 0, 0, 2383, 2384, 5, 69, 0, 0, 2384, 106, 1, 0, 0, 0, 2385, 2386, 5, 70, 0, 0, 2386, 2387, 5, 69, 0, 0, 2387, 2388, 5, 84, 0, 0, 2388, 2389, 5, 67, 0, 0, 2389, 2390, 5, 72, 0, 0, 2390, 108, 1, 0, 0, 0, 2391, 2392, 5, 70, 0, 0, 2392, 2393, 5, 79, 0, 0, 2393, 2394, 5, 82, 0, 0, 2394, 110, 1, 0, 0, 0, 2395, 2396, 5, 70, 0, 0, 2396, 2397, 5, 79, 0, 0, 2397, 2398, 5, 82, 0, 0, 2398, 2399, 5, 67, 0, 0, 2399, 2400, 5, 69, 0, 0, 2400, 112, 1, 0, 0, 0, 2401, 2402, 5, 70, 0, 0, 2402, 2403, 5, 79, 0, 0, 2403, 2404, 5, 82, 0, 0, 2404, 2405, 5, 69, 0, 0, 2405, 2406, 5, 73, 0, 0, 2406, 2407, 5, 71, 0, 0, 2407, 2408, 5, 78, 0, 0, 2408, 114, 1, 0, 0, 0, 2409, 2410, 5, 70, 0, 0, 2410, 2411, 5, 82, 0, 0, 2411, 2412, 5, 79, 0, 0, 2412, 2413, 5, 77, 0, 0, 2413, 116, 1, 0, 0, 0, 2414, 2415, 5, 70, 0, 0, 2415, 2416, 5, 85, 0, 0, 2416, 2417, 5, 76, 0, 0, 2417, 2418, 5, 76, 0, 0, 2418, 2419, 5, 84, 0, 0, 2419, 2420, 5, 69, 0, 0, 2420, 2421, 5, 88, 0, 0, 2421, 2422, 5, 84, 0, 0, 2422, 118, 1, 0, 0, 0, 2423, 2424, 5, 71, 0, 0, 2424, 2425, 5, 82, 0, 0, 2425, 2426, 5, 65, 0, 0, 2426, 2427, 5, 78, 0, 0, 2427, 2428, 5, 84, 0, 0, 2428, 120, 1, 0, 0, 0, 2429, 2430, 5, 71, 0, 0, 2430, 2431, 5, 82, 0, 0, 2431, 2432, 5, 79, 0, 0, 2432, 2433, 5, 85, 0, 0, 2433, 2434, 5, 80, 0, 0, 2434, 122, 1, 0, 0, 0, 2435, 2436, 5, 72, 0, 0, 2436, 2437, 5, 65, 0, 0, 2437, 2438, 5, 86, 0, 0, 2438, 2439, 5, 73, 0, 0, 2439, 2440, 5, 78, 0, 0, 2440, 2441, 5, 71, 0, 0, 2441, 124, 1, 0, 0, 0, 2442, 2443, 5, 72, 0, 0, 2443, 2444, 5, 73, 0, 0, 2444, 2445, 5, 71, 0, 0, 2445, 2446, 5, 72, 0, 0, 2446, 2447, 5, 95, 0, 0, 2447, 2448, 5, 80, 0, 0, 2448, 2449, 5, 82, 0, 0, 2449, 2450, 5, 73, 0, 0, 2450, 2451, 5, 79, 0, 0, 2451, 2452, 5, 82, 0, 0, 2452, 2453, 5, 73, 0, 0, 2453, 2454, 5, 84, 0, 0, 2454, 2455, 5, 89, 0, 0, 2455, 126, 1, 0, 0, 0, 2456, 2457, 5, 73, 0, 0, 2457, 2458, 5, 70, 0, 0, 2458, 128, 1, 0, 0, 0, 2459, 2460, 5, 73, 0, 0, 2460, 2461, 5, 71, 0, 0, 2461, 2462, 5, 78, 0, 0, 2462, 2463, 5, 79, 0, 0, 2463, 2464, 5, 82, 0, 0, 2464, 2465, 5, 69, 0, 0, 2465, 130, 1, 0, 0, 0, 2466, 2467, 5, 73, 0, 0, 2467, 2468, 5, 78, 0, 0, 2468, 132, 1, 0, 0, 0, 2469, 2470, 5, 73, 0, 0, 2470, 2471, 5, 78, 0, 0, 2471, 2472, 5, 68, 0, 0, 2472, 2473, 5, 69, 0, 0, 2473, 2474, 5, 88, 0, 0, 2474, 134, 1, 0, 0, 0, 2475, 2476, 5, 73, 0, 0, 2476, 2477, 5, 78, 0, 0, 2477, 2478, 5, 70, 0, 0, 2478, 2479, 5, 73, 0, 0, 2479, 2480, 5, 76, 0, 0, 2480, 2481, 5, 69, 0, 0, 2481, 136, 1, 0, 0, 0, 2482, 2483, 5, 73, 0, 0, 2483, 2484, 5, 78, 0, 0, 2484, 2485, 5, 78, 0, 0, 2485, 2486, 5, 69, 0, 0, 2486, 2487, 5, 82, 0, 0, 2487, 138, 1, 0, 0, 0, 2488, 2489, 5, 73, 0, 0, 2489, 2490, 5, 78, 0, 0, 2490, 2491, 5, 79, 0, 0, 2491, 2492, 5, 85, 0, 0, 2492, 2493, 5, 84, 0, 0, 2493, 140, 1, 0, 0, 0, 2494, 2495, 5, 73, 0, 0, 2495, 2496, 5, 78, 0, 0, 2496, 2497, 5, 83, 0, 0, 2497, 2498, 5, 69, 0, 0, 2498, 2499, 5, 82, 0, 0, 2499, 2500, 5, 84, 0, 0, 2500, 142, 1, 0, 0, 0, 2501, 2502, 5, 73, 0, 0, 2502, 2503, 5, 78, 0, 0, 2503, 2504, 5, 84, 0, 0, 2504, 2505, 5, 69, 0, 0, 2505, 2506, 5, 82, 0, 0, 2506, 2507, 5, 86, 0, 0, 2507, 2508, 5, 65, 0, 0, 2508, 2509, 5, 76, 0, 0, 2509, 144, 1, 0, 0, 0, 2510, 2511, 5, 73, 0, 0, 2511, 2512, 5, 78, 0, 0, 2512, 2513, 5, 84, 0, 0, 2513, 2514, 5, 79, 0, 0, 2514, 146, 1, 0, 0, 0, 2515, 2516, 5, 73, 0, 0, 2516, 2517, 5, 83, 0, 0, 2517, 148, 1, 0, 0, 0, 2518, 2519, 5, 73, 0, 0, 2519, 2520, 5, 84, 0, 0, 2520, 2521, 5, 69, 0, 0, 2521, 2522, 5, 82, 0, 0, 2522, 2523, 5, 65, 0, 0, 2523, 2524, 5, 84, 0, 0, 2524, 2525, 5, 69, 0, 0, 2525, 150, 1, 0, 0, 0, 2526, 2527, 5, 74, 0, 0, 2527, 2528, 5, 79, 0, 0, 2528, 2529, 5, 73, 0, 0, 2529, 2530, 5, 78, 0, 0, 2530, 152, 1, 0, 0, 0, 2531, 2532, 5, 75, 0, 0, 2532, 2533, 5, 69, 0, 0, 2533, 2534, 5, 89, 0, 0, 2534, 154, 1, 0, 0, 0, 2535, 2536, 5, 75, 0, 0, 2536, 2537, 5, 69, 0, 0, 2537, 2538, 5, 89, 0, 0, 2538, 2539, 5, 83, 0, 0, 2539, 156, 1, 0, 0, 0, 2540, 2541, 5, 75, 0, 0, 2541, 2542, 5, 73, 0, 0, 2542, 2543, 5, 76, 0, 0, 2543, 2544, 5, 76, 0, 0, 2544, 158, 1, 0, 0, 0, 2545, 2546, 5, 76, 0, 0, 2546, 2547, 5, 69, 0, 0, 2547, 2548, 5, 65, 0, 0, 2548, 2549, 5, 68, 0, 0, 2549, 2550, 5, 73, 0, 0, 2550, 2551, 5, 78, 0, 0, 2551, 2552, 5, 71, 0, 0, 2552, 160, 1, 0, 0, 0, 2553, 2554, 5, 76, 0, 0, 2554, 2555, 5, 69, 0, 0, 2555, 2556, 5, 65, 0, 0, 2556, 2557, 5, 86, 0, 0, 2557, 2558, 5, 69, 0, 0, 2558, 162, 1, 0, 0, 0, 2559, 2560, 5, 76, 0, 0, 2560, 2561, 5, 69, 0, 0, 2561, 2562, 5, 70, 0, 0, 2562, 2563, 5, 84, 0, 0, 2563, 164, 1, 0, 0, 0, 2564, 2565, 5, 76, 0, 0, 2565, 2566, 5, 73, 0, 0, 2566, 2567, 5, 75, 0, 0, 2567, 2568, 5, 69, 0, 0, 2568, 166, 1, 0, 0, 0, 2569, 2570, 5, 76, 0, 0, 2570, 2571, 5, 73, 0, 0, 2571, 2572, 5, 77, 0, 0, 2572, 2573, 5, 73, 0, 0, 2573, 2574, 5, 84, 0, 0, 2574, 168, 1, 0, 0, 0, 2575, 2576, 5, 76, 0, 0, 2576, 2577, 5, 73, 0, 0, 2577, 2578, 5, 78, 0, 0, 2578, 2579, 5, 69, 0, 0, 2579, 2580, 5, 65, 0, 0, 2580, 2581, 5, 82, 0, 0, 2581, 170, 1, 0, 0, 0, 2582, 2583, 5, 76, 0, 0, 2583, 2584, 5, 73, 0, 0, 2584, 2585, 5, 78, 0, 0, 2585, 2586, 5, 69, 0, 0, 2586, 2587, 5, 83, 0, 0, 2587, 172, 1, 0, 0, 0, 2588, 2589, 5, 76, 0, 0, 2589, 2590, 5, 79, 0, 0, 2590, 2591, 5, 65, 0, 0, 2591, 2592, 5, 68, 0, 0, 2592, 174, 1, 0, 0, 0, 2593, 2594, 5, 76, 0, 0, 2594, 2595, 5, 79, 0, 0, 2595, 2596, 5, 67, 0, 0, 2596, 2597, 5, 75, 0, 0, 2597, 176, 1, 0, 0, 0, 2598, 2599, 5, 76, 0, 0, 2599, 2600, 5, 79, 0, 0, 2600, 2601, 5, 79, 0, 0, 2601, 2602, 5, 80, 0, 0, 2602, 178, 1, 0, 0, 0, 2603, 2604, 5, 76, 0, 0, 2604, 2605, 5, 79, 0, 0, 2605, 2606, 5, 87, 0, 0, 2606, 2607, 5, 95, 0, 0, 2607, 2608, 5, 80, 0, 0, 2608, 2609, 5, 82, 0, 0, 2609, 2610, 5, 73, 0, 0, 2610, 2611, 5, 79, 0, 0, 2611, 2612, 5, 82, 0, 0, 2612, 2613, 5, 73, 0, 0, 2613, 2614, 5, 84, 0, 0, 2614, 2615, 5, 89, 0, 0, 2615, 180, 1, 0, 0, 0, 2616, 2617, 5, 77, 0, 0, 2617, 2618, 5, 65, 0, 0, 2618, 2619, 5, 83, 0, 0, 2619, 2620, 5, 84, 0, 0, 2620, 2621, 5, 69, 0, 0, 2621, 2622, 5, 82, 0, 0, 2622, 2623, 5, 95, 0, 0, 2623, 2624, 5, 66, 0, 0, 2624, 2625, 5, 73, 0, 0, 2625, 2626, 5, 78, 0, 0, 2626, 2627, 5, 68, 0, 0, 2627, 182, 1, 0, 0, 0, 2628, 2629, 5, 77, 0, 0, 2629, 2630, 5, 65, 0, 0, 2630, 2631, 5, 83, 0, 0, 2631, 2632, 5, 84, 0, 0, 2632, 2633, 5, 69, 0, 0, 2633, 2634, 5, 82, 0, 0, 2634, 2635, 5, 95, 0, 0, 2635, 2636, 5, 83, 0, 0, 2636, 2637, 5, 83, 0, 0, 2637, 2638, 5, 76, 0, 0, 2638, 2639, 5, 95, 0, 0, 2639, 2640, 5, 86, 0, 0, 2640, 2641, 5, 69, 0, 0, 2641, 2642, 5, 82, 0, 0, 2642, 2643, 5, 73, 0, 0, 2643, 2644, 5, 70, 0, 0, 2644, 2645, 5, 89, 0, 0, 2645, 2646, 5, 95, 0, 0, 2646, 2647, 5, 83, 0, 0, 2647, 2648, 5, 69, 0, 0, 2648, 2649, 5, 82, 0, 0, 2649, 2650, 5, 86, 0, 0, 2650, 2651, 5, 69, 0, 0, 2651, 2652, 5, 82, 0, 0, 2652, 2653, 5, 95, 0, 0, 2653, 2654, 5, 67, 0, 0, 2654, 2655, 5, 69, 0, 0, 2655, 2656, 5, 82, 0, 0, 2656, 2657, 5, 84, 0, 0, 2657, 184, 1, 0, 0, 0, 2658, 2659, 5, 77, 0, 0, 2659, 2660, 5, 65, 0, 0, 2660, 2661, 5, 84, 0, 0, 2661, 2662, 5, 67, 0, 0, 2662, 2663, 5, 72, 0, 0, 2663, 186, 1, 0, 0, 0, 2664, 2665, 5, 77, 0, 0, 2665, 2666, 5, 65, 0, 0, 2666, 2667, 5, 88, 0, 0, 2667, 2668, 5, 86, 0, 0, 2668, 2669, 5, 65, 0, 0, 2669, 2670, 5, 76, 0, 0, 2670, 2671, 5, 85, 0, 0, 2671, 2672, 5, 69, 0, 0, 2672, 188, 1, 0, 0, 0, 2673, 2674, 5, 77, 0, 0, 2674, 2675, 5, 79, 0, 0, 2675, 2676, 5, 68, 0, 0, 2676, 2677, 5, 73, 0, 0, 2677, 2678, 5, 70, 0, 0, 2678, 2679, 5, 73, 0, 0, 2679, 2680, 5, 69, 0, 0, 2680, 2681, 5, 83, 0, 0, 2681, 190, 1, 0, 0, 0, 2682, 2683, 5, 78, 0, 0, 2683, 2684, 5, 65, 0, 0, 2684, 2685, 5, 84, 0, 0, 2685, 2686, 5, 85, 0, 0, 2686, 2687, 5, 82, 0, 0, 2687, 2688, 5, 65, 0, 0, 2688, 2689, 5, 76, 0, 0, 2689, 192, 1, 0, 0, 0, 2690, 2691, 5, 78, 0, 0, 2691, 2692, 5, 79, 0, 0, 2692, 2693, 5, 84, 0, 0, 2693, 194, 1, 0, 0, 0, 2694, 2695, 5, 78, 0, 0, 2695, 2696, 5, 79, 0, 0, 2696, 2697, 5, 95, 0, 0, 2697, 2698, 5, 87, 0, 0, 2698, 2699, 5, 82, 0, 0, 2699, 2700, 5, 73, 0, 0, 2700, 2701, 5, 84, 0, 0, 2701, 2702, 5, 69, 0, 0, 2702, 2703, 5, 95, 0, 0, 2703, 2704, 5, 84, 0, 0, 2704, 2705, 5, 79, 0, 0, 2705, 2706, 5, 95, 0, 0, 2706, 2707, 5, 66, 0, 0, 2707, 2708, 5, 73, 0, 0, 2708, 2709, 5, 78, 0, 0, 2709, 2710, 5, 76, 0, 0, 2710, 2711, 5, 79, 0, 0, 2711, 2712, 5, 71, 0, 0, 2712, 196, 1, 0, 0, 0, 2713, 2714, 5, 78, 0, 0, 2714, 2715, 5, 85, 0, 0, 2715, 2716, 5, 76, 0, 0, 2716, 2717, 5, 76, 0, 0, 2717, 198, 1, 0, 0, 0, 2718, 2719, 5, 79, 0, 0, 2719, 2720, 5, 78, 0, 0, 2720, 200, 1, 0, 0, 0, 2721, 2722, 5, 79, 0, 0, 2722, 2723, 5, 80, 0, 0, 2723, 2724, 5, 84, 0, 0, 2724, 2725, 5, 73, 0, 0, 2725, 2726, 5, 77, 0, 0, 2726, 2727, 5, 73, 0, 0, 2727, 2728, 5, 90, 0, 0, 2728, 2729, 5, 69, 0, 0, 2729, 202, 1, 0, 0, 0, 2730, 2731, 5, 79, 0, 0, 2731, 2732, 5, 80, 0, 0, 2732, 2733, 5, 84, 0, 0, 2733, 2734, 5, 73, 0, 0, 2734, 2735, 5, 79, 0, 0, 2735, 2736, 5, 78, 0, 0, 2736, 204, 1, 0, 0, 0, 2737, 2738, 5, 79, 0, 0, 2738, 2739, 5, 80, 0, 0, 2739, 2740, 5, 84, 0, 0, 2740, 2741, 5, 73, 0, 0, 2741, 2742, 5, 79, 0, 0, 2742, 2743, 5, 78, 0, 0, 2743, 2744, 5, 65, 0, 0, 2744, 2745, 5, 76, 0, 0, 2745, 2746, 5, 76, 0, 0, 2746, 2747, 5, 89, 0, 0, 2747, 206, 1, 0, 0, 0, 2748, 2749, 5, 79, 0, 0, 2749, 2750, 5, 82, 0, 0, 2750, 208, 1, 0, 0, 0, 2751, 2752, 5, 79, 0, 0, 2752, 2753, 5, 82, 0, 0, 2753, 2754, 5, 68, 0, 0, 2754, 2755, 5, 69, 0, 0, 2755, 2756, 5, 82, 0, 0, 2756, 210, 1, 0, 0, 0, 2757, 2758, 5, 79, 0, 0, 2758, 2759, 5, 85, 0, 0, 2759, 2760, 5, 84, 0, 0, 2760, 212, 1, 0, 0, 0, 2761, 2762, 5, 79, 0, 0, 2762, 2763, 5, 85, 0, 0, 2763, 2764, 5, 84, 0, 0, 2764, 2765, 5, 69, 0, 0, 2765, 2766, 5, 82, 0, 0, 2766, 214, 1, 0, 0, 0, 2767, 2768, 5, 79, 0, 0, 2768, 2769, 5, 85, 0, 0, 2769, 2770, 5, 84, 0, 0, 2770, 2771, 5, 70, 0, 0, 2771, 2772, 5, 73, 0, 0, 2772, 2773, 5, 76, 0, 0, 2773, 2774, 5, 69, 0, 0, 2774, 216, 1, 0, 0, 0, 2775, 2776, 5, 80, 0, 0, 2776, 2777, 5, 65, 0, 0, 2777, 2778, 5, 82, 0, 0, 2778, 2779, 5, 84, 0, 0, 2779, 2780, 5, 73, 0, 0, 2780, 2781, 5, 84, 0, 0, 2781, 2782, 5, 73, 0, 0, 2782, 2783, 5, 79, 0, 0, 2783, 2784, 5, 78, 0, 0, 2784, 218, 1, 0, 0, 0, 2785, 2786, 5, 80, 0, 0, 2786, 2787, 5, 82, 0, 0, 2787, 2788, 5, 73, 0, 0, 2788, 2789, 5, 77, 0, 0, 2789, 2790, 5, 65, 0, 0, 2790, 2791, 5, 82, 0, 0, 2791, 2792, 5, 89, 0, 0, 2792, 220, 1, 0, 0, 0, 2793, 2794, 5, 80, 0, 0, 2794, 2795, 5, 82, 0, 0, 2795, 2796, 5, 79, 0, 0, 2796, 2797, 5, 67, 0, 0, 2797, 2798, 5, 69, 0, 0, 2798, 2799, 5, 68, 0, 0, 2799, 2800, 5, 85, 0, 0, 2800, 2801, 5, 82, 0, 0, 2801, 2802, 5, 69, 0, 0, 2802, 222, 1, 0, 0, 0, 2803, 2804, 5, 80, 0, 0, 2804, 2805, 5, 85, 0, 0, 2805, 2806, 5, 82, 0, 0, 2806, 2807, 5, 71, 0, 0, 2807, 2808, 5, 69, 0, 0, 2808, 224, 1, 0, 0, 0, 2809, 2810, 5, 82, 0, 0, 2810, 2811, 5, 65, 0, 0, 2811, 2812, 5, 78, 0, 0, 2812, 2813, 5, 71, 0, 0, 2813, 2814, 5, 69, 0, 0, 2814, 226, 1, 0, 0, 0, 2815, 2816, 5, 82, 0, 0, 2816, 2817, 5, 69, 0, 0, 2817, 2818, 5, 65, 0, 0, 2818, 2819, 5, 68, 0, 0, 2819, 228, 1, 0, 0, 0, 2820, 2821, 5, 82, 0, 0, 2821, 2822, 5, 69, 0, 0, 2822, 2823, 5, 65, 0, 0, 2823, 2824, 5, 68, 0, 0, 2824, 2825, 5, 83, 0, 0, 2825, 230, 1, 0, 0, 0, 2826, 2827, 5, 82, 0, 0, 2827, 2828, 5, 69, 0, 0, 2828, 2829, 5, 70, 0, 0, 2829, 2830, 5, 69, 0, 0, 2830, 2831, 5, 82, 0, 0, 2831, 2832, 5, 69, 0, 0, 2832, 2833, 5, 78, 0, 0, 2833, 2834, 5, 67, 0, 0, 2834, 2835, 5, 69, 0, 0, 2835, 2836, 5, 83, 0, 0, 2836, 232, 1, 0, 0, 0, 2837, 2838, 5, 82, 0, 0, 2838, 2839, 5, 69, 0, 0, 2839, 2840, 5, 71, 0, 0, 2840, 2841, 5, 69, 0, 0, 2841, 2842, 5, 88, 0, 0, 2842, 2843, 5, 80, 0, 0, 2843, 234, 1, 0, 0, 0, 2844, 2845, 5, 82, 0, 0, 2845, 2846, 5, 69, 0, 0, 2846, 2847, 5, 76, 0, 0, 2847, 2848, 5, 69, 0, 0, 2848, 2849, 5, 65, 0, 0, 2849, 2850, 5, 83, 0, 0, 2850, 2851, 5, 69, 0, 0, 2851, 236, 1, 0, 0, 0, 2852, 2853, 5, 82, 0, 0, 2853, 2854, 5, 69, 0, 0, 2854, 2855, 5, 78, 0, 0, 2855, 2856, 5, 65, 0, 0, 2856, 2857, 5, 77, 0, 0, 2857, 2858, 5, 69, 0, 0, 2858, 238, 1, 0, 0, 0, 2859, 2860, 5, 82, 0, 0, 2860, 2861, 5, 69, 0, 0, 2861, 2862, 5, 80, 0, 0, 2862, 2863, 5, 69, 0, 0, 2863, 2864, 5, 65, 0, 0, 2864, 2865, 5, 84, 0, 0, 2865, 240, 1, 0, 0, 0, 2866, 2867, 5, 82, 0, 0, 2867, 2868, 5, 69, 0, 0, 2868, 2869, 5, 80, 0, 0, 2869, 2870, 5, 76, 0, 0, 2870, 2871, 5, 65, 0, 0, 2871, 2872, 5, 67, 0, 0, 2872, 2873, 5, 69, 0, 0, 2873, 242, 1, 0, 0, 0, 2874, 2875, 5, 82, 0, 0, 2875, 2876, 5, 69, 0, 0, 2876, 2877, 5, 81, 0, 0, 2877, 2878, 5, 85, 0, 0, 2878, 2879, 5, 73, 0, 0, 2879, 2880, 5, 82, 0, 0, 2880, 2881, 5, 69, 0, 0, 2881, 244, 1, 0, 0, 0, 2882, 2883, 5, 82, 0, 0, 2883, 2884, 5, 69, 0, 0, 2884, 2885, 5, 83, 0, 0, 2885, 2886, 5, 84, 0, 0, 2886, 2887, 5, 82, 0, 0, 2887, 2888, 5, 73, 0, 0, 2888, 2889, 5, 67, 0, 0, 2889, 2890, 5, 84, 0, 0, 2890, 246, 1, 0, 0, 0, 2891, 2892, 5, 82, 0, 0, 2892, 2893, 5, 69, 0, 0, 2893, 2894, 5, 84, 0, 0, 2894, 2895, 5, 85, 0, 0, 2895, 2896, 5, 82, 0, 0, 2896, 2897, 5, 78, 0, 0, 2897, 248, 1, 0, 0, 0, 2898, 2899, 5, 82, 0, 0, 2899, 2900, 5, 69, 0, 0, 2900, 2901, 5, 86, 0, 0, 2901, 2902, 5, 79, 0, 0, 2902, 2903, 5, 75, 0, 0, 2903, 2904, 5, 69, 0, 0, 2904, 250, 1, 0, 0, 0, 2905, 2906, 5, 82, 0, 0, 2906, 2907, 5, 73, 0, 0, 2907, 2908, 5, 71, 0, 0, 2908, 2909, 5, 72, 0, 0, 2909, 2910, 5, 84, 0, 0, 2910, 252, 1, 0, 0, 0, 2911, 2912, 5, 82, 0, 0, 2912, 2913, 5, 76, 0, 0, 2913, 2914, 5, 73, 0, 0, 2914, 2915, 5, 75, 0, 0, 2915, 2916, 5, 69, 0, 0, 2916, 254, 1, 0, 0, 0, 2917, 2918, 5, 83, 0, 0, 2918, 2919, 5, 67, 0, 0, 2919, 2920, 5, 72, 0, 0, 2920, 2921, 5, 69, 0, 0, 2921, 2922, 5, 77, 0, 0, 2922, 2923, 5, 65, 0, 0, 2923, 256, 1, 0, 0, 0, 2924, 2925, 5, 83, 0, 0, 2925, 2926, 5, 67, 0, 0, 2926, 2927, 5, 72, 0, 0, 2927, 2928, 5, 69, 0, 0, 2928, 2929, 5, 77, 0, 0, 2929, 2930, 5, 65, 0, 0, 2930, 2931, 5, 83, 0, 0, 2931, 258, 1, 0, 0, 0, 2932, 2933, 5, 83, 0, 0, 2933, 2934, 5, 69, 0, 0, 2934, 2935, 5, 76, 0, 0, 2935, 2936, 5, 69, 0, 0, 2936, 2937, 5, 67, 0, 0, 2937, 2938, 5, 84, 0, 0, 2938, 260, 1, 0, 0, 0, 2939, 2940, 5, 83, 0, 0, 2940, 2941, 5, 69, 0, 0, 2941, 2942, 5, 84, 0, 0, 2942, 262, 1, 0, 0, 0, 2943, 2944, 5, 83, 0, 0, 2944, 2945, 5, 69, 0, 0, 2945, 2946, 5, 80, 0, 0, 2946, 2947, 5, 65, 0, 0, 2947, 2948, 5, 82, 0, 0, 2948, 2949, 5, 65, 0, 0, 2949, 2950, 5, 84, 0, 0, 2950, 2951, 5, 79, 0, 0, 2951, 2952, 5, 82, 0, 0, 2952, 264, 1, 0, 0, 0, 2953, 2954, 5, 83, 0, 0, 2954, 2955, 5, 72, 0, 0, 2955, 2956, 5, 79, 0, 0, 2956, 2957, 5, 87, 0, 0, 2957, 266, 1, 0, 0, 0, 2958, 2959, 5, 83, 0, 0, 2959, 2960, 5, 80, 0, 0, 2960, 2961, 5, 65, 0, 0, 2961, 2962, 5, 84, 0, 0, 2962, 2963, 5, 73, 0, 0, 2963, 2964, 5, 65, 0, 0, 2964, 2965, 5, 76, 0, 0, 2965, 268, 1, 0, 0, 0, 2966, 2967, 5, 83, 0, 0, 2967, 2968, 5, 81, 0, 0, 2968, 2969, 5, 76, 0, 0, 2969, 270, 1, 0, 0, 0, 2970, 2971, 5, 83, 0, 0, 2971, 2972, 5, 81, 0, 0, 2972, 2973, 5, 76, 0, 0, 2973, 2974, 5, 69, 0, 0, 2974, 2975, 5, 88, 0, 0, 2975, 2976, 5, 67, 0, 0, 2976, 2977, 5, 69, 0, 0, 2977, 2978, 5, 80, 0, 0, 2978, 2979, 5, 84, 0, 0, 2979, 2980, 5, 73, 0, 0, 2980, 2981, 5, 79, 0, 0, 2981, 2982, 5, 78, 0, 0, 2982, 272, 1, 0, 0, 0, 2983, 2984, 5, 83, 0, 0, 2984, 2985, 5, 81, 0, 0, 2985, 2986, 5, 76, 0, 0, 2986, 2987, 5, 83, 0, 0, 2987, 2988, 5, 84, 0, 0, 2988, 2989, 5, 65, 0, 0, 2989, 2990, 5, 84, 0, 0, 2990, 2991, 5, 69, 0, 0, 2991, 274, 1, 0, 0, 0, 2992, 2993, 5, 83, 0, 0, 2993, 2994, 5, 81, 0, 0, 2994, 2995, 5, 76, 0, 0, 2995, 2996, 5, 87, 0, 0, 2996, 2997, 5, 65, 0, 0, 2997, 2998, 5, 82, 0, 0, 2998, 2999, 5, 78, 0, 0, 2999, 3000, 5, 73, 0, 0, 3000, 3001, 5, 78, 0, 0, 3001, 3002, 5, 71, 0, 0, 3002, 276, 1, 0, 0, 0, 3003, 3004, 5, 83, 0, 0, 3004, 3005, 5, 81, 0, 0, 3005, 3006, 5, 76, 0, 0, 3006, 3007, 5, 95, 0, 0, 3007, 3008, 5, 66, 0, 0, 3008, 3009, 5, 73, 0, 0, 3009, 3010, 5, 71, 0, 0, 3010, 3011, 5, 95, 0, 0, 3011, 3012, 5, 82, 0, 0, 3012, 3013, 5, 69, 0, 0, 3013, 3014, 5, 83, 0, 0, 3014, 3015, 5, 85, 0, 0, 3015, 3016, 5, 76, 0, 0, 3016, 3017, 5, 84, 0, 0, 3017, 278, 1, 0, 0, 0, 3018, 3019, 5, 83, 0, 0, 3019, 3020, 5, 81, 0, 0, 3020, 3021, 5, 76, 0, 0, 3021, 3022, 5, 95, 0, 0, 3022, 3023, 5, 67, 0, 0, 3023, 3024, 5, 65, 0, 0, 3024, 3025, 5, 76, 0, 0, 3025, 3026, 5, 67, 0, 0, 3026, 3027, 5, 95, 0, 0, 3027, 3028, 5, 70, 0, 0, 3028, 3029, 5, 79, 0, 0, 3029, 3030, 5, 85, 0, 0, 3030, 3031, 5, 78, 0, 0, 3031, 3032, 5, 68, 0, 0, 3032, 3033, 5, 95, 0, 0, 3033, 3034, 5, 82, 0, 0, 3034, 3035, 5, 79, 0, 0, 3035, 3036, 5, 87, 0, 0, 3036, 3037, 5, 83, 0, 0, 3037, 280, 1, 0, 0, 0, 3038, 3039, 5, 83, 0, 0, 3039, 3040, 5, 81, 0, 0, 3040, 3041, 5, 76, 0, 0, 3041, 3042, 5, 95, 0, 0, 3042, 3043, 5, 83, 0, 0, 3043, 3044, 5, 77, 0, 0, 3044, 3045, 5, 65, 0, 0, 3045, 3046, 5, 76, 0, 0, 3046, 3047, 5, 76, 0, 0, 3047, 3048, 5, 95, 0, 0, 3048, 3049, 5, 82, 0, 0, 3049, 3050, 5, 69, 0, 0, 3050, 3051, 5, 83, 0, 0, 3051, 3052, 5, 85, 0, 0, 3052, 3053, 5, 76, 0, 0, 3053, 3054, 5, 84, 0, 0, 3054, 282, 1, 0, 0, 0, 3055, 3056, 5, 83, 0, 0, 3056, 3057, 5, 83, 0, 0, 3057, 3058, 5, 76, 0, 0, 3058, 284, 1, 0, 0, 0, 3059, 3060, 5, 83, 0, 0, 3060, 3061, 5, 84, 0, 0, 3061, 3062, 5, 65, 0, 0, 3062, 3063, 5, 82, 0, 0, 3063, 3064, 5, 84, 0, 0, 3064, 3065, 5, 73, 0, 0, 3065, 3066, 5, 78, 0, 0, 3066, 3067, 5, 71, 0, 0, 3067, 286, 1, 0, 0, 0, 3068, 3069, 5, 83, 0, 0, 3069, 3070, 5, 84, 0, 0, 3070, 3071, 5, 82, 0, 0, 3071, 3072, 5, 65, 0, 0, 3072, 3073, 5, 73, 0, 0, 3073, 3074, 5, 71, 0, 0, 3074, 3075, 5, 72, 0, 0, 3075, 3076, 5, 84, 0, 0, 3076, 3077, 5, 95, 0, 0, 3077, 3078, 5, 74, 0, 0, 3078, 3079, 5, 79, 0, 0, 3079, 3080, 5, 73, 0, 0, 3080, 3081, 5, 78, 0, 0, 3081, 288, 1, 0, 0, 0, 3082, 3083, 5, 84, 0, 0, 3083, 3084, 5, 65, 0, 0, 3084, 3085, 5, 66, 0, 0, 3085, 3086, 5, 76, 0, 0, 3086, 3087, 5, 69, 0, 0, 3087, 290, 1, 0, 0, 0, 3088, 3089, 5, 84, 0, 0, 3089, 3090, 5, 69, 0, 0, 3090, 3091, 5, 82, 0, 0, 3091, 3092, 5, 77, 0, 0, 3092, 3093, 5, 73, 0, 0, 3093, 3094, 5, 78, 0, 0, 3094, 3095, 5, 65, 0, 0, 3095, 3096, 5, 84, 0, 0, 3096, 3097, 5, 69, 0, 0, 3097, 3098, 5, 68, 0, 0, 3098, 292, 1, 0, 0, 0, 3099, 3100, 5, 84, 0, 0, 3100, 3101, 5, 72, 0, 0, 3101, 3102, 5, 69, 0, 0, 3102, 3103, 5, 78, 0, 0, 3103, 294, 1, 0, 0, 0, 3104, 3105, 5, 84, 0, 0, 3105, 3106, 5, 79, 0, 0, 3106, 296, 1, 0, 0, 0, 3107, 3108, 5, 84, 0, 0, 3108, 3109, 5, 82, 0, 0, 3109, 3110, 5, 65, 0, 0, 3110, 3111, 5, 73, 0, 0, 3111, 3112, 5, 76, 0, 0, 3112, 3113, 5, 73, 0, 0, 3113, 3114, 5, 78, 0, 0, 3114, 3115, 5, 71, 0, 0, 3115, 298, 1, 0, 0, 0, 3116, 3117, 5, 84, 0, 0, 3117, 3118, 5, 82, 0, 0, 3118, 3119, 5, 73, 0, 0, 3119, 3120, 5, 71, 0, 0, 3120, 3121, 5, 71, 0, 0, 3121, 3122, 5, 69, 0, 0, 3122, 3123, 5, 82, 0, 0, 3123, 300, 1, 0, 0, 0, 3124, 3125, 5, 84, 0, 0, 3125, 3126, 5, 82, 0, 0, 3126, 3127, 5, 85, 0, 0, 3127, 3128, 5, 69, 0, 0, 3128, 302, 1, 0, 0, 0, 3129, 3130, 5, 85, 0, 0, 3130, 3131, 5, 78, 0, 0, 3131, 3132, 5, 68, 0, 0, 3132, 3133, 5, 79, 0, 0, 3133, 304, 1, 0, 0, 0, 3134, 3135, 5, 85, 0, 0, 3135, 3136, 5, 78, 0, 0, 3136, 3137, 5, 73, 0, 0, 3137, 3138, 5, 79, 0, 0, 3138, 3139, 5, 78, 0, 0, 3139, 306, 1, 0, 0, 0, 3140, 3141, 5, 85, 0, 0, 3141, 3142, 5, 78, 0, 0, 3142, 3143, 5, 73, 0, 0, 3143, 3144, 5, 81, 0, 0, 3144, 3145, 5, 85, 0, 0, 3145, 3146, 5, 69, 0, 0, 3146, 308, 1, 0, 0, 0, 3147, 3148, 5, 85, 0, 0, 3148, 3149, 5, 78, 0, 0, 3149, 3150, 5, 76, 0, 0, 3150, 3151, 5, 79, 0, 0, 3151, 3152, 5, 67, 0, 0, 3152, 3153, 5, 75, 0, 0, 3153, 310, 1, 0, 0, 0, 3154, 3155, 5, 85, 0, 0, 3155, 3156, 5, 78, 0, 0, 3156, 3157, 5, 83, 0, 0, 3157, 3158, 5, 73, 0, 0, 3158, 3159, 5, 71, 0, 0, 3159, 3160, 5, 78, 0, 0, 3160, 3161, 5, 69, 0, 0, 3161, 3162, 5, 68, 0, 0, 3162, 312, 1, 0, 0, 0, 3163, 3164, 5, 85, 0, 0, 3164, 3165, 5, 80, 0, 0, 3165, 3166, 5, 68, 0, 0, 3166, 3167, 5, 65, 0, 0, 3167, 3168, 5, 84, 0, 0, 3168, 3169, 5, 69, 0, 0, 3169, 314, 1, 0, 0, 0, 3170, 3171, 5, 85, 0, 0, 3171, 3172, 5, 83, 0, 0, 3172, 3173, 5, 65, 0, 0, 3173, 3174, 5, 71, 0, 0, 3174, 3175, 5, 69, 0, 0, 3175, 316, 1, 0, 0, 0, 3176, 3177, 5, 85, 0, 0, 3177, 3178, 5, 83, 0, 0, 3178, 3179, 5, 69, 0, 0, 3179, 318, 1, 0, 0, 0, 3180, 3181, 5, 85, 0, 0, 3181, 3182, 5, 83, 0, 0, 3182, 3183, 5, 73, 0, 0, 3183, 3184, 5, 78, 0, 0, 3184, 3185, 5, 71, 0, 0, 3185, 320, 1, 0, 0, 0, 3186, 3187, 5, 86, 0, 0, 3187, 3188, 5, 65, 0, 0, 3188, 3189, 5, 76, 0, 0, 3189, 3190, 5, 85, 0, 0, 3190, 3191, 5, 69, 0, 0, 3191, 3192, 5, 83, 0, 0, 3192, 322, 1, 0, 0, 0, 3193, 3194, 5, 87, 0, 0, 3194, 3195, 5, 72, 0, 0, 3195, 3196, 5, 69, 0, 0, 3196, 3197, 5, 78, 0, 0, 3197, 324, 1, 0, 0, 0, 3198, 3199, 5, 87, 0, 0, 3199, 3200, 5, 72, 0, 0, 3200, 3201, 5, 69, 0, 0, 3201, 3202, 5, 82, 0, 0, 3202, 3203, 5, 69, 0, 0, 3203, 326, 1, 0, 0, 0, 3204, 3205, 5, 87, 0, 0, 3205, 3206, 5, 72, 0, 0, 3206, 3207, 5, 73, 0, 0, 3207, 3208, 5, 76, 0, 0, 3208, 3209, 5, 69, 0, 0, 3209, 328, 1, 0, 0, 0, 3210, 3211, 5, 87, 0, 0, 3211, 3212, 5, 73, 0, 0, 3212, 3213, 5, 84, 0, 0, 3213, 3214, 5, 72, 0, 0, 3214, 330, 1, 0, 0, 0, 3215, 3216, 5, 87, 0, 0, 3216, 3217, 5, 82, 0, 0, 3217, 3218, 5, 73, 0, 0, 3218, 3219, 5, 84, 0, 0, 3219, 3220, 5, 69, 0, 0, 3220, 332, 1, 0, 0, 0, 3221, 3222, 5, 88, 0, 0, 3222, 3223, 5, 79, 0, 0, 3223, 3224, 5, 82, 0, 0, 3224, 334, 1, 0, 0, 0, 3225, 3226, 5, 90, 0, 0, 3226, 3227, 5, 69, 0, 0, 3227, 3228, 5, 82, 0, 0, 3228, 3229, 5, 79, 0, 0, 3229, 3230, 5, 70, 0, 0, 3230, 3231, 5, 73, 0, 0, 3231, 3232, 5, 76, 0, 0, 3232, 3233, 5, 76, 0, 0, 3233, 336, 1, 0, 0, 0, 3234, 3235, 5, 84, 0, 0, 3235, 3236, 5, 73, 0, 0, 3236, 3237, 5, 78, 0, 0, 3237, 3238, 5, 89, 0, 0, 3238, 3239, 5, 73, 0, 0, 3239, 3240, 5, 78, 0, 0, 3240, 3241, 5, 84, 0, 0, 3241, 338, 1, 0, 0, 0, 3242, 3243, 5, 83, 0, 0, 3243, 3244, 5, 77, 0, 0, 3244, 3245, 5, 65, 0, 0, 3245, 3246, 5, 76, 0, 0, 3246, 3247, 5, 76, 0, 0, 3247, 3248, 5, 73, 0, 0, 3248, 3249, 5, 78, 0, 0, 3249, 3250, 5, 84, 0, 0, 3250, 340, 1, 0, 0, 0, 3251, 3252, 5, 77, 0, 0, 3252, 3253, 5, 69, 0, 0, 3253, 3254, 5, 68, 0, 0, 3254, 3255, 5, 73, 0, 0, 3255, 3256, 5, 85, 0, 0, 3256, 3257, 5, 77, 0, 0, 3257, 3258, 5, 73, 0, 0, 3258, 3259, 5, 78, 0, 0, 3259, 3260, 5, 84, 0, 0, 3260, 342, 1, 0, 0, 0, 3261, 3262, 5, 73, 0, 0, 3262, 3263, 5, 78, 0, 0, 3263, 3264, 5, 84, 0, 0, 3264, 344, 1, 0, 0, 0, 3265, 3266, 5, 73, 0, 0, 3266, 3267, 5, 78, 0, 0, 3267, 3268, 5, 84, 0, 0, 3268, 3269, 5, 69, 0, 0, 3269, 3270, 5, 71, 0, 0, 3270, 3271, 5, 69, 0, 0, 3271, 3272, 5, 82, 0, 0, 3272, 346, 1, 0, 0, 0, 3273, 3274, 5, 66, 0, 0, 3274, 3275, 5, 73, 0, 0, 3275, 3276, 5, 71, 0, 0, 3276, 3277, 5, 73, 0, 0, 3277, 3278, 5, 78, 0, 0, 3278, 3279, 5, 84, 0, 0, 3279, 348, 1, 0, 0, 0, 3280, 3281, 5, 82, 0, 0, 3281, 3282, 5, 69, 0, 0, 3282, 3283, 5, 65, 0, 0, 3283, 3284, 5, 76, 0, 0, 3284, 350, 1, 0, 0, 0, 3285, 3286, 5, 68, 0, 0, 3286, 3287, 5, 79, 0, 0, 3287, 3288, 5, 85, 0, 0, 3288, 3289, 5, 66, 0, 0, 3289, 3290, 5, 76, 0, 0, 3290, 3291, 5, 69, 0, 0, 3291, 352, 1, 0, 0, 0, 3292, 3293, 5, 70, 0, 0, 3293, 3294, 5, 76, 0, 0, 3294, 3295, 5, 79, 0, 0, 3295, 3296, 5, 65, 0, 0, 3296, 3297, 5, 84, 0, 0, 3297, 354, 1, 0, 0, 0, 3298, 3299, 5, 68, 0, 0, 3299, 3300, 5, 69, 0, 0, 3300, 3301, 5, 67, 0, 0, 3301, 3302, 5, 73, 0, 0, 3302, 3303, 5, 77, 0, 0, 3303, 3304, 5, 65, 0, 0, 3304, 3305, 5, 76, 0, 0, 3305, 356, 1, 0, 0, 0, 3306, 3307, 5, 78, 0, 0, 3307, 3308, 5, 85, 0, 0, 3308, 3309, 5, 77, 0, 0, 3309, 3310, 5, 69, 0, 0, 3310, 3311, 5, 82, 0, 0, 3311, 3312, 5, 73, 0, 0, 3312, 3313, 5, 67, 0, 0, 3313, 358, 1, 0, 0, 0, 3314, 3315, 5, 68, 0, 0, 3315, 3316, 5, 65, 0, 0, 3316, 3317, 5, 84, 0, 0, 3317, 3318, 5, 69, 0, 0, 3318, 360, 1, 0, 0, 0, 3319, 3320, 5, 84, 0, 0, 3320, 3321, 5, 73, 0, 0, 3321, 3322, 5, 77, 0, 0, 3322, 3323, 5, 69, 0, 0, 3323, 362, 1, 0, 0, 0, 3324, 3325, 5, 84, 0, 0, 3325, 3326, 5, 73, 0, 0, 3326, 3327, 5, 77, 0, 0, 3327, 3328, 5, 69, 0, 0, 3328, 3329, 5, 83, 0, 0, 3329, 3330, 5, 84, 0, 0, 3330, 3331, 5, 65, 0, 0, 3331, 3332, 5, 77, 0, 0, 3332, 3333, 5, 80, 0, 0, 3333, 364, 1, 0, 0, 0, 3334, 3335, 5, 68, 0, 0, 3335, 3336, 5, 65, 0, 0, 3336, 3337, 5, 84, 0, 0, 3337, 3338, 5, 69, 0, 0, 3338, 3339, 5, 84, 0, 0, 3339, 3340, 5, 73, 0, 0, 3340, 3341, 5, 77, 0, 0, 3341, 3342, 5, 69, 0, 0, 3342, 366, 1, 0, 0, 0, 3343, 3344, 5, 89, 0, 0, 3344, 3345, 5, 69, 0, 0, 3345, 3346, 5, 65, 0, 0, 3346, 3347, 5, 82, 0, 0, 3347, 368, 1, 0, 0, 0, 3348, 3349, 5, 67, 0, 0, 3349, 3350, 5, 72, 0, 0, 3350, 3351, 5, 65, 0, 0, 3351, 3352, 5, 82, 0, 0, 3352, 370, 1, 0, 0, 0, 3353, 3354, 5, 86, 0, 0, 3354, 3355, 5, 65, 0, 0, 3355, 3356, 5, 82, 0, 0, 3356, 3357, 5, 67, 0, 0, 3357, 3358, 5, 72, 0, 0, 3358, 3359, 5, 65, 0, 0, 3359, 3360, 5, 82, 0, 0, 3360, 372, 1, 0, 0, 0, 3361, 3362, 5, 66, 0, 0, 3362, 3363, 5, 73, 0, 0, 3363, 3364, 5, 78, 0, 0, 3364, 3365, 5, 65, 0, 0, 3365, 3366, 5, 82, 0, 0, 3366, 3367, 5, 89, 0, 0, 3367, 374, 1, 0, 0, 0, 3368, 3369, 5, 86, 0, 0, 3369, 3370, 5, 65, 0, 0, 3370, 3371, 5, 82, 0, 0, 3371, 3372, 5, 66, 0, 0, 3372, 3373, 5, 73, 0, 0, 3373, 3374, 5, 78, 0, 0, 3374, 3375, 5, 65, 0, 0, 3375, 3376, 5, 82, 0, 0, 3376, 3377, 5, 89, 0, 0, 3377, 376, 1, 0, 0, 0, 3378, 3379, 5, 84, 0, 0, 3379, 3380, 5, 73, 0, 0, 3380, 3381, 5, 78, 0, 0, 3381, 3382, 5, 89, 0, 0, 3382, 3383, 5, 66, 0, 0, 3383, 3384, 5, 76, 0, 0, 3384, 3385, 5, 79, 0, 0, 3385, 3386, 5, 66, 0, 0, 3386, 378, 1, 0, 0, 0, 3387, 3388, 5, 66, 0, 0, 3388, 3389, 5, 76, 0, 0, 3389, 3390, 5, 79, 0, 0, 3390, 3391, 5, 66, 0, 0, 3391, 380, 1, 0, 0, 0, 3392, 3393, 5, 77, 0, 0, 3393, 3394, 5, 69, 0, 0, 3394, 3395, 5, 68, 0, 0, 3395, 3396, 5, 73, 0, 0, 3396, 3397, 5, 85, 0, 0, 3397, 3398, 5, 77, 0, 0, 3398, 3399, 5, 66, 0, 0, 3399, 3400, 5, 76, 0, 0, 3400, 3401, 5, 79, 0, 0, 3401, 3402, 5, 66, 0, 0, 3402, 382, 1, 0, 0, 0, 3403, 3404, 5, 76, 0, 0, 3404, 3405, 5, 79, 0, 0, 3405, 3406, 5, 78, 0, 0, 3406, 3407, 5, 71, 0, 0, 3407, 3408, 5, 66, 0, 0, 3408, 3409, 5, 76, 0, 0, 3409, 3410, 5, 79, 0, 0, 3410, 3411, 5, 66, 0, 0, 3411, 384, 1, 0, 0, 0, 3412, 3413, 5, 84, 0, 0, 3413, 3414, 5, 73, 0, 0, 3414, 3415, 5, 78, 0, 0, 3415, 3416, 5, 89, 0, 0, 3416, 3417, 5, 84, 0, 0, 3417, 3418, 5, 69, 0, 0, 3418, 3419, 5, 88, 0, 0, 3419, 3420, 5, 84, 0, 0, 3420, 386, 1, 0, 0, 0, 3421, 3422, 5, 84, 0, 0, 3422, 3423, 5, 69, 0, 0, 3423, 3424, 5, 88, 0, 0, 3424, 3425, 5, 84, 0, 0, 3425, 388, 1, 0, 0, 0, 3426, 3427, 5, 77, 0, 0, 3427, 3428, 5, 69, 0, 0, 3428, 3429, 5, 68, 0, 0, 3429, 3430, 5, 73, 0, 0, 3430, 3431, 5, 85, 0, 0, 3431, 3432, 5, 77, 0, 0, 3432, 3433, 5, 84, 0, 0, 3433, 3434, 5, 69, 0, 0, 3434, 3435, 5, 88, 0, 0, 3435, 3436, 5, 84, 0, 0, 3436, 390, 1, 0, 0, 0, 3437, 3438, 5, 76, 0, 0, 3438, 3439, 5, 79, 0, 0, 3439, 3440, 5, 78, 0, 0, 3440, 3441, 5, 71, 0, 0, 3441, 3442, 5, 84, 0, 0, 3442, 3443, 5, 69, 0, 0, 3443, 3444, 5, 88, 0, 0, 3444, 3445, 5, 84, 0, 0, 3445, 392, 1, 0, 0, 0, 3446, 3447, 5, 69, 0, 0, 3447, 3448, 5, 78, 0, 0, 3448, 3449, 5, 85, 0, 0, 3449, 3450, 5, 77, 0, 0, 3450, 394, 1, 0, 0, 0, 3451, 3452, 5, 89, 0, 0, 3452, 3453, 5, 69, 0, 0, 3453, 3454, 5, 65, 0, 0, 3454, 3455, 5, 82, 0, 0, 3455, 3456, 5, 95, 0, 0, 3456, 3457, 5, 77, 0, 0, 3457, 3458, 5, 79, 0, 0, 3458, 3459, 5, 78, 0, 0, 3459, 3460, 5, 84, 0, 0, 3460, 3461, 5, 72, 0, 0, 3461, 396, 1, 0, 0, 0, 3462, 3463, 5, 68, 0, 0, 3463, 3464, 5, 65, 0, 0, 3464, 3465, 5, 89, 0, 0, 3465, 3466, 5, 95, 0, 0, 3466, 3467, 5, 72, 0, 0, 3467, 3468, 5, 79, 0, 0, 3468, 3469, 5, 85, 0, 0, 3469, 3470, 5, 82, 0, 0, 3470, 398, 1, 0, 0, 0, 3471, 3472, 5, 68, 0, 0, 3472, 3473, 5, 65, 0, 0, 3473, 3474, 5, 89, 0, 0, 3474, 3475, 5, 95, 0, 0, 3475, 3476, 5, 77, 0, 0, 3476, 3477, 5, 73, 0, 0, 3477, 3478, 5, 78, 0, 0, 3478, 3479, 5, 85, 0, 0, 3479, 3480, 5, 84, 0, 0, 3480, 3481, 5, 69, 0, 0, 3481, 400, 1, 0, 0, 0, 3482, 3483, 5, 68, 0, 0, 3483, 3484, 5, 65, 0, 0, 3484, 3485, 5, 89, 0, 0, 3485, 3486, 5, 95, 0, 0, 3486, 3487, 5, 83, 0, 0, 3487, 3488, 5, 69, 0, 0, 3488, 3489, 5, 67, 0, 0, 3489, 3490, 5, 79, 0, 0, 3490, 3491, 5, 78, 0, 0, 3491, 3492, 5, 68, 0, 0, 3492, 402, 1, 0, 0, 0, 3493, 3494, 5, 72, 0, 0, 3494, 3495, 5, 79, 0, 0, 3495, 3496, 5, 85, 0, 0, 3496, 3497, 5, 82, 0, 0, 3497, 3498, 5, 95, 0, 0, 3498, 3499, 5, 77, 0, 0, 3499, 3500, 5, 73, 0, 0, 3500, 3501, 5, 78, 0, 0, 3501, 3502, 5, 85, 0, 0, 3502, 3503, 5, 84, 0, 0, 3503, 3504, 5, 69, 0, 0, 3504, 404, 1, 0, 0, 0, 3505, 3506, 5, 72, 0, 0, 3506, 3507, 5, 79, 0, 0, 3507, 3508, 5, 85, 0, 0, 3508, 3509, 5, 82, 0, 0, 3509, 3510, 5, 95, 0, 0, 3510, 3511, 5, 83, 0, 0, 3511, 3512, 5, 69, 0, 0, 3512, 3513, 5, 67, 0, 0, 3513, 3514, 5, 79, 0, 0, 3514, 3515, 5, 78, 0, 0, 3515, 3516, 5, 68, 0, 0, 3516, 406, 1, 0, 0, 0, 3517, 3518, 5, 77, 0, 0, 3518, 3519, 5, 73, 0, 0, 3519, 3520, 5, 78, 0, 0, 3520, 3521, 5, 85, 0, 0, 3521, 3522, 5, 84, 0, 0, 3522, 3523, 5, 69, 0, 0, 3523, 3524, 5, 95, 0, 0, 3524, 3525, 5, 83, 0, 0, 3525, 3526, 5, 69, 0, 0, 3526, 3527, 5, 67, 0, 0, 3527, 3528, 5, 79, 0, 0, 3528, 3529, 5, 78, 0, 0, 3529, 3530, 5, 68, 0, 0, 3530, 408, 1, 0, 0, 0, 3531, 3532, 5, 83, 0, 0, 3532, 3533, 5, 69, 0, 0, 3533, 3534, 5, 67, 0, 0, 3534, 3535, 5, 79, 0, 0, 3535, 3536, 5, 78, 0, 0, 3536, 3537, 5, 68, 0, 0, 3537, 3538, 5, 95, 0, 0, 3538, 3539, 5, 77, 0, 0, 3539, 3540, 5, 73, 0, 0, 3540, 3541, 5, 67, 0, 0, 3541, 3542, 5, 82, 0, 0, 3542, 3543, 5, 79, 0, 0, 3543, 3544, 5, 83, 0, 0, 3544, 3545, 5, 69, 0, 0, 3545, 3546, 5, 67, 0, 0, 3546, 3547, 5, 79, 0, 0, 3547, 3548, 5, 78, 0, 0, 3548, 3549, 5, 68, 0, 0, 3549, 410, 1, 0, 0, 0, 3550, 3551, 5, 77, 0, 0, 3551, 3552, 5, 73, 0, 0, 3552, 3553, 5, 78, 0, 0, 3553, 3554, 5, 85, 0, 0, 3554, 3555, 5, 84, 0, 0, 3555, 3556, 5, 69, 0, 0, 3556, 3557, 5, 95, 0, 0, 3557, 3558, 5, 77, 0, 0, 3558, 3559, 5, 73, 0, 0, 3559, 3560, 5, 67, 0, 0, 3560, 3561, 5, 82, 0, 0, 3561, 3562, 5, 79, 0, 0, 3562, 3563, 5, 83, 0, 0, 3563, 3564, 5, 69, 0, 0, 3564, 3565, 5, 67, 0, 0, 3565, 3566, 5, 79, 0, 0, 3566, 3567, 5, 78, 0, 0, 3567, 3568, 5, 68, 0, 0, 3568, 412, 1, 0, 0, 0, 3569, 3570, 5, 72, 0, 0, 3570, 3571, 5, 79, 0, 0, 3571, 3572, 5, 85, 0, 0, 3572, 3573, 5, 82, 0, 0, 3573, 3574, 5, 95, 0, 0, 3574, 3575, 5, 77, 0, 0, 3575, 3576, 5, 73, 0, 0, 3576, 3577, 5, 67, 0, 0, 3577, 3578, 5, 82, 0, 0, 3578, 3579, 5, 79, 0, 0, 3579, 3580, 5, 83, 0, 0, 3580, 3581, 5, 69, 0, 0, 3581, 3582, 5, 67, 0, 0, 3582, 3583, 5, 79, 0, 0, 3583, 3584, 5, 78, 0, 0, 3584, 3585, 5, 68, 0, 0, 3585, 414, 1, 0, 0, 0, 3586, 3587, 5, 68, 0, 0, 3587, 3588, 5, 65, 0, 0, 3588, 3589, 5, 89, 0, 0, 3589, 3590, 5, 95, 0, 0, 3590, 3591, 5, 77, 0, 0, 3591, 3592, 5, 73, 0, 0, 3592, 3593, 5, 67, 0, 0, 3593, 3594, 5, 82, 0, 0, 3594, 3595, 5, 79, 0, 0, 3595, 3596, 5, 83, 0, 0, 3596, 3597, 5, 69, 0, 0, 3597, 3598, 5, 67, 0, 0, 3598, 3599, 5, 79, 0, 0, 3599, 3600, 5, 78, 0, 0, 3600, 3601, 5, 68, 0, 0, 3601, 416, 1, 0, 0, 0, 3602, 3603, 5, 65, 0, 0, 3603, 3604, 5, 86, 0, 0, 3604, 3605, 5, 71, 0, 0, 3605, 418, 1, 0, 0, 0, 3606, 3607, 5, 66, 0, 0, 3607, 3608, 5, 73, 0, 0, 3608, 3609, 5, 84, 0, 0, 3609, 3610, 5, 95, 0, 0, 3610, 3611, 5, 65, 0, 0, 3611, 3612, 5, 78, 0, 0, 3612, 3613, 5, 68, 0, 0, 3613, 420, 1, 0, 0, 0, 3614, 3615, 5, 66, 0, 0, 3615, 3616, 5, 73, 0, 0, 3616, 3617, 5, 84, 0, 0, 3617, 3618, 5, 95, 0, 0, 3618, 3619, 5, 79, 0, 0, 3619, 3620, 5, 82, 0, 0, 3620, 422, 1, 0, 0, 0, 3621, 3622, 5, 66, 0, 0, 3622, 3623, 5, 73, 0, 0, 3623, 3624, 5, 84, 0, 0, 3624, 3625, 5, 95, 0, 0, 3625, 3626, 5, 88, 0, 0, 3626, 3627, 5, 79, 0, 0, 3627, 3628, 5, 82, 0, 0, 3628, 424, 1, 0, 0, 0, 3629, 3630, 5, 67, 0, 0, 3630, 3631, 5, 79, 0, 0, 3631, 3632, 5, 85, 0, 0, 3632, 3633, 5, 78, 0, 0, 3633, 3634, 5, 84, 0, 0, 3634, 426, 1, 0, 0, 0, 3635, 3636, 5, 71, 0, 0, 3636, 3637, 5, 82, 0, 0, 3637, 3638, 5, 79, 0, 0, 3638, 3639, 5, 85, 0, 0, 3639, 3640, 5, 80, 0, 0, 3640, 3641, 5, 95, 0, 0, 3641, 3642, 5, 67, 0, 0, 3642, 3643, 5, 79, 0, 0, 3643, 3644, 5, 78, 0, 0, 3644, 3645, 5, 67, 0, 0, 3645, 3646, 5, 65, 0, 0, 3646, 3647, 5, 84, 0, 0, 3647, 428, 1, 0, 0, 0, 3648, 3649, 5, 77, 0, 0, 3649, 3650, 5, 65, 0, 0, 3650, 3651, 5, 88, 0, 0, 3651, 430, 1, 0, 0, 0, 3652, 3653, 5, 77, 0, 0, 3653, 3654, 5, 73, 0, 0, 3654, 3655, 5, 78, 0, 0, 3655, 432, 1, 0, 0, 0, 3656, 3657, 5, 83, 0, 0, 3657, 3658, 5, 84, 0, 0, 3658, 3659, 5, 68, 0, 0, 3659, 434, 1, 0, 0, 0, 3660, 3661, 5, 83, 0, 0, 3661, 3662, 5, 84, 0, 0, 3662, 3663, 5, 68, 0, 0, 3663, 3664, 5, 68, 0, 0, 3664, 3665, 5, 69, 0, 0, 3665, 3666, 5, 86, 0, 0, 3666, 436, 1, 0, 0, 0, 3667, 3668, 5, 83, 0, 0, 3668, 3669, 5, 84, 0, 0, 3669, 3670, 5, 68, 0, 0, 3670, 3671, 5, 68, 0, 0, 3671, 3672, 5, 69, 0, 0, 3672, 3673, 5, 86, 0, 0, 3673, 3674, 5, 95, 0, 0, 3674, 3675, 5, 80, 0, 0, 3675, 3676, 5, 79, 0, 0, 3676, 3677, 5, 80, 0, 0, 3677, 438, 1, 0, 0, 0, 3678, 3679, 5, 83, 0, 0, 3679, 3680, 5, 84, 0, 0, 3680, 3681, 5, 68, 0, 0, 3681, 3682, 5, 68, 0, 0, 3682, 3683, 5, 69, 0, 0, 3683, 3684, 5, 86, 0, 0, 3684, 3685, 5, 95, 0, 0, 3685, 3686, 5, 83, 0, 0, 3686, 3687, 5, 65, 0, 0, 3687, 3688, 5, 77, 0, 0, 3688, 3689, 5, 80, 0, 0, 3689, 440, 1, 0, 0, 0, 3690, 3691, 5, 83, 0, 0, 3691, 3692, 5, 85, 0, 0, 3692, 3693, 5, 77, 0, 0, 3693, 442, 1, 0, 0, 0, 3694, 3695, 5, 86, 0, 0, 3695, 3696, 5, 65, 0, 0, 3696, 3697, 5, 82, 0, 0, 3697, 3698, 5, 95, 0, 0, 3698, 3699, 5, 80, 0, 0, 3699, 3700, 5, 79, 0, 0, 3700, 3701, 5, 80, 0, 0, 3701, 444, 1, 0, 0, 0, 3702, 3703, 5, 86, 0, 0, 3703, 3704, 5, 65, 0, 0, 3704, 3705, 5, 82, 0, 0, 3705, 3706, 5, 95, 0, 0, 3706, 3707, 5, 83, 0, 0, 3707, 3708, 5, 65, 0, 0, 3708, 3709, 5, 77, 0, 0, 3709, 3710, 5, 80, 0, 0, 3710, 446, 1, 0, 0, 0, 3711, 3712, 5, 86, 0, 0, 3712, 3713, 5, 65, 0, 0, 3713, 3714, 5, 82, 0, 0, 3714, 3715, 5, 73, 0, 0, 3715, 3716, 5, 65, 0, 0, 3716, 3717, 5, 78, 0, 0, 3717, 3718, 5, 67, 0, 0, 3718, 3719, 5, 69, 0, 0, 3719, 448, 1, 0, 0, 0, 3720, 3721, 5, 67, 0, 0, 3721, 3722, 5, 85, 0, 0, 3722, 3723, 5, 82, 0, 0, 3723, 3724, 5, 82, 0, 0, 3724, 3725, 5, 69, 0, 0, 3725, 3726, 5, 78, 0, 0, 3726, 3727, 5, 84, 0, 0, 3727, 3728, 5, 95, 0, 0, 3728, 3729, 5, 68, 0, 0, 3729, 3730, 5, 65, 0, 0, 3730, 3731, 5, 84, 0, 0, 3731, 3732, 5, 69, 0, 0, 3732, 450, 1, 0, 0, 0, 3733, 3734, 5, 67, 0, 0, 3734, 3735, 5, 85, 0, 0, 3735, 3736, 5, 82, 0, 0, 3736, 3737, 5, 82, 0, 0, 3737, 3738, 5, 69, 0, 0, 3738, 3739, 5, 78, 0, 0, 3739, 3740, 5, 84, 0, 0, 3740, 3741, 5, 95, 0, 0, 3741, 3742, 5, 84, 0, 0, 3742, 3743, 5, 73, 0, 0, 3743, 3744, 5, 77, 0, 0, 3744, 3745, 5, 69, 0, 0, 3745, 452, 1, 0, 0, 0, 3746, 3747, 5, 67, 0, 0, 3747, 3748, 5, 85, 0, 0, 3748, 3749, 5, 82, 0, 0, 3749, 3750, 5, 82, 0, 0, 3750, 3751, 5, 69, 0, 0, 3751, 3752, 5, 78, 0, 0, 3752, 3753, 5, 84, 0, 0, 3753, 3754, 5, 95, 0, 0, 3754, 3755, 5, 84, 0, 0, 3755, 3756, 5, 73, 0, 0, 3756, 3757, 5, 77, 0, 0, 3757, 3758, 5, 69, 0, 0, 3758, 3759, 5, 83, 0, 0, 3759, 3760, 5, 84, 0, 0, 3760, 3761, 5, 65, 0, 0, 3761, 3762, 5, 77, 0, 0, 3762, 3763, 5, 80, 0, 0, 3763, 454, 1, 0, 0, 0, 3764, 3765, 5, 76, 0, 0, 3765, 3766, 5, 79, 0, 0, 3766, 3767, 5, 67, 0, 0, 3767, 3768, 5, 65, 0, 0, 3768, 3769, 5, 76, 0, 0, 3769, 3770, 5, 84, 0, 0, 3770, 3771, 5, 73, 0, 0, 3771, 3772, 5, 77, 0, 0, 3772, 3773, 5, 69, 0, 0, 3773, 456, 1, 0, 0, 0, 3774, 3775, 5, 67, 0, 0, 3775, 3776, 5, 85, 0, 0, 3776, 3777, 5, 82, 0, 0, 3777, 3778, 5, 68, 0, 0, 3778, 3779, 5, 65, 0, 0, 3779, 3780, 5, 84, 0, 0, 3780, 3781, 5, 69, 0, 0, 3781, 458, 1, 0, 0, 0, 3782, 3783, 5, 67, 0, 0, 3783, 3784, 5, 85, 0, 0, 3784, 3785, 5, 82, 0, 0, 3785, 3786, 5, 84, 0, 0, 3786, 3787, 5, 73, 0, 0, 3787, 3788, 5, 77, 0, 0, 3788, 3789, 5, 69, 0, 0, 3789, 460, 1, 0, 0, 0, 3790, 3791, 5, 68, 0, 0, 3791, 3792, 5, 65, 0, 0, 3792, 3793, 5, 84, 0, 0, 3793, 3794, 5, 69, 0, 0, 3794, 3795, 5, 95, 0, 0, 3795, 3796, 5, 65, 0, 0, 3796, 3797, 5, 68, 0, 0, 3797, 3798, 5, 68, 0, 0, 3798, 462, 1, 0, 0, 0, 3799, 3800, 5, 68, 0, 0, 3800, 3801, 5, 65, 0, 0, 3801, 3802, 5, 84, 0, 0, 3802, 3803, 5, 69, 0, 0, 3803, 3804, 5, 95, 0, 0, 3804, 3805, 5, 83, 0, 0, 3805, 3806, 5, 85, 0, 0, 3806, 3807, 5, 66, 0, 0, 3807, 464, 1, 0, 0, 0, 3808, 3809, 5, 69, 0, 0, 3809, 3810, 5, 88, 0, 0, 3810, 3811, 5, 84, 0, 0, 3811, 3812, 5, 82, 0, 0, 3812, 3813, 5, 65, 0, 0, 3813, 3814, 5, 67, 0, 0, 3814, 3815, 5, 84, 0, 0, 3815, 466, 1, 0, 0, 0, 3816, 3817, 5, 76, 0, 0, 3817, 3818, 5, 79, 0, 0, 3818, 3819, 5, 67, 0, 0, 3819, 3820, 5, 65, 0, 0, 3820, 3821, 5, 76, 0, 0, 3821, 3822, 5, 84, 0, 0, 3822, 3823, 5, 73, 0, 0, 3823, 3824, 5, 77, 0, 0, 3824, 3825, 5, 69, 0, 0, 3825, 3826, 5, 83, 0, 0, 3826, 3827, 5, 84, 0, 0, 3827, 3828, 5, 65, 0, 0, 3828, 3829, 5, 77, 0, 0, 3829, 3830, 5, 80, 0, 0, 3830, 468, 1, 0, 0, 0, 3831, 3832, 5, 78, 0, 0, 3832, 3833, 5, 79, 0, 0, 3833, 3834, 5, 87, 0, 0, 3834, 470, 1, 0, 0, 0, 3835, 3836, 5, 80, 0, 0, 3836, 3837, 5, 79, 0, 0, 3837, 3838, 5, 83, 0, 0, 3838, 3839, 5, 73, 0, 0, 3839, 3840, 5, 84, 0, 0, 3840, 3841, 5, 73, 0, 0, 3841, 3842, 5, 79, 0, 0, 3842, 3843, 5, 78, 0, 0, 3843, 472, 1, 0, 0, 0, 3844, 3845, 5, 83, 0, 0, 3845, 3846, 5, 85, 0, 0, 3846, 3847, 5, 66, 0, 0, 3847, 3848, 5, 83, 0, 0, 3848, 3849, 5, 84, 0, 0, 3849, 3850, 5, 82, 0, 0, 3850, 474, 1, 0, 0, 0, 3851, 3852, 5, 83, 0, 0, 3852, 3853, 5, 85, 0, 0, 3853, 3854, 5, 66, 0, 0, 3854, 3855, 5, 83, 0, 0, 3855, 3856, 5, 84, 0, 0, 3856, 3857, 5, 82, 0, 0, 3857, 3858, 5, 73, 0, 0, 3858, 3859, 5, 78, 0, 0, 3859, 3860, 5, 71, 0, 0, 3860, 476, 1, 0, 0, 0, 3861, 3862, 5, 83, 0, 0, 3862, 3863, 5, 89, 0, 0, 3863, 3864, 5, 83, 0, 0, 3864, 3865, 5, 68, 0, 0, 3865, 3866, 5, 65, 0, 0, 3866, 3867, 5, 84, 0, 0, 3867, 3868, 5, 69, 0, 0, 3868, 478, 1, 0, 0, 0, 3869, 3870, 5, 84, 0, 0, 3870, 3871, 5, 82, 0, 0, 3871, 3872, 5, 73, 0, 0, 3872, 3873, 5, 77, 0, 0, 3873, 480, 1, 0, 0, 0, 3874, 3875, 5, 85, 0, 0, 3875, 3876, 5, 84, 0, 0, 3876, 3877, 5, 67, 0, 0, 3877, 3878, 5, 95, 0, 0, 3878, 3879, 5, 68, 0, 0, 3879, 3880, 5, 65, 0, 0, 3880, 3881, 5, 84, 0, 0, 3881, 3882, 5, 69, 0, 0, 3882, 482, 1, 0, 0, 0, 3883, 3884, 5, 85, 0, 0, 3884, 3885, 5, 84, 0, 0, 3885, 3886, 5, 67, 0, 0, 3886, 3887, 5, 95, 0, 0, 3887, 3888, 5, 84, 0, 0, 3888, 3889, 5, 73, 0, 0, 3889, 3890, 5, 77, 0, 0, 3890, 3891, 5, 69, 0, 0, 3891, 484, 1, 0, 0, 0, 3892, 3893, 5, 85, 0, 0, 3893, 3894, 5, 84, 0, 0, 3894, 3895, 5, 67, 0, 0, 3895, 3896, 5, 95, 0, 0, 3896, 3897, 5, 84, 0, 0, 3897, 3898, 5, 73, 0, 0, 3898, 3899, 5, 77, 0, 0, 3899, 3900, 5, 69, 0, 0, 3900, 3901, 5, 83, 0, 0, 3901, 3902, 5, 84, 0, 0, 3902, 3903, 5, 65, 0, 0, 3903, 3904, 5, 77, 0, 0, 3904, 3905, 5, 80, 0, 0, 3905, 486, 1, 0, 0, 0, 3906, 3907, 5, 65, 0, 0, 3907, 3908, 5, 67, 0, 0, 3908, 3909, 5, 67, 0, 0, 3909, 3910, 5, 79, 0, 0, 3910, 3911, 5, 85, 0, 0, 3911, 3912, 5, 78, 0, 0, 3912, 3913, 5, 84, 0, 0, 3913, 488, 1, 0, 0, 0, 3914, 3915, 5, 65, 0, 0, 3915, 3916, 5, 67, 0, 0, 3916, 3917, 5, 84, 0, 0, 3917, 3918, 5, 73, 0, 0, 3918, 3919, 5, 79, 0, 0, 3919, 3920, 5, 78, 0, 0, 3920, 490, 1, 0, 0, 0, 3921, 3922, 5, 65, 0, 0, 3922, 3923, 5, 70, 0, 0, 3923, 3924, 5, 84, 0, 0, 3924, 3925, 5, 69, 0, 0, 3925, 3926, 5, 82, 0, 0, 3926, 492, 1, 0, 0, 0, 3927, 3928, 5, 65, 0, 0, 3928, 3929, 5, 71, 0, 0, 3929, 3930, 5, 71, 0, 0, 3930, 3931, 5, 82, 0, 0, 3931, 3932, 5, 69, 0, 0, 3932, 3933, 5, 71, 0, 0, 3933, 3934, 5, 65, 0, 0, 3934, 3935, 5, 84, 0, 0, 3935, 3936, 5, 69, 0, 0, 3936, 494, 1, 0, 0, 0, 3937, 3938, 5, 65, 0, 0, 3938, 3939, 5, 76, 0, 0, 3939, 3940, 5, 71, 0, 0, 3940, 3941, 5, 79, 0, 0, 3941, 3942, 5, 82, 0, 0, 3942, 3943, 5, 73, 0, 0, 3943, 3944, 5, 84, 0, 0, 3944, 3945, 5, 72, 0, 0, 3945, 3946, 5, 77, 0, 0, 3946, 496, 1, 0, 0, 0, 3947, 3948, 5, 65, 0, 0, 3948, 3949, 5, 78, 0, 0, 3949, 3950, 5, 89, 0, 0, 3950, 498, 1, 0, 0, 0, 3951, 3952, 5, 65, 0, 0, 3952, 3953, 5, 84, 0, 0, 3953, 500, 1, 0, 0, 0, 3954, 3955, 5, 65, 0, 0, 3955, 3956, 5, 85, 0, 0, 3956, 3957, 5, 84, 0, 0, 3957, 3958, 5, 72, 0, 0, 3958, 3959, 5, 79, 0, 0, 3959, 3960, 5, 82, 0, 0, 3960, 3961, 5, 83, 0, 0, 3961, 502, 1, 0, 0, 0, 3962, 3963, 5, 65, 0, 0, 3963, 3964, 5, 85, 0, 0, 3964, 3965, 5, 84, 0, 0, 3965, 3966, 5, 79, 0, 0, 3966, 3967, 5, 67, 0, 0, 3967, 3968, 5, 79, 0, 0, 3968, 3969, 5, 77, 0, 0, 3969, 3970, 5, 77, 0, 0, 3970, 3971, 5, 73, 0, 0, 3971, 3972, 5, 84, 0, 0, 3972, 504, 1, 0, 0, 0, 3973, 3974, 5, 65, 0, 0, 3974, 3975, 5, 85, 0, 0, 3975, 3976, 5, 84, 0, 0, 3976, 3977, 5, 79, 0, 0, 3977, 3978, 5, 69, 0, 0, 3978, 3979, 5, 88, 0, 0, 3979, 3980, 5, 84, 0, 0, 3980, 3981, 5, 69, 0, 0, 3981, 3982, 5, 78, 0, 0, 3982, 3983, 5, 68, 0, 0, 3983, 3984, 5, 95, 0, 0, 3984, 3985, 5, 83, 0, 0, 3985, 3986, 5, 73, 0, 0, 3986, 3987, 5, 90, 0, 0, 3987, 3988, 5, 69, 0, 0, 3988, 506, 1, 0, 0, 0, 3989, 3990, 5, 65, 0, 0, 3990, 3991, 5, 85, 0, 0, 3991, 3992, 5, 84, 0, 0, 3992, 3993, 5, 79, 0, 0, 3993, 3994, 5, 95, 0, 0, 3994, 3995, 5, 73, 0, 0, 3995, 3996, 5, 78, 0, 0, 3996, 3997, 5, 67, 0, 0, 3997, 3998, 5, 82, 0, 0, 3998, 3999, 5, 69, 0, 0, 3999, 4000, 5, 77, 0, 0, 4000, 4001, 5, 69, 0, 0, 4001, 4002, 5, 78, 0, 0, 4002, 4003, 5, 84, 0, 0, 4003, 508, 1, 0, 0, 0, 4004, 4005, 5, 65, 0, 0, 4005, 4006, 5, 86, 0, 0, 4006, 4007, 5, 71, 0, 0, 4007, 4008, 5, 95, 0, 0, 4008, 4009, 5, 82, 0, 0, 4009, 4010, 5, 79, 0, 0, 4010, 4011, 5, 87, 0, 0, 4011, 4012, 5, 95, 0, 0, 4012, 4013, 5, 76, 0, 0, 4013, 4014, 5, 69, 0, 0, 4014, 4015, 5, 78, 0, 0, 4015, 4016, 5, 71, 0, 0, 4016, 4017, 5, 84, 0, 0, 4017, 4018, 5, 72, 0, 0, 4018, 510, 1, 0, 0, 0, 4019, 4020, 5, 66, 0, 0, 4020, 4021, 5, 69, 0, 0, 4021, 4022, 5, 71, 0, 0, 4022, 4023, 5, 73, 0, 0, 4023, 4024, 5, 78, 0, 0, 4024, 512, 1, 0, 0, 0, 4025, 4026, 5, 66, 0, 0, 4026, 4027, 5, 73, 0, 0, 4027, 4028, 5, 78, 0, 0, 4028, 4029, 5, 76, 0, 0, 4029, 4030, 5, 79, 0, 0, 4030, 4031, 5, 71, 0, 0, 4031, 514, 1, 0, 0, 0, 4032, 4033, 5, 66, 0, 0, 4033, 4034, 5, 73, 0, 0, 4034, 4035, 5, 84, 0, 0, 4035, 516, 1, 0, 0, 0, 4036, 4037, 5, 66, 0, 0, 4037, 4038, 5, 76, 0, 0, 4038, 4039, 5, 79, 0, 0, 4039, 4040, 5, 67, 0, 0, 4040, 4041, 5, 75, 0, 0, 4041, 518, 1, 0, 0, 0, 4042, 4043, 5, 66, 0, 0, 4043, 4044, 5, 79, 0, 0, 4044, 4045, 5, 79, 0, 0, 4045, 4046, 5, 76, 0, 0, 4046, 520, 1, 0, 0, 0, 4047, 4048, 5, 66, 0, 0, 4048, 4049, 5, 79, 0, 0, 4049, 4050, 5, 79, 0, 0, 4050, 4051, 5, 76, 0, 0, 4051, 4052, 5, 69, 0, 0, 4052, 4053, 5, 65, 0, 0, 4053, 4054, 5, 78, 0, 0, 4054, 522, 1, 0, 0, 0, 4055, 4056, 5, 66, 0, 0, 4056, 4057, 5, 84, 0, 0, 4057, 4058, 5, 82, 0, 0, 4058, 4059, 5, 69, 0, 0, 4059, 4060, 5, 69, 0, 0, 4060, 524, 1, 0, 0, 0, 4061, 4062, 5, 67, 0, 0, 4062, 4063, 5, 65, 0, 0, 4063, 4064, 5, 67, 0, 0, 4064, 4065, 5, 72, 0, 0, 4065, 4066, 5, 69, 0, 0, 4066, 526, 1, 0, 0, 0, 4067, 4068, 5, 67, 0, 0, 4068, 4069, 5, 65, 0, 0, 4069, 4070, 5, 83, 0, 0, 4070, 4071, 5, 67, 0, 0, 4071, 4072, 5, 65, 0, 0, 4072, 4073, 5, 68, 0, 0, 4073, 4074, 5, 69, 0, 0, 4074, 4075, 5, 68, 0, 0, 4075, 528, 1, 0, 0, 0, 4076, 4077, 5, 67, 0, 0, 4077, 4078, 5, 72, 0, 0, 4078, 4079, 5, 65, 0, 0, 4079, 4080, 5, 73, 0, 0, 4080, 4081, 5, 78, 0, 0, 4081, 530, 1, 0, 0, 0, 4082, 4083, 5, 67, 0, 0, 4083, 4084, 5, 72, 0, 0, 4084, 4085, 5, 65, 0, 0, 4085, 4086, 5, 78, 0, 0, 4086, 4087, 5, 71, 0, 0, 4087, 4088, 5, 69, 0, 0, 4088, 4089, 5, 68, 0, 0, 4089, 532, 1, 0, 0, 0, 4090, 4091, 5, 67, 0, 0, 4091, 4092, 5, 72, 0, 0, 4092, 4093, 5, 65, 0, 0, 4093, 4094, 5, 78, 0, 0, 4094, 4095, 5, 78, 0, 0, 4095, 4096, 5, 69, 0, 0, 4096, 4097, 5, 76, 0, 0, 4097, 534, 1, 0, 0, 0, 4098, 4099, 5, 67, 0, 0, 4099, 4100, 5, 72, 0, 0, 4100, 4101, 5, 69, 0, 0, 4101, 4102, 5, 67, 0, 0, 4102, 4103, 5, 75, 0, 0, 4103, 4104, 5, 83, 0, 0, 4104, 4105, 5, 85, 0, 0, 4105, 4106, 5, 77, 0, 0, 4106, 536, 1, 0, 0, 0, 4107, 4108, 5, 67, 0, 0, 4108, 4109, 5, 73, 0, 0, 4109, 4110, 5, 80, 0, 0, 4110, 4111, 5, 72, 0, 0, 4111, 4112, 5, 69, 0, 0, 4112, 4113, 5, 82, 0, 0, 4113, 538, 1, 0, 0, 0, 4114, 4115, 5, 67, 0, 0, 4115, 4116, 5, 76, 0, 0, 4116, 4117, 5, 73, 0, 0, 4117, 4118, 5, 69, 0, 0, 4118, 4119, 5, 78, 0, 0, 4119, 4120, 5, 84, 0, 0, 4120, 540, 1, 0, 0, 0, 4121, 4122, 5, 67, 0, 0, 4122, 4123, 5, 76, 0, 0, 4123, 4124, 5, 79, 0, 0, 4124, 4125, 5, 83, 0, 0, 4125, 4126, 5, 69, 0, 0, 4126, 542, 1, 0, 0, 0, 4127, 4128, 5, 67, 0, 0, 4128, 4129, 5, 79, 0, 0, 4129, 4130, 5, 65, 0, 0, 4130, 4131, 5, 76, 0, 0, 4131, 4132, 5, 69, 0, 0, 4132, 4133, 5, 83, 0, 0, 4133, 4134, 5, 67, 0, 0, 4134, 4135, 5, 69, 0, 0, 4135, 544, 1, 0, 0, 0, 4136, 4137, 5, 67, 0, 0, 4137, 4138, 5, 79, 0, 0, 4138, 4139, 5, 68, 0, 0, 4139, 4140, 5, 69, 0, 0, 4140, 546, 1, 0, 0, 0, 4141, 4142, 5, 67, 0, 0, 4142, 4143, 5, 79, 0, 0, 4143, 4144, 5, 76, 0, 0, 4144, 4145, 5, 85, 0, 0, 4145, 4146, 5, 77, 0, 0, 4146, 4147, 5, 78, 0, 0, 4147, 4148, 5, 83, 0, 0, 4148, 548, 1, 0, 0, 0, 4149, 4150, 5, 67, 0, 0, 4150, 4151, 5, 79, 0, 0, 4151, 4152, 5, 76, 0, 0, 4152, 4153, 5, 85, 0, 0, 4153, 4154, 5, 77, 0, 0, 4154, 4155, 5, 78, 0, 0, 4155, 4156, 5, 95, 0, 0, 4156, 4157, 5, 70, 0, 0, 4157, 4158, 5, 79, 0, 0, 4158, 4159, 5, 82, 0, 0, 4159, 4160, 5, 77, 0, 0, 4160, 4161, 5, 65, 0, 0, 4161, 4162, 5, 84, 0, 0, 4162, 550, 1, 0, 0, 0, 4163, 4164, 5, 67, 0, 0, 4164, 4165, 5, 79, 0, 0, 4165, 4166, 5, 77, 0, 0, 4166, 4167, 5, 77, 0, 0, 4167, 4168, 5, 69, 0, 0, 4168, 4169, 5, 78, 0, 0, 4169, 4170, 5, 84, 0, 0, 4170, 552, 1, 0, 0, 0, 4171, 4172, 5, 67, 0, 0, 4172, 4173, 5, 79, 0, 0, 4173, 4174, 5, 77, 0, 0, 4174, 4175, 5, 77, 0, 0, 4175, 4176, 5, 73, 0, 0, 4176, 4177, 5, 84, 0, 0, 4177, 554, 1, 0, 0, 0, 4178, 4179, 5, 67, 0, 0, 4179, 4180, 5, 79, 0, 0, 4180, 4181, 5, 77, 0, 0, 4181, 4182, 5, 80, 0, 0, 4182, 4183, 5, 65, 0, 0, 4183, 4184, 5, 67, 0, 0, 4184, 4185, 5, 84, 0, 0, 4185, 556, 1, 0, 0, 0, 4186, 4187, 5, 67, 0, 0, 4187, 4188, 5, 79, 0, 0, 4188, 4189, 5, 77, 0, 0, 4189, 4190, 5, 80, 0, 0, 4190, 4191, 5, 76, 0, 0, 4191, 4192, 5, 69, 0, 0, 4192, 4193, 5, 84, 0, 0, 4193, 4194, 5, 73, 0, 0, 4194, 4195, 5, 79, 0, 0, 4195, 4196, 5, 78, 0, 0, 4196, 558, 1, 0, 0, 0, 4197, 4198, 5, 67, 0, 0, 4198, 4199, 5, 79, 0, 0, 4199, 4200, 5, 77, 0, 0, 4200, 4201, 5, 80, 0, 0, 4201, 4202, 5, 82, 0, 0, 4202, 4203, 5, 69, 0, 0, 4203, 4204, 5, 83, 0, 0, 4204, 4205, 5, 83, 0, 0, 4205, 4206, 5, 69, 0, 0, 4206, 4207, 5, 68, 0, 0, 4207, 560, 1, 0, 0, 0, 4208, 4209, 5, 67, 0, 0, 4209, 4210, 5, 79, 0, 0, 4210, 4211, 5, 77, 0, 0, 4211, 4212, 5, 80, 0, 0, 4212, 4213, 5, 82, 0, 0, 4213, 4214, 5, 69, 0, 0, 4214, 4215, 5, 83, 0, 0, 4215, 4216, 5, 83, 0, 0, 4216, 4217, 5, 73, 0, 0, 4217, 4218, 5, 79, 0, 0, 4218, 4219, 5, 78, 0, 0, 4219, 562, 1, 0, 0, 0, 4220, 4221, 5, 67, 0, 0, 4221, 4222, 5, 79, 0, 0, 4222, 4223, 5, 78, 0, 0, 4223, 4224, 5, 67, 0, 0, 4224, 4225, 5, 85, 0, 0, 4225, 4226, 5, 82, 0, 0, 4226, 4227, 5, 82, 0, 0, 4227, 4228, 5, 69, 0, 0, 4228, 4229, 5, 78, 0, 0, 4229, 4230, 5, 84, 0, 0, 4230, 564, 1, 0, 0, 0, 4231, 4232, 5, 67, 0, 0, 4232, 4233, 5, 79, 0, 0, 4233, 4234, 5, 78, 0, 0, 4234, 4235, 5, 78, 0, 0, 4235, 4236, 5, 69, 0, 0, 4236, 4237, 5, 67, 0, 0, 4237, 4238, 5, 84, 0, 0, 4238, 4239, 5, 73, 0, 0, 4239, 4240, 5, 79, 0, 0, 4240, 4241, 5, 78, 0, 0, 4241, 566, 1, 0, 0, 0, 4242, 4243, 5, 67, 0, 0, 4243, 4244, 5, 79, 0, 0, 4244, 4245, 5, 78, 0, 0, 4245, 4246, 5, 83, 0, 0, 4246, 4247, 5, 73, 0, 0, 4247, 4248, 5, 83, 0, 0, 4248, 4249, 5, 84, 0, 0, 4249, 4250, 5, 69, 0, 0, 4250, 4251, 5, 78, 0, 0, 4251, 4252, 5, 84, 0, 0, 4252, 568, 1, 0, 0, 0, 4253, 4254, 5, 67, 0, 0, 4254, 4255, 5, 79, 0, 0, 4255, 4256, 5, 78, 0, 0, 4256, 4257, 5, 84, 0, 0, 4257, 4258, 5, 65, 0, 0, 4258, 4259, 5, 73, 0, 0, 4259, 4260, 5, 78, 0, 0, 4260, 4261, 5, 83, 0, 0, 4261, 570, 1, 0, 0, 0, 4262, 4263, 5, 67, 0, 0, 4263, 4264, 5, 79, 0, 0, 4264, 4265, 5, 78, 0, 0, 4265, 4266, 5, 84, 0, 0, 4266, 4267, 5, 69, 0, 0, 4267, 4268, 5, 88, 0, 0, 4268, 4269, 5, 84, 0, 0, 4269, 572, 1, 0, 0, 0, 4270, 4271, 5, 67, 0, 0, 4271, 4272, 5, 79, 0, 0, 4272, 4273, 5, 78, 0, 0, 4273, 4274, 5, 84, 0, 0, 4274, 4275, 5, 82, 0, 0, 4275, 4276, 5, 73, 0, 0, 4276, 4277, 5, 66, 0, 0, 4277, 4278, 5, 85, 0, 0, 4278, 4279, 5, 84, 0, 0, 4279, 4280, 5, 79, 0, 0, 4280, 4281, 5, 82, 0, 0, 4281, 4282, 5, 83, 0, 0, 4282, 574, 1, 0, 0, 0, 4283, 4284, 5, 67, 0, 0, 4284, 4285, 5, 79, 0, 0, 4285, 4286, 5, 80, 0, 0, 4286, 4287, 5, 89, 0, 0, 4287, 576, 1, 0, 0, 0, 4288, 4289, 5, 67, 0, 0, 4289, 4290, 5, 80, 0, 0, 4290, 4291, 5, 85, 0, 0, 4291, 578, 1, 0, 0, 0, 4292, 4293, 5, 68, 0, 0, 4293, 4294, 5, 65, 0, 0, 4294, 4295, 5, 84, 0, 0, 4295, 4296, 5, 65, 0, 0, 4296, 580, 1, 0, 0, 0, 4297, 4298, 5, 68, 0, 0, 4298, 4299, 5, 65, 0, 0, 4299, 4300, 5, 84, 0, 0, 4300, 4301, 5, 65, 0, 0, 4301, 4302, 5, 70, 0, 0, 4302, 4303, 5, 73, 0, 0, 4303, 4304, 5, 76, 0, 0, 4304, 4305, 5, 69, 0, 0, 4305, 582, 1, 0, 0, 0, 4306, 4307, 5, 68, 0, 0, 4307, 4308, 5, 69, 0, 0, 4308, 4309, 5, 65, 0, 0, 4309, 4310, 5, 76, 0, 0, 4310, 4311, 5, 76, 0, 0, 4311, 4312, 5, 79, 0, 0, 4312, 4313, 5, 67, 0, 0, 4313, 4314, 5, 65, 0, 0, 4314, 4315, 5, 84, 0, 0, 4315, 4316, 5, 69, 0, 0, 4316, 584, 1, 0, 0, 0, 4317, 4318, 5, 68, 0, 0, 4318, 4319, 5, 69, 0, 0, 4319, 4320, 5, 70, 0, 0, 4320, 4321, 5, 65, 0, 0, 4321, 4322, 5, 85, 0, 0, 4322, 4323, 5, 76, 0, 0, 4323, 4324, 5, 84, 0, 0, 4324, 4325, 5, 95, 0, 0, 4325, 4326, 5, 65, 0, 0, 4326, 4327, 5, 85, 0, 0, 4327, 4328, 5, 84, 0, 0, 4328, 4329, 5, 72, 0, 0, 4329, 586, 1, 0, 0, 0, 4330, 4331, 5, 68, 0, 0, 4331, 4332, 5, 69, 0, 0, 4332, 4333, 5, 70, 0, 0, 4333, 4334, 5, 73, 0, 0, 4334, 4335, 5, 78, 0, 0, 4335, 4336, 5, 69, 0, 0, 4336, 4337, 5, 82, 0, 0, 4337, 588, 1, 0, 0, 0, 4338, 4339, 5, 68, 0, 0, 4339, 4340, 5, 69, 0, 0, 4340, 4341, 5, 76, 0, 0, 4341, 4342, 5, 65, 0, 0, 4342, 4343, 5, 89, 0, 0, 4343, 4344, 5, 95, 0, 0, 4344, 4345, 5, 75, 0, 0, 4345, 4346, 5, 69, 0, 0, 4346, 4347, 5, 89, 0, 0, 4347, 4348, 5, 95, 0, 0, 4348, 4349, 5, 87, 0, 0, 4349, 4350, 5, 82, 0, 0, 4350, 4351, 5, 73, 0, 0, 4351, 4352, 5, 84, 0, 0, 4352, 4353, 5, 69, 0, 0, 4353, 590, 1, 0, 0, 0, 4354, 4355, 5, 68, 0, 0, 4355, 4356, 5, 69, 0, 0, 4356, 4357, 5, 83, 0, 0, 4357, 4358, 5, 95, 0, 0, 4358, 4359, 5, 75, 0, 0, 4359, 4360, 5, 69, 0, 0, 4360, 4361, 5, 89, 0, 0, 4361, 4362, 5, 95, 0, 0, 4362, 4363, 5, 70, 0, 0, 4363, 4364, 5, 73, 0, 0, 4364, 4365, 5, 76, 0, 0, 4365, 4366, 5, 69, 0, 0, 4366, 592, 1, 0, 0, 0, 4367, 4368, 5, 68, 0, 0, 4368, 4369, 5, 73, 0, 0, 4369, 4370, 5, 82, 0, 0, 4370, 4371, 5, 69, 0, 0, 4371, 4372, 5, 67, 0, 0, 4372, 4373, 5, 84, 0, 0, 4373, 4374, 5, 79, 0, 0, 4374, 4375, 5, 82, 0, 0, 4375, 4376, 5, 89, 0, 0, 4376, 594, 1, 0, 0, 0, 4377, 4378, 5, 68, 0, 0, 4378, 4379, 5, 73, 0, 0, 4379, 4380, 5, 83, 0, 0, 4380, 4381, 5, 65, 0, 0, 4381, 4382, 5, 66, 0, 0, 4382, 4383, 5, 76, 0, 0, 4383, 4384, 5, 69, 0, 0, 4384, 596, 1, 0, 0, 0, 4385, 4386, 5, 68, 0, 0, 4386, 4387, 5, 73, 0, 0, 4387, 4388, 5, 83, 0, 0, 4388, 4389, 5, 67, 0, 0, 4389, 4390, 5, 65, 0, 0, 4390, 4391, 5, 82, 0, 0, 4391, 4392, 5, 68, 0, 0, 4392, 598, 1, 0, 0, 0, 4393, 4394, 5, 68, 0, 0, 4394, 4395, 5, 73, 0, 0, 4395, 4396, 5, 83, 0, 0, 4396, 4397, 5, 75, 0, 0, 4397, 600, 1, 0, 0, 0, 4398, 4399, 5, 68, 0, 0, 4399, 4400, 5, 79, 0, 0, 4400, 602, 1, 0, 0, 0, 4401, 4402, 5, 68, 0, 0, 4402, 4403, 5, 85, 0, 0, 4403, 4404, 5, 77, 0, 0, 4404, 4405, 5, 80, 0, 0, 4405, 4406, 5, 70, 0, 0, 4406, 4407, 5, 73, 0, 0, 4407, 4408, 5, 76, 0, 0, 4408, 4409, 5, 69, 0, 0, 4409, 604, 1, 0, 0, 0, 4410, 4411, 5, 68, 0, 0, 4411, 4412, 5, 85, 0, 0, 4412, 4413, 5, 80, 0, 0, 4413, 4414, 5, 76, 0, 0, 4414, 4415, 5, 73, 0, 0, 4415, 4416, 5, 67, 0, 0, 4416, 4417, 5, 65, 0, 0, 4417, 4418, 5, 84, 0, 0, 4418, 4419, 5, 69, 0, 0, 4419, 606, 1, 0, 0, 0, 4420, 4421, 5, 68, 0, 0, 4421, 4422, 5, 89, 0, 0, 4422, 4423, 5, 78, 0, 0, 4423, 4424, 5, 65, 0, 0, 4424, 4425, 5, 77, 0, 0, 4425, 4426, 5, 73, 0, 0, 4426, 4427, 5, 67, 0, 0, 4427, 608, 1, 0, 0, 0, 4428, 4429, 5, 69, 0, 0, 4429, 4430, 5, 78, 0, 0, 4430, 4431, 5, 65, 0, 0, 4431, 4432, 5, 66, 0, 0, 4432, 4433, 5, 76, 0, 0, 4433, 4434, 5, 69, 0, 0, 4434, 610, 1, 0, 0, 0, 4435, 4436, 5, 69, 0, 0, 4436, 4437, 5, 78, 0, 0, 4437, 4438, 5, 67, 0, 0, 4438, 4439, 5, 82, 0, 0, 4439, 4440, 5, 89, 0, 0, 4440, 4441, 5, 80, 0, 0, 4441, 4442, 5, 84, 0, 0, 4442, 4443, 5, 73, 0, 0, 4443, 4444, 5, 79, 0, 0, 4444, 4445, 5, 78, 0, 0, 4445, 612, 1, 0, 0, 0, 4446, 4447, 5, 69, 0, 0, 4447, 4448, 5, 78, 0, 0, 4448, 4449, 5, 68, 0, 0, 4449, 614, 1, 0, 0, 0, 4450, 4451, 5, 69, 0, 0, 4451, 4452, 5, 78, 0, 0, 4452, 4453, 5, 68, 0, 0, 4453, 4454, 5, 83, 0, 0, 4454, 616, 1, 0, 0, 0, 4455, 4456, 5, 69, 0, 0, 4456, 4457, 5, 78, 0, 0, 4457, 4458, 5, 71, 0, 0, 4458, 4459, 5, 73, 0, 0, 4459, 4460, 5, 78, 0, 0, 4460, 4461, 5, 69, 0, 0, 4461, 618, 1, 0, 0, 0, 4462, 4463, 5, 69, 0, 0, 4463, 4464, 5, 78, 0, 0, 4464, 4465, 5, 71, 0, 0, 4465, 4466, 5, 73, 0, 0, 4466, 4467, 5, 78, 0, 0, 4467, 4468, 5, 69, 0, 0, 4468, 4469, 5, 83, 0, 0, 4469, 620, 1, 0, 0, 0, 4470, 4471, 5, 69, 0, 0, 4471, 4472, 5, 82, 0, 0, 4472, 4473, 5, 82, 0, 0, 4473, 4474, 5, 79, 0, 0, 4474, 4475, 5, 82, 0, 0, 4475, 622, 1, 0, 0, 0, 4476, 4477, 5, 69, 0, 0, 4477, 4478, 5, 82, 0, 0, 4478, 4479, 5, 82, 0, 0, 4479, 4480, 5, 79, 0, 0, 4480, 4481, 5, 82, 0, 0, 4481, 4482, 5, 83, 0, 0, 4482, 624, 1, 0, 0, 0, 4483, 4484, 5, 69, 0, 0, 4484, 4485, 5, 83, 0, 0, 4485, 4486, 5, 67, 0, 0, 4486, 4487, 5, 65, 0, 0, 4487, 4488, 5, 80, 0, 0, 4488, 4489, 5, 69, 0, 0, 4489, 626, 1, 0, 0, 0, 4490, 4491, 5, 69, 0, 0, 4491, 4492, 5, 86, 0, 0, 4492, 4493, 5, 69, 0, 0, 4493, 4494, 5, 78, 0, 0, 4494, 628, 1, 0, 0, 0, 4495, 4496, 5, 69, 0, 0, 4496, 4497, 5, 86, 0, 0, 4497, 4498, 5, 69, 0, 0, 4498, 4499, 5, 78, 0, 0, 4499, 4500, 5, 84, 0, 0, 4500, 630, 1, 0, 0, 0, 4501, 4502, 5, 69, 0, 0, 4502, 4503, 5, 86, 0, 0, 4503, 4504, 5, 69, 0, 0, 4504, 4505, 5, 78, 0, 0, 4505, 4506, 5, 84, 0, 0, 4506, 4507, 5, 83, 0, 0, 4507, 632, 1, 0, 0, 0, 4508, 4509, 5, 69, 0, 0, 4509, 4510, 5, 86, 0, 0, 4510, 4511, 5, 69, 0, 0, 4511, 4512, 5, 82, 0, 0, 4512, 4513, 5, 89, 0, 0, 4513, 634, 1, 0, 0, 0, 4514, 4515, 5, 69, 0, 0, 4515, 4516, 5, 88, 0, 0, 4516, 4517, 5, 67, 0, 0, 4517, 4518, 5, 72, 0, 0, 4518, 4519, 5, 65, 0, 0, 4519, 4520, 5, 78, 0, 0, 4520, 4521, 5, 71, 0, 0, 4521, 4522, 5, 69, 0, 0, 4522, 636, 1, 0, 0, 0, 4523, 4524, 5, 69, 0, 0, 4524, 4525, 5, 88, 0, 0, 4525, 4526, 5, 67, 0, 0, 4526, 4527, 5, 76, 0, 0, 4527, 4528, 5, 85, 0, 0, 4528, 4529, 5, 83, 0, 0, 4529, 4530, 5, 73, 0, 0, 4530, 4531, 5, 86, 0, 0, 4531, 4532, 5, 69, 0, 0, 4532, 638, 1, 0, 0, 0, 4533, 4534, 5, 69, 0, 0, 4534, 4535, 5, 88, 0, 0, 4535, 4536, 5, 80, 0, 0, 4536, 4537, 5, 73, 0, 0, 4537, 4538, 5, 82, 0, 0, 4538, 4539, 5, 69, 0, 0, 4539, 640, 1, 0, 0, 0, 4540, 4541, 5, 69, 0, 0, 4541, 4542, 5, 88, 0, 0, 4542, 4543, 5, 80, 0, 0, 4543, 4544, 5, 79, 0, 0, 4544, 4545, 5, 82, 0, 0, 4545, 4546, 5, 84, 0, 0, 4546, 642, 1, 0, 0, 0, 4547, 4548, 5, 69, 0, 0, 4548, 4549, 5, 88, 0, 0, 4549, 4550, 5, 84, 0, 0, 4550, 4551, 5, 69, 0, 0, 4551, 4552, 5, 78, 0, 0, 4552, 4553, 5, 68, 0, 0, 4553, 4554, 5, 69, 0, 0, 4554, 4555, 5, 68, 0, 0, 4555, 644, 1, 0, 0, 0, 4556, 4557, 5, 69, 0, 0, 4557, 4558, 5, 88, 0, 0, 4558, 4559, 5, 84, 0, 0, 4559, 4560, 5, 69, 0, 0, 4560, 4561, 5, 78, 0, 0, 4561, 4562, 5, 84, 0, 0, 4562, 4563, 5, 95, 0, 0, 4563, 4564, 5, 83, 0, 0, 4564, 4565, 5, 73, 0, 0, 4565, 4566, 5, 90, 0, 0, 4566, 4567, 5, 69, 0, 0, 4567, 646, 1, 0, 0, 0, 4568, 4569, 5, 70, 0, 0, 4569, 4570, 5, 65, 0, 0, 4570, 4571, 5, 83, 0, 0, 4571, 4572, 5, 84, 0, 0, 4572, 648, 1, 0, 0, 0, 4573, 4574, 5, 70, 0, 0, 4574, 4575, 5, 65, 0, 0, 4575, 4576, 5, 85, 0, 0, 4576, 4577, 5, 76, 0, 0, 4577, 4578, 5, 84, 0, 0, 4578, 4579, 5, 83, 0, 0, 4579, 650, 1, 0, 0, 0, 4580, 4581, 5, 70, 0, 0, 4581, 4582, 5, 73, 0, 0, 4582, 4583, 5, 69, 0, 0, 4583, 4584, 5, 76, 0, 0, 4584, 4585, 5, 68, 0, 0, 4585, 4586, 5, 83, 0, 0, 4586, 652, 1, 0, 0, 0, 4587, 4588, 5, 70, 0, 0, 4588, 4589, 5, 73, 0, 0, 4589, 4590, 5, 76, 0, 0, 4590, 4591, 5, 69, 0, 0, 4591, 4592, 5, 95, 0, 0, 4592, 4593, 5, 66, 0, 0, 4593, 4594, 5, 76, 0, 0, 4594, 4595, 5, 79, 0, 0, 4595, 4596, 5, 67, 0, 0, 4596, 4597, 5, 75, 0, 0, 4597, 4598, 5, 95, 0, 0, 4598, 4599, 5, 83, 0, 0, 4599, 4600, 5, 73, 0, 0, 4600, 4601, 5, 90, 0, 0, 4601, 4602, 5, 69, 0, 0, 4602, 654, 1, 0, 0, 0, 4603, 4604, 5, 70, 0, 0, 4604, 4605, 5, 73, 0, 0, 4605, 4606, 5, 76, 0, 0, 4606, 4607, 5, 84, 0, 0, 4607, 4608, 5, 69, 0, 0, 4608, 4609, 5, 82, 0, 0, 4609, 656, 1, 0, 0, 0, 4610, 4611, 5, 70, 0, 0, 4611, 4612, 5, 73, 0, 0, 4612, 4613, 5, 82, 0, 0, 4613, 4614, 5, 83, 0, 0, 4614, 4615, 5, 84, 0, 0, 4615, 658, 1, 0, 0, 0, 4616, 4617, 5, 70, 0, 0, 4617, 4618, 5, 73, 0, 0, 4618, 4619, 5, 88, 0, 0, 4619, 4620, 5, 69, 0, 0, 4620, 4621, 5, 68, 0, 0, 4621, 660, 1, 0, 0, 0, 4622, 4623, 5, 70, 0, 0, 4623, 4624, 5, 76, 0, 0, 4624, 4625, 5, 85, 0, 0, 4625, 4626, 5, 83, 0, 0, 4626, 4627, 5, 72, 0, 0, 4627, 662, 1, 0, 0, 0, 4628, 4629, 5, 70, 0, 0, 4629, 4630, 5, 79, 0, 0, 4630, 4631, 5, 76, 0, 0, 4631, 4632, 5, 76, 0, 0, 4632, 4633, 5, 79, 0, 0, 4633, 4634, 5, 87, 0, 0, 4634, 4635, 5, 83, 0, 0, 4635, 664, 1, 0, 0, 0, 4636, 4637, 5, 70, 0, 0, 4637, 4638, 5, 79, 0, 0, 4638, 4639, 5, 85, 0, 0, 4639, 4640, 5, 78, 0, 0, 4640, 4641, 5, 68, 0, 0, 4641, 666, 1, 0, 0, 0, 4642, 4643, 5, 70, 0, 0, 4643, 4644, 5, 85, 0, 0, 4644, 4645, 5, 76, 0, 0, 4645, 4646, 5, 76, 0, 0, 4646, 668, 1, 0, 0, 0, 4647, 4648, 5, 70, 0, 0, 4648, 4649, 5, 85, 0, 0, 4649, 4650, 5, 78, 0, 0, 4650, 4651, 5, 67, 0, 0, 4651, 4652, 5, 84, 0, 0, 4652, 4653, 5, 73, 0, 0, 4653, 4654, 5, 79, 0, 0, 4654, 4655, 5, 78, 0, 0, 4655, 670, 1, 0, 0, 0, 4656, 4657, 5, 71, 0, 0, 4657, 4658, 5, 69, 0, 0, 4658, 4659, 5, 78, 0, 0, 4659, 4660, 5, 69, 0, 0, 4660, 4661, 5, 82, 0, 0, 4661, 4662, 5, 65, 0, 0, 4662, 4663, 5, 76, 0, 0, 4663, 672, 1, 0, 0, 0, 4664, 4665, 5, 71, 0, 0, 4665, 4666, 5, 76, 0, 0, 4666, 4667, 5, 79, 0, 0, 4667, 4668, 5, 66, 0, 0, 4668, 4669, 5, 65, 0, 0, 4669, 4670, 5, 76, 0, 0, 4670, 674, 1, 0, 0, 0, 4671, 4672, 5, 71, 0, 0, 4672, 4673, 5, 82, 0, 0, 4673, 4674, 5, 65, 0, 0, 4674, 4675, 5, 78, 0, 0, 4675, 4676, 5, 84, 0, 0, 4676, 4677, 5, 83, 0, 0, 4677, 676, 1, 0, 0, 0, 4678, 4679, 5, 71, 0, 0, 4679, 4680, 5, 82, 0, 0, 4680, 4681, 5, 79, 0, 0, 4681, 4682, 5, 85, 0, 0, 4682, 4683, 5, 80, 0, 0, 4683, 4684, 5, 95, 0, 0, 4684, 4685, 5, 82, 0, 0, 4685, 4686, 5, 69, 0, 0, 4686, 4687, 5, 80, 0, 0, 4687, 4688, 5, 76, 0, 0, 4688, 4689, 5, 73, 0, 0, 4689, 4690, 5, 67, 0, 0, 4690, 4691, 5, 65, 0, 0, 4691, 4692, 5, 84, 0, 0, 4692, 4693, 5, 73, 0, 0, 4693, 4694, 5, 79, 0, 0, 4694, 4695, 5, 78, 0, 0, 4695, 678, 1, 0, 0, 0, 4696, 4697, 5, 72, 0, 0, 4697, 4698, 5, 65, 0, 0, 4698, 4699, 5, 78, 0, 0, 4699, 4700, 5, 68, 0, 0, 4700, 4701, 5, 76, 0, 0, 4701, 4702, 5, 69, 0, 0, 4702, 4703, 5, 82, 0, 0, 4703, 680, 1, 0, 0, 0, 4704, 4705, 5, 72, 0, 0, 4705, 4706, 5, 65, 0, 0, 4706, 4707, 5, 83, 0, 0, 4707, 4708, 5, 72, 0, 0, 4708, 682, 1, 0, 0, 0, 4709, 4710, 5, 72, 0, 0, 4710, 4711, 5, 69, 0, 0, 4711, 4712, 5, 76, 0, 0, 4712, 4713, 5, 80, 0, 0, 4713, 684, 1, 0, 0, 0, 4714, 4715, 5, 72, 0, 0, 4715, 4716, 5, 79, 0, 0, 4716, 4717, 5, 83, 0, 0, 4717, 4718, 5, 84, 0, 0, 4718, 686, 1, 0, 0, 0, 4719, 4720, 5, 72, 0, 0, 4720, 4721, 5, 79, 0, 0, 4721, 4722, 5, 83, 0, 0, 4722, 4723, 5, 84, 0, 0, 4723, 4724, 5, 83, 0, 0, 4724, 688, 1, 0, 0, 0, 4725, 4726, 5, 73, 0, 0, 4726, 4727, 5, 68, 0, 0, 4727, 4728, 5, 69, 0, 0, 4728, 4729, 5, 78, 0, 0, 4729, 4730, 5, 84, 0, 0, 4730, 4731, 5, 73, 0, 0, 4731, 4732, 5, 70, 0, 0, 4732, 4733, 5, 73, 0, 0, 4733, 4734, 5, 69, 0, 0, 4734, 4735, 5, 68, 0, 0, 4735, 690, 1, 0, 0, 0, 4736, 4737, 5, 73, 0, 0, 4737, 4738, 5, 71, 0, 0, 4738, 4739, 5, 78, 0, 0, 4739, 4740, 5, 79, 0, 0, 4740, 4741, 5, 82, 0, 0, 4741, 4742, 5, 69, 0, 0, 4742, 4743, 5, 95, 0, 0, 4743, 4744, 5, 83, 0, 0, 4744, 4745, 5, 69, 0, 0, 4745, 4746, 5, 82, 0, 0, 4746, 4747, 5, 86, 0, 0, 4747, 4748, 5, 69, 0, 0, 4748, 4749, 5, 82, 0, 0, 4749, 4750, 5, 95, 0, 0, 4750, 4751, 5, 73, 0, 0, 4751, 4752, 5, 68, 0, 0, 4752, 4753, 5, 83, 0, 0, 4753, 692, 1, 0, 0, 0, 4754, 4755, 5, 73, 0, 0, 4755, 4756, 5, 77, 0, 0, 4756, 4757, 5, 80, 0, 0, 4757, 4758, 5, 79, 0, 0, 4758, 4759, 5, 82, 0, 0, 4759, 4760, 5, 84, 0, 0, 4760, 694, 1, 0, 0, 0, 4761, 4762, 5, 73, 0, 0, 4762, 4763, 5, 78, 0, 0, 4763, 4764, 5, 68, 0, 0, 4764, 4765, 5, 69, 0, 0, 4765, 4766, 5, 88, 0, 0, 4766, 4767, 5, 69, 0, 0, 4767, 4768, 5, 83, 0, 0, 4768, 696, 1, 0, 0, 0, 4769, 4770, 5, 73, 0, 0, 4770, 4771, 5, 78, 0, 0, 4771, 4772, 5, 73, 0, 0, 4772, 4773, 5, 84, 0, 0, 4773, 4774, 5, 73, 0, 0, 4774, 4775, 5, 65, 0, 0, 4775, 4776, 5, 76, 0, 0, 4776, 4777, 5, 95, 0, 0, 4777, 4778, 5, 83, 0, 0, 4778, 4779, 5, 73, 0, 0, 4779, 4780, 5, 90, 0, 0, 4780, 4781, 5, 69, 0, 0, 4781, 698, 1, 0, 0, 0, 4782, 4783, 5, 73, 0, 0, 4783, 4784, 5, 78, 0, 0, 4784, 4785, 5, 80, 0, 0, 4785, 4786, 5, 76, 0, 0, 4786, 4787, 5, 65, 0, 0, 4787, 4788, 5, 67, 0, 0, 4788, 4789, 5, 69, 0, 0, 4789, 700, 1, 0, 0, 0, 4790, 4791, 5, 73, 0, 0, 4791, 4792, 5, 78, 0, 0, 4792, 4793, 5, 83, 0, 0, 4793, 4794, 5, 69, 0, 0, 4794, 4795, 5, 82, 0, 0, 4795, 4796, 5, 84, 0, 0, 4796, 4797, 5, 95, 0, 0, 4797, 4798, 5, 77, 0, 0, 4798, 4799, 5, 69, 0, 0, 4799, 4800, 5, 84, 0, 0, 4800, 4801, 5, 72, 0, 0, 4801, 4802, 5, 79, 0, 0, 4802, 4803, 5, 68, 0, 0, 4803, 702, 1, 0, 0, 0, 4804, 4805, 5, 73, 0, 0, 4805, 4806, 5, 78, 0, 0, 4806, 4807, 5, 83, 0, 0, 4807, 4808, 5, 84, 0, 0, 4808, 4809, 5, 65, 0, 0, 4809, 4810, 5, 76, 0, 0, 4810, 4811, 5, 76, 0, 0, 4811, 704, 1, 0, 0, 0, 4812, 4813, 5, 73, 0, 0, 4813, 4814, 5, 78, 0, 0, 4814, 4815, 5, 83, 0, 0, 4815, 4816, 5, 84, 0, 0, 4816, 4817, 5, 65, 0, 0, 4817, 4818, 5, 78, 0, 0, 4818, 4819, 5, 67, 0, 0, 4819, 4820, 5, 69, 0, 0, 4820, 706, 1, 0, 0, 0, 4821, 4822, 5, 73, 0, 0, 4822, 4823, 5, 78, 0, 0, 4823, 4824, 5, 86, 0, 0, 4824, 4825, 5, 79, 0, 0, 4825, 4826, 5, 75, 0, 0, 4826, 4827, 5, 69, 0, 0, 4827, 4828, 5, 82, 0, 0, 4828, 708, 1, 0, 0, 0, 4829, 4830, 5, 73, 0, 0, 4830, 4831, 5, 79, 0, 0, 4831, 710, 1, 0, 0, 0, 4832, 4833, 5, 73, 0, 0, 4833, 4834, 5, 79, 0, 0, 4834, 4835, 5, 95, 0, 0, 4835, 4836, 5, 84, 0, 0, 4836, 4837, 5, 72, 0, 0, 4837, 4838, 5, 82, 0, 0, 4838, 4839, 5, 69, 0, 0, 4839, 4840, 5, 65, 0, 0, 4840, 4841, 5, 68, 0, 0, 4841, 712, 1, 0, 0, 0, 4842, 4843, 5, 73, 0, 0, 4843, 4844, 5, 80, 0, 0, 4844, 4845, 5, 67, 0, 0, 4845, 714, 1, 0, 0, 0, 4846, 4847, 5, 73, 0, 0, 4847, 4848, 5, 83, 0, 0, 4848, 4849, 5, 79, 0, 0, 4849, 4850, 5, 76, 0, 0, 4850, 4851, 5, 65, 0, 0, 4851, 4852, 5, 84, 0, 0, 4852, 4853, 5, 73, 0, 0, 4853, 4854, 5, 79, 0, 0, 4854, 4855, 5, 78, 0, 0, 4855, 716, 1, 0, 0, 0, 4856, 4857, 5, 73, 0, 0, 4857, 4858, 5, 83, 0, 0, 4858, 4859, 5, 83, 0, 0, 4859, 4860, 5, 85, 0, 0, 4860, 4861, 5, 69, 0, 0, 4861, 4862, 5, 82, 0, 0, 4862, 718, 1, 0, 0, 0, 4863, 4864, 5, 74, 0, 0, 4864, 4865, 5, 83, 0, 0, 4865, 4866, 5, 79, 0, 0, 4866, 4867, 5, 78, 0, 0, 4867, 720, 1, 0, 0, 0, 4868, 4869, 5, 75, 0, 0, 4869, 4870, 5, 69, 0, 0, 4870, 4871, 5, 89, 0, 0, 4871, 4872, 5, 95, 0, 0, 4872, 4873, 5, 66, 0, 0, 4873, 4874, 5, 76, 0, 0, 4874, 4875, 5, 79, 0, 0, 4875, 4876, 5, 67, 0, 0, 4876, 4877, 5, 75, 0, 0, 4877, 4878, 5, 95, 0, 0, 4878, 4879, 5, 83, 0, 0, 4879, 4880, 5, 73, 0, 0, 4880, 4881, 5, 90, 0, 0, 4881, 4882, 5, 69, 0, 0, 4882, 722, 1, 0, 0, 0, 4883, 4884, 5, 76, 0, 0, 4884, 4885, 5, 65, 0, 0, 4885, 4886, 5, 78, 0, 0, 4886, 4887, 5, 71, 0, 0, 4887, 4888, 5, 85, 0, 0, 4888, 4889, 5, 65, 0, 0, 4889, 4890, 5, 71, 0, 0, 4890, 4891, 5, 69, 0, 0, 4891, 724, 1, 0, 0, 0, 4892, 4893, 5, 76, 0, 0, 4893, 4894, 5, 65, 0, 0, 4894, 4895, 5, 83, 0, 0, 4895, 4896, 5, 84, 0, 0, 4896, 726, 1, 0, 0, 0, 4897, 4898, 5, 76, 0, 0, 4898, 4899, 5, 69, 0, 0, 4899, 4900, 5, 65, 0, 0, 4900, 4901, 5, 86, 0, 0, 4901, 4902, 5, 69, 0, 0, 4902, 4903, 5, 83, 0, 0, 4903, 728, 1, 0, 0, 0, 4904, 4905, 5, 76, 0, 0, 4905, 4906, 5, 69, 0, 0, 4906, 4907, 5, 83, 0, 0, 4907, 4908, 5, 83, 0, 0, 4908, 730, 1, 0, 0, 0, 4909, 4910, 5, 76, 0, 0, 4910, 4911, 5, 69, 0, 0, 4911, 4912, 5, 86, 0, 0, 4912, 4913, 5, 69, 0, 0, 4913, 4914, 5, 76, 0, 0, 4914, 732, 1, 0, 0, 0, 4915, 4916, 5, 76, 0, 0, 4916, 4917, 5, 73, 0, 0, 4917, 4918, 5, 83, 0, 0, 4918, 4919, 5, 84, 0, 0, 4919, 734, 1, 0, 0, 0, 4920, 4921, 5, 76, 0, 0, 4921, 4922, 5, 79, 0, 0, 4922, 4923, 5, 67, 0, 0, 4923, 4924, 5, 65, 0, 0, 4924, 4925, 5, 76, 0, 0, 4925, 736, 1, 0, 0, 0, 4926, 4927, 5, 76, 0, 0, 4927, 4928, 5, 79, 0, 0, 4928, 4929, 5, 71, 0, 0, 4929, 4930, 5, 70, 0, 0, 4930, 4931, 5, 73, 0, 0, 4931, 4932, 5, 76, 0, 0, 4932, 4933, 5, 69, 0, 0, 4933, 738, 1, 0, 0, 0, 4934, 4935, 5, 76, 0, 0, 4935, 4936, 5, 79, 0, 0, 4936, 4937, 5, 71, 0, 0, 4937, 4938, 5, 83, 0, 0, 4938, 740, 1, 0, 0, 0, 4939, 4940, 5, 77, 0, 0, 4940, 4941, 5, 65, 0, 0, 4941, 4942, 5, 83, 0, 0, 4942, 4943, 5, 84, 0, 0, 4943, 4944, 5, 69, 0, 0, 4944, 4945, 5, 82, 0, 0, 4945, 742, 1, 0, 0, 0, 4946, 4947, 5, 77, 0, 0, 4947, 4948, 5, 65, 0, 0, 4948, 4949, 5, 83, 0, 0, 4949, 4950, 5, 84, 0, 0, 4950, 4951, 5, 69, 0, 0, 4951, 4952, 5, 82, 0, 0, 4952, 4953, 5, 95, 0, 0, 4953, 4954, 5, 65, 0, 0, 4954, 4955, 5, 85, 0, 0, 4955, 4956, 5, 84, 0, 0, 4956, 4957, 5, 79, 0, 0, 4957, 4958, 5, 95, 0, 0, 4958, 4959, 5, 80, 0, 0, 4959, 4960, 5, 79, 0, 0, 4960, 4961, 5, 83, 0, 0, 4961, 4962, 5, 73, 0, 0, 4962, 4963, 5, 84, 0, 0, 4963, 4964, 5, 73, 0, 0, 4964, 4965, 5, 79, 0, 0, 4965, 4966, 5, 78, 0, 0, 4966, 744, 1, 0, 0, 0, 4967, 4968, 5, 77, 0, 0, 4968, 4969, 5, 65, 0, 0, 4969, 4970, 5, 83, 0, 0, 4970, 4971, 5, 84, 0, 0, 4971, 4972, 5, 69, 0, 0, 4972, 4973, 5, 82, 0, 0, 4973, 4974, 5, 95, 0, 0, 4974, 4975, 5, 67, 0, 0, 4975, 4976, 5, 79, 0, 0, 4976, 4977, 5, 78, 0, 0, 4977, 4978, 5, 78, 0, 0, 4978, 4979, 5, 69, 0, 0, 4979, 4980, 5, 67, 0, 0, 4980, 4981, 5, 84, 0, 0, 4981, 4982, 5, 95, 0, 0, 4982, 4983, 5, 82, 0, 0, 4983, 4984, 5, 69, 0, 0, 4984, 4985, 5, 84, 0, 0, 4985, 4986, 5, 82, 0, 0, 4986, 4987, 5, 89, 0, 0, 4987, 746, 1, 0, 0, 0, 4988, 4989, 5, 77, 0, 0, 4989, 4990, 5, 65, 0, 0, 4990, 4991, 5, 83, 0, 0, 4991, 4992, 5, 84, 0, 0, 4992, 4993, 5, 69, 0, 0, 4993, 4994, 5, 82, 0, 0, 4994, 4995, 5, 95, 0, 0, 4995, 4996, 5, 68, 0, 0, 4996, 4997, 5, 69, 0, 0, 4997, 4998, 5, 76, 0, 0, 4998, 4999, 5, 65, 0, 0, 4999, 5000, 5, 89, 0, 0, 5000, 748, 1, 0, 0, 0, 5001, 5002, 5, 77, 0, 0, 5002, 5003, 5, 65, 0, 0, 5003, 5004, 5, 83, 0, 0, 5004, 5005, 5, 84, 0, 0, 5005, 5006, 5, 69, 0, 0, 5006, 5007, 5, 82, 0, 0, 5007, 5008, 5, 95, 0, 0, 5008, 5009, 5, 72, 0, 0, 5009, 5010, 5, 69, 0, 0, 5010, 5011, 5, 65, 0, 0, 5011, 5012, 5, 82, 0, 0, 5012, 5013, 5, 84, 0, 0, 5013, 5014, 5, 66, 0, 0, 5014, 5015, 5, 69, 0, 0, 5015, 5016, 5, 65, 0, 0, 5016, 5017, 5, 84, 0, 0, 5017, 5018, 5, 95, 0, 0, 5018, 5019, 5, 80, 0, 0, 5019, 5020, 5, 69, 0, 0, 5020, 5021, 5, 82, 0, 0, 5021, 5022, 5, 73, 0, 0, 5022, 5023, 5, 79, 0, 0, 5023, 5024, 5, 68, 0, 0, 5024, 750, 1, 0, 0, 0, 5025, 5026, 5, 77, 0, 0, 5026, 5027, 5, 65, 0, 0, 5027, 5028, 5, 83, 0, 0, 5028, 5029, 5, 84, 0, 0, 5029, 5030, 5, 69, 0, 0, 5030, 5031, 5, 82, 0, 0, 5031, 5032, 5, 95, 0, 0, 5032, 5033, 5, 72, 0, 0, 5033, 5034, 5, 79, 0, 0, 5034, 5035, 5, 83, 0, 0, 5035, 5036, 5, 84, 0, 0, 5036, 752, 1, 0, 0, 0, 5037, 5038, 5, 77, 0, 0, 5038, 5039, 5, 65, 0, 0, 5039, 5040, 5, 83, 0, 0, 5040, 5041, 5, 84, 0, 0, 5041, 5042, 5, 69, 0, 0, 5042, 5043, 5, 82, 0, 0, 5043, 5044, 5, 95, 0, 0, 5044, 5045, 5, 76, 0, 0, 5045, 5046, 5, 79, 0, 0, 5046, 5047, 5, 71, 0, 0, 5047, 5048, 5, 95, 0, 0, 5048, 5049, 5, 70, 0, 0, 5049, 5050, 5, 73, 0, 0, 5050, 5051, 5, 76, 0, 0, 5051, 5052, 5, 69, 0, 0, 5052, 754, 1, 0, 0, 0, 5053, 5054, 5, 77, 0, 0, 5054, 5055, 5, 65, 0, 0, 5055, 5056, 5, 83, 0, 0, 5056, 5057, 5, 84, 0, 0, 5057, 5058, 5, 69, 0, 0, 5058, 5059, 5, 82, 0, 0, 5059, 5060, 5, 95, 0, 0, 5060, 5061, 5, 76, 0, 0, 5061, 5062, 5, 79, 0, 0, 5062, 5063, 5, 71, 0, 0, 5063, 5064, 5, 95, 0, 0, 5064, 5065, 5, 80, 0, 0, 5065, 5066, 5, 79, 0, 0, 5066, 5067, 5, 83, 0, 0, 5067, 756, 1, 0, 0, 0, 5068, 5069, 5, 77, 0, 0, 5069, 5070, 5, 65, 0, 0, 5070, 5071, 5, 83, 0, 0, 5071, 5072, 5, 84, 0, 0, 5072, 5073, 5, 69, 0, 0, 5073, 5074, 5, 82, 0, 0, 5074, 5075, 5, 95, 0, 0, 5075, 5076, 5, 80, 0, 0, 5076, 5077, 5, 65, 0, 0, 5077, 5078, 5, 83, 0, 0, 5078, 5079, 5, 83, 0, 0, 5079, 5080, 5, 87, 0, 0, 5080, 5081, 5, 79, 0, 0, 5081, 5082, 5, 82, 0, 0, 5082, 5083, 5, 68, 0, 0, 5083, 758, 1, 0, 0, 0, 5084, 5085, 5, 77, 0, 0, 5085, 5086, 5, 65, 0, 0, 5086, 5087, 5, 83, 0, 0, 5087, 5088, 5, 84, 0, 0, 5088, 5089, 5, 69, 0, 0, 5089, 5090, 5, 82, 0, 0, 5090, 5091, 5, 95, 0, 0, 5091, 5092, 5, 80, 0, 0, 5092, 5093, 5, 79, 0, 0, 5093, 5094, 5, 82, 0, 0, 5094, 5095, 5, 84, 0, 0, 5095, 760, 1, 0, 0, 0, 5096, 5097, 5, 77, 0, 0, 5097, 5098, 5, 65, 0, 0, 5098, 5099, 5, 83, 0, 0, 5099, 5100, 5, 84, 0, 0, 5100, 5101, 5, 69, 0, 0, 5101, 5102, 5, 82, 0, 0, 5102, 5103, 5, 95, 0, 0, 5103, 5104, 5, 82, 0, 0, 5104, 5105, 5, 69, 0, 0, 5105, 5106, 5, 84, 0, 0, 5106, 5107, 5, 82, 0, 0, 5107, 5108, 5, 89, 0, 0, 5108, 5109, 5, 95, 0, 0, 5109, 5110, 5, 67, 0, 0, 5110, 5111, 5, 79, 0, 0, 5111, 5112, 5, 85, 0, 0, 5112, 5113, 5, 78, 0, 0, 5113, 5114, 5, 84, 0, 0, 5114, 762, 1, 0, 0, 0, 5115, 5116, 5, 77, 0, 0, 5116, 5117, 5, 65, 0, 0, 5117, 5118, 5, 83, 0, 0, 5118, 5119, 5, 84, 0, 0, 5119, 5120, 5, 69, 0, 0, 5120, 5121, 5, 82, 0, 0, 5121, 5122, 5, 95, 0, 0, 5122, 5123, 5, 83, 0, 0, 5123, 5124, 5, 83, 0, 0, 5124, 5125, 5, 76, 0, 0, 5125, 764, 1, 0, 0, 0, 5126, 5127, 5, 77, 0, 0, 5127, 5128, 5, 65, 0, 0, 5128, 5129, 5, 83, 0, 0, 5129, 5130, 5, 84, 0, 0, 5130, 5131, 5, 69, 0, 0, 5131, 5132, 5, 82, 0, 0, 5132, 5133, 5, 95, 0, 0, 5133, 5134, 5, 83, 0, 0, 5134, 5135, 5, 83, 0, 0, 5135, 5136, 5, 76, 0, 0, 5136, 5137, 5, 95, 0, 0, 5137, 5138, 5, 67, 0, 0, 5138, 5139, 5, 65, 0, 0, 5139, 766, 1, 0, 0, 0, 5140, 5141, 5, 77, 0, 0, 5141, 5142, 5, 65, 0, 0, 5142, 5143, 5, 83, 0, 0, 5143, 5144, 5, 84, 0, 0, 5144, 5145, 5, 69, 0, 0, 5145, 5146, 5, 82, 0, 0, 5146, 5147, 5, 95, 0, 0, 5147, 5148, 5, 83, 0, 0, 5148, 5149, 5, 83, 0, 0, 5149, 5150, 5, 76, 0, 0, 5150, 5151, 5, 95, 0, 0, 5151, 5152, 5, 67, 0, 0, 5152, 5153, 5, 65, 0, 0, 5153, 5154, 5, 80, 0, 0, 5154, 5155, 5, 65, 0, 0, 5155, 5156, 5, 84, 0, 0, 5156, 5157, 5, 72, 0, 0, 5157, 768, 1, 0, 0, 0, 5158, 5159, 5, 77, 0, 0, 5159, 5160, 5, 65, 0, 0, 5160, 5161, 5, 83, 0, 0, 5161, 5162, 5, 84, 0, 0, 5162, 5163, 5, 69, 0, 0, 5163, 5164, 5, 82, 0, 0, 5164, 5165, 5, 95, 0, 0, 5165, 5166, 5, 83, 0, 0, 5166, 5167, 5, 83, 0, 0, 5167, 5168, 5, 76, 0, 0, 5168, 5169, 5, 95, 0, 0, 5169, 5170, 5, 67, 0, 0, 5170, 5171, 5, 69, 0, 0, 5171, 5172, 5, 82, 0, 0, 5172, 5173, 5, 84, 0, 0, 5173, 770, 1, 0, 0, 0, 5174, 5175, 5, 77, 0, 0, 5175, 5176, 5, 65, 0, 0, 5176, 5177, 5, 83, 0, 0, 5177, 5178, 5, 84, 0, 0, 5178, 5179, 5, 69, 0, 0, 5179, 5180, 5, 82, 0, 0, 5180, 5181, 5, 95, 0, 0, 5181, 5182, 5, 83, 0, 0, 5182, 5183, 5, 83, 0, 0, 5183, 5184, 5, 76, 0, 0, 5184, 5185, 5, 95, 0, 0, 5185, 5186, 5, 67, 0, 0, 5186, 5187, 5, 73, 0, 0, 5187, 5188, 5, 80, 0, 0, 5188, 5189, 5, 72, 0, 0, 5189, 5190, 5, 69, 0, 0, 5190, 5191, 5, 82, 0, 0, 5191, 772, 1, 0, 0, 0, 5192, 5193, 5, 77, 0, 0, 5193, 5194, 5, 65, 0, 0, 5194, 5195, 5, 83, 0, 0, 5195, 5196, 5, 84, 0, 0, 5196, 5197, 5, 69, 0, 0, 5197, 5198, 5, 82, 0, 0, 5198, 5199, 5, 95, 0, 0, 5199, 5200, 5, 83, 0, 0, 5200, 5201, 5, 83, 0, 0, 5201, 5202, 5, 76, 0, 0, 5202, 5203, 5, 95, 0, 0, 5203, 5204, 5, 67, 0, 0, 5204, 5205, 5, 82, 0, 0, 5205, 5206, 5, 76, 0, 0, 5206, 774, 1, 0, 0, 0, 5207, 5208, 5, 77, 0, 0, 5208, 5209, 5, 65, 0, 0, 5209, 5210, 5, 83, 0, 0, 5210, 5211, 5, 84, 0, 0, 5211, 5212, 5, 69, 0, 0, 5212, 5213, 5, 82, 0, 0, 5213, 5214, 5, 95, 0, 0, 5214, 5215, 5, 83, 0, 0, 5215, 5216, 5, 83, 0, 0, 5216, 5217, 5, 76, 0, 0, 5217, 5218, 5, 95, 0, 0, 5218, 5219, 5, 67, 0, 0, 5219, 5220, 5, 82, 0, 0, 5220, 5221, 5, 76, 0, 0, 5221, 5222, 5, 80, 0, 0, 5222, 5223, 5, 65, 0, 0, 5223, 5224, 5, 84, 0, 0, 5224, 5225, 5, 72, 0, 0, 5225, 776, 1, 0, 0, 0, 5226, 5227, 5, 77, 0, 0, 5227, 5228, 5, 65, 0, 0, 5228, 5229, 5, 83, 0, 0, 5229, 5230, 5, 84, 0, 0, 5230, 5231, 5, 69, 0, 0, 5231, 5232, 5, 82, 0, 0, 5232, 5233, 5, 95, 0, 0, 5233, 5234, 5, 83, 0, 0, 5234, 5235, 5, 83, 0, 0, 5235, 5236, 5, 76, 0, 0, 5236, 5237, 5, 95, 0, 0, 5237, 5238, 5, 75, 0, 0, 5238, 5239, 5, 69, 0, 0, 5239, 5240, 5, 89, 0, 0, 5240, 778, 1, 0, 0, 0, 5241, 5242, 5, 77, 0, 0, 5242, 5243, 5, 65, 0, 0, 5243, 5244, 5, 83, 0, 0, 5244, 5245, 5, 84, 0, 0, 5245, 5246, 5, 69, 0, 0, 5246, 5247, 5, 82, 0, 0, 5247, 5248, 5, 95, 0, 0, 5248, 5249, 5, 84, 0, 0, 5249, 5250, 5, 76, 0, 0, 5250, 5251, 5, 83, 0, 0, 5251, 5252, 5, 95, 0, 0, 5252, 5253, 5, 86, 0, 0, 5253, 5254, 5, 69, 0, 0, 5254, 5255, 5, 82, 0, 0, 5255, 5256, 5, 83, 0, 0, 5256, 5257, 5, 73, 0, 0, 5257, 5258, 5, 79, 0, 0, 5258, 5259, 5, 78, 0, 0, 5259, 780, 1, 0, 0, 0, 5260, 5261, 5, 77, 0, 0, 5261, 5262, 5, 65, 0, 0, 5262, 5263, 5, 83, 0, 0, 5263, 5264, 5, 84, 0, 0, 5264, 5265, 5, 69, 0, 0, 5265, 5266, 5, 82, 0, 0, 5266, 5267, 5, 95, 0, 0, 5267, 5268, 5, 85, 0, 0, 5268, 5269, 5, 83, 0, 0, 5269, 5270, 5, 69, 0, 0, 5270, 5271, 5, 82, 0, 0, 5271, 782, 1, 0, 0, 0, 5272, 5273, 5, 77, 0, 0, 5273, 5274, 5, 65, 0, 0, 5274, 5275, 5, 88, 0, 0, 5275, 5276, 5, 95, 0, 0, 5276, 5277, 5, 67, 0, 0, 5277, 5278, 5, 79, 0, 0, 5278, 5279, 5, 78, 0, 0, 5279, 5280, 5, 78, 0, 0, 5280, 5281, 5, 69, 0, 0, 5281, 5282, 5, 67, 0, 0, 5282, 5283, 5, 84, 0, 0, 5283, 5284, 5, 73, 0, 0, 5284, 5285, 5, 79, 0, 0, 5285, 5286, 5, 78, 0, 0, 5286, 5287, 5, 83, 0, 0, 5287, 5288, 5, 95, 0, 0, 5288, 5289, 5, 80, 0, 0, 5289, 5290, 5, 69, 0, 0, 5290, 5291, 5, 82, 0, 0, 5291, 5292, 5, 95, 0, 0, 5292, 5293, 5, 72, 0, 0, 5293, 5294, 5, 79, 0, 0, 5294, 5295, 5, 85, 0, 0, 5295, 5296, 5, 82, 0, 0, 5296, 784, 1, 0, 0, 0, 5297, 5298, 5, 77, 0, 0, 5298, 5299, 5, 65, 0, 0, 5299, 5300, 5, 88, 0, 0, 5300, 5301, 5, 95, 0, 0, 5301, 5302, 5, 81, 0, 0, 5302, 5303, 5, 85, 0, 0, 5303, 5304, 5, 69, 0, 0, 5304, 5305, 5, 82, 0, 0, 5305, 5306, 5, 73, 0, 0, 5306, 5307, 5, 69, 0, 0, 5307, 5308, 5, 83, 0, 0, 5308, 5309, 5, 95, 0, 0, 5309, 5310, 5, 80, 0, 0, 5310, 5311, 5, 69, 0, 0, 5311, 5312, 5, 82, 0, 0, 5312, 5313, 5, 95, 0, 0, 5313, 5314, 5, 72, 0, 0, 5314, 5315, 5, 79, 0, 0, 5315, 5316, 5, 85, 0, 0, 5316, 5317, 5, 82, 0, 0, 5317, 786, 1, 0, 0, 0, 5318, 5319, 5, 77, 0, 0, 5319, 5320, 5, 65, 0, 0, 5320, 5321, 5, 88, 0, 0, 5321, 5322, 5, 95, 0, 0, 5322, 5323, 5, 82, 0, 0, 5323, 5324, 5, 79, 0, 0, 5324, 5325, 5, 87, 0, 0, 5325, 5326, 5, 83, 0, 0, 5326, 788, 1, 0, 0, 0, 5327, 5328, 5, 77, 0, 0, 5328, 5329, 5, 65, 0, 0, 5329, 5330, 5, 88, 0, 0, 5330, 5331, 5, 95, 0, 0, 5331, 5332, 5, 83, 0, 0, 5332, 5333, 5, 73, 0, 0, 5333, 5334, 5, 90, 0, 0, 5334, 5335, 5, 69, 0, 0, 5335, 790, 1, 0, 0, 0, 5336, 5337, 5, 77, 0, 0, 5337, 5338, 5, 65, 0, 0, 5338, 5339, 5, 88, 0, 0, 5339, 5340, 5, 95, 0, 0, 5340, 5341, 5, 85, 0, 0, 5341, 5342, 5, 80, 0, 0, 5342, 5343, 5, 68, 0, 0, 5343, 5344, 5, 65, 0, 0, 5344, 5345, 5, 84, 0, 0, 5345, 5346, 5, 69, 0, 0, 5346, 5347, 5, 83, 0, 0, 5347, 5348, 5, 95, 0, 0, 5348, 5349, 5, 80, 0, 0, 5349, 5350, 5, 69, 0, 0, 5350, 5351, 5, 82, 0, 0, 5351, 5352, 5, 95, 0, 0, 5352, 5353, 5, 72, 0, 0, 5353, 5354, 5, 79, 0, 0, 5354, 5355, 5, 85, 0, 0, 5355, 5356, 5, 82, 0, 0, 5356, 792, 1, 0, 0, 0, 5357, 5358, 5, 77, 0, 0, 5358, 5359, 5, 65, 0, 0, 5359, 5360, 5, 88, 0, 0, 5360, 5361, 5, 95, 0, 0, 5361, 5362, 5, 85, 0, 0, 5362, 5363, 5, 83, 0, 0, 5363, 5364, 5, 69, 0, 0, 5364, 5365, 5, 82, 0, 0, 5365, 5366, 5, 95, 0, 0, 5366, 5367, 5, 67, 0, 0, 5367, 5368, 5, 79, 0, 0, 5368, 5369, 5, 78, 0, 0, 5369, 5370, 5, 78, 0, 0, 5370, 5371, 5, 69, 0, 0, 5371, 5372, 5, 67, 0, 0, 5372, 5373, 5, 84, 0, 0, 5373, 5374, 5, 73, 0, 0, 5374, 5375, 5, 79, 0, 0, 5375, 5376, 5, 78, 0, 0, 5376, 5377, 5, 83, 0, 0, 5377, 794, 1, 0, 0, 0, 5378, 5379, 5, 77, 0, 0, 5379, 5380, 5, 69, 0, 0, 5380, 5381, 5, 68, 0, 0, 5381, 5382, 5, 73, 0, 0, 5382, 5383, 5, 85, 0, 0, 5383, 5384, 5, 77, 0, 0, 5384, 796, 1, 0, 0, 0, 5385, 5386, 5, 77, 0, 0, 5386, 5387, 5, 69, 0, 0, 5387, 5388, 5, 82, 0, 0, 5388, 5389, 5, 71, 0, 0, 5389, 5390, 5, 69, 0, 0, 5390, 798, 1, 0, 0, 0, 5391, 5392, 5, 77, 0, 0, 5392, 5393, 5, 73, 0, 0, 5393, 5394, 5, 68, 0, 0, 5394, 800, 1, 0, 0, 0, 5395, 5396, 5, 77, 0, 0, 5396, 5397, 5, 73, 0, 0, 5397, 5398, 5, 71, 0, 0, 5398, 5399, 5, 82, 0, 0, 5399, 5400, 5, 65, 0, 0, 5400, 5401, 5, 84, 0, 0, 5401, 5402, 5, 69, 0, 0, 5402, 802, 1, 0, 0, 0, 5403, 5404, 5, 77, 0, 0, 5404, 5405, 5, 73, 0, 0, 5405, 5406, 5, 78, 0, 0, 5406, 5407, 5, 95, 0, 0, 5407, 5408, 5, 82, 0, 0, 5408, 5409, 5, 79, 0, 0, 5409, 5410, 5, 87, 0, 0, 5410, 5411, 5, 83, 0, 0, 5411, 804, 1, 0, 0, 0, 5412, 5413, 5, 77, 0, 0, 5413, 5414, 5, 79, 0, 0, 5414, 5415, 5, 68, 0, 0, 5415, 5416, 5, 69, 0, 0, 5416, 806, 1, 0, 0, 0, 5417, 5418, 5, 77, 0, 0, 5418, 5419, 5, 79, 0, 0, 5419, 5420, 5, 68, 0, 0, 5420, 5421, 5, 73, 0, 0, 5421, 5422, 5, 70, 0, 0, 5422, 5423, 5, 89, 0, 0, 5423, 808, 1, 0, 0, 0, 5424, 5425, 5, 77, 0, 0, 5425, 5426, 5, 85, 0, 0, 5426, 5427, 5, 84, 0, 0, 5427, 5428, 5, 69, 0, 0, 5428, 5429, 5, 88, 0, 0, 5429, 810, 1, 0, 0, 0, 5430, 5431, 5, 77, 0, 0, 5431, 5432, 5, 89, 0, 0, 5432, 5433, 5, 83, 0, 0, 5433, 5434, 5, 81, 0, 0, 5434, 5435, 5, 76, 0, 0, 5435, 812, 1, 0, 0, 0, 5436, 5437, 5, 78, 0, 0, 5437, 5438, 5, 65, 0, 0, 5438, 5439, 5, 77, 0, 0, 5439, 5440, 5, 69, 0, 0, 5440, 814, 1, 0, 0, 0, 5441, 5442, 5, 78, 0, 0, 5442, 5443, 5, 65, 0, 0, 5443, 5444, 5, 77, 0, 0, 5444, 5445, 5, 69, 0, 0, 5445, 5446, 5, 83, 0, 0, 5446, 816, 1, 0, 0, 0, 5447, 5448, 5, 78, 0, 0, 5448, 5449, 5, 67, 0, 0, 5449, 5450, 5, 72, 0, 0, 5450, 5451, 5, 65, 0, 0, 5451, 5452, 5, 82, 0, 0, 5452, 818, 1, 0, 0, 0, 5453, 5454, 5, 78, 0, 0, 5454, 5455, 5, 69, 0, 0, 5455, 5456, 5, 86, 0, 0, 5456, 5457, 5, 69, 0, 0, 5457, 5458, 5, 82, 0, 0, 5458, 820, 1, 0, 0, 0, 5459, 5460, 5, 78, 0, 0, 5460, 5461, 5, 69, 0, 0, 5461, 5462, 5, 88, 0, 0, 5462, 5463, 5, 84, 0, 0, 5463, 822, 1, 0, 0, 0, 5464, 5465, 5, 78, 0, 0, 5465, 5466, 5, 79, 0, 0, 5466, 824, 1, 0, 0, 0, 5467, 5468, 5, 78, 0, 0, 5468, 5469, 5, 79, 0, 0, 5469, 5470, 5, 68, 0, 0, 5470, 5471, 5, 69, 0, 0, 5471, 5472, 5, 71, 0, 0, 5472, 5473, 5, 82, 0, 0, 5473, 5474, 5, 79, 0, 0, 5474, 5475, 5, 85, 0, 0, 5475, 5476, 5, 80, 0, 0, 5476, 826, 1, 0, 0, 0, 5477, 5478, 5, 78, 0, 0, 5478, 5479, 5, 79, 0, 0, 5479, 5480, 5, 78, 0, 0, 5480, 5481, 5, 69, 0, 0, 5481, 828, 1, 0, 0, 0, 5482, 5483, 5, 79, 0, 0, 5483, 5484, 5, 70, 0, 0, 5484, 5485, 5, 70, 0, 0, 5485, 5486, 5, 76, 0, 0, 5486, 5487, 5, 73, 0, 0, 5487, 5488, 5, 78, 0, 0, 5488, 5489, 5, 69, 0, 0, 5489, 830, 1, 0, 0, 0, 5490, 5491, 5, 79, 0, 0, 5491, 5492, 5, 70, 0, 0, 5492, 5493, 5, 70, 0, 0, 5493, 5494, 5, 83, 0, 0, 5494, 5495, 5, 69, 0, 0, 5495, 5496, 5, 84, 0, 0, 5496, 832, 1, 0, 0, 0, 5497, 5498, 5, 79, 0, 0, 5498, 5499, 5, 74, 0, 0, 5499, 834, 1, 0, 0, 0, 5500, 5501, 5, 79, 0, 0, 5501, 5502, 5, 76, 0, 0, 5502, 5503, 5, 68, 0, 0, 5503, 5504, 5, 95, 0, 0, 5504, 5505, 5, 80, 0, 0, 5505, 5506, 5, 65, 0, 0, 5506, 5507, 5, 83, 0, 0, 5507, 5508, 5, 83, 0, 0, 5508, 5509, 5, 87, 0, 0, 5509, 5510, 5, 79, 0, 0, 5510, 5511, 5, 82, 0, 0, 5511, 5512, 5, 68, 0, 0, 5512, 836, 1, 0, 0, 0, 5513, 5514, 5, 79, 0, 0, 5514, 5515, 5, 78, 0, 0, 5515, 5516, 5, 69, 0, 0, 5516, 838, 1, 0, 0, 0, 5517, 5518, 5, 79, 0, 0, 5518, 5519, 5, 78, 0, 0, 5519, 5520, 5, 76, 0, 0, 5520, 5521, 5, 73, 0, 0, 5521, 5522, 5, 78, 0, 0, 5522, 5523, 5, 69, 0, 0, 5523, 840, 1, 0, 0, 0, 5524, 5525, 5, 79, 0, 0, 5525, 5526, 5, 78, 0, 0, 5526, 5527, 5, 76, 0, 0, 5527, 5528, 5, 89, 0, 0, 5528, 842, 1, 0, 0, 0, 5529, 5530, 5, 79, 0, 0, 5530, 5531, 5, 80, 0, 0, 5531, 5532, 5, 69, 0, 0, 5532, 5533, 5, 78, 0, 0, 5533, 844, 1, 0, 0, 0, 5534, 5535, 5, 79, 0, 0, 5535, 5536, 5, 80, 0, 0, 5536, 5537, 5, 84, 0, 0, 5537, 5538, 5, 73, 0, 0, 5538, 5539, 5, 77, 0, 0, 5539, 5540, 5, 73, 0, 0, 5540, 5541, 5, 90, 0, 0, 5541, 5542, 5, 69, 0, 0, 5542, 5543, 5, 82, 0, 0, 5543, 5544, 5, 95, 0, 0, 5544, 5545, 5, 67, 0, 0, 5545, 5546, 5, 79, 0, 0, 5546, 5547, 5, 83, 0, 0, 5547, 5548, 5, 84, 0, 0, 5548, 5549, 5, 83, 0, 0, 5549, 846, 1, 0, 0, 0, 5550, 5551, 5, 79, 0, 0, 5551, 5552, 5, 80, 0, 0, 5552, 5553, 5, 84, 0, 0, 5553, 5554, 5, 73, 0, 0, 5554, 5555, 5, 79, 0, 0, 5555, 5556, 5, 78, 0, 0, 5556, 5557, 5, 83, 0, 0, 5557, 848, 1, 0, 0, 0, 5558, 5559, 5, 79, 0, 0, 5559, 5560, 5, 87, 0, 0, 5560, 5561, 5, 78, 0, 0, 5561, 5562, 5, 69, 0, 0, 5562, 5563, 5, 82, 0, 0, 5563, 850, 1, 0, 0, 0, 5564, 5565, 5, 80, 0, 0, 5565, 5566, 5, 65, 0, 0, 5566, 5567, 5, 67, 0, 0, 5567, 5568, 5, 75, 0, 0, 5568, 5569, 5, 95, 0, 0, 5569, 5570, 5, 75, 0, 0, 5570, 5571, 5, 69, 0, 0, 5571, 5572, 5, 89, 0, 0, 5572, 5573, 5, 83, 0, 0, 5573, 852, 1, 0, 0, 0, 5574, 5575, 5, 80, 0, 0, 5575, 5576, 5, 65, 0, 0, 5576, 5577, 5, 71, 0, 0, 5577, 5578, 5, 69, 0, 0, 5578, 854, 1, 0, 0, 0, 5579, 5580, 5, 80, 0, 0, 5580, 5581, 5, 65, 0, 0, 5581, 5582, 5, 82, 0, 0, 5582, 5583, 5, 83, 0, 0, 5583, 5584, 5, 69, 0, 0, 5584, 5585, 5, 82, 0, 0, 5585, 856, 1, 0, 0, 0, 5586, 5587, 5, 80, 0, 0, 5587, 5588, 5, 65, 0, 0, 5588, 5589, 5, 82, 0, 0, 5589, 5590, 5, 84, 0, 0, 5590, 5591, 5, 73, 0, 0, 5591, 5592, 5, 65, 0, 0, 5592, 5593, 5, 76, 0, 0, 5593, 858, 1, 0, 0, 0, 5594, 5595, 5, 80, 0, 0, 5595, 5596, 5, 65, 0, 0, 5596, 5597, 5, 82, 0, 0, 5597, 5598, 5, 84, 0, 0, 5598, 5599, 5, 73, 0, 0, 5599, 5600, 5, 84, 0, 0, 5600, 5601, 5, 73, 0, 0, 5601, 5602, 5, 79, 0, 0, 5602, 5603, 5, 78, 0, 0, 5603, 5604, 5, 73, 0, 0, 5604, 5605, 5, 78, 0, 0, 5605, 5606, 5, 71, 0, 0, 5606, 860, 1, 0, 0, 0, 5607, 5608, 5, 80, 0, 0, 5608, 5609, 5, 65, 0, 0, 5609, 5610, 5, 82, 0, 0, 5610, 5611, 5, 84, 0, 0, 5611, 5612, 5, 73, 0, 0, 5612, 5613, 5, 84, 0, 0, 5613, 5614, 5, 73, 0, 0, 5614, 5615, 5, 79, 0, 0, 5615, 5616, 5, 78, 0, 0, 5616, 5617, 5, 83, 0, 0, 5617, 862, 1, 0, 0, 0, 5618, 5619, 5, 80, 0, 0, 5619, 5620, 5, 65, 0, 0, 5620, 5621, 5, 83, 0, 0, 5621, 5622, 5, 83, 0, 0, 5622, 5623, 5, 87, 0, 0, 5623, 5624, 5, 79, 0, 0, 5624, 5625, 5, 82, 0, 0, 5625, 5626, 5, 68, 0, 0, 5626, 864, 1, 0, 0, 0, 5627, 5628, 5, 80, 0, 0, 5628, 5629, 5, 72, 0, 0, 5629, 5630, 5, 65, 0, 0, 5630, 5631, 5, 83, 0, 0, 5631, 5632, 5, 69, 0, 0, 5632, 866, 1, 0, 0, 0, 5633, 5634, 5, 80, 0, 0, 5634, 5635, 5, 76, 0, 0, 5635, 5636, 5, 85, 0, 0, 5636, 5637, 5, 71, 0, 0, 5637, 5638, 5, 73, 0, 0, 5638, 5639, 5, 78, 0, 0, 5639, 868, 1, 0, 0, 0, 5640, 5641, 5, 80, 0, 0, 5641, 5642, 5, 76, 0, 0, 5642, 5643, 5, 85, 0, 0, 5643, 5644, 5, 71, 0, 0, 5644, 5645, 5, 73, 0, 0, 5645, 5646, 5, 78, 0, 0, 5646, 5647, 5, 95, 0, 0, 5647, 5648, 5, 68, 0, 0, 5648, 5649, 5, 73, 0, 0, 5649, 5650, 5, 82, 0, 0, 5650, 870, 1, 0, 0, 0, 5651, 5652, 5, 80, 0, 0, 5652, 5653, 5, 76, 0, 0, 5653, 5654, 5, 85, 0, 0, 5654, 5655, 5, 71, 0, 0, 5655, 5656, 5, 73, 0, 0, 5656, 5657, 5, 78, 0, 0, 5657, 5658, 5, 83, 0, 0, 5658, 872, 1, 0, 0, 0, 5659, 5660, 5, 80, 0, 0, 5660, 5661, 5, 79, 0, 0, 5661, 5662, 5, 82, 0, 0, 5662, 5663, 5, 84, 0, 0, 5663, 874, 1, 0, 0, 0, 5664, 5665, 5, 80, 0, 0, 5665, 5666, 5, 82, 0, 0, 5666, 5667, 5, 69, 0, 0, 5667, 5668, 5, 67, 0, 0, 5668, 5669, 5, 69, 0, 0, 5669, 5670, 5, 68, 0, 0, 5670, 5671, 5, 69, 0, 0, 5671, 5672, 5, 83, 0, 0, 5672, 876, 1, 0, 0, 0, 5673, 5674, 5, 80, 0, 0, 5674, 5675, 5, 82, 0, 0, 5675, 5676, 5, 69, 0, 0, 5676, 5677, 5, 80, 0, 0, 5677, 5678, 5, 65, 0, 0, 5678, 5679, 5, 82, 0, 0, 5679, 5680, 5, 69, 0, 0, 5680, 878, 1, 0, 0, 0, 5681, 5682, 5, 80, 0, 0, 5682, 5683, 5, 82, 0, 0, 5683, 5684, 5, 69, 0, 0, 5684, 5685, 5, 83, 0, 0, 5685, 5686, 5, 69, 0, 0, 5686, 5687, 5, 82, 0, 0, 5687, 5688, 5, 86, 0, 0, 5688, 5689, 5, 69, 0, 0, 5689, 880, 1, 0, 0, 0, 5690, 5691, 5, 80, 0, 0, 5691, 5692, 5, 82, 0, 0, 5692, 5693, 5, 69, 0, 0, 5693, 5694, 5, 86, 0, 0, 5694, 882, 1, 0, 0, 0, 5695, 5696, 5, 80, 0, 0, 5696, 5697, 5, 82, 0, 0, 5697, 5698, 5, 79, 0, 0, 5698, 5699, 5, 67, 0, 0, 5699, 5700, 5, 69, 0, 0, 5700, 5701, 5, 83, 0, 0, 5701, 5702, 5, 83, 0, 0, 5702, 5703, 5, 76, 0, 0, 5703, 5704, 5, 73, 0, 0, 5704, 5705, 5, 83, 0, 0, 5705, 5706, 5, 84, 0, 0, 5706, 884, 1, 0, 0, 0, 5707, 5708, 5, 80, 0, 0, 5708, 5709, 5, 82, 0, 0, 5709, 5710, 5, 79, 0, 0, 5710, 5711, 5, 70, 0, 0, 5711, 5712, 5, 73, 0, 0, 5712, 5713, 5, 76, 0, 0, 5713, 5714, 5, 69, 0, 0, 5714, 886, 1, 0, 0, 0, 5715, 5716, 5, 80, 0, 0, 5716, 5717, 5, 82, 0, 0, 5717, 5718, 5, 79, 0, 0, 5718, 5719, 5, 70, 0, 0, 5719, 5720, 5, 73, 0, 0, 5720, 5721, 5, 76, 0, 0, 5721, 5722, 5, 69, 0, 0, 5722, 5723, 5, 83, 0, 0, 5723, 888, 1, 0, 0, 0, 5724, 5725, 5, 80, 0, 0, 5725, 5726, 5, 82, 0, 0, 5726, 5727, 5, 79, 0, 0, 5727, 5728, 5, 88, 0, 0, 5728, 5729, 5, 89, 0, 0, 5729, 890, 1, 0, 0, 0, 5730, 5731, 5, 81, 0, 0, 5731, 5732, 5, 85, 0, 0, 5732, 5733, 5, 69, 0, 0, 5733, 5734, 5, 82, 0, 0, 5734, 5735, 5, 89, 0, 0, 5735, 892, 1, 0, 0, 0, 5736, 5737, 5, 81, 0, 0, 5737, 5738, 5, 85, 0, 0, 5738, 5739, 5, 73, 0, 0, 5739, 5740, 5, 67, 0, 0, 5740, 5741, 5, 75, 0, 0, 5741, 894, 1, 0, 0, 0, 5742, 5743, 5, 82, 0, 0, 5743, 5744, 5, 69, 0, 0, 5744, 5745, 5, 66, 0, 0, 5745, 5746, 5, 85, 0, 0, 5746, 5747, 5, 73, 0, 0, 5747, 5748, 5, 76, 0, 0, 5748, 5749, 5, 68, 0, 0, 5749, 896, 1, 0, 0, 0, 5750, 5751, 5, 82, 0, 0, 5751, 5752, 5, 69, 0, 0, 5752, 5753, 5, 67, 0, 0, 5753, 5754, 5, 79, 0, 0, 5754, 5755, 5, 86, 0, 0, 5755, 5756, 5, 69, 0, 0, 5756, 5757, 5, 82, 0, 0, 5757, 898, 1, 0, 0, 0, 5758, 5759, 5, 82, 0, 0, 5759, 5760, 5, 69, 0, 0, 5760, 5761, 5, 68, 0, 0, 5761, 5762, 5, 79, 0, 0, 5762, 5763, 5, 95, 0, 0, 5763, 5764, 5, 66, 0, 0, 5764, 5765, 5, 85, 0, 0, 5765, 5766, 5, 70, 0, 0, 5766, 5767, 5, 70, 0, 0, 5767, 5768, 5, 69, 0, 0, 5768, 5769, 5, 82, 0, 0, 5769, 5770, 5, 95, 0, 0, 5770, 5771, 5, 83, 0, 0, 5771, 5772, 5, 73, 0, 0, 5772, 5773, 5, 90, 0, 0, 5773, 5774, 5, 69, 0, 0, 5774, 900, 1, 0, 0, 0, 5775, 5776, 5, 82, 0, 0, 5776, 5777, 5, 69, 0, 0, 5777, 5778, 5, 68, 0, 0, 5778, 5779, 5, 85, 0, 0, 5779, 5780, 5, 78, 0, 0, 5780, 5781, 5, 68, 0, 0, 5781, 5782, 5, 65, 0, 0, 5782, 5783, 5, 78, 0, 0, 5783, 5784, 5, 84, 0, 0, 5784, 902, 1, 0, 0, 0, 5785, 5786, 5, 82, 0, 0, 5786, 5787, 5, 69, 0, 0, 5787, 5788, 5, 76, 0, 0, 5788, 5789, 5, 65, 0, 0, 5789, 5790, 5, 89, 0, 0, 5790, 904, 1, 0, 0, 0, 5791, 5792, 5, 82, 0, 0, 5792, 5793, 5, 69, 0, 0, 5793, 5794, 5, 76, 0, 0, 5794, 5795, 5, 65, 0, 0, 5795, 5796, 5, 89, 0, 0, 5796, 5797, 5, 95, 0, 0, 5797, 5798, 5, 76, 0, 0, 5798, 5799, 5, 79, 0, 0, 5799, 5800, 5, 71, 0, 0, 5800, 5801, 5, 95, 0, 0, 5801, 5802, 5, 70, 0, 0, 5802, 5803, 5, 73, 0, 0, 5803, 5804, 5, 76, 0, 0, 5804, 5805, 5, 69, 0, 0, 5805, 906, 1, 0, 0, 0, 5806, 5807, 5, 82, 0, 0, 5807, 5808, 5, 69, 0, 0, 5808, 5809, 5, 76, 0, 0, 5809, 5810, 5, 65, 0, 0, 5810, 5811, 5, 89, 0, 0, 5811, 5812, 5, 95, 0, 0, 5812, 5813, 5, 76, 0, 0, 5813, 5814, 5, 79, 0, 0, 5814, 5815, 5, 71, 0, 0, 5815, 5816, 5, 95, 0, 0, 5816, 5817, 5, 80, 0, 0, 5817, 5818, 5, 79, 0, 0, 5818, 5819, 5, 83, 0, 0, 5819, 908, 1, 0, 0, 0, 5820, 5821, 5, 82, 0, 0, 5821, 5822, 5, 69, 0, 0, 5822, 5823, 5, 76, 0, 0, 5823, 5824, 5, 65, 0, 0, 5824, 5825, 5, 89, 0, 0, 5825, 5826, 5, 76, 0, 0, 5826, 5827, 5, 79, 0, 0, 5827, 5828, 5, 71, 0, 0, 5828, 910, 1, 0, 0, 0, 5829, 5830, 5, 82, 0, 0, 5830, 5831, 5, 69, 0, 0, 5831, 5832, 5, 77, 0, 0, 5832, 5833, 5, 79, 0, 0, 5833, 5834, 5, 86, 0, 0, 5834, 5835, 5, 69, 0, 0, 5835, 912, 1, 0, 0, 0, 5836, 5837, 5, 82, 0, 0, 5837, 5838, 5, 69, 0, 0, 5838, 5839, 5, 79, 0, 0, 5839, 5840, 5, 82, 0, 0, 5840, 5841, 5, 71, 0, 0, 5841, 5842, 5, 65, 0, 0, 5842, 5843, 5, 78, 0, 0, 5843, 5844, 5, 73, 0, 0, 5844, 5845, 5, 90, 0, 0, 5845, 5846, 5, 69, 0, 0, 5846, 914, 1, 0, 0, 0, 5847, 5848, 5, 82, 0, 0, 5848, 5849, 5, 69, 0, 0, 5849, 5850, 5, 80, 0, 0, 5850, 5851, 5, 65, 0, 0, 5851, 5852, 5, 73, 0, 0, 5852, 5853, 5, 82, 0, 0, 5853, 916, 1, 0, 0, 0, 5854, 5855, 5, 82, 0, 0, 5855, 5856, 5, 69, 0, 0, 5856, 5857, 5, 80, 0, 0, 5857, 5858, 5, 76, 0, 0, 5858, 5859, 5, 73, 0, 0, 5859, 5860, 5, 67, 0, 0, 5860, 5861, 5, 65, 0, 0, 5861, 5862, 5, 84, 0, 0, 5862, 5863, 5, 69, 0, 0, 5863, 5864, 5, 95, 0, 0, 5864, 5865, 5, 68, 0, 0, 5865, 5866, 5, 79, 0, 0, 5866, 5867, 5, 95, 0, 0, 5867, 5868, 5, 68, 0, 0, 5868, 5869, 5, 66, 0, 0, 5869, 918, 1, 0, 0, 0, 5870, 5871, 5, 82, 0, 0, 5871, 5872, 5, 69, 0, 0, 5872, 5873, 5, 80, 0, 0, 5873, 5874, 5, 76, 0, 0, 5874, 5875, 5, 73, 0, 0, 5875, 5876, 5, 67, 0, 0, 5876, 5877, 5, 65, 0, 0, 5877, 5878, 5, 84, 0, 0, 5878, 5879, 5, 69, 0, 0, 5879, 5880, 5, 95, 0, 0, 5880, 5881, 5, 68, 0, 0, 5881, 5882, 5, 79, 0, 0, 5882, 5883, 5, 95, 0, 0, 5883, 5884, 5, 84, 0, 0, 5884, 5885, 5, 65, 0, 0, 5885, 5886, 5, 66, 0, 0, 5886, 5887, 5, 76, 0, 0, 5887, 5888, 5, 69, 0, 0, 5888, 920, 1, 0, 0, 0, 5889, 5890, 5, 82, 0, 0, 5890, 5891, 5, 69, 0, 0, 5891, 5892, 5, 80, 0, 0, 5892, 5893, 5, 76, 0, 0, 5893, 5894, 5, 73, 0, 0, 5894, 5895, 5, 67, 0, 0, 5895, 5896, 5, 65, 0, 0, 5896, 5897, 5, 84, 0, 0, 5897, 5898, 5, 69, 0, 0, 5898, 5899, 5, 95, 0, 0, 5899, 5900, 5, 73, 0, 0, 5900, 5901, 5, 71, 0, 0, 5901, 5902, 5, 78, 0, 0, 5902, 5903, 5, 79, 0, 0, 5903, 5904, 5, 82, 0, 0, 5904, 5905, 5, 69, 0, 0, 5905, 5906, 5, 95, 0, 0, 5906, 5907, 5, 68, 0, 0, 5907, 5908, 5, 66, 0, 0, 5908, 922, 1, 0, 0, 0, 5909, 5910, 5, 82, 0, 0, 5910, 5911, 5, 69, 0, 0, 5911, 5912, 5, 80, 0, 0, 5912, 5913, 5, 76, 0, 0, 5913, 5914, 5, 73, 0, 0, 5914, 5915, 5, 67, 0, 0, 5915, 5916, 5, 65, 0, 0, 5916, 5917, 5, 84, 0, 0, 5917, 5918, 5, 69, 0, 0, 5918, 5919, 5, 95, 0, 0, 5919, 5920, 5, 73, 0, 0, 5920, 5921, 5, 71, 0, 0, 5921, 5922, 5, 78, 0, 0, 5922, 5923, 5, 79, 0, 0, 5923, 5924, 5, 82, 0, 0, 5924, 5925, 5, 69, 0, 0, 5925, 5926, 5, 95, 0, 0, 5926, 5927, 5, 84, 0, 0, 5927, 5928, 5, 65, 0, 0, 5928, 5929, 5, 66, 0, 0, 5929, 5930, 5, 76, 0, 0, 5930, 5931, 5, 69, 0, 0, 5931, 924, 1, 0, 0, 0, 5932, 5933, 5, 82, 0, 0, 5933, 5934, 5, 69, 0, 0, 5934, 5935, 5, 80, 0, 0, 5935, 5936, 5, 76, 0, 0, 5936, 5937, 5, 73, 0, 0, 5937, 5938, 5, 67, 0, 0, 5938, 5939, 5, 65, 0, 0, 5939, 5940, 5, 84, 0, 0, 5940, 5941, 5, 69, 0, 0, 5941, 5942, 5, 95, 0, 0, 5942, 5943, 5, 82, 0, 0, 5943, 5944, 5, 69, 0, 0, 5944, 5945, 5, 87, 0, 0, 5945, 5946, 5, 82, 0, 0, 5946, 5947, 5, 73, 0, 0, 5947, 5948, 5, 84, 0, 0, 5948, 5949, 5, 69, 0, 0, 5949, 5950, 5, 95, 0, 0, 5950, 5951, 5, 68, 0, 0, 5951, 5952, 5, 66, 0, 0, 5952, 926, 1, 0, 0, 0, 5953, 5954, 5, 82, 0, 0, 5954, 5955, 5, 69, 0, 0, 5955, 5956, 5, 80, 0, 0, 5956, 5957, 5, 76, 0, 0, 5957, 5958, 5, 73, 0, 0, 5958, 5959, 5, 67, 0, 0, 5959, 5960, 5, 65, 0, 0, 5960, 5961, 5, 84, 0, 0, 5961, 5962, 5, 69, 0, 0, 5962, 5963, 5, 95, 0, 0, 5963, 5964, 5, 87, 0, 0, 5964, 5965, 5, 73, 0, 0, 5965, 5966, 5, 76, 0, 0, 5966, 5967, 5, 68, 0, 0, 5967, 5968, 5, 95, 0, 0, 5968, 5969, 5, 68, 0, 0, 5969, 5970, 5, 79, 0, 0, 5970, 5971, 5, 95, 0, 0, 5971, 5972, 5, 84, 0, 0, 5972, 5973, 5, 65, 0, 0, 5973, 5974, 5, 66, 0, 0, 5974, 5975, 5, 76, 0, 0, 5975, 5976, 5, 69, 0, 0, 5976, 928, 1, 0, 0, 0, 5977, 5978, 5, 82, 0, 0, 5978, 5979, 5, 69, 0, 0, 5979, 5980, 5, 80, 0, 0, 5980, 5981, 5, 76, 0, 0, 5981, 5982, 5, 73, 0, 0, 5982, 5983, 5, 67, 0, 0, 5983, 5984, 5, 65, 0, 0, 5984, 5985, 5, 84, 0, 0, 5985, 5986, 5, 69, 0, 0, 5986, 5987, 5, 95, 0, 0, 5987, 5988, 5, 87, 0, 0, 5988, 5989, 5, 73, 0, 0, 5989, 5990, 5, 76, 0, 0, 5990, 5991, 5, 68, 0, 0, 5991, 5992, 5, 95, 0, 0, 5992, 5993, 5, 73, 0, 0, 5993, 5994, 5, 71, 0, 0, 5994, 5995, 5, 78, 0, 0, 5995, 5996, 5, 79, 0, 0, 5996, 5997, 5, 82, 0, 0, 5997, 5998, 5, 69, 0, 0, 5998, 5999, 5, 95, 0, 0, 5999, 6000, 5, 84, 0, 0, 6000, 6001, 5, 65, 0, 0, 6001, 6002, 5, 66, 0, 0, 6002, 6003, 5, 76, 0, 0, 6003, 6004, 5, 69, 0, 0, 6004, 930, 1, 0, 0, 0, 6005, 6006, 5, 82, 0, 0, 6006, 6007, 5, 69, 0, 0, 6007, 6008, 5, 80, 0, 0, 6008, 6009, 5, 76, 0, 0, 6009, 6010, 5, 73, 0, 0, 6010, 6011, 5, 67, 0, 0, 6011, 6012, 5, 65, 0, 0, 6012, 6013, 5, 84, 0, 0, 6013, 6014, 5, 73, 0, 0, 6014, 6015, 5, 79, 0, 0, 6015, 6016, 5, 78, 0, 0, 6016, 932, 1, 0, 0, 0, 6017, 6018, 5, 82, 0, 0, 6018, 6019, 5, 69, 0, 0, 6019, 6020, 5, 83, 0, 0, 6020, 6021, 5, 69, 0, 0, 6021, 6022, 5, 84, 0, 0, 6022, 934, 1, 0, 0, 0, 6023, 6024, 5, 82, 0, 0, 6024, 6025, 5, 69, 0, 0, 6025, 6026, 5, 83, 0, 0, 6026, 6027, 5, 85, 0, 0, 6027, 6028, 5, 77, 0, 0, 6028, 6029, 5, 69, 0, 0, 6029, 936, 1, 0, 0, 0, 6030, 6031, 5, 82, 0, 0, 6031, 6032, 5, 69, 0, 0, 6032, 6033, 5, 84, 0, 0, 6033, 6034, 5, 85, 0, 0, 6034, 6035, 5, 82, 0, 0, 6035, 6036, 5, 78, 0, 0, 6036, 6037, 5, 83, 0, 0, 6037, 938, 1, 0, 0, 0, 6038, 6039, 5, 82, 0, 0, 6039, 6040, 5, 79, 0, 0, 6040, 6041, 5, 76, 0, 0, 6041, 6042, 5, 76, 0, 0, 6042, 6043, 5, 66, 0, 0, 6043, 6044, 5, 65, 0, 0, 6044, 6045, 5, 67, 0, 0, 6045, 6046, 5, 75, 0, 0, 6046, 940, 1, 0, 0, 0, 6047, 6048, 5, 82, 0, 0, 6048, 6049, 5, 79, 0, 0, 6049, 6050, 5, 76, 0, 0, 6050, 6051, 5, 76, 0, 0, 6051, 6052, 5, 85, 0, 0, 6052, 6053, 5, 80, 0, 0, 6053, 942, 1, 0, 0, 0, 6054, 6055, 5, 82, 0, 0, 6055, 6056, 5, 79, 0, 0, 6056, 6057, 5, 84, 0, 0, 6057, 6058, 5, 65, 0, 0, 6058, 6059, 5, 84, 0, 0, 6059, 6060, 5, 69, 0, 0, 6060, 944, 1, 0, 0, 0, 6061, 6062, 5, 82, 0, 0, 6062, 6063, 5, 79, 0, 0, 6063, 6064, 5, 87, 0, 0, 6064, 946, 1, 0, 0, 0, 6065, 6066, 5, 82, 0, 0, 6066, 6067, 5, 79, 0, 0, 6067, 6068, 5, 87, 0, 0, 6068, 6069, 5, 83, 0, 0, 6069, 948, 1, 0, 0, 0, 6070, 6071, 5, 82, 0, 0, 6071, 6072, 5, 79, 0, 0, 6072, 6073, 5, 87, 0, 0, 6073, 6074, 5, 95, 0, 0, 6074, 6075, 5, 70, 0, 0, 6075, 6076, 5, 79, 0, 0, 6076, 6077, 5, 82, 0, 0, 6077, 6078, 5, 77, 0, 0, 6078, 6079, 5, 65, 0, 0, 6079, 6080, 5, 84, 0, 0, 6080, 950, 1, 0, 0, 0, 6081, 6082, 5, 83, 0, 0, 6082, 6083, 5, 65, 0, 0, 6083, 6084, 5, 86, 0, 0, 6084, 6085, 5, 69, 0, 0, 6085, 6086, 5, 80, 0, 0, 6086, 6087, 5, 79, 0, 0, 6087, 6088, 5, 73, 0, 0, 6088, 6089, 5, 78, 0, 0, 6089, 6090, 5, 84, 0, 0, 6090, 952, 1, 0, 0, 0, 6091, 6092, 5, 83, 0, 0, 6092, 6093, 5, 67, 0, 0, 6093, 6094, 5, 72, 0, 0, 6094, 6095, 5, 69, 0, 0, 6095, 6096, 5, 68, 0, 0, 6096, 6097, 5, 85, 0, 0, 6097, 6098, 5, 76, 0, 0, 6098, 6099, 5, 69, 0, 0, 6099, 954, 1, 0, 0, 0, 6100, 6101, 5, 83, 0, 0, 6101, 6102, 5, 69, 0, 0, 6102, 6103, 5, 67, 0, 0, 6103, 6104, 5, 85, 0, 0, 6104, 6105, 5, 82, 0, 0, 6105, 6106, 5, 73, 0, 0, 6106, 6107, 5, 84, 0, 0, 6107, 6108, 5, 89, 0, 0, 6108, 956, 1, 0, 0, 0, 6109, 6110, 5, 83, 0, 0, 6110, 6111, 5, 69, 0, 0, 6111, 6112, 5, 82, 0, 0, 6112, 6113, 5, 86, 0, 0, 6113, 6114, 5, 69, 0, 0, 6114, 6115, 5, 82, 0, 0, 6115, 958, 1, 0, 0, 0, 6116, 6117, 5, 83, 0, 0, 6117, 6118, 5, 69, 0, 0, 6118, 6119, 5, 83, 0, 0, 6119, 6120, 5, 83, 0, 0, 6120, 6121, 5, 73, 0, 0, 6121, 6122, 5, 79, 0, 0, 6122, 6123, 5, 78, 0, 0, 6123, 960, 1, 0, 0, 0, 6124, 6125, 5, 83, 0, 0, 6125, 6126, 5, 72, 0, 0, 6126, 6127, 5, 65, 0, 0, 6127, 6128, 5, 82, 0, 0, 6128, 6129, 5, 69, 0, 0, 6129, 962, 1, 0, 0, 0, 6130, 6131, 5, 83, 0, 0, 6131, 6132, 5, 72, 0, 0, 6132, 6133, 5, 65, 0, 0, 6133, 6134, 5, 82, 0, 0, 6134, 6135, 5, 69, 0, 0, 6135, 6136, 5, 68, 0, 0, 6136, 964, 1, 0, 0, 0, 6137, 6138, 5, 83, 0, 0, 6138, 6139, 5, 73, 0, 0, 6139, 6140, 5, 71, 0, 0, 6140, 6141, 5, 78, 0, 0, 6141, 6142, 5, 69, 0, 0, 6142, 6143, 5, 68, 0, 0, 6143, 966, 1, 0, 0, 0, 6144, 6145, 5, 83, 0, 0, 6145, 6146, 5, 73, 0, 0, 6146, 6147, 5, 77, 0, 0, 6147, 6148, 5, 80, 0, 0, 6148, 6149, 5, 76, 0, 0, 6149, 6150, 5, 69, 0, 0, 6150, 968, 1, 0, 0, 0, 6151, 6152, 5, 83, 0, 0, 6152, 6153, 5, 76, 0, 0, 6153, 6154, 5, 65, 0, 0, 6154, 6155, 5, 86, 0, 0, 6155, 6156, 5, 69, 0, 0, 6156, 970, 1, 0, 0, 0, 6157, 6158, 5, 83, 0, 0, 6158, 6159, 5, 76, 0, 0, 6159, 6160, 5, 79, 0, 0, 6160, 6161, 5, 87, 0, 0, 6161, 972, 1, 0, 0, 0, 6162, 6163, 5, 83, 0, 0, 6163, 6164, 5, 78, 0, 0, 6164, 6165, 5, 65, 0, 0, 6165, 6166, 5, 80, 0, 0, 6166, 6167, 5, 83, 0, 0, 6167, 6168, 5, 72, 0, 0, 6168, 6169, 5, 79, 0, 0, 6169, 6170, 5, 84, 0, 0, 6170, 974, 1, 0, 0, 0, 6171, 6172, 5, 83, 0, 0, 6172, 6173, 5, 79, 0, 0, 6173, 6174, 5, 67, 0, 0, 6174, 6175, 5, 75, 0, 0, 6175, 6176, 5, 69, 0, 0, 6176, 6177, 5, 84, 0, 0, 6177, 976, 1, 0, 0, 0, 6178, 6179, 5, 83, 0, 0, 6179, 6180, 5, 79, 0, 0, 6180, 6181, 5, 77, 0, 0, 6181, 6182, 5, 69, 0, 0, 6182, 978, 1, 0, 0, 0, 6183, 6184, 5, 83, 0, 0, 6184, 6185, 5, 79, 0, 0, 6185, 6186, 5, 78, 0, 0, 6186, 6187, 5, 65, 0, 0, 6187, 6188, 5, 77, 0, 0, 6188, 6189, 5, 69, 0, 0, 6189, 980, 1, 0, 0, 0, 6190, 6191, 5, 83, 0, 0, 6191, 6192, 5, 79, 0, 0, 6192, 6193, 5, 85, 0, 0, 6193, 6194, 5, 78, 0, 0, 6194, 6195, 5, 68, 0, 0, 6195, 6196, 5, 83, 0, 0, 6196, 982, 1, 0, 0, 0, 6197, 6198, 5, 83, 0, 0, 6198, 6199, 5, 79, 0, 0, 6199, 6200, 5, 85, 0, 0, 6200, 6201, 5, 82, 0, 0, 6201, 6202, 5, 67, 0, 0, 6202, 6203, 5, 69, 0, 0, 6203, 984, 1, 0, 0, 0, 6204, 6205, 5, 83, 0, 0, 6205, 6206, 5, 81, 0, 0, 6206, 6207, 5, 76, 0, 0, 6207, 6208, 5, 95, 0, 0, 6208, 6209, 5, 65, 0, 0, 6209, 6210, 5, 70, 0, 0, 6210, 6211, 5, 84, 0, 0, 6211, 6212, 5, 69, 0, 0, 6212, 6213, 5, 82, 0, 0, 6213, 6214, 5, 95, 0, 0, 6214, 6215, 5, 71, 0, 0, 6215, 6216, 5, 84, 0, 0, 6216, 6217, 5, 73, 0, 0, 6217, 6218, 5, 68, 0, 0, 6218, 6219, 5, 83, 0, 0, 6219, 986, 1, 0, 0, 0, 6220, 6221, 5, 83, 0, 0, 6221, 6222, 5, 81, 0, 0, 6222, 6223, 5, 76, 0, 0, 6223, 6224, 5, 95, 0, 0, 6224, 6225, 5, 65, 0, 0, 6225, 6226, 5, 70, 0, 0, 6226, 6227, 5, 84, 0, 0, 6227, 6228, 5, 69, 0, 0, 6228, 6229, 5, 82, 0, 0, 6229, 6230, 5, 95, 0, 0, 6230, 6231, 5, 77, 0, 0, 6231, 6232, 5, 84, 0, 0, 6232, 6233, 5, 83, 0, 0, 6233, 6234, 5, 95, 0, 0, 6234, 6235, 5, 71, 0, 0, 6235, 6236, 5, 65, 0, 0, 6236, 6237, 5, 80, 0, 0, 6237, 6238, 5, 83, 0, 0, 6238, 988, 1, 0, 0, 0, 6239, 6240, 5, 83, 0, 0, 6240, 6241, 5, 81, 0, 0, 6241, 6242, 5, 76, 0, 0, 6242, 6243, 5, 95, 0, 0, 6243, 6244, 5, 66, 0, 0, 6244, 6245, 5, 69, 0, 0, 6245, 6246, 5, 70, 0, 0, 6246, 6247, 5, 79, 0, 0, 6247, 6248, 5, 82, 0, 0, 6248, 6249, 5, 69, 0, 0, 6249, 6250, 5, 95, 0, 0, 6250, 6251, 5, 71, 0, 0, 6251, 6252, 5, 84, 0, 0, 6252, 6253, 5, 73, 0, 0, 6253, 6254, 5, 68, 0, 0, 6254, 6255, 5, 83, 0, 0, 6255, 990, 1, 0, 0, 0, 6256, 6257, 5, 83, 0, 0, 6257, 6258, 5, 81, 0, 0, 6258, 6259, 5, 76, 0, 0, 6259, 6260, 5, 95, 0, 0, 6260, 6261, 5, 66, 0, 0, 6261, 6262, 5, 85, 0, 0, 6262, 6263, 5, 70, 0, 0, 6263, 6264, 5, 70, 0, 0, 6264, 6265, 5, 69, 0, 0, 6265, 6266, 5, 82, 0, 0, 6266, 6267, 5, 95, 0, 0, 6267, 6268, 5, 82, 0, 0, 6268, 6269, 5, 69, 0, 0, 6269, 6270, 5, 83, 0, 0, 6270, 6271, 5, 85, 0, 0, 6271, 6272, 5, 76, 0, 0, 6272, 6273, 5, 84, 0, 0, 6273, 992, 1, 0, 0, 0, 6274, 6275, 5, 83, 0, 0, 6275, 6276, 5, 81, 0, 0, 6276, 6277, 5, 76, 0, 0, 6277, 6278, 5, 95, 0, 0, 6278, 6279, 5, 67, 0, 0, 6279, 6280, 5, 65, 0, 0, 6280, 6281, 5, 67, 0, 0, 6281, 6282, 5, 72, 0, 0, 6282, 6283, 5, 69, 0, 0, 6283, 994, 1, 0, 0, 0, 6284, 6285, 5, 83, 0, 0, 6285, 6286, 5, 81, 0, 0, 6286, 6287, 5, 76, 0, 0, 6287, 6288, 5, 95, 0, 0, 6288, 6289, 5, 78, 0, 0, 6289, 6290, 5, 79, 0, 0, 6290, 6291, 5, 95, 0, 0, 6291, 6292, 5, 67, 0, 0, 6292, 6293, 5, 65, 0, 0, 6293, 6294, 5, 67, 0, 0, 6294, 6295, 5, 72, 0, 0, 6295, 6296, 5, 69, 0, 0, 6296, 996, 1, 0, 0, 0, 6297, 6298, 5, 83, 0, 0, 6298, 6299, 5, 81, 0, 0, 6299, 6300, 5, 76, 0, 0, 6300, 6301, 5, 95, 0, 0, 6301, 6302, 5, 84, 0, 0, 6302, 6303, 5, 72, 0, 0, 6303, 6304, 5, 82, 0, 0, 6304, 6305, 5, 69, 0, 0, 6305, 6306, 5, 65, 0, 0, 6306, 6307, 5, 68, 0, 0, 6307, 998, 1, 0, 0, 0, 6308, 6309, 5, 83, 0, 0, 6309, 6310, 5, 84, 0, 0, 6310, 6311, 5, 65, 0, 0, 6311, 6312, 5, 82, 0, 0, 6312, 6313, 5, 84, 0, 0, 6313, 1000, 1, 0, 0, 0, 6314, 6315, 5, 83, 0, 0, 6315, 6316, 5, 84, 0, 0, 6316, 6317, 5, 65, 0, 0, 6317, 6318, 5, 82, 0, 0, 6318, 6319, 5, 84, 0, 0, 6319, 6320, 5, 83, 0, 0, 6320, 1002, 1, 0, 0, 0, 6321, 6322, 5, 83, 0, 0, 6322, 6323, 5, 84, 0, 0, 6323, 6324, 5, 65, 0, 0, 6324, 6325, 5, 84, 0, 0, 6325, 6326, 5, 83, 0, 0, 6326, 6327, 5, 95, 0, 0, 6327, 6328, 5, 65, 0, 0, 6328, 6329, 5, 85, 0, 0, 6329, 6330, 5, 84, 0, 0, 6330, 6331, 5, 79, 0, 0, 6331, 6332, 5, 95, 0, 0, 6332, 6333, 5, 82, 0, 0, 6333, 6334, 5, 69, 0, 0, 6334, 6335, 5, 67, 0, 0, 6335, 6336, 5, 65, 0, 0, 6336, 6337, 5, 76, 0, 0, 6337, 6338, 5, 67, 0, 0, 6338, 1004, 1, 0, 0, 0, 6339, 6340, 5, 83, 0, 0, 6340, 6341, 5, 84, 0, 0, 6341, 6342, 5, 65, 0, 0, 6342, 6343, 5, 84, 0, 0, 6343, 6344, 5, 83, 0, 0, 6344, 6345, 5, 95, 0, 0, 6345, 6346, 5, 80, 0, 0, 6346, 6347, 5, 69, 0, 0, 6347, 6348, 5, 82, 0, 0, 6348, 6349, 5, 83, 0, 0, 6349, 6350, 5, 73, 0, 0, 6350, 6351, 5, 83, 0, 0, 6351, 6352, 5, 84, 0, 0, 6352, 6353, 5, 69, 0, 0, 6353, 6354, 5, 78, 0, 0, 6354, 6355, 5, 84, 0, 0, 6355, 1006, 1, 0, 0, 0, 6356, 6357, 5, 83, 0, 0, 6357, 6358, 5, 84, 0, 0, 6358, 6359, 5, 65, 0, 0, 6359, 6360, 5, 84, 0, 0, 6360, 6361, 5, 83, 0, 0, 6361, 6362, 5, 95, 0, 0, 6362, 6363, 5, 83, 0, 0, 6363, 6364, 5, 65, 0, 0, 6364, 6365, 5, 77, 0, 0, 6365, 6366, 5, 80, 0, 0, 6366, 6367, 5, 76, 0, 0, 6367, 6368, 5, 69, 0, 0, 6368, 6369, 5, 95, 0, 0, 6369, 6370, 5, 80, 0, 0, 6370, 6371, 5, 65, 0, 0, 6371, 6372, 5, 71, 0, 0, 6372, 6373, 5, 69, 0, 0, 6373, 6374, 5, 83, 0, 0, 6374, 1008, 1, 0, 0, 0, 6375, 6376, 5, 83, 0, 0, 6376, 6377, 5, 84, 0, 0, 6377, 6378, 5, 65, 0, 0, 6378, 6379, 5, 84, 0, 0, 6379, 6380, 5, 85, 0, 0, 6380, 6381, 5, 83, 0, 0, 6381, 1010, 1, 0, 0, 0, 6382, 6383, 5, 83, 0, 0, 6383, 6384, 5, 84, 0, 0, 6384, 6385, 5, 79, 0, 0, 6385, 6386, 5, 80, 0, 0, 6386, 1012, 1, 0, 0, 0, 6387, 6388, 5, 83, 0, 0, 6388, 6389, 5, 84, 0, 0, 6389, 6390, 5, 79, 0, 0, 6390, 6391, 5, 82, 0, 0, 6391, 6392, 5, 65, 0, 0, 6392, 6393, 5, 71, 0, 0, 6393, 6394, 5, 69, 0, 0, 6394, 1014, 1, 0, 0, 0, 6395, 6396, 5, 83, 0, 0, 6396, 6397, 5, 84, 0, 0, 6397, 6398, 5, 82, 0, 0, 6398, 6399, 5, 73, 0, 0, 6399, 6400, 5, 78, 0, 0, 6400, 6401, 5, 71, 0, 0, 6401, 1016, 1, 0, 0, 0, 6402, 6403, 5, 83, 0, 0, 6403, 6404, 5, 85, 0, 0, 6404, 6405, 5, 66, 0, 0, 6405, 6406, 5, 74, 0, 0, 6406, 6407, 5, 69, 0, 0, 6407, 6408, 5, 67, 0, 0, 6408, 6409, 5, 84, 0, 0, 6409, 1018, 1, 0, 0, 0, 6410, 6411, 5, 83, 0, 0, 6411, 6412, 5, 85, 0, 0, 6412, 6413, 5, 66, 0, 0, 6413, 6414, 5, 80, 0, 0, 6414, 6415, 5, 65, 0, 0, 6415, 6416, 5, 82, 0, 0, 6416, 6417, 5, 84, 0, 0, 6417, 6418, 5, 73, 0, 0, 6418, 6419, 5, 84, 0, 0, 6419, 6420, 5, 73, 0, 0, 6420, 6421, 5, 79, 0, 0, 6421, 6422, 5, 78, 0, 0, 6422, 1020, 1, 0, 0, 0, 6423, 6424, 5, 83, 0, 0, 6424, 6425, 5, 85, 0, 0, 6425, 6426, 5, 66, 0, 0, 6426, 6427, 5, 80, 0, 0, 6427, 6428, 5, 65, 0, 0, 6428, 6429, 5, 82, 0, 0, 6429, 6430, 5, 84, 0, 0, 6430, 6431, 5, 73, 0, 0, 6431, 6432, 5, 84, 0, 0, 6432, 6433, 5, 73, 0, 0, 6433, 6434, 5, 79, 0, 0, 6434, 6435, 5, 78, 0, 0, 6435, 6436, 5, 83, 0, 0, 6436, 1022, 1, 0, 0, 0, 6437, 6438, 5, 83, 0, 0, 6438, 6439, 5, 85, 0, 0, 6439, 6440, 5, 83, 0, 0, 6440, 6441, 5, 80, 0, 0, 6441, 6442, 5, 69, 0, 0, 6442, 6443, 5, 78, 0, 0, 6443, 6444, 5, 68, 0, 0, 6444, 1024, 1, 0, 0, 0, 6445, 6446, 5, 83, 0, 0, 6446, 6447, 5, 87, 0, 0, 6447, 6448, 5, 65, 0, 0, 6448, 6449, 5, 80, 0, 0, 6449, 6450, 5, 83, 0, 0, 6450, 1026, 1, 0, 0, 0, 6451, 6452, 5, 83, 0, 0, 6452, 6453, 5, 87, 0, 0, 6453, 6454, 5, 73, 0, 0, 6454, 6455, 5, 84, 0, 0, 6455, 6456, 5, 67, 0, 0, 6456, 6457, 5, 72, 0, 0, 6457, 6458, 5, 69, 0, 0, 6458, 6459, 5, 83, 0, 0, 6459, 1028, 1, 0, 0, 0, 6460, 6461, 5, 84, 0, 0, 6461, 6462, 5, 65, 0, 0, 6462, 6463, 5, 66, 0, 0, 6463, 6464, 5, 76, 0, 0, 6464, 6465, 5, 69, 0, 0, 6465, 6466, 5, 83, 0, 0, 6466, 6467, 5, 80, 0, 0, 6467, 6468, 5, 65, 0, 0, 6468, 6469, 5, 67, 0, 0, 6469, 6470, 5, 69, 0, 0, 6470, 1030, 1, 0, 0, 0, 6471, 6472, 5, 84, 0, 0, 6472, 6473, 5, 69, 0, 0, 6473, 6474, 5, 77, 0, 0, 6474, 6475, 5, 80, 0, 0, 6475, 6476, 5, 79, 0, 0, 6476, 6477, 5, 82, 0, 0, 6477, 6478, 5, 65, 0, 0, 6478, 6479, 5, 82, 0, 0, 6479, 6480, 5, 89, 0, 0, 6480, 1032, 1, 0, 0, 0, 6481, 6482, 5, 84, 0, 0, 6482, 6483, 5, 69, 0, 0, 6483, 6484, 5, 77, 0, 0, 6484, 6485, 5, 80, 0, 0, 6485, 6486, 5, 84, 0, 0, 6486, 6487, 5, 65, 0, 0, 6487, 6488, 5, 66, 0, 0, 6488, 6489, 5, 76, 0, 0, 6489, 6490, 5, 69, 0, 0, 6490, 1034, 1, 0, 0, 0, 6491, 6492, 5, 84, 0, 0, 6492, 6493, 5, 72, 0, 0, 6493, 6494, 5, 65, 0, 0, 6494, 6495, 5, 78, 0, 0, 6495, 1036, 1, 0, 0, 0, 6496, 6497, 5, 84, 0, 0, 6497, 6498, 5, 82, 0, 0, 6498, 6499, 5, 65, 0, 0, 6499, 6500, 5, 68, 0, 0, 6500, 6501, 5, 73, 0, 0, 6501, 6502, 5, 84, 0, 0, 6502, 6503, 5, 73, 0, 0, 6503, 6504, 5, 79, 0, 0, 6504, 6505, 5, 78, 0, 0, 6505, 6506, 5, 65, 0, 0, 6506, 6507, 5, 76, 0, 0, 6507, 1038, 1, 0, 0, 0, 6508, 6509, 5, 84, 0, 0, 6509, 6510, 5, 82, 0, 0, 6510, 6511, 5, 65, 0, 0, 6511, 6512, 5, 78, 0, 0, 6512, 6513, 5, 83, 0, 0, 6513, 6514, 5, 65, 0, 0, 6514, 6515, 5, 67, 0, 0, 6515, 6516, 5, 84, 0, 0, 6516, 6517, 5, 73, 0, 0, 6517, 6518, 5, 79, 0, 0, 6518, 6519, 5, 78, 0, 0, 6519, 1040, 1, 0, 0, 0, 6520, 6521, 5, 84, 0, 0, 6521, 6522, 5, 82, 0, 0, 6522, 6523, 5, 73, 0, 0, 6523, 6524, 5, 71, 0, 0, 6524, 6525, 5, 71, 0, 0, 6525, 6526, 5, 69, 0, 0, 6526, 6527, 5, 82, 0, 0, 6527, 6528, 5, 83, 0, 0, 6528, 1042, 1, 0, 0, 0, 6529, 6530, 5, 84, 0, 0, 6530, 6531, 5, 82, 0, 0, 6531, 6532, 5, 85, 0, 0, 6532, 6533, 5, 78, 0, 0, 6533, 6534, 5, 67, 0, 0, 6534, 6535, 5, 65, 0, 0, 6535, 6536, 5, 84, 0, 0, 6536, 6537, 5, 69, 0, 0, 6537, 1044, 1, 0, 0, 0, 6538, 6539, 5, 85, 0, 0, 6539, 6540, 5, 78, 0, 0, 6540, 6541, 5, 68, 0, 0, 6541, 6542, 5, 69, 0, 0, 6542, 6543, 5, 70, 0, 0, 6543, 6544, 5, 73, 0, 0, 6544, 6545, 5, 78, 0, 0, 6545, 6546, 5, 69, 0, 0, 6546, 6547, 5, 68, 0, 0, 6547, 1046, 1, 0, 0, 0, 6548, 6549, 5, 85, 0, 0, 6549, 6550, 5, 78, 0, 0, 6550, 6551, 5, 68, 0, 0, 6551, 6552, 5, 79, 0, 0, 6552, 6553, 5, 70, 0, 0, 6553, 6554, 5, 73, 0, 0, 6554, 6555, 5, 76, 0, 0, 6555, 6556, 5, 69, 0, 0, 6556, 1048, 1, 0, 0, 0, 6557, 6558, 5, 85, 0, 0, 6558, 6559, 5, 78, 0, 0, 6559, 6560, 5, 68, 0, 0, 6560, 6561, 5, 79, 0, 0, 6561, 6562, 5, 95, 0, 0, 6562, 6563, 5, 66, 0, 0, 6563, 6564, 5, 85, 0, 0, 6564, 6565, 5, 70, 0, 0, 6565, 6566, 5, 70, 0, 0, 6566, 6567, 5, 69, 0, 0, 6567, 6568, 5, 82, 0, 0, 6568, 6569, 5, 95, 0, 0, 6569, 6570, 5, 83, 0, 0, 6570, 6571, 5, 73, 0, 0, 6571, 6572, 5, 90, 0, 0, 6572, 6573, 5, 69, 0, 0, 6573, 1050, 1, 0, 0, 0, 6574, 6575, 5, 85, 0, 0, 6575, 6576, 5, 78, 0, 0, 6576, 6577, 5, 73, 0, 0, 6577, 6578, 5, 78, 0, 0, 6578, 6579, 5, 83, 0, 0, 6579, 6580, 5, 84, 0, 0, 6580, 6581, 5, 65, 0, 0, 6581, 6582, 5, 76, 0, 0, 6582, 6583, 5, 76, 0, 0, 6583, 1052, 1, 0, 0, 0, 6584, 6585, 5, 85, 0, 0, 6585, 6586, 5, 78, 0, 0, 6586, 6587, 5, 75, 0, 0, 6587, 6588, 5, 78, 0, 0, 6588, 6589, 5, 79, 0, 0, 6589, 6590, 5, 87, 0, 0, 6590, 6591, 5, 78, 0, 0, 6591, 1054, 1, 0, 0, 0, 6592, 6593, 5, 85, 0, 0, 6593, 6594, 5, 78, 0, 0, 6594, 6595, 5, 84, 0, 0, 6595, 6596, 5, 73, 0, 0, 6596, 6597, 5, 76, 0, 0, 6597, 1056, 1, 0, 0, 0, 6598, 6599, 5, 85, 0, 0, 6599, 6600, 5, 80, 0, 0, 6600, 6601, 5, 71, 0, 0, 6601, 6602, 5, 82, 0, 0, 6602, 6603, 5, 65, 0, 0, 6603, 6604, 5, 68, 0, 0, 6604, 6605, 5, 69, 0, 0, 6605, 1058, 1, 0, 0, 0, 6606, 6607, 5, 85, 0, 0, 6607, 6608, 5, 83, 0, 0, 6608, 6609, 5, 69, 0, 0, 6609, 6610, 5, 82, 0, 0, 6610, 1060, 1, 0, 0, 0, 6611, 6612, 5, 85, 0, 0, 6612, 6613, 5, 83, 0, 0, 6613, 6614, 5, 69, 0, 0, 6614, 6615, 5, 95, 0, 0, 6615, 6616, 5, 70, 0, 0, 6616, 6617, 5, 82, 0, 0, 6617, 6618, 5, 77, 0, 0, 6618, 1062, 1, 0, 0, 0, 6619, 6620, 5, 85, 0, 0, 6620, 6621, 5, 83, 0, 0, 6621, 6622, 5, 69, 0, 0, 6622, 6623, 5, 82, 0, 0, 6623, 6624, 5, 95, 0, 0, 6624, 6625, 5, 82, 0, 0, 6625, 6626, 5, 69, 0, 0, 6626, 6627, 5, 83, 0, 0, 6627, 6628, 5, 79, 0, 0, 6628, 6629, 5, 85, 0, 0, 6629, 6630, 5, 82, 0, 0, 6630, 6631, 5, 67, 0, 0, 6631, 6632, 5, 69, 0, 0, 6632, 6633, 5, 83, 0, 0, 6633, 1064, 1, 0, 0, 0, 6634, 6635, 5, 86, 0, 0, 6635, 6636, 5, 65, 0, 0, 6636, 6637, 5, 76, 0, 0, 6637, 6638, 5, 73, 0, 0, 6638, 6639, 5, 68, 0, 0, 6639, 6640, 5, 65, 0, 0, 6640, 6641, 5, 84, 0, 0, 6641, 6642, 5, 73, 0, 0, 6642, 6643, 5, 79, 0, 0, 6643, 6644, 5, 78, 0, 0, 6644, 1066, 1, 0, 0, 0, 6645, 6646, 5, 86, 0, 0, 6646, 6647, 5, 65, 0, 0, 6647, 6648, 5, 76, 0, 0, 6648, 6649, 5, 85, 0, 0, 6649, 6650, 5, 69, 0, 0, 6650, 1068, 1, 0, 0, 0, 6651, 6652, 5, 86, 0, 0, 6652, 6653, 5, 65, 0, 0, 6653, 6654, 5, 82, 0, 0, 6654, 6655, 5, 73, 0, 0, 6655, 6656, 5, 65, 0, 0, 6656, 6657, 5, 66, 0, 0, 6657, 6658, 5, 76, 0, 0, 6658, 6659, 5, 69, 0, 0, 6659, 6660, 5, 83, 0, 0, 6660, 1070, 1, 0, 0, 0, 6661, 6662, 5, 86, 0, 0, 6662, 6663, 5, 73, 0, 0, 6663, 6664, 5, 69, 0, 0, 6664, 6665, 5, 87, 0, 0, 6665, 1072, 1, 0, 0, 0, 6666, 6667, 5, 87, 0, 0, 6667, 6668, 5, 65, 0, 0, 6668, 6669, 5, 73, 0, 0, 6669, 6670, 5, 84, 0, 0, 6670, 1074, 1, 0, 0, 0, 6671, 6672, 5, 87, 0, 0, 6672, 6673, 5, 65, 0, 0, 6673, 6674, 5, 82, 0, 0, 6674, 6675, 5, 78, 0, 0, 6675, 6676, 5, 73, 0, 0, 6676, 6677, 5, 78, 0, 0, 6677, 6678, 5, 71, 0, 0, 6678, 6679, 5, 83, 0, 0, 6679, 1076, 1, 0, 0, 0, 6680, 6681, 5, 87, 0, 0, 6681, 6682, 5, 73, 0, 0, 6682, 6683, 5, 84, 0, 0, 6683, 6684, 5, 72, 0, 0, 6684, 6685, 5, 79, 0, 0, 6685, 6686, 5, 85, 0, 0, 6686, 6687, 5, 84, 0, 0, 6687, 1078, 1, 0, 0, 0, 6688, 6689, 5, 87, 0, 0, 6689, 6690, 5, 79, 0, 0, 6690, 6691, 5, 82, 0, 0, 6691, 6692, 5, 75, 0, 0, 6692, 1080, 1, 0, 0, 0, 6693, 6694, 5, 87, 0, 0, 6694, 6695, 5, 82, 0, 0, 6695, 6696, 5, 65, 0, 0, 6696, 6697, 5, 80, 0, 0, 6697, 6698, 5, 80, 0, 0, 6698, 6699, 5, 69, 0, 0, 6699, 6700, 5, 82, 0, 0, 6700, 1082, 1, 0, 0, 0, 6701, 6702, 5, 88, 0, 0, 6702, 6703, 5, 53, 0, 0, 6703, 6704, 5, 48, 0, 0, 6704, 6705, 5, 57, 0, 0, 6705, 1084, 1, 0, 0, 0, 6706, 6707, 5, 88, 0, 0, 6707, 6708, 5, 65, 0, 0, 6708, 1086, 1, 0, 0, 0, 6709, 6710, 5, 88, 0, 0, 6710, 6711, 5, 77, 0, 0, 6711, 6712, 5, 76, 0, 0, 6712, 1088, 1, 0, 0, 0, 6713, 6714, 5, 69, 0, 0, 6714, 6715, 5, 85, 0, 0, 6715, 6716, 5, 82, 0, 0, 6716, 1090, 1, 0, 0, 0, 6717, 6718, 5, 85, 0, 0, 6718, 6719, 5, 83, 0, 0, 6719, 6720, 5, 65, 0, 0, 6720, 1092, 1, 0, 0, 0, 6721, 6722, 5, 74, 0, 0, 6722, 6723, 5, 73, 0, 0, 6723, 6724, 5, 83, 0, 0, 6724, 1094, 1, 0, 0, 0, 6725, 6726, 5, 73, 0, 0, 6726, 6727, 5, 83, 0, 0, 6727, 6728, 5, 79, 0, 0, 6728, 1096, 1, 0, 0, 0, 6729, 6730, 5, 73, 0, 0, 6730, 6731, 5, 78, 0, 0, 6731, 6732, 5, 84, 0, 0, 6732, 6733, 5, 69, 0, 0, 6733, 6734, 5, 82, 0, 0, 6734, 6735, 5, 78, 0, 0, 6735, 6736, 5, 65, 0, 0, 6736, 6737, 5, 76, 0, 0, 6737, 1098, 1, 0, 0, 0, 6738, 6739, 5, 81, 0, 0, 6739, 6740, 5, 85, 0, 0, 6740, 6741, 5, 65, 0, 0, 6741, 6742, 5, 82, 0, 0, 6742, 6743, 5, 84, 0, 0, 6743, 6744, 5, 69, 0, 0, 6744, 6745, 5, 82, 0, 0, 6745, 1100, 1, 0, 0, 0, 6746, 6747, 5, 77, 0, 0, 6747, 6748, 5, 79, 0, 0, 6748, 6749, 5, 78, 0, 0, 6749, 6750, 5, 84, 0, 0, 6750, 6751, 5, 72, 0, 0, 6751, 1102, 1, 0, 0, 0, 6752, 6753, 5, 68, 0, 0, 6753, 6754, 5, 65, 0, 0, 6754, 6755, 5, 89, 0, 0, 6755, 1104, 1, 0, 0, 0, 6756, 6757, 5, 72, 0, 0, 6757, 6758, 5, 79, 0, 0, 6758, 6759, 5, 85, 0, 0, 6759, 6760, 5, 82, 0, 0, 6760, 1106, 1, 0, 0, 0, 6761, 6762, 5, 77, 0, 0, 6762, 6763, 5, 73, 0, 0, 6763, 6764, 5, 78, 0, 0, 6764, 6765, 5, 85, 0, 0, 6765, 6766, 5, 84, 0, 0, 6766, 6767, 5, 69, 0, 0, 6767, 1108, 1, 0, 0, 0, 6768, 6769, 5, 87, 0, 0, 6769, 6770, 5, 69, 0, 0, 6770, 6771, 5, 69, 0, 0, 6771, 6772, 5, 75, 0, 0, 6772, 1110, 1, 0, 0, 0, 6773, 6774, 5, 83, 0, 0, 6774, 6775, 5, 69, 0, 0, 6775, 6776, 5, 67, 0, 0, 6776, 6777, 5, 79, 0, 0, 6777, 6778, 5, 78, 0, 0, 6778, 6779, 5, 68, 0, 0, 6779, 1112, 1, 0, 0, 0, 6780, 6781, 5, 77, 0, 0, 6781, 6782, 5, 73, 0, 0, 6782, 6783, 5, 67, 0, 0, 6783, 6784, 5, 82, 0, 0, 6784, 6785, 5, 79, 0, 0, 6785, 6786, 5, 83, 0, 0, 6786, 6787, 5, 69, 0, 0, 6787, 6788, 5, 67, 0, 0, 6788, 6789, 5, 79, 0, 0, 6789, 6790, 5, 78, 0, 0, 6790, 6791, 5, 68, 0, 0, 6791, 1114, 1, 0, 0, 0, 6792, 6793, 5, 84, 0, 0, 6793, 6794, 5, 65, 0, 0, 6794, 6795, 5, 66, 0, 0, 6795, 6796, 5, 76, 0, 0, 6796, 6797, 5, 69, 0, 0, 6797, 6798, 5, 83, 0, 0, 6798, 1116, 1, 0, 0, 0, 6799, 6800, 5, 82, 0, 0, 6800, 6801, 5, 79, 0, 0, 6801, 6802, 5, 85, 0, 0, 6802, 6803, 5, 84, 0, 0, 6803, 6804, 5, 73, 0, 0, 6804, 6805, 5, 78, 0, 0, 6805, 6806, 5, 69, 0, 0, 6806, 1118, 1, 0, 0, 0, 6807, 6808, 5, 69, 0, 0, 6808, 6809, 5, 88, 0, 0, 6809, 6810, 5, 69, 0, 0, 6810, 6811, 5, 67, 0, 0, 6811, 6812, 5, 85, 0, 0, 6812, 6813, 5, 84, 0, 0, 6813, 6814, 5, 69, 0, 0, 6814, 1120, 1, 0, 0, 0, 6815, 6816, 5, 70, 0, 0, 6816, 6817, 5, 73, 0, 0, 6817, 6818, 5, 76, 0, 0, 6818, 6819, 5, 69, 0, 0, 6819, 1122, 1, 0, 0, 0, 6820, 6821, 5, 80, 0, 0, 6821, 6822, 5, 82, 0, 0, 6822, 6823, 5, 79, 0, 0, 6823, 6824, 5, 67, 0, 0, 6824, 6825, 5, 69, 0, 0, 6825, 6826, 5, 83, 0, 0, 6826, 6827, 5, 83, 0, 0, 6827, 1124, 1, 0, 0, 0, 6828, 6829, 5, 82, 0, 0, 6829, 6830, 5, 69, 0, 0, 6830, 6831, 5, 76, 0, 0, 6831, 6832, 5, 79, 0, 0, 6832, 6833, 5, 65, 0, 0, 6833, 6834, 5, 68, 0, 0, 6834, 1126, 1, 0, 0, 0, 6835, 6836, 5, 83, 0, 0, 6836, 6837, 5, 72, 0, 0, 6837, 6838, 5, 85, 0, 0, 6838, 6839, 5, 84, 0, 0, 6839, 6840, 5, 68, 0, 0, 6840, 6841, 5, 79, 0, 0, 6841, 6842, 5, 87, 0, 0, 6842, 6843, 5, 78, 0, 0, 6843, 1128, 1, 0, 0, 0, 6844, 6845, 5, 83, 0, 0, 6845, 6846, 5, 85, 0, 0, 6846, 6847, 5, 80, 0, 0, 6847, 6848, 5, 69, 0, 0, 6848, 6849, 5, 82, 0, 0, 6849, 1130, 1, 0, 0, 0, 6850, 6851, 5, 80, 0, 0, 6851, 6852, 5, 82, 0, 0, 6852, 6853, 5, 73, 0, 0, 6853, 6854, 5, 86, 0, 0, 6854, 6855, 5, 73, 0, 0, 6855, 6856, 5, 76, 0, 0, 6856, 6857, 5, 69, 0, 0, 6857, 6858, 5, 71, 0, 0, 6858, 6859, 5, 69, 0, 0, 6859, 6860, 5, 83, 0, 0, 6860, 1132, 1, 0, 0, 0, 6861, 6862, 5, 65, 0, 0, 6862, 6863, 5, 82, 0, 0, 6863, 6864, 5, 77, 0, 0, 6864, 6865, 5, 83, 0, 0, 6865, 6866, 5, 67, 0, 0, 6866, 6867, 5, 73, 0, 0, 6867, 6868, 5, 73, 0, 0, 6868, 6869, 5, 56, 0, 0, 6869, 1134, 1, 0, 0, 0, 6870, 6871, 5, 65, 0, 0, 6871, 6872, 5, 83, 0, 0, 6872, 6873, 5, 67, 0, 0, 6873, 6874, 5, 73, 0, 0, 6874, 6875, 5, 73, 0, 0, 6875, 1136, 1, 0, 0, 0, 6876, 6877, 5, 66, 0, 0, 6877, 6878, 5, 73, 0, 0, 6878, 6879, 5, 71, 0, 0, 6879, 6880, 5, 53, 0, 0, 6880, 1138, 1, 0, 0, 0, 6881, 6882, 5, 67, 0, 0, 6882, 6883, 5, 80, 0, 0, 6883, 6884, 5, 49, 0, 0, 6884, 6885, 5, 50, 0, 0, 6885, 6886, 5, 53, 0, 0, 6886, 6887, 5, 48, 0, 0, 6887, 1140, 1, 0, 0, 0, 6888, 6889, 5, 67, 0, 0, 6889, 6890, 5, 80, 0, 0, 6890, 6891, 5, 49, 0, 0, 6891, 6892, 5, 50, 0, 0, 6892, 6893, 5, 53, 0, 0, 6893, 6894, 5, 49, 0, 0, 6894, 1142, 1, 0, 0, 0, 6895, 6896, 5, 67, 0, 0, 6896, 6897, 5, 80, 0, 0, 6897, 6898, 5, 49, 0, 0, 6898, 6899, 5, 50, 0, 0, 6899, 6900, 5, 53, 0, 0, 6900, 6901, 5, 54, 0, 0, 6901, 1144, 1, 0, 0, 0, 6902, 6903, 5, 67, 0, 0, 6903, 6904, 5, 80, 0, 0, 6904, 6905, 5, 49, 0, 0, 6905, 6906, 5, 50, 0, 0, 6906, 6907, 5, 53, 0, 0, 6907, 6908, 5, 55, 0, 0, 6908, 1146, 1, 0, 0, 0, 6909, 6910, 5, 67, 0, 0, 6910, 6911, 5, 80, 0, 0, 6911, 6912, 5, 56, 0, 0, 6912, 6913, 5, 53, 0, 0, 6913, 6914, 5, 48, 0, 0, 6914, 1148, 1, 0, 0, 0, 6915, 6916, 5, 67, 0, 0, 6916, 6917, 5, 80, 0, 0, 6917, 6918, 5, 56, 0, 0, 6918, 6919, 5, 53, 0, 0, 6919, 6920, 5, 50, 0, 0, 6920, 1150, 1, 0, 0, 0, 6921, 6922, 5, 67, 0, 0, 6922, 6923, 5, 80, 0, 0, 6923, 6924, 5, 56, 0, 0, 6924, 6925, 5, 54, 0, 0, 6925, 6926, 5, 54, 0, 0, 6926, 1152, 1, 0, 0, 0, 6927, 6928, 5, 67, 0, 0, 6928, 6929, 5, 80, 0, 0, 6929, 6930, 5, 57, 0, 0, 6930, 6931, 5, 51, 0, 0, 6931, 6932, 5, 50, 0, 0, 6932, 1154, 1, 0, 0, 0, 6933, 6934, 5, 68, 0, 0, 6934, 6935, 5, 69, 0, 0, 6935, 6936, 5, 67, 0, 0, 6936, 6937, 5, 56, 0, 0, 6937, 1156, 1, 0, 0, 0, 6938, 6939, 5, 69, 0, 0, 6939, 6940, 5, 85, 0, 0, 6940, 6941, 5, 67, 0, 0, 6941, 6942, 5, 74, 0, 0, 6942, 6943, 5, 80, 0, 0, 6943, 6944, 5, 77, 0, 0, 6944, 6945, 5, 83, 0, 0, 6945, 1158, 1, 0, 0, 0, 6946, 6947, 5, 69, 0, 0, 6947, 6948, 5, 85, 0, 0, 6948, 6949, 5, 67, 0, 0, 6949, 6950, 5, 75, 0, 0, 6950, 6951, 5, 82, 0, 0, 6951, 1160, 1, 0, 0, 0, 6952, 6953, 5, 71, 0, 0, 6953, 6954, 5, 66, 0, 0, 6954, 6955, 5, 50, 0, 0, 6955, 6956, 5, 51, 0, 0, 6956, 6957, 5, 49, 0, 0, 6957, 6958, 5, 50, 0, 0, 6958, 1162, 1, 0, 0, 0, 6959, 6960, 5, 71, 0, 0, 6960, 6961, 5, 66, 0, 0, 6961, 6962, 5, 75, 0, 0, 6962, 1164, 1, 0, 0, 0, 6963, 6964, 5, 71, 0, 0, 6964, 6965, 5, 69, 0, 0, 6965, 6966, 5, 79, 0, 0, 6966, 6967, 5, 83, 0, 0, 6967, 6968, 5, 84, 0, 0, 6968, 6969, 5, 68, 0, 0, 6969, 6970, 5, 56, 0, 0, 6970, 1166, 1, 0, 0, 0, 6971, 6972, 5, 71, 0, 0, 6972, 6973, 5, 82, 0, 0, 6973, 6974, 5, 69, 0, 0, 6974, 6975, 5, 69, 0, 0, 6975, 6976, 5, 75, 0, 0, 6976, 1168, 1, 0, 0, 0, 6977, 6978, 5, 72, 0, 0, 6978, 6979, 5, 69, 0, 0, 6979, 6980, 5, 66, 0, 0, 6980, 6981, 5, 82, 0, 0, 6981, 6982, 5, 69, 0, 0, 6982, 6983, 5, 87, 0, 0, 6983, 1170, 1, 0, 0, 0, 6984, 6985, 5, 72, 0, 0, 6985, 6986, 5, 80, 0, 0, 6986, 6987, 5, 56, 0, 0, 6987, 1172, 1, 0, 0, 0, 6988, 6989, 5, 75, 0, 0, 6989, 6990, 5, 69, 0, 0, 6990, 6991, 5, 89, 0, 0, 6991, 6992, 5, 66, 0, 0, 6992, 6993, 5, 67, 0, 0, 6993, 6994, 5, 83, 0, 0, 6994, 6995, 5, 50, 0, 0, 6995, 1174, 1, 0, 0, 0, 6996, 6997, 5, 75, 0, 0, 6997, 6998, 5, 79, 0, 0, 6998, 6999, 5, 73, 0, 0, 6999, 7000, 5, 56, 0, 0, 7000, 7001, 5, 82, 0, 0, 7001, 1176, 1, 0, 0, 0, 7002, 7003, 5, 75, 0, 0, 7003, 7004, 5, 79, 0, 0, 7004, 7005, 5, 73, 0, 0, 7005, 7006, 5, 56, 0, 0, 7006, 7007, 5, 85, 0, 0, 7007, 1178, 1, 0, 0, 0, 7008, 7009, 5, 76, 0, 0, 7009, 7010, 5, 65, 0, 0, 7010, 7011, 5, 84, 0, 0, 7011, 7012, 5, 73, 0, 0, 7012, 7013, 5, 78, 0, 0, 7013, 7014, 5, 49, 0, 0, 7014, 1180, 1, 0, 0, 0, 7015, 7016, 5, 76, 0, 0, 7016, 7017, 5, 65, 0, 0, 7017, 7018, 5, 84, 0, 0, 7018, 7019, 5, 73, 0, 0, 7019, 7020, 5, 78, 0, 0, 7020, 7021, 5, 50, 0, 0, 7021, 1182, 1, 0, 0, 0, 7022, 7023, 5, 76, 0, 0, 7023, 7024, 5, 65, 0, 0, 7024, 7025, 5, 84, 0, 0, 7025, 7026, 5, 73, 0, 0, 7026, 7027, 5, 78, 0, 0, 7027, 7028, 5, 53, 0, 0, 7028, 1184, 1, 0, 0, 0, 7029, 7030, 5, 76, 0, 0, 7030, 7031, 5, 65, 0, 0, 7031, 7032, 5, 84, 0, 0, 7032, 7033, 5, 73, 0, 0, 7033, 7034, 5, 78, 0, 0, 7034, 7035, 5, 55, 0, 0, 7035, 1186, 1, 0, 0, 0, 7036, 7037, 5, 77, 0, 0, 7037, 7038, 5, 65, 0, 0, 7038, 7039, 5, 67, 0, 0, 7039, 7040, 5, 67, 0, 0, 7040, 7041, 5, 69, 0, 0, 7041, 1188, 1, 0, 0, 0, 7042, 7043, 5, 77, 0, 0, 7043, 7044, 5, 65, 0, 0, 7044, 7045, 5, 67, 0, 0, 7045, 7046, 5, 82, 0, 0, 7046, 7047, 5, 79, 0, 0, 7047, 7048, 5, 77, 0, 0, 7048, 7049, 5, 65, 0, 0, 7049, 7050, 5, 78, 0, 0, 7050, 1190, 1, 0, 0, 0, 7051, 7052, 5, 83, 0, 0, 7052, 7053, 5, 74, 0, 0, 7053, 7054, 5, 73, 0, 0, 7054, 7055, 5, 83, 0, 0, 7055, 1192, 1, 0, 0, 0, 7056, 7057, 5, 83, 0, 0, 7057, 7058, 5, 87, 0, 0, 7058, 7059, 5, 69, 0, 0, 7059, 7060, 5, 55, 0, 0, 7060, 1194, 1, 0, 0, 0, 7061, 7062, 5, 84, 0, 0, 7062, 7063, 5, 73, 0, 0, 7063, 7064, 5, 83, 0, 0, 7064, 7065, 5, 54, 0, 0, 7065, 7066, 5, 50, 0, 0, 7066, 7067, 5, 48, 0, 0, 7067, 1196, 1, 0, 0, 0, 7068, 7069, 5, 85, 0, 0, 7069, 7070, 5, 67, 0, 0, 7070, 7071, 5, 83, 0, 0, 7071, 7072, 5, 50, 0, 0, 7072, 1198, 1, 0, 0, 0, 7073, 7074, 5, 85, 0, 0, 7074, 7075, 5, 74, 0, 0, 7075, 7076, 5, 73, 0, 0, 7076, 7077, 5, 83, 0, 0, 7077, 1200, 1, 0, 0, 0, 7078, 7079, 5, 85, 0, 0, 7079, 7080, 5, 84, 0, 0, 7080, 7081, 5, 70, 0, 0, 7081, 7082, 5, 49, 0, 0, 7082, 7083, 5, 54, 0, 0, 7083, 1202, 1, 0, 0, 0, 7084, 7085, 5, 85, 0, 0, 7085, 7086, 5, 84, 0, 0, 7086, 7087, 5, 70, 0, 0, 7087, 7088, 5, 49, 0, 0, 7088, 7089, 5, 54, 0, 0, 7089, 7090, 5, 76, 0, 0, 7090, 7091, 5, 69, 0, 0, 7091, 1204, 1, 0, 0, 0, 7092, 7093, 5, 85, 0, 0, 7093, 7094, 5, 84, 0, 0, 7094, 7095, 5, 70, 0, 0, 7095, 7096, 5, 51, 0, 0, 7096, 7097, 5, 50, 0, 0, 7097, 1206, 1, 0, 0, 0, 7098, 7099, 5, 85, 0, 0, 7099, 7100, 5, 84, 0, 0, 7100, 7101, 5, 70, 0, 0, 7101, 7102, 5, 56, 0, 0, 7102, 1208, 1, 0, 0, 0, 7103, 7104, 5, 85, 0, 0, 7104, 7105, 5, 84, 0, 0, 7105, 7106, 5, 70, 0, 0, 7106, 7107, 5, 56, 0, 0, 7107, 7108, 5, 77, 0, 0, 7108, 7109, 5, 66, 0, 0, 7109, 7110, 5, 51, 0, 0, 7110, 1210, 1, 0, 0, 0, 7111, 7112, 5, 85, 0, 0, 7112, 7113, 5, 84, 0, 0, 7113, 7114, 5, 70, 0, 0, 7114, 7115, 5, 56, 0, 0, 7115, 7116, 5, 77, 0, 0, 7116, 7117, 5, 66, 0, 0, 7117, 7118, 5, 52, 0, 0, 7118, 1212, 1, 0, 0, 0, 7119, 7120, 5, 65, 0, 0, 7120, 7121, 5, 82, 0, 0, 7121, 7122, 5, 67, 0, 0, 7122, 7123, 5, 72, 0, 0, 7123, 7124, 5, 73, 0, 0, 7124, 7125, 5, 86, 0, 0, 7125, 7126, 5, 69, 0, 0, 7126, 1214, 1, 0, 0, 0, 7127, 7128, 5, 66, 0, 0, 7128, 7129, 5, 76, 0, 0, 7129, 7130, 5, 65, 0, 0, 7130, 7131, 5, 67, 0, 0, 7131, 7132, 5, 75, 0, 0, 7132, 7133, 5, 72, 0, 0, 7133, 7134, 5, 79, 0, 0, 7134, 7135, 5, 76, 0, 0, 7135, 7136, 5, 69, 0, 0, 7136, 1216, 1, 0, 0, 0, 7137, 7138, 5, 67, 0, 0, 7138, 7139, 5, 83, 0, 0, 7139, 7140, 5, 86, 0, 0, 7140, 1218, 1, 0, 0, 0, 7141, 7142, 5, 70, 0, 0, 7142, 7143, 5, 69, 0, 0, 7143, 7144, 5, 68, 0, 0, 7144, 7145, 5, 69, 0, 0, 7145, 7146, 5, 82, 0, 0, 7146, 7147, 5, 65, 0, 0, 7147, 7148, 5, 84, 0, 0, 7148, 7149, 5, 69, 0, 0, 7149, 7150, 5, 68, 0, 0, 7150, 1220, 1, 0, 0, 0, 7151, 7152, 5, 73, 0, 0, 7152, 7153, 5, 78, 0, 0, 7153, 7154, 5, 78, 0, 0, 7154, 7155, 5, 79, 0, 0, 7155, 7156, 5, 68, 0, 0, 7156, 7157, 5, 66, 0, 0, 7157, 1222, 1, 0, 0, 0, 7158, 7159, 5, 77, 0, 0, 7159, 7160, 5, 69, 0, 0, 7160, 7161, 5, 77, 0, 0, 7161, 7162, 5, 79, 0, 0, 7162, 7163, 5, 82, 0, 0, 7163, 7164, 5, 89, 0, 0, 7164, 1224, 1, 0, 0, 0, 7165, 7166, 5, 77, 0, 0, 7166, 7167, 5, 82, 0, 0, 7167, 7168, 5, 71, 0, 0, 7168, 7169, 5, 95, 0, 0, 7169, 7170, 5, 77, 0, 0, 7170, 7171, 5, 89, 0, 0, 7171, 7172, 5, 73, 0, 0, 7172, 7173, 5, 83, 0, 0, 7173, 7174, 5, 65, 0, 0, 7174, 7175, 5, 77, 0, 0, 7175, 1226, 1, 0, 0, 0, 7176, 7177, 5, 77, 0, 0, 7177, 7178, 5, 89, 0, 0, 7178, 7179, 5, 73, 0, 0, 7179, 7180, 5, 83, 0, 0, 7180, 7181, 5, 65, 0, 0, 7181, 7182, 5, 77, 0, 0, 7182, 1228, 1, 0, 0, 0, 7183, 7184, 5, 78, 0, 0, 7184, 7185, 5, 68, 0, 0, 7185, 7186, 5, 66, 0, 0, 7186, 1230, 1, 0, 0, 0, 7187, 7188, 5, 78, 0, 0, 7188, 7189, 5, 68, 0, 0, 7189, 7190, 5, 66, 0, 0, 7190, 7191, 5, 67, 0, 0, 7191, 7192, 5, 76, 0, 0, 7192, 7193, 5, 85, 0, 0, 7193, 7194, 5, 83, 0, 0, 7194, 7195, 5, 84, 0, 0, 7195, 7196, 5, 69, 0, 0, 7196, 7197, 5, 82, 0, 0, 7197, 1232, 1, 0, 0, 0, 7198, 7199, 5, 80, 0, 0, 7199, 7200, 5, 69, 0, 0, 7200, 7201, 5, 82, 0, 0, 7201, 7202, 5, 70, 0, 0, 7202, 7203, 5, 79, 0, 0, 7203, 7204, 5, 77, 0, 0, 7204, 7205, 5, 65, 0, 0, 7205, 7206, 5, 78, 0, 0, 7206, 7207, 5, 67, 0, 0, 7207, 7208, 5, 69, 0, 0, 7208, 7209, 5, 95, 0, 0, 7209, 7210, 5, 83, 0, 0, 7210, 7211, 5, 67, 0, 0, 7211, 7212, 5, 72, 0, 0, 7212, 7213, 5, 69, 0, 0, 7213, 7214, 5, 77, 0, 0, 7214, 7215, 5, 65, 0, 0, 7215, 1234, 1, 0, 0, 0, 7216, 7217, 5, 82, 0, 0, 7217, 7218, 5, 69, 0, 0, 7218, 7219, 5, 80, 0, 0, 7219, 7220, 5, 69, 0, 0, 7220, 7221, 5, 65, 0, 0, 7221, 7222, 5, 84, 0, 0, 7222, 7223, 5, 65, 0, 0, 7223, 7224, 5, 66, 0, 0, 7224, 7225, 5, 76, 0, 0, 7225, 7226, 5, 69, 0, 0, 7226, 1236, 1, 0, 0, 0, 7227, 7228, 5, 67, 0, 0, 7228, 7229, 5, 79, 0, 0, 7229, 7230, 5, 77, 0, 0, 7230, 7231, 5, 77, 0, 0, 7231, 7232, 5, 73, 0, 0, 7232, 7233, 5, 84, 0, 0, 7233, 7234, 5, 84, 0, 0, 7234, 7235, 5, 69, 0, 0, 7235, 7236, 5, 68, 0, 0, 7236, 1238, 1, 0, 0, 0, 7237, 7238, 5, 85, 0, 0, 7238, 7239, 5, 78, 0, 0, 7239, 7240, 5, 67, 0, 0, 7240, 7241, 5, 79, 0, 0, 7241, 7242, 5, 77, 0, 0, 7242, 7243, 5, 77, 0, 0, 7243, 7244, 5, 73, 0, 0, 7244, 7245, 5, 84, 0, 0, 7245, 7246, 5, 84, 0, 0, 7246, 7247, 5, 69, 0, 0, 7247, 7248, 5, 68, 0, 0, 7248, 1240, 1, 0, 0, 0, 7249, 7250, 5, 83, 0, 0, 7250, 7251, 5, 69, 0, 0, 7251, 7252, 5, 82, 0, 0, 7252, 7253, 5, 73, 0, 0, 7253, 7254, 5, 65, 0, 0, 7254, 7255, 5, 76, 0, 0, 7255, 7256, 5, 73, 0, 0, 7256, 7257, 5, 90, 0, 0, 7257, 7258, 5, 65, 0, 0, 7258, 7259, 5, 66, 0, 0, 7259, 7260, 5, 76, 0, 0, 7260, 7261, 5, 69, 0, 0, 7261, 1242, 1, 0, 0, 0, 7262, 7263, 5, 71, 0, 0, 7263, 7264, 5, 69, 0, 0, 7264, 7265, 5, 79, 0, 0, 7265, 7266, 5, 77, 0, 0, 7266, 7267, 5, 69, 0, 0, 7267, 7268, 5, 84, 0, 0, 7268, 7269, 5, 82, 0, 0, 7269, 7270, 5, 89, 0, 0, 7270, 7271, 5, 67, 0, 0, 7271, 7272, 5, 79, 0, 0, 7272, 7273, 5, 76, 0, 0, 7273, 7274, 5, 76, 0, 0, 7274, 7275, 5, 69, 0, 0, 7275, 7276, 5, 67, 0, 0, 7276, 7277, 5, 84, 0, 0, 7277, 7278, 5, 73, 0, 0, 7278, 7279, 5, 79, 0, 0, 7279, 7280, 5, 78, 0, 0, 7280, 1244, 1, 0, 0, 0, 7281, 7282, 5, 76, 0, 0, 7282, 7283, 5, 73, 0, 0, 7283, 7284, 5, 78, 0, 0, 7284, 7285, 5, 69, 0, 0, 7285, 7286, 5, 83, 0, 0, 7286, 7287, 5, 84, 0, 0, 7287, 7288, 5, 82, 0, 0, 7288, 7289, 5, 73, 0, 0, 7289, 7290, 5, 78, 0, 0, 7290, 7291, 5, 71, 0, 0, 7291, 1246, 1, 0, 0, 0, 7292, 7293, 5, 77, 0, 0, 7293, 7294, 5, 85, 0, 0, 7294, 7295, 5, 76, 0, 0, 7295, 7296, 5, 84, 0, 0, 7296, 7297, 5, 73, 0, 0, 7297, 7298, 5, 76, 0, 0, 7298, 7299, 5, 73, 0, 0, 7299, 7300, 5, 78, 0, 0, 7300, 7301, 5, 69, 0, 0, 7301, 7302, 5, 83, 0, 0, 7302, 7303, 5, 84, 0, 0, 7303, 7304, 5, 82, 0, 0, 7304, 7305, 5, 73, 0, 0, 7305, 7306, 5, 78, 0, 0, 7306, 7307, 5, 71, 0, 0, 7307, 1248, 1, 0, 0, 0, 7308, 7309, 5, 77, 0, 0, 7309, 7310, 5, 85, 0, 0, 7310, 7311, 5, 76, 0, 0, 7311, 7312, 5, 84, 0, 0, 7312, 7313, 5, 73, 0, 0, 7313, 7314, 5, 80, 0, 0, 7314, 7315, 5, 79, 0, 0, 7315, 7316, 5, 73, 0, 0, 7316, 7317, 5, 78, 0, 0, 7317, 7318, 5, 84, 0, 0, 7318, 1250, 1, 0, 0, 0, 7319, 7320, 5, 77, 0, 0, 7320, 7321, 5, 85, 0, 0, 7321, 7322, 5, 76, 0, 0, 7322, 7323, 5, 84, 0, 0, 7323, 7324, 5, 73, 0, 0, 7324, 7325, 5, 80, 0, 0, 7325, 7326, 5, 79, 0, 0, 7326, 7327, 5, 76, 0, 0, 7327, 7328, 5, 89, 0, 0, 7328, 7329, 5, 71, 0, 0, 7329, 7330, 5, 79, 0, 0, 7330, 7331, 5, 78, 0, 0, 7331, 1252, 1, 0, 0, 0, 7332, 7333, 5, 80, 0, 0, 7333, 7334, 5, 79, 0, 0, 7334, 7335, 5, 73, 0, 0, 7335, 7336, 5, 78, 0, 0, 7336, 7337, 5, 84, 0, 0, 7337, 1254, 1, 0, 0, 0, 7338, 7339, 5, 80, 0, 0, 7339, 7340, 5, 79, 0, 0, 7340, 7341, 5, 76, 0, 0, 7341, 7342, 5, 89, 0, 0, 7342, 7343, 5, 71, 0, 0, 7343, 7344, 5, 79, 0, 0, 7344, 7345, 5, 78, 0, 0, 7345, 1256, 1, 0, 0, 0, 7346, 7347, 5, 65, 0, 0, 7347, 7348, 5, 66, 0, 0, 7348, 7349, 5, 83, 0, 0, 7349, 1258, 1, 0, 0, 0, 7350, 7351, 5, 65, 0, 0, 7351, 7352, 5, 67, 0, 0, 7352, 7353, 5, 79, 0, 0, 7353, 7354, 5, 83, 0, 0, 7354, 1260, 1, 0, 0, 0, 7355, 7356, 5, 65, 0, 0, 7356, 7357, 5, 68, 0, 0, 7357, 7358, 5, 68, 0, 0, 7358, 7359, 5, 68, 0, 0, 7359, 7360, 5, 65, 0, 0, 7360, 7361, 5, 84, 0, 0, 7361, 7362, 5, 69, 0, 0, 7362, 1262, 1, 0, 0, 0, 7363, 7364, 5, 65, 0, 0, 7364, 7365, 5, 68, 0, 0, 7365, 7366, 5, 68, 0, 0, 7366, 7367, 5, 84, 0, 0, 7367, 7368, 5, 73, 0, 0, 7368, 7369, 5, 77, 0, 0, 7369, 7370, 5, 69, 0, 0, 7370, 1264, 1, 0, 0, 0, 7371, 7372, 5, 65, 0, 0, 7372, 7373, 5, 69, 0, 0, 7373, 7374, 5, 83, 0, 0, 7374, 7375, 5, 95, 0, 0, 7375, 7376, 5, 68, 0, 0, 7376, 7377, 5, 69, 0, 0, 7377, 7378, 5, 67, 0, 0, 7378, 7379, 5, 82, 0, 0, 7379, 7380, 5, 89, 0, 0, 7380, 7381, 5, 80, 0, 0, 7381, 7382, 5, 84, 0, 0, 7382, 1266, 1, 0, 0, 0, 7383, 7384, 5, 65, 0, 0, 7384, 7385, 5, 69, 0, 0, 7385, 7386, 5, 83, 0, 0, 7386, 7387, 5, 95, 0, 0, 7387, 7388, 5, 69, 0, 0, 7388, 7389, 5, 78, 0, 0, 7389, 7390, 5, 67, 0, 0, 7390, 7391, 5, 82, 0, 0, 7391, 7392, 5, 89, 0, 0, 7392, 7393, 5, 80, 0, 0, 7393, 7394, 5, 84, 0, 0, 7394, 1268, 1, 0, 0, 0, 7395, 7396, 5, 65, 0, 0, 7396, 7397, 5, 82, 0, 0, 7397, 7398, 5, 69, 0, 0, 7398, 7399, 5, 65, 0, 0, 7399, 1270, 1, 0, 0, 0, 7400, 7401, 5, 65, 0, 0, 7401, 7402, 5, 83, 0, 0, 7402, 7403, 5, 66, 0, 0, 7403, 7404, 5, 73, 0, 0, 7404, 7405, 5, 78, 0, 0, 7405, 7406, 5, 65, 0, 0, 7406, 7407, 5, 82, 0, 0, 7407, 7408, 5, 89, 0, 0, 7408, 1272, 1, 0, 0, 0, 7409, 7410, 5, 65, 0, 0, 7410, 7411, 5, 83, 0, 0, 7411, 7412, 5, 73, 0, 0, 7412, 7413, 5, 78, 0, 0, 7413, 1274, 1, 0, 0, 0, 7414, 7415, 5, 65, 0, 0, 7415, 7416, 5, 83, 0, 0, 7416, 7417, 5, 84, 0, 0, 7417, 7418, 5, 69, 0, 0, 7418, 7419, 5, 88, 0, 0, 7419, 7420, 5, 84, 0, 0, 7420, 1276, 1, 0, 0, 0, 7421, 7422, 5, 65, 0, 0, 7422, 7423, 5, 83, 0, 0, 7423, 7424, 5, 87, 0, 0, 7424, 7425, 5, 75, 0, 0, 7425, 7426, 5, 66, 0, 0, 7426, 1278, 1, 0, 0, 0, 7427, 7428, 5, 65, 0, 0, 7428, 7429, 5, 83, 0, 0, 7429, 7430, 5, 87, 0, 0, 7430, 7431, 5, 75, 0, 0, 7431, 7432, 5, 84, 0, 0, 7432, 1280, 1, 0, 0, 0, 7433, 7434, 5, 65, 0, 0, 7434, 7435, 5, 83, 0, 0, 7435, 7436, 5, 89, 0, 0, 7436, 7437, 5, 77, 0, 0, 7437, 7438, 5, 77, 0, 0, 7438, 7439, 5, 69, 0, 0, 7439, 7440, 5, 84, 0, 0, 7440, 7441, 5, 82, 0, 0, 7441, 7442, 5, 73, 0, 0, 7442, 7443, 5, 67, 0, 0, 7443, 7444, 5, 95, 0, 0, 7444, 7445, 5, 68, 0, 0, 7445, 7446, 5, 69, 0, 0, 7446, 7447, 5, 67, 0, 0, 7447, 7448, 5, 82, 0, 0, 7448, 7449, 5, 89, 0, 0, 7449, 7450, 5, 80, 0, 0, 7450, 7451, 5, 84, 0, 0, 7451, 1282, 1, 0, 0, 0, 7452, 7453, 5, 65, 0, 0, 7453, 7454, 5, 83, 0, 0, 7454, 7455, 5, 89, 0, 0, 7455, 7456, 5, 77, 0, 0, 7456, 7457, 5, 77, 0, 0, 7457, 7458, 5, 69, 0, 0, 7458, 7459, 5, 84, 0, 0, 7459, 7460, 5, 82, 0, 0, 7460, 7461, 5, 73, 0, 0, 7461, 7462, 5, 67, 0, 0, 7462, 7463, 5, 95, 0, 0, 7463, 7464, 5, 68, 0, 0, 7464, 7465, 5, 69, 0, 0, 7465, 7466, 5, 82, 0, 0, 7466, 7467, 5, 73, 0, 0, 7467, 7468, 5, 86, 0, 0, 7468, 7469, 5, 69, 0, 0, 7469, 1284, 1, 0, 0, 0, 7470, 7471, 5, 65, 0, 0, 7471, 7472, 5, 83, 0, 0, 7472, 7473, 5, 89, 0, 0, 7473, 7474, 5, 77, 0, 0, 7474, 7475, 5, 77, 0, 0, 7475, 7476, 5, 69, 0, 0, 7476, 7477, 5, 84, 0, 0, 7477, 7478, 5, 82, 0, 0, 7478, 7479, 5, 73, 0, 0, 7479, 7480, 5, 67, 0, 0, 7480, 7481, 5, 95, 0, 0, 7481, 7482, 5, 69, 0, 0, 7482, 7483, 5, 78, 0, 0, 7483, 7484, 5, 67, 0, 0, 7484, 7485, 5, 82, 0, 0, 7485, 7486, 5, 89, 0, 0, 7486, 7487, 5, 80, 0, 0, 7487, 7488, 5, 84, 0, 0, 7488, 1286, 1, 0, 0, 0, 7489, 7490, 5, 65, 0, 0, 7490, 7491, 5, 83, 0, 0, 7491, 7492, 5, 89, 0, 0, 7492, 7493, 5, 77, 0, 0, 7493, 7494, 5, 77, 0, 0, 7494, 7495, 5, 69, 0, 0, 7495, 7496, 5, 84, 0, 0, 7496, 7497, 5, 82, 0, 0, 7497, 7498, 5, 73, 0, 0, 7498, 7499, 5, 67, 0, 0, 7499, 7500, 5, 95, 0, 0, 7500, 7501, 5, 83, 0, 0, 7501, 7502, 5, 73, 0, 0, 7502, 7503, 5, 71, 0, 0, 7503, 7504, 5, 78, 0, 0, 7504, 1288, 1, 0, 0, 0, 7505, 7506, 5, 65, 0, 0, 7506, 7507, 5, 83, 0, 0, 7507, 7508, 5, 89, 0, 0, 7508, 7509, 5, 77, 0, 0, 7509, 7510, 5, 77, 0, 0, 7510, 7511, 5, 69, 0, 0, 7511, 7512, 5, 84, 0, 0, 7512, 7513, 5, 82, 0, 0, 7513, 7514, 5, 73, 0, 0, 7514, 7515, 5, 67, 0, 0, 7515, 7516, 5, 95, 0, 0, 7516, 7517, 5, 86, 0, 0, 7517, 7518, 5, 69, 0, 0, 7518, 7519, 5, 82, 0, 0, 7519, 7520, 5, 73, 0, 0, 7520, 7521, 5, 70, 0, 0, 7521, 7522, 5, 89, 0, 0, 7522, 1290, 1, 0, 0, 0, 7523, 7524, 5, 65, 0, 0, 7524, 7525, 5, 84, 0, 0, 7525, 7526, 5, 65, 0, 0, 7526, 7527, 5, 78, 0, 0, 7527, 1292, 1, 0, 0, 0, 7528, 7529, 5, 65, 0, 0, 7529, 7530, 5, 84, 0, 0, 7530, 7531, 5, 65, 0, 0, 7531, 7532, 5, 78, 0, 0, 7532, 7533, 5, 50, 0, 0, 7533, 1294, 1, 0, 0, 0, 7534, 7535, 5, 66, 0, 0, 7535, 7536, 5, 69, 0, 0, 7536, 7537, 5, 78, 0, 0, 7537, 7538, 5, 67, 0, 0, 7538, 7539, 5, 72, 0, 0, 7539, 7540, 5, 77, 0, 0, 7540, 7541, 5, 65, 0, 0, 7541, 7542, 5, 82, 0, 0, 7542, 7543, 5, 75, 0, 0, 7543, 1296, 1, 0, 0, 0, 7544, 7545, 5, 66, 0, 0, 7545, 7546, 5, 73, 0, 0, 7546, 7547, 5, 78, 0, 0, 7547, 1298, 1, 0, 0, 0, 7548, 7549, 5, 66, 0, 0, 7549, 7550, 5, 73, 0, 0, 7550, 7551, 5, 84, 0, 0, 7551, 7552, 5, 95, 0, 0, 7552, 7553, 5, 67, 0, 0, 7553, 7554, 5, 79, 0, 0, 7554, 7555, 5, 85, 0, 0, 7555, 7556, 5, 78, 0, 0, 7556, 7557, 5, 84, 0, 0, 7557, 1300, 1, 0, 0, 0, 7558, 7559, 5, 66, 0, 0, 7559, 7560, 5, 73, 0, 0, 7560, 7561, 5, 84, 0, 0, 7561, 7562, 5, 95, 0, 0, 7562, 7563, 5, 76, 0, 0, 7563, 7564, 5, 69, 0, 0, 7564, 7565, 5, 78, 0, 0, 7565, 7566, 5, 71, 0, 0, 7566, 7567, 5, 84, 0, 0, 7567, 7568, 5, 72, 0, 0, 7568, 1302, 1, 0, 0, 0, 7569, 7570, 5, 66, 0, 0, 7570, 7571, 5, 85, 0, 0, 7571, 7572, 5, 70, 0, 0, 7572, 7573, 5, 70, 0, 0, 7573, 7574, 5, 69, 0, 0, 7574, 7575, 5, 82, 0, 0, 7575, 1304, 1, 0, 0, 0, 7576, 7577, 5, 67, 0, 0, 7577, 7578, 5, 69, 0, 0, 7578, 7579, 5, 73, 0, 0, 7579, 7580, 5, 76, 0, 0, 7580, 1306, 1, 0, 0, 0, 7581, 7582, 5, 67, 0, 0, 7582, 7583, 5, 69, 0, 0, 7583, 7584, 5, 73, 0, 0, 7584, 7585, 5, 76, 0, 0, 7585, 7586, 5, 73, 0, 0, 7586, 7587, 5, 78, 0, 0, 7587, 7588, 5, 71, 0, 0, 7588, 1308, 1, 0, 0, 0, 7589, 7590, 5, 67, 0, 0, 7590, 7591, 5, 69, 0, 0, 7591, 7592, 5, 78, 0, 0, 7592, 7593, 5, 84, 0, 0, 7593, 7594, 5, 82, 0, 0, 7594, 7595, 5, 79, 0, 0, 7595, 7596, 5, 73, 0, 0, 7596, 7597, 5, 68, 0, 0, 7597, 1310, 1, 0, 0, 0, 7598, 7599, 5, 67, 0, 0, 7599, 7600, 5, 72, 0, 0, 7600, 7601, 5, 65, 0, 0, 7601, 7602, 5, 82, 0, 0, 7602, 7603, 5, 65, 0, 0, 7603, 7604, 5, 67, 0, 0, 7604, 7605, 5, 84, 0, 0, 7605, 7606, 5, 69, 0, 0, 7606, 7607, 5, 82, 0, 0, 7607, 7608, 5, 95, 0, 0, 7608, 7609, 5, 76, 0, 0, 7609, 7610, 5, 69, 0, 0, 7610, 7611, 5, 78, 0, 0, 7611, 7612, 5, 71, 0, 0, 7612, 7613, 5, 84, 0, 0, 7613, 7614, 5, 72, 0, 0, 7614, 1312, 1, 0, 0, 0, 7615, 7616, 5, 67, 0, 0, 7616, 7617, 5, 72, 0, 0, 7617, 7618, 5, 65, 0, 0, 7618, 7619, 5, 82, 0, 0, 7619, 7620, 5, 83, 0, 0, 7620, 7621, 5, 69, 0, 0, 7621, 7622, 5, 84, 0, 0, 7622, 1314, 1, 0, 0, 0, 7623, 7624, 5, 67, 0, 0, 7624, 7625, 5, 72, 0, 0, 7625, 7626, 5, 65, 0, 0, 7626, 7627, 5, 82, 0, 0, 7627, 7628, 5, 95, 0, 0, 7628, 7629, 5, 76, 0, 0, 7629, 7630, 5, 69, 0, 0, 7630, 7631, 5, 78, 0, 0, 7631, 7632, 5, 71, 0, 0, 7632, 7633, 5, 84, 0, 0, 7633, 7634, 5, 72, 0, 0, 7634, 1316, 1, 0, 0, 0, 7635, 7636, 5, 67, 0, 0, 7636, 7637, 5, 79, 0, 0, 7637, 7638, 5, 69, 0, 0, 7638, 7639, 5, 82, 0, 0, 7639, 7640, 5, 67, 0, 0, 7640, 7641, 5, 73, 0, 0, 7641, 7642, 5, 66, 0, 0, 7642, 7643, 5, 73, 0, 0, 7643, 7644, 5, 76, 0, 0, 7644, 7645, 5, 73, 0, 0, 7645, 7646, 5, 84, 0, 0, 7646, 7647, 5, 89, 0, 0, 7647, 1318, 1, 0, 0, 0, 7648, 7649, 5, 67, 0, 0, 7649, 7650, 5, 79, 0, 0, 7650, 7651, 5, 76, 0, 0, 7651, 7652, 5, 76, 0, 0, 7652, 7653, 5, 65, 0, 0, 7653, 7654, 5, 84, 0, 0, 7654, 7655, 5, 73, 0, 0, 7655, 7656, 5, 79, 0, 0, 7656, 7657, 5, 78, 0, 0, 7657, 1320, 1, 0, 0, 0, 7658, 7659, 5, 67, 0, 0, 7659, 7660, 5, 79, 0, 0, 7660, 7661, 5, 77, 0, 0, 7661, 7662, 5, 80, 0, 0, 7662, 7663, 5, 82, 0, 0, 7663, 7664, 5, 69, 0, 0, 7664, 7665, 5, 83, 0, 0, 7665, 7666, 5, 83, 0, 0, 7666, 1322, 1, 0, 0, 0, 7667, 7668, 5, 67, 0, 0, 7668, 7669, 5, 79, 0, 0, 7669, 7670, 5, 78, 0, 0, 7670, 7671, 5, 67, 0, 0, 7671, 7672, 5, 65, 0, 0, 7672, 7673, 5, 84, 0, 0, 7673, 1324, 1, 0, 0, 0, 7674, 7675, 5, 67, 0, 0, 7675, 7676, 5, 79, 0, 0, 7676, 7677, 5, 78, 0, 0, 7677, 7678, 5, 67, 0, 0, 7678, 7679, 5, 65, 0, 0, 7679, 7680, 5, 84, 0, 0, 7680, 7681, 5, 95, 0, 0, 7681, 7682, 5, 87, 0, 0, 7682, 7683, 5, 83, 0, 0, 7683, 1326, 1, 0, 0, 0, 7684, 7685, 5, 67, 0, 0, 7685, 7686, 5, 79, 0, 0, 7686, 7687, 5, 78, 0, 0, 7687, 7688, 5, 78, 0, 0, 7688, 7689, 5, 69, 0, 0, 7689, 7690, 5, 67, 0, 0, 7690, 7691, 5, 84, 0, 0, 7691, 7692, 5, 73, 0, 0, 7692, 7693, 5, 79, 0, 0, 7693, 7694, 5, 78, 0, 0, 7694, 7695, 5, 95, 0, 0, 7695, 7696, 5, 73, 0, 0, 7696, 7697, 5, 68, 0, 0, 7697, 1328, 1, 0, 0, 0, 7698, 7699, 5, 67, 0, 0, 7699, 7700, 5, 79, 0, 0, 7700, 7701, 5, 78, 0, 0, 7701, 7702, 5, 86, 0, 0, 7702, 1330, 1, 0, 0, 0, 7703, 7704, 5, 67, 0, 0, 7704, 7705, 5, 79, 0, 0, 7705, 7706, 5, 78, 0, 0, 7706, 7707, 5, 86, 0, 0, 7707, 7708, 5, 69, 0, 0, 7708, 7709, 5, 82, 0, 0, 7709, 7710, 5, 84, 0, 0, 7710, 7711, 5, 95, 0, 0, 7711, 7712, 5, 84, 0, 0, 7712, 7713, 5, 90, 0, 0, 7713, 1332, 1, 0, 0, 0, 7714, 7715, 5, 67, 0, 0, 7715, 7716, 5, 79, 0, 0, 7716, 7717, 5, 83, 0, 0, 7717, 1334, 1, 0, 0, 0, 7718, 7719, 5, 67, 0, 0, 7719, 7720, 5, 79, 0, 0, 7720, 7721, 5, 84, 0, 0, 7721, 1336, 1, 0, 0, 0, 7722, 7723, 5, 67, 0, 0, 7723, 7724, 5, 82, 0, 0, 7724, 7725, 5, 67, 0, 0, 7725, 7726, 5, 51, 0, 0, 7726, 7727, 5, 50, 0, 0, 7727, 1338, 1, 0, 0, 0, 7728, 7729, 5, 67, 0, 0, 7729, 7730, 5, 82, 0, 0, 7730, 7731, 5, 69, 0, 0, 7731, 7732, 5, 65, 0, 0, 7732, 7733, 5, 84, 0, 0, 7733, 7734, 5, 69, 0, 0, 7734, 7735, 5, 95, 0, 0, 7735, 7736, 5, 65, 0, 0, 7736, 7737, 5, 83, 0, 0, 7737, 7738, 5, 89, 0, 0, 7738, 7739, 5, 77, 0, 0, 7739, 7740, 5, 77, 0, 0, 7740, 7741, 5, 69, 0, 0, 7741, 7742, 5, 84, 0, 0, 7742, 7743, 5, 82, 0, 0, 7743, 7744, 5, 73, 0, 0, 7744, 7745, 5, 67, 0, 0, 7745, 7746, 5, 95, 0, 0, 7746, 7747, 5, 80, 0, 0, 7747, 7748, 5, 82, 0, 0, 7748, 7749, 5, 73, 0, 0, 7749, 7750, 5, 86, 0, 0, 7750, 7751, 5, 95, 0, 0, 7751, 7752, 5, 75, 0, 0, 7752, 7753, 5, 69, 0, 0, 7753, 7754, 5, 89, 0, 0, 7754, 1340, 1, 0, 0, 0, 7755, 7756, 5, 67, 0, 0, 7756, 7757, 5, 82, 0, 0, 7757, 7758, 5, 69, 0, 0, 7758, 7759, 5, 65, 0, 0, 7759, 7760, 5, 84, 0, 0, 7760, 7761, 5, 69, 0, 0, 7761, 7762, 5, 95, 0, 0, 7762, 7763, 5, 65, 0, 0, 7763, 7764, 5, 83, 0, 0, 7764, 7765, 5, 89, 0, 0, 7765, 7766, 5, 77, 0, 0, 7766, 7767, 5, 77, 0, 0, 7767, 7768, 5, 69, 0, 0, 7768, 7769, 5, 84, 0, 0, 7769, 7770, 5, 82, 0, 0, 7770, 7771, 5, 73, 0, 0, 7771, 7772, 5, 67, 0, 0, 7772, 7773, 5, 95, 0, 0, 7773, 7774, 5, 80, 0, 0, 7774, 7775, 5, 85, 0, 0, 7775, 7776, 5, 66, 0, 0, 7776, 7777, 5, 95, 0, 0, 7777, 7778, 5, 75, 0, 0, 7778, 7779, 5, 69, 0, 0, 7779, 7780, 5, 89, 0, 0, 7780, 1342, 1, 0, 0, 0, 7781, 7782, 5, 67, 0, 0, 7782, 7783, 5, 82, 0, 0, 7783, 7784, 5, 69, 0, 0, 7784, 7785, 5, 65, 0, 0, 7785, 7786, 5, 84, 0, 0, 7786, 7787, 5, 69, 0, 0, 7787, 7788, 5, 95, 0, 0, 7788, 7789, 5, 68, 0, 0, 7789, 7790, 5, 72, 0, 0, 7790, 7791, 5, 95, 0, 0, 7791, 7792, 5, 80, 0, 0, 7792, 7793, 5, 65, 0, 0, 7793, 7794, 5, 82, 0, 0, 7794, 7795, 5, 65, 0, 0, 7795, 7796, 5, 77, 0, 0, 7796, 7797, 5, 69, 0, 0, 7797, 7798, 5, 84, 0, 0, 7798, 7799, 5, 69, 0, 0, 7799, 7800, 5, 82, 0, 0, 7800, 7801, 5, 83, 0, 0, 7801, 1344, 1, 0, 0, 0, 7802, 7803, 5, 67, 0, 0, 7803, 7804, 5, 82, 0, 0, 7804, 7805, 5, 69, 0, 0, 7805, 7806, 5, 65, 0, 0, 7806, 7807, 5, 84, 0, 0, 7807, 7808, 5, 69, 0, 0, 7808, 7809, 5, 95, 0, 0, 7809, 7810, 5, 68, 0, 0, 7810, 7811, 5, 73, 0, 0, 7811, 7812, 5, 71, 0, 0, 7812, 7813, 5, 69, 0, 0, 7813, 7814, 5, 83, 0, 0, 7814, 7815, 5, 84, 0, 0, 7815, 1346, 1, 0, 0, 0, 7816, 7817, 5, 67, 0, 0, 7817, 7818, 5, 82, 0, 0, 7818, 7819, 5, 79, 0, 0, 7819, 7820, 5, 83, 0, 0, 7820, 7821, 5, 83, 0, 0, 7821, 7822, 5, 69, 0, 0, 7822, 7823, 5, 83, 0, 0, 7823, 1348, 1, 0, 0, 0, 7824, 7825, 5, 68, 0, 0, 7825, 7826, 5, 65, 0, 0, 7826, 7827, 5, 84, 0, 0, 7827, 7828, 5, 69, 0, 0, 7828, 7829, 5, 68, 0, 0, 7829, 7830, 5, 73, 0, 0, 7830, 7831, 5, 70, 0, 0, 7831, 7832, 5, 70, 0, 0, 7832, 1350, 1, 0, 0, 0, 7833, 7834, 5, 68, 0, 0, 7834, 7835, 5, 65, 0, 0, 7835, 7836, 5, 84, 0, 0, 7836, 7837, 5, 69, 0, 0, 7837, 7838, 5, 95, 0, 0, 7838, 7839, 5, 70, 0, 0, 7839, 7840, 5, 79, 0, 0, 7840, 7841, 5, 82, 0, 0, 7841, 7842, 5, 77, 0, 0, 7842, 7843, 5, 65, 0, 0, 7843, 7844, 5, 84, 0, 0, 7844, 1352, 1, 0, 0, 0, 7845, 7846, 5, 68, 0, 0, 7846, 7847, 5, 65, 0, 0, 7847, 7848, 5, 89, 0, 0, 7848, 7849, 5, 78, 0, 0, 7849, 7850, 5, 65, 0, 0, 7850, 7851, 5, 77, 0, 0, 7851, 7852, 5, 69, 0, 0, 7852, 1354, 1, 0, 0, 0, 7853, 7854, 5, 68, 0, 0, 7854, 7855, 5, 65, 0, 0, 7855, 7856, 5, 89, 0, 0, 7856, 7857, 5, 79, 0, 0, 7857, 7858, 5, 70, 0, 0, 7858, 7859, 5, 77, 0, 0, 7859, 7860, 5, 79, 0, 0, 7860, 7861, 5, 78, 0, 0, 7861, 7862, 5, 84, 0, 0, 7862, 7863, 5, 72, 0, 0, 7863, 1356, 1, 0, 0, 0, 7864, 7865, 5, 68, 0, 0, 7865, 7866, 5, 65, 0, 0, 7866, 7867, 5, 89, 0, 0, 7867, 7868, 5, 79, 0, 0, 7868, 7869, 5, 70, 0, 0, 7869, 7870, 5, 87, 0, 0, 7870, 7871, 5, 69, 0, 0, 7871, 7872, 5, 69, 0, 0, 7872, 7873, 5, 75, 0, 0, 7873, 1358, 1, 0, 0, 0, 7874, 7875, 5, 68, 0, 0, 7875, 7876, 5, 65, 0, 0, 7876, 7877, 5, 89, 0, 0, 7877, 7878, 5, 79, 0, 0, 7878, 7879, 5, 70, 0, 0, 7879, 7880, 5, 89, 0, 0, 7880, 7881, 5, 69, 0, 0, 7881, 7882, 5, 65, 0, 0, 7882, 7883, 5, 82, 0, 0, 7883, 1360, 1, 0, 0, 0, 7884, 7885, 5, 68, 0, 0, 7885, 7886, 5, 69, 0, 0, 7886, 7887, 5, 67, 0, 0, 7887, 7888, 5, 79, 0, 0, 7888, 7889, 5, 68, 0, 0, 7889, 7890, 5, 69, 0, 0, 7890, 1362, 1, 0, 0, 0, 7891, 7892, 5, 68, 0, 0, 7892, 7893, 5, 69, 0, 0, 7893, 7894, 5, 71, 0, 0, 7894, 7895, 5, 82, 0, 0, 7895, 7896, 5, 69, 0, 0, 7896, 7897, 5, 69, 0, 0, 7897, 7898, 5, 83, 0, 0, 7898, 1364, 1, 0, 0, 0, 7899, 7900, 5, 68, 0, 0, 7900, 7901, 5, 69, 0, 0, 7901, 7902, 5, 83, 0, 0, 7902, 7903, 5, 95, 0, 0, 7903, 7904, 5, 68, 0, 0, 7904, 7905, 5, 69, 0, 0, 7905, 7906, 5, 67, 0, 0, 7906, 7907, 5, 82, 0, 0, 7907, 7908, 5, 89, 0, 0, 7908, 7909, 5, 80, 0, 0, 7909, 7910, 5, 84, 0, 0, 7910, 1366, 1, 0, 0, 0, 7911, 7912, 5, 68, 0, 0, 7912, 7913, 5, 69, 0, 0, 7913, 7914, 5, 83, 0, 0, 7914, 7915, 5, 95, 0, 0, 7915, 7916, 5, 69, 0, 0, 7916, 7917, 5, 78, 0, 0, 7917, 7918, 5, 67, 0, 0, 7918, 7919, 5, 82, 0, 0, 7919, 7920, 5, 89, 0, 0, 7920, 7921, 5, 80, 0, 0, 7921, 7922, 5, 84, 0, 0, 7922, 1368, 1, 0, 0, 0, 7923, 7924, 5, 68, 0, 0, 7924, 7925, 5, 73, 0, 0, 7925, 7926, 5, 77, 0, 0, 7926, 7927, 5, 69, 0, 0, 7927, 7928, 5, 78, 0, 0, 7928, 7929, 5, 83, 0, 0, 7929, 7930, 5, 73, 0, 0, 7930, 7931, 5, 79, 0, 0, 7931, 7932, 5, 78, 0, 0, 7932, 1370, 1, 0, 0, 0, 7933, 7934, 5, 68, 0, 0, 7934, 7935, 5, 73, 0, 0, 7935, 7936, 5, 83, 0, 0, 7936, 7937, 5, 74, 0, 0, 7937, 7938, 5, 79, 0, 0, 7938, 7939, 5, 73, 0, 0, 7939, 7940, 5, 78, 0, 0, 7940, 7941, 5, 84, 0, 0, 7941, 1372, 1, 0, 0, 0, 7942, 7943, 5, 69, 0, 0, 7943, 7944, 5, 76, 0, 0, 7944, 7945, 5, 84, 0, 0, 7945, 1374, 1, 0, 0, 0, 7946, 7947, 5, 69, 0, 0, 7947, 7948, 5, 78, 0, 0, 7948, 7949, 5, 67, 0, 0, 7949, 7950, 5, 79, 0, 0, 7950, 7951, 5, 68, 0, 0, 7951, 7952, 5, 69, 0, 0, 7952, 1376, 1, 0, 0, 0, 7953, 7954, 5, 69, 0, 0, 7954, 7955, 5, 78, 0, 0, 7955, 7956, 5, 67, 0, 0, 7956, 7957, 5, 82, 0, 0, 7957, 7958, 5, 89, 0, 0, 7958, 7959, 5, 80, 0, 0, 7959, 7960, 5, 84, 0, 0, 7960, 1378, 1, 0, 0, 0, 7961, 7962, 5, 69, 0, 0, 7962, 7963, 5, 78, 0, 0, 7963, 7964, 5, 68, 0, 0, 7964, 7965, 5, 80, 0, 0, 7965, 7966, 5, 79, 0, 0, 7966, 7967, 5, 73, 0, 0, 7967, 7968, 5, 78, 0, 0, 7968, 7969, 5, 84, 0, 0, 7969, 1380, 1, 0, 0, 0, 7970, 7971, 5, 69, 0, 0, 7971, 7972, 5, 78, 0, 0, 7972, 7973, 5, 86, 0, 0, 7973, 7974, 5, 69, 0, 0, 7974, 7975, 5, 76, 0, 0, 7975, 7976, 5, 79, 0, 0, 7976, 7977, 5, 80, 0, 0, 7977, 7978, 5, 69, 0, 0, 7978, 1382, 1, 0, 0, 0, 7979, 7980, 5, 69, 0, 0, 7980, 7981, 5, 81, 0, 0, 7981, 7982, 5, 85, 0, 0, 7982, 7983, 5, 65, 0, 0, 7983, 7984, 5, 76, 0, 0, 7984, 7985, 5, 83, 0, 0, 7985, 1384, 1, 0, 0, 0, 7986, 7987, 5, 69, 0, 0, 7987, 7988, 5, 88, 0, 0, 7988, 7989, 5, 80, 0, 0, 7989, 1386, 1, 0, 0, 0, 7990, 7991, 5, 69, 0, 0, 7991, 7992, 5, 88, 0, 0, 7992, 7993, 5, 80, 0, 0, 7993, 7994, 5, 79, 0, 0, 7994, 7995, 5, 82, 0, 0, 7995, 7996, 5, 84, 0, 0, 7996, 7997, 5, 95, 0, 0, 7997, 7998, 5, 83, 0, 0, 7998, 7999, 5, 69, 0, 0, 7999, 8000, 5, 84, 0, 0, 8000, 1388, 1, 0, 0, 0, 8001, 8002, 5, 69, 0, 0, 8002, 8003, 5, 88, 0, 0, 8003, 8004, 5, 84, 0, 0, 8004, 8005, 5, 69, 0, 0, 8005, 8006, 5, 82, 0, 0, 8006, 8007, 5, 73, 0, 0, 8007, 8008, 5, 79, 0, 0, 8008, 8009, 5, 82, 0, 0, 8009, 8010, 5, 82, 0, 0, 8010, 8011, 5, 73, 0, 0, 8011, 8012, 5, 78, 0, 0, 8012, 8013, 5, 71, 0, 0, 8013, 1390, 1, 0, 0, 0, 8014, 8015, 5, 69, 0, 0, 8015, 8016, 5, 88, 0, 0, 8016, 8017, 5, 84, 0, 0, 8017, 8018, 5, 82, 0, 0, 8018, 8019, 5, 65, 0, 0, 8019, 8020, 5, 67, 0, 0, 8020, 8021, 5, 84, 0, 0, 8021, 8022, 5, 86, 0, 0, 8022, 8023, 5, 65, 0, 0, 8023, 8024, 5, 76, 0, 0, 8024, 8025, 5, 85, 0, 0, 8025, 8026, 5, 69, 0, 0, 8026, 1392, 1, 0, 0, 0, 8027, 8028, 5, 70, 0, 0, 8028, 8029, 5, 73, 0, 0, 8029, 8030, 5, 69, 0, 0, 8030, 8031, 5, 76, 0, 0, 8031, 8032, 5, 68, 0, 0, 8032, 1394, 1, 0, 0, 0, 8033, 8034, 5, 70, 0, 0, 8034, 8035, 5, 73, 0, 0, 8035, 8036, 5, 78, 0, 0, 8036, 8037, 5, 68, 0, 0, 8037, 8038, 5, 95, 0, 0, 8038, 8039, 5, 73, 0, 0, 8039, 8040, 5, 78, 0, 0, 8040, 8041, 5, 95, 0, 0, 8041, 8042, 5, 83, 0, 0, 8042, 8043, 5, 69, 0, 0, 8043, 8044, 5, 84, 0, 0, 8044, 1396, 1, 0, 0, 0, 8045, 8046, 5, 70, 0, 0, 8046, 8047, 5, 76, 0, 0, 8047, 8048, 5, 79, 0, 0, 8048, 8049, 5, 79, 0, 0, 8049, 8050, 5, 82, 0, 0, 8050, 1398, 1, 0, 0, 0, 8051, 8052, 5, 70, 0, 0, 8052, 8053, 5, 79, 0, 0, 8053, 8054, 5, 82, 0, 0, 8054, 8055, 5, 77, 0, 0, 8055, 8056, 5, 65, 0, 0, 8056, 8057, 5, 84, 0, 0, 8057, 1400, 1, 0, 0, 0, 8058, 8059, 5, 70, 0, 0, 8059, 8060, 5, 79, 0, 0, 8060, 8061, 5, 85, 0, 0, 8061, 8062, 5, 78, 0, 0, 8062, 8063, 5, 68, 0, 0, 8063, 8064, 5, 95, 0, 0, 8064, 8065, 5, 82, 0, 0, 8065, 8066, 5, 79, 0, 0, 8066, 8067, 5, 87, 0, 0, 8067, 8068, 5, 83, 0, 0, 8068, 1402, 1, 0, 0, 0, 8069, 8070, 5, 70, 0, 0, 8070, 8071, 5, 82, 0, 0, 8071, 8072, 5, 79, 0, 0, 8072, 8073, 5, 77, 0, 0, 8073, 8074, 5, 95, 0, 0, 8074, 8075, 5, 66, 0, 0, 8075, 8076, 5, 65, 0, 0, 8076, 8077, 5, 83, 0, 0, 8077, 8078, 5, 69, 0, 0, 8078, 8079, 5, 54, 0, 0, 8079, 8080, 5, 52, 0, 0, 8080, 1404, 1, 0, 0, 0, 8081, 8082, 5, 70, 0, 0, 8082, 8083, 5, 82, 0, 0, 8083, 8084, 5, 79, 0, 0, 8084, 8085, 5, 77, 0, 0, 8085, 8086, 5, 95, 0, 0, 8086, 8087, 5, 68, 0, 0, 8087, 8088, 5, 65, 0, 0, 8088, 8089, 5, 89, 0, 0, 8089, 8090, 5, 83, 0, 0, 8090, 1406, 1, 0, 0, 0, 8091, 8092, 5, 70, 0, 0, 8092, 8093, 5, 82, 0, 0, 8093, 8094, 5, 79, 0, 0, 8094, 8095, 5, 77, 0, 0, 8095, 8096, 5, 95, 0, 0, 8096, 8097, 5, 85, 0, 0, 8097, 8098, 5, 78, 0, 0, 8098, 8099, 5, 73, 0, 0, 8099, 8100, 5, 88, 0, 0, 8100, 8101, 5, 84, 0, 0, 8101, 8102, 5, 73, 0, 0, 8102, 8103, 5, 77, 0, 0, 8103, 8104, 5, 69, 0, 0, 8104, 1408, 1, 0, 0, 0, 8105, 8106, 5, 71, 0, 0, 8106, 8107, 5, 69, 0, 0, 8107, 8108, 5, 79, 0, 0, 8108, 8109, 5, 77, 0, 0, 8109, 8110, 5, 67, 0, 0, 8110, 8111, 5, 79, 0, 0, 8111, 8112, 5, 76, 0, 0, 8112, 8113, 5, 76, 0, 0, 8113, 8114, 5, 70, 0, 0, 8114, 8115, 5, 82, 0, 0, 8115, 8116, 5, 79, 0, 0, 8116, 8117, 5, 77, 0, 0, 8117, 8118, 5, 84, 0, 0, 8118, 8119, 5, 69, 0, 0, 8119, 8120, 5, 88, 0, 0, 8120, 8121, 5, 84, 0, 0, 8121, 1410, 1, 0, 0, 0, 8122, 8123, 5, 71, 0, 0, 8123, 8124, 5, 69, 0, 0, 8124, 8125, 5, 79, 0, 0, 8125, 8126, 5, 77, 0, 0, 8126, 8127, 5, 67, 0, 0, 8127, 8128, 5, 79, 0, 0, 8128, 8129, 5, 76, 0, 0, 8129, 8130, 5, 76, 0, 0, 8130, 8131, 5, 70, 0, 0, 8131, 8132, 5, 82, 0, 0, 8132, 8133, 5, 79, 0, 0, 8133, 8134, 5, 77, 0, 0, 8134, 8135, 5, 87, 0, 0, 8135, 8136, 5, 75, 0, 0, 8136, 8137, 5, 66, 0, 0, 8137, 1412, 1, 0, 0, 0, 8138, 8139, 5, 71, 0, 0, 8139, 8140, 5, 69, 0, 0, 8140, 8141, 5, 79, 0, 0, 8141, 8142, 5, 77, 0, 0, 8142, 8143, 5, 69, 0, 0, 8143, 8144, 5, 84, 0, 0, 8144, 8145, 5, 82, 0, 0, 8145, 8146, 5, 89, 0, 0, 8146, 8147, 5, 67, 0, 0, 8147, 8148, 5, 79, 0, 0, 8148, 8149, 5, 76, 0, 0, 8149, 8150, 5, 76, 0, 0, 8150, 8151, 5, 69, 0, 0, 8151, 8152, 5, 67, 0, 0, 8152, 8153, 5, 84, 0, 0, 8153, 8154, 5, 73, 0, 0, 8154, 8155, 5, 79, 0, 0, 8155, 8156, 5, 78, 0, 0, 8156, 8157, 5, 70, 0, 0, 8157, 8158, 5, 82, 0, 0, 8158, 8159, 5, 79, 0, 0, 8159, 8160, 5, 77, 0, 0, 8160, 8161, 5, 84, 0, 0, 8161, 8162, 5, 69, 0, 0, 8162, 8163, 5, 88, 0, 0, 8163, 8164, 5, 84, 0, 0, 8164, 1414, 1, 0, 0, 0, 8165, 8166, 5, 71, 0, 0, 8166, 8167, 5, 69, 0, 0, 8167, 8168, 5, 79, 0, 0, 8168, 8169, 5, 77, 0, 0, 8169, 8170, 5, 69, 0, 0, 8170, 8171, 5, 84, 0, 0, 8171, 8172, 5, 82, 0, 0, 8172, 8173, 5, 89, 0, 0, 8173, 8174, 5, 67, 0, 0, 8174, 8175, 5, 79, 0, 0, 8175, 8176, 5, 76, 0, 0, 8176, 8177, 5, 76, 0, 0, 8177, 8178, 5, 69, 0, 0, 8178, 8179, 5, 67, 0, 0, 8179, 8180, 5, 84, 0, 0, 8180, 8181, 5, 73, 0, 0, 8181, 8182, 5, 79, 0, 0, 8182, 8183, 5, 78, 0, 0, 8183, 8184, 5, 70, 0, 0, 8184, 8185, 5, 82, 0, 0, 8185, 8186, 5, 79, 0, 0, 8186, 8187, 5, 77, 0, 0, 8187, 8188, 5, 87, 0, 0, 8188, 8189, 5, 75, 0, 0, 8189, 8190, 5, 66, 0, 0, 8190, 1416, 1, 0, 0, 0, 8191, 8192, 5, 71, 0, 0, 8192, 8193, 5, 69, 0, 0, 8193, 8194, 5, 79, 0, 0, 8194, 8195, 5, 77, 0, 0, 8195, 8196, 5, 69, 0, 0, 8196, 8197, 5, 84, 0, 0, 8197, 8198, 5, 82, 0, 0, 8198, 8199, 5, 89, 0, 0, 8199, 8200, 5, 70, 0, 0, 8200, 8201, 5, 82, 0, 0, 8201, 8202, 5, 79, 0, 0, 8202, 8203, 5, 77, 0, 0, 8203, 8204, 5, 84, 0, 0, 8204, 8205, 5, 69, 0, 0, 8205, 8206, 5, 88, 0, 0, 8206, 8207, 5, 84, 0, 0, 8207, 1418, 1, 0, 0, 0, 8208, 8209, 5, 71, 0, 0, 8209, 8210, 5, 69, 0, 0, 8210, 8211, 5, 79, 0, 0, 8211, 8212, 5, 77, 0, 0, 8212, 8213, 5, 69, 0, 0, 8213, 8214, 5, 84, 0, 0, 8214, 8215, 5, 82, 0, 0, 8215, 8216, 5, 89, 0, 0, 8216, 8217, 5, 70, 0, 0, 8217, 8218, 5, 82, 0, 0, 8218, 8219, 5, 79, 0, 0, 8219, 8220, 5, 77, 0, 0, 8220, 8221, 5, 87, 0, 0, 8221, 8222, 5, 75, 0, 0, 8222, 8223, 5, 66, 0, 0, 8223, 1420, 1, 0, 0, 0, 8224, 8225, 5, 71, 0, 0, 8225, 8226, 5, 69, 0, 0, 8226, 8227, 5, 79, 0, 0, 8227, 8228, 5, 77, 0, 0, 8228, 8229, 5, 69, 0, 0, 8229, 8230, 5, 84, 0, 0, 8230, 8231, 5, 82, 0, 0, 8231, 8232, 5, 89, 0, 0, 8232, 8233, 5, 78, 0, 0, 8233, 1422, 1, 0, 0, 0, 8234, 8235, 5, 71, 0, 0, 8235, 8236, 5, 69, 0, 0, 8236, 8237, 5, 79, 0, 0, 8237, 8238, 5, 77, 0, 0, 8238, 8239, 5, 69, 0, 0, 8239, 8240, 5, 84, 0, 0, 8240, 8241, 5, 82, 0, 0, 8241, 8242, 5, 89, 0, 0, 8242, 8243, 5, 84, 0, 0, 8243, 8244, 5, 89, 0, 0, 8244, 8245, 5, 80, 0, 0, 8245, 8246, 5, 69, 0, 0, 8246, 1424, 1, 0, 0, 0, 8247, 8248, 5, 71, 0, 0, 8248, 8249, 5, 69, 0, 0, 8249, 8250, 5, 79, 0, 0, 8250, 8251, 5, 77, 0, 0, 8251, 8252, 5, 70, 0, 0, 8252, 8253, 5, 82, 0, 0, 8253, 8254, 5, 79, 0, 0, 8254, 8255, 5, 77, 0, 0, 8255, 8256, 5, 84, 0, 0, 8256, 8257, 5, 69, 0, 0, 8257, 8258, 5, 88, 0, 0, 8258, 8259, 5, 84, 0, 0, 8259, 1426, 1, 0, 0, 0, 8260, 8261, 5, 71, 0, 0, 8261, 8262, 5, 69, 0, 0, 8262, 8263, 5, 79, 0, 0, 8263, 8264, 5, 77, 0, 0, 8264, 8265, 5, 70, 0, 0, 8265, 8266, 5, 82, 0, 0, 8266, 8267, 5, 79, 0, 0, 8267, 8268, 5, 77, 0, 0, 8268, 8269, 5, 87, 0, 0, 8269, 8270, 5, 75, 0, 0, 8270, 8271, 5, 66, 0, 0, 8271, 1428, 1, 0, 0, 0, 8272, 8273, 5, 71, 0, 0, 8273, 8274, 5, 69, 0, 0, 8274, 8275, 5, 84, 0, 0, 8275, 8276, 5, 95, 0, 0, 8276, 8277, 5, 70, 0, 0, 8277, 8278, 5, 79, 0, 0, 8278, 8279, 5, 82, 0, 0, 8279, 8280, 5, 77, 0, 0, 8280, 8281, 5, 65, 0, 0, 8281, 8282, 5, 84, 0, 0, 8282, 1430, 1, 0, 0, 0, 8283, 8284, 5, 71, 0, 0, 8284, 8285, 5, 69, 0, 0, 8285, 8286, 5, 84, 0, 0, 8286, 8287, 5, 95, 0, 0, 8287, 8288, 5, 76, 0, 0, 8288, 8289, 5, 79, 0, 0, 8289, 8290, 5, 67, 0, 0, 8290, 8291, 5, 75, 0, 0, 8291, 1432, 1, 0, 0, 0, 8292, 8293, 5, 71, 0, 0, 8293, 8294, 5, 76, 0, 0, 8294, 8295, 5, 69, 0, 0, 8295, 8296, 5, 78, 0, 0, 8296, 8297, 5, 71, 0, 0, 8297, 8298, 5, 84, 0, 0, 8298, 8299, 5, 72, 0, 0, 8299, 1434, 1, 0, 0, 0, 8300, 8301, 5, 71, 0, 0, 8301, 8302, 5, 82, 0, 0, 8302, 8303, 5, 69, 0, 0, 8303, 8304, 5, 65, 0, 0, 8304, 8305, 5, 84, 0, 0, 8305, 8306, 5, 69, 0, 0, 8306, 8307, 5, 83, 0, 0, 8307, 8308, 5, 84, 0, 0, 8308, 1436, 1, 0, 0, 0, 8309, 8310, 5, 71, 0, 0, 8310, 8311, 5, 84, 0, 0, 8311, 8312, 5, 73, 0, 0, 8312, 8313, 5, 68, 0, 0, 8313, 8314, 5, 95, 0, 0, 8314, 8315, 5, 83, 0, 0, 8315, 8316, 5, 85, 0, 0, 8316, 8317, 5, 66, 0, 0, 8317, 8318, 5, 83, 0, 0, 8318, 8319, 5, 69, 0, 0, 8319, 8320, 5, 84, 0, 0, 8320, 1438, 1, 0, 0, 0, 8321, 8322, 5, 71, 0, 0, 8322, 8323, 5, 84, 0, 0, 8323, 8324, 5, 73, 0, 0, 8324, 8325, 5, 68, 0, 0, 8325, 8326, 5, 95, 0, 0, 8326, 8327, 5, 83, 0, 0, 8327, 8328, 5, 85, 0, 0, 8328, 8329, 5, 66, 0, 0, 8329, 8330, 5, 84, 0, 0, 8330, 8331, 5, 82, 0, 0, 8331, 8332, 5, 65, 0, 0, 8332, 8333, 5, 67, 0, 0, 8333, 8334, 5, 84, 0, 0, 8334, 1440, 1, 0, 0, 0, 8335, 8336, 5, 72, 0, 0, 8336, 8337, 5, 69, 0, 0, 8337, 8338, 5, 88, 0, 0, 8338, 1442, 1, 0, 0, 0, 8339, 8340, 5, 73, 0, 0, 8340, 8341, 5, 70, 0, 0, 8341, 8342, 5, 78, 0, 0, 8342, 8343, 5, 85, 0, 0, 8343, 8344, 5, 76, 0, 0, 8344, 8345, 5, 76, 0, 0, 8345, 1444, 1, 0, 0, 0, 8346, 8347, 5, 73, 0, 0, 8347, 8348, 5, 78, 0, 0, 8348, 8349, 5, 69, 0, 0, 8349, 8350, 5, 84, 0, 0, 8350, 8351, 5, 54, 0, 0, 8351, 8352, 5, 95, 0, 0, 8352, 8353, 5, 65, 0, 0, 8353, 8354, 5, 84, 0, 0, 8354, 8355, 5, 79, 0, 0, 8355, 8356, 5, 78, 0, 0, 8356, 1446, 1, 0, 0, 0, 8357, 8358, 5, 73, 0, 0, 8358, 8359, 5, 78, 0, 0, 8359, 8360, 5, 69, 0, 0, 8360, 8361, 5, 84, 0, 0, 8361, 8362, 5, 54, 0, 0, 8362, 8363, 5, 95, 0, 0, 8363, 8364, 5, 78, 0, 0, 8364, 8365, 5, 84, 0, 0, 8365, 8366, 5, 79, 0, 0, 8366, 8367, 5, 65, 0, 0, 8367, 1448, 1, 0, 0, 0, 8368, 8369, 5, 73, 0, 0, 8369, 8370, 5, 78, 0, 0, 8370, 8371, 5, 69, 0, 0, 8371, 8372, 5, 84, 0, 0, 8372, 8373, 5, 95, 0, 0, 8373, 8374, 5, 65, 0, 0, 8374, 8375, 5, 84, 0, 0, 8375, 8376, 5, 79, 0, 0, 8376, 8377, 5, 78, 0, 0, 8377, 1450, 1, 0, 0, 0, 8378, 8379, 5, 73, 0, 0, 8379, 8380, 5, 78, 0, 0, 8380, 8381, 5, 69, 0, 0, 8381, 8382, 5, 84, 0, 0, 8382, 8383, 5, 95, 0, 0, 8383, 8384, 5, 78, 0, 0, 8384, 8385, 5, 84, 0, 0, 8385, 8386, 5, 79, 0, 0, 8386, 8387, 5, 65, 0, 0, 8387, 1452, 1, 0, 0, 0, 8388, 8389, 5, 73, 0, 0, 8389, 8390, 5, 78, 0, 0, 8390, 8391, 5, 83, 0, 0, 8391, 8392, 5, 84, 0, 0, 8392, 8393, 5, 82, 0, 0, 8393, 1454, 1, 0, 0, 0, 8394, 8395, 5, 73, 0, 0, 8395, 8396, 5, 78, 0, 0, 8396, 8397, 5, 84, 0, 0, 8397, 8398, 5, 69, 0, 0, 8398, 8399, 5, 82, 0, 0, 8399, 8400, 5, 73, 0, 0, 8400, 8401, 5, 79, 0, 0, 8401, 8402, 5, 82, 0, 0, 8402, 8403, 5, 82, 0, 0, 8403, 8404, 5, 73, 0, 0, 8404, 8405, 5, 78, 0, 0, 8405, 8406, 5, 71, 0, 0, 8406, 8407, 5, 78, 0, 0, 8407, 1456, 1, 0, 0, 0, 8408, 8409, 5, 73, 0, 0, 8409, 8410, 5, 78, 0, 0, 8410, 8411, 5, 84, 0, 0, 8411, 8412, 5, 69, 0, 0, 8412, 8413, 5, 82, 0, 0, 8413, 8414, 5, 83, 0, 0, 8414, 8415, 5, 69, 0, 0, 8415, 8416, 5, 67, 0, 0, 8416, 8417, 5, 84, 0, 0, 8417, 8418, 5, 83, 0, 0, 8418, 1458, 1, 0, 0, 0, 8419, 8420, 5, 73, 0, 0, 8420, 8421, 5, 83, 0, 0, 8421, 8422, 5, 67, 0, 0, 8422, 8423, 5, 76, 0, 0, 8423, 8424, 5, 79, 0, 0, 8424, 8425, 5, 83, 0, 0, 8425, 8426, 5, 69, 0, 0, 8426, 8427, 5, 68, 0, 0, 8427, 1460, 1, 0, 0, 0, 8428, 8429, 5, 73, 0, 0, 8429, 8430, 5, 83, 0, 0, 8430, 8431, 5, 69, 0, 0, 8431, 8432, 5, 77, 0, 0, 8432, 8433, 5, 80, 0, 0, 8433, 8434, 5, 84, 0, 0, 8434, 8435, 5, 89, 0, 0, 8435, 1462, 1, 0, 0, 0, 8436, 8437, 5, 73, 0, 0, 8437, 8438, 5, 83, 0, 0, 8438, 8439, 5, 78, 0, 0, 8439, 8440, 5, 85, 0, 0, 8440, 8441, 5, 76, 0, 0, 8441, 8442, 5, 76, 0, 0, 8442, 1464, 1, 0, 0, 0, 8443, 8444, 5, 73, 0, 0, 8444, 8445, 5, 83, 0, 0, 8445, 8446, 5, 83, 0, 0, 8446, 8447, 5, 73, 0, 0, 8447, 8448, 5, 77, 0, 0, 8448, 8449, 5, 80, 0, 0, 8449, 8450, 5, 76, 0, 0, 8450, 8451, 5, 69, 0, 0, 8451, 1466, 1, 0, 0, 0, 8452, 8453, 5, 73, 0, 0, 8453, 8454, 5, 83, 0, 0, 8454, 8455, 5, 95, 0, 0, 8455, 8456, 5, 70, 0, 0, 8456, 8457, 5, 82, 0, 0, 8457, 8458, 5, 69, 0, 0, 8458, 8459, 5, 69, 0, 0, 8459, 8460, 5, 95, 0, 0, 8460, 8461, 5, 76, 0, 0, 8461, 8462, 5, 79, 0, 0, 8462, 8463, 5, 67, 0, 0, 8463, 8464, 5, 75, 0, 0, 8464, 1468, 1, 0, 0, 0, 8465, 8466, 5, 73, 0, 0, 8466, 8467, 5, 83, 0, 0, 8467, 8468, 5, 95, 0, 0, 8468, 8469, 5, 73, 0, 0, 8469, 8470, 5, 80, 0, 0, 8470, 8471, 5, 86, 0, 0, 8471, 8472, 5, 52, 0, 0, 8472, 1470, 1, 0, 0, 0, 8473, 8474, 5, 73, 0, 0, 8474, 8475, 5, 83, 0, 0, 8475, 8476, 5, 95, 0, 0, 8476, 8477, 5, 73, 0, 0, 8477, 8478, 5, 80, 0, 0, 8478, 8479, 5, 86, 0, 0, 8479, 8480, 5, 52, 0, 0, 8480, 8481, 5, 95, 0, 0, 8481, 8482, 5, 67, 0, 0, 8482, 8483, 5, 79, 0, 0, 8483, 8484, 5, 77, 0, 0, 8484, 8485, 5, 80, 0, 0, 8485, 8486, 5, 65, 0, 0, 8486, 8487, 5, 84, 0, 0, 8487, 1472, 1, 0, 0, 0, 8488, 8489, 5, 73, 0, 0, 8489, 8490, 5, 83, 0, 0, 8490, 8491, 5, 95, 0, 0, 8491, 8492, 5, 73, 0, 0, 8492, 8493, 5, 80, 0, 0, 8493, 8494, 5, 86, 0, 0, 8494, 8495, 5, 52, 0, 0, 8495, 8496, 5, 95, 0, 0, 8496, 8497, 5, 77, 0, 0, 8497, 8498, 5, 65, 0, 0, 8498, 8499, 5, 80, 0, 0, 8499, 8500, 5, 80, 0, 0, 8500, 8501, 5, 69, 0, 0, 8501, 8502, 5, 68, 0, 0, 8502, 1474, 1, 0, 0, 0, 8503, 8504, 5, 73, 0, 0, 8504, 8505, 5, 83, 0, 0, 8505, 8506, 5, 95, 0, 0, 8506, 8507, 5, 73, 0, 0, 8507, 8508, 5, 80, 0, 0, 8508, 8509, 5, 86, 0, 0, 8509, 8510, 5, 54, 0, 0, 8510, 1476, 1, 0, 0, 0, 8511, 8512, 5, 73, 0, 0, 8512, 8513, 5, 83, 0, 0, 8513, 8514, 5, 95, 0, 0, 8514, 8515, 5, 85, 0, 0, 8515, 8516, 5, 83, 0, 0, 8516, 8517, 5, 69, 0, 0, 8517, 8518, 5, 68, 0, 0, 8518, 8519, 5, 95, 0, 0, 8519, 8520, 5, 76, 0, 0, 8520, 8521, 5, 79, 0, 0, 8521, 8522, 5, 67, 0, 0, 8522, 8523, 5, 75, 0, 0, 8523, 1478, 1, 0, 0, 0, 8524, 8525, 5, 76, 0, 0, 8525, 8526, 5, 65, 0, 0, 8526, 8527, 5, 83, 0, 0, 8527, 8528, 5, 84, 0, 0, 8528, 8529, 5, 95, 0, 0, 8529, 8530, 5, 73, 0, 0, 8530, 8531, 5, 78, 0, 0, 8531, 8532, 5, 83, 0, 0, 8532, 8533, 5, 69, 0, 0, 8533, 8534, 5, 82, 0, 0, 8534, 8535, 5, 84, 0, 0, 8535, 8536, 5, 95, 0, 0, 8536, 8537, 5, 73, 0, 0, 8537, 8538, 5, 68, 0, 0, 8538, 1480, 1, 0, 0, 0, 8539, 8540, 5, 76, 0, 0, 8540, 8541, 5, 67, 0, 0, 8541, 8542, 5, 65, 0, 0, 8542, 8543, 5, 83, 0, 0, 8543, 8544, 5, 69, 0, 0, 8544, 1482, 1, 0, 0, 0, 8545, 8546, 5, 76, 0, 0, 8546, 8547, 5, 69, 0, 0, 8547, 8548, 5, 65, 0, 0, 8548, 8549, 5, 83, 0, 0, 8549, 8550, 5, 84, 0, 0, 8550, 1484, 1, 0, 0, 0, 8551, 8552, 5, 76, 0, 0, 8552, 8553, 5, 69, 0, 0, 8553, 8554, 5, 78, 0, 0, 8554, 8555, 5, 71, 0, 0, 8555, 8556, 5, 84, 0, 0, 8556, 8557, 5, 72, 0, 0, 8557, 1486, 1, 0, 0, 0, 8558, 8559, 5, 76, 0, 0, 8559, 8560, 5, 73, 0, 0, 8560, 8561, 5, 78, 0, 0, 8561, 8562, 5, 69, 0, 0, 8562, 8563, 5, 70, 0, 0, 8563, 8564, 5, 82, 0, 0, 8564, 8565, 5, 79, 0, 0, 8565, 8566, 5, 77, 0, 0, 8566, 8567, 5, 84, 0, 0, 8567, 8568, 5, 69, 0, 0, 8568, 8569, 5, 88, 0, 0, 8569, 8570, 5, 84, 0, 0, 8570, 1488, 1, 0, 0, 0, 8571, 8572, 5, 76, 0, 0, 8572, 8573, 5, 73, 0, 0, 8573, 8574, 5, 78, 0, 0, 8574, 8575, 5, 69, 0, 0, 8575, 8576, 5, 70, 0, 0, 8576, 8577, 5, 82, 0, 0, 8577, 8578, 5, 79, 0, 0, 8578, 8579, 5, 77, 0, 0, 8579, 8580, 5, 87, 0, 0, 8580, 8581, 5, 75, 0, 0, 8581, 8582, 5, 66, 0, 0, 8582, 1490, 1, 0, 0, 0, 8583, 8584, 5, 76, 0, 0, 8584, 8585, 5, 73, 0, 0, 8585, 8586, 5, 78, 0, 0, 8586, 8587, 5, 69, 0, 0, 8587, 8588, 5, 83, 0, 0, 8588, 8589, 5, 84, 0, 0, 8589, 8590, 5, 82, 0, 0, 8590, 8591, 5, 73, 0, 0, 8591, 8592, 5, 78, 0, 0, 8592, 8593, 5, 71, 0, 0, 8593, 8594, 5, 70, 0, 0, 8594, 8595, 5, 82, 0, 0, 8595, 8596, 5, 79, 0, 0, 8596, 8597, 5, 77, 0, 0, 8597, 8598, 5, 84, 0, 0, 8598, 8599, 5, 69, 0, 0, 8599, 8600, 5, 88, 0, 0, 8600, 8601, 5, 84, 0, 0, 8601, 1492, 1, 0, 0, 0, 8602, 8603, 5, 76, 0, 0, 8603, 8604, 5, 73, 0, 0, 8604, 8605, 5, 78, 0, 0, 8605, 8606, 5, 69, 0, 0, 8606, 8607, 5, 83, 0, 0, 8607, 8608, 5, 84, 0, 0, 8608, 8609, 5, 82, 0, 0, 8609, 8610, 5, 73, 0, 0, 8610, 8611, 5, 78, 0, 0, 8611, 8612, 5, 71, 0, 0, 8612, 8613, 5, 70, 0, 0, 8613, 8614, 5, 82, 0, 0, 8614, 8615, 5, 79, 0, 0, 8615, 8616, 5, 77, 0, 0, 8616, 8617, 5, 87, 0, 0, 8617, 8618, 5, 75, 0, 0, 8618, 8619, 5, 66, 0, 0, 8619, 1494, 1, 0, 0, 0, 8620, 8621, 5, 76, 0, 0, 8621, 8622, 5, 78, 0, 0, 8622, 1496, 1, 0, 0, 0, 8623, 8624, 5, 76, 0, 0, 8624, 8625, 5, 79, 0, 0, 8625, 8626, 5, 65, 0, 0, 8626, 8627, 5, 68, 0, 0, 8627, 8628, 5, 95, 0, 0, 8628, 8629, 5, 70, 0, 0, 8629, 8630, 5, 73, 0, 0, 8630, 8631, 5, 76, 0, 0, 8631, 8632, 5, 69, 0, 0, 8632, 1498, 1, 0, 0, 0, 8633, 8634, 5, 76, 0, 0, 8634, 8635, 5, 79, 0, 0, 8635, 8636, 5, 67, 0, 0, 8636, 8637, 5, 65, 0, 0, 8637, 8638, 5, 84, 0, 0, 8638, 8639, 5, 69, 0, 0, 8639, 1500, 1, 0, 0, 0, 8640, 8641, 5, 76, 0, 0, 8641, 8642, 5, 79, 0, 0, 8642, 8643, 5, 71, 0, 0, 8643, 1502, 1, 0, 0, 0, 8644, 8645, 5, 76, 0, 0, 8645, 8646, 5, 79, 0, 0, 8646, 8647, 5, 71, 0, 0, 8647, 8648, 5, 49, 0, 0, 8648, 8649, 5, 48, 0, 0, 8649, 1504, 1, 0, 0, 0, 8650, 8651, 5, 76, 0, 0, 8651, 8652, 5, 79, 0, 0, 8652, 8653, 5, 71, 0, 0, 8653, 8654, 5, 50, 0, 0, 8654, 1506, 1, 0, 0, 0, 8655, 8656, 5, 76, 0, 0, 8656, 8657, 5, 79, 0, 0, 8657, 8658, 5, 87, 0, 0, 8658, 8659, 5, 69, 0, 0, 8659, 8660, 5, 82, 0, 0, 8660, 1508, 1, 0, 0, 0, 8661, 8662, 5, 76, 0, 0, 8662, 8663, 5, 80, 0, 0, 8663, 8664, 5, 65, 0, 0, 8664, 8665, 5, 68, 0, 0, 8665, 1510, 1, 0, 0, 0, 8666, 8667, 5, 76, 0, 0, 8667, 8668, 5, 84, 0, 0, 8668, 8669, 5, 82, 0, 0, 8669, 8670, 5, 73, 0, 0, 8670, 8671, 5, 77, 0, 0, 8671, 1512, 1, 0, 0, 0, 8672, 8673, 5, 77, 0, 0, 8673, 8674, 5, 65, 0, 0, 8674, 8675, 5, 75, 0, 0, 8675, 8676, 5, 69, 0, 0, 8676, 8677, 5, 68, 0, 0, 8677, 8678, 5, 65, 0, 0, 8678, 8679, 5, 84, 0, 0, 8679, 8680, 5, 69, 0, 0, 8680, 1514, 1, 0, 0, 0, 8681, 8682, 5, 77, 0, 0, 8682, 8683, 5, 65, 0, 0, 8683, 8684, 5, 75, 0, 0, 8684, 8685, 5, 69, 0, 0, 8685, 8686, 5, 84, 0, 0, 8686, 8687, 5, 73, 0, 0, 8687, 8688, 5, 77, 0, 0, 8688, 8689, 5, 69, 0, 0, 8689, 1516, 1, 0, 0, 0, 8690, 8691, 5, 77, 0, 0, 8691, 8692, 5, 65, 0, 0, 8692, 8693, 5, 75, 0, 0, 8693, 8694, 5, 69, 0, 0, 8694, 8695, 5, 95, 0, 0, 8695, 8696, 5, 83, 0, 0, 8696, 8697, 5, 69, 0, 0, 8697, 8698, 5, 84, 0, 0, 8698, 1518, 1, 0, 0, 0, 8699, 8700, 5, 77, 0, 0, 8700, 8701, 5, 65, 0, 0, 8701, 8702, 5, 83, 0, 0, 8702, 8703, 5, 84, 0, 0, 8703, 8704, 5, 69, 0, 0, 8704, 8705, 5, 82, 0, 0, 8705, 8706, 5, 95, 0, 0, 8706, 8707, 5, 80, 0, 0, 8707, 8708, 5, 79, 0, 0, 8708, 8709, 5, 83, 0, 0, 8709, 8710, 5, 95, 0, 0, 8710, 8711, 5, 87, 0, 0, 8711, 8712, 5, 65, 0, 0, 8712, 8713, 5, 73, 0, 0, 8713, 8714, 5, 84, 0, 0, 8714, 1520, 1, 0, 0, 0, 8715, 8716, 5, 77, 0, 0, 8716, 8717, 5, 66, 0, 0, 8717, 8718, 5, 82, 0, 0, 8718, 8719, 5, 67, 0, 0, 8719, 8720, 5, 79, 0, 0, 8720, 8721, 5, 78, 0, 0, 8721, 8722, 5, 84, 0, 0, 8722, 8723, 5, 65, 0, 0, 8723, 8724, 5, 73, 0, 0, 8724, 8725, 5, 78, 0, 0, 8725, 8726, 5, 83, 0, 0, 8726, 1522, 1, 0, 0, 0, 8727, 8728, 5, 77, 0, 0, 8728, 8729, 5, 66, 0, 0, 8729, 8730, 5, 82, 0, 0, 8730, 8731, 5, 68, 0, 0, 8731, 8732, 5, 73, 0, 0, 8732, 8733, 5, 83, 0, 0, 8733, 8734, 5, 74, 0, 0, 8734, 8735, 5, 79, 0, 0, 8735, 8736, 5, 73, 0, 0, 8736, 8737, 5, 78, 0, 0, 8737, 8738, 5, 84, 0, 0, 8738, 1524, 1, 0, 0, 0, 8739, 8740, 5, 77, 0, 0, 8740, 8741, 5, 66, 0, 0, 8741, 8742, 5, 82, 0, 0, 8742, 8743, 5, 69, 0, 0, 8743, 8744, 5, 81, 0, 0, 8744, 8745, 5, 85, 0, 0, 8745, 8746, 5, 65, 0, 0, 8746, 8747, 5, 76, 0, 0, 8747, 1526, 1, 0, 0, 0, 8748, 8749, 5, 77, 0, 0, 8749, 8750, 5, 66, 0, 0, 8750, 8751, 5, 82, 0, 0, 8751, 8752, 5, 73, 0, 0, 8752, 8753, 5, 78, 0, 0, 8753, 8754, 5, 84, 0, 0, 8754, 8755, 5, 69, 0, 0, 8755, 8756, 5, 82, 0, 0, 8756, 8757, 5, 83, 0, 0, 8757, 8758, 5, 69, 0, 0, 8758, 8759, 5, 67, 0, 0, 8759, 8760, 5, 84, 0, 0, 8760, 8761, 5, 83, 0, 0, 8761, 1528, 1, 0, 0, 0, 8762, 8763, 5, 77, 0, 0, 8763, 8764, 5, 66, 0, 0, 8764, 8765, 5, 82, 0, 0, 8765, 8766, 5, 79, 0, 0, 8766, 8767, 5, 86, 0, 0, 8767, 8768, 5, 69, 0, 0, 8768, 8769, 5, 82, 0, 0, 8769, 8770, 5, 76, 0, 0, 8770, 8771, 5, 65, 0, 0, 8771, 8772, 5, 80, 0, 0, 8772, 8773, 5, 83, 0, 0, 8773, 1530, 1, 0, 0, 0, 8774, 8775, 5, 77, 0, 0, 8775, 8776, 5, 66, 0, 0, 8776, 8777, 5, 82, 0, 0, 8777, 8778, 5, 84, 0, 0, 8778, 8779, 5, 79, 0, 0, 8779, 8780, 5, 85, 0, 0, 8780, 8781, 5, 67, 0, 0, 8781, 8782, 5, 72, 0, 0, 8782, 8783, 5, 69, 0, 0, 8783, 8784, 5, 83, 0, 0, 8784, 1532, 1, 0, 0, 0, 8785, 8786, 5, 77, 0, 0, 8786, 8787, 5, 66, 0, 0, 8787, 8788, 5, 82, 0, 0, 8788, 8789, 5, 87, 0, 0, 8789, 8790, 5, 73, 0, 0, 8790, 8791, 5, 84, 0, 0, 8791, 8792, 5, 72, 0, 0, 8792, 8793, 5, 73, 0, 0, 8793, 8794, 5, 78, 0, 0, 8794, 1534, 1, 0, 0, 0, 8795, 8796, 5, 77, 0, 0, 8796, 8797, 5, 68, 0, 0, 8797, 8798, 5, 53, 0, 0, 8798, 1536, 1, 0, 0, 0, 8799, 8800, 5, 77, 0, 0, 8800, 8801, 5, 76, 0, 0, 8801, 8802, 5, 73, 0, 0, 8802, 8803, 5, 78, 0, 0, 8803, 8804, 5, 69, 0, 0, 8804, 8805, 5, 70, 0, 0, 8805, 8806, 5, 82, 0, 0, 8806, 8807, 5, 79, 0, 0, 8807, 8808, 5, 77, 0, 0, 8808, 8809, 5, 84, 0, 0, 8809, 8810, 5, 69, 0, 0, 8810, 8811, 5, 88, 0, 0, 8811, 8812, 5, 84, 0, 0, 8812, 1538, 1, 0, 0, 0, 8813, 8814, 5, 77, 0, 0, 8814, 8815, 5, 76, 0, 0, 8815, 8816, 5, 73, 0, 0, 8816, 8817, 5, 78, 0, 0, 8817, 8818, 5, 69, 0, 0, 8818, 8819, 5, 70, 0, 0, 8819, 8820, 5, 82, 0, 0, 8820, 8821, 5, 79, 0, 0, 8821, 8822, 5, 77, 0, 0, 8822, 8823, 5, 87, 0, 0, 8823, 8824, 5, 75, 0, 0, 8824, 8825, 5, 66, 0, 0, 8825, 1540, 1, 0, 0, 0, 8826, 8827, 5, 77, 0, 0, 8827, 8828, 5, 79, 0, 0, 8828, 8829, 5, 78, 0, 0, 8829, 8830, 5, 84, 0, 0, 8830, 8831, 5, 72, 0, 0, 8831, 8832, 5, 78, 0, 0, 8832, 8833, 5, 65, 0, 0, 8833, 8834, 5, 77, 0, 0, 8834, 8835, 5, 69, 0, 0, 8835, 1542, 1, 0, 0, 0, 8836, 8837, 5, 77, 0, 0, 8837, 8838, 5, 80, 0, 0, 8838, 8839, 5, 79, 0, 0, 8839, 8840, 5, 73, 0, 0, 8840, 8841, 5, 78, 0, 0, 8841, 8842, 5, 84, 0, 0, 8842, 8843, 5, 70, 0, 0, 8843, 8844, 5, 82, 0, 0, 8844, 8845, 5, 79, 0, 0, 8845, 8846, 5, 77, 0, 0, 8846, 8847, 5, 84, 0, 0, 8847, 8848, 5, 69, 0, 0, 8848, 8849, 5, 88, 0, 0, 8849, 8850, 5, 84, 0, 0, 8850, 1544, 1, 0, 0, 0, 8851, 8852, 5, 77, 0, 0, 8852, 8853, 5, 80, 0, 0, 8853, 8854, 5, 79, 0, 0, 8854, 8855, 5, 73, 0, 0, 8855, 8856, 5, 78, 0, 0, 8856, 8857, 5, 84, 0, 0, 8857, 8858, 5, 70, 0, 0, 8858, 8859, 5, 82, 0, 0, 8859, 8860, 5, 79, 0, 0, 8860, 8861, 5, 77, 0, 0, 8861, 8862, 5, 87, 0, 0, 8862, 8863, 5, 75, 0, 0, 8863, 8864, 5, 66, 0, 0, 8864, 1546, 1, 0, 0, 0, 8865, 8866, 5, 77, 0, 0, 8866, 8867, 5, 80, 0, 0, 8867, 8868, 5, 79, 0, 0, 8868, 8869, 5, 76, 0, 0, 8869, 8870, 5, 89, 0, 0, 8870, 8871, 5, 70, 0, 0, 8871, 8872, 5, 82, 0, 0, 8872, 8873, 5, 79, 0, 0, 8873, 8874, 5, 77, 0, 0, 8874, 8875, 5, 84, 0, 0, 8875, 8876, 5, 69, 0, 0, 8876, 8877, 5, 88, 0, 0, 8877, 8878, 5, 84, 0, 0, 8878, 1548, 1, 0, 0, 0, 8879, 8880, 5, 77, 0, 0, 8880, 8881, 5, 80, 0, 0, 8881, 8882, 5, 79, 0, 0, 8882, 8883, 5, 76, 0, 0, 8883, 8884, 5, 89, 0, 0, 8884, 8885, 5, 70, 0, 0, 8885, 8886, 5, 82, 0, 0, 8886, 8887, 5, 79, 0, 0, 8887, 8888, 5, 77, 0, 0, 8888, 8889, 5, 87, 0, 0, 8889, 8890, 5, 75, 0, 0, 8890, 8891, 5, 66, 0, 0, 8891, 1550, 1, 0, 0, 0, 8892, 8893, 5, 77, 0, 0, 8893, 8894, 5, 85, 0, 0, 8894, 8895, 5, 76, 0, 0, 8895, 8896, 5, 84, 0, 0, 8896, 8897, 5, 73, 0, 0, 8897, 8898, 5, 76, 0, 0, 8898, 8899, 5, 73, 0, 0, 8899, 8900, 5, 78, 0, 0, 8900, 8901, 5, 69, 0, 0, 8901, 8902, 5, 83, 0, 0, 8902, 8903, 5, 84, 0, 0, 8903, 8904, 5, 82, 0, 0, 8904, 8905, 5, 73, 0, 0, 8905, 8906, 5, 78, 0, 0, 8906, 8907, 5, 71, 0, 0, 8907, 8908, 5, 70, 0, 0, 8908, 8909, 5, 82, 0, 0, 8909, 8910, 5, 79, 0, 0, 8910, 8911, 5, 77, 0, 0, 8911, 8912, 5, 84, 0, 0, 8912, 8913, 5, 69, 0, 0, 8913, 8914, 5, 88, 0, 0, 8914, 8915, 5, 84, 0, 0, 8915, 1552, 1, 0, 0, 0, 8916, 8917, 5, 77, 0, 0, 8917, 8918, 5, 85, 0, 0, 8918, 8919, 5, 76, 0, 0, 8919, 8920, 5, 84, 0, 0, 8920, 8921, 5, 73, 0, 0, 8921, 8922, 5, 76, 0, 0, 8922, 8923, 5, 73, 0, 0, 8923, 8924, 5, 78, 0, 0, 8924, 8925, 5, 69, 0, 0, 8925, 8926, 5, 83, 0, 0, 8926, 8927, 5, 84, 0, 0, 8927, 8928, 5, 82, 0, 0, 8928, 8929, 5, 73, 0, 0, 8929, 8930, 5, 78, 0, 0, 8930, 8931, 5, 71, 0, 0, 8931, 8932, 5, 70, 0, 0, 8932, 8933, 5, 82, 0, 0, 8933, 8934, 5, 79, 0, 0, 8934, 8935, 5, 77, 0, 0, 8935, 8936, 5, 87, 0, 0, 8936, 8937, 5, 75, 0, 0, 8937, 8938, 5, 66, 0, 0, 8938, 1554, 1, 0, 0, 0, 8939, 8940, 5, 77, 0, 0, 8940, 8941, 5, 85, 0, 0, 8941, 8942, 5, 76, 0, 0, 8942, 8943, 5, 84, 0, 0, 8943, 8944, 5, 73, 0, 0, 8944, 8945, 5, 80, 0, 0, 8945, 8946, 5, 79, 0, 0, 8946, 8947, 5, 73, 0, 0, 8947, 8948, 5, 78, 0, 0, 8948, 8949, 5, 84, 0, 0, 8949, 8950, 5, 70, 0, 0, 8950, 8951, 5, 82, 0, 0, 8951, 8952, 5, 79, 0, 0, 8952, 8953, 5, 77, 0, 0, 8953, 8954, 5, 84, 0, 0, 8954, 8955, 5, 69, 0, 0, 8955, 8956, 5, 88, 0, 0, 8956, 8957, 5, 84, 0, 0, 8957, 1556, 1, 0, 0, 0, 8958, 8959, 5, 77, 0, 0, 8959, 8960, 5, 85, 0, 0, 8960, 8961, 5, 76, 0, 0, 8961, 8962, 5, 84, 0, 0, 8962, 8963, 5, 73, 0, 0, 8963, 8964, 5, 80, 0, 0, 8964, 8965, 5, 79, 0, 0, 8965, 8966, 5, 73, 0, 0, 8966, 8967, 5, 78, 0, 0, 8967, 8968, 5, 84, 0, 0, 8968, 8969, 5, 70, 0, 0, 8969, 8970, 5, 82, 0, 0, 8970, 8971, 5, 79, 0, 0, 8971, 8972, 5, 77, 0, 0, 8972, 8973, 5, 87, 0, 0, 8973, 8974, 5, 75, 0, 0, 8974, 8975, 5, 66, 0, 0, 8975, 1558, 1, 0, 0, 0, 8976, 8977, 5, 77, 0, 0, 8977, 8978, 5, 85, 0, 0, 8978, 8979, 5, 76, 0, 0, 8979, 8980, 5, 84, 0, 0, 8980, 8981, 5, 73, 0, 0, 8981, 8982, 5, 80, 0, 0, 8982, 8983, 5, 79, 0, 0, 8983, 8984, 5, 76, 0, 0, 8984, 8985, 5, 89, 0, 0, 8985, 8986, 5, 71, 0, 0, 8986, 8987, 5, 79, 0, 0, 8987, 8988, 5, 78, 0, 0, 8988, 8989, 5, 70, 0, 0, 8989, 8990, 5, 82, 0, 0, 8990, 8991, 5, 79, 0, 0, 8991, 8992, 5, 77, 0, 0, 8992, 8993, 5, 84, 0, 0, 8993, 8994, 5, 69, 0, 0, 8994, 8995, 5, 88, 0, 0, 8995, 8996, 5, 84, 0, 0, 8996, 1560, 1, 0, 0, 0, 8997, 8998, 5, 77, 0, 0, 8998, 8999, 5, 85, 0, 0, 8999, 9000, 5, 76, 0, 0, 9000, 9001, 5, 84, 0, 0, 9001, 9002, 5, 73, 0, 0, 9002, 9003, 5, 80, 0, 0, 9003, 9004, 5, 79, 0, 0, 9004, 9005, 5, 76, 0, 0, 9005, 9006, 5, 89, 0, 0, 9006, 9007, 5, 71, 0, 0, 9007, 9008, 5, 79, 0, 0, 9008, 9009, 5, 78, 0, 0, 9009, 9010, 5, 70, 0, 0, 9010, 9011, 5, 82, 0, 0, 9011, 9012, 5, 79, 0, 0, 9012, 9013, 5, 77, 0, 0, 9013, 9014, 5, 87, 0, 0, 9014, 9015, 5, 75, 0, 0, 9015, 9016, 5, 66, 0, 0, 9016, 1562, 1, 0, 0, 0, 9017, 9018, 5, 78, 0, 0, 9018, 9019, 5, 65, 0, 0, 9019, 9020, 5, 77, 0, 0, 9020, 9021, 5, 69, 0, 0, 9021, 9022, 5, 95, 0, 0, 9022, 9023, 5, 67, 0, 0, 9023, 9024, 5, 79, 0, 0, 9024, 9025, 5, 78, 0, 0, 9025, 9026, 5, 83, 0, 0, 9026, 9027, 5, 84, 0, 0, 9027, 1564, 1, 0, 0, 0, 9028, 9029, 5, 78, 0, 0, 9029, 9030, 5, 85, 0, 0, 9030, 9031, 5, 76, 0, 0, 9031, 9032, 5, 76, 0, 0, 9032, 9033, 5, 73, 0, 0, 9033, 9034, 5, 70, 0, 0, 9034, 1566, 1, 0, 0, 0, 9035, 9036, 5, 78, 0, 0, 9036, 9037, 5, 85, 0, 0, 9037, 9038, 5, 77, 0, 0, 9038, 9039, 5, 71, 0, 0, 9039, 9040, 5, 69, 0, 0, 9040, 9041, 5, 79, 0, 0, 9041, 9042, 5, 77, 0, 0, 9042, 9043, 5, 69, 0, 0, 9043, 9044, 5, 84, 0, 0, 9044, 9045, 5, 82, 0, 0, 9045, 9046, 5, 73, 0, 0, 9046, 9047, 5, 69, 0, 0, 9047, 9048, 5, 83, 0, 0, 9048, 1568, 1, 0, 0, 0, 9049, 9050, 5, 78, 0, 0, 9050, 9051, 5, 85, 0, 0, 9051, 9052, 5, 77, 0, 0, 9052, 9053, 5, 73, 0, 0, 9053, 9054, 5, 78, 0, 0, 9054, 9055, 5, 84, 0, 0, 9055, 9056, 5, 69, 0, 0, 9056, 9057, 5, 82, 0, 0, 9057, 9058, 5, 73, 0, 0, 9058, 9059, 5, 79, 0, 0, 9059, 9060, 5, 82, 0, 0, 9060, 9061, 5, 82, 0, 0, 9061, 9062, 5, 73, 0, 0, 9062, 9063, 5, 78, 0, 0, 9063, 9064, 5, 71, 0, 0, 9064, 9065, 5, 83, 0, 0, 9065, 1570, 1, 0, 0, 0, 9066, 9067, 5, 78, 0, 0, 9067, 9068, 5, 85, 0, 0, 9068, 9069, 5, 77, 0, 0, 9069, 9070, 5, 80, 0, 0, 9070, 9071, 5, 79, 0, 0, 9071, 9072, 5, 73, 0, 0, 9072, 9073, 5, 78, 0, 0, 9073, 9074, 5, 84, 0, 0, 9074, 9075, 5, 83, 0, 0, 9075, 1572, 1, 0, 0, 0, 9076, 9077, 5, 79, 0, 0, 9077, 9078, 5, 67, 0, 0, 9078, 9079, 5, 84, 0, 0, 9079, 1574, 1, 0, 0, 0, 9080, 9081, 5, 79, 0, 0, 9081, 9082, 5, 67, 0, 0, 9082, 9083, 5, 84, 0, 0, 9083, 9084, 5, 69, 0, 0, 9084, 9085, 5, 84, 0, 0, 9085, 9086, 5, 95, 0, 0, 9086, 9087, 5, 76, 0, 0, 9087, 9088, 5, 69, 0, 0, 9088, 9089, 5, 78, 0, 0, 9089, 9090, 5, 71, 0, 0, 9090, 9091, 5, 84, 0, 0, 9091, 9092, 5, 72, 0, 0, 9092, 1576, 1, 0, 0, 0, 9093, 9094, 5, 79, 0, 0, 9094, 9095, 5, 82, 0, 0, 9095, 9096, 5, 68, 0, 0, 9096, 1578, 1, 0, 0, 0, 9097, 9098, 5, 79, 0, 0, 9098, 9099, 5, 86, 0, 0, 9099, 9100, 5, 69, 0, 0, 9100, 9101, 5, 82, 0, 0, 9101, 9102, 5, 76, 0, 0, 9102, 9103, 5, 65, 0, 0, 9103, 9104, 5, 80, 0, 0, 9104, 9105, 5, 83, 0, 0, 9105, 1580, 1, 0, 0, 0, 9106, 9107, 5, 80, 0, 0, 9107, 9108, 5, 69, 0, 0, 9108, 9109, 5, 82, 0, 0, 9109, 9110, 5, 73, 0, 0, 9110, 9111, 5, 79, 0, 0, 9111, 9112, 5, 68, 0, 0, 9112, 9113, 5, 95, 0, 0, 9113, 9114, 5, 65, 0, 0, 9114, 9115, 5, 68, 0, 0, 9115, 9116, 5, 68, 0, 0, 9116, 1582, 1, 0, 0, 0, 9117, 9118, 5, 80, 0, 0, 9118, 9119, 5, 69, 0, 0, 9119, 9120, 5, 82, 0, 0, 9120, 9121, 5, 73, 0, 0, 9121, 9122, 5, 79, 0, 0, 9122, 9123, 5, 68, 0, 0, 9123, 9124, 5, 95, 0, 0, 9124, 9125, 5, 68, 0, 0, 9125, 9126, 5, 73, 0, 0, 9126, 9127, 5, 70, 0, 0, 9127, 9128, 5, 70, 0, 0, 9128, 1584, 1, 0, 0, 0, 9129, 9130, 5, 80, 0, 0, 9130, 9131, 5, 73, 0, 0, 9131, 1586, 1, 0, 0, 0, 9132, 9133, 5, 80, 0, 0, 9133, 9134, 5, 79, 0, 0, 9134, 9135, 5, 73, 0, 0, 9135, 9136, 5, 78, 0, 0, 9136, 9137, 5, 84, 0, 0, 9137, 9138, 5, 70, 0, 0, 9138, 9139, 5, 82, 0, 0, 9139, 9140, 5, 79, 0, 0, 9140, 9141, 5, 77, 0, 0, 9141, 9142, 5, 84, 0, 0, 9142, 9143, 5, 69, 0, 0, 9143, 9144, 5, 88, 0, 0, 9144, 9145, 5, 84, 0, 0, 9145, 1588, 1, 0, 0, 0, 9146, 9147, 5, 80, 0, 0, 9147, 9148, 5, 79, 0, 0, 9148, 9149, 5, 73, 0, 0, 9149, 9150, 5, 78, 0, 0, 9150, 9151, 5, 84, 0, 0, 9151, 9152, 5, 70, 0, 0, 9152, 9153, 5, 82, 0, 0, 9153, 9154, 5, 79, 0, 0, 9154, 9155, 5, 77, 0, 0, 9155, 9156, 5, 87, 0, 0, 9156, 9157, 5, 75, 0, 0, 9157, 9158, 5, 66, 0, 0, 9158, 1590, 1, 0, 0, 0, 9159, 9160, 5, 80, 0, 0, 9160, 9161, 5, 79, 0, 0, 9161, 9162, 5, 73, 0, 0, 9162, 9163, 5, 78, 0, 0, 9163, 9164, 5, 84, 0, 0, 9164, 9165, 5, 78, 0, 0, 9165, 1592, 1, 0, 0, 0, 9166, 9167, 5, 80, 0, 0, 9167, 9168, 5, 79, 0, 0, 9168, 9169, 5, 76, 0, 0, 9169, 9170, 5, 89, 0, 0, 9170, 9171, 5, 70, 0, 0, 9171, 9172, 5, 82, 0, 0, 9172, 9173, 5, 79, 0, 0, 9173, 9174, 5, 77, 0, 0, 9174, 9175, 5, 84, 0, 0, 9175, 9176, 5, 69, 0, 0, 9176, 9177, 5, 88, 0, 0, 9177, 9178, 5, 84, 0, 0, 9178, 1594, 1, 0, 0, 0, 9179, 9180, 5, 80, 0, 0, 9180, 9181, 5, 79, 0, 0, 9181, 9182, 5, 76, 0, 0, 9182, 9183, 5, 89, 0, 0, 9183, 9184, 5, 70, 0, 0, 9184, 9185, 5, 82, 0, 0, 9185, 9186, 5, 79, 0, 0, 9186, 9187, 5, 77, 0, 0, 9187, 9188, 5, 87, 0, 0, 9188, 9189, 5, 75, 0, 0, 9189, 9190, 5, 66, 0, 0, 9190, 1596, 1, 0, 0, 0, 9191, 9192, 5, 80, 0, 0, 9192, 9193, 5, 79, 0, 0, 9193, 9194, 5, 76, 0, 0, 9194, 9195, 5, 89, 0, 0, 9195, 9196, 5, 71, 0, 0, 9196, 9197, 5, 79, 0, 0, 9197, 9198, 5, 78, 0, 0, 9198, 9199, 5, 70, 0, 0, 9199, 9200, 5, 82, 0, 0, 9200, 9201, 5, 79, 0, 0, 9201, 9202, 5, 77, 0, 0, 9202, 9203, 5, 84, 0, 0, 9203, 9204, 5, 69, 0, 0, 9204, 9205, 5, 88, 0, 0, 9205, 9206, 5, 84, 0, 0, 9206, 1598, 1, 0, 0, 0, 9207, 9208, 5, 80, 0, 0, 9208, 9209, 5, 79, 0, 0, 9209, 9210, 5, 76, 0, 0, 9210, 9211, 5, 89, 0, 0, 9211, 9212, 5, 71, 0, 0, 9212, 9213, 5, 79, 0, 0, 9213, 9214, 5, 78, 0, 0, 9214, 9215, 5, 70, 0, 0, 9215, 9216, 5, 82, 0, 0, 9216, 9217, 5, 79, 0, 0, 9217, 9218, 5, 77, 0, 0, 9218, 9219, 5, 87, 0, 0, 9219, 9220, 5, 75, 0, 0, 9220, 9221, 5, 66, 0, 0, 9221, 1600, 1, 0, 0, 0, 9222, 9223, 5, 80, 0, 0, 9223, 9224, 5, 79, 0, 0, 9224, 9225, 5, 87, 0, 0, 9225, 1602, 1, 0, 0, 0, 9226, 9227, 5, 80, 0, 0, 9227, 9228, 5, 79, 0, 0, 9228, 9229, 5, 87, 0, 0, 9229, 9230, 5, 69, 0, 0, 9230, 9231, 5, 82, 0, 0, 9231, 1604, 1, 0, 0, 0, 9232, 9233, 5, 81, 0, 0, 9233, 9234, 5, 85, 0, 0, 9234, 9235, 5, 79, 0, 0, 9235, 9236, 5, 84, 0, 0, 9236, 9237, 5, 69, 0, 0, 9237, 1606, 1, 0, 0, 0, 9238, 9239, 5, 82, 0, 0, 9239, 9240, 5, 65, 0, 0, 9240, 9241, 5, 68, 0, 0, 9241, 9242, 5, 73, 0, 0, 9242, 9243, 5, 65, 0, 0, 9243, 9244, 5, 78, 0, 0, 9244, 9245, 5, 83, 0, 0, 9245, 1608, 1, 0, 0, 0, 9246, 9247, 5, 82, 0, 0, 9247, 9248, 5, 65, 0, 0, 9248, 9249, 5, 78, 0, 0, 9249, 9250, 5, 68, 0, 0, 9250, 1610, 1, 0, 0, 0, 9251, 9252, 5, 82, 0, 0, 9252, 9253, 5, 65, 0, 0, 9253, 9254, 5, 78, 0, 0, 9254, 9255, 5, 68, 0, 0, 9255, 9256, 5, 79, 0, 0, 9256, 9257, 5, 77, 0, 0, 9257, 9258, 5, 95, 0, 0, 9258, 9259, 5, 66, 0, 0, 9259, 9260, 5, 89, 0, 0, 9260, 9261, 5, 84, 0, 0, 9261, 9262, 5, 69, 0, 0, 9262, 9263, 5, 83, 0, 0, 9263, 1612, 1, 0, 0, 0, 9264, 9265, 5, 82, 0, 0, 9265, 9266, 5, 69, 0, 0, 9266, 9267, 5, 76, 0, 0, 9267, 9268, 5, 69, 0, 0, 9268, 9269, 5, 65, 0, 0, 9269, 9270, 5, 83, 0, 0, 9270, 9271, 5, 69, 0, 0, 9271, 9272, 5, 95, 0, 0, 9272, 9273, 5, 76, 0, 0, 9273, 9274, 5, 79, 0, 0, 9274, 9275, 5, 67, 0, 0, 9275, 9276, 5, 75, 0, 0, 9276, 1614, 1, 0, 0, 0, 9277, 9278, 5, 82, 0, 0, 9278, 9279, 5, 69, 0, 0, 9279, 9280, 5, 86, 0, 0, 9280, 9281, 5, 69, 0, 0, 9281, 9282, 5, 82, 0, 0, 9282, 9283, 5, 83, 0, 0, 9283, 9284, 5, 69, 0, 0, 9284, 1616, 1, 0, 0, 0, 9285, 9286, 5, 82, 0, 0, 9286, 9287, 5, 79, 0, 0, 9287, 9288, 5, 85, 0, 0, 9288, 9289, 5, 78, 0, 0, 9289, 9290, 5, 68, 0, 0, 9290, 1618, 1, 0, 0, 0, 9291, 9292, 5, 82, 0, 0, 9292, 9293, 5, 79, 0, 0, 9293, 9294, 5, 87, 0, 0, 9294, 9295, 5, 95, 0, 0, 9295, 9296, 5, 67, 0, 0, 9296, 9297, 5, 79, 0, 0, 9297, 9298, 5, 85, 0, 0, 9298, 9299, 5, 78, 0, 0, 9299, 9300, 5, 84, 0, 0, 9300, 1620, 1, 0, 0, 0, 9301, 9302, 5, 82, 0, 0, 9302, 9303, 5, 80, 0, 0, 9303, 9304, 5, 65, 0, 0, 9304, 9305, 5, 68, 0, 0, 9305, 1622, 1, 0, 0, 0, 9306, 9307, 5, 82, 0, 0, 9307, 9308, 5, 84, 0, 0, 9308, 9309, 5, 82, 0, 0, 9309, 9310, 5, 73, 0, 0, 9310, 9311, 5, 77, 0, 0, 9311, 1624, 1, 0, 0, 0, 9312, 9313, 5, 83, 0, 0, 9313, 9314, 5, 69, 0, 0, 9314, 9315, 5, 67, 0, 0, 9315, 9316, 5, 95, 0, 0, 9316, 9317, 5, 84, 0, 0, 9317, 9318, 5, 79, 0, 0, 9318, 9319, 5, 95, 0, 0, 9319, 9320, 5, 84, 0, 0, 9320, 9321, 5, 73, 0, 0, 9321, 9322, 5, 77, 0, 0, 9322, 9323, 5, 69, 0, 0, 9323, 1626, 1, 0, 0, 0, 9324, 9325, 5, 83, 0, 0, 9325, 9326, 5, 69, 0, 0, 9326, 9327, 5, 83, 0, 0, 9327, 9328, 5, 83, 0, 0, 9328, 9329, 5, 73, 0, 0, 9329, 9330, 5, 79, 0, 0, 9330, 9331, 5, 78, 0, 0, 9331, 9332, 5, 95, 0, 0, 9332, 9333, 5, 85, 0, 0, 9333, 9334, 5, 83, 0, 0, 9334, 9335, 5, 69, 0, 0, 9335, 9336, 5, 82, 0, 0, 9336, 1628, 1, 0, 0, 0, 9337, 9338, 5, 83, 0, 0, 9338, 9339, 5, 72, 0, 0, 9339, 9340, 5, 65, 0, 0, 9340, 1630, 1, 0, 0, 0, 9341, 9342, 5, 83, 0, 0, 9342, 9343, 5, 72, 0, 0, 9343, 9344, 5, 65, 0, 0, 9344, 9345, 5, 49, 0, 0, 9345, 1632, 1, 0, 0, 0, 9346, 9347, 5, 83, 0, 0, 9347, 9348, 5, 72, 0, 0, 9348, 9349, 5, 65, 0, 0, 9349, 9350, 5, 50, 0, 0, 9350, 1634, 1, 0, 0, 0, 9351, 9352, 5, 83, 0, 0, 9352, 9353, 5, 73, 0, 0, 9353, 9354, 5, 71, 0, 0, 9354, 9355, 5, 78, 0, 0, 9355, 1636, 1, 0, 0, 0, 9356, 9357, 5, 83, 0, 0, 9357, 9358, 5, 73, 0, 0, 9358, 9359, 5, 78, 0, 0, 9359, 1638, 1, 0, 0, 0, 9360, 9361, 5, 83, 0, 0, 9361, 9362, 5, 76, 0, 0, 9362, 9363, 5, 69, 0, 0, 9363, 9364, 5, 69, 0, 0, 9364, 9365, 5, 80, 0, 0, 9365, 1640, 1, 0, 0, 0, 9366, 9367, 5, 83, 0, 0, 9367, 9368, 5, 79, 0, 0, 9368, 9369, 5, 85, 0, 0, 9369, 9370, 5, 78, 0, 0, 9370, 9371, 5, 68, 0, 0, 9371, 9372, 5, 69, 0, 0, 9372, 9373, 5, 88, 0, 0, 9373, 1642, 1, 0, 0, 0, 9374, 9375, 5, 83, 0, 0, 9375, 9376, 5, 81, 0, 0, 9376, 9377, 5, 76, 0, 0, 9377, 9378, 5, 95, 0, 0, 9378, 9379, 5, 84, 0, 0, 9379, 9380, 5, 72, 0, 0, 9380, 9381, 5, 82, 0, 0, 9381, 9382, 5, 69, 0, 0, 9382, 9383, 5, 65, 0, 0, 9383, 9384, 5, 68, 0, 0, 9384, 9385, 5, 95, 0, 0, 9385, 9386, 5, 87, 0, 0, 9386, 9387, 5, 65, 0, 0, 9387, 9388, 5, 73, 0, 0, 9388, 9389, 5, 84, 0, 0, 9389, 9390, 5, 95, 0, 0, 9390, 9391, 5, 65, 0, 0, 9391, 9392, 5, 70, 0, 0, 9392, 9393, 5, 84, 0, 0, 9393, 9394, 5, 69, 0, 0, 9394, 9395, 5, 82, 0, 0, 9395, 9396, 5, 95, 0, 0, 9396, 9397, 5, 71, 0, 0, 9397, 9398, 5, 84, 0, 0, 9398, 9399, 5, 73, 0, 0, 9399, 9400, 5, 68, 0, 0, 9400, 9401, 5, 83, 0, 0, 9401, 1644, 1, 0, 0, 0, 9402, 9403, 5, 83, 0, 0, 9403, 9404, 5, 81, 0, 0, 9404, 9405, 5, 82, 0, 0, 9405, 9406, 5, 84, 0, 0, 9406, 1646, 1, 0, 0, 0, 9407, 9408, 5, 83, 0, 0, 9408, 9409, 5, 82, 0, 0, 9409, 9410, 5, 73, 0, 0, 9410, 9411, 5, 68, 0, 0, 9411, 1648, 1, 0, 0, 0, 9412, 9413, 5, 83, 0, 0, 9413, 9414, 5, 84, 0, 0, 9414, 9415, 5, 65, 0, 0, 9415, 9416, 5, 82, 0, 0, 9416, 9417, 5, 84, 0, 0, 9417, 9418, 5, 80, 0, 0, 9418, 9419, 5, 79, 0, 0, 9419, 9420, 5, 73, 0, 0, 9420, 9421, 5, 78, 0, 0, 9421, 9422, 5, 84, 0, 0, 9422, 1650, 1, 0, 0, 0, 9423, 9424, 5, 83, 0, 0, 9424, 9425, 5, 84, 0, 0, 9425, 9426, 5, 82, 0, 0, 9426, 9427, 5, 67, 0, 0, 9427, 9428, 5, 77, 0, 0, 9428, 9429, 5, 80, 0, 0, 9429, 1652, 1, 0, 0, 0, 9430, 9431, 5, 83, 0, 0, 9431, 9432, 5, 84, 0, 0, 9432, 9433, 5, 82, 0, 0, 9433, 9434, 5, 95, 0, 0, 9434, 9435, 5, 84, 0, 0, 9435, 9436, 5, 79, 0, 0, 9436, 9437, 5, 95, 0, 0, 9437, 9438, 5, 68, 0, 0, 9438, 9439, 5, 65, 0, 0, 9439, 9440, 5, 84, 0, 0, 9440, 9441, 5, 69, 0, 0, 9441, 1654, 1, 0, 0, 0, 9442, 9443, 5, 83, 0, 0, 9443, 9444, 5, 84, 0, 0, 9444, 9445, 5, 95, 0, 0, 9445, 9446, 5, 65, 0, 0, 9446, 9447, 5, 82, 0, 0, 9447, 9448, 5, 69, 0, 0, 9448, 9449, 5, 65, 0, 0, 9449, 1656, 1, 0, 0, 0, 9450, 9451, 5, 83, 0, 0, 9451, 9452, 5, 84, 0, 0, 9452, 9453, 5, 95, 0, 0, 9453, 9454, 5, 65, 0, 0, 9454, 9455, 5, 83, 0, 0, 9455, 9456, 5, 66, 0, 0, 9456, 9457, 5, 73, 0, 0, 9457, 9458, 5, 78, 0, 0, 9458, 9459, 5, 65, 0, 0, 9459, 9460, 5, 82, 0, 0, 9460, 9461, 5, 89, 0, 0, 9461, 1658, 1, 0, 0, 0, 9462, 9463, 5, 83, 0, 0, 9463, 9464, 5, 84, 0, 0, 9464, 9465, 5, 95, 0, 0, 9465, 9466, 5, 65, 0, 0, 9466, 9467, 5, 83, 0, 0, 9467, 9468, 5, 84, 0, 0, 9468, 9469, 5, 69, 0, 0, 9469, 9470, 5, 88, 0, 0, 9470, 9471, 5, 84, 0, 0, 9471, 1660, 1, 0, 0, 0, 9472, 9473, 5, 83, 0, 0, 9473, 9474, 5, 84, 0, 0, 9474, 9475, 5, 95, 0, 0, 9475, 9476, 5, 65, 0, 0, 9476, 9477, 5, 83, 0, 0, 9477, 9478, 5, 87, 0, 0, 9478, 9479, 5, 75, 0, 0, 9479, 9480, 5, 66, 0, 0, 9480, 1662, 1, 0, 0, 0, 9481, 9482, 5, 83, 0, 0, 9482, 9483, 5, 84, 0, 0, 9483, 9484, 5, 95, 0, 0, 9484, 9485, 5, 65, 0, 0, 9485, 9486, 5, 83, 0, 0, 9486, 9487, 5, 87, 0, 0, 9487, 9488, 5, 75, 0, 0, 9488, 9489, 5, 84, 0, 0, 9489, 1664, 1, 0, 0, 0, 9490, 9491, 5, 83, 0, 0, 9491, 9492, 5, 84, 0, 0, 9492, 9493, 5, 95, 0, 0, 9493, 9494, 5, 66, 0, 0, 9494, 9495, 5, 85, 0, 0, 9495, 9496, 5, 70, 0, 0, 9496, 9497, 5, 70, 0, 0, 9497, 9498, 5, 69, 0, 0, 9498, 9499, 5, 82, 0, 0, 9499, 1666, 1, 0, 0, 0, 9500, 9501, 5, 83, 0, 0, 9501, 9502, 5, 84, 0, 0, 9502, 9503, 5, 95, 0, 0, 9503, 9504, 5, 67, 0, 0, 9504, 9505, 5, 69, 0, 0, 9505, 9506, 5, 78, 0, 0, 9506, 9507, 5, 84, 0, 0, 9507, 9508, 5, 82, 0, 0, 9508, 9509, 5, 79, 0, 0, 9509, 9510, 5, 73, 0, 0, 9510, 9511, 5, 68, 0, 0, 9511, 1668, 1, 0, 0, 0, 9512, 9513, 5, 83, 0, 0, 9513, 9514, 5, 84, 0, 0, 9514, 9515, 5, 95, 0, 0, 9515, 9516, 5, 67, 0, 0, 9516, 9517, 5, 79, 0, 0, 9517, 9518, 5, 78, 0, 0, 9518, 9519, 5, 84, 0, 0, 9519, 9520, 5, 65, 0, 0, 9520, 9521, 5, 73, 0, 0, 9521, 9522, 5, 78, 0, 0, 9522, 9523, 5, 83, 0, 0, 9523, 1670, 1, 0, 0, 0, 9524, 9525, 5, 83, 0, 0, 9525, 9526, 5, 84, 0, 0, 9526, 9527, 5, 95, 0, 0, 9527, 9528, 5, 67, 0, 0, 9528, 9529, 5, 82, 0, 0, 9529, 9530, 5, 79, 0, 0, 9530, 9531, 5, 83, 0, 0, 9531, 9532, 5, 83, 0, 0, 9532, 9533, 5, 69, 0, 0, 9533, 9534, 5, 83, 0, 0, 9534, 1672, 1, 0, 0, 0, 9535, 9536, 5, 83, 0, 0, 9536, 9537, 5, 84, 0, 0, 9537, 9538, 5, 95, 0, 0, 9538, 9539, 5, 68, 0, 0, 9539, 9540, 5, 73, 0, 0, 9540, 9541, 5, 70, 0, 0, 9541, 9542, 5, 70, 0, 0, 9542, 9543, 5, 69, 0, 0, 9543, 9544, 5, 82, 0, 0, 9544, 9545, 5, 69, 0, 0, 9545, 9546, 5, 78, 0, 0, 9546, 9547, 5, 67, 0, 0, 9547, 9548, 5, 69, 0, 0, 9548, 1674, 1, 0, 0, 0, 9549, 9550, 5, 83, 0, 0, 9550, 9551, 5, 84, 0, 0, 9551, 9552, 5, 95, 0, 0, 9552, 9553, 5, 68, 0, 0, 9553, 9554, 5, 73, 0, 0, 9554, 9555, 5, 77, 0, 0, 9555, 9556, 5, 69, 0, 0, 9556, 9557, 5, 78, 0, 0, 9557, 9558, 5, 83, 0, 0, 9558, 9559, 5, 73, 0, 0, 9559, 9560, 5, 79, 0, 0, 9560, 9561, 5, 78, 0, 0, 9561, 1676, 1, 0, 0, 0, 9562, 9563, 5, 83, 0, 0, 9563, 9564, 5, 84, 0, 0, 9564, 9565, 5, 95, 0, 0, 9565, 9566, 5, 68, 0, 0, 9566, 9567, 5, 73, 0, 0, 9567, 9568, 5, 83, 0, 0, 9568, 9569, 5, 74, 0, 0, 9569, 9570, 5, 79, 0, 0, 9570, 9571, 5, 73, 0, 0, 9571, 9572, 5, 78, 0, 0, 9572, 9573, 5, 84, 0, 0, 9573, 1678, 1, 0, 0, 0, 9574, 9575, 5, 83, 0, 0, 9575, 9576, 5, 84, 0, 0, 9576, 9577, 5, 95, 0, 0, 9577, 9578, 5, 68, 0, 0, 9578, 9579, 5, 73, 0, 0, 9579, 9580, 5, 83, 0, 0, 9580, 9581, 5, 84, 0, 0, 9581, 9582, 5, 65, 0, 0, 9582, 9583, 5, 78, 0, 0, 9583, 9584, 5, 67, 0, 0, 9584, 9585, 5, 69, 0, 0, 9585, 1680, 1, 0, 0, 0, 9586, 9587, 5, 83, 0, 0, 9587, 9588, 5, 84, 0, 0, 9588, 9589, 5, 95, 0, 0, 9589, 9590, 5, 69, 0, 0, 9590, 9591, 5, 78, 0, 0, 9591, 9592, 5, 68, 0, 0, 9592, 9593, 5, 80, 0, 0, 9593, 9594, 5, 79, 0, 0, 9594, 9595, 5, 73, 0, 0, 9595, 9596, 5, 78, 0, 0, 9596, 9597, 5, 84, 0, 0, 9597, 1682, 1, 0, 0, 0, 9598, 9599, 5, 83, 0, 0, 9599, 9600, 5, 84, 0, 0, 9600, 9601, 5, 95, 0, 0, 9601, 9602, 5, 69, 0, 0, 9602, 9603, 5, 78, 0, 0, 9603, 9604, 5, 86, 0, 0, 9604, 9605, 5, 69, 0, 0, 9605, 9606, 5, 76, 0, 0, 9606, 9607, 5, 79, 0, 0, 9607, 9608, 5, 80, 0, 0, 9608, 9609, 5, 69, 0, 0, 9609, 1684, 1, 0, 0, 0, 9610, 9611, 5, 83, 0, 0, 9611, 9612, 5, 84, 0, 0, 9612, 9613, 5, 95, 0, 0, 9613, 9614, 5, 69, 0, 0, 9614, 9615, 5, 81, 0, 0, 9615, 9616, 5, 85, 0, 0, 9616, 9617, 5, 65, 0, 0, 9617, 9618, 5, 76, 0, 0, 9618, 9619, 5, 83, 0, 0, 9619, 1686, 1, 0, 0, 0, 9620, 9621, 5, 83, 0, 0, 9621, 9622, 5, 84, 0, 0, 9622, 9623, 5, 95, 0, 0, 9623, 9624, 5, 69, 0, 0, 9624, 9625, 5, 88, 0, 0, 9625, 9626, 5, 84, 0, 0, 9626, 9627, 5, 69, 0, 0, 9627, 9628, 5, 82, 0, 0, 9628, 9629, 5, 73, 0, 0, 9629, 9630, 5, 79, 0, 0, 9630, 9631, 5, 82, 0, 0, 9631, 9632, 5, 82, 0, 0, 9632, 9633, 5, 73, 0, 0, 9633, 9634, 5, 78, 0, 0, 9634, 9635, 5, 71, 0, 0, 9635, 1688, 1, 0, 0, 0, 9636, 9637, 5, 83, 0, 0, 9637, 9638, 5, 84, 0, 0, 9638, 9639, 5, 95, 0, 0, 9639, 9640, 5, 71, 0, 0, 9640, 9641, 5, 69, 0, 0, 9641, 9642, 5, 79, 0, 0, 9642, 9643, 5, 77, 0, 0, 9643, 9644, 5, 67, 0, 0, 9644, 9645, 5, 79, 0, 0, 9645, 9646, 5, 76, 0, 0, 9646, 9647, 5, 76, 0, 0, 9647, 9648, 5, 70, 0, 0, 9648, 9649, 5, 82, 0, 0, 9649, 9650, 5, 79, 0, 0, 9650, 9651, 5, 77, 0, 0, 9651, 9652, 5, 84, 0, 0, 9652, 9653, 5, 69, 0, 0, 9653, 9654, 5, 88, 0, 0, 9654, 9655, 5, 84, 0, 0, 9655, 1690, 1, 0, 0, 0, 9656, 9657, 5, 83, 0, 0, 9657, 9658, 5, 84, 0, 0, 9658, 9659, 5, 95, 0, 0, 9659, 9660, 5, 71, 0, 0, 9660, 9661, 5, 69, 0, 0, 9661, 9662, 5, 79, 0, 0, 9662, 9663, 5, 77, 0, 0, 9663, 9664, 5, 67, 0, 0, 9664, 9665, 5, 79, 0, 0, 9665, 9666, 5, 76, 0, 0, 9666, 9667, 5, 76, 0, 0, 9667, 9668, 5, 70, 0, 0, 9668, 9669, 5, 82, 0, 0, 9669, 9670, 5, 79, 0, 0, 9670, 9671, 5, 77, 0, 0, 9671, 9672, 5, 84, 0, 0, 9672, 9673, 5, 88, 0, 0, 9673, 9674, 5, 84, 0, 0, 9674, 1692, 1, 0, 0, 0, 9675, 9676, 5, 83, 0, 0, 9676, 9677, 5, 84, 0, 0, 9677, 9678, 5, 95, 0, 0, 9678, 9679, 5, 71, 0, 0, 9679, 9680, 5, 69, 0, 0, 9680, 9681, 5, 79, 0, 0, 9681, 9682, 5, 77, 0, 0, 9682, 9683, 5, 67, 0, 0, 9683, 9684, 5, 79, 0, 0, 9684, 9685, 5, 76, 0, 0, 9685, 9686, 5, 76, 0, 0, 9686, 9687, 5, 70, 0, 0, 9687, 9688, 5, 82, 0, 0, 9688, 9689, 5, 79, 0, 0, 9689, 9690, 5, 77, 0, 0, 9690, 9691, 5, 87, 0, 0, 9691, 9692, 5, 75, 0, 0, 9692, 9693, 5, 66, 0, 0, 9693, 1694, 1, 0, 0, 0, 9694, 9695, 5, 83, 0, 0, 9695, 9696, 5, 84, 0, 0, 9696, 9697, 5, 95, 0, 0, 9697, 9698, 5, 71, 0, 0, 9698, 9699, 5, 69, 0, 0, 9699, 9700, 5, 79, 0, 0, 9700, 9701, 5, 77, 0, 0, 9701, 9702, 5, 69, 0, 0, 9702, 9703, 5, 84, 0, 0, 9703, 9704, 5, 82, 0, 0, 9704, 9705, 5, 89, 0, 0, 9705, 9706, 5, 67, 0, 0, 9706, 9707, 5, 79, 0, 0, 9707, 9708, 5, 76, 0, 0, 9708, 9709, 5, 76, 0, 0, 9709, 9710, 5, 69, 0, 0, 9710, 9711, 5, 67, 0, 0, 9711, 9712, 5, 84, 0, 0, 9712, 9713, 5, 73, 0, 0, 9713, 9714, 5, 79, 0, 0, 9714, 9715, 5, 78, 0, 0, 9715, 9716, 5, 70, 0, 0, 9716, 9717, 5, 82, 0, 0, 9717, 9718, 5, 79, 0, 0, 9718, 9719, 5, 77, 0, 0, 9719, 9720, 5, 84, 0, 0, 9720, 9721, 5, 69, 0, 0, 9721, 9722, 5, 88, 0, 0, 9722, 9723, 5, 84, 0, 0, 9723, 1696, 1, 0, 0, 0, 9724, 9725, 5, 83, 0, 0, 9725, 9726, 5, 84, 0, 0, 9726, 9727, 5, 95, 0, 0, 9727, 9728, 5, 71, 0, 0, 9728, 9729, 5, 69, 0, 0, 9729, 9730, 5, 79, 0, 0, 9730, 9731, 5, 77, 0, 0, 9731, 9732, 5, 69, 0, 0, 9732, 9733, 5, 84, 0, 0, 9733, 9734, 5, 82, 0, 0, 9734, 9735, 5, 89, 0, 0, 9735, 9736, 5, 67, 0, 0, 9736, 9737, 5, 79, 0, 0, 9737, 9738, 5, 76, 0, 0, 9738, 9739, 5, 76, 0, 0, 9739, 9740, 5, 69, 0, 0, 9740, 9741, 5, 67, 0, 0, 9741, 9742, 5, 84, 0, 0, 9742, 9743, 5, 73, 0, 0, 9743, 9744, 5, 79, 0, 0, 9744, 9745, 5, 78, 0, 0, 9745, 9746, 5, 70, 0, 0, 9746, 9747, 5, 82, 0, 0, 9747, 9748, 5, 79, 0, 0, 9748, 9749, 5, 77, 0, 0, 9749, 9750, 5, 87, 0, 0, 9750, 9751, 5, 75, 0, 0, 9751, 9752, 5, 66, 0, 0, 9752, 1698, 1, 0, 0, 0, 9753, 9754, 5, 83, 0, 0, 9754, 9755, 5, 84, 0, 0, 9755, 9756, 5, 95, 0, 0, 9756, 9757, 5, 71, 0, 0, 9757, 9758, 5, 69, 0, 0, 9758, 9759, 5, 79, 0, 0, 9759, 9760, 5, 77, 0, 0, 9760, 9761, 5, 69, 0, 0, 9761, 9762, 5, 84, 0, 0, 9762, 9763, 5, 82, 0, 0, 9763, 9764, 5, 89, 0, 0, 9764, 9765, 5, 70, 0, 0, 9765, 9766, 5, 82, 0, 0, 9766, 9767, 5, 79, 0, 0, 9767, 9768, 5, 77, 0, 0, 9768, 9769, 5, 84, 0, 0, 9769, 9770, 5, 69, 0, 0, 9770, 9771, 5, 88, 0, 0, 9771, 9772, 5, 84, 0, 0, 9772, 1700, 1, 0, 0, 0, 9773, 9774, 5, 83, 0, 0, 9774, 9775, 5, 84, 0, 0, 9775, 9776, 5, 95, 0, 0, 9776, 9777, 5, 71, 0, 0, 9777, 9778, 5, 69, 0, 0, 9778, 9779, 5, 79, 0, 0, 9779, 9780, 5, 77, 0, 0, 9780, 9781, 5, 69, 0, 0, 9781, 9782, 5, 84, 0, 0, 9782, 9783, 5, 82, 0, 0, 9783, 9784, 5, 89, 0, 0, 9784, 9785, 5, 70, 0, 0, 9785, 9786, 5, 82, 0, 0, 9786, 9787, 5, 79, 0, 0, 9787, 9788, 5, 77, 0, 0, 9788, 9789, 5, 87, 0, 0, 9789, 9790, 5, 75, 0, 0, 9790, 9791, 5, 66, 0, 0, 9791, 1702, 1, 0, 0, 0, 9792, 9793, 5, 83, 0, 0, 9793, 9794, 5, 84, 0, 0, 9794, 9795, 5, 95, 0, 0, 9795, 9796, 5, 71, 0, 0, 9796, 9797, 5, 69, 0, 0, 9797, 9798, 5, 79, 0, 0, 9798, 9799, 5, 77, 0, 0, 9799, 9800, 5, 69, 0, 0, 9800, 9801, 5, 84, 0, 0, 9801, 9802, 5, 82, 0, 0, 9802, 9803, 5, 89, 0, 0, 9803, 9804, 5, 78, 0, 0, 9804, 1704, 1, 0, 0, 0, 9805, 9806, 5, 83, 0, 0, 9806, 9807, 5, 84, 0, 0, 9807, 9808, 5, 95, 0, 0, 9808, 9809, 5, 71, 0, 0, 9809, 9810, 5, 69, 0, 0, 9810, 9811, 5, 79, 0, 0, 9811, 9812, 5, 77, 0, 0, 9812, 9813, 5, 69, 0, 0, 9813, 9814, 5, 84, 0, 0, 9814, 9815, 5, 82, 0, 0, 9815, 9816, 5, 89, 0, 0, 9816, 9817, 5, 84, 0, 0, 9817, 9818, 5, 89, 0, 0, 9818, 9819, 5, 80, 0, 0, 9819, 9820, 5, 69, 0, 0, 9820, 1706, 1, 0, 0, 0, 9821, 9822, 5, 83, 0, 0, 9822, 9823, 5, 84, 0, 0, 9823, 9824, 5, 95, 0, 0, 9824, 9825, 5, 71, 0, 0, 9825, 9826, 5, 69, 0, 0, 9826, 9827, 5, 79, 0, 0, 9827, 9828, 5, 77, 0, 0, 9828, 9829, 5, 70, 0, 0, 9829, 9830, 5, 82, 0, 0, 9830, 9831, 5, 79, 0, 0, 9831, 9832, 5, 77, 0, 0, 9832, 9833, 5, 84, 0, 0, 9833, 9834, 5, 69, 0, 0, 9834, 9835, 5, 88, 0, 0, 9835, 9836, 5, 84, 0, 0, 9836, 1708, 1, 0, 0, 0, 9837, 9838, 5, 83, 0, 0, 9838, 9839, 5, 84, 0, 0, 9839, 9840, 5, 95, 0, 0, 9840, 9841, 5, 71, 0, 0, 9841, 9842, 5, 69, 0, 0, 9842, 9843, 5, 79, 0, 0, 9843, 9844, 5, 77, 0, 0, 9844, 9845, 5, 70, 0, 0, 9845, 9846, 5, 82, 0, 0, 9846, 9847, 5, 79, 0, 0, 9847, 9848, 5, 77, 0, 0, 9848, 9849, 5, 87, 0, 0, 9849, 9850, 5, 75, 0, 0, 9850, 9851, 5, 66, 0, 0, 9851, 1710, 1, 0, 0, 0, 9852, 9853, 5, 83, 0, 0, 9853, 9854, 5, 84, 0, 0, 9854, 9855, 5, 95, 0, 0, 9855, 9856, 5, 73, 0, 0, 9856, 9857, 5, 78, 0, 0, 9857, 9858, 5, 84, 0, 0, 9858, 9859, 5, 69, 0, 0, 9859, 9860, 5, 82, 0, 0, 9860, 9861, 5, 73, 0, 0, 9861, 9862, 5, 79, 0, 0, 9862, 9863, 5, 82, 0, 0, 9863, 9864, 5, 82, 0, 0, 9864, 9865, 5, 73, 0, 0, 9865, 9866, 5, 78, 0, 0, 9866, 9867, 5, 71, 0, 0, 9867, 9868, 5, 78, 0, 0, 9868, 1712, 1, 0, 0, 0, 9869, 9870, 5, 83, 0, 0, 9870, 9871, 5, 84, 0, 0, 9871, 9872, 5, 95, 0, 0, 9872, 9873, 5, 73, 0, 0, 9873, 9874, 5, 78, 0, 0, 9874, 9875, 5, 84, 0, 0, 9875, 9876, 5, 69, 0, 0, 9876, 9877, 5, 82, 0, 0, 9877, 9878, 5, 83, 0, 0, 9878, 9879, 5, 69, 0, 0, 9879, 9880, 5, 67, 0, 0, 9880, 9881, 5, 84, 0, 0, 9881, 9882, 5, 73, 0, 0, 9882, 9883, 5, 79, 0, 0, 9883, 9884, 5, 78, 0, 0, 9884, 1714, 1, 0, 0, 0, 9885, 9886, 5, 83, 0, 0, 9886, 9887, 5, 84, 0, 0, 9887, 9888, 5, 95, 0, 0, 9888, 9889, 5, 73, 0, 0, 9889, 9890, 5, 78, 0, 0, 9890, 9891, 5, 84, 0, 0, 9891, 9892, 5, 69, 0, 0, 9892, 9893, 5, 82, 0, 0, 9893, 9894, 5, 83, 0, 0, 9894, 9895, 5, 69, 0, 0, 9895, 9896, 5, 67, 0, 0, 9896, 9897, 5, 84, 0, 0, 9897, 9898, 5, 83, 0, 0, 9898, 1716, 1, 0, 0, 0, 9899, 9900, 5, 83, 0, 0, 9900, 9901, 5, 84, 0, 0, 9901, 9902, 5, 95, 0, 0, 9902, 9903, 5, 73, 0, 0, 9903, 9904, 5, 83, 0, 0, 9904, 9905, 5, 67, 0, 0, 9905, 9906, 5, 76, 0, 0, 9906, 9907, 5, 79, 0, 0, 9907, 9908, 5, 83, 0, 0, 9908, 9909, 5, 69, 0, 0, 9909, 9910, 5, 68, 0, 0, 9910, 1718, 1, 0, 0, 0, 9911, 9912, 5, 83, 0, 0, 9912, 9913, 5, 84, 0, 0, 9913, 9914, 5, 95, 0, 0, 9914, 9915, 5, 73, 0, 0, 9915, 9916, 5, 83, 0, 0, 9916, 9917, 5, 69, 0, 0, 9917, 9918, 5, 77, 0, 0, 9918, 9919, 5, 80, 0, 0, 9919, 9920, 5, 84, 0, 0, 9920, 9921, 5, 89, 0, 0, 9921, 1720, 1, 0, 0, 0, 9922, 9923, 5, 83, 0, 0, 9923, 9924, 5, 84, 0, 0, 9924, 9925, 5, 95, 0, 0, 9925, 9926, 5, 73, 0, 0, 9926, 9927, 5, 83, 0, 0, 9927, 9928, 5, 83, 0, 0, 9928, 9929, 5, 73, 0, 0, 9929, 9930, 5, 77, 0, 0, 9930, 9931, 5, 80, 0, 0, 9931, 9932, 5, 76, 0, 0, 9932, 9933, 5, 69, 0, 0, 9933, 1722, 1, 0, 0, 0, 9934, 9935, 5, 83, 0, 0, 9935, 9936, 5, 84, 0, 0, 9936, 9937, 5, 95, 0, 0, 9937, 9938, 5, 76, 0, 0, 9938, 9939, 5, 73, 0, 0, 9939, 9940, 5, 78, 0, 0, 9940, 9941, 5, 69, 0, 0, 9941, 9942, 5, 70, 0, 0, 9942, 9943, 5, 82, 0, 0, 9943, 9944, 5, 79, 0, 0, 9944, 9945, 5, 77, 0, 0, 9945, 9946, 5, 84, 0, 0, 9946, 9947, 5, 69, 0, 0, 9947, 9948, 5, 88, 0, 0, 9948, 9949, 5, 84, 0, 0, 9949, 1724, 1, 0, 0, 0, 9950, 9951, 5, 83, 0, 0, 9951, 9952, 5, 84, 0, 0, 9952, 9953, 5, 95, 0, 0, 9953, 9954, 5, 76, 0, 0, 9954, 9955, 5, 73, 0, 0, 9955, 9956, 5, 78, 0, 0, 9956, 9957, 5, 69, 0, 0, 9957, 9958, 5, 70, 0, 0, 9958, 9959, 5, 82, 0, 0, 9959, 9960, 5, 79, 0, 0, 9960, 9961, 5, 77, 0, 0, 9961, 9962, 5, 87, 0, 0, 9962, 9963, 5, 75, 0, 0, 9963, 9964, 5, 66, 0, 0, 9964, 1726, 1, 0, 0, 0, 9965, 9966, 5, 83, 0, 0, 9966, 9967, 5, 84, 0, 0, 9967, 9968, 5, 95, 0, 0, 9968, 9969, 5, 76, 0, 0, 9969, 9970, 5, 73, 0, 0, 9970, 9971, 5, 78, 0, 0, 9971, 9972, 5, 69, 0, 0, 9972, 9973, 5, 83, 0, 0, 9973, 9974, 5, 84, 0, 0, 9974, 9975, 5, 82, 0, 0, 9975, 9976, 5, 73, 0, 0, 9976, 9977, 5, 78, 0, 0, 9977, 9978, 5, 71, 0, 0, 9978, 9979, 5, 70, 0, 0, 9979, 9980, 5, 82, 0, 0, 9980, 9981, 5, 79, 0, 0, 9981, 9982, 5, 77, 0, 0, 9982, 9983, 5, 84, 0, 0, 9983, 9984, 5, 69, 0, 0, 9984, 9985, 5, 88, 0, 0, 9985, 9986, 5, 84, 0, 0, 9986, 1728, 1, 0, 0, 0, 9987, 9988, 5, 83, 0, 0, 9988, 9989, 5, 84, 0, 0, 9989, 9990, 5, 95, 0, 0, 9990, 9991, 5, 76, 0, 0, 9991, 9992, 5, 73, 0, 0, 9992, 9993, 5, 78, 0, 0, 9993, 9994, 5, 69, 0, 0, 9994, 9995, 5, 83, 0, 0, 9995, 9996, 5, 84, 0, 0, 9996, 9997, 5, 82, 0, 0, 9997, 9998, 5, 73, 0, 0, 9998, 9999, 5, 78, 0, 0, 9999, 10000, 5, 71, 0, 0, 10000, 10001, 5, 70, 0, 0, 10001, 10002, 5, 82, 0, 0, 10002, 10003, 5, 79, 0, 0, 10003, 10004, 5, 77, 0, 0, 10004, 10005, 5, 87, 0, 0, 10005, 10006, 5, 75, 0, 0, 10006, 10007, 5, 66, 0, 0, 10007, 1730, 1, 0, 0, 0, 10008, 10009, 5, 83, 0, 0, 10009, 10010, 5, 84, 0, 0, 10010, 10011, 5, 95, 0, 0, 10011, 10012, 5, 78, 0, 0, 10012, 10013, 5, 85, 0, 0, 10013, 10014, 5, 77, 0, 0, 10014, 10015, 5, 71, 0, 0, 10015, 10016, 5, 69, 0, 0, 10016, 10017, 5, 79, 0, 0, 10017, 10018, 5, 77, 0, 0, 10018, 10019, 5, 69, 0, 0, 10019, 10020, 5, 84, 0, 0, 10020, 10021, 5, 82, 0, 0, 10021, 10022, 5, 73, 0, 0, 10022, 10023, 5, 69, 0, 0, 10023, 10024, 5, 83, 0, 0, 10024, 1732, 1, 0, 0, 0, 10025, 10026, 5, 83, 0, 0, 10026, 10027, 5, 84, 0, 0, 10027, 10028, 5, 95, 0, 0, 10028, 10029, 5, 78, 0, 0, 10029, 10030, 5, 85, 0, 0, 10030, 10031, 5, 77, 0, 0, 10031, 10032, 5, 73, 0, 0, 10032, 10033, 5, 78, 0, 0, 10033, 10034, 5, 84, 0, 0, 10034, 10035, 5, 69, 0, 0, 10035, 10036, 5, 82, 0, 0, 10036, 10037, 5, 73, 0, 0, 10037, 10038, 5, 79, 0, 0, 10038, 10039, 5, 82, 0, 0, 10039, 10040, 5, 82, 0, 0, 10040, 10041, 5, 73, 0, 0, 10041, 10042, 5, 78, 0, 0, 10042, 10043, 5, 71, 0, 0, 10043, 1734, 1, 0, 0, 0, 10044, 10045, 5, 83, 0, 0, 10045, 10046, 5, 84, 0, 0, 10046, 10047, 5, 95, 0, 0, 10047, 10048, 5, 78, 0, 0, 10048, 10049, 5, 85, 0, 0, 10049, 10050, 5, 77, 0, 0, 10050, 10051, 5, 73, 0, 0, 10051, 10052, 5, 78, 0, 0, 10052, 10053, 5, 84, 0, 0, 10053, 10054, 5, 69, 0, 0, 10054, 10055, 5, 82, 0, 0, 10055, 10056, 5, 73, 0, 0, 10056, 10057, 5, 79, 0, 0, 10057, 10058, 5, 82, 0, 0, 10058, 10059, 5, 82, 0, 0, 10059, 10060, 5, 73, 0, 0, 10060, 10061, 5, 78, 0, 0, 10061, 10062, 5, 71, 0, 0, 10062, 10063, 5, 83, 0, 0, 10063, 1736, 1, 0, 0, 0, 10064, 10065, 5, 83, 0, 0, 10065, 10066, 5, 84, 0, 0, 10066, 10067, 5, 95, 0, 0, 10067, 10068, 5, 78, 0, 0, 10068, 10069, 5, 85, 0, 0, 10069, 10070, 5, 77, 0, 0, 10070, 10071, 5, 80, 0, 0, 10071, 10072, 5, 79, 0, 0, 10072, 10073, 5, 73, 0, 0, 10073, 10074, 5, 78, 0, 0, 10074, 10075, 5, 84, 0, 0, 10075, 10076, 5, 83, 0, 0, 10076, 1738, 1, 0, 0, 0, 10077, 10078, 5, 83, 0, 0, 10078, 10079, 5, 84, 0, 0, 10079, 10080, 5, 95, 0, 0, 10080, 10081, 5, 79, 0, 0, 10081, 10082, 5, 86, 0, 0, 10082, 10083, 5, 69, 0, 0, 10083, 10084, 5, 82, 0, 0, 10084, 10085, 5, 76, 0, 0, 10085, 10086, 5, 65, 0, 0, 10086, 10087, 5, 80, 0, 0, 10087, 10088, 5, 83, 0, 0, 10088, 1740, 1, 0, 0, 0, 10089, 10090, 5, 83, 0, 0, 10090, 10091, 5, 84, 0, 0, 10091, 10092, 5, 95, 0, 0, 10092, 10093, 5, 80, 0, 0, 10093, 10094, 5, 79, 0, 0, 10094, 10095, 5, 73, 0, 0, 10095, 10096, 5, 78, 0, 0, 10096, 10097, 5, 84, 0, 0, 10097, 10098, 5, 70, 0, 0, 10098, 10099, 5, 82, 0, 0, 10099, 10100, 5, 79, 0, 0, 10100, 10101, 5, 77, 0, 0, 10101, 10102, 5, 84, 0, 0, 10102, 10103, 5, 69, 0, 0, 10103, 10104, 5, 88, 0, 0, 10104, 10105, 5, 84, 0, 0, 10105, 1742, 1, 0, 0, 0, 10106, 10107, 5, 83, 0, 0, 10107, 10108, 5, 84, 0, 0, 10108, 10109, 5, 95, 0, 0, 10109, 10110, 5, 80, 0, 0, 10110, 10111, 5, 79, 0, 0, 10111, 10112, 5, 73, 0, 0, 10112, 10113, 5, 78, 0, 0, 10113, 10114, 5, 84, 0, 0, 10114, 10115, 5, 70, 0, 0, 10115, 10116, 5, 82, 0, 0, 10116, 10117, 5, 79, 0, 0, 10117, 10118, 5, 77, 0, 0, 10118, 10119, 5, 87, 0, 0, 10119, 10120, 5, 75, 0, 0, 10120, 10121, 5, 66, 0, 0, 10121, 1744, 1, 0, 0, 0, 10122, 10123, 5, 83, 0, 0, 10123, 10124, 5, 84, 0, 0, 10124, 10125, 5, 95, 0, 0, 10125, 10126, 5, 80, 0, 0, 10126, 10127, 5, 79, 0, 0, 10127, 10128, 5, 73, 0, 0, 10128, 10129, 5, 78, 0, 0, 10129, 10130, 5, 84, 0, 0, 10130, 10131, 5, 78, 0, 0, 10131, 1746, 1, 0, 0, 0, 10132, 10133, 5, 83, 0, 0, 10133, 10134, 5, 84, 0, 0, 10134, 10135, 5, 95, 0, 0, 10135, 10136, 5, 80, 0, 0, 10136, 10137, 5, 79, 0, 0, 10137, 10138, 5, 76, 0, 0, 10138, 10139, 5, 89, 0, 0, 10139, 10140, 5, 70, 0, 0, 10140, 10141, 5, 82, 0, 0, 10141, 10142, 5, 79, 0, 0, 10142, 10143, 5, 77, 0, 0, 10143, 10144, 5, 84, 0, 0, 10144, 10145, 5, 69, 0, 0, 10145, 10146, 5, 88, 0, 0, 10146, 10147, 5, 84, 0, 0, 10147, 1748, 1, 0, 0, 0, 10148, 10149, 5, 83, 0, 0, 10149, 10150, 5, 84, 0, 0, 10150, 10151, 5, 95, 0, 0, 10151, 10152, 5, 80, 0, 0, 10152, 10153, 5, 79, 0, 0, 10153, 10154, 5, 76, 0, 0, 10154, 10155, 5, 89, 0, 0, 10155, 10156, 5, 70, 0, 0, 10156, 10157, 5, 82, 0, 0, 10157, 10158, 5, 79, 0, 0, 10158, 10159, 5, 77, 0, 0, 10159, 10160, 5, 87, 0, 0, 10160, 10161, 5, 75, 0, 0, 10161, 10162, 5, 66, 0, 0, 10162, 1750, 1, 0, 0, 0, 10163, 10164, 5, 83, 0, 0, 10164, 10165, 5, 84, 0, 0, 10165, 10166, 5, 95, 0, 0, 10166, 10167, 5, 80, 0, 0, 10167, 10168, 5, 79, 0, 0, 10168, 10169, 5, 76, 0, 0, 10169, 10170, 5, 89, 0, 0, 10170, 10171, 5, 71, 0, 0, 10171, 10172, 5, 79, 0, 0, 10172, 10173, 5, 78, 0, 0, 10173, 10174, 5, 70, 0, 0, 10174, 10175, 5, 82, 0, 0, 10175, 10176, 5, 79, 0, 0, 10176, 10177, 5, 77, 0, 0, 10177, 10178, 5, 84, 0, 0, 10178, 10179, 5, 69, 0, 0, 10179, 10180, 5, 88, 0, 0, 10180, 10181, 5, 84, 0, 0, 10181, 1752, 1, 0, 0, 0, 10182, 10183, 5, 83, 0, 0, 10183, 10184, 5, 84, 0, 0, 10184, 10185, 5, 95, 0, 0, 10185, 10186, 5, 80, 0, 0, 10186, 10187, 5, 79, 0, 0, 10187, 10188, 5, 76, 0, 0, 10188, 10189, 5, 89, 0, 0, 10189, 10190, 5, 71, 0, 0, 10190, 10191, 5, 79, 0, 0, 10191, 10192, 5, 78, 0, 0, 10192, 10193, 5, 70, 0, 0, 10193, 10194, 5, 82, 0, 0, 10194, 10195, 5, 79, 0, 0, 10195, 10196, 5, 77, 0, 0, 10196, 10197, 5, 87, 0, 0, 10197, 10198, 5, 75, 0, 0, 10198, 10199, 5, 66, 0, 0, 10199, 1754, 1, 0, 0, 0, 10200, 10201, 5, 83, 0, 0, 10201, 10202, 5, 84, 0, 0, 10202, 10203, 5, 95, 0, 0, 10203, 10204, 5, 83, 0, 0, 10204, 10205, 5, 82, 0, 0, 10205, 10206, 5, 73, 0, 0, 10206, 10207, 5, 68, 0, 0, 10207, 1756, 1, 0, 0, 0, 10208, 10209, 5, 83, 0, 0, 10209, 10210, 5, 84, 0, 0, 10210, 10211, 5, 95, 0, 0, 10211, 10212, 5, 83, 0, 0, 10212, 10213, 5, 84, 0, 0, 10213, 10214, 5, 65, 0, 0, 10214, 10215, 5, 82, 0, 0, 10215, 10216, 5, 84, 0, 0, 10216, 10217, 5, 80, 0, 0, 10217, 10218, 5, 79, 0, 0, 10218, 10219, 5, 73, 0, 0, 10219, 10220, 5, 78, 0, 0, 10220, 10221, 5, 84, 0, 0, 10221, 1758, 1, 0, 0, 0, 10222, 10223, 5, 83, 0, 0, 10223, 10224, 5, 84, 0, 0, 10224, 10225, 5, 95, 0, 0, 10225, 10226, 5, 83, 0, 0, 10226, 10227, 5, 89, 0, 0, 10227, 10228, 5, 77, 0, 0, 10228, 10229, 5, 68, 0, 0, 10229, 10230, 5, 73, 0, 0, 10230, 10231, 5, 70, 0, 0, 10231, 10232, 5, 70, 0, 0, 10232, 10233, 5, 69, 0, 0, 10233, 10234, 5, 82, 0, 0, 10234, 10235, 5, 69, 0, 0, 10235, 10236, 5, 78, 0, 0, 10236, 10237, 5, 67, 0, 0, 10237, 10238, 5, 69, 0, 0, 10238, 1760, 1, 0, 0, 0, 10239, 10240, 5, 83, 0, 0, 10240, 10241, 5, 84, 0, 0, 10241, 10242, 5, 95, 0, 0, 10242, 10243, 5, 84, 0, 0, 10243, 10244, 5, 79, 0, 0, 10244, 10245, 5, 85, 0, 0, 10245, 10246, 5, 67, 0, 0, 10246, 10247, 5, 72, 0, 0, 10247, 10248, 5, 69, 0, 0, 10248, 10249, 5, 83, 0, 0, 10249, 1762, 1, 0, 0, 0, 10250, 10251, 5, 83, 0, 0, 10251, 10252, 5, 84, 0, 0, 10252, 10253, 5, 95, 0, 0, 10253, 10254, 5, 85, 0, 0, 10254, 10255, 5, 78, 0, 0, 10255, 10256, 5, 73, 0, 0, 10256, 10257, 5, 79, 0, 0, 10257, 10258, 5, 78, 0, 0, 10258, 1764, 1, 0, 0, 0, 10259, 10260, 5, 83, 0, 0, 10260, 10261, 5, 84, 0, 0, 10261, 10262, 5, 95, 0, 0, 10262, 10263, 5, 87, 0, 0, 10263, 10264, 5, 73, 0, 0, 10264, 10265, 5, 84, 0, 0, 10265, 10266, 5, 72, 0, 0, 10266, 10267, 5, 73, 0, 0, 10267, 10268, 5, 78, 0, 0, 10268, 1766, 1, 0, 0, 0, 10269, 10270, 5, 83, 0, 0, 10270, 10271, 5, 84, 0, 0, 10271, 10272, 5, 95, 0, 0, 10272, 10273, 5, 88, 0, 0, 10273, 1768, 1, 0, 0, 0, 10274, 10275, 5, 83, 0, 0, 10275, 10276, 5, 84, 0, 0, 10276, 10277, 5, 95, 0, 0, 10277, 10278, 5, 89, 0, 0, 10278, 1770, 1, 0, 0, 0, 10279, 10280, 5, 83, 0, 0, 10280, 10281, 5, 85, 0, 0, 10281, 10282, 5, 66, 0, 0, 10282, 10283, 5, 68, 0, 0, 10283, 10284, 5, 65, 0, 0, 10284, 10285, 5, 84, 0, 0, 10285, 10286, 5, 69, 0, 0, 10286, 1772, 1, 0, 0, 0, 10287, 10288, 5, 83, 0, 0, 10288, 10289, 5, 85, 0, 0, 10289, 10290, 5, 66, 0, 0, 10290, 10291, 5, 83, 0, 0, 10291, 10292, 5, 84, 0, 0, 10292, 10293, 5, 82, 0, 0, 10293, 10294, 5, 73, 0, 0, 10294, 10295, 5, 78, 0, 0, 10295, 10296, 5, 71, 0, 0, 10296, 10297, 5, 95, 0, 0, 10297, 10298, 5, 73, 0, 0, 10298, 10299, 5, 78, 0, 0, 10299, 10300, 5, 68, 0, 0, 10300, 10301, 5, 69, 0, 0, 10301, 10302, 5, 88, 0, 0, 10302, 1774, 1, 0, 0, 0, 10303, 10304, 5, 83, 0, 0, 10304, 10305, 5, 85, 0, 0, 10305, 10306, 5, 66, 0, 0, 10306, 10307, 5, 84, 0, 0, 10307, 10308, 5, 73, 0, 0, 10308, 10309, 5, 77, 0, 0, 10309, 10310, 5, 69, 0, 0, 10310, 1776, 1, 0, 0, 0, 10311, 10312, 5, 83, 0, 0, 10312, 10313, 5, 89, 0, 0, 10313, 10314, 5, 83, 0, 0, 10314, 10315, 5, 84, 0, 0, 10315, 10316, 5, 69, 0, 0, 10316, 10317, 5, 77, 0, 0, 10317, 10318, 5, 95, 0, 0, 10318, 10319, 5, 85, 0, 0, 10319, 10320, 5, 83, 0, 0, 10320, 10321, 5, 69, 0, 0, 10321, 10322, 5, 82, 0, 0, 10322, 1778, 1, 0, 0, 0, 10323, 10324, 5, 84, 0, 0, 10324, 10325, 5, 65, 0, 0, 10325, 10326, 5, 78, 0, 0, 10326, 1780, 1, 0, 0, 0, 10327, 10328, 5, 84, 0, 0, 10328, 10329, 5, 73, 0, 0, 10329, 10330, 5, 77, 0, 0, 10330, 10331, 5, 69, 0, 0, 10331, 10332, 5, 68, 0, 0, 10332, 10333, 5, 73, 0, 0, 10333, 10334, 5, 70, 0, 0, 10334, 10335, 5, 70, 0, 0, 10335, 1782, 1, 0, 0, 0, 10336, 10337, 5, 84, 0, 0, 10337, 10338, 5, 73, 0, 0, 10338, 10339, 5, 77, 0, 0, 10339, 10340, 5, 69, 0, 0, 10340, 10341, 5, 83, 0, 0, 10341, 10342, 5, 84, 0, 0, 10342, 10343, 5, 65, 0, 0, 10343, 10344, 5, 77, 0, 0, 10344, 10345, 5, 80, 0, 0, 10345, 10346, 5, 65, 0, 0, 10346, 10347, 5, 68, 0, 0, 10347, 10348, 5, 68, 0, 0, 10348, 1784, 1, 0, 0, 0, 10349, 10350, 5, 84, 0, 0, 10350, 10351, 5, 73, 0, 0, 10351, 10352, 5, 77, 0, 0, 10352, 10353, 5, 69, 0, 0, 10353, 10354, 5, 83, 0, 0, 10354, 10355, 5, 84, 0, 0, 10355, 10356, 5, 65, 0, 0, 10356, 10357, 5, 77, 0, 0, 10357, 10358, 5, 80, 0, 0, 10358, 10359, 5, 68, 0, 0, 10359, 10360, 5, 73, 0, 0, 10360, 10361, 5, 70, 0, 0, 10361, 10362, 5, 70, 0, 0, 10362, 1786, 1, 0, 0, 0, 10363, 10364, 5, 84, 0, 0, 10364, 10365, 5, 73, 0, 0, 10365, 10366, 5, 77, 0, 0, 10366, 10367, 5, 69, 0, 0, 10367, 10368, 5, 95, 0, 0, 10368, 10369, 5, 70, 0, 0, 10369, 10370, 5, 79, 0, 0, 10370, 10371, 5, 82, 0, 0, 10371, 10372, 5, 77, 0, 0, 10372, 10373, 5, 65, 0, 0, 10373, 10374, 5, 84, 0, 0, 10374, 1788, 1, 0, 0, 0, 10375, 10376, 5, 84, 0, 0, 10376, 10377, 5, 73, 0, 0, 10377, 10378, 5, 77, 0, 0, 10378, 10379, 5, 69, 0, 0, 10379, 10380, 5, 95, 0, 0, 10380, 10381, 5, 84, 0, 0, 10381, 10382, 5, 79, 0, 0, 10382, 10383, 5, 95, 0, 0, 10383, 10384, 5, 83, 0, 0, 10384, 10385, 5, 69, 0, 0, 10385, 10386, 5, 67, 0, 0, 10386, 1790, 1, 0, 0, 0, 10387, 10388, 5, 84, 0, 0, 10388, 10389, 5, 79, 0, 0, 10389, 10390, 5, 85, 0, 0, 10390, 10391, 5, 67, 0, 0, 10391, 10392, 5, 72, 0, 0, 10392, 10393, 5, 69, 0, 0, 10393, 10394, 5, 83, 0, 0, 10394, 1792, 1, 0, 0, 0, 10395, 10396, 5, 84, 0, 0, 10396, 10397, 5, 79, 0, 0, 10397, 10398, 5, 95, 0, 0, 10398, 10399, 5, 66, 0, 0, 10399, 10400, 5, 65, 0, 0, 10400, 10401, 5, 83, 0, 0, 10401, 10402, 5, 69, 0, 0, 10402, 10403, 5, 54, 0, 0, 10403, 10404, 5, 52, 0, 0, 10404, 1794, 1, 0, 0, 0, 10405, 10406, 5, 84, 0, 0, 10406, 10407, 5, 79, 0, 0, 10407, 10408, 5, 95, 0, 0, 10408, 10409, 5, 68, 0, 0, 10409, 10410, 5, 65, 0, 0, 10410, 10411, 5, 89, 0, 0, 10411, 10412, 5, 83, 0, 0, 10412, 1796, 1, 0, 0, 0, 10413, 10414, 5, 84, 0, 0, 10414, 10415, 5, 79, 0, 0, 10415, 10416, 5, 95, 0, 0, 10416, 10417, 5, 83, 0, 0, 10417, 10418, 5, 69, 0, 0, 10418, 10419, 5, 67, 0, 0, 10419, 10420, 5, 79, 0, 0, 10420, 10421, 5, 78, 0, 0, 10421, 10422, 5, 68, 0, 0, 10422, 10423, 5, 83, 0, 0, 10423, 1798, 1, 0, 0, 0, 10424, 10425, 5, 85, 0, 0, 10425, 10426, 5, 67, 0, 0, 10426, 10427, 5, 65, 0, 0, 10427, 10428, 5, 83, 0, 0, 10428, 10429, 5, 69, 0, 0, 10429, 1800, 1, 0, 0, 0, 10430, 10431, 5, 85, 0, 0, 10431, 10432, 5, 78, 0, 0, 10432, 10433, 5, 67, 0, 0, 10433, 10434, 5, 79, 0, 0, 10434, 10435, 5, 77, 0, 0, 10435, 10436, 5, 80, 0, 0, 10436, 10437, 5, 82, 0, 0, 10437, 10438, 5, 69, 0, 0, 10438, 10439, 5, 83, 0, 0, 10439, 10440, 5, 83, 0, 0, 10440, 1802, 1, 0, 0, 0, 10441, 10442, 5, 85, 0, 0, 10442, 10443, 5, 78, 0, 0, 10443, 10444, 5, 67, 0, 0, 10444, 10445, 5, 79, 0, 0, 10445, 10446, 5, 77, 0, 0, 10446, 10447, 5, 80, 0, 0, 10447, 10448, 5, 82, 0, 0, 10448, 10449, 5, 69, 0, 0, 10449, 10450, 5, 83, 0, 0, 10450, 10451, 5, 83, 0, 0, 10451, 10452, 5, 69, 0, 0, 10452, 10453, 5, 68, 0, 0, 10453, 10454, 5, 95, 0, 0, 10454, 10455, 5, 76, 0, 0, 10455, 10456, 5, 69, 0, 0, 10456, 10457, 5, 78, 0, 0, 10457, 10458, 5, 71, 0, 0, 10458, 10459, 5, 84, 0, 0, 10459, 10460, 5, 72, 0, 0, 10460, 1804, 1, 0, 0, 0, 10461, 10462, 5, 85, 0, 0, 10462, 10463, 5, 78, 0, 0, 10463, 10464, 5, 72, 0, 0, 10464, 10465, 5, 69, 0, 0, 10465, 10466, 5, 88, 0, 0, 10466, 1806, 1, 0, 0, 0, 10467, 10468, 5, 85, 0, 0, 10468, 10469, 5, 78, 0, 0, 10469, 10470, 5, 73, 0, 0, 10470, 10471, 5, 88, 0, 0, 10471, 10472, 5, 95, 0, 0, 10472, 10473, 5, 84, 0, 0, 10473, 10474, 5, 73, 0, 0, 10474, 10475, 5, 77, 0, 0, 10475, 10476, 5, 69, 0, 0, 10476, 10477, 5, 83, 0, 0, 10477, 10478, 5, 84, 0, 0, 10478, 10479, 5, 65, 0, 0, 10479, 10480, 5, 77, 0, 0, 10480, 10481, 5, 80, 0, 0, 10481, 1808, 1, 0, 0, 0, 10482, 10483, 5, 85, 0, 0, 10483, 10484, 5, 80, 0, 0, 10484, 10485, 5, 68, 0, 0, 10485, 10486, 5, 65, 0, 0, 10486, 10487, 5, 84, 0, 0, 10487, 10488, 5, 69, 0, 0, 10488, 10489, 5, 88, 0, 0, 10489, 10490, 5, 77, 0, 0, 10490, 10491, 5, 76, 0, 0, 10491, 1810, 1, 0, 0, 0, 10492, 10493, 5, 85, 0, 0, 10493, 10494, 5, 80, 0, 0, 10494, 10495, 5, 80, 0, 0, 10495, 10496, 5, 69, 0, 0, 10496, 10497, 5, 82, 0, 0, 10497, 1812, 1, 0, 0, 0, 10498, 10499, 5, 85, 0, 0, 10499, 10500, 5, 85, 0, 0, 10500, 10501, 5, 73, 0, 0, 10501, 10502, 5, 68, 0, 0, 10502, 1814, 1, 0, 0, 0, 10503, 10504, 5, 85, 0, 0, 10504, 10505, 5, 85, 0, 0, 10505, 10506, 5, 73, 0, 0, 10506, 10507, 5, 68, 0, 0, 10507, 10508, 5, 95, 0, 0, 10508, 10509, 5, 83, 0, 0, 10509, 10510, 5, 72, 0, 0, 10510, 10511, 5, 79, 0, 0, 10511, 10512, 5, 82, 0, 0, 10512, 10513, 5, 84, 0, 0, 10513, 1816, 1, 0, 0, 0, 10514, 10515, 5, 86, 0, 0, 10515, 10516, 5, 65, 0, 0, 10516, 10517, 5, 76, 0, 0, 10517, 10518, 5, 73, 0, 0, 10518, 10519, 5, 68, 0, 0, 10519, 10520, 5, 65, 0, 0, 10520, 10521, 5, 84, 0, 0, 10521, 10522, 5, 69, 0, 0, 10522, 10523, 5, 95, 0, 0, 10523, 10524, 5, 80, 0, 0, 10524, 10525, 5, 65, 0, 0, 10525, 10526, 5, 83, 0, 0, 10526, 10527, 5, 83, 0, 0, 10527, 10528, 5, 87, 0, 0, 10528, 10529, 5, 79, 0, 0, 10529, 10530, 5, 82, 0, 0, 10530, 10531, 5, 68, 0, 0, 10531, 10532, 5, 95, 0, 0, 10532, 10533, 5, 83, 0, 0, 10533, 10534, 5, 84, 0, 0, 10534, 10535, 5, 82, 0, 0, 10535, 10536, 5, 69, 0, 0, 10536, 10537, 5, 78, 0, 0, 10537, 10538, 5, 71, 0, 0, 10538, 10539, 5, 84, 0, 0, 10539, 10540, 5, 72, 0, 0, 10540, 1818, 1, 0, 0, 0, 10541, 10542, 5, 86, 0, 0, 10542, 10543, 5, 69, 0, 0, 10543, 10544, 5, 82, 0, 0, 10544, 10545, 5, 83, 0, 0, 10545, 10546, 5, 73, 0, 0, 10546, 10547, 5, 79, 0, 0, 10547, 10548, 5, 78, 0, 0, 10548, 1820, 1, 0, 0, 0, 10549, 10550, 5, 87, 0, 0, 10550, 10551, 5, 65, 0, 0, 10551, 10552, 5, 73, 0, 0, 10552, 10553, 5, 84, 0, 0, 10553, 10554, 5, 95, 0, 0, 10554, 10555, 5, 85, 0, 0, 10555, 10556, 5, 78, 0, 0, 10556, 10557, 5, 84, 0, 0, 10557, 10558, 5, 73, 0, 0, 10558, 10559, 5, 76, 0, 0, 10559, 10560, 5, 95, 0, 0, 10560, 10561, 5, 83, 0, 0, 10561, 10562, 5, 81, 0, 0, 10562, 10563, 5, 76, 0, 0, 10563, 10564, 5, 95, 0, 0, 10564, 10565, 5, 84, 0, 0, 10565, 10566, 5, 72, 0, 0, 10566, 10567, 5, 82, 0, 0, 10567, 10568, 5, 69, 0, 0, 10568, 10569, 5, 65, 0, 0, 10569, 10570, 5, 68, 0, 0, 10570, 10571, 5, 95, 0, 0, 10571, 10572, 5, 65, 0, 0, 10572, 10573, 5, 70, 0, 0, 10573, 10574, 5, 84, 0, 0, 10574, 10575, 5, 69, 0, 0, 10575, 10576, 5, 82, 0, 0, 10576, 10577, 5, 95, 0, 0, 10577, 10578, 5, 71, 0, 0, 10578, 10579, 5, 84, 0, 0, 10579, 10580, 5, 73, 0, 0, 10580, 10581, 5, 68, 0, 0, 10581, 10582, 5, 83, 0, 0, 10582, 1822, 1, 0, 0, 0, 10583, 10584, 5, 87, 0, 0, 10584, 10585, 5, 69, 0, 0, 10585, 10586, 5, 69, 0, 0, 10586, 10587, 5, 75, 0, 0, 10587, 10588, 5, 68, 0, 0, 10588, 10589, 5, 65, 0, 0, 10589, 10590, 5, 89, 0, 0, 10590, 1824, 1, 0, 0, 0, 10591, 10592, 5, 87, 0, 0, 10592, 10593, 5, 69, 0, 0, 10593, 10594, 5, 69, 0, 0, 10594, 10595, 5, 75, 0, 0, 10595, 10596, 5, 79, 0, 0, 10596, 10597, 5, 70, 0, 0, 10597, 10598, 5, 89, 0, 0, 10598, 10599, 5, 69, 0, 0, 10599, 10600, 5, 65, 0, 0, 10600, 10601, 5, 82, 0, 0, 10601, 1826, 1, 0, 0, 0, 10602, 10603, 5, 87, 0, 0, 10603, 10604, 5, 69, 0, 0, 10604, 10605, 5, 73, 0, 0, 10605, 10606, 5, 71, 0, 0, 10606, 10607, 5, 72, 0, 0, 10607, 10608, 5, 84, 0, 0, 10608, 10609, 5, 95, 0, 0, 10609, 10610, 5, 83, 0, 0, 10610, 10611, 5, 84, 0, 0, 10611, 10612, 5, 82, 0, 0, 10612, 10613, 5, 73, 0, 0, 10613, 10614, 5, 78, 0, 0, 10614, 10615, 5, 71, 0, 0, 10615, 1828, 1, 0, 0, 0, 10616, 10617, 5, 87, 0, 0, 10617, 10618, 5, 73, 0, 0, 10618, 10619, 5, 84, 0, 0, 10619, 10620, 5, 72, 0, 0, 10620, 10621, 5, 73, 0, 0, 10621, 10622, 5, 78, 0, 0, 10622, 1830, 1, 0, 0, 0, 10623, 10624, 5, 89, 0, 0, 10624, 10625, 5, 69, 0, 0, 10625, 10626, 5, 65, 0, 0, 10626, 10627, 5, 82, 0, 0, 10627, 10628, 5, 87, 0, 0, 10628, 10629, 5, 69, 0, 0, 10629, 10630, 5, 69, 0, 0, 10630, 10631, 5, 75, 0, 0, 10631, 1832, 1, 0, 0, 0, 10632, 10633, 5, 89, 0, 0, 10633, 1834, 1, 0, 0, 0, 10634, 10635, 5, 88, 0, 0, 10635, 1836, 1, 0, 0, 0, 10636, 10637, 5, 58, 0, 0, 10637, 10638, 5, 61, 0, 0, 10638, 1838, 1, 0, 0, 0, 10639, 10640, 5, 43, 0, 0, 10640, 10641, 5, 61, 0, 0, 10641, 1840, 1, 0, 0, 0, 10642, 10643, 5, 45, 0, 0, 10643, 10644, 5, 61, 0, 0, 10644, 1842, 1, 0, 0, 0, 10645, 10646, 5, 42, 0, 0, 10646, 10647, 5, 61, 0, 0, 10647, 1844, 1, 0, 0, 0, 10648, 10649, 5, 47, 0, 0, 10649, 10650, 5, 61, 0, 0, 10650, 1846, 1, 0, 0, 0, 10651, 10652, 5, 37, 0, 0, 10652, 10653, 5, 61, 0, 0, 10653, 1848, 1, 0, 0, 0, 10654, 10655, 5, 38, 0, 0, 10655, 10656, 5, 61, 0, 0, 10656, 1850, 1, 0, 0, 0, 10657, 10658, 5, 94, 0, 0, 10658, 10659, 5, 61, 0, 0, 10659, 1852, 1, 0, 0, 0, 10660, 10661, 5, 124, 0, 0, 10661, 10662, 5, 61, 0, 0, 10662, 1854, 1, 0, 0, 0, 10663, 10664, 5, 42, 0, 0, 10664, 1856, 1, 0, 0, 0, 10665, 10666, 5, 47, 0, 0, 10666, 1858, 1, 0, 0, 0, 10667, 10668, 5, 37, 0, 0, 10668, 1860, 1, 0, 0, 0, 10669, 10670, 5, 43, 0, 0, 10670, 1862, 1, 0, 0, 0, 10671, 10672, 5, 45, 0, 0, 10672, 10673, 5, 45, 0, 0, 10673, 1864, 1, 0, 0, 0, 10674, 10675, 5, 45, 0, 0, 10675, 1866, 1, 0, 0, 0, 10676, 10677, 5, 68, 0, 0, 10677, 10678, 5, 73, 0, 0, 10678, 10679, 5, 86, 0, 0, 10679, 1868, 1, 0, 0, 0, 10680, 10681, 5, 77, 0, 0, 10681, 10682, 5, 79, 0, 0, 10682, 10683, 5, 68, 0, 0, 10683, 1870, 1, 0, 0, 0, 10684, 10685, 5, 61, 0, 0, 10685, 1872, 1, 0, 0, 0, 10686, 10687, 5, 62, 0, 0, 10687, 1874, 1, 0, 0, 0, 10688, 10689, 5, 60, 0, 0, 10689, 1876, 1, 0, 0, 0, 10690, 10691, 5, 33, 0, 0, 10691, 1878, 1, 0, 0, 0, 10692, 10693, 5, 126, 0, 0, 10693, 1880, 1, 0, 0, 0, 10694, 10695, 5, 124, 0, 0, 10695, 1882, 1, 0, 0, 0, 10696, 10697, 5, 38, 0, 0, 10697, 1884, 1, 0, 0, 0, 10698, 10699, 5, 94, 0, 0, 10699, 1886, 1, 0, 0, 0, 10700, 10701, 5, 46, 0, 0, 10701, 1888, 1, 0, 0, 0, 10702, 10703, 5, 40, 0, 0, 10703, 1890, 1, 0, 0, 0, 10704, 10705, 5, 41, 0, 0, 10705, 1892, 1, 0, 0, 0, 10706, 10707, 5, 44, 0, 0, 10707, 1894, 1, 0, 0, 0, 10708, 10709, 5, 59, 0, 0, 10709, 1896, 1, 0, 0, 0, 10710, 10711, 5, 64, 0, 0, 10711, 1898, 1, 0, 0, 0, 10712, 10713, 5, 48, 0, 0, 10713, 1900, 1, 0, 0, 0, 10714, 10715, 5, 49, 0, 0, 10715, 1902, 1, 0, 0, 0, 10716, 10717, 5, 50, 0, 0, 10717, 1904, 1, 0, 0, 0, 10718, 10719, 5, 39, 0, 0, 10719, 1906, 1, 0, 0, 0, 10720, 10721, 5, 34, 0, 0, 10721, 1908, 1, 0, 0, 0, 10722, 10723, 5, 96, 0, 0, 10723, 1910, 1, 0, 0, 0, 10724, 10725, 5, 58, 0, 0, 10725, 1912, 1, 0, 0, 0, 10726, 10727, 5, 96, 0, 0, 10727, 10728, 3, 1945, 972, 0, 10728, 10729, 5, 96, 0, 0, 10729, 1914, 1, 0, 0, 0, 10730, 10732, 3, 1959, 979, 0, 10731, 10730, 1, 0, 0, 0, 10732, 10733, 1, 0, 0, 0, 10733, 10731, 1, 0, 0, 0, 10733, 10734, 1, 0, 0, 0, 10734, 10735, 1, 0, 0, 0, 10735, 10736, 7, 2, 0, 0, 10736, 1916, 1, 0, 0, 0, 10737, 10738, 5, 78, 0, 0, 10738, 10739, 3, 1953, 976, 0, 10739, 1918, 1, 0, 0, 0, 10740, 10743, 3, 1951, 975, 0, 10741, 10743, 3, 1953, 976, 0, 10742, 10740, 1, 0, 0, 0, 10742, 10741, 1, 0, 0, 0, 10743, 1920, 1, 0, 0, 0, 10744, 10746, 3, 1959, 979, 0, 10745, 10744, 1, 0, 0, 0, 10746, 10747, 1, 0, 0, 0, 10747, 10745, 1, 0, 0, 0, 10747, 10748, 1, 0, 0, 0, 10748, 1922, 1, 0, 0, 0, 10749, 10750, 5, 88, 0, 0, 10750, 10754, 5, 39, 0, 0, 10751, 10752, 3, 1957, 978, 0, 10752, 10753, 3, 1957, 978, 0, 10753, 10755, 1, 0, 0, 0, 10754, 10751, 1, 0, 0, 0, 10755, 10756, 1, 0, 0, 0, 10756, 10754, 1, 0, 0, 0, 10756, 10757, 1, 0, 0, 0, 10757, 10758, 1, 0, 0, 0, 10758, 10759, 5, 39, 0, 0, 10759, 10769, 1, 0, 0, 0, 10760, 10761, 5, 48, 0, 0, 10761, 10762, 5, 88, 0, 0, 10762, 10764, 1, 0, 0, 0, 10763, 10765, 3, 1957, 978, 0, 10764, 10763, 1, 0, 0, 0, 10765, 10766, 1, 0, 0, 0, 10766, 10764, 1, 0, 0, 0, 10766, 10767, 1, 0, 0, 0, 10767, 10769, 1, 0, 0, 0, 10768, 10749, 1, 0, 0, 0, 10768, 10760, 1, 0, 0, 0, 10769, 1924, 1, 0, 0, 0, 10770, 10772, 3, 1959, 979, 0, 10771, 10770, 1, 0, 0, 0, 10772, 10773, 1, 0, 0, 0, 10773, 10771, 1, 0, 0, 0, 10773, 10774, 1, 0, 0, 0, 10774, 10776, 1, 0, 0, 0, 10775, 10771, 1, 0, 0, 0, 10775, 10776, 1, 0, 0, 0, 10776, 10777, 1, 0, 0, 0, 10777, 10779, 5, 46, 0, 0, 10778, 10780, 3, 1959, 979, 0, 10779, 10778, 1, 0, 0, 0, 10780, 10781, 1, 0, 0, 0, 10781, 10779, 1, 0, 0, 0, 10781, 10782, 1, 0, 0, 0, 10782, 10814, 1, 0, 0, 0, 10783, 10785, 3, 1959, 979, 0, 10784, 10783, 1, 0, 0, 0, 10785, 10786, 1, 0, 0, 0, 10786, 10784, 1, 0, 0, 0, 10786, 10787, 1, 0, 0, 0, 10787, 10788, 1, 0, 0, 0, 10788, 10789, 5, 46, 0, 0, 10789, 10790, 3, 1947, 973, 0, 10790, 10814, 1, 0, 0, 0, 10791, 10793, 3, 1959, 979, 0, 10792, 10791, 1, 0, 0, 0, 10793, 10794, 1, 0, 0, 0, 10794, 10792, 1, 0, 0, 0, 10794, 10795, 1, 0, 0, 0, 10795, 10797, 1, 0, 0, 0, 10796, 10792, 1, 0, 0, 0, 10796, 10797, 1, 0, 0, 0, 10797, 10798, 1, 0, 0, 0, 10798, 10800, 5, 46, 0, 0, 10799, 10801, 3, 1959, 979, 0, 10800, 10799, 1, 0, 0, 0, 10801, 10802, 1, 0, 0, 0, 10802, 10800, 1, 0, 0, 0, 10802, 10803, 1, 0, 0, 0, 10803, 10804, 1, 0, 0, 0, 10804, 10805, 3, 1947, 973, 0, 10805, 10814, 1, 0, 0, 0, 10806, 10808, 3, 1959, 979, 0, 10807, 10806, 1, 0, 0, 0, 10808, 10809, 1, 0, 0, 0, 10809, 10807, 1, 0, 0, 0, 10809, 10810, 1, 0, 0, 0, 10810, 10811, 1, 0, 0, 0, 10811, 10812, 3, 1947, 973, 0, 10812, 10814, 1, 0, 0, 0, 10813, 10775, 1, 0, 0, 0, 10813, 10784, 1, 0, 0, 0, 10813, 10796, 1, 0, 0, 0, 10813, 10807, 1, 0, 0, 0, 10814, 1926, 1, 0, 0, 0, 10815, 10816, 5, 92, 0, 0, 10816, 10817, 5, 78, 0, 0, 10817, 1928, 1, 0, 0, 0, 10818, 10819, 3, 1961, 980, 0, 10819, 1930, 1, 0, 0, 0, 10820, 10821, 5, 95, 0, 0, 10821, 10822, 3, 1945, 972, 0, 10822, 1932, 1, 0, 0, 0, 10823, 10824, 5, 46, 0, 0, 10824, 10825, 3, 1949, 974, 0, 10825, 1934, 1, 0, 0, 0, 10826, 10827, 3, 1949, 974, 0, 10827, 1936, 1, 0, 0, 0, 10828, 10830, 5, 96, 0, 0, 10829, 10831, 8, 3, 0, 0, 10830, 10829, 1, 0, 0, 0, 10831, 10832, 1, 0, 0, 0, 10832, 10830, 1, 0, 0, 0, 10832, 10833, 1, 0, 0, 0, 10833, 10834, 1, 0, 0, 0, 10834, 10835, 5, 96, 0, 0, 10835, 1938, 1, 0, 0, 0, 10836, 10841, 3, 1953, 976, 0, 10837, 10841, 3, 1951, 975, 0, 10838, 10841, 3, 1955, 977, 0, 10839, 10841, 3, 1949, 974, 0, 10840, 10836, 1, 0, 0, 0, 10840, 10837, 1, 0, 0, 0, 10840, 10838, 1, 0, 0, 0, 10840, 10839, 1, 0, 0, 0, 10841, 10842, 1, 0, 0, 0, 10842, 10847, 5, 64, 0, 0, 10843, 10848, 3, 1953, 976, 0, 10844, 10848, 3, 1951, 975, 0, 10845, 10848, 3, 1955, 977, 0, 10846, 10848, 3, 1949, 974, 0, 10847, 10843, 1, 0, 0, 0, 10847, 10844, 1, 0, 0, 0, 10847, 10845, 1, 0, 0, 0, 10847, 10846, 1, 0, 0, 0, 10848, 1940, 1, 0, 0, 0, 10849, 10858, 5, 64, 0, 0, 10850, 10852, 7, 4, 0, 0, 10851, 10850, 1, 0, 0, 0, 10852, 10853, 1, 0, 0, 0, 10853, 10851, 1, 0, 0, 0, 10853, 10854, 1, 0, 0, 0, 10854, 10859, 1, 0, 0, 0, 10855, 10859, 3, 1953, 976, 0, 10856, 10859, 3, 1951, 975, 0, 10857, 10859, 3, 1955, 977, 0, 10858, 10851, 1, 0, 0, 0, 10858, 10855, 1, 0, 0, 0, 10858, 10856, 1, 0, 0, 0, 10858, 10857, 1, 0, 0, 0, 10859, 1942, 1, 0, 0, 0, 10860, 10861, 5, 64, 0, 0, 10861, 10868, 5, 64, 0, 0, 10862, 10864, 7, 4, 0, 0, 10863, 10862, 1, 0, 0, 0, 10864, 10865, 1, 0, 0, 0, 10865, 10863, 1, 0, 0, 0, 10865, 10866, 1, 0, 0, 0, 10866, 10869, 1, 0, 0, 0, 10867, 10869, 3, 1955, 977, 0, 10868, 10863, 1, 0, 0, 0, 10868, 10867, 1, 0, 0, 0, 10869, 1944, 1, 0, 0, 0, 10870, 10911, 3, 1133, 566, 0, 10871, 10911, 3, 1135, 567, 0, 10872, 10911, 3, 1137, 568, 0, 10873, 10911, 3, 373, 186, 0, 10874, 10911, 3, 1139, 569, 0, 10875, 10911, 3, 1141, 570, 0, 10876, 10911, 3, 1143, 571, 0, 10877, 10911, 3, 1145, 572, 0, 10878, 10911, 3, 1147, 573, 0, 10879, 10911, 3, 1149, 574, 0, 10880, 10911, 3, 1151, 575, 0, 10881, 10911, 3, 1153, 576, 0, 10882, 10911, 3, 1155, 577, 0, 10883, 10911, 3, 1157, 578, 0, 10884, 10911, 3, 1159, 579, 0, 10885, 10911, 3, 1161, 580, 0, 10886, 10911, 3, 1163, 581, 0, 10887, 10911, 3, 1165, 582, 0, 10888, 10911, 3, 1167, 583, 0, 10889, 10911, 3, 1169, 584, 0, 10890, 10911, 3, 1171, 585, 0, 10891, 10911, 3, 1173, 586, 0, 10892, 10911, 3, 1175, 587, 0, 10893, 10911, 3, 1177, 588, 0, 10894, 10911, 3, 1179, 589, 0, 10895, 10911, 3, 1181, 590, 0, 10896, 10911, 3, 1183, 591, 0, 10897, 10911, 3, 1185, 592, 0, 10898, 10911, 3, 1187, 593, 0, 10899, 10911, 3, 1189, 594, 0, 10900, 10911, 3, 1191, 595, 0, 10901, 10911, 3, 1193, 596, 0, 10902, 10911, 3, 1195, 597, 0, 10903, 10911, 3, 1197, 598, 0, 10904, 10911, 3, 1199, 599, 0, 10905, 10911, 3, 1201, 600, 0, 10906, 10911, 3, 1203, 601, 0, 10907, 10911, 3, 1205, 602, 0, 10908, 10911, 3, 1207, 603, 0, 10909, 10911, 3, 1211, 605, 0, 10910, 10870, 1, 0, 0, 0, 10910, 10871, 1, 0, 0, 0, 10910, 10872, 1, 0, 0, 0, 10910, 10873, 1, 0, 0, 0, 10910, 10874, 1, 0, 0, 0, 10910, 10875, 1, 0, 0, 0, 10910, 10876, 1, 0, 0, 0, 10910, 10877, 1, 0, 0, 0, 10910, 10878, 1, 0, 0, 0, 10910, 10879, 1, 0, 0, 0, 10910, 10880, 1, 0, 0, 0, 10910, 10881, 1, 0, 0, 0, 10910, 10882, 1, 0, 0, 0, 10910, 10883, 1, 0, 0, 0, 10910, 10884, 1, 0, 0, 0, 10910, 10885, 1, 0, 0, 0, 10910, 10886, 1, 0, 0, 0, 10910, 10887, 1, 0, 0, 0, 10910, 10888, 1, 0, 0, 0, 10910, 10889, 1, 0, 0, 0, 10910, 10890, 1, 0, 0, 0, 10910, 10891, 1, 0, 0, 0, 10910, 10892, 1, 0, 0, 0, 10910, 10893, 1, 0, 0, 0, 10910, 10894, 1, 0, 0, 0, 10910, 10895, 1, 0, 0, 0, 10910, 10896, 1, 0, 0, 0, 10910, 10897, 1, 0, 0, 0, 10910, 10898, 1, 0, 0, 0, 10910, 10899, 1, 0, 0, 0, 10910, 10900, 1, 0, 0, 0, 10910, 10901, 1, 0, 0, 0, 10910, 10902, 1, 0, 0, 0, 10910, 10903, 1, 0, 0, 0, 10910, 10904, 1, 0, 0, 0, 10910, 10905, 1, 0, 0, 0, 10910, 10906, 1, 0, 0, 0, 10910, 10907, 1, 0, 0, 0, 10910, 10908, 1, 0, 0, 0, 10910, 10909, 1, 0, 0, 0, 10911, 1946, 1, 0, 0, 0, 10912, 10914, 5, 69, 0, 0, 10913, 10915, 5, 45, 0, 0, 10914, 10913, 1, 0, 0, 0, 10914, 10915, 1, 0, 0, 0, 10915, 10917, 1, 0, 0, 0, 10916, 10918, 3, 1959, 979, 0, 10917, 10916, 1, 0, 0, 0, 10918, 10919, 1, 0, 0, 0, 10919, 10917, 1, 0, 0, 0, 10919, 10920, 1, 0, 0, 0, 10920, 1948, 1, 0, 0, 0, 10921, 10923, 7, 5, 0, 0, 10922, 10921, 1, 0, 0, 0, 10923, 10926, 1, 0, 0, 0, 10924, 10925, 1, 0, 0, 0, 10924, 10922, 1, 0, 0, 0, 10925, 10928, 1, 0, 0, 0, 10926, 10924, 1, 0, 0, 0, 10927, 10929, 7, 6, 0, 0, 10928, 10927, 1, 0, 0, 0, 10929, 10930, 1, 0, 0, 0, 10930, 10931, 1, 0, 0, 0, 10930, 10928, 1, 0, 0, 0, 10931, 10935, 1, 0, 0, 0, 10932, 10934, 7, 5, 0, 0, 10933, 10932, 1, 0, 0, 0, 10934, 10937, 1, 0, 0, 0, 10935, 10933, 1, 0, 0, 0, 10935, 10936, 1, 0, 0, 0, 10936, 1950, 1, 0, 0, 0, 10937, 10935, 1, 0, 0, 0, 10938, 10946, 5, 34, 0, 0, 10939, 10940, 5, 92, 0, 0, 10940, 10945, 9, 0, 0, 0, 10941, 10942, 5, 34, 0, 0, 10942, 10945, 5, 34, 0, 0, 10943, 10945, 8, 7, 0, 0, 10944, 10939, 1, 0, 0, 0, 10944, 10941, 1, 0, 0, 0, 10944, 10943, 1, 0, 0, 0, 10945, 10948, 1, 0, 0, 0, 10946, 10944, 1, 0, 0, 0, 10946, 10947, 1, 0, 0, 0, 10947, 10949, 1, 0, 0, 0, 10948, 10946, 1, 0, 0, 0, 10949, 10950, 5, 34, 0, 0, 10950, 1952, 1, 0, 0, 0, 10951, 10959, 5, 39, 0, 0, 10952, 10953, 5, 92, 0, 0, 10953, 10958, 9, 0, 0, 0, 10954, 10955, 5, 39, 0, 0, 10955, 10958, 5, 39, 0, 0, 10956, 10958, 8, 8, 0, 0, 10957, 10952, 1, 0, 0, 0, 10957, 10954, 1, 0, 0, 0, 10957, 10956, 1, 0, 0, 0, 10958, 10961, 1, 0, 0, 0, 10959, 10957, 1, 0, 0, 0, 10959, 10960, 1, 0, 0, 0, 10960, 10962, 1, 0, 0, 0, 10961, 10959, 1, 0, 0, 0, 10962, 10963, 5, 39, 0, 0, 10963, 1954, 1, 0, 0, 0, 10964, 10972, 5, 96, 0, 0, 10965, 10966, 5, 92, 0, 0, 10966, 10971, 9, 0, 0, 0, 10967, 10968, 5, 96, 0, 0, 10968, 10971, 5, 96, 0, 0, 10969, 10971, 8, 9, 0, 0, 10970, 10965, 1, 0, 0, 0, 10970, 10967, 1, 0, 0, 0, 10970, 10969, 1, 0, 0, 0, 10971, 10974, 1, 0, 0, 0, 10972, 10970, 1, 0, 0, 0, 10972, 10973, 1, 0, 0, 0, 10973, 10975, 1, 0, 0, 0, 10974, 10972, 1, 0, 0, 0, 10975, 10976, 5, 96, 0, 0, 10976, 1956, 1, 0, 0, 0, 10977, 10978, 7, 10, 0, 0, 10978, 1958, 1, 0, 0, 0, 10979, 10980, 7, 11, 0, 0, 10980, 1960, 1, 0, 0, 0, 10981, 10982, 5, 66, 0, 0, 10982, 10984, 5, 39, 0, 0, 10983, 10985, 7, 12, 0, 0, 10984, 10983, 1, 0, 0, 0, 10985, 10986, 1, 0, 0, 0, 10986, 10984, 1, 0, 0, 0, 10986, 10987, 1, 0, 0, 0, 10987, 10988, 1, 0, 0, 0, 10988, 10989, 5, 39, 0, 0, 10989, 1962, 1, 0, 0, 0, 10990, 10991, 9, 0, 0, 0, 10991, 10992, 1, 0, 0, 0, 10992, 10993, 6, 981, 2, 0, 10993, 1964, 1, 0, 0, 0, 46, 0, 1968, 1979, 1992, 2004, 2009, 2013, 2017, 2023, 2027, 2029, 10733, 10742, 10747, 10756, 10766, 10768, 10773, 10775, 10781, 10786, 10794, 10796, 10802, 10809, 10813, 10832, 10840, 10847, 10853, 10858, 10865, 10868, 10910, 10914, 10919, 10924, 10930, 10935, 10944, 10946, 10957, 10959, 10970, 10972, 10986, 3, 0, 1, 0, 0, 2, 0, 0, 3, 0] \ No newline at end of file diff --git a/gen/MySqlLexer.java b/gen/MySqlLexer.java new file mode 100644 index 0000000..35db750 --- /dev/null +++ b/gen/MySqlLexer.java @@ -0,0 +1,7703 @@ +// Generated from /Users/duhanmin/IdeaProjects/daima/bigdata-sql-parser/src/main/antlr4/com/github/bigdata/sql/antlr4/mysql/MySqlLexer.g4 by ANTLR 4.10.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class MySqlLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + SPACE=1, SPEC_MYSQL_COMMENT=2, COMMENT_INPUT=3, LINE_COMMENT=4, ADD=5, + ALL=6, ALTER=7, ANALYZE=8, AND=9, AS=10, ASC=11, BEFORE=12, BETWEEN=13, + BOTH=14, BY=15, CALL=16, CASCADE=17, CASE=18, CAST=19, CHANGE=20, CHARACTER=21, + CHECK=22, COLLATE=23, COLUMN=24, CONDITION=25, CONSTRAINT=26, CONTINUE=27, + CONVERT=28, CREATE=29, CROSS=30, CURRENT_USER=31, CURSOR=32, DATABASE=33, + DATABASES=34, DECLARE=35, DEFAULT=36, DELAYED=37, DELETE=38, DESC=39, + DESCRIBE=40, DETERMINISTIC=41, DISTINCT=42, DISTINCTROW=43, DROP=44, EACH=45, + ELSE=46, ELSEIF=47, ENCLOSED=48, ESCAPED=49, EXISTS=50, EXIT=51, EXPLAIN=52, + FALSE=53, FETCH=54, FOR=55, FORCE=56, FOREIGN=57, FROM=58, FULLTEXT=59, + GRANT=60, GROUP=61, HAVING=62, HIGH_PRIORITY=63, IF=64, IGNORE=65, IN=66, + INDEX=67, INFILE=68, INNER=69, INOUT=70, INSERT=71, INTERVAL=72, INTO=73, + IS=74, ITERATE=75, JOIN=76, KEY=77, KEYS=78, KILL=79, LEADING=80, LEAVE=81, + LEFT=82, LIKE=83, LIMIT=84, LINEAR=85, LINES=86, LOAD=87, LOCK=88, LOOP=89, + LOW_PRIORITY=90, MASTER_BIND=91, MASTER_SSL_VERIFY_SERVER_CERT=92, MATCH=93, + MAXVALUE=94, MODIFIES=95, NATURAL=96, NOT=97, NO_WRITE_TO_BINLOG=98, NULL_LITERAL=99, + ON=100, OPTIMIZE=101, OPTION=102, OPTIONALLY=103, OR=104, ORDER=105, OUT=106, + OUTER=107, OUTFILE=108, PARTITION=109, PRIMARY=110, PROCEDURE=111, PURGE=112, + RANGE=113, READ=114, READS=115, REFERENCES=116, REGEXP=117, RELEASE=118, + RENAME=119, REPEAT=120, REPLACE=121, REQUIRE=122, RESTRICT=123, RETURN=124, + REVOKE=125, RIGHT=126, RLIKE=127, SCHEMA=128, SCHEMAS=129, SELECT=130, + SET=131, SEPARATOR=132, SHOW=133, SPATIAL=134, SQL=135, SQLEXCEPTION=136, + SQLSTATE=137, SQLWARNING=138, SQL_BIG_RESULT=139, SQL_CALC_FOUND_ROWS=140, + SQL_SMALL_RESULT=141, SSL=142, STARTING=143, STRAIGHT_JOIN=144, TABLE=145, + TERMINATED=146, THEN=147, TO=148, TRAILING=149, TRIGGER=150, TRUE=151, + UNDO=152, UNION=153, UNIQUE=154, UNLOCK=155, UNSIGNED=156, UPDATE=157, + USAGE=158, USE=159, USING=160, VALUES=161, WHEN=162, WHERE=163, WHILE=164, + WITH=165, WRITE=166, XOR=167, ZEROFILL=168, TINYINT=169, SMALLINT=170, + MEDIUMINT=171, INT=172, INTEGER=173, BIGINT=174, REAL=175, DOUBLE=176, + FLOAT=177, DECIMAL=178, NUMERIC=179, DATE=180, TIME=181, TIMESTAMP=182, + DATETIME=183, YEAR=184, CHAR=185, VARCHAR=186, BINARY=187, VARBINARY=188, + TINYBLOB=189, BLOB=190, MEDIUMBLOB=191, LONGBLOB=192, TINYTEXT=193, TEXT=194, + MEDIUMTEXT=195, LONGTEXT=196, ENUM=197, YEAR_MONTH=198, DAY_HOUR=199, + DAY_MINUTE=200, DAY_SECOND=201, HOUR_MINUTE=202, HOUR_SECOND=203, MINUTE_SECOND=204, + SECOND_MICROSECOND=205, MINUTE_MICROSECOND=206, HOUR_MICROSECOND=207, + DAY_MICROSECOND=208, AVG=209, BIT_AND=210, BIT_OR=211, BIT_XOR=212, COUNT=213, + GROUP_CONCAT=214, MAX=215, MIN=216, STD=217, STDDEV=218, STDDEV_POP=219, + STDDEV_SAMP=220, SUM=221, VAR_POP=222, VAR_SAMP=223, VARIANCE=224, CURRENT_DATE=225, + CURRENT_TIME=226, CURRENT_TIMESTAMP=227, LOCALTIME=228, CURDATE=229, CURTIME=230, + DATE_ADD=231, DATE_SUB=232, EXTRACT=233, LOCALTIMESTAMP=234, NOW=235, + POSITION=236, SUBSTR=237, SUBSTRING=238, SYSDATE=239, TRIM=240, UTC_DATE=241, + UTC_TIME=242, UTC_TIMESTAMP=243, ACCOUNT=244, ACTION=245, AFTER=246, AGGREGATE=247, + ALGORITHM=248, ANY=249, AT=250, AUTHORS=251, AUTOCOMMIT=252, AUTOEXTEND_SIZE=253, + AUTO_INCREMENT=254, AVG_ROW_LENGTH=255, BEGIN=256, BINLOG=257, BIT=258, + BLOCK=259, BOOL=260, BOOLEAN=261, BTREE=262, CACHE=263, CASCADED=264, + CHAIN=265, CHANGED=266, CHANNEL=267, CHECKSUM=268, CIPHER=269, CLIENT=270, + CLOSE=271, COALESCE=272, CODE=273, COLUMNS=274, COLUMN_FORMAT=275, COMMENT=276, + COMMIT=277, COMPACT=278, COMPLETION=279, COMPRESSED=280, COMPRESSION=281, + CONCURRENT=282, CONNECTION=283, CONSISTENT=284, CONTAINS=285, CONTEXT=286, + CONTRIBUTORS=287, COPY=288, CPU=289, DATA=290, DATAFILE=291, DEALLOCATE=292, + DEFAULT_AUTH=293, DEFINER=294, DELAY_KEY_WRITE=295, DES_KEY_FILE=296, + DIRECTORY=297, DISABLE=298, DISCARD=299, DISK=300, DO=301, DUMPFILE=302, + DUPLICATE=303, DYNAMIC=304, ENABLE=305, ENCRYPTION=306, END=307, ENDS=308, + ENGINE=309, ENGINES=310, ERROR=311, ERRORS=312, ESCAPE=313, EVEN=314, + EVENT=315, EVENTS=316, EVERY=317, EXCHANGE=318, EXCLUSIVE=319, EXPIRE=320, + EXPORT=321, EXTENDED=322, EXTENT_SIZE=323, FAST=324, FAULTS=325, FIELDS=326, + FILE_BLOCK_SIZE=327, FILTER=328, FIRST=329, FIXED=330, FLUSH=331, FOLLOWS=332, + FOUND=333, FULL=334, FUNCTION=335, GENERAL=336, GLOBAL=337, GRANTS=338, + GROUP_REPLICATION=339, HANDLER=340, HASH=341, HELP=342, HOST=343, HOSTS=344, + IDENTIFIED=345, IGNORE_SERVER_IDS=346, IMPORT=347, INDEXES=348, INITIAL_SIZE=349, + INPLACE=350, INSERT_METHOD=351, INSTALL=352, INSTANCE=353, INVOKER=354, + IO=355, IO_THREAD=356, IPC=357, ISOLATION=358, ISSUER=359, JSON=360, KEY_BLOCK_SIZE=361, + LANGUAGE=362, LAST=363, LEAVES=364, LESS=365, LEVEL=366, LIST=367, LOCAL=368, + LOGFILE=369, LOGS=370, MASTER=371, MASTER_AUTO_POSITION=372, MASTER_CONNECT_RETRY=373, + MASTER_DELAY=374, MASTER_HEARTBEAT_PERIOD=375, MASTER_HOST=376, MASTER_LOG_FILE=377, + MASTER_LOG_POS=378, MASTER_PASSWORD=379, MASTER_PORT=380, MASTER_RETRY_COUNT=381, + MASTER_SSL=382, MASTER_SSL_CA=383, MASTER_SSL_CAPATH=384, MASTER_SSL_CERT=385, + MASTER_SSL_CIPHER=386, MASTER_SSL_CRL=387, MASTER_SSL_CRLPATH=388, MASTER_SSL_KEY=389, + MASTER_TLS_VERSION=390, MASTER_USER=391, MAX_CONNECTIONS_PER_HOUR=392, + MAX_QUERIES_PER_HOUR=393, MAX_ROWS=394, MAX_SIZE=395, MAX_UPDATES_PER_HOUR=396, + MAX_USER_CONNECTIONS=397, MEDIUM=398, MERGE=399, MID=400, MIGRATE=401, + MIN_ROWS=402, MODE=403, MODIFY=404, MUTEX=405, MYSQL=406, NAME=407, NAMES=408, + NCHAR=409, NEVER=410, NEXT=411, NO=412, NODEGROUP=413, NONE=414, OFFLINE=415, + OFFSET=416, OJ=417, OLD_PASSWORD=418, ONE=419, ONLINE=420, ONLY=421, OPEN=422, + OPTIMIZER_COSTS=423, OPTIONS=424, OWNER=425, PACK_KEYS=426, PAGE=427, + PARSER=428, PARTIAL=429, PARTITIONING=430, PARTITIONS=431, PASSWORD=432, + PHASE=433, PLUGIN=434, PLUGIN_DIR=435, PLUGINS=436, PORT=437, PRECEDES=438, + PREPARE=439, PRESERVE=440, PREV=441, PROCESSLIST=442, PROFILE=443, PROFILES=444, + PROXY=445, QUERY=446, QUICK=447, REBUILD=448, RECOVER=449, REDO_BUFFER_SIZE=450, + REDUNDANT=451, RELAY=452, RELAY_LOG_FILE=453, RELAY_LOG_POS=454, RELAYLOG=455, + REMOVE=456, REORGANIZE=457, REPAIR=458, REPLICATE_DO_DB=459, REPLICATE_DO_TABLE=460, + REPLICATE_IGNORE_DB=461, REPLICATE_IGNORE_TABLE=462, REPLICATE_REWRITE_DB=463, + REPLICATE_WILD_DO_TABLE=464, REPLICATE_WILD_IGNORE_TABLE=465, REPLICATION=466, + RESET=467, RESUME=468, RETURNS=469, ROLLBACK=470, ROLLUP=471, ROTATE=472, + ROW=473, ROWS=474, ROW_FORMAT=475, SAVEPOINT=476, SCHEDULE=477, SECURITY=478, + SERVER=479, SESSION=480, SHARE=481, SHARED=482, SIGNED=483, SIMPLE=484, + SLAVE=485, SLOW=486, SNAPSHOT=487, SOCKET=488, SOME=489, SONAME=490, SOUNDS=491, + SOURCE=492, SQL_AFTER_GTIDS=493, SQL_AFTER_MTS_GAPS=494, SQL_BEFORE_GTIDS=495, + SQL_BUFFER_RESULT=496, SQL_CACHE=497, SQL_NO_CACHE=498, SQL_THREAD=499, + START=500, STARTS=501, STATS_AUTO_RECALC=502, STATS_PERSISTENT=503, STATS_SAMPLE_PAGES=504, + STATUS=505, STOP=506, STORAGE=507, STRING=508, SUBJECT=509, SUBPARTITION=510, + SUBPARTITIONS=511, SUSPEND=512, SWAPS=513, SWITCHES=514, TABLESPACE=515, + TEMPORARY=516, TEMPTABLE=517, THAN=518, TRADITIONAL=519, TRANSACTION=520, + TRIGGERS=521, TRUNCATE=522, UNDEFINED=523, UNDOFILE=524, UNDO_BUFFER_SIZE=525, + UNINSTALL=526, UNKNOWN=527, UNTIL=528, UPGRADE=529, USER=530, USE_FRM=531, + USER_RESOURCES=532, VALIDATION=533, VALUE=534, VARIABLES=535, VIEW=536, + WAIT=537, WARNINGS=538, WITHOUT=539, WORK=540, WRAPPER=541, X509=542, + XA=543, XML=544, EUR=545, USA=546, JIS=547, ISO=548, INTERNAL=549, QUARTER=550, + MONTH=551, DAY=552, HOUR=553, MINUTE=554, WEEK=555, SECOND=556, MICROSECOND=557, + TABLES=558, ROUTINE=559, EXECUTE=560, FILE=561, PROCESS=562, RELOAD=563, + SHUTDOWN=564, SUPER=565, PRIVILEGES=566, ARMSCII8=567, ASCII=568, BIG5=569, + CP1250=570, CP1251=571, CP1256=572, CP1257=573, CP850=574, CP852=575, + CP866=576, CP932=577, DEC8=578, EUCJPMS=579, EUCKR=580, GB2312=581, GBK=582, + GEOSTD8=583, GREEK=584, HEBREW=585, HP8=586, KEYBCS2=587, KOI8R=588, KOI8U=589, + LATIN1=590, LATIN2=591, LATIN5=592, LATIN7=593, MACCE=594, MACROMAN=595, + SJIS=596, SWE7=597, TIS620=598, UCS2=599, UJIS=600, UTF16=601, UTF16LE=602, + UTF32=603, UTF8=604, UTF8MB3=605, UTF8MB4=606, ARCHIVE=607, BLACKHOLE=608, + CSV=609, FEDERATED=610, INNODB=611, MEMORY=612, MRG_MYISAM=613, MYISAM=614, + NDB=615, NDBCLUSTER=616, PERFOMANCE_SCHEMA=617, REPEATABLE=618, COMMITTED=619, + UNCOMMITTED=620, SERIALIZABLE=621, GEOMETRYCOLLECTION=622, LINESTRING=623, + MULTILINESTRING=624, MULTIPOINT=625, MULTIPOLYGON=626, POINT=627, POLYGON=628, + ABS=629, ACOS=630, ADDDATE=631, ADDTIME=632, AES_DECRYPT=633, AES_ENCRYPT=634, + AREA=635, ASBINARY=636, ASIN=637, ASTEXT=638, ASWKB=639, ASWKT=640, ASYMMETRIC_DECRYPT=641, + ASYMMETRIC_DERIVE=642, ASYMMETRIC_ENCRYPT=643, ASYMMETRIC_SIGN=644, ASYMMETRIC_VERIFY=645, + ATAN=646, ATAN2=647, BENCHMARK=648, BIN=649, BIT_COUNT=650, BIT_LENGTH=651, + BUFFER=652, CEIL=653, CEILING=654, CENTROID=655, CHARACTER_LENGTH=656, + CHARSET=657, CHAR_LENGTH=658, COERCIBILITY=659, COLLATION=660, COMPRESS=661, + CONCAT=662, CONCAT_WS=663, CONNECTION_ID=664, CONV=665, CONVERT_TZ=666, + COS=667, COT=668, CRC32=669, CREATE_ASYMMETRIC_PRIV_KEY=670, CREATE_ASYMMETRIC_PUB_KEY=671, + CREATE_DH_PARAMETERS=672, CREATE_DIGEST=673, CROSSES=674, DATEDIFF=675, + DATE_FORMAT=676, DAYNAME=677, DAYOFMONTH=678, DAYOFWEEK=679, DAYOFYEAR=680, + DECODE=681, DEGREES=682, DES_DECRYPT=683, DES_ENCRYPT=684, DIMENSION=685, + DISJOINT=686, ELT=687, ENCODE=688, ENCRYPT=689, ENDPOINT=690, ENVELOPE=691, + EQUALS=692, EXP=693, EXPORT_SET=694, EXTERIORRING=695, EXTRACTVALUE=696, + FIELD=697, FIND_IN_SET=698, FLOOR=699, FORMAT=700, FOUND_ROWS=701, FROM_BASE64=702, + FROM_DAYS=703, FROM_UNIXTIME=704, GEOMCOLLFROMTEXT=705, GEOMCOLLFROMWKB=706, + GEOMETRYCOLLECTIONFROMTEXT=707, GEOMETRYCOLLECTIONFROMWKB=708, GEOMETRYFROMTEXT=709, + GEOMETRYFROMWKB=710, GEOMETRYN=711, GEOMETRYTYPE=712, GEOMFROMTEXT=713, + GEOMFROMWKB=714, GET_FORMAT=715, GET_LOCK=716, GLENGTH=717, GREATEST=718, + GTID_SUBSET=719, GTID_SUBTRACT=720, HEX=721, IFNULL=722, INET6_ATON=723, + INET6_NTOA=724, INET_ATON=725, INET_NTOA=726, INSTR=727, INTERIORRINGN=728, + INTERSECTS=729, ISCLOSED=730, ISEMPTY=731, ISNULL=732, ISSIMPLE=733, IS_FREE_LOCK=734, + IS_IPV4=735, IS_IPV4_COMPAT=736, IS_IPV4_MAPPED=737, IS_IPV6=738, IS_USED_LOCK=739, + LAST_INSERT_ID=740, LCASE=741, LEAST=742, LENGTH=743, LINEFROMTEXT=744, + LINEFROMWKB=745, LINESTRINGFROMTEXT=746, LINESTRINGFROMWKB=747, LN=748, + LOAD_FILE=749, LOCATE=750, LOG=751, LOG10=752, LOG2=753, LOWER=754, LPAD=755, + LTRIM=756, MAKEDATE=757, MAKETIME=758, MAKE_SET=759, MASTER_POS_WAIT=760, + MBRCONTAINS=761, MBRDISJOINT=762, MBREQUAL=763, MBRINTERSECTS=764, MBROVERLAPS=765, + MBRTOUCHES=766, MBRWITHIN=767, MD5=768, MLINEFROMTEXT=769, MLINEFROMWKB=770, + MONTHNAME=771, MPOINTFROMTEXT=772, MPOINTFROMWKB=773, MPOLYFROMTEXT=774, + MPOLYFROMWKB=775, MULTILINESTRINGFROMTEXT=776, MULTILINESTRINGFROMWKB=777, + MULTIPOINTFROMTEXT=778, MULTIPOINTFROMWKB=779, MULTIPOLYGONFROMTEXT=780, + MULTIPOLYGONFROMWKB=781, NAME_CONST=782, NULLIF=783, NUMGEOMETRIES=784, + NUMINTERIORRINGS=785, NUMPOINTS=786, OCT=787, OCTET_LENGTH=788, ORD=789, + OVERLAPS=790, PERIOD_ADD=791, PERIOD_DIFF=792, PI=793, POINTFROMTEXT=794, + POINTFROMWKB=795, POINTN=796, POLYFROMTEXT=797, POLYFROMWKB=798, POLYGONFROMTEXT=799, + POLYGONFROMWKB=800, POW=801, POWER=802, QUOTE=803, RADIANS=804, RAND=805, + RANDOM_BYTES=806, RELEASE_LOCK=807, REVERSE=808, ROUND=809, ROW_COUNT=810, + RPAD=811, RTRIM=812, SEC_TO_TIME=813, SESSION_USER=814, SHA=815, SHA1=816, + SHA2=817, SIGN=818, SIN=819, SLEEP=820, SOUNDEX=821, SQL_THREAD_WAIT_AFTER_GTIDS=822, + SQRT=823, SRID=824, STARTPOINT=825, STRCMP=826, STR_TO_DATE=827, ST_AREA=828, + ST_ASBINARY=829, ST_ASTEXT=830, ST_ASWKB=831, ST_ASWKT=832, ST_BUFFER=833, + ST_CENTROID=834, ST_CONTAINS=835, ST_CROSSES=836, ST_DIFFERENCE=837, ST_DIMENSION=838, + ST_DISJOINT=839, ST_DISTANCE=840, ST_ENDPOINT=841, ST_ENVELOPE=842, ST_EQUALS=843, + ST_EXTERIORRING=844, ST_GEOMCOLLFROMTEXT=845, ST_GEOMCOLLFROMTXT=846, + ST_GEOMCOLLFROMWKB=847, ST_GEOMETRYCOLLECTIONFROMTEXT=848, ST_GEOMETRYCOLLECTIONFROMWKB=849, + ST_GEOMETRYFROMTEXT=850, ST_GEOMETRYFROMWKB=851, ST_GEOMETRYN=852, ST_GEOMETRYTYPE=853, + ST_GEOMFROMTEXT=854, ST_GEOMFROMWKB=855, ST_INTERIORRINGN=856, ST_INTERSECTION=857, + ST_INTERSECTS=858, ST_ISCLOSED=859, ST_ISEMPTY=860, ST_ISSIMPLE=861, ST_LINEFROMTEXT=862, + ST_LINEFROMWKB=863, ST_LINESTRINGFROMTEXT=864, ST_LINESTRINGFROMWKB=865, + ST_NUMGEOMETRIES=866, ST_NUMINTERIORRING=867, ST_NUMINTERIORRINGS=868, + ST_NUMPOINTS=869, ST_OVERLAPS=870, ST_POINTFROMTEXT=871, ST_POINTFROMWKB=872, + ST_POINTN=873, ST_POLYFROMTEXT=874, ST_POLYFROMWKB=875, ST_POLYGONFROMTEXT=876, + ST_POLYGONFROMWKB=877, ST_SRID=878, ST_STARTPOINT=879, ST_SYMDIFFERENCE=880, + ST_TOUCHES=881, ST_UNION=882, ST_WITHIN=883, ST_X=884, ST_Y=885, SUBDATE=886, + SUBSTRING_INDEX=887, SUBTIME=888, SYSTEM_USER=889, TAN=890, TIMEDIFF=891, + TIMESTAMPADD=892, TIMESTAMPDIFF=893, TIME_FORMAT=894, TIME_TO_SEC=895, + TOUCHES=896, TO_BASE64=897, TO_DAYS=898, TO_SECONDS=899, UCASE=900, UNCOMPRESS=901, + UNCOMPRESSED_LENGTH=902, UNHEX=903, UNIX_TIMESTAMP=904, UPDATEXML=905, + UPPER=906, UUID=907, UUID_SHORT=908, VALIDATE_PASSWORD_STRENGTH=909, VERSION=910, + WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS=911, WEEKDAY=912, WEEKOFYEAR=913, WEIGHT_STRING=914, + WITHIN=915, YEARWEEK=916, Y_FUNCTION=917, X_FUNCTION=918, VAR_ASSIGN=919, + PLUS_ASSIGN=920, MINUS_ASSIGN=921, MULT_ASSIGN=922, DIV_ASSIGN=923, MOD_ASSIGN=924, + AND_ASSIGN=925, XOR_ASSIGN=926, OR_ASSIGN=927, STAR=928, DIVIDE=929, MODULE=930, + PLUS=931, MINUSMINUS=932, MINUS=933, DIV=934, MOD=935, EQUAL_SYMBOL=936, + GREATER_SYMBOL=937, LESS_SYMBOL=938, EXCLAMATION_SYMBOL=939, BIT_NOT_OP=940, + BIT_OR_OP=941, BIT_AND_OP=942, BIT_XOR_OP=943, DOT=944, LR_BRACKET=945, + RR_BRACKET=946, COMMA=947, SEMI=948, AT_SIGN=949, ZERO_DECIMAL=950, ONE_DECIMAL=951, + TWO_DECIMAL=952, SINGLE_QUOTE_SYMB=953, DOUBLE_QUOTE_SYMB=954, REVERSE_QUOTE_SYMB=955, + COLON_SYMB=956, CHARSET_REVERSE_QOUTE_STRING=957, FILESIZE_LITERAL=958, + START_NATIONAL_STRING_LITERAL=959, STRING_LITERAL=960, DECIMAL_LITERAL=961, + HEXADECIMAL_LITERAL=962, REAL_LITERAL=963, NULL_SPEC_LITERAL=964, BIT_STRING=965, + STRING_CHARSET_NAME=966, DOT_ID=967, ID=968, REVERSE_QUOTE_ID=969, STRING_USER_NAME=970, + LOCAL_ID=971, GLOBAL_ID=972, ERROR_RECONGNIGION=973; + public static final int + MYSQLCOMMENT=2, ERRORCHANNEL=3; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "MYSQLCOMMENT", "ERRORCHANNEL" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", "ADD", + "ALL", "ALTER", "ANALYZE", "AND", "AS", "ASC", "BEFORE", "BETWEEN", "BOTH", + "BY", "CALL", "CASCADE", "CASE", "CAST", "CHANGE", "CHARACTER", "CHECK", + "COLLATE", "COLUMN", "CONDITION", "CONSTRAINT", "CONTINUE", "CONVERT", + "CREATE", "CROSS", "CURRENT_USER", "CURSOR", "DATABASE", "DATABASES", + "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", + "DISTINCT", "DISTINCTROW", "DROP", "EACH", "ELSE", "ELSEIF", "ENCLOSED", + "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE", "FETCH", "FOR", "FORCE", + "FOREIGN", "FROM", "FULLTEXT", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", + "IF", "IGNORE", "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSERT", + "INTERVAL", "INTO", "IS", "ITERATE", "JOIN", "KEY", "KEYS", "KILL", "LEADING", + "LEAVE", "LEFT", "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", "LOCK", + "LOOP", "LOW_PRIORITY", "MASTER_BIND", "MASTER_SSL_VERIFY_SERVER_CERT", + "MATCH", "MAXVALUE", "MODIFIES", "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", + "NULL_LITERAL", "ON", "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", + "OUT", "OUTER", "OUTFILE", "PARTITION", "PRIMARY", "PROCEDURE", "PURGE", + "RANGE", "READ", "READS", "REFERENCES", "REGEXP", "RELEASE", "RENAME", + "REPEAT", "REPLACE", "REQUIRE", "RESTRICT", "RETURN", "REVOKE", "RIGHT", + "RLIKE", "SCHEMA", "SCHEMAS", "SELECT", "SET", "SEPARATOR", "SHOW", "SPATIAL", + "SQL", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", + "SQL_SMALL_RESULT", "SSL", "STARTING", "STRAIGHT_JOIN", "TABLE", "TERMINATED", + "THEN", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", "UNIQUE", + "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", "VALUES", "WHEN", + "WHERE", "WHILE", "WITH", "WRITE", "XOR", "ZEROFILL", "TINYINT", "SMALLINT", + "MEDIUMINT", "INT", "INTEGER", "BIGINT", "REAL", "DOUBLE", "FLOAT", "DECIMAL", + "NUMERIC", "DATE", "TIME", "TIMESTAMP", "DATETIME", "YEAR", "CHAR", "VARCHAR", + "BINARY", "VARBINARY", "TINYBLOB", "BLOB", "MEDIUMBLOB", "LONGBLOB", + "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "ENUM", "YEAR_MONTH", "DAY_HOUR", + "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND", + "SECOND_MICROSECOND", "MINUTE_MICROSECOND", "HOUR_MICROSECOND", "DAY_MICROSECOND", + "AVG", "BIT_AND", "BIT_OR", "BIT_XOR", "COUNT", "GROUP_CONCAT", "MAX", + "MIN", "STD", "STDDEV", "STDDEV_POP", "STDDEV_SAMP", "SUM", "VAR_POP", + "VAR_SAMP", "VARIANCE", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", + "LOCALTIME", "CURDATE", "CURTIME", "DATE_ADD", "DATE_SUB", "EXTRACT", + "LOCALTIMESTAMP", "NOW", "POSITION", "SUBSTR", "SUBSTRING", "SYSDATE", + "TRIM", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", "ACCOUNT", "ACTION", + "AFTER", "AGGREGATE", "ALGORITHM", "ANY", "AT", "AUTHORS", "AUTOCOMMIT", + "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH", "BEGIN", "BINLOG", + "BIT", "BLOCK", "BOOL", "BOOLEAN", "BTREE", "CACHE", "CASCADED", "CHAIN", + "CHANGED", "CHANNEL", "CHECKSUM", "CIPHER", "CLIENT", "CLOSE", "COALESCE", + "CODE", "COLUMNS", "COLUMN_FORMAT", "COMMENT", "COMMIT", "COMPACT", "COMPLETION", + "COMPRESSED", "COMPRESSION", "CONCURRENT", "CONNECTION", "CONSISTENT", + "CONTAINS", "CONTEXT", "CONTRIBUTORS", "COPY", "CPU", "DATA", "DATAFILE", + "DEALLOCATE", "DEFAULT_AUTH", "DEFINER", "DELAY_KEY_WRITE", "DES_KEY_FILE", + "DIRECTORY", "DISABLE", "DISCARD", "DISK", "DO", "DUMPFILE", "DUPLICATE", + "DYNAMIC", "ENABLE", "ENCRYPTION", "END", "ENDS", "ENGINE", "ENGINES", + "ERROR", "ERRORS", "ESCAPE", "EVEN", "EVENT", "EVENTS", "EVERY", "EXCHANGE", + "EXCLUSIVE", "EXPIRE", "EXPORT", "EXTENDED", "EXTENT_SIZE", "FAST", "FAULTS", + "FIELDS", "FILE_BLOCK_SIZE", "FILTER", "FIRST", "FIXED", "FLUSH", "FOLLOWS", + "FOUND", "FULL", "FUNCTION", "GENERAL", "GLOBAL", "GRANTS", "GROUP_REPLICATION", + "HANDLER", "HASH", "HELP", "HOST", "HOSTS", "IDENTIFIED", "IGNORE_SERVER_IDS", + "IMPORT", "INDEXES", "INITIAL_SIZE", "INPLACE", "INSERT_METHOD", "INSTALL", + "INSTANCE", "INVOKER", "IO", "IO_THREAD", "IPC", "ISOLATION", "ISSUER", + "JSON", "KEY_BLOCK_SIZE", "LANGUAGE", "LAST", "LEAVES", "LESS", "LEVEL", + "LIST", "LOCAL", "LOGFILE", "LOGS", "MASTER", "MASTER_AUTO_POSITION", + "MASTER_CONNECT_RETRY", "MASTER_DELAY", "MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", + "MASTER_LOG_FILE", "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT", + "MASTER_RETRY_COUNT", "MASTER_SSL", "MASTER_SSL_CA", "MASTER_SSL_CAPATH", + "MASTER_SSL_CERT", "MASTER_SSL_CIPHER", "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", + "MASTER_SSL_KEY", "MASTER_TLS_VERSION", "MASTER_USER", "MAX_CONNECTIONS_PER_HOUR", + "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", + "MAX_USER_CONNECTIONS", "MEDIUM", "MERGE", "MID", "MIGRATE", "MIN_ROWS", + "MODE", "MODIFY", "MUTEX", "MYSQL", "NAME", "NAMES", "NCHAR", "NEVER", + "NEXT", "NO", "NODEGROUP", "NONE", "OFFLINE", "OFFSET", "OJ", "OLD_PASSWORD", + "ONE", "ONLINE", "ONLY", "OPEN", "OPTIMIZER_COSTS", "OPTIONS", "OWNER", + "PACK_KEYS", "PAGE", "PARSER", "PARTIAL", "PARTITIONING", "PARTITIONS", + "PASSWORD", "PHASE", "PLUGIN", "PLUGIN_DIR", "PLUGINS", "PORT", "PRECEDES", + "PREPARE", "PRESERVE", "PREV", "PROCESSLIST", "PROFILE", "PROFILES", + "PROXY", "QUERY", "QUICK", "REBUILD", "RECOVER", "REDO_BUFFER_SIZE", + "REDUNDANT", "RELAY", "RELAY_LOG_FILE", "RELAY_LOG_POS", "RELAYLOG", + "REMOVE", "REORGANIZE", "REPAIR", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE", + "REPLICATE_IGNORE_DB", "REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB", + "REPLICATE_WILD_DO_TABLE", "REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", + "RESET", "RESUME", "RETURNS", "ROLLBACK", "ROLLUP", "ROTATE", "ROW", + "ROWS", "ROW_FORMAT", "SAVEPOINT", "SCHEDULE", "SECURITY", "SERVER", + "SESSION", "SHARE", "SHARED", "SIGNED", "SIMPLE", "SLAVE", "SLOW", "SNAPSHOT", + "SOCKET", "SOME", "SONAME", "SOUNDS", "SOURCE", "SQL_AFTER_GTIDS", "SQL_AFTER_MTS_GAPS", + "SQL_BEFORE_GTIDS", "SQL_BUFFER_RESULT", "SQL_CACHE", "SQL_NO_CACHE", + "SQL_THREAD", "START", "STARTS", "STATS_AUTO_RECALC", "STATS_PERSISTENT", + "STATS_SAMPLE_PAGES", "STATUS", "STOP", "STORAGE", "STRING", "SUBJECT", + "SUBPARTITION", "SUBPARTITIONS", "SUSPEND", "SWAPS", "SWITCHES", "TABLESPACE", + "TEMPORARY", "TEMPTABLE", "THAN", "TRADITIONAL", "TRANSACTION", "TRIGGERS", + "TRUNCATE", "UNDEFINED", "UNDOFILE", "UNDO_BUFFER_SIZE", "UNINSTALL", + "UNKNOWN", "UNTIL", "UPGRADE", "USER", "USE_FRM", "USER_RESOURCES", "VALIDATION", + "VALUE", "VARIABLES", "VIEW", "WAIT", "WARNINGS", "WITHOUT", "WORK", + "WRAPPER", "X509", "XA", "XML", "EUR", "USA", "JIS", "ISO", "INTERNAL", + "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", "WEEK", "SECOND", "MICROSECOND", + "TABLES", "ROUTINE", "EXECUTE", "FILE", "PROCESS", "RELOAD", "SHUTDOWN", + "SUPER", "PRIVILEGES", "ARMSCII8", "ASCII", "BIG5", "CP1250", "CP1251", + "CP1256", "CP1257", "CP850", "CP852", "CP866", "CP932", "DEC8", "EUCJPMS", + "EUCKR", "GB2312", "GBK", "GEOSTD8", "GREEK", "HEBREW", "HP8", "KEYBCS2", + "KOI8R", "KOI8U", "LATIN1", "LATIN2", "LATIN5", "LATIN7", "MACCE", "MACROMAN", + "SJIS", "SWE7", "TIS620", "UCS2", "UJIS", "UTF16", "UTF16LE", "UTF32", + "UTF8", "UTF8MB3", "UTF8MB4", "ARCHIVE", "BLACKHOLE", "CSV", "FEDERATED", + "INNODB", "MEMORY", "MRG_MYISAM", "MYISAM", "NDB", "NDBCLUSTER", "PERFOMANCE_SCHEMA", + "REPEATABLE", "COMMITTED", "UNCOMMITTED", "SERIALIZABLE", "GEOMETRYCOLLECTION", + "LINESTRING", "MULTILINESTRING", "MULTIPOINT", "MULTIPOLYGON", "POINT", + "POLYGON", "ABS", "ACOS", "ADDDATE", "ADDTIME", "AES_DECRYPT", "AES_ENCRYPT", + "AREA", "ASBINARY", "ASIN", "ASTEXT", "ASWKB", "ASWKT", "ASYMMETRIC_DECRYPT", + "ASYMMETRIC_DERIVE", "ASYMMETRIC_ENCRYPT", "ASYMMETRIC_SIGN", "ASYMMETRIC_VERIFY", + "ATAN", "ATAN2", "BENCHMARK", "BIN", "BIT_COUNT", "BIT_LENGTH", "BUFFER", + "CEIL", "CEILING", "CENTROID", "CHARACTER_LENGTH", "CHARSET", "CHAR_LENGTH", + "COERCIBILITY", "COLLATION", "COMPRESS", "CONCAT", "CONCAT_WS", "CONNECTION_ID", + "CONV", "CONVERT_TZ", "COS", "COT", "CRC32", "CREATE_ASYMMETRIC_PRIV_KEY", + "CREATE_ASYMMETRIC_PUB_KEY", "CREATE_DH_PARAMETERS", "CREATE_DIGEST", + "CROSSES", "DATEDIFF", "DATE_FORMAT", "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", + "DAYOFYEAR", "DECODE", "DEGREES", "DES_DECRYPT", "DES_ENCRYPT", "DIMENSION", + "DISJOINT", "ELT", "ENCODE", "ENCRYPT", "ENDPOINT", "ENVELOPE", "EQUALS", + "EXP", "EXPORT_SET", "EXTERIORRING", "EXTRACTVALUE", "FIELD", "FIND_IN_SET", + "FLOOR", "FORMAT", "FOUND_ROWS", "FROM_BASE64", "FROM_DAYS", "FROM_UNIXTIME", + "GEOMCOLLFROMTEXT", "GEOMCOLLFROMWKB", "GEOMETRYCOLLECTIONFROMTEXT", + "GEOMETRYCOLLECTIONFROMWKB", "GEOMETRYFROMTEXT", "GEOMETRYFROMWKB", "GEOMETRYN", + "GEOMETRYTYPE", "GEOMFROMTEXT", "GEOMFROMWKB", "GET_FORMAT", "GET_LOCK", + "GLENGTH", "GREATEST", "GTID_SUBSET", "GTID_SUBTRACT", "HEX", "IFNULL", + "INET6_ATON", "INET6_NTOA", "INET_ATON", "INET_NTOA", "INSTR", "INTERIORRINGN", + "INTERSECTS", "ISCLOSED", "ISEMPTY", "ISNULL", "ISSIMPLE", "IS_FREE_LOCK", + "IS_IPV4", "IS_IPV4_COMPAT", "IS_IPV4_MAPPED", "IS_IPV6", "IS_USED_LOCK", + "LAST_INSERT_ID", "LCASE", "LEAST", "LENGTH", "LINEFROMTEXT", "LINEFROMWKB", + "LINESTRINGFROMTEXT", "LINESTRINGFROMWKB", "LN", "LOAD_FILE", "LOCATE", + "LOG", "LOG10", "LOG2", "LOWER", "LPAD", "LTRIM", "MAKEDATE", "MAKETIME", + "MAKE_SET", "MASTER_POS_WAIT", "MBRCONTAINS", "MBRDISJOINT", "MBREQUAL", + "MBRINTERSECTS", "MBROVERLAPS", "MBRTOUCHES", "MBRWITHIN", "MD5", "MLINEFROMTEXT", + "MLINEFROMWKB", "MONTHNAME", "MPOINTFROMTEXT", "MPOINTFROMWKB", "MPOLYFROMTEXT", + "MPOLYFROMWKB", "MULTILINESTRINGFROMTEXT", "MULTILINESTRINGFROMWKB", + "MULTIPOINTFROMTEXT", "MULTIPOINTFROMWKB", "MULTIPOLYGONFROMTEXT", "MULTIPOLYGONFROMWKB", + "NAME_CONST", "NULLIF", "NUMGEOMETRIES", "NUMINTERIORRINGS", "NUMPOINTS", + "OCT", "OCTET_LENGTH", "ORD", "OVERLAPS", "PERIOD_ADD", "PERIOD_DIFF", + "PI", "POINTFROMTEXT", "POINTFROMWKB", "POINTN", "POLYFROMTEXT", "POLYFROMWKB", + "POLYGONFROMTEXT", "POLYGONFROMWKB", "POW", "POWER", "QUOTE", "RADIANS", + "RAND", "RANDOM_BYTES", "RELEASE_LOCK", "REVERSE", "ROUND", "ROW_COUNT", + "RPAD", "RTRIM", "SEC_TO_TIME", "SESSION_USER", "SHA", "SHA1", "SHA2", + "SIGN", "SIN", "SLEEP", "SOUNDEX", "SQL_THREAD_WAIT_AFTER_GTIDS", "SQRT", + "SRID", "STARTPOINT", "STRCMP", "STR_TO_DATE", "ST_AREA", "ST_ASBINARY", + "ST_ASTEXT", "ST_ASWKB", "ST_ASWKT", "ST_BUFFER", "ST_CENTROID", "ST_CONTAINS", + "ST_CROSSES", "ST_DIFFERENCE", "ST_DIMENSION", "ST_DISJOINT", "ST_DISTANCE", + "ST_ENDPOINT", "ST_ENVELOPE", "ST_EQUALS", "ST_EXTERIORRING", "ST_GEOMCOLLFROMTEXT", + "ST_GEOMCOLLFROMTXT", "ST_GEOMCOLLFROMWKB", "ST_GEOMETRYCOLLECTIONFROMTEXT", + "ST_GEOMETRYCOLLECTIONFROMWKB", "ST_GEOMETRYFROMTEXT", "ST_GEOMETRYFROMWKB", + "ST_GEOMETRYN", "ST_GEOMETRYTYPE", "ST_GEOMFROMTEXT", "ST_GEOMFROMWKB", + "ST_INTERIORRINGN", "ST_INTERSECTION", "ST_INTERSECTS", "ST_ISCLOSED", + "ST_ISEMPTY", "ST_ISSIMPLE", "ST_LINEFROMTEXT", "ST_LINEFROMWKB", "ST_LINESTRINGFROMTEXT", + "ST_LINESTRINGFROMWKB", "ST_NUMGEOMETRIES", "ST_NUMINTERIORRING", "ST_NUMINTERIORRINGS", + "ST_NUMPOINTS", "ST_OVERLAPS", "ST_POINTFROMTEXT", "ST_POINTFROMWKB", + "ST_POINTN", "ST_POLYFROMTEXT", "ST_POLYFROMWKB", "ST_POLYGONFROMTEXT", + "ST_POLYGONFROMWKB", "ST_SRID", "ST_STARTPOINT", "ST_SYMDIFFERENCE", + "ST_TOUCHES", "ST_UNION", "ST_WITHIN", "ST_X", "ST_Y", "SUBDATE", "SUBSTRING_INDEX", + "SUBTIME", "SYSTEM_USER", "TAN", "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPDIFF", + "TIME_FORMAT", "TIME_TO_SEC", "TOUCHES", "TO_BASE64", "TO_DAYS", "TO_SECONDS", + "UCASE", "UNCOMPRESS", "UNCOMPRESSED_LENGTH", "UNHEX", "UNIX_TIMESTAMP", + "UPDATEXML", "UPPER", "UUID", "UUID_SHORT", "VALIDATE_PASSWORD_STRENGTH", + "VERSION", "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", "WEEKDAY", "WEEKOFYEAR", + "WEIGHT_STRING", "WITHIN", "YEARWEEK", "Y_FUNCTION", "X_FUNCTION", "VAR_ASSIGN", + "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", + "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", "MODULE", + "PLUS", "MINUSMINUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", + "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", + "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", + "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", + "REVERSE_QUOTE_SYMB", "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", "FILESIZE_LITERAL", + "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL", + "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", "BIT_STRING", + "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", "STRING_USER_NAME", + "LOCAL_ID", "GLOBAL_ID", "CHARSET_NAME", "EXPONENT_NUM_PART", "ID_LITERAL", + "DQUOTA_STRING", "SQUOTA_STRING", "BQUOTA_STRING", "HEX_DIGIT", "DEC_DIGIT", + "BIT_STRING_L", "ERROR_RECONGNIGION" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, null, "'ADD'", "'ALL'", "'ALTER'", "'ANALYZE'", + "'AND'", "'AS'", "'ASC'", "'BEFORE'", "'BETWEEN'", "'BOTH'", "'BY'", + "'CALL'", "'CASCADE'", "'CASE'", "'CAST'", "'CHANGE'", "'CHARACTER'", + "'CHECK'", "'COLLATE'", "'COLUMN'", "'CONDITION'", "'CONSTRAINT'", "'CONTINUE'", + "'CONVERT'", "'CREATE'", "'CROSS'", "'CURRENT_USER'", "'CURSOR'", "'DATABASE'", + "'DATABASES'", "'DECLARE'", "'DEFAULT'", "'DELAYED'", "'DELETE'", "'DESC'", + "'DESCRIBE'", "'DETERMINISTIC'", "'DISTINCT'", "'DISTINCTROW'", "'DROP'", + "'EACH'", "'ELSE'", "'ELSEIF'", "'ENCLOSED'", "'ESCAPED'", "'EXISTS'", + "'EXIT'", "'EXPLAIN'", "'FALSE'", "'FETCH'", "'FOR'", "'FORCE'", "'FOREIGN'", + "'FROM'", "'FULLTEXT'", "'GRANT'", "'GROUP'", "'HAVING'", "'HIGH_PRIORITY'", + "'IF'", "'IGNORE'", "'IN'", "'INDEX'", "'INFILE'", "'INNER'", "'INOUT'", + "'INSERT'", "'INTERVAL'", "'INTO'", "'IS'", "'ITERATE'", "'JOIN'", "'KEY'", + "'KEYS'", "'KILL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LIKE'", "'LIMIT'", + "'LINEAR'", "'LINES'", "'LOAD'", "'LOCK'", "'LOOP'", "'LOW_PRIORITY'", + "'MASTER_BIND'", "'MASTER_SSL_VERIFY_SERVER_CERT'", "'MATCH'", "'MAXVALUE'", + "'MODIFIES'", "'NATURAL'", "'NOT'", "'NO_WRITE_TO_BINLOG'", "'NULL'", + "'ON'", "'OPTIMIZE'", "'OPTION'", "'OPTIONALLY'", "'OR'", "'ORDER'", + "'OUT'", "'OUTER'", "'OUTFILE'", "'PARTITION'", "'PRIMARY'", "'PROCEDURE'", + "'PURGE'", "'RANGE'", "'READ'", "'READS'", "'REFERENCES'", "'REGEXP'", + "'RELEASE'", "'RENAME'", "'REPEAT'", "'REPLACE'", "'REQUIRE'", "'RESTRICT'", + "'RETURN'", "'REVOKE'", "'RIGHT'", "'RLIKE'", "'SCHEMA'", "'SCHEMAS'", + "'SELECT'", "'SET'", "'SEPARATOR'", "'SHOW'", "'SPATIAL'", "'SQL'", "'SQLEXCEPTION'", + "'SQLSTATE'", "'SQLWARNING'", "'SQL_BIG_RESULT'", "'SQL_CALC_FOUND_ROWS'", + "'SQL_SMALL_RESULT'", "'SSL'", "'STARTING'", "'STRAIGHT_JOIN'", "'TABLE'", + "'TERMINATED'", "'THEN'", "'TO'", "'TRAILING'", "'TRIGGER'", "'TRUE'", + "'UNDO'", "'UNION'", "'UNIQUE'", "'UNLOCK'", "'UNSIGNED'", "'UPDATE'", + "'USAGE'", "'USE'", "'USING'", "'VALUES'", "'WHEN'", "'WHERE'", "'WHILE'", + "'WITH'", "'WRITE'", "'XOR'", "'ZEROFILL'", "'TINYINT'", "'SMALLINT'", + "'MEDIUMINT'", "'INT'", "'INTEGER'", "'BIGINT'", "'REAL'", "'DOUBLE'", + "'FLOAT'", "'DECIMAL'", "'NUMERIC'", "'DATE'", "'TIME'", "'TIMESTAMP'", + "'DATETIME'", "'YEAR'", "'CHAR'", "'VARCHAR'", "'BINARY'", "'VARBINARY'", + "'TINYBLOB'", "'BLOB'", "'MEDIUMBLOB'", "'LONGBLOB'", "'TINYTEXT'", "'TEXT'", + "'MEDIUMTEXT'", "'LONGTEXT'", "'ENUM'", "'YEAR_MONTH'", "'DAY_HOUR'", + "'DAY_MINUTE'", "'DAY_SECOND'", "'HOUR_MINUTE'", "'HOUR_SECOND'", "'MINUTE_SECOND'", + "'SECOND_MICROSECOND'", "'MINUTE_MICROSECOND'", "'HOUR_MICROSECOND'", + "'DAY_MICROSECOND'", "'AVG'", "'BIT_AND'", "'BIT_OR'", "'BIT_XOR'", "'COUNT'", + "'GROUP_CONCAT'", "'MAX'", "'MIN'", "'STD'", "'STDDEV'", "'STDDEV_POP'", + "'STDDEV_SAMP'", "'SUM'", "'VAR_POP'", "'VAR_SAMP'", "'VARIANCE'", "'CURRENT_DATE'", + "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'LOCALTIME'", "'CURDATE'", + "'CURTIME'", "'DATE_ADD'", "'DATE_SUB'", "'EXTRACT'", "'LOCALTIMESTAMP'", + "'NOW'", "'POSITION'", "'SUBSTR'", "'SUBSTRING'", "'SYSDATE'", "'TRIM'", + "'UTC_DATE'", "'UTC_TIME'", "'UTC_TIMESTAMP'", "'ACCOUNT'", "'ACTION'", + "'AFTER'", "'AGGREGATE'", "'ALGORITHM'", "'ANY'", "'AT'", "'AUTHORS'", + "'AUTOCOMMIT'", "'AUTOEXTEND_SIZE'", "'AUTO_INCREMENT'", "'AVG_ROW_LENGTH'", + "'BEGIN'", "'BINLOG'", "'BIT'", "'BLOCK'", "'BOOL'", "'BOOLEAN'", "'BTREE'", + "'CACHE'", "'CASCADED'", "'CHAIN'", "'CHANGED'", "'CHANNEL'", "'CHECKSUM'", + "'CIPHER'", "'CLIENT'", "'CLOSE'", "'COALESCE'", "'CODE'", "'COLUMNS'", + "'COLUMN_FORMAT'", "'COMMENT'", "'COMMIT'", "'COMPACT'", "'COMPLETION'", + "'COMPRESSED'", "'COMPRESSION'", "'CONCURRENT'", "'CONNECTION'", "'CONSISTENT'", + "'CONTAINS'", "'CONTEXT'", "'CONTRIBUTORS'", "'COPY'", "'CPU'", "'DATA'", + "'DATAFILE'", "'DEALLOCATE'", "'DEFAULT_AUTH'", "'DEFINER'", "'DELAY_KEY_WRITE'", + "'DES_KEY_FILE'", "'DIRECTORY'", "'DISABLE'", "'DISCARD'", "'DISK'", + "'DO'", "'DUMPFILE'", "'DUPLICATE'", "'DYNAMIC'", "'ENABLE'", "'ENCRYPTION'", + "'END'", "'ENDS'", "'ENGINE'", "'ENGINES'", "'ERROR'", "'ERRORS'", "'ESCAPE'", + "'EVEN'", "'EVENT'", "'EVENTS'", "'EVERY'", "'EXCHANGE'", "'EXCLUSIVE'", + "'EXPIRE'", "'EXPORT'", "'EXTENDED'", "'EXTENT_SIZE'", "'FAST'", "'FAULTS'", + "'FIELDS'", "'FILE_BLOCK_SIZE'", "'FILTER'", "'FIRST'", "'FIXED'", "'FLUSH'", + "'FOLLOWS'", "'FOUND'", "'FULL'", "'FUNCTION'", "'GENERAL'", "'GLOBAL'", + "'GRANTS'", "'GROUP_REPLICATION'", "'HANDLER'", "'HASH'", "'HELP'", "'HOST'", + "'HOSTS'", "'IDENTIFIED'", "'IGNORE_SERVER_IDS'", "'IMPORT'", "'INDEXES'", + "'INITIAL_SIZE'", "'INPLACE'", "'INSERT_METHOD'", "'INSTALL'", "'INSTANCE'", + "'INVOKER'", "'IO'", "'IO_THREAD'", "'IPC'", "'ISOLATION'", "'ISSUER'", + "'JSON'", "'KEY_BLOCK_SIZE'", "'LANGUAGE'", "'LAST'", "'LEAVES'", "'LESS'", + "'LEVEL'", "'LIST'", "'LOCAL'", "'LOGFILE'", "'LOGS'", "'MASTER'", "'MASTER_AUTO_POSITION'", + "'MASTER_CONNECT_RETRY'", "'MASTER_DELAY'", "'MASTER_HEARTBEAT_PERIOD'", + "'MASTER_HOST'", "'MASTER_LOG_FILE'", "'MASTER_LOG_POS'", "'MASTER_PASSWORD'", + "'MASTER_PORT'", "'MASTER_RETRY_COUNT'", "'MASTER_SSL'", "'MASTER_SSL_CA'", + "'MASTER_SSL_CAPATH'", "'MASTER_SSL_CERT'", "'MASTER_SSL_CIPHER'", "'MASTER_SSL_CRL'", + "'MASTER_SSL_CRLPATH'", "'MASTER_SSL_KEY'", "'MASTER_TLS_VERSION'", "'MASTER_USER'", + "'MAX_CONNECTIONS_PER_HOUR'", "'MAX_QUERIES_PER_HOUR'", "'MAX_ROWS'", + "'MAX_SIZE'", "'MAX_UPDATES_PER_HOUR'", "'MAX_USER_CONNECTIONS'", "'MEDIUM'", + "'MERGE'", "'MID'", "'MIGRATE'", "'MIN_ROWS'", "'MODE'", "'MODIFY'", + "'MUTEX'", "'MYSQL'", "'NAME'", "'NAMES'", "'NCHAR'", "'NEVER'", "'NEXT'", + "'NO'", "'NODEGROUP'", "'NONE'", "'OFFLINE'", "'OFFSET'", "'OJ'", "'OLD_PASSWORD'", + "'ONE'", "'ONLINE'", "'ONLY'", "'OPEN'", "'OPTIMIZER_COSTS'", "'OPTIONS'", + "'OWNER'", "'PACK_KEYS'", "'PAGE'", "'PARSER'", "'PARTIAL'", "'PARTITIONING'", + "'PARTITIONS'", "'PASSWORD'", "'PHASE'", "'PLUGIN'", "'PLUGIN_DIR'", + "'PLUGINS'", "'PORT'", "'PRECEDES'", "'PREPARE'", "'PRESERVE'", "'PREV'", + "'PROCESSLIST'", "'PROFILE'", "'PROFILES'", "'PROXY'", "'QUERY'", "'QUICK'", + "'REBUILD'", "'RECOVER'", "'REDO_BUFFER_SIZE'", "'REDUNDANT'", "'RELAY'", + "'RELAY_LOG_FILE'", "'RELAY_LOG_POS'", "'RELAYLOG'", "'REMOVE'", "'REORGANIZE'", + "'REPAIR'", "'REPLICATE_DO_DB'", "'REPLICATE_DO_TABLE'", "'REPLICATE_IGNORE_DB'", + "'REPLICATE_IGNORE_TABLE'", "'REPLICATE_REWRITE_DB'", "'REPLICATE_WILD_DO_TABLE'", + "'REPLICATE_WILD_IGNORE_TABLE'", "'REPLICATION'", "'RESET'", "'RESUME'", + "'RETURNS'", "'ROLLBACK'", "'ROLLUP'", "'ROTATE'", "'ROW'", "'ROWS'", + "'ROW_FORMAT'", "'SAVEPOINT'", "'SCHEDULE'", "'SECURITY'", "'SERVER'", + "'SESSION'", "'SHARE'", "'SHARED'", "'SIGNED'", "'SIMPLE'", "'SLAVE'", + "'SLOW'", "'SNAPSHOT'", "'SOCKET'", "'SOME'", "'SONAME'", "'SOUNDS'", + "'SOURCE'", "'SQL_AFTER_GTIDS'", "'SQL_AFTER_MTS_GAPS'", "'SQL_BEFORE_GTIDS'", + "'SQL_BUFFER_RESULT'", "'SQL_CACHE'", "'SQL_NO_CACHE'", "'SQL_THREAD'", + "'START'", "'STARTS'", "'STATS_AUTO_RECALC'", "'STATS_PERSISTENT'", "'STATS_SAMPLE_PAGES'", + "'STATUS'", "'STOP'", "'STORAGE'", "'STRING'", "'SUBJECT'", "'SUBPARTITION'", + "'SUBPARTITIONS'", "'SUSPEND'", "'SWAPS'", "'SWITCHES'", "'TABLESPACE'", + "'TEMPORARY'", "'TEMPTABLE'", "'THAN'", "'TRADITIONAL'", "'TRANSACTION'", + "'TRIGGERS'", "'TRUNCATE'", "'UNDEFINED'", "'UNDOFILE'", "'UNDO_BUFFER_SIZE'", + "'UNINSTALL'", "'UNKNOWN'", "'UNTIL'", "'UPGRADE'", "'USER'", "'USE_FRM'", + "'USER_RESOURCES'", "'VALIDATION'", "'VALUE'", "'VARIABLES'", "'VIEW'", + "'WAIT'", "'WARNINGS'", "'WITHOUT'", "'WORK'", "'WRAPPER'", "'X509'", + "'XA'", "'XML'", "'EUR'", "'USA'", "'JIS'", "'ISO'", "'INTERNAL'", "'QUARTER'", + "'MONTH'", "'DAY'", "'HOUR'", "'MINUTE'", "'WEEK'", "'SECOND'", "'MICROSECOND'", + "'TABLES'", "'ROUTINE'", "'EXECUTE'", "'FILE'", "'PROCESS'", "'RELOAD'", + "'SHUTDOWN'", "'SUPER'", "'PRIVILEGES'", "'ARMSCII8'", "'ASCII'", "'BIG5'", + "'CP1250'", "'CP1251'", "'CP1256'", "'CP1257'", "'CP850'", "'CP852'", + "'CP866'", "'CP932'", "'DEC8'", "'EUCJPMS'", "'EUCKR'", "'GB2312'", "'GBK'", + "'GEOSTD8'", "'GREEK'", "'HEBREW'", "'HP8'", "'KEYBCS2'", "'KOI8R'", + "'KOI8U'", "'LATIN1'", "'LATIN2'", "'LATIN5'", "'LATIN7'", "'MACCE'", + "'MACROMAN'", "'SJIS'", "'SWE7'", "'TIS620'", "'UCS2'", "'UJIS'", "'UTF16'", + "'UTF16LE'", "'UTF32'", "'UTF8'", "'UTF8MB3'", "'UTF8MB4'", "'ARCHIVE'", + "'BLACKHOLE'", "'CSV'", "'FEDERATED'", "'INNODB'", "'MEMORY'", "'MRG_MYISAM'", + "'MYISAM'", "'NDB'", "'NDBCLUSTER'", "'PERFOMANCE_SCHEMA'", "'REPEATABLE'", + "'COMMITTED'", "'UNCOMMITTED'", "'SERIALIZABLE'", "'GEOMETRYCOLLECTION'", + "'LINESTRING'", "'MULTILINESTRING'", "'MULTIPOINT'", "'MULTIPOLYGON'", + "'POINT'", "'POLYGON'", "'ABS'", "'ACOS'", "'ADDDATE'", "'ADDTIME'", + "'AES_DECRYPT'", "'AES_ENCRYPT'", "'AREA'", "'ASBINARY'", "'ASIN'", "'ASTEXT'", + "'ASWKB'", "'ASWKT'", "'ASYMMETRIC_DECRYPT'", "'ASYMMETRIC_DERIVE'", + "'ASYMMETRIC_ENCRYPT'", "'ASYMMETRIC_SIGN'", "'ASYMMETRIC_VERIFY'", "'ATAN'", + "'ATAN2'", "'BENCHMARK'", "'BIN'", "'BIT_COUNT'", "'BIT_LENGTH'", "'BUFFER'", + "'CEIL'", "'CEILING'", "'CENTROID'", "'CHARACTER_LENGTH'", "'CHARSET'", + "'CHAR_LENGTH'", "'COERCIBILITY'", "'COLLATION'", "'COMPRESS'", "'CONCAT'", + "'CONCAT_WS'", "'CONNECTION_ID'", "'CONV'", "'CONVERT_TZ'", "'COS'", + "'COT'", "'CRC32'", "'CREATE_ASYMMETRIC_PRIV_KEY'", "'CREATE_ASYMMETRIC_PUB_KEY'", + "'CREATE_DH_PARAMETERS'", "'CREATE_DIGEST'", "'CROSSES'", "'DATEDIFF'", + "'DATE_FORMAT'", "'DAYNAME'", "'DAYOFMONTH'", "'DAYOFWEEK'", "'DAYOFYEAR'", + "'DECODE'", "'DEGREES'", "'DES_DECRYPT'", "'DES_ENCRYPT'", "'DIMENSION'", + "'DISJOINT'", "'ELT'", "'ENCODE'", "'ENCRYPT'", "'ENDPOINT'", "'ENVELOPE'", + "'EQUALS'", "'EXP'", "'EXPORT_SET'", "'EXTERIORRING'", "'EXTRACTVALUE'", + "'FIELD'", "'FIND_IN_SET'", "'FLOOR'", "'FORMAT'", "'FOUND_ROWS'", "'FROM_BASE64'", + "'FROM_DAYS'", "'FROM_UNIXTIME'", "'GEOMCOLLFROMTEXT'", "'GEOMCOLLFROMWKB'", + "'GEOMETRYCOLLECTIONFROMTEXT'", "'GEOMETRYCOLLECTIONFROMWKB'", "'GEOMETRYFROMTEXT'", + "'GEOMETRYFROMWKB'", "'GEOMETRYN'", "'GEOMETRYTYPE'", "'GEOMFROMTEXT'", + "'GEOMFROMWKB'", "'GET_FORMAT'", "'GET_LOCK'", "'GLENGTH'", "'GREATEST'", + "'GTID_SUBSET'", "'GTID_SUBTRACT'", "'HEX'", "'IFNULL'", "'INET6_ATON'", + "'INET6_NTOA'", "'INET_ATON'", "'INET_NTOA'", "'INSTR'", "'INTERIORRINGN'", + "'INTERSECTS'", "'ISCLOSED'", "'ISEMPTY'", "'ISNULL'", "'ISSIMPLE'", + "'IS_FREE_LOCK'", "'IS_IPV4'", "'IS_IPV4_COMPAT'", "'IS_IPV4_MAPPED'", + "'IS_IPV6'", "'IS_USED_LOCK'", "'LAST_INSERT_ID'", "'LCASE'", "'LEAST'", + "'LENGTH'", "'LINEFROMTEXT'", "'LINEFROMWKB'", "'LINESTRINGFROMTEXT'", + "'LINESTRINGFROMWKB'", "'LN'", "'LOAD_FILE'", "'LOCATE'", "'LOG'", "'LOG10'", + "'LOG2'", "'LOWER'", "'LPAD'", "'LTRIM'", "'MAKEDATE'", "'MAKETIME'", + "'MAKE_SET'", "'MASTER_POS_WAIT'", "'MBRCONTAINS'", "'MBRDISJOINT'", + "'MBREQUAL'", "'MBRINTERSECTS'", "'MBROVERLAPS'", "'MBRTOUCHES'", "'MBRWITHIN'", + "'MD5'", "'MLINEFROMTEXT'", "'MLINEFROMWKB'", "'MONTHNAME'", "'MPOINTFROMTEXT'", + "'MPOINTFROMWKB'", "'MPOLYFROMTEXT'", "'MPOLYFROMWKB'", "'MULTILINESTRINGFROMTEXT'", + "'MULTILINESTRINGFROMWKB'", "'MULTIPOINTFROMTEXT'", "'MULTIPOINTFROMWKB'", + "'MULTIPOLYGONFROMTEXT'", "'MULTIPOLYGONFROMWKB'", "'NAME_CONST'", "'NULLIF'", + "'NUMGEOMETRIES'", "'NUMINTERIORRINGS'", "'NUMPOINTS'", "'OCT'", "'OCTET_LENGTH'", + "'ORD'", "'OVERLAPS'", "'PERIOD_ADD'", "'PERIOD_DIFF'", "'PI'", "'POINTFROMTEXT'", + "'POINTFROMWKB'", "'POINTN'", "'POLYFROMTEXT'", "'POLYFROMWKB'", "'POLYGONFROMTEXT'", + "'POLYGONFROMWKB'", "'POW'", "'POWER'", "'QUOTE'", "'RADIANS'", "'RAND'", + "'RANDOM_BYTES'", "'RELEASE_LOCK'", "'REVERSE'", "'ROUND'", "'ROW_COUNT'", + "'RPAD'", "'RTRIM'", "'SEC_TO_TIME'", "'SESSION_USER'", "'SHA'", "'SHA1'", + "'SHA2'", "'SIGN'", "'SIN'", "'SLEEP'", "'SOUNDEX'", "'SQL_THREAD_WAIT_AFTER_GTIDS'", + "'SQRT'", "'SRID'", "'STARTPOINT'", "'STRCMP'", "'STR_TO_DATE'", "'ST_AREA'", + "'ST_ASBINARY'", "'ST_ASTEXT'", "'ST_ASWKB'", "'ST_ASWKT'", "'ST_BUFFER'", + "'ST_CENTROID'", "'ST_CONTAINS'", "'ST_CROSSES'", "'ST_DIFFERENCE'", + "'ST_DIMENSION'", "'ST_DISJOINT'", "'ST_DISTANCE'", "'ST_ENDPOINT'", + "'ST_ENVELOPE'", "'ST_EQUALS'", "'ST_EXTERIORRING'", "'ST_GEOMCOLLFROMTEXT'", + "'ST_GEOMCOLLFROMTXT'", "'ST_GEOMCOLLFROMWKB'", "'ST_GEOMETRYCOLLECTIONFROMTEXT'", + "'ST_GEOMETRYCOLLECTIONFROMWKB'", "'ST_GEOMETRYFROMTEXT'", "'ST_GEOMETRYFROMWKB'", + "'ST_GEOMETRYN'", "'ST_GEOMETRYTYPE'", "'ST_GEOMFROMTEXT'", "'ST_GEOMFROMWKB'", + "'ST_INTERIORRINGN'", "'ST_INTERSECTION'", "'ST_INTERSECTS'", "'ST_ISCLOSED'", + "'ST_ISEMPTY'", "'ST_ISSIMPLE'", "'ST_LINEFROMTEXT'", "'ST_LINEFROMWKB'", + "'ST_LINESTRINGFROMTEXT'", "'ST_LINESTRINGFROMWKB'", "'ST_NUMGEOMETRIES'", + "'ST_NUMINTERIORRING'", "'ST_NUMINTERIORRINGS'", "'ST_NUMPOINTS'", "'ST_OVERLAPS'", + "'ST_POINTFROMTEXT'", "'ST_POINTFROMWKB'", "'ST_POINTN'", "'ST_POLYFROMTEXT'", + "'ST_POLYFROMWKB'", "'ST_POLYGONFROMTEXT'", "'ST_POLYGONFROMWKB'", "'ST_SRID'", + "'ST_STARTPOINT'", "'ST_SYMDIFFERENCE'", "'ST_TOUCHES'", "'ST_UNION'", + "'ST_WITHIN'", "'ST_X'", "'ST_Y'", "'SUBDATE'", "'SUBSTRING_INDEX'", + "'SUBTIME'", "'SYSTEM_USER'", "'TAN'", "'TIMEDIFF'", "'TIMESTAMPADD'", + "'TIMESTAMPDIFF'", "'TIME_FORMAT'", "'TIME_TO_SEC'", "'TOUCHES'", "'TO_BASE64'", + "'TO_DAYS'", "'TO_SECONDS'", "'UCASE'", "'UNCOMPRESS'", "'UNCOMPRESSED_LENGTH'", + "'UNHEX'", "'UNIX_TIMESTAMP'", "'UPDATEXML'", "'UPPER'", "'UUID'", "'UUID_SHORT'", + "'VALIDATE_PASSWORD_STRENGTH'", "'VERSION'", "'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'", + "'WEEKDAY'", "'WEEKOFYEAR'", "'WEIGHT_STRING'", "'WITHIN'", "'YEARWEEK'", + "'Y'", "'X'", "':='", "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", + "'^='", "'|='", "'*'", "'/'", "'%'", "'+'", "'--'", "'-'", "'DIV'", "'MOD'", + "'='", "'>'", "'<'", "'!'", "'~'", "'|'", "'&'", "'^'", "'.'", "'('", + "')'", "','", "';'", "'@'", "'0'", "'1'", "'2'", "'''", "'\"'", "'`'", + "':'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", + "ADD", "ALL", "ALTER", "ANALYZE", "AND", "AS", "ASC", "BEFORE", "BETWEEN", + "BOTH", "BY", "CALL", "CASCADE", "CASE", "CAST", "CHANGE", "CHARACTER", + "CHECK", "COLLATE", "COLUMN", "CONDITION", "CONSTRAINT", "CONTINUE", + "CONVERT", "CREATE", "CROSS", "CURRENT_USER", "CURSOR", "DATABASE", "DATABASES", + "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", + "DISTINCT", "DISTINCTROW", "DROP", "EACH", "ELSE", "ELSEIF", "ENCLOSED", + "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE", "FETCH", "FOR", "FORCE", + "FOREIGN", "FROM", "FULLTEXT", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", + "IF", "IGNORE", "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSERT", + "INTERVAL", "INTO", "IS", "ITERATE", "JOIN", "KEY", "KEYS", "KILL", "LEADING", + "LEAVE", "LEFT", "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", "LOCK", + "LOOP", "LOW_PRIORITY", "MASTER_BIND", "MASTER_SSL_VERIFY_SERVER_CERT", + "MATCH", "MAXVALUE", "MODIFIES", "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", + "NULL_LITERAL", "ON", "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", + "OUT", "OUTER", "OUTFILE", "PARTITION", "PRIMARY", "PROCEDURE", "PURGE", + "RANGE", "READ", "READS", "REFERENCES", "REGEXP", "RELEASE", "RENAME", + "REPEAT", "REPLACE", "REQUIRE", "RESTRICT", "RETURN", "REVOKE", "RIGHT", + "RLIKE", "SCHEMA", "SCHEMAS", "SELECT", "SET", "SEPARATOR", "SHOW", "SPATIAL", + "SQL", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", + "SQL_SMALL_RESULT", "SSL", "STARTING", "STRAIGHT_JOIN", "TABLE", "TERMINATED", + "THEN", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", "UNIQUE", + "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", "VALUES", "WHEN", + "WHERE", "WHILE", "WITH", "WRITE", "XOR", "ZEROFILL", "TINYINT", "SMALLINT", + "MEDIUMINT", "INT", "INTEGER", "BIGINT", "REAL", "DOUBLE", "FLOAT", "DECIMAL", + "NUMERIC", "DATE", "TIME", "TIMESTAMP", "DATETIME", "YEAR", "CHAR", "VARCHAR", + "BINARY", "VARBINARY", "TINYBLOB", "BLOB", "MEDIUMBLOB", "LONGBLOB", + "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "ENUM", "YEAR_MONTH", "DAY_HOUR", + "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND", + "SECOND_MICROSECOND", "MINUTE_MICROSECOND", "HOUR_MICROSECOND", "DAY_MICROSECOND", + "AVG", "BIT_AND", "BIT_OR", "BIT_XOR", "COUNT", "GROUP_CONCAT", "MAX", + "MIN", "STD", "STDDEV", "STDDEV_POP", "STDDEV_SAMP", "SUM", "VAR_POP", + "VAR_SAMP", "VARIANCE", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", + "LOCALTIME", "CURDATE", "CURTIME", "DATE_ADD", "DATE_SUB", "EXTRACT", + "LOCALTIMESTAMP", "NOW", "POSITION", "SUBSTR", "SUBSTRING", "SYSDATE", + "TRIM", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", "ACCOUNT", "ACTION", + "AFTER", "AGGREGATE", "ALGORITHM", "ANY", "AT", "AUTHORS", "AUTOCOMMIT", + "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH", "BEGIN", "BINLOG", + "BIT", "BLOCK", "BOOL", "BOOLEAN", "BTREE", "CACHE", "CASCADED", "CHAIN", + "CHANGED", "CHANNEL", "CHECKSUM", "CIPHER", "CLIENT", "CLOSE", "COALESCE", + "CODE", "COLUMNS", "COLUMN_FORMAT", "COMMENT", "COMMIT", "COMPACT", "COMPLETION", + "COMPRESSED", "COMPRESSION", "CONCURRENT", "CONNECTION", "CONSISTENT", + "CONTAINS", "CONTEXT", "CONTRIBUTORS", "COPY", "CPU", "DATA", "DATAFILE", + "DEALLOCATE", "DEFAULT_AUTH", "DEFINER", "DELAY_KEY_WRITE", "DES_KEY_FILE", + "DIRECTORY", "DISABLE", "DISCARD", "DISK", "DO", "DUMPFILE", "DUPLICATE", + "DYNAMIC", "ENABLE", "ENCRYPTION", "END", "ENDS", "ENGINE", "ENGINES", + "ERROR", "ERRORS", "ESCAPE", "EVEN", "EVENT", "EVENTS", "EVERY", "EXCHANGE", + "EXCLUSIVE", "EXPIRE", "EXPORT", "EXTENDED", "EXTENT_SIZE", "FAST", "FAULTS", + "FIELDS", "FILE_BLOCK_SIZE", "FILTER", "FIRST", "FIXED", "FLUSH", "FOLLOWS", + "FOUND", "FULL", "FUNCTION", "GENERAL", "GLOBAL", "GRANTS", "GROUP_REPLICATION", + "HANDLER", "HASH", "HELP", "HOST", "HOSTS", "IDENTIFIED", "IGNORE_SERVER_IDS", + "IMPORT", "INDEXES", "INITIAL_SIZE", "INPLACE", "INSERT_METHOD", "INSTALL", + "INSTANCE", "INVOKER", "IO", "IO_THREAD", "IPC", "ISOLATION", "ISSUER", + "JSON", "KEY_BLOCK_SIZE", "LANGUAGE", "LAST", "LEAVES", "LESS", "LEVEL", + "LIST", "LOCAL", "LOGFILE", "LOGS", "MASTER", "MASTER_AUTO_POSITION", + "MASTER_CONNECT_RETRY", "MASTER_DELAY", "MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", + "MASTER_LOG_FILE", "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT", + "MASTER_RETRY_COUNT", "MASTER_SSL", "MASTER_SSL_CA", "MASTER_SSL_CAPATH", + "MASTER_SSL_CERT", "MASTER_SSL_CIPHER", "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", + "MASTER_SSL_KEY", "MASTER_TLS_VERSION", "MASTER_USER", "MAX_CONNECTIONS_PER_HOUR", + "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", + "MAX_USER_CONNECTIONS", "MEDIUM", "MERGE", "MID", "MIGRATE", "MIN_ROWS", + "MODE", "MODIFY", "MUTEX", "MYSQL", "NAME", "NAMES", "NCHAR", "NEVER", + "NEXT", "NO", "NODEGROUP", "NONE", "OFFLINE", "OFFSET", "OJ", "OLD_PASSWORD", + "ONE", "ONLINE", "ONLY", "OPEN", "OPTIMIZER_COSTS", "OPTIONS", "OWNER", + "PACK_KEYS", "PAGE", "PARSER", "PARTIAL", "PARTITIONING", "PARTITIONS", + "PASSWORD", "PHASE", "PLUGIN", "PLUGIN_DIR", "PLUGINS", "PORT", "PRECEDES", + "PREPARE", "PRESERVE", "PREV", "PROCESSLIST", "PROFILE", "PROFILES", + "PROXY", "QUERY", "QUICK", "REBUILD", "RECOVER", "REDO_BUFFER_SIZE", + "REDUNDANT", "RELAY", "RELAY_LOG_FILE", "RELAY_LOG_POS", "RELAYLOG", + "REMOVE", "REORGANIZE", "REPAIR", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE", + "REPLICATE_IGNORE_DB", "REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB", + "REPLICATE_WILD_DO_TABLE", "REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", + "RESET", "RESUME", "RETURNS", "ROLLBACK", "ROLLUP", "ROTATE", "ROW", + "ROWS", "ROW_FORMAT", "SAVEPOINT", "SCHEDULE", "SECURITY", "SERVER", + "SESSION", "SHARE", "SHARED", "SIGNED", "SIMPLE", "SLAVE", "SLOW", "SNAPSHOT", + "SOCKET", "SOME", "SONAME", "SOUNDS", "SOURCE", "SQL_AFTER_GTIDS", "SQL_AFTER_MTS_GAPS", + "SQL_BEFORE_GTIDS", "SQL_BUFFER_RESULT", "SQL_CACHE", "SQL_NO_CACHE", + "SQL_THREAD", "START", "STARTS", "STATS_AUTO_RECALC", "STATS_PERSISTENT", + "STATS_SAMPLE_PAGES", "STATUS", "STOP", "STORAGE", "STRING", "SUBJECT", + "SUBPARTITION", "SUBPARTITIONS", "SUSPEND", "SWAPS", "SWITCHES", "TABLESPACE", + "TEMPORARY", "TEMPTABLE", "THAN", "TRADITIONAL", "TRANSACTION", "TRIGGERS", + "TRUNCATE", "UNDEFINED", "UNDOFILE", "UNDO_BUFFER_SIZE", "UNINSTALL", + "UNKNOWN", "UNTIL", "UPGRADE", "USER", "USE_FRM", "USER_RESOURCES", "VALIDATION", + "VALUE", "VARIABLES", "VIEW", "WAIT", "WARNINGS", "WITHOUT", "WORK", + "WRAPPER", "X509", "XA", "XML", "EUR", "USA", "JIS", "ISO", "INTERNAL", + "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", "WEEK", "SECOND", "MICROSECOND", + "TABLES", "ROUTINE", "EXECUTE", "FILE", "PROCESS", "RELOAD", "SHUTDOWN", + "SUPER", "PRIVILEGES", "ARMSCII8", "ASCII", "BIG5", "CP1250", "CP1251", + "CP1256", "CP1257", "CP850", "CP852", "CP866", "CP932", "DEC8", "EUCJPMS", + "EUCKR", "GB2312", "GBK", "GEOSTD8", "GREEK", "HEBREW", "HP8", "KEYBCS2", + "KOI8R", "KOI8U", "LATIN1", "LATIN2", "LATIN5", "LATIN7", "MACCE", "MACROMAN", + "SJIS", "SWE7", "TIS620", "UCS2", "UJIS", "UTF16", "UTF16LE", "UTF32", + "UTF8", "UTF8MB3", "UTF8MB4", "ARCHIVE", "BLACKHOLE", "CSV", "FEDERATED", + "INNODB", "MEMORY", "MRG_MYISAM", "MYISAM", "NDB", "NDBCLUSTER", "PERFOMANCE_SCHEMA", + "REPEATABLE", "COMMITTED", "UNCOMMITTED", "SERIALIZABLE", "GEOMETRYCOLLECTION", + "LINESTRING", "MULTILINESTRING", "MULTIPOINT", "MULTIPOLYGON", "POINT", + "POLYGON", "ABS", "ACOS", "ADDDATE", "ADDTIME", "AES_DECRYPT", "AES_ENCRYPT", + "AREA", "ASBINARY", "ASIN", "ASTEXT", "ASWKB", "ASWKT", "ASYMMETRIC_DECRYPT", + "ASYMMETRIC_DERIVE", "ASYMMETRIC_ENCRYPT", "ASYMMETRIC_SIGN", "ASYMMETRIC_VERIFY", + "ATAN", "ATAN2", "BENCHMARK", "BIN", "BIT_COUNT", "BIT_LENGTH", "BUFFER", + "CEIL", "CEILING", "CENTROID", "CHARACTER_LENGTH", "CHARSET", "CHAR_LENGTH", + "COERCIBILITY", "COLLATION", "COMPRESS", "CONCAT", "CONCAT_WS", "CONNECTION_ID", + "CONV", "CONVERT_TZ", "COS", "COT", "CRC32", "CREATE_ASYMMETRIC_PRIV_KEY", + "CREATE_ASYMMETRIC_PUB_KEY", "CREATE_DH_PARAMETERS", "CREATE_DIGEST", + "CROSSES", "DATEDIFF", "DATE_FORMAT", "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", + "DAYOFYEAR", "DECODE", "DEGREES", "DES_DECRYPT", "DES_ENCRYPT", "DIMENSION", + "DISJOINT", "ELT", "ENCODE", "ENCRYPT", "ENDPOINT", "ENVELOPE", "EQUALS", + "EXP", "EXPORT_SET", "EXTERIORRING", "EXTRACTVALUE", "FIELD", "FIND_IN_SET", + "FLOOR", "FORMAT", "FOUND_ROWS", "FROM_BASE64", "FROM_DAYS", "FROM_UNIXTIME", + "GEOMCOLLFROMTEXT", "GEOMCOLLFROMWKB", "GEOMETRYCOLLECTIONFROMTEXT", + "GEOMETRYCOLLECTIONFROMWKB", "GEOMETRYFROMTEXT", "GEOMETRYFROMWKB", "GEOMETRYN", + "GEOMETRYTYPE", "GEOMFROMTEXT", "GEOMFROMWKB", "GET_FORMAT", "GET_LOCK", + "GLENGTH", "GREATEST", "GTID_SUBSET", "GTID_SUBTRACT", "HEX", "IFNULL", + "INET6_ATON", "INET6_NTOA", "INET_ATON", "INET_NTOA", "INSTR", "INTERIORRINGN", + "INTERSECTS", "ISCLOSED", "ISEMPTY", "ISNULL", "ISSIMPLE", "IS_FREE_LOCK", + "IS_IPV4", "IS_IPV4_COMPAT", "IS_IPV4_MAPPED", "IS_IPV6", "IS_USED_LOCK", + "LAST_INSERT_ID", "LCASE", "LEAST", "LENGTH", "LINEFROMTEXT", "LINEFROMWKB", + "LINESTRINGFROMTEXT", "LINESTRINGFROMWKB", "LN", "LOAD_FILE", "LOCATE", + "LOG", "LOG10", "LOG2", "LOWER", "LPAD", "LTRIM", "MAKEDATE", "MAKETIME", + "MAKE_SET", "MASTER_POS_WAIT", "MBRCONTAINS", "MBRDISJOINT", "MBREQUAL", + "MBRINTERSECTS", "MBROVERLAPS", "MBRTOUCHES", "MBRWITHIN", "MD5", "MLINEFROMTEXT", + "MLINEFROMWKB", "MONTHNAME", "MPOINTFROMTEXT", "MPOINTFROMWKB", "MPOLYFROMTEXT", + "MPOLYFROMWKB", "MULTILINESTRINGFROMTEXT", "MULTILINESTRINGFROMWKB", + "MULTIPOINTFROMTEXT", "MULTIPOINTFROMWKB", "MULTIPOLYGONFROMTEXT", "MULTIPOLYGONFROMWKB", + "NAME_CONST", "NULLIF", "NUMGEOMETRIES", "NUMINTERIORRINGS", "NUMPOINTS", + "OCT", "OCTET_LENGTH", "ORD", "OVERLAPS", "PERIOD_ADD", "PERIOD_DIFF", + "PI", "POINTFROMTEXT", "POINTFROMWKB", "POINTN", "POLYFROMTEXT", "POLYFROMWKB", + "POLYGONFROMTEXT", "POLYGONFROMWKB", "POW", "POWER", "QUOTE", "RADIANS", + "RAND", "RANDOM_BYTES", "RELEASE_LOCK", "REVERSE", "ROUND", "ROW_COUNT", + "RPAD", "RTRIM", "SEC_TO_TIME", "SESSION_USER", "SHA", "SHA1", "SHA2", + "SIGN", "SIN", "SLEEP", "SOUNDEX", "SQL_THREAD_WAIT_AFTER_GTIDS", "SQRT", + "SRID", "STARTPOINT", "STRCMP", "STR_TO_DATE", "ST_AREA", "ST_ASBINARY", + "ST_ASTEXT", "ST_ASWKB", "ST_ASWKT", "ST_BUFFER", "ST_CENTROID", "ST_CONTAINS", + "ST_CROSSES", "ST_DIFFERENCE", "ST_DIMENSION", "ST_DISJOINT", "ST_DISTANCE", + "ST_ENDPOINT", "ST_ENVELOPE", "ST_EQUALS", "ST_EXTERIORRING", "ST_GEOMCOLLFROMTEXT", + "ST_GEOMCOLLFROMTXT", "ST_GEOMCOLLFROMWKB", "ST_GEOMETRYCOLLECTIONFROMTEXT", + "ST_GEOMETRYCOLLECTIONFROMWKB", "ST_GEOMETRYFROMTEXT", "ST_GEOMETRYFROMWKB", + "ST_GEOMETRYN", "ST_GEOMETRYTYPE", "ST_GEOMFROMTEXT", "ST_GEOMFROMWKB", + "ST_INTERIORRINGN", "ST_INTERSECTION", "ST_INTERSECTS", "ST_ISCLOSED", + "ST_ISEMPTY", "ST_ISSIMPLE", "ST_LINEFROMTEXT", "ST_LINEFROMWKB", "ST_LINESTRINGFROMTEXT", + "ST_LINESTRINGFROMWKB", "ST_NUMGEOMETRIES", "ST_NUMINTERIORRING", "ST_NUMINTERIORRINGS", + "ST_NUMPOINTS", "ST_OVERLAPS", "ST_POINTFROMTEXT", "ST_POINTFROMWKB", + "ST_POINTN", "ST_POLYFROMTEXT", "ST_POLYFROMWKB", "ST_POLYGONFROMTEXT", + "ST_POLYGONFROMWKB", "ST_SRID", "ST_STARTPOINT", "ST_SYMDIFFERENCE", + "ST_TOUCHES", "ST_UNION", "ST_WITHIN", "ST_X", "ST_Y", "SUBDATE", "SUBSTRING_INDEX", + "SUBTIME", "SYSTEM_USER", "TAN", "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPDIFF", + "TIME_FORMAT", "TIME_TO_SEC", "TOUCHES", "TO_BASE64", "TO_DAYS", "TO_SECONDS", + "UCASE", "UNCOMPRESS", "UNCOMPRESSED_LENGTH", "UNHEX", "UNIX_TIMESTAMP", + "UPDATEXML", "UPPER", "UUID", "UUID_SHORT", "VALIDATE_PASSWORD_STRENGTH", + "VERSION", "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", "WEEKDAY", "WEEKOFYEAR", + "WEIGHT_STRING", "WITHIN", "YEARWEEK", "Y_FUNCTION", "X_FUNCTION", "VAR_ASSIGN", + "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", + "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", "MODULE", + "PLUS", "MINUSMINUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", + "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", + "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", + "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", + "REVERSE_QUOTE_SYMB", "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", "FILESIZE_LITERAL", + "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL", + "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", "BIT_STRING", + "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", "STRING_USER_NAME", + "LOCAL_ID", "GLOBAL_ID", "ERROR_RECONGNIGION" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public MySqlLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "MySqlLexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u03cd\u2af2\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ + "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ + "\u0002\u014f\u0007\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151"+ + "\u0002\u0152\u0007\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154"+ + "\u0002\u0155\u0007\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157"+ + "\u0002\u0158\u0007\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a"+ + "\u0002\u015b\u0007\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d"+ + "\u0002\u015e\u0007\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160"+ + "\u0002\u0161\u0007\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163"+ + "\u0002\u0164\u0007\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166"+ + "\u0002\u0167\u0007\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169"+ + "\u0002\u016a\u0007\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c"+ + "\u0002\u016d\u0007\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f"+ + "\u0002\u0170\u0007\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172"+ + "\u0002\u0173\u0007\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175"+ + "\u0002\u0176\u0007\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178"+ + "\u0002\u0179\u0007\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b"+ + "\u0002\u017c\u0007\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e"+ + "\u0002\u017f\u0007\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181"+ + "\u0002\u0182\u0007\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184"+ + "\u0002\u0185\u0007\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187"+ + "\u0002\u0188\u0007\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a"+ + "\u0002\u018b\u0007\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d"+ + "\u0002\u018e\u0007\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190"+ + "\u0002\u0191\u0007\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193"+ + "\u0002\u0194\u0007\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196"+ + "\u0002\u0197\u0007\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199"+ + "\u0002\u019a\u0007\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c"+ + "\u0002\u019d\u0007\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f"+ + "\u0002\u01a0\u0007\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2"+ + "\u0002\u01a3\u0007\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5"+ + "\u0002\u01a6\u0007\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8"+ + "\u0002\u01a9\u0007\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab"+ + "\u0002\u01ac\u0007\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae"+ + "\u0002\u01af\u0007\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1"+ + "\u0002\u01b2\u0007\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4"+ + "\u0002\u01b5\u0007\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7"+ + "\u0002\u01b8\u0007\u01b8\u0002\u01b9\u0007\u01b9\u0002\u01ba\u0007\u01ba"+ + "\u0002\u01bb\u0007\u01bb\u0002\u01bc\u0007\u01bc\u0002\u01bd\u0007\u01bd"+ + "\u0002\u01be\u0007\u01be\u0002\u01bf\u0007\u01bf\u0002\u01c0\u0007\u01c0"+ + "\u0002\u01c1\u0007\u01c1\u0002\u01c2\u0007\u01c2\u0002\u01c3\u0007\u01c3"+ + "\u0002\u01c4\u0007\u01c4\u0002\u01c5\u0007\u01c5\u0002\u01c6\u0007\u01c6"+ + "\u0002\u01c7\u0007\u01c7\u0002\u01c8\u0007\u01c8\u0002\u01c9\u0007\u01c9"+ + "\u0002\u01ca\u0007\u01ca\u0002\u01cb\u0007\u01cb\u0002\u01cc\u0007\u01cc"+ + "\u0002\u01cd\u0007\u01cd\u0002\u01ce\u0007\u01ce\u0002\u01cf\u0007\u01cf"+ + "\u0002\u01d0\u0007\u01d0\u0002\u01d1\u0007\u01d1\u0002\u01d2\u0007\u01d2"+ + "\u0002\u01d3\u0007\u01d3\u0002\u01d4\u0007\u01d4\u0002\u01d5\u0007\u01d5"+ + "\u0002\u01d6\u0007\u01d6\u0002\u01d7\u0007\u01d7\u0002\u01d8\u0007\u01d8"+ + "\u0002\u01d9\u0007\u01d9\u0002\u01da\u0007\u01da\u0002\u01db\u0007\u01db"+ + "\u0002\u01dc\u0007\u01dc\u0002\u01dd\u0007\u01dd\u0002\u01de\u0007\u01de"+ + "\u0002\u01df\u0007\u01df\u0002\u01e0\u0007\u01e0\u0002\u01e1\u0007\u01e1"+ + "\u0002\u01e2\u0007\u01e2\u0002\u01e3\u0007\u01e3\u0002\u01e4\u0007\u01e4"+ + "\u0002\u01e5\u0007\u01e5\u0002\u01e6\u0007\u01e6\u0002\u01e7\u0007\u01e7"+ + "\u0002\u01e8\u0007\u01e8\u0002\u01e9\u0007\u01e9\u0002\u01ea\u0007\u01ea"+ + "\u0002\u01eb\u0007\u01eb\u0002\u01ec\u0007\u01ec\u0002\u01ed\u0007\u01ed"+ + "\u0002\u01ee\u0007\u01ee\u0002\u01ef\u0007\u01ef\u0002\u01f0\u0007\u01f0"+ + "\u0002\u01f1\u0007\u01f1\u0002\u01f2\u0007\u01f2\u0002\u01f3\u0007\u01f3"+ + "\u0002\u01f4\u0007\u01f4\u0002\u01f5\u0007\u01f5\u0002\u01f6\u0007\u01f6"+ + "\u0002\u01f7\u0007\u01f7\u0002\u01f8\u0007\u01f8\u0002\u01f9\u0007\u01f9"+ + "\u0002\u01fa\u0007\u01fa\u0002\u01fb\u0007\u01fb\u0002\u01fc\u0007\u01fc"+ + "\u0002\u01fd\u0007\u01fd\u0002\u01fe\u0007\u01fe\u0002\u01ff\u0007\u01ff"+ + "\u0002\u0200\u0007\u0200\u0002\u0201\u0007\u0201\u0002\u0202\u0007\u0202"+ + "\u0002\u0203\u0007\u0203\u0002\u0204\u0007\u0204\u0002\u0205\u0007\u0205"+ + "\u0002\u0206\u0007\u0206\u0002\u0207\u0007\u0207\u0002\u0208\u0007\u0208"+ + "\u0002\u0209\u0007\u0209\u0002\u020a\u0007\u020a\u0002\u020b\u0007\u020b"+ + "\u0002\u020c\u0007\u020c\u0002\u020d\u0007\u020d\u0002\u020e\u0007\u020e"+ + "\u0002\u020f\u0007\u020f\u0002\u0210\u0007\u0210\u0002\u0211\u0007\u0211"+ + "\u0002\u0212\u0007\u0212\u0002\u0213\u0007\u0213\u0002\u0214\u0007\u0214"+ + "\u0002\u0215\u0007\u0215\u0002\u0216\u0007\u0216\u0002\u0217\u0007\u0217"+ + "\u0002\u0218\u0007\u0218\u0002\u0219\u0007\u0219\u0002\u021a\u0007\u021a"+ + "\u0002\u021b\u0007\u021b\u0002\u021c\u0007\u021c\u0002\u021d\u0007\u021d"+ + "\u0002\u021e\u0007\u021e\u0002\u021f\u0007\u021f\u0002\u0220\u0007\u0220"+ + "\u0002\u0221\u0007\u0221\u0002\u0222\u0007\u0222\u0002\u0223\u0007\u0223"+ + "\u0002\u0224\u0007\u0224\u0002\u0225\u0007\u0225\u0002\u0226\u0007\u0226"+ + "\u0002\u0227\u0007\u0227\u0002\u0228\u0007\u0228\u0002\u0229\u0007\u0229"+ + "\u0002\u022a\u0007\u022a\u0002\u022b\u0007\u022b\u0002\u022c\u0007\u022c"+ + "\u0002\u022d\u0007\u022d\u0002\u022e\u0007\u022e\u0002\u022f\u0007\u022f"+ + "\u0002\u0230\u0007\u0230\u0002\u0231\u0007\u0231\u0002\u0232\u0007\u0232"+ + "\u0002\u0233\u0007\u0233\u0002\u0234\u0007\u0234\u0002\u0235\u0007\u0235"+ + "\u0002\u0236\u0007\u0236\u0002\u0237\u0007\u0237\u0002\u0238\u0007\u0238"+ + "\u0002\u0239\u0007\u0239\u0002\u023a\u0007\u023a\u0002\u023b\u0007\u023b"+ + "\u0002\u023c\u0007\u023c\u0002\u023d\u0007\u023d\u0002\u023e\u0007\u023e"+ + "\u0002\u023f\u0007\u023f\u0002\u0240\u0007\u0240\u0002\u0241\u0007\u0241"+ + "\u0002\u0242\u0007\u0242\u0002\u0243\u0007\u0243\u0002\u0244\u0007\u0244"+ + "\u0002\u0245\u0007\u0245\u0002\u0246\u0007\u0246\u0002\u0247\u0007\u0247"+ + "\u0002\u0248\u0007\u0248\u0002\u0249\u0007\u0249\u0002\u024a\u0007\u024a"+ + "\u0002\u024b\u0007\u024b\u0002\u024c\u0007\u024c\u0002\u024d\u0007\u024d"+ + "\u0002\u024e\u0007\u024e\u0002\u024f\u0007\u024f\u0002\u0250\u0007\u0250"+ + "\u0002\u0251\u0007\u0251\u0002\u0252\u0007\u0252\u0002\u0253\u0007\u0253"+ + "\u0002\u0254\u0007\u0254\u0002\u0255\u0007\u0255\u0002\u0256\u0007\u0256"+ + "\u0002\u0257\u0007\u0257\u0002\u0258\u0007\u0258\u0002\u0259\u0007\u0259"+ + "\u0002\u025a\u0007\u025a\u0002\u025b\u0007\u025b\u0002\u025c\u0007\u025c"+ + "\u0002\u025d\u0007\u025d\u0002\u025e\u0007\u025e\u0002\u025f\u0007\u025f"+ + "\u0002\u0260\u0007\u0260\u0002\u0261\u0007\u0261\u0002\u0262\u0007\u0262"+ + "\u0002\u0263\u0007\u0263\u0002\u0264\u0007\u0264\u0002\u0265\u0007\u0265"+ + "\u0002\u0266\u0007\u0266\u0002\u0267\u0007\u0267\u0002\u0268\u0007\u0268"+ + "\u0002\u0269\u0007\u0269\u0002\u026a\u0007\u026a\u0002\u026b\u0007\u026b"+ + "\u0002\u026c\u0007\u026c\u0002\u026d\u0007\u026d\u0002\u026e\u0007\u026e"+ + "\u0002\u026f\u0007\u026f\u0002\u0270\u0007\u0270\u0002\u0271\u0007\u0271"+ + "\u0002\u0272\u0007\u0272\u0002\u0273\u0007\u0273\u0002\u0274\u0007\u0274"+ + "\u0002\u0275\u0007\u0275\u0002\u0276\u0007\u0276\u0002\u0277\u0007\u0277"+ + "\u0002\u0278\u0007\u0278\u0002\u0279\u0007\u0279\u0002\u027a\u0007\u027a"+ + "\u0002\u027b\u0007\u027b\u0002\u027c\u0007\u027c\u0002\u027d\u0007\u027d"+ + "\u0002\u027e\u0007\u027e\u0002\u027f\u0007\u027f\u0002\u0280\u0007\u0280"+ + "\u0002\u0281\u0007\u0281\u0002\u0282\u0007\u0282\u0002\u0283\u0007\u0283"+ + "\u0002\u0284\u0007\u0284\u0002\u0285\u0007\u0285\u0002\u0286\u0007\u0286"+ + "\u0002\u0287\u0007\u0287\u0002\u0288\u0007\u0288\u0002\u0289\u0007\u0289"+ + "\u0002\u028a\u0007\u028a\u0002\u028b\u0007\u028b\u0002\u028c\u0007\u028c"+ + "\u0002\u028d\u0007\u028d\u0002\u028e\u0007\u028e\u0002\u028f\u0007\u028f"+ + "\u0002\u0290\u0007\u0290\u0002\u0291\u0007\u0291\u0002\u0292\u0007\u0292"+ + "\u0002\u0293\u0007\u0293\u0002\u0294\u0007\u0294\u0002\u0295\u0007\u0295"+ + "\u0002\u0296\u0007\u0296\u0002\u0297\u0007\u0297\u0002\u0298\u0007\u0298"+ + "\u0002\u0299\u0007\u0299\u0002\u029a\u0007\u029a\u0002\u029b\u0007\u029b"+ + "\u0002\u029c\u0007\u029c\u0002\u029d\u0007\u029d\u0002\u029e\u0007\u029e"+ + "\u0002\u029f\u0007\u029f\u0002\u02a0\u0007\u02a0\u0002\u02a1\u0007\u02a1"+ + "\u0002\u02a2\u0007\u02a2\u0002\u02a3\u0007\u02a3\u0002\u02a4\u0007\u02a4"+ + "\u0002\u02a5\u0007\u02a5\u0002\u02a6\u0007\u02a6\u0002\u02a7\u0007\u02a7"+ + "\u0002\u02a8\u0007\u02a8\u0002\u02a9\u0007\u02a9\u0002\u02aa\u0007\u02aa"+ + "\u0002\u02ab\u0007\u02ab\u0002\u02ac\u0007\u02ac\u0002\u02ad\u0007\u02ad"+ + "\u0002\u02ae\u0007\u02ae\u0002\u02af\u0007\u02af\u0002\u02b0\u0007\u02b0"+ + "\u0002\u02b1\u0007\u02b1\u0002\u02b2\u0007\u02b2\u0002\u02b3\u0007\u02b3"+ + "\u0002\u02b4\u0007\u02b4\u0002\u02b5\u0007\u02b5\u0002\u02b6\u0007\u02b6"+ + "\u0002\u02b7\u0007\u02b7\u0002\u02b8\u0007\u02b8\u0002\u02b9\u0007\u02b9"+ + "\u0002\u02ba\u0007\u02ba\u0002\u02bb\u0007\u02bb\u0002\u02bc\u0007\u02bc"+ + "\u0002\u02bd\u0007\u02bd\u0002\u02be\u0007\u02be\u0002\u02bf\u0007\u02bf"+ + "\u0002\u02c0\u0007\u02c0\u0002\u02c1\u0007\u02c1\u0002\u02c2\u0007\u02c2"+ + "\u0002\u02c3\u0007\u02c3\u0002\u02c4\u0007\u02c4\u0002\u02c5\u0007\u02c5"+ + "\u0002\u02c6\u0007\u02c6\u0002\u02c7\u0007\u02c7\u0002\u02c8\u0007\u02c8"+ + "\u0002\u02c9\u0007\u02c9\u0002\u02ca\u0007\u02ca\u0002\u02cb\u0007\u02cb"+ + "\u0002\u02cc\u0007\u02cc\u0002\u02cd\u0007\u02cd\u0002\u02ce\u0007\u02ce"+ + "\u0002\u02cf\u0007\u02cf\u0002\u02d0\u0007\u02d0\u0002\u02d1\u0007\u02d1"+ + "\u0002\u02d2\u0007\u02d2\u0002\u02d3\u0007\u02d3\u0002\u02d4\u0007\u02d4"+ + "\u0002\u02d5\u0007\u02d5\u0002\u02d6\u0007\u02d6\u0002\u02d7\u0007\u02d7"+ + "\u0002\u02d8\u0007\u02d8\u0002\u02d9\u0007\u02d9\u0002\u02da\u0007\u02da"+ + "\u0002\u02db\u0007\u02db\u0002\u02dc\u0007\u02dc\u0002\u02dd\u0007\u02dd"+ + "\u0002\u02de\u0007\u02de\u0002\u02df\u0007\u02df\u0002\u02e0\u0007\u02e0"+ + "\u0002\u02e1\u0007\u02e1\u0002\u02e2\u0007\u02e2\u0002\u02e3\u0007\u02e3"+ + "\u0002\u02e4\u0007\u02e4\u0002\u02e5\u0007\u02e5\u0002\u02e6\u0007\u02e6"+ + "\u0002\u02e7\u0007\u02e7\u0002\u02e8\u0007\u02e8\u0002\u02e9\u0007\u02e9"+ + "\u0002\u02ea\u0007\u02ea\u0002\u02eb\u0007\u02eb\u0002\u02ec\u0007\u02ec"+ + "\u0002\u02ed\u0007\u02ed\u0002\u02ee\u0007\u02ee\u0002\u02ef\u0007\u02ef"+ + "\u0002\u02f0\u0007\u02f0\u0002\u02f1\u0007\u02f1\u0002\u02f2\u0007\u02f2"+ + "\u0002\u02f3\u0007\u02f3\u0002\u02f4\u0007\u02f4\u0002\u02f5\u0007\u02f5"+ + "\u0002\u02f6\u0007\u02f6\u0002\u02f7\u0007\u02f7\u0002\u02f8\u0007\u02f8"+ + "\u0002\u02f9\u0007\u02f9\u0002\u02fa\u0007\u02fa\u0002\u02fb\u0007\u02fb"+ + "\u0002\u02fc\u0007\u02fc\u0002\u02fd\u0007\u02fd\u0002\u02fe\u0007\u02fe"+ + "\u0002\u02ff\u0007\u02ff\u0002\u0300\u0007\u0300\u0002\u0301\u0007\u0301"+ + "\u0002\u0302\u0007\u0302\u0002\u0303\u0007\u0303\u0002\u0304\u0007\u0304"+ + "\u0002\u0305\u0007\u0305\u0002\u0306\u0007\u0306\u0002\u0307\u0007\u0307"+ + "\u0002\u0308\u0007\u0308\u0002\u0309\u0007\u0309\u0002\u030a\u0007\u030a"+ + "\u0002\u030b\u0007\u030b\u0002\u030c\u0007\u030c\u0002\u030d\u0007\u030d"+ + "\u0002\u030e\u0007\u030e\u0002\u030f\u0007\u030f\u0002\u0310\u0007\u0310"+ + "\u0002\u0311\u0007\u0311\u0002\u0312\u0007\u0312\u0002\u0313\u0007\u0313"+ + "\u0002\u0314\u0007\u0314\u0002\u0315\u0007\u0315\u0002\u0316\u0007\u0316"+ + "\u0002\u0317\u0007\u0317\u0002\u0318\u0007\u0318\u0002\u0319\u0007\u0319"+ + "\u0002\u031a\u0007\u031a\u0002\u031b\u0007\u031b\u0002\u031c\u0007\u031c"+ + "\u0002\u031d\u0007\u031d\u0002\u031e\u0007\u031e\u0002\u031f\u0007\u031f"+ + "\u0002\u0320\u0007\u0320\u0002\u0321\u0007\u0321\u0002\u0322\u0007\u0322"+ + "\u0002\u0323\u0007\u0323\u0002\u0324\u0007\u0324\u0002\u0325\u0007\u0325"+ + "\u0002\u0326\u0007\u0326\u0002\u0327\u0007\u0327\u0002\u0328\u0007\u0328"+ + "\u0002\u0329\u0007\u0329\u0002\u032a\u0007\u032a\u0002\u032b\u0007\u032b"+ + "\u0002\u032c\u0007\u032c\u0002\u032d\u0007\u032d\u0002\u032e\u0007\u032e"+ + "\u0002\u032f\u0007\u032f\u0002\u0330\u0007\u0330\u0002\u0331\u0007\u0331"+ + "\u0002\u0332\u0007\u0332\u0002\u0333\u0007\u0333\u0002\u0334\u0007\u0334"+ + "\u0002\u0335\u0007\u0335\u0002\u0336\u0007\u0336\u0002\u0337\u0007\u0337"+ + "\u0002\u0338\u0007\u0338\u0002\u0339\u0007\u0339\u0002\u033a\u0007\u033a"+ + "\u0002\u033b\u0007\u033b\u0002\u033c\u0007\u033c\u0002\u033d\u0007\u033d"+ + "\u0002\u033e\u0007\u033e\u0002\u033f\u0007\u033f\u0002\u0340\u0007\u0340"+ + "\u0002\u0341\u0007\u0341\u0002\u0342\u0007\u0342\u0002\u0343\u0007\u0343"+ + "\u0002\u0344\u0007\u0344\u0002\u0345\u0007\u0345\u0002\u0346\u0007\u0346"+ + "\u0002\u0347\u0007\u0347\u0002\u0348\u0007\u0348\u0002\u0349\u0007\u0349"+ + "\u0002\u034a\u0007\u034a\u0002\u034b\u0007\u034b\u0002\u034c\u0007\u034c"+ + "\u0002\u034d\u0007\u034d\u0002\u034e\u0007\u034e\u0002\u034f\u0007\u034f"+ + "\u0002\u0350\u0007\u0350\u0002\u0351\u0007\u0351\u0002\u0352\u0007\u0352"+ + "\u0002\u0353\u0007\u0353\u0002\u0354\u0007\u0354\u0002\u0355\u0007\u0355"+ + "\u0002\u0356\u0007\u0356\u0002\u0357\u0007\u0357\u0002\u0358\u0007\u0358"+ + "\u0002\u0359\u0007\u0359\u0002\u035a\u0007\u035a\u0002\u035b\u0007\u035b"+ + "\u0002\u035c\u0007\u035c\u0002\u035d\u0007\u035d\u0002\u035e\u0007\u035e"+ + "\u0002\u035f\u0007\u035f\u0002\u0360\u0007\u0360\u0002\u0361\u0007\u0361"+ + "\u0002\u0362\u0007\u0362\u0002\u0363\u0007\u0363\u0002\u0364\u0007\u0364"+ + "\u0002\u0365\u0007\u0365\u0002\u0366\u0007\u0366\u0002\u0367\u0007\u0367"+ + "\u0002\u0368\u0007\u0368\u0002\u0369\u0007\u0369\u0002\u036a\u0007\u036a"+ + "\u0002\u036b\u0007\u036b\u0002\u036c\u0007\u036c\u0002\u036d\u0007\u036d"+ + "\u0002\u036e\u0007\u036e\u0002\u036f\u0007\u036f\u0002\u0370\u0007\u0370"+ + "\u0002\u0371\u0007\u0371\u0002\u0372\u0007\u0372\u0002\u0373\u0007\u0373"+ + "\u0002\u0374\u0007\u0374\u0002\u0375\u0007\u0375\u0002\u0376\u0007\u0376"+ + "\u0002\u0377\u0007\u0377\u0002\u0378\u0007\u0378\u0002\u0379\u0007\u0379"+ + "\u0002\u037a\u0007\u037a\u0002\u037b\u0007\u037b\u0002\u037c\u0007\u037c"+ + "\u0002\u037d\u0007\u037d\u0002\u037e\u0007\u037e\u0002\u037f\u0007\u037f"+ + "\u0002\u0380\u0007\u0380\u0002\u0381\u0007\u0381\u0002\u0382\u0007\u0382"+ + "\u0002\u0383\u0007\u0383\u0002\u0384\u0007\u0384\u0002\u0385\u0007\u0385"+ + "\u0002\u0386\u0007\u0386\u0002\u0387\u0007\u0387\u0002\u0388\u0007\u0388"+ + "\u0002\u0389\u0007\u0389\u0002\u038a\u0007\u038a\u0002\u038b\u0007\u038b"+ + "\u0002\u038c\u0007\u038c\u0002\u038d\u0007\u038d\u0002\u038e\u0007\u038e"+ + "\u0002\u038f\u0007\u038f\u0002\u0390\u0007\u0390\u0002\u0391\u0007\u0391"+ + "\u0002\u0392\u0007\u0392\u0002\u0393\u0007\u0393\u0002\u0394\u0007\u0394"+ + "\u0002\u0395\u0007\u0395\u0002\u0396\u0007\u0396\u0002\u0397\u0007\u0397"+ + "\u0002\u0398\u0007\u0398\u0002\u0399\u0007\u0399\u0002\u039a\u0007\u039a"+ + "\u0002\u039b\u0007\u039b\u0002\u039c\u0007\u039c\u0002\u039d\u0007\u039d"+ + "\u0002\u039e\u0007\u039e\u0002\u039f\u0007\u039f\u0002\u03a0\u0007\u03a0"+ + "\u0002\u03a1\u0007\u03a1\u0002\u03a2\u0007\u03a2\u0002\u03a3\u0007\u03a3"+ + "\u0002\u03a4\u0007\u03a4\u0002\u03a5\u0007\u03a5\u0002\u03a6\u0007\u03a6"+ + "\u0002\u03a7\u0007\u03a7\u0002\u03a8\u0007\u03a8\u0002\u03a9\u0007\u03a9"+ + "\u0002\u03aa\u0007\u03aa\u0002\u03ab\u0007\u03ab\u0002\u03ac\u0007\u03ac"+ + "\u0002\u03ad\u0007\u03ad\u0002\u03ae\u0007\u03ae\u0002\u03af\u0007\u03af"+ + "\u0002\u03b0\u0007\u03b0\u0002\u03b1\u0007\u03b1\u0002\u03b2\u0007\u03b2"+ + "\u0002\u03b3\u0007\u03b3\u0002\u03b4\u0007\u03b4\u0002\u03b5\u0007\u03b5"+ + "\u0002\u03b6\u0007\u03b6\u0002\u03b7\u0007\u03b7\u0002\u03b8\u0007\u03b8"+ + "\u0002\u03b9\u0007\u03b9\u0002\u03ba\u0007\u03ba\u0002\u03bb\u0007\u03bb"+ + "\u0002\u03bc\u0007\u03bc\u0002\u03bd\u0007\u03bd\u0002\u03be\u0007\u03be"+ + "\u0002\u03bf\u0007\u03bf\u0002\u03c0\u0007\u03c0\u0002\u03c1\u0007\u03c1"+ + "\u0002\u03c2\u0007\u03c2\u0002\u03c3\u0007\u03c3\u0002\u03c4\u0007\u03c4"+ + "\u0002\u03c5\u0007\u03c5\u0002\u03c6\u0007\u03c6\u0002\u03c7\u0007\u03c7"+ + "\u0002\u03c8\u0007\u03c8\u0002\u03c9\u0007\u03c9\u0002\u03ca\u0007\u03ca"+ + "\u0002\u03cb\u0007\u03cb\u0002\u03cc\u0007\u03cc\u0002\u03cd\u0007\u03cd"+ + "\u0002\u03ce\u0007\u03ce\u0002\u03cf\u0007\u03cf\u0002\u03d0\u0007\u03d0"+ + "\u0002\u03d1\u0007\u03d1\u0002\u03d2\u0007\u03d2\u0002\u03d3\u0007\u03d3"+ + "\u0002\u03d4\u0007\u03d4\u0002\u03d5\u0007\u03d5\u0001\u0000\u0004\u0000"+ + "\u07af\b\u0000\u000b\u0000\f\u0000\u07b0\u0001\u0000\u0001\u0000\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u07ba"+ + "\b\u0001\u000b\u0001\f\u0001\u07bb\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0005\u0002\u07c7\b\u0002\n\u0002\f\u0002\u07ca\t\u0002\u0001\u0002\u0001"+ + "\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001"+ + "\u0003\u0001\u0003\u0003\u0003\u07d5\b\u0003\u0001\u0003\u0005\u0003\u07d8"+ + "\b\u0003\n\u0003\f\u0003\u07db\t\u0003\u0001\u0003\u0003\u0003\u07de\b"+ + "\u0003\u0001\u0003\u0001\u0003\u0003\u0003\u07e2\b\u0003\u0001\u0003\u0001"+ + "\u0003\u0001\u0003\u0001\u0003\u0003\u0003\u07e8\b\u0003\u0001\u0003\u0001"+ + "\u0003\u0003\u0003\u07ec\b\u0003\u0003\u0003\u07ee\b\u0003\u0001\u0003"+ + "\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0005"+ + "\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0006"+ + "\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001\u0007"+ + "\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001"+ + "\n\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001"+ + "\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001"+ + "\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+ + "\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+ + "\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001"+ + "\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+ + "\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+ + "\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001"+ + "\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001"+ + "\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001"+ + "\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001"+ + "\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001"+ + "\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+ + "\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+ + "\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001"+ + "\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+ + "\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001"+ + "\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001d\u0001"+ + "\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+ + "\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001"+ + "\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001"+ + "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+ + "\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 "+ + "\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ + "!\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001"+ + "#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001$\u0001$\u0001"+ + "$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001"+ + "\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001"+ + "(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+ + "(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001"+ + ")\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001"+ + "*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001-\u0001-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001"+ + ".\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+ + "0\u00010\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00012\u0001"+ + "2\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00013\u00014\u00014\u00014\u00014\u00014\u00014\u00015\u00015\u0001"+ + "5\u00015\u00015\u00015\u00016\u00016\u00016\u00016\u00017\u00017\u0001"+ + "7\u00017\u00017\u00017\u00018\u00018\u00018\u00018\u00018\u00018\u0001"+ + "8\u00018\u00019\u00019\u00019\u00019\u00019\u0001:\u0001:\u0001:\u0001"+ + ":\u0001:\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + ">\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001?\u0001"+ + "?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001A\u0001"+ + "A\u0001A\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001C\u0001C\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001D\u0001"+ + "D\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "G\u0001G\u0001G\u0001H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001"+ + "I\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001"+ + "K\u0001K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001"+ + "O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0001U\u0001U\u0001U\u0001U\u0001U\u0001"+ + "U\u0001V\u0001V\u0001V\u0001V\u0001V\u0001W\u0001W\u0001W\u0001W\u0001"+ + "W\u0001X\u0001X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001]\u0001]\u0001"+ + "]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001"+ + "_\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001"+ + "b\u0001b\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001d\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ + "e\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "h\u0001i\u0001i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001l\u0001"+ + "l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001"+ + "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001o\u0001o\u0001o\u0001"+ + "o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001q\u0001"+ + "q\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001"+ + "s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ + "s\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001u\u0001u\u0001"+ + "u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001v\u0001"+ + "v\u0001v\u0001v\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001z\u0001{\u0001{\u0001{\u0001{\u0001{\u0001"+ + "{\u0001{\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001}\u0001"+ + "}\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001~\u0001~\u0001"+ + "~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080"+ + "\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088"+ + "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090"+ + "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092"+ + "\u0001\u0092\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001\u0094"+ + "\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094"+ + "\u0001\u0094\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095"+ + "\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096\u0001\u0096\u0001\u0096"+ + "\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0097\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098"+ + "\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099"+ + "\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a"+ + "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c"+ + "\u0001\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009f"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u00a0"+ + "\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0"+ + "\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2"+ + "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3"+ + "\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a6\u0001\u00a6"+ + "\u0001\u00a6\u0001\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ + "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8"+ + "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ + "\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+ + "\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ + "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae"+ + "\u0001\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af"+ + "\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1"+ + "\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b5"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b8"+ + "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b9\u0001\u00b9"+ + "\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ + "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba"+ + "\u0001\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ + "\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bc"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ + "\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001\u00c3"+ + "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ + "\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c6"+ + "\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6"+ + "\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7"+ + "\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7"+ + "\u0001\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ + "\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ + "\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ + "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d1"+ + "\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3"+ + "\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4"+ + "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5"+ + "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5"+ + "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d7"+ + "\u0001\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d9"+ + "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da"+ + "\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00de"+ + "\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de"+ + "\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00e0"+ + "\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0"+ + "\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ + "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4"+ + "\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4"+ + "\u0001\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5"+ + "\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ + "\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ + "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7"+ + "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed"+ + "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ + "\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee"+ + "\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ef\u0001\u00ef"+ + "\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ + "\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ + "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1"+ + "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001\u00f2\u0001\u00f2"+ + "\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2"+ + "\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f3"+ + "\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3"+ + "\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ + "\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ + "\u0001\u00f5\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ + "\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ + "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f8\u0001\u00f8"+ + "\u0001\u00f8\u0001\u00f8\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa"+ + "\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa"+ + "\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb"+ + "\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb"+ + "\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc"+ + "\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc"+ + "\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd"+ + "\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd"+ + "\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd"+ + "\u0001\u00fd\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe"+ + "\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe"+ + "\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001\u00ff"+ + "\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001\u0100"+ + "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0101"+ + "\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0102\u0001\u0102\u0001\u0102"+ + "\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0103\u0001\u0103\u0001\u0103"+ + "\u0001\u0103\u0001\u0103\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104"+ + "\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0105\u0001\u0105"+ + "\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106"+ + "\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0107\u0001\u0107"+ + "\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107"+ + "\u0001\u0107\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108"+ + "\u0001\u0108\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109"+ + "\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001\u010a"+ + "\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010b"+ + "\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b"+ + "\u0001\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c"+ + "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001\u010d\u0001\u010d"+ + "\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010e\u0001\u010e"+ + "\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010f\u0001\u010f"+ + "\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f"+ + "\u0001\u010f\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ + "\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111"+ + "\u0001\u0111\u0001\u0111\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112"+ + "\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112"+ + "\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0113\u0001\u0113"+ + "\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113"+ + "\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114"+ + "\u0001\u0114\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115"+ + "\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0116\u0001\u0116\u0001\u0116"+ + "\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116"+ + "\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117"+ + "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117"+ + "\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118"+ + "\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118"+ + "\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119"+ + "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119"+ + "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a"+ + "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011b"+ + "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b"+ + "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011c\u0001\u011c"+ + "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c"+ + "\u0001\u011c\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d"+ + "\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011e\u0001\u011e\u0001\u011e"+ + "\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e"+ + "\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011f\u0001\u011f"+ + "\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001\u0120\u0001\u0120"+ + "\u0001\u0120\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121"+ + "\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122"+ + "\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0123\u0001\u0123\u0001\u0123"+ + "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ + "\u0001\u0123\u0001\u0123\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124"+ + "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124"+ + "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0126"+ + "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ + "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ + "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0127\u0001\u0127\u0001\u0127"+ + "\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127"+ + "\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0128\u0001\u0128"+ + "\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128"+ + "\u0001\u0128\u0001\u0128\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ + "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u012a\u0001\u012a"+ + "\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a"+ + "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012c"+ + "\u0001\u012c\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d"+ + "\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e"+ + "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ + "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012f\u0001\u012f\u0001\u012f"+ + "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u0130"+ + "\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130"+ + "\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131"+ + "\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0132"+ + "\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133\u0001\u0133"+ + "\u0001\u0133\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134"+ + "\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0135\u0001\u0135\u0001\u0135"+ + "\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0137"+ + "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137"+ + "\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138"+ + "\u0001\u0138\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139"+ + "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ + "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ + "\u0001\u013b\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c"+ + "\u0001\u013c\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d"+ + "\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u013f"+ + "\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u0140\u0001\u0140\u0001\u0140"+ + "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0141\u0001\u0141"+ + "\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141"+ + "\u0001\u0141\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142"+ + "\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142"+ + "\u0001\u0142\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143"+ + "\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144"+ + "\u0001\u0144\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ + "\u0001\u0145\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147"+ + "\u0001\u0147\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0148\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149"+ + "\u0001\u0149\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a"+ + "\u0001\u014a\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b"+ + "\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014c\u0001\u014c\u0001\u014c"+ + "\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014d\u0001\u014d\u0001\u014d"+ + "\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e"+ + "\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014f"+ + "\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f"+ + "\u0001\u014f\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151"+ + "\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0152\u0001\u0152\u0001\u0152"+ + "\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152"+ + "\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152"+ + "\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0153\u0001\u0153\u0001\u0153"+ + "\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0154"+ + "\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0155\u0001\u0155"+ + "\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0156\u0001\u0156\u0001\u0156"+ + "\u0001\u0156\u0001\u0156\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0157"+ + "\u0001\u0157\u0001\u0157\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158"+ + "\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158"+ + "\u0001\u0158\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ + "\u0001\u015a\u0001\u015a\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b"+ + "\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015c\u0001\u015c"+ + "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c"+ + "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015d"+ + "\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d"+ + "\u0001\u015d\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e"+ + "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e"+ + "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015f\u0001\u015f\u0001\u015f"+ + "\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u0160"+ + "\u0001\u0160\u0001\u0160\u0001\u0160\u0001\u0160\u0001\u0160\u0001\u0160"+ + "\u0001\u0160\u0001\u0160\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161"+ + "\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0162\u0001\u0162"+ + "\u0001\u0162\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163"+ + "\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0164"+ + "\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u0165\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166"+ + "\u0001\u0166\u0001\u0166\u0001\u0167\u0001\u0167\u0001\u0167\u0001\u0167"+ + "\u0001\u0167\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0169\u0001\u0169"+ + "\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169"+ + "\u0001\u0169\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ + "\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016f"+ + "\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u0170"+ + "\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170"+ + "\u0001\u0170\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171"+ + "\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0172"+ + "\u0001\u0172\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173"+ + "\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173"+ + "\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173"+ + "\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ + "\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ + "\u0001\u0175\u0001\u0175\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0176\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177"+ + "\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177"+ + "\u0001\u0177\u0001\u0177\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178"+ + "\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178"+ + "\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178"+ + "\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179"+ + "\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179"+ + "\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u017a\u0001\u017a\u0001\u017a"+ + "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ + "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ + "\u0001\u017a\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b"+ + "\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b"+ + "\u0001\u017b\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c"+ + "\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c"+ + "\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c"+ + "\u0001\u017c\u0001\u017c\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d"+ + "\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d"+ + "\u0001\u017d\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017f\u0001\u017f\u0001\u017f"+ + "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ + "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ + "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0180\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0181\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182"+ + "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182"+ + "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0183\u0001\u0183"+ + "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183"+ + "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183"+ + "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0184"+ + "\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184"+ + "\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184"+ + "\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185"+ + "\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185"+ + "\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0185"+ + "\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0188\u0001\u0188"+ + "\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188"+ + "\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188"+ + "\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188"+ + "\u0001\u0188\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u018a\u0001\u018a"+ + "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ + "\u0001\u018a\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b"+ + "\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b"+ + "\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b"+ + "\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d"+ + "\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e"+ + "\u0001\u018e\u0001\u018e\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f"+ + "\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190"+ + "\u0001\u0190\u0001\u0190\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ + "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0192"+ + "\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0193\u0001\u0193"+ + "\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0194"+ + "\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0195"+ + "\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0196"+ + "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0197\u0001\u0197"+ + "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0198\u0001\u0198"+ + "\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u019a\u0001\u019a"+ + "\u0001\u019a\u0001\u019a\u0001\u019a\u0001\u019b\u0001\u019b\u0001\u019b"+ + "\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c"+ + "\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019d\u0001\u019d"+ + "\u0001\u019d\u0001\u019d\u0001\u019d\u0001\u019e\u0001\u019e\u0001\u019e"+ + "\u0001\u019e\u0001\u019e\u0001\u019e\u0001\u019e\u0001\u019e\u0001\u019f"+ + "\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f"+ + "\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ + "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ + "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a2\u0001\u01a2"+ + "\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3"+ + "\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a4\u0001\u01a4\u0001\u01a4"+ + "\u0001\u01a4\u0001\u01a4\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a5"+ + "\u0001\u01a5\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a7"+ + "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ + "\u0001\u01a7\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ + "\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01aa"+ + "\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01ab\u0001\u01ab"+ + "\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ac"+ + "\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac"+ + "\u0001\u01ac\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad"+ + "\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad"+ + "\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af"+ + "\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01b0\u0001\u01b0"+ + "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b1\u0001\u01b1"+ + "\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b2"+ + "\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2"+ + "\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b3\u0001\u01b3"+ + "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ + "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb"+ + "\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bc"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bd"+ + "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01be"+ + "\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01bf"+ + "\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ + "\u0001\u01bf\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0"+ + "\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c5\u0001\u01c5\u0001\u01c5"+ + "\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5"+ + "\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c6"+ + "\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6"+ + "\u0001\u01c6\u0001\u01c6\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c7"+ + "\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9"+ + "\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01ca\u0001\u01ca\u0001\u01ca"+ + "\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca"+ + "\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca"+ + "\u0001\u01ca\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ + "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ + "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ + "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d2\u0001\u01d2"+ + "\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d3\u0001\u01d3"+ + "\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d4"+ + "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ + "\u0001\u01d4\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ + "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d6\u0001\u01d6"+ + "\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d7"+ + "\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7"+ + "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d9\u0001\u01d9"+ + "\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01da\u0001\u01da\u0001\u01da"+ + "\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da"+ + "\u0001\u01da\u0001\u01da\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db"+ + "\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db"+ + "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc"+ + "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dd\u0001\u01dd\u0001\u01dd"+ + "\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd"+ + "\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de"+ + "\u0001\u01de\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df"+ + "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01e0\u0001\u01e0\u0001\u01e0"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ + "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e2\u0001\u01e2"+ + "\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e3"+ + "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ + "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e6\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ + "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e8\u0001\u01e8\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01ea\u0001\u01ea\u0001\u01ea"+ + "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01eb\u0001\u01eb"+ + "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ + "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ + "\u0001\u01f0\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ + "\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ + "\u0001\u01f2\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ + "\u0001\u01f3\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4"+ + "\u0001\u01f4\u0001\u01f4\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ + "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ + "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ + "\u0001\u01f6\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8"+ + "\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f9\u0001\u01f9\u0001\u01f9"+ + "\u0001\u01f9\u0001\u01f9\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa"+ + "\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01ff\u0001\u01ff"+ + "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ + "\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200"+ + "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201"+ + "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0202\u0001\u0202\u0001\u0202"+ + "\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202"+ + "\u0001\u0202\u0001\u0202\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203"+ + "\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203"+ + "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204"+ + "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0205\u0001\u0205"+ + "\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0206\u0001\u0206\u0001\u0206"+ + "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206"+ + "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0208\u0001\u0208\u0001\u0208"+ + "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u020a\u0001\u020a\u0001\u020a"+ + "\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a"+ + "\u0001\u020a\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b"+ + "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020c\u0001\u020c"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020d\u0001\u020d\u0001\u020d"+ + "\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d"+ + "\u0001\u020d\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e"+ + "\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020f\u0001\u020f\u0001\u020f"+ + "\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u0210\u0001\u0210\u0001\u0210"+ + "\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0211"+ + "\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0212\u0001\u0212"+ + "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213"+ + "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213"+ + "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0214\u0001\u0214\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ + "\u0001\u0215\u0001\u0215\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ + "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ + "\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0218"+ + "\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0219\u0001\u0219"+ + "\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219"+ + "\u0001\u0219\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a"+ + "\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021b\u0001\u021b\u0001\u021b"+ + "\u0001\u021b\u0001\u021b\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c"+ + "\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021d\u0001\u021d"+ + "\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021e\u0001\u021e\u0001\u021e"+ + "\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u0220\u0001\u0220"+ + "\u0001\u0220\u0001\u0220\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ + "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0223\u0001\u0223"+ + "\u0001\u0223\u0001\u0223\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0225"+ + "\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0225"+ + "\u0001\u0225\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226"+ + "\u0001\u0226\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0228"+ + "\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0229\u0001\u0229"+ + "\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u022a"+ + "\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022b\u0001\u022b"+ + "\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022c"+ + "\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c"+ + "\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022d"+ + "\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d"+ + "\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e"+ + "\u0001\u022e\u0001\u022e\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f"+ + "\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u0230\u0001\u0230"+ + "\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0231\u0001\u0231\u0001\u0231"+ + "\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0232"+ + "\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232"+ + "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233"+ + "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0235\u0001\u0235\u0001\u0235"+ + "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ + "\u0001\u0235\u0001\u0235\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0236"+ + "\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0237"+ + "\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0238"+ + "\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0239\u0001\u0239"+ + "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u023a"+ + "\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a"+ + "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ + "\u0001\u023b\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023c"+ + "\u0001\u023c\u0001\u023c\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d"+ + "\u0001\u023d\u0001\u023d\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e"+ + "\u0001\u023e\u0001\u023e\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f"+ + "\u0001\u023f\u0001\u023f\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240"+ + "\u0001\u0240\u0001\u0240\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241"+ + "\u0001\u0241\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242"+ + "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0243\u0001\u0243\u0001\u0243"+ + "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0244\u0001\u0244\u0001\u0244"+ + "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0245\u0001\u0245"+ + "\u0001\u0245\u0001\u0245\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246"+ + "\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0247\u0001\u0247"+ + "\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0248\u0001\u0248"+ + "\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0249"+ + "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u024a\u0001\u024a\u0001\u024a"+ + "\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024b"+ + "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024c"+ + "\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024d"+ + "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ + "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ + "\u0001\u024e\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f"+ + "\u0001\u024f\u0001\u024f\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0250"+ + "\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0251\u0001\u0251\u0001\u0251"+ + "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0252\u0001\u0252\u0001\u0252"+ + "\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252"+ + "\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0254"+ + "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0255\u0001\u0255"+ + "\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0256"+ + "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0257\u0001\u0257"+ + "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0258\u0001\u0258\u0001\u0258"+ + "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0259\u0001\u0259\u0001\u0259"+ + "\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u025a"+ + "\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025b"+ + "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025c\u0001\u025c"+ + "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c"+ + "\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d"+ + "\u0001\u025d\u0001\u025d\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e"+ + "\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025f\u0001\u025f"+ + "\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f"+ + "\u0001\u025f\u0001\u025f\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0260"+ + "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261"+ + "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0262\u0001\u0262"+ + "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0263"+ + "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ + "\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264"+ + "\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0265"+ + "\u0001\u0265\u0001\u0265\u0001\u0265\u0001\u0265\u0001\u0265\u0001\u0265"+ + "\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0268\u0001\u0268\u0001\u0268"+ + "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268"+ + "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268"+ + "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u0269\u0001\u0269\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ + "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ + "\u0001\u026e\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u0270"+ + "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ + "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0271\u0001\u0271"+ + "\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271"+ + "\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0272"+ + "\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0275"+ + "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0276\u0001\u0276"+ + "\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276"+ + "\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277"+ + "\u0001\u0277\u0001\u0277\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0278\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ + "\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ + "\u0001\u0279\u0001\u0279\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027a"+ + "\u0001\u027a\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b"+ + "\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027c\u0001\u027c"+ + "\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027d\u0001\u027d\u0001\u027d"+ + "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027e\u0001\u027e"+ + "\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027f\u0001\u027f"+ + "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u0280\u0001\u0280"+ + "\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280"+ + "\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280"+ + "\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0281"+ + "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ + "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ + "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0282"+ + "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282"+ + "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282"+ + "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282"+ + "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0284\u0001\u0284"+ + "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ + "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ + "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0285\u0001\u0285"+ + "\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0286\u0001\u0286\u0001\u0286"+ + "\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0287\u0001\u0287\u0001\u0287"+ + "\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287"+ + "\u0001\u0287\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0289"+ + "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289"+ + "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u028a\u0001\u028a\u0001\u028a"+ + "\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a"+ + "\u0001\u028a\u0001\u028a\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f"+ + "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f"+ + "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f"+ + "\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290"+ + "\u0001\u0290\u0001\u0290\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291"+ + "\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291"+ + "\u0001\u0291\u0001\u0291\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ + "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ + "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0293\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294"+ + "\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0295\u0001\u0295"+ + "\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0296"+ + "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296"+ + "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0297\u0001\u0297\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0298"+ + "\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u029a\u0001\u029a\u0001\u029a"+ + "\u0001\u029a\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029c"+ + "\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029d"+ + "\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ + "\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ + "\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ + "\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ + "\u0001\u029d\u0001\u029d\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029f\u0001\u029f"+ + "\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f"+ + "\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f"+ + "\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f"+ + "\u0001\u029f\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ + "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ + "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a1\u0001\u02a1\u0001\u02a1"+ + "\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3"+ + "\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3"+ + "\u0001\u02a3\u0001\u02a3\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4"+ + "\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a5\u0001\u02a5"+ + "\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5"+ + "\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ + "\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ + "\u0001\u02a6\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7"+ + "\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a8"+ + "\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8"+ + "\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9"+ + "\u0001\u02a9\u0001\u02a9\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa"+ + "\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa"+ + "\u0001\u02aa\u0001\u02aa\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab"+ + "\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab"+ + "\u0001\u02ab\u0001\u02ab\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac"+ + "\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ + "\u0001\u02ae\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ + "\u0001\u02af\u0001\u02af\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ + "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b1\u0001\u02b1"+ + "\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1"+ + "\u0001\u02b1\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2"+ + "\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b3\u0001\u02b3"+ + "\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b4"+ + "\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b5\u0001\u02b5\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ + "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ + "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b8\u0001\u02b8"+ + "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b9\u0001\u02b9"+ + "\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9"+ + "\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02ba\u0001\u02ba"+ + "\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02bb\u0001\u02bb"+ + "\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bc"+ + "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ + "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02be\u0001\u02be"+ + "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ + "\u0001\u02be\u0001\u02be\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ + "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ + "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c5"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ + "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ + "\u0001\u02c6\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ + "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ + "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c9\u0001\u02c9\u0001\u02c9"+ + "\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9"+ + "\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ + "\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ + "\u0001\u02ca\u0001\u02ca\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ + "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cc"+ + "\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc"+ + "\u0001\u02cc\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ + "\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02ce\u0001\u02ce"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02cf\u0001\u02cf"+ + "\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ + "\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ + "\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d1\u0001\u02d1"+ + "\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d2"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d3\u0001\u02d3"+ + "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ + "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d4\u0001\u02d4\u0001\u02d4"+ + "\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4"+ + "\u0001\u02d4\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d6"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8"+ + "\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8"+ + "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9"+ + "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02da\u0001\u02da\u0001\u02da"+ + "\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02db"+ + "\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db"+ + "\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc"+ + "\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dd\u0001\u02dd\u0001\u02dd"+ + "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd"+ + "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02de\u0001\u02de"+ + "\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de"+ + "\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df"+ + "\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df"+ + "\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ + "\u0001\u02e1\u0001\u02e1\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4"+ + "\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ + "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6"+ + "\u0001\u02e6\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7"+ + "\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7"+ + "\u0001\u02e7\u0001\u02e7\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8"+ + "\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8"+ + "\u0001\u02e8\u0001\u02e8\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ + "\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ + "\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ + "\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ + "\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ + "\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ + "\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02eb\u0001\u02eb\u0001\u02eb"+ + "\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec"+ + "\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ed\u0001\u02ed"+ + "\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ee"+ + "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ef\u0001\u02ef\u0001\u02ef"+ + "\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02f0\u0001\u02f0\u0001\u02f0"+ + "\u0001\u02f0\u0001\u02f0\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1"+ + "\u0001\u02f1\u0001\u02f1\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ + "\u0001\u02f3\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4"+ + "\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f5\u0001\u02f5"+ + "\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5"+ + "\u0001\u02f5\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6"+ + "\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f7\u0001\u02f7"+ + "\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ + "\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ + "\u0001\u02f7\u0001\u02f7\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8"+ + "\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8"+ + "\u0001\u02f8\u0001\u02f8\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9"+ + "\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9"+ + "\u0001\u02f9\u0001\u02f9\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa"+ + "\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fb"+ + "\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb"+ + "\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb"+ + "\u0001\u02fb\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc"+ + "\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc"+ + "\u0001\u02fc\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd"+ + "\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd"+ + "\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe"+ + "\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02ff\u0001\u02ff"+ + "\u0001\u02ff\u0001\u02ff\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300"+ + "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300"+ + "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0301\u0001\u0301"+ + "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301"+ + "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0302"+ + "\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302"+ + "\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0303\u0001\u0303\u0001\u0303"+ + "\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ + "\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ + "\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ + "\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ + "\u0001\u0304\u0001\u0304\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305"+ + "\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305"+ + "\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0306\u0001\u0306"+ + "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306"+ + "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0307"+ + "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ + "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ + "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ + "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0308"+ + "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ + "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ + "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ + "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0309\u0001\u0309"+ + "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309"+ + "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309"+ + "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u030a"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030b"+ + "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030b\u0001\u030b\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c"+ + "\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c"+ + "\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c"+ + "\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030d\u0001\u030d"+ + "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d"+ + "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030e\u0001\u030e\u0001\u030e"+ + "\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030f\u0001\u030f"+ + "\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ + "\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ + "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310"+ + "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310"+ + "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0311"+ + "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ + "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0312\u0001\u0312\u0001\u0312"+ + "\u0001\u0312\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313"+ + "\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313"+ + "\u0001\u0313\u0001\u0313\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0314"+ + "\u0001\u0315\u0001\u0315\u0001\u0315\u0001\u0315\u0001\u0315\u0001\u0315"+ + "\u0001\u0315\u0001\u0315\u0001\u0315\u0001\u0316\u0001\u0316\u0001\u0316"+ + "\u0001\u0316\u0001\u0316\u0001\u0316\u0001\u0316\u0001\u0316\u0001\u0316"+ + "\u0001\u0316\u0001\u0316\u0001\u0317\u0001\u0317\u0001\u0317\u0001\u0317"+ + "\u0001\u0317\u0001\u0317\u0001\u0317\u0001\u0317\u0001\u0317\u0001\u0317"+ + "\u0001\u0317\u0001\u0317\u0001\u0318\u0001\u0318\u0001\u0318\u0001\u0319"+ + "\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u0319"+ + "\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u0319"+ + "\u0001\u0319\u0001\u031a\u0001\u031a\u0001\u031a\u0001\u031a\u0001\u031a"+ + "\u0001\u031a\u0001\u031a\u0001\u031a\u0001\u031a\u0001\u031a\u0001\u031a"+ + "\u0001\u031a\u0001\u031a\u0001\u031b\u0001\u031b\u0001\u031b\u0001\u031b"+ + "\u0001\u031b\u0001\u031b\u0001\u031b\u0001\u031c\u0001\u031c\u0001\u031c"+ + "\u0001\u031c\u0001\u031c\u0001\u031c\u0001\u031c\u0001\u031c\u0001\u031c"+ + "\u0001\u031c\u0001\u031c\u0001\u031c\u0001\u031c\u0001\u031d\u0001\u031d"+ + "\u0001\u031d\u0001\u031d\u0001\u031d\u0001\u031d\u0001\u031d\u0001\u031d"+ + "\u0001\u031d\u0001\u031d\u0001\u031d\u0001\u031d\u0001\u031e\u0001\u031e"+ + "\u0001\u031e\u0001\u031e\u0001\u031e\u0001\u031e\u0001\u031e\u0001\u031e"+ + "\u0001\u031e\u0001\u031e\u0001\u031e\u0001\u031e\u0001\u031e\u0001\u031e"+ + "\u0001\u031e\u0001\u031e\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u031f"+ + "\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u031f"+ + "\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u031f\u0001\u0320"+ + "\u0001\u0320\u0001\u0320\u0001\u0320\u0001\u0321\u0001\u0321\u0001\u0321"+ + "\u0001\u0321\u0001\u0321\u0001\u0321\u0001\u0322\u0001\u0322\u0001\u0322"+ + "\u0001\u0322\u0001\u0322\u0001\u0322\u0001\u0323\u0001\u0323\u0001\u0323"+ + "\u0001\u0323\u0001\u0323\u0001\u0323\u0001\u0323\u0001\u0323\u0001\u0324"+ + "\u0001\u0324\u0001\u0324\u0001\u0324\u0001\u0324\u0001\u0325\u0001\u0325"+ + "\u0001\u0325\u0001\u0325\u0001\u0325\u0001\u0325\u0001\u0325\u0001\u0325"+ + "\u0001\u0325\u0001\u0325\u0001\u0325\u0001\u0325\u0001\u0325\u0001\u0326"+ + "\u0001\u0326\u0001\u0326\u0001\u0326\u0001\u0326\u0001\u0326\u0001\u0326"+ + "\u0001\u0326\u0001\u0326\u0001\u0326\u0001\u0326\u0001\u0326\u0001\u0326"+ + "\u0001\u0327\u0001\u0327\u0001\u0327\u0001\u0327\u0001\u0327\u0001\u0327"+ + "\u0001\u0327\u0001\u0327\u0001\u0328\u0001\u0328\u0001\u0328\u0001\u0328"+ + "\u0001\u0328\u0001\u0328\u0001\u0329\u0001\u0329\u0001\u0329\u0001\u0329"+ + "\u0001\u0329\u0001\u0329\u0001\u0329\u0001\u0329\u0001\u0329\u0001\u0329"+ + "\u0001\u032a\u0001\u032a\u0001\u032a\u0001\u032a\u0001\u032a\u0001\u032b"+ + "\u0001\u032b\u0001\u032b\u0001\u032b\u0001\u032b\u0001\u032b\u0001\u032c"+ + "\u0001\u032c\u0001\u032c\u0001\u032c\u0001\u032c\u0001\u032c\u0001\u032c"+ + "\u0001\u032c\u0001\u032c\u0001\u032c\u0001\u032c\u0001\u032c\u0001\u032d"+ + "\u0001\u032d\u0001\u032d\u0001\u032d\u0001\u032d\u0001\u032d\u0001\u032d"+ + "\u0001\u032d\u0001\u032d\u0001\u032d\u0001\u032d\u0001\u032d\u0001\u032d"+ + "\u0001\u032e\u0001\u032e\u0001\u032e\u0001\u032e\u0001\u032f\u0001\u032f"+ + "\u0001\u032f\u0001\u032f\u0001\u032f\u0001\u0330\u0001\u0330\u0001\u0330"+ + "\u0001\u0330\u0001\u0330\u0001\u0331\u0001\u0331\u0001\u0331\u0001\u0331"+ + "\u0001\u0331\u0001\u0332\u0001\u0332\u0001\u0332\u0001\u0332\u0001\u0333"+ + "\u0001\u0333\u0001\u0333\u0001\u0333\u0001\u0333\u0001\u0333\u0001\u0334"+ + "\u0001\u0334\u0001\u0334\u0001\u0334\u0001\u0334\u0001\u0334\u0001\u0334"+ + "\u0001\u0334\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335"+ + "\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335"+ + "\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335"+ + "\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335"+ + "\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0335\u0001\u0336"+ + "\u0001\u0336\u0001\u0336\u0001\u0336\u0001\u0336\u0001\u0337\u0001\u0337"+ + "\u0001\u0337\u0001\u0337\u0001\u0337\u0001\u0338\u0001\u0338\u0001\u0338"+ + "\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0338"+ + "\u0001\u0338\u0001\u0338\u0001\u0339\u0001\u0339\u0001\u0339\u0001\u0339"+ + "\u0001\u0339\u0001\u0339\u0001\u0339\u0001\u033a\u0001\u033a\u0001\u033a"+ + "\u0001\u033a\u0001\u033a\u0001\u033a\u0001\u033a\u0001\u033a\u0001\u033a"+ + "\u0001\u033a\u0001\u033a\u0001\u033a\u0001\u033b\u0001\u033b\u0001\u033b"+ + "\u0001\u033b\u0001\u033b\u0001\u033b\u0001\u033b\u0001\u033b\u0001\u033c"+ + "\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033c"+ + "\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033d"+ + "\u0001\u033d\u0001\u033d\u0001\u033d\u0001\u033d\u0001\u033d\u0001\u033d"+ + "\u0001\u033d\u0001\u033d\u0001\u033d\u0001\u033e\u0001\u033e\u0001\u033e"+ + "\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033e"+ + "\u0001\u033f\u0001\u033f\u0001\u033f\u0001\u033f\u0001\u033f\u0001\u033f"+ + "\u0001\u033f\u0001\u033f\u0001\u033f\u0001\u0340\u0001\u0340\u0001\u0340"+ + "\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340"+ + "\u0001\u0340\u0001\u0341\u0001\u0341\u0001\u0341\u0001\u0341\u0001\u0341"+ + "\u0001\u0341\u0001\u0341\u0001\u0341\u0001\u0341\u0001\u0341\u0001\u0341"+ + "\u0001\u0341\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0342"+ + "\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0342"+ + "\u0001\u0342\u0001\u0343\u0001\u0343\u0001\u0343\u0001\u0343\u0001\u0343"+ + "\u0001\u0343\u0001\u0343\u0001\u0343\u0001\u0343\u0001\u0343\u0001\u0343"+ + "\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0344"+ + "\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0344"+ + "\u0001\u0344\u0001\u0344\u0001\u0345\u0001\u0345\u0001\u0345\u0001\u0345"+ + "\u0001\u0345\u0001\u0345\u0001\u0345\u0001\u0345\u0001\u0345\u0001\u0345"+ + "\u0001\u0345\u0001\u0345\u0001\u0345\u0001\u0346\u0001\u0346\u0001\u0346"+ + "\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0346"+ + "\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0347\u0001\u0347\u0001\u0347"+ + "\u0001\u0347\u0001\u0347\u0001\u0347\u0001\u0347\u0001\u0347\u0001\u0347"+ + "\u0001\u0347\u0001\u0347\u0001\u0347\u0001\u0348\u0001\u0348\u0001\u0348"+ + "\u0001\u0348\u0001\u0348\u0001\u0348\u0001\u0348\u0001\u0348\u0001\u0348"+ + "\u0001\u0348\u0001\u0348\u0001\u0348\u0001\u0349\u0001\u0349\u0001\u0349"+ + "\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u0349"+ + "\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u034a\u0001\u034a\u0001\u034a"+ + "\u0001\u034a\u0001\u034a\u0001\u034a\u0001\u034a\u0001\u034a\u0001\u034a"+ + "\u0001\u034a\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b"+ + "\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b"+ + "\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034b\u0001\u034c"+ + "\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c"+ + "\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c"+ + "\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c\u0001\u034c"+ + "\u0001\u034c\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d"+ + "\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d"+ + "\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d\u0001\u034d"+ + "\u0001\u034d\u0001\u034d\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e"+ + "\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e"+ + "\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e"+ + "\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034f\u0001\u034f\u0001\u034f"+ + "\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f"+ + "\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f"+ + "\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f"+ + "\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u034f"+ + "\u0001\u034f\u0001\u034f\u0001\u034f\u0001\u0350\u0001\u0350\u0001\u0350"+ + "\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350"+ + "\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350"+ + "\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350"+ + "\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350\u0001\u0350"+ + "\u0001\u0350\u0001\u0350\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351"+ + "\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351"+ + "\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351"+ + "\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0351\u0001\u0352\u0001\u0352"+ + "\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352"+ + "\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352"+ + "\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0353"+ + "\u0001\u0353\u0001\u0353\u0001\u0353\u0001\u0353\u0001\u0353\u0001\u0353"+ + "\u0001\u0353\u0001\u0353\u0001\u0353\u0001\u0353\u0001\u0353\u0001\u0353"+ + "\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354"+ + "\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354"+ + "\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0355\u0001\u0355"+ + "\u0001\u0355\u0001\u0355\u0001\u0355\u0001\u0355\u0001\u0355\u0001\u0355"+ + "\u0001\u0355\u0001\u0355\u0001\u0355\u0001\u0355\u0001\u0355\u0001\u0355"+ + "\u0001\u0355\u0001\u0355\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0356"+ + "\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0356"+ + "\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0357"+ + "\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357"+ + "\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357"+ + "\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0357\u0001\u0358\u0001\u0358"+ + "\u0001\u0358\u0001\u0358\u0001\u0358\u0001\u0358\u0001\u0358\u0001\u0358"+ + "\u0001\u0358\u0001\u0358\u0001\u0358\u0001\u0358\u0001\u0358\u0001\u0358"+ + "\u0001\u0358\u0001\u0358\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359"+ + "\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359"+ + "\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u035a\u0001\u035a"+ + "\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a"+ + "\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035b\u0001\u035b"+ + "\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035b"+ + "\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035c\u0001\u035c\u0001\u035c"+ + "\u0001\u035c\u0001\u035c\u0001\u035c\u0001\u035c\u0001\u035c\u0001\u035c"+ + "\u0001\u035c\u0001\u035c\u0001\u035c\u0001\u035d\u0001\u035d\u0001\u035d"+ + "\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d"+ + "\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d"+ + "\u0001\u035d\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035e"+ + "\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035e"+ + "\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035e\u0001\u035f\u0001\u035f"+ + "\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f"+ + "\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f"+ + "\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u035f"+ + "\u0001\u035f\u0001\u035f\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360"+ + "\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360"+ + "\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360"+ + "\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0360\u0001\u0361"+ + "\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361"+ + "\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361"+ + "\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0361\u0001\u0362\u0001\u0362"+ + "\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362"+ + "\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362"+ + "\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0362\u0001\u0363"+ + "\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363"+ + "\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363"+ + "\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363\u0001\u0363"+ + "\u0001\u0363\u0001\u0364\u0001\u0364\u0001\u0364\u0001\u0364\u0001\u0364"+ + "\u0001\u0364\u0001\u0364\u0001\u0364\u0001\u0364\u0001\u0364\u0001\u0364"+ + "\u0001\u0364\u0001\u0364\u0001\u0365\u0001\u0365\u0001\u0365\u0001\u0365"+ + "\u0001\u0365\u0001\u0365\u0001\u0365\u0001\u0365\u0001\u0365\u0001\u0365"+ + "\u0001\u0365\u0001\u0365\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366"+ + "\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366"+ + "\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366\u0001\u0366"+ + "\u0001\u0366\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367"+ + "\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367"+ + "\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0367\u0001\u0368"+ + "\u0001\u0368\u0001\u0368\u0001\u0368\u0001\u0368\u0001\u0368\u0001\u0368"+ + "\u0001\u0368\u0001\u0368\u0001\u0368\u0001\u0369\u0001\u0369\u0001\u0369"+ + "\u0001\u0369\u0001\u0369\u0001\u0369\u0001\u0369\u0001\u0369\u0001\u0369"+ + "\u0001\u0369\u0001\u0369\u0001\u0369\u0001\u0369\u0001\u0369\u0001\u0369"+ + "\u0001\u0369\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036a"+ + "\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036a"+ + "\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036a\u0001\u036b\u0001\u036b"+ + "\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b"+ + "\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b"+ + "\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036b\u0001\u036c"+ + "\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c"+ + "\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c"+ + "\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036c\u0001\u036d"+ + "\u0001\u036d\u0001\u036d\u0001\u036d\u0001\u036d\u0001\u036d\u0001\u036d"+ + "\u0001\u036d\u0001\u036e\u0001\u036e\u0001\u036e\u0001\u036e\u0001\u036e"+ + "\u0001\u036e\u0001\u036e\u0001\u036e\u0001\u036e\u0001\u036e\u0001\u036e"+ + "\u0001\u036e\u0001\u036e\u0001\u036e\u0001\u036f\u0001\u036f\u0001\u036f"+ + "\u0001\u036f\u0001\u036f\u0001\u036f\u0001\u036f\u0001\u036f\u0001\u036f"+ + "\u0001\u036f\u0001\u036f\u0001\u036f\u0001\u036f\u0001\u036f\u0001\u036f"+ + "\u0001\u036f\u0001\u036f\u0001\u0370\u0001\u0370\u0001\u0370\u0001\u0370"+ + "\u0001\u0370\u0001\u0370\u0001\u0370\u0001\u0370\u0001\u0370\u0001\u0370"+ + "\u0001\u0370\u0001\u0371\u0001\u0371\u0001\u0371\u0001\u0371\u0001\u0371"+ + "\u0001\u0371\u0001\u0371\u0001\u0371\u0001\u0371\u0001\u0372\u0001\u0372"+ + "\u0001\u0372\u0001\u0372\u0001\u0372\u0001\u0372\u0001\u0372\u0001\u0372"+ + "\u0001\u0372\u0001\u0372\u0001\u0373\u0001\u0373\u0001\u0373\u0001\u0373"+ + "\u0001\u0373\u0001\u0374\u0001\u0374\u0001\u0374\u0001\u0374\u0001\u0374"+ + "\u0001\u0375\u0001\u0375\u0001\u0375\u0001\u0375\u0001\u0375\u0001\u0375"+ + "\u0001\u0375\u0001\u0375\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376"+ + "\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376"+ + "\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376\u0001\u0376"+ + "\u0001\u0377\u0001\u0377\u0001\u0377\u0001\u0377\u0001\u0377\u0001\u0377"+ + "\u0001\u0377\u0001\u0377\u0001\u0378\u0001\u0378\u0001\u0378\u0001\u0378"+ + "\u0001\u0378\u0001\u0378\u0001\u0378\u0001\u0378\u0001\u0378\u0001\u0378"+ + "\u0001\u0378\u0001\u0378\u0001\u0379\u0001\u0379\u0001\u0379\u0001\u0379"+ + "\u0001\u037a\u0001\u037a\u0001\u037a\u0001\u037a\u0001\u037a\u0001\u037a"+ + "\u0001\u037a\u0001\u037a\u0001\u037a\u0001\u037b\u0001\u037b\u0001\u037b"+ + "\u0001\u037b\u0001\u037b\u0001\u037b\u0001\u037b\u0001\u037b\u0001\u037b"+ + "\u0001\u037b\u0001\u037b\u0001\u037b\u0001\u037b\u0001\u037c\u0001\u037c"+ + "\u0001\u037c\u0001\u037c\u0001\u037c\u0001\u037c\u0001\u037c\u0001\u037c"+ + "\u0001\u037c\u0001\u037c\u0001\u037c\u0001\u037c\u0001\u037c\u0001\u037c"+ + "\u0001\u037d\u0001\u037d\u0001\u037d\u0001\u037d\u0001\u037d\u0001\u037d"+ + "\u0001\u037d\u0001\u037d\u0001\u037d\u0001\u037d\u0001\u037d\u0001\u037d"+ + "\u0001\u037e\u0001\u037e\u0001\u037e\u0001\u037e\u0001\u037e\u0001\u037e"+ + "\u0001\u037e\u0001\u037e\u0001\u037e\u0001\u037e\u0001\u037e\u0001\u037e"+ + "\u0001\u037f\u0001\u037f\u0001\u037f\u0001\u037f\u0001\u037f\u0001\u037f"+ + "\u0001\u037f\u0001\u037f\u0001\u0380\u0001\u0380\u0001\u0380\u0001\u0380"+ + "\u0001\u0380\u0001\u0380\u0001\u0380\u0001\u0380\u0001\u0380\u0001\u0380"+ + "\u0001\u0381\u0001\u0381\u0001\u0381\u0001\u0381\u0001\u0381\u0001\u0381"+ + "\u0001\u0381\u0001\u0381\u0001\u0382\u0001\u0382\u0001\u0382\u0001\u0382"+ + "\u0001\u0382\u0001\u0382\u0001\u0382\u0001\u0382\u0001\u0382\u0001\u0382"+ + "\u0001\u0382\u0001\u0383\u0001\u0383\u0001\u0383\u0001\u0383\u0001\u0383"+ + "\u0001\u0383\u0001\u0384\u0001\u0384\u0001\u0384\u0001\u0384\u0001\u0384"+ + "\u0001\u0384\u0001\u0384\u0001\u0384\u0001\u0384\u0001\u0384\u0001\u0384"+ + "\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385"+ + "\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385"+ + "\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385\u0001\u0385"+ + "\u0001\u0385\u0001\u0385\u0001\u0386\u0001\u0386\u0001\u0386\u0001\u0386"+ + "\u0001\u0386\u0001\u0386\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0387"+ + "\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0387"+ + "\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0387\u0001\u0388"+ + "\u0001\u0388\u0001\u0388\u0001\u0388\u0001\u0388\u0001\u0388\u0001\u0388"+ + "\u0001\u0388\u0001\u0388\u0001\u0388\u0001\u0389\u0001\u0389\u0001\u0389"+ + "\u0001\u0389\u0001\u0389\u0001\u0389\u0001\u038a\u0001\u038a\u0001\u038a"+ + "\u0001\u038a\u0001\u038a\u0001\u038b\u0001\u038b\u0001\u038b\u0001\u038b"+ + "\u0001\u038b\u0001\u038b\u0001\u038b\u0001\u038b\u0001\u038b\u0001\u038b"+ + "\u0001\u038b\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c"+ + "\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c"+ + "\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c"+ + "\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c"+ + "\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038c\u0001\u038d\u0001\u038d"+ + "\u0001\u038d\u0001\u038d\u0001\u038d\u0001\u038d\u0001\u038d\u0001\u038d"+ + "\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e"+ + "\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e"+ + "\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e"+ + "\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e"+ + "\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e"+ + "\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038e\u0001\u038f\u0001\u038f"+ + "\u0001\u038f\u0001\u038f\u0001\u038f\u0001\u038f\u0001\u038f\u0001\u038f"+ + "\u0001\u0390\u0001\u0390\u0001\u0390\u0001\u0390\u0001\u0390\u0001\u0390"+ + "\u0001\u0390\u0001\u0390\u0001\u0390\u0001\u0390\u0001\u0390\u0001\u0391"+ + "\u0001\u0391\u0001\u0391\u0001\u0391\u0001\u0391\u0001\u0391\u0001\u0391"+ + "\u0001\u0391\u0001\u0391\u0001\u0391\u0001\u0391\u0001\u0391\u0001\u0391"+ + "\u0001\u0391\u0001\u0392\u0001\u0392\u0001\u0392\u0001\u0392\u0001\u0392"+ + "\u0001\u0392\u0001\u0392\u0001\u0393\u0001\u0393\u0001\u0393\u0001\u0393"+ + "\u0001\u0393\u0001\u0393\u0001\u0393\u0001\u0393\u0001\u0393\u0001\u0394"+ + "\u0001\u0394\u0001\u0395\u0001\u0395\u0001\u0396\u0001\u0396\u0001\u0396"+ + "\u0001\u0397\u0001\u0397\u0001\u0397\u0001\u0398\u0001\u0398\u0001\u0398"+ + "\u0001\u0399\u0001\u0399\u0001\u0399\u0001\u039a\u0001\u039a\u0001\u039a"+ + "\u0001\u039b\u0001\u039b\u0001\u039b\u0001\u039c\u0001\u039c\u0001\u039c"+ + "\u0001\u039d\u0001\u039d\u0001\u039d\u0001\u039e\u0001\u039e\u0001\u039e"+ + "\u0001\u039f\u0001\u039f\u0001\u03a0\u0001\u03a0\u0001\u03a1\u0001\u03a1"+ + "\u0001\u03a2\u0001\u03a2\u0001\u03a3\u0001\u03a3\u0001\u03a3\u0001\u03a4"+ + "\u0001\u03a4\u0001\u03a5\u0001\u03a5\u0001\u03a5\u0001\u03a5\u0001\u03a6"+ + "\u0001\u03a6\u0001\u03a6\u0001\u03a6\u0001\u03a7\u0001\u03a7\u0001\u03a8"+ + "\u0001\u03a8\u0001\u03a9\u0001\u03a9\u0001\u03aa\u0001\u03aa\u0001\u03ab"+ + "\u0001\u03ab\u0001\u03ac\u0001\u03ac\u0001\u03ad\u0001\u03ad\u0001\u03ae"+ + "\u0001\u03ae\u0001\u03af\u0001\u03af\u0001\u03b0\u0001\u03b0\u0001\u03b1"+ + "\u0001\u03b1\u0001\u03b2\u0001\u03b2\u0001\u03b3\u0001\u03b3\u0001\u03b4"+ + "\u0001\u03b4\u0001\u03b5\u0001\u03b5\u0001\u03b6\u0001\u03b6\u0001\u03b7"+ + "\u0001\u03b7\u0001\u03b8\u0001\u03b8\u0001\u03b9\u0001\u03b9\u0001\u03ba"+ + "\u0001\u03ba\u0001\u03bb\u0001\u03bb\u0001\u03bc\u0001\u03bc\u0001\u03bc"+ + "\u0001\u03bc\u0001\u03bd\u0004\u03bd\u29ec\b\u03bd\u000b\u03bd\f\u03bd"+ + "\u29ed\u0001\u03bd\u0001\u03bd\u0001\u03be\u0001\u03be\u0001\u03be\u0001"+ + "\u03bf\u0001\u03bf\u0003\u03bf\u29f7\b\u03bf\u0001\u03c0\u0004\u03c0\u29fa"+ + "\b\u03c0\u000b\u03c0\f\u03c0\u29fb\u0001\u03c1\u0001\u03c1\u0001\u03c1"+ + "\u0001\u03c1\u0001\u03c1\u0004\u03c1\u2a03\b\u03c1\u000b\u03c1\f\u03c1"+ + "\u2a04\u0001\u03c1\u0001\u03c1\u0001\u03c1\u0001\u03c1\u0001\u03c1\u0001"+ + "\u03c1\u0004\u03c1\u2a0d\b\u03c1\u000b\u03c1\f\u03c1\u2a0e\u0003\u03c1"+ + "\u2a11\b\u03c1\u0001\u03c2\u0004\u03c2\u2a14\b\u03c2\u000b\u03c2\f\u03c2"+ + "\u2a15\u0003\u03c2\u2a18\b\u03c2\u0001\u03c2\u0001\u03c2\u0004\u03c2\u2a1c"+ + "\b\u03c2\u000b\u03c2\f\u03c2\u2a1d\u0001\u03c2\u0004\u03c2\u2a21\b\u03c2"+ + "\u000b\u03c2\f\u03c2\u2a22\u0001\u03c2\u0001\u03c2\u0001\u03c2\u0001\u03c2"+ + "\u0004\u03c2\u2a29\b\u03c2\u000b\u03c2\f\u03c2\u2a2a\u0003\u03c2\u2a2d"+ + "\b\u03c2\u0001\u03c2\u0001\u03c2\u0004\u03c2\u2a31\b\u03c2\u000b\u03c2"+ + "\f\u03c2\u2a32\u0001\u03c2\u0001\u03c2\u0001\u03c2\u0004\u03c2\u2a38\b"+ + "\u03c2\u000b\u03c2\f\u03c2\u2a39\u0001\u03c2\u0001\u03c2\u0003\u03c2\u2a3e"+ + "\b\u03c2\u0001\u03c3\u0001\u03c3\u0001\u03c3\u0001\u03c4\u0001\u03c4\u0001"+ + "\u03c5\u0001\u03c5\u0001\u03c5\u0001\u03c6\u0001\u03c6\u0001\u03c6\u0001"+ + "\u03c7\u0001\u03c7\u0001\u03c8\u0001\u03c8\u0004\u03c8\u2a4f\b\u03c8\u000b"+ + "\u03c8\f\u03c8\u2a50\u0001\u03c8\u0001\u03c8\u0001\u03c9\u0001\u03c9\u0001"+ + "\u03c9\u0001\u03c9\u0003\u03c9\u2a59\b\u03c9\u0001\u03c9\u0001\u03c9\u0001"+ + "\u03c9\u0001\u03c9\u0001\u03c9\u0003\u03c9\u2a60\b\u03c9\u0001\u03ca\u0001"+ + "\u03ca\u0004\u03ca\u2a64\b\u03ca\u000b\u03ca\f\u03ca\u2a65\u0001\u03ca"+ + "\u0001\u03ca\u0001\u03ca\u0003\u03ca\u2a6b\b\u03ca\u0001\u03cb\u0001\u03cb"+ + "\u0001\u03cb\u0004\u03cb\u2a70\b\u03cb\u000b\u03cb\f\u03cb\u2a71\u0001"+ + "\u03cb\u0003\u03cb\u2a75\b\u03cb\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"+ + "\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"+ + "\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"+ + "\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"+ + "\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"; + private static final String _serializedATNSegment1 = + "\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"+ + "\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001\u03cc\u0001"+ + "\u03cc\u0001\u03cc\u0001\u03cc\u0003\u03cc\u2a9f\b\u03cc\u0001\u03cd\u0001"+ + "\u03cd\u0003\u03cd\u2aa3\b\u03cd\u0001\u03cd\u0004\u03cd\u2aa6\b\u03cd"+ + "\u000b\u03cd\f\u03cd\u2aa7\u0001\u03ce\u0005\u03ce\u2aab\b\u03ce\n\u03ce"+ + "\f\u03ce\u2aae\t\u03ce\u0001\u03ce\u0004\u03ce\u2ab1\b\u03ce\u000b\u03ce"+ + "\f\u03ce\u2ab2\u0001\u03ce\u0005\u03ce\u2ab6\b\u03ce\n\u03ce\f\u03ce\u2ab9"+ + "\t\u03ce\u0001\u03cf\u0001\u03cf\u0001\u03cf\u0001\u03cf\u0001\u03cf\u0001"+ + "\u03cf\u0005\u03cf\u2ac1\b\u03cf\n\u03cf\f\u03cf\u2ac4\t\u03cf\u0001\u03cf"+ + "\u0001\u03cf\u0001\u03d0\u0001\u03d0\u0001\u03d0\u0001\u03d0\u0001\u03d0"+ + "\u0001\u03d0\u0005\u03d0\u2ace\b\u03d0\n\u03d0\f\u03d0\u2ad1\t\u03d0\u0001"+ + "\u03d0\u0001\u03d0\u0001\u03d1\u0001\u03d1\u0001\u03d1\u0001\u03d1\u0001"+ + "\u03d1\u0001\u03d1\u0005\u03d1\u2adb\b\u03d1\n\u03d1\f\u03d1\u2ade\t\u03d1"+ + "\u0001\u03d1\u0001\u03d1\u0001\u03d2\u0001\u03d2\u0001\u03d3\u0001\u03d3"+ + "\u0001\u03d4\u0001\u03d4\u0001\u03d4\u0004\u03d4\u2ae9\b\u03d4\u000b\u03d4"+ + "\f\u03d4\u2aea\u0001\u03d4\u0001\u03d4\u0001\u03d5\u0001\u03d5\u0001\u03d5"+ + "\u0001\u03d5\u0004\u07bb\u07c8\u2aac\u2ab2\u0000\u03d6\u0001\u0001\u0003"+ + "\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011"+ + "\t\u0013\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010"+ + "!\u0011#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a"+ + "5\u001b7\u001c9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/"+ + "_0a1c2e3g4i5k6m7o8q9s:u;w}?\u007f@\u0081A\u0083B\u0085C\u0087D\u0089"+ + "E\u008bF\u008dG\u008fH\u0091I\u0093J\u0095K\u0097L\u0099M\u009bN\u009d"+ + "O\u009fP\u00a1Q\u00a3R\u00a5S\u00a7T\u00a9U\u00abV\u00adW\u00afX\u00b1"+ + "Y\u00b3Z\u00b5[\u00b7\\\u00b9]\u00bb^\u00bd_\u00bf`\u00c1a\u00c3b\u00c5"+ + "c\u00c7d\u00c9e\u00cbf\u00cdg\u00cfh\u00d1i\u00d3j\u00d5k\u00d7l\u00d9"+ + "m\u00dbn\u00ddo\u00dfp\u00e1q\u00e3r\u00e5s\u00e7t\u00e9u\u00ebv\u00ed"+ + "w\u00efx\u00f1y\u00f3z\u00f5{\u00f7|\u00f9}\u00fb~\u00fd\u007f\u00ff\u0080"+ + "\u0101\u0081\u0103\u0082\u0105\u0083\u0107\u0084\u0109\u0085\u010b\u0086"+ + "\u010d\u0087\u010f\u0088\u0111\u0089\u0113\u008a\u0115\u008b\u0117\u008c"+ + "\u0119\u008d\u011b\u008e\u011d\u008f\u011f\u0090\u0121\u0091\u0123\u0092"+ + "\u0125\u0093\u0127\u0094\u0129\u0095\u012b\u0096\u012d\u0097\u012f\u0098"+ + "\u0131\u0099\u0133\u009a\u0135\u009b\u0137\u009c\u0139\u009d\u013b\u009e"+ + "\u013d\u009f\u013f\u00a0\u0141\u00a1\u0143\u00a2\u0145\u00a3\u0147\u00a4"+ + "\u0149\u00a5\u014b\u00a6\u014d\u00a7\u014f\u00a8\u0151\u00a9\u0153\u00aa"+ + "\u0155\u00ab\u0157\u00ac\u0159\u00ad\u015b\u00ae\u015d\u00af\u015f\u00b0"+ + "\u0161\u00b1\u0163\u00b2\u0165\u00b3\u0167\u00b4\u0169\u00b5\u016b\u00b6"+ + "\u016d\u00b7\u016f\u00b8\u0171\u00b9\u0173\u00ba\u0175\u00bb\u0177\u00bc"+ + "\u0179\u00bd\u017b\u00be\u017d\u00bf\u017f\u00c0\u0181\u00c1\u0183\u00c2"+ + "\u0185\u00c3\u0187\u00c4\u0189\u00c5\u018b\u00c6\u018d\u00c7\u018f\u00c8"+ + "\u0191\u00c9\u0193\u00ca\u0195\u00cb\u0197\u00cc\u0199\u00cd\u019b\u00ce"+ + "\u019d\u00cf\u019f\u00d0\u01a1\u00d1\u01a3\u00d2\u01a5\u00d3\u01a7\u00d4"+ + "\u01a9\u00d5\u01ab\u00d6\u01ad\u00d7\u01af\u00d8\u01b1\u00d9\u01b3\u00da"+ + "\u01b5\u00db\u01b7\u00dc\u01b9\u00dd\u01bb\u00de\u01bd\u00df\u01bf\u00e0"+ + "\u01c1\u00e1\u01c3\u00e2\u01c5\u00e3\u01c7\u00e4\u01c9\u00e5\u01cb\u00e6"+ + "\u01cd\u00e7\u01cf\u00e8\u01d1\u00e9\u01d3\u00ea\u01d5\u00eb\u01d7\u00ec"+ + "\u01d9\u00ed\u01db\u00ee\u01dd\u00ef\u01df\u00f0\u01e1\u00f1\u01e3\u00f2"+ + "\u01e5\u00f3\u01e7\u00f4\u01e9\u00f5\u01eb\u00f6\u01ed\u00f7\u01ef\u00f8"+ + "\u01f1\u00f9\u01f3\u00fa\u01f5\u00fb\u01f7\u00fc\u01f9\u00fd\u01fb\u00fe"+ + "\u01fd\u00ff\u01ff\u0100\u0201\u0101\u0203\u0102\u0205\u0103\u0207\u0104"+ + "\u0209\u0105\u020b\u0106\u020d\u0107\u020f\u0108\u0211\u0109\u0213\u010a"+ + "\u0215\u010b\u0217\u010c\u0219\u010d\u021b\u010e\u021d\u010f\u021f\u0110"+ + "\u0221\u0111\u0223\u0112\u0225\u0113\u0227\u0114\u0229\u0115\u022b\u0116"+ + "\u022d\u0117\u022f\u0118\u0231\u0119\u0233\u011a\u0235\u011b\u0237\u011c"+ + "\u0239\u011d\u023b\u011e\u023d\u011f\u023f\u0120\u0241\u0121\u0243\u0122"+ + "\u0245\u0123\u0247\u0124\u0249\u0125\u024b\u0126\u024d\u0127\u024f\u0128"+ + "\u0251\u0129\u0253\u012a\u0255\u012b\u0257\u012c\u0259\u012d\u025b\u012e"+ + "\u025d\u012f\u025f\u0130\u0261\u0131\u0263\u0132\u0265\u0133\u0267\u0134"+ + "\u0269\u0135\u026b\u0136\u026d\u0137\u026f\u0138\u0271\u0139\u0273\u013a"+ + "\u0275\u013b\u0277\u013c\u0279\u013d\u027b\u013e\u027d\u013f\u027f\u0140"+ + "\u0281\u0141\u0283\u0142\u0285\u0143\u0287\u0144\u0289\u0145\u028b\u0146"+ + "\u028d\u0147\u028f\u0148\u0291\u0149\u0293\u014a\u0295\u014b\u0297\u014c"+ + "\u0299\u014d\u029b\u014e\u029d\u014f\u029f\u0150\u02a1\u0151\u02a3\u0152"+ + "\u02a5\u0153\u02a7\u0154\u02a9\u0155\u02ab\u0156\u02ad\u0157\u02af\u0158"+ + "\u02b1\u0159\u02b3\u015a\u02b5\u015b\u02b7\u015c\u02b9\u015d\u02bb\u015e"+ + "\u02bd\u015f\u02bf\u0160\u02c1\u0161\u02c3\u0162\u02c5\u0163\u02c7\u0164"+ + "\u02c9\u0165\u02cb\u0166\u02cd\u0167\u02cf\u0168\u02d1\u0169\u02d3\u016a"+ + "\u02d5\u016b\u02d7\u016c\u02d9\u016d\u02db\u016e\u02dd\u016f\u02df\u0170"+ + "\u02e1\u0171\u02e3\u0172\u02e5\u0173\u02e7\u0174\u02e9\u0175\u02eb\u0176"+ + "\u02ed\u0177\u02ef\u0178\u02f1\u0179\u02f3\u017a\u02f5\u017b\u02f7\u017c"+ + "\u02f9\u017d\u02fb\u017e\u02fd\u017f\u02ff\u0180\u0301\u0181\u0303\u0182"+ + "\u0305\u0183\u0307\u0184\u0309\u0185\u030b\u0186\u030d\u0187\u030f\u0188"+ + "\u0311\u0189\u0313\u018a\u0315\u018b\u0317\u018c\u0319\u018d\u031b\u018e"+ + "\u031d\u018f\u031f\u0190\u0321\u0191\u0323\u0192\u0325\u0193\u0327\u0194"+ + "\u0329\u0195\u032b\u0196\u032d\u0197\u032f\u0198\u0331\u0199\u0333\u019a"+ + "\u0335\u019b\u0337\u019c\u0339\u019d\u033b\u019e\u033d\u019f\u033f\u01a0"+ + "\u0341\u01a1\u0343\u01a2\u0345\u01a3\u0347\u01a4\u0349\u01a5\u034b\u01a6"+ + "\u034d\u01a7\u034f\u01a8\u0351\u01a9\u0353\u01aa\u0355\u01ab\u0357\u01ac"+ + "\u0359\u01ad\u035b\u01ae\u035d\u01af\u035f\u01b0\u0361\u01b1\u0363\u01b2"+ + "\u0365\u01b3\u0367\u01b4\u0369\u01b5\u036b\u01b6\u036d\u01b7\u036f\u01b8"+ + "\u0371\u01b9\u0373\u01ba\u0375\u01bb\u0377\u01bc\u0379\u01bd\u037b\u01be"+ + "\u037d\u01bf\u037f\u01c0\u0381\u01c1\u0383\u01c2\u0385\u01c3\u0387\u01c4"+ + "\u0389\u01c5\u038b\u01c6\u038d\u01c7\u038f\u01c8\u0391\u01c9\u0393\u01ca"+ + "\u0395\u01cb\u0397\u01cc\u0399\u01cd\u039b\u01ce\u039d\u01cf\u039f\u01d0"+ + "\u03a1\u01d1\u03a3\u01d2\u03a5\u01d3\u03a7\u01d4\u03a9\u01d5\u03ab\u01d6"+ + "\u03ad\u01d7\u03af\u01d8\u03b1\u01d9\u03b3\u01da\u03b5\u01db\u03b7\u01dc"+ + "\u03b9\u01dd\u03bb\u01de\u03bd\u01df\u03bf\u01e0\u03c1\u01e1\u03c3\u01e2"+ + "\u03c5\u01e3\u03c7\u01e4\u03c9\u01e5\u03cb\u01e6\u03cd\u01e7\u03cf\u01e8"+ + "\u03d1\u01e9\u03d3\u01ea\u03d5\u01eb\u03d7\u01ec\u03d9\u01ed\u03db\u01ee"+ + "\u03dd\u01ef\u03df\u01f0\u03e1\u01f1\u03e3\u01f2\u03e5\u01f3\u03e7\u01f4"+ + "\u03e9\u01f5\u03eb\u01f6\u03ed\u01f7\u03ef\u01f8\u03f1\u01f9\u03f3\u01fa"+ + "\u03f5\u01fb\u03f7\u01fc\u03f9\u01fd\u03fb\u01fe\u03fd\u01ff\u03ff\u0200"+ + "\u0401\u0201\u0403\u0202\u0405\u0203\u0407\u0204\u0409\u0205\u040b\u0206"+ + "\u040d\u0207\u040f\u0208\u0411\u0209\u0413\u020a\u0415\u020b\u0417\u020c"+ + "\u0419\u020d\u041b\u020e\u041d\u020f\u041f\u0210\u0421\u0211\u0423\u0212"+ + "\u0425\u0213\u0427\u0214\u0429\u0215\u042b\u0216\u042d\u0217\u042f\u0218"+ + "\u0431\u0219\u0433\u021a\u0435\u021b\u0437\u021c\u0439\u021d\u043b\u021e"+ + "\u043d\u021f\u043f\u0220\u0441\u0221\u0443\u0222\u0445\u0223\u0447\u0224"+ + "\u0449\u0225\u044b\u0226\u044d\u0227\u044f\u0228\u0451\u0229\u0453\u022a"+ + "\u0455\u022b\u0457\u022c\u0459\u022d\u045b\u022e\u045d\u022f\u045f\u0230"+ + "\u0461\u0231\u0463\u0232\u0465\u0233\u0467\u0234\u0469\u0235\u046b\u0236"+ + "\u046d\u0237\u046f\u0238\u0471\u0239\u0473\u023a\u0475\u023b\u0477\u023c"+ + "\u0479\u023d\u047b\u023e\u047d\u023f\u047f\u0240\u0481\u0241\u0483\u0242"+ + "\u0485\u0243\u0487\u0244\u0489\u0245\u048b\u0246\u048d\u0247\u048f\u0248"+ + "\u0491\u0249\u0493\u024a\u0495\u024b\u0497\u024c\u0499\u024d\u049b\u024e"+ + "\u049d\u024f\u049f\u0250\u04a1\u0251\u04a3\u0252\u04a5\u0253\u04a7\u0254"+ + "\u04a9\u0255\u04ab\u0256\u04ad\u0257\u04af\u0258\u04b1\u0259\u04b3\u025a"+ + "\u04b5\u025b\u04b7\u025c\u04b9\u025d\u04bb\u025e\u04bd\u025f\u04bf\u0260"+ + "\u04c1\u0261\u04c3\u0262\u04c5\u0263\u04c7\u0264\u04c9\u0265\u04cb\u0266"+ + "\u04cd\u0267\u04cf\u0268\u04d1\u0269\u04d3\u026a\u04d5\u026b\u04d7\u026c"+ + "\u04d9\u026d\u04db\u026e\u04dd\u026f\u04df\u0270\u04e1\u0271\u04e3\u0272"+ + "\u04e5\u0273\u04e7\u0274\u04e9\u0275\u04eb\u0276\u04ed\u0277\u04ef\u0278"+ + "\u04f1\u0279\u04f3\u027a\u04f5\u027b\u04f7\u027c\u04f9\u027d\u04fb\u027e"+ + "\u04fd\u027f\u04ff\u0280\u0501\u0281\u0503\u0282\u0505\u0283\u0507\u0284"+ + "\u0509\u0285\u050b\u0286\u050d\u0287\u050f\u0288\u0511\u0289\u0513\u028a"+ + "\u0515\u028b\u0517\u028c\u0519\u028d\u051b\u028e\u051d\u028f\u051f\u0290"+ + "\u0521\u0291\u0523\u0292\u0525\u0293\u0527\u0294\u0529\u0295\u052b\u0296"+ + "\u052d\u0297\u052f\u0298\u0531\u0299\u0533\u029a\u0535\u029b\u0537\u029c"+ + "\u0539\u029d\u053b\u029e\u053d\u029f\u053f\u02a0\u0541\u02a1\u0543\u02a2"+ + "\u0545\u02a3\u0547\u02a4\u0549\u02a5\u054b\u02a6\u054d\u02a7\u054f\u02a8"+ + "\u0551\u02a9\u0553\u02aa\u0555\u02ab\u0557\u02ac\u0559\u02ad\u055b\u02ae"+ + "\u055d\u02af\u055f\u02b0\u0561\u02b1\u0563\u02b2\u0565\u02b3\u0567\u02b4"+ + "\u0569\u02b5\u056b\u02b6\u056d\u02b7\u056f\u02b8\u0571\u02b9\u0573\u02ba"+ + "\u0575\u02bb\u0577\u02bc\u0579\u02bd\u057b\u02be\u057d\u02bf\u057f\u02c0"+ + "\u0581\u02c1\u0583\u02c2\u0585\u02c3\u0587\u02c4\u0589\u02c5\u058b\u02c6"+ + "\u058d\u02c7\u058f\u02c8\u0591\u02c9\u0593\u02ca\u0595\u02cb\u0597\u02cc"+ + "\u0599\u02cd\u059b\u02ce\u059d\u02cf\u059f\u02d0\u05a1\u02d1\u05a3\u02d2"+ + "\u05a5\u02d3\u05a7\u02d4\u05a9\u02d5\u05ab\u02d6\u05ad\u02d7\u05af\u02d8"+ + "\u05b1\u02d9\u05b3\u02da\u05b5\u02db\u05b7\u02dc\u05b9\u02dd\u05bb\u02de"+ + "\u05bd\u02df\u05bf\u02e0\u05c1\u02e1\u05c3\u02e2\u05c5\u02e3\u05c7\u02e4"+ + "\u05c9\u02e5\u05cb\u02e6\u05cd\u02e7\u05cf\u02e8\u05d1\u02e9\u05d3\u02ea"+ + "\u05d5\u02eb\u05d7\u02ec\u05d9\u02ed\u05db\u02ee\u05dd\u02ef\u05df\u02f0"+ + "\u05e1\u02f1\u05e3\u02f2\u05e5\u02f3\u05e7\u02f4\u05e9\u02f5\u05eb\u02f6"+ + "\u05ed\u02f7\u05ef\u02f8\u05f1\u02f9\u05f3\u02fa\u05f5\u02fb\u05f7\u02fc"+ + "\u05f9\u02fd\u05fb\u02fe\u05fd\u02ff\u05ff\u0300\u0601\u0301\u0603\u0302"+ + "\u0605\u0303\u0607\u0304\u0609\u0305\u060b\u0306\u060d\u0307\u060f\u0308"+ + "\u0611\u0309\u0613\u030a\u0615\u030b\u0617\u030c\u0619\u030d\u061b\u030e"+ + "\u061d\u030f\u061f\u0310\u0621\u0311\u0623\u0312\u0625\u0313\u0627\u0314"+ + "\u0629\u0315\u062b\u0316\u062d\u0317\u062f\u0318\u0631\u0319\u0633\u031a"+ + "\u0635\u031b\u0637\u031c\u0639\u031d\u063b\u031e\u063d\u031f\u063f\u0320"+ + "\u0641\u0321\u0643\u0322\u0645\u0323\u0647\u0324\u0649\u0325\u064b\u0326"+ + "\u064d\u0327\u064f\u0328\u0651\u0329\u0653\u032a\u0655\u032b\u0657\u032c"+ + "\u0659\u032d\u065b\u032e\u065d\u032f\u065f\u0330\u0661\u0331\u0663\u0332"+ + "\u0665\u0333\u0667\u0334\u0669\u0335\u066b\u0336\u066d\u0337\u066f\u0338"+ + "\u0671\u0339\u0673\u033a\u0675\u033b\u0677\u033c\u0679\u033d\u067b\u033e"+ + "\u067d\u033f\u067f\u0340\u0681\u0341\u0683\u0342\u0685\u0343\u0687\u0344"+ + "\u0689\u0345\u068b\u0346\u068d\u0347\u068f\u0348\u0691\u0349\u0693\u034a"+ + "\u0695\u034b\u0697\u034c\u0699\u034d\u069b\u034e\u069d\u034f\u069f\u0350"+ + "\u06a1\u0351\u06a3\u0352\u06a5\u0353\u06a7\u0354\u06a9\u0355\u06ab\u0356"+ + "\u06ad\u0357\u06af\u0358\u06b1\u0359\u06b3\u035a\u06b5\u035b\u06b7\u035c"+ + "\u06b9\u035d\u06bb\u035e\u06bd\u035f\u06bf\u0360\u06c1\u0361\u06c3\u0362"+ + "\u06c5\u0363\u06c7\u0364\u06c9\u0365\u06cb\u0366\u06cd\u0367\u06cf\u0368"+ + "\u06d1\u0369\u06d3\u036a\u06d5\u036b\u06d7\u036c\u06d9\u036d\u06db\u036e"+ + "\u06dd\u036f\u06df\u0370\u06e1\u0371\u06e3\u0372\u06e5\u0373\u06e7\u0374"+ + "\u06e9\u0375\u06eb\u0376\u06ed\u0377\u06ef\u0378\u06f1\u0379\u06f3\u037a"+ + "\u06f5\u037b\u06f7\u037c\u06f9\u037d\u06fb\u037e\u06fd\u037f\u06ff\u0380"+ + "\u0701\u0381\u0703\u0382\u0705\u0383\u0707\u0384\u0709\u0385\u070b\u0386"+ + "\u070d\u0387\u070f\u0388\u0711\u0389\u0713\u038a\u0715\u038b\u0717\u038c"+ + "\u0719\u038d\u071b\u038e\u071d\u038f\u071f\u0390\u0721\u0391\u0723\u0392"+ + "\u0725\u0393\u0727\u0394\u0729\u0395\u072b\u0396\u072d\u0397\u072f\u0398"+ + "\u0731\u0399\u0733\u039a\u0735\u039b\u0737\u039c\u0739\u039d\u073b\u039e"+ + "\u073d\u039f\u073f\u03a0\u0741\u03a1\u0743\u03a2\u0745\u03a3\u0747\u03a4"+ + "\u0749\u03a5\u074b\u03a6\u074d\u03a7\u074f\u03a8\u0751\u03a9\u0753\u03aa"+ + "\u0755\u03ab\u0757\u03ac\u0759\u03ad\u075b\u03ae\u075d\u03af\u075f\u03b0"+ + "\u0761\u03b1\u0763\u03b2\u0765\u03b3\u0767\u03b4\u0769\u03b5\u076b\u03b6"+ + "\u076d\u03b7\u076f\u03b8\u0771\u03b9\u0773\u03ba\u0775\u03bb\u0777\u03bc"+ + "\u0779\u03bd\u077b\u03be\u077d\u03bf\u077f\u03c0\u0781\u03c1\u0783\u03c2"+ + "\u0785\u03c3\u0787\u03c4\u0789\u03c5\u078b\u03c6\u078d\u03c7\u078f\u03c8"+ + "\u0791\u03c9\u0793\u03ca\u0795\u03cb\u0797\u03cc\u0799\u0000\u079b\u0000"+ + "\u079d\u0000\u079f\u0000\u07a1\u0000\u07a3\u0000\u07a5\u0000\u07a7\u0000"+ + "\u07a9\u0000\u07ab\u03cd\u0001\u0000\r\u0003\u0000\t\n\r\r \u0002\u0000"+ + "\n\n\r\r\u0004\u0000GGKKMMTT\u0001\u0000``\u0005\u0000$$..09AZ__\u0004"+ + "\u0000$$09AZ__\u0003\u0000$$AZ__\u0002\u0000\"\"\\\\\u0002\u0000\'\'\\"+ + "\\\u0002\u0000\\\\``\u0002\u000009AF\u0001\u000009\u0001\u000001\u2b46"+ + "\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000"+ + "\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000"+ + "\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000"+ + "\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000\u0011"+ + "\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015"+ + "\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019"+ + "\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d"+ + "\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001"+ + "\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001\u0000\u0000"+ + "\u0000\u0000\'\u0001\u0000\u0000\u0000\u0000)\u0001\u0000\u0000\u0000"+ + "\u0000+\u0001\u0000\u0000\u0000\u0000-\u0001\u0000\u0000\u0000\u0000/"+ + "\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000\u0000\u00003\u0001\u0000"+ + "\u0000\u0000\u00005\u0001\u0000\u0000\u0000\u00007\u0001\u0000\u0000\u0000"+ + "\u00009\u0001\u0000\u0000\u0000\u0000;\u0001\u0000\u0000\u0000\u0000="+ + "\u0001\u0000\u0000\u0000\u0000?\u0001\u0000\u0000\u0000\u0000A\u0001\u0000"+ + "\u0000\u0000\u0000C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000"+ + "\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K"+ + "\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000"+ + "\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000"+ + "\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y"+ + "\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000"+ + "\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000"+ + "\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000\u0000g"+ + "\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k\u0001\u0000"+ + "\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000\u0000\u0000"+ + "\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000\u0000u"+ + "\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000\u0000\u0000y\u0001\u0000"+ + "\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000\u0000\u0000"+ + "\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000\u0000\u0000"+ + "\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000\u0000\u0000"+ + "\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000\u0000\u0000"+ + "\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000\u0000\u0000"+ + "\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000\u0000\u0000"+ + "\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095\u0001\u0000\u0000\u0000"+ + "\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099\u0001\u0000\u0000\u0000"+ + "\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000\u0000\u0000"+ + "\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1\u0001\u0000\u0000\u0000"+ + "\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000\u0000\u0000"+ + "\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000\u0000\u0000"+ + "\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000\u0000\u0000"+ + "\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1\u0001\u0000\u0000\u0000"+ + "\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000\u0000\u0000"+ + "\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9\u0001\u0000\u0000\u0000"+ + "\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000\u0000\u0000"+ + "\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000\u0000\u0000"+ + "\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000\u0000\u0000"+ + "\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000\u0000\u0000"+ + "\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000\u0000\u0000"+ + "\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000\u0000\u0000"+ + "\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000\u0000\u0000"+ + "\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000\u0000\u0000"+ + "\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000\u0000\u0000"+ + "\u0000\u00df\u0001\u0000\u0000\u0000\u0000\u00e1\u0001\u0000\u0000\u0000"+ + "\u0000\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5\u0001\u0000\u0000\u0000"+ + "\u0000\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9\u0001\u0000\u0000\u0000"+ + "\u0000\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed\u0001\u0000\u0000\u0000"+ + "\u0000\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1\u0001\u0000\u0000\u0000"+ + "\u0000\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5\u0001\u0000\u0000\u0000"+ + "\u0000\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9\u0001\u0000\u0000\u0000"+ + "\u0000\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd\u0001\u0000\u0000\u0000"+ + "\u0000\u00ff\u0001\u0000\u0000\u0000\u0000\u0101\u0001\u0000\u0000\u0000"+ + "\u0000\u0103\u0001\u0000\u0000\u0000\u0000\u0105\u0001\u0000\u0000\u0000"+ + "\u0000\u0107\u0001\u0000\u0000\u0000\u0000\u0109\u0001\u0000\u0000\u0000"+ + "\u0000\u010b\u0001\u0000\u0000\u0000\u0000\u010d\u0001\u0000\u0000\u0000"+ + "\u0000\u010f\u0001\u0000\u0000\u0000\u0000\u0111\u0001\u0000\u0000\u0000"+ + "\u0000\u0113\u0001\u0000\u0000\u0000\u0000\u0115\u0001\u0000\u0000\u0000"+ + "\u0000\u0117\u0001\u0000\u0000\u0000\u0000\u0119\u0001\u0000\u0000\u0000"+ + "\u0000\u011b\u0001\u0000\u0000\u0000\u0000\u011d\u0001\u0000\u0000\u0000"+ + "\u0000\u011f\u0001\u0000\u0000\u0000\u0000\u0121\u0001\u0000\u0000\u0000"+ + "\u0000\u0123\u0001\u0000\u0000\u0000\u0000\u0125\u0001\u0000\u0000\u0000"+ + "\u0000\u0127\u0001\u0000\u0000\u0000\u0000\u0129\u0001\u0000\u0000\u0000"+ + "\u0000\u012b\u0001\u0000\u0000\u0000\u0000\u012d\u0001\u0000\u0000\u0000"+ + "\u0000\u012f\u0001\u0000\u0000\u0000\u0000\u0131\u0001\u0000\u0000\u0000"+ + "\u0000\u0133\u0001\u0000\u0000\u0000\u0000\u0135\u0001\u0000\u0000\u0000"+ + "\u0000\u0137\u0001\u0000\u0000\u0000\u0000\u0139\u0001\u0000\u0000\u0000"+ + "\u0000\u013b\u0001\u0000\u0000\u0000\u0000\u013d\u0001\u0000\u0000\u0000"+ + "\u0000\u013f\u0001\u0000\u0000\u0000\u0000\u0141\u0001\u0000\u0000\u0000"+ + "\u0000\u0143\u0001\u0000\u0000\u0000\u0000\u0145\u0001\u0000\u0000\u0000"+ + "\u0000\u0147\u0001\u0000\u0000\u0000\u0000\u0149\u0001\u0000\u0000\u0000"+ + "\u0000\u014b\u0001\u0000\u0000\u0000\u0000\u014d\u0001\u0000\u0000\u0000"+ + "\u0000\u014f\u0001\u0000\u0000\u0000\u0000\u0151\u0001\u0000\u0000\u0000"+ + "\u0000\u0153\u0001\u0000\u0000\u0000\u0000\u0155\u0001\u0000\u0000\u0000"+ + "\u0000\u0157\u0001\u0000\u0000\u0000\u0000\u0159\u0001\u0000\u0000\u0000"+ + "\u0000\u015b\u0001\u0000\u0000\u0000\u0000\u015d\u0001\u0000\u0000\u0000"+ + "\u0000\u015f\u0001\u0000\u0000\u0000\u0000\u0161\u0001\u0000\u0000\u0000"+ + "\u0000\u0163\u0001\u0000\u0000\u0000\u0000\u0165\u0001\u0000\u0000\u0000"+ + "\u0000\u0167\u0001\u0000\u0000\u0000\u0000\u0169\u0001\u0000\u0000\u0000"+ + "\u0000\u016b\u0001\u0000\u0000\u0000\u0000\u016d\u0001\u0000\u0000\u0000"+ + "\u0000\u016f\u0001\u0000\u0000\u0000\u0000\u0171\u0001\u0000\u0000\u0000"+ + "\u0000\u0173\u0001\u0000\u0000\u0000\u0000\u0175\u0001\u0000\u0000\u0000"+ + "\u0000\u0177\u0001\u0000\u0000\u0000\u0000\u0179\u0001\u0000\u0000\u0000"+ + "\u0000\u017b\u0001\u0000\u0000\u0000\u0000\u017d\u0001\u0000\u0000\u0000"+ + "\u0000\u017f\u0001\u0000\u0000\u0000\u0000\u0181\u0001\u0000\u0000\u0000"+ + "\u0000\u0183\u0001\u0000\u0000\u0000\u0000\u0185\u0001\u0000\u0000\u0000"+ + "\u0000\u0187\u0001\u0000\u0000\u0000\u0000\u0189\u0001\u0000\u0000\u0000"+ + "\u0000\u018b\u0001\u0000\u0000\u0000\u0000\u018d\u0001\u0000\u0000\u0000"+ + "\u0000\u018f\u0001\u0000\u0000\u0000\u0000\u0191\u0001\u0000\u0000\u0000"+ + "\u0000\u0193\u0001\u0000\u0000\u0000\u0000\u0195\u0001\u0000\u0000\u0000"+ + "\u0000\u0197\u0001\u0000\u0000\u0000\u0000\u0199\u0001\u0000\u0000\u0000"+ + "\u0000\u019b\u0001\u0000\u0000\u0000\u0000\u019d\u0001\u0000\u0000\u0000"+ + "\u0000\u019f\u0001\u0000\u0000\u0000\u0000\u01a1\u0001\u0000\u0000\u0000"+ + "\u0000\u01a3\u0001\u0000\u0000\u0000\u0000\u01a5\u0001\u0000\u0000\u0000"+ + "\u0000\u01a7\u0001\u0000\u0000\u0000\u0000\u01a9\u0001\u0000\u0000\u0000"+ + "\u0000\u01ab\u0001\u0000\u0000\u0000\u0000\u01ad\u0001\u0000\u0000\u0000"+ + "\u0000\u01af\u0001\u0000\u0000\u0000\u0000\u01b1\u0001\u0000\u0000\u0000"+ + "\u0000\u01b3\u0001\u0000\u0000\u0000\u0000\u01b5\u0001\u0000\u0000\u0000"+ + "\u0000\u01b7\u0001\u0000\u0000\u0000\u0000\u01b9\u0001\u0000\u0000\u0000"+ + "\u0000\u01bb\u0001\u0000\u0000\u0000\u0000\u01bd\u0001\u0000\u0000\u0000"+ + "\u0000\u01bf\u0001\u0000\u0000\u0000\u0000\u01c1\u0001\u0000\u0000\u0000"+ + "\u0000\u01c3\u0001\u0000\u0000\u0000\u0000\u01c5\u0001\u0000\u0000\u0000"+ + "\u0000\u01c7\u0001\u0000\u0000\u0000\u0000\u01c9\u0001\u0000\u0000\u0000"+ + "\u0000\u01cb\u0001\u0000\u0000\u0000\u0000\u01cd\u0001\u0000\u0000\u0000"+ + "\u0000\u01cf\u0001\u0000\u0000\u0000\u0000\u01d1\u0001\u0000\u0000\u0000"+ + "\u0000\u01d3\u0001\u0000\u0000\u0000\u0000\u01d5\u0001\u0000\u0000\u0000"+ + "\u0000\u01d7\u0001\u0000\u0000\u0000\u0000\u01d9\u0001\u0000\u0000\u0000"+ + "\u0000\u01db\u0001\u0000\u0000\u0000\u0000\u01dd\u0001\u0000\u0000\u0000"+ + "\u0000\u01df\u0001\u0000\u0000\u0000\u0000\u01e1\u0001\u0000\u0000\u0000"+ + "\u0000\u01e3\u0001\u0000\u0000\u0000\u0000\u01e5\u0001\u0000\u0000\u0000"+ + "\u0000\u01e7\u0001\u0000\u0000\u0000\u0000\u01e9\u0001\u0000\u0000\u0000"+ + "\u0000\u01eb\u0001\u0000\u0000\u0000\u0000\u01ed\u0001\u0000\u0000\u0000"+ + "\u0000\u01ef\u0001\u0000\u0000\u0000\u0000\u01f1\u0001\u0000\u0000\u0000"+ + "\u0000\u01f3\u0001\u0000\u0000\u0000\u0000\u01f5\u0001\u0000\u0000\u0000"+ + "\u0000\u01f7\u0001\u0000\u0000\u0000\u0000\u01f9\u0001\u0000\u0000\u0000"+ + "\u0000\u01fb\u0001\u0000\u0000\u0000\u0000\u01fd\u0001\u0000\u0000\u0000"+ + "\u0000\u01ff\u0001\u0000\u0000\u0000\u0000\u0201\u0001\u0000\u0000\u0000"+ + "\u0000\u0203\u0001\u0000\u0000\u0000\u0000\u0205\u0001\u0000\u0000\u0000"+ + "\u0000\u0207\u0001\u0000\u0000\u0000\u0000\u0209\u0001\u0000\u0000\u0000"+ + "\u0000\u020b\u0001\u0000\u0000\u0000\u0000\u020d\u0001\u0000\u0000\u0000"+ + "\u0000\u020f\u0001\u0000\u0000\u0000\u0000\u0211\u0001\u0000\u0000\u0000"+ + "\u0000\u0213\u0001\u0000\u0000\u0000\u0000\u0215\u0001\u0000\u0000\u0000"+ + "\u0000\u0217\u0001\u0000\u0000\u0000\u0000\u0219\u0001\u0000\u0000\u0000"+ + "\u0000\u021b\u0001\u0000\u0000\u0000\u0000\u021d\u0001\u0000\u0000\u0000"+ + "\u0000\u021f\u0001\u0000\u0000\u0000\u0000\u0221\u0001\u0000\u0000\u0000"+ + "\u0000\u0223\u0001\u0000\u0000\u0000\u0000\u0225\u0001\u0000\u0000\u0000"+ + "\u0000\u0227\u0001\u0000\u0000\u0000\u0000\u0229\u0001\u0000\u0000\u0000"+ + "\u0000\u022b\u0001\u0000\u0000\u0000\u0000\u022d\u0001\u0000\u0000\u0000"+ + "\u0000\u022f\u0001\u0000\u0000\u0000\u0000\u0231\u0001\u0000\u0000\u0000"+ + "\u0000\u0233\u0001\u0000\u0000\u0000\u0000\u0235\u0001\u0000\u0000\u0000"+ + "\u0000\u0237\u0001\u0000\u0000\u0000\u0000\u0239\u0001\u0000\u0000\u0000"+ + "\u0000\u023b\u0001\u0000\u0000\u0000\u0000\u023d\u0001\u0000\u0000\u0000"+ + "\u0000\u023f\u0001\u0000\u0000\u0000\u0000\u0241\u0001\u0000\u0000\u0000"+ + "\u0000\u0243\u0001\u0000\u0000\u0000\u0000\u0245\u0001\u0000\u0000\u0000"+ + "\u0000\u0247\u0001\u0000\u0000\u0000\u0000\u0249\u0001\u0000\u0000\u0000"+ + "\u0000\u024b\u0001\u0000\u0000\u0000\u0000\u024d\u0001\u0000\u0000\u0000"+ + "\u0000\u024f\u0001\u0000\u0000\u0000\u0000\u0251\u0001\u0000\u0000\u0000"+ + "\u0000\u0253\u0001\u0000\u0000\u0000\u0000\u0255\u0001\u0000\u0000\u0000"+ + "\u0000\u0257\u0001\u0000\u0000\u0000\u0000\u0259\u0001\u0000\u0000\u0000"+ + "\u0000\u025b\u0001\u0000\u0000\u0000\u0000\u025d\u0001\u0000\u0000\u0000"+ + "\u0000\u025f\u0001\u0000\u0000\u0000\u0000\u0261\u0001\u0000\u0000\u0000"+ + "\u0000\u0263\u0001\u0000\u0000\u0000\u0000\u0265\u0001\u0000\u0000\u0000"+ + "\u0000\u0267\u0001\u0000\u0000\u0000\u0000\u0269\u0001\u0000\u0000\u0000"+ + "\u0000\u026b\u0001\u0000\u0000\u0000\u0000\u026d\u0001\u0000\u0000\u0000"+ + "\u0000\u026f\u0001\u0000\u0000\u0000\u0000\u0271\u0001\u0000\u0000\u0000"+ + "\u0000\u0273\u0001\u0000\u0000\u0000\u0000\u0275\u0001\u0000\u0000\u0000"+ + "\u0000\u0277\u0001\u0000\u0000\u0000\u0000\u0279\u0001\u0000\u0000\u0000"+ + "\u0000\u027b\u0001\u0000\u0000\u0000\u0000\u027d\u0001\u0000\u0000\u0000"+ + "\u0000\u027f\u0001\u0000\u0000\u0000\u0000\u0281\u0001\u0000\u0000\u0000"+ + "\u0000\u0283\u0001\u0000\u0000\u0000\u0000\u0285\u0001\u0000\u0000\u0000"+ + "\u0000\u0287\u0001\u0000\u0000\u0000\u0000\u0289\u0001\u0000\u0000\u0000"+ + "\u0000\u028b\u0001\u0000\u0000\u0000\u0000\u028d\u0001\u0000\u0000\u0000"+ + "\u0000\u028f\u0001\u0000\u0000\u0000\u0000\u0291\u0001\u0000\u0000\u0000"+ + "\u0000\u0293\u0001\u0000\u0000\u0000\u0000\u0295\u0001\u0000\u0000\u0000"+ + "\u0000\u0297\u0001\u0000\u0000\u0000\u0000\u0299\u0001\u0000\u0000\u0000"+ + "\u0000\u029b\u0001\u0000\u0000\u0000\u0000\u029d\u0001\u0000\u0000\u0000"+ + "\u0000\u029f\u0001\u0000\u0000\u0000\u0000\u02a1\u0001\u0000\u0000\u0000"+ + "\u0000\u02a3\u0001\u0000\u0000\u0000\u0000\u02a5\u0001\u0000\u0000\u0000"+ + "\u0000\u02a7\u0001\u0000\u0000\u0000\u0000\u02a9\u0001\u0000\u0000\u0000"+ + "\u0000\u02ab\u0001\u0000\u0000\u0000\u0000\u02ad\u0001\u0000\u0000\u0000"+ + "\u0000\u02af\u0001\u0000\u0000\u0000\u0000\u02b1\u0001\u0000\u0000\u0000"+ + "\u0000\u02b3\u0001\u0000\u0000\u0000\u0000\u02b5\u0001\u0000\u0000\u0000"+ + "\u0000\u02b7\u0001\u0000\u0000\u0000\u0000\u02b9\u0001\u0000\u0000\u0000"+ + "\u0000\u02bb\u0001\u0000\u0000\u0000\u0000\u02bd\u0001\u0000\u0000\u0000"+ + "\u0000\u02bf\u0001\u0000\u0000\u0000\u0000\u02c1\u0001\u0000\u0000\u0000"+ + "\u0000\u02c3\u0001\u0000\u0000\u0000\u0000\u02c5\u0001\u0000\u0000\u0000"+ + "\u0000\u02c7\u0001\u0000\u0000\u0000\u0000\u02c9\u0001\u0000\u0000\u0000"+ + "\u0000\u02cb\u0001\u0000\u0000\u0000\u0000\u02cd\u0001\u0000\u0000\u0000"+ + "\u0000\u02cf\u0001\u0000\u0000\u0000\u0000\u02d1\u0001\u0000\u0000\u0000"+ + "\u0000\u02d3\u0001\u0000\u0000\u0000\u0000\u02d5\u0001\u0000\u0000\u0000"+ + "\u0000\u02d7\u0001\u0000\u0000\u0000\u0000\u02d9\u0001\u0000\u0000\u0000"+ + "\u0000\u02db\u0001\u0000\u0000\u0000\u0000\u02dd\u0001\u0000\u0000\u0000"+ + "\u0000\u02df\u0001\u0000\u0000\u0000\u0000\u02e1\u0001\u0000\u0000\u0000"+ + "\u0000\u02e3\u0001\u0000\u0000\u0000\u0000\u02e5\u0001\u0000\u0000\u0000"+ + "\u0000\u02e7\u0001\u0000\u0000\u0000\u0000\u02e9\u0001\u0000\u0000\u0000"+ + "\u0000\u02eb\u0001\u0000\u0000\u0000\u0000\u02ed\u0001\u0000\u0000\u0000"+ + "\u0000\u02ef\u0001\u0000\u0000\u0000\u0000\u02f1\u0001\u0000\u0000\u0000"+ + "\u0000\u02f3\u0001\u0000\u0000\u0000\u0000\u02f5\u0001\u0000\u0000\u0000"+ + "\u0000\u02f7\u0001\u0000\u0000\u0000\u0000\u02f9\u0001\u0000\u0000\u0000"+ + "\u0000\u02fb\u0001\u0000\u0000\u0000\u0000\u02fd\u0001\u0000\u0000\u0000"+ + "\u0000\u02ff\u0001\u0000\u0000\u0000\u0000\u0301\u0001\u0000\u0000\u0000"+ + "\u0000\u0303\u0001\u0000\u0000\u0000\u0000\u0305\u0001\u0000\u0000\u0000"+ + "\u0000\u0307\u0001\u0000\u0000\u0000\u0000\u0309\u0001\u0000\u0000\u0000"+ + "\u0000\u030b\u0001\u0000\u0000\u0000\u0000\u030d\u0001\u0000\u0000\u0000"+ + "\u0000\u030f\u0001\u0000\u0000\u0000\u0000\u0311\u0001\u0000\u0000\u0000"+ + "\u0000\u0313\u0001\u0000\u0000\u0000\u0000\u0315\u0001\u0000\u0000\u0000"+ + "\u0000\u0317\u0001\u0000\u0000\u0000\u0000\u0319\u0001\u0000\u0000\u0000"+ + "\u0000\u031b\u0001\u0000\u0000\u0000\u0000\u031d\u0001\u0000\u0000\u0000"+ + "\u0000\u031f\u0001\u0000\u0000\u0000\u0000\u0321\u0001\u0000\u0000\u0000"+ + "\u0000\u0323\u0001\u0000\u0000\u0000\u0000\u0325\u0001\u0000\u0000\u0000"+ + "\u0000\u0327\u0001\u0000\u0000\u0000\u0000\u0329\u0001\u0000\u0000\u0000"+ + "\u0000\u032b\u0001\u0000\u0000\u0000\u0000\u032d\u0001\u0000\u0000\u0000"+ + "\u0000\u032f\u0001\u0000\u0000\u0000\u0000\u0331\u0001\u0000\u0000\u0000"+ + "\u0000\u0333\u0001\u0000\u0000\u0000\u0000\u0335\u0001\u0000\u0000\u0000"+ + "\u0000\u0337\u0001\u0000\u0000\u0000\u0000\u0339\u0001\u0000\u0000\u0000"+ + "\u0000\u033b\u0001\u0000\u0000\u0000\u0000\u033d\u0001\u0000\u0000\u0000"+ + "\u0000\u033f\u0001\u0000\u0000\u0000\u0000\u0341\u0001\u0000\u0000\u0000"+ + "\u0000\u0343\u0001\u0000\u0000\u0000\u0000\u0345\u0001\u0000\u0000\u0000"+ + "\u0000\u0347\u0001\u0000\u0000\u0000\u0000\u0349\u0001\u0000\u0000\u0000"+ + "\u0000\u034b\u0001\u0000\u0000\u0000\u0000\u034d\u0001\u0000\u0000\u0000"+ + "\u0000\u034f\u0001\u0000\u0000\u0000\u0000\u0351\u0001\u0000\u0000\u0000"+ + "\u0000\u0353\u0001\u0000\u0000\u0000\u0000\u0355\u0001\u0000\u0000\u0000"+ + "\u0000\u0357\u0001\u0000\u0000\u0000\u0000\u0359\u0001\u0000\u0000\u0000"+ + "\u0000\u035b\u0001\u0000\u0000\u0000\u0000\u035d\u0001\u0000\u0000\u0000"+ + "\u0000\u035f\u0001\u0000\u0000\u0000\u0000\u0361\u0001\u0000\u0000\u0000"+ + "\u0000\u0363\u0001\u0000\u0000\u0000\u0000\u0365\u0001\u0000\u0000\u0000"+ + "\u0000\u0367\u0001\u0000\u0000\u0000\u0000\u0369\u0001\u0000\u0000\u0000"+ + "\u0000\u036b\u0001\u0000\u0000\u0000\u0000\u036d\u0001\u0000\u0000\u0000"+ + "\u0000\u036f\u0001\u0000\u0000\u0000\u0000\u0371\u0001\u0000\u0000\u0000"+ + "\u0000\u0373\u0001\u0000\u0000\u0000\u0000\u0375\u0001\u0000\u0000\u0000"+ + "\u0000\u0377\u0001\u0000\u0000\u0000\u0000\u0379\u0001\u0000\u0000\u0000"+ + "\u0000\u037b\u0001\u0000\u0000\u0000\u0000\u037d\u0001\u0000\u0000\u0000"+ + "\u0000\u037f\u0001\u0000\u0000\u0000\u0000\u0381\u0001\u0000\u0000\u0000"+ + "\u0000\u0383\u0001\u0000\u0000\u0000\u0000\u0385\u0001\u0000\u0000\u0000"+ + "\u0000\u0387\u0001\u0000\u0000\u0000\u0000\u0389\u0001\u0000\u0000\u0000"+ + "\u0000\u038b\u0001\u0000\u0000\u0000\u0000\u038d\u0001\u0000\u0000\u0000"+ + "\u0000\u038f\u0001\u0000\u0000\u0000\u0000\u0391\u0001\u0000\u0000\u0000"+ + "\u0000\u0393\u0001\u0000\u0000\u0000\u0000\u0395\u0001\u0000\u0000\u0000"+ + "\u0000\u0397\u0001\u0000\u0000\u0000\u0000\u0399\u0001\u0000\u0000\u0000"+ + "\u0000\u039b\u0001\u0000\u0000\u0000\u0000\u039d\u0001\u0000\u0000\u0000"+ + "\u0000\u039f\u0001\u0000\u0000\u0000\u0000\u03a1\u0001\u0000\u0000\u0000"+ + "\u0000\u03a3\u0001\u0000\u0000\u0000\u0000\u03a5\u0001\u0000\u0000\u0000"+ + "\u0000\u03a7\u0001\u0000\u0000\u0000\u0000\u03a9\u0001\u0000\u0000\u0000"+ + "\u0000\u03ab\u0001\u0000\u0000\u0000\u0000\u03ad\u0001\u0000\u0000\u0000"+ + "\u0000\u03af\u0001\u0000\u0000\u0000\u0000\u03b1\u0001\u0000\u0000\u0000"+ + "\u0000\u03b3\u0001\u0000\u0000\u0000\u0000\u03b5\u0001\u0000\u0000\u0000"+ + "\u0000\u03b7\u0001\u0000\u0000\u0000\u0000\u03b9\u0001\u0000\u0000\u0000"+ + "\u0000\u03bb\u0001\u0000\u0000\u0000\u0000\u03bd\u0001\u0000\u0000\u0000"+ + "\u0000\u03bf\u0001\u0000\u0000\u0000\u0000\u03c1\u0001\u0000\u0000\u0000"+ + "\u0000\u03c3\u0001\u0000\u0000\u0000\u0000\u03c5\u0001\u0000\u0000\u0000"+ + "\u0000\u03c7\u0001\u0000\u0000\u0000\u0000\u03c9\u0001\u0000\u0000\u0000"+ + "\u0000\u03cb\u0001\u0000\u0000\u0000\u0000\u03cd\u0001\u0000\u0000\u0000"+ + "\u0000\u03cf\u0001\u0000\u0000\u0000\u0000\u03d1\u0001\u0000\u0000\u0000"+ + "\u0000\u03d3\u0001\u0000\u0000\u0000\u0000\u03d5\u0001\u0000\u0000\u0000"+ + "\u0000\u03d7\u0001\u0000\u0000\u0000\u0000\u03d9\u0001\u0000\u0000\u0000"+ + "\u0000\u03db\u0001\u0000\u0000\u0000\u0000\u03dd\u0001\u0000\u0000\u0000"+ + "\u0000\u03df\u0001\u0000\u0000\u0000\u0000\u03e1\u0001\u0000\u0000\u0000"+ + "\u0000\u03e3\u0001\u0000\u0000\u0000\u0000\u03e5\u0001\u0000\u0000\u0000"+ + "\u0000\u03e7\u0001\u0000\u0000\u0000\u0000\u03e9\u0001\u0000\u0000\u0000"+ + "\u0000\u03eb\u0001\u0000\u0000\u0000\u0000\u03ed\u0001\u0000\u0000\u0000"+ + "\u0000\u03ef\u0001\u0000\u0000\u0000\u0000\u03f1\u0001\u0000\u0000\u0000"+ + "\u0000\u03f3\u0001\u0000\u0000\u0000\u0000\u03f5\u0001\u0000\u0000\u0000"+ + "\u0000\u03f7\u0001\u0000\u0000\u0000\u0000\u03f9\u0001\u0000\u0000\u0000"+ + "\u0000\u03fb\u0001\u0000\u0000\u0000\u0000\u03fd\u0001\u0000\u0000\u0000"+ + "\u0000\u03ff\u0001\u0000\u0000\u0000\u0000\u0401\u0001\u0000\u0000\u0000"+ + "\u0000\u0403\u0001\u0000\u0000\u0000\u0000\u0405\u0001\u0000\u0000\u0000"+ + "\u0000\u0407\u0001\u0000\u0000\u0000\u0000\u0409\u0001\u0000\u0000\u0000"+ + "\u0000\u040b\u0001\u0000\u0000\u0000\u0000\u040d\u0001\u0000\u0000\u0000"+ + "\u0000\u040f\u0001\u0000\u0000\u0000\u0000\u0411\u0001\u0000\u0000\u0000"+ + "\u0000\u0413\u0001\u0000\u0000\u0000\u0000\u0415\u0001\u0000\u0000\u0000"+ + "\u0000\u0417\u0001\u0000\u0000\u0000\u0000\u0419\u0001\u0000\u0000\u0000"+ + "\u0000\u041b\u0001\u0000\u0000\u0000\u0000\u041d\u0001\u0000\u0000\u0000"+ + "\u0000\u041f\u0001\u0000\u0000\u0000\u0000\u0421\u0001\u0000\u0000\u0000"+ + "\u0000\u0423\u0001\u0000\u0000\u0000\u0000\u0425\u0001\u0000\u0000\u0000"+ + "\u0000\u0427\u0001\u0000\u0000\u0000\u0000\u0429\u0001\u0000\u0000\u0000"+ + "\u0000\u042b\u0001\u0000\u0000\u0000\u0000\u042d\u0001\u0000\u0000\u0000"+ + "\u0000\u042f\u0001\u0000\u0000\u0000\u0000\u0431\u0001\u0000\u0000\u0000"+ + "\u0000\u0433\u0001\u0000\u0000\u0000\u0000\u0435\u0001\u0000\u0000\u0000"+ + "\u0000\u0437\u0001\u0000\u0000\u0000\u0000\u0439\u0001\u0000\u0000\u0000"+ + "\u0000\u043b\u0001\u0000\u0000\u0000\u0000\u043d\u0001\u0000\u0000\u0000"+ + "\u0000\u043f\u0001\u0000\u0000\u0000\u0000\u0441\u0001\u0000\u0000\u0000"+ + "\u0000\u0443\u0001\u0000\u0000\u0000\u0000\u0445\u0001\u0000\u0000\u0000"+ + "\u0000\u0447\u0001\u0000\u0000\u0000\u0000\u0449\u0001\u0000\u0000\u0000"+ + "\u0000\u044b\u0001\u0000\u0000\u0000\u0000\u044d\u0001\u0000\u0000\u0000"+ + "\u0000\u044f\u0001\u0000\u0000\u0000\u0000\u0451\u0001\u0000\u0000\u0000"+ + "\u0000\u0453\u0001\u0000\u0000\u0000\u0000\u0455\u0001\u0000\u0000\u0000"+ + "\u0000\u0457\u0001\u0000\u0000\u0000\u0000\u0459\u0001\u0000\u0000\u0000"+ + "\u0000\u045b\u0001\u0000\u0000\u0000\u0000\u045d\u0001\u0000\u0000\u0000"+ + "\u0000\u045f\u0001\u0000\u0000\u0000\u0000\u0461\u0001\u0000\u0000\u0000"+ + "\u0000\u0463\u0001\u0000\u0000\u0000\u0000\u0465\u0001\u0000\u0000\u0000"+ + "\u0000\u0467\u0001\u0000\u0000\u0000\u0000\u0469\u0001\u0000\u0000\u0000"+ + "\u0000\u046b\u0001\u0000\u0000\u0000\u0000\u046d\u0001\u0000\u0000\u0000"+ + "\u0000\u046f\u0001\u0000\u0000\u0000\u0000\u0471\u0001\u0000\u0000\u0000"+ + "\u0000\u0473\u0001\u0000\u0000\u0000\u0000\u0475\u0001\u0000\u0000\u0000"+ + "\u0000\u0477\u0001\u0000\u0000\u0000\u0000\u0479\u0001\u0000\u0000\u0000"+ + "\u0000\u047b\u0001\u0000\u0000\u0000\u0000\u047d\u0001\u0000\u0000\u0000"+ + "\u0000\u047f\u0001\u0000\u0000\u0000\u0000\u0481\u0001\u0000\u0000\u0000"+ + "\u0000\u0483\u0001\u0000\u0000\u0000\u0000\u0485\u0001\u0000\u0000\u0000"+ + "\u0000\u0487\u0001\u0000\u0000\u0000\u0000\u0489\u0001\u0000\u0000\u0000"+ + "\u0000\u048b\u0001\u0000\u0000\u0000\u0000\u048d\u0001\u0000\u0000\u0000"+ + "\u0000\u048f\u0001\u0000\u0000\u0000\u0000\u0491\u0001\u0000\u0000\u0000"+ + "\u0000\u0493\u0001\u0000\u0000\u0000\u0000\u0495\u0001\u0000\u0000\u0000"+ + "\u0000\u0497\u0001\u0000\u0000\u0000\u0000\u0499\u0001\u0000\u0000\u0000"+ + "\u0000\u049b\u0001\u0000\u0000\u0000\u0000\u049d\u0001\u0000\u0000\u0000"+ + "\u0000\u049f\u0001\u0000\u0000\u0000\u0000\u04a1\u0001\u0000\u0000\u0000"+ + "\u0000\u04a3\u0001\u0000\u0000\u0000\u0000\u04a5\u0001\u0000\u0000\u0000"+ + "\u0000\u04a7\u0001\u0000\u0000\u0000\u0000\u04a9\u0001\u0000\u0000\u0000"+ + "\u0000\u04ab\u0001\u0000\u0000\u0000\u0000\u04ad\u0001\u0000\u0000\u0000"+ + "\u0000\u04af\u0001\u0000\u0000\u0000\u0000\u04b1\u0001\u0000\u0000\u0000"+ + "\u0000\u04b3\u0001\u0000\u0000\u0000\u0000\u04b5\u0001\u0000\u0000\u0000"+ + "\u0000\u04b7\u0001\u0000\u0000\u0000\u0000\u04b9\u0001\u0000\u0000\u0000"+ + "\u0000\u04bb\u0001\u0000\u0000\u0000\u0000\u04bd\u0001\u0000\u0000\u0000"+ + "\u0000\u04bf\u0001\u0000\u0000\u0000\u0000\u04c1\u0001\u0000\u0000\u0000"+ + "\u0000\u04c3\u0001\u0000\u0000\u0000\u0000\u04c5\u0001\u0000\u0000\u0000"+ + "\u0000\u04c7\u0001\u0000\u0000\u0000\u0000\u04c9\u0001\u0000\u0000\u0000"+ + "\u0000\u04cb\u0001\u0000\u0000\u0000\u0000\u04cd\u0001\u0000\u0000\u0000"+ + "\u0000\u04cf\u0001\u0000\u0000\u0000\u0000\u04d1\u0001\u0000\u0000\u0000"+ + "\u0000\u04d3\u0001\u0000\u0000\u0000\u0000\u04d5\u0001\u0000\u0000\u0000"+ + "\u0000\u04d7\u0001\u0000\u0000\u0000\u0000\u04d9\u0001\u0000\u0000\u0000"+ + "\u0000\u04db\u0001\u0000\u0000\u0000\u0000\u04dd\u0001\u0000\u0000\u0000"+ + "\u0000\u04df\u0001\u0000\u0000\u0000\u0000\u04e1\u0001\u0000\u0000\u0000"+ + "\u0000\u04e3\u0001\u0000\u0000\u0000\u0000\u04e5\u0001\u0000\u0000\u0000"+ + "\u0000\u04e7\u0001\u0000\u0000\u0000\u0000\u04e9\u0001\u0000\u0000\u0000"+ + "\u0000\u04eb\u0001\u0000\u0000\u0000\u0000\u04ed\u0001\u0000\u0000\u0000"+ + "\u0000\u04ef\u0001\u0000\u0000\u0000\u0000\u04f1\u0001\u0000\u0000\u0000"+ + "\u0000\u04f3\u0001\u0000\u0000\u0000\u0000\u04f5\u0001\u0000\u0000\u0000"+ + "\u0000\u04f7\u0001\u0000\u0000\u0000\u0000\u04f9\u0001\u0000\u0000\u0000"+ + "\u0000\u04fb\u0001\u0000\u0000\u0000\u0000\u04fd\u0001\u0000\u0000\u0000"+ + "\u0000\u04ff\u0001\u0000\u0000\u0000\u0000\u0501\u0001\u0000\u0000\u0000"+ + "\u0000\u0503\u0001\u0000\u0000\u0000\u0000\u0505\u0001\u0000\u0000\u0000"+ + "\u0000\u0507\u0001\u0000\u0000\u0000\u0000\u0509\u0001\u0000\u0000\u0000"+ + "\u0000\u050b\u0001\u0000\u0000\u0000\u0000\u050d\u0001\u0000\u0000\u0000"+ + "\u0000\u050f\u0001\u0000\u0000\u0000\u0000\u0511\u0001\u0000\u0000\u0000"+ + "\u0000\u0513\u0001\u0000\u0000\u0000\u0000\u0515\u0001\u0000\u0000\u0000"+ + "\u0000\u0517\u0001\u0000\u0000\u0000\u0000\u0519\u0001\u0000\u0000\u0000"+ + "\u0000\u051b\u0001\u0000\u0000\u0000\u0000\u051d\u0001\u0000\u0000\u0000"+ + "\u0000\u051f\u0001\u0000\u0000\u0000\u0000\u0521\u0001\u0000\u0000\u0000"+ + "\u0000\u0523\u0001\u0000\u0000\u0000\u0000\u0525\u0001\u0000\u0000\u0000"+ + "\u0000\u0527\u0001\u0000\u0000\u0000\u0000\u0529\u0001\u0000\u0000\u0000"+ + "\u0000\u052b\u0001\u0000\u0000\u0000\u0000\u052d\u0001\u0000\u0000\u0000"+ + "\u0000\u052f\u0001\u0000\u0000\u0000\u0000\u0531\u0001\u0000\u0000\u0000"+ + "\u0000\u0533\u0001\u0000\u0000\u0000\u0000\u0535\u0001\u0000\u0000\u0000"+ + "\u0000\u0537\u0001\u0000\u0000\u0000\u0000\u0539\u0001\u0000\u0000\u0000"+ + "\u0000\u053b\u0001\u0000\u0000\u0000\u0000\u053d\u0001\u0000\u0000\u0000"+ + "\u0000\u053f\u0001\u0000\u0000\u0000\u0000\u0541\u0001\u0000\u0000\u0000"+ + "\u0000\u0543\u0001\u0000\u0000\u0000\u0000\u0545\u0001\u0000\u0000\u0000"+ + "\u0000\u0547\u0001\u0000\u0000\u0000\u0000\u0549\u0001\u0000\u0000\u0000"+ + "\u0000\u054b\u0001\u0000\u0000\u0000\u0000\u054d\u0001\u0000\u0000\u0000"+ + "\u0000\u054f\u0001\u0000\u0000\u0000\u0000\u0551\u0001\u0000\u0000\u0000"+ + "\u0000\u0553\u0001\u0000\u0000\u0000\u0000\u0555\u0001\u0000\u0000\u0000"+ + "\u0000\u0557\u0001\u0000\u0000\u0000\u0000\u0559\u0001\u0000\u0000\u0000"+ + "\u0000\u055b\u0001\u0000\u0000\u0000\u0000\u055d\u0001\u0000\u0000\u0000"+ + "\u0000\u055f\u0001\u0000\u0000\u0000\u0000\u0561\u0001\u0000\u0000\u0000"+ + "\u0000\u0563\u0001\u0000\u0000\u0000\u0000\u0565\u0001\u0000\u0000\u0000"+ + "\u0000\u0567\u0001\u0000\u0000\u0000\u0000\u0569\u0001\u0000\u0000\u0000"+ + "\u0000\u056b\u0001\u0000\u0000\u0000\u0000\u056d\u0001\u0000\u0000\u0000"+ + "\u0000\u056f\u0001\u0000\u0000\u0000\u0000\u0571\u0001\u0000\u0000\u0000"+ + "\u0000\u0573\u0001\u0000\u0000\u0000\u0000\u0575\u0001\u0000\u0000\u0000"+ + "\u0000\u0577\u0001\u0000\u0000\u0000\u0000\u0579\u0001\u0000\u0000\u0000"+ + "\u0000\u057b\u0001\u0000\u0000\u0000\u0000\u057d\u0001\u0000\u0000\u0000"+ + "\u0000\u057f\u0001\u0000\u0000\u0000\u0000\u0581\u0001\u0000\u0000\u0000"+ + "\u0000\u0583\u0001\u0000\u0000\u0000\u0000\u0585\u0001\u0000\u0000\u0000"+ + "\u0000\u0587\u0001\u0000\u0000\u0000\u0000\u0589\u0001\u0000\u0000\u0000"+ + "\u0000\u058b\u0001\u0000\u0000\u0000\u0000\u058d\u0001\u0000\u0000\u0000"+ + "\u0000\u058f\u0001\u0000\u0000\u0000\u0000\u0591\u0001\u0000\u0000\u0000"+ + "\u0000\u0593\u0001\u0000\u0000\u0000\u0000\u0595\u0001\u0000\u0000\u0000"+ + "\u0000\u0597\u0001\u0000\u0000\u0000\u0000\u0599\u0001\u0000\u0000\u0000"+ + "\u0000\u059b\u0001\u0000\u0000\u0000\u0000\u059d\u0001\u0000\u0000\u0000"+ + "\u0000\u059f\u0001\u0000\u0000\u0000\u0000\u05a1\u0001\u0000\u0000\u0000"+ + "\u0000\u05a3\u0001\u0000\u0000\u0000\u0000\u05a5\u0001\u0000\u0000\u0000"+ + "\u0000\u05a7\u0001\u0000\u0000\u0000\u0000\u05a9\u0001\u0000\u0000\u0000"+ + "\u0000\u05ab\u0001\u0000\u0000\u0000\u0000\u05ad\u0001\u0000\u0000\u0000"+ + "\u0000\u05af\u0001\u0000\u0000\u0000\u0000\u05b1\u0001\u0000\u0000\u0000"+ + "\u0000\u05b3\u0001\u0000\u0000\u0000\u0000\u05b5\u0001\u0000\u0000\u0000"+ + "\u0000\u05b7\u0001\u0000\u0000\u0000\u0000\u05b9\u0001\u0000\u0000\u0000"+ + "\u0000\u05bb\u0001\u0000\u0000\u0000\u0000\u05bd\u0001\u0000\u0000\u0000"+ + "\u0000\u05bf\u0001\u0000\u0000\u0000\u0000\u05c1\u0001\u0000\u0000\u0000"+ + "\u0000\u05c3\u0001\u0000\u0000\u0000\u0000\u05c5\u0001\u0000\u0000\u0000"+ + "\u0000\u05c7\u0001\u0000\u0000\u0000\u0000\u05c9\u0001\u0000\u0000\u0000"+ + "\u0000\u05cb\u0001\u0000\u0000\u0000\u0000\u05cd\u0001\u0000\u0000\u0000"+ + "\u0000\u05cf\u0001\u0000\u0000\u0000\u0000\u05d1\u0001\u0000\u0000\u0000"+ + "\u0000\u05d3\u0001\u0000\u0000\u0000\u0000\u05d5\u0001\u0000\u0000\u0000"+ + "\u0000\u05d7\u0001\u0000\u0000\u0000\u0000\u05d9\u0001\u0000\u0000\u0000"+ + "\u0000\u05db\u0001\u0000\u0000\u0000\u0000\u05dd\u0001\u0000\u0000\u0000"+ + "\u0000\u05df\u0001\u0000\u0000\u0000\u0000\u05e1\u0001\u0000\u0000\u0000"+ + "\u0000\u05e3\u0001\u0000\u0000\u0000\u0000\u05e5\u0001\u0000\u0000\u0000"+ + "\u0000\u05e7\u0001\u0000\u0000\u0000\u0000\u05e9\u0001\u0000\u0000\u0000"+ + "\u0000\u05eb\u0001\u0000\u0000\u0000\u0000\u05ed\u0001\u0000\u0000\u0000"+ + "\u0000\u05ef\u0001\u0000\u0000\u0000\u0000\u05f1\u0001\u0000\u0000\u0000"+ + "\u0000\u05f3\u0001\u0000\u0000\u0000\u0000\u05f5\u0001\u0000\u0000\u0000"+ + "\u0000\u05f7\u0001\u0000\u0000\u0000\u0000\u05f9\u0001\u0000\u0000\u0000"+ + "\u0000\u05fb\u0001\u0000\u0000\u0000\u0000\u05fd\u0001\u0000\u0000\u0000"+ + "\u0000\u05ff\u0001\u0000\u0000\u0000\u0000\u0601\u0001\u0000\u0000\u0000"+ + "\u0000\u0603\u0001\u0000\u0000\u0000\u0000\u0605\u0001\u0000\u0000\u0000"+ + "\u0000\u0607\u0001\u0000\u0000\u0000\u0000\u0609\u0001\u0000\u0000\u0000"+ + "\u0000\u060b\u0001\u0000\u0000\u0000\u0000\u060d\u0001\u0000\u0000\u0000"+ + "\u0000\u060f\u0001\u0000\u0000\u0000\u0000\u0611\u0001\u0000\u0000\u0000"+ + "\u0000\u0613\u0001\u0000\u0000\u0000\u0000\u0615\u0001\u0000\u0000\u0000"+ + "\u0000\u0617\u0001\u0000\u0000\u0000\u0000\u0619\u0001\u0000\u0000\u0000"+ + "\u0000\u061b\u0001\u0000\u0000\u0000\u0000\u061d\u0001\u0000\u0000\u0000"+ + "\u0000\u061f\u0001\u0000\u0000\u0000\u0000\u0621\u0001\u0000\u0000\u0000"+ + "\u0000\u0623\u0001\u0000\u0000\u0000\u0000\u0625\u0001\u0000\u0000\u0000"+ + "\u0000\u0627\u0001\u0000\u0000\u0000\u0000\u0629\u0001\u0000\u0000\u0000"+ + "\u0000\u062b\u0001\u0000\u0000\u0000\u0000\u062d\u0001\u0000\u0000\u0000"+ + "\u0000\u062f\u0001\u0000\u0000\u0000\u0000\u0631\u0001\u0000\u0000\u0000"+ + "\u0000\u0633\u0001\u0000\u0000\u0000\u0000\u0635\u0001\u0000\u0000\u0000"+ + "\u0000\u0637\u0001\u0000\u0000\u0000\u0000\u0639\u0001\u0000\u0000\u0000"+ + "\u0000\u063b\u0001\u0000\u0000\u0000\u0000\u063d\u0001\u0000\u0000\u0000"+ + "\u0000\u063f\u0001\u0000\u0000\u0000\u0000\u0641\u0001\u0000\u0000\u0000"+ + "\u0000\u0643\u0001\u0000\u0000\u0000\u0000\u0645\u0001\u0000\u0000\u0000"+ + "\u0000\u0647\u0001\u0000\u0000\u0000\u0000\u0649\u0001\u0000\u0000\u0000"+ + "\u0000\u064b\u0001\u0000\u0000\u0000\u0000\u064d\u0001\u0000\u0000\u0000"+ + "\u0000\u064f\u0001\u0000\u0000\u0000\u0000\u0651\u0001\u0000\u0000\u0000"+ + "\u0000\u0653\u0001\u0000\u0000\u0000\u0000\u0655\u0001\u0000\u0000\u0000"+ + "\u0000\u0657\u0001\u0000\u0000\u0000\u0000\u0659\u0001\u0000\u0000\u0000"+ + "\u0000\u065b\u0001\u0000\u0000\u0000\u0000\u065d\u0001\u0000\u0000\u0000"+ + "\u0000\u065f\u0001\u0000\u0000\u0000\u0000\u0661\u0001\u0000\u0000\u0000"+ + "\u0000\u0663\u0001\u0000\u0000\u0000\u0000\u0665\u0001\u0000\u0000\u0000"+ + "\u0000\u0667\u0001\u0000\u0000\u0000\u0000\u0669\u0001\u0000\u0000\u0000"+ + "\u0000\u066b\u0001\u0000\u0000\u0000\u0000\u066d\u0001\u0000\u0000\u0000"+ + "\u0000\u066f\u0001\u0000\u0000\u0000\u0000\u0671\u0001\u0000\u0000\u0000"+ + "\u0000\u0673\u0001\u0000\u0000\u0000\u0000\u0675\u0001\u0000\u0000\u0000"+ + "\u0000\u0677\u0001\u0000\u0000\u0000\u0000\u0679\u0001\u0000\u0000\u0000"+ + "\u0000\u067b\u0001\u0000\u0000\u0000\u0000\u067d\u0001\u0000\u0000\u0000"+ + "\u0000\u067f\u0001\u0000\u0000\u0000\u0000\u0681\u0001\u0000\u0000\u0000"+ + "\u0000\u0683\u0001\u0000\u0000\u0000\u0000\u0685\u0001\u0000\u0000\u0000"+ + "\u0000\u0687\u0001\u0000\u0000\u0000\u0000\u0689\u0001\u0000\u0000\u0000"+ + "\u0000\u068b\u0001\u0000\u0000\u0000\u0000\u068d\u0001\u0000\u0000\u0000"+ + "\u0000\u068f\u0001\u0000\u0000\u0000\u0000\u0691\u0001\u0000\u0000\u0000"+ + "\u0000\u0693\u0001\u0000\u0000\u0000\u0000\u0695\u0001\u0000\u0000\u0000"+ + "\u0000\u0697\u0001\u0000\u0000\u0000\u0000\u0699\u0001\u0000\u0000\u0000"+ + "\u0000\u069b\u0001\u0000\u0000\u0000\u0000\u069d\u0001\u0000\u0000\u0000"+ + "\u0000\u069f\u0001\u0000\u0000\u0000\u0000\u06a1\u0001\u0000\u0000\u0000"+ + "\u0000\u06a3\u0001\u0000\u0000\u0000\u0000\u06a5\u0001\u0000\u0000\u0000"+ + "\u0000\u06a7\u0001\u0000\u0000\u0000\u0000\u06a9\u0001\u0000\u0000\u0000"+ + "\u0000\u06ab\u0001\u0000\u0000\u0000\u0000\u06ad\u0001\u0000\u0000\u0000"+ + "\u0000\u06af\u0001\u0000\u0000\u0000\u0000\u06b1\u0001\u0000\u0000\u0000"+ + "\u0000\u06b3\u0001\u0000\u0000\u0000\u0000\u06b5\u0001\u0000\u0000\u0000"+ + "\u0000\u06b7\u0001\u0000\u0000\u0000\u0000\u06b9\u0001\u0000\u0000\u0000"+ + "\u0000\u06bb\u0001\u0000\u0000\u0000\u0000\u06bd\u0001\u0000\u0000\u0000"+ + "\u0000\u06bf\u0001\u0000\u0000\u0000\u0000\u06c1\u0001\u0000\u0000\u0000"+ + "\u0000\u06c3\u0001\u0000\u0000\u0000\u0000\u06c5\u0001\u0000\u0000\u0000"+ + "\u0000\u06c7\u0001\u0000\u0000\u0000\u0000\u06c9\u0001\u0000\u0000\u0000"+ + "\u0000\u06cb\u0001\u0000\u0000\u0000\u0000\u06cd\u0001\u0000\u0000\u0000"+ + "\u0000\u06cf\u0001\u0000\u0000\u0000\u0000\u06d1\u0001\u0000\u0000\u0000"+ + "\u0000\u06d3\u0001\u0000\u0000\u0000\u0000\u06d5\u0001\u0000\u0000\u0000"+ + "\u0000\u06d7\u0001\u0000\u0000\u0000\u0000\u06d9\u0001\u0000\u0000\u0000"+ + "\u0000\u06db\u0001\u0000\u0000\u0000\u0000\u06dd\u0001\u0000\u0000\u0000"+ + "\u0000\u06df\u0001\u0000\u0000\u0000\u0000\u06e1\u0001\u0000\u0000\u0000"+ + "\u0000\u06e3\u0001\u0000\u0000\u0000\u0000\u06e5\u0001\u0000\u0000\u0000"+ + "\u0000\u06e7\u0001\u0000\u0000\u0000\u0000\u06e9\u0001\u0000\u0000\u0000"+ + "\u0000\u06eb\u0001\u0000\u0000\u0000\u0000\u06ed\u0001\u0000\u0000\u0000"+ + "\u0000\u06ef\u0001\u0000\u0000\u0000\u0000\u06f1\u0001\u0000\u0000\u0000"+ + "\u0000\u06f3\u0001\u0000\u0000\u0000\u0000\u06f5\u0001\u0000\u0000\u0000"+ + "\u0000\u06f7\u0001\u0000\u0000\u0000\u0000\u06f9\u0001\u0000\u0000\u0000"+ + "\u0000\u06fb\u0001\u0000\u0000\u0000\u0000\u06fd\u0001\u0000\u0000\u0000"+ + "\u0000\u06ff\u0001\u0000\u0000\u0000\u0000\u0701\u0001\u0000\u0000\u0000"+ + "\u0000\u0703\u0001\u0000\u0000\u0000\u0000\u0705\u0001\u0000\u0000\u0000"+ + "\u0000\u0707\u0001\u0000\u0000\u0000\u0000\u0709\u0001\u0000\u0000\u0000"+ + "\u0000\u070b\u0001\u0000\u0000\u0000\u0000\u070d\u0001\u0000\u0000\u0000"+ + "\u0000\u070f\u0001\u0000\u0000\u0000\u0000\u0711\u0001\u0000\u0000\u0000"+ + "\u0000\u0713\u0001\u0000\u0000\u0000\u0000\u0715\u0001\u0000\u0000\u0000"+ + "\u0000\u0717\u0001\u0000\u0000\u0000\u0000\u0719\u0001\u0000\u0000\u0000"+ + "\u0000\u071b\u0001\u0000\u0000\u0000\u0000\u071d\u0001\u0000\u0000\u0000"+ + "\u0000\u071f\u0001\u0000\u0000\u0000\u0000\u0721\u0001\u0000\u0000\u0000"+ + "\u0000\u0723\u0001\u0000\u0000\u0000\u0000\u0725\u0001\u0000\u0000\u0000"+ + "\u0000\u0727\u0001\u0000\u0000\u0000\u0000\u0729\u0001\u0000\u0000\u0000"+ + "\u0000\u072b\u0001\u0000\u0000\u0000\u0000\u072d\u0001\u0000\u0000\u0000"+ + "\u0000\u072f\u0001\u0000\u0000\u0000\u0000\u0731\u0001\u0000\u0000\u0000"+ + "\u0000\u0733\u0001\u0000\u0000\u0000\u0000\u0735\u0001\u0000\u0000\u0000"+ + "\u0000\u0737\u0001\u0000\u0000\u0000\u0000\u0739\u0001\u0000\u0000\u0000"+ + "\u0000\u073b\u0001\u0000\u0000\u0000\u0000\u073d\u0001\u0000\u0000\u0000"+ + "\u0000\u073f\u0001\u0000\u0000\u0000\u0000\u0741\u0001\u0000\u0000\u0000"+ + "\u0000\u0743\u0001\u0000\u0000\u0000\u0000\u0745\u0001\u0000\u0000\u0000"+ + "\u0000\u0747\u0001\u0000\u0000\u0000\u0000\u0749\u0001\u0000\u0000\u0000"+ + "\u0000\u074b\u0001\u0000\u0000\u0000\u0000\u074d\u0001\u0000\u0000\u0000"+ + "\u0000\u074f\u0001\u0000\u0000\u0000\u0000\u0751\u0001\u0000\u0000\u0000"+ + "\u0000\u0753\u0001\u0000\u0000\u0000\u0000\u0755\u0001\u0000\u0000\u0000"+ + "\u0000\u0757\u0001\u0000\u0000\u0000\u0000\u0759\u0001\u0000\u0000\u0000"+ + "\u0000\u075b\u0001\u0000\u0000\u0000\u0000\u075d\u0001\u0000\u0000\u0000"+ + "\u0000\u075f\u0001\u0000\u0000\u0000\u0000\u0761\u0001\u0000\u0000\u0000"+ + "\u0000\u0763\u0001\u0000\u0000\u0000\u0000\u0765\u0001\u0000\u0000\u0000"+ + "\u0000\u0767\u0001\u0000\u0000\u0000\u0000\u0769\u0001\u0000\u0000\u0000"+ + "\u0000\u076b\u0001\u0000\u0000\u0000\u0000\u076d\u0001\u0000\u0000\u0000"+ + "\u0000\u076f\u0001\u0000\u0000\u0000\u0000\u0771\u0001\u0000\u0000\u0000"+ + "\u0000\u0773\u0001\u0000\u0000\u0000\u0000\u0775\u0001\u0000\u0000\u0000"+ + "\u0000\u0777\u0001\u0000\u0000\u0000\u0000\u0779\u0001\u0000\u0000\u0000"+ + "\u0000\u077b\u0001\u0000\u0000\u0000\u0000\u077d\u0001\u0000\u0000\u0000"+ + "\u0000\u077f\u0001\u0000\u0000\u0000\u0000\u0781\u0001\u0000\u0000\u0000"+ + "\u0000\u0783\u0001\u0000\u0000\u0000\u0000\u0785\u0001\u0000\u0000\u0000"+ + "\u0000\u0787\u0001\u0000\u0000\u0000\u0000\u0789\u0001\u0000\u0000\u0000"+ + "\u0000\u078b\u0001\u0000\u0000\u0000\u0000\u078d\u0001\u0000\u0000\u0000"+ + "\u0000\u078f\u0001\u0000\u0000\u0000\u0000\u0791\u0001\u0000\u0000\u0000"+ + "\u0000\u0793\u0001\u0000\u0000\u0000\u0000\u0795\u0001\u0000\u0000\u0000"+ + "\u0000\u0797\u0001\u0000\u0000\u0000\u0000\u07ab\u0001\u0000\u0000\u0000"+ + "\u0001\u07ae\u0001\u0000\u0000\u0000\u0003\u07b4\u0001\u0000\u0000\u0000"+ + "\u0005\u07c2\u0001\u0000\u0000\u0000\u0007\u07ed\u0001\u0000\u0000\u0000"+ + "\t\u07f1\u0001\u0000\u0000\u0000\u000b\u07f5\u0001\u0000\u0000\u0000\r"+ + "\u07f9\u0001\u0000\u0000\u0000\u000f\u07ff\u0001\u0000\u0000\u0000\u0011"+ + "\u0807\u0001\u0000\u0000\u0000\u0013\u080b\u0001\u0000\u0000\u0000\u0015"+ + "\u080e\u0001\u0000\u0000\u0000\u0017\u0812\u0001\u0000\u0000\u0000\u0019"+ + "\u0819\u0001\u0000\u0000\u0000\u001b\u0821\u0001\u0000\u0000\u0000\u001d"+ + "\u0826\u0001\u0000\u0000\u0000\u001f\u0829\u0001\u0000\u0000\u0000!\u082e"+ + "\u0001\u0000\u0000\u0000#\u0836\u0001\u0000\u0000\u0000%\u083b\u0001\u0000"+ + "\u0000\u0000\'\u0840\u0001\u0000\u0000\u0000)\u0847\u0001\u0000\u0000"+ + "\u0000+\u0851\u0001\u0000\u0000\u0000-\u0857\u0001\u0000\u0000\u0000/"+ + "\u085f\u0001\u0000\u0000\u00001\u0866\u0001\u0000\u0000\u00003\u0870\u0001"+ + "\u0000\u0000\u00005\u087b\u0001\u0000\u0000\u00007\u0884\u0001\u0000\u0000"+ + "\u00009\u088c\u0001\u0000\u0000\u0000;\u0893\u0001\u0000\u0000\u0000="+ + "\u0899\u0001\u0000\u0000\u0000?\u08a6\u0001\u0000\u0000\u0000A\u08ad\u0001"+ + "\u0000\u0000\u0000C\u08b6\u0001\u0000\u0000\u0000E\u08c0\u0001\u0000\u0000"+ + "\u0000G\u08c8\u0001\u0000\u0000\u0000I\u08d0\u0001\u0000\u0000\u0000K"+ + "\u08d8\u0001\u0000\u0000\u0000M\u08df\u0001\u0000\u0000\u0000O\u08e4\u0001"+ + "\u0000\u0000\u0000Q\u08ed\u0001\u0000\u0000\u0000S\u08fb\u0001\u0000\u0000"+ + "\u0000U\u0904\u0001\u0000\u0000\u0000W\u0910\u0001\u0000\u0000\u0000Y"+ + "\u0915\u0001\u0000\u0000\u0000[\u091a\u0001\u0000\u0000\u0000]\u091f\u0001"+ + "\u0000\u0000\u0000_\u0926\u0001\u0000\u0000\u0000a\u092f\u0001\u0000\u0000"+ + "\u0000c\u0937\u0001\u0000\u0000\u0000e\u093e\u0001\u0000\u0000\u0000g"+ + "\u0943\u0001\u0000\u0000\u0000i\u094b\u0001\u0000\u0000\u0000k\u0951\u0001"+ + "\u0000\u0000\u0000m\u0957\u0001\u0000\u0000\u0000o\u095b\u0001\u0000\u0000"+ + "\u0000q\u0961\u0001\u0000\u0000\u0000s\u0969\u0001\u0000\u0000\u0000u"+ + "\u096e\u0001\u0000\u0000\u0000w\u0977\u0001\u0000\u0000\u0000y\u097d\u0001"+ + "\u0000\u0000\u0000{\u0983\u0001\u0000\u0000\u0000}\u098a\u0001\u0000\u0000"+ + "\u0000\u007f\u0998\u0001\u0000\u0000\u0000\u0081\u099b\u0001\u0000\u0000"+ + "\u0000\u0083\u09a2\u0001\u0000\u0000\u0000\u0085\u09a5\u0001\u0000\u0000"+ + "\u0000\u0087\u09ab\u0001\u0000\u0000\u0000\u0089\u09b2\u0001\u0000\u0000"+ + "\u0000\u008b\u09b8\u0001\u0000\u0000\u0000\u008d\u09be\u0001\u0000\u0000"+ + "\u0000\u008f\u09c5\u0001\u0000\u0000\u0000\u0091\u09ce\u0001\u0000\u0000"+ + "\u0000\u0093\u09d3\u0001\u0000\u0000\u0000\u0095\u09d6\u0001\u0000\u0000"+ + "\u0000\u0097\u09de\u0001\u0000\u0000\u0000\u0099\u09e3\u0001\u0000\u0000"+ + "\u0000\u009b\u09e7\u0001\u0000\u0000\u0000\u009d\u09ec\u0001\u0000\u0000"+ + "\u0000\u009f\u09f1\u0001\u0000\u0000\u0000\u00a1\u09f9\u0001\u0000\u0000"+ + "\u0000\u00a3\u09ff\u0001\u0000\u0000\u0000\u00a5\u0a04\u0001\u0000\u0000"+ + "\u0000\u00a7\u0a09\u0001\u0000\u0000\u0000\u00a9\u0a0f\u0001\u0000\u0000"+ + "\u0000\u00ab\u0a16\u0001\u0000\u0000\u0000\u00ad\u0a1c\u0001\u0000\u0000"+ + "\u0000\u00af\u0a21\u0001\u0000\u0000\u0000\u00b1\u0a26\u0001\u0000\u0000"+ + "\u0000\u00b3\u0a2b\u0001\u0000\u0000\u0000\u00b5\u0a38\u0001\u0000\u0000"+ + "\u0000\u00b7\u0a44\u0001\u0000\u0000\u0000\u00b9\u0a62\u0001\u0000\u0000"+ + "\u0000\u00bb\u0a68\u0001\u0000\u0000\u0000\u00bd\u0a71\u0001\u0000\u0000"+ + "\u0000\u00bf\u0a7a\u0001\u0000\u0000\u0000\u00c1\u0a82\u0001\u0000\u0000"+ + "\u0000\u00c3\u0a86\u0001\u0000\u0000\u0000\u00c5\u0a99\u0001\u0000\u0000"+ + "\u0000\u00c7\u0a9e\u0001\u0000\u0000\u0000\u00c9\u0aa1\u0001\u0000\u0000"+ + "\u0000\u00cb\u0aaa\u0001\u0000\u0000\u0000\u00cd\u0ab1\u0001\u0000\u0000"+ + "\u0000\u00cf\u0abc\u0001\u0000\u0000\u0000\u00d1\u0abf\u0001\u0000\u0000"+ + "\u0000\u00d3\u0ac5\u0001\u0000\u0000\u0000\u00d5\u0ac9\u0001\u0000\u0000"+ + "\u0000\u00d7\u0acf\u0001\u0000\u0000\u0000\u00d9\u0ad7\u0001\u0000\u0000"+ + "\u0000\u00db\u0ae1\u0001\u0000\u0000\u0000\u00dd\u0ae9\u0001\u0000\u0000"+ + "\u0000\u00df\u0af3\u0001\u0000\u0000\u0000\u00e1\u0af9\u0001\u0000\u0000"+ + "\u0000\u00e3\u0aff\u0001\u0000\u0000\u0000\u00e5\u0b04\u0001\u0000\u0000"+ + "\u0000\u00e7\u0b0a\u0001\u0000\u0000\u0000\u00e9\u0b15\u0001\u0000\u0000"+ + "\u0000\u00eb\u0b1c\u0001\u0000\u0000\u0000\u00ed\u0b24\u0001\u0000\u0000"+ + "\u0000\u00ef\u0b2b\u0001\u0000\u0000\u0000\u00f1\u0b32\u0001\u0000\u0000"+ + "\u0000\u00f3\u0b3a\u0001\u0000\u0000\u0000\u00f5\u0b42\u0001\u0000\u0000"+ + "\u0000\u00f7\u0b4b\u0001\u0000\u0000\u0000\u00f9\u0b52\u0001\u0000\u0000"+ + "\u0000\u00fb\u0b59\u0001\u0000\u0000\u0000\u00fd\u0b5f\u0001\u0000\u0000"+ + "\u0000\u00ff\u0b65\u0001\u0000\u0000\u0000\u0101\u0b6c\u0001\u0000\u0000"+ + "\u0000\u0103\u0b74\u0001\u0000\u0000\u0000\u0105\u0b7b\u0001\u0000\u0000"+ + "\u0000\u0107\u0b7f\u0001\u0000\u0000\u0000\u0109\u0b89\u0001\u0000\u0000"+ + "\u0000\u010b\u0b8e\u0001\u0000\u0000\u0000\u010d\u0b96\u0001\u0000\u0000"+ + "\u0000\u010f\u0b9a\u0001\u0000\u0000\u0000\u0111\u0ba7\u0001\u0000\u0000"+ + "\u0000\u0113\u0bb0\u0001\u0000\u0000\u0000\u0115\u0bbb\u0001\u0000\u0000"+ + "\u0000\u0117\u0bca\u0001\u0000\u0000\u0000\u0119\u0bde\u0001\u0000\u0000"+ + "\u0000\u011b\u0bef\u0001\u0000\u0000\u0000\u011d\u0bf3\u0001\u0000\u0000"+ + "\u0000\u011f\u0bfc\u0001\u0000\u0000\u0000\u0121\u0c0a\u0001\u0000\u0000"+ + "\u0000\u0123\u0c10\u0001\u0000\u0000\u0000\u0125\u0c1b\u0001\u0000\u0000"+ + "\u0000\u0127\u0c20\u0001\u0000\u0000\u0000\u0129\u0c23\u0001\u0000\u0000"+ + "\u0000\u012b\u0c2c\u0001\u0000\u0000\u0000\u012d\u0c34\u0001\u0000\u0000"+ + "\u0000\u012f\u0c39\u0001\u0000\u0000\u0000\u0131\u0c3e\u0001\u0000\u0000"+ + "\u0000\u0133\u0c44\u0001\u0000\u0000\u0000\u0135\u0c4b\u0001\u0000\u0000"+ + "\u0000\u0137\u0c52\u0001\u0000\u0000\u0000\u0139\u0c5b\u0001\u0000\u0000"+ + "\u0000\u013b\u0c62\u0001\u0000\u0000\u0000\u013d\u0c68\u0001\u0000\u0000"+ + "\u0000\u013f\u0c6c\u0001\u0000\u0000\u0000\u0141\u0c72\u0001\u0000\u0000"+ + "\u0000\u0143\u0c79\u0001\u0000\u0000\u0000\u0145\u0c7e\u0001\u0000\u0000"+ + "\u0000\u0147\u0c84\u0001\u0000\u0000\u0000\u0149\u0c8a\u0001\u0000\u0000"+ + "\u0000\u014b\u0c8f\u0001\u0000\u0000\u0000\u014d\u0c95\u0001\u0000\u0000"+ + "\u0000\u014f\u0c99\u0001\u0000\u0000\u0000\u0151\u0ca2\u0001\u0000\u0000"+ + "\u0000\u0153\u0caa\u0001\u0000\u0000\u0000\u0155\u0cb3\u0001\u0000\u0000"+ + "\u0000\u0157\u0cbd\u0001\u0000\u0000\u0000\u0159\u0cc1\u0001\u0000\u0000"+ + "\u0000\u015b\u0cc9\u0001\u0000\u0000\u0000\u015d\u0cd0\u0001\u0000\u0000"+ + "\u0000\u015f\u0cd5\u0001\u0000\u0000\u0000\u0161\u0cdc\u0001\u0000\u0000"+ + "\u0000\u0163\u0ce2\u0001\u0000\u0000\u0000\u0165\u0cea\u0001\u0000\u0000"+ + "\u0000\u0167\u0cf2\u0001\u0000\u0000\u0000\u0169\u0cf7\u0001\u0000\u0000"+ + "\u0000\u016b\u0cfc\u0001\u0000\u0000\u0000\u016d\u0d06\u0001\u0000\u0000"+ + "\u0000\u016f\u0d0f\u0001\u0000\u0000\u0000\u0171\u0d14\u0001\u0000\u0000"+ + "\u0000\u0173\u0d19\u0001\u0000\u0000\u0000\u0175\u0d21\u0001\u0000\u0000"+ + "\u0000\u0177\u0d28\u0001\u0000\u0000\u0000\u0179\u0d32\u0001\u0000\u0000"+ + "\u0000\u017b\u0d3b\u0001\u0000\u0000\u0000\u017d\u0d40\u0001\u0000\u0000"+ + "\u0000\u017f\u0d4b\u0001\u0000\u0000\u0000\u0181\u0d54\u0001\u0000\u0000"+ + "\u0000\u0183\u0d5d\u0001\u0000\u0000\u0000\u0185\u0d62\u0001\u0000\u0000"+ + "\u0000\u0187\u0d6d\u0001\u0000\u0000\u0000\u0189\u0d76\u0001\u0000\u0000"+ + "\u0000\u018b\u0d7b\u0001\u0000\u0000\u0000\u018d\u0d86\u0001\u0000\u0000"+ + "\u0000\u018f\u0d8f\u0001\u0000\u0000\u0000\u0191\u0d9a\u0001\u0000\u0000"+ + "\u0000\u0193\u0da5\u0001\u0000\u0000\u0000\u0195\u0db1\u0001\u0000\u0000"+ + "\u0000\u0197\u0dbd\u0001\u0000\u0000\u0000\u0199\u0dcb\u0001\u0000\u0000"+ + "\u0000\u019b\u0dde\u0001\u0000\u0000\u0000\u019d\u0df1\u0001\u0000\u0000"+ + "\u0000\u019f\u0e02\u0001\u0000\u0000\u0000\u01a1\u0e12\u0001\u0000\u0000"+ + "\u0000\u01a3\u0e16\u0001\u0000\u0000\u0000\u01a5\u0e1e\u0001\u0000\u0000"+ + "\u0000\u01a7\u0e25\u0001\u0000\u0000\u0000\u01a9\u0e2d\u0001\u0000\u0000"+ + "\u0000\u01ab\u0e33\u0001\u0000\u0000\u0000\u01ad\u0e40\u0001\u0000\u0000"+ + "\u0000\u01af\u0e44\u0001\u0000\u0000\u0000\u01b1\u0e48\u0001\u0000\u0000"+ + "\u0000\u01b3\u0e4c\u0001\u0000\u0000\u0000\u01b5\u0e53\u0001\u0000\u0000"+ + "\u0000\u01b7\u0e5e\u0001\u0000\u0000\u0000\u01b9\u0e6a\u0001\u0000\u0000"+ + "\u0000\u01bb\u0e6e\u0001\u0000\u0000\u0000\u01bd\u0e76\u0001\u0000\u0000"+ + "\u0000\u01bf\u0e7f\u0001\u0000\u0000\u0000\u01c1\u0e88\u0001\u0000\u0000"+ + "\u0000\u01c3\u0e95\u0001\u0000\u0000\u0000\u01c5\u0ea2\u0001\u0000\u0000"+ + "\u0000\u01c7\u0eb4\u0001\u0000\u0000\u0000\u01c9\u0ebe\u0001\u0000\u0000"+ + "\u0000\u01cb\u0ec6\u0001\u0000\u0000\u0000\u01cd\u0ece\u0001\u0000\u0000"+ + "\u0000\u01cf\u0ed7\u0001\u0000\u0000\u0000\u01d1\u0ee0\u0001\u0000\u0000"+ + "\u0000\u01d3\u0ee8\u0001\u0000\u0000\u0000\u01d5\u0ef7\u0001\u0000\u0000"+ + "\u0000\u01d7\u0efb\u0001\u0000\u0000\u0000\u01d9\u0f04\u0001\u0000\u0000"+ + "\u0000\u01db\u0f0b\u0001\u0000\u0000\u0000\u01dd\u0f15\u0001\u0000\u0000"+ + "\u0000\u01df\u0f1d\u0001\u0000\u0000\u0000\u01e1\u0f22\u0001\u0000\u0000"+ + "\u0000\u01e3\u0f2b\u0001\u0000\u0000\u0000\u01e5\u0f34\u0001\u0000\u0000"+ + "\u0000\u01e7\u0f42\u0001\u0000\u0000\u0000\u01e9\u0f4a\u0001\u0000\u0000"+ + "\u0000\u01eb\u0f51\u0001\u0000\u0000\u0000\u01ed\u0f57\u0001\u0000\u0000"+ + "\u0000\u01ef\u0f61\u0001\u0000\u0000\u0000\u01f1\u0f6b\u0001\u0000\u0000"+ + "\u0000\u01f3\u0f6f\u0001\u0000\u0000\u0000\u01f5\u0f72\u0001\u0000\u0000"+ + "\u0000\u01f7\u0f7a\u0001\u0000\u0000\u0000\u01f9\u0f85\u0001\u0000\u0000"+ + "\u0000\u01fb\u0f95\u0001\u0000\u0000\u0000\u01fd\u0fa4\u0001\u0000\u0000"+ + "\u0000\u01ff\u0fb3\u0001\u0000\u0000\u0000\u0201\u0fb9\u0001\u0000\u0000"+ + "\u0000\u0203\u0fc0\u0001\u0000\u0000\u0000\u0205\u0fc4\u0001\u0000\u0000"+ + "\u0000\u0207\u0fca\u0001\u0000\u0000\u0000\u0209\u0fcf\u0001\u0000\u0000"+ + "\u0000\u020b\u0fd7\u0001\u0000\u0000\u0000\u020d\u0fdd\u0001\u0000\u0000"+ + "\u0000\u020f\u0fe3\u0001\u0000\u0000\u0000\u0211\u0fec\u0001\u0000\u0000"+ + "\u0000\u0213\u0ff2\u0001\u0000\u0000\u0000\u0215\u0ffa\u0001\u0000\u0000"+ + "\u0000\u0217\u1002\u0001\u0000\u0000\u0000\u0219\u100b\u0001\u0000\u0000"+ + "\u0000\u021b\u1012\u0001\u0000\u0000\u0000\u021d\u1019\u0001\u0000\u0000"+ + "\u0000\u021f\u101f\u0001\u0000\u0000\u0000\u0221\u1028\u0001\u0000\u0000"+ + "\u0000\u0223\u102d\u0001\u0000\u0000\u0000\u0225\u1035\u0001\u0000\u0000"+ + "\u0000\u0227\u1043\u0001\u0000\u0000\u0000\u0229\u104b\u0001\u0000\u0000"+ + "\u0000\u022b\u1052\u0001\u0000\u0000\u0000\u022d\u105a\u0001\u0000\u0000"+ + "\u0000\u022f\u1065\u0001\u0000\u0000\u0000\u0231\u1070\u0001\u0000\u0000"+ + "\u0000\u0233\u107c\u0001\u0000\u0000\u0000\u0235\u1087\u0001\u0000\u0000"+ + "\u0000\u0237\u1092\u0001\u0000\u0000\u0000\u0239\u109d\u0001\u0000\u0000"+ + "\u0000\u023b\u10a6\u0001\u0000\u0000\u0000\u023d\u10ae\u0001\u0000\u0000"+ + "\u0000\u023f\u10bb\u0001\u0000\u0000\u0000\u0241\u10c0\u0001\u0000\u0000"+ + "\u0000\u0243\u10c4\u0001\u0000\u0000\u0000\u0245\u10c9\u0001\u0000\u0000"+ + "\u0000\u0247\u10d2\u0001\u0000\u0000\u0000\u0249\u10dd\u0001\u0000\u0000"+ + "\u0000\u024b\u10ea\u0001\u0000\u0000\u0000\u024d\u10f2\u0001\u0000\u0000"+ + "\u0000\u024f\u1102\u0001\u0000\u0000\u0000\u0251\u110f\u0001\u0000\u0000"+ + "\u0000\u0253\u1119\u0001\u0000\u0000\u0000\u0255\u1121\u0001\u0000\u0000"+ + "\u0000\u0257\u1129\u0001\u0000\u0000\u0000\u0259\u112e\u0001\u0000\u0000"+ + "\u0000\u025b\u1131\u0001\u0000\u0000\u0000\u025d\u113a\u0001\u0000\u0000"+ + "\u0000\u025f\u1144\u0001\u0000\u0000\u0000\u0261\u114c\u0001\u0000\u0000"+ + "\u0000\u0263\u1153\u0001\u0000\u0000\u0000\u0265\u115e\u0001\u0000\u0000"+ + "\u0000\u0267\u1162\u0001\u0000\u0000\u0000\u0269\u1167\u0001\u0000\u0000"+ + "\u0000\u026b\u116e\u0001\u0000\u0000\u0000\u026d\u1176\u0001\u0000\u0000"+ + "\u0000\u026f\u117c\u0001\u0000\u0000\u0000\u0271\u1183\u0001\u0000\u0000"+ + "\u0000\u0273\u118a\u0001\u0000\u0000\u0000\u0275\u118f\u0001\u0000\u0000"+ + "\u0000\u0277\u1195\u0001\u0000\u0000\u0000\u0279\u119c\u0001\u0000\u0000"+ + "\u0000\u027b\u11a2\u0001\u0000\u0000\u0000\u027d\u11ab\u0001\u0000\u0000"+ + "\u0000\u027f\u11b5\u0001\u0000\u0000\u0000\u0281\u11bc\u0001\u0000\u0000"+ + "\u0000\u0283\u11c3\u0001\u0000\u0000\u0000\u0285\u11cc\u0001\u0000\u0000"+ + "\u0000\u0287\u11d8\u0001\u0000\u0000\u0000\u0289\u11dd\u0001\u0000\u0000"+ + "\u0000\u028b\u11e4\u0001\u0000\u0000\u0000\u028d\u11eb\u0001\u0000\u0000"+ + "\u0000\u028f\u11fb\u0001\u0000\u0000\u0000\u0291\u1202\u0001\u0000\u0000"+ + "\u0000\u0293\u1208\u0001\u0000\u0000\u0000\u0295\u120e\u0001\u0000\u0000"+ + "\u0000\u0297\u1214\u0001\u0000\u0000\u0000\u0299\u121c\u0001\u0000\u0000"+ + "\u0000\u029b\u1222\u0001\u0000\u0000\u0000\u029d\u1227\u0001\u0000\u0000"+ + "\u0000\u029f\u1230\u0001\u0000\u0000\u0000\u02a1\u1238\u0001\u0000\u0000"+ + "\u0000\u02a3\u123f\u0001\u0000\u0000\u0000\u02a5\u1246\u0001\u0000\u0000"+ + "\u0000\u02a7\u1258\u0001\u0000\u0000\u0000\u02a9\u1260\u0001\u0000\u0000"+ + "\u0000\u02ab\u1265\u0001\u0000\u0000\u0000\u02ad\u126a\u0001\u0000\u0000"+ + "\u0000\u02af\u126f\u0001\u0000\u0000\u0000\u02b1\u1275\u0001\u0000\u0000"+ + "\u0000\u02b3\u1280\u0001\u0000\u0000\u0000\u02b5\u1292\u0001\u0000\u0000"+ + "\u0000\u02b7\u1299\u0001\u0000\u0000\u0000\u02b9\u12a1\u0001\u0000\u0000"+ + "\u0000\u02bb\u12ae\u0001\u0000\u0000\u0000\u02bd\u12b6\u0001\u0000\u0000"+ + "\u0000\u02bf\u12c4\u0001\u0000\u0000\u0000\u02c1\u12cc\u0001\u0000\u0000"+ + "\u0000\u02c3\u12d5\u0001\u0000\u0000\u0000\u02c5\u12dd\u0001\u0000\u0000"+ + "\u0000\u02c7\u12e0\u0001\u0000\u0000\u0000\u02c9\u12ea\u0001\u0000\u0000"+ + "\u0000\u02cb\u12ee\u0001\u0000\u0000\u0000\u02cd\u12f8\u0001\u0000\u0000"+ + "\u0000\u02cf\u12ff\u0001\u0000\u0000\u0000\u02d1\u1304\u0001\u0000\u0000"+ + "\u0000\u02d3\u1313\u0001\u0000\u0000\u0000\u02d5\u131c\u0001\u0000\u0000"+ + "\u0000\u02d7\u1321\u0001\u0000\u0000\u0000\u02d9\u1328\u0001\u0000\u0000"+ + "\u0000\u02db\u132d\u0001\u0000\u0000\u0000\u02dd\u1333\u0001\u0000\u0000"+ + "\u0000\u02df\u1338\u0001\u0000\u0000\u0000\u02e1\u133e\u0001\u0000\u0000"+ + "\u0000\u02e3\u1346\u0001\u0000\u0000\u0000\u02e5\u134b\u0001\u0000\u0000"+ + "\u0000\u02e7\u1352\u0001\u0000\u0000\u0000\u02e9\u1367\u0001\u0000\u0000"+ + "\u0000\u02eb\u137c\u0001\u0000\u0000\u0000\u02ed\u1389\u0001\u0000\u0000"+ + "\u0000\u02ef\u13a1\u0001\u0000\u0000\u0000\u02f1\u13ad\u0001\u0000\u0000"+ + "\u0000\u02f3\u13bd\u0001\u0000\u0000\u0000\u02f5\u13cc\u0001\u0000\u0000"+ + "\u0000\u02f7\u13dc\u0001\u0000\u0000\u0000\u02f9\u13e8\u0001\u0000\u0000"+ + "\u0000\u02fb\u13fb\u0001\u0000\u0000\u0000\u02fd\u1406\u0001\u0000\u0000"+ + "\u0000\u02ff\u1414\u0001\u0000\u0000\u0000\u0301\u1426\u0001\u0000\u0000"+ + "\u0000\u0303\u1436\u0001\u0000\u0000\u0000\u0305\u1448\u0001\u0000\u0000"+ + "\u0000\u0307\u1457\u0001\u0000\u0000\u0000\u0309\u146a\u0001\u0000\u0000"+ + "\u0000\u030b\u1479\u0001\u0000\u0000\u0000\u030d\u148c\u0001\u0000\u0000"+ + "\u0000\u030f\u1498\u0001\u0000\u0000\u0000\u0311\u14b1\u0001\u0000\u0000"+ + "\u0000\u0313\u14c6\u0001\u0000\u0000\u0000\u0315\u14cf\u0001\u0000\u0000"+ + "\u0000\u0317\u14d8\u0001\u0000\u0000\u0000\u0319\u14ed\u0001\u0000\u0000"+ + "\u0000\u031b\u1502\u0001\u0000\u0000\u0000\u031d\u1509\u0001\u0000\u0000"+ + "\u0000\u031f\u150f\u0001\u0000\u0000\u0000\u0321\u1513\u0001\u0000\u0000"+ + "\u0000\u0323\u151b\u0001\u0000\u0000\u0000\u0325\u1524\u0001\u0000\u0000"+ + "\u0000\u0327\u1529\u0001\u0000\u0000\u0000\u0329\u1530\u0001\u0000\u0000"+ + "\u0000\u032b\u1536\u0001\u0000\u0000\u0000\u032d\u153c\u0001\u0000\u0000"+ + "\u0000\u032f\u1541\u0001\u0000\u0000\u0000\u0331\u1547\u0001\u0000\u0000"+ + "\u0000\u0333\u154d\u0001\u0000\u0000\u0000\u0335\u1553\u0001\u0000\u0000"+ + "\u0000\u0337\u1558\u0001\u0000\u0000\u0000\u0339\u155b\u0001\u0000\u0000"+ + "\u0000\u033b\u1565\u0001\u0000\u0000\u0000\u033d\u156a\u0001\u0000\u0000"+ + "\u0000\u033f\u1572\u0001\u0000\u0000\u0000\u0341\u1579\u0001\u0000\u0000"+ + "\u0000\u0343\u157c\u0001\u0000\u0000\u0000\u0345\u1589\u0001\u0000\u0000"+ + "\u0000\u0347\u158d\u0001\u0000\u0000\u0000\u0349\u1594\u0001\u0000\u0000"+ + "\u0000\u034b\u1599\u0001\u0000\u0000\u0000\u034d\u159e\u0001\u0000\u0000"+ + "\u0000\u034f\u15ae\u0001\u0000\u0000\u0000\u0351\u15b6\u0001\u0000\u0000"+ + "\u0000\u0353\u15bc\u0001\u0000\u0000\u0000\u0355\u15c6\u0001\u0000\u0000"+ + "\u0000\u0357\u15cb\u0001\u0000\u0000\u0000\u0359\u15d2\u0001\u0000\u0000"+ + "\u0000\u035b\u15da\u0001\u0000\u0000\u0000\u035d\u15e7\u0001\u0000\u0000"+ + "\u0000\u035f\u15f2\u0001\u0000\u0000\u0000\u0361\u15fb\u0001\u0000\u0000"+ + "\u0000\u0363\u1601\u0001\u0000\u0000\u0000\u0365\u1608\u0001\u0000\u0000"+ + "\u0000\u0367\u1613\u0001\u0000\u0000\u0000\u0369\u161b\u0001\u0000\u0000"+ + "\u0000\u036b\u1620\u0001\u0000\u0000\u0000\u036d\u1629\u0001\u0000\u0000"+ + "\u0000\u036f\u1631\u0001\u0000\u0000\u0000\u0371\u163a\u0001\u0000\u0000"+ + "\u0000\u0373\u163f\u0001\u0000\u0000\u0000\u0375\u164b\u0001\u0000\u0000"+ + "\u0000\u0377\u1653\u0001\u0000\u0000\u0000\u0379\u165c\u0001\u0000\u0000"+ + "\u0000\u037b\u1662\u0001\u0000\u0000\u0000\u037d\u1668\u0001\u0000\u0000"+ + "\u0000\u037f\u166e\u0001\u0000\u0000\u0000\u0381\u1676\u0001\u0000\u0000"+ + "\u0000\u0383\u167e\u0001\u0000\u0000\u0000\u0385\u168f\u0001\u0000\u0000"+ + "\u0000\u0387\u1699\u0001\u0000\u0000\u0000\u0389\u169f\u0001\u0000\u0000"+ + "\u0000\u038b\u16ae\u0001\u0000\u0000\u0000\u038d\u16bc\u0001\u0000\u0000"+ + "\u0000\u038f\u16c5\u0001\u0000\u0000\u0000\u0391\u16cc\u0001\u0000\u0000"+ + "\u0000\u0393\u16d7\u0001\u0000\u0000\u0000\u0395\u16de\u0001\u0000\u0000"+ + "\u0000\u0397\u16ee\u0001\u0000\u0000\u0000\u0399\u1701\u0001\u0000\u0000"+ + "\u0000\u039b\u1715\u0001\u0000\u0000\u0000\u039d\u172c\u0001\u0000\u0000"+ + "\u0000\u039f\u1741\u0001\u0000\u0000\u0000\u03a1\u1759\u0001\u0000\u0000"+ + "\u0000\u03a3\u1775\u0001\u0000\u0000\u0000\u03a5\u1781\u0001\u0000\u0000"+ + "\u0000\u03a7\u1787\u0001\u0000\u0000\u0000\u03a9\u178e\u0001\u0000\u0000"+ + "\u0000\u03ab\u1796\u0001\u0000\u0000\u0000\u03ad\u179f\u0001\u0000\u0000"+ + "\u0000\u03af\u17a6\u0001\u0000\u0000\u0000\u03b1\u17ad\u0001\u0000\u0000"+ + "\u0000\u03b3\u17b1\u0001\u0000\u0000\u0000\u03b5\u17b6\u0001\u0000\u0000"+ + "\u0000\u03b7\u17c1\u0001\u0000\u0000\u0000\u03b9\u17cb\u0001\u0000\u0000"+ + "\u0000\u03bb\u17d4\u0001\u0000\u0000\u0000\u03bd\u17dd\u0001\u0000\u0000"+ + "\u0000\u03bf\u17e4\u0001\u0000\u0000\u0000\u03c1\u17ec\u0001\u0000\u0000"+ + "\u0000\u03c3\u17f2\u0001\u0000\u0000\u0000\u03c5\u17f9\u0001\u0000\u0000"+ + "\u0000\u03c7\u1800\u0001\u0000\u0000\u0000\u03c9\u1807\u0001\u0000\u0000"+ + "\u0000\u03cb\u180d\u0001\u0000\u0000\u0000\u03cd\u1812\u0001\u0000\u0000"+ + "\u0000\u03cf\u181b\u0001\u0000\u0000\u0000\u03d1\u1822\u0001\u0000\u0000"+ + "\u0000\u03d3\u1827\u0001\u0000\u0000\u0000\u03d5\u182e\u0001\u0000\u0000"+ + "\u0000\u03d7\u1835\u0001\u0000\u0000\u0000\u03d9\u183c\u0001\u0000\u0000"+ + "\u0000\u03db\u184c\u0001\u0000\u0000\u0000\u03dd\u185f\u0001\u0000\u0000"+ + "\u0000\u03df\u1870\u0001\u0000\u0000\u0000\u03e1\u1882\u0001\u0000\u0000"+ + "\u0000\u03e3\u188c\u0001\u0000\u0000\u0000\u03e5\u1899\u0001\u0000\u0000"+ + "\u0000\u03e7\u18a4\u0001\u0000\u0000\u0000\u03e9\u18aa\u0001\u0000\u0000"+ + "\u0000\u03eb\u18b1\u0001\u0000\u0000\u0000\u03ed\u18c3\u0001\u0000\u0000"+ + "\u0000\u03ef\u18d4\u0001\u0000\u0000\u0000\u03f1\u18e7\u0001\u0000\u0000"+ + "\u0000\u03f3\u18ee\u0001\u0000\u0000\u0000\u03f5\u18f3\u0001\u0000\u0000"+ + "\u0000\u03f7\u18fb\u0001\u0000\u0000\u0000\u03f9\u1902\u0001\u0000\u0000"+ + "\u0000\u03fb\u190a\u0001\u0000\u0000\u0000\u03fd\u1917\u0001\u0000\u0000"+ + "\u0000\u03ff\u1925\u0001\u0000\u0000\u0000\u0401\u192d\u0001\u0000\u0000"+ + "\u0000\u0403\u1933\u0001\u0000\u0000\u0000\u0405\u193c\u0001\u0000\u0000"+ + "\u0000\u0407\u1947\u0001\u0000\u0000\u0000\u0409\u1951\u0001\u0000\u0000"+ + "\u0000\u040b\u195b\u0001\u0000\u0000\u0000\u040d\u1960\u0001\u0000\u0000"+ + "\u0000\u040f\u196c\u0001\u0000\u0000\u0000\u0411\u1978\u0001\u0000\u0000"+ + "\u0000\u0413\u1981\u0001\u0000\u0000\u0000\u0415\u198a\u0001\u0000\u0000"+ + "\u0000\u0417\u1994\u0001\u0000\u0000\u0000\u0419\u199d\u0001\u0000\u0000"+ + "\u0000\u041b\u19ae\u0001\u0000\u0000\u0000\u041d\u19b8\u0001\u0000\u0000"+ + "\u0000\u041f\u19c0\u0001\u0000\u0000\u0000\u0421\u19c6\u0001\u0000\u0000"+ + "\u0000\u0423\u19ce\u0001\u0000\u0000\u0000\u0425\u19d3\u0001\u0000\u0000"+ + "\u0000\u0427\u19db\u0001\u0000\u0000\u0000\u0429\u19ea\u0001\u0000\u0000"+ + "\u0000\u042b\u19f5\u0001\u0000\u0000\u0000\u042d\u19fb\u0001\u0000\u0000"+ + "\u0000\u042f\u1a05\u0001\u0000\u0000\u0000\u0431\u1a0a\u0001\u0000\u0000"+ + "\u0000\u0433\u1a0f\u0001\u0000\u0000\u0000\u0435\u1a18\u0001\u0000\u0000"+ + "\u0000\u0437\u1a20\u0001\u0000\u0000\u0000\u0439\u1a25\u0001\u0000\u0000"+ + "\u0000\u043b\u1a2d\u0001\u0000\u0000\u0000\u043d\u1a32\u0001\u0000\u0000"+ + "\u0000\u043f\u1a35\u0001\u0000\u0000\u0000\u0441\u1a39\u0001\u0000\u0000"+ + "\u0000\u0443\u1a3d\u0001\u0000\u0000\u0000\u0445\u1a41\u0001\u0000\u0000"+ + "\u0000\u0447\u1a45\u0001\u0000\u0000\u0000\u0449\u1a49\u0001\u0000\u0000"+ + "\u0000\u044b\u1a52\u0001\u0000\u0000\u0000\u044d\u1a5a\u0001\u0000\u0000"+ + "\u0000\u044f\u1a60\u0001\u0000\u0000\u0000\u0451\u1a64\u0001\u0000\u0000"+ + "\u0000\u0453\u1a69\u0001\u0000\u0000\u0000\u0455\u1a70\u0001\u0000\u0000"+ + "\u0000\u0457\u1a75\u0001\u0000\u0000\u0000\u0459\u1a7c\u0001\u0000\u0000"+ + "\u0000\u045b\u1a88\u0001\u0000\u0000\u0000\u045d\u1a8f\u0001\u0000\u0000"+ + "\u0000\u045f\u1a97\u0001\u0000\u0000\u0000\u0461\u1a9f\u0001\u0000\u0000"+ + "\u0000\u0463\u1aa4\u0001\u0000\u0000\u0000\u0465\u1aac\u0001\u0000\u0000"+ + "\u0000\u0467\u1ab3\u0001\u0000\u0000\u0000\u0469\u1abc\u0001\u0000\u0000"+ + "\u0000\u046b\u1ac2\u0001\u0000\u0000\u0000\u046d\u1acd\u0001\u0000\u0000"+ + "\u0000\u046f\u1ad6\u0001\u0000\u0000\u0000\u0471\u1adc\u0001\u0000\u0000"+ + "\u0000\u0473\u1ae1\u0001\u0000\u0000\u0000\u0475\u1ae8\u0001\u0000\u0000"+ + "\u0000\u0477\u1aef\u0001\u0000\u0000\u0000\u0479\u1af6\u0001\u0000\u0000"+ + "\u0000\u047b\u1afd\u0001\u0000\u0000\u0000\u047d\u1b03\u0001\u0000\u0000"+ + "\u0000\u047f\u1b09\u0001\u0000\u0000\u0000\u0481\u1b0f\u0001\u0000\u0000"+ + "\u0000\u0483\u1b15\u0001\u0000\u0000\u0000\u0485\u1b1a\u0001\u0000\u0000"+ + "\u0000\u0487\u1b22\u0001\u0000\u0000\u0000\u0489\u1b28\u0001\u0000\u0000"+ + "\u0000\u048b\u1b2f\u0001\u0000\u0000\u0000\u048d\u1b33\u0001\u0000\u0000"+ + "\u0000\u048f\u1b3b\u0001\u0000\u0000\u0000\u0491\u1b41\u0001\u0000\u0000"+ + "\u0000\u0493\u1b48\u0001\u0000\u0000\u0000\u0495\u1b4c\u0001\u0000\u0000"+ + "\u0000\u0497\u1b54\u0001\u0000\u0000\u0000\u0499\u1b5a\u0001\u0000\u0000"+ + "\u0000\u049b\u1b60\u0001\u0000\u0000\u0000\u049d\u1b67\u0001\u0000\u0000"+ + "\u0000\u049f\u1b6e\u0001\u0000\u0000\u0000\u04a1\u1b75\u0001\u0000\u0000"+ + "\u0000\u04a3\u1b7c\u0001\u0000\u0000\u0000\u04a5\u1b82\u0001\u0000\u0000"+ + "\u0000\u04a7\u1b8b\u0001\u0000\u0000\u0000\u04a9\u1b90\u0001\u0000\u0000"+ + "\u0000\u04ab\u1b95\u0001\u0000\u0000\u0000\u04ad\u1b9c\u0001\u0000\u0000"+ + "\u0000\u04af\u1ba1\u0001\u0000\u0000\u0000\u04b1\u1ba6\u0001\u0000\u0000"+ + "\u0000\u04b3\u1bac\u0001\u0000\u0000\u0000\u04b5\u1bb4\u0001\u0000\u0000"+ + "\u0000\u04b7\u1bba\u0001\u0000\u0000\u0000\u04b9\u1bbf\u0001\u0000\u0000"+ + "\u0000\u04bb\u1bc7\u0001\u0000\u0000\u0000\u04bd\u1bcf\u0001\u0000\u0000"+ + "\u0000\u04bf\u1bd7\u0001\u0000\u0000\u0000\u04c1\u1be1\u0001\u0000\u0000"+ + "\u0000\u04c3\u1be5\u0001\u0000\u0000\u0000\u04c5\u1bef\u0001\u0000\u0000"+ + "\u0000\u04c7\u1bf6\u0001\u0000\u0000\u0000\u04c9\u1bfd\u0001\u0000\u0000"+ + "\u0000\u04cb\u1c08\u0001\u0000\u0000\u0000\u04cd\u1c0f\u0001\u0000\u0000"+ + "\u0000\u04cf\u1c13\u0001\u0000\u0000\u0000\u04d1\u1c1e\u0001\u0000\u0000"+ + "\u0000\u04d3\u1c30\u0001\u0000\u0000\u0000\u04d5\u1c3b\u0001\u0000\u0000"+ + "\u0000\u04d7\u1c45\u0001\u0000\u0000\u0000\u04d9\u1c51\u0001\u0000\u0000"+ + "\u0000\u04db\u1c5e\u0001\u0000\u0000\u0000\u04dd\u1c71\u0001\u0000\u0000"+ + "\u0000\u04df\u1c7c\u0001\u0000\u0000\u0000\u04e1\u1c8c\u0001\u0000\u0000"+ + "\u0000\u04e3\u1c97\u0001\u0000\u0000\u0000\u04e5\u1ca4\u0001\u0000\u0000"+ + "\u0000\u04e7\u1caa\u0001\u0000\u0000\u0000\u04e9\u1cb2\u0001\u0000\u0000"+ + "\u0000\u04eb\u1cb6\u0001\u0000\u0000\u0000\u04ed\u1cbb\u0001\u0000\u0000"+ + "\u0000\u04ef\u1cc3\u0001\u0000\u0000\u0000\u04f1\u1ccb\u0001\u0000\u0000"+ + "\u0000\u04f3\u1cd7\u0001\u0000\u0000\u0000\u04f5\u1ce3\u0001\u0000\u0000"+ + "\u0000\u04f7\u1ce8\u0001\u0000\u0000\u0000\u04f9\u1cf1\u0001\u0000\u0000"+ + "\u0000\u04fb\u1cf6\u0001\u0000\u0000\u0000\u04fd\u1cfd\u0001\u0000\u0000"+ + "\u0000\u04ff\u1d03\u0001\u0000\u0000\u0000\u0501\u1d09\u0001\u0000\u0000"+ + "\u0000\u0503\u1d1c\u0001\u0000\u0000\u0000\u0505\u1d2e\u0001\u0000\u0000"+ + "\u0000\u0507\u1d41\u0001\u0000\u0000\u0000\u0509\u1d51\u0001\u0000\u0000"+ + "\u0000\u050b\u1d63\u0001\u0000\u0000\u0000\u050d\u1d68\u0001\u0000\u0000"+ + "\u0000\u050f\u1d6e\u0001\u0000\u0000\u0000\u0511\u1d78\u0001\u0000\u0000"+ + "\u0000\u0513\u1d7c\u0001\u0000\u0000\u0000\u0515\u1d86\u0001\u0000\u0000"+ + "\u0000\u0517\u1d91\u0001\u0000\u0000\u0000\u0519\u1d98\u0001\u0000\u0000"+ + "\u0000\u051b\u1d9d\u0001\u0000\u0000\u0000\u051d\u1da5\u0001\u0000\u0000"+ + "\u0000\u051f\u1dae\u0001\u0000\u0000\u0000\u0521\u1dbf\u0001\u0000\u0000"+ + "\u0000\u0523\u1dc7\u0001\u0000\u0000\u0000\u0525\u1dd3\u0001\u0000\u0000"+ + "\u0000\u0527\u1de0\u0001\u0000\u0000\u0000\u0529\u1dea\u0001\u0000\u0000"+ + "\u0000\u052b\u1df3\u0001\u0000\u0000\u0000\u052d\u1dfa\u0001\u0000\u0000"+ + "\u0000\u052f\u1e04\u0001\u0000\u0000\u0000\u0531\u1e12\u0001\u0000\u0000"+ + "\u0000\u0533\u1e17\u0001\u0000\u0000\u0000\u0535\u1e22\u0001\u0000\u0000"+ + "\u0000\u0537\u1e26\u0001\u0000\u0000\u0000\u0539\u1e2a\u0001\u0000\u0000"+ + "\u0000\u053b\u1e30\u0001\u0000\u0000\u0000\u053d\u1e4b\u0001\u0000\u0000"+ + "\u0000\u053f\u1e65\u0001\u0000\u0000\u0000\u0541\u1e7a\u0001\u0000\u0000"+ + "\u0000\u0543\u1e88\u0001\u0000\u0000\u0000\u0545\u1e90\u0001\u0000\u0000"+ + "\u0000\u0547\u1e99\u0001\u0000\u0000\u0000\u0549\u1ea5\u0001\u0000\u0000"+ + "\u0000\u054b\u1ead\u0001\u0000\u0000\u0000\u054d\u1eb8\u0001\u0000\u0000"+ + "\u0000\u054f\u1ec2\u0001\u0000\u0000\u0000\u0551\u1ecc\u0001\u0000\u0000"+ + "\u0000\u0553\u1ed3\u0001\u0000\u0000\u0000\u0555\u1edb\u0001\u0000\u0000"+ + "\u0000\u0557\u1ee7\u0001\u0000\u0000\u0000\u0559\u1ef3\u0001\u0000\u0000"+ + "\u0000\u055b\u1efd\u0001\u0000\u0000\u0000\u055d\u1f06\u0001\u0000\u0000"+ + "\u0000\u055f\u1f0a\u0001\u0000\u0000\u0000\u0561\u1f11\u0001\u0000\u0000"+ + "\u0000\u0563\u1f19\u0001\u0000\u0000\u0000\u0565\u1f22\u0001\u0000\u0000"+ + "\u0000\u0567\u1f2b\u0001\u0000\u0000\u0000\u0569\u1f32\u0001\u0000\u0000"+ + "\u0000\u056b\u1f36\u0001\u0000\u0000\u0000\u056d\u1f41\u0001\u0000\u0000"+ + "\u0000\u056f\u1f4e\u0001\u0000\u0000\u0000\u0571\u1f5b\u0001\u0000\u0000"+ + "\u0000\u0573\u1f61\u0001\u0000\u0000\u0000\u0575\u1f6d\u0001\u0000\u0000"+ + "\u0000\u0577\u1f73\u0001\u0000\u0000\u0000\u0579\u1f7a\u0001\u0000\u0000"+ + "\u0000\u057b\u1f85\u0001\u0000\u0000\u0000\u057d\u1f91\u0001\u0000\u0000"+ + "\u0000\u057f\u1f9b\u0001\u0000\u0000\u0000\u0581\u1fa9\u0001\u0000\u0000"+ + "\u0000\u0583\u1fba\u0001\u0000\u0000\u0000\u0585\u1fca\u0001\u0000\u0000"+ + "\u0000\u0587\u1fe5\u0001\u0000\u0000\u0000\u0589\u1fff\u0001\u0000\u0000"+ + "\u0000\u058b\u2010\u0001\u0000\u0000\u0000\u058d\u2020\u0001\u0000\u0000"+ + "\u0000\u058f\u202a\u0001\u0000\u0000\u0000\u0591\u2037\u0001\u0000\u0000"+ + "\u0000\u0593\u2044\u0001\u0000\u0000\u0000\u0595\u2050\u0001\u0000\u0000"+ + "\u0000\u0597\u205b\u0001\u0000\u0000\u0000\u0599\u2064\u0001\u0000\u0000"+ + "\u0000\u059b\u206c\u0001\u0000\u0000\u0000\u059d\u2075\u0001\u0000\u0000"+ + "\u0000\u059f\u2081\u0001\u0000\u0000\u0000\u05a1\u208f\u0001\u0000\u0000"+ + "\u0000\u05a3\u2093\u0001\u0000\u0000\u0000\u05a5\u209a\u0001\u0000\u0000"+ + "\u0000\u05a7\u20a5\u0001\u0000\u0000\u0000\u05a9\u20b0\u0001\u0000\u0000"+ + "\u0000\u05ab\u20ba\u0001\u0000\u0000\u0000\u05ad\u20c4\u0001\u0000\u0000"+ + "\u0000\u05af\u20ca\u0001\u0000\u0000\u0000\u05b1\u20d8\u0001\u0000\u0000"+ + "\u0000\u05b3\u20e3\u0001\u0000\u0000\u0000\u05b5\u20ec\u0001\u0000\u0000"+ + "\u0000\u05b7\u20f4\u0001\u0000\u0000\u0000\u05b9\u20fb\u0001\u0000\u0000"+ + "\u0000\u05bb\u2104\u0001\u0000\u0000\u0000\u05bd\u2111\u0001\u0000\u0000"+ + "\u0000\u05bf\u2119\u0001\u0000\u0000\u0000\u05c1\u2128\u0001\u0000\u0000"+ + "\u0000\u05c3\u2137\u0001\u0000\u0000\u0000\u05c5\u213f\u0001\u0000\u0000"+ + "\u0000\u05c7\u214c\u0001\u0000\u0000\u0000\u05c9\u215b\u0001\u0000\u0000"+ + "\u0000\u05cb\u2161\u0001\u0000\u0000\u0000\u05cd\u2167\u0001\u0000\u0000"+ + "\u0000\u05cf\u216e\u0001\u0000\u0000\u0000\u05d1\u217b\u0001\u0000\u0000"+ + "\u0000\u05d3\u2187\u0001\u0000\u0000\u0000\u05d5\u219a\u0001\u0000\u0000"+ + "\u0000\u05d7\u21ac\u0001\u0000\u0000\u0000\u05d9\u21af\u0001\u0000\u0000"+ + "\u0000\u05db\u21b9\u0001\u0000\u0000\u0000\u05dd\u21c0\u0001\u0000\u0000"+ + "\u0000\u05df\u21c4\u0001\u0000\u0000\u0000\u05e1\u21ca\u0001\u0000\u0000"+ + "\u0000\u05e3\u21cf\u0001\u0000\u0000\u0000\u05e5\u21d5\u0001\u0000\u0000"+ + "\u0000\u05e7\u21da\u0001\u0000\u0000\u0000\u05e9\u21e0\u0001\u0000\u0000"+ + "\u0000\u05eb\u21e9\u0001\u0000\u0000\u0000\u05ed\u21f2\u0001\u0000\u0000"+ + "\u0000\u05ef\u21fb\u0001\u0000\u0000\u0000\u05f1\u220b\u0001\u0000\u0000"+ + "\u0000\u05f3\u2217\u0001\u0000\u0000\u0000\u05f5\u2223\u0001\u0000\u0000"+ + "\u0000\u05f7\u222c\u0001\u0000\u0000\u0000\u05f9\u223a\u0001\u0000\u0000"+ + "\u0000\u05fb\u2246\u0001\u0000\u0000\u0000\u05fd\u2251\u0001\u0000\u0000"+ + "\u0000\u05ff\u225b\u0001\u0000\u0000\u0000\u0601\u225f\u0001\u0000\u0000"+ + "\u0000\u0603\u226d\u0001\u0000\u0000\u0000\u0605\u227a\u0001\u0000\u0000"+ + "\u0000\u0607\u2284\u0001\u0000\u0000\u0000\u0609\u2293\u0001\u0000\u0000"+ + "\u0000\u060b\u22a1\u0001\u0000\u0000\u0000\u060d\u22af\u0001\u0000\u0000"+ + "\u0000\u060f\u22bc\u0001\u0000\u0000\u0000\u0611\u22d4\u0001\u0000\u0000"+ + "\u0000\u0613\u22eb\u0001\u0000\u0000\u0000\u0615\u22fe\u0001\u0000\u0000"+ + "\u0000\u0617\u2310\u0001\u0000\u0000\u0000\u0619\u2325\u0001\u0000\u0000"+ + "\u0000\u061b\u2339\u0001\u0000\u0000\u0000\u061d\u2344\u0001\u0000\u0000"+ + "\u0000\u061f\u234b\u0001\u0000\u0000\u0000\u0621\u2359\u0001\u0000\u0000"+ + "\u0000\u0623\u236a\u0001\u0000\u0000\u0000\u0625\u2374\u0001\u0000\u0000"+ + "\u0000\u0627\u2378\u0001\u0000\u0000\u0000\u0629\u2385\u0001\u0000\u0000"+ + "\u0000\u062b\u2389\u0001\u0000\u0000\u0000\u062d\u2392\u0001\u0000\u0000"+ + "\u0000\u062f\u239d\u0001\u0000\u0000\u0000\u0631\u23a9\u0001\u0000\u0000"+ + "\u0000\u0633\u23ac\u0001\u0000\u0000\u0000\u0635\u23ba\u0001\u0000\u0000"+ + "\u0000\u0637\u23c7\u0001\u0000\u0000\u0000\u0639\u23ce\u0001\u0000\u0000"+ + "\u0000\u063b\u23db\u0001\u0000\u0000\u0000\u063d\u23e7\u0001\u0000\u0000"+ + "\u0000\u063f\u23f7\u0001\u0000\u0000\u0000\u0641\u2406\u0001\u0000\u0000"+ + "\u0000\u0643\u240a\u0001\u0000\u0000\u0000\u0645\u2410\u0001\u0000\u0000"+ + "\u0000\u0647\u2416\u0001\u0000\u0000\u0000\u0649\u241e\u0001\u0000\u0000"+ + "\u0000\u064b\u2423\u0001\u0000\u0000\u0000\u064d\u2430\u0001\u0000\u0000"+ + "\u0000\u064f\u243d\u0001\u0000\u0000\u0000\u0651\u2445\u0001\u0000\u0000"+ + "\u0000\u0653\u244b\u0001\u0000\u0000\u0000\u0655\u2455\u0001\u0000\u0000"+ + "\u0000\u0657\u245a\u0001\u0000\u0000\u0000\u0659\u2460\u0001\u0000\u0000"+ + "\u0000\u065b\u246c\u0001\u0000\u0000\u0000\u065d\u2479\u0001\u0000\u0000"+ + "\u0000\u065f\u247d\u0001\u0000\u0000\u0000\u0661\u2482\u0001\u0000\u0000"+ + "\u0000\u0663\u2487\u0001\u0000\u0000\u0000\u0665\u248c\u0001\u0000\u0000"+ + "\u0000\u0667\u2490\u0001\u0000\u0000\u0000\u0669\u2496\u0001\u0000\u0000"+ + "\u0000\u066b\u249e\u0001\u0000\u0000\u0000\u066d\u24ba\u0001\u0000\u0000"+ + "\u0000\u066f\u24bf\u0001\u0000\u0000\u0000\u0671\u24c4\u0001\u0000\u0000"+ + "\u0000\u0673\u24cf\u0001\u0000\u0000\u0000\u0675\u24d6\u0001\u0000\u0000"+ + "\u0000\u0677\u24e2\u0001\u0000\u0000\u0000\u0679\u24ea\u0001\u0000\u0000"+ + "\u0000\u067b\u24f6\u0001\u0000\u0000\u0000\u067d\u2500\u0001\u0000\u0000"+ + "\u0000\u067f\u2509\u0001\u0000\u0000\u0000\u0681\u2512\u0001\u0000\u0000"+ + "\u0000\u0683\u251c\u0001\u0000\u0000\u0000\u0685\u2528\u0001\u0000\u0000"+ + "\u0000\u0687\u2534\u0001\u0000\u0000\u0000\u0689\u253f\u0001\u0000\u0000"+ + "\u0000\u068b\u254d\u0001\u0000\u0000\u0000\u068d\u255a\u0001\u0000\u0000"+ + "\u0000\u068f\u2566\u0001\u0000\u0000\u0000\u0691\u2572\u0001\u0000\u0000"+ + "\u0000\u0693\u257e\u0001\u0000\u0000\u0000\u0695\u258a\u0001\u0000\u0000"+ + "\u0000\u0697\u2594\u0001\u0000\u0000\u0000\u0699\u25a4\u0001\u0000\u0000"+ + "\u0000\u069b\u25b8\u0001\u0000\u0000\u0000\u069d\u25cb\u0001\u0000\u0000"+ + "\u0000\u069f\u25de\u0001\u0000\u0000\u0000\u06a1\u25fc\u0001\u0000\u0000"+ + "\u0000\u06a3\u2619\u0001\u0000\u0000\u0000\u06a5\u262d\u0001\u0000\u0000"+ + "\u0000\u06a7\u2640\u0001\u0000\u0000\u0000\u06a9\u264d\u0001\u0000\u0000"+ + "\u0000\u06ab\u265d\u0001\u0000\u0000\u0000\u06ad\u266d\u0001\u0000\u0000"+ + "\u0000\u06af\u267c\u0001\u0000\u0000\u0000\u06b1\u268d\u0001\u0000\u0000"+ + "\u0000\u06b3\u269d\u0001\u0000\u0000\u0000\u06b5\u26ab\u0001\u0000\u0000"+ + "\u0000\u06b7\u26b7\u0001\u0000\u0000\u0000\u06b9\u26c2\u0001\u0000\u0000"+ + "\u0000\u06bb\u26ce\u0001\u0000\u0000\u0000\u06bd\u26de\u0001\u0000\u0000"+ + "\u0000\u06bf\u26ed\u0001\u0000\u0000\u0000\u06c1\u2703\u0001\u0000\u0000"+ + "\u0000\u06c3\u2718\u0001\u0000\u0000\u0000\u06c5\u2729\u0001\u0000\u0000"+ + "\u0000\u06c7\u273c\u0001\u0000\u0000\u0000\u06c9\u2750\u0001\u0000\u0000"+ + "\u0000\u06cb\u275d\u0001\u0000\u0000\u0000\u06cd\u2769\u0001\u0000\u0000"+ + "\u0000\u06cf\u277a\u0001\u0000\u0000\u0000\u06d1\u278a\u0001\u0000\u0000"+ + "\u0000\u06d3\u2794\u0001\u0000\u0000\u0000\u06d5\u27a4\u0001\u0000\u0000"+ + "\u0000\u06d7\u27b3\u0001\u0000\u0000\u0000\u06d9\u27c6\u0001\u0000\u0000"+ + "\u0000\u06db\u27d8\u0001\u0000\u0000\u0000\u06dd\u27e0\u0001\u0000\u0000"+ + "\u0000\u06df\u27ee\u0001\u0000\u0000\u0000\u06e1\u27ff\u0001\u0000\u0000"+ + "\u0000\u06e3\u280a\u0001\u0000\u0000\u0000\u06e5\u2813\u0001\u0000\u0000"+ + "\u0000\u06e7\u281d\u0001\u0000\u0000\u0000\u06e9\u2822\u0001\u0000\u0000"+ + "\u0000\u06eb\u2827\u0001\u0000\u0000\u0000\u06ed\u282f\u0001\u0000\u0000"+ + "\u0000\u06ef\u283f\u0001\u0000\u0000\u0000\u06f1\u2847\u0001\u0000\u0000"+ + "\u0000\u06f3\u2853\u0001\u0000\u0000\u0000\u06f5\u2857\u0001\u0000\u0000"+ + "\u0000\u06f7\u2860\u0001\u0000\u0000\u0000\u06f9\u286d\u0001\u0000\u0000"+ + "\u0000\u06fb\u287b\u0001\u0000\u0000\u0000\u06fd\u2887\u0001\u0000\u0000"+ + "\u0000\u06ff\u2893\u0001\u0000\u0000\u0000\u0701\u289b\u0001\u0000\u0000"+ + "\u0000\u0703\u28a5\u0001\u0000\u0000\u0000\u0705\u28ad\u0001\u0000\u0000"+ + "\u0000\u0707\u28b8\u0001\u0000\u0000\u0000\u0709\u28be\u0001\u0000\u0000"+ + "\u0000\u070b\u28c9\u0001\u0000\u0000\u0000\u070d\u28dd\u0001\u0000\u0000"+ + "\u0000\u070f\u28e3\u0001\u0000\u0000\u0000\u0711\u28f2\u0001\u0000\u0000"+ + "\u0000\u0713\u28fc\u0001\u0000\u0000\u0000\u0715\u2902\u0001\u0000\u0000"+ + "\u0000\u0717\u2907\u0001\u0000\u0000\u0000\u0719\u2912\u0001\u0000\u0000"+ + "\u0000\u071b\u292d\u0001\u0000\u0000\u0000\u071d\u2935\u0001\u0000\u0000"+ + "\u0000\u071f\u2957\u0001\u0000\u0000\u0000\u0721\u295f\u0001\u0000\u0000"+ + "\u0000\u0723\u296a\u0001\u0000\u0000\u0000\u0725\u2978\u0001\u0000\u0000"+ + "\u0000\u0727\u297f\u0001\u0000\u0000\u0000\u0729\u2988\u0001\u0000\u0000"+ + "\u0000\u072b\u298a\u0001\u0000\u0000\u0000\u072d\u298c\u0001\u0000\u0000"+ + "\u0000\u072f\u298f\u0001\u0000\u0000\u0000\u0731\u2992\u0001\u0000\u0000"+ + "\u0000\u0733\u2995\u0001\u0000\u0000\u0000\u0735\u2998\u0001\u0000\u0000"+ + "\u0000\u0737\u299b\u0001\u0000\u0000\u0000\u0739\u299e\u0001\u0000\u0000"+ + "\u0000\u073b\u29a1\u0001\u0000\u0000\u0000\u073d\u29a4\u0001\u0000\u0000"+ + "\u0000\u073f\u29a7\u0001\u0000\u0000\u0000\u0741\u29a9\u0001\u0000\u0000"+ + "\u0000\u0743\u29ab\u0001\u0000\u0000\u0000\u0745\u29ad\u0001\u0000\u0000"+ + "\u0000\u0747\u29af\u0001\u0000\u0000\u0000\u0749\u29b2\u0001\u0000\u0000"+ + "\u0000\u074b\u29b4\u0001\u0000\u0000\u0000\u074d\u29b8\u0001\u0000\u0000"+ + "\u0000\u074f\u29bc\u0001\u0000\u0000\u0000\u0751\u29be\u0001\u0000\u0000"+ + "\u0000\u0753\u29c0\u0001\u0000\u0000\u0000\u0755\u29c2\u0001\u0000\u0000"+ + "\u0000\u0757\u29c4\u0001\u0000\u0000\u0000\u0759\u29c6\u0001\u0000\u0000"+ + "\u0000\u075b\u29c8\u0001\u0000\u0000\u0000\u075d\u29ca\u0001\u0000\u0000"+ + "\u0000\u075f\u29cc\u0001\u0000\u0000\u0000\u0761\u29ce\u0001\u0000\u0000"+ + "\u0000\u0763\u29d0\u0001\u0000\u0000\u0000\u0765\u29d2\u0001\u0000\u0000"+ + "\u0000\u0767\u29d4\u0001\u0000\u0000\u0000\u0769\u29d6\u0001\u0000\u0000"+ + "\u0000\u076b\u29d8\u0001\u0000\u0000\u0000\u076d\u29da\u0001\u0000\u0000"+ + "\u0000\u076f\u29dc\u0001\u0000\u0000\u0000\u0771\u29de\u0001\u0000\u0000"+ + "\u0000\u0773\u29e0\u0001\u0000\u0000\u0000\u0775\u29e2\u0001\u0000\u0000"+ + "\u0000\u0777\u29e4\u0001\u0000\u0000\u0000\u0779\u29e6\u0001\u0000\u0000"+ + "\u0000\u077b\u29eb\u0001\u0000\u0000\u0000\u077d\u29f1\u0001\u0000\u0000"+ + "\u0000\u077f\u29f6\u0001\u0000\u0000\u0000\u0781\u29f9\u0001\u0000\u0000"+ + "\u0000\u0783\u2a10\u0001\u0000\u0000\u0000\u0785\u2a3d\u0001\u0000\u0000"+ + "\u0000\u0787\u2a3f\u0001\u0000\u0000\u0000\u0789\u2a42\u0001\u0000\u0000"+ + "\u0000\u078b\u2a44\u0001\u0000\u0000\u0000\u078d\u2a47\u0001\u0000\u0000"+ + "\u0000\u078f\u2a4a\u0001\u0000\u0000\u0000\u0791\u2a4c\u0001\u0000\u0000"+ + "\u0000\u0793\u2a58\u0001\u0000\u0000\u0000\u0795\u2a61\u0001\u0000\u0000"+ + "\u0000\u0797\u2a6c\u0001\u0000\u0000\u0000\u0799\u2a9e\u0001\u0000\u0000"+ + "\u0000\u079b\u2aa0\u0001\u0000\u0000\u0000\u079d\u2aac\u0001\u0000\u0000"+ + "\u0000\u079f\u2aba\u0001\u0000\u0000\u0000\u07a1\u2ac7\u0001\u0000\u0000"+ + "\u0000\u07a3\u2ad4\u0001\u0000\u0000\u0000\u07a5\u2ae1\u0001\u0000\u0000"+ + "\u0000\u07a7\u2ae3\u0001\u0000\u0000\u0000\u07a9\u2ae5\u0001\u0000\u0000"+ + "\u0000\u07ab\u2aee\u0001\u0000\u0000\u0000\u07ad\u07af\u0007\u0000\u0000"+ + "\u0000\u07ae\u07ad\u0001\u0000\u0000\u0000\u07af\u07b0\u0001\u0000\u0000"+ + "\u0000\u07b0\u07ae\u0001\u0000\u0000\u0000\u07b0\u07b1\u0001\u0000\u0000"+ + "\u0000\u07b1\u07b2\u0001\u0000\u0000\u0000\u07b2\u07b3\u0006\u0000\u0000"+ + "\u0000\u07b3\u0002\u0001\u0000\u0000\u0000\u07b4\u07b5\u0005/\u0000\u0000"+ + "\u07b5\u07b6\u0005*\u0000\u0000\u07b6\u07b7\u0005!\u0000\u0000\u07b7\u07b9"+ + "\u0001\u0000\u0000\u0000\u07b8\u07ba\t\u0000\u0000\u0000\u07b9\u07b8\u0001"+ + "\u0000\u0000\u0000\u07ba\u07bb\u0001\u0000\u0000\u0000\u07bb\u07bc\u0001"+ + "\u0000\u0000\u0000\u07bb\u07b9\u0001\u0000\u0000\u0000\u07bc\u07bd\u0001"+ + "\u0000\u0000\u0000\u07bd\u07be\u0005*\u0000\u0000\u07be\u07bf\u0005/\u0000"+ + "\u0000\u07bf\u07c0\u0001\u0000\u0000\u0000\u07c0\u07c1\u0006\u0001\u0001"+ + "\u0000\u07c1\u0004\u0001\u0000\u0000\u0000\u07c2\u07c3\u0005/\u0000\u0000"+ + "\u07c3\u07c4\u0005*\u0000\u0000\u07c4\u07c8\u0001\u0000\u0000\u0000\u07c5"+ + "\u07c7\t\u0000\u0000\u0000\u07c6\u07c5\u0001\u0000\u0000\u0000\u07c7\u07ca"+ + "\u0001\u0000\u0000\u0000\u07c8\u07c9\u0001\u0000\u0000\u0000\u07c8\u07c6"+ + "\u0001\u0000\u0000\u0000\u07c9\u07cb\u0001\u0000\u0000\u0000\u07ca\u07c8"+ + "\u0001\u0000\u0000\u0000\u07cb\u07cc\u0005*\u0000\u0000\u07cc\u07cd\u0005"+ + "/\u0000\u0000\u07cd\u07ce\u0001\u0000\u0000\u0000\u07ce\u07cf\u0006\u0002"+ + "\u0000\u0000\u07cf\u0006\u0001\u0000\u0000\u0000\u07d0\u07d1\u0005-\u0000"+ + "\u0000\u07d1\u07d2\u0005-\u0000\u0000\u07d2\u07d5\u0005 \u0000\u0000\u07d3"+ + "\u07d5\u0005#\u0000\u0000\u07d4\u07d0\u0001\u0000\u0000\u0000\u07d4\u07d3"+ + "\u0001\u0000\u0000\u0000\u07d5\u07d9\u0001\u0000\u0000\u0000\u07d6\u07d8"+ + "\b\u0001\u0000\u0000\u07d7\u07d6\u0001\u0000\u0000\u0000\u07d8\u07db\u0001"+ + "\u0000\u0000\u0000\u07d9\u07d7\u0001\u0000\u0000\u0000\u07d9\u07da\u0001"+ + "\u0000\u0000\u0000\u07da\u07e1\u0001\u0000\u0000\u0000\u07db\u07d9\u0001"+ + "\u0000\u0000\u0000\u07dc\u07de\u0005\r\u0000\u0000\u07dd\u07dc\u0001\u0000"+ + "\u0000\u0000\u07dd\u07de\u0001\u0000\u0000\u0000\u07de\u07df\u0001\u0000"+ + "\u0000\u0000\u07df\u07e2\u0005\n\u0000\u0000\u07e0\u07e2\u0005\u0000\u0000"+ + "\u0001\u07e1\u07dd\u0001\u0000\u0000\u0000\u07e1\u07e0\u0001\u0000\u0000"+ + "\u0000\u07e2\u07ee\u0001\u0000\u0000\u0000\u07e3\u07e4\u0005-\u0000\u0000"+ + "\u07e4\u07e5\u0005-\u0000\u0000\u07e5\u07eb\u0001\u0000\u0000\u0000\u07e6"+ + "\u07e8\u0005\r\u0000\u0000\u07e7\u07e6\u0001\u0000\u0000\u0000\u07e7\u07e8"+ + "\u0001\u0000\u0000\u0000\u07e8\u07e9\u0001\u0000\u0000\u0000\u07e9\u07ec"+ + "\u0005\n\u0000\u0000\u07ea\u07ec\u0005\u0000\u0000\u0001\u07eb\u07e7\u0001"+ + "\u0000\u0000\u0000\u07eb\u07ea\u0001\u0000\u0000\u0000\u07ec\u07ee\u0001"+ + "\u0000\u0000\u0000\u07ed\u07d4\u0001\u0000\u0000\u0000\u07ed\u07e3\u0001"+ + "\u0000\u0000\u0000\u07ee\u07ef\u0001\u0000\u0000\u0000\u07ef\u07f0\u0006"+ + "\u0003\u0000\u0000\u07f0\b\u0001\u0000\u0000\u0000\u07f1\u07f2\u0005A"+ + "\u0000\u0000\u07f2\u07f3\u0005D\u0000\u0000\u07f3\u07f4\u0005D\u0000\u0000"+ + "\u07f4\n\u0001\u0000\u0000\u0000\u07f5\u07f6\u0005A\u0000\u0000\u07f6"+ + "\u07f7\u0005L\u0000\u0000\u07f7\u07f8\u0005L\u0000\u0000\u07f8\f\u0001"+ + "\u0000\u0000\u0000\u07f9\u07fa\u0005A\u0000\u0000\u07fa\u07fb\u0005L\u0000"+ + "\u0000\u07fb\u07fc\u0005T\u0000\u0000\u07fc\u07fd\u0005E\u0000\u0000\u07fd"+ + "\u07fe\u0005R\u0000\u0000\u07fe\u000e\u0001\u0000\u0000\u0000\u07ff\u0800"+ + "\u0005A\u0000\u0000\u0800\u0801\u0005N\u0000\u0000\u0801\u0802\u0005A"+ + "\u0000\u0000\u0802\u0803\u0005L\u0000\u0000\u0803\u0804\u0005Y\u0000\u0000"+ + "\u0804\u0805\u0005Z\u0000\u0000\u0805\u0806\u0005E\u0000\u0000\u0806\u0010"+ + "\u0001\u0000\u0000\u0000\u0807\u0808\u0005A\u0000\u0000\u0808\u0809\u0005"+ + "N\u0000\u0000\u0809\u080a\u0005D\u0000\u0000\u080a\u0012\u0001\u0000\u0000"+ + "\u0000\u080b\u080c\u0005A\u0000\u0000\u080c\u080d\u0005S\u0000\u0000\u080d"+ + "\u0014\u0001\u0000\u0000\u0000\u080e\u080f\u0005A\u0000\u0000\u080f\u0810"+ + "\u0005S\u0000\u0000\u0810\u0811\u0005C\u0000\u0000\u0811\u0016\u0001\u0000"+ + "\u0000\u0000\u0812\u0813\u0005B\u0000\u0000\u0813\u0814\u0005E\u0000\u0000"+ + "\u0814\u0815\u0005F\u0000\u0000\u0815\u0816\u0005O\u0000\u0000\u0816\u0817"+ + "\u0005R\u0000\u0000\u0817\u0818\u0005E\u0000\u0000\u0818\u0018\u0001\u0000"+ + "\u0000\u0000\u0819\u081a\u0005B\u0000\u0000\u081a\u081b\u0005E\u0000\u0000"+ + "\u081b\u081c\u0005T\u0000\u0000\u081c\u081d\u0005W\u0000\u0000\u081d\u081e"+ + "\u0005E\u0000\u0000\u081e\u081f\u0005E\u0000\u0000\u081f\u0820\u0005N"+ + "\u0000\u0000\u0820\u001a\u0001\u0000\u0000\u0000\u0821\u0822\u0005B\u0000"+ + "\u0000\u0822\u0823\u0005O\u0000\u0000\u0823\u0824\u0005T\u0000\u0000\u0824"+ + "\u0825\u0005H\u0000\u0000\u0825\u001c\u0001\u0000\u0000\u0000\u0826\u0827"+ + "\u0005B\u0000\u0000\u0827\u0828\u0005Y\u0000\u0000\u0828\u001e\u0001\u0000"+ + "\u0000\u0000\u0829\u082a\u0005C\u0000\u0000\u082a\u082b\u0005A\u0000\u0000"+ + "\u082b\u082c\u0005L\u0000\u0000\u082c\u082d\u0005L\u0000\u0000\u082d "+ + "\u0001\u0000\u0000\u0000\u082e\u082f\u0005C\u0000\u0000\u082f\u0830\u0005"+ + "A\u0000\u0000\u0830\u0831\u0005S\u0000\u0000\u0831\u0832\u0005C\u0000"+ + "\u0000\u0832\u0833\u0005A\u0000\u0000\u0833\u0834\u0005D\u0000\u0000\u0834"+ + "\u0835\u0005E\u0000\u0000\u0835\"\u0001\u0000\u0000\u0000\u0836\u0837"+ + "\u0005C\u0000\u0000\u0837\u0838\u0005A\u0000\u0000\u0838\u0839\u0005S"+ + "\u0000\u0000\u0839\u083a\u0005E\u0000\u0000\u083a$\u0001\u0000\u0000\u0000"+ + "\u083b\u083c\u0005C\u0000\u0000\u083c\u083d\u0005A\u0000\u0000\u083d\u083e"+ + "\u0005S\u0000\u0000\u083e\u083f\u0005T\u0000\u0000\u083f&\u0001\u0000"+ + "\u0000\u0000\u0840\u0841\u0005C\u0000\u0000\u0841\u0842\u0005H\u0000\u0000"+ + "\u0842\u0843\u0005A\u0000\u0000\u0843\u0844\u0005N\u0000\u0000\u0844\u0845"+ + "\u0005G\u0000\u0000\u0845\u0846\u0005E\u0000\u0000\u0846(\u0001\u0000"+ + "\u0000\u0000\u0847\u0848\u0005C\u0000\u0000\u0848\u0849\u0005H\u0000\u0000"+ + "\u0849\u084a\u0005A\u0000\u0000\u084a\u084b\u0005R\u0000\u0000\u084b\u084c"+ + "\u0005A\u0000\u0000\u084c\u084d\u0005C\u0000\u0000\u084d\u084e\u0005T"+ + "\u0000\u0000\u084e\u084f\u0005E\u0000\u0000\u084f\u0850\u0005R\u0000\u0000"+ + "\u0850*\u0001\u0000\u0000\u0000\u0851\u0852\u0005C\u0000\u0000\u0852\u0853"+ + "\u0005H\u0000\u0000\u0853\u0854\u0005E\u0000\u0000\u0854\u0855\u0005C"+ + "\u0000\u0000\u0855\u0856\u0005K\u0000\u0000\u0856,\u0001\u0000\u0000\u0000"+ + "\u0857\u0858\u0005C\u0000\u0000\u0858\u0859\u0005O\u0000\u0000\u0859\u085a"+ + "\u0005L\u0000\u0000\u085a\u085b\u0005L\u0000\u0000\u085b\u085c\u0005A"+ + "\u0000\u0000\u085c\u085d\u0005T\u0000\u0000\u085d\u085e\u0005E\u0000\u0000"+ + "\u085e.\u0001\u0000\u0000\u0000\u085f\u0860\u0005C\u0000\u0000\u0860\u0861"+ + "\u0005O\u0000\u0000\u0861\u0862\u0005L\u0000\u0000\u0862\u0863\u0005U"+ + "\u0000\u0000\u0863\u0864\u0005M\u0000\u0000\u0864\u0865\u0005N\u0000\u0000"+ + "\u08650\u0001\u0000\u0000\u0000\u0866\u0867\u0005C\u0000\u0000\u0867\u0868"+ + "\u0005O\u0000\u0000\u0868\u0869\u0005N\u0000\u0000\u0869\u086a\u0005D"+ + "\u0000\u0000\u086a\u086b\u0005I\u0000\u0000\u086b\u086c\u0005T\u0000\u0000"+ + "\u086c\u086d\u0005I\u0000\u0000\u086d\u086e\u0005O\u0000\u0000\u086e\u086f"+ + "\u0005N\u0000\u0000\u086f2\u0001\u0000\u0000\u0000\u0870\u0871\u0005C"+ + "\u0000\u0000\u0871\u0872\u0005O\u0000\u0000\u0872\u0873\u0005N\u0000\u0000"+ + "\u0873\u0874\u0005S\u0000\u0000\u0874\u0875\u0005T\u0000\u0000\u0875\u0876"+ + "\u0005R\u0000\u0000\u0876\u0877\u0005A\u0000\u0000\u0877\u0878\u0005I"+ + "\u0000\u0000\u0878\u0879\u0005N\u0000\u0000\u0879\u087a\u0005T\u0000\u0000"+ + "\u087a4\u0001\u0000\u0000\u0000\u087b\u087c\u0005C\u0000\u0000\u087c\u087d"+ + "\u0005O\u0000\u0000\u087d\u087e\u0005N\u0000\u0000\u087e\u087f\u0005T"+ + "\u0000\u0000\u087f\u0880\u0005I\u0000\u0000\u0880\u0881\u0005N\u0000\u0000"+ + "\u0881\u0882\u0005U\u0000\u0000\u0882\u0883\u0005E\u0000\u0000\u08836"+ + "\u0001\u0000\u0000\u0000\u0884\u0885\u0005C\u0000\u0000\u0885\u0886\u0005"+ + "O\u0000\u0000\u0886\u0887\u0005N\u0000\u0000\u0887\u0888\u0005V\u0000"+ + "\u0000\u0888\u0889\u0005E\u0000\u0000\u0889\u088a\u0005R\u0000\u0000\u088a"+ + "\u088b\u0005T\u0000\u0000\u088b8\u0001\u0000\u0000\u0000\u088c\u088d\u0005"+ + "C\u0000\u0000\u088d\u088e\u0005R\u0000\u0000\u088e\u088f\u0005E\u0000"+ + "\u0000\u088f\u0890\u0005A\u0000\u0000\u0890\u0891\u0005T\u0000\u0000\u0891"+ + "\u0892\u0005E\u0000\u0000\u0892:\u0001\u0000\u0000\u0000\u0893\u0894\u0005"+ + "C\u0000\u0000\u0894\u0895\u0005R\u0000\u0000\u0895\u0896\u0005O\u0000"+ + "\u0000\u0896\u0897\u0005S\u0000\u0000\u0897\u0898\u0005S\u0000\u0000\u0898"+ + "<\u0001\u0000\u0000\u0000\u0899\u089a\u0005C\u0000\u0000\u089a\u089b\u0005"+ + "U\u0000\u0000\u089b\u089c\u0005R\u0000\u0000\u089c\u089d\u0005R\u0000"+ + "\u0000\u089d\u089e\u0005E\u0000\u0000\u089e\u089f\u0005N\u0000\u0000\u089f"+ + "\u08a0\u0005T\u0000\u0000\u08a0\u08a1\u0005_\u0000\u0000\u08a1\u08a2\u0005"+ + "U\u0000\u0000\u08a2\u08a3\u0005S\u0000\u0000\u08a3\u08a4\u0005E\u0000"+ + "\u0000\u08a4\u08a5\u0005R\u0000\u0000\u08a5>\u0001\u0000\u0000\u0000\u08a6"+ + "\u08a7\u0005C\u0000\u0000\u08a7\u08a8\u0005U\u0000\u0000\u08a8\u08a9\u0005"+ + "R\u0000\u0000\u08a9\u08aa\u0005S\u0000\u0000\u08aa\u08ab\u0005O\u0000"+ + "\u0000\u08ab\u08ac\u0005R\u0000\u0000\u08ac@\u0001\u0000\u0000\u0000\u08ad"+ + "\u08ae\u0005D\u0000\u0000\u08ae\u08af\u0005A\u0000\u0000\u08af\u08b0\u0005"+ + "T\u0000\u0000\u08b0\u08b1\u0005A\u0000\u0000\u08b1\u08b2\u0005B\u0000"+ + "\u0000\u08b2\u08b3\u0005A\u0000\u0000\u08b3\u08b4\u0005S\u0000\u0000\u08b4"+ + "\u08b5\u0005E\u0000\u0000\u08b5B\u0001\u0000\u0000\u0000\u08b6\u08b7\u0005"+ + "D\u0000\u0000\u08b7\u08b8\u0005A\u0000\u0000\u08b8\u08b9\u0005T\u0000"+ + "\u0000\u08b9\u08ba\u0005A\u0000\u0000\u08ba\u08bb\u0005B\u0000\u0000\u08bb"+ + "\u08bc\u0005A\u0000\u0000\u08bc\u08bd\u0005S\u0000\u0000\u08bd\u08be\u0005"+ + "E\u0000\u0000\u08be\u08bf\u0005S\u0000\u0000\u08bfD\u0001\u0000\u0000"+ + "\u0000\u08c0\u08c1\u0005D\u0000\u0000\u08c1\u08c2\u0005E\u0000\u0000\u08c2"+ + "\u08c3\u0005C\u0000\u0000\u08c3\u08c4\u0005L\u0000\u0000\u08c4\u08c5\u0005"+ + "A\u0000\u0000\u08c5\u08c6\u0005R\u0000\u0000\u08c6\u08c7\u0005E\u0000"+ + "\u0000\u08c7F\u0001\u0000\u0000\u0000\u08c8\u08c9\u0005D\u0000\u0000\u08c9"+ + "\u08ca\u0005E\u0000\u0000\u08ca\u08cb\u0005F\u0000\u0000\u08cb\u08cc\u0005"+ + "A\u0000\u0000\u08cc\u08cd\u0005U\u0000\u0000\u08cd\u08ce\u0005L\u0000"+ + "\u0000\u08ce\u08cf\u0005T\u0000\u0000\u08cfH\u0001\u0000\u0000\u0000\u08d0"+ + "\u08d1\u0005D\u0000\u0000\u08d1\u08d2\u0005E\u0000\u0000\u08d2\u08d3\u0005"+ + "L\u0000\u0000\u08d3\u08d4\u0005A\u0000\u0000\u08d4\u08d5\u0005Y\u0000"+ + "\u0000\u08d5\u08d6\u0005E\u0000\u0000\u08d6\u08d7\u0005D\u0000\u0000\u08d7"+ + "J\u0001\u0000\u0000\u0000\u08d8\u08d9\u0005D\u0000\u0000\u08d9\u08da\u0005"+ + "E\u0000\u0000\u08da\u08db\u0005L\u0000\u0000\u08db\u08dc\u0005E\u0000"+ + "\u0000\u08dc\u08dd\u0005T\u0000\u0000\u08dd\u08de\u0005E\u0000\u0000\u08de"+ + "L\u0001\u0000\u0000\u0000\u08df\u08e0\u0005D\u0000\u0000\u08e0\u08e1\u0005"+ + "E\u0000\u0000\u08e1\u08e2\u0005S\u0000\u0000\u08e2\u08e3\u0005C\u0000"+ + "\u0000\u08e3N\u0001\u0000\u0000\u0000\u08e4\u08e5\u0005D\u0000\u0000\u08e5"+ + "\u08e6\u0005E\u0000\u0000\u08e6\u08e7\u0005S\u0000\u0000\u08e7\u08e8\u0005"+ + "C\u0000\u0000\u08e8\u08e9\u0005R\u0000\u0000\u08e9\u08ea\u0005I\u0000"+ + "\u0000\u08ea\u08eb\u0005B\u0000\u0000\u08eb\u08ec\u0005E\u0000\u0000\u08ec"+ + "P\u0001\u0000\u0000\u0000\u08ed\u08ee\u0005D\u0000\u0000\u08ee\u08ef\u0005"+ + "E\u0000\u0000\u08ef\u08f0\u0005T\u0000\u0000\u08f0\u08f1\u0005E\u0000"+ + "\u0000\u08f1\u08f2\u0005R\u0000\u0000\u08f2\u08f3\u0005M\u0000\u0000\u08f3"+ + "\u08f4\u0005I\u0000\u0000\u08f4\u08f5\u0005N\u0000\u0000\u08f5\u08f6\u0005"+ + "I\u0000\u0000\u08f6\u08f7\u0005S\u0000\u0000\u08f7\u08f8\u0005T\u0000"+ + "\u0000\u08f8\u08f9\u0005I\u0000\u0000\u08f9\u08fa\u0005C\u0000\u0000\u08fa"+ + "R\u0001\u0000\u0000\u0000\u08fb\u08fc\u0005D\u0000\u0000\u08fc\u08fd\u0005"+ + "I\u0000\u0000\u08fd\u08fe\u0005S\u0000\u0000\u08fe\u08ff\u0005T\u0000"+ + "\u0000\u08ff\u0900\u0005I\u0000\u0000\u0900\u0901\u0005N\u0000\u0000\u0901"+ + "\u0902\u0005C\u0000\u0000\u0902\u0903\u0005T\u0000\u0000\u0903T\u0001"+ + "\u0000\u0000\u0000\u0904\u0905\u0005D\u0000\u0000\u0905\u0906\u0005I\u0000"+ + "\u0000\u0906\u0907\u0005S\u0000\u0000\u0907\u0908\u0005T\u0000\u0000\u0908"+ + "\u0909\u0005I\u0000\u0000\u0909\u090a\u0005N\u0000\u0000\u090a\u090b\u0005"+ + "C\u0000\u0000\u090b\u090c\u0005T\u0000\u0000\u090c\u090d\u0005R\u0000"+ + "\u0000\u090d\u090e\u0005O\u0000\u0000\u090e\u090f\u0005W\u0000\u0000\u090f"+ + "V\u0001\u0000\u0000\u0000\u0910\u0911\u0005D\u0000\u0000\u0911\u0912\u0005"+ + "R\u0000\u0000\u0912\u0913\u0005O\u0000\u0000\u0913\u0914\u0005P\u0000"+ + "\u0000\u0914X\u0001\u0000\u0000\u0000\u0915\u0916\u0005E\u0000\u0000\u0916"+ + "\u0917\u0005A\u0000\u0000\u0917\u0918\u0005C\u0000\u0000\u0918\u0919\u0005"+ + "H\u0000\u0000\u0919Z\u0001\u0000\u0000\u0000\u091a\u091b\u0005E\u0000"+ + "\u0000\u091b\u091c\u0005L\u0000\u0000\u091c\u091d\u0005S\u0000\u0000\u091d"+ + "\u091e\u0005E\u0000\u0000\u091e\\\u0001\u0000\u0000\u0000\u091f\u0920"+ + "\u0005E\u0000\u0000\u0920\u0921\u0005L\u0000\u0000\u0921\u0922\u0005S"+ + "\u0000\u0000\u0922\u0923\u0005E\u0000\u0000\u0923\u0924\u0005I\u0000\u0000"+ + "\u0924\u0925\u0005F\u0000\u0000\u0925^\u0001\u0000\u0000\u0000\u0926\u0927"+ + "\u0005E\u0000\u0000\u0927\u0928\u0005N\u0000\u0000\u0928\u0929\u0005C"+ + "\u0000\u0000\u0929\u092a\u0005L\u0000\u0000\u092a\u092b\u0005O\u0000\u0000"+ + "\u092b\u092c\u0005S\u0000\u0000\u092c\u092d\u0005E\u0000\u0000\u092d\u092e"+ + "\u0005D\u0000\u0000\u092e`\u0001\u0000\u0000\u0000\u092f\u0930\u0005E"+ + "\u0000\u0000\u0930\u0931\u0005S\u0000\u0000\u0931\u0932\u0005C\u0000\u0000"+ + "\u0932\u0933\u0005A\u0000\u0000\u0933\u0934\u0005P\u0000\u0000\u0934\u0935"+ + "\u0005E\u0000\u0000\u0935\u0936\u0005D\u0000\u0000\u0936b\u0001\u0000"+ + "\u0000\u0000\u0937\u0938\u0005E\u0000\u0000\u0938\u0939\u0005X\u0000\u0000"+ + "\u0939\u093a\u0005I\u0000\u0000\u093a\u093b\u0005S\u0000\u0000\u093b\u093c"+ + "\u0005T\u0000\u0000\u093c\u093d\u0005S\u0000\u0000\u093dd\u0001\u0000"+ + "\u0000\u0000\u093e\u093f\u0005E\u0000\u0000\u093f\u0940\u0005X\u0000\u0000"+ + "\u0940\u0941\u0005I\u0000\u0000\u0941\u0942\u0005T\u0000\u0000\u0942f"+ + "\u0001\u0000\u0000\u0000\u0943\u0944\u0005E\u0000\u0000\u0944\u0945\u0005"+ + "X\u0000\u0000\u0945\u0946\u0005P\u0000\u0000\u0946\u0947\u0005L\u0000"+ + "\u0000\u0947\u0948\u0005A\u0000\u0000\u0948\u0949\u0005I\u0000\u0000\u0949"+ + "\u094a\u0005N\u0000\u0000\u094ah\u0001\u0000\u0000\u0000\u094b\u094c\u0005"+ + "F\u0000\u0000\u094c\u094d\u0005A\u0000\u0000\u094d\u094e\u0005L\u0000"+ + "\u0000\u094e\u094f\u0005S\u0000\u0000\u094f\u0950\u0005E\u0000\u0000\u0950"+ + "j\u0001\u0000\u0000\u0000\u0951\u0952\u0005F\u0000\u0000\u0952\u0953\u0005"+ + "E\u0000\u0000\u0953\u0954\u0005T\u0000\u0000\u0954\u0955\u0005C\u0000"+ + "\u0000\u0955\u0956\u0005H\u0000\u0000\u0956l\u0001\u0000\u0000\u0000\u0957"+ + "\u0958\u0005F\u0000\u0000\u0958\u0959\u0005O\u0000\u0000\u0959\u095a\u0005"+ + "R\u0000\u0000\u095an\u0001\u0000\u0000\u0000\u095b\u095c\u0005F\u0000"+ + "\u0000\u095c\u095d\u0005O\u0000\u0000\u095d\u095e\u0005R\u0000\u0000\u095e"+ + "\u095f\u0005C\u0000\u0000\u095f\u0960\u0005E\u0000\u0000\u0960p\u0001"+ + "\u0000\u0000\u0000\u0961\u0962\u0005F\u0000\u0000\u0962\u0963\u0005O\u0000"+ + "\u0000\u0963\u0964\u0005R\u0000\u0000\u0964\u0965\u0005E\u0000\u0000\u0965"+ + "\u0966\u0005I\u0000\u0000\u0966\u0967\u0005G\u0000\u0000\u0967\u0968\u0005"+ + "N\u0000\u0000\u0968r\u0001\u0000\u0000\u0000\u0969\u096a\u0005F\u0000"+ + "\u0000\u096a\u096b\u0005R\u0000\u0000\u096b\u096c\u0005O\u0000\u0000\u096c"+ + "\u096d\u0005M\u0000\u0000\u096dt\u0001\u0000\u0000\u0000\u096e\u096f\u0005"+ + "F\u0000\u0000\u096f\u0970\u0005U\u0000\u0000\u0970\u0971\u0005L\u0000"+ + "\u0000\u0971\u0972\u0005L\u0000\u0000\u0972\u0973\u0005T\u0000\u0000\u0973"+ + "\u0974\u0005E\u0000\u0000\u0974\u0975\u0005X\u0000\u0000\u0975\u0976\u0005"+ + "T\u0000\u0000\u0976v\u0001\u0000\u0000\u0000\u0977\u0978\u0005G\u0000"+ + "\u0000\u0978\u0979\u0005R\u0000\u0000\u0979\u097a\u0005A\u0000\u0000\u097a"+ + "\u097b\u0005N\u0000\u0000\u097b\u097c\u0005T\u0000\u0000\u097cx\u0001"+ + "\u0000\u0000\u0000\u097d\u097e\u0005G\u0000\u0000\u097e\u097f\u0005R\u0000"+ + "\u0000\u097f\u0980\u0005O\u0000\u0000\u0980\u0981\u0005U\u0000\u0000\u0981"+ + "\u0982\u0005P\u0000\u0000\u0982z\u0001\u0000\u0000\u0000\u0983\u0984\u0005"+ + "H\u0000\u0000\u0984\u0985\u0005A\u0000\u0000\u0985\u0986\u0005V\u0000"+ + "\u0000\u0986\u0987\u0005I\u0000\u0000\u0987\u0988\u0005N\u0000\u0000\u0988"+ + "\u0989\u0005G\u0000\u0000\u0989|\u0001\u0000\u0000\u0000\u098a\u098b\u0005"+ + "H\u0000\u0000\u098b\u098c\u0005I\u0000\u0000\u098c\u098d\u0005G\u0000"+ + "\u0000\u098d\u098e\u0005H\u0000\u0000\u098e\u098f\u0005_\u0000\u0000\u098f"+ + "\u0990\u0005P\u0000\u0000\u0990\u0991\u0005R\u0000\u0000\u0991\u0992\u0005"+ + "I\u0000\u0000\u0992\u0993\u0005O\u0000\u0000\u0993\u0994\u0005R\u0000"+ + "\u0000\u0994\u0995\u0005I\u0000\u0000\u0995\u0996\u0005T\u0000\u0000\u0996"+ + "\u0997\u0005Y\u0000\u0000\u0997~\u0001\u0000\u0000\u0000\u0998\u0999\u0005"+ + "I\u0000\u0000\u0999\u099a\u0005F\u0000\u0000\u099a\u0080\u0001\u0000\u0000"+ + "\u0000\u099b\u099c\u0005I\u0000\u0000\u099c\u099d\u0005G\u0000\u0000\u099d"+ + "\u099e\u0005N\u0000\u0000\u099e\u099f\u0005O\u0000\u0000\u099f\u09a0\u0005"+ + "R\u0000\u0000\u09a0\u09a1\u0005E\u0000\u0000\u09a1\u0082\u0001\u0000\u0000"+ + "\u0000\u09a2\u09a3\u0005I\u0000\u0000\u09a3\u09a4\u0005N\u0000\u0000\u09a4"+ + "\u0084\u0001\u0000\u0000\u0000\u09a5\u09a6\u0005I\u0000\u0000\u09a6\u09a7"+ + "\u0005N\u0000\u0000\u09a7\u09a8\u0005D\u0000\u0000\u09a8\u09a9\u0005E"+ + "\u0000\u0000\u09a9\u09aa\u0005X\u0000\u0000\u09aa\u0086\u0001\u0000\u0000"+ + "\u0000\u09ab\u09ac\u0005I\u0000\u0000\u09ac\u09ad\u0005N\u0000\u0000\u09ad"+ + "\u09ae\u0005F\u0000\u0000\u09ae\u09af\u0005I\u0000\u0000\u09af\u09b0\u0005"+ + "L\u0000\u0000\u09b0\u09b1\u0005E\u0000\u0000\u09b1\u0088\u0001\u0000\u0000"+ + "\u0000\u09b2\u09b3\u0005I\u0000\u0000\u09b3\u09b4\u0005N\u0000\u0000\u09b4"+ + "\u09b5\u0005N\u0000\u0000\u09b5\u09b6\u0005E\u0000\u0000\u09b6\u09b7\u0005"+ + "R\u0000\u0000\u09b7\u008a\u0001\u0000\u0000\u0000\u09b8\u09b9\u0005I\u0000"+ + "\u0000\u09b9\u09ba\u0005N\u0000\u0000\u09ba\u09bb\u0005O\u0000\u0000\u09bb"+ + "\u09bc\u0005U\u0000\u0000\u09bc\u09bd\u0005T\u0000\u0000\u09bd\u008c\u0001"+ + "\u0000\u0000\u0000\u09be\u09bf\u0005I\u0000\u0000\u09bf\u09c0\u0005N\u0000"+ + "\u0000\u09c0\u09c1\u0005S\u0000\u0000\u09c1\u09c2\u0005E\u0000\u0000\u09c2"+ + "\u09c3\u0005R\u0000\u0000\u09c3\u09c4\u0005T\u0000\u0000\u09c4\u008e\u0001"+ + "\u0000\u0000\u0000\u09c5\u09c6\u0005I\u0000\u0000\u09c6\u09c7\u0005N\u0000"+ + "\u0000\u09c7\u09c8\u0005T\u0000\u0000\u09c8\u09c9\u0005E\u0000\u0000\u09c9"+ + "\u09ca\u0005R\u0000\u0000\u09ca\u09cb\u0005V\u0000\u0000\u09cb\u09cc\u0005"+ + "A\u0000\u0000\u09cc\u09cd\u0005L\u0000\u0000\u09cd\u0090\u0001\u0000\u0000"+ + "\u0000\u09ce\u09cf\u0005I\u0000\u0000\u09cf\u09d0\u0005N\u0000\u0000\u09d0"+ + "\u09d1\u0005T\u0000\u0000\u09d1\u09d2\u0005O\u0000\u0000\u09d2\u0092\u0001"+ + "\u0000\u0000\u0000\u09d3\u09d4\u0005I\u0000\u0000\u09d4\u09d5\u0005S\u0000"+ + "\u0000\u09d5\u0094\u0001\u0000\u0000\u0000\u09d6\u09d7\u0005I\u0000\u0000"+ + "\u09d7\u09d8\u0005T\u0000\u0000\u09d8\u09d9\u0005E\u0000\u0000\u09d9\u09da"+ + "\u0005R\u0000\u0000\u09da\u09db\u0005A\u0000\u0000\u09db\u09dc\u0005T"+ + "\u0000\u0000\u09dc\u09dd\u0005E\u0000\u0000\u09dd\u0096\u0001\u0000\u0000"+ + "\u0000\u09de\u09df\u0005J\u0000\u0000\u09df\u09e0\u0005O\u0000\u0000\u09e0"+ + "\u09e1\u0005I\u0000\u0000\u09e1\u09e2\u0005N\u0000\u0000\u09e2\u0098\u0001"+ + "\u0000\u0000\u0000\u09e3\u09e4\u0005K\u0000\u0000\u09e4\u09e5\u0005E\u0000"+ + "\u0000\u09e5\u09e6\u0005Y\u0000\u0000\u09e6\u009a\u0001\u0000\u0000\u0000"+ + "\u09e7\u09e8\u0005K\u0000\u0000\u09e8\u09e9\u0005E\u0000\u0000\u09e9\u09ea"+ + "\u0005Y\u0000\u0000\u09ea\u09eb\u0005S\u0000\u0000\u09eb\u009c\u0001\u0000"+ + "\u0000\u0000\u09ec\u09ed\u0005K\u0000\u0000\u09ed\u09ee\u0005I\u0000\u0000"+ + "\u09ee\u09ef\u0005L\u0000\u0000\u09ef\u09f0\u0005L\u0000\u0000\u09f0\u009e"+ + "\u0001\u0000\u0000\u0000\u09f1\u09f2\u0005L\u0000\u0000\u09f2\u09f3\u0005"+ + "E\u0000\u0000\u09f3\u09f4\u0005A\u0000\u0000\u09f4\u09f5\u0005D\u0000"+ + "\u0000\u09f5\u09f6\u0005I\u0000\u0000\u09f6\u09f7\u0005N\u0000\u0000\u09f7"+ + "\u09f8\u0005G\u0000\u0000\u09f8\u00a0\u0001\u0000\u0000\u0000\u09f9\u09fa"+ + "\u0005L\u0000\u0000\u09fa\u09fb\u0005E\u0000\u0000\u09fb\u09fc\u0005A"+ + "\u0000\u0000\u09fc\u09fd\u0005V\u0000\u0000\u09fd\u09fe\u0005E\u0000\u0000"+ + "\u09fe\u00a2\u0001\u0000\u0000\u0000\u09ff\u0a00\u0005L\u0000\u0000\u0a00"+ + "\u0a01\u0005E\u0000\u0000\u0a01\u0a02\u0005F\u0000\u0000\u0a02\u0a03\u0005"+ + "T\u0000\u0000\u0a03\u00a4\u0001\u0000\u0000\u0000\u0a04\u0a05\u0005L\u0000"+ + "\u0000\u0a05\u0a06\u0005I\u0000\u0000\u0a06\u0a07\u0005K\u0000\u0000\u0a07"+ + "\u0a08\u0005E\u0000\u0000\u0a08\u00a6\u0001\u0000\u0000\u0000\u0a09\u0a0a"+ + "\u0005L\u0000\u0000\u0a0a\u0a0b\u0005I\u0000\u0000\u0a0b\u0a0c\u0005M"+ + "\u0000\u0000\u0a0c\u0a0d\u0005I\u0000\u0000\u0a0d\u0a0e\u0005T\u0000\u0000"+ + "\u0a0e\u00a8\u0001\u0000\u0000\u0000\u0a0f\u0a10\u0005L\u0000\u0000\u0a10"+ + "\u0a11\u0005I\u0000\u0000\u0a11\u0a12\u0005N\u0000\u0000\u0a12\u0a13\u0005"+ + "E\u0000\u0000\u0a13\u0a14\u0005A\u0000\u0000\u0a14\u0a15\u0005R\u0000"+ + "\u0000\u0a15\u00aa\u0001\u0000\u0000\u0000\u0a16\u0a17\u0005L\u0000\u0000"+ + "\u0a17\u0a18\u0005I\u0000\u0000\u0a18\u0a19\u0005N\u0000\u0000\u0a19\u0a1a"+ + "\u0005E\u0000\u0000\u0a1a\u0a1b\u0005S\u0000\u0000\u0a1b\u00ac\u0001\u0000"+ + "\u0000\u0000\u0a1c\u0a1d\u0005L\u0000\u0000\u0a1d\u0a1e\u0005O\u0000\u0000"+ + "\u0a1e\u0a1f\u0005A\u0000\u0000\u0a1f\u0a20\u0005D\u0000\u0000\u0a20\u00ae"+ + "\u0001\u0000\u0000\u0000\u0a21\u0a22\u0005L\u0000\u0000\u0a22\u0a23\u0005"+ + "O\u0000\u0000\u0a23\u0a24\u0005C\u0000\u0000\u0a24\u0a25\u0005K\u0000"+ + "\u0000\u0a25\u00b0\u0001\u0000\u0000\u0000\u0a26\u0a27\u0005L\u0000\u0000"+ + "\u0a27\u0a28\u0005O\u0000\u0000\u0a28\u0a29\u0005O\u0000\u0000\u0a29\u0a2a"+ + "\u0005P\u0000\u0000\u0a2a\u00b2\u0001\u0000\u0000\u0000\u0a2b\u0a2c\u0005"+ + "L\u0000\u0000\u0a2c\u0a2d\u0005O\u0000\u0000\u0a2d\u0a2e\u0005W\u0000"+ + "\u0000\u0a2e\u0a2f\u0005_\u0000\u0000\u0a2f\u0a30\u0005P\u0000\u0000\u0a30"+ + "\u0a31\u0005R\u0000\u0000\u0a31\u0a32\u0005I\u0000\u0000\u0a32\u0a33\u0005"+ + "O\u0000\u0000\u0a33\u0a34\u0005R\u0000\u0000\u0a34\u0a35\u0005I\u0000"+ + "\u0000\u0a35\u0a36\u0005T\u0000\u0000\u0a36\u0a37\u0005Y\u0000\u0000\u0a37"+ + "\u00b4\u0001\u0000\u0000\u0000\u0a38\u0a39\u0005M\u0000\u0000\u0a39\u0a3a"+ + "\u0005A\u0000\u0000\u0a3a\u0a3b\u0005S\u0000\u0000\u0a3b\u0a3c\u0005T"+ + "\u0000\u0000\u0a3c\u0a3d\u0005E\u0000\u0000\u0a3d\u0a3e\u0005R\u0000\u0000"+ + "\u0a3e\u0a3f\u0005_\u0000\u0000\u0a3f\u0a40\u0005B\u0000\u0000\u0a40\u0a41"+ + "\u0005I\u0000\u0000\u0a41\u0a42\u0005N\u0000\u0000\u0a42\u0a43\u0005D"+ + "\u0000\u0000\u0a43\u00b6\u0001\u0000\u0000\u0000\u0a44\u0a45\u0005M\u0000"+ + "\u0000\u0a45\u0a46\u0005A\u0000\u0000\u0a46\u0a47\u0005S\u0000\u0000\u0a47"+ + "\u0a48\u0005T\u0000\u0000\u0a48\u0a49\u0005E\u0000\u0000\u0a49\u0a4a\u0005"+ + "R\u0000\u0000\u0a4a\u0a4b\u0005_\u0000\u0000\u0a4b\u0a4c\u0005S\u0000"+ + "\u0000\u0a4c\u0a4d\u0005S\u0000\u0000\u0a4d\u0a4e\u0005L\u0000\u0000\u0a4e"+ + "\u0a4f\u0005_\u0000\u0000\u0a4f\u0a50\u0005V\u0000\u0000\u0a50\u0a51\u0005"+ + "E\u0000\u0000\u0a51\u0a52\u0005R\u0000\u0000\u0a52\u0a53\u0005I\u0000"+ + "\u0000\u0a53\u0a54\u0005F\u0000\u0000\u0a54\u0a55\u0005Y\u0000\u0000\u0a55"+ + "\u0a56\u0005_\u0000\u0000\u0a56\u0a57\u0005S\u0000\u0000\u0a57\u0a58\u0005"+ + "E\u0000\u0000\u0a58\u0a59\u0005R\u0000\u0000\u0a59\u0a5a\u0005V\u0000"+ + "\u0000\u0a5a\u0a5b\u0005E\u0000\u0000\u0a5b\u0a5c\u0005R\u0000\u0000\u0a5c"+ + "\u0a5d\u0005_\u0000\u0000\u0a5d\u0a5e\u0005C\u0000\u0000\u0a5e\u0a5f\u0005"+ + "E\u0000\u0000\u0a5f\u0a60\u0005R\u0000\u0000\u0a60\u0a61\u0005T\u0000"+ + "\u0000\u0a61\u00b8\u0001\u0000\u0000\u0000\u0a62\u0a63\u0005M\u0000\u0000"+ + "\u0a63\u0a64\u0005A\u0000\u0000\u0a64\u0a65\u0005T\u0000\u0000\u0a65\u0a66"+ + "\u0005C\u0000\u0000\u0a66\u0a67\u0005H\u0000\u0000\u0a67\u00ba\u0001\u0000"+ + "\u0000\u0000\u0a68\u0a69\u0005M\u0000\u0000\u0a69\u0a6a\u0005A\u0000\u0000"+ + "\u0a6a\u0a6b\u0005X\u0000\u0000\u0a6b\u0a6c\u0005V\u0000\u0000\u0a6c\u0a6d"+ + "\u0005A\u0000\u0000\u0a6d\u0a6e\u0005L\u0000\u0000\u0a6e\u0a6f\u0005U"+ + "\u0000\u0000\u0a6f\u0a70\u0005E\u0000\u0000\u0a70\u00bc\u0001\u0000\u0000"+ + "\u0000\u0a71\u0a72\u0005M\u0000\u0000\u0a72\u0a73\u0005O\u0000\u0000\u0a73"+ + "\u0a74\u0005D\u0000\u0000\u0a74\u0a75\u0005I\u0000\u0000\u0a75\u0a76\u0005"+ + "F\u0000\u0000\u0a76\u0a77\u0005I\u0000\u0000\u0a77\u0a78\u0005E\u0000"+ + "\u0000\u0a78\u0a79\u0005S\u0000\u0000\u0a79\u00be\u0001\u0000\u0000\u0000"+ + "\u0a7a\u0a7b\u0005N\u0000\u0000\u0a7b\u0a7c\u0005A\u0000\u0000\u0a7c\u0a7d"+ + "\u0005T\u0000\u0000\u0a7d\u0a7e\u0005U\u0000\u0000\u0a7e\u0a7f\u0005R"+ + "\u0000\u0000\u0a7f\u0a80\u0005A\u0000\u0000\u0a80\u0a81\u0005L\u0000\u0000"+ + "\u0a81\u00c0\u0001\u0000\u0000\u0000\u0a82\u0a83\u0005N\u0000\u0000\u0a83"+ + "\u0a84\u0005O\u0000\u0000\u0a84\u0a85\u0005T\u0000\u0000\u0a85\u00c2\u0001"+ + "\u0000\u0000\u0000\u0a86\u0a87\u0005N\u0000\u0000\u0a87\u0a88\u0005O\u0000"+ + "\u0000\u0a88\u0a89\u0005_\u0000\u0000\u0a89\u0a8a\u0005W\u0000\u0000\u0a8a"+ + "\u0a8b\u0005R\u0000\u0000\u0a8b\u0a8c\u0005I\u0000\u0000\u0a8c\u0a8d\u0005"+ + "T\u0000\u0000\u0a8d\u0a8e\u0005E\u0000\u0000\u0a8e\u0a8f\u0005_\u0000"+ + "\u0000\u0a8f\u0a90\u0005T\u0000\u0000\u0a90\u0a91\u0005O\u0000\u0000\u0a91"+ + "\u0a92\u0005_\u0000\u0000\u0a92\u0a93\u0005B\u0000\u0000\u0a93\u0a94\u0005"+ + "I\u0000\u0000\u0a94\u0a95\u0005N\u0000\u0000\u0a95\u0a96\u0005L\u0000"+ + "\u0000\u0a96\u0a97\u0005O\u0000\u0000\u0a97\u0a98\u0005G\u0000\u0000\u0a98"+ + "\u00c4\u0001\u0000\u0000\u0000\u0a99\u0a9a\u0005N\u0000\u0000\u0a9a\u0a9b"+ + "\u0005U\u0000\u0000\u0a9b\u0a9c\u0005L\u0000\u0000\u0a9c\u0a9d\u0005L"+ + "\u0000\u0000\u0a9d\u00c6\u0001\u0000\u0000\u0000\u0a9e\u0a9f\u0005O\u0000"+ + "\u0000\u0a9f\u0aa0\u0005N\u0000\u0000\u0aa0\u00c8\u0001\u0000\u0000\u0000"+ + "\u0aa1\u0aa2\u0005O\u0000\u0000\u0aa2\u0aa3\u0005P\u0000\u0000\u0aa3\u0aa4"+ + "\u0005T\u0000\u0000\u0aa4\u0aa5\u0005I\u0000\u0000\u0aa5\u0aa6\u0005M"+ + "\u0000\u0000\u0aa6\u0aa7\u0005I\u0000\u0000\u0aa7\u0aa8\u0005Z\u0000\u0000"+ + "\u0aa8\u0aa9\u0005E\u0000\u0000\u0aa9\u00ca\u0001\u0000\u0000\u0000\u0aaa"+ + "\u0aab\u0005O\u0000\u0000\u0aab\u0aac\u0005P\u0000\u0000\u0aac\u0aad\u0005"+ + "T\u0000\u0000\u0aad\u0aae\u0005I\u0000\u0000\u0aae\u0aaf\u0005O\u0000"+ + "\u0000\u0aaf\u0ab0\u0005N\u0000\u0000\u0ab0\u00cc\u0001\u0000\u0000\u0000"+ + "\u0ab1\u0ab2\u0005O\u0000\u0000\u0ab2\u0ab3\u0005P\u0000\u0000\u0ab3\u0ab4"+ + "\u0005T\u0000\u0000\u0ab4\u0ab5\u0005I\u0000\u0000\u0ab5\u0ab6\u0005O"+ + "\u0000\u0000\u0ab6\u0ab7\u0005N\u0000\u0000\u0ab7\u0ab8\u0005A\u0000\u0000"+ + "\u0ab8\u0ab9\u0005L\u0000\u0000\u0ab9\u0aba\u0005L\u0000\u0000\u0aba\u0abb"+ + "\u0005Y\u0000\u0000\u0abb\u00ce\u0001\u0000\u0000\u0000\u0abc\u0abd\u0005"+ + "O\u0000\u0000\u0abd\u0abe\u0005R\u0000\u0000\u0abe\u00d0\u0001\u0000\u0000"+ + "\u0000\u0abf\u0ac0\u0005O\u0000\u0000\u0ac0\u0ac1\u0005R\u0000\u0000\u0ac1"+ + "\u0ac2\u0005D\u0000\u0000\u0ac2\u0ac3\u0005E\u0000\u0000\u0ac3\u0ac4\u0005"+ + "R\u0000\u0000\u0ac4\u00d2\u0001\u0000\u0000\u0000\u0ac5\u0ac6\u0005O\u0000"+ + "\u0000\u0ac6\u0ac7\u0005U\u0000\u0000\u0ac7\u0ac8\u0005T\u0000\u0000\u0ac8"+ + "\u00d4\u0001\u0000\u0000\u0000\u0ac9\u0aca\u0005O\u0000\u0000\u0aca\u0acb"+ + "\u0005U\u0000\u0000\u0acb\u0acc\u0005T\u0000\u0000\u0acc\u0acd\u0005E"+ + "\u0000\u0000\u0acd\u0ace\u0005R\u0000\u0000\u0ace\u00d6\u0001\u0000\u0000"+ + "\u0000\u0acf\u0ad0\u0005O\u0000\u0000\u0ad0\u0ad1\u0005U\u0000\u0000\u0ad1"+ + "\u0ad2\u0005T\u0000\u0000\u0ad2\u0ad3\u0005F\u0000\u0000\u0ad3\u0ad4\u0005"+ + "I\u0000\u0000\u0ad4\u0ad5\u0005L\u0000\u0000\u0ad5\u0ad6\u0005E\u0000"+ + "\u0000\u0ad6\u00d8\u0001\u0000\u0000\u0000\u0ad7\u0ad8\u0005P\u0000\u0000"+ + "\u0ad8\u0ad9\u0005A\u0000\u0000\u0ad9\u0ada\u0005R\u0000\u0000\u0ada\u0adb"+ + "\u0005T\u0000\u0000\u0adb\u0adc\u0005I\u0000\u0000\u0adc\u0add\u0005T"+ + "\u0000\u0000\u0add\u0ade\u0005I\u0000\u0000\u0ade\u0adf\u0005O\u0000\u0000"+ + "\u0adf\u0ae0\u0005N\u0000\u0000\u0ae0\u00da\u0001\u0000\u0000\u0000\u0ae1"+ + "\u0ae2\u0005P\u0000\u0000\u0ae2\u0ae3\u0005R\u0000\u0000\u0ae3\u0ae4\u0005"+ + "I\u0000\u0000\u0ae4\u0ae5\u0005M\u0000\u0000\u0ae5\u0ae6\u0005A\u0000"+ + "\u0000\u0ae6\u0ae7\u0005R\u0000\u0000\u0ae7\u0ae8\u0005Y\u0000\u0000\u0ae8"+ + "\u00dc\u0001\u0000\u0000\u0000\u0ae9\u0aea\u0005P\u0000\u0000\u0aea\u0aeb"+ + "\u0005R\u0000\u0000\u0aeb\u0aec\u0005O\u0000\u0000\u0aec\u0aed\u0005C"+ + "\u0000\u0000\u0aed\u0aee\u0005E\u0000\u0000\u0aee\u0aef\u0005D\u0000\u0000"+ + "\u0aef\u0af0\u0005U\u0000\u0000\u0af0\u0af1\u0005R\u0000\u0000\u0af1\u0af2"+ + "\u0005E\u0000\u0000\u0af2\u00de\u0001\u0000\u0000\u0000\u0af3\u0af4\u0005"+ + "P\u0000\u0000\u0af4\u0af5\u0005U\u0000\u0000\u0af5\u0af6\u0005R\u0000"+ + "\u0000\u0af6\u0af7\u0005G\u0000\u0000\u0af7\u0af8\u0005E\u0000\u0000\u0af8"+ + "\u00e0\u0001\u0000\u0000\u0000\u0af9\u0afa\u0005R\u0000\u0000\u0afa\u0afb"+ + "\u0005A\u0000\u0000\u0afb\u0afc\u0005N\u0000\u0000\u0afc\u0afd\u0005G"+ + "\u0000\u0000\u0afd\u0afe\u0005E\u0000\u0000\u0afe\u00e2\u0001\u0000\u0000"+ + "\u0000\u0aff\u0b00\u0005R\u0000\u0000\u0b00\u0b01\u0005E\u0000\u0000\u0b01"+ + "\u0b02\u0005A\u0000\u0000\u0b02\u0b03\u0005D\u0000\u0000\u0b03\u00e4\u0001"+ + "\u0000\u0000\u0000\u0b04\u0b05\u0005R\u0000\u0000\u0b05\u0b06\u0005E\u0000"+ + "\u0000\u0b06\u0b07\u0005A\u0000\u0000\u0b07\u0b08\u0005D\u0000\u0000\u0b08"+ + "\u0b09\u0005S\u0000\u0000\u0b09\u00e6\u0001\u0000\u0000\u0000\u0b0a\u0b0b"+ + "\u0005R\u0000\u0000\u0b0b\u0b0c\u0005E\u0000\u0000\u0b0c\u0b0d\u0005F"+ + "\u0000\u0000\u0b0d\u0b0e\u0005E\u0000\u0000\u0b0e\u0b0f\u0005R\u0000\u0000"+ + "\u0b0f\u0b10\u0005E\u0000\u0000\u0b10\u0b11\u0005N\u0000\u0000\u0b11\u0b12"+ + "\u0005C\u0000\u0000\u0b12\u0b13\u0005E\u0000\u0000\u0b13\u0b14\u0005S"+ + "\u0000\u0000\u0b14\u00e8\u0001\u0000\u0000\u0000\u0b15\u0b16\u0005R\u0000"+ + "\u0000\u0b16\u0b17\u0005E\u0000\u0000\u0b17\u0b18\u0005G\u0000\u0000\u0b18"+ + "\u0b19\u0005E\u0000\u0000\u0b19\u0b1a\u0005X\u0000\u0000\u0b1a\u0b1b\u0005"+ + "P\u0000\u0000\u0b1b\u00ea\u0001\u0000\u0000\u0000\u0b1c\u0b1d\u0005R\u0000"+ + "\u0000\u0b1d\u0b1e\u0005E\u0000\u0000\u0b1e\u0b1f\u0005L\u0000\u0000\u0b1f"+ + "\u0b20\u0005E\u0000\u0000\u0b20\u0b21\u0005A\u0000\u0000\u0b21\u0b22\u0005"+ + "S\u0000\u0000\u0b22\u0b23\u0005E\u0000\u0000\u0b23\u00ec\u0001\u0000\u0000"+ + "\u0000\u0b24\u0b25\u0005R\u0000\u0000\u0b25\u0b26\u0005E\u0000\u0000\u0b26"+ + "\u0b27\u0005N\u0000\u0000\u0b27\u0b28\u0005A\u0000\u0000\u0b28\u0b29\u0005"+ + "M\u0000\u0000\u0b29\u0b2a\u0005E\u0000\u0000\u0b2a\u00ee\u0001\u0000\u0000"+ + "\u0000\u0b2b\u0b2c\u0005R\u0000\u0000\u0b2c\u0b2d\u0005E\u0000\u0000\u0b2d"+ + "\u0b2e\u0005P\u0000\u0000\u0b2e\u0b2f\u0005E\u0000\u0000\u0b2f\u0b30\u0005"+ + "A\u0000\u0000\u0b30\u0b31\u0005T\u0000\u0000\u0b31\u00f0\u0001\u0000\u0000"+ + "\u0000\u0b32\u0b33\u0005R\u0000\u0000\u0b33\u0b34\u0005E\u0000\u0000\u0b34"+ + "\u0b35\u0005P\u0000\u0000\u0b35\u0b36\u0005L\u0000\u0000\u0b36\u0b37\u0005"+ + "A\u0000\u0000\u0b37\u0b38\u0005C\u0000\u0000\u0b38\u0b39\u0005E\u0000"+ + "\u0000\u0b39\u00f2\u0001\u0000\u0000\u0000\u0b3a\u0b3b\u0005R\u0000\u0000"+ + "\u0b3b\u0b3c\u0005E\u0000\u0000\u0b3c\u0b3d\u0005Q\u0000\u0000\u0b3d\u0b3e"+ + "\u0005U\u0000\u0000\u0b3e\u0b3f\u0005I\u0000\u0000\u0b3f\u0b40\u0005R"+ + "\u0000\u0000\u0b40\u0b41\u0005E\u0000\u0000\u0b41\u00f4\u0001\u0000\u0000"+ + "\u0000\u0b42\u0b43\u0005R\u0000\u0000\u0b43\u0b44\u0005E\u0000\u0000\u0b44"+ + "\u0b45\u0005S\u0000\u0000\u0b45\u0b46\u0005T\u0000\u0000\u0b46\u0b47\u0005"+ + "R\u0000\u0000\u0b47\u0b48\u0005I\u0000\u0000\u0b48\u0b49\u0005C\u0000"+ + "\u0000\u0b49\u0b4a\u0005T\u0000\u0000\u0b4a\u00f6\u0001\u0000\u0000\u0000"+ + "\u0b4b\u0b4c\u0005R\u0000\u0000\u0b4c\u0b4d\u0005E\u0000\u0000\u0b4d\u0b4e"+ + "\u0005T\u0000\u0000\u0b4e\u0b4f\u0005U\u0000\u0000\u0b4f\u0b50\u0005R"+ + "\u0000\u0000\u0b50\u0b51\u0005N\u0000\u0000\u0b51\u00f8\u0001\u0000\u0000"+ + "\u0000\u0b52\u0b53\u0005R\u0000\u0000\u0b53\u0b54\u0005E\u0000\u0000\u0b54"+ + "\u0b55\u0005V\u0000\u0000\u0b55\u0b56\u0005O\u0000\u0000\u0b56\u0b57\u0005"+ + "K\u0000\u0000\u0b57\u0b58\u0005E\u0000\u0000\u0b58\u00fa\u0001\u0000\u0000"+ + "\u0000\u0b59\u0b5a\u0005R\u0000\u0000\u0b5a\u0b5b\u0005I\u0000\u0000\u0b5b"+ + "\u0b5c\u0005G\u0000\u0000\u0b5c\u0b5d\u0005H\u0000\u0000\u0b5d\u0b5e\u0005"+ + "T\u0000\u0000\u0b5e\u00fc\u0001\u0000\u0000\u0000\u0b5f\u0b60\u0005R\u0000"+ + "\u0000\u0b60\u0b61\u0005L\u0000\u0000\u0b61\u0b62\u0005I\u0000\u0000\u0b62"+ + "\u0b63\u0005K\u0000\u0000\u0b63\u0b64\u0005E\u0000\u0000\u0b64\u00fe\u0001"+ + "\u0000\u0000\u0000\u0b65\u0b66\u0005S\u0000\u0000\u0b66\u0b67\u0005C\u0000"+ + "\u0000\u0b67\u0b68\u0005H\u0000\u0000\u0b68\u0b69\u0005E\u0000\u0000\u0b69"+ + "\u0b6a\u0005M\u0000\u0000\u0b6a\u0b6b\u0005A\u0000\u0000\u0b6b\u0100\u0001"+ + "\u0000\u0000\u0000\u0b6c\u0b6d\u0005S\u0000\u0000\u0b6d\u0b6e\u0005C\u0000"+ + "\u0000\u0b6e\u0b6f\u0005H\u0000\u0000\u0b6f\u0b70\u0005E\u0000\u0000\u0b70"+ + "\u0b71\u0005M\u0000\u0000\u0b71\u0b72\u0005A\u0000\u0000\u0b72\u0b73\u0005"+ + "S\u0000\u0000\u0b73\u0102\u0001\u0000\u0000\u0000\u0b74\u0b75\u0005S\u0000"+ + "\u0000\u0b75\u0b76\u0005E\u0000\u0000\u0b76\u0b77\u0005L\u0000\u0000\u0b77"+ + "\u0b78\u0005E\u0000\u0000\u0b78\u0b79\u0005C\u0000\u0000\u0b79\u0b7a\u0005"+ + "T\u0000\u0000\u0b7a\u0104\u0001\u0000\u0000\u0000\u0b7b\u0b7c\u0005S\u0000"+ + "\u0000\u0b7c\u0b7d\u0005E\u0000\u0000\u0b7d\u0b7e\u0005T\u0000\u0000\u0b7e"+ + "\u0106\u0001\u0000\u0000\u0000\u0b7f\u0b80\u0005S\u0000\u0000\u0b80\u0b81"+ + "\u0005E\u0000\u0000\u0b81\u0b82\u0005P\u0000\u0000\u0b82\u0b83\u0005A"+ + "\u0000\u0000\u0b83\u0b84\u0005R\u0000\u0000\u0b84\u0b85\u0005A\u0000\u0000"+ + "\u0b85\u0b86\u0005T\u0000\u0000\u0b86\u0b87\u0005O\u0000\u0000\u0b87\u0b88"+ + "\u0005R\u0000\u0000\u0b88\u0108\u0001\u0000\u0000\u0000\u0b89\u0b8a\u0005"+ + "S\u0000\u0000\u0b8a\u0b8b\u0005H\u0000\u0000\u0b8b\u0b8c\u0005O\u0000"+ + "\u0000\u0b8c\u0b8d\u0005W\u0000\u0000\u0b8d\u010a\u0001\u0000\u0000\u0000"+ + "\u0b8e\u0b8f\u0005S\u0000\u0000\u0b8f\u0b90\u0005P\u0000\u0000\u0b90\u0b91"+ + "\u0005A\u0000\u0000\u0b91\u0b92\u0005T\u0000\u0000\u0b92\u0b93\u0005I"+ + "\u0000\u0000\u0b93\u0b94\u0005A\u0000\u0000\u0b94\u0b95\u0005L\u0000\u0000"+ + "\u0b95\u010c\u0001\u0000\u0000\u0000\u0b96\u0b97\u0005S\u0000\u0000\u0b97"+ + "\u0b98\u0005Q\u0000\u0000\u0b98\u0b99\u0005L\u0000\u0000\u0b99\u010e\u0001"+ + "\u0000\u0000\u0000\u0b9a\u0b9b\u0005S\u0000\u0000\u0b9b\u0b9c\u0005Q\u0000"+ + "\u0000\u0b9c\u0b9d\u0005L\u0000\u0000\u0b9d\u0b9e\u0005E\u0000\u0000\u0b9e"+ + "\u0b9f\u0005X\u0000\u0000\u0b9f\u0ba0\u0005C\u0000\u0000\u0ba0\u0ba1\u0005"+ + "E\u0000\u0000\u0ba1\u0ba2\u0005P\u0000\u0000\u0ba2\u0ba3\u0005T\u0000"+ + "\u0000\u0ba3\u0ba4\u0005I\u0000\u0000\u0ba4\u0ba5\u0005O\u0000\u0000\u0ba5"+ + "\u0ba6\u0005N\u0000\u0000\u0ba6\u0110\u0001\u0000\u0000\u0000\u0ba7\u0ba8"+ + "\u0005S\u0000\u0000\u0ba8\u0ba9\u0005Q\u0000\u0000\u0ba9\u0baa\u0005L"+ + "\u0000\u0000\u0baa\u0bab\u0005S\u0000\u0000\u0bab\u0bac\u0005T\u0000\u0000"+ + "\u0bac\u0bad\u0005A\u0000\u0000\u0bad\u0bae\u0005T\u0000\u0000\u0bae\u0baf"+ + "\u0005E\u0000\u0000\u0baf\u0112\u0001\u0000\u0000\u0000\u0bb0\u0bb1\u0005"+ + "S\u0000\u0000\u0bb1\u0bb2\u0005Q\u0000\u0000\u0bb2\u0bb3\u0005L\u0000"+ + "\u0000\u0bb3\u0bb4\u0005W\u0000\u0000\u0bb4\u0bb5\u0005A\u0000\u0000\u0bb5"+ + "\u0bb6\u0005R\u0000\u0000\u0bb6\u0bb7\u0005N\u0000\u0000\u0bb7\u0bb8\u0005"+ + "I\u0000\u0000\u0bb8\u0bb9\u0005N\u0000\u0000\u0bb9\u0bba\u0005G\u0000"+ + "\u0000\u0bba\u0114\u0001\u0000\u0000\u0000\u0bbb\u0bbc\u0005S\u0000\u0000"+ + "\u0bbc\u0bbd\u0005Q\u0000\u0000\u0bbd\u0bbe\u0005L\u0000\u0000\u0bbe\u0bbf"+ + "\u0005_\u0000\u0000\u0bbf\u0bc0\u0005B\u0000\u0000\u0bc0\u0bc1\u0005I"+ + "\u0000\u0000\u0bc1\u0bc2\u0005G\u0000\u0000\u0bc2\u0bc3\u0005_\u0000\u0000"+ + "\u0bc3\u0bc4\u0005R\u0000\u0000\u0bc4\u0bc5\u0005E\u0000\u0000\u0bc5\u0bc6"+ + "\u0005S\u0000\u0000\u0bc6\u0bc7\u0005U\u0000\u0000\u0bc7\u0bc8\u0005L"+ + "\u0000\u0000\u0bc8\u0bc9\u0005T\u0000\u0000\u0bc9\u0116\u0001\u0000\u0000"+ + "\u0000\u0bca\u0bcb\u0005S\u0000\u0000\u0bcb\u0bcc\u0005Q\u0000\u0000\u0bcc"+ + "\u0bcd\u0005L\u0000\u0000\u0bcd\u0bce\u0005_\u0000\u0000\u0bce\u0bcf\u0005"+ + "C\u0000\u0000\u0bcf\u0bd0\u0005A\u0000\u0000\u0bd0\u0bd1\u0005L\u0000"+ + "\u0000\u0bd1\u0bd2\u0005C\u0000\u0000\u0bd2\u0bd3\u0005_\u0000\u0000\u0bd3"+ + "\u0bd4\u0005F\u0000\u0000\u0bd4\u0bd5\u0005O\u0000\u0000\u0bd5\u0bd6\u0005"+ + "U\u0000\u0000\u0bd6\u0bd7\u0005N\u0000\u0000\u0bd7\u0bd8\u0005D\u0000"+ + "\u0000\u0bd8\u0bd9\u0005_\u0000\u0000\u0bd9\u0bda\u0005R\u0000\u0000\u0bda"+ + "\u0bdb\u0005O\u0000\u0000\u0bdb\u0bdc\u0005W\u0000\u0000\u0bdc\u0bdd\u0005"+ + "S\u0000\u0000\u0bdd\u0118\u0001\u0000\u0000\u0000\u0bde\u0bdf\u0005S\u0000"+ + "\u0000\u0bdf\u0be0\u0005Q\u0000\u0000\u0be0\u0be1\u0005L\u0000\u0000\u0be1"+ + "\u0be2\u0005_\u0000\u0000\u0be2\u0be3\u0005S\u0000\u0000\u0be3\u0be4\u0005"+ + "M\u0000\u0000\u0be4\u0be5\u0005A\u0000\u0000\u0be5\u0be6\u0005L\u0000"+ + "\u0000\u0be6\u0be7\u0005L\u0000\u0000\u0be7\u0be8\u0005_\u0000\u0000\u0be8"+ + "\u0be9\u0005R\u0000\u0000\u0be9\u0bea\u0005E\u0000\u0000\u0bea\u0beb\u0005"+ + "S\u0000\u0000\u0beb\u0bec\u0005U\u0000\u0000\u0bec\u0bed\u0005L\u0000"+ + "\u0000\u0bed\u0bee\u0005T\u0000\u0000\u0bee\u011a\u0001\u0000\u0000\u0000"+ + "\u0bef\u0bf0\u0005S\u0000\u0000\u0bf0\u0bf1\u0005S\u0000\u0000\u0bf1\u0bf2"+ + "\u0005L\u0000\u0000\u0bf2\u011c\u0001\u0000\u0000\u0000\u0bf3\u0bf4\u0005"+ + "S\u0000\u0000\u0bf4\u0bf5\u0005T\u0000\u0000\u0bf5\u0bf6\u0005A\u0000"+ + "\u0000\u0bf6\u0bf7\u0005R\u0000\u0000\u0bf7\u0bf8\u0005T\u0000\u0000\u0bf8"+ + "\u0bf9\u0005I\u0000\u0000\u0bf9\u0bfa\u0005N\u0000\u0000\u0bfa\u0bfb\u0005"+ + "G\u0000\u0000\u0bfb\u011e\u0001\u0000\u0000\u0000\u0bfc\u0bfd\u0005S\u0000"+ + "\u0000\u0bfd\u0bfe\u0005T\u0000\u0000\u0bfe\u0bff\u0005R\u0000\u0000\u0bff"+ + "\u0c00\u0005A\u0000\u0000\u0c00\u0c01\u0005I\u0000\u0000\u0c01\u0c02\u0005"+ + "G\u0000\u0000\u0c02\u0c03\u0005H\u0000\u0000\u0c03\u0c04\u0005T\u0000"+ + "\u0000\u0c04\u0c05\u0005_\u0000\u0000\u0c05\u0c06\u0005J\u0000\u0000\u0c06"+ + "\u0c07\u0005O\u0000\u0000\u0c07\u0c08\u0005I\u0000\u0000\u0c08\u0c09\u0005"+ + "N\u0000\u0000\u0c09\u0120\u0001\u0000\u0000\u0000\u0c0a\u0c0b\u0005T\u0000"+ + "\u0000\u0c0b\u0c0c\u0005A\u0000\u0000\u0c0c\u0c0d\u0005B\u0000\u0000\u0c0d"+ + "\u0c0e\u0005L\u0000\u0000\u0c0e\u0c0f\u0005E\u0000\u0000\u0c0f\u0122\u0001"+ + "\u0000\u0000\u0000\u0c10\u0c11\u0005T\u0000\u0000\u0c11\u0c12\u0005E\u0000"+ + "\u0000\u0c12\u0c13\u0005R\u0000\u0000\u0c13\u0c14\u0005M\u0000\u0000\u0c14"+ + "\u0c15\u0005I\u0000\u0000\u0c15\u0c16\u0005N\u0000\u0000\u0c16\u0c17\u0005"+ + "A\u0000\u0000\u0c17\u0c18\u0005T\u0000\u0000\u0c18\u0c19\u0005E\u0000"+ + "\u0000\u0c19\u0c1a\u0005D\u0000\u0000\u0c1a\u0124\u0001\u0000\u0000\u0000"+ + "\u0c1b\u0c1c\u0005T\u0000\u0000\u0c1c\u0c1d\u0005H\u0000\u0000\u0c1d\u0c1e"+ + "\u0005E\u0000\u0000\u0c1e\u0c1f\u0005N\u0000\u0000\u0c1f\u0126\u0001\u0000"+ + "\u0000\u0000\u0c20\u0c21\u0005T\u0000\u0000\u0c21\u0c22\u0005O\u0000\u0000"+ + "\u0c22\u0128\u0001\u0000\u0000\u0000\u0c23\u0c24\u0005T\u0000\u0000\u0c24"+ + "\u0c25\u0005R\u0000\u0000\u0c25\u0c26\u0005A\u0000\u0000\u0c26\u0c27\u0005"+ + "I\u0000\u0000\u0c27\u0c28\u0005L\u0000\u0000\u0c28\u0c29\u0005I\u0000"+ + "\u0000\u0c29\u0c2a\u0005N\u0000\u0000\u0c2a\u0c2b\u0005G\u0000\u0000\u0c2b"+ + "\u012a\u0001\u0000\u0000\u0000\u0c2c\u0c2d\u0005T\u0000\u0000\u0c2d\u0c2e"+ + "\u0005R\u0000\u0000\u0c2e\u0c2f\u0005I\u0000\u0000\u0c2f\u0c30\u0005G"+ + "\u0000\u0000\u0c30\u0c31\u0005G\u0000\u0000\u0c31\u0c32\u0005E\u0000\u0000"+ + "\u0c32\u0c33\u0005R\u0000\u0000\u0c33\u012c\u0001\u0000\u0000\u0000\u0c34"+ + "\u0c35\u0005T\u0000\u0000\u0c35\u0c36\u0005R\u0000\u0000\u0c36\u0c37\u0005"+ + "U\u0000\u0000\u0c37\u0c38\u0005E\u0000\u0000\u0c38\u012e\u0001\u0000\u0000"+ + "\u0000\u0c39\u0c3a\u0005U\u0000\u0000\u0c3a\u0c3b\u0005N\u0000\u0000\u0c3b"+ + "\u0c3c\u0005D\u0000\u0000\u0c3c\u0c3d\u0005O\u0000\u0000\u0c3d\u0130\u0001"+ + "\u0000\u0000\u0000\u0c3e\u0c3f\u0005U\u0000\u0000\u0c3f\u0c40\u0005N\u0000"+ + "\u0000\u0c40\u0c41\u0005I\u0000\u0000\u0c41\u0c42\u0005O\u0000\u0000\u0c42"+ + "\u0c43\u0005N\u0000\u0000\u0c43\u0132\u0001\u0000\u0000\u0000\u0c44\u0c45"+ + "\u0005U\u0000\u0000\u0c45\u0c46\u0005N\u0000\u0000\u0c46\u0c47\u0005I"+ + "\u0000\u0000\u0c47\u0c48\u0005Q\u0000\u0000\u0c48\u0c49\u0005U\u0000\u0000"+ + "\u0c49\u0c4a\u0005E\u0000\u0000\u0c4a\u0134\u0001\u0000\u0000\u0000\u0c4b"+ + "\u0c4c\u0005U\u0000\u0000\u0c4c\u0c4d\u0005N\u0000\u0000\u0c4d\u0c4e\u0005"+ + "L\u0000\u0000\u0c4e\u0c4f\u0005O\u0000\u0000\u0c4f\u0c50\u0005C\u0000"+ + "\u0000\u0c50\u0c51\u0005K\u0000\u0000\u0c51\u0136\u0001\u0000\u0000\u0000"+ + "\u0c52\u0c53\u0005U\u0000\u0000\u0c53\u0c54\u0005N\u0000\u0000\u0c54\u0c55"+ + "\u0005S\u0000\u0000\u0c55\u0c56\u0005I\u0000\u0000\u0c56\u0c57\u0005G"+ + "\u0000\u0000\u0c57\u0c58\u0005N\u0000\u0000\u0c58\u0c59\u0005E\u0000\u0000"+ + "\u0c59\u0c5a\u0005D\u0000\u0000\u0c5a\u0138\u0001\u0000\u0000\u0000\u0c5b"+ + "\u0c5c\u0005U\u0000\u0000\u0c5c\u0c5d\u0005P\u0000\u0000\u0c5d\u0c5e\u0005"+ + "D\u0000\u0000\u0c5e\u0c5f\u0005A\u0000\u0000\u0c5f\u0c60\u0005T\u0000"+ + "\u0000\u0c60\u0c61\u0005E\u0000\u0000\u0c61\u013a\u0001\u0000\u0000\u0000"+ + "\u0c62\u0c63\u0005U\u0000\u0000\u0c63\u0c64\u0005S\u0000\u0000\u0c64\u0c65"+ + "\u0005A\u0000\u0000\u0c65\u0c66\u0005G\u0000\u0000\u0c66\u0c67\u0005E"+ + "\u0000\u0000\u0c67\u013c\u0001\u0000\u0000\u0000\u0c68\u0c69\u0005U\u0000"+ + "\u0000\u0c69\u0c6a\u0005S\u0000\u0000\u0c6a\u0c6b\u0005E\u0000\u0000\u0c6b"+ + "\u013e\u0001\u0000\u0000\u0000\u0c6c\u0c6d\u0005U\u0000\u0000\u0c6d\u0c6e"+ + "\u0005S\u0000\u0000\u0c6e\u0c6f\u0005I\u0000\u0000\u0c6f\u0c70\u0005N"+ + "\u0000\u0000\u0c70\u0c71\u0005G\u0000\u0000\u0c71\u0140\u0001\u0000\u0000"+ + "\u0000\u0c72\u0c73\u0005V\u0000\u0000\u0c73\u0c74\u0005A\u0000\u0000\u0c74"+ + "\u0c75\u0005L\u0000\u0000\u0c75\u0c76\u0005U\u0000\u0000\u0c76\u0c77\u0005"+ + "E\u0000\u0000\u0c77\u0c78\u0005S\u0000\u0000\u0c78\u0142\u0001\u0000\u0000"+ + "\u0000\u0c79\u0c7a\u0005W\u0000\u0000\u0c7a\u0c7b\u0005H\u0000\u0000\u0c7b"+ + "\u0c7c\u0005E\u0000\u0000\u0c7c\u0c7d\u0005N\u0000\u0000\u0c7d\u0144\u0001"+ + "\u0000\u0000\u0000\u0c7e\u0c7f\u0005W\u0000\u0000\u0c7f\u0c80\u0005H\u0000"+ + "\u0000\u0c80\u0c81\u0005E\u0000\u0000\u0c81\u0c82\u0005R\u0000\u0000\u0c82"+ + "\u0c83\u0005E\u0000\u0000\u0c83\u0146\u0001\u0000\u0000\u0000\u0c84\u0c85"+ + "\u0005W\u0000\u0000\u0c85\u0c86\u0005H\u0000\u0000\u0c86\u0c87\u0005I"+ + "\u0000\u0000\u0c87\u0c88\u0005L\u0000\u0000\u0c88\u0c89\u0005E\u0000\u0000"+ + "\u0c89\u0148\u0001\u0000\u0000\u0000\u0c8a\u0c8b\u0005W\u0000\u0000\u0c8b"+ + "\u0c8c\u0005I\u0000\u0000\u0c8c\u0c8d\u0005T\u0000\u0000\u0c8d\u0c8e\u0005"+ + "H\u0000\u0000\u0c8e\u014a\u0001\u0000\u0000\u0000\u0c8f\u0c90\u0005W\u0000"+ + "\u0000\u0c90\u0c91\u0005R\u0000\u0000\u0c91\u0c92\u0005I\u0000\u0000\u0c92"+ + "\u0c93\u0005T\u0000\u0000\u0c93\u0c94\u0005E\u0000\u0000\u0c94\u014c\u0001"+ + "\u0000\u0000\u0000\u0c95\u0c96\u0005X\u0000\u0000\u0c96\u0c97\u0005O\u0000"+ + "\u0000\u0c97\u0c98\u0005R\u0000\u0000\u0c98\u014e\u0001\u0000\u0000\u0000"+ + "\u0c99\u0c9a\u0005Z\u0000\u0000\u0c9a\u0c9b\u0005E\u0000\u0000\u0c9b\u0c9c"+ + "\u0005R\u0000\u0000\u0c9c\u0c9d\u0005O\u0000\u0000\u0c9d\u0c9e\u0005F"+ + "\u0000\u0000\u0c9e\u0c9f\u0005I\u0000\u0000\u0c9f\u0ca0\u0005L\u0000\u0000"+ + "\u0ca0\u0ca1\u0005L\u0000\u0000\u0ca1\u0150\u0001\u0000\u0000\u0000\u0ca2"+ + "\u0ca3\u0005T\u0000\u0000\u0ca3\u0ca4\u0005I\u0000\u0000\u0ca4\u0ca5\u0005"+ + "N\u0000\u0000\u0ca5\u0ca6\u0005Y\u0000\u0000\u0ca6\u0ca7\u0005I\u0000"+ + "\u0000\u0ca7\u0ca8\u0005N\u0000\u0000\u0ca8\u0ca9\u0005T\u0000\u0000\u0ca9"+ + "\u0152\u0001\u0000\u0000\u0000\u0caa\u0cab\u0005S\u0000\u0000\u0cab\u0cac"+ + "\u0005M\u0000\u0000\u0cac\u0cad\u0005A\u0000\u0000\u0cad\u0cae\u0005L"+ + "\u0000\u0000\u0cae\u0caf\u0005L\u0000\u0000\u0caf\u0cb0\u0005I\u0000\u0000"+ + "\u0cb0\u0cb1\u0005N\u0000\u0000\u0cb1\u0cb2\u0005T\u0000\u0000\u0cb2\u0154"+ + "\u0001\u0000\u0000\u0000\u0cb3\u0cb4\u0005M\u0000\u0000\u0cb4\u0cb5\u0005"+ + "E\u0000\u0000\u0cb5\u0cb6\u0005D\u0000\u0000\u0cb6\u0cb7\u0005I\u0000"+ + "\u0000\u0cb7\u0cb8\u0005U\u0000\u0000\u0cb8\u0cb9\u0005M\u0000\u0000\u0cb9"+ + "\u0cba\u0005I\u0000\u0000\u0cba\u0cbb\u0005N\u0000\u0000\u0cbb\u0cbc\u0005"+ + "T\u0000\u0000\u0cbc\u0156\u0001\u0000\u0000"; + private static final String _serializedATNSegment2 = + "\u0000\u0cbd\u0cbe\u0005I\u0000\u0000\u0cbe\u0cbf\u0005N\u0000\u0000\u0cbf"+ + "\u0cc0\u0005T\u0000\u0000\u0cc0\u0158\u0001\u0000\u0000\u0000\u0cc1\u0cc2"+ + "\u0005I\u0000\u0000\u0cc2\u0cc3\u0005N\u0000\u0000\u0cc3\u0cc4\u0005T"+ + "\u0000\u0000\u0cc4\u0cc5\u0005E\u0000\u0000\u0cc5\u0cc6\u0005G\u0000\u0000"+ + "\u0cc6\u0cc7\u0005E\u0000\u0000\u0cc7\u0cc8\u0005R\u0000\u0000\u0cc8\u015a"+ + "\u0001\u0000\u0000\u0000\u0cc9\u0cca\u0005B\u0000\u0000\u0cca\u0ccb\u0005"+ + "I\u0000\u0000\u0ccb\u0ccc\u0005G\u0000\u0000\u0ccc\u0ccd\u0005I\u0000"+ + "\u0000\u0ccd\u0cce\u0005N\u0000\u0000\u0cce\u0ccf\u0005T\u0000\u0000\u0ccf"+ + "\u015c\u0001\u0000\u0000\u0000\u0cd0\u0cd1\u0005R\u0000\u0000\u0cd1\u0cd2"+ + "\u0005E\u0000\u0000\u0cd2\u0cd3\u0005A\u0000\u0000\u0cd3\u0cd4\u0005L"+ + "\u0000\u0000\u0cd4\u015e\u0001\u0000\u0000\u0000\u0cd5\u0cd6\u0005D\u0000"+ + "\u0000\u0cd6\u0cd7\u0005O\u0000\u0000\u0cd7\u0cd8\u0005U\u0000\u0000\u0cd8"+ + "\u0cd9\u0005B\u0000\u0000\u0cd9\u0cda\u0005L\u0000\u0000\u0cda\u0cdb\u0005"+ + "E\u0000\u0000\u0cdb\u0160\u0001\u0000\u0000\u0000\u0cdc\u0cdd\u0005F\u0000"+ + "\u0000\u0cdd\u0cde\u0005L\u0000\u0000\u0cde\u0cdf\u0005O\u0000\u0000\u0cdf"+ + "\u0ce0\u0005A\u0000\u0000\u0ce0\u0ce1\u0005T\u0000\u0000\u0ce1\u0162\u0001"+ + "\u0000\u0000\u0000\u0ce2\u0ce3\u0005D\u0000\u0000\u0ce3\u0ce4\u0005E\u0000"+ + "\u0000\u0ce4\u0ce5\u0005C\u0000\u0000\u0ce5\u0ce6\u0005I\u0000\u0000\u0ce6"+ + "\u0ce7\u0005M\u0000\u0000\u0ce7\u0ce8\u0005A\u0000\u0000\u0ce8\u0ce9\u0005"+ + "L\u0000\u0000\u0ce9\u0164\u0001\u0000\u0000\u0000\u0cea\u0ceb\u0005N\u0000"+ + "\u0000\u0ceb\u0cec\u0005U\u0000\u0000\u0cec\u0ced\u0005M\u0000\u0000\u0ced"+ + "\u0cee\u0005E\u0000\u0000\u0cee\u0cef\u0005R\u0000\u0000\u0cef\u0cf0\u0005"+ + "I\u0000\u0000\u0cf0\u0cf1\u0005C\u0000\u0000\u0cf1\u0166\u0001\u0000\u0000"+ + "\u0000\u0cf2\u0cf3\u0005D\u0000\u0000\u0cf3\u0cf4\u0005A\u0000\u0000\u0cf4"+ + "\u0cf5\u0005T\u0000\u0000\u0cf5\u0cf6\u0005E\u0000\u0000\u0cf6\u0168\u0001"+ + "\u0000\u0000\u0000\u0cf7\u0cf8\u0005T\u0000\u0000\u0cf8\u0cf9\u0005I\u0000"+ + "\u0000\u0cf9\u0cfa\u0005M\u0000\u0000\u0cfa\u0cfb\u0005E\u0000\u0000\u0cfb"+ + "\u016a\u0001\u0000\u0000\u0000\u0cfc\u0cfd\u0005T\u0000\u0000\u0cfd\u0cfe"+ + "\u0005I\u0000\u0000\u0cfe\u0cff\u0005M\u0000\u0000\u0cff\u0d00\u0005E"+ + "\u0000\u0000\u0d00\u0d01\u0005S\u0000\u0000\u0d01\u0d02\u0005T\u0000\u0000"+ + "\u0d02\u0d03\u0005A\u0000\u0000\u0d03\u0d04\u0005M\u0000\u0000\u0d04\u0d05"+ + "\u0005P\u0000\u0000\u0d05\u016c\u0001\u0000\u0000\u0000\u0d06\u0d07\u0005"+ + "D\u0000\u0000\u0d07\u0d08\u0005A\u0000\u0000\u0d08\u0d09\u0005T\u0000"+ + "\u0000\u0d09\u0d0a\u0005E\u0000\u0000\u0d0a\u0d0b\u0005T\u0000\u0000\u0d0b"+ + "\u0d0c\u0005I\u0000\u0000\u0d0c\u0d0d\u0005M\u0000\u0000\u0d0d\u0d0e\u0005"+ + "E\u0000\u0000\u0d0e\u016e\u0001\u0000\u0000\u0000\u0d0f\u0d10\u0005Y\u0000"+ + "\u0000\u0d10\u0d11\u0005E\u0000\u0000\u0d11\u0d12\u0005A\u0000\u0000\u0d12"+ + "\u0d13\u0005R\u0000\u0000\u0d13\u0170\u0001\u0000\u0000\u0000\u0d14\u0d15"+ + "\u0005C\u0000\u0000\u0d15\u0d16\u0005H\u0000\u0000\u0d16\u0d17\u0005A"+ + "\u0000\u0000\u0d17\u0d18\u0005R\u0000\u0000\u0d18\u0172\u0001\u0000\u0000"+ + "\u0000\u0d19\u0d1a\u0005V\u0000\u0000\u0d1a\u0d1b\u0005A\u0000\u0000\u0d1b"+ + "\u0d1c\u0005R\u0000\u0000\u0d1c\u0d1d\u0005C\u0000\u0000\u0d1d\u0d1e\u0005"+ + "H\u0000\u0000\u0d1e\u0d1f\u0005A\u0000\u0000\u0d1f\u0d20\u0005R\u0000"+ + "\u0000\u0d20\u0174\u0001\u0000\u0000\u0000\u0d21\u0d22\u0005B\u0000\u0000"+ + "\u0d22\u0d23\u0005I\u0000\u0000\u0d23\u0d24\u0005N\u0000\u0000\u0d24\u0d25"+ + "\u0005A\u0000\u0000\u0d25\u0d26\u0005R\u0000\u0000\u0d26\u0d27\u0005Y"+ + "\u0000\u0000\u0d27\u0176\u0001\u0000\u0000\u0000\u0d28\u0d29\u0005V\u0000"+ + "\u0000\u0d29\u0d2a\u0005A\u0000\u0000\u0d2a\u0d2b\u0005R\u0000\u0000\u0d2b"+ + "\u0d2c\u0005B\u0000\u0000\u0d2c\u0d2d\u0005I\u0000\u0000\u0d2d\u0d2e\u0005"+ + "N\u0000\u0000\u0d2e\u0d2f\u0005A\u0000\u0000\u0d2f\u0d30\u0005R\u0000"+ + "\u0000\u0d30\u0d31\u0005Y\u0000\u0000\u0d31\u0178\u0001\u0000\u0000\u0000"+ + "\u0d32\u0d33\u0005T\u0000\u0000\u0d33\u0d34\u0005I\u0000\u0000\u0d34\u0d35"+ + "\u0005N\u0000\u0000\u0d35\u0d36\u0005Y\u0000\u0000\u0d36\u0d37\u0005B"+ + "\u0000\u0000\u0d37\u0d38\u0005L\u0000\u0000\u0d38\u0d39\u0005O\u0000\u0000"+ + "\u0d39\u0d3a\u0005B\u0000\u0000\u0d3a\u017a\u0001\u0000\u0000\u0000\u0d3b"+ + "\u0d3c\u0005B\u0000\u0000\u0d3c\u0d3d\u0005L\u0000\u0000\u0d3d\u0d3e\u0005"+ + "O\u0000\u0000\u0d3e\u0d3f\u0005B\u0000\u0000\u0d3f\u017c\u0001\u0000\u0000"+ + "\u0000\u0d40\u0d41\u0005M\u0000\u0000\u0d41\u0d42\u0005E\u0000\u0000\u0d42"+ + "\u0d43\u0005D\u0000\u0000\u0d43\u0d44\u0005I\u0000\u0000\u0d44\u0d45\u0005"+ + "U\u0000\u0000\u0d45\u0d46\u0005M\u0000\u0000\u0d46\u0d47\u0005B\u0000"+ + "\u0000\u0d47\u0d48\u0005L\u0000\u0000\u0d48\u0d49\u0005O\u0000\u0000\u0d49"+ + "\u0d4a\u0005B\u0000\u0000\u0d4a\u017e\u0001\u0000\u0000\u0000\u0d4b\u0d4c"+ + "\u0005L\u0000\u0000\u0d4c\u0d4d\u0005O\u0000\u0000\u0d4d\u0d4e\u0005N"+ + "\u0000\u0000\u0d4e\u0d4f\u0005G\u0000\u0000\u0d4f\u0d50\u0005B\u0000\u0000"+ + "\u0d50\u0d51\u0005L\u0000\u0000\u0d51\u0d52\u0005O\u0000\u0000\u0d52\u0d53"+ + "\u0005B\u0000\u0000\u0d53\u0180\u0001\u0000\u0000\u0000\u0d54\u0d55\u0005"+ + "T\u0000\u0000\u0d55\u0d56\u0005I\u0000\u0000\u0d56\u0d57\u0005N\u0000"+ + "\u0000\u0d57\u0d58\u0005Y\u0000\u0000\u0d58\u0d59\u0005T\u0000\u0000\u0d59"+ + "\u0d5a\u0005E\u0000\u0000\u0d5a\u0d5b\u0005X\u0000\u0000\u0d5b\u0d5c\u0005"+ + "T\u0000\u0000\u0d5c\u0182\u0001\u0000\u0000\u0000\u0d5d\u0d5e\u0005T\u0000"+ + "\u0000\u0d5e\u0d5f\u0005E\u0000\u0000\u0d5f\u0d60\u0005X\u0000\u0000\u0d60"+ + "\u0d61\u0005T\u0000\u0000\u0d61\u0184\u0001\u0000\u0000\u0000\u0d62\u0d63"+ + "\u0005M\u0000\u0000\u0d63\u0d64\u0005E\u0000\u0000\u0d64\u0d65\u0005D"+ + "\u0000\u0000\u0d65\u0d66\u0005I\u0000\u0000\u0d66\u0d67\u0005U\u0000\u0000"+ + "\u0d67\u0d68\u0005M\u0000\u0000\u0d68\u0d69\u0005T\u0000\u0000\u0d69\u0d6a"+ + "\u0005E\u0000\u0000\u0d6a\u0d6b\u0005X\u0000\u0000\u0d6b\u0d6c\u0005T"+ + "\u0000\u0000\u0d6c\u0186\u0001\u0000\u0000\u0000\u0d6d\u0d6e\u0005L\u0000"+ + "\u0000\u0d6e\u0d6f\u0005O\u0000\u0000\u0d6f\u0d70\u0005N\u0000\u0000\u0d70"+ + "\u0d71\u0005G\u0000\u0000\u0d71\u0d72\u0005T\u0000\u0000\u0d72\u0d73\u0005"+ + "E\u0000\u0000\u0d73\u0d74\u0005X\u0000\u0000\u0d74\u0d75\u0005T\u0000"+ + "\u0000\u0d75\u0188\u0001\u0000\u0000\u0000\u0d76\u0d77\u0005E\u0000\u0000"+ + "\u0d77\u0d78\u0005N\u0000\u0000\u0d78\u0d79\u0005U\u0000\u0000\u0d79\u0d7a"+ + "\u0005M\u0000\u0000\u0d7a\u018a\u0001\u0000\u0000\u0000\u0d7b\u0d7c\u0005"+ + "Y\u0000\u0000\u0d7c\u0d7d\u0005E\u0000\u0000\u0d7d\u0d7e\u0005A\u0000"+ + "\u0000\u0d7e\u0d7f\u0005R\u0000\u0000\u0d7f\u0d80\u0005_\u0000\u0000\u0d80"+ + "\u0d81\u0005M\u0000\u0000\u0d81\u0d82\u0005O\u0000\u0000\u0d82\u0d83\u0005"+ + "N\u0000\u0000\u0d83\u0d84\u0005T\u0000\u0000\u0d84\u0d85\u0005H\u0000"+ + "\u0000\u0d85\u018c\u0001\u0000\u0000\u0000\u0d86\u0d87\u0005D\u0000\u0000"+ + "\u0d87\u0d88\u0005A\u0000\u0000\u0d88\u0d89\u0005Y\u0000\u0000\u0d89\u0d8a"+ + "\u0005_\u0000\u0000\u0d8a\u0d8b\u0005H\u0000\u0000\u0d8b\u0d8c\u0005O"+ + "\u0000\u0000\u0d8c\u0d8d\u0005U\u0000\u0000\u0d8d\u0d8e\u0005R\u0000\u0000"+ + "\u0d8e\u018e\u0001\u0000\u0000\u0000\u0d8f\u0d90\u0005D\u0000\u0000\u0d90"+ + "\u0d91\u0005A\u0000\u0000\u0d91\u0d92\u0005Y\u0000\u0000\u0d92\u0d93\u0005"+ + "_\u0000\u0000\u0d93\u0d94\u0005M\u0000\u0000\u0d94\u0d95\u0005I\u0000"+ + "\u0000\u0d95\u0d96\u0005N\u0000\u0000\u0d96\u0d97\u0005U\u0000\u0000\u0d97"+ + "\u0d98\u0005T\u0000\u0000\u0d98\u0d99\u0005E\u0000\u0000\u0d99\u0190\u0001"+ + "\u0000\u0000\u0000\u0d9a\u0d9b\u0005D\u0000\u0000\u0d9b\u0d9c\u0005A\u0000"+ + "\u0000\u0d9c\u0d9d\u0005Y\u0000\u0000\u0d9d\u0d9e\u0005_\u0000\u0000\u0d9e"+ + "\u0d9f\u0005S\u0000\u0000\u0d9f\u0da0\u0005E\u0000\u0000\u0da0\u0da1\u0005"+ + "C\u0000\u0000\u0da1\u0da2\u0005O\u0000\u0000\u0da2\u0da3\u0005N\u0000"+ + "\u0000\u0da3\u0da4\u0005D\u0000\u0000\u0da4\u0192\u0001\u0000\u0000\u0000"+ + "\u0da5\u0da6\u0005H\u0000\u0000\u0da6\u0da7\u0005O\u0000\u0000\u0da7\u0da8"+ + "\u0005U\u0000\u0000\u0da8\u0da9\u0005R\u0000\u0000\u0da9\u0daa\u0005_"+ + "\u0000\u0000\u0daa\u0dab\u0005M\u0000\u0000\u0dab\u0dac\u0005I\u0000\u0000"+ + "\u0dac\u0dad\u0005N\u0000\u0000\u0dad\u0dae\u0005U\u0000\u0000\u0dae\u0daf"+ + "\u0005T\u0000\u0000\u0daf\u0db0\u0005E\u0000\u0000\u0db0\u0194\u0001\u0000"+ + "\u0000\u0000\u0db1\u0db2\u0005H\u0000\u0000\u0db2\u0db3\u0005O\u0000\u0000"+ + "\u0db3\u0db4\u0005U\u0000\u0000\u0db4\u0db5\u0005R\u0000\u0000\u0db5\u0db6"+ + "\u0005_\u0000\u0000\u0db6\u0db7\u0005S\u0000\u0000\u0db7\u0db8\u0005E"+ + "\u0000\u0000\u0db8\u0db9\u0005C\u0000\u0000\u0db9\u0dba\u0005O\u0000\u0000"+ + "\u0dba\u0dbb\u0005N\u0000\u0000\u0dbb\u0dbc\u0005D\u0000\u0000\u0dbc\u0196"+ + "\u0001\u0000\u0000\u0000\u0dbd\u0dbe\u0005M\u0000\u0000\u0dbe\u0dbf\u0005"+ + "I\u0000\u0000\u0dbf\u0dc0\u0005N\u0000\u0000\u0dc0\u0dc1\u0005U\u0000"+ + "\u0000\u0dc1\u0dc2\u0005T\u0000\u0000\u0dc2\u0dc3\u0005E\u0000\u0000\u0dc3"+ + "\u0dc4\u0005_\u0000\u0000\u0dc4\u0dc5\u0005S\u0000\u0000\u0dc5\u0dc6\u0005"+ + "E\u0000\u0000\u0dc6\u0dc7\u0005C\u0000\u0000\u0dc7\u0dc8\u0005O\u0000"+ + "\u0000\u0dc8\u0dc9\u0005N\u0000\u0000\u0dc9\u0dca\u0005D\u0000\u0000\u0dca"+ + "\u0198\u0001\u0000\u0000\u0000\u0dcb\u0dcc\u0005S\u0000\u0000\u0dcc\u0dcd"+ + "\u0005E\u0000\u0000\u0dcd\u0dce\u0005C\u0000\u0000\u0dce\u0dcf\u0005O"+ + "\u0000\u0000\u0dcf\u0dd0\u0005N\u0000\u0000\u0dd0\u0dd1\u0005D\u0000\u0000"+ + "\u0dd1\u0dd2\u0005_\u0000\u0000\u0dd2\u0dd3\u0005M\u0000\u0000\u0dd3\u0dd4"+ + "\u0005I\u0000\u0000\u0dd4\u0dd5\u0005C\u0000\u0000\u0dd5\u0dd6\u0005R"+ + "\u0000\u0000\u0dd6\u0dd7\u0005O\u0000\u0000\u0dd7\u0dd8\u0005S\u0000\u0000"+ + "\u0dd8\u0dd9\u0005E\u0000\u0000\u0dd9\u0dda\u0005C\u0000\u0000\u0dda\u0ddb"+ + "\u0005O\u0000\u0000\u0ddb\u0ddc\u0005N\u0000\u0000\u0ddc\u0ddd\u0005D"+ + "\u0000\u0000\u0ddd\u019a\u0001\u0000\u0000\u0000\u0dde\u0ddf\u0005M\u0000"+ + "\u0000\u0ddf\u0de0\u0005I\u0000\u0000\u0de0\u0de1\u0005N\u0000\u0000\u0de1"+ + "\u0de2\u0005U\u0000\u0000\u0de2\u0de3\u0005T\u0000\u0000\u0de3\u0de4\u0005"+ + "E\u0000\u0000\u0de4\u0de5\u0005_\u0000\u0000\u0de5\u0de6\u0005M\u0000"+ + "\u0000\u0de6\u0de7\u0005I\u0000\u0000\u0de7\u0de8\u0005C\u0000\u0000\u0de8"+ + "\u0de9\u0005R\u0000\u0000\u0de9\u0dea\u0005O\u0000\u0000\u0dea\u0deb\u0005"+ + "S\u0000\u0000\u0deb\u0dec\u0005E\u0000\u0000\u0dec\u0ded\u0005C\u0000"+ + "\u0000\u0ded\u0dee\u0005O\u0000\u0000\u0dee\u0def\u0005N\u0000\u0000\u0def"+ + "\u0df0\u0005D\u0000\u0000\u0df0\u019c\u0001\u0000\u0000\u0000\u0df1\u0df2"+ + "\u0005H\u0000\u0000\u0df2\u0df3\u0005O\u0000\u0000\u0df3\u0df4\u0005U"+ + "\u0000\u0000\u0df4\u0df5\u0005R\u0000\u0000\u0df5\u0df6\u0005_\u0000\u0000"+ + "\u0df6\u0df7\u0005M\u0000\u0000\u0df7\u0df8\u0005I\u0000\u0000\u0df8\u0df9"+ + "\u0005C\u0000\u0000\u0df9\u0dfa\u0005R\u0000\u0000\u0dfa\u0dfb\u0005O"+ + "\u0000\u0000\u0dfb\u0dfc\u0005S\u0000\u0000\u0dfc\u0dfd\u0005E\u0000\u0000"+ + "\u0dfd\u0dfe\u0005C\u0000\u0000\u0dfe\u0dff\u0005O\u0000\u0000\u0dff\u0e00"+ + "\u0005N\u0000\u0000\u0e00\u0e01\u0005D\u0000\u0000\u0e01\u019e\u0001\u0000"+ + "\u0000\u0000\u0e02\u0e03\u0005D\u0000\u0000\u0e03\u0e04\u0005A\u0000\u0000"+ + "\u0e04\u0e05\u0005Y\u0000\u0000\u0e05\u0e06\u0005_\u0000\u0000\u0e06\u0e07"+ + "\u0005M\u0000\u0000\u0e07\u0e08\u0005I\u0000\u0000\u0e08\u0e09\u0005C"+ + "\u0000\u0000\u0e09\u0e0a\u0005R\u0000\u0000\u0e0a\u0e0b\u0005O\u0000\u0000"+ + "\u0e0b\u0e0c\u0005S\u0000\u0000\u0e0c\u0e0d\u0005E\u0000\u0000\u0e0d\u0e0e"+ + "\u0005C\u0000\u0000\u0e0e\u0e0f\u0005O\u0000\u0000\u0e0f\u0e10\u0005N"+ + "\u0000\u0000\u0e10\u0e11\u0005D\u0000\u0000\u0e11\u01a0\u0001\u0000\u0000"+ + "\u0000\u0e12\u0e13\u0005A\u0000\u0000\u0e13\u0e14\u0005V\u0000\u0000\u0e14"+ + "\u0e15\u0005G\u0000\u0000\u0e15\u01a2\u0001\u0000\u0000\u0000\u0e16\u0e17"+ + "\u0005B\u0000\u0000\u0e17\u0e18\u0005I\u0000\u0000\u0e18\u0e19\u0005T"+ + "\u0000\u0000\u0e19\u0e1a\u0005_\u0000\u0000\u0e1a\u0e1b\u0005A\u0000\u0000"+ + "\u0e1b\u0e1c\u0005N\u0000\u0000\u0e1c\u0e1d\u0005D\u0000\u0000\u0e1d\u01a4"+ + "\u0001\u0000\u0000\u0000\u0e1e\u0e1f\u0005B\u0000\u0000\u0e1f\u0e20\u0005"+ + "I\u0000\u0000\u0e20\u0e21\u0005T\u0000\u0000\u0e21\u0e22\u0005_\u0000"+ + "\u0000\u0e22\u0e23\u0005O\u0000\u0000\u0e23\u0e24\u0005R\u0000\u0000\u0e24"+ + "\u01a6\u0001\u0000\u0000\u0000\u0e25\u0e26\u0005B\u0000\u0000\u0e26\u0e27"+ + "\u0005I\u0000\u0000\u0e27\u0e28\u0005T\u0000\u0000\u0e28\u0e29\u0005_"+ + "\u0000\u0000\u0e29\u0e2a\u0005X\u0000\u0000\u0e2a\u0e2b\u0005O\u0000\u0000"+ + "\u0e2b\u0e2c\u0005R\u0000\u0000\u0e2c\u01a8\u0001\u0000\u0000\u0000\u0e2d"+ + "\u0e2e\u0005C\u0000\u0000\u0e2e\u0e2f\u0005O\u0000\u0000\u0e2f\u0e30\u0005"+ + "U\u0000\u0000\u0e30\u0e31\u0005N\u0000\u0000\u0e31\u0e32\u0005T\u0000"+ + "\u0000\u0e32\u01aa\u0001\u0000\u0000\u0000\u0e33\u0e34\u0005G\u0000\u0000"+ + "\u0e34\u0e35\u0005R\u0000\u0000\u0e35\u0e36\u0005O\u0000\u0000\u0e36\u0e37"+ + "\u0005U\u0000\u0000\u0e37\u0e38\u0005P\u0000\u0000\u0e38\u0e39\u0005_"+ + "\u0000\u0000\u0e39\u0e3a\u0005C\u0000\u0000\u0e3a\u0e3b\u0005O\u0000\u0000"+ + "\u0e3b\u0e3c\u0005N\u0000\u0000\u0e3c\u0e3d\u0005C\u0000\u0000\u0e3d\u0e3e"+ + "\u0005A\u0000\u0000\u0e3e\u0e3f\u0005T\u0000\u0000\u0e3f\u01ac\u0001\u0000"+ + "\u0000\u0000\u0e40\u0e41\u0005M\u0000\u0000\u0e41\u0e42\u0005A\u0000\u0000"+ + "\u0e42\u0e43\u0005X\u0000\u0000\u0e43\u01ae\u0001\u0000\u0000\u0000\u0e44"+ + "\u0e45\u0005M\u0000\u0000\u0e45\u0e46\u0005I\u0000\u0000\u0e46\u0e47\u0005"+ + "N\u0000\u0000\u0e47\u01b0\u0001\u0000\u0000\u0000\u0e48\u0e49\u0005S\u0000"+ + "\u0000\u0e49\u0e4a\u0005T\u0000\u0000\u0e4a\u0e4b\u0005D\u0000\u0000\u0e4b"+ + "\u01b2\u0001\u0000\u0000\u0000\u0e4c\u0e4d\u0005S\u0000\u0000\u0e4d\u0e4e"+ + "\u0005T\u0000\u0000\u0e4e\u0e4f\u0005D\u0000\u0000\u0e4f\u0e50\u0005D"+ + "\u0000\u0000\u0e50\u0e51\u0005E\u0000\u0000\u0e51\u0e52\u0005V\u0000\u0000"+ + "\u0e52\u01b4\u0001\u0000\u0000\u0000\u0e53\u0e54\u0005S\u0000\u0000\u0e54"+ + "\u0e55\u0005T\u0000\u0000\u0e55\u0e56\u0005D\u0000\u0000\u0e56\u0e57\u0005"+ + "D\u0000\u0000\u0e57\u0e58\u0005E\u0000\u0000\u0e58\u0e59\u0005V\u0000"+ + "\u0000\u0e59\u0e5a\u0005_\u0000\u0000\u0e5a\u0e5b\u0005P\u0000\u0000\u0e5b"+ + "\u0e5c\u0005O\u0000\u0000\u0e5c\u0e5d\u0005P\u0000\u0000\u0e5d\u01b6\u0001"+ + "\u0000\u0000\u0000\u0e5e\u0e5f\u0005S\u0000\u0000\u0e5f\u0e60\u0005T\u0000"+ + "\u0000\u0e60\u0e61\u0005D\u0000\u0000\u0e61\u0e62\u0005D\u0000\u0000\u0e62"+ + "\u0e63\u0005E\u0000\u0000\u0e63\u0e64\u0005V\u0000\u0000\u0e64\u0e65\u0005"+ + "_\u0000\u0000\u0e65\u0e66\u0005S\u0000\u0000\u0e66\u0e67\u0005A\u0000"+ + "\u0000\u0e67\u0e68\u0005M\u0000\u0000\u0e68\u0e69\u0005P\u0000\u0000\u0e69"+ + "\u01b8\u0001\u0000\u0000\u0000\u0e6a\u0e6b\u0005S\u0000\u0000\u0e6b\u0e6c"+ + "\u0005U\u0000\u0000\u0e6c\u0e6d\u0005M\u0000\u0000\u0e6d\u01ba\u0001\u0000"+ + "\u0000\u0000\u0e6e\u0e6f\u0005V\u0000\u0000\u0e6f\u0e70\u0005A\u0000\u0000"+ + "\u0e70\u0e71\u0005R\u0000\u0000\u0e71\u0e72\u0005_\u0000\u0000\u0e72\u0e73"+ + "\u0005P\u0000\u0000\u0e73\u0e74\u0005O\u0000\u0000\u0e74\u0e75\u0005P"+ + "\u0000\u0000\u0e75\u01bc\u0001\u0000\u0000\u0000\u0e76\u0e77\u0005V\u0000"+ + "\u0000\u0e77\u0e78\u0005A\u0000\u0000\u0e78\u0e79\u0005R\u0000\u0000\u0e79"+ + "\u0e7a\u0005_\u0000\u0000\u0e7a\u0e7b\u0005S\u0000\u0000\u0e7b\u0e7c\u0005"+ + "A\u0000\u0000\u0e7c\u0e7d\u0005M\u0000\u0000\u0e7d\u0e7e\u0005P\u0000"+ + "\u0000\u0e7e\u01be\u0001\u0000\u0000\u0000\u0e7f\u0e80\u0005V\u0000\u0000"+ + "\u0e80\u0e81\u0005A\u0000\u0000\u0e81\u0e82\u0005R\u0000\u0000\u0e82\u0e83"+ + "\u0005I\u0000\u0000\u0e83\u0e84\u0005A\u0000\u0000\u0e84\u0e85\u0005N"+ + "\u0000\u0000\u0e85\u0e86\u0005C\u0000\u0000\u0e86\u0e87\u0005E\u0000\u0000"+ + "\u0e87\u01c0\u0001\u0000\u0000\u0000\u0e88\u0e89\u0005C\u0000\u0000\u0e89"+ + "\u0e8a\u0005U\u0000\u0000\u0e8a\u0e8b\u0005R\u0000\u0000\u0e8b\u0e8c\u0005"+ + "R\u0000\u0000\u0e8c\u0e8d\u0005E\u0000\u0000\u0e8d\u0e8e\u0005N\u0000"+ + "\u0000\u0e8e\u0e8f\u0005T\u0000\u0000\u0e8f\u0e90\u0005_\u0000\u0000\u0e90"+ + "\u0e91\u0005D\u0000\u0000\u0e91\u0e92\u0005A\u0000\u0000\u0e92\u0e93\u0005"+ + "T\u0000\u0000\u0e93\u0e94\u0005E\u0000\u0000\u0e94\u01c2\u0001\u0000\u0000"+ + "\u0000\u0e95\u0e96\u0005C\u0000\u0000\u0e96\u0e97\u0005U\u0000\u0000\u0e97"+ + "\u0e98\u0005R\u0000\u0000\u0e98\u0e99\u0005R\u0000\u0000\u0e99\u0e9a\u0005"+ + "E\u0000\u0000\u0e9a\u0e9b\u0005N\u0000\u0000\u0e9b\u0e9c\u0005T\u0000"+ + "\u0000\u0e9c\u0e9d\u0005_\u0000\u0000\u0e9d\u0e9e\u0005T\u0000\u0000\u0e9e"+ + "\u0e9f\u0005I\u0000\u0000\u0e9f\u0ea0\u0005M\u0000\u0000\u0ea0\u0ea1\u0005"+ + "E\u0000\u0000\u0ea1\u01c4\u0001\u0000\u0000\u0000\u0ea2\u0ea3\u0005C\u0000"+ + "\u0000\u0ea3\u0ea4\u0005U\u0000\u0000\u0ea4\u0ea5\u0005R\u0000\u0000\u0ea5"+ + "\u0ea6\u0005R\u0000\u0000\u0ea6\u0ea7\u0005E\u0000\u0000\u0ea7\u0ea8\u0005"+ + "N\u0000\u0000\u0ea8\u0ea9\u0005T\u0000\u0000\u0ea9\u0eaa\u0005_\u0000"+ + "\u0000\u0eaa\u0eab\u0005T\u0000\u0000\u0eab\u0eac\u0005I\u0000\u0000\u0eac"+ + "\u0ead\u0005M\u0000\u0000\u0ead\u0eae\u0005E\u0000\u0000\u0eae\u0eaf\u0005"+ + "S\u0000\u0000\u0eaf\u0eb0\u0005T\u0000\u0000\u0eb0\u0eb1\u0005A\u0000"+ + "\u0000\u0eb1\u0eb2\u0005M\u0000\u0000\u0eb2\u0eb3\u0005P\u0000\u0000\u0eb3"+ + "\u01c6\u0001\u0000\u0000\u0000\u0eb4\u0eb5\u0005L\u0000\u0000\u0eb5\u0eb6"+ + "\u0005O\u0000\u0000\u0eb6\u0eb7\u0005C\u0000\u0000\u0eb7\u0eb8\u0005A"+ + "\u0000\u0000\u0eb8\u0eb9\u0005L\u0000\u0000\u0eb9\u0eba\u0005T\u0000\u0000"+ + "\u0eba\u0ebb\u0005I\u0000\u0000\u0ebb\u0ebc\u0005M\u0000\u0000\u0ebc\u0ebd"+ + "\u0005E\u0000\u0000\u0ebd\u01c8\u0001\u0000\u0000\u0000\u0ebe\u0ebf\u0005"+ + "C\u0000\u0000\u0ebf\u0ec0\u0005U\u0000\u0000\u0ec0\u0ec1\u0005R\u0000"+ + "\u0000\u0ec1\u0ec2\u0005D\u0000\u0000\u0ec2\u0ec3\u0005A\u0000\u0000\u0ec3"+ + "\u0ec4\u0005T\u0000\u0000\u0ec4\u0ec5\u0005E\u0000\u0000\u0ec5\u01ca\u0001"+ + "\u0000\u0000\u0000\u0ec6\u0ec7\u0005C\u0000\u0000\u0ec7\u0ec8\u0005U\u0000"+ + "\u0000\u0ec8\u0ec9\u0005R\u0000\u0000\u0ec9\u0eca\u0005T\u0000\u0000\u0eca"+ + "\u0ecb\u0005I\u0000\u0000\u0ecb\u0ecc\u0005M\u0000\u0000\u0ecc\u0ecd\u0005"+ + "E\u0000\u0000\u0ecd\u01cc\u0001\u0000\u0000\u0000\u0ece\u0ecf\u0005D\u0000"+ + "\u0000\u0ecf\u0ed0\u0005A\u0000\u0000\u0ed0\u0ed1\u0005T\u0000\u0000\u0ed1"+ + "\u0ed2\u0005E\u0000\u0000\u0ed2\u0ed3\u0005_\u0000\u0000\u0ed3\u0ed4\u0005"+ + "A\u0000\u0000\u0ed4\u0ed5\u0005D\u0000\u0000\u0ed5\u0ed6\u0005D\u0000"+ + "\u0000\u0ed6\u01ce\u0001\u0000\u0000\u0000\u0ed7\u0ed8\u0005D\u0000\u0000"+ + "\u0ed8\u0ed9\u0005A\u0000\u0000\u0ed9\u0eda\u0005T\u0000\u0000\u0eda\u0edb"+ + "\u0005E\u0000\u0000\u0edb\u0edc\u0005_\u0000\u0000\u0edc\u0edd\u0005S"+ + "\u0000\u0000\u0edd\u0ede\u0005U\u0000\u0000\u0ede\u0edf\u0005B\u0000\u0000"+ + "\u0edf\u01d0\u0001\u0000\u0000\u0000\u0ee0\u0ee1\u0005E\u0000\u0000\u0ee1"+ + "\u0ee2\u0005X\u0000\u0000\u0ee2\u0ee3\u0005T\u0000\u0000\u0ee3\u0ee4\u0005"+ + "R\u0000\u0000\u0ee4\u0ee5\u0005A\u0000\u0000\u0ee5\u0ee6\u0005C\u0000"+ + "\u0000\u0ee6\u0ee7\u0005T\u0000\u0000\u0ee7\u01d2\u0001\u0000\u0000\u0000"+ + "\u0ee8\u0ee9\u0005L\u0000\u0000\u0ee9\u0eea\u0005O\u0000\u0000\u0eea\u0eeb"+ + "\u0005C\u0000\u0000\u0eeb\u0eec\u0005A\u0000\u0000\u0eec\u0eed\u0005L"+ + "\u0000\u0000\u0eed\u0eee\u0005T\u0000\u0000\u0eee\u0eef\u0005I\u0000\u0000"+ + "\u0eef\u0ef0\u0005M\u0000\u0000\u0ef0\u0ef1\u0005E\u0000\u0000\u0ef1\u0ef2"+ + "\u0005S\u0000\u0000\u0ef2\u0ef3\u0005T\u0000\u0000\u0ef3\u0ef4\u0005A"+ + "\u0000\u0000\u0ef4\u0ef5\u0005M\u0000\u0000\u0ef5\u0ef6\u0005P\u0000\u0000"+ + "\u0ef6\u01d4\u0001\u0000\u0000\u0000\u0ef7\u0ef8\u0005N\u0000\u0000\u0ef8"+ + "\u0ef9\u0005O\u0000\u0000\u0ef9\u0efa\u0005W\u0000\u0000\u0efa\u01d6\u0001"+ + "\u0000\u0000\u0000\u0efb\u0efc\u0005P\u0000\u0000\u0efc\u0efd\u0005O\u0000"+ + "\u0000\u0efd\u0efe\u0005S\u0000\u0000\u0efe\u0eff\u0005I\u0000\u0000\u0eff"+ + "\u0f00\u0005T\u0000\u0000\u0f00\u0f01\u0005I\u0000\u0000\u0f01\u0f02\u0005"+ + "O\u0000\u0000\u0f02\u0f03\u0005N\u0000\u0000\u0f03\u01d8\u0001\u0000\u0000"+ + "\u0000\u0f04\u0f05\u0005S\u0000\u0000\u0f05\u0f06\u0005U\u0000\u0000\u0f06"+ + "\u0f07\u0005B\u0000\u0000\u0f07\u0f08\u0005S\u0000\u0000\u0f08\u0f09\u0005"+ + "T\u0000\u0000\u0f09\u0f0a\u0005R\u0000\u0000\u0f0a\u01da\u0001\u0000\u0000"+ + "\u0000\u0f0b\u0f0c\u0005S\u0000\u0000\u0f0c\u0f0d\u0005U\u0000\u0000\u0f0d"+ + "\u0f0e\u0005B\u0000\u0000\u0f0e\u0f0f\u0005S\u0000\u0000\u0f0f\u0f10\u0005"+ + "T\u0000\u0000\u0f10\u0f11\u0005R\u0000\u0000\u0f11\u0f12\u0005I\u0000"+ + "\u0000\u0f12\u0f13\u0005N\u0000\u0000\u0f13\u0f14\u0005G\u0000\u0000\u0f14"+ + "\u01dc\u0001\u0000\u0000\u0000\u0f15\u0f16\u0005S\u0000\u0000\u0f16\u0f17"+ + "\u0005Y\u0000\u0000\u0f17\u0f18\u0005S\u0000\u0000\u0f18\u0f19\u0005D"+ + "\u0000\u0000\u0f19\u0f1a\u0005A\u0000\u0000\u0f1a\u0f1b\u0005T\u0000\u0000"+ + "\u0f1b\u0f1c\u0005E\u0000\u0000\u0f1c\u01de\u0001\u0000\u0000\u0000\u0f1d"+ + "\u0f1e\u0005T\u0000\u0000\u0f1e\u0f1f\u0005R\u0000\u0000\u0f1f\u0f20\u0005"+ + "I\u0000\u0000\u0f20\u0f21\u0005M\u0000\u0000\u0f21\u01e0\u0001\u0000\u0000"+ + "\u0000\u0f22\u0f23\u0005U\u0000\u0000\u0f23\u0f24\u0005T\u0000\u0000\u0f24"+ + "\u0f25\u0005C\u0000\u0000\u0f25\u0f26\u0005_\u0000\u0000\u0f26\u0f27\u0005"+ + "D\u0000\u0000\u0f27\u0f28\u0005A\u0000\u0000\u0f28\u0f29\u0005T\u0000"+ + "\u0000\u0f29\u0f2a\u0005E\u0000\u0000\u0f2a\u01e2\u0001\u0000\u0000\u0000"+ + "\u0f2b\u0f2c\u0005U\u0000\u0000\u0f2c\u0f2d\u0005T\u0000\u0000\u0f2d\u0f2e"+ + "\u0005C\u0000\u0000\u0f2e\u0f2f\u0005_\u0000\u0000\u0f2f\u0f30\u0005T"+ + "\u0000\u0000\u0f30\u0f31\u0005I\u0000\u0000\u0f31\u0f32\u0005M\u0000\u0000"+ + "\u0f32\u0f33\u0005E\u0000\u0000\u0f33\u01e4\u0001\u0000\u0000\u0000\u0f34"+ + "\u0f35\u0005U\u0000\u0000\u0f35\u0f36\u0005T\u0000\u0000\u0f36\u0f37\u0005"+ + "C\u0000\u0000\u0f37\u0f38\u0005_\u0000\u0000\u0f38\u0f39\u0005T\u0000"+ + "\u0000\u0f39\u0f3a\u0005I\u0000\u0000\u0f3a\u0f3b\u0005M\u0000\u0000\u0f3b"+ + "\u0f3c\u0005E\u0000\u0000\u0f3c\u0f3d\u0005S\u0000\u0000\u0f3d\u0f3e\u0005"+ + "T\u0000\u0000\u0f3e\u0f3f\u0005A\u0000\u0000\u0f3f\u0f40\u0005M\u0000"+ + "\u0000\u0f40\u0f41\u0005P\u0000\u0000\u0f41\u01e6\u0001\u0000\u0000\u0000"+ + "\u0f42\u0f43\u0005A\u0000\u0000\u0f43\u0f44\u0005C\u0000\u0000\u0f44\u0f45"+ + "\u0005C\u0000\u0000\u0f45\u0f46\u0005O\u0000\u0000\u0f46\u0f47\u0005U"+ + "\u0000\u0000\u0f47\u0f48\u0005N\u0000\u0000\u0f48\u0f49\u0005T\u0000\u0000"+ + "\u0f49\u01e8\u0001\u0000\u0000\u0000\u0f4a\u0f4b\u0005A\u0000\u0000\u0f4b"+ + "\u0f4c\u0005C\u0000\u0000\u0f4c\u0f4d\u0005T\u0000\u0000\u0f4d\u0f4e\u0005"+ + "I\u0000\u0000\u0f4e\u0f4f\u0005O\u0000\u0000\u0f4f\u0f50\u0005N\u0000"+ + "\u0000\u0f50\u01ea\u0001\u0000\u0000\u0000\u0f51\u0f52\u0005A\u0000\u0000"+ + "\u0f52\u0f53\u0005F\u0000\u0000\u0f53\u0f54\u0005T\u0000\u0000\u0f54\u0f55"+ + "\u0005E\u0000\u0000\u0f55\u0f56\u0005R\u0000\u0000\u0f56\u01ec\u0001\u0000"+ + "\u0000\u0000\u0f57\u0f58\u0005A\u0000\u0000\u0f58\u0f59\u0005G\u0000\u0000"+ + "\u0f59\u0f5a\u0005G\u0000\u0000\u0f5a\u0f5b\u0005R\u0000\u0000\u0f5b\u0f5c"+ + "\u0005E\u0000\u0000\u0f5c\u0f5d\u0005G\u0000\u0000\u0f5d\u0f5e\u0005A"+ + "\u0000\u0000\u0f5e\u0f5f\u0005T\u0000\u0000\u0f5f\u0f60\u0005E\u0000\u0000"+ + "\u0f60\u01ee\u0001\u0000\u0000\u0000\u0f61\u0f62\u0005A\u0000\u0000\u0f62"+ + "\u0f63\u0005L\u0000\u0000\u0f63\u0f64\u0005G\u0000\u0000\u0f64\u0f65\u0005"+ + "O\u0000\u0000\u0f65\u0f66\u0005R\u0000\u0000\u0f66\u0f67\u0005I\u0000"+ + "\u0000\u0f67\u0f68\u0005T\u0000\u0000\u0f68\u0f69\u0005H\u0000\u0000\u0f69"+ + "\u0f6a\u0005M\u0000\u0000\u0f6a\u01f0\u0001\u0000\u0000\u0000\u0f6b\u0f6c"+ + "\u0005A\u0000\u0000\u0f6c\u0f6d\u0005N\u0000\u0000\u0f6d\u0f6e\u0005Y"+ + "\u0000\u0000\u0f6e\u01f2\u0001\u0000\u0000\u0000\u0f6f\u0f70\u0005A\u0000"+ + "\u0000\u0f70\u0f71\u0005T\u0000\u0000\u0f71\u01f4\u0001\u0000\u0000\u0000"+ + "\u0f72\u0f73\u0005A\u0000\u0000\u0f73\u0f74\u0005U\u0000\u0000\u0f74\u0f75"+ + "\u0005T\u0000\u0000\u0f75\u0f76\u0005H\u0000\u0000\u0f76\u0f77\u0005O"+ + "\u0000\u0000\u0f77\u0f78\u0005R\u0000\u0000\u0f78\u0f79\u0005S\u0000\u0000"+ + "\u0f79\u01f6\u0001\u0000\u0000\u0000\u0f7a\u0f7b\u0005A\u0000\u0000\u0f7b"+ + "\u0f7c\u0005U\u0000\u0000\u0f7c\u0f7d\u0005T\u0000\u0000\u0f7d\u0f7e\u0005"+ + "O\u0000\u0000\u0f7e\u0f7f\u0005C\u0000\u0000\u0f7f\u0f80\u0005O\u0000"+ + "\u0000\u0f80\u0f81\u0005M\u0000\u0000\u0f81\u0f82\u0005M\u0000\u0000\u0f82"+ + "\u0f83\u0005I\u0000\u0000\u0f83\u0f84\u0005T\u0000\u0000\u0f84\u01f8\u0001"+ + "\u0000\u0000\u0000\u0f85\u0f86\u0005A\u0000\u0000\u0f86\u0f87\u0005U\u0000"+ + "\u0000\u0f87\u0f88\u0005T\u0000\u0000\u0f88\u0f89\u0005O\u0000\u0000\u0f89"+ + "\u0f8a\u0005E\u0000\u0000\u0f8a\u0f8b\u0005X\u0000\u0000\u0f8b\u0f8c\u0005"+ + "T\u0000\u0000\u0f8c\u0f8d\u0005E\u0000\u0000\u0f8d\u0f8e\u0005N\u0000"+ + "\u0000\u0f8e\u0f8f\u0005D\u0000\u0000\u0f8f\u0f90\u0005_\u0000\u0000\u0f90"+ + "\u0f91\u0005S\u0000\u0000\u0f91\u0f92\u0005I\u0000\u0000\u0f92\u0f93\u0005"+ + "Z\u0000\u0000\u0f93\u0f94\u0005E\u0000\u0000\u0f94\u01fa\u0001\u0000\u0000"+ + "\u0000\u0f95\u0f96\u0005A\u0000\u0000\u0f96\u0f97\u0005U\u0000\u0000\u0f97"+ + "\u0f98\u0005T\u0000\u0000\u0f98\u0f99\u0005O\u0000\u0000\u0f99\u0f9a\u0005"+ + "_\u0000\u0000\u0f9a\u0f9b\u0005I\u0000\u0000\u0f9b\u0f9c\u0005N\u0000"+ + "\u0000\u0f9c\u0f9d\u0005C\u0000\u0000\u0f9d\u0f9e\u0005R\u0000\u0000\u0f9e"+ + "\u0f9f\u0005E\u0000\u0000\u0f9f\u0fa0\u0005M\u0000\u0000\u0fa0\u0fa1\u0005"+ + "E\u0000\u0000\u0fa1\u0fa2\u0005N\u0000\u0000\u0fa2\u0fa3\u0005T\u0000"+ + "\u0000\u0fa3\u01fc\u0001\u0000\u0000\u0000\u0fa4\u0fa5\u0005A\u0000\u0000"+ + "\u0fa5\u0fa6\u0005V\u0000\u0000\u0fa6\u0fa7\u0005G\u0000\u0000\u0fa7\u0fa8"+ + "\u0005_\u0000\u0000\u0fa8\u0fa9\u0005R\u0000\u0000\u0fa9\u0faa\u0005O"+ + "\u0000\u0000\u0faa\u0fab\u0005W\u0000\u0000\u0fab\u0fac\u0005_\u0000\u0000"+ + "\u0fac\u0fad\u0005L\u0000\u0000\u0fad\u0fae\u0005E\u0000\u0000\u0fae\u0faf"+ + "\u0005N\u0000\u0000\u0faf\u0fb0\u0005G\u0000\u0000\u0fb0\u0fb1\u0005T"+ + "\u0000\u0000\u0fb1\u0fb2\u0005H\u0000\u0000\u0fb2\u01fe\u0001\u0000\u0000"+ + "\u0000\u0fb3\u0fb4\u0005B\u0000\u0000\u0fb4\u0fb5\u0005E\u0000\u0000\u0fb5"+ + "\u0fb6\u0005G\u0000\u0000\u0fb6\u0fb7\u0005I\u0000\u0000\u0fb7\u0fb8\u0005"+ + "N\u0000\u0000\u0fb8\u0200\u0001\u0000\u0000\u0000\u0fb9\u0fba\u0005B\u0000"+ + "\u0000\u0fba\u0fbb\u0005I\u0000\u0000\u0fbb\u0fbc\u0005N\u0000\u0000\u0fbc"+ + "\u0fbd\u0005L\u0000\u0000\u0fbd\u0fbe\u0005O\u0000\u0000\u0fbe\u0fbf\u0005"+ + "G\u0000\u0000\u0fbf\u0202\u0001\u0000\u0000\u0000\u0fc0\u0fc1\u0005B\u0000"+ + "\u0000\u0fc1\u0fc2\u0005I\u0000\u0000\u0fc2\u0fc3\u0005T\u0000\u0000\u0fc3"+ + "\u0204\u0001\u0000\u0000\u0000\u0fc4\u0fc5\u0005B\u0000\u0000\u0fc5\u0fc6"+ + "\u0005L\u0000\u0000\u0fc6\u0fc7\u0005O\u0000\u0000\u0fc7\u0fc8\u0005C"+ + "\u0000\u0000\u0fc8\u0fc9\u0005K\u0000\u0000\u0fc9\u0206\u0001\u0000\u0000"+ + "\u0000\u0fca\u0fcb\u0005B\u0000\u0000\u0fcb\u0fcc\u0005O\u0000\u0000\u0fcc"+ + "\u0fcd\u0005O\u0000\u0000\u0fcd\u0fce\u0005L\u0000\u0000\u0fce\u0208\u0001"+ + "\u0000\u0000\u0000\u0fcf\u0fd0\u0005B\u0000\u0000\u0fd0\u0fd1\u0005O\u0000"+ + "\u0000\u0fd1\u0fd2\u0005O\u0000\u0000\u0fd2\u0fd3\u0005L\u0000\u0000\u0fd3"+ + "\u0fd4\u0005E\u0000\u0000\u0fd4\u0fd5\u0005A\u0000\u0000\u0fd5\u0fd6\u0005"+ + "N\u0000\u0000\u0fd6\u020a\u0001\u0000\u0000\u0000\u0fd7\u0fd8\u0005B\u0000"+ + "\u0000\u0fd8\u0fd9\u0005T\u0000\u0000\u0fd9\u0fda\u0005R\u0000\u0000\u0fda"+ + "\u0fdb\u0005E\u0000\u0000\u0fdb\u0fdc\u0005E\u0000\u0000\u0fdc\u020c\u0001"+ + "\u0000\u0000\u0000\u0fdd\u0fde\u0005C\u0000\u0000\u0fde\u0fdf\u0005A\u0000"+ + "\u0000\u0fdf\u0fe0\u0005C\u0000\u0000\u0fe0\u0fe1\u0005H\u0000\u0000\u0fe1"+ + "\u0fe2\u0005E\u0000\u0000\u0fe2\u020e\u0001\u0000\u0000\u0000\u0fe3\u0fe4"+ + "\u0005C\u0000\u0000\u0fe4\u0fe5\u0005A\u0000\u0000\u0fe5\u0fe6\u0005S"+ + "\u0000\u0000\u0fe6\u0fe7\u0005C\u0000\u0000\u0fe7\u0fe8\u0005A\u0000\u0000"+ + "\u0fe8\u0fe9\u0005D\u0000\u0000\u0fe9\u0fea\u0005E\u0000\u0000\u0fea\u0feb"+ + "\u0005D\u0000\u0000\u0feb\u0210\u0001\u0000\u0000\u0000\u0fec\u0fed\u0005"+ + "C\u0000\u0000\u0fed\u0fee\u0005H\u0000\u0000\u0fee\u0fef\u0005A\u0000"+ + "\u0000\u0fef\u0ff0\u0005I\u0000\u0000\u0ff0\u0ff1\u0005N\u0000\u0000\u0ff1"+ + "\u0212\u0001\u0000\u0000\u0000\u0ff2\u0ff3\u0005C\u0000\u0000\u0ff3\u0ff4"+ + "\u0005H\u0000\u0000\u0ff4\u0ff5\u0005A\u0000\u0000\u0ff5\u0ff6\u0005N"+ + "\u0000\u0000\u0ff6\u0ff7\u0005G\u0000\u0000\u0ff7\u0ff8\u0005E\u0000\u0000"+ + "\u0ff8\u0ff9\u0005D\u0000\u0000\u0ff9\u0214\u0001\u0000\u0000\u0000\u0ffa"+ + "\u0ffb\u0005C\u0000\u0000\u0ffb\u0ffc\u0005H\u0000\u0000\u0ffc\u0ffd\u0005"+ + "A\u0000\u0000\u0ffd\u0ffe\u0005N\u0000\u0000\u0ffe\u0fff\u0005N\u0000"+ + "\u0000\u0fff\u1000\u0005E\u0000\u0000\u1000\u1001\u0005L\u0000\u0000\u1001"+ + "\u0216\u0001\u0000\u0000\u0000\u1002\u1003\u0005C\u0000\u0000\u1003\u1004"+ + "\u0005H\u0000\u0000\u1004\u1005\u0005E\u0000\u0000\u1005\u1006\u0005C"+ + "\u0000\u0000\u1006\u1007\u0005K\u0000\u0000\u1007\u1008\u0005S\u0000\u0000"+ + "\u1008\u1009\u0005U\u0000\u0000\u1009\u100a\u0005M\u0000\u0000\u100a\u0218"+ + "\u0001\u0000\u0000\u0000\u100b\u100c\u0005C\u0000\u0000\u100c\u100d\u0005"+ + "I\u0000\u0000\u100d\u100e\u0005P\u0000\u0000\u100e\u100f\u0005H\u0000"+ + "\u0000\u100f\u1010\u0005E\u0000\u0000\u1010\u1011\u0005R\u0000\u0000\u1011"+ + "\u021a\u0001\u0000\u0000\u0000\u1012\u1013\u0005C\u0000\u0000\u1013\u1014"+ + "\u0005L\u0000\u0000\u1014\u1015\u0005I\u0000\u0000\u1015\u1016\u0005E"+ + "\u0000\u0000\u1016\u1017\u0005N\u0000\u0000\u1017\u1018\u0005T\u0000\u0000"+ + "\u1018\u021c\u0001\u0000\u0000\u0000\u1019\u101a\u0005C\u0000\u0000\u101a"+ + "\u101b\u0005L\u0000\u0000\u101b\u101c\u0005O\u0000\u0000\u101c\u101d\u0005"+ + "S\u0000\u0000\u101d\u101e\u0005E\u0000\u0000\u101e\u021e\u0001\u0000\u0000"+ + "\u0000\u101f\u1020\u0005C\u0000\u0000\u1020\u1021\u0005O\u0000\u0000\u1021"+ + "\u1022\u0005A\u0000\u0000\u1022\u1023\u0005L\u0000\u0000\u1023\u1024\u0005"+ + "E\u0000\u0000\u1024\u1025\u0005S\u0000\u0000\u1025\u1026\u0005C\u0000"+ + "\u0000\u1026\u1027\u0005E\u0000\u0000\u1027\u0220\u0001\u0000\u0000\u0000"+ + "\u1028\u1029\u0005C\u0000\u0000\u1029\u102a\u0005O\u0000\u0000\u102a\u102b"+ + "\u0005D\u0000\u0000\u102b\u102c\u0005E\u0000\u0000\u102c\u0222\u0001\u0000"+ + "\u0000\u0000\u102d\u102e\u0005C\u0000\u0000\u102e\u102f\u0005O\u0000\u0000"+ + "\u102f\u1030\u0005L\u0000\u0000\u1030\u1031\u0005U\u0000\u0000\u1031\u1032"+ + "\u0005M\u0000\u0000\u1032\u1033\u0005N\u0000\u0000\u1033\u1034\u0005S"+ + "\u0000\u0000\u1034\u0224\u0001\u0000\u0000\u0000\u1035\u1036\u0005C\u0000"+ + "\u0000\u1036\u1037\u0005O\u0000\u0000\u1037\u1038\u0005L\u0000\u0000\u1038"+ + "\u1039\u0005U\u0000\u0000\u1039\u103a\u0005M\u0000\u0000\u103a\u103b\u0005"+ + "N\u0000\u0000\u103b\u103c\u0005_\u0000\u0000\u103c\u103d\u0005F\u0000"+ + "\u0000\u103d\u103e\u0005O\u0000\u0000\u103e\u103f\u0005R\u0000\u0000\u103f"+ + "\u1040\u0005M\u0000\u0000\u1040\u1041\u0005A\u0000\u0000\u1041\u1042\u0005"+ + "T\u0000\u0000\u1042\u0226\u0001\u0000\u0000\u0000\u1043\u1044\u0005C\u0000"+ + "\u0000\u1044\u1045\u0005O\u0000\u0000\u1045\u1046\u0005M\u0000\u0000\u1046"+ + "\u1047\u0005M\u0000\u0000\u1047\u1048\u0005E\u0000\u0000\u1048\u1049\u0005"+ + "N\u0000\u0000\u1049\u104a\u0005T\u0000\u0000\u104a\u0228\u0001\u0000\u0000"+ + "\u0000\u104b\u104c\u0005C\u0000\u0000\u104c\u104d\u0005O\u0000\u0000\u104d"+ + "\u104e\u0005M\u0000\u0000\u104e\u104f\u0005M\u0000\u0000\u104f\u1050\u0005"+ + "I\u0000\u0000\u1050\u1051\u0005T\u0000\u0000\u1051\u022a\u0001\u0000\u0000"+ + "\u0000\u1052\u1053\u0005C\u0000\u0000\u1053\u1054\u0005O\u0000\u0000\u1054"+ + "\u1055\u0005M\u0000\u0000\u1055\u1056\u0005P\u0000\u0000\u1056\u1057\u0005"+ + "A\u0000\u0000\u1057\u1058\u0005C\u0000\u0000\u1058\u1059\u0005T\u0000"+ + "\u0000\u1059\u022c\u0001\u0000\u0000\u0000\u105a\u105b\u0005C\u0000\u0000"+ + "\u105b\u105c\u0005O\u0000\u0000\u105c\u105d\u0005M\u0000\u0000\u105d\u105e"+ + "\u0005P\u0000\u0000\u105e\u105f\u0005L\u0000\u0000\u105f\u1060\u0005E"+ + "\u0000\u0000\u1060\u1061\u0005T\u0000\u0000\u1061\u1062\u0005I\u0000\u0000"+ + "\u1062\u1063\u0005O\u0000\u0000\u1063\u1064\u0005N\u0000\u0000\u1064\u022e"+ + "\u0001\u0000\u0000\u0000\u1065\u1066\u0005C\u0000\u0000\u1066\u1067\u0005"+ + "O\u0000\u0000\u1067\u1068\u0005M\u0000\u0000\u1068\u1069\u0005P\u0000"+ + "\u0000\u1069\u106a\u0005R\u0000\u0000\u106a\u106b\u0005E\u0000\u0000\u106b"+ + "\u106c\u0005S\u0000\u0000\u106c\u106d\u0005S\u0000\u0000\u106d\u106e\u0005"+ + "E\u0000\u0000\u106e\u106f\u0005D\u0000\u0000\u106f\u0230\u0001\u0000\u0000"+ + "\u0000\u1070\u1071\u0005C\u0000\u0000\u1071\u1072\u0005O\u0000\u0000\u1072"+ + "\u1073\u0005M\u0000\u0000\u1073\u1074\u0005P\u0000\u0000\u1074\u1075\u0005"+ + "R\u0000\u0000\u1075\u1076\u0005E\u0000\u0000\u1076\u1077\u0005S\u0000"+ + "\u0000\u1077\u1078\u0005S\u0000\u0000\u1078\u1079\u0005I\u0000\u0000\u1079"+ + "\u107a\u0005O\u0000\u0000\u107a\u107b\u0005N\u0000\u0000\u107b\u0232\u0001"+ + "\u0000\u0000\u0000\u107c\u107d\u0005C\u0000\u0000\u107d\u107e\u0005O\u0000"+ + "\u0000\u107e\u107f\u0005N\u0000\u0000\u107f\u1080\u0005C\u0000\u0000\u1080"+ + "\u1081\u0005U\u0000\u0000\u1081\u1082\u0005R\u0000\u0000\u1082\u1083\u0005"+ + "R\u0000\u0000\u1083\u1084\u0005E\u0000\u0000\u1084\u1085\u0005N\u0000"+ + "\u0000\u1085\u1086\u0005T\u0000\u0000\u1086\u0234\u0001\u0000\u0000\u0000"+ + "\u1087\u1088\u0005C\u0000\u0000\u1088\u1089\u0005O\u0000\u0000\u1089\u108a"+ + "\u0005N\u0000\u0000\u108a\u108b\u0005N\u0000\u0000\u108b\u108c\u0005E"+ + "\u0000\u0000\u108c\u108d\u0005C\u0000\u0000\u108d\u108e\u0005T\u0000\u0000"+ + "\u108e\u108f\u0005I\u0000\u0000\u108f\u1090\u0005O\u0000\u0000\u1090\u1091"+ + "\u0005N\u0000\u0000\u1091\u0236\u0001\u0000\u0000\u0000\u1092\u1093\u0005"+ + "C\u0000\u0000\u1093\u1094\u0005O\u0000\u0000\u1094\u1095\u0005N\u0000"+ + "\u0000\u1095\u1096\u0005S\u0000\u0000\u1096\u1097\u0005I\u0000\u0000\u1097"+ + "\u1098\u0005S\u0000\u0000\u1098\u1099\u0005T\u0000\u0000\u1099\u109a\u0005"+ + "E\u0000\u0000\u109a\u109b\u0005N\u0000\u0000\u109b\u109c\u0005T\u0000"+ + "\u0000\u109c\u0238\u0001\u0000\u0000\u0000\u109d\u109e\u0005C\u0000\u0000"+ + "\u109e\u109f\u0005O\u0000\u0000\u109f\u10a0\u0005N\u0000\u0000\u10a0\u10a1"+ + "\u0005T\u0000\u0000\u10a1\u10a2\u0005A\u0000\u0000\u10a2\u10a3\u0005I"+ + "\u0000\u0000\u10a3\u10a4\u0005N\u0000\u0000\u10a4\u10a5\u0005S\u0000\u0000"+ + "\u10a5\u023a\u0001\u0000\u0000\u0000\u10a6\u10a7\u0005C\u0000\u0000\u10a7"+ + "\u10a8\u0005O\u0000\u0000\u10a8\u10a9\u0005N\u0000\u0000\u10a9\u10aa\u0005"+ + "T\u0000\u0000\u10aa\u10ab\u0005E\u0000\u0000\u10ab\u10ac\u0005X\u0000"+ + "\u0000\u10ac\u10ad\u0005T\u0000\u0000\u10ad\u023c\u0001\u0000\u0000\u0000"+ + "\u10ae\u10af\u0005C\u0000\u0000\u10af\u10b0\u0005O\u0000\u0000\u10b0\u10b1"+ + "\u0005N\u0000\u0000\u10b1\u10b2\u0005T\u0000\u0000\u10b2\u10b3\u0005R"+ + "\u0000\u0000\u10b3\u10b4\u0005I\u0000\u0000\u10b4\u10b5\u0005B\u0000\u0000"+ + "\u10b5\u10b6\u0005U\u0000\u0000\u10b6\u10b7\u0005T\u0000\u0000\u10b7\u10b8"+ + "\u0005O\u0000\u0000\u10b8\u10b9\u0005R\u0000\u0000\u10b9\u10ba\u0005S"+ + "\u0000\u0000\u10ba\u023e\u0001\u0000\u0000\u0000\u10bb\u10bc\u0005C\u0000"+ + "\u0000\u10bc\u10bd\u0005O\u0000\u0000\u10bd\u10be\u0005P\u0000\u0000\u10be"+ + "\u10bf\u0005Y\u0000\u0000\u10bf\u0240\u0001\u0000\u0000\u0000\u10c0\u10c1"+ + "\u0005C\u0000\u0000\u10c1\u10c2\u0005P\u0000\u0000\u10c2\u10c3\u0005U"+ + "\u0000\u0000\u10c3\u0242\u0001\u0000\u0000\u0000\u10c4\u10c5\u0005D\u0000"+ + "\u0000\u10c5\u10c6\u0005A\u0000\u0000\u10c6\u10c7\u0005T\u0000\u0000\u10c7"+ + "\u10c8\u0005A\u0000\u0000\u10c8\u0244\u0001\u0000\u0000\u0000\u10c9\u10ca"+ + "\u0005D\u0000\u0000\u10ca\u10cb\u0005A\u0000\u0000\u10cb\u10cc\u0005T"+ + "\u0000\u0000\u10cc\u10cd\u0005A\u0000\u0000\u10cd\u10ce\u0005F\u0000\u0000"+ + "\u10ce\u10cf\u0005I\u0000\u0000\u10cf\u10d0\u0005L\u0000\u0000\u10d0\u10d1"+ + "\u0005E\u0000\u0000\u10d1\u0246\u0001\u0000\u0000\u0000\u10d2\u10d3\u0005"+ + "D\u0000\u0000\u10d3\u10d4\u0005E\u0000\u0000\u10d4\u10d5\u0005A\u0000"+ + "\u0000\u10d5\u10d6\u0005L\u0000\u0000\u10d6\u10d7\u0005L\u0000\u0000\u10d7"+ + "\u10d8\u0005O\u0000\u0000\u10d8\u10d9\u0005C\u0000\u0000\u10d9\u10da\u0005"+ + "A\u0000\u0000\u10da\u10db\u0005T\u0000\u0000\u10db\u10dc\u0005E\u0000"+ + "\u0000\u10dc\u0248\u0001\u0000\u0000\u0000\u10dd\u10de\u0005D\u0000\u0000"+ + "\u10de\u10df\u0005E\u0000\u0000\u10df\u10e0\u0005F\u0000\u0000\u10e0\u10e1"+ + "\u0005A\u0000\u0000\u10e1\u10e2\u0005U\u0000\u0000\u10e2\u10e3\u0005L"+ + "\u0000\u0000\u10e3\u10e4\u0005T\u0000\u0000\u10e4\u10e5\u0005_\u0000\u0000"+ + "\u10e5\u10e6\u0005A\u0000\u0000\u10e6\u10e7\u0005U\u0000\u0000\u10e7\u10e8"+ + "\u0005T\u0000\u0000\u10e8\u10e9\u0005H\u0000\u0000\u10e9\u024a\u0001\u0000"+ + "\u0000\u0000\u10ea\u10eb\u0005D\u0000\u0000\u10eb\u10ec\u0005E\u0000\u0000"+ + "\u10ec\u10ed\u0005F\u0000\u0000\u10ed\u10ee\u0005I\u0000\u0000\u10ee\u10ef"+ + "\u0005N\u0000\u0000\u10ef\u10f0\u0005E\u0000\u0000\u10f0\u10f1\u0005R"+ + "\u0000\u0000\u10f1\u024c\u0001\u0000\u0000\u0000\u10f2\u10f3\u0005D\u0000"+ + "\u0000\u10f3\u10f4\u0005E\u0000\u0000\u10f4\u10f5\u0005L\u0000\u0000\u10f5"+ + "\u10f6\u0005A\u0000\u0000\u10f6\u10f7\u0005Y\u0000\u0000\u10f7\u10f8\u0005"+ + "_\u0000\u0000\u10f8\u10f9\u0005K\u0000\u0000\u10f9\u10fa\u0005E\u0000"+ + "\u0000\u10fa\u10fb\u0005Y\u0000\u0000\u10fb\u10fc\u0005_\u0000\u0000\u10fc"+ + "\u10fd\u0005W\u0000\u0000\u10fd\u10fe\u0005R\u0000\u0000\u10fe\u10ff\u0005"+ + "I\u0000\u0000\u10ff\u1100\u0005T\u0000\u0000\u1100\u1101\u0005E\u0000"+ + "\u0000\u1101\u024e\u0001\u0000\u0000\u0000\u1102\u1103\u0005D\u0000\u0000"+ + "\u1103\u1104\u0005E\u0000\u0000\u1104\u1105\u0005S\u0000\u0000\u1105\u1106"+ + "\u0005_\u0000\u0000\u1106\u1107\u0005K\u0000\u0000\u1107\u1108\u0005E"+ + "\u0000\u0000\u1108\u1109\u0005Y\u0000\u0000\u1109\u110a\u0005_\u0000\u0000"+ + "\u110a\u110b\u0005F\u0000\u0000\u110b\u110c\u0005I\u0000\u0000\u110c\u110d"+ + "\u0005L\u0000\u0000\u110d\u110e\u0005E\u0000\u0000\u110e\u0250\u0001\u0000"+ + "\u0000\u0000\u110f\u1110\u0005D\u0000\u0000\u1110\u1111\u0005I\u0000\u0000"+ + "\u1111\u1112\u0005R\u0000\u0000\u1112\u1113\u0005E\u0000\u0000\u1113\u1114"+ + "\u0005C\u0000\u0000\u1114\u1115\u0005T\u0000\u0000\u1115\u1116\u0005O"+ + "\u0000\u0000\u1116\u1117\u0005R\u0000\u0000\u1117\u1118\u0005Y\u0000\u0000"+ + "\u1118\u0252\u0001\u0000\u0000\u0000\u1119\u111a\u0005D\u0000\u0000\u111a"+ + "\u111b\u0005I\u0000\u0000\u111b\u111c\u0005S\u0000\u0000\u111c\u111d\u0005"+ + "A\u0000\u0000\u111d\u111e\u0005B\u0000\u0000\u111e\u111f\u0005L\u0000"+ + "\u0000\u111f\u1120\u0005E\u0000\u0000\u1120\u0254\u0001\u0000\u0000\u0000"+ + "\u1121\u1122\u0005D\u0000\u0000\u1122\u1123\u0005I\u0000\u0000\u1123\u1124"+ + "\u0005S\u0000\u0000\u1124\u1125\u0005C\u0000\u0000\u1125\u1126\u0005A"+ + "\u0000\u0000\u1126\u1127\u0005R\u0000\u0000\u1127\u1128\u0005D\u0000\u0000"+ + "\u1128\u0256\u0001\u0000\u0000\u0000\u1129\u112a\u0005D\u0000\u0000\u112a"+ + "\u112b\u0005I\u0000\u0000\u112b\u112c\u0005S\u0000\u0000\u112c\u112d\u0005"+ + "K\u0000\u0000\u112d\u0258\u0001\u0000\u0000\u0000\u112e\u112f\u0005D\u0000"+ + "\u0000\u112f\u1130\u0005O\u0000\u0000\u1130\u025a\u0001\u0000\u0000\u0000"+ + "\u1131\u1132\u0005D\u0000\u0000\u1132\u1133\u0005U\u0000\u0000\u1133\u1134"+ + "\u0005M\u0000\u0000\u1134\u1135\u0005P\u0000\u0000\u1135\u1136\u0005F"+ + "\u0000\u0000\u1136\u1137\u0005I\u0000\u0000\u1137\u1138\u0005L\u0000\u0000"+ + "\u1138\u1139\u0005E\u0000\u0000\u1139\u025c\u0001\u0000\u0000\u0000\u113a"+ + "\u113b\u0005D\u0000\u0000\u113b\u113c\u0005U\u0000\u0000\u113c\u113d\u0005"+ + "P\u0000\u0000\u113d\u113e\u0005L\u0000\u0000\u113e\u113f\u0005I\u0000"+ + "\u0000\u113f\u1140\u0005C\u0000\u0000\u1140\u1141\u0005A\u0000\u0000\u1141"+ + "\u1142\u0005T\u0000\u0000\u1142\u1143\u0005E\u0000\u0000\u1143\u025e\u0001"+ + "\u0000\u0000\u0000\u1144\u1145\u0005D\u0000\u0000\u1145\u1146\u0005Y\u0000"+ + "\u0000\u1146\u1147\u0005N\u0000\u0000\u1147\u1148\u0005A\u0000\u0000\u1148"+ + "\u1149\u0005M\u0000\u0000\u1149\u114a\u0005I\u0000\u0000\u114a\u114b\u0005"+ + "C\u0000\u0000\u114b\u0260\u0001\u0000\u0000\u0000\u114c\u114d\u0005E\u0000"+ + "\u0000\u114d\u114e\u0005N\u0000\u0000\u114e\u114f\u0005A\u0000\u0000\u114f"+ + "\u1150\u0005B\u0000\u0000\u1150\u1151\u0005L\u0000\u0000\u1151\u1152\u0005"+ + "E\u0000\u0000\u1152\u0262\u0001\u0000\u0000\u0000\u1153\u1154\u0005E\u0000"+ + "\u0000\u1154\u1155\u0005N\u0000\u0000\u1155\u1156\u0005C\u0000\u0000\u1156"+ + "\u1157\u0005R\u0000\u0000\u1157\u1158\u0005Y\u0000\u0000\u1158\u1159\u0005"+ + "P\u0000\u0000\u1159\u115a\u0005T\u0000\u0000\u115a\u115b\u0005I\u0000"+ + "\u0000\u115b\u115c\u0005O\u0000\u0000\u115c\u115d\u0005N\u0000\u0000\u115d"+ + "\u0264\u0001\u0000\u0000\u0000\u115e\u115f\u0005E\u0000\u0000\u115f\u1160"+ + "\u0005N\u0000\u0000\u1160\u1161\u0005D\u0000\u0000\u1161\u0266\u0001\u0000"+ + "\u0000\u0000\u1162\u1163\u0005E\u0000\u0000\u1163\u1164\u0005N\u0000\u0000"+ + "\u1164\u1165\u0005D\u0000\u0000\u1165\u1166\u0005S\u0000\u0000\u1166\u0268"+ + "\u0001\u0000\u0000\u0000\u1167\u1168\u0005E\u0000\u0000\u1168\u1169\u0005"+ + "N\u0000\u0000\u1169\u116a\u0005G\u0000\u0000\u116a\u116b\u0005I\u0000"+ + "\u0000\u116b\u116c\u0005N\u0000\u0000\u116c\u116d\u0005E\u0000\u0000\u116d"+ + "\u026a\u0001\u0000\u0000\u0000\u116e\u116f\u0005E\u0000\u0000\u116f\u1170"+ + "\u0005N\u0000\u0000\u1170\u1171\u0005G\u0000\u0000\u1171\u1172\u0005I"+ + "\u0000\u0000\u1172\u1173\u0005N\u0000\u0000\u1173\u1174\u0005E\u0000\u0000"+ + "\u1174\u1175\u0005S\u0000\u0000\u1175\u026c\u0001\u0000\u0000\u0000\u1176"+ + "\u1177\u0005E\u0000\u0000\u1177\u1178\u0005R\u0000\u0000\u1178\u1179\u0005"+ + "R\u0000\u0000\u1179\u117a\u0005O\u0000\u0000\u117a\u117b\u0005R\u0000"+ + "\u0000\u117b\u026e\u0001\u0000\u0000\u0000\u117c\u117d\u0005E\u0000\u0000"+ + "\u117d\u117e\u0005R\u0000\u0000\u117e\u117f\u0005R\u0000\u0000\u117f\u1180"+ + "\u0005O\u0000\u0000\u1180\u1181\u0005R\u0000\u0000\u1181\u1182\u0005S"+ + "\u0000\u0000\u1182\u0270\u0001\u0000\u0000\u0000\u1183\u1184\u0005E\u0000"+ + "\u0000\u1184\u1185\u0005S\u0000\u0000\u1185\u1186\u0005C\u0000\u0000\u1186"+ + "\u1187\u0005A\u0000\u0000\u1187\u1188\u0005P\u0000\u0000\u1188\u1189\u0005"+ + "E\u0000\u0000\u1189\u0272\u0001\u0000\u0000\u0000\u118a\u118b\u0005E\u0000"+ + "\u0000\u118b\u118c\u0005V\u0000\u0000\u118c\u118d\u0005E\u0000\u0000\u118d"+ + "\u118e\u0005N\u0000\u0000\u118e\u0274\u0001\u0000\u0000\u0000\u118f\u1190"+ + "\u0005E\u0000\u0000\u1190\u1191\u0005V\u0000\u0000\u1191\u1192\u0005E"+ + "\u0000\u0000\u1192\u1193\u0005N\u0000\u0000\u1193\u1194\u0005T\u0000\u0000"+ + "\u1194\u0276\u0001\u0000\u0000\u0000\u1195\u1196\u0005E\u0000\u0000\u1196"+ + "\u1197\u0005V\u0000\u0000\u1197\u1198\u0005E\u0000\u0000\u1198\u1199\u0005"+ + "N\u0000\u0000\u1199\u119a\u0005T\u0000\u0000\u119a\u119b\u0005S\u0000"+ + "\u0000\u119b\u0278\u0001\u0000\u0000\u0000\u119c\u119d\u0005E\u0000\u0000"+ + "\u119d\u119e\u0005V\u0000\u0000\u119e\u119f\u0005E\u0000\u0000\u119f\u11a0"+ + "\u0005R\u0000\u0000\u11a0\u11a1\u0005Y\u0000\u0000\u11a1\u027a\u0001\u0000"+ + "\u0000\u0000\u11a2\u11a3\u0005E\u0000\u0000\u11a3\u11a4\u0005X\u0000\u0000"+ + "\u11a4\u11a5\u0005C\u0000\u0000\u11a5\u11a6\u0005H\u0000\u0000\u11a6\u11a7"+ + "\u0005A\u0000\u0000\u11a7\u11a8\u0005N\u0000\u0000\u11a8\u11a9\u0005G"+ + "\u0000\u0000\u11a9\u11aa\u0005E\u0000\u0000\u11aa\u027c\u0001\u0000\u0000"+ + "\u0000\u11ab\u11ac\u0005E\u0000\u0000\u11ac\u11ad\u0005X\u0000\u0000\u11ad"+ + "\u11ae\u0005C\u0000\u0000\u11ae\u11af\u0005L\u0000\u0000\u11af\u11b0\u0005"+ + "U\u0000\u0000\u11b0\u11b1\u0005S\u0000\u0000\u11b1\u11b2\u0005I\u0000"+ + "\u0000\u11b2\u11b3\u0005V\u0000\u0000\u11b3\u11b4\u0005E\u0000\u0000\u11b4"+ + "\u027e\u0001\u0000\u0000\u0000\u11b5\u11b6\u0005E\u0000\u0000\u11b6\u11b7"+ + "\u0005X\u0000\u0000\u11b7\u11b8\u0005P\u0000\u0000\u11b8\u11b9\u0005I"+ + "\u0000\u0000\u11b9\u11ba\u0005R\u0000\u0000\u11ba\u11bb\u0005E\u0000\u0000"+ + "\u11bb\u0280\u0001\u0000\u0000\u0000\u11bc\u11bd\u0005E\u0000\u0000\u11bd"+ + "\u11be\u0005X\u0000\u0000\u11be\u11bf\u0005P\u0000\u0000\u11bf\u11c0\u0005"+ + "O\u0000\u0000\u11c0\u11c1\u0005R\u0000\u0000\u11c1\u11c2\u0005T\u0000"+ + "\u0000\u11c2\u0282\u0001\u0000\u0000\u0000\u11c3\u11c4\u0005E\u0000\u0000"+ + "\u11c4\u11c5\u0005X\u0000\u0000\u11c5\u11c6\u0005T\u0000\u0000\u11c6\u11c7"+ + "\u0005E\u0000\u0000\u11c7\u11c8\u0005N\u0000\u0000\u11c8\u11c9\u0005D"+ + "\u0000\u0000\u11c9\u11ca\u0005E\u0000\u0000\u11ca\u11cb\u0005D\u0000\u0000"+ + "\u11cb\u0284\u0001\u0000\u0000\u0000\u11cc\u11cd\u0005E\u0000\u0000\u11cd"+ + "\u11ce\u0005X\u0000\u0000\u11ce\u11cf\u0005T\u0000\u0000\u11cf\u11d0\u0005"+ + "E\u0000\u0000\u11d0\u11d1\u0005N\u0000\u0000\u11d1\u11d2\u0005T\u0000"+ + "\u0000\u11d2\u11d3\u0005_\u0000\u0000\u11d3\u11d4\u0005S\u0000\u0000\u11d4"+ + "\u11d5\u0005I\u0000\u0000\u11d5\u11d6\u0005Z\u0000\u0000\u11d6\u11d7\u0005"+ + "E\u0000\u0000\u11d7\u0286\u0001\u0000\u0000\u0000\u11d8\u11d9\u0005F\u0000"+ + "\u0000\u11d9\u11da\u0005A\u0000\u0000\u11da\u11db\u0005S\u0000\u0000\u11db"+ + "\u11dc\u0005T\u0000\u0000\u11dc\u0288\u0001\u0000\u0000\u0000\u11dd\u11de"+ + "\u0005F\u0000\u0000\u11de\u11df\u0005A\u0000\u0000\u11df\u11e0\u0005U"+ + "\u0000\u0000\u11e0\u11e1\u0005L\u0000\u0000\u11e1\u11e2\u0005T\u0000\u0000"+ + "\u11e2\u11e3\u0005S\u0000\u0000\u11e3\u028a\u0001\u0000\u0000\u0000\u11e4"+ + "\u11e5\u0005F\u0000\u0000\u11e5\u11e6\u0005I\u0000\u0000\u11e6\u11e7\u0005"+ + "E\u0000\u0000\u11e7\u11e8\u0005L\u0000\u0000\u11e8\u11e9\u0005D\u0000"+ + "\u0000\u11e9\u11ea\u0005S\u0000\u0000\u11ea\u028c\u0001\u0000\u0000\u0000"+ + "\u11eb\u11ec\u0005F\u0000\u0000\u11ec\u11ed\u0005I\u0000\u0000\u11ed\u11ee"+ + "\u0005L\u0000\u0000\u11ee\u11ef\u0005E\u0000\u0000\u11ef\u11f0\u0005_"+ + "\u0000\u0000\u11f0\u11f1\u0005B\u0000\u0000\u11f1\u11f2\u0005L\u0000\u0000"+ + "\u11f2\u11f3\u0005O\u0000\u0000\u11f3\u11f4\u0005C\u0000\u0000\u11f4\u11f5"+ + "\u0005K\u0000\u0000\u11f5\u11f6\u0005_\u0000\u0000\u11f6\u11f7\u0005S"+ + "\u0000\u0000\u11f7\u11f8\u0005I\u0000\u0000\u11f8\u11f9\u0005Z\u0000\u0000"+ + "\u11f9\u11fa\u0005E\u0000\u0000\u11fa\u028e\u0001\u0000\u0000\u0000\u11fb"+ + "\u11fc\u0005F\u0000\u0000\u11fc\u11fd\u0005I\u0000\u0000\u11fd\u11fe\u0005"+ + "L\u0000\u0000\u11fe\u11ff\u0005T\u0000\u0000\u11ff\u1200\u0005E\u0000"+ + "\u0000\u1200\u1201\u0005R\u0000\u0000\u1201\u0290\u0001\u0000\u0000\u0000"+ + "\u1202\u1203\u0005F\u0000\u0000\u1203\u1204\u0005I\u0000\u0000\u1204\u1205"+ + "\u0005R\u0000\u0000\u1205\u1206\u0005S\u0000\u0000\u1206\u1207\u0005T"+ + "\u0000\u0000\u1207\u0292\u0001\u0000\u0000\u0000\u1208\u1209\u0005F\u0000"+ + "\u0000\u1209\u120a\u0005I\u0000\u0000\u120a\u120b\u0005X\u0000\u0000\u120b"+ + "\u120c\u0005E\u0000\u0000\u120c\u120d\u0005D\u0000\u0000\u120d\u0294\u0001"+ + "\u0000\u0000\u0000\u120e\u120f\u0005F\u0000\u0000\u120f\u1210\u0005L\u0000"+ + "\u0000\u1210\u1211\u0005U\u0000\u0000\u1211\u1212\u0005S\u0000\u0000\u1212"+ + "\u1213\u0005H\u0000\u0000\u1213\u0296\u0001\u0000\u0000\u0000\u1214\u1215"+ + "\u0005F\u0000\u0000\u1215\u1216\u0005O\u0000\u0000\u1216\u1217\u0005L"+ + "\u0000\u0000\u1217\u1218\u0005L\u0000\u0000\u1218\u1219\u0005O\u0000\u0000"+ + "\u1219\u121a\u0005W\u0000\u0000\u121a\u121b\u0005S\u0000\u0000\u121b\u0298"+ + "\u0001\u0000\u0000\u0000\u121c\u121d\u0005F\u0000\u0000\u121d\u121e\u0005"+ + "O\u0000\u0000\u121e\u121f\u0005U\u0000\u0000\u121f\u1220\u0005N\u0000"+ + "\u0000\u1220\u1221\u0005D\u0000\u0000\u1221\u029a\u0001\u0000\u0000\u0000"+ + "\u1222\u1223\u0005F\u0000\u0000\u1223\u1224\u0005U\u0000\u0000\u1224\u1225"+ + "\u0005L\u0000\u0000\u1225\u1226\u0005L\u0000\u0000\u1226\u029c\u0001\u0000"+ + "\u0000\u0000\u1227\u1228\u0005F\u0000\u0000\u1228\u1229\u0005U\u0000\u0000"+ + "\u1229\u122a\u0005N\u0000\u0000\u122a\u122b\u0005C\u0000\u0000\u122b\u122c"+ + "\u0005T\u0000\u0000\u122c\u122d\u0005I\u0000\u0000\u122d\u122e\u0005O"+ + "\u0000\u0000\u122e\u122f\u0005N\u0000\u0000\u122f\u029e\u0001\u0000\u0000"+ + "\u0000\u1230\u1231\u0005G\u0000\u0000\u1231\u1232\u0005E\u0000\u0000\u1232"+ + "\u1233\u0005N\u0000\u0000\u1233\u1234\u0005E\u0000\u0000\u1234\u1235\u0005"+ + "R\u0000\u0000\u1235\u1236\u0005A\u0000\u0000\u1236\u1237\u0005L\u0000"+ + "\u0000\u1237\u02a0\u0001\u0000\u0000\u0000\u1238\u1239\u0005G\u0000\u0000"+ + "\u1239\u123a\u0005L\u0000\u0000\u123a\u123b\u0005O\u0000\u0000\u123b\u123c"+ + "\u0005B\u0000\u0000\u123c\u123d\u0005A\u0000\u0000\u123d\u123e\u0005L"+ + "\u0000\u0000\u123e\u02a2\u0001\u0000\u0000\u0000\u123f\u1240\u0005G\u0000"+ + "\u0000\u1240\u1241\u0005R\u0000\u0000\u1241\u1242\u0005A\u0000\u0000\u1242"+ + "\u1243\u0005N\u0000\u0000\u1243\u1244\u0005T\u0000\u0000\u1244\u1245\u0005"+ + "S\u0000\u0000\u1245\u02a4\u0001\u0000\u0000\u0000\u1246\u1247\u0005G\u0000"+ + "\u0000\u1247\u1248\u0005R\u0000\u0000\u1248\u1249\u0005O\u0000\u0000\u1249"+ + "\u124a\u0005U\u0000\u0000\u124a\u124b\u0005P\u0000\u0000\u124b\u124c\u0005"+ + "_\u0000\u0000\u124c\u124d\u0005R\u0000\u0000\u124d\u124e\u0005E\u0000"+ + "\u0000\u124e\u124f\u0005P\u0000\u0000\u124f\u1250\u0005L\u0000\u0000\u1250"+ + "\u1251\u0005I\u0000\u0000\u1251\u1252\u0005C\u0000\u0000\u1252\u1253\u0005"+ + "A\u0000\u0000\u1253\u1254\u0005T\u0000\u0000\u1254\u1255\u0005I\u0000"+ + "\u0000\u1255\u1256\u0005O\u0000\u0000\u1256\u1257\u0005N\u0000\u0000\u1257"+ + "\u02a6\u0001\u0000\u0000\u0000\u1258\u1259\u0005H\u0000\u0000\u1259\u125a"+ + "\u0005A\u0000\u0000\u125a\u125b\u0005N\u0000\u0000\u125b\u125c\u0005D"+ + "\u0000\u0000\u125c\u125d\u0005L\u0000\u0000\u125d\u125e\u0005E\u0000\u0000"+ + "\u125e\u125f\u0005R\u0000\u0000\u125f\u02a8\u0001\u0000\u0000\u0000\u1260"+ + "\u1261\u0005H\u0000\u0000\u1261\u1262\u0005A\u0000\u0000\u1262\u1263\u0005"+ + "S\u0000\u0000\u1263\u1264\u0005H\u0000\u0000\u1264\u02aa\u0001\u0000\u0000"+ + "\u0000\u1265\u1266\u0005H\u0000\u0000\u1266\u1267\u0005E\u0000\u0000\u1267"+ + "\u1268\u0005L\u0000\u0000\u1268\u1269\u0005P\u0000\u0000\u1269\u02ac\u0001"+ + "\u0000\u0000\u0000\u126a\u126b\u0005H\u0000\u0000\u126b\u126c\u0005O\u0000"+ + "\u0000\u126c\u126d\u0005S\u0000\u0000\u126d\u126e\u0005T\u0000\u0000\u126e"+ + "\u02ae\u0001\u0000\u0000\u0000\u126f\u1270\u0005H\u0000\u0000\u1270\u1271"+ + "\u0005O\u0000\u0000\u1271\u1272\u0005S\u0000\u0000\u1272\u1273\u0005T"+ + "\u0000\u0000\u1273\u1274\u0005S\u0000\u0000\u1274\u02b0\u0001\u0000\u0000"+ + "\u0000\u1275\u1276\u0005I\u0000\u0000\u1276\u1277\u0005D\u0000\u0000\u1277"+ + "\u1278\u0005E\u0000\u0000\u1278\u1279\u0005N\u0000\u0000\u1279\u127a\u0005"+ + "T\u0000\u0000\u127a\u127b\u0005I\u0000\u0000\u127b\u127c\u0005F\u0000"+ + "\u0000\u127c\u127d\u0005I\u0000\u0000\u127d\u127e\u0005E\u0000\u0000\u127e"+ + "\u127f\u0005D\u0000\u0000\u127f\u02b2\u0001\u0000\u0000\u0000\u1280\u1281"+ + "\u0005I\u0000\u0000\u1281\u1282\u0005G\u0000\u0000\u1282\u1283\u0005N"+ + "\u0000\u0000\u1283\u1284\u0005O\u0000\u0000\u1284\u1285\u0005R\u0000\u0000"+ + "\u1285\u1286\u0005E\u0000\u0000\u1286\u1287\u0005_\u0000\u0000\u1287\u1288"+ + "\u0005S\u0000\u0000\u1288\u1289\u0005E\u0000\u0000\u1289\u128a\u0005R"+ + "\u0000\u0000\u128a\u128b\u0005V\u0000\u0000\u128b\u128c\u0005E\u0000\u0000"+ + "\u128c\u128d\u0005R\u0000\u0000\u128d\u128e\u0005_\u0000\u0000\u128e\u128f"+ + "\u0005I\u0000\u0000\u128f\u1290\u0005D\u0000\u0000\u1290\u1291\u0005S"+ + "\u0000\u0000\u1291\u02b4\u0001\u0000\u0000\u0000\u1292\u1293\u0005I\u0000"+ + "\u0000\u1293\u1294\u0005M\u0000\u0000\u1294\u1295\u0005P\u0000\u0000\u1295"+ + "\u1296\u0005O\u0000\u0000\u1296\u1297\u0005R\u0000\u0000\u1297\u1298\u0005"+ + "T\u0000\u0000\u1298\u02b6\u0001\u0000\u0000\u0000\u1299\u129a\u0005I\u0000"+ + "\u0000\u129a\u129b\u0005N\u0000\u0000\u129b\u129c\u0005D\u0000\u0000\u129c"+ + "\u129d\u0005E\u0000\u0000\u129d\u129e\u0005X\u0000\u0000\u129e\u129f\u0005"+ + "E\u0000\u0000\u129f\u12a0\u0005S\u0000\u0000\u12a0\u02b8\u0001\u0000\u0000"+ + "\u0000\u12a1\u12a2\u0005I\u0000\u0000\u12a2\u12a3\u0005N\u0000\u0000\u12a3"+ + "\u12a4\u0005I\u0000\u0000\u12a4\u12a5\u0005T\u0000\u0000\u12a5\u12a6\u0005"+ + "I\u0000\u0000\u12a6\u12a7\u0005A\u0000\u0000\u12a7\u12a8\u0005L\u0000"+ + "\u0000\u12a8\u12a9\u0005_\u0000\u0000\u12a9\u12aa\u0005S\u0000\u0000\u12aa"+ + "\u12ab\u0005I\u0000\u0000\u12ab\u12ac\u0005Z\u0000\u0000\u12ac\u12ad\u0005"+ + "E\u0000\u0000\u12ad\u02ba\u0001\u0000\u0000\u0000\u12ae\u12af\u0005I\u0000"+ + "\u0000\u12af\u12b0\u0005N\u0000\u0000\u12b0\u12b1\u0005P\u0000\u0000\u12b1"+ + "\u12b2\u0005L\u0000\u0000\u12b2\u12b3\u0005A\u0000\u0000\u12b3\u12b4\u0005"+ + "C\u0000\u0000\u12b4\u12b5\u0005E\u0000\u0000\u12b5\u02bc\u0001\u0000\u0000"+ + "\u0000\u12b6\u12b7\u0005I\u0000\u0000\u12b7\u12b8\u0005N\u0000\u0000\u12b8"+ + "\u12b9\u0005S\u0000\u0000\u12b9\u12ba\u0005E\u0000\u0000\u12ba\u12bb\u0005"+ + "R\u0000\u0000\u12bb\u12bc\u0005T\u0000\u0000\u12bc\u12bd\u0005_\u0000"+ + "\u0000\u12bd\u12be\u0005M\u0000\u0000\u12be\u12bf\u0005E\u0000\u0000\u12bf"+ + "\u12c0\u0005T\u0000\u0000\u12c0\u12c1\u0005H\u0000\u0000\u12c1\u12c2\u0005"+ + "O\u0000\u0000\u12c2\u12c3\u0005D\u0000\u0000\u12c3\u02be\u0001\u0000\u0000"+ + "\u0000\u12c4\u12c5\u0005I\u0000\u0000\u12c5\u12c6\u0005N\u0000\u0000\u12c6"+ + "\u12c7\u0005S\u0000\u0000\u12c7\u12c8\u0005T\u0000\u0000\u12c8\u12c9\u0005"+ + "A\u0000\u0000\u12c9\u12ca\u0005L\u0000\u0000\u12ca\u12cb\u0005L\u0000"+ + "\u0000\u12cb\u02c0\u0001\u0000\u0000\u0000\u12cc\u12cd\u0005I\u0000\u0000"+ + "\u12cd\u12ce\u0005N\u0000\u0000\u12ce\u12cf\u0005S\u0000\u0000\u12cf\u12d0"+ + "\u0005T\u0000\u0000\u12d0\u12d1\u0005A\u0000\u0000\u12d1\u12d2\u0005N"+ + "\u0000\u0000\u12d2\u12d3\u0005C\u0000\u0000\u12d3\u12d4\u0005E\u0000\u0000"+ + "\u12d4\u02c2\u0001\u0000\u0000\u0000\u12d5\u12d6\u0005I\u0000\u0000\u12d6"+ + "\u12d7\u0005N\u0000\u0000\u12d7\u12d8\u0005V\u0000\u0000\u12d8\u12d9\u0005"+ + "O\u0000\u0000\u12d9\u12da\u0005K\u0000\u0000\u12da\u12db\u0005E\u0000"+ + "\u0000\u12db\u12dc\u0005R\u0000\u0000\u12dc\u02c4\u0001\u0000\u0000\u0000"+ + "\u12dd\u12de\u0005I\u0000\u0000\u12de\u12df\u0005O\u0000\u0000\u12df\u02c6"+ + "\u0001\u0000\u0000\u0000\u12e0\u12e1\u0005I\u0000\u0000\u12e1\u12e2\u0005"+ + "O\u0000\u0000\u12e2\u12e3\u0005_\u0000\u0000\u12e3\u12e4\u0005T\u0000"+ + "\u0000\u12e4\u12e5\u0005H\u0000\u0000\u12e5\u12e6\u0005R\u0000\u0000\u12e6"+ + "\u12e7\u0005E\u0000\u0000\u12e7\u12e8\u0005A\u0000\u0000\u12e8\u12e9\u0005"+ + "D\u0000\u0000\u12e9\u02c8\u0001\u0000\u0000\u0000\u12ea\u12eb\u0005I\u0000"+ + "\u0000\u12eb\u12ec\u0005P\u0000\u0000\u12ec\u12ed\u0005C\u0000\u0000\u12ed"+ + "\u02ca\u0001\u0000\u0000\u0000\u12ee\u12ef\u0005I\u0000\u0000\u12ef\u12f0"+ + "\u0005S\u0000\u0000\u12f0\u12f1\u0005O\u0000\u0000\u12f1\u12f2\u0005L"+ + "\u0000\u0000\u12f2\u12f3\u0005A\u0000\u0000\u12f3\u12f4\u0005T\u0000\u0000"+ + "\u12f4\u12f5\u0005I\u0000\u0000\u12f5\u12f6\u0005O\u0000\u0000\u12f6\u12f7"+ + "\u0005N\u0000\u0000\u12f7\u02cc\u0001\u0000\u0000\u0000\u12f8\u12f9\u0005"+ + "I\u0000\u0000\u12f9\u12fa\u0005S\u0000\u0000\u12fa\u12fb\u0005S\u0000"+ + "\u0000\u12fb\u12fc\u0005U\u0000\u0000\u12fc\u12fd\u0005E\u0000\u0000\u12fd"+ + "\u12fe\u0005R\u0000\u0000\u12fe\u02ce\u0001\u0000\u0000\u0000\u12ff\u1300"+ + "\u0005J\u0000\u0000\u1300\u1301\u0005S\u0000\u0000\u1301\u1302\u0005O"+ + "\u0000\u0000\u1302\u1303\u0005N\u0000\u0000\u1303\u02d0\u0001\u0000\u0000"+ + "\u0000\u1304\u1305\u0005K\u0000\u0000\u1305\u1306\u0005E\u0000\u0000\u1306"+ + "\u1307\u0005Y\u0000\u0000\u1307\u1308\u0005_\u0000\u0000\u1308\u1309\u0005"+ + "B\u0000\u0000\u1309\u130a\u0005L\u0000\u0000\u130a\u130b\u0005O\u0000"+ + "\u0000\u130b\u130c\u0005C\u0000\u0000\u130c\u130d\u0005K\u0000\u0000\u130d"+ + "\u130e\u0005_\u0000\u0000\u130e\u130f\u0005S\u0000\u0000\u130f\u1310\u0005"+ + "I\u0000\u0000\u1310\u1311\u0005Z\u0000\u0000\u1311\u1312\u0005E\u0000"+ + "\u0000\u1312\u02d2\u0001\u0000\u0000\u0000\u1313\u1314\u0005L\u0000\u0000"+ + "\u1314\u1315\u0005A\u0000\u0000\u1315\u1316\u0005N\u0000\u0000\u1316\u1317"+ + "\u0005G\u0000\u0000\u1317\u1318\u0005U\u0000\u0000\u1318\u1319\u0005A"+ + "\u0000\u0000\u1319\u131a\u0005G\u0000\u0000\u131a\u131b\u0005E\u0000\u0000"+ + "\u131b\u02d4\u0001\u0000\u0000\u0000\u131c\u131d\u0005L\u0000\u0000\u131d"+ + "\u131e\u0005A\u0000\u0000\u131e\u131f\u0005S\u0000\u0000\u131f\u1320\u0005"+ + "T\u0000\u0000\u1320\u02d6\u0001\u0000\u0000\u0000\u1321\u1322\u0005L\u0000"+ + "\u0000\u1322\u1323\u0005E\u0000\u0000\u1323\u1324\u0005A\u0000\u0000\u1324"+ + "\u1325\u0005V\u0000\u0000\u1325\u1326\u0005E\u0000\u0000\u1326\u1327\u0005"+ + "S\u0000\u0000\u1327\u02d8\u0001\u0000\u0000\u0000\u1328\u1329\u0005L\u0000"+ + "\u0000\u1329\u132a\u0005E\u0000\u0000\u132a\u132b\u0005S\u0000\u0000\u132b"+ + "\u132c\u0005S\u0000\u0000\u132c\u02da\u0001\u0000\u0000\u0000\u132d\u132e"+ + "\u0005L\u0000\u0000\u132e\u132f\u0005E\u0000\u0000\u132f\u1330\u0005V"+ + "\u0000\u0000\u1330\u1331\u0005E\u0000\u0000\u1331\u1332\u0005L\u0000\u0000"+ + "\u1332\u02dc\u0001\u0000\u0000\u0000\u1333\u1334\u0005L\u0000\u0000\u1334"+ + "\u1335\u0005I\u0000\u0000\u1335\u1336\u0005S\u0000\u0000\u1336\u1337\u0005"+ + "T\u0000\u0000\u1337\u02de\u0001\u0000\u0000\u0000\u1338\u1339\u0005L\u0000"+ + "\u0000\u1339\u133a\u0005O\u0000\u0000\u133a\u133b\u0005C\u0000\u0000\u133b"+ + "\u133c\u0005A\u0000\u0000\u133c\u133d\u0005L\u0000\u0000\u133d\u02e0\u0001"+ + "\u0000\u0000\u0000\u133e\u133f\u0005L\u0000\u0000\u133f\u1340\u0005O\u0000"+ + "\u0000\u1340\u1341\u0005G\u0000\u0000\u1341\u1342\u0005F\u0000\u0000\u1342"+ + "\u1343\u0005I\u0000\u0000\u1343\u1344\u0005L\u0000\u0000\u1344\u1345\u0005"+ + "E\u0000\u0000\u1345\u02e2\u0001\u0000\u0000\u0000\u1346\u1347\u0005L\u0000"+ + "\u0000\u1347\u1348\u0005O\u0000\u0000\u1348\u1349\u0005G\u0000\u0000\u1349"+ + "\u134a\u0005S\u0000\u0000\u134a\u02e4\u0001\u0000\u0000\u0000\u134b\u134c"+ + "\u0005M\u0000\u0000\u134c\u134d\u0005A\u0000\u0000\u134d\u134e\u0005S"+ + "\u0000\u0000\u134e\u134f\u0005T\u0000\u0000\u134f\u1350\u0005E\u0000\u0000"+ + "\u1350\u1351\u0005R\u0000\u0000\u1351\u02e6\u0001\u0000\u0000\u0000\u1352"+ + "\u1353\u0005M\u0000\u0000\u1353\u1354\u0005A\u0000\u0000\u1354\u1355\u0005"+ + "S\u0000\u0000\u1355\u1356\u0005T\u0000\u0000\u1356\u1357\u0005E\u0000"+ + "\u0000\u1357\u1358\u0005R\u0000\u0000\u1358\u1359\u0005_\u0000\u0000\u1359"+ + "\u135a\u0005A\u0000\u0000\u135a\u135b\u0005U\u0000\u0000\u135b\u135c\u0005"+ + "T\u0000\u0000\u135c\u135d\u0005O\u0000\u0000\u135d\u135e\u0005_\u0000"+ + "\u0000\u135e\u135f\u0005P\u0000\u0000\u135f\u1360\u0005O\u0000\u0000\u1360"+ + "\u1361\u0005S\u0000\u0000\u1361\u1362\u0005I\u0000\u0000\u1362\u1363\u0005"+ + "T\u0000\u0000\u1363\u1364\u0005I\u0000\u0000\u1364\u1365\u0005O\u0000"+ + "\u0000\u1365\u1366\u0005N\u0000\u0000\u1366\u02e8\u0001\u0000\u0000\u0000"+ + "\u1367\u1368\u0005M\u0000\u0000\u1368\u1369\u0005A\u0000\u0000\u1369\u136a"+ + "\u0005S\u0000\u0000\u136a\u136b\u0005T\u0000\u0000\u136b\u136c\u0005E"+ + "\u0000\u0000\u136c\u136d\u0005R\u0000\u0000\u136d\u136e\u0005_\u0000\u0000"+ + "\u136e\u136f\u0005C\u0000\u0000\u136f\u1370\u0005O\u0000\u0000\u1370\u1371"+ + "\u0005N\u0000\u0000\u1371\u1372\u0005N\u0000\u0000\u1372\u1373\u0005E"+ + "\u0000\u0000\u1373\u1374\u0005C\u0000\u0000\u1374\u1375\u0005T\u0000\u0000"+ + "\u1375\u1376\u0005_\u0000\u0000\u1376\u1377\u0005R\u0000\u0000\u1377\u1378"+ + "\u0005E\u0000\u0000\u1378\u1379\u0005T\u0000\u0000\u1379\u137a\u0005R"+ + "\u0000\u0000\u137a\u137b\u0005Y\u0000\u0000\u137b\u02ea\u0001\u0000\u0000"+ + "\u0000\u137c\u137d\u0005M\u0000\u0000\u137d\u137e\u0005A\u0000\u0000\u137e"+ + "\u137f\u0005S\u0000\u0000\u137f\u1380\u0005T\u0000\u0000\u1380\u1381\u0005"+ + "E\u0000\u0000\u1381\u1382\u0005R\u0000\u0000\u1382\u1383\u0005_\u0000"+ + "\u0000\u1383\u1384\u0005D\u0000\u0000\u1384\u1385\u0005E\u0000\u0000\u1385"+ + "\u1386\u0005L\u0000\u0000\u1386\u1387\u0005A\u0000\u0000\u1387\u1388\u0005"+ + "Y\u0000\u0000\u1388\u02ec\u0001\u0000\u0000\u0000\u1389\u138a\u0005M\u0000"+ + "\u0000\u138a\u138b\u0005A\u0000\u0000\u138b\u138c\u0005S\u0000\u0000\u138c"+ + "\u138d\u0005T\u0000\u0000\u138d\u138e\u0005E\u0000\u0000\u138e\u138f\u0005"+ + "R\u0000\u0000\u138f\u1390\u0005_\u0000\u0000\u1390\u1391\u0005H\u0000"+ + "\u0000\u1391\u1392\u0005E\u0000\u0000\u1392\u1393\u0005A\u0000\u0000\u1393"+ + "\u1394\u0005R\u0000\u0000\u1394\u1395\u0005T\u0000\u0000\u1395\u1396\u0005"+ + "B\u0000\u0000\u1396\u1397\u0005E\u0000\u0000\u1397\u1398\u0005A\u0000"+ + "\u0000\u1398\u1399\u0005T\u0000\u0000\u1399\u139a\u0005_\u0000\u0000\u139a"+ + "\u139b\u0005P\u0000\u0000\u139b\u139c\u0005E\u0000\u0000\u139c\u139d\u0005"+ + "R\u0000\u0000\u139d\u139e\u0005I\u0000\u0000\u139e\u139f\u0005O\u0000"+ + "\u0000\u139f\u13a0\u0005D\u0000\u0000\u13a0\u02ee\u0001\u0000\u0000\u0000"+ + "\u13a1\u13a2\u0005M\u0000\u0000\u13a2\u13a3\u0005A\u0000\u0000\u13a3\u13a4"+ + "\u0005S\u0000\u0000\u13a4\u13a5\u0005T\u0000\u0000\u13a5\u13a6\u0005E"+ + "\u0000\u0000\u13a6\u13a7\u0005R\u0000\u0000\u13a7\u13a8\u0005_\u0000\u0000"+ + "\u13a8\u13a9\u0005H\u0000\u0000\u13a9\u13aa\u0005O\u0000\u0000\u13aa\u13ab"+ + "\u0005S\u0000\u0000\u13ab\u13ac\u0005T\u0000\u0000\u13ac\u02f0\u0001\u0000"+ + "\u0000\u0000\u13ad\u13ae\u0005M\u0000\u0000\u13ae\u13af\u0005A\u0000\u0000"+ + "\u13af\u13b0\u0005S\u0000\u0000\u13b0\u13b1\u0005T\u0000\u0000\u13b1\u13b2"+ + "\u0005E\u0000\u0000\u13b2\u13b3\u0005R\u0000\u0000\u13b3\u13b4\u0005_"+ + "\u0000\u0000\u13b4\u13b5\u0005L\u0000\u0000\u13b5\u13b6\u0005O\u0000\u0000"+ + "\u13b6\u13b7\u0005G\u0000\u0000\u13b7\u13b8\u0005_\u0000\u0000\u13b8\u13b9"+ + "\u0005F\u0000\u0000\u13b9\u13ba\u0005I\u0000\u0000\u13ba\u13bb\u0005L"+ + "\u0000\u0000\u13bb\u13bc\u0005E\u0000\u0000\u13bc\u02f2\u0001\u0000\u0000"+ + "\u0000\u13bd\u13be\u0005M\u0000\u0000\u13be\u13bf\u0005A\u0000\u0000\u13bf"+ + "\u13c0\u0005S\u0000\u0000\u13c0\u13c1\u0005T\u0000\u0000\u13c1\u13c2\u0005"+ + "E\u0000\u0000\u13c2\u13c3\u0005R\u0000\u0000\u13c3\u13c4\u0005_\u0000"+ + "\u0000\u13c4\u13c5\u0005L\u0000\u0000\u13c5\u13c6\u0005O\u0000\u0000\u13c6"+ + "\u13c7\u0005G\u0000\u0000\u13c7\u13c8\u0005_\u0000\u0000\u13c8\u13c9\u0005"+ + "P\u0000\u0000\u13c9\u13ca\u0005O\u0000\u0000\u13ca\u13cb\u0005S\u0000"+ + "\u0000\u13cb\u02f4\u0001\u0000\u0000\u0000\u13cc\u13cd\u0005M\u0000\u0000"+ + "\u13cd\u13ce\u0005A\u0000\u0000\u13ce\u13cf\u0005S\u0000\u0000\u13cf\u13d0"+ + "\u0005T\u0000\u0000\u13d0\u13d1\u0005E\u0000\u0000\u13d1\u13d2\u0005R"+ + "\u0000\u0000\u13d2\u13d3\u0005_\u0000\u0000\u13d3\u13d4\u0005P\u0000\u0000"+ + "\u13d4\u13d5\u0005A\u0000\u0000\u13d5\u13d6\u0005S\u0000\u0000\u13d6\u13d7"+ + "\u0005S\u0000\u0000\u13d7\u13d8\u0005W\u0000\u0000\u13d8\u13d9\u0005O"+ + "\u0000\u0000\u13d9\u13da\u0005R\u0000\u0000\u13da\u13db\u0005D\u0000\u0000"+ + "\u13db\u02f6\u0001\u0000\u0000\u0000\u13dc\u13dd\u0005M\u0000\u0000\u13dd"+ + "\u13de\u0005A\u0000\u0000\u13de\u13df\u0005S\u0000\u0000\u13df\u13e0\u0005"+ + "T\u0000\u0000\u13e0\u13e1\u0005E\u0000\u0000\u13e1\u13e2\u0005R\u0000"+ + "\u0000\u13e2\u13e3\u0005_\u0000\u0000\u13e3\u13e4\u0005P\u0000\u0000\u13e4"+ + "\u13e5\u0005O\u0000\u0000\u13e5\u13e6\u0005R\u0000\u0000\u13e6\u13e7\u0005"+ + "T\u0000\u0000\u13e7\u02f8\u0001\u0000\u0000\u0000\u13e8\u13e9\u0005M\u0000"+ + "\u0000\u13e9\u13ea\u0005A\u0000\u0000\u13ea\u13eb\u0005S\u0000\u0000\u13eb"+ + "\u13ec\u0005T\u0000\u0000\u13ec\u13ed\u0005E\u0000\u0000\u13ed\u13ee\u0005"+ + "R\u0000\u0000\u13ee\u13ef\u0005_\u0000\u0000\u13ef\u13f0\u0005R\u0000"+ + "\u0000\u13f0\u13f1\u0005E\u0000\u0000\u13f1\u13f2\u0005T\u0000\u0000\u13f2"+ + "\u13f3\u0005R\u0000\u0000\u13f3\u13f4\u0005Y\u0000\u0000\u13f4\u13f5\u0005"+ + "_\u0000\u0000\u13f5\u13f6\u0005C\u0000\u0000\u13f6\u13f7\u0005O\u0000"+ + "\u0000\u13f7\u13f8\u0005U\u0000\u0000\u13f8\u13f9\u0005N\u0000\u0000\u13f9"+ + "\u13fa\u0005T\u0000\u0000\u13fa\u02fa\u0001\u0000\u0000\u0000\u13fb\u13fc"+ + "\u0005M\u0000\u0000\u13fc\u13fd\u0005A\u0000\u0000\u13fd\u13fe\u0005S"+ + "\u0000\u0000\u13fe\u13ff\u0005T\u0000\u0000\u13ff\u1400\u0005E\u0000\u0000"+ + "\u1400\u1401\u0005R\u0000\u0000\u1401\u1402\u0005_\u0000\u0000\u1402\u1403"+ + "\u0005S\u0000\u0000\u1403\u1404\u0005S\u0000\u0000\u1404\u1405\u0005L"+ + "\u0000\u0000\u1405\u02fc\u0001\u0000\u0000\u0000\u1406\u1407\u0005M\u0000"+ + "\u0000\u1407\u1408\u0005A\u0000\u0000\u1408\u1409\u0005S\u0000\u0000\u1409"+ + "\u140a\u0005T\u0000\u0000\u140a\u140b\u0005E\u0000\u0000\u140b\u140c\u0005"+ + "R\u0000\u0000\u140c\u140d\u0005_\u0000\u0000\u140d\u140e\u0005S\u0000"+ + "\u0000\u140e\u140f\u0005S\u0000\u0000\u140f\u1410\u0005L\u0000\u0000\u1410"+ + "\u1411\u0005_\u0000\u0000\u1411\u1412\u0005C\u0000\u0000\u1412\u1413\u0005"+ + "A\u0000\u0000\u1413\u02fe\u0001\u0000\u0000\u0000\u1414\u1415\u0005M\u0000"+ + "\u0000\u1415\u1416\u0005A\u0000\u0000\u1416\u1417\u0005S\u0000\u0000\u1417"+ + "\u1418\u0005T\u0000\u0000\u1418\u1419\u0005E\u0000\u0000\u1419\u141a\u0005"+ + "R\u0000\u0000\u141a\u141b\u0005_\u0000\u0000\u141b\u141c\u0005S\u0000"+ + "\u0000\u141c\u141d\u0005S\u0000\u0000\u141d\u141e\u0005L\u0000\u0000\u141e"+ + "\u141f\u0005_\u0000\u0000\u141f\u1420\u0005C\u0000\u0000\u1420\u1421\u0005"+ + "A\u0000\u0000\u1421\u1422\u0005P\u0000\u0000\u1422\u1423\u0005A\u0000"+ + "\u0000\u1423\u1424\u0005T\u0000\u0000\u1424\u1425\u0005H\u0000\u0000\u1425"+ + "\u0300\u0001\u0000\u0000\u0000\u1426\u1427\u0005M\u0000\u0000\u1427\u1428"+ + "\u0005A\u0000\u0000\u1428\u1429\u0005S\u0000\u0000\u1429\u142a\u0005T"+ + "\u0000\u0000\u142a\u142b\u0005E\u0000\u0000\u142b\u142c\u0005R\u0000\u0000"+ + "\u142c\u142d\u0005_\u0000\u0000\u142d\u142e\u0005S\u0000\u0000\u142e\u142f"+ + "\u0005S\u0000\u0000\u142f\u1430\u0005L\u0000\u0000\u1430\u1431\u0005_"+ + "\u0000\u0000\u1431\u1432\u0005C\u0000\u0000\u1432\u1433\u0005E\u0000\u0000"+ + "\u1433\u1434\u0005R\u0000\u0000\u1434\u1435\u0005T\u0000\u0000\u1435\u0302"+ + "\u0001\u0000\u0000\u0000\u1436\u1437\u0005M\u0000\u0000\u1437\u1438\u0005"+ + "A\u0000\u0000\u1438\u1439\u0005S\u0000\u0000\u1439\u143a\u0005T\u0000"+ + "\u0000\u143a\u143b\u0005E\u0000\u0000\u143b\u143c\u0005R\u0000\u0000\u143c"+ + "\u143d\u0005_\u0000\u0000\u143d\u143e\u0005S\u0000\u0000\u143e\u143f\u0005"+ + "S\u0000\u0000\u143f\u1440\u0005L\u0000\u0000\u1440\u1441\u0005_\u0000"+ + "\u0000\u1441\u1442\u0005C\u0000\u0000\u1442\u1443\u0005I\u0000\u0000\u1443"+ + "\u1444\u0005P\u0000\u0000\u1444\u1445\u0005H\u0000\u0000\u1445\u1446\u0005"+ + "E\u0000\u0000\u1446\u1447\u0005R\u0000\u0000\u1447\u0304\u0001\u0000\u0000"+ + "\u0000\u1448\u1449\u0005M\u0000\u0000\u1449\u144a\u0005A\u0000\u0000\u144a"+ + "\u144b\u0005S\u0000\u0000\u144b\u144c\u0005T\u0000\u0000\u144c\u144d\u0005"+ + "E\u0000\u0000\u144d\u144e\u0005R\u0000\u0000\u144e\u144f\u0005_\u0000"+ + "\u0000\u144f\u1450\u0005S\u0000\u0000\u1450\u1451\u0005S\u0000\u0000\u1451"+ + "\u1452\u0005L\u0000\u0000\u1452\u1453\u0005_\u0000\u0000\u1453\u1454\u0005"+ + "C\u0000\u0000\u1454\u1455\u0005R\u0000\u0000\u1455\u1456\u0005L\u0000"+ + "\u0000\u1456\u0306\u0001\u0000\u0000\u0000\u1457\u1458\u0005M\u0000\u0000"+ + "\u1458\u1459\u0005A\u0000\u0000\u1459\u145a\u0005S\u0000\u0000\u145a\u145b"+ + "\u0005T\u0000\u0000\u145b\u145c\u0005E\u0000\u0000\u145c\u145d\u0005R"+ + "\u0000\u0000\u145d\u145e\u0005_\u0000\u0000\u145e\u145f\u0005S\u0000\u0000"+ + "\u145f\u1460\u0005S\u0000\u0000\u1460\u1461\u0005L\u0000\u0000\u1461\u1462"+ + "\u0005_\u0000\u0000\u1462\u1463\u0005C\u0000\u0000\u1463\u1464\u0005R"+ + "\u0000\u0000\u1464\u1465\u0005L\u0000\u0000\u1465\u1466\u0005P\u0000\u0000"+ + "\u1466\u1467\u0005A\u0000\u0000\u1467\u1468\u0005T\u0000\u0000\u1468\u1469"+ + "\u0005H\u0000\u0000\u1469\u0308\u0001\u0000\u0000\u0000\u146a\u146b\u0005"+ + "M\u0000\u0000\u146b\u146c\u0005A\u0000\u0000\u146c\u146d\u0005S\u0000"+ + "\u0000\u146d\u146e\u0005T\u0000\u0000\u146e\u146f\u0005E\u0000\u0000\u146f"+ + "\u1470\u0005R\u0000\u0000\u1470\u1471\u0005_\u0000\u0000\u1471\u1472\u0005"+ + "S\u0000\u0000\u1472\u1473\u0005S\u0000\u0000\u1473\u1474\u0005L\u0000"+ + "\u0000\u1474\u1475\u0005_\u0000\u0000\u1475\u1476\u0005K\u0000\u0000\u1476"+ + "\u1477\u0005E\u0000\u0000\u1477\u1478\u0005Y\u0000\u0000\u1478\u030a\u0001"+ + "\u0000\u0000\u0000\u1479\u147a\u0005M\u0000\u0000\u147a\u147b\u0005A\u0000"+ + "\u0000\u147b\u147c\u0005S\u0000\u0000\u147c\u147d\u0005T\u0000\u0000\u147d"+ + "\u147e\u0005E\u0000\u0000\u147e\u147f\u0005R\u0000\u0000\u147f\u1480\u0005"+ + "_\u0000\u0000\u1480\u1481\u0005T\u0000\u0000\u1481\u1482\u0005L\u0000"+ + "\u0000\u1482\u1483\u0005S\u0000\u0000\u1483\u1484\u0005_\u0000\u0000\u1484"+ + "\u1485\u0005V\u0000\u0000\u1485\u1486\u0005E\u0000\u0000\u1486\u1487\u0005"+ + "R\u0000\u0000\u1487\u1488\u0005S\u0000\u0000\u1488\u1489\u0005I\u0000"+ + "\u0000\u1489\u148a\u0005O\u0000\u0000\u148a\u148b\u0005N\u0000\u0000\u148b"+ + "\u030c\u0001\u0000\u0000\u0000\u148c\u148d\u0005M\u0000\u0000\u148d\u148e"+ + "\u0005A\u0000\u0000\u148e\u148f\u0005S\u0000\u0000\u148f\u1490\u0005T"+ + "\u0000\u0000\u1490\u1491\u0005E\u0000\u0000\u1491\u1492\u0005R\u0000\u0000"+ + "\u1492\u1493\u0005_\u0000\u0000\u1493\u1494\u0005U\u0000\u0000\u1494\u1495"+ + "\u0005S\u0000\u0000\u1495\u1496\u0005E\u0000\u0000\u1496\u1497\u0005R"+ + "\u0000\u0000\u1497\u030e\u0001\u0000\u0000\u0000\u1498\u1499\u0005M\u0000"+ + "\u0000\u1499\u149a\u0005A\u0000\u0000\u149a\u149b\u0005X\u0000\u0000\u149b"+ + "\u149c\u0005_\u0000\u0000\u149c\u149d\u0005C\u0000\u0000\u149d\u149e\u0005"+ + "O\u0000\u0000\u149e\u149f\u0005N\u0000\u0000\u149f\u14a0\u0005N\u0000"+ + "\u0000\u14a0\u14a1\u0005E\u0000\u0000\u14a1\u14a2\u0005C\u0000\u0000\u14a2"+ + "\u14a3\u0005T\u0000\u0000\u14a3\u14a4\u0005I\u0000\u0000\u14a4\u14a5\u0005"+ + "O\u0000\u0000\u14a5\u14a6\u0005N\u0000\u0000\u14a6\u14a7\u0005S\u0000"+ + "\u0000\u14a7\u14a8\u0005_\u0000\u0000\u14a8\u14a9\u0005P\u0000\u0000\u14a9"+ + "\u14aa\u0005E\u0000\u0000\u14aa\u14ab\u0005R\u0000\u0000\u14ab\u14ac\u0005"+ + "_\u0000\u0000\u14ac\u14ad\u0005H\u0000\u0000\u14ad\u14ae\u0005O\u0000"+ + "\u0000\u14ae\u14af\u0005U\u0000\u0000\u14af\u14b0\u0005R\u0000\u0000\u14b0"+ + "\u0310\u0001\u0000\u0000\u0000\u14b1\u14b2\u0005M\u0000\u0000\u14b2\u14b3"+ + "\u0005A\u0000\u0000\u14b3\u14b4\u0005X\u0000\u0000\u14b4\u14b5\u0005_"+ + "\u0000\u0000\u14b5\u14b6\u0005Q\u0000\u0000\u14b6\u14b7\u0005U\u0000\u0000"+ + "\u14b7\u14b8\u0005E\u0000\u0000\u14b8\u14b9\u0005R\u0000\u0000\u14b9\u14ba"+ + "\u0005I\u0000\u0000\u14ba\u14bb\u0005E\u0000\u0000\u14bb\u14bc\u0005S"+ + "\u0000\u0000\u14bc\u14bd\u0005_\u0000\u0000\u14bd\u14be\u0005P\u0000\u0000"+ + "\u14be\u14bf\u0005E\u0000\u0000\u14bf\u14c0\u0005R\u0000\u0000\u14c0\u14c1"+ + "\u0005_\u0000\u0000\u14c1\u14c2\u0005H\u0000\u0000\u14c2\u14c3\u0005O"+ + "\u0000\u0000\u14c3\u14c4\u0005U\u0000\u0000\u14c4\u14c5\u0005R\u0000\u0000"+ + "\u14c5\u0312\u0001\u0000\u0000\u0000\u14c6\u14c7\u0005M\u0000\u0000\u14c7"+ + "\u14c8\u0005A\u0000\u0000\u14c8\u14c9\u0005X\u0000\u0000\u14c9\u14ca\u0005"+ + "_\u0000\u0000\u14ca\u14cb\u0005R\u0000\u0000\u14cb\u14cc\u0005O\u0000"+ + "\u0000\u14cc\u14cd\u0005W\u0000\u0000\u14cd\u14ce\u0005S\u0000\u0000\u14ce"+ + "\u0314\u0001\u0000\u0000\u0000\u14cf\u14d0\u0005M\u0000\u0000\u14d0\u14d1"+ + "\u0005A\u0000\u0000\u14d1\u14d2\u0005X\u0000\u0000\u14d2\u14d3\u0005_"+ + "\u0000\u0000\u14d3\u14d4\u0005S\u0000\u0000\u14d4\u14d5\u0005I\u0000\u0000"+ + "\u14d5\u14d6\u0005Z\u0000\u0000\u14d6\u14d7\u0005E\u0000\u0000\u14d7\u0316"+ + "\u0001\u0000\u0000\u0000\u14d8\u14d9\u0005M\u0000\u0000\u14d9\u14da\u0005"+ + "A\u0000\u0000\u14da\u14db\u0005X\u0000\u0000\u14db\u14dc\u0005_\u0000"+ + "\u0000\u14dc\u14dd\u0005U\u0000\u0000\u14dd\u14de\u0005P\u0000\u0000\u14de"+ + "\u14df\u0005D\u0000\u0000\u14df\u14e0\u0005A\u0000\u0000\u14e0\u14e1\u0005"+ + "T\u0000\u0000\u14e1\u14e2\u0005E\u0000\u0000\u14e2\u14e3\u0005S\u0000"+ + "\u0000\u14e3\u14e4\u0005_\u0000\u0000\u14e4\u14e5\u0005P\u0000\u0000\u14e5"+ + "\u14e6\u0005E\u0000\u0000\u14e6\u14e7\u0005R\u0000\u0000\u14e7\u14e8\u0005"+ + "_\u0000\u0000\u14e8\u14e9\u0005H\u0000\u0000\u14e9\u14ea\u0005O\u0000"+ + "\u0000\u14ea\u14eb\u0005U\u0000\u0000\u14eb\u14ec\u0005R\u0000\u0000\u14ec"+ + "\u0318\u0001\u0000\u0000\u0000\u14ed\u14ee\u0005M\u0000\u0000\u14ee\u14ef"+ + "\u0005A\u0000\u0000\u14ef\u14f0\u0005X\u0000\u0000\u14f0\u14f1\u0005_"+ + "\u0000\u0000\u14f1\u14f2\u0005U\u0000\u0000\u14f2\u14f3\u0005S\u0000\u0000"+ + "\u14f3\u14f4\u0005E\u0000\u0000\u14f4\u14f5\u0005R\u0000\u0000\u14f5\u14f6"+ + "\u0005_\u0000\u0000\u14f6\u14f7\u0005C\u0000\u0000\u14f7\u14f8\u0005O"+ + "\u0000\u0000\u14f8\u14f9\u0005N\u0000\u0000\u14f9\u14fa\u0005N\u0000\u0000"+ + "\u14fa\u14fb\u0005E\u0000\u0000\u14fb\u14fc\u0005C\u0000\u0000\u14fc\u14fd"+ + "\u0005T\u0000\u0000\u14fd\u14fe\u0005I\u0000\u0000\u14fe\u14ff\u0005O"+ + "\u0000\u0000\u14ff\u1500\u0005N\u0000\u0000\u1500\u1501\u0005S\u0000\u0000"+ + "\u1501\u031a\u0001\u0000\u0000\u0000\u1502\u1503\u0005M\u0000\u0000\u1503"+ + "\u1504\u0005E\u0000\u0000\u1504\u1505\u0005D\u0000\u0000\u1505\u1506\u0005"+ + "I\u0000\u0000\u1506\u1507\u0005U\u0000\u0000\u1507\u1508\u0005M\u0000"+ + "\u0000\u1508\u031c\u0001\u0000\u0000\u0000\u1509\u150a\u0005M\u0000\u0000"+ + "\u150a\u150b\u0005E\u0000\u0000\u150b\u150c\u0005R\u0000\u0000\u150c\u150d"+ + "\u0005G\u0000\u0000\u150d\u150e\u0005E\u0000\u0000\u150e\u031e\u0001\u0000"+ + "\u0000\u0000\u150f\u1510\u0005M\u0000\u0000\u1510\u1511\u0005I\u0000\u0000"+ + "\u1511\u1512\u0005D\u0000\u0000\u1512\u0320\u0001\u0000\u0000\u0000\u1513"+ + "\u1514\u0005M\u0000\u0000\u1514\u1515\u0005I\u0000\u0000\u1515\u1516\u0005"+ + "G\u0000\u0000\u1516\u1517\u0005R\u0000\u0000\u1517\u1518\u0005A\u0000"+ + "\u0000\u1518\u1519\u0005T\u0000\u0000\u1519\u151a\u0005E\u0000\u0000\u151a"+ + "\u0322\u0001\u0000\u0000\u0000\u151b\u151c\u0005M\u0000\u0000\u151c\u151d"+ + "\u0005I\u0000\u0000\u151d\u151e\u0005N\u0000\u0000\u151e\u151f\u0005_"+ + "\u0000\u0000\u151f\u1520\u0005R\u0000\u0000\u1520\u1521\u0005O\u0000\u0000"+ + "\u1521\u1522\u0005W\u0000\u0000\u1522\u1523\u0005S\u0000\u0000\u1523\u0324"+ + "\u0001\u0000\u0000\u0000\u1524\u1525\u0005M\u0000\u0000\u1525\u1526\u0005"+ + "O\u0000\u0000\u1526\u1527\u0005D\u0000\u0000\u1527\u1528\u0005E\u0000"+ + "\u0000\u1528\u0326\u0001\u0000\u0000\u0000\u1529\u152a\u0005M\u0000\u0000"+ + "\u152a\u152b\u0005O\u0000\u0000\u152b\u152c\u0005D\u0000\u0000\u152c\u152d"+ + "\u0005I\u0000\u0000\u152d\u152e\u0005F\u0000\u0000\u152e\u152f\u0005Y"+ + "\u0000\u0000\u152f\u0328\u0001\u0000\u0000\u0000\u1530\u1531\u0005M\u0000"+ + "\u0000\u1531\u1532\u0005U\u0000\u0000\u1532\u1533\u0005T\u0000\u0000\u1533"+ + "\u1534\u0005E\u0000\u0000\u1534\u1535\u0005X\u0000\u0000\u1535\u032a\u0001"+ + "\u0000\u0000\u0000\u1536\u1537\u0005M\u0000\u0000\u1537\u1538\u0005Y\u0000"+ + "\u0000\u1538\u1539\u0005S\u0000\u0000\u1539\u153a\u0005Q\u0000\u0000\u153a"+ + "\u153b\u0005L\u0000\u0000\u153b\u032c\u0001\u0000\u0000\u0000\u153c\u153d"+ + "\u0005N\u0000\u0000\u153d\u153e\u0005A\u0000\u0000\u153e\u153f\u0005M"+ + "\u0000\u0000\u153f\u1540\u0005E\u0000\u0000\u1540\u032e\u0001\u0000\u0000"+ + "\u0000\u1541\u1542\u0005N\u0000\u0000\u1542\u1543\u0005A\u0000\u0000\u1543"+ + "\u1544\u0005M\u0000\u0000\u1544\u1545\u0005E\u0000\u0000\u1545\u1546\u0005"+ + "S\u0000\u0000\u1546\u0330\u0001\u0000\u0000\u0000\u1547\u1548\u0005N\u0000"+ + "\u0000\u1548\u1549\u0005C\u0000\u0000\u1549\u154a\u0005H\u0000\u0000\u154a"+ + "\u154b\u0005A\u0000\u0000\u154b\u154c\u0005R\u0000\u0000\u154c\u0332\u0001"+ + "\u0000\u0000\u0000\u154d\u154e\u0005N\u0000\u0000\u154e\u154f\u0005E\u0000"+ + "\u0000\u154f\u1550\u0005V\u0000\u0000\u1550\u1551\u0005E\u0000\u0000\u1551"+ + "\u1552\u0005R\u0000\u0000\u1552\u0334\u0001\u0000\u0000\u0000\u1553\u1554"+ + "\u0005N\u0000\u0000\u1554\u1555\u0005E\u0000\u0000\u1555\u1556\u0005X"+ + "\u0000\u0000\u1556\u1557\u0005T\u0000\u0000\u1557\u0336\u0001\u0000\u0000"+ + "\u0000\u1558\u1559\u0005N\u0000\u0000\u1559\u155a\u0005O\u0000\u0000\u155a"+ + "\u0338\u0001\u0000\u0000\u0000\u155b\u155c\u0005N\u0000\u0000\u155c\u155d"+ + "\u0005O\u0000\u0000\u155d\u155e\u0005D\u0000\u0000\u155e\u155f\u0005E"+ + "\u0000\u0000\u155f\u1560\u0005G\u0000\u0000\u1560\u1561\u0005R\u0000\u0000"+ + "\u1561\u1562\u0005O\u0000\u0000\u1562\u1563\u0005U\u0000\u0000\u1563\u1564"+ + "\u0005P\u0000\u0000\u1564\u033a\u0001\u0000\u0000\u0000\u1565\u1566\u0005"+ + "N\u0000\u0000\u1566\u1567\u0005O\u0000\u0000\u1567\u1568\u0005N\u0000"+ + "\u0000\u1568\u1569\u0005E\u0000\u0000\u1569\u033c\u0001\u0000\u0000\u0000"+ + "\u156a\u156b\u0005O\u0000\u0000\u156b\u156c\u0005F\u0000\u0000\u156c\u156d"+ + "\u0005F\u0000\u0000\u156d\u156e\u0005L\u0000\u0000\u156e\u156f\u0005I"+ + "\u0000\u0000\u156f\u1570\u0005N\u0000\u0000\u1570\u1571\u0005E\u0000\u0000"+ + "\u1571\u033e\u0001\u0000\u0000\u0000\u1572\u1573\u0005O\u0000\u0000\u1573"+ + "\u1574\u0005F\u0000\u0000\u1574\u1575\u0005F\u0000\u0000\u1575\u1576\u0005"+ + "S\u0000\u0000\u1576\u1577\u0005E\u0000\u0000\u1577\u1578\u0005T\u0000"+ + "\u0000\u1578\u0340\u0001\u0000\u0000\u0000\u1579\u157a\u0005O\u0000\u0000"+ + "\u157a\u157b\u0005J\u0000\u0000\u157b\u0342\u0001\u0000\u0000\u0000\u157c"+ + "\u157d\u0005O\u0000\u0000\u157d\u157e\u0005L\u0000\u0000\u157e\u157f\u0005"+ + "D\u0000\u0000\u157f\u1580\u0005_\u0000\u0000\u1580\u1581\u0005P\u0000"+ + "\u0000\u1581\u1582\u0005A\u0000\u0000\u1582\u1583\u0005S\u0000\u0000\u1583"+ + "\u1584\u0005S\u0000\u0000\u1584\u1585\u0005W\u0000\u0000\u1585\u1586\u0005"+ + "O\u0000\u0000\u1586\u1587\u0005R\u0000\u0000\u1587\u1588\u0005D\u0000"+ + "\u0000\u1588\u0344\u0001\u0000\u0000\u0000\u1589\u158a\u0005O\u0000\u0000"+ + "\u158a\u158b\u0005N\u0000\u0000\u158b\u158c\u0005E\u0000\u0000\u158c\u0346"+ + "\u0001\u0000\u0000\u0000\u158d\u158e\u0005O\u0000\u0000\u158e\u158f\u0005"+ + "N\u0000\u0000\u158f\u1590\u0005L\u0000\u0000\u1590\u1591\u0005I\u0000"+ + "\u0000\u1591\u1592\u0005N\u0000\u0000\u1592\u1593\u0005E\u0000\u0000\u1593"+ + "\u0348\u0001\u0000\u0000\u0000\u1594\u1595\u0005O\u0000\u0000\u1595\u1596"+ + "\u0005N\u0000\u0000\u1596\u1597\u0005L\u0000\u0000\u1597\u1598\u0005Y"+ + "\u0000\u0000\u1598\u034a\u0001\u0000\u0000\u0000\u1599\u159a\u0005O\u0000"+ + "\u0000\u159a\u159b\u0005P\u0000\u0000\u159b\u159c\u0005E\u0000\u0000\u159c"+ + "\u159d\u0005N\u0000\u0000\u159d\u034c\u0001\u0000\u0000\u0000\u159e\u159f"+ + "\u0005O\u0000\u0000\u159f\u15a0\u0005P\u0000\u0000\u15a0\u15a1\u0005T"+ + "\u0000\u0000\u15a1\u15a2\u0005I\u0000\u0000\u15a2\u15a3\u0005M\u0000\u0000"+ + "\u15a3\u15a4\u0005I\u0000\u0000\u15a4\u15a5\u0005Z\u0000\u0000\u15a5\u15a6"+ + "\u0005E\u0000\u0000\u15a6\u15a7\u0005R\u0000\u0000\u15a7\u15a8\u0005_"+ + "\u0000\u0000\u15a8\u15a9\u0005C\u0000\u0000\u15a9\u15aa\u0005O\u0000\u0000"+ + "\u15aa\u15ab\u0005S\u0000\u0000\u15ab\u15ac\u0005T\u0000\u0000\u15ac\u15ad"+ + "\u0005S\u0000\u0000\u15ad\u034e\u0001\u0000\u0000\u0000\u15ae\u15af\u0005"+ + "O\u0000\u0000\u15af\u15b0\u0005P\u0000\u0000\u15b0\u15b1\u0005T\u0000"+ + "\u0000\u15b1\u15b2\u0005I\u0000\u0000\u15b2\u15b3\u0005O\u0000\u0000\u15b3"+ + "\u15b4\u0005N\u0000\u0000\u15b4\u15b5\u0005S\u0000\u0000\u15b5\u0350\u0001"+ + "\u0000\u0000\u0000\u15b6\u15b7\u0005O\u0000\u0000\u15b7\u15b8\u0005W\u0000"+ + "\u0000\u15b8\u15b9\u0005N\u0000\u0000\u15b9\u15ba\u0005E\u0000\u0000\u15ba"+ + "\u15bb\u0005R\u0000\u0000\u15bb\u0352\u0001\u0000\u0000\u0000\u15bc\u15bd"+ + "\u0005P\u0000\u0000\u15bd\u15be\u0005A\u0000\u0000\u15be\u15bf\u0005C"+ + "\u0000\u0000\u15bf\u15c0\u0005K\u0000\u0000\u15c0\u15c1\u0005_\u0000\u0000"+ + "\u15c1\u15c2\u0005K\u0000\u0000\u15c2\u15c3\u0005E\u0000\u0000\u15c3\u15c4"+ + "\u0005Y\u0000\u0000\u15c4\u15c5\u0005S\u0000\u0000\u15c5\u0354\u0001\u0000"+ + "\u0000\u0000\u15c6\u15c7\u0005P\u0000\u0000\u15c7\u15c8\u0005A\u0000\u0000"+ + "\u15c8\u15c9\u0005G\u0000\u0000\u15c9\u15ca\u0005E\u0000\u0000\u15ca\u0356"+ + "\u0001\u0000\u0000\u0000\u15cb\u15cc\u0005P\u0000\u0000\u15cc\u15cd\u0005"+ + "A\u0000\u0000\u15cd\u15ce\u0005R\u0000\u0000\u15ce\u15cf\u0005S\u0000"+ + "\u0000\u15cf\u15d0\u0005E\u0000\u0000\u15d0\u15d1\u0005R\u0000\u0000\u15d1"+ + "\u0358\u0001\u0000\u0000\u0000\u15d2\u15d3\u0005P\u0000\u0000\u15d3\u15d4"+ + "\u0005A\u0000\u0000\u15d4\u15d5\u0005R\u0000\u0000\u15d5\u15d6\u0005T"+ + "\u0000\u0000\u15d6\u15d7\u0005I\u0000\u0000\u15d7\u15d8\u0005A\u0000\u0000"+ + "\u15d8\u15d9\u0005L\u0000\u0000\u15d9\u035a\u0001\u0000\u0000\u0000\u15da"+ + "\u15db\u0005P\u0000\u0000\u15db\u15dc\u0005A\u0000\u0000\u15dc\u15dd\u0005"+ + "R\u0000\u0000\u15dd\u15de\u0005T\u0000\u0000\u15de\u15df\u0005I\u0000"+ + "\u0000\u15df\u15e0\u0005T\u0000\u0000\u15e0\u15e1\u0005I\u0000\u0000\u15e1"+ + "\u15e2\u0005O\u0000\u0000\u15e2\u15e3\u0005N\u0000\u0000\u15e3\u15e4\u0005"+ + "I\u0000\u0000\u15e4\u15e5\u0005N\u0000\u0000\u15e5\u15e6\u0005G\u0000"+ + "\u0000\u15e6\u035c\u0001\u0000\u0000\u0000\u15e7\u15e8\u0005P\u0000\u0000"+ + "\u15e8\u15e9\u0005A\u0000\u0000\u15e9\u15ea\u0005R\u0000\u0000\u15ea\u15eb"+ + "\u0005T\u0000\u0000\u15eb\u15ec\u0005I\u0000\u0000\u15ec\u15ed\u0005T"+ + "\u0000\u0000\u15ed\u15ee\u0005I\u0000\u0000\u15ee\u15ef\u0005O\u0000\u0000"+ + "\u15ef\u15f0\u0005N\u0000\u0000\u15f0\u15f1\u0005S\u0000\u0000\u15f1\u035e"+ + "\u0001\u0000\u0000\u0000\u15f2\u15f3\u0005P\u0000\u0000\u15f3\u15f4\u0005"+ + "A\u0000\u0000\u15f4\u15f5\u0005S\u0000\u0000\u15f5\u15f6\u0005S\u0000"+ + "\u0000\u15f6\u15f7\u0005W\u0000\u0000\u15f7\u15f8\u0005O\u0000\u0000\u15f8"+ + "\u15f9\u0005R\u0000\u0000\u15f9\u15fa\u0005D\u0000\u0000\u15fa\u0360\u0001"+ + "\u0000\u0000\u0000\u15fb\u15fc\u0005P\u0000\u0000\u15fc\u15fd\u0005H\u0000"+ + "\u0000\u15fd\u15fe\u0005A\u0000\u0000\u15fe\u15ff\u0005S\u0000\u0000\u15ff"+ + "\u1600\u0005E\u0000\u0000\u1600\u0362\u0001\u0000\u0000\u0000\u1601\u1602"+ + "\u0005P\u0000\u0000\u1602\u1603\u0005L\u0000\u0000\u1603\u1604\u0005U"+ + "\u0000\u0000\u1604\u1605\u0005G\u0000\u0000\u1605\u1606\u0005I\u0000\u0000"+ + "\u1606\u1607\u0005N\u0000\u0000\u1607\u0364\u0001\u0000\u0000\u0000\u1608"+ + "\u1609\u0005P\u0000\u0000\u1609\u160a\u0005L\u0000\u0000\u160a\u160b\u0005"+ + "U\u0000\u0000\u160b\u160c\u0005G\u0000\u0000\u160c\u160d\u0005I\u0000"+ + "\u0000\u160d\u160e\u0005N\u0000\u0000\u160e\u160f\u0005_\u0000\u0000\u160f"+ + "\u1610\u0005D\u0000\u0000\u1610\u1611\u0005I\u0000\u0000\u1611\u1612\u0005"+ + "R\u0000\u0000\u1612\u0366\u0001\u0000\u0000\u0000\u1613\u1614\u0005P\u0000"+ + "\u0000\u1614\u1615\u0005L\u0000\u0000\u1615\u1616\u0005U\u0000\u0000\u1616"+ + "\u1617\u0005G\u0000\u0000\u1617\u1618\u0005I\u0000\u0000\u1618\u1619\u0005"+ + "N\u0000\u0000\u1619\u161a\u0005S\u0000\u0000\u161a\u0368\u0001\u0000\u0000"+ + "\u0000\u161b\u161c\u0005P\u0000\u0000\u161c\u161d\u0005O\u0000\u0000\u161d"+ + "\u161e\u0005R\u0000\u0000\u161e\u161f\u0005T\u0000\u0000\u161f\u036a\u0001"+ + "\u0000\u0000\u0000\u1620\u1621\u0005P\u0000\u0000\u1621\u1622\u0005R\u0000"+ + "\u0000\u1622\u1623\u0005E\u0000\u0000\u1623\u1624\u0005C\u0000\u0000\u1624"+ + "\u1625\u0005E\u0000\u0000\u1625\u1626\u0005D\u0000\u0000\u1626\u1627\u0005"+ + "E\u0000\u0000\u1627\u1628\u0005S\u0000\u0000\u1628\u036c\u0001\u0000\u0000"+ + "\u0000\u1629\u162a\u0005P\u0000\u0000\u162a\u162b\u0005R\u0000\u0000\u162b"+ + "\u162c\u0005E\u0000\u0000\u162c\u162d\u0005P\u0000\u0000\u162d\u162e\u0005"+ + "A\u0000\u0000\u162e\u162f\u0005R\u0000\u0000\u162f\u1630\u0005E\u0000"+ + "\u0000\u1630\u036e\u0001\u0000\u0000\u0000\u1631\u1632\u0005P\u0000\u0000"+ + "\u1632\u1633\u0005R\u0000\u0000\u1633\u1634\u0005E\u0000\u0000\u1634\u1635"+ + "\u0005S\u0000\u0000\u1635\u1636\u0005E\u0000\u0000\u1636\u1637\u0005R"+ + "\u0000\u0000\u1637\u1638\u0005V\u0000\u0000\u1638\u1639\u0005E\u0000\u0000"+ + "\u1639\u0370\u0001\u0000\u0000\u0000\u163a\u163b\u0005P\u0000\u0000\u163b"+ + "\u163c\u0005R\u0000\u0000\u163c\u163d\u0005E\u0000\u0000\u163d\u163e\u0005"+ + "V\u0000\u0000\u163e\u0372\u0001\u0000\u0000\u0000\u163f\u1640\u0005P\u0000"+ + "\u0000\u1640\u1641\u0005R\u0000\u0000\u1641\u1642\u0005O\u0000\u0000\u1642"+ + "\u1643\u0005C\u0000\u0000\u1643\u1644\u0005E\u0000\u0000\u1644\u1645\u0005"+ + "S\u0000\u0000\u1645\u1646\u0005S\u0000\u0000\u1646\u1647\u0005L\u0000"+ + "\u0000\u1647\u1648\u0005I\u0000\u0000\u1648\u1649\u0005S\u0000\u0000\u1649"+ + "\u164a\u0005T\u0000\u0000\u164a\u0374\u0001\u0000\u0000\u0000\u164b\u164c"+ + "\u0005P\u0000\u0000\u164c\u164d\u0005R\u0000\u0000\u164d\u164e\u0005O"+ + "\u0000\u0000\u164e\u164f\u0005F\u0000\u0000\u164f\u1650\u0005I\u0000\u0000"+ + "\u1650\u1651\u0005L\u0000\u0000\u1651\u1652\u0005E\u0000\u0000\u1652\u0376"+ + "\u0001\u0000\u0000\u0000\u1653\u1654\u0005P\u0000\u0000\u1654\u1655\u0005"+ + "R\u0000\u0000\u1655\u1656\u0005O\u0000\u0000\u1656\u1657\u0005F\u0000"+ + "\u0000\u1657\u1658\u0005I\u0000\u0000\u1658\u1659\u0005L\u0000\u0000\u1659"+ + "\u165a\u0005E\u0000\u0000\u165a\u165b\u0005S\u0000\u0000\u165b\u0378\u0001"+ + "\u0000\u0000\u0000\u165c\u165d\u0005P\u0000\u0000\u165d\u165e\u0005R\u0000"+ + "\u0000\u165e\u165f\u0005O\u0000\u0000\u165f\u1660\u0005X\u0000\u0000\u1660"+ + "\u1661\u0005Y\u0000\u0000\u1661\u037a\u0001\u0000\u0000\u0000\u1662\u1663"+ + "\u0005Q\u0000\u0000\u1663\u1664\u0005U\u0000\u0000\u1664\u1665\u0005E"+ + "\u0000\u0000\u1665\u1666\u0005R\u0000\u0000\u1666\u1667\u0005Y\u0000\u0000"+ + "\u1667\u037c\u0001\u0000\u0000\u0000\u1668\u1669\u0005Q\u0000\u0000\u1669"+ + "\u166a\u0005U\u0000\u0000\u166a\u166b\u0005I\u0000\u0000\u166b\u166c\u0005"+ + "C\u0000\u0000\u166c\u166d\u0005K\u0000\u0000\u166d\u037e\u0001\u0000\u0000"+ + "\u0000\u166e\u166f\u0005R\u0000\u0000\u166f\u1670\u0005E\u0000\u0000\u1670"+ + "\u1671\u0005B\u0000\u0000\u1671\u1672\u0005U\u0000\u0000\u1672\u1673\u0005"+ + "I\u0000\u0000\u1673\u1674\u0005L\u0000\u0000\u1674\u1675\u0005D\u0000"+ + "\u0000\u1675\u0380\u0001\u0000\u0000\u0000\u1676\u1677\u0005R\u0000\u0000"+ + "\u1677\u1678\u0005E\u0000\u0000\u1678\u1679\u0005C\u0000\u0000\u1679\u167a"+ + "\u0005O\u0000\u0000\u167a\u167b\u0005V\u0000\u0000\u167b\u167c\u0005E"+ + "\u0000\u0000\u167c\u167d\u0005R\u0000\u0000\u167d\u0382\u0001\u0000\u0000"+ + "\u0000\u167e\u167f\u0005R\u0000\u0000\u167f\u1680\u0005E\u0000\u0000\u1680"+ + "\u1681\u0005D\u0000\u0000\u1681\u1682\u0005O\u0000\u0000\u1682\u1683\u0005"+ + "_\u0000\u0000\u1683\u1684\u0005B\u0000\u0000\u1684\u1685\u0005U\u0000"+ + "\u0000\u1685\u1686\u0005F\u0000\u0000\u1686\u1687\u0005F\u0000\u0000\u1687"+ + "\u1688\u0005E\u0000\u0000\u1688\u1689\u0005R\u0000\u0000\u1689\u168a\u0005"+ + "_\u0000\u0000\u168a\u168b\u0005S\u0000\u0000\u168b\u168c\u0005I\u0000"+ + "\u0000\u168c\u168d\u0005Z\u0000\u0000\u168d\u168e\u0005E\u0000\u0000\u168e"+ + "\u0384\u0001\u0000\u0000\u0000\u168f\u1690\u0005R\u0000\u0000\u1690\u1691"+ + "\u0005E\u0000\u0000\u1691\u1692\u0005D\u0000\u0000\u1692\u1693\u0005U"+ + "\u0000\u0000\u1693\u1694\u0005N\u0000\u0000\u1694\u1695\u0005D\u0000\u0000"+ + "\u1695\u1696\u0005A\u0000\u0000\u1696\u1697\u0005N\u0000\u0000\u1697\u1698"+ + "\u0005T\u0000\u0000\u1698\u0386\u0001\u0000\u0000\u0000\u1699\u169a\u0005"+ + "R\u0000\u0000\u169a\u169b\u0005E\u0000\u0000\u169b\u169c\u0005L\u0000"+ + "\u0000\u169c\u169d\u0005A\u0000\u0000\u169d\u169e\u0005Y\u0000\u0000\u169e"+ + "\u0388\u0001\u0000\u0000\u0000\u169f\u16a0\u0005R\u0000\u0000\u16a0\u16a1"+ + "\u0005E\u0000\u0000\u16a1\u16a2\u0005L\u0000\u0000\u16a2\u16a3\u0005A"+ + "\u0000\u0000\u16a3\u16a4\u0005Y\u0000\u0000\u16a4\u16a5\u0005_\u0000\u0000"+ + "\u16a5\u16a6\u0005L\u0000\u0000\u16a6\u16a7\u0005O\u0000\u0000\u16a7\u16a8"+ + "\u0005G\u0000\u0000\u16a8\u16a9\u0005_\u0000\u0000\u16a9\u16aa\u0005F"+ + "\u0000\u0000\u16aa\u16ab\u0005I\u0000\u0000\u16ab\u16ac\u0005L\u0000\u0000"+ + "\u16ac\u16ad\u0005E\u0000\u0000\u16ad\u038a\u0001\u0000\u0000\u0000\u16ae"+ + "\u16af\u0005R\u0000\u0000\u16af\u16b0\u0005E\u0000\u0000\u16b0\u16b1\u0005"+ + "L\u0000\u0000\u16b1\u16b2\u0005A\u0000\u0000\u16b2\u16b3\u0005Y\u0000"+ + "\u0000\u16b3\u16b4\u0005_\u0000\u0000\u16b4\u16b5\u0005L\u0000\u0000\u16b5"+ + "\u16b6\u0005O\u0000\u0000\u16b6\u16b7\u0005G\u0000\u0000\u16b7\u16b8\u0005"+ + "_\u0000\u0000\u16b8\u16b9\u0005P\u0000\u0000\u16b9\u16ba\u0005O\u0000"+ + "\u0000\u16ba\u16bb\u0005S\u0000\u0000\u16bb\u038c\u0001\u0000\u0000\u0000"+ + "\u16bc\u16bd\u0005R\u0000\u0000\u16bd\u16be\u0005E\u0000\u0000\u16be\u16bf"+ + "\u0005L\u0000\u0000\u16bf\u16c0\u0005A\u0000\u0000\u16c0\u16c1\u0005Y"+ + "\u0000\u0000\u16c1\u16c2\u0005L\u0000\u0000\u16c2\u16c3\u0005O\u0000\u0000"+ + "\u16c3\u16c4\u0005G\u0000\u0000\u16c4\u038e\u0001\u0000\u0000\u0000\u16c5"+ + "\u16c6\u0005R\u0000\u0000\u16c6\u16c7\u0005E\u0000\u0000\u16c7\u16c8\u0005"+ + "M\u0000\u0000\u16c8\u16c9\u0005O\u0000\u0000\u16c9\u16ca\u0005V\u0000"+ + "\u0000\u16ca\u16cb\u0005E\u0000\u0000\u16cb\u0390\u0001\u0000\u0000\u0000"+ + "\u16cc\u16cd\u0005R\u0000\u0000\u16cd\u16ce\u0005E\u0000\u0000\u16ce\u16cf"+ + "\u0005O\u0000\u0000\u16cf\u16d0\u0005R\u0000\u0000\u16d0\u16d1\u0005G"+ + "\u0000\u0000\u16d1\u16d2\u0005A\u0000\u0000\u16d2\u16d3\u0005N\u0000\u0000"+ + "\u16d3\u16d4\u0005I\u0000\u0000\u16d4\u16d5\u0005Z\u0000\u0000\u16d5\u16d6"+ + "\u0005E\u0000\u0000\u16d6\u0392\u0001\u0000\u0000\u0000\u16d7\u16d8\u0005"+ + "R\u0000\u0000\u16d8\u16d9\u0005E\u0000\u0000\u16d9\u16da\u0005P\u0000"+ + "\u0000\u16da\u16db\u0005A\u0000\u0000\u16db\u16dc\u0005I\u0000\u0000\u16dc"+ + "\u16dd\u0005R\u0000\u0000\u16dd\u0394\u0001\u0000\u0000\u0000\u16de\u16df"+ + "\u0005R\u0000\u0000\u16df\u16e0\u0005E\u0000\u0000\u16e0\u16e1\u0005P"+ + "\u0000\u0000\u16e1\u16e2\u0005L\u0000\u0000\u16e2\u16e3\u0005I\u0000\u0000"+ + "\u16e3\u16e4\u0005C\u0000\u0000\u16e4\u16e5\u0005A\u0000\u0000\u16e5\u16e6"+ + "\u0005T\u0000\u0000\u16e6\u16e7\u0005E\u0000\u0000\u16e7\u16e8\u0005_"+ + "\u0000\u0000\u16e8\u16e9\u0005D\u0000\u0000\u16e9\u16ea\u0005O\u0000\u0000"+ + "\u16ea\u16eb\u0005_\u0000\u0000\u16eb\u16ec\u0005D\u0000\u0000\u16ec\u16ed"+ + "\u0005B\u0000\u0000\u16ed\u0396\u0001\u0000\u0000\u0000\u16ee\u16ef\u0005"+ + "R\u0000\u0000\u16ef\u16f0\u0005E\u0000\u0000\u16f0\u16f1\u0005P\u0000"+ + "\u0000\u16f1\u16f2\u0005L\u0000\u0000\u16f2\u16f3\u0005I\u0000\u0000\u16f3"+ + "\u16f4\u0005C\u0000\u0000\u16f4\u16f5\u0005A\u0000\u0000\u16f5\u16f6\u0005"+ + "T\u0000\u0000\u16f6\u16f7\u0005E\u0000\u0000\u16f7\u16f8\u0005_\u0000"+ + "\u0000\u16f8\u16f9\u0005D\u0000\u0000\u16f9\u16fa\u0005O\u0000\u0000\u16fa"+ + "\u16fb\u0005_\u0000\u0000\u16fb\u16fc\u0005T\u0000\u0000\u16fc\u16fd\u0005"+ + "A\u0000\u0000\u16fd\u16fe\u0005B\u0000\u0000\u16fe\u16ff\u0005L\u0000"+ + "\u0000\u16ff\u1700\u0005E\u0000\u0000\u1700\u0398\u0001\u0000\u0000\u0000"+ + "\u1701\u1702\u0005R\u0000\u0000\u1702\u1703\u0005E\u0000\u0000\u1703\u1704"+ + "\u0005P\u0000\u0000\u1704\u1705\u0005L\u0000\u0000\u1705\u1706\u0005I"+ + "\u0000\u0000\u1706\u1707\u0005C\u0000\u0000\u1707\u1708\u0005A\u0000\u0000"+ + "\u1708\u1709\u0005T\u0000\u0000\u1709\u170a\u0005E\u0000\u0000\u170a\u170b"+ + "\u0005_\u0000\u0000\u170b\u170c\u0005I\u0000\u0000\u170c\u170d\u0005G"+ + "\u0000\u0000\u170d\u170e\u0005N\u0000\u0000\u170e\u170f\u0005O\u0000\u0000"+ + "\u170f\u1710\u0005R\u0000\u0000\u1710\u1711\u0005E\u0000\u0000\u1711\u1712"+ + "\u0005_\u0000\u0000\u1712\u1713\u0005D\u0000\u0000\u1713\u1714\u0005B"+ + "\u0000\u0000\u1714\u039a\u0001\u0000\u0000\u0000\u1715\u1716\u0005R\u0000"+ + "\u0000\u1716\u1717\u0005E\u0000\u0000\u1717\u1718\u0005P\u0000\u0000\u1718"+ + "\u1719\u0005L\u0000\u0000\u1719\u171a\u0005I\u0000\u0000\u171a\u171b\u0005"+ + "C\u0000\u0000\u171b\u171c\u0005A\u0000\u0000\u171c\u171d\u0005T\u0000"+ + "\u0000\u171d\u171e\u0005E\u0000\u0000\u171e\u171f\u0005_\u0000\u0000\u171f"+ + "\u1720\u0005I\u0000\u0000\u1720\u1721\u0005G\u0000\u0000\u1721\u1722\u0005"+ + "N\u0000\u0000\u1722\u1723\u0005O\u0000\u0000\u1723\u1724\u0005R\u0000"+ + "\u0000\u1724\u1725\u0005E\u0000\u0000\u1725\u1726\u0005_\u0000\u0000\u1726"+ + "\u1727\u0005T\u0000\u0000\u1727\u1728\u0005A\u0000\u0000\u1728\u1729\u0005"+ + "B\u0000\u0000\u1729\u172a\u0005L\u0000\u0000\u172a\u172b\u0005E\u0000"+ + "\u0000\u172b\u039c\u0001\u0000\u0000\u0000\u172c\u172d\u0005R\u0000\u0000"+ + "\u172d\u172e\u0005E\u0000\u0000\u172e\u172f\u0005P\u0000\u0000\u172f\u1730"+ + "\u0005L\u0000\u0000\u1730\u1731\u0005I\u0000\u0000\u1731\u1732\u0005C"+ + "\u0000\u0000\u1732\u1733\u0005A\u0000\u0000\u1733\u1734\u0005T\u0000\u0000"+ + "\u1734\u1735\u0005E\u0000\u0000\u1735\u1736\u0005_\u0000\u0000\u1736\u1737"+ + "\u0005R\u0000\u0000\u1737\u1738\u0005E\u0000\u0000\u1738\u1739\u0005W"+ + "\u0000\u0000\u1739\u173a\u0005R\u0000\u0000\u173a\u173b\u0005I\u0000\u0000"+ + "\u173b\u173c\u0005T\u0000\u0000\u173c\u173d\u0005E\u0000\u0000\u173d\u173e"+ + "\u0005_\u0000\u0000\u173e\u173f\u0005D\u0000\u0000\u173f\u1740\u0005B"+ + "\u0000\u0000\u1740\u039e\u0001\u0000\u0000\u0000\u1741\u1742\u0005R\u0000"+ + "\u0000\u1742\u1743\u0005E\u0000\u0000\u1743\u1744\u0005P\u0000\u0000\u1744"+ + "\u1745\u0005L\u0000\u0000\u1745\u1746\u0005I\u0000\u0000\u1746\u1747\u0005"+ + "C\u0000\u0000\u1747\u1748\u0005A\u0000\u0000\u1748\u1749\u0005T\u0000"+ + "\u0000\u1749\u174a\u0005E\u0000\u0000\u174a\u174b\u0005_\u0000\u0000\u174b"+ + "\u174c\u0005W\u0000\u0000\u174c\u174d\u0005I\u0000\u0000\u174d\u174e\u0005"+ + "L\u0000\u0000\u174e\u174f\u0005D\u0000\u0000\u174f\u1750\u0005_\u0000"+ + "\u0000\u1750\u1751\u0005D\u0000\u0000\u1751\u1752\u0005O\u0000\u0000\u1752"+ + "\u1753\u0005_\u0000\u0000\u1753\u1754\u0005T\u0000\u0000\u1754\u1755\u0005"+ + "A\u0000\u0000\u1755\u1756\u0005B\u0000\u0000\u1756\u1757\u0005L\u0000"+ + "\u0000\u1757\u1758\u0005E\u0000\u0000\u1758\u03a0\u0001\u0000\u0000\u0000"+ + "\u1759\u175a\u0005R\u0000\u0000\u175a\u175b\u0005E\u0000\u0000\u175b\u175c"+ + "\u0005P\u0000\u0000\u175c\u175d\u0005L\u0000\u0000\u175d\u175e\u0005I"+ + "\u0000\u0000\u175e\u175f\u0005C\u0000\u0000\u175f\u1760\u0005A\u0000\u0000"+ + "\u1760\u1761\u0005T\u0000\u0000\u1761\u1762\u0005E\u0000\u0000\u1762\u1763"+ + "\u0005_\u0000\u0000\u1763\u1764\u0005W\u0000\u0000\u1764\u1765\u0005I"+ + "\u0000\u0000\u1765\u1766\u0005L\u0000\u0000\u1766\u1767\u0005D\u0000\u0000"+ + "\u1767\u1768\u0005_\u0000\u0000\u1768\u1769\u0005I\u0000\u0000\u1769\u176a"+ + "\u0005G\u0000\u0000\u176a\u176b\u0005N\u0000\u0000\u176b\u176c\u0005O"+ + "\u0000\u0000\u176c\u176d\u0005R\u0000\u0000\u176d\u176e\u0005E\u0000\u0000"+ + "\u176e\u176f\u0005_\u0000\u0000\u176f\u1770\u0005T\u0000\u0000\u1770\u1771"+ + "\u0005A\u0000\u0000\u1771\u1772\u0005B\u0000\u0000\u1772\u1773\u0005L"+ + "\u0000\u0000\u1773\u1774\u0005E\u0000\u0000\u1774\u03a2\u0001\u0000\u0000"+ + "\u0000\u1775\u1776\u0005R\u0000\u0000\u1776\u1777\u0005E\u0000\u0000\u1777"+ + "\u1778\u0005P\u0000\u0000\u1778\u1779\u0005L\u0000\u0000\u1779\u177a\u0005"+ + "I\u0000\u0000\u177a\u177b\u0005C\u0000\u0000\u177b\u177c\u0005A\u0000"+ + "\u0000\u177c\u177d\u0005T\u0000\u0000\u177d\u177e\u0005I\u0000\u0000\u177e"+ + "\u177f\u0005O\u0000\u0000\u177f\u1780\u0005N\u0000\u0000\u1780\u03a4\u0001"+ + "\u0000\u0000\u0000\u1781\u1782\u0005R\u0000\u0000\u1782\u1783\u0005E\u0000"+ + "\u0000\u1783\u1784\u0005S\u0000\u0000\u1784\u1785\u0005E\u0000\u0000\u1785"+ + "\u1786\u0005T\u0000\u0000\u1786\u03a6\u0001\u0000\u0000\u0000\u1787\u1788"+ + "\u0005R\u0000\u0000\u1788\u1789\u0005E\u0000\u0000\u1789\u178a\u0005S"+ + "\u0000\u0000\u178a\u178b\u0005U\u0000\u0000\u178b\u178c\u0005M\u0000\u0000"+ + "\u178c\u178d\u0005E\u0000\u0000\u178d\u03a8\u0001\u0000\u0000\u0000\u178e"+ + "\u178f\u0005R\u0000\u0000\u178f\u1790\u0005E\u0000\u0000\u1790\u1791\u0005"+ + "T\u0000\u0000\u1791\u1792\u0005U\u0000\u0000\u1792\u1793\u0005R\u0000"+ + "\u0000\u1793\u1794\u0005N\u0000\u0000\u1794\u1795\u0005S\u0000\u0000\u1795"+ + "\u03aa\u0001\u0000\u0000\u0000\u1796\u1797\u0005R\u0000\u0000\u1797\u1798"+ + "\u0005O\u0000\u0000\u1798\u1799\u0005L\u0000\u0000\u1799\u179a\u0005L"+ + "\u0000\u0000\u179a\u179b\u0005B\u0000\u0000\u179b\u179c\u0005A\u0000\u0000"+ + "\u179c\u179d\u0005C\u0000\u0000\u179d\u179e\u0005K\u0000\u0000\u179e\u03ac"+ + "\u0001\u0000\u0000\u0000\u179f\u17a0\u0005R\u0000\u0000\u17a0\u17a1\u0005"+ + "O\u0000\u0000\u17a1\u17a2\u0005L\u0000\u0000\u17a2\u17a3\u0005L\u0000"+ + "\u0000\u17a3\u17a4\u0005U\u0000\u0000\u17a4\u17a5\u0005P\u0000\u0000\u17a5"+ + "\u03ae\u0001\u0000\u0000\u0000\u17a6\u17a7\u0005R\u0000\u0000\u17a7\u17a8"+ + "\u0005O\u0000\u0000\u17a8\u17a9\u0005T\u0000\u0000\u17a9\u17aa\u0005A"+ + "\u0000\u0000\u17aa\u17ab\u0005T\u0000\u0000\u17ab\u17ac\u0005E\u0000\u0000"+ + "\u17ac\u03b0\u0001\u0000\u0000\u0000\u17ad\u17ae\u0005R\u0000\u0000\u17ae"+ + "\u17af\u0005O\u0000\u0000\u17af\u17b0\u0005W\u0000\u0000\u17b0\u03b2\u0001"+ + "\u0000\u0000\u0000\u17b1\u17b2\u0005R\u0000\u0000\u17b2\u17b3\u0005O\u0000"+ + "\u0000\u17b3\u17b4\u0005W\u0000\u0000\u17b4\u17b5\u0005S\u0000\u0000\u17b5"+ + "\u03b4\u0001\u0000\u0000\u0000\u17b6\u17b7\u0005R\u0000\u0000\u17b7\u17b8"+ + "\u0005O\u0000\u0000\u17b8\u17b9\u0005W\u0000\u0000\u17b9\u17ba\u0005_"+ + "\u0000\u0000\u17ba\u17bb\u0005F\u0000\u0000\u17bb\u17bc\u0005O\u0000\u0000"+ + "\u17bc\u17bd\u0005R\u0000\u0000\u17bd\u17be\u0005M\u0000\u0000\u17be\u17bf"+ + "\u0005A\u0000\u0000\u17bf\u17c0\u0005T\u0000\u0000\u17c0\u03b6\u0001\u0000"+ + "\u0000\u0000\u17c1\u17c2\u0005S\u0000\u0000\u17c2\u17c3\u0005A\u0000\u0000"+ + "\u17c3\u17c4\u0005V\u0000\u0000\u17c4\u17c5\u0005E\u0000\u0000\u17c5\u17c6"+ + "\u0005P\u0000\u0000\u17c6\u17c7\u0005O\u0000\u0000\u17c7\u17c8\u0005I"+ + "\u0000\u0000\u17c8\u17c9\u0005N\u0000\u0000\u17c9\u17ca\u0005T\u0000\u0000"+ + "\u17ca\u03b8\u0001\u0000\u0000\u0000\u17cb\u17cc\u0005S\u0000\u0000\u17cc"+ + "\u17cd\u0005C\u0000\u0000\u17cd\u17ce\u0005H\u0000\u0000\u17ce\u17cf\u0005"+ + "E\u0000\u0000\u17cf\u17d0\u0005D\u0000\u0000\u17d0\u17d1\u0005U\u0000"+ + "\u0000\u17d1\u17d2\u0005L\u0000\u0000\u17d2\u17d3\u0005E\u0000\u0000\u17d3"+ + "\u03ba\u0001\u0000\u0000\u0000\u17d4\u17d5\u0005S\u0000\u0000\u17d5\u17d6"+ + "\u0005E\u0000\u0000\u17d6\u17d7\u0005C\u0000\u0000\u17d7\u17d8\u0005U"+ + "\u0000\u0000\u17d8\u17d9\u0005R\u0000\u0000\u17d9\u17da\u0005I\u0000\u0000"+ + "\u17da\u17db\u0005T\u0000\u0000\u17db\u17dc\u0005Y\u0000\u0000\u17dc\u03bc"+ + "\u0001\u0000\u0000\u0000\u17dd\u17de\u0005S\u0000\u0000\u17de\u17df\u0005"+ + "E\u0000\u0000\u17df\u17e0\u0005R\u0000\u0000\u17e0\u17e1\u0005V\u0000"+ + "\u0000\u17e1\u17e2\u0005E\u0000\u0000\u17e2\u17e3\u0005R\u0000\u0000\u17e3"+ + "\u03be\u0001\u0000\u0000\u0000\u17e4\u17e5\u0005S\u0000\u0000\u17e5\u17e6"+ + "\u0005E\u0000\u0000\u17e6\u17e7\u0005S\u0000\u0000\u17e7\u17e8\u0005S"+ + "\u0000\u0000\u17e8\u17e9\u0005I\u0000\u0000\u17e9\u17ea\u0005O\u0000\u0000"+ + "\u17ea\u17eb\u0005N\u0000\u0000\u17eb\u03c0\u0001\u0000\u0000\u0000\u17ec"+ + "\u17ed\u0005S\u0000\u0000\u17ed\u17ee\u0005H\u0000\u0000\u17ee\u17ef\u0005"+ + "A\u0000\u0000\u17ef\u17f0\u0005R\u0000\u0000\u17f0\u17f1\u0005E\u0000"+ + "\u0000\u17f1\u03c2\u0001\u0000\u0000\u0000\u17f2\u17f3\u0005S\u0000\u0000"+ + "\u17f3\u17f4\u0005H\u0000\u0000\u17f4\u17f5\u0005A\u0000\u0000\u17f5\u17f6"+ + "\u0005R\u0000\u0000\u17f6\u17f7\u0005E\u0000\u0000\u17f7\u17f8\u0005D"+ + "\u0000\u0000\u17f8\u03c4\u0001\u0000\u0000\u0000\u17f9\u17fa\u0005S\u0000"+ + "\u0000\u17fa\u17fb\u0005I\u0000\u0000\u17fb\u17fc\u0005G\u0000\u0000\u17fc"+ + "\u17fd\u0005N\u0000\u0000\u17fd\u17fe\u0005E\u0000\u0000\u17fe\u17ff\u0005"+ + "D\u0000\u0000\u17ff\u03c6\u0001\u0000\u0000\u0000\u1800\u1801\u0005S\u0000"+ + "\u0000\u1801\u1802\u0005I\u0000\u0000\u1802\u1803\u0005M\u0000\u0000\u1803"+ + "\u1804\u0005P\u0000\u0000\u1804\u1805\u0005L\u0000\u0000\u1805\u1806\u0005"+ + "E\u0000\u0000\u1806\u03c8\u0001\u0000\u0000\u0000\u1807\u1808\u0005S\u0000"+ + "\u0000\u1808\u1809\u0005L\u0000\u0000\u1809\u180a\u0005A\u0000\u0000\u180a"+ + "\u180b\u0005V\u0000\u0000\u180b\u180c\u0005E\u0000\u0000\u180c\u03ca\u0001"+ + "\u0000\u0000\u0000\u180d\u180e\u0005S\u0000\u0000\u180e\u180f\u0005L\u0000"+ + "\u0000\u180f\u1810\u0005O\u0000\u0000\u1810\u1811\u0005W\u0000\u0000\u1811"+ + "\u03cc\u0001\u0000\u0000\u0000\u1812\u1813\u0005S\u0000\u0000\u1813\u1814"+ + "\u0005N\u0000\u0000\u1814\u1815\u0005A\u0000\u0000\u1815\u1816\u0005P"+ + "\u0000\u0000\u1816\u1817\u0005S\u0000\u0000\u1817\u1818\u0005H\u0000\u0000"+ + "\u1818\u1819\u0005O\u0000\u0000\u1819\u181a\u0005T\u0000\u0000\u181a\u03ce"+ + "\u0001\u0000\u0000\u0000\u181b\u181c\u0005S\u0000\u0000\u181c\u181d\u0005"+ + "O\u0000\u0000\u181d\u181e\u0005C\u0000\u0000\u181e\u181f\u0005K\u0000"+ + "\u0000\u181f\u1820\u0005E\u0000\u0000\u1820\u1821\u0005T\u0000\u0000\u1821"+ + "\u03d0\u0001\u0000\u0000\u0000\u1822\u1823\u0005S\u0000\u0000\u1823\u1824"+ + "\u0005O\u0000\u0000\u1824\u1825\u0005M\u0000\u0000\u1825\u1826\u0005E"+ + "\u0000\u0000\u1826\u03d2\u0001\u0000\u0000\u0000\u1827\u1828\u0005S\u0000"+ + "\u0000\u1828\u1829\u0005O\u0000\u0000\u1829\u182a\u0005N\u0000\u0000\u182a"+ + "\u182b\u0005A\u0000\u0000\u182b\u182c\u0005M\u0000\u0000\u182c\u182d\u0005"+ + "E\u0000\u0000\u182d\u03d4\u0001\u0000\u0000\u0000\u182e\u182f\u0005S\u0000"+ + "\u0000\u182f\u1830\u0005O\u0000\u0000\u1830\u1831\u0005U\u0000\u0000\u1831"+ + "\u1832\u0005N\u0000\u0000\u1832\u1833\u0005D\u0000\u0000\u1833\u1834\u0005"+ + "S\u0000\u0000\u1834\u03d6\u0001\u0000\u0000\u0000\u1835\u1836\u0005S\u0000"+ + "\u0000\u1836\u1837\u0005O\u0000\u0000\u1837\u1838\u0005U\u0000\u0000\u1838"+ + "\u1839\u0005R\u0000\u0000\u1839\u183a\u0005C\u0000\u0000\u183a\u183b\u0005"+ + "E\u0000\u0000\u183b\u03d8\u0001\u0000\u0000\u0000\u183c\u183d\u0005S\u0000"+ + "\u0000\u183d\u183e\u0005Q\u0000\u0000\u183e\u183f\u0005L\u0000\u0000\u183f"+ + "\u1840\u0005_\u0000\u0000\u1840\u1841\u0005A\u0000\u0000\u1841\u1842\u0005"+ + "F\u0000\u0000\u1842\u1843\u0005T\u0000\u0000\u1843\u1844\u0005E\u0000"+ + "\u0000\u1844\u1845\u0005R\u0000\u0000\u1845\u1846\u0005_\u0000\u0000\u1846"+ + "\u1847\u0005G\u0000\u0000\u1847\u1848\u0005T\u0000\u0000\u1848\u1849\u0005"+ + "I\u0000\u0000\u1849\u184a\u0005D\u0000\u0000\u184a\u184b\u0005S\u0000"+ + "\u0000\u184b\u03da\u0001\u0000\u0000\u0000\u184c\u184d\u0005S\u0000\u0000"+ + "\u184d\u184e\u0005Q\u0000\u0000\u184e\u184f\u0005L\u0000\u0000\u184f\u1850"+ + "\u0005_\u0000\u0000\u1850\u1851\u0005A\u0000\u0000\u1851\u1852\u0005F"+ + "\u0000\u0000\u1852\u1853\u0005T\u0000\u0000\u1853\u1854\u0005E\u0000\u0000"+ + "\u1854\u1855\u0005R\u0000\u0000\u1855\u1856\u0005_\u0000\u0000\u1856\u1857"+ + "\u0005M\u0000\u0000\u1857\u1858\u0005T\u0000\u0000\u1858\u1859\u0005S"+ + "\u0000\u0000\u1859\u185a\u0005_\u0000\u0000\u185a\u185b\u0005G\u0000\u0000"+ + "\u185b\u185c\u0005A\u0000\u0000\u185c\u185d\u0005P\u0000\u0000\u185d\u185e"+ + "\u0005S\u0000\u0000\u185e\u03dc\u0001\u0000\u0000\u0000\u185f\u1860\u0005"+ + "S\u0000\u0000\u1860\u1861\u0005Q\u0000\u0000\u1861\u1862\u0005L\u0000"+ + "\u0000\u1862\u1863\u0005_\u0000\u0000\u1863\u1864\u0005B\u0000\u0000\u1864"+ + "\u1865\u0005E\u0000\u0000\u1865\u1866\u0005F\u0000\u0000\u1866\u1867\u0005"+ + "O\u0000\u0000\u1867\u1868\u0005R\u0000\u0000\u1868\u1869\u0005E\u0000"+ + "\u0000\u1869\u186a\u0005_\u0000\u0000\u186a\u186b\u0005G\u0000\u0000\u186b"+ + "\u186c\u0005T\u0000\u0000\u186c\u186d\u0005I\u0000\u0000\u186d\u186e\u0005"+ + "D\u0000\u0000\u186e\u186f\u0005S\u0000\u0000\u186f\u03de\u0001\u0000\u0000"+ + "\u0000\u1870\u1871\u0005S\u0000\u0000\u1871\u1872\u0005Q\u0000\u0000\u1872"+ + "\u1873\u0005L\u0000\u0000\u1873\u1874\u0005_\u0000\u0000\u1874\u1875\u0005"+ + "B\u0000\u0000\u1875\u1876\u0005U\u0000\u0000\u1876\u1877\u0005F\u0000"+ + "\u0000\u1877\u1878\u0005F\u0000\u0000\u1878\u1879\u0005E\u0000\u0000\u1879"+ + "\u187a\u0005R\u0000\u0000\u187a\u187b\u0005_\u0000\u0000\u187b\u187c\u0005"+ + "R\u0000\u0000\u187c\u187d\u0005E\u0000\u0000\u187d\u187e\u0005S\u0000"+ + "\u0000\u187e\u187f\u0005U\u0000\u0000\u187f\u1880\u0005L\u0000\u0000\u1880"+ + "\u1881\u0005T\u0000\u0000\u1881\u03e0\u0001\u0000\u0000\u0000\u1882\u1883"+ + "\u0005S\u0000\u0000\u1883\u1884\u0005Q\u0000\u0000\u1884\u1885\u0005L"+ + "\u0000\u0000\u1885\u1886\u0005_\u0000\u0000\u1886\u1887\u0005C\u0000\u0000"+ + "\u1887\u1888\u0005A\u0000\u0000\u1888\u1889\u0005C\u0000\u0000\u1889\u188a"+ + "\u0005H\u0000\u0000\u188a\u188b\u0005E\u0000\u0000\u188b\u03e2\u0001\u0000"+ + "\u0000\u0000\u188c\u188d\u0005S\u0000\u0000\u188d\u188e\u0005Q\u0000\u0000"+ + "\u188e\u188f\u0005L\u0000\u0000\u188f\u1890\u0005_\u0000\u0000\u1890\u1891"+ + "\u0005N\u0000\u0000\u1891\u1892\u0005O\u0000\u0000\u1892\u1893\u0005_"+ + "\u0000\u0000\u1893\u1894\u0005C\u0000\u0000\u1894\u1895\u0005A\u0000\u0000"+ + "\u1895\u1896\u0005C\u0000\u0000\u1896\u1897\u0005H\u0000\u0000\u1897\u1898"+ + "\u0005E\u0000\u0000\u1898\u03e4\u0001\u0000\u0000\u0000\u1899\u189a\u0005"+ + "S\u0000\u0000\u189a\u189b\u0005Q\u0000\u0000\u189b\u189c\u0005L\u0000"+ + "\u0000\u189c\u189d\u0005_\u0000\u0000\u189d\u189e\u0005T\u0000\u0000\u189e"+ + "\u189f\u0005H\u0000\u0000\u189f\u18a0\u0005R\u0000\u0000\u18a0\u18a1\u0005"+ + "E\u0000\u0000\u18a1\u18a2\u0005A\u0000\u0000\u18a2\u18a3\u0005D\u0000"+ + "\u0000\u18a3\u03e6\u0001\u0000\u0000\u0000\u18a4\u18a5\u0005S\u0000\u0000"+ + "\u18a5\u18a6\u0005T\u0000\u0000\u18a6\u18a7\u0005A\u0000\u0000\u18a7\u18a8"+ + "\u0005R\u0000\u0000\u18a8\u18a9\u0005T\u0000\u0000\u18a9\u03e8\u0001\u0000"+ + "\u0000\u0000\u18aa\u18ab\u0005S\u0000\u0000\u18ab\u18ac\u0005T\u0000\u0000"+ + "\u18ac\u18ad\u0005A\u0000\u0000\u18ad\u18ae\u0005R\u0000\u0000\u18ae\u18af"+ + "\u0005T\u0000\u0000\u18af\u18b0\u0005S\u0000\u0000\u18b0\u03ea\u0001\u0000"+ + "\u0000\u0000\u18b1\u18b2\u0005S\u0000\u0000\u18b2\u18b3\u0005T\u0000\u0000"+ + "\u18b3\u18b4\u0005A\u0000\u0000\u18b4\u18b5\u0005T\u0000\u0000\u18b5\u18b6"+ + "\u0005S\u0000\u0000\u18b6\u18b7\u0005_\u0000\u0000\u18b7\u18b8\u0005A"+ + "\u0000\u0000\u18b8\u18b9\u0005U\u0000\u0000\u18b9\u18ba\u0005T\u0000\u0000"+ + "\u18ba\u18bb\u0005O\u0000\u0000\u18bb\u18bc\u0005_\u0000\u0000\u18bc\u18bd"+ + "\u0005R\u0000\u0000\u18bd\u18be\u0005E\u0000\u0000\u18be\u18bf\u0005C"+ + "\u0000\u0000\u18bf\u18c0\u0005A\u0000\u0000\u18c0\u18c1\u0005L\u0000\u0000"+ + "\u18c1\u18c2\u0005C\u0000\u0000\u18c2\u03ec\u0001\u0000\u0000\u0000\u18c3"+ + "\u18c4\u0005S\u0000\u0000\u18c4\u18c5\u0005T\u0000\u0000\u18c5\u18c6\u0005"+ + "A\u0000\u0000\u18c6\u18c7\u0005T\u0000\u0000\u18c7\u18c8\u0005S\u0000"+ + "\u0000\u18c8\u18c9\u0005_\u0000\u0000\u18c9\u18ca\u0005P\u0000\u0000\u18ca"+ + "\u18cb\u0005E\u0000\u0000\u18cb\u18cc\u0005R\u0000\u0000\u18cc\u18cd\u0005"+ + "S\u0000\u0000\u18cd\u18ce\u0005I\u0000\u0000\u18ce\u18cf\u0005S\u0000"+ + "\u0000\u18cf\u18d0\u0005T\u0000\u0000\u18d0\u18d1\u0005E\u0000\u0000\u18d1"+ + "\u18d2\u0005N\u0000\u0000\u18d2\u18d3\u0005T\u0000\u0000\u18d3\u03ee\u0001"+ + "\u0000\u0000\u0000\u18d4\u18d5\u0005S\u0000\u0000\u18d5\u18d6\u0005T\u0000"+ + "\u0000\u18d6\u18d7\u0005A\u0000\u0000\u18d7\u18d8\u0005T\u0000\u0000\u18d8"+ + "\u18d9\u0005S\u0000\u0000\u18d9\u18da\u0005_\u0000\u0000\u18da\u18db\u0005"+ + "S\u0000\u0000\u18db\u18dc\u0005A\u0000\u0000\u18dc\u18dd\u0005M\u0000"+ + "\u0000\u18dd\u18de\u0005P\u0000\u0000\u18de\u18df\u0005L\u0000\u0000\u18df"+ + "\u18e0\u0005E\u0000\u0000\u18e0\u18e1\u0005_\u0000\u0000\u18e1\u18e2\u0005"+ + "P\u0000\u0000\u18e2\u18e3\u0005A\u0000\u0000\u18e3\u18e4\u0005G\u0000"+ + "\u0000\u18e4\u18e5\u0005E\u0000\u0000\u18e5\u18e6\u0005S\u0000\u0000\u18e6"+ + "\u03f0\u0001\u0000\u0000\u0000\u18e7\u18e8\u0005S\u0000\u0000\u18e8\u18e9"+ + "\u0005T\u0000\u0000\u18e9\u18ea\u0005A\u0000\u0000\u18ea\u18eb\u0005T"+ + "\u0000\u0000\u18eb\u18ec\u0005U\u0000\u0000\u18ec\u18ed\u0005S\u0000\u0000"+ + "\u18ed\u03f2\u0001\u0000\u0000\u0000\u18ee\u18ef\u0005S\u0000\u0000\u18ef"+ + "\u18f0\u0005T\u0000\u0000\u18f0\u18f1\u0005O\u0000\u0000\u18f1\u18f2\u0005"+ + "P\u0000\u0000\u18f2\u03f4\u0001\u0000\u0000\u0000\u18f3\u18f4\u0005S\u0000"+ + "\u0000\u18f4\u18f5\u0005T\u0000\u0000\u18f5\u18f6\u0005O\u0000\u0000\u18f6"+ + "\u18f7\u0005R\u0000\u0000\u18f7\u18f8\u0005A\u0000\u0000\u18f8\u18f9\u0005"+ + "G\u0000\u0000\u18f9\u18fa\u0005E\u0000\u0000\u18fa\u03f6\u0001\u0000\u0000"+ + "\u0000\u18fb\u18fc\u0005S\u0000\u0000\u18fc\u18fd\u0005T\u0000\u0000\u18fd"+ + "\u18fe\u0005R\u0000\u0000\u18fe\u18ff\u0005I\u0000\u0000\u18ff\u1900\u0005"+ + "N\u0000\u0000\u1900\u1901\u0005G\u0000\u0000\u1901\u03f8\u0001\u0000\u0000"+ + "\u0000\u1902\u1903\u0005S\u0000\u0000\u1903\u1904\u0005U\u0000\u0000\u1904"+ + "\u1905\u0005B\u0000\u0000\u1905\u1906\u0005J\u0000\u0000\u1906\u1907\u0005"+ + "E\u0000\u0000\u1907\u1908\u0005C\u0000\u0000\u1908\u1909\u0005T\u0000"+ + "\u0000\u1909\u03fa\u0001\u0000\u0000\u0000\u190a\u190b\u0005S\u0000\u0000"+ + "\u190b\u190c\u0005U\u0000\u0000\u190c\u190d\u0005B\u0000\u0000\u190d\u190e"+ + "\u0005P\u0000\u0000\u190e\u190f\u0005A\u0000\u0000\u190f\u1910\u0005R"+ + "\u0000\u0000\u1910\u1911\u0005T\u0000\u0000\u1911\u1912\u0005I\u0000\u0000"+ + "\u1912\u1913\u0005T\u0000\u0000\u1913\u1914\u0005I\u0000\u0000\u1914\u1915"+ + "\u0005O\u0000\u0000\u1915\u1916\u0005N\u0000\u0000\u1916\u03fc\u0001\u0000"+ + "\u0000\u0000\u1917\u1918\u0005S\u0000\u0000\u1918\u1919\u0005U\u0000\u0000"+ + "\u1919\u191a\u0005B\u0000\u0000\u191a\u191b\u0005P\u0000\u0000\u191b\u191c"+ + "\u0005A\u0000\u0000\u191c\u191d\u0005R\u0000\u0000\u191d\u191e\u0005T"+ + "\u0000\u0000\u191e\u191f\u0005I\u0000\u0000\u191f\u1920\u0005T\u0000\u0000"+ + "\u1920\u1921\u0005I\u0000\u0000\u1921\u1922\u0005O\u0000\u0000\u1922\u1923"+ + "\u0005N\u0000\u0000\u1923\u1924\u0005S\u0000\u0000\u1924\u03fe\u0001\u0000"+ + "\u0000\u0000\u1925\u1926\u0005S\u0000\u0000\u1926\u1927\u0005U\u0000\u0000"+ + "\u1927\u1928\u0005S\u0000\u0000\u1928\u1929\u0005P\u0000\u0000\u1929\u192a"+ + "\u0005E\u0000\u0000\u192a\u192b\u0005N\u0000\u0000\u192b\u192c\u0005D"+ + "\u0000\u0000\u192c\u0400\u0001\u0000\u0000\u0000\u192d\u192e\u0005S\u0000"+ + "\u0000\u192e\u192f\u0005W\u0000\u0000\u192f\u1930\u0005A\u0000\u0000\u1930"+ + "\u1931\u0005P\u0000\u0000\u1931\u1932\u0005S\u0000\u0000\u1932\u0402\u0001"+ + "\u0000\u0000\u0000\u1933\u1934\u0005S\u0000\u0000\u1934\u1935\u0005W\u0000"+ + "\u0000\u1935\u1936\u0005I\u0000\u0000\u1936\u1937\u0005T\u0000\u0000\u1937"+ + "\u1938\u0005C\u0000\u0000\u1938\u1939\u0005H\u0000\u0000\u1939\u193a\u0005"+ + "E\u0000\u0000\u193a\u193b\u0005S\u0000\u0000\u193b\u0404\u0001\u0000\u0000"+ + "\u0000\u193c\u193d\u0005T\u0000\u0000\u193d\u193e\u0005A\u0000\u0000\u193e"+ + "\u193f\u0005B\u0000\u0000\u193f\u1940\u0005L\u0000\u0000\u1940\u1941\u0005"+ + "E\u0000\u0000\u1941\u1942\u0005S\u0000\u0000\u1942\u1943\u0005P\u0000"+ + "\u0000\u1943\u1944\u0005A\u0000\u0000\u1944\u1945\u0005C\u0000\u0000\u1945"+ + "\u1946\u0005E\u0000\u0000\u1946\u0406\u0001\u0000\u0000\u0000\u1947\u1948"+ + "\u0005T\u0000\u0000\u1948\u1949\u0005E\u0000\u0000\u1949\u194a\u0005M"+ + "\u0000\u0000\u194a\u194b\u0005P\u0000\u0000\u194b\u194c\u0005O\u0000\u0000"+ + "\u194c\u194d\u0005R\u0000\u0000\u194d\u194e\u0005A\u0000\u0000\u194e\u194f"+ + "\u0005R\u0000\u0000\u194f\u1950\u0005Y\u0000\u0000\u1950\u0408\u0001\u0000"+ + "\u0000\u0000\u1951\u1952\u0005T\u0000\u0000\u1952\u1953\u0005E\u0000\u0000"+ + "\u1953\u1954\u0005M\u0000\u0000\u1954\u1955\u0005P\u0000\u0000\u1955\u1956"+ + "\u0005T\u0000\u0000\u1956\u1957\u0005A\u0000\u0000\u1957\u1958\u0005B"+ + "\u0000\u0000\u1958\u1959\u0005L\u0000\u0000\u1959\u195a\u0005E\u0000\u0000"+ + "\u195a\u040a\u0001\u0000\u0000\u0000\u195b\u195c\u0005T\u0000\u0000\u195c"+ + "\u195d\u0005H\u0000\u0000\u195d\u195e\u0005A\u0000\u0000\u195e\u195f\u0005"+ + "N\u0000\u0000\u195f\u040c\u0001\u0000\u0000\u0000\u1960\u1961\u0005T\u0000"+ + "\u0000\u1961\u1962\u0005R\u0000\u0000\u1962\u1963\u0005A\u0000\u0000\u1963"+ + "\u1964\u0005D\u0000\u0000\u1964\u1965\u0005I\u0000\u0000\u1965\u1966\u0005"+ + "T\u0000\u0000\u1966\u1967\u0005I\u0000\u0000\u1967\u1968\u0005O\u0000"+ + "\u0000\u1968\u1969\u0005N\u0000\u0000\u1969\u196a\u0005A\u0000\u0000\u196a"+ + "\u196b\u0005L\u0000\u0000\u196b\u040e\u0001\u0000\u0000\u0000\u196c\u196d"+ + "\u0005T\u0000\u0000\u196d\u196e\u0005R\u0000\u0000\u196e\u196f\u0005A"+ + "\u0000\u0000\u196f\u1970\u0005N\u0000\u0000\u1970\u1971\u0005S\u0000\u0000"+ + "\u1971\u1972\u0005A\u0000\u0000\u1972\u1973\u0005C\u0000\u0000\u1973\u1974"+ + "\u0005T\u0000\u0000\u1974\u1975\u0005I\u0000\u0000\u1975\u1976\u0005O"+ + "\u0000\u0000\u1976\u1977\u0005N\u0000\u0000\u1977\u0410\u0001\u0000\u0000"+ + "\u0000\u1978\u1979\u0005T\u0000\u0000\u1979\u197a\u0005R\u0000\u0000\u197a"+ + "\u197b\u0005I\u0000\u0000\u197b\u197c\u0005G\u0000\u0000\u197c\u197d\u0005"+ + "G\u0000\u0000\u197d\u197e\u0005E\u0000\u0000\u197e\u197f\u0005R\u0000"+ + "\u0000\u197f\u1980\u0005S\u0000\u0000\u1980\u0412\u0001\u0000\u0000\u0000"+ + "\u1981\u1982\u0005T\u0000\u0000\u1982\u1983\u0005R\u0000\u0000\u1983\u1984"+ + "\u0005U\u0000\u0000\u1984\u1985\u0005N\u0000\u0000\u1985\u1986\u0005C"+ + "\u0000\u0000\u1986\u1987\u0005A\u0000\u0000\u1987\u1988\u0005T\u0000\u0000"+ + "\u1988\u1989\u0005E\u0000\u0000\u1989\u0414\u0001\u0000\u0000\u0000\u198a"+ + "\u198b\u0005U\u0000\u0000\u198b\u198c\u0005N\u0000\u0000\u198c\u198d\u0005"+ + "D\u0000\u0000\u198d\u198e\u0005E\u0000\u0000\u198e\u198f\u0005F\u0000"+ + "\u0000\u198f\u1990\u0005I\u0000\u0000\u1990\u1991\u0005N\u0000\u0000\u1991"+ + "\u1992\u0005E\u0000\u0000\u1992\u1993\u0005D\u0000\u0000\u1993\u0416\u0001"+ + "\u0000\u0000\u0000\u1994\u1995\u0005U\u0000\u0000\u1995\u1996\u0005N\u0000"+ + "\u0000\u1996\u1997\u0005D\u0000\u0000\u1997\u1998\u0005O\u0000\u0000\u1998"+ + "\u1999\u0005F\u0000\u0000\u1999\u199a\u0005I\u0000\u0000\u199a\u199b\u0005"+ + "L\u0000\u0000\u199b\u199c\u0005E\u0000\u0000\u199c\u0418\u0001\u0000\u0000"+ + "\u0000\u199d\u199e\u0005U\u0000\u0000\u199e\u199f\u0005N\u0000\u0000\u199f"+ + "\u19a0\u0005D\u0000\u0000\u19a0\u19a1\u0005O\u0000\u0000\u19a1\u19a2\u0005"+ + "_\u0000\u0000\u19a2\u19a3\u0005B\u0000\u0000\u19a3\u19a4\u0005U\u0000"+ + "\u0000\u19a4\u19a5\u0005F\u0000\u0000\u19a5\u19a6\u0005F\u0000\u0000\u19a6"+ + "\u19a7\u0005E\u0000\u0000\u19a7\u19a8\u0005R\u0000\u0000\u19a8\u19a9\u0005"+ + "_\u0000\u0000\u19a9\u19aa\u0005S\u0000\u0000\u19aa\u19ab\u0005I\u0000"+ + "\u0000\u19ab\u19ac\u0005Z\u0000\u0000\u19ac\u19ad\u0005E\u0000\u0000\u19ad"+ + "\u041a\u0001\u0000\u0000\u0000\u19ae\u19af\u0005U\u0000\u0000\u19af\u19b0"+ + "\u0005N\u0000\u0000\u19b0\u19b1\u0005I\u0000\u0000\u19b1\u19b2\u0005N"+ + "\u0000\u0000\u19b2\u19b3\u0005S\u0000\u0000\u19b3\u19b4\u0005T\u0000\u0000"+ + "\u19b4\u19b5\u0005A\u0000\u0000\u19b5\u19b6\u0005L\u0000\u0000\u19b6\u19b7"+ + "\u0005L\u0000\u0000\u19b7\u041c\u0001\u0000\u0000\u0000\u19b8\u19b9\u0005"+ + "U\u0000\u0000\u19b9\u19ba\u0005N\u0000\u0000\u19ba\u19bb\u0005K\u0000"+ + "\u0000\u19bb\u19bc\u0005N\u0000\u0000\u19bc\u19bd\u0005O\u0000\u0000\u19bd"+ + "\u19be\u0005W\u0000\u0000\u19be\u19bf\u0005N\u0000\u0000\u19bf\u041e\u0001"+ + "\u0000\u0000\u0000\u19c0\u19c1\u0005U\u0000\u0000\u19c1\u19c2\u0005N\u0000"+ + "\u0000\u19c2\u19c3\u0005T\u0000\u0000\u19c3\u19c4\u0005I\u0000\u0000\u19c4"+ + "\u19c5\u0005L\u0000\u0000\u19c5\u0420\u0001\u0000\u0000\u0000\u19c6\u19c7"+ + "\u0005U\u0000\u0000\u19c7\u19c8\u0005P\u0000\u0000\u19c8\u19c9\u0005G"+ + "\u0000\u0000\u19c9\u19ca\u0005R\u0000\u0000\u19ca\u19cb\u0005A\u0000\u0000"+ + "\u19cb\u19cc\u0005D\u0000\u0000\u19cc\u19cd\u0005E\u0000\u0000\u19cd\u0422"+ + "\u0001\u0000\u0000\u0000\u19ce\u19cf\u0005U\u0000\u0000\u19cf\u19d0\u0005"+ + "S\u0000\u0000\u19d0\u19d1\u0005E\u0000\u0000\u19d1\u19d2\u0005R\u0000"+ + "\u0000\u19d2\u0424\u0001\u0000\u0000\u0000\u19d3\u19d4\u0005U\u0000\u0000"+ + "\u19d4\u19d5\u0005S\u0000\u0000\u19d5\u19d6\u0005E\u0000\u0000\u19d6\u19d7"+ + "\u0005_\u0000\u0000\u19d7\u19d8\u0005F\u0000\u0000\u19d8\u19d9\u0005R"+ + "\u0000\u0000\u19d9\u19da\u0005M\u0000\u0000\u19da\u0426\u0001\u0000\u0000"+ + "\u0000\u19db\u19dc\u0005U\u0000\u0000\u19dc\u19dd\u0005S\u0000\u0000\u19dd"+ + "\u19de\u0005E\u0000\u0000\u19de\u19df\u0005R\u0000\u0000\u19df\u19e0\u0005"+ + "_\u0000\u0000\u19e0\u19e1\u0005R\u0000\u0000\u19e1\u19e2\u0005E\u0000"+ + "\u0000\u19e2\u19e3\u0005S\u0000\u0000\u19e3\u19e4\u0005O\u0000\u0000\u19e4"+ + "\u19e5\u0005U\u0000\u0000\u19e5\u19e6\u0005R\u0000\u0000\u19e6\u19e7\u0005"+ + "C\u0000\u0000\u19e7\u19e8\u0005E\u0000\u0000\u19e8\u19e9\u0005S\u0000"+ + "\u0000\u19e9\u0428\u0001\u0000\u0000\u0000\u19ea\u19eb\u0005V\u0000\u0000"+ + "\u19eb\u19ec\u0005A\u0000\u0000\u19ec\u19ed\u0005L\u0000\u0000\u19ed\u19ee"+ + "\u0005I\u0000\u0000\u19ee\u19ef\u0005D\u0000\u0000\u19ef\u19f0\u0005A"+ + "\u0000\u0000\u19f0\u19f1\u0005T\u0000\u0000\u19f1\u19f2\u0005I\u0000\u0000"+ + "\u19f2\u19f3\u0005O\u0000\u0000\u19f3\u19f4\u0005N\u0000\u0000\u19f4\u042a"+ + "\u0001\u0000\u0000\u0000\u19f5\u19f6\u0005V\u0000\u0000\u19f6\u19f7\u0005"+ + "A\u0000\u0000\u19f7\u19f8\u0005L\u0000\u0000\u19f8\u19f9\u0005U\u0000"+ + "\u0000\u19f9\u19fa\u0005E\u0000\u0000\u19fa\u042c\u0001\u0000\u0000\u0000"+ + "\u19fb\u19fc\u0005V\u0000\u0000\u19fc\u19fd\u0005A\u0000\u0000\u19fd\u19fe"+ + "\u0005R\u0000\u0000\u19fe\u19ff\u0005I\u0000\u0000\u19ff\u1a00\u0005A"+ + "\u0000\u0000\u1a00\u1a01\u0005B\u0000\u0000\u1a01\u1a02\u0005L\u0000\u0000"+ + "\u1a02\u1a03\u0005E\u0000\u0000\u1a03\u1a04\u0005S\u0000\u0000\u1a04\u042e"+ + "\u0001\u0000\u0000\u0000\u1a05\u1a06\u0005V\u0000\u0000\u1a06\u1a07\u0005"+ + "I\u0000\u0000\u1a07\u1a08\u0005E\u0000\u0000\u1a08\u1a09\u0005W\u0000"+ + "\u0000\u1a09\u0430\u0001\u0000\u0000\u0000\u1a0a\u1a0b\u0005W\u0000\u0000"+ + "\u1a0b\u1a0c\u0005A\u0000\u0000\u1a0c\u1a0d\u0005I\u0000\u0000\u1a0d\u1a0e"+ + "\u0005T\u0000\u0000\u1a0e\u0432\u0001\u0000\u0000\u0000\u1a0f\u1a10\u0005"+ + "W\u0000\u0000\u1a10\u1a11\u0005A\u0000\u0000\u1a11\u1a12\u0005R\u0000"+ + "\u0000\u1a12\u1a13\u0005N\u0000\u0000\u1a13\u1a14\u0005I\u0000\u0000\u1a14"+ + "\u1a15\u0005N\u0000\u0000\u1a15\u1a16\u0005G\u0000\u0000\u1a16\u1a17\u0005"+ + "S\u0000\u0000\u1a17\u0434\u0001\u0000\u0000\u0000\u1a18\u1a19\u0005W\u0000"+ + "\u0000\u1a19\u1a1a\u0005I\u0000\u0000\u1a1a\u1a1b\u0005T\u0000\u0000\u1a1b"+ + "\u1a1c\u0005H\u0000\u0000\u1a1c\u1a1d\u0005O\u0000\u0000\u1a1d\u1a1e\u0005"+ + "U\u0000\u0000\u1a1e\u1a1f\u0005T\u0000\u0000\u1a1f\u0436\u0001\u0000\u0000"+ + "\u0000\u1a20\u1a21\u0005W\u0000\u0000\u1a21\u1a22\u0005O\u0000\u0000\u1a22"+ + "\u1a23\u0005R\u0000\u0000\u1a23\u1a24\u0005K\u0000\u0000\u1a24\u0438\u0001"+ + "\u0000\u0000\u0000\u1a25\u1a26\u0005W\u0000\u0000\u1a26\u1a27\u0005R\u0000"+ + "\u0000\u1a27\u1a28\u0005A\u0000\u0000\u1a28\u1a29\u0005P\u0000\u0000\u1a29"+ + "\u1a2a\u0005P\u0000\u0000\u1a2a\u1a2b\u0005E\u0000\u0000\u1a2b\u1a2c\u0005"+ + "R\u0000\u0000\u1a2c\u043a\u0001\u0000\u0000\u0000\u1a2d\u1a2e\u0005X\u0000"+ + "\u0000\u1a2e\u1a2f\u00055\u0000\u0000\u1a2f\u1a30\u00050\u0000\u0000\u1a30"+ + "\u1a31\u00059\u0000\u0000\u1a31\u043c\u0001\u0000\u0000\u0000\u1a32\u1a33"+ + "\u0005X\u0000\u0000\u1a33\u1a34\u0005A\u0000\u0000\u1a34\u043e\u0001\u0000"+ + "\u0000\u0000\u1a35\u1a36\u0005X\u0000\u0000\u1a36\u1a37\u0005M\u0000\u0000"+ + "\u1a37\u1a38\u0005L\u0000\u0000\u1a38\u0440\u0001\u0000\u0000\u0000\u1a39"+ + "\u1a3a\u0005E\u0000\u0000\u1a3a\u1a3b\u0005U\u0000\u0000\u1a3b\u1a3c\u0005"+ + "R\u0000\u0000\u1a3c\u0442\u0001\u0000\u0000\u0000\u1a3d\u1a3e\u0005U\u0000"+ + "\u0000\u1a3e\u1a3f\u0005S\u0000\u0000\u1a3f\u1a40\u0005A\u0000\u0000\u1a40"+ + "\u0444\u0001\u0000\u0000\u0000\u1a41\u1a42\u0005J\u0000\u0000\u1a42\u1a43"+ + "\u0005I\u0000\u0000\u1a43\u1a44\u0005S\u0000\u0000\u1a44\u0446\u0001\u0000"+ + "\u0000\u0000\u1a45\u1a46\u0005I\u0000\u0000\u1a46\u1a47\u0005S\u0000\u0000"+ + "\u1a47\u1a48\u0005O\u0000\u0000\u1a48\u0448\u0001\u0000\u0000\u0000\u1a49"+ + "\u1a4a\u0005I\u0000\u0000\u1a4a\u1a4b\u0005N\u0000\u0000\u1a4b\u1a4c\u0005"+ + "T\u0000\u0000\u1a4c\u1a4d\u0005E\u0000\u0000\u1a4d\u1a4e\u0005R\u0000"+ + "\u0000\u1a4e\u1a4f\u0005N\u0000\u0000\u1a4f\u1a50\u0005A\u0000\u0000\u1a50"+ + "\u1a51\u0005L\u0000\u0000\u1a51\u044a\u0001\u0000\u0000\u0000\u1a52\u1a53"+ + "\u0005Q\u0000\u0000\u1a53\u1a54\u0005U\u0000\u0000\u1a54\u1a55\u0005A"+ + "\u0000\u0000\u1a55\u1a56\u0005R\u0000\u0000\u1a56\u1a57\u0005T\u0000\u0000"+ + "\u1a57\u1a58\u0005E\u0000\u0000\u1a58\u1a59\u0005R\u0000\u0000\u1a59\u044c"+ + "\u0001\u0000\u0000\u0000\u1a5a\u1a5b\u0005M\u0000\u0000\u1a5b\u1a5c\u0005"+ + "O\u0000\u0000\u1a5c\u1a5d\u0005N\u0000\u0000\u1a5d\u1a5e\u0005T\u0000"+ + "\u0000\u1a5e\u1a5f\u0005H\u0000\u0000\u1a5f\u044e\u0001\u0000\u0000\u0000"+ + "\u1a60\u1a61\u0005D\u0000\u0000\u1a61\u1a62\u0005A\u0000\u0000\u1a62\u1a63"+ + "\u0005Y\u0000\u0000\u1a63\u0450\u0001\u0000\u0000\u0000\u1a64\u1a65\u0005"+ + "H\u0000\u0000\u1a65\u1a66\u0005O\u0000\u0000\u1a66\u1a67\u0005U\u0000"+ + "\u0000\u1a67\u1a68\u0005R\u0000\u0000\u1a68\u0452\u0001\u0000\u0000\u0000"+ + "\u1a69\u1a6a\u0005M\u0000\u0000\u1a6a\u1a6b\u0005I\u0000\u0000\u1a6b\u1a6c"+ + "\u0005N\u0000\u0000\u1a6c\u1a6d\u0005U\u0000\u0000\u1a6d\u1a6e\u0005T"+ + "\u0000\u0000\u1a6e\u1a6f\u0005E\u0000\u0000\u1a6f\u0454\u0001\u0000\u0000"+ + "\u0000\u1a70\u1a71\u0005W\u0000\u0000\u1a71\u1a72\u0005E\u0000\u0000\u1a72"+ + "\u1a73\u0005E\u0000\u0000\u1a73\u1a74\u0005K\u0000\u0000\u1a74\u0456\u0001"+ + "\u0000\u0000\u0000\u1a75\u1a76\u0005S\u0000\u0000\u1a76\u1a77\u0005E\u0000"+ + "\u0000\u1a77\u1a78\u0005C\u0000\u0000\u1a78\u1a79\u0005O\u0000\u0000\u1a79"+ + "\u1a7a\u0005N\u0000\u0000\u1a7a\u1a7b\u0005D\u0000\u0000\u1a7b\u0458\u0001"+ + "\u0000\u0000\u0000\u1a7c\u1a7d\u0005M\u0000\u0000\u1a7d\u1a7e\u0005I\u0000"+ + "\u0000\u1a7e\u1a7f\u0005C\u0000\u0000\u1a7f\u1a80\u0005R\u0000\u0000\u1a80"+ + "\u1a81\u0005O\u0000\u0000\u1a81\u1a82\u0005S\u0000\u0000\u1a82\u1a83\u0005"+ + "E\u0000\u0000\u1a83\u1a84\u0005C\u0000\u0000\u1a84\u1a85\u0005O\u0000"+ + "\u0000\u1a85\u1a86\u0005N\u0000\u0000\u1a86\u1a87\u0005D\u0000\u0000\u1a87"+ + "\u045a\u0001\u0000\u0000\u0000\u1a88\u1a89\u0005T\u0000\u0000\u1a89\u1a8a"+ + "\u0005A\u0000\u0000\u1a8a\u1a8b\u0005B\u0000\u0000\u1a8b\u1a8c\u0005L"+ + "\u0000\u0000\u1a8c\u1a8d\u0005E\u0000\u0000\u1a8d\u1a8e\u0005S\u0000\u0000"+ + "\u1a8e\u045c\u0001\u0000\u0000\u0000\u1a8f\u1a90\u0005R\u0000\u0000\u1a90"+ + "\u1a91\u0005O\u0000\u0000\u1a91\u1a92\u0005U\u0000\u0000\u1a92\u1a93\u0005"+ + "T\u0000\u0000\u1a93\u1a94\u0005I\u0000\u0000\u1a94\u1a95\u0005N\u0000"+ + "\u0000\u1a95\u1a96\u0005E\u0000\u0000\u1a96\u045e\u0001\u0000\u0000\u0000"+ + "\u1a97\u1a98\u0005E\u0000\u0000\u1a98\u1a99\u0005X\u0000\u0000\u1a99\u1a9a"+ + "\u0005E\u0000\u0000\u1a9a\u1a9b\u0005C\u0000\u0000\u1a9b\u1a9c\u0005U"+ + "\u0000\u0000\u1a9c\u1a9d\u0005T\u0000\u0000\u1a9d\u1a9e\u0005E\u0000\u0000"+ + "\u1a9e\u0460\u0001\u0000\u0000\u0000\u1a9f\u1aa0\u0005F\u0000\u0000\u1aa0"+ + "\u1aa1\u0005I\u0000\u0000\u1aa1\u1aa2\u0005L\u0000\u0000\u1aa2\u1aa3\u0005"+ + "E\u0000\u0000\u1aa3\u0462\u0001\u0000\u0000\u0000\u1aa4\u1aa5\u0005P\u0000"+ + "\u0000\u1aa5\u1aa6\u0005R\u0000\u0000\u1aa6\u1aa7\u0005O\u0000\u0000\u1aa7"+ + "\u1aa8\u0005C\u0000\u0000\u1aa8\u1aa9\u0005E\u0000\u0000\u1aa9\u1aaa\u0005"+ + "S\u0000\u0000\u1aaa\u1aab\u0005S\u0000\u0000\u1aab\u0464\u0001\u0000\u0000"+ + "\u0000\u1aac\u1aad\u0005R\u0000\u0000\u1aad\u1aae\u0005E\u0000\u0000\u1aae"+ + "\u1aaf\u0005L\u0000\u0000\u1aaf\u1ab0\u0005O\u0000\u0000\u1ab0\u1ab1\u0005"+ + "A\u0000\u0000\u1ab1\u1ab2\u0005D\u0000\u0000\u1ab2\u0466\u0001\u0000\u0000"+ + "\u0000\u1ab3\u1ab4\u0005S\u0000\u0000\u1ab4\u1ab5\u0005H\u0000\u0000\u1ab5"+ + "\u1ab6\u0005U\u0000\u0000\u1ab6\u1ab7\u0005T\u0000\u0000\u1ab7\u1ab8\u0005"+ + "D\u0000\u0000\u1ab8\u1ab9\u0005O\u0000\u0000\u1ab9\u1aba\u0005W\u0000"+ + "\u0000\u1aba\u1abb\u0005N\u0000\u0000\u1abb\u0468\u0001\u0000\u0000\u0000"+ + "\u1abc\u1abd\u0005S\u0000\u0000\u1abd\u1abe\u0005U\u0000\u0000\u1abe\u1abf"+ + "\u0005P\u0000\u0000\u1abf\u1ac0\u0005E\u0000\u0000\u1ac0\u1ac1\u0005R"+ + "\u0000\u0000\u1ac1\u046a\u0001\u0000\u0000\u0000\u1ac2\u1ac3\u0005P\u0000"+ + "\u0000\u1ac3\u1ac4\u0005R\u0000\u0000\u1ac4\u1ac5\u0005I\u0000\u0000\u1ac5"+ + "\u1ac6\u0005V\u0000\u0000\u1ac6\u1ac7\u0005I\u0000\u0000\u1ac7\u1ac8\u0005"+ + "L\u0000\u0000\u1ac8\u1ac9\u0005E\u0000\u0000\u1ac9\u1aca\u0005G\u0000"+ + "\u0000\u1aca\u1acb\u0005E\u0000\u0000\u1acb\u1acc\u0005S\u0000\u0000\u1acc"+ + "\u046c\u0001\u0000\u0000\u0000\u1acd\u1ace\u0005A\u0000\u0000\u1ace\u1acf"+ + "\u0005R\u0000\u0000\u1acf\u1ad0\u0005M\u0000\u0000\u1ad0\u1ad1\u0005S"+ + "\u0000\u0000\u1ad1\u1ad2\u0005C\u0000\u0000\u1ad2\u1ad3\u0005I\u0000\u0000"+ + "\u1ad3\u1ad4\u0005I\u0000\u0000\u1ad4\u1ad5\u00058\u0000\u0000\u1ad5\u046e"+ + "\u0001\u0000\u0000\u0000\u1ad6\u1ad7\u0005A\u0000\u0000\u1ad7\u1ad8\u0005"+ + "S\u0000\u0000\u1ad8\u1ad9\u0005C\u0000\u0000\u1ad9\u1ada\u0005I\u0000"+ + "\u0000\u1ada\u1adb\u0005I\u0000\u0000\u1adb\u0470\u0001\u0000\u0000\u0000"+ + "\u1adc\u1add\u0005B\u0000\u0000\u1add\u1ade\u0005I\u0000\u0000\u1ade\u1adf"+ + "\u0005G\u0000\u0000\u1adf\u1ae0\u00055\u0000\u0000\u1ae0\u0472\u0001\u0000"+ + "\u0000\u0000\u1ae1\u1ae2\u0005C\u0000\u0000\u1ae2\u1ae3\u0005P\u0000\u0000"+ + "\u1ae3\u1ae4\u00051\u0000\u0000\u1ae4\u1ae5\u00052\u0000\u0000\u1ae5\u1ae6"+ + "\u00055\u0000\u0000\u1ae6\u1ae7\u00050\u0000\u0000\u1ae7\u0474\u0001\u0000"+ + "\u0000\u0000\u1ae8\u1ae9\u0005C\u0000\u0000\u1ae9\u1aea\u0005P\u0000\u0000"+ + "\u1aea\u1aeb\u00051\u0000\u0000\u1aeb\u1aec\u00052\u0000\u0000\u1aec\u1aed"+ + "\u00055\u0000\u0000\u1aed\u1aee\u00051\u0000\u0000\u1aee\u0476\u0001\u0000"+ + "\u0000\u0000\u1aef\u1af0\u0005C\u0000\u0000\u1af0\u1af1\u0005P\u0000\u0000"+ + "\u1af1\u1af2\u00051\u0000\u0000\u1af2\u1af3\u00052\u0000\u0000\u1af3\u1af4"+ + "\u00055\u0000\u0000\u1af4\u1af5\u00056\u0000\u0000\u1af5\u0478\u0001\u0000"; + private static final String _serializedATNSegment3 = + "\u0000\u0000\u1af6\u1af7\u0005C\u0000\u0000\u1af7\u1af8\u0005P\u0000\u0000"+ + "\u1af8\u1af9\u00051\u0000\u0000\u1af9\u1afa\u00052\u0000\u0000\u1afa\u1afb"+ + "\u00055\u0000\u0000\u1afb\u1afc\u00057\u0000\u0000\u1afc\u047a\u0001\u0000"+ + "\u0000\u0000\u1afd\u1afe\u0005C\u0000\u0000\u1afe\u1aff\u0005P\u0000\u0000"+ + "\u1aff\u1b00\u00058\u0000\u0000\u1b00\u1b01\u00055\u0000\u0000\u1b01\u1b02"+ + "\u00050\u0000\u0000\u1b02\u047c\u0001\u0000\u0000\u0000\u1b03\u1b04\u0005"+ + "C\u0000\u0000\u1b04\u1b05\u0005P\u0000\u0000\u1b05\u1b06\u00058\u0000"+ + "\u0000\u1b06\u1b07\u00055\u0000\u0000\u1b07\u1b08\u00052\u0000\u0000\u1b08"+ + "\u047e\u0001\u0000\u0000\u0000\u1b09\u1b0a\u0005C\u0000\u0000\u1b0a\u1b0b"+ + "\u0005P\u0000\u0000\u1b0b\u1b0c\u00058\u0000\u0000\u1b0c\u1b0d\u00056"+ + "\u0000\u0000\u1b0d\u1b0e\u00056\u0000\u0000\u1b0e\u0480\u0001\u0000\u0000"+ + "\u0000\u1b0f\u1b10\u0005C\u0000\u0000\u1b10\u1b11\u0005P\u0000\u0000\u1b11"+ + "\u1b12\u00059\u0000\u0000\u1b12\u1b13\u00053\u0000\u0000\u1b13\u1b14\u0005"+ + "2\u0000\u0000\u1b14\u0482\u0001\u0000\u0000\u0000\u1b15\u1b16\u0005D\u0000"+ + "\u0000\u1b16\u1b17\u0005E\u0000\u0000\u1b17\u1b18\u0005C\u0000\u0000\u1b18"+ + "\u1b19\u00058\u0000\u0000\u1b19\u0484\u0001\u0000\u0000\u0000\u1b1a\u1b1b"+ + "\u0005E\u0000\u0000\u1b1b\u1b1c\u0005U\u0000\u0000\u1b1c\u1b1d\u0005C"+ + "\u0000\u0000\u1b1d\u1b1e\u0005J\u0000\u0000\u1b1e\u1b1f\u0005P\u0000\u0000"+ + "\u1b1f\u1b20\u0005M\u0000\u0000\u1b20\u1b21\u0005S\u0000\u0000\u1b21\u0486"+ + "\u0001\u0000\u0000\u0000\u1b22\u1b23\u0005E\u0000\u0000\u1b23\u1b24\u0005"+ + "U\u0000\u0000\u1b24\u1b25\u0005C\u0000\u0000\u1b25\u1b26\u0005K\u0000"+ + "\u0000\u1b26\u1b27\u0005R\u0000\u0000\u1b27\u0488\u0001\u0000\u0000\u0000"+ + "\u1b28\u1b29\u0005G\u0000\u0000\u1b29\u1b2a\u0005B\u0000\u0000\u1b2a\u1b2b"+ + "\u00052\u0000\u0000\u1b2b\u1b2c\u00053\u0000\u0000\u1b2c\u1b2d\u00051"+ + "\u0000\u0000\u1b2d\u1b2e\u00052\u0000\u0000\u1b2e\u048a\u0001\u0000\u0000"+ + "\u0000\u1b2f\u1b30\u0005G\u0000\u0000\u1b30\u1b31\u0005B\u0000\u0000\u1b31"+ + "\u1b32\u0005K\u0000\u0000\u1b32\u048c\u0001\u0000\u0000\u0000\u1b33\u1b34"+ + "\u0005G\u0000\u0000\u1b34\u1b35\u0005E\u0000\u0000\u1b35\u1b36\u0005O"+ + "\u0000\u0000\u1b36\u1b37\u0005S\u0000\u0000\u1b37\u1b38\u0005T\u0000\u0000"+ + "\u1b38\u1b39\u0005D\u0000\u0000\u1b39\u1b3a\u00058\u0000\u0000\u1b3a\u048e"+ + "\u0001\u0000\u0000\u0000\u1b3b\u1b3c\u0005G\u0000\u0000\u1b3c\u1b3d\u0005"+ + "R\u0000\u0000\u1b3d\u1b3e\u0005E\u0000\u0000\u1b3e\u1b3f\u0005E\u0000"+ + "\u0000\u1b3f\u1b40\u0005K\u0000\u0000\u1b40\u0490\u0001\u0000\u0000\u0000"+ + "\u1b41\u1b42\u0005H\u0000\u0000\u1b42\u1b43\u0005E\u0000\u0000\u1b43\u1b44"+ + "\u0005B\u0000\u0000\u1b44\u1b45\u0005R\u0000\u0000\u1b45\u1b46\u0005E"+ + "\u0000\u0000\u1b46\u1b47\u0005W\u0000\u0000\u1b47\u0492\u0001\u0000\u0000"+ + "\u0000\u1b48\u1b49\u0005H\u0000\u0000\u1b49\u1b4a\u0005P\u0000\u0000\u1b4a"+ + "\u1b4b\u00058\u0000\u0000\u1b4b\u0494\u0001\u0000\u0000\u0000\u1b4c\u1b4d"+ + "\u0005K\u0000\u0000\u1b4d\u1b4e\u0005E\u0000\u0000\u1b4e\u1b4f\u0005Y"+ + "\u0000\u0000\u1b4f\u1b50\u0005B\u0000\u0000\u1b50\u1b51\u0005C\u0000\u0000"+ + "\u1b51\u1b52\u0005S\u0000\u0000\u1b52\u1b53\u00052\u0000\u0000\u1b53\u0496"+ + "\u0001\u0000\u0000\u0000\u1b54\u1b55\u0005K\u0000\u0000\u1b55\u1b56\u0005"+ + "O\u0000\u0000\u1b56\u1b57\u0005I\u0000\u0000\u1b57\u1b58\u00058\u0000"+ + "\u0000\u1b58\u1b59\u0005R\u0000\u0000\u1b59\u0498\u0001\u0000\u0000\u0000"+ + "\u1b5a\u1b5b\u0005K\u0000\u0000\u1b5b\u1b5c\u0005O\u0000\u0000\u1b5c\u1b5d"+ + "\u0005I\u0000\u0000\u1b5d\u1b5e\u00058\u0000\u0000\u1b5e\u1b5f\u0005U"+ + "\u0000\u0000\u1b5f\u049a\u0001\u0000\u0000\u0000\u1b60\u1b61\u0005L\u0000"+ + "\u0000\u1b61\u1b62\u0005A\u0000\u0000\u1b62\u1b63\u0005T\u0000\u0000\u1b63"+ + "\u1b64\u0005I\u0000\u0000\u1b64\u1b65\u0005N\u0000\u0000\u1b65\u1b66\u0005"+ + "1\u0000\u0000\u1b66\u049c\u0001\u0000\u0000\u0000\u1b67\u1b68\u0005L\u0000"+ + "\u0000\u1b68\u1b69\u0005A\u0000\u0000\u1b69\u1b6a\u0005T\u0000\u0000\u1b6a"+ + "\u1b6b\u0005I\u0000\u0000\u1b6b\u1b6c\u0005N\u0000\u0000\u1b6c\u1b6d\u0005"+ + "2\u0000\u0000\u1b6d\u049e\u0001\u0000\u0000\u0000\u1b6e\u1b6f\u0005L\u0000"+ + "\u0000\u1b6f\u1b70\u0005A\u0000\u0000\u1b70\u1b71\u0005T\u0000\u0000\u1b71"+ + "\u1b72\u0005I\u0000\u0000\u1b72\u1b73\u0005N\u0000\u0000\u1b73\u1b74\u0005"+ + "5\u0000\u0000\u1b74\u04a0\u0001\u0000\u0000\u0000\u1b75\u1b76\u0005L\u0000"+ + "\u0000\u1b76\u1b77\u0005A\u0000\u0000\u1b77\u1b78\u0005T\u0000\u0000\u1b78"+ + "\u1b79\u0005I\u0000\u0000\u1b79\u1b7a\u0005N\u0000\u0000\u1b7a\u1b7b\u0005"+ + "7\u0000\u0000\u1b7b\u04a2\u0001\u0000\u0000\u0000\u1b7c\u1b7d\u0005M\u0000"+ + "\u0000\u1b7d\u1b7e\u0005A\u0000\u0000\u1b7e\u1b7f\u0005C\u0000\u0000\u1b7f"+ + "\u1b80\u0005C\u0000\u0000\u1b80\u1b81\u0005E\u0000\u0000\u1b81\u04a4\u0001"+ + "\u0000\u0000\u0000\u1b82\u1b83\u0005M\u0000\u0000\u1b83\u1b84\u0005A\u0000"+ + "\u0000\u1b84\u1b85\u0005C\u0000\u0000\u1b85\u1b86\u0005R\u0000\u0000\u1b86"+ + "\u1b87\u0005O\u0000\u0000\u1b87\u1b88\u0005M\u0000\u0000\u1b88\u1b89\u0005"+ + "A\u0000\u0000\u1b89\u1b8a\u0005N\u0000\u0000\u1b8a\u04a6\u0001\u0000\u0000"+ + "\u0000\u1b8b\u1b8c\u0005S\u0000\u0000\u1b8c\u1b8d\u0005J\u0000\u0000\u1b8d"+ + "\u1b8e\u0005I\u0000\u0000\u1b8e\u1b8f\u0005S\u0000\u0000\u1b8f\u04a8\u0001"+ + "\u0000\u0000\u0000\u1b90\u1b91\u0005S\u0000\u0000\u1b91\u1b92\u0005W\u0000"+ + "\u0000\u1b92\u1b93\u0005E\u0000\u0000\u1b93\u1b94\u00057\u0000\u0000\u1b94"+ + "\u04aa\u0001\u0000\u0000\u0000\u1b95\u1b96\u0005T\u0000\u0000\u1b96\u1b97"+ + "\u0005I\u0000\u0000\u1b97\u1b98\u0005S\u0000\u0000\u1b98\u1b99\u00056"+ + "\u0000\u0000\u1b99\u1b9a\u00052\u0000\u0000\u1b9a\u1b9b\u00050\u0000\u0000"+ + "\u1b9b\u04ac\u0001\u0000\u0000\u0000\u1b9c\u1b9d\u0005U\u0000\u0000\u1b9d"+ + "\u1b9e\u0005C\u0000\u0000\u1b9e\u1b9f\u0005S\u0000\u0000\u1b9f\u1ba0\u0005"+ + "2\u0000\u0000\u1ba0\u04ae\u0001\u0000\u0000\u0000\u1ba1\u1ba2\u0005U\u0000"+ + "\u0000\u1ba2\u1ba3\u0005J\u0000\u0000\u1ba3\u1ba4\u0005I\u0000\u0000\u1ba4"+ + "\u1ba5\u0005S\u0000\u0000\u1ba5\u04b0\u0001\u0000\u0000\u0000\u1ba6\u1ba7"+ + "\u0005U\u0000\u0000\u1ba7\u1ba8\u0005T\u0000\u0000\u1ba8\u1ba9\u0005F"+ + "\u0000\u0000\u1ba9\u1baa\u00051\u0000\u0000\u1baa\u1bab\u00056\u0000\u0000"+ + "\u1bab\u04b2\u0001\u0000\u0000\u0000\u1bac\u1bad\u0005U\u0000\u0000\u1bad"+ + "\u1bae\u0005T\u0000\u0000\u1bae\u1baf\u0005F\u0000\u0000\u1baf\u1bb0\u0005"+ + "1\u0000\u0000\u1bb0\u1bb1\u00056\u0000\u0000\u1bb1\u1bb2\u0005L\u0000"+ + "\u0000\u1bb2\u1bb3\u0005E\u0000\u0000\u1bb3\u04b4\u0001\u0000\u0000\u0000"+ + "\u1bb4\u1bb5\u0005U\u0000\u0000\u1bb5\u1bb6\u0005T\u0000\u0000\u1bb6\u1bb7"+ + "\u0005F\u0000\u0000\u1bb7\u1bb8\u00053\u0000\u0000\u1bb8\u1bb9\u00052"+ + "\u0000\u0000\u1bb9\u04b6\u0001\u0000\u0000\u0000\u1bba\u1bbb\u0005U\u0000"+ + "\u0000\u1bbb\u1bbc\u0005T\u0000\u0000\u1bbc\u1bbd\u0005F\u0000\u0000\u1bbd"+ + "\u1bbe\u00058\u0000\u0000\u1bbe\u04b8\u0001\u0000\u0000\u0000\u1bbf\u1bc0"+ + "\u0005U\u0000\u0000\u1bc0\u1bc1\u0005T\u0000\u0000\u1bc1\u1bc2\u0005F"+ + "\u0000\u0000\u1bc2\u1bc3\u00058\u0000\u0000\u1bc3\u1bc4\u0005M\u0000\u0000"+ + "\u1bc4\u1bc5\u0005B\u0000\u0000\u1bc5\u1bc6\u00053\u0000\u0000\u1bc6\u04ba"+ + "\u0001\u0000\u0000\u0000\u1bc7\u1bc8\u0005U\u0000\u0000\u1bc8\u1bc9\u0005"+ + "T\u0000\u0000\u1bc9\u1bca\u0005F\u0000\u0000\u1bca\u1bcb\u00058\u0000"+ + "\u0000\u1bcb\u1bcc\u0005M\u0000\u0000\u1bcc\u1bcd\u0005B\u0000\u0000\u1bcd"+ + "\u1bce\u00054\u0000\u0000\u1bce\u04bc\u0001\u0000\u0000\u0000\u1bcf\u1bd0"+ + "\u0005A\u0000\u0000\u1bd0\u1bd1\u0005R\u0000\u0000\u1bd1\u1bd2\u0005C"+ + "\u0000\u0000\u1bd2\u1bd3\u0005H\u0000\u0000\u1bd3\u1bd4\u0005I\u0000\u0000"+ + "\u1bd4\u1bd5\u0005V\u0000\u0000\u1bd5\u1bd6\u0005E\u0000\u0000\u1bd6\u04be"+ + "\u0001\u0000\u0000\u0000\u1bd7\u1bd8\u0005B\u0000\u0000\u1bd8\u1bd9\u0005"+ + "L\u0000\u0000\u1bd9\u1bda\u0005A\u0000\u0000\u1bda\u1bdb\u0005C\u0000"+ + "\u0000\u1bdb\u1bdc\u0005K\u0000\u0000\u1bdc\u1bdd\u0005H\u0000\u0000\u1bdd"+ + "\u1bde\u0005O\u0000\u0000\u1bde\u1bdf\u0005L\u0000\u0000\u1bdf\u1be0\u0005"+ + "E\u0000\u0000\u1be0\u04c0\u0001\u0000\u0000\u0000\u1be1\u1be2\u0005C\u0000"+ + "\u0000\u1be2\u1be3\u0005S\u0000\u0000\u1be3\u1be4\u0005V\u0000\u0000\u1be4"+ + "\u04c2\u0001\u0000\u0000\u0000\u1be5\u1be6\u0005F\u0000\u0000\u1be6\u1be7"+ + "\u0005E\u0000\u0000\u1be7\u1be8\u0005D\u0000\u0000\u1be8\u1be9\u0005E"+ + "\u0000\u0000\u1be9\u1bea\u0005R\u0000\u0000\u1bea\u1beb\u0005A\u0000\u0000"+ + "\u1beb\u1bec\u0005T\u0000\u0000\u1bec\u1bed\u0005E\u0000\u0000\u1bed\u1bee"+ + "\u0005D\u0000\u0000\u1bee\u04c4\u0001\u0000\u0000\u0000\u1bef\u1bf0\u0005"+ + "I\u0000\u0000\u1bf0\u1bf1\u0005N\u0000\u0000\u1bf1\u1bf2\u0005N\u0000"+ + "\u0000\u1bf2\u1bf3\u0005O\u0000\u0000\u1bf3\u1bf4\u0005D\u0000\u0000\u1bf4"+ + "\u1bf5\u0005B\u0000\u0000\u1bf5\u04c6\u0001\u0000\u0000\u0000\u1bf6\u1bf7"+ + "\u0005M\u0000\u0000\u1bf7\u1bf8\u0005E\u0000\u0000\u1bf8\u1bf9\u0005M"+ + "\u0000\u0000\u1bf9\u1bfa\u0005O\u0000\u0000\u1bfa\u1bfb\u0005R\u0000\u0000"+ + "\u1bfb\u1bfc\u0005Y\u0000\u0000\u1bfc\u04c8\u0001\u0000\u0000\u0000\u1bfd"+ + "\u1bfe\u0005M\u0000\u0000\u1bfe\u1bff\u0005R\u0000\u0000\u1bff\u1c00\u0005"+ + "G\u0000\u0000\u1c00\u1c01\u0005_\u0000\u0000\u1c01\u1c02\u0005M\u0000"+ + "\u0000\u1c02\u1c03\u0005Y\u0000\u0000\u1c03\u1c04\u0005I\u0000\u0000\u1c04"+ + "\u1c05\u0005S\u0000\u0000\u1c05\u1c06\u0005A\u0000\u0000\u1c06\u1c07\u0005"+ + "M\u0000\u0000\u1c07\u04ca\u0001\u0000\u0000\u0000\u1c08\u1c09\u0005M\u0000"+ + "\u0000\u1c09\u1c0a\u0005Y\u0000\u0000\u1c0a\u1c0b\u0005I\u0000\u0000\u1c0b"+ + "\u1c0c\u0005S\u0000\u0000\u1c0c\u1c0d\u0005A\u0000\u0000\u1c0d\u1c0e\u0005"+ + "M\u0000\u0000\u1c0e\u04cc\u0001\u0000\u0000\u0000\u1c0f\u1c10\u0005N\u0000"+ + "\u0000\u1c10\u1c11\u0005D\u0000\u0000\u1c11\u1c12\u0005B\u0000\u0000\u1c12"+ + "\u04ce\u0001\u0000\u0000\u0000\u1c13\u1c14\u0005N\u0000\u0000\u1c14\u1c15"+ + "\u0005D\u0000\u0000\u1c15\u1c16\u0005B\u0000\u0000\u1c16\u1c17\u0005C"+ + "\u0000\u0000\u1c17\u1c18\u0005L\u0000\u0000\u1c18\u1c19\u0005U\u0000\u0000"+ + "\u1c19\u1c1a\u0005S\u0000\u0000\u1c1a\u1c1b\u0005T\u0000\u0000\u1c1b\u1c1c"+ + "\u0005E\u0000\u0000\u1c1c\u1c1d\u0005R\u0000\u0000\u1c1d\u04d0\u0001\u0000"+ + "\u0000\u0000\u1c1e\u1c1f\u0005P\u0000\u0000\u1c1f\u1c20\u0005E\u0000\u0000"+ + "\u1c20\u1c21\u0005R\u0000\u0000\u1c21\u1c22\u0005F\u0000\u0000\u1c22\u1c23"+ + "\u0005O\u0000\u0000\u1c23\u1c24\u0005M\u0000\u0000\u1c24\u1c25\u0005A"+ + "\u0000\u0000\u1c25\u1c26\u0005N\u0000\u0000\u1c26\u1c27\u0005C\u0000\u0000"+ + "\u1c27\u1c28\u0005E\u0000\u0000\u1c28\u1c29\u0005_\u0000\u0000\u1c29\u1c2a"+ + "\u0005S\u0000\u0000\u1c2a\u1c2b\u0005C\u0000\u0000\u1c2b\u1c2c\u0005H"+ + "\u0000\u0000\u1c2c\u1c2d\u0005E\u0000\u0000\u1c2d\u1c2e\u0005M\u0000\u0000"+ + "\u1c2e\u1c2f\u0005A\u0000\u0000\u1c2f\u04d2\u0001\u0000\u0000\u0000\u1c30"+ + "\u1c31\u0005R\u0000\u0000\u1c31\u1c32\u0005E\u0000\u0000\u1c32\u1c33\u0005"+ + "P\u0000\u0000\u1c33\u1c34\u0005E\u0000\u0000\u1c34\u1c35\u0005A\u0000"+ + "\u0000\u1c35\u1c36\u0005T\u0000\u0000\u1c36\u1c37\u0005A\u0000\u0000\u1c37"+ + "\u1c38\u0005B\u0000\u0000\u1c38\u1c39\u0005L\u0000\u0000\u1c39\u1c3a\u0005"+ + "E\u0000\u0000\u1c3a\u04d4\u0001\u0000\u0000\u0000\u1c3b\u1c3c\u0005C\u0000"+ + "\u0000\u1c3c\u1c3d\u0005O\u0000\u0000\u1c3d\u1c3e\u0005M\u0000\u0000\u1c3e"+ + "\u1c3f\u0005M\u0000\u0000\u1c3f\u1c40\u0005I\u0000\u0000\u1c40\u1c41\u0005"+ + "T\u0000\u0000\u1c41\u1c42\u0005T\u0000\u0000\u1c42\u1c43\u0005E\u0000"+ + "\u0000\u1c43\u1c44\u0005D\u0000\u0000\u1c44\u04d6\u0001\u0000\u0000\u0000"+ + "\u1c45\u1c46\u0005U\u0000\u0000\u1c46\u1c47\u0005N\u0000\u0000\u1c47\u1c48"+ + "\u0005C\u0000\u0000\u1c48\u1c49\u0005O\u0000\u0000\u1c49\u1c4a\u0005M"+ + "\u0000\u0000\u1c4a\u1c4b\u0005M\u0000\u0000\u1c4b\u1c4c\u0005I\u0000\u0000"+ + "\u1c4c\u1c4d\u0005T\u0000\u0000\u1c4d\u1c4e\u0005T\u0000\u0000\u1c4e\u1c4f"+ + "\u0005E\u0000\u0000\u1c4f\u1c50\u0005D\u0000\u0000\u1c50\u04d8\u0001\u0000"+ + "\u0000\u0000\u1c51\u1c52\u0005S\u0000\u0000\u1c52\u1c53\u0005E\u0000\u0000"+ + "\u1c53\u1c54\u0005R\u0000\u0000\u1c54\u1c55\u0005I\u0000\u0000\u1c55\u1c56"+ + "\u0005A\u0000\u0000\u1c56\u1c57\u0005L\u0000\u0000\u1c57\u1c58\u0005I"+ + "\u0000\u0000\u1c58\u1c59\u0005Z\u0000\u0000\u1c59\u1c5a\u0005A\u0000\u0000"+ + "\u1c5a\u1c5b\u0005B\u0000\u0000\u1c5b\u1c5c\u0005L\u0000\u0000\u1c5c\u1c5d"+ + "\u0005E\u0000\u0000\u1c5d\u04da\u0001\u0000\u0000\u0000\u1c5e\u1c5f\u0005"+ + "G\u0000\u0000\u1c5f\u1c60\u0005E\u0000\u0000\u1c60\u1c61\u0005O\u0000"+ + "\u0000\u1c61\u1c62\u0005M\u0000\u0000\u1c62\u1c63\u0005E\u0000\u0000\u1c63"+ + "\u1c64\u0005T\u0000\u0000\u1c64\u1c65\u0005R\u0000\u0000\u1c65\u1c66\u0005"+ + "Y\u0000\u0000\u1c66\u1c67\u0005C\u0000\u0000\u1c67\u1c68\u0005O\u0000"+ + "\u0000\u1c68\u1c69\u0005L\u0000\u0000\u1c69\u1c6a\u0005L\u0000\u0000\u1c6a"+ + "\u1c6b\u0005E\u0000\u0000\u1c6b\u1c6c\u0005C\u0000\u0000\u1c6c\u1c6d\u0005"+ + "T\u0000\u0000\u1c6d\u1c6e\u0005I\u0000\u0000\u1c6e\u1c6f\u0005O\u0000"+ + "\u0000\u1c6f\u1c70\u0005N\u0000\u0000\u1c70\u04dc\u0001\u0000\u0000\u0000"+ + "\u1c71\u1c72\u0005L\u0000\u0000\u1c72\u1c73\u0005I\u0000\u0000\u1c73\u1c74"+ + "\u0005N\u0000\u0000\u1c74\u1c75\u0005E\u0000\u0000\u1c75\u1c76\u0005S"+ + "\u0000\u0000\u1c76\u1c77\u0005T\u0000\u0000\u1c77\u1c78\u0005R\u0000\u0000"+ + "\u1c78\u1c79\u0005I\u0000\u0000\u1c79\u1c7a\u0005N\u0000\u0000\u1c7a\u1c7b"+ + "\u0005G\u0000\u0000\u1c7b\u04de\u0001\u0000\u0000\u0000\u1c7c\u1c7d\u0005"+ + "M\u0000\u0000\u1c7d\u1c7e\u0005U\u0000\u0000\u1c7e\u1c7f\u0005L\u0000"+ + "\u0000\u1c7f\u1c80\u0005T\u0000\u0000\u1c80\u1c81\u0005I\u0000\u0000\u1c81"+ + "\u1c82\u0005L\u0000\u0000\u1c82\u1c83\u0005I\u0000\u0000\u1c83\u1c84\u0005"+ + "N\u0000\u0000\u1c84\u1c85\u0005E\u0000\u0000\u1c85\u1c86\u0005S\u0000"+ + "\u0000\u1c86\u1c87\u0005T\u0000\u0000\u1c87\u1c88\u0005R\u0000\u0000\u1c88"+ + "\u1c89\u0005I\u0000\u0000\u1c89\u1c8a\u0005N\u0000\u0000\u1c8a\u1c8b\u0005"+ + "G\u0000\u0000\u1c8b\u04e0\u0001\u0000\u0000\u0000\u1c8c\u1c8d\u0005M\u0000"+ + "\u0000\u1c8d\u1c8e\u0005U\u0000\u0000\u1c8e\u1c8f\u0005L\u0000\u0000\u1c8f"+ + "\u1c90\u0005T\u0000\u0000\u1c90\u1c91\u0005I\u0000\u0000\u1c91\u1c92\u0005"+ + "P\u0000\u0000\u1c92\u1c93\u0005O\u0000\u0000\u1c93\u1c94\u0005I\u0000"+ + "\u0000\u1c94\u1c95\u0005N\u0000\u0000\u1c95\u1c96\u0005T\u0000\u0000\u1c96"+ + "\u04e2\u0001\u0000\u0000\u0000\u1c97\u1c98\u0005M\u0000\u0000\u1c98\u1c99"+ + "\u0005U\u0000\u0000\u1c99\u1c9a\u0005L\u0000\u0000\u1c9a\u1c9b\u0005T"+ + "\u0000\u0000\u1c9b\u1c9c\u0005I\u0000\u0000\u1c9c\u1c9d\u0005P\u0000\u0000"+ + "\u1c9d\u1c9e\u0005O\u0000\u0000\u1c9e\u1c9f\u0005L\u0000\u0000\u1c9f\u1ca0"+ + "\u0005Y\u0000\u0000\u1ca0\u1ca1\u0005G\u0000\u0000\u1ca1\u1ca2\u0005O"+ + "\u0000\u0000\u1ca2\u1ca3\u0005N\u0000\u0000\u1ca3\u04e4\u0001\u0000\u0000"+ + "\u0000\u1ca4\u1ca5\u0005P\u0000\u0000\u1ca5\u1ca6\u0005O\u0000\u0000\u1ca6"+ + "\u1ca7\u0005I\u0000\u0000\u1ca7\u1ca8\u0005N\u0000\u0000\u1ca8\u1ca9\u0005"+ + "T\u0000\u0000\u1ca9\u04e6\u0001\u0000\u0000\u0000\u1caa\u1cab\u0005P\u0000"+ + "\u0000\u1cab\u1cac\u0005O\u0000\u0000\u1cac\u1cad\u0005L\u0000\u0000\u1cad"+ + "\u1cae\u0005Y\u0000\u0000\u1cae\u1caf\u0005G\u0000\u0000\u1caf\u1cb0\u0005"+ + "O\u0000\u0000\u1cb0\u1cb1\u0005N\u0000\u0000\u1cb1\u04e8\u0001\u0000\u0000"+ + "\u0000\u1cb2\u1cb3\u0005A\u0000\u0000\u1cb3\u1cb4\u0005B\u0000\u0000\u1cb4"+ + "\u1cb5\u0005S\u0000\u0000\u1cb5\u04ea\u0001\u0000\u0000\u0000\u1cb6\u1cb7"+ + "\u0005A\u0000\u0000\u1cb7\u1cb8\u0005C\u0000\u0000\u1cb8\u1cb9\u0005O"+ + "\u0000\u0000\u1cb9\u1cba\u0005S\u0000\u0000\u1cba\u04ec\u0001\u0000\u0000"+ + "\u0000\u1cbb\u1cbc\u0005A\u0000\u0000\u1cbc\u1cbd\u0005D\u0000\u0000\u1cbd"+ + "\u1cbe\u0005D\u0000\u0000\u1cbe\u1cbf\u0005D\u0000\u0000\u1cbf\u1cc0\u0005"+ + "A\u0000\u0000\u1cc0\u1cc1\u0005T\u0000\u0000\u1cc1\u1cc2\u0005E\u0000"+ + "\u0000\u1cc2\u04ee\u0001\u0000\u0000\u0000\u1cc3\u1cc4\u0005A\u0000\u0000"+ + "\u1cc4\u1cc5\u0005D\u0000\u0000\u1cc5\u1cc6\u0005D\u0000\u0000\u1cc6\u1cc7"+ + "\u0005T\u0000\u0000\u1cc7\u1cc8\u0005I\u0000\u0000\u1cc8\u1cc9\u0005M"+ + "\u0000\u0000\u1cc9\u1cca\u0005E\u0000\u0000\u1cca\u04f0\u0001\u0000\u0000"+ + "\u0000\u1ccb\u1ccc\u0005A\u0000\u0000\u1ccc\u1ccd\u0005E\u0000\u0000\u1ccd"+ + "\u1cce\u0005S\u0000\u0000\u1cce\u1ccf\u0005_\u0000\u0000\u1ccf\u1cd0\u0005"+ + "D\u0000\u0000\u1cd0\u1cd1\u0005E\u0000\u0000\u1cd1\u1cd2\u0005C\u0000"+ + "\u0000\u1cd2\u1cd3\u0005R\u0000\u0000\u1cd3\u1cd4\u0005Y\u0000\u0000\u1cd4"+ + "\u1cd5\u0005P\u0000\u0000\u1cd5\u1cd6\u0005T\u0000\u0000\u1cd6\u04f2\u0001"+ + "\u0000\u0000\u0000\u1cd7\u1cd8\u0005A\u0000\u0000\u1cd8\u1cd9\u0005E\u0000"+ + "\u0000\u1cd9\u1cda\u0005S\u0000\u0000\u1cda\u1cdb\u0005_\u0000\u0000\u1cdb"+ + "\u1cdc\u0005E\u0000\u0000\u1cdc\u1cdd\u0005N\u0000\u0000\u1cdd\u1cde\u0005"+ + "C\u0000\u0000\u1cde\u1cdf\u0005R\u0000\u0000\u1cdf\u1ce0\u0005Y\u0000"+ + "\u0000\u1ce0\u1ce1\u0005P\u0000\u0000\u1ce1\u1ce2\u0005T\u0000\u0000\u1ce2"+ + "\u04f4\u0001\u0000\u0000\u0000\u1ce3\u1ce4\u0005A\u0000\u0000\u1ce4\u1ce5"+ + "\u0005R\u0000\u0000\u1ce5\u1ce6\u0005E\u0000\u0000\u1ce6\u1ce7\u0005A"+ + "\u0000\u0000\u1ce7\u04f6\u0001\u0000\u0000\u0000\u1ce8\u1ce9\u0005A\u0000"+ + "\u0000\u1ce9\u1cea\u0005S\u0000\u0000\u1cea\u1ceb\u0005B\u0000\u0000\u1ceb"+ + "\u1cec\u0005I\u0000\u0000\u1cec\u1ced\u0005N\u0000\u0000\u1ced\u1cee\u0005"+ + "A\u0000\u0000\u1cee\u1cef\u0005R\u0000\u0000\u1cef\u1cf0\u0005Y\u0000"+ + "\u0000\u1cf0\u04f8\u0001\u0000\u0000\u0000\u1cf1\u1cf2\u0005A\u0000\u0000"+ + "\u1cf2\u1cf3\u0005S\u0000\u0000\u1cf3\u1cf4\u0005I\u0000\u0000\u1cf4\u1cf5"+ + "\u0005N\u0000\u0000\u1cf5\u04fa\u0001\u0000\u0000\u0000\u1cf6\u1cf7\u0005"+ + "A\u0000\u0000\u1cf7\u1cf8\u0005S\u0000\u0000\u1cf8\u1cf9\u0005T\u0000"+ + "\u0000\u1cf9\u1cfa\u0005E\u0000\u0000\u1cfa\u1cfb\u0005X\u0000\u0000\u1cfb"+ + "\u1cfc\u0005T\u0000\u0000\u1cfc\u04fc\u0001\u0000\u0000\u0000\u1cfd\u1cfe"+ + "\u0005A\u0000\u0000\u1cfe\u1cff\u0005S\u0000\u0000\u1cff\u1d00\u0005W"+ + "\u0000\u0000\u1d00\u1d01\u0005K\u0000\u0000\u1d01\u1d02\u0005B\u0000\u0000"+ + "\u1d02\u04fe\u0001\u0000\u0000\u0000\u1d03\u1d04\u0005A\u0000\u0000\u1d04"+ + "\u1d05\u0005S\u0000\u0000\u1d05\u1d06\u0005W\u0000\u0000\u1d06\u1d07\u0005"+ + "K\u0000\u0000\u1d07\u1d08\u0005T\u0000\u0000\u1d08\u0500\u0001\u0000\u0000"+ + "\u0000\u1d09\u1d0a\u0005A\u0000\u0000\u1d0a\u1d0b\u0005S\u0000\u0000\u1d0b"+ + "\u1d0c\u0005Y\u0000\u0000\u1d0c\u1d0d\u0005M\u0000\u0000\u1d0d\u1d0e\u0005"+ + "M\u0000\u0000\u1d0e\u1d0f\u0005E\u0000\u0000\u1d0f\u1d10\u0005T\u0000"+ + "\u0000\u1d10\u1d11\u0005R\u0000\u0000\u1d11\u1d12\u0005I\u0000\u0000\u1d12"+ + "\u1d13\u0005C\u0000\u0000\u1d13\u1d14\u0005_\u0000\u0000\u1d14\u1d15\u0005"+ + "D\u0000\u0000\u1d15\u1d16\u0005E\u0000\u0000\u1d16\u1d17\u0005C\u0000"+ + "\u0000\u1d17\u1d18\u0005R\u0000\u0000\u1d18\u1d19\u0005Y\u0000\u0000\u1d19"+ + "\u1d1a\u0005P\u0000\u0000\u1d1a\u1d1b\u0005T\u0000\u0000\u1d1b\u0502\u0001"+ + "\u0000\u0000\u0000\u1d1c\u1d1d\u0005A\u0000\u0000\u1d1d\u1d1e\u0005S\u0000"+ + "\u0000\u1d1e\u1d1f\u0005Y\u0000\u0000\u1d1f\u1d20\u0005M\u0000\u0000\u1d20"+ + "\u1d21\u0005M\u0000\u0000\u1d21\u1d22\u0005E\u0000\u0000\u1d22\u1d23\u0005"+ + "T\u0000\u0000\u1d23\u1d24\u0005R\u0000\u0000\u1d24\u1d25\u0005I\u0000"+ + "\u0000\u1d25\u1d26\u0005C\u0000\u0000\u1d26\u1d27\u0005_\u0000\u0000\u1d27"+ + "\u1d28\u0005D\u0000\u0000\u1d28\u1d29\u0005E\u0000\u0000\u1d29\u1d2a\u0005"+ + "R\u0000\u0000\u1d2a\u1d2b\u0005I\u0000\u0000\u1d2b\u1d2c\u0005V\u0000"+ + "\u0000\u1d2c\u1d2d\u0005E\u0000\u0000\u1d2d\u0504\u0001\u0000\u0000\u0000"+ + "\u1d2e\u1d2f\u0005A\u0000\u0000\u1d2f\u1d30\u0005S\u0000\u0000\u1d30\u1d31"+ + "\u0005Y\u0000\u0000\u1d31\u1d32\u0005M\u0000\u0000\u1d32\u1d33\u0005M"+ + "\u0000\u0000\u1d33\u1d34\u0005E\u0000\u0000\u1d34\u1d35\u0005T\u0000\u0000"+ + "\u1d35\u1d36\u0005R\u0000\u0000\u1d36\u1d37\u0005I\u0000\u0000\u1d37\u1d38"+ + "\u0005C\u0000\u0000\u1d38\u1d39\u0005_\u0000\u0000\u1d39\u1d3a\u0005E"+ + "\u0000\u0000\u1d3a\u1d3b\u0005N\u0000\u0000\u1d3b\u1d3c\u0005C\u0000\u0000"+ + "\u1d3c\u1d3d\u0005R\u0000\u0000\u1d3d\u1d3e\u0005Y\u0000\u0000\u1d3e\u1d3f"+ + "\u0005P\u0000\u0000\u1d3f\u1d40\u0005T\u0000\u0000\u1d40\u0506\u0001\u0000"+ + "\u0000\u0000\u1d41\u1d42\u0005A\u0000\u0000\u1d42\u1d43\u0005S\u0000\u0000"+ + "\u1d43\u1d44\u0005Y\u0000\u0000\u1d44\u1d45\u0005M\u0000\u0000\u1d45\u1d46"+ + "\u0005M\u0000\u0000\u1d46\u1d47\u0005E\u0000\u0000\u1d47\u1d48\u0005T"+ + "\u0000\u0000\u1d48\u1d49\u0005R\u0000\u0000\u1d49\u1d4a\u0005I\u0000\u0000"+ + "\u1d4a\u1d4b\u0005C\u0000\u0000\u1d4b\u1d4c\u0005_\u0000\u0000\u1d4c\u1d4d"+ + "\u0005S\u0000\u0000\u1d4d\u1d4e\u0005I\u0000\u0000\u1d4e\u1d4f\u0005G"+ + "\u0000\u0000\u1d4f\u1d50\u0005N\u0000\u0000\u1d50\u0508\u0001\u0000\u0000"+ + "\u0000\u1d51\u1d52\u0005A\u0000\u0000\u1d52\u1d53\u0005S\u0000\u0000\u1d53"+ + "\u1d54\u0005Y\u0000\u0000\u1d54\u1d55\u0005M\u0000\u0000\u1d55\u1d56\u0005"+ + "M\u0000\u0000\u1d56\u1d57\u0005E\u0000\u0000\u1d57\u1d58\u0005T\u0000"+ + "\u0000\u1d58\u1d59\u0005R\u0000\u0000\u1d59\u1d5a\u0005I\u0000\u0000\u1d5a"+ + "\u1d5b\u0005C\u0000\u0000\u1d5b\u1d5c\u0005_\u0000\u0000\u1d5c\u1d5d\u0005"+ + "V\u0000\u0000\u1d5d\u1d5e\u0005E\u0000\u0000\u1d5e\u1d5f\u0005R\u0000"+ + "\u0000\u1d5f\u1d60\u0005I\u0000\u0000\u1d60\u1d61\u0005F\u0000\u0000\u1d61"+ + "\u1d62\u0005Y\u0000\u0000\u1d62\u050a\u0001\u0000\u0000\u0000\u1d63\u1d64"+ + "\u0005A\u0000\u0000\u1d64\u1d65\u0005T\u0000\u0000\u1d65\u1d66\u0005A"+ + "\u0000\u0000\u1d66\u1d67\u0005N\u0000\u0000\u1d67\u050c\u0001\u0000\u0000"+ + "\u0000\u1d68\u1d69\u0005A\u0000\u0000\u1d69\u1d6a\u0005T\u0000\u0000\u1d6a"+ + "\u1d6b\u0005A\u0000\u0000\u1d6b\u1d6c\u0005N\u0000\u0000\u1d6c\u1d6d\u0005"+ + "2\u0000\u0000\u1d6d\u050e\u0001\u0000\u0000\u0000\u1d6e\u1d6f\u0005B\u0000"+ + "\u0000\u1d6f\u1d70\u0005E\u0000\u0000\u1d70\u1d71\u0005N\u0000\u0000\u1d71"+ + "\u1d72\u0005C\u0000\u0000\u1d72\u1d73\u0005H\u0000\u0000\u1d73\u1d74\u0005"+ + "M\u0000\u0000\u1d74\u1d75\u0005A\u0000\u0000\u1d75\u1d76\u0005R\u0000"+ + "\u0000\u1d76\u1d77\u0005K\u0000\u0000\u1d77\u0510\u0001\u0000\u0000\u0000"+ + "\u1d78\u1d79\u0005B\u0000\u0000\u1d79\u1d7a\u0005I\u0000\u0000\u1d7a\u1d7b"+ + "\u0005N\u0000\u0000\u1d7b\u0512\u0001\u0000\u0000\u0000\u1d7c\u1d7d\u0005"+ + "B\u0000\u0000\u1d7d\u1d7e\u0005I\u0000\u0000\u1d7e\u1d7f\u0005T\u0000"+ + "\u0000\u1d7f\u1d80\u0005_\u0000\u0000\u1d80\u1d81\u0005C\u0000\u0000\u1d81"+ + "\u1d82\u0005O\u0000\u0000\u1d82\u1d83\u0005U\u0000\u0000\u1d83\u1d84\u0005"+ + "N\u0000\u0000\u1d84\u1d85\u0005T\u0000\u0000\u1d85\u0514\u0001\u0000\u0000"+ + "\u0000\u1d86\u1d87\u0005B\u0000\u0000\u1d87\u1d88\u0005I\u0000\u0000\u1d88"+ + "\u1d89\u0005T\u0000\u0000\u1d89\u1d8a\u0005_\u0000\u0000\u1d8a\u1d8b\u0005"+ + "L\u0000\u0000\u1d8b\u1d8c\u0005E\u0000\u0000\u1d8c\u1d8d\u0005N\u0000"+ + "\u0000\u1d8d\u1d8e\u0005G\u0000\u0000\u1d8e\u1d8f\u0005T\u0000\u0000\u1d8f"+ + "\u1d90\u0005H\u0000\u0000\u1d90\u0516\u0001\u0000\u0000\u0000\u1d91\u1d92"+ + "\u0005B\u0000\u0000\u1d92\u1d93\u0005U\u0000\u0000\u1d93\u1d94\u0005F"+ + "\u0000\u0000\u1d94\u1d95\u0005F\u0000\u0000\u1d95\u1d96\u0005E\u0000\u0000"+ + "\u1d96\u1d97\u0005R\u0000\u0000\u1d97\u0518\u0001\u0000\u0000\u0000\u1d98"+ + "\u1d99\u0005C\u0000\u0000\u1d99\u1d9a\u0005E\u0000\u0000\u1d9a\u1d9b\u0005"+ + "I\u0000\u0000\u1d9b\u1d9c\u0005L\u0000\u0000\u1d9c\u051a\u0001\u0000\u0000"+ + "\u0000\u1d9d\u1d9e\u0005C\u0000\u0000\u1d9e\u1d9f\u0005E\u0000\u0000\u1d9f"+ + "\u1da0\u0005I\u0000\u0000\u1da0\u1da1\u0005L\u0000\u0000\u1da1\u1da2\u0005"+ + "I\u0000\u0000\u1da2\u1da3\u0005N\u0000\u0000\u1da3\u1da4\u0005G\u0000"+ + "\u0000\u1da4\u051c\u0001\u0000\u0000\u0000\u1da5\u1da6\u0005C\u0000\u0000"+ + "\u1da6\u1da7\u0005E\u0000\u0000\u1da7\u1da8\u0005N\u0000\u0000\u1da8\u1da9"+ + "\u0005T\u0000\u0000\u1da9\u1daa\u0005R\u0000\u0000\u1daa\u1dab\u0005O"+ + "\u0000\u0000\u1dab\u1dac\u0005I\u0000\u0000\u1dac\u1dad\u0005D\u0000\u0000"+ + "\u1dad\u051e\u0001\u0000\u0000\u0000\u1dae\u1daf\u0005C\u0000\u0000\u1daf"+ + "\u1db0\u0005H\u0000\u0000\u1db0\u1db1\u0005A\u0000\u0000\u1db1\u1db2\u0005"+ + "R\u0000\u0000\u1db2\u1db3\u0005A\u0000\u0000\u1db3\u1db4\u0005C\u0000"+ + "\u0000\u1db4\u1db5\u0005T\u0000\u0000\u1db5\u1db6\u0005E\u0000\u0000\u1db6"+ + "\u1db7\u0005R\u0000\u0000\u1db7\u1db8\u0005_\u0000\u0000\u1db8\u1db9\u0005"+ + "L\u0000\u0000\u1db9\u1dba\u0005E\u0000\u0000\u1dba\u1dbb\u0005N\u0000"+ + "\u0000\u1dbb\u1dbc\u0005G\u0000\u0000\u1dbc\u1dbd\u0005T\u0000\u0000\u1dbd"+ + "\u1dbe\u0005H\u0000\u0000\u1dbe\u0520\u0001\u0000\u0000\u0000\u1dbf\u1dc0"+ + "\u0005C\u0000\u0000\u1dc0\u1dc1\u0005H\u0000\u0000\u1dc1\u1dc2\u0005A"+ + "\u0000\u0000\u1dc2\u1dc3\u0005R\u0000\u0000\u1dc3\u1dc4\u0005S\u0000\u0000"+ + "\u1dc4\u1dc5\u0005E\u0000\u0000\u1dc5\u1dc6\u0005T\u0000\u0000\u1dc6\u0522"+ + "\u0001\u0000\u0000\u0000\u1dc7\u1dc8\u0005C\u0000\u0000\u1dc8\u1dc9\u0005"+ + "H\u0000\u0000\u1dc9\u1dca\u0005A\u0000\u0000\u1dca\u1dcb\u0005R\u0000"+ + "\u0000\u1dcb\u1dcc\u0005_\u0000\u0000\u1dcc\u1dcd\u0005L\u0000\u0000\u1dcd"+ + "\u1dce\u0005E\u0000\u0000\u1dce\u1dcf\u0005N\u0000\u0000\u1dcf\u1dd0\u0005"+ + "G\u0000\u0000\u1dd0\u1dd1\u0005T\u0000\u0000\u1dd1\u1dd2\u0005H\u0000"+ + "\u0000\u1dd2\u0524\u0001\u0000\u0000\u0000\u1dd3\u1dd4\u0005C\u0000\u0000"+ + "\u1dd4\u1dd5\u0005O\u0000\u0000\u1dd5\u1dd6\u0005E\u0000\u0000\u1dd6\u1dd7"+ + "\u0005R\u0000\u0000\u1dd7\u1dd8\u0005C\u0000\u0000\u1dd8\u1dd9\u0005I"+ + "\u0000\u0000\u1dd9\u1dda\u0005B\u0000\u0000\u1dda\u1ddb\u0005I\u0000\u0000"+ + "\u1ddb\u1ddc\u0005L\u0000\u0000\u1ddc\u1ddd\u0005I\u0000\u0000\u1ddd\u1dde"+ + "\u0005T\u0000\u0000\u1dde\u1ddf\u0005Y\u0000\u0000\u1ddf\u0526\u0001\u0000"+ + "\u0000\u0000\u1de0\u1de1\u0005C\u0000\u0000\u1de1\u1de2\u0005O\u0000\u0000"+ + "\u1de2\u1de3\u0005L\u0000\u0000\u1de3\u1de4\u0005L\u0000\u0000\u1de4\u1de5"+ + "\u0005A\u0000\u0000\u1de5\u1de6\u0005T\u0000\u0000\u1de6\u1de7\u0005I"+ + "\u0000\u0000\u1de7\u1de8\u0005O\u0000\u0000\u1de8\u1de9\u0005N\u0000\u0000"+ + "\u1de9\u0528\u0001\u0000\u0000\u0000\u1dea\u1deb\u0005C\u0000\u0000\u1deb"+ + "\u1dec\u0005O\u0000\u0000\u1dec\u1ded\u0005M\u0000\u0000\u1ded\u1dee\u0005"+ + "P\u0000\u0000\u1dee\u1def\u0005R\u0000\u0000\u1def\u1df0\u0005E\u0000"+ + "\u0000\u1df0\u1df1\u0005S\u0000\u0000\u1df1\u1df2\u0005S\u0000\u0000\u1df2"+ + "\u052a\u0001\u0000\u0000\u0000\u1df3\u1df4\u0005C\u0000\u0000\u1df4\u1df5"+ + "\u0005O\u0000\u0000\u1df5\u1df6\u0005N\u0000\u0000\u1df6\u1df7\u0005C"+ + "\u0000\u0000\u1df7\u1df8\u0005A\u0000\u0000\u1df8\u1df9\u0005T\u0000\u0000"+ + "\u1df9\u052c\u0001\u0000\u0000\u0000\u1dfa\u1dfb\u0005C\u0000\u0000\u1dfb"+ + "\u1dfc\u0005O\u0000\u0000\u1dfc\u1dfd\u0005N\u0000\u0000\u1dfd\u1dfe\u0005"+ + "C\u0000\u0000\u1dfe\u1dff\u0005A\u0000\u0000\u1dff\u1e00\u0005T\u0000"+ + "\u0000\u1e00\u1e01\u0005_\u0000\u0000\u1e01\u1e02\u0005W\u0000\u0000\u1e02"+ + "\u1e03\u0005S\u0000\u0000\u1e03\u052e\u0001\u0000\u0000\u0000\u1e04\u1e05"+ + "\u0005C\u0000\u0000\u1e05\u1e06\u0005O\u0000\u0000\u1e06\u1e07\u0005N"+ + "\u0000\u0000\u1e07\u1e08\u0005N\u0000\u0000\u1e08\u1e09\u0005E\u0000\u0000"+ + "\u1e09\u1e0a\u0005C\u0000\u0000\u1e0a\u1e0b\u0005T\u0000\u0000\u1e0b\u1e0c"+ + "\u0005I\u0000\u0000\u1e0c\u1e0d\u0005O\u0000\u0000\u1e0d\u1e0e\u0005N"+ + "\u0000\u0000\u1e0e\u1e0f\u0005_\u0000\u0000\u1e0f\u1e10\u0005I\u0000\u0000"+ + "\u1e10\u1e11\u0005D\u0000\u0000\u1e11\u0530\u0001\u0000\u0000\u0000\u1e12"+ + "\u1e13\u0005C\u0000\u0000\u1e13\u1e14\u0005O\u0000\u0000\u1e14\u1e15\u0005"+ + "N\u0000\u0000\u1e15\u1e16\u0005V\u0000\u0000\u1e16\u0532\u0001\u0000\u0000"+ + "\u0000\u1e17\u1e18\u0005C\u0000\u0000\u1e18\u1e19\u0005O\u0000\u0000\u1e19"+ + "\u1e1a\u0005N\u0000\u0000\u1e1a\u1e1b\u0005V\u0000\u0000\u1e1b\u1e1c\u0005"+ + "E\u0000\u0000\u1e1c\u1e1d\u0005R\u0000\u0000\u1e1d\u1e1e\u0005T\u0000"+ + "\u0000\u1e1e\u1e1f\u0005_\u0000\u0000\u1e1f\u1e20\u0005T\u0000\u0000\u1e20"+ + "\u1e21\u0005Z\u0000\u0000\u1e21\u0534\u0001\u0000\u0000\u0000\u1e22\u1e23"+ + "\u0005C\u0000\u0000\u1e23\u1e24\u0005O\u0000\u0000\u1e24\u1e25\u0005S"+ + "\u0000\u0000\u1e25\u0536\u0001\u0000\u0000\u0000\u1e26\u1e27\u0005C\u0000"+ + "\u0000\u1e27\u1e28\u0005O\u0000\u0000\u1e28\u1e29\u0005T\u0000\u0000\u1e29"+ + "\u0538\u0001\u0000\u0000\u0000\u1e2a\u1e2b\u0005C\u0000\u0000\u1e2b\u1e2c"+ + "\u0005R\u0000\u0000\u1e2c\u1e2d\u0005C\u0000\u0000\u1e2d\u1e2e\u00053"+ + "\u0000\u0000\u1e2e\u1e2f\u00052\u0000\u0000\u1e2f\u053a\u0001\u0000\u0000"+ + "\u0000\u1e30\u1e31\u0005C\u0000\u0000\u1e31\u1e32\u0005R\u0000\u0000\u1e32"+ + "\u1e33\u0005E\u0000\u0000\u1e33\u1e34\u0005A\u0000\u0000\u1e34\u1e35\u0005"+ + "T\u0000\u0000\u1e35\u1e36\u0005E\u0000\u0000\u1e36\u1e37\u0005_\u0000"+ + "\u0000\u1e37\u1e38\u0005A\u0000\u0000\u1e38\u1e39\u0005S\u0000\u0000\u1e39"+ + "\u1e3a\u0005Y\u0000\u0000\u1e3a\u1e3b\u0005M\u0000\u0000\u1e3b\u1e3c\u0005"+ + "M\u0000\u0000\u1e3c\u1e3d\u0005E\u0000\u0000\u1e3d\u1e3e\u0005T\u0000"+ + "\u0000\u1e3e\u1e3f\u0005R\u0000\u0000\u1e3f\u1e40\u0005I\u0000\u0000\u1e40"+ + "\u1e41\u0005C\u0000\u0000\u1e41\u1e42\u0005_\u0000\u0000\u1e42\u1e43\u0005"+ + "P\u0000\u0000\u1e43\u1e44\u0005R\u0000\u0000\u1e44\u1e45\u0005I\u0000"+ + "\u0000\u1e45\u1e46\u0005V\u0000\u0000\u1e46\u1e47\u0005_\u0000\u0000\u1e47"+ + "\u1e48\u0005K\u0000\u0000\u1e48\u1e49\u0005E\u0000\u0000\u1e49\u1e4a\u0005"+ + "Y\u0000\u0000\u1e4a\u053c\u0001\u0000\u0000\u0000\u1e4b\u1e4c\u0005C\u0000"+ + "\u0000\u1e4c\u1e4d\u0005R\u0000\u0000\u1e4d\u1e4e\u0005E\u0000\u0000\u1e4e"+ + "\u1e4f\u0005A\u0000\u0000\u1e4f\u1e50\u0005T\u0000\u0000\u1e50\u1e51\u0005"+ + "E\u0000\u0000\u1e51\u1e52\u0005_\u0000\u0000\u1e52\u1e53\u0005A\u0000"+ + "\u0000\u1e53\u1e54\u0005S\u0000\u0000\u1e54\u1e55\u0005Y\u0000\u0000\u1e55"+ + "\u1e56\u0005M\u0000\u0000\u1e56\u1e57\u0005M\u0000\u0000\u1e57\u1e58\u0005"+ + "E\u0000\u0000\u1e58\u1e59\u0005T\u0000\u0000\u1e59\u1e5a\u0005R\u0000"+ + "\u0000\u1e5a\u1e5b\u0005I\u0000\u0000\u1e5b\u1e5c\u0005C\u0000\u0000\u1e5c"+ + "\u1e5d\u0005_\u0000\u0000\u1e5d\u1e5e\u0005P\u0000\u0000\u1e5e\u1e5f\u0005"+ + "U\u0000\u0000\u1e5f\u1e60\u0005B\u0000\u0000\u1e60\u1e61\u0005_\u0000"+ + "\u0000\u1e61\u1e62\u0005K\u0000\u0000\u1e62\u1e63\u0005E\u0000\u0000\u1e63"+ + "\u1e64\u0005Y\u0000\u0000\u1e64\u053e\u0001\u0000\u0000\u0000\u1e65\u1e66"+ + "\u0005C\u0000\u0000\u1e66\u1e67\u0005R\u0000\u0000\u1e67\u1e68\u0005E"+ + "\u0000\u0000\u1e68\u1e69\u0005A\u0000\u0000\u1e69\u1e6a\u0005T\u0000\u0000"+ + "\u1e6a\u1e6b\u0005E\u0000\u0000\u1e6b\u1e6c\u0005_\u0000\u0000\u1e6c\u1e6d"+ + "\u0005D\u0000\u0000\u1e6d\u1e6e\u0005H\u0000\u0000\u1e6e\u1e6f\u0005_"+ + "\u0000\u0000\u1e6f\u1e70\u0005P\u0000\u0000\u1e70\u1e71\u0005A\u0000\u0000"+ + "\u1e71\u1e72\u0005R\u0000\u0000\u1e72\u1e73\u0005A\u0000\u0000\u1e73\u1e74"+ + "\u0005M\u0000\u0000\u1e74\u1e75\u0005E\u0000\u0000\u1e75\u1e76\u0005T"+ + "\u0000\u0000\u1e76\u1e77\u0005E\u0000\u0000\u1e77\u1e78\u0005R\u0000\u0000"+ + "\u1e78\u1e79\u0005S\u0000\u0000\u1e79\u0540\u0001\u0000\u0000\u0000\u1e7a"+ + "\u1e7b\u0005C\u0000\u0000\u1e7b\u1e7c\u0005R\u0000\u0000\u1e7c\u1e7d\u0005"+ + "E\u0000\u0000\u1e7d\u1e7e\u0005A\u0000\u0000\u1e7e\u1e7f\u0005T\u0000"+ + "\u0000\u1e7f\u1e80\u0005E\u0000\u0000\u1e80\u1e81\u0005_\u0000\u0000\u1e81"+ + "\u1e82\u0005D\u0000\u0000\u1e82\u1e83\u0005I\u0000\u0000\u1e83\u1e84\u0005"+ + "G\u0000\u0000\u1e84\u1e85\u0005E\u0000\u0000\u1e85\u1e86\u0005S\u0000"+ + "\u0000\u1e86\u1e87\u0005T\u0000\u0000\u1e87\u0542\u0001\u0000\u0000\u0000"+ + "\u1e88\u1e89\u0005C\u0000\u0000\u1e89\u1e8a\u0005R\u0000\u0000\u1e8a\u1e8b"+ + "\u0005O\u0000\u0000\u1e8b\u1e8c\u0005S\u0000\u0000\u1e8c\u1e8d\u0005S"+ + "\u0000\u0000\u1e8d\u1e8e\u0005E\u0000\u0000\u1e8e\u1e8f\u0005S\u0000\u0000"+ + "\u1e8f\u0544\u0001\u0000\u0000\u0000\u1e90\u1e91\u0005D\u0000\u0000\u1e91"+ + "\u1e92\u0005A\u0000\u0000\u1e92\u1e93\u0005T\u0000\u0000\u1e93\u1e94\u0005"+ + "E\u0000\u0000\u1e94\u1e95\u0005D\u0000\u0000\u1e95\u1e96\u0005I\u0000"+ + "\u0000\u1e96\u1e97\u0005F\u0000\u0000\u1e97\u1e98\u0005F\u0000\u0000\u1e98"+ + "\u0546\u0001\u0000\u0000\u0000\u1e99\u1e9a\u0005D\u0000\u0000\u1e9a\u1e9b"+ + "\u0005A\u0000\u0000\u1e9b\u1e9c\u0005T\u0000\u0000\u1e9c\u1e9d\u0005E"+ + "\u0000\u0000\u1e9d\u1e9e\u0005_\u0000\u0000\u1e9e\u1e9f\u0005F\u0000\u0000"+ + "\u1e9f\u1ea0\u0005O\u0000\u0000\u1ea0\u1ea1\u0005R\u0000\u0000\u1ea1\u1ea2"+ + "\u0005M\u0000\u0000\u1ea2\u1ea3\u0005A\u0000\u0000\u1ea3\u1ea4\u0005T"+ + "\u0000\u0000\u1ea4\u0548\u0001\u0000\u0000\u0000\u1ea5\u1ea6\u0005D\u0000"+ + "\u0000\u1ea6\u1ea7\u0005A\u0000\u0000\u1ea7\u1ea8\u0005Y\u0000\u0000\u1ea8"+ + "\u1ea9\u0005N\u0000\u0000\u1ea9\u1eaa\u0005A\u0000\u0000\u1eaa\u1eab\u0005"+ + "M\u0000\u0000\u1eab\u1eac\u0005E\u0000\u0000\u1eac\u054a\u0001\u0000\u0000"+ + "\u0000\u1ead\u1eae\u0005D\u0000\u0000\u1eae\u1eaf\u0005A\u0000\u0000\u1eaf"+ + "\u1eb0\u0005Y\u0000\u0000\u1eb0\u1eb1\u0005O\u0000\u0000\u1eb1\u1eb2\u0005"+ + "F\u0000\u0000\u1eb2\u1eb3\u0005M\u0000\u0000\u1eb3\u1eb4\u0005O\u0000"+ + "\u0000\u1eb4\u1eb5\u0005N\u0000\u0000\u1eb5\u1eb6\u0005T\u0000\u0000\u1eb6"+ + "\u1eb7\u0005H\u0000\u0000\u1eb7\u054c\u0001\u0000\u0000\u0000\u1eb8\u1eb9"+ + "\u0005D\u0000\u0000\u1eb9\u1eba\u0005A\u0000\u0000\u1eba\u1ebb\u0005Y"+ + "\u0000\u0000\u1ebb\u1ebc\u0005O\u0000\u0000\u1ebc\u1ebd\u0005F\u0000\u0000"+ + "\u1ebd\u1ebe\u0005W\u0000\u0000\u1ebe\u1ebf\u0005E\u0000\u0000\u1ebf\u1ec0"+ + "\u0005E\u0000\u0000\u1ec0\u1ec1\u0005K\u0000\u0000\u1ec1\u054e\u0001\u0000"+ + "\u0000\u0000\u1ec2\u1ec3\u0005D\u0000\u0000\u1ec3\u1ec4\u0005A\u0000\u0000"+ + "\u1ec4\u1ec5\u0005Y\u0000\u0000\u1ec5\u1ec6\u0005O\u0000\u0000\u1ec6\u1ec7"+ + "\u0005F\u0000\u0000\u1ec7\u1ec8\u0005Y\u0000\u0000\u1ec8\u1ec9\u0005E"+ + "\u0000\u0000\u1ec9\u1eca\u0005A\u0000\u0000\u1eca\u1ecb\u0005R\u0000\u0000"+ + "\u1ecb\u0550\u0001\u0000\u0000\u0000\u1ecc\u1ecd\u0005D\u0000\u0000\u1ecd"+ + "\u1ece\u0005E\u0000\u0000\u1ece\u1ecf\u0005C\u0000\u0000\u1ecf\u1ed0\u0005"+ + "O\u0000\u0000\u1ed0\u1ed1\u0005D\u0000\u0000\u1ed1\u1ed2\u0005E\u0000"+ + "\u0000\u1ed2\u0552\u0001\u0000\u0000\u0000\u1ed3\u1ed4\u0005D\u0000\u0000"+ + "\u1ed4\u1ed5\u0005E\u0000\u0000\u1ed5\u1ed6\u0005G\u0000\u0000\u1ed6\u1ed7"+ + "\u0005R\u0000\u0000\u1ed7\u1ed8\u0005E\u0000\u0000\u1ed8\u1ed9\u0005E"+ + "\u0000\u0000\u1ed9\u1eda\u0005S\u0000\u0000\u1eda\u0554\u0001\u0000\u0000"+ + "\u0000\u1edb\u1edc\u0005D\u0000\u0000\u1edc\u1edd\u0005E\u0000\u0000\u1edd"+ + "\u1ede\u0005S\u0000\u0000\u1ede\u1edf\u0005_\u0000\u0000\u1edf\u1ee0\u0005"+ + "D\u0000\u0000\u1ee0\u1ee1\u0005E\u0000\u0000\u1ee1\u1ee2\u0005C\u0000"+ + "\u0000\u1ee2\u1ee3\u0005R\u0000\u0000\u1ee3\u1ee4\u0005Y\u0000\u0000\u1ee4"+ + "\u1ee5\u0005P\u0000\u0000\u1ee5\u1ee6\u0005T\u0000\u0000\u1ee6\u0556\u0001"+ + "\u0000\u0000\u0000\u1ee7\u1ee8\u0005D\u0000\u0000\u1ee8\u1ee9\u0005E\u0000"+ + "\u0000\u1ee9\u1eea\u0005S\u0000\u0000\u1eea\u1eeb\u0005_\u0000\u0000\u1eeb"+ + "\u1eec\u0005E\u0000\u0000\u1eec\u1eed\u0005N\u0000\u0000\u1eed\u1eee\u0005"+ + "C\u0000\u0000\u1eee\u1eef\u0005R\u0000\u0000\u1eef\u1ef0\u0005Y\u0000"+ + "\u0000\u1ef0\u1ef1\u0005P\u0000\u0000\u1ef1\u1ef2\u0005T\u0000\u0000\u1ef2"+ + "\u0558\u0001\u0000\u0000\u0000\u1ef3\u1ef4\u0005D\u0000\u0000\u1ef4\u1ef5"+ + "\u0005I\u0000\u0000\u1ef5\u1ef6\u0005M\u0000\u0000\u1ef6\u1ef7\u0005E"+ + "\u0000\u0000\u1ef7\u1ef8\u0005N\u0000\u0000\u1ef8\u1ef9\u0005S\u0000\u0000"+ + "\u1ef9\u1efa\u0005I\u0000\u0000\u1efa\u1efb\u0005O\u0000\u0000\u1efb\u1efc"+ + "\u0005N\u0000\u0000\u1efc\u055a\u0001\u0000\u0000\u0000\u1efd\u1efe\u0005"+ + "D\u0000\u0000\u1efe\u1eff\u0005I\u0000\u0000\u1eff\u1f00\u0005S\u0000"+ + "\u0000\u1f00\u1f01\u0005J\u0000\u0000\u1f01\u1f02\u0005O\u0000\u0000\u1f02"+ + "\u1f03\u0005I\u0000\u0000\u1f03\u1f04\u0005N\u0000\u0000\u1f04\u1f05\u0005"+ + "T\u0000\u0000\u1f05\u055c\u0001\u0000\u0000\u0000\u1f06\u1f07\u0005E\u0000"+ + "\u0000\u1f07\u1f08\u0005L\u0000\u0000\u1f08\u1f09\u0005T\u0000\u0000\u1f09"+ + "\u055e\u0001\u0000\u0000\u0000\u1f0a\u1f0b\u0005E\u0000\u0000\u1f0b\u1f0c"+ + "\u0005N\u0000\u0000\u1f0c\u1f0d\u0005C\u0000\u0000\u1f0d\u1f0e\u0005O"+ + "\u0000\u0000\u1f0e\u1f0f\u0005D\u0000\u0000\u1f0f\u1f10\u0005E\u0000\u0000"+ + "\u1f10\u0560\u0001\u0000\u0000\u0000\u1f11\u1f12\u0005E\u0000\u0000\u1f12"+ + "\u1f13\u0005N\u0000\u0000\u1f13\u1f14\u0005C\u0000\u0000\u1f14\u1f15\u0005"+ + "R\u0000\u0000\u1f15\u1f16\u0005Y\u0000\u0000\u1f16\u1f17\u0005P\u0000"+ + "\u0000\u1f17\u1f18\u0005T\u0000\u0000\u1f18\u0562\u0001\u0000\u0000\u0000"+ + "\u1f19\u1f1a\u0005E\u0000\u0000\u1f1a\u1f1b\u0005N\u0000\u0000\u1f1b\u1f1c"+ + "\u0005D\u0000\u0000\u1f1c\u1f1d\u0005P\u0000\u0000\u1f1d\u1f1e\u0005O"+ + "\u0000\u0000\u1f1e\u1f1f\u0005I\u0000\u0000\u1f1f\u1f20\u0005N\u0000\u0000"+ + "\u1f20\u1f21\u0005T\u0000\u0000\u1f21\u0564\u0001\u0000\u0000\u0000\u1f22"+ + "\u1f23\u0005E\u0000\u0000\u1f23\u1f24\u0005N\u0000\u0000\u1f24\u1f25\u0005"+ + "V\u0000\u0000\u1f25\u1f26\u0005E\u0000\u0000\u1f26\u1f27\u0005L\u0000"+ + "\u0000\u1f27\u1f28\u0005O\u0000\u0000\u1f28\u1f29\u0005P\u0000\u0000\u1f29"+ + "\u1f2a\u0005E\u0000\u0000\u1f2a\u0566\u0001\u0000\u0000\u0000\u1f2b\u1f2c"+ + "\u0005E\u0000\u0000\u1f2c\u1f2d\u0005Q\u0000\u0000\u1f2d\u1f2e\u0005U"+ + "\u0000\u0000\u1f2e\u1f2f\u0005A\u0000\u0000\u1f2f\u1f30\u0005L\u0000\u0000"+ + "\u1f30\u1f31\u0005S\u0000\u0000\u1f31\u0568\u0001\u0000\u0000\u0000\u1f32"+ + "\u1f33\u0005E\u0000\u0000\u1f33\u1f34\u0005X\u0000\u0000\u1f34\u1f35\u0005"+ + "P\u0000\u0000\u1f35\u056a\u0001\u0000\u0000\u0000\u1f36\u1f37\u0005E\u0000"+ + "\u0000\u1f37\u1f38\u0005X\u0000\u0000\u1f38\u1f39\u0005P\u0000\u0000\u1f39"+ + "\u1f3a\u0005O\u0000\u0000\u1f3a\u1f3b\u0005R\u0000\u0000\u1f3b\u1f3c\u0005"+ + "T\u0000\u0000\u1f3c\u1f3d\u0005_\u0000\u0000\u1f3d\u1f3e\u0005S\u0000"+ + "\u0000\u1f3e\u1f3f\u0005E\u0000\u0000\u1f3f\u1f40\u0005T\u0000\u0000\u1f40"+ + "\u056c\u0001\u0000\u0000\u0000\u1f41\u1f42\u0005E\u0000\u0000\u1f42\u1f43"+ + "\u0005X\u0000\u0000\u1f43\u1f44\u0005T\u0000\u0000\u1f44\u1f45\u0005E"+ + "\u0000\u0000\u1f45\u1f46\u0005R\u0000\u0000\u1f46\u1f47\u0005I\u0000\u0000"+ + "\u1f47\u1f48\u0005O\u0000\u0000\u1f48\u1f49\u0005R\u0000\u0000\u1f49\u1f4a"+ + "\u0005R\u0000\u0000\u1f4a\u1f4b\u0005I\u0000\u0000\u1f4b\u1f4c\u0005N"+ + "\u0000\u0000\u1f4c\u1f4d\u0005G\u0000\u0000\u1f4d\u056e\u0001\u0000\u0000"+ + "\u0000\u1f4e\u1f4f\u0005E\u0000\u0000\u1f4f\u1f50\u0005X\u0000\u0000\u1f50"+ + "\u1f51\u0005T\u0000\u0000\u1f51\u1f52\u0005R\u0000\u0000\u1f52\u1f53\u0005"+ + "A\u0000\u0000\u1f53\u1f54\u0005C\u0000\u0000\u1f54\u1f55\u0005T\u0000"+ + "\u0000\u1f55\u1f56\u0005V\u0000\u0000\u1f56\u1f57\u0005A\u0000\u0000\u1f57"+ + "\u1f58\u0005L\u0000\u0000\u1f58\u1f59\u0005U\u0000\u0000\u1f59\u1f5a\u0005"+ + "E\u0000\u0000\u1f5a\u0570\u0001\u0000\u0000\u0000\u1f5b\u1f5c\u0005F\u0000"+ + "\u0000\u1f5c\u1f5d\u0005I\u0000\u0000\u1f5d\u1f5e\u0005E\u0000\u0000\u1f5e"+ + "\u1f5f\u0005L\u0000\u0000\u1f5f\u1f60\u0005D\u0000\u0000\u1f60\u0572\u0001"+ + "\u0000\u0000\u0000\u1f61\u1f62\u0005F\u0000\u0000\u1f62\u1f63\u0005I\u0000"+ + "\u0000\u1f63\u1f64\u0005N\u0000\u0000\u1f64\u1f65\u0005D\u0000\u0000\u1f65"+ + "\u1f66\u0005_\u0000\u0000\u1f66\u1f67\u0005I\u0000\u0000\u1f67\u1f68\u0005"+ + "N\u0000\u0000\u1f68\u1f69\u0005_\u0000\u0000\u1f69\u1f6a\u0005S\u0000"+ + "\u0000\u1f6a\u1f6b\u0005E\u0000\u0000\u1f6b\u1f6c\u0005T\u0000\u0000\u1f6c"+ + "\u0574\u0001\u0000\u0000\u0000\u1f6d\u1f6e\u0005F\u0000\u0000\u1f6e\u1f6f"+ + "\u0005L\u0000\u0000\u1f6f\u1f70\u0005O\u0000\u0000\u1f70\u1f71\u0005O"+ + "\u0000\u0000\u1f71\u1f72\u0005R\u0000\u0000\u1f72\u0576\u0001\u0000\u0000"+ + "\u0000\u1f73\u1f74\u0005F\u0000\u0000\u1f74\u1f75\u0005O\u0000\u0000\u1f75"+ + "\u1f76\u0005R\u0000\u0000\u1f76\u1f77\u0005M\u0000\u0000\u1f77\u1f78\u0005"+ + "A\u0000\u0000\u1f78\u1f79\u0005T\u0000\u0000\u1f79\u0578\u0001\u0000\u0000"+ + "\u0000\u1f7a\u1f7b\u0005F\u0000\u0000\u1f7b\u1f7c\u0005O\u0000\u0000\u1f7c"+ + "\u1f7d\u0005U\u0000\u0000\u1f7d\u1f7e\u0005N\u0000\u0000\u1f7e\u1f7f\u0005"+ + "D\u0000\u0000\u1f7f\u1f80\u0005_\u0000\u0000\u1f80\u1f81\u0005R\u0000"+ + "\u0000\u1f81\u1f82\u0005O\u0000\u0000\u1f82\u1f83\u0005W\u0000\u0000\u1f83"+ + "\u1f84\u0005S\u0000\u0000\u1f84\u057a\u0001\u0000\u0000\u0000\u1f85\u1f86"+ + "\u0005F\u0000\u0000\u1f86\u1f87\u0005R\u0000\u0000\u1f87\u1f88\u0005O"+ + "\u0000\u0000\u1f88\u1f89\u0005M\u0000\u0000\u1f89\u1f8a\u0005_\u0000\u0000"+ + "\u1f8a\u1f8b\u0005B\u0000\u0000\u1f8b\u1f8c\u0005A\u0000\u0000\u1f8c\u1f8d"+ + "\u0005S\u0000\u0000\u1f8d\u1f8e\u0005E\u0000\u0000\u1f8e\u1f8f\u00056"+ + "\u0000\u0000\u1f8f\u1f90\u00054\u0000\u0000\u1f90\u057c\u0001\u0000\u0000"+ + "\u0000\u1f91\u1f92\u0005F\u0000\u0000\u1f92\u1f93\u0005R\u0000\u0000\u1f93"+ + "\u1f94\u0005O\u0000\u0000\u1f94\u1f95\u0005M\u0000\u0000\u1f95\u1f96\u0005"+ + "_\u0000\u0000\u1f96\u1f97\u0005D\u0000\u0000\u1f97\u1f98\u0005A\u0000"+ + "\u0000\u1f98\u1f99\u0005Y\u0000\u0000\u1f99\u1f9a\u0005S\u0000\u0000\u1f9a"+ + "\u057e\u0001\u0000\u0000\u0000\u1f9b\u1f9c\u0005F\u0000\u0000\u1f9c\u1f9d"+ + "\u0005R\u0000\u0000\u1f9d\u1f9e\u0005O\u0000\u0000\u1f9e\u1f9f\u0005M"+ + "\u0000\u0000\u1f9f\u1fa0\u0005_\u0000\u0000\u1fa0\u1fa1\u0005U\u0000\u0000"+ + "\u1fa1\u1fa2\u0005N\u0000\u0000\u1fa2\u1fa3\u0005I\u0000\u0000\u1fa3\u1fa4"+ + "\u0005X\u0000\u0000\u1fa4\u1fa5\u0005T\u0000\u0000\u1fa5\u1fa6\u0005I"+ + "\u0000\u0000\u1fa6\u1fa7\u0005M\u0000\u0000\u1fa7\u1fa8\u0005E\u0000\u0000"+ + "\u1fa8\u0580\u0001\u0000\u0000\u0000\u1fa9\u1faa\u0005G\u0000\u0000\u1faa"+ + "\u1fab\u0005E\u0000\u0000\u1fab\u1fac\u0005O\u0000\u0000\u1fac\u1fad\u0005"+ + "M\u0000\u0000\u1fad\u1fae\u0005C\u0000\u0000\u1fae\u1faf\u0005O\u0000"+ + "\u0000\u1faf\u1fb0\u0005L\u0000\u0000\u1fb0\u1fb1\u0005L\u0000\u0000\u1fb1"+ + "\u1fb2\u0005F\u0000\u0000\u1fb2\u1fb3\u0005R\u0000\u0000\u1fb3\u1fb4\u0005"+ + "O\u0000\u0000\u1fb4\u1fb5\u0005M\u0000\u0000\u1fb5\u1fb6\u0005T\u0000"+ + "\u0000\u1fb6\u1fb7\u0005E\u0000\u0000\u1fb7\u1fb8\u0005X\u0000\u0000\u1fb8"+ + "\u1fb9\u0005T\u0000\u0000\u1fb9\u0582\u0001\u0000\u0000\u0000\u1fba\u1fbb"+ + "\u0005G\u0000\u0000\u1fbb\u1fbc\u0005E\u0000\u0000\u1fbc\u1fbd\u0005O"+ + "\u0000\u0000\u1fbd\u1fbe\u0005M\u0000\u0000\u1fbe\u1fbf\u0005C\u0000\u0000"+ + "\u1fbf\u1fc0\u0005O\u0000\u0000\u1fc0\u1fc1\u0005L\u0000\u0000\u1fc1\u1fc2"+ + "\u0005L\u0000\u0000\u1fc2\u1fc3\u0005F\u0000\u0000\u1fc3\u1fc4\u0005R"+ + "\u0000\u0000\u1fc4\u1fc5\u0005O\u0000\u0000\u1fc5\u1fc6\u0005M\u0000\u0000"+ + "\u1fc6\u1fc7\u0005W\u0000\u0000\u1fc7\u1fc8\u0005K\u0000\u0000\u1fc8\u1fc9"+ + "\u0005B\u0000\u0000\u1fc9\u0584\u0001\u0000\u0000\u0000\u1fca\u1fcb\u0005"+ + "G\u0000\u0000\u1fcb\u1fcc\u0005E\u0000\u0000\u1fcc\u1fcd\u0005O\u0000"+ + "\u0000\u1fcd\u1fce\u0005M\u0000\u0000\u1fce\u1fcf\u0005E\u0000\u0000\u1fcf"+ + "\u1fd0\u0005T\u0000\u0000\u1fd0\u1fd1\u0005R\u0000\u0000\u1fd1\u1fd2\u0005"+ + "Y\u0000\u0000\u1fd2\u1fd3\u0005C\u0000\u0000\u1fd3\u1fd4\u0005O\u0000"+ + "\u0000\u1fd4\u1fd5\u0005L\u0000\u0000\u1fd5\u1fd6\u0005L\u0000\u0000\u1fd6"+ + "\u1fd7\u0005E\u0000\u0000\u1fd7\u1fd8\u0005C\u0000\u0000\u1fd8\u1fd9\u0005"+ + "T\u0000\u0000\u1fd9\u1fda\u0005I\u0000\u0000\u1fda\u1fdb\u0005O\u0000"+ + "\u0000\u1fdb\u1fdc\u0005N\u0000\u0000\u1fdc\u1fdd\u0005F\u0000\u0000\u1fdd"+ + "\u1fde\u0005R\u0000\u0000\u1fde\u1fdf\u0005O\u0000\u0000\u1fdf\u1fe0\u0005"+ + "M\u0000\u0000\u1fe0\u1fe1\u0005T\u0000\u0000\u1fe1\u1fe2\u0005E\u0000"+ + "\u0000\u1fe2\u1fe3\u0005X\u0000\u0000\u1fe3\u1fe4\u0005T\u0000\u0000\u1fe4"+ + "\u0586\u0001\u0000\u0000\u0000\u1fe5\u1fe6\u0005G\u0000\u0000\u1fe6\u1fe7"+ + "\u0005E\u0000\u0000\u1fe7\u1fe8\u0005O\u0000\u0000\u1fe8\u1fe9\u0005M"+ + "\u0000\u0000\u1fe9\u1fea\u0005E\u0000\u0000\u1fea\u1feb\u0005T\u0000\u0000"+ + "\u1feb\u1fec\u0005R\u0000\u0000\u1fec\u1fed\u0005Y\u0000\u0000\u1fed\u1fee"+ + "\u0005C\u0000\u0000\u1fee\u1fef\u0005O\u0000\u0000\u1fef\u1ff0\u0005L"+ + "\u0000\u0000\u1ff0\u1ff1\u0005L\u0000\u0000\u1ff1\u1ff2\u0005E\u0000\u0000"+ + "\u1ff2\u1ff3\u0005C\u0000\u0000\u1ff3\u1ff4\u0005T\u0000\u0000\u1ff4\u1ff5"+ + "\u0005I\u0000\u0000\u1ff5\u1ff6\u0005O\u0000\u0000\u1ff6\u1ff7\u0005N"+ + "\u0000\u0000\u1ff7\u1ff8\u0005F\u0000\u0000\u1ff8\u1ff9\u0005R\u0000\u0000"+ + "\u1ff9\u1ffa\u0005O\u0000\u0000\u1ffa\u1ffb\u0005M\u0000\u0000\u1ffb\u1ffc"+ + "\u0005W\u0000\u0000\u1ffc\u1ffd\u0005K\u0000\u0000\u1ffd\u1ffe\u0005B"+ + "\u0000\u0000\u1ffe\u0588\u0001\u0000\u0000\u0000\u1fff\u2000\u0005G\u0000"+ + "\u0000\u2000\u2001\u0005E\u0000\u0000\u2001\u2002\u0005O\u0000\u0000\u2002"+ + "\u2003\u0005M\u0000\u0000\u2003\u2004\u0005E\u0000\u0000\u2004\u2005\u0005"+ + "T\u0000\u0000\u2005\u2006\u0005R\u0000\u0000\u2006\u2007\u0005Y\u0000"+ + "\u0000\u2007\u2008\u0005F\u0000\u0000\u2008\u2009\u0005R\u0000\u0000\u2009"+ + "\u200a\u0005O\u0000\u0000\u200a\u200b\u0005M\u0000\u0000\u200b\u200c\u0005"+ + "T\u0000\u0000\u200c\u200d\u0005E\u0000\u0000\u200d\u200e\u0005X\u0000"+ + "\u0000\u200e\u200f\u0005T\u0000\u0000\u200f\u058a\u0001\u0000\u0000\u0000"+ + "\u2010\u2011\u0005G\u0000\u0000\u2011\u2012\u0005E\u0000\u0000\u2012\u2013"+ + "\u0005O\u0000\u0000\u2013\u2014\u0005M\u0000\u0000\u2014\u2015\u0005E"+ + "\u0000\u0000\u2015\u2016\u0005T\u0000\u0000\u2016\u2017\u0005R\u0000\u0000"+ + "\u2017\u2018\u0005Y\u0000\u0000\u2018\u2019\u0005F\u0000\u0000\u2019\u201a"+ + "\u0005R\u0000\u0000\u201a\u201b\u0005O\u0000\u0000\u201b\u201c\u0005M"+ + "\u0000\u0000\u201c\u201d\u0005W\u0000\u0000\u201d\u201e\u0005K\u0000\u0000"+ + "\u201e\u201f\u0005B\u0000\u0000\u201f\u058c\u0001\u0000\u0000\u0000\u2020"+ + "\u2021\u0005G\u0000\u0000\u2021\u2022\u0005E\u0000\u0000\u2022\u2023\u0005"+ + "O\u0000\u0000\u2023\u2024\u0005M\u0000\u0000\u2024\u2025\u0005E\u0000"+ + "\u0000\u2025\u2026\u0005T\u0000\u0000\u2026\u2027\u0005R\u0000\u0000\u2027"+ + "\u2028\u0005Y\u0000\u0000\u2028\u2029\u0005N\u0000\u0000\u2029\u058e\u0001"+ + "\u0000\u0000\u0000\u202a\u202b\u0005G\u0000\u0000\u202b\u202c\u0005E\u0000"+ + "\u0000\u202c\u202d\u0005O\u0000\u0000\u202d\u202e\u0005M\u0000\u0000\u202e"+ + "\u202f\u0005E\u0000\u0000\u202f\u2030\u0005T\u0000\u0000\u2030\u2031\u0005"+ + "R\u0000\u0000\u2031\u2032\u0005Y\u0000\u0000\u2032\u2033\u0005T\u0000"+ + "\u0000\u2033\u2034\u0005Y\u0000\u0000\u2034\u2035\u0005P\u0000\u0000\u2035"+ + "\u2036\u0005E\u0000\u0000\u2036\u0590\u0001\u0000\u0000\u0000\u2037\u2038"+ + "\u0005G\u0000\u0000\u2038\u2039\u0005E\u0000\u0000\u2039\u203a\u0005O"+ + "\u0000\u0000\u203a\u203b\u0005M\u0000\u0000\u203b\u203c\u0005F\u0000\u0000"+ + "\u203c\u203d\u0005R\u0000\u0000\u203d\u203e\u0005O\u0000\u0000\u203e\u203f"+ + "\u0005M\u0000\u0000\u203f\u2040\u0005T\u0000\u0000\u2040\u2041\u0005E"+ + "\u0000\u0000\u2041\u2042\u0005X\u0000\u0000\u2042\u2043\u0005T\u0000\u0000"+ + "\u2043\u0592\u0001\u0000\u0000\u0000\u2044\u2045\u0005G\u0000\u0000\u2045"+ + "\u2046\u0005E\u0000\u0000\u2046\u2047\u0005O\u0000\u0000\u2047\u2048\u0005"+ + "M\u0000\u0000\u2048\u2049\u0005F\u0000\u0000\u2049\u204a\u0005R\u0000"+ + "\u0000\u204a\u204b\u0005O\u0000\u0000\u204b\u204c\u0005M\u0000\u0000\u204c"+ + "\u204d\u0005W\u0000\u0000\u204d\u204e\u0005K\u0000\u0000\u204e\u204f\u0005"+ + "B\u0000\u0000\u204f\u0594\u0001\u0000\u0000\u0000\u2050\u2051\u0005G\u0000"+ + "\u0000\u2051\u2052\u0005E\u0000\u0000\u2052\u2053\u0005T\u0000\u0000\u2053"+ + "\u2054\u0005_\u0000\u0000\u2054\u2055\u0005F\u0000\u0000\u2055\u2056\u0005"+ + "O\u0000\u0000\u2056\u2057\u0005R\u0000\u0000\u2057\u2058\u0005M\u0000"+ + "\u0000\u2058\u2059\u0005A\u0000\u0000\u2059\u205a\u0005T\u0000\u0000\u205a"+ + "\u0596\u0001\u0000\u0000\u0000\u205b\u205c\u0005G\u0000\u0000\u205c\u205d"+ + "\u0005E\u0000\u0000\u205d\u205e\u0005T\u0000\u0000\u205e\u205f\u0005_"+ + "\u0000\u0000\u205f\u2060\u0005L\u0000\u0000\u2060\u2061\u0005O\u0000\u0000"+ + "\u2061\u2062\u0005C\u0000\u0000\u2062\u2063\u0005K\u0000\u0000\u2063\u0598"+ + "\u0001\u0000\u0000\u0000\u2064\u2065\u0005G\u0000\u0000\u2065\u2066\u0005"+ + "L\u0000\u0000\u2066\u2067\u0005E\u0000\u0000\u2067\u2068\u0005N\u0000"+ + "\u0000\u2068\u2069\u0005G\u0000\u0000\u2069\u206a\u0005T\u0000\u0000\u206a"+ + "\u206b\u0005H\u0000\u0000\u206b\u059a\u0001\u0000\u0000\u0000\u206c\u206d"+ + "\u0005G\u0000\u0000\u206d\u206e\u0005R\u0000\u0000\u206e\u206f\u0005E"+ + "\u0000\u0000\u206f\u2070\u0005A\u0000\u0000\u2070\u2071\u0005T\u0000\u0000"+ + "\u2071\u2072\u0005E\u0000\u0000\u2072\u2073\u0005S\u0000\u0000\u2073\u2074"+ + "\u0005T\u0000\u0000\u2074\u059c\u0001\u0000\u0000\u0000\u2075\u2076\u0005"+ + "G\u0000\u0000\u2076\u2077\u0005T\u0000\u0000\u2077\u2078\u0005I\u0000"+ + "\u0000\u2078\u2079\u0005D\u0000\u0000\u2079\u207a\u0005_\u0000\u0000\u207a"+ + "\u207b\u0005S\u0000\u0000\u207b\u207c\u0005U\u0000\u0000\u207c\u207d\u0005"+ + "B\u0000\u0000\u207d\u207e\u0005S\u0000\u0000\u207e\u207f\u0005E\u0000"+ + "\u0000\u207f\u2080\u0005T\u0000\u0000\u2080\u059e\u0001\u0000\u0000\u0000"+ + "\u2081\u2082\u0005G\u0000\u0000\u2082\u2083\u0005T\u0000\u0000\u2083\u2084"+ + "\u0005I\u0000\u0000\u2084\u2085\u0005D\u0000\u0000\u2085\u2086\u0005_"+ + "\u0000\u0000\u2086\u2087\u0005S\u0000\u0000\u2087\u2088\u0005U\u0000\u0000"+ + "\u2088\u2089\u0005B\u0000\u0000\u2089\u208a\u0005T\u0000\u0000\u208a\u208b"+ + "\u0005R\u0000\u0000\u208b\u208c\u0005A\u0000\u0000\u208c\u208d\u0005C"+ + "\u0000\u0000\u208d\u208e\u0005T\u0000\u0000\u208e\u05a0\u0001\u0000\u0000"+ + "\u0000\u208f\u2090\u0005H\u0000\u0000\u2090\u2091\u0005E\u0000\u0000\u2091"+ + "\u2092\u0005X\u0000\u0000\u2092\u05a2\u0001\u0000\u0000\u0000\u2093\u2094"+ + "\u0005I\u0000\u0000\u2094\u2095\u0005F\u0000\u0000\u2095\u2096\u0005N"+ + "\u0000\u0000\u2096\u2097\u0005U\u0000\u0000\u2097\u2098\u0005L\u0000\u0000"+ + "\u2098\u2099\u0005L\u0000\u0000\u2099\u05a4\u0001\u0000\u0000\u0000\u209a"+ + "\u209b\u0005I\u0000\u0000\u209b\u209c\u0005N\u0000\u0000\u209c\u209d\u0005"+ + "E\u0000\u0000\u209d\u209e\u0005T\u0000\u0000\u209e\u209f\u00056\u0000"+ + "\u0000\u209f\u20a0\u0005_\u0000\u0000\u20a0\u20a1\u0005A\u0000\u0000\u20a1"+ + "\u20a2\u0005T\u0000\u0000\u20a2\u20a3\u0005O\u0000\u0000\u20a3\u20a4\u0005"+ + "N\u0000\u0000\u20a4\u05a6\u0001\u0000\u0000\u0000\u20a5\u20a6\u0005I\u0000"+ + "\u0000\u20a6\u20a7\u0005N\u0000\u0000\u20a7\u20a8\u0005E\u0000\u0000\u20a8"+ + "\u20a9\u0005T\u0000\u0000\u20a9\u20aa\u00056\u0000\u0000\u20aa\u20ab\u0005"+ + "_\u0000\u0000\u20ab\u20ac\u0005N\u0000\u0000\u20ac\u20ad\u0005T\u0000"+ + "\u0000\u20ad\u20ae\u0005O\u0000\u0000\u20ae\u20af\u0005A\u0000\u0000\u20af"+ + "\u05a8\u0001\u0000\u0000\u0000\u20b0\u20b1\u0005I\u0000\u0000\u20b1\u20b2"+ + "\u0005N\u0000\u0000\u20b2\u20b3\u0005E\u0000\u0000\u20b3\u20b4\u0005T"+ + "\u0000\u0000\u20b4\u20b5\u0005_\u0000\u0000\u20b5\u20b6\u0005A\u0000\u0000"+ + "\u20b6\u20b7\u0005T\u0000\u0000\u20b7\u20b8\u0005O\u0000\u0000\u20b8\u20b9"+ + "\u0005N\u0000\u0000\u20b9\u05aa\u0001\u0000\u0000\u0000\u20ba\u20bb\u0005"+ + "I\u0000\u0000\u20bb\u20bc\u0005N\u0000\u0000\u20bc\u20bd\u0005E\u0000"+ + "\u0000\u20bd\u20be\u0005T\u0000\u0000\u20be\u20bf\u0005_\u0000\u0000\u20bf"+ + "\u20c0\u0005N\u0000\u0000\u20c0\u20c1\u0005T\u0000\u0000\u20c1\u20c2\u0005"+ + "O\u0000\u0000\u20c2\u20c3\u0005A\u0000\u0000\u20c3\u05ac\u0001\u0000\u0000"+ + "\u0000\u20c4\u20c5\u0005I\u0000\u0000\u20c5\u20c6\u0005N\u0000\u0000\u20c6"+ + "\u20c7\u0005S\u0000\u0000\u20c7\u20c8\u0005T\u0000\u0000\u20c8\u20c9\u0005"+ + "R\u0000\u0000\u20c9\u05ae\u0001\u0000\u0000\u0000\u20ca\u20cb\u0005I\u0000"+ + "\u0000\u20cb\u20cc\u0005N\u0000\u0000\u20cc\u20cd\u0005T\u0000\u0000\u20cd"+ + "\u20ce\u0005E\u0000\u0000\u20ce\u20cf\u0005R\u0000\u0000\u20cf\u20d0\u0005"+ + "I\u0000\u0000\u20d0\u20d1\u0005O\u0000\u0000\u20d1\u20d2\u0005R\u0000"+ + "\u0000\u20d2\u20d3\u0005R\u0000\u0000\u20d3\u20d4\u0005I\u0000\u0000\u20d4"+ + "\u20d5\u0005N\u0000\u0000\u20d5\u20d6\u0005G\u0000\u0000\u20d6\u20d7\u0005"+ + "N\u0000\u0000\u20d7\u05b0\u0001\u0000\u0000\u0000\u20d8\u20d9\u0005I\u0000"+ + "\u0000\u20d9\u20da\u0005N\u0000\u0000\u20da\u20db\u0005T\u0000\u0000\u20db"+ + "\u20dc\u0005E\u0000\u0000\u20dc\u20dd\u0005R\u0000\u0000\u20dd\u20de\u0005"+ + "S\u0000\u0000\u20de\u20df\u0005E\u0000\u0000\u20df\u20e0\u0005C\u0000"+ + "\u0000\u20e0\u20e1\u0005T\u0000\u0000\u20e1\u20e2\u0005S\u0000\u0000\u20e2"+ + "\u05b2\u0001\u0000\u0000\u0000\u20e3\u20e4\u0005I\u0000\u0000\u20e4\u20e5"+ + "\u0005S\u0000\u0000\u20e5\u20e6\u0005C\u0000\u0000\u20e6\u20e7\u0005L"+ + "\u0000\u0000\u20e7\u20e8\u0005O\u0000\u0000\u20e8\u20e9\u0005S\u0000\u0000"+ + "\u20e9\u20ea\u0005E\u0000\u0000\u20ea\u20eb\u0005D\u0000\u0000\u20eb\u05b4"+ + "\u0001\u0000\u0000\u0000\u20ec\u20ed\u0005I\u0000\u0000\u20ed\u20ee\u0005"+ + "S\u0000\u0000\u20ee\u20ef\u0005E\u0000\u0000\u20ef\u20f0\u0005M\u0000"+ + "\u0000\u20f0\u20f1\u0005P\u0000\u0000\u20f1\u20f2\u0005T\u0000\u0000\u20f2"+ + "\u20f3\u0005Y\u0000\u0000\u20f3\u05b6\u0001\u0000\u0000\u0000\u20f4\u20f5"+ + "\u0005I\u0000\u0000\u20f5\u20f6\u0005S\u0000\u0000\u20f6\u20f7\u0005N"+ + "\u0000\u0000\u20f7\u20f8\u0005U\u0000\u0000\u20f8\u20f9\u0005L\u0000\u0000"+ + "\u20f9\u20fa\u0005L\u0000\u0000\u20fa\u05b8\u0001\u0000\u0000\u0000\u20fb"+ + "\u20fc\u0005I\u0000\u0000\u20fc\u20fd\u0005S\u0000\u0000\u20fd\u20fe\u0005"+ + "S\u0000\u0000\u20fe\u20ff\u0005I\u0000\u0000\u20ff\u2100\u0005M\u0000"+ + "\u0000\u2100\u2101\u0005P\u0000\u0000\u2101\u2102\u0005L\u0000\u0000\u2102"+ + "\u2103\u0005E\u0000\u0000\u2103\u05ba\u0001\u0000\u0000\u0000\u2104\u2105"+ + "\u0005I\u0000\u0000\u2105\u2106\u0005S\u0000\u0000\u2106\u2107\u0005_"+ + "\u0000\u0000\u2107\u2108\u0005F\u0000\u0000\u2108\u2109\u0005R\u0000\u0000"+ + "\u2109\u210a\u0005E\u0000\u0000\u210a\u210b\u0005E\u0000\u0000\u210b\u210c"+ + "\u0005_\u0000\u0000\u210c\u210d\u0005L\u0000\u0000\u210d\u210e\u0005O"+ + "\u0000\u0000\u210e\u210f\u0005C\u0000\u0000\u210f\u2110\u0005K\u0000\u0000"+ + "\u2110\u05bc\u0001\u0000\u0000\u0000\u2111\u2112\u0005I\u0000\u0000\u2112"+ + "\u2113\u0005S\u0000\u0000\u2113\u2114\u0005_\u0000\u0000\u2114\u2115\u0005"+ + "I\u0000\u0000\u2115\u2116\u0005P\u0000\u0000\u2116\u2117\u0005V\u0000"+ + "\u0000\u2117\u2118\u00054\u0000\u0000\u2118\u05be\u0001\u0000\u0000\u0000"+ + "\u2119\u211a\u0005I\u0000\u0000\u211a\u211b\u0005S\u0000\u0000\u211b\u211c"+ + "\u0005_\u0000\u0000\u211c\u211d\u0005I\u0000\u0000\u211d\u211e\u0005P"+ + "\u0000\u0000\u211e\u211f\u0005V\u0000\u0000\u211f\u2120\u00054\u0000\u0000"+ + "\u2120\u2121\u0005_\u0000\u0000\u2121\u2122\u0005C\u0000\u0000\u2122\u2123"+ + "\u0005O\u0000\u0000\u2123\u2124\u0005M\u0000\u0000\u2124\u2125\u0005P"+ + "\u0000\u0000\u2125\u2126\u0005A\u0000\u0000\u2126\u2127\u0005T\u0000\u0000"+ + "\u2127\u05c0\u0001\u0000\u0000\u0000\u2128\u2129\u0005I\u0000\u0000\u2129"+ + "\u212a\u0005S\u0000\u0000\u212a\u212b\u0005_\u0000\u0000\u212b\u212c\u0005"+ + "I\u0000\u0000\u212c\u212d\u0005P\u0000\u0000\u212d\u212e\u0005V\u0000"+ + "\u0000\u212e\u212f\u00054\u0000\u0000\u212f\u2130\u0005_\u0000\u0000\u2130"+ + "\u2131\u0005M\u0000\u0000\u2131\u2132\u0005A\u0000\u0000\u2132\u2133\u0005"+ + "P\u0000\u0000\u2133\u2134\u0005P\u0000\u0000\u2134\u2135\u0005E\u0000"+ + "\u0000\u2135\u2136\u0005D\u0000\u0000\u2136\u05c2\u0001\u0000\u0000\u0000"+ + "\u2137\u2138\u0005I\u0000\u0000\u2138\u2139\u0005S\u0000\u0000\u2139\u213a"+ + "\u0005_\u0000\u0000\u213a\u213b\u0005I\u0000\u0000\u213b\u213c\u0005P"+ + "\u0000\u0000\u213c\u213d\u0005V\u0000\u0000\u213d\u213e\u00056\u0000\u0000"+ + "\u213e\u05c4\u0001\u0000\u0000\u0000\u213f\u2140\u0005I\u0000\u0000\u2140"+ + "\u2141\u0005S\u0000\u0000\u2141\u2142\u0005_\u0000\u0000\u2142\u2143\u0005"+ + "U\u0000\u0000\u2143\u2144\u0005S\u0000\u0000\u2144\u2145\u0005E\u0000"+ + "\u0000\u2145\u2146\u0005D\u0000\u0000\u2146\u2147\u0005_\u0000\u0000\u2147"+ + "\u2148\u0005L\u0000\u0000\u2148\u2149\u0005O\u0000\u0000\u2149\u214a\u0005"+ + "C\u0000\u0000\u214a\u214b\u0005K\u0000\u0000\u214b\u05c6\u0001\u0000\u0000"+ + "\u0000\u214c\u214d\u0005L\u0000\u0000\u214d\u214e\u0005A\u0000\u0000\u214e"+ + "\u214f\u0005S\u0000\u0000\u214f\u2150\u0005T\u0000\u0000\u2150\u2151\u0005"+ + "_\u0000\u0000\u2151\u2152\u0005I\u0000\u0000\u2152\u2153\u0005N\u0000"+ + "\u0000\u2153\u2154\u0005S\u0000\u0000\u2154\u2155\u0005E\u0000\u0000\u2155"+ + "\u2156\u0005R\u0000\u0000\u2156\u2157\u0005T\u0000\u0000\u2157\u2158\u0005"+ + "_\u0000\u0000\u2158\u2159\u0005I\u0000\u0000\u2159\u215a\u0005D\u0000"+ + "\u0000\u215a\u05c8\u0001\u0000\u0000\u0000\u215b\u215c\u0005L\u0000\u0000"+ + "\u215c\u215d\u0005C\u0000\u0000\u215d\u215e\u0005A\u0000\u0000\u215e\u215f"+ + "\u0005S\u0000\u0000\u215f\u2160\u0005E\u0000\u0000\u2160\u05ca\u0001\u0000"+ + "\u0000\u0000\u2161\u2162\u0005L\u0000\u0000\u2162\u2163\u0005E\u0000\u0000"+ + "\u2163\u2164\u0005A\u0000\u0000\u2164\u2165\u0005S\u0000\u0000\u2165\u2166"+ + "\u0005T\u0000\u0000\u2166\u05cc\u0001\u0000\u0000\u0000\u2167\u2168\u0005"+ + "L\u0000\u0000\u2168\u2169\u0005E\u0000\u0000\u2169\u216a\u0005N\u0000"+ + "\u0000\u216a\u216b\u0005G\u0000\u0000\u216b\u216c\u0005T\u0000\u0000\u216c"+ + "\u216d\u0005H\u0000\u0000\u216d\u05ce\u0001\u0000\u0000\u0000\u216e\u216f"+ + "\u0005L\u0000\u0000\u216f\u2170\u0005I\u0000\u0000\u2170\u2171\u0005N"+ + "\u0000\u0000\u2171\u2172\u0005E\u0000\u0000\u2172\u2173\u0005F\u0000\u0000"+ + "\u2173\u2174\u0005R\u0000\u0000\u2174\u2175\u0005O\u0000\u0000\u2175\u2176"+ + "\u0005M\u0000\u0000\u2176\u2177\u0005T\u0000\u0000\u2177\u2178\u0005E"+ + "\u0000\u0000\u2178\u2179\u0005X\u0000\u0000\u2179\u217a\u0005T\u0000\u0000"+ + "\u217a\u05d0\u0001\u0000\u0000\u0000\u217b\u217c\u0005L\u0000\u0000\u217c"+ + "\u217d\u0005I\u0000\u0000\u217d\u217e\u0005N\u0000\u0000\u217e\u217f\u0005"+ + "E\u0000\u0000\u217f\u2180\u0005F\u0000\u0000\u2180\u2181\u0005R\u0000"+ + "\u0000\u2181\u2182\u0005O\u0000\u0000\u2182\u2183\u0005M\u0000\u0000\u2183"+ + "\u2184\u0005W\u0000\u0000\u2184\u2185\u0005K\u0000\u0000\u2185\u2186\u0005"+ + "B\u0000\u0000\u2186\u05d2\u0001\u0000\u0000\u0000\u2187\u2188\u0005L\u0000"+ + "\u0000\u2188\u2189\u0005I\u0000\u0000\u2189\u218a\u0005N\u0000\u0000\u218a"+ + "\u218b\u0005E\u0000\u0000\u218b\u218c\u0005S\u0000\u0000\u218c\u218d\u0005"+ + "T\u0000\u0000\u218d\u218e\u0005R\u0000\u0000\u218e\u218f\u0005I\u0000"+ + "\u0000\u218f\u2190\u0005N\u0000\u0000\u2190\u2191\u0005G\u0000\u0000\u2191"+ + "\u2192\u0005F\u0000\u0000\u2192\u2193\u0005R\u0000\u0000\u2193\u2194\u0005"+ + "O\u0000\u0000\u2194\u2195\u0005M\u0000\u0000\u2195\u2196\u0005T\u0000"+ + "\u0000\u2196\u2197\u0005E\u0000\u0000\u2197\u2198\u0005X\u0000\u0000\u2198"+ + "\u2199\u0005T\u0000\u0000\u2199\u05d4\u0001\u0000\u0000\u0000\u219a\u219b"+ + "\u0005L\u0000\u0000\u219b\u219c\u0005I\u0000\u0000\u219c\u219d\u0005N"+ + "\u0000\u0000\u219d\u219e\u0005E\u0000\u0000\u219e\u219f\u0005S\u0000\u0000"+ + "\u219f\u21a0\u0005T\u0000\u0000\u21a0\u21a1\u0005R\u0000\u0000\u21a1\u21a2"+ + "\u0005I\u0000\u0000\u21a2\u21a3\u0005N\u0000\u0000\u21a3\u21a4\u0005G"+ + "\u0000\u0000\u21a4\u21a5\u0005F\u0000\u0000\u21a5\u21a6\u0005R\u0000\u0000"+ + "\u21a6\u21a7\u0005O\u0000\u0000\u21a7\u21a8\u0005M\u0000\u0000\u21a8\u21a9"+ + "\u0005W\u0000\u0000\u21a9\u21aa\u0005K\u0000\u0000\u21aa\u21ab\u0005B"+ + "\u0000\u0000\u21ab\u05d6\u0001\u0000\u0000\u0000\u21ac\u21ad\u0005L\u0000"+ + "\u0000\u21ad\u21ae\u0005N\u0000\u0000\u21ae\u05d8\u0001\u0000\u0000\u0000"+ + "\u21af\u21b0\u0005L\u0000\u0000\u21b0\u21b1\u0005O\u0000\u0000\u21b1\u21b2"+ + "\u0005A\u0000\u0000\u21b2\u21b3\u0005D\u0000\u0000\u21b3\u21b4\u0005_"+ + "\u0000\u0000\u21b4\u21b5\u0005F\u0000\u0000\u21b5\u21b6\u0005I\u0000\u0000"+ + "\u21b6\u21b7\u0005L\u0000\u0000\u21b7\u21b8\u0005E\u0000\u0000\u21b8\u05da"+ + "\u0001\u0000\u0000\u0000\u21b9\u21ba\u0005L\u0000\u0000\u21ba\u21bb\u0005"+ + "O\u0000\u0000\u21bb\u21bc\u0005C\u0000\u0000\u21bc\u21bd\u0005A\u0000"+ + "\u0000\u21bd\u21be\u0005T\u0000\u0000\u21be\u21bf\u0005E\u0000\u0000\u21bf"+ + "\u05dc\u0001\u0000\u0000\u0000\u21c0\u21c1\u0005L\u0000\u0000\u21c1\u21c2"+ + "\u0005O\u0000\u0000\u21c2\u21c3\u0005G\u0000\u0000\u21c3\u05de\u0001\u0000"+ + "\u0000\u0000\u21c4\u21c5\u0005L\u0000\u0000\u21c5\u21c6\u0005O\u0000\u0000"+ + "\u21c6\u21c7\u0005G\u0000\u0000\u21c7\u21c8\u00051\u0000\u0000\u21c8\u21c9"+ + "\u00050\u0000\u0000\u21c9\u05e0\u0001\u0000\u0000\u0000\u21ca\u21cb\u0005"+ + "L\u0000\u0000\u21cb\u21cc\u0005O\u0000\u0000\u21cc\u21cd\u0005G\u0000"+ + "\u0000\u21cd\u21ce\u00052\u0000\u0000\u21ce\u05e2\u0001\u0000\u0000\u0000"+ + "\u21cf\u21d0\u0005L\u0000\u0000\u21d0\u21d1\u0005O\u0000\u0000\u21d1\u21d2"+ + "\u0005W\u0000\u0000\u21d2\u21d3\u0005E\u0000\u0000\u21d3\u21d4\u0005R"+ + "\u0000\u0000\u21d4\u05e4\u0001\u0000\u0000\u0000\u21d5\u21d6\u0005L\u0000"+ + "\u0000\u21d6\u21d7\u0005P\u0000\u0000\u21d7\u21d8\u0005A\u0000\u0000\u21d8"+ + "\u21d9\u0005D\u0000\u0000\u21d9\u05e6\u0001\u0000\u0000\u0000\u21da\u21db"+ + "\u0005L\u0000\u0000\u21db\u21dc\u0005T\u0000\u0000\u21dc\u21dd\u0005R"+ + "\u0000\u0000\u21dd\u21de\u0005I\u0000\u0000\u21de\u21df\u0005M\u0000\u0000"+ + "\u21df\u05e8\u0001\u0000\u0000\u0000\u21e0\u21e1\u0005M\u0000\u0000\u21e1"+ + "\u21e2\u0005A\u0000\u0000\u21e2\u21e3\u0005K\u0000\u0000\u21e3\u21e4\u0005"+ + "E\u0000\u0000\u21e4\u21e5\u0005D\u0000\u0000\u21e5\u21e6\u0005A\u0000"+ + "\u0000\u21e6\u21e7\u0005T\u0000\u0000\u21e7\u21e8\u0005E\u0000\u0000\u21e8"+ + "\u05ea\u0001\u0000\u0000\u0000\u21e9\u21ea\u0005M\u0000\u0000\u21ea\u21eb"+ + "\u0005A\u0000\u0000\u21eb\u21ec\u0005K\u0000\u0000\u21ec\u21ed\u0005E"+ + "\u0000\u0000\u21ed\u21ee\u0005T\u0000\u0000\u21ee\u21ef\u0005I\u0000\u0000"+ + "\u21ef\u21f0\u0005M\u0000\u0000\u21f0\u21f1\u0005E\u0000\u0000\u21f1\u05ec"+ + "\u0001\u0000\u0000\u0000\u21f2\u21f3\u0005M\u0000\u0000\u21f3\u21f4\u0005"+ + "A\u0000\u0000\u21f4\u21f5\u0005K\u0000\u0000\u21f5\u21f6\u0005E\u0000"+ + "\u0000\u21f6\u21f7\u0005_\u0000\u0000\u21f7\u21f8\u0005S\u0000\u0000\u21f8"+ + "\u21f9\u0005E\u0000\u0000\u21f9\u21fa\u0005T\u0000\u0000\u21fa\u05ee\u0001"+ + "\u0000\u0000\u0000\u21fb\u21fc\u0005M\u0000\u0000\u21fc\u21fd\u0005A\u0000"+ + "\u0000\u21fd\u21fe\u0005S\u0000\u0000\u21fe\u21ff\u0005T\u0000\u0000\u21ff"+ + "\u2200\u0005E\u0000\u0000\u2200\u2201\u0005R\u0000\u0000\u2201\u2202\u0005"+ + "_\u0000\u0000\u2202\u2203\u0005P\u0000\u0000\u2203\u2204\u0005O\u0000"+ + "\u0000\u2204\u2205\u0005S\u0000\u0000\u2205\u2206\u0005_\u0000\u0000\u2206"+ + "\u2207\u0005W\u0000\u0000\u2207\u2208\u0005A\u0000\u0000\u2208\u2209\u0005"+ + "I\u0000\u0000\u2209\u220a\u0005T\u0000\u0000\u220a\u05f0\u0001\u0000\u0000"+ + "\u0000\u220b\u220c\u0005M\u0000\u0000\u220c\u220d\u0005B\u0000\u0000\u220d"+ + "\u220e\u0005R\u0000\u0000\u220e\u220f\u0005C\u0000\u0000\u220f\u2210\u0005"+ + "O\u0000\u0000\u2210\u2211\u0005N\u0000\u0000\u2211\u2212\u0005T\u0000"+ + "\u0000\u2212\u2213\u0005A\u0000\u0000\u2213\u2214\u0005I\u0000\u0000\u2214"+ + "\u2215\u0005N\u0000\u0000\u2215\u2216\u0005S\u0000\u0000\u2216\u05f2\u0001"+ + "\u0000\u0000\u0000\u2217\u2218\u0005M\u0000\u0000\u2218\u2219\u0005B\u0000"+ + "\u0000\u2219\u221a\u0005R\u0000\u0000\u221a\u221b\u0005D\u0000\u0000\u221b"+ + "\u221c\u0005I\u0000\u0000\u221c\u221d\u0005S\u0000\u0000\u221d\u221e\u0005"+ + "J\u0000\u0000\u221e\u221f\u0005O\u0000\u0000\u221f\u2220\u0005I\u0000"+ + "\u0000\u2220\u2221\u0005N\u0000\u0000\u2221\u2222\u0005T\u0000\u0000\u2222"+ + "\u05f4\u0001\u0000\u0000\u0000\u2223\u2224\u0005M\u0000\u0000\u2224\u2225"+ + "\u0005B\u0000\u0000\u2225\u2226\u0005R\u0000\u0000\u2226\u2227\u0005E"+ + "\u0000\u0000\u2227\u2228\u0005Q\u0000\u0000\u2228\u2229\u0005U\u0000\u0000"+ + "\u2229\u222a\u0005A\u0000\u0000\u222a\u222b\u0005L\u0000\u0000\u222b\u05f6"+ + "\u0001\u0000\u0000\u0000\u222c\u222d\u0005M\u0000\u0000\u222d\u222e\u0005"+ + "B\u0000\u0000\u222e\u222f\u0005R\u0000\u0000\u222f\u2230\u0005I\u0000"+ + "\u0000\u2230\u2231\u0005N\u0000\u0000\u2231\u2232\u0005T\u0000\u0000\u2232"+ + "\u2233\u0005E\u0000\u0000\u2233\u2234\u0005R\u0000\u0000\u2234\u2235\u0005"+ + "S\u0000\u0000\u2235\u2236\u0005E\u0000\u0000\u2236\u2237\u0005C\u0000"+ + "\u0000\u2237\u2238\u0005T\u0000\u0000\u2238\u2239\u0005S\u0000\u0000\u2239"+ + "\u05f8\u0001\u0000\u0000\u0000\u223a\u223b\u0005M\u0000\u0000\u223b\u223c"+ + "\u0005B\u0000\u0000\u223c\u223d\u0005R\u0000\u0000\u223d\u223e\u0005O"+ + "\u0000\u0000\u223e\u223f\u0005V\u0000\u0000\u223f\u2240\u0005E\u0000\u0000"+ + "\u2240\u2241\u0005R\u0000\u0000\u2241\u2242\u0005L\u0000\u0000\u2242\u2243"+ + "\u0005A\u0000\u0000\u2243\u2244\u0005P\u0000\u0000\u2244\u2245\u0005S"+ + "\u0000\u0000\u2245\u05fa\u0001\u0000\u0000\u0000\u2246\u2247\u0005M\u0000"+ + "\u0000\u2247\u2248\u0005B\u0000\u0000\u2248\u2249\u0005R\u0000\u0000\u2249"+ + "\u224a\u0005T\u0000\u0000\u224a\u224b\u0005O\u0000\u0000\u224b\u224c\u0005"+ + "U\u0000\u0000\u224c\u224d\u0005C\u0000\u0000\u224d\u224e\u0005H\u0000"+ + "\u0000\u224e\u224f\u0005E\u0000\u0000\u224f\u2250\u0005S\u0000\u0000\u2250"+ + "\u05fc\u0001\u0000\u0000\u0000\u2251\u2252\u0005M\u0000\u0000\u2252\u2253"+ + "\u0005B\u0000\u0000\u2253\u2254\u0005R\u0000\u0000\u2254\u2255\u0005W"+ + "\u0000\u0000\u2255\u2256\u0005I\u0000\u0000\u2256\u2257\u0005T\u0000\u0000"+ + "\u2257\u2258\u0005H\u0000\u0000\u2258\u2259\u0005I\u0000\u0000\u2259\u225a"+ + "\u0005N\u0000\u0000\u225a\u05fe\u0001\u0000\u0000\u0000\u225b\u225c\u0005"+ + "M\u0000\u0000\u225c\u225d\u0005D\u0000\u0000\u225d\u225e\u00055\u0000"+ + "\u0000\u225e\u0600\u0001\u0000\u0000\u0000\u225f\u2260\u0005M\u0000\u0000"+ + "\u2260\u2261\u0005L\u0000\u0000\u2261\u2262\u0005I\u0000\u0000\u2262\u2263"+ + "\u0005N\u0000\u0000\u2263\u2264\u0005E\u0000\u0000\u2264\u2265\u0005F"+ + "\u0000\u0000\u2265\u2266\u0005R\u0000\u0000\u2266\u2267\u0005O\u0000\u0000"+ + "\u2267\u2268\u0005M\u0000\u0000\u2268\u2269\u0005T\u0000\u0000\u2269\u226a"+ + "\u0005E\u0000\u0000\u226a\u226b\u0005X\u0000\u0000\u226b\u226c\u0005T"+ + "\u0000\u0000\u226c\u0602\u0001\u0000\u0000\u0000\u226d\u226e\u0005M\u0000"+ + "\u0000\u226e\u226f\u0005L\u0000\u0000\u226f\u2270\u0005I\u0000\u0000\u2270"+ + "\u2271\u0005N\u0000\u0000\u2271\u2272\u0005E\u0000\u0000\u2272\u2273\u0005"+ + "F\u0000\u0000\u2273\u2274\u0005R\u0000\u0000\u2274\u2275\u0005O\u0000"+ + "\u0000\u2275\u2276\u0005M\u0000\u0000\u2276\u2277\u0005W\u0000\u0000\u2277"+ + "\u2278\u0005K\u0000\u0000\u2278\u2279\u0005B\u0000\u0000\u2279\u0604\u0001"+ + "\u0000\u0000\u0000\u227a\u227b\u0005M\u0000\u0000\u227b\u227c\u0005O\u0000"+ + "\u0000\u227c\u227d\u0005N\u0000\u0000\u227d\u227e\u0005T\u0000\u0000\u227e"+ + "\u227f\u0005H\u0000\u0000\u227f\u2280\u0005N\u0000\u0000\u2280\u2281\u0005"+ + "A\u0000\u0000\u2281\u2282\u0005M\u0000\u0000\u2282\u2283\u0005E\u0000"+ + "\u0000\u2283\u0606\u0001\u0000\u0000\u0000\u2284\u2285\u0005M\u0000\u0000"+ + "\u2285\u2286\u0005P\u0000\u0000\u2286\u2287\u0005O\u0000\u0000\u2287\u2288"+ + "\u0005I\u0000\u0000\u2288\u2289\u0005N\u0000\u0000\u2289\u228a\u0005T"+ + "\u0000\u0000\u228a\u228b\u0005F\u0000\u0000\u228b\u228c\u0005R\u0000\u0000"+ + "\u228c\u228d\u0005O\u0000\u0000\u228d\u228e\u0005M\u0000\u0000\u228e\u228f"+ + "\u0005T\u0000\u0000\u228f\u2290\u0005E\u0000\u0000\u2290\u2291\u0005X"+ + "\u0000\u0000\u2291\u2292\u0005T\u0000\u0000\u2292\u0608\u0001\u0000\u0000"+ + "\u0000\u2293\u2294\u0005M\u0000\u0000\u2294\u2295\u0005P\u0000\u0000\u2295"+ + "\u2296\u0005O\u0000\u0000\u2296\u2297\u0005I\u0000\u0000\u2297\u2298\u0005"+ + "N\u0000\u0000\u2298\u2299\u0005T\u0000\u0000\u2299\u229a\u0005F\u0000"+ + "\u0000\u229a\u229b\u0005R\u0000\u0000\u229b\u229c\u0005O\u0000\u0000\u229c"+ + "\u229d\u0005M\u0000\u0000\u229d\u229e\u0005W\u0000\u0000\u229e\u229f\u0005"+ + "K\u0000\u0000\u229f\u22a0\u0005B\u0000\u0000\u22a0\u060a\u0001\u0000\u0000"+ + "\u0000\u22a1\u22a2\u0005M\u0000\u0000\u22a2\u22a3\u0005P\u0000\u0000\u22a3"+ + "\u22a4\u0005O\u0000\u0000\u22a4\u22a5\u0005L\u0000\u0000\u22a5\u22a6\u0005"+ + "Y\u0000\u0000\u22a6\u22a7\u0005F\u0000\u0000\u22a7\u22a8\u0005R\u0000"+ + "\u0000\u22a8\u22a9\u0005O\u0000\u0000\u22a9\u22aa\u0005M\u0000\u0000\u22aa"+ + "\u22ab\u0005T\u0000\u0000\u22ab\u22ac\u0005E\u0000\u0000\u22ac\u22ad\u0005"+ + "X\u0000\u0000\u22ad\u22ae\u0005T\u0000\u0000\u22ae\u060c\u0001\u0000\u0000"+ + "\u0000\u22af\u22b0\u0005M\u0000\u0000\u22b0\u22b1\u0005P\u0000\u0000\u22b1"+ + "\u22b2\u0005O\u0000\u0000\u22b2\u22b3\u0005L\u0000\u0000\u22b3\u22b4\u0005"+ + "Y\u0000\u0000\u22b4\u22b5\u0005F\u0000\u0000\u22b5\u22b6\u0005R\u0000"+ + "\u0000\u22b6\u22b7\u0005O\u0000\u0000\u22b7\u22b8\u0005M\u0000\u0000\u22b8"+ + "\u22b9\u0005W\u0000\u0000\u22b9\u22ba\u0005K\u0000\u0000\u22ba\u22bb\u0005"+ + "B\u0000\u0000\u22bb\u060e\u0001\u0000\u0000\u0000\u22bc\u22bd\u0005M\u0000"+ + "\u0000\u22bd\u22be\u0005U\u0000\u0000\u22be\u22bf\u0005L\u0000\u0000\u22bf"+ + "\u22c0\u0005T\u0000\u0000\u22c0\u22c1\u0005I\u0000\u0000\u22c1\u22c2\u0005"+ + "L\u0000\u0000\u22c2\u22c3\u0005I\u0000\u0000\u22c3\u22c4\u0005N\u0000"+ + "\u0000\u22c4\u22c5\u0005E\u0000\u0000\u22c5\u22c6\u0005S\u0000\u0000\u22c6"+ + "\u22c7\u0005T\u0000\u0000\u22c7\u22c8\u0005R\u0000\u0000\u22c8\u22c9\u0005"+ + "I\u0000\u0000\u22c9\u22ca\u0005N\u0000\u0000\u22ca\u22cb\u0005G\u0000"+ + "\u0000\u22cb\u22cc\u0005F\u0000\u0000\u22cc\u22cd\u0005R\u0000\u0000\u22cd"+ + "\u22ce\u0005O\u0000\u0000\u22ce\u22cf\u0005M\u0000\u0000\u22cf\u22d0\u0005"+ + "T\u0000\u0000\u22d0\u22d1\u0005E\u0000\u0000\u22d1\u22d2\u0005X\u0000"+ + "\u0000\u22d2\u22d3\u0005T\u0000\u0000\u22d3\u0610\u0001\u0000\u0000\u0000"+ + "\u22d4\u22d5\u0005M\u0000\u0000\u22d5\u22d6\u0005U\u0000\u0000\u22d6\u22d7"+ + "\u0005L\u0000\u0000\u22d7\u22d8\u0005T\u0000\u0000\u22d8\u22d9\u0005I"+ + "\u0000\u0000\u22d9\u22da\u0005L\u0000\u0000\u22da\u22db\u0005I\u0000\u0000"+ + "\u22db\u22dc\u0005N\u0000\u0000\u22dc\u22dd\u0005E\u0000\u0000\u22dd\u22de"+ + "\u0005S\u0000\u0000\u22de\u22df\u0005T\u0000\u0000\u22df\u22e0\u0005R"+ + "\u0000\u0000\u22e0\u22e1\u0005I\u0000\u0000\u22e1\u22e2\u0005N\u0000\u0000"+ + "\u22e2\u22e3\u0005G\u0000\u0000\u22e3\u22e4\u0005F\u0000\u0000\u22e4\u22e5"+ + "\u0005R\u0000\u0000\u22e5\u22e6\u0005O\u0000\u0000\u22e6\u22e7\u0005M"+ + "\u0000\u0000\u22e7\u22e8\u0005W\u0000\u0000\u22e8\u22e9\u0005K\u0000\u0000"+ + "\u22e9\u22ea\u0005B\u0000\u0000\u22ea\u0612\u0001\u0000\u0000\u0000\u22eb"+ + "\u22ec\u0005M\u0000\u0000\u22ec\u22ed\u0005U\u0000\u0000\u22ed\u22ee\u0005"+ + "L\u0000\u0000\u22ee\u22ef\u0005T\u0000\u0000\u22ef\u22f0\u0005I\u0000"+ + "\u0000\u22f0\u22f1\u0005P\u0000\u0000\u22f1\u22f2\u0005O\u0000\u0000\u22f2"+ + "\u22f3\u0005I\u0000\u0000\u22f3\u22f4\u0005N\u0000\u0000\u22f4\u22f5\u0005"+ + "T\u0000\u0000\u22f5\u22f6\u0005F\u0000\u0000\u22f6\u22f7\u0005R\u0000"+ + "\u0000\u22f7\u22f8\u0005O\u0000\u0000\u22f8\u22f9\u0005M\u0000\u0000\u22f9"+ + "\u22fa\u0005T\u0000\u0000\u22fa\u22fb\u0005E\u0000\u0000\u22fb\u22fc\u0005"+ + "X\u0000\u0000\u22fc\u22fd\u0005T\u0000\u0000\u22fd\u0614\u0001\u0000\u0000"+ + "\u0000\u22fe\u22ff\u0005M\u0000\u0000\u22ff\u2300\u0005U\u0000\u0000\u2300"+ + "\u2301\u0005L\u0000\u0000\u2301\u2302\u0005T\u0000\u0000\u2302\u2303\u0005"+ + "I\u0000\u0000\u2303\u2304\u0005P\u0000\u0000\u2304\u2305\u0005O\u0000"+ + "\u0000\u2305\u2306\u0005I\u0000\u0000\u2306\u2307\u0005N\u0000\u0000\u2307"+ + "\u2308\u0005T\u0000\u0000\u2308\u2309\u0005F\u0000\u0000\u2309\u230a\u0005"+ + "R\u0000\u0000\u230a\u230b\u0005O\u0000\u0000\u230b\u230c\u0005M\u0000"+ + "\u0000\u230c\u230d\u0005W\u0000\u0000\u230d\u230e\u0005K\u0000\u0000\u230e"+ + "\u230f\u0005B\u0000\u0000\u230f\u0616\u0001\u0000\u0000\u0000\u2310\u2311"+ + "\u0005M\u0000\u0000\u2311\u2312\u0005U\u0000\u0000\u2312\u2313\u0005L"+ + "\u0000\u0000\u2313\u2314\u0005T\u0000\u0000\u2314\u2315\u0005I\u0000\u0000"+ + "\u2315\u2316\u0005P\u0000\u0000\u2316\u2317\u0005O\u0000\u0000\u2317\u2318"+ + "\u0005L\u0000\u0000\u2318\u2319\u0005Y\u0000\u0000\u2319\u231a\u0005G"+ + "\u0000\u0000\u231a\u231b\u0005O\u0000\u0000\u231b\u231c\u0005N\u0000\u0000"+ + "\u231c\u231d\u0005F\u0000\u0000\u231d\u231e\u0005R\u0000\u0000\u231e\u231f"+ + "\u0005O\u0000\u0000\u231f\u2320\u0005M\u0000\u0000\u2320\u2321\u0005T"+ + "\u0000\u0000\u2321\u2322\u0005E\u0000\u0000\u2322\u2323\u0005X\u0000\u0000"+ + "\u2323\u2324\u0005T\u0000\u0000\u2324\u0618\u0001\u0000\u0000\u0000\u2325"+ + "\u2326\u0005M\u0000\u0000\u2326\u2327\u0005U\u0000\u0000\u2327\u2328\u0005"+ + "L\u0000\u0000\u2328\u2329\u0005T\u0000\u0000\u2329\u232a\u0005I\u0000"+ + "\u0000\u232a\u232b\u0005P\u0000\u0000\u232b\u232c\u0005O\u0000\u0000\u232c"+ + "\u232d\u0005L\u0000\u0000\u232d\u232e\u0005Y\u0000\u0000\u232e\u232f\u0005"+ + "G\u0000\u0000\u232f\u2330\u0005O\u0000\u0000\u2330\u2331\u0005N\u0000"+ + "\u0000\u2331\u2332\u0005F\u0000\u0000\u2332\u2333\u0005R\u0000\u0000\u2333"+ + "\u2334\u0005O\u0000\u0000\u2334\u2335\u0005M\u0000\u0000\u2335\u2336\u0005"+ + "W\u0000\u0000\u2336\u2337\u0005K\u0000\u0000\u2337\u2338\u0005B\u0000"+ + "\u0000\u2338\u061a\u0001\u0000\u0000\u0000\u2339\u233a\u0005N\u0000\u0000"+ + "\u233a\u233b\u0005A\u0000\u0000\u233b\u233c\u0005M\u0000\u0000\u233c\u233d"+ + "\u0005E\u0000\u0000\u233d\u233e\u0005_\u0000\u0000\u233e\u233f\u0005C"+ + "\u0000\u0000\u233f\u2340\u0005O\u0000\u0000\u2340\u2341\u0005N\u0000\u0000"+ + "\u2341\u2342\u0005S\u0000\u0000\u2342\u2343\u0005T\u0000\u0000\u2343\u061c"+ + "\u0001\u0000\u0000\u0000\u2344\u2345\u0005N\u0000\u0000\u2345\u2346\u0005"+ + "U\u0000\u0000\u2346\u2347\u0005L\u0000\u0000\u2347\u2348\u0005L\u0000"+ + "\u0000\u2348\u2349\u0005I\u0000\u0000\u2349\u234a\u0005F\u0000\u0000\u234a"+ + "\u061e\u0001\u0000\u0000\u0000\u234b\u234c\u0005N\u0000\u0000\u234c\u234d"+ + "\u0005U\u0000\u0000\u234d\u234e\u0005M\u0000\u0000\u234e\u234f\u0005G"+ + "\u0000\u0000\u234f\u2350\u0005E\u0000\u0000\u2350\u2351\u0005O\u0000\u0000"+ + "\u2351\u2352\u0005M\u0000\u0000\u2352\u2353\u0005E\u0000\u0000\u2353\u2354"+ + "\u0005T\u0000\u0000\u2354\u2355\u0005R\u0000\u0000\u2355\u2356\u0005I"+ + "\u0000\u0000\u2356\u2357\u0005E\u0000\u0000\u2357\u2358\u0005S\u0000\u0000"+ + "\u2358\u0620\u0001\u0000\u0000\u0000\u2359\u235a\u0005N\u0000\u0000\u235a"+ + "\u235b\u0005U\u0000\u0000\u235b\u235c\u0005M\u0000\u0000\u235c\u235d\u0005"+ + "I\u0000\u0000\u235d\u235e\u0005N\u0000\u0000\u235e\u235f\u0005T\u0000"+ + "\u0000\u235f\u2360\u0005E\u0000\u0000\u2360\u2361\u0005R\u0000\u0000\u2361"+ + "\u2362\u0005I\u0000\u0000\u2362\u2363\u0005O\u0000\u0000\u2363\u2364\u0005"+ + "R\u0000\u0000\u2364\u2365\u0005R\u0000\u0000\u2365\u2366\u0005I\u0000"+ + "\u0000\u2366\u2367\u0005N\u0000\u0000\u2367\u2368\u0005G\u0000\u0000\u2368"+ + "\u2369\u0005S\u0000\u0000\u2369\u0622\u0001\u0000\u0000\u0000\u236a\u236b"+ + "\u0005N\u0000\u0000\u236b\u236c\u0005U\u0000\u0000\u236c\u236d\u0005M"+ + "\u0000\u0000\u236d\u236e\u0005P\u0000\u0000\u236e\u236f\u0005O\u0000\u0000"+ + "\u236f\u2370\u0005I\u0000\u0000\u2370\u2371\u0005N\u0000\u0000\u2371\u2372"+ + "\u0005T\u0000\u0000\u2372\u2373\u0005S\u0000\u0000\u2373\u0624\u0001\u0000"+ + "\u0000\u0000\u2374\u2375\u0005O\u0000\u0000\u2375\u2376\u0005C\u0000\u0000"+ + "\u2376\u2377\u0005T\u0000\u0000\u2377\u0626\u0001\u0000\u0000\u0000\u2378"+ + "\u2379\u0005O\u0000\u0000\u2379\u237a\u0005C\u0000\u0000\u237a\u237b\u0005"+ + "T\u0000\u0000\u237b\u237c\u0005E\u0000\u0000\u237c\u237d\u0005T\u0000"+ + "\u0000\u237d\u237e\u0005_\u0000\u0000\u237e\u237f\u0005L\u0000\u0000\u237f"+ + "\u2380\u0005E\u0000\u0000\u2380\u2381\u0005N\u0000\u0000\u2381\u2382\u0005"+ + "G\u0000\u0000\u2382\u2383\u0005T\u0000\u0000\u2383\u2384\u0005H\u0000"+ + "\u0000\u2384\u0628\u0001\u0000\u0000\u0000\u2385\u2386\u0005O\u0000\u0000"+ + "\u2386\u2387\u0005R\u0000\u0000\u2387\u2388\u0005D\u0000\u0000\u2388\u062a"+ + "\u0001\u0000\u0000\u0000\u2389\u238a\u0005O\u0000\u0000\u238a\u238b\u0005"+ + "V\u0000\u0000\u238b\u238c\u0005E\u0000\u0000\u238c\u238d\u0005R\u0000"+ + "\u0000\u238d\u238e\u0005L\u0000\u0000\u238e\u238f\u0005A\u0000\u0000\u238f"+ + "\u2390\u0005P\u0000\u0000\u2390\u2391\u0005S\u0000\u0000\u2391\u062c\u0001"+ + "\u0000\u0000\u0000\u2392\u2393\u0005P\u0000\u0000\u2393\u2394\u0005E\u0000"+ + "\u0000\u2394\u2395\u0005R\u0000\u0000\u2395\u2396\u0005I\u0000\u0000\u2396"+ + "\u2397\u0005O\u0000\u0000\u2397\u2398\u0005D\u0000\u0000\u2398\u2399\u0005"+ + "_\u0000\u0000\u2399\u239a\u0005A\u0000\u0000\u239a\u239b\u0005D\u0000"+ + "\u0000\u239b\u239c\u0005D\u0000\u0000\u239c\u062e\u0001\u0000\u0000\u0000"+ + "\u239d\u239e\u0005P\u0000\u0000\u239e\u239f\u0005E\u0000\u0000\u239f\u23a0"+ + "\u0005R\u0000\u0000\u23a0\u23a1\u0005I\u0000\u0000\u23a1\u23a2\u0005O"+ + "\u0000\u0000\u23a2\u23a3\u0005D\u0000\u0000\u23a3\u23a4\u0005_\u0000\u0000"+ + "\u23a4\u23a5\u0005D\u0000\u0000\u23a5\u23a6\u0005I\u0000\u0000\u23a6\u23a7"+ + "\u0005F\u0000\u0000\u23a7\u23a8\u0005F\u0000\u0000\u23a8\u0630\u0001\u0000"+ + "\u0000\u0000\u23a9\u23aa\u0005P\u0000\u0000\u23aa\u23ab\u0005I\u0000\u0000"+ + "\u23ab\u0632\u0001\u0000\u0000\u0000\u23ac\u23ad\u0005P\u0000\u0000\u23ad"+ + "\u23ae\u0005O\u0000\u0000\u23ae\u23af\u0005I\u0000\u0000\u23af\u23b0\u0005"+ + "N\u0000\u0000\u23b0\u23b1\u0005T\u0000\u0000\u23b1\u23b2\u0005F\u0000"+ + "\u0000\u23b2\u23b3\u0005R\u0000\u0000\u23b3\u23b4\u0005O\u0000\u0000\u23b4"+ + "\u23b5\u0005M\u0000\u0000\u23b5\u23b6\u0005T\u0000\u0000\u23b6\u23b7\u0005"+ + "E\u0000\u0000\u23b7\u23b8\u0005X\u0000\u0000\u23b8\u23b9\u0005T\u0000"+ + "\u0000\u23b9\u0634\u0001\u0000\u0000\u0000\u23ba\u23bb\u0005P\u0000\u0000"+ + "\u23bb\u23bc\u0005O\u0000\u0000\u23bc\u23bd\u0005I\u0000\u0000\u23bd\u23be"+ + "\u0005N\u0000\u0000\u23be\u23bf\u0005T\u0000\u0000\u23bf\u23c0\u0005F"+ + "\u0000\u0000\u23c0\u23c1\u0005R\u0000\u0000\u23c1\u23c2\u0005O\u0000\u0000"+ + "\u23c2\u23c3\u0005M\u0000\u0000\u23c3\u23c4\u0005W\u0000\u0000\u23c4\u23c5"+ + "\u0005K\u0000\u0000\u23c5\u23c6\u0005B\u0000\u0000\u23c6\u0636\u0001\u0000"+ + "\u0000\u0000\u23c7\u23c8\u0005P\u0000\u0000\u23c8\u23c9\u0005O\u0000\u0000"+ + "\u23c9\u23ca\u0005I\u0000\u0000\u23ca\u23cb\u0005N\u0000\u0000\u23cb\u23cc"+ + "\u0005T\u0000\u0000\u23cc\u23cd\u0005N\u0000\u0000\u23cd\u0638\u0001\u0000"+ + "\u0000\u0000\u23ce\u23cf\u0005P\u0000\u0000\u23cf\u23d0\u0005O\u0000\u0000"+ + "\u23d0\u23d1\u0005L\u0000\u0000\u23d1\u23d2\u0005Y\u0000\u0000\u23d2\u23d3"+ + "\u0005F\u0000\u0000\u23d3\u23d4\u0005R\u0000\u0000\u23d4\u23d5\u0005O"+ + "\u0000\u0000\u23d5\u23d6\u0005M\u0000\u0000\u23d6\u23d7\u0005T\u0000\u0000"+ + "\u23d7\u23d8\u0005E\u0000\u0000\u23d8\u23d9\u0005X\u0000\u0000\u23d9\u23da"+ + "\u0005T\u0000\u0000\u23da\u063a\u0001\u0000\u0000\u0000\u23db\u23dc\u0005"+ + "P\u0000\u0000\u23dc\u23dd\u0005O\u0000\u0000\u23dd\u23de\u0005L\u0000"+ + "\u0000\u23de\u23df\u0005Y\u0000\u0000\u23df\u23e0\u0005F\u0000\u0000\u23e0"+ + "\u23e1\u0005R\u0000\u0000\u23e1\u23e2\u0005O\u0000\u0000\u23e2\u23e3\u0005"+ + "M\u0000\u0000\u23e3\u23e4\u0005W\u0000\u0000\u23e4\u23e5\u0005K\u0000"+ + "\u0000\u23e5\u23e6\u0005B\u0000\u0000\u23e6\u063c\u0001\u0000\u0000\u0000"+ + "\u23e7\u23e8\u0005P\u0000\u0000\u23e8\u23e9\u0005O\u0000\u0000\u23e9\u23ea"+ + "\u0005L\u0000\u0000\u23ea\u23eb\u0005Y\u0000\u0000\u23eb\u23ec\u0005G"+ + "\u0000\u0000\u23ec\u23ed\u0005O\u0000\u0000\u23ed\u23ee\u0005N\u0000\u0000"+ + "\u23ee\u23ef\u0005F\u0000\u0000\u23ef\u23f0\u0005R\u0000\u0000\u23f0\u23f1"+ + "\u0005O\u0000\u0000\u23f1\u23f2\u0005M\u0000\u0000\u23f2\u23f3\u0005T"+ + "\u0000\u0000\u23f3\u23f4\u0005E\u0000\u0000\u23f4\u23f5\u0005X\u0000\u0000"+ + "\u23f5\u23f6\u0005T\u0000\u0000\u23f6\u063e\u0001\u0000\u0000\u0000\u23f7"+ + "\u23f8\u0005P\u0000\u0000\u23f8\u23f9\u0005O\u0000\u0000\u23f9\u23fa\u0005"+ + "L\u0000\u0000\u23fa\u23fb\u0005Y\u0000\u0000\u23fb\u23fc\u0005G\u0000"+ + "\u0000\u23fc\u23fd\u0005O\u0000\u0000\u23fd\u23fe\u0005N\u0000\u0000\u23fe"+ + "\u23ff\u0005F\u0000\u0000\u23ff\u2400\u0005R\u0000\u0000\u2400\u2401\u0005"+ + "O\u0000\u0000\u2401\u2402\u0005M\u0000\u0000\u2402\u2403\u0005W\u0000"+ + "\u0000\u2403\u2404\u0005K\u0000\u0000\u2404\u2405\u0005B\u0000\u0000\u2405"+ + "\u0640\u0001\u0000\u0000\u0000\u2406\u2407\u0005P\u0000\u0000\u2407\u2408"+ + "\u0005O\u0000\u0000\u2408\u2409\u0005W\u0000\u0000\u2409\u0642\u0001\u0000"+ + "\u0000\u0000\u240a\u240b\u0005P\u0000\u0000\u240b\u240c\u0005O\u0000\u0000"+ + "\u240c\u240d\u0005W\u0000\u0000\u240d\u240e\u0005E\u0000\u0000\u240e\u240f"+ + "\u0005R\u0000\u0000\u240f\u0644\u0001\u0000\u0000\u0000\u2410\u2411\u0005"+ + "Q\u0000\u0000\u2411\u2412\u0005U\u0000\u0000\u2412\u2413\u0005O\u0000"+ + "\u0000\u2413\u2414\u0005T\u0000\u0000\u2414\u2415\u0005E\u0000\u0000\u2415"+ + "\u0646\u0001\u0000\u0000\u0000\u2416\u2417\u0005R\u0000\u0000\u2417\u2418"+ + "\u0005A\u0000\u0000\u2418\u2419\u0005D\u0000\u0000\u2419\u241a\u0005I"+ + "\u0000\u0000\u241a\u241b\u0005A\u0000\u0000\u241b\u241c\u0005N\u0000\u0000"+ + "\u241c\u241d\u0005S\u0000\u0000\u241d\u0648\u0001\u0000\u0000\u0000\u241e"+ + "\u241f\u0005R\u0000\u0000\u241f\u2420\u0005A\u0000\u0000\u2420\u2421\u0005"+ + "N\u0000\u0000\u2421\u2422\u0005D\u0000\u0000\u2422\u064a\u0001\u0000\u0000"+ + "\u0000\u2423\u2424\u0005R\u0000\u0000\u2424\u2425\u0005A\u0000\u0000\u2425"+ + "\u2426\u0005N\u0000\u0000\u2426\u2427\u0005D\u0000\u0000\u2427\u2428\u0005"+ + "O\u0000\u0000\u2428\u2429\u0005M\u0000\u0000\u2429\u242a\u0005_\u0000"+ + "\u0000\u242a\u242b\u0005B\u0000\u0000\u242b\u242c\u0005Y\u0000\u0000\u242c"+ + "\u242d\u0005T\u0000\u0000\u242d\u242e\u0005E\u0000\u0000\u242e\u242f\u0005"+ + "S\u0000\u0000\u242f\u064c\u0001\u0000\u0000\u0000\u2430\u2431\u0005R\u0000"+ + "\u0000\u2431\u2432\u0005E\u0000\u0000\u2432\u2433\u0005L\u0000\u0000\u2433"+ + "\u2434\u0005E\u0000\u0000\u2434\u2435\u0005A\u0000\u0000\u2435\u2436\u0005"+ + "S\u0000\u0000\u2436\u2437\u0005E\u0000\u0000\u2437\u2438\u0005_\u0000"+ + "\u0000\u2438\u2439\u0005L\u0000\u0000\u2439\u243a\u0005O\u0000\u0000\u243a"+ + "\u243b\u0005C\u0000\u0000\u243b\u243c\u0005K\u0000\u0000\u243c\u064e\u0001"+ + "\u0000\u0000\u0000\u243d\u243e\u0005R\u0000\u0000\u243e\u243f\u0005E\u0000"+ + "\u0000\u243f\u2440\u0005V\u0000\u0000\u2440\u2441\u0005E\u0000\u0000\u2441"+ + "\u2442\u0005R\u0000\u0000\u2442\u2443\u0005S\u0000\u0000\u2443\u2444\u0005"+ + "E\u0000\u0000\u2444\u0650\u0001\u0000\u0000\u0000\u2445\u2446\u0005R\u0000"+ + "\u0000\u2446\u2447\u0005O\u0000\u0000\u2447\u2448\u0005U\u0000\u0000\u2448"+ + "\u2449\u0005N\u0000\u0000\u2449\u244a\u0005D\u0000\u0000\u244a\u0652\u0001"+ + "\u0000\u0000\u0000\u244b\u244c\u0005R\u0000\u0000\u244c\u244d\u0005O\u0000"+ + "\u0000\u244d\u244e\u0005W\u0000\u0000\u244e\u244f\u0005_\u0000\u0000\u244f"+ + "\u2450\u0005C\u0000\u0000\u2450\u2451\u0005O\u0000\u0000\u2451\u2452\u0005"+ + "U\u0000\u0000\u2452\u2453\u0005N\u0000\u0000\u2453\u2454\u0005T\u0000"+ + "\u0000\u2454\u0654\u0001\u0000\u0000\u0000\u2455\u2456\u0005R\u0000\u0000"+ + "\u2456\u2457\u0005P\u0000\u0000\u2457\u2458\u0005A\u0000\u0000\u2458\u2459"+ + "\u0005D\u0000\u0000\u2459\u0656\u0001\u0000\u0000\u0000\u245a\u245b\u0005"+ + "R\u0000\u0000\u245b\u245c\u0005T\u0000\u0000\u245c\u245d\u0005R\u0000"+ + "\u0000\u245d\u245e\u0005I\u0000\u0000\u245e\u245f\u0005M\u0000\u0000\u245f"+ + "\u0658\u0001\u0000\u0000\u0000\u2460\u2461\u0005S\u0000\u0000\u2461\u2462"+ + "\u0005E\u0000\u0000\u2462\u2463\u0005C\u0000\u0000\u2463\u2464\u0005_"+ + "\u0000\u0000\u2464\u2465\u0005T\u0000\u0000\u2465\u2466\u0005O\u0000\u0000"+ + "\u2466\u2467\u0005_\u0000\u0000\u2467\u2468\u0005T\u0000\u0000\u2468\u2469"+ + "\u0005I\u0000\u0000\u2469\u246a\u0005M\u0000\u0000\u246a\u246b\u0005E"+ + "\u0000\u0000\u246b\u065a\u0001\u0000\u0000\u0000\u246c\u246d\u0005S\u0000"+ + "\u0000\u246d\u246e\u0005E\u0000\u0000\u246e\u246f\u0005S\u0000\u0000\u246f"+ + "\u2470\u0005S\u0000\u0000\u2470\u2471\u0005I\u0000\u0000\u2471\u2472\u0005"+ + "O\u0000\u0000\u2472\u2473\u0005N\u0000\u0000\u2473\u2474\u0005_\u0000"+ + "\u0000\u2474\u2475\u0005U\u0000\u0000\u2475\u2476\u0005S\u0000\u0000\u2476"+ + "\u2477\u0005E\u0000\u0000\u2477\u2478\u0005R\u0000\u0000\u2478\u065c\u0001"+ + "\u0000\u0000\u0000\u2479\u247a\u0005S\u0000\u0000\u247a\u247b\u0005H\u0000"+ + "\u0000\u247b\u247c\u0005A\u0000\u0000\u247c\u065e\u0001\u0000\u0000\u0000"+ + "\u247d\u247e\u0005S\u0000\u0000\u247e\u247f\u0005H\u0000\u0000\u247f\u2480"+ + "\u0005A\u0000\u0000\u2480\u2481\u00051\u0000\u0000\u2481\u0660\u0001\u0000"+ + "\u0000\u0000\u2482\u2483\u0005S\u0000\u0000\u2483\u2484\u0005H\u0000\u0000"+ + "\u2484\u2485\u0005A\u0000\u0000\u2485\u2486\u00052\u0000\u0000\u2486\u0662"+ + "\u0001\u0000\u0000\u0000\u2487\u2488\u0005S\u0000\u0000\u2488\u2489\u0005"+ + "I\u0000\u0000\u2489\u248a\u0005G\u0000\u0000\u248a\u248b\u0005N\u0000"+ + "\u0000\u248b\u0664\u0001\u0000\u0000\u0000\u248c\u248d\u0005S\u0000\u0000"+ + "\u248d\u248e\u0005I\u0000\u0000\u248e\u248f\u0005N\u0000\u0000\u248f\u0666"+ + "\u0001\u0000\u0000\u0000\u2490\u2491\u0005S\u0000\u0000\u2491\u2492\u0005"+ + "L\u0000\u0000\u2492\u2493\u0005E\u0000\u0000\u2493\u2494\u0005E\u0000"+ + "\u0000\u2494\u2495\u0005P\u0000\u0000\u2495\u0668\u0001\u0000\u0000\u0000"+ + "\u2496\u2497\u0005S\u0000\u0000\u2497\u2498\u0005O\u0000\u0000\u2498\u2499"+ + "\u0005U\u0000\u0000\u2499\u249a\u0005N\u0000\u0000\u249a\u249b\u0005D"+ + "\u0000\u0000\u249b\u249c\u0005E\u0000\u0000\u249c\u249d\u0005X\u0000\u0000"+ + "\u249d\u066a\u0001\u0000\u0000\u0000\u249e\u249f\u0005S\u0000\u0000\u249f"+ + "\u24a0\u0005Q\u0000\u0000\u24a0\u24a1\u0005L\u0000\u0000\u24a1\u24a2\u0005"+ + "_\u0000\u0000\u24a2\u24a3\u0005T\u0000\u0000\u24a3\u24a4\u0005H\u0000"+ + "\u0000\u24a4\u24a5\u0005R\u0000\u0000\u24a5\u24a6\u0005E\u0000\u0000\u24a6"+ + "\u24a7\u0005A\u0000\u0000\u24a7\u24a8\u0005D\u0000\u0000\u24a8\u24a9\u0005"+ + "_\u0000\u0000\u24a9\u24aa\u0005W\u0000\u0000\u24aa\u24ab\u0005A\u0000"+ + "\u0000\u24ab\u24ac\u0005I\u0000\u0000\u24ac\u24ad\u0005T\u0000\u0000\u24ad"+ + "\u24ae\u0005_\u0000\u0000\u24ae\u24af\u0005A\u0000\u0000\u24af\u24b0\u0005"+ + "F\u0000\u0000\u24b0\u24b1\u0005T\u0000\u0000\u24b1\u24b2\u0005E\u0000"+ + "\u0000\u24b2\u24b3\u0005R\u0000\u0000\u24b3\u24b4\u0005_\u0000\u0000\u24b4"+ + "\u24b5\u0005G\u0000\u0000\u24b5\u24b6\u0005T\u0000\u0000\u24b6\u24b7\u0005"+ + "I\u0000\u0000\u24b7\u24b8\u0005D\u0000\u0000\u24b8\u24b9\u0005S\u0000"+ + "\u0000\u24b9\u066c\u0001\u0000\u0000\u0000\u24ba\u24bb\u0005S\u0000\u0000"+ + "\u24bb\u24bc\u0005Q\u0000\u0000\u24bc\u24bd\u0005R\u0000\u0000\u24bd\u24be"+ + "\u0005T\u0000\u0000\u24be\u066e\u0001\u0000\u0000\u0000\u24bf\u24c0\u0005"+ + "S\u0000\u0000\u24c0\u24c1\u0005R\u0000\u0000\u24c1\u24c2\u0005I\u0000"+ + "\u0000\u24c2\u24c3\u0005D\u0000\u0000\u24c3\u0670\u0001\u0000\u0000\u0000"+ + "\u24c4\u24c5\u0005S\u0000\u0000\u24c5\u24c6\u0005T\u0000\u0000\u24c6\u24c7"+ + "\u0005A\u0000\u0000\u24c7\u24c8\u0005R\u0000\u0000\u24c8\u24c9\u0005T"+ + "\u0000\u0000\u24c9\u24ca\u0005P\u0000\u0000\u24ca\u24cb\u0005O\u0000\u0000"+ + "\u24cb\u24cc\u0005I\u0000\u0000\u24cc\u24cd\u0005N\u0000\u0000\u24cd\u24ce"+ + "\u0005T\u0000\u0000\u24ce\u0672\u0001\u0000\u0000\u0000\u24cf\u24d0\u0005"+ + "S\u0000\u0000\u24d0\u24d1\u0005T\u0000\u0000\u24d1\u24d2\u0005R\u0000"+ + "\u0000\u24d2\u24d3\u0005C\u0000\u0000\u24d3\u24d4\u0005M\u0000\u0000\u24d4"+ + "\u24d5\u0005P\u0000\u0000\u24d5\u0674\u0001\u0000\u0000\u0000\u24d6\u24d7"+ + "\u0005S\u0000\u0000\u24d7\u24d8\u0005T\u0000\u0000\u24d8\u24d9\u0005R"+ + "\u0000\u0000\u24d9\u24da\u0005_\u0000\u0000\u24da\u24db\u0005T\u0000\u0000"+ + "\u24db\u24dc\u0005O\u0000\u0000\u24dc\u24dd\u0005_\u0000\u0000\u24dd\u24de"+ + "\u0005D\u0000\u0000\u24de\u24df\u0005A\u0000\u0000\u24df\u24e0\u0005T"+ + "\u0000\u0000\u24e0\u24e1\u0005E\u0000\u0000\u24e1\u0676\u0001\u0000\u0000"+ + "\u0000\u24e2\u24e3\u0005S\u0000\u0000\u24e3\u24e4\u0005T\u0000\u0000\u24e4"+ + "\u24e5\u0005_\u0000\u0000\u24e5\u24e6\u0005A\u0000\u0000\u24e6\u24e7\u0005"+ + "R\u0000\u0000\u24e7\u24e8\u0005E\u0000\u0000\u24e8\u24e9\u0005A\u0000"+ + "\u0000\u24e9\u0678\u0001\u0000\u0000\u0000\u24ea\u24eb\u0005S\u0000\u0000"+ + "\u24eb\u24ec\u0005T\u0000\u0000\u24ec\u24ed\u0005_\u0000\u0000\u24ed\u24ee"+ + "\u0005A\u0000\u0000\u24ee\u24ef\u0005S\u0000\u0000\u24ef\u24f0\u0005B"+ + "\u0000\u0000\u24f0\u24f1\u0005I\u0000\u0000\u24f1\u24f2\u0005N\u0000\u0000"+ + "\u24f2\u24f3\u0005A\u0000\u0000\u24f3\u24f4\u0005R\u0000\u0000\u24f4\u24f5"+ + "\u0005Y\u0000\u0000\u24f5\u067a\u0001\u0000\u0000\u0000\u24f6\u24f7\u0005"+ + "S\u0000\u0000\u24f7\u24f8\u0005T\u0000\u0000\u24f8\u24f9\u0005_\u0000"+ + "\u0000\u24f9\u24fa\u0005A\u0000\u0000\u24fa\u24fb\u0005S\u0000\u0000\u24fb"+ + "\u24fc\u0005T\u0000\u0000\u24fc\u24fd\u0005E\u0000\u0000\u24fd\u24fe\u0005"+ + "X\u0000\u0000\u24fe\u24ff\u0005T\u0000\u0000\u24ff\u067c\u0001\u0000\u0000"+ + "\u0000\u2500\u2501\u0005S\u0000\u0000\u2501\u2502\u0005T\u0000\u0000\u2502"+ + "\u2503\u0005_\u0000\u0000\u2503\u2504\u0005A\u0000\u0000\u2504\u2505\u0005"+ + "S\u0000\u0000\u2505\u2506\u0005W\u0000\u0000\u2506\u2507\u0005K\u0000"+ + "\u0000\u2507\u2508\u0005B\u0000\u0000\u2508\u067e\u0001\u0000\u0000\u0000"+ + "\u2509\u250a\u0005S\u0000\u0000\u250a\u250b\u0005T\u0000\u0000\u250b\u250c"+ + "\u0005_\u0000\u0000\u250c\u250d\u0005A\u0000\u0000\u250d\u250e\u0005S"+ + "\u0000\u0000\u250e\u250f\u0005W\u0000\u0000\u250f\u2510\u0005K\u0000\u0000"+ + "\u2510\u2511\u0005T\u0000\u0000\u2511\u0680\u0001\u0000\u0000\u0000\u2512"+ + "\u2513\u0005S\u0000\u0000\u2513\u2514\u0005T\u0000\u0000\u2514\u2515\u0005"+ + "_\u0000\u0000\u2515\u2516\u0005B\u0000\u0000\u2516\u2517\u0005U\u0000"+ + "\u0000\u2517\u2518\u0005F\u0000\u0000\u2518\u2519\u0005F\u0000\u0000\u2519"+ + "\u251a\u0005E\u0000\u0000\u251a\u251b\u0005R\u0000\u0000\u251b\u0682\u0001"+ + "\u0000\u0000\u0000\u251c\u251d\u0005S\u0000\u0000\u251d\u251e\u0005T\u0000"+ + "\u0000\u251e\u251f\u0005_\u0000\u0000\u251f\u2520\u0005C\u0000\u0000\u2520"+ + "\u2521\u0005E\u0000\u0000\u2521\u2522\u0005N\u0000\u0000\u2522\u2523\u0005"+ + "T\u0000\u0000\u2523\u2524\u0005R\u0000\u0000\u2524\u2525\u0005O\u0000"+ + "\u0000\u2525\u2526\u0005I\u0000\u0000\u2526\u2527\u0005D\u0000\u0000\u2527"+ + "\u0684\u0001\u0000\u0000\u0000\u2528\u2529\u0005S\u0000\u0000\u2529\u252a"+ + "\u0005T\u0000\u0000\u252a\u252b\u0005_\u0000\u0000\u252b\u252c\u0005C"+ + "\u0000\u0000\u252c\u252d\u0005O\u0000\u0000\u252d\u252e\u0005N\u0000\u0000"+ + "\u252e\u252f\u0005T\u0000\u0000\u252f\u2530\u0005A\u0000\u0000\u2530\u2531"+ + "\u0005I\u0000\u0000\u2531\u2532\u0005N\u0000\u0000\u2532\u2533\u0005S"+ + "\u0000\u0000\u2533\u0686\u0001\u0000\u0000\u0000\u2534\u2535\u0005S\u0000"+ + "\u0000\u2535\u2536\u0005T\u0000\u0000\u2536\u2537\u0005_\u0000\u0000\u2537"+ + "\u2538\u0005C\u0000\u0000\u2538\u2539\u0005R\u0000\u0000\u2539\u253a\u0005"+ + "O\u0000\u0000\u253a\u253b\u0005S\u0000\u0000\u253b\u253c\u0005S\u0000"+ + "\u0000\u253c\u253d\u0005E\u0000\u0000\u253d\u253e\u0005S\u0000\u0000\u253e"+ + "\u0688\u0001\u0000\u0000\u0000\u253f\u2540\u0005S\u0000\u0000\u2540\u2541"+ + "\u0005T\u0000\u0000\u2541\u2542\u0005_\u0000\u0000\u2542\u2543\u0005D"+ + "\u0000\u0000\u2543\u2544\u0005I\u0000\u0000\u2544\u2545\u0005F\u0000\u0000"+ + "\u2545\u2546\u0005F\u0000\u0000\u2546\u2547\u0005E\u0000\u0000\u2547\u2548"+ + "\u0005R\u0000\u0000\u2548\u2549\u0005E\u0000\u0000\u2549\u254a\u0005N"+ + "\u0000\u0000\u254a\u254b\u0005C\u0000\u0000\u254b\u254c\u0005E\u0000\u0000"+ + "\u254c\u068a\u0001\u0000\u0000\u0000\u254d\u254e\u0005S\u0000\u0000\u254e"+ + "\u254f\u0005T\u0000\u0000\u254f\u2550\u0005_\u0000\u0000\u2550\u2551\u0005"+ + "D\u0000\u0000\u2551\u2552\u0005I\u0000\u0000\u2552\u2553\u0005M\u0000"+ + "\u0000\u2553\u2554\u0005E\u0000\u0000\u2554\u2555\u0005N\u0000\u0000\u2555"+ + "\u2556\u0005S\u0000\u0000\u2556\u2557\u0005I\u0000\u0000\u2557\u2558\u0005"+ + "O\u0000\u0000\u2558\u2559\u0005N\u0000\u0000\u2559\u068c\u0001\u0000\u0000"+ + "\u0000\u255a\u255b\u0005S\u0000\u0000\u255b\u255c\u0005T\u0000\u0000\u255c"+ + "\u255d\u0005_\u0000\u0000\u255d\u255e\u0005D\u0000\u0000\u255e\u255f\u0005"+ + "I\u0000\u0000\u255f\u2560\u0005S\u0000\u0000\u2560\u2561\u0005J\u0000"+ + "\u0000\u2561\u2562\u0005O\u0000\u0000\u2562\u2563\u0005I\u0000\u0000\u2563"+ + "\u2564\u0005N\u0000\u0000\u2564\u2565\u0005T\u0000\u0000\u2565\u068e\u0001"+ + "\u0000\u0000\u0000\u2566\u2567\u0005S\u0000\u0000\u2567\u2568\u0005T\u0000"+ + "\u0000\u2568\u2569\u0005_\u0000\u0000\u2569\u256a\u0005D\u0000\u0000\u256a"+ + "\u256b\u0005I\u0000\u0000\u256b\u256c\u0005S\u0000\u0000\u256c\u256d\u0005"+ + "T\u0000\u0000\u256d\u256e\u0005A\u0000\u0000\u256e\u256f\u0005N\u0000"+ + "\u0000\u256f\u2570\u0005C\u0000\u0000\u2570\u2571\u0005E\u0000\u0000\u2571"+ + "\u0690\u0001\u0000\u0000\u0000\u2572\u2573\u0005S\u0000\u0000\u2573\u2574"+ + "\u0005T\u0000\u0000\u2574\u2575\u0005_\u0000\u0000\u2575\u2576\u0005E"+ + "\u0000\u0000\u2576\u2577\u0005N\u0000\u0000\u2577\u2578\u0005D\u0000\u0000"+ + "\u2578\u2579\u0005P\u0000\u0000\u2579\u257a\u0005O\u0000\u0000\u257a\u257b"+ + "\u0005I\u0000\u0000\u257b\u257c\u0005N\u0000\u0000\u257c\u257d\u0005T"+ + "\u0000\u0000\u257d\u0692\u0001\u0000\u0000\u0000\u257e\u257f\u0005S\u0000"+ + "\u0000\u257f\u2580\u0005T\u0000\u0000\u2580\u2581\u0005_\u0000\u0000\u2581"+ + "\u2582\u0005E\u0000\u0000\u2582\u2583\u0005N\u0000\u0000\u2583\u2584\u0005"+ + "V\u0000\u0000\u2584\u2585\u0005E\u0000\u0000\u2585\u2586\u0005L\u0000"+ + "\u0000\u2586\u2587\u0005O\u0000\u0000\u2587\u2588\u0005P\u0000\u0000\u2588"+ + "\u2589\u0005E\u0000\u0000\u2589\u0694\u0001\u0000\u0000\u0000\u258a\u258b"+ + "\u0005S\u0000\u0000\u258b\u258c\u0005T\u0000\u0000\u258c\u258d\u0005_"+ + "\u0000\u0000\u258d\u258e\u0005E\u0000\u0000\u258e\u258f\u0005Q\u0000\u0000"+ + "\u258f\u2590\u0005U\u0000\u0000\u2590\u2591\u0005A\u0000\u0000\u2591\u2592"+ + "\u0005L\u0000\u0000\u2592\u2593\u0005S\u0000\u0000\u2593\u0696\u0001\u0000"+ + "\u0000\u0000\u2594\u2595\u0005S\u0000\u0000\u2595\u2596\u0005T\u0000\u0000"+ + "\u2596\u2597\u0005_\u0000\u0000\u2597\u2598\u0005E\u0000\u0000\u2598\u2599"+ + "\u0005X\u0000\u0000\u2599\u259a\u0005T\u0000\u0000\u259a\u259b\u0005E"+ + "\u0000\u0000\u259b\u259c\u0005R\u0000\u0000\u259c\u259d\u0005I\u0000\u0000"+ + "\u259d\u259e\u0005O\u0000\u0000\u259e\u259f\u0005R\u0000\u0000\u259f\u25a0"+ + "\u0005R\u0000\u0000\u25a0\u25a1\u0005I\u0000\u0000\u25a1\u25a2\u0005N"+ + "\u0000\u0000\u25a2\u25a3\u0005G\u0000\u0000\u25a3\u0698\u0001\u0000\u0000"+ + "\u0000\u25a4\u25a5\u0005S\u0000\u0000\u25a5\u25a6\u0005T\u0000\u0000\u25a6"+ + "\u25a7\u0005_\u0000\u0000\u25a7\u25a8\u0005G\u0000\u0000\u25a8\u25a9\u0005"+ + "E\u0000\u0000\u25a9\u25aa\u0005O\u0000\u0000\u25aa\u25ab\u0005M\u0000"+ + "\u0000\u25ab\u25ac\u0005C\u0000\u0000\u25ac\u25ad\u0005O\u0000\u0000\u25ad"+ + "\u25ae\u0005L\u0000\u0000\u25ae\u25af\u0005L\u0000\u0000\u25af\u25b0\u0005"+ + "F\u0000\u0000\u25b0\u25b1\u0005R\u0000\u0000\u25b1\u25b2\u0005O\u0000"+ + "\u0000\u25b2\u25b3\u0005M\u0000\u0000\u25b3\u25b4\u0005T\u0000\u0000\u25b4"+ + "\u25b5\u0005E\u0000\u0000\u25b5\u25b6\u0005X\u0000\u0000\u25b6\u25b7\u0005"+ + "T\u0000\u0000\u25b7\u069a\u0001\u0000\u0000\u0000\u25b8\u25b9\u0005S\u0000"+ + "\u0000\u25b9\u25ba\u0005T\u0000\u0000\u25ba\u25bb\u0005_\u0000\u0000\u25bb"+ + "\u25bc\u0005G\u0000\u0000\u25bc\u25bd\u0005E\u0000\u0000\u25bd\u25be\u0005"+ + "O\u0000\u0000\u25be\u25bf\u0005M\u0000\u0000\u25bf\u25c0\u0005C\u0000"+ + "\u0000\u25c0\u25c1\u0005O\u0000\u0000\u25c1\u25c2\u0005L\u0000\u0000\u25c2"+ + "\u25c3\u0005L\u0000\u0000\u25c3\u25c4\u0005F\u0000\u0000\u25c4\u25c5\u0005"+ + "R\u0000\u0000\u25c5\u25c6\u0005O\u0000\u0000\u25c6\u25c7\u0005M\u0000"+ + "\u0000\u25c7\u25c8\u0005T\u0000\u0000\u25c8\u25c9\u0005X\u0000\u0000\u25c9"+ + "\u25ca\u0005T\u0000\u0000\u25ca\u069c\u0001\u0000\u0000\u0000\u25cb\u25cc"+ + "\u0005S\u0000\u0000\u25cc\u25cd\u0005T\u0000\u0000\u25cd\u25ce\u0005_"+ + "\u0000\u0000\u25ce\u25cf\u0005G\u0000\u0000\u25cf\u25d0\u0005E\u0000\u0000"+ + "\u25d0\u25d1\u0005O\u0000\u0000\u25d1\u25d2\u0005M\u0000\u0000\u25d2\u25d3"+ + "\u0005C\u0000\u0000\u25d3\u25d4\u0005O\u0000\u0000\u25d4\u25d5\u0005L"+ + "\u0000\u0000\u25d5\u25d6\u0005L\u0000\u0000\u25d6\u25d7\u0005F\u0000\u0000"+ + "\u25d7\u25d8\u0005R\u0000\u0000\u25d8\u25d9\u0005O\u0000\u0000\u25d9\u25da"+ + "\u0005M\u0000\u0000\u25da\u25db\u0005W\u0000\u0000\u25db\u25dc\u0005K"+ + "\u0000\u0000\u25dc\u25dd\u0005B\u0000\u0000\u25dd\u069e\u0001\u0000\u0000"+ + "\u0000\u25de\u25df\u0005S\u0000\u0000\u25df\u25e0\u0005T\u0000\u0000\u25e0"+ + "\u25e1\u0005_\u0000\u0000\u25e1\u25e2\u0005G\u0000\u0000\u25e2\u25e3\u0005"+ + "E\u0000\u0000\u25e3\u25e4\u0005O\u0000\u0000\u25e4\u25e5\u0005M\u0000"+ + "\u0000\u25e5\u25e6\u0005E\u0000\u0000\u25e6\u25e7\u0005T\u0000\u0000\u25e7"+ + "\u25e8\u0005R\u0000\u0000\u25e8\u25e9\u0005Y\u0000\u0000\u25e9\u25ea\u0005"+ + "C\u0000\u0000\u25ea\u25eb\u0005O\u0000\u0000\u25eb\u25ec\u0005L\u0000"+ + "\u0000\u25ec\u25ed\u0005L\u0000\u0000\u25ed\u25ee\u0005E\u0000\u0000\u25ee"+ + "\u25ef\u0005C\u0000\u0000\u25ef\u25f0\u0005T\u0000\u0000\u25f0\u25f1\u0005"+ + "I\u0000\u0000\u25f1\u25f2\u0005O\u0000\u0000\u25f2\u25f3\u0005N\u0000"+ + "\u0000\u25f3\u25f4\u0005F\u0000\u0000\u25f4\u25f5\u0005R\u0000\u0000\u25f5"+ + "\u25f6\u0005O\u0000\u0000\u25f6\u25f7\u0005M\u0000\u0000\u25f7\u25f8\u0005"+ + "T\u0000\u0000\u25f8\u25f9\u0005E\u0000\u0000\u25f9\u25fa\u0005X\u0000"+ + "\u0000\u25fa\u25fb\u0005T\u0000\u0000\u25fb\u06a0\u0001\u0000\u0000\u0000"+ + "\u25fc\u25fd\u0005S\u0000\u0000\u25fd\u25fe\u0005T\u0000\u0000\u25fe\u25ff"+ + "\u0005_\u0000\u0000\u25ff\u2600\u0005G\u0000\u0000\u2600\u2601\u0005E"+ + "\u0000\u0000\u2601\u2602\u0005O\u0000\u0000\u2602\u2603\u0005M\u0000\u0000"+ + "\u2603\u2604\u0005E\u0000\u0000\u2604\u2605\u0005T\u0000\u0000\u2605\u2606"+ + "\u0005R\u0000\u0000\u2606\u2607\u0005Y\u0000\u0000\u2607\u2608\u0005C"+ + "\u0000\u0000\u2608\u2609\u0005O\u0000\u0000\u2609\u260a\u0005L\u0000\u0000"+ + "\u260a\u260b\u0005L\u0000\u0000\u260b\u260c\u0005E\u0000\u0000\u260c\u260d"+ + "\u0005C\u0000\u0000\u260d\u260e\u0005T\u0000\u0000\u260e\u260f\u0005I"+ + "\u0000\u0000\u260f\u2610\u0005O\u0000\u0000\u2610\u2611\u0005N\u0000\u0000"+ + "\u2611\u2612\u0005F\u0000\u0000\u2612\u2613\u0005R\u0000\u0000\u2613\u2614"+ + "\u0005O\u0000\u0000\u2614\u2615\u0005M\u0000\u0000\u2615\u2616\u0005W"+ + "\u0000\u0000\u2616\u2617\u0005K\u0000\u0000\u2617\u2618\u0005B\u0000\u0000"+ + "\u2618\u06a2\u0001\u0000\u0000\u0000\u2619\u261a\u0005S\u0000\u0000\u261a"+ + "\u261b\u0005T\u0000\u0000\u261b\u261c\u0005_\u0000\u0000\u261c\u261d\u0005"+ + "G\u0000\u0000\u261d\u261e\u0005E\u0000\u0000\u261e\u261f\u0005O\u0000"+ + "\u0000\u261f\u2620\u0005M\u0000\u0000\u2620\u2621\u0005E\u0000\u0000\u2621"+ + "\u2622\u0005T\u0000\u0000\u2622\u2623\u0005R\u0000\u0000\u2623\u2624\u0005"+ + "Y\u0000\u0000\u2624\u2625\u0005F\u0000\u0000\u2625\u2626\u0005R\u0000"+ + "\u0000\u2626\u2627\u0005O\u0000\u0000\u2627\u2628\u0005M\u0000\u0000\u2628"+ + "\u2629\u0005T\u0000\u0000\u2629\u262a\u0005E\u0000\u0000\u262a\u262b\u0005"+ + "X\u0000\u0000\u262b\u262c\u0005T\u0000\u0000\u262c\u06a4\u0001\u0000\u0000"+ + "\u0000\u262d\u262e\u0005S\u0000\u0000\u262e\u262f\u0005T\u0000\u0000\u262f"+ + "\u2630\u0005_\u0000\u0000\u2630\u2631\u0005G\u0000\u0000\u2631\u2632\u0005"+ + "E\u0000\u0000\u2632\u2633\u0005O\u0000\u0000\u2633\u2634\u0005M\u0000"+ + "\u0000\u2634\u2635\u0005E\u0000\u0000\u2635\u2636\u0005T\u0000\u0000\u2636"+ + "\u2637\u0005R\u0000\u0000\u2637\u2638\u0005Y\u0000\u0000\u2638\u2639\u0005"+ + "F\u0000\u0000\u2639\u263a\u0005R\u0000\u0000\u263a\u263b\u0005O\u0000"+ + "\u0000\u263b\u263c\u0005M\u0000\u0000\u263c\u263d\u0005W\u0000\u0000\u263d"+ + "\u263e\u0005K\u0000\u0000\u263e\u263f\u0005B\u0000\u0000\u263f\u06a6\u0001"+ + "\u0000\u0000\u0000\u2640\u2641\u0005S\u0000\u0000\u2641\u2642\u0005T\u0000"+ + "\u0000\u2642\u2643\u0005_\u0000\u0000\u2643\u2644\u0005G\u0000\u0000\u2644"+ + "\u2645\u0005E\u0000\u0000\u2645\u2646\u0005O\u0000\u0000\u2646\u2647\u0005"+ + "M\u0000\u0000\u2647\u2648\u0005E\u0000\u0000\u2648\u2649\u0005T\u0000"+ + "\u0000\u2649\u264a\u0005R\u0000\u0000\u264a\u264b\u0005Y\u0000\u0000\u264b"+ + "\u264c\u0005N\u0000\u0000\u264c\u06a8\u0001\u0000\u0000\u0000\u264d\u264e"+ + "\u0005S\u0000\u0000\u264e\u264f\u0005T\u0000\u0000\u264f\u2650\u0005_"+ + "\u0000\u0000\u2650\u2651\u0005G\u0000\u0000\u2651\u2652\u0005E\u0000\u0000"+ + "\u2652\u2653\u0005O\u0000\u0000\u2653\u2654\u0005M\u0000\u0000\u2654\u2655"+ + "\u0005E\u0000\u0000\u2655\u2656\u0005T\u0000\u0000\u2656\u2657\u0005R"+ + "\u0000\u0000\u2657\u2658\u0005Y\u0000\u0000\u2658\u2659\u0005T\u0000\u0000"+ + "\u2659\u265a\u0005Y\u0000\u0000\u265a\u265b\u0005P\u0000\u0000\u265b\u265c"+ + "\u0005E\u0000\u0000\u265c\u06aa\u0001\u0000\u0000\u0000\u265d\u265e\u0005"+ + "S\u0000\u0000\u265e\u265f\u0005T\u0000\u0000\u265f\u2660\u0005_\u0000"+ + "\u0000\u2660\u2661\u0005G\u0000\u0000\u2661\u2662\u0005E\u0000\u0000\u2662"+ + "\u2663\u0005O\u0000\u0000\u2663\u2664\u0005M\u0000\u0000\u2664\u2665\u0005"+ + "F\u0000\u0000\u2665\u2666\u0005R\u0000\u0000\u2666\u2667\u0005O\u0000"+ + "\u0000\u2667\u2668\u0005M\u0000\u0000\u2668\u2669\u0005T\u0000\u0000\u2669"+ + "\u266a\u0005E\u0000\u0000\u266a\u266b\u0005X\u0000\u0000\u266b\u266c\u0005"+ + "T\u0000\u0000\u266c\u06ac\u0001\u0000\u0000\u0000\u266d\u266e\u0005S\u0000"+ + "\u0000\u266e\u266f\u0005T\u0000\u0000\u266f\u2670\u0005_\u0000\u0000\u2670"+ + "\u2671\u0005G\u0000\u0000\u2671\u2672\u0005E\u0000\u0000\u2672\u2673\u0005"+ + "O\u0000\u0000\u2673\u2674\u0005M\u0000\u0000\u2674\u2675\u0005F\u0000"+ + "\u0000\u2675\u2676\u0005R\u0000\u0000\u2676\u2677\u0005O\u0000\u0000\u2677"+ + "\u2678\u0005M\u0000\u0000\u2678\u2679\u0005W\u0000\u0000\u2679\u267a\u0005"+ + "K\u0000\u0000\u267a\u267b\u0005B\u0000\u0000\u267b\u06ae\u0001\u0000\u0000"+ + "\u0000\u267c\u267d\u0005S\u0000\u0000\u267d\u267e\u0005T\u0000\u0000\u267e"+ + "\u267f\u0005_\u0000\u0000\u267f\u2680\u0005I\u0000\u0000\u2680\u2681\u0005"+ + "N\u0000\u0000\u2681\u2682\u0005T\u0000\u0000\u2682\u2683\u0005E\u0000"+ + "\u0000\u2683\u2684\u0005R\u0000\u0000\u2684\u2685\u0005I\u0000\u0000\u2685"+ + "\u2686\u0005O\u0000\u0000\u2686\u2687\u0005R\u0000\u0000\u2687\u2688\u0005"+ + "R\u0000\u0000\u2688\u2689\u0005I\u0000\u0000\u2689\u268a\u0005N\u0000"+ + "\u0000\u268a\u268b\u0005G\u0000\u0000\u268b\u268c\u0005N\u0000\u0000\u268c"+ + "\u06b0\u0001\u0000\u0000\u0000\u268d\u268e\u0005S\u0000\u0000\u268e\u268f"+ + "\u0005T\u0000\u0000\u268f\u2690\u0005_\u0000\u0000\u2690\u2691\u0005I"+ + "\u0000\u0000\u2691\u2692\u0005N\u0000\u0000\u2692\u2693\u0005T\u0000\u0000"+ + "\u2693\u2694\u0005E\u0000\u0000\u2694\u2695\u0005R\u0000\u0000\u2695\u2696"+ + "\u0005S\u0000\u0000\u2696\u2697\u0005E\u0000\u0000\u2697\u2698\u0005C"+ + "\u0000\u0000\u2698\u2699\u0005T\u0000\u0000\u2699\u269a\u0005I\u0000\u0000"+ + "\u269a\u269b\u0005O\u0000\u0000\u269b\u269c\u0005N\u0000\u0000\u269c\u06b2"+ + "\u0001\u0000\u0000\u0000\u269d\u269e\u0005S\u0000\u0000\u269e\u269f\u0005"+ + "T\u0000\u0000\u269f\u26a0\u0005_\u0000\u0000\u26a0\u26a1\u0005I\u0000"+ + "\u0000\u26a1\u26a2\u0005N\u0000\u0000\u26a2\u26a3\u0005T\u0000\u0000\u26a3"+ + "\u26a4\u0005E\u0000\u0000\u26a4\u26a5\u0005R\u0000\u0000\u26a5\u26a6\u0005"+ + "S\u0000\u0000\u26a6\u26a7\u0005E\u0000\u0000\u26a7\u26a8\u0005C\u0000"+ + "\u0000\u26a8\u26a9\u0005T\u0000\u0000\u26a9\u26aa\u0005S\u0000\u0000\u26aa"+ + "\u06b4\u0001\u0000\u0000\u0000\u26ab\u26ac\u0005S\u0000\u0000\u26ac\u26ad"+ + "\u0005T\u0000\u0000\u26ad\u26ae\u0005_\u0000\u0000\u26ae\u26af\u0005I"+ + "\u0000\u0000\u26af\u26b0\u0005S\u0000\u0000\u26b0\u26b1\u0005C\u0000\u0000"+ + "\u26b1\u26b2\u0005L\u0000\u0000\u26b2\u26b3\u0005O\u0000\u0000\u26b3\u26b4"+ + "\u0005S\u0000\u0000\u26b4\u26b5\u0005E\u0000\u0000\u26b5\u26b6\u0005D"+ + "\u0000\u0000\u26b6\u06b6\u0001\u0000\u0000\u0000\u26b7\u26b8\u0005S\u0000"+ + "\u0000\u26b8\u26b9\u0005T\u0000\u0000\u26b9\u26ba\u0005_\u0000\u0000\u26ba"+ + "\u26bb\u0005I\u0000\u0000\u26bb\u26bc\u0005S\u0000\u0000\u26bc\u26bd\u0005"+ + "E\u0000\u0000\u26bd\u26be\u0005M\u0000\u0000\u26be\u26bf\u0005P\u0000"+ + "\u0000\u26bf\u26c0\u0005T\u0000\u0000\u26c0\u26c1\u0005Y\u0000\u0000\u26c1"+ + "\u06b8\u0001\u0000\u0000\u0000\u26c2\u26c3\u0005S\u0000\u0000\u26c3\u26c4"+ + "\u0005T\u0000\u0000\u26c4\u26c5\u0005_\u0000\u0000\u26c5\u26c6\u0005I"+ + "\u0000\u0000\u26c6\u26c7\u0005S\u0000\u0000\u26c7\u26c8\u0005S\u0000\u0000"+ + "\u26c8\u26c9\u0005I\u0000\u0000\u26c9\u26ca\u0005M\u0000\u0000\u26ca\u26cb"+ + "\u0005P\u0000\u0000\u26cb\u26cc\u0005L\u0000\u0000\u26cc\u26cd\u0005E"+ + "\u0000\u0000\u26cd\u06ba\u0001\u0000\u0000\u0000\u26ce\u26cf\u0005S\u0000"+ + "\u0000\u26cf\u26d0\u0005T\u0000\u0000\u26d0\u26d1\u0005_\u0000\u0000\u26d1"+ + "\u26d2\u0005L\u0000\u0000\u26d2\u26d3\u0005I\u0000\u0000\u26d3\u26d4\u0005"+ + "N\u0000\u0000\u26d4\u26d5\u0005E\u0000\u0000\u26d5\u26d6\u0005F\u0000"+ + "\u0000\u26d6\u26d7\u0005R\u0000\u0000\u26d7\u26d8\u0005O\u0000\u0000\u26d8"+ + "\u26d9\u0005M\u0000\u0000\u26d9\u26da\u0005T\u0000\u0000\u26da\u26db\u0005"+ + "E\u0000\u0000\u26db\u26dc\u0005X\u0000\u0000\u26dc\u26dd\u0005T\u0000"+ + "\u0000\u26dd\u06bc\u0001\u0000\u0000\u0000\u26de\u26df\u0005S\u0000\u0000"+ + "\u26df\u26e0\u0005T\u0000\u0000\u26e0\u26e1\u0005_\u0000\u0000\u26e1\u26e2"+ + "\u0005L\u0000\u0000\u26e2\u26e3\u0005I\u0000\u0000\u26e3\u26e4\u0005N"+ + "\u0000\u0000\u26e4\u26e5\u0005E\u0000\u0000\u26e5\u26e6\u0005F\u0000\u0000"+ + "\u26e6\u26e7\u0005R\u0000\u0000\u26e7\u26e8\u0005O\u0000\u0000\u26e8\u26e9"+ + "\u0005M\u0000\u0000\u26e9\u26ea\u0005W\u0000\u0000\u26ea\u26eb\u0005K"+ + "\u0000\u0000\u26eb\u26ec\u0005B\u0000\u0000\u26ec\u06be\u0001\u0000\u0000"+ + "\u0000\u26ed\u26ee\u0005S\u0000\u0000\u26ee\u26ef\u0005T\u0000\u0000\u26ef"+ + "\u26f0\u0005_\u0000\u0000\u26f0\u26f1\u0005L\u0000\u0000\u26f1\u26f2\u0005"+ + "I\u0000\u0000\u26f2\u26f3\u0005N\u0000\u0000\u26f3\u26f4\u0005E\u0000"+ + "\u0000\u26f4\u26f5\u0005S\u0000\u0000\u26f5\u26f6\u0005T\u0000\u0000\u26f6"+ + "\u26f7\u0005R\u0000\u0000\u26f7\u26f8\u0005I\u0000\u0000\u26f8\u26f9\u0005"+ + "N\u0000\u0000\u26f9\u26fa\u0005G\u0000\u0000\u26fa\u26fb\u0005F\u0000"+ + "\u0000\u26fb\u26fc\u0005R\u0000\u0000\u26fc\u26fd\u0005O\u0000\u0000\u26fd"+ + "\u26fe\u0005M\u0000\u0000\u26fe\u26ff\u0005T\u0000\u0000\u26ff\u2700\u0005"+ + "E\u0000\u0000\u2700\u2701\u0005X\u0000\u0000\u2701\u2702\u0005T\u0000"+ + "\u0000\u2702\u06c0\u0001\u0000\u0000\u0000\u2703\u2704\u0005S\u0000\u0000"+ + "\u2704\u2705\u0005T\u0000\u0000\u2705\u2706\u0005_\u0000\u0000\u2706\u2707"+ + "\u0005L\u0000\u0000\u2707\u2708\u0005I\u0000\u0000\u2708\u2709\u0005N"+ + "\u0000\u0000\u2709\u270a\u0005E\u0000\u0000\u270a\u270b\u0005S\u0000\u0000"+ + "\u270b\u270c\u0005T\u0000\u0000\u270c\u270d\u0005R\u0000\u0000\u270d\u270e"+ + "\u0005I\u0000\u0000\u270e\u270f\u0005N\u0000\u0000\u270f\u2710\u0005G"+ + "\u0000\u0000\u2710\u2711\u0005F\u0000\u0000\u2711\u2712\u0005R\u0000\u0000"+ + "\u2712\u2713\u0005O\u0000\u0000\u2713\u2714\u0005M\u0000\u0000\u2714\u2715"+ + "\u0005W\u0000\u0000\u2715\u2716\u0005K\u0000\u0000\u2716\u2717\u0005B"+ + "\u0000\u0000\u2717\u06c2\u0001\u0000\u0000\u0000\u2718\u2719\u0005S\u0000"+ + "\u0000\u2719\u271a\u0005T\u0000\u0000\u271a\u271b\u0005_\u0000\u0000\u271b"+ + "\u271c\u0005N\u0000\u0000\u271c\u271d\u0005U\u0000\u0000\u271d\u271e\u0005"+ + "M\u0000\u0000\u271e\u271f\u0005G\u0000\u0000\u271f\u2720\u0005E\u0000"+ + "\u0000\u2720\u2721\u0005O\u0000\u0000\u2721\u2722\u0005M\u0000\u0000\u2722"+ + "\u2723\u0005E\u0000\u0000\u2723\u2724\u0005T\u0000\u0000\u2724\u2725\u0005"+ + "R\u0000\u0000\u2725\u2726\u0005I\u0000\u0000\u2726\u2727\u0005E\u0000"+ + "\u0000\u2727\u2728\u0005S\u0000\u0000\u2728\u06c4\u0001\u0000\u0000\u0000"+ + "\u2729\u272a\u0005S\u0000\u0000\u272a\u272b\u0005T\u0000\u0000\u272b\u272c"+ + "\u0005_\u0000\u0000\u272c\u272d\u0005N\u0000\u0000\u272d\u272e\u0005U"+ + "\u0000\u0000\u272e\u272f\u0005M\u0000\u0000\u272f\u2730\u0005I\u0000\u0000"+ + "\u2730\u2731\u0005N\u0000\u0000\u2731\u2732\u0005T\u0000\u0000\u2732\u2733"+ + "\u0005E\u0000\u0000\u2733\u2734\u0005R\u0000\u0000\u2734\u2735\u0005I"+ + "\u0000\u0000\u2735\u2736\u0005O\u0000\u0000\u2736\u2737\u0005R\u0000\u0000"+ + "\u2737\u2738\u0005R\u0000\u0000\u2738\u2739\u0005I\u0000\u0000\u2739\u273a"+ + "\u0005N\u0000\u0000\u273a\u273b\u0005G\u0000\u0000\u273b\u06c6\u0001\u0000"+ + "\u0000\u0000\u273c\u273d\u0005S\u0000\u0000\u273d\u273e\u0005T\u0000\u0000"+ + "\u273e\u273f\u0005_\u0000\u0000\u273f\u2740\u0005N\u0000\u0000\u2740\u2741"+ + "\u0005U\u0000\u0000\u2741\u2742\u0005M\u0000\u0000\u2742\u2743\u0005I"+ + "\u0000\u0000\u2743\u2744\u0005N\u0000\u0000\u2744\u2745\u0005T\u0000\u0000"+ + "\u2745\u2746\u0005E\u0000\u0000\u2746\u2747\u0005R\u0000\u0000\u2747\u2748"+ + "\u0005I\u0000\u0000\u2748\u2749\u0005O\u0000\u0000\u2749\u274a\u0005R"+ + "\u0000\u0000\u274a\u274b\u0005R\u0000\u0000\u274b\u274c\u0005I\u0000\u0000"+ + "\u274c\u274d\u0005N\u0000\u0000\u274d\u274e\u0005G\u0000\u0000\u274e\u274f"+ + "\u0005S\u0000\u0000\u274f\u06c8\u0001\u0000\u0000\u0000\u2750\u2751\u0005"+ + "S\u0000\u0000\u2751\u2752\u0005T\u0000\u0000\u2752\u2753\u0005_\u0000"+ + "\u0000\u2753\u2754\u0005N\u0000\u0000\u2754\u2755\u0005U\u0000\u0000\u2755"+ + "\u2756\u0005M\u0000\u0000\u2756\u2757\u0005P\u0000\u0000\u2757\u2758\u0005"+ + "O\u0000\u0000\u2758\u2759\u0005I\u0000\u0000\u2759\u275a\u0005N\u0000"+ + "\u0000\u275a\u275b\u0005T\u0000\u0000\u275b\u275c\u0005S\u0000\u0000\u275c"+ + "\u06ca\u0001\u0000\u0000\u0000\u275d\u275e\u0005S\u0000\u0000\u275e\u275f"+ + "\u0005T\u0000\u0000\u275f\u2760\u0005_\u0000\u0000\u2760\u2761\u0005O"+ + "\u0000\u0000\u2761\u2762\u0005V\u0000\u0000\u2762\u2763\u0005E\u0000\u0000"+ + "\u2763\u2764\u0005R\u0000\u0000\u2764\u2765\u0005L\u0000\u0000\u2765\u2766"+ + "\u0005A\u0000\u0000\u2766\u2767\u0005P\u0000\u0000\u2767\u2768\u0005S"+ + "\u0000\u0000\u2768\u06cc\u0001\u0000\u0000\u0000\u2769\u276a\u0005S\u0000"+ + "\u0000\u276a\u276b\u0005T\u0000\u0000\u276b\u276c\u0005_\u0000\u0000\u276c"+ + "\u276d\u0005P\u0000\u0000\u276d\u276e\u0005O\u0000\u0000\u276e\u276f\u0005"+ + "I\u0000\u0000\u276f\u2770\u0005N\u0000\u0000\u2770\u2771\u0005T\u0000"+ + "\u0000\u2771\u2772\u0005F\u0000\u0000\u2772\u2773\u0005R\u0000\u0000\u2773"+ + "\u2774\u0005O\u0000\u0000\u2774\u2775\u0005M\u0000\u0000\u2775\u2776\u0005"+ + "T\u0000\u0000\u2776\u2777\u0005E\u0000\u0000\u2777\u2778\u0005X\u0000"+ + "\u0000\u2778\u2779\u0005T\u0000\u0000\u2779\u06ce\u0001\u0000\u0000\u0000"+ + "\u277a\u277b\u0005S\u0000\u0000\u277b\u277c\u0005T\u0000\u0000\u277c\u277d"+ + "\u0005_\u0000\u0000\u277d\u277e\u0005P\u0000\u0000\u277e\u277f\u0005O"+ + "\u0000\u0000\u277f\u2780\u0005I\u0000\u0000\u2780\u2781\u0005N\u0000\u0000"+ + "\u2781\u2782\u0005T\u0000\u0000\u2782\u2783\u0005F\u0000\u0000\u2783\u2784"+ + "\u0005R\u0000\u0000\u2784\u2785\u0005O\u0000\u0000\u2785\u2786\u0005M"+ + "\u0000\u0000\u2786\u2787\u0005W\u0000\u0000\u2787\u2788\u0005K\u0000\u0000"+ + "\u2788\u2789\u0005B\u0000\u0000\u2789\u06d0\u0001\u0000\u0000\u0000\u278a"+ + "\u278b\u0005S\u0000\u0000\u278b\u278c\u0005T\u0000\u0000\u278c\u278d\u0005"+ + "_\u0000\u0000\u278d\u278e\u0005P\u0000\u0000\u278e\u278f\u0005O\u0000"+ + "\u0000\u278f\u2790\u0005I\u0000\u0000\u2790\u2791\u0005N\u0000\u0000\u2791"+ + "\u2792\u0005T\u0000\u0000\u2792\u2793\u0005N\u0000\u0000\u2793\u06d2\u0001"+ + "\u0000\u0000\u0000\u2794\u2795\u0005S\u0000\u0000\u2795\u2796\u0005T\u0000"+ + "\u0000\u2796\u2797\u0005_\u0000\u0000\u2797\u2798\u0005P\u0000\u0000\u2798"+ + "\u2799\u0005O\u0000\u0000\u2799\u279a\u0005L\u0000\u0000\u279a\u279b\u0005"+ + "Y\u0000\u0000\u279b\u279c\u0005F\u0000\u0000\u279c\u279d\u0005R\u0000"+ + "\u0000\u279d\u279e\u0005O\u0000\u0000\u279e\u279f\u0005M\u0000\u0000\u279f"+ + "\u27a0\u0005T\u0000\u0000\u27a0\u27a1\u0005E\u0000\u0000\u27a1\u27a2\u0005"+ + "X\u0000\u0000\u27a2\u27a3\u0005T\u0000\u0000\u27a3\u06d4\u0001\u0000\u0000"+ + "\u0000\u27a4\u27a5\u0005S\u0000\u0000\u27a5\u27a6\u0005T\u0000\u0000\u27a6"+ + "\u27a7\u0005_\u0000\u0000\u27a7\u27a8\u0005P\u0000\u0000\u27a8\u27a9\u0005"+ + "O\u0000\u0000\u27a9\u27aa\u0005L\u0000\u0000\u27aa\u27ab\u0005Y\u0000"+ + "\u0000\u27ab\u27ac\u0005F\u0000\u0000\u27ac\u27ad\u0005R\u0000\u0000\u27ad"+ + "\u27ae\u0005O\u0000\u0000\u27ae\u27af\u0005M\u0000\u0000\u27af\u27b0\u0005"+ + "W\u0000\u0000\u27b0\u27b1\u0005K\u0000\u0000\u27b1\u27b2\u0005B\u0000"+ + "\u0000\u27b2\u06d6\u0001\u0000\u0000\u0000\u27b3\u27b4\u0005S\u0000\u0000"+ + "\u27b4\u27b5\u0005T\u0000\u0000\u27b5\u27b6\u0005_\u0000\u0000\u27b6\u27b7"+ + "\u0005P\u0000\u0000\u27b7\u27b8\u0005O\u0000\u0000\u27b8\u27b9\u0005L"+ + "\u0000\u0000\u27b9\u27ba\u0005Y\u0000\u0000\u27ba\u27bb\u0005G\u0000\u0000"+ + "\u27bb\u27bc\u0005O\u0000\u0000\u27bc\u27bd\u0005N\u0000\u0000\u27bd\u27be"+ + "\u0005F\u0000\u0000\u27be\u27bf\u0005R\u0000\u0000\u27bf\u27c0\u0005O"+ + "\u0000\u0000\u27c0\u27c1\u0005M\u0000\u0000\u27c1\u27c2\u0005T\u0000\u0000"+ + "\u27c2\u27c3\u0005E\u0000\u0000\u27c3\u27c4\u0005X\u0000\u0000\u27c4\u27c5"+ + "\u0005T\u0000\u0000\u27c5\u06d8\u0001\u0000\u0000\u0000\u27c6\u27c7\u0005"+ + "S\u0000\u0000\u27c7\u27c8\u0005T\u0000\u0000\u27c8\u27c9\u0005_\u0000"+ + "\u0000\u27c9\u27ca\u0005P\u0000\u0000\u27ca\u27cb\u0005O\u0000\u0000\u27cb"+ + "\u27cc\u0005L\u0000\u0000\u27cc\u27cd\u0005Y\u0000\u0000\u27cd\u27ce\u0005"+ + "G\u0000\u0000\u27ce\u27cf\u0005O\u0000\u0000\u27cf\u27d0\u0005N\u0000"+ + "\u0000\u27d0\u27d1\u0005F\u0000\u0000\u27d1\u27d2\u0005R\u0000\u0000\u27d2"+ + "\u27d3\u0005O\u0000\u0000\u27d3\u27d4\u0005M\u0000\u0000\u27d4\u27d5\u0005"+ + "W\u0000\u0000\u27d5\u27d6\u0005K\u0000\u0000\u27d6\u27d7\u0005B\u0000"+ + "\u0000\u27d7\u06da\u0001\u0000\u0000\u0000\u27d8\u27d9\u0005S\u0000\u0000"+ + "\u27d9\u27da\u0005T\u0000\u0000\u27da\u27db\u0005_\u0000\u0000\u27db\u27dc"+ + "\u0005S\u0000\u0000\u27dc\u27dd\u0005R\u0000\u0000\u27dd\u27de\u0005I"+ + "\u0000\u0000\u27de\u27df\u0005D\u0000\u0000\u27df\u06dc\u0001\u0000\u0000"+ + "\u0000\u27e0\u27e1\u0005S\u0000\u0000\u27e1\u27e2\u0005T\u0000\u0000\u27e2"+ + "\u27e3\u0005_\u0000\u0000\u27e3\u27e4\u0005S\u0000\u0000\u27e4\u27e5\u0005"+ + "T\u0000\u0000\u27e5\u27e6\u0005A\u0000\u0000\u27e6\u27e7\u0005R\u0000"+ + "\u0000\u27e7\u27e8\u0005T\u0000\u0000\u27e8\u27e9\u0005P\u0000\u0000\u27e9"+ + "\u27ea\u0005O\u0000\u0000\u27ea\u27eb\u0005I\u0000\u0000\u27eb\u27ec\u0005"+ + "N\u0000\u0000\u27ec\u27ed\u0005T\u0000\u0000\u27ed\u06de\u0001\u0000\u0000"+ + "\u0000\u27ee\u27ef\u0005S\u0000\u0000\u27ef\u27f0\u0005T\u0000\u0000\u27f0"+ + "\u27f1\u0005_\u0000\u0000\u27f1\u27f2\u0005S\u0000\u0000\u27f2\u27f3\u0005"+ + "Y\u0000\u0000\u27f3\u27f4\u0005M\u0000\u0000\u27f4\u27f5\u0005D\u0000"+ + "\u0000\u27f5\u27f6\u0005I\u0000\u0000\u27f6\u27f7\u0005F\u0000\u0000\u27f7"+ + "\u27f8\u0005F\u0000\u0000\u27f8\u27f9\u0005E\u0000\u0000\u27f9\u27fa\u0005"+ + "R\u0000\u0000\u27fa\u27fb\u0005E\u0000\u0000\u27fb\u27fc\u0005N\u0000"+ + "\u0000\u27fc\u27fd\u0005C\u0000\u0000\u27fd\u27fe\u0005E\u0000\u0000\u27fe"+ + "\u06e0\u0001\u0000\u0000\u0000\u27ff\u2800\u0005S\u0000\u0000\u2800\u2801"+ + "\u0005T\u0000\u0000\u2801\u2802\u0005_\u0000\u0000\u2802\u2803\u0005T"+ + "\u0000\u0000\u2803\u2804\u0005O\u0000\u0000\u2804\u2805\u0005U\u0000\u0000"+ + "\u2805\u2806\u0005C\u0000\u0000\u2806\u2807\u0005H\u0000\u0000\u2807\u2808"+ + "\u0005E\u0000\u0000\u2808\u2809\u0005S\u0000\u0000\u2809\u06e2\u0001\u0000"+ + "\u0000\u0000\u280a\u280b\u0005S\u0000\u0000\u280b\u280c\u0005T\u0000\u0000"+ + "\u280c\u280d\u0005_\u0000\u0000\u280d\u280e\u0005U\u0000\u0000\u280e\u280f"+ + "\u0005N\u0000\u0000\u280f\u2810\u0005I\u0000\u0000\u2810\u2811\u0005O"+ + "\u0000\u0000\u2811\u2812\u0005N\u0000\u0000\u2812\u06e4\u0001\u0000\u0000"+ + "\u0000\u2813\u2814\u0005S\u0000\u0000\u2814\u2815\u0005T\u0000\u0000\u2815"+ + "\u2816\u0005_\u0000\u0000\u2816\u2817\u0005W\u0000\u0000\u2817\u2818\u0005"+ + "I\u0000\u0000\u2818\u2819\u0005T\u0000\u0000\u2819\u281a\u0005H\u0000"+ + "\u0000\u281a\u281b\u0005I\u0000\u0000\u281b\u281c\u0005N\u0000\u0000\u281c"+ + "\u06e6\u0001\u0000\u0000\u0000\u281d\u281e\u0005S\u0000\u0000\u281e\u281f"+ + "\u0005T\u0000\u0000\u281f\u2820\u0005_\u0000\u0000\u2820\u2821\u0005X"+ + "\u0000\u0000\u2821\u06e8\u0001\u0000\u0000\u0000\u2822\u2823\u0005S\u0000"+ + "\u0000\u2823\u2824\u0005T\u0000\u0000\u2824\u2825\u0005_\u0000\u0000\u2825"+ + "\u2826\u0005Y\u0000\u0000\u2826\u06ea\u0001\u0000\u0000\u0000\u2827\u2828"+ + "\u0005S\u0000\u0000\u2828\u2829\u0005U\u0000\u0000\u2829\u282a\u0005B"+ + "\u0000\u0000\u282a\u282b\u0005D\u0000\u0000\u282b\u282c\u0005A\u0000\u0000"+ + "\u282c\u282d\u0005T\u0000\u0000\u282d\u282e\u0005E\u0000\u0000\u282e\u06ec"+ + "\u0001\u0000\u0000\u0000\u282f\u2830\u0005S\u0000\u0000\u2830\u2831\u0005"+ + "U\u0000\u0000\u2831\u2832\u0005B\u0000\u0000\u2832\u2833\u0005S\u0000"+ + "\u0000\u2833\u2834\u0005T\u0000\u0000\u2834\u2835\u0005R\u0000\u0000\u2835"+ + "\u2836\u0005I\u0000\u0000\u2836\u2837\u0005N\u0000\u0000\u2837\u2838\u0005"+ + "G\u0000\u0000\u2838\u2839\u0005_\u0000\u0000\u2839\u283a\u0005I\u0000"+ + "\u0000\u283a\u283b\u0005N\u0000\u0000\u283b\u283c\u0005D\u0000\u0000\u283c"+ + "\u283d\u0005E\u0000\u0000\u283d\u283e\u0005X\u0000\u0000\u283e\u06ee\u0001"+ + "\u0000\u0000\u0000\u283f\u2840\u0005S\u0000\u0000\u2840\u2841\u0005U\u0000"+ + "\u0000\u2841\u2842\u0005B\u0000\u0000\u2842\u2843\u0005T\u0000\u0000\u2843"+ + "\u2844\u0005I\u0000\u0000\u2844\u2845\u0005M\u0000\u0000\u2845\u2846\u0005"+ + "E\u0000\u0000\u2846\u06f0\u0001\u0000\u0000\u0000\u2847\u2848\u0005S\u0000"+ + "\u0000\u2848\u2849\u0005Y\u0000\u0000\u2849\u284a\u0005S\u0000\u0000\u284a"+ + "\u284b\u0005T\u0000\u0000\u284b\u284c\u0005E\u0000\u0000\u284c\u284d\u0005"+ + "M\u0000\u0000\u284d\u284e\u0005_\u0000\u0000\u284e\u284f\u0005U\u0000"+ + "\u0000\u284f\u2850\u0005S\u0000\u0000\u2850\u2851\u0005E\u0000\u0000\u2851"+ + "\u2852\u0005R\u0000\u0000\u2852\u06f2\u0001\u0000\u0000\u0000\u2853\u2854"+ + "\u0005T\u0000\u0000\u2854\u2855\u0005A\u0000\u0000\u2855\u2856\u0005N"+ + "\u0000\u0000\u2856\u06f4\u0001\u0000\u0000\u0000\u2857\u2858\u0005T\u0000"+ + "\u0000\u2858\u2859\u0005I\u0000\u0000\u2859\u285a\u0005M\u0000\u0000\u285a"+ + "\u285b\u0005E\u0000\u0000\u285b\u285c\u0005D\u0000\u0000\u285c\u285d\u0005"+ + "I\u0000\u0000\u285d\u285e\u0005F\u0000\u0000\u285e\u285f\u0005F\u0000"+ + "\u0000\u285f\u06f6\u0001\u0000\u0000\u0000\u2860\u2861\u0005T\u0000\u0000"+ + "\u2861\u2862\u0005I\u0000\u0000\u2862\u2863\u0005M\u0000\u0000\u2863\u2864"+ + "\u0005E\u0000\u0000\u2864\u2865\u0005S\u0000\u0000\u2865\u2866\u0005T"+ + "\u0000\u0000\u2866\u2867\u0005A\u0000\u0000\u2867\u2868\u0005M\u0000\u0000"+ + "\u2868\u2869\u0005P\u0000\u0000\u2869\u286a\u0005A\u0000\u0000\u286a\u286b"+ + "\u0005D\u0000\u0000\u286b\u286c\u0005D\u0000\u0000\u286c\u06f8\u0001\u0000"+ + "\u0000\u0000\u286d\u286e\u0005T\u0000\u0000\u286e\u286f\u0005I\u0000\u0000"+ + "\u286f\u2870\u0005M\u0000\u0000\u2870\u2871\u0005E\u0000\u0000\u2871\u2872"+ + "\u0005S\u0000\u0000\u2872\u2873\u0005T\u0000\u0000\u2873\u2874\u0005A"+ + "\u0000\u0000\u2874\u2875\u0005M\u0000\u0000\u2875\u2876\u0005P\u0000\u0000"+ + "\u2876\u2877\u0005D\u0000\u0000\u2877\u2878\u0005I\u0000\u0000\u2878\u2879"+ + "\u0005F\u0000\u0000\u2879\u287a\u0005F\u0000\u0000\u287a\u06fa\u0001\u0000"+ + "\u0000\u0000\u287b\u287c\u0005T\u0000\u0000\u287c\u287d\u0005I\u0000\u0000"+ + "\u287d\u287e\u0005M\u0000\u0000\u287e\u287f\u0005E\u0000\u0000\u287f\u2880"+ + "\u0005_\u0000\u0000\u2880\u2881\u0005F\u0000\u0000\u2881\u2882\u0005O"+ + "\u0000\u0000\u2882\u2883\u0005R\u0000\u0000\u2883\u2884\u0005M\u0000\u0000"+ + "\u2884\u2885\u0005A\u0000\u0000\u2885\u2886\u0005T\u0000\u0000\u2886\u06fc"+ + "\u0001\u0000\u0000\u0000\u2887\u2888\u0005T\u0000\u0000\u2888\u2889\u0005"+ + "I\u0000\u0000\u2889\u288a\u0005M\u0000\u0000\u288a\u288b\u0005E\u0000"+ + "\u0000\u288b\u288c\u0005_\u0000\u0000\u288c\u288d\u0005T\u0000\u0000\u288d"+ + "\u288e\u0005O\u0000\u0000\u288e\u288f\u0005_\u0000\u0000\u288f\u2890\u0005"+ + "S\u0000\u0000\u2890\u2891\u0005E\u0000\u0000\u2891\u2892\u0005C\u0000"+ + "\u0000\u2892\u06fe\u0001\u0000\u0000\u0000\u2893\u2894\u0005T\u0000\u0000"+ + "\u2894\u2895\u0005O\u0000\u0000\u2895\u2896\u0005U\u0000\u0000\u2896\u2897"+ + "\u0005C\u0000\u0000\u2897\u2898\u0005H\u0000\u0000\u2898\u2899\u0005E"+ + "\u0000\u0000\u2899\u289a\u0005S\u0000\u0000\u289a\u0700\u0001\u0000\u0000"+ + "\u0000\u289b\u289c\u0005T\u0000\u0000\u289c\u289d\u0005O\u0000\u0000\u289d"+ + "\u289e\u0005_\u0000\u0000\u289e\u289f\u0005B\u0000\u0000\u289f\u28a0\u0005"+ + "A\u0000\u0000\u28a0\u28a1\u0005S\u0000\u0000\u28a1\u28a2\u0005E\u0000"+ + "\u0000\u28a2\u28a3\u00056\u0000\u0000\u28a3\u28a4\u00054\u0000\u0000\u28a4"+ + "\u0702\u0001\u0000\u0000\u0000\u28a5\u28a6\u0005T\u0000\u0000\u28a6\u28a7"+ + "\u0005O\u0000\u0000\u28a7\u28a8\u0005_\u0000\u0000\u28a8\u28a9\u0005D"+ + "\u0000\u0000\u28a9\u28aa\u0005A\u0000\u0000\u28aa\u28ab\u0005Y\u0000\u0000"+ + "\u28ab\u28ac\u0005S\u0000\u0000\u28ac\u0704\u0001\u0000\u0000\u0000\u28ad"+ + "\u28ae\u0005T\u0000\u0000\u28ae\u28af\u0005O\u0000\u0000\u28af\u28b0\u0005"+ + "_\u0000\u0000\u28b0\u28b1\u0005S\u0000\u0000\u28b1\u28b2\u0005E\u0000"+ + "\u0000\u28b2\u28b3\u0005C\u0000\u0000\u28b3\u28b4\u0005O\u0000\u0000\u28b4"+ + "\u28b5\u0005N\u0000\u0000\u28b5\u28b6\u0005D\u0000\u0000\u28b6\u28b7\u0005"+ + "S\u0000\u0000\u28b7\u0706\u0001\u0000\u0000\u0000\u28b8\u28b9\u0005U\u0000"+ + "\u0000\u28b9\u28ba\u0005C\u0000\u0000\u28ba\u28bb\u0005A\u0000\u0000\u28bb"+ + "\u28bc\u0005S\u0000\u0000\u28bc\u28bd\u0005E\u0000\u0000\u28bd\u0708\u0001"+ + "\u0000\u0000\u0000\u28be\u28bf\u0005U\u0000\u0000\u28bf\u28c0\u0005N\u0000"+ + "\u0000\u28c0\u28c1\u0005C\u0000\u0000\u28c1\u28c2\u0005O\u0000\u0000\u28c2"+ + "\u28c3\u0005M\u0000\u0000\u28c3\u28c4\u0005P\u0000\u0000\u28c4\u28c5\u0005"+ + "R\u0000\u0000\u28c5\u28c6\u0005E\u0000\u0000\u28c6\u28c7\u0005S\u0000"+ + "\u0000\u28c7\u28c8\u0005S\u0000\u0000\u28c8\u070a\u0001\u0000\u0000\u0000"+ + "\u28c9\u28ca\u0005U\u0000\u0000\u28ca\u28cb\u0005N\u0000\u0000\u28cb\u28cc"+ + "\u0005C\u0000\u0000\u28cc\u28cd\u0005O\u0000\u0000\u28cd\u28ce\u0005M"+ + "\u0000\u0000\u28ce\u28cf\u0005P\u0000\u0000\u28cf\u28d0\u0005R\u0000\u0000"+ + "\u28d0\u28d1\u0005E\u0000\u0000\u28d1\u28d2\u0005S\u0000\u0000\u28d2\u28d3"+ + "\u0005S\u0000\u0000\u28d3\u28d4\u0005E\u0000\u0000\u28d4\u28d5\u0005D"+ + "\u0000\u0000\u28d5\u28d6\u0005_\u0000\u0000\u28d6\u28d7\u0005L\u0000\u0000"+ + "\u28d7\u28d8\u0005E\u0000\u0000\u28d8\u28d9\u0005N\u0000\u0000\u28d9\u28da"+ + "\u0005G\u0000\u0000\u28da\u28db\u0005T\u0000\u0000\u28db\u28dc\u0005H"+ + "\u0000\u0000\u28dc\u070c\u0001\u0000\u0000\u0000\u28dd\u28de\u0005U\u0000"+ + "\u0000\u28de\u28df\u0005N\u0000\u0000\u28df\u28e0\u0005H\u0000\u0000\u28e0"+ + "\u28e1\u0005E\u0000\u0000\u28e1\u28e2\u0005X\u0000\u0000\u28e2\u070e\u0001"+ + "\u0000\u0000\u0000\u28e3\u28e4\u0005U\u0000\u0000\u28e4\u28e5\u0005N\u0000"+ + "\u0000\u28e5\u28e6\u0005I\u0000\u0000\u28e6\u28e7\u0005X\u0000\u0000\u28e7"+ + "\u28e8\u0005_\u0000\u0000\u28e8\u28e9\u0005T\u0000\u0000\u28e9\u28ea\u0005"+ + "I\u0000\u0000\u28ea\u28eb\u0005M\u0000\u0000\u28eb\u28ec\u0005E\u0000"+ + "\u0000\u28ec\u28ed\u0005S\u0000\u0000\u28ed\u28ee\u0005T\u0000\u0000\u28ee"+ + "\u28ef\u0005A\u0000\u0000\u28ef\u28f0\u0005M\u0000\u0000\u28f0\u28f1\u0005"+ + "P\u0000\u0000\u28f1\u0710\u0001\u0000\u0000\u0000\u28f2\u28f3\u0005U\u0000"+ + "\u0000\u28f3\u28f4\u0005P\u0000\u0000\u28f4\u28f5\u0005D\u0000\u0000\u28f5"+ + "\u28f6\u0005A\u0000\u0000\u28f6\u28f7\u0005T\u0000\u0000\u28f7\u28f8\u0005"+ + "E\u0000\u0000\u28f8\u28f9\u0005X\u0000\u0000\u28f9\u28fa\u0005M\u0000"+ + "\u0000\u28fa\u28fb\u0005L\u0000\u0000\u28fb\u0712\u0001\u0000\u0000\u0000"+ + "\u28fc\u28fd\u0005U\u0000\u0000\u28fd\u28fe\u0005P\u0000\u0000\u28fe\u28ff"+ + "\u0005P\u0000\u0000\u28ff\u2900\u0005E\u0000\u0000\u2900\u2901\u0005R"+ + "\u0000\u0000\u2901\u0714\u0001\u0000\u0000\u0000\u2902\u2903\u0005U\u0000"+ + "\u0000\u2903\u2904\u0005U\u0000\u0000\u2904\u2905\u0005I\u0000\u0000\u2905"+ + "\u2906\u0005D\u0000\u0000\u2906\u0716\u0001\u0000\u0000\u0000\u2907\u2908"+ + "\u0005U\u0000\u0000\u2908\u2909\u0005U\u0000\u0000\u2909\u290a\u0005I"+ + "\u0000\u0000\u290a\u290b\u0005D\u0000\u0000\u290b\u290c\u0005_\u0000\u0000"+ + "\u290c\u290d\u0005S\u0000\u0000\u290d\u290e\u0005H\u0000\u0000\u290e\u290f"+ + "\u0005O\u0000\u0000\u290f\u2910\u0005R\u0000\u0000\u2910\u2911\u0005T"+ + "\u0000\u0000\u2911\u0718\u0001\u0000\u0000\u0000\u2912\u2913\u0005V\u0000"+ + "\u0000\u2913\u2914\u0005A\u0000\u0000\u2914\u2915\u0005L\u0000\u0000\u2915"+ + "\u2916\u0005I\u0000\u0000\u2916\u2917\u0005D\u0000\u0000\u2917\u2918\u0005"+ + "A\u0000\u0000\u2918\u2919\u0005T\u0000\u0000\u2919\u291a\u0005E\u0000"+ + "\u0000\u291a\u291b\u0005_\u0000\u0000\u291b\u291c\u0005P\u0000\u0000\u291c"+ + "\u291d\u0005A\u0000\u0000\u291d\u291e\u0005S\u0000\u0000\u291e\u291f\u0005"+ + "S\u0000\u0000\u291f\u2920\u0005W\u0000\u0000\u2920\u2921\u0005O\u0000"+ + "\u0000\u2921\u2922\u0005R\u0000\u0000\u2922\u2923\u0005D\u0000\u0000\u2923"+ + "\u2924\u0005_\u0000\u0000\u2924\u2925\u0005S\u0000\u0000\u2925\u2926\u0005"+ + "T\u0000\u0000\u2926\u2927\u0005R\u0000\u0000\u2927\u2928\u0005E\u0000"+ + "\u0000\u2928\u2929\u0005N\u0000\u0000\u2929\u292a\u0005G\u0000\u0000\u292a"+ + "\u292b\u0005T\u0000\u0000\u292b\u292c\u0005H\u0000\u0000\u292c\u071a\u0001"+ + "\u0000\u0000\u0000\u292d\u292e\u0005V\u0000\u0000\u292e\u292f\u0005"; + private static final String _serializedATNSegment4 = + "E\u0000\u0000\u292f\u2930\u0005R\u0000\u0000\u2930\u2931\u0005S\u0000"+ + "\u0000\u2931\u2932\u0005I\u0000\u0000\u2932\u2933\u0005O\u0000\u0000\u2933"+ + "\u2934\u0005N\u0000\u0000\u2934\u071c\u0001\u0000\u0000\u0000\u2935\u2936"+ + "\u0005W\u0000\u0000\u2936\u2937\u0005A\u0000\u0000\u2937\u2938\u0005I"+ + "\u0000\u0000\u2938\u2939\u0005T\u0000\u0000\u2939\u293a\u0005_\u0000\u0000"+ + "\u293a\u293b\u0005U\u0000\u0000\u293b\u293c\u0005N\u0000\u0000\u293c\u293d"+ + "\u0005T\u0000\u0000\u293d\u293e\u0005I\u0000\u0000\u293e\u293f\u0005L"+ + "\u0000\u0000\u293f\u2940\u0005_\u0000\u0000\u2940\u2941\u0005S\u0000\u0000"+ + "\u2941\u2942\u0005Q\u0000\u0000\u2942\u2943\u0005L\u0000\u0000\u2943\u2944"+ + "\u0005_\u0000\u0000\u2944\u2945\u0005T\u0000\u0000\u2945\u2946\u0005H"+ + "\u0000\u0000\u2946\u2947\u0005R\u0000\u0000\u2947\u2948\u0005E\u0000\u0000"+ + "\u2948\u2949\u0005A\u0000\u0000\u2949\u294a\u0005D\u0000\u0000\u294a\u294b"+ + "\u0005_\u0000\u0000\u294b\u294c\u0005A\u0000\u0000\u294c\u294d\u0005F"+ + "\u0000\u0000\u294d\u294e\u0005T\u0000\u0000\u294e\u294f\u0005E\u0000\u0000"+ + "\u294f\u2950\u0005R\u0000\u0000\u2950\u2951\u0005_\u0000\u0000\u2951\u2952"+ + "\u0005G\u0000\u0000\u2952\u2953\u0005T\u0000\u0000\u2953\u2954\u0005I"+ + "\u0000\u0000\u2954\u2955\u0005D\u0000\u0000\u2955\u2956\u0005S\u0000\u0000"+ + "\u2956\u071e\u0001\u0000\u0000\u0000\u2957\u2958\u0005W\u0000\u0000\u2958"+ + "\u2959\u0005E\u0000\u0000\u2959\u295a\u0005E\u0000\u0000\u295a\u295b\u0005"+ + "K\u0000\u0000\u295b\u295c\u0005D\u0000\u0000\u295c\u295d\u0005A\u0000"+ + "\u0000\u295d\u295e\u0005Y\u0000\u0000\u295e\u0720\u0001\u0000\u0000\u0000"+ + "\u295f\u2960\u0005W\u0000\u0000\u2960\u2961\u0005E\u0000\u0000\u2961\u2962"+ + "\u0005E\u0000\u0000\u2962\u2963\u0005K\u0000\u0000\u2963\u2964\u0005O"+ + "\u0000\u0000\u2964\u2965\u0005F\u0000\u0000\u2965\u2966\u0005Y\u0000\u0000"+ + "\u2966\u2967\u0005E\u0000\u0000\u2967\u2968\u0005A\u0000\u0000\u2968\u2969"+ + "\u0005R\u0000\u0000\u2969\u0722\u0001\u0000\u0000\u0000\u296a\u296b\u0005"+ + "W\u0000\u0000\u296b\u296c\u0005E\u0000\u0000\u296c\u296d\u0005I\u0000"+ + "\u0000\u296d\u296e\u0005G\u0000\u0000\u296e\u296f\u0005H\u0000\u0000\u296f"+ + "\u2970\u0005T\u0000\u0000\u2970\u2971\u0005_\u0000\u0000\u2971\u2972\u0005"+ + "S\u0000\u0000\u2972\u2973\u0005T\u0000\u0000\u2973\u2974\u0005R\u0000"+ + "\u0000\u2974\u2975\u0005I\u0000\u0000\u2975\u2976\u0005N\u0000\u0000\u2976"+ + "\u2977\u0005G\u0000\u0000\u2977\u0724\u0001\u0000\u0000\u0000\u2978\u2979"+ + "\u0005W\u0000\u0000\u2979\u297a\u0005I\u0000\u0000\u297a\u297b\u0005T"+ + "\u0000\u0000\u297b\u297c\u0005H\u0000\u0000\u297c\u297d\u0005I\u0000\u0000"+ + "\u297d\u297e\u0005N\u0000\u0000\u297e\u0726\u0001\u0000\u0000\u0000\u297f"+ + "\u2980\u0005Y\u0000\u0000\u2980\u2981\u0005E\u0000\u0000\u2981\u2982\u0005"+ + "A\u0000\u0000\u2982\u2983\u0005R\u0000\u0000\u2983\u2984\u0005W\u0000"+ + "\u0000\u2984\u2985\u0005E\u0000\u0000\u2985\u2986\u0005E\u0000\u0000\u2986"+ + "\u2987\u0005K\u0000\u0000\u2987\u0728\u0001\u0000\u0000\u0000\u2988\u2989"+ + "\u0005Y\u0000\u0000\u2989\u072a\u0001\u0000\u0000\u0000\u298a\u298b\u0005"+ + "X\u0000\u0000\u298b\u072c\u0001\u0000\u0000\u0000\u298c\u298d\u0005:\u0000"+ + "\u0000\u298d\u298e\u0005=\u0000\u0000\u298e\u072e\u0001\u0000\u0000\u0000"+ + "\u298f\u2990\u0005+\u0000\u0000\u2990\u2991\u0005=\u0000\u0000\u2991\u0730"+ + "\u0001\u0000\u0000\u0000\u2992\u2993\u0005-\u0000\u0000\u2993\u2994\u0005"+ + "=\u0000\u0000\u2994\u0732\u0001\u0000\u0000\u0000\u2995\u2996\u0005*\u0000"+ + "\u0000\u2996\u2997\u0005=\u0000\u0000\u2997\u0734\u0001\u0000\u0000\u0000"+ + "\u2998\u2999\u0005/\u0000\u0000\u2999\u299a\u0005=\u0000\u0000\u299a\u0736"+ + "\u0001\u0000\u0000\u0000\u299b\u299c\u0005%\u0000\u0000\u299c\u299d\u0005"+ + "=\u0000\u0000\u299d\u0738\u0001\u0000\u0000\u0000\u299e\u299f\u0005&\u0000"+ + "\u0000\u299f\u29a0\u0005=\u0000\u0000\u29a0\u073a\u0001\u0000\u0000\u0000"+ + "\u29a1\u29a2\u0005^\u0000\u0000\u29a2\u29a3\u0005=\u0000\u0000\u29a3\u073c"+ + "\u0001\u0000\u0000\u0000\u29a4\u29a5\u0005|\u0000\u0000\u29a5\u29a6\u0005"+ + "=\u0000\u0000\u29a6\u073e\u0001\u0000\u0000\u0000\u29a7\u29a8\u0005*\u0000"+ + "\u0000\u29a8\u0740\u0001\u0000\u0000\u0000\u29a9\u29aa\u0005/\u0000\u0000"+ + "\u29aa\u0742\u0001\u0000\u0000\u0000\u29ab\u29ac\u0005%\u0000\u0000\u29ac"+ + "\u0744\u0001\u0000\u0000\u0000\u29ad\u29ae\u0005+\u0000\u0000\u29ae\u0746"+ + "\u0001\u0000\u0000\u0000\u29af\u29b0\u0005-\u0000\u0000\u29b0\u29b1\u0005"+ + "-\u0000\u0000\u29b1\u0748\u0001\u0000\u0000\u0000\u29b2\u29b3\u0005-\u0000"+ + "\u0000\u29b3\u074a\u0001\u0000\u0000\u0000\u29b4\u29b5\u0005D\u0000\u0000"+ + "\u29b5\u29b6\u0005I\u0000\u0000\u29b6\u29b7\u0005V\u0000\u0000\u29b7\u074c"+ + "\u0001\u0000\u0000\u0000\u29b8\u29b9\u0005M\u0000\u0000\u29b9\u29ba\u0005"+ + "O\u0000\u0000\u29ba\u29bb\u0005D\u0000\u0000\u29bb\u074e\u0001\u0000\u0000"+ + "\u0000\u29bc\u29bd\u0005=\u0000\u0000\u29bd\u0750\u0001\u0000\u0000\u0000"+ + "\u29be\u29bf\u0005>\u0000\u0000\u29bf\u0752\u0001\u0000\u0000\u0000\u29c0"+ + "\u29c1\u0005<\u0000\u0000\u29c1\u0754\u0001\u0000\u0000\u0000\u29c2\u29c3"+ + "\u0005!\u0000\u0000\u29c3\u0756\u0001\u0000\u0000\u0000\u29c4\u29c5\u0005"+ + "~\u0000\u0000\u29c5\u0758\u0001\u0000\u0000\u0000\u29c6\u29c7\u0005|\u0000"+ + "\u0000\u29c7\u075a\u0001\u0000\u0000\u0000\u29c8\u29c9\u0005&\u0000\u0000"+ + "\u29c9\u075c\u0001\u0000\u0000\u0000\u29ca\u29cb\u0005^\u0000\u0000\u29cb"+ + "\u075e\u0001\u0000\u0000\u0000\u29cc\u29cd\u0005.\u0000\u0000\u29cd\u0760"+ + "\u0001\u0000\u0000\u0000\u29ce\u29cf\u0005(\u0000\u0000\u29cf\u0762\u0001"+ + "\u0000\u0000\u0000\u29d0\u29d1\u0005)\u0000\u0000\u29d1\u0764\u0001\u0000"+ + "\u0000\u0000\u29d2\u29d3\u0005,\u0000\u0000\u29d3\u0766\u0001\u0000\u0000"+ + "\u0000\u29d4\u29d5\u0005;\u0000\u0000\u29d5\u0768\u0001\u0000\u0000\u0000"+ + "\u29d6\u29d7\u0005@\u0000\u0000\u29d7\u076a\u0001\u0000\u0000\u0000\u29d8"+ + "\u29d9\u00050\u0000\u0000\u29d9\u076c\u0001\u0000\u0000\u0000\u29da\u29db"+ + "\u00051\u0000\u0000\u29db\u076e\u0001\u0000\u0000\u0000\u29dc\u29dd\u0005"+ + "2\u0000\u0000\u29dd\u0770\u0001\u0000\u0000\u0000\u29de\u29df\u0005\'"+ + "\u0000\u0000\u29df\u0772\u0001\u0000\u0000\u0000\u29e0\u29e1\u0005\"\u0000"+ + "\u0000\u29e1\u0774\u0001\u0000\u0000\u0000\u29e2\u29e3\u0005`\u0000\u0000"+ + "\u29e3\u0776\u0001\u0000\u0000\u0000\u29e4\u29e5\u0005:\u0000\u0000\u29e5"+ + "\u0778\u0001\u0000\u0000\u0000\u29e6\u29e7\u0005`\u0000\u0000\u29e7\u29e8"+ + "\u0003\u0799\u03cc\u0000\u29e8\u29e9\u0005`\u0000\u0000\u29e9\u077a\u0001"+ + "\u0000\u0000\u0000\u29ea\u29ec\u0003\u07a7\u03d3\u0000\u29eb\u29ea\u0001"+ + "\u0000\u0000\u0000\u29ec\u29ed\u0001\u0000\u0000\u0000\u29ed\u29eb\u0001"+ + "\u0000\u0000\u0000\u29ed\u29ee\u0001\u0000\u0000\u0000\u29ee\u29ef\u0001"+ + "\u0000\u0000\u0000\u29ef\u29f0\u0007\u0002\u0000\u0000\u29f0\u077c\u0001"+ + "\u0000\u0000\u0000\u29f1\u29f2\u0005N\u0000\u0000\u29f2\u29f3\u0003\u07a1"+ + "\u03d0\u0000\u29f3\u077e\u0001\u0000\u0000\u0000\u29f4\u29f7\u0003\u079f"+ + "\u03cf\u0000\u29f5\u29f7\u0003\u07a1\u03d0\u0000\u29f6\u29f4\u0001\u0000"+ + "\u0000\u0000\u29f6\u29f5\u0001\u0000\u0000\u0000\u29f7\u0780\u0001\u0000"+ + "\u0000\u0000\u29f8\u29fa\u0003\u07a7\u03d3\u0000\u29f9\u29f8\u0001\u0000"+ + "\u0000\u0000\u29fa\u29fb\u0001\u0000\u0000\u0000\u29fb\u29f9\u0001\u0000"+ + "\u0000\u0000\u29fb\u29fc\u0001\u0000\u0000\u0000\u29fc\u0782\u0001\u0000"+ + "\u0000\u0000\u29fd\u29fe\u0005X\u0000\u0000\u29fe\u2a02\u0005\'\u0000"+ + "\u0000\u29ff\u2a00\u0003\u07a5\u03d2\u0000\u2a00\u2a01\u0003\u07a5\u03d2"+ + "\u0000\u2a01\u2a03\u0001\u0000\u0000\u0000\u2a02\u29ff\u0001\u0000\u0000"+ + "\u0000\u2a03\u2a04\u0001\u0000\u0000\u0000\u2a04\u2a02\u0001\u0000\u0000"+ + "\u0000\u2a04\u2a05\u0001\u0000\u0000\u0000\u2a05\u2a06\u0001\u0000\u0000"+ + "\u0000\u2a06\u2a07\u0005\'\u0000\u0000\u2a07\u2a11\u0001\u0000\u0000\u0000"+ + "\u2a08\u2a09\u00050\u0000\u0000\u2a09\u2a0a\u0005X\u0000\u0000\u2a0a\u2a0c"+ + "\u0001\u0000\u0000\u0000\u2a0b\u2a0d\u0003\u07a5\u03d2\u0000\u2a0c\u2a0b"+ + "\u0001\u0000\u0000\u0000\u2a0d\u2a0e\u0001\u0000\u0000\u0000\u2a0e\u2a0c"+ + "\u0001\u0000\u0000\u0000\u2a0e\u2a0f\u0001\u0000\u0000\u0000\u2a0f\u2a11"+ + "\u0001\u0000\u0000\u0000\u2a10\u29fd\u0001\u0000\u0000\u0000\u2a10\u2a08"+ + "\u0001\u0000\u0000\u0000\u2a11\u0784\u0001\u0000\u0000\u0000\u2a12\u2a14"+ + "\u0003\u07a7\u03d3\u0000\u2a13\u2a12\u0001\u0000\u0000\u0000\u2a14\u2a15"+ + "\u0001\u0000\u0000\u0000\u2a15\u2a13\u0001\u0000\u0000\u0000\u2a15\u2a16"+ + "\u0001\u0000\u0000\u0000\u2a16\u2a18\u0001\u0000\u0000\u0000\u2a17\u2a13"+ + "\u0001\u0000\u0000\u0000\u2a17\u2a18\u0001\u0000\u0000\u0000\u2a18\u2a19"+ + "\u0001\u0000\u0000\u0000\u2a19\u2a1b\u0005.\u0000\u0000\u2a1a\u2a1c\u0003"+ + "\u07a7\u03d3\u0000\u2a1b\u2a1a\u0001\u0000\u0000\u0000\u2a1c\u2a1d\u0001"+ + "\u0000\u0000\u0000\u2a1d\u2a1b\u0001\u0000\u0000\u0000\u2a1d\u2a1e\u0001"+ + "\u0000\u0000\u0000\u2a1e\u2a3e\u0001\u0000\u0000\u0000\u2a1f\u2a21\u0003"+ + "\u07a7\u03d3\u0000\u2a20\u2a1f\u0001\u0000\u0000\u0000\u2a21\u2a22\u0001"+ + "\u0000\u0000\u0000\u2a22\u2a20\u0001\u0000\u0000\u0000\u2a22\u2a23\u0001"+ + "\u0000\u0000\u0000\u2a23\u2a24\u0001\u0000\u0000\u0000\u2a24\u2a25\u0005"+ + ".\u0000\u0000\u2a25\u2a26\u0003\u079b\u03cd\u0000\u2a26\u2a3e\u0001\u0000"+ + "\u0000\u0000\u2a27\u2a29\u0003\u07a7\u03d3\u0000\u2a28\u2a27\u0001\u0000"+ + "\u0000\u0000\u2a29\u2a2a\u0001\u0000\u0000\u0000\u2a2a\u2a28\u0001\u0000"+ + "\u0000\u0000\u2a2a\u2a2b\u0001\u0000\u0000\u0000\u2a2b\u2a2d\u0001\u0000"+ + "\u0000\u0000\u2a2c\u2a28\u0001\u0000\u0000\u0000\u2a2c\u2a2d\u0001\u0000"+ + "\u0000\u0000\u2a2d\u2a2e\u0001\u0000\u0000\u0000\u2a2e\u2a30\u0005.\u0000"+ + "\u0000\u2a2f\u2a31\u0003\u07a7\u03d3\u0000\u2a30\u2a2f\u0001\u0000\u0000"+ + "\u0000\u2a31\u2a32\u0001\u0000\u0000\u0000\u2a32\u2a30\u0001\u0000\u0000"+ + "\u0000\u2a32\u2a33\u0001\u0000\u0000\u0000\u2a33\u2a34\u0001\u0000\u0000"+ + "\u0000\u2a34\u2a35\u0003\u079b\u03cd\u0000\u2a35\u2a3e\u0001\u0000\u0000"+ + "\u0000\u2a36\u2a38\u0003\u07a7\u03d3\u0000\u2a37\u2a36\u0001\u0000\u0000"+ + "\u0000\u2a38\u2a39\u0001\u0000\u0000\u0000\u2a39\u2a37\u0001\u0000\u0000"+ + "\u0000\u2a39\u2a3a\u0001\u0000\u0000\u0000\u2a3a\u2a3b\u0001\u0000\u0000"+ + "\u0000\u2a3b\u2a3c\u0003\u079b\u03cd\u0000\u2a3c\u2a3e\u0001\u0000\u0000"+ + "\u0000\u2a3d\u2a17\u0001\u0000\u0000\u0000\u2a3d\u2a20\u0001\u0000\u0000"+ + "\u0000\u2a3d\u2a2c\u0001\u0000\u0000\u0000\u2a3d\u2a37\u0001\u0000\u0000"+ + "\u0000\u2a3e\u0786\u0001\u0000\u0000\u0000\u2a3f\u2a40\u0005\\\u0000\u0000"+ + "\u2a40\u2a41\u0005N\u0000\u0000\u2a41\u0788\u0001\u0000\u0000\u0000\u2a42"+ + "\u2a43\u0003\u07a9\u03d4\u0000\u2a43\u078a\u0001\u0000\u0000\u0000\u2a44"+ + "\u2a45\u0005_\u0000\u0000\u2a45\u2a46\u0003\u0799\u03cc\u0000\u2a46\u078c"+ + "\u0001\u0000\u0000\u0000\u2a47\u2a48\u0005.\u0000\u0000\u2a48\u2a49\u0003"+ + "\u079d\u03ce\u0000\u2a49\u078e\u0001\u0000\u0000\u0000\u2a4a\u2a4b\u0003"+ + "\u079d\u03ce\u0000\u2a4b\u0790\u0001\u0000\u0000\u0000\u2a4c\u2a4e\u0005"+ + "`\u0000\u0000\u2a4d\u2a4f\b\u0003\u0000\u0000\u2a4e\u2a4d\u0001\u0000"+ + "\u0000\u0000\u2a4f\u2a50\u0001\u0000\u0000\u0000\u2a50\u2a4e\u0001\u0000"+ + "\u0000\u0000\u2a50\u2a51\u0001\u0000\u0000\u0000\u2a51\u2a52\u0001\u0000"+ + "\u0000\u0000\u2a52\u2a53\u0005`\u0000\u0000\u2a53\u0792\u0001\u0000\u0000"+ + "\u0000\u2a54\u2a59\u0003\u07a1\u03d0\u0000\u2a55\u2a59\u0003\u079f\u03cf"+ + "\u0000\u2a56\u2a59\u0003\u07a3\u03d1\u0000\u2a57\u2a59\u0003\u079d\u03ce"+ + "\u0000\u2a58\u2a54\u0001\u0000\u0000\u0000\u2a58\u2a55\u0001\u0000\u0000"+ + "\u0000\u2a58\u2a56\u0001\u0000\u0000\u0000\u2a58\u2a57\u0001\u0000\u0000"+ + "\u0000\u2a59\u2a5a\u0001\u0000\u0000\u0000\u2a5a\u2a5f\u0005@\u0000\u0000"+ + "\u2a5b\u2a60\u0003\u07a1\u03d0\u0000\u2a5c\u2a60\u0003\u079f\u03cf\u0000"+ + "\u2a5d\u2a60\u0003\u07a3\u03d1\u0000\u2a5e\u2a60\u0003\u079d\u03ce\u0000"+ + "\u2a5f\u2a5b\u0001\u0000\u0000\u0000\u2a5f\u2a5c\u0001\u0000\u0000\u0000"+ + "\u2a5f\u2a5d\u0001\u0000\u0000\u0000\u2a5f\u2a5e\u0001\u0000\u0000\u0000"+ + "\u2a60\u0794\u0001\u0000\u0000\u0000\u2a61\u2a6a\u0005@\u0000\u0000\u2a62"+ + "\u2a64\u0007\u0004\u0000\u0000\u2a63\u2a62\u0001\u0000\u0000\u0000\u2a64"+ + "\u2a65\u0001\u0000\u0000\u0000\u2a65\u2a63\u0001\u0000\u0000\u0000\u2a65"+ + "\u2a66\u0001\u0000\u0000\u0000\u2a66\u2a6b\u0001\u0000\u0000\u0000\u2a67"+ + "\u2a6b\u0003\u07a1\u03d0\u0000\u2a68\u2a6b\u0003\u079f\u03cf\u0000\u2a69"+ + "\u2a6b\u0003\u07a3\u03d1\u0000\u2a6a\u2a63\u0001\u0000\u0000\u0000\u2a6a"+ + "\u2a67\u0001\u0000\u0000\u0000\u2a6a\u2a68\u0001\u0000\u0000\u0000\u2a6a"+ + "\u2a69\u0001\u0000\u0000\u0000\u2a6b\u0796\u0001\u0000\u0000\u0000\u2a6c"+ + "\u2a6d\u0005@\u0000\u0000\u2a6d\u2a74\u0005@\u0000\u0000\u2a6e\u2a70\u0007"+ + "\u0004\u0000\u0000\u2a6f\u2a6e\u0001\u0000\u0000\u0000\u2a70\u2a71\u0001"+ + "\u0000\u0000\u0000\u2a71\u2a6f\u0001\u0000\u0000\u0000\u2a71\u2a72\u0001"+ + "\u0000\u0000\u0000\u2a72\u2a75\u0001\u0000\u0000\u0000\u2a73\u2a75\u0003"+ + "\u07a3\u03d1\u0000\u2a74\u2a6f\u0001\u0000\u0000\u0000\u2a74\u2a73\u0001"+ + "\u0000\u0000\u0000\u2a75\u0798\u0001\u0000\u0000\u0000\u2a76\u2a9f\u0003"+ + "\u046d\u0236\u0000\u2a77\u2a9f\u0003\u046f\u0237\u0000\u2a78\u2a9f\u0003"+ + "\u0471\u0238\u0000\u2a79\u2a9f\u0003\u0175\u00ba\u0000\u2a7a\u2a9f\u0003"+ + "\u0473\u0239\u0000\u2a7b\u2a9f\u0003\u0475\u023a\u0000\u2a7c\u2a9f\u0003"+ + "\u0477\u023b\u0000\u2a7d\u2a9f\u0003\u0479\u023c\u0000\u2a7e\u2a9f\u0003"+ + "\u047b\u023d\u0000\u2a7f\u2a9f\u0003\u047d\u023e\u0000\u2a80\u2a9f\u0003"+ + "\u047f\u023f\u0000\u2a81\u2a9f\u0003\u0481\u0240\u0000\u2a82\u2a9f\u0003"+ + "\u0483\u0241\u0000\u2a83\u2a9f\u0003\u0485\u0242\u0000\u2a84\u2a9f\u0003"+ + "\u0487\u0243\u0000\u2a85\u2a9f\u0003\u0489\u0244\u0000\u2a86\u2a9f\u0003"+ + "\u048b\u0245\u0000\u2a87\u2a9f\u0003\u048d\u0246\u0000\u2a88\u2a9f\u0003"+ + "\u048f\u0247\u0000\u2a89\u2a9f\u0003\u0491\u0248\u0000\u2a8a\u2a9f\u0003"+ + "\u0493\u0249\u0000\u2a8b\u2a9f\u0003\u0495\u024a\u0000\u2a8c\u2a9f\u0003"+ + "\u0497\u024b\u0000\u2a8d\u2a9f\u0003\u0499\u024c\u0000\u2a8e\u2a9f\u0003"+ + "\u049b\u024d\u0000\u2a8f\u2a9f\u0003\u049d\u024e\u0000\u2a90\u2a9f\u0003"+ + "\u049f\u024f\u0000\u2a91\u2a9f\u0003\u04a1\u0250\u0000\u2a92\u2a9f\u0003"+ + "\u04a3\u0251\u0000\u2a93\u2a9f\u0003\u04a5\u0252\u0000\u2a94\u2a9f\u0003"+ + "\u04a7\u0253\u0000\u2a95\u2a9f\u0003\u04a9\u0254\u0000\u2a96\u2a9f\u0003"+ + "\u04ab\u0255\u0000\u2a97\u2a9f\u0003\u04ad\u0256\u0000\u2a98\u2a9f\u0003"+ + "\u04af\u0257\u0000\u2a99\u2a9f\u0003\u04b1\u0258\u0000\u2a9a\u2a9f\u0003"+ + "\u04b3\u0259\u0000\u2a9b\u2a9f\u0003\u04b5\u025a\u0000\u2a9c\u2a9f\u0003"+ + "\u04b7\u025b\u0000\u2a9d\u2a9f\u0003\u04bb\u025d\u0000\u2a9e\u2a76\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a77\u0001\u0000\u0000\u0000\u2a9e\u2a78\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a79\u0001\u0000\u0000\u0000\u2a9e\u2a7a\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a7b\u0001\u0000\u0000\u0000\u2a9e\u2a7c\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a7d\u0001\u0000\u0000\u0000\u2a9e\u2a7e\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a7f\u0001\u0000\u0000\u0000\u2a9e\u2a80\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a81\u0001\u0000\u0000\u0000\u2a9e\u2a82\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a83\u0001\u0000\u0000\u0000\u2a9e\u2a84\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a85\u0001\u0000\u0000\u0000\u2a9e\u2a86\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a87\u0001\u0000\u0000\u0000\u2a9e\u2a88\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a89\u0001\u0000\u0000\u0000\u2a9e\u2a8a\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a8b\u0001\u0000\u0000\u0000\u2a9e\u2a8c\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a8d\u0001\u0000\u0000\u0000\u2a9e\u2a8e\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a8f\u0001\u0000\u0000\u0000\u2a9e\u2a90\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a91\u0001\u0000\u0000\u0000\u2a9e\u2a92\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a93\u0001\u0000\u0000\u0000\u2a9e\u2a94\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a95\u0001\u0000\u0000\u0000\u2a9e\u2a96\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a97\u0001\u0000\u0000\u0000\u2a9e\u2a98\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a99\u0001\u0000\u0000\u0000\u2a9e\u2a9a\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a9b\u0001\u0000\u0000\u0000\u2a9e\u2a9c\u0001"+ + "\u0000\u0000\u0000\u2a9e\u2a9d\u0001\u0000\u0000\u0000\u2a9f\u079a\u0001"+ + "\u0000\u0000\u0000\u2aa0\u2aa2\u0005E\u0000\u0000\u2aa1\u2aa3\u0005-\u0000"+ + "\u0000\u2aa2\u2aa1\u0001\u0000\u0000\u0000\u2aa2\u2aa3\u0001\u0000\u0000"+ + "\u0000\u2aa3\u2aa5\u0001\u0000\u0000\u0000\u2aa4\u2aa6\u0003\u07a7\u03d3"+ + "\u0000\u2aa5\u2aa4\u0001\u0000\u0000\u0000\u2aa6\u2aa7\u0001\u0000\u0000"+ + "\u0000\u2aa7\u2aa5\u0001\u0000\u0000\u0000\u2aa7\u2aa8\u0001\u0000\u0000"+ + "\u0000\u2aa8\u079c\u0001\u0000\u0000\u0000\u2aa9\u2aab\u0007\u0005\u0000"+ + "\u0000\u2aaa\u2aa9\u0001\u0000\u0000\u0000\u2aab\u2aae\u0001\u0000\u0000"+ + "\u0000\u2aac\u2aad\u0001\u0000\u0000\u0000\u2aac\u2aaa\u0001\u0000\u0000"+ + "\u0000\u2aad\u2ab0\u0001\u0000\u0000\u0000\u2aae\u2aac\u0001\u0000\u0000"+ + "\u0000\u2aaf\u2ab1\u0007\u0006\u0000\u0000\u2ab0\u2aaf\u0001\u0000\u0000"+ + "\u0000\u2ab1\u2ab2\u0001\u0000\u0000\u0000\u2ab2\u2ab3\u0001\u0000\u0000"+ + "\u0000\u2ab2\u2ab0\u0001\u0000\u0000\u0000\u2ab3\u2ab7\u0001\u0000\u0000"+ + "\u0000\u2ab4\u2ab6\u0007\u0005\u0000\u0000\u2ab5\u2ab4\u0001\u0000\u0000"+ + "\u0000\u2ab6\u2ab9\u0001\u0000\u0000\u0000\u2ab7\u2ab5\u0001\u0000\u0000"+ + "\u0000\u2ab7\u2ab8\u0001\u0000\u0000\u0000\u2ab8\u079e\u0001\u0000\u0000"+ + "\u0000\u2ab9\u2ab7\u0001\u0000\u0000\u0000\u2aba\u2ac2\u0005\"\u0000\u0000"+ + "\u2abb\u2abc\u0005\\\u0000\u0000\u2abc\u2ac1\t\u0000\u0000\u0000\u2abd"+ + "\u2abe\u0005\"\u0000\u0000\u2abe\u2ac1\u0005\"\u0000\u0000\u2abf\u2ac1"+ + "\b\u0007\u0000\u0000\u2ac0\u2abb\u0001\u0000\u0000\u0000\u2ac0\u2abd\u0001"+ + "\u0000\u0000\u0000\u2ac0\u2abf\u0001\u0000\u0000\u0000\u2ac1\u2ac4\u0001"+ + "\u0000\u0000\u0000\u2ac2\u2ac0\u0001\u0000\u0000\u0000\u2ac2\u2ac3\u0001"+ + "\u0000\u0000\u0000\u2ac3\u2ac5\u0001\u0000\u0000\u0000\u2ac4\u2ac2\u0001"+ + "\u0000\u0000\u0000\u2ac5\u2ac6\u0005\"\u0000\u0000\u2ac6\u07a0\u0001\u0000"+ + "\u0000\u0000\u2ac7\u2acf\u0005\'\u0000\u0000\u2ac8\u2ac9\u0005\\\u0000"+ + "\u0000\u2ac9\u2ace\t\u0000\u0000\u0000\u2aca\u2acb\u0005\'\u0000\u0000"+ + "\u2acb\u2ace\u0005\'\u0000\u0000\u2acc\u2ace\b\b\u0000\u0000\u2acd\u2ac8"+ + "\u0001\u0000\u0000\u0000\u2acd\u2aca\u0001\u0000\u0000\u0000\u2acd\u2acc"+ + "\u0001\u0000\u0000\u0000\u2ace\u2ad1\u0001\u0000\u0000\u0000\u2acf\u2acd"+ + "\u0001\u0000\u0000\u0000\u2acf\u2ad0\u0001\u0000\u0000\u0000\u2ad0\u2ad2"+ + "\u0001\u0000\u0000\u0000\u2ad1\u2acf\u0001\u0000\u0000\u0000\u2ad2\u2ad3"+ + "\u0005\'\u0000\u0000\u2ad3\u07a2\u0001\u0000\u0000\u0000\u2ad4\u2adc\u0005"+ + "`\u0000\u0000\u2ad5\u2ad6\u0005\\\u0000\u0000\u2ad6\u2adb\t\u0000\u0000"+ + "\u0000\u2ad7\u2ad8\u0005`\u0000\u0000\u2ad8\u2adb\u0005`\u0000\u0000\u2ad9"+ + "\u2adb\b\t\u0000\u0000\u2ada\u2ad5\u0001\u0000\u0000\u0000\u2ada\u2ad7"+ + "\u0001\u0000\u0000\u0000\u2ada\u2ad9\u0001\u0000\u0000\u0000\u2adb\u2ade"+ + "\u0001\u0000\u0000\u0000\u2adc\u2ada\u0001\u0000\u0000\u0000\u2adc\u2add"+ + "\u0001\u0000\u0000\u0000\u2add\u2adf\u0001\u0000\u0000\u0000\u2ade\u2adc"+ + "\u0001\u0000\u0000\u0000\u2adf\u2ae0\u0005`\u0000\u0000\u2ae0\u07a4\u0001"+ + "\u0000\u0000\u0000\u2ae1\u2ae2\u0007\n\u0000\u0000\u2ae2\u07a6\u0001\u0000"+ + "\u0000\u0000\u2ae3\u2ae4\u0007\u000b\u0000\u0000\u2ae4\u07a8\u0001\u0000"+ + "\u0000\u0000\u2ae5\u2ae6\u0005B\u0000\u0000\u2ae6\u2ae8\u0005\'\u0000"+ + "\u0000\u2ae7\u2ae9\u0007\f\u0000\u0000\u2ae8\u2ae7\u0001\u0000\u0000\u0000"+ + "\u2ae9\u2aea\u0001\u0000\u0000\u0000\u2aea\u2ae8\u0001\u0000\u0000\u0000"+ + "\u2aea\u2aeb\u0001\u0000\u0000\u0000\u2aeb\u2aec\u0001\u0000\u0000\u0000"+ + "\u2aec\u2aed\u0005\'\u0000\u0000\u2aed\u07aa\u0001\u0000\u0000\u0000\u2aee"+ + "\u2aef\t\u0000\u0000\u0000\u2aef\u2af0\u0001\u0000\u0000\u0000\u2af0\u2af1"+ + "\u0006\u03d5\u0002\u0000\u2af1\u07ac\u0001\u0000\u0000\u0000.\u0000\u07b0"+ + "\u07bb\u07c8\u07d4\u07d9\u07dd\u07e1\u07e7\u07eb\u07ed\u29ed\u29f6\u29fb"+ + "\u2a04\u2a0e\u2a10\u2a15\u2a17\u2a1d\u2a22\u2a2a\u2a2c\u2a32\u2a39\u2a3d"+ + "\u2a50\u2a58\u2a5f\u2a65\u2a6a\u2a71\u2a74\u2a9e\u2aa2\u2aa7\u2aac\u2ab2"+ + "\u2ab7\u2ac0\u2ac2\u2acd\u2acf\u2ada\u2adc\u2aea\u0003\u0000\u0001\u0000"+ + "\u0000\u0002\u0000\u0000\u0003\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2, + _serializedATNSegment3, + _serializedATNSegment4 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/gen/MySqlLexer.tokens b/gen/MySqlLexer.tokens new file mode 100644 index 0000000..4352f44 --- /dev/null +++ b/gen/MySqlLexer.tokens @@ -0,0 +1,1925 @@ +SPACE=1 +SPEC_MYSQL_COMMENT=2 +COMMENT_INPUT=3 +LINE_COMMENT=4 +ADD=5 +ALL=6 +ALTER=7 +ANALYZE=8 +AND=9 +AS=10 +ASC=11 +BEFORE=12 +BETWEEN=13 +BOTH=14 +BY=15 +CALL=16 +CASCADE=17 +CASE=18 +CAST=19 +CHANGE=20 +CHARACTER=21 +CHECK=22 +COLLATE=23 +COLUMN=24 +CONDITION=25 +CONSTRAINT=26 +CONTINUE=27 +CONVERT=28 +CREATE=29 +CROSS=30 +CURRENT_USER=31 +CURSOR=32 +DATABASE=33 +DATABASES=34 +DECLARE=35 +DEFAULT=36 +DELAYED=37 +DELETE=38 +DESC=39 +DESCRIBE=40 +DETERMINISTIC=41 +DISTINCT=42 +DISTINCTROW=43 +DROP=44 +EACH=45 +ELSE=46 +ELSEIF=47 +ENCLOSED=48 +ESCAPED=49 +EXISTS=50 +EXIT=51 +EXPLAIN=52 +FALSE=53 +FETCH=54 +FOR=55 +FORCE=56 +FOREIGN=57 +FROM=58 +FULLTEXT=59 +GRANT=60 +GROUP=61 +HAVING=62 +HIGH_PRIORITY=63 +IF=64 +IGNORE=65 +IN=66 +INDEX=67 +INFILE=68 +INNER=69 +INOUT=70 +INSERT=71 +INTERVAL=72 +INTO=73 +IS=74 +ITERATE=75 +JOIN=76 +KEY=77 +KEYS=78 +KILL=79 +LEADING=80 +LEAVE=81 +LEFT=82 +LIKE=83 +LIMIT=84 +LINEAR=85 +LINES=86 +LOAD=87 +LOCK=88 +LOOP=89 +LOW_PRIORITY=90 +MASTER_BIND=91 +MASTER_SSL_VERIFY_SERVER_CERT=92 +MATCH=93 +MAXVALUE=94 +MODIFIES=95 +NATURAL=96 +NOT=97 +NO_WRITE_TO_BINLOG=98 +NULL_LITERAL=99 +ON=100 +OPTIMIZE=101 +OPTION=102 +OPTIONALLY=103 +OR=104 +ORDER=105 +OUT=106 +OUTER=107 +OUTFILE=108 +PARTITION=109 +PRIMARY=110 +PROCEDURE=111 +PURGE=112 +RANGE=113 +READ=114 +READS=115 +REFERENCES=116 +REGEXP=117 +RELEASE=118 +RENAME=119 +REPEAT=120 +REPLACE=121 +REQUIRE=122 +RESTRICT=123 +RETURN=124 +REVOKE=125 +RIGHT=126 +RLIKE=127 +SCHEMA=128 +SCHEMAS=129 +SELECT=130 +SET=131 +SEPARATOR=132 +SHOW=133 +SPATIAL=134 +SQL=135 +SQLEXCEPTION=136 +SQLSTATE=137 +SQLWARNING=138 +SQL_BIG_RESULT=139 +SQL_CALC_FOUND_ROWS=140 +SQL_SMALL_RESULT=141 +SSL=142 +STARTING=143 +STRAIGHT_JOIN=144 +TABLE=145 +TERMINATED=146 +THEN=147 +TO=148 +TRAILING=149 +TRIGGER=150 +TRUE=151 +UNDO=152 +UNION=153 +UNIQUE=154 +UNLOCK=155 +UNSIGNED=156 +UPDATE=157 +USAGE=158 +USE=159 +USING=160 +VALUES=161 +WHEN=162 +WHERE=163 +WHILE=164 +WITH=165 +WRITE=166 +XOR=167 +ZEROFILL=168 +TINYINT=169 +SMALLINT=170 +MEDIUMINT=171 +INT=172 +INTEGER=173 +BIGINT=174 +REAL=175 +DOUBLE=176 +FLOAT=177 +DECIMAL=178 +NUMERIC=179 +DATE=180 +TIME=181 +TIMESTAMP=182 +DATETIME=183 +YEAR=184 +CHAR=185 +VARCHAR=186 +BINARY=187 +VARBINARY=188 +TINYBLOB=189 +BLOB=190 +MEDIUMBLOB=191 +LONGBLOB=192 +TINYTEXT=193 +TEXT=194 +MEDIUMTEXT=195 +LONGTEXT=196 +ENUM=197 +YEAR_MONTH=198 +DAY_HOUR=199 +DAY_MINUTE=200 +DAY_SECOND=201 +HOUR_MINUTE=202 +HOUR_SECOND=203 +MINUTE_SECOND=204 +SECOND_MICROSECOND=205 +MINUTE_MICROSECOND=206 +HOUR_MICROSECOND=207 +DAY_MICROSECOND=208 +AVG=209 +BIT_AND=210 +BIT_OR=211 +BIT_XOR=212 +COUNT=213 +GROUP_CONCAT=214 +MAX=215 +MIN=216 +STD=217 +STDDEV=218 +STDDEV_POP=219 +STDDEV_SAMP=220 +SUM=221 +VAR_POP=222 +VAR_SAMP=223 +VARIANCE=224 +CURRENT_DATE=225 +CURRENT_TIME=226 +CURRENT_TIMESTAMP=227 +LOCALTIME=228 +CURDATE=229 +CURTIME=230 +DATE_ADD=231 +DATE_SUB=232 +EXTRACT=233 +LOCALTIMESTAMP=234 +NOW=235 +POSITION=236 +SUBSTR=237 +SUBSTRING=238 +SYSDATE=239 +TRIM=240 +UTC_DATE=241 +UTC_TIME=242 +UTC_TIMESTAMP=243 +ACCOUNT=244 +ACTION=245 +AFTER=246 +AGGREGATE=247 +ALGORITHM=248 +ANY=249 +AT=250 +AUTHORS=251 +AUTOCOMMIT=252 +AUTOEXTEND_SIZE=253 +AUTO_INCREMENT=254 +AVG_ROW_LENGTH=255 +BEGIN=256 +BINLOG=257 +BIT=258 +BLOCK=259 +BOOL=260 +BOOLEAN=261 +BTREE=262 +CACHE=263 +CASCADED=264 +CHAIN=265 +CHANGED=266 +CHANNEL=267 +CHECKSUM=268 +CIPHER=269 +CLIENT=270 +CLOSE=271 +COALESCE=272 +CODE=273 +COLUMNS=274 +COLUMN_FORMAT=275 +COMMENT=276 +COMMIT=277 +COMPACT=278 +COMPLETION=279 +COMPRESSED=280 +COMPRESSION=281 +CONCURRENT=282 +CONNECTION=283 +CONSISTENT=284 +CONTAINS=285 +CONTEXT=286 +CONTRIBUTORS=287 +COPY=288 +CPU=289 +DATA=290 +DATAFILE=291 +DEALLOCATE=292 +DEFAULT_AUTH=293 +DEFINER=294 +DELAY_KEY_WRITE=295 +DES_KEY_FILE=296 +DIRECTORY=297 +DISABLE=298 +DISCARD=299 +DISK=300 +DO=301 +DUMPFILE=302 +DUPLICATE=303 +DYNAMIC=304 +ENABLE=305 +ENCRYPTION=306 +END=307 +ENDS=308 +ENGINE=309 +ENGINES=310 +ERROR=311 +ERRORS=312 +ESCAPE=313 +EVEN=314 +EVENT=315 +EVENTS=316 +EVERY=317 +EXCHANGE=318 +EXCLUSIVE=319 +EXPIRE=320 +EXPORT=321 +EXTENDED=322 +EXTENT_SIZE=323 +FAST=324 +FAULTS=325 +FIELDS=326 +FILE_BLOCK_SIZE=327 +FILTER=328 +FIRST=329 +FIXED=330 +FLUSH=331 +FOLLOWS=332 +FOUND=333 +FULL=334 +FUNCTION=335 +GENERAL=336 +GLOBAL=337 +GRANTS=338 +GROUP_REPLICATION=339 +HANDLER=340 +HASH=341 +HELP=342 +HOST=343 +HOSTS=344 +IDENTIFIED=345 +IGNORE_SERVER_IDS=346 +IMPORT=347 +INDEXES=348 +INITIAL_SIZE=349 +INPLACE=350 +INSERT_METHOD=351 +INSTALL=352 +INSTANCE=353 +INVOKER=354 +IO=355 +IO_THREAD=356 +IPC=357 +ISOLATION=358 +ISSUER=359 +JSON=360 +KEY_BLOCK_SIZE=361 +LANGUAGE=362 +LAST=363 +LEAVES=364 +LESS=365 +LEVEL=366 +LIST=367 +LOCAL=368 +LOGFILE=369 +LOGS=370 +MASTER=371 +MASTER_AUTO_POSITION=372 +MASTER_CONNECT_RETRY=373 +MASTER_DELAY=374 +MASTER_HEARTBEAT_PERIOD=375 +MASTER_HOST=376 +MASTER_LOG_FILE=377 +MASTER_LOG_POS=378 +MASTER_PASSWORD=379 +MASTER_PORT=380 +MASTER_RETRY_COUNT=381 +MASTER_SSL=382 +MASTER_SSL_CA=383 +MASTER_SSL_CAPATH=384 +MASTER_SSL_CERT=385 +MASTER_SSL_CIPHER=386 +MASTER_SSL_CRL=387 +MASTER_SSL_CRLPATH=388 +MASTER_SSL_KEY=389 +MASTER_TLS_VERSION=390 +MASTER_USER=391 +MAX_CONNECTIONS_PER_HOUR=392 +MAX_QUERIES_PER_HOUR=393 +MAX_ROWS=394 +MAX_SIZE=395 +MAX_UPDATES_PER_HOUR=396 +MAX_USER_CONNECTIONS=397 +MEDIUM=398 +MERGE=399 +MID=400 +MIGRATE=401 +MIN_ROWS=402 +MODE=403 +MODIFY=404 +MUTEX=405 +MYSQL=406 +NAME=407 +NAMES=408 +NCHAR=409 +NEVER=410 +NEXT=411 +NO=412 +NODEGROUP=413 +NONE=414 +OFFLINE=415 +OFFSET=416 +OJ=417 +OLD_PASSWORD=418 +ONE=419 +ONLINE=420 +ONLY=421 +OPEN=422 +OPTIMIZER_COSTS=423 +OPTIONS=424 +OWNER=425 +PACK_KEYS=426 +PAGE=427 +PARSER=428 +PARTIAL=429 +PARTITIONING=430 +PARTITIONS=431 +PASSWORD=432 +PHASE=433 +PLUGIN=434 +PLUGIN_DIR=435 +PLUGINS=436 +PORT=437 +PRECEDES=438 +PREPARE=439 +PRESERVE=440 +PREV=441 +PROCESSLIST=442 +PROFILE=443 +PROFILES=444 +PROXY=445 +QUERY=446 +QUICK=447 +REBUILD=448 +RECOVER=449 +REDO_BUFFER_SIZE=450 +REDUNDANT=451 +RELAY=452 +RELAY_LOG_FILE=453 +RELAY_LOG_POS=454 +RELAYLOG=455 +REMOVE=456 +REORGANIZE=457 +REPAIR=458 +REPLICATE_DO_DB=459 +REPLICATE_DO_TABLE=460 +REPLICATE_IGNORE_DB=461 +REPLICATE_IGNORE_TABLE=462 +REPLICATE_REWRITE_DB=463 +REPLICATE_WILD_DO_TABLE=464 +REPLICATE_WILD_IGNORE_TABLE=465 +REPLICATION=466 +RESET=467 +RESUME=468 +RETURNS=469 +ROLLBACK=470 +ROLLUP=471 +ROTATE=472 +ROW=473 +ROWS=474 +ROW_FORMAT=475 +SAVEPOINT=476 +SCHEDULE=477 +SECURITY=478 +SERVER=479 +SESSION=480 +SHARE=481 +SHARED=482 +SIGNED=483 +SIMPLE=484 +SLAVE=485 +SLOW=486 +SNAPSHOT=487 +SOCKET=488 +SOME=489 +SONAME=490 +SOUNDS=491 +SOURCE=492 +SQL_AFTER_GTIDS=493 +SQL_AFTER_MTS_GAPS=494 +SQL_BEFORE_GTIDS=495 +SQL_BUFFER_RESULT=496 +SQL_CACHE=497 +SQL_NO_CACHE=498 +SQL_THREAD=499 +START=500 +STARTS=501 +STATS_AUTO_RECALC=502 +STATS_PERSISTENT=503 +STATS_SAMPLE_PAGES=504 +STATUS=505 +STOP=506 +STORAGE=507 +STRING=508 +SUBJECT=509 +SUBPARTITION=510 +SUBPARTITIONS=511 +SUSPEND=512 +SWAPS=513 +SWITCHES=514 +TABLESPACE=515 +TEMPORARY=516 +TEMPTABLE=517 +THAN=518 +TRADITIONAL=519 +TRANSACTION=520 +TRIGGERS=521 +TRUNCATE=522 +UNDEFINED=523 +UNDOFILE=524 +UNDO_BUFFER_SIZE=525 +UNINSTALL=526 +UNKNOWN=527 +UNTIL=528 +UPGRADE=529 +USER=530 +USE_FRM=531 +USER_RESOURCES=532 +VALIDATION=533 +VALUE=534 +VARIABLES=535 +VIEW=536 +WAIT=537 +WARNINGS=538 +WITHOUT=539 +WORK=540 +WRAPPER=541 +X509=542 +XA=543 +XML=544 +EUR=545 +USA=546 +JIS=547 +ISO=548 +INTERNAL=549 +QUARTER=550 +MONTH=551 +DAY=552 +HOUR=553 +MINUTE=554 +WEEK=555 +SECOND=556 +MICROSECOND=557 +TABLES=558 +ROUTINE=559 +EXECUTE=560 +FILE=561 +PROCESS=562 +RELOAD=563 +SHUTDOWN=564 +SUPER=565 +PRIVILEGES=566 +ARMSCII8=567 +ASCII=568 +BIG5=569 +CP1250=570 +CP1251=571 +CP1256=572 +CP1257=573 +CP850=574 +CP852=575 +CP866=576 +CP932=577 +DEC8=578 +EUCJPMS=579 +EUCKR=580 +GB2312=581 +GBK=582 +GEOSTD8=583 +GREEK=584 +HEBREW=585 +HP8=586 +KEYBCS2=587 +KOI8R=588 +KOI8U=589 +LATIN1=590 +LATIN2=591 +LATIN5=592 +LATIN7=593 +MACCE=594 +MACROMAN=595 +SJIS=596 +SWE7=597 +TIS620=598 +UCS2=599 +UJIS=600 +UTF16=601 +UTF16LE=602 +UTF32=603 +UTF8=604 +UTF8MB3=605 +UTF8MB4=606 +ARCHIVE=607 +BLACKHOLE=608 +CSV=609 +FEDERATED=610 +INNODB=611 +MEMORY=612 +MRG_MYISAM=613 +MYISAM=614 +NDB=615 +NDBCLUSTER=616 +PERFOMANCE_SCHEMA=617 +REPEATABLE=618 +COMMITTED=619 +UNCOMMITTED=620 +SERIALIZABLE=621 +GEOMETRYCOLLECTION=622 +LINESTRING=623 +MULTILINESTRING=624 +MULTIPOINT=625 +MULTIPOLYGON=626 +POINT=627 +POLYGON=628 +ABS=629 +ACOS=630 +ADDDATE=631 +ADDTIME=632 +AES_DECRYPT=633 +AES_ENCRYPT=634 +AREA=635 +ASBINARY=636 +ASIN=637 +ASTEXT=638 +ASWKB=639 +ASWKT=640 +ASYMMETRIC_DECRYPT=641 +ASYMMETRIC_DERIVE=642 +ASYMMETRIC_ENCRYPT=643 +ASYMMETRIC_SIGN=644 +ASYMMETRIC_VERIFY=645 +ATAN=646 +ATAN2=647 +BENCHMARK=648 +BIN=649 +BIT_COUNT=650 +BIT_LENGTH=651 +BUFFER=652 +CEIL=653 +CEILING=654 +CENTROID=655 +CHARACTER_LENGTH=656 +CHARSET=657 +CHAR_LENGTH=658 +COERCIBILITY=659 +COLLATION=660 +COMPRESS=661 +CONCAT=662 +CONCAT_WS=663 +CONNECTION_ID=664 +CONV=665 +CONVERT_TZ=666 +COS=667 +COT=668 +CRC32=669 +CREATE_ASYMMETRIC_PRIV_KEY=670 +CREATE_ASYMMETRIC_PUB_KEY=671 +CREATE_DH_PARAMETERS=672 +CREATE_DIGEST=673 +CROSSES=674 +DATEDIFF=675 +DATE_FORMAT=676 +DAYNAME=677 +DAYOFMONTH=678 +DAYOFWEEK=679 +DAYOFYEAR=680 +DECODE=681 +DEGREES=682 +DES_DECRYPT=683 +DES_ENCRYPT=684 +DIMENSION=685 +DISJOINT=686 +ELT=687 +ENCODE=688 +ENCRYPT=689 +ENDPOINT=690 +ENVELOPE=691 +EQUALS=692 +EXP=693 +EXPORT_SET=694 +EXTERIORRING=695 +EXTRACTVALUE=696 +FIELD=697 +FIND_IN_SET=698 +FLOOR=699 +FORMAT=700 +FOUND_ROWS=701 +FROM_BASE64=702 +FROM_DAYS=703 +FROM_UNIXTIME=704 +GEOMCOLLFROMTEXT=705 +GEOMCOLLFROMWKB=706 +GEOMETRYCOLLECTIONFROMTEXT=707 +GEOMETRYCOLLECTIONFROMWKB=708 +GEOMETRYFROMTEXT=709 +GEOMETRYFROMWKB=710 +GEOMETRYN=711 +GEOMETRYTYPE=712 +GEOMFROMTEXT=713 +GEOMFROMWKB=714 +GET_FORMAT=715 +GET_LOCK=716 +GLENGTH=717 +GREATEST=718 +GTID_SUBSET=719 +GTID_SUBTRACT=720 +HEX=721 +IFNULL=722 +INET6_ATON=723 +INET6_NTOA=724 +INET_ATON=725 +INET_NTOA=726 +INSTR=727 +INTERIORRINGN=728 +INTERSECTS=729 +ISCLOSED=730 +ISEMPTY=731 +ISNULL=732 +ISSIMPLE=733 +IS_FREE_LOCK=734 +IS_IPV4=735 +IS_IPV4_COMPAT=736 +IS_IPV4_MAPPED=737 +IS_IPV6=738 +IS_USED_LOCK=739 +LAST_INSERT_ID=740 +LCASE=741 +LEAST=742 +LENGTH=743 +LINEFROMTEXT=744 +LINEFROMWKB=745 +LINESTRINGFROMTEXT=746 +LINESTRINGFROMWKB=747 +LN=748 +LOAD_FILE=749 +LOCATE=750 +LOG=751 +LOG10=752 +LOG2=753 +LOWER=754 +LPAD=755 +LTRIM=756 +MAKEDATE=757 +MAKETIME=758 +MAKE_SET=759 +MASTER_POS_WAIT=760 +MBRCONTAINS=761 +MBRDISJOINT=762 +MBREQUAL=763 +MBRINTERSECTS=764 +MBROVERLAPS=765 +MBRTOUCHES=766 +MBRWITHIN=767 +MD5=768 +MLINEFROMTEXT=769 +MLINEFROMWKB=770 +MONTHNAME=771 +MPOINTFROMTEXT=772 +MPOINTFROMWKB=773 +MPOLYFROMTEXT=774 +MPOLYFROMWKB=775 +MULTILINESTRINGFROMTEXT=776 +MULTILINESTRINGFROMWKB=777 +MULTIPOINTFROMTEXT=778 +MULTIPOINTFROMWKB=779 +MULTIPOLYGONFROMTEXT=780 +MULTIPOLYGONFROMWKB=781 +NAME_CONST=782 +NULLIF=783 +NUMGEOMETRIES=784 +NUMINTERIORRINGS=785 +NUMPOINTS=786 +OCT=787 +OCTET_LENGTH=788 +ORD=789 +OVERLAPS=790 +PERIOD_ADD=791 +PERIOD_DIFF=792 +PI=793 +POINTFROMTEXT=794 +POINTFROMWKB=795 +POINTN=796 +POLYFROMTEXT=797 +POLYFROMWKB=798 +POLYGONFROMTEXT=799 +POLYGONFROMWKB=800 +POW=801 +POWER=802 +QUOTE=803 +RADIANS=804 +RAND=805 +RANDOM_BYTES=806 +RELEASE_LOCK=807 +REVERSE=808 +ROUND=809 +ROW_COUNT=810 +RPAD=811 +RTRIM=812 +SEC_TO_TIME=813 +SESSION_USER=814 +SHA=815 +SHA1=816 +SHA2=817 +SIGN=818 +SIN=819 +SLEEP=820 +SOUNDEX=821 +SQL_THREAD_WAIT_AFTER_GTIDS=822 +SQRT=823 +SRID=824 +STARTPOINT=825 +STRCMP=826 +STR_TO_DATE=827 +ST_AREA=828 +ST_ASBINARY=829 +ST_ASTEXT=830 +ST_ASWKB=831 +ST_ASWKT=832 +ST_BUFFER=833 +ST_CENTROID=834 +ST_CONTAINS=835 +ST_CROSSES=836 +ST_DIFFERENCE=837 +ST_DIMENSION=838 +ST_DISJOINT=839 +ST_DISTANCE=840 +ST_ENDPOINT=841 +ST_ENVELOPE=842 +ST_EQUALS=843 +ST_EXTERIORRING=844 +ST_GEOMCOLLFROMTEXT=845 +ST_GEOMCOLLFROMTXT=846 +ST_GEOMCOLLFROMWKB=847 +ST_GEOMETRYCOLLECTIONFROMTEXT=848 +ST_GEOMETRYCOLLECTIONFROMWKB=849 +ST_GEOMETRYFROMTEXT=850 +ST_GEOMETRYFROMWKB=851 +ST_GEOMETRYN=852 +ST_GEOMETRYTYPE=853 +ST_GEOMFROMTEXT=854 +ST_GEOMFROMWKB=855 +ST_INTERIORRINGN=856 +ST_INTERSECTION=857 +ST_INTERSECTS=858 +ST_ISCLOSED=859 +ST_ISEMPTY=860 +ST_ISSIMPLE=861 +ST_LINEFROMTEXT=862 +ST_LINEFROMWKB=863 +ST_LINESTRINGFROMTEXT=864 +ST_LINESTRINGFROMWKB=865 +ST_NUMGEOMETRIES=866 +ST_NUMINTERIORRING=867 +ST_NUMINTERIORRINGS=868 +ST_NUMPOINTS=869 +ST_OVERLAPS=870 +ST_POINTFROMTEXT=871 +ST_POINTFROMWKB=872 +ST_POINTN=873 +ST_POLYFROMTEXT=874 +ST_POLYFROMWKB=875 +ST_POLYGONFROMTEXT=876 +ST_POLYGONFROMWKB=877 +ST_SRID=878 +ST_STARTPOINT=879 +ST_SYMDIFFERENCE=880 +ST_TOUCHES=881 +ST_UNION=882 +ST_WITHIN=883 +ST_X=884 +ST_Y=885 +SUBDATE=886 +SUBSTRING_INDEX=887 +SUBTIME=888 +SYSTEM_USER=889 +TAN=890 +TIMEDIFF=891 +TIMESTAMPADD=892 +TIMESTAMPDIFF=893 +TIME_FORMAT=894 +TIME_TO_SEC=895 +TOUCHES=896 +TO_BASE64=897 +TO_DAYS=898 +TO_SECONDS=899 +UCASE=900 +UNCOMPRESS=901 +UNCOMPRESSED_LENGTH=902 +UNHEX=903 +UNIX_TIMESTAMP=904 +UPDATEXML=905 +UPPER=906 +UUID=907 +UUID_SHORT=908 +VALIDATE_PASSWORD_STRENGTH=909 +VERSION=910 +WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS=911 +WEEKDAY=912 +WEEKOFYEAR=913 +WEIGHT_STRING=914 +WITHIN=915 +YEARWEEK=916 +Y_FUNCTION=917 +X_FUNCTION=918 +VAR_ASSIGN=919 +PLUS_ASSIGN=920 +MINUS_ASSIGN=921 +MULT_ASSIGN=922 +DIV_ASSIGN=923 +MOD_ASSIGN=924 +AND_ASSIGN=925 +XOR_ASSIGN=926 +OR_ASSIGN=927 +STAR=928 +DIVIDE=929 +MODULE=930 +PLUS=931 +MINUSMINUS=932 +MINUS=933 +DIV=934 +MOD=935 +EQUAL_SYMBOL=936 +GREATER_SYMBOL=937 +LESS_SYMBOL=938 +EXCLAMATION_SYMBOL=939 +BIT_NOT_OP=940 +BIT_OR_OP=941 +BIT_AND_OP=942 +BIT_XOR_OP=943 +DOT=944 +LR_BRACKET=945 +RR_BRACKET=946 +COMMA=947 +SEMI=948 +AT_SIGN=949 +ZERO_DECIMAL=950 +ONE_DECIMAL=951 +TWO_DECIMAL=952 +SINGLE_QUOTE_SYMB=953 +DOUBLE_QUOTE_SYMB=954 +REVERSE_QUOTE_SYMB=955 +COLON_SYMB=956 +CHARSET_REVERSE_QOUTE_STRING=957 +FILESIZE_LITERAL=958 +START_NATIONAL_STRING_LITERAL=959 +STRING_LITERAL=960 +DECIMAL_LITERAL=961 +HEXADECIMAL_LITERAL=962 +REAL_LITERAL=963 +NULL_SPEC_LITERAL=964 +BIT_STRING=965 +STRING_CHARSET_NAME=966 +DOT_ID=967 +ID=968 +REVERSE_QUOTE_ID=969 +STRING_USER_NAME=970 +LOCAL_ID=971 +GLOBAL_ID=972 +ERROR_RECONGNIGION=973 +'ADD'=5 +'ALL'=6 +'ALTER'=7 +'ANALYZE'=8 +'AND'=9 +'AS'=10 +'ASC'=11 +'BEFORE'=12 +'BETWEEN'=13 +'BOTH'=14 +'BY'=15 +'CALL'=16 +'CASCADE'=17 +'CASE'=18 +'CAST'=19 +'CHANGE'=20 +'CHARACTER'=21 +'CHECK'=22 +'COLLATE'=23 +'COLUMN'=24 +'CONDITION'=25 +'CONSTRAINT'=26 +'CONTINUE'=27 +'CONVERT'=28 +'CREATE'=29 +'CROSS'=30 +'CURRENT_USER'=31 +'CURSOR'=32 +'DATABASE'=33 +'DATABASES'=34 +'DECLARE'=35 +'DEFAULT'=36 +'DELAYED'=37 +'DELETE'=38 +'DESC'=39 +'DESCRIBE'=40 +'DETERMINISTIC'=41 +'DISTINCT'=42 +'DISTINCTROW'=43 +'DROP'=44 +'EACH'=45 +'ELSE'=46 +'ELSEIF'=47 +'ENCLOSED'=48 +'ESCAPED'=49 +'EXISTS'=50 +'EXIT'=51 +'EXPLAIN'=52 +'FALSE'=53 +'FETCH'=54 +'FOR'=55 +'FORCE'=56 +'FOREIGN'=57 +'FROM'=58 +'FULLTEXT'=59 +'GRANT'=60 +'GROUP'=61 +'HAVING'=62 +'HIGH_PRIORITY'=63 +'IF'=64 +'IGNORE'=65 +'IN'=66 +'INDEX'=67 +'INFILE'=68 +'INNER'=69 +'INOUT'=70 +'INSERT'=71 +'INTERVAL'=72 +'INTO'=73 +'IS'=74 +'ITERATE'=75 +'JOIN'=76 +'KEY'=77 +'KEYS'=78 +'KILL'=79 +'LEADING'=80 +'LEAVE'=81 +'LEFT'=82 +'LIKE'=83 +'LIMIT'=84 +'LINEAR'=85 +'LINES'=86 +'LOAD'=87 +'LOCK'=88 +'LOOP'=89 +'LOW_PRIORITY'=90 +'MASTER_BIND'=91 +'MASTER_SSL_VERIFY_SERVER_CERT'=92 +'MATCH'=93 +'MAXVALUE'=94 +'MODIFIES'=95 +'NATURAL'=96 +'NOT'=97 +'NO_WRITE_TO_BINLOG'=98 +'NULL'=99 +'ON'=100 +'OPTIMIZE'=101 +'OPTION'=102 +'OPTIONALLY'=103 +'OR'=104 +'ORDER'=105 +'OUT'=106 +'OUTER'=107 +'OUTFILE'=108 +'PARTITION'=109 +'PRIMARY'=110 +'PROCEDURE'=111 +'PURGE'=112 +'RANGE'=113 +'READ'=114 +'READS'=115 +'REFERENCES'=116 +'REGEXP'=117 +'RELEASE'=118 +'RENAME'=119 +'REPEAT'=120 +'REPLACE'=121 +'REQUIRE'=122 +'RESTRICT'=123 +'RETURN'=124 +'REVOKE'=125 +'RIGHT'=126 +'RLIKE'=127 +'SCHEMA'=128 +'SCHEMAS'=129 +'SELECT'=130 +'SET'=131 +'SEPARATOR'=132 +'SHOW'=133 +'SPATIAL'=134 +'SQL'=135 +'SQLEXCEPTION'=136 +'SQLSTATE'=137 +'SQLWARNING'=138 +'SQL_BIG_RESULT'=139 +'SQL_CALC_FOUND_ROWS'=140 +'SQL_SMALL_RESULT'=141 +'SSL'=142 +'STARTING'=143 +'STRAIGHT_JOIN'=144 +'TABLE'=145 +'TERMINATED'=146 +'THEN'=147 +'TO'=148 +'TRAILING'=149 +'TRIGGER'=150 +'TRUE'=151 +'UNDO'=152 +'UNION'=153 +'UNIQUE'=154 +'UNLOCK'=155 +'UNSIGNED'=156 +'UPDATE'=157 +'USAGE'=158 +'USE'=159 +'USING'=160 +'VALUES'=161 +'WHEN'=162 +'WHERE'=163 +'WHILE'=164 +'WITH'=165 +'WRITE'=166 +'XOR'=167 +'ZEROFILL'=168 +'TINYINT'=169 +'SMALLINT'=170 +'MEDIUMINT'=171 +'INT'=172 +'INTEGER'=173 +'BIGINT'=174 +'REAL'=175 +'DOUBLE'=176 +'FLOAT'=177 +'DECIMAL'=178 +'NUMERIC'=179 +'DATE'=180 +'TIME'=181 +'TIMESTAMP'=182 +'DATETIME'=183 +'YEAR'=184 +'CHAR'=185 +'VARCHAR'=186 +'BINARY'=187 +'VARBINARY'=188 +'TINYBLOB'=189 +'BLOB'=190 +'MEDIUMBLOB'=191 +'LONGBLOB'=192 +'TINYTEXT'=193 +'TEXT'=194 +'MEDIUMTEXT'=195 +'LONGTEXT'=196 +'ENUM'=197 +'YEAR_MONTH'=198 +'DAY_HOUR'=199 +'DAY_MINUTE'=200 +'DAY_SECOND'=201 +'HOUR_MINUTE'=202 +'HOUR_SECOND'=203 +'MINUTE_SECOND'=204 +'SECOND_MICROSECOND'=205 +'MINUTE_MICROSECOND'=206 +'HOUR_MICROSECOND'=207 +'DAY_MICROSECOND'=208 +'AVG'=209 +'BIT_AND'=210 +'BIT_OR'=211 +'BIT_XOR'=212 +'COUNT'=213 +'GROUP_CONCAT'=214 +'MAX'=215 +'MIN'=216 +'STD'=217 +'STDDEV'=218 +'STDDEV_POP'=219 +'STDDEV_SAMP'=220 +'SUM'=221 +'VAR_POP'=222 +'VAR_SAMP'=223 +'VARIANCE'=224 +'CURRENT_DATE'=225 +'CURRENT_TIME'=226 +'CURRENT_TIMESTAMP'=227 +'LOCALTIME'=228 +'CURDATE'=229 +'CURTIME'=230 +'DATE_ADD'=231 +'DATE_SUB'=232 +'EXTRACT'=233 +'LOCALTIMESTAMP'=234 +'NOW'=235 +'POSITION'=236 +'SUBSTR'=237 +'SUBSTRING'=238 +'SYSDATE'=239 +'TRIM'=240 +'UTC_DATE'=241 +'UTC_TIME'=242 +'UTC_TIMESTAMP'=243 +'ACCOUNT'=244 +'ACTION'=245 +'AFTER'=246 +'AGGREGATE'=247 +'ALGORITHM'=248 +'ANY'=249 +'AT'=250 +'AUTHORS'=251 +'AUTOCOMMIT'=252 +'AUTOEXTEND_SIZE'=253 +'AUTO_INCREMENT'=254 +'AVG_ROW_LENGTH'=255 +'BEGIN'=256 +'BINLOG'=257 +'BIT'=258 +'BLOCK'=259 +'BOOL'=260 +'BOOLEAN'=261 +'BTREE'=262 +'CACHE'=263 +'CASCADED'=264 +'CHAIN'=265 +'CHANGED'=266 +'CHANNEL'=267 +'CHECKSUM'=268 +'CIPHER'=269 +'CLIENT'=270 +'CLOSE'=271 +'COALESCE'=272 +'CODE'=273 +'COLUMNS'=274 +'COLUMN_FORMAT'=275 +'COMMENT'=276 +'COMMIT'=277 +'COMPACT'=278 +'COMPLETION'=279 +'COMPRESSED'=280 +'COMPRESSION'=281 +'CONCURRENT'=282 +'CONNECTION'=283 +'CONSISTENT'=284 +'CONTAINS'=285 +'CONTEXT'=286 +'CONTRIBUTORS'=287 +'COPY'=288 +'CPU'=289 +'DATA'=290 +'DATAFILE'=291 +'DEALLOCATE'=292 +'DEFAULT_AUTH'=293 +'DEFINER'=294 +'DELAY_KEY_WRITE'=295 +'DES_KEY_FILE'=296 +'DIRECTORY'=297 +'DISABLE'=298 +'DISCARD'=299 +'DISK'=300 +'DO'=301 +'DUMPFILE'=302 +'DUPLICATE'=303 +'DYNAMIC'=304 +'ENABLE'=305 +'ENCRYPTION'=306 +'END'=307 +'ENDS'=308 +'ENGINE'=309 +'ENGINES'=310 +'ERROR'=311 +'ERRORS'=312 +'ESCAPE'=313 +'EVEN'=314 +'EVENT'=315 +'EVENTS'=316 +'EVERY'=317 +'EXCHANGE'=318 +'EXCLUSIVE'=319 +'EXPIRE'=320 +'EXPORT'=321 +'EXTENDED'=322 +'EXTENT_SIZE'=323 +'FAST'=324 +'FAULTS'=325 +'FIELDS'=326 +'FILE_BLOCK_SIZE'=327 +'FILTER'=328 +'FIRST'=329 +'FIXED'=330 +'FLUSH'=331 +'FOLLOWS'=332 +'FOUND'=333 +'FULL'=334 +'FUNCTION'=335 +'GENERAL'=336 +'GLOBAL'=337 +'GRANTS'=338 +'GROUP_REPLICATION'=339 +'HANDLER'=340 +'HASH'=341 +'HELP'=342 +'HOST'=343 +'HOSTS'=344 +'IDENTIFIED'=345 +'IGNORE_SERVER_IDS'=346 +'IMPORT'=347 +'INDEXES'=348 +'INITIAL_SIZE'=349 +'INPLACE'=350 +'INSERT_METHOD'=351 +'INSTALL'=352 +'INSTANCE'=353 +'INVOKER'=354 +'IO'=355 +'IO_THREAD'=356 +'IPC'=357 +'ISOLATION'=358 +'ISSUER'=359 +'JSON'=360 +'KEY_BLOCK_SIZE'=361 +'LANGUAGE'=362 +'LAST'=363 +'LEAVES'=364 +'LESS'=365 +'LEVEL'=366 +'LIST'=367 +'LOCAL'=368 +'LOGFILE'=369 +'LOGS'=370 +'MASTER'=371 +'MASTER_AUTO_POSITION'=372 +'MASTER_CONNECT_RETRY'=373 +'MASTER_DELAY'=374 +'MASTER_HEARTBEAT_PERIOD'=375 +'MASTER_HOST'=376 +'MASTER_LOG_FILE'=377 +'MASTER_LOG_POS'=378 +'MASTER_PASSWORD'=379 +'MASTER_PORT'=380 +'MASTER_RETRY_COUNT'=381 +'MASTER_SSL'=382 +'MASTER_SSL_CA'=383 +'MASTER_SSL_CAPATH'=384 +'MASTER_SSL_CERT'=385 +'MASTER_SSL_CIPHER'=386 +'MASTER_SSL_CRL'=387 +'MASTER_SSL_CRLPATH'=388 +'MASTER_SSL_KEY'=389 +'MASTER_TLS_VERSION'=390 +'MASTER_USER'=391 +'MAX_CONNECTIONS_PER_HOUR'=392 +'MAX_QUERIES_PER_HOUR'=393 +'MAX_ROWS'=394 +'MAX_SIZE'=395 +'MAX_UPDATES_PER_HOUR'=396 +'MAX_USER_CONNECTIONS'=397 +'MEDIUM'=398 +'MERGE'=399 +'MID'=400 +'MIGRATE'=401 +'MIN_ROWS'=402 +'MODE'=403 +'MODIFY'=404 +'MUTEX'=405 +'MYSQL'=406 +'NAME'=407 +'NAMES'=408 +'NCHAR'=409 +'NEVER'=410 +'NEXT'=411 +'NO'=412 +'NODEGROUP'=413 +'NONE'=414 +'OFFLINE'=415 +'OFFSET'=416 +'OJ'=417 +'OLD_PASSWORD'=418 +'ONE'=419 +'ONLINE'=420 +'ONLY'=421 +'OPEN'=422 +'OPTIMIZER_COSTS'=423 +'OPTIONS'=424 +'OWNER'=425 +'PACK_KEYS'=426 +'PAGE'=427 +'PARSER'=428 +'PARTIAL'=429 +'PARTITIONING'=430 +'PARTITIONS'=431 +'PASSWORD'=432 +'PHASE'=433 +'PLUGIN'=434 +'PLUGIN_DIR'=435 +'PLUGINS'=436 +'PORT'=437 +'PRECEDES'=438 +'PREPARE'=439 +'PRESERVE'=440 +'PREV'=441 +'PROCESSLIST'=442 +'PROFILE'=443 +'PROFILES'=444 +'PROXY'=445 +'QUERY'=446 +'QUICK'=447 +'REBUILD'=448 +'RECOVER'=449 +'REDO_BUFFER_SIZE'=450 +'REDUNDANT'=451 +'RELAY'=452 +'RELAY_LOG_FILE'=453 +'RELAY_LOG_POS'=454 +'RELAYLOG'=455 +'REMOVE'=456 +'REORGANIZE'=457 +'REPAIR'=458 +'REPLICATE_DO_DB'=459 +'REPLICATE_DO_TABLE'=460 +'REPLICATE_IGNORE_DB'=461 +'REPLICATE_IGNORE_TABLE'=462 +'REPLICATE_REWRITE_DB'=463 +'REPLICATE_WILD_DO_TABLE'=464 +'REPLICATE_WILD_IGNORE_TABLE'=465 +'REPLICATION'=466 +'RESET'=467 +'RESUME'=468 +'RETURNS'=469 +'ROLLBACK'=470 +'ROLLUP'=471 +'ROTATE'=472 +'ROW'=473 +'ROWS'=474 +'ROW_FORMAT'=475 +'SAVEPOINT'=476 +'SCHEDULE'=477 +'SECURITY'=478 +'SERVER'=479 +'SESSION'=480 +'SHARE'=481 +'SHARED'=482 +'SIGNED'=483 +'SIMPLE'=484 +'SLAVE'=485 +'SLOW'=486 +'SNAPSHOT'=487 +'SOCKET'=488 +'SOME'=489 +'SONAME'=490 +'SOUNDS'=491 +'SOURCE'=492 +'SQL_AFTER_GTIDS'=493 +'SQL_AFTER_MTS_GAPS'=494 +'SQL_BEFORE_GTIDS'=495 +'SQL_BUFFER_RESULT'=496 +'SQL_CACHE'=497 +'SQL_NO_CACHE'=498 +'SQL_THREAD'=499 +'START'=500 +'STARTS'=501 +'STATS_AUTO_RECALC'=502 +'STATS_PERSISTENT'=503 +'STATS_SAMPLE_PAGES'=504 +'STATUS'=505 +'STOP'=506 +'STORAGE'=507 +'STRING'=508 +'SUBJECT'=509 +'SUBPARTITION'=510 +'SUBPARTITIONS'=511 +'SUSPEND'=512 +'SWAPS'=513 +'SWITCHES'=514 +'TABLESPACE'=515 +'TEMPORARY'=516 +'TEMPTABLE'=517 +'THAN'=518 +'TRADITIONAL'=519 +'TRANSACTION'=520 +'TRIGGERS'=521 +'TRUNCATE'=522 +'UNDEFINED'=523 +'UNDOFILE'=524 +'UNDO_BUFFER_SIZE'=525 +'UNINSTALL'=526 +'UNKNOWN'=527 +'UNTIL'=528 +'UPGRADE'=529 +'USER'=530 +'USE_FRM'=531 +'USER_RESOURCES'=532 +'VALIDATION'=533 +'VALUE'=534 +'VARIABLES'=535 +'VIEW'=536 +'WAIT'=537 +'WARNINGS'=538 +'WITHOUT'=539 +'WORK'=540 +'WRAPPER'=541 +'X509'=542 +'XA'=543 +'XML'=544 +'EUR'=545 +'USA'=546 +'JIS'=547 +'ISO'=548 +'INTERNAL'=549 +'QUARTER'=550 +'MONTH'=551 +'DAY'=552 +'HOUR'=553 +'MINUTE'=554 +'WEEK'=555 +'SECOND'=556 +'MICROSECOND'=557 +'TABLES'=558 +'ROUTINE'=559 +'EXECUTE'=560 +'FILE'=561 +'PROCESS'=562 +'RELOAD'=563 +'SHUTDOWN'=564 +'SUPER'=565 +'PRIVILEGES'=566 +'ARMSCII8'=567 +'ASCII'=568 +'BIG5'=569 +'CP1250'=570 +'CP1251'=571 +'CP1256'=572 +'CP1257'=573 +'CP850'=574 +'CP852'=575 +'CP866'=576 +'CP932'=577 +'DEC8'=578 +'EUCJPMS'=579 +'EUCKR'=580 +'GB2312'=581 +'GBK'=582 +'GEOSTD8'=583 +'GREEK'=584 +'HEBREW'=585 +'HP8'=586 +'KEYBCS2'=587 +'KOI8R'=588 +'KOI8U'=589 +'LATIN1'=590 +'LATIN2'=591 +'LATIN5'=592 +'LATIN7'=593 +'MACCE'=594 +'MACROMAN'=595 +'SJIS'=596 +'SWE7'=597 +'TIS620'=598 +'UCS2'=599 +'UJIS'=600 +'UTF16'=601 +'UTF16LE'=602 +'UTF32'=603 +'UTF8'=604 +'UTF8MB3'=605 +'UTF8MB4'=606 +'ARCHIVE'=607 +'BLACKHOLE'=608 +'CSV'=609 +'FEDERATED'=610 +'INNODB'=611 +'MEMORY'=612 +'MRG_MYISAM'=613 +'MYISAM'=614 +'NDB'=615 +'NDBCLUSTER'=616 +'PERFOMANCE_SCHEMA'=617 +'REPEATABLE'=618 +'COMMITTED'=619 +'UNCOMMITTED'=620 +'SERIALIZABLE'=621 +'GEOMETRYCOLLECTION'=622 +'LINESTRING'=623 +'MULTILINESTRING'=624 +'MULTIPOINT'=625 +'MULTIPOLYGON'=626 +'POINT'=627 +'POLYGON'=628 +'ABS'=629 +'ACOS'=630 +'ADDDATE'=631 +'ADDTIME'=632 +'AES_DECRYPT'=633 +'AES_ENCRYPT'=634 +'AREA'=635 +'ASBINARY'=636 +'ASIN'=637 +'ASTEXT'=638 +'ASWKB'=639 +'ASWKT'=640 +'ASYMMETRIC_DECRYPT'=641 +'ASYMMETRIC_DERIVE'=642 +'ASYMMETRIC_ENCRYPT'=643 +'ASYMMETRIC_SIGN'=644 +'ASYMMETRIC_VERIFY'=645 +'ATAN'=646 +'ATAN2'=647 +'BENCHMARK'=648 +'BIN'=649 +'BIT_COUNT'=650 +'BIT_LENGTH'=651 +'BUFFER'=652 +'CEIL'=653 +'CEILING'=654 +'CENTROID'=655 +'CHARACTER_LENGTH'=656 +'CHARSET'=657 +'CHAR_LENGTH'=658 +'COERCIBILITY'=659 +'COLLATION'=660 +'COMPRESS'=661 +'CONCAT'=662 +'CONCAT_WS'=663 +'CONNECTION_ID'=664 +'CONV'=665 +'CONVERT_TZ'=666 +'COS'=667 +'COT'=668 +'CRC32'=669 +'CREATE_ASYMMETRIC_PRIV_KEY'=670 +'CREATE_ASYMMETRIC_PUB_KEY'=671 +'CREATE_DH_PARAMETERS'=672 +'CREATE_DIGEST'=673 +'CROSSES'=674 +'DATEDIFF'=675 +'DATE_FORMAT'=676 +'DAYNAME'=677 +'DAYOFMONTH'=678 +'DAYOFWEEK'=679 +'DAYOFYEAR'=680 +'DECODE'=681 +'DEGREES'=682 +'DES_DECRYPT'=683 +'DES_ENCRYPT'=684 +'DIMENSION'=685 +'DISJOINT'=686 +'ELT'=687 +'ENCODE'=688 +'ENCRYPT'=689 +'ENDPOINT'=690 +'ENVELOPE'=691 +'EQUALS'=692 +'EXP'=693 +'EXPORT_SET'=694 +'EXTERIORRING'=695 +'EXTRACTVALUE'=696 +'FIELD'=697 +'FIND_IN_SET'=698 +'FLOOR'=699 +'FORMAT'=700 +'FOUND_ROWS'=701 +'FROM_BASE64'=702 +'FROM_DAYS'=703 +'FROM_UNIXTIME'=704 +'GEOMCOLLFROMTEXT'=705 +'GEOMCOLLFROMWKB'=706 +'GEOMETRYCOLLECTIONFROMTEXT'=707 +'GEOMETRYCOLLECTIONFROMWKB'=708 +'GEOMETRYFROMTEXT'=709 +'GEOMETRYFROMWKB'=710 +'GEOMETRYN'=711 +'GEOMETRYTYPE'=712 +'GEOMFROMTEXT'=713 +'GEOMFROMWKB'=714 +'GET_FORMAT'=715 +'GET_LOCK'=716 +'GLENGTH'=717 +'GREATEST'=718 +'GTID_SUBSET'=719 +'GTID_SUBTRACT'=720 +'HEX'=721 +'IFNULL'=722 +'INET6_ATON'=723 +'INET6_NTOA'=724 +'INET_ATON'=725 +'INET_NTOA'=726 +'INSTR'=727 +'INTERIORRINGN'=728 +'INTERSECTS'=729 +'ISCLOSED'=730 +'ISEMPTY'=731 +'ISNULL'=732 +'ISSIMPLE'=733 +'IS_FREE_LOCK'=734 +'IS_IPV4'=735 +'IS_IPV4_COMPAT'=736 +'IS_IPV4_MAPPED'=737 +'IS_IPV6'=738 +'IS_USED_LOCK'=739 +'LAST_INSERT_ID'=740 +'LCASE'=741 +'LEAST'=742 +'LENGTH'=743 +'LINEFROMTEXT'=744 +'LINEFROMWKB'=745 +'LINESTRINGFROMTEXT'=746 +'LINESTRINGFROMWKB'=747 +'LN'=748 +'LOAD_FILE'=749 +'LOCATE'=750 +'LOG'=751 +'LOG10'=752 +'LOG2'=753 +'LOWER'=754 +'LPAD'=755 +'LTRIM'=756 +'MAKEDATE'=757 +'MAKETIME'=758 +'MAKE_SET'=759 +'MASTER_POS_WAIT'=760 +'MBRCONTAINS'=761 +'MBRDISJOINT'=762 +'MBREQUAL'=763 +'MBRINTERSECTS'=764 +'MBROVERLAPS'=765 +'MBRTOUCHES'=766 +'MBRWITHIN'=767 +'MD5'=768 +'MLINEFROMTEXT'=769 +'MLINEFROMWKB'=770 +'MONTHNAME'=771 +'MPOINTFROMTEXT'=772 +'MPOINTFROMWKB'=773 +'MPOLYFROMTEXT'=774 +'MPOLYFROMWKB'=775 +'MULTILINESTRINGFROMTEXT'=776 +'MULTILINESTRINGFROMWKB'=777 +'MULTIPOINTFROMTEXT'=778 +'MULTIPOINTFROMWKB'=779 +'MULTIPOLYGONFROMTEXT'=780 +'MULTIPOLYGONFROMWKB'=781 +'NAME_CONST'=782 +'NULLIF'=783 +'NUMGEOMETRIES'=784 +'NUMINTERIORRINGS'=785 +'NUMPOINTS'=786 +'OCT'=787 +'OCTET_LENGTH'=788 +'ORD'=789 +'OVERLAPS'=790 +'PERIOD_ADD'=791 +'PERIOD_DIFF'=792 +'PI'=793 +'POINTFROMTEXT'=794 +'POINTFROMWKB'=795 +'POINTN'=796 +'POLYFROMTEXT'=797 +'POLYFROMWKB'=798 +'POLYGONFROMTEXT'=799 +'POLYGONFROMWKB'=800 +'POW'=801 +'POWER'=802 +'QUOTE'=803 +'RADIANS'=804 +'RAND'=805 +'RANDOM_BYTES'=806 +'RELEASE_LOCK'=807 +'REVERSE'=808 +'ROUND'=809 +'ROW_COUNT'=810 +'RPAD'=811 +'RTRIM'=812 +'SEC_TO_TIME'=813 +'SESSION_USER'=814 +'SHA'=815 +'SHA1'=816 +'SHA2'=817 +'SIGN'=818 +'SIN'=819 +'SLEEP'=820 +'SOUNDEX'=821 +'SQL_THREAD_WAIT_AFTER_GTIDS'=822 +'SQRT'=823 +'SRID'=824 +'STARTPOINT'=825 +'STRCMP'=826 +'STR_TO_DATE'=827 +'ST_AREA'=828 +'ST_ASBINARY'=829 +'ST_ASTEXT'=830 +'ST_ASWKB'=831 +'ST_ASWKT'=832 +'ST_BUFFER'=833 +'ST_CENTROID'=834 +'ST_CONTAINS'=835 +'ST_CROSSES'=836 +'ST_DIFFERENCE'=837 +'ST_DIMENSION'=838 +'ST_DISJOINT'=839 +'ST_DISTANCE'=840 +'ST_ENDPOINT'=841 +'ST_ENVELOPE'=842 +'ST_EQUALS'=843 +'ST_EXTERIORRING'=844 +'ST_GEOMCOLLFROMTEXT'=845 +'ST_GEOMCOLLFROMTXT'=846 +'ST_GEOMCOLLFROMWKB'=847 +'ST_GEOMETRYCOLLECTIONFROMTEXT'=848 +'ST_GEOMETRYCOLLECTIONFROMWKB'=849 +'ST_GEOMETRYFROMTEXT'=850 +'ST_GEOMETRYFROMWKB'=851 +'ST_GEOMETRYN'=852 +'ST_GEOMETRYTYPE'=853 +'ST_GEOMFROMTEXT'=854 +'ST_GEOMFROMWKB'=855 +'ST_INTERIORRINGN'=856 +'ST_INTERSECTION'=857 +'ST_INTERSECTS'=858 +'ST_ISCLOSED'=859 +'ST_ISEMPTY'=860 +'ST_ISSIMPLE'=861 +'ST_LINEFROMTEXT'=862 +'ST_LINEFROMWKB'=863 +'ST_LINESTRINGFROMTEXT'=864 +'ST_LINESTRINGFROMWKB'=865 +'ST_NUMGEOMETRIES'=866 +'ST_NUMINTERIORRING'=867 +'ST_NUMINTERIORRINGS'=868 +'ST_NUMPOINTS'=869 +'ST_OVERLAPS'=870 +'ST_POINTFROMTEXT'=871 +'ST_POINTFROMWKB'=872 +'ST_POINTN'=873 +'ST_POLYFROMTEXT'=874 +'ST_POLYFROMWKB'=875 +'ST_POLYGONFROMTEXT'=876 +'ST_POLYGONFROMWKB'=877 +'ST_SRID'=878 +'ST_STARTPOINT'=879 +'ST_SYMDIFFERENCE'=880 +'ST_TOUCHES'=881 +'ST_UNION'=882 +'ST_WITHIN'=883 +'ST_X'=884 +'ST_Y'=885 +'SUBDATE'=886 +'SUBSTRING_INDEX'=887 +'SUBTIME'=888 +'SYSTEM_USER'=889 +'TAN'=890 +'TIMEDIFF'=891 +'TIMESTAMPADD'=892 +'TIMESTAMPDIFF'=893 +'TIME_FORMAT'=894 +'TIME_TO_SEC'=895 +'TOUCHES'=896 +'TO_BASE64'=897 +'TO_DAYS'=898 +'TO_SECONDS'=899 +'UCASE'=900 +'UNCOMPRESS'=901 +'UNCOMPRESSED_LENGTH'=902 +'UNHEX'=903 +'UNIX_TIMESTAMP'=904 +'UPDATEXML'=905 +'UPPER'=906 +'UUID'=907 +'UUID_SHORT'=908 +'VALIDATE_PASSWORD_STRENGTH'=909 +'VERSION'=910 +'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'=911 +'WEEKDAY'=912 +'WEEKOFYEAR'=913 +'WEIGHT_STRING'=914 +'WITHIN'=915 +'YEARWEEK'=916 +'Y'=917 +'X'=918 +':='=919 +'+='=920 +'-='=921 +'*='=922 +'/='=923 +'%='=924 +'&='=925 +'^='=926 +'|='=927 +'*'=928 +'/'=929 +'%'=930 +'+'=931 +'--'=932 +'-'=933 +'DIV'=934 +'MOD'=935 +'='=936 +'>'=937 +'<'=938 +'!'=939 +'~'=940 +'|'=941 +'&'=942 +'^'=943 +'.'=944 +'('=945 +')'=946 +','=947 +';'=948 +'@'=949 +'0'=950 +'1'=951 +'2'=952 +'\''=953 +'"'=954 +'`'=955 +':'=956 diff --git a/gen/SparkLexer.interp b/gen/SparkLexer.interp new file mode 100644 index 0000000..6169495 --- /dev/null +++ b/gen/SparkLexer.interp @@ -0,0 +1,1002 @@ +token literal names: +null +';' +'(' +')' +',' +'.' +'[' +']' +'ADD' +'AFTER' +'ALL' +'ALTER' +'ANALYZE' +'AND' +'ANTI' +'ANY' +'ANY_VALUE' +'ARCHIVE' +'ARRAY' +'AS' +'ASC' +'AT' +'AUTHORIZATION' +'BETWEEN' +'BOTH' +'BUCKET' +'BUCKETS' +'BY' +'CACHE' +'CASCADE' +'CASE' +'CAST' +'CATALOG' +'CATALOGS' +'CHANGE' +'CHECK' +'CLEAR' +'CLUSTER' +'CLUSTERED' +'CODEGEN' +'COLLATE' +'COLLECTION' +'COLUMN' +'COLUMNS' +'COMMENT' +'COMMIT' +'COMPACT' +'COMPACTIONS' +'COMPUTE' +'CONCATENATE' +'CONSTRAINT' +'COST' +'CREATE' +'CROSS' +'CUBE' +'CURRENT' +'CURRENT_DATE' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'CURRENT_USER' +'DAY' +'DAYOFYEAR' +'DATA' +'DATABASE' +'DATABASES' +'DATEADD' +'DATEDIFF' +'DBPROPERTIES' +'DEFAULT' +'DEFINED' +'DELETE' +'DELIMITED' +'DESC' +'DESCRIBE' +'DFS' +'DIRECTORIES' +'DIRECTORY' +'DISTINCT' +'DISTRIBUTE' +'DIV' +'DROP' +'ELSE' +'END' +'ESCAPE' +'ESCAPED' +'EXCEPT' +'EXCHANGE' +'EXISTS' +'EXPLAIN' +'EXPORT' +'EXTENDED' +'EXTERNAL' +'EXTRACT' +'FALSE' +'FETCH' +'FIELDS' +'FILTER' +'FILEFORMAT' +'FIRST' +'FOLLOWING' +'FOR' +'FOREIGN' +'FORMAT' +'FORMATTED' +'FROM' +'FULL' +'FUNCTION' +'FUNCTIONS' +'GLOBAL' +'GRANT' +'GROUP' +'GROUPING' +'HAVING' +'HOUR' +'IF' +'IGNORE' +'IMPORT' +'IN' +'INDEX' +'INDEXES' +'INNER' +'INPATH' +'INPUTFORMAT' +'INSERT' +'INTERSECT' +'INTERVAL' +'INTO' +'IS' +'ITEMS' +'JOIN' +'KEYS' +'LAST' +'LATERAL' +'LAZY' +'LEADING' +'LEFT' +'LIKE' +'ILIKE' +'LIMIT' +'LINES' +'LIST' +'LOAD' +'LOCAL' +'LOCATION' +'LOCK' +'LOCKS' +'LOGICAL' +'MACRO' +'MAP' +'MATCHED' +'MERGE' +'MICROSECOND' +'MILLISECOND' +'MINUTE' +'MONTH' +'MSCK' +'NAMESPACE' +'NAMESPACES' +'NATURAL' +'NO' +null +'NULL' +'NULLS' +'OF' +'OFFSET' +'ON' +'ONLY' +'OPTION' +'OPTIONS' +'OR' +'ORDER' +'OUT' +'OUTER' +'OUTPUTFORMAT' +'OVER' +'OVERLAPS' +'OVERLAY' +'OVERWRITE' +'PARTITION' +'PARTITIONED' +'PARTITIONS' +'PERCENTILE_CONT' +'PERCENTILE_DISC' +'PERCENT' +'PIVOT' +'PLACING' +'POSITION' +'PRECEDING' +'PRIMARY' +'PRINCIPALS' +'PROPERTIES' +'PURGE' +'QUARTER' +'QUERY' +'RANGE' +'RECORDREADER' +'RECORDWRITER' +'RECOVER' +'REDUCE' +'REFERENCES' +'REFRESH' +'RENAME' +'REPAIR' +'REPEATABLE' +'REPLACE' +'RESET' +'RESPECT' +'RESTRICT' +'REVOKE' +'RIGHT' +null +'ROLE' +'ROLES' +'ROLLBACK' +'ROLLUP' +'ROW' +'ROWS' +'SECOND' +'SCHEMA' +'SCHEMAS' +'SELECT' +'SEMI' +'SEPARATED' +'SERDE' +'SERDEPROPERTIES' +'SESSION_USER' +'SET' +'MINUS' +'SETS' +'SHOW' +'SKEWED' +'SOME' +'SORT' +'SORTED' +'START' +'STATISTICS' +'STORED' +'STRATIFY' +'STRUCT' +'SUBSTR' +'SUBSTRING' +'SYNC' +'SYSTEM_TIME' +'SYSTEM_VERSION' +'TABLE' +'TABLES' +'TABLESAMPLE' +'TBLPROPERTIES' +null +'TERMINATED' +'THEN' +'TIME' +'TIMESTAMP' +'TIMESTAMPADD' +'TIMESTAMPDIFF' +'TO' +'TOUCH' +'TRAILING' +'TRANSACTION' +'TRANSACTIONS' +'TRANSFORM' +'TRIM' +'TRUE' +'TRUNCATE' +'TRY_CAST' +'TYPE' +'UNARCHIVE' +'UNBOUNDED' +'UNCACHE' +'UNION' +'UNIQUE' +'UNKNOWN' +'UNLOCK' +'UNSET' +'UPDATE' +'USE' +'USER' +'USING' +'VALUES' +'VERSION' +'VIEW' +'VIEWS' +'WEEK' +'WHEN' +'WHERE' +'WINDOW' +'WITH' +'WITHIN' +'YEAR' +'ZONE' +null +'<=>' +'<>' +'!=' +'<' +null +'>' +null +'+' +'-' +'*' +'/' +'%' +'~' +'&' +'|' +'||' +'^' +':' +'->' +'/*+' +'*/' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +SEMICOLON +LEFT_PAREN +RIGHT_PAREN +COMMA +DOT +LEFT_BRACKET +RIGHT_BRACKET +ADD +AFTER +ALL +ALTER +ANALYZE +AND +ANTI +ANY +ANY_VALUE +ARCHIVE +ARRAY +AS +ASC +AT +AUTHORIZATION +BETWEEN +BOTH +BUCKET +BUCKETS +BY +CACHE +CASCADE +CASE +CAST +CATALOG +CATALOGS +CHANGE +CHECK +CLEAR +CLUSTER +CLUSTERED +CODEGEN +COLLATE +COLLECTION +COLUMN +COLUMNS +COMMENT +COMMIT +COMPACT +COMPACTIONS +COMPUTE +CONCATENATE +CONSTRAINT +COST +CREATE +CROSS +CUBE +CURRENT +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +DAY +DAYOFYEAR +DATA +DATABASE +DATABASES +DATEADD +DATEDIFF +DBPROPERTIES +DEFAULT +DEFINED +DELETE +DELIMITED +DESC +DESCRIBE +DFS +DIRECTORIES +DIRECTORY +DISTINCT +DISTRIBUTE +DIV +DROP +ELSE +END +ESCAPE +ESCAPED +EXCEPT +EXCHANGE +EXISTS +EXPLAIN +EXPORT +EXTENDED +EXTERNAL +EXTRACT +FALSE +FETCH +FIELDS +FILTER +FILEFORMAT +FIRST +FOLLOWING +FOR +FOREIGN +FORMAT +FORMATTED +FROM +FULL +FUNCTION +FUNCTIONS +GLOBAL +GRANT +GROUP +GROUPING +HAVING +HOUR +IF +IGNORE +IMPORT +IN +INDEX +INDEXES +INNER +INPATH +INPUTFORMAT +INSERT +INTERSECT +INTERVAL +INTO +IS +ITEMS +JOIN +KEYS +LAST +LATERAL +LAZY +LEADING +LEFT +LIKE +ILIKE +LIMIT +LINES +LIST +LOAD +LOCAL +LOCATION +LOCK +LOCKS +LOGICAL +MACRO +MAP +MATCHED +MERGE +MICROSECOND +MILLISECOND +MINUTE +MONTH +MSCK +NAMESPACE +NAMESPACES +NATURAL +NO +NOT +NULL +NULLS +OF +OFFSET +ON +ONLY +OPTION +OPTIONS +OR +ORDER +OUT +OUTER +OUTPUTFORMAT +OVER +OVERLAPS +OVERLAY +OVERWRITE +PARTITION +PARTITIONED +PARTITIONS +PERCENTILE_CONT +PERCENTILE_DISC +PERCENTLIT +PIVOT +PLACING +POSITION +PRECEDING +PRIMARY +PRINCIPALS +PROPERTIES +PURGE +QUARTER +QUERY +RANGE +RECORDREADER +RECORDWRITER +RECOVER +REDUCE +REFERENCES +REFRESH +RENAME +REPAIR +REPEATABLE +REPLACE +RESET +RESPECT +RESTRICT +REVOKE +RIGHT +RLIKE +ROLE +ROLES +ROLLBACK +ROLLUP +ROW +ROWS +SECOND +SCHEMA +SCHEMAS +SELECT +SEMI +SEPARATED +SERDE +SERDEPROPERTIES +SESSION_USER +SET +SETMINUS +SETS +SHOW +SKEWED +SOME +SORT +SORTED +START +STATISTICS +STORED +STRATIFY +STRUCT +SUBSTR +SUBSTRING +SYNC +SYSTEM_TIME +SYSTEM_VERSION +TABLE +TABLES +TABLESAMPLE +TBLPROPERTIES +TEMPORARY +TERMINATED +THEN +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TO +TOUCH +TRAILING +TRANSACTION +TRANSACTIONS +TRANSFORM +TRIM +TRUE +TRUNCATE +TRY_CAST +TYPE +UNARCHIVE +UNBOUNDED +UNCACHE +UNION +UNIQUE +UNKNOWN +UNLOCK +UNSET +UPDATE +USE +USER +USING +VALUES +VERSION +VIEW +VIEWS +WEEK +WHEN +WHERE +WINDOW +WITH +WITHIN +YEAR +ZONE +EQ +NSEQ +NEQ +NEQJ +LT +LTE +GT +GTE +PLUS +MINUS +ASTERISK +SLASH +PERCENT +TILDE +AMPERSAND +PIPE +CONCAT_PIPE +HAT +COLON +ARROW +HENT_START +HENT_END +STRING +BIGINT_LITERAL +SMALLINT_LITERAL +TINYINT_LITERAL +INTEGER_VALUE +EXPONENT_VALUE +DECIMAL_VALUE +FLOAT_LITERAL +DOUBLE_LITERAL +BIGDECIMAL_LITERAL +IDENTIFIER +BACKQUOTED_IDENTIFIER +SIMPLE_COMMENT +BRACKETED_COMMENT +WS +UNRECOGNIZED + +rule names: +SEMICOLON +LEFT_PAREN +RIGHT_PAREN +COMMA +DOT +LEFT_BRACKET +RIGHT_BRACKET +ADD +AFTER +ALL +ALTER +ANALYZE +AND +ANTI +ANY +ANY_VALUE +ARCHIVE +ARRAY +AS +ASC +AT +AUTHORIZATION +BETWEEN +BOTH +BUCKET +BUCKETS +BY +CACHE +CASCADE +CASE +CAST +CATALOG +CATALOGS +CHANGE +CHECK +CLEAR +CLUSTER +CLUSTERED +CODEGEN +COLLATE +COLLECTION +COLUMN +COLUMNS +COMMENT +COMMIT +COMPACT +COMPACTIONS +COMPUTE +CONCATENATE +CONSTRAINT +COST +CREATE +CROSS +CUBE +CURRENT +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +DAY +DAYOFYEAR +DATA +DATABASE +DATABASES +DATEADD +DATEDIFF +DBPROPERTIES +DEFAULT +DEFINED +DELETE +DELIMITED +DESC +DESCRIBE +DFS +DIRECTORIES +DIRECTORY +DISTINCT +DISTRIBUTE +DIV +DROP +ELSE +END +ESCAPE +ESCAPED +EXCEPT +EXCHANGE +EXISTS +EXPLAIN +EXPORT +EXTENDED +EXTERNAL +EXTRACT +FALSE +FETCH +FIELDS +FILTER +FILEFORMAT +FIRST +FOLLOWING +FOR +FOREIGN +FORMAT +FORMATTED +FROM +FULL +FUNCTION +FUNCTIONS +GLOBAL +GRANT +GROUP +GROUPING +HAVING +HOUR +IF +IGNORE +IMPORT +IN +INDEX +INDEXES +INNER +INPATH +INPUTFORMAT +INSERT +INTERSECT +INTERVAL +INTO +IS +ITEMS +JOIN +KEYS +LAST +LATERAL +LAZY +LEADING +LEFT +LIKE +ILIKE +LIMIT +LINES +LIST +LOAD +LOCAL +LOCATION +LOCK +LOCKS +LOGICAL +MACRO +MAP +MATCHED +MERGE +MICROSECOND +MILLISECOND +MINUTE +MONTH +MSCK +NAMESPACE +NAMESPACES +NATURAL +NO +NOT +NULL +NULLS +OF +OFFSET +ON +ONLY +OPTION +OPTIONS +OR +ORDER +OUT +OUTER +OUTPUTFORMAT +OVER +OVERLAPS +OVERLAY +OVERWRITE +PARTITION +PARTITIONED +PARTITIONS +PERCENTILE_CONT +PERCENTILE_DISC +PERCENTLIT +PIVOT +PLACING +POSITION +PRECEDING +PRIMARY +PRINCIPALS +PROPERTIES +PURGE +QUARTER +QUERY +RANGE +RECORDREADER +RECORDWRITER +RECOVER +REDUCE +REFERENCES +REFRESH +RENAME +REPAIR +REPEATABLE +REPLACE +RESET +RESPECT +RESTRICT +REVOKE +RIGHT +RLIKE +ROLE +ROLES +ROLLBACK +ROLLUP +ROW +ROWS +SECOND +SCHEMA +SCHEMAS +SELECT +SEMI +SEPARATED +SERDE +SERDEPROPERTIES +SESSION_USER +SET +SETMINUS +SETS +SHOW +SKEWED +SOME +SORT +SORTED +START +STATISTICS +STORED +STRATIFY +STRUCT +SUBSTR +SUBSTRING +SYNC +SYSTEM_TIME +SYSTEM_VERSION +TABLE +TABLES +TABLESAMPLE +TBLPROPERTIES +TEMPORARY +TERMINATED +THEN +TIME +TIMESTAMP +TIMESTAMPADD +TIMESTAMPDIFF +TO +TOUCH +TRAILING +TRANSACTION +TRANSACTIONS +TRANSFORM +TRIM +TRUE +TRUNCATE +TRY_CAST +TYPE +UNARCHIVE +UNBOUNDED +UNCACHE +UNION +UNIQUE +UNKNOWN +UNLOCK +UNSET +UPDATE +USE +USER +USING +VALUES +VERSION +VIEW +VIEWS +WEEK +WHEN +WHERE +WINDOW +WITH +WITHIN +YEAR +ZONE +EQ +NSEQ +NEQ +NEQJ +LT +LTE +GT +GTE +PLUS +MINUS +ASTERISK +SLASH +PERCENT +TILDE +AMPERSAND +PIPE +CONCAT_PIPE +HAT +COLON +ARROW +HENT_START +HENT_END +STRING +BIGINT_LITERAL +SMALLINT_LITERAL +TINYINT_LITERAL +INTEGER_VALUE +EXPONENT_VALUE +DECIMAL_VALUE +FLOAT_LITERAL +DOUBLE_LITERAL +BIGDECIMAL_LITERAL +IDENTIFIER +BACKQUOTED_IDENTIFIER +DECIMAL_DIGITS +EXPONENT +DIGIT +LETTER +SIMPLE_COMMENT +BRACKETED_COMMENT +WS +UNRECOGNIZED + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 327, 3110, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 3, 159, 1790, 8, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 3, 209, 2202, 8, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 3, 247, 2504, 8, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 3, 289, 2808, 8, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 3, 294, 2826, 8, 294, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 3, 296, 2834, 8, 296, 1, 297, 1, 297, 1, 298, 1, 298, 1, 299, 1, 299, 1, 300, 1, 300, 1, 301, 1, 301, 1, 302, 1, 302, 1, 303, 1, 303, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 5, 311, 2873, 8, 311, 10, 311, 12, 311, 2876, 9, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 5, 311, 2883, 8, 311, 10, 311, 12, 311, 2886, 9, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 5, 311, 2893, 8, 311, 10, 311, 12, 311, 2896, 9, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 5, 311, 2903, 8, 311, 10, 311, 12, 311, 2906, 9, 311, 1, 311, 3, 311, 2909, 8, 311, 1, 312, 4, 312, 2912, 8, 312, 11, 312, 12, 312, 2913, 1, 312, 1, 312, 1, 313, 4, 313, 2919, 8, 313, 11, 313, 12, 313, 2920, 1, 313, 1, 313, 1, 314, 4, 314, 2926, 8, 314, 11, 314, 12, 314, 2927, 1, 314, 1, 314, 1, 315, 4, 315, 2933, 8, 315, 11, 315, 12, 315, 2934, 1, 316, 4, 316, 2938, 8, 316, 11, 316, 12, 316, 2939, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 3, 316, 2948, 8, 316, 1, 317, 1, 317, 1, 317, 1, 318, 4, 318, 2954, 8, 318, 11, 318, 12, 318, 2955, 1, 318, 3, 318, 2959, 8, 318, 1, 318, 1, 318, 1, 318, 1, 318, 3, 318, 2965, 8, 318, 1, 318, 1, 318, 1, 318, 3, 318, 2970, 8, 318, 1, 319, 4, 319, 2973, 8, 319, 11, 319, 12, 319, 2974, 1, 319, 3, 319, 2978, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 2984, 8, 319, 1, 319, 1, 319, 1, 319, 3, 319, 2989, 8, 319, 1, 320, 4, 320, 2992, 8, 320, 11, 320, 12, 320, 2993, 1, 320, 3, 320, 2997, 8, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 3, 320, 3004, 8, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 3, 320, 3011, 8, 320, 1, 321, 1, 321, 1, 321, 4, 321, 3016, 8, 321, 11, 321, 12, 321, 3017, 1, 322, 1, 322, 1, 322, 1, 322, 5, 322, 3024, 8, 322, 10, 322, 12, 322, 3027, 9, 322, 1, 322, 1, 322, 1, 323, 4, 323, 3032, 8, 323, 11, 323, 12, 323, 3033, 1, 323, 1, 323, 5, 323, 3038, 8, 323, 10, 323, 12, 323, 3041, 9, 323, 1, 323, 1, 323, 4, 323, 3045, 8, 323, 11, 323, 12, 323, 3046, 3, 323, 3049, 8, 323, 1, 324, 1, 324, 3, 324, 3053, 8, 324, 1, 324, 4, 324, 3056, 8, 324, 11, 324, 12, 324, 3057, 1, 325, 1, 325, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 5, 327, 3070, 8, 327, 10, 327, 12, 327, 3073, 9, 327, 1, 327, 3, 327, 3076, 8, 327, 1, 327, 3, 327, 3079, 8, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 5, 328, 3089, 8, 328, 10, 328, 12, 328, 3092, 9, 328, 1, 328, 1, 328, 1, 328, 1, 328, 3, 328, 3098, 8, 328, 1, 328, 1, 328, 1, 329, 4, 329, 3103, 8, 329, 11, 329, 12, 329, 3104, 1, 329, 1, 329, 1, 330, 1, 330, 1, 3090, 0, 331, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229, 459, 230, 461, 231, 463, 232, 465, 233, 467, 234, 469, 235, 471, 236, 473, 237, 475, 238, 477, 239, 479, 240, 481, 241, 483, 242, 485, 243, 487, 244, 489, 245, 491, 246, 493, 247, 495, 248, 497, 249, 499, 250, 501, 251, 503, 252, 505, 253, 507, 254, 509, 255, 511, 256, 513, 257, 515, 258, 517, 259, 519, 260, 521, 261, 523, 262, 525, 263, 527, 264, 529, 265, 531, 266, 533, 267, 535, 268, 537, 269, 539, 270, 541, 271, 543, 272, 545, 273, 547, 274, 549, 275, 551, 276, 553, 277, 555, 278, 557, 279, 559, 280, 561, 281, 563, 282, 565, 283, 567, 284, 569, 285, 571, 286, 573, 287, 575, 288, 577, 289, 579, 290, 581, 291, 583, 292, 585, 293, 587, 294, 589, 295, 591, 296, 593, 297, 595, 298, 597, 299, 599, 300, 601, 301, 603, 302, 605, 303, 607, 304, 609, 305, 611, 306, 613, 307, 615, 308, 617, 309, 619, 310, 621, 311, 623, 312, 625, 313, 627, 314, 629, 315, 631, 316, 633, 317, 635, 318, 637, 319, 639, 320, 641, 321, 643, 322, 645, 323, 647, 0, 649, 0, 651, 0, 653, 0, 655, 324, 657, 325, 659, 326, 661, 327, 1, 0, 10, 2, 0, 39, 39, 92, 92, 2, 0, 34, 34, 92, 92, 1, 0, 39, 39, 1, 0, 34, 34, 1, 0, 96, 96, 2, 0, 43, 43, 45, 45, 1, 0, 48, 57, 1, 0, 65, 90, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 3157, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 1, 663, 1, 0, 0, 0, 3, 665, 1, 0, 0, 0, 5, 667, 1, 0, 0, 0, 7, 669, 1, 0, 0, 0, 9, 671, 1, 0, 0, 0, 11, 673, 1, 0, 0, 0, 13, 675, 1, 0, 0, 0, 15, 677, 1, 0, 0, 0, 17, 681, 1, 0, 0, 0, 19, 687, 1, 0, 0, 0, 21, 691, 1, 0, 0, 0, 23, 697, 1, 0, 0, 0, 25, 705, 1, 0, 0, 0, 27, 709, 1, 0, 0, 0, 29, 714, 1, 0, 0, 0, 31, 718, 1, 0, 0, 0, 33, 728, 1, 0, 0, 0, 35, 736, 1, 0, 0, 0, 37, 742, 1, 0, 0, 0, 39, 745, 1, 0, 0, 0, 41, 749, 1, 0, 0, 0, 43, 752, 1, 0, 0, 0, 45, 766, 1, 0, 0, 0, 47, 774, 1, 0, 0, 0, 49, 779, 1, 0, 0, 0, 51, 786, 1, 0, 0, 0, 53, 794, 1, 0, 0, 0, 55, 797, 1, 0, 0, 0, 57, 803, 1, 0, 0, 0, 59, 811, 1, 0, 0, 0, 61, 816, 1, 0, 0, 0, 63, 821, 1, 0, 0, 0, 65, 829, 1, 0, 0, 0, 67, 838, 1, 0, 0, 0, 69, 845, 1, 0, 0, 0, 71, 851, 1, 0, 0, 0, 73, 857, 1, 0, 0, 0, 75, 865, 1, 0, 0, 0, 77, 875, 1, 0, 0, 0, 79, 883, 1, 0, 0, 0, 81, 891, 1, 0, 0, 0, 83, 902, 1, 0, 0, 0, 85, 909, 1, 0, 0, 0, 87, 917, 1, 0, 0, 0, 89, 925, 1, 0, 0, 0, 91, 932, 1, 0, 0, 0, 93, 940, 1, 0, 0, 0, 95, 952, 1, 0, 0, 0, 97, 960, 1, 0, 0, 0, 99, 972, 1, 0, 0, 0, 101, 983, 1, 0, 0, 0, 103, 988, 1, 0, 0, 0, 105, 995, 1, 0, 0, 0, 107, 1001, 1, 0, 0, 0, 109, 1006, 1, 0, 0, 0, 111, 1014, 1, 0, 0, 0, 113, 1027, 1, 0, 0, 0, 115, 1040, 1, 0, 0, 0, 117, 1058, 1, 0, 0, 0, 119, 1071, 1, 0, 0, 0, 121, 1075, 1, 0, 0, 0, 123, 1085, 1, 0, 0, 0, 125, 1090, 1, 0, 0, 0, 127, 1099, 1, 0, 0, 0, 129, 1109, 1, 0, 0, 0, 131, 1117, 1, 0, 0, 0, 133, 1126, 1, 0, 0, 0, 135, 1139, 1, 0, 0, 0, 137, 1147, 1, 0, 0, 0, 139, 1155, 1, 0, 0, 0, 141, 1162, 1, 0, 0, 0, 143, 1172, 1, 0, 0, 0, 145, 1177, 1, 0, 0, 0, 147, 1186, 1, 0, 0, 0, 149, 1190, 1, 0, 0, 0, 151, 1202, 1, 0, 0, 0, 153, 1212, 1, 0, 0, 0, 155, 1221, 1, 0, 0, 0, 157, 1232, 1, 0, 0, 0, 159, 1236, 1, 0, 0, 0, 161, 1241, 1, 0, 0, 0, 163, 1246, 1, 0, 0, 0, 165, 1250, 1, 0, 0, 0, 167, 1257, 1, 0, 0, 0, 169, 1265, 1, 0, 0, 0, 171, 1272, 1, 0, 0, 0, 173, 1281, 1, 0, 0, 0, 175, 1288, 1, 0, 0, 0, 177, 1296, 1, 0, 0, 0, 179, 1303, 1, 0, 0, 0, 181, 1312, 1, 0, 0, 0, 183, 1321, 1, 0, 0, 0, 185, 1329, 1, 0, 0, 0, 187, 1335, 1, 0, 0, 0, 189, 1341, 1, 0, 0, 0, 191, 1348, 1, 0, 0, 0, 193, 1355, 1, 0, 0, 0, 195, 1366, 1, 0, 0, 0, 197, 1372, 1, 0, 0, 0, 199, 1382, 1, 0, 0, 0, 201, 1386, 1, 0, 0, 0, 203, 1394, 1, 0, 0, 0, 205, 1401, 1, 0, 0, 0, 207, 1411, 1, 0, 0, 0, 209, 1416, 1, 0, 0, 0, 211, 1421, 1, 0, 0, 0, 213, 1430, 1, 0, 0, 0, 215, 1440, 1, 0, 0, 0, 217, 1447, 1, 0, 0, 0, 219, 1453, 1, 0, 0, 0, 221, 1459, 1, 0, 0, 0, 223, 1468, 1, 0, 0, 0, 225, 1475, 1, 0, 0, 0, 227, 1480, 1, 0, 0, 0, 229, 1483, 1, 0, 0, 0, 231, 1490, 1, 0, 0, 0, 233, 1497, 1, 0, 0, 0, 235, 1500, 1, 0, 0, 0, 237, 1506, 1, 0, 0, 0, 239, 1514, 1, 0, 0, 0, 241, 1520, 1, 0, 0, 0, 243, 1527, 1, 0, 0, 0, 245, 1539, 1, 0, 0, 0, 247, 1546, 1, 0, 0, 0, 249, 1556, 1, 0, 0, 0, 251, 1565, 1, 0, 0, 0, 253, 1570, 1, 0, 0, 0, 255, 1573, 1, 0, 0, 0, 257, 1579, 1, 0, 0, 0, 259, 1584, 1, 0, 0, 0, 261, 1589, 1, 0, 0, 0, 263, 1594, 1, 0, 0, 0, 265, 1602, 1, 0, 0, 0, 267, 1607, 1, 0, 0, 0, 269, 1615, 1, 0, 0, 0, 271, 1620, 1, 0, 0, 0, 273, 1625, 1, 0, 0, 0, 275, 1631, 1, 0, 0, 0, 277, 1637, 1, 0, 0, 0, 279, 1643, 1, 0, 0, 0, 281, 1648, 1, 0, 0, 0, 283, 1653, 1, 0, 0, 0, 285, 1659, 1, 0, 0, 0, 287, 1668, 1, 0, 0, 0, 289, 1673, 1, 0, 0, 0, 291, 1679, 1, 0, 0, 0, 293, 1687, 1, 0, 0, 0, 295, 1693, 1, 0, 0, 0, 297, 1697, 1, 0, 0, 0, 299, 1705, 1, 0, 0, 0, 301, 1711, 1, 0, 0, 0, 303, 1723, 1, 0, 0, 0, 305, 1735, 1, 0, 0, 0, 307, 1742, 1, 0, 0, 0, 309, 1748, 1, 0, 0, 0, 311, 1753, 1, 0, 0, 0, 313, 1763, 1, 0, 0, 0, 315, 1774, 1, 0, 0, 0, 317, 1782, 1, 0, 0, 0, 319, 1789, 1, 0, 0, 0, 321, 1791, 1, 0, 0, 0, 323, 1796, 1, 0, 0, 0, 325, 1802, 1, 0, 0, 0, 327, 1805, 1, 0, 0, 0, 329, 1812, 1, 0, 0, 0, 331, 1815, 1, 0, 0, 0, 333, 1820, 1, 0, 0, 0, 335, 1827, 1, 0, 0, 0, 337, 1835, 1, 0, 0, 0, 339, 1838, 1, 0, 0, 0, 341, 1844, 1, 0, 0, 0, 343, 1848, 1, 0, 0, 0, 345, 1854, 1, 0, 0, 0, 347, 1867, 1, 0, 0, 0, 349, 1872, 1, 0, 0, 0, 351, 1881, 1, 0, 0, 0, 353, 1889, 1, 0, 0, 0, 355, 1899, 1, 0, 0, 0, 357, 1909, 1, 0, 0, 0, 359, 1921, 1, 0, 0, 0, 361, 1932, 1, 0, 0, 0, 363, 1948, 1, 0, 0, 0, 365, 1964, 1, 0, 0, 0, 367, 1972, 1, 0, 0, 0, 369, 1978, 1, 0, 0, 0, 371, 1986, 1, 0, 0, 0, 373, 1995, 1, 0, 0, 0, 375, 2005, 1, 0, 0, 0, 377, 2013, 1, 0, 0, 0, 379, 2024, 1, 0, 0, 0, 381, 2035, 1, 0, 0, 0, 383, 2041, 1, 0, 0, 0, 385, 2049, 1, 0, 0, 0, 387, 2055, 1, 0, 0, 0, 389, 2061, 1, 0, 0, 0, 391, 2074, 1, 0, 0, 0, 393, 2087, 1, 0, 0, 0, 395, 2095, 1, 0, 0, 0, 397, 2102, 1, 0, 0, 0, 399, 2113, 1, 0, 0, 0, 401, 2121, 1, 0, 0, 0, 403, 2128, 1, 0, 0, 0, 405, 2135, 1, 0, 0, 0, 407, 2146, 1, 0, 0, 0, 409, 2154, 1, 0, 0, 0, 411, 2160, 1, 0, 0, 0, 413, 2168, 1, 0, 0, 0, 415, 2177, 1, 0, 0, 0, 417, 2184, 1, 0, 0, 0, 419, 2201, 1, 0, 0, 0, 421, 2203, 1, 0, 0, 0, 423, 2208, 1, 0, 0, 0, 425, 2214, 1, 0, 0, 0, 427, 2223, 1, 0, 0, 0, 429, 2230, 1, 0, 0, 0, 431, 2234, 1, 0, 0, 0, 433, 2239, 1, 0, 0, 0, 435, 2246, 1, 0, 0, 0, 437, 2253, 1, 0, 0, 0, 439, 2261, 1, 0, 0, 0, 441, 2268, 1, 0, 0, 0, 443, 2273, 1, 0, 0, 0, 445, 2283, 1, 0, 0, 0, 447, 2289, 1, 0, 0, 0, 449, 2305, 1, 0, 0, 0, 451, 2318, 1, 0, 0, 0, 453, 2322, 1, 0, 0, 0, 455, 2328, 1, 0, 0, 0, 457, 2333, 1, 0, 0, 0, 459, 2338, 1, 0, 0, 0, 461, 2345, 1, 0, 0, 0, 463, 2350, 1, 0, 0, 0, 465, 2355, 1, 0, 0, 0, 467, 2362, 1, 0, 0, 0, 469, 2368, 1, 0, 0, 0, 471, 2379, 1, 0, 0, 0, 473, 2386, 1, 0, 0, 0, 475, 2395, 1, 0, 0, 0, 477, 2402, 1, 0, 0, 0, 479, 2409, 1, 0, 0, 0, 481, 2419, 1, 0, 0, 0, 483, 2424, 1, 0, 0, 0, 485, 2436, 1, 0, 0, 0, 487, 2451, 1, 0, 0, 0, 489, 2457, 1, 0, 0, 0, 491, 2464, 1, 0, 0, 0, 493, 2476, 1, 0, 0, 0, 495, 2503, 1, 0, 0, 0, 497, 2505, 1, 0, 0, 0, 499, 2516, 1, 0, 0, 0, 501, 2521, 1, 0, 0, 0, 503, 2526, 1, 0, 0, 0, 505, 2536, 1, 0, 0, 0, 507, 2549, 1, 0, 0, 0, 509, 2563, 1, 0, 0, 0, 511, 2566, 1, 0, 0, 0, 513, 2572, 1, 0, 0, 0, 515, 2581, 1, 0, 0, 0, 517, 2593, 1, 0, 0, 0, 519, 2606, 1, 0, 0, 0, 521, 2616, 1, 0, 0, 0, 523, 2621, 1, 0, 0, 0, 525, 2626, 1, 0, 0, 0, 527, 2635, 1, 0, 0, 0, 529, 2644, 1, 0, 0, 0, 531, 2649, 1, 0, 0, 0, 533, 2659, 1, 0, 0, 0, 535, 2669, 1, 0, 0, 0, 537, 2677, 1, 0, 0, 0, 539, 2683, 1, 0, 0, 0, 541, 2690, 1, 0, 0, 0, 543, 2698, 1, 0, 0, 0, 545, 2705, 1, 0, 0, 0, 547, 2711, 1, 0, 0, 0, 549, 2718, 1, 0, 0, 0, 551, 2722, 1, 0, 0, 0, 553, 2727, 1, 0, 0, 0, 555, 2733, 1, 0, 0, 0, 557, 2740, 1, 0, 0, 0, 559, 2748, 1, 0, 0, 0, 561, 2753, 1, 0, 0, 0, 563, 2759, 1, 0, 0, 0, 565, 2764, 1, 0, 0, 0, 567, 2769, 1, 0, 0, 0, 569, 2775, 1, 0, 0, 0, 571, 2782, 1, 0, 0, 0, 573, 2787, 1, 0, 0, 0, 575, 2794, 1, 0, 0, 0, 577, 2799, 1, 0, 0, 0, 579, 2807, 1, 0, 0, 0, 581, 2809, 1, 0, 0, 0, 583, 2813, 1, 0, 0, 0, 585, 2816, 1, 0, 0, 0, 587, 2819, 1, 0, 0, 0, 589, 2825, 1, 0, 0, 0, 591, 2827, 1, 0, 0, 0, 593, 2833, 1, 0, 0, 0, 595, 2835, 1, 0, 0, 0, 597, 2837, 1, 0, 0, 0, 599, 2839, 1, 0, 0, 0, 601, 2841, 1, 0, 0, 0, 603, 2843, 1, 0, 0, 0, 605, 2845, 1, 0, 0, 0, 607, 2847, 1, 0, 0, 0, 609, 2849, 1, 0, 0, 0, 611, 2851, 1, 0, 0, 0, 613, 2854, 1, 0, 0, 0, 615, 2856, 1, 0, 0, 0, 617, 2858, 1, 0, 0, 0, 619, 2861, 1, 0, 0, 0, 621, 2865, 1, 0, 0, 0, 623, 2908, 1, 0, 0, 0, 625, 2911, 1, 0, 0, 0, 627, 2918, 1, 0, 0, 0, 629, 2925, 1, 0, 0, 0, 631, 2932, 1, 0, 0, 0, 633, 2947, 1, 0, 0, 0, 635, 2949, 1, 0, 0, 0, 637, 2969, 1, 0, 0, 0, 639, 2988, 1, 0, 0, 0, 641, 3010, 1, 0, 0, 0, 643, 3015, 1, 0, 0, 0, 645, 3019, 1, 0, 0, 0, 647, 3048, 1, 0, 0, 0, 649, 3050, 1, 0, 0, 0, 651, 3059, 1, 0, 0, 0, 653, 3061, 1, 0, 0, 0, 655, 3063, 1, 0, 0, 0, 657, 3082, 1, 0, 0, 0, 659, 3102, 1, 0, 0, 0, 661, 3108, 1, 0, 0, 0, 663, 664, 5, 59, 0, 0, 664, 2, 1, 0, 0, 0, 665, 666, 5, 40, 0, 0, 666, 4, 1, 0, 0, 0, 667, 668, 5, 41, 0, 0, 668, 6, 1, 0, 0, 0, 669, 670, 5, 44, 0, 0, 670, 8, 1, 0, 0, 0, 671, 672, 5, 46, 0, 0, 672, 10, 1, 0, 0, 0, 673, 674, 5, 91, 0, 0, 674, 12, 1, 0, 0, 0, 675, 676, 5, 93, 0, 0, 676, 14, 1, 0, 0, 0, 677, 678, 5, 65, 0, 0, 678, 679, 5, 68, 0, 0, 679, 680, 5, 68, 0, 0, 680, 16, 1, 0, 0, 0, 681, 682, 5, 65, 0, 0, 682, 683, 5, 70, 0, 0, 683, 684, 5, 84, 0, 0, 684, 685, 5, 69, 0, 0, 685, 686, 5, 82, 0, 0, 686, 18, 1, 0, 0, 0, 687, 688, 5, 65, 0, 0, 688, 689, 5, 76, 0, 0, 689, 690, 5, 76, 0, 0, 690, 20, 1, 0, 0, 0, 691, 692, 5, 65, 0, 0, 692, 693, 5, 76, 0, 0, 693, 694, 5, 84, 0, 0, 694, 695, 5, 69, 0, 0, 695, 696, 5, 82, 0, 0, 696, 22, 1, 0, 0, 0, 697, 698, 5, 65, 0, 0, 698, 699, 5, 78, 0, 0, 699, 700, 5, 65, 0, 0, 700, 701, 5, 76, 0, 0, 701, 702, 5, 89, 0, 0, 702, 703, 5, 90, 0, 0, 703, 704, 5, 69, 0, 0, 704, 24, 1, 0, 0, 0, 705, 706, 5, 65, 0, 0, 706, 707, 5, 78, 0, 0, 707, 708, 5, 68, 0, 0, 708, 26, 1, 0, 0, 0, 709, 710, 5, 65, 0, 0, 710, 711, 5, 78, 0, 0, 711, 712, 5, 84, 0, 0, 712, 713, 5, 73, 0, 0, 713, 28, 1, 0, 0, 0, 714, 715, 5, 65, 0, 0, 715, 716, 5, 78, 0, 0, 716, 717, 5, 89, 0, 0, 717, 30, 1, 0, 0, 0, 718, 719, 5, 65, 0, 0, 719, 720, 5, 78, 0, 0, 720, 721, 5, 89, 0, 0, 721, 722, 5, 95, 0, 0, 722, 723, 5, 86, 0, 0, 723, 724, 5, 65, 0, 0, 724, 725, 5, 76, 0, 0, 725, 726, 5, 85, 0, 0, 726, 727, 5, 69, 0, 0, 727, 32, 1, 0, 0, 0, 728, 729, 5, 65, 0, 0, 729, 730, 5, 82, 0, 0, 730, 731, 5, 67, 0, 0, 731, 732, 5, 72, 0, 0, 732, 733, 5, 73, 0, 0, 733, 734, 5, 86, 0, 0, 734, 735, 5, 69, 0, 0, 735, 34, 1, 0, 0, 0, 736, 737, 5, 65, 0, 0, 737, 738, 5, 82, 0, 0, 738, 739, 5, 82, 0, 0, 739, 740, 5, 65, 0, 0, 740, 741, 5, 89, 0, 0, 741, 36, 1, 0, 0, 0, 742, 743, 5, 65, 0, 0, 743, 744, 5, 83, 0, 0, 744, 38, 1, 0, 0, 0, 745, 746, 5, 65, 0, 0, 746, 747, 5, 83, 0, 0, 747, 748, 5, 67, 0, 0, 748, 40, 1, 0, 0, 0, 749, 750, 5, 65, 0, 0, 750, 751, 5, 84, 0, 0, 751, 42, 1, 0, 0, 0, 752, 753, 5, 65, 0, 0, 753, 754, 5, 85, 0, 0, 754, 755, 5, 84, 0, 0, 755, 756, 5, 72, 0, 0, 756, 757, 5, 79, 0, 0, 757, 758, 5, 82, 0, 0, 758, 759, 5, 73, 0, 0, 759, 760, 5, 90, 0, 0, 760, 761, 5, 65, 0, 0, 761, 762, 5, 84, 0, 0, 762, 763, 5, 73, 0, 0, 763, 764, 5, 79, 0, 0, 764, 765, 5, 78, 0, 0, 765, 44, 1, 0, 0, 0, 766, 767, 5, 66, 0, 0, 767, 768, 5, 69, 0, 0, 768, 769, 5, 84, 0, 0, 769, 770, 5, 87, 0, 0, 770, 771, 5, 69, 0, 0, 771, 772, 5, 69, 0, 0, 772, 773, 5, 78, 0, 0, 773, 46, 1, 0, 0, 0, 774, 775, 5, 66, 0, 0, 775, 776, 5, 79, 0, 0, 776, 777, 5, 84, 0, 0, 777, 778, 5, 72, 0, 0, 778, 48, 1, 0, 0, 0, 779, 780, 5, 66, 0, 0, 780, 781, 5, 85, 0, 0, 781, 782, 5, 67, 0, 0, 782, 783, 5, 75, 0, 0, 783, 784, 5, 69, 0, 0, 784, 785, 5, 84, 0, 0, 785, 50, 1, 0, 0, 0, 786, 787, 5, 66, 0, 0, 787, 788, 5, 85, 0, 0, 788, 789, 5, 67, 0, 0, 789, 790, 5, 75, 0, 0, 790, 791, 5, 69, 0, 0, 791, 792, 5, 84, 0, 0, 792, 793, 5, 83, 0, 0, 793, 52, 1, 0, 0, 0, 794, 795, 5, 66, 0, 0, 795, 796, 5, 89, 0, 0, 796, 54, 1, 0, 0, 0, 797, 798, 5, 67, 0, 0, 798, 799, 5, 65, 0, 0, 799, 800, 5, 67, 0, 0, 800, 801, 5, 72, 0, 0, 801, 802, 5, 69, 0, 0, 802, 56, 1, 0, 0, 0, 803, 804, 5, 67, 0, 0, 804, 805, 5, 65, 0, 0, 805, 806, 5, 83, 0, 0, 806, 807, 5, 67, 0, 0, 807, 808, 5, 65, 0, 0, 808, 809, 5, 68, 0, 0, 809, 810, 5, 69, 0, 0, 810, 58, 1, 0, 0, 0, 811, 812, 5, 67, 0, 0, 812, 813, 5, 65, 0, 0, 813, 814, 5, 83, 0, 0, 814, 815, 5, 69, 0, 0, 815, 60, 1, 0, 0, 0, 816, 817, 5, 67, 0, 0, 817, 818, 5, 65, 0, 0, 818, 819, 5, 83, 0, 0, 819, 820, 5, 84, 0, 0, 820, 62, 1, 0, 0, 0, 821, 822, 5, 67, 0, 0, 822, 823, 5, 65, 0, 0, 823, 824, 5, 84, 0, 0, 824, 825, 5, 65, 0, 0, 825, 826, 5, 76, 0, 0, 826, 827, 5, 79, 0, 0, 827, 828, 5, 71, 0, 0, 828, 64, 1, 0, 0, 0, 829, 830, 5, 67, 0, 0, 830, 831, 5, 65, 0, 0, 831, 832, 5, 84, 0, 0, 832, 833, 5, 65, 0, 0, 833, 834, 5, 76, 0, 0, 834, 835, 5, 79, 0, 0, 835, 836, 5, 71, 0, 0, 836, 837, 5, 83, 0, 0, 837, 66, 1, 0, 0, 0, 838, 839, 5, 67, 0, 0, 839, 840, 5, 72, 0, 0, 840, 841, 5, 65, 0, 0, 841, 842, 5, 78, 0, 0, 842, 843, 5, 71, 0, 0, 843, 844, 5, 69, 0, 0, 844, 68, 1, 0, 0, 0, 845, 846, 5, 67, 0, 0, 846, 847, 5, 72, 0, 0, 847, 848, 5, 69, 0, 0, 848, 849, 5, 67, 0, 0, 849, 850, 5, 75, 0, 0, 850, 70, 1, 0, 0, 0, 851, 852, 5, 67, 0, 0, 852, 853, 5, 76, 0, 0, 853, 854, 5, 69, 0, 0, 854, 855, 5, 65, 0, 0, 855, 856, 5, 82, 0, 0, 856, 72, 1, 0, 0, 0, 857, 858, 5, 67, 0, 0, 858, 859, 5, 76, 0, 0, 859, 860, 5, 85, 0, 0, 860, 861, 5, 83, 0, 0, 861, 862, 5, 84, 0, 0, 862, 863, 5, 69, 0, 0, 863, 864, 5, 82, 0, 0, 864, 74, 1, 0, 0, 0, 865, 866, 5, 67, 0, 0, 866, 867, 5, 76, 0, 0, 867, 868, 5, 85, 0, 0, 868, 869, 5, 83, 0, 0, 869, 870, 5, 84, 0, 0, 870, 871, 5, 69, 0, 0, 871, 872, 5, 82, 0, 0, 872, 873, 5, 69, 0, 0, 873, 874, 5, 68, 0, 0, 874, 76, 1, 0, 0, 0, 875, 876, 5, 67, 0, 0, 876, 877, 5, 79, 0, 0, 877, 878, 5, 68, 0, 0, 878, 879, 5, 69, 0, 0, 879, 880, 5, 71, 0, 0, 880, 881, 5, 69, 0, 0, 881, 882, 5, 78, 0, 0, 882, 78, 1, 0, 0, 0, 883, 884, 5, 67, 0, 0, 884, 885, 5, 79, 0, 0, 885, 886, 5, 76, 0, 0, 886, 887, 5, 76, 0, 0, 887, 888, 5, 65, 0, 0, 888, 889, 5, 84, 0, 0, 889, 890, 5, 69, 0, 0, 890, 80, 1, 0, 0, 0, 891, 892, 5, 67, 0, 0, 892, 893, 5, 79, 0, 0, 893, 894, 5, 76, 0, 0, 894, 895, 5, 76, 0, 0, 895, 896, 5, 69, 0, 0, 896, 897, 5, 67, 0, 0, 897, 898, 5, 84, 0, 0, 898, 899, 5, 73, 0, 0, 899, 900, 5, 79, 0, 0, 900, 901, 5, 78, 0, 0, 901, 82, 1, 0, 0, 0, 902, 903, 5, 67, 0, 0, 903, 904, 5, 79, 0, 0, 904, 905, 5, 76, 0, 0, 905, 906, 5, 85, 0, 0, 906, 907, 5, 77, 0, 0, 907, 908, 5, 78, 0, 0, 908, 84, 1, 0, 0, 0, 909, 910, 5, 67, 0, 0, 910, 911, 5, 79, 0, 0, 911, 912, 5, 76, 0, 0, 912, 913, 5, 85, 0, 0, 913, 914, 5, 77, 0, 0, 914, 915, 5, 78, 0, 0, 915, 916, 5, 83, 0, 0, 916, 86, 1, 0, 0, 0, 917, 918, 5, 67, 0, 0, 918, 919, 5, 79, 0, 0, 919, 920, 5, 77, 0, 0, 920, 921, 5, 77, 0, 0, 921, 922, 5, 69, 0, 0, 922, 923, 5, 78, 0, 0, 923, 924, 5, 84, 0, 0, 924, 88, 1, 0, 0, 0, 925, 926, 5, 67, 0, 0, 926, 927, 5, 79, 0, 0, 927, 928, 5, 77, 0, 0, 928, 929, 5, 77, 0, 0, 929, 930, 5, 73, 0, 0, 930, 931, 5, 84, 0, 0, 931, 90, 1, 0, 0, 0, 932, 933, 5, 67, 0, 0, 933, 934, 5, 79, 0, 0, 934, 935, 5, 77, 0, 0, 935, 936, 5, 80, 0, 0, 936, 937, 5, 65, 0, 0, 937, 938, 5, 67, 0, 0, 938, 939, 5, 84, 0, 0, 939, 92, 1, 0, 0, 0, 940, 941, 5, 67, 0, 0, 941, 942, 5, 79, 0, 0, 942, 943, 5, 77, 0, 0, 943, 944, 5, 80, 0, 0, 944, 945, 5, 65, 0, 0, 945, 946, 5, 67, 0, 0, 946, 947, 5, 84, 0, 0, 947, 948, 5, 73, 0, 0, 948, 949, 5, 79, 0, 0, 949, 950, 5, 78, 0, 0, 950, 951, 5, 83, 0, 0, 951, 94, 1, 0, 0, 0, 952, 953, 5, 67, 0, 0, 953, 954, 5, 79, 0, 0, 954, 955, 5, 77, 0, 0, 955, 956, 5, 80, 0, 0, 956, 957, 5, 85, 0, 0, 957, 958, 5, 84, 0, 0, 958, 959, 5, 69, 0, 0, 959, 96, 1, 0, 0, 0, 960, 961, 5, 67, 0, 0, 961, 962, 5, 79, 0, 0, 962, 963, 5, 78, 0, 0, 963, 964, 5, 67, 0, 0, 964, 965, 5, 65, 0, 0, 965, 966, 5, 84, 0, 0, 966, 967, 5, 69, 0, 0, 967, 968, 5, 78, 0, 0, 968, 969, 5, 65, 0, 0, 969, 970, 5, 84, 0, 0, 970, 971, 5, 69, 0, 0, 971, 98, 1, 0, 0, 0, 972, 973, 5, 67, 0, 0, 973, 974, 5, 79, 0, 0, 974, 975, 5, 78, 0, 0, 975, 976, 5, 83, 0, 0, 976, 977, 5, 84, 0, 0, 977, 978, 5, 82, 0, 0, 978, 979, 5, 65, 0, 0, 979, 980, 5, 73, 0, 0, 980, 981, 5, 78, 0, 0, 981, 982, 5, 84, 0, 0, 982, 100, 1, 0, 0, 0, 983, 984, 5, 67, 0, 0, 984, 985, 5, 79, 0, 0, 985, 986, 5, 83, 0, 0, 986, 987, 5, 84, 0, 0, 987, 102, 1, 0, 0, 0, 988, 989, 5, 67, 0, 0, 989, 990, 5, 82, 0, 0, 990, 991, 5, 69, 0, 0, 991, 992, 5, 65, 0, 0, 992, 993, 5, 84, 0, 0, 993, 994, 5, 69, 0, 0, 994, 104, 1, 0, 0, 0, 995, 996, 5, 67, 0, 0, 996, 997, 5, 82, 0, 0, 997, 998, 5, 79, 0, 0, 998, 999, 5, 83, 0, 0, 999, 1000, 5, 83, 0, 0, 1000, 106, 1, 0, 0, 0, 1001, 1002, 5, 67, 0, 0, 1002, 1003, 5, 85, 0, 0, 1003, 1004, 5, 66, 0, 0, 1004, 1005, 5, 69, 0, 0, 1005, 108, 1, 0, 0, 0, 1006, 1007, 5, 67, 0, 0, 1007, 1008, 5, 85, 0, 0, 1008, 1009, 5, 82, 0, 0, 1009, 1010, 5, 82, 0, 0, 1010, 1011, 5, 69, 0, 0, 1011, 1012, 5, 78, 0, 0, 1012, 1013, 5, 84, 0, 0, 1013, 110, 1, 0, 0, 0, 1014, 1015, 5, 67, 0, 0, 1015, 1016, 5, 85, 0, 0, 1016, 1017, 5, 82, 0, 0, 1017, 1018, 5, 82, 0, 0, 1018, 1019, 5, 69, 0, 0, 1019, 1020, 5, 78, 0, 0, 1020, 1021, 5, 84, 0, 0, 1021, 1022, 5, 95, 0, 0, 1022, 1023, 5, 68, 0, 0, 1023, 1024, 5, 65, 0, 0, 1024, 1025, 5, 84, 0, 0, 1025, 1026, 5, 69, 0, 0, 1026, 112, 1, 0, 0, 0, 1027, 1028, 5, 67, 0, 0, 1028, 1029, 5, 85, 0, 0, 1029, 1030, 5, 82, 0, 0, 1030, 1031, 5, 82, 0, 0, 1031, 1032, 5, 69, 0, 0, 1032, 1033, 5, 78, 0, 0, 1033, 1034, 5, 84, 0, 0, 1034, 1035, 5, 95, 0, 0, 1035, 1036, 5, 84, 0, 0, 1036, 1037, 5, 73, 0, 0, 1037, 1038, 5, 77, 0, 0, 1038, 1039, 5, 69, 0, 0, 1039, 114, 1, 0, 0, 0, 1040, 1041, 5, 67, 0, 0, 1041, 1042, 5, 85, 0, 0, 1042, 1043, 5, 82, 0, 0, 1043, 1044, 5, 82, 0, 0, 1044, 1045, 5, 69, 0, 0, 1045, 1046, 5, 78, 0, 0, 1046, 1047, 5, 84, 0, 0, 1047, 1048, 5, 95, 0, 0, 1048, 1049, 5, 84, 0, 0, 1049, 1050, 5, 73, 0, 0, 1050, 1051, 5, 77, 0, 0, 1051, 1052, 5, 69, 0, 0, 1052, 1053, 5, 83, 0, 0, 1053, 1054, 5, 84, 0, 0, 1054, 1055, 5, 65, 0, 0, 1055, 1056, 5, 77, 0, 0, 1056, 1057, 5, 80, 0, 0, 1057, 116, 1, 0, 0, 0, 1058, 1059, 5, 67, 0, 0, 1059, 1060, 5, 85, 0, 0, 1060, 1061, 5, 82, 0, 0, 1061, 1062, 5, 82, 0, 0, 1062, 1063, 5, 69, 0, 0, 1063, 1064, 5, 78, 0, 0, 1064, 1065, 5, 84, 0, 0, 1065, 1066, 5, 95, 0, 0, 1066, 1067, 5, 85, 0, 0, 1067, 1068, 5, 83, 0, 0, 1068, 1069, 5, 69, 0, 0, 1069, 1070, 5, 82, 0, 0, 1070, 118, 1, 0, 0, 0, 1071, 1072, 5, 68, 0, 0, 1072, 1073, 5, 65, 0, 0, 1073, 1074, 5, 89, 0, 0, 1074, 120, 1, 0, 0, 0, 1075, 1076, 5, 68, 0, 0, 1076, 1077, 5, 65, 0, 0, 1077, 1078, 5, 89, 0, 0, 1078, 1079, 5, 79, 0, 0, 1079, 1080, 5, 70, 0, 0, 1080, 1081, 5, 89, 0, 0, 1081, 1082, 5, 69, 0, 0, 1082, 1083, 5, 65, 0, 0, 1083, 1084, 5, 82, 0, 0, 1084, 122, 1, 0, 0, 0, 1085, 1086, 5, 68, 0, 0, 1086, 1087, 5, 65, 0, 0, 1087, 1088, 5, 84, 0, 0, 1088, 1089, 5, 65, 0, 0, 1089, 124, 1, 0, 0, 0, 1090, 1091, 5, 68, 0, 0, 1091, 1092, 5, 65, 0, 0, 1092, 1093, 5, 84, 0, 0, 1093, 1094, 5, 65, 0, 0, 1094, 1095, 5, 66, 0, 0, 1095, 1096, 5, 65, 0, 0, 1096, 1097, 5, 83, 0, 0, 1097, 1098, 5, 69, 0, 0, 1098, 126, 1, 0, 0, 0, 1099, 1100, 5, 68, 0, 0, 1100, 1101, 5, 65, 0, 0, 1101, 1102, 5, 84, 0, 0, 1102, 1103, 5, 65, 0, 0, 1103, 1104, 5, 66, 0, 0, 1104, 1105, 5, 65, 0, 0, 1105, 1106, 5, 83, 0, 0, 1106, 1107, 5, 69, 0, 0, 1107, 1108, 5, 83, 0, 0, 1108, 128, 1, 0, 0, 0, 1109, 1110, 5, 68, 0, 0, 1110, 1111, 5, 65, 0, 0, 1111, 1112, 5, 84, 0, 0, 1112, 1113, 5, 69, 0, 0, 1113, 1114, 5, 65, 0, 0, 1114, 1115, 5, 68, 0, 0, 1115, 1116, 5, 68, 0, 0, 1116, 130, 1, 0, 0, 0, 1117, 1118, 5, 68, 0, 0, 1118, 1119, 5, 65, 0, 0, 1119, 1120, 5, 84, 0, 0, 1120, 1121, 5, 69, 0, 0, 1121, 1122, 5, 68, 0, 0, 1122, 1123, 5, 73, 0, 0, 1123, 1124, 5, 70, 0, 0, 1124, 1125, 5, 70, 0, 0, 1125, 132, 1, 0, 0, 0, 1126, 1127, 5, 68, 0, 0, 1127, 1128, 5, 66, 0, 0, 1128, 1129, 5, 80, 0, 0, 1129, 1130, 5, 82, 0, 0, 1130, 1131, 5, 79, 0, 0, 1131, 1132, 5, 80, 0, 0, 1132, 1133, 5, 69, 0, 0, 1133, 1134, 5, 82, 0, 0, 1134, 1135, 5, 84, 0, 0, 1135, 1136, 5, 73, 0, 0, 1136, 1137, 5, 69, 0, 0, 1137, 1138, 5, 83, 0, 0, 1138, 134, 1, 0, 0, 0, 1139, 1140, 5, 68, 0, 0, 1140, 1141, 5, 69, 0, 0, 1141, 1142, 5, 70, 0, 0, 1142, 1143, 5, 65, 0, 0, 1143, 1144, 5, 85, 0, 0, 1144, 1145, 5, 76, 0, 0, 1145, 1146, 5, 84, 0, 0, 1146, 136, 1, 0, 0, 0, 1147, 1148, 5, 68, 0, 0, 1148, 1149, 5, 69, 0, 0, 1149, 1150, 5, 70, 0, 0, 1150, 1151, 5, 73, 0, 0, 1151, 1152, 5, 78, 0, 0, 1152, 1153, 5, 69, 0, 0, 1153, 1154, 5, 68, 0, 0, 1154, 138, 1, 0, 0, 0, 1155, 1156, 5, 68, 0, 0, 1156, 1157, 5, 69, 0, 0, 1157, 1158, 5, 76, 0, 0, 1158, 1159, 5, 69, 0, 0, 1159, 1160, 5, 84, 0, 0, 1160, 1161, 5, 69, 0, 0, 1161, 140, 1, 0, 0, 0, 1162, 1163, 5, 68, 0, 0, 1163, 1164, 5, 69, 0, 0, 1164, 1165, 5, 76, 0, 0, 1165, 1166, 5, 73, 0, 0, 1166, 1167, 5, 77, 0, 0, 1167, 1168, 5, 73, 0, 0, 1168, 1169, 5, 84, 0, 0, 1169, 1170, 5, 69, 0, 0, 1170, 1171, 5, 68, 0, 0, 1171, 142, 1, 0, 0, 0, 1172, 1173, 5, 68, 0, 0, 1173, 1174, 5, 69, 0, 0, 1174, 1175, 5, 83, 0, 0, 1175, 1176, 5, 67, 0, 0, 1176, 144, 1, 0, 0, 0, 1177, 1178, 5, 68, 0, 0, 1178, 1179, 5, 69, 0, 0, 1179, 1180, 5, 83, 0, 0, 1180, 1181, 5, 67, 0, 0, 1181, 1182, 5, 82, 0, 0, 1182, 1183, 5, 73, 0, 0, 1183, 1184, 5, 66, 0, 0, 1184, 1185, 5, 69, 0, 0, 1185, 146, 1, 0, 0, 0, 1186, 1187, 5, 68, 0, 0, 1187, 1188, 5, 70, 0, 0, 1188, 1189, 5, 83, 0, 0, 1189, 148, 1, 0, 0, 0, 1190, 1191, 5, 68, 0, 0, 1191, 1192, 5, 73, 0, 0, 1192, 1193, 5, 82, 0, 0, 1193, 1194, 5, 69, 0, 0, 1194, 1195, 5, 67, 0, 0, 1195, 1196, 5, 84, 0, 0, 1196, 1197, 5, 79, 0, 0, 1197, 1198, 5, 82, 0, 0, 1198, 1199, 5, 73, 0, 0, 1199, 1200, 5, 69, 0, 0, 1200, 1201, 5, 83, 0, 0, 1201, 150, 1, 0, 0, 0, 1202, 1203, 5, 68, 0, 0, 1203, 1204, 5, 73, 0, 0, 1204, 1205, 5, 82, 0, 0, 1205, 1206, 5, 69, 0, 0, 1206, 1207, 5, 67, 0, 0, 1207, 1208, 5, 84, 0, 0, 1208, 1209, 5, 79, 0, 0, 1209, 1210, 5, 82, 0, 0, 1210, 1211, 5, 89, 0, 0, 1211, 152, 1, 0, 0, 0, 1212, 1213, 5, 68, 0, 0, 1213, 1214, 5, 73, 0, 0, 1214, 1215, 5, 83, 0, 0, 1215, 1216, 5, 84, 0, 0, 1216, 1217, 5, 73, 0, 0, 1217, 1218, 5, 78, 0, 0, 1218, 1219, 5, 67, 0, 0, 1219, 1220, 5, 84, 0, 0, 1220, 154, 1, 0, 0, 0, 1221, 1222, 5, 68, 0, 0, 1222, 1223, 5, 73, 0, 0, 1223, 1224, 5, 83, 0, 0, 1224, 1225, 5, 84, 0, 0, 1225, 1226, 5, 82, 0, 0, 1226, 1227, 5, 73, 0, 0, 1227, 1228, 5, 66, 0, 0, 1228, 1229, 5, 85, 0, 0, 1229, 1230, 5, 84, 0, 0, 1230, 1231, 5, 69, 0, 0, 1231, 156, 1, 0, 0, 0, 1232, 1233, 5, 68, 0, 0, 1233, 1234, 5, 73, 0, 0, 1234, 1235, 5, 86, 0, 0, 1235, 158, 1, 0, 0, 0, 1236, 1237, 5, 68, 0, 0, 1237, 1238, 5, 82, 0, 0, 1238, 1239, 5, 79, 0, 0, 1239, 1240, 5, 80, 0, 0, 1240, 160, 1, 0, 0, 0, 1241, 1242, 5, 69, 0, 0, 1242, 1243, 5, 76, 0, 0, 1243, 1244, 5, 83, 0, 0, 1244, 1245, 5, 69, 0, 0, 1245, 162, 1, 0, 0, 0, 1246, 1247, 5, 69, 0, 0, 1247, 1248, 5, 78, 0, 0, 1248, 1249, 5, 68, 0, 0, 1249, 164, 1, 0, 0, 0, 1250, 1251, 5, 69, 0, 0, 1251, 1252, 5, 83, 0, 0, 1252, 1253, 5, 67, 0, 0, 1253, 1254, 5, 65, 0, 0, 1254, 1255, 5, 80, 0, 0, 1255, 1256, 5, 69, 0, 0, 1256, 166, 1, 0, 0, 0, 1257, 1258, 5, 69, 0, 0, 1258, 1259, 5, 83, 0, 0, 1259, 1260, 5, 67, 0, 0, 1260, 1261, 5, 65, 0, 0, 1261, 1262, 5, 80, 0, 0, 1262, 1263, 5, 69, 0, 0, 1263, 1264, 5, 68, 0, 0, 1264, 168, 1, 0, 0, 0, 1265, 1266, 5, 69, 0, 0, 1266, 1267, 5, 88, 0, 0, 1267, 1268, 5, 67, 0, 0, 1268, 1269, 5, 69, 0, 0, 1269, 1270, 5, 80, 0, 0, 1270, 1271, 5, 84, 0, 0, 1271, 170, 1, 0, 0, 0, 1272, 1273, 5, 69, 0, 0, 1273, 1274, 5, 88, 0, 0, 1274, 1275, 5, 67, 0, 0, 1275, 1276, 5, 72, 0, 0, 1276, 1277, 5, 65, 0, 0, 1277, 1278, 5, 78, 0, 0, 1278, 1279, 5, 71, 0, 0, 1279, 1280, 5, 69, 0, 0, 1280, 172, 1, 0, 0, 0, 1281, 1282, 5, 69, 0, 0, 1282, 1283, 5, 88, 0, 0, 1283, 1284, 5, 73, 0, 0, 1284, 1285, 5, 83, 0, 0, 1285, 1286, 5, 84, 0, 0, 1286, 1287, 5, 83, 0, 0, 1287, 174, 1, 0, 0, 0, 1288, 1289, 5, 69, 0, 0, 1289, 1290, 5, 88, 0, 0, 1290, 1291, 5, 80, 0, 0, 1291, 1292, 5, 76, 0, 0, 1292, 1293, 5, 65, 0, 0, 1293, 1294, 5, 73, 0, 0, 1294, 1295, 5, 78, 0, 0, 1295, 176, 1, 0, 0, 0, 1296, 1297, 5, 69, 0, 0, 1297, 1298, 5, 88, 0, 0, 1298, 1299, 5, 80, 0, 0, 1299, 1300, 5, 79, 0, 0, 1300, 1301, 5, 82, 0, 0, 1301, 1302, 5, 84, 0, 0, 1302, 178, 1, 0, 0, 0, 1303, 1304, 5, 69, 0, 0, 1304, 1305, 5, 88, 0, 0, 1305, 1306, 5, 84, 0, 0, 1306, 1307, 5, 69, 0, 0, 1307, 1308, 5, 78, 0, 0, 1308, 1309, 5, 68, 0, 0, 1309, 1310, 5, 69, 0, 0, 1310, 1311, 5, 68, 0, 0, 1311, 180, 1, 0, 0, 0, 1312, 1313, 5, 69, 0, 0, 1313, 1314, 5, 88, 0, 0, 1314, 1315, 5, 84, 0, 0, 1315, 1316, 5, 69, 0, 0, 1316, 1317, 5, 82, 0, 0, 1317, 1318, 5, 78, 0, 0, 1318, 1319, 5, 65, 0, 0, 1319, 1320, 5, 76, 0, 0, 1320, 182, 1, 0, 0, 0, 1321, 1322, 5, 69, 0, 0, 1322, 1323, 5, 88, 0, 0, 1323, 1324, 5, 84, 0, 0, 1324, 1325, 5, 82, 0, 0, 1325, 1326, 5, 65, 0, 0, 1326, 1327, 5, 67, 0, 0, 1327, 1328, 5, 84, 0, 0, 1328, 184, 1, 0, 0, 0, 1329, 1330, 5, 70, 0, 0, 1330, 1331, 5, 65, 0, 0, 1331, 1332, 5, 76, 0, 0, 1332, 1333, 5, 83, 0, 0, 1333, 1334, 5, 69, 0, 0, 1334, 186, 1, 0, 0, 0, 1335, 1336, 5, 70, 0, 0, 1336, 1337, 5, 69, 0, 0, 1337, 1338, 5, 84, 0, 0, 1338, 1339, 5, 67, 0, 0, 1339, 1340, 5, 72, 0, 0, 1340, 188, 1, 0, 0, 0, 1341, 1342, 5, 70, 0, 0, 1342, 1343, 5, 73, 0, 0, 1343, 1344, 5, 69, 0, 0, 1344, 1345, 5, 76, 0, 0, 1345, 1346, 5, 68, 0, 0, 1346, 1347, 5, 83, 0, 0, 1347, 190, 1, 0, 0, 0, 1348, 1349, 5, 70, 0, 0, 1349, 1350, 5, 73, 0, 0, 1350, 1351, 5, 76, 0, 0, 1351, 1352, 5, 84, 0, 0, 1352, 1353, 5, 69, 0, 0, 1353, 1354, 5, 82, 0, 0, 1354, 192, 1, 0, 0, 0, 1355, 1356, 5, 70, 0, 0, 1356, 1357, 5, 73, 0, 0, 1357, 1358, 5, 76, 0, 0, 1358, 1359, 5, 69, 0, 0, 1359, 1360, 5, 70, 0, 0, 1360, 1361, 5, 79, 0, 0, 1361, 1362, 5, 82, 0, 0, 1362, 1363, 5, 77, 0, 0, 1363, 1364, 5, 65, 0, 0, 1364, 1365, 5, 84, 0, 0, 1365, 194, 1, 0, 0, 0, 1366, 1367, 5, 70, 0, 0, 1367, 1368, 5, 73, 0, 0, 1368, 1369, 5, 82, 0, 0, 1369, 1370, 5, 83, 0, 0, 1370, 1371, 5, 84, 0, 0, 1371, 196, 1, 0, 0, 0, 1372, 1373, 5, 70, 0, 0, 1373, 1374, 5, 79, 0, 0, 1374, 1375, 5, 76, 0, 0, 1375, 1376, 5, 76, 0, 0, 1376, 1377, 5, 79, 0, 0, 1377, 1378, 5, 87, 0, 0, 1378, 1379, 5, 73, 0, 0, 1379, 1380, 5, 78, 0, 0, 1380, 1381, 5, 71, 0, 0, 1381, 198, 1, 0, 0, 0, 1382, 1383, 5, 70, 0, 0, 1383, 1384, 5, 79, 0, 0, 1384, 1385, 5, 82, 0, 0, 1385, 200, 1, 0, 0, 0, 1386, 1387, 5, 70, 0, 0, 1387, 1388, 5, 79, 0, 0, 1388, 1389, 5, 82, 0, 0, 1389, 1390, 5, 69, 0, 0, 1390, 1391, 5, 73, 0, 0, 1391, 1392, 5, 71, 0, 0, 1392, 1393, 5, 78, 0, 0, 1393, 202, 1, 0, 0, 0, 1394, 1395, 5, 70, 0, 0, 1395, 1396, 5, 79, 0, 0, 1396, 1397, 5, 82, 0, 0, 1397, 1398, 5, 77, 0, 0, 1398, 1399, 5, 65, 0, 0, 1399, 1400, 5, 84, 0, 0, 1400, 204, 1, 0, 0, 0, 1401, 1402, 5, 70, 0, 0, 1402, 1403, 5, 79, 0, 0, 1403, 1404, 5, 82, 0, 0, 1404, 1405, 5, 77, 0, 0, 1405, 1406, 5, 65, 0, 0, 1406, 1407, 5, 84, 0, 0, 1407, 1408, 5, 84, 0, 0, 1408, 1409, 5, 69, 0, 0, 1409, 1410, 5, 68, 0, 0, 1410, 206, 1, 0, 0, 0, 1411, 1412, 5, 70, 0, 0, 1412, 1413, 5, 82, 0, 0, 1413, 1414, 5, 79, 0, 0, 1414, 1415, 5, 77, 0, 0, 1415, 208, 1, 0, 0, 0, 1416, 1417, 5, 70, 0, 0, 1417, 1418, 5, 85, 0, 0, 1418, 1419, 5, 76, 0, 0, 1419, 1420, 5, 76, 0, 0, 1420, 210, 1, 0, 0, 0, 1421, 1422, 5, 70, 0, 0, 1422, 1423, 5, 85, 0, 0, 1423, 1424, 5, 78, 0, 0, 1424, 1425, 5, 67, 0, 0, 1425, 1426, 5, 84, 0, 0, 1426, 1427, 5, 73, 0, 0, 1427, 1428, 5, 79, 0, 0, 1428, 1429, 5, 78, 0, 0, 1429, 212, 1, 0, 0, 0, 1430, 1431, 5, 70, 0, 0, 1431, 1432, 5, 85, 0, 0, 1432, 1433, 5, 78, 0, 0, 1433, 1434, 5, 67, 0, 0, 1434, 1435, 5, 84, 0, 0, 1435, 1436, 5, 73, 0, 0, 1436, 1437, 5, 79, 0, 0, 1437, 1438, 5, 78, 0, 0, 1438, 1439, 5, 83, 0, 0, 1439, 214, 1, 0, 0, 0, 1440, 1441, 5, 71, 0, 0, 1441, 1442, 5, 76, 0, 0, 1442, 1443, 5, 79, 0, 0, 1443, 1444, 5, 66, 0, 0, 1444, 1445, 5, 65, 0, 0, 1445, 1446, 5, 76, 0, 0, 1446, 216, 1, 0, 0, 0, 1447, 1448, 5, 71, 0, 0, 1448, 1449, 5, 82, 0, 0, 1449, 1450, 5, 65, 0, 0, 1450, 1451, 5, 78, 0, 0, 1451, 1452, 5, 84, 0, 0, 1452, 218, 1, 0, 0, 0, 1453, 1454, 5, 71, 0, 0, 1454, 1455, 5, 82, 0, 0, 1455, 1456, 5, 79, 0, 0, 1456, 1457, 5, 85, 0, 0, 1457, 1458, 5, 80, 0, 0, 1458, 220, 1, 0, 0, 0, 1459, 1460, 5, 71, 0, 0, 1460, 1461, 5, 82, 0, 0, 1461, 1462, 5, 79, 0, 0, 1462, 1463, 5, 85, 0, 0, 1463, 1464, 5, 80, 0, 0, 1464, 1465, 5, 73, 0, 0, 1465, 1466, 5, 78, 0, 0, 1466, 1467, 5, 71, 0, 0, 1467, 222, 1, 0, 0, 0, 1468, 1469, 5, 72, 0, 0, 1469, 1470, 5, 65, 0, 0, 1470, 1471, 5, 86, 0, 0, 1471, 1472, 5, 73, 0, 0, 1472, 1473, 5, 78, 0, 0, 1473, 1474, 5, 71, 0, 0, 1474, 224, 1, 0, 0, 0, 1475, 1476, 5, 72, 0, 0, 1476, 1477, 5, 79, 0, 0, 1477, 1478, 5, 85, 0, 0, 1478, 1479, 5, 82, 0, 0, 1479, 226, 1, 0, 0, 0, 1480, 1481, 5, 73, 0, 0, 1481, 1482, 5, 70, 0, 0, 1482, 228, 1, 0, 0, 0, 1483, 1484, 5, 73, 0, 0, 1484, 1485, 5, 71, 0, 0, 1485, 1486, 5, 78, 0, 0, 1486, 1487, 5, 79, 0, 0, 1487, 1488, 5, 82, 0, 0, 1488, 1489, 5, 69, 0, 0, 1489, 230, 1, 0, 0, 0, 1490, 1491, 5, 73, 0, 0, 1491, 1492, 5, 77, 0, 0, 1492, 1493, 5, 80, 0, 0, 1493, 1494, 5, 79, 0, 0, 1494, 1495, 5, 82, 0, 0, 1495, 1496, 5, 84, 0, 0, 1496, 232, 1, 0, 0, 0, 1497, 1498, 5, 73, 0, 0, 1498, 1499, 5, 78, 0, 0, 1499, 234, 1, 0, 0, 0, 1500, 1501, 5, 73, 0, 0, 1501, 1502, 5, 78, 0, 0, 1502, 1503, 5, 68, 0, 0, 1503, 1504, 5, 69, 0, 0, 1504, 1505, 5, 88, 0, 0, 1505, 236, 1, 0, 0, 0, 1506, 1507, 5, 73, 0, 0, 1507, 1508, 5, 78, 0, 0, 1508, 1509, 5, 68, 0, 0, 1509, 1510, 5, 69, 0, 0, 1510, 1511, 5, 88, 0, 0, 1511, 1512, 5, 69, 0, 0, 1512, 1513, 5, 83, 0, 0, 1513, 238, 1, 0, 0, 0, 1514, 1515, 5, 73, 0, 0, 1515, 1516, 5, 78, 0, 0, 1516, 1517, 5, 78, 0, 0, 1517, 1518, 5, 69, 0, 0, 1518, 1519, 5, 82, 0, 0, 1519, 240, 1, 0, 0, 0, 1520, 1521, 5, 73, 0, 0, 1521, 1522, 5, 78, 0, 0, 1522, 1523, 5, 80, 0, 0, 1523, 1524, 5, 65, 0, 0, 1524, 1525, 5, 84, 0, 0, 1525, 1526, 5, 72, 0, 0, 1526, 242, 1, 0, 0, 0, 1527, 1528, 5, 73, 0, 0, 1528, 1529, 5, 78, 0, 0, 1529, 1530, 5, 80, 0, 0, 1530, 1531, 5, 85, 0, 0, 1531, 1532, 5, 84, 0, 0, 1532, 1533, 5, 70, 0, 0, 1533, 1534, 5, 79, 0, 0, 1534, 1535, 5, 82, 0, 0, 1535, 1536, 5, 77, 0, 0, 1536, 1537, 5, 65, 0, 0, 1537, 1538, 5, 84, 0, 0, 1538, 244, 1, 0, 0, 0, 1539, 1540, 5, 73, 0, 0, 1540, 1541, 5, 78, 0, 0, 1541, 1542, 5, 83, 0, 0, 1542, 1543, 5, 69, 0, 0, 1543, 1544, 5, 82, 0, 0, 1544, 1545, 5, 84, 0, 0, 1545, 246, 1, 0, 0, 0, 1546, 1547, 5, 73, 0, 0, 1547, 1548, 5, 78, 0, 0, 1548, 1549, 5, 84, 0, 0, 1549, 1550, 5, 69, 0, 0, 1550, 1551, 5, 82, 0, 0, 1551, 1552, 5, 83, 0, 0, 1552, 1553, 5, 69, 0, 0, 1553, 1554, 5, 67, 0, 0, 1554, 1555, 5, 84, 0, 0, 1555, 248, 1, 0, 0, 0, 1556, 1557, 5, 73, 0, 0, 1557, 1558, 5, 78, 0, 0, 1558, 1559, 5, 84, 0, 0, 1559, 1560, 5, 69, 0, 0, 1560, 1561, 5, 82, 0, 0, 1561, 1562, 5, 86, 0, 0, 1562, 1563, 5, 65, 0, 0, 1563, 1564, 5, 76, 0, 0, 1564, 250, 1, 0, 0, 0, 1565, 1566, 5, 73, 0, 0, 1566, 1567, 5, 78, 0, 0, 1567, 1568, 5, 84, 0, 0, 1568, 1569, 5, 79, 0, 0, 1569, 252, 1, 0, 0, 0, 1570, 1571, 5, 73, 0, 0, 1571, 1572, 5, 83, 0, 0, 1572, 254, 1, 0, 0, 0, 1573, 1574, 5, 73, 0, 0, 1574, 1575, 5, 84, 0, 0, 1575, 1576, 5, 69, 0, 0, 1576, 1577, 5, 77, 0, 0, 1577, 1578, 5, 83, 0, 0, 1578, 256, 1, 0, 0, 0, 1579, 1580, 5, 74, 0, 0, 1580, 1581, 5, 79, 0, 0, 1581, 1582, 5, 73, 0, 0, 1582, 1583, 5, 78, 0, 0, 1583, 258, 1, 0, 0, 0, 1584, 1585, 5, 75, 0, 0, 1585, 1586, 5, 69, 0, 0, 1586, 1587, 5, 89, 0, 0, 1587, 1588, 5, 83, 0, 0, 1588, 260, 1, 0, 0, 0, 1589, 1590, 5, 76, 0, 0, 1590, 1591, 5, 65, 0, 0, 1591, 1592, 5, 83, 0, 0, 1592, 1593, 5, 84, 0, 0, 1593, 262, 1, 0, 0, 0, 1594, 1595, 5, 76, 0, 0, 1595, 1596, 5, 65, 0, 0, 1596, 1597, 5, 84, 0, 0, 1597, 1598, 5, 69, 0, 0, 1598, 1599, 5, 82, 0, 0, 1599, 1600, 5, 65, 0, 0, 1600, 1601, 5, 76, 0, 0, 1601, 264, 1, 0, 0, 0, 1602, 1603, 5, 76, 0, 0, 1603, 1604, 5, 65, 0, 0, 1604, 1605, 5, 90, 0, 0, 1605, 1606, 5, 89, 0, 0, 1606, 266, 1, 0, 0, 0, 1607, 1608, 5, 76, 0, 0, 1608, 1609, 5, 69, 0, 0, 1609, 1610, 5, 65, 0, 0, 1610, 1611, 5, 68, 0, 0, 1611, 1612, 5, 73, 0, 0, 1612, 1613, 5, 78, 0, 0, 1613, 1614, 5, 71, 0, 0, 1614, 268, 1, 0, 0, 0, 1615, 1616, 5, 76, 0, 0, 1616, 1617, 5, 69, 0, 0, 1617, 1618, 5, 70, 0, 0, 1618, 1619, 5, 84, 0, 0, 1619, 270, 1, 0, 0, 0, 1620, 1621, 5, 76, 0, 0, 1621, 1622, 5, 73, 0, 0, 1622, 1623, 5, 75, 0, 0, 1623, 1624, 5, 69, 0, 0, 1624, 272, 1, 0, 0, 0, 1625, 1626, 5, 73, 0, 0, 1626, 1627, 5, 76, 0, 0, 1627, 1628, 5, 73, 0, 0, 1628, 1629, 5, 75, 0, 0, 1629, 1630, 5, 69, 0, 0, 1630, 274, 1, 0, 0, 0, 1631, 1632, 5, 76, 0, 0, 1632, 1633, 5, 73, 0, 0, 1633, 1634, 5, 77, 0, 0, 1634, 1635, 5, 73, 0, 0, 1635, 1636, 5, 84, 0, 0, 1636, 276, 1, 0, 0, 0, 1637, 1638, 5, 76, 0, 0, 1638, 1639, 5, 73, 0, 0, 1639, 1640, 5, 78, 0, 0, 1640, 1641, 5, 69, 0, 0, 1641, 1642, 5, 83, 0, 0, 1642, 278, 1, 0, 0, 0, 1643, 1644, 5, 76, 0, 0, 1644, 1645, 5, 73, 0, 0, 1645, 1646, 5, 83, 0, 0, 1646, 1647, 5, 84, 0, 0, 1647, 280, 1, 0, 0, 0, 1648, 1649, 5, 76, 0, 0, 1649, 1650, 5, 79, 0, 0, 1650, 1651, 5, 65, 0, 0, 1651, 1652, 5, 68, 0, 0, 1652, 282, 1, 0, 0, 0, 1653, 1654, 5, 76, 0, 0, 1654, 1655, 5, 79, 0, 0, 1655, 1656, 5, 67, 0, 0, 1656, 1657, 5, 65, 0, 0, 1657, 1658, 5, 76, 0, 0, 1658, 284, 1, 0, 0, 0, 1659, 1660, 5, 76, 0, 0, 1660, 1661, 5, 79, 0, 0, 1661, 1662, 5, 67, 0, 0, 1662, 1663, 5, 65, 0, 0, 1663, 1664, 5, 84, 0, 0, 1664, 1665, 5, 73, 0, 0, 1665, 1666, 5, 79, 0, 0, 1666, 1667, 5, 78, 0, 0, 1667, 286, 1, 0, 0, 0, 1668, 1669, 5, 76, 0, 0, 1669, 1670, 5, 79, 0, 0, 1670, 1671, 5, 67, 0, 0, 1671, 1672, 5, 75, 0, 0, 1672, 288, 1, 0, 0, 0, 1673, 1674, 5, 76, 0, 0, 1674, 1675, 5, 79, 0, 0, 1675, 1676, 5, 67, 0, 0, 1676, 1677, 5, 75, 0, 0, 1677, 1678, 5, 83, 0, 0, 1678, 290, 1, 0, 0, 0, 1679, 1680, 5, 76, 0, 0, 1680, 1681, 5, 79, 0, 0, 1681, 1682, 5, 71, 0, 0, 1682, 1683, 5, 73, 0, 0, 1683, 1684, 5, 67, 0, 0, 1684, 1685, 5, 65, 0, 0, 1685, 1686, 5, 76, 0, 0, 1686, 292, 1, 0, 0, 0, 1687, 1688, 5, 77, 0, 0, 1688, 1689, 5, 65, 0, 0, 1689, 1690, 5, 67, 0, 0, 1690, 1691, 5, 82, 0, 0, 1691, 1692, 5, 79, 0, 0, 1692, 294, 1, 0, 0, 0, 1693, 1694, 5, 77, 0, 0, 1694, 1695, 5, 65, 0, 0, 1695, 1696, 5, 80, 0, 0, 1696, 296, 1, 0, 0, 0, 1697, 1698, 5, 77, 0, 0, 1698, 1699, 5, 65, 0, 0, 1699, 1700, 5, 84, 0, 0, 1700, 1701, 5, 67, 0, 0, 1701, 1702, 5, 72, 0, 0, 1702, 1703, 5, 69, 0, 0, 1703, 1704, 5, 68, 0, 0, 1704, 298, 1, 0, 0, 0, 1705, 1706, 5, 77, 0, 0, 1706, 1707, 5, 69, 0, 0, 1707, 1708, 5, 82, 0, 0, 1708, 1709, 5, 71, 0, 0, 1709, 1710, 5, 69, 0, 0, 1710, 300, 1, 0, 0, 0, 1711, 1712, 5, 77, 0, 0, 1712, 1713, 5, 73, 0, 0, 1713, 1714, 5, 67, 0, 0, 1714, 1715, 5, 82, 0, 0, 1715, 1716, 5, 79, 0, 0, 1716, 1717, 5, 83, 0, 0, 1717, 1718, 5, 69, 0, 0, 1718, 1719, 5, 67, 0, 0, 1719, 1720, 5, 79, 0, 0, 1720, 1721, 5, 78, 0, 0, 1721, 1722, 5, 68, 0, 0, 1722, 302, 1, 0, 0, 0, 1723, 1724, 5, 77, 0, 0, 1724, 1725, 5, 73, 0, 0, 1725, 1726, 5, 76, 0, 0, 1726, 1727, 5, 76, 0, 0, 1727, 1728, 5, 73, 0, 0, 1728, 1729, 5, 83, 0, 0, 1729, 1730, 5, 69, 0, 0, 1730, 1731, 5, 67, 0, 0, 1731, 1732, 5, 79, 0, 0, 1732, 1733, 5, 78, 0, 0, 1733, 1734, 5, 68, 0, 0, 1734, 304, 1, 0, 0, 0, 1735, 1736, 5, 77, 0, 0, 1736, 1737, 5, 73, 0, 0, 1737, 1738, 5, 78, 0, 0, 1738, 1739, 5, 85, 0, 0, 1739, 1740, 5, 84, 0, 0, 1740, 1741, 5, 69, 0, 0, 1741, 306, 1, 0, 0, 0, 1742, 1743, 5, 77, 0, 0, 1743, 1744, 5, 79, 0, 0, 1744, 1745, 5, 78, 0, 0, 1745, 1746, 5, 84, 0, 0, 1746, 1747, 5, 72, 0, 0, 1747, 308, 1, 0, 0, 0, 1748, 1749, 5, 77, 0, 0, 1749, 1750, 5, 83, 0, 0, 1750, 1751, 5, 67, 0, 0, 1751, 1752, 5, 75, 0, 0, 1752, 310, 1, 0, 0, 0, 1753, 1754, 5, 78, 0, 0, 1754, 1755, 5, 65, 0, 0, 1755, 1756, 5, 77, 0, 0, 1756, 1757, 5, 69, 0, 0, 1757, 1758, 5, 83, 0, 0, 1758, 1759, 5, 80, 0, 0, 1759, 1760, 5, 65, 0, 0, 1760, 1761, 5, 67, 0, 0, 1761, 1762, 5, 69, 0, 0, 1762, 312, 1, 0, 0, 0, 1763, 1764, 5, 78, 0, 0, 1764, 1765, 5, 65, 0, 0, 1765, 1766, 5, 77, 0, 0, 1766, 1767, 5, 69, 0, 0, 1767, 1768, 5, 83, 0, 0, 1768, 1769, 5, 80, 0, 0, 1769, 1770, 5, 65, 0, 0, 1770, 1771, 5, 67, 0, 0, 1771, 1772, 5, 69, 0, 0, 1772, 1773, 5, 83, 0, 0, 1773, 314, 1, 0, 0, 0, 1774, 1775, 5, 78, 0, 0, 1775, 1776, 5, 65, 0, 0, 1776, 1777, 5, 84, 0, 0, 1777, 1778, 5, 85, 0, 0, 1778, 1779, 5, 82, 0, 0, 1779, 1780, 5, 65, 0, 0, 1780, 1781, 5, 76, 0, 0, 1781, 316, 1, 0, 0, 0, 1782, 1783, 5, 78, 0, 0, 1783, 1784, 5, 79, 0, 0, 1784, 318, 1, 0, 0, 0, 1785, 1786, 5, 78, 0, 0, 1786, 1787, 5, 79, 0, 0, 1787, 1790, 5, 84, 0, 0, 1788, 1790, 5, 33, 0, 0, 1789, 1785, 1, 0, 0, 0, 1789, 1788, 1, 0, 0, 0, 1790, 320, 1, 0, 0, 0, 1791, 1792, 5, 78, 0, 0, 1792, 1793, 5, 85, 0, 0, 1793, 1794, 5, 76, 0, 0, 1794, 1795, 5, 76, 0, 0, 1795, 322, 1, 0, 0, 0, 1796, 1797, 5, 78, 0, 0, 1797, 1798, 5, 85, 0, 0, 1798, 1799, 5, 76, 0, 0, 1799, 1800, 5, 76, 0, 0, 1800, 1801, 5, 83, 0, 0, 1801, 324, 1, 0, 0, 0, 1802, 1803, 5, 79, 0, 0, 1803, 1804, 5, 70, 0, 0, 1804, 326, 1, 0, 0, 0, 1805, 1806, 5, 79, 0, 0, 1806, 1807, 5, 70, 0, 0, 1807, 1808, 5, 70, 0, 0, 1808, 1809, 5, 83, 0, 0, 1809, 1810, 5, 69, 0, 0, 1810, 1811, 5, 84, 0, 0, 1811, 328, 1, 0, 0, 0, 1812, 1813, 5, 79, 0, 0, 1813, 1814, 5, 78, 0, 0, 1814, 330, 1, 0, 0, 0, 1815, 1816, 5, 79, 0, 0, 1816, 1817, 5, 78, 0, 0, 1817, 1818, 5, 76, 0, 0, 1818, 1819, 5, 89, 0, 0, 1819, 332, 1, 0, 0, 0, 1820, 1821, 5, 79, 0, 0, 1821, 1822, 5, 80, 0, 0, 1822, 1823, 5, 84, 0, 0, 1823, 1824, 5, 73, 0, 0, 1824, 1825, 5, 79, 0, 0, 1825, 1826, 5, 78, 0, 0, 1826, 334, 1, 0, 0, 0, 1827, 1828, 5, 79, 0, 0, 1828, 1829, 5, 80, 0, 0, 1829, 1830, 5, 84, 0, 0, 1830, 1831, 5, 73, 0, 0, 1831, 1832, 5, 79, 0, 0, 1832, 1833, 5, 78, 0, 0, 1833, 1834, 5, 83, 0, 0, 1834, 336, 1, 0, 0, 0, 1835, 1836, 5, 79, 0, 0, 1836, 1837, 5, 82, 0, 0, 1837, 338, 1, 0, 0, 0, 1838, 1839, 5, 79, 0, 0, 1839, 1840, 5, 82, 0, 0, 1840, 1841, 5, 68, 0, 0, 1841, 1842, 5, 69, 0, 0, 1842, 1843, 5, 82, 0, 0, 1843, 340, 1, 0, 0, 0, 1844, 1845, 5, 79, 0, 0, 1845, 1846, 5, 85, 0, 0, 1846, 1847, 5, 84, 0, 0, 1847, 342, 1, 0, 0, 0, 1848, 1849, 5, 79, 0, 0, 1849, 1850, 5, 85, 0, 0, 1850, 1851, 5, 84, 0, 0, 1851, 1852, 5, 69, 0, 0, 1852, 1853, 5, 82, 0, 0, 1853, 344, 1, 0, 0, 0, 1854, 1855, 5, 79, 0, 0, 1855, 1856, 5, 85, 0, 0, 1856, 1857, 5, 84, 0, 0, 1857, 1858, 5, 80, 0, 0, 1858, 1859, 5, 85, 0, 0, 1859, 1860, 5, 84, 0, 0, 1860, 1861, 5, 70, 0, 0, 1861, 1862, 5, 79, 0, 0, 1862, 1863, 5, 82, 0, 0, 1863, 1864, 5, 77, 0, 0, 1864, 1865, 5, 65, 0, 0, 1865, 1866, 5, 84, 0, 0, 1866, 346, 1, 0, 0, 0, 1867, 1868, 5, 79, 0, 0, 1868, 1869, 5, 86, 0, 0, 1869, 1870, 5, 69, 0, 0, 1870, 1871, 5, 82, 0, 0, 1871, 348, 1, 0, 0, 0, 1872, 1873, 5, 79, 0, 0, 1873, 1874, 5, 86, 0, 0, 1874, 1875, 5, 69, 0, 0, 1875, 1876, 5, 82, 0, 0, 1876, 1877, 5, 76, 0, 0, 1877, 1878, 5, 65, 0, 0, 1878, 1879, 5, 80, 0, 0, 1879, 1880, 5, 83, 0, 0, 1880, 350, 1, 0, 0, 0, 1881, 1882, 5, 79, 0, 0, 1882, 1883, 5, 86, 0, 0, 1883, 1884, 5, 69, 0, 0, 1884, 1885, 5, 82, 0, 0, 1885, 1886, 5, 76, 0, 0, 1886, 1887, 5, 65, 0, 0, 1887, 1888, 5, 89, 0, 0, 1888, 352, 1, 0, 0, 0, 1889, 1890, 5, 79, 0, 0, 1890, 1891, 5, 86, 0, 0, 1891, 1892, 5, 69, 0, 0, 1892, 1893, 5, 82, 0, 0, 1893, 1894, 5, 87, 0, 0, 1894, 1895, 5, 82, 0, 0, 1895, 1896, 5, 73, 0, 0, 1896, 1897, 5, 84, 0, 0, 1897, 1898, 5, 69, 0, 0, 1898, 354, 1, 0, 0, 0, 1899, 1900, 5, 80, 0, 0, 1900, 1901, 5, 65, 0, 0, 1901, 1902, 5, 82, 0, 0, 1902, 1903, 5, 84, 0, 0, 1903, 1904, 5, 73, 0, 0, 1904, 1905, 5, 84, 0, 0, 1905, 1906, 5, 73, 0, 0, 1906, 1907, 5, 79, 0, 0, 1907, 1908, 5, 78, 0, 0, 1908, 356, 1, 0, 0, 0, 1909, 1910, 5, 80, 0, 0, 1910, 1911, 5, 65, 0, 0, 1911, 1912, 5, 82, 0, 0, 1912, 1913, 5, 84, 0, 0, 1913, 1914, 5, 73, 0, 0, 1914, 1915, 5, 84, 0, 0, 1915, 1916, 5, 73, 0, 0, 1916, 1917, 5, 79, 0, 0, 1917, 1918, 5, 78, 0, 0, 1918, 1919, 5, 69, 0, 0, 1919, 1920, 5, 68, 0, 0, 1920, 358, 1, 0, 0, 0, 1921, 1922, 5, 80, 0, 0, 1922, 1923, 5, 65, 0, 0, 1923, 1924, 5, 82, 0, 0, 1924, 1925, 5, 84, 0, 0, 1925, 1926, 5, 73, 0, 0, 1926, 1927, 5, 84, 0, 0, 1927, 1928, 5, 73, 0, 0, 1928, 1929, 5, 79, 0, 0, 1929, 1930, 5, 78, 0, 0, 1930, 1931, 5, 83, 0, 0, 1931, 360, 1, 0, 0, 0, 1932, 1933, 5, 80, 0, 0, 1933, 1934, 5, 69, 0, 0, 1934, 1935, 5, 82, 0, 0, 1935, 1936, 5, 67, 0, 0, 1936, 1937, 5, 69, 0, 0, 1937, 1938, 5, 78, 0, 0, 1938, 1939, 5, 84, 0, 0, 1939, 1940, 5, 73, 0, 0, 1940, 1941, 5, 76, 0, 0, 1941, 1942, 5, 69, 0, 0, 1942, 1943, 5, 95, 0, 0, 1943, 1944, 5, 67, 0, 0, 1944, 1945, 5, 79, 0, 0, 1945, 1946, 5, 78, 0, 0, 1946, 1947, 5, 84, 0, 0, 1947, 362, 1, 0, 0, 0, 1948, 1949, 5, 80, 0, 0, 1949, 1950, 5, 69, 0, 0, 1950, 1951, 5, 82, 0, 0, 1951, 1952, 5, 67, 0, 0, 1952, 1953, 5, 69, 0, 0, 1953, 1954, 5, 78, 0, 0, 1954, 1955, 5, 84, 0, 0, 1955, 1956, 5, 73, 0, 0, 1956, 1957, 5, 76, 0, 0, 1957, 1958, 5, 69, 0, 0, 1958, 1959, 5, 95, 0, 0, 1959, 1960, 5, 68, 0, 0, 1960, 1961, 5, 73, 0, 0, 1961, 1962, 5, 83, 0, 0, 1962, 1963, 5, 67, 0, 0, 1963, 364, 1, 0, 0, 0, 1964, 1965, 5, 80, 0, 0, 1965, 1966, 5, 69, 0, 0, 1966, 1967, 5, 82, 0, 0, 1967, 1968, 5, 67, 0, 0, 1968, 1969, 5, 69, 0, 0, 1969, 1970, 5, 78, 0, 0, 1970, 1971, 5, 84, 0, 0, 1971, 366, 1, 0, 0, 0, 1972, 1973, 5, 80, 0, 0, 1973, 1974, 5, 73, 0, 0, 1974, 1975, 5, 86, 0, 0, 1975, 1976, 5, 79, 0, 0, 1976, 1977, 5, 84, 0, 0, 1977, 368, 1, 0, 0, 0, 1978, 1979, 5, 80, 0, 0, 1979, 1980, 5, 76, 0, 0, 1980, 1981, 5, 65, 0, 0, 1981, 1982, 5, 67, 0, 0, 1982, 1983, 5, 73, 0, 0, 1983, 1984, 5, 78, 0, 0, 1984, 1985, 5, 71, 0, 0, 1985, 370, 1, 0, 0, 0, 1986, 1987, 5, 80, 0, 0, 1987, 1988, 5, 79, 0, 0, 1988, 1989, 5, 83, 0, 0, 1989, 1990, 5, 73, 0, 0, 1990, 1991, 5, 84, 0, 0, 1991, 1992, 5, 73, 0, 0, 1992, 1993, 5, 79, 0, 0, 1993, 1994, 5, 78, 0, 0, 1994, 372, 1, 0, 0, 0, 1995, 1996, 5, 80, 0, 0, 1996, 1997, 5, 82, 0, 0, 1997, 1998, 5, 69, 0, 0, 1998, 1999, 5, 67, 0, 0, 1999, 2000, 5, 69, 0, 0, 2000, 2001, 5, 68, 0, 0, 2001, 2002, 5, 73, 0, 0, 2002, 2003, 5, 78, 0, 0, 2003, 2004, 5, 71, 0, 0, 2004, 374, 1, 0, 0, 0, 2005, 2006, 5, 80, 0, 0, 2006, 2007, 5, 82, 0, 0, 2007, 2008, 5, 73, 0, 0, 2008, 2009, 5, 77, 0, 0, 2009, 2010, 5, 65, 0, 0, 2010, 2011, 5, 82, 0, 0, 2011, 2012, 5, 89, 0, 0, 2012, 376, 1, 0, 0, 0, 2013, 2014, 5, 80, 0, 0, 2014, 2015, 5, 82, 0, 0, 2015, 2016, 5, 73, 0, 0, 2016, 2017, 5, 78, 0, 0, 2017, 2018, 5, 67, 0, 0, 2018, 2019, 5, 73, 0, 0, 2019, 2020, 5, 80, 0, 0, 2020, 2021, 5, 65, 0, 0, 2021, 2022, 5, 76, 0, 0, 2022, 2023, 5, 83, 0, 0, 2023, 378, 1, 0, 0, 0, 2024, 2025, 5, 80, 0, 0, 2025, 2026, 5, 82, 0, 0, 2026, 2027, 5, 79, 0, 0, 2027, 2028, 5, 80, 0, 0, 2028, 2029, 5, 69, 0, 0, 2029, 2030, 5, 82, 0, 0, 2030, 2031, 5, 84, 0, 0, 2031, 2032, 5, 73, 0, 0, 2032, 2033, 5, 69, 0, 0, 2033, 2034, 5, 83, 0, 0, 2034, 380, 1, 0, 0, 0, 2035, 2036, 5, 80, 0, 0, 2036, 2037, 5, 85, 0, 0, 2037, 2038, 5, 82, 0, 0, 2038, 2039, 5, 71, 0, 0, 2039, 2040, 5, 69, 0, 0, 2040, 382, 1, 0, 0, 0, 2041, 2042, 5, 81, 0, 0, 2042, 2043, 5, 85, 0, 0, 2043, 2044, 5, 65, 0, 0, 2044, 2045, 5, 82, 0, 0, 2045, 2046, 5, 84, 0, 0, 2046, 2047, 5, 69, 0, 0, 2047, 2048, 5, 82, 0, 0, 2048, 384, 1, 0, 0, 0, 2049, 2050, 5, 81, 0, 0, 2050, 2051, 5, 85, 0, 0, 2051, 2052, 5, 69, 0, 0, 2052, 2053, 5, 82, 0, 0, 2053, 2054, 5, 89, 0, 0, 2054, 386, 1, 0, 0, 0, 2055, 2056, 5, 82, 0, 0, 2056, 2057, 5, 65, 0, 0, 2057, 2058, 5, 78, 0, 0, 2058, 2059, 5, 71, 0, 0, 2059, 2060, 5, 69, 0, 0, 2060, 388, 1, 0, 0, 0, 2061, 2062, 5, 82, 0, 0, 2062, 2063, 5, 69, 0, 0, 2063, 2064, 5, 67, 0, 0, 2064, 2065, 5, 79, 0, 0, 2065, 2066, 5, 82, 0, 0, 2066, 2067, 5, 68, 0, 0, 2067, 2068, 5, 82, 0, 0, 2068, 2069, 5, 69, 0, 0, 2069, 2070, 5, 65, 0, 0, 2070, 2071, 5, 68, 0, 0, 2071, 2072, 5, 69, 0, 0, 2072, 2073, 5, 82, 0, 0, 2073, 390, 1, 0, 0, 0, 2074, 2075, 5, 82, 0, 0, 2075, 2076, 5, 69, 0, 0, 2076, 2077, 5, 67, 0, 0, 2077, 2078, 5, 79, 0, 0, 2078, 2079, 5, 82, 0, 0, 2079, 2080, 5, 68, 0, 0, 2080, 2081, 5, 87, 0, 0, 2081, 2082, 5, 82, 0, 0, 2082, 2083, 5, 73, 0, 0, 2083, 2084, 5, 84, 0, 0, 2084, 2085, 5, 69, 0, 0, 2085, 2086, 5, 82, 0, 0, 2086, 392, 1, 0, 0, 0, 2087, 2088, 5, 82, 0, 0, 2088, 2089, 5, 69, 0, 0, 2089, 2090, 5, 67, 0, 0, 2090, 2091, 5, 79, 0, 0, 2091, 2092, 5, 86, 0, 0, 2092, 2093, 5, 69, 0, 0, 2093, 2094, 5, 82, 0, 0, 2094, 394, 1, 0, 0, 0, 2095, 2096, 5, 82, 0, 0, 2096, 2097, 5, 69, 0, 0, 2097, 2098, 5, 68, 0, 0, 2098, 2099, 5, 85, 0, 0, 2099, 2100, 5, 67, 0, 0, 2100, 2101, 5, 69, 0, 0, 2101, 396, 1, 0, 0, 0, 2102, 2103, 5, 82, 0, 0, 2103, 2104, 5, 69, 0, 0, 2104, 2105, 5, 70, 0, 0, 2105, 2106, 5, 69, 0, 0, 2106, 2107, 5, 82, 0, 0, 2107, 2108, 5, 69, 0, 0, 2108, 2109, 5, 78, 0, 0, 2109, 2110, 5, 67, 0, 0, 2110, 2111, 5, 69, 0, 0, 2111, 2112, 5, 83, 0, 0, 2112, 398, 1, 0, 0, 0, 2113, 2114, 5, 82, 0, 0, 2114, 2115, 5, 69, 0, 0, 2115, 2116, 5, 70, 0, 0, 2116, 2117, 5, 82, 0, 0, 2117, 2118, 5, 69, 0, 0, 2118, 2119, 5, 83, 0, 0, 2119, 2120, 5, 72, 0, 0, 2120, 400, 1, 0, 0, 0, 2121, 2122, 5, 82, 0, 0, 2122, 2123, 5, 69, 0, 0, 2123, 2124, 5, 78, 0, 0, 2124, 2125, 5, 65, 0, 0, 2125, 2126, 5, 77, 0, 0, 2126, 2127, 5, 69, 0, 0, 2127, 402, 1, 0, 0, 0, 2128, 2129, 5, 82, 0, 0, 2129, 2130, 5, 69, 0, 0, 2130, 2131, 5, 80, 0, 0, 2131, 2132, 5, 65, 0, 0, 2132, 2133, 5, 73, 0, 0, 2133, 2134, 5, 82, 0, 0, 2134, 404, 1, 0, 0, 0, 2135, 2136, 5, 82, 0, 0, 2136, 2137, 5, 69, 0, 0, 2137, 2138, 5, 80, 0, 0, 2138, 2139, 5, 69, 0, 0, 2139, 2140, 5, 65, 0, 0, 2140, 2141, 5, 84, 0, 0, 2141, 2142, 5, 65, 0, 0, 2142, 2143, 5, 66, 0, 0, 2143, 2144, 5, 76, 0, 0, 2144, 2145, 5, 69, 0, 0, 2145, 406, 1, 0, 0, 0, 2146, 2147, 5, 82, 0, 0, 2147, 2148, 5, 69, 0, 0, 2148, 2149, 5, 80, 0, 0, 2149, 2150, 5, 76, 0, 0, 2150, 2151, 5, 65, 0, 0, 2151, 2152, 5, 67, 0, 0, 2152, 2153, 5, 69, 0, 0, 2153, 408, 1, 0, 0, 0, 2154, 2155, 5, 82, 0, 0, 2155, 2156, 5, 69, 0, 0, 2156, 2157, 5, 83, 0, 0, 2157, 2158, 5, 69, 0, 0, 2158, 2159, 5, 84, 0, 0, 2159, 410, 1, 0, 0, 0, 2160, 2161, 5, 82, 0, 0, 2161, 2162, 5, 69, 0, 0, 2162, 2163, 5, 83, 0, 0, 2163, 2164, 5, 80, 0, 0, 2164, 2165, 5, 69, 0, 0, 2165, 2166, 5, 67, 0, 0, 2166, 2167, 5, 84, 0, 0, 2167, 412, 1, 0, 0, 0, 2168, 2169, 5, 82, 0, 0, 2169, 2170, 5, 69, 0, 0, 2170, 2171, 5, 83, 0, 0, 2171, 2172, 5, 84, 0, 0, 2172, 2173, 5, 82, 0, 0, 2173, 2174, 5, 73, 0, 0, 2174, 2175, 5, 67, 0, 0, 2175, 2176, 5, 84, 0, 0, 2176, 414, 1, 0, 0, 0, 2177, 2178, 5, 82, 0, 0, 2178, 2179, 5, 69, 0, 0, 2179, 2180, 5, 86, 0, 0, 2180, 2181, 5, 79, 0, 0, 2181, 2182, 5, 75, 0, 0, 2182, 2183, 5, 69, 0, 0, 2183, 416, 1, 0, 0, 0, 2184, 2185, 5, 82, 0, 0, 2185, 2186, 5, 73, 0, 0, 2186, 2187, 5, 71, 0, 0, 2187, 2188, 5, 72, 0, 0, 2188, 2189, 5, 84, 0, 0, 2189, 418, 1, 0, 0, 0, 2190, 2191, 5, 82, 0, 0, 2191, 2192, 5, 76, 0, 0, 2192, 2193, 5, 73, 0, 0, 2193, 2194, 5, 75, 0, 0, 2194, 2202, 5, 69, 0, 0, 2195, 2196, 5, 82, 0, 0, 2196, 2197, 5, 69, 0, 0, 2197, 2198, 5, 71, 0, 0, 2198, 2199, 5, 69, 0, 0, 2199, 2200, 5, 88, 0, 0, 2200, 2202, 5, 80, 0, 0, 2201, 2190, 1, 0, 0, 0, 2201, 2195, 1, 0, 0, 0, 2202, 420, 1, 0, 0, 0, 2203, 2204, 5, 82, 0, 0, 2204, 2205, 5, 79, 0, 0, 2205, 2206, 5, 76, 0, 0, 2206, 2207, 5, 69, 0, 0, 2207, 422, 1, 0, 0, 0, 2208, 2209, 5, 82, 0, 0, 2209, 2210, 5, 79, 0, 0, 2210, 2211, 5, 76, 0, 0, 2211, 2212, 5, 69, 0, 0, 2212, 2213, 5, 83, 0, 0, 2213, 424, 1, 0, 0, 0, 2214, 2215, 5, 82, 0, 0, 2215, 2216, 5, 79, 0, 0, 2216, 2217, 5, 76, 0, 0, 2217, 2218, 5, 76, 0, 0, 2218, 2219, 5, 66, 0, 0, 2219, 2220, 5, 65, 0, 0, 2220, 2221, 5, 67, 0, 0, 2221, 2222, 5, 75, 0, 0, 2222, 426, 1, 0, 0, 0, 2223, 2224, 5, 82, 0, 0, 2224, 2225, 5, 79, 0, 0, 2225, 2226, 5, 76, 0, 0, 2226, 2227, 5, 76, 0, 0, 2227, 2228, 5, 85, 0, 0, 2228, 2229, 5, 80, 0, 0, 2229, 428, 1, 0, 0, 0, 2230, 2231, 5, 82, 0, 0, 2231, 2232, 5, 79, 0, 0, 2232, 2233, 5, 87, 0, 0, 2233, 430, 1, 0, 0, 0, 2234, 2235, 5, 82, 0, 0, 2235, 2236, 5, 79, 0, 0, 2236, 2237, 5, 87, 0, 0, 2237, 2238, 5, 83, 0, 0, 2238, 432, 1, 0, 0, 0, 2239, 2240, 5, 83, 0, 0, 2240, 2241, 5, 69, 0, 0, 2241, 2242, 5, 67, 0, 0, 2242, 2243, 5, 79, 0, 0, 2243, 2244, 5, 78, 0, 0, 2244, 2245, 5, 68, 0, 0, 2245, 434, 1, 0, 0, 0, 2246, 2247, 5, 83, 0, 0, 2247, 2248, 5, 67, 0, 0, 2248, 2249, 5, 72, 0, 0, 2249, 2250, 5, 69, 0, 0, 2250, 2251, 5, 77, 0, 0, 2251, 2252, 5, 65, 0, 0, 2252, 436, 1, 0, 0, 0, 2253, 2254, 5, 83, 0, 0, 2254, 2255, 5, 67, 0, 0, 2255, 2256, 5, 72, 0, 0, 2256, 2257, 5, 69, 0, 0, 2257, 2258, 5, 77, 0, 0, 2258, 2259, 5, 65, 0, 0, 2259, 2260, 5, 83, 0, 0, 2260, 438, 1, 0, 0, 0, 2261, 2262, 5, 83, 0, 0, 2262, 2263, 5, 69, 0, 0, 2263, 2264, 5, 76, 0, 0, 2264, 2265, 5, 69, 0, 0, 2265, 2266, 5, 67, 0, 0, 2266, 2267, 5, 84, 0, 0, 2267, 440, 1, 0, 0, 0, 2268, 2269, 5, 83, 0, 0, 2269, 2270, 5, 69, 0, 0, 2270, 2271, 5, 77, 0, 0, 2271, 2272, 5, 73, 0, 0, 2272, 442, 1, 0, 0, 0, 2273, 2274, 5, 83, 0, 0, 2274, 2275, 5, 69, 0, 0, 2275, 2276, 5, 80, 0, 0, 2276, 2277, 5, 65, 0, 0, 2277, 2278, 5, 82, 0, 0, 2278, 2279, 5, 65, 0, 0, 2279, 2280, 5, 84, 0, 0, 2280, 2281, 5, 69, 0, 0, 2281, 2282, 5, 68, 0, 0, 2282, 444, 1, 0, 0, 0, 2283, 2284, 5, 83, 0, 0, 2284, 2285, 5, 69, 0, 0, 2285, 2286, 5, 82, 0, 0, 2286, 2287, 5, 68, 0, 0, 2287, 2288, 5, 69, 0, 0, 2288, 446, 1, 0, 0, 0, 2289, 2290, 5, 83, 0, 0, 2290, 2291, 5, 69, 0, 0, 2291, 2292, 5, 82, 0, 0, 2292, 2293, 5, 68, 0, 0, 2293, 2294, 5, 69, 0, 0, 2294, 2295, 5, 80, 0, 0, 2295, 2296, 5, 82, 0, 0, 2296, 2297, 5, 79, 0, 0, 2297, 2298, 5, 80, 0, 0, 2298, 2299, 5, 69, 0, 0, 2299, 2300, 5, 82, 0, 0, 2300, 2301, 5, 84, 0, 0, 2301, 2302, 5, 73, 0, 0, 2302, 2303, 5, 69, 0, 0, 2303, 2304, 5, 83, 0, 0, 2304, 448, 1, 0, 0, 0, 2305, 2306, 5, 83, 0, 0, 2306, 2307, 5, 69, 0, 0, 2307, 2308, 5, 83, 0, 0, 2308, 2309, 5, 83, 0, 0, 2309, 2310, 5, 73, 0, 0, 2310, 2311, 5, 79, 0, 0, 2311, 2312, 5, 78, 0, 0, 2312, 2313, 5, 95, 0, 0, 2313, 2314, 5, 85, 0, 0, 2314, 2315, 5, 83, 0, 0, 2315, 2316, 5, 69, 0, 0, 2316, 2317, 5, 82, 0, 0, 2317, 450, 1, 0, 0, 0, 2318, 2319, 5, 83, 0, 0, 2319, 2320, 5, 69, 0, 0, 2320, 2321, 5, 84, 0, 0, 2321, 452, 1, 0, 0, 0, 2322, 2323, 5, 77, 0, 0, 2323, 2324, 5, 73, 0, 0, 2324, 2325, 5, 78, 0, 0, 2325, 2326, 5, 85, 0, 0, 2326, 2327, 5, 83, 0, 0, 2327, 454, 1, 0, 0, 0, 2328, 2329, 5, 83, 0, 0, 2329, 2330, 5, 69, 0, 0, 2330, 2331, 5, 84, 0, 0, 2331, 2332, 5, 83, 0, 0, 2332, 456, 1, 0, 0, 0, 2333, 2334, 5, 83, 0, 0, 2334, 2335, 5, 72, 0, 0, 2335, 2336, 5, 79, 0, 0, 2336, 2337, 5, 87, 0, 0, 2337, 458, 1, 0, 0, 0, 2338, 2339, 5, 83, 0, 0, 2339, 2340, 5, 75, 0, 0, 2340, 2341, 5, 69, 0, 0, 2341, 2342, 5, 87, 0, 0, 2342, 2343, 5, 69, 0, 0, 2343, 2344, 5, 68, 0, 0, 2344, 460, 1, 0, 0, 0, 2345, 2346, 5, 83, 0, 0, 2346, 2347, 5, 79, 0, 0, 2347, 2348, 5, 77, 0, 0, 2348, 2349, 5, 69, 0, 0, 2349, 462, 1, 0, 0, 0, 2350, 2351, 5, 83, 0, 0, 2351, 2352, 5, 79, 0, 0, 2352, 2353, 5, 82, 0, 0, 2353, 2354, 5, 84, 0, 0, 2354, 464, 1, 0, 0, 0, 2355, 2356, 5, 83, 0, 0, 2356, 2357, 5, 79, 0, 0, 2357, 2358, 5, 82, 0, 0, 2358, 2359, 5, 84, 0, 0, 2359, 2360, 5, 69, 0, 0, 2360, 2361, 5, 68, 0, 0, 2361, 466, 1, 0, 0, 0, 2362, 2363, 5, 83, 0, 0, 2363, 2364, 5, 84, 0, 0, 2364, 2365, 5, 65, 0, 0, 2365, 2366, 5, 82, 0, 0, 2366, 2367, 5, 84, 0, 0, 2367, 468, 1, 0, 0, 0, 2368, 2369, 5, 83, 0, 0, 2369, 2370, 5, 84, 0, 0, 2370, 2371, 5, 65, 0, 0, 2371, 2372, 5, 84, 0, 0, 2372, 2373, 5, 73, 0, 0, 2373, 2374, 5, 83, 0, 0, 2374, 2375, 5, 84, 0, 0, 2375, 2376, 5, 73, 0, 0, 2376, 2377, 5, 67, 0, 0, 2377, 2378, 5, 83, 0, 0, 2378, 470, 1, 0, 0, 0, 2379, 2380, 5, 83, 0, 0, 2380, 2381, 5, 84, 0, 0, 2381, 2382, 5, 79, 0, 0, 2382, 2383, 5, 82, 0, 0, 2383, 2384, 5, 69, 0, 0, 2384, 2385, 5, 68, 0, 0, 2385, 472, 1, 0, 0, 0, 2386, 2387, 5, 83, 0, 0, 2387, 2388, 5, 84, 0, 0, 2388, 2389, 5, 82, 0, 0, 2389, 2390, 5, 65, 0, 0, 2390, 2391, 5, 84, 0, 0, 2391, 2392, 5, 73, 0, 0, 2392, 2393, 5, 70, 0, 0, 2393, 2394, 5, 89, 0, 0, 2394, 474, 1, 0, 0, 0, 2395, 2396, 5, 83, 0, 0, 2396, 2397, 5, 84, 0, 0, 2397, 2398, 5, 82, 0, 0, 2398, 2399, 5, 85, 0, 0, 2399, 2400, 5, 67, 0, 0, 2400, 2401, 5, 84, 0, 0, 2401, 476, 1, 0, 0, 0, 2402, 2403, 5, 83, 0, 0, 2403, 2404, 5, 85, 0, 0, 2404, 2405, 5, 66, 0, 0, 2405, 2406, 5, 83, 0, 0, 2406, 2407, 5, 84, 0, 0, 2407, 2408, 5, 82, 0, 0, 2408, 478, 1, 0, 0, 0, 2409, 2410, 5, 83, 0, 0, 2410, 2411, 5, 85, 0, 0, 2411, 2412, 5, 66, 0, 0, 2412, 2413, 5, 83, 0, 0, 2413, 2414, 5, 84, 0, 0, 2414, 2415, 5, 82, 0, 0, 2415, 2416, 5, 73, 0, 0, 2416, 2417, 5, 78, 0, 0, 2417, 2418, 5, 71, 0, 0, 2418, 480, 1, 0, 0, 0, 2419, 2420, 5, 83, 0, 0, 2420, 2421, 5, 89, 0, 0, 2421, 2422, 5, 78, 0, 0, 2422, 2423, 5, 67, 0, 0, 2423, 482, 1, 0, 0, 0, 2424, 2425, 5, 83, 0, 0, 2425, 2426, 5, 89, 0, 0, 2426, 2427, 5, 83, 0, 0, 2427, 2428, 5, 84, 0, 0, 2428, 2429, 5, 69, 0, 0, 2429, 2430, 5, 77, 0, 0, 2430, 2431, 5, 95, 0, 0, 2431, 2432, 5, 84, 0, 0, 2432, 2433, 5, 73, 0, 0, 2433, 2434, 5, 77, 0, 0, 2434, 2435, 5, 69, 0, 0, 2435, 484, 1, 0, 0, 0, 2436, 2437, 5, 83, 0, 0, 2437, 2438, 5, 89, 0, 0, 2438, 2439, 5, 83, 0, 0, 2439, 2440, 5, 84, 0, 0, 2440, 2441, 5, 69, 0, 0, 2441, 2442, 5, 77, 0, 0, 2442, 2443, 5, 95, 0, 0, 2443, 2444, 5, 86, 0, 0, 2444, 2445, 5, 69, 0, 0, 2445, 2446, 5, 82, 0, 0, 2446, 2447, 5, 83, 0, 0, 2447, 2448, 5, 73, 0, 0, 2448, 2449, 5, 79, 0, 0, 2449, 2450, 5, 78, 0, 0, 2450, 486, 1, 0, 0, 0, 2451, 2452, 5, 84, 0, 0, 2452, 2453, 5, 65, 0, 0, 2453, 2454, 5, 66, 0, 0, 2454, 2455, 5, 76, 0, 0, 2455, 2456, 5, 69, 0, 0, 2456, 488, 1, 0, 0, 0, 2457, 2458, 5, 84, 0, 0, 2458, 2459, 5, 65, 0, 0, 2459, 2460, 5, 66, 0, 0, 2460, 2461, 5, 76, 0, 0, 2461, 2462, 5, 69, 0, 0, 2462, 2463, 5, 83, 0, 0, 2463, 490, 1, 0, 0, 0, 2464, 2465, 5, 84, 0, 0, 2465, 2466, 5, 65, 0, 0, 2466, 2467, 5, 66, 0, 0, 2467, 2468, 5, 76, 0, 0, 2468, 2469, 5, 69, 0, 0, 2469, 2470, 5, 83, 0, 0, 2470, 2471, 5, 65, 0, 0, 2471, 2472, 5, 77, 0, 0, 2472, 2473, 5, 80, 0, 0, 2473, 2474, 5, 76, 0, 0, 2474, 2475, 5, 69, 0, 0, 2475, 492, 1, 0, 0, 0, 2476, 2477, 5, 84, 0, 0, 2477, 2478, 5, 66, 0, 0, 2478, 2479, 5, 76, 0, 0, 2479, 2480, 5, 80, 0, 0, 2480, 2481, 5, 82, 0, 0, 2481, 2482, 5, 79, 0, 0, 2482, 2483, 5, 80, 0, 0, 2483, 2484, 5, 69, 0, 0, 2484, 2485, 5, 82, 0, 0, 2485, 2486, 5, 84, 0, 0, 2486, 2487, 5, 73, 0, 0, 2487, 2488, 5, 69, 0, 0, 2488, 2489, 5, 83, 0, 0, 2489, 494, 1, 0, 0, 0, 2490, 2491, 5, 84, 0, 0, 2491, 2492, 5, 69, 0, 0, 2492, 2493, 5, 77, 0, 0, 2493, 2494, 5, 80, 0, 0, 2494, 2495, 5, 79, 0, 0, 2495, 2496, 5, 82, 0, 0, 2496, 2497, 5, 65, 0, 0, 2497, 2498, 5, 82, 0, 0, 2498, 2504, 5, 89, 0, 0, 2499, 2500, 5, 84, 0, 0, 2500, 2501, 5, 69, 0, 0, 2501, 2502, 5, 77, 0, 0, 2502, 2504, 5, 80, 0, 0, 2503, 2490, 1, 0, 0, 0, 2503, 2499, 1, 0, 0, 0, 2504, 496, 1, 0, 0, 0, 2505, 2506, 5, 84, 0, 0, 2506, 2507, 5, 69, 0, 0, 2507, 2508, 5, 82, 0, 0, 2508, 2509, 5, 77, 0, 0, 2509, 2510, 5, 73, 0, 0, 2510, 2511, 5, 78, 0, 0, 2511, 2512, 5, 65, 0, 0, 2512, 2513, 5, 84, 0, 0, 2513, 2514, 5, 69, 0, 0, 2514, 2515, 5, 68, 0, 0, 2515, 498, 1, 0, 0, 0, 2516, 2517, 5, 84, 0, 0, 2517, 2518, 5, 72, 0, 0, 2518, 2519, 5, 69, 0, 0, 2519, 2520, 5, 78, 0, 0, 2520, 500, 1, 0, 0, 0, 2521, 2522, 5, 84, 0, 0, 2522, 2523, 5, 73, 0, 0, 2523, 2524, 5, 77, 0, 0, 2524, 2525, 5, 69, 0, 0, 2525, 502, 1, 0, 0, 0, 2526, 2527, 5, 84, 0, 0, 2527, 2528, 5, 73, 0, 0, 2528, 2529, 5, 77, 0, 0, 2529, 2530, 5, 69, 0, 0, 2530, 2531, 5, 83, 0, 0, 2531, 2532, 5, 84, 0, 0, 2532, 2533, 5, 65, 0, 0, 2533, 2534, 5, 77, 0, 0, 2534, 2535, 5, 80, 0, 0, 2535, 504, 1, 0, 0, 0, 2536, 2537, 5, 84, 0, 0, 2537, 2538, 5, 73, 0, 0, 2538, 2539, 5, 77, 0, 0, 2539, 2540, 5, 69, 0, 0, 2540, 2541, 5, 83, 0, 0, 2541, 2542, 5, 84, 0, 0, 2542, 2543, 5, 65, 0, 0, 2543, 2544, 5, 77, 0, 0, 2544, 2545, 5, 80, 0, 0, 2545, 2546, 5, 65, 0, 0, 2546, 2547, 5, 68, 0, 0, 2547, 2548, 5, 68, 0, 0, 2548, 506, 1, 0, 0, 0, 2549, 2550, 5, 84, 0, 0, 2550, 2551, 5, 73, 0, 0, 2551, 2552, 5, 77, 0, 0, 2552, 2553, 5, 69, 0, 0, 2553, 2554, 5, 83, 0, 0, 2554, 2555, 5, 84, 0, 0, 2555, 2556, 5, 65, 0, 0, 2556, 2557, 5, 77, 0, 0, 2557, 2558, 5, 80, 0, 0, 2558, 2559, 5, 68, 0, 0, 2559, 2560, 5, 73, 0, 0, 2560, 2561, 5, 70, 0, 0, 2561, 2562, 5, 70, 0, 0, 2562, 508, 1, 0, 0, 0, 2563, 2564, 5, 84, 0, 0, 2564, 2565, 5, 79, 0, 0, 2565, 510, 1, 0, 0, 0, 2566, 2567, 5, 84, 0, 0, 2567, 2568, 5, 79, 0, 0, 2568, 2569, 5, 85, 0, 0, 2569, 2570, 5, 67, 0, 0, 2570, 2571, 5, 72, 0, 0, 2571, 512, 1, 0, 0, 0, 2572, 2573, 5, 84, 0, 0, 2573, 2574, 5, 82, 0, 0, 2574, 2575, 5, 65, 0, 0, 2575, 2576, 5, 73, 0, 0, 2576, 2577, 5, 76, 0, 0, 2577, 2578, 5, 73, 0, 0, 2578, 2579, 5, 78, 0, 0, 2579, 2580, 5, 71, 0, 0, 2580, 514, 1, 0, 0, 0, 2581, 2582, 5, 84, 0, 0, 2582, 2583, 5, 82, 0, 0, 2583, 2584, 5, 65, 0, 0, 2584, 2585, 5, 78, 0, 0, 2585, 2586, 5, 83, 0, 0, 2586, 2587, 5, 65, 0, 0, 2587, 2588, 5, 67, 0, 0, 2588, 2589, 5, 84, 0, 0, 2589, 2590, 5, 73, 0, 0, 2590, 2591, 5, 79, 0, 0, 2591, 2592, 5, 78, 0, 0, 2592, 516, 1, 0, 0, 0, 2593, 2594, 5, 84, 0, 0, 2594, 2595, 5, 82, 0, 0, 2595, 2596, 5, 65, 0, 0, 2596, 2597, 5, 78, 0, 0, 2597, 2598, 5, 83, 0, 0, 2598, 2599, 5, 65, 0, 0, 2599, 2600, 5, 67, 0, 0, 2600, 2601, 5, 84, 0, 0, 2601, 2602, 5, 73, 0, 0, 2602, 2603, 5, 79, 0, 0, 2603, 2604, 5, 78, 0, 0, 2604, 2605, 5, 83, 0, 0, 2605, 518, 1, 0, 0, 0, 2606, 2607, 5, 84, 0, 0, 2607, 2608, 5, 82, 0, 0, 2608, 2609, 5, 65, 0, 0, 2609, 2610, 5, 78, 0, 0, 2610, 2611, 5, 83, 0, 0, 2611, 2612, 5, 70, 0, 0, 2612, 2613, 5, 79, 0, 0, 2613, 2614, 5, 82, 0, 0, 2614, 2615, 5, 77, 0, 0, 2615, 520, 1, 0, 0, 0, 2616, 2617, 5, 84, 0, 0, 2617, 2618, 5, 82, 0, 0, 2618, 2619, 5, 73, 0, 0, 2619, 2620, 5, 77, 0, 0, 2620, 522, 1, 0, 0, 0, 2621, 2622, 5, 84, 0, 0, 2622, 2623, 5, 82, 0, 0, 2623, 2624, 5, 85, 0, 0, 2624, 2625, 5, 69, 0, 0, 2625, 524, 1, 0, 0, 0, 2626, 2627, 5, 84, 0, 0, 2627, 2628, 5, 82, 0, 0, 2628, 2629, 5, 85, 0, 0, 2629, 2630, 5, 78, 0, 0, 2630, 2631, 5, 67, 0, 0, 2631, 2632, 5, 65, 0, 0, 2632, 2633, 5, 84, 0, 0, 2633, 2634, 5, 69, 0, 0, 2634, 526, 1, 0, 0, 0, 2635, 2636, 5, 84, 0, 0, 2636, 2637, 5, 82, 0, 0, 2637, 2638, 5, 89, 0, 0, 2638, 2639, 5, 95, 0, 0, 2639, 2640, 5, 67, 0, 0, 2640, 2641, 5, 65, 0, 0, 2641, 2642, 5, 83, 0, 0, 2642, 2643, 5, 84, 0, 0, 2643, 528, 1, 0, 0, 0, 2644, 2645, 5, 84, 0, 0, 2645, 2646, 5, 89, 0, 0, 2646, 2647, 5, 80, 0, 0, 2647, 2648, 5, 69, 0, 0, 2648, 530, 1, 0, 0, 0, 2649, 2650, 5, 85, 0, 0, 2650, 2651, 5, 78, 0, 0, 2651, 2652, 5, 65, 0, 0, 2652, 2653, 5, 82, 0, 0, 2653, 2654, 5, 67, 0, 0, 2654, 2655, 5, 72, 0, 0, 2655, 2656, 5, 73, 0, 0, 2656, 2657, 5, 86, 0, 0, 2657, 2658, 5, 69, 0, 0, 2658, 532, 1, 0, 0, 0, 2659, 2660, 5, 85, 0, 0, 2660, 2661, 5, 78, 0, 0, 2661, 2662, 5, 66, 0, 0, 2662, 2663, 5, 79, 0, 0, 2663, 2664, 5, 85, 0, 0, 2664, 2665, 5, 78, 0, 0, 2665, 2666, 5, 68, 0, 0, 2666, 2667, 5, 69, 0, 0, 2667, 2668, 5, 68, 0, 0, 2668, 534, 1, 0, 0, 0, 2669, 2670, 5, 85, 0, 0, 2670, 2671, 5, 78, 0, 0, 2671, 2672, 5, 67, 0, 0, 2672, 2673, 5, 65, 0, 0, 2673, 2674, 5, 67, 0, 0, 2674, 2675, 5, 72, 0, 0, 2675, 2676, 5, 69, 0, 0, 2676, 536, 1, 0, 0, 0, 2677, 2678, 5, 85, 0, 0, 2678, 2679, 5, 78, 0, 0, 2679, 2680, 5, 73, 0, 0, 2680, 2681, 5, 79, 0, 0, 2681, 2682, 5, 78, 0, 0, 2682, 538, 1, 0, 0, 0, 2683, 2684, 5, 85, 0, 0, 2684, 2685, 5, 78, 0, 0, 2685, 2686, 5, 73, 0, 0, 2686, 2687, 5, 81, 0, 0, 2687, 2688, 5, 85, 0, 0, 2688, 2689, 5, 69, 0, 0, 2689, 540, 1, 0, 0, 0, 2690, 2691, 5, 85, 0, 0, 2691, 2692, 5, 78, 0, 0, 2692, 2693, 5, 75, 0, 0, 2693, 2694, 5, 78, 0, 0, 2694, 2695, 5, 79, 0, 0, 2695, 2696, 5, 87, 0, 0, 2696, 2697, 5, 78, 0, 0, 2697, 542, 1, 0, 0, 0, 2698, 2699, 5, 85, 0, 0, 2699, 2700, 5, 78, 0, 0, 2700, 2701, 5, 76, 0, 0, 2701, 2702, 5, 79, 0, 0, 2702, 2703, 5, 67, 0, 0, 2703, 2704, 5, 75, 0, 0, 2704, 544, 1, 0, 0, 0, 2705, 2706, 5, 85, 0, 0, 2706, 2707, 5, 78, 0, 0, 2707, 2708, 5, 83, 0, 0, 2708, 2709, 5, 69, 0, 0, 2709, 2710, 5, 84, 0, 0, 2710, 546, 1, 0, 0, 0, 2711, 2712, 5, 85, 0, 0, 2712, 2713, 5, 80, 0, 0, 2713, 2714, 5, 68, 0, 0, 2714, 2715, 5, 65, 0, 0, 2715, 2716, 5, 84, 0, 0, 2716, 2717, 5, 69, 0, 0, 2717, 548, 1, 0, 0, 0, 2718, 2719, 5, 85, 0, 0, 2719, 2720, 5, 83, 0, 0, 2720, 2721, 5, 69, 0, 0, 2721, 550, 1, 0, 0, 0, 2722, 2723, 5, 85, 0, 0, 2723, 2724, 5, 83, 0, 0, 2724, 2725, 5, 69, 0, 0, 2725, 2726, 5, 82, 0, 0, 2726, 552, 1, 0, 0, 0, 2727, 2728, 5, 85, 0, 0, 2728, 2729, 5, 83, 0, 0, 2729, 2730, 5, 73, 0, 0, 2730, 2731, 5, 78, 0, 0, 2731, 2732, 5, 71, 0, 0, 2732, 554, 1, 0, 0, 0, 2733, 2734, 5, 86, 0, 0, 2734, 2735, 5, 65, 0, 0, 2735, 2736, 5, 76, 0, 0, 2736, 2737, 5, 85, 0, 0, 2737, 2738, 5, 69, 0, 0, 2738, 2739, 5, 83, 0, 0, 2739, 556, 1, 0, 0, 0, 2740, 2741, 5, 86, 0, 0, 2741, 2742, 5, 69, 0, 0, 2742, 2743, 5, 82, 0, 0, 2743, 2744, 5, 83, 0, 0, 2744, 2745, 5, 73, 0, 0, 2745, 2746, 5, 79, 0, 0, 2746, 2747, 5, 78, 0, 0, 2747, 558, 1, 0, 0, 0, 2748, 2749, 5, 86, 0, 0, 2749, 2750, 5, 73, 0, 0, 2750, 2751, 5, 69, 0, 0, 2751, 2752, 5, 87, 0, 0, 2752, 560, 1, 0, 0, 0, 2753, 2754, 5, 86, 0, 0, 2754, 2755, 5, 73, 0, 0, 2755, 2756, 5, 69, 0, 0, 2756, 2757, 5, 87, 0, 0, 2757, 2758, 5, 83, 0, 0, 2758, 562, 1, 0, 0, 0, 2759, 2760, 5, 87, 0, 0, 2760, 2761, 5, 69, 0, 0, 2761, 2762, 5, 69, 0, 0, 2762, 2763, 5, 75, 0, 0, 2763, 564, 1, 0, 0, 0, 2764, 2765, 5, 87, 0, 0, 2765, 2766, 5, 72, 0, 0, 2766, 2767, 5, 69, 0, 0, 2767, 2768, 5, 78, 0, 0, 2768, 566, 1, 0, 0, 0, 2769, 2770, 5, 87, 0, 0, 2770, 2771, 5, 72, 0, 0, 2771, 2772, 5, 69, 0, 0, 2772, 2773, 5, 82, 0, 0, 2773, 2774, 5, 69, 0, 0, 2774, 568, 1, 0, 0, 0, 2775, 2776, 5, 87, 0, 0, 2776, 2777, 5, 73, 0, 0, 2777, 2778, 5, 78, 0, 0, 2778, 2779, 5, 68, 0, 0, 2779, 2780, 5, 79, 0, 0, 2780, 2781, 5, 87, 0, 0, 2781, 570, 1, 0, 0, 0, 2782, 2783, 5, 87, 0, 0, 2783, 2784, 5, 73, 0, 0, 2784, 2785, 5, 84, 0, 0, 2785, 2786, 5, 72, 0, 0, 2786, 572, 1, 0, 0, 0, 2787, 2788, 5, 87, 0, 0, 2788, 2789, 5, 73, 0, 0, 2789, 2790, 5, 84, 0, 0, 2790, 2791, 5, 72, 0, 0, 2791, 2792, 5, 73, 0, 0, 2792, 2793, 5, 78, 0, 0, 2793, 574, 1, 0, 0, 0, 2794, 2795, 5, 89, 0, 0, 2795, 2796, 5, 69, 0, 0, 2796, 2797, 5, 65, 0, 0, 2797, 2798, 5, 82, 0, 0, 2798, 576, 1, 0, 0, 0, 2799, 2800, 5, 90, 0, 0, 2800, 2801, 5, 79, 0, 0, 2801, 2802, 5, 78, 0, 0, 2802, 2803, 5, 69, 0, 0, 2803, 578, 1, 0, 0, 0, 2804, 2808, 5, 61, 0, 0, 2805, 2806, 5, 61, 0, 0, 2806, 2808, 5, 61, 0, 0, 2807, 2804, 1, 0, 0, 0, 2807, 2805, 1, 0, 0, 0, 2808, 580, 1, 0, 0, 0, 2809, 2810, 5, 60, 0, 0, 2810, 2811, 5, 61, 0, 0, 2811, 2812, 5, 62, 0, 0, 2812, 582, 1, 0, 0, 0, 2813, 2814, 5, 60, 0, 0, 2814, 2815, 5, 62, 0, 0, 2815, 584, 1, 0, 0, 0, 2816, 2817, 5, 33, 0, 0, 2817, 2818, 5, 61, 0, 0, 2818, 586, 1, 0, 0, 0, 2819, 2820, 5, 60, 0, 0, 2820, 588, 1, 0, 0, 0, 2821, 2822, 5, 60, 0, 0, 2822, 2826, 5, 61, 0, 0, 2823, 2824, 5, 33, 0, 0, 2824, 2826, 5, 62, 0, 0, 2825, 2821, 1, 0, 0, 0, 2825, 2823, 1, 0, 0, 0, 2826, 590, 1, 0, 0, 0, 2827, 2828, 5, 62, 0, 0, 2828, 592, 1, 0, 0, 0, 2829, 2830, 5, 62, 0, 0, 2830, 2834, 5, 61, 0, 0, 2831, 2832, 5, 33, 0, 0, 2832, 2834, 5, 60, 0, 0, 2833, 2829, 1, 0, 0, 0, 2833, 2831, 1, 0, 0, 0, 2834, 594, 1, 0, 0, 0, 2835, 2836, 5, 43, 0, 0, 2836, 596, 1, 0, 0, 0, 2837, 2838, 5, 45, 0, 0, 2838, 598, 1, 0, 0, 0, 2839, 2840, 5, 42, 0, 0, 2840, 600, 1, 0, 0, 0, 2841, 2842, 5, 47, 0, 0, 2842, 602, 1, 0, 0, 0, 2843, 2844, 5, 37, 0, 0, 2844, 604, 1, 0, 0, 0, 2845, 2846, 5, 126, 0, 0, 2846, 606, 1, 0, 0, 0, 2847, 2848, 5, 38, 0, 0, 2848, 608, 1, 0, 0, 0, 2849, 2850, 5, 124, 0, 0, 2850, 610, 1, 0, 0, 0, 2851, 2852, 5, 124, 0, 0, 2852, 2853, 5, 124, 0, 0, 2853, 612, 1, 0, 0, 0, 2854, 2855, 5, 94, 0, 0, 2855, 614, 1, 0, 0, 0, 2856, 2857, 5, 58, 0, 0, 2857, 616, 1, 0, 0, 0, 2858, 2859, 5, 45, 0, 0, 2859, 2860, 5, 62, 0, 0, 2860, 618, 1, 0, 0, 0, 2861, 2862, 5, 47, 0, 0, 2862, 2863, 5, 42, 0, 0, 2863, 2864, 5, 43, 0, 0, 2864, 620, 1, 0, 0, 0, 2865, 2866, 5, 42, 0, 0, 2866, 2867, 5, 47, 0, 0, 2867, 622, 1, 0, 0, 0, 2868, 2874, 5, 39, 0, 0, 2869, 2873, 8, 0, 0, 0, 2870, 2871, 5, 92, 0, 0, 2871, 2873, 9, 0, 0, 0, 2872, 2869, 1, 0, 0, 0, 2872, 2870, 1, 0, 0, 0, 2873, 2876, 1, 0, 0, 0, 2874, 2872, 1, 0, 0, 0, 2874, 2875, 1, 0, 0, 0, 2875, 2877, 1, 0, 0, 0, 2876, 2874, 1, 0, 0, 0, 2877, 2909, 5, 39, 0, 0, 2878, 2884, 5, 34, 0, 0, 2879, 2883, 8, 1, 0, 0, 2880, 2881, 5, 92, 0, 0, 2881, 2883, 9, 0, 0, 0, 2882, 2879, 1, 0, 0, 0, 2882, 2880, 1, 0, 0, 0, 2883, 2886, 1, 0, 0, 0, 2884, 2882, 1, 0, 0, 0, 2884, 2885, 1, 0, 0, 0, 2885, 2887, 1, 0, 0, 0, 2886, 2884, 1, 0, 0, 0, 2887, 2909, 5, 34, 0, 0, 2888, 2889, 5, 82, 0, 0, 2889, 2890, 5, 39, 0, 0, 2890, 2894, 1, 0, 0, 0, 2891, 2893, 8, 2, 0, 0, 2892, 2891, 1, 0, 0, 0, 2893, 2896, 1, 0, 0, 0, 2894, 2892, 1, 0, 0, 0, 2894, 2895, 1, 0, 0, 0, 2895, 2897, 1, 0, 0, 0, 2896, 2894, 1, 0, 0, 0, 2897, 2909, 5, 39, 0, 0, 2898, 2899, 5, 82, 0, 0, 2899, 2900, 5, 34, 0, 0, 2900, 2904, 1, 0, 0, 0, 2901, 2903, 8, 3, 0, 0, 2902, 2901, 1, 0, 0, 0, 2903, 2906, 1, 0, 0, 0, 2904, 2902, 1, 0, 0, 0, 2904, 2905, 1, 0, 0, 0, 2905, 2907, 1, 0, 0, 0, 2906, 2904, 1, 0, 0, 0, 2907, 2909, 5, 34, 0, 0, 2908, 2868, 1, 0, 0, 0, 2908, 2878, 1, 0, 0, 0, 2908, 2888, 1, 0, 0, 0, 2908, 2898, 1, 0, 0, 0, 2909, 624, 1, 0, 0, 0, 2910, 2912, 3, 651, 325, 0, 2911, 2910, 1, 0, 0, 0, 2912, 2913, 1, 0, 0, 0, 2913, 2911, 1, 0, 0, 0, 2913, 2914, 1, 0, 0, 0, 2914, 2915, 1, 0, 0, 0, 2915, 2916, 5, 76, 0, 0, 2916, 626, 1, 0, 0, 0, 2917, 2919, 3, 651, 325, 0, 2918, 2917, 1, 0, 0, 0, 2919, 2920, 1, 0, 0, 0, 2920, 2918, 1, 0, 0, 0, 2920, 2921, 1, 0, 0, 0, 2921, 2922, 1, 0, 0, 0, 2922, 2923, 5, 83, 0, 0, 2923, 628, 1, 0, 0, 0, 2924, 2926, 3, 651, 325, 0, 2925, 2924, 1, 0, 0, 0, 2926, 2927, 1, 0, 0, 0, 2927, 2925, 1, 0, 0, 0, 2927, 2928, 1, 0, 0, 0, 2928, 2929, 1, 0, 0, 0, 2929, 2930, 5, 89, 0, 0, 2930, 630, 1, 0, 0, 0, 2931, 2933, 3, 651, 325, 0, 2932, 2931, 1, 0, 0, 0, 2933, 2934, 1, 0, 0, 0, 2934, 2932, 1, 0, 0, 0, 2934, 2935, 1, 0, 0, 0, 2935, 632, 1, 0, 0, 0, 2936, 2938, 3, 651, 325, 0, 2937, 2936, 1, 0, 0, 0, 2938, 2939, 1, 0, 0, 0, 2939, 2937, 1, 0, 0, 0, 2939, 2940, 1, 0, 0, 0, 2940, 2941, 1, 0, 0, 0, 2941, 2942, 3, 649, 324, 0, 2942, 2948, 1, 0, 0, 0, 2943, 2944, 3, 647, 323, 0, 2944, 2945, 3, 649, 324, 0, 2945, 2946, 4, 316, 0, 0, 2946, 2948, 1, 0, 0, 0, 2947, 2937, 1, 0, 0, 0, 2947, 2943, 1, 0, 0, 0, 2948, 634, 1, 0, 0, 0, 2949, 2950, 3, 647, 323, 0, 2950, 2951, 4, 317, 1, 0, 2951, 636, 1, 0, 0, 0, 2952, 2954, 3, 651, 325, 0, 2953, 2952, 1, 0, 0, 0, 2954, 2955, 1, 0, 0, 0, 2955, 2953, 1, 0, 0, 0, 2955, 2956, 1, 0, 0, 0, 2956, 2958, 1, 0, 0, 0, 2957, 2959, 3, 649, 324, 0, 2958, 2957, 1, 0, 0, 0, 2958, 2959, 1, 0, 0, 0, 2959, 2960, 1, 0, 0, 0, 2960, 2961, 5, 70, 0, 0, 2961, 2970, 1, 0, 0, 0, 2962, 2964, 3, 647, 323, 0, 2963, 2965, 3, 649, 324, 0, 2964, 2963, 1, 0, 0, 0, 2964, 2965, 1, 0, 0, 0, 2965, 2966, 1, 0, 0, 0, 2966, 2967, 5, 70, 0, 0, 2967, 2968, 4, 318, 2, 0, 2968, 2970, 1, 0, 0, 0, 2969, 2953, 1, 0, 0, 0, 2969, 2962, 1, 0, 0, 0, 2970, 638, 1, 0, 0, 0, 2971, 2973, 3, 651, 325, 0, 2972, 2971, 1, 0, 0, 0, 2973, 2974, 1, 0, 0, 0, 2974, 2972, 1, 0, 0, 0, 2974, 2975, 1, 0, 0, 0, 2975, 2977, 1, 0, 0, 0, 2976, 2978, 3, 649, 324, 0, 2977, 2976, 1, 0, 0, 0, 2977, 2978, 1, 0, 0, 0, 2978, 2979, 1, 0, 0, 0, 2979, 2980, 5, 68, 0, 0, 2980, 2989, 1, 0, 0, 0, 2981, 2983, 3, 647, 323, 0, 2982, 2984, 3, 649, 324, 0, 2983, 2982, 1, 0, 0, 0, 2983, 2984, 1, 0, 0, 0, 2984, 2985, 1, 0, 0, 0, 2985, 2986, 5, 68, 0, 0, 2986, 2987, 4, 319, 3, 0, 2987, 2989, 1, 0, 0, 0, 2988, 2972, 1, 0, 0, 0, 2988, 2981, 1, 0, 0, 0, 2989, 640, 1, 0, 0, 0, 2990, 2992, 3, 651, 325, 0, 2991, 2990, 1, 0, 0, 0, 2992, 2993, 1, 0, 0, 0, 2993, 2991, 1, 0, 0, 0, 2993, 2994, 1, 0, 0, 0, 2994, 2996, 1, 0, 0, 0, 2995, 2997, 3, 649, 324, 0, 2996, 2995, 1, 0, 0, 0, 2996, 2997, 1, 0, 0, 0, 2997, 2998, 1, 0, 0, 0, 2998, 2999, 5, 66, 0, 0, 2999, 3000, 5, 68, 0, 0, 3000, 3011, 1, 0, 0, 0, 3001, 3003, 3, 647, 323, 0, 3002, 3004, 3, 649, 324, 0, 3003, 3002, 1, 0, 0, 0, 3003, 3004, 1, 0, 0, 0, 3004, 3005, 1, 0, 0, 0, 3005, 3006, 5, 66, 0, 0, 3006, 3007, 5, 68, 0, 0, 3007, 3008, 1, 0, 0, 0, 3008, 3009, 4, 320, 4, 0, 3009, 3011, 1, 0, 0, 0, 3010, 2991, 1, 0, 0, 0, 3010, 3001, 1, 0, 0, 0, 3011, 642, 1, 0, 0, 0, 3012, 3016, 3, 653, 326, 0, 3013, 3016, 3, 651, 325, 0, 3014, 3016, 5, 95, 0, 0, 3015, 3012, 1, 0, 0, 0, 3015, 3013, 1, 0, 0, 0, 3015, 3014, 1, 0, 0, 0, 3016, 3017, 1, 0, 0, 0, 3017, 3015, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 644, 1, 0, 0, 0, 3019, 3025, 5, 96, 0, 0, 3020, 3024, 8, 4, 0, 0, 3021, 3022, 5, 96, 0, 0, 3022, 3024, 5, 96, 0, 0, 3023, 3020, 1, 0, 0, 0, 3023, 3021, 1, 0, 0, 0, 3024, 3027, 1, 0, 0, 0, 3025, 3023, 1, 0, 0, 0, 3025, 3026, 1, 0, 0, 0, 3026, 3028, 1, 0, 0, 0, 3027, 3025, 1, 0, 0, 0, 3028, 3029, 5, 96, 0, 0, 3029, 646, 1, 0, 0, 0, 3030, 3032, 3, 651, 325, 0, 3031, 3030, 1, 0, 0, 0, 3032, 3033, 1, 0, 0, 0, 3033, 3031, 1, 0, 0, 0, 3033, 3034, 1, 0, 0, 0, 3034, 3035, 1, 0, 0, 0, 3035, 3039, 5, 46, 0, 0, 3036, 3038, 3, 651, 325, 0, 3037, 3036, 1, 0, 0, 0, 3038, 3041, 1, 0, 0, 0, 3039, 3037, 1, 0, 0, 0, 3039, 3040, 1, 0, 0, 0, 3040, 3049, 1, 0, 0, 0, 3041, 3039, 1, 0, 0, 0, 3042, 3044, 5, 46, 0, 0, 3043, 3045, 3, 651, 325, 0, 3044, 3043, 1, 0, 0, 0, 3045, 3046, 1, 0, 0, 0, 3046, 3044, 1, 0, 0, 0, 3046, 3047, 1, 0, 0, 0, 3047, 3049, 1, 0, 0, 0, 3048, 3031, 1, 0, 0, 0, 3048, 3042, 1, 0, 0, 0, 3049, 648, 1, 0, 0, 0, 3050, 3052, 5, 69, 0, 0, 3051, 3053, 7, 5, 0, 0, 3052, 3051, 1, 0, 0, 0, 3052, 3053, 1, 0, 0, 0, 3053, 3055, 1, 0, 0, 0, 3054, 3056, 3, 651, 325, 0, 3055, 3054, 1, 0, 0, 0, 3056, 3057, 1, 0, 0, 0, 3057, 3055, 1, 0, 0, 0, 3057, 3058, 1, 0, 0, 0, 3058, 650, 1, 0, 0, 0, 3059, 3060, 7, 6, 0, 0, 3060, 652, 1, 0, 0, 0, 3061, 3062, 7, 7, 0, 0, 3062, 654, 1, 0, 0, 0, 3063, 3064, 5, 45, 0, 0, 3064, 3065, 5, 45, 0, 0, 3065, 3071, 1, 0, 0, 0, 3066, 3067, 5, 92, 0, 0, 3067, 3070, 5, 10, 0, 0, 3068, 3070, 8, 8, 0, 0, 3069, 3066, 1, 0, 0, 0, 3069, 3068, 1, 0, 0, 0, 3070, 3073, 1, 0, 0, 0, 3071, 3069, 1, 0, 0, 0, 3071, 3072, 1, 0, 0, 0, 3072, 3075, 1, 0, 0, 0, 3073, 3071, 1, 0, 0, 0, 3074, 3076, 5, 13, 0, 0, 3075, 3074, 1, 0, 0, 0, 3075, 3076, 1, 0, 0, 0, 3076, 3078, 1, 0, 0, 0, 3077, 3079, 5, 10, 0, 0, 3078, 3077, 1, 0, 0, 0, 3078, 3079, 1, 0, 0, 0, 3079, 3080, 1, 0, 0, 0, 3080, 3081, 6, 327, 0, 0, 3081, 656, 1, 0, 0, 0, 3082, 3083, 5, 47, 0, 0, 3083, 3084, 5, 42, 0, 0, 3084, 3085, 1, 0, 0, 0, 3085, 3090, 4, 328, 5, 0, 3086, 3089, 3, 657, 328, 0, 3087, 3089, 9, 0, 0, 0, 3088, 3086, 1, 0, 0, 0, 3088, 3087, 1, 0, 0, 0, 3089, 3092, 1, 0, 0, 0, 3090, 3091, 1, 0, 0, 0, 3090, 3088, 1, 0, 0, 0, 3091, 3097, 1, 0, 0, 0, 3092, 3090, 1, 0, 0, 0, 3093, 3094, 5, 42, 0, 0, 3094, 3098, 5, 47, 0, 0, 3095, 3096, 6, 328, 1, 0, 3096, 3098, 5, 0, 0, 1, 3097, 3093, 1, 0, 0, 0, 3097, 3095, 1, 0, 0, 0, 3098, 3099, 1, 0, 0, 0, 3099, 3100, 6, 328, 0, 0, 3100, 658, 1, 0, 0, 0, 3101, 3103, 7, 9, 0, 0, 3102, 3101, 1, 0, 0, 0, 3103, 3104, 1, 0, 0, 0, 3104, 3102, 1, 0, 0, 0, 3104, 3105, 1, 0, 0, 0, 3105, 3106, 1, 0, 0, 0, 3106, 3107, 6, 329, 0, 0, 3107, 660, 1, 0, 0, 0, 3108, 3109, 9, 0, 0, 0, 3109, 662, 1, 0, 0, 0, 50, 0, 1789, 2201, 2503, 2807, 2825, 2833, 2872, 2874, 2882, 2884, 2894, 2904, 2908, 2913, 2920, 2927, 2934, 2939, 2947, 2955, 2958, 2964, 2969, 2974, 2977, 2983, 2988, 2993, 2996, 3003, 3010, 3015, 3017, 3023, 3025, 3033, 3039, 3046, 3048, 3052, 3057, 3069, 3071, 3075, 3078, 3088, 3090, 3097, 3104, 2, 0, 1, 0, 1, 328, 0] \ No newline at end of file diff --git a/gen/SparkLexer.java b/gen/SparkLexer.java new file mode 100644 index 0000000..a1f4b1b --- /dev/null +++ b/gen/SparkLexer.java @@ -0,0 +1,2382 @@ +// Generated from /Users/duhanmin/IdeaProjects/daima/bigdata-sql-parser/src/main/antlr4/com/github/bigdata/sql/antlr4/spark/SparkLexer.g4 by ANTLR 4.10.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class SparkLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + SEMICOLON=1, LEFT_PAREN=2, RIGHT_PAREN=3, COMMA=4, DOT=5, LEFT_BRACKET=6, + RIGHT_BRACKET=7, ADD=8, AFTER=9, ALL=10, ALTER=11, ANALYZE=12, AND=13, + ANTI=14, ANY=15, ANY_VALUE=16, ARCHIVE=17, ARRAY=18, AS=19, ASC=20, AT=21, + AUTHORIZATION=22, BETWEEN=23, BOTH=24, BUCKET=25, BUCKETS=26, BY=27, CACHE=28, + CASCADE=29, CASE=30, CAST=31, CATALOG=32, CATALOGS=33, CHANGE=34, CHECK=35, + CLEAR=36, CLUSTER=37, CLUSTERED=38, CODEGEN=39, COLLATE=40, COLLECTION=41, + COLUMN=42, COLUMNS=43, COMMENT=44, COMMIT=45, COMPACT=46, COMPACTIONS=47, + COMPUTE=48, CONCATENATE=49, CONSTRAINT=50, COST=51, CREATE=52, CROSS=53, + CUBE=54, CURRENT=55, CURRENT_DATE=56, CURRENT_TIME=57, CURRENT_TIMESTAMP=58, + CURRENT_USER=59, DAY=60, DAYOFYEAR=61, DATA=62, DATABASE=63, DATABASES=64, + DATEADD=65, DATEDIFF=66, DBPROPERTIES=67, DEFAULT=68, DEFINED=69, DELETE=70, + DELIMITED=71, DESC=72, DESCRIBE=73, DFS=74, DIRECTORIES=75, DIRECTORY=76, + DISTINCT=77, DISTRIBUTE=78, DIV=79, DROP=80, ELSE=81, END=82, ESCAPE=83, + ESCAPED=84, EXCEPT=85, EXCHANGE=86, EXISTS=87, EXPLAIN=88, EXPORT=89, + EXTENDED=90, EXTERNAL=91, EXTRACT=92, FALSE=93, FETCH=94, FIELDS=95, FILTER=96, + FILEFORMAT=97, FIRST=98, FOLLOWING=99, FOR=100, FOREIGN=101, FORMAT=102, + FORMATTED=103, FROM=104, FULL=105, FUNCTION=106, FUNCTIONS=107, GLOBAL=108, + GRANT=109, GROUP=110, GROUPING=111, HAVING=112, HOUR=113, IF=114, IGNORE=115, + IMPORT=116, IN=117, INDEX=118, INDEXES=119, INNER=120, INPATH=121, INPUTFORMAT=122, + INSERT=123, INTERSECT=124, INTERVAL=125, INTO=126, IS=127, ITEMS=128, + JOIN=129, KEYS=130, LAST=131, LATERAL=132, LAZY=133, LEADING=134, LEFT=135, + LIKE=136, ILIKE=137, LIMIT=138, LINES=139, LIST=140, LOAD=141, LOCAL=142, + LOCATION=143, LOCK=144, LOCKS=145, LOGICAL=146, MACRO=147, MAP=148, MATCHED=149, + MERGE=150, MICROSECOND=151, MILLISECOND=152, MINUTE=153, MONTH=154, MSCK=155, + NAMESPACE=156, NAMESPACES=157, NATURAL=158, NO=159, NOT=160, NULL=161, + NULLS=162, OF=163, OFFSET=164, ON=165, ONLY=166, OPTION=167, OPTIONS=168, + OR=169, ORDER=170, OUT=171, OUTER=172, OUTPUTFORMAT=173, OVER=174, OVERLAPS=175, + OVERLAY=176, OVERWRITE=177, PARTITION=178, PARTITIONED=179, PARTITIONS=180, + PERCENTILE_CONT=181, PERCENTILE_DISC=182, PERCENTLIT=183, PIVOT=184, PLACING=185, + POSITION=186, PRECEDING=187, PRIMARY=188, PRINCIPALS=189, PROPERTIES=190, + PURGE=191, QUARTER=192, QUERY=193, RANGE=194, RECORDREADER=195, RECORDWRITER=196, + RECOVER=197, REDUCE=198, REFERENCES=199, REFRESH=200, RENAME=201, REPAIR=202, + REPEATABLE=203, REPLACE=204, RESET=205, RESPECT=206, RESTRICT=207, REVOKE=208, + RIGHT=209, RLIKE=210, ROLE=211, ROLES=212, ROLLBACK=213, ROLLUP=214, ROW=215, + ROWS=216, SECOND=217, SCHEMA=218, SCHEMAS=219, SELECT=220, SEMI=221, SEPARATED=222, + SERDE=223, SERDEPROPERTIES=224, SESSION_USER=225, SET=226, SETMINUS=227, + SETS=228, SHOW=229, SKEWED=230, SOME=231, SORT=232, SORTED=233, START=234, + STATISTICS=235, STORED=236, STRATIFY=237, STRUCT=238, SUBSTR=239, SUBSTRING=240, + SYNC=241, SYSTEM_TIME=242, SYSTEM_VERSION=243, TABLE=244, TABLES=245, + TABLESAMPLE=246, TBLPROPERTIES=247, TEMPORARY=248, TERMINATED=249, THEN=250, + TIME=251, TIMESTAMP=252, TIMESTAMPADD=253, TIMESTAMPDIFF=254, TO=255, + TOUCH=256, TRAILING=257, TRANSACTION=258, TRANSACTIONS=259, TRANSFORM=260, + TRIM=261, TRUE=262, TRUNCATE=263, TRY_CAST=264, TYPE=265, UNARCHIVE=266, + UNBOUNDED=267, UNCACHE=268, UNION=269, UNIQUE=270, UNKNOWN=271, UNLOCK=272, + UNSET=273, UPDATE=274, USE=275, USER=276, USING=277, VALUES=278, VERSION=279, + VIEW=280, VIEWS=281, WEEK=282, WHEN=283, WHERE=284, WINDOW=285, WITH=286, + WITHIN=287, YEAR=288, ZONE=289, EQ=290, NSEQ=291, NEQ=292, NEQJ=293, LT=294, + LTE=295, GT=296, GTE=297, PLUS=298, MINUS=299, ASTERISK=300, SLASH=301, + PERCENT=302, TILDE=303, AMPERSAND=304, PIPE=305, CONCAT_PIPE=306, HAT=307, + COLON=308, ARROW=309, HENT_START=310, HENT_END=311, STRING=312, BIGINT_LITERAL=313, + SMALLINT_LITERAL=314, TINYINT_LITERAL=315, INTEGER_VALUE=316, EXPONENT_VALUE=317, + DECIMAL_VALUE=318, FLOAT_LITERAL=319, DOUBLE_LITERAL=320, BIGDECIMAL_LITERAL=321, + IDENTIFIER=322, BACKQUOTED_IDENTIFIER=323, SIMPLE_COMMENT=324, BRACKETED_COMMENT=325, + WS=326, UNRECOGNIZED=327; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "SEMICOLON", "LEFT_PAREN", "RIGHT_PAREN", "COMMA", "DOT", "LEFT_BRACKET", + "RIGHT_BRACKET", "ADD", "AFTER", "ALL", "ALTER", "ANALYZE", "AND", "ANTI", + "ANY", "ANY_VALUE", "ARCHIVE", "ARRAY", "AS", "ASC", "AT", "AUTHORIZATION", + "BETWEEN", "BOTH", "BUCKET", "BUCKETS", "BY", "CACHE", "CASCADE", "CASE", + "CAST", "CATALOG", "CATALOGS", "CHANGE", "CHECK", "CLEAR", "CLUSTER", + "CLUSTERED", "CODEGEN", "COLLATE", "COLLECTION", "COLUMN", "COLUMNS", + "COMMENT", "COMMIT", "COMPACT", "COMPACTIONS", "COMPUTE", "CONCATENATE", + "CONSTRAINT", "COST", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", + "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DAY", "DAYOFYEAR", + "DATA", "DATABASE", "DATABASES", "DATEADD", "DATEDIFF", "DBPROPERTIES", + "DEFAULT", "DEFINED", "DELETE", "DELIMITED", "DESC", "DESCRIBE", "DFS", + "DIRECTORIES", "DIRECTORY", "DISTINCT", "DISTRIBUTE", "DIV", "DROP", + "ELSE", "END", "ESCAPE", "ESCAPED", "EXCEPT", "EXCHANGE", "EXISTS", "EXPLAIN", + "EXPORT", "EXTENDED", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", + "FILTER", "FILEFORMAT", "FIRST", "FOLLOWING", "FOR", "FOREIGN", "FORMAT", + "FORMATTED", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GLOBAL", "GRANT", + "GROUP", "GROUPING", "HAVING", "HOUR", "IF", "IGNORE", "IMPORT", "IN", + "INDEX", "INDEXES", "INNER", "INPATH", "INPUTFORMAT", "INSERT", "INTERSECT", + "INTERVAL", "INTO", "IS", "ITEMS", "JOIN", "KEYS", "LAST", "LATERAL", + "LAZY", "LEADING", "LEFT", "LIKE", "ILIKE", "LIMIT", "LINES", "LIST", + "LOAD", "LOCAL", "LOCATION", "LOCK", "LOCKS", "LOGICAL", "MACRO", "MAP", + "MATCHED", "MERGE", "MICROSECOND", "MILLISECOND", "MINUTE", "MONTH", + "MSCK", "NAMESPACE", "NAMESPACES", "NATURAL", "NO", "NOT", "NULL", "NULLS", + "OF", "OFFSET", "ON", "ONLY", "OPTION", "OPTIONS", "OR", "ORDER", "OUT", + "OUTER", "OUTPUTFORMAT", "OVER", "OVERLAPS", "OVERLAY", "OVERWRITE", + "PARTITION", "PARTITIONED", "PARTITIONS", "PERCENTILE_CONT", "PERCENTILE_DISC", + "PERCENTLIT", "PIVOT", "PLACING", "POSITION", "PRECEDING", "PRIMARY", + "PRINCIPALS", "PROPERTIES", "PURGE", "QUARTER", "QUERY", "RANGE", "RECORDREADER", + "RECORDWRITER", "RECOVER", "REDUCE", "REFERENCES", "REFRESH", "RENAME", + "REPAIR", "REPEATABLE", "REPLACE", "RESET", "RESPECT", "RESTRICT", "REVOKE", + "RIGHT", "RLIKE", "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", + "SECOND", "SCHEMA", "SCHEMAS", "SELECT", "SEMI", "SEPARATED", "SERDE", + "SERDEPROPERTIES", "SESSION_USER", "SET", "SETMINUS", "SETS", "SHOW", + "SKEWED", "SOME", "SORT", "SORTED", "START", "STATISTICS", "STORED", + "STRATIFY", "STRUCT", "SUBSTR", "SUBSTRING", "SYNC", "SYSTEM_TIME", "SYSTEM_VERSION", + "TABLE", "TABLES", "TABLESAMPLE", "TBLPROPERTIES", "TEMPORARY", "TERMINATED", + "THEN", "TIME", "TIMESTAMP", "TIMESTAMPADD", "TIMESTAMPDIFF", "TO", "TOUCH", + "TRAILING", "TRANSACTION", "TRANSACTIONS", "TRANSFORM", "TRIM", "TRUE", + "TRUNCATE", "TRY_CAST", "TYPE", "UNARCHIVE", "UNBOUNDED", "UNCACHE", + "UNION", "UNIQUE", "UNKNOWN", "UNLOCK", "UNSET", "UPDATE", "USE", "USER", + "USING", "VALUES", "VERSION", "VIEW", "VIEWS", "WEEK", "WHEN", "WHERE", + "WINDOW", "WITH", "WITHIN", "YEAR", "ZONE", "EQ", "NSEQ", "NEQ", "NEQJ", + "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK", "SLASH", "PERCENT", + "TILDE", "AMPERSAND", "PIPE", "CONCAT_PIPE", "HAT", "COLON", "ARROW", + "HENT_START", "HENT_END", "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", + "TINYINT_LITERAL", "INTEGER_VALUE", "EXPONENT_VALUE", "DECIMAL_VALUE", + "FLOAT_LITERAL", "DOUBLE_LITERAL", "BIGDECIMAL_LITERAL", "IDENTIFIER", + "BACKQUOTED_IDENTIFIER", "DECIMAL_DIGITS", "EXPONENT", "DIGIT", "LETTER", + "SIMPLE_COMMENT", "BRACKETED_COMMENT", "WS", "UNRECOGNIZED" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "';'", "'('", "')'", "','", "'.'", "'['", "']'", "'ADD'", "'AFTER'", + "'ALL'", "'ALTER'", "'ANALYZE'", "'AND'", "'ANTI'", "'ANY'", "'ANY_VALUE'", + "'ARCHIVE'", "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'AUTHORIZATION'", "'BETWEEN'", + "'BOTH'", "'BUCKET'", "'BUCKETS'", "'BY'", "'CACHE'", "'CASCADE'", "'CASE'", + "'CAST'", "'CATALOG'", "'CATALOGS'", "'CHANGE'", "'CHECK'", "'CLEAR'", + "'CLUSTER'", "'CLUSTERED'", "'CODEGEN'", "'COLLATE'", "'COLLECTION'", + "'COLUMN'", "'COLUMNS'", "'COMMENT'", "'COMMIT'", "'COMPACT'", "'COMPACTIONS'", + "'COMPUTE'", "'CONCATENATE'", "'CONSTRAINT'", "'COST'", "'CREATE'", "'CROSS'", + "'CUBE'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'CURRENT_USER'", "'DAY'", "'DAYOFYEAR'", "'DATA'", "'DATABASE'", "'DATABASES'", + "'DATEADD'", "'DATEDIFF'", "'DBPROPERTIES'", "'DEFAULT'", "'DEFINED'", + "'DELETE'", "'DELIMITED'", "'DESC'", "'DESCRIBE'", "'DFS'", "'DIRECTORIES'", + "'DIRECTORY'", "'DISTINCT'", "'DISTRIBUTE'", "'DIV'", "'DROP'", "'ELSE'", + "'END'", "'ESCAPE'", "'ESCAPED'", "'EXCEPT'", "'EXCHANGE'", "'EXISTS'", + "'EXPLAIN'", "'EXPORT'", "'EXTENDED'", "'EXTERNAL'", "'EXTRACT'", "'FALSE'", + "'FETCH'", "'FIELDS'", "'FILTER'", "'FILEFORMAT'", "'FIRST'", "'FOLLOWING'", + "'FOR'", "'FOREIGN'", "'FORMAT'", "'FORMATTED'", "'FROM'", "'FULL'", + "'FUNCTION'", "'FUNCTIONS'", "'GLOBAL'", "'GRANT'", "'GROUP'", "'GROUPING'", + "'HAVING'", "'HOUR'", "'IF'", "'IGNORE'", "'IMPORT'", "'IN'", "'INDEX'", + "'INDEXES'", "'INNER'", "'INPATH'", "'INPUTFORMAT'", "'INSERT'", "'INTERSECT'", + "'INTERVAL'", "'INTO'", "'IS'", "'ITEMS'", "'JOIN'", "'KEYS'", "'LAST'", + "'LATERAL'", "'LAZY'", "'LEADING'", "'LEFT'", "'LIKE'", "'ILIKE'", "'LIMIT'", + "'LINES'", "'LIST'", "'LOAD'", "'LOCAL'", "'LOCATION'", "'LOCK'", "'LOCKS'", + "'LOGICAL'", "'MACRO'", "'MAP'", "'MATCHED'", "'MERGE'", "'MICROSECOND'", + "'MILLISECOND'", "'MINUTE'", "'MONTH'", "'MSCK'", "'NAMESPACE'", "'NAMESPACES'", + "'NATURAL'", "'NO'", null, "'NULL'", "'NULLS'", "'OF'", "'OFFSET'", "'ON'", + "'ONLY'", "'OPTION'", "'OPTIONS'", "'OR'", "'ORDER'", "'OUT'", "'OUTER'", + "'OUTPUTFORMAT'", "'OVER'", "'OVERLAPS'", "'OVERLAY'", "'OVERWRITE'", + "'PARTITION'", "'PARTITIONED'", "'PARTITIONS'", "'PERCENTILE_CONT'", + "'PERCENTILE_DISC'", "'PERCENT'", "'PIVOT'", "'PLACING'", "'POSITION'", + "'PRECEDING'", "'PRIMARY'", "'PRINCIPALS'", "'PROPERTIES'", "'PURGE'", + "'QUARTER'", "'QUERY'", "'RANGE'", "'RECORDREADER'", "'RECORDWRITER'", + "'RECOVER'", "'REDUCE'", "'REFERENCES'", "'REFRESH'", "'RENAME'", "'REPAIR'", + "'REPEATABLE'", "'REPLACE'", "'RESET'", "'RESPECT'", "'RESTRICT'", "'REVOKE'", + "'RIGHT'", null, "'ROLE'", "'ROLES'", "'ROLLBACK'", "'ROLLUP'", "'ROW'", + "'ROWS'", "'SECOND'", "'SCHEMA'", "'SCHEMAS'", "'SELECT'", "'SEMI'", + "'SEPARATED'", "'SERDE'", "'SERDEPROPERTIES'", "'SESSION_USER'", "'SET'", + "'MINUS'", "'SETS'", "'SHOW'", "'SKEWED'", "'SOME'", "'SORT'", "'SORTED'", + "'START'", "'STATISTICS'", "'STORED'", "'STRATIFY'", "'STRUCT'", "'SUBSTR'", + "'SUBSTRING'", "'SYNC'", "'SYSTEM_TIME'", "'SYSTEM_VERSION'", "'TABLE'", + "'TABLES'", "'TABLESAMPLE'", "'TBLPROPERTIES'", null, "'TERMINATED'", + "'THEN'", "'TIME'", "'TIMESTAMP'", "'TIMESTAMPADD'", "'TIMESTAMPDIFF'", + "'TO'", "'TOUCH'", "'TRAILING'", "'TRANSACTION'", "'TRANSACTIONS'", "'TRANSFORM'", + "'TRIM'", "'TRUE'", "'TRUNCATE'", "'TRY_CAST'", "'TYPE'", "'UNARCHIVE'", + "'UNBOUNDED'", "'UNCACHE'", "'UNION'", "'UNIQUE'", "'UNKNOWN'", "'UNLOCK'", + "'UNSET'", "'UPDATE'", "'USE'", "'USER'", "'USING'", "'VALUES'", "'VERSION'", + "'VIEW'", "'VIEWS'", "'WEEK'", "'WHEN'", "'WHERE'", "'WINDOW'", "'WITH'", + "'WITHIN'", "'YEAR'", "'ZONE'", null, "'<=>'", "'<>'", "'!='", "'<'", + null, "'>'", null, "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "'&'", "'|'", + "'||'", "'^'", "':'", "'->'", "'/*+'", "'*/'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "SEMICOLON", "LEFT_PAREN", "RIGHT_PAREN", "COMMA", "DOT", "LEFT_BRACKET", + "RIGHT_BRACKET", "ADD", "AFTER", "ALL", "ALTER", "ANALYZE", "AND", "ANTI", + "ANY", "ANY_VALUE", "ARCHIVE", "ARRAY", "AS", "ASC", "AT", "AUTHORIZATION", + "BETWEEN", "BOTH", "BUCKET", "BUCKETS", "BY", "CACHE", "CASCADE", "CASE", + "CAST", "CATALOG", "CATALOGS", "CHANGE", "CHECK", "CLEAR", "CLUSTER", + "CLUSTERED", "CODEGEN", "COLLATE", "COLLECTION", "COLUMN", "COLUMNS", + "COMMENT", "COMMIT", "COMPACT", "COMPACTIONS", "COMPUTE", "CONCATENATE", + "CONSTRAINT", "COST", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", + "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DAY", "DAYOFYEAR", + "DATA", "DATABASE", "DATABASES", "DATEADD", "DATEDIFF", "DBPROPERTIES", + "DEFAULT", "DEFINED", "DELETE", "DELIMITED", "DESC", "DESCRIBE", "DFS", + "DIRECTORIES", "DIRECTORY", "DISTINCT", "DISTRIBUTE", "DIV", "DROP", + "ELSE", "END", "ESCAPE", "ESCAPED", "EXCEPT", "EXCHANGE", "EXISTS", "EXPLAIN", + "EXPORT", "EXTENDED", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", + "FILTER", "FILEFORMAT", "FIRST", "FOLLOWING", "FOR", "FOREIGN", "FORMAT", + "FORMATTED", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GLOBAL", "GRANT", + "GROUP", "GROUPING", "HAVING", "HOUR", "IF", "IGNORE", "IMPORT", "IN", + "INDEX", "INDEXES", "INNER", "INPATH", "INPUTFORMAT", "INSERT", "INTERSECT", + "INTERVAL", "INTO", "IS", "ITEMS", "JOIN", "KEYS", "LAST", "LATERAL", + "LAZY", "LEADING", "LEFT", "LIKE", "ILIKE", "LIMIT", "LINES", "LIST", + "LOAD", "LOCAL", "LOCATION", "LOCK", "LOCKS", "LOGICAL", "MACRO", "MAP", + "MATCHED", "MERGE", "MICROSECOND", "MILLISECOND", "MINUTE", "MONTH", + "MSCK", "NAMESPACE", "NAMESPACES", "NATURAL", "NO", "NOT", "NULL", "NULLS", + "OF", "OFFSET", "ON", "ONLY", "OPTION", "OPTIONS", "OR", "ORDER", "OUT", + "OUTER", "OUTPUTFORMAT", "OVER", "OVERLAPS", "OVERLAY", "OVERWRITE", + "PARTITION", "PARTITIONED", "PARTITIONS", "PERCENTILE_CONT", "PERCENTILE_DISC", + "PERCENTLIT", "PIVOT", "PLACING", "POSITION", "PRECEDING", "PRIMARY", + "PRINCIPALS", "PROPERTIES", "PURGE", "QUARTER", "QUERY", "RANGE", "RECORDREADER", + "RECORDWRITER", "RECOVER", "REDUCE", "REFERENCES", "REFRESH", "RENAME", + "REPAIR", "REPEATABLE", "REPLACE", "RESET", "RESPECT", "RESTRICT", "REVOKE", + "RIGHT", "RLIKE", "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", + "SECOND", "SCHEMA", "SCHEMAS", "SELECT", "SEMI", "SEPARATED", "SERDE", + "SERDEPROPERTIES", "SESSION_USER", "SET", "SETMINUS", "SETS", "SHOW", + "SKEWED", "SOME", "SORT", "SORTED", "START", "STATISTICS", "STORED", + "STRATIFY", "STRUCT", "SUBSTR", "SUBSTRING", "SYNC", "SYSTEM_TIME", "SYSTEM_VERSION", + "TABLE", "TABLES", "TABLESAMPLE", "TBLPROPERTIES", "TEMPORARY", "TERMINATED", + "THEN", "TIME", "TIMESTAMP", "TIMESTAMPADD", "TIMESTAMPDIFF", "TO", "TOUCH", + "TRAILING", "TRANSACTION", "TRANSACTIONS", "TRANSFORM", "TRIM", "TRUE", + "TRUNCATE", "TRY_CAST", "TYPE", "UNARCHIVE", "UNBOUNDED", "UNCACHE", + "UNION", "UNIQUE", "UNKNOWN", "UNLOCK", "UNSET", "UPDATE", "USE", "USER", + "USING", "VALUES", "VERSION", "VIEW", "VIEWS", "WEEK", "WHEN", "WHERE", + "WINDOW", "WITH", "WITHIN", "YEAR", "ZONE", "EQ", "NSEQ", "NEQ", "NEQJ", + "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", "ASTERISK", "SLASH", "PERCENT", + "TILDE", "AMPERSAND", "PIPE", "CONCAT_PIPE", "HAT", "COLON", "ARROW", + "HENT_START", "HENT_END", "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", + "TINYINT_LITERAL", "INTEGER_VALUE", "EXPONENT_VALUE", "DECIMAL_VALUE", + "FLOAT_LITERAL", "DOUBLE_LITERAL", "BIGDECIMAL_LITERAL", "IDENTIFIER", + "BACKQUOTED_IDENTIFIER", "SIMPLE_COMMENT", "BRACKETED_COMMENT", "WS", + "UNRECOGNIZED" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + /** + * When true, parser should throw ParseExcetion for unclosed bracketed comment. + */ + public boolean has_unclosed_bracketed_comment = false; + + /** + * Verify whether current token is a valid decimal token (which contains dot). + * Returns true if the character that follows the token is not a digit or letter or underscore. + * + * For example: + * For char stream "2.3", "2." is not a valid decimal token, because it is followed by digit '3'. + * For char stream "2.3_", "2.3" is not a valid decimal token, because it is followed by '_'. + * For char stream "2.3W", "2.3" is not a valid decimal token, because it is followed by 'W'. + * For char stream "12.0D 34.E2+0.12 " 12.0D is a valid decimal token because it is followed + * by a space. 34.E2 is a valid decimal token because it is followed by symbol '+' + * which is not a digit or letter or underscore. + */ + public boolean isValidDecimal() { + int nextChar = _input.LA(1); + if (nextChar >= 'A' && nextChar <= 'Z' || nextChar >= '0' && nextChar <= '9' || + nextChar == '_') { + return false; + } else { + return true; + } + } + + /** + * This method will be called when we see '/*' and try to match it as a bracketed comment. + * If the next character is '+', it should be parsed as hint later, and we cannot match + * it as a bracketed comment. + * + * Returns true if the next character is '+'. + */ + public boolean isHint() { + int nextChar = _input.LA(1); + if (nextChar == '+') { + return true; + } else { + return false; + } + } + + /** + * This method will be called when the character stream ends and try to find out the + * unclosed bracketed comment. + * If the method be called, it means the end of the entire character stream match, + * and we set the flag and fail later. + */ + public void markUnclosedComment() { + has_unclosed_bracketed_comment = true; + } + + + public SparkLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "SparkLexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + @Override + public void action(RuleContext _localctx, int ruleIndex, int actionIndex) { + switch (ruleIndex) { + case 328: + BRACKETED_COMMENT_action((RuleContext)_localctx, actionIndex); + break; + } + } + private void BRACKETED_COMMENT_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 0: + markUnclosedComment(); + break; + } + } + @Override + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 316: + return EXPONENT_VALUE_sempred((RuleContext)_localctx, predIndex); + case 317: + return DECIMAL_VALUE_sempred((RuleContext)_localctx, predIndex); + case 318: + return FLOAT_LITERAL_sempred((RuleContext)_localctx, predIndex); + case 319: + return DOUBLE_LITERAL_sempred((RuleContext)_localctx, predIndex); + case 320: + return BIGDECIMAL_LITERAL_sempred((RuleContext)_localctx, predIndex); + case 328: + return BRACKETED_COMMENT_sempred((RuleContext)_localctx, predIndex); + } + return true; + } + private boolean EXPONENT_VALUE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return isValidDecimal(); + } + return true; + } + private boolean DECIMAL_VALUE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 1: + return isValidDecimal(); + } + return true; + } + private boolean FLOAT_LITERAL_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return isValidDecimal(); + } + return true; + } + private boolean DOUBLE_LITERAL_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 3: + return isValidDecimal(); + } + return true; + } + private boolean BIGDECIMAL_LITERAL_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 4: + return isValidDecimal(); + } + return true; + } + private boolean BRACKETED_COMMENT_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return !isHint(); + } + return true; + } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u0147\u0c26\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0001\u0000\u0001\u0000"+ + "\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003"+ + "\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006"+ + "\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\n\u0001"+ + "\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001"+ + "\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e"+ + "\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010"+ + "\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012"+ + "\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014"+ + "\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001\u0016"+ + "\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0017"+ + "\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018"+ + "\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0019"+ + "\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b"+ + "\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e"+ + "\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f"+ + "\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+ + "\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001"+ + "!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001"+ + "\"\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001$\u0001"+ + "$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001"+ + "&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'"+ + "\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+ + "(\u0001(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001)\u0001"+ + ")\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001"+ + "+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001"+ + ".\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+ + "0\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u00011\u00011\u0001"+ + "1\u00011\u00011\u00011\u00011\u00011\u00012\u00012\u00012\u00012\u0001"+ + "2\u00013\u00013\u00013\u00013\u00013\u00013\u00013\u00014\u00014\u0001"+ + "4\u00014\u00014\u00014\u00015\u00015\u00015\u00015\u00015\u00016\u0001"+ + "6\u00016\u00016\u00016\u00016\u00016\u00016\u00017\u00017\u00017\u0001"+ + "7\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u00017\u0001"+ + "8\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u0001"+ + "8\u00018\u00018\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u0001"+ + "9\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u0001"+ + "9\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001"+ + ":\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001<\u0001<\u0001"+ + "<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + ">\u0001>\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001"+ + "?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001"+ + "A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "B\u0001B\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ + "D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001"+ + "I\u0001I\u0001I\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001K\u0001K\u0001K\u0001"+ + "K\u0001K\u0001K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001O\u0001"+ + "O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001P\u0001Q\u0001"+ + "Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0001U\u0001U\u0001U\u0001U\u0001U\u0001"+ + "U\u0001U\u0001U\u0001U\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001"+ + "V\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001]\u0001"+ + "]\u0001]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001`\u0001"+ + "`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001"+ + "d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001e\u0001e\u0001"+ + "e\u0001e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "h\u0001h\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001"+ + "k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0001m\u0001"+ + "m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001"+ + "n\u0001n\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001p\u0001"+ + "p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001"+ + "r\u0001r\u0001r\u0001r\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ + "s\u0001t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001"+ + "v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001"+ + "|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001}\u0001"+ + "}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001"+ + "\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001"+ + "\u0080\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0084\u0001"+ + "\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001"+ + "\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001\u0086\u0001"+ + "\u0086\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001"+ + "\u0087\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001"+ + "\u008a\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001"+ + "\u008b\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001"+ + "\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ + "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0092\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093\u0001"+ + "\u0093\u0001\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ + "\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009d\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0003\u009f\u06fe\b\u009f\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001"+ + "\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a6\u0001"+ + "\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a9\u0001"+ + "\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001"+ + "\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001"+ + "\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001"+ + "\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001"+ + "\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001"+ + "\u00af\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001"+ + "\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001"+ + "\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c8\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001"+ + "\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001"+ + "\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001"+ + "\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001"+ + "\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001"+ + "\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001"+ + "\u00d1\u0001\u00d1\u0003\u00d1\u089a\b\u00d1\u0001\u00d2\u0001\u00d2\u0001"+ + "\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001"+ + "\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001"+ + "\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001"+ + "\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d9\u0001"+ + "\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001"+ + "\u00db\u0001\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001"+ + "\u00dc\u0001\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001"+ + "\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0001\u00e5\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001"+ + "\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001"+ + "\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001"+ + "\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001"+ + "\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001"+ + "\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001"+ + "\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001"+ + "\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0003\u00f7\u09c8\b\u00f7\u0001"+ + "\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001"+ + "\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001"+ + "\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001"+ + "\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fe\u0001\u00fe\u0001"+ + "\u00fe\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001"+ + "\u00ff\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001"+ + "\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0101\u0001\u0101\u0001"+ + "\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001"+ + "\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0102\u0001\u0102\u0001"+ + "\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001"+ + "\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0103\u0001"+ + "\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001"+ + "\u0103\u0001\u0103\u0001\u0103\u0001\u0104\u0001\u0104\u0001\u0104\u0001"+ + "\u0104\u0001\u0104\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0107\u0001\u0107\u0001"+ + "\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0107\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001"+ + "\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001"+ + "\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001\u010d\u0001"+ + "\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001"+ + "\u010e\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0110\u0001\u0110\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001"+ + "\u0111\u0001\u0111\u0001\u0111\u0001\u0112\u0001\u0112\u0001\u0112\u0001"+ + "\u0112\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001"+ + "\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001"+ + "\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001"+ + "\u0116\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001"+ + "\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001"+ + "\u0119\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001"+ + "\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001"+ + "\u011c\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001"+ + "\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001"+ + "\u011e\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001"+ + "\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0121\u0001"+ + "\u0121\u0001\u0121\u0003\u0121\u0af8\b\u0121\u0001\u0122\u0001\u0122\u0001"+ + "\u0122\u0001\u0122\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0124\u0001"+ + "\u0124\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0126\u0001\u0126\u0001"+ + "\u0126\u0001\u0126\u0003\u0126\u0b0a\b\u0126\u0001\u0127\u0001\u0127\u0001"+ + "\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0003\u0128\u0b12\b\u0128\u0001"+ + "\u0129\u0001\u0129\u0001\u012a\u0001\u012a\u0001\u012b\u0001\u012b\u0001"+ + "\u012c\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e\u0001"+ + "\u012f\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0131\u0001\u0131\u0001"+ + "\u0131\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133\u0001\u0134\u0001"+ + "\u0134\u0001\u0134\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001"+ + "\u0136\u0001\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001\u0137\u0001"+ + "\u0137\u0005\u0137\u0b39\b\u0137\n\u0137\f\u0137\u0b3c\t\u0137\u0001\u0137"+ + "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0005\u0137\u0b43\b\u0137"+ + "\n\u0137\f\u0137\u0b46\t\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001"+ + "\u0137\u0001\u0137\u0005\u0137\u0b4d\b\u0137\n\u0137\f\u0137\u0b50\t\u0137"+ + "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0005\u0137"+ + "\u0b57\b\u0137\n\u0137\f\u0137\u0b5a\t\u0137\u0001\u0137\u0003\u0137\u0b5d"+ + "\b\u0137\u0001\u0138\u0004\u0138\u0b60\b\u0138\u000b\u0138\f\u0138\u0b61"+ + "\u0001\u0138\u0001\u0138\u0001\u0139\u0004\u0139\u0b67\b\u0139\u000b\u0139"+ + "\f\u0139\u0b68\u0001\u0139\u0001\u0139\u0001\u013a\u0004\u013a\u0b6e\b"+ + "\u013a\u000b\u013a\f\u013a\u0b6f\u0001\u013a\u0001\u013a\u0001\u013b\u0004"+ + "\u013b\u0b75\b\u013b\u000b\u013b\f\u013b\u0b76\u0001\u013c\u0004\u013c"+ + "\u0b7a\b\u013c\u000b\u013c\f\u013c\u0b7b\u0001\u013c\u0001\u013c\u0001"+ + "\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0003\u013c\u0b84\b\u013c\u0001"+ + "\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0004\u013e\u0b8a\b\u013e\u000b"+ + "\u013e\f\u013e\u0b8b\u0001\u013e\u0003\u013e\u0b8f\b\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0001\u013e\u0003\u013e\u0b95\b\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0003\u013e\u0b9a\b\u013e\u0001\u013f\u0004\u013f"+ + "\u0b9d\b\u013f\u000b\u013f\f\u013f\u0b9e\u0001\u013f\u0003\u013f\u0ba2"+ + "\b\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0003\u013f\u0ba8"+ + "\b\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0003\u013f\u0bad\b\u013f"+ + "\u0001\u0140\u0004\u0140\u0bb0\b\u0140\u000b\u0140\f\u0140\u0bb1\u0001"+ + "\u0140\u0003\u0140\u0bb5\b\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001"+ + "\u0140\u0001\u0140\u0003\u0140\u0bbc\b\u0140\u0001\u0140\u0001\u0140\u0001"+ + "\u0140\u0001\u0140\u0001\u0140\u0003\u0140\u0bc3\b\u0140\u0001\u0141\u0001"+ + "\u0141\u0001\u0141\u0004\u0141\u0bc8\b\u0141\u000b\u0141\f\u0141\u0bc9"+ + "\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0005\u0142\u0bd0\b\u0142"+ + "\n\u0142\f\u0142\u0bd3\t\u0142\u0001\u0142\u0001\u0142\u0001\u0143\u0004"+ + "\u0143\u0bd8\b\u0143\u000b\u0143\f\u0143\u0bd9\u0001\u0143\u0001\u0143"+ + "\u0005\u0143\u0bde\b\u0143\n\u0143\f\u0143\u0be1\t\u0143\u0001\u0143\u0001"+ + "\u0143\u0004\u0143\u0be5\b\u0143\u000b\u0143\f\u0143\u0be6\u0003\u0143"+ + "\u0be9\b\u0143\u0001\u0144\u0001\u0144\u0003\u0144\u0bed\b\u0144\u0001"+ + "\u0144\u0004\u0144\u0bf0\b\u0144\u000b\u0144\f\u0144\u0bf1\u0001\u0145"+ + "\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0147\u0001\u0147\u0001\u0147"+ + "\u0001\u0147\u0001\u0147\u0001\u0147\u0005\u0147\u0bfe\b\u0147\n\u0147"+ + "\f\u0147\u0c01\t\u0147\u0001\u0147\u0003\u0147\u0c04\b\u0147\u0001\u0147"+ + "\u0003\u0147\u0c07\b\u0147\u0001\u0147\u0001\u0147\u0001\u0148\u0001\u0148"+ + "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0005\u0148\u0c11\b\u0148"+ + "\n\u0148\f\u0148\u0c14\t\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001"+ + "\u0148\u0003\u0148\u0c1a\b\u0148\u0001\u0148\u0001\u0148\u0001\u0149\u0004"+ + "\u0149\u0c1f\b\u0149\u000b\u0149\f\u0149\u0c20\u0001\u0149\u0001\u0149"+ + "\u0001\u014a\u0001\u014a\u0001\u0c12\u0000\u014b\u0001\u0001\u0003\u0002"+ + "\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013"+ + "\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011"+ + "#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b"+ + "7\u001c9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/_0a1c2e"+ + "3g4i5k6m7o8q9s:u;w}?\u007f@\u0081A\u0083B\u0085C\u0087D\u0089E\u008b"+ + "F\u008dG\u008fH\u0091I\u0093J\u0095K\u0097L\u0099M\u009bN\u009dO\u009f"+ + "P\u00a1Q\u00a3R\u00a5S\u00a7T\u00a9U\u00abV\u00adW\u00afX\u00b1Y\u00b3"+ + "Z\u00b5[\u00b7\\\u00b9]\u00bb^\u00bd_\u00bf`\u00c1a\u00c3b\u00c5c\u00c7"+ + "d\u00c9e\u00cbf\u00cdg\u00cfh\u00d1i\u00d3j\u00d5k\u00d7l\u00d9m\u00db"+ + "n\u00ddo\u00dfp\u00e1q\u00e3r\u00e5s\u00e7t\u00e9u\u00ebv\u00edw\u00ef"+ + "x\u00f1y\u00f3z\u00f5{\u00f7|\u00f9}\u00fb~\u00fd\u007f\u00ff\u0080\u0101"+ + "\u0081\u0103\u0082\u0105\u0083\u0107\u0084\u0109\u0085\u010b\u0086\u010d"+ + "\u0087\u010f\u0088\u0111\u0089\u0113\u008a\u0115\u008b\u0117\u008c\u0119"+ + "\u008d\u011b\u008e\u011d\u008f\u011f\u0090\u0121\u0091\u0123\u0092\u0125"+ + "\u0093\u0127\u0094\u0129\u0095\u012b\u0096\u012d\u0097\u012f\u0098\u0131"+ + "\u0099\u0133\u009a\u0135\u009b\u0137\u009c\u0139\u009d\u013b\u009e\u013d"+ + "\u009f\u013f\u00a0\u0141\u00a1\u0143\u00a2\u0145\u00a3\u0147\u00a4\u0149"+ + "\u00a5\u014b\u00a6\u014d\u00a7\u014f\u00a8\u0151\u00a9\u0153\u00aa\u0155"+ + "\u00ab\u0157\u00ac\u0159\u00ad\u015b\u00ae\u015d\u00af\u015f\u00b0\u0161"+ + "\u00b1\u0163\u00b2\u0165\u00b3\u0167\u00b4\u0169\u00b5\u016b\u00b6\u016d"+ + "\u00b7\u016f\u00b8\u0171\u00b9\u0173\u00ba\u0175\u00bb\u0177\u00bc\u0179"+ + "\u00bd\u017b\u00be\u017d\u00bf\u017f\u00c0\u0181\u00c1\u0183\u00c2\u0185"+ + "\u00c3\u0187\u00c4\u0189\u00c5\u018b\u00c6\u018d\u00c7\u018f\u00c8\u0191"+ + "\u00c9\u0193\u00ca\u0195\u00cb\u0197\u00cc\u0199\u00cd\u019b\u00ce\u019d"+ + "\u00cf\u019f\u00d0\u01a1\u00d1\u01a3\u00d2\u01a5\u00d3\u01a7\u00d4\u01a9"+ + "\u00d5\u01ab\u00d6\u01ad\u00d7\u01af\u00d8\u01b1\u00d9\u01b3\u00da\u01b5"+ + "\u00db\u01b7\u00dc\u01b9\u00dd\u01bb\u00de\u01bd\u00df\u01bf\u00e0\u01c1"+ + "\u00e1\u01c3\u00e2\u01c5\u00e3\u01c7\u00e4\u01c9\u00e5\u01cb\u00e6\u01cd"+ + "\u00e7\u01cf\u00e8\u01d1\u00e9\u01d3\u00ea\u01d5\u00eb\u01d7\u00ec\u01d9"+ + "\u00ed\u01db\u00ee\u01dd\u00ef\u01df\u00f0\u01e1\u00f1\u01e3\u00f2\u01e5"+ + "\u00f3\u01e7\u00f4\u01e9\u00f5\u01eb\u00f6\u01ed\u00f7\u01ef\u00f8\u01f1"+ + "\u00f9\u01f3\u00fa\u01f5\u00fb\u01f7\u00fc\u01f9\u00fd\u01fb\u00fe\u01fd"+ + "\u00ff\u01ff\u0100\u0201\u0101\u0203\u0102\u0205\u0103\u0207\u0104\u0209"+ + "\u0105\u020b\u0106\u020d\u0107\u020f\u0108\u0211\u0109\u0213\u010a\u0215"+ + "\u010b\u0217\u010c\u0219\u010d\u021b\u010e\u021d\u010f\u021f\u0110\u0221"+ + "\u0111\u0223\u0112\u0225\u0113\u0227\u0114\u0229\u0115\u022b\u0116\u022d"+ + "\u0117\u022f\u0118\u0231\u0119\u0233\u011a\u0235\u011b\u0237\u011c\u0239"+ + "\u011d\u023b\u011e\u023d\u011f\u023f\u0120\u0241\u0121\u0243\u0122\u0245"+ + "\u0123\u0247\u0124\u0249\u0125\u024b\u0126\u024d\u0127\u024f\u0128\u0251"+ + "\u0129\u0253\u012a\u0255\u012b\u0257\u012c\u0259\u012d\u025b\u012e\u025d"+ + "\u012f\u025f\u0130\u0261\u0131\u0263\u0132\u0265\u0133\u0267\u0134\u0269"+ + "\u0135\u026b\u0136\u026d\u0137\u026f\u0138\u0271\u0139\u0273\u013a\u0275"+ + "\u013b\u0277\u013c\u0279\u013d\u027b\u013e\u027d\u013f\u027f\u0140\u0281"+ + "\u0141\u0283\u0142\u0285\u0143\u0287\u0000\u0289\u0000\u028b\u0000\u028d"+ + "\u0000\u028f\u0144\u0291\u0145\u0293\u0146\u0295\u0147\u0001\u0000\n\u0002"+ + "\u0000\'\'\\\\\u0002\u0000\"\"\\\\\u0001\u0000\'\'\u0001\u0000\"\"\u0001"+ + "\u0000``\u0002\u0000++--\u0001\u000009\u0001\u0000AZ\u0002\u0000\n\n\r"+ + "\r\u0003\u0000\t\n\r\r \u0c55\u0000\u0001\u0001\u0000\u0000\u0000\u0000"+ + "\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000"+ + "\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b"+ + "\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001"+ + "\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001"+ + "\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000\u0017\u0001"+ + "\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000\u001b\u0001"+ + "\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000\u001f\u0001"+ + "\u0000\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000\u0000"+ + "\u0000\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000\u0000"+ + "\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000-"+ + "\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001\u0000"+ + "\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000"+ + "\u00007\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;"+ + "\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000"+ + "\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000"+ + "\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I"+ + "\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000"+ + "\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000"+ + "\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W"+ + "\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000"+ + "\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000"+ + "\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e"+ + "\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000"+ + "\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000"+ + "\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s"+ + "\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000"+ + "\u0000\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000"+ + "\u0000}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000"+ + "\u0081\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000"+ + "\u0085\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000"+ + "\u0089\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000"+ + "\u008d\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000"+ + "\u0091\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000"+ + "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ + "\u0099\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000"+ + "\u009d\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000"+ + "\u00a1\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000"+ + "\u00a5\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000"+ + "\u00a9\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000"+ + "\u00ad\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000"+ + "\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000"+ + "\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000"+ + "\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000"+ + "\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000"+ + "\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000"+ + "\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000"+ + "\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000"+ + "\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000"+ + "\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000"+ + "\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000"+ + "\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000"+ + "\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000"+ + "\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000"+ + "\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000"+ + "\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000"+ + "\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000"+ + "\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000"+ + "\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000"+ + "\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000"+ + "\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000"+ + "\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000"+ + "\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000"+ + "\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000"+ + "\u0111\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000"+ + "\u0115\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000"+ + "\u0119\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000"+ + "\u011d\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000"+ + "\u0121\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000"+ + "\u0125\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000"+ + "\u0129\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000"+ + "\u012d\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000"+ + "\u0131\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000"+ + "\u0135\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000"+ + "\u0139\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000"+ + "\u013d\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000"+ + "\u0141\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000"+ + "\u0145\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000"+ + "\u0149\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000"+ + "\u014d\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000"+ + "\u0151\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000"+ + "\u0155\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000"+ + "\u0159\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000"+ + "\u015d\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000"+ + "\u0161\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000"+ + "\u0165\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000"+ + "\u0169\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000"+ + "\u016d\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000"+ + "\u0171\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000"+ + "\u0175\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000"+ + "\u0179\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000"+ + "\u017d\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000"+ + "\u0181\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000"+ + "\u0185\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000"+ + "\u0189\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000"+ + "\u018d\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000"+ + "\u0191\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000"+ + "\u0195\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000"+ + "\u0199\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000"+ + "\u019d\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000"+ + "\u01a1\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000"+ + "\u01a5\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000"+ + "\u01a9\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000"+ + "\u01ad\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000"+ + "\u01b1\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000"+ + "\u01b5\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000"+ + "\u01b9\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000"+ + "\u01bd\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000"+ + "\u01c1\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000"+ + "\u01c5\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000"+ + "\u01c9\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000"+ + "\u01cd\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000"+ + "\u01d1\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000"+ + "\u01d5\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000"+ + "\u01d9\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000"+ + "\u01dd\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000"+ + "\u01e1\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000"+ + "\u01e5\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000"+ + "\u01e9\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000"+ + "\u01ed\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000"+ + "\u01f1\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000"+ + "\u01f5\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000"+ + "\u01f9\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000"+ + "\u01fd\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0201\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000"+ + "\u0205\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000"+ + "\u0209\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000"+ + "\u020d\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000"+ + "\u0211\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000"+ + "\u0215\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000"+ + "\u0219\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000"+ + "\u021d\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000"+ + "\u0221\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000"+ + "\u0225\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000"+ + "\u0229\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000"+ + "\u022d\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000"+ + "\u0231\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000"+ + "\u0235\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000"+ + "\u0239\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000"+ + "\u023d\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000"+ + "\u0241\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000"+ + "\u0245\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000"+ + "\u0249\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000"+ + "\u024d\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000"+ + "\u0251\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000"+ + "\u0255\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000"+ + "\u0259\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000"+ + "\u025d\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000"+ + "\u0261\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000"+ + "\u0265\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000"+ + "\u0269\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000"+ + "\u026d\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000"+ + "\u0271\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000"+ + "\u0275\u0001\u0000\u0000\u0000\u0000\u0277\u0001\u0000\u0000\u0000\u0000"+ + "\u0279\u0001\u0000\u0000\u0000\u0000\u027b\u0001\u0000\u0000\u0000\u0000"+ + "\u027d\u0001\u0000\u0000\u0000\u0000\u027f\u0001\u0000\u0000\u0000\u0000"+ + "\u0281\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000"+ + "\u0285\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000"+ + "\u0291\u0001\u0000\u0000\u0000\u0000\u0293\u0001\u0000\u0000\u0000\u0000"+ + "\u0295\u0001\u0000\u0000\u0000\u0001\u0297\u0001\u0000\u0000\u0000\u0003"+ + "\u0299\u0001\u0000\u0000\u0000\u0005\u029b\u0001\u0000\u0000\u0000\u0007"+ + "\u029d\u0001\u0000\u0000\u0000\t\u029f\u0001\u0000\u0000\u0000\u000b\u02a1"+ + "\u0001\u0000\u0000\u0000\r\u02a3\u0001\u0000\u0000\u0000\u000f\u02a5\u0001"+ + "\u0000\u0000\u0000\u0011\u02a9\u0001\u0000\u0000\u0000\u0013\u02af\u0001"+ + "\u0000\u0000\u0000\u0015\u02b3\u0001\u0000\u0000\u0000\u0017\u02b9\u0001"+ + "\u0000\u0000\u0000\u0019\u02c1\u0001\u0000\u0000\u0000\u001b\u02c5\u0001"+ + "\u0000\u0000\u0000\u001d\u02ca\u0001\u0000\u0000\u0000\u001f\u02ce\u0001"+ + "\u0000\u0000\u0000!\u02d8\u0001\u0000\u0000\u0000#\u02e0\u0001\u0000\u0000"+ + "\u0000%\u02e6\u0001\u0000\u0000\u0000\'\u02e9\u0001\u0000\u0000\u0000"+ + ")\u02ed\u0001\u0000\u0000\u0000+\u02f0\u0001\u0000\u0000\u0000-\u02fe"+ + "\u0001\u0000\u0000\u0000/\u0306\u0001\u0000\u0000\u00001\u030b\u0001\u0000"+ + "\u0000\u00003\u0312\u0001\u0000\u0000\u00005\u031a\u0001\u0000\u0000\u0000"+ + "7\u031d\u0001\u0000\u0000\u00009\u0323\u0001\u0000\u0000\u0000;\u032b"+ + "\u0001\u0000\u0000\u0000=\u0330\u0001\u0000\u0000\u0000?\u0335\u0001\u0000"+ + "\u0000\u0000A\u033d\u0001\u0000\u0000\u0000C\u0346\u0001\u0000\u0000\u0000"+ + "E\u034d\u0001\u0000\u0000\u0000G\u0353\u0001\u0000\u0000\u0000I\u0359"+ + "\u0001\u0000\u0000\u0000K\u0361\u0001\u0000\u0000\u0000M\u036b\u0001\u0000"+ + "\u0000\u0000O\u0373\u0001\u0000\u0000\u0000Q\u037b\u0001\u0000\u0000\u0000"+ + "S\u0386\u0001\u0000\u0000\u0000U\u038d\u0001\u0000\u0000\u0000W\u0395"+ + "\u0001\u0000\u0000\u0000Y\u039d\u0001\u0000\u0000\u0000[\u03a4\u0001\u0000"+ + "\u0000\u0000]\u03ac\u0001\u0000\u0000\u0000_\u03b8\u0001\u0000\u0000\u0000"+ + "a\u03c0\u0001\u0000\u0000\u0000c\u03cc\u0001\u0000\u0000\u0000e\u03d7"+ + "\u0001\u0000\u0000\u0000g\u03dc\u0001\u0000\u0000\u0000i\u03e3\u0001\u0000"+ + "\u0000\u0000k\u03e9\u0001\u0000\u0000\u0000m\u03ee\u0001\u0000\u0000\u0000"+ + "o\u03f6\u0001\u0000\u0000\u0000q\u0403\u0001\u0000\u0000\u0000s\u0410"+ + "\u0001\u0000\u0000\u0000u\u0422\u0001\u0000\u0000\u0000w\u042f\u0001\u0000"+ + "\u0000\u0000y\u0433\u0001\u0000\u0000\u0000{\u043d\u0001\u0000\u0000\u0000"+ + "}\u0442\u0001\u0000\u0000\u0000\u007f\u044b\u0001\u0000\u0000\u0000\u0081"+ + "\u0455\u0001\u0000\u0000\u0000\u0083\u045d\u0001\u0000\u0000\u0000\u0085"+ + "\u0466\u0001\u0000\u0000\u0000\u0087\u0473\u0001\u0000\u0000\u0000\u0089"+ + "\u047b\u0001\u0000\u0000\u0000\u008b\u0483\u0001\u0000\u0000\u0000\u008d"+ + "\u048a\u0001\u0000\u0000\u0000\u008f\u0494\u0001\u0000\u0000\u0000\u0091"+ + "\u0499\u0001\u0000\u0000\u0000\u0093\u04a2\u0001\u0000\u0000\u0000\u0095"+ + "\u04a6\u0001\u0000\u0000\u0000\u0097\u04b2\u0001\u0000\u0000\u0000\u0099"+ + "\u04bc\u0001\u0000\u0000\u0000\u009b\u04c5\u0001\u0000\u0000\u0000\u009d"+ + "\u04d0\u0001\u0000\u0000\u0000\u009f\u04d4\u0001\u0000\u0000\u0000\u00a1"+ + "\u04d9\u0001\u0000\u0000\u0000\u00a3\u04de\u0001\u0000\u0000\u0000\u00a5"+ + "\u04e2\u0001\u0000\u0000\u0000\u00a7\u04e9\u0001\u0000\u0000\u0000\u00a9"+ + "\u04f1\u0001\u0000\u0000\u0000\u00ab\u04f8\u0001\u0000\u0000\u0000\u00ad"+ + "\u0501\u0001\u0000\u0000\u0000\u00af\u0508\u0001\u0000\u0000\u0000\u00b1"+ + "\u0510\u0001\u0000\u0000\u0000\u00b3\u0517\u0001\u0000\u0000\u0000\u00b5"+ + "\u0520\u0001\u0000\u0000\u0000\u00b7\u0529\u0001\u0000\u0000\u0000\u00b9"+ + "\u0531\u0001\u0000\u0000\u0000\u00bb\u0537\u0001\u0000\u0000\u0000\u00bd"+ + "\u053d\u0001\u0000\u0000\u0000\u00bf\u0544\u0001\u0000\u0000\u0000\u00c1"+ + "\u054b\u0001\u0000\u0000\u0000\u00c3\u0556\u0001\u0000\u0000\u0000\u00c5"+ + "\u055c\u0001\u0000\u0000\u0000\u00c7\u0566\u0001\u0000\u0000\u0000\u00c9"+ + "\u056a\u0001\u0000\u0000\u0000\u00cb\u0572\u0001\u0000\u0000\u0000\u00cd"+ + "\u0579\u0001\u0000\u0000\u0000\u00cf\u0583\u0001\u0000\u0000\u0000\u00d1"+ + "\u0588\u0001\u0000\u0000\u0000\u00d3\u058d\u0001\u0000\u0000\u0000\u00d5"+ + "\u0596\u0001\u0000\u0000\u0000\u00d7\u05a0\u0001\u0000\u0000\u0000\u00d9"+ + "\u05a7\u0001\u0000\u0000\u0000\u00db\u05ad\u0001\u0000\u0000\u0000\u00dd"+ + "\u05b3\u0001\u0000\u0000\u0000\u00df\u05bc\u0001\u0000\u0000\u0000\u00e1"+ + "\u05c3\u0001\u0000\u0000\u0000\u00e3\u05c8\u0001\u0000\u0000\u0000\u00e5"+ + "\u05cb\u0001\u0000\u0000\u0000\u00e7\u05d2\u0001\u0000\u0000\u0000\u00e9"+ + "\u05d9\u0001\u0000\u0000\u0000\u00eb\u05dc\u0001\u0000\u0000\u0000\u00ed"+ + "\u05e2\u0001\u0000\u0000\u0000\u00ef\u05ea\u0001\u0000\u0000\u0000\u00f1"+ + "\u05f0\u0001\u0000\u0000\u0000\u00f3\u05f7\u0001\u0000\u0000\u0000\u00f5"+ + "\u0603\u0001\u0000\u0000\u0000\u00f7\u060a\u0001\u0000\u0000\u0000\u00f9"+ + "\u0614\u0001\u0000\u0000\u0000\u00fb\u061d\u0001\u0000\u0000\u0000\u00fd"+ + "\u0622\u0001\u0000\u0000\u0000\u00ff\u0625\u0001\u0000\u0000\u0000\u0101"+ + "\u062b\u0001\u0000\u0000\u0000\u0103\u0630\u0001\u0000\u0000\u0000\u0105"+ + "\u0635\u0001\u0000\u0000\u0000\u0107\u063a\u0001\u0000\u0000\u0000\u0109"+ + "\u0642\u0001\u0000\u0000\u0000\u010b\u0647\u0001\u0000\u0000\u0000\u010d"+ + "\u064f\u0001\u0000\u0000\u0000\u010f\u0654\u0001\u0000\u0000\u0000\u0111"+ + "\u0659\u0001\u0000\u0000\u0000\u0113\u065f\u0001\u0000\u0000\u0000\u0115"+ + "\u0665\u0001\u0000\u0000\u0000\u0117\u066b\u0001\u0000\u0000\u0000\u0119"+ + "\u0670\u0001\u0000\u0000\u0000\u011b\u0675\u0001\u0000\u0000\u0000\u011d"+ + "\u067b\u0001\u0000\u0000\u0000\u011f\u0684\u0001\u0000\u0000\u0000\u0121"+ + "\u0689\u0001\u0000\u0000\u0000\u0123\u068f\u0001\u0000\u0000\u0000\u0125"+ + "\u0697\u0001\u0000\u0000\u0000\u0127\u069d\u0001\u0000\u0000\u0000\u0129"+ + "\u06a1\u0001\u0000\u0000\u0000\u012b\u06a9\u0001\u0000\u0000\u0000\u012d"+ + "\u06af\u0001\u0000\u0000\u0000\u012f\u06bb\u0001\u0000\u0000\u0000\u0131"+ + "\u06c7\u0001\u0000\u0000\u0000\u0133\u06ce\u0001\u0000\u0000\u0000\u0135"+ + "\u06d4\u0001\u0000\u0000\u0000\u0137\u06d9\u0001\u0000\u0000\u0000\u0139"+ + "\u06e3\u0001\u0000\u0000\u0000\u013b\u06ee\u0001\u0000\u0000\u0000\u013d"+ + "\u06f6\u0001\u0000\u0000\u0000\u013f\u06fd\u0001\u0000\u0000\u0000\u0141"+ + "\u06ff\u0001\u0000\u0000\u0000\u0143\u0704\u0001\u0000\u0000\u0000\u0145"+ + "\u070a\u0001\u0000\u0000\u0000\u0147\u070d\u0001\u0000\u0000\u0000\u0149"+ + "\u0714\u0001\u0000\u0000\u0000\u014b\u0717\u0001\u0000\u0000\u0000\u014d"+ + "\u071c\u0001\u0000\u0000\u0000\u014f\u0723\u0001\u0000\u0000\u0000\u0151"+ + "\u072b\u0001\u0000\u0000\u0000\u0153\u072e\u0001\u0000\u0000\u0000\u0155"+ + "\u0734\u0001\u0000\u0000\u0000\u0157\u0738\u0001\u0000\u0000\u0000\u0159"+ + "\u073e\u0001\u0000\u0000\u0000\u015b\u074b\u0001\u0000\u0000\u0000\u015d"+ + "\u0750\u0001\u0000\u0000\u0000\u015f\u0759\u0001\u0000\u0000\u0000\u0161"+ + "\u0761\u0001\u0000\u0000\u0000\u0163\u076b\u0001\u0000\u0000\u0000\u0165"+ + "\u0775\u0001\u0000\u0000\u0000\u0167\u0781\u0001\u0000\u0000\u0000\u0169"+ + "\u078c\u0001\u0000\u0000\u0000\u016b\u079c\u0001\u0000\u0000\u0000\u016d"+ + "\u07ac\u0001\u0000\u0000\u0000\u016f\u07b4\u0001\u0000\u0000\u0000\u0171"+ + "\u07ba\u0001\u0000\u0000\u0000\u0173\u07c2\u0001\u0000\u0000\u0000\u0175"+ + "\u07cb\u0001\u0000\u0000\u0000\u0177\u07d5\u0001\u0000\u0000\u0000\u0179"+ + "\u07dd\u0001\u0000\u0000\u0000\u017b\u07e8\u0001\u0000\u0000\u0000\u017d"+ + "\u07f3\u0001\u0000\u0000\u0000\u017f\u07f9\u0001\u0000\u0000\u0000\u0181"+ + "\u0801\u0001\u0000\u0000\u0000\u0183\u0807\u0001\u0000\u0000\u0000\u0185"+ + "\u080d\u0001\u0000\u0000\u0000\u0187\u081a\u0001\u0000\u0000\u0000\u0189"+ + "\u0827\u0001\u0000\u0000\u0000\u018b\u082f\u0001\u0000\u0000\u0000\u018d"+ + "\u0836\u0001\u0000\u0000\u0000\u018f\u0841\u0001\u0000\u0000\u0000\u0191"+ + "\u0849\u0001\u0000\u0000\u0000\u0193\u0850\u0001\u0000\u0000\u0000\u0195"+ + "\u0857\u0001\u0000\u0000\u0000\u0197\u0862\u0001\u0000\u0000\u0000\u0199"+ + "\u086a\u0001\u0000\u0000\u0000\u019b\u0870\u0001\u0000\u0000\u0000\u019d"+ + "\u0878\u0001\u0000\u0000\u0000\u019f\u0881\u0001\u0000\u0000\u0000\u01a1"+ + "\u0888\u0001\u0000\u0000\u0000\u01a3\u0899\u0001\u0000\u0000\u0000\u01a5"+ + "\u089b\u0001\u0000\u0000\u0000\u01a7\u08a0\u0001\u0000\u0000\u0000\u01a9"+ + "\u08a6\u0001\u0000\u0000\u0000\u01ab\u08af\u0001\u0000\u0000\u0000\u01ad"+ + "\u08b6\u0001\u0000\u0000\u0000\u01af\u08ba\u0001\u0000\u0000\u0000\u01b1"+ + "\u08bf\u0001\u0000\u0000\u0000\u01b3\u08c6\u0001\u0000\u0000\u0000\u01b5"+ + "\u08cd\u0001\u0000\u0000\u0000\u01b7\u08d5\u0001\u0000\u0000\u0000\u01b9"+ + "\u08dc\u0001\u0000\u0000\u0000\u01bb\u08e1\u0001\u0000\u0000\u0000\u01bd"+ + "\u08eb\u0001\u0000\u0000\u0000\u01bf\u08f1\u0001\u0000\u0000\u0000\u01c1"+ + "\u0901\u0001\u0000\u0000\u0000\u01c3\u090e\u0001\u0000\u0000\u0000\u01c5"+ + "\u0912\u0001\u0000\u0000\u0000\u01c7\u0918\u0001\u0000\u0000\u0000\u01c9"+ + "\u091d\u0001\u0000\u0000\u0000\u01cb\u0922\u0001\u0000\u0000\u0000\u01cd"+ + "\u0929\u0001\u0000\u0000\u0000\u01cf\u092e\u0001\u0000\u0000\u0000\u01d1"+ + "\u0933\u0001\u0000\u0000\u0000\u01d3\u093a\u0001\u0000\u0000\u0000\u01d5"+ + "\u0940\u0001\u0000\u0000\u0000\u01d7\u094b\u0001\u0000\u0000\u0000\u01d9"+ + "\u0952\u0001\u0000\u0000\u0000\u01db\u095b\u0001\u0000\u0000\u0000\u01dd"+ + "\u0962\u0001\u0000\u0000\u0000\u01df\u0969\u0001\u0000\u0000\u0000\u01e1"+ + "\u0973\u0001\u0000\u0000\u0000\u01e3\u0978\u0001\u0000\u0000\u0000\u01e5"+ + "\u0984\u0001\u0000\u0000\u0000\u01e7\u0993\u0001\u0000\u0000\u0000\u01e9"+ + "\u0999\u0001\u0000\u0000\u0000\u01eb\u09a0\u0001\u0000\u0000\u0000\u01ed"+ + "\u09ac\u0001\u0000\u0000\u0000\u01ef\u09c7\u0001\u0000\u0000\u0000\u01f1"+ + "\u09c9\u0001\u0000\u0000\u0000\u01f3\u09d4\u0001\u0000\u0000\u0000\u01f5"+ + "\u09d9\u0001\u0000\u0000\u0000\u01f7\u09de\u0001\u0000\u0000\u0000\u01f9"+ + "\u09e8\u0001\u0000\u0000\u0000\u01fb\u09f5\u0001\u0000\u0000\u0000\u01fd"+ + "\u0a03\u0001\u0000\u0000\u0000\u01ff\u0a06\u0001\u0000\u0000\u0000\u0201"+ + "\u0a0c\u0001\u0000\u0000\u0000\u0203\u0a15\u0001\u0000\u0000\u0000\u0205"+ + "\u0a21\u0001\u0000\u0000\u0000\u0207\u0a2e\u0001\u0000\u0000\u0000\u0209"+ + "\u0a38\u0001\u0000\u0000\u0000\u020b\u0a3d\u0001\u0000\u0000\u0000\u020d"+ + "\u0a42\u0001\u0000\u0000\u0000\u020f\u0a4b\u0001\u0000\u0000\u0000\u0211"+ + "\u0a54\u0001\u0000\u0000\u0000\u0213\u0a59\u0001\u0000\u0000\u0000\u0215"+ + "\u0a63\u0001\u0000\u0000\u0000\u0217\u0a6d\u0001\u0000\u0000\u0000\u0219"+ + "\u0a75\u0001\u0000\u0000\u0000\u021b\u0a7b\u0001\u0000\u0000\u0000\u021d"+ + "\u0a82\u0001\u0000\u0000\u0000\u021f\u0a8a\u0001\u0000\u0000\u0000\u0221"+ + "\u0a91\u0001\u0000\u0000\u0000\u0223\u0a97\u0001\u0000\u0000\u0000\u0225"+ + "\u0a9e\u0001\u0000\u0000\u0000\u0227\u0aa2\u0001\u0000\u0000\u0000\u0229"+ + "\u0aa7\u0001\u0000\u0000\u0000\u022b\u0aad\u0001\u0000\u0000\u0000\u022d"+ + "\u0ab4\u0001\u0000\u0000\u0000\u022f\u0abc\u0001\u0000\u0000\u0000\u0231"+ + "\u0ac1\u0001\u0000\u0000\u0000\u0233\u0ac7\u0001\u0000\u0000\u0000\u0235"+ + "\u0acc\u0001\u0000\u0000\u0000\u0237\u0ad1\u0001\u0000\u0000\u0000\u0239"+ + "\u0ad7\u0001\u0000\u0000\u0000\u023b\u0ade\u0001\u0000\u0000\u0000\u023d"+ + "\u0ae3\u0001\u0000\u0000\u0000\u023f\u0aea\u0001\u0000\u0000\u0000\u0241"+ + "\u0aef\u0001\u0000\u0000\u0000\u0243\u0af7\u0001\u0000\u0000\u0000\u0245"+ + "\u0af9\u0001\u0000\u0000\u0000\u0247\u0afd\u0001\u0000\u0000\u0000\u0249"+ + "\u0b00\u0001\u0000\u0000\u0000\u024b\u0b03\u0001\u0000\u0000\u0000\u024d"+ + "\u0b09\u0001\u0000\u0000\u0000\u024f\u0b0b\u0001\u0000\u0000\u0000\u0251"+ + "\u0b11\u0001\u0000\u0000\u0000\u0253\u0b13\u0001\u0000\u0000\u0000\u0255"+ + "\u0b15\u0001\u0000\u0000\u0000\u0257\u0b17\u0001\u0000\u0000\u0000\u0259"+ + "\u0b19\u0001\u0000\u0000\u0000\u025b\u0b1b\u0001\u0000\u0000\u0000\u025d"+ + "\u0b1d\u0001\u0000\u0000\u0000\u025f\u0b1f\u0001\u0000\u0000\u0000\u0261"+ + "\u0b21\u0001\u0000\u0000\u0000\u0263\u0b23\u0001\u0000\u0000\u0000\u0265"+ + "\u0b26\u0001\u0000\u0000\u0000\u0267\u0b28\u0001\u0000\u0000\u0000\u0269"+ + "\u0b2a\u0001\u0000\u0000\u0000\u026b\u0b2d\u0001\u0000\u0000\u0000\u026d"+ + "\u0b31\u0001\u0000\u0000\u0000\u026f\u0b5c\u0001\u0000\u0000\u0000\u0271"+ + "\u0b5f\u0001\u0000\u0000\u0000\u0273\u0b66\u0001\u0000\u0000\u0000\u0275"+ + "\u0b6d\u0001\u0000\u0000\u0000\u0277\u0b74\u0001\u0000\u0000\u0000\u0279"+ + "\u0b83\u0001\u0000\u0000\u0000\u027b\u0b85\u0001\u0000\u0000\u0000\u027d"+ + "\u0b99\u0001\u0000\u0000\u0000\u027f\u0bac\u0001\u0000\u0000\u0000\u0281"+ + "\u0bc2\u0001\u0000\u0000\u0000\u0283\u0bc7\u0001\u0000\u0000\u0000\u0285"+ + "\u0bcb\u0001\u0000\u0000\u0000\u0287\u0be8\u0001\u0000\u0000\u0000\u0289"+ + "\u0bea\u0001\u0000\u0000\u0000\u028b\u0bf3\u0001\u0000\u0000\u0000\u028d"+ + "\u0bf5\u0001\u0000\u0000\u0000\u028f\u0bf7\u0001\u0000\u0000\u0000\u0291"+ + "\u0c0a\u0001\u0000\u0000\u0000\u0293\u0c1e\u0001\u0000\u0000\u0000\u0295"+ + "\u0c24\u0001\u0000\u0000\u0000\u0297\u0298\u0005;\u0000\u0000\u0298\u0002"+ + "\u0001\u0000\u0000\u0000\u0299\u029a\u0005(\u0000\u0000\u029a\u0004\u0001"+ + "\u0000\u0000\u0000\u029b\u029c\u0005)\u0000\u0000\u029c\u0006\u0001\u0000"+ + "\u0000\u0000\u029d\u029e\u0005,\u0000\u0000\u029e\b\u0001\u0000\u0000"+ + "\u0000\u029f\u02a0\u0005.\u0000\u0000\u02a0\n\u0001\u0000\u0000\u0000"+ + "\u02a1\u02a2\u0005[\u0000\u0000\u02a2\f\u0001\u0000\u0000\u0000\u02a3"+ + "\u02a4\u0005]\u0000\u0000\u02a4\u000e\u0001\u0000\u0000\u0000\u02a5\u02a6"+ + "\u0005A\u0000\u0000\u02a6\u02a7\u0005D\u0000\u0000\u02a7\u02a8\u0005D"+ + "\u0000\u0000\u02a8\u0010\u0001\u0000\u0000\u0000\u02a9\u02aa\u0005A\u0000"+ + "\u0000\u02aa\u02ab\u0005F\u0000\u0000\u02ab\u02ac\u0005T\u0000\u0000\u02ac"+ + "\u02ad\u0005E\u0000\u0000\u02ad\u02ae\u0005R\u0000\u0000\u02ae\u0012\u0001"+ + "\u0000\u0000\u0000\u02af\u02b0\u0005A\u0000\u0000\u02b0\u02b1\u0005L\u0000"+ + "\u0000\u02b1\u02b2\u0005L\u0000\u0000\u02b2\u0014\u0001\u0000\u0000\u0000"+ + "\u02b3\u02b4\u0005A\u0000\u0000\u02b4\u02b5\u0005L\u0000\u0000\u02b5\u02b6"+ + "\u0005T\u0000\u0000\u02b6\u02b7\u0005E\u0000\u0000\u02b7\u02b8\u0005R"+ + "\u0000\u0000\u02b8\u0016\u0001\u0000\u0000\u0000\u02b9\u02ba\u0005A\u0000"+ + "\u0000\u02ba\u02bb\u0005N\u0000\u0000\u02bb\u02bc\u0005A\u0000\u0000\u02bc"+ + "\u02bd\u0005L\u0000\u0000\u02bd\u02be\u0005Y\u0000\u0000\u02be\u02bf\u0005"+ + "Z\u0000\u0000\u02bf\u02c0\u0005E\u0000\u0000\u02c0\u0018\u0001\u0000\u0000"+ + "\u0000\u02c1\u02c2\u0005A\u0000\u0000\u02c2\u02c3\u0005N\u0000\u0000\u02c3"+ + "\u02c4\u0005D\u0000\u0000\u02c4\u001a\u0001\u0000\u0000\u0000\u02c5\u02c6"+ + "\u0005A\u0000\u0000\u02c6\u02c7\u0005N\u0000\u0000\u02c7\u02c8\u0005T"+ + "\u0000\u0000\u02c8\u02c9\u0005I\u0000\u0000\u02c9\u001c\u0001\u0000\u0000"+ + "\u0000\u02ca\u02cb\u0005A\u0000\u0000\u02cb\u02cc\u0005N\u0000\u0000\u02cc"+ + "\u02cd\u0005Y\u0000\u0000\u02cd\u001e\u0001\u0000\u0000\u0000\u02ce\u02cf"+ + "\u0005A\u0000\u0000\u02cf\u02d0\u0005N\u0000\u0000\u02d0\u02d1\u0005Y"+ + "\u0000\u0000\u02d1\u02d2\u0005_\u0000\u0000\u02d2\u02d3\u0005V\u0000\u0000"+ + "\u02d3\u02d4\u0005A\u0000\u0000\u02d4\u02d5\u0005L\u0000\u0000\u02d5\u02d6"+ + "\u0005U\u0000\u0000\u02d6\u02d7\u0005E\u0000\u0000\u02d7 \u0001\u0000"+ + "\u0000\u0000\u02d8\u02d9\u0005A\u0000\u0000\u02d9\u02da\u0005R\u0000\u0000"+ + "\u02da\u02db\u0005C\u0000\u0000\u02db\u02dc\u0005H\u0000\u0000\u02dc\u02dd"+ + "\u0005I\u0000\u0000\u02dd\u02de\u0005V\u0000\u0000\u02de\u02df\u0005E"+ + "\u0000\u0000\u02df\"\u0001\u0000\u0000\u0000\u02e0\u02e1\u0005A\u0000"+ + "\u0000\u02e1\u02e2\u0005R\u0000\u0000\u02e2\u02e3\u0005R\u0000\u0000\u02e3"+ + "\u02e4\u0005A\u0000\u0000\u02e4\u02e5\u0005Y\u0000\u0000\u02e5$\u0001"+ + "\u0000\u0000\u0000\u02e6\u02e7\u0005A\u0000\u0000\u02e7\u02e8\u0005S\u0000"+ + "\u0000\u02e8&\u0001\u0000\u0000\u0000\u02e9\u02ea\u0005A\u0000\u0000\u02ea"+ + "\u02eb\u0005S\u0000\u0000\u02eb\u02ec\u0005C\u0000\u0000\u02ec(\u0001"+ + "\u0000\u0000\u0000\u02ed\u02ee\u0005A\u0000\u0000\u02ee\u02ef\u0005T\u0000"+ + "\u0000\u02ef*\u0001\u0000\u0000\u0000\u02f0\u02f1\u0005A\u0000\u0000\u02f1"+ + "\u02f2\u0005U\u0000\u0000\u02f2\u02f3\u0005T\u0000\u0000\u02f3\u02f4\u0005"+ + "H\u0000\u0000\u02f4\u02f5\u0005O\u0000\u0000\u02f5\u02f6\u0005R\u0000"+ + "\u0000\u02f6\u02f7\u0005I\u0000\u0000\u02f7\u02f8\u0005Z\u0000\u0000\u02f8"+ + "\u02f9\u0005A\u0000\u0000\u02f9\u02fa\u0005T\u0000\u0000\u02fa\u02fb\u0005"+ + "I\u0000\u0000\u02fb\u02fc\u0005O\u0000\u0000\u02fc\u02fd\u0005N\u0000"+ + "\u0000\u02fd,\u0001\u0000\u0000\u0000\u02fe\u02ff\u0005B\u0000\u0000\u02ff"+ + "\u0300\u0005E\u0000\u0000\u0300\u0301\u0005T\u0000\u0000\u0301\u0302\u0005"+ + "W\u0000\u0000\u0302\u0303\u0005E\u0000\u0000\u0303\u0304\u0005E\u0000"+ + "\u0000\u0304\u0305\u0005N\u0000\u0000\u0305.\u0001\u0000\u0000\u0000\u0306"+ + "\u0307\u0005B\u0000\u0000\u0307\u0308\u0005O\u0000\u0000\u0308\u0309\u0005"+ + "T\u0000\u0000\u0309\u030a\u0005H\u0000\u0000\u030a0\u0001\u0000\u0000"+ + "\u0000\u030b\u030c\u0005B\u0000\u0000\u030c\u030d\u0005U\u0000\u0000\u030d"+ + "\u030e\u0005C\u0000\u0000\u030e\u030f\u0005K\u0000\u0000\u030f\u0310\u0005"+ + "E\u0000\u0000\u0310\u0311\u0005T\u0000\u0000\u03112\u0001\u0000\u0000"+ + "\u0000\u0312\u0313\u0005B\u0000\u0000\u0313\u0314\u0005U\u0000\u0000\u0314"+ + "\u0315\u0005C\u0000\u0000\u0315\u0316\u0005K\u0000\u0000\u0316\u0317\u0005"+ + "E\u0000\u0000\u0317\u0318\u0005T\u0000\u0000\u0318\u0319\u0005S\u0000"+ + "\u0000\u03194\u0001\u0000\u0000\u0000\u031a\u031b\u0005B\u0000\u0000\u031b"+ + "\u031c\u0005Y\u0000\u0000\u031c6\u0001\u0000\u0000\u0000\u031d\u031e\u0005"+ + "C\u0000\u0000\u031e\u031f\u0005A\u0000\u0000\u031f\u0320\u0005C\u0000"+ + "\u0000\u0320\u0321\u0005H\u0000\u0000\u0321\u0322\u0005E\u0000\u0000\u0322"+ + "8\u0001\u0000\u0000\u0000\u0323\u0324\u0005C\u0000\u0000\u0324\u0325\u0005"+ + "A\u0000\u0000\u0325\u0326\u0005S\u0000\u0000\u0326\u0327\u0005C\u0000"+ + "\u0000\u0327\u0328\u0005A\u0000\u0000\u0328\u0329\u0005D\u0000\u0000\u0329"+ + "\u032a\u0005E\u0000\u0000\u032a:\u0001\u0000\u0000\u0000\u032b\u032c\u0005"+ + "C\u0000\u0000\u032c\u032d\u0005A\u0000\u0000\u032d\u032e\u0005S\u0000"+ + "\u0000\u032e\u032f\u0005E\u0000\u0000\u032f<\u0001\u0000\u0000\u0000\u0330"+ + "\u0331\u0005C\u0000\u0000\u0331\u0332\u0005A\u0000\u0000\u0332\u0333\u0005"+ + "S\u0000\u0000\u0333\u0334\u0005T\u0000\u0000\u0334>\u0001\u0000\u0000"+ + "\u0000\u0335\u0336\u0005C\u0000\u0000\u0336\u0337\u0005A\u0000\u0000\u0337"+ + "\u0338\u0005T\u0000\u0000\u0338\u0339\u0005A\u0000\u0000\u0339\u033a\u0005"+ + "L\u0000\u0000\u033a\u033b\u0005O\u0000\u0000\u033b\u033c\u0005G\u0000"+ + "\u0000\u033c@\u0001\u0000\u0000\u0000\u033d\u033e\u0005C\u0000\u0000\u033e"+ + "\u033f\u0005A\u0000\u0000\u033f\u0340\u0005T\u0000\u0000\u0340\u0341\u0005"+ + "A\u0000\u0000\u0341\u0342\u0005L\u0000\u0000\u0342\u0343\u0005O\u0000"+ + "\u0000\u0343\u0344\u0005G\u0000\u0000\u0344\u0345\u0005S\u0000\u0000\u0345"+ + "B\u0001\u0000\u0000\u0000\u0346\u0347\u0005C\u0000\u0000\u0347\u0348\u0005"+ + "H\u0000\u0000\u0348\u0349\u0005A\u0000\u0000\u0349\u034a\u0005N\u0000"+ + "\u0000\u034a\u034b\u0005G\u0000\u0000\u034b\u034c\u0005E\u0000\u0000\u034c"+ + "D\u0001\u0000\u0000\u0000\u034d\u034e\u0005C\u0000\u0000\u034e\u034f\u0005"+ + "H\u0000\u0000\u034f\u0350\u0005E\u0000\u0000\u0350\u0351\u0005C\u0000"+ + "\u0000\u0351\u0352\u0005K\u0000\u0000\u0352F\u0001\u0000\u0000\u0000\u0353"+ + "\u0354\u0005C\u0000\u0000\u0354\u0355\u0005L\u0000\u0000\u0355\u0356\u0005"+ + "E\u0000\u0000\u0356\u0357\u0005A\u0000\u0000\u0357\u0358\u0005R\u0000"+ + "\u0000\u0358H\u0001\u0000\u0000\u0000\u0359\u035a\u0005C\u0000\u0000\u035a"+ + "\u035b\u0005L\u0000\u0000\u035b\u035c\u0005U\u0000\u0000\u035c\u035d\u0005"+ + "S\u0000\u0000\u035d\u035e\u0005T\u0000\u0000\u035e\u035f\u0005E\u0000"+ + "\u0000\u035f\u0360\u0005R\u0000\u0000\u0360J\u0001\u0000\u0000\u0000\u0361"+ + "\u0362\u0005C\u0000\u0000\u0362\u0363\u0005L\u0000\u0000\u0363\u0364\u0005"+ + "U\u0000\u0000\u0364\u0365\u0005S\u0000\u0000\u0365\u0366\u0005T\u0000"+ + "\u0000\u0366\u0367\u0005E\u0000\u0000\u0367\u0368\u0005R\u0000\u0000\u0368"+ + "\u0369\u0005E\u0000\u0000\u0369\u036a\u0005D\u0000\u0000\u036aL\u0001"+ + "\u0000\u0000\u0000\u036b\u036c\u0005C\u0000\u0000\u036c\u036d\u0005O\u0000"+ + "\u0000\u036d\u036e\u0005D\u0000\u0000\u036e\u036f\u0005E\u0000\u0000\u036f"+ + "\u0370\u0005G\u0000\u0000\u0370\u0371\u0005E\u0000\u0000\u0371\u0372\u0005"+ + "N\u0000\u0000\u0372N\u0001\u0000\u0000\u0000\u0373\u0374\u0005C\u0000"+ + "\u0000\u0374\u0375\u0005O\u0000\u0000\u0375\u0376\u0005L\u0000\u0000\u0376"+ + "\u0377\u0005L\u0000\u0000\u0377\u0378\u0005A\u0000\u0000\u0378\u0379\u0005"+ + "T\u0000\u0000\u0379\u037a\u0005E\u0000\u0000\u037aP\u0001\u0000\u0000"+ + "\u0000\u037b\u037c\u0005C\u0000\u0000\u037c\u037d\u0005O\u0000\u0000\u037d"+ + "\u037e\u0005L\u0000\u0000\u037e\u037f\u0005L\u0000\u0000\u037f\u0380\u0005"+ + "E\u0000\u0000\u0380\u0381\u0005C\u0000\u0000\u0381\u0382\u0005T\u0000"+ + "\u0000\u0382\u0383\u0005I\u0000\u0000\u0383\u0384\u0005O\u0000\u0000\u0384"+ + "\u0385\u0005N\u0000\u0000\u0385R\u0001\u0000\u0000\u0000\u0386\u0387\u0005"+ + "C\u0000\u0000\u0387\u0388\u0005O\u0000\u0000\u0388\u0389\u0005L\u0000"+ + "\u0000\u0389\u038a\u0005U\u0000\u0000\u038a\u038b\u0005M\u0000\u0000\u038b"+ + "\u038c\u0005N\u0000\u0000\u038cT\u0001\u0000\u0000\u0000\u038d\u038e\u0005"+ + "C\u0000\u0000\u038e\u038f\u0005O\u0000\u0000\u038f\u0390\u0005L\u0000"+ + "\u0000\u0390\u0391\u0005U\u0000\u0000\u0391\u0392\u0005M\u0000\u0000\u0392"+ + "\u0393\u0005N\u0000\u0000\u0393\u0394\u0005S\u0000\u0000\u0394V\u0001"+ + "\u0000\u0000\u0000\u0395\u0396\u0005C\u0000\u0000\u0396\u0397\u0005O\u0000"+ + "\u0000\u0397\u0398\u0005M\u0000\u0000\u0398\u0399\u0005M\u0000\u0000\u0399"+ + "\u039a\u0005E\u0000\u0000\u039a\u039b\u0005N\u0000\u0000\u039b\u039c\u0005"+ + "T\u0000\u0000\u039cX\u0001\u0000\u0000\u0000\u039d\u039e\u0005C\u0000"+ + "\u0000\u039e\u039f\u0005O\u0000\u0000\u039f\u03a0\u0005M\u0000\u0000\u03a0"+ + "\u03a1\u0005M\u0000\u0000\u03a1\u03a2\u0005I\u0000\u0000\u03a2\u03a3\u0005"+ + "T\u0000\u0000\u03a3Z\u0001\u0000\u0000\u0000\u03a4\u03a5\u0005C\u0000"+ + "\u0000\u03a5\u03a6\u0005O\u0000\u0000\u03a6\u03a7\u0005M\u0000\u0000\u03a7"+ + "\u03a8\u0005P\u0000\u0000\u03a8\u03a9\u0005A\u0000\u0000\u03a9\u03aa\u0005"+ + "C\u0000\u0000\u03aa\u03ab\u0005T\u0000\u0000\u03ab\\\u0001\u0000\u0000"+ + "\u0000\u03ac\u03ad\u0005C\u0000\u0000\u03ad\u03ae\u0005O\u0000\u0000\u03ae"+ + "\u03af\u0005M\u0000\u0000\u03af\u03b0\u0005P\u0000\u0000\u03b0\u03b1\u0005"+ + "A\u0000\u0000\u03b1\u03b2\u0005C\u0000\u0000\u03b2\u03b3\u0005T\u0000"+ + "\u0000\u03b3\u03b4\u0005I\u0000\u0000\u03b4\u03b5\u0005O\u0000\u0000\u03b5"+ + "\u03b6\u0005N\u0000\u0000\u03b6\u03b7\u0005S\u0000\u0000\u03b7^\u0001"+ + "\u0000\u0000\u0000\u03b8\u03b9\u0005C\u0000\u0000\u03b9\u03ba\u0005O\u0000"+ + "\u0000\u03ba\u03bb\u0005M\u0000\u0000\u03bb\u03bc\u0005P\u0000\u0000\u03bc"+ + "\u03bd\u0005U\u0000\u0000\u03bd\u03be\u0005T\u0000\u0000\u03be\u03bf\u0005"+ + "E\u0000\u0000\u03bf`\u0001\u0000\u0000\u0000\u03c0\u03c1\u0005C\u0000"+ + "\u0000\u03c1\u03c2\u0005O\u0000\u0000\u03c2\u03c3\u0005N\u0000\u0000\u03c3"+ + "\u03c4\u0005C\u0000\u0000\u03c4\u03c5\u0005A\u0000\u0000\u03c5\u03c6\u0005"+ + "T\u0000\u0000\u03c6\u03c7\u0005E\u0000\u0000\u03c7\u03c8\u0005N\u0000"+ + "\u0000\u03c8\u03c9\u0005A\u0000\u0000\u03c9\u03ca\u0005T\u0000\u0000\u03ca"+ + "\u03cb\u0005E\u0000\u0000\u03cbb\u0001\u0000\u0000\u0000\u03cc\u03cd\u0005"+ + "C\u0000\u0000\u03cd\u03ce\u0005O\u0000\u0000\u03ce\u03cf\u0005N\u0000"+ + "\u0000\u03cf\u03d0\u0005S\u0000\u0000\u03d0\u03d1\u0005T\u0000\u0000\u03d1"+ + "\u03d2\u0005R\u0000\u0000\u03d2\u03d3\u0005A\u0000\u0000\u03d3\u03d4\u0005"+ + "I\u0000\u0000\u03d4\u03d5\u0005N\u0000\u0000\u03d5\u03d6\u0005T\u0000"+ + "\u0000\u03d6d\u0001\u0000\u0000\u0000\u03d7\u03d8\u0005C\u0000\u0000\u03d8"+ + "\u03d9\u0005O\u0000\u0000\u03d9\u03da\u0005S\u0000\u0000\u03da\u03db\u0005"+ + "T\u0000\u0000\u03dbf\u0001\u0000\u0000\u0000\u03dc\u03dd\u0005C\u0000"+ + "\u0000\u03dd\u03de\u0005R\u0000\u0000\u03de\u03df\u0005E\u0000\u0000\u03df"+ + "\u03e0\u0005A\u0000\u0000\u03e0\u03e1\u0005T\u0000\u0000\u03e1\u03e2\u0005"+ + "E\u0000\u0000\u03e2h\u0001\u0000\u0000\u0000\u03e3\u03e4\u0005C\u0000"+ + "\u0000\u03e4\u03e5\u0005R\u0000\u0000\u03e5\u03e6\u0005O\u0000\u0000\u03e6"+ + "\u03e7\u0005S\u0000\u0000\u03e7\u03e8\u0005S\u0000\u0000\u03e8j\u0001"+ + "\u0000\u0000\u0000\u03e9\u03ea\u0005C\u0000\u0000\u03ea\u03eb\u0005U\u0000"+ + "\u0000\u03eb\u03ec\u0005B\u0000\u0000\u03ec\u03ed\u0005E\u0000\u0000\u03ed"+ + "l\u0001\u0000\u0000\u0000\u03ee\u03ef\u0005C\u0000\u0000\u03ef\u03f0\u0005"+ + "U\u0000\u0000\u03f0\u03f1\u0005R\u0000\u0000\u03f1\u03f2\u0005R\u0000"+ + "\u0000\u03f2\u03f3\u0005E\u0000\u0000\u03f3\u03f4\u0005N\u0000\u0000\u03f4"+ + "\u03f5\u0005T\u0000\u0000\u03f5n\u0001\u0000\u0000\u0000\u03f6\u03f7\u0005"+ + "C\u0000\u0000\u03f7\u03f8\u0005U\u0000\u0000\u03f8\u03f9\u0005R\u0000"+ + "\u0000\u03f9\u03fa\u0005R\u0000\u0000\u03fa\u03fb\u0005E\u0000\u0000\u03fb"+ + "\u03fc\u0005N\u0000\u0000\u03fc\u03fd\u0005T\u0000\u0000\u03fd\u03fe\u0005"+ + "_\u0000\u0000\u03fe\u03ff\u0005D\u0000\u0000\u03ff\u0400\u0005A\u0000"+ + "\u0000\u0400\u0401\u0005T\u0000\u0000\u0401\u0402\u0005E\u0000\u0000\u0402"+ + "p\u0001\u0000\u0000\u0000\u0403\u0404\u0005C\u0000\u0000\u0404\u0405\u0005"+ + "U\u0000\u0000\u0405\u0406\u0005R\u0000\u0000\u0406\u0407\u0005R\u0000"+ + "\u0000\u0407\u0408\u0005E\u0000\u0000\u0408\u0409\u0005N\u0000\u0000\u0409"+ + "\u040a\u0005T\u0000\u0000\u040a\u040b\u0005_\u0000\u0000\u040b\u040c\u0005"+ + "T\u0000\u0000\u040c\u040d\u0005I\u0000\u0000\u040d\u040e\u0005M\u0000"+ + "\u0000\u040e\u040f\u0005E\u0000\u0000\u040fr\u0001\u0000\u0000\u0000\u0410"+ + "\u0411\u0005C\u0000\u0000\u0411\u0412\u0005U\u0000\u0000\u0412\u0413\u0005"+ + "R\u0000\u0000\u0413\u0414\u0005R\u0000\u0000\u0414\u0415\u0005E\u0000"+ + "\u0000\u0415\u0416\u0005N\u0000\u0000\u0416\u0417\u0005T\u0000\u0000\u0417"+ + "\u0418\u0005_\u0000\u0000\u0418\u0419\u0005T\u0000\u0000\u0419\u041a\u0005"+ + "I\u0000\u0000\u041a\u041b\u0005M\u0000\u0000\u041b\u041c\u0005E\u0000"+ + "\u0000\u041c\u041d\u0005S\u0000\u0000\u041d\u041e\u0005T\u0000\u0000\u041e"+ + "\u041f\u0005A\u0000\u0000\u041f\u0420\u0005M\u0000\u0000\u0420\u0421\u0005"+ + "P\u0000\u0000\u0421t\u0001\u0000\u0000\u0000\u0422\u0423\u0005C\u0000"+ + "\u0000\u0423\u0424\u0005U\u0000\u0000\u0424\u0425\u0005R\u0000\u0000\u0425"+ + "\u0426\u0005R\u0000\u0000\u0426\u0427\u0005E\u0000\u0000\u0427\u0428\u0005"+ + "N\u0000\u0000\u0428\u0429\u0005T\u0000\u0000\u0429\u042a\u0005_\u0000"+ + "\u0000\u042a\u042b\u0005U\u0000\u0000\u042b\u042c\u0005S\u0000\u0000\u042c"+ + "\u042d\u0005E\u0000\u0000\u042d\u042e\u0005R\u0000\u0000\u042ev\u0001"+ + "\u0000\u0000\u0000\u042f\u0430\u0005D\u0000\u0000\u0430\u0431\u0005A\u0000"+ + "\u0000\u0431\u0432\u0005Y\u0000\u0000\u0432x\u0001\u0000\u0000\u0000\u0433"+ + "\u0434\u0005D\u0000\u0000\u0434\u0435\u0005A\u0000\u0000\u0435\u0436\u0005"+ + "Y\u0000\u0000\u0436\u0437\u0005O\u0000\u0000\u0437\u0438\u0005F\u0000"+ + "\u0000\u0438\u0439\u0005Y\u0000\u0000\u0439\u043a\u0005E\u0000\u0000\u043a"+ + "\u043b\u0005A\u0000\u0000\u043b\u043c\u0005R\u0000\u0000\u043cz\u0001"+ + "\u0000\u0000\u0000\u043d\u043e\u0005D\u0000\u0000\u043e\u043f\u0005A\u0000"+ + "\u0000\u043f\u0440\u0005T\u0000\u0000\u0440\u0441\u0005A\u0000\u0000\u0441"+ + "|\u0001\u0000\u0000\u0000\u0442\u0443\u0005D\u0000\u0000\u0443\u0444\u0005"+ + "A\u0000\u0000\u0444\u0445\u0005T\u0000\u0000\u0445\u0446\u0005A\u0000"+ + "\u0000\u0446\u0447\u0005B\u0000\u0000\u0447\u0448\u0005A\u0000\u0000\u0448"+ + "\u0449\u0005S\u0000\u0000\u0449\u044a\u0005E\u0000\u0000\u044a~\u0001"+ + "\u0000\u0000\u0000\u044b\u044c\u0005D\u0000\u0000\u044c\u044d\u0005A\u0000"+ + "\u0000\u044d\u044e\u0005T\u0000\u0000\u044e\u044f\u0005A\u0000\u0000\u044f"+ + "\u0450\u0005B\u0000\u0000\u0450\u0451\u0005A\u0000\u0000\u0451\u0452\u0005"+ + "S\u0000\u0000\u0452\u0453\u0005E\u0000\u0000\u0453\u0454\u0005S\u0000"+ + "\u0000\u0454\u0080\u0001\u0000\u0000\u0000\u0455\u0456\u0005D\u0000\u0000"+ + "\u0456\u0457\u0005A\u0000\u0000\u0457\u0458\u0005T\u0000\u0000\u0458\u0459"+ + "\u0005E\u0000\u0000\u0459\u045a\u0005A\u0000\u0000\u045a\u045b\u0005D"+ + "\u0000\u0000\u045b\u045c\u0005D\u0000\u0000\u045c\u0082\u0001\u0000\u0000"+ + "\u0000\u045d\u045e\u0005D\u0000\u0000\u045e\u045f\u0005A\u0000\u0000\u045f"+ + "\u0460\u0005T\u0000\u0000\u0460\u0461\u0005E\u0000\u0000\u0461\u0462\u0005"+ + "D\u0000\u0000\u0462\u0463\u0005I\u0000\u0000\u0463\u0464\u0005F\u0000"+ + "\u0000\u0464\u0465\u0005F\u0000\u0000\u0465\u0084\u0001\u0000\u0000\u0000"+ + "\u0466\u0467\u0005D\u0000\u0000\u0467\u0468\u0005B\u0000\u0000\u0468\u0469"+ + "\u0005P\u0000\u0000\u0469\u046a\u0005R\u0000\u0000\u046a\u046b\u0005O"+ + "\u0000\u0000\u046b\u046c\u0005P\u0000\u0000\u046c\u046d\u0005E\u0000\u0000"+ + "\u046d\u046e\u0005R\u0000\u0000\u046e\u046f\u0005T\u0000\u0000\u046f\u0470"+ + "\u0005I\u0000\u0000\u0470\u0471\u0005E\u0000\u0000\u0471\u0472\u0005S"+ + "\u0000\u0000\u0472\u0086\u0001\u0000\u0000\u0000\u0473\u0474\u0005D\u0000"+ + "\u0000\u0474\u0475\u0005E\u0000\u0000\u0475\u0476\u0005F\u0000\u0000\u0476"+ + "\u0477\u0005A\u0000\u0000\u0477\u0478\u0005U\u0000\u0000\u0478\u0479\u0005"+ + "L\u0000\u0000\u0479\u047a\u0005T\u0000\u0000\u047a\u0088\u0001\u0000\u0000"+ + "\u0000\u047b\u047c\u0005D\u0000\u0000\u047c\u047d\u0005E\u0000\u0000\u047d"+ + "\u047e\u0005F\u0000\u0000\u047e\u047f\u0005I\u0000\u0000\u047f\u0480\u0005"+ + "N\u0000\u0000\u0480\u0481\u0005E\u0000\u0000\u0481\u0482\u0005D\u0000"+ + "\u0000\u0482\u008a\u0001\u0000\u0000\u0000\u0483\u0484\u0005D\u0000\u0000"+ + "\u0484\u0485\u0005E\u0000\u0000\u0485\u0486\u0005L\u0000\u0000\u0486\u0487"+ + "\u0005E\u0000\u0000\u0487\u0488\u0005T\u0000\u0000\u0488\u0489\u0005E"+ + "\u0000\u0000\u0489\u008c\u0001\u0000\u0000\u0000\u048a\u048b\u0005D\u0000"+ + "\u0000\u048b\u048c\u0005E\u0000\u0000\u048c\u048d\u0005L\u0000\u0000\u048d"+ + "\u048e\u0005I\u0000\u0000\u048e\u048f\u0005M\u0000\u0000\u048f\u0490\u0005"+ + "I\u0000\u0000\u0490\u0491\u0005T\u0000\u0000\u0491\u0492\u0005E\u0000"+ + "\u0000\u0492\u0493\u0005D\u0000\u0000\u0493\u008e\u0001\u0000\u0000\u0000"+ + "\u0494\u0495\u0005D\u0000\u0000\u0495\u0496\u0005E\u0000\u0000\u0496\u0497"+ + "\u0005S\u0000\u0000\u0497\u0498\u0005C\u0000\u0000\u0498\u0090\u0001\u0000"+ + "\u0000\u0000\u0499\u049a\u0005D\u0000\u0000\u049a\u049b\u0005E\u0000\u0000"+ + "\u049b\u049c\u0005S\u0000\u0000\u049c\u049d\u0005C\u0000\u0000\u049d\u049e"+ + "\u0005R\u0000\u0000\u049e\u049f\u0005I\u0000\u0000\u049f\u04a0\u0005B"+ + "\u0000\u0000\u04a0\u04a1\u0005E\u0000\u0000\u04a1\u0092\u0001\u0000\u0000"+ + "\u0000\u04a2\u04a3\u0005D\u0000\u0000\u04a3\u04a4\u0005F\u0000\u0000\u04a4"+ + "\u04a5\u0005S\u0000\u0000\u04a5\u0094\u0001\u0000\u0000\u0000\u04a6\u04a7"+ + "\u0005D\u0000\u0000\u04a7\u04a8\u0005I\u0000\u0000\u04a8\u04a9\u0005R"+ + "\u0000\u0000\u04a9\u04aa\u0005E\u0000\u0000\u04aa\u04ab\u0005C\u0000\u0000"+ + "\u04ab\u04ac\u0005T\u0000\u0000\u04ac\u04ad\u0005O\u0000\u0000\u04ad\u04ae"+ + "\u0005R\u0000\u0000\u04ae\u04af\u0005I\u0000\u0000\u04af\u04b0\u0005E"+ + "\u0000\u0000\u04b0\u04b1\u0005S\u0000\u0000\u04b1\u0096\u0001\u0000\u0000"+ + "\u0000\u04b2\u04b3\u0005D\u0000\u0000\u04b3\u04b4\u0005I\u0000\u0000\u04b4"+ + "\u04b5\u0005R\u0000\u0000\u04b5\u04b6\u0005E\u0000\u0000\u04b6\u04b7\u0005"+ + "C\u0000\u0000\u04b7\u04b8\u0005T\u0000\u0000\u04b8\u04b9\u0005O\u0000"+ + "\u0000\u04b9\u04ba\u0005R\u0000\u0000\u04ba\u04bb\u0005Y\u0000\u0000\u04bb"+ + "\u0098\u0001\u0000\u0000\u0000\u04bc\u04bd\u0005D\u0000\u0000\u04bd\u04be"+ + "\u0005I\u0000\u0000\u04be\u04bf\u0005S\u0000\u0000\u04bf\u04c0\u0005T"+ + "\u0000\u0000\u04c0\u04c1\u0005I\u0000\u0000\u04c1\u04c2\u0005N\u0000\u0000"+ + "\u04c2\u04c3\u0005C\u0000\u0000\u04c3\u04c4\u0005T\u0000\u0000\u04c4\u009a"+ + "\u0001\u0000\u0000\u0000\u04c5\u04c6\u0005D\u0000\u0000\u04c6\u04c7\u0005"+ + "I\u0000\u0000\u04c7\u04c8\u0005S\u0000\u0000\u04c8\u04c9\u0005T\u0000"+ + "\u0000\u04c9\u04ca\u0005R\u0000\u0000\u04ca\u04cb\u0005I\u0000\u0000\u04cb"+ + "\u04cc\u0005B\u0000\u0000\u04cc\u04cd\u0005U\u0000\u0000\u04cd\u04ce\u0005"+ + "T\u0000\u0000\u04ce\u04cf\u0005E\u0000\u0000\u04cf\u009c\u0001\u0000\u0000"+ + "\u0000\u04d0\u04d1\u0005D\u0000\u0000\u04d1\u04d2\u0005I\u0000\u0000\u04d2"+ + "\u04d3\u0005V\u0000\u0000\u04d3\u009e\u0001\u0000\u0000\u0000\u04d4\u04d5"+ + "\u0005D\u0000\u0000\u04d5\u04d6\u0005R\u0000\u0000\u04d6\u04d7\u0005O"+ + "\u0000\u0000\u04d7\u04d8\u0005P\u0000\u0000\u04d8\u00a0\u0001\u0000\u0000"+ + "\u0000\u04d9\u04da\u0005E\u0000\u0000\u04da\u04db\u0005L\u0000\u0000\u04db"+ + "\u04dc\u0005S\u0000\u0000\u04dc\u04dd\u0005E\u0000\u0000\u04dd\u00a2\u0001"+ + "\u0000\u0000\u0000\u04de\u04df\u0005E\u0000\u0000\u04df\u04e0\u0005N\u0000"+ + "\u0000\u04e0\u04e1\u0005D\u0000\u0000\u04e1\u00a4\u0001\u0000\u0000\u0000"+ + "\u04e2\u04e3\u0005E\u0000\u0000\u04e3\u04e4\u0005S\u0000\u0000\u04e4\u04e5"+ + "\u0005C\u0000\u0000\u04e5\u04e6\u0005A\u0000\u0000\u04e6\u04e7\u0005P"+ + "\u0000\u0000\u04e7\u04e8\u0005E\u0000\u0000\u04e8\u00a6\u0001\u0000\u0000"+ + "\u0000\u04e9\u04ea\u0005E\u0000\u0000\u04ea\u04eb\u0005S\u0000\u0000\u04eb"+ + "\u04ec\u0005C\u0000\u0000\u04ec\u04ed\u0005A\u0000\u0000\u04ed\u04ee\u0005"+ + "P\u0000\u0000\u04ee\u04ef\u0005E\u0000\u0000\u04ef\u04f0\u0005D\u0000"+ + "\u0000\u04f0\u00a8\u0001\u0000\u0000\u0000\u04f1\u04f2\u0005E\u0000\u0000"+ + "\u04f2\u04f3\u0005X\u0000\u0000\u04f3\u04f4\u0005C\u0000\u0000\u04f4\u04f5"+ + "\u0005E\u0000\u0000\u04f5\u04f6\u0005P\u0000\u0000\u04f6\u04f7\u0005T"+ + "\u0000\u0000\u04f7\u00aa\u0001\u0000\u0000\u0000\u04f8\u04f9\u0005E\u0000"+ + "\u0000\u04f9\u04fa\u0005X\u0000\u0000\u04fa\u04fb\u0005C\u0000\u0000\u04fb"+ + "\u04fc\u0005H\u0000\u0000\u04fc\u04fd\u0005A\u0000\u0000\u04fd\u04fe\u0005"+ + "N\u0000\u0000\u04fe\u04ff\u0005G\u0000\u0000\u04ff\u0500\u0005E\u0000"+ + "\u0000\u0500\u00ac\u0001\u0000\u0000\u0000\u0501\u0502\u0005E\u0000\u0000"+ + "\u0502\u0503\u0005X\u0000\u0000\u0503\u0504\u0005I\u0000\u0000\u0504\u0505"+ + "\u0005S\u0000\u0000\u0505\u0506\u0005T\u0000\u0000\u0506\u0507\u0005S"+ + "\u0000\u0000\u0507\u00ae\u0001\u0000\u0000\u0000\u0508\u0509\u0005E\u0000"+ + "\u0000\u0509\u050a\u0005X\u0000\u0000\u050a\u050b\u0005P\u0000\u0000\u050b"+ + "\u050c\u0005L\u0000\u0000\u050c\u050d\u0005A\u0000\u0000\u050d\u050e\u0005"+ + "I\u0000\u0000\u050e\u050f\u0005N\u0000\u0000\u050f\u00b0\u0001\u0000\u0000"+ + "\u0000\u0510\u0511\u0005E\u0000\u0000\u0511\u0512\u0005X\u0000\u0000\u0512"+ + "\u0513\u0005P\u0000\u0000\u0513\u0514\u0005O\u0000\u0000\u0514\u0515\u0005"+ + "R\u0000\u0000\u0515\u0516\u0005T\u0000\u0000\u0516\u00b2\u0001\u0000\u0000"+ + "\u0000\u0517\u0518\u0005E\u0000\u0000\u0518\u0519\u0005X\u0000\u0000\u0519"+ + "\u051a\u0005T\u0000\u0000\u051a\u051b\u0005E\u0000\u0000\u051b\u051c\u0005"+ + "N\u0000\u0000\u051c\u051d\u0005D\u0000\u0000\u051d\u051e\u0005E\u0000"+ + "\u0000\u051e\u051f\u0005D\u0000\u0000\u051f\u00b4\u0001\u0000\u0000\u0000"+ + "\u0520\u0521\u0005E\u0000\u0000\u0521\u0522\u0005X\u0000\u0000\u0522\u0523"+ + "\u0005T\u0000\u0000\u0523\u0524\u0005E\u0000\u0000\u0524\u0525\u0005R"+ + "\u0000\u0000\u0525\u0526\u0005N\u0000\u0000\u0526\u0527\u0005A\u0000\u0000"+ + "\u0527\u0528\u0005L\u0000\u0000\u0528\u00b6\u0001\u0000\u0000\u0000\u0529"+ + "\u052a\u0005E\u0000\u0000\u052a\u052b\u0005X\u0000\u0000\u052b\u052c\u0005"+ + "T\u0000\u0000\u052c\u052d\u0005R\u0000\u0000\u052d\u052e\u0005A\u0000"+ + "\u0000\u052e\u052f\u0005C\u0000\u0000\u052f\u0530\u0005T\u0000\u0000\u0530"+ + "\u00b8\u0001\u0000\u0000\u0000\u0531\u0532\u0005F\u0000\u0000\u0532\u0533"+ + "\u0005A\u0000\u0000\u0533\u0534\u0005L\u0000\u0000\u0534\u0535\u0005S"+ + "\u0000\u0000\u0535\u0536\u0005E\u0000\u0000\u0536\u00ba\u0001\u0000\u0000"+ + "\u0000\u0537\u0538\u0005F\u0000\u0000\u0538\u0539\u0005E\u0000\u0000\u0539"+ + "\u053a\u0005T\u0000\u0000\u053a\u053b\u0005C\u0000\u0000\u053b\u053c\u0005"+ + "H\u0000\u0000\u053c\u00bc\u0001\u0000\u0000\u0000\u053d\u053e\u0005F\u0000"+ + "\u0000\u053e\u053f\u0005I\u0000\u0000\u053f\u0540\u0005E\u0000\u0000\u0540"+ + "\u0541\u0005L\u0000\u0000\u0541\u0542\u0005D\u0000\u0000\u0542\u0543\u0005"+ + "S\u0000\u0000\u0543\u00be\u0001\u0000\u0000\u0000\u0544\u0545\u0005F\u0000"+ + "\u0000\u0545\u0546\u0005I\u0000\u0000\u0546\u0547\u0005L\u0000\u0000\u0547"+ + "\u0548\u0005T\u0000\u0000\u0548\u0549\u0005E\u0000\u0000\u0549\u054a\u0005"+ + "R\u0000\u0000\u054a\u00c0\u0001\u0000\u0000\u0000\u054b\u054c\u0005F\u0000"+ + "\u0000\u054c\u054d\u0005I\u0000\u0000\u054d\u054e\u0005L\u0000\u0000\u054e"+ + "\u054f\u0005E\u0000\u0000\u054f\u0550\u0005F\u0000\u0000\u0550\u0551\u0005"+ + "O\u0000\u0000\u0551\u0552\u0005R\u0000\u0000\u0552\u0553\u0005M\u0000"+ + "\u0000\u0553\u0554\u0005A\u0000\u0000\u0554\u0555\u0005T\u0000\u0000\u0555"+ + "\u00c2\u0001\u0000\u0000\u0000\u0556\u0557\u0005F\u0000\u0000\u0557\u0558"+ + "\u0005I\u0000\u0000\u0558\u0559\u0005R\u0000\u0000\u0559\u055a\u0005S"+ + "\u0000\u0000\u055a\u055b\u0005T\u0000\u0000\u055b\u00c4\u0001\u0000\u0000"+ + "\u0000\u055c\u055d\u0005F\u0000\u0000\u055d\u055e\u0005O\u0000\u0000\u055e"+ + "\u055f\u0005L\u0000\u0000\u055f\u0560\u0005L\u0000\u0000\u0560\u0561\u0005"+ + "O\u0000\u0000\u0561\u0562\u0005W\u0000\u0000\u0562\u0563\u0005I\u0000"+ + "\u0000\u0563\u0564\u0005N\u0000\u0000\u0564\u0565\u0005G\u0000\u0000\u0565"+ + "\u00c6\u0001\u0000\u0000\u0000\u0566\u0567\u0005F\u0000\u0000\u0567\u0568"+ + "\u0005O\u0000\u0000\u0568\u0569\u0005R\u0000\u0000\u0569\u00c8\u0001\u0000"+ + "\u0000\u0000\u056a\u056b\u0005F\u0000\u0000\u056b\u056c\u0005O\u0000\u0000"+ + "\u056c\u056d\u0005R\u0000\u0000\u056d\u056e\u0005E\u0000\u0000\u056e\u056f"+ + "\u0005I\u0000\u0000\u056f\u0570\u0005G\u0000\u0000\u0570\u0571\u0005N"+ + "\u0000\u0000\u0571\u00ca\u0001\u0000\u0000\u0000\u0572\u0573\u0005F\u0000"+ + "\u0000\u0573\u0574\u0005O\u0000\u0000\u0574\u0575\u0005R\u0000\u0000\u0575"+ + "\u0576\u0005M\u0000\u0000\u0576\u0577\u0005A\u0000\u0000\u0577\u0578\u0005"+ + "T\u0000\u0000\u0578\u00cc\u0001\u0000\u0000\u0000\u0579\u057a\u0005F\u0000"+ + "\u0000\u057a\u057b\u0005O\u0000\u0000\u057b\u057c\u0005R\u0000\u0000\u057c"+ + "\u057d\u0005M\u0000\u0000\u057d\u057e\u0005A\u0000\u0000\u057e\u057f\u0005"+ + "T\u0000\u0000\u057f\u0580\u0005T\u0000\u0000\u0580\u0581\u0005E\u0000"+ + "\u0000\u0581\u0582\u0005D\u0000\u0000\u0582\u00ce\u0001\u0000\u0000\u0000"+ + "\u0583\u0584\u0005F\u0000\u0000\u0584\u0585\u0005R\u0000\u0000\u0585\u0586"+ + "\u0005O\u0000\u0000\u0586\u0587\u0005M\u0000\u0000\u0587\u00d0\u0001\u0000"+ + "\u0000\u0000\u0588\u0589\u0005F\u0000\u0000\u0589\u058a\u0005U\u0000\u0000"+ + "\u058a\u058b\u0005L\u0000\u0000\u058b\u058c\u0005L\u0000\u0000\u058c\u00d2"+ + "\u0001\u0000\u0000\u0000\u058d\u058e\u0005F\u0000\u0000\u058e\u058f\u0005"+ + "U\u0000\u0000\u058f\u0590\u0005N\u0000\u0000\u0590\u0591\u0005C\u0000"+ + "\u0000\u0591\u0592\u0005T\u0000\u0000\u0592\u0593\u0005I\u0000\u0000\u0593"+ + "\u0594\u0005O\u0000\u0000\u0594\u0595\u0005N\u0000\u0000\u0595\u00d4\u0001"+ + "\u0000\u0000\u0000\u0596\u0597\u0005F\u0000\u0000\u0597\u0598\u0005U\u0000"+ + "\u0000\u0598\u0599\u0005N\u0000\u0000\u0599\u059a\u0005C\u0000\u0000\u059a"+ + "\u059b\u0005T\u0000\u0000\u059b\u059c\u0005I\u0000\u0000\u059c\u059d\u0005"+ + "O\u0000\u0000\u059d\u059e\u0005N\u0000\u0000\u059e\u059f\u0005S\u0000"+ + "\u0000\u059f\u00d6\u0001\u0000\u0000\u0000\u05a0\u05a1\u0005G\u0000\u0000"+ + "\u05a1\u05a2\u0005L\u0000\u0000\u05a2\u05a3\u0005O\u0000\u0000\u05a3\u05a4"+ + "\u0005B\u0000\u0000\u05a4\u05a5\u0005A\u0000\u0000\u05a5\u05a6\u0005L"+ + "\u0000\u0000\u05a6\u00d8\u0001\u0000\u0000\u0000\u05a7\u05a8\u0005G\u0000"+ + "\u0000\u05a8\u05a9\u0005R\u0000\u0000\u05a9\u05aa\u0005A\u0000\u0000\u05aa"+ + "\u05ab\u0005N\u0000\u0000\u05ab\u05ac\u0005T\u0000\u0000\u05ac\u00da\u0001"+ + "\u0000\u0000\u0000\u05ad\u05ae\u0005G\u0000\u0000\u05ae\u05af\u0005R\u0000"+ + "\u0000\u05af\u05b0\u0005O\u0000\u0000\u05b0\u05b1\u0005U\u0000\u0000\u05b1"+ + "\u05b2\u0005P\u0000\u0000\u05b2\u00dc\u0001\u0000\u0000\u0000\u05b3\u05b4"+ + "\u0005G\u0000\u0000\u05b4\u05b5\u0005R\u0000\u0000\u05b5\u05b6\u0005O"+ + "\u0000\u0000\u05b6\u05b7\u0005U\u0000\u0000\u05b7\u05b8\u0005P\u0000\u0000"+ + "\u05b8\u05b9\u0005I\u0000\u0000\u05b9\u05ba\u0005N\u0000\u0000\u05ba\u05bb"+ + "\u0005G\u0000\u0000\u05bb\u00de\u0001\u0000\u0000\u0000\u05bc\u05bd\u0005"+ + "H\u0000\u0000\u05bd\u05be\u0005A\u0000\u0000\u05be\u05bf\u0005V\u0000"+ + "\u0000\u05bf\u05c0\u0005I\u0000\u0000\u05c0\u05c1\u0005N\u0000\u0000\u05c1"+ + "\u05c2\u0005G\u0000\u0000\u05c2\u00e0\u0001\u0000\u0000\u0000\u05c3\u05c4"+ + "\u0005H\u0000\u0000\u05c4\u05c5\u0005O\u0000\u0000\u05c5\u05c6\u0005U"+ + "\u0000\u0000\u05c6\u05c7\u0005R\u0000\u0000\u05c7\u00e2\u0001\u0000\u0000"+ + "\u0000\u05c8\u05c9\u0005I\u0000\u0000\u05c9\u05ca\u0005F\u0000\u0000\u05ca"+ + "\u00e4\u0001\u0000\u0000\u0000\u05cb\u05cc\u0005I\u0000\u0000\u05cc\u05cd"+ + "\u0005G\u0000\u0000\u05cd\u05ce\u0005N\u0000\u0000\u05ce\u05cf\u0005O"+ + "\u0000\u0000\u05cf\u05d0\u0005R\u0000\u0000\u05d0\u05d1\u0005E\u0000\u0000"+ + "\u05d1\u00e6\u0001\u0000\u0000\u0000\u05d2\u05d3\u0005I\u0000\u0000\u05d3"+ + "\u05d4\u0005M\u0000\u0000\u05d4\u05d5\u0005P\u0000\u0000\u05d5\u05d6\u0005"+ + "O\u0000\u0000\u05d6\u05d7\u0005R\u0000\u0000\u05d7\u05d8\u0005T\u0000"+ + "\u0000\u05d8\u00e8\u0001\u0000\u0000\u0000\u05d9\u05da\u0005I\u0000\u0000"+ + "\u05da\u05db\u0005N\u0000\u0000\u05db\u00ea\u0001\u0000\u0000\u0000\u05dc"+ + "\u05dd\u0005I\u0000\u0000\u05dd\u05de\u0005N\u0000\u0000\u05de\u05df\u0005"+ + "D\u0000\u0000\u05df\u05e0\u0005E\u0000\u0000\u05e0\u05e1\u0005X\u0000"+ + "\u0000\u05e1\u00ec\u0001\u0000\u0000\u0000\u05e2\u05e3\u0005I\u0000\u0000"+ + "\u05e3\u05e4\u0005N\u0000\u0000\u05e4\u05e5\u0005D\u0000\u0000\u05e5\u05e6"+ + "\u0005E\u0000\u0000\u05e6\u05e7\u0005X\u0000\u0000\u05e7\u05e8\u0005E"+ + "\u0000\u0000\u05e8\u05e9\u0005S\u0000\u0000\u05e9\u00ee\u0001\u0000\u0000"+ + "\u0000\u05ea\u05eb\u0005I\u0000\u0000\u05eb\u05ec\u0005N\u0000\u0000\u05ec"+ + "\u05ed\u0005N\u0000\u0000\u05ed\u05ee\u0005E\u0000\u0000\u05ee\u05ef\u0005"+ + "R\u0000\u0000\u05ef\u00f0\u0001\u0000\u0000\u0000\u05f0\u05f1\u0005I\u0000"+ + "\u0000\u05f1\u05f2\u0005N\u0000\u0000\u05f2\u05f3\u0005P\u0000\u0000\u05f3"+ + "\u05f4\u0005A\u0000\u0000\u05f4\u05f5\u0005T\u0000\u0000\u05f5\u05f6\u0005"+ + "H\u0000\u0000\u05f6\u00f2\u0001\u0000\u0000\u0000\u05f7\u05f8\u0005I\u0000"+ + "\u0000\u05f8\u05f9\u0005N\u0000\u0000\u05f9\u05fa\u0005P\u0000\u0000\u05fa"+ + "\u05fb\u0005U\u0000\u0000\u05fb\u05fc\u0005T\u0000\u0000\u05fc\u05fd\u0005"+ + "F\u0000\u0000\u05fd\u05fe\u0005O\u0000\u0000\u05fe\u05ff\u0005R\u0000"+ + "\u0000\u05ff\u0600\u0005M\u0000\u0000\u0600\u0601\u0005A\u0000\u0000\u0601"+ + "\u0602\u0005T\u0000\u0000\u0602\u00f4\u0001\u0000\u0000\u0000\u0603\u0604"+ + "\u0005I\u0000\u0000\u0604\u0605\u0005N\u0000\u0000\u0605\u0606\u0005S"+ + "\u0000\u0000\u0606\u0607\u0005E\u0000\u0000\u0607\u0608\u0005R\u0000\u0000"+ + "\u0608\u0609\u0005T\u0000\u0000\u0609\u00f6\u0001\u0000\u0000\u0000\u060a"+ + "\u060b\u0005I\u0000\u0000\u060b\u060c\u0005N\u0000\u0000\u060c\u060d\u0005"+ + "T\u0000\u0000\u060d\u060e\u0005E\u0000\u0000\u060e\u060f\u0005R\u0000"+ + "\u0000\u060f\u0610\u0005S\u0000\u0000\u0610\u0611\u0005E\u0000\u0000\u0611"+ + "\u0612\u0005C\u0000\u0000\u0612\u0613\u0005T\u0000\u0000\u0613\u00f8\u0001"+ + "\u0000\u0000\u0000\u0614\u0615\u0005I\u0000\u0000\u0615\u0616\u0005N\u0000"+ + "\u0000\u0616\u0617\u0005T\u0000\u0000\u0617\u0618\u0005E\u0000\u0000\u0618"+ + "\u0619\u0005R\u0000\u0000\u0619\u061a\u0005V\u0000\u0000\u061a\u061b\u0005"+ + "A\u0000\u0000\u061b\u061c\u0005L\u0000\u0000\u061c\u00fa\u0001\u0000\u0000"+ + "\u0000\u061d\u061e\u0005I\u0000\u0000\u061e\u061f\u0005N\u0000\u0000\u061f"+ + "\u0620\u0005T\u0000\u0000\u0620\u0621\u0005O\u0000\u0000\u0621\u00fc\u0001"+ + "\u0000\u0000\u0000\u0622\u0623\u0005I\u0000\u0000\u0623\u0624\u0005S\u0000"+ + "\u0000\u0624\u00fe\u0001\u0000\u0000\u0000\u0625\u0626\u0005I\u0000\u0000"+ + "\u0626\u0627\u0005T\u0000\u0000\u0627\u0628\u0005E\u0000\u0000\u0628\u0629"+ + "\u0005M\u0000\u0000\u0629\u062a\u0005S\u0000\u0000\u062a\u0100\u0001\u0000"+ + "\u0000\u0000\u062b\u062c\u0005J\u0000\u0000\u062c\u062d\u0005O\u0000\u0000"+ + "\u062d\u062e\u0005I\u0000\u0000\u062e\u062f\u0005N\u0000\u0000\u062f\u0102"+ + "\u0001\u0000\u0000\u0000\u0630\u0631\u0005K\u0000\u0000\u0631\u0632\u0005"+ + "E\u0000\u0000\u0632\u0633\u0005Y\u0000\u0000\u0633\u0634\u0005S\u0000"+ + "\u0000\u0634\u0104\u0001\u0000\u0000\u0000\u0635\u0636\u0005L\u0000\u0000"+ + "\u0636\u0637\u0005A\u0000\u0000\u0637\u0638\u0005S\u0000\u0000\u0638\u0639"+ + "\u0005T\u0000\u0000\u0639\u0106\u0001\u0000\u0000\u0000\u063a\u063b\u0005"+ + "L\u0000\u0000\u063b\u063c\u0005A\u0000\u0000\u063c\u063d\u0005T\u0000"+ + "\u0000\u063d\u063e\u0005E\u0000\u0000\u063e\u063f\u0005R\u0000\u0000\u063f"+ + "\u0640\u0005A\u0000\u0000\u0640\u0641\u0005L\u0000\u0000\u0641\u0108\u0001"+ + "\u0000\u0000\u0000\u0642\u0643\u0005L\u0000\u0000\u0643\u0644\u0005A\u0000"+ + "\u0000\u0644\u0645\u0005Z\u0000\u0000\u0645\u0646\u0005Y\u0000\u0000\u0646"+ + "\u010a\u0001\u0000\u0000\u0000\u0647\u0648\u0005L\u0000\u0000\u0648\u0649"+ + "\u0005E\u0000\u0000\u0649\u064a\u0005A\u0000\u0000\u064a\u064b\u0005D"+ + "\u0000\u0000\u064b\u064c\u0005I\u0000\u0000\u064c\u064d\u0005N\u0000\u0000"+ + "\u064d\u064e\u0005G\u0000\u0000\u064e\u010c\u0001\u0000\u0000\u0000\u064f"+ + "\u0650\u0005L\u0000\u0000\u0650\u0651\u0005E\u0000\u0000\u0651\u0652\u0005"+ + "F\u0000\u0000\u0652\u0653\u0005T\u0000\u0000\u0653\u010e\u0001\u0000\u0000"+ + "\u0000\u0654\u0655\u0005L\u0000\u0000\u0655\u0656\u0005I\u0000\u0000\u0656"+ + "\u0657\u0005K\u0000\u0000\u0657\u0658\u0005E\u0000\u0000\u0658\u0110\u0001"+ + "\u0000\u0000\u0000\u0659\u065a\u0005I\u0000\u0000\u065a\u065b\u0005L\u0000"+ + "\u0000\u065b\u065c\u0005I\u0000\u0000\u065c\u065d\u0005K\u0000\u0000\u065d"+ + "\u065e\u0005E\u0000\u0000\u065e\u0112\u0001\u0000\u0000\u0000\u065f\u0660"+ + "\u0005L\u0000\u0000\u0660\u0661\u0005I\u0000\u0000\u0661\u0662\u0005M"+ + "\u0000\u0000\u0662\u0663\u0005I\u0000\u0000\u0663\u0664\u0005T\u0000\u0000"+ + "\u0664\u0114\u0001\u0000\u0000\u0000\u0665\u0666\u0005L\u0000\u0000\u0666"+ + "\u0667\u0005I\u0000\u0000\u0667\u0668\u0005N\u0000\u0000\u0668\u0669\u0005"+ + "E\u0000\u0000\u0669\u066a\u0005S\u0000\u0000\u066a\u0116\u0001\u0000\u0000"+ + "\u0000\u066b\u066c\u0005L\u0000\u0000\u066c\u066d\u0005I\u0000\u0000\u066d"+ + "\u066e\u0005S\u0000\u0000\u066e\u066f\u0005T\u0000\u0000\u066f\u0118\u0001"+ + "\u0000\u0000\u0000\u0670\u0671\u0005L\u0000\u0000\u0671\u0672\u0005O\u0000"+ + "\u0000\u0672\u0673\u0005A\u0000\u0000\u0673\u0674\u0005D\u0000\u0000\u0674"+ + "\u011a\u0001\u0000\u0000\u0000\u0675\u0676\u0005L\u0000\u0000\u0676\u0677"+ + "\u0005O\u0000\u0000\u0677\u0678\u0005C\u0000\u0000\u0678\u0679\u0005A"+ + "\u0000\u0000\u0679\u067a\u0005L\u0000\u0000\u067a\u011c\u0001\u0000\u0000"+ + "\u0000\u067b\u067c\u0005L\u0000\u0000\u067c\u067d\u0005O\u0000\u0000\u067d"+ + "\u067e\u0005C\u0000\u0000\u067e\u067f\u0005A\u0000\u0000\u067f\u0680\u0005"+ + "T\u0000\u0000\u0680\u0681\u0005I\u0000\u0000\u0681\u0682\u0005O\u0000"+ + "\u0000\u0682\u0683\u0005N\u0000\u0000\u0683\u011e\u0001\u0000\u0000\u0000"+ + "\u0684\u0685\u0005L\u0000\u0000\u0685\u0686\u0005O\u0000\u0000\u0686\u0687"+ + "\u0005C\u0000\u0000\u0687\u0688\u0005K\u0000\u0000\u0688\u0120\u0001\u0000"+ + "\u0000\u0000\u0689\u068a\u0005L\u0000\u0000\u068a\u068b\u0005O\u0000\u0000"+ + "\u068b\u068c\u0005C\u0000\u0000\u068c\u068d\u0005K\u0000\u0000\u068d\u068e"+ + "\u0005S\u0000\u0000\u068e\u0122\u0001\u0000\u0000\u0000\u068f\u0690\u0005"+ + "L\u0000\u0000\u0690\u0691\u0005O\u0000\u0000\u0691\u0692\u0005G\u0000"+ + "\u0000\u0692\u0693\u0005I\u0000\u0000\u0693\u0694\u0005C\u0000\u0000\u0694"+ + "\u0695\u0005A\u0000\u0000\u0695\u0696\u0005L\u0000\u0000\u0696\u0124\u0001"+ + "\u0000\u0000\u0000\u0697\u0698\u0005M\u0000\u0000\u0698\u0699\u0005A\u0000"+ + "\u0000\u0699\u069a\u0005C\u0000\u0000\u069a\u069b\u0005R\u0000\u0000\u069b"+ + "\u069c\u0005O\u0000\u0000\u069c\u0126\u0001\u0000\u0000\u0000\u069d\u069e"+ + "\u0005M\u0000\u0000\u069e\u069f\u0005A\u0000\u0000\u069f\u06a0\u0005P"+ + "\u0000\u0000\u06a0\u0128\u0001\u0000\u0000\u0000\u06a1\u06a2\u0005M\u0000"+ + "\u0000\u06a2\u06a3\u0005A\u0000\u0000\u06a3\u06a4\u0005T\u0000\u0000\u06a4"+ + "\u06a5\u0005C\u0000\u0000\u06a5\u06a6\u0005H\u0000\u0000\u06a6\u06a7\u0005"+ + "E\u0000\u0000\u06a7\u06a8\u0005D\u0000\u0000\u06a8\u012a\u0001\u0000\u0000"+ + "\u0000\u06a9\u06aa\u0005M\u0000\u0000\u06aa\u06ab\u0005E\u0000\u0000\u06ab"+ + "\u06ac\u0005R\u0000\u0000\u06ac\u06ad\u0005G\u0000\u0000\u06ad\u06ae\u0005"+ + "E\u0000\u0000\u06ae\u012c\u0001\u0000\u0000\u0000\u06af\u06b0\u0005M\u0000"+ + "\u0000\u06b0\u06b1\u0005I\u0000\u0000\u06b1\u06b2\u0005C\u0000\u0000\u06b2"+ + "\u06b3\u0005R\u0000\u0000\u06b3\u06b4\u0005O\u0000\u0000\u06b4\u06b5\u0005"+ + "S\u0000\u0000\u06b5\u06b6\u0005E\u0000\u0000\u06b6\u06b7\u0005C\u0000"+ + "\u0000\u06b7\u06b8\u0005O\u0000\u0000\u06b8\u06b9\u0005N\u0000\u0000\u06b9"+ + "\u06ba\u0005D\u0000\u0000\u06ba\u012e\u0001\u0000\u0000\u0000\u06bb\u06bc"+ + "\u0005M\u0000\u0000\u06bc\u06bd\u0005I\u0000\u0000\u06bd\u06be\u0005L"+ + "\u0000\u0000\u06be\u06bf\u0005L\u0000\u0000\u06bf\u06c0\u0005I\u0000\u0000"+ + "\u06c0\u06c1\u0005S\u0000\u0000\u06c1\u06c2\u0005E\u0000\u0000\u06c2\u06c3"+ + "\u0005C\u0000\u0000\u06c3\u06c4\u0005O\u0000\u0000\u06c4\u06c5\u0005N"+ + "\u0000\u0000\u06c5\u06c6\u0005D\u0000\u0000\u06c6\u0130\u0001\u0000\u0000"+ + "\u0000\u06c7\u06c8\u0005M\u0000\u0000\u06c8\u06c9\u0005I\u0000\u0000\u06c9"+ + "\u06ca\u0005N\u0000\u0000\u06ca\u06cb\u0005U\u0000\u0000\u06cb\u06cc\u0005"+ + "T\u0000\u0000\u06cc\u06cd\u0005E\u0000\u0000\u06cd\u0132\u0001\u0000\u0000"+ + "\u0000\u06ce\u06cf\u0005M\u0000\u0000\u06cf\u06d0\u0005O\u0000\u0000\u06d0"+ + "\u06d1\u0005N\u0000\u0000\u06d1\u06d2\u0005T\u0000\u0000\u06d2\u06d3\u0005"+ + "H\u0000\u0000\u06d3\u0134\u0001\u0000\u0000\u0000\u06d4\u06d5\u0005M\u0000"+ + "\u0000\u06d5\u06d6\u0005S\u0000\u0000\u06d6\u06d7\u0005C\u0000\u0000\u06d7"+ + "\u06d8\u0005K\u0000\u0000\u06d8\u0136\u0001\u0000\u0000\u0000\u06d9\u06da"+ + "\u0005N\u0000\u0000\u06da\u06db\u0005A\u0000\u0000\u06db\u06dc\u0005M"+ + "\u0000\u0000\u06dc\u06dd\u0005E\u0000\u0000\u06dd\u06de\u0005S\u0000\u0000"+ + "\u06de\u06df\u0005P\u0000\u0000\u06df\u06e0\u0005A\u0000\u0000\u06e0\u06e1"+ + "\u0005C\u0000\u0000\u06e1\u06e2\u0005E\u0000\u0000\u06e2\u0138\u0001\u0000"+ + "\u0000\u0000\u06e3\u06e4\u0005N\u0000\u0000\u06e4\u06e5\u0005A\u0000\u0000"+ + "\u06e5\u06e6\u0005M\u0000\u0000\u06e6\u06e7\u0005E\u0000\u0000\u06e7\u06e8"+ + "\u0005S\u0000\u0000\u06e8\u06e9\u0005P\u0000\u0000\u06e9\u06ea\u0005A"+ + "\u0000\u0000\u06ea\u06eb\u0005C\u0000\u0000\u06eb\u06ec\u0005E\u0000\u0000"+ + "\u06ec\u06ed\u0005S\u0000\u0000\u06ed\u013a\u0001\u0000\u0000\u0000\u06ee"+ + "\u06ef\u0005N\u0000\u0000\u06ef\u06f0\u0005A\u0000\u0000\u06f0\u06f1\u0005"+ + "T\u0000\u0000\u06f1\u06f2\u0005U\u0000\u0000\u06f2\u06f3\u0005R\u0000"+ + "\u0000\u06f3\u06f4\u0005A\u0000\u0000\u06f4\u06f5\u0005L\u0000\u0000\u06f5"+ + "\u013c\u0001\u0000\u0000\u0000\u06f6\u06f7\u0005N\u0000\u0000\u06f7\u06f8"+ + "\u0005O\u0000\u0000\u06f8\u013e\u0001\u0000\u0000\u0000\u06f9\u06fa\u0005"+ + "N\u0000\u0000\u06fa\u06fb\u0005O\u0000\u0000\u06fb\u06fe\u0005T\u0000"+ + "\u0000\u06fc\u06fe\u0005!\u0000\u0000\u06fd\u06f9\u0001\u0000\u0000\u0000"+ + "\u06fd\u06fc\u0001\u0000\u0000\u0000\u06fe\u0140\u0001\u0000\u0000\u0000"+ + "\u06ff\u0700\u0005N\u0000\u0000\u0700\u0701\u0005U\u0000\u0000\u0701\u0702"+ + "\u0005L\u0000\u0000\u0702\u0703\u0005L\u0000\u0000\u0703\u0142\u0001\u0000"+ + "\u0000\u0000\u0704\u0705\u0005N\u0000\u0000\u0705\u0706\u0005U\u0000\u0000"+ + "\u0706\u0707\u0005L\u0000\u0000\u0707\u0708\u0005L\u0000\u0000\u0708\u0709"+ + "\u0005S\u0000\u0000\u0709\u0144\u0001\u0000\u0000\u0000\u070a\u070b\u0005"+ + "O\u0000\u0000\u070b\u070c\u0005F\u0000\u0000\u070c\u0146\u0001\u0000\u0000"+ + "\u0000\u070d\u070e\u0005O\u0000\u0000\u070e\u070f\u0005F\u0000\u0000\u070f"+ + "\u0710\u0005F\u0000\u0000\u0710\u0711\u0005S\u0000\u0000\u0711\u0712\u0005"+ + "E\u0000\u0000\u0712\u0713\u0005T\u0000\u0000\u0713\u0148\u0001\u0000\u0000"+ + "\u0000\u0714\u0715\u0005O\u0000\u0000\u0715\u0716\u0005N\u0000\u0000\u0716"+ + "\u014a\u0001\u0000\u0000\u0000\u0717\u0718\u0005O\u0000\u0000\u0718\u0719"+ + "\u0005N\u0000\u0000\u0719\u071a\u0005L\u0000\u0000\u071a\u071b\u0005Y"+ + "\u0000\u0000\u071b\u014c\u0001\u0000\u0000\u0000\u071c\u071d\u0005O\u0000"+ + "\u0000\u071d\u071e\u0005P\u0000\u0000\u071e\u071f\u0005T\u0000\u0000\u071f"+ + "\u0720\u0005I\u0000\u0000\u0720\u0721\u0005O\u0000\u0000\u0721\u0722\u0005"+ + "N\u0000\u0000\u0722\u014e\u0001\u0000\u0000\u0000\u0723\u0724\u0005O\u0000"+ + "\u0000\u0724\u0725\u0005P\u0000\u0000\u0725\u0726\u0005T\u0000\u0000\u0726"+ + "\u0727\u0005I\u0000\u0000\u0727\u0728\u0005O\u0000\u0000\u0728\u0729\u0005"+ + "N\u0000\u0000\u0729\u072a\u0005S\u0000\u0000\u072a\u0150\u0001\u0000\u0000"+ + "\u0000\u072b\u072c\u0005O\u0000\u0000\u072c\u072d\u0005R\u0000\u0000\u072d"+ + "\u0152\u0001\u0000\u0000\u0000\u072e\u072f\u0005O\u0000\u0000\u072f\u0730"+ + "\u0005R\u0000\u0000\u0730\u0731\u0005D\u0000\u0000\u0731\u0732\u0005E"+ + "\u0000\u0000\u0732\u0733\u0005R\u0000\u0000\u0733\u0154\u0001\u0000\u0000"+ + "\u0000\u0734\u0735\u0005O\u0000\u0000\u0735\u0736\u0005U\u0000\u0000\u0736"+ + "\u0737\u0005T\u0000\u0000\u0737\u0156\u0001\u0000\u0000\u0000\u0738\u0739"+ + "\u0005O\u0000\u0000\u0739\u073a\u0005U\u0000\u0000\u073a\u073b\u0005T"+ + "\u0000\u0000\u073b\u073c\u0005E\u0000\u0000\u073c\u073d\u0005R\u0000\u0000"+ + "\u073d\u0158\u0001\u0000\u0000\u0000\u073e\u073f\u0005O\u0000\u0000\u073f"+ + "\u0740\u0005U\u0000\u0000\u0740\u0741\u0005T\u0000\u0000\u0741\u0742\u0005"+ + "P\u0000\u0000\u0742\u0743\u0005U\u0000\u0000\u0743\u0744\u0005T\u0000"+ + "\u0000\u0744\u0745\u0005F\u0000\u0000\u0745\u0746\u0005O\u0000\u0000\u0746"+ + "\u0747\u0005R\u0000\u0000\u0747\u0748\u0005M\u0000\u0000\u0748\u0749\u0005"+ + "A\u0000\u0000\u0749\u074a\u0005T\u0000\u0000\u074a\u015a\u0001\u0000\u0000"+ + "\u0000\u074b\u074c\u0005O\u0000\u0000\u074c\u074d\u0005V\u0000\u0000\u074d"+ + "\u074e\u0005E\u0000\u0000\u074e\u074f\u0005R\u0000\u0000\u074f\u015c\u0001"+ + "\u0000\u0000\u0000\u0750\u0751\u0005O\u0000\u0000\u0751\u0752\u0005V\u0000"+ + "\u0000\u0752\u0753\u0005E\u0000\u0000\u0753\u0754\u0005R\u0000\u0000\u0754"+ + "\u0755\u0005L\u0000\u0000\u0755\u0756\u0005A\u0000\u0000\u0756\u0757\u0005"+ + "P\u0000\u0000\u0757\u0758\u0005S\u0000\u0000\u0758\u015e\u0001\u0000\u0000"+ + "\u0000\u0759\u075a\u0005O\u0000\u0000\u075a\u075b\u0005V\u0000\u0000\u075b"+ + "\u075c\u0005E\u0000\u0000\u075c\u075d\u0005R\u0000\u0000\u075d\u075e\u0005"+ + "L\u0000\u0000\u075e\u075f\u0005A\u0000\u0000\u075f\u0760\u0005Y\u0000"+ + "\u0000\u0760\u0160\u0001\u0000\u0000\u0000\u0761\u0762\u0005O\u0000\u0000"+ + "\u0762\u0763\u0005V\u0000\u0000\u0763\u0764\u0005E\u0000\u0000\u0764\u0765"+ + "\u0005R\u0000\u0000\u0765\u0766\u0005W\u0000\u0000\u0766\u0767\u0005R"+ + "\u0000\u0000\u0767\u0768\u0005I\u0000\u0000\u0768\u0769\u0005T\u0000\u0000"+ + "\u0769\u076a\u0005E\u0000\u0000\u076a\u0162\u0001\u0000\u0000\u0000\u076b"+ + "\u076c\u0005P\u0000\u0000\u076c\u076d\u0005A\u0000\u0000\u076d\u076e\u0005"+ + "R\u0000\u0000\u076e\u076f\u0005T\u0000\u0000\u076f\u0770\u0005I\u0000"+ + "\u0000\u0770\u0771\u0005T\u0000\u0000\u0771\u0772\u0005I\u0000\u0000\u0772"+ + "\u0773\u0005O\u0000\u0000\u0773\u0774\u0005N\u0000\u0000\u0774\u0164\u0001"+ + "\u0000\u0000\u0000\u0775\u0776\u0005P\u0000\u0000\u0776\u0777\u0005A\u0000"+ + "\u0000\u0777\u0778\u0005R\u0000\u0000\u0778\u0779\u0005T\u0000\u0000\u0779"+ + "\u077a\u0005I\u0000\u0000\u077a\u077b\u0005T\u0000\u0000\u077b\u077c\u0005"+ + "I\u0000\u0000\u077c\u077d\u0005O\u0000\u0000\u077d\u077e\u0005N\u0000"+ + "\u0000\u077e\u077f\u0005E\u0000\u0000\u077f\u0780\u0005D\u0000\u0000\u0780"+ + "\u0166\u0001\u0000\u0000\u0000\u0781\u0782\u0005P\u0000\u0000\u0782\u0783"+ + "\u0005A\u0000\u0000\u0783\u0784\u0005R\u0000\u0000\u0784\u0785\u0005T"+ + "\u0000\u0000\u0785\u0786\u0005I\u0000\u0000\u0786\u0787\u0005T\u0000\u0000"+ + "\u0787\u0788\u0005I\u0000\u0000\u0788\u0789\u0005O\u0000\u0000\u0789\u078a"+ + "\u0005N\u0000\u0000\u078a\u078b\u0005S\u0000\u0000\u078b\u0168\u0001\u0000"+ + "\u0000\u0000\u078c\u078d\u0005P\u0000\u0000\u078d\u078e\u0005E\u0000\u0000"+ + "\u078e\u078f\u0005R\u0000\u0000\u078f\u0790\u0005C\u0000\u0000\u0790\u0791"+ + "\u0005E\u0000\u0000\u0791\u0792\u0005N\u0000\u0000\u0792\u0793\u0005T"+ + "\u0000\u0000\u0793\u0794\u0005I\u0000\u0000\u0794\u0795\u0005L\u0000\u0000"+ + "\u0795\u0796\u0005E\u0000\u0000\u0796\u0797\u0005_\u0000\u0000\u0797\u0798"+ + "\u0005C\u0000\u0000\u0798\u0799\u0005O\u0000\u0000\u0799\u079a\u0005N"+ + "\u0000\u0000\u079a\u079b\u0005T\u0000\u0000\u079b\u016a\u0001\u0000\u0000"+ + "\u0000\u079c\u079d\u0005P\u0000\u0000\u079d\u079e\u0005E\u0000\u0000\u079e"+ + "\u079f\u0005R\u0000\u0000\u079f\u07a0\u0005C\u0000\u0000\u07a0\u07a1\u0005"+ + "E\u0000\u0000\u07a1\u07a2\u0005N\u0000\u0000\u07a2\u07a3\u0005T\u0000"+ + "\u0000\u07a3\u07a4\u0005I\u0000\u0000\u07a4\u07a5\u0005L\u0000\u0000\u07a5"+ + "\u07a6\u0005E\u0000\u0000\u07a6\u07a7\u0005_\u0000\u0000\u07a7\u07a8\u0005"+ + "D\u0000\u0000\u07a8\u07a9\u0005I\u0000\u0000\u07a9\u07aa\u0005S\u0000"+ + "\u0000\u07aa\u07ab\u0005C\u0000\u0000\u07ab\u016c\u0001\u0000\u0000\u0000"+ + "\u07ac\u07ad\u0005P\u0000\u0000\u07ad\u07ae\u0005E\u0000\u0000\u07ae\u07af"+ + "\u0005R\u0000\u0000\u07af\u07b0\u0005C\u0000\u0000\u07b0\u07b1\u0005E"+ + "\u0000\u0000\u07b1\u07b2\u0005N\u0000\u0000\u07b2\u07b3\u0005T\u0000\u0000"+ + "\u07b3\u016e\u0001\u0000\u0000\u0000\u07b4\u07b5\u0005P\u0000\u0000\u07b5"+ + "\u07b6\u0005I\u0000\u0000\u07b6\u07b7\u0005V\u0000\u0000\u07b7\u07b8\u0005"+ + "O\u0000\u0000\u07b8\u07b9\u0005T\u0000\u0000\u07b9\u0170\u0001\u0000\u0000"+ + "\u0000\u07ba\u07bb\u0005P\u0000\u0000\u07bb\u07bc\u0005L\u0000\u0000\u07bc"+ + "\u07bd\u0005A\u0000\u0000\u07bd\u07be\u0005C\u0000\u0000\u07be\u07bf\u0005"+ + "I\u0000\u0000\u07bf\u07c0\u0005N\u0000\u0000\u07c0\u07c1\u0005G\u0000"+ + "\u0000\u07c1\u0172\u0001\u0000\u0000\u0000\u07c2\u07c3\u0005P\u0000\u0000"+ + "\u07c3\u07c4\u0005O\u0000\u0000\u07c4\u07c5\u0005S\u0000\u0000\u07c5\u07c6"+ + "\u0005I\u0000\u0000\u07c6\u07c7\u0005T\u0000\u0000\u07c7\u07c8\u0005I"+ + "\u0000\u0000\u07c8\u07c9\u0005O\u0000\u0000\u07c9\u07ca\u0005N\u0000\u0000"+ + "\u07ca\u0174\u0001\u0000\u0000\u0000\u07cb\u07cc\u0005P\u0000\u0000\u07cc"+ + "\u07cd\u0005R\u0000\u0000\u07cd\u07ce\u0005E\u0000\u0000\u07ce\u07cf\u0005"+ + "C\u0000\u0000\u07cf\u07d0\u0005E\u0000\u0000\u07d0\u07d1\u0005D\u0000"+ + "\u0000\u07d1\u07d2\u0005I\u0000\u0000\u07d2\u07d3\u0005N\u0000\u0000\u07d3"+ + "\u07d4\u0005G\u0000\u0000\u07d4\u0176\u0001\u0000\u0000\u0000\u07d5\u07d6"+ + "\u0005P\u0000\u0000\u07d6\u07d7\u0005R\u0000\u0000\u07d7\u07d8\u0005I"+ + "\u0000\u0000\u07d8\u07d9\u0005M\u0000\u0000\u07d9\u07da\u0005A\u0000\u0000"+ + "\u07da\u07db\u0005R\u0000\u0000\u07db\u07dc\u0005Y\u0000\u0000\u07dc\u0178"+ + "\u0001\u0000\u0000\u0000\u07dd\u07de\u0005P\u0000\u0000\u07de\u07df\u0005"+ + "R\u0000\u0000\u07df\u07e0\u0005I\u0000\u0000\u07e0\u07e1\u0005N\u0000"+ + "\u0000\u07e1\u07e2\u0005C\u0000\u0000\u07e2\u07e3\u0005I\u0000\u0000\u07e3"+ + "\u07e4\u0005P\u0000\u0000\u07e4\u07e5\u0005A\u0000\u0000\u07e5\u07e6\u0005"+ + "L\u0000\u0000\u07e6\u07e7\u0005S\u0000\u0000\u07e7\u017a\u0001\u0000\u0000"+ + "\u0000\u07e8\u07e9\u0005P\u0000\u0000\u07e9\u07ea\u0005R\u0000\u0000\u07ea"+ + "\u07eb\u0005O\u0000\u0000\u07eb\u07ec\u0005P\u0000\u0000\u07ec\u07ed\u0005"+ + "E\u0000\u0000\u07ed\u07ee\u0005R\u0000\u0000\u07ee\u07ef\u0005T\u0000"+ + "\u0000\u07ef\u07f0\u0005I\u0000\u0000\u07f0\u07f1\u0005E\u0000\u0000\u07f1"+ + "\u07f2\u0005S\u0000\u0000\u07f2\u017c\u0001\u0000\u0000\u0000\u07f3\u07f4"+ + "\u0005P\u0000\u0000\u07f4\u07f5\u0005U\u0000\u0000\u07f5\u07f6\u0005R"+ + "\u0000\u0000\u07f6\u07f7\u0005G\u0000\u0000\u07f7\u07f8\u0005E\u0000\u0000"+ + "\u07f8\u017e\u0001\u0000\u0000\u0000\u07f9\u07fa\u0005Q\u0000\u0000\u07fa"+ + "\u07fb\u0005U\u0000\u0000\u07fb\u07fc\u0005A\u0000\u0000\u07fc\u07fd\u0005"+ + "R\u0000\u0000\u07fd\u07fe\u0005T\u0000\u0000\u07fe\u07ff\u0005E\u0000"+ + "\u0000\u07ff\u0800\u0005R\u0000\u0000\u0800\u0180\u0001\u0000\u0000\u0000"+ + "\u0801\u0802\u0005Q\u0000\u0000\u0802\u0803\u0005U\u0000\u0000\u0803\u0804"+ + "\u0005E\u0000\u0000\u0804\u0805\u0005R\u0000\u0000\u0805\u0806\u0005Y"+ + "\u0000\u0000\u0806\u0182\u0001\u0000\u0000\u0000\u0807\u0808\u0005R\u0000"+ + "\u0000\u0808\u0809\u0005A\u0000\u0000\u0809\u080a\u0005N\u0000\u0000\u080a"+ + "\u080b\u0005G\u0000\u0000\u080b\u080c\u0005E\u0000\u0000\u080c\u0184\u0001"+ + "\u0000\u0000\u0000\u080d\u080e\u0005R\u0000\u0000\u080e\u080f\u0005E\u0000"+ + "\u0000\u080f\u0810\u0005C\u0000\u0000\u0810\u0811\u0005O\u0000\u0000\u0811"+ + "\u0812\u0005R\u0000\u0000\u0812\u0813\u0005D\u0000\u0000\u0813\u0814\u0005"+ + "R\u0000\u0000\u0814\u0815\u0005E\u0000\u0000\u0815\u0816\u0005A\u0000"+ + "\u0000\u0816\u0817\u0005D\u0000\u0000\u0817\u0818\u0005E\u0000\u0000\u0818"+ + "\u0819\u0005R\u0000\u0000\u0819\u0186\u0001\u0000\u0000\u0000\u081a\u081b"+ + "\u0005R\u0000\u0000\u081b\u081c\u0005E\u0000\u0000\u081c\u081d\u0005C"+ + "\u0000\u0000\u081d\u081e\u0005O\u0000\u0000\u081e\u081f\u0005R\u0000\u0000"+ + "\u081f\u0820\u0005D\u0000\u0000\u0820\u0821\u0005W\u0000\u0000\u0821\u0822"+ + "\u0005R\u0000\u0000\u0822\u0823\u0005I\u0000\u0000\u0823\u0824\u0005T"+ + "\u0000\u0000\u0824\u0825\u0005E\u0000\u0000\u0825\u0826\u0005R\u0000\u0000"+ + "\u0826\u0188\u0001\u0000\u0000\u0000\u0827\u0828\u0005R\u0000\u0000\u0828"+ + "\u0829\u0005E\u0000\u0000\u0829\u082a\u0005C\u0000\u0000\u082a\u082b\u0005"+ + "O\u0000\u0000\u082b\u082c\u0005V\u0000\u0000\u082c\u082d\u0005E\u0000"+ + "\u0000\u082d\u082e\u0005R\u0000\u0000\u082e\u018a\u0001\u0000\u0000\u0000"+ + "\u082f\u0830\u0005R\u0000\u0000\u0830\u0831\u0005E\u0000\u0000\u0831\u0832"+ + "\u0005D\u0000\u0000\u0832\u0833\u0005U\u0000\u0000\u0833\u0834\u0005C"+ + "\u0000\u0000\u0834\u0835\u0005E\u0000\u0000\u0835\u018c\u0001\u0000\u0000"+ + "\u0000\u0836\u0837\u0005R\u0000\u0000\u0837\u0838\u0005E\u0000\u0000\u0838"+ + "\u0839\u0005F\u0000\u0000\u0839\u083a\u0005E\u0000\u0000\u083a\u083b\u0005"+ + "R\u0000\u0000\u083b\u083c\u0005E\u0000\u0000\u083c\u083d\u0005N\u0000"+ + "\u0000\u083d\u083e\u0005C\u0000\u0000\u083e\u083f\u0005E\u0000\u0000\u083f"+ + "\u0840\u0005S\u0000\u0000\u0840\u018e\u0001\u0000\u0000\u0000\u0841\u0842"+ + "\u0005R\u0000\u0000\u0842\u0843\u0005E\u0000\u0000\u0843\u0844\u0005F"+ + "\u0000\u0000\u0844\u0845\u0005R\u0000\u0000\u0845\u0846\u0005E\u0000\u0000"+ + "\u0846\u0847\u0005S\u0000\u0000\u0847\u0848\u0005H\u0000\u0000\u0848\u0190"+ + "\u0001\u0000\u0000\u0000\u0849\u084a\u0005R\u0000\u0000\u084a\u084b\u0005"+ + "E\u0000\u0000\u084b\u084c\u0005N\u0000\u0000\u084c\u084d\u0005A\u0000"+ + "\u0000\u084d\u084e\u0005M\u0000\u0000\u084e\u084f\u0005E\u0000\u0000\u084f"+ + "\u0192\u0001\u0000\u0000\u0000\u0850\u0851\u0005R\u0000\u0000\u0851\u0852"+ + "\u0005E\u0000\u0000\u0852\u0853\u0005P\u0000\u0000\u0853\u0854\u0005A"+ + "\u0000\u0000\u0854\u0855\u0005I\u0000\u0000\u0855\u0856\u0005R\u0000\u0000"+ + "\u0856\u0194\u0001\u0000\u0000\u0000\u0857\u0858\u0005R\u0000\u0000\u0858"+ + "\u0859\u0005E\u0000\u0000\u0859\u085a\u0005P\u0000\u0000\u085a\u085b\u0005"+ + "E\u0000\u0000\u085b\u085c\u0005A\u0000\u0000\u085c\u085d\u0005T\u0000"+ + "\u0000\u085d\u085e\u0005A\u0000\u0000\u085e\u085f\u0005B\u0000\u0000\u085f"+ + "\u0860\u0005L\u0000\u0000\u0860\u0861\u0005E\u0000\u0000\u0861\u0196\u0001"+ + "\u0000\u0000\u0000\u0862\u0863\u0005R\u0000\u0000\u0863\u0864\u0005E\u0000"+ + "\u0000\u0864\u0865\u0005P\u0000\u0000\u0865\u0866\u0005L\u0000\u0000\u0866"+ + "\u0867\u0005A\u0000\u0000\u0867\u0868\u0005C\u0000\u0000\u0868\u0869\u0005"+ + "E\u0000\u0000\u0869\u0198\u0001\u0000\u0000\u0000\u086a\u086b\u0005R\u0000"+ + "\u0000\u086b\u086c\u0005E\u0000\u0000\u086c\u086d\u0005S\u0000\u0000\u086d"+ + "\u086e\u0005E\u0000\u0000\u086e\u086f\u0005T\u0000\u0000\u086f\u019a\u0001"+ + "\u0000\u0000\u0000\u0870\u0871\u0005R\u0000\u0000\u0871\u0872\u0005E\u0000"+ + "\u0000\u0872\u0873\u0005S\u0000\u0000\u0873\u0874\u0005P\u0000\u0000\u0874"+ + "\u0875\u0005E\u0000\u0000\u0875\u0876\u0005C\u0000\u0000\u0876\u0877\u0005"+ + "T\u0000\u0000\u0877\u019c\u0001\u0000\u0000\u0000\u0878\u0879\u0005R\u0000"+ + "\u0000\u0879\u087a\u0005E\u0000\u0000\u087a\u087b\u0005S\u0000\u0000\u087b"+ + "\u087c\u0005T\u0000\u0000\u087c\u087d\u0005R\u0000\u0000\u087d\u087e\u0005"+ + "I\u0000\u0000\u087e\u087f\u0005C\u0000\u0000\u087f\u0880\u0005T\u0000"+ + "\u0000\u0880\u019e\u0001\u0000\u0000\u0000\u0881\u0882\u0005R\u0000\u0000"+ + "\u0882\u0883\u0005E\u0000\u0000\u0883\u0884\u0005V\u0000\u0000\u0884\u0885"+ + "\u0005O\u0000\u0000\u0885\u0886\u0005K\u0000\u0000\u0886\u0887\u0005E"+ + "\u0000\u0000\u0887\u01a0\u0001\u0000\u0000\u0000\u0888\u0889\u0005R\u0000"+ + "\u0000\u0889\u088a\u0005I\u0000\u0000\u088a\u088b\u0005G\u0000\u0000\u088b"+ + "\u088c\u0005H\u0000\u0000\u088c\u088d\u0005T\u0000\u0000\u088d\u01a2\u0001"+ + "\u0000\u0000\u0000\u088e\u088f\u0005R\u0000\u0000\u088f\u0890\u0005L\u0000"+ + "\u0000\u0890\u0891\u0005I\u0000\u0000\u0891\u0892\u0005K\u0000\u0000\u0892"+ + "\u089a\u0005E\u0000\u0000\u0893\u0894\u0005R\u0000\u0000\u0894\u0895\u0005"+ + "E\u0000\u0000\u0895\u0896\u0005G\u0000\u0000\u0896\u0897\u0005E\u0000"+ + "\u0000\u0897\u0898\u0005X\u0000\u0000\u0898\u089a\u0005P\u0000\u0000\u0899"+ + "\u088e\u0001\u0000\u0000\u0000\u0899\u0893\u0001\u0000\u0000\u0000\u089a"+ + "\u01a4\u0001\u0000\u0000\u0000\u089b\u089c\u0005R\u0000\u0000\u089c\u089d"+ + "\u0005O\u0000\u0000\u089d\u089e\u0005L\u0000\u0000\u089e\u089f\u0005E"+ + "\u0000\u0000\u089f\u01a6\u0001\u0000\u0000\u0000\u08a0\u08a1\u0005R\u0000"+ + "\u0000\u08a1\u08a2\u0005O\u0000\u0000\u08a2\u08a3\u0005L\u0000\u0000\u08a3"+ + "\u08a4\u0005E\u0000\u0000\u08a4\u08a5\u0005S\u0000\u0000\u08a5\u01a8\u0001"+ + "\u0000\u0000\u0000\u08a6\u08a7\u0005R\u0000\u0000\u08a7\u08a8\u0005O\u0000"+ + "\u0000\u08a8\u08a9\u0005L\u0000\u0000\u08a9\u08aa\u0005L\u0000\u0000\u08aa"+ + "\u08ab\u0005B\u0000\u0000\u08ab\u08ac\u0005A\u0000\u0000\u08ac\u08ad\u0005"+ + "C\u0000\u0000\u08ad\u08ae\u0005K\u0000\u0000\u08ae\u01aa\u0001\u0000\u0000"+ + "\u0000\u08af\u08b0\u0005R\u0000\u0000\u08b0\u08b1\u0005O\u0000\u0000\u08b1"+ + "\u08b2\u0005L\u0000\u0000\u08b2\u08b3\u0005L\u0000\u0000\u08b3\u08b4\u0005"+ + "U\u0000\u0000\u08b4\u08b5\u0005P\u0000\u0000\u08b5\u01ac\u0001\u0000\u0000"+ + "\u0000\u08b6\u08b7\u0005R\u0000\u0000\u08b7\u08b8\u0005O\u0000\u0000\u08b8"+ + "\u08b9\u0005W\u0000\u0000\u08b9\u01ae\u0001\u0000\u0000\u0000\u08ba\u08bb"+ + "\u0005R\u0000\u0000\u08bb\u08bc\u0005O\u0000\u0000\u08bc\u08bd\u0005W"+ + "\u0000\u0000\u08bd\u08be\u0005S\u0000\u0000\u08be\u01b0\u0001\u0000\u0000"+ + "\u0000\u08bf\u08c0\u0005S\u0000\u0000\u08c0\u08c1\u0005E\u0000\u0000\u08c1"+ + "\u08c2\u0005C\u0000\u0000\u08c2\u08c3\u0005O\u0000\u0000\u08c3\u08c4\u0005"+ + "N\u0000\u0000\u08c4\u08c5\u0005D\u0000\u0000\u08c5\u01b2\u0001\u0000\u0000"+ + "\u0000\u08c6\u08c7\u0005S\u0000\u0000\u08c7\u08c8\u0005C\u0000\u0000\u08c8"+ + "\u08c9\u0005H\u0000\u0000\u08c9\u08ca\u0005E\u0000\u0000\u08ca\u08cb\u0005"+ + "M\u0000\u0000\u08cb\u08cc\u0005A\u0000\u0000\u08cc\u01b4\u0001\u0000\u0000"+ + "\u0000\u08cd\u08ce\u0005S\u0000\u0000\u08ce\u08cf\u0005C\u0000\u0000\u08cf"+ + "\u08d0\u0005H\u0000\u0000\u08d0\u08d1\u0005E\u0000\u0000\u08d1\u08d2\u0005"+ + "M\u0000\u0000\u08d2\u08d3\u0005A\u0000\u0000\u08d3\u08d4\u0005S\u0000"+ + "\u0000\u08d4\u01b6\u0001\u0000\u0000\u0000\u08d5\u08d6\u0005S\u0000\u0000"+ + "\u08d6\u08d7\u0005E\u0000\u0000\u08d7\u08d8\u0005L\u0000\u0000\u08d8\u08d9"+ + "\u0005E\u0000\u0000\u08d9\u08da\u0005C\u0000\u0000\u08da\u08db\u0005T"+ + "\u0000\u0000\u08db\u01b8\u0001\u0000\u0000\u0000\u08dc\u08dd\u0005S\u0000"+ + "\u0000\u08dd\u08de\u0005E\u0000\u0000\u08de\u08df\u0005M\u0000\u0000\u08df"+ + "\u08e0\u0005I\u0000\u0000\u08e0\u01ba\u0001\u0000\u0000\u0000\u08e1\u08e2"+ + "\u0005S\u0000\u0000\u08e2\u08e3\u0005E\u0000\u0000\u08e3\u08e4\u0005P"+ + "\u0000\u0000\u08e4\u08e5\u0005A\u0000\u0000\u08e5\u08e6\u0005R\u0000\u0000"+ + "\u08e6\u08e7\u0005A\u0000\u0000\u08e7\u08e8\u0005T\u0000\u0000\u08e8\u08e9"+ + "\u0005E\u0000\u0000\u08e9\u08ea\u0005D\u0000\u0000\u08ea\u01bc\u0001\u0000"+ + "\u0000\u0000\u08eb\u08ec\u0005S\u0000\u0000\u08ec\u08ed\u0005E\u0000\u0000"+ + "\u08ed\u08ee\u0005R\u0000\u0000\u08ee\u08ef\u0005D\u0000\u0000\u08ef\u08f0"+ + "\u0005E\u0000\u0000\u08f0\u01be\u0001\u0000\u0000\u0000\u08f1\u08f2\u0005"+ + "S\u0000\u0000\u08f2\u08f3\u0005E\u0000\u0000\u08f3\u08f4\u0005R\u0000"+ + "\u0000\u08f4\u08f5\u0005D\u0000\u0000\u08f5\u08f6\u0005E\u0000\u0000\u08f6"+ + "\u08f7\u0005P\u0000\u0000\u08f7\u08f8\u0005R\u0000\u0000\u08f8\u08f9\u0005"+ + "O\u0000\u0000\u08f9\u08fa\u0005P\u0000\u0000\u08fa\u08fb\u0005E\u0000"+ + "\u0000\u08fb\u08fc\u0005R\u0000\u0000\u08fc\u08fd\u0005T\u0000\u0000\u08fd"+ + "\u08fe\u0005I\u0000\u0000\u08fe\u08ff\u0005E\u0000\u0000\u08ff\u0900\u0005"+ + "S\u0000\u0000\u0900\u01c0\u0001\u0000\u0000\u0000\u0901\u0902\u0005S\u0000"+ + "\u0000\u0902\u0903\u0005E\u0000\u0000\u0903\u0904\u0005S\u0000\u0000\u0904"+ + "\u0905\u0005S\u0000\u0000\u0905\u0906\u0005I\u0000\u0000\u0906\u0907\u0005"+ + "O\u0000\u0000\u0907\u0908\u0005N\u0000\u0000\u0908\u0909\u0005_\u0000"+ + "\u0000\u0909\u090a\u0005U\u0000\u0000\u090a\u090b\u0005S\u0000\u0000\u090b"+ + "\u090c\u0005E\u0000\u0000\u090c\u090d\u0005R\u0000\u0000\u090d\u01c2\u0001"+ + "\u0000\u0000\u0000\u090e\u090f\u0005S\u0000\u0000\u090f\u0910\u0005E\u0000"+ + "\u0000\u0910\u0911\u0005T\u0000\u0000\u0911\u01c4\u0001\u0000\u0000\u0000"+ + "\u0912\u0913\u0005M\u0000\u0000\u0913\u0914\u0005I\u0000\u0000\u0914\u0915"+ + "\u0005N\u0000\u0000\u0915\u0916\u0005U\u0000\u0000\u0916\u0917\u0005S"+ + "\u0000\u0000\u0917\u01c6\u0001\u0000\u0000\u0000\u0918\u0919\u0005S\u0000"+ + "\u0000\u0919\u091a\u0005E\u0000\u0000\u091a\u091b\u0005T\u0000\u0000\u091b"+ + "\u091c\u0005S\u0000\u0000\u091c\u01c8\u0001\u0000\u0000\u0000\u091d\u091e"+ + "\u0005S\u0000\u0000\u091e\u091f\u0005H\u0000\u0000\u091f\u0920\u0005O"+ + "\u0000\u0000\u0920\u0921\u0005W\u0000\u0000\u0921\u01ca\u0001\u0000\u0000"+ + "\u0000\u0922\u0923\u0005S\u0000\u0000\u0923\u0924\u0005K\u0000\u0000\u0924"+ + "\u0925\u0005E\u0000\u0000\u0925\u0926\u0005W\u0000\u0000\u0926\u0927\u0005"+ + "E\u0000\u0000\u0927\u0928\u0005D\u0000\u0000\u0928\u01cc\u0001\u0000\u0000"+ + "\u0000\u0929\u092a\u0005S\u0000\u0000\u092a\u092b\u0005O\u0000\u0000\u092b"+ + "\u092c\u0005M\u0000\u0000\u092c\u092d\u0005E\u0000\u0000\u092d\u01ce\u0001"+ + "\u0000\u0000\u0000\u092e\u092f\u0005S\u0000\u0000\u092f\u0930\u0005O\u0000"+ + "\u0000\u0930\u0931\u0005R\u0000\u0000\u0931\u0932\u0005T\u0000\u0000\u0932"+ + "\u01d0\u0001\u0000\u0000\u0000\u0933\u0934\u0005S\u0000\u0000\u0934\u0935"+ + "\u0005O\u0000\u0000\u0935\u0936\u0005R\u0000\u0000\u0936\u0937\u0005T"+ + "\u0000\u0000\u0937\u0938\u0005E\u0000\u0000\u0938\u0939\u0005D\u0000\u0000"+ + "\u0939\u01d2\u0001\u0000\u0000\u0000\u093a\u093b\u0005S\u0000\u0000\u093b"+ + "\u093c\u0005T\u0000\u0000\u093c\u093d\u0005A\u0000\u0000\u093d\u093e\u0005"+ + "R\u0000\u0000\u093e\u093f\u0005T\u0000\u0000\u093f\u01d4\u0001\u0000\u0000"+ + "\u0000\u0940\u0941\u0005S\u0000\u0000\u0941\u0942\u0005T\u0000\u0000\u0942"+ + "\u0943\u0005A\u0000\u0000\u0943\u0944\u0005T\u0000\u0000\u0944\u0945\u0005"+ + "I\u0000\u0000\u0945\u0946\u0005S\u0000\u0000\u0946\u0947\u0005T\u0000"+ + "\u0000\u0947\u0948\u0005I\u0000\u0000\u0948\u0949\u0005C\u0000\u0000\u0949"+ + "\u094a\u0005S\u0000\u0000\u094a\u01d6\u0001\u0000\u0000\u0000\u094b\u094c"+ + "\u0005S\u0000\u0000\u094c\u094d\u0005T\u0000\u0000\u094d\u094e\u0005O"+ + "\u0000\u0000\u094e\u094f\u0005R\u0000\u0000\u094f\u0950\u0005E\u0000\u0000"+ + "\u0950\u0951\u0005D\u0000\u0000\u0951\u01d8\u0001\u0000\u0000\u0000\u0952"+ + "\u0953\u0005S\u0000\u0000\u0953\u0954\u0005T\u0000\u0000\u0954\u0955\u0005"+ + "R\u0000\u0000\u0955\u0956\u0005A\u0000\u0000\u0956\u0957\u0005T\u0000"+ + "\u0000\u0957\u0958\u0005I\u0000\u0000\u0958\u0959\u0005F\u0000\u0000\u0959"+ + "\u095a\u0005Y\u0000\u0000\u095a\u01da\u0001\u0000\u0000\u0000\u095b\u095c"+ + "\u0005S\u0000\u0000\u095c\u095d\u0005T\u0000\u0000\u095d\u095e\u0005R"+ + "\u0000\u0000\u095e\u095f\u0005U\u0000\u0000\u095f\u0960\u0005C\u0000\u0000"+ + "\u0960\u0961\u0005T\u0000\u0000\u0961\u01dc\u0001\u0000\u0000\u0000\u0962"+ + "\u0963\u0005S\u0000\u0000\u0963\u0964\u0005U\u0000\u0000\u0964\u0965\u0005"+ + "B\u0000\u0000\u0965\u0966\u0005S\u0000\u0000\u0966\u0967\u0005T\u0000"+ + "\u0000\u0967\u0968\u0005R\u0000\u0000\u0968\u01de\u0001\u0000\u0000\u0000"+ + "\u0969\u096a\u0005S\u0000\u0000\u096a\u096b\u0005U\u0000\u0000\u096b\u096c"+ + "\u0005B\u0000\u0000\u096c\u096d\u0005S\u0000\u0000\u096d\u096e\u0005T"+ + "\u0000\u0000\u096e\u096f\u0005R\u0000\u0000\u096f\u0970\u0005I\u0000\u0000"+ + "\u0970\u0971\u0005N\u0000\u0000\u0971\u0972\u0005G\u0000\u0000\u0972\u01e0"+ + "\u0001\u0000\u0000\u0000\u0973\u0974\u0005S\u0000\u0000\u0974\u0975\u0005"+ + "Y\u0000\u0000\u0975\u0976\u0005N\u0000\u0000\u0976\u0977\u0005C\u0000"+ + "\u0000\u0977\u01e2\u0001\u0000\u0000\u0000\u0978\u0979\u0005S\u0000\u0000"+ + "\u0979\u097a\u0005Y\u0000\u0000\u097a\u097b\u0005S\u0000\u0000\u097b\u097c"+ + "\u0005T\u0000\u0000\u097c\u097d\u0005E\u0000\u0000\u097d\u097e\u0005M"+ + "\u0000\u0000\u097e\u097f\u0005_\u0000\u0000\u097f\u0980\u0005T\u0000\u0000"+ + "\u0980\u0981\u0005I\u0000\u0000\u0981\u0982\u0005M\u0000\u0000\u0982\u0983"+ + "\u0005E\u0000\u0000\u0983\u01e4\u0001\u0000\u0000\u0000\u0984\u0985\u0005"+ + "S\u0000\u0000\u0985\u0986\u0005Y\u0000\u0000\u0986\u0987\u0005S\u0000"+ + "\u0000\u0987\u0988\u0005T\u0000\u0000\u0988\u0989\u0005E\u0000\u0000\u0989"+ + "\u098a\u0005M\u0000\u0000\u098a\u098b\u0005_\u0000\u0000\u098b\u098c\u0005"+ + "V\u0000\u0000\u098c\u098d\u0005E\u0000\u0000\u098d\u098e\u0005R\u0000"+ + "\u0000\u098e\u098f\u0005S\u0000\u0000\u098f\u0990\u0005I\u0000\u0000\u0990"+ + "\u0991\u0005O\u0000\u0000\u0991\u0992\u0005N\u0000\u0000\u0992\u01e6\u0001"+ + "\u0000\u0000\u0000\u0993\u0994\u0005T\u0000\u0000\u0994\u0995\u0005A\u0000"+ + "\u0000\u0995\u0996\u0005B\u0000\u0000\u0996\u0997\u0005L\u0000\u0000\u0997"+ + "\u0998\u0005E\u0000\u0000\u0998\u01e8\u0001\u0000\u0000\u0000\u0999\u099a"+ + "\u0005T\u0000\u0000\u099a\u099b\u0005A\u0000\u0000\u099b\u099c\u0005B"+ + "\u0000\u0000\u099c\u099d\u0005L\u0000\u0000\u099d\u099e\u0005E\u0000\u0000"+ + "\u099e\u099f\u0005S\u0000\u0000\u099f\u01ea\u0001\u0000\u0000\u0000\u09a0"+ + "\u09a1\u0005T\u0000\u0000\u09a1\u09a2\u0005A\u0000\u0000\u09a2\u09a3\u0005"+ + "B\u0000\u0000\u09a3\u09a4\u0005L\u0000\u0000\u09a4\u09a5\u0005E\u0000"+ + "\u0000\u09a5\u09a6\u0005S\u0000\u0000\u09a6\u09a7\u0005A\u0000\u0000\u09a7"+ + "\u09a8\u0005M\u0000\u0000\u09a8\u09a9\u0005P\u0000\u0000\u09a9\u09aa\u0005"+ + "L\u0000\u0000\u09aa\u09ab\u0005E\u0000\u0000\u09ab\u01ec"; + private static final String _serializedATNSegment1 = + "\u0001\u0000\u0000\u0000\u09ac\u09ad\u0005T\u0000\u0000\u09ad\u09ae\u0005"+ + "B\u0000\u0000\u09ae\u09af\u0005L\u0000\u0000\u09af\u09b0\u0005P\u0000"+ + "\u0000\u09b0\u09b1\u0005R\u0000\u0000\u09b1\u09b2\u0005O\u0000\u0000\u09b2"+ + "\u09b3\u0005P\u0000\u0000\u09b3\u09b4\u0005E\u0000\u0000\u09b4\u09b5\u0005"+ + "R\u0000\u0000\u09b5\u09b6\u0005T\u0000\u0000\u09b6\u09b7\u0005I\u0000"+ + "\u0000\u09b7\u09b8\u0005E\u0000\u0000\u09b8\u09b9\u0005S\u0000\u0000\u09b9"+ + "\u01ee\u0001\u0000\u0000\u0000\u09ba\u09bb\u0005T\u0000\u0000\u09bb\u09bc"+ + "\u0005E\u0000\u0000\u09bc\u09bd\u0005M\u0000\u0000\u09bd\u09be\u0005P"+ + "\u0000\u0000\u09be\u09bf\u0005O\u0000\u0000\u09bf\u09c0\u0005R\u0000\u0000"+ + "\u09c0\u09c1\u0005A\u0000\u0000\u09c1\u09c2\u0005R\u0000\u0000\u09c2\u09c8"+ + "\u0005Y\u0000\u0000\u09c3\u09c4\u0005T\u0000\u0000\u09c4\u09c5\u0005E"+ + "\u0000\u0000\u09c5\u09c6\u0005M\u0000\u0000\u09c6\u09c8\u0005P\u0000\u0000"+ + "\u09c7\u09ba\u0001\u0000\u0000\u0000\u09c7\u09c3\u0001\u0000\u0000\u0000"+ + "\u09c8\u01f0\u0001\u0000\u0000\u0000\u09c9\u09ca\u0005T\u0000\u0000\u09ca"+ + "\u09cb\u0005E\u0000\u0000\u09cb\u09cc\u0005R\u0000\u0000\u09cc\u09cd\u0005"+ + "M\u0000\u0000\u09cd\u09ce\u0005I\u0000\u0000\u09ce\u09cf\u0005N\u0000"+ + "\u0000\u09cf\u09d0\u0005A\u0000\u0000\u09d0\u09d1\u0005T\u0000\u0000\u09d1"+ + "\u09d2\u0005E\u0000\u0000\u09d2\u09d3\u0005D\u0000\u0000\u09d3\u01f2\u0001"+ + "\u0000\u0000\u0000\u09d4\u09d5\u0005T\u0000\u0000\u09d5\u09d6\u0005H\u0000"+ + "\u0000\u09d6\u09d7\u0005E\u0000\u0000\u09d7\u09d8\u0005N\u0000\u0000\u09d8"+ + "\u01f4\u0001\u0000\u0000\u0000\u09d9\u09da\u0005T\u0000\u0000\u09da\u09db"+ + "\u0005I\u0000\u0000\u09db\u09dc\u0005M\u0000\u0000\u09dc\u09dd\u0005E"+ + "\u0000\u0000\u09dd\u01f6\u0001\u0000\u0000\u0000\u09de\u09df\u0005T\u0000"+ + "\u0000\u09df\u09e0\u0005I\u0000\u0000\u09e0\u09e1\u0005M\u0000\u0000\u09e1"+ + "\u09e2\u0005E\u0000\u0000\u09e2\u09e3\u0005S\u0000\u0000\u09e3\u09e4\u0005"+ + "T\u0000\u0000\u09e4\u09e5\u0005A\u0000\u0000\u09e5\u09e6\u0005M\u0000"+ + "\u0000\u09e6\u09e7\u0005P\u0000\u0000\u09e7\u01f8\u0001\u0000\u0000\u0000"+ + "\u09e8\u09e9\u0005T\u0000\u0000\u09e9\u09ea\u0005I\u0000\u0000\u09ea\u09eb"+ + "\u0005M\u0000\u0000\u09eb\u09ec\u0005E\u0000\u0000\u09ec\u09ed\u0005S"+ + "\u0000\u0000\u09ed\u09ee\u0005T\u0000\u0000\u09ee\u09ef\u0005A\u0000\u0000"+ + "\u09ef\u09f0\u0005M\u0000\u0000\u09f0\u09f1\u0005P\u0000\u0000\u09f1\u09f2"+ + "\u0005A\u0000\u0000\u09f2\u09f3\u0005D\u0000\u0000\u09f3\u09f4\u0005D"+ + "\u0000\u0000\u09f4\u01fa\u0001\u0000\u0000\u0000\u09f5\u09f6\u0005T\u0000"+ + "\u0000\u09f6\u09f7\u0005I\u0000\u0000\u09f7\u09f8\u0005M\u0000\u0000\u09f8"+ + "\u09f9\u0005E\u0000\u0000\u09f9\u09fa\u0005S\u0000\u0000\u09fa\u09fb\u0005"+ + "T\u0000\u0000\u09fb\u09fc\u0005A\u0000\u0000\u09fc\u09fd\u0005M\u0000"+ + "\u0000\u09fd\u09fe\u0005P\u0000\u0000\u09fe\u09ff\u0005D\u0000\u0000\u09ff"+ + "\u0a00\u0005I\u0000\u0000\u0a00\u0a01\u0005F\u0000\u0000\u0a01\u0a02\u0005"+ + "F\u0000\u0000\u0a02\u01fc\u0001\u0000\u0000\u0000\u0a03\u0a04\u0005T\u0000"+ + "\u0000\u0a04\u0a05\u0005O\u0000\u0000\u0a05\u01fe\u0001\u0000\u0000\u0000"+ + "\u0a06\u0a07\u0005T\u0000\u0000\u0a07\u0a08\u0005O\u0000\u0000\u0a08\u0a09"+ + "\u0005U\u0000\u0000\u0a09\u0a0a\u0005C\u0000\u0000\u0a0a\u0a0b\u0005H"+ + "\u0000\u0000\u0a0b\u0200\u0001\u0000\u0000\u0000\u0a0c\u0a0d\u0005T\u0000"+ + "\u0000\u0a0d\u0a0e\u0005R\u0000\u0000\u0a0e\u0a0f\u0005A\u0000\u0000\u0a0f"+ + "\u0a10\u0005I\u0000\u0000\u0a10\u0a11\u0005L\u0000\u0000\u0a11\u0a12\u0005"+ + "I\u0000\u0000\u0a12\u0a13\u0005N\u0000\u0000\u0a13\u0a14\u0005G\u0000"+ + "\u0000\u0a14\u0202\u0001\u0000\u0000\u0000\u0a15\u0a16\u0005T\u0000\u0000"+ + "\u0a16\u0a17\u0005R\u0000\u0000\u0a17\u0a18\u0005A\u0000\u0000\u0a18\u0a19"+ + "\u0005N\u0000\u0000\u0a19\u0a1a\u0005S\u0000\u0000\u0a1a\u0a1b\u0005A"+ + "\u0000\u0000\u0a1b\u0a1c\u0005C\u0000\u0000\u0a1c\u0a1d\u0005T\u0000\u0000"+ + "\u0a1d\u0a1e\u0005I\u0000\u0000\u0a1e\u0a1f\u0005O\u0000\u0000\u0a1f\u0a20"+ + "\u0005N\u0000\u0000\u0a20\u0204\u0001\u0000\u0000\u0000\u0a21\u0a22\u0005"+ + "T\u0000\u0000\u0a22\u0a23\u0005R\u0000\u0000\u0a23\u0a24\u0005A\u0000"+ + "\u0000\u0a24\u0a25\u0005N\u0000\u0000\u0a25\u0a26\u0005S\u0000\u0000\u0a26"+ + "\u0a27\u0005A\u0000\u0000\u0a27\u0a28\u0005C\u0000\u0000\u0a28\u0a29\u0005"+ + "T\u0000\u0000\u0a29\u0a2a\u0005I\u0000\u0000\u0a2a\u0a2b\u0005O\u0000"+ + "\u0000\u0a2b\u0a2c\u0005N\u0000\u0000\u0a2c\u0a2d\u0005S\u0000\u0000\u0a2d"+ + "\u0206\u0001\u0000\u0000\u0000\u0a2e\u0a2f\u0005T\u0000\u0000\u0a2f\u0a30"+ + "\u0005R\u0000\u0000\u0a30\u0a31\u0005A\u0000\u0000\u0a31\u0a32\u0005N"+ + "\u0000\u0000\u0a32\u0a33\u0005S\u0000\u0000\u0a33\u0a34\u0005F\u0000\u0000"+ + "\u0a34\u0a35\u0005O\u0000\u0000\u0a35\u0a36\u0005R\u0000\u0000\u0a36\u0a37"+ + "\u0005M\u0000\u0000\u0a37\u0208\u0001\u0000\u0000\u0000\u0a38\u0a39\u0005"+ + "T\u0000\u0000\u0a39\u0a3a\u0005R\u0000\u0000\u0a3a\u0a3b\u0005I\u0000"+ + "\u0000\u0a3b\u0a3c\u0005M\u0000\u0000\u0a3c\u020a\u0001\u0000\u0000\u0000"+ + "\u0a3d\u0a3e\u0005T\u0000\u0000\u0a3e\u0a3f\u0005R\u0000\u0000\u0a3f\u0a40"+ + "\u0005U\u0000\u0000\u0a40\u0a41\u0005E\u0000\u0000\u0a41\u020c\u0001\u0000"+ + "\u0000\u0000\u0a42\u0a43\u0005T\u0000\u0000\u0a43\u0a44\u0005R\u0000\u0000"+ + "\u0a44\u0a45\u0005U\u0000\u0000\u0a45\u0a46\u0005N\u0000\u0000\u0a46\u0a47"+ + "\u0005C\u0000\u0000\u0a47\u0a48\u0005A\u0000\u0000\u0a48\u0a49\u0005T"+ + "\u0000\u0000\u0a49\u0a4a\u0005E\u0000\u0000\u0a4a\u020e\u0001\u0000\u0000"+ + "\u0000\u0a4b\u0a4c\u0005T\u0000\u0000\u0a4c\u0a4d\u0005R\u0000\u0000\u0a4d"+ + "\u0a4e\u0005Y\u0000\u0000\u0a4e\u0a4f\u0005_\u0000\u0000\u0a4f\u0a50\u0005"+ + "C\u0000\u0000\u0a50\u0a51\u0005A\u0000\u0000\u0a51\u0a52\u0005S\u0000"+ + "\u0000\u0a52\u0a53\u0005T\u0000\u0000\u0a53\u0210\u0001\u0000\u0000\u0000"+ + "\u0a54\u0a55\u0005T\u0000\u0000\u0a55\u0a56\u0005Y\u0000\u0000\u0a56\u0a57"+ + "\u0005P\u0000\u0000\u0a57\u0a58\u0005E\u0000\u0000\u0a58\u0212\u0001\u0000"+ + "\u0000\u0000\u0a59\u0a5a\u0005U\u0000\u0000\u0a5a\u0a5b\u0005N\u0000\u0000"+ + "\u0a5b\u0a5c\u0005A\u0000\u0000\u0a5c\u0a5d\u0005R\u0000\u0000\u0a5d\u0a5e"+ + "\u0005C\u0000\u0000\u0a5e\u0a5f\u0005H\u0000\u0000\u0a5f\u0a60\u0005I"+ + "\u0000\u0000\u0a60\u0a61\u0005V\u0000\u0000\u0a61\u0a62\u0005E\u0000\u0000"+ + "\u0a62\u0214\u0001\u0000\u0000\u0000\u0a63\u0a64\u0005U\u0000\u0000\u0a64"+ + "\u0a65\u0005N\u0000\u0000\u0a65\u0a66\u0005B\u0000\u0000\u0a66\u0a67\u0005"+ + "O\u0000\u0000\u0a67\u0a68\u0005U\u0000\u0000\u0a68\u0a69\u0005N\u0000"+ + "\u0000\u0a69\u0a6a\u0005D\u0000\u0000\u0a6a\u0a6b\u0005E\u0000\u0000\u0a6b"+ + "\u0a6c\u0005D\u0000\u0000\u0a6c\u0216\u0001\u0000\u0000\u0000\u0a6d\u0a6e"+ + "\u0005U\u0000\u0000\u0a6e\u0a6f\u0005N\u0000\u0000\u0a6f\u0a70\u0005C"+ + "\u0000\u0000\u0a70\u0a71\u0005A\u0000\u0000\u0a71\u0a72\u0005C\u0000\u0000"+ + "\u0a72\u0a73\u0005H\u0000\u0000\u0a73\u0a74\u0005E\u0000\u0000\u0a74\u0218"+ + "\u0001\u0000\u0000\u0000\u0a75\u0a76\u0005U\u0000\u0000\u0a76\u0a77\u0005"+ + "N\u0000\u0000\u0a77\u0a78\u0005I\u0000\u0000\u0a78\u0a79\u0005O\u0000"+ + "\u0000\u0a79\u0a7a\u0005N\u0000\u0000\u0a7a\u021a\u0001\u0000\u0000\u0000"+ + "\u0a7b\u0a7c\u0005U\u0000\u0000\u0a7c\u0a7d\u0005N\u0000\u0000\u0a7d\u0a7e"+ + "\u0005I\u0000\u0000\u0a7e\u0a7f\u0005Q\u0000\u0000\u0a7f\u0a80\u0005U"+ + "\u0000\u0000\u0a80\u0a81\u0005E\u0000\u0000\u0a81\u021c\u0001\u0000\u0000"+ + "\u0000\u0a82\u0a83\u0005U\u0000\u0000\u0a83\u0a84\u0005N\u0000\u0000\u0a84"+ + "\u0a85\u0005K\u0000\u0000\u0a85\u0a86\u0005N\u0000\u0000\u0a86\u0a87\u0005"+ + "O\u0000\u0000\u0a87\u0a88\u0005W\u0000\u0000\u0a88\u0a89\u0005N\u0000"+ + "\u0000\u0a89\u021e\u0001\u0000\u0000\u0000\u0a8a\u0a8b\u0005U\u0000\u0000"+ + "\u0a8b\u0a8c\u0005N\u0000\u0000\u0a8c\u0a8d\u0005L\u0000\u0000\u0a8d\u0a8e"+ + "\u0005O\u0000\u0000\u0a8e\u0a8f\u0005C\u0000\u0000\u0a8f\u0a90\u0005K"+ + "\u0000\u0000\u0a90\u0220\u0001\u0000\u0000\u0000\u0a91\u0a92\u0005U\u0000"+ + "\u0000\u0a92\u0a93\u0005N\u0000\u0000\u0a93\u0a94\u0005S\u0000\u0000\u0a94"+ + "\u0a95\u0005E\u0000\u0000\u0a95\u0a96\u0005T\u0000\u0000\u0a96\u0222\u0001"+ + "\u0000\u0000\u0000\u0a97\u0a98\u0005U\u0000\u0000\u0a98\u0a99\u0005P\u0000"+ + "\u0000\u0a99\u0a9a\u0005D\u0000\u0000\u0a9a\u0a9b\u0005A\u0000\u0000\u0a9b"+ + "\u0a9c\u0005T\u0000\u0000\u0a9c\u0a9d\u0005E\u0000\u0000\u0a9d\u0224\u0001"+ + "\u0000\u0000\u0000\u0a9e\u0a9f\u0005U\u0000\u0000\u0a9f\u0aa0\u0005S\u0000"+ + "\u0000\u0aa0\u0aa1\u0005E\u0000\u0000\u0aa1\u0226\u0001\u0000\u0000\u0000"+ + "\u0aa2\u0aa3\u0005U\u0000\u0000\u0aa3\u0aa4\u0005S\u0000\u0000\u0aa4\u0aa5"+ + "\u0005E\u0000\u0000\u0aa5\u0aa6\u0005R\u0000\u0000\u0aa6\u0228\u0001\u0000"+ + "\u0000\u0000\u0aa7\u0aa8\u0005U\u0000\u0000\u0aa8\u0aa9\u0005S\u0000\u0000"+ + "\u0aa9\u0aaa\u0005I\u0000\u0000\u0aaa\u0aab\u0005N\u0000\u0000\u0aab\u0aac"+ + "\u0005G\u0000\u0000\u0aac\u022a\u0001\u0000\u0000\u0000\u0aad\u0aae\u0005"+ + "V\u0000\u0000\u0aae\u0aaf\u0005A\u0000\u0000\u0aaf\u0ab0\u0005L\u0000"+ + "\u0000\u0ab0\u0ab1\u0005U\u0000\u0000\u0ab1\u0ab2\u0005E\u0000\u0000\u0ab2"+ + "\u0ab3\u0005S\u0000\u0000\u0ab3\u022c\u0001\u0000\u0000\u0000\u0ab4\u0ab5"+ + "\u0005V\u0000\u0000\u0ab5\u0ab6\u0005E\u0000\u0000\u0ab6\u0ab7\u0005R"+ + "\u0000\u0000\u0ab7\u0ab8\u0005S\u0000\u0000\u0ab8\u0ab9\u0005I\u0000\u0000"+ + "\u0ab9\u0aba\u0005O\u0000\u0000\u0aba\u0abb\u0005N\u0000\u0000\u0abb\u022e"+ + "\u0001\u0000\u0000\u0000\u0abc\u0abd\u0005V\u0000\u0000\u0abd\u0abe\u0005"+ + "I\u0000\u0000\u0abe\u0abf\u0005E\u0000\u0000\u0abf\u0ac0\u0005W\u0000"+ + "\u0000\u0ac0\u0230\u0001\u0000\u0000\u0000\u0ac1\u0ac2\u0005V\u0000\u0000"+ + "\u0ac2\u0ac3\u0005I\u0000\u0000\u0ac3\u0ac4\u0005E\u0000\u0000\u0ac4\u0ac5"+ + "\u0005W\u0000\u0000\u0ac5\u0ac6\u0005S\u0000\u0000\u0ac6\u0232\u0001\u0000"+ + "\u0000\u0000\u0ac7\u0ac8\u0005W\u0000\u0000\u0ac8\u0ac9\u0005E\u0000\u0000"+ + "\u0ac9\u0aca\u0005E\u0000\u0000\u0aca\u0acb\u0005K\u0000\u0000\u0acb\u0234"+ + "\u0001\u0000\u0000\u0000\u0acc\u0acd\u0005W\u0000\u0000\u0acd\u0ace\u0005"+ + "H\u0000\u0000\u0ace\u0acf\u0005E\u0000\u0000\u0acf\u0ad0\u0005N\u0000"+ + "\u0000\u0ad0\u0236\u0001\u0000\u0000\u0000\u0ad1\u0ad2\u0005W\u0000\u0000"+ + "\u0ad2\u0ad3\u0005H\u0000\u0000\u0ad3\u0ad4\u0005E\u0000\u0000\u0ad4\u0ad5"+ + "\u0005R\u0000\u0000\u0ad5\u0ad6\u0005E\u0000\u0000\u0ad6\u0238\u0001\u0000"+ + "\u0000\u0000\u0ad7\u0ad8\u0005W\u0000\u0000\u0ad8\u0ad9\u0005I\u0000\u0000"+ + "\u0ad9\u0ada\u0005N\u0000\u0000\u0ada\u0adb\u0005D\u0000\u0000\u0adb\u0adc"+ + "\u0005O\u0000\u0000\u0adc\u0add\u0005W\u0000\u0000\u0add\u023a\u0001\u0000"+ + "\u0000\u0000\u0ade\u0adf\u0005W\u0000\u0000\u0adf\u0ae0\u0005I\u0000\u0000"+ + "\u0ae0\u0ae1\u0005T\u0000\u0000\u0ae1\u0ae2\u0005H\u0000\u0000\u0ae2\u023c"+ + "\u0001\u0000\u0000\u0000\u0ae3\u0ae4\u0005W\u0000\u0000\u0ae4\u0ae5\u0005"+ + "I\u0000\u0000\u0ae5\u0ae6\u0005T\u0000\u0000\u0ae6\u0ae7\u0005H\u0000"+ + "\u0000\u0ae7\u0ae8\u0005I\u0000\u0000\u0ae8\u0ae9\u0005N\u0000\u0000\u0ae9"+ + "\u023e\u0001\u0000\u0000\u0000\u0aea\u0aeb\u0005Y\u0000\u0000\u0aeb\u0aec"+ + "\u0005E\u0000\u0000\u0aec\u0aed\u0005A\u0000\u0000\u0aed\u0aee\u0005R"+ + "\u0000\u0000\u0aee\u0240\u0001\u0000\u0000\u0000\u0aef\u0af0\u0005Z\u0000"+ + "\u0000\u0af0\u0af1\u0005O\u0000\u0000\u0af1\u0af2\u0005N\u0000\u0000\u0af2"+ + "\u0af3\u0005E\u0000\u0000\u0af3\u0242\u0001\u0000\u0000\u0000\u0af4\u0af8"+ + "\u0005=\u0000\u0000\u0af5\u0af6\u0005=\u0000\u0000\u0af6\u0af8\u0005="+ + "\u0000\u0000\u0af7\u0af4\u0001\u0000\u0000\u0000\u0af7\u0af5\u0001\u0000"+ + "\u0000\u0000\u0af8\u0244\u0001\u0000\u0000\u0000\u0af9\u0afa\u0005<\u0000"+ + "\u0000\u0afa\u0afb\u0005=\u0000\u0000\u0afb\u0afc\u0005>\u0000\u0000\u0afc"+ + "\u0246\u0001\u0000\u0000\u0000\u0afd\u0afe\u0005<\u0000\u0000\u0afe\u0aff"+ + "\u0005>\u0000\u0000\u0aff\u0248\u0001\u0000\u0000\u0000\u0b00\u0b01\u0005"+ + "!\u0000\u0000\u0b01\u0b02\u0005=\u0000\u0000\u0b02\u024a\u0001\u0000\u0000"+ + "\u0000\u0b03\u0b04\u0005<\u0000\u0000\u0b04\u024c\u0001\u0000\u0000\u0000"+ + "\u0b05\u0b06\u0005<\u0000\u0000\u0b06\u0b0a\u0005=\u0000\u0000\u0b07\u0b08"+ + "\u0005!\u0000\u0000\u0b08\u0b0a\u0005>\u0000\u0000\u0b09\u0b05\u0001\u0000"+ + "\u0000\u0000\u0b09\u0b07\u0001\u0000\u0000\u0000\u0b0a\u024e\u0001\u0000"+ + "\u0000\u0000\u0b0b\u0b0c\u0005>\u0000\u0000\u0b0c\u0250\u0001\u0000\u0000"+ + "\u0000\u0b0d\u0b0e\u0005>\u0000\u0000\u0b0e\u0b12\u0005=\u0000\u0000\u0b0f"+ + "\u0b10\u0005!\u0000\u0000\u0b10\u0b12\u0005<\u0000\u0000\u0b11\u0b0d\u0001"+ + "\u0000\u0000\u0000\u0b11\u0b0f\u0001\u0000\u0000\u0000\u0b12\u0252\u0001"+ + "\u0000\u0000\u0000\u0b13\u0b14\u0005+\u0000\u0000\u0b14\u0254\u0001\u0000"+ + "\u0000\u0000\u0b15\u0b16\u0005-\u0000\u0000\u0b16\u0256\u0001\u0000\u0000"+ + "\u0000\u0b17\u0b18\u0005*\u0000\u0000\u0b18\u0258\u0001\u0000\u0000\u0000"+ + "\u0b19\u0b1a\u0005/\u0000\u0000\u0b1a\u025a\u0001\u0000\u0000\u0000\u0b1b"+ + "\u0b1c\u0005%\u0000\u0000\u0b1c\u025c\u0001\u0000\u0000\u0000\u0b1d\u0b1e"+ + "\u0005~\u0000\u0000\u0b1e\u025e\u0001\u0000\u0000\u0000\u0b1f\u0b20\u0005"+ + "&\u0000\u0000\u0b20\u0260\u0001\u0000\u0000\u0000\u0b21\u0b22\u0005|\u0000"+ + "\u0000\u0b22\u0262\u0001\u0000\u0000\u0000\u0b23\u0b24\u0005|\u0000\u0000"+ + "\u0b24\u0b25\u0005|\u0000\u0000\u0b25\u0264\u0001\u0000\u0000\u0000\u0b26"+ + "\u0b27\u0005^\u0000\u0000\u0b27\u0266\u0001\u0000\u0000\u0000\u0b28\u0b29"+ + "\u0005:\u0000\u0000\u0b29\u0268\u0001\u0000\u0000\u0000\u0b2a\u0b2b\u0005"+ + "-\u0000\u0000\u0b2b\u0b2c\u0005>\u0000\u0000\u0b2c\u026a\u0001\u0000\u0000"+ + "\u0000\u0b2d\u0b2e\u0005/\u0000\u0000\u0b2e\u0b2f\u0005*\u0000\u0000\u0b2f"+ + "\u0b30\u0005+\u0000\u0000\u0b30\u026c\u0001\u0000\u0000\u0000\u0b31\u0b32"+ + "\u0005*\u0000\u0000\u0b32\u0b33\u0005/\u0000\u0000\u0b33\u026e\u0001\u0000"+ + "\u0000\u0000\u0b34\u0b3a\u0005\'\u0000\u0000\u0b35\u0b39\b\u0000\u0000"+ + "\u0000\u0b36\u0b37\u0005\\\u0000\u0000\u0b37\u0b39\t\u0000\u0000\u0000"+ + "\u0b38\u0b35\u0001\u0000\u0000\u0000\u0b38\u0b36\u0001\u0000\u0000\u0000"+ + "\u0b39\u0b3c\u0001\u0000\u0000\u0000\u0b3a\u0b38\u0001\u0000\u0000\u0000"+ + "\u0b3a\u0b3b\u0001\u0000\u0000\u0000\u0b3b\u0b3d\u0001\u0000\u0000\u0000"+ + "\u0b3c\u0b3a\u0001\u0000\u0000\u0000\u0b3d\u0b5d\u0005\'\u0000\u0000\u0b3e"+ + "\u0b44\u0005\"\u0000\u0000\u0b3f\u0b43\b\u0001\u0000\u0000\u0b40\u0b41"+ + "\u0005\\\u0000\u0000\u0b41\u0b43\t\u0000\u0000\u0000\u0b42\u0b3f\u0001"+ + "\u0000\u0000\u0000\u0b42\u0b40\u0001\u0000\u0000\u0000\u0b43\u0b46\u0001"+ + "\u0000\u0000\u0000\u0b44\u0b42\u0001\u0000\u0000\u0000\u0b44\u0b45\u0001"+ + "\u0000\u0000\u0000\u0b45\u0b47\u0001\u0000\u0000\u0000\u0b46\u0b44\u0001"+ + "\u0000\u0000\u0000\u0b47\u0b5d\u0005\"\u0000\u0000\u0b48\u0b49\u0005R"+ + "\u0000\u0000\u0b49\u0b4a\u0005\'\u0000\u0000\u0b4a\u0b4e\u0001\u0000\u0000"+ + "\u0000\u0b4b\u0b4d\b\u0002\u0000\u0000\u0b4c\u0b4b\u0001\u0000\u0000\u0000"+ + "\u0b4d\u0b50\u0001\u0000\u0000\u0000\u0b4e\u0b4c\u0001\u0000\u0000\u0000"+ + "\u0b4e\u0b4f\u0001\u0000\u0000\u0000\u0b4f\u0b51\u0001\u0000\u0000\u0000"+ + "\u0b50\u0b4e\u0001\u0000\u0000\u0000\u0b51\u0b5d\u0005\'\u0000\u0000\u0b52"+ + "\u0b53\u0005R\u0000\u0000\u0b53\u0b54\u0005\"\u0000\u0000\u0b54\u0b58"+ + "\u0001\u0000\u0000\u0000\u0b55\u0b57\b\u0003\u0000\u0000\u0b56\u0b55\u0001"+ + "\u0000\u0000\u0000\u0b57\u0b5a\u0001\u0000\u0000\u0000\u0b58\u0b56\u0001"+ + "\u0000\u0000\u0000\u0b58\u0b59\u0001\u0000\u0000\u0000\u0b59\u0b5b\u0001"+ + "\u0000\u0000\u0000\u0b5a\u0b58\u0001\u0000\u0000\u0000\u0b5b\u0b5d\u0005"+ + "\"\u0000\u0000\u0b5c\u0b34\u0001\u0000\u0000\u0000\u0b5c\u0b3e\u0001\u0000"+ + "\u0000\u0000\u0b5c\u0b48\u0001\u0000\u0000\u0000\u0b5c\u0b52\u0001\u0000"+ + "\u0000\u0000\u0b5d\u0270\u0001\u0000\u0000\u0000\u0b5e\u0b60\u0003\u028b"+ + "\u0145\u0000\u0b5f\u0b5e\u0001\u0000\u0000\u0000\u0b60\u0b61\u0001\u0000"+ + "\u0000\u0000\u0b61\u0b5f\u0001\u0000\u0000\u0000\u0b61\u0b62\u0001\u0000"+ + "\u0000\u0000\u0b62\u0b63\u0001\u0000\u0000\u0000\u0b63\u0b64\u0005L\u0000"+ + "\u0000\u0b64\u0272\u0001\u0000\u0000\u0000\u0b65\u0b67\u0003\u028b\u0145"+ + "\u0000\u0b66\u0b65\u0001\u0000\u0000\u0000\u0b67\u0b68\u0001\u0000\u0000"+ + "\u0000\u0b68\u0b66\u0001\u0000\u0000\u0000\u0b68\u0b69\u0001\u0000\u0000"+ + "\u0000\u0b69\u0b6a\u0001\u0000\u0000\u0000\u0b6a\u0b6b\u0005S\u0000\u0000"+ + "\u0b6b\u0274\u0001\u0000\u0000\u0000\u0b6c\u0b6e\u0003\u028b\u0145\u0000"+ + "\u0b6d\u0b6c\u0001\u0000\u0000\u0000\u0b6e\u0b6f\u0001\u0000\u0000\u0000"+ + "\u0b6f\u0b6d\u0001\u0000\u0000\u0000\u0b6f\u0b70\u0001\u0000\u0000\u0000"+ + "\u0b70\u0b71\u0001\u0000\u0000\u0000\u0b71\u0b72\u0005Y\u0000\u0000\u0b72"+ + "\u0276\u0001\u0000\u0000\u0000\u0b73\u0b75\u0003\u028b\u0145\u0000\u0b74"+ + "\u0b73\u0001\u0000\u0000\u0000\u0b75\u0b76\u0001\u0000\u0000\u0000\u0b76"+ + "\u0b74\u0001\u0000\u0000\u0000\u0b76\u0b77\u0001\u0000\u0000\u0000\u0b77"+ + "\u0278\u0001\u0000\u0000\u0000\u0b78\u0b7a\u0003\u028b\u0145\u0000\u0b79"+ + "\u0b78\u0001\u0000\u0000\u0000\u0b7a\u0b7b\u0001\u0000\u0000\u0000\u0b7b"+ + "\u0b79\u0001\u0000\u0000\u0000\u0b7b\u0b7c\u0001\u0000\u0000\u0000\u0b7c"+ + "\u0b7d\u0001\u0000\u0000\u0000\u0b7d\u0b7e\u0003\u0289\u0144\u0000\u0b7e"+ + "\u0b84\u0001\u0000\u0000\u0000\u0b7f\u0b80\u0003\u0287\u0143\u0000\u0b80"+ + "\u0b81\u0003\u0289\u0144\u0000\u0b81\u0b82\u0004\u013c\u0000\u0000\u0b82"+ + "\u0b84\u0001\u0000\u0000\u0000\u0b83\u0b79\u0001\u0000\u0000\u0000\u0b83"+ + "\u0b7f\u0001\u0000\u0000\u0000\u0b84\u027a\u0001\u0000\u0000\u0000\u0b85"+ + "\u0b86\u0003\u0287\u0143\u0000\u0b86\u0b87\u0004\u013d\u0001\u0000\u0b87"+ + "\u027c\u0001\u0000\u0000\u0000\u0b88\u0b8a\u0003\u028b\u0145\u0000\u0b89"+ + "\u0b88\u0001\u0000\u0000\u0000\u0b8a\u0b8b\u0001\u0000\u0000\u0000\u0b8b"+ + "\u0b89\u0001\u0000\u0000\u0000\u0b8b\u0b8c\u0001\u0000\u0000\u0000\u0b8c"+ + "\u0b8e\u0001\u0000\u0000\u0000\u0b8d\u0b8f\u0003\u0289\u0144\u0000\u0b8e"+ + "\u0b8d\u0001\u0000\u0000\u0000\u0b8e\u0b8f\u0001\u0000\u0000\u0000\u0b8f"+ + "\u0b90\u0001\u0000\u0000\u0000\u0b90\u0b91\u0005F\u0000\u0000\u0b91\u0b9a"+ + "\u0001\u0000\u0000\u0000\u0b92\u0b94\u0003\u0287\u0143\u0000\u0b93\u0b95"+ + "\u0003\u0289\u0144\u0000\u0b94\u0b93\u0001\u0000\u0000\u0000\u0b94\u0b95"+ + "\u0001\u0000\u0000\u0000\u0b95\u0b96\u0001\u0000\u0000\u0000\u0b96\u0b97"+ + "\u0005F\u0000\u0000\u0b97\u0b98\u0004\u013e\u0002\u0000\u0b98\u0b9a\u0001"+ + "\u0000\u0000\u0000\u0b99\u0b89\u0001\u0000\u0000\u0000\u0b99\u0b92\u0001"+ + "\u0000\u0000\u0000\u0b9a\u027e\u0001\u0000\u0000\u0000\u0b9b\u0b9d\u0003"+ + "\u028b\u0145\u0000\u0b9c\u0b9b\u0001\u0000\u0000\u0000\u0b9d\u0b9e\u0001"+ + "\u0000\u0000\u0000\u0b9e\u0b9c\u0001\u0000\u0000\u0000\u0b9e\u0b9f\u0001"+ + "\u0000\u0000\u0000\u0b9f\u0ba1\u0001\u0000\u0000\u0000\u0ba0\u0ba2\u0003"+ + "\u0289\u0144\u0000\u0ba1\u0ba0\u0001\u0000\u0000\u0000\u0ba1\u0ba2\u0001"+ + "\u0000\u0000\u0000\u0ba2\u0ba3\u0001\u0000\u0000\u0000\u0ba3\u0ba4\u0005"+ + "D\u0000\u0000\u0ba4\u0bad\u0001\u0000\u0000\u0000\u0ba5\u0ba7\u0003\u0287"+ + "\u0143\u0000\u0ba6\u0ba8\u0003\u0289\u0144\u0000\u0ba7\u0ba6\u0001\u0000"+ + "\u0000\u0000\u0ba7\u0ba8\u0001\u0000\u0000\u0000\u0ba8\u0ba9\u0001\u0000"+ + "\u0000\u0000\u0ba9\u0baa\u0005D\u0000\u0000\u0baa\u0bab\u0004\u013f\u0003"+ + "\u0000\u0bab\u0bad\u0001\u0000\u0000\u0000\u0bac\u0b9c\u0001\u0000\u0000"+ + "\u0000\u0bac\u0ba5\u0001\u0000\u0000\u0000\u0bad\u0280\u0001\u0000\u0000"+ + "\u0000\u0bae\u0bb0\u0003\u028b\u0145\u0000\u0baf\u0bae\u0001\u0000\u0000"+ + "\u0000\u0bb0\u0bb1\u0001\u0000\u0000\u0000\u0bb1\u0baf\u0001\u0000\u0000"+ + "\u0000\u0bb1\u0bb2\u0001\u0000\u0000\u0000\u0bb2\u0bb4\u0001\u0000\u0000"+ + "\u0000\u0bb3\u0bb5\u0003\u0289\u0144\u0000\u0bb4\u0bb3\u0001\u0000\u0000"+ + "\u0000\u0bb4\u0bb5\u0001\u0000\u0000\u0000\u0bb5\u0bb6\u0001\u0000\u0000"+ + "\u0000\u0bb6\u0bb7\u0005B\u0000\u0000\u0bb7\u0bb8\u0005D\u0000\u0000\u0bb8"+ + "\u0bc3\u0001\u0000\u0000\u0000\u0bb9\u0bbb\u0003\u0287\u0143\u0000\u0bba"+ + "\u0bbc\u0003\u0289\u0144\u0000\u0bbb\u0bba\u0001\u0000\u0000\u0000\u0bbb"+ + "\u0bbc\u0001\u0000\u0000\u0000\u0bbc\u0bbd\u0001\u0000\u0000\u0000\u0bbd"+ + "\u0bbe\u0005B\u0000\u0000\u0bbe\u0bbf\u0005D\u0000\u0000\u0bbf\u0bc0\u0001"+ + "\u0000\u0000\u0000\u0bc0\u0bc1\u0004\u0140\u0004\u0000\u0bc1\u0bc3\u0001"+ + "\u0000\u0000\u0000\u0bc2\u0baf\u0001\u0000\u0000\u0000\u0bc2\u0bb9\u0001"+ + "\u0000\u0000\u0000\u0bc3\u0282\u0001\u0000\u0000\u0000\u0bc4\u0bc8\u0003"+ + "\u028d\u0146\u0000\u0bc5\u0bc8\u0003\u028b\u0145\u0000\u0bc6\u0bc8\u0005"+ + "_\u0000\u0000\u0bc7\u0bc4\u0001\u0000\u0000\u0000\u0bc7\u0bc5\u0001\u0000"+ + "\u0000\u0000\u0bc7\u0bc6\u0001\u0000\u0000\u0000\u0bc8\u0bc9\u0001\u0000"+ + "\u0000\u0000\u0bc9\u0bc7\u0001\u0000\u0000\u0000\u0bc9\u0bca\u0001\u0000"+ + "\u0000\u0000\u0bca\u0284\u0001\u0000\u0000\u0000\u0bcb\u0bd1\u0005`\u0000"+ + "\u0000\u0bcc\u0bd0\b\u0004\u0000\u0000\u0bcd\u0bce\u0005`\u0000\u0000"+ + "\u0bce\u0bd0\u0005`\u0000\u0000\u0bcf\u0bcc\u0001\u0000\u0000\u0000\u0bcf"+ + "\u0bcd\u0001\u0000\u0000\u0000\u0bd0\u0bd3\u0001\u0000\u0000\u0000\u0bd1"+ + "\u0bcf\u0001\u0000\u0000\u0000\u0bd1\u0bd2\u0001\u0000\u0000\u0000\u0bd2"+ + "\u0bd4\u0001\u0000\u0000\u0000\u0bd3\u0bd1\u0001\u0000\u0000\u0000\u0bd4"+ + "\u0bd5\u0005`\u0000\u0000\u0bd5\u0286\u0001\u0000\u0000\u0000\u0bd6\u0bd8"+ + "\u0003\u028b\u0145\u0000\u0bd7\u0bd6\u0001\u0000\u0000\u0000\u0bd8\u0bd9"+ + "\u0001\u0000\u0000\u0000\u0bd9\u0bd7\u0001\u0000\u0000\u0000\u0bd9\u0bda"+ + "\u0001\u0000\u0000\u0000\u0bda\u0bdb\u0001\u0000\u0000\u0000\u0bdb\u0bdf"+ + "\u0005.\u0000\u0000\u0bdc\u0bde\u0003\u028b\u0145\u0000\u0bdd\u0bdc\u0001"+ + "\u0000\u0000\u0000\u0bde\u0be1\u0001\u0000\u0000\u0000\u0bdf\u0bdd\u0001"+ + "\u0000\u0000\u0000\u0bdf\u0be0\u0001\u0000\u0000\u0000\u0be0\u0be9\u0001"+ + "\u0000\u0000\u0000\u0be1\u0bdf\u0001\u0000\u0000\u0000\u0be2\u0be4\u0005"+ + ".\u0000\u0000\u0be3\u0be5\u0003\u028b\u0145\u0000\u0be4\u0be3\u0001\u0000"+ + "\u0000\u0000\u0be5\u0be6\u0001\u0000\u0000\u0000\u0be6\u0be4\u0001\u0000"+ + "\u0000\u0000\u0be6\u0be7\u0001\u0000\u0000\u0000\u0be7\u0be9\u0001\u0000"+ + "\u0000\u0000\u0be8\u0bd7\u0001\u0000\u0000\u0000\u0be8\u0be2\u0001\u0000"+ + "\u0000\u0000\u0be9\u0288\u0001\u0000\u0000\u0000\u0bea\u0bec\u0005E\u0000"+ + "\u0000\u0beb\u0bed\u0007\u0005\u0000\u0000\u0bec\u0beb\u0001\u0000\u0000"+ + "\u0000\u0bec\u0bed\u0001\u0000\u0000\u0000\u0bed\u0bef\u0001\u0000\u0000"+ + "\u0000\u0bee\u0bf0\u0003\u028b\u0145\u0000\u0bef\u0bee\u0001\u0000\u0000"+ + "\u0000\u0bf0\u0bf1\u0001\u0000\u0000\u0000\u0bf1\u0bef\u0001\u0000\u0000"+ + "\u0000\u0bf1\u0bf2\u0001\u0000\u0000\u0000\u0bf2\u028a\u0001\u0000\u0000"+ + "\u0000\u0bf3\u0bf4\u0007\u0006\u0000\u0000\u0bf4\u028c\u0001\u0000\u0000"+ + "\u0000\u0bf5\u0bf6\u0007\u0007\u0000\u0000\u0bf6\u028e\u0001\u0000\u0000"+ + "\u0000\u0bf7\u0bf8\u0005-\u0000\u0000\u0bf8\u0bf9\u0005-\u0000\u0000\u0bf9"+ + "\u0bff\u0001\u0000\u0000\u0000\u0bfa\u0bfb\u0005\\\u0000\u0000\u0bfb\u0bfe"+ + "\u0005\n\u0000\u0000\u0bfc\u0bfe\b\b\u0000\u0000\u0bfd\u0bfa\u0001\u0000"+ + "\u0000\u0000\u0bfd\u0bfc\u0001\u0000\u0000\u0000\u0bfe\u0c01\u0001\u0000"+ + "\u0000\u0000\u0bff\u0bfd\u0001\u0000\u0000\u0000\u0bff\u0c00\u0001\u0000"+ + "\u0000\u0000\u0c00\u0c03\u0001\u0000\u0000\u0000\u0c01\u0bff\u0001\u0000"+ + "\u0000\u0000\u0c02\u0c04\u0005\r\u0000\u0000\u0c03\u0c02\u0001\u0000\u0000"+ + "\u0000\u0c03\u0c04\u0001\u0000\u0000\u0000\u0c04\u0c06\u0001\u0000\u0000"+ + "\u0000\u0c05\u0c07\u0005\n\u0000\u0000\u0c06\u0c05\u0001\u0000\u0000\u0000"+ + "\u0c06\u0c07\u0001\u0000\u0000\u0000\u0c07\u0c08\u0001\u0000\u0000\u0000"+ + "\u0c08\u0c09\u0006\u0147\u0000\u0000\u0c09\u0290\u0001\u0000\u0000\u0000"+ + "\u0c0a\u0c0b\u0005/\u0000\u0000\u0c0b\u0c0c\u0005*\u0000\u0000\u0c0c\u0c0d"+ + "\u0001\u0000\u0000\u0000\u0c0d\u0c12\u0004\u0148\u0005\u0000\u0c0e\u0c11"+ + "\u0003\u0291\u0148\u0000\u0c0f\u0c11\t\u0000\u0000\u0000\u0c10\u0c0e\u0001"+ + "\u0000\u0000\u0000\u0c10\u0c0f\u0001\u0000\u0000\u0000\u0c11\u0c14\u0001"+ + "\u0000\u0000\u0000\u0c12\u0c13\u0001\u0000\u0000\u0000\u0c12\u0c10\u0001"+ + "\u0000\u0000\u0000\u0c13\u0c19\u0001\u0000\u0000\u0000\u0c14\u0c12\u0001"+ + "\u0000\u0000\u0000\u0c15\u0c16\u0005*\u0000\u0000\u0c16\u0c1a\u0005/\u0000"+ + "\u0000\u0c17\u0c18\u0006\u0148\u0001\u0000\u0c18\u0c1a\u0005\u0000\u0000"+ + "\u0001\u0c19\u0c15\u0001\u0000\u0000\u0000\u0c19\u0c17\u0001\u0000\u0000"+ + "\u0000\u0c1a\u0c1b\u0001\u0000\u0000\u0000\u0c1b\u0c1c\u0006\u0148\u0000"+ + "\u0000\u0c1c\u0292\u0001\u0000\u0000\u0000\u0c1d\u0c1f\u0007\t\u0000\u0000"+ + "\u0c1e\u0c1d\u0001\u0000\u0000\u0000\u0c1f\u0c20\u0001\u0000\u0000\u0000"+ + "\u0c20\u0c1e\u0001\u0000\u0000\u0000\u0c20\u0c21\u0001\u0000\u0000\u0000"+ + "\u0c21\u0c22\u0001\u0000\u0000\u0000\u0c22\u0c23\u0006\u0149\u0000\u0000"+ + "\u0c23\u0294\u0001\u0000\u0000\u0000\u0c24\u0c25\t\u0000\u0000\u0000\u0c25"+ + "\u0296\u0001\u0000\u0000\u00002\u0000\u06fd\u0899\u09c7\u0af7\u0b09\u0b11"+ + "\u0b38\u0b3a\u0b42\u0b44\u0b4e\u0b58\u0b5c\u0b61\u0b68\u0b6f\u0b76\u0b7b"+ + "\u0b83\u0b8b\u0b8e\u0b94\u0b99\u0b9e\u0ba1\u0ba7\u0bac\u0bb1\u0bb4\u0bbb"+ + "\u0bc2\u0bc7\u0bc9\u0bcf\u0bd1\u0bd9\u0bdf\u0be6\u0be8\u0bec\u0bf1\u0bfd"+ + "\u0bff\u0c03\u0c06\u0c10\u0c12\u0c19\u0c20\u0002\u0000\u0001\u0000\u0001"+ + "\u0148\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/gen/SparkLexer.tokens b/gen/SparkLexer.tokens new file mode 100644 index 0000000..10946f6 --- /dev/null +++ b/gen/SparkLexer.tokens @@ -0,0 +1,632 @@ +SEMICOLON=1 +LEFT_PAREN=2 +RIGHT_PAREN=3 +COMMA=4 +DOT=5 +LEFT_BRACKET=6 +RIGHT_BRACKET=7 +ADD=8 +AFTER=9 +ALL=10 +ALTER=11 +ANALYZE=12 +AND=13 +ANTI=14 +ANY=15 +ANY_VALUE=16 +ARCHIVE=17 +ARRAY=18 +AS=19 +ASC=20 +AT=21 +AUTHORIZATION=22 +BETWEEN=23 +BOTH=24 +BUCKET=25 +BUCKETS=26 +BY=27 +CACHE=28 +CASCADE=29 +CASE=30 +CAST=31 +CATALOG=32 +CATALOGS=33 +CHANGE=34 +CHECK=35 +CLEAR=36 +CLUSTER=37 +CLUSTERED=38 +CODEGEN=39 +COLLATE=40 +COLLECTION=41 +COLUMN=42 +COLUMNS=43 +COMMENT=44 +COMMIT=45 +COMPACT=46 +COMPACTIONS=47 +COMPUTE=48 +CONCATENATE=49 +CONSTRAINT=50 +COST=51 +CREATE=52 +CROSS=53 +CUBE=54 +CURRENT=55 +CURRENT_DATE=56 +CURRENT_TIME=57 +CURRENT_TIMESTAMP=58 +CURRENT_USER=59 +DAY=60 +DAYOFYEAR=61 +DATA=62 +DATABASE=63 +DATABASES=64 +DATEADD=65 +DATEDIFF=66 +DBPROPERTIES=67 +DEFAULT=68 +DEFINED=69 +DELETE=70 +DELIMITED=71 +DESC=72 +DESCRIBE=73 +DFS=74 +DIRECTORIES=75 +DIRECTORY=76 +DISTINCT=77 +DISTRIBUTE=78 +DIV=79 +DROP=80 +ELSE=81 +END=82 +ESCAPE=83 +ESCAPED=84 +EXCEPT=85 +EXCHANGE=86 +EXISTS=87 +EXPLAIN=88 +EXPORT=89 +EXTENDED=90 +EXTERNAL=91 +EXTRACT=92 +FALSE=93 +FETCH=94 +FIELDS=95 +FILTER=96 +FILEFORMAT=97 +FIRST=98 +FOLLOWING=99 +FOR=100 +FOREIGN=101 +FORMAT=102 +FORMATTED=103 +FROM=104 +FULL=105 +FUNCTION=106 +FUNCTIONS=107 +GLOBAL=108 +GRANT=109 +GROUP=110 +GROUPING=111 +HAVING=112 +HOUR=113 +IF=114 +IGNORE=115 +IMPORT=116 +IN=117 +INDEX=118 +INDEXES=119 +INNER=120 +INPATH=121 +INPUTFORMAT=122 +INSERT=123 +INTERSECT=124 +INTERVAL=125 +INTO=126 +IS=127 +ITEMS=128 +JOIN=129 +KEYS=130 +LAST=131 +LATERAL=132 +LAZY=133 +LEADING=134 +LEFT=135 +LIKE=136 +ILIKE=137 +LIMIT=138 +LINES=139 +LIST=140 +LOAD=141 +LOCAL=142 +LOCATION=143 +LOCK=144 +LOCKS=145 +LOGICAL=146 +MACRO=147 +MAP=148 +MATCHED=149 +MERGE=150 +MICROSECOND=151 +MILLISECOND=152 +MINUTE=153 +MONTH=154 +MSCK=155 +NAMESPACE=156 +NAMESPACES=157 +NATURAL=158 +NO=159 +NOT=160 +NULL=161 +NULLS=162 +OF=163 +OFFSET=164 +ON=165 +ONLY=166 +OPTION=167 +OPTIONS=168 +OR=169 +ORDER=170 +OUT=171 +OUTER=172 +OUTPUTFORMAT=173 +OVER=174 +OVERLAPS=175 +OVERLAY=176 +OVERWRITE=177 +PARTITION=178 +PARTITIONED=179 +PARTITIONS=180 +PERCENTILE_CONT=181 +PERCENTILE_DISC=182 +PERCENTLIT=183 +PIVOT=184 +PLACING=185 +POSITION=186 +PRECEDING=187 +PRIMARY=188 +PRINCIPALS=189 +PROPERTIES=190 +PURGE=191 +QUARTER=192 +QUERY=193 +RANGE=194 +RECORDREADER=195 +RECORDWRITER=196 +RECOVER=197 +REDUCE=198 +REFERENCES=199 +REFRESH=200 +RENAME=201 +REPAIR=202 +REPEATABLE=203 +REPLACE=204 +RESET=205 +RESPECT=206 +RESTRICT=207 +REVOKE=208 +RIGHT=209 +RLIKE=210 +ROLE=211 +ROLES=212 +ROLLBACK=213 +ROLLUP=214 +ROW=215 +ROWS=216 +SECOND=217 +SCHEMA=218 +SCHEMAS=219 +SELECT=220 +SEMI=221 +SEPARATED=222 +SERDE=223 +SERDEPROPERTIES=224 +SESSION_USER=225 +SET=226 +SETMINUS=227 +SETS=228 +SHOW=229 +SKEWED=230 +SOME=231 +SORT=232 +SORTED=233 +START=234 +STATISTICS=235 +STORED=236 +STRATIFY=237 +STRUCT=238 +SUBSTR=239 +SUBSTRING=240 +SYNC=241 +SYSTEM_TIME=242 +SYSTEM_VERSION=243 +TABLE=244 +TABLES=245 +TABLESAMPLE=246 +TBLPROPERTIES=247 +TEMPORARY=248 +TERMINATED=249 +THEN=250 +TIME=251 +TIMESTAMP=252 +TIMESTAMPADD=253 +TIMESTAMPDIFF=254 +TO=255 +TOUCH=256 +TRAILING=257 +TRANSACTION=258 +TRANSACTIONS=259 +TRANSFORM=260 +TRIM=261 +TRUE=262 +TRUNCATE=263 +TRY_CAST=264 +TYPE=265 +UNARCHIVE=266 +UNBOUNDED=267 +UNCACHE=268 +UNION=269 +UNIQUE=270 +UNKNOWN=271 +UNLOCK=272 +UNSET=273 +UPDATE=274 +USE=275 +USER=276 +USING=277 +VALUES=278 +VERSION=279 +VIEW=280 +VIEWS=281 +WEEK=282 +WHEN=283 +WHERE=284 +WINDOW=285 +WITH=286 +WITHIN=287 +YEAR=288 +ZONE=289 +EQ=290 +NSEQ=291 +NEQ=292 +NEQJ=293 +LT=294 +LTE=295 +GT=296 +GTE=297 +PLUS=298 +MINUS=299 +ASTERISK=300 +SLASH=301 +PERCENT=302 +TILDE=303 +AMPERSAND=304 +PIPE=305 +CONCAT_PIPE=306 +HAT=307 +COLON=308 +ARROW=309 +HENT_START=310 +HENT_END=311 +STRING=312 +BIGINT_LITERAL=313 +SMALLINT_LITERAL=314 +TINYINT_LITERAL=315 +INTEGER_VALUE=316 +EXPONENT_VALUE=317 +DECIMAL_VALUE=318 +FLOAT_LITERAL=319 +DOUBLE_LITERAL=320 +BIGDECIMAL_LITERAL=321 +IDENTIFIER=322 +BACKQUOTED_IDENTIFIER=323 +SIMPLE_COMMENT=324 +BRACKETED_COMMENT=325 +WS=326 +UNRECOGNIZED=327 +';'=1 +'('=2 +')'=3 +','=4 +'.'=5 +'['=6 +']'=7 +'ADD'=8 +'AFTER'=9 +'ALL'=10 +'ALTER'=11 +'ANALYZE'=12 +'AND'=13 +'ANTI'=14 +'ANY'=15 +'ANY_VALUE'=16 +'ARCHIVE'=17 +'ARRAY'=18 +'AS'=19 +'ASC'=20 +'AT'=21 +'AUTHORIZATION'=22 +'BETWEEN'=23 +'BOTH'=24 +'BUCKET'=25 +'BUCKETS'=26 +'BY'=27 +'CACHE'=28 +'CASCADE'=29 +'CASE'=30 +'CAST'=31 +'CATALOG'=32 +'CATALOGS'=33 +'CHANGE'=34 +'CHECK'=35 +'CLEAR'=36 +'CLUSTER'=37 +'CLUSTERED'=38 +'CODEGEN'=39 +'COLLATE'=40 +'COLLECTION'=41 +'COLUMN'=42 +'COLUMNS'=43 +'COMMENT'=44 +'COMMIT'=45 +'COMPACT'=46 +'COMPACTIONS'=47 +'COMPUTE'=48 +'CONCATENATE'=49 +'CONSTRAINT'=50 +'COST'=51 +'CREATE'=52 +'CROSS'=53 +'CUBE'=54 +'CURRENT'=55 +'CURRENT_DATE'=56 +'CURRENT_TIME'=57 +'CURRENT_TIMESTAMP'=58 +'CURRENT_USER'=59 +'DAY'=60 +'DAYOFYEAR'=61 +'DATA'=62 +'DATABASE'=63 +'DATABASES'=64 +'DATEADD'=65 +'DATEDIFF'=66 +'DBPROPERTIES'=67 +'DEFAULT'=68 +'DEFINED'=69 +'DELETE'=70 +'DELIMITED'=71 +'DESC'=72 +'DESCRIBE'=73 +'DFS'=74 +'DIRECTORIES'=75 +'DIRECTORY'=76 +'DISTINCT'=77 +'DISTRIBUTE'=78 +'DIV'=79 +'DROP'=80 +'ELSE'=81 +'END'=82 +'ESCAPE'=83 +'ESCAPED'=84 +'EXCEPT'=85 +'EXCHANGE'=86 +'EXISTS'=87 +'EXPLAIN'=88 +'EXPORT'=89 +'EXTENDED'=90 +'EXTERNAL'=91 +'EXTRACT'=92 +'FALSE'=93 +'FETCH'=94 +'FIELDS'=95 +'FILTER'=96 +'FILEFORMAT'=97 +'FIRST'=98 +'FOLLOWING'=99 +'FOR'=100 +'FOREIGN'=101 +'FORMAT'=102 +'FORMATTED'=103 +'FROM'=104 +'FULL'=105 +'FUNCTION'=106 +'FUNCTIONS'=107 +'GLOBAL'=108 +'GRANT'=109 +'GROUP'=110 +'GROUPING'=111 +'HAVING'=112 +'HOUR'=113 +'IF'=114 +'IGNORE'=115 +'IMPORT'=116 +'IN'=117 +'INDEX'=118 +'INDEXES'=119 +'INNER'=120 +'INPATH'=121 +'INPUTFORMAT'=122 +'INSERT'=123 +'INTERSECT'=124 +'INTERVAL'=125 +'INTO'=126 +'IS'=127 +'ITEMS'=128 +'JOIN'=129 +'KEYS'=130 +'LAST'=131 +'LATERAL'=132 +'LAZY'=133 +'LEADING'=134 +'LEFT'=135 +'LIKE'=136 +'ILIKE'=137 +'LIMIT'=138 +'LINES'=139 +'LIST'=140 +'LOAD'=141 +'LOCAL'=142 +'LOCATION'=143 +'LOCK'=144 +'LOCKS'=145 +'LOGICAL'=146 +'MACRO'=147 +'MAP'=148 +'MATCHED'=149 +'MERGE'=150 +'MICROSECOND'=151 +'MILLISECOND'=152 +'MINUTE'=153 +'MONTH'=154 +'MSCK'=155 +'NAMESPACE'=156 +'NAMESPACES'=157 +'NATURAL'=158 +'NO'=159 +'NULL'=161 +'NULLS'=162 +'OF'=163 +'OFFSET'=164 +'ON'=165 +'ONLY'=166 +'OPTION'=167 +'OPTIONS'=168 +'OR'=169 +'ORDER'=170 +'OUT'=171 +'OUTER'=172 +'OUTPUTFORMAT'=173 +'OVER'=174 +'OVERLAPS'=175 +'OVERLAY'=176 +'OVERWRITE'=177 +'PARTITION'=178 +'PARTITIONED'=179 +'PARTITIONS'=180 +'PERCENTILE_CONT'=181 +'PERCENTILE_DISC'=182 +'PERCENT'=183 +'PIVOT'=184 +'PLACING'=185 +'POSITION'=186 +'PRECEDING'=187 +'PRIMARY'=188 +'PRINCIPALS'=189 +'PROPERTIES'=190 +'PURGE'=191 +'QUARTER'=192 +'QUERY'=193 +'RANGE'=194 +'RECORDREADER'=195 +'RECORDWRITER'=196 +'RECOVER'=197 +'REDUCE'=198 +'REFERENCES'=199 +'REFRESH'=200 +'RENAME'=201 +'REPAIR'=202 +'REPEATABLE'=203 +'REPLACE'=204 +'RESET'=205 +'RESPECT'=206 +'RESTRICT'=207 +'REVOKE'=208 +'RIGHT'=209 +'ROLE'=211 +'ROLES'=212 +'ROLLBACK'=213 +'ROLLUP'=214 +'ROW'=215 +'ROWS'=216 +'SECOND'=217 +'SCHEMA'=218 +'SCHEMAS'=219 +'SELECT'=220 +'SEMI'=221 +'SEPARATED'=222 +'SERDE'=223 +'SERDEPROPERTIES'=224 +'SESSION_USER'=225 +'SET'=226 +'MINUS'=227 +'SETS'=228 +'SHOW'=229 +'SKEWED'=230 +'SOME'=231 +'SORT'=232 +'SORTED'=233 +'START'=234 +'STATISTICS'=235 +'STORED'=236 +'STRATIFY'=237 +'STRUCT'=238 +'SUBSTR'=239 +'SUBSTRING'=240 +'SYNC'=241 +'SYSTEM_TIME'=242 +'SYSTEM_VERSION'=243 +'TABLE'=244 +'TABLES'=245 +'TABLESAMPLE'=246 +'TBLPROPERTIES'=247 +'TERMINATED'=249 +'THEN'=250 +'TIME'=251 +'TIMESTAMP'=252 +'TIMESTAMPADD'=253 +'TIMESTAMPDIFF'=254 +'TO'=255 +'TOUCH'=256 +'TRAILING'=257 +'TRANSACTION'=258 +'TRANSACTIONS'=259 +'TRANSFORM'=260 +'TRIM'=261 +'TRUE'=262 +'TRUNCATE'=263 +'TRY_CAST'=264 +'TYPE'=265 +'UNARCHIVE'=266 +'UNBOUNDED'=267 +'UNCACHE'=268 +'UNION'=269 +'UNIQUE'=270 +'UNKNOWN'=271 +'UNLOCK'=272 +'UNSET'=273 +'UPDATE'=274 +'USE'=275 +'USER'=276 +'USING'=277 +'VALUES'=278 +'VERSION'=279 +'VIEW'=280 +'VIEWS'=281 +'WEEK'=282 +'WHEN'=283 +'WHERE'=284 +'WINDOW'=285 +'WITH'=286 +'WITHIN'=287 +'YEAR'=288 +'ZONE'=289 +'<=>'=291 +'<>'=292 +'!='=293 +'<'=294 +'>'=296 +'+'=298 +'-'=299 +'*'=300 +'/'=301 +'%'=302 +'~'=303 +'&'=304 +'|'=305 +'||'=306 +'^'=307 +':'=308 +'->'=309 +'/*+'=310 +'*/'=311 diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/spark/SparkSqlBase.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/spark/SparkSqlBase.g4 index 0617507..e5898b7 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/spark/SparkSqlBase.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/spark/SparkSqlBase.g4 @@ -266,7 +266,7 @@ query ; insertInto - : INSERT OVERWRITE TABLE tableIdentifier (partitionSpec (IF NOT EXISTS)?)? #insertOverwriteTable + : INSERT OVERWRITE TABLE? tableIdentifier (partitionSpec (IF NOT EXISTS)?)? #insertOverwriteTable | INSERT INTO TABLE? tableIdentifier partitionSpec? #insertIntoTable | INSERT OVERWRITE LOCAL? DIRECTORY path=STRING rowFormat? createFileFormat? #insertOverwriteHiveDir | INSERT OVERWRITE LOCAL? DIRECTORY (path=STRING)? tableProvider (OPTIONS options=tablePropertyList)? #insertOverwriteDir diff --git a/src/main/java/com/github/bigdata/sql/antlr4/spark/SparkSqlBaseParser.java b/src/main/java/com/github/bigdata/sql/antlr4/spark/SparkSqlBaseParser.java index 9f0e152..c91bfea 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/spark/SparkSqlBaseParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/spark/SparkSqlBaseParser.java @@ -5937,10 +5937,10 @@ public T accept(ParseTreeVisitor visitor) { public static class InsertOverwriteTableContext extends InsertIntoContext { public TerminalNode INSERT() { return getToken(SparkSqlBaseParser.INSERT, 0); } public TerminalNode OVERWRITE() { return getToken(SparkSqlBaseParser.OVERWRITE, 0); } - public TerminalNode TABLE() { return getToken(SparkSqlBaseParser.TABLE, 0); } public TableIdentifierContext tableIdentifier() { return getRuleContext(TableIdentifierContext.class,0); } + public TerminalNode TABLE() { return getToken(SparkSqlBaseParser.TABLE, 0); } public PartitionSpecContext partitionSpec() { return getRuleContext(PartitionSpecContext.class,0); } @@ -5993,9 +5993,9 @@ public final InsertIntoContext insertInto() throws RecognitionException { enterRule(_localctx, 32, RULE_insertInto); int _la; try { - setState(1159); + setState(1161); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,127,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) { case 1: _localctx = new InsertOverwriteTableContext(_localctx); enterOuterAlt(_localctx, 1); @@ -6004,27 +6004,35 @@ public final InsertIntoContext insertInto() throws RecognitionException { match(INSERT); setState(1112); match(OVERWRITE); - setState(1113); - match(TABLE); setState(1114); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) { + case 1: + { + setState(1113); + match(TABLE); + } + break; + } + setState(1116); tableIdentifier(); - setState(1121); + setState(1123); _errHandler.sync(this); _la = _input.LA(1); if (_la==PARTITION) { { - setState(1115); + setState(1117); partitionSpec(); - setState(1119); + setState(1121); _errHandler.sync(this); _la = _input.LA(1); if (_la==IF) { { - setState(1116); + setState(1118); match(IF); - setState(1117); + setState(1119); match(NOT); - setState(1118); + setState(1120); match(EXISTS); } } @@ -6038,28 +6046,28 @@ public final InsertIntoContext insertInto() throws RecognitionException { _localctx = new InsertIntoTableContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1123); + setState(1125); match(INSERT); - setState(1124); - match(INTO); setState(1126); + match(INTO); + setState(1128); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) { case 1: { - setState(1125); + setState(1127); match(TABLE); } break; } - setState(1128); - tableIdentifier(); setState(1130); + tableIdentifier(); + setState(1132); _errHandler.sync(this); _la = _input.LA(1); if (_la==PARTITION) { { - setState(1129); + setState(1131); partitionSpec(); } } @@ -6070,40 +6078,40 @@ public final InsertIntoContext insertInto() throws RecognitionException { _localctx = new InsertOverwriteHiveDirContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(1132); + setState(1134); match(INSERT); - setState(1133); - match(OVERWRITE); setState(1135); + match(OVERWRITE); + setState(1137); _errHandler.sync(this); _la = _input.LA(1); if (_la==LOCAL) { { - setState(1134); + setState(1136); match(LOCAL); } } - setState(1137); + setState(1139); match(DIRECTORY); - setState(1138); - ((InsertOverwriteHiveDirContext)_localctx).path = match(STRING); setState(1140); + ((InsertOverwriteHiveDirContext)_localctx).path = match(STRING); + setState(1142); _errHandler.sync(this); _la = _input.LA(1); if (_la==ROW) { { - setState(1139); + setState(1141); rowFormat(); } } - setState(1143); + setState(1145); _errHandler.sync(this); _la = _input.LA(1); if (_la==STORED) { { - setState(1142); + setState(1144); createFileFormat(); } } @@ -6114,42 +6122,42 @@ public final InsertIntoContext insertInto() throws RecognitionException { _localctx = new InsertOverwriteDirContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(1145); + setState(1147); match(INSERT); - setState(1146); - match(OVERWRITE); setState(1148); + match(OVERWRITE); + setState(1150); _errHandler.sync(this); _la = _input.LA(1); if (_la==LOCAL) { { - setState(1147); + setState(1149); match(LOCAL); } } - setState(1150); - match(DIRECTORY); setState(1152); + match(DIRECTORY); + setState(1154); _errHandler.sync(this); _la = _input.LA(1); if (_la==STRING) { { - setState(1151); + setState(1153); ((InsertOverwriteDirContext)_localctx).path = match(STRING); } } - setState(1154); + setState(1156); tableProvider(); - setState(1157); + setState(1159); _errHandler.sync(this); _la = _input.LA(1); if (_la==OPTIONS) { { - setState(1155); + setState(1157); match(OPTIONS); - setState(1156); + setState(1158); ((InsertOverwriteDirContext)_localctx).options = tablePropertyList(); } } @@ -6202,14 +6210,14 @@ public final PartitionSpecLocationContext partitionSpecLocation() throws Recogni try { enterOuterAlt(_localctx, 1); { - setState(1161); - partitionSpec(); setState(1163); + partitionSpec(); + setState(1165); _errHandler.sync(this); _la = _input.LA(1); if (_la==LOCATION) { { - setState(1162); + setState(1164); locationSpec(); } } @@ -6261,29 +6269,29 @@ public final PartitionSpecContext partitionSpec() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1165); + setState(1167); match(PARTITION); - setState(1166); + setState(1168); match(T__0); - setState(1167); + setState(1169); partitionVal(); - setState(1172); + setState(1174); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1168); + setState(1170); match(T__2); - setState(1169); + setState(1171); partitionVal(); } } - setState(1174); + setState(1176); _errHandler.sync(this); _la = _input.LA(1); } - setState(1175); + setState(1177); match(T__1); } } @@ -6332,16 +6340,16 @@ public final PartitionValContext partitionVal() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1177); + setState(1179); identifier(); - setState(1180); + setState(1182); _errHandler.sync(this); _la = _input.LA(1); if (_la==EQ) { { - setState(1178); + setState(1180); match(EQ); - setState(1179); + setState(1181); constant(); } } @@ -6396,41 +6404,41 @@ public final DescribeFuncNameContext describeFuncName() throws RecognitionExcept DescribeFuncNameContext _localctx = new DescribeFuncNameContext(_ctx, getState()); enterRule(_localctx, 40, RULE_describeFuncName); try { - setState(1187); + setState(1189); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,132,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1182); + setState(1184); qualifiedName(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1183); + setState(1185); match(STRING); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1184); + setState(1186); comparisonOperator(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1185); + setState(1187); arithmeticOperator(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1186); + setState(1188); predicateOperator(); } break; @@ -6482,23 +6490,23 @@ public final DescribeColNameContext describeColName() throws RecognitionExceptio try { enterOuterAlt(_localctx, 1); { - setState(1189); + setState(1191); ((DescribeColNameContext)_localctx).identifier = identifier(); ((DescribeColNameContext)_localctx).nameParts.add(((DescribeColNameContext)_localctx).identifier); - setState(1194); + setState(1196); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(1190); + setState(1192); match(T__3); - setState(1191); + setState(1193); ((DescribeColNameContext)_localctx).identifier = identifier(); ((DescribeColNameContext)_localctx).nameParts.add(((DescribeColNameContext)_localctx).identifier); } } - setState(1196); + setState(1198); _errHandler.sync(this); _la = _input.LA(1); } @@ -6549,23 +6557,23 @@ public final CtesContext ctes() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1197); + setState(1199); match(WITH); - setState(1198); + setState(1200); namedQuery(); - setState(1203); + setState(1205); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1199); + setState(1201); match(T__2); - setState(1200); + setState(1202); namedQuery(); } } - setState(1205); + setState(1207); _errHandler.sync(this); _la = _input.LA(1); } @@ -6617,23 +6625,23 @@ public final NamedQueryContext namedQuery() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1206); - ((NamedQueryContext)_localctx).name = identifier(); setState(1208); + ((NamedQueryContext)_localctx).name = identifier(); + setState(1210); _errHandler.sync(this); _la = _input.LA(1); if (_la==AS) { { - setState(1207); + setState(1209); match(AS); } } - setState(1210); + setState(1212); match(T__0); - setState(1211); + setState(1213); query(); - setState(1212); + setState(1214); match(T__1); } } @@ -6678,9 +6686,9 @@ public final TableProviderContext tableProvider() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1214); + setState(1216); match(USING); - setState(1215); + setState(1217); qualifiedName(); } } @@ -6728,27 +6736,27 @@ public final TablePropertyListContext tablePropertyList() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(1217); + setState(1219); match(T__0); - setState(1218); + setState(1220); tableProperty(); - setState(1223); + setState(1225); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1219); + setState(1221); match(T__2); - setState(1220); + setState(1222); tableProperty(); } } - setState(1225); + setState(1227); _errHandler.sync(this); _la = _input.LA(1); } - setState(1226); + setState(1228); match(T__1); } } @@ -6799,24 +6807,24 @@ public final TablePropertyContext tableProperty() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1228); + setState(1230); ((TablePropertyContext)_localctx).key = tablePropertyKey(); - setState(1233); + setState(1235); _errHandler.sync(this); _la = _input.LA(1); if (_la==TRUE || _la==FALSE || _la==EQ || ((((_la - 243)) & ~0x3f) == 0 && ((1L << (_la - 243)) & ((1L << (STRING - 243)) | (1L << (INTEGER_VALUE - 243)) | (1L << (DECIMAL_VALUE - 243)))) != 0)) { { - setState(1230); + setState(1232); _errHandler.sync(this); _la = _input.LA(1); if (_la==EQ) { { - setState(1229); + setState(1231); match(EQ); } } - setState(1232); + setState(1234); ((TablePropertyContext)_localctx).value = tablePropertyValue(); } } @@ -6866,7 +6874,7 @@ public final TablePropertyKeyContext tablePropertyKey() throws RecognitionExcept enterRule(_localctx, 54, RULE_tablePropertyKey); int _la; try { - setState(1244); + setState(1246); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: @@ -7083,21 +7091,21 @@ public final TablePropertyKeyContext tablePropertyKey() throws RecognitionExcept case BACKQUOTED_IDENTIFIER: enterOuterAlt(_localctx, 1); { - setState(1235); + setState(1237); identifier(); - setState(1240); + setState(1242); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(1236); + setState(1238); match(T__3); - setState(1237); + setState(1239); identifier(); } } - setState(1242); + setState(1244); _errHandler.sync(this); _la = _input.LA(1); } @@ -7106,7 +7114,7 @@ public final TablePropertyKeyContext tablePropertyKey() throws RecognitionExcept case STRING: enterOuterAlt(_localctx, 2); { - setState(1243); + setState(1245); match(STRING); } break; @@ -7155,20 +7163,20 @@ public final TablePropertyValueContext tablePropertyValue() throws RecognitionEx TablePropertyValueContext _localctx = new TablePropertyValueContext(_ctx, getState()); enterRule(_localctx, 56, RULE_tablePropertyValue); try { - setState(1250); + setState(1252); _errHandler.sync(this); switch (_input.LA(1)) { case INTEGER_VALUE: enterOuterAlt(_localctx, 1); { - setState(1246); + setState(1248); match(INTEGER_VALUE); } break; case DECIMAL_VALUE: enterOuterAlt(_localctx, 2); { - setState(1247); + setState(1249); match(DECIMAL_VALUE); } break; @@ -7176,14 +7184,14 @@ public final TablePropertyValueContext tablePropertyValue() throws RecognitionEx case FALSE: enterOuterAlt(_localctx, 3); { - setState(1248); + setState(1250); booleanValue(); } break; case STRING: enterOuterAlt(_localctx, 4); { - setState(1249); + setState(1251); match(STRING); } break; @@ -7235,27 +7243,27 @@ public final ConstantListContext constantList() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1252); + setState(1254); match(T__0); - setState(1253); + setState(1255); constant(); - setState(1258); + setState(1260); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1254); + setState(1256); match(T__2); - setState(1255); + setState(1257); constant(); } } - setState(1260); + setState(1262); _errHandler.sync(this); _la = _input.LA(1); } - setState(1261); + setState(1263); match(T__1); } } @@ -7303,27 +7311,27 @@ public final NestedConstantListContext nestedConstantList() throws RecognitionEx try { enterOuterAlt(_localctx, 1); { - setState(1263); + setState(1265); match(T__0); - setState(1264); + setState(1266); constantList(); - setState(1269); + setState(1271); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1265); + setState(1267); match(T__2); - setState(1266); + setState(1268); constantList(); } } - setState(1271); + setState(1273); _errHandler.sync(this); _la = _input.LA(1); } - setState(1272); + setState(1274); match(T__1); } } @@ -7371,28 +7379,28 @@ public final CreateFileFormatContext createFileFormat() throws RecognitionExcept CreateFileFormatContext _localctx = new CreateFileFormatContext(_ctx, getState()); enterRule(_localctx, 62, RULE_createFileFormat); try { - setState(1280); + setState(1282); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,143,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1274); + setState(1276); match(STORED); - setState(1275); + setState(1277); match(AS); - setState(1276); + setState(1278); fileFormat(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1277); + setState(1279); match(STORED); - setState(1278); + setState(1280); match(BY); - setState(1279); + setState(1281); storageHandler(); } break; @@ -7468,20 +7476,20 @@ public final FileFormatContext fileFormat() throws RecognitionException { FileFormatContext _localctx = new FileFormatContext(_ctx, getState()); enterRule(_localctx, 64, RULE_fileFormat); try { - setState(1287); + setState(1289); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) { case 1: _localctx = new TableFileFormatContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(1282); + setState(1284); match(INPUTFORMAT); - setState(1283); + setState(1285); ((TableFileFormatContext)_localctx).inFmt = match(STRING); - setState(1284); + setState(1286); match(OUTPUTFORMAT); - setState(1285); + setState(1287); ((TableFileFormatContext)_localctx).outFmt = match(STRING); } break; @@ -7489,7 +7497,7 @@ public final FileFormatContext fileFormat() throws RecognitionException { _localctx = new GenericFileFormatContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1286); + setState(1288); identifier(); } break; @@ -7538,18 +7546,18 @@ public final StorageHandlerContext storageHandler() throws RecognitionException try { enterOuterAlt(_localctx, 1); { - setState(1289); + setState(1291); match(STRING); - setState(1293); + setState(1295); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { case 1: { - setState(1290); + setState(1292); match(WITH); - setState(1291); + setState(1293); match(SERDEPROPERTIES); - setState(1292); + setState(1294); tablePropertyList(); } break; @@ -7597,9 +7605,9 @@ public final ResourceContext resource() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1295); + setState(1297); identifier(); - setState(1296); + setState(1298); match(STRING); } } @@ -7681,26 +7689,26 @@ public final QueryNoWithContext queryNoWith() throws RecognitionException { enterRule(_localctx, 70, RULE_queryNoWith); int _la; try { - setState(1310); + setState(1312); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,148,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { case 1: _localctx = new SingleInsertQueryContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(1299); + setState(1301); _errHandler.sync(this); _la = _input.LA(1); if (_la==INSERT) { { - setState(1298); + setState(1300); insertInto(); } } - setState(1301); + setState(1303); queryTerm(0); - setState(1302); + setState(1304); queryOrganization(); } break; @@ -7708,19 +7716,19 @@ public final QueryNoWithContext queryNoWith() throws RecognitionException { _localctx = new MultiInsertQueryContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1304); + setState(1306); fromClause(); - setState(1306); + setState(1308); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(1305); + setState(1307); multiInsertQueryBody(); } } - setState(1308); + setState(1310); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==SELECT || _la==FROM || _la==INSERT || _la==MAP || _la==REDUCE ); @@ -7798,163 +7806,163 @@ public final QueryOrganizationContext queryOrganization() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(1322); + setState(1324); _errHandler.sync(this); _la = _input.LA(1); if (_la==ORDER) { { - setState(1312); + setState(1314); match(ORDER); - setState(1313); + setState(1315); match(BY); - setState(1314); + setState(1316); ((QueryOrganizationContext)_localctx).sortItem = sortItem(); ((QueryOrganizationContext)_localctx).order.add(((QueryOrganizationContext)_localctx).sortItem); - setState(1319); + setState(1321); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1315); + setState(1317); match(T__2); - setState(1316); + setState(1318); ((QueryOrganizationContext)_localctx).sortItem = sortItem(); ((QueryOrganizationContext)_localctx).order.add(((QueryOrganizationContext)_localctx).sortItem); } } - setState(1321); + setState(1323); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1334); + setState(1336); _errHandler.sync(this); _la = _input.LA(1); if (_la==CLUSTER) { { - setState(1324); + setState(1326); match(CLUSTER); - setState(1325); + setState(1327); match(BY); - setState(1326); + setState(1328); ((QueryOrganizationContext)_localctx).expression = expression(); ((QueryOrganizationContext)_localctx).clusterBy.add(((QueryOrganizationContext)_localctx).expression); - setState(1331); + setState(1333); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1327); + setState(1329); match(T__2); - setState(1328); + setState(1330); ((QueryOrganizationContext)_localctx).expression = expression(); ((QueryOrganizationContext)_localctx).clusterBy.add(((QueryOrganizationContext)_localctx).expression); } } - setState(1333); + setState(1335); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1346); + setState(1348); _errHandler.sync(this); _la = _input.LA(1); if (_la==DISTRIBUTE) { { - setState(1336); + setState(1338); match(DISTRIBUTE); - setState(1337); + setState(1339); match(BY); - setState(1338); + setState(1340); ((QueryOrganizationContext)_localctx).expression = expression(); ((QueryOrganizationContext)_localctx).distributeBy.add(((QueryOrganizationContext)_localctx).expression); - setState(1343); + setState(1345); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1339); + setState(1341); match(T__2); - setState(1340); + setState(1342); ((QueryOrganizationContext)_localctx).expression = expression(); ((QueryOrganizationContext)_localctx).distributeBy.add(((QueryOrganizationContext)_localctx).expression); } } - setState(1345); + setState(1347); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1358); + setState(1360); _errHandler.sync(this); _la = _input.LA(1); if (_la==SORT) { { - setState(1348); + setState(1350); match(SORT); - setState(1349); + setState(1351); match(BY); - setState(1350); + setState(1352); ((QueryOrganizationContext)_localctx).sortItem = sortItem(); ((QueryOrganizationContext)_localctx).sort.add(((QueryOrganizationContext)_localctx).sortItem); - setState(1355); + setState(1357); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1351); + setState(1353); match(T__2); - setState(1352); + setState(1354); ((QueryOrganizationContext)_localctx).sortItem = sortItem(); ((QueryOrganizationContext)_localctx).sort.add(((QueryOrganizationContext)_localctx).sortItem); } } - setState(1357); + setState(1359); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1361); + setState(1363); _errHandler.sync(this); _la = _input.LA(1); if (_la==WINDOW) { { - setState(1360); + setState(1362); windows(); } } - setState(1368); + setState(1370); _errHandler.sync(this); _la = _input.LA(1); if (_la==LIMIT) { { - setState(1363); + setState(1365); match(LIMIT); - setState(1366); + setState(1368); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { case 1: { - setState(1364); + setState(1366); match(ALL); } break; case 2: { - setState(1365); + setState(1367); ((QueryOrganizationContext)_localctx).limit = expression(); } break; @@ -8011,19 +8019,19 @@ public final MultiInsertQueryBodyContext multiInsertQueryBody() throws Recogniti try { enterOuterAlt(_localctx, 1); { - setState(1371); + setState(1373); _errHandler.sync(this); _la = _input.LA(1); if (_la==INSERT) { { - setState(1370); + setState(1372); insertInto(); } } - setState(1373); + setState(1375); querySpecification(); - setState(1374); + setState(1376); queryOrganization(); } } @@ -8122,13 +8130,13 @@ private QueryTermContext queryTerm(int _p) throws RecognitionException { _ctx = _localctx; _prevctx = _localctx; - setState(1377); + setState(1379); queryPrimary(); } _ctx.stop = _input.LT(-1); - setState(1387); + setState(1389); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,162,_ctx); + _alt = getInterpreter().adaptivePredict(_input,163,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -8138,9 +8146,9 @@ private QueryTermContext queryTerm(int _p) throws RecognitionException { _localctx = new SetOperationContext(new QueryTermContext(_parentctx, _parentState)); ((SetOperationContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_queryTerm); - setState(1379); + setState(1381); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(1380); + setState(1382); ((SetOperationContext)_localctx).operator = _input.LT(1); _la = _input.LA(1); if ( !(((((_la - 99)) & ~0x3f) == 0 && ((1L << (_la - 99)) & ((1L << (UNION - 99)) | (1L << (EXCEPT - 99)) | (1L << (SETMINUS - 99)) | (1L << (INTERSECT - 99)))) != 0)) ) { @@ -8151,24 +8159,24 @@ private QueryTermContext queryTerm(int _p) throws RecognitionException { _errHandler.reportMatch(this); consume(); } - setState(1382); + setState(1384); _errHandler.sync(this); _la = _input.LA(1); if (_la==ALL || _la==DISTINCT) { { - setState(1381); + setState(1383); setQuantifier(); } } - setState(1384); + setState(1386); ((SetOperationContext)_localctx).right = queryTerm(2); } } } - setState(1389); + setState(1391); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,162,_ctx); + _alt = getInterpreter().adaptivePredict(_input,163,_ctx); } } } @@ -8276,7 +8284,7 @@ public final QueryPrimaryContext queryPrimary() throws RecognitionException { QueryPrimaryContext _localctx = new QueryPrimaryContext(_ctx, getState()); enterRule(_localctx, 78, RULE_queryPrimary); try { - setState(1398); + setState(1400); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: @@ -8286,7 +8294,7 @@ public final QueryPrimaryContext queryPrimary() throws RecognitionException { _localctx = new QueryPrimaryDefaultContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(1390); + setState(1392); querySpecification(); } break; @@ -8294,9 +8302,9 @@ public final QueryPrimaryContext queryPrimary() throws RecognitionException { _localctx = new TableContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1391); + setState(1393); match(TABLE); - setState(1392); + setState(1394); tableIdentifier(); } break; @@ -8304,7 +8312,7 @@ public final QueryPrimaryContext queryPrimary() throws RecognitionException { _localctx = new InlineTableDefault1Context(_localctx); enterOuterAlt(_localctx, 3); { - setState(1393); + setState(1395); inlineTable(); } break; @@ -8312,11 +8320,11 @@ public final QueryPrimaryContext queryPrimary() throws RecognitionException { _localctx = new SubqueryContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(1394); + setState(1396); match(T__0); - setState(1395); + setState(1397); queryNoWith(); - setState(1396); + setState(1398); match(T__1); } break; @@ -8372,14 +8380,14 @@ public final SortItemContext sortItem() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1400); - expression(); setState(1402); + expression(); + setState(1404); _errHandler.sync(this); _la = _input.LA(1); if (_la==ASC || _la==DESC) { { - setState(1401); + setState(1403); ((SortItemContext)_localctx).ordering = _input.LT(1); _la = _input.LA(1); if ( !(_la==ASC || _la==DESC) ) { @@ -8393,14 +8401,14 @@ public final SortItemContext sortItem() throws RecognitionException { } } - setState(1406); + setState(1408); _errHandler.sync(this); _la = _input.LA(1); if (_la==NULLS) { { - setState(1404); + setState(1406); match(NULLS); - setState(1405); + setState(1407); ((SortItemContext)_localctx).nullOrder = _input.LT(1); _la = _input.LA(1); if ( !(_la==FIRST || _la==LAST) ) { @@ -8522,44 +8530,44 @@ public final QuerySpecificationContext querySpecification() throws RecognitionEx int _la; try { int _alt; - setState(1501); + setState(1503); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,187,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,188,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { { { - setState(1418); + setState(1420); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: { - setState(1408); + setState(1410); match(SELECT); - setState(1409); + setState(1411); ((QuerySpecificationContext)_localctx).kind = match(TRANSFORM); - setState(1410); + setState(1412); match(T__0); - setState(1411); + setState(1413); namedExpressionSeq(); - setState(1412); + setState(1414); match(T__1); } break; case MAP: { - setState(1414); + setState(1416); ((QuerySpecificationContext)_localctx).kind = match(MAP); - setState(1415); + setState(1417); namedExpressionSeq(); } break; case REDUCE: { - setState(1416); + setState(1418); ((QuerySpecificationContext)_localctx).kind = match(REDUCE); - setState(1417); + setState(1419); namedExpressionSeq(); } break; @@ -8567,76 +8575,76 @@ public final QuerySpecificationContext querySpecification() throws RecognitionEx throw new NoViableAltException(this); } } - setState(1421); + setState(1423); _errHandler.sync(this); _la = _input.LA(1); if (_la==ROW) { { - setState(1420); + setState(1422); ((QuerySpecificationContext)_localctx).inRowFormat = rowFormat(); } } - setState(1425); + setState(1427); _errHandler.sync(this); _la = _input.LA(1); if (_la==RECORDWRITER) { { - setState(1423); + setState(1425); match(RECORDWRITER); - setState(1424); + setState(1426); ((QuerySpecificationContext)_localctx).recordWriter = match(STRING); } } - setState(1427); + setState(1429); match(USING); - setState(1428); + setState(1430); ((QuerySpecificationContext)_localctx).script = match(STRING); - setState(1441); + setState(1443); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { case 1: { - setState(1429); + setState(1431); match(AS); - setState(1439); + setState(1441); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { case 1: { - setState(1430); + setState(1432); identifierSeq(); } break; case 2: { - setState(1431); + setState(1433); colTypeList(); } break; case 3: { { - setState(1432); + setState(1434); match(T__0); - setState(1435); + setState(1437); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { case 1: { - setState(1433); + setState(1435); identifierSeq(); } break; case 2: { - setState(1434); + setState(1436); colTypeList(); } break; } - setState(1437); + setState(1439); match(T__1); } } @@ -8645,46 +8653,46 @@ public final QuerySpecificationContext querySpecification() throws RecognitionEx } break; } - setState(1444); + setState(1446); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) { case 1: { - setState(1443); + setState(1445); ((QuerySpecificationContext)_localctx).outRowFormat = rowFormat(); } break; } - setState(1448); + setState(1450); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) { case 1: { - setState(1446); + setState(1448); match(RECORDREADER); - setState(1447); + setState(1449); ((QuerySpecificationContext)_localctx).recordReader = match(STRING); } break; } - setState(1451); + setState(1453); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,175,_ctx) ) { case 1: { - setState(1450); + setState(1452); fromClause(); } break; } - setState(1455); + setState(1457); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,175,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) { case 1: { - setState(1453); + setState(1455); match(WHERE); - setState(1454); + setState(1456); ((QuerySpecificationContext)_localctx).where = booleanExpression(0); } break; @@ -8696,46 +8704,46 @@ public final QuerySpecificationContext querySpecification() throws RecognitionEx enterOuterAlt(_localctx, 2); { { - setState(1479); + setState(1481); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: { - setState(1457); + setState(1459); ((QuerySpecificationContext)_localctx).kind = match(SELECT); - setState(1461); + setState(1463); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__4) { { { - setState(1458); + setState(1460); ((QuerySpecificationContext)_localctx).hint = hint(); ((QuerySpecificationContext)_localctx).hints.add(((QuerySpecificationContext)_localctx).hint); } } - setState(1463); + setState(1465); _errHandler.sync(this); _la = _input.LA(1); } - setState(1465); + setState(1467); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { case 1: { - setState(1464); + setState(1466); setQuantifier(); } break; } - setState(1467); - namedExpressionSeq(); setState(1469); + namedExpressionSeq(); + setState(1471); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) { case 1: { - setState(1468); + setState(1470); fromClause(); } break; @@ -8744,26 +8752,26 @@ public final QuerySpecificationContext querySpecification() throws RecognitionEx break; case FROM: { - setState(1471); + setState(1473); fromClause(); - setState(1477); + setState(1479); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,181,_ctx) ) { case 1: { - setState(1472); - ((QuerySpecificationContext)_localctx).kind = match(SELECT); setState(1474); + ((QuerySpecificationContext)_localctx).kind = match(SELECT); + setState(1476); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) { case 1: { - setState(1473); + setState(1475); setQuantifier(); } break; } - setState(1476); + setState(1478); namedExpressionSeq(); } break; @@ -8773,62 +8781,62 @@ public final QuerySpecificationContext querySpecification() throws RecognitionEx default: throw new NoViableAltException(this); } - setState(1484); + setState(1486); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,182,_ctx); + _alt = getInterpreter().adaptivePredict(_input,183,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1481); + setState(1483); lateralView(); } } } - setState(1486); + setState(1488); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,182,_ctx); + _alt = getInterpreter().adaptivePredict(_input,183,_ctx); } - setState(1489); + setState(1491); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,183,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,184,_ctx) ) { case 1: { - setState(1487); + setState(1489); match(WHERE); - setState(1488); + setState(1490); ((QuerySpecificationContext)_localctx).where = booleanExpression(0); } break; } - setState(1492); + setState(1494); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,184,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) { case 1: { - setState(1491); + setState(1493); aggregation(); } break; } - setState(1496); + setState(1498); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { case 1: { - setState(1494); + setState(1496); match(HAVING); - setState(1495); + setState(1497); ((QuerySpecificationContext)_localctx).having = booleanExpression(0); } break; } - setState(1499); + setState(1501); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,187,_ctx) ) { case 1: { - setState(1498); + setState(1500); windows(); } break; @@ -8884,37 +8892,37 @@ public final HintContext hint() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1503); + setState(1505); match(T__4); - setState(1504); + setState(1506); ((HintContext)_localctx).hintStatement = hintStatement(); ((HintContext)_localctx).hintStatements.add(((HintContext)_localctx).hintStatement); - setState(1511); + setState(1513); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__2) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (DIV - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { { - setState(1506); + setState(1508); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__2) { { - setState(1505); + setState(1507); match(T__2); } } - setState(1508); + setState(1510); ((HintContext)_localctx).hintStatement = hintStatement(); ((HintContext)_localctx).hintStatements.add(((HintContext)_localctx).hintStatement); } } - setState(1513); + setState(1515); _errHandler.sync(this); _la = _input.LA(1); } - setState(1514); + setState(1516); match(T__5); } } @@ -8966,44 +8974,44 @@ public final HintStatementContext hintStatement() throws RecognitionException { enterRule(_localctx, 86, RULE_hintStatement); int _la; try { - setState(1529); + setState(1531); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,191,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1516); + setState(1518); ((HintStatementContext)_localctx).hintName = identifier(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1517); + setState(1519); ((HintStatementContext)_localctx).hintName = identifier(); - setState(1518); + setState(1520); match(T__0); - setState(1519); + setState(1521); ((HintStatementContext)_localctx).primaryExpression = primaryExpression(0); ((HintStatementContext)_localctx).parameters.add(((HintStatementContext)_localctx).primaryExpression); - setState(1524); + setState(1526); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1520); + setState(1522); match(T__2); - setState(1521); + setState(1523); ((HintStatementContext)_localctx).primaryExpression = primaryExpression(0); ((HintStatementContext)_localctx).parameters.add(((HintStatementContext)_localctx).primaryExpression); } } - setState(1526); + setState(1528); _errHandler.sync(this); _la = _input.LA(1); } - setState(1527); + setState(1529); match(T__1); } break; @@ -9060,43 +9068,43 @@ public final FromClauseContext fromClause() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(1531); + setState(1533); match(FROM); - setState(1532); + setState(1534); relation(); - setState(1537); + setState(1539); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,192,_ctx); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1533); + setState(1535); match(T__2); - setState(1534); + setState(1536); relation(); } } } - setState(1539); + setState(1541); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,192,_ctx); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); } - setState(1543); + setState(1545); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,193,_ctx); + _alt = getInterpreter().adaptivePredict(_input,194,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1540); + setState(1542); lateralView(); } } } - setState(1545); + setState(1547); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,193,_ctx); + _alt = getInterpreter().adaptivePredict(_input,194,_ctx); } } } @@ -9161,78 +9169,78 @@ public final AggregationContext aggregation() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(1546); + setState(1548); match(GROUP); - setState(1547); + setState(1549); match(BY); - setState(1548); + setState(1550); ((AggregationContext)_localctx).expression = expression(); ((AggregationContext)_localctx).groupingExpressions.add(((AggregationContext)_localctx).expression); - setState(1553); + setState(1555); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,194,_ctx); + _alt = getInterpreter().adaptivePredict(_input,195,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1549); + setState(1551); match(T__2); - setState(1550); + setState(1552); ((AggregationContext)_localctx).expression = expression(); ((AggregationContext)_localctx).groupingExpressions.add(((AggregationContext)_localctx).expression); } } } - setState(1555); + setState(1557); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,194,_ctx); + _alt = getInterpreter().adaptivePredict(_input,195,_ctx); } - setState(1573); + setState(1575); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) { case 1: { - setState(1556); + setState(1558); match(WITH); - setState(1557); + setState(1559); ((AggregationContext)_localctx).kind = match(ROLLUP); } break; case 2: { - setState(1558); + setState(1560); match(WITH); - setState(1559); + setState(1561); ((AggregationContext)_localctx).kind = match(CUBE); } break; case 3: { - setState(1560); + setState(1562); ((AggregationContext)_localctx).kind = match(GROUPING); - setState(1561); + setState(1563); match(SETS); - setState(1562); + setState(1564); match(T__0); - setState(1563); + setState(1565); groupingSet(); - setState(1568); + setState(1570); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1564); + setState(1566); match(T__2); - setState(1565); + setState(1567); groupingSet(); } } - setState(1570); + setState(1572); _errHandler.sync(this); _la = _input.LA(1); } - setState(1571); + setState(1573); match(T__1); } break; @@ -9281,48 +9289,48 @@ public final GroupingSetContext groupingSet() throws RecognitionException { enterRule(_localctx, 92, RULE_groupingSet); int _la; try { - setState(1588); + setState(1590); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1575); + setState(1577); match(T__0); - setState(1584); + setState(1586); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (ASTERISK - 129)) | (1L << (DIV - 129)) | (1L << (TILDE - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (STRING - 193)) | (1L << (BIGINT_LITERAL - 193)) | (1L << (SMALLINT_LITERAL - 193)) | (1L << (TINYINT_LITERAL - 193)) | (1L << (INTEGER_VALUE - 193)) | (1L << (DECIMAL_VALUE - 193)) | (1L << (DOUBLE_LITERAL - 193)) | (1L << (BIGDECIMAL_LITERAL - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(1576); + setState(1578); expression(); - setState(1581); + setState(1583); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1577); + setState(1579); match(T__2); - setState(1578); + setState(1580); expression(); } } - setState(1583); + setState(1585); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1586); + setState(1588); match(T__1); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1587); + setState(1589); expression(); } break; @@ -9389,90 +9397,90 @@ public final LateralViewContext lateralView() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(1590); + setState(1592); match(LATERAL); - setState(1591); - match(VIEW); setState(1593); + match(VIEW); + setState(1595); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { case 1: { - setState(1592); + setState(1594); match(OUTER); } break; } - setState(1595); + setState(1597); qualifiedName(); - setState(1596); + setState(1598); match(T__0); - setState(1605); + setState(1607); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (ASTERISK - 129)) | (1L << (DIV - 129)) | (1L << (TILDE - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (STRING - 193)) | (1L << (BIGINT_LITERAL - 193)) | (1L << (SMALLINT_LITERAL - 193)) | (1L << (TINYINT_LITERAL - 193)) | (1L << (INTEGER_VALUE - 193)) | (1L << (DECIMAL_VALUE - 193)) | (1L << (DOUBLE_LITERAL - 193)) | (1L << (BIGDECIMAL_LITERAL - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(1597); + setState(1599); expression(); - setState(1602); + setState(1604); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1598); + setState(1600); match(T__2); - setState(1599); + setState(1601); expression(); } } - setState(1604); + setState(1606); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1607); + setState(1609); match(T__1); - setState(1608); + setState(1610); ((LateralViewContext)_localctx).tblName = identifier(); - setState(1620); + setState(1622); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,206,_ctx) ) { case 1: { - setState(1610); + setState(1612); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,203,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,204,_ctx) ) { case 1: { - setState(1609); + setState(1611); match(AS); } break; } - setState(1612); + setState(1614); ((LateralViewContext)_localctx).identifier = identifier(); ((LateralViewContext)_localctx).colName.add(((LateralViewContext)_localctx).identifier); - setState(1617); + setState(1619); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,204,_ctx); + _alt = getInterpreter().adaptivePredict(_input,205,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1613); + setState(1615); match(T__2); - setState(1614); + setState(1616); ((LateralViewContext)_localctx).identifier = identifier(); ((LateralViewContext)_localctx).colName.add(((LateralViewContext)_localctx).identifier); } } } - setState(1619); + setState(1621); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,204,_ctx); + _alt = getInterpreter().adaptivePredict(_input,205,_ctx); } } break; @@ -9519,7 +9527,7 @@ public final SetQuantifierContext setQuantifier() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1622); + setState(1624); _la = _input.LA(1); if ( !(_la==ALL || _la==DISTINCT) ) { _errHandler.recoverInline(this); @@ -9578,23 +9586,23 @@ public final RelationContext relation() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(1624); + setState(1626); relationPrimary(); - setState(1628); + setState(1630); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,206,_ctx); + _alt = getInterpreter().adaptivePredict(_input,207,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1625); + setState(1627); joinRelation(); } } } - setState(1630); + setState(1632); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,206,_ctx); + _alt = getInterpreter().adaptivePredict(_input,207,_ctx); } } } @@ -9645,7 +9653,7 @@ public final JoinRelationContext joinRelation() throws RecognitionException { JoinRelationContext _localctx = new JoinRelationContext(_ctx, getState()); enterRule(_localctx, 100, RULE_joinRelation); try { - setState(1642); + setState(1644); _errHandler.sync(this); switch (_input.LA(1)) { case JOIN: @@ -9658,19 +9666,19 @@ public final JoinRelationContext joinRelation() throws RecognitionException { enterOuterAlt(_localctx, 1); { { - setState(1631); + setState(1633); joinType(); } - setState(1632); + setState(1634); match(JOIN); - setState(1633); - ((JoinRelationContext)_localctx).right = relationPrimary(); setState(1635); + ((JoinRelationContext)_localctx).right = relationPrimary(); + setState(1637); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,207,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { case 1: { - setState(1634); + setState(1636); joinCriteria(); } break; @@ -9680,13 +9688,13 @@ public final JoinRelationContext joinRelation() throws RecognitionException { case NATURAL: enterOuterAlt(_localctx, 2); { - setState(1637); + setState(1639); match(NATURAL); - setState(1638); + setState(1640); joinType(); - setState(1639); + setState(1641); match(JOIN); - setState(1640); + setState(1642); ((JoinRelationContext)_localctx).right = relationPrimary(); } break; @@ -9738,18 +9746,18 @@ public final JoinTypeContext joinType() throws RecognitionException { enterRule(_localctx, 102, RULE_joinType); int _la; try { - setState(1666); + setState(1668); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,214,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,215,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1645); + setState(1647); _errHandler.sync(this); _la = _input.LA(1); if (_la==INNER) { { - setState(1644); + setState(1646); match(INNER); } } @@ -9759,21 +9767,21 @@ public final JoinTypeContext joinType() throws RecognitionException { case 2: enterOuterAlt(_localctx, 2); { - setState(1647); + setState(1649); match(CROSS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1648); - match(LEFT); setState(1650); + match(LEFT); + setState(1652); _errHandler.sync(this); _la = _input.LA(1); if (_la==OUTER) { { - setState(1649); + setState(1651); match(OUTER); } } @@ -9783,23 +9791,23 @@ public final JoinTypeContext joinType() throws RecognitionException { case 4: enterOuterAlt(_localctx, 4); { - setState(1652); + setState(1654); match(LEFT); - setState(1653); + setState(1655); match(SEMI); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1654); - match(RIGHT); setState(1656); + match(RIGHT); + setState(1658); _errHandler.sync(this); _la = _input.LA(1); if (_la==OUTER) { { - setState(1655); + setState(1657); match(OUTER); } } @@ -9809,14 +9817,14 @@ public final JoinTypeContext joinType() throws RecognitionException { case 6: enterOuterAlt(_localctx, 6); { - setState(1658); - match(FULL); setState(1660); + match(FULL); + setState(1662); _errHandler.sync(this); _la = _input.LA(1); if (_la==OUTER) { { - setState(1659); + setState(1661); match(OUTER); } } @@ -9826,17 +9834,17 @@ public final JoinTypeContext joinType() throws RecognitionException { case 7: enterOuterAlt(_localctx, 7); { - setState(1663); + setState(1665); _errHandler.sync(this); _la = _input.LA(1); if (_la==LEFT) { { - setState(1662); + setState(1664); match(LEFT); } } - setState(1665); + setState(1667); match(ANTI); } break; @@ -9889,44 +9897,44 @@ public final JoinCriteriaContext joinCriteria() throws RecognitionException { enterRule(_localctx, 104, RULE_joinCriteria); int _la; try { - setState(1682); + setState(1684); _errHandler.sync(this); switch (_input.LA(1)) { case ON: enterOuterAlt(_localctx, 1); { - setState(1668); + setState(1670); match(ON); - setState(1669); + setState(1671); booleanExpression(0); } break; case USING: enterOuterAlt(_localctx, 2); { - setState(1670); + setState(1672); match(USING); - setState(1671); + setState(1673); match(T__0); - setState(1672); + setState(1674); identifier(); - setState(1677); + setState(1679); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1673); + setState(1675); match(T__2); - setState(1674); + setState(1676); identifier(); } } - setState(1679); + setState(1681); _errHandler.sync(this); _la = _input.LA(1); } - setState(1680); + setState(1682); match(T__1); } break; @@ -9976,21 +9984,21 @@ public final SampleContext sample() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1684); + setState(1686); match(TABLESAMPLE); - setState(1685); - match(T__0); setState(1687); + match(T__0); + setState(1689); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (ASTERISK - 129)) | (1L << (DIV - 129)) | (1L << (TILDE - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (STRING - 193)) | (1L << (BIGINT_LITERAL - 193)) | (1L << (SMALLINT_LITERAL - 193)) | (1L << (TINYINT_LITERAL - 193)) | (1L << (INTEGER_VALUE - 193)) | (1L << (DECIMAL_VALUE - 193)) | (1L << (DOUBLE_LITERAL - 193)) | (1L << (BIGDECIMAL_LITERAL - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(1686); + setState(1688); sampleMethod(); } } - setState(1689); + setState(1691); match(T__1); } } @@ -10117,24 +10125,24 @@ public final SampleMethodContext sampleMethod() throws RecognitionException { enterRule(_localctx, 108, RULE_sampleMethod); int _la; try { - setState(1715); + setState(1717); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,221,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,222,_ctx) ) { case 1: _localctx = new SampleByPercentileContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(1692); + setState(1694); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(1691); + setState(1693); ((SampleByPercentileContext)_localctx).negativeSign = match(MINUS); } } - setState(1694); + setState(1696); ((SampleByPercentileContext)_localctx).percentage = _input.LT(1); _la = _input.LA(1); if ( !(_la==INTEGER_VALUE || _la==DECIMAL_VALUE) ) { @@ -10145,7 +10153,7 @@ public final SampleMethodContext sampleMethod() throws RecognitionException { _errHandler.reportMatch(this); consume(); } - setState(1695); + setState(1697); match(PERCENTLIT); } break; @@ -10153,9 +10161,9 @@ public final SampleMethodContext sampleMethod() throws RecognitionException { _localctx = new SampleByRowsContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1696); + setState(1698); expression(); - setState(1697); + setState(1699); match(ROWS); } break; @@ -10163,39 +10171,39 @@ public final SampleMethodContext sampleMethod() throws RecognitionException { _localctx = new SampleByBucketContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(1699); + setState(1701); ((SampleByBucketContext)_localctx).sampleType = match(BUCKET); - setState(1700); + setState(1702); ((SampleByBucketContext)_localctx).numerator = match(INTEGER_VALUE); - setState(1701); + setState(1703); match(OUT); - setState(1702); + setState(1704); match(OF); - setState(1703); + setState(1705); ((SampleByBucketContext)_localctx).denominator = match(INTEGER_VALUE); - setState(1712); + setState(1714); _errHandler.sync(this); _la = _input.LA(1); if (_la==ON) { { - setState(1704); + setState(1706); match(ON); - setState(1710); + setState(1712); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,219,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) { case 1: { - setState(1705); + setState(1707); identifier(); } break; case 2: { - setState(1706); + setState(1708); qualifiedName(); - setState(1707); + setState(1709); match(T__0); - setState(1708); + setState(1710); match(T__1); } break; @@ -10209,7 +10217,7 @@ public final SampleMethodContext sampleMethod() throws RecognitionException { _localctx = new SampleByBytesContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(1714); + setState(1716); ((SampleByBytesContext)_localctx).bytes = expression(); } break; @@ -10255,11 +10263,11 @@ public final IdentifierListContext identifierList() throws RecognitionException try { enterOuterAlt(_localctx, 1); { - setState(1717); + setState(1719); match(T__0); - setState(1718); + setState(1720); identifierSeq(); - setState(1719); + setState(1721); match(T__1); } } @@ -10307,25 +10315,25 @@ public final IdentifierSeqContext identifierSeq() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(1721); + setState(1723); identifier(); - setState(1726); + setState(1728); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,222,_ctx); + _alt = getInterpreter().adaptivePredict(_input,223,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1722); + setState(1724); match(T__2); - setState(1723); + setState(1725); identifier(); } } } - setState(1728); + setState(1730); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,222,_ctx); + _alt = getInterpreter().adaptivePredict(_input,223,_ctx); } } } @@ -10373,27 +10381,27 @@ public final OrderedIdentifierListContext orderedIdentifierList() throws Recogni try { enterOuterAlt(_localctx, 1); { - setState(1729); + setState(1731); match(T__0); - setState(1730); + setState(1732); orderedIdentifier(); - setState(1735); + setState(1737); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1731); + setState(1733); match(T__2); - setState(1732); + setState(1734); orderedIdentifier(); } } - setState(1737); + setState(1739); _errHandler.sync(this); _la = _input.LA(1); } - setState(1738); + setState(1740); match(T__1); } } @@ -10441,14 +10449,14 @@ public final OrderedIdentifierContext orderedIdentifier() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(1740); - identifier(); setState(1742); + identifier(); + setState(1744); _errHandler.sync(this); _la = _input.LA(1); if (_la==ASC || _la==DESC) { { - setState(1741); + setState(1743); ((OrderedIdentifierContext)_localctx).ordering = _input.LT(1); _la = _input.LA(1); if ( !(_la==ASC || _la==DESC) ) { @@ -10508,27 +10516,27 @@ public final IdentifierCommentListContext identifierCommentList() throws Recogni try { enterOuterAlt(_localctx, 1); { - setState(1744); + setState(1746); match(T__0); - setState(1745); + setState(1747); identifierComment(); - setState(1750); + setState(1752); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1746); + setState(1748); match(T__2); - setState(1747); + setState(1749); identifierComment(); } } - setState(1752); + setState(1754); _errHandler.sync(this); _la = _input.LA(1); } - setState(1753); + setState(1755); match(T__1); } } @@ -10575,16 +10583,16 @@ public final IdentifierCommentContext identifierComment() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(1755); + setState(1757); identifier(); - setState(1758); + setState(1760); _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMENT) { { - setState(1756); + setState(1758); match(COMMENT); - setState(1757); + setState(1759); match(STRING); } } @@ -10731,26 +10739,26 @@ public final RelationPrimaryContext relationPrimary() throws RecognitionExceptio RelationPrimaryContext _localctx = new RelationPrimaryContext(_ctx, getState()); enterRule(_localctx, 122, RULE_relationPrimary); try { - setState(1784); + setState(1786); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { case 1: _localctx = new TableNameContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(1760); - tableIdentifier(); setState(1762); + tableIdentifier(); + setState(1764); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,227,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,228,_ctx) ) { case 1: { - setState(1761); + setState(1763); sample(); } break; } - setState(1764); + setState(1766); tableAlias(); } break; @@ -10758,23 +10766,23 @@ public final RelationPrimaryContext relationPrimary() throws RecognitionExceptio _localctx = new AliasedQueryContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1766); + setState(1768); match(T__0); - setState(1767); + setState(1769); queryNoWith(); - setState(1768); - match(T__1); setState(1770); + match(T__1); + setState(1772); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,228,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,229,_ctx) ) { case 1: { - setState(1769); + setState(1771); sample(); } break; } - setState(1772); + setState(1774); tableAlias(); } break; @@ -10782,23 +10790,23 @@ public final RelationPrimaryContext relationPrimary() throws RecognitionExceptio _localctx = new AliasedRelationContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(1774); + setState(1776); match(T__0); - setState(1775); + setState(1777); relation(); - setState(1776); - match(T__1); setState(1778); + match(T__1); + setState(1780); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,229,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { case 1: { - setState(1777); + setState(1779); sample(); } break; } - setState(1780); + setState(1782); tableAlias(); } break; @@ -10806,7 +10814,7 @@ public final RelationPrimaryContext relationPrimary() throws RecognitionExceptio _localctx = new InlineTableDefault2Context(_localctx); enterOuterAlt(_localctx, 4); { - setState(1782); + setState(1784); inlineTable(); } break; @@ -10814,7 +10822,7 @@ public final RelationPrimaryContext relationPrimary() throws RecognitionExceptio _localctx = new TableValuedFunctionContext(_localctx); enterOuterAlt(_localctx, 5); { - setState(1783); + setState(1785); functionTable(); } break; @@ -10868,29 +10876,29 @@ public final InlineTableContext inlineTable() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(1786); + setState(1788); match(VALUES); - setState(1787); + setState(1789); expression(); - setState(1792); + setState(1794); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,231,_ctx); + _alt = getInterpreter().adaptivePredict(_input,232,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1788); + setState(1790); match(T__2); - setState(1789); + setState(1791); expression(); } } } - setState(1794); + setState(1796); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,231,_ctx); + _alt = getInterpreter().adaptivePredict(_input,232,_ctx); } - setState(1795); + setState(1797); tableAlias(); } } @@ -10944,39 +10952,39 @@ public final FunctionTableContext functionTable() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1797); + setState(1799); identifier(); - setState(1798); + setState(1800); match(T__0); - setState(1807); + setState(1809); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (ASTERISK - 129)) | (1L << (DIV - 129)) | (1L << (TILDE - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (STRING - 193)) | (1L << (BIGINT_LITERAL - 193)) | (1L << (SMALLINT_LITERAL - 193)) | (1L << (TINYINT_LITERAL - 193)) | (1L << (INTEGER_VALUE - 193)) | (1L << (DECIMAL_VALUE - 193)) | (1L << (DOUBLE_LITERAL - 193)) | (1L << (BIGDECIMAL_LITERAL - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(1799); + setState(1801); expression(); - setState(1804); + setState(1806); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1800); + setState(1802); match(T__2); - setState(1801); + setState(1803); expression(); } } - setState(1806); + setState(1808); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(1809); + setState(1811); match(T__1); - setState(1810); + setState(1812); tableAlias(); } } @@ -11024,29 +11032,29 @@ public final TableAliasContext tableAlias() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1819); + setState(1821); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,236,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,237,_ctx) ) { case 1: { - setState(1813); + setState(1815); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,234,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,235,_ctx) ) { case 1: { - setState(1812); + setState(1814); match(AS); } break; } - setState(1815); - strictIdentifier(); setState(1817); + strictIdentifier(); + setState(1819); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,235,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,236,_ctx) ) { case 1: { - setState(1816); + setState(1818); identifierList(); } break; @@ -11157,31 +11165,31 @@ public final RowFormatContext rowFormat() throws RecognitionException { RowFormatContext _localctx = new RowFormatContext(_ctx, getState()); enterRule(_localctx, 130, RULE_rowFormat); try { - setState(1870); + setState(1872); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,244,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { case 1: _localctx = new RowFormatSerdeContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(1821); + setState(1823); match(ROW); - setState(1822); + setState(1824); match(FORMAT); - setState(1823); + setState(1825); match(SERDE); - setState(1824); + setState(1826); ((RowFormatSerdeContext)_localctx).name = match(STRING); - setState(1828); + setState(1830); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,237,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { case 1: { - setState(1825); + setState(1827); match(WITH); - setState(1826); + setState(1828); match(SERDEPROPERTIES); - setState(1827); + setState(1829); ((RowFormatSerdeContext)_localctx).props = tablePropertyList(); } break; @@ -11192,35 +11200,35 @@ public final RowFormatContext rowFormat() throws RecognitionException { _localctx = new RowFormatDelimitedContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(1830); + setState(1832); match(ROW); - setState(1831); + setState(1833); match(FORMAT); - setState(1832); + setState(1834); match(DELIMITED); - setState(1842); + setState(1844); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,239,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,240,_ctx) ) { case 1: { - setState(1833); + setState(1835); match(FIELDS); - setState(1834); + setState(1836); match(TERMINATED); - setState(1835); + setState(1837); match(BY); - setState(1836); + setState(1838); ((RowFormatDelimitedContext)_localctx).fieldsTerminatedBy = match(STRING); - setState(1840); + setState(1842); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,239,_ctx) ) { case 1: { - setState(1837); + setState(1839); match(ESCAPED); - setState(1838); + setState(1840); match(BY); - setState(1839); + setState(1841); ((RowFormatDelimitedContext)_localctx).escapedBy = match(STRING); } break; @@ -11228,70 +11236,70 @@ public final RowFormatContext rowFormat() throws RecognitionException { } break; } - setState(1849); + setState(1851); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,240,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,241,_ctx) ) { case 1: { - setState(1844); + setState(1846); match(COLLECTION); - setState(1845); + setState(1847); match(ITEMS); - setState(1846); + setState(1848); match(TERMINATED); - setState(1847); + setState(1849); match(BY); - setState(1848); + setState(1850); ((RowFormatDelimitedContext)_localctx).collectionItemsTerminatedBy = match(STRING); } break; } - setState(1856); + setState(1858); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,241,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,242,_ctx) ) { case 1: { - setState(1851); + setState(1853); match(MAP); - setState(1852); + setState(1854); match(KEYS); - setState(1853); + setState(1855); match(TERMINATED); - setState(1854); + setState(1856); match(BY); - setState(1855); + setState(1857); ((RowFormatDelimitedContext)_localctx).keysTerminatedBy = match(STRING); } break; } - setState(1862); + setState(1864); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,242,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { case 1: { - setState(1858); + setState(1860); match(LINES); - setState(1859); + setState(1861); match(TERMINATED); - setState(1860); + setState(1862); match(BY); - setState(1861); + setState(1863); ((RowFormatDelimitedContext)_localctx).linesSeparatedBy = match(STRING); } break; } - setState(1868); + setState(1870); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,244,_ctx) ) { case 1: { - setState(1864); + setState(1866); match(NULL); - setState(1865); + setState(1867); match(DEFINED); - setState(1866); + setState(1868); match(AS); - setState(1867); + setState(1869); ((RowFormatDelimitedContext)_localctx).nullDefinedAs = match(STRING); } break; @@ -11345,19 +11353,19 @@ public final TableIdentifierContext tableIdentifier() throws RecognitionExceptio try { enterOuterAlt(_localctx, 1); { - setState(1875); + setState(1877); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { case 1: { - setState(1872); + setState(1874); ((TableIdentifierContext)_localctx).db = identifier(); - setState(1873); + setState(1875); match(T__3); } break; } - setState(1877); + setState(1879); ((TableIdentifierContext)_localctx).table = identifier(); } } @@ -11406,19 +11414,19 @@ public final FunctionIdentifierContext functionIdentifier() throws RecognitionEx try { enterOuterAlt(_localctx, 1); { - setState(1882); + setState(1884); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,247,_ctx) ) { case 1: { - setState(1879); + setState(1881); ((FunctionIdentifierContext)_localctx).db = identifier(); - setState(1880); + setState(1882); match(T__3); } break; } - setState(1884); + setState(1886); ((FunctionIdentifierContext)_localctx).function = identifier(); } } @@ -11469,24 +11477,24 @@ public final NamedExpressionContext namedExpression() throws RecognitionExceptio try { enterOuterAlt(_localctx, 1); { - setState(1886); + setState(1888); expression(); - setState(1894); + setState(1896); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,249,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,250,_ctx) ) { case 1: { - setState(1888); + setState(1890); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,247,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,248,_ctx) ) { case 1: { - setState(1887); + setState(1889); match(AS); } break; } - setState(1892); + setState(1894); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: @@ -11702,13 +11710,13 @@ public final NamedExpressionContext namedExpression() throws RecognitionExceptio case IDENTIFIER: case BACKQUOTED_IDENTIFIER: { - setState(1890); + setState(1892); identifier(); } break; case T__0: { - setState(1891); + setState(1893); identifierList(); } break; @@ -11764,25 +11772,25 @@ public final NamedExpressionSeqContext namedExpressionSeq() throws RecognitionEx int _alt; enterOuterAlt(_localctx, 1); { - setState(1896); + setState(1898); namedExpression(); - setState(1901); + setState(1903); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,250,_ctx); + _alt = getInterpreter().adaptivePredict(_input,251,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1897); + setState(1899); match(T__2); - setState(1898); + setState(1900); namedExpression(); } } } - setState(1903); + setState(1905); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,250,_ctx); + _alt = getInterpreter().adaptivePredict(_input,251,_ctx); } } } @@ -11826,7 +11834,7 @@ public final ExpressionContext expression() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1904); + setState(1906); booleanExpression(0); } } @@ -11954,18 +11962,18 @@ private BooleanExpressionContext booleanExpression(int _p) throws RecognitionExc int _alt; enterOuterAlt(_localctx, 1); { - setState(1915); + setState(1917); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,252,_ctx) ) { case 1: { _localctx = new LogicalNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(1907); + setState(1909); match(NOT); - setState(1908); + setState(1910); booleanExpression(5); } break; @@ -11974,13 +11982,13 @@ private BooleanExpressionContext booleanExpression(int _p) throws RecognitionExc _localctx = new ExistsContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(1909); + setState(1911); match(EXISTS); - setState(1910); + setState(1912); match(T__0); - setState(1911); + setState(1913); query(); - setState(1912); + setState(1914); match(T__1); } break; @@ -11989,33 +11997,33 @@ private BooleanExpressionContext booleanExpression(int _p) throws RecognitionExc _localctx = new BooleanDefaultContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(1914); + setState(1916); predicated(); } break; } _ctx.stop = _input.LT(-1); - setState(1925); + setState(1927); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,253,_ctx); + _alt = getInterpreter().adaptivePredict(_input,254,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(1923); + setState(1925); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,252,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,253,_ctx) ) { case 1: { _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); ((LogicalBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_booleanExpression); - setState(1917); + setState(1919); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(1918); + setState(1920); ((LogicalBinaryContext)_localctx).operator = match(AND); - setState(1919); + setState(1921); ((LogicalBinaryContext)_localctx).right = booleanExpression(3); } break; @@ -12024,20 +12032,20 @@ private BooleanExpressionContext booleanExpression(int _p) throws RecognitionExc _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); ((LogicalBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_booleanExpression); - setState(1920); + setState(1922); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(1921); + setState(1923); ((LogicalBinaryContext)_localctx).operator = match(OR); - setState(1922); + setState(1924); ((LogicalBinaryContext)_localctx).right = booleanExpression(2); } break; } } } - setState(1927); + setState(1929); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,253,_ctx); + _alt = getInterpreter().adaptivePredict(_input,254,_ctx); } } } @@ -12084,14 +12092,14 @@ public final PredicatedContext predicated() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(1928); - valueExpression(0); setState(1930); + valueExpression(0); + setState(1932); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,254,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,255,_ctx) ) { case 1: { - setState(1929); + setState(1931); predicate(); } break; @@ -12164,108 +12172,108 @@ public final PredicateContext predicate() throws RecognitionException { enterRule(_localctx, 146, RULE_predicate); int _la; try { - setState(1980); + setState(1982); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,262,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,263,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1933); + setState(1935); _errHandler.sync(this); _la = _input.LA(1); if (_la==NOT) { { - setState(1932); + setState(1934); match(NOT); } } - setState(1935); + setState(1937); ((PredicateContext)_localctx).kind = match(BETWEEN); - setState(1936); + setState(1938); ((PredicateContext)_localctx).lower = valueExpression(0); - setState(1937); + setState(1939); match(AND); - setState(1938); + setState(1940); ((PredicateContext)_localctx).upper = valueExpression(0); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1941); + setState(1943); _errHandler.sync(this); _la = _input.LA(1); if (_la==NOT) { { - setState(1940); + setState(1942); match(NOT); } } - setState(1943); + setState(1945); ((PredicateContext)_localctx).kind = match(IN); - setState(1944); + setState(1946); match(T__0); - setState(1945); + setState(1947); expression(); - setState(1950); + setState(1952); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(1946); + setState(1948); match(T__2); - setState(1947); + setState(1949); expression(); } } - setState(1952); + setState(1954); _errHandler.sync(this); _la = _input.LA(1); } - setState(1953); + setState(1955); match(T__1); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1956); + setState(1958); _errHandler.sync(this); _la = _input.LA(1); if (_la==NOT) { { - setState(1955); + setState(1957); match(NOT); } } - setState(1958); + setState(1960); ((PredicateContext)_localctx).kind = match(IN); - setState(1959); + setState(1961); match(T__0); - setState(1960); + setState(1962); query(); - setState(1961); + setState(1963); match(T__1); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1964); + setState(1966); _errHandler.sync(this); _la = _input.LA(1); if (_la==NOT) { { - setState(1963); + setState(1965); match(NOT); } } - setState(1966); + setState(1968); ((PredicateContext)_localctx).kind = _input.LT(1); _la = _input.LA(1); if ( !(_la==LIKE || _la==RLIKE) ) { @@ -12276,49 +12284,49 @@ public final PredicateContext predicate() throws RecognitionException { _errHandler.reportMatch(this); consume(); } - setState(1967); + setState(1969); ((PredicateContext)_localctx).pattern = valueExpression(0); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1968); - match(IS); setState(1970); + match(IS); + setState(1972); _errHandler.sync(this); _la = _input.LA(1); if (_la==NOT) { { - setState(1969); + setState(1971); match(NOT); } } - setState(1972); + setState(1974); ((PredicateContext)_localctx).kind = match(NULL); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1973); - match(IS); setState(1975); + match(IS); + setState(1977); _errHandler.sync(this); _la = _input.LA(1); if (_la==NOT) { { - setState(1974); + setState(1976); match(NOT); } } - setState(1977); + setState(1979); ((PredicateContext)_localctx).kind = match(DISTINCT); - setState(1978); + setState(1980); match(FROM); - setState(1979); + setState(1981); ((PredicateContext)_localctx).right = valueExpression(0); } break; @@ -12467,16 +12475,16 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti int _alt; enterOuterAlt(_localctx, 1); { - setState(1986); + setState(1988); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,263,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { case 1: { _localctx = new ValueExpressionDefaultContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(1983); + setState(1985); primaryExpression(0); } break; @@ -12485,7 +12493,7 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _localctx = new ArithmeticUnaryContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(1984); + setState(1986); ((ArithmeticUnaryContext)_localctx).operator = _input.LT(1); _la = _input.LA(1); if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (PLUS - 139)) | (1L << (MINUS - 139)) | (1L << (TILDE - 139)))) != 0)) ) { @@ -12496,31 +12504,31 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _errHandler.reportMatch(this); consume(); } - setState(1985); + setState(1987); valueExpression(7); } break; } _ctx.stop = _input.LT(-1); - setState(2009); + setState(2011); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,265,_ctx); + _alt = getInterpreter().adaptivePredict(_input,266,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2007); + setState(2009); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,265,_ctx) ) { case 1: { _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); ((ArithmeticBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); - setState(1988); + setState(1990); if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); - setState(1989); + setState(1991); ((ArithmeticBinaryContext)_localctx).operator = _input.LT(1); _la = _input.LA(1); if ( !(((((_la - 141)) & ~0x3f) == 0 && ((1L << (_la - 141)) & ((1L << (ASTERISK - 141)) | (1L << (SLASH - 141)) | (1L << (PERCENT - 141)) | (1L << (DIV - 141)))) != 0)) ) { @@ -12531,7 +12539,7 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _errHandler.reportMatch(this); consume(); } - setState(1990); + setState(1992); ((ArithmeticBinaryContext)_localctx).right = valueExpression(7); } break; @@ -12540,9 +12548,9 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); ((ArithmeticBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); - setState(1991); + setState(1993); if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(1992); + setState(1994); ((ArithmeticBinaryContext)_localctx).operator = _input.LT(1); _la = _input.LA(1); if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (PLUS - 139)) | (1L << (MINUS - 139)) | (1L << (CONCAT_PIPE - 139)))) != 0)) ) { @@ -12553,7 +12561,7 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _errHandler.reportMatch(this); consume(); } - setState(1993); + setState(1995); ((ArithmeticBinaryContext)_localctx).right = valueExpression(6); } break; @@ -12562,11 +12570,11 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); ((ArithmeticBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); - setState(1994); + setState(1996); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(1995); + setState(1997); ((ArithmeticBinaryContext)_localctx).operator = match(AMPERSAND); - setState(1996); + setState(1998); ((ArithmeticBinaryContext)_localctx).right = valueExpression(5); } break; @@ -12575,11 +12583,11 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); ((ArithmeticBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); - setState(1997); + setState(1999); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(1998); + setState(2000); ((ArithmeticBinaryContext)_localctx).operator = match(HAT); - setState(1999); + setState(2001); ((ArithmeticBinaryContext)_localctx).right = valueExpression(4); } break; @@ -12588,11 +12596,11 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState)); ((ArithmeticBinaryContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); - setState(2000); + setState(2002); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2001); + setState(2003); ((ArithmeticBinaryContext)_localctx).operator = match(PIPE); - setState(2002); + setState(2004); ((ArithmeticBinaryContext)_localctx).right = valueExpression(3); } break; @@ -12601,20 +12609,20 @@ private ValueExpressionContext valueExpression(int _p) throws RecognitionExcepti _localctx = new ComparisonContext(new ValueExpressionContext(_parentctx, _parentState)); ((ComparisonContext)_localctx).left = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); - setState(2003); + setState(2005); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2004); + setState(2006); comparisonOperator(); - setState(2005); + setState(2007); ((ComparisonContext)_localctx).right = valueExpression(2); } break; } } } - setState(2011); + setState(2013); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,265,_ctx); + _alt = getInterpreter().adaptivePredict(_input,266,_ctx); } } } @@ -13043,44 +13051,44 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc int _alt; enterOuterAlt(_localctx, 1); { - setState(2136); + setState(2138); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,279,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,280,_ctx) ) { case 1: { _localctx = new SearchedCaseContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2013); + setState(2015); match(CASE); - setState(2015); + setState(2017); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(2014); + setState(2016); whenClause(); } } - setState(2017); + setState(2019); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==WHEN ); - setState(2021); + setState(2023); _errHandler.sync(this); _la = _input.LA(1); if (_la==ELSE) { { - setState(2019); + setState(2021); match(ELSE); - setState(2020); + setState(2022); ((SearchedCaseContext)_localctx).elseExpression = expression(); } } - setState(2023); + setState(2025); match(END); } break; @@ -13089,37 +13097,37 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new SimpleCaseContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2025); + setState(2027); match(CASE); - setState(2026); + setState(2028); ((SimpleCaseContext)_localctx).value = expression(); - setState(2028); + setState(2030); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(2027); + setState(2029); whenClause(); } } - setState(2030); + setState(2032); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==WHEN ); - setState(2034); + setState(2036); _errHandler.sync(this); _la = _input.LA(1); if (_la==ELSE) { { - setState(2032); + setState(2034); match(ELSE); - setState(2033); + setState(2035); ((SimpleCaseContext)_localctx).elseExpression = expression(); } } - setState(2036); + setState(2038); match(END); } break; @@ -13128,17 +13136,17 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new CastContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2038); + setState(2040); match(CAST); - setState(2039); + setState(2041); match(T__0); - setState(2040); + setState(2042); expression(); - setState(2041); + setState(2043); match(AS); - setState(2042); + setState(2044); dataType(); - setState(2043); + setState(2045); match(T__1); } break; @@ -13147,39 +13155,39 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new StructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2045); + setState(2047); match(STRUCT); - setState(2046); + setState(2048); match(T__0); - setState(2055); + setState(2057); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (ASTERISK - 129)) | (1L << (DIV - 129)) | (1L << (TILDE - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (STRING - 193)) | (1L << (BIGINT_LITERAL - 193)) | (1L << (SMALLINT_LITERAL - 193)) | (1L << (TINYINT_LITERAL - 193)) | (1L << (INTEGER_VALUE - 193)) | (1L << (DECIMAL_VALUE - 193)) | (1L << (DOUBLE_LITERAL - 193)) | (1L << (BIGDECIMAL_LITERAL - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(2047); + setState(2049); ((StructContext)_localctx).namedExpression = namedExpression(); ((StructContext)_localctx).argument.add(((StructContext)_localctx).namedExpression); - setState(2052); + setState(2054); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2048); + setState(2050); match(T__2); - setState(2049); + setState(2051); ((StructContext)_localctx).namedExpression = namedExpression(); ((StructContext)_localctx).argument.add(((StructContext)_localctx).namedExpression); } } - setState(2054); + setState(2056); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(2057); + setState(2059); match(T__1); } break; @@ -13188,25 +13196,25 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new FirstContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2058); + setState(2060); match(FIRST); - setState(2059); + setState(2061); match(T__0); - setState(2060); + setState(2062); expression(); - setState(2063); + setState(2065); _errHandler.sync(this); _la = _input.LA(1); if (_la==IGNORE) { { - setState(2061); + setState(2063); match(IGNORE); - setState(2062); + setState(2064); match(NULLS); } } - setState(2065); + setState(2067); match(T__1); } break; @@ -13215,25 +13223,25 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new LastContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2067); + setState(2069); match(LAST); - setState(2068); + setState(2070); match(T__0); - setState(2069); + setState(2071); expression(); - setState(2072); + setState(2074); _errHandler.sync(this); _la = _input.LA(1); if (_la==IGNORE) { { - setState(2070); + setState(2072); match(IGNORE); - setState(2071); + setState(2073); match(NULLS); } } - setState(2074); + setState(2076); match(T__1); } break; @@ -13242,17 +13250,17 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new PositionContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2076); + setState(2078); match(POSITION); - setState(2077); + setState(2079); match(T__0); - setState(2078); + setState(2080); ((PositionContext)_localctx).substr = valueExpression(0); - setState(2079); + setState(2081); match(IN); - setState(2080); + setState(2082); ((PositionContext)_localctx).str = valueExpression(0); - setState(2081); + setState(2083); match(T__1); } break; @@ -13261,7 +13269,7 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new ConstantDefaultContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2083); + setState(2085); constant(); } break; @@ -13270,7 +13278,7 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new StarContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2084); + setState(2086); match(ASTERISK); } break; @@ -13279,11 +13287,11 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new StarContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2085); + setState(2087); qualifiedName(); - setState(2086); + setState(2088); match(T__3); - setState(2087); + setState(2089); match(ASTERISK); } break; @@ -13292,27 +13300,27 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new RowConstructorContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2089); + setState(2091); match(T__0); - setState(2090); + setState(2092); namedExpression(); - setState(2093); + setState(2095); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(2091); + setState(2093); match(T__2); - setState(2092); + setState(2094); namedExpression(); } } - setState(2095); + setState(2097); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==T__2 ); - setState(2097); + setState(2099); match(T__1); } break; @@ -13321,11 +13329,11 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new SubqueryExpressionContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2099); + setState(2101); match(T__0); - setState(2100); + setState(2102); query(); - setState(2101); + setState(2103); match(T__1); } break; @@ -13334,58 +13342,58 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new FunctionCallContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2103); + setState(2105); qualifiedName(); - setState(2104); + setState(2106); match(T__0); - setState(2116); + setState(2118); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (ASTERISK - 129)) | (1L << (DIV - 129)) | (1L << (TILDE - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (STRING - 193)) | (1L << (BIGINT_LITERAL - 193)) | (1L << (SMALLINT_LITERAL - 193)) | (1L << (TINYINT_LITERAL - 193)) | (1L << (INTEGER_VALUE - 193)) | (1L << (DECIMAL_VALUE - 193)) | (1L << (DOUBLE_LITERAL - 193)) | (1L << (BIGDECIMAL_LITERAL - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(2106); + setState(2108); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,275,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { case 1: { - setState(2105); + setState(2107); setQuantifier(); } break; } - setState(2108); + setState(2110); ((FunctionCallContext)_localctx).expression = expression(); ((FunctionCallContext)_localctx).argument.add(((FunctionCallContext)_localctx).expression); - setState(2113); + setState(2115); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2109); + setState(2111); match(T__2); - setState(2110); + setState(2112); ((FunctionCallContext)_localctx).expression = expression(); ((FunctionCallContext)_localctx).argument.add(((FunctionCallContext)_localctx).expression); } } - setState(2115); + setState(2117); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(2118); + setState(2120); match(T__1); - setState(2121); + setState(2123); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,278,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,279,_ctx) ) { case 1: { - setState(2119); + setState(2121); match(OVER); - setState(2120); + setState(2122); windowSpec(); } break; @@ -13397,11 +13405,11 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new FunctionCallContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2123); + setState(2125); qualifiedName(); - setState(2124); + setState(2126); match(T__0); - setState(2125); + setState(2127); ((FunctionCallContext)_localctx).trimOption = _input.LT(1); _la = _input.LA(1); if ( !(((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & ((1L << (BOTH - 122)) | (1L << (LEADING - 122)) | (1L << (TRAILING - 122)))) != 0)) ) { @@ -13412,15 +13420,15 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _errHandler.reportMatch(this); consume(); } - setState(2126); + setState(2128); ((FunctionCallContext)_localctx).expression = expression(); ((FunctionCallContext)_localctx).argument.add(((FunctionCallContext)_localctx).expression); - setState(2127); + setState(2129); match(FROM); - setState(2128); + setState(2130); ((FunctionCallContext)_localctx).expression = expression(); ((FunctionCallContext)_localctx).argument.add(((FunctionCallContext)_localctx).expression); - setState(2129); + setState(2131); match(T__1); } break; @@ -13429,7 +13437,7 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new ColumnReferenceContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2131); + setState(2133); identifier(); } break; @@ -13438,39 +13446,39 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new ParenthesizedExpressionContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(2132); + setState(2134); match(T__0); - setState(2133); + setState(2135); expression(); - setState(2134); + setState(2136); match(T__1); } break; } _ctx.stop = _input.LT(-1); - setState(2148); + setState(2150); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,281,_ctx); + _alt = getInterpreter().adaptivePredict(_input,282,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2146); + setState(2148); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,280,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,281,_ctx) ) { case 1: { _localctx = new SubscriptContext(new PrimaryExpressionContext(_parentctx, _parentState)); ((SubscriptContext)_localctx).value = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_primaryExpression); - setState(2138); + setState(2140); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(2139); + setState(2141); match(T__6); - setState(2140); + setState(2142); ((SubscriptContext)_localctx).index = valueExpression(0); - setState(2141); + setState(2143); match(T__7); } break; @@ -13479,20 +13487,20 @@ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionExc _localctx = new DereferenceContext(new PrimaryExpressionContext(_parentctx, _parentState)); ((DereferenceContext)_localctx).base = _prevctx; pushNewRecursionContext(_localctx, _startState, RULE_primaryExpression); - setState(2143); + setState(2145); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2144); + setState(2146); match(T__3); - setState(2145); + setState(2147); ((DereferenceContext)_localctx).fieldName = identifier(); } break; } } } - setState(2150); + setState(2152); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,281,_ctx); + _alt = getInterpreter().adaptivePredict(_input,282,_ctx); } } } @@ -13638,14 +13646,14 @@ public final ConstantContext constant() throws RecognitionException { enterRule(_localctx, 152, RULE_constant); try { int _alt; - setState(2163); + setState(2165); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,283,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) { case 1: _localctx = new NullLiteralContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(2151); + setState(2153); match(NULL); } break; @@ -13653,7 +13661,7 @@ public final ConstantContext constant() throws RecognitionException { _localctx = new IntervalLiteralContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(2152); + setState(2154); interval(); } break; @@ -13661,9 +13669,9 @@ public final ConstantContext constant() throws RecognitionException { _localctx = new TypeConstructorContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(2153); + setState(2155); identifier(); - setState(2154); + setState(2156); match(STRING); } break; @@ -13671,7 +13679,7 @@ public final ConstantContext constant() throws RecognitionException { _localctx = new NumericLiteralContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(2156); + setState(2158); number(); } break; @@ -13679,7 +13687,7 @@ public final ConstantContext constant() throws RecognitionException { _localctx = new BooleanLiteralContext(_localctx); enterOuterAlt(_localctx, 5); { - setState(2157); + setState(2159); booleanValue(); } break; @@ -13687,7 +13695,7 @@ public final ConstantContext constant() throws RecognitionException { _localctx = new StringLiteralContext(_localctx); enterOuterAlt(_localctx, 6); { - setState(2159); + setState(2161); _errHandler.sync(this); _alt = 1; do { @@ -13695,7 +13703,7 @@ public final ConstantContext constant() throws RecognitionException { case 1: { { - setState(2158); + setState(2160); match(STRING); } } @@ -13703,9 +13711,9 @@ public final ConstantContext constant() throws RecognitionException { default: throw new NoViableAltException(this); } - setState(2161); + setState(2163); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,282,_ctx); + _alt = getInterpreter().adaptivePredict(_input,283,_ctx); } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); } break; @@ -13757,7 +13765,7 @@ public final ComparisonOperatorContext comparisonOperator() throws RecognitionEx try { enterOuterAlt(_localctx, 1); { - setState(2165); + setState(2167); _la = _input.LA(1); if ( !(((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (EQ - 131)) | (1L << (NSEQ - 131)) | (1L << (NEQ - 131)) | (1L << (NEQJ - 131)) | (1L << (LT - 131)) | (1L << (LTE - 131)) | (1L << (GT - 131)) | (1L << (GTE - 131)))) != 0)) ) { _errHandler.recoverInline(this); @@ -13818,7 +13826,7 @@ public final ArithmeticOperatorContext arithmeticOperator() throws RecognitionEx try { enterOuterAlt(_localctx, 1); { - setState(2167); + setState(2169); _la = _input.LA(1); if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (PLUS - 139)) | (1L << (MINUS - 139)) | (1L << (ASTERISK - 139)) | (1L << (SLASH - 139)) | (1L << (PERCENT - 139)) | (1L << (DIV - 139)) | (1L << (TILDE - 139)) | (1L << (AMPERSAND - 139)) | (1L << (PIPE - 139)) | (1L << (CONCAT_PIPE - 139)) | (1L << (HAT - 139)))) != 0)) ) { _errHandler.recoverInline(this); @@ -13872,7 +13880,7 @@ public final PredicateOperatorContext predicateOperator() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(2169); + setState(2171); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT))) != 0)) ) { _errHandler.recoverInline(this); @@ -13924,7 +13932,7 @@ public final BooleanValueContext booleanValue() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(2171); + setState(2173); _la = _input.LA(1); if ( !(_la==TRUE || _la==FALSE) ) { _errHandler.recoverInline(this); @@ -13981,23 +13989,23 @@ public final IntervalContext interval() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(2173); + setState(2175); match(INTERVAL); - setState(2177); + setState(2179); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,284,_ctx); + _alt = getInterpreter().adaptivePredict(_input,285,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2174); + setState(2176); intervalField(); } } } - setState(2179); + setState(2181); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,284,_ctx); + _alt = getInterpreter().adaptivePredict(_input,285,_ctx); } } } @@ -14051,18 +14059,18 @@ public final IntervalFieldContext intervalField() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(2180); + setState(2182); ((IntervalFieldContext)_localctx).value = intervalValue(); - setState(2181); + setState(2183); ((IntervalFieldContext)_localctx).unit = identifier(); - setState(2184); + setState(2186); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,285,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,286,_ctx) ) { case 1: { - setState(2182); + setState(2184); match(TO); - setState(2183); + setState(2185); ((IntervalFieldContext)_localctx).to = identifier(); } break; @@ -14110,7 +14118,7 @@ public final IntervalValueContext intervalValue() throws RecognitionException { enterRule(_localctx, 166, RULE_intervalValue); int _la; try { - setState(2191); + setState(2193); _errHandler.sync(this); switch (_input.LA(1)) { case PLUS: @@ -14119,12 +14127,12 @@ public final IntervalValueContext intervalValue() throws RecognitionException { case DECIMAL_VALUE: enterOuterAlt(_localctx, 1); { - setState(2187); + setState(2189); _errHandler.sync(this); _la = _input.LA(1); if (_la==PLUS || _la==MINUS) { { - setState(2186); + setState(2188); _la = _input.LA(1); if ( !(_la==PLUS || _la==MINUS) ) { _errHandler.recoverInline(this); @@ -14137,7 +14145,7 @@ public final IntervalValueContext intervalValue() throws RecognitionException { } } - setState(2189); + setState(2191); _la = _input.LA(1); if ( !(_la==INTEGER_VALUE || _la==DECIMAL_VALUE) ) { _errHandler.recoverInline(this); @@ -14152,7 +14160,7 @@ public final IntervalValueContext intervalValue() throws RecognitionException { case STRING: enterOuterAlt(_localctx, 2); { - setState(2190); + setState(2192); match(STRING); } break; @@ -14200,22 +14208,22 @@ public final ColPositionContext colPosition() throws RecognitionException { ColPositionContext _localctx = new ColPositionContext(_ctx, getState()); enterRule(_localctx, 168, RULE_colPosition); try { - setState(2196); + setState(2198); _errHandler.sync(this); switch (_input.LA(1)) { case FIRST: enterOuterAlt(_localctx, 1); { - setState(2193); + setState(2195); match(FIRST); } break; case AFTER: enterOuterAlt(_localctx, 2); { - setState(2194); + setState(2196); match(AFTER); - setState(2195); + setState(2197); identifier(); } break; @@ -14304,20 +14312,20 @@ public final DataTypeContext dataType() throws RecognitionException { enterRule(_localctx, 170, RULE_dataType); int _la; try { - setState(2232); + setState(2234); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { case 1: _localctx = new ComplexDataTypeContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(2198); + setState(2200); ((ComplexDataTypeContext)_localctx).complex = match(ARRAY); - setState(2199); + setState(2201); match(LT); - setState(2200); + setState(2202); dataType(); - setState(2201); + setState(2203); match(GT); } break; @@ -14325,17 +14333,17 @@ public final DataTypeContext dataType() throws RecognitionException { _localctx = new ComplexDataTypeContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(2203); - ((ComplexDataTypeContext)_localctx).complex = match(MAP); - setState(2204); - match(LT); setState(2205); - dataType(); + ((ComplexDataTypeContext)_localctx).complex = match(MAP); setState(2206); - match(T__2); + match(LT); setState(2207); dataType(); setState(2208); + match(T__2); + setState(2209); + dataType(); + setState(2210); match(GT); } break; @@ -14343,32 +14351,32 @@ public final DataTypeContext dataType() throws RecognitionException { _localctx = new ComplexDataTypeContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(2210); + setState(2212); ((ComplexDataTypeContext)_localctx).complex = match(STRUCT); - setState(2217); + setState(2219); _errHandler.sync(this); switch (_input.LA(1)) { case LT: { - setState(2211); - match(LT); setState(2213); + match(LT); + setState(2215); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << JOIN) | (1L << CROSS) | (1L << OUTER) | (1L << INNER) | (1L << LEFT) | (1L << SEMI) | (1L << RIGHT) | (1L << FULL) | (1L << NATURAL) | (1L << ON) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (UNION - 64)) | (1L << (EXCEPT - 64)) | (1L << (SETMINUS - 64)) | (1L << (INTERSECT - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (DIV - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (ANTI - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (BACKQUOTED_IDENTIFIER - 193)))) != 0)) { { - setState(2212); + setState(2214); complexColTypeList(); } } - setState(2215); + setState(2217); match(GT); } break; case NEQ: { - setState(2216); + setState(2218); match(NEQ); } break; @@ -14381,34 +14389,34 @@ public final DataTypeContext dataType() throws RecognitionException { _localctx = new PrimitiveDataTypeContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(2219); + setState(2221); identifier(); - setState(2230); + setState(2232); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { case 1: { - setState(2220); + setState(2222); match(T__0); - setState(2221); + setState(2223); match(INTEGER_VALUE); - setState(2226); + setState(2228); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2222); + setState(2224); match(T__2); - setState(2223); + setState(2225); match(INTEGER_VALUE); } } - setState(2228); + setState(2230); _errHandler.sync(this); _la = _input.LA(1); } - setState(2229); + setState(2231); match(T__1); } break; @@ -14461,25 +14469,25 @@ public final ColTypeListContext colTypeList() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(2234); + setState(2236); colType(); - setState(2239); + setState(2241); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,294,_ctx); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2235); + setState(2237); match(T__2); - setState(2236); + setState(2238); colType(); } } } - setState(2241); + setState(2243); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,294,_ctx); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); } } } @@ -14528,18 +14536,18 @@ public final ColTypeContext colType() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(2242); + setState(2244); identifier(); - setState(2243); + setState(2245); dataType(); - setState(2246); + setState(2248); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,295,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,296,_ctx) ) { case 1: { - setState(2244); + setState(2246); match(COMMENT); - setState(2245); + setState(2247); match(STRING); } break; @@ -14590,21 +14598,21 @@ public final ComplexColTypeListContext complexColTypeList() throws RecognitionEx try { enterOuterAlt(_localctx, 1); { - setState(2248); + setState(2250); complexColType(); - setState(2253); + setState(2255); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2249); + setState(2251); match(T__2); - setState(2250); + setState(2252); complexColType(); } } - setState(2255); + setState(2257); _errHandler.sync(this); _la = _input.LA(1); } @@ -14656,20 +14664,20 @@ public final ComplexColTypeContext complexColType() throws RecognitionException try { enterOuterAlt(_localctx, 1); { - setState(2256); + setState(2258); identifier(); - setState(2257); + setState(2259); match(T__8); - setState(2258); + setState(2260); dataType(); - setState(2261); + setState(2263); _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMENT) { { - setState(2259); + setState(2261); match(COMMENT); - setState(2260); + setState(2262); match(STRING); } } @@ -14723,13 +14731,13 @@ public final WhenClauseContext whenClause() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(2263); + setState(2265); match(WHEN); - setState(2264); + setState(2266); ((WhenClauseContext)_localctx).condition = expression(); - setState(2265); + setState(2267); match(THEN); - setState(2266); + setState(2268); ((WhenClauseContext)_localctx).result = expression(); } } @@ -14778,27 +14786,27 @@ public final WindowsContext windows() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(2268); + setState(2270); match(WINDOW); - setState(2269); + setState(2271); namedWindow(); - setState(2274); + setState(2276); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,298,_ctx); + _alt = getInterpreter().adaptivePredict(_input,299,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2270); + setState(2272); match(T__2); - setState(2271); + setState(2273); namedWindow(); } } } - setState(2276); + setState(2278); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,298,_ctx); + _alt = getInterpreter().adaptivePredict(_input,299,_ctx); } } } @@ -14846,11 +14854,11 @@ public final NamedWindowContext namedWindow() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(2277); + setState(2279); identifier(); - setState(2278); + setState(2280); match(AS); - setState(2279); + setState(2281); windowSpec(); } } @@ -14944,7 +14952,7 @@ public final WindowSpecContext windowSpec() throws RecognitionException { enterRule(_localctx, 186, RULE_windowSpec); int _la; try { - setState(2323); + setState(2325); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: @@ -15162,7 +15170,7 @@ public final WindowSpecContext windowSpec() throws RecognitionException { _localctx = new WindowRefContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(2281); + setState(2283); ((WindowRefContext)_localctx).name = identifier(); } break; @@ -15170,34 +15178,34 @@ public final WindowSpecContext windowSpec() throws RecognitionException { _localctx = new WindowDefContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(2282); + setState(2284); match(T__0); - setState(2317); + setState(2319); _errHandler.sync(this); switch (_input.LA(1)) { case CLUSTER: { - setState(2283); + setState(2285); match(CLUSTER); - setState(2284); + setState(2286); match(BY); - setState(2285); + setState(2287); ((WindowDefContext)_localctx).expression = expression(); ((WindowDefContext)_localctx).partition.add(((WindowDefContext)_localctx).expression); - setState(2290); + setState(2292); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2286); + setState(2288); match(T__2); - setState(2287); + setState(2289); ((WindowDefContext)_localctx).expression = expression(); ((WindowDefContext)_localctx).partition.add(((WindowDefContext)_localctx).expression); } } - setState(2292); + setState(2294); _errHandler.sync(this); _la = _input.LA(1); } @@ -15211,12 +15219,12 @@ public final WindowSpecContext windowSpec() throws RecognitionException { case SORT: case DISTRIBUTE: { - setState(2303); + setState(2305); _errHandler.sync(this); _la = _input.LA(1); if (_la==PARTITION || _la==DISTRIBUTE) { { - setState(2293); + setState(2295); _la = _input.LA(1); if ( !(_la==PARTITION || _la==DISTRIBUTE) ) { _errHandler.recoverInline(this); @@ -15226,37 +15234,37 @@ public final WindowSpecContext windowSpec() throws RecognitionException { _errHandler.reportMatch(this); consume(); } - setState(2294); + setState(2296); match(BY); - setState(2295); + setState(2297); ((WindowDefContext)_localctx).expression = expression(); ((WindowDefContext)_localctx).partition.add(((WindowDefContext)_localctx).expression); - setState(2300); + setState(2302); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2296); + setState(2298); match(T__2); - setState(2297); + setState(2299); ((WindowDefContext)_localctx).expression = expression(); ((WindowDefContext)_localctx).partition.add(((WindowDefContext)_localctx).expression); } } - setState(2302); + setState(2304); _errHandler.sync(this); _la = _input.LA(1); } } } - setState(2315); + setState(2317); _errHandler.sync(this); _la = _input.LA(1); if (_la==ORDER || _la==SORT) { { - setState(2305); + setState(2307); _la = _input.LA(1); if ( !(_la==ORDER || _la==SORT) ) { _errHandler.recoverInline(this); @@ -15266,23 +15274,23 @@ public final WindowSpecContext windowSpec() throws RecognitionException { _errHandler.reportMatch(this); consume(); } - setState(2306); + setState(2308); match(BY); - setState(2307); + setState(2309); sortItem(); - setState(2312); + setState(2314); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__2) { { { - setState(2308); + setState(2310); match(T__2); - setState(2309); + setState(2311); sortItem(); } } - setState(2314); + setState(2316); _errHandler.sync(this); _la = _input.LA(1); } @@ -15294,17 +15302,17 @@ public final WindowSpecContext windowSpec() throws RecognitionException { default: throw new NoViableAltException(this); } - setState(2320); + setState(2322); _errHandler.sync(this); _la = _input.LA(1); if (_la==RANGE || _la==ROWS) { { - setState(2319); + setState(2321); windowFrame(); } } - setState(2322); + setState(2324); match(T__1); } break; @@ -15360,54 +15368,54 @@ public final WindowFrameContext windowFrame() throws RecognitionException { WindowFrameContext _localctx = new WindowFrameContext(_ctx, getState()); enterRule(_localctx, 188, RULE_windowFrame); try { - setState(2341); + setState(2343); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,307,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,308,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2325); + setState(2327); ((WindowFrameContext)_localctx).frameType = match(RANGE); - setState(2326); + setState(2328); ((WindowFrameContext)_localctx).start = frameBound(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2327); + setState(2329); ((WindowFrameContext)_localctx).frameType = match(ROWS); - setState(2328); + setState(2330); ((WindowFrameContext)_localctx).start = frameBound(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2329); + setState(2331); ((WindowFrameContext)_localctx).frameType = match(RANGE); - setState(2330); + setState(2332); match(BETWEEN); - setState(2331); + setState(2333); ((WindowFrameContext)_localctx).start = frameBound(); - setState(2332); + setState(2334); match(AND); - setState(2333); + setState(2335); ((WindowFrameContext)_localctx).end = frameBound(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2335); + setState(2337); ((WindowFrameContext)_localctx).frameType = match(ROWS); - setState(2336); + setState(2338); match(BETWEEN); - setState(2337); + setState(2339); ((WindowFrameContext)_localctx).start = frameBound(); - setState(2338); + setState(2340); match(AND); - setState(2339); + setState(2341); ((WindowFrameContext)_localctx).end = frameBound(); } break; @@ -15458,15 +15466,15 @@ public final FrameBoundContext frameBound() throws RecognitionException { enterRule(_localctx, 190, RULE_frameBound); int _la; try { - setState(2350); + setState(2352); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,308,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,309,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2343); + setState(2345); match(UNBOUNDED); - setState(2344); + setState(2346); ((FrameBoundContext)_localctx).boundType = _input.LT(1); _la = _input.LA(1); if ( !(_la==PRECEDING || _la==FOLLOWING) ) { @@ -15482,18 +15490,18 @@ public final FrameBoundContext frameBound() throws RecognitionException { case 2: enterOuterAlt(_localctx, 2); { - setState(2345); + setState(2347); ((FrameBoundContext)_localctx).boundType = match(CURRENT); - setState(2346); + setState(2348); match(ROW); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2347); + setState(2349); expression(); - setState(2348); + setState(2350); ((FrameBoundContext)_localctx).boundType = _input.LT(1); _la = _input.LA(1); if ( !(_la==PRECEDING || _la==FOLLOWING) ) { @@ -15552,25 +15560,25 @@ public final QualifiedNameContext qualifiedName() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(2352); + setState(2354); identifier(); - setState(2357); + setState(2359); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + _alt = getInterpreter().adaptivePredict(_input,310,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2353); + setState(2355); match(T__3); - setState(2354); + setState(2356); identifier(); } } } - setState(2359); + setState(2361); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + _alt = getInterpreter().adaptivePredict(_input,310,_ctx); } } } @@ -15626,7 +15634,7 @@ public final IdentifierContext identifier() throws RecognitionException { IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); enterRule(_localctx, 194, RULE_identifier); try { - setState(2375); + setState(2377); _errHandler.sync(this); switch (_input.LA(1)) { case SELECT: @@ -15829,105 +15837,105 @@ public final IdentifierContext identifier() throws RecognitionException { case BACKQUOTED_IDENTIFIER: enterOuterAlt(_localctx, 1); { - setState(2360); + setState(2362); strictIdentifier(); } break; case ANTI: enterOuterAlt(_localctx, 2); { - setState(2361); + setState(2363); match(ANTI); } break; case FULL: enterOuterAlt(_localctx, 3); { - setState(2362); + setState(2364); match(FULL); } break; case INNER: enterOuterAlt(_localctx, 4); { - setState(2363); + setState(2365); match(INNER); } break; case LEFT: enterOuterAlt(_localctx, 5); { - setState(2364); + setState(2366); match(LEFT); } break; case SEMI: enterOuterAlt(_localctx, 6); { - setState(2365); + setState(2367); match(SEMI); } break; case RIGHT: enterOuterAlt(_localctx, 7); { - setState(2366); + setState(2368); match(RIGHT); } break; case NATURAL: enterOuterAlt(_localctx, 8); { - setState(2367); + setState(2369); match(NATURAL); } break; case JOIN: enterOuterAlt(_localctx, 9); { - setState(2368); + setState(2370); match(JOIN); } break; case CROSS: enterOuterAlt(_localctx, 10); { - setState(2369); + setState(2371); match(CROSS); } break; case ON: enterOuterAlt(_localctx, 11); { - setState(2370); + setState(2372); match(ON); } break; case UNION: enterOuterAlt(_localctx, 12); { - setState(2371); + setState(2373); match(UNION); } break; case INTERSECT: enterOuterAlt(_localctx, 13); { - setState(2372); + setState(2374); match(INTERSECT); } break; case EXCEPT: enterOuterAlt(_localctx, 14); { - setState(2373); + setState(2375); match(EXCEPT); } break; case SETMINUS: enterOuterAlt(_localctx, 15); { - setState(2374); + setState(2376); match(SETMINUS); } break; @@ -16001,14 +16009,14 @@ public final StrictIdentifierContext strictIdentifier() throws RecognitionExcept StrictIdentifierContext _localctx = new StrictIdentifierContext(_ctx, getState()); enterRule(_localctx, 196, RULE_strictIdentifier); try { - setState(2380); + setState(2382); _errHandler.sync(this); switch (_input.LA(1)) { case IDENTIFIER: _localctx = new UnquotedIdentifierContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(2377); + setState(2379); match(IDENTIFIER); } break; @@ -16016,7 +16024,7 @@ public final StrictIdentifierContext strictIdentifier() throws RecognitionExcept _localctx = new QuotedIdentifierAlternativeContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(2378); + setState(2380); quotedIdentifier(); } break; @@ -16219,7 +16227,7 @@ public final StrictIdentifierContext strictIdentifier() throws RecognitionExcept _localctx = new UnquotedIdentifierContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(2379); + setState(2381); nonReserved(); } break; @@ -16265,7 +16273,7 @@ public final QuotedIdentifierContext quotedIdentifier() throws RecognitionExcept try { enterOuterAlt(_localctx, 1); { - setState(2382); + setState(2384); match(BACKQUOTED_IDENTIFIER); } } @@ -16423,24 +16431,24 @@ public final NumberContext number() throws RecognitionException { enterRule(_localctx, 200, RULE_number); int _la; try { - setState(2412); + setState(2414); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,319,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,320,_ctx) ) { case 1: _localctx = new DecimalLiteralContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(2385); + setState(2387); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2384); + setState(2386); match(MINUS); } } - setState(2387); + setState(2389); match(DECIMAL_VALUE); } break; @@ -16448,17 +16456,17 @@ public final NumberContext number() throws RecognitionException { _localctx = new IntegerLiteralContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(2389); + setState(2391); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2388); + setState(2390); match(MINUS); } } - setState(2391); + setState(2393); match(INTEGER_VALUE); } break; @@ -16466,17 +16474,17 @@ public final NumberContext number() throws RecognitionException { _localctx = new BigIntLiteralContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(2393); + setState(2395); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2392); + setState(2394); match(MINUS); } } - setState(2395); + setState(2397); match(BIGINT_LITERAL); } break; @@ -16484,17 +16492,17 @@ public final NumberContext number() throws RecognitionException { _localctx = new SmallIntLiteralContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(2397); + setState(2399); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2396); + setState(2398); match(MINUS); } } - setState(2399); + setState(2401); match(SMALLINT_LITERAL); } break; @@ -16502,17 +16510,17 @@ public final NumberContext number() throws RecognitionException { _localctx = new TinyIntLiteralContext(_localctx); enterOuterAlt(_localctx, 5); { - setState(2401); + setState(2403); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2400); + setState(2402); match(MINUS); } } - setState(2403); + setState(2405); match(TINYINT_LITERAL); } break; @@ -16520,17 +16528,17 @@ public final NumberContext number() throws RecognitionException { _localctx = new DoubleLiteralContext(_localctx); enterOuterAlt(_localctx, 6); { - setState(2405); + setState(2407); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2404); + setState(2406); match(MINUS); } } - setState(2407); + setState(2409); match(DOUBLE_LITERAL); } break; @@ -16538,17 +16546,17 @@ public final NumberContext number() throws RecognitionException { _localctx = new BigDecimalLiteralContext(_localctx); enterOuterAlt(_localctx, 7); { - setState(2409); + setState(2411); _errHandler.sync(this); _la = _input.LA(1); if (_la==MINUS) { { - setState(2408); + setState(2410); match(MINUS); } } - setState(2411); + setState(2413); match(BIGDECIMAL_LITERAL); } break; @@ -16788,7 +16796,7 @@ public final NonReservedContext nonReserved() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(2414); + setState(2416); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << SELECT) | (1L << FROM) | (1L << ADD) | (1L << AS) | (1L << ALL) | (1L << DISTINCT) | (1L << WHERE) | (1L << GROUP) | (1L << BY) | (1L << GROUPING) | (1L << SETS) | (1L << CUBE) | (1L << ROLLUP) | (1L << ORDER) | (1L << HAVING) | (1L << LIMIT) | (1L << AT) | (1L << OR) | (1L << AND) | (1L << IN) | (1L << NOT) | (1L << NO) | (1L << EXISTS) | (1L << BETWEEN) | (1L << LIKE) | (1L << RLIKE) | (1L << IS) | (1L << NULL) | (1L << TRUE) | (1L << FALSE) | (1L << NULLS) | (1L << ASC) | (1L << DESC) | (1L << FOR) | (1L << INTERVAL) | (1L << CASE) | (1L << WHEN) | (1L << THEN) | (1L << ELSE) | (1L << END) | (1L << OUTER) | (1L << LATERAL) | (1L << WINDOW) | (1L << OVER) | (1L << PARTITION))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (RANGE - 64)) | (1L << (ROWS - 64)) | (1L << (UNBOUNDED - 64)) | (1L << (PRECEDING - 64)) | (1L << (FOLLOWING - 64)) | (1L << (CURRENT - 64)) | (1L << (FIRST - 64)) | (1L << (AFTER - 64)) | (1L << (LAST - 64)) | (1L << (ROW - 64)) | (1L << (WITH - 64)) | (1L << (VALUES - 64)) | (1L << (CREATE - 64)) | (1L << (TABLE - 64)) | (1L << (DIRECTORY - 64)) | (1L << (VIEW - 64)) | (1L << (REPLACE - 64)) | (1L << (INSERT - 64)) | (1L << (DELETE - 64)) | (1L << (INTO - 64)) | (1L << (DESCRIBE - 64)) | (1L << (EXPLAIN - 64)) | (1L << (FORMAT - 64)) | (1L << (LOGICAL - 64)) | (1L << (CODEGEN - 64)) | (1L << (COST - 64)) | (1L << (CAST - 64)) | (1L << (SHOW - 64)) | (1L << (TABLES - 64)) | (1L << (COLUMNS - 64)) | (1L << (COLUMN - 64)) | (1L << (USE - 64)) | (1L << (PARTITIONS - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (DROP - 64)) | (1L << (TO - 64)) | (1L << (TABLESAMPLE - 64)) | (1L << (STRATIFY - 64)) | (1L << (ALTER - 64)) | (1L << (RENAME - 64)) | (1L << (ARRAY - 64)) | (1L << (MAP - 64)) | (1L << (STRUCT - 64)) | (1L << (COMMENT - 64)) | (1L << (SET - 64)) | (1L << (RESET - 64)) | (1L << (DATA - 64)) | (1L << (START - 64)) | (1L << (TRANSACTION - 64)) | (1L << (COMMIT - 64)) | (1L << (ROLLBACK - 64)) | (1L << (MACRO - 64)) | (1L << (IGNORE - 64)) | (1L << (BOTH - 64)) | (1L << (LEADING - 64)) | (1L << (TRAILING - 64)) | (1L << (MERGE - 64)) | (1L << (KILL - 64)) | (1L << (READ - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (IF - 129)) | (1L << (POSITION - 129)) | (1L << (DIV - 129)) | (1L << (PERCENTLIT - 129)) | (1L << (BUCKET - 129)) | (1L << (OUT - 129)) | (1L << (OF - 129)) | (1L << (SORT - 129)) | (1L << (CLUSTER - 129)) | (1L << (DISTRIBUTE - 129)) | (1L << (OVERWRITE - 129)) | (1L << (TRANSFORM - 129)) | (1L << (REDUCE - 129)) | (1L << (SERDE - 129)) | (1L << (SERDEPROPERTIES - 129)) | (1L << (RECORDREADER - 129)) | (1L << (RECORDWRITER - 129)) | (1L << (DELIMITED - 129)) | (1L << (FIELDS - 129)) | (1L << (TERMINATED - 129)) | (1L << (COLLECTION - 129)) | (1L << (ITEMS - 129)) | (1L << (KEYS - 129)) | (1L << (ESCAPED - 129)) | (1L << (LINES - 129)) | (1L << (SEPARATED - 129)) | (1L << (FUNCTION - 129)) | (1L << (EXTENDED - 129)) | (1L << (REFRESH - 129)) | (1L << (CLEAR - 129)) | (1L << (CACHE - 129)) | (1L << (UNCACHE - 129)) | (1L << (LAZY - 129)) | (1L << (FORMATTED - 129)) | (1L << (GLOBAL - 129)) | (1L << (TEMPORARY - 129)) | (1L << (OPTIONS - 129)) | (1L << (UNSET - 129)) | (1L << (TBLPROPERTIES - 129)) | (1L << (DBPROPERTIES - 129)) | (1L << (BUCKETS - 129)) | (1L << (SKEWED - 129)) | (1L << (STORED - 129)) | (1L << (DIRECTORIES - 129)) | (1L << (LOCATION - 129)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (EXCHANGE - 193)) | (1L << (ARCHIVE - 193)) | (1L << (UNARCHIVE - 193)) | (1L << (FILEFORMAT - 193)) | (1L << (TOUCH - 193)) | (1L << (COMPACT - 193)) | (1L << (CONCATENATE - 193)) | (1L << (CHANGE - 193)) | (1L << (CASCADE - 193)) | (1L << (RESTRICT - 193)) | (1L << (CLUSTERED - 193)) | (1L << (SORTED - 193)) | (1L << (PURGE - 193)) | (1L << (INPUTFORMAT - 193)) | (1L << (OUTPUTFORMAT - 193)) | (1L << (DATABASE - 193)) | (1L << (DATABASES - 193)) | (1L << (DFS - 193)) | (1L << (TRUNCATE - 193)) | (1L << (ANALYZE - 193)) | (1L << (COMPUTE - 193)) | (1L << (LIST - 193)) | (1L << (STATISTICS - 193)) | (1L << (PARTITIONED - 193)) | (1L << (EXTERNAL - 193)) | (1L << (DEFINED - 193)) | (1L << (REVOKE - 193)) | (1L << (GRANT - 193)) | (1L << (LOCK - 193)) | (1L << (UNLOCK - 193)) | (1L << (MSCK - 193)) | (1L << (REPAIR - 193)) | (1L << (RECOVER - 193)) | (1L << (EXPORT - 193)) | (1L << (IMPORT - 193)) | (1L << (LOAD - 193)) | (1L << (ROLE - 193)) | (1L << (ROLES - 193)) | (1L << (COMPACTIONS - 193)) | (1L << (PRINCIPALS - 193)) | (1L << (TRANSACTIONS - 193)) | (1L << (INDEX - 193)) | (1L << (INDEXES - 193)) | (1L << (LOCKS - 193)) | (1L << (OPTION - 193)) | (1L << (LOCAL - 193)) | (1L << (INPATH - 193)))) != 0)) ) { _errHandler.recoverInline(this); @@ -16869,7 +16877,7 @@ private boolean primaryExpression_sempred(PrimaryExpressionContext _localctx, in private static final int _serializedATNSegments = 2; private static final String _serializedATNSegment0 = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u0104\u0973\4\2\t"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u0104\u0975\4\2\t"+ "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -16944,918 +16952,920 @@ private boolean primaryExpression_sempred(PrimaryExpressionContext _localctx, in "\3\r\3\r\3\r\3\r\5\r\u0435\n\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\5"+ "\16\u043f\n\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\5\17"+ "\u044b\n\17\3\17\3\17\3\17\5\17\u0450\n\17\3\20\3\20\3\20\3\21\5\21\u0456"+ - "\n\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\5\22\u0462\n\22"+ - "\5\22\u0464\n\22\3\22\3\22\3\22\5\22\u0469\n\22\3\22\3\22\5\22\u046d\n"+ - "\22\3\22\3\22\3\22\5\22\u0472\n\22\3\22\3\22\3\22\5\22\u0477\n\22\3\22"+ - "\5\22\u047a\n\22\3\22\3\22\3\22\5\22\u047f\n\22\3\22\3\22\5\22\u0483\n"+ - "\22\3\22\3\22\3\22\5\22\u0488\n\22\5\22\u048a\n\22\3\23\3\23\5\23\u048e"+ - "\n\23\3\24\3\24\3\24\3\24\3\24\7\24\u0495\n\24\f\24\16\24\u0498\13\24"+ - "\3\24\3\24\3\25\3\25\3\25\5\25\u049f\n\25\3\26\3\26\3\26\3\26\3\26\5\26"+ - "\u04a6\n\26\3\27\3\27\3\27\7\27\u04ab\n\27\f\27\16\27\u04ae\13\27\3\30"+ - "\3\30\3\30\3\30\7\30\u04b4\n\30\f\30\16\30\u04b7\13\30\3\31\3\31\5\31"+ - "\u04bb\n\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\33\7\33"+ - "\u04c8\n\33\f\33\16\33\u04cb\13\33\3\33\3\33\3\34\3\34\5\34\u04d1\n\34"+ - "\3\34\5\34\u04d4\n\34\3\35\3\35\3\35\7\35\u04d9\n\35\f\35\16\35\u04dc"+ - "\13\35\3\35\5\35\u04df\n\35\3\36\3\36\3\36\3\36\5\36\u04e5\n\36\3\37\3"+ - "\37\3\37\3\37\7\37\u04eb\n\37\f\37\16\37\u04ee\13\37\3\37\3\37\3 \3 \3"+ - " \3 \7 \u04f6\n \f \16 \u04f9\13 \3 \3 \3!\3!\3!\3!\3!\3!\5!\u0503\n!"+ - "\3\"\3\"\3\"\3\"\3\"\5\"\u050a\n\"\3#\3#\3#\3#\5#\u0510\n#\3$\3$\3$\3"+ - "%\5%\u0516\n%\3%\3%\3%\3%\3%\6%\u051d\n%\r%\16%\u051e\5%\u0521\n%\3&\3"+ - "&\3&\3&\3&\7&\u0528\n&\f&\16&\u052b\13&\5&\u052d\n&\3&\3&\3&\3&\3&\7&"+ - "\u0534\n&\f&\16&\u0537\13&\5&\u0539\n&\3&\3&\3&\3&\3&\7&\u0540\n&\f&\16"+ - "&\u0543\13&\5&\u0545\n&\3&\3&\3&\3&\3&\7&\u054c\n&\f&\16&\u054f\13&\5"+ - "&\u0551\n&\3&\5&\u0554\n&\3&\3&\3&\5&\u0559\n&\5&\u055b\n&\3\'\5\'\u055e"+ - "\n\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\5(\u0569\n(\3(\7(\u056c\n(\f(\16(\u056f"+ - "\13(\3)\3)\3)\3)\3)\3)\3)\3)\5)\u0579\n)\3*\3*\5*\u057d\n*\3*\3*\5*\u0581"+ - "\n*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\5+\u058d\n+\3+\5+\u0590\n+\3+\3+\5+"+ - "\u0594\n+\3+\3+\3+\3+\3+\3+\3+\3+\5+\u059e\n+\3+\3+\5+\u05a2\n+\5+\u05a4"+ - "\n+\3+\5+\u05a7\n+\3+\3+\5+\u05ab\n+\3+\5+\u05ae\n+\3+\3+\5+\u05b2\n+"+ - "\3+\3+\7+\u05b6\n+\f+\16+\u05b9\13+\3+\5+\u05bc\n+\3+\3+\5+\u05c0\n+\3"+ - "+\3+\3+\5+\u05c5\n+\3+\5+\u05c8\n+\5+\u05ca\n+\3+\7+\u05cd\n+\f+\16+\u05d0"+ - "\13+\3+\3+\5+\u05d4\n+\3+\5+\u05d7\n+\3+\3+\5+\u05db\n+\3+\5+\u05de\n"+ - "+\5+\u05e0\n+\3,\3,\3,\5,\u05e5\n,\3,\7,\u05e8\n,\f,\16,\u05eb\13,\3,"+ - "\3,\3-\3-\3-\3-\3-\3-\7-\u05f5\n-\f-\16-\u05f8\13-\3-\3-\5-\u05fc\n-\3"+ - ".\3.\3.\3.\7.\u0602\n.\f.\16.\u0605\13.\3.\7.\u0608\n.\f.\16.\u060b\13"+ - ".\3/\3/\3/\3/\3/\7/\u0612\n/\f/\16/\u0615\13/\3/\3/\3/\3/\3/\3/\3/\3/"+ - "\3/\3/\7/\u0621\n/\f/\16/\u0624\13/\3/\3/\5/\u0628\n/\3\60\3\60\3\60\3"+ - "\60\7\60\u062e\n\60\f\60\16\60\u0631\13\60\5\60\u0633\n\60\3\60\3\60\5"+ - "\60\u0637\n\60\3\61\3\61\3\61\5\61\u063c\n\61\3\61\3\61\3\61\3\61\3\61"+ - "\7\61\u0643\n\61\f\61\16\61\u0646\13\61\5\61\u0648\n\61\3\61\3\61\3\61"+ - "\5\61\u064d\n\61\3\61\3\61\3\61\7\61\u0652\n\61\f\61\16\61\u0655\13\61"+ - "\5\61\u0657\n\61\3\62\3\62\3\63\3\63\7\63\u065d\n\63\f\63\16\63\u0660"+ - "\13\63\3\64\3\64\3\64\3\64\5\64\u0666\n\64\3\64\3\64\3\64\3\64\3\64\5"+ - "\64\u066d\n\64\3\65\5\65\u0670\n\65\3\65\3\65\3\65\5\65\u0675\n\65\3\65"+ - "\3\65\3\65\3\65\5\65\u067b\n\65\3\65\3\65\5\65\u067f\n\65\3\65\5\65\u0682"+ - "\n\65\3\65\5\65\u0685\n\65\3\66\3\66\3\66\3\66\3\66\3\66\3\66\7\66\u068e"+ - "\n\66\f\66\16\66\u0691\13\66\3\66\3\66\5\66\u0695\n\66\3\67\3\67\3\67"+ - "\5\67\u069a\n\67\3\67\3\67\38\58\u069f\n8\38\38\38\38\38\38\38\38\38\3"+ - "8\38\38\38\38\38\38\58\u06b1\n8\58\u06b3\n8\38\58\u06b6\n8\39\39\39\3"+ - "9\3:\3:\3:\7:\u06bf\n:\f:\16:\u06c2\13:\3;\3;\3;\3;\7;\u06c8\n;\f;\16"+ - ";\u06cb\13;\3;\3;\3<\3<\5<\u06d1\n<\3=\3=\3=\3=\7=\u06d7\n=\f=\16=\u06da"+ - "\13=\3=\3=\3>\3>\3>\5>\u06e1\n>\3?\3?\5?\u06e5\n?\3?\3?\3?\3?\3?\3?\5"+ - "?\u06ed\n?\3?\3?\3?\3?\3?\3?\5?\u06f5\n?\3?\3?\3?\3?\5?\u06fb\n?\3@\3"+ - "@\3@\3@\7@\u0701\n@\f@\16@\u0704\13@\3@\3@\3A\3A\3A\3A\3A\7A\u070d\nA"+ - "\fA\16A\u0710\13A\5A\u0712\nA\3A\3A\3A\3B\5B\u0718\nB\3B\3B\5B\u071c\n"+ - "B\5B\u071e\nB\3C\3C\3C\3C\3C\3C\3C\5C\u0727\nC\3C\3C\3C\3C\3C\3C\3C\3"+ - "C\3C\3C\5C\u0733\nC\5C\u0735\nC\3C\3C\3C\3C\3C\5C\u073c\nC\3C\3C\3C\3"+ - "C\3C\5C\u0743\nC\3C\3C\3C\3C\5C\u0749\nC\3C\3C\3C\3C\5C\u074f\nC\5C\u0751"+ - "\nC\3D\3D\3D\5D\u0756\nD\3D\3D\3E\3E\3E\5E\u075d\nE\3E\3E\3F\3F\5F\u0763"+ - "\nF\3F\3F\5F\u0767\nF\5F\u0769\nF\3G\3G\3G\7G\u076e\nG\fG\16G\u0771\13"+ - "G\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3I\5I\u077e\nI\3I\3I\3I\3I\3I\3I\7I\u0786"+ - "\nI\fI\16I\u0789\13I\3J\3J\5J\u078d\nJ\3K\5K\u0790\nK\3K\3K\3K\3K\3K\3"+ - "K\5K\u0798\nK\3K\3K\3K\3K\3K\7K\u079f\nK\fK\16K\u07a2\13K\3K\3K\3K\5K"+ - "\u07a7\nK\3K\3K\3K\3K\3K\3K\5K\u07af\nK\3K\3K\3K\3K\5K\u07b5\nK\3K\3K"+ - "\3K\5K\u07ba\nK\3K\3K\3K\5K\u07bf\nK\3L\3L\3L\3L\5L\u07c5\nL\3L\3L\3L"+ - "\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\7L\u07da\nL\fL\16L\u07dd"+ - "\13L\3M\3M\3M\6M\u07e2\nM\rM\16M\u07e3\3M\3M\5M\u07e8\nM\3M\3M\3M\3M\3"+ - "M\6M\u07ef\nM\rM\16M\u07f0\3M\3M\5M\u07f5\nM\3M\3M\3M\3M\3M\3M\3M\3M\3"+ - "M\3M\3M\3M\3M\3M\7M\u0805\nM\fM\16M\u0808\13M\5M\u080a\nM\3M\3M\3M\3M"+ - "\3M\3M\5M\u0812\nM\3M\3M\3M\3M\3M\3M\3M\5M\u081b\nM\3M\3M\3M\3M\3M\3M"+ - "\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\6M\u0830\nM\rM\16M\u0831\3M\3"+ - "M\3M\3M\3M\3M\3M\3M\3M\5M\u083d\nM\3M\3M\3M\7M\u0842\nM\fM\16M\u0845\13"+ - "M\5M\u0847\nM\3M\3M\3M\5M\u084c\nM\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3"+ - "M\3M\5M\u085b\nM\3M\3M\3M\3M\3M\3M\3M\3M\7M\u0865\nM\fM\16M\u0868\13M"+ - "\3N\3N\3N\3N\3N\3N\3N\3N\6N\u0872\nN\rN\16N\u0873\5N\u0876\nN\3O\3O\3"+ - "P\3P\3Q\3Q\3R\3R\3S\3S\7S\u0882\nS\fS\16S\u0885\13S\3T\3T\3T\3T\5T\u088b"+ - "\nT\3U\5U\u088e\nU\3U\3U\5U\u0892\nU\3V\3V\3V\5V\u0897\nV\3W\3W\3W\3W"+ - "\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\5W\u08a8\nW\3W\3W\5W\u08ac\nW\3W\3W"+ - "\3W\3W\3W\7W\u08b3\nW\fW\16W\u08b6\13W\3W\5W\u08b9\nW\5W\u08bb\nW\3X\3"+ - "X\3X\7X\u08c0\nX\fX\16X\u08c3\13X\3Y\3Y\3Y\3Y\5Y\u08c9\nY\3Z\3Z\3Z\7Z"+ - "\u08ce\nZ\fZ\16Z\u08d1\13Z\3[\3[\3[\3[\3[\5[\u08d8\n[\3\\\3\\\3\\\3\\"+ - "\3\\\3]\3]\3]\3]\7]\u08e3\n]\f]\16]\u08e6\13]\3^\3^\3^\3^\3_\3_\3_\3_"+ - "\3_\3_\3_\7_\u08f3\n_\f_\16_\u08f6\13_\3_\3_\3_\3_\3_\7_\u08fd\n_\f_\16"+ - "_\u0900\13_\5_\u0902\n_\3_\3_\3_\3_\3_\7_\u0909\n_\f_\16_\u090c\13_\5"+ - "_\u090e\n_\5_\u0910\n_\3_\5_\u0913\n_\3_\5_\u0916\n_\3`\3`\3`\3`\3`\3"+ - "`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\5`\u0928\n`\3a\3a\3a\3a\3a\3a\3a\5a\u0931"+ - "\na\3b\3b\3b\7b\u0936\nb\fb\16b\u0939\13b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3"+ - "c\3c\3c\3c\3c\3c\5c\u094a\nc\3d\3d\3d\5d\u094f\nd\3e\3e\3f\5f\u0954\n"+ - "f\3f\3f\5f\u0958\nf\3f\3f\5f\u095c\nf\3f\3f\5f\u0960\nf\3f\3f\5f\u0964"+ - "\nf\3f\3f\5f\u0968\nf\3f\3f\5f\u096c\nf\3f\5f\u096f\nf\3g\3g\3g\7\u02f1"+ - "\u031a\u0322\u0329\u0366\6N\u0090\u0096\u0098h\2\4\6\b\n\f\16\20\22\24"+ - "\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtv"+ - "xz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094"+ - "\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac"+ - "\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4"+ - "\u00c6\u00c8\u00ca\u00cc\2\35\3\2\u00cb\u00cc\4\2OOQQ\5\2Y[\u00b1\u00b1"+ - "\u00b7\u00b7\4\2\r\r\37\37\4\2,,VV\4\2\u00b1\u00b1\u00b7\u00b7\4\2\16"+ - "\16\u00d8\u00d8\4\2UU\u009f\u009f\3\2eh\3\2+,\4\2HHJJ\3\2\20\21\3\2\u00f9"+ - "\u00fa\3\2$%\4\2\u008d\u008e\u0093\u0093\3\2\u008f\u0092\4\2\u008d\u008e"+ - "\u0096\u0096\3\2|~\3\2\u0085\u008c\3\2\u008d\u0097\3\2\35 \3\2()\3\2\u008d"+ - "\u008e\4\2AA\u009e\u009e\4\2\31\31\u009c\u009c\3\2EF\f\2\f\63\66\66>d"+ - "iqs\u0081\u0083\u0084\u0092\u0092\u0098\u00a1\u00a3\u00ef\u00f1\u00f2"+ - "\2\u0b08\2\u00ce\3\2\2\2\4\u00d1\3\2\2\2\6\u00d4\3\2\2\2\b\u00d7\3\2\2"+ - "\2\n\u00da\3\2\2\2\f\u00dd\3\2\2\2\16\u0369\3\2\2\2\20\u036b\3\2\2\2\22"+ - "\u036d\3\2\2\2\24\u0379\3\2\2\2\26\u0427\3\2\2\2\30\u0429\3\2\2\2\32\u0438"+ - "\3\2\2\2\34\u0444\3\2\2\2\36\u0451\3\2\2\2 \u0455\3\2\2\2\"\u0489\3\2"+ - "\2\2$\u048b\3\2\2\2&\u048f\3\2\2\2(\u049b\3\2\2\2*\u04a5\3\2\2\2,\u04a7"+ - "\3\2\2\2.\u04af\3\2\2\2\60\u04b8\3\2\2\2\62\u04c0\3\2\2\2\64\u04c3\3\2"+ - "\2\2\66\u04ce\3\2\2\28\u04de\3\2\2\2:\u04e4\3\2\2\2<\u04e6\3\2\2\2>\u04f1"+ - "\3\2\2\2@\u0502\3\2\2\2B\u0509\3\2\2\2D\u050b\3\2\2\2F\u0511\3\2\2\2H"+ - "\u0520\3\2\2\2J\u052c\3\2\2\2L\u055d\3\2\2\2N\u0562\3\2\2\2P\u0578\3\2"+ - "\2\2R\u057a\3\2\2\2T\u05df\3\2\2\2V\u05e1\3\2\2\2X\u05fb\3\2\2\2Z\u05fd"+ - "\3\2\2\2\\\u060c\3\2\2\2^\u0636\3\2\2\2`\u0638\3\2\2\2b\u0658\3\2\2\2"+ - "d\u065a\3\2\2\2f\u066c\3\2\2\2h\u0684\3\2\2\2j\u0694\3\2\2\2l\u0696\3"+ - "\2\2\2n\u06b5\3\2\2\2p\u06b7\3\2\2\2r\u06bb\3\2\2\2t\u06c3\3\2\2\2v\u06ce"+ - "\3\2\2\2x\u06d2\3\2\2\2z\u06dd\3\2\2\2|\u06fa\3\2\2\2~\u06fc\3\2\2\2\u0080"+ - "\u0707\3\2\2\2\u0082\u071d\3\2\2\2\u0084\u0750\3\2\2\2\u0086\u0755\3\2"+ - "\2\2\u0088\u075c\3\2\2\2\u008a\u0760\3\2\2\2\u008c\u076a\3\2\2\2\u008e"+ - "\u0772\3\2\2\2\u0090\u077d\3\2\2\2\u0092\u078a\3\2\2\2\u0094\u07be\3\2"+ - "\2\2\u0096\u07c4\3\2\2\2\u0098\u085a\3\2\2\2\u009a\u0875\3\2\2\2\u009c"+ - "\u0877\3\2\2\2\u009e\u0879\3\2\2\2\u00a0\u087b\3\2\2\2\u00a2\u087d\3\2"+ - "\2\2\u00a4\u087f\3\2\2\2\u00a6\u0886\3\2\2\2\u00a8\u0891\3\2\2\2\u00aa"+ - "\u0896\3\2\2\2\u00ac\u08ba\3\2\2\2\u00ae\u08bc\3\2\2\2\u00b0\u08c4\3\2"+ - "\2\2\u00b2\u08ca\3\2\2\2\u00b4\u08d2\3\2\2\2\u00b6\u08d9\3\2\2\2\u00b8"+ - "\u08de\3\2\2\2\u00ba\u08e7\3\2\2\2\u00bc\u0915\3\2\2\2\u00be\u0927\3\2"+ - "\2\2\u00c0\u0930\3\2\2\2\u00c2\u0932\3\2\2\2\u00c4\u0949\3\2\2\2\u00c6"+ - "\u094e\3\2\2\2\u00c8\u0950\3\2\2\2\u00ca\u096e\3\2\2\2\u00cc\u0970\3\2"+ - "\2\2\u00ce\u00cf\5\16\b\2\u00cf\u00d0\7\2\2\3\u00d0\3\3\2\2\2\u00d1\u00d2"+ - "\5\u008aF\2\u00d2\u00d3\7\2\2\3\u00d3\5\3\2\2\2\u00d4\u00d5\5\u0086D\2"+ - "\u00d5\u00d6\7\2\2\3\u00d6\7\3\2\2\2\u00d7\u00d8\5\u0088E\2\u00d8\u00d9"+ - "\7\2\2\3\u00d9\t\3\2\2\2\u00da\u00db\5\u00acW\2\u00db\u00dc\7\2\2\3\u00dc"+ - "\13\3\2\2\2\u00dd\u00de\5\u00aeX\2\u00de\u00df\7\2\2\3\u00df\r\3\2\2\2"+ - "\u00e0\u036a\5 \21\2\u00e1\u00e2\7a\2\2\u00e2\u036a\5\u00c4c\2\u00e3\u00e4"+ - "\7N\2\2\u00e4\u00e8\7\u00d2\2\2\u00e5\u00e6\7\u0083\2\2\u00e6\u00e7\7"+ - " \2\2\u00e7\u00e9\7\"\2\2\u00e8\u00e5\3\2\2\2\u00e8\u00e9\3\2\2\2\u00e9"+ - "\u00ea\3\2\2\2\u00ea\u00ed\5\u00c4c\2\u00eb\u00ec\7q\2\2\u00ec\u00ee\7"+ - "\u00f5\2\2\u00ed\u00eb\3\2\2\2\u00ed\u00ee\3\2\2\2\u00ee\u00f0\3\2\2\2"+ - "\u00ef\u00f1\5\36\20\2\u00f0\u00ef\3\2\2\2\u00f0\u00f1\3\2\2\2\u00f1\u00f5"+ - "\3\2\2\2\u00f2\u00f3\7L\2\2\u00f3\u00f4\7\u00bd\2\2\u00f4\u00f6\5\64\33"+ - "\2\u00f5\u00f2\3\2\2\2\u00f5\u00f6\3\2\2\2\u00f6\u036a\3\2\2\2\u00f7\u00f8"+ - "\7l\2\2\u00f8\u00f9\7\u00d2\2\2\u00f9\u00fa\5\u00c4c\2\u00fa\u00fb\7s"+ - "\2\2\u00fb\u00fc\7\u00bd\2\2\u00fc\u00fd\5\64\33\2\u00fd\u036a\3\2\2\2"+ - "\u00fe\u00ff\7d\2\2\u00ff\u0102\7\u00d2\2\2\u0100\u0101\7\u0083\2\2\u0101"+ - "\u0103\7\"\2\2\u0102\u0100\3\2\2\2\u0102\u0103\3\2\2\2\u0103\u0104\3\2"+ - "\2\2\u0104\u0106\5\u00c4c\2\u0105\u0107\t\2\2\2\u0106\u0105\3\2\2\2\u0106"+ - "\u0107\3\2\2\2\u0107\u036a\3\2\2\2\u0108\u010d\5\30\r\2\u0109\u010a\7"+ - "\3\2\2\u010a\u010b\5\u00aeX\2\u010b\u010c\7\4\2\2\u010c\u010e\3\2\2\2"+ - "\u010d\u0109\3\2\2\2\u010d\u010e\3\2\2\2\u010e\u010f\3\2\2\2\u010f\u011d"+ - "\5\62\32\2\u0110\u0111\7\u00ba\2\2\u0111\u011c\5\64\33\2\u0112\u0113\7"+ - "\u00da\2\2\u0113\u0114\7\24\2\2\u0114\u011c\5p9\2\u0115\u011c\5\32\16"+ - "\2\u0116\u011c\5\36\20\2\u0117\u0118\7q\2\2\u0118\u011c\7\u00f5\2\2\u0119"+ - "\u011a\7\u00bc\2\2\u011a\u011c\5\64\33\2\u011b\u0110\3\2\2\2\u011b\u0112"+ - "\3\2\2\2\u011b\u0115\3\2\2\2\u011b\u0116\3\2\2\2\u011b\u0117\3\2\2\2\u011b"+ - "\u0119\3\2\2\2\u011c\u011f\3\2\2\2\u011d\u011b\3\2\2\2\u011d\u011e\3\2"+ - "\2\2\u011e\u0122\3\2\2\2\u011f\u011d\3\2\2\2\u0120\u0121\7r\2\2\u0121"+ - "\u0123\7\u00f9\2\2\u0122\u0120\3\2\2\2\u0122\u0123\3\2\2\2\u0123\u0128"+ - "\3\2\2\2\u0124\u0126\7\17\2\2\u0125\u0124\3\2\2\2\u0125\u0126\3\2\2\2"+ - "\u0126\u0127\3\2\2\2\u0127\u0129\5 \21\2\u0128\u0125\3\2\2\2\u0128\u0129"+ - "\3\2\2\2\u0129\u036a\3\2\2\2\u012a\u012f\5\30\r\2\u012b\u012c\7\3\2\2"+ - "\u012c\u012d\5\u00aeX\2\u012d\u012e\7\4\2\2\u012e\u0130\3\2\2\2\u012f"+ - "\u012b\3\2\2\2\u012f\u0130\3\2\2\2\u0130\u0142\3\2\2\2\u0131\u0132\7q"+ - "\2\2\u0132\u0141\7\u00f5\2\2\u0133\u0134\7\u00da\2\2\u0134\u0135\7\24"+ - "\2\2\u0135\u0136\7\3\2\2\u0136\u0137\5\u00aeX\2\u0137\u0138\7\4\2\2\u0138"+ - "\u0141\3\2\2\2\u0139\u0141\5\32\16\2\u013a\u0141\5\34\17\2\u013b\u0141"+ - "\5\u0084C\2\u013c\u0141\5@!\2\u013d\u0141\5\36\20\2\u013e\u013f\7\u00bc"+ - "\2\2\u013f\u0141\5\64\33\2\u0140\u0131\3\2\2\2\u0140\u0133\3\2\2\2\u0140"+ - "\u0139\3\2\2\2\u0140\u013a\3\2\2\2\u0140\u013b\3\2\2\2\u0140\u013c\3\2"+ - "\2\2\u0140\u013d\3\2\2\2\u0140\u013e\3\2\2\2\u0141\u0144\3\2\2\2\u0142"+ - "\u0140\3\2\2\2\u0142\u0143\3\2\2\2\u0143\u0147\3\2\2\2\u0144\u0142\3\2"+ - "\2\2\u0145\u0146\7r\2\2\u0146\u0148\7\u00f9\2\2\u0147\u0145\3\2\2\2\u0147"+ - "\u0148\3\2\2\2\u0148\u014d\3\2\2\2\u0149\u014b\7\17\2\2\u014a\u0149\3"+ - "\2\2\2\u014a\u014b\3\2\2\2\u014b\u014c\3\2\2\2\u014c\u014e\5 \21\2\u014d"+ - "\u014a\3\2\2\2\u014d\u014e\3\2\2\2\u014e\u036a\3\2\2\2\u014f\u0150\7N"+ - "\2\2\u0150\u0154\7O\2\2\u0151\u0152\7\u0083\2\2\u0152\u0153\7 \2\2\u0153"+ - "\u0155\7\"\2\2\u0154\u0151\3\2\2\2\u0154\u0155\3\2\2\2\u0155\u0156\3\2"+ - "\2\2\u0156\u0157\5\u0086D\2\u0157\u0158\7$\2\2\u0158\u015a\5\u0086D\2"+ - "\u0159\u015b\5\36\20\2\u015a\u0159\3\2\2\2\u015a\u015b\3\2\2\2\u015b\u036a"+ - "\3\2\2\2\u015c\u015d\7\u00d6\2\2\u015d\u015e\7O\2\2\u015e\u0160\5\u0086"+ - "D\2\u015f\u0161\5&\24\2\u0160\u015f\3\2\2\2\u0160\u0161\3\2\2\2\u0161"+ - "\u0162\3\2\2\2\u0162\u0163\7\u00d7\2\2\u0163\u0168\7\u00d9\2\2\u0164\u0169"+ - "\5\u00c4c\2\u0165\u0166\7-\2\2\u0166\u0167\7_\2\2\u0167\u0169\5r:\2\u0168"+ - "\u0164\3\2\2\2\u0168\u0165\3\2\2\2\u0168\u0169\3\2\2\2\u0169\u036a\3\2"+ - "\2\2\u016a\u016b\7l\2\2\u016b\u016c\7O\2\2\u016c\u016d\5\u0086D\2\u016d"+ - "\u016e\7\16\2\2\u016e\u016f\7_\2\2\u016f\u0170\7\3\2\2\u0170\u0171\5\u00ae"+ - "X\2\u0171\u0172\7\4\2\2\u0172\u036a\3\2\2\2\u0173\u0174\7l\2\2\u0174\u0175"+ - "\t\3\2\2\u0175\u0176\5\u0086D\2\u0176\u0177\7m\2\2\u0177\u0178\7i\2\2"+ - "\u0178\u0179\5\u0086D\2\u0179\u036a\3\2\2\2\u017a\u017b\7l\2\2\u017b\u017c"+ - "\t\3\2\2\u017c\u017d\5\u0086D\2\u017d\u017e\7s\2\2\u017e\u017f\7\u00bc"+ - "\2\2\u017f\u0180\5\64\33\2\u0180\u036a\3\2\2\2\u0181\u0182\7l\2\2\u0182"+ - "\u0183\t\3\2\2\u0183\u0184\5\u0086D\2\u0184\u0185\7\u00bb\2\2\u0185\u0188"+ - "\7\u00bc\2\2\u0186\u0187\7\u0083\2\2\u0187\u0189\7\"\2\2\u0188\u0186\3"+ - "\2\2\2\u0188\u0189\3\2\2\2\u0189\u018a\3\2\2\2\u018a\u018b\5\64\33\2\u018b"+ - "\u036a\3\2\2\2\u018c\u018d\7l\2\2\u018d\u018e\7O\2\2\u018e\u0190\5\u0086"+ - "D\2\u018f\u0191\5&\24\2\u0190\u018f\3\2\2\2\u0190\u0191\3\2\2\2\u0191"+ - "\u0192\3\2\2\2\u0192\u0194\7\u00ca\2\2\u0193\u0195\7`\2\2\u0194\u0193"+ - "\3\2\2\2\u0194\u0195\3\2\2\2\u0195\u0196\3\2\2\2\u0196\u0197\5\u00c4c"+ - "\2\u0197\u0199\5\u00b0Y\2\u0198\u019a\5\u00aaV\2\u0199\u0198\3\2\2\2\u0199"+ - "\u019a\3\2\2\2\u019a\u036a\3\2\2\2\u019b\u019c\7l\2\2\u019c\u019d\7O\2"+ - "\2\u019d\u019f\5\u0086D\2\u019e\u01a0\5&\24\2\u019f\u019e\3\2\2\2\u019f"+ - "\u01a0\3\2\2\2\u01a0\u01a1\3\2\2\2\u01a1\u01a2\7s\2\2\u01a2\u01a3\7\u00a3"+ - "\2\2\u01a3\u01a7\7\u00f5\2\2\u01a4\u01a5\7L\2\2\u01a5\u01a6\7\u00a4\2"+ - "\2\u01a6\u01a8\5\64\33\2\u01a7\u01a4\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8"+ - "\u036a\3\2\2\2\u01a9\u01aa\7l\2\2\u01aa\u01ab\7O\2\2\u01ab\u01ad\5\u0086"+ - "D\2\u01ac\u01ae\5&\24\2\u01ad\u01ac\3\2\2\2\u01ad\u01ae\3\2\2\2\u01ae"+ - "\u01af\3\2\2\2\u01af\u01b0\7s\2\2\u01b0\u01b1\7\u00a4\2\2\u01b1\u01b2"+ - "\5\64\33\2\u01b2\u036a\3\2\2\2\u01b3\u01b4\7l\2\2\u01b4\u01b5\7O\2\2\u01b5"+ - "\u01b6\5\u0086D\2\u01b6\u01ba\7\16\2\2\u01b7\u01b8\7\u0083\2\2\u01b8\u01b9"+ - "\7 \2\2\u01b9\u01bb\7\"\2\2\u01ba\u01b7\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bb"+ - "\u01bd\3\2\2\2\u01bc\u01be\5$\23\2\u01bd\u01bc\3\2\2\2\u01be\u01bf\3\2"+ - "\2\2\u01bf\u01bd\3\2\2\2\u01bf\u01c0\3\2\2\2\u01c0\u036a\3\2\2\2\u01c1"+ - "\u01c2\7l\2\2\u01c2\u01c3\7Q\2\2\u01c3\u01c4\5\u0086D\2\u01c4\u01c8\7"+ - "\16\2\2\u01c5\u01c6\7\u0083\2\2\u01c6\u01c7\7 \2\2\u01c7\u01c9\7\"\2\2"+ - "\u01c8\u01c5\3\2\2\2\u01c8\u01c9\3\2\2\2\u01c9\u01cb\3\2\2\2\u01ca\u01cc"+ - "\5&\24\2\u01cb\u01ca\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd\u01cb\3\2\2\2\u01cd"+ - "\u01ce\3\2\2\2\u01ce\u036a\3\2\2\2\u01cf\u01d0\7l\2\2\u01d0\u01d1\7O\2"+ - "\2\u01d1\u01d2\5\u0086D\2\u01d2\u01d3\5&\24\2\u01d3\u01d4\7m\2\2\u01d4"+ - "\u01d5\7i\2\2\u01d5\u01d6\5&\24\2\u01d6\u036a\3\2\2\2\u01d7\u01d8\7l\2"+ - "\2\u01d8\u01d9\7O\2\2\u01d9\u01da\5\u0086D\2\u01da\u01dd\7d\2\2\u01db"+ - "\u01dc\7\u0083\2\2\u01dc\u01de\7\"\2\2\u01dd\u01db\3\2\2\2\u01dd\u01de"+ - "\3\2\2\2\u01de\u01df\3\2\2\2\u01df\u01e4\5&\24\2\u01e0\u01e1\7\5\2\2\u01e1"+ - "\u01e3\5&\24\2\u01e2\u01e0\3\2\2\2\u01e3\u01e6\3\2\2\2\u01e4\u01e2\3\2"+ - "\2\2\u01e4\u01e5\3\2\2\2\u01e5\u01e8\3\2\2\2\u01e6\u01e4\3\2\2\2\u01e7"+ - "\u01e9\7\u00cf\2\2\u01e8\u01e7\3\2\2\2\u01e8\u01e9\3\2\2\2\u01e9\u036a"+ - "\3\2\2\2\u01ea\u01eb\7l\2\2\u01eb\u01ec\7Q\2\2\u01ec\u01ed\5\u0086D\2"+ - "\u01ed\u01f0\7d\2\2\u01ee\u01ef\7\u0083\2\2\u01ef\u01f1\7\"\2\2\u01f0"+ - "\u01ee\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f2\3\2\2\2\u01f2\u01f7\5&"+ - "\24\2\u01f3\u01f4\7\5\2\2\u01f4\u01f6\5&\24\2\u01f5\u01f3\3\2\2\2\u01f6"+ - "\u01f9\3\2\2\2\u01f7\u01f5\3\2\2\2\u01f7\u01f8\3\2\2\2\u01f8\u036a\3\2"+ - "\2\2\u01f9\u01f7\3\2\2\2\u01fa\u01fb\7l\2\2\u01fb\u01fc\7O\2\2\u01fc\u01fe"+ - "\5\u0086D\2\u01fd\u01ff\5&\24\2\u01fe\u01fd\3\2\2\2\u01fe\u01ff\3\2\2"+ - "\2\u01ff\u0200\3\2\2\2\u0200\u0201\7s\2\2\u0201\u0202\5\36\20\2\u0202"+ - "\u036a\3\2\2\2\u0203\u0204\7l\2\2\u0204\u0205\7O\2\2\u0205\u0206\5\u0086"+ - "D\2\u0206\u0207\7\u00e3\2\2\u0207\u0208\7b\2\2\u0208\u036a\3\2\2\2\u0209"+ - "\u020a\7d\2\2\u020a\u020d\7O\2\2\u020b\u020c\7\u0083\2\2\u020c\u020e\7"+ - "\"\2\2\u020d\u020b\3\2\2\2\u020d\u020e\3\2\2\2\u020e\u020f\3\2\2\2\u020f"+ - "\u0211\5\u0086D\2\u0210\u0212\7\u00cf\2\2\u0211\u0210\3\2\2\2\u0211\u0212"+ - "\3\2\2\2\u0212\u036a\3\2\2\2\u0213\u0214\7d\2\2\u0214\u0217\7Q\2\2\u0215"+ - "\u0216\7\u0083\2\2\u0216\u0218\7\"\2\2\u0217\u0215\3\2\2\2\u0217\u0218"+ - "\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u036a\5\u0086D\2\u021a\u021d\7N\2\2"+ - "\u021b\u021c\7\35\2\2\u021c\u021e\7R\2\2\u021d\u021b\3\2\2\2\u021d\u021e"+ - "\3\2\2\2\u021e\u0223\3\2\2\2\u021f\u0221\7\u00b8\2\2\u0220\u021f\3\2\2"+ - "\2\u0220\u0221\3\2\2\2\u0221\u0222\3\2\2\2\u0222\u0224\7\u00b9\2\2\u0223"+ - "\u0220\3\2\2\2\u0223\u0224\3\2\2\2\u0224\u0225\3\2\2\2\u0225\u0229\7Q"+ - "\2\2\u0226\u0227\7\u0083\2\2\u0227\u0228\7 \2\2\u0228\u022a\7\"\2\2\u0229"+ - "\u0226\3\2\2\2\u0229\u022a\3\2\2\2\u022a\u022b\3\2\2\2\u022b\u022d\5\u0086"+ - "D\2\u022c\u022e\5x=\2\u022d\u022c\3\2\2\2\u022d\u022e\3\2\2\2\u022e\u0231"+ - "\3\2\2\2\u022f\u0230\7q\2\2\u0230\u0232\7\u00f5\2\2\u0231\u022f\3\2\2"+ - "\2\u0231\u0232\3\2\2\2\u0232\u0236\3\2\2\2\u0233\u0234\7\u00da\2\2\u0234"+ - "\u0235\7=\2\2\u0235\u0237\5p9\2\u0236\u0233\3\2\2\2\u0236\u0237\3\2\2"+ - "\2\u0237\u023a\3\2\2\2\u0238\u0239\7\u00bc\2\2\u0239\u023b\5\64\33\2\u023a"+ - "\u0238\3\2\2\2\u023a\u023b\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023d\7\17"+ - "\2\2\u023d\u023e\5 \21\2\u023e\u036a\3\2\2\2\u023f\u0242\7N\2\2\u0240"+ - "\u0241\7\35\2\2\u0241\u0243\7R\2\2\u0242\u0240\3\2\2\2\u0242\u0243\3\2"+ - "\2\2\u0243\u0245\3\2\2\2\u0244\u0246\7\u00b8\2\2\u0245\u0244\3\2\2\2\u0245"+ - "\u0246\3\2\2\2\u0246\u0247\3\2\2\2\u0247\u0248\7\u00b9\2\2\u0248\u0249"+ - "\7Q\2\2\u0249\u024e\5\u0086D\2\u024a\u024b\7\3\2\2\u024b\u024c\5\u00ae"+ - "X\2\u024c\u024d\7\4\2\2\u024d\u024f\3\2\2\2\u024e\u024a\3\2\2\2\u024e"+ - "\u024f\3\2\2\2\u024f\u0250\3\2\2\2\u0250\u0253\5\62\32\2\u0251\u0252\7"+ - "\u00ba\2\2\u0252\u0254\5\64\33\2\u0253\u0251\3\2\2\2\u0253\u0254\3\2\2"+ - "\2\u0254\u036a\3\2\2\2\u0255\u0256\7l\2\2\u0256\u0257\7Q\2\2\u0257\u0259"+ - "\5\u0086D\2\u0258\u025a\7\17\2\2\u0259\u0258\3\2\2\2\u0259\u025a\3\2\2"+ - "\2\u025a\u025b\3\2\2\2\u025b\u025c\5 \21\2\u025c\u036a\3\2\2\2\u025d\u0260"+ - "\7N\2\2\u025e\u025f\7\35\2\2\u025f\u0261\7R\2\2\u0260\u025e\3\2\2\2\u0260"+ - "\u0261\3\2\2\2\u0261\u0263\3\2\2\2\u0262\u0264\7\u00b9\2\2\u0263\u0262"+ - "\3\2\2\2\u0263\u0264\3\2\2\2\u0264\u0265\3\2\2\2\u0265\u0269\7\u00b0\2"+ - "\2\u0266\u0267\7\u0083\2\2\u0267\u0268\7 \2\2\u0268\u026a\7\"\2\2\u0269"+ - "\u0266\3\2\2\2\u0269\u026a\3\2\2\2\u026a\u026b\3\2\2\2\u026b\u026c\5\u00c2"+ - "b\2\u026c\u026d\7\17\2\2\u026d\u0277\7\u00f5\2\2\u026e\u026f\7\u00a2\2"+ - "\2\u026f\u0274\5F$\2\u0270\u0271\7\5\2\2\u0271\u0273\5F$\2\u0272\u0270"+ - "\3\2\2\2\u0273\u0276\3\2\2\2\u0274\u0272\3\2\2\2\u0274\u0275\3\2\2\2\u0275"+ - "\u0278\3\2\2\2\u0276\u0274\3\2\2\2\u0277\u026e\3\2\2\2\u0277\u0278\3\2"+ - "\2\2\u0278\u036a\3\2\2\2\u0279\u027b\7d\2\2\u027a\u027c\7\u00b9\2\2\u027b"+ - "\u027a\3\2\2\2\u027b\u027c\3\2\2\2\u027c\u027d\3\2\2\2\u027d\u0280\7\u00b0"+ - "\2\2\u027e\u027f\7\u0083\2\2\u027f\u0281\7\"\2\2\u0280\u027e\3\2\2\2\u0280"+ - "\u0281\3\2\2\2\u0281\u0282\3\2\2\2\u0282\u036a\5\u00c2b\2\u0283\u0285"+ - "\7W\2\2\u0284\u0286\t\4\2\2\u0285\u0284\3\2\2\2\u0285\u0286\3\2\2\2\u0286"+ - "\u0287\3\2\2\2\u0287\u036a\5\16\b\2\u0288\u0289\7]\2\2\u0289\u028c\7^"+ - "\2\2\u028a\u028b\t\5\2\2\u028b\u028d\5\u00c4c\2\u028c\u028a\3\2\2\2\u028c"+ - "\u028d\3\2\2\2\u028d\u0292\3\2\2\2\u028e\u0290\7$\2\2\u028f\u028e\3\2"+ - "\2\2\u028f\u0290\3\2\2\2\u0290\u0291\3\2\2\2\u0291\u0293\7\u00f5\2\2\u0292"+ - "\u028f\3\2\2\2\u0292\u0293\3\2\2\2\u0293\u036a\3\2\2\2\u0294\u0295\7]"+ - "\2\2\u0295\u0296\7O\2\2\u0296\u0299\7\u00b1\2\2\u0297\u0298\t\5\2\2\u0298"+ - "\u029a\5\u00c4c\2\u0299\u0297\3\2\2\2\u0299\u029a\3\2\2\2\u029a\u029b"+ - "\3\2\2\2\u029b\u029c\7$\2\2\u029c\u029e\7\u00f5\2\2\u029d\u029f\5&\24"+ - "\2\u029e\u029d\3\2\2\2\u029e\u029f\3\2\2\2\u029f\u036a\3\2\2\2\u02a0\u02a1"+ - "\7]\2\2\u02a1\u02a4\7\u00d3\2\2\u02a2\u02a3\7$\2\2\u02a3\u02a5\7\u00f5"+ - "\2\2\u02a4\u02a2\3\2\2\2\u02a4\u02a5\3\2\2\2\u02a5\u036a\3\2\2\2\u02a6"+ - "\u02a7\7]\2\2\u02a7\u02a8\7\u00bc\2\2\u02a8\u02ad\5\u0086D\2\u02a9\u02aa"+ - "\7\3\2\2\u02aa\u02ab\58\35\2\u02ab\u02ac\7\4\2\2\u02ac\u02ae\3\2\2\2\u02ad"+ - "\u02a9\3\2\2\2\u02ad\u02ae\3\2\2\2\u02ae\u036a\3\2\2\2\u02af\u02b0\7]"+ - "\2\2\u02b0\u02b1\7_\2\2\u02b1\u02b2\t\5\2\2\u02b2\u02b5\5\u0086D\2\u02b3"+ - "\u02b4\t\5\2\2\u02b4\u02b6\5\u00c4c\2\u02b5\u02b3\3\2\2\2\u02b5\u02b6"+ - "\3\2\2\2\u02b6\u036a\3\2\2\2\u02b7\u02b8\7]\2\2\u02b8\u02b9\7b\2\2\u02b9"+ - "\u02bb\5\u0086D\2\u02ba\u02bc\5&\24\2\u02bb\u02ba\3\2\2\2\u02bb\u02bc"+ - "\3\2\2\2\u02bc\u036a\3\2\2\2\u02bd\u02bf\7]\2\2\u02be\u02c0\5\u00c4c\2"+ - "\u02bf\u02be\3\2\2\2\u02bf\u02c0\3\2\2\2\u02c0\u02c1\3\2\2\2\u02c1\u02c9"+ - "\7c\2\2\u02c2\u02c4\7$\2\2\u02c3\u02c2\3\2\2\2\u02c3\u02c4\3\2\2\2\u02c4"+ - "\u02c7\3\2\2\2\u02c5\u02c8\5\u00c2b\2\u02c6\u02c8\7\u00f5\2\2\u02c7\u02c5"+ - "\3\2\2\2\u02c7\u02c6\3\2\2\2\u02c8\u02ca\3\2\2\2\u02c9\u02c3\3\2\2\2\u02c9"+ - "\u02ca\3\2\2\2\u02ca\u036a\3\2\2\2\u02cb\u02cc\7]\2\2\u02cc\u02cd\7N\2"+ - "\2\u02cd\u02ce\7O\2\2\u02ce\u036a\5\u0086D\2\u02cf\u02d0\t\6\2\2\u02d0"+ - "\u02d2\7\u00b0\2\2\u02d1\u02d3\7\u00b1\2\2\u02d2\u02d1\3\2\2\2\u02d2\u02d3"+ - "\3\2\2\2\u02d3\u02d4\3\2\2\2\u02d4\u036a\5*\26\2\u02d5\u02d6\t\6\2\2\u02d6"+ - "\u02d8\7\u00d2\2\2\u02d7\u02d9\7\u00b1\2\2\u02d8\u02d7\3\2\2\2\u02d8\u02d9"+ - "\3\2\2\2\u02d9\u02da\3\2\2\2\u02da\u036a\5\u00c4c\2\u02db\u02dd\t\6\2"+ - "\2\u02dc\u02de\7O\2\2\u02dd\u02dc\3\2\2\2\u02dd\u02de\3\2\2\2\u02de\u02e0"+ - "\3\2\2\2\u02df\u02e1\t\7\2\2\u02e0\u02df\3\2\2\2\u02e0\u02e1\3\2\2\2\u02e1"+ - "\u02e2\3\2\2\2\u02e2\u02e4\5\u0086D\2\u02e3\u02e5\5&\24\2\u02e4\u02e3"+ - "\3\2\2\2\u02e4\u02e5\3\2\2\2\u02e5\u02e7\3\2\2\2\u02e6\u02e8\5,\27\2\u02e7"+ - "\u02e6\3\2\2\2\u02e7\u02e8\3\2\2\2\u02e8\u036a\3\2\2\2\u02e9\u02ea\7\u00b2"+ - "\2\2\u02ea\u02eb\7O\2\2\u02eb\u036a\5\u0086D\2\u02ec\u02f4\7\u00b2\2\2"+ - "\u02ed\u02f5\7\u00f5\2\2\u02ee\u02f0\13\2\2\2\u02ef\u02ee\3\2\2\2\u02f0"+ - "\u02f3\3\2\2\2\u02f1\u02f2\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f2\u02f5\3\2"+ - "\2\2\u02f3\u02f1\3\2\2\2\u02f4\u02ed\3\2\2\2\u02f4\u02f1\3\2\2\2\u02f5"+ - "\u036a\3\2\2\2\u02f6\u02f8\7\u00b4\2\2\u02f7\u02f9\7\u00b6\2\2\u02f8\u02f7"+ - "\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9\u02fa\3\2\2\2\u02fa\u02fb\7O\2\2\u02fb"+ - "\u0300\5\u0086D\2\u02fc\u02fe\7\17\2\2\u02fd\u02fc\3\2\2\2\u02fd\u02fe"+ - "\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff\u0301\5 \21\2\u0300\u02fd\3\2\2\2\u0300"+ - "\u0301\3\2\2\2\u0301\u036a\3\2\2\2\u0302\u0303\7\u00b5\2\2\u0303\u0306"+ - "\7O\2\2\u0304\u0305\7\u0083\2\2\u0305\u0307\7\"\2\2\u0306\u0304\3\2\2"+ - "\2\u0306\u0307\3\2\2\2\u0307\u0308\3\2\2\2\u0308\u036a\5\u0086D\2\u0309"+ - "\u030a\7\u00b3\2\2\u030a\u036a\7\u00b4\2\2\u030b\u030c\7\u00d5\2\2\u030c"+ - "\u030d\7O\2\2\u030d\u030f\5\u0086D\2\u030e\u0310\5&\24\2\u030f\u030e\3"+ - "\2\2\2\u030f\u0310\3\2\2\2\u0310\u036a\3\2\2\2\u0311\u0312\7\u00e1\2\2"+ - "\u0312\u0313\7\u00e2\2\2\u0313\u0314\7O\2\2\u0314\u036a\5\u0086D\2\u0315"+ - "\u0316\t\b\2\2\u0316\u031a\5\u00c4c\2\u0317\u0319\13\2\2\2\u0318\u0317"+ - "\3\2\2\2\u0319\u031c\3\2\2\2\u031a\u031b\3\2\2\2\u031a\u0318\3\2\2\2\u031b"+ - "\u036a\3\2\2\2\u031c\u031a\3\2\2\2\u031d\u031e\7s\2\2\u031e\u0322\7\u00e7"+ - "\2\2\u031f\u0321\13\2\2\2\u0320\u031f\3\2\2\2\u0321\u0324\3\2\2\2\u0322"+ - "\u0323\3\2\2\2\u0322\u0320\3\2\2\2\u0323\u036a\3\2\2\2\u0324\u0322\3\2"+ - "\2\2\u0325\u0329\7s\2\2\u0326\u0328\13\2\2\2\u0327\u0326\3\2\2\2\u0328"+ - "\u032b\3\2\2\2\u0329\u032a\3\2\2\2\u0329\u0327\3\2\2\2\u032a\u036a\3\2"+ - "\2\2\u032b\u0329\3\2\2\2\u032c\u036a\7t\2\2\u032d\u032e\7\177\2\2\u032e"+ - "\u032f\7O\2\2\u032f\u0331\5\u0086D\2\u0330\u0332\5&\24\2\u0331\u0330\3"+ - "\2\2\2\u0331\u0332\3\2\2\2\u0332\u036a\3\2\2\2\u0333\u0334\7\u0080\2\2"+ - "\u0334\u0335\7\u0082\2\2\u0335\u036a\5\20\t\2\u0336\u0337\7\u00f4\2\2"+ - "\u0337\u036a\5\u00c4c\2\u0338\u0339\7\u00f3\2\2\u0339\u033b\5\u00c4c\2"+ - "\u033a\u033c\5\64\33\2\u033b\u033a\3\2\2\2\u033b\u033c\3\2\2\2\u033c\u036a"+ - "\3\2\2\2\u033d\u033e\7\u0081\2\2\u033e\u033f\7O\2\2\u033f\u0341\5\u0086"+ - "D\2\u0340\u0342\5&\24\2\u0341\u0340\3\2\2\2\u0341\u0342\3\2\2\2\u0342"+ - "\u0343\3\2\2\2\u0343\u0344\7\33\2\2\u0344\u0345\5\u00caf\2\u0345\u036a"+ - "\3\2\2\2\u0346\u0347\7\u00e6\2\2\u0347\u0348\7u\2\2\u0348\u0349\5\u009a"+ - "N\2\u0349\u034a\7O\2\2\u034a\u034c\5\u0086D\2\u034b\u034d\5\22\n\2\u034c"+ - "\u034b\3\2\2\2\u034c\u034d\3\2\2\2\u034d\u036a\3\2\2\2\u034e\u034f\7\u00e6"+ - "\2\2\u034f\u0350\7u\2\2\u0350\u0351\7\u00f5\2\2\u0351\u0352\t\t\2\2\u0352"+ - "\u0353\7O\2\2\u0353\u0355\5\u0086D\2\u0354\u0356\5&\24\2\u0355\u0354\3"+ - "\2\2\2\u0355\u0356\3\2\2\2\u0356\u036a\3\2\2\2\u0357\u0358\7\u00e4\2\2"+ - "\u0358\u0359\7O\2\2\u0359\u035b\5\u0086D\2\u035a\u035c\5&\24\2\u035b\u035a"+ - "\3\2\2\2\u035b\u035c\3\2\2\2\u035c\u035d\3\2\2\2\u035d\u035e\7i\2\2\u035e"+ - "\u0360\5\u009aN\2\u035f\u0361\5\22\n\2\u0360\u035f\3\2\2\2\u0360\u0361"+ - "\3\2\2\2\u0361\u036a\3\2\2\2\u0362\u0366\5\26\f\2\u0363\u0365\13\2\2\2"+ - "\u0364\u0363\3\2\2\2\u0365\u0368\3\2\2\2\u0366\u0367\3\2\2\2\u0366\u0364"+ - "\3\2\2\2\u0367\u036a\3\2\2\2\u0368\u0366\3\2\2\2\u0369\u00e0\3\2\2\2\u0369"+ - "\u00e1\3\2\2\2\u0369\u00e3\3\2\2\2\u0369\u00f7\3\2\2\2\u0369\u00fe\3\2"+ - "\2\2\u0369\u0108\3\2\2\2\u0369\u012a\3\2\2\2\u0369\u014f\3\2\2\2\u0369"+ - "\u015c\3\2\2\2\u0369\u016a\3\2\2\2\u0369\u0173\3\2\2\2\u0369\u017a\3\2"+ - "\2\2\u0369\u0181\3\2\2\2\u0369\u018c\3\2\2\2\u0369\u019b\3\2\2\2\u0369"+ - "\u01a9\3\2\2\2\u0369\u01b3\3\2\2\2\u0369\u01c1\3\2\2\2\u0369\u01cf\3\2"+ - "\2\2\u0369\u01d7\3\2\2\2\u0369\u01ea\3\2\2\2\u0369\u01fa\3\2\2\2\u0369"+ - "\u0203\3\2\2\2\u0369\u0209\3\2\2\2\u0369\u0213\3\2\2\2\u0369\u021a\3\2"+ - "\2\2\u0369\u023f\3\2\2\2\u0369\u0255\3\2\2\2\u0369\u025d\3\2\2\2\u0369"+ - "\u0279\3\2\2\2\u0369\u0283\3\2\2\2\u0369\u0288\3\2\2\2\u0369\u0294\3\2"+ - "\2\2\u0369\u02a0\3\2\2\2\u0369\u02a6\3\2\2\2\u0369\u02af\3\2\2\2\u0369"+ - "\u02b7\3\2\2\2\u0369\u02bd\3\2\2\2\u0369\u02cb\3\2\2\2\u0369\u02cf\3\2"+ - "\2\2\u0369\u02d5\3\2\2\2\u0369\u02db\3\2\2\2\u0369\u02e9\3\2\2\2\u0369"+ - "\u02ec\3\2\2\2\u0369\u02f6\3\2\2\2\u0369\u0302\3\2\2\2\u0369\u0309\3\2"+ - "\2\2\u0369\u030b\3\2\2\2\u0369\u0311\3\2\2\2\u0369\u0315\3\2\2\2\u0369"+ - "\u031d\3\2\2\2\u0369\u0325\3\2\2\2\u0369\u032c\3\2\2\2\u0369\u032d\3\2"+ - "\2\2\u0369\u0333\3\2\2\2\u0369\u0336\3\2\2\2\u0369\u0338\3\2\2\2\u0369"+ - "\u033d\3\2\2\2\u0369\u0346\3\2\2\2\u0369\u034e\3\2\2\2\u0369\u0357\3\2"+ - "\2\2\u0369\u0362\3\2\2\2\u036a\17\3\2\2\2\u036b\u036c\7\u0104\2\2\u036c"+ - "\21\3\2\2\2\u036d\u036e\7\u00ba\2\2\u036e\u036f\7\3\2\2\u036f\u0374\5"+ - "\24\13\2\u0370\u0371\7\5\2\2\u0371\u0373\5\24\13\2\u0372\u0370\3\2\2\2"+ - "\u0373\u0376\3\2\2\2\u0374\u0372\3\2\2\2\u0374\u0375\3\2\2\2\u0375\u0377"+ - "\3\2\2\2\u0376\u0374\3\2\2\2\u0377\u0378\7\4\2\2\u0378\23\3\2\2\2\u0379"+ - "\u037a\5\u00c4c\2\u037a\u037b\7\u0085\2\2\u037b\u037c\5\u009aN\2\u037c"+ - "\25\3\2\2\2\u037d\u037e\7N\2\2\u037e\u0428\7\u00e7\2\2\u037f\u0380\7d"+ - "\2\2\u0380\u0428\7\u00e7\2\2\u0381\u0383\7\u00de\2\2\u0382\u0384\7\u00e7"+ - "\2\2\u0383\u0382\3\2\2\2\u0383\u0384\3\2\2\2\u0384\u0428\3\2\2\2\u0385"+ - "\u0387\7\u00dd\2\2\u0386\u0388\7\u00e7\2\2\u0387\u0386\3\2\2\2\u0387\u0388"+ - "\3\2\2\2\u0388\u0428\3\2\2\2\u0389\u038a\7]\2\2\u038a\u0428\7\u00de\2"+ - "\2\u038b\u038c\7]\2\2\u038c\u038e\7\u00e7\2\2\u038d\u038f\7\u00de\2\2"+ - "\u038e\u038d\3\2\2\2\u038e\u038f\3\2\2\2\u038f\u0428\3\2\2\2\u0390\u0391"+ - "\7]\2\2\u0391\u0428\7\u00ea\2\2\u0392\u0393\7]\2\2\u0393\u0428\7\u00e8"+ - "\2\2\u0394\u0395\7]\2\2\u0395\u0396\7G\2\2\u0396\u0428\7\u00e8\2\2\u0397"+ - "\u0398\7\u00e4\2\2\u0398\u0428\7O\2\2\u0399\u039a\7\u00e5\2\2\u039a\u0428"+ - "\7O\2\2\u039b\u039c\7]\2\2\u039c\u0428\7\u00e9\2\2\u039d\u039e\7]\2\2"+ - "\u039e\u039f\7N\2\2\u039f\u0428\7O\2\2\u03a0\u03a1\7]\2\2\u03a1\u0428"+ - "\7\u00eb\2\2\u03a2\u03a3\7]\2\2\u03a3\u0428\7\u00ed\2\2\u03a4\u03a5\7"+ - "]\2\2\u03a5\u0428\7\u00ee\2\2\u03a6\u03a7\7N\2\2\u03a7\u0428\7\u00ec\2"+ - "\2\u03a8\u03a9\7d\2\2\u03a9\u0428\7\u00ec\2\2\u03aa\u03ab\7l\2\2\u03ab"+ - "\u0428\7\u00ec\2\2\u03ac\u03ad\7\u00df\2\2\u03ad\u0428\7O\2\2\u03ae\u03af"+ - "\7\u00df\2\2\u03af\u0428\7\u00d2\2\2\u03b0\u03b1\7\u00e0\2\2\u03b1\u0428"+ - "\7O\2\2\u03b2\u03b3\7\u00e0\2\2\u03b3\u0428\7\u00d2\2\2\u03b4\u03b5\7"+ - "N\2\2\u03b5\u03b6\7\u00b9\2\2\u03b6\u0428\7z\2\2\u03b7\u03b8\7d\2\2\u03b8"+ - "\u03b9\7\u00b9\2\2\u03b9\u0428\7z\2\2\u03ba\u03bb\7l\2\2\u03bb\u03bc\7"+ - "O\2\2\u03bc\u03bd\5\u0086D\2\u03bd\u03be\7 \2\2\u03be\u03bf\7\u00cd\2"+ - "\2\u03bf\u0428\3\2\2\2\u03c0\u03c1\7l\2\2\u03c1\u03c2\7O\2\2\u03c2\u03c3"+ - "\5\u0086D\2\u03c3\u03c4\7\u00cd\2\2\u03c4\u03c5\7\24\2\2\u03c5\u0428\3"+ - "\2\2\2\u03c6\u03c7\7l\2\2\u03c7\u03c8\7O\2\2\u03c8\u03c9\5\u0086D\2\u03c9"+ - "\u03ca\7 \2\2\u03ca\u03cb\7\u00ce\2\2\u03cb\u0428\3\2\2\2\u03cc\u03cd"+ - "\7l\2\2\u03cd\u03ce\7O\2\2\u03ce\u03cf\5\u0086D\2\u03cf\u03d0\7\u00bf"+ - "\2\2\u03d0\u03d1\7\24\2\2\u03d1\u0428\3\2\2\2\u03d2\u03d3\7l\2\2\u03d3"+ - "\u03d4\7O\2\2\u03d4\u03d5\5\u0086D\2\u03d5\u03d6\7 \2\2\u03d6\u03d7\7"+ - "\u00bf\2\2\u03d7\u0428\3\2\2\2\u03d8\u03d9\7l\2\2\u03d9\u03da\7O\2\2\u03da"+ - "\u03db\5\u0086D\2\u03db\u03dc\7 \2\2\u03dc\u03dd\7\u00c0\2\2\u03dd\u03de"+ - "\7\17\2\2\u03de\u03df\7\u00c1\2\2\u03df\u0428\3\2\2\2\u03e0\u03e1\7l\2"+ - "\2\u03e1\u03e2\7O\2\2\u03e2\u03e3\5\u0086D\2\u03e3\u03e4\7s\2\2\u03e4"+ - "\u03e5\7\u00bf\2\2\u03e5\u03e6\7\u00c2\2\2\u03e6\u0428\3\2\2\2\u03e7\u03e8"+ - "\7l\2\2\u03e8\u03e9\7O\2\2\u03e9\u03ea\5\u0086D\2\u03ea\u03eb\7\u00c3"+ - "\2\2\u03eb\u03ec\7A\2\2\u03ec\u0428\3\2\2\2\u03ed\u03ee\7l\2\2\u03ee\u03ef"+ - "\7O\2\2\u03ef\u03f0\5\u0086D\2\u03f0\u03f1\7\u00c4\2\2\u03f1\u03f2\7A"+ - "\2\2\u03f2\u0428\3\2\2\2\u03f3\u03f4\7l\2\2\u03f4\u03f5\7O\2\2\u03f5\u03f6"+ - "\5\u0086D\2\u03f6\u03f7\7\u00c5\2\2\u03f7\u03f8\7A\2\2\u03f8\u0428\3\2"+ - "\2\2\u03f9\u03fa\7l\2\2\u03fa\u03fb\7O\2\2\u03fb\u03fc\5\u0086D\2\u03fc"+ - "\u03fd\7\u00c7\2\2\u03fd\u0428\3\2\2\2\u03fe\u03ff\7l\2\2\u03ff\u0400"+ - "\7O\2\2\u0400\u0402\5\u0086D\2\u0401\u0403\5&\24\2\u0402\u0401\3\2\2\2"+ - "\u0402\u0403\3\2\2\2\u0403\u0404\3\2\2\2\u0404\u0405\7\u00c8\2\2\u0405"+ - "\u0428\3\2\2\2\u0406\u0407\7l\2\2\u0407\u0408\7O\2\2\u0408\u040a\5\u0086"+ - "D\2\u0409\u040b\5&\24\2\u040a\u0409\3\2\2\2\u040a\u040b\3\2\2\2\u040b"+ - "\u040c\3\2\2\2\u040c\u040d\7\u00c9\2\2\u040d\u0428\3\2\2\2\u040e\u040f"+ - "\7l\2\2\u040f\u0410\7O\2\2\u0410\u0412\5\u0086D\2\u0411\u0413\5&\24\2"+ - "\u0412\u0411\3\2\2\2\u0412\u0413\3\2\2\2\u0413\u0414\3\2\2\2\u0414\u0415"+ - "\7s\2\2\u0415\u0416\7\u00c6\2\2\u0416\u0428\3\2\2\2\u0417\u0418\7l\2\2"+ - "\u0418\u0419\7O\2\2\u0419\u041b\5\u0086D\2\u041a\u041c\5&\24\2\u041b\u041a"+ - "\3\2\2\2\u041b\u041c\3\2\2\2\u041c\u041d\3\2\2\2\u041d\u041e\7R\2\2\u041e"+ - "\u041f\7_\2\2\u041f\u0428\3\2\2\2\u0420\u0421\7v\2\2\u0421\u0428\7w\2"+ - "\2\u0422\u0428\7x\2\2\u0423\u0428\7y\2\2\u0424\u0428\7\u00d4\2\2\u0425"+ - "\u0426\7T\2\2\u0426\u0428\7\r\2\2\u0427\u037d\3\2\2\2\u0427\u037f\3\2"+ - "\2\2\u0427\u0381\3\2\2\2\u0427\u0385\3\2\2\2\u0427\u0389\3\2\2\2\u0427"+ - "\u038b\3\2\2\2\u0427\u0390\3\2\2\2\u0427\u0392\3\2\2\2\u0427\u0394\3\2"+ - "\2\2\u0427\u0397\3\2\2\2\u0427\u0399\3\2\2\2\u0427\u039b\3\2\2\2\u0427"+ - "\u039d\3\2\2\2\u0427\u03a0\3\2\2\2\u0427\u03a2\3\2\2\2\u0427\u03a4\3\2"+ - "\2\2\u0427\u03a6\3\2\2\2\u0427\u03a8\3\2\2\2\u0427\u03aa\3\2\2\2\u0427"+ - "\u03ac\3\2\2\2\u0427\u03ae\3\2\2\2\u0427\u03b0\3\2\2\2\u0427\u03b2\3\2"+ - "\2\2\u0427\u03b4\3\2\2\2\u0427\u03b7\3\2\2\2\u0427\u03ba\3\2\2\2\u0427"+ - "\u03c0\3\2\2\2\u0427\u03c6\3\2\2\2\u0427\u03cc\3\2\2\2\u0427\u03d2\3\2"+ - "\2\2\u0427\u03d8\3\2\2\2\u0427\u03e0\3\2\2\2\u0427\u03e7\3\2\2\2\u0427"+ - "\u03ed\3\2\2\2\u0427\u03f3\3\2\2\2\u0427\u03f9\3\2\2\2\u0427\u03fe\3\2"+ - "\2\2\u0427\u0406\3\2\2\2\u0427\u040e\3\2\2\2\u0427\u0417\3\2\2\2\u0427"+ - "\u0420\3\2\2\2\u0427\u0422\3\2\2\2\u0427\u0423\3\2\2\2\u0427\u0424\3\2"+ - "\2\2\u0427\u0425\3\2\2\2\u0428\27\3\2\2\2\u0429\u042b\7N\2\2\u042a\u042c"+ - "\7\u00b9\2\2\u042b\u042a\3\2\2\2\u042b\u042c\3\2\2\2\u042c\u042e\3\2\2"+ - "\2\u042d\u042f\7\u00db\2\2\u042e\u042d\3\2\2\2\u042e\u042f\3\2\2\2\u042f"+ - "\u0430\3\2\2\2\u0430\u0434\7O\2\2\u0431\u0432\7\u0083\2\2\u0432\u0433"+ - "\7 \2\2\u0433\u0435\7\"\2\2\u0434\u0431\3\2\2\2\u0434\u0435\3\2\2\2\u0435"+ - "\u0436\3\2\2\2\u0436\u0437\5\u0086D\2\u0437\31\3\2\2\2\u0438\u0439\7\u00cd"+ - "\2\2\u0439\u043a\7\24\2\2\u043a\u043e\5p9\2\u043b\u043c\7\u00ce\2\2\u043c"+ - "\u043d\7\24\2\2\u043d\u043f\5t;\2\u043e\u043b\3\2\2\2\u043e\u043f\3\2"+ - "\2\2\u043f\u0440\3\2\2\2\u0440\u0441\7U\2\2\u0441\u0442\7\u00f9\2\2\u0442"+ - "\u0443\7\u00be\2\2\u0443\33\3\2\2\2\u0444\u0445\7\u00bf\2\2\u0445\u0446"+ - "\7\24\2\2\u0446\u0447\5p9\2\u0447\u044a\7=\2\2\u0448\u044b\5<\37\2\u0449"+ - "\u044b\5> \2\u044a\u0448\3\2\2\2\u044a\u0449\3\2\2\2\u044b\u044f\3\2\2"+ - "\2\u044c\u044d\7\u00c0\2\2\u044d\u044e\7\17\2\2\u044e\u0450\7\u00c1\2"+ - "\2\u044f\u044c\3\2\2\2\u044f\u0450\3\2\2\2\u0450\35\3\2\2\2\u0451\u0452"+ - "\7\u00c2\2\2\u0452\u0453\7\u00f5\2\2\u0453\37\3\2\2\2\u0454\u0456\5.\30"+ - "\2\u0455\u0454\3\2\2\2\u0455\u0456\3\2\2\2\u0456\u0457\3\2\2\2\u0457\u0458"+ - "\5H%\2\u0458!\3\2\2\2\u0459\u045a\7S\2\2\u045a\u045b\7\u009f\2\2\u045b"+ - "\u045c\7O\2\2\u045c\u0463\5\u0086D\2\u045d\u0461\5&\24\2\u045e\u045f\7"+ - "\u0083\2\2\u045f\u0460\7 \2\2\u0460\u0462\7\"\2\2\u0461\u045e\3\2\2\2"+ - "\u0461\u0462\3\2\2\2\u0462\u0464\3\2\2\2\u0463\u045d\3\2\2\2\u0463\u0464"+ - "\3\2\2\2\u0464\u048a\3\2\2\2\u0465\u0466\7S\2\2\u0466\u0468\7U\2\2\u0467"+ - "\u0469\7O\2\2\u0468\u0467\3\2\2\2\u0468\u0469\3\2\2\2\u0469\u046a\3\2"+ - "\2\2\u046a\u046c\5\u0086D\2\u046b\u046d\5&\24\2\u046c\u046b\3\2\2\2\u046c"+ - "\u046d\3\2\2\2\u046d\u048a\3\2\2\2\u046e\u046f\7S\2\2\u046f\u0471\7\u009f"+ - "\2\2\u0470\u0472\7\u00f1\2\2\u0471\u0470\3\2\2\2\u0471\u0472\3\2\2\2\u0472"+ - "\u0473\3\2\2\2\u0473\u0474\7P\2\2\u0474\u0476\7\u00f5\2\2\u0475\u0477"+ - "\5\u0084C\2\u0476\u0475\3\2\2\2\u0476\u0477\3\2\2\2\u0477\u0479\3\2\2"+ - "\2\u0478\u047a\5@!\2\u0479\u0478\3\2\2\2\u0479\u047a\3\2\2\2\u047a\u048a"+ - "\3\2\2\2\u047b\u047c\7S\2\2\u047c\u047e\7\u009f\2\2\u047d\u047f\7\u00f1"+ - "\2\2\u047e\u047d\3\2\2\2\u047e\u047f\3\2\2\2\u047f\u0480\3\2\2\2\u0480"+ - "\u0482\7P\2\2\u0481\u0483\7\u00f5\2\2\u0482\u0481\3\2\2\2\u0482\u0483"+ - "\3\2\2\2\u0483\u0484\3\2\2\2\u0484\u0487\5\62\32\2\u0485\u0486\7\u00ba"+ - "\2\2\u0486\u0488\5\64\33\2\u0487\u0485\3\2\2\2\u0487\u0488\3\2\2\2\u0488"+ - "\u048a\3\2\2\2\u0489\u0459\3\2\2\2\u0489\u0465\3\2\2\2\u0489\u046e\3\2"+ - "\2\2\u0489\u047b\3\2\2\2\u048a#\3\2\2\2\u048b\u048d\5&\24\2\u048c\u048e"+ - "\5\36\20\2\u048d\u048c\3\2\2\2\u048d\u048e\3\2\2\2\u048e%\3\2\2\2\u048f"+ - "\u0490\7A\2\2\u0490\u0491\7\3\2\2\u0491\u0496\5(\25\2\u0492\u0493\7\5"+ - "\2\2\u0493\u0495\5(\25\2\u0494\u0492\3\2\2\2\u0495\u0498\3\2\2\2\u0496"+ - "\u0494\3\2\2\2\u0496\u0497\3\2\2\2\u0497\u0499\3\2\2\2\u0498\u0496\3\2"+ - "\2\2\u0499\u049a\7\4\2\2\u049a\'\3\2\2\2\u049b\u049e\5\u00c4c\2\u049c"+ - "\u049d\7\u0085\2\2\u049d\u049f\5\u009aN\2\u049e\u049c\3\2\2\2\u049e\u049f"+ - "\3\2\2\2\u049f)\3\2\2\2\u04a0\u04a6\5\u00c2b\2\u04a1\u04a6\7\u00f5\2\2"+ - "\u04a2\u04a6\5\u009cO\2\u04a3\u04a6\5\u009eP\2\u04a4\u04a6\5\u00a0Q\2"+ - "\u04a5\u04a0\3\2\2\2\u04a5\u04a1\3\2\2\2\u04a5\u04a2\3\2\2\2\u04a5\u04a3"+ - "\3\2\2\2\u04a5\u04a4\3\2\2\2\u04a6+\3\2\2\2\u04a7\u04ac\5\u00c4c\2\u04a8"+ - "\u04a9\7\6\2\2\u04a9\u04ab\5\u00c4c\2\u04aa\u04a8\3\2\2\2\u04ab\u04ae"+ - "\3\2\2\2\u04ac\u04aa\3\2\2\2\u04ac\u04ad\3\2\2\2\u04ad-\3\2\2\2\u04ae"+ - "\u04ac\3\2\2\2\u04af\u04b0\7L\2\2\u04b0\u04b5\5\60\31\2\u04b1\u04b2\7"+ - "\5\2\2\u04b2\u04b4\5\60\31\2\u04b3\u04b1\3\2\2\2\u04b4\u04b7\3\2\2\2\u04b5"+ - "\u04b3\3\2\2\2\u04b5\u04b6\3\2\2\2\u04b6/\3\2\2\2\u04b7\u04b5\3\2\2\2"+ - "\u04b8\u04ba\5\u00c4c\2\u04b9\u04bb\7\17\2\2\u04ba\u04b9\3\2\2\2\u04ba"+ - "\u04bb\3\2\2\2\u04bb\u04bc\3\2\2\2\u04bc\u04bd\7\3\2\2\u04bd\u04be\5 "+ - "\21\2\u04be\u04bf\7\4\2\2\u04bf\61\3\2\2\2\u04c0\u04c1\7\u00a2\2\2\u04c1"+ - "\u04c2\5\u00c2b\2\u04c2\63\3\2\2\2\u04c3\u04c4\7\3\2\2\u04c4\u04c9\5\66"+ - "\34\2\u04c5\u04c6\7\5\2\2\u04c6\u04c8\5\66\34\2\u04c7\u04c5\3\2\2\2\u04c8"+ - "\u04cb\3\2\2\2\u04c9\u04c7\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca\u04cc\3\2"+ - "\2\2\u04cb\u04c9\3\2\2\2\u04cc\u04cd\7\4\2\2\u04cd\65\3\2\2\2\u04ce\u04d3"+ - "\58\35\2\u04cf\u04d1\7\u0085\2\2\u04d0\u04cf\3\2\2\2\u04d0\u04d1\3\2\2"+ - "\2\u04d1\u04d2\3\2\2\2\u04d2\u04d4\5:\36\2\u04d3\u04d0\3\2\2\2\u04d3\u04d4"+ - "\3\2\2\2\u04d4\67\3\2\2\2\u04d5\u04da\5\u00c4c\2\u04d6\u04d7\7\6\2\2\u04d7"+ - "\u04d9\5\u00c4c\2\u04d8\u04d6\3\2\2\2\u04d9\u04dc\3\2\2\2\u04da\u04d8"+ - "\3\2\2\2\u04da\u04db\3\2\2\2\u04db\u04df\3\2\2\2\u04dc\u04da\3\2\2\2\u04dd"+ - "\u04df\7\u00f5\2\2\u04de\u04d5\3\2\2\2\u04de\u04dd\3\2\2\2\u04df9\3\2"+ - "\2\2\u04e0\u04e5\7\u00f9\2\2\u04e1\u04e5\7\u00fa\2\2\u04e2\u04e5\5\u00a2"+ - "R\2\u04e3\u04e5\7\u00f5\2\2\u04e4\u04e0\3\2\2\2\u04e4\u04e1\3\2\2\2\u04e4"+ - "\u04e2\3\2\2\2\u04e4\u04e3\3\2\2\2\u04e5;\3\2\2\2\u04e6\u04e7\7\3\2\2"+ - "\u04e7\u04ec\5\u009aN\2\u04e8\u04e9\7\5\2\2\u04e9\u04eb\5\u009aN\2\u04ea"+ - "\u04e8\3\2\2\2\u04eb\u04ee\3\2\2\2\u04ec\u04ea\3\2\2\2\u04ec\u04ed\3\2"+ - "\2\2\u04ed\u04ef\3\2\2\2\u04ee\u04ec\3\2\2\2\u04ef\u04f0\7\4\2\2\u04f0"+ - "=\3\2\2\2\u04f1\u04f2\7\3\2\2\u04f2\u04f7\5<\37\2\u04f3\u04f4\7\5\2\2"+ - "\u04f4\u04f6\5<\37\2\u04f5\u04f3\3\2\2\2\u04f6\u04f9\3\2\2\2\u04f7\u04f5"+ - "\3\2\2\2\u04f7\u04f8\3\2\2\2\u04f8\u04fa\3\2\2\2\u04f9\u04f7\3\2\2\2\u04fa"+ - "\u04fb\7\4\2\2\u04fb?\3\2\2\2\u04fc\u04fd\7\u00c0\2\2\u04fd\u04fe\7\17"+ - "\2\2\u04fe\u0503\5B\"\2\u04ff\u0500\7\u00c0\2\2\u0500\u0501\7\24\2\2\u0501"+ - "\u0503\5D#\2\u0502\u04fc\3\2\2\2\u0502\u04ff\3\2\2\2\u0503A\3\2\2\2\u0504"+ - "\u0505\7\u00d0\2\2\u0505\u0506\7\u00f5\2\2\u0506\u0507\7\u00d1\2\2\u0507"+ - "\u050a\7\u00f5\2\2\u0508\u050a\5\u00c4c\2\u0509\u0504\3\2\2\2\u0509\u0508"+ - "\3\2\2\2\u050aC\3\2\2\2\u050b\u050f\7\u00f5\2\2\u050c\u050d\7L\2\2\u050d"+ - "\u050e\7\u00a4\2\2\u050e\u0510\5\64\33\2\u050f\u050c\3\2\2\2\u050f\u0510"+ - "\3\2\2\2\u0510E\3\2\2\2\u0511\u0512\5\u00c4c\2\u0512\u0513\7\u00f5\2\2"+ - "\u0513G\3\2\2\2\u0514\u0516\5\"\22\2\u0515\u0514\3\2\2\2\u0515\u0516\3"+ - "\2\2\2\u0516\u0517\3\2\2\2\u0517\u0518\5N(\2\u0518\u0519\5J&\2\u0519\u0521"+ - "\3\2\2\2\u051a\u051c\5Z.\2\u051b\u051d\5L\'\2\u051c\u051b\3\2\2\2\u051d"+ - "\u051e\3\2\2\2\u051e\u051c\3\2\2\2\u051e\u051f\3\2\2\2\u051f\u0521\3\2"+ - "\2\2\u0520\u0515\3\2\2\2\u0520\u051a\3\2\2\2\u0521I\3\2\2\2\u0522\u0523"+ - "\7\31\2\2\u0523\u0524\7\24\2\2\u0524\u0529\5R*\2\u0525\u0526\7\5\2\2\u0526"+ - "\u0528\5R*\2\u0527\u0525\3\2\2\2\u0528\u052b\3\2\2\2\u0529\u0527\3\2\2"+ - "\2\u0529\u052a\3\2\2\2\u052a\u052d\3\2\2\2\u052b\u0529\3\2\2\2\u052c\u0522"+ - "\3\2\2\2\u052c\u052d\3\2\2\2\u052d\u0538\3\2\2\2\u052e\u052f\7\u009d\2"+ - "\2\u052f\u0530\7\24\2\2\u0530\u0535\5\u008eH\2\u0531\u0532\7\5\2\2\u0532"+ - "\u0534\5\u008eH\2\u0533\u0531\3\2\2\2\u0534\u0537\3\2\2\2\u0535\u0533"+ - "\3\2\2\2\u0535\u0536\3\2\2\2\u0536\u0539\3\2\2\2\u0537\u0535\3\2\2\2\u0538"+ - "\u052e\3\2\2\2\u0538\u0539\3\2\2\2\u0539\u0544\3\2\2\2\u053a\u053b\7\u009e"+ - "\2\2\u053b\u053c\7\24\2\2\u053c\u0541\5\u008eH\2\u053d\u053e\7\5\2\2\u053e"+ - "\u0540\5\u008eH\2\u053f\u053d\3\2\2\2\u0540\u0543\3\2\2\2\u0541\u053f"+ - "\3\2\2\2\u0541\u0542\3\2\2\2\u0542\u0545\3\2\2\2\u0543\u0541\3\2\2\2\u0544"+ - "\u053a\3\2\2\2\u0544\u0545\3\2\2\2\u0545\u0550\3\2\2\2\u0546\u0547\7\u009c"+ - "\2\2\u0547\u0548\7\24\2\2\u0548\u054d\5R*\2\u0549\u054a\7\5\2\2\u054a"+ - "\u054c\5R*\2\u054b\u0549\3\2\2\2\u054c\u054f\3\2\2\2\u054d\u054b\3\2\2"+ - "\2\u054d\u054e\3\2\2\2\u054e\u0551\3\2\2\2\u054f\u054d\3\2\2\2\u0550\u0546"+ - "\3\2\2\2\u0550\u0551\3\2\2\2\u0551\u0553\3\2\2\2\u0552\u0554\5\u00b8]"+ - "\2\u0553\u0552\3\2\2\2\u0553\u0554\3\2\2\2\u0554\u055a\3\2\2\2\u0555\u0558"+ - "\7\33\2\2\u0556\u0559\7\20\2\2\u0557\u0559\5\u008eH\2\u0558\u0556\3\2"+ - "\2\2\u0558\u0557\3\2\2\2\u0559\u055b\3\2\2\2\u055a\u0555\3\2\2\2\u055a"+ - "\u055b\3\2\2\2\u055bK\3\2\2\2\u055c\u055e\5\"\22\2\u055d\u055c\3\2\2\2"+ - "\u055d\u055e\3\2\2\2\u055e\u055f\3\2\2\2\u055f\u0560\5T+\2\u0560\u0561"+ - "\5J&\2\u0561M\3\2\2\2\u0562\u0563\b(\1\2\u0563\u0564\5P)\2\u0564\u056d"+ - "\3\2\2\2\u0565\u0566\f\3\2\2\u0566\u0568\t\n\2\2\u0567\u0569\5b\62\2\u0568"+ - "\u0567\3\2\2\2\u0568\u0569\3\2\2\2\u0569\u056a\3\2\2\2\u056a\u056c\5N"+ - "(\4\u056b\u0565\3\2\2\2\u056c\u056f\3\2\2\2\u056d\u056b\3\2\2\2\u056d"+ - "\u056e\3\2\2\2\u056eO\3\2\2\2\u056f\u056d\3\2\2\2\u0570\u0579\5T+\2\u0571"+ - "\u0572\7O\2\2\u0572\u0579\5\u0086D\2\u0573\u0579\5~@\2\u0574\u0575\7\3"+ - "\2\2\u0575\u0576\5H%\2\u0576\u0577\7\4\2\2\u0577\u0579\3\2\2\2\u0578\u0570"+ - "\3\2\2\2\u0578\u0571\3\2\2\2\u0578\u0573\3\2\2\2\u0578\u0574\3\2\2\2\u0579"+ - "Q\3\2\2\2\u057a\u057c\5\u008eH\2\u057b\u057d\t\13\2\2\u057c\u057b\3\2"+ - "\2\2\u057c\u057d\3\2\2\2\u057d\u0580\3\2\2\2\u057e\u057f\7*\2\2\u057f"+ - "\u0581\t\f\2\2\u0580\u057e\3\2\2\2\u0580\u0581\3\2\2\2\u0581S\3\2\2\2"+ - "\u0582\u0583\7\f\2\2\u0583\u0584\7\u00a0\2\2\u0584\u0585\7\3\2\2\u0585"+ - "\u0586\5\u008cG\2\u0586\u0587\7\4\2\2\u0587\u058d\3\2\2\2\u0588\u0589"+ - "\7o\2\2\u0589\u058d\5\u008cG\2\u058a\u058b\7\u00a1\2\2\u058b\u058d\5\u008c"+ - "G\2\u058c\u0582\3\2\2\2\u058c\u0588\3\2\2\2\u058c\u058a\3\2\2\2\u058d"+ - "\u058f\3\2\2\2\u058e\u0590\5\u0084C\2\u058f\u058e\3\2\2\2\u058f\u0590"+ - "\3\2\2\2\u0590\u0593\3\2\2\2\u0591\u0592\7\u00a6\2\2\u0592\u0594\7\u00f5"+ - "\2\2\u0593\u0591\3\2\2\2\u0593\u0594\3\2\2\2\u0594\u0595\3\2\2\2\u0595"+ - "\u0596\7\u00a2\2\2\u0596\u05a3\7\u00f5\2\2\u0597\u05a1\7\17\2\2\u0598"+ - "\u05a2\5r:\2\u0599\u05a2\5\u00aeX\2\u059a\u059d\7\3\2\2\u059b\u059e\5"+ - "r:\2\u059c\u059e\5\u00aeX\2\u059d\u059b\3\2\2\2\u059d\u059c\3\2\2\2\u059e"+ - "\u059f\3\2\2\2\u059f\u05a0\7\4\2\2\u05a0\u05a2\3\2\2\2\u05a1\u0598\3\2"+ - "\2\2\u05a1\u0599\3\2\2\2\u05a1\u059a\3\2\2\2\u05a2\u05a4\3\2\2\2\u05a3"+ - "\u0597\3\2\2\2\u05a3\u05a4\3\2\2\2\u05a4\u05a6\3\2\2\2\u05a5\u05a7\5\u0084"+ - "C\2\u05a6\u05a5\3\2\2\2\u05a6\u05a7\3\2\2\2\u05a7\u05aa\3\2\2\2\u05a8"+ - "\u05a9\7\u00a5\2\2\u05a9\u05ab\7\u00f5\2\2\u05aa\u05a8\3\2\2\2\u05aa\u05ab"+ - "\3\2\2\2\u05ab\u05ad\3\2\2\2\u05ac\u05ae\5Z.\2\u05ad\u05ac\3\2\2\2\u05ad"+ - "\u05ae\3\2\2\2\u05ae\u05b1\3\2\2\2\u05af\u05b0\7\22\2\2\u05b0\u05b2\5"+ - "\u0090I\2\u05b1\u05af\3\2\2\2\u05b1\u05b2\3\2\2\2\u05b2\u05e0\3\2\2\2"+ - "\u05b3\u05b7\7\f\2\2\u05b4\u05b6\5V,\2\u05b5\u05b4\3\2\2\2\u05b6\u05b9"+ - "\3\2\2\2\u05b7\u05b5\3\2\2\2\u05b7\u05b8\3\2\2\2\u05b8\u05bb\3\2\2\2\u05b9"+ - "\u05b7\3\2\2\2\u05ba\u05bc\5b\62\2\u05bb\u05ba\3\2\2\2\u05bb\u05bc\3\2"+ - "\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05bf\5\u008cG\2\u05be\u05c0\5Z.\2\u05bf"+ - "\u05be\3\2\2\2\u05bf\u05c0\3\2\2\2\u05c0\u05ca\3\2\2\2\u05c1\u05c7\5Z"+ - ".\2\u05c2\u05c4\7\f\2\2\u05c3\u05c5\5b\62\2\u05c4\u05c3\3\2\2\2\u05c4"+ - "\u05c5\3\2\2\2\u05c5\u05c6\3\2\2\2\u05c6\u05c8\5\u008cG\2\u05c7\u05c2"+ - "\3\2\2\2\u05c7\u05c8\3\2\2\2\u05c8\u05ca\3\2\2\2\u05c9\u05b3\3\2\2\2\u05c9"+ - "\u05c1\3\2\2\2\u05ca\u05ce\3\2\2\2\u05cb\u05cd\5`\61\2\u05cc\u05cb\3\2"+ - "\2\2\u05cd\u05d0\3\2\2\2\u05ce\u05cc\3\2\2\2\u05ce\u05cf\3\2\2\2\u05cf"+ - "\u05d3\3\2\2\2\u05d0\u05ce\3\2\2\2\u05d1\u05d2\7\22\2\2\u05d2\u05d4\5"+ - "\u0090I\2\u05d3\u05d1\3\2\2\2\u05d3\u05d4\3\2\2\2\u05d4\u05d6\3\2\2\2"+ - "\u05d5\u05d7\5\\/\2\u05d6\u05d5\3\2\2\2\u05d6\u05d7\3\2\2\2\u05d7\u05da"+ - "\3\2\2\2\u05d8\u05d9\7\32\2\2\u05d9\u05db\5\u0090I\2\u05da\u05d8\3\2\2"+ - "\2\u05da\u05db\3\2\2\2\u05db\u05dd\3\2\2\2\u05dc\u05de\5\u00b8]\2\u05dd"+ - "\u05dc\3\2\2\2\u05dd\u05de\3\2\2\2\u05de\u05e0\3\2\2\2\u05df\u058c\3\2"+ - "\2\2\u05df\u05c9\3\2\2\2\u05e0U\3\2\2\2\u05e1\u05e2\7\7\2\2\u05e2\u05e9"+ - "\5X-\2\u05e3\u05e5\7\5\2\2\u05e4\u05e3\3\2\2\2\u05e4\u05e5\3\2\2\2\u05e5"+ - "\u05e6\3\2\2\2\u05e6\u05e8\5X-\2\u05e7\u05e4\3\2\2\2\u05e8\u05eb\3\2\2"+ - "\2\u05e9\u05e7\3\2\2\2\u05e9\u05ea\3\2\2\2\u05ea\u05ec\3\2\2\2\u05eb\u05e9"+ - "\3\2\2\2\u05ec\u05ed\7\b\2\2\u05edW\3\2\2\2\u05ee\u05fc\5\u00c4c\2\u05ef"+ - "\u05f0\5\u00c4c\2\u05f0\u05f1\7\3\2\2\u05f1\u05f6\5\u0098M\2\u05f2\u05f3"+ - "\7\5\2\2\u05f3\u05f5\5\u0098M\2\u05f4\u05f2\3\2\2\2\u05f5\u05f8\3\2\2"+ - "\2\u05f6\u05f4\3\2\2\2\u05f6\u05f7\3\2\2\2\u05f7\u05f9\3\2\2\2\u05f8\u05f6"+ - "\3\2\2\2\u05f9\u05fa\7\4\2\2\u05fa\u05fc\3\2\2\2\u05fb\u05ee\3\2\2\2\u05fb"+ - "\u05ef\3\2\2\2\u05fcY\3\2\2\2\u05fd\u05fe\7\r\2\2\u05fe\u0603\5d\63\2"+ - "\u05ff\u0600\7\5\2\2\u0600\u0602\5d\63\2\u0601\u05ff\3\2\2\2\u0602\u0605"+ - "\3\2\2\2\u0603\u0601\3\2\2\2\u0603\u0604\3\2\2\2\u0604\u0609\3\2\2\2\u0605"+ - "\u0603\3\2\2\2\u0606\u0608\5`\61\2\u0607\u0606\3\2\2\2\u0608\u060b\3\2"+ - "\2\2\u0609\u0607\3\2\2\2\u0609\u060a\3\2\2\2\u060a[\3\2\2\2\u060b\u0609"+ - "\3\2\2\2\u060c\u060d\7\23\2\2\u060d\u060e\7\24\2\2\u060e\u0613\5\u008e"+ - "H\2\u060f\u0610\7\5\2\2\u0610\u0612\5\u008eH\2\u0611\u060f\3\2\2\2\u0612"+ - "\u0615\3\2\2\2\u0613\u0611\3\2\2\2\u0613\u0614\3\2\2\2\u0614\u0627\3\2"+ - "\2\2\u0615\u0613\3\2\2\2\u0616\u0617\7L\2\2\u0617\u0628\7\30\2\2\u0618"+ - "\u0619\7L\2\2\u0619\u0628\7\27\2\2\u061a\u061b\7\25\2\2\u061b\u061c\7"+ - "\26\2\2\u061c\u061d\7\3\2\2\u061d\u0622\5^\60\2\u061e\u061f\7\5\2\2\u061f"+ - "\u0621\5^\60\2\u0620\u061e\3\2\2\2\u0621\u0624\3\2\2\2\u0622\u0620\3\2"+ - "\2\2\u0622\u0623\3\2\2\2\u0623\u0625\3\2\2\2\u0624\u0622\3\2\2\2\u0625"+ - "\u0626\7\4\2\2\u0626\u0628\3\2\2\2\u0627\u0616\3\2\2\2\u0627\u0618\3\2"+ - "\2\2\u0627\u061a\3\2\2\2\u0627\u0628\3\2\2\2\u0628]\3\2\2\2\u0629\u0632"+ - "\7\3\2\2\u062a\u062f\5\u008eH\2\u062b\u062c\7\5\2\2\u062c\u062e\5\u008e"+ - "H\2\u062d\u062b\3\2\2\2\u062e\u0631\3\2\2\2\u062f\u062d\3\2\2\2\u062f"+ - "\u0630\3\2\2\2\u0630\u0633\3\2\2\2\u0631\u062f\3\2\2\2\u0632\u062a\3\2"+ - "\2\2\u0632\u0633\3\2\2\2\u0633\u0634\3\2\2\2\u0634\u0637\7\4\2\2\u0635"+ - "\u0637\5\u008eH\2\u0636\u0629\3\2\2\2\u0636\u0635\3\2\2\2\u0637_\3\2\2"+ - "\2\u0638\u0639\7>\2\2\u0639\u063b\7Q\2\2\u063a\u063c\7\66\2\2\u063b\u063a"+ - "\3\2\2\2\u063b\u063c\3\2\2\2\u063c\u063d\3\2\2\2\u063d\u063e\5\u00c2b"+ - "\2\u063e\u0647\7\3\2\2\u063f\u0644\5\u008eH\2\u0640\u0641\7\5\2\2\u0641"+ - "\u0643\5\u008eH\2\u0642\u0640\3\2\2\2\u0643\u0646\3\2\2\2\u0644\u0642"+ - "\3\2\2\2\u0644\u0645\3\2\2\2\u0645\u0648\3\2\2\2\u0646\u0644\3\2\2\2\u0647"+ - "\u063f\3\2\2\2\u0647\u0648\3\2\2\2\u0648\u0649\3\2\2\2\u0649\u064a\7\4"+ - "\2\2\u064a\u0656\5\u00c4c\2\u064b\u064d\7\17\2\2\u064c\u064b\3\2\2\2\u064c"+ - "\u064d\3\2\2\2\u064d\u064e\3\2\2\2\u064e\u0653\5\u00c4c\2\u064f\u0650"+ - "\7\5\2\2\u0650\u0652\5\u00c4c\2\u0651\u064f\3\2\2\2\u0652\u0655\3\2\2"+ - "\2\u0653\u0651\3\2\2\2\u0653\u0654\3\2\2\2\u0654\u0657\3\2\2\2\u0655\u0653"+ - "\3\2\2\2\u0656\u064c\3\2\2\2\u0656\u0657\3\2\2\2\u0657a\3\2\2\2\u0658"+ - "\u0659\t\r\2\2\u0659c\3\2\2\2\u065a\u065e\5|?\2\u065b\u065d\5f\64\2\u065c"+ - "\u065b\3\2\2\2\u065d\u0660\3\2\2\2\u065e\u065c\3\2\2\2\u065e\u065f\3\2"+ - "\2\2\u065fe\3\2\2\2\u0660\u065e\3\2\2\2\u0661\u0662\5h\65\2\u0662\u0663"+ - "\7\64\2\2\u0663\u0665\5|?\2\u0664\u0666\5j\66\2\u0665\u0664\3\2\2\2\u0665"+ - "\u0666\3\2\2\2\u0666\u066d\3\2\2\2\u0667\u0668\7<\2\2\u0668\u0669\5h\65"+ - "\2\u0669\u066a\7\64\2\2\u066a\u066b\5|?\2\u066b\u066d\3\2\2\2\u066c\u0661"+ - "\3\2\2\2\u066c\u0667\3\2\2\2\u066dg\3\2\2\2\u066e\u0670\7\67\2\2\u066f"+ - "\u066e\3\2\2\2\u066f\u0670\3\2\2\2\u0670\u0685\3\2\2\2\u0671\u0685\7\65"+ - "\2\2\u0672\u0674\78\2\2\u0673\u0675\7\66\2\2\u0674\u0673\3\2\2\2\u0674"+ - "\u0675\3\2\2\2\u0675\u0685\3\2\2\2\u0676\u0677\78\2\2\u0677\u0685\79\2"+ - "\2\u0678\u067a\7:\2\2\u0679\u067b\7\66\2\2\u067a\u0679\3\2\2\2\u067a\u067b"+ - "\3\2\2\2\u067b\u0685\3\2\2\2\u067c\u067e\7;\2\2\u067d\u067f\7\66\2\2\u067e"+ - "\u067d\3\2\2\2\u067e\u067f\3\2\2\2\u067f\u0685\3\2\2\2\u0680\u0682\78"+ - "\2\2\u0681\u0680\3\2\2\2\u0681\u0682\3\2\2\2\u0682\u0683\3\2\2\2\u0683"+ - "\u0685\7\u00f0\2\2\u0684\u066f\3\2\2\2\u0684\u0671\3\2\2\2\u0684\u0672"+ - "\3\2\2\2\u0684\u0676\3\2\2\2\u0684\u0678\3\2\2\2\u0684\u067c\3\2\2\2\u0684"+ - "\u0681\3\2\2\2\u0685i\3\2\2\2\u0686\u0687\7=\2\2\u0687\u0695\5\u0090I"+ - "\2\u0688\u0689\7\u00a2\2\2\u0689\u068a\7\3\2\2\u068a\u068f\5\u00c4c\2"+ - "\u068b\u068c\7\5\2\2\u068c\u068e\5\u00c4c\2\u068d\u068b\3\2\2\2\u068e"+ - "\u0691\3\2\2\2\u068f\u068d\3\2\2\2\u068f\u0690\3\2\2\2\u0690\u0692\3\2"+ - "\2\2\u0691\u068f\3\2\2\2\u0692\u0693\7\4\2\2\u0693\u0695\3\2\2\2\u0694"+ - "\u0686\3\2\2\2\u0694\u0688\3\2\2\2\u0695k\3\2\2\2\u0696\u0697\7j\2\2\u0697"+ - "\u0699\7\3\2\2\u0698\u069a\5n8\2\u0699\u0698\3\2\2\2\u0699\u069a\3\2\2"+ - "\2\u069a\u069b\3\2\2\2\u069b\u069c\7\4\2\2\u069cm\3\2\2\2\u069d\u069f"+ - "\7\u008e\2\2\u069e\u069d\3\2\2\2\u069e\u069f\3\2\2\2\u069f\u06a0\3\2\2"+ - "\2\u06a0\u06a1\t\16\2\2\u06a1\u06b6\7\u0098\2\2\u06a2\u06a3\5\u008eH\2"+ - "\u06a3\u06a4\7C\2\2\u06a4\u06b6\3\2\2\2\u06a5\u06a6\7\u0099\2\2\u06a6"+ - "\u06a7\7\u00f9\2\2\u06a7\u06a8\7\u009a\2\2\u06a8\u06a9\7\u009b\2\2\u06a9"+ - "\u06b2\7\u00f9\2\2\u06aa\u06b0\7=\2\2\u06ab\u06b1\5\u00c4c\2\u06ac\u06ad"+ - "\5\u00c2b\2\u06ad\u06ae\7\3\2\2\u06ae\u06af\7\4\2\2\u06af\u06b1\3\2\2"+ - "\2\u06b0\u06ab\3\2\2\2\u06b0\u06ac\3\2\2\2\u06b1\u06b3\3\2\2\2\u06b2\u06aa"+ - "\3\2\2\2\u06b2\u06b3\3\2\2\2\u06b3\u06b6\3\2\2\2\u06b4\u06b6\5\u008eH"+ - "\2\u06b5\u069e\3\2\2\2\u06b5\u06a2\3\2\2\2\u06b5\u06a5\3\2\2\2\u06b5\u06b4"+ - "\3\2\2\2\u06b6o\3\2\2\2\u06b7\u06b8\7\3\2\2\u06b8\u06b9\5r:\2\u06b9\u06ba"+ - "\7\4\2\2\u06baq\3\2\2\2\u06bb\u06c0\5\u00c4c\2\u06bc\u06bd\7\5\2\2\u06bd"+ - "\u06bf\5\u00c4c\2\u06be\u06bc\3\2\2\2\u06bf\u06c2\3\2\2\2\u06c0\u06be"+ - "\3\2\2\2\u06c0\u06c1\3\2\2\2\u06c1s\3\2\2\2\u06c2\u06c0\3\2\2\2\u06c3"+ - "\u06c4\7\3\2\2\u06c4\u06c9\5v<\2\u06c5\u06c6\7\5\2\2\u06c6\u06c8\5v<\2"+ - "\u06c7\u06c5\3\2\2\2\u06c8\u06cb\3\2\2\2\u06c9\u06c7\3\2\2\2\u06c9\u06ca"+ - "\3\2\2\2\u06ca\u06cc\3\2\2\2\u06cb\u06c9\3\2\2\2\u06cc\u06cd\7\4\2\2\u06cd"+ - "u\3\2\2\2\u06ce\u06d0\5\u00c4c\2\u06cf\u06d1\t\13\2\2\u06d0\u06cf\3\2"+ - "\2\2\u06d0\u06d1\3\2\2\2\u06d1w\3\2\2\2\u06d2\u06d3\7\3\2\2\u06d3\u06d8"+ - "\5z>\2\u06d4\u06d5\7\5\2\2\u06d5\u06d7\5z>\2\u06d6\u06d4\3\2\2\2\u06d7"+ - "\u06da\3\2\2\2\u06d8\u06d6\3\2\2\2\u06d8\u06d9\3\2\2\2\u06d9\u06db\3\2"+ - "\2\2\u06da\u06d8\3\2\2\2\u06db\u06dc\7\4\2\2\u06dcy\3\2\2\2\u06dd\u06e0"+ - "\5\u00c4c\2\u06de\u06df\7q\2\2\u06df\u06e1\7\u00f5\2\2\u06e0\u06de\3\2"+ - "\2\2\u06e0\u06e1\3\2\2\2\u06e1{\3\2\2\2\u06e2\u06e4\5\u0086D\2\u06e3\u06e5"+ - "\5l\67\2\u06e4\u06e3\3\2\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\3\2\2\2\u06e6"+ - "\u06e7\5\u0082B\2\u06e7\u06fb\3\2\2\2\u06e8\u06e9\7\3\2\2\u06e9\u06ea"+ - "\5H%\2\u06ea\u06ec\7\4\2\2\u06eb\u06ed\5l\67\2\u06ec\u06eb\3\2\2\2\u06ec"+ - "\u06ed\3\2\2\2\u06ed\u06ee\3\2\2\2\u06ee\u06ef\5\u0082B\2\u06ef\u06fb"+ - "\3\2\2\2\u06f0\u06f1\7\3\2\2\u06f1\u06f2\5d\63\2\u06f2\u06f4\7\4\2\2\u06f3"+ - "\u06f5\5l\67\2\u06f4\u06f3\3\2\2\2\u06f4\u06f5\3\2\2\2\u06f5\u06f6\3\2"+ - "\2\2\u06f6\u06f7\5\u0082B\2\u06f7\u06fb\3\2\2\2\u06f8\u06fb\5~@\2\u06f9"+ - "\u06fb\5\u0080A\2\u06fa\u06e2\3\2\2\2\u06fa\u06e8\3\2\2\2\u06fa\u06f0"+ - "\3\2\2\2\u06fa\u06f8\3\2\2\2\u06fa\u06f9\3\2\2\2\u06fb}\3\2\2\2\u06fc"+ - "\u06fd\7M\2\2\u06fd\u0702\5\u008eH\2\u06fe\u06ff\7\5\2\2\u06ff\u0701\5"+ - "\u008eH\2\u0700\u06fe\3\2\2\2\u0701\u0704\3\2\2\2\u0702\u0700\3\2\2\2"+ - "\u0702\u0703\3\2\2\2\u0703\u0705\3\2\2\2\u0704\u0702\3\2\2\2\u0705\u0706"+ - "\5\u0082B\2\u0706\177\3\2\2\2\u0707\u0708\5\u00c4c\2\u0708\u0711\7\3\2"+ - "\2\u0709\u070e\5\u008eH\2\u070a\u070b\7\5\2\2\u070b\u070d\5\u008eH\2\u070c"+ - "\u070a\3\2\2\2\u070d\u0710\3\2\2\2\u070e\u070c\3\2\2\2\u070e\u070f\3\2"+ - "\2\2\u070f\u0712\3\2\2\2\u0710\u070e\3\2\2\2\u0711\u0709\3\2\2\2\u0711"+ - "\u0712\3\2\2\2\u0712\u0713\3\2\2\2\u0713\u0714\7\4\2\2\u0714\u0715\5\u0082"+ - "B\2\u0715\u0081\3\2\2\2\u0716\u0718\7\17\2\2\u0717\u0716\3\2\2\2\u0717"+ - "\u0718\3\2\2\2\u0718\u0719\3\2\2\2\u0719\u071b\5\u00c6d\2\u071a\u071c"+ - "\5p9\2\u071b\u071a\3\2\2\2\u071b\u071c\3\2\2\2\u071c\u071e\3\2\2\2\u071d"+ - "\u0717\3\2\2\2\u071d\u071e\3\2\2\2\u071e\u0083\3\2\2\2\u071f\u0720\7K"+ - "\2\2\u0720\u0721\7X\2\2\u0721\u0722\7\u00a3\2\2\u0722\u0726\7\u00f5\2"+ - "\2\u0723\u0724\7L\2\2\u0724\u0725\7\u00a4\2\2\u0725\u0727\5\64\33\2\u0726"+ - "\u0723\3\2\2\2\u0726\u0727\3\2\2\2\u0727\u0751\3\2\2\2\u0728\u0729\7K"+ - "\2\2\u0729\u072a\7X\2\2\u072a\u0734\7\u00a7\2\2\u072b\u072c\7\u00a8\2"+ - "\2\u072c\u072d\7\u00a9\2\2\u072d\u072e\7\24\2\2\u072e\u0732\7\u00f5\2"+ - "\2\u072f\u0730\7\u00ad\2\2\u0730\u0731\7\24\2\2\u0731\u0733\7\u00f5\2"+ - "\2\u0732\u072f\3\2\2\2\u0732\u0733\3\2\2\2\u0733\u0735\3\2\2\2\u0734\u072b"+ - "\3\2\2\2\u0734\u0735\3\2\2\2\u0735\u073b\3\2\2\2\u0736\u0737\7\u00aa\2"+ - "\2\u0737\u0738\7\u00ab\2\2\u0738\u0739\7\u00a9\2\2\u0739\u073a\7\24\2"+ - "\2\u073a\u073c\7\u00f5\2\2\u073b\u0736\3\2\2\2\u073b\u073c\3\2\2\2\u073c"+ - "\u0742\3\2\2\2\u073d\u073e\7o\2\2\u073e\u073f\7\u00ac\2\2\u073f\u0740"+ - "\7\u00a9\2\2\u0740\u0741\7\24\2\2\u0741\u0743\7\u00f5\2\2\u0742\u073d"+ - "\3\2\2\2\u0742\u0743\3\2\2\2\u0743\u0748\3\2\2\2\u0744\u0745\7\u00ae\2"+ - "\2\u0745\u0746\7\u00a9\2\2\u0746\u0747\7\24\2\2\u0747\u0749\7\u00f5\2"+ - "\2\u0748\u0744\3\2\2\2\u0748\u0749\3\2\2\2\u0749\u074e\3\2\2\2\u074a\u074b"+ - "\7\'\2\2\u074b\u074c\7\u00dc\2\2\u074c\u074d\7\17\2\2\u074d\u074f\7\u00f5"+ - "\2\2\u074e\u074a\3\2\2\2\u074e\u074f\3\2\2\2\u074f\u0751\3\2\2\2\u0750"+ - "\u071f\3\2\2\2\u0750\u0728\3\2\2\2\u0751\u0085\3\2\2\2\u0752\u0753\5\u00c4"+ - "c\2\u0753\u0754\7\6\2\2\u0754\u0756\3\2\2\2\u0755\u0752\3\2\2\2\u0755"+ - "\u0756\3\2\2\2\u0756\u0757\3\2\2\2\u0757\u0758\5\u00c4c\2\u0758\u0087"+ - "\3\2\2\2\u0759\u075a\5\u00c4c\2\u075a\u075b\7\6\2\2\u075b\u075d\3\2\2"+ - "\2\u075c\u0759\3\2\2\2\u075c\u075d\3\2\2\2\u075d\u075e\3\2\2\2\u075e\u075f"+ - "\5\u00c4c\2\u075f\u0089\3\2\2\2\u0760\u0768\5\u008eH\2\u0761\u0763\7\17"+ - "\2\2\u0762\u0761\3\2\2\2\u0762\u0763\3\2\2\2\u0763\u0766\3\2\2\2\u0764"+ - "\u0767\5\u00c4c\2\u0765\u0767\5p9\2\u0766\u0764\3\2\2\2\u0766\u0765\3"+ - "\2\2\2\u0767\u0769\3\2\2\2\u0768\u0762\3\2\2\2\u0768\u0769\3\2\2\2\u0769"+ - "\u008b\3\2\2\2\u076a\u076f\5\u008aF\2\u076b\u076c\7\5\2\2\u076c\u076e"+ - "\5\u008aF\2\u076d\u076b\3\2\2\2\u076e\u0771\3\2\2\2\u076f\u076d\3\2\2"+ - "\2\u076f\u0770\3\2\2\2\u0770\u008d\3\2\2\2\u0771\u076f\3\2\2\2\u0772\u0773"+ - "\5\u0090I\2\u0773\u008f\3\2\2\2\u0774\u0775\bI\1\2\u0775\u0776\7 \2\2"+ - "\u0776\u077e\5\u0090I\7\u0777\u0778\7\"\2\2\u0778\u0779\7\3\2\2\u0779"+ - "\u077a\5 \21\2\u077a\u077b\7\4\2\2\u077b\u077e\3\2\2\2\u077c\u077e\5\u0092"+ - "J\2\u077d\u0774\3\2\2\2\u077d\u0777\3\2\2\2\u077d\u077c\3\2\2\2\u077e"+ - "\u0787\3\2\2\2\u077f\u0780\f\4\2\2\u0780\u0781\7\36\2\2\u0781\u0786\5"+ - "\u0090I\5\u0782\u0783\f\3\2\2\u0783\u0784\7\35\2\2\u0784\u0786\5\u0090"+ - "I\4\u0785\u077f\3\2\2\2\u0785\u0782\3\2\2\2\u0786\u0789\3\2\2\2\u0787"+ - "\u0785\3\2\2\2\u0787\u0788\3\2\2\2\u0788\u0091\3\2\2\2\u0789\u0787\3\2"+ - "\2\2\u078a\u078c\5\u0096L\2\u078b\u078d\5\u0094K\2\u078c\u078b\3\2\2\2"+ - "\u078c\u078d\3\2\2\2\u078d\u0093\3\2\2\2\u078e\u0790\7 \2\2\u078f\u078e"+ - "\3\2\2\2\u078f\u0790\3\2\2\2\u0790\u0791\3\2\2\2\u0791\u0792\7#\2\2\u0792"+ - "\u0793\5\u0096L\2\u0793\u0794\7\36\2\2\u0794\u0795\5\u0096L\2\u0795\u07bf"+ - "\3\2\2\2\u0796\u0798\7 \2\2\u0797\u0796\3\2\2\2\u0797\u0798\3\2\2\2\u0798"+ - "\u0799\3\2\2\2\u0799\u079a\7\37\2\2\u079a\u079b\7\3\2\2\u079b\u07a0\5"+ - "\u008eH\2\u079c\u079d\7\5\2\2\u079d\u079f\5\u008eH\2\u079e\u079c\3\2\2"+ - "\2\u079f\u07a2\3\2\2\2\u07a0\u079e\3\2\2\2\u07a0\u07a1\3\2\2\2\u07a1\u07a3"+ - "\3\2\2\2\u07a2\u07a0\3\2\2\2\u07a3\u07a4\7\4\2\2\u07a4\u07bf\3\2\2\2\u07a5"+ - "\u07a7\7 \2\2\u07a6\u07a5\3\2\2\2\u07a6\u07a7\3\2\2\2\u07a7\u07a8\3\2"+ - "\2\2\u07a8\u07a9\7\37\2\2\u07a9\u07aa\7\3\2\2\u07aa\u07ab\5 \21\2\u07ab"+ - "\u07ac\7\4\2\2\u07ac\u07bf\3\2\2\2\u07ad\u07af\7 \2\2\u07ae\u07ad\3\2"+ - "\2\2\u07ae\u07af\3\2\2\2\u07af\u07b0\3\2\2\2\u07b0\u07b1\t\17\2\2\u07b1"+ - "\u07bf\5\u0096L\2\u07b2\u07b4\7&\2\2\u07b3\u07b5\7 \2\2\u07b4\u07b3\3"+ - "\2\2\2\u07b4\u07b5\3\2\2\2\u07b5\u07b6\3\2\2\2\u07b6\u07bf\7\'\2\2\u07b7"+ - "\u07b9\7&\2\2\u07b8\u07ba\7 \2\2\u07b9\u07b8\3\2\2\2\u07b9\u07ba\3\2\2"+ - "\2\u07ba\u07bb\3\2\2\2\u07bb\u07bc\7\21\2\2\u07bc\u07bd\7\r\2\2\u07bd"+ - "\u07bf\5\u0096L\2\u07be\u078f\3\2\2\2\u07be\u0797\3\2\2\2\u07be\u07a6"+ - "\3\2\2\2\u07be\u07ae\3\2\2\2\u07be\u07b2\3\2\2\2\u07be\u07b7\3\2\2\2\u07bf"+ - "\u0095\3\2\2\2\u07c0\u07c1\bL\1\2\u07c1\u07c5\5\u0098M\2\u07c2\u07c3\t"+ - "\20\2\2\u07c3\u07c5\5\u0096L\t\u07c4\u07c0\3\2\2\2\u07c4\u07c2\3\2\2\2"+ - "\u07c5\u07db\3\2\2\2\u07c6\u07c7\f\b\2\2\u07c7\u07c8\t\21\2\2\u07c8\u07da"+ - "\5\u0096L\t\u07c9\u07ca\f\7\2\2\u07ca\u07cb\t\22\2\2\u07cb\u07da\5\u0096"+ - "L\b\u07cc\u07cd\f\6\2\2\u07cd\u07ce\7\u0094\2\2\u07ce\u07da\5\u0096L\7"+ - "\u07cf\u07d0\f\5\2\2\u07d0\u07d1\7\u0097\2\2\u07d1\u07da\5\u0096L\6\u07d2"+ - "\u07d3\f\4\2\2\u07d3\u07d4\7\u0095\2\2\u07d4\u07da\5\u0096L\5\u07d5\u07d6"+ - "\f\3\2\2\u07d6\u07d7\5\u009cO\2\u07d7\u07d8\5\u0096L\4\u07d8\u07da\3\2"+ - "\2\2\u07d9\u07c6\3\2\2\2\u07d9\u07c9\3\2\2\2\u07d9\u07cc\3\2\2\2\u07d9"+ - "\u07cf\3\2\2\2\u07d9\u07d2\3\2\2\2\u07d9\u07d5\3\2\2\2\u07da\u07dd\3\2"+ - "\2\2\u07db\u07d9\3\2\2\2\u07db\u07dc\3\2\2\2\u07dc\u0097\3\2\2\2\u07dd"+ - "\u07db\3\2\2\2\u07de\u07df\bM\1\2\u07df\u07e1\7/\2\2\u07e0\u07e2\5\u00b6"+ - "\\\2\u07e1\u07e0\3\2\2\2\u07e2\u07e3\3\2\2\2\u07e3\u07e1\3\2\2\2\u07e3"+ - "\u07e4\3\2\2\2\u07e4\u07e7\3\2\2\2\u07e5\u07e6\7\62\2\2\u07e6\u07e8\5"+ - "\u008eH\2\u07e7\u07e5\3\2\2\2\u07e7\u07e8\3\2\2\2\u07e8\u07e9\3\2\2\2"+ - "\u07e9\u07ea\7\63\2\2\u07ea\u085b\3\2\2\2\u07eb\u07ec\7/\2\2\u07ec\u07ee"+ - "\5\u008eH\2\u07ed\u07ef\5\u00b6\\\2\u07ee\u07ed\3\2\2\2\u07ef\u07f0\3"+ - "\2\2\2\u07f0\u07ee\3\2\2\2\u07f0\u07f1\3\2\2\2\u07f1\u07f4\3\2\2\2\u07f2"+ - "\u07f3\7\62\2\2\u07f3\u07f5\5\u008eH\2\u07f4\u07f2\3\2\2\2\u07f4\u07f5"+ - "\3\2\2\2\u07f5\u07f6\3\2\2\2\u07f6\u07f7\7\63\2\2\u07f7\u085b\3\2\2\2"+ - "\u07f8\u07f9\7\\\2\2\u07f9\u07fa\7\3\2\2\u07fa\u07fb\5\u008eH\2\u07fb"+ - "\u07fc\7\17\2\2\u07fc\u07fd\5\u00acW\2\u07fd\u07fe\7\4\2\2\u07fe\u085b"+ - "\3\2\2\2\u07ff\u0800\7p\2\2\u0800\u0809\7\3\2\2\u0801\u0806\5\u008aF\2"+ - "\u0802\u0803\7\5\2\2\u0803\u0805\5\u008aF\2\u0804\u0802\3\2\2\2\u0805"+ - "\u0808\3\2\2\2\u0806\u0804\3\2\2\2\u0806\u0807\3\2\2\2\u0807\u080a\3\2"+ - "\2\2\u0808\u0806\3\2\2\2\u0809\u0801\3\2\2\2\u0809\u080a\3\2\2\2\u080a"+ - "\u080b\3\2\2\2\u080b\u085b\7\4\2\2\u080c\u080d\7H\2\2\u080d\u080e\7\3"+ - "\2\2\u080e\u0811\5\u008eH\2\u080f\u0810\7{\2\2\u0810\u0812\7*\2\2\u0811"+ - "\u080f\3\2\2\2\u0811\u0812\3\2\2\2\u0812\u0813\3\2\2\2\u0813\u0814\7\4"+ - "\2\2\u0814\u085b\3\2\2\2\u0815\u0816\7J\2\2\u0816\u0817\7\3\2\2\u0817"+ - "\u081a\5\u008eH\2\u0818\u0819\7{\2\2\u0819\u081b\7*\2\2\u081a\u0818\3"+ - "\2\2\2\u081a\u081b\3\2\2\2\u081b\u081c\3\2\2\2\u081c\u081d\7\4\2\2\u081d"+ - "\u085b\3\2\2\2\u081e\u081f\7\u0084\2\2\u081f\u0820\7\3\2\2\u0820\u0821"+ - "\5\u0096L\2\u0821\u0822\7\37\2\2\u0822\u0823\5\u0096L\2\u0823\u0824\7"+ - "\4\2\2\u0824\u085b\3\2\2\2\u0825\u085b\5\u009aN\2\u0826\u085b\7\u008f"+ - "\2\2\u0827\u0828\5\u00c2b\2\u0828\u0829\7\6\2\2\u0829\u082a\7\u008f\2"+ - "\2\u082a\u085b\3\2\2\2\u082b\u082c\7\3\2\2\u082c\u082f\5\u008aF\2\u082d"+ - "\u082e\7\5\2\2\u082e\u0830\5\u008aF\2\u082f\u082d\3\2\2\2\u0830\u0831"+ - "\3\2\2\2\u0831\u082f\3\2\2\2\u0831\u0832\3\2\2\2\u0832\u0833\3\2\2\2\u0833"+ - "\u0834\7\4\2\2\u0834\u085b\3\2\2\2\u0835\u0836\7\3\2\2\u0836\u0837\5 "+ - "\21\2\u0837\u0838\7\4\2\2\u0838\u085b\3\2\2\2\u0839\u083a\5\u00c2b\2\u083a"+ - "\u0846\7\3\2\2\u083b\u083d\5b\62\2\u083c\u083b\3\2\2\2\u083c\u083d\3\2"+ - "\2\2\u083d\u083e\3\2\2\2\u083e\u0843\5\u008eH\2\u083f\u0840\7\5\2\2\u0840"+ - "\u0842\5\u008eH\2\u0841\u083f\3\2\2\2\u0842\u0845\3\2\2\2\u0843\u0841"+ - "\3\2\2\2\u0843\u0844\3\2\2\2\u0844\u0847\3\2\2\2\u0845\u0843\3\2\2\2\u0846"+ - "\u083c\3\2\2\2\u0846\u0847\3\2\2\2\u0847\u0848\3\2\2\2\u0848\u084b\7\4"+ - "\2\2\u0849\u084a\7@\2\2\u084a\u084c\5\u00bc_\2\u084b\u0849\3\2\2\2\u084b"+ - "\u084c\3\2\2\2\u084c\u085b\3\2\2\2\u084d\u084e\5\u00c2b\2\u084e\u084f"+ - "\7\3\2\2\u084f\u0850\t\23\2\2\u0850\u0851\5\u008eH\2\u0851\u0852\7\r\2"+ - "\2\u0852\u0853\5\u008eH\2\u0853\u0854\7\4\2\2\u0854\u085b\3\2\2\2\u0855"+ - "\u085b\5\u00c4c\2\u0856\u0857\7\3\2\2\u0857\u0858\5\u008eH\2\u0858\u0859"+ - "\7\4\2\2\u0859\u085b\3\2\2\2\u085a\u07de\3\2\2\2\u085a\u07eb\3\2\2\2\u085a"+ - "\u07f8\3\2\2\2\u085a\u07ff\3\2\2\2\u085a\u080c\3\2\2\2\u085a\u0815\3\2"+ - "\2\2\u085a\u081e\3\2\2\2\u085a\u0825\3\2\2\2\u085a\u0826\3\2\2\2\u085a"+ - "\u0827\3\2\2\2\u085a\u082b\3\2\2\2\u085a\u0835\3\2\2\2\u085a\u0839\3\2"+ - "\2\2\u085a\u084d\3\2\2\2\u085a\u0855\3\2\2\2\u085a\u0856\3\2\2\2\u085b"+ - "\u0866\3\2\2\2\u085c\u085d\f\6\2\2\u085d\u085e\7\t\2\2\u085e\u085f\5\u0096"+ - "L\2\u085f\u0860\7\n\2\2\u0860\u0865\3\2\2\2\u0861\u0862\f\4\2\2\u0862"+ - "\u0863\7\6\2\2\u0863\u0865\5\u00c4c\2\u0864\u085c\3\2\2\2\u0864\u0861"+ - "\3\2\2\2\u0865\u0868\3\2\2\2\u0866\u0864\3\2\2\2\u0866\u0867\3\2\2\2\u0867"+ - "\u0099\3\2\2\2\u0868\u0866\3\2\2\2\u0869\u0876\7\'\2\2\u086a\u0876\5\u00a4"+ - "S\2\u086b\u086c\5\u00c4c\2\u086c\u086d\7\u00f5\2\2\u086d\u0876\3\2\2\2"+ - "\u086e\u0876\5\u00caf\2\u086f\u0876\5\u00a2R\2\u0870\u0872\7\u00f5\2\2"+ - "\u0871\u0870\3\2\2\2\u0872\u0873\3\2\2\2\u0873\u0871\3\2\2\2\u0873\u0874"+ - "\3\2\2\2\u0874\u0876\3\2\2\2\u0875\u0869\3\2\2\2\u0875\u086a\3\2\2\2\u0875"+ - "\u086b\3\2\2\2\u0875\u086e\3\2\2\2\u0875\u086f\3\2\2\2\u0875\u0871\3\2"+ - "\2\2\u0876\u009b\3\2\2\2\u0877\u0878\t\24\2\2\u0878\u009d\3\2\2\2\u0879"+ - "\u087a\t\25\2\2\u087a\u009f\3\2\2\2\u087b\u087c\t\26\2\2\u087c\u00a1\3"+ - "\2\2\2\u087d\u087e\t\27\2\2\u087e\u00a3\3\2\2\2\u087f\u0883\7.\2\2\u0880"+ - "\u0882\5\u00a6T\2\u0881\u0880\3\2\2\2\u0882\u0885\3\2\2\2\u0883\u0881"+ - "\3\2\2\2\u0883\u0884\3\2\2\2\u0884\u00a5\3\2\2\2\u0885\u0883\3\2\2\2\u0886"+ - "\u0887\5\u00a8U\2\u0887\u088a\5\u00c4c\2\u0888\u0889\7i\2\2\u0889\u088b"+ - "\5\u00c4c\2\u088a\u0888\3\2\2\2\u088a\u088b\3\2\2\2\u088b\u00a7\3\2\2"+ - "\2\u088c\u088e\t\30\2\2\u088d\u088c\3\2\2\2\u088d\u088e\3\2\2\2\u088e"+ - "\u088f\3\2\2\2\u088f\u0892\t\16\2\2\u0890\u0892\7\u00f5\2\2\u0891\u088d"+ - "\3\2\2\2\u0891\u0890\3\2\2\2\u0892\u00a9\3\2\2\2\u0893\u0897\7H\2\2\u0894"+ - "\u0895\7I\2\2\u0895\u0897\5\u00c4c\2\u0896\u0893\3\2\2\2\u0896\u0894\3"+ - "\2\2\2\u0897\u00ab\3\2\2\2\u0898\u0899\7n\2\2\u0899\u089a\7\u0089\2\2"+ - "\u089a\u089b\5\u00acW\2\u089b\u089c\7\u008b\2\2\u089c\u08bb\3\2\2\2\u089d"+ - "\u089e\7o\2\2\u089e\u089f\7\u0089\2\2\u089f\u08a0\5\u00acW\2\u08a0\u08a1"+ - "\7\5\2\2\u08a1\u08a2\5\u00acW\2\u08a2\u08a3\7\u008b\2\2\u08a3\u08bb\3"+ - "\2\2\2\u08a4\u08ab\7p\2\2\u08a5\u08a7\7\u0089\2\2\u08a6\u08a8\5\u00b2"+ - "Z\2\u08a7\u08a6\3\2\2\2\u08a7\u08a8\3\2\2\2\u08a8\u08a9\3\2\2\2\u08a9"+ - "\u08ac\7\u008b\2\2\u08aa\u08ac\7\u0087\2\2\u08ab\u08a5\3\2\2\2\u08ab\u08aa"+ - "\3\2\2\2\u08ac\u08bb\3\2\2\2\u08ad\u08b8\5\u00c4c\2\u08ae\u08af\7\3\2"+ - "\2\u08af\u08b4\7\u00f9\2\2\u08b0\u08b1\7\5\2\2\u08b1\u08b3\7\u00f9\2\2"+ - "\u08b2\u08b0\3\2\2\2\u08b3\u08b6\3\2\2\2\u08b4\u08b2\3\2\2\2\u08b4\u08b5"+ - "\3\2\2\2\u08b5\u08b7\3\2\2\2\u08b6\u08b4\3\2\2\2\u08b7\u08b9\7\4\2\2\u08b8"+ - "\u08ae\3\2\2\2\u08b8\u08b9\3\2\2\2\u08b9\u08bb\3\2\2\2\u08ba\u0898\3\2"+ - "\2\2\u08ba\u089d\3\2\2\2\u08ba\u08a4\3\2\2\2\u08ba\u08ad\3\2\2\2\u08bb"+ - "\u00ad\3\2\2\2\u08bc\u08c1\5\u00b0Y\2\u08bd\u08be\7\5\2\2\u08be\u08c0"+ - "\5\u00b0Y\2\u08bf\u08bd\3\2\2\2\u08c0\u08c3\3\2\2\2\u08c1\u08bf\3\2\2"+ - "\2\u08c1\u08c2\3\2\2\2\u08c2\u00af\3\2\2\2\u08c3\u08c1\3\2\2\2\u08c4\u08c5"+ - "\5\u00c4c\2\u08c5\u08c8\5\u00acW\2\u08c6\u08c7\7q\2\2\u08c7\u08c9\7\u00f5"+ - "\2\2\u08c8\u08c6\3\2\2\2\u08c8\u08c9\3\2\2\2\u08c9\u00b1\3\2\2\2\u08ca"+ - "\u08cf\5\u00b4[\2\u08cb\u08cc\7\5\2\2\u08cc\u08ce\5\u00b4[\2\u08cd\u08cb"+ - "\3\2\2\2\u08ce\u08d1\3\2\2\2\u08cf\u08cd\3\2\2\2\u08cf\u08d0\3\2\2\2\u08d0"+ - "\u00b3\3\2\2\2\u08d1\u08cf\3\2\2\2\u08d2\u08d3\5\u00c4c\2\u08d3\u08d4"+ - "\7\13\2\2\u08d4\u08d7\5\u00acW\2\u08d5\u08d6\7q\2\2\u08d6\u08d8\7\u00f5"+ - "\2\2\u08d7\u08d5\3\2\2\2\u08d7\u08d8\3\2\2\2\u08d8\u00b5\3\2\2\2\u08d9"+ - "\u08da\7\60\2\2\u08da\u08db\5\u008eH\2\u08db\u08dc\7\61\2\2\u08dc\u08dd"+ - "\5\u008eH\2\u08dd\u00b7\3\2\2\2\u08de\u08df\7?\2\2\u08df\u08e4\5\u00ba"+ - "^\2\u08e0\u08e1\7\5\2\2\u08e1\u08e3\5\u00ba^\2\u08e2\u08e0\3\2\2\2\u08e3"+ - "\u08e6\3\2\2\2\u08e4\u08e2\3\2\2\2\u08e4\u08e5\3\2\2\2\u08e5\u00b9\3\2"+ - "\2\2\u08e6\u08e4\3\2\2\2\u08e7\u08e8\5\u00c4c\2\u08e8\u08e9\7\17\2\2\u08e9"+ - "\u08ea\5\u00bc_\2\u08ea\u00bb\3\2\2\2\u08eb\u0916\5\u00c4c\2\u08ec\u090f"+ - "\7\3\2\2\u08ed\u08ee\7\u009d\2\2\u08ee\u08ef\7\24\2\2\u08ef\u08f4\5\u008e"+ - "H\2\u08f0\u08f1\7\5\2\2\u08f1\u08f3\5\u008eH\2\u08f2\u08f0\3\2\2\2\u08f3"+ - "\u08f6\3\2\2\2\u08f4\u08f2\3\2\2\2\u08f4\u08f5\3\2\2\2\u08f5\u0910\3\2"+ - "\2\2\u08f6\u08f4\3\2\2\2\u08f7\u08f8\t\31\2\2\u08f8\u08f9\7\24\2\2\u08f9"+ - "\u08fe\5\u008eH\2\u08fa\u08fb\7\5\2\2\u08fb\u08fd\5\u008eH\2\u08fc\u08fa"+ - "\3\2\2\2\u08fd\u0900\3\2\2\2\u08fe\u08fc\3\2\2\2\u08fe\u08ff\3\2\2\2\u08ff"+ - "\u0902\3\2\2\2\u0900\u08fe\3\2\2\2\u0901\u08f7\3\2\2\2\u0901\u0902\3\2"+ - "\2\2\u0902\u090d\3\2\2\2\u0903\u0904\t\32\2\2\u0904\u0905\7\24\2\2\u0905"+ - "\u090a\5R*\2\u0906\u0907\7\5\2\2\u0907\u0909\5R*\2\u0908\u0906\3\2\2\2"+ - "\u0909\u090c\3\2\2\2\u090a\u0908\3\2\2\2\u090a\u090b\3\2\2\2\u090b\u090e"+ - "\3\2\2\2\u090c\u090a\3\2\2\2\u090d\u0903\3\2\2\2\u090d\u090e\3\2\2\2\u090e"+ - "\u0910\3\2\2\2\u090f\u08ed\3\2\2\2\u090f\u0901\3\2\2\2\u0910\u0912\3\2"+ - "\2\2\u0911\u0913\5\u00be`\2\u0912\u0911\3\2\2\2\u0912\u0913\3\2\2\2\u0913"+ - "\u0914\3\2\2\2\u0914\u0916\7\4\2\2\u0915\u08eb\3\2\2\2\u0915\u08ec\3\2"+ - "\2\2\u0916\u00bd\3\2\2\2\u0917\u0918\7B\2\2\u0918\u0928\5\u00c0a\2\u0919"+ - "\u091a\7C\2\2\u091a\u0928\5\u00c0a\2\u091b\u091c\7B\2\2\u091c\u091d\7"+ - "#\2\2\u091d\u091e\5\u00c0a\2\u091e\u091f\7\36\2\2\u091f\u0920\5\u00c0"+ - "a\2\u0920\u0928\3\2\2\2\u0921\u0922\7C\2\2\u0922\u0923\7#\2\2\u0923\u0924"+ - "\5\u00c0a\2\u0924\u0925\7\36\2\2\u0925\u0926\5\u00c0a\2\u0926\u0928\3"+ - "\2\2\2\u0927\u0917\3\2\2\2\u0927\u0919\3\2\2\2\u0927\u091b\3\2\2\2\u0927"+ - "\u0921\3\2\2\2\u0928\u00bf\3\2\2\2\u0929\u092a\7D\2\2\u092a\u0931\t\33"+ - "\2\2\u092b\u092c\7G\2\2\u092c\u0931\7K\2\2\u092d\u092e\5\u008eH\2\u092e"+ - "\u092f\t\33\2\2\u092f\u0931\3\2\2\2\u0930\u0929\3\2\2\2"; + "\n\21\3\21\3\21\3\22\3\22\3\22\5\22\u045d\n\22\3\22\3\22\3\22\3\22\3\22"+ + "\5\22\u0464\n\22\5\22\u0466\n\22\3\22\3\22\3\22\5\22\u046b\n\22\3\22\3"+ + "\22\5\22\u046f\n\22\3\22\3\22\3\22\5\22\u0474\n\22\3\22\3\22\3\22\5\22"+ + "\u0479\n\22\3\22\5\22\u047c\n\22\3\22\3\22\3\22\5\22\u0481\n\22\3\22\3"+ + "\22\5\22\u0485\n\22\3\22\3\22\3\22\5\22\u048a\n\22\5\22\u048c\n\22\3\23"+ + "\3\23\5\23\u0490\n\23\3\24\3\24\3\24\3\24\3\24\7\24\u0497\n\24\f\24\16"+ + "\24\u049a\13\24\3\24\3\24\3\25\3\25\3\25\5\25\u04a1\n\25\3\26\3\26\3\26"+ + "\3\26\3\26\5\26\u04a8\n\26\3\27\3\27\3\27\7\27\u04ad\n\27\f\27\16\27\u04b0"+ + "\13\27\3\30\3\30\3\30\3\30\7\30\u04b6\n\30\f\30\16\30\u04b9\13\30\3\31"+ + "\3\31\5\31\u04bd\n\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33"+ + "\3\33\7\33\u04ca\n\33\f\33\16\33\u04cd\13\33\3\33\3\33\3\34\3\34\5\34"+ + "\u04d3\n\34\3\34\5\34\u04d6\n\34\3\35\3\35\3\35\7\35\u04db\n\35\f\35\16"+ + "\35\u04de\13\35\3\35\5\35\u04e1\n\35\3\36\3\36\3\36\3\36\5\36\u04e7\n"+ + "\36\3\37\3\37\3\37\3\37\7\37\u04ed\n\37\f\37\16\37\u04f0\13\37\3\37\3"+ + "\37\3 \3 \3 \3 \7 \u04f8\n \f \16 \u04fb\13 \3 \3 \3!\3!\3!\3!\3!\3!\5"+ + "!\u0505\n!\3\"\3\"\3\"\3\"\3\"\5\"\u050c\n\"\3#\3#\3#\3#\5#\u0512\n#\3"+ + "$\3$\3$\3%\5%\u0518\n%\3%\3%\3%\3%\3%\6%\u051f\n%\r%\16%\u0520\5%\u0523"+ + "\n%\3&\3&\3&\3&\3&\7&\u052a\n&\f&\16&\u052d\13&\5&\u052f\n&\3&\3&\3&\3"+ + "&\3&\7&\u0536\n&\f&\16&\u0539\13&\5&\u053b\n&\3&\3&\3&\3&\3&\7&\u0542"+ + "\n&\f&\16&\u0545\13&\5&\u0547\n&\3&\3&\3&\3&\3&\7&\u054e\n&\f&\16&\u0551"+ + "\13&\5&\u0553\n&\3&\5&\u0556\n&\3&\3&\3&\5&\u055b\n&\5&\u055d\n&\3\'\5"+ + "\'\u0560\n\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\5(\u056b\n(\3(\7(\u056e\n("+ + "\f(\16(\u0571\13(\3)\3)\3)\3)\3)\3)\3)\3)\5)\u057b\n)\3*\3*\5*\u057f\n"+ + "*\3*\3*\5*\u0583\n*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\5+\u058f\n+\3+\5+\u0592"+ + "\n+\3+\3+\5+\u0596\n+\3+\3+\3+\3+\3+\3+\3+\3+\5+\u05a0\n+\3+\3+\5+\u05a4"+ + "\n+\5+\u05a6\n+\3+\5+\u05a9\n+\3+\3+\5+\u05ad\n+\3+\5+\u05b0\n+\3+\3+"+ + "\5+\u05b4\n+\3+\3+\7+\u05b8\n+\f+\16+\u05bb\13+\3+\5+\u05be\n+\3+\3+\5"+ + "+\u05c2\n+\3+\3+\3+\5+\u05c7\n+\3+\5+\u05ca\n+\5+\u05cc\n+\3+\7+\u05cf"+ + "\n+\f+\16+\u05d2\13+\3+\3+\5+\u05d6\n+\3+\5+\u05d9\n+\3+\3+\5+\u05dd\n"+ + "+\3+\5+\u05e0\n+\5+\u05e2\n+\3,\3,\3,\5,\u05e7\n,\3,\7,\u05ea\n,\f,\16"+ + ",\u05ed\13,\3,\3,\3-\3-\3-\3-\3-\3-\7-\u05f7\n-\f-\16-\u05fa\13-\3-\3"+ + "-\5-\u05fe\n-\3.\3.\3.\3.\7.\u0604\n.\f.\16.\u0607\13.\3.\7.\u060a\n."+ + "\f.\16.\u060d\13.\3/\3/\3/\3/\3/\7/\u0614\n/\f/\16/\u0617\13/\3/\3/\3"+ + "/\3/\3/\3/\3/\3/\3/\3/\7/\u0623\n/\f/\16/\u0626\13/\3/\3/\5/\u062a\n/"+ + "\3\60\3\60\3\60\3\60\7\60\u0630\n\60\f\60\16\60\u0633\13\60\5\60\u0635"+ + "\n\60\3\60\3\60\5\60\u0639\n\60\3\61\3\61\3\61\5\61\u063e\n\61\3\61\3"+ + "\61\3\61\3\61\3\61\7\61\u0645\n\61\f\61\16\61\u0648\13\61\5\61\u064a\n"+ + "\61\3\61\3\61\3\61\5\61\u064f\n\61\3\61\3\61\3\61\7\61\u0654\n\61\f\61"+ + "\16\61\u0657\13\61\5\61\u0659\n\61\3\62\3\62\3\63\3\63\7\63\u065f\n\63"+ + "\f\63\16\63\u0662\13\63\3\64\3\64\3\64\3\64\5\64\u0668\n\64\3\64\3\64"+ + "\3\64\3\64\3\64\5\64\u066f\n\64\3\65\5\65\u0672\n\65\3\65\3\65\3\65\5"+ + "\65\u0677\n\65\3\65\3\65\3\65\3\65\5\65\u067d\n\65\3\65\3\65\5\65\u0681"+ + "\n\65\3\65\5\65\u0684\n\65\3\65\5\65\u0687\n\65\3\66\3\66\3\66\3\66\3"+ + "\66\3\66\3\66\7\66\u0690\n\66\f\66\16\66\u0693\13\66\3\66\3\66\5\66\u0697"+ + "\n\66\3\67\3\67\3\67\5\67\u069c\n\67\3\67\3\67\38\58\u06a1\n8\38\38\3"+ + "8\38\38\38\38\38\38\38\38\38\38\38\38\38\58\u06b3\n8\58\u06b5\n8\38\5"+ + "8\u06b8\n8\39\39\39\39\3:\3:\3:\7:\u06c1\n:\f:\16:\u06c4\13:\3;\3;\3;"+ + "\3;\7;\u06ca\n;\f;\16;\u06cd\13;\3;\3;\3<\3<\5<\u06d3\n<\3=\3=\3=\3=\7"+ + "=\u06d9\n=\f=\16=\u06dc\13=\3=\3=\3>\3>\3>\5>\u06e3\n>\3?\3?\5?\u06e7"+ + "\n?\3?\3?\3?\3?\3?\3?\5?\u06ef\n?\3?\3?\3?\3?\3?\3?\5?\u06f7\n?\3?\3?"+ + "\3?\3?\5?\u06fd\n?\3@\3@\3@\3@\7@\u0703\n@\f@\16@\u0706\13@\3@\3@\3A\3"+ + "A\3A\3A\3A\7A\u070f\nA\fA\16A\u0712\13A\5A\u0714\nA\3A\3A\3A\3B\5B\u071a"+ + "\nB\3B\3B\5B\u071e\nB\5B\u0720\nB\3C\3C\3C\3C\3C\3C\3C\5C\u0729\nC\3C"+ + "\3C\3C\3C\3C\3C\3C\3C\3C\3C\5C\u0735\nC\5C\u0737\nC\3C\3C\3C\3C\3C\5C"+ + "\u073e\nC\3C\3C\3C\3C\3C\5C\u0745\nC\3C\3C\3C\3C\5C\u074b\nC\3C\3C\3C"+ + "\3C\5C\u0751\nC\5C\u0753\nC\3D\3D\3D\5D\u0758\nD\3D\3D\3E\3E\3E\5E\u075f"+ + "\nE\3E\3E\3F\3F\5F\u0765\nF\3F\3F\5F\u0769\nF\5F\u076b\nF\3G\3G\3G\7G"+ + "\u0770\nG\fG\16G\u0773\13G\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3I\5I\u0780\n"+ + "I\3I\3I\3I\3I\3I\3I\7I\u0788\nI\fI\16I\u078b\13I\3J\3J\5J\u078f\nJ\3K"+ + "\5K\u0792\nK\3K\3K\3K\3K\3K\3K\5K\u079a\nK\3K\3K\3K\3K\3K\7K\u07a1\nK"+ + "\fK\16K\u07a4\13K\3K\3K\3K\5K\u07a9\nK\3K\3K\3K\3K\3K\3K\5K\u07b1\nK\3"+ + "K\3K\3K\3K\5K\u07b7\nK\3K\3K\3K\5K\u07bc\nK\3K\3K\3K\5K\u07c1\nK\3L\3"+ + "L\3L\3L\5L\u07c7\nL\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3"+ + "L\3L\3L\7L\u07dc\nL\fL\16L\u07df\13L\3M\3M\3M\6M\u07e4\nM\rM\16M\u07e5"+ + "\3M\3M\5M\u07ea\nM\3M\3M\3M\3M\3M\6M\u07f1\nM\rM\16M\u07f2\3M\3M\5M\u07f7"+ + "\nM\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\7M\u0807\nM\fM\16M\u080a"+ + "\13M\5M\u080c\nM\3M\3M\3M\3M\3M\3M\5M\u0814\nM\3M\3M\3M\3M\3M\3M\3M\5"+ + "M\u081d\nM\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\6"+ + "M\u0832\nM\rM\16M\u0833\3M\3M\3M\3M\3M\3M\3M\3M\3M\5M\u083f\nM\3M\3M\3"+ + "M\7M\u0844\nM\fM\16M\u0847\13M\5M\u0849\nM\3M\3M\3M\5M\u084e\nM\3M\3M"+ + "\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\5M\u085d\nM\3M\3M\3M\3M\3M\3M\3M\3M"+ + "\7M\u0867\nM\fM\16M\u086a\13M\3N\3N\3N\3N\3N\3N\3N\3N\6N\u0874\nN\rN\16"+ + "N\u0875\5N\u0878\nN\3O\3O\3P\3P\3Q\3Q\3R\3R\3S\3S\7S\u0884\nS\fS\16S\u0887"+ + "\13S\3T\3T\3T\3T\5T\u088d\nT\3U\5U\u0890\nU\3U\3U\5U\u0894\nU\3V\3V\3"+ + "V\5V\u0899\nV\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\5W\u08aa\n"+ + "W\3W\3W\5W\u08ae\nW\3W\3W\3W\3W\3W\7W\u08b5\nW\fW\16W\u08b8\13W\3W\5W"+ + "\u08bb\nW\5W\u08bd\nW\3X\3X\3X\7X\u08c2\nX\fX\16X\u08c5\13X\3Y\3Y\3Y\3"+ + "Y\5Y\u08cb\nY\3Z\3Z\3Z\7Z\u08d0\nZ\fZ\16Z\u08d3\13Z\3[\3[\3[\3[\3[\5["+ + "\u08da\n[\3\\\3\\\3\\\3\\\3\\\3]\3]\3]\3]\7]\u08e5\n]\f]\16]\u08e8\13"+ + "]\3^\3^\3^\3^\3_\3_\3_\3_\3_\3_\3_\7_\u08f5\n_\f_\16_\u08f8\13_\3_\3_"+ + "\3_\3_\3_\7_\u08ff\n_\f_\16_\u0902\13_\5_\u0904\n_\3_\3_\3_\3_\3_\7_\u090b"+ + "\n_\f_\16_\u090e\13_\5_\u0910\n_\5_\u0912\n_\3_\5_\u0915\n_\3_\5_\u0918"+ + "\n_\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\5`\u092a\n`\3a\3a"+ + "\3a\3a\3a\3a\3a\5a\u0933\na\3b\3b\3b\7b\u0938\nb\fb\16b\u093b\13b\3c\3"+ + "c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\5c\u094c\nc\3d\3d\3d\5d\u0951"+ + "\nd\3e\3e\3f\5f\u0956\nf\3f\3f\5f\u095a\nf\3f\3f\5f\u095e\nf\3f\3f\5f"+ + "\u0962\nf\3f\3f\5f\u0966\nf\3f\3f\5f\u096a\nf\3f\3f\5f\u096e\nf\3f\5f"+ + "\u0971\nf\3g\3g\3g\7\u02f1\u031a\u0322\u0329\u0366\6N\u0090\u0096\u0098"+ + "h\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDF"+ + "HJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c"+ + "\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4"+ + "\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc"+ + "\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\2\35\3\2\u00cb\u00cc"+ + "\4\2OOQQ\5\2Y[\u00b1\u00b1\u00b7\u00b7\4\2\r\r\37\37\4\2,,VV\4\2\u00b1"+ + "\u00b1\u00b7\u00b7\4\2\16\16\u00d8\u00d8\4\2UU\u009f\u009f\3\2eh\3\2+"+ + ",\4\2HHJJ\3\2\20\21\3\2\u00f9\u00fa\3\2$%\4\2\u008d\u008e\u0093\u0093"+ + "\3\2\u008f\u0092\4\2\u008d\u008e\u0096\u0096\3\2|~\3\2\u0085\u008c\3\2"+ + "\u008d\u0097\3\2\35 \3\2()\3\2\u008d\u008e\4\2AA\u009e\u009e\4\2\31\31"+ + "\u009c\u009c\3\2EF\f\2\f\63\66\66>diqs\u0081\u0083\u0084\u0092\u0092\u0098"+ + "\u00a1\u00a3\u00ef\u00f1\u00f2\2\u0b0b\2\u00ce\3\2\2\2\4\u00d1\3\2\2\2"+ + "\6\u00d4\3\2\2\2\b\u00d7\3\2\2\2\n\u00da\3\2\2\2\f\u00dd\3\2\2\2\16\u0369"+ + "\3\2\2\2\20\u036b\3\2\2\2\22\u036d\3\2\2\2\24\u0379\3\2\2\2\26\u0427\3"+ + "\2\2\2\30\u0429\3\2\2\2\32\u0438\3\2\2\2\34\u0444\3\2\2\2\36\u0451\3\2"+ + "\2\2 \u0455\3\2\2\2\"\u048b\3\2\2\2$\u048d\3\2\2\2&\u0491\3\2\2\2(\u049d"+ + "\3\2\2\2*\u04a7\3\2\2\2,\u04a9\3\2\2\2.\u04b1\3\2\2\2\60\u04ba\3\2\2\2"+ + "\62\u04c2\3\2\2\2\64\u04c5\3\2\2\2\66\u04d0\3\2\2\28\u04e0\3\2\2\2:\u04e6"+ + "\3\2\2\2<\u04e8\3\2\2\2>\u04f3\3\2\2\2@\u0504\3\2\2\2B\u050b\3\2\2\2D"+ + "\u050d\3\2\2\2F\u0513\3\2\2\2H\u0522\3\2\2\2J\u052e\3\2\2\2L\u055f\3\2"+ + "\2\2N\u0564\3\2\2\2P\u057a\3\2\2\2R\u057c\3\2\2\2T\u05e1\3\2\2\2V\u05e3"+ + "\3\2\2\2X\u05fd\3\2\2\2Z\u05ff\3\2\2\2\\\u060e\3\2\2\2^\u0638\3\2\2\2"+ + "`\u063a\3\2\2\2b\u065a\3\2\2\2d\u065c\3\2\2\2f\u066e\3\2\2\2h\u0686\3"+ + "\2\2\2j\u0696\3\2\2\2l\u0698\3\2\2\2n\u06b7\3\2\2\2p\u06b9\3\2\2\2r\u06bd"+ + "\3\2\2\2t\u06c5\3\2\2\2v\u06d0\3\2\2\2x\u06d4\3\2\2\2z\u06df\3\2\2\2|"+ + "\u06fc\3\2\2\2~\u06fe\3\2\2\2\u0080\u0709\3\2\2\2\u0082\u071f\3\2\2\2"+ + "\u0084\u0752\3\2\2\2\u0086\u0757\3\2\2\2\u0088\u075e\3\2\2\2\u008a\u0762"+ + "\3\2\2\2\u008c\u076c\3\2\2\2\u008e\u0774\3\2\2\2\u0090\u077f\3\2\2\2\u0092"+ + "\u078c\3\2\2\2\u0094\u07c0\3\2\2\2\u0096\u07c6\3\2\2\2\u0098\u085c\3\2"+ + "\2\2\u009a\u0877\3\2\2\2\u009c\u0879\3\2\2\2\u009e\u087b\3\2\2\2\u00a0"+ + "\u087d\3\2\2\2\u00a2\u087f\3\2\2\2\u00a4\u0881\3\2\2\2\u00a6\u0888\3\2"+ + "\2\2\u00a8\u0893\3\2\2\2\u00aa\u0898\3\2\2\2\u00ac\u08bc\3\2\2\2\u00ae"+ + "\u08be\3\2\2\2\u00b0\u08c6\3\2\2\2\u00b2\u08cc\3\2\2\2\u00b4\u08d4\3\2"+ + "\2\2\u00b6\u08db\3\2\2\2\u00b8\u08e0\3\2\2\2\u00ba\u08e9\3\2\2\2\u00bc"+ + "\u0917\3\2\2\2\u00be\u0929\3\2\2\2\u00c0\u0932\3\2\2\2\u00c2\u0934\3\2"+ + "\2\2\u00c4\u094b\3\2\2\2\u00c6\u0950\3\2\2\2\u00c8\u0952\3\2\2\2\u00ca"+ + "\u0970\3\2\2\2\u00cc\u0972\3\2\2\2\u00ce\u00cf\5\16\b\2\u00cf\u00d0\7"+ + "\2\2\3\u00d0\3\3\2\2\2\u00d1\u00d2\5\u008aF\2\u00d2\u00d3\7\2\2\3\u00d3"+ + "\5\3\2\2\2\u00d4\u00d5\5\u0086D\2\u00d5\u00d6\7\2\2\3\u00d6\7\3\2\2\2"+ + "\u00d7\u00d8\5\u0088E\2\u00d8\u00d9\7\2\2\3\u00d9\t\3\2\2\2\u00da\u00db"+ + "\5\u00acW\2\u00db\u00dc\7\2\2\3\u00dc\13\3\2\2\2\u00dd\u00de\5\u00aeX"+ + "\2\u00de\u00df\7\2\2\3\u00df\r\3\2\2\2\u00e0\u036a\5 \21\2\u00e1\u00e2"+ + "\7a\2\2\u00e2\u036a\5\u00c4c\2\u00e3\u00e4\7N\2\2\u00e4\u00e8\7\u00d2"+ + "\2\2\u00e5\u00e6\7\u0083\2\2\u00e6\u00e7\7 \2\2\u00e7\u00e9\7\"\2\2\u00e8"+ + "\u00e5\3\2\2\2\u00e8\u00e9\3\2\2\2\u00e9\u00ea\3\2\2\2\u00ea\u00ed\5\u00c4"+ + "c\2\u00eb\u00ec\7q\2\2\u00ec\u00ee\7\u00f5\2\2\u00ed\u00eb\3\2\2\2\u00ed"+ + "\u00ee\3\2\2\2\u00ee\u00f0\3\2\2\2\u00ef\u00f1\5\36\20\2\u00f0\u00ef\3"+ + "\2\2\2\u00f0\u00f1\3\2\2\2\u00f1\u00f5\3\2\2\2\u00f2\u00f3\7L\2\2\u00f3"+ + "\u00f4\7\u00bd\2\2\u00f4\u00f6\5\64\33\2\u00f5\u00f2\3\2\2\2\u00f5\u00f6"+ + "\3\2\2\2\u00f6\u036a\3\2\2\2\u00f7\u00f8\7l\2\2\u00f8\u00f9\7\u00d2\2"+ + "\2\u00f9\u00fa\5\u00c4c\2\u00fa\u00fb\7s\2\2\u00fb\u00fc\7\u00bd\2\2\u00fc"+ + "\u00fd\5\64\33\2\u00fd\u036a\3\2\2\2\u00fe\u00ff\7d\2\2\u00ff\u0102\7"+ + "\u00d2\2\2\u0100\u0101\7\u0083\2\2\u0101\u0103\7\"\2\2\u0102\u0100\3\2"+ + "\2\2\u0102\u0103\3\2\2\2\u0103\u0104\3\2\2\2\u0104\u0106\5\u00c4c\2\u0105"+ + "\u0107\t\2\2\2\u0106\u0105\3\2\2\2\u0106\u0107\3\2\2\2\u0107\u036a\3\2"+ + "\2\2\u0108\u010d\5\30\r\2\u0109\u010a\7\3\2\2\u010a\u010b\5\u00aeX\2\u010b"+ + "\u010c\7\4\2\2\u010c\u010e\3\2\2\2\u010d\u0109\3\2\2\2\u010d\u010e\3\2"+ + "\2\2\u010e\u010f\3\2\2\2\u010f\u011d\5\62\32\2\u0110\u0111\7\u00ba\2\2"+ + "\u0111\u011c\5\64\33\2\u0112\u0113\7\u00da\2\2\u0113\u0114\7\24\2\2\u0114"+ + "\u011c\5p9\2\u0115\u011c\5\32\16\2\u0116\u011c\5\36\20\2\u0117\u0118\7"+ + "q\2\2\u0118\u011c\7\u00f5\2\2\u0119\u011a\7\u00bc\2\2\u011a\u011c\5\64"+ + "\33\2\u011b\u0110\3\2\2\2\u011b\u0112\3\2\2\2\u011b\u0115\3\2\2\2\u011b"+ + "\u0116\3\2\2\2\u011b\u0117\3\2\2\2\u011b\u0119\3\2\2\2\u011c\u011f\3\2"+ + "\2\2\u011d\u011b\3\2\2\2\u011d\u011e\3\2\2\2\u011e\u0122\3\2\2\2\u011f"+ + "\u011d\3\2\2\2\u0120\u0121\7r\2\2\u0121\u0123\7\u00f9\2\2\u0122\u0120"+ + "\3\2\2\2\u0122\u0123\3\2\2\2\u0123\u0128\3\2\2\2\u0124\u0126\7\17\2\2"+ + "\u0125\u0124\3\2\2\2\u0125\u0126\3\2\2\2\u0126\u0127\3\2\2\2\u0127\u0129"+ + "\5 \21\2\u0128\u0125\3\2\2\2\u0128\u0129\3\2\2\2\u0129\u036a\3\2\2\2\u012a"+ + "\u012f\5\30\r\2\u012b\u012c\7\3\2\2\u012c\u012d\5\u00aeX\2\u012d\u012e"+ + "\7\4\2\2\u012e\u0130\3\2\2\2\u012f\u012b\3\2\2\2\u012f\u0130\3\2\2\2\u0130"+ + "\u0142\3\2\2\2\u0131\u0132\7q\2\2\u0132\u0141\7\u00f5\2\2\u0133\u0134"+ + "\7\u00da\2\2\u0134\u0135\7\24\2\2\u0135\u0136\7\3\2\2\u0136\u0137\5\u00ae"+ + "X\2\u0137\u0138\7\4\2\2\u0138\u0141\3\2\2\2\u0139\u0141\5\32\16\2\u013a"+ + "\u0141\5\34\17\2\u013b\u0141\5\u0084C\2\u013c\u0141\5@!\2\u013d\u0141"+ + "\5\36\20\2\u013e\u013f\7\u00bc\2\2\u013f\u0141\5\64\33\2\u0140\u0131\3"+ + "\2\2\2\u0140\u0133\3\2\2\2\u0140\u0139\3\2\2\2\u0140\u013a\3\2\2\2\u0140"+ + "\u013b\3\2\2\2\u0140\u013c\3\2\2\2\u0140\u013d\3\2\2\2\u0140\u013e\3\2"+ + "\2\2\u0141\u0144\3\2\2\2\u0142\u0140\3\2\2\2\u0142\u0143\3\2\2\2\u0143"+ + "\u0147\3\2\2\2\u0144\u0142\3\2\2\2\u0145\u0146\7r\2\2\u0146\u0148\7\u00f9"+ + "\2\2\u0147\u0145\3\2\2\2\u0147\u0148\3\2\2\2\u0148\u014d\3\2\2\2\u0149"+ + "\u014b\7\17\2\2\u014a\u0149\3\2\2\2\u014a\u014b\3\2\2\2\u014b\u014c\3"+ + "\2\2\2\u014c\u014e\5 \21\2\u014d\u014a\3\2\2\2\u014d\u014e\3\2\2\2\u014e"+ + "\u036a\3\2\2\2\u014f\u0150\7N\2\2\u0150\u0154\7O\2\2\u0151\u0152\7\u0083"+ + "\2\2\u0152\u0153\7 \2\2\u0153\u0155\7\"\2\2\u0154\u0151\3\2\2\2\u0154"+ + "\u0155\3\2\2\2\u0155\u0156\3\2\2\2\u0156\u0157\5\u0086D\2\u0157\u0158"+ + "\7$\2\2\u0158\u015a\5\u0086D\2\u0159\u015b\5\36\20\2\u015a\u0159\3\2\2"+ + "\2\u015a\u015b\3\2\2\2\u015b\u036a\3\2\2\2\u015c\u015d\7\u00d6\2\2\u015d"+ + "\u015e\7O\2\2\u015e\u0160\5\u0086D\2\u015f\u0161\5&\24\2\u0160\u015f\3"+ + "\2\2\2\u0160\u0161\3\2\2\2\u0161\u0162\3\2\2\2\u0162\u0163\7\u00d7\2\2"+ + "\u0163\u0168\7\u00d9\2\2\u0164\u0169\5\u00c4c\2\u0165\u0166\7-\2\2\u0166"+ + "\u0167\7_\2\2\u0167\u0169\5r:\2\u0168\u0164\3\2\2\2\u0168\u0165\3\2\2"+ + "\2\u0168\u0169\3\2\2\2\u0169\u036a\3\2\2\2\u016a\u016b\7l\2\2\u016b\u016c"+ + "\7O\2\2\u016c\u016d\5\u0086D\2\u016d\u016e\7\16\2\2\u016e\u016f\7_\2\2"+ + "\u016f\u0170\7\3\2\2\u0170\u0171\5\u00aeX\2\u0171\u0172\7\4\2\2\u0172"+ + "\u036a\3\2\2\2\u0173\u0174\7l\2\2\u0174\u0175\t\3\2\2\u0175\u0176\5\u0086"+ + "D\2\u0176\u0177\7m\2\2\u0177\u0178\7i\2\2\u0178\u0179\5\u0086D\2\u0179"+ + "\u036a\3\2\2\2\u017a\u017b\7l\2\2\u017b\u017c\t\3\2\2\u017c\u017d\5\u0086"+ + "D\2\u017d\u017e\7s\2\2\u017e\u017f\7\u00bc\2\2\u017f\u0180\5\64\33\2\u0180"+ + "\u036a\3\2\2\2\u0181\u0182\7l\2\2\u0182\u0183\t\3\2\2\u0183\u0184\5\u0086"+ + "D\2\u0184\u0185\7\u00bb\2\2\u0185\u0188\7\u00bc\2\2\u0186\u0187\7\u0083"+ + "\2\2\u0187\u0189\7\"\2\2\u0188\u0186\3\2\2\2\u0188\u0189\3\2\2\2\u0189"+ + "\u018a\3\2\2\2\u018a\u018b\5\64\33\2\u018b\u036a\3\2\2\2\u018c\u018d\7"+ + "l\2\2\u018d\u018e\7O\2\2\u018e\u0190\5\u0086D\2\u018f\u0191\5&\24\2\u0190"+ + "\u018f\3\2\2\2\u0190\u0191\3\2\2\2\u0191\u0192\3\2\2\2\u0192\u0194\7\u00ca"+ + "\2\2\u0193\u0195\7`\2\2\u0194\u0193\3\2\2\2\u0194\u0195\3\2\2\2\u0195"+ + "\u0196\3\2\2\2\u0196\u0197\5\u00c4c\2\u0197\u0199\5\u00b0Y\2\u0198\u019a"+ + "\5\u00aaV\2\u0199\u0198\3\2\2\2\u0199\u019a\3\2\2\2\u019a\u036a\3\2\2"+ + "\2\u019b\u019c\7l\2\2\u019c\u019d\7O\2\2\u019d\u019f\5\u0086D\2\u019e"+ + "\u01a0\5&\24\2\u019f\u019e\3\2\2\2\u019f\u01a0\3\2\2\2\u01a0\u01a1\3\2"+ + "\2\2\u01a1\u01a2\7s\2\2\u01a2\u01a3\7\u00a3\2\2\u01a3\u01a7\7\u00f5\2"+ + "\2\u01a4\u01a5\7L\2\2\u01a5\u01a6\7\u00a4\2\2\u01a6\u01a8\5\64\33\2\u01a7"+ + "\u01a4\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8\u036a\3\2\2\2\u01a9\u01aa\7l"+ + "\2\2\u01aa\u01ab\7O\2\2\u01ab\u01ad\5\u0086D\2\u01ac\u01ae\5&\24\2\u01ad"+ + "\u01ac\3\2\2\2\u01ad\u01ae\3\2\2\2\u01ae\u01af\3\2\2\2\u01af\u01b0\7s"+ + "\2\2\u01b0\u01b1\7\u00a4\2\2\u01b1\u01b2\5\64\33\2\u01b2\u036a\3\2\2\2"+ + "\u01b3\u01b4\7l\2\2\u01b4\u01b5\7O\2\2\u01b5\u01b6\5\u0086D\2\u01b6\u01ba"+ + "\7\16\2\2\u01b7\u01b8\7\u0083\2\2\u01b8\u01b9\7 \2\2\u01b9\u01bb\7\"\2"+ + "\2\u01ba\u01b7\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bb\u01bd\3\2\2\2\u01bc\u01be"+ + "\5$\23\2\u01bd\u01bc\3\2\2\2\u01be\u01bf\3\2\2\2\u01bf\u01bd\3\2\2\2\u01bf"+ + "\u01c0\3\2\2\2\u01c0\u036a\3\2\2\2\u01c1\u01c2\7l\2\2\u01c2\u01c3\7Q\2"+ + "\2\u01c3\u01c4\5\u0086D\2\u01c4\u01c8\7\16\2\2\u01c5\u01c6\7\u0083\2\2"+ + "\u01c6\u01c7\7 \2\2\u01c7\u01c9\7\"\2\2\u01c8\u01c5\3\2\2\2\u01c8\u01c9"+ + "\3\2\2\2\u01c9\u01cb\3\2\2\2\u01ca\u01cc\5&\24\2\u01cb\u01ca\3\2\2\2\u01cc"+ + "\u01cd\3\2\2\2\u01cd\u01cb\3\2\2\2\u01cd\u01ce\3\2\2\2\u01ce\u036a\3\2"+ + "\2\2\u01cf\u01d0\7l\2\2\u01d0\u01d1\7O\2\2\u01d1\u01d2\5\u0086D\2\u01d2"+ + "\u01d3\5&\24\2\u01d3\u01d4\7m\2\2\u01d4\u01d5\7i\2\2\u01d5\u01d6\5&\24"+ + "\2\u01d6\u036a\3\2\2\2\u01d7\u01d8\7l\2\2\u01d8\u01d9\7O\2\2\u01d9\u01da"+ + "\5\u0086D\2\u01da\u01dd\7d\2\2\u01db\u01dc\7\u0083\2\2\u01dc\u01de\7\""+ + "\2\2\u01dd\u01db\3\2\2\2\u01dd\u01de\3\2\2\2\u01de\u01df\3\2\2\2\u01df"+ + "\u01e4\5&\24\2\u01e0\u01e1\7\5\2\2\u01e1\u01e3\5&\24\2\u01e2\u01e0\3\2"+ + "\2\2\u01e3\u01e6\3\2\2\2\u01e4\u01e2\3\2\2\2\u01e4\u01e5\3\2\2\2\u01e5"+ + "\u01e8\3\2\2\2\u01e6\u01e4\3\2\2\2\u01e7\u01e9\7\u00cf\2\2\u01e8\u01e7"+ + "\3\2\2\2\u01e8\u01e9\3\2\2\2\u01e9\u036a\3\2\2\2\u01ea\u01eb\7l\2\2\u01eb"+ + "\u01ec\7Q\2\2\u01ec\u01ed\5\u0086D\2\u01ed\u01f0\7d\2\2\u01ee\u01ef\7"+ + "\u0083\2\2\u01ef\u01f1\7\"\2\2\u01f0\u01ee\3\2\2\2\u01f0\u01f1\3\2\2\2"+ + "\u01f1\u01f2\3\2\2\2\u01f2\u01f7\5&\24\2\u01f3\u01f4\7\5\2\2\u01f4\u01f6"+ + "\5&\24\2\u01f5\u01f3\3\2\2\2\u01f6\u01f9\3\2\2\2\u01f7\u01f5\3\2\2\2\u01f7"+ + "\u01f8\3\2\2\2\u01f8\u036a\3\2\2\2\u01f9\u01f7\3\2\2\2\u01fa\u01fb\7l"+ + "\2\2\u01fb\u01fc\7O\2\2\u01fc\u01fe\5\u0086D\2\u01fd\u01ff\5&\24\2\u01fe"+ + "\u01fd\3\2\2\2\u01fe\u01ff\3\2\2\2\u01ff\u0200\3\2\2\2\u0200\u0201\7s"+ + "\2\2\u0201\u0202\5\36\20\2\u0202\u036a\3\2\2\2\u0203\u0204\7l\2\2\u0204"+ + "\u0205\7O\2\2\u0205\u0206\5\u0086D\2\u0206\u0207\7\u00e3\2\2\u0207\u0208"+ + "\7b\2\2\u0208\u036a\3\2\2\2\u0209\u020a\7d\2\2\u020a\u020d\7O\2\2\u020b"+ + "\u020c\7\u0083\2\2\u020c\u020e\7\"\2\2\u020d\u020b\3\2\2\2\u020d\u020e"+ + "\3\2\2\2\u020e\u020f\3\2\2\2\u020f\u0211\5\u0086D\2\u0210\u0212\7\u00cf"+ + "\2\2\u0211\u0210\3\2\2\2\u0211\u0212\3\2\2\2\u0212\u036a\3\2\2\2\u0213"+ + "\u0214\7d\2\2\u0214\u0217\7Q\2\2\u0215\u0216\7\u0083\2\2\u0216\u0218\7"+ + "\"\2\2\u0217\u0215\3\2\2\2\u0217\u0218\3\2\2\2\u0218\u0219\3\2\2\2\u0219"+ + "\u036a\5\u0086D\2\u021a\u021d\7N\2\2\u021b\u021c\7\35\2\2\u021c\u021e"+ + "\7R\2\2\u021d\u021b\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u0223\3\2\2\2\u021f"+ + "\u0221\7\u00b8\2\2\u0220\u021f\3\2\2\2\u0220\u0221\3\2\2\2\u0221\u0222"+ + "\3\2\2\2\u0222\u0224\7\u00b9\2\2\u0223\u0220\3\2\2\2\u0223\u0224\3\2\2"+ + "\2\u0224\u0225\3\2\2\2\u0225\u0229\7Q\2\2\u0226\u0227\7\u0083\2\2\u0227"+ + "\u0228\7 \2\2\u0228\u022a\7\"\2\2\u0229\u0226\3\2\2\2\u0229\u022a\3\2"+ + "\2\2\u022a\u022b\3\2\2\2\u022b\u022d\5\u0086D\2\u022c\u022e\5x=\2\u022d"+ + "\u022c\3\2\2\2\u022d\u022e\3\2\2\2\u022e\u0231\3\2\2\2\u022f\u0230\7q"+ + "\2\2\u0230\u0232\7\u00f5\2\2\u0231\u022f\3\2\2\2\u0231\u0232\3\2\2\2\u0232"+ + "\u0236\3\2\2\2\u0233\u0234\7\u00da\2\2\u0234\u0235\7=\2\2\u0235\u0237"+ + "\5p9\2\u0236\u0233\3\2\2\2\u0236\u0237\3\2\2\2\u0237\u023a\3\2\2\2\u0238"+ + "\u0239\7\u00bc\2\2\u0239\u023b\5\64\33\2\u023a\u0238\3\2\2\2\u023a\u023b"+ + "\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023d\7\17\2\2\u023d\u023e\5 \21\2"+ + "\u023e\u036a\3\2\2\2\u023f\u0242\7N\2\2\u0240\u0241\7\35\2\2\u0241\u0243"+ + "\7R\2\2\u0242\u0240\3\2\2\2\u0242\u0243\3\2\2\2\u0243\u0245\3\2\2\2\u0244"+ + "\u0246\7\u00b8\2\2\u0245\u0244\3\2\2\2\u0245\u0246\3\2\2\2\u0246\u0247"+ + "\3\2\2\2\u0247\u0248\7\u00b9\2\2\u0248\u0249\7Q\2\2\u0249\u024e\5\u0086"+ + "D\2\u024a\u024b\7\3\2\2\u024b\u024c\5\u00aeX\2\u024c\u024d\7\4\2\2\u024d"+ + "\u024f\3\2\2\2\u024e\u024a\3\2\2\2\u024e\u024f\3\2\2\2\u024f\u0250\3\2"+ + "\2\2\u0250\u0253\5\62\32\2\u0251\u0252\7\u00ba\2\2\u0252\u0254\5\64\33"+ + "\2\u0253\u0251\3\2\2\2\u0253\u0254\3\2\2\2\u0254\u036a\3\2\2\2\u0255\u0256"+ + "\7l\2\2\u0256\u0257\7Q\2\2\u0257\u0259\5\u0086D\2\u0258\u025a\7\17\2\2"+ + "\u0259\u0258\3\2\2\2\u0259\u025a\3\2\2\2\u025a\u025b\3\2\2\2\u025b\u025c"+ + "\5 \21\2\u025c\u036a\3\2\2\2\u025d\u0260\7N\2\2\u025e\u025f\7\35\2\2\u025f"+ + "\u0261\7R\2\2\u0260\u025e\3\2\2\2\u0260\u0261\3\2\2\2\u0261\u0263\3\2"+ + "\2\2\u0262\u0264\7\u00b9\2\2\u0263\u0262\3\2\2\2\u0263\u0264\3\2\2\2\u0264"+ + "\u0265\3\2\2\2\u0265\u0269\7\u00b0\2\2\u0266\u0267\7\u0083\2\2\u0267\u0268"+ + "\7 \2\2\u0268\u026a\7\"\2\2\u0269\u0266\3\2\2\2\u0269\u026a\3\2\2\2\u026a"+ + "\u026b\3\2\2\2\u026b\u026c\5\u00c2b\2\u026c\u026d\7\17\2\2\u026d\u0277"+ + "\7\u00f5\2\2\u026e\u026f\7\u00a2\2\2\u026f\u0274\5F$\2\u0270\u0271\7\5"+ + "\2\2\u0271\u0273\5F$\2\u0272\u0270\3\2\2\2\u0273\u0276\3\2\2\2\u0274\u0272"+ + "\3\2\2\2\u0274\u0275\3\2\2\2\u0275\u0278\3\2\2\2\u0276\u0274\3\2\2\2\u0277"+ + "\u026e\3\2\2\2\u0277\u0278\3\2\2\2\u0278\u036a\3\2\2\2\u0279\u027b\7d"+ + "\2\2\u027a\u027c\7\u00b9\2\2\u027b\u027a\3\2\2\2\u027b\u027c\3\2\2\2\u027c"+ + "\u027d\3\2\2\2\u027d\u0280\7\u00b0\2\2\u027e\u027f\7\u0083\2\2\u027f\u0281"+ + "\7\"\2\2\u0280\u027e\3\2\2\2\u0280\u0281\3\2\2\2\u0281\u0282\3\2\2\2\u0282"+ + "\u036a\5\u00c2b\2\u0283\u0285\7W\2\2\u0284\u0286\t\4\2\2\u0285\u0284\3"+ + "\2\2\2\u0285\u0286\3\2\2\2\u0286\u0287\3\2\2\2\u0287\u036a\5\16\b\2\u0288"+ + "\u0289\7]\2\2\u0289\u028c\7^\2\2\u028a\u028b\t\5\2\2\u028b\u028d\5\u00c4"+ + "c\2\u028c\u028a\3\2\2\2\u028c\u028d\3\2\2\2\u028d\u0292\3\2\2\2\u028e"+ + "\u0290\7$\2\2\u028f\u028e\3\2\2\2\u028f\u0290\3\2\2\2\u0290\u0291\3\2"+ + "\2\2\u0291\u0293\7\u00f5\2\2\u0292\u028f\3\2\2\2\u0292\u0293\3\2\2\2\u0293"+ + "\u036a\3\2\2\2\u0294\u0295\7]\2\2\u0295\u0296\7O\2\2\u0296\u0299\7\u00b1"+ + "\2\2\u0297\u0298\t\5\2\2\u0298\u029a\5\u00c4c\2\u0299\u0297\3\2\2\2\u0299"+ + "\u029a\3\2\2\2\u029a\u029b\3\2\2\2\u029b\u029c\7$\2\2\u029c\u029e\7\u00f5"+ + "\2\2\u029d\u029f\5&\24\2\u029e\u029d\3\2\2\2\u029e\u029f\3\2\2\2\u029f"+ + "\u036a\3\2\2\2\u02a0\u02a1\7]\2\2\u02a1\u02a4\7\u00d3\2\2\u02a2\u02a3"+ + "\7$\2\2\u02a3\u02a5\7\u00f5\2\2\u02a4\u02a2\3\2\2\2\u02a4\u02a5\3\2\2"+ + "\2\u02a5\u036a\3\2\2\2\u02a6\u02a7\7]\2\2\u02a7\u02a8\7\u00bc\2\2\u02a8"+ + "\u02ad\5\u0086D\2\u02a9\u02aa\7\3\2\2\u02aa\u02ab\58\35\2\u02ab\u02ac"+ + "\7\4\2\2\u02ac\u02ae\3\2\2\2\u02ad\u02a9\3\2\2\2\u02ad\u02ae\3\2\2\2\u02ae"+ + "\u036a\3\2\2\2\u02af\u02b0\7]\2\2\u02b0\u02b1\7_\2\2\u02b1\u02b2\t\5\2"+ + "\2\u02b2\u02b5\5\u0086D\2\u02b3\u02b4\t\5\2\2\u02b4\u02b6\5\u00c4c\2\u02b5"+ + "\u02b3\3\2\2\2\u02b5\u02b6\3\2\2\2\u02b6\u036a\3\2\2\2\u02b7\u02b8\7]"+ + "\2\2\u02b8\u02b9\7b\2\2\u02b9\u02bb\5\u0086D\2\u02ba\u02bc\5&\24\2\u02bb"+ + "\u02ba\3\2\2\2\u02bb\u02bc\3\2\2\2\u02bc\u036a\3\2\2\2\u02bd\u02bf\7]"+ + "\2\2\u02be\u02c0\5\u00c4c\2\u02bf\u02be\3\2\2\2\u02bf\u02c0\3\2\2\2\u02c0"+ + "\u02c1\3\2\2\2\u02c1\u02c9\7c\2\2\u02c2\u02c4\7$\2\2\u02c3\u02c2\3\2\2"+ + "\2\u02c3\u02c4\3\2\2\2\u02c4\u02c7\3\2\2\2\u02c5\u02c8\5\u00c2b\2\u02c6"+ + "\u02c8\7\u00f5\2\2\u02c7\u02c5\3\2\2\2\u02c7\u02c6\3\2\2\2\u02c8\u02ca"+ + "\3\2\2\2\u02c9\u02c3\3\2\2\2\u02c9\u02ca\3\2\2\2\u02ca\u036a\3\2\2\2\u02cb"+ + "\u02cc\7]\2\2\u02cc\u02cd\7N\2\2\u02cd\u02ce\7O\2\2\u02ce\u036a\5\u0086"+ + "D\2\u02cf\u02d0\t\6\2\2\u02d0\u02d2\7\u00b0\2\2\u02d1\u02d3\7\u00b1\2"+ + "\2\u02d2\u02d1\3\2\2\2\u02d2\u02d3\3\2\2\2\u02d3\u02d4\3\2\2\2\u02d4\u036a"+ + "\5*\26\2\u02d5\u02d6\t\6\2\2\u02d6\u02d8\7\u00d2\2\2\u02d7\u02d9\7\u00b1"+ + "\2\2\u02d8\u02d7\3\2\2\2\u02d8\u02d9\3\2\2\2\u02d9\u02da\3\2\2\2\u02da"+ + "\u036a\5\u00c4c\2\u02db\u02dd\t\6\2\2\u02dc\u02de\7O\2\2\u02dd\u02dc\3"+ + "\2\2\2\u02dd\u02de\3\2\2\2\u02de\u02e0\3\2\2\2\u02df\u02e1\t\7\2\2\u02e0"+ + "\u02df\3\2\2\2\u02e0\u02e1\3\2\2\2\u02e1\u02e2\3\2\2\2\u02e2\u02e4\5\u0086"+ + "D\2\u02e3\u02e5\5&\24\2\u02e4\u02e3\3\2\2\2\u02e4\u02e5\3\2\2\2\u02e5"+ + "\u02e7\3\2\2\2\u02e6\u02e8\5,\27\2\u02e7\u02e6\3\2\2\2\u02e7\u02e8\3\2"+ + "\2\2\u02e8\u036a\3\2\2\2\u02e9\u02ea\7\u00b2\2\2\u02ea\u02eb\7O\2\2\u02eb"+ + "\u036a\5\u0086D\2\u02ec\u02f4\7\u00b2\2\2\u02ed\u02f5\7\u00f5\2\2\u02ee"+ + "\u02f0\13\2\2\2\u02ef\u02ee\3\2\2\2\u02f0\u02f3\3\2\2\2\u02f1\u02f2\3"+ + "\2\2\2\u02f1\u02ef\3\2\2\2\u02f2\u02f5\3\2\2\2\u02f3\u02f1\3\2\2\2\u02f4"+ + "\u02ed\3\2\2\2\u02f4\u02f1\3\2\2\2\u02f5\u036a\3\2\2\2\u02f6\u02f8\7\u00b4"+ + "\2\2\u02f7\u02f9\7\u00b6\2\2\u02f8\u02f7\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9"+ + "\u02fa\3\2\2\2\u02fa\u02fb\7O\2\2\u02fb\u0300\5\u0086D\2\u02fc\u02fe\7"+ + "\17\2\2\u02fd\u02fc\3\2\2\2\u02fd\u02fe\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff"+ + "\u0301\5 \21\2\u0300\u02fd\3\2\2\2\u0300\u0301\3\2\2\2\u0301\u036a\3\2"+ + "\2\2\u0302\u0303\7\u00b5\2\2\u0303\u0306\7O\2\2\u0304\u0305\7\u0083\2"+ + "\2\u0305\u0307\7\"\2\2\u0306\u0304\3\2\2\2\u0306\u0307\3\2\2\2\u0307\u0308"+ + "\3\2\2\2\u0308\u036a\5\u0086D\2\u0309\u030a\7\u00b3\2\2\u030a\u036a\7"+ + "\u00b4\2\2\u030b\u030c\7\u00d5\2\2\u030c\u030d\7O\2\2\u030d\u030f\5\u0086"+ + "D\2\u030e\u0310\5&\24\2\u030f\u030e\3\2\2\2\u030f\u0310\3\2\2\2\u0310"+ + "\u036a\3\2\2\2\u0311\u0312\7\u00e1\2\2\u0312\u0313\7\u00e2\2\2\u0313\u0314"+ + "\7O\2\2\u0314\u036a\5\u0086D\2\u0315\u0316\t\b\2\2\u0316\u031a\5\u00c4"+ + "c\2\u0317\u0319\13\2\2\2\u0318\u0317\3\2\2\2\u0319\u031c\3\2\2\2\u031a"+ + "\u031b\3\2\2\2\u031a\u0318\3\2\2\2\u031b\u036a\3\2\2\2\u031c\u031a\3\2"+ + "\2\2\u031d\u031e\7s\2\2\u031e\u0322\7\u00e7\2\2\u031f\u0321\13\2\2\2\u0320"+ + "\u031f\3\2\2\2\u0321\u0324\3\2\2\2\u0322\u0323\3\2\2\2\u0322\u0320\3\2"+ + "\2\2\u0323\u036a\3\2\2\2\u0324\u0322\3\2\2\2\u0325\u0329\7s\2\2\u0326"+ + "\u0328\13\2\2\2\u0327\u0326\3\2\2\2\u0328\u032b\3\2\2\2\u0329\u032a\3"+ + "\2\2\2\u0329\u0327\3\2\2\2\u032a\u036a\3\2\2\2\u032b\u0329\3\2\2\2\u032c"+ + "\u036a\7t\2\2\u032d\u032e\7\177\2\2\u032e\u032f\7O\2\2\u032f\u0331\5\u0086"+ + "D\2\u0330\u0332\5&\24\2\u0331\u0330\3\2\2\2\u0331\u0332\3\2\2\2\u0332"+ + "\u036a\3\2\2\2\u0333\u0334\7\u0080\2\2\u0334\u0335\7\u0082\2\2\u0335\u036a"+ + "\5\20\t\2\u0336\u0337\7\u00f4\2\2\u0337\u036a\5\u00c4c\2\u0338\u0339\7"+ + "\u00f3\2\2\u0339\u033b\5\u00c4c\2\u033a\u033c\5\64\33\2\u033b\u033a\3"+ + "\2\2\2\u033b\u033c\3\2\2\2\u033c\u036a\3\2\2\2\u033d\u033e\7\u0081\2\2"+ + "\u033e\u033f\7O\2\2\u033f\u0341\5\u0086D\2\u0340\u0342\5&\24\2\u0341\u0340"+ + "\3\2\2\2\u0341\u0342\3\2\2\2\u0342\u0343\3\2\2\2\u0343\u0344\7\33\2\2"+ + "\u0344\u0345\5\u00caf\2\u0345\u036a\3\2\2\2\u0346\u0347\7\u00e6\2\2\u0347"+ + "\u0348\7u\2\2\u0348\u0349\5\u009aN\2\u0349\u034a\7O\2\2\u034a\u034c\5"+ + "\u0086D\2\u034b\u034d\5\22\n\2\u034c\u034b\3\2\2\2\u034c\u034d\3\2\2\2"+ + "\u034d\u036a\3\2\2\2\u034e\u034f\7\u00e6\2\2\u034f\u0350\7u\2\2\u0350"+ + "\u0351\7\u00f5\2\2\u0351\u0352\t\t\2\2\u0352\u0353\7O\2\2\u0353\u0355"+ + "\5\u0086D\2\u0354\u0356\5&\24\2\u0355\u0354\3\2\2\2\u0355\u0356\3\2\2"+ + "\2\u0356\u036a\3\2\2\2\u0357\u0358\7\u00e4\2\2\u0358\u0359\7O\2\2\u0359"+ + "\u035b\5\u0086D\2\u035a\u035c\5&\24\2\u035b\u035a\3\2\2\2\u035b\u035c"+ + "\3\2\2\2\u035c\u035d\3\2\2\2\u035d\u035e\7i\2\2\u035e\u0360\5\u009aN\2"+ + "\u035f\u0361\5\22\n\2\u0360\u035f\3\2\2\2\u0360\u0361\3\2\2\2\u0361\u036a"+ + "\3\2\2\2\u0362\u0366\5\26\f\2\u0363\u0365\13\2\2\2\u0364\u0363\3\2\2\2"+ + "\u0365\u0368\3\2\2\2\u0366\u0367\3\2\2\2\u0366\u0364\3\2\2\2\u0367\u036a"+ + "\3\2\2\2\u0368\u0366\3\2\2\2\u0369\u00e0\3\2\2\2\u0369\u00e1\3\2\2\2\u0369"+ + "\u00e3\3\2\2\2\u0369\u00f7\3\2\2\2\u0369\u00fe\3\2\2\2\u0369\u0108\3\2"+ + "\2\2\u0369\u012a\3\2\2\2\u0369\u014f\3\2\2\2\u0369\u015c\3\2\2\2\u0369"+ + "\u016a\3\2\2\2\u0369\u0173\3\2\2\2\u0369\u017a\3\2\2\2\u0369\u0181\3\2"+ + "\2\2\u0369\u018c\3\2\2\2\u0369\u019b\3\2\2\2\u0369\u01a9\3\2\2\2\u0369"+ + "\u01b3\3\2\2\2\u0369\u01c1\3\2\2\2\u0369\u01cf\3\2\2\2\u0369\u01d7\3\2"+ + "\2\2\u0369\u01ea\3\2\2\2\u0369\u01fa\3\2\2\2\u0369\u0203\3\2\2\2\u0369"+ + "\u0209\3\2\2\2\u0369\u0213\3\2\2\2\u0369\u021a\3\2\2\2\u0369\u023f\3\2"+ + "\2\2\u0369\u0255\3\2\2\2\u0369\u025d\3\2\2\2\u0369\u0279\3\2\2\2\u0369"+ + "\u0283\3\2\2\2\u0369\u0288\3\2\2\2\u0369\u0294\3\2\2\2\u0369\u02a0\3\2"+ + "\2\2\u0369\u02a6\3\2\2\2\u0369\u02af\3\2\2\2\u0369\u02b7\3\2\2\2\u0369"+ + "\u02bd\3\2\2\2\u0369\u02cb\3\2\2\2\u0369\u02cf\3\2\2\2\u0369\u02d5\3\2"+ + "\2\2\u0369\u02db\3\2\2\2\u0369\u02e9\3\2\2\2\u0369\u02ec\3\2\2\2\u0369"+ + "\u02f6\3\2\2\2\u0369\u0302\3\2\2\2\u0369\u0309\3\2\2\2\u0369\u030b\3\2"+ + "\2\2\u0369\u0311\3\2\2\2\u0369\u0315\3\2\2\2\u0369\u031d\3\2\2\2\u0369"+ + "\u0325\3\2\2\2\u0369\u032c\3\2\2\2\u0369\u032d\3\2\2\2\u0369\u0333\3\2"+ + "\2\2\u0369\u0336\3\2\2\2\u0369\u0338\3\2\2\2\u0369\u033d\3\2\2\2\u0369"+ + "\u0346\3\2\2\2\u0369\u034e\3\2\2\2\u0369\u0357\3\2\2\2\u0369\u0362\3\2"+ + "\2\2\u036a\17\3\2\2\2\u036b\u036c\7\u0104\2\2\u036c\21\3\2\2\2\u036d\u036e"+ + "\7\u00ba\2\2\u036e\u036f\7\3\2\2\u036f\u0374\5\24\13\2\u0370\u0371\7\5"+ + "\2\2\u0371\u0373\5\24\13\2\u0372\u0370\3\2\2\2\u0373\u0376\3\2\2\2\u0374"+ + "\u0372\3\2\2\2\u0374\u0375\3\2\2\2\u0375\u0377\3\2\2\2\u0376\u0374\3\2"+ + "\2\2\u0377\u0378\7\4\2\2\u0378\23\3\2\2\2\u0379\u037a\5\u00c4c\2\u037a"+ + "\u037b\7\u0085\2\2\u037b\u037c\5\u009aN\2\u037c\25\3\2\2\2\u037d\u037e"+ + "\7N\2\2\u037e\u0428\7\u00e7\2\2\u037f\u0380\7d\2\2\u0380\u0428\7\u00e7"+ + "\2\2\u0381\u0383\7\u00de\2\2\u0382\u0384\7\u00e7\2\2\u0383\u0382\3\2\2"+ + "\2\u0383\u0384\3\2\2\2\u0384\u0428\3\2\2\2\u0385\u0387\7\u00dd\2\2\u0386"+ + "\u0388\7\u00e7\2\2\u0387\u0386\3\2\2\2\u0387\u0388\3\2\2\2\u0388\u0428"+ + "\3\2\2\2\u0389\u038a\7]\2\2\u038a\u0428\7\u00de\2\2\u038b\u038c\7]\2\2"+ + "\u038c\u038e\7\u00e7\2\2\u038d\u038f\7\u00de\2\2\u038e\u038d\3\2\2\2\u038e"+ + "\u038f\3\2\2\2\u038f\u0428\3\2\2\2\u0390\u0391\7]\2\2\u0391\u0428\7\u00ea"+ + "\2\2\u0392\u0393\7]\2\2\u0393\u0428\7\u00e8\2\2\u0394\u0395\7]\2\2\u0395"+ + "\u0396\7G\2\2\u0396\u0428\7\u00e8\2\2\u0397\u0398\7\u00e4\2\2\u0398\u0428"+ + "\7O\2\2\u0399\u039a\7\u00e5\2\2\u039a\u0428\7O\2\2\u039b\u039c\7]\2\2"+ + "\u039c\u0428\7\u00e9\2\2\u039d\u039e\7]\2\2\u039e\u039f\7N\2\2\u039f\u0428"+ + "\7O\2\2\u03a0\u03a1\7]\2\2\u03a1\u0428\7\u00eb\2\2\u03a2\u03a3\7]\2\2"+ + "\u03a3\u0428\7\u00ed\2\2\u03a4\u03a5\7]\2\2\u03a5\u0428\7\u00ee\2\2\u03a6"+ + "\u03a7\7N\2\2\u03a7\u0428\7\u00ec\2\2\u03a8\u03a9\7d\2\2\u03a9\u0428\7"+ + "\u00ec\2\2\u03aa\u03ab\7l\2\2\u03ab\u0428\7\u00ec\2\2\u03ac\u03ad\7\u00df"+ + "\2\2\u03ad\u0428\7O\2\2\u03ae\u03af\7\u00df\2\2\u03af\u0428\7\u00d2\2"+ + "\2\u03b0\u03b1\7\u00e0\2\2\u03b1\u0428\7O\2\2\u03b2\u03b3\7\u00e0\2\2"+ + "\u03b3\u0428\7\u00d2\2\2\u03b4\u03b5\7N\2\2\u03b5\u03b6\7\u00b9\2\2\u03b6"+ + "\u0428\7z\2\2\u03b7\u03b8\7d\2\2\u03b8\u03b9\7\u00b9\2\2\u03b9\u0428\7"+ + "z\2\2\u03ba\u03bb\7l\2\2\u03bb\u03bc\7O\2\2\u03bc\u03bd\5\u0086D\2\u03bd"+ + "\u03be\7 \2\2\u03be\u03bf\7\u00cd\2\2\u03bf\u0428\3\2\2\2\u03c0\u03c1"+ + "\7l\2\2\u03c1\u03c2\7O\2\2\u03c2\u03c3\5\u0086D\2\u03c3\u03c4\7\u00cd"+ + "\2\2\u03c4\u03c5\7\24\2\2\u03c5\u0428\3\2\2\2\u03c6\u03c7\7l\2\2\u03c7"+ + "\u03c8\7O\2\2\u03c8\u03c9\5\u0086D\2\u03c9\u03ca\7 \2\2\u03ca\u03cb\7"+ + "\u00ce\2\2\u03cb\u0428\3\2\2\2\u03cc\u03cd\7l\2\2\u03cd\u03ce\7O\2\2\u03ce"+ + "\u03cf\5\u0086D\2\u03cf\u03d0\7\u00bf\2\2\u03d0\u03d1\7\24\2\2\u03d1\u0428"+ + "\3\2\2\2\u03d2\u03d3\7l\2\2\u03d3\u03d4\7O\2\2\u03d4\u03d5\5\u0086D\2"+ + "\u03d5\u03d6\7 \2\2\u03d6\u03d7\7\u00bf\2\2\u03d7\u0428\3\2\2\2\u03d8"+ + "\u03d9\7l\2\2\u03d9\u03da\7O\2\2\u03da\u03db\5\u0086D\2\u03db\u03dc\7"+ + " \2\2\u03dc\u03dd\7\u00c0\2\2\u03dd\u03de\7\17\2\2\u03de\u03df\7\u00c1"+ + "\2\2\u03df\u0428\3\2\2\2\u03e0\u03e1\7l\2\2\u03e1\u03e2\7O\2\2\u03e2\u03e3"+ + "\5\u0086D\2\u03e3\u03e4\7s\2\2\u03e4\u03e5\7\u00bf\2\2\u03e5\u03e6\7\u00c2"+ + "\2\2\u03e6\u0428\3\2\2\2\u03e7\u03e8\7l\2\2\u03e8\u03e9\7O\2\2\u03e9\u03ea"+ + "\5\u0086D\2\u03ea\u03eb\7\u00c3\2\2\u03eb\u03ec\7A\2\2\u03ec\u0428\3\2"+ + "\2\2\u03ed\u03ee\7l\2\2\u03ee\u03ef\7O\2\2\u03ef\u03f0\5\u0086D\2\u03f0"+ + "\u03f1\7\u00c4\2\2\u03f1\u03f2\7A\2\2\u03f2\u0428\3\2\2\2\u03f3\u03f4"+ + "\7l\2\2\u03f4\u03f5\7O\2\2\u03f5\u03f6\5\u0086D\2\u03f6\u03f7\7\u00c5"+ + "\2\2\u03f7\u03f8\7A\2\2\u03f8\u0428\3\2\2\2\u03f9\u03fa\7l\2\2\u03fa\u03fb"+ + "\7O\2\2\u03fb\u03fc\5\u0086D\2\u03fc\u03fd\7\u00c7\2\2\u03fd\u0428\3\2"+ + "\2\2\u03fe\u03ff\7l\2\2\u03ff\u0400\7O\2\2\u0400\u0402\5\u0086D\2\u0401"+ + "\u0403\5&\24\2\u0402\u0401\3\2\2\2\u0402\u0403\3\2\2\2\u0403\u0404\3\2"+ + "\2\2\u0404\u0405\7\u00c8\2\2\u0405\u0428\3\2\2\2\u0406\u0407\7l\2\2\u0407"+ + "\u0408\7O\2\2\u0408\u040a\5\u0086D\2\u0409\u040b\5&\24\2\u040a\u0409\3"+ + "\2\2\2\u040a\u040b\3\2\2\2\u040b\u040c\3\2\2\2\u040c\u040d\7\u00c9\2\2"+ + "\u040d\u0428\3\2\2\2\u040e\u040f\7l\2\2\u040f\u0410\7O\2\2\u0410\u0412"+ + "\5\u0086D\2\u0411\u0413\5&\24\2\u0412\u0411\3\2\2\2\u0412\u0413\3\2\2"+ + "\2\u0413\u0414\3\2\2\2\u0414\u0415\7s\2\2\u0415\u0416\7\u00c6\2\2\u0416"+ + "\u0428\3\2\2\2\u0417\u0418\7l\2\2\u0418\u0419\7O\2\2\u0419\u041b\5\u0086"+ + "D\2\u041a\u041c\5&\24\2\u041b\u041a\3\2\2\2\u041b\u041c\3\2\2\2\u041c"+ + "\u041d\3\2\2\2\u041d\u041e\7R\2\2\u041e\u041f\7_\2\2\u041f\u0428\3\2\2"+ + "\2\u0420\u0421\7v\2\2\u0421\u0428\7w\2\2\u0422\u0428\7x\2\2\u0423\u0428"+ + "\7y\2\2\u0424\u0428\7\u00d4\2\2\u0425\u0426\7T\2\2\u0426\u0428\7\r\2\2"+ + "\u0427\u037d\3\2\2\2\u0427\u037f\3\2\2\2\u0427\u0381\3\2\2\2\u0427\u0385"+ + "\3\2\2\2\u0427\u0389\3\2\2\2\u0427\u038b\3\2\2\2\u0427\u0390\3\2\2\2\u0427"+ + "\u0392\3\2\2\2\u0427\u0394\3\2\2\2\u0427\u0397\3\2\2\2\u0427\u0399\3\2"+ + "\2\2\u0427\u039b\3\2\2\2\u0427\u039d\3\2\2\2\u0427\u03a0\3\2\2\2\u0427"+ + "\u03a2\3\2\2\2\u0427\u03a4\3\2\2\2\u0427\u03a6\3\2\2\2\u0427\u03a8\3\2"+ + "\2\2\u0427\u03aa\3\2\2\2\u0427\u03ac\3\2\2\2\u0427\u03ae\3\2\2\2\u0427"+ + "\u03b0\3\2\2\2\u0427\u03b2\3\2\2\2\u0427\u03b4\3\2\2\2\u0427\u03b7\3\2"+ + "\2\2\u0427\u03ba\3\2\2\2\u0427\u03c0\3\2\2\2\u0427\u03c6\3\2\2\2\u0427"+ + "\u03cc\3\2\2\2\u0427\u03d2\3\2\2\2\u0427\u03d8\3\2\2\2\u0427\u03e0\3\2"+ + "\2\2\u0427\u03e7\3\2\2\2\u0427\u03ed\3\2\2\2\u0427\u03f3\3\2\2\2\u0427"+ + "\u03f9\3\2\2\2\u0427\u03fe\3\2\2\2\u0427\u0406\3\2\2\2\u0427\u040e\3\2"+ + "\2\2\u0427\u0417\3\2\2\2\u0427\u0420\3\2\2\2\u0427\u0422\3\2\2\2\u0427"+ + "\u0423\3\2\2\2\u0427\u0424\3\2\2\2\u0427\u0425\3\2\2\2\u0428\27\3\2\2"+ + "\2\u0429\u042b\7N\2\2\u042a\u042c\7\u00b9\2\2\u042b\u042a\3\2\2\2\u042b"+ + "\u042c\3\2\2\2\u042c\u042e\3\2\2\2\u042d\u042f\7\u00db\2\2\u042e\u042d"+ + "\3\2\2\2\u042e\u042f\3\2\2\2\u042f\u0430\3\2\2\2\u0430\u0434\7O\2\2\u0431"+ + "\u0432\7\u0083\2\2\u0432\u0433\7 \2\2\u0433\u0435\7\"\2\2\u0434\u0431"+ + "\3\2\2\2\u0434\u0435\3\2\2\2\u0435\u0436\3\2\2\2\u0436\u0437\5\u0086D"+ + "\2\u0437\31\3\2\2\2\u0438\u0439\7\u00cd\2\2\u0439\u043a\7\24\2\2\u043a"+ + "\u043e\5p9\2\u043b\u043c\7\u00ce\2\2\u043c\u043d\7\24\2\2\u043d\u043f"+ + "\5t;\2\u043e\u043b\3\2\2\2\u043e\u043f\3\2\2\2\u043f\u0440\3\2\2\2\u0440"+ + "\u0441\7U\2\2\u0441\u0442\7\u00f9\2\2\u0442\u0443\7\u00be\2\2\u0443\33"+ + "\3\2\2\2\u0444\u0445\7\u00bf\2\2\u0445\u0446\7\24\2\2\u0446\u0447\5p9"+ + "\2\u0447\u044a\7=\2\2\u0448\u044b\5<\37\2\u0449\u044b\5> \2\u044a\u0448"+ + "\3\2\2\2\u044a\u0449\3\2\2\2\u044b\u044f\3\2\2\2\u044c\u044d\7\u00c0\2"+ + "\2\u044d\u044e\7\17\2\2\u044e\u0450\7\u00c1\2\2\u044f\u044c\3\2\2\2\u044f"+ + "\u0450\3\2\2\2\u0450\35\3\2\2\2\u0451\u0452\7\u00c2\2\2\u0452\u0453\7"+ + "\u00f5\2\2\u0453\37\3\2\2\2\u0454\u0456\5.\30\2\u0455\u0454\3\2\2\2\u0455"+ + "\u0456\3\2\2\2\u0456\u0457\3\2\2\2\u0457\u0458\5H%\2\u0458!\3\2\2\2\u0459"+ + "\u045a\7S\2\2\u045a\u045c\7\u009f\2\2\u045b\u045d\7O\2\2\u045c\u045b\3"+ + "\2\2\2\u045c\u045d\3\2\2\2\u045d\u045e\3\2\2\2\u045e\u0465\5\u0086D\2"+ + "\u045f\u0463\5&\24\2\u0460\u0461\7\u0083\2\2\u0461\u0462\7 \2\2\u0462"+ + "\u0464\7\"\2\2\u0463\u0460\3\2\2\2\u0463\u0464\3\2\2\2\u0464\u0466\3\2"+ + "\2\2\u0465\u045f\3\2\2\2\u0465\u0466\3\2\2\2\u0466\u048c\3\2\2\2\u0467"+ + "\u0468\7S\2\2\u0468\u046a\7U\2\2\u0469\u046b\7O\2\2\u046a\u0469\3\2\2"+ + "\2\u046a\u046b\3\2\2\2\u046b\u046c\3\2\2\2\u046c\u046e\5\u0086D\2\u046d"+ + "\u046f\5&\24\2\u046e\u046d\3\2\2\2\u046e\u046f\3\2\2\2\u046f\u048c\3\2"+ + "\2\2\u0470\u0471\7S\2\2\u0471\u0473\7\u009f\2\2\u0472\u0474\7\u00f1\2"+ + "\2\u0473\u0472\3\2\2\2\u0473\u0474\3\2\2\2\u0474\u0475\3\2\2\2\u0475\u0476"+ + "\7P\2\2\u0476\u0478\7\u00f5\2\2\u0477\u0479\5\u0084C\2\u0478\u0477\3\2"+ + "\2\2\u0478\u0479\3\2\2\2\u0479\u047b\3\2\2\2\u047a\u047c\5@!\2\u047b\u047a"+ + "\3\2\2\2\u047b\u047c\3\2\2\2\u047c\u048c\3\2\2\2\u047d\u047e\7S\2\2\u047e"+ + "\u0480\7\u009f\2\2\u047f\u0481\7\u00f1\2\2\u0480\u047f\3\2\2\2\u0480\u0481"+ + "\3\2\2\2\u0481\u0482\3\2\2\2\u0482\u0484\7P\2\2\u0483\u0485\7\u00f5\2"+ + "\2\u0484\u0483\3\2\2\2\u0484\u0485\3\2\2\2\u0485\u0486\3\2\2\2\u0486\u0489"+ + "\5\62\32\2\u0487\u0488\7\u00ba\2\2\u0488\u048a\5\64\33\2\u0489\u0487\3"+ + "\2\2\2\u0489\u048a\3\2\2\2\u048a\u048c\3\2\2\2\u048b\u0459\3\2\2\2\u048b"+ + "\u0467\3\2\2\2\u048b\u0470\3\2\2\2\u048b\u047d\3\2\2\2\u048c#\3\2\2\2"+ + "\u048d\u048f\5&\24\2\u048e\u0490\5\36\20\2\u048f\u048e\3\2\2\2\u048f\u0490"+ + "\3\2\2\2\u0490%\3\2\2\2\u0491\u0492\7A\2\2\u0492\u0493\7\3\2\2\u0493\u0498"+ + "\5(\25\2\u0494\u0495\7\5\2\2\u0495\u0497\5(\25\2\u0496\u0494\3\2\2\2\u0497"+ + "\u049a\3\2\2\2\u0498\u0496\3\2\2\2\u0498\u0499\3\2\2\2\u0499\u049b\3\2"+ + "\2\2\u049a\u0498\3\2\2\2\u049b\u049c\7\4\2\2\u049c\'\3\2\2\2\u049d\u04a0"+ + "\5\u00c4c\2\u049e\u049f\7\u0085\2\2\u049f\u04a1\5\u009aN\2\u04a0\u049e"+ + "\3\2\2\2\u04a0\u04a1\3\2\2\2\u04a1)\3\2\2\2\u04a2\u04a8\5\u00c2b\2\u04a3"+ + "\u04a8\7\u00f5\2\2\u04a4\u04a8\5\u009cO\2\u04a5\u04a8\5\u009eP\2\u04a6"+ + "\u04a8\5\u00a0Q\2\u04a7\u04a2\3\2\2\2\u04a7\u04a3\3\2\2\2\u04a7\u04a4"+ + "\3\2\2\2\u04a7\u04a5\3\2\2\2\u04a7\u04a6\3\2\2\2\u04a8+\3\2\2\2\u04a9"+ + "\u04ae\5\u00c4c\2\u04aa\u04ab\7\6\2\2\u04ab\u04ad\5\u00c4c\2\u04ac\u04aa"+ + "\3\2\2\2\u04ad\u04b0\3\2\2\2\u04ae\u04ac\3\2\2\2\u04ae\u04af\3\2\2\2\u04af"+ + "-\3\2\2\2\u04b0\u04ae\3\2\2\2\u04b1\u04b2\7L\2\2\u04b2\u04b7\5\60\31\2"+ + "\u04b3\u04b4\7\5\2\2\u04b4\u04b6\5\60\31\2\u04b5\u04b3\3\2\2\2\u04b6\u04b9"+ + "\3\2\2\2\u04b7\u04b5\3\2\2\2\u04b7\u04b8\3\2\2\2\u04b8/\3\2\2\2\u04b9"+ + "\u04b7\3\2\2\2\u04ba\u04bc\5\u00c4c\2\u04bb\u04bd\7\17\2\2\u04bc\u04bb"+ + "\3\2\2\2\u04bc\u04bd\3\2\2\2\u04bd\u04be\3\2\2\2\u04be\u04bf\7\3\2\2\u04bf"+ + "\u04c0\5 \21\2\u04c0\u04c1\7\4\2\2\u04c1\61\3\2\2\2\u04c2\u04c3\7\u00a2"+ + "\2\2\u04c3\u04c4\5\u00c2b\2\u04c4\63\3\2\2\2\u04c5\u04c6\7\3\2\2\u04c6"+ + "\u04cb\5\66\34\2\u04c7\u04c8\7\5\2\2\u04c8\u04ca\5\66\34\2\u04c9\u04c7"+ + "\3\2\2\2\u04ca\u04cd\3\2\2\2\u04cb\u04c9\3\2\2\2\u04cb\u04cc\3\2\2\2\u04cc"+ + "\u04ce\3\2\2\2\u04cd\u04cb\3\2\2\2\u04ce\u04cf\7\4\2\2\u04cf\65\3\2\2"+ + "\2\u04d0\u04d5\58\35\2\u04d1\u04d3\7\u0085\2\2\u04d2\u04d1\3\2\2\2\u04d2"+ + "\u04d3\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4\u04d6\5:\36\2\u04d5\u04d2\3\2"+ + "\2\2\u04d5\u04d6\3\2\2\2\u04d6\67\3\2\2\2\u04d7\u04dc\5\u00c4c\2\u04d8"+ + "\u04d9\7\6\2\2\u04d9\u04db\5\u00c4c\2\u04da\u04d8\3\2\2\2\u04db\u04de"+ + "\3\2\2\2\u04dc\u04da\3\2\2\2\u04dc\u04dd\3\2\2\2\u04dd\u04e1\3\2\2\2\u04de"+ + "\u04dc\3\2\2\2\u04df\u04e1\7\u00f5\2\2\u04e0\u04d7\3\2\2\2\u04e0\u04df"+ + "\3\2\2\2\u04e19\3\2\2\2\u04e2\u04e7\7\u00f9\2\2\u04e3\u04e7\7\u00fa\2"+ + "\2\u04e4\u04e7\5\u00a2R\2\u04e5\u04e7\7\u00f5\2\2\u04e6\u04e2\3\2\2\2"+ + "\u04e6\u04e3\3\2\2\2\u04e6\u04e4\3\2\2\2\u04e6\u04e5\3\2\2\2\u04e7;\3"+ + "\2\2\2\u04e8\u04e9\7\3\2\2\u04e9\u04ee\5\u009aN\2\u04ea\u04eb\7\5\2\2"+ + "\u04eb\u04ed\5\u009aN\2\u04ec\u04ea\3\2\2\2\u04ed\u04f0\3\2\2\2\u04ee"+ + "\u04ec\3\2\2\2\u04ee\u04ef\3\2\2\2\u04ef\u04f1\3\2\2\2\u04f0\u04ee\3\2"+ + "\2\2\u04f1\u04f2\7\4\2\2\u04f2=\3\2\2\2\u04f3\u04f4\7\3\2\2\u04f4\u04f9"+ + "\5<\37\2\u04f5\u04f6\7\5\2\2\u04f6\u04f8\5<\37\2\u04f7\u04f5\3\2\2\2\u04f8"+ + "\u04fb\3\2\2\2\u04f9\u04f7\3\2\2\2\u04f9\u04fa\3\2\2\2\u04fa\u04fc\3\2"+ + "\2\2\u04fb\u04f9\3\2\2\2\u04fc\u04fd\7\4\2\2\u04fd?\3\2\2\2\u04fe\u04ff"+ + "\7\u00c0\2\2\u04ff\u0500\7\17\2\2\u0500\u0505\5B\"\2\u0501\u0502\7\u00c0"+ + "\2\2\u0502\u0503\7\24\2\2\u0503\u0505\5D#\2\u0504\u04fe\3\2\2\2\u0504"+ + "\u0501\3\2\2\2\u0505A\3\2\2\2\u0506\u0507\7\u00d0\2\2\u0507\u0508\7\u00f5"+ + "\2\2\u0508\u0509\7\u00d1\2\2\u0509\u050c\7\u00f5\2\2\u050a\u050c\5\u00c4"+ + "c\2\u050b\u0506\3\2\2\2\u050b\u050a\3\2\2\2\u050cC\3\2\2\2\u050d\u0511"+ + "\7\u00f5\2\2\u050e\u050f\7L\2\2\u050f\u0510\7\u00a4\2\2\u0510\u0512\5"+ + "\64\33\2\u0511\u050e\3\2\2\2\u0511\u0512\3\2\2\2\u0512E\3\2\2\2\u0513"+ + "\u0514\5\u00c4c\2\u0514\u0515\7\u00f5\2\2\u0515G\3\2\2\2\u0516\u0518\5"+ + "\"\22\2\u0517\u0516\3\2\2\2\u0517\u0518\3\2\2\2\u0518\u0519\3\2\2\2\u0519"+ + "\u051a\5N(\2\u051a\u051b\5J&\2\u051b\u0523\3\2\2\2\u051c\u051e\5Z.\2\u051d"+ + "\u051f\5L\'\2\u051e\u051d\3\2\2\2\u051f\u0520\3\2\2\2\u0520\u051e\3\2"+ + "\2\2\u0520\u0521\3\2\2\2\u0521\u0523\3\2\2\2\u0522\u0517\3\2\2\2\u0522"+ + "\u051c\3\2\2\2\u0523I\3\2\2\2\u0524\u0525\7\31\2\2\u0525\u0526\7\24\2"+ + "\2\u0526\u052b\5R*\2\u0527\u0528\7\5\2\2\u0528\u052a\5R*\2\u0529\u0527"+ + "\3\2\2\2\u052a\u052d\3\2\2\2\u052b\u0529\3\2\2\2\u052b\u052c\3\2\2\2\u052c"+ + "\u052f\3\2\2\2\u052d\u052b\3\2\2\2\u052e\u0524\3\2\2\2\u052e\u052f\3\2"+ + "\2\2\u052f\u053a\3\2\2\2\u0530\u0531\7\u009d\2\2\u0531\u0532\7\24\2\2"+ + "\u0532\u0537\5\u008eH\2\u0533\u0534\7\5\2\2\u0534\u0536\5\u008eH\2\u0535"+ + "\u0533\3\2\2\2\u0536\u0539\3\2\2\2\u0537\u0535\3\2\2\2\u0537\u0538\3\2"+ + "\2\2\u0538\u053b\3\2\2\2\u0539\u0537\3\2\2\2\u053a\u0530\3\2\2\2\u053a"+ + "\u053b\3\2\2\2\u053b\u0546\3\2\2\2\u053c\u053d\7\u009e\2\2\u053d\u053e"+ + "\7\24\2\2\u053e\u0543\5\u008eH\2\u053f\u0540\7\5\2\2\u0540\u0542\5\u008e"+ + "H\2\u0541\u053f\3\2\2\2\u0542\u0545\3\2\2\2\u0543\u0541\3\2\2\2\u0543"+ + "\u0544\3\2\2\2\u0544\u0547\3\2\2\2\u0545\u0543\3\2\2\2\u0546\u053c\3\2"+ + "\2\2\u0546\u0547\3\2\2\2\u0547\u0552\3\2\2\2\u0548\u0549\7\u009c\2\2\u0549"+ + "\u054a\7\24\2\2\u054a\u054f\5R*\2\u054b\u054c\7\5\2\2\u054c\u054e\5R*"+ + "\2\u054d\u054b\3\2\2\2\u054e\u0551\3\2\2\2\u054f\u054d\3\2\2\2\u054f\u0550"+ + "\3\2\2\2\u0550\u0553\3\2\2\2\u0551\u054f\3\2\2\2\u0552\u0548\3\2\2\2\u0552"+ + "\u0553\3\2\2\2\u0553\u0555\3\2\2\2\u0554\u0556\5\u00b8]\2\u0555\u0554"+ + "\3\2\2\2\u0555\u0556\3\2\2\2\u0556\u055c\3\2\2\2\u0557\u055a\7\33\2\2"+ + "\u0558\u055b\7\20\2\2\u0559\u055b\5\u008eH\2\u055a\u0558\3\2\2\2\u055a"+ + "\u0559\3\2\2\2\u055b\u055d\3\2\2\2\u055c\u0557\3\2\2\2\u055c\u055d\3\2"+ + "\2\2\u055dK\3\2\2\2\u055e\u0560\5\"\22\2\u055f\u055e\3\2\2\2\u055f\u0560"+ + "\3\2\2\2\u0560\u0561\3\2\2\2\u0561\u0562\5T+\2\u0562\u0563\5J&\2\u0563"+ + "M\3\2\2\2\u0564\u0565\b(\1\2\u0565\u0566\5P)\2\u0566\u056f\3\2\2\2\u0567"+ + "\u0568\f\3\2\2\u0568\u056a\t\n\2\2\u0569\u056b\5b\62\2\u056a\u0569\3\2"+ + "\2\2\u056a\u056b\3\2\2\2\u056b\u056c\3\2\2\2\u056c\u056e\5N(\4\u056d\u0567"+ + "\3\2\2\2\u056e\u0571\3\2\2\2\u056f\u056d\3\2\2\2\u056f\u0570\3\2\2\2\u0570"+ + "O\3\2\2\2\u0571\u056f\3\2\2\2\u0572\u057b\5T+\2\u0573\u0574\7O\2\2\u0574"+ + "\u057b\5\u0086D\2\u0575\u057b\5~@\2\u0576\u0577\7\3\2\2\u0577\u0578\5"+ + "H%\2\u0578\u0579\7\4\2\2\u0579\u057b\3\2\2\2\u057a\u0572\3\2\2\2\u057a"+ + "\u0573\3\2\2\2\u057a\u0575\3\2\2\2\u057a\u0576\3\2\2\2\u057bQ\3\2\2\2"+ + "\u057c\u057e\5\u008eH\2\u057d\u057f\t\13\2\2\u057e\u057d\3\2\2\2\u057e"+ + "\u057f\3\2\2\2\u057f\u0582\3\2\2\2\u0580\u0581\7*\2\2\u0581\u0583\t\f"+ + "\2\2\u0582\u0580\3\2\2\2\u0582\u0583\3\2\2\2\u0583S\3\2\2\2\u0584\u0585"+ + "\7\f\2\2\u0585\u0586\7\u00a0\2\2\u0586\u0587\7\3\2\2\u0587\u0588\5\u008c"+ + "G\2\u0588\u0589\7\4\2\2\u0589\u058f\3\2\2\2\u058a\u058b\7o\2\2\u058b\u058f"+ + "\5\u008cG\2\u058c\u058d\7\u00a1\2\2\u058d\u058f\5\u008cG\2\u058e\u0584"+ + "\3\2\2\2\u058e\u058a\3\2\2\2\u058e\u058c\3\2\2\2\u058f\u0591\3\2\2\2\u0590"+ + "\u0592\5\u0084C\2\u0591\u0590\3\2\2\2\u0591\u0592\3\2\2\2\u0592\u0595"+ + "\3\2\2\2\u0593\u0594\7\u00a6\2\2\u0594\u0596\7\u00f5\2\2\u0595\u0593\3"+ + "\2\2\2\u0595\u0596\3\2\2\2\u0596\u0597\3\2\2\2\u0597\u0598\7\u00a2\2\2"+ + "\u0598\u05a5\7\u00f5\2\2\u0599\u05a3\7\17\2\2\u059a\u05a4\5r:\2\u059b"+ + "\u05a4\5\u00aeX\2\u059c\u059f\7\3\2\2\u059d\u05a0\5r:\2\u059e\u05a0\5"+ + "\u00aeX\2\u059f\u059d\3\2\2\2\u059f\u059e\3\2\2\2\u05a0\u05a1\3\2\2\2"+ + "\u05a1\u05a2\7\4\2\2\u05a2\u05a4\3\2\2\2\u05a3\u059a\3\2\2\2\u05a3\u059b"+ + "\3\2\2\2\u05a3\u059c\3\2\2\2\u05a4\u05a6\3\2\2\2\u05a5\u0599\3\2\2\2\u05a5"+ + "\u05a6\3\2\2\2\u05a6\u05a8\3\2\2\2\u05a7\u05a9\5\u0084C\2\u05a8\u05a7"+ + "\3\2\2\2\u05a8\u05a9\3\2\2\2\u05a9\u05ac\3\2\2\2\u05aa\u05ab\7\u00a5\2"+ + "\2\u05ab\u05ad\7\u00f5\2\2\u05ac\u05aa\3\2\2\2\u05ac\u05ad\3\2\2\2\u05ad"+ + "\u05af\3\2\2\2\u05ae\u05b0\5Z.\2\u05af\u05ae\3\2\2\2\u05af\u05b0\3\2\2"+ + "\2\u05b0\u05b3\3\2\2\2\u05b1\u05b2\7\22\2\2\u05b2\u05b4\5\u0090I\2\u05b3"+ + "\u05b1\3\2\2\2\u05b3\u05b4\3\2\2\2\u05b4\u05e2\3\2\2\2\u05b5\u05b9\7\f"+ + "\2\2\u05b6\u05b8\5V,\2\u05b7\u05b6\3\2\2\2\u05b8\u05bb\3\2\2\2\u05b9\u05b7"+ + "\3\2\2\2\u05b9\u05ba\3\2\2\2\u05ba\u05bd\3\2\2\2\u05bb\u05b9\3\2\2\2\u05bc"+ + "\u05be\5b\62\2\u05bd\u05bc\3\2\2\2\u05bd\u05be\3\2\2\2\u05be\u05bf\3\2"+ + "\2\2\u05bf\u05c1\5\u008cG\2\u05c0\u05c2\5Z.\2\u05c1\u05c0\3\2\2\2\u05c1"+ + "\u05c2\3\2\2\2\u05c2\u05cc\3\2\2\2\u05c3\u05c9\5Z.\2\u05c4\u05c6\7\f\2"+ + "\2\u05c5\u05c7\5b\62\2\u05c6\u05c5\3\2\2\2\u05c6\u05c7\3\2\2\2\u05c7\u05c8"+ + "\3\2\2\2\u05c8\u05ca\5\u008cG\2\u05c9\u05c4\3\2\2\2\u05c9\u05ca\3\2\2"+ + "\2\u05ca\u05cc\3\2\2\2\u05cb\u05b5\3\2\2\2\u05cb\u05c3\3\2\2\2\u05cc\u05d0"+ + "\3\2\2\2\u05cd\u05cf\5`\61\2\u05ce\u05cd\3\2\2\2\u05cf\u05d2\3\2\2\2\u05d0"+ + "\u05ce\3\2\2\2\u05d0\u05d1\3\2\2\2\u05d1\u05d5\3\2\2\2\u05d2\u05d0\3\2"+ + "\2\2\u05d3\u05d4\7\22\2\2\u05d4\u05d6\5\u0090I\2\u05d5\u05d3\3\2\2\2\u05d5"+ + "\u05d6\3\2\2\2\u05d6\u05d8\3\2\2\2\u05d7\u05d9\5\\/\2\u05d8\u05d7\3\2"+ + "\2\2\u05d8\u05d9\3\2\2\2\u05d9\u05dc\3\2\2\2\u05da\u05db\7\32\2\2\u05db"+ + "\u05dd\5\u0090I\2\u05dc\u05da\3\2\2\2\u05dc\u05dd\3\2\2\2\u05dd\u05df"+ + "\3\2\2\2\u05de\u05e0\5\u00b8]\2\u05df\u05de\3\2\2\2\u05df\u05e0\3\2\2"+ + "\2\u05e0\u05e2\3\2\2\2\u05e1\u058e\3\2\2\2\u05e1\u05cb\3\2\2\2\u05e2U"+ + "\3\2\2\2\u05e3\u05e4\7\7\2\2\u05e4\u05eb\5X-\2\u05e5\u05e7\7\5\2\2\u05e6"+ + "\u05e5\3\2\2\2\u05e6\u05e7\3\2\2\2\u05e7\u05e8\3\2\2\2\u05e8\u05ea\5X"+ + "-\2\u05e9\u05e6\3\2\2\2\u05ea\u05ed\3\2\2\2\u05eb\u05e9\3\2\2\2\u05eb"+ + "\u05ec\3\2\2\2\u05ec\u05ee\3\2\2\2\u05ed\u05eb\3\2\2\2\u05ee\u05ef\7\b"+ + "\2\2\u05efW\3\2\2\2\u05f0\u05fe\5\u00c4c\2\u05f1\u05f2\5\u00c4c\2\u05f2"+ + "\u05f3\7\3\2\2\u05f3\u05f8\5\u0098M\2\u05f4\u05f5\7\5\2\2\u05f5\u05f7"+ + "\5\u0098M\2\u05f6\u05f4\3\2\2\2\u05f7\u05fa\3\2\2\2\u05f8\u05f6\3\2\2"+ + "\2\u05f8\u05f9\3\2\2\2\u05f9\u05fb\3\2\2\2\u05fa\u05f8\3\2\2\2\u05fb\u05fc"+ + "\7\4\2\2\u05fc\u05fe\3\2\2\2\u05fd\u05f0\3\2\2\2\u05fd\u05f1\3\2\2\2\u05fe"+ + "Y\3\2\2\2\u05ff\u0600\7\r\2\2\u0600\u0605\5d\63\2\u0601\u0602\7\5\2\2"+ + "\u0602\u0604\5d\63\2\u0603\u0601\3\2\2\2\u0604\u0607\3\2\2\2\u0605\u0603"+ + "\3\2\2\2\u0605\u0606\3\2\2\2\u0606\u060b\3\2\2\2\u0607\u0605\3\2\2\2\u0608"+ + "\u060a\5`\61\2\u0609\u0608\3\2\2\2\u060a\u060d\3\2\2\2\u060b\u0609\3\2"+ + "\2\2\u060b\u060c\3\2\2\2\u060c[\3\2\2\2\u060d\u060b\3\2\2\2\u060e\u060f"+ + "\7\23\2\2\u060f\u0610\7\24\2\2\u0610\u0615\5\u008eH\2\u0611\u0612\7\5"+ + "\2\2\u0612\u0614\5\u008eH\2\u0613\u0611\3\2\2\2\u0614\u0617\3\2\2\2\u0615"+ + "\u0613\3\2\2\2\u0615\u0616\3\2\2\2\u0616\u0629\3\2\2\2\u0617\u0615\3\2"+ + "\2\2\u0618\u0619\7L\2\2\u0619\u062a\7\30\2\2\u061a\u061b\7L\2\2\u061b"+ + "\u062a\7\27\2\2\u061c\u061d\7\25\2\2\u061d\u061e\7\26\2\2\u061e\u061f"+ + "\7\3\2\2\u061f\u0624\5^\60\2\u0620\u0621\7\5\2\2\u0621\u0623\5^\60\2\u0622"+ + "\u0620\3\2\2\2\u0623\u0626\3\2\2\2\u0624\u0622\3\2\2\2\u0624\u0625\3\2"+ + "\2\2\u0625\u0627\3\2\2\2\u0626\u0624\3\2\2\2\u0627\u0628\7\4\2\2\u0628"+ + "\u062a\3\2\2\2\u0629\u0618\3\2\2\2\u0629\u061a\3\2\2\2\u0629\u061c\3\2"+ + "\2\2\u0629\u062a\3\2\2\2\u062a]\3\2\2\2\u062b\u0634\7\3\2\2\u062c\u0631"+ + "\5\u008eH\2\u062d\u062e\7\5\2\2\u062e\u0630\5\u008eH\2\u062f\u062d\3\2"+ + "\2\2\u0630\u0633\3\2\2\2\u0631\u062f\3\2\2\2\u0631\u0632\3\2\2\2\u0632"+ + "\u0635\3\2\2\2\u0633\u0631\3\2\2\2\u0634\u062c\3\2\2\2\u0634\u0635\3\2"+ + "\2\2\u0635\u0636\3\2\2\2\u0636\u0639\7\4\2\2\u0637\u0639\5\u008eH\2\u0638"+ + "\u062b\3\2\2\2\u0638\u0637\3\2\2\2\u0639_\3\2\2\2\u063a\u063b\7>\2\2\u063b"+ + "\u063d\7Q\2\2\u063c\u063e\7\66\2\2\u063d\u063c\3\2\2\2\u063d\u063e\3\2"+ + "\2\2\u063e\u063f\3\2\2\2\u063f\u0640\5\u00c2b\2\u0640\u0649\7\3\2\2\u0641"+ + "\u0646\5\u008eH\2\u0642\u0643\7\5\2\2\u0643\u0645\5\u008eH\2\u0644\u0642"+ + "\3\2\2\2\u0645\u0648\3\2\2\2\u0646\u0644\3\2\2\2\u0646\u0647\3\2\2\2\u0647"+ + "\u064a\3\2\2\2\u0648\u0646\3\2\2\2\u0649\u0641\3\2\2\2\u0649\u064a\3\2"+ + "\2\2\u064a\u064b\3\2\2\2\u064b\u064c\7\4\2\2\u064c\u0658\5\u00c4c\2\u064d"+ + "\u064f\7\17\2\2\u064e\u064d\3\2\2\2\u064e\u064f\3\2\2\2\u064f\u0650\3"+ + "\2\2\2\u0650\u0655\5\u00c4c\2\u0651\u0652\7\5\2\2\u0652\u0654\5\u00c4"+ + "c\2\u0653\u0651\3\2\2\2\u0654\u0657\3\2\2\2\u0655\u0653\3\2\2\2\u0655"+ + "\u0656\3\2\2\2\u0656\u0659\3\2\2\2\u0657\u0655\3\2\2\2\u0658\u064e\3\2"+ + "\2\2\u0658\u0659\3\2\2\2\u0659a\3\2\2\2\u065a\u065b\t\r\2\2\u065bc\3\2"+ + "\2\2\u065c\u0660\5|?\2\u065d\u065f\5f\64\2\u065e\u065d\3\2\2\2\u065f\u0662"+ + "\3\2\2\2\u0660\u065e\3\2\2\2\u0660\u0661\3\2\2\2\u0661e\3\2\2\2\u0662"+ + "\u0660\3\2\2\2\u0663\u0664\5h\65\2\u0664\u0665\7\64\2\2\u0665\u0667\5"+ + "|?\2\u0666\u0668\5j\66\2\u0667\u0666\3\2\2\2\u0667\u0668\3\2\2\2\u0668"+ + "\u066f\3\2\2\2\u0669\u066a\7<\2\2\u066a\u066b\5h\65\2\u066b\u066c\7\64"+ + "\2\2\u066c\u066d\5|?\2\u066d\u066f\3\2\2\2\u066e\u0663\3\2\2\2\u066e\u0669"+ + "\3\2\2\2\u066fg\3\2\2\2\u0670\u0672\7\67\2\2\u0671\u0670\3\2\2\2\u0671"+ + "\u0672\3\2\2\2\u0672\u0687\3\2\2\2\u0673\u0687\7\65\2\2\u0674\u0676\7"+ + "8\2\2\u0675\u0677\7\66\2\2\u0676\u0675\3\2\2\2\u0676\u0677\3\2\2\2\u0677"+ + "\u0687\3\2\2\2\u0678\u0679\78\2\2\u0679\u0687\79\2\2\u067a\u067c\7:\2"+ + "\2\u067b\u067d\7\66\2\2\u067c\u067b\3\2\2\2\u067c\u067d\3\2\2\2\u067d"+ + "\u0687\3\2\2\2\u067e\u0680\7;\2\2\u067f\u0681\7\66\2\2\u0680\u067f\3\2"+ + "\2\2\u0680\u0681\3\2\2\2\u0681\u0687\3\2\2\2\u0682\u0684\78\2\2\u0683"+ + "\u0682\3\2\2\2\u0683\u0684\3\2\2\2\u0684\u0685\3\2\2\2\u0685\u0687\7\u00f0"+ + "\2\2\u0686\u0671\3\2\2\2\u0686\u0673\3\2\2\2\u0686\u0674\3\2\2\2\u0686"+ + "\u0678\3\2\2\2\u0686\u067a\3\2\2\2\u0686\u067e\3\2\2\2\u0686\u0683\3\2"+ + "\2\2\u0687i\3\2\2\2\u0688\u0689\7=\2\2\u0689\u0697\5\u0090I\2\u068a\u068b"+ + "\7\u00a2\2\2\u068b\u068c\7\3\2\2\u068c\u0691\5\u00c4c\2\u068d\u068e\7"+ + "\5\2\2\u068e\u0690\5\u00c4c\2\u068f\u068d\3\2\2\2\u0690\u0693\3\2\2\2"+ + "\u0691\u068f\3\2\2\2\u0691\u0692\3\2\2\2\u0692\u0694\3\2\2\2\u0693\u0691"+ + "\3\2\2\2\u0694\u0695\7\4\2\2\u0695\u0697\3\2\2\2\u0696\u0688\3\2\2\2\u0696"+ + "\u068a\3\2\2\2\u0697k\3\2\2\2\u0698\u0699\7j\2\2\u0699\u069b\7\3\2\2\u069a"+ + "\u069c\5n8\2\u069b\u069a\3\2\2\2\u069b\u069c\3\2\2\2\u069c\u069d\3\2\2"+ + "\2\u069d\u069e\7\4\2\2\u069em\3\2\2\2\u069f\u06a1\7\u008e\2\2\u06a0\u069f"+ + "\3\2\2\2\u06a0\u06a1\3\2\2\2\u06a1\u06a2\3\2\2\2\u06a2\u06a3\t\16\2\2"+ + "\u06a3\u06b8\7\u0098\2\2\u06a4\u06a5\5\u008eH\2\u06a5\u06a6\7C\2\2\u06a6"+ + "\u06b8\3\2\2\2\u06a7\u06a8\7\u0099\2\2\u06a8\u06a9\7\u00f9\2\2\u06a9\u06aa"+ + "\7\u009a\2\2\u06aa\u06ab\7\u009b\2\2\u06ab\u06b4\7\u00f9\2\2\u06ac\u06b2"+ + "\7=\2\2\u06ad\u06b3\5\u00c4c\2\u06ae\u06af\5\u00c2b\2\u06af\u06b0\7\3"+ + "\2\2\u06b0\u06b1\7\4\2\2\u06b1\u06b3\3\2\2\2\u06b2\u06ad\3\2\2\2\u06b2"+ + "\u06ae\3\2\2\2\u06b3\u06b5\3\2\2\2\u06b4\u06ac\3\2\2\2\u06b4\u06b5\3\2"+ + "\2\2\u06b5\u06b8\3\2\2\2\u06b6\u06b8\5\u008eH\2\u06b7\u06a0\3\2\2\2\u06b7"+ + "\u06a4\3\2\2\2\u06b7\u06a7\3\2\2\2\u06b7\u06b6\3\2\2\2\u06b8o\3\2\2\2"+ + "\u06b9\u06ba\7\3\2\2\u06ba\u06bb\5r:\2\u06bb\u06bc\7\4\2\2\u06bcq\3\2"+ + "\2\2\u06bd\u06c2\5\u00c4c\2\u06be\u06bf\7\5\2\2\u06bf\u06c1\5\u00c4c\2"+ + "\u06c0\u06be\3\2\2\2\u06c1\u06c4\3\2\2\2\u06c2\u06c0\3\2\2\2\u06c2\u06c3"+ + "\3\2\2\2\u06c3s\3\2\2\2\u06c4\u06c2\3\2\2\2\u06c5\u06c6\7\3\2\2\u06c6"+ + "\u06cb\5v<\2\u06c7\u06c8\7\5\2\2\u06c8\u06ca\5v<\2\u06c9\u06c7\3\2\2\2"+ + "\u06ca\u06cd\3\2\2\2\u06cb\u06c9\3\2\2\2\u06cb\u06cc\3\2\2\2\u06cc\u06ce"+ + "\3\2\2\2\u06cd\u06cb\3\2\2\2\u06ce\u06cf\7\4\2\2\u06cfu\3\2\2\2\u06d0"+ + "\u06d2\5\u00c4c\2\u06d1\u06d3\t\13\2\2\u06d2\u06d1\3\2\2\2\u06d2\u06d3"+ + "\3\2\2\2\u06d3w\3\2\2\2\u06d4\u06d5\7\3\2\2\u06d5\u06da\5z>\2\u06d6\u06d7"+ + "\7\5\2\2\u06d7\u06d9\5z>\2\u06d8\u06d6\3\2\2\2\u06d9\u06dc\3\2\2\2\u06da"+ + "\u06d8\3\2\2\2\u06da\u06db\3\2\2\2\u06db\u06dd\3\2\2\2\u06dc\u06da\3\2"+ + "\2\2\u06dd\u06de\7\4\2\2\u06dey\3\2\2\2\u06df\u06e2\5\u00c4c\2\u06e0\u06e1"+ + "\7q\2\2\u06e1\u06e3\7\u00f5\2\2\u06e2\u06e0\3\2\2\2\u06e2\u06e3\3\2\2"+ + "\2\u06e3{\3\2\2\2\u06e4\u06e6\5\u0086D\2\u06e5\u06e7\5l\67\2\u06e6\u06e5"+ + "\3\2\2\2\u06e6\u06e7\3\2\2\2\u06e7\u06e8\3\2\2\2\u06e8\u06e9\5\u0082B"+ + "\2\u06e9\u06fd\3\2\2\2\u06ea\u06eb\7\3\2\2\u06eb\u06ec\5H%\2\u06ec\u06ee"+ + "\7\4\2\2\u06ed\u06ef\5l\67\2\u06ee\u06ed\3\2\2\2\u06ee\u06ef\3\2\2\2\u06ef"+ + "\u06f0\3\2\2\2\u06f0\u06f1\5\u0082B\2\u06f1\u06fd\3\2\2\2\u06f2\u06f3"+ + "\7\3\2\2\u06f3\u06f4\5d\63\2\u06f4\u06f6\7\4\2\2\u06f5\u06f7\5l\67\2\u06f6"+ + "\u06f5\3\2\2\2\u06f6\u06f7\3\2\2\2\u06f7\u06f8\3\2\2\2\u06f8\u06f9\5\u0082"+ + "B\2\u06f9\u06fd\3\2\2\2\u06fa\u06fd\5~@\2\u06fb\u06fd\5\u0080A\2\u06fc"+ + "\u06e4\3\2\2\2\u06fc\u06ea\3\2\2\2\u06fc\u06f2\3\2\2\2\u06fc\u06fa\3\2"+ + "\2\2\u06fc\u06fb\3\2\2\2\u06fd}\3\2\2\2\u06fe\u06ff\7M\2\2\u06ff\u0704"+ + "\5\u008eH\2\u0700\u0701\7\5\2\2\u0701\u0703\5\u008eH\2\u0702\u0700\3\2"+ + "\2\2\u0703\u0706\3\2\2\2\u0704\u0702\3\2\2\2\u0704\u0705\3\2\2\2\u0705"+ + "\u0707\3\2\2\2\u0706\u0704\3\2\2\2\u0707\u0708\5\u0082B\2\u0708\177\3"+ + "\2\2\2\u0709\u070a\5\u00c4c\2\u070a\u0713\7\3\2\2\u070b\u0710\5\u008e"+ + "H\2\u070c\u070d\7\5\2\2\u070d\u070f\5\u008eH\2\u070e\u070c\3\2\2\2\u070f"+ + "\u0712\3\2\2\2\u0710\u070e\3\2\2\2\u0710\u0711\3\2\2\2\u0711\u0714\3\2"+ + "\2\2\u0712\u0710\3\2\2\2\u0713\u070b\3\2\2\2\u0713\u0714\3\2\2\2\u0714"+ + "\u0715\3\2\2\2\u0715\u0716\7\4\2\2\u0716\u0717\5\u0082B\2\u0717\u0081"+ + "\3\2\2\2\u0718\u071a\7\17\2\2\u0719\u0718\3\2\2\2\u0719\u071a\3\2\2\2"+ + "\u071a\u071b\3\2\2\2\u071b\u071d\5\u00c6d\2\u071c\u071e\5p9\2\u071d\u071c"+ + "\3\2\2\2\u071d\u071e\3\2\2\2\u071e\u0720\3\2\2\2\u071f\u0719\3\2\2\2\u071f"+ + "\u0720\3\2\2\2\u0720\u0083\3\2\2\2\u0721\u0722\7K\2\2\u0722\u0723\7X\2"+ + "\2\u0723\u0724\7\u00a3\2\2\u0724\u0728\7\u00f5\2\2\u0725\u0726\7L\2\2"+ + "\u0726\u0727\7\u00a4\2\2\u0727\u0729\5\64\33\2\u0728\u0725\3\2\2\2\u0728"+ + "\u0729\3\2\2\2\u0729\u0753\3\2\2\2\u072a\u072b\7K\2\2\u072b\u072c\7X\2"+ + "\2\u072c\u0736\7\u00a7\2\2\u072d\u072e\7\u00a8\2\2\u072e\u072f\7\u00a9"+ + "\2\2\u072f\u0730\7\24\2\2\u0730\u0734\7\u00f5\2\2\u0731\u0732\7\u00ad"+ + "\2\2\u0732\u0733\7\24\2\2\u0733\u0735\7\u00f5\2\2\u0734\u0731\3\2\2\2"+ + "\u0734\u0735\3\2\2\2\u0735\u0737\3\2\2\2\u0736\u072d\3\2\2\2\u0736\u0737"+ + "\3\2\2\2\u0737\u073d\3\2\2\2\u0738\u0739\7\u00aa\2\2\u0739\u073a\7\u00ab"+ + "\2\2\u073a\u073b\7\u00a9\2\2\u073b\u073c\7\24\2\2\u073c\u073e\7\u00f5"+ + "\2\2\u073d\u0738\3\2\2\2\u073d\u073e\3\2\2\2\u073e\u0744\3\2\2\2\u073f"+ + "\u0740\7o\2\2\u0740\u0741\7\u00ac\2\2\u0741\u0742\7\u00a9\2\2\u0742\u0743"+ + "\7\24\2\2\u0743\u0745\7\u00f5\2\2\u0744\u073f\3\2\2\2\u0744\u0745\3\2"+ + "\2\2\u0745\u074a\3\2\2\2\u0746\u0747\7\u00ae\2\2\u0747\u0748\7\u00a9\2"+ + "\2\u0748\u0749\7\24\2\2\u0749\u074b\7\u00f5\2\2\u074a\u0746\3\2\2\2\u074a"+ + "\u074b\3\2\2\2\u074b\u0750\3\2\2\2\u074c\u074d\7\'\2\2\u074d\u074e\7\u00dc"+ + "\2\2\u074e\u074f\7\17\2\2\u074f\u0751\7\u00f5\2\2\u0750\u074c\3\2\2\2"+ + "\u0750\u0751\3\2\2\2\u0751\u0753\3\2\2\2\u0752\u0721\3\2\2\2\u0752\u072a"+ + "\3\2\2\2\u0753\u0085\3\2\2\2\u0754\u0755\5\u00c4c\2\u0755\u0756\7\6\2"+ + "\2\u0756\u0758\3\2\2\2\u0757\u0754\3\2\2\2\u0757\u0758\3\2\2\2\u0758\u0759"+ + "\3\2\2\2\u0759\u075a\5\u00c4c\2\u075a\u0087\3\2\2\2\u075b\u075c\5\u00c4"+ + "c\2\u075c\u075d\7\6\2\2\u075d\u075f\3\2\2\2\u075e\u075b\3\2\2\2\u075e"+ + "\u075f\3\2\2\2\u075f\u0760\3\2\2\2\u0760\u0761\5\u00c4c\2\u0761\u0089"+ + "\3\2\2\2\u0762\u076a\5\u008eH\2\u0763\u0765\7\17\2\2\u0764\u0763\3\2\2"+ + "\2\u0764\u0765\3\2\2\2\u0765\u0768\3\2\2\2\u0766\u0769\5\u00c4c\2\u0767"+ + "\u0769\5p9\2\u0768\u0766\3\2\2\2\u0768\u0767\3\2\2\2\u0769\u076b\3\2\2"+ + "\2\u076a\u0764\3\2\2\2\u076a\u076b\3\2\2\2\u076b\u008b\3\2\2\2\u076c\u0771"+ + "\5\u008aF\2\u076d\u076e\7\5\2\2\u076e\u0770\5\u008aF\2\u076f\u076d\3\2"+ + "\2\2\u0770\u0773\3\2\2\2\u0771\u076f\3\2\2\2\u0771\u0772\3\2\2\2\u0772"+ + "\u008d\3\2\2\2\u0773\u0771\3\2\2\2\u0774\u0775\5\u0090I\2\u0775\u008f"+ + "\3\2\2\2\u0776\u0777\bI\1\2\u0777\u0778\7 \2\2\u0778\u0780\5\u0090I\7"+ + "\u0779\u077a\7\"\2\2\u077a\u077b\7\3\2\2\u077b\u077c\5 \21\2\u077c\u077d"+ + "\7\4\2\2\u077d\u0780\3\2\2\2\u077e\u0780\5\u0092J\2\u077f\u0776\3\2\2"+ + "\2\u077f\u0779\3\2\2\2\u077f\u077e\3\2\2\2\u0780\u0789\3\2\2\2\u0781\u0782"+ + "\f\4\2\2\u0782\u0783\7\36\2\2\u0783\u0788\5\u0090I\5\u0784\u0785\f\3\2"+ + "\2\u0785\u0786\7\35\2\2\u0786\u0788\5\u0090I\4\u0787\u0781\3\2\2\2\u0787"+ + "\u0784\3\2\2\2\u0788\u078b\3\2\2\2\u0789\u0787\3\2\2\2\u0789\u078a\3\2"+ + "\2\2\u078a\u0091\3\2\2\2\u078b\u0789\3\2\2\2\u078c\u078e\5\u0096L\2\u078d"+ + "\u078f\5\u0094K\2\u078e\u078d\3\2\2\2\u078e\u078f\3\2\2\2\u078f\u0093"+ + "\3\2\2\2\u0790\u0792\7 \2\2\u0791\u0790\3\2\2\2\u0791\u0792\3\2\2\2\u0792"+ + "\u0793\3\2\2\2\u0793\u0794\7#\2\2\u0794\u0795\5\u0096L\2\u0795\u0796\7"+ + "\36\2\2\u0796\u0797\5\u0096L\2\u0797\u07c1\3\2\2\2\u0798\u079a\7 \2\2"+ + "\u0799\u0798\3\2\2\2\u0799\u079a\3\2\2\2\u079a\u079b\3\2\2\2\u079b\u079c"+ + "\7\37\2\2\u079c\u079d\7\3\2\2\u079d\u07a2\5\u008eH\2\u079e\u079f\7\5\2"+ + "\2\u079f\u07a1\5\u008eH\2\u07a0\u079e\3\2\2\2\u07a1\u07a4\3\2\2\2\u07a2"+ + "\u07a0\3\2\2\2\u07a2\u07a3\3\2\2\2\u07a3\u07a5\3\2\2\2\u07a4\u07a2\3\2"+ + "\2\2\u07a5\u07a6\7\4\2\2\u07a6\u07c1\3\2\2\2\u07a7\u07a9\7 \2\2\u07a8"+ + "\u07a7\3\2\2\2\u07a8\u07a9\3\2\2\2\u07a9\u07aa\3\2\2\2\u07aa\u07ab\7\37"+ + "\2\2\u07ab\u07ac\7\3\2\2\u07ac\u07ad\5 \21\2\u07ad\u07ae\7\4\2\2\u07ae"+ + "\u07c1\3\2\2\2\u07af\u07b1\7 \2\2\u07b0\u07af\3\2\2\2\u07b0\u07b1\3\2"+ + "\2\2\u07b1\u07b2\3\2\2\2\u07b2\u07b3\t\17\2\2\u07b3\u07c1\5\u0096L\2\u07b4"+ + "\u07b6\7&\2\2\u07b5\u07b7\7 \2\2\u07b6\u07b5\3\2\2\2\u07b6\u07b7\3\2\2"+ + "\2\u07b7\u07b8\3\2\2\2\u07b8\u07c1\7\'\2\2\u07b9\u07bb\7&\2\2\u07ba\u07bc"+ + "\7 \2\2\u07bb\u07ba\3\2\2\2\u07bb\u07bc\3\2\2\2\u07bc\u07bd\3\2\2\2\u07bd"+ + "\u07be\7\21\2\2\u07be\u07bf\7\r\2\2\u07bf\u07c1\5\u0096L\2\u07c0\u0791"+ + "\3\2\2\2\u07c0\u0799\3\2\2\2\u07c0\u07a8\3\2\2\2\u07c0\u07b0\3\2\2\2\u07c0"+ + "\u07b4\3\2\2\2\u07c0\u07b9\3\2\2\2\u07c1\u0095\3\2\2\2\u07c2\u07c3\bL"+ + "\1\2\u07c3\u07c7\5\u0098M\2\u07c4\u07c5\t\20\2\2\u07c5\u07c7\5\u0096L"+ + "\t\u07c6\u07c2\3\2\2\2\u07c6\u07c4\3\2\2\2\u07c7\u07dd\3\2\2\2\u07c8\u07c9"+ + "\f\b\2\2\u07c9\u07ca\t\21\2\2\u07ca\u07dc\5\u0096L\t\u07cb\u07cc\f\7\2"+ + "\2\u07cc\u07cd\t\22\2\2\u07cd\u07dc\5\u0096L\b\u07ce\u07cf\f\6\2\2\u07cf"+ + "\u07d0\7\u0094\2\2\u07d0\u07dc\5\u0096L\7\u07d1\u07d2\f\5\2\2\u07d2\u07d3"+ + "\7\u0097\2\2\u07d3\u07dc\5\u0096L\6\u07d4\u07d5\f\4\2\2\u07d5\u07d6\7"+ + "\u0095\2\2\u07d6\u07dc\5\u0096L\5\u07d7\u07d8\f\3\2\2\u07d8\u07d9\5\u009c"+ + "O\2\u07d9\u07da\5\u0096L\4\u07da\u07dc\3\2\2\2\u07db\u07c8\3\2\2\2\u07db"+ + "\u07cb\3\2\2\2\u07db\u07ce\3\2\2\2\u07db\u07d1\3\2\2\2\u07db\u07d4\3\2"+ + "\2\2\u07db\u07d7\3\2\2\2\u07dc\u07df\3\2\2\2\u07dd\u07db\3\2\2\2\u07dd"+ + "\u07de\3\2\2\2\u07de\u0097\3\2\2\2\u07df\u07dd\3\2\2\2\u07e0\u07e1\bM"+ + "\1\2\u07e1\u07e3\7/\2\2\u07e2\u07e4\5\u00b6\\\2\u07e3\u07e2\3\2\2\2\u07e4"+ + "\u07e5\3\2\2\2\u07e5\u07e3\3\2\2\2\u07e5\u07e6\3\2\2\2\u07e6\u07e9\3\2"+ + "\2\2\u07e7\u07e8\7\62\2\2\u07e8\u07ea\5\u008eH\2\u07e9\u07e7\3\2\2\2\u07e9"+ + "\u07ea\3\2\2\2\u07ea\u07eb\3\2\2\2\u07eb\u07ec\7\63\2\2\u07ec\u085d\3"+ + "\2\2\2\u07ed\u07ee\7/\2\2\u07ee\u07f0\5\u008eH\2\u07ef\u07f1\5\u00b6\\"+ + "\2\u07f0\u07ef\3\2\2\2\u07f1\u07f2\3\2\2\2\u07f2\u07f0\3\2\2\2\u07f2\u07f3"+ + "\3\2\2\2\u07f3\u07f6\3\2\2\2\u07f4\u07f5\7\62\2\2\u07f5\u07f7\5\u008e"+ + "H\2\u07f6\u07f4\3\2\2\2\u07f6\u07f7\3\2\2\2\u07f7\u07f8\3\2\2\2\u07f8"+ + "\u07f9\7\63\2\2\u07f9\u085d\3\2\2\2\u07fa\u07fb\7\\\2\2\u07fb\u07fc\7"+ + "\3\2\2\u07fc\u07fd\5\u008eH\2\u07fd\u07fe\7\17\2\2\u07fe\u07ff\5\u00ac"+ + "W\2\u07ff\u0800\7\4\2\2\u0800\u085d\3\2\2\2\u0801\u0802\7p\2\2\u0802\u080b"+ + "\7\3\2\2\u0803\u0808\5\u008aF\2\u0804\u0805\7\5\2\2\u0805\u0807\5\u008a"+ + "F\2\u0806\u0804\3\2\2\2\u0807\u080a\3\2\2\2\u0808\u0806\3\2\2\2\u0808"+ + "\u0809\3\2\2\2\u0809\u080c\3\2\2\2\u080a\u0808\3\2\2\2\u080b\u0803\3\2"+ + "\2\2\u080b\u080c\3\2\2\2\u080c\u080d\3\2\2\2\u080d\u085d\7\4\2\2\u080e"+ + "\u080f\7H\2\2\u080f\u0810\7\3\2\2\u0810\u0813\5\u008eH\2\u0811\u0812\7"+ + "{\2\2\u0812\u0814\7*\2\2\u0813\u0811\3\2\2\2\u0813\u0814\3\2\2\2\u0814"+ + "\u0815\3\2\2\2\u0815\u0816\7\4\2\2\u0816\u085d\3\2\2\2\u0817\u0818\7J"+ + "\2\2\u0818\u0819\7\3\2\2\u0819\u081c\5\u008eH\2\u081a\u081b\7{\2\2\u081b"+ + "\u081d\7*\2\2\u081c\u081a\3\2\2\2\u081c\u081d\3\2\2\2\u081d\u081e\3\2"+ + "\2\2\u081e\u081f\7\4\2\2\u081f\u085d\3\2\2\2\u0820\u0821\7\u0084\2\2\u0821"+ + "\u0822\7\3\2\2\u0822\u0823\5\u0096L\2\u0823\u0824\7\37\2\2\u0824\u0825"+ + "\5\u0096L\2\u0825\u0826\7\4\2\2\u0826\u085d\3\2\2\2\u0827\u085d\5\u009a"+ + "N\2\u0828\u085d\7\u008f\2\2\u0829\u082a\5\u00c2b\2\u082a\u082b\7\6\2\2"+ + "\u082b\u082c\7\u008f\2\2\u082c\u085d\3\2\2\2\u082d\u082e\7\3\2\2\u082e"+ + "\u0831\5\u008aF\2\u082f\u0830\7\5\2\2\u0830\u0832\5\u008aF\2\u0831\u082f"+ + "\3\2\2\2\u0832\u0833\3\2\2\2\u0833\u0831\3\2\2\2\u0833\u0834\3\2\2\2\u0834"+ + "\u0835\3\2\2\2\u0835\u0836\7\4\2\2\u0836\u085d\3\2\2\2\u0837\u0838\7\3"+ + "\2\2\u0838\u0839\5 \21\2\u0839\u083a\7\4\2\2\u083a\u085d\3\2\2\2\u083b"+ + "\u083c\5\u00c2b\2\u083c\u0848\7\3\2\2\u083d\u083f\5b\62\2\u083e\u083d"+ + "\3\2\2\2\u083e\u083f\3\2\2\2\u083f\u0840\3\2\2\2\u0840\u0845\5\u008eH"+ + "\2\u0841\u0842\7\5\2\2\u0842\u0844\5\u008eH\2\u0843\u0841\3\2\2\2\u0844"+ + "\u0847\3\2\2\2\u0845\u0843\3\2\2\2\u0845\u0846\3\2\2\2\u0846\u0849\3\2"+ + "\2\2\u0847\u0845\3\2\2\2\u0848\u083e\3\2\2\2\u0848\u0849\3\2\2\2\u0849"+ + "\u084a\3\2\2\2\u084a\u084d\7\4\2\2\u084b\u084c\7@\2\2\u084c\u084e\5\u00bc"+ + "_\2\u084d\u084b\3\2\2\2\u084d\u084e\3\2\2\2\u084e\u085d\3\2\2\2\u084f"+ + "\u0850\5\u00c2b\2\u0850\u0851\7\3\2\2\u0851\u0852\t\23\2\2\u0852\u0853"+ + "\5\u008eH\2\u0853\u0854\7\r\2\2\u0854\u0855\5\u008eH\2\u0855\u0856\7\4"+ + "\2\2\u0856\u085d\3\2\2\2\u0857\u085d\5\u00c4c\2\u0858\u0859\7\3\2\2\u0859"+ + "\u085a\5\u008eH\2\u085a\u085b\7\4\2\2\u085b\u085d\3\2\2\2\u085c\u07e0"+ + "\3\2\2\2\u085c\u07ed\3\2\2\2\u085c\u07fa\3\2\2\2\u085c\u0801\3\2\2\2\u085c"+ + "\u080e\3\2\2\2\u085c\u0817\3\2\2\2\u085c\u0820\3\2\2\2\u085c\u0827\3\2"+ + "\2\2\u085c\u0828\3\2\2\2\u085c\u0829\3\2\2\2\u085c\u082d\3\2\2\2\u085c"+ + "\u0837\3\2\2\2\u085c\u083b\3\2\2\2\u085c\u084f\3\2\2\2\u085c\u0857\3\2"+ + "\2\2\u085c\u0858\3\2\2\2\u085d\u0868\3\2\2\2\u085e\u085f\f\6\2\2\u085f"+ + "\u0860\7\t\2\2\u0860\u0861\5\u0096L\2\u0861\u0862\7\n\2\2\u0862\u0867"+ + "\3\2\2\2\u0863\u0864\f\4\2\2\u0864\u0865\7\6\2\2\u0865\u0867\5\u00c4c"+ + "\2\u0866\u085e\3\2\2\2\u0866\u0863\3\2\2\2\u0867\u086a\3\2\2\2\u0868\u0866"+ + "\3\2\2\2\u0868\u0869\3\2\2\2\u0869\u0099\3\2\2\2\u086a\u0868\3\2\2\2\u086b"+ + "\u0878\7\'\2\2\u086c\u0878\5\u00a4S\2\u086d\u086e\5\u00c4c\2\u086e\u086f"+ + "\7\u00f5\2\2\u086f\u0878\3\2\2\2\u0870\u0878\5\u00caf\2\u0871\u0878\5"+ + "\u00a2R\2\u0872\u0874\7\u00f5\2\2\u0873\u0872\3\2\2\2\u0874\u0875\3\2"+ + "\2\2\u0875\u0873\3\2\2\2\u0875\u0876\3\2\2\2\u0876\u0878\3\2\2\2\u0877"+ + "\u086b\3\2\2\2\u0877\u086c\3\2\2\2\u0877\u086d\3\2\2\2\u0877\u0870\3\2"+ + "\2\2\u0877\u0871\3\2\2\2\u0877\u0873\3\2\2\2\u0878\u009b\3\2\2\2\u0879"+ + "\u087a\t\24\2\2\u087a\u009d\3\2\2\2\u087b\u087c\t\25\2\2\u087c\u009f\3"+ + "\2\2\2\u087d\u087e\t\26\2\2\u087e\u00a1\3\2\2\2\u087f\u0880\t\27\2\2\u0880"+ + "\u00a3\3\2\2\2\u0881\u0885\7.\2\2\u0882\u0884\5\u00a6T\2\u0883\u0882\3"+ + "\2\2\2\u0884\u0887\3\2\2\2\u0885\u0883\3\2\2\2\u0885\u0886\3\2\2\2\u0886"+ + "\u00a5\3\2\2\2\u0887\u0885\3\2\2\2\u0888\u0889\5\u00a8U\2\u0889\u088c"+ + "\5\u00c4c\2\u088a\u088b\7i\2\2\u088b\u088d\5\u00c4c\2\u088c\u088a\3\2"+ + "\2\2\u088c\u088d\3\2\2\2\u088d\u00a7\3\2\2\2\u088e\u0890\t\30\2\2\u088f"+ + "\u088e\3\2\2\2\u088f\u0890\3\2\2\2\u0890\u0891\3\2\2\2\u0891\u0894\t\16"+ + "\2\2\u0892\u0894\7\u00f5\2\2\u0893\u088f\3\2\2\2\u0893\u0892\3\2\2\2\u0894"+ + "\u00a9\3\2\2\2\u0895\u0899\7H\2\2\u0896\u0897\7I\2\2\u0897\u0899\5\u00c4"+ + "c\2\u0898\u0895\3\2\2\2\u0898\u0896\3\2\2\2\u0899\u00ab\3\2\2\2\u089a"+ + "\u089b\7n\2\2\u089b\u089c\7\u0089\2\2\u089c\u089d\5\u00acW\2\u089d\u089e"+ + "\7\u008b\2\2\u089e\u08bd\3\2\2\2\u089f\u08a0\7o\2\2\u08a0\u08a1\7\u0089"+ + "\2\2\u08a1\u08a2\5\u00acW\2\u08a2\u08a3\7\5\2\2\u08a3\u08a4\5\u00acW\2"+ + "\u08a4\u08a5\7\u008b\2\2\u08a5\u08bd\3\2\2\2\u08a6\u08ad\7p\2\2\u08a7"+ + "\u08a9\7\u0089\2\2\u08a8\u08aa\5\u00b2Z\2\u08a9\u08a8\3\2\2\2\u08a9\u08aa"+ + "\3\2\2\2\u08aa\u08ab\3\2\2\2\u08ab\u08ae\7\u008b\2\2\u08ac\u08ae\7\u0087"+ + "\2\2\u08ad\u08a7\3\2\2\2\u08ad\u08ac\3\2\2\2\u08ae\u08bd\3\2\2\2\u08af"+ + "\u08ba\5\u00c4c\2\u08b0\u08b1\7\3\2\2\u08b1\u08b6\7\u00f9\2\2\u08b2\u08b3"+ + "\7\5\2\2\u08b3\u08b5\7\u00f9\2\2\u08b4\u08b2\3\2\2\2\u08b5\u08b8\3\2\2"+ + "\2\u08b6\u08b4\3\2\2\2\u08b6\u08b7\3\2\2\2\u08b7\u08b9\3\2\2\2\u08b8\u08b6"+ + "\3\2\2\2\u08b9\u08bb\7\4\2\2\u08ba\u08b0\3\2\2\2\u08ba\u08bb\3\2\2\2\u08bb"+ + "\u08bd\3\2\2\2\u08bc\u089a\3\2\2\2\u08bc\u089f\3\2\2\2\u08bc\u08a6\3\2"+ + "\2\2\u08bc\u08af\3\2\2\2\u08bd\u00ad\3\2\2\2\u08be\u08c3\5\u00b0Y\2\u08bf"+ + "\u08c0\7\5\2\2\u08c0\u08c2\5\u00b0Y\2\u08c1\u08bf\3\2\2\2\u08c2\u08c5"+ + "\3\2\2\2\u08c3\u08c1\3\2\2\2\u08c3\u08c4\3\2\2\2\u08c4\u00af\3\2\2\2\u08c5"+ + "\u08c3\3\2\2\2\u08c6\u08c7\5\u00c4c\2\u08c7\u08ca\5\u00acW\2\u08c8\u08c9"+ + "\7q\2\2\u08c9\u08cb\7\u00f5\2\2\u08ca\u08c8\3\2\2\2\u08ca\u08cb\3\2\2"+ + "\2\u08cb\u00b1\3\2\2\2\u08cc\u08d1\5\u00b4[\2\u08cd\u08ce\7\5\2\2\u08ce"+ + "\u08d0\5\u00b4[\2\u08cf\u08cd\3\2\2\2\u08d0\u08d3\3\2\2\2\u08d1\u08cf"+ + "\3\2\2\2\u08d1\u08d2\3\2\2\2\u08d2\u00b3\3\2\2\2\u08d3\u08d1\3\2\2\2\u08d4"+ + "\u08d5\5\u00c4c\2\u08d5\u08d6\7\13\2\2\u08d6\u08d9\5\u00acW\2\u08d7\u08d8"+ + "\7q\2\2\u08d8\u08da\7\u00f5\2\2\u08d9\u08d7\3\2\2\2\u08d9\u08da\3\2\2"+ + "\2\u08da\u00b5\3\2\2\2\u08db\u08dc\7\60\2\2\u08dc\u08dd\5\u008eH\2\u08dd"+ + "\u08de\7\61\2\2\u08de\u08df\5\u008eH\2\u08df\u00b7\3\2\2\2\u08e0\u08e1"+ + "\7?\2\2\u08e1\u08e6\5\u00ba^\2\u08e2\u08e3\7\5\2\2\u08e3\u08e5\5\u00ba"+ + "^\2\u08e4\u08e2\3\2\2\2\u08e5\u08e8\3\2\2\2\u08e6\u08e4\3\2\2\2\u08e6"+ + "\u08e7\3\2\2\2\u08e7\u00b9\3\2\2\2\u08e8\u08e6\3\2\2\2\u08e9\u08ea\5\u00c4"+ + "c\2\u08ea\u08eb\7\17\2\2\u08eb\u08ec\5\u00bc_\2\u08ec\u00bb\3\2\2\2\u08ed"+ + "\u0918\5\u00c4c\2\u08ee\u0911\7\3\2\2\u08ef\u08f0\7\u009d\2\2\u08f0\u08f1"+ + "\7\24\2\2\u08f1\u08f6\5\u008eH\2\u08f2\u08f3\7\5\2\2\u08f3\u08f5\5\u008e"+ + "H\2\u08f4\u08f2\3\2\2\2\u08f5\u08f8\3\2\2\2\u08f6\u08f4\3\2\2\2\u08f6"+ + "\u08f7\3\2\2\2\u08f7\u0912\3\2\2\2\u08f8\u08f6\3\2\2\2\u08f9\u08fa\t\31"+ + "\2\2\u08fa\u08fb\7\24\2\2\u08fb\u0900\5\u008eH\2\u08fc\u08fd\7\5\2\2\u08fd"+ + "\u08ff\5\u008eH\2\u08fe\u08fc\3\2\2\2\u08ff\u0902\3\2\2\2\u0900\u08fe"+ + "\3\2\2\2\u0900\u0901\3\2\2\2\u0901\u0904\3\2\2\2\u0902\u0900\3\2\2\2\u0903"+ + "\u08f9\3\2\2\2\u0903\u0904\3\2\2\2\u0904\u090f\3\2\2\2\u0905\u0906\t\32"+ + "\2\2\u0906\u0907\7\24\2\2\u0907\u090c\5R*\2\u0908\u0909\7\5\2\2\u0909"+ + "\u090b\5R*\2\u090a\u0908\3\2\2\2\u090b\u090e\3\2\2\2\u090c\u090a\3\2\2"+ + "\2\u090c\u090d\3\2\2\2\u090d\u0910\3\2\2\2\u090e\u090c\3\2\2\2\u090f\u0905"+ + "\3\2\2\2\u090f\u0910\3\2\2\2\u0910\u0912\3\2\2\2\u0911\u08ef\3\2\2\2\u0911"+ + "\u0903\3\2\2\2\u0912\u0914\3\2\2\2\u0913\u0915\5\u00be`\2\u0914\u0913"+ + "\3\2\2\2\u0914\u0915\3\2\2\2\u0915\u0916\3\2\2\2\u0916\u0918\7\4\2\2\u0917"+ + "\u08ed\3\2\2\2\u0917\u08ee\3\2\2\2\u0918\u00bd\3\2\2\2\u0919\u091a\7B"+ + "\2\2\u091a\u092a\5\u00c0a\2\u091b\u091c\7C\2\2\u091c\u092a\5\u00c0a\2"+ + "\u091d\u091e\7B\2\2\u091e\u091f\7#\2\2\u091f\u0920\5\u00c0a\2\u0920\u0921"+ + "\7\36\2\2\u0921\u0922\5\u00c0a\2\u0922\u092a\3\2\2\2\u0923\u0924\7C\2"+ + "\2\u0924\u0925\7#\2\2\u0925\u0926\5\u00c0a\2\u0926\u0927\7\36\2\2\u0927"+ + "\u0928\5\u00c0a\2\u0928\u092a\3\2\2\2\u0929\u0919\3\2\2\2\u0929\u091b"+ + "\3\2\2\2\u0929\u091d\3\2\2\2\u0929\u0923\3\2\2\2\u092a\u00bf\3\2\2\2\u092b"+ + "\u092c\7D\2\2\u092c\u0933\t\33\2\2\u092d\u092e\7G\2\2\u092e\u0933\7K\2"+ + "\2\u092f"; private static final String _serializedATNSegment1 = - "\u0930\u092b\3\2\2\2\u0930\u092d\3\2\2\2\u0931\u00c1\3\2\2\2\u0932\u0937"+ - "\5\u00c4c\2\u0933\u0934\7\6\2\2\u0934\u0936\5\u00c4c\2\u0935\u0933\3\2"+ - "\2\2\u0936\u0939\3\2\2\2\u0937\u0935\3\2\2\2\u0937\u0938\3\2\2\2\u0938"+ - "\u00c3\3\2\2\2\u0939\u0937\3\2\2\2\u093a\u094a\5\u00c6d\2\u093b\u094a"+ - "\7\u00f0\2\2\u093c\u094a\7;\2\2\u093d\u094a\7\67\2\2\u093e\u094a\78\2"+ - "\2\u093f\u094a\79\2\2\u0940\u094a\7:\2\2\u0941\u094a\7<\2\2\u0942\u094a"+ - "\7\64\2\2\u0943\u094a\7\65\2\2\u0944\u094a\7=\2\2\u0945\u094a\7e\2\2\u0946"+ - "\u094a\7h\2\2\u0947\u094a\7f\2\2\u0948\u094a\7g\2\2\u0949\u093a\3\2\2"+ - "\2\u0949\u093b\3\2\2\2\u0949\u093c\3\2\2\2\u0949\u093d\3\2\2\2\u0949\u093e"+ - "\3\2\2\2\u0949\u093f\3\2\2\2\u0949\u0940\3\2\2\2\u0949\u0941\3\2\2\2\u0949"+ - "\u0942\3\2\2\2\u0949\u0943\3\2\2\2\u0949\u0944\3\2\2\2\u0949\u0945\3\2"+ - "\2\2\u0949\u0946\3\2\2\2\u0949\u0947\3\2\2\2\u0949\u0948\3\2\2\2\u094a"+ - "\u00c5\3\2\2\2\u094b\u094f\7\u00fd\2\2\u094c\u094f\5\u00c8e\2\u094d\u094f"+ - "\5\u00ccg\2\u094e\u094b\3\2\2\2\u094e\u094c\3\2\2\2\u094e\u094d\3\2\2"+ - "\2\u094f\u00c7\3\2\2\2\u0950\u0951\7\u00fe\2\2\u0951\u00c9\3\2\2\2\u0952"+ - "\u0954\7\u008e\2\2\u0953\u0952\3\2\2\2\u0953\u0954\3\2\2\2\u0954\u0955"+ - "\3\2\2\2\u0955\u096f\7\u00fa\2\2\u0956\u0958\7\u008e\2\2\u0957\u0956\3"+ - "\2\2\2\u0957\u0958\3\2\2\2\u0958\u0959\3\2\2\2\u0959\u096f\7\u00f9\2\2"+ - "\u095a\u095c\7\u008e\2\2\u095b\u095a\3\2\2\2\u095b\u095c\3\2\2\2\u095c"+ - "\u095d\3\2\2\2\u095d\u096f\7\u00f6\2\2\u095e\u0960\7\u008e\2\2\u095f\u095e"+ - "\3\2\2\2\u095f\u0960\3\2\2\2\u0960\u0961\3\2\2\2\u0961\u096f\7\u00f7\2"+ - "\2\u0962\u0964\7\u008e\2\2\u0963\u0962\3\2\2\2\u0963\u0964\3\2\2\2\u0964"+ - "\u0965\3\2\2\2\u0965\u096f\7\u00f8\2\2\u0966\u0968\7\u008e\2\2\u0967\u0966"+ - "\3\2\2\2\u0967\u0968\3\2\2\2\u0968\u0969\3\2\2\2\u0969\u096f\7\u00fb\2"+ - "\2\u096a\u096c\7\u008e\2\2\u096b\u096a\3\2\2\2\u096b\u096c\3\2\2\2\u096c"+ - "\u096d\3\2\2\2\u096d\u096f\7\u00fc\2\2\u096e\u0953\3\2\2\2\u096e\u0957"+ - "\3\2\2\2\u096e\u095b\3\2\2\2\u096e\u095f\3\2\2\2\u096e\u0963\3\2\2\2\u096e"+ - "\u0967\3\2\2\2\u096e\u096b\3\2\2\2\u096f\u00cb\3\2\2\2\u0970\u0971\t\34"+ - "\2\2\u0971\u00cd\3\2\2\2\u0142\u00e8\u00ed\u00f0\u00f5\u0102\u0106\u010d"+ + "\u0930\5\u008eH\2\u0930\u0931\t\33\2\2\u0931\u0933\3\2\2\2\u0932\u092b"+ + "\3\2\2\2\u0932\u092d\3\2\2\2\u0932\u092f\3\2\2\2\u0933\u00c1\3\2\2\2\u0934"+ + "\u0939\5\u00c4c\2\u0935\u0936\7\6\2\2\u0936\u0938\5\u00c4c\2\u0937\u0935"+ + "\3\2\2\2\u0938\u093b\3\2\2\2\u0939\u0937\3\2\2\2\u0939\u093a\3\2\2\2\u093a"+ + "\u00c3\3\2\2\2\u093b\u0939\3\2\2\2\u093c\u094c\5\u00c6d\2\u093d\u094c"+ + "\7\u00f0\2\2\u093e\u094c\7;\2\2\u093f\u094c\7\67\2\2\u0940\u094c\78\2"+ + "\2\u0941\u094c\79\2\2\u0942\u094c\7:\2\2\u0943\u094c\7<\2\2\u0944\u094c"+ + "\7\64\2\2\u0945\u094c\7\65\2\2\u0946\u094c\7=\2\2\u0947\u094c\7e\2\2\u0948"+ + "\u094c\7h\2\2\u0949\u094c\7f\2\2\u094a\u094c\7g\2\2\u094b\u093c\3\2\2"+ + "\2\u094b\u093d\3\2\2\2\u094b\u093e\3\2\2\2\u094b\u093f\3\2\2\2\u094b\u0940"+ + "\3\2\2\2\u094b\u0941\3\2\2\2\u094b\u0942\3\2\2\2\u094b\u0943\3\2\2\2\u094b"+ + "\u0944\3\2\2\2\u094b\u0945\3\2\2\2\u094b\u0946\3\2\2\2\u094b\u0947\3\2"+ + "\2\2\u094b\u0948\3\2\2\2\u094b\u0949\3\2\2\2\u094b\u094a\3\2\2\2\u094c"+ + "\u00c5\3\2\2\2\u094d\u0951\7\u00fd\2\2\u094e\u0951\5\u00c8e\2\u094f\u0951"+ + "\5\u00ccg\2\u0950\u094d\3\2\2\2\u0950\u094e\3\2\2\2\u0950\u094f\3\2\2"+ + "\2\u0951\u00c7\3\2\2\2\u0952\u0953\7\u00fe\2\2\u0953\u00c9\3\2\2\2\u0954"+ + "\u0956\7\u008e\2\2\u0955\u0954\3\2\2\2\u0955\u0956\3\2\2\2\u0956\u0957"+ + "\3\2\2\2\u0957\u0971\7\u00fa\2\2\u0958\u095a\7\u008e\2\2\u0959\u0958\3"+ + "\2\2\2\u0959\u095a\3\2\2\2\u095a\u095b\3\2\2\2\u095b\u0971\7\u00f9\2\2"+ + "\u095c\u095e\7\u008e\2\2\u095d\u095c\3\2\2\2\u095d\u095e\3\2\2\2\u095e"+ + "\u095f\3\2\2\2\u095f\u0971\7\u00f6\2\2\u0960\u0962\7\u008e\2\2\u0961\u0960"+ + "\3\2\2\2\u0961\u0962\3\2\2\2\u0962\u0963\3\2\2\2\u0963\u0971\7\u00f7\2"+ + "\2\u0964\u0966\7\u008e\2\2\u0965\u0964\3\2\2\2\u0965\u0966\3\2\2\2\u0966"+ + "\u0967\3\2\2\2\u0967\u0971\7\u00f8\2\2\u0968\u096a\7\u008e\2\2\u0969\u0968"+ + "\3\2\2\2\u0969\u096a\3\2\2\2\u096a\u096b\3\2\2\2\u096b\u0971\7\u00fb\2"+ + "\2\u096c\u096e\7\u008e\2\2\u096d\u096c\3\2\2\2\u096d\u096e\3\2\2\2\u096e"+ + "\u096f\3\2\2\2\u096f\u0971\7\u00fc\2\2\u0970\u0955\3\2\2\2\u0970\u0959"+ + "\3\2\2\2\u0970\u095d\3\2\2\2\u0970\u0961\3\2\2\2\u0970\u0965\3\2\2\2\u0970"+ + "\u0969\3\2\2\2\u0970\u096d\3\2\2\2\u0971\u00cb\3\2\2\2\u0972\u0973\t\34"+ + "\2\2\u0973\u00cd\3\2\2\2\u0143\u00e8\u00ed\u00f0\u00f5\u0102\u0106\u010d"+ "\u011b\u011d\u0122\u0125\u0128\u012f\u0140\u0142\u0147\u014a\u014d\u0154"+ "\u015a\u0160\u0168\u0188\u0190\u0194\u0199\u019f\u01a7\u01ad\u01ba\u01bf"+ "\u01c8\u01cd\u01dd\u01e4\u01e8\u01f0\u01f7\u01fe\u020d\u0211\u0217\u021d"+ @@ -17865,24 +17875,24 @@ private boolean primaryExpression_sempred(PrimaryExpressionContext _localctx, in "\u02e0\u02e4\u02e7\u02f1\u02f4\u02f8\u02fd\u0300\u0306\u030f\u031a\u0322"+ "\u0329\u0331\u033b\u0341\u034c\u0355\u035b\u0360\u0366\u0369\u0374\u0383"+ "\u0387\u038e\u0402\u040a\u0412\u041b\u0427\u042b\u042e\u0434\u043e\u044a"+ - "\u044f\u0455\u0461\u0463\u0468\u046c\u0471\u0476\u0479\u047e\u0482\u0487"+ - "\u0489\u048d\u0496\u049e\u04a5\u04ac\u04b5\u04ba\u04c9\u04d0\u04d3\u04da"+ - "\u04de\u04e4\u04ec\u04f7\u0502\u0509\u050f\u0515\u051e\u0520\u0529\u052c"+ - "\u0535\u0538\u0541\u0544\u054d\u0550\u0553\u0558\u055a\u055d\u0568\u056d"+ - "\u0578\u057c\u0580\u058c\u058f\u0593\u059d\u05a1\u05a3\u05a6\u05aa\u05ad"+ - "\u05b1\u05b7\u05bb\u05bf\u05c4\u05c7\u05c9\u05ce\u05d3\u05d6\u05da\u05dd"+ - "\u05df\u05e4\u05e9\u05f6\u05fb\u0603\u0609\u0613\u0622\u0627\u062f\u0632"+ - "\u0636\u063b\u0644\u0647\u064c\u0653\u0656\u065e\u0665\u066c\u066f\u0674"+ - "\u067a\u067e\u0681\u0684\u068f\u0694\u0699\u069e\u06b0\u06b2\u06b5\u06c0"+ - "\u06c9\u06d0\u06d8\u06e0\u06e4\u06ec\u06f4\u06fa\u0702\u070e\u0711\u0717"+ - "\u071b\u071d\u0726\u0732\u0734\u073b\u0742\u0748\u074e\u0750\u0755\u075c"+ - "\u0762\u0766\u0768\u076f\u077d\u0785\u0787\u078c\u078f\u0797\u07a0\u07a6"+ - "\u07ae\u07b4\u07b9\u07be\u07c4\u07d9\u07db\u07e3\u07e7\u07f0\u07f4\u0806"+ - "\u0809\u0811\u081a\u0831\u083c\u0843\u0846\u084b\u085a\u0864\u0866\u0873"+ - "\u0875\u0883\u088a\u088d\u0891\u0896\u08a7\u08ab\u08b4\u08b8\u08ba\u08c1"+ - "\u08c8\u08cf\u08d7\u08e4\u08f4\u08fe\u0901\u090a\u090d\u090f\u0912\u0915"+ - "\u0927\u0930\u0937\u0949\u094e\u0953\u0957\u095b\u095f\u0963\u0967\u096b"+ - "\u096e"; + "\u044f\u0455\u045c\u0463\u0465\u046a\u046e\u0473\u0478\u047b\u0480\u0484"+ + "\u0489\u048b\u048f\u0498\u04a0\u04a7\u04ae\u04b7\u04bc\u04cb\u04d2\u04d5"+ + "\u04dc\u04e0\u04e6\u04ee\u04f9\u0504\u050b\u0511\u0517\u0520\u0522\u052b"+ + "\u052e\u0537\u053a\u0543\u0546\u054f\u0552\u0555\u055a\u055c\u055f\u056a"+ + "\u056f\u057a\u057e\u0582\u058e\u0591\u0595\u059f\u05a3\u05a5\u05a8\u05ac"+ + "\u05af\u05b3\u05b9\u05bd\u05c1\u05c6\u05c9\u05cb\u05d0\u05d5\u05d8\u05dc"+ + "\u05df\u05e1\u05e6\u05eb\u05f8\u05fd\u0605\u060b\u0615\u0624\u0629\u0631"+ + "\u0634\u0638\u063d\u0646\u0649\u064e\u0655\u0658\u0660\u0667\u066e\u0671"+ + "\u0676\u067c\u0680\u0683\u0686\u0691\u0696\u069b\u06a0\u06b2\u06b4\u06b7"+ + "\u06c2\u06cb\u06d2\u06da\u06e2\u06e6\u06ee\u06f6\u06fc\u0704\u0710\u0713"+ + "\u0719\u071d\u071f\u0728\u0734\u0736\u073d\u0744\u074a\u0750\u0752\u0757"+ + "\u075e\u0764\u0768\u076a\u0771\u077f\u0787\u0789\u078e\u0791\u0799\u07a2"+ + "\u07a8\u07b0\u07b6\u07bb\u07c0\u07c6\u07db\u07dd\u07e5\u07e9\u07f2\u07f6"+ + "\u0808\u080b\u0813\u081c\u0833\u083e\u0845\u0848\u084d\u085c\u0866\u0868"+ + "\u0875\u0877\u0885\u088c\u088f\u0893\u0898\u08a9\u08ad\u08b6\u08ba\u08bc"+ + "\u08c3\u08ca\u08d1\u08d9\u08e6\u08f6\u0900\u0903\u090c\u090f\u0911\u0914"+ + "\u0917\u0929\u0932\u0939\u094b\u0950\u0955\u0959\u095d\u0961\u0965\u0969"+ + "\u096d\u0970"; public static final String _serializedATN = Utils.join( new String[] { _serializedATNSegment0, From af6bd45bf149b99f78ddff4d64206b1428ec7a01 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 5 Aug 2022 17:59:39 +0800 Subject: [PATCH 30/56] pg --- pom.xml | 6 +++ .../sql/parser/datax/reader/DBReader.kt | 8 ++-- .../github/bigdata/sql/parser/pg/PgTest.kt | 43 +++++++++++++++++++ src/test/resources/datax/pg2s3.json | 2 +- 4 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt diff --git a/pom.xml b/pom.xml index e907788..4c014b9 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,12 @@ 0.259.1 + + org.apache.shardingsphere + shardingsphere-sql-parser-postgresql + 4.0.0 + + junit junit diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt index 6055241..acf5b97 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -50,10 +50,12 @@ class DBReader { private fun pg(connection: JSONObject) { connectors = db if (!reader!!.containsKey("column")) { - val querySql = connection.getJSONArray("querySql").getStr(0).replace(":","") + var querySql = connection.getJSONArray("querySql").getStr(0).replace(":","") + if(querySql.contains("where")){ + querySql = querySql.split("where")[0] + } val statement = PrestoSQLHelper.getStatementData(querySql).statement - val tableData: TableData - tableData = if (statement is TableData) { + val tableData: TableData = if (statement is TableData) { statement } else { throw RuntimeException("血缘无法解析 -> $statement") diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt new file mode 100644 index 0000000..601fba6 --- /dev/null +++ b/src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt @@ -0,0 +1,43 @@ +package com.github.bigdata.sql.parser.pg + +import cn.hutool.json.JSONUtil +import com.facebook.presto.sql.tree.Insert +import com.github.bigdata.sql.antlr4.presto.PrestoSqlParser.SelectItemContext +import com.github.bigdata.sql.parser.presto.PrestoSQLHelper +import org.apache.shardingsphere.sql.parser.SQLParseEngineFactory +import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.SelectContext +import org.apache.shardingsphere.sql.parser.core.parser.SQLAST +import org.apache.shardingsphere.sql.parser.sql.segment.SQLSegment +import org.apache.shardingsphere.sql.parser.sql.segment.dml.item.SelectItemsSegment +import org.apache.shardingsphere.sql.parser.sql.segment.generic.SchemaSegment +import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment +import org.apache.shardingsphere.sql.parser.sql.statement.SQLStatement +import org.junit.Test + + +class PgTest { + + @Test + fun test() { + val sqlParseEngine = SQLParseEngineFactory.getSQLParseEngine("PostgreSQL") + val allSQLSegments = sqlParseEngine.parse("select * from tbl.sss where id = 1", true).allSQLSegments + for (segment in allSQLSegments) { + when (segment) { + is SelectItemsSegment -> { + segment.selectItems.forEach { + println(it) + println(it.text) + } + } + is TableSegment -> { + println(segment.owner.get().name) + println(segment.quoteCharacter) + println(segment.tableName) + } + } + println("******" + segment) + } + + + } +} \ No newline at end of file diff --git a/src/test/resources/datax/pg2s3.json b/src/test/resources/datax/pg2s3.json index 527307b..5e6674c 100644 --- a/src/test/resources/datax/pg2s3.json +++ b/src/test/resources/datax/pg2s3.json @@ -16,7 +16,7 @@ "connection": [ { "querySql": [ - "select a,b,v,cx,z,ss,s,e from test.table_name;" + "select a,b,v,cx,z,ss,s,e from test.table_name where (meta -> 'account_channel') = '4';" ], "jdbcUrl": [ "jdbc:postgresql://localhost:5432/postgres" From ffc779af26de00b2137100addaefd9f275dbd973 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Mon, 15 Aug 2022 10:39:08 +0800 Subject: [PATCH 31/56] =?UTF-8?q?spark=20WITH:SELECT=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sql/parser/spark/SparkSQLAntlr4Visitor.kt | 7 +- .../sql/parser/spark/SparkSqlParserTest.kt | 10 + src/test/resources/sql/1 | 401 ++++++++++++++++++ 3 files changed, 414 insertions(+), 4 deletions(-) create mode 100644 src/test/resources/sql/1 diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt index cec1675..1245dd3 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt @@ -463,13 +463,13 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { //-----------------------------------insert & query------------------------------------------------- override fun visitStatementDefault(ctx: SparkSqlBaseParser.StatementDefaultContext): StatementData? { - if(StringUtils.equalsIgnoreCase("select", ctx.start.text)) { + if(StringUtils.equalsIgnoreCase("select", ctx.start.text) + || (!StringUtils.equalsIgnoreCase("insert", ctx.start.text) && StringUtils.equalsIgnoreCase("with", ctx.start.text))) { currentOptType = StatementType.SELECT super.visitQuery(ctx.query()) - statementData.limit = limit return StatementData(StatementType.SELECT, statementData) - } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text) || StringUtils.equalsIgnoreCase("with", ctx.start.text)) { + } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text) && StringUtils.equalsIgnoreCase("with", ctx.start.text)) { super.visitQuery(ctx.query()) val tableContext = ctx.query().queryNoWith().getChild(0) @@ -493,7 +493,6 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { } else if(StringUtils.equalsIgnoreCase("from", ctx.start.text)) { currentOptType = StatementType.MULTI_INSERT super.visitQuery(ctx.query()) - return StatementData(StatementType.MULTI_INSERT, statementData) } else { return null diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt index 288537c..6388b2f 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt @@ -1,6 +1,8 @@ package com.github.bigdata.sql.parser.spark import com.github.bigdata.sql.parser.* +import com.github.bigdata.sql.parser.datax.DataxParserTest +import com.github.bigdata.sql.parser.presto.PrestoSQLHelper import org.junit.Assert import org.junit.Test @@ -656,6 +658,14 @@ class SparkSqlParserTest { Assert.assertEquals(StatementType.SET, statementData.type) } + fun readText(path:String): String = DataxParserTest::class.java.getResource(path).readText() + + @Test + fun sqlTest1() { + val sql = readText("/sql/1") + val statementData = SparkSQLHelper.getStatementData(sql) + println(statementData.statement) + } @Test fun sql() { diff --git a/src/test/resources/sql/1 b/src/test/resources/sql/1 new file mode 100644 index 0000000..0f09b74 --- /dev/null +++ b/src/test/resources/sql/1 @@ -0,0 +1,401 @@ + +with base_topics as ( + select + a.* + ,if(b.topic_id is not null,1,0) as is_excellent + + from ( + select + a.topic_id + ,a.member_id + ,a.start_date as created_dt + ,a.updated_date + ,a.target_type + ,case a.topic_type when 1 then '长文' when 0 then '短文' end as topic_type + ,if(topic_region not in ('CN','HK'),'其他',topic_region) as topic_region + ,a.curr_comments_cnt + ,a.curr_comment_member_cnt + ,a.curr_like_cnt + ,a.curr_likes_member_cnt + ,a.curr_quote_cnt + ,a.curr_share_cnt + ,a.curr_quot_member_cnt + ,a.curr_share_member_cnt + ,counter_id + ,tag_id + + from lb_ba_content.dws_community_topic_df a + LATERAL VIEW explode(split(substr(tag_ids,2,length(tag_ids) -2),',')) t1 as tag_id + LATERAL VIEW explode(split(substr(counter_ids,2,length(counter_ids) -2),',')) t1 as counter_id + where pt='20220814' + + and ( + start_date ='20220814' or + updated_date ='20220814' + ) + and topic_type in (0,1) + and tag_id !='' + ) a + left join ( + + select topic_id ,member_id + from lb_social.reward_topics + where activity_code = 'creator_new_plan' and status = 2 + ) b on a.topic_id = b.topic_id + +) +,tag as ( + select + a.id,name,container_id,status,unrecommend + ,tag_region + ,tag_created_dt + ,coalesce(c.theme_type,d.theme_type) as theme_type + ,a.dt + from ( + select + id,name,container_id,status,unrecommend + ,substr(regions,2,length(regions) -2) as tag_region + ,date_format(FROM_UNIXTIME(created_at/1000),'yyyy-MM-dd HH:mm:SS') as tag_created_dt + ,date_format(FROM_UNIXTIME(created_at/1000),'yyyyMMdd') as dt + from lb_social.tags + where date_format(FROM_UNIXTIME(created_at/1000),'yyyyMMdd')<='20220814' + union + select distinct + 0 id,'全部话题' name,0 container_id,0 status,0 unrecommend + ,'ALL' tag_region + ,concat('20220814','00:00:00') as tag_created_dt + ,'20220814' as dt + from lb_social.tags + + ) a + left join (select if(item_type = 'Hashtag', 'hash_tag','普通话题') as theme_type,item_id from lb_social.pins) c on a.id = c.item_id + left join (select if(item_type = 'Hashtag', 'hash_tag','普通话题') as theme_type,item_id from lb_social.ad_items) d on a.id = d.item_id + group by a.id + ,name,container_id,status,unrecommend + ,tag_region + ,tag_created_dt + ,coalesce(c.theme_type,d.theme_type) + ,a.dt +) +,tag_topics ( + select if(GROUPING(tag_id) = 1,0,tag_id) as tag_id + ,if(GROUPING(target_type) = 1,'ALL',target_type) as target_type + ,if(GROUPING(topic_type) = 1,'全部',topic_type) as topic_type + ,if(GROUPING(topic_region) = 1,'全部地区',topic_region) as topic_region + ,count(distinct topic_id) as topics + ,count(distinct member_id) as topic_members + ,count(distinct if(is_excellent=1,topic_id,null)) as excellent_topics + ,count(distinct if(is_excellent=1,member_id,null)) as excellent_topic_members + ,max(created_dt) as created_dt + ,max(updated_date) as updated_date + ,sum(curr_comments_cnt) as curr_comments_cnt + ,sum(curr_comment_member_cnt) as curr_comment_member_cnt + ,sum(curr_like_cnt) as curr_like_cnt + ,sum(curr_likes_member_cnt) as curr_likes_member_cnt + ,sum(curr_quote_cnt) as curr_quote_cnt + ,sum(curr_share_cnt) as curr_share_cnt + ,sum(curr_quot_member_cnt) as curr_quot_member_cnt + ,sum(curr_share_member_cnt) as curr_share_member_cnt + + from base_topics + group by tag_id + ,target_type + ,topic_type + ,topic_region + with rollup + ) +,tag_counters as ( + + select if(GROUPING(tag_id) = 1,0,tag_id) as tag_id + ,if(GROUPING(target_type) = 1,'ALL',target_type) as target_type + ,if(GROUPING(topic_type) = 1,'全部',topic_type) as topic_type + ,if(GROUPING(topic_region) = 1,'全部地区',topic_region) as topic_region + ,count(if(counter_id ='',null,counter_id)) as counters_cnt + ,count(distinct if(counter_id ='',null,counter_id)) as counters + from base_topics + group by tag_id + ,target_type + ,topic_type + ,topic_region + with rollup +) + +,sensor_event as ( + select + a.distinct_id + ,a.time + ,cast(a.target_id as bigint) as target_id + ,a.theme_type + ,a.target_name + ,duration + ,view_cnt + from ( + select distinct_id + ,min(time) as time + ,sum(cast(duration as double)) as duration + ,count(distinct_id) as view_cnt + ,get_json_object(properties,'$.target_id') as target_id + ,get_json_object(properties,'$.target_type') as theme_type + ,max(get_json_object(properties,'$.target_name')) as target_name + + from lb_bi_event_tracking.lb_bi_event_tracking_sensor_event_d + lateral view json_tuple(properties,'$event_duration') as duration + where event = 'topic_detail_view' + and project = 'production' + and duration >2 + and pt ='20220814' + and (get_json_object(properties,'$.target_name') is not null or get_json_object(properties,'$.target_name') <>'') + group by distinct_id + ,get_json_object(properties,'$.target_id') + ,get_json_object(properties,'$.target_type') + ) a +) +,tags_view as ( + select + target_id + ,theme_type + ,target_name + + ,sum(view_cnt) as total_view_cnt + ,count(distinct distinct_id) as view_member_cnt + ,sum(duration) as view_duration + from sensor_event + group by target_id + ,theme_type + ,target_name + +) +,tag_guide_counter as ( + + + + select + if(GROUPING(tag_id) = 1,0,tag_id) as tag_id + ,if(GROUPING(target_type) = 1,'ALL',target_type) as target_type + ,if(GROUPING(topic_type) = 1,'全部',topic_type) as topic_type + ,if(GROUPING(topic_region) = 1,'全部地区',topic_region) as topic_region + ,count(member_id) as tag_guide_counters_cnt + ,count(distinct member_id) as tag_guide_counter_members + ,count(distinct counter_id) as tag_guide_counters + from lb_ba_content.dwd_community_tag_guide_di + where guide_type='引导关注股票' + and pt='20220814' + group by tag_id + ,target_type + ,topic_type + ,topic_region + with rollup +) + +,tag_guide_trade as ( + + + + select + if(GROUPING(tag_id) = 1,0,tag_id) as tag_id + ,if(GROUPING(target_type) = 1,'ALL',target_type) as target_type + ,if(GROUPING(topic_type) = 1,'全部',topic_type) as topic_type + ,if(GROUPING(topic_region) = 1,'全部地区',topic_region) as topic_region + ,count(member_id) as tag_guide_trade_cnt + ,count(distinct member_id) as tag_guide_trade_members + ,count(distinct counter_id) as tag_guide_trade_counters + from lb_ba_content.dwd_community_tag_guide_di + where guide_type='引导交易' + and pt='20220814' + group by tag_id + ,target_type + ,topic_type + ,topic_region + with rollup +) + +select + a.target_id + ,a.tag_name + ,a.tag_region + ,a.unrecommend + ,a.tag_created_dt + ,a.theme_type + ,a.status + ,a.id as tag_id + ,b.target_type as topic_target_type + ,b.topic_type as topic_type + ,b.topic_region as topic_region + ,b.curr_topic_cnt + ,b.curr_topic_members + ,b.curr_excellent_topics + ,b.curr_excellent_topic_members + ,b.curr_comments_cnt + ,b.curr_comment_members + ,b.curr_like_cnt + ,b.curr_likes_members + ,b.curr_quote_cnt + ,b.curr_quot_members + ,b.curr_share_cnt + ,b.curr_share_members + ,b.counter_cnt + ,b.counters + ,a.tag_view_cnt + ,a.tag_view_members + ,b.tag_guide_counters_cnt + ,b.tag_guide_counter_members + ,b.tag_guide_counters + ,b.tag_guide_trade_cnt + ,b.tag_guide_trade_members + ,b.tag_guide_trade_counters + ,a.view_duration +from ( + select + a.target_id + ,b.id + ,b.name as tag_name + ,b.tag_region + ,b.unrecommend + ,b.tag_created_dt + ,coalesce (b.theme_type,a.theme_type) as theme_type + ,b.status + + ,a.total_view_cnt as tag_view_cnt + ,a.view_member_cnt as tag_view_members + ,a.view_duration + from tags_view a + left join tag b on b.container_id = a.target_id +) a +left join ( + select tag_id + ,target_type + ,topic_type + ,topic_region + ,sum(if(topics is null,0,topics)) as curr_topic_cnt + ,sum(if(topic_members is null,0,topic_members)) as curr_topic_members + ,sum(if(excellent_topics is null,0,excellent_topics)) as curr_excellent_topics + ,sum(if(excellent_topic_members is null,0,excellent_topic_members)) as curr_excellent_topic_members + ,sum(if(curr_comments_cnt is null,0,curr_comments_cnt)) as curr_comments_cnt + ,sum(if(curr_comment_member_cnt is null,0,curr_comment_member_cnt)) as curr_comment_members + ,sum(if(curr_like_cnt is null,0,curr_like_cnt)) as curr_like_cnt + ,sum(if(curr_likes_member_cnt is null,0,curr_likes_member_cnt)) as curr_likes_members + ,sum(if(curr_quote_cnt is null,0,curr_quote_cnt)) as curr_quote_cnt + ,sum(if(curr_quot_member_cnt is null,0,curr_quot_member_cnt)) as curr_quot_members + ,sum(if(curr_share_cnt is null,0,curr_share_cnt)) as curr_share_cnt + ,sum(if(curr_share_member_cnt is null,0,curr_share_member_cnt)) as curr_share_members + ,sum(if(counters_cnt is null,0,counters_cnt)) as counter_cnt + ,sum(if(counters is null,0,counters)) as counters + ,sum(if(tag_guide_counters_cnt is null,0,tag_guide_counters_cnt)) as tag_guide_counters_cnt + ,sum(if(tag_guide_counter_members is null,0,tag_guide_counter_members)) as tag_guide_counter_members + ,sum(if(tag_guide_counters is null,0,tag_guide_counters)) as tag_guide_counters + ,sum(if(tag_guide_trade_cnt is null,0,tag_guide_trade_cnt)) as tag_guide_trade_cnt + ,sum(if(tag_guide_trade_members is null,0,tag_guide_trade_members)) as tag_guide_trade_members + ,sum(if(tag_guide_trade_counters is null,0,tag_guide_trade_counters)) as tag_guide_trade_counters + from ( + select + tag_id + ,target_type + ,topic_type + ,topic_region + ,topics + ,topic_members + ,excellent_topics + ,excellent_topic_members + ,curr_comments_cnt + ,curr_comment_member_cnt + ,curr_like_cnt + ,curr_likes_member_cnt + ,curr_quote_cnt + ,curr_quot_member_cnt + ,curr_share_cnt + ,curr_share_member_cnt + ,0 counters_cnt + ,0 counters + ,0 tag_guide_counters_cnt + ,0 tag_guide_counter_members + ,0 tag_guide_counters + ,0 tag_guide_trade_cnt + ,0 tag_guide_trade_members + ,0 tag_guide_trade_counters + from tag_topics + union all + select + tag_id + ,target_type + ,topic_type + ,topic_region + ,0 topics + ,0 topic_members + ,0 excellent_topics + ,0 excellent_topic_members + ,0 curr_comments_cnt + ,0 curr_comment_member_cnt + ,0 curr_like_cnt + ,0 curr_likes_member_cnt + ,0 curr_quote_cnt + ,0 curr_quot_member_cnt + ,0 curr_share_cnt + ,0 curr_share_member_cnt + ,counters_cnt + ,counters + ,0 tag_guide_counters_cnt + ,0 tag_guide_counter_members + ,0 tag_guide_counters + ,0 tag_guide_trade_cnt + ,0 tag_guide_trade_members + ,0 tag_guide_trade_counters + from tag_counters + union all + select + tag_id + ,target_type + ,topic_type + ,topic_region + ,0 topics + ,0 topic_members + ,0 excellent_topics + ,0 excellent_topic_members + ,0 curr_comments_cnt + ,0 curr_comment_member_cnt + ,0 curr_like_cnt + ,0 curr_likes_member_cnt + ,0 curr_quote_cnt + ,0 curr_quot_member_cnt + ,0 curr_share_cnt + ,0 curr_share_member_cnt + ,0 counters_cnt + ,0 counters + ,tag_guide_counters_cnt + ,tag_guide_counter_members + ,tag_guide_counters + ,0 tag_guide_trade_cnt + ,0 tag_guide_trade_members + ,0 tag_guide_trade_counters + from tag_guide_counter + union all + select + tag_id + ,target_type + ,topic_type + ,topic_region + ,0 topics + ,0 topic_members + ,0 excellent_topics + ,0 excellent_topic_members + ,0 curr_comments_cnt + ,0 curr_comment_member_cnt + ,0 curr_like_cnt + ,0 curr_likes_member_cnt + ,0 curr_quote_cnt + ,0 curr_quot_member_cnt + ,0 curr_share_cnt + ,0 curr_share_member_cnt + ,0 counters_cnt + ,0 counters + ,0 tag_guide_counters_cnt + ,0 tag_guide_counter_members + ,0 tag_guide_counters + ,tag_guide_trade_cnt + ,tag_guide_trade_members + ,tag_guide_trade_counters + from tag_guide_trade + ) group by tag_id + ,target_type + ,topic_type + ,topic_region +) b on a.id = b.tag_id \ No newline at end of file From b2148dd0c7bd64e2921959c39de8375b70c3ea38 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Mon, 15 Aug 2022 10:39:25 +0800 Subject: [PATCH 32/56] =?UTF-8?q?=E5=9B=BE=E7=AE=97=E6=B3=95=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/DijkstraSolve.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/test/java/DijkstraSolve.java diff --git a/src/test/java/DijkstraSolve.java b/src/test/java/DijkstraSolve.java new file mode 100644 index 0000000..fd9e1ea --- /dev/null +++ b/src/test/java/DijkstraSolve.java @@ -0,0 +1,23 @@ +import com.google.common.graph.*; + +public final class DijkstraSolve { + public static void main(String[] args) { + MutableValueGraph g = ValueGraphBuilder.directed().build(); + g.putEdgeValue("a", "b", 4); + g.putEdgeValue("a", "d", 2); + g.putEdgeValue("c", "b", 3); + g.putEdgeValue("c", "z", 2); + g.putEdgeValue("e", "d", 3); + g.putEdgeValue("e", "z", 1); + g.putEdgeValue("e", "b", 3); + g.putEdgeValue("e1", "b", 1); + g.putEdgeValue("e1", "1b", 3); + + Graph stringGraph = g.asGraph(); + Graphs.reachableNodes(stringGraph, "c").forEach(System.out::println); + + System.out.println("---------"); + Graph transpose = Graphs.transpose(stringGraph); + Graphs.reachableNodes(transpose, "b").forEach(System.out::println); + } +} \ No newline at end of file From 8a0db915d758966e334e3abab778b64d7339595f Mon Sep 17 00:00:00 2001 From: duhanmin Date: Mon, 15 Aug 2022 11:01:52 +0800 Subject: [PATCH 33/56] with_select --- .../com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt | 2 +- src/test/resources/sql/{1 => with_select} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/test/resources/sql/{1 => with_select} (100%) diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt index 6388b2f..b8d6b5f 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/spark/SparkSqlParserTest.kt @@ -662,7 +662,7 @@ class SparkSqlParserTest { @Test fun sqlTest1() { - val sql = readText("/sql/1") + val sql = readText("/sql/with_select") val statementData = SparkSQLHelper.getStatementData(sql) println(statementData.statement) } diff --git a/src/test/resources/sql/1 b/src/test/resources/sql/with_select similarity index 100% rename from src/test/resources/sql/1 rename to src/test/resources/sql/with_select From 8c65049b8ef1d9c699aeb62cca08200df76356e5 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Mon, 15 Aug 2022 14:19:34 +0800 Subject: [PATCH 34/56] with_select --- .../sql/parser/spark/SparkSQLAntlr4Visitor.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt index 1245dd3..0ffdef3 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt @@ -463,13 +463,17 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { //-----------------------------------insert & query------------------------------------------------- override fun visitStatementDefault(ctx: SparkSqlBaseParser.StatementDefaultContext): StatementData? { - if(StringUtils.equalsIgnoreCase("select", ctx.start.text) - || (!StringUtils.equalsIgnoreCase("insert", ctx.start.text) && StringUtils.equalsIgnoreCase("with", ctx.start.text))) { + val select = StringUtils.equalsIgnoreCase("select", ctx.start.text) + val insert = StringUtils.equalsIgnoreCase("insert", ctx.start.text) + val with = StringUtils.equalsIgnoreCase("with", ctx.start.text) + val from = StringUtils.equalsIgnoreCase("from", ctx.start.text) + + if(select || (!insert && with)) { currentOptType = StatementType.SELECT super.visitQuery(ctx.query()) statementData.limit = limit return StatementData(StatementType.SELECT, statementData) - } else if(StringUtils.equalsIgnoreCase("insert", ctx.start.text) && StringUtils.equalsIgnoreCase("with", ctx.start.text)) { + } else if(insert && with) { super.visitQuery(ctx.query()) val tableContext = ctx.query().queryNoWith().getChild(0) @@ -490,7 +494,7 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { } else { return StatementData(StatementType.INSERT_SELECT, statementData) } - } else if(StringUtils.equalsIgnoreCase("from", ctx.start.text)) { + } else if(from) { currentOptType = StatementType.MULTI_INSERT super.visitQuery(ctx.query()) return StatementData(StatementType.MULTI_INSERT, statementData) From e1f7aedb0cf9603dff062330ea2e7b79c4d88095 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Mon, 15 Aug 2022 14:56:54 +0800 Subject: [PATCH 35/56] with_select --- .../sql/parser/spark/SparkSQLAntlr4Visitor.kt | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt index 0ffdef3..2dd5982 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/spark/SparkSQLAntlr4Visitor.kt @@ -468,31 +468,36 @@ class SparkSQLAntlr4Visitor : SparkSqlBaseBaseVisitor() { val with = StringUtils.equalsIgnoreCase("with", ctx.start.text) val from = StringUtils.equalsIgnoreCase("from", ctx.start.text) - if(select || (!insert && with)) { + if(select) { currentOptType = StatementType.SELECT super.visitQuery(ctx.query()) statementData.limit = limit return StatementData(StatementType.SELECT, statementData) - } else if(insert && with) { + } else if(insert || with) { super.visitQuery(ctx.query()) + var insertTableIdentifier:Boolean = true val tableContext = ctx.query().queryNoWith().getChild(0) - val tableIdentifier: SparkSqlBaseParser.TableIdentifierContext - = if(tableContext is SparkSqlBaseParser.InsertIntoTableContext) { + val tableIdentifier: SparkSqlBaseParser.TableIdentifierContext? = if(tableContext is SparkSqlBaseParser.InsertIntoTableContext) { tableContext.tableIdentifier() - } else { - (tableContext as SparkSqlBaseParser.InsertOverwriteTableContext).tableIdentifier() + } else if (tableContext is SparkSqlBaseParser.InsertOverwriteTableContext){ + tableContext.tableIdentifier() + }else{ + insertTableIdentifier = false + null } - val databaseName = tableIdentifier.db?.text - val tableName = tableIdentifier.table.text - val tableSource = TableSource(databaseName, tableName) - statementData.outpuTables.add(tableSource) + if (insertTableIdentifier && tableIdentifier != null) { + val databaseName = tableIdentifier.db?.text + val tableName = tableIdentifier.table.text + val tableSource = TableSource(databaseName, tableName) + statementData.outpuTables.add(tableSource) + } - if(currentOptType == StatementType.INSERT_VALUES) { - return StatementData(StatementType.INSERT_VALUES, statementData) + return if(currentOptType == StatementType.INSERT_VALUES) { + StatementData(StatementType.INSERT_VALUES, statementData) } else { - return StatementData(StatementType.INSERT_SELECT, statementData) + StatementData(StatementType.INSERT_SELECT, statementData) } } else if(from) { currentOptType = StatementType.MULTI_INSERT From 3068a5e383c2473a453ab319af1ff4bc56cf187e Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 22 Feb 2023 15:05:24 +0800 Subject: [PATCH 36/56] 2b --- .../sql/parser/datax/reader/S3Reader.kt | 9 +- .../sql/parser/datax/writer/S3Writer.kt | 21 +- .../sql/parser/datax/DataxParserTest.kt | 3 +- src/test/resources/datax/2bpg2s3.json | 79 ++++++ src/test/resources/datax/2bpg2s3new.json | 247 ++++++++++++++++++ src/test/resources/datax/2bs32pg.json | 120 +++++++++ 6 files changed, 470 insertions(+), 9 deletions(-) create mode 100644 src/test/resources/datax/2bpg2s3.json create mode 100644 src/test/resources/datax/2bpg2s3new.json create mode 100644 src/test/resources/datax/2bs32pg.json diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt index 8152e59..114bc50 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt @@ -28,8 +28,13 @@ class S3Reader { val path = reader!!.getJSONArray("path").getStr(0) val split = path.split("/").toTypedArray() if (split.size < 3) throw RuntimeException("path 无法解析出库和表,path:" + ArrayUtil.toString(split)) - db = split[1] - table = split[2] + if (path.startsWith("account/")) { + db = split[3] + table = split[4] + } else { + db = split[1] + table = split[2] + } val columns = reader!!.getJSONArray("column") for (i in columns.indices) { val column = columns.getJSONObject(i) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt index 84f2932..5507c1e 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt @@ -30,16 +30,27 @@ class S3Writer { val split = path.split("/").toTypedArray() if (split.size < 3) throw RuntimeException("path 无法解析出库和表,path:" + ArrayUtil.toString(split)) if (writer!!.containsKey("old")){ - db = split[2] - table = split[3] - }else{ - db = split[1] - table = split[2] + if (path.contains("/account/")) { + db = split[4] + table = split[5] + } else { + db = split[2] + table = split[3] + } + }else { + if (path.startsWith("account/")) { + db = split[3] + table = split[4] + } else { + db = split[1] + table = split[2] + } val column = writer!!.getJSONArray("column") for (i in column.indices) { val name = column.getJSONObject(i).getStr("name") columns.add(name) } } + connectors = "hive" } } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index a3247c8..c26fde4 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -1,6 +1,5 @@ package com.github.bigdata.sql.parser.datax -import cn.hutool.json.JSONUtil import com.github.bigdata.sql.parser.TableData import org.junit.Test @@ -37,7 +36,7 @@ class DataxParserTest { run("/datax/mysql2s3_1.json") run("/datax/s32mysql.json") run("/datax/s32pg.json")*/ - run("/datax/pg2s3old.json") + run("/datax/2bs32pg.json") } } diff --git a/src/test/resources/datax/2bpg2s3.json b/src/test/resources/datax/2bpg2s3.json new file mode 100644 index 0000000..f28536b --- /dev/null +++ b/src/test/resources/datax/2bpg2s3.json @@ -0,0 +1,79 @@ +{ + "job": { + "content": [ + { + "reader": { + "parameter": { + "column": [ + "\"id\"", + "\"created_at\"", + "\"updated_at\"", + "\"account_channel\"", + "\"aaid\"", + "\"member_id\"", + "\"origin_id\"", + "\"company_channel\"", + "\"counter_id\"", + "\"pcounter_id\"", + "\"fund_name\"", + "\"action\"", + "\"nav\"", + "\"currency\"", + "\"apply_amount\"", + "\"apply_shares\"", + "\"confirmed_amount\"", + "\"confirmed_shares\"", + "\"settlement_no\"", + "\"state\"", + "\"sync_state\"", + "\"time_partition\"", + "\"submit_at\"", + "\"confirm_at\"", + "\"settle_at\"", + "\"cancel_at\"", + "\"trade_source\"", + "\"fee\"", + "\"ob_channel\"", + "\"remark\"", + "\"asset_class\"", + "\"isin\"", + "\"sync_at\"" + ], + "password": "B2222222222222222Rs=", + "connection": [ + { + "jdbcUrl": [ + "jdbc:postgresql://333333333333333:5432/lb-utservice-canary" + ], + "table": [ + "saas_orders" + ] + } + ], + "splitPk": "", + "username": "=B2222222222222222Rs=" + }, + "name": "postgresqlreader" + }, + "writer": { + "parameter": { + "old": true, + "writeMode": "overwrite", + "path": "canary-lb-bi-data-warehouse/account/longport/ods/longport_lb_utservice_canary/saas_orders/" + }, + "name": "s3writer" + } + } + ], + "setting": { + "errorLimit": { + "record": 0, + "percentage": 0.02 + }, + "speed": { + "byte": 1048576, + "channel": 1 + } + } + } +} \ No newline at end of file diff --git a/src/test/resources/datax/2bpg2s3new.json b/src/test/resources/datax/2bpg2s3new.json new file mode 100644 index 0000000..27480ae --- /dev/null +++ b/src/test/resources/datax/2bpg2s3new.json @@ -0,0 +1,247 @@ +{ + "variable": { + "variable": { + }, + "configuration": { + "special": { + }, + "runtime": { + }, + "startup": { + } + } + }, + "job": { + "content": [ + { + "reader": { + "parameter": { + "datax_web": "true", + "password": "f/sssssssssssssssss+sssssssssssssssss+sssssssssssssssss=", + "connection": [ + { + "querySql": [ + "SELECT id, aaid, en_name, real_name, address, email, account_type, account_no, member_id, support_manager_name, support_manager_id, org_id, state, phone_number, statement_send, account_channel, lang, card_type, card_id, card_country, beneficiary_name, broker_name, broker_code, client_type, tax_id, tax_country, first_name, last_name, region, birth_date, location, credit_limit, open_date, occupation, close_date, country_code, us_stock_ac_long, us_stock_ac_short, us_option_ac_lc_sp, us_option_ac_sc_lp, gender, pi, company_email, client_detail_type, account_name, mark, joint_en_name FROM ods_account_infos" + ], + "jdbcUrl": [ + "jdbc:postgresql://sssssssssssssssss:5432/clearing" + ] + } + ], + "username": "sssssssssssssssss==" + }, + "name": "postgresqlreader" + }, + "writer": { + "parameter": { + "column": [ + { + "type": "bigint", + "name": "id" + }, + { + "type": "bigint", + "name": "ledger_date" + }, + { + "type": "bigint", + "name": "aaid" + }, + { + "type": "string", + "name": "en_name" + }, + { + "type": "string", + "name": "real_name" + }, + { + "type": "string", + "name": "address" + }, + { + "type": "string", + "name": "email" + }, + { + "type": "string", + "name": "account_type" + }, + { + "type": "string", + "name": "account_no" + }, + { + "type": "bigint", + "name": "member_id" + }, + { + "type": "string", + "name": "support_manager_name" + }, + { + "type": "string", + "name": "support_manager_id" + }, + { + "type": "bigint", + "name": "org_id" + }, + { + "type": "bigint", + "name": "state" + }, + { + "type": "string", + "name": "phone_number" + }, + { + "type": "string", + "name": "statement_send" + }, + { + "type": "string", + "name": "account_channel" + }, + { + "type": "string", + "name": "lang" + }, + { + "type": "bigint", + "name": "card_type" + }, + { + "type": "string", + "name": "card_id" + }, + { + "type": "string", + "name": "card_country" + }, + { + "type": "string", + "name": "beneficiary_name" + }, + { + "type": "string", + "name": "broker_name" + }, + { + "type": "string", + "name": "broker_code" + }, + { + "type": "bigint", + "name": "client_type" + }, + { + "type": "string", + "name": "tax_id" + }, + { + "type": "string", + "name": "tax_country" + }, + { + "type": "string", + "name": "first_name" + }, + { + "type": "string", + "name": "last_name" + }, + { + "type": "string", + "name": "region" + }, + { + "type": "bigint", + "name": "birth_date" + }, + { + "type": "string", + "name": "location" + }, + { + "type": "decimal(20,10)", + "name": "credit_limit" + }, + { + "type": "string", + "name": "open_date" + }, + { + "type": "string", + "name": "occupation" + }, + { + "type": "bigint", + "name": "close_date" + }, + { + "type": "string", + "name": "country_code" + }, + { + "type": "string", + "name": "us_stock_ac_long" + }, + { + "type": "string", + "name": "us_stock_ac_short" + }, + { + "type": "string", + "name": "us_option_ac_lc_sp" + }, + { + "type": "string", + "name": "us_option_ac_sc_lp" + }, + { + "type": "bigint", + "name": "gender" + }, + { + "type": "bigint", + "name": "pi" + }, + { + "type": "string", + "name": "company_email" + }, + { + "type": "string", + "name": "client_detail_type" + }, + { + "type": "string", + "name": "account_name" + }, + { + "type": "string", + "name": "mark" + }, + { + "type": "string", + "name": "joint_en_name" + } + ], + "writeMode": "truncate", + "bucket": "canary-lb-bi-data-warehouse", + "path": "account/lb/ads/lb_portfolio_backbone/archive_ods_account_infos/pt=20230220", + "stored": "PARQUET", + "compression": "SNAPPY" + }, + "name": "s3writer" + } + } + ], + "setting": { + "speed": { + "channel": "3" + } + } + } +} \ No newline at end of file diff --git a/src/test/resources/datax/2bs32pg.json b/src/test/resources/datax/2bs32pg.json new file mode 100644 index 0000000..7ef09a8 --- /dev/null +++ b/src/test/resources/datax/2bs32pg.json @@ -0,0 +1,120 @@ +{ + "variable": { + "configuration": { + "runtime": { + }, + "special": { + }, + "startup": { + } + }, + "variable": { + } + }, + "job": { + "content": [ + { + "reader": { + "parameter": { + "column": [ + { + "index": "0", + "type": "date" + }, + { + "index": "1", + "type": "bigint" + }, + { + "index": "2", + "type": "string" + }, + { + "index": "3", + "type": "string" + }, + { + "index": "4", + "type": "string" + }, + { + "index": "5", + "type": "decimal(24, 9)" + }, + { + "index": "6", + "type": "decimal(24, 9)" + }, + { + "index": "7", + "type": "decimal(24, 9)" + }, + { + "index": "8", + "type": "bigint" + }, + { + "index": "9", + "type": "string" + }, + { + "index": "10", + "type": "string" + }, + { + "constant": "hk_zundiao", + "index": "11", + "type": "string" + } + ], + "bucket": "lb-bi-data-warehouse", + "path": [ + "account/hk_zundiao/ads/hk_zundiao_lb_bi_finance/ads_user_stock_invest_costs/account_channel=hk_zundiao/pt=20230222/" + ], + "stored": "parquet", + "compression": "NONE" + }, + "name": "s3reader" + }, + "writer": { + "parameter": { + "column": [ + "dt", + "member_id", + "counter_id", + "market", + "currency", + "holding_quantity", + "buy_avg_cost", + "diluted_avg_cost", + "aaid", + "security_type", + "position_side", + "account_channel" + ], + "datax_web": "true", + "password": "kOo3242ewrewszPc=", + "connection": [ + { + "jdbcUrl": "jdbc:postgresql://3242ewrewsz:5432/portfolio_datadriver__hk_zundiao", + "table": [ + "public.user_stock_invest_costs" + ] + } + ], + "username": "3242ewrewsz=", + "preSql": [ + "delete from public.user_stock_invest_costs where dt = '2023-02-21' and account_channel = 'hk_zundiao'" + ] + }, + "name": "postgresqlwriter" + } + } + ], + "setting": { + "speed": { + "channel": "1" + } + } + } +} \ No newline at end of file From 906c45a9c43f870bdf1ae56691c3875cfaee0e5d Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 22 Feb 2023 16:20:01 +0800 Subject: [PATCH 37/56] del --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index 4c014b9..e907788 100644 --- a/pom.xml +++ b/pom.xml @@ -78,12 +78,6 @@ 0.259.1 - - org.apache.shardingsphere - shardingsphere-sql-parser-postgresql - 4.0.0 - - junit junit From 2dcc4f27646887751a5488495b376975ac2c7e04 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 22 Feb 2023 16:20:55 +0800 Subject: [PATCH 38/56] del --- .../github/bigdata/sql/parser/pg/PgTest.kt | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt deleted file mode 100644 index 601fba6..0000000 --- a/src/test/kotlin/com/github/bigdata/sql/parser/pg/PgTest.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.github.bigdata.sql.parser.pg - -import cn.hutool.json.JSONUtil -import com.facebook.presto.sql.tree.Insert -import com.github.bigdata.sql.antlr4.presto.PrestoSqlParser.SelectItemContext -import com.github.bigdata.sql.parser.presto.PrestoSQLHelper -import org.apache.shardingsphere.sql.parser.SQLParseEngineFactory -import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.SelectContext -import org.apache.shardingsphere.sql.parser.core.parser.SQLAST -import org.apache.shardingsphere.sql.parser.sql.segment.SQLSegment -import org.apache.shardingsphere.sql.parser.sql.segment.dml.item.SelectItemsSegment -import org.apache.shardingsphere.sql.parser.sql.segment.generic.SchemaSegment -import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment -import org.apache.shardingsphere.sql.parser.sql.statement.SQLStatement -import org.junit.Test - - -class PgTest { - - @Test - fun test() { - val sqlParseEngine = SQLParseEngineFactory.getSQLParseEngine("PostgreSQL") - val allSQLSegments = sqlParseEngine.parse("select * from tbl.sss where id = 1", true).allSQLSegments - for (segment in allSQLSegments) { - when (segment) { - is SelectItemsSegment -> { - segment.selectItems.forEach { - println(it) - println(it.text) - } - } - is TableSegment -> { - println(segment.owner.get().name) - println(segment.quoteCharacter) - println(segment.tableName) - } - } - println("******" + segment) - } - - - } -} \ No newline at end of file From fab7d30758584ece692bb98baf83c3b546099285 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Wed, 22 Feb 2023 16:37:46 +0800 Subject: [PATCH 39/56] add --- .../kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt | 3 ++- .../com/github/bigdata/sql/parser/datax/reader/S3Reader.kt | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt index 961568f..bfbd619 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/DataxLHelper.kt @@ -50,7 +50,8 @@ object DataxLHelper { tableSourceReader = TableSource(dbReader.connectors,dbReader.db, dbReader.table,null,dbReader.columns,readerName) }else if (readerName.equals(DataxType.Reader.s3.code)){ val s3Reader = S3Reader(readerName,reader) - tableSourceReader = TableSource(null,s3Reader.db, s3Reader.table,null,s3Reader.columns,readerName) + tableSourceReader = + TableSource(s3Reader.connectors, s3Reader.db, s3Reader.table, null, s3Reader.columns, readerName) } tableSourceReader?.let { statementData.inputTables.add(it) } diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt index 114bc50..464f80c 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/S3Reader.kt @@ -12,6 +12,7 @@ import cn.hutool.json.JSONObject class S3Reader { private var name: String? = null private var reader: JSONObject? = null + var connectors: String? = null var db: String? = null var table: String? = null var columns: MutableList = ArrayList() @@ -41,5 +42,6 @@ class S3Reader { if (column.containsKey("name")) this.columns.add(column.getStr("name")) } + connectors = "hive" } } From 8efa25403c86c668269c0a9e83fa4ccc4bbe4823 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 23 Feb 2023 15:01:08 +0800 Subject: [PATCH 40/56] add mysql --- .../bigdata/sql/parser/datax/reader/DBReader.kt | 5 ++++- .../bigdata/sql/parser/datax/writer/DBWriter.kt | 4 ++++ .../bigdata/sql/parser/datax/DataxParserTest.kt | 11 ++++++----- src/test/resources/datax/mysql2s3_1.json | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt index acf5b97..a65a5f1 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -34,7 +34,7 @@ class DBReader { private fun init() { val connection = reader!!.getJSONArray("connection").getJSONObject(0) var jdbcUrl = connection.getJSONArray("jdbcUrl").getStr(0) - if (jdbcUrl.contains("?")){ + if (jdbcUrl.contains("?")) { jdbcUrl = jdbcUrl.split("?")[0] } val split = jdbcUrl.split("/").toTypedArray() @@ -44,6 +44,9 @@ class DBReader { } else { db(connection) } + if (DataxType.Reader.mysql.code == name && StrUtil.isBlank(connectors)) { + connectors = "mysql" + } } @Throws(Exception::class) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt index 798391f..545ce69 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/DBWriter.kt @@ -1,5 +1,6 @@ package com.github.bigdata.sql.parser.datax.writer +import cn.hutool.core.util.StrUtil import cn.hutool.json.JSONObject import cn.hutool.json.JSONUtil import com.github.bigdata.sql.parser.datax.commons.DataxType @@ -49,6 +50,9 @@ class DBWriter { this.table = tables[1] } } + if (DataxType.Writer.mysql.code == name && StrUtil.isBlank(connectors)) { + connectors = "mysql" + } val column = writer!!.getJSONArray("column") columns.addAll(JSONUtil.toList(column, String::class.java)) } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index c26fde4..d5456ee 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -30,13 +30,14 @@ class DataxParserTest { @Test fun test() { -/* run("/datax/pg2s3.json") + /* run("/datax/pg2s3.json") + run("/datax/pg2s3_1.json") + run("/datax/mysql2s3.json") + run("/datax/mysql2s3_1.json") + run("/datax/s32mysql.json") + run("/datax/s32pg.json")*/ run("/datax/pg2s3_1.json") - run("/datax/mysql2s3.json") run("/datax/mysql2s3_1.json") - run("/datax/s32mysql.json") - run("/datax/s32pg.json")*/ - run("/datax/2bs32pg.json") } } diff --git a/src/test/resources/datax/mysql2s3_1.json b/src/test/resources/datax/mysql2s3_1.json index 0354ceb..4c099a5 100644 --- a/src/test/resources/datax/mysql2s3_1.json +++ b/src/test/resources/datax/mysql2s3_1.json @@ -22,7 +22,7 @@ "table" ], "jdbcUrl": [ - "jdbc:postgresql://host:port/database" + "jdbc:mysql://host:port/database" ] } ] From 53e0d14e4fa2ace1a77c39f2a44d96095e743d5a Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 24 Feb 2023 11:00:25 +0800 Subject: [PATCH 41/56] column+querySql --- .../com/github/bigdata/sql/parser/datax/reader/DBReader.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt index a65a5f1..5c8f8e1 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -52,9 +52,9 @@ class DBReader { @Throws(Exception::class) private fun pg(connection: JSONObject) { connectors = db - if (!reader!!.containsKey("column")) { - var querySql = connection.getJSONArray("querySql").getStr(0).replace(":","") - if(querySql.contains("where")){ + if (!reader!!.containsKey("column") || connection.containsKey("querySql")) { + var querySql = connection.getJSONArray("querySql").getStr(0).replace(":", "") + if (querySql.contains("where")) { querySql = querySql.split("where")[0] } val statement = PrestoSQLHelper.getStatementData(querySql).statement From 098e8693eab2f003083357b9f9ec63d3942d753f Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 24 Feb 2023 17:11:21 +0800 Subject: [PATCH 42/56] test --- .../bigdata/sql/parser/datax/DataxParserTest.kt | 5 ++--- .../com/github/bigdata/sql/parser/pg/Test.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt index d5456ee..a555fde 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/datax/DataxParserTest.kt @@ -33,11 +33,10 @@ class DataxParserTest { /* run("/datax/pg2s3.json") run("/datax/pg2s3_1.json") run("/datax/mysql2s3.json") - run("/datax/mysql2s3_1.json") + run("/datax/s32mysql.json") run("/datax/s32pg.json")*/ - run("/datax/pg2s3_1.json") - run("/datax/mysql2s3_1.json") + run("/datax/pg2s3.json") } } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt new file mode 100644 index 0000000..fc1a6f1 --- /dev/null +++ b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt @@ -0,0 +1,17 @@ +package com.github.bigdata.sql.parser.pg + +import org.junit.Test + +class Test { + + @Test + fun setConfigTest1() { + val sql = + "select id,code,pcode,counter_id,pcounter_id,product,name,name_locales::varchar as name_locales,company_name,company_name_locales::varchar as company_name_locales,profile,profile_locales::varchar as profile_locales,market,sip_status," + + "level,factset_product,factset_industry_code,isin,fds_md5,created_at,updated_at,fds_tr,ice_tr,ice_product,visible,exchange,locale_status," + + "plevel,currency,status,etf_type,jy_inner_code,jy_company_code,industry_id,intro::varchar as intro,rbics_l4_industry_id," + + "rbics_l4_secondary_industry_id,rbics_l3_industry_id,transaction_currency,security_code,factset_entity_id," + + "short_sell,intro->>'zh-CN' as intro_zh_cn from asdsadsa.securities" + + } +} \ No newline at end of file From 1f98f3a12d5b95aa97f4ff6adf5d6fa389762cdf Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 24 Feb 2023 17:11:40 +0800 Subject: [PATCH 43/56] add g4 --- .../bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 | 931 ++++++++ .../bigdata/sql/antlr4/pg/PostgreSQLParser.g4 | 1899 +++++++++++++++++ 2 files changed, 2830 insertions(+) create mode 100644 src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 create mode 100644 src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 new file mode 100644 index 0000000..56152c9 --- /dev/null +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 @@ -0,0 +1,931 @@ +// The MIT License + +// Copyright 2018 Tal Shprecher + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +lexer grammar PostgreSQLLexer; + +// Skip +WHITESPACE : [ \t\r\n]+ -> skip; +BLOCK_COMMENT : '/*' .*? '*/' -> channel(HIDDEN); +LINE_COMMENT : '--' .*? '\n' -> channel(HIDDEN); + +// Fragments +fragment A : ('A'|'a') ; +fragment B : ('B'|'b') ; +fragment C : ('C'|'c') ; +fragment D : ('D'|'d') ; +fragment E : ('E'|'e') ; +fragment F : ('F'|'f') ; +fragment G : ('G'|'g') ; +fragment H : ('H'|'h') ; +fragment I : ('I'|'i') ; +fragment J : ('J'|'j') ; +fragment K : ('K'|'k') ; +fragment L : ('L'|'l') ; +fragment M : ('M'|'m') ; +fragment N : ('N'|'n') ; +fragment O : ('O'|'o') ; +fragment P : ('P'|'p') ; +fragment Q : ('Q'|'q') ; +fragment R : ('R'|'r') ; +fragment S : ('S'|'s') ; +fragment T : ('T'|'t') ; +fragment U : ('U'|'u') ; +fragment V : ('V'|'v') ; +fragment W : ('W'|'w') ; +fragment X : ('X'|'x') ; +fragment Y : ('Y'|'y') ; +fragment Z : ('Z'|'z') ; + +fragment HEX_DIGIT : [0-9A-F]; +fragment DEC_DIGIT : [0-9]; +fragment DQUOTA_STRING : '"' ( '\\'. | '""' | ~('"' | '\\') )* '"'; +fragment SQUOTA_STRING : '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\''; +fragment BQUOTA_STRING : '`' ( '\\'. | '``' | ~('`' | '\\'))* '`'; + +// Keywords +A_ : A; +ABORT : A B O R T; +ABS : A B S; +ABSOLUTE : A B S O L U T E; +ACCESS : A C C E S S; +ACTION : A C T I O N; +ADA : A D A; +ADD : A D D; +ADMIN : A D M I N; +AFTER : A F T E R; +AGGREGATE : A G G R E G A T E; +ALIAS : A L I A S; +ALL : A L L; +ALLOCATE : A L L O C A T E; +ALSO : A L S O; +ALTER : A L T E R; +ALWAYS : A L W A Y S; +ANALYSE : A N A L Y S E; +ANALYZE : A N A L Y Z E; +AND : A N D; +ANY : A N Y; +ARE : A R E; +ARRAY : A R R A Y; +AS : A S; +ASC : A S C; +ASENSITIVE : A S E N S I T I V E; +ASSERTION : A S S E R T I O N; +ASSIGNMENT : A S S I G N M E N T; +ASYMMETRIC : A S Y M M E T R I C; +AT : A T; +ATOMIC : A T O M I C; +ATTRIBUTE : A T T R I B U T E; +ATTRIBUTES : A T T R I B U T E S; +AUTHORIZATION : A U T H O R I Z A T I O N; +AVG : A V G; +BACKWARD : B A C K W A R D; +BEFORE : B E F O R E; +BEGIN : B E G I N; +BERNOULLI : B E R N O U L L I; +BETWEEN : B E T W E E N; +BIGINT : B I G I N T; +BINARY : B I N A R Y; +BIT : B I T; +BIT_LENGTH : B I T '_' L E N G T H; +BITVAR : B I T V A R; +BLOB : B L O B; +BOOLEAN : B O O L E A N; +BOTH : B O T H; +BREADTH : B R E A D T H; +BUFFERS : B U F F E R S; +BY : B Y; +C_ : C; +CACHE : C A C H E; +CALL : C A L L; +CALLED : C A L L E D; +CARDINALITY : C A R D I N A L I T Y; +CASCADE : C A S C A D E; +CASCADED : C A S C A D E D; +CASE : C A S E; +CAST : C A S T; +CATALOG : C A T A L O G; +CATALOG_NAME : C A T A L O G '_' N A M E; +CEIL : C E I L; +CEILING : C E I L I N G; +CHAIN : C H A I N; +CHAR : C H A R; +CHAR_LENGTH : C H A R '_' L E N G T H; +CHARACTER : C H A R A C T E R; +CHARACTER_LENGTH : C H A R A C T E R '_' L E N G T H; +CHARACTER_SET_CATALOG : C H A R A C T E R '_' S E T '_' C A T A L O G; +CHARACTER_SET_NAME : C H A R A C T E R '_' S E T '_' N A M E; +CHARACTER_SET_SCHEMA : C H A R A C T E R '_' S E T '_' S C H E M A; +CHARACTERISTICS : C H A R A C T E R I S T I C S; +CHARACTERS : C H A R A C T E R S; +CHECK : C H E C K; +CHECKED : C H E C K E D; +CHECKPOINT : C H E C K P O I N T; +CLASS : C L A S S; +CLASS_ORIGIN : C L A S S '_' O R I G I N; +CLOB : C L O B; +CLOSE : C L O S E; +CLUSTER : C L U S T E R; +COALESCE : C O A L E S C E; +COBOL : C O B O L; +COLLATE : C O L L A T E; +COLLATION : C O L L A T I O N; +COLLATION_CATALOG : C O L L A T I O N '_' C A T A L O G; +COLLATION_NAME : C O L L A T I O N '_' N A M E; +COLLATION_SCHEMA : C O L L A T I O N '_' S C H E M A; +COLLECT : C O L L E C T; +COLUMN : C O L U M N; +COLUMN_NAME : C O L U M N '_' N A M E; +COMMAND_FUNCTION : C O M M A N D '_' F U N C T I O N; +COMMAND_FUNCTION_CODE : C O M M A N D '_' F U N C T I O N '_' C O D E; +COMMENT : C O M M E N T; +COMMIT : C O M M I T; +COMMITTED : C O M M I T T E D; +COMPLETION : C O M P L E T I O N; +CONDITION : C O N D I T I O N; +CONDITION_NUMBER : C O N D I T I O N '_' N U M B E R; +CONFIGURATION : C O N F I G U R A T I O N; +CONFLICT : C O N F L I C T; +CONNECT : C O N N E C T; +CONNECTION : C O N N E C T I O N; +CONNECTION_NAME : C O N N E C T I O N '_' N A M E; +CONSTRAINT : C O N S T R A I N T; +CONSTRAINT_CATALOG : C O N S T R A I N T '_' C A T A L O G; +CONSTRAINT_NAME : C O N S T R A I N T '_' N A M E; +CONSTRAINT_SCHEMA : C O N S T R A I N T '_' S C H E M A; +CONSTRAINTS : C O N S T R A I N T S; +CONSTRUCTOR : C O N S T R U C T O R; +CONTAINS : C O N T A I N S; +CONTINUE : C O N T I N U E; +CONVERSION : C O N V E R S I O N; +CONVERT : C O N V E R T; +COPY : C O P Y; +CORR : C O R R; +CORRESPONDING : C O R R E S P O N D I N G; +COSTS : C O S T S; +COUNT : C O U N T; +COVAR_POP : C O V A R '_' P O P; +COVAR_SAMP : C O V A R '_' S A M P; +CREATE : C R E A T E; +CREATEDB : C R E A T E D B; +CREATEUSER : C R E A T E U S E R; +CROSS : C R O S S; +CSV : C S V; +CUBE : C U B E; +CUME_DIST : C U M E '_' D I S T; +CURRENT : C U R R E N T; +CURRENT_DATE : C U R R E N T '_' D A T E; +CURRENT_DEFAULT_TRANSFORM_GROUP : C U R R E N T '_' D E F A U L T '_' T R A N S F O R M '_' G R O U P; +CURRENT_PATH : C U R R E N T '_' P A T H; +CURRENT_ROLE : C U R R E N T '_' R O L E; +CURRENT_TIME : C U R R E N T '_' T I M E; +CURRENT_TIMESTAMP : C U R R E N T '_' T I M E S T A M P; +CURRENT_TRANSFORM_GROUP_FOR_TYPE : C U R R E N T '_' T R A N S F O R M '_' G R O U P '_' F O R '_' T Y P E; +CURRENT_USER : C U R R E N T '_' U S E R; +CURSOR : C U R S O R; +CURSOR_NAME : C U R S O R '_' N A M E; +CYCLE : C Y C L E; +DATA : D A T A; +DATABASE : D A T A B A S E; +DATE : D A T E; +DATETIME_INTERVAL_CODE : D A T E T I M E '_' I N T E R V A L '_' C O D E; +DATETIME_INTERVAL_PRECISION : D A T E T I M E '_' I N T E R V A L '_' P R E C I S I O N; +DAY : D A Y; +DEALLOCATE : D E A L L O C A T E; +DEC : D E C; +DECIMAL : D E C I M A L; +DECLARE : D E C L A R E; +DEFAULT : D E F A U L T; +DEFAULTS : D E F A U L T S; +DEFERABLE : D E F E R A B L E; +DEFERRABLE : D E F E R R A B L E; +DEFERRED : D E F E R R E D; +DEFINED : D E F I N E D; +DEFINER : D E F I N E R; +DEGREE : D E G R E E; +DELETE : D E L E T E; +DELIMITER : D E L I M I T E R; +DELIMITERS : D E L I M I T E R S; +DENSE_RANK : D E N S E '_' R A N K; +DEPENDS : D E P E N D S; +DEPTH : D E P T H; +DEREF : D E R E F; +DERIVED : D E R I V E D; +DESC : D E S C; +DESCRIBE : D E S C R I B E; +DESCRIPTOR : D E S C R I P T O R; +DESTROY : D E S T R O Y; +DESTRUCTOR : D E S T R U C T O R; +DETERMINISTIC : D E T E R M I N I S T I C; +DIAGNOSTICS : D I A G N O S T I C S; +DICTIONARY : D I C T I O N A R Y; +DISABLE : D I S A B L E; +DISABLE_PAGE_SKIPPING : D I S A B L E '_' P A G E '_' S K I P P I N G; +DISCARD : D I S C A R D; +DISCONNECT : D I S C O N N E C T; +DISPATCH : D I S P A T C H; +DISTINCT : D I S T I N C T; +DO : D O; +DOMAIN : D O M A I N; +DOUBLE : D O U B L E; +DROP : D R O P; +DYNAMIC : D Y N A M I C; +DYNAMIC_FUNCTION : D Y N A M I C '_' F U N C T I O N; +DYNAMIC_FUNCTION_CODE : D Y N A M I C '_' F U N C T I O N '_' C O D E; +EACH : E A C H; +ELEMENT : E L E M E N T; +ELSE : E L S E; +ENABLE : E N A B L E; +ENCODING : E N C O D I N G; +ENCRYPTED : E N C R Y P T E D; +END : E N D; +END_EXEC : E N D '-' E X E C; +EQUALS : E Q U A L S; +ESCAPE : E S C A P E; +EVERY : E V E R Y; +EXCEPT : E X C E P T; +EXCEPTION : E X C E P T I O N; +EXCLUDE : E X C L U D E; +EXCLUDING : E X C L U D I N G; +EXCLUSIVE : E X C L U S I V E; +EXEC : E X E C; +EXECUTE : E X E C U T E; +EXISTING : E X I S T I N G; +EXISTS : E X I S T S; +EXP : E X P; +EXPLAIN : E X P L A I N; +EXTENDED : E X T E N D E D; +EXTENSION : E X T E N S I O N; +EXTERNAL : E X T E R N A L; +EXTRACT : E X T R A C T; +FALSE : F A L S E; +FETCH : F E T C H; +FIELDS : F I E L D S; +FILTER : F I L T E R; +FINAL : F I N A L; +FIRST : F I R S T; +FLOAT : F L O A T; +FLOOR : F L O O R; +FOLLOWING : F O L L O W I N G; +FOR : F O R; +FORCE : F O R C E; +FOREIGN : F O R E I G N; +FORMAT : F O R M A T; +FORTRAN : F O R T R A N; +FORWARD : F O R W A R D; +FOUND : F O U N D; +FREE : F R E E; +FREEZE : F R E E Z E; +FROM : F R O M; +FULL : F U L L; +FUNCTION : F U N C T I O N; +FUSION : F U S I O N; +G_ : G; +GENERAL : G E N E R A L; +GENERATED : G E N E R A T E D; +GET : G E T; +GLOBAL : G L O B A L; +GO : G O; +GOTO : G O T O; +GRANT : G R A N T; +GRANTED : G R A N T E D; +GREATEST : G R E A T E S T; +GROUP : G R O U P; +GROUPING : G R O U P I N G; +HANDLER : H A N D L E R; +HAVING : H A V I N G; +HIERARCHY : H I E R A R C H Y; +HOLD : H O L D; +HOST : H O S T; +HOUR : H O U R; +IDENTITY : I D E N T I T Y; +IGNORE : I G N O R E; +ILIKE : I L I K E; +IMMEDIATE : I M M E D I A T E; +IMMUTABLE : I M M U T A B L E; +IMPLEMENTATION : I M P L E M E N T A T I O N; +IMPLICIT : I M P L I C I T; +IN : I N; +INCLUDING : I N C L U D I N G; +INCREMENT : I N C R E M E N T; +INDEX : I N D E X; +INDICATOR : I N D I C A T O R; +INFIX : I N F I X; +INHERITS : I N H E R I T S; +INITIALIZE : I N I T I A L I Z E; +INITIALLY : I N I T I A L L Y; +INNER : I N N E R; +INOUT : I N O U T; +INPUT : I N P U T; +INSENSITIVE : I N S E N S I T I V E; +INSERT : I N S E R T; +INSTANCE : I N S T A N C E; +INSTANTIABLE : I N S T A N T I A B L E; +INSTEAD : I N S T E A D; +INT : I N T; +INTEGER : I N T E G E R; +INTERSECT : I N T E R S E C T; +INTERSECTION : I N T E R S E C T I O N; +INTERVAL : I N T E R V A L; +INTO : I N T O; +INVOKER : I N V O K E R; +IS : I S; +ISOLATION : I S O L A T I O N; +ITERATE : I T E R A T E; +JOIN : J O I N; +K_ : K; +KEY : K E Y; +KEY_MEMBER : K E Y '_' M E M B E R; +KEY_TYPE : K E Y '_' T Y P E; +LABEL : L A B E L; +LANCOMPILER : L A N C O M P I L E R; +LANGUAGE : L A N G U A G E; +LARGE : L A R G E; +LAST : L A S T; +LATERAL : L A T E R A L; +LEADING : L E A D I N G; +LEAST : L E A S T; +LEFT : L E F T; +LENGTH : L E N G T H; +LESS : L E S S; +LEVEL : L E V E L; +LIKE : L I K E; +LIMIT : L I M I T; +LISTEN : L I S T E N; +LN : L N; +LOAD : L O A D; +LOCAL : L O C A L; +LOCALTIME : L O C A L T I M E; +LOCALTIMESTAMP : L O C A L T I M E S T A M P; +LOCATION : L O C A T I O N; +LOCATOR : L O C A T O R; +LOCK : L O C K; +LOCKED : L O C K E D; // TODO: added manually, fix in docs +LOWER : L O W E R; +M_ : M; +MAIN : M A I N; +MAP : M A P; +MAPPING : M A P P I N G; +MATCH : M A T C H; +MATCH_SIMPLE : M A T C H '_' S I M P L E; +MATCHED : M A T C H E D; +MAX : M A X; +MAXVALUE : M A X V A L U E; +MEMBER : M E M B E R; +MERGE : M E R G E; +MESSAGE_LENGTH : M E S S A G E '_' L E N G T H; +MESSAGE_OCTET_LENGTH : M E S S A G E '_' O C T E T '_' L E N G T H; +MESSAGE_TEXT : M E S S A G E '_' T E X T; +METHOD : M E T H O D; +MIN : M I N; +MINUTE : M I N U T E; +MINVALUE : M I N V A L U E; +MOD : M O D; +MODE : M O D E; +MODIFIES : M O D I F I E S; +MODIFY : M O D I F Y; +MODULE : M O D U L E; +MONTH : M O N T H; +MORE_ : M O R E; +MOVE : M O V E; +MULTISET : M U L T I S E T; +MUMPS : M U M P S; +NAME : N A M E; +NAMES : N A M E S; +NATIONAL : N A T I O N A L; +NATURAL : N A T U R A L; +NCHAR : N C H A R; +NCLOB : N C L O B; +NESTING : N E S T I N G; +NEW : N E W; +NEXT : N E X T; +NO : N O; +NOCREATEDB : N O C R E A T E D B; +NOCREATEUSER : N O C R E A T E U S E R; +NONE : N O N E; +NORMALIZE : N O R M A L I Z E; +NORMALIZED : N O R M A L I Z E D; +NOT : N O T; +NOTHING : N O T H I N G; +NOTIFY : N O T I F Y; +NOTNULL : N O T N U L L; +NOWAIT : N O W A I T; +NULL : N U L L; +NULLABLE : N U L L A B L E; +NULLIF : N U L L I F; +NULLS : N U L L S; +NUMBER : N U M B E R; +NUMERIC : N U M E R I C; +OBJECT : O B J E C T; +OCTET_LENGTH : O C T E T '_' L E N G T H; +OCTETS : O C T E T S; +OF : O F; +OFF : O F F; +OFFSET : O F F S E T; +OIDS : O I D S; +OLD : O L D; +ON : O N; +ONLY : O N L Y; +OPEN : O P E N; +OPERATION : O P E R A T I O N; +OPERATOR : O P E R A T O R; +OPTION : O P T I O N; +OPTIONS : O P T I O N S; +OR : O R; +ORDER : O R D E R; +ORDERING : O R D E R I N G; +ORDINALITY : O R D I N A L I T Y; +OTHERS : O T H E R S; +OUT : O U T; +OUTER : O U T E R; +OUTPUT : O U T P U T; +OVER : O V E R; +OVERLAPS : O V E R L A P S; +OVERLAY : O V E R L A Y; +OVERRIDING : O V E R R I D I N G; +OWNER : O W N E R; +PAD : P A D; +PARAMETER : P A R A M E T E R; +PARAMETER_MODE : P A R A M E T E R '_' M O D E; +PARAMETER_NAME : P A R A M E T E R '_' N A M E; +PARAMETER_ORDINAL_POSITION : P A R A M E T E R '_' O R D I N A L '_' P O S I T I O N; +PARAMETER_SPECIFIC_CATALOG : P A R A M E T E R '_' S P E C I F I C '_' C A T A L O G; +PARAMETER_SPECIFIC_NAME : P A R A M E T E R '_' S P E C I F I C '_' N A M E; +PARAMETER_SPECIFIC_SCHEMA : P A R A M E T E R '_' S P E C I F I C '_' S C H E M A; +PARAMETERS : P A R A M E T E R S; +PARSER : P A R S E R; +PARTIAL : P A R T I A L; +PARTITION : P A R T I T I O N; +PASCAL : P A S C A L; +PASSWORD : P A S S W O R D; +PATH : P A T H; +PERCENT_RANK : P E R C E N T '_' R A N K; +PERCENTILE_CONT : P E R C E N T I L E '_' C O N T; +PERCENTILE_DISC : P E R C E N T I L E '_' D I S C; +PLACING : P L A C I N G; +PLAIN : P L A I N; +PLANS : P L A N S; +PLI : P L I; +POSITION : P O S I T I O N; +POSTFIX : P O S T F I X; +POWER : P O W E R; +PRECEDING : P R E C E D I N G; +PRECISION : P R E C I S I O N; +PREFIX : P R E F I X; +PREORDER : P R E O R D E R; +PREPARE : P R E P A R E; +PREPARED : P R E P A R E D; +PRESERVE : P R E S E R V E; +PRIMARY : P R I M A R Y; +PRIOR : P R I O R; +PRIVILEGES : P R I V I L E G E S; +PROCEDURAL : P R O C E D U R A L; +PROCEDURE : P R O C E D U R E; +PUBLIC : P U B L I C; +PUBLICATION : P U B L I C A T I O N; +QUOTE : Q U O T E; +RANGE : R A N G E; +RANK : R A N K; +READ : R E A D; +READS : R E A D S; +REAL : R E A L; +REASSIGN : R E A S S I G N; +RECHECK : R E C H E C K; +RECURSIVE : R E C U R S I V E; +REF : R E F; +REFERENCES : R E F E R E N C E S; +REFERENCING : R E F E R E N C I N G; +REFRESH : R E F R E S H; +REGR_AVGX : R E G R '_' A V G X; +REGR_AVGY : R E G R '_' A V G Y; +REGR_COUNT : R E G R '_' C O U N T; +REGR_INTERCEPT : R E G R '_' I N T E R C E P T; +REGR_R2 : R E G R '_' R '2'; +REGR_SLOPE : R E G R '_' S L O P E; +REGR_SXX : R E G R '_' S X X; +REGR_SXY : R E G R '_' S X Y; +REGR_SYY : R E G R '_' S Y Y; +REINDEX : R E I N D E X; +RELATIVE : R E L A T I V E; +RELEASE : R E L E A S E; +RENAME : R E N A M E; +REPEATABLE : R E P E A T A B L E; +REPLACE : R E P L A C E; +REPLICA : R E P L I C A; +RESET : R E S E T; +RESTART : R E S T A R T; +RESTRICT : R E S T R I C T; +RESULT : R E S U L T; +RETURN : R E T U R N; +RETURNED_CARDINALITY : R E T U R N E D '_' C A R D I N A L I T Y; +RETURNED_LENGTH : R E T U R N E D '_' L E N G T H; +RETURNED_OCTET_LENGTH : R E T U R N E D '_' O C T E T '_' L E N G T H; +RETURNED_SQLSTATE : R E T U R N E D '_' S Q L S T A T E; +RETURNING : R E T U R N I N G; +RETURNS : R E T U R N S; +REVOKE : R E V O K E; +RIGHT : R I G H T; +ROLE : R O L E; +ROLLBACK : R O L L B A C K; +ROLLUP : R O L L U P; +ROUTINE : R O U T I N E; +ROUTINE_CATALOG : R O U T I N E '_' C A T A L O G; +ROUTINE_NAME : R O U T I N E '_' N A M E; +ROUTINE_SCHEMA : R O U T I N E '_' S C H E M A; +ROW : R O W; +ROW_COUNT : R O W '_' C O U N T; +ROW_NUMBER : R O W '_' N U M B E R; +ROWS : R O W S; +RULE : R U L E; +SAVEPOINT : S A V E P O I N T; +SCALE : S C A L E; +SCHEMA : S C H E M A; +SCHEMA_NAME : S C H E M A '_' N A M E; +SCOPE : S C O P E; +SCOPE_CATALOG : S C O P E '_' C A T A L O G; +SCOPE_NAME : S C O P E '_' N A M E; +SCOPE_SCHEMA : S C O P E '_' S C H E M A; +SCROLL : S C R O L L; +SEARCH : S E A R C H; +SECOND : S E C O N D; +SECTION : S E C T I O N; +SECURITY : S E C U R I T Y; +SELECT : S E L E C T; +SELF : S E L F; +SENSITIVE : S E N S I T I V E; +SEQUENCE : S E Q U E N C E; +SEQUENCES : S E Q U E N C E S; +SERIALIZABLE : S E R I A L I Z A B L E; +SERVER_NAME : S E R V E R '_' N A M E; +SESSION : S E S S I O N; +SESSION_USER : S E S S I O N '_' U S E R; +SET : S E T; +SETOF : S E T O F; +SETS : S E T S; +SHARE : S H A R E; +SHOW : S H O W; +SIMILAR : S I M I L A R; +SIMPLE : S I M P L E; +SIZE : S I Z E; +SKIP_ : S K I P; // TODO: added manually, fix in docs +SMALLINT : S M A L L I N T; +SNAPSHOT : S N A P S H O T; +SOME : S O M E; +SOURCE : S O U R C E; +SPACE : S P A C E; +SPECIFIC : S P E C I F I C; +SPECIFIC_NAME : S P E C I F I C '_' N A M E; +SPECIFICTYPE : S P E C I F I C T Y P E; +SQL : S Q L; +SQLCODE : S Q L C O D E; +SQLERROR : S Q L E R R O R; +SQLEXCEPTION : S Q L E X C E P T I O N; +SQLSTATE : S Q L S T A T E; +SQLWARNING : S Q L W A R N I N G; +SQRT : S Q R T; +STABLE : S T A B L E; +START : S T A R T; +STATE : S T A T E; +STATEMENT : S T A T E M E N T; +STATIC : S T A T I C; +STATISTICS : S T A T I S T I C S; +STDDEV_POP : S T D D E V '_' P O P; +STDDEV_SAMP : S T D D E V '_' S A M P; +STDIN : S T D I N; +STDOUT : S T D O U T; +STORAGE : S T O R A G E; +STRICT : S T R I C T; +STRUCTURE : S T R U C T U R E; +STYLE : S T Y L E; +SUBCLASS_ORIGIN : S U B C L A S S '_' O R I G I N; +SUBLIST : S U B L I S T; +SUBMULTISET : S U B M U L T I S E T; +SUBSCRIPTION : S U B S C R I P T I O N; +SUBSTRING : S U B S T R I N G; +SUM : S U M; +SYMMETRIC : S Y M M E T R I C; +SYSID : S Y S I D; +SYSTEM : S Y S T E M; +SYSTEM_USER : S Y S T E M '_' U S E R; +TABLE : T A B L E; +TABLE_NAME : T A B L E '_' N A M E; +TABLESAMPLE : T A B L E S A M P L E; +TABLESPACE : T A B L E S P A C E; +TEMP : T E M P; +TEMPLATE : T E M P L A T E; +TEMPORARY : T E M P O R A R Y; +TERMINATE : T E R M I N A T E; +THAN : T H A N; +THEN : T H E N; +TIES : T I E S; +TIME : T I M E; +TIMESTAMP : T I M E S T A M P; +TIMEZONE_HOUR : T I M E Z O N E '_' H O U R; +TIMEZONE_MINUTE : T I M E Z O N E '_' M I N U T E; +TIMING : T I M I N G; +TO : T O; +TOAST : T O A S T; +TOP_LEVEL_COUNT : T O P '_' L E V E L '_' C O U N T; +TRAILING : T R A I L I N G; +TRANSACTION : T R A N S A C T I O N; +TRANSACTION_ACTIVE : T R A N S A C T I O N '_' A C T I V E; +TRANSACTIONS_COMMITTED : T R A N S A C T I O N S '_' C O M M I T T E D; +TRANSACTIONS_ROLLED_BACK : T R A N S A C T I O N S '_' R O L L E D '_' B A C K; +TRANSFORM : T R A N S F O R M; +TRANSFORMS : T R A N S F O R M S; +TRANSLATE : T R A N S L A T E; +TRANSLATION : T R A N S L A T I O N; +TREAT : T R E A T; +TRIGGER : T R I G G E R; +TRIGGER_CATALOG : T R I G G E R '_' C A T A L O G; +TRIGGER_NAME : T R I G G E R '_' N A M E; +TRIGGER_SCHEMA : T R I G G E R '_' S C H E M A; +TRIM : T R I M; +TRUE : T R U E; +TRUNCATE : T R U N C A T E; +TRUSTED : T R U S T E D; +TYPE : T Y P E; +UESCAPE : U E S C A P E; +UNBOUNDED : U N B O U N D E D; +UNCOMMITTED : U N C O M M I T T E D; +UNDER : U N D E R; +UNENCRYPTED : U N E N C R Y P T E D; +UNION : U N I O N; +UNIQUE : U N I Q U E; +UNKNOWN : U N K N O W N; +UNLISTEN : U N L I S T E N; +UNNAMED : U N N A M E D; +UNNEST : U N N E S T; +UNTIL : U N T I L; +UPDATE : U P D A T E; +UPPER : U P P E R; +USAGE : U S A G E; +USER : U S E R; +USER_DEFINED_TYPE_CATALOG : U S E R '_' D E F I N E D '_' T Y P E '_' C A T A L O G; +USER_DEFINED_TYPE_CODE : U S E R '_' D E F I N E D '_' T Y P E '_' C O D E; +USER_DEFINED_TYPE_NAME : U S E R '_' D E F I N E D '_' T Y P E '_' N A M E; +USER_DEFINED_TYPE_SCHEMA : U S E R '_' D E F I N E D '_' T Y P E '_' S C H E M A; +USING : U S I N G; +VACUUM : V A C U U M; +VALID : V A L I D; +VALIDATE : V A L I D A T E; +VALIDATOR : V A L I D A T O R; +VALUE : V A L U E; +VALUES : V A L U E S; +VAR_POP : V A R '_' P O P; +VAR_SAMP : V A R '_' S A M P; +VARCHAR : V A R C H A R; +VARIABLE : V A R I A B L E; +VARIADIC : V A R I A D I C; // TODO: added manually, fix in docs +VARYING : V A R Y I N G; +VERBOSE : V E R B O S E; +VIEW : V I E W; +VOLATILE : V O L A T I L E; +WHEN : W H E N; +WHENEVER : W H E N E V E R; +WHERE : W H E R E; +WIDTH_BUCKET : W I D T H '_' B U C K E T; +WINDOW : W I N D O W; +WITH : W I T H; +WITHIN : W I T H I N; +WITHOUT : W I T H O U T; +WORK : W O R K; +WRITE : W R I T E; +YAML : Y A M L; +YEAR : Y E A R; +YES : Y E S; +ZONE : Z O N E; + +// role options +SUPERUSER : S U P E R U S E R; +NOSUPERUSER : N O S U P E R U S E R; +CREATEROLE : C R E A T E R O L E; +NOCREATEROLE : N O C R E A T E R O L E; +INHERIT : I N H E R I T; +NOINHERIT : N O I N H E R I T; +LOGIN : L O G I N; +NOLOGIN : N O L O G I N; +REPLICATION : R E P L I C A T I O N; +NOREPLICATION : N O R E P L I C A T I O N; +BYPASSRLS : B Y P A S S R L S; +NOBYPASSRLS : N O B Y P A S S R L S; + +// create aggregate options +SFUNC : S F U N C; +STYPE : S T Y P E; +SSPACE : S S P A C E; +FINALFUNC : F I N A L F U N C; +FINALFUNC_EXTRA : F I N A L F U N C '_' E X T R A; +COMBINEFUNC : C O M B I N E F U N C; +SERIALFUNC : S E R I A L F U N C; +DESERIALFUNC : D E S E R I A L F U N C; +INITCOND : I N I T C O N D; +MSFUNC : M S F U N C; +MINVFUNC : M I N V F U N C; +MSTYPE : M S T Y P E; +MSSPACE : M S S P A C E; +MFINALFUNC : M F I N A L F U N C; +MFINALFUNC_EXTRA : M F I N A L F U N C '_' E X T R A; +MINITCOND : M I N I T C O N D; +SORTOP : S O R T O P; +PARALLEL : P A R A L L E L; +HYPOTHETICAL : H Y P O T H E T I C A L; +SAFE : S A F E; +RESTRICTED : R E S T R I C T E D; +UNSAFE : U N S A F E; +BASETYPE : B A S E T Y P E; + +// create collation +IF : I F; + +// create collation options +LOCALE : L O C A L E; +LC_COLLATE : L C '_' C O L L A T E; +LC_CTYPE : L C '_' C T Y P E; +PROVIDER : P R O V I D E R; +VERSION : V E R S I O N; + +// create database fields +ALLOW_CONNECTIONS : A L L O W '_' C O N N E C T I O N S ; +IS_TEMPLATE : I S '_' T E M P L A T E ; + +// create event +EVENT : E V E N T; + +// create foreign data wrapper +WRAPPER : W R A P P E R; + +// create foreign table +SERVER : S E R V E R; + +// create index +BTREE : B T R E E; +HASH_ : H A S H; +GIST : G I S T; +SPGIST : S P G I S T; +GIN : G I N; +BRIN : B R I N; +CONCURRENTLY : C O N C U R R E N T L Y; + +// create language +INLINE : I N L I N E; + +// create materialized view +MATERIALIZED : M A T E R I A L I Z E D; + +// create operator +LEFTARG : L E F T A R G; +RIGHTARG : R I G H T A R G; +COMMUTATOR : C O M M U T A T O R; +NEGATOR : N E G A T O R; +HASHES : H A S H E S; +MERGES : M E R G E S; + +// create operator family +FAMILY : F A M I L Y; + +// create policy +POLICY : P O L I C Y; + +// create sequence +OWNED : O W N E D; + +// builtin types that are not reserved keywords that are used in prefix type casts (i.e. {type} {expr}) +ABSTIME : A B S T I M E; +BIGSERIAL : B I G S E R I A L; +BIT_VARYING : B I T ' ' V A R Y I N G; +BOOL : B O O L; +BOX : B O X; +BYTEA : B Y T E A; +CHARACTER_VARYING : C H A R A C T E R ' ' V A R Y I N G; +CIDR : C I D R; +CIRCLE : C I R C L E; +FLOAT4 : F L O A T '4'; +FLOAT8 : F L O A T '8'; +INET : I N E T; +INT2 : I N T '2'; +INT4 : I N T '4'; +INT8 : I N T '8'; +JSON : J S O N; +JSONB : J S O N B; +LINE : L I N E; +LSEG : L S E G; +MACADDR : M A C A D D R; +MACADDR8 : M A C A D D R '8'; +MONEY : M O N E Y; +PG_LSN : P G '_' L S N; +POINT : P O I N T; +POLYGON : P O L Y G O N; +RELTIME : R E L T I M E; +SERIAL : S E R I A L; +SERIAL2 : S E R I A L '2'; +SERIAL4 : S E R I A L '4'; +SERIAL8 : S E R I A L '8'; +SMALLSERIAL : S M A L L S E R I A L; +STSTEM : S T S T E M; +TEXT : T E X T; +TIMESTAMPTZ : T I M E S T A M P T Z; +TIMETZ : T I M E T Z; +TSQUERY : T S Q U E R Y; +TSVECTOR : T S V E C T O R; +TXID_SNAPSHOT : T X I D '_' S N A P S H O T; +UUID : U U I D; +VARBIT : V A R B I T; +XML : X M L; + +// language tokens +COMMA : ','; +COLON : ':'; +COLON_COLON : '::'; +DOLLAR : '$'; +DOLLAR_DOLLAR : '$$'; +STAR : '*'; +OPEN_PAREN : '('; +CLOSE_PAREN : ')'; +OPEN_BRACKET : '['; +CLOSE_BRACKET : ']'; +BIT_STRING : B '\'' ('0'|'1')* '\''; +REGEX_STRING : E SQUOTA_STRING; +NUMERIC_LITERAL : '-'? DEC_DIGIT+ '.' DEC_DIGIT+ (E ('-')* DEC_DIGIT+)?; +INTEGER_LITERAL : '-'? DEC_DIGIT+ (E DEC_DIGIT+)?; +HEX_INTEGER_LITERAL : 'x' SQUOTA_STRING; +DOT : '.'; +SINGLEQ_STRING_LITERAL : SQUOTA_STRING; +DOUBLEQ_STRING_LITERAL : DQUOTA_STRING; +IDENTIFIER : [a-zA-Z_][a-zA-Z_0-9$]*; +DOLLAR_DEC : '$' DEC_DIGIT+; +IDENTIFIER_UNICODE : [a-zA-Z_\u00A1-\uFFFF][a-zA-Z_\u00A1-\uFFFF0-9$]*; + +// operator tokens +AMP : '&'; +AMP_AMP : '&&'; +AMP_LT : '&<'; +AT_AT : '@@'; +AT_GT : '@>'; +AT_SIGN : '@'; +BANG : '!'; +BANG_BANG : '!!'; +BANG_EQUAL : '!='; +CARET : '^'; +EQUAL : '='; +EQUAL_GT : '=>'; +GT : '>'; +GTE : '>='; +GT_GT : '>>'; +HASH : '#'; +HASH_EQ : '#='; +HASH_GT : '#>'; +HASH_GT_GT : '#>>'; +HASH_HASH : '##'; +HYPHEN_GT : '->'; +HYPHEN_GT_GT : '->>'; +HYPHEN_PIPE_HYPHEN : '-|-'; +LT : '<'; +LTE : '<='; +LT_AT : '<@'; +LT_CARET : '<^'; +LT_GT : '<>'; +LT_HYPHEN_GT : '<->'; +LT_LT : '<<'; +LT_LT_EQ : '<<='; +LT_QMARK_GT : ''; +MINUS : '-'; +PERCENT : '%'; +PIPE : '|'; +PIPE_PIPE : '||'; +PIPE_PIPE_SLASH : '||/'; +PIPE_SLASH : '|/'; +PLUS : '+'; +QMARK : '?'; +QMARK_AMP : '?&'; +QMARK_HASH : '?#'; +QMARK_HYPHEN : '?-'; +QMARK_PIPE : '?|'; +SLASH : '/'; +TIL : '~'; +TIL_EQ : '~='; +TIL_GTE_TIL : '~>=~'; +TIL_GT_TIL : '~>~'; +TIL_LTE_TIL : '~<=~'; +TIL_LT_TIL : '~<~'; +TIL_STAR : '~*'; +TIL_TIL : '~~'; +SEMI: ';'; diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 new file mode 100644 index 0000000..0e8258c --- /dev/null +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 @@ -0,0 +1,1899 @@ +// The MIT License + +// Copyright 2018 Tal Shprecher + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +parser grammar PostgreSQLParser; + +options { tokenVocab=PostgreSQLLexer; } + + +root + : stmt ((SEMI stmt)+ SEMI)? EOF + ; + +// Top Level Description +// TODO: consolidate rollback* into a rollback_stmt a la alter/create/drop +stmt + : (abort_stmt + | alter_stmt + | analyze_stmt + | create_stmt + | close_stmt + | cluster_stmt + | comment_stmt + | commit_stmt + | commit_prepared_stmt + | copy_stmt + | deallocate_stmt + | declare_stmt + | delete_stmt + | discard_stmt + | drop_stmt + | execute_stmt + | explain_stmt + | fetch_stmt + | grant_stmt + | import_foreign_schema_stmt + | insert_stmt + | listen_stmt + | load_stmt + | lock_stmt + | move_stmt + | notify_stmt + | prepare_stmt + | prepare_transaction_stmt + | reassign_owned_stmt + | refresh_materialized_view_stmt + | reindex_stmt + | release_savepoint_stmt + | reset_stmt + | revoke_stmt + | rollback_stmt + | rollback_prepared_stmt + | rollback_to_savepoint_stmt + | savepoint_stmt + | security_label_stmt + | select_stmt + | select_into_stmt + | set_stmt + | set_constraints_stmt + | set_role_stmt + | set_session_authorization_stmt + | set_transaction_stmt + | show_stmt + | truncate_stmt + | unlisten_stmt + | update_stmt + | vacuum_stmt + | values_stmt) + ; + +abort_stmt + : identifier + ; + +alter_stmt + : alter_aggregate_stmt + | alter_collation_stmt + | alter_conversion_stmt + | alter_database_stmt + | alter_default_privileges_stmt + | alter_domain_stmt + | alter_event_trigger_stmt + | alter_extension_stmt + | alter_foreign_data_wrapper_stmt + | alter_foreign_table_stmt + | alter_function_stmt + | alter_group_stmt + | alter_index_stmt + | alter_language_stmt + | alter_large_object_stmt + | alter_materialize_view_stmt + | alter_operator_stmt + | alter_operator_class_stmt + | alter_operator_family_stmt + | alter_policy_stmt + | alter_publication_stmt + | alter_role_stmt + | alter_rule_stmt + | alter_schema_stmt + | alter_sequence_stmt + | alter_server_stmt + | alter_statistics_stmt + | alter_subscription_stmt + | alter_system_stmt + | alter_table_stmt + | alter_tablespace_stmt + | alter_text_search_config_stmt + | alter_text_search_dict_stmt + | alter_text_search_parser_stmt + | alter_text_search_template_stmt + | alter_trigger_stmt + | alter_type_stmt + | alter_user_stmt + | alter_user_mapping_stmt + | alter_view_stmt + ; + +alter_aggregate_stmt + : ALTER AGGREGATE name=identifier OPEN_PAREN aggregate_signature CLOSE_PAREN RENAME TO new_name=identifier + | ALTER AGGREGATE name=identifier OPEN_PAREN aggregate_signature CLOSE_PAREN OWNER TO new_owner=role_name + | ALTER AGGREGATE name=identifier OPEN_PAREN aggregate_signature CLOSE_PAREN SET SCHEMA new_schema=identifier + ; + +alter_collation_stmt + : ALTER COLLATION name=name_ REFRESH VERSION + | ALTER COLLATION name=name_ RENAME TO new_name=identifier + | ALTER COLLATION name=name_ OWNER TO new_owner=role_name + | ALTER COLLATION name=name_ SET SCHEMA new_schema=identifier + ; + +alter_conversion_stmt + : ALTER CONVERSION name=identifier RENAME TO new_name=identifier + | ALTER CONVERSION name=identifier OWNER TO new_owner=role_name + | ALTER CONVERSION name=identifier SET SCHEMA new_schema=identifier + ; + +alter_database_stmt + : todo_implement + ; + +alter_default_privileges_stmt + : todo_implement + ; + +alter_domain_stmt + : ALTER DOMAIN name=identifier (SET DEFAULT expr | DROP DEFAULT) + | ALTER DOMAIN name=identifier (SET|DROP) NOT NULL + | ALTER DOMAIN name=identifier ADD domain_constraint (NOT VALID)? + | ALTER DOMAIN name=identifier DROP CONSTRAINT (IF EXISTS)? constraint_name=identifier (RESTRICT|CASCADE)? + | ALTER DOMAIN name=identifier RENAME CONSTRAINT constraint_name=identifier TO new_constraint_name=identifier + | ALTER DOMAIN name=identifier VALIDATE CONSTRAINT constraint_name=identifier + | ALTER DOMAIN name=identifier OWNER TO new_owner=role_name + | ALTER DOMAIN name=identifier RENAME TO new_name=identifier + | ALTER DOMAIN name=identifier SET SCHEMA new_schema=identifier + ; + +alter_event_trigger_stmt + : ALTER EVENT TRIGGER name=identifier DISABLE + | ALTER EVENT TRIGGER name=identifier ENABLE (REPLICA|ALWAYS)? + | ALTER EVENT TRIGGER name=identifier OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + | ALTER EVENT TRIGGER name=identifier RENAME TO new_name=identifier + ; + +alter_extension_stmt + : ALTER EXTENSION name=identifier UPDATE (TO new_version=identifier)? + | ALTER EXTENSION name=identifier SET SCHEMA new_schema=identifier + ; + +alter_foreign_data_wrapper_stmt + : todo_implement + ; + +alter_foreign_table_action +// TODO: fix data_type? + : ADD COLUMN? column_name_=column_name data_type_=data_type (COLLATE collation=identifier)? (column_constraints_=column_constraints)? + | DROP COLUMN? (IF EXISTS)? column_name_=column_name (RESTRICT|CASCADE)? + | ALTER COLUMN? column_name_=column_name (SET DATA)? TYPE data_type_=data_type (COLLATE collation=identifier)? + | ALTER COLUMN? column_name_=column_name SET DEFAULT expr + | ALTER COLUMN? column_name_=column_name DROP DEFAULT + | ALTER COLUMN? column_name_=column_name (SET|DROP) NOT NULL + | ALTER COLUMN? column_name_=column_name SET STATISTICS INTEGER + | ALTER COLUMN? column_name_=column_name SET OPEN_PAREN attribute_values=option_list CLOSE_PAREN + | ALTER COLUMN? column_name_=column_name RESET OPEN_PAREN attributes=identifier_list CLOSE_PAREN + | ALTER COLUMN? column_name_=column_name SET STORAGE (PLAIN|EXTERNAL|EXTENDED|MAIN) + | ALTER COLUMN? column_name_=column_name OPTIONS ((ADD|SET|DROP)?) + | ADD table_constraint (NOT VALID)? + | VALIDATE CONSTRAINT constraint_name=todo_fill_in + | DROP CONSTRAINT (IF EXISTS)? constraint_name=todo_fill_in (RESTRICT|CASCADE)? + | DISABLE TRIGGER (trigger_name=todo_fill_in|ALL|USER)? + | ENABLE TRIGGER (trigger_name=todo_fill_in|ALL|USER)? + | ENABLE REPLICA TRIGGER trigger_name=todo_fill_in + | ENABLE ALWAYS TRIGGER trigger_name=todo_fill_in + | SET WITH OIDS + | SET WITHOUT OIDS + | INHERIT parent_table=identifier + | NO INHERIT parent_table=identifier + | OWNER TO new_owner=role_name + | OPTIONS ((ADD|SET|DROP)?) + ; + +alter_foreign_table_action_list + : alter_foreign_table_action (COMMA alter_foreign_table_action)* + ; + +alter_foreign_table_stmt + : ALTER FOREIGN TABLE (IF EXISTS)? ONLY? name=identifier STAR? actions=alter_foreign_table_action_list + | ALTER FOREIGN TABLE (IF EXISTS)? ONLY? name=identifier STAR? + RENAME COLUMN? column_name_=column_name TO new_column_name=identifier + | ALTER FOREIGN TABLE (IF EXISTS)? name=identifier RENAME TO new_name=identifier + | ALTER FOREIGN TABLE (IF EXISTS)? name=identifier SET SCHEMA new_schama=identifier + ; + +alter_function_stmt + : todo_implement + ; + +alter_group_stmt + : ALTER GROUP role=role_name ADD USER users=identifier_list + | ALTER GROUP role=role_name DROP USER users=identifier_list + | ALTER GROUP group_name=identifier RENAME TO new_name=identifier + ; + +alter_index_stmt + : ALTER INDEX (IF EXISTS)? name=identifier RENAME TO new_name=identifier + | ALTER INDEX (IF EXISTS)? name=identifier SET TABLESPACE tablespace_name=identifier + | ALTER INDEX name=identifier DEPENDS ON EXTENSION extension_name=identifier + | ALTER INDEX (IF EXISTS)? name=identifier SET OPEN_PAREN option_list CLOSE_PAREN + | ALTER INDEX (IF EXISTS)? RESET OPEN_PAREN identifier_list CLOSE_PAREN + | ALTER INDEX ALL IN TABLESPACE name=identifier (OWNED BY roles=identifier_list)? + SET TABLESPACE new_tablespace=identifier NOWAIT? + ; + +alter_language_stmt + : ALTER PROCEDURAL? LANGUAGE name=identifier RENAME TO new_name=identifier + | ALTER PROCEDURAL? LANGUAGE name=identifier OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + ; + +alter_large_object_stmt + : ALTER LARGE OBJECT large_object_oid=INTEGER_LITERAL OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + ; + +alter_materialize_view_stmt + : todo_implement + ; + +alter_operator_stmt + : todo_implement + ; + +alter_operator_class_stmt + : ALTER OPERATOR CLASS name=identifier USING index_method RENAME TO new_name=identifier + | ALTER OPERATOR CLASS name=identifier USING index_method OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + | ALTER OPERATOR CLASS name=identifier USING index_method SET SCHEMA new_schema=identifier + ; + +alter_operator_family_stmt + : todo_implement + ; + +alter_policy_stmt + : ALTER POLICY name=identifier ON table_name=identifier RENAME TO new_name=identifier + | ALTER POLICY name=identifier ON table_name=identifier + (TO roles=role_name_list)? + (USING predicate)? + (WITH CHECK predicate)? + ; + +alter_publication_stmt + : ALTER PUBLICATION name=identifier ADD TABLE ONLY? table_names=identifier_list + | ALTER PUBLICATION name=identifier SET TABLE ONLY? table_names=identifier_list + | ALTER PUBLICATION name=identifier DROP TABLE ONLY? table_names=identifier_list + | ALTER PUBLICATION name=identifier SET OPEN_PAREN option_list CLOSE_PAREN + | ALTER PUBLICATION name=identifier OWNER TO new_owner=role_name + | ALTER PUBLICATION name=identifier RENAME TO new_name=name_ + ; + +alter_role_options + : SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | + INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | + NOBYPASSRLS | CONNECTION LIMIT connlimit=INTEGER | ENCRYPTED? PASSWORD SINGLEQ_STRING_LITERAL | + VALID UNTIL SINGLEQ_STRING_LITERAL + ; + +alter_role_stmt + : ALTER ROLE role=role_name WITH? options=alter_role_options+ + | ALTER ROLE name=name_ RENAME TO new_name=name_ + | ALTER ROLE (role=role_name | ALL) (IN DATABASE database_name=name_)? SET configuration_parameter=identifier (TO | EQUAL) (value=param_value | DEFAULT) + | ALTER ROLE (role=role_name | ALL) (IN DATABASE database_name=name_)? SET configuration_parameter=identifier FROM CURRENT + | ALTER ROLE (role=role_name | ALL) (IN DATABASE database_name=name_)? RESET configuration_parameter=identifier + | ALTER ROLE (role=role_name | ALL) (IN DATABASE database_name=name_)? RESET ALL + ; + +alter_rule_stmt + : ALTER RULE name=name_ ON table_name=identifier RENAME TO new_name=name_ + ; + +alter_schema_stmt + : ALTER SCHEMA name=identifier RENAME TO new_name=identifier + | ALTER SCHEMA name=identifier OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + ; + +alter_sequence_stmt + : ALTER SEQUENCE (IF EXISTS)? name=name_ + ; + +alter_server_options_list + : ((ADD|SET|DROP)? option=identifier (value=param_value)?) + (COMMA (ADD|SET|DROP)? option=identifier (value=param_value)?)* + ; + +alter_server_stmt + : ALTER SERVER name=identifier ( + (VERSION SINGLEQ_STRING_LITERAL) | + ((VERSION SINGLEQ_STRING_LITERAL)? (OPTIONS OPEN_PAREN alter_server_options_list CLOSE_PAREN))) + | ALTER SERVER name=identifier OWNER TO new_owner=role_name + | ALTER SERVER name=identifier RENAME TO new_name=name_ + ; + +alter_statistics_stmt + : ALTER STATISTICS name=identifier OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + | ALTER STATISTICS name=identifier RENAME TO new_name=identifier + | ALTER STATISTICS name=identifier SET SCHEMA new_schema=identifier + ; + +alter_subscription_stmt + : ALTER SUBSCRIPTION name=identifier CONNECTION conninfo=param_value + | ALTER SUBSCRIPTION name=identifier SET PUBLICATION publication_name=name_list + (WITH OPEN_PAREN option_list CLOSE_PAREN)? + | ALTER SUBSCRIPTION name=identifier REFRESH PUBLICATION (WITH OPEN_PAREN option_list CLOSE_PAREN)? + | ALTER SUBSCRIPTION name=identifier ENABLE + | ALTER SUBSCRIPTION name=identifier DISABLE + | ALTER SUBSCRIPTION name=identifier SET OPEN_PAREN option_list CLOSE_PAREN + | ALTER SUBSCRIPTION name=identifier OWNER TO new_owner=role_name + | ALTER SUBSCRIPTION name=identifier RENAME TO new_name=identifier + ; + +alter_system_stmt + : ALTER SYSTEM SET param=IDENTIFIER (TO|EQUAL) value=param_value + | ALTER SYSTEM RESET param=IDENTIFIER + | ALTER SYSTEM RESET ALL + ; + +alter_table_stmt + : todo_implement + ; + +alter_tablespace_stmt + : ALTER TABLESPACE name=identifier RENAME TO new_name=identifier + | ALTER TABLESPACE name=identifier OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) + | ALTER TABLESPACE name=identifier SET OPEN_PAREN option_list CLOSE_PAREN + | ALTER TABLESPACE name=identifier RESET OPEN_PAREN identifier_list CLOSE_PAREN + ; + +alter_text_search_config_stmt + : ALTER TEXT SEARCH CONFIGURATION name=identifier + ADD MAPPING FOR token_types=identifier_list WITH dictionary_names=identifier_list + | ALTER TEXT SEARCH CONFIGURATION name=identifier + ALTER MAPPING FOR token_types=identifier_list WITH dictionary_names=identifier_list + | ALTER TEXT SEARCH CONFIGURATION name=identifier + ALTER MAPPING REPLACE old_dictionary=identifier WITH new_dictionary=identifier + | ALTER TEXT SEARCH CONFIGURATION name=identifier + ALTER MAPPING FOR token_types=identifier_list REPLACE old_dictionary=identifier WITH new_dictionary=identifier + | ALTER TEXT SEARCH CONFIGURATION name=identifier + DROP MAPPING (IF EXISTS)? FOR token_types=identifier_list + | ALTER TEXT SEARCH CONFIGURATION name=identifier RENAME TO new_name=identifier + | ALTER TEXT SEARCH CONFIGURATION name=identifier OWNER TO new_owner=role_name + | ALTER TEXT SEARCH CONFIGURATION name=identifier SET SCHEMA new_schema=identifier + ; + +alter_text_search_dict_stmt + : todo_implement + ; + +alter_text_search_parser_stmt + : todo_implement + ; + +alter_text_search_template_stmt + : ALTER TEXT SEARCH TEMPLATE name=identifier RENAME TO new_name=identifier + | ALTER TEXT SEARCH TEMPLATE name=identifier SET SCHEMA new_schema=identifier + ; + +alter_trigger_stmt + : ALTER TRIGGER name=identifier ON table_name=identifier RENAME TO new_name=identifier + | ALTER TRIGGER name=identifier ON table_name=identifier DEPENDS ON EXTENSION extension_name=identifier + ; + +alter_type_stmt + : todo_implement + ; + +alter_user_stmt + : todo_implement + ; + +alter_user_mapping_stmt + : ALTER USER MAPPING FOR user=role_name + SERVER server_name=identifier + OPTIONS (OPEN_PAREN alter_server_options_list CLOSE_PAREN) + ; + +alter_view_stmt + : todo_implement + ; + +analyze_stmt + : ANALYZE VERBOSE? table_name_ (OPEN_PAREN name_list CLOSE_PAREN)? + ; + +close_stmt + : todo_implement + ; + +cluster_stmt + : todo_implement + ; + +comment_stmt + : todo_implement + ; + +commit_stmt + : todo_implement + ; + +commit_prepared_stmt + : todo_implement + ; + +copy_stmt + : todo_implement + ; + +create_stmt + : create_access_method_stmt + | create_aggregate_stmt + | create_cast_stmt + | create_collation_stmt + | create_conversion_stmt + | create_database_stmt + | create_domain_stmt + | create_event_trigger_stmt + | create_foreign_data_stmt + | create_foreign_table_stmt + | create_function_stmt + | create_group_stmt + | create_index_stmt + | create_language_stmt + | create_materialized_view_stmt + | create_operator_stmt + | create_operator_class_stmt + | create_operator_family_stmt + | create_policy_stmt + | create_role_stmt + | create_rule_stmt + | create_schema_stmt + | create_sequence_stmt + | create_server_stmt + | create_statistics_stmt + | create_subscription_stmt + | create_table_stmt + | create_table_as_stmt + | create_tablespace_stmt + | create_text_search_config_stmt + | create_text_search_dict_stmt + | create_text_search_parser_stmt + | create_text_search_template_stmt + | create_transform_stmt + | create_trigger_stmt + | create_type_stmt + | create_user_stmt + | create_user_mapping_stmt + | create_view_stmt + ; + +create_access_method_stmt + : CREATE ACCESS METHOD name_ TYPE INDEX HANDLER name_; + +create_aggregate_stmt + : (CREATE AGGREGATE name_ OPEN_PAREN (IN | VARIADIC)? name_? data_type_list CLOSE_PAREN + OPEN_PAREN + SFUNC EQUAL identifier COMMA + STYPE EQUAL identifier + (COMMA SSPACE EQUAL INTEGER_LITERAL)? + (COMMA FINALFUNC EQUAL identifier)? + (COMMA FINALFUNC_EXTRA)? + (COMMA COMBINEFUNC EQUAL identifier)? + (COMMA SERIALFUNC EQUAL identifier)? + (COMMA DESERIALFUNC EQUAL identifier)? + (COMMA INITCOND EQUAL expr)? + (COMMA MSFUNC EQUAL identifier)? + (COMMA MINVFUNC EQUAL identifier)? + (COMMA MSTYPE EQUAL identifier)? + (COMMA MSSPACE EQUAL INTEGER_LITERAL)? + (COMMA MFINALFUNC EQUAL identifier)? + (COMMA MFINALFUNC_EXTRA)? + (COMMA MINITCOND EQUAL identifier)? + (COMMA SORTOP EQUAL identifier)? + (COMMA PARALLEL EQUAL (SAFE | RESTRICTED | UNSAFE))? + CLOSE_PAREN) + | (CREATE AGGREGATE name_ OPEN_PAREN ((IN | VARIADIC)? name_? data_type_list)? + ORDER BY (IN | VARIADIC)? name_? data_type_list CLOSE_PAREN + OPEN_PAREN + SFUNC EQUAL identifier COMMA + STYPE EQUAL identifier + (COMMA SSPACE EQUAL INTEGER_LITERAL)? + (COMMA FINALFUNC EQUAL identifier)? + (COMMA FINALFUNC_EXTRA)? + (COMMA INITCOND EQUAL expr)? + (COMMA PARALLEL EQUAL (SAFE | RESTRICTED | UNSAFE))? + (COMMA HYPOTHETICAL)? + CLOSE_PAREN) + | (CREATE AGGREGATE name_ + OPEN_PAREN + BASETYPE EQUAL data_type COMMA + SFUNC EQUAL identifier COMMA + STYPE EQUAL identifier + (COMMA SSPACE EQUAL INTEGER_LITERAL)? + (COMMA FINALFUNC EQUAL identifier)? + (COMMA FINALFUNC_EXTRA)? + (COMMA COMBINEFUNC EQUAL identifier)? + (COMMA SERIALFUNC EQUAL identifier)? + (COMMA DESERIALFUNC EQUAL identifier)? + (COMMA INITCOND EQUAL expr)? + (COMMA MSFUNC EQUAL identifier)? + (COMMA MINVFUNC EQUAL identifier)? + (COMMA MSTYPE EQUAL identifier)? + (COMMA MSSPACE EQUAL INTEGER_LITERAL)? + (COMMA MFINALFUNC EQUAL identifier)? + (COMMA MFINALFUNC_EXTRA)? + (COMMA MINITCOND EQUAL identifier)? + (COMMA SORTOP EQUAL identifier)? + CLOSE_PAREN) + ; + +create_cast_stmt + : CREATE CAST OPEN_PAREN data_type AS data_type CLOSE_PAREN + ((WITH FUNCTION identifier ( OPEN_PAREN data_type_list CLOSE_PAREN )?) + | (WITHOUT FUNCTION) + | (WITH INOUT)) + (AS ASSIGNMENT | AS IMPLICIT)? + ; + +create_collation_opt + : LOCALE EQUAL expr + | LC_COLLATE EQUAL expr + | LC_CTYPE EQUAL expr + | PROVIDER EQUAL expr + | VERSION EQUAL expr + | DOUBLEQ_STRING_LITERAL EQUAL expr + ; + +create_collation_opt_list + : create_collation_opt (COMMA create_collation_opt)* + ; + +create_collation_stmt + : (CREATE COLLATION (IF NOT EXISTS)? name_ OPEN_PAREN + create_collation_opt_list CLOSE_PAREN) + | (CREATE COLLATION (IF NOT EXISTS)? name_ FROM name_) + ; + +create_conversion_stmt + : CREATE DEFAULT? CONVERSION identifier + FOR SINGLEQ_STRING_LITERAL TO SINGLEQ_STRING_LITERAL FROM name_ + ; + +create_database_stmt + : CREATE DATABASE name_ + ( WITH? + (OWNER EQUAL name_)? + (TEMPLATE EQUAL name_)? + (ENCODING EQUAL name_)? + (LC_COLLATE EQUAL name_)? + (LC_CTYPE EQUAL name_)? + (TABLESPACE EQUAL name_)? + (ALLOW_CONNECTIONS EQUAL name_)? + (CONNECTION LIMIT EQUAL INTEGER_LITERAL)? + (IS_TEMPLATE EQUAL INTEGER_LITERAL)? + ) + ; + +domain_constraint + : (CONSTRAINT name_)? ( NOT NULL | NULL | CHECK OPEN_PAREN expr CLOSE_PAREN ) + ; + +create_domain_stmt + : CREATE DOMAIN name_ AS? data_type + ((COLLATE name_) | + (DEFAULT expr) | + domain_constraint)* + ; + +create_event_trigger_cond + : filter_stmt=identifier IN OPEN_PAREN SINGLEQ_STRING_LITERAL (COMMA SINGLEQ_STRING_LITERAL)* CLOSE_PAREN + (AND create_event_trigger_cond)* + ; + +create_event_trigger_stmt + : CREATE EVENT TRIGGER trigger=identifier ON event=identifier + (WHEN create_event_trigger_cond)? + EXECUTE PROCEDURE fn_name=identifier OPEN_PAREN CLOSE_PAREN + ; + +// TODO: rename to options_list? +create_foreign_data_options + : opt=name_ SINGLEQ_STRING_LITERAL + (COMMA create_foreign_data_options)* + ; + +create_foreign_data_stmt + : CREATE FOREIGN DATA WRAPPER wrapper=identifier + (HANDLER handler=identifier | NO HANDLER)* + (VALIDATOR validator=identifier | NO VALIDATOR)? + (OPTIONS OPEN_PAREN opts=create_foreign_data_options CLOSE_PAREN)? + ; + +create_foreign_table_stmt + : CREATE FOREIGN TABLE (IF NOT EXISTS)? table_name_TODO=identifier + OPEN_PAREN column_name_TODO=identifier column_type=identifier + (OPTIONS OPEN_PAREN opts=create_foreign_data_options CLOSE_PAREN)? + (COLLATE create_collation_opt)? + CLOSE_PAREN + (INHERITS name_list)? + SERVER server_name=name_ + (OPTIONS OPEN_PAREN opts=create_foreign_data_options CLOSE_PAREN)? + ; + +create_function_stmt + : CREATE (OR REPLACE)? FUNCTION fn_name=name_ + ; + +create_group_stmt + : CREATE GROUP group=identifier + (WITH? + (SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | + CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | + INHERIT | NOINHERIT | LOGIN | NOLOGIN | + (ENCRYPTED | UNENCRYPTED)? PASSWORD (SINGLEQ_STRING_LITERAL | NULL) | + VALID UNTIL SINGLEQ_STRING_LITERAL | IN ROLE name_list | IN GROUP name_list | ROLE name_list | + ADMIN name_list | USER name_list | SYSID INTEGER_LITERAL)+)? + ; + +create_index_stmt + : CREATE UNIQUE? INDEX CONCURRENTLY? ((IF NOT EXISTS)? index_name=identifier)? + ON tableName=identifier (USING index_method)? + (TABLESPACE tablespace_name=identifier)? + (WHERE predicate)? + ; + +create_language_stmt + : (CREATE (OR REPLACE)? PROCEDURAL? LANGUAGE language_name=identifier) | + (CREATE (OR REPLACE)? TRUSTED? PROCEDURAL? LANGUAGE language_name=identifier + HANDLER call_handler=identifier (INLINE inline_handler=identifier)? (VALIDATOR valfunction=identifier)?) + ; + +// TODO: normalize aliases so we don't have tableName and table_name +create_materialized_view_stmt + : CREATE MATERIALIZED VIEW (IF NOT EXISTS)? tableName=identifier + (OPEN_PAREN columns=identifier_list CLOSE_PAREN)? + (WITH /* todo: implement */)? + (TABLESPACE tablespace_name=identifier)? + AS query=select_stmt + (WITH NO? DATA)? + ; + +// TODO: this one is tricky because of the yet undefined 'operator' lexeme +create_operator_stmt + : CREATE OPERATOR opName=identifier + OPEN_PAREN + PROCEDURE EQUAL function_name=identifier + (COMMA LEFTARG EQUAL left_type=name_)? + (COMMA RIGHTARG EQUAL right_type=name_)? + (COMMA COMMUTATOR EQUAL com_op=name_)? + (COMMA NEGATOR EQUAL neg_op=name_)? + (COMMA RESTRICT EQUAL res_proc=name_)? + (COMMA JOIN EQUAL join_proc=name_)? + (COMMA HASHES)? + (COMMA MERGES)? + CLOSE_PAREN + ; + +create_operator_class_opt + : (OPERATOR strategy_number=INTEGER_LITERAL opName=identifier (OPEN_PAREN identifier COMMA identifier CLOSE_PAREN)?) | + (FUNCTION support_number=INTEGER_LITERAL (OPEN_PAREN identifier (COMMA identifier)? CLOSE_PAREN)? func_name_=identifier OPEN_PAREN data_type_list CLOSE_PAREN) | + (STORAGE storage_type=identifier) + ; + +create_operator_class_stmt + : CREATE OPERATOR CLASS name=identifier DEFAULT? FOR TYPE op_type=identifier + USING index_method (FAMILY family_name=identifier)? AS + create_operator_class_opt (COMMA create_operator_class_opt)* + ; + +create_operator_family_stmt + : CREATE OPERATOR FAMILY name=identifier USING index_method + ; + +create_policy_stmt + : CREATE POLICY name=identifier ON tableName=identifier + (FOR (ALL | SELECT | INSERT | UPDATE | DELETE))? + (TO role=role_name)? // TODO: make a list here + (USING OPEN_PAREN predicate CLOSE_PAREN)? + (WITH CHECK OPEN_PAREN predicate CLOSE_PAREN)? + ; + +create_role_stmt + : CREATE ROLE role=role_name + (WITH? + (SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | + CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | + REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | + CONNECTION LIMIT INTEGER_LITERAL | ENCRYPTED? PASSWORD (SINGLEQ_STRING_LITERAL | NULL) | + VALID UNTIL SINGLEQ_STRING_LITERAL | IN ROLE name_list | IN GROUP name_list | ROLE name_list | + ADMIN name_list | USER name_list | SYSID INTEGER_LITERAL)+)? + ; + +create_rule_event + : SELECT | INSERT | UPDATE | DELETE + ; + +// TODO: resolve 'command' to its proper definition +create_rule_stmt + : CREATE (OR REPLACE)? RULE name=name_ AS ON event=create_rule_event + TO tableName=identifier (WHERE predicate)? + DO (ALSO | INSTEAD)? (NOTHING | command=identifier) + ; + +create_schema_stmt + : (CREATE SCHEMA schema_name=identifier (AUTHORIZATION role_name)? todo_fill_in? ) | + (CREATE SCHEMA AUTHORIZATION role_name todo_fill_in?) | + (CREATE SCHEMA IF NOT EXISTS schema_name=identifier (AUTHORIZATION role_name)?) | + (CREATE SCHEMA IF NOT EXISTS AUTHORIZATION role_name) + ; + +create_sequence_stmt + : CREATE (TEMPORARY | TEMP)? SEQUENCE (IF NOT EXISTS)? name=identifier (INCREMENT BY? increment=INTEGER_LITERAL)? + (MINVALUE minvalue=INTEGER_LITERAL | NO MINVALUE)? + (MAXVALUE maxvalue=INTEGER_LITERAL | NO MAXVALUE)? + (START WITH? start=INTEGER_LITERAL)? (CACHE cache=INTEGER_LITERAL)? (NO? CYCLE)? + (OWNED BY ((table_name=identifier DOT column_name_=identifier) | NONE))? + ; + +create_server_stmt + : todo_implement + ; + +create_statistics_stmt + : todo_implement + ; + +create_subscription_stmt + : todo_implement + ; + +create_table_stmt + : todo_implement + ; + +create_table_as_stmt + : todo_implement + ; + +create_tablespace_stmt + : todo_implement + ; + +create_text_search_config_stmt + : todo_implement + ; + +create_text_search_dict_stmt + : todo_implement + ; + +create_text_search_parser_stmt + : todo_implement + ; + +create_text_search_template_stmt + : todo_implement + ; + +create_transform_stmt + : todo_implement + ; + +create_trigger_stmt + : todo_implement + ; + +create_type_stmt + : todo_implement + ; + +create_user_stmt + : todo_implement + ; + +create_user_mapping_stmt + : todo_implement + ; + +create_view_stmt + : CREATE (OR REPLACE)? (TEMP|TEMPORARY)? RECURSIVE? VIEW name=name_ (OPEN_PAREN name_list CLOSE_PAREN)? + (WITH OPEN_PAREN option_list CLOSE_PAREN)? + AS (select_stmt | values_stmt) + (WITH (CASCADED|LOCAL)? CHECK OPTION)? + ; + +deallocate_stmt + : todo_implement + ; + +declare_stmt + : todo_implement + ; + +delete_stmt + : with_clause? + DELETE FROM ONLY? table_name_ STAR? (AS? alias)? + (USING identifier_list)? + (where_clause | (WHERE CURRENT OF cursor_name_=identifier))? + returning_clause? + ; + +discard_stmt + : DISCARD (ALL | PLANS | SEQUENCES | TEMPORARY | TEMP) + ; + +drop_stmt + : drop_access_method_stmt + | drop_aggregate_stmt + | drop_cast_stmt + | drop_collation_stmt + | drop_conversion_stmt + | drop_database_stmt + | drop_domain_stmt + | drop_event_trigger_stmt + | drop_extension_stmt + | drop_foreign_data_wrapper_stmt + | drop_foreign_table_stmt + | drop_function_stmt + | drop_group_stmt + | drop_index_stmt + | drop_language_stmt + | drop_materialized_view_stmt + | drop_operator_stmt + | drop_operator_class_stmt + | drop_operator_family_stmt + | drop_owned_stmt + | drop_policy_stmt + | drop_publication_stmt + | drop_role_stmt + | drop_rule_stmt + | drop_schema_stmt + | drop_sequence_stmt + | drop_server_stmt + | drop_statistics_stmt + | drop_subscription_stmt + | drop_table_stmt + | drop_tablespace_stmt + | drop_text_search_config_stmt + | drop_text_search_dict_stmt + | drop_text_search_parser_stmt + | drop_text_search_template_stmt + | drop_transform_stmt + | drop_trigger_stmt + | drop_type_stmt + | drop_user_stmt + | drop_user_mapping_stmt + | drop_view_stmt + ; + + +drop_access_method_stmt + : DROP ACCESS METHOD (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_aggregate_stmt + : DROP AGGREGATE (IF EXISTS)? name=identifier OPEN_PAREN aggregate_signature CLOSE_PAREN + ; + +drop_cast_stmt + : DROP CAST (IF EXISTS)? OPEN_PAREN source_type=data_type AS target_type=identifier CLOSE_PAREN (CASCADE|RESTRICT)? + ; + +drop_collation_stmt + : DROP COLLATION (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_conversion_stmt + : DROP CONVERSION (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_database_stmt + : DROP DATABASE (IF EXISTS)? name=identifier + ; + +drop_domain_stmt + : DROP DOMAIN (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_event_trigger_stmt + : DROP EVENT TRIGGER (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_extension_stmt + : DROP EXTENSION (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_foreign_data_wrapper_stmt + : DROP FOREIGN DATA WRAPPER (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_foreign_table_stmt + : DROP FOREIGN TABLE (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_function_stmt + : DROP FUNCTION (IF EXISTS)? functions=func_sig_list (CASCADE|RESTRICT)? + ; + +drop_group_stmt + : DROP GROUP (IF EXISTS)? names=identifier_list + ; + +drop_index_stmt + : DROP INDEX CONCURRENTLY? (IF EXISTS)? names=name_list (CASCADE|RESTRICT)? + ; + +drop_language_stmt + : DROP PROCEDURAL? LANGUAGE (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_materialized_view_stmt + : DROP MATERIALIZED VIEW (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_operator_stmt + : todo_implement + ; + +drop_operator_class_stmt + : DROP OPERATOR CLASS (IF EXISTS)? name=identifier USING index_method (CASCADE|RESTRICT)? + ; + +drop_operator_family_stmt + : DROP OPERATOR FAMILY (IF EXISTS)? name=identifier USING index_method (CASCADE|RESTRICT)? + ; + +drop_owned_stmt + : DROP OWNED BY role_name_list (CASCADE|RESTRICT)? + ; + +drop_policy_stmt + : DROP POLICY (IF EXISTS)? name=identifier ON table_name=identifier (CASCADE|RESTRICT)? + ; + +drop_publication_stmt + : DROP PUBLICATION (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_role_stmt + : DROP ROLE (IF EXISTS)? names=identifier_list + ; + +drop_rule_stmt + : DROP RULE (IF EXISTS)? name=name_ ON table_name=identifier (CASCADE|RESTRICT)? + ; + +drop_schema_stmt + : DROP SCHEMA (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_sequence_stmt + : DROP SEQUENCE (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_server_stmt + : DROP SERVER (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_statistics_stmt + : DROP STATISTICS (IF EXISTS)? names=identifier_list + ; + +drop_subscription_stmt + : DROP SUBSCRIPTION (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_table_stmt + : DROP TABLE (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_tablespace_stmt + : DROP TABLESPACE (IF EXISTS)? name=identifier + ; + +drop_text_search_config_stmt + : DROP TEXT SEARCH CONFIGURATION (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_text_search_dict_stmt + : DROP TEXT SEARCH DICTIONARY (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_text_search_parser_stmt + : DROP TEXT SEARCH PARSER (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_text_search_template_stmt + : DROP TEXT SEARCH TEMPLATE (IF EXISTS)? name=identifier (CASCADE|RESTRICT)? + ; + +drop_transform_stmt + : DROP TRANSFORM (IF EXISTS)? FOR type_name_=identifier LANGUAGE lang_name=identifier (CASCADE|RESTRICT) + ; + +drop_trigger_stmt + : DROP TRIGGER (IF EXISTS)? name=identifier ON table_name=identifier (CASCADE|RESTRICT)? + ; + +drop_type_stmt + : DROP TYPE (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +drop_user_stmt + : DROP USER (IF EXISTS)? names=identifier_list + ; + +drop_user_mapping_stmt + : DROP USER MAPPING (IF EXISTS)? FOR (user_name=name_|USER|CURRENT_USER|SESSION_USER|PUBLIC) SERVER server_name=identifier + ; + +drop_view_stmt + : DROP VIEW (IF EXISTS)? names=identifier_list (CASCADE|RESTRICT)? + ; + +execute_stmt + : EXECUTE name=identifier expr_list? + ; + +explain_stmt + : ((EXPLAIN ANALYZE? VERBOSE?) + | (EXPLAIN OPEN_PAREN explain_parameter (COMMA explain_parameter)* CLOSE_PAREN)) + (select_stmt|insert_stmt|update_stmt|delete_stmt|values_stmt|execute_stmt|declare_stmt|create_table_as_stmt|create_materialized_view_stmt) + ; + +fetch_stmt + : todo_implement + ; + +grant_stmt + : todo_implement + ; + +import_foreign_schema_stmt + : todo_implement + ; + +insert_stmt + : with_clause? + INSERT INTO table_name_ (AS alias_=identifier)? (OPEN_PAREN name_list CLOSE_PAREN)? + (OVERRIDING (SYSTEM | USER)? VALUE)? + (DEFAULT VALUES | select_stmt | values_stmt) + (ON CONFLICT + (OPEN_PAREN column_name CLOSE_PAREN)? + (ON CONSTRAINT column_name)? + where_clause? + ((DO NOTHING)|(DO UPDATE SET updater_clause where_clause?)) + )? + returning_clause? + ; + +listen_stmt + : LISTEN channel=identifier + ; + +load_stmt + : todo_implement + ; + +lock_stmt + : LOCK TABLE? ONLY? name=name_ STAR? (IN + (ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE + | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE) MODE)? NOWAIT? + ; + +move_stmt + : MOVE ((NEXT | PRIOR | FIRST | LAST | ABSOLUTE INTEGER | RELATIVE INTEGER_LITERAL | INTEGER_LITERAL | + ALL | FORWARD (INTEGER_LITERAL|ALL)? | BACKWARD (INTEGER_LITERAL|ALL)?) (FROM|IN)?)? cursor_name=name_ + ; + +notify_stmt + : NOTIFY channel=name_ (COMMA payload=SINGLEQ_STRING_LITERAL)? + ; + +prepare_stmt + : PREPARE name=identifier (OPEN_PAREN data_type_list CLOSE_PAREN)? AS + (select_stmt|insert_stmt|update_stmt|delete_stmt|values_stmt) + ; + +prepare_transaction_stmt + : PREPARE TRANSACTION name=name_ + ; + +reassign_owned_stmt + : REASSIGN OWNED + BY ((identifier|CURRENT_USER|SESSION_USER) (COMMA (identifier|CURRENT_USER|SESSION_USER))*) + TO (identifier|CURRENT_USER|SESSION_USER) + ; + +refresh_materialized_view_stmt + : todo_implement + ; + +reindex_stmt + : REINDEX (OPEN_PAREN VERBOSE CLOSE_PAREN)? (INDEX | TABLE | SCHEMA | DATABASE | SYSTEM) name=identifier + ; + +release_savepoint_stmt + : RELEASE SAVEPOINT? savepoint_name=identifier + ; + +reset_stmt + : RESET (configuration_parameter=identifier | ALL) + ; + +revoke_stmt + : todo_implement + ; + +rollback_stmt + : ROLLBACK (WORK | TRANSACTION)? + ; + +rollback_prepared_stmt + : ROLLBACK PREPARED transaction_id=INTEGER_LITERAL + ; + +rollback_to_savepoint_stmt + : ROLLBACK (WORK | TRANSACTION)? TO SAVEPOINT? savepoint_name=identifier + ; + +savepoint_stmt + : SAVEPOINT savepoint_name=identifier + ; + +security_label_stmt + : SECURITY LABEL (FOR provider=name_)? ON + ( TABLE object_name=identifier + | COLUMN table_name=identifier DOT column_name_=column_name + | AGGREGATE aggregate_name=identifier OPEN_PAREN aggregate_signature CLOSE_PAREN + | DATABASE object_name=identifier + | DOMAIN object_name=identifier + | EVENT TRIGGER object_name=identifier + | FOREIGN TABLE object_name=identifier + | FUNCTION function_name=identifier func_sig + | LARGE OBJECT large_object_oid=INTEGER_LITERAL + | MATERIALIZED VIEW object_name=identifier + | PROCEDURAL? LANGUAGE object_name=identifier + | PUBLICATION object_name=identifier + | ROLE object_name=identifier + | SCHEMA object_name=identifier + | SEQUENCE object_name=identifier + | SUBSCRIPTION object_name=identifier + | TABLESPACE object_name=identifier + | TYPE object_name=identifier + | VIEW object_name=identifier + ) IS label=SINGLEQ_STRING_LITERAL + ; + +select_stmt + : with_clause? + ((SELECT + selector_clause + from_clause?) + | (TABLE ONLY? table_name_ STAR?) + | (OPEN_PAREN+ select_stmt CLOSE_PAREN+ combine_clause) + ) + where_clause? + group_by_clause? + having_clause? + window_clause? + combine_clause? + order_by_clause? + limit_clause? + offset_clause? + fetch_clause? + for_clause? + ; + +select_into_stmt + : with_clause? + ((SELECT + selector_clause + INTO (TEMPORARY | TEMP | UNLOGGED)? TABLE? new_table=table_name_ + from_clause?) + | (TABLE ONLY? table_name_ STAR?) + | (OPEN_PAREN+ select_stmt CLOSE_PAREN+ combine_clause) + ) + where_clause? + group_by_clause? + having_clause? + window_clause? + combine_clause? + order_by_clause? + limit_clause? + offset_clause? + fetch_clause? + for_clause? + ; + +with_clause: + WITH RECURSIVE? with_expr (COMMA with_expr)* + ; + +with_expr: + table_name_ (OPEN_PAREN name_list CLOSE_PAREN)? + AS OPEN_PAREN (select_stmt|insert_stmt|delete_stmt|update_stmt|values_stmt) CLOSE_PAREN + ; + +set_stmt + : SET (SESSION | LOCAL)? configuration_parameter=identifier (TO | EQUAL) (value=param_value | DEFAULT) + | SET (SESSION | LOCAL)? TIME ZONE (timezone | LOCAL | DEFAULT) + ; + +set_constraints_stmt + : SET CONSTRAINTS (ALL | constraints=identifier_list) (DEFERRED | IMMEDIATE) + ; + +set_role_stmt + : SET (SESSION | LOCAL)? ROLE (role_name_=role_name | NONE) + | RESET ROLE + ; + +set_session_authorization_stmt + : todo_implement + ; + +transaction_mode + : ISOLATION LEVEL (SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED) + | READ WRITE + | READ ONLY + | NOT? DEFERRABLE + ; + +transaction_mode_list + : transaction_mode (COMMA transaction_mode)* + ; + +set_transaction_stmt + : SET TRANSACTION transaction_mode_list + | SET TRANSACTION SNAPSHOT snapshot_id=SINGLEQ_STRING_LITERAL + | SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list + ; + +show_stmt + : SHOW (name=identifier | TIME ZONE | ALL) + ; + +truncate_stmt + : TRUNCATE TABLE? ONLY? table_name_ STAR? (COMMA ONLY? identifier_list)? + ((RESTART | CONTINUE) IDENTITY)? (CASCADE | RESTRICT)? + ; + +unlisten_stmt + : UNLISTEN (channel=identifier | STAR) + ; + +update_stmt + : with_clause? + UPDATE ONLY? table_name_ STAR? (AS? alias_=identifier)? + SET updater_clause + from_clause? + (where_clause | (WHERE CURRENT OF cursor_name_=identifier))? + returning_clause? + ; + +vacuum_opt + : FULL | FREEZE | VERBOSE | ANALYZE | DISABLE_PAGE_SKIPPING + ; + +vacuum_opt_list + : vacuum_opt (COMMA vacuum_opt)* + ; + +vacuum_stmt + : VACUUM (OPEN_PAREN vacuum_opt_list CLOSE_PAREN)? (table_name=table_name_ (OPEN_PAREN column_list CLOSE_PAREN)?) + | VACUUM FULL? FREEZE? VERBOSE? (table_name=table_name_)? + | VACUUM FULL? FREEZE? VERBOSE? ANALYZE (table_name=table_name_ (OPEN_PAREN column_list CLOSE_PAREN)?)? + ; + +values_stmt + : with_clause? + ((VALUES expr_list_list) + | (OPEN_PAREN+ values_stmt CLOSE_PAREN+ combine_clause) + ) + order_by_clause? + combine_clause? + limit_clause? + offset_clause? + fetch_clause? + ; + +selector_clause + :(ALL | (DISTINCT (ON expr_list)?))? column_list + ; + +from_clause + : FROM from_item (COMMA from_item)* + ; + +where_clause + : WHERE predicate + ; + +group_by_clause + : GROUP BY grouping_elem (COMMA grouping_elem)* + ; + +grouping_elem + : OPEN_PAREN CLOSE_PAREN + | expr + | expr_list + | (ROLLUP | CUBE) OPEN_PAREN (expr | expr_list) (COMMA (expr | expr_list))* CLOSE_PAREN + | GROUPING SETS grouping_elem_list + ; + +grouping_elem_list + : OPEN_PAREN grouping_elem (COMMA grouping_elem)* CLOSE_PAREN + ; + +having_clause + : HAVING predicate (COMMA predicate)* + ; + +column_list + : ((column_name_=expr (AS? output_name=name_)?) | STAR) + (COMMA ((column_name_=expr (AS? output_name=name_)?) | STAR))* + ; + +explain_parameter + : (ANALYZE | VERBOSE | COSTS | BUFFERS | TIMING) param_value? + | FORMAT (TEXT | XML | JSON | YAML) + ; + +frame + : UNBOUNDED PRECEDING + | INTEGER_LITERAL PRECEDING + | CURRENT ROW + | INTEGER_LITERAL FOLLOWING + | UNBOUNDED FOLLOWING + ; + +frame_start + : frame + ; + +frame_end + : frame + ; + +frame_clause + : (RANGE | ROWS) frame_start + | (RANGE | ROWS) BETWEEN frame_start AND frame_end + ; + +window_definition + : window_name + | PARTITION BY expr (COMMA expr)* + | order_by_clause + ; + +window_clause + : WINDOW window_name AS OPEN_PAREN window_definition CLOSE_PAREN + ; + +combine_clause + : ( UNION | INTERSECT | EXCEPT ) ( ALL | DISTINCT)? OPEN_PAREN* (select_stmt | values_stmt) CLOSE_PAREN* combine_clause? + ; + +order_by_clause + : ORDER BY order_by_item (COMMA order_by_item)* + ; + +order_by_item + : (expr | DOUBLEQ_STRING_LITERAL) (ASC | DESC | USING expr)? ( (NULLS (FIRST | LAST)) (COMMA (NULLS (FIRST | LAST)))*)? + ; + +limit_clause + : LIMIT (INTEGER_LITERAL | ALL | func_call) + ; + +offset_clause + : OFFSET INTEGER_LITERAL (ROW | ROWS)? + ; + +fetch_clause + : FETCH (FIRST | NEXT) INTEGER_LITERAL? (ROW | ROWS) ONLY + ; + +for_clause + : FOR ( UPDATE | NO KEY UPDATE | SHARE | KEY SHARE ) (OF table_name_ (COMMA table_name_)*)? ( NOWAIT | SKIP_ LOCKED)* + ; + +updater_clause + : updater_expr (COMMA updater_expr)* + ; + +updater_expr + : expr + | (OPEN_PAREN name_list CLOSE_PAREN EQUAL (expr | expr_list)) + ; + +returning_clause + : RETURNING column_list + ; + +// TODO: split into more granular expression types? +// TODO: handle operators like BETWEEN in a more normalized way +expr + : NULL + | CURRENT_DATE + | CURRENT_ROLE + | CURRENT_TIME + | CURRENT_TIMESTAMP + | CURRENT_USER + | DEFAULT //used in insert_stmt in values + | INTEGER_LITERAL + | HEX_INTEGER_LITERAL // TODO: consolidate all integer literals under a rule + | NUMERIC_LITERAL + | SINGLEQ_STRING_LITERAL + | BIT_STRING + | REGEX_STRING + | DOLLAR_DOLLAR (~DOLLAR)+ DOLLAR_DOLLAR + | DOLLAR identifier (~DOLLAR)+ DOLLAR identifier DOLLAR + | bool_expr + | values_stmt + | expr_list + // order of these terms implies order of operations + // see: https://www.postgresql.org/docs/10/static/sql-syntax-lexical.html#SQL-SYNTAX-OPERATORS + | expr OPEN_BRACKET expr CLOSE_BRACKET + | OPEN_PAREN expr CLOSE_PAREN + | type_name SINGLEQ_STRING_LITERAL + | op=(BANG_BANG | AT_SIGN | PLUS | MINUS) expr + | op=(TIL | QMARK_HYPHEN) expr + | expr op=BANG + | expr op=(CARET | PIPE_SLASH | PIPE_PIPE_SLASH) expr + | expr op=(STAR | SLASH | PERCENT) expr + | expr op=(PLUS | MINUS) expr + | expr op=( + AMP | PIPE | HASH | TIL | LT_LT | LT_LT_EQ | GT_GT | + AT_AT | LT_HYPHEN_GT | AT_GT | LT_AT | TIL_EQ | TIL_STAR| TIL_TIL | TIL_LT_TIL | TIL_GT_TIL | TIL_LTE_TIL | + TIL_GTE_TIL | LT_QMARK_GT | HYPHEN_GT | HYPHEN_GT_GT | HASH_HASH | HASH_GT | HASH_GT_GT | QMARK | QMARK_PIPE | + QMARK_AMP | QMARK_HASH | LT_CARET | AMP_LT | HYPHEN_PIPE_HYPHEN | HASH_EQ | AMP_AMP | PIPE_PIPE | EQUAL_GT | + NOT | AND | OR + ) expr + | expr (NOT LIKE | LIKE) expr //(STRING_LITERAL_SINGLE_Q | REGEX_STRING) + | expr NOT? BETWEEN expr AND expr + | expr IN expr + | expr op=(LT | GT | EQUAL | LTE | GTE | LT_GT | BANG_EQUAL) expr + | expr op=IS (bool_expr | NULL | NOT NULL) + | expr IS NOT? DISTINCT FROM expr + | op=(NOT | ALL ) expr + | func_call + | identifier + | CAST OPEN_PAREN expr AS data_type CLOSE_PAREN + | correlation_name DOT column_name + | case_expr + | expr (OPEN_BRACKET expr? COLON expr? CLOSE_BRACKET)+ + | expr (COLON_COLON data_type)+ + | data_type expr + | expr IS OF OPEN_PAREN data_type CLOSE_PAREN + | expr DOT (identifier | STAR) + | aggregate // TODO: should there be a difference between an aggregate and a func_call? + | array_cons_expr + | expr (AT TIME ZONE) SINGLEQ_STRING_LITERAL // https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT + | EXISTS expr // NOT EXISTS will be in `op=(NOT | ALL) expr` + | DOLLAR_DEC + | OPEN_PAREN select_stmt CLOSE_PAREN + ; + +// TODO: is this necessary. can we just encapsulate within expr's operator precedence? +bool_expr + : TRUE + | FALSE + | NOT bool_expr + | bool_expr AND bool_expr + | bool_expr OR bool_expr + ; + +case_expr + : CASE expr (WHEN expr THEN expr)+ (ELSE expr)? END + | CASE (WHEN predicate THEN expr)+ (ELSE expr)? END + ; + +expr_list + : OPEN_PAREN expr (COMMA expr)* CLOSE_PAREN + ; + +expr_list_list + : OPEN_PAREN? expr_list (COMMA expr_list)* CLOSE_PAREN? + ; + +func_sig_arg + : ((argmode=(IN|OUT|INOUT|VARIADIC))? (argname=identifier)? argtype=data_type)? + ; + +func_sig_arg_list + : func_sig_arg (COMMA func_sig_arg)* + ; + +func_sig + : name=identifier (OPEN_PAREN func_sig_arg_list CLOSE_PAREN)? + ; + +func_sig_list + : func_sig (COMMA func_sig)* + ; + +// TODO: rename prefix notation type casts +// Actual list on https://www.postgresql.org/docs/current/datatype.htm +type_name + : ABSTIME //obsolete, internal use only + | RELTIME //obsolete, internal use only + | BIGINT + | BIGSERIAL + | BIT (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | BIT_VARYING (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | BOOL + | BOOLEAN + | BOX + | BYTEA + | CHAR (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | CHARACTER (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | CHARACTER_VARYING (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | CIDR + | CIRCLE + | DATE + | DECIMAL (OPEN_PAREN INTEGER_LITERAL COMMA INTEGER_LITERAL CLOSE_PAREN)? + | DOUBLE PRECISION + | FLOAT4 + | FLOAT8 + | INET + | INT + | INT4 + | INT2 + | INT8 + | INTEGER + | INTERVAL FIELDS? (INTEGER_LITERAL)? + | JSON + | JSONB + | LINE + | LSEG + | MACADDR + | MACADDR8 + | MONEY + | NUMERIC (OPEN_PAREN INTEGER_LITERAL COMMA INTEGER_LITERAL CLOSE_PAREN)? + | PATH + | PG_LSN + | POINT + | POLYGON + | REAL + | SERIAL + | SERIAL2 + | SERIAL4 + | SERIAL8 + | SMALLINT + | SMALLSERIAL + | TEXT + | TIME (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? ((WITH|WITHOUT) TIME ZONE)? + | TIMESTAMP (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? ((WITH|WITHOUT) TIME ZONE)? + | TIMETZ (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | TIMESTAMPTZ (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | TSQUERY + | TSVECTOR + | TXID_SNAPSHOT + | UUID + | VARBIT (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | VARCHAR (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? + | XML + ; + +timezone + : SINGLEQ_STRING_LITERAL + | DOUBLEQ_STRING_LITERAL + | INTEGER_LITERAL + | NUMERIC_LITERAL + ; + +// TODO: what to do with this? +oper + : + | IS OF + | ALL + ; + +// TODO: explicit aggregate list or no? +// TODO: see test 27e55664.sql (create domain) for an example where a fn call isn't an aggregate +aggregate + : identifier OPEN_PAREN (ALL | DISTINCT)? expr (COMMA expr)* order_by_clause? CLOSE_PAREN + (FILTER OPEN_PAREN WHERE where_clause CLOSE_PAREN)? + | identifier OPEN_PAREN STAR CLOSE_PAREN (FILTER OPEN_PAREN WHERE where_clause CLOSE_PAREN)? + | identifier OPEN_PAREN (expr (COMMA expr)*)? CLOSE_PAREN WITHIN GROUP + OPEN_PAREN order_by_clause CLOSE_PAREN + (FILTER OPEN_PAREN WHERE where_clause CLOSE_PAREN)? + ; + +// TODO: rename aliases of [a-z]+_name to just name for clarity +name_ + : SINGLEQ_STRING_LITERAL + | identifier + ; + +name_list + : name_ (COMMA name_)* + ; + +identifier_list + : identifier (COMMA identifier)* + ; + +// TODD: should this be used outside +option_expr + : option_name=identifier (EQUAL value=param_value)? + ; + +option_list + : option_expr (COMMA option_expr)* + ; + +// TODO: remove +table_name_ + : identifier + ; + +// identifier used in create_domain_stmt as custom type +// Maybe need to add (OPEN_PAREN INTEGER_LITERAL CLOSE_PAREN)? after identifier for length of custom type +data_type + : (type_name|identifier) (OPEN_BRACKET INTEGER_LITERAL? CLOSE_BRACKET)* + ; + +data_type_list + : data_type (COMMA data_type)* + ; + +index_method + : builtin=(BTREE | HASH_ | GIST | SPGIST | GIN | BRIN) + | unknown=identifier + ; + +func_name + : identifier + ; + +func_call + : func_name OPEN_PAREN VARIADIC expr CLOSE_PAREN + | func_name OPEN_PAREN (expr (COMMA expr)* (COMMA VARIADIC expr)?)? CLOSE_PAREN + | func_name OPEN_PAREN todo_fill_in FROM expr (FOR expr)? CLOSE_PAREN + ; + +array_cons_expr + : ARRAY OPEN_BRACKET (expr (COMMA expr)*)? CLOSE_BRACKET + ; + +from_item + : ONLY? table_name_ STAR? with_column_alias? + (TABLESAMPLE todo_fill_in OPEN_PAREN expr (COMMA expr)* CLOSE_PAREN (REPEATABLE OPEN_PAREN todo_fill_in CLOSE_PAREN)?)? + | LATERAL? OPEN_PAREN stmt CLOSE_PAREN AS? alias (OPEN_PAREN column_alias (COMMA column_alias)* CLOSE_PAREN)? + | LATERAL? func_call (WITH ORDINALITY)? with_column_alias? + | LATERAL? func_call AS OPEN_PAREN column_definition (COMMA column_definition)* CLOSE_PAREN + | LATERAL? ROWS FROM OPEN_PAREN func_call CLOSE_PAREN + (AS OPEN_PAREN column_definition (COMMA column_definition)* CLOSE_PAREN)? CLOSE_PAREN + | from_item NATURAL? join_type OPEN_PAREN? from_item join_clause? CLOSE_PAREN? // TODO: fix 'left' being treated as an alias + ; + +with_column_alias + : AS? alias (column_alias (COMMA column_alias)*)? + | AS? alias OPEN_PAREN name_list CLOSE_PAREN + ; + +join_type + : INNER? JOIN + | LEFT OUTER? JOIN + | RIGHT OUTER? JOIN + | FULL OUTER? JOIN + | CROSS JOIN + ; + +join_clause + : ON predicate + | USING OPEN_PAREN column_name (COMMA column_name)* CLOSE_PAREN // TODO: consolidate column_name (,column_name *) into its own production + ; + +// TODO: fill in +// TODO: have explicity binary operator completion? +predicate + : expr + | expr oper expr + | OPEN_PAREN predicate CLOSE_PAREN + | predicate AND predicate + | predicate OR predicate + | NOT predicate + ; + +aggregate_signature + : STAR + // TODO: can we combine the two using the ? operator + | (argmode=(IN|VARIADIC))? (argname=identifier)? argtype=data_type_list + | ((argmode=(IN|VARIADIC))? (argname=identifier)? argtype=data_type_list) + ORDER BY (argmode=(IN|VARIADIC))? (argname=identifier)? argtype=data_type_list + ; + +column_constraint + : NOT NULL; + +column_constraints + : column_constraint+ + ; + +index_parameters + : (WITH OPEN_PAREN option_list CLOSE_PAREN)? (USING INDEX TABLESPACE tablespace=identifier)? + ; + +exclude_element + : (column_name_=identifier | OPEN_PAREN expr CLOSE_PAREN) (opclass=identifier)? (ASC | DESC)? (NULLS (FIRST | LAST))? + ; + +table_constraint + : (CONSTRAINT constraint_name=name_)? + ( (CHECK OPEN_PAREN expr CLOSE_PAREN (NO INHERIT)?) + | (UNIQUE OPEN_PAREN columns=identifier_list CLOSE_PAREN) + | (PRIMARY KEY OPEN_PAREN columns=identifier_list CLOSE_PAREN index_parameters) + | (EXCLUDE (USING index_method)? OPEN_PAREN exclude_element WITH operators=identifier_list CLOSE_PAREN index_parameters (WHERE OPEN_PAREN predicate CLOSE_PAREN))? + | (FOREIGN KEY OPEN_PAREN columns=identifier_list CLOSE_PAREN REFERENCES reftable=identifier (columns=identifier_list)? + (MATCH FULL | MATCH PARTIAL | MATCH_SIMPLE)? (ON DELETE action=identifier)? (ON UPDATE action=identifier)?) + ) + (NOT? DEFERABLE)? (INITIALLY (DEFERRED|IMMEDIATE))? + ; + +role_name + : name=name_ | CURRENT_USER | SESSION_USER | PUBLIC + ; + +role_name_list + : role_name (COMMA role_name)* + ; + +param_value + : ON | OFF | TRUE | FALSE | YES | NO | NONE + | SINGLEQ_STRING_LITERAL + | NUMERIC_LITERAL + | INTEGER_LITERAL + | identifier + ; + +// allow non-reserved keywords as identifiers +// TODO: is this necessary? +// easier to whitelist than blacklist +non_reserved_keyword + : A_ | ABORT | ABS | ABSOLUTE | ACCESS + | ACTION | ADA | ADD | ADMIN | AFTER + | AGGREGATE | ALLOCATE | ALSO | ALTER | ALWAYS | ANY + | ARE | ASENSITIVE | ASSERTION | ASSIGNMENT | AT + | ATOMIC | ATTRIBUTE | ATTRIBUTES | AVG | BACKWARD + | BEFORE | BEGIN | BERNOULLI | BETWEEN | BIGINT + | BIT | BIT_LENGTH | BLOB | BOOLEAN | BREADTH + | BY | C_ | CACHE | CALL | CALLED + | CARDINALITY | CASCADE | CASCADED | CATALOG | CATALOG_NAME + | CEIL | CEILING | CHAIN | CHAR | CHARACTER + | CHARACTERISTICS | CHARACTERS | CHARACTER_LENGTH | CHARACTER_SET_CATALOG | CHARACTER_SET_NAME + | CHARACTER_SET_SCHEMA | CHAR_LENGTH | CHECKPOINT | CLASS | CLASS_ORIGIN + | CLOB | CLOSE | CLUSTER | COALESCE | COBOL + | COLLATION_CATALOG | COLLATION_NAME | COLLATION_SCHEMA | COLLECT | COLUMN_NAME + | COMMAND_FUNCTION | COMMAND_FUNCTION_CODE | COMMENT | COMMIT | COMMITTED + | CONDITION | CONDITION_NUMBER | CONNECT | CONNECTION | CONNECTION_NAME + | CONSTRAINTS | CONSTRAINT_CATALOG | CONSTRAINT_NAME | CONSTRAINT_SCHEMA | CONSTRUCTOR + | CONTAINS | CONTINUE | CONVERSION | CONVERT | COPY + | CORR | CORRESPONDING | COUNT | COVAR_POP | COVAR_SAMP + | CSV | CUBE | CUME_DIST | CURRENT | CURRENT_DEFAULT_TRANSFORM_GROUP + | CURRENT_PATH | CURRENT_TRANSFORM_GROUP_FOR_TYPE | CURSOR | CURSOR_NAME | CYCLE + | DATA | DATABASE | DATE | DATETIME_INTERVAL_CODE | DATETIME_INTERVAL_PRECISION + | DAY | DEALLOCATE | DEC | DECIMAL | DECLARE + | DEFAULTS | DEFERRED | DEFINED | DEFINER | DEGREE + | DELETE | DELIMITER | DELIMITERS | DENSE_RANK | DEPTH + | DEREF | DERIVED | DESCRIBE | DESCRIPTOR | DETERMINISTIC + | DIAGNOSTICS | DICTIONARY | DISCONNECT | DISPATCH | DOMAIN + | DOUBLE | DYNAMIC | DYNAMIC_FUNCTION | DYNAMIC_FUNCTION_CODE + | EACH | ELEMENT | ENCODING | ENCRYPTED | END + | EQUALS | ESCAPE | EVERY | EXCEPTION | EXCLUDE + | EXCLUDING | EXCLUSIVE | EXEC | EXECUTE | EXISTS + | EXP | EXPLAIN | EXTENSION | EXTERNAL | EXTRACT | FILTER + | FINAL | FIRST | FLOAT | FLOOR | FOLLOWING + | FORCE | FORMAT | FORTRAN | FORWARD | FOUND | FREE + | FUNCTION | FUSION | G_ | GENERAL | GENERATED + | GET | GLOBAL | GO | GOTO | GREATEST | GRANTED + | GROUPING | HANDLER | HIERARCHY | HOLD | HOST | HOUR + | IDENTITY | IGNORE | IMMEDIATE | IMMUTABLE | IMPLEMENTATION + | IMPLICIT | INCLUDING | INCREMENT | INDEX | INDICATOR + | INHERITS | INOUT | INPUT | INSENSITIVE | INSERT + | INSTANCE | INSTANTIABLE | INSTEAD | INT | INTEGER + | INTERSECTION | INTERVAL | INVOKER | ISOLATION | K_ + | KEY | KEY_MEMBER | KEY_TYPE | LANGUAGE | LARGE + | LAST | LEAST | LEFT | LENGTH | LEVEL | LISTEN | LN + | LOAD | LOCAL | LOCATION | LOCATOR | LOCK + | LOCKED | LOWER | M_ | MAP | MATCH + | MATCHED | MAX | MAXVALUE | MEMBER | MERGE + | MESSAGE_LENGTH | MESSAGE_OCTET_LENGTH | MESSAGE_TEXT | METHOD | MIN + | MINUTE | MINVALUE | MOD | MODE | MODIFIES + | MODULE | MONTH | MORE_ | MOVE | MULTISET + | MUMPS | NAME | NAMES | NATIONAL | NCHAR + | NCLOB | NESTING | NEW | NEXT | NO + | NONE | NORMALIZE | NORMALIZED | NOTHING | NOTIFY + | NOWAIT | NULLABLE | NULLIF | NULLS | NUMBER + | NUMERIC | OBJECT | OCTETS | OCTET_LENGTH | OF + | OFF | OIDS | OLD | OPEN | OPERATOR + | OPTION | OPTIONS | ORDERING | ORDINALITY | OTHERS + | OUT | OUTPUT | OVER | OVERLAY | OVERRIDING + | OWNER | PAD | PARAMETER | PARAMETER_MODE | PARAMETER_NAME + | PARAMETER_ORDINAL_POSITION | PARAMETER_SPECIFIC_CATALOG | PARAMETER_SPECIFIC_NAME | PARAMETER_SPECIFIC_SCHEMA + | PARTIAL | PARTITION | PASCAL | PASSWORD | PATH + | PERCENTILE_CONT | PERCENTILE_DISC | PERCENT_RANK | PLAIN | PLI | POSITION + | POWER | PRECEDING | PRECISION | PREPARE | PRESERVE + | PRIOR | PRIVILEGES | PROCEDURAL | PROCEDURE | PUBLIC + | QUOTE | RANGE | RANK | READ | READS + | REAL | RECHECK | RECURSIVE | REF | REFERENCING | REFRESH + | REGR_AVGX | REGR_AVGY | REGR_COUNT | REGR_INTERCEPT | REGR_SLOPE + | REGR_SXX | REGR_SXY | REGR_SYY | REINDEX | RELATIVE + | RELEASE | RENAME | REPEATABLE | REPLACE | RESET + | RESTART | RESTRICT | RESULT | RETURN | RETURNED_CARDINALITY + | RETURNED_LENGTH | RETURNED_OCTET_LENGTH | RETURNED_SQLSTATE | RETURNS | REVOKE + | RIGHT | ROLE | ROLLBACK | ROLLUP | ROUTINE | ROUTINE_CATALOG + | ROUTINE_NAME | ROUTINE_SCHEMA | ROW | ROWS | ROW_COUNT + | ROW_NUMBER | RULE | SAVEPOINT | SCALE | SCHEMA + | SCHEMA_NAME | SCOPE | SCOPE_CATALOG | SCOPE_NAME | SCOPE_SCHEMA + | SCROLL | SEARCH | SECOND | SECTION | SECURITY + | SELF | SENSITIVE | SEQUENCE | SEQUENCES | SERIALIZABLE | SERVER_NAME + | SESSION | SET | SETOF | SETS | SHARE + | SHOW | SIMPLE | SIZE | SMALLINT | SOME | SOURCE + | SPACE | SPECIFIC | SPECIFICTYPE | SPECIFIC_NAME | SQL + | SQLCODE | SQLERROR | SQLEXCEPTION | SQLSTATE | SQLWARNING + | SQRT | STABLE | START | STATE | STATEMENT + | STATIC | STATISTICS | STDDEV_POP | STDDEV_SAMP | STDIN + | STDOUT | STORAGE | STRICT | STRUCTURE | STYLE + | SUBCLASS_ORIGIN | SUBMULTISET | SUBSTRING | SUM | SYSID + | SYSTEM | SYSTEM_USER | TABLESPACE | TABLE_NAME + | TEMP | TEMPLATE | TEMPORARY | TEXT | TIES | TIME + | TIMESTAMP | TIMEZONE_HOUR | TIMEZONE_MINUTE | TOP_LEVEL_COUNT | TRANSACTION + | TRANSACTIONS_COMMITTED | TRANSACTIONS_ROLLED_BACK | TRANSACTION_ACTIVE | TRANSFORM | TRANSFORMS + | TRANSLATE | TRANSLATION | TREAT | TRIGGER | TRIGGER_CATALOG + | TRIGGER_NAME | TRIGGER_SCHEMA | TRIM | TRUE | TRUNCATE | TRUSTED + | TYPE | UESCAPE | UNBOUNDED | UNCOMMITTED | UNDER + | UNENCRYPTED | UNKNOWN | UNLISTEN | UNNAMED | UNNEST + | UNTIL | UPDATE | UPPER | USAGE | USER_DEFINED_TYPE_CATALOG + | USER_DEFINED_TYPE_CODE | USER_DEFINED_TYPE_NAME | USER_DEFINED_TYPE_SCHEMA | VACUUM | VALID + | VALIDATOR | VALUE | VALUES | VARCHAR | VARYING + | VAR_POP | VAR_SAMP | VIEW | VOLATILE | WHENEVER + | WHITESPACE | WIDTH_BUCKET | WITHIN | WITHOUT | WORK + | WRITE | YEAR | ZONE + ; + +identifier + : non_reserved_keyword + | DOUBLEQ_STRING_LITERAL + | IDENTIFIER + | identifier DOT identifier + | type_name + | IDENTIFIER_UNICODE + ; + +todo_fill_in : . ; // TODO: Fill in with proper identification +todo_implement : identifier; +correlation_name : identifier; +// TODO: rename +column_name : identifier; +alias : identifier; +column_alias : identifier; +column_definition : identifier; +window_name : identifier; From 429eef7e1d9dec318be21f0c13d19d1d8e6a0461 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 24 Feb 2023 17:14:42 +0800 Subject: [PATCH 44/56] PostgreSQLHelper --- src/main/java/PostgreSQLLexer.tokens | 899 + src/main/java/PostgreSQLParser.tokens | 900 + .../sql/antlr4/pg/PostgreSQLLexer.java | 4087 ++ .../sql/antlr4/pg/PostgreSQLParser.java | 58927 ++++++++++++++++ .../pg/PostgreSQLParserBaseListener.java | 4819 ++ .../pg/PostgreSQLParserBaseVisitor.java | 2929 + .../antlr4/pg/PostgreSQLParserListener.java | 3720 + .../antlr4/pg/PostgreSQLParserVisitor.java | 2133 + .../com/github/bigdata/sql/parser/Data.kt | 12 +- .../bigdata/sql/parser/StatementType.kt | 1 + .../sql/parser/datax/reader/DBReader.kt | 21 +- .../sql/parser/datax/writer/S3Writer.kt | 2 +- .../bigdata/sql/parser/pg/PostgreSQLHelper.kt | 67 + 13 files changed, 78500 insertions(+), 17 deletions(-) create mode 100644 src/main/java/PostgreSQLLexer.tokens create mode 100644 src/main/java/PostgreSQLParser.tokens create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java create mode 100644 src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java create mode 100644 src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt diff --git a/src/main/java/PostgreSQLLexer.tokens b/src/main/java/PostgreSQLLexer.tokens new file mode 100644 index 0000000..476cae2 --- /dev/null +++ b/src/main/java/PostgreSQLLexer.tokens @@ -0,0 +1,899 @@ +WHITESPACE=1 +BLOCK_COMMENT=2 +LINE_COMMENT=3 +A_=4 +ABORT=5 +ABS=6 +ABSOLUTE=7 +ACCESS=8 +ACTION=9 +ADA=10 +ADD=11 +ADMIN=12 +AFTER=13 +AGGREGATE=14 +ALIAS=15 +ALL=16 +ALLOCATE=17 +ALSO=18 +ALTER=19 +ALWAYS=20 +ANALYSE=21 +ANALYZE=22 +AND=23 +ANY=24 +ARE=25 +ARRAY=26 +AS=27 +ASC=28 +ASENSITIVE=29 +ASSERTION=30 +ASSIGNMENT=31 +ASYMMETRIC=32 +AT=33 +ATOMIC=34 +ATTRIBUTE=35 +ATTRIBUTES=36 +AUTHORIZATION=37 +AVG=38 +BACKWARD=39 +BEFORE=40 +BEGIN=41 +BERNOULLI=42 +BETWEEN=43 +BIGINT=44 +BINARY=45 +BIT=46 +BIT_LENGTH=47 +BITVAR=48 +BLOB=49 +BOOLEAN=50 +BOTH=51 +BREADTH=52 +BUFFERS=53 +BY=54 +C_=55 +CACHE=56 +CALL=57 +CALLED=58 +CARDINALITY=59 +CASCADE=60 +CASCADED=61 +CASE=62 +CAST=63 +CATALOG=64 +CATALOG_NAME=65 +CEIL=66 +CEILING=67 +CHAIN=68 +CHAR=69 +CHAR_LENGTH=70 +CHARACTER=71 +CHARACTER_LENGTH=72 +CHARACTER_SET_CATALOG=73 +CHARACTER_SET_NAME=74 +CHARACTER_SET_SCHEMA=75 +CHARACTERISTICS=76 +CHARACTERS=77 +CHECK=78 +CHECKED=79 +CHECKPOINT=80 +CLASS=81 +CLASS_ORIGIN=82 +CLOB=83 +CLOSE=84 +CLUSTER=85 +COALESCE=86 +COBOL=87 +COLLATE=88 +COLLATION=89 +COLLATION_CATALOG=90 +COLLATION_NAME=91 +COLLATION_SCHEMA=92 +COLLECT=93 +COLUMN=94 +COLUMN_NAME=95 +COMMAND_FUNCTION=96 +COMMAND_FUNCTION_CODE=97 +COMMENT=98 +COMMIT=99 +COMMITTED=100 +COMPLETION=101 +CONDITION=102 +CONDITION_NUMBER=103 +CONFIGURATION=104 +CONFLICT=105 +CONNECT=106 +CONNECTION=107 +CONNECTION_NAME=108 +CONSTRAINT=109 +CONSTRAINT_CATALOG=110 +CONSTRAINT_NAME=111 +CONSTRAINT_SCHEMA=112 +CONSTRAINTS=113 +CONSTRUCTOR=114 +CONTAINS=115 +CONTINUE=116 +CONVERSION=117 +CONVERT=118 +COPY=119 +CORR=120 +CORRESPONDING=121 +COSTS=122 +COUNT=123 +COVAR_POP=124 +COVAR_SAMP=125 +CREATE=126 +CREATEDB=127 +CREATEUSER=128 +CROSS=129 +CSV=130 +CUBE=131 +CUME_DIST=132 +CURRENT=133 +CURRENT_DATE=134 +CURRENT_DEFAULT_TRANSFORM_GROUP=135 +CURRENT_PATH=136 +CURRENT_ROLE=137 +CURRENT_TIME=138 +CURRENT_TIMESTAMP=139 +CURRENT_TRANSFORM_GROUP_FOR_TYPE=140 +CURRENT_USER=141 +CURSOR=142 +CURSOR_NAME=143 +CYCLE=144 +DATA=145 +DATABASE=146 +DATE=147 +DATETIME_INTERVAL_CODE=148 +DATETIME_INTERVAL_PRECISION=149 +DAY=150 +DEALLOCATE=151 +DEC=152 +DECIMAL=153 +DECLARE=154 +DEFAULT=155 +DEFAULTS=156 +DEFERABLE=157 +DEFERRABLE=158 +DEFERRED=159 +DEFINED=160 +DEFINER=161 +DEGREE=162 +DELETE=163 +DELIMITER=164 +DELIMITERS=165 +DENSE_RANK=166 +DEPENDS=167 +DEPTH=168 +DEREF=169 +DERIVED=170 +DESC=171 +DESCRIBE=172 +DESCRIPTOR=173 +DESTROY=174 +DESTRUCTOR=175 +DETERMINISTIC=176 +DIAGNOSTICS=177 +DICTIONARY=178 +DISABLE=179 +DISABLE_PAGE_SKIPPING=180 +DISCARD=181 +DISCONNECT=182 +DISPATCH=183 +DISTINCT=184 +DO=185 +DOMAIN=186 +DOUBLE=187 +DROP=188 +DYNAMIC=189 +DYNAMIC_FUNCTION=190 +DYNAMIC_FUNCTION_CODE=191 +EACH=192 +ELEMENT=193 +ELSE=194 +ENABLE=195 +ENCODING=196 +ENCRYPTED=197 +END=198 +END_EXEC=199 +EQUALS=200 +ESCAPE=201 +EVERY=202 +EXCEPT=203 +EXCEPTION=204 +EXCLUDE=205 +EXCLUDING=206 +EXCLUSIVE=207 +EXEC=208 +EXECUTE=209 +EXISTING=210 +EXISTS=211 +EXP=212 +EXPLAIN=213 +EXTENDED=214 +EXTENSION=215 +EXTERNAL=216 +EXTRACT=217 +FALSE=218 +FETCH=219 +FIELDS=220 +FILTER=221 +FINAL=222 +FIRST=223 +FLOAT=224 +FLOOR=225 +FOLLOWING=226 +FOR=227 +FORCE=228 +FOREIGN=229 +FORMAT=230 +FORTRAN=231 +FORWARD=232 +FOUND=233 +FREE=234 +FREEZE=235 +FROM=236 +FULL=237 +FUNCTION=238 +FUSION=239 +G_=240 +GENERAL=241 +GENERATED=242 +GET=243 +GLOBAL=244 +GO=245 +GOTO=246 +GRANT=247 +GRANTED=248 +GREATEST=249 +GROUP=250 +GROUPING=251 +HANDLER=252 +HAVING=253 +HIERARCHY=254 +HOLD=255 +HOST=256 +HOUR=257 +IDENTITY=258 +IGNORE=259 +ILIKE=260 +IMMEDIATE=261 +IMMUTABLE=262 +IMPLEMENTATION=263 +IMPLICIT=264 +IN=265 +INCLUDING=266 +INCREMENT=267 +INDEX=268 +INDICATOR=269 +INFIX=270 +INHERITS=271 +INITIALIZE=272 +INITIALLY=273 +INNER=274 +INOUT=275 +INPUT=276 +INSENSITIVE=277 +INSERT=278 +INSTANCE=279 +INSTANTIABLE=280 +INSTEAD=281 +INT=282 +INTEGER=283 +INTERSECT=284 +INTERSECTION=285 +INTERVAL=286 +INTO=287 +INVOKER=288 +IS=289 +ISOLATION=290 +ITERATE=291 +JOIN=292 +K_=293 +KEY=294 +KEY_MEMBER=295 +KEY_TYPE=296 +LABEL=297 +LANCOMPILER=298 +LANGUAGE=299 +LARGE=300 +LAST=301 +LATERAL=302 +LEADING=303 +LEAST=304 +LEFT=305 +LENGTH=306 +LESS=307 +LEVEL=308 +LIKE=309 +LIMIT=310 +LISTEN=311 +LN=312 +LOAD=313 +LOCAL=314 +LOCALTIME=315 +LOCALTIMESTAMP=316 +LOCATION=317 +LOCATOR=318 +LOCK=319 +LOCKED=320 +LOWER=321 +M_=322 +MAIN=323 +MAP=324 +MAPPING=325 +MATCH=326 +MATCH_SIMPLE=327 +MATCHED=328 +MAX=329 +MAXVALUE=330 +MEMBER=331 +MERGE=332 +MESSAGE_LENGTH=333 +MESSAGE_OCTET_LENGTH=334 +MESSAGE_TEXT=335 +METHOD=336 +MIN=337 +MINUTE=338 +MINVALUE=339 +MOD=340 +MODE=341 +MODIFIES=342 +MODIFY=343 +MODULE=344 +MONTH=345 +MORE_=346 +MOVE=347 +MULTISET=348 +MUMPS=349 +NAME=350 +NAMES=351 +NATIONAL=352 +NATURAL=353 +NCHAR=354 +NCLOB=355 +NESTING=356 +NEW=357 +NEXT=358 +NO=359 +NOCREATEDB=360 +NOCREATEUSER=361 +NONE=362 +NORMALIZE=363 +NORMALIZED=364 +NOT=365 +NOTHING=366 +NOTIFY=367 +NOTNULL=368 +NOWAIT=369 +NULL=370 +NULLABLE=371 +NULLIF=372 +NULLS=373 +NUMBER=374 +NUMERIC=375 +OBJECT=376 +OCTET_LENGTH=377 +OCTETS=378 +OF=379 +OFF=380 +OFFSET=381 +OIDS=382 +OLD=383 +ON=384 +ONLY=385 +OPEN=386 +OPERATION=387 +OPERATOR=388 +OPTION=389 +OPTIONS=390 +OR=391 +ORDER=392 +ORDERING=393 +ORDINALITY=394 +OTHERS=395 +OUT=396 +OUTER=397 +OUTPUT=398 +OVER=399 +OVERLAPS=400 +OVERLAY=401 +OVERRIDING=402 +OWNER=403 +PAD=404 +PARAMETER=405 +PARAMETER_MODE=406 +PARAMETER_NAME=407 +PARAMETER_ORDINAL_POSITION=408 +PARAMETER_SPECIFIC_CATALOG=409 +PARAMETER_SPECIFIC_NAME=410 +PARAMETER_SPECIFIC_SCHEMA=411 +PARAMETERS=412 +PARSER=413 +PARTIAL=414 +PARTITION=415 +PASCAL=416 +PASSWORD=417 +PATH=418 +PERCENT_RANK=419 +PERCENTILE_CONT=420 +PERCENTILE_DISC=421 +PLACING=422 +PLAIN=423 +PLANS=424 +PLI=425 +POSITION=426 +POSTFIX=427 +POWER=428 +PRECEDING=429 +PRECISION=430 +PREFIX=431 +PREORDER=432 +PREPARE=433 +PREPARED=434 +PRESERVE=435 +PRIMARY=436 +PRIOR=437 +PRIVILEGES=438 +PROCEDURAL=439 +PROCEDURE=440 +PUBLIC=441 +PUBLICATION=442 +QUOTE=443 +RANGE=444 +RANK=445 +READ=446 +READS=447 +REAL=448 +REASSIGN=449 +RECHECK=450 +RECURSIVE=451 +REF=452 +REFERENCES=453 +REFERENCING=454 +REFRESH=455 +REGR_AVGX=456 +REGR_AVGY=457 +REGR_COUNT=458 +REGR_INTERCEPT=459 +REGR_R2=460 +REGR_SLOPE=461 +REGR_SXX=462 +REGR_SXY=463 +REGR_SYY=464 +REINDEX=465 +RELATIVE=466 +RELEASE=467 +RENAME=468 +REPEATABLE=469 +REPLACE=470 +REPLICA=471 +RESET=472 +RESTART=473 +RESTRICT=474 +RESULT=475 +RETURN=476 +RETURNED_CARDINALITY=477 +RETURNED_LENGTH=478 +RETURNED_OCTET_LENGTH=479 +RETURNED_SQLSTATE=480 +RETURNING=481 +RETURNS=482 +REVOKE=483 +RIGHT=484 +ROLE=485 +ROLLBACK=486 +ROLLUP=487 +ROUTINE=488 +ROUTINE_CATALOG=489 +ROUTINE_NAME=490 +ROUTINE_SCHEMA=491 +ROW=492 +ROW_COUNT=493 +ROW_NUMBER=494 +ROWS=495 +RULE=496 +SAVEPOINT=497 +SCALE=498 +SCHEMA=499 +SCHEMA_NAME=500 +SCOPE=501 +SCOPE_CATALOG=502 +SCOPE_NAME=503 +SCOPE_SCHEMA=504 +SCROLL=505 +SEARCH=506 +SECOND=507 +SECTION=508 +SECURITY=509 +SELECT=510 +SELF=511 +SENSITIVE=512 +SEQUENCE=513 +SEQUENCES=514 +SERIALIZABLE=515 +SERVER_NAME=516 +SESSION=517 +SESSION_USER=518 +SET=519 +SETOF=520 +SETS=521 +SHARE=522 +SHOW=523 +SIMILAR=524 +SIMPLE=525 +SIZE=526 +SKIP_=527 +SMALLINT=528 +SNAPSHOT=529 +SOME=530 +SOURCE=531 +SPACE=532 +SPECIFIC=533 +SPECIFIC_NAME=534 +SPECIFICTYPE=535 +SQL=536 +SQLCODE=537 +SQLERROR=538 +SQLEXCEPTION=539 +SQLSTATE=540 +SQLWARNING=541 +SQRT=542 +STABLE=543 +START=544 +STATE=545 +STATEMENT=546 +STATIC=547 +STATISTICS=548 +STDDEV_POP=549 +STDDEV_SAMP=550 +STDIN=551 +STDOUT=552 +STORAGE=553 +STRICT=554 +STRUCTURE=555 +STYLE=556 +SUBCLASS_ORIGIN=557 +SUBLIST=558 +SUBMULTISET=559 +SUBSCRIPTION=560 +SUBSTRING=561 +SUM=562 +SYMMETRIC=563 +SYSID=564 +SYSTEM=565 +SYSTEM_USER=566 +TABLE=567 +TABLE_NAME=568 +TABLESAMPLE=569 +TABLESPACE=570 +TEMP=571 +TEMPLATE=572 +TEMPORARY=573 +TERMINATE=574 +THAN=575 +THEN=576 +TIES=577 +TIME=578 +TIMESTAMP=579 +TIMEZONE_HOUR=580 +TIMEZONE_MINUTE=581 +TIMING=582 +TO=583 +TOAST=584 +TOP_LEVEL_COUNT=585 +TRAILING=586 +TRANSACTION=587 +TRANSACTION_ACTIVE=588 +TRANSACTIONS_COMMITTED=589 +TRANSACTIONS_ROLLED_BACK=590 +TRANSFORM=591 +TRANSFORMS=592 +TRANSLATE=593 +TRANSLATION=594 +TREAT=595 +TRIGGER=596 +TRIGGER_CATALOG=597 +TRIGGER_NAME=598 +TRIGGER_SCHEMA=599 +TRIM=600 +TRUE=601 +TRUNCATE=602 +TRUSTED=603 +TYPE=604 +UESCAPE=605 +UNBOUNDED=606 +UNCOMMITTED=607 +UNDER=608 +UNENCRYPTED=609 +UNION=610 +UNIQUE=611 +UNKNOWN=612 +UNLISTEN=613 +UNNAMED=614 +UNNEST=615 +UNTIL=616 +UPDATE=617 +UPPER=618 +USAGE=619 +USER=620 +USER_DEFINED_TYPE_CATALOG=621 +USER_DEFINED_TYPE_CODE=622 +USER_DEFINED_TYPE_NAME=623 +USER_DEFINED_TYPE_SCHEMA=624 +USING=625 +VACUUM=626 +VALID=627 +VALIDATE=628 +VALIDATOR=629 +VALUE=630 +VALUES=631 +VAR_POP=632 +VAR_SAMP=633 +VARCHAR=634 +VARIABLE=635 +VARIADIC=636 +VARYING=637 +VERBOSE=638 +VIEW=639 +VOLATILE=640 +WHEN=641 +WHENEVER=642 +WHERE=643 +WIDTH_BUCKET=644 +WINDOW=645 +WITH=646 +WITHIN=647 +WITHOUT=648 +WORK=649 +WRITE=650 +YAML=651 +YEAR=652 +YES=653 +ZONE=654 +SUPERUSER=655 +NOSUPERUSER=656 +CREATEROLE=657 +NOCREATEROLE=658 +INHERIT=659 +NOINHERIT=660 +LOGIN=661 +NOLOGIN=662 +REPLICATION=663 +NOREPLICATION=664 +BYPASSRLS=665 +NOBYPASSRLS=666 +SFUNC=667 +STYPE=668 +SSPACE=669 +FINALFUNC=670 +FINALFUNC_EXTRA=671 +COMBINEFUNC=672 +SERIALFUNC=673 +DESERIALFUNC=674 +INITCOND=675 +MSFUNC=676 +MINVFUNC=677 +MSTYPE=678 +MSSPACE=679 +MFINALFUNC=680 +MFINALFUNC_EXTRA=681 +MINITCOND=682 +SORTOP=683 +PARALLEL=684 +HYPOTHETICAL=685 +SAFE=686 +RESTRICTED=687 +UNSAFE=688 +BASETYPE=689 +IF=690 +LOCALE=691 +LC_COLLATE=692 +LC_CTYPE=693 +PROVIDER=694 +VERSION=695 +ALLOW_CONNECTIONS=696 +IS_TEMPLATE=697 +EVENT=698 +WRAPPER=699 +SERVER=700 +BTREE=701 +HASH_=702 +GIST=703 +SPGIST=704 +GIN=705 +BRIN=706 +CONCURRENTLY=707 +INLINE=708 +MATERIALIZED=709 +LEFTARG=710 +RIGHTARG=711 +COMMUTATOR=712 +NEGATOR=713 +HASHES=714 +MERGES=715 +FAMILY=716 +POLICY=717 +OWNED=718 +ABSTIME=719 +BIGSERIAL=720 +BIT_VARYING=721 +BOOL=722 +BOX=723 +BYTEA=724 +CHARACTER_VARYING=725 +CIDR=726 +CIRCLE=727 +FLOAT4=728 +FLOAT8=729 +INET=730 +INT2=731 +INT4=732 +INT8=733 +JSON=734 +JSONB=735 +LINE=736 +LSEG=737 +MACADDR=738 +MACADDR8=739 +MONEY=740 +PG_LSN=741 +POINT=742 +POLYGON=743 +RELTIME=744 +SERIAL=745 +SERIAL2=746 +SERIAL4=747 +SERIAL8=748 +SMALLSERIAL=749 +STSTEM=750 +TEXT=751 +TIMESTAMPTZ=752 +TIMETZ=753 +TSQUERY=754 +TSVECTOR=755 +TXID_SNAPSHOT=756 +UUID=757 +VARBIT=758 +XML=759 +COMMA=760 +COLON=761 +COLON_COLON=762 +DOLLAR=763 +DOLLAR_DOLLAR=764 +STAR=765 +OPEN_PAREN=766 +CLOSE_PAREN=767 +OPEN_BRACKET=768 +CLOSE_BRACKET=769 +BIT_STRING=770 +REGEX_STRING=771 +NUMERIC_LITERAL=772 +INTEGER_LITERAL=773 +HEX_INTEGER_LITERAL=774 +DOT=775 +SINGLEQ_STRING_LITERAL=776 +DOUBLEQ_STRING_LITERAL=777 +IDENTIFIER=778 +DOLLAR_DEC=779 +IDENTIFIER_UNICODE=780 +AMP=781 +AMP_AMP=782 +AMP_LT=783 +AT_AT=784 +AT_GT=785 +AT_SIGN=786 +BANG=787 +BANG_BANG=788 +BANG_EQUAL=789 +CARET=790 +EQUAL=791 +EQUAL_GT=792 +GT=793 +GTE=794 +GT_GT=795 +HASH=796 +HASH_EQ=797 +HASH_GT=798 +HASH_GT_GT=799 +HASH_HASH=800 +HYPHEN_GT=801 +HYPHEN_GT_GT=802 +HYPHEN_PIPE_HYPHEN=803 +LT=804 +LTE=805 +LT_AT=806 +LT_CARET=807 +LT_GT=808 +LT_HYPHEN_GT=809 +LT_LT=810 +LT_LT_EQ=811 +LT_QMARK_GT=812 +MINUS=813 +PERCENT=814 +PIPE=815 +PIPE_PIPE=816 +PIPE_PIPE_SLASH=817 +PIPE_SLASH=818 +PLUS=819 +QMARK=820 +QMARK_AMP=821 +QMARK_HASH=822 +QMARK_HYPHEN=823 +QMARK_PIPE=824 +SLASH=825 +TIL=826 +TIL_EQ=827 +TIL_GTE_TIL=828 +TIL_GT_TIL=829 +TIL_LTE_TIL=830 +TIL_LT_TIL=831 +TIL_STAR=832 +TIL_TIL=833 +SEMI=834 +','=760 +':'=761 +'::'=762 +'$'=763 +'$$'=764 +'*'=765 +'('=766 +')'=767 +'['=768 +']'=769 +'.'=775 +'&'=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 diff --git a/src/main/java/PostgreSQLParser.tokens b/src/main/java/PostgreSQLParser.tokens new file mode 100644 index 0000000..26ad625 --- /dev/null +++ b/src/main/java/PostgreSQLParser.tokens @@ -0,0 +1,900 @@ +WHITESPACE=1 +BLOCK_COMMENT=2 +LINE_COMMENT=3 +A_=4 +ABORT=5 +ABS=6 +ABSOLUTE=7 +ACCESS=8 +ACTION=9 +ADA=10 +ADD=11 +ADMIN=12 +AFTER=13 +AGGREGATE=14 +ALIAS=15 +ALL=16 +ALLOCATE=17 +ALSO=18 +ALTER=19 +ALWAYS=20 +ANALYSE=21 +ANALYZE=22 +AND=23 +ANY=24 +ARE=25 +ARRAY=26 +AS=27 +ASC=28 +ASENSITIVE=29 +ASSERTION=30 +ASSIGNMENT=31 +ASYMMETRIC=32 +AT=33 +ATOMIC=34 +ATTRIBUTE=35 +ATTRIBUTES=36 +AUTHORIZATION=37 +AVG=38 +BACKWARD=39 +BEFORE=40 +BEGIN=41 +BERNOULLI=42 +BETWEEN=43 +BIGINT=44 +BINARY=45 +BIT=46 +BIT_LENGTH=47 +BITVAR=48 +BLOB=49 +BOOLEAN=50 +BOTH=51 +BREADTH=52 +BUFFERS=53 +BY=54 +C_=55 +CACHE=56 +CALL=57 +CALLED=58 +CARDINALITY=59 +CASCADE=60 +CASCADED=61 +CASE=62 +CAST=63 +CATALOG=64 +CATALOG_NAME=65 +CEIL=66 +CEILING=67 +CHAIN=68 +CHAR=69 +CHAR_LENGTH=70 +CHARACTER=71 +CHARACTER_LENGTH=72 +CHARACTER_SET_CATALOG=73 +CHARACTER_SET_NAME=74 +CHARACTER_SET_SCHEMA=75 +CHARACTERISTICS=76 +CHARACTERS=77 +CHECK=78 +CHECKED=79 +CHECKPOINT=80 +CLASS=81 +CLASS_ORIGIN=82 +CLOB=83 +CLOSE=84 +CLUSTER=85 +COALESCE=86 +COBOL=87 +COLLATE=88 +COLLATION=89 +COLLATION_CATALOG=90 +COLLATION_NAME=91 +COLLATION_SCHEMA=92 +COLLECT=93 +COLUMN=94 +COLUMN_NAME=95 +COMMAND_FUNCTION=96 +COMMAND_FUNCTION_CODE=97 +COMMENT=98 +COMMIT=99 +COMMITTED=100 +COMPLETION=101 +CONDITION=102 +CONDITION_NUMBER=103 +CONFIGURATION=104 +CONFLICT=105 +CONNECT=106 +CONNECTION=107 +CONNECTION_NAME=108 +CONSTRAINT=109 +CONSTRAINT_CATALOG=110 +CONSTRAINT_NAME=111 +CONSTRAINT_SCHEMA=112 +CONSTRAINTS=113 +CONSTRUCTOR=114 +CONTAINS=115 +CONTINUE=116 +CONVERSION=117 +CONVERT=118 +COPY=119 +CORR=120 +CORRESPONDING=121 +COSTS=122 +COUNT=123 +COVAR_POP=124 +COVAR_SAMP=125 +CREATE=126 +CREATEDB=127 +CREATEUSER=128 +CROSS=129 +CSV=130 +CUBE=131 +CUME_DIST=132 +CURRENT=133 +CURRENT_DATE=134 +CURRENT_DEFAULT_TRANSFORM_GROUP=135 +CURRENT_PATH=136 +CURRENT_ROLE=137 +CURRENT_TIME=138 +CURRENT_TIMESTAMP=139 +CURRENT_TRANSFORM_GROUP_FOR_TYPE=140 +CURRENT_USER=141 +CURSOR=142 +CURSOR_NAME=143 +CYCLE=144 +DATA=145 +DATABASE=146 +DATE=147 +DATETIME_INTERVAL_CODE=148 +DATETIME_INTERVAL_PRECISION=149 +DAY=150 +DEALLOCATE=151 +DEC=152 +DECIMAL=153 +DECLARE=154 +DEFAULT=155 +DEFAULTS=156 +DEFERABLE=157 +DEFERRABLE=158 +DEFERRED=159 +DEFINED=160 +DEFINER=161 +DEGREE=162 +DELETE=163 +DELIMITER=164 +DELIMITERS=165 +DENSE_RANK=166 +DEPENDS=167 +DEPTH=168 +DEREF=169 +DERIVED=170 +DESC=171 +DESCRIBE=172 +DESCRIPTOR=173 +DESTROY=174 +DESTRUCTOR=175 +DETERMINISTIC=176 +DIAGNOSTICS=177 +DICTIONARY=178 +DISABLE=179 +DISABLE_PAGE_SKIPPING=180 +DISCARD=181 +DISCONNECT=182 +DISPATCH=183 +DISTINCT=184 +DO=185 +DOMAIN=186 +DOUBLE=187 +DROP=188 +DYNAMIC=189 +DYNAMIC_FUNCTION=190 +DYNAMIC_FUNCTION_CODE=191 +EACH=192 +ELEMENT=193 +ELSE=194 +ENABLE=195 +ENCODING=196 +ENCRYPTED=197 +END=198 +END_EXEC=199 +EQUALS=200 +ESCAPE=201 +EVERY=202 +EXCEPT=203 +EXCEPTION=204 +EXCLUDE=205 +EXCLUDING=206 +EXCLUSIVE=207 +EXEC=208 +EXECUTE=209 +EXISTING=210 +EXISTS=211 +EXP=212 +EXPLAIN=213 +EXTENDED=214 +EXTENSION=215 +EXTERNAL=216 +EXTRACT=217 +FALSE=218 +FETCH=219 +FIELDS=220 +FILTER=221 +FINAL=222 +FIRST=223 +FLOAT=224 +FLOOR=225 +FOLLOWING=226 +FOR=227 +FORCE=228 +FOREIGN=229 +FORMAT=230 +FORTRAN=231 +FORWARD=232 +FOUND=233 +FREE=234 +FREEZE=235 +FROM=236 +FULL=237 +FUNCTION=238 +FUSION=239 +G_=240 +GENERAL=241 +GENERATED=242 +GET=243 +GLOBAL=244 +GO=245 +GOTO=246 +GRANT=247 +GRANTED=248 +GREATEST=249 +GROUP=250 +GROUPING=251 +HANDLER=252 +HAVING=253 +HIERARCHY=254 +HOLD=255 +HOST=256 +HOUR=257 +IDENTITY=258 +IGNORE=259 +ILIKE=260 +IMMEDIATE=261 +IMMUTABLE=262 +IMPLEMENTATION=263 +IMPLICIT=264 +IN=265 +INCLUDING=266 +INCREMENT=267 +INDEX=268 +INDICATOR=269 +INFIX=270 +INHERITS=271 +INITIALIZE=272 +INITIALLY=273 +INNER=274 +INOUT=275 +INPUT=276 +INSENSITIVE=277 +INSERT=278 +INSTANCE=279 +INSTANTIABLE=280 +INSTEAD=281 +INT=282 +INTEGER=283 +INTERSECT=284 +INTERSECTION=285 +INTERVAL=286 +INTO=287 +INVOKER=288 +IS=289 +ISOLATION=290 +ITERATE=291 +JOIN=292 +K_=293 +KEY=294 +KEY_MEMBER=295 +KEY_TYPE=296 +LABEL=297 +LANCOMPILER=298 +LANGUAGE=299 +LARGE=300 +LAST=301 +LATERAL=302 +LEADING=303 +LEAST=304 +LEFT=305 +LENGTH=306 +LESS=307 +LEVEL=308 +LIKE=309 +LIMIT=310 +LISTEN=311 +LN=312 +LOAD=313 +LOCAL=314 +LOCALTIME=315 +LOCALTIMESTAMP=316 +LOCATION=317 +LOCATOR=318 +LOCK=319 +LOCKED=320 +LOWER=321 +M_=322 +MAIN=323 +MAP=324 +MAPPING=325 +MATCH=326 +MATCH_SIMPLE=327 +MATCHED=328 +MAX=329 +MAXVALUE=330 +MEMBER=331 +MERGE=332 +MESSAGE_LENGTH=333 +MESSAGE_OCTET_LENGTH=334 +MESSAGE_TEXT=335 +METHOD=336 +MIN=337 +MINUTE=338 +MINVALUE=339 +MOD=340 +MODE=341 +MODIFIES=342 +MODIFY=343 +MODULE=344 +MONTH=345 +MORE_=346 +MOVE=347 +MULTISET=348 +MUMPS=349 +NAME=350 +NAMES=351 +NATIONAL=352 +NATURAL=353 +NCHAR=354 +NCLOB=355 +NESTING=356 +NEW=357 +NEXT=358 +NO=359 +NOCREATEDB=360 +NOCREATEUSER=361 +NONE=362 +NORMALIZE=363 +NORMALIZED=364 +NOT=365 +NOTHING=366 +NOTIFY=367 +NOTNULL=368 +NOWAIT=369 +NULL=370 +NULLABLE=371 +NULLIF=372 +NULLS=373 +NUMBER=374 +NUMERIC=375 +OBJECT=376 +OCTET_LENGTH=377 +OCTETS=378 +OF=379 +OFF=380 +OFFSET=381 +OIDS=382 +OLD=383 +ON=384 +ONLY=385 +OPEN=386 +OPERATION=387 +OPERATOR=388 +OPTION=389 +OPTIONS=390 +OR=391 +ORDER=392 +ORDERING=393 +ORDINALITY=394 +OTHERS=395 +OUT=396 +OUTER=397 +OUTPUT=398 +OVER=399 +OVERLAPS=400 +OVERLAY=401 +OVERRIDING=402 +OWNER=403 +PAD=404 +PARAMETER=405 +PARAMETER_MODE=406 +PARAMETER_NAME=407 +PARAMETER_ORDINAL_POSITION=408 +PARAMETER_SPECIFIC_CATALOG=409 +PARAMETER_SPECIFIC_NAME=410 +PARAMETER_SPECIFIC_SCHEMA=411 +PARAMETERS=412 +PARSER=413 +PARTIAL=414 +PARTITION=415 +PASCAL=416 +PASSWORD=417 +PATH=418 +PERCENT_RANK=419 +PERCENTILE_CONT=420 +PERCENTILE_DISC=421 +PLACING=422 +PLAIN=423 +PLANS=424 +PLI=425 +POSITION=426 +POSTFIX=427 +POWER=428 +PRECEDING=429 +PRECISION=430 +PREFIX=431 +PREORDER=432 +PREPARE=433 +PREPARED=434 +PRESERVE=435 +PRIMARY=436 +PRIOR=437 +PRIVILEGES=438 +PROCEDURAL=439 +PROCEDURE=440 +PUBLIC=441 +PUBLICATION=442 +QUOTE=443 +RANGE=444 +RANK=445 +READ=446 +READS=447 +REAL=448 +REASSIGN=449 +RECHECK=450 +RECURSIVE=451 +REF=452 +REFERENCES=453 +REFERENCING=454 +REFRESH=455 +REGR_AVGX=456 +REGR_AVGY=457 +REGR_COUNT=458 +REGR_INTERCEPT=459 +REGR_R2=460 +REGR_SLOPE=461 +REGR_SXX=462 +REGR_SXY=463 +REGR_SYY=464 +REINDEX=465 +RELATIVE=466 +RELEASE=467 +RENAME=468 +REPEATABLE=469 +REPLACE=470 +REPLICA=471 +RESET=472 +RESTART=473 +RESTRICT=474 +RESULT=475 +RETURN=476 +RETURNED_CARDINALITY=477 +RETURNED_LENGTH=478 +RETURNED_OCTET_LENGTH=479 +RETURNED_SQLSTATE=480 +RETURNING=481 +RETURNS=482 +REVOKE=483 +RIGHT=484 +ROLE=485 +ROLLBACK=486 +ROLLUP=487 +ROUTINE=488 +ROUTINE_CATALOG=489 +ROUTINE_NAME=490 +ROUTINE_SCHEMA=491 +ROW=492 +ROW_COUNT=493 +ROW_NUMBER=494 +ROWS=495 +RULE=496 +SAVEPOINT=497 +SCALE=498 +SCHEMA=499 +SCHEMA_NAME=500 +SCOPE=501 +SCOPE_CATALOG=502 +SCOPE_NAME=503 +SCOPE_SCHEMA=504 +SCROLL=505 +SEARCH=506 +SECOND=507 +SECTION=508 +SECURITY=509 +SELECT=510 +SELF=511 +SENSITIVE=512 +SEQUENCE=513 +SEQUENCES=514 +SERIALIZABLE=515 +SERVER_NAME=516 +SESSION=517 +SESSION_USER=518 +SET=519 +SETOF=520 +SETS=521 +SHARE=522 +SHOW=523 +SIMILAR=524 +SIMPLE=525 +SIZE=526 +SKIP_=527 +SMALLINT=528 +SNAPSHOT=529 +SOME=530 +SOURCE=531 +SPACE=532 +SPECIFIC=533 +SPECIFIC_NAME=534 +SPECIFICTYPE=535 +SQL=536 +SQLCODE=537 +SQLERROR=538 +SQLEXCEPTION=539 +SQLSTATE=540 +SQLWARNING=541 +SQRT=542 +STABLE=543 +START=544 +STATE=545 +STATEMENT=546 +STATIC=547 +STATISTICS=548 +STDDEV_POP=549 +STDDEV_SAMP=550 +STDIN=551 +STDOUT=552 +STORAGE=553 +STRICT=554 +STRUCTURE=555 +STYLE=556 +SUBCLASS_ORIGIN=557 +SUBLIST=558 +SUBMULTISET=559 +SUBSCRIPTION=560 +SUBSTRING=561 +SUM=562 +SYMMETRIC=563 +SYSID=564 +SYSTEM=565 +SYSTEM_USER=566 +TABLE=567 +TABLE_NAME=568 +TABLESAMPLE=569 +TABLESPACE=570 +TEMP=571 +TEMPLATE=572 +TEMPORARY=573 +TERMINATE=574 +THAN=575 +THEN=576 +TIES=577 +TIME=578 +TIMESTAMP=579 +TIMEZONE_HOUR=580 +TIMEZONE_MINUTE=581 +TIMING=582 +TO=583 +TOAST=584 +TOP_LEVEL_COUNT=585 +TRAILING=586 +TRANSACTION=587 +TRANSACTION_ACTIVE=588 +TRANSACTIONS_COMMITTED=589 +TRANSACTIONS_ROLLED_BACK=590 +TRANSFORM=591 +TRANSFORMS=592 +TRANSLATE=593 +TRANSLATION=594 +TREAT=595 +TRIGGER=596 +TRIGGER_CATALOG=597 +TRIGGER_NAME=598 +TRIGGER_SCHEMA=599 +TRIM=600 +TRUE=601 +TRUNCATE=602 +TRUSTED=603 +TYPE=604 +UESCAPE=605 +UNBOUNDED=606 +UNCOMMITTED=607 +UNDER=608 +UNENCRYPTED=609 +UNION=610 +UNIQUE=611 +UNKNOWN=612 +UNLISTEN=613 +UNNAMED=614 +UNNEST=615 +UNTIL=616 +UPDATE=617 +UPPER=618 +USAGE=619 +USER=620 +USER_DEFINED_TYPE_CATALOG=621 +USER_DEFINED_TYPE_CODE=622 +USER_DEFINED_TYPE_NAME=623 +USER_DEFINED_TYPE_SCHEMA=624 +USING=625 +VACUUM=626 +VALID=627 +VALIDATE=628 +VALIDATOR=629 +VALUE=630 +VALUES=631 +VAR_POP=632 +VAR_SAMP=633 +VARCHAR=634 +VARIABLE=635 +VARIADIC=636 +VARYING=637 +VERBOSE=638 +VIEW=639 +VOLATILE=640 +WHEN=641 +WHENEVER=642 +WHERE=643 +WIDTH_BUCKET=644 +WINDOW=645 +WITH=646 +WITHIN=647 +WITHOUT=648 +WORK=649 +WRITE=650 +YAML=651 +YEAR=652 +YES=653 +ZONE=654 +SUPERUSER=655 +NOSUPERUSER=656 +CREATEROLE=657 +NOCREATEROLE=658 +INHERIT=659 +NOINHERIT=660 +LOGIN=661 +NOLOGIN=662 +REPLICATION=663 +NOREPLICATION=664 +BYPASSRLS=665 +NOBYPASSRLS=666 +SFUNC=667 +STYPE=668 +SSPACE=669 +FINALFUNC=670 +FINALFUNC_EXTRA=671 +COMBINEFUNC=672 +SERIALFUNC=673 +DESERIALFUNC=674 +INITCOND=675 +MSFUNC=676 +MINVFUNC=677 +MSTYPE=678 +MSSPACE=679 +MFINALFUNC=680 +MFINALFUNC_EXTRA=681 +MINITCOND=682 +SORTOP=683 +PARALLEL=684 +HYPOTHETICAL=685 +SAFE=686 +RESTRICTED=687 +UNSAFE=688 +BASETYPE=689 +IF=690 +LOCALE=691 +LC_COLLATE=692 +LC_CTYPE=693 +PROVIDER=694 +VERSION=695 +ALLOW_CONNECTIONS=696 +IS_TEMPLATE=697 +EVENT=698 +WRAPPER=699 +SERVER=700 +BTREE=701 +HASH_=702 +GIST=703 +SPGIST=704 +GIN=705 +BRIN=706 +CONCURRENTLY=707 +INLINE=708 +MATERIALIZED=709 +LEFTARG=710 +RIGHTARG=711 +COMMUTATOR=712 +NEGATOR=713 +HASHES=714 +MERGES=715 +FAMILY=716 +POLICY=717 +OWNED=718 +ABSTIME=719 +BIGSERIAL=720 +BIT_VARYING=721 +BOOL=722 +BOX=723 +BYTEA=724 +CHARACTER_VARYING=725 +CIDR=726 +CIRCLE=727 +FLOAT4=728 +FLOAT8=729 +INET=730 +INT2=731 +INT4=732 +INT8=733 +JSON=734 +JSONB=735 +LINE=736 +LSEG=737 +MACADDR=738 +MACADDR8=739 +MONEY=740 +PG_LSN=741 +POINT=742 +POLYGON=743 +RELTIME=744 +SERIAL=745 +SERIAL2=746 +SERIAL4=747 +SERIAL8=748 +SMALLSERIAL=749 +STSTEM=750 +TEXT=751 +TIMESTAMPTZ=752 +TIMETZ=753 +TSQUERY=754 +TSVECTOR=755 +TXID_SNAPSHOT=756 +UUID=757 +VARBIT=758 +XML=759 +COMMA=760 +COLON=761 +COLON_COLON=762 +DOLLAR=763 +DOLLAR_DOLLAR=764 +STAR=765 +OPEN_PAREN=766 +CLOSE_PAREN=767 +OPEN_BRACKET=768 +CLOSE_BRACKET=769 +BIT_STRING=770 +REGEX_STRING=771 +NUMERIC_LITERAL=772 +INTEGER_LITERAL=773 +HEX_INTEGER_LITERAL=774 +DOT=775 +SINGLEQ_STRING_LITERAL=776 +DOUBLEQ_STRING_LITERAL=777 +IDENTIFIER=778 +DOLLAR_DEC=779 +IDENTIFIER_UNICODE=780 +AMP=781 +AMP_AMP=782 +AMP_LT=783 +AT_AT=784 +AT_GT=785 +AT_SIGN=786 +BANG=787 +BANG_BANG=788 +BANG_EQUAL=789 +CARET=790 +EQUAL=791 +EQUAL_GT=792 +GT=793 +GTE=794 +GT_GT=795 +HASH=796 +HASH_EQ=797 +HASH_GT=798 +HASH_GT_GT=799 +HASH_HASH=800 +HYPHEN_GT=801 +HYPHEN_GT_GT=802 +HYPHEN_PIPE_HYPHEN=803 +LT=804 +LTE=805 +LT_AT=806 +LT_CARET=807 +LT_GT=808 +LT_HYPHEN_GT=809 +LT_LT=810 +LT_LT_EQ=811 +LT_QMARK_GT=812 +MINUS=813 +PERCENT=814 +PIPE=815 +PIPE_PIPE=816 +PIPE_PIPE_SLASH=817 +PIPE_SLASH=818 +PLUS=819 +QMARK=820 +QMARK_AMP=821 +QMARK_HASH=822 +QMARK_HYPHEN=823 +QMARK_PIPE=824 +SLASH=825 +TIL=826 +TIL_EQ=827 +TIL_GTE_TIL=828 +TIL_GT_TIL=829 +TIL_LTE_TIL=830 +TIL_LT_TIL=831 +TIL_STAR=832 +TIL_TIL=833 +SEMI=834 +UNLOGGED=835 +','=760 +':'=761 +'::'=762 +'$'=763 +'$$'=764 +'*'=765 +'('=766 +')'=767 +'['=768 +']'=769 +'.'=775 +'&'=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 diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java new file mode 100644 index 0000000..71776b0 --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java @@ -0,0 +1,4087 @@ +// Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.pg; + +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.ATN; +import org.antlr.v4.runtime.atn.ATNDeserializer; +import org.antlr.v4.runtime.atn.LexerATNSimulator; +import org.antlr.v4.runtime.atn.PredictionContextCache; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.Utils; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class PostgreSQLLexer extends Lexer { + static { + RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); + } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + WHITESPACE = 1, BLOCK_COMMENT = 2, LINE_COMMENT = 3, A_ = 4, ABORT = 5, ABS = 6, ABSOLUTE = 7, + ACCESS = 8, ACTION = 9, ADA = 10, ADD = 11, ADMIN = 12, AFTER = 13, AGGREGATE = 14, + ALIAS = 15, ALL = 16, ALLOCATE = 17, ALSO = 18, ALTER = 19, ALWAYS = 20, ANALYSE = 21, + ANALYZE = 22, AND = 23, ANY = 24, ARE = 25, ARRAY = 26, AS = 27, ASC = 28, ASENSITIVE = 29, + ASSERTION = 30, ASSIGNMENT = 31, ASYMMETRIC = 32, AT = 33, ATOMIC = 34, ATTRIBUTE = 35, + ATTRIBUTES = 36, AUTHORIZATION = 37, AVG = 38, BACKWARD = 39, BEFORE = 40, BEGIN = 41, + BERNOULLI = 42, BETWEEN = 43, BIGINT = 44, BINARY = 45, BIT = 46, BIT_LENGTH = 47, + BITVAR = 48, BLOB = 49, BOOLEAN = 50, BOTH = 51, BREADTH = 52, BUFFERS = 53, BY = 54, + C_ = 55, CACHE = 56, CALL = 57, CALLED = 58, CARDINALITY = 59, CASCADE = 60, CASCADED = 61, + CASE = 62, CAST = 63, CATALOG = 64, CATALOG_NAME = 65, CEIL = 66, CEILING = 67, CHAIN = 68, + CHAR = 69, CHAR_LENGTH = 70, CHARACTER = 71, CHARACTER_LENGTH = 72, CHARACTER_SET_CATALOG = 73, + CHARACTER_SET_NAME = 74, CHARACTER_SET_SCHEMA = 75, CHARACTERISTICS = 76, CHARACTERS = 77, + CHECK = 78, CHECKED = 79, CHECKPOINT = 80, CLASS = 81, CLASS_ORIGIN = 82, CLOB = 83, + CLOSE = 84, CLUSTER = 85, COALESCE = 86, COBOL = 87, COLLATE = 88, COLLATION = 89, + COLLATION_CATALOG = 90, COLLATION_NAME = 91, COLLATION_SCHEMA = 92, COLLECT = 93, + COLUMN = 94, COLUMN_NAME = 95, COMMAND_FUNCTION = 96, COMMAND_FUNCTION_CODE = 97, + COMMENT = 98, COMMIT = 99, COMMITTED = 100, COMPLETION = 101, CONDITION = 102, CONDITION_NUMBER = 103, + CONFIGURATION = 104, CONFLICT = 105, CONNECT = 106, CONNECTION = 107, CONNECTION_NAME = 108, + CONSTRAINT = 109, CONSTRAINT_CATALOG = 110, CONSTRAINT_NAME = 111, CONSTRAINT_SCHEMA = 112, + CONSTRAINTS = 113, CONSTRUCTOR = 114, CONTAINS = 115, CONTINUE = 116, CONVERSION = 117, + CONVERT = 118, COPY = 119, CORR = 120, CORRESPONDING = 121, COSTS = 122, COUNT = 123, + COVAR_POP = 124, COVAR_SAMP = 125, CREATE = 126, CREATEDB = 127, CREATEUSER = 128, + CROSS = 129, CSV = 130, CUBE = 131, CUME_DIST = 132, CURRENT = 133, CURRENT_DATE = 134, + CURRENT_DEFAULT_TRANSFORM_GROUP = 135, CURRENT_PATH = 136, CURRENT_ROLE = 137, + CURRENT_TIME = 138, CURRENT_TIMESTAMP = 139, CURRENT_TRANSFORM_GROUP_FOR_TYPE = 140, + CURRENT_USER = 141, CURSOR = 142, CURSOR_NAME = 143, CYCLE = 144, DATA = 145, DATABASE = 146, + DATE = 147, DATETIME_INTERVAL_CODE = 148, DATETIME_INTERVAL_PRECISION = 149, + DAY = 150, DEALLOCATE = 151, DEC = 152, DECIMAL = 153, DECLARE = 154, DEFAULT = 155, + DEFAULTS = 156, DEFERABLE = 157, DEFERRABLE = 158, DEFERRED = 159, DEFINED = 160, + DEFINER = 161, DEGREE = 162, DELETE = 163, DELIMITER = 164, DELIMITERS = 165, DENSE_RANK = 166, + DEPENDS = 167, DEPTH = 168, DEREF = 169, DERIVED = 170, DESC = 171, DESCRIBE = 172, + DESCRIPTOR = 173, DESTROY = 174, DESTRUCTOR = 175, DETERMINISTIC = 176, DIAGNOSTICS = 177, + DICTIONARY = 178, DISABLE = 179, DISABLE_PAGE_SKIPPING = 180, DISCARD = 181, DISCONNECT = 182, + DISPATCH = 183, DISTINCT = 184, DO = 185, DOMAIN = 186, DOUBLE = 187, DROP = 188, + DYNAMIC = 189, DYNAMIC_FUNCTION = 190, DYNAMIC_FUNCTION_CODE = 191, EACH = 192, + ELEMENT = 193, ELSE = 194, ENABLE = 195, ENCODING = 196, ENCRYPTED = 197, END = 198, + END_EXEC = 199, EQUALS = 200, ESCAPE = 201, EVERY = 202, EXCEPT = 203, EXCEPTION = 204, + EXCLUDE = 205, EXCLUDING = 206, EXCLUSIVE = 207, EXEC = 208, EXECUTE = 209, EXISTING = 210, + EXISTS = 211, EXP = 212, EXPLAIN = 213, EXTENDED = 214, EXTENSION = 215, EXTERNAL = 216, + EXTRACT = 217, FALSE = 218, FETCH = 219, FIELDS = 220, FILTER = 221, FINAL = 222, + FIRST = 223, FLOAT = 224, FLOOR = 225, FOLLOWING = 226, FOR = 227, FORCE = 228, FOREIGN = 229, + FORMAT = 230, FORTRAN = 231, FORWARD = 232, FOUND = 233, FREE = 234, FREEZE = 235, + FROM = 236, FULL = 237, FUNCTION = 238, FUSION = 239, G_ = 240, GENERAL = 241, GENERATED = 242, + GET = 243, GLOBAL = 244, GO = 245, GOTO = 246, GRANT = 247, GRANTED = 248, GREATEST = 249, + GROUP = 250, GROUPING = 251, HANDLER = 252, HAVING = 253, HIERARCHY = 254, HOLD = 255, + HOST = 256, HOUR = 257, IDENTITY = 258, IGNORE = 259, ILIKE = 260, IMMEDIATE = 261, + IMMUTABLE = 262, IMPLEMENTATION = 263, IMPLICIT = 264, IN = 265, INCLUDING = 266, + INCREMENT = 267, INDEX = 268, INDICATOR = 269, INFIX = 270, INHERITS = 271, INITIALIZE = 272, + INITIALLY = 273, INNER = 274, INOUT = 275, INPUT = 276, INSENSITIVE = 277, INSERT = 278, + INSTANCE = 279, INSTANTIABLE = 280, INSTEAD = 281, INT = 282, INTEGER = 283, INTERSECT = 284, + INTERSECTION = 285, INTERVAL = 286, INTO = 287, INVOKER = 288, IS = 289, ISOLATION = 290, + ITERATE = 291, JOIN = 292, K_ = 293, KEY = 294, KEY_MEMBER = 295, KEY_TYPE = 296, + LABEL = 297, LANCOMPILER = 298, LANGUAGE = 299, LARGE = 300, LAST = 301, LATERAL = 302, + LEADING = 303, LEAST = 304, LEFT = 305, LENGTH = 306, LESS = 307, LEVEL = 308, LIKE = 309, + LIMIT = 310, LISTEN = 311, LN = 312, LOAD = 313, LOCAL = 314, LOCALTIME = 315, LOCALTIMESTAMP = 316, + LOCATION = 317, LOCATOR = 318, LOCK = 319, LOCKED = 320, LOWER = 321, M_ = 322, MAIN = 323, + MAP = 324, MAPPING = 325, MATCH = 326, MATCH_SIMPLE = 327, MATCHED = 328, MAX = 329, + MAXVALUE = 330, MEMBER = 331, MERGE = 332, MESSAGE_LENGTH = 333, MESSAGE_OCTET_LENGTH = 334, + MESSAGE_TEXT = 335, METHOD = 336, MIN = 337, MINUTE = 338, MINVALUE = 339, MOD = 340, + MODE = 341, MODIFIES = 342, MODIFY = 343, MODULE = 344, MONTH = 345, MORE_ = 346, + MOVE = 347, MULTISET = 348, MUMPS = 349, NAME = 350, NAMES = 351, NATIONAL = 352, + NATURAL = 353, NCHAR = 354, NCLOB = 355, NESTING = 356, NEW = 357, NEXT = 358, NO = 359, + NOCREATEDB = 360, NOCREATEUSER = 361, NONE = 362, NORMALIZE = 363, NORMALIZED = 364, + NOT = 365, NOTHING = 366, NOTIFY = 367, NOTNULL = 368, NOWAIT = 369, NULL = 370, NULLABLE = 371, + NULLIF = 372, NULLS = 373, NUMBER = 374, NUMERIC = 375, OBJECT = 376, OCTET_LENGTH = 377, + OCTETS = 378, OF = 379, OFF = 380, OFFSET = 381, OIDS = 382, OLD = 383, ON = 384, ONLY = 385, + OPEN = 386, OPERATION = 387, OPERATOR = 388, OPTION = 389, OPTIONS = 390, OR = 391, + ORDER = 392, ORDERING = 393, ORDINALITY = 394, OTHERS = 395, OUT = 396, OUTER = 397, + OUTPUT = 398, OVER = 399, OVERLAPS = 400, OVERLAY = 401, OVERRIDING = 402, OWNER = 403, + PAD = 404, PARAMETER = 405, PARAMETER_MODE = 406, PARAMETER_NAME = 407, PARAMETER_ORDINAL_POSITION = 408, + PARAMETER_SPECIFIC_CATALOG = 409, PARAMETER_SPECIFIC_NAME = 410, PARAMETER_SPECIFIC_SCHEMA = 411, + PARAMETERS = 412, PARSER = 413, PARTIAL = 414, PARTITION = 415, PASCAL = 416, PASSWORD = 417, + PATH = 418, PERCENT_RANK = 419, PERCENTILE_CONT = 420, PERCENTILE_DISC = 421, + PLACING = 422, PLAIN = 423, PLANS = 424, PLI = 425, POSITION = 426, POSTFIX = 427, + POWER = 428, PRECEDING = 429, PRECISION = 430, PREFIX = 431, PREORDER = 432, PREPARE = 433, + PREPARED = 434, PRESERVE = 435, PRIMARY = 436, PRIOR = 437, PRIVILEGES = 438, PROCEDURAL = 439, + PROCEDURE = 440, PUBLIC = 441, PUBLICATION = 442, QUOTE = 443, RANGE = 444, RANK = 445, + READ = 446, READS = 447, REAL = 448, REASSIGN = 449, RECHECK = 450, RECURSIVE = 451, + REF = 452, REFERENCES = 453, REFERENCING = 454, REFRESH = 455, REGR_AVGX = 456, + REGR_AVGY = 457, REGR_COUNT = 458, REGR_INTERCEPT = 459, REGR_R2 = 460, REGR_SLOPE = 461, + REGR_SXX = 462, REGR_SXY = 463, REGR_SYY = 464, REINDEX = 465, RELATIVE = 466, RELEASE = 467, + RENAME = 468, REPEATABLE = 469, REPLACE = 470, REPLICA = 471, RESET = 472, RESTART = 473, + RESTRICT = 474, RESULT = 475, RETURN = 476, RETURNED_CARDINALITY = 477, RETURNED_LENGTH = 478, + RETURNED_OCTET_LENGTH = 479, RETURNED_SQLSTATE = 480, RETURNING = 481, RETURNS = 482, + REVOKE = 483, RIGHT = 484, ROLE = 485, ROLLBACK = 486, ROLLUP = 487, ROUTINE = 488, + ROUTINE_CATALOG = 489, ROUTINE_NAME = 490, ROUTINE_SCHEMA = 491, ROW = 492, ROW_COUNT = 493, + ROW_NUMBER = 494, ROWS = 495, RULE = 496, SAVEPOINT = 497, SCALE = 498, SCHEMA = 499, + SCHEMA_NAME = 500, SCOPE = 501, SCOPE_CATALOG = 502, SCOPE_NAME = 503, SCOPE_SCHEMA = 504, + SCROLL = 505, SEARCH = 506, SECOND = 507, SECTION = 508, SECURITY = 509, SELECT = 510, + SELF = 511, SENSITIVE = 512, SEQUENCE = 513, SEQUENCES = 514, SERIALIZABLE = 515, + SERVER_NAME = 516, SESSION = 517, SESSION_USER = 518, SET = 519, SETOF = 520, SETS = 521, + SHARE = 522, SHOW = 523, SIMILAR = 524, SIMPLE = 525, SIZE = 526, SKIP_ = 527, SMALLINT = 528, + SNAPSHOT = 529, SOME = 530, SOURCE = 531, SPACE = 532, SPECIFIC = 533, SPECIFIC_NAME = 534, + SPECIFICTYPE = 535, SQL = 536, SQLCODE = 537, SQLERROR = 538, SQLEXCEPTION = 539, + SQLSTATE = 540, SQLWARNING = 541, SQRT = 542, STABLE = 543, START = 544, STATE = 545, + STATEMENT = 546, STATIC = 547, STATISTICS = 548, STDDEV_POP = 549, STDDEV_SAMP = 550, + STDIN = 551, STDOUT = 552, STORAGE = 553, STRICT = 554, STRUCTURE = 555, STYLE = 556, + SUBCLASS_ORIGIN = 557, SUBLIST = 558, SUBMULTISET = 559, SUBSCRIPTION = 560, SUBSTRING = 561, + SUM = 562, SYMMETRIC = 563, SYSID = 564, SYSTEM = 565, SYSTEM_USER = 566, TABLE = 567, + TABLE_NAME = 568, TABLESAMPLE = 569, TABLESPACE = 570, TEMP = 571, TEMPLATE = 572, + TEMPORARY = 573, TERMINATE = 574, THAN = 575, THEN = 576, TIES = 577, TIME = 578, + TIMESTAMP = 579, TIMEZONE_HOUR = 580, TIMEZONE_MINUTE = 581, TIMING = 582, TO = 583, + TOAST = 584, TOP_LEVEL_COUNT = 585, TRAILING = 586, TRANSACTION = 587, TRANSACTION_ACTIVE = 588, + TRANSACTIONS_COMMITTED = 589, TRANSACTIONS_ROLLED_BACK = 590, TRANSFORM = 591, + TRANSFORMS = 592, TRANSLATE = 593, TRANSLATION = 594, TREAT = 595, TRIGGER = 596, + TRIGGER_CATALOG = 597, TRIGGER_NAME = 598, TRIGGER_SCHEMA = 599, TRIM = 600, TRUE = 601, + TRUNCATE = 602, TRUSTED = 603, TYPE = 604, UESCAPE = 605, UNBOUNDED = 606, UNCOMMITTED = 607, + UNDER = 608, UNENCRYPTED = 609, UNION = 610, UNIQUE = 611, UNKNOWN = 612, UNLISTEN = 613, + UNNAMED = 614, UNNEST = 615, UNTIL = 616, UPDATE = 617, UPPER = 618, USAGE = 619, + USER = 620, USER_DEFINED_TYPE_CATALOG = 621, USER_DEFINED_TYPE_CODE = 622, USER_DEFINED_TYPE_NAME = 623, + USER_DEFINED_TYPE_SCHEMA = 624, USING = 625, VACUUM = 626, VALID = 627, VALIDATE = 628, + VALIDATOR = 629, VALUE = 630, VALUES = 631, VAR_POP = 632, VAR_SAMP = 633, VARCHAR = 634, + VARIABLE = 635, VARIADIC = 636, VARYING = 637, VERBOSE = 638, VIEW = 639, VOLATILE = 640, + WHEN = 641, WHENEVER = 642, WHERE = 643, WIDTH_BUCKET = 644, WINDOW = 645, WITH = 646, + WITHIN = 647, WITHOUT = 648, WORK = 649, WRITE = 650, YAML = 651, YEAR = 652, YES = 653, + ZONE = 654, SUPERUSER = 655, NOSUPERUSER = 656, CREATEROLE = 657, NOCREATEROLE = 658, + INHERIT = 659, NOINHERIT = 660, LOGIN = 661, NOLOGIN = 662, REPLICATION = 663, NOREPLICATION = 664, + BYPASSRLS = 665, NOBYPASSRLS = 666, SFUNC = 667, STYPE = 668, SSPACE = 669, FINALFUNC = 670, + FINALFUNC_EXTRA = 671, COMBINEFUNC = 672, SERIALFUNC = 673, DESERIALFUNC = 674, + INITCOND = 675, MSFUNC = 676, MINVFUNC = 677, MSTYPE = 678, MSSPACE = 679, MFINALFUNC = 680, + MFINALFUNC_EXTRA = 681, MINITCOND = 682, SORTOP = 683, PARALLEL = 684, HYPOTHETICAL = 685, + SAFE = 686, RESTRICTED = 687, UNSAFE = 688, BASETYPE = 689, IF = 690, LOCALE = 691, + LC_COLLATE = 692, LC_CTYPE = 693, PROVIDER = 694, VERSION = 695, ALLOW_CONNECTIONS = 696, + IS_TEMPLATE = 697, EVENT = 698, WRAPPER = 699, SERVER = 700, BTREE = 701, HASH_ = 702, + GIST = 703, SPGIST = 704, GIN = 705, BRIN = 706, CONCURRENTLY = 707, INLINE = 708, + MATERIALIZED = 709, LEFTARG = 710, RIGHTARG = 711, COMMUTATOR = 712, NEGATOR = 713, + HASHES = 714, MERGES = 715, FAMILY = 716, POLICY = 717, OWNED = 718, ABSTIME = 719, + BIGSERIAL = 720, BIT_VARYING = 721, BOOL = 722, BOX = 723, BYTEA = 724, CHARACTER_VARYING = 725, + CIDR = 726, CIRCLE = 727, FLOAT4 = 728, FLOAT8 = 729, INET = 730, INT2 = 731, INT4 = 732, + INT8 = 733, JSON = 734, JSONB = 735, LINE = 736, LSEG = 737, MACADDR = 738, MACADDR8 = 739, + MONEY = 740, PG_LSN = 741, POINT = 742, POLYGON = 743, RELTIME = 744, SERIAL = 745, + SERIAL2 = 746, SERIAL4 = 747, SERIAL8 = 748, SMALLSERIAL = 749, STSTEM = 750, TEXT = 751, + TIMESTAMPTZ = 752, TIMETZ = 753, TSQUERY = 754, TSVECTOR = 755, TXID_SNAPSHOT = 756, + UUID = 757, VARBIT = 758, XML = 759, COMMA = 760, COLON = 761, COLON_COLON = 762, + DOLLAR = 763, DOLLAR_DOLLAR = 764, STAR = 765, OPEN_PAREN = 766, CLOSE_PAREN = 767, + OPEN_BRACKET = 768, CLOSE_BRACKET = 769, BIT_STRING = 770, REGEX_STRING = 771, + NUMERIC_LITERAL = 772, INTEGER_LITERAL = 773, HEX_INTEGER_LITERAL = 774, DOT = 775, + SINGLEQ_STRING_LITERAL = 776, DOUBLEQ_STRING_LITERAL = 777, IDENTIFIER = 778, + DOLLAR_DEC = 779, IDENTIFIER_UNICODE = 780, AMP = 781, AMP_AMP = 782, AMP_LT = 783, + AT_AT = 784, AT_GT = 785, AT_SIGN = 786, BANG = 787, BANG_BANG = 788, BANG_EQUAL = 789, + CARET = 790, EQUAL = 791, EQUAL_GT = 792, GT = 793, GTE = 794, GT_GT = 795, HASH = 796, + HASH_EQ = 797, HASH_GT = 798, HASH_GT_GT = 799, HASH_HASH = 800, HYPHEN_GT = 801, + HYPHEN_GT_GT = 802, HYPHEN_PIPE_HYPHEN = 803, LT = 804, LTE = 805, LT_AT = 806, + LT_CARET = 807, LT_GT = 808, LT_HYPHEN_GT = 809, LT_LT = 810, LT_LT_EQ = 811, LT_QMARK_GT = 812, + MINUS = 813, PERCENT = 814, PIPE = 815, PIPE_PIPE = 816, PIPE_PIPE_SLASH = 817, + PIPE_SLASH = 818, PLUS = 819, QMARK = 820, QMARK_AMP = 821, QMARK_HASH = 822, QMARK_HYPHEN = 823, + QMARK_PIPE = 824, SLASH = 825, TIL = 826, TIL_EQ = 827, TIL_GTE_TIL = 828, TIL_GT_TIL = 829, + TIL_LTE_TIL = 830, TIL_LT_TIL = 831, TIL_STAR = 832, TIL_TIL = 833, SEMI = 834; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A", "B", "C", "D", "E", + "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", + "T", "U", "V", "W", "X", "Y", "Z", "HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", + "SQUOTA_STRING", "BQUOTA_STRING", "A_", "ABORT", "ABS", "ABSOLUTE", "ACCESS", + "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", + "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", + "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", + "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", "AUTHORIZATION", + "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", "BIGINT", + "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", "BOTH", "BREADTH", + "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", "CASCADE", + "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", "CEILING", + "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", "CHARACTER_SET_CATALOG", + "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CHARACTERISTICS", "CHARACTERS", + "CHECK", "CHECKED", "CHECKPOINT", "CLASS", "CLASS_ORIGIN", "CLOB", "CLOSE", + "CLUSTER", "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLLATION_CATALOG", + "COLLATION_NAME", "COLLATION_SCHEMA", "COLLECT", "COLUMN", "COLUMN_NAME", + "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMENT", "COMMIT", "COMMITTED", + "COMPLETION", "CONDITION", "CONDITION_NUMBER", "CONFIGURATION", "CONFLICT", + "CONNECT", "CONNECTION", "CONNECTION_NAME", "CONSTRAINT", "CONSTRAINT_CATALOG", + "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", "COPY", "CORR", "CORRESPONDING", + "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CREATEDB", "CREATEUSER", + "CROSS", "CSV", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", + "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", + "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", + "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", + "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", + "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", + "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", + "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", + "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", + "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", + "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", + "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", + "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", + "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", + "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", + "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", + "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", + "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", + "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", + "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", + "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", + "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", + "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", + "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", + "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", + "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", + "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", + "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", + "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", + "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", + "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", + "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", + "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", + "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", + "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", + "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", + "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", + "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", + "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", + "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", + "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", + "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", + "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", + "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", + "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", + "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", + "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", + "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", + "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", + "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", + "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", + "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", + "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", + "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", + "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", + "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", + "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", + "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", + "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", + "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", + "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", + "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", + "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", + "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", + "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", + "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", + "HYPOTHETICAL", "SAFE", "RESTRICTED", "UNSAFE", "BASETYPE", "IF", "LOCALE", + "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", + "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", + "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", + "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", + "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", + "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", + "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + + private static final String[] _LITERAL_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", + "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, + null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", + "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", + "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", + "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", + "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", + "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", + "';'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", + "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", + "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", + "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", + "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", + "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", + "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", + "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", + "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", + "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", + "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", + "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", + "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", + "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", + "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", + "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", + "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", + "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", + "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", + "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", + "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", + "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", + "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", + "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", + "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", + "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", + "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", + "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", + "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", + "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", + "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", + "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", + "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", + "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", + "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", + "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", + "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", + "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", + "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", + "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", + "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", + "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", + "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", + "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", + "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", + "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", + "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", + "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", + "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", + "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", + "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", + "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", + "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", + "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", + "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", + "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", + "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", + "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", + "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", + "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", + "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", + "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", + "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", + "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", + "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", + "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", + "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", + "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", + "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", + "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", + "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", + "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", + "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", + "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", + "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", + "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", + "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", + "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", + "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", + "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", + "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", + "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", + "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", + "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", + "HYPOTHETICAL", "SAFE", "RESTRICTED", "UNSAFE", "BASETYPE", "IF", "LOCALE", + "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", + "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", + "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", + "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", + "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", + "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", + "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public PostgreSQLLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache); + } + + @Override + public String getGrammarFileName() { + return "PostgreSQLLexer.g4"; + } + + @Override + public String[] getRuleNames() { + return ruleNames; + } + + @Override + public String getSerializedATN() { + return _serializedATN; + } + + @Override + public String[] getChannelNames() { + return channelNames; + } + + @Override + public String[] getModeNames() { + return modeNames; + } + + @Override + public ATN getATN() { + return _ATN; + } + + private static final int _serializedATNSegments = 4; + private static final String _serializedATNSegment0 = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u0344\u21e7\b\1\4" + + "\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n" + + "\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22" + + "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31" + + "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t" + + " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t" + + "+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64" + + "\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t" + + "=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4" + + "I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\t" + + "T\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_" + + "\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k" + + "\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv" + + "\4w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t" + + "\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084" + + "\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089" + + "\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d" + + "\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092" + + "\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096" + + "\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b" + + "\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f" + + "\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4" + + "\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8" + + "\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad" + + "\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1" + + "\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6" + + "\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba" + + "\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf" + + "\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3" + + "\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8" + + "\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc" + + "\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1" + + "\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5" + + "\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da" + + "\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de" + + "\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3" + + "\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7" + + "\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec" + + "\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0" + + "\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5" + + "\t\u00f5\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9" + + "\4\u00fa\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe" + + "\t\u00fe\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102" + + "\4\u0103\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107" + + "\t\u0107\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\4\u010b\t\u010b" + + "\4\u010c\t\u010c\4\u010d\t\u010d\4\u010e\t\u010e\4\u010f\t\u010f\4\u0110" + + "\t\u0110\4\u0111\t\u0111\4\u0112\t\u0112\4\u0113\t\u0113\4\u0114\t\u0114" + + "\4\u0115\t\u0115\4\u0116\t\u0116\4\u0117\t\u0117\4\u0118\t\u0118\4\u0119" + + "\t\u0119\4\u011a\t\u011a\4\u011b\t\u011b\4\u011c\t\u011c\4\u011d\t\u011d" + + "\4\u011e\t\u011e\4\u011f\t\u011f\4\u0120\t\u0120\4\u0121\t\u0121\4\u0122" + + "\t\u0122\4\u0123\t\u0123\4\u0124\t\u0124\4\u0125\t\u0125\4\u0126\t\u0126" + + "\4\u0127\t\u0127\4\u0128\t\u0128\4\u0129\t\u0129\4\u012a\t\u012a\4\u012b" + + "\t\u012b\4\u012c\t\u012c\4\u012d\t\u012d\4\u012e\t\u012e\4\u012f\t\u012f" + + "\4\u0130\t\u0130\4\u0131\t\u0131\4\u0132\t\u0132\4\u0133\t\u0133\4\u0134" + + "\t\u0134\4\u0135\t\u0135\4\u0136\t\u0136\4\u0137\t\u0137\4\u0138\t\u0138" + + "\4\u0139\t\u0139\4\u013a\t\u013a\4\u013b\t\u013b\4\u013c\t\u013c\4\u013d" + + "\t\u013d\4\u013e\t\u013e\4\u013f\t\u013f\4\u0140\t\u0140\4\u0141\t\u0141" + + "\4\u0142\t\u0142\4\u0143\t\u0143\4\u0144\t\u0144\4\u0145\t\u0145\4\u0146" + + "\t\u0146\4\u0147\t\u0147\4\u0148\t\u0148\4\u0149\t\u0149\4\u014a\t\u014a" + + "\4\u014b\t\u014b\4\u014c\t\u014c\4\u014d\t\u014d\4\u014e\t\u014e\4\u014f" + + "\t\u014f\4\u0150\t\u0150\4\u0151\t\u0151\4\u0152\t\u0152\4\u0153\t\u0153" + + "\4\u0154\t\u0154\4\u0155\t\u0155\4\u0156\t\u0156\4\u0157\t\u0157\4\u0158" + + "\t\u0158\4\u0159\t\u0159\4\u015a\t\u015a\4\u015b\t\u015b\4\u015c\t\u015c" + + "\4\u015d\t\u015d\4\u015e\t\u015e\4\u015f\t\u015f\4\u0160\t\u0160\4\u0161" + + "\t\u0161\4\u0162\t\u0162\4\u0163\t\u0163\4\u0164\t\u0164\4\u0165\t\u0165" + + "\4\u0166\t\u0166\4\u0167\t\u0167\4\u0168\t\u0168\4\u0169\t\u0169\4\u016a" + + "\t\u016a\4\u016b\t\u016b\4\u016c\t\u016c\4\u016d\t\u016d\4\u016e\t\u016e" + + "\4\u016f\t\u016f\4\u0170\t\u0170\4\u0171\t\u0171\4\u0172\t\u0172\4\u0173" + + "\t\u0173\4\u0174\t\u0174\4\u0175\t\u0175\4\u0176\t\u0176\4\u0177\t\u0177" + + "\4\u0178\t\u0178\4\u0179\t\u0179\4\u017a\t\u017a\4\u017b\t\u017b\4\u017c" + + "\t\u017c\4\u017d\t\u017d\4\u017e\t\u017e\4\u017f\t\u017f\4\u0180\t\u0180" + + "\4\u0181\t\u0181\4\u0182\t\u0182\4\u0183\t\u0183\4\u0184\t\u0184\4\u0185" + + "\t\u0185\4\u0186\t\u0186\4\u0187\t\u0187\4\u0188\t\u0188\4\u0189\t\u0189" + + "\4\u018a\t\u018a\4\u018b\t\u018b\4\u018c\t\u018c\4\u018d\t\u018d\4\u018e" + + "\t\u018e\4\u018f\t\u018f\4\u0190\t\u0190\4\u0191\t\u0191\4\u0192\t\u0192" + + "\4\u0193\t\u0193\4\u0194\t\u0194\4\u0195\t\u0195\4\u0196\t\u0196\4\u0197" + + "\t\u0197\4\u0198\t\u0198\4\u0199\t\u0199\4\u019a\t\u019a\4\u019b\t\u019b" + + "\4\u019c\t\u019c\4\u019d\t\u019d\4\u019e\t\u019e\4\u019f\t\u019f\4\u01a0" + + "\t\u01a0\4\u01a1\t\u01a1\4\u01a2\t\u01a2\4\u01a3\t\u01a3\4\u01a4\t\u01a4" + + "\4\u01a5\t\u01a5\4\u01a6\t\u01a6\4\u01a7\t\u01a7\4\u01a8\t\u01a8\4\u01a9" + + "\t\u01a9\4\u01aa\t\u01aa\4\u01ab\t\u01ab\4\u01ac\t\u01ac\4\u01ad\t\u01ad" + + "\4\u01ae\t\u01ae\4\u01af\t\u01af\4\u01b0\t\u01b0\4\u01b1\t\u01b1\4\u01b2" + + "\t\u01b2\4\u01b3\t\u01b3\4\u01b4\t\u01b4\4\u01b5\t\u01b5\4\u01b6\t\u01b6" + + "\4\u01b7\t\u01b7\4\u01b8\t\u01b8\4\u01b9\t\u01b9\4\u01ba\t\u01ba\4\u01bb" + + "\t\u01bb\4\u01bc\t\u01bc\4\u01bd\t\u01bd\4\u01be\t\u01be\4\u01bf\t\u01bf" + + "\4\u01c0\t\u01c0\4\u01c1\t\u01c1\4\u01c2\t\u01c2\4\u01c3\t\u01c3\4\u01c4" + + "\t\u01c4\4\u01c5\t\u01c5\4\u01c6\t\u01c6\4\u01c7\t\u01c7\4\u01c8\t\u01c8" + + "\4\u01c9\t\u01c9\4\u01ca\t\u01ca\4\u01cb\t\u01cb\4\u01cc\t\u01cc\4\u01cd" + + "\t\u01cd\4\u01ce\t\u01ce\4\u01cf\t\u01cf\4\u01d0\t\u01d0\4\u01d1\t\u01d1" + + "\4\u01d2\t\u01d2\4\u01d3\t\u01d3\4\u01d4\t\u01d4\4\u01d5\t\u01d5\4\u01d6" + + "\t\u01d6\4\u01d7\t\u01d7\4\u01d8\t\u01d8\4\u01d9\t\u01d9\4\u01da\t\u01da" + + "\4\u01db\t\u01db\4\u01dc\t\u01dc\4\u01dd\t\u01dd\4\u01de\t\u01de\4\u01df" + + "\t\u01df\4\u01e0\t\u01e0\4\u01e1\t\u01e1\4\u01e2\t\u01e2\4\u01e3\t\u01e3" + + "\4\u01e4\t\u01e4\4\u01e5\t\u01e5\4\u01e6\t\u01e6\4\u01e7\t\u01e7\4\u01e8" + + "\t\u01e8\4\u01e9\t\u01e9\4\u01ea\t\u01ea\4\u01eb\t\u01eb\4\u01ec\t\u01ec" + + "\4\u01ed\t\u01ed\4\u01ee\t\u01ee\4\u01ef\t\u01ef\4\u01f0\t\u01f0\4\u01f1" + + "\t\u01f1\4\u01f2\t\u01f2\4\u01f3\t\u01f3\4\u01f4\t\u01f4\4\u01f5\t\u01f5" + + "\4\u01f6\t\u01f6\4\u01f7\t\u01f7\4\u01f8\t\u01f8\4\u01f9\t\u01f9\4\u01fa" + + "\t\u01fa\4\u01fb\t\u01fb\4\u01fc\t\u01fc\4\u01fd\t\u01fd\4\u01fe\t\u01fe" + + "\4\u01ff\t\u01ff\4\u0200\t\u0200\4\u0201\t\u0201\4\u0202\t\u0202\4\u0203" + + "\t\u0203\4\u0204\t\u0204\4\u0205\t\u0205\4\u0206\t\u0206\4\u0207\t\u0207" + + "\4\u0208\t\u0208\4\u0209\t\u0209\4\u020a\t\u020a\4\u020b\t\u020b\4\u020c" + + "\t\u020c\4\u020d\t\u020d\4\u020e\t\u020e\4\u020f\t\u020f\4\u0210\t\u0210" + + "\4\u0211\t\u0211\4\u0212\t\u0212\4\u0213\t\u0213\4\u0214\t\u0214\4\u0215" + + "\t\u0215\4\u0216\t\u0216\4\u0217\t\u0217\4\u0218\t\u0218\4\u0219\t\u0219" + + "\4\u021a\t\u021a\4\u021b\t\u021b\4\u021c\t\u021c\4\u021d\t\u021d\4\u021e" + + "\t\u021e\4\u021f\t\u021f\4\u0220\t\u0220\4\u0221\t\u0221\4\u0222\t\u0222" + + "\4\u0223\t\u0223\4\u0224\t\u0224\4\u0225\t\u0225\4\u0226\t\u0226\4\u0227" + + "\t\u0227\4\u0228\t\u0228\4\u0229\t\u0229\4\u022a\t\u022a\4\u022b\t\u022b" + + "\4\u022c\t\u022c\4\u022d\t\u022d\4\u022e\t\u022e\4\u022f\t\u022f\4\u0230" + + "\t\u0230\4\u0231\t\u0231\4\u0232\t\u0232\4\u0233\t\u0233\4\u0234\t\u0234" + + "\4\u0235\t\u0235\4\u0236\t\u0236\4\u0237\t\u0237\4\u0238\t\u0238\4\u0239" + + "\t\u0239\4\u023a\t\u023a\4\u023b\t\u023b\4\u023c\t\u023c\4\u023d\t\u023d" + + "\4\u023e\t\u023e\4\u023f\t\u023f\4\u0240\t\u0240\4\u0241\t\u0241\4\u0242" + + "\t\u0242\4\u0243\t\u0243\4\u0244\t\u0244\4\u0245\t\u0245\4\u0246\t\u0246" + + "\4\u0247\t\u0247\4\u0248\t\u0248\4\u0249\t\u0249\4\u024a\t\u024a\4\u024b" + + "\t\u024b\4\u024c\t\u024c\4\u024d\t\u024d\4\u024e\t\u024e\4\u024f\t\u024f" + + "\4\u0250\t\u0250\4\u0251\t\u0251\4\u0252\t\u0252\4\u0253\t\u0253\4\u0254" + + "\t\u0254\4\u0255\t\u0255\4\u0256\t\u0256\4\u0257\t\u0257\4\u0258\t\u0258" + + "\4\u0259\t\u0259\4\u025a\t\u025a\4\u025b\t\u025b\4\u025c\t\u025c\4\u025d" + + "\t\u025d\4\u025e\t\u025e\4\u025f\t\u025f\4\u0260\t\u0260\4\u0261\t\u0261" + + "\4\u0262\t\u0262\4\u0263\t\u0263\4\u0264\t\u0264\4\u0265\t\u0265\4\u0266" + + "\t\u0266\4\u0267\t\u0267\4\u0268\t\u0268\4\u0269\t\u0269\4\u026a\t\u026a" + + "\4\u026b\t\u026b\4\u026c\t\u026c\4\u026d\t\u026d\4\u026e\t\u026e\4\u026f" + + "\t\u026f\4\u0270\t\u0270\4\u0271\t\u0271\4\u0272\t\u0272\4\u0273\t\u0273" + + "\4\u0274\t\u0274\4\u0275\t\u0275\4\u0276\t\u0276\4\u0277\t\u0277\4\u0278" + + "\t\u0278\4\u0279\t\u0279\4\u027a\t\u027a\4\u027b\t\u027b\4\u027c\t\u027c" + + "\4\u027d\t\u027d\4\u027e\t\u027e\4\u027f\t\u027f\4\u0280\t\u0280\4\u0281" + + "\t\u0281\4\u0282\t\u0282\4\u0283\t\u0283\4\u0284\t\u0284\4\u0285\t\u0285" + + "\4\u0286\t\u0286\4\u0287\t\u0287\4\u0288\t\u0288\4\u0289\t\u0289\4\u028a" + + "\t\u028a\4\u028b\t\u028b\4\u028c\t\u028c\4\u028d\t\u028d\4\u028e\t\u028e" + + "\4\u028f\t\u028f\4\u0290\t\u0290\4\u0291\t\u0291\4\u0292\t\u0292\4\u0293" + + "\t\u0293\4\u0294\t\u0294\4\u0295\t\u0295\4\u0296\t\u0296\4\u0297\t\u0297" + + "\4\u0298\t\u0298\4\u0299\t\u0299\4\u029a\t\u029a\4\u029b\t\u029b\4\u029c" + + "\t\u029c\4\u029d\t\u029d\4\u029e\t\u029e\4\u029f\t\u029f\4\u02a0\t\u02a0" + + "\4\u02a1\t\u02a1\4\u02a2\t\u02a2\4\u02a3\t\u02a3\4\u02a4\t\u02a4\4\u02a5" + + "\t\u02a5\4\u02a6\t\u02a6\4\u02a7\t\u02a7\4\u02a8\t\u02a8\4\u02a9\t\u02a9" + + "\4\u02aa\t\u02aa\4\u02ab\t\u02ab\4\u02ac\t\u02ac\4\u02ad\t\u02ad\4\u02ae" + + "\t\u02ae\4\u02af\t\u02af\4\u02b0\t\u02b0\4\u02b1\t\u02b1\4\u02b2\t\u02b2" + + "\4\u02b3\t\u02b3\4\u02b4\t\u02b4\4\u02b5\t\u02b5\4\u02b6\t\u02b6\4\u02b7" + + "\t\u02b7\4\u02b8\t\u02b8\4\u02b9\t\u02b9\4\u02ba\t\u02ba\4\u02bb\t\u02bb" + + "\4\u02bc\t\u02bc\4\u02bd\t\u02bd\4\u02be\t\u02be\4\u02bf\t\u02bf\4\u02c0" + + "\t\u02c0\4\u02c1\t\u02c1\4\u02c2\t\u02c2\4\u02c3\t\u02c3\4\u02c4\t\u02c4" + + "\4\u02c5\t\u02c5\4\u02c6\t\u02c6\4\u02c7\t\u02c7\4\u02c8\t\u02c8\4\u02c9" + + "\t\u02c9\4\u02ca\t\u02ca\4\u02cb\t\u02cb\4\u02cc\t\u02cc\4\u02cd\t\u02cd" + + "\4\u02ce\t\u02ce\4\u02cf\t\u02cf\4\u02d0\t\u02d0\4\u02d1\t\u02d1\4\u02d2" + + "\t\u02d2\4\u02d3\t\u02d3\4\u02d4\t\u02d4\4\u02d5\t\u02d5\4\u02d6\t\u02d6" + + "\4\u02d7\t\u02d7\4\u02d8\t\u02d8\4\u02d9\t\u02d9\4\u02da\t\u02da\4\u02db" + + "\t\u02db\4\u02dc\t\u02dc\4\u02dd\t\u02dd\4\u02de\t\u02de\4\u02df\t\u02df" + + "\4\u02e0\t\u02e0\4\u02e1\t\u02e1\4\u02e2\t\u02e2\4\u02e3\t\u02e3\4\u02e4" + + "\t\u02e4\4\u02e5\t\u02e5\4\u02e6\t\u02e6\4\u02e7\t\u02e7\4\u02e8\t\u02e8" + + "\4\u02e9\t\u02e9\4\u02ea\t\u02ea\4\u02eb\t\u02eb\4\u02ec\t\u02ec\4\u02ed" + + "\t\u02ed\4\u02ee\t\u02ee\4\u02ef\t\u02ef\4\u02f0\t\u02f0\4\u02f1\t\u02f1" + + "\4\u02f2\t\u02f2\4\u02f3\t\u02f3\4\u02f4\t\u02f4\4\u02f5\t\u02f5\4\u02f6" + + "\t\u02f6\4\u02f7\t\u02f7\4\u02f8\t\u02f8\4\u02f9\t\u02f9\4\u02fa\t\u02fa" + + "\4\u02fb\t\u02fb\4\u02fc\t\u02fc\4\u02fd\t\u02fd\4\u02fe\t\u02fe\4\u02ff" + + "\t\u02ff\4\u0300\t\u0300\4\u0301\t\u0301\4\u0302\t\u0302\4\u0303\t\u0303" + + "\4\u0304\t\u0304\4\u0305\t\u0305\4\u0306\t\u0306\4\u0307\t\u0307\4\u0308" + + "\t\u0308\4\u0309\t\u0309\4\u030a\t\u030a\4\u030b\t\u030b\4\u030c\t\u030c" + + "\4\u030d\t\u030d\4\u030e\t\u030e\4\u030f\t\u030f\4\u0310\t\u0310\4\u0311" + + "\t\u0311\4\u0312\t\u0312\4\u0313\t\u0313\4\u0314\t\u0314\4\u0315\t\u0315" + + "\4\u0316\t\u0316\4\u0317\t\u0317\4\u0318\t\u0318\4\u0319\t\u0319\4\u031a" + + "\t\u031a\4\u031b\t\u031b\4\u031c\t\u031c\4\u031d\t\u031d\4\u031e\t\u031e" + + "\4\u031f\t\u031f\4\u0320\t\u0320\4\u0321\t\u0321\4\u0322\t\u0322\4\u0323" + + "\t\u0323\4\u0324\t\u0324\4\u0325\t\u0325\4\u0326\t\u0326\4\u0327\t\u0327" + + "\4\u0328\t\u0328\4\u0329\t\u0329\4\u032a\t\u032a\4\u032b\t\u032b\4\u032c" + + "\t\u032c\4\u032d\t\u032d\4\u032e\t\u032e\4\u032f\t\u032f\4\u0330\t\u0330" + + "\4\u0331\t\u0331\4\u0332\t\u0332\4\u0333\t\u0333\4\u0334\t\u0334\4\u0335" + + "\t\u0335\4\u0336\t\u0336\4\u0337\t\u0337\4\u0338\t\u0338\4\u0339\t\u0339" + + "\4\u033a\t\u033a\4\u033b\t\u033b\4\u033c\t\u033c\4\u033d\t\u033d\4\u033e" + + "\t\u033e\4\u033f\t\u033f\4\u0340\t\u0340\4\u0341\t\u0341\4\u0342\t\u0342" + + "\4\u0343\t\u0343\4\u0344\t\u0344\4\u0345\t\u0345\4\u0346\t\u0346\4\u0347" + + "\t\u0347\4\u0348\t\u0348\4\u0349\t\u0349\4\u034a\t\u034a\4\u034b\t\u034b" + + "\4\u034c\t\u034c\4\u034d\t\u034d\4\u034e\t\u034e\4\u034f\t\u034f\4\u0350" + + "\t\u0350\4\u0351\t\u0351\4\u0352\t\u0352\4\u0353\t\u0353\4\u0354\t\u0354" + + "\4\u0355\t\u0355\4\u0356\t\u0356\4\u0357\t\u0357\4\u0358\t\u0358\4\u0359" + + "\t\u0359\4\u035a\t\u035a\4\u035b\t\u035b\4\u035c\t\u035c\4\u035d\t\u035d" + + "\4\u035e\t\u035e\4\u035f\t\u035f\4\u0360\t\u0360\4\u0361\t\u0361\4\u0362" + + "\t\u0362\3\2\6\2\u06c7\n\2\r\2\16\2\u06c8\3\2\3\2\3\3\3\3\3\3\3\3\7\3" + + "\u06d1\n\3\f\3\16\3\u06d4\13\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\7\4" + + "\u06df\n\4\f\4\16\4\u06e2\13\4\3\4\3\4\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7" + + "\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\17\3\17" + + "\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\3\24\3\24\3\25\3\25\3\26\3\26" + + "\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35" + + "\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3!\3!\3!\3!\7!\u0726\n!\f!\16!\u0729" + + "\13!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\7\"\u0733\n\"\f\"\16\"\u0736\13\"\3" + + "\"\3\"\3#\3#\3#\3#\3#\3#\7#\u0740\n#\f#\16#\u0743\13#\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)\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.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3" + + "/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61" + + "\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64" + + "\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66" + + "\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3\67\38\38\38\38\39\39\3" + + "9\39\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>\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@\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3C\3" + + "C\3C\3C\3C\3C\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3E\3E\3E\3" + + "E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3" + + "G\3H\3H\3H\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3J\3J\3J\3J\3" + + "J\3K\3K\3K\3K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3" + + "N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3P\3Q\3" + + "Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3" + + "T\3T\3U\3U\3U\3U\3U\3U\3U\3U\3V\3V\3V\3W\3W\3X\3X\3X\3X\3X\3X\3Y\3Y\3" + + "Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\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^\3^\3^\3^\3" + + "_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3" + + "a\3a\3a\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3d\3e\3" + + "e\3e\3e\3e\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3g\3g\3" + + "g\3g\3g\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3" + + "i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3j\3j\3j\3j\3" + + "j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3k\3k\3k\3" + + "k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3" + + "l\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3n\3" + + "o\3o\3o\3o\3o\3o\3o\3o\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3q\3q\3q\3q\3" + + "q\3q\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3s\3s\3s\3s\3s\3t\3t\3t\3" + + "t\3t\3t\3u\3u\3u\3u\3u\3u\3u\3u\3v\3v\3v\3v\3v\3v\3v\3v\3v\3w\3w\3w\3" + + "w\3w\3w\3x\3x\3x\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3y\3y\3y\3y\3y\3z\3z\3" + + "z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\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" + + "|\3|\3}\3}\3}\3}\3}\3}\3}\3}\3~\3~\3~\3~\3~\3~\3~\3\177\3\177\3\177\3" + + "\177\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3" + + "\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080" + + "\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081" + + "\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081" + + "\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081" + + "\3\u0081\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082" + + "\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084" + + "\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085" + + "\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085" + + "\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086" + + "\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087" + + "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087" + + "\3\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088" + + "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089" + + "\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a" + + "\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b" + + "\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c" + + "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c" + + "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d" + + "\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e" + + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e" + + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f" + + "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f" + + "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090" + + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090" + + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091" + + "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091" + + "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092" + + "\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093" + + "\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094" + + "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095" + + "\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0096" + + "\3\u0096\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097" + + "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099" + + "\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099" + + "\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b" + + "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c" + + "\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d" + + "\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e" + + "\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f\3\u009f" + + "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\3\u00a0" + + "\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a1\3\u00a1" + + "\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3" + + "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4" + + "\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5" + + "\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6" + + "\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a7" + + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7" + + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7" + + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7" + + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8" + + "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9" + + "\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9" + + "\3\u00a9\3\u00a9\3\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa" + + "\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab" + + "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab" + + "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac" + + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac" + + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac" + + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac" + + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae" + + "\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af" + + "\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af" + + "\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3\u00b1" + + "\3\u00b1\3\u00b1\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2" + + "\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4" + + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4" + + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4" + + "\3\u00b4\3\u00b4\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5" + + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5" + + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5" + + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b7" + + "\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7" + + "\3\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9" + + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba" + + "\3\u00ba\3\u00ba\3\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb" + + "\3\u00bb\3\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc" + + "\3\u00bc\3\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd" + + "\3\u00bd\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be" + + "\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf" + + "\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0" + + "\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1" + + "\3\u00c1\3\u00c1\3\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2" + + "\3\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c4" + + "\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4" + + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5" + + "\3\u00c5\3\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6" + + "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7" + + "\3\u00c7\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8" + + "\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00ca\3\u00ca\3\u00ca" + + "\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb\3\u00cb\3\u00cb" + + "\3\u00cb\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc" + + "\3\u00cc\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd" + + "\3\u00cd\3\u00cd\3\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce" + + "\3\u00ce\3\u00ce\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf" + + "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0" + + "\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0" + + "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1" + + "\3\u00d1\3\u00d1\3\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2" + + "\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3" + + "\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4" + + "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4" + + "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d5" + + "\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d6\3\u00d6" + + "\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6" + + "\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7" + + "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8" + + "\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00dc" + + "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd" + + "\3\u00dd\3\u00dd\3\u00dd\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de" + + "\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de" + + "\3\u00de\3\u00de\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df" + + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df" + + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00e0\3\u00e0\3\u00e0" + + "\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1" + + "\3\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e3\3\u00e3\3\u00e3" + + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4" + + "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5" + + "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + + "\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7" + + "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e9\3\u00e9" + + "\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00ea\3\u00ea\3\u00ea\3\u00ea" + + "\3\u00ea\3\u00ea\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb" + + "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec" + + "\3\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed" + + "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee" + + "\3\u00ee\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef" + + "\3\u00ef\3\u00ef\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f1\3\u00f1" + + "\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f2\3\u00f2\3\u00f2" + + "\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f3\3\u00f3\3\u00f3" + + "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f5" + + "\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f6\3\u00f6" + + "\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f7\3\u00f7" + + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f8" + + "\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f9" + + "\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00fa\3\u00fa" + + "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb" + + "\3\u00fb\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fd" + + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fe\3\u00fe\3\u00fe" + + "\3\u00fe\3\u00fe\3\u00fe\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff" + + "\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0101\3\u0101\3\u0101" + + "\3\u0101\3\u0101\3\u0101\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102" + + "\3\u0102\3\u0102\3\u0102\3\u0102\3\u0103\3\u0103\3\u0103\3\u0103\3\u0104" + + "\3\u0104\3\u0104\3\u0104\3\u0104\3\u0104\3\u0105\3\u0105\3\u0105\3\u0105" + + "\3\u0105\3\u0105\3\u0105\3\u0105\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106" + + "\3\u0106\3\u0106\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107" + + "\3\u0107\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108" + + "\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u010a\3\u010a\3\u010a" + + "\3\u010a\3\u010a\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b" + + "\3\u010c\3\u010c\3\u010c\3\u010c\3\u010c\3\u010d\3\u010d\3\u010d\3\u010d" + + "\3\u010d\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e" + + "\3\u010e\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u0110" + + "\3\u0110\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111" + + "\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112" + + "\3\u0112\3\u0113\3\u0113\3\u0113\3\u0113\3\u0114\3\u0114\3\u0114\3\u0114" + + "\3\u0114\3\u0114\3\u0114\3\u0115\3\u0115\3\u0115\3\u0116\3\u0116\3\u0116" + + "\3\u0116\3\u0116\3\u0117\3\u0117\3\u0117\3\u0117\3\u0117\3\u0117\3\u0118" + + "\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0119\3\u0119" + + "\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u011a\3\u011a" + + "\3\u011a\3\u011a\3\u011a\3\u011a\3\u011b\3\u011b\3\u011b\3\u011b\3\u011b" + + "\3\u011b\3\u011b\3\u011b\3\u011b\3\u011c\3\u011c\3\u011c\3\u011c\3\u011c" + + "\3\u011c\3\u011c\3\u011c\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d" + + "\3\u011d\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e" + + "\3\u011e\3\u011e\3\u011f\3\u011f\3\u011f\3\u011f\3\u011f\3\u0120\3\u0120" + + "\3\u0120\3\u0120\3\u0120\3\u0121\3\u0121\3\u0121\3\u0121\3\u0121\3\u0122" + + "\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0123" + + "\3\u0123\3\u0123\3\u0123\3\u0123\3\u0123\3\u0123\3\u0124\3\u0124\3\u0124" + + "\3\u0124\3\u0124\3\u0124\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125" + + "\3\u0125\3\u0125\3\u0125\3\u0125\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126" + + "\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126\3\u0127\3\u0127\3\u0127\3\u0127" + + "\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127" + + "\3\u0127\3\u0127\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128" + + "\3\u0128\3\u0128\3\u0129\3\u0129\3\u0129\3\u012a\3\u012a\3\u012a\3\u012a" + + "\3\u012a\3\u012a\3\u012a\3\u012a\3\u012a\3\u012a\3\u012b\3\u012b\3\u012b" + + "\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012c\3\u012c" + + "\3\u012c\3\u012c\3\u012c\3\u012c\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d" + + "\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d\3\u012e\3\u012e\3\u012e\3\u012e" + + "\3\u012e\3\u012e\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f" + + "\3\u012f\3\u012f\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130" + + "\3\u0130\3\u0130\3\u0130\3\u0130\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131" + + "\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131\3\u0132\3\u0132\3\u0132\3\u0132" + + "\3\u0132\3\u0132\3\u0133\3\u0133\3\u0133\3\u0133\3\u0133\3\u0133\3\u0134" + + "\3\u0134\3\u0134\3\u0134\3\u0134\3\u0134\3\u0135\3\u0135\3\u0135\3\u0135" + + "\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0136" + + "\3\u0136\3\u0136\3\u0136\3\u0136\3\u0136\3\u0136\3\u0137\3\u0137\3\u0137" + + "\3\u0137\3\u0137\3\u0137\3\u0137\3\u0137\3\u0137\3\u0138\3\u0138\3\u0138" + + "\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138" + + "\3\u0138\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139" + + "\3\u013a\3\u013a\3\u013a\3\u013a\3\u013b\3\u013b\3\u013b\3\u013b\3\u013b" + + "\3\u013b\3\u013b\3\u013b\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c" + + "\3\u013c\3\u013c\3\u013c\3\u013c\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d" + + "\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013e" + + "\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013f" + + "\3\u013f\3\u013f\3\u013f\3\u013f\3\u0140\3\u0140\3\u0140\3\u0140\3\u0140" + + "\3\u0140\3\u0140\3\u0140\3\u0141\3\u0141\3\u0141\3\u0142\3\u0142\3\u0142" + + "\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0143\3\u0143" + + "\3\u0143\3\u0143\3\u0143\3\u0143\3\u0143\3\u0143\3\u0144\3\u0144\3\u0144" + + "\3\u0144\3\u0144\3\u0145\3\u0145\3\u0146\3\u0146\3\u0146\3\u0146\3\u0147" + + "\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147" + + "\3\u0147\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148" + + "\3\u0148\3\u0149\3\u0149\3\u0149\3\u0149\3\u0149\3\u0149\3\u014a\3\u014a" + + "\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a" + + "\3\u014a\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b" + + "\3\u014b\3\u014c\3\u014c\3\u014c\3\u014c\3\u014c\3\u014c\3\u014d\3\u014d" + + "\3\u014d\3\u014d\3\u014d\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e" + + "\3\u014e\3\u014e\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f" + + "\3\u014f\3\u0150\3\u0150\3\u0150\3\u0150\3\u0150\3\u0150\3\u0151\3\u0151" + + "\3\u0151\3\u0151\3\u0151\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152" + + "\3\u0152\3\u0153\3\u0153\3\u0153\3\u0153\3\u0153\3\u0154\3\u0154\3\u0154" + + "\3\u0154\3\u0154\3\u0154\3\u0155\3\u0155\3\u0155\3\u0155\3\u0155\3\u0156" + + "\3\u0156\3\u0156\3\u0156\3\u0156\3\u0156\3\u0157\3\u0157\3\u0157\3\u0157" + + "\3\u0157\3\u0157\3\u0157\3\u0158\3\u0158\3\u0158\3\u0159\3\u0159\3\u0159" + + "\3\u0159\3\u0159\3\u015a\3\u015a\3\u015a\3\u015a\3\u015a\3\u015a\3\u015b" + + "\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b" + + "\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c" + + "\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015d\3\u015d\3\u015d" + + "\3\u015d\3\u015d\3\u015d\3\u015d\3\u015d\3\u015d\3\u015e\3\u015e\3\u015e" + + "\3\u015e\3\u015e\3\u015e\3\u015e\3\u015e\3\u015f\3\u015f\3\u015f\3\u015f" + + "\3\u015f\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0161" + + "\3\u0161\3\u0161\3\u0161\3\u0161\3\u0161\3\u0162\3\u0162\3\u0163\3\u0163" + + "\3\u0163\3\u0163\3\u0163\3\u0164\3\u0164\3\u0164\3\u0164\3\u0165\3\u0165" + + "\3\u0165\3\u0165\3\u0165\3\u0165\3\u0165\3\u0165\3\u0166\3\u0166\3\u0166" + + "\3\u0166\3\u0166\3\u0166\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167" + + "\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0168\3\u0168" + + "\3\u0168\3\u0168\3\u0168\3\u0168\3\u0168\3\u0168\3\u0169\3\u0169\3\u0169" + + "\3\u0169\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a" + + "\3\u016a\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016c" + + "\3\u016c\3\u016c\3\u016c\3\u016c\3\u016c\3\u016d\3\u016d\3\u016d\3\u016d" + + "\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d" + + "\3\u016d\3\u016d\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e" + + "\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e" + + "\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016f\3\u016f\3\u016f\3\u016f" + + "\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f" + + "\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0171\3\u0171" + + "\3\u0171\3\u0171\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172" + + "\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173" + + "\3\u0174\3\u0174\3\u0174\3\u0174\3\u0175\3\u0175\3\u0175\3\u0175\3\u0175" + + "\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176" + + "\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0178\3\u0178" + + "\3\u0178\3\u0178\3\u0178\3\u0178\3\u0178\3\u0179\3\u0179\3\u0179\3\u0179" + + "\3\u0179\3\u0179\3\u017a\3\u017a\3\u017a\3\u017a\3\u017a\3\u017b\3\u017b" + + "\3\u017b\3\u017b\3\u017b\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c" + + "\3\u017c\3\u017c\3\u017c\3\u017d\3\u017d\3\u017d\3\u017d\3\u017d\3\u017d" + + "\3\u017e\3\u017e\3\u017e\3\u017e\3\u017e\3\u017f\3\u017f\3\u017f\3\u017f" + + "\3\u017f\3\u017f\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180" + + "\3\u0180\3\u0180\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181" + + "\3\u0181\3\u0182\3\u0182\3\u0182\3\u0182\3\u0182\3\u0182\3\u0183\3\u0183" + + "\3\u0183\3\u0183\3\u0183\3\u0183\3\u0184\3\u0184\3\u0184\3\u0184\3\u0184" + + "\3\u0184\3\u0184\3\u0184\3\u0185\3\u0185\3\u0185\3\u0185\3\u0186\3\u0186" + + "\3\u0186\3\u0186\3\u0186\3\u0187\3\u0187\3\u0187\3\u0188\3\u0188\3\u0188" + + "\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0189" + + "\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189" + + "\3\u0189\3\u0189\3\u0189\3\u018a\3\u018a\3\u018a\3\u018a\3\u018a\3\u018b" + + "\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b" + + "\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c" + + "\3\u018c\3\u018c\3\u018d\3\u018d\3\u018d\3\u018d\3\u018e\3\u018e\3\u018e" + + "\3\u018e\3\u018e\3\u018e\3\u018e\3\u018e\3\u018f\3\u018f\3\u018f\3\u018f" + + "\3\u018f\3\u018f\3\u018f\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190" + + "\3\u0190\3\u0190\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191" + + "\3\u0192\3\u0192\3\u0192\3\u0192\3\u0192\3\u0193\3\u0193\3\u0193\3\u0193" + + "\3\u0193\3\u0193\3\u0193\3\u0193\3\u0193\3\u0194\3\u0194\3\u0194\3\u0194" + + "\3\u0194\3\u0194\3\u0194\3\u0195\3\u0195\3\u0195\3\u0195\3\u0195\3\u0195" + + "\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0197\3\u0197" + + "\3\u0197\3\u0197\3\u0197\3\u0197\3\u0197\3\u0197\3\u0198\3\u0198\3\u0198" + + "\3\u0198\3\u0198\3\u0198\3\u0198\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199" + + "\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u019a" + + "\3\u019a\3\u019a\3\u019a\3\u019a\3\u019a\3\u019a\3\u019b\3\u019b\3\u019b" + + "\3\u019c\3\u019c\3\u019c\3\u019c\3\u019d\3\u019d\3\u019d\3\u019d\3\u019d" + + "\3\u019d\3\u019d\3\u019e\3\u019e\3\u019e\3\u019e\3\u019e\3\u019f\3\u019f" + + "\3\u019f\3\u019f\3\u01a0\3\u01a0\3\u01a0\3\u01a1\3\u01a1\3\u01a1\3\u01a1" + + "\3\u01a1\3\u01a2\3\u01a2\3\u01a2\3\u01a2\3\u01a2\3\u01a3\3\u01a3\3\u01a3" + + "\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a4\3\u01a4" + + "\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a5\3\u01a5" + + "\3\u01a5\3\u01a5\3\u01a5\3\u01a5\3\u01a5\3\u01a6\3\u01a6\3\u01a6\3\u01a6" + + "\3\u01a6\3\u01a6\3\u01a6\3\u01a6\3\u01a7\3\u01a7\3\u01a7\3\u01a8\3\u01a8" + + "\3\u01a8\3\u01a8\3\u01a8\3\u01a8\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01a9" + + "\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa" + + "\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01ab\3\u01ab\3\u01ab" + + "\3\u01ab\3\u01ab\3\u01ab\3\u01ab\3\u01ac\3\u01ac\3\u01ac\3\u01ac\3\u01ad" + + "\3\u01ad\3\u01ad\3\u01ad\3\u01ad\3\u01ad\3\u01ae\3\u01ae\3\u01ae\3\u01ae" + + "\3\u01ae\3\u01ae\3\u01ae\3\u01af\3\u01af\3\u01af\3\u01af\3\u01af\3\u01b0" + + "\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b1" + + "\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b2\3\u01b2" + + "\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2" + + "\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b4\3\u01b4\3\u01b4" + + "\3\u01b4\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5" + + "\3\u01b5\3\u01b5\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6" + + "\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b7" + + "\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7" + + "\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b8\3\u01b8\3\u01b8\3\u01b8" + + "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8" + + "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8" + + "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b9\3\u01b9\3\u01b9\3\u01b9" + + "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9" + + "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9" + + "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01ba\3\u01ba\3\u01ba\3\u01ba" + + "\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba" + + "\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba" + + "\3\u01ba\3\u01ba\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb" + + "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb" + + "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb" + + "\3\u01bb\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc" + + "\3\u01bc\3\u01bc\3\u01bc\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd" + + "\3\u01bd\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be" + + "\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf" + + "\3\u01bf\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c1" + + "\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c2" + + "\3\u01c2\3\u01c2\3\u01c2\3\u01c2\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3" + + "\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c4" + + "\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4" + + "\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c5\3\u01c5\3\u01c5" + + "\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5" + + "\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c6\3\u01c6\3\u01c6\3\u01c6\3\u01c6" + + "\3\u01c6\3\u01c6\3\u01c6\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c7" + + "\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c9\3\u01c9\3\u01c9" + + "\3\u01c9\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca" + + "\3\u01ca\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb" + + "\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cd\3\u01cd\3\u01cd" + + "\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01ce\3\u01ce" + + "\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01cf" + + "\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01d0\3\u01d0\3\u01d0" + + "\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d1\3\u01d1\3\u01d1" + + "\3\u01d1\3\u01d1\3\u01d1\3\u01d1\3\u01d1\3\u01d2\3\u01d2\3\u01d2\3\u01d2" + + "\3\u01d2\3\u01d2\3\u01d2\3\u01d2\3\u01d2\3\u01d3\3\u01d3\3\u01d3\3\u01d3" + + "\3\u01d3\3\u01d3\3\u01d3\3\u01d3\3\u01d3\3\u01d4\3\u01d4\3\u01d4\3\u01d4" + + "\3\u01d4\3\u01d4\3\u01d4\3\u01d4\3\u01d5\3\u01d5\3\u01d5\3\u01d5\3\u01d5" + + "\3\u01d5\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6" + + "\3\u01d6\3\u01d6\3\u01d6\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7" + + "\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d8\3\u01d8\3\u01d8\3\u01d8" + + "\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d9\3\u01d9\3\u01d9" + + "\3\u01d9\3\u01d9\3\u01d9\3\u01d9\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da" + + "\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01db\3\u01db" + + "\3\u01db\3\u01db\3\u01db\3\u01db\3\u01dc\3\u01dc\3\u01dc\3\u01dc\3\u01dc" + + "\3\u01dc\3\u01dd\3\u01dd\3\u01dd\3\u01dd\3\u01dd\3\u01de\3\u01de\3\u01de" + + "\3\u01de\3\u01de\3\u01df\3\u01df\3\u01df\3\u01df\3\u01df\3\u01df\3\u01e0" + + "\3\u01e0\3\u01e0\3\u01e0\3\u01e0\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e1" + + "\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e2\3\u01e2\3\u01e2\3\u01e2\3\u01e2" + + "\3\u01e2\3\u01e2\3\u01e2\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3" + + "\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e4\3\u01e4\3\u01e4\3\u01e4\3\u01e5" + + "\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5" + + "\3\u01e5\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6" + + "\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e7\3\u01e7\3\u01e7\3\u01e7\3\u01e7" + + "\3\u01e7\3\u01e7\3\u01e7\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8" + + "\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9" + + "\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01ea\3\u01ea\3\u01ea\3\u01ea" + + "\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01eb\3\u01eb" + + "\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb" + + "\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01ec\3\u01ec\3\u01ec\3\u01ec\3\u01ec" + + "\3\u01ec\3\u01ec\3\u01ec\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed" + + "\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ee\3\u01ee\3\u01ee\3\u01ee" + + "\3\u01ee\3\u01ee\3\u01ee\3\u01ee\3\u01ee\3\u01ef\3\u01ef\3\u01ef\3\u01ef" + + "\3\u01ef\3\u01ef\3\u01ef\3\u01ef\3\u01ef\3\u01f0\3\u01f0\3\u01f0\3\u01f0" + + "\3\u01f0\3\u01f0\3\u01f0\3\u01f0\3\u01f0\3\u01f1\3\u01f1\3\u01f1\3\u01f1" + + "\3\u01f1\3\u01f1\3\u01f1\3\u01f1\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f2" + + "\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f3\3\u01f3\3\u01f3\3\u01f3\3\u01f3" + + "\3\u01f3\3\u01f3\3\u01f3\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4" + + "\3\u01f4\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5" + + "\3\u01f5\3\u01f5\3\u01f5\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6" + + "\3\u01f6\3\u01f6\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7" + + "\3\u01f7\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f9\3\u01f9" + + "\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01fa\3\u01fa\3\u01fa" + + "\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fb\3\u01fb\3\u01fb" + + "\3\u01fb\3\u01fb\3\u01fb\3\u01fb\3\u01fc\3\u01fc\3\u01fc\3\u01fc\3\u01fc" + + "\3\u01fc\3\u01fc\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd" + + "\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd" + + "\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fe\3\u01fe\3\u01fe\3\u01fe" + + "\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe" + + "\3\u01fe\3\u01fe\3\u01fe\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff" + + "\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff" + + "\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u0200\3\u0200" + + "\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200" + + "\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0201\3\u0201" + + "\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0202" + + "\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0203\3\u0203" + + "\3\u0203\3\u0203\3\u0203\3\u0203\3\u0203\3\u0204\3\u0204\3\u0204\3\u0204" + + "\3\u0204\3\u0204\3\u0205\3\u0205\3\u0205\3\u0205\3\u0205\3\u0206\3\u0206" + + "\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0207\3\u0207" + + "\3\u0207\3\u0207\3\u0207\3\u0207\3\u0207\3\u0208\3\u0208\3\u0208\3\u0208" + + "\3\u0208\3\u0208\3\u0208\3\u0208\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209" + + "\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209" + + "\3\u0209\3\u0209\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a" + + "\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020b\3\u020b\3\u020b" + + "\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b" + + "\3\u020b\3\u020b\3\u020b\3\u020c\3\u020c\3\u020c\3\u020c\3\u020d\3\u020d" + + "\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020e" + + "\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e" + + "\3\u020e\3\u020f\3\u020f\3\u020f\3\u020f\3\u020f\3\u0210\3\u0210\3\u0210" + + "\3\u0210\3\u0210\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211" + + "\3\u0211\3\u0211\3\u0211\3\u0212\3\u0212\3\u0212\3\u0212\3\u0212\3\u0212" + + "\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0214\3\u0214" + + "\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214" + + "\3\u0214\3\u0215\3\u0215\3\u0215\3\u0215\3\u0215\3\u0215\3\u0216\3\u0216" + + "\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216" + + "\3\u0216\3\u0216\3\u0216\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217" + + "\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0218\3\u0218\3\u0218\3\u0218" + + "\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218" + + "\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u021a\3\u021a" + + "\3\u021a\3\u021a\3\u021a\3\u021a\3\u021a\3\u021b\3\u021b\3\u021b\3\u021b" + + "\3\u021b\3\u021b\3\u021b\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c" + + "\3\u021c\3\u021c\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d" + + "\3\u021d\3\u021d\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e" + + "\3\u021f\3\u021f\3\u021f\3\u021f\3\u021f\3\u0220\3\u0220\3\u0220\3\u0220" + + "\3\u0220\3\u0220\3\u0220\3\u0220\3\u0220\3\u0220\3\u0221\3\u0221\3\u0221" + + "\3\u0221\3\u0221\3\u0221\3\u0221\3\u0221\3\u0221\3\u0222\3\u0222\3\u0222" + + "\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0223\3\u0223" + + "\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223" + + "\3\u0223\3\u0223\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224" + + "\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0225\3\u0225\3\u0225\3\u0225" + + "\3\u0225\3\u0225\3\u0225\3\u0225\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226" + + "\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0227" + + "\3\u0227\3\u0227\3\u0227\3\u0228\3\u0228\3\u0228\3\u0228\3\u0228\3\u0228" + + "\3\u0229\3\u0229\3\u0229\3\u0229\3\u0229\3\u022a\3\u022a\3\u022a\3\u022a" + + "\3\u022a\3\u022a\3\u022b\3\u022b\3\u022b\3\u022b\3\u022b\3\u022c\3\u022c" + + "\3\u022c\3\u022c\3\u022c\3\u022c\3\u022c\3\u022c\3\u022d\3\u022d\3\u022d" + + "\3\u022d\3\u022d\3\u022d\3\u022d\3\u022e\3\u022e\3\u022e\3\u022e\3\u022e" + + "\3\u022f\3\u022f\3\u022f\3\u022f\3\u022f\3\u0230\3\u0230\3\u0230\3\u0230" + + "\3\u0230\3\u0230\3\u0230\3\u0230\3\u0230\3\u0231\3\u0231\3\u0231\3\u0231" + + "\3\u0231\3\u0231\3\u0231\3\u0231\3\u0231\3\u0232\3\u0232\3\u0232\3\u0232" + + "\3\u0232\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0234" + + "\3\u0234\3\u0234\3\u0234\3\u0234\3\u0234\3\u0235\3\u0235\3\u0235\3\u0235" + + "\3\u0235\3\u0235\3\u0235\3\u0235\3\u0235\3\u0236\3\u0236\3\u0236\3\u0236" + + "\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236" + + "\3\u0236\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237" + + "\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0238\3\u0238\3\u0238\3\u0238" + + "\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u023a" + + "\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023b" + + "\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b" + + "\3\u023b\3\u023b\3\u023b\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c" + + "\3\u023c\3\u023c\3\u023c\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d" + + "\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023e\3\u023e\3\u023e\3\u023e" + + "\3\u023e\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u0240" + + "\3\u0240\3\u0240\3\u0240\3\u0240\3\u0240\3\u0241\3\u0241\3\u0241\3\u0241" + + "\3\u0241\3\u0241\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242" + + "\3\u0242\3\u0242\3\u0242\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243" + + "\3\u0243\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244" + + "\3\u0244\3\u0244\3\u0244\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245" + + "\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0246\3\u0246\3\u0246\3\u0246" + + "\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0247" + + "\3\u0247\3\u0247\3\u0247\3\u0247\3\u0247\3\u0248\3\u0248\3\u0248\3\u0248" + + "\3\u0248\3\u0248\3\u0248\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249" + + "\3\u0249\3\u0249\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a" + + "\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b" + + "\3\u024b\3\u024c\3\u024c\3\u024c\3\u024c\3\u024c\3\u024c\3\u024d\3\u024d" + + "\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d" + + "\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024e\3\u024e\3\u024e\3\u024e" + + "\3\u024e\3\u024e\3\u024e\3\u024e\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f" + + "\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u0250\3\u0250" + + "\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250" + + "\3\u0250\3\u0250\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251" + + "\3\u0251\3\u0251\3\u0251\3\u0252\3\u0252\3\u0252\3\u0252\3\u0253\3\u0253" + + "\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0254" + + "\3\u0254\3\u0254\3\u0254\3\u0254\3\u0254\3\u0255\3\u0255\3\u0255\3\u0255" + + "\3\u0255\3\u0255\3\u0255\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256" + + "\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0257\3\u0257\3\u0257" + + "\3\u0257\3\u0257\3\u0257\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258" + + "\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0259\3\u0259\3\u0259\3\u0259" + + "\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u025a" + + "\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a" + + "\3\u025a\3\u025b\3\u025b\3\u025b\3\u025b\3\u025b\3\u025c\3\u025c\3\u025c" + + "\3\u025c\3\u025c\3\u025c\3\u025c\3\u025c\3\u025c\3\u025d\3\u025d\3\u025d" + + "\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025e\3\u025e" + + "\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025f" + + "\3\u025f\3\u025f\3\u025f\3\u025f\3\u0260\3\u0260\3\u0260\3\u0260\3\u0260" + + "\3\u0261\3\u0261\3\u0261\3\u0261\3\u0261\3\u0262\3\u0262\3\u0262\3\u0262" + + "\3\u0262\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263" + + "\3\u0263\3\u0263\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264" + + "\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0265\3\u0265" + + "\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265" + + "\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0266\3\u0266\3\u0266\3\u0266" + + "\3\u0266\3\u0266\3\u0266\3\u0267\3\u0267\3\u0267\3\u0268\3\u0268\3\u0268" + + "\3\u0268\3\u0268\3\u0268\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269" + + "\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269" + + "\3\u0269\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a" + + "\3\u026a\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b" + + "\3\u026b\3\u026b\3\u026b\3\u026b\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c" + + "\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c" + + "\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026d\3\u026d\3\u026d\3\u026d" + + "\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d" + + "\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d" + + "\3\u026d\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e" + + "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e" + + "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026f" + + "\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f" + + "\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270" + + "\3\u0270\3\u0270\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271" + + "\3\u0271\3\u0271\3\u0271\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272" + + "\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0273\3\u0273\3\u0273" + + "\3\u0273\3\u0273\3\u0273\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274" + + "\3\u0274\3\u0274\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275" + + "\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275" + + "\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276" + + "\3\u0276\3\u0276\3\u0276\3\u0276\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277" + + "\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277" + + "\3\u0277\3\u0278\3\u0278\3\u0278\3\u0278\3\u0278\3\u0279\3\u0279\3\u0279" + + "\3\u0279\3\u0279\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a" + + "\3\u027a\3\u027a\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b" + + "\3\u027b\3\u027c\3\u027c\3\u027c\3\u027c\3\u027c\3\u027d\3\u027d\3\u027d" + + "\3\u027d\3\u027d\3\u027d\3\u027d\3\u027d\3\u027e\3\u027e\3\u027e\3\u027e" + + "\3\u027e\3\u027e\3\u027e\3\u027e\3\u027e\3\u027e\3\u027f\3\u027f\3\u027f" + + "\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f" + + "\3\u0280\3\u0280\3\u0280\3\u0280\3\u0280\3\u0280\3\u0281\3\u0281\3\u0281" + + "\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281" + + "\3\u0282\3\u0282\3\u0282\3\u0282\3\u0282\3\u0282\3\u0283\3\u0283\3\u0283" + + "\3\u0283\3\u0283\3\u0283\3\u0283\3\u0284\3\u0284\3\u0284\3\u0284\3\u0284" + + "\3\u0284\3\u0284\3\u0284\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285" + + "\3\u0285\3\u0285\3\u0285\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286" + + "\3\u0286\3\u0286\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287" + + "\3\u0288\3\u0288\3\u0288\3\u0288\3\u0288\3\u0288\3\u0289\3\u0289\3\u0289" + + "\3\u0289\3\u0289\3\u0289\3\u0289\3\u028a\3\u028a\3\u028a\3\u028a\3\u028a" + + "\3\u028a\3\u028b\3\u028b\3\u028b\3\u028b\3\u028b\3\u028b\3\u028c\3\u028c" + + "\3\u028c\3\u028c\3\u028c\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d" + + "\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d" + + "\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d" + + "\3\u028d\3\u028d\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e" + + "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e" + + "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028f\3\u028f" + + "\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f" + + "\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f" + + "\3\u028f\3\u028f\3\u028f\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290" + + "\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290" + + "\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290" + + "\3\u0290\3\u0291\3\u0291\3\u0291\3\u0291\3\u0291\3\u0291\3\u0292\3\u0292" + + "\3\u0292\3\u0292\3\u0292\3\u0292\3\u0292\3\u0293\3\u0293\3\u0293\3\u0293" + + "\3\u0293\3\u0293\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294" + + "\3\u0294\3\u0294\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295" + + "\3\u0295\3\u0295\3\u0295\3\u0296\3\u0296\3\u0296\3\u0296\3\u0296\3\u0296" + + "\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0298\3\u0298" + + "\3\u0298\3\u0298\3\u0298\3\u0298\3\u0298\3\u0298\3\u0299\3\u0299\3\u0299" + + "\3\u0299\3\u0299\3\u0299\3\u0299\3\u0299\3\u0299\3\u029a\3\u029a\3\u029a" + + "\3\u029a\3\u029a\3\u029a\3\u029a\3\u029a\3\u029b\3\u029b\3\u029b\3\u029b" + + "\3\u029b\3\u029b\3\u029b\3\u029b\3\u029b\3\u029c\3\u029c\3\u029c\3\u029c" + + "\3\u029c\3\u029c\3\u029c\3\u029c\3\u029c\3\u029d\3\u029d\3\u029d\3\u029d" + + "\3\u029d\3\u029d\3\u029d\3\u029d\3\u029e\3\u029e\3\u029e\3\u029e\3\u029e" + + "\3\u029e\3\u029e\3\u029e\3\u029f\3\u029f\3\u029f\3\u029f\3\u029f\3\u02a0" + + "\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a1" + + "\3\u02a1\3\u02a1\3\u02a1\3\u02a1\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a2" + + "\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a3\3\u02a3\3\u02a3\3\u02a3\3\u02a3" + + "\3\u02a3\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4" + + "\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a5\3\u02a5\3\u02a5\3\u02a5" + + "\3\u02a5\3\u02a5\3\u02a5\3\u02a6\3\u02a6\3\u02a6\3\u02a6\3\u02a6\3\u02a7" + + "\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a8\3\u02a8\3\u02a8" + + "\3\u02a8\3\u02a8\3\u02a8\3\u02a8\3\u02a8\3\u02a9\3\u02a9\3\u02a9\3\u02a9" + + "\3\u02a9\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02ab\3\u02ab" + + "\3\u02ab\3\u02ab\3\u02ab\3\u02ac\3\u02ac\3\u02ac\3\u02ac\3\u02ac\3\u02ad" + + "\3\u02ad\3\u02ad\3\u02ad\3\u02ae\3\u02ae\3\u02ae\3\u02ae\3\u02ae\3\u02af" + + "\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af" + + "\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0" + + "\3\u02b0\3\u02b0\3\u02b0\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1" + + "\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b2\3\u02b2\3\u02b2\3\u02b2" + + "\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2" + + "\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b4" + + "\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4" + + "\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b6\3\u02b6\3\u02b6" + + "\3\u02b6\3\u02b6\3\u02b6\3\u02b6\3\u02b6\3\u02b7\3\u02b7\3\u02b7\3\u02b7" + + "\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b8" + + "\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8" + + "\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9" + + "\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02ba\3\u02ba\3\u02ba\3\u02ba" + + "\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02bb" + + "\3\u02bb\3\u02bb\3\u02bb\3\u02bb\3\u02bb\3\u02bc\3\u02bc\3\u02bc\3\u02bc" + + "\3\u02bc\3\u02bc\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd" + + "\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be" + + "\3\u02be\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf" + + "\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02c0" + + "\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0" + + "\3\u02c0\3\u02c0\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1" + + "\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2" + + "\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c3" + + "\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c4" + + "\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c5\3\u02c5\3\u02c5" + + "\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c6\3\u02c6\3\u02c6" + + "\3\u02c6\3\u02c6\3\u02c6\3\u02c6\3\u02c7\3\u02c7\3\u02c7\3\u02c7\3\u02c7" + + "\3\u02c7\3\u02c7\3\u02c7\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8" + + "\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c9\3\u02c9\3\u02c9\3\u02c9" + + "\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9" + + "\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca" + + "\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02cb\3\u02cb\3\u02cb\3\u02cb" + + "\3\u02cb\3\u02cb\3\u02cb\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc" + + "\3\u02cc\3\u02cc\3\u02cc\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd" + + "\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02ce\3\u02ce" + + "\3\u02ce\3\u02ce\3\u02ce\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf" + + "\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02d0\3\u02d0\3\u02d0\3\u02d0" + + "\3\u02d0\3\u02d0\3\u02d0\3\u02d1\3\u02d1\3\u02d1\3\u02d1\3\u02d1\3\u02d1" + + "\3\u02d1\3\u02d1\3\u02d1\3\u02d2\3\u02d2\3\u02d2\3\u02d3\3\u02d3\3\u02d3" + + "\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4" + + "\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d5\3\u02d5\3\u02d5" + + "\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d6\3\u02d6\3\u02d6" + + "\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d7\3\u02d7\3\u02d7" + + "\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d8\3\u02d8\3\u02d8\3\u02d8" + + "\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8" + + "\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d9\3\u02d9\3\u02d9\3\u02d9" + + "\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02da" + + "\3\u02da\3\u02da\3\u02da\3\u02da\3\u02da\3\u02db\3\u02db\3\u02db\3\u02db" + + "\3\u02db\3\u02db\3\u02db\3\u02db\3\u02dc\3\u02dc\3\u02dc\3\u02dc\3\u02dc" + + "\3\u02dc\3\u02dc\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02de" + + "\3\u02de\3\u02de\3\u02de\3\u02de\3\u02df\3\u02df\3\u02df\3\u02df\3\u02df" + + "\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e1\3\u02e1" + + "\3\u02e1\3\u02e1\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e3\3\u02e3" + + "\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3" + + "\3\u02e3\3\u02e3\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4" + + "\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5" + + "\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e6" + + "\3\u02e6\3\u02e6\3\u02e6\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7" + + "\3\u02e7\3\u02e7\3\u02e7\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8" + + "\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e9\3\u02e9\3\u02e9\3\u02e9" + + "\3\u02e9\3\u02e9\3\u02e9\3\u02e9\3\u02ea\3\u02ea\3\u02ea\3\u02ea\3\u02ea" + + "\3\u02ea\3\u02ea\3\u02eb\3\u02eb\3\u02eb\3\u02eb\3\u02eb\3\u02eb\3\u02eb" + + "\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ed\3\u02ed" + + "\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ee\3\u02ee\3\u02ee\3\u02ee" + + "\3\u02ee\3\u02ee\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef" + + "\3\u02ef\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0" + + "\3\u02f0\3\u02f0\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1" + + "\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f2\3\u02f2\3\u02f2\3\u02f2" + + "\3\u02f2\3\u02f3\3\u02f3\3\u02f3\3\u02f3\3\u02f4\3\u02f4\3\u02f4\3\u02f4" + + "\3\u02f4\3\u02f4\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5" + + "\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5" + + "\3\u02f5\3\u02f5\3\u02f6\3\u02f6\3\u02f6\3\u02f6\3\u02f6\3\u02f7\3\u02f7" + + "\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f8\3\u02f8\3\u02f8\3\u02f8" + + "\3\u02f8\3\u02f8\3\u02f8\3\u02f9\3\u02f9\3\u02f9\3\u02f9\3\u02f9\3\u02f9" + + "\3\u02f9\3\u02fa\3\u02fa\3\u02fa\3\u02fa\3\u02fa\3\u02fb\3\u02fb\3\u02fb" + + "\3\u02fb\3\u02fb\3\u02fc\3\u02fc\3\u02fc\3\u02fc\3\u02fc\3\u02fd\3\u02fd" + + "\3\u02fd\3\u02fd\3\u02fd\3\u02fe\3\u02fe\3\u02fe\3\u02fe\3\u02fe\3\u02ff" + + "\3\u02ff\3\u02ff\3\u02ff\3\u02ff\3\u02ff\3\u0300\3\u0300\3\u0300\3\u0300" + + "\3\u0300\3\u0301\3\u0301\3\u0301\3\u0301\3\u0301\3\u0302\3\u0302\3\u0302" + + "\3\u0302\3\u0302\3\u0302\3\u0302\3\u0302\3\u0303\3\u0303\3\u0303\3\u0303" + + "\3\u0303\3\u0303\3\u0303\3\u0303\3\u0303\3\u0304\3\u0304\3\u0304\3\u0304" + + "\3\u0304\3\u0304\3\u0305\3\u0305\3\u0305\3\u0305\3\u0305\3\u0305\3\u0305" + + "\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306\3\u0307\3\u0307\3\u0307" + + "\3\u0307\3\u0307\3\u0307\3\u0307\3\u0307\3\u0308\3\u0308\3\u0308\3\u0308" + + "\3\u0308\3\u0308\3\u0308\3\u0308\3\u0309\3\u0309\3\u0309\3\u0309\3\u0309" + + "\3\u0309\3\u0309\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a" + + "\3\u030a\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b" + + "\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030d" + + "\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d" + + "\3\u030d\3\u030d\3\u030e\3\u030e\3\u030e\3\u030e\3\u030e\3\u030e\3\u030e" + + "\3\u030f\3\u030f\3\u030f\3\u030f\3\u030f\3\u0310\3\u0310\3\u0310\3\u0310" + + "\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0311" + + "\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311\3\u0312\3\u0312\3\u0312" + + "\3\u0312\3\u0312\3\u0312\3\u0312\3\u0312\3\u0313\3\u0313\3\u0313\3\u0313" + + "\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0314\3\u0314\3\u0314\3\u0314" + + "\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314" + + "\3\u0314\3\u0315\3\u0315\3\u0315\3\u0315\3\u0315\3\u0316\3\u0316\3\u0316" + + "\3\u0316\3\u0316\3\u0316\3\u0316\3\u0317\3\u0317\3\u0317\3\u0317\3\u0318" + + "\3\u0318\3\u0319\3\u0319\3\u031a\3\u031a\3\u031a\3\u031b\3\u031b\3\u031c" + + "\3\u031c\3\u031c\3\u031d\3\u031d\3\u031e\3\u031e\3\u031f\3\u031f\3\u0320" + + "\3\u0320\3\u0321\3\u0321\3\u0322\3\u0322\3\u0322\7\u0322\u20f6\n\u0322" + + "\f\u0322\16\u0322\u20f9\13\u0322\3\u0322\3\u0322\3\u0323\3\u0323\3\u0323" + + "\3\u0324\5\u0324\u2101\n\u0324\3\u0324\6\u0324\u2104\n\u0324\r\u0324\16" + + "\u0324\u2105\3\u0324\3\u0324\6\u0324\u210a\n\u0324\r\u0324\16\u0324\u210b" + + "\3\u0324\3\u0324\7\u0324\u2110\n\u0324\f\u0324\16\u0324\u2113\13\u0324" + + "\3\u0324\6\u0324\u2116\n\u0324\r\u0324\16\u0324\u2117\5\u0324\u211a\n" + + "\u0324\3\u0325\5\u0325\u211d\n\u0325\3\u0325\6\u0325\u2120\n\u0325\r\u0325" + + "\16\u0325\u2121\3\u0325\3\u0325\6\u0325\u2126\n\u0325\r\u0325\16\u0325" + + "\u2127\5\u0325\u212a\n\u0325\3\u0326\3\u0326\3\u0326\3\u0327\3\u0327\3" + + "\u0328\3\u0328\3\u0329\3\u0329\3\u032a\3\u032a\7\u032a\u2137\n\u032a\f" + + "\u032a\16\u032a\u213a\13\u032a\3\u032b\3\u032b\6\u032b\u213e\n\u032b\r" + + "\u032b\16\u032b\u213f\3\u032c\3\u032c\7\u032c\u2144\n\u032c\f\u032c\16" + + "\u032c\u2147\13\u032c\3\u032d\3\u032d\3\u032e\3\u032e\3\u032e\3\u032f" + + "\3\u032f\3\u032f\3\u0330\3\u0330\3\u0330\3\u0331\3\u0331\3\u0331\3\u0332" + + "\3\u0332\3\u0333\3\u0333\3\u0334\3\u0334\3\u0334\3\u0335\3\u0335\3\u0335" + + "\3\u0336\3\u0336\3\u0337\3\u0337\3\u0338\3\u0338\3\u0338\3\u0339\3\u0339" + + "\3\u033a\3\u033a\3\u033a\3\u033b\3\u033b\3\u033b\3\u033c\3\u033c\3\u033d" + + "\3\u033d\3\u033d\3\u033e\3\u033e\3\u033e\3\u033f\3\u033f\3\u033f\3\u033f" + + "\3\u0340\3\u0340\3\u0340\3\u0341\3\u0341\3\u0341\3\u0342\3\u0342\3\u0342" + + "\3\u0342\3\u0343\3\u0343\3\u0343\3\u0343\3\u0344\3\u0344\3\u0345\3\u0345" + + "\3\u0345\3\u0346\3\u0346\3\u0346\3\u0347\3\u0347\3\u0347\3\u0348\3\u0348" + + "\3\u0348\3\u0349\3\u0349\3\u0349\3\u0349\3\u034a\3\u034a\3\u034a\3\u034b" + + "\3\u034b\3\u034b\3\u034b\3\u034c\3\u034c\3\u034c\3\u034c\3\u034d\3\u034d" + + "\3\u034e\3\u034e\3\u034f\3\u034f\3\u0350\3\u0350\3\u0350\3\u0351\3\u0351" + + "\3\u0351\3\u0351\3\u0352\3\u0352\3\u0352\3\u0353\3\u0353\3\u0354\3\u0354" + + "\3\u0355\3\u0355\3\u0355\3\u0356\3\u0356\3\u0356\3\u0357\3\u0357\3\u0357" + + "\3\u0358\3\u0358\3\u0358\3\u0359\3\u0359\3\u035a\3\u035a\3\u035b\3\u035b" + + "\3\u035b\3\u035c\3\u035c\3\u035c\3\u035c\3\u035c\3\u035d\3\u035d\3\u035d" + + "\3\u035d\3\u035e\3\u035e\3\u035e\3\u035e\3\u035e\3\u035f\3\u035f\3\u035f" + + "\3\u035f\3\u0360\3\u0360\3\u0360\3\u0361\3\u0361\3\u0361\3\u0362\3\u0362" + + "\4\u06d2\u06e0\2\u0363\3\3\5\4\7\5\t\2\13\2\r\2\17\2\21\2\23\2\25\2\27" + + "\2\31\2\33\2\35\2\37\2!\2#\2%\2\'\2)\2+\2-\2/\2\61\2\63\2\65\2\67\29\2" + + ";\2=\2?\2A\2C\2E\2G\6I\7K\bM\tO\nQ\13S\fU\rW\16Y\17[\20]\21_\22a\23c\24" + + "e\25g\26i\27k\30m\31o\32q\33s\34u\35w\36y\37{ }!\177\"\u0081#\u0083$\u0085" + + "%\u0087&\u0089\'\u008b(\u008d)\u008f*\u0091+\u0093,\u0095-\u0097.\u0099" + + "/\u009b\60\u009d\61\u009f\62\u00a1\63\u00a3\64\u00a5\65\u00a7\66\u00a9" + + "\67\u00ab8\u00ad9\u00af:\u00b1;\u00b3<\u00b5=\u00b7>\u00b9?\u00bb@\u00bd" + + "A\u00bfB\u00c1C\u00c3D\u00c5E\u00c7F\u00c9G\u00cbH\u00cdI\u00cfJ\u00d1" + + "K\u00d3L\u00d5M\u00d7N\u00d9O\u00dbP\u00ddQ\u00dfR\u00e1S\u00e3T\u00e5" + + "U\u00e7V\u00e9W\u00ebX\u00edY\u00efZ\u00f1[\u00f3\\\u00f5]\u00f7^\u00f9" + + "_\u00fb`\u00fda\u00ffb\u0101c\u0103d\u0105e\u0107f\u0109g\u010bh\u010d" + + "i\u010fj\u0111k\u0113l\u0115m\u0117n\u0119o\u011bp\u011dq\u011fr\u0121" + + "s\u0123t\u0125u\u0127v\u0129w\u012bx\u012dy\u012fz\u0131{\u0133|\u0135" + + "}\u0137~\u0139\177\u013b\u0080\u013d\u0081\u013f\u0082\u0141\u0083\u0143" + + "\u0084\u0145\u0085\u0147\u0086\u0149\u0087\u014b\u0088\u014d\u0089\u014f" + + "\u008a\u0151\u008b\u0153\u008c\u0155\u008d\u0157\u008e\u0159\u008f\u015b" + + "\u0090\u015d\u0091\u015f\u0092\u0161\u0093\u0163\u0094\u0165\u0095\u0167" + + "\u0096\u0169\u0097\u016b\u0098\u016d\u0099\u016f\u009a\u0171\u009b\u0173" + + "\u009c\u0175\u009d\u0177\u009e\u0179\u009f\u017b\u00a0\u017d\u00a1\u017f" + + "\u00a2\u0181\u00a3\u0183\u00a4\u0185\u00a5\u0187\u00a6\u0189\u00a7\u018b" + + "\u00a8\u018d\u00a9\u018f\u00aa\u0191\u00ab\u0193\u00ac\u0195\u00ad\u0197" + + "\u00ae\u0199\u00af\u019b\u00b0\u019d\u00b1\u019f\u00b2\u01a1\u00b3\u01a3" + + "\u00b4\u01a5\u00b5\u01a7\u00b6\u01a9\u00b7\u01ab\u00b8\u01ad\u00b9\u01af" + + "\u00ba\u01b1\u00bb\u01b3\u00bc\u01b5\u00bd\u01b7\u00be\u01b9\u00bf\u01bb" + + "\u00c0\u01bd\u00c1\u01bf\u00c2\u01c1\u00c3\u01c3\u00c4\u01c5\u00c5\u01c7" + + "\u00c6\u01c9\u00c7\u01cb\u00c8\u01cd\u00c9\u01cf\u00ca\u01d1\u00cb\u01d3" + + "\u00cc\u01d5\u00cd\u01d7\u00ce\u01d9\u00cf\u01db\u00d0\u01dd\u00d1\u01df" + + "\u00d2\u01e1\u00d3\u01e3\u00d4\u01e5\u00d5\u01e7\u00d6\u01e9\u00d7\u01eb" + + "\u00d8\u01ed\u00d9\u01ef\u00da\u01f1\u00db\u01f3\u00dc\u01f5\u00dd\u01f7" + + "\u00de\u01f9\u00df\u01fb\u00e0\u01fd\u00e1\u01ff\u00e2\u0201\u00e3\u0203" + + "\u00e4\u0205\u00e5\u0207\u00e6\u0209\u00e7\u020b\u00e8\u020d\u00e9\u020f" + + "\u00ea\u0211\u00eb\u0213\u00ec\u0215\u00ed\u0217\u00ee\u0219\u00ef\u021b" + + "\u00f0\u021d\u00f1\u021f\u00f2\u0221\u00f3\u0223\u00f4\u0225\u00f5\u0227" + + "\u00f6\u0229\u00f7\u022b\u00f8\u022d\u00f9\u022f\u00fa\u0231\u00fb\u0233" + + "\u00fc\u0235\u00fd\u0237\u00fe\u0239\u00ff\u023b\u0100\u023d\u0101\u023f" + + "\u0102\u0241\u0103\u0243\u0104\u0245\u0105\u0247\u0106\u0249\u0107\u024b" + + "\u0108\u024d\u0109\u024f\u010a\u0251\u010b\u0253\u010c\u0255\u010d\u0257" + + "\u010e\u0259\u010f\u025b\u0110\u025d\u0111\u025f\u0112\u0261\u0113\u0263" + + "\u0114\u0265\u0115\u0267\u0116\u0269\u0117\u026b\u0118\u026d\u0119\u026f" + + "\u011a\u0271\u011b\u0273\u011c\u0275\u011d\u0277\u011e\u0279\u011f\u027b" + + "\u0120\u027d\u0121\u027f\u0122\u0281\u0123\u0283\u0124\u0285\u0125\u0287" + + "\u0126\u0289\u0127\u028b\u0128\u028d\u0129\u028f\u012a\u0291\u012b\u0293" + + "\u012c\u0295\u012d\u0297\u012e\u0299\u012f\u029b\u0130\u029d\u0131\u029f" + + "\u0132\u02a1\u0133\u02a3\u0134\u02a5\u0135\u02a7\u0136\u02a9\u0137\u02ab" + + "\u0138\u02ad\u0139\u02af\u013a\u02b1\u013b\u02b3\u013c\u02b5\u013d\u02b7" + + "\u013e\u02b9\u013f\u02bb\u0140\u02bd\u0141\u02bf\u0142\u02c1\u0143\u02c3" + + "\u0144\u02c5\u0145\u02c7\u0146\u02c9\u0147\u02cb\u0148\u02cd\u0149\u02cf" + + "\u014a\u02d1\u014b\u02d3\u014c\u02d5\u014d\u02d7\u014e\u02d9\u014f\u02db" + + "\u0150\u02dd\u0151\u02df\u0152\u02e1\u0153\u02e3\u0154\u02e5\u0155\u02e7" + + "\u0156\u02e9\u0157\u02eb\u0158\u02ed\u0159\u02ef\u015a\u02f1\u015b\u02f3" + + "\u015c\u02f5\u015d\u02f7\u015e\u02f9\u015f\u02fb\u0160\u02fd\u0161\u02ff" + + "\u0162\u0301\u0163\u0303\u0164\u0305\u0165\u0307\u0166\u0309\u0167\u030b" + + "\u0168\u030d\u0169\u030f\u016a\u0311\u016b\u0313\u016c\u0315\u016d\u0317" + + "\u016e\u0319\u016f\u031b\u0170\u031d\u0171\u031f\u0172\u0321\u0173\u0323" + + "\u0174\u0325\u0175\u0327\u0176\u0329\u0177\u032b\u0178\u032d\u0179\u032f" + + "\u017a\u0331\u017b\u0333\u017c\u0335\u017d\u0337\u017e\u0339\u017f\u033b" + + "\u0180\u033d\u0181\u033f\u0182\u0341\u0183\u0343\u0184\u0345\u0185\u0347" + + "\u0186\u0349\u0187\u034b\u0188\u034d\u0189\u034f\u018a\u0351\u018b\u0353" + + "\u018c\u0355\u018d\u0357\u018e\u0359\u018f\u035b\u0190\u035d\u0191\u035f" + + "\u0192\u0361\u0193\u0363\u0194\u0365\u0195\u0367\u0196\u0369\u0197\u036b" + + "\u0198\u036d\u0199\u036f\u019a\u0371\u019b\u0373\u019c\u0375\u019d\u0377" + + "\u019e\u0379\u019f\u037b\u01a0\u037d\u01a1\u037f\u01a2\u0381\u01a3\u0383" + + "\u01a4\u0385\u01a5\u0387\u01a6\u0389\u01a7\u038b\u01a8\u038d\u01a9\u038f" + + "\u01aa\u0391\u01ab\u0393\u01ac\u0395\u01ad\u0397\u01ae\u0399\u01af\u039b" + + "\u01b0\u039d\u01b1\u039f\u01b2\u03a1\u01b3\u03a3\u01b4\u03a5\u01b5\u03a7" + + "\u01b6\u03a9\u01b7\u03ab\u01b8\u03ad\u01b9\u03af\u01ba\u03b1\u01bb\u03b3" + + "\u01bc\u03b5\u01bd\u03b7\u01be\u03b9\u01bf\u03bb\u01c0\u03bd\u01c1\u03bf" + + "\u01c2\u03c1\u01c3\u03c3\u01c4\u03c5\u01c5\u03c7\u01c6\u03c9\u01c7\u03cb" + + "\u01c8\u03cd\u01c9\u03cf\u01ca\u03d1\u01cb\u03d3\u01cc\u03d5\u01cd\u03d7" + + "\u01ce\u03d9\u01cf\u03db\u01d0\u03dd\u01d1\u03df\u01d2\u03e1\u01d3\u03e3" + + "\u01d4\u03e5\u01d5\u03e7\u01d6\u03e9\u01d7\u03eb\u01d8\u03ed\u01d9\u03ef" + + "\u01da\u03f1\u01db\u03f3\u01dc\u03f5\u01dd\u03f7\u01de\u03f9\u01df\u03fb" + + "\u01e0\u03fd\u01e1\u03ff\u01e2\u0401\u01e3\u0403\u01e4\u0405\u01e5\u0407" + + "\u01e6\u0409\u01e7\u040b\u01e8\u040d\u01e9\u040f\u01ea\u0411\u01eb\u0413" + + "\u01ec\u0415\u01ed\u0417\u01ee\u0419\u01ef\u041b\u01f0\u041d\u01f1\u041f" + + "\u01f2\u0421\u01f3\u0423\u01f4\u0425\u01f5\u0427\u01f6\u0429\u01f7\u042b" + + "\u01f8\u042d\u01f9\u042f\u01fa\u0431\u01fb\u0433\u01fc\u0435\u01fd\u0437" + + "\u01fe\u0439\u01ff\u043b\u0200\u043d\u0201\u043f\u0202\u0441\u0203\u0443" + + "\u0204\u0445\u0205\u0447\u0206\u0449\u0207\u044b\u0208\u044d\u0209\u044f" + + "\u020a\u0451\u020b\u0453\u020c\u0455\u020d\u0457\u020e\u0459\u020f\u045b" + + "\u0210\u045d\u0211\u045f\u0212\u0461\u0213\u0463\u0214\u0465\u0215\u0467" + + "\u0216\u0469\u0217\u046b\u0218\u046d\u0219\u046f\u021a\u0471\u021b\u0473" + + "\u021c\u0475\u021d\u0477\u021e\u0479\u021f\u047b\u0220\u047d\u0221\u047f" + + "\u0222\u0481\u0223\u0483\u0224\u0485\u0225\u0487\u0226\u0489\u0227\u048b" + + "\u0228\u048d\u0229\u048f\u022a\u0491\u022b\u0493\u022c\u0495\u022d\u0497" + + "\u022e\u0499\u022f\u049b\u0230\u049d\u0231\u049f\u0232\u04a1\u0233\u04a3" + + "\u0234\u04a5\u0235\u04a7\u0236\u04a9\u0237\u04ab\u0238\u04ad\u0239\u04af" + + "\u023a\u04b1\u023b\u04b3\u023c\u04b5\u023d\u04b7\u023e\u04b9\u023f\u04bb" + + "\u0240\u04bd\u0241\u04bf\u0242\u04c1\u0243\u04c3\u0244\u04c5\u0245\u04c7" + + "\u0246\u04c9\u0247\u04cb\u0248\u04cd\u0249\u04cf\u024a\u04d1\u024b\u04d3" + + "\u024c\u04d5\u024d\u04d7\u024e\u04d9\u024f\u04db\u0250\u04dd\u0251\u04df" + + "\u0252\u04e1\u0253\u04e3\u0254\u04e5\u0255\u04e7\u0256\u04e9\u0257\u04eb" + + "\u0258\u04ed\u0259\u04ef\u025a\u04f1\u025b\u04f3\u025c\u04f5\u025d\u04f7" + + "\u025e\u04f9\u025f\u04fb\u0260\u04fd\u0261\u04ff\u0262\u0501\u0263\u0503" + + "\u0264\u0505\u0265\u0507\u0266\u0509\u0267\u050b\u0268\u050d\u0269\u050f" + + "\u026a\u0511\u026b\u0513\u026c\u0515\u026d\u0517\u026e\u0519\u026f\u051b" + + "\u0270\u051d\u0271\u051f\u0272\u0521\u0273\u0523\u0274\u0525\u0275\u0527" + + "\u0276\u0529\u0277\u052b\u0278\u052d\u0279\u052f\u027a\u0531\u027b\u0533" + + "\u027c\u0535\u027d\u0537\u027e\u0539\u027f\u053b\u0280\u053d\u0281\u053f" + + "\u0282\u0541\u0283\u0543\u0284\u0545\u0285\u0547\u0286\u0549\u0287\u054b" + + "\u0288\u054d\u0289\u054f\u028a\u0551\u028b\u0553\u028c\u0555\u028d\u0557" + + "\u028e\u0559\u028f\u055b\u0290\u055d\u0291\u055f\u0292\u0561\u0293\u0563" + + "\u0294\u0565\u0295\u0567\u0296\u0569\u0297\u056b\u0298\u056d\u0299\u056f" + + "\u029a\u0571\u029b\u0573\u029c\u0575\u029d\u0577\u029e\u0579\u029f\u057b" + + "\u02a0\u057d\u02a1\u057f\u02a2\u0581\u02a3\u0583\u02a4\u0585\u02a5\u0587" + + "\u02a6\u0589\u02a7\u058b\u02a8\u058d\u02a9\u058f\u02aa\u0591\u02ab\u0593" + + "\u02ac\u0595\u02ad\u0597\u02ae\u0599\u02af\u059b\u02b0\u059d\u02b1\u059f" + + "\u02b2\u05a1\u02b3\u05a3\u02b4\u05a5\u02b5\u05a7\u02b6\u05a9\u02b7\u05ab" + + "\u02b8\u05ad\u02b9\u05af\u02ba\u05b1\u02bb\u05b3\u02bc\u05b5\u02bd\u05b7" + + "\u02be\u05b9\u02bf\u05bb\u02c0\u05bd\u02c1\u05bf\u02c2\u05c1\u02c3\u05c3" + + "\u02c4\u05c5\u02c5\u05c7\u02c6\u05c9\u02c7\u05cb\u02c8\u05cd\u02c9\u05cf" + + "\u02ca\u05d1\u02cb\u05d3\u02cc\u05d5\u02cd\u05d7\u02ce\u05d9\u02cf\u05db" + + "\u02d0\u05dd\u02d1\u05df\u02d2\u05e1\u02d3\u05e3\u02d4\u05e5\u02d5\u05e7" + + "\u02d6\u05e9\u02d7\u05eb\u02d8\u05ed\u02d9\u05ef\u02da\u05f1\u02db\u05f3" + + "\u02dc\u05f5\u02dd\u05f7\u02de\u05f9\u02df\u05fb\u02e0\u05fd\u02e1\u05ff" + + "\u02e2\u0601\u02e3\u0603\u02e4\u0605\u02e5\u0607\u02e6\u0609\u02e7\u060b" + + "\u02e8\u060d\u02e9\u060f\u02ea\u0611\u02eb\u0613\u02ec\u0615\u02ed\u0617" + + "\u02ee\u0619\u02ef\u061b\u02f0\u061d\u02f1\u061f\u02f2\u0621\u02f3\u0623" + + "\u02f4\u0625\u02f5\u0627\u02f6\u0629\u02f7\u062b\u02f8\u062d\u02f9\u062f" + + "\u02fa\u0631\u02fb\u0633\u02fc\u0635\u02fd\u0637\u02fe\u0639\u02ff\u063b" + + "\u0300\u063d\u0301\u063f\u0302\u0641\u0303\u0643\u0304\u0645\u0305\u0647" + + "\u0306\u0649\u0307\u064b\u0308\u064d\u0309\u064f\u030a\u0651\u030b\u0653" + + "\u030c\u0655\u030d\u0657\u030e\u0659\u030f\u065b\u0310\u065d\u0311\u065f" + + "\u0312\u0661\u0313\u0663\u0314\u0665\u0315\u0667\u0316\u0669\u0317\u066b" + + "\u0318\u066d\u0319\u066f\u031a\u0671\u031b\u0673\u031c\u0675\u031d\u0677" + + "\u031e\u0679\u031f\u067b\u0320\u067d\u0321\u067f\u0322\u0681\u0323\u0683" + + "\u0324\u0685\u0325\u0687\u0326\u0689\u0327\u068b\u0328\u068d\u0329\u068f" + + "\u032a\u0691\u032b\u0693\u032c\u0695\u032d\u0697\u032e\u0699\u032f\u069b" + + "\u0330\u069d\u0331\u069f\u0332\u06a1\u0333\u06a3\u0334\u06a5\u0335\u06a7" + + "\u0336\u06a9\u0337\u06ab\u0338\u06ad\u0339\u06af\u033a\u06b1\u033b\u06b3" + + "\u033c\u06b5\u033d\u06b7\u033e\u06b9\u033f\u06bb\u0340\u06bd\u0341\u06bf" + + "\u0342\u06c1\u0343\u06c3\u0344\3\2&\5\2\13\f\17\17\"\"\4\2CCcc\4\2DDd" + + "d\4\2EEee\4\2FFff\4\2GGgg\4\2HHhh\4\2IIii\4\2JJjj\4\2KKkk\4\2LLll\4\2" + + "MMmm\4\2NNnn\4\2OOoo\4\2PPpp\4\2QQqq\4\2RRrr\4\2SSss\4\2TTtt\4\2UUuu\4" + + "\2VVvv\4\2WWww\4\2XXxx\4\2YYyy\4\2ZZzz\4\2[[{{\4\2\\\\||\4\2\62;CH\3\2" + + "\62;\4\2$$^^\4\2))^^\4\2^^bb\5\2C\\aac|\7\2&&\62;C\\aac|\6\2C\\aac|\u00a3" + + "\1\b\2&&\62;C\\aac|\u00a3\1\2\u21e1\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2" + + "\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2" + + "S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3" + + "\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2" + + "\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2" + + "y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083" + + "\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2" + + "\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095" + + "\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2" + + "\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7" + + "\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2" + + "\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9" + + "\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2" + + "\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb" + + "\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2" + + "\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd" + + "\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2" + + "\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef" + + "\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2" + + "\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101" + + "\3\2\2\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2" + + "\2\2\u010b\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113" + + "\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2" + + "\2\2\u011d\3\2\2\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125" + + "\3\2\2\2\2\u0127\3\2\2\2\2\u0129\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2" + + "\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\2\u0135\3\2\2\2\2\u0137" + + "\3\2\2\2\2\u0139\3\2\2\2\2\u013b\3\2\2\2\2\u013d\3\2\2\2\2\u013f\3\2\2" + + "\2\2\u0141\3\2\2\2\2\u0143\3\2\2\2\2\u0145\3\2\2\2\2\u0147\3\2\2\2\2\u0149" + + "\3\2\2\2\2\u014b\3\2\2\2\2\u014d\3\2\2\2\2\u014f\3\2\2\2\2\u0151\3\2\2" + + "\2\2\u0153\3\2\2\2\2\u0155\3\2\2\2\2\u0157\3\2\2\2\2\u0159\3\2\2\2\2\u015b" + + "\3\2\2\2\2\u015d\3\2\2\2\2\u015f\3\2\2\2\2\u0161\3\2\2\2\2\u0163\3\2\2" + + "\2\2\u0165\3\2\2\2\2\u0167\3\2\2\2\2\u0169\3\2\2\2\2\u016b\3\2\2\2\2\u016d" + + "\3\2\2\2\2\u016f\3\2\2\2\2\u0171\3\2\2\2\2\u0173\3\2\2\2\2\u0175\3\2\2" + + "\2\2\u0177\3\2\2\2\2\u0179\3\2\2\2\2\u017b\3\2\2\2\2\u017d\3\2\2\2\2\u017f" + + "\3\2\2\2\2\u0181\3\2\2\2\2\u0183\3\2\2\2\2\u0185\3\2\2\2\2\u0187\3\2\2" + + "\2\2\u0189\3\2\2\2\2\u018b\3\2\2\2\2\u018d\3\2\2\2\2\u018f\3\2\2\2\2\u0191" + + "\3\2\2\2\2\u0193\3\2\2\2\2\u0195\3\2\2\2\2\u0197\3\2\2\2\2\u0199\3\2\2" + + "\2\2\u019b\3\2\2\2\2\u019d\3\2\2\2\2\u019f\3\2\2\2\2\u01a1\3\2\2\2\2\u01a3" + + "\3\2\2\2\2\u01a5\3\2\2\2\2\u01a7\3\2\2\2\2\u01a9\3\2\2\2\2\u01ab\3\2\2" + + "\2\2\u01ad\3\2\2\2\2\u01af\3\2\2\2\2\u01b1\3\2\2\2\2\u01b3\3\2\2\2\2\u01b5" + + "\3\2\2\2\2\u01b7\3\2\2\2\2\u01b9\3\2\2\2\2\u01bb\3\2\2\2\2\u01bd\3\2\2" + + "\2\2\u01bf\3\2\2\2\2\u01c1\3\2\2\2\2\u01c3\3\2\2\2\2\u01c5\3\2\2\2\2\u01c7" + + "\3\2\2\2\2\u01c9\3\2\2\2\2\u01cb\3\2\2\2\2\u01cd\3\2\2\2\2\u01cf\3\2\2" + + "\2\2\u01d1\3\2\2\2\2\u01d3\3\2\2\2\2\u01d5\3\2\2\2\2\u01d7\3\2\2\2\2\u01d9" + + "\3\2\2\2\2\u01db\3\2\2\2\2\u01dd\3\2\2\2\2\u01df\3\2\2\2\2\u01e1\3\2\2" + + "\2\2\u01e3\3\2\2\2\2\u01e5\3\2\2\2\2\u01e7\3\2\2\2\2\u01e9\3\2\2\2\2\u01eb" + + "\3\2\2\2\2\u01ed\3\2\2\2\2\u01ef\3\2\2\2\2\u01f1\3\2\2\2\2\u01f3\3\2\2" + + "\2\2\u01f5\3\2\2\2\2\u01f7\3\2\2\2\2\u01f9\3\2\2\2\2\u01fb\3\2\2\2\2\u01fd" + + "\3\2\2\2\2\u01ff\3\2\2\2\2\u0201\3\2\2\2\2\u0203\3\2\2\2\2\u0205\3\2\2" + + "\2\2\u0207\3\2\2\2\2\u0209\3\2\2\2\2\u020b\3\2\2\2\2\u020d\3\2\2\2\2\u020f" + + "\3\2\2\2\2\u0211\3\2\2\2\2\u0213\3\2\2\2\2\u0215\3\2\2\2\2\u0217\3\2\2" + + "\2\2\u0219\3\2\2\2\2\u021b\3\2\2\2\2\u021d\3\2\2\2\2\u021f\3\2\2\2\2\u0221" + + "\3\2\2\2\2\u0223\3\2\2\2\2\u0225\3\2\2\2\2\u0227\3\2\2\2\2\u0229\3\2\2" + + "\2\2\u022b\3\2\2\2\2\u022d\3\2\2\2\2\u022f\3\2\2\2\2\u0231\3\2\2\2\2\u0233" + + "\3\2\2\2\2\u0235\3\2\2\2\2\u0237\3\2\2\2\2\u0239\3\2\2\2\2\u023b\3\2\2" + + "\2\2\u023d\3\2\2\2\2\u023f\3\2\2\2\2\u0241\3\2\2\2\2\u0243\3\2\2\2\2\u0245" + + "\3\2\2\2\2\u0247\3\2\2\2\2\u0249\3\2\2\2\2\u024b\3\2\2\2\2\u024d\3\2\2" + + "\2\2\u024f\3\2\2\2\2\u0251\3\2\2\2\2\u0253\3\2\2\2\2\u0255\3\2\2\2\2\u0257" + + "\3\2\2\2\2\u0259\3\2\2\2\2\u025b\3\2\2\2\2\u025d\3\2\2\2\2\u025f\3\2\2" + + "\2\2\u0261\3\2\2\2\2\u0263\3\2\2\2\2\u0265\3\2\2\2\2\u0267\3\2\2\2\2\u0269" + + "\3\2\2\2\2\u026b\3\2\2\2\2\u026d\3\2\2\2\2\u026f\3\2\2\2\2\u0271\3\2\2" + + "\2\2\u0273\3\2\2\2\2\u0275\3\2\2\2\2\u0277\3\2\2\2\2\u0279\3\2\2\2\2\u027b" + + "\3\2\2\2\2\u027d\3\2\2\2\2\u027f\3\2\2\2\2\u0281\3\2\2\2\2\u0283\3\2\2" + + "\2\2\u0285\3\2\2\2\2\u0287\3\2\2\2\2\u0289\3\2\2\2\2\u028b\3\2\2\2\2\u028d" + + "\3\2\2\2\2\u028f\3\2\2\2\2\u0291\3\2\2\2\2\u0293\3\2\2\2\2\u0295\3\2\2" + + "\2\2\u0297\3\2\2\2\2\u0299\3\2\2\2\2\u029b\3\2\2\2\2\u029d\3\2\2\2\2\u029f" + + "\3\2\2\2\2\u02a1\3\2\2\2\2\u02a3\3\2\2\2\2\u02a5\3\2\2\2\2\u02a7\3\2\2" + + "\2\2\u02a9\3\2\2\2\2\u02ab\3\2\2\2\2\u02ad\3\2\2\2\2\u02af\3\2\2\2\2\u02b1" + + "\3\2\2\2\2\u02b3\3\2\2\2\2\u02b5\3\2\2\2\2\u02b7\3\2\2\2\2\u02b9\3\2\2" + + "\2\2\u02bb\3\2\2\2\2\u02bd\3\2\2\2\2\u02bf\3\2\2\2\2\u02c1\3\2\2\2\2\u02c3" + + "\3\2\2\2\2\u02c5\3\2\2\2\2\u02c7\3\2\2\2\2\u02c9\3\2\2\2\2\u02cb\3\2\2" + + "\2\2\u02cd\3\2\2\2\2\u02cf\3\2\2\2\2\u02d1\3\2\2\2\2\u02d3\3\2\2\2\2\u02d5" + + "\3\2\2\2\2\u02d7\3\2\2\2\2\u02d9\3\2\2\2\2\u02db\3\2\2\2\2\u02dd\3\2\2" + + "\2\2\u02df\3\2\2\2\2\u02e1\3\2\2\2\2\u02e3\3\2\2\2\2\u02e5\3\2\2\2\2\u02e7" + + "\3\2\2\2\2\u02e9\3\2\2\2\2\u02eb\3\2\2\2\2\u02ed\3\2\2\2\2\u02ef\3\2\2" + + "\2\2\u02f1\3\2\2\2\2\u02f3\3\2\2\2\2\u02f5\3\2\2\2\2\u02f7\3\2\2\2\2\u02f9" + + "\3\2\2\2\2\u02fb\3\2\2\2\2\u02fd\3\2\2\2\2\u02ff\3\2\2\2\2\u0301\3\2\2" + + "\2\2\u0303\3\2\2\2\2\u0305\3\2\2\2\2\u0307\3\2\2\2\2\u0309\3\2\2\2\2\u030b" + + "\3\2\2\2\2\u030d\3\2\2\2\2\u030f\3\2\2\2\2\u0311\3\2\2\2\2\u0313\3\2\2" + + "\2\2\u0315\3\2\2\2\2\u0317\3\2\2\2\2\u0319\3\2\2\2\2\u031b\3\2\2\2\2\u031d" + + "\3\2\2\2\2\u031f\3\2\2\2\2\u0321\3\2\2\2\2\u0323\3\2\2\2\2\u0325\3\2\2" + + "\2\2\u0327\3\2\2\2\2\u0329\3\2\2\2\2\u032b\3\2\2\2\2\u032d\3\2\2\2\2\u032f" + + "\3\2\2\2\2\u0331\3\2\2\2\2\u0333\3\2\2\2\2\u0335\3\2\2\2\2\u0337\3\2\2" + + "\2\2\u0339\3\2\2\2\2\u033b\3\2\2\2\2\u033d\3\2\2\2\2\u033f\3\2\2\2\2\u0341" + + "\3\2\2\2\2\u0343\3\2\2\2\2\u0345\3\2\2\2\2\u0347\3\2\2\2\2\u0349\3\2\2" + + "\2\2\u034b\3\2\2\2\2\u034d\3\2\2\2\2\u034f\3\2\2\2\2\u0351\3\2\2\2\2\u0353" + + "\3\2\2\2\2\u0355\3\2\2\2\2\u0357\3\2\2\2\2\u0359\3\2\2\2\2\u035b\3\2\2" + + "\2\2\u035d\3\2\2\2\2\u035f\3\2\2\2\2\u0361\3\2\2\2\2\u0363\3\2\2\2\2\u0365" + + "\3\2\2\2\2\u0367\3\2\2\2\2\u0369\3\2\2\2\2\u036b\3\2\2\2\2\u036d\3\2\2" + + "\2\2\u036f\3\2\2\2\2\u0371\3\2\2\2\2\u0373\3\2\2\2\2\u0375\3\2\2\2\2"; + private static final String _serializedATNSegment1 = + "\u0377\3\2\2\2\2\u0379\3\2\2\2\2\u037b\3\2\2\2\2\u037d\3\2\2\2\2\u037f" + + "\3\2\2\2\2\u0381\3\2\2\2\2\u0383\3\2\2\2\2\u0385\3\2\2\2\2\u0387\3\2\2" + + "\2\2\u0389\3\2\2\2\2\u038b\3\2\2\2\2\u038d\3\2\2\2\2\u038f\3\2\2\2\2\u0391" + + "\3\2\2\2\2\u0393\3\2\2\2\2\u0395\3\2\2\2\2\u0397\3\2\2\2\2\u0399\3\2\2" + + "\2\2\u039b\3\2\2\2\2\u039d\3\2\2\2\2\u039f\3\2\2\2\2\u03a1\3\2\2\2\2\u03a3" + + "\3\2\2\2\2\u03a5\3\2\2\2\2\u03a7\3\2\2\2\2\u03a9\3\2\2\2\2\u03ab\3\2\2" + + "\2\2\u03ad\3\2\2\2\2\u03af\3\2\2\2\2\u03b1\3\2\2\2\2\u03b3\3\2\2\2\2\u03b5" + + "\3\2\2\2\2\u03b7\3\2\2\2\2\u03b9\3\2\2\2\2\u03bb\3\2\2\2\2\u03bd\3\2\2" + + "\2\2\u03bf\3\2\2\2\2\u03c1\3\2\2\2\2\u03c3\3\2\2\2\2\u03c5\3\2\2\2\2\u03c7" + + "\3\2\2\2\2\u03c9\3\2\2\2\2\u03cb\3\2\2\2\2\u03cd\3\2\2\2\2\u03cf\3\2\2" + + "\2\2\u03d1\3\2\2\2\2\u03d3\3\2\2\2\2\u03d5\3\2\2\2\2\u03d7\3\2\2\2\2\u03d9" + + "\3\2\2\2\2\u03db\3\2\2\2\2\u03dd\3\2\2\2\2\u03df\3\2\2\2\2\u03e1\3\2\2" + + "\2\2\u03e3\3\2\2\2\2\u03e5\3\2\2\2\2\u03e7\3\2\2\2\2\u03e9\3\2\2\2\2\u03eb" + + "\3\2\2\2\2\u03ed\3\2\2\2\2\u03ef\3\2\2\2\2\u03f1\3\2\2\2\2\u03f3\3\2\2" + + "\2\2\u03f5\3\2\2\2\2\u03f7\3\2\2\2\2\u03f9\3\2\2\2\2\u03fb\3\2\2\2\2\u03fd" + + "\3\2\2\2\2\u03ff\3\2\2\2\2\u0401\3\2\2\2\2\u0403\3\2\2\2\2\u0405\3\2\2" + + "\2\2\u0407\3\2\2\2\2\u0409\3\2\2\2\2\u040b\3\2\2\2\2\u040d\3\2\2\2\2\u040f" + + "\3\2\2\2\2\u0411\3\2\2\2\2\u0413\3\2\2\2\2\u0415\3\2\2\2\2\u0417\3\2\2" + + "\2\2\u0419\3\2\2\2\2\u041b\3\2\2\2\2\u041d\3\2\2\2\2\u041f\3\2\2\2\2\u0421" + + "\3\2\2\2\2\u0423\3\2\2\2\2\u0425\3\2\2\2\2\u0427\3\2\2\2\2\u0429\3\2\2" + + "\2\2\u042b\3\2\2\2\2\u042d\3\2\2\2\2\u042f\3\2\2\2\2\u0431\3\2\2\2\2\u0433" + + "\3\2\2\2\2\u0435\3\2\2\2\2\u0437\3\2\2\2\2\u0439\3\2\2\2\2\u043b\3\2\2" + + "\2\2\u043d\3\2\2\2\2\u043f\3\2\2\2\2\u0441\3\2\2\2\2\u0443\3\2\2\2\2\u0445" + + "\3\2\2\2\2\u0447\3\2\2\2\2\u0449\3\2\2\2\2\u044b\3\2\2\2\2\u044d\3\2\2" + + "\2\2\u044f\3\2\2\2\2\u0451\3\2\2\2\2\u0453\3\2\2\2\2\u0455\3\2\2\2\2\u0457" + + "\3\2\2\2\2\u0459\3\2\2\2\2\u045b\3\2\2\2\2\u045d\3\2\2\2\2\u045f\3\2\2" + + "\2\2\u0461\3\2\2\2\2\u0463\3\2\2\2\2\u0465\3\2\2\2\2\u0467\3\2\2\2\2\u0469" + + "\3\2\2\2\2\u046b\3\2\2\2\2\u046d\3\2\2\2\2\u046f\3\2\2\2\2\u0471\3\2\2" + + "\2\2\u0473\3\2\2\2\2\u0475\3\2\2\2\2\u0477\3\2\2\2\2\u0479\3\2\2\2\2\u047b" + + "\3\2\2\2\2\u047d\3\2\2\2\2\u047f\3\2\2\2\2\u0481\3\2\2\2\2\u0483\3\2\2" + + "\2\2\u0485\3\2\2\2\2\u0487\3\2\2\2\2\u0489\3\2\2\2\2\u048b\3\2\2\2\2\u048d" + + "\3\2\2\2\2\u048f\3\2\2\2\2\u0491\3\2\2\2\2\u0493\3\2\2\2\2\u0495\3\2\2" + + "\2\2\u0497\3\2\2\2\2\u0499\3\2\2\2\2\u049b\3\2\2\2\2\u049d\3\2\2\2\2\u049f" + + "\3\2\2\2\2\u04a1\3\2\2\2\2\u04a3\3\2\2\2\2\u04a5\3\2\2\2\2\u04a7\3\2\2" + + "\2\2\u04a9\3\2\2\2\2\u04ab\3\2\2\2\2\u04ad\3\2\2\2\2\u04af\3\2\2\2\2\u04b1" + + "\3\2\2\2\2\u04b3\3\2\2\2\2\u04b5\3\2\2\2\2\u04b7\3\2\2\2\2\u04b9\3\2\2" + + "\2\2\u04bb\3\2\2\2\2\u04bd\3\2\2\2\2\u04bf\3\2\2\2\2\u04c1\3\2\2\2\2\u04c3" + + "\3\2\2\2\2\u04c5\3\2\2\2\2\u04c7\3\2\2\2\2\u04c9\3\2\2\2\2\u04cb\3\2\2" + + "\2\2\u04cd\3\2\2\2\2\u04cf\3\2\2\2\2\u04d1\3\2\2\2\2\u04d3\3\2\2\2\2\u04d5" + + "\3\2\2\2\2\u04d7\3\2\2\2\2\u04d9\3\2\2\2\2\u04db\3\2\2\2\2\u04dd\3\2\2" + + "\2\2\u04df\3\2\2\2\2\u04e1\3\2\2\2\2\u04e3\3\2\2\2\2\u04e5\3\2\2\2\2\u04e7" + + "\3\2\2\2\2\u04e9\3\2\2\2\2\u04eb\3\2\2\2\2\u04ed\3\2\2\2\2\u04ef\3\2\2" + + "\2\2\u04f1\3\2\2\2\2\u04f3\3\2\2\2\2\u04f5\3\2\2\2\2\u04f7\3\2\2\2\2\u04f9" + + "\3\2\2\2\2\u04fb\3\2\2\2\2\u04fd\3\2\2\2\2\u04ff\3\2\2\2\2\u0501\3\2\2" + + "\2\2\u0503\3\2\2\2\2\u0505\3\2\2\2\2\u0507\3\2\2\2\2\u0509\3\2\2\2\2\u050b" + + "\3\2\2\2\2\u050d\3\2\2\2\2\u050f\3\2\2\2\2\u0511\3\2\2\2\2\u0513\3\2\2" + + "\2\2\u0515\3\2\2\2\2\u0517\3\2\2\2\2\u0519\3\2\2\2\2\u051b\3\2\2\2\2\u051d" + + "\3\2\2\2\2\u051f\3\2\2\2\2\u0521\3\2\2\2\2\u0523\3\2\2\2\2\u0525\3\2\2" + + "\2\2\u0527\3\2\2\2\2\u0529\3\2\2\2\2\u052b\3\2\2\2\2\u052d\3\2\2\2\2\u052f" + + "\3\2\2\2\2\u0531\3\2\2\2\2\u0533\3\2\2\2\2\u0535\3\2\2\2\2\u0537\3\2\2" + + "\2\2\u0539\3\2\2\2\2\u053b\3\2\2\2\2\u053d\3\2\2\2\2\u053f\3\2\2\2\2\u0541" + + "\3\2\2\2\2\u0543\3\2\2\2\2\u0545\3\2\2\2\2\u0547\3\2\2\2\2\u0549\3\2\2" + + "\2\2\u054b\3\2\2\2\2\u054d\3\2\2\2\2\u054f\3\2\2\2\2\u0551\3\2\2\2\2\u0553" + + "\3\2\2\2\2\u0555\3\2\2\2\2\u0557\3\2\2\2\2\u0559\3\2\2\2\2\u055b\3\2\2" + + "\2\2\u055d\3\2\2\2\2\u055f\3\2\2\2\2\u0561\3\2\2\2\2\u0563\3\2\2\2\2\u0565" + + "\3\2\2\2\2\u0567\3\2\2\2\2\u0569\3\2\2\2\2\u056b\3\2\2\2\2\u056d\3\2\2" + + "\2\2\u056f\3\2\2\2\2\u0571\3\2\2\2\2\u0573\3\2\2\2\2\u0575\3\2\2\2\2\u0577" + + "\3\2\2\2\2\u0579\3\2\2\2\2\u057b\3\2\2\2\2\u057d\3\2\2\2\2\u057f\3\2\2" + + "\2\2\u0581\3\2\2\2\2\u0583\3\2\2\2\2\u0585\3\2\2\2\2\u0587\3\2\2\2\2\u0589" + + "\3\2\2\2\2\u058b\3\2\2\2\2\u058d\3\2\2\2\2\u058f\3\2\2\2\2\u0591\3\2\2" + + "\2\2\u0593\3\2\2\2\2\u0595\3\2\2\2\2\u0597\3\2\2\2\2\u0599\3\2\2\2\2\u059b" + + "\3\2\2\2\2\u059d\3\2\2\2\2\u059f\3\2\2\2\2\u05a1\3\2\2\2\2\u05a3\3\2\2" + + "\2\2\u05a5\3\2\2\2\2\u05a7\3\2\2\2\2\u05a9\3\2\2\2\2\u05ab\3\2\2\2\2\u05ad" + + "\3\2\2\2\2\u05af\3\2\2\2\2\u05b1\3\2\2\2\2\u05b3\3\2\2\2\2\u05b5\3\2\2" + + "\2\2\u05b7\3\2\2\2\2\u05b9\3\2\2\2\2\u05bb\3\2\2\2\2\u05bd\3\2\2\2\2\u05bf" + + "\3\2\2\2\2\u05c1\3\2\2\2\2\u05c3\3\2\2\2\2\u05c5\3\2\2\2\2\u05c7\3\2\2" + + "\2\2\u05c9\3\2\2\2\2\u05cb\3\2\2\2\2\u05cd\3\2\2\2\2\u05cf\3\2\2\2\2\u05d1" + + "\3\2\2\2\2\u05d3\3\2\2\2\2\u05d5\3\2\2\2\2\u05d7\3\2\2\2\2\u05d9\3\2\2" + + "\2\2\u05db\3\2\2\2\2\u05dd\3\2\2\2\2\u05df\3\2\2\2\2\u05e1\3\2\2\2\2\u05e3" + + "\3\2\2\2\2\u05e5\3\2\2\2\2\u05e7\3\2\2\2\2\u05e9\3\2\2\2\2\u05eb\3\2\2" + + "\2\2\u05ed\3\2\2\2\2\u05ef\3\2\2\2\2\u05f1\3\2\2\2\2\u05f3\3\2\2\2\2\u05f5" + + "\3\2\2\2\2\u05f7\3\2\2\2\2\u05f9\3\2\2\2\2\u05fb\3\2\2\2\2\u05fd\3\2\2" + + "\2\2\u05ff\3\2\2\2\2\u0601\3\2\2\2\2\u0603\3\2\2\2\2\u0605\3\2\2\2\2\u0607" + + "\3\2\2\2\2\u0609\3\2\2\2\2\u060b\3\2\2\2\2\u060d\3\2\2\2\2\u060f\3\2\2" + + "\2\2\u0611\3\2\2\2\2\u0613\3\2\2\2\2\u0615\3\2\2\2\2\u0617\3\2\2\2\2\u0619" + + "\3\2\2\2\2\u061b\3\2\2\2\2\u061d\3\2\2\2\2\u061f\3\2\2\2\2\u0621\3\2\2" + + "\2\2\u0623\3\2\2\2\2\u0625\3\2\2\2\2\u0627\3\2\2\2\2\u0629\3\2\2\2\2\u062b" + + "\3\2\2\2\2\u062d\3\2\2\2\2\u062f\3\2\2\2\2\u0631\3\2\2\2\2\u0633\3\2\2" + + "\2\2\u0635\3\2\2\2\2\u0637\3\2\2\2\2\u0639\3\2\2\2\2\u063b\3\2\2\2\2\u063d" + + "\3\2\2\2\2\u063f\3\2\2\2\2\u0641\3\2\2\2\2\u0643\3\2\2\2\2\u0645\3\2\2" + + "\2\2\u0647\3\2\2\2\2\u0649\3\2\2\2\2\u064b\3\2\2\2\2\u064d\3\2\2\2\2\u064f" + + "\3\2\2\2\2\u0651\3\2\2\2\2\u0653\3\2\2\2\2\u0655\3\2\2\2\2\u0657\3\2\2" + + "\2\2\u0659\3\2\2\2\2\u065b\3\2\2\2\2\u065d\3\2\2\2\2\u065f\3\2\2\2\2\u0661" + + "\3\2\2\2\2\u0663\3\2\2\2\2\u0665\3\2\2\2\2\u0667\3\2\2\2\2\u0669\3\2\2" + + "\2\2\u066b\3\2\2\2\2\u066d\3\2\2\2\2\u066f\3\2\2\2\2\u0671\3\2\2\2\2\u0673" + + "\3\2\2\2\2\u0675\3\2\2\2\2\u0677\3\2\2\2\2\u0679\3\2\2\2\2\u067b\3\2\2" + + "\2\2\u067d\3\2\2\2\2\u067f\3\2\2\2\2\u0681\3\2\2\2\2\u0683\3\2\2\2\2\u0685" + + "\3\2\2\2\2\u0687\3\2\2\2\2\u0689\3\2\2\2\2\u068b\3\2\2\2\2\u068d\3\2\2" + + "\2\2\u068f\3\2\2\2\2\u0691\3\2\2\2\2\u0693\3\2\2\2\2\u0695\3\2\2\2\2\u0697" + + "\3\2\2\2\2\u0699\3\2\2\2\2\u069b\3\2\2\2\2\u069d\3\2\2\2\2\u069f\3\2\2" + + "\2\2\u06a1\3\2\2\2\2\u06a3\3\2\2\2\2\u06a5\3\2\2\2\2\u06a7\3\2\2\2\2\u06a9" + + "\3\2\2\2\2\u06ab\3\2\2\2\2\u06ad\3\2\2\2\2\u06af\3\2\2\2\2\u06b1\3\2\2" + + "\2\2\u06b3\3\2\2\2\2\u06b5\3\2\2\2\2\u06b7\3\2\2\2\2\u06b9\3\2\2\2\2\u06bb" + + "\3\2\2\2\2\u06bd\3\2\2\2\2\u06bf\3\2\2\2\2\u06c1\3\2\2\2\2\u06c3\3\2\2" + + "\2\3\u06c6\3\2\2\2\5\u06cc\3\2\2\2\7\u06da\3\2\2\2\t\u06e7\3\2\2\2\13" + + "\u06e9\3\2\2\2\r\u06eb\3\2\2\2\17\u06ed\3\2\2\2\21\u06ef\3\2\2\2\23\u06f1" + + "\3\2\2\2\25\u06f3\3\2\2\2\27\u06f5\3\2\2\2\31\u06f7\3\2\2\2\33\u06f9\3" + + "\2\2\2\35\u06fb\3\2\2\2\37\u06fd\3\2\2\2!\u06ff\3\2\2\2#\u0701\3\2\2\2" + + "%\u0703\3\2\2\2\'\u0705\3\2\2\2)\u0707\3\2\2\2+\u0709\3\2\2\2-\u070b\3" + + "\2\2\2/\u070d\3\2\2\2\61\u070f\3\2\2\2\63\u0711\3\2\2\2\65\u0713\3\2\2" + + "\2\67\u0715\3\2\2\29\u0717\3\2\2\2;\u0719\3\2\2\2=\u071b\3\2\2\2?\u071d" + + "\3\2\2\2A\u071f\3\2\2\2C\u072c\3\2\2\2E\u0739\3\2\2\2G\u0746\3\2\2\2I" + + "\u0748\3\2\2\2K\u074e\3\2\2\2M\u0752\3\2\2\2O\u075b\3\2\2\2Q\u0762\3\2" + + "\2\2S\u0769\3\2\2\2U\u076d\3\2\2\2W\u0771\3\2\2\2Y\u0777\3\2\2\2[\u077d" + + "\3\2\2\2]\u0787\3\2\2\2_\u078d\3\2\2\2a\u0791\3\2\2\2c\u079a\3\2\2\2e" + + "\u079f\3\2\2\2g\u07a5\3\2\2\2i\u07ac\3\2\2\2k\u07b4\3\2\2\2m\u07bc\3\2" + + "\2\2o\u07c0\3\2\2\2q\u07c4\3\2\2\2s\u07c8\3\2\2\2u\u07ce\3\2\2\2w\u07d1" + + "\3\2\2\2y\u07d5\3\2\2\2{\u07e0\3\2\2\2}\u07ea\3\2\2\2\177\u07f5\3\2\2" + + "\2\u0081\u0800\3\2\2\2\u0083\u0803\3\2\2\2\u0085\u080a\3\2\2\2\u0087\u0814" + + "\3\2\2\2\u0089\u081f\3\2\2\2\u008b\u082d\3\2\2\2\u008d\u0831\3\2\2\2\u008f" + + "\u083a\3\2\2\2\u0091\u0841\3\2\2\2\u0093\u0847\3\2\2\2\u0095\u0851\3\2" + + "\2\2\u0097\u0859\3\2\2\2\u0099\u0860\3\2\2\2\u009b\u0867\3\2\2\2\u009d" + + "\u086b\3\2\2\2\u009f\u0876\3\2\2\2\u00a1\u087d\3\2\2\2\u00a3\u0882\3\2" + + "\2\2\u00a5\u088a\3\2\2\2\u00a7\u088f\3\2\2\2\u00a9\u0897\3\2\2\2\u00ab" + + "\u089f\3\2\2\2\u00ad\u08a2\3\2\2\2\u00af\u08a4\3\2\2\2\u00b1\u08aa\3\2" + + "\2\2\u00b3\u08af\3\2\2\2\u00b5\u08b6\3\2\2\2\u00b7\u08c2\3\2\2\2\u00b9" + + "\u08ca\3\2\2\2\u00bb\u08d3\3\2\2\2\u00bd\u08d8\3\2\2\2\u00bf\u08dd\3\2" + + "\2\2\u00c1\u08e5\3\2\2\2\u00c3\u08f2\3\2\2\2\u00c5\u08f7\3\2\2\2\u00c7" + + "\u08ff\3\2\2\2\u00c9\u0905\3\2\2\2\u00cb\u090a\3\2\2\2\u00cd\u0916\3\2" + + "\2\2\u00cf\u0920\3\2\2\2\u00d1\u0931\3\2\2\2\u00d3\u0947\3\2\2\2\u00d5" + + "\u095a\3\2\2\2\u00d7\u096f\3\2\2\2\u00d9\u097f\3\2\2\2\u00db\u098a\3\2" + + "\2\2\u00dd\u0990\3\2\2\2\u00df\u0998\3\2\2\2\u00e1\u09a3\3\2\2\2\u00e3" + + "\u09a9\3\2\2\2\u00e5\u09b6\3\2\2\2\u00e7\u09bb\3\2\2\2\u00e9\u09c1\3\2" + + "\2\2\u00eb\u09c9\3\2\2\2\u00ed\u09d2\3\2\2\2\u00ef\u09d8\3\2\2\2\u00f1" + + "\u09e0\3\2\2\2\u00f3\u09ea\3\2\2\2\u00f5\u09fc\3\2\2\2\u00f7\u0a0b\3\2" + + "\2\2\u00f9\u0a1c\3\2\2\2\u00fb\u0a24\3\2\2\2\u00fd\u0a2b\3\2\2\2\u00ff" + + "\u0a37\3\2\2\2\u0101\u0a48\3\2\2\2\u0103\u0a5e\3\2\2\2\u0105\u0a66\3\2" + + "\2\2\u0107\u0a6d\3\2\2\2\u0109\u0a77\3\2\2\2\u010b\u0a82\3\2\2\2\u010d" + + "\u0a8c\3\2\2\2\u010f\u0a9d\3\2\2\2\u0111\u0aab\3\2\2\2\u0113\u0ab4\3\2" + + "\2\2\u0115\u0abc\3\2\2\2\u0117\u0ac7\3\2\2\2\u0119\u0ad7\3\2\2\2\u011b" + + "\u0ae2\3\2\2\2\u011d\u0af5\3\2\2\2\u011f\u0b05\3\2\2\2\u0121\u0b17\3\2" + + "\2\2\u0123\u0b23\3\2\2\2\u0125\u0b2f\3\2\2\2\u0127\u0b38\3\2\2\2\u0129" + + "\u0b41\3\2\2\2\u012b\u0b4c\3\2\2\2\u012d\u0b54\3\2\2\2\u012f\u0b59\3\2" + + "\2\2\u0131\u0b5e\3\2\2\2\u0133\u0b6c\3\2\2\2\u0135\u0b72\3\2\2\2\u0137" + + "\u0b78\3\2\2\2\u0139\u0b82\3\2\2\2\u013b\u0b8d\3\2\2\2\u013d\u0b94\3\2" + + "\2\2\u013f\u0b9d\3\2\2\2\u0141\u0ba8\3\2\2\2\u0143\u0bae\3\2\2\2\u0145" + + "\u0bb2\3\2\2\2\u0147\u0bb7\3\2\2\2\u0149\u0bc1\3\2\2\2\u014b\u0bc9\3\2" + + "\2\2\u014d\u0bd6\3\2\2\2\u014f\u0bf6\3\2\2\2\u0151\u0c03\3\2\2\2\u0153" + + "\u0c10\3\2\2\2\u0155\u0c1d\3\2\2\2\u0157\u0c2f\3\2\2\2\u0159\u0c50\3\2" + + "\2\2\u015b\u0c5d\3\2\2\2\u015d\u0c64\3\2\2\2\u015f\u0c70\3\2\2\2\u0161" + + "\u0c76\3\2\2\2\u0163\u0c7b\3\2\2\2\u0165\u0c84\3\2\2\2\u0167\u0c89\3\2" + + "\2\2\u0169\u0ca0\3\2\2\2\u016b\u0cbc\3\2\2\2\u016d\u0cc0\3\2\2\2\u016f" + + "\u0ccb\3\2\2\2\u0171\u0ccf\3\2\2\2\u0173\u0cd7\3\2\2\2\u0175\u0cdf\3\2" + + "\2\2\u0177\u0ce7\3\2\2\2\u0179\u0cf0\3\2\2\2\u017b\u0cfa\3\2\2\2\u017d" + + "\u0d05\3\2\2\2\u017f\u0d0e\3\2\2\2\u0181\u0d16\3\2\2\2\u0183\u0d1e\3\2" + + "\2\2\u0185\u0d25\3\2\2\2\u0187\u0d2c\3\2\2\2\u0189\u0d36\3\2\2\2\u018b" + + "\u0d41\3\2\2\2\u018d\u0d4c\3\2\2\2\u018f\u0d54\3\2\2\2\u0191\u0d5a\3\2" + + "\2\2\u0193\u0d60\3\2\2\2\u0195\u0d68\3\2\2\2\u0197\u0d6d\3\2\2\2\u0199" + + "\u0d76\3\2\2\2\u019b\u0d81\3\2\2\2\u019d\u0d89\3\2\2\2\u019f\u0d94\3\2" + + "\2\2\u01a1\u0da2\3\2\2\2\u01a3\u0dae\3\2\2\2\u01a5\u0db9\3\2\2\2\u01a7" + + "\u0dc1\3\2\2\2\u01a9\u0dd7\3\2\2\2\u01ab\u0ddf\3\2\2\2\u01ad\u0dea\3\2" + + "\2\2\u01af\u0df3\3\2\2\2\u01b1\u0dfc\3\2\2\2\u01b3\u0dff\3\2\2\2\u01b5" + + "\u0e06\3\2\2\2\u01b7\u0e0d\3\2\2\2\u01b9\u0e12\3\2\2\2\u01bb\u0e1a\3\2" + + "\2\2\u01bd\u0e2b\3\2\2\2\u01bf\u0e41\3\2\2\2\u01c1\u0e46\3\2\2\2\u01c3" + + "\u0e4e\3\2\2\2\u01c5\u0e53\3\2\2\2\u01c7\u0e5a\3\2\2\2\u01c9\u0e63\3\2" + + "\2\2\u01cb\u0e6d\3\2\2\2\u01cd\u0e71\3\2\2\2\u01cf\u0e7a\3\2\2\2\u01d1" + + "\u0e81\3\2\2\2\u01d3\u0e88\3\2\2\2\u01d5\u0e8e\3\2\2\2\u01d7\u0e95\3\2" + + "\2\2\u01d9\u0e9f\3\2\2\2\u01db\u0ea7\3\2\2\2\u01dd\u0eb1\3\2\2\2\u01df" + + "\u0ebb\3\2\2\2\u01e1\u0ec0\3\2\2\2\u01e3\u0ec8\3\2\2\2\u01e5\u0ed1\3\2" + + "\2\2\u01e7\u0ed8\3\2\2\2\u01e9\u0edc\3\2\2\2\u01eb\u0ee4\3\2\2\2\u01ed" + + "\u0eed\3\2\2\2\u01ef\u0ef7\3\2\2\2\u01f1\u0f00\3\2\2\2\u01f3\u0f08\3\2" + + "\2\2\u01f5\u0f0e\3\2\2\2\u01f7\u0f14\3\2\2\2\u01f9\u0f1b\3\2\2\2\u01fb" + + "\u0f22\3\2\2\2\u01fd\u0f28\3\2\2\2\u01ff\u0f2e\3\2\2\2\u0201\u0f34\3\2" + + "\2\2\u0203\u0f3a\3\2\2\2\u0205\u0f44\3\2\2\2\u0207\u0f48\3\2\2\2\u0209" + + "\u0f4e\3\2\2\2\u020b\u0f56\3\2\2\2\u020d\u0f5d\3\2\2\2\u020f\u0f65\3\2" + + "\2\2\u0211\u0f6d\3\2\2\2\u0213\u0f73\3\2\2\2\u0215\u0f78\3\2\2\2\u0217" + + "\u0f7f\3\2\2\2\u0219\u0f84\3\2\2\2\u021b\u0f89\3\2\2\2\u021d\u0f92\3\2" + + "\2\2\u021f\u0f99\3\2\2\2\u0221\u0f9b\3\2\2\2\u0223\u0fa3\3\2\2\2\u0225" + + "\u0fad\3\2\2\2\u0227\u0fb1\3\2\2\2\u0229\u0fb8\3\2\2\2\u022b\u0fbb\3\2" + + "\2\2\u022d\u0fc0\3\2\2\2\u022f\u0fc6\3\2\2\2\u0231\u0fce\3\2\2\2\u0233" + + "\u0fd7\3\2\2\2\u0235\u0fdd\3\2\2\2\u0237\u0fe6\3\2\2\2\u0239\u0fee\3\2" + + "\2\2\u023b\u0ff5\3\2\2\2\u023d\u0fff\3\2\2\2\u023f\u1004\3\2\2\2\u0241" + + "\u1009\3\2\2\2\u0243\u100e\3\2\2\2\u0245\u1017\3\2\2\2\u0247\u101e\3\2" + + "\2\2\u0249\u1024\3\2\2\2\u024b\u102e\3\2\2\2\u024d\u1038\3\2\2\2\u024f" + + "\u1047\3\2\2\2\u0251\u1050\3\2\2\2\u0253\u1053\3\2\2\2\u0255\u105d\3\2" + + "\2\2\u0257\u1067\3\2\2\2\u0259\u106d\3\2\2\2\u025b\u1077\3\2\2\2\u025d" + + "\u107d\3\2\2\2\u025f\u1086\3\2\2\2\u0261\u1091\3\2\2\2\u0263\u109b\3\2" + + "\2\2\u0265\u10a1\3\2\2\2\u0267\u10a7\3\2\2\2\u0269\u10ad\3\2\2\2\u026b" + + "\u10b9\3\2\2\2\u026d\u10c0\3\2\2\2\u026f\u10c9\3\2\2\2\u0271\u10d6\3\2" + + "\2\2\u0273\u10de\3\2\2\2\u0275\u10e2\3\2\2\2\u0277\u10ea\3\2\2\2\u0279" + + "\u10f4\3\2\2\2\u027b\u1101\3\2\2\2\u027d\u110a\3\2\2\2\u027f\u110f\3\2" + + "\2\2\u0281\u1117\3\2\2\2\u0283\u111a\3\2\2\2\u0285\u1124\3\2\2\2\u0287" + + "\u112c\3\2\2\2\u0289\u1131\3\2\2\2\u028b\u1133\3\2\2\2\u028d\u1137\3\2" + + "\2\2\u028f\u1142\3\2\2\2\u0291\u114b\3\2\2\2\u0293\u1151\3\2\2\2\u0295" + + "\u115d\3\2\2\2\u0297\u1166\3\2\2\2\u0299\u116c\3\2\2\2\u029b\u1171\3\2" + + "\2\2\u029d\u1179\3\2\2\2\u029f\u1181\3\2\2\2\u02a1\u1187\3\2\2\2\u02a3" + + "\u118c\3\2\2\2\u02a5\u1193\3\2\2\2\u02a7\u1198\3\2\2\2\u02a9\u119e\3\2" + + "\2\2\u02ab\u11a3\3\2\2\2\u02ad\u11a9\3\2\2\2\u02af\u11b0\3\2\2\2\u02b1" + + "\u11b3\3\2\2\2\u02b3\u11b8\3\2\2\2\u02b5\u11be\3\2\2\2\u02b7\u11c8\3\2" + + "\2\2\u02b9\u11d7\3\2\2\2\u02bb\u11e0\3\2\2\2\u02bd\u11e8\3\2\2\2\u02bf" + + "\u11ed\3\2\2\2\u02c1\u11f4\3\2\2\2\u02c3\u11fa\3\2\2\2\u02c5\u11fc\3\2" + + "\2\2\u02c7\u1201\3\2\2\2\u02c9\u1205\3\2\2\2\u02cb\u120d\3\2\2\2\u02cd" + + "\u1213\3\2\2\2\u02cf\u1220\3\2\2\2\u02d1\u1228\3\2\2\2\u02d3\u122c\3\2" + + "\2\2\u02d5\u1235\3\2\2\2\u02d7\u123c\3\2\2\2\u02d9\u1242\3\2\2\2\u02db" + + "\u1251\3\2\2\2\u02dd\u1266\3\2\2\2\u02df\u1273\3\2\2\2\u02e1\u127a\3\2" + + "\2\2\u02e3\u127e\3\2\2\2\u02e5\u1285\3\2\2\2\u02e7\u128e\3\2\2\2\u02e9" + + "\u1292\3\2\2\2\u02eb\u1297\3\2\2\2\u02ed\u12a0\3\2\2\2\u02ef\u12a7\3\2" + + "\2\2\u02f1\u12ae\3\2\2\2\u02f3\u12b4\3\2\2\2\u02f5\u12b9\3\2\2\2\u02f7" + + "\u12be\3\2\2\2\u02f9\u12c7\3\2\2\2\u02fb\u12cd\3\2\2\2\u02fd\u12d2\3\2" + + "\2\2\u02ff\u12d8\3\2\2\2\u0301\u12e1\3\2\2\2\u0303\u12e9\3\2\2\2\u0305" + + "\u12ef\3\2\2\2\u0307\u12f5\3\2\2\2\u0309\u12fd\3\2\2\2\u030b\u1301\3\2" + + "\2\2\u030d\u1306\3\2\2\2\u030f\u1309\3\2\2\2\u0311\u1314\3\2\2\2\u0313" + + "\u1321\3\2\2\2\u0315\u1326\3\2\2\2\u0317\u1330\3\2\2\2\u0319\u133b\3\2" + + "\2\2\u031b\u133f\3\2\2\2\u031d\u1347\3\2\2\2\u031f\u134e\3\2\2\2\u0321" + + "\u1356\3\2\2\2\u0323\u135d\3\2\2\2\u0325\u1362\3\2\2\2\u0327\u136b\3\2" + + "\2\2\u0329\u1372\3\2\2\2\u032b\u1378\3\2\2\2\u032d\u137f\3\2\2\2\u032f" + + "\u1387\3\2\2\2\u0331\u138e\3\2\2\2\u0333\u139b\3\2\2\2\u0335\u13a2\3\2" + + "\2\2\u0337\u13a5\3\2\2\2\u0339\u13a9\3\2\2\2\u033b\u13b0\3\2\2\2\u033d" + + "\u13b5\3\2\2\2\u033f\u13b9\3\2\2\2\u0341\u13bc\3\2\2\2\u0343\u13c1\3\2" + + "\2\2\u0345\u13c6\3\2\2\2\u0347\u13d0\3\2\2\2\u0349\u13d9\3\2\2\2\u034b" + + "\u13e0\3\2\2\2\u034d\u13e8\3\2\2\2\u034f\u13eb\3\2\2\2\u0351\u13f1\3\2" + + "\2\2\u0353\u13fa\3\2\2\2\u0355\u1405\3\2\2\2\u0357\u140c\3\2\2\2\u0359" + + "\u1410\3\2\2\2\u035b\u1416\3\2\2\2\u035d\u141d\3\2\2\2\u035f\u1422\3\2" + + "\2\2\u0361\u142b\3\2\2\2\u0363\u1433\3\2\2\2\u0365\u143e\3\2\2\2\u0367" + + "\u1444\3\2\2\2\u0369\u1448\3\2\2\2\u036b\u1452\3\2\2\2\u036d\u1461\3\2" + + "\2\2\u036f\u1470\3\2\2\2\u0371\u148b\3\2\2\2\u0373\u14a6\3\2\2\2\u0375" + + "\u14be\3\2\2\2\u0377\u14d8\3\2\2\2\u0379\u14e3\3\2\2\2\u037b\u14ea\3\2" + + "\2\2\u037d\u14f2\3\2\2\2\u037f\u14fc\3\2\2\2\u0381\u1503\3\2\2\2\u0383" + + "\u150c\3\2\2\2\u0385\u1511\3\2\2\2\u0387\u151e\3\2\2\2\u0389\u152e\3\2" + + "\2\2\u038b\u153e\3\2\2\2\u038d\u1546\3\2\2\2\u038f\u154c\3\2\2\2\u0391" + + "\u1552\3\2\2\2\u0393\u1556\3\2\2\2\u0395\u155f\3\2\2\2\u0397\u1567\3\2" + + "\2\2\u0399\u156d\3\2\2\2\u039b\u1577\3\2\2\2\u039d\u1581\3\2\2\2\u039f" + + "\u1588\3\2\2\2\u03a1\u1591\3\2\2\2\u03a3\u1599\3\2\2\2\u03a5\u15a2\3\2" + + "\2\2\u03a7\u15ab\3\2\2\2\u03a9\u15b3\3\2\2\2\u03ab\u15b9\3\2\2\2\u03ad" + + "\u15c4\3\2\2\2\u03af\u15cf\3\2\2\2\u03b1\u15d9\3\2\2\2\u03b3\u15e0\3\2" + + "\2\2\u03b5\u15ec\3\2\2\2\u03b7\u15f2\3\2\2\2\u03b9\u15f8\3\2\2\2\u03bb" + + "\u15fd\3\2\2\2\u03bd\u1602\3\2\2\2\u03bf\u1608\3\2\2\2\u03c1\u160d\3\2" + + "\2\2\u03c3\u1616\3\2\2\2\u03c5\u161e\3\2\2\2\u03c7\u1628\3\2\2\2\u03c9" + + "\u162c\3\2\2\2\u03cb\u1637\3\2\2\2\u03cd\u1643\3\2\2\2\u03cf\u164b\3\2" + + "\2\2\u03d1\u1655\3\2\2\2\u03d3\u165f\3\2\2\2\u03d5\u166a\3\2\2\2\u03d7" + + "\u1679\3\2\2\2\u03d9\u1681\3\2\2\2\u03db\u168c\3\2\2\2\u03dd\u1695\3\2" + + "\2\2\u03df\u169e\3\2\2\2\u03e1\u16a7\3\2\2\2\u03e3\u16af\3\2\2\2\u03e5" + + "\u16b8\3\2\2\2\u03e7\u16c0\3\2\2\2\u03e9\u16c7\3\2\2\2\u03eb\u16d2\3\2" + + "\2\2\u03ed\u16da\3\2\2\2\u03ef\u16e2\3\2\2\2\u03f1\u16e8\3\2\2\2\u03f3" + + "\u16f0\3\2\2\2\u03f5\u16f9\3\2\2\2\u03f7\u1700\3\2\2\2\u03f9\u1707\3\2" + + "\2\2\u03fb\u171c\3\2\2\2\u03fd\u172c\3\2\2\2\u03ff\u1742\3\2\2\2\u0401" + + "\u1754\3\2\2\2\u0403\u175e\3\2\2\2\u0405\u1766\3\2\2\2\u0407\u176d\3\2" + + "\2\2\u0409\u1773\3\2\2\2\u040b\u1778\3\2\2\2\u040d\u1781\3\2\2\2\u040f" + + "\u1788\3\2\2\2\u0411\u1790\3\2\2\2\u0413\u17a0\3\2\2\2\u0415\u17ad\3\2" + + "\2\2\u0417\u17bc\3\2\2\2\u0419\u17c0\3\2\2\2\u041b\u17ca\3\2\2\2\u041d" + + "\u17d5\3\2\2\2\u041f\u17da\3\2\2\2\u0421\u17df\3\2\2\2\u0423\u17e9\3\2" + + "\2\2\u0425\u17ef\3\2\2\2\u0427\u17f6\3\2\2\2\u0429\u1802\3\2\2\2\u042b" + + "\u1808\3\2\2\2\u042d\u1816\3\2\2\2\u042f\u1821\3\2\2\2\u0431\u182e\3\2" + + "\2\2\u0433\u1835\3\2\2\2\u0435\u183c\3\2\2\2\u0437\u1843\3\2\2\2\u0439" + + "\u184b\3\2\2\2\u043b\u1854\3\2\2\2\u043d\u185b\3\2\2\2\u043f\u1860\3\2" + + "\2\2\u0441\u186a\3\2\2\2\u0443\u1873\3\2\2\2\u0445\u187d\3\2\2\2\u0447" + + "\u188a\3\2\2\2\u0449\u1896\3\2\2\2\u044b\u189e\3\2\2\2\u044d\u18ab\3\2" + + "\2\2\u044f\u18af\3\2\2\2\u0451\u18b5\3\2\2\2\u0453\u18ba\3\2\2\2\u0455" + + "\u18c0\3\2\2\2\u0457\u18c5\3\2\2\2\u0459\u18cd\3\2\2\2\u045b\u18d4\3\2" + + "\2\2\u045d\u18d9\3\2\2\2\u045f\u18de\3\2\2\2\u0461\u18e7\3\2\2\2\u0463" + + "\u18f0\3\2\2\2\u0465\u18f5\3\2\2\2\u0467\u18fc\3\2\2\2\u0469\u1902\3\2" + + "\2\2\u046b\u190b\3\2\2\2\u046d\u1919\3\2\2\2\u046f\u1926\3\2\2\2\u0471" + + "\u192a\3\2\2\2\u0473\u1932\3\2\2\2\u0475\u193b\3\2\2\2\u0477\u1948\3\2" + + "\2\2\u0479\u1951\3\2\2\2\u047b\u195c\3\2\2\2\u047d\u1961\3\2\2\2\u047f" + + "\u1968\3\2\2\2\u0481\u196e\3\2\2\2\u0483\u1974\3\2\2\2\u0485\u197e\3\2" + + "\2\2\u0487\u1985\3\2\2\2\u0489\u1990\3\2\2\2\u048b\u199b\3\2\2\2\u048d" + + "\u19a7\3\2\2\2\u048f\u19ad\3\2\2\2\u0491\u19b4\3\2\2\2\u0493\u19bc\3\2" + + "\2\2\u0495\u19c3\3\2\2\2\u0497\u19cd\3\2\2\2\u0499\u19d3\3\2\2\2\u049b" + + "\u19e3\3\2\2\2\u049d\u19eb\3\2\2\2\u049f\u19f7\3\2\2\2\u04a1\u1a04\3\2" + + "\2\2\u04a3\u1a0e\3\2\2\2\u04a5\u1a12\3\2\2\2\u04a7\u1a1c\3\2\2\2\u04a9" + + "\u1a22\3\2\2\2\u04ab\u1a29\3\2\2\2\u04ad\u1a35\3\2\2\2\u04af\u1a3b\3\2" + + "\2\2\u04b1\u1a46\3\2\2\2\u04b3\u1a52\3\2\2\2\u04b5\u1a5d\3\2\2\2\u04b7" + + "\u1a62\3\2\2\2\u04b9\u1a6b\3\2\2\2\u04bb\u1a75\3\2\2\2\u04bd\u1a7f\3\2" + + "\2\2\u04bf\u1a84\3\2\2\2\u04c1\u1a89\3\2\2\2\u04c3\u1a8e\3\2\2\2\u04c5" + + "\u1a93\3\2\2\2\u04c7\u1a9d\3\2\2\2\u04c9\u1aab\3\2\2\2\u04cb\u1abb\3\2" + + "\2\2\u04cd\u1ac2\3\2\2\2\u04cf\u1ac5\3\2\2\2\u04d1\u1acb\3\2\2\2\u04d3" + + "\u1adb\3\2\2\2\u04d5\u1ae4\3\2\2\2\u04d7\u1af0\3\2\2\2\u04d9\u1b03\3\2" + + "\2\2\u04db\u1b1a\3\2\2\2\u04dd\u1b33\3\2\2\2\u04df\u1b3d\3\2\2\2\u04e1" + + "\u1b48\3\2\2\2\u04e3\u1b52\3\2\2\2\u04e5\u1b5e\3\2\2\2\u04e7\u1b64\3\2" + + "\2\2\u04e9\u1b6c\3\2\2\2\u04eb\u1b7c\3\2\2\2\u04ed\u1b89\3\2\2\2\u04ef" + + "\u1b98\3\2\2\2\u04f1\u1b9d\3\2\2\2\u04f3\u1ba2\3\2\2\2\u04f5\u1bab\3\2" + + "\2\2\u04f7\u1bb3\3\2\2\2\u04f9\u1bb8\3\2\2\2\u04fb\u1bc0\3\2\2\2\u04fd" + + "\u1bca\3\2\2\2\u04ff\u1bd6\3\2\2\2\u0501\u1bdc\3\2\2\2\u0503\u1be8\3\2" + + "\2\2\u0505\u1bee\3\2\2\2\u0507\u1bf5\3\2\2\2\u0509\u1bfd\3\2\2\2\u050b" + + "\u1c06\3\2\2\2\u050d\u1c0e\3\2\2\2\u050f\u1c15\3\2\2\2\u0511\u1c1b\3\2" + + "\2\2\u0513\u1c22\3\2\2\2\u0515\u1c28\3\2\2\2\u0517\u1c2e\3\2\2\2\u0519" + + "\u1c33\3\2\2\2\u051b\u1c4d\3\2\2\2\u051d\u1c64\3\2\2\2\u051f\u1c7b\3\2" + + "\2\2\u0521\u1c94\3\2\2\2\u0523\u1c9a\3\2\2\2\u0525\u1ca1\3\2\2\2\u0527" + + "\u1ca7\3\2\2\2\u0529\u1cb0\3\2\2\2\u052b\u1cba\3\2\2\2\u052d\u1cc0\3\2" + + "\2\2\u052f\u1cc7\3\2\2\2\u0531\u1ccf\3\2\2\2\u0533\u1cd8\3\2\2\2\u0535" + + "\u1ce0\3\2\2\2\u0537\u1ce9\3\2\2\2\u0539\u1cf2\3\2\2\2\u053b\u1cfa\3\2" + + "\2\2\u053d\u1d02\3\2\2\2\u053f\u1d07\3\2\2\2\u0541\u1d10\3\2\2\2\u0543" + + "\u1d15\3\2\2\2\u0545\u1d1e\3\2\2\2\u0547\u1d24\3\2\2\2\u0549\u1d31\3\2" + + "\2\2\u054b\u1d38\3\2\2\2\u054d\u1d3d\3\2\2\2\u054f\u1d44\3\2\2\2\u0551" + + "\u1d4c\3\2\2\2\u0553\u1d51\3\2\2\2\u0555\u1d57\3\2\2\2\u0557\u1d5c\3\2" + + "\2\2\u0559\u1d61\3\2\2\2\u055b\u1d65\3\2\2\2\u055d\u1d6a\3\2\2\2\u055f" + + "\u1d74\3\2\2\2\u0561\u1d80\3\2\2\2\u0563\u1d8b\3\2\2\2\u0565\u1d98\3\2" + + "\2\2\u0567\u1da0\3\2\2\2\u0569\u1daa\3\2\2\2\u056b\u1db0\3\2\2\2\u056d" + + "\u1db8\3\2\2\2\u056f\u1dc4\3\2\2\2\u0571\u1dd2\3\2\2\2\u0573\u1ddc\3\2" + + "\2\2\u0575\u1de8\3\2\2\2\u0577\u1dee\3\2\2\2\u0579\u1df4\3\2\2\2\u057b" + + "\u1dfb\3\2\2\2\u057d\u1e05\3\2\2\2\u057f\u1e15\3\2\2\2\u0581\u1e21\3\2" + + "\2\2\u0583\u1e2c\3\2\2\2\u0585\u1e39\3\2\2\2\u0587\u1e42\3\2\2\2\u0589" + + "\u1e49\3\2\2\2\u058b\u1e52\3\2\2\2\u058d\u1e59\3\2\2\2\u058f\u1e61\3\2" + + "\2\2\u0591\u1e6c\3\2\2\2\u0593\u1e7d\3\2\2\2\u0595\u1e87\3\2\2\2\u0597" + + "\u1e8e\3\2\2\2\u0599\u1e97\3\2\2\2\u059b\u1ea4\3\2\2\2\u059d\u1ea9\3\2" + + "\2\2\u059f\u1eb4\3\2\2\2\u05a1\u1ebb\3\2\2\2\u05a3\u1ec4\3\2\2\2\u05a5" + + "\u1ec7\3\2\2\2\u05a7\u1ece\3\2\2\2\u05a9\u1ed9\3\2\2\2\u05ab\u1ee2\3\2" + + "\2\2\u05ad\u1eeb\3\2\2\2\u05af\u1ef3\3\2\2\2\u05b1\u1f05\3\2\2\2\u05b3" + + "\u1f11\3\2\2\2\u05b5\u1f17\3\2\2\2\u05b7\u1f1f\3\2\2\2\u05b9\u1f26\3\2" + + "\2\2\u05bb\u1f2c\3\2\2\2\u05bd\u1f31\3\2\2\2\u05bf\u1f36\3\2\2\2\u05c1" + + "\u1f3d\3\2\2\2\u05c3\u1f41\3\2\2\2\u05c5\u1f46\3\2\2\2\u05c7\u1f53\3\2" + + "\2\2\u05c9\u1f5a\3\2\2\2\u05cb\u1f67\3\2\2\2\u05cd\u1f6f\3\2\2\2\u05cf" + + "\u1f78\3\2\2\2\u05d1\u1f83\3\2\2\2\u05d3\u1f8b\3\2\2\2\u05d5\u1f92\3\2" + + "\2\2\u05d7\u1f99\3\2\2\2\u05d9\u1fa0\3\2\2\2\u05db\u1fa7\3\2\2\2\u05dd" + + "\u1fad\3\2\2\2\u05df\u1fb5\3\2\2\2\u05e1\u1fbf\3\2\2\2\u05e3\u1fcb\3\2" + + "\2\2\u05e5\u1fd0\3\2\2\2\u05e7\u1fd4\3\2\2\2\u05e9\u1fda\3\2\2\2\u05eb" + + "\u1fec\3\2\2\2\u05ed\u1ff1\3\2\2\2\u05ef\u1ff8\3\2\2\2\u05f1\u1fff\3\2" + + "\2\2\u05f3\u2006\3\2\2\2\u05f5\u200b\3\2\2\2\u05f7\u2010\3\2\2\2\u05f9" + + "\u2015\3\2\2\2\u05fb\u201a\3\2\2\2\u05fd\u201f\3\2\2\2\u05ff\u2025\3\2" + + "\2\2\u0601\u202a\3\2\2\2\u0603\u202f\3\2\2\2\u0605\u2037\3\2\2\2\u0607" + + "\u2040\3\2\2\2\u0609\u2046\3\2\2\2\u060b\u204d\3\2\2\2\u060d\u2053\3\2" + + "\2\2\u060f\u205b\3\2\2\2\u0611\u2063\3\2\2\2\u0613\u206a\3\2\2\2\u0615" + + "\u2072\3\2\2\2\u0617\u207a\3\2\2\2\u0619\u2082\3\2\2\2\u061b\u208e\3\2" + + "\2\2\u061d\u2095\3\2\2\2\u061f\u209a\3\2\2\2\u0621\u20a6\3\2\2\2\u0623" + + "\u20ad\3\2\2\2\u0625\u20b5\3\2\2\2\u0627\u20be\3\2\2\2\u0629\u20cc\3\2" + + "\2\2\u062b\u20d1\3\2\2\2\u062d\u20d8\3\2\2\2\u062f\u20dc\3\2\2\2\u0631" + + "\u20de\3\2\2\2\u0633\u20e0\3\2\2\2\u0635\u20e3\3\2\2\2\u0637\u20e5\3\2" + + "\2\2\u0639\u20e8\3\2\2\2\u063b\u20ea\3\2\2\2\u063d\u20ec\3\2\2\2\u063f" + + "\u20ee\3\2\2\2\u0641\u20f0\3\2\2\2\u0643\u20f2\3\2\2\2\u0645\u20fc\3\2" + + "\2\2\u0647\u2100\3\2\2\2\u0649\u211c\3\2\2\2\u064b\u212b\3\2\2\2\u064d" + + "\u212e\3\2\2\2\u064f\u2130\3\2\2\2\u0651\u2132\3\2\2\2\u0653\u2134\3\2" + + "\2\2\u0655\u213b\3\2\2\2\u0657\u2141\3\2\2\2\u0659\u2148\3\2\2\2\u065b" + + "\u214a\3\2\2\2\u065d\u214d\3\2\2\2\u065f\u2150\3\2\2\2\u0661\u2153\3\2" + + "\2\2\u0663\u2156\3\2\2\2\u0665\u2158\3\2\2\2\u0667\u215a\3\2\2\2\u0669" + + "\u215d\3\2\2\2\u066b\u2160\3\2\2\2\u066d\u2162\3\2\2\2\u066f\u2164\3\2" + + "\2\2\u0671\u2167\3\2\2\2\u0673\u2169\3\2\2\2\u0675\u216c\3\2\2\2\u0677" + + "\u216f\3\2\2\2\u0679\u2171\3\2\2\2\u067b\u2174\3\2\2\2\u067d\u2177\3\2" + + "\2\2\u067f\u217b\3\2\2\2\u0681\u217e\3\2\2\2\u0683\u2181\3\2\2\2\u0685" + + "\u2185\3\2\2\2\u0687\u2189\3\2\2\2\u0689\u218b\3\2\2\2\u068b\u218e\3\2" + + "\2\2\u068d\u2191\3\2\2\2\u068f\u2194\3\2\2\2\u0691\u2197\3\2\2\2\u0693" + + "\u219b\3\2\2\2\u0695\u219e\3\2\2\2\u0697\u21a2\3\2\2\2\u0699\u21a6\3\2" + + "\2\2\u069b\u21a8\3\2\2\2\u069d\u21aa\3\2\2\2\u069f\u21ac\3\2\2\2\u06a1" + + "\u21af\3\2\2\2\u06a3\u21b3\3\2\2\2\u06a5\u21b6\3\2\2\2\u06a7\u21b8\3\2" + + "\2\2\u06a9\u21ba\3\2\2\2\u06ab\u21bd\3\2\2\2\u06ad\u21c0\3\2\2\2\u06af" + + "\u21c3\3\2\2\2\u06b1\u21c6\3\2\2\2\u06b3\u21c8\3\2\2\2\u06b5\u21ca\3\2" + + "\2\2\u06b7\u21cd\3\2\2\2\u06b9\u21d2\3\2\2\2\u06bb\u21d6\3\2\2\2\u06bd" + + "\u21db\3\2\2\2\u06bf\u21df\3\2\2\2\u06c1\u21e2\3\2\2\2\u06c3\u21e5\3\2" + + "\2\2\u06c5\u06c7\t\2\2\2\u06c6\u06c5\3\2\2\2\u06c7\u06c8\3\2\2\2\u06c8" + + "\u06c6\3\2\2\2\u06c8\u06c9\3\2\2\2\u06c9\u06ca\3\2\2\2\u06ca\u06cb\b\2" + + "\2\2\u06cb\4\3\2\2\2\u06cc\u06cd\7\61\2\2\u06cd\u06ce\7,\2\2\u06ce\u06d2" + + "\3\2\2\2\u06cf\u06d1\13\2\2\2\u06d0\u06cf\3\2\2\2\u06d1\u06d4\3\2\2\2" + + "\u06d2\u06d3\3\2\2\2\u06d2\u06d0\3\2\2\2\u06d3\u06d5\3\2\2\2\u06d4\u06d2" + + "\3\2\2\2\u06d5\u06d6\7,\2\2\u06d6\u06d7\7\61\2\2\u06d7\u06d8\3\2\2\2\u06d8" + + "\u06d9\b\3\3\2\u06d9\6\3\2\2\2\u06da\u06db\7/\2\2\u06db\u06dc\7/\2\2\u06dc" + + "\u06e0\3\2\2\2\u06dd\u06df\13\2\2\2\u06de\u06dd\3\2\2\2\u06df\u06e2\3" + + "\2\2\2\u06e0\u06e1\3\2\2\2\u06e0\u06de\3\2\2\2\u06e1\u06e3\3\2\2\2\u06e2" + + "\u06e0\3\2\2\2\u06e3\u06e4\7\f\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\b\4" + + "\3\2\u06e6\b\3\2\2\2\u06e7\u06e8\t\3\2\2\u06e8\n\3\2\2\2\u06e9\u06ea\t" + + "\4\2\2\u06ea\f\3\2\2\2\u06eb\u06ec\t\5\2\2\u06ec\16\3\2\2\2\u06ed\u06ee" + + "\t\6\2\2\u06ee\20\3\2\2\2\u06ef\u06f0\t\7\2\2\u06f0\22\3\2\2\2\u06f1\u06f2" + + "\t\b\2\2\u06f2\24\3\2\2\2\u06f3\u06f4\t\t\2\2\u06f4\26\3\2\2\2\u06f5\u06f6" + + "\t\n\2\2\u06f6\30\3\2\2\2\u06f7\u06f8\t\13\2\2\u06f8\32\3\2\2\2\u06f9" + + "\u06fa\t\f\2\2\u06fa\34\3\2\2\2\u06fb\u06fc\t\r\2\2\u06fc\36\3\2\2\2\u06fd" + + "\u06fe\t\16\2\2\u06fe \3\2\2\2\u06ff\u0700\t\17\2\2\u0700\"\3\2\2\2\u0701" + + "\u0702\t\20\2\2\u0702$\3\2\2\2\u0703\u0704\t\21\2\2\u0704&\3\2\2\2\u0705" + + "\u0706\t\22\2\2\u0706(\3\2\2\2\u0707\u0708\t\23\2\2\u0708*\3\2\2\2\u0709" + + "\u070a\t\24\2\2\u070a,\3\2\2\2\u070b\u070c\t\25\2\2\u070c.\3\2\2\2\u070d" + + "\u070e\t\26\2\2\u070e\60\3\2\2\2\u070f\u0710\t\27\2\2\u0710\62\3\2\2\2" + + "\u0711\u0712\t\30\2\2\u0712\64\3\2\2\2\u0713\u0714\t\31\2\2\u0714\66\3" + + "\2\2\2\u0715\u0716\t\32\2\2\u07168\3\2\2\2\u0717\u0718\t\33\2\2\u0718" + + ":\3\2\2\2\u0719\u071a\t\34\2\2\u071a<\3\2\2\2\u071b\u071c\t\35\2\2\u071c" + + ">\3\2\2\2\u071d\u071e\t\36\2\2\u071e@\3\2\2\2\u071f\u0727\7$\2\2\u0720" + + "\u0721\7^\2\2\u0721\u0726\13\2\2\2\u0722\u0723\7$\2\2\u0723\u0726\7$\2" + + "\2\u0724\u0726\n\37\2\2\u0725\u0720\3\2\2\2\u0725\u0722\3\2\2\2\u0725" + + "\u0724\3\2\2\2\u0726\u0729\3\2\2\2\u0727\u0725\3\2\2\2\u0727\u0728\3\2" + + "\2\2\u0728\u072a\3\2\2\2\u0729\u0727\3\2\2\2\u072a\u072b\7$\2\2\u072b" + + "B\3\2\2\2\u072c\u0734\7)\2\2\u072d\u072e\7^\2\2\u072e\u0733\13\2\2\2\u072f" + + "\u0730\7)\2\2\u0730\u0733\7)\2\2\u0731\u0733\n \2\2\u0732\u072d\3\2\2" + + "\2\u0732\u072f\3\2\2\2\u0732\u0731\3\2\2\2\u0733\u0736\3\2\2\2\u0734\u0732" + + "\3\2\2\2\u0734\u0735\3\2\2\2\u0735\u0737\3\2\2\2\u0736\u0734\3\2\2\2\u0737" + + "\u0738\7)\2\2\u0738D\3\2\2\2\u0739\u0741\7b\2\2\u073a\u073b\7^\2\2\u073b" + + "\u0740\13\2\2\2\u073c\u073d\7b\2\2\u073d\u0740\7b\2\2\u073e\u0740\n!\2" + + "\2\u073f\u073a\3\2\2\2\u073f\u073c\3\2\2\2\u073f\u073e\3\2\2\2\u0740\u0743" + + "\3\2\2\2\u0741\u073f\3\2\2\2\u0741\u0742\3\2\2\2\u0742\u0744\3\2\2\2\u0743" + + "\u0741\3\2\2\2\u0744\u0745\7b\2\2\u0745F\3\2\2\2\u0746\u0747\5\t\5\2\u0747" + + "H\3\2\2\2\u0748\u0749\5\t\5\2\u0749\u074a\5\13\6\2\u074a\u074b\5%\23\2" + + "\u074b\u074c\5+\26\2\u074c\u074d\5/\30\2\u074dJ\3\2\2\2\u074e\u074f\5" + + "\t\5\2\u074f\u0750\5\13\6\2\u0750\u0751\5-\27\2\u0751L\3\2\2\2\u0752\u0753" + + "\5\t\5\2\u0753\u0754\5\13\6\2\u0754\u0755\5-\27\2\u0755\u0756\5%\23\2" + + "\u0756\u0757\5\37\20\2\u0757\u0758\5\61\31\2\u0758\u0759\5/\30\2\u0759" + + "\u075a\5\21\t\2\u075aN\3\2\2\2\u075b\u075c\5\t\5\2\u075c\u075d\5\r\7\2" + + "\u075d\u075e\5\r\7\2\u075e\u075f\5\21\t\2\u075f\u0760\5-\27\2\u0760\u0761" + + "\5-\27\2\u0761P\3\2\2\2\u0762\u0763\5\t\5\2\u0763\u0764\5\r\7\2\u0764" + + "\u0765\5/\30\2\u0765\u0766\5\31\r\2\u0766\u0767\5%\23\2\u0767\u0768\5" + + "#\22\2\u0768R\3\2\2\2\u0769\u076a\5\t\5\2\u076a\u076b\5\17\b\2\u076b\u076c" + + "\5\t\5\2\u076cT\3\2\2\2\u076d\u076e\5\t\5\2\u076e\u076f\5\17\b\2\u076f" + + "\u0770\5\17\b\2\u0770V\3\2\2\2\u0771\u0772\5\t\5\2\u0772\u0773\5\17\b" + + "\2\u0773\u0774\5!\21\2\u0774\u0775\5\31\r\2\u0775\u0776\5#\22\2\u0776" + + "X\3\2\2\2\u0777\u0778\5\t\5\2\u0778\u0779\5\23\n\2\u0779\u077a\5/\30\2" + + "\u077a\u077b\5\21\t\2\u077b\u077c\5+\26\2\u077cZ\3\2\2\2\u077d\u077e\5" + + "\t\5\2\u077e\u077f\5\25\13\2\u077f\u0780\5\25\13\2\u0780\u0781\5+\26\2" + + "\u0781\u0782\5\21\t\2\u0782\u0783\5\25\13\2\u0783\u0784\5\t\5\2\u0784" + + "\u0785\5/\30\2\u0785\u0786\5\21\t\2\u0786\\\3\2\2\2\u0787\u0788\5\t\5" + + "\2\u0788\u0789\5\37\20\2\u0789\u078a\5\31\r\2\u078a\u078b\5\t\5\2\u078b" + + "\u078c\5-\27\2\u078c^\3\2\2\2\u078d\u078e\5\t\5\2\u078e\u078f\5\37\20" + + "\2\u078f\u0790\5\37\20\2\u0790`\3\2\2\2\u0791\u0792\5\t\5\2\u0792\u0793" + + "\5\37\20\2\u0793\u0794\5\37\20\2\u0794\u0795\5%\23\2\u0795\u0796\5\r\7" + + "\2\u0796\u0797\5\t\5\2\u0797\u0798\5/\30\2\u0798\u0799\5\21\t\2\u0799" + + "b\3\2\2\2\u079a\u079b\5\t\5\2\u079b\u079c\5\37\20\2\u079c\u079d\5-\27" + + "\2\u079d\u079e\5%\23\2\u079ed\3\2\2\2\u079f\u07a0\5\t\5\2\u07a0\u07a1" + + "\5\37\20\2\u07a1\u07a2\5/\30\2\u07a2\u07a3\5\21\t\2\u07a3\u07a4\5+\26" + + "\2\u07a4f\3\2\2\2\u07a5\u07a6\5\t\5\2\u07a6\u07a7\5\37\20\2\u07a7\u07a8" + + "\5\65\33\2\u07a8\u07a9\5\t\5\2\u07a9\u07aa\59\35\2\u07aa\u07ab\5-\27\2" + + "\u07abh\3\2\2\2\u07ac\u07ad\5\t\5\2\u07ad\u07ae\5#\22\2\u07ae\u07af\5" + + "\t\5\2\u07af\u07b0\5\37\20\2\u07b0\u07b1\59\35\2\u07b1\u07b2\5-\27\2\u07b2" + + "\u07b3\5\21\t\2\u07b3j\3\2\2\2\u07b4\u07b5\5\t\5\2\u07b5\u07b6\5#\22\2" + + "\u07b6\u07b7\5\t\5\2\u07b7\u07b8\5\37\20\2\u07b8\u07b9\59\35\2\u07b9\u07ba" + + "\5;\36\2\u07ba\u07bb\5\21\t\2\u07bbl\3\2\2\2\u07bc\u07bd\5\t\5\2\u07bd" + + "\u07be\5#\22\2\u07be\u07bf\5\17\b\2\u07bfn\3\2\2\2\u07c0\u07c1\5\t\5\2" + + "\u07c1\u07c2\5#\22\2\u07c2\u07c3\59\35\2\u07c3p\3\2\2\2\u07c4\u07c5\5" + + "\t\5\2\u07c5\u07c6\5+\26\2\u07c6\u07c7\5\21\t\2\u07c7r\3\2\2\2\u07c8\u07c9" + + "\5\t\5\2\u07c9\u07ca\5+\26\2\u07ca\u07cb\5+\26\2\u07cb\u07cc\5\t\5\2\u07cc" + + "\u07cd\59\35\2\u07cdt\3\2\2\2\u07ce\u07cf\5\t\5\2\u07cf\u07d0\5-\27\2" + + "\u07d0v\3\2\2\2\u07d1\u07d2\5\t\5\2\u07d2\u07d3\5-\27\2\u07d3\u07d4\5" + + "\r\7\2\u07d4x\3\2\2\2\u07d5\u07d6\5\t\5\2\u07d6\u07d7\5-\27\2\u07d7\u07d8" + + "\5\21\t\2\u07d8\u07d9\5#\22\2\u07d9\u07da\5-\27\2\u07da\u07db\5\31\r\2" + + "\u07db\u07dc\5/\30\2\u07dc\u07dd\5\31\r\2\u07dd\u07de\5\63\32\2\u07de" + + "\u07df\5\21\t\2\u07dfz\3\2\2\2\u07e0\u07e1\5\t\5\2\u07e1\u07e2\5-\27\2" + + "\u07e2\u07e3\5-\27\2\u07e3\u07e4\5\21\t\2\u07e4\u07e5\5+\26\2\u07e5\u07e6" + + "\5/\30\2\u07e6\u07e7\5\31\r\2\u07e7\u07e8\5%\23\2\u07e8\u07e9\5#\22\2" + + "\u07e9|\3\2\2\2\u07ea\u07eb\5\t\5\2\u07eb\u07ec\5-\27\2\u07ec\u07ed\5" + + "-\27\2\u07ed\u07ee\5\31\r\2\u07ee\u07ef\5\25\13\2\u07ef\u07f0\5#\22\2" + + "\u07f0\u07f1\5!\21\2\u07f1\u07f2\5\21\t\2\u07f2\u07f3\5#\22\2\u07f3\u07f4" + + "\5/\30\2\u07f4~\3\2\2\2\u07f5\u07f6\5\t\5\2\u07f6\u07f7\5-\27\2\u07f7" + + "\u07f8\59\35\2\u07f8\u07f9\5!\21\2\u07f9\u07fa\5!\21\2\u07fa\u07fb\5\21" + + "\t\2\u07fb\u07fc\5/\30\2\u07fc\u07fd\5+\26\2\u07fd\u07fe\5\31\r\2\u07fe" + + "\u07ff\5\r\7\2\u07ff\u0080\3\2\2\2\u0800\u0801\5\t\5\2\u0801\u0802\5/" + + "\30\2\u0802\u0082\3\2\2\2\u0803\u0804\5\t\5\2\u0804\u0805\5/\30\2\u0805" + + "\u0806\5%\23\2\u0806\u0807\5!\21\2\u0807\u0808\5\31\r\2\u0808\u0809\5" + + "\r\7\2\u0809\u0084\3\2\2\2\u080a\u080b\5\t\5\2\u080b\u080c\5/\30\2\u080c" + + "\u080d\5/\30\2\u080d\u080e\5+\26\2\u080e\u080f\5\31\r\2\u080f\u0810\5" + + "\13\6\2\u0810\u0811\5\61\31\2\u0811\u0812\5/\30\2\u0812\u0813\5\21\t\2" + + "\u0813\u0086\3\2\2\2\u0814\u0815\5\t\5\2\u0815\u0816\5/\30\2\u0816\u0817" + + "\5/\30\2\u0817\u0818\5+\26\2\u0818\u0819\5\31\r\2\u0819\u081a\5\13\6\2" + + "\u081a\u081b\5\61\31\2\u081b\u081c\5/\30\2\u081c\u081d\5\21\t\2\u081d" + + "\u081e\5-\27\2\u081e\u0088\3\2\2\2\u081f\u0820\5\t\5\2\u0820\u0821\5\61" + + "\31\2\u0821\u0822\5/\30\2\u0822\u0823\5\27\f\2\u0823\u0824\5%\23\2\u0824" + + "\u0825\5+\26\2\u0825\u0826\5\31\r\2\u0826\u0827\5;\36\2\u0827\u0828\5" + + "\t\5\2\u0828\u0829\5/\30\2\u0829\u082a\5\31\r\2\u082a\u082b\5%\23\2\u082b" + + "\u082c\5#\22\2\u082c\u008a\3\2\2\2\u082d\u082e\5\t\5\2\u082e\u082f\5\63" + + "\32\2\u082f\u0830\5\25\13\2\u0830\u008c\3\2\2\2\u0831\u0832\5\13\6\2\u0832" + + "\u0833\5\t\5\2\u0833\u0834\5\r\7\2\u0834\u0835\5\35\17\2\u0835\u0836\5" + + "\65\33\2\u0836\u0837\5\t\5\2\u0837\u0838\5+\26\2\u0838\u0839\5\17\b\2" + + "\u0839\u008e\3\2\2\2\u083a\u083b\5\13\6\2\u083b\u083c\5\21\t\2\u083c\u083d" + + "\5\23\n\2\u083d\u083e\5%\23\2\u083e\u083f\5+\26\2\u083f\u0840\5\21\t\2" + + "\u0840\u0090\3\2\2\2\u0841\u0842\5\13\6\2\u0842\u0843\5\21\t\2\u0843\u0844" + + "\5\25\13\2\u0844\u0845\5\31\r\2\u0845\u0846\5#\22\2\u0846\u0092\3\2\2" + + "\2\u0847\u0848\5\13\6\2\u0848\u0849\5\21\t\2\u0849\u084a\5+\26\2\u084a" + + "\u084b\5#\22\2\u084b\u084c\5%\23\2\u084c\u084d\5\61\31\2\u084d\u084e\5" + + "\37\20\2\u084e\u084f\5\37\20\2\u084f\u0850\5\31\r\2\u0850\u0094\3\2\2" + + "\2\u0851\u0852\5\13\6\2\u0852\u0853\5\21\t\2\u0853\u0854\5/\30\2\u0854" + + "\u0855\5\65\33\2\u0855\u0856\5\21\t\2\u0856\u0857\5\21\t\2\u0857\u0858" + + "\5#\22\2\u0858\u0096\3\2\2\2\u0859\u085a\5\13\6\2\u085a\u085b\5\31\r\2" + + "\u085b\u085c\5\25\13\2\u085c\u085d\5\31\r\2\u085d\u085e\5#\22\2\u085e" + + "\u085f\5/\30\2\u085f\u0098\3\2\2\2\u0860\u0861\5\13\6\2\u0861\u0862\5" + + "\31\r\2\u0862\u0863\5#\22\2\u0863\u0864\5\t\5\2\u0864\u0865\5+\26\2\u0865" + + "\u0866\59\35\2\u0866\u009a\3\2\2\2\u0867\u0868\5\13\6\2\u0868\u0869\5" + + "\31\r\2\u0869\u086a\5/\30\2\u086a\u009c\3\2\2\2\u086b\u086c\5\13\6\2\u086c" + + "\u086d\5\31\r\2\u086d\u086e\5/\30\2\u086e\u086f\7a\2\2\u086f\u0870\5\37" + + "\20\2\u0870\u0871\5\21\t\2\u0871\u0872\5#\22\2\u0872\u0873\5\25\13\2\u0873" + + "\u0874\5/\30\2\u0874\u0875\5\27\f\2\u0875\u009e\3\2\2\2\u0876\u0877\5" + + "\13\6\2\u0877\u0878\5\31\r\2\u0878\u0879\5/\30\2\u0879\u087a\5\63\32\2" + + "\u087a\u087b\5\t\5\2\u087b\u087c\5+\26\2\u087c\u00a0\3\2\2\2\u087d\u087e" + + "\5\13\6\2\u087e\u087f\5\37\20\2\u087f\u0880\5%\23\2\u0880\u0881\5\13\6" + + "\2\u0881\u00a2\3\2\2\2\u0882\u0883\5\13\6\2\u0883\u0884\5%\23\2\u0884" + + "\u0885\5%\23\2\u0885\u0886\5\37\20\2\u0886\u0887\5\21\t\2\u0887\u0888" + + "\5\t\5\2\u0888\u0889\5#\22\2\u0889\u00a4\3\2\2\2\u088a\u088b\5\13\6\2" + + "\u088b\u088c\5%\23\2\u088c\u088d\5/\30\2\u088d\u088e\5\27\f\2\u088e\u00a6" + + "\3\2\2\2\u088f\u0890\5\13\6\2\u0890\u0891\5+\26\2\u0891\u0892\5\21\t\2" + + "\u0892\u0893\5\t\5\2\u0893\u0894\5\17\b\2\u0894\u0895\5/\30\2\u0895\u0896" + + "\5\27\f\2\u0896\u00a8\3\2\2\2\u0897\u0898\5\13\6\2\u0898\u0899\5\61\31" + + "\2\u0899\u089a\5\23\n\2\u089a\u089b\5\23\n\2\u089b\u089c\5\21\t\2\u089c" + + "\u089d\5+\26\2\u089d\u089e\5-\27\2\u089e\u00aa\3\2\2\2\u089f\u08a0\5\13" + + "\6\2\u08a0\u08a1\59\35\2\u08a1\u00ac\3\2\2\2\u08a2\u08a3\5\r\7\2\u08a3" + + "\u00ae\3\2\2\2\u08a4\u08a5\5\r\7\2\u08a5\u08a6\5\t\5\2\u08a6\u08a7\5\r" + + "\7\2\u08a7\u08a8\5\27\f\2\u08a8\u08a9\5\21\t\2\u08a9\u00b0\3\2\2\2\u08aa" + + "\u08ab\5\r\7\2\u08ab\u08ac\5\t\5\2\u08ac\u08ad\5\37\20\2\u08ad\u08ae\5" + + "\37\20\2\u08ae\u00b2\3\2\2\2\u08af\u08b0\5\r\7\2\u08b0\u08b1\5\t\5\2\u08b1" + + "\u08b2\5\37\20\2\u08b2\u08b3\5\37\20\2\u08b3\u08b4\5\21\t\2\u08b4\u08b5" + + "\5\17\b\2\u08b5\u00b4\3\2\2\2\u08b6\u08b7\5\r\7\2\u08b7\u08b8\5\t\5\2" + + "\u08b8\u08b9\5+\26\2\u08b9\u08ba\5\17\b\2\u08ba\u08bb\5\31\r\2\u08bb\u08bc" + + "\5#\22\2\u08bc\u08bd\5\t\5\2\u08bd\u08be\5\37\20\2\u08be\u08bf\5\31\r" + + "\2\u08bf\u08c0\5/\30\2\u08c0\u08c1\59\35\2\u08c1\u00b6\3\2\2\2\u08c2\u08c3" + + "\5\r\7\2\u08c3\u08c4\5\t\5\2\u08c4\u08c5\5-\27\2\u08c5\u08c6\5\r\7\2\u08c6" + + "\u08c7\5\t\5\2\u08c7\u08c8\5\17\b\2\u08c8\u08c9\5\21\t\2\u08c9\u00b8\3" + + "\2\2\2\u08ca\u08cb\5\r\7\2\u08cb\u08cc\5\t\5\2\u08cc\u08cd\5-\27\2\u08cd" + + "\u08ce\5\r\7\2\u08ce\u08cf\5\t\5\2\u08cf\u08d0\5\17\b\2\u08d0\u08d1\5" + + "\21\t\2\u08d1\u08d2\5\17\b\2\u08d2\u00ba\3\2\2\2\u08d3\u08d4\5\r\7\2\u08d4" + + "\u08d5\5\t\5\2\u08d5\u08d6\5-\27\2\u08d6\u08d7\5\21\t\2\u08d7\u00bc\3" + + "\2\2\2\u08d8\u08d9\5\r\7\2\u08d9\u08da\5\t\5\2\u08da\u08db\5-\27\2\u08db" + + "\u08dc\5/\30\2\u08dc\u00be\3\2\2\2\u08dd\u08de\5\r\7\2\u08de\u08df\5\t" + + "\5\2\u08df\u08e0\5/\30\2\u08e0\u08e1\5\t\5\2\u08e1\u08e2\5\37\20\2\u08e2" + + "\u08e3\5%\23\2\u08e3\u08e4\5\25\13\2\u08e4\u00c0\3\2\2\2\u08e5\u08e6\5" + + "\r\7\2\u08e6\u08e7\5\t\5\2\u08e7\u08e8\5/\30\2\u08e8\u08e9\5\t\5\2\u08e9" + + "\u08ea\5\37\20\2\u08ea\u08eb\5%\23\2\u08eb\u08ec\5\25\13\2\u08ec\u08ed" + + "\7a\2\2\u08ed\u08ee\5#\22\2\u08ee\u08ef\5\t\5\2\u08ef\u08f0\5!\21\2\u08f0" + + "\u08f1\5\21\t\2\u08f1\u00c2\3\2\2\2\u08f2\u08f3\5\r\7\2\u08f3\u08f4\5" + + "\21\t\2\u08f4\u08f5\5\31\r\2\u08f5\u08f6\5\37\20\2\u08f6\u00c4\3\2\2\2" + + "\u08f7\u08f8\5\r\7\2\u08f8\u08f9\5\21\t\2\u08f9\u08fa\5\31\r\2\u08fa\u08fb" + + "\5\37\20\2\u08fb\u08fc\5\31\r\2\u08fc\u08fd\5#\22\2\u08fd\u08fe\5\25\13" + + "\2\u08fe\u00c6\3\2\2\2\u08ff\u0900\5\r\7\2\u0900\u0901\5\27\f\2\u0901" + + "\u0902\5\t\5\2\u0902\u0903\5\31\r\2\u0903\u0904\5#\22\2\u0904\u00c8\3" + + "\2\2\2\u0905\u0906\5\r\7\2\u0906\u0907\5\27\f\2\u0907\u0908\5\t\5\2\u0908" + + "\u0909\5+\26\2\u0909\u00ca\3\2\2\2\u090a\u090b\5\r\7\2\u090b\u090c\5\27" + + "\f\2\u090c\u090d\5\t\5\2\u090d\u090e\5+\26\2\u090e\u090f\7a\2\2\u090f" + + "\u0910\5\37\20\2\u0910\u0911\5\21\t\2\u0911\u0912\5#\22\2\u0912\u0913" + + "\5\25\13\2\u0913\u0914\5/\30\2\u0914\u0915\5\27\f\2\u0915\u00cc\3\2\2" + + "\2\u0916\u0917\5\r\7\2\u0917\u0918\5\27\f\2\u0918\u0919\5\t\5\2\u0919" + + "\u091a\5+\26\2\u091a\u091b\5\t\5\2\u091b\u091c\5\r\7\2\u091c\u091d\5/" + + "\30\2\u091d\u091e\5\21\t\2\u091e\u091f\5+\26\2\u091f\u00ce\3\2\2\2\u0920" + + "\u0921\5\r\7\2\u0921\u0922\5\27\f\2\u0922\u0923\5\t\5\2\u0923\u0924\5" + + "+\26\2\u0924\u0925\5\t\5\2\u0925\u0926\5\r\7\2\u0926\u0927\5/\30\2\u0927" + + "\u0928\5\21\t\2\u0928\u0929\5+\26\2\u0929\u092a\7a\2\2\u092a\u092b\5\37" + + "\20\2\u092b\u092c\5\21\t\2\u092c\u092d\5#\22\2\u092d\u092e\5\25\13\2\u092e" + + "\u092f\5/\30\2\u092f\u0930\5\27\f\2\u0930\u00d0\3\2\2\2\u0931\u0932\5" + + "\r\7\2\u0932\u0933\5\27\f\2\u0933\u0934\5\t\5\2\u0934\u0935\5+\26\2\u0935" + + "\u0936\5\t\5\2\u0936\u0937\5\r\7\2\u0937\u0938\5/\30\2\u0938\u0939\5\21" + + "\t\2\u0939\u093a\5+\26\2\u093a\u093b\7a\2\2\u093b\u093c\5-\27\2\u093c" + + "\u093d\5\21\t\2\u093d\u093e\5/\30\2\u093e\u093f\7a\2\2\u093f\u0940\5\r" + + "\7\2\u0940\u0941\5\t\5\2\u0941\u0942\5/\30\2\u0942\u0943\5\t\5\2\u0943" + + "\u0944\5\37\20\2\u0944\u0945\5%\23\2\u0945\u0946\5\25\13\2\u0946\u00d2" + + "\3\2\2\2\u0947\u0948\5\r\7\2\u0948\u0949\5\27\f\2\u0949\u094a\5\t\5\2" + + "\u094a\u094b\5+\26\2\u094b\u094c\5\t\5\2\u094c\u094d\5\r\7\2\u094d\u094e" + + "\5/\30\2\u094e\u094f\5\21\t\2\u094f\u0950\5+\26\2\u0950\u0951\7a\2\2\u0951" + + "\u0952\5-\27\2\u0952\u0953\5\21\t\2\u0953\u0954\5/\30\2\u0954\u0955\7" + + "a\2\2\u0955\u0956\5#\22\2\u0956\u0957\5\t\5\2\u0957\u0958\5!\21\2\u0958" + + "\u0959\5\21\t\2\u0959\u00d4\3\2\2\2\u095a\u095b\5\r\7\2\u095b\u095c\5" + + "\27\f\2\u095c\u095d\5\t\5\2\u095d\u095e\5+\26\2\u095e\u095f\5\t\5\2\u095f" + + "\u0960\5\r\7\2\u0960\u0961\5/\30\2\u0961\u0962\5\21\t\2\u0962\u0963\5" + + "+\26\2\u0963\u0964\7a\2\2\u0964\u0965\5-\27\2\u0965\u0966\5\21\t\2\u0966" + + "\u0967\5/\30\2\u0967\u0968\7a\2\2\u0968\u0969\5-\27\2\u0969\u096a\5\r" + + "\7\2\u096a\u096b\5\27\f\2\u096b\u096c\5\21\t\2\u096c\u096d\5!\21\2\u096d" + + "\u096e\5\t\5\2\u096e\u00d6\3\2\2\2\u096f\u0970\5\r\7\2\u0970\u0971\5\27" + + "\f\2\u0971\u0972\5\t\5\2\u0972\u0973\5+\26\2\u0973\u0974\5\t\5\2\u0974" + + "\u0975\5\r\7\2\u0975\u0976\5/\30\2\u0976\u0977\5\21\t\2\u0977\u0978\5" + + "+\26\2\u0978\u0979\5\31\r\2\u0979\u097a\5-\27\2\u097a\u097b\5/\30\2\u097b" + + "\u097c\5\31\r\2\u097c\u097d\5\r\7\2\u097d\u097e\5-\27\2\u097e\u00d8\3" + + "\2\2\2\u097f\u0980\5\r\7\2\u0980\u0981\5\27\f\2\u0981\u0982\5\t\5\2\u0982" + + "\u0983\5+\26\2\u0983\u0984\5\t\5\2\u0984\u0985\5\r\7\2\u0985\u0986\5/" + + "\30\2\u0986\u0987\5\21\t\2\u0987\u0988\5+\26\2\u0988\u0989\5-\27\2\u0989" + + "\u00da\3\2\2\2\u098a\u098b\5\r\7\2\u098b\u098c\5\27\f\2\u098c\u098d\5" + + "\21\t\2\u098d\u098e\5\r\7\2\u098e\u098f\5\35\17\2\u098f\u00dc\3\2\2\2" + + "\u0990\u0991\5\r\7\2\u0991\u0992\5\27\f\2\u0992\u0993\5\21\t\2\u0993\u0994" + + "\5\r\7\2\u0994\u0995\5\35\17\2\u0995\u0996\5\21\t\2\u0996\u0997\5\17\b" + + "\2\u0997\u00de\3\2\2\2\u0998\u0999\5\r\7\2\u0999\u099a\5\27\f\2\u099a" + + "\u099b\5\21\t\2\u099b\u099c\5\r\7\2\u099c\u099d\5\35\17\2\u099d\u099e" + + "\5\'\24\2\u099e\u099f\5%\23\2\u099f\u09a0\5\31\r\2\u09a0\u09a1\5#\22\2" + + "\u09a1\u09a2\5/\30\2\u09a2\u00e0\3\2\2\2\u09a3\u09a4\5\r\7\2\u09a4\u09a5" + + "\5\37\20\2\u09a5\u09a6\5\t\5\2\u09a6\u09a7\5-\27\2\u09a7\u09a8\5-\27\2" + + "\u09a8\u00e2\3\2\2\2\u09a9\u09aa\5\r\7\2\u09aa\u09ab\5\37\20\2\u09ab\u09ac" + + "\5\t\5\2\u09ac\u09ad\5-\27\2\u09ad\u09ae\5-\27\2\u09ae\u09af\7a\2\2\u09af" + + "\u09b0\5%\23\2\u09b0\u09b1\5+\26\2\u09b1\u09b2\5\31\r\2\u09b2\u09b3\5" + + "\25\13\2\u09b3\u09b4\5\31\r\2\u09b4\u09b5\5#\22\2\u09b5\u00e4\3\2\2\2" + + "\u09b6\u09b7\5\r\7\2\u09b7\u09b8\5\37\20\2\u09b8\u09b9\5%\23\2\u09b9\u09ba" + + "\5\13\6\2\u09ba\u00e6\3\2\2\2\u09bb\u09bc\5\r\7\2\u09bc\u09bd\5\37\20" + + "\2\u09bd\u09be\5%\23\2\u09be\u09bf\5-\27\2\u09bf\u09c0\5\21\t\2\u09c0" + + "\u00e8\3\2\2\2\u09c1\u09c2\5\r\7\2\u09c2\u09c3\5\37\20\2\u09c3\u09c4\5" + + "\61\31\2\u09c4\u09c5\5-\27\2\u09c5\u09c6\5/\30\2\u09c6\u09c7\5\21\t\2" + + "\u09c7\u09c8\5+\26\2\u09c8\u00ea\3\2\2\2\u09c9\u09ca\5\r\7\2\u09ca\u09cb" + + "\5%\23\2\u09cb\u09cc\5\t\5\2\u09cc\u09cd\5\37\20\2\u09cd\u09ce\5\21\t" + + "\2\u09ce\u09cf\5-\27\2\u09cf\u09d0\5\r\7\2\u09d0\u09d1\5\21\t\2\u09d1" + + "\u00ec\3\2\2\2\u09d2\u09d3\5\r\7\2\u09d3\u09d4\5%\23\2\u09d4\u09d5\5\13" + + "\6\2\u09d5\u09d6\5%\23\2\u09d6\u09d7\5\37\20\2\u09d7\u00ee\3\2\2\2\u09d8" + + "\u09d9\5\r\7\2\u09d9\u09da\5%\23\2\u09da\u09db\5\37\20\2\u09db\u09dc\5" + + "\37\20\2\u09dc\u09dd\5\t\5\2\u09dd\u09de\5/\30\2\u09de\u09df\5\21\t\2" + + "\u09df\u00f0\3\2\2\2\u09e0\u09e1\5\r\7\2\u09e1\u09e2\5%\23\2\u09e2\u09e3" + + "\5\37\20\2\u09e3\u09e4\5\37\20\2\u09e4\u09e5\5\t\5\2\u09e5\u09e6\5/\30" + + "\2\u09e6\u09e7\5\31\r\2\u09e7\u09e8\5%\23\2\u09e8\u09e9\5#\22\2\u09e9" + + "\u00f2\3\2\2\2\u09ea\u09eb\5\r\7\2\u09eb\u09ec\5%\23\2\u09ec\u09ed\5\37" + + "\20\2\u09ed\u09ee\5\37\20\2\u09ee\u09ef\5\t\5\2\u09ef\u09f0\5/\30\2\u09f0" + + "\u09f1\5\31\r\2\u09f1\u09f2\5%\23\2\u09f2\u09f3\5#\22\2\u09f3\u09f4\7" + + "a\2\2\u09f4\u09f5\5\r\7\2\u09f5\u09f6\5\t\5\2\u09f6\u09f7\5/\30\2\u09f7" + + "\u09f8\5\t\5\2\u09f8\u09f9\5\37\20\2\u09f9\u09fa\5%\23\2\u09fa\u09fb\5" + + "\25\13\2\u09fb\u00f4\3\2\2\2\u09fc\u09fd\5\r\7\2\u09fd\u09fe\5%\23\2\u09fe" + + "\u09ff\5\37\20\2\u09ff\u0a00\5\37\20\2\u0a00\u0a01\5\t\5\2\u0a01\u0a02" + + "\5/\30\2\u0a02\u0a03\5\31\r\2\u0a03\u0a04\5%\23\2\u0a04\u0a05\5#\22\2" + + "\u0a05\u0a06\7a\2\2\u0a06\u0a07\5#\22\2\u0a07\u0a08\5\t\5\2\u0a08\u0a09" + + "\5!\21\2\u0a09\u0a0a\5\21\t\2\u0a0a\u00f6\3\2\2\2\u0a0b\u0a0c\5\r\7\2" + + "\u0a0c\u0a0d\5%\23\2\u0a0d\u0a0e\5\37\20\2\u0a0e\u0a0f\5\37\20\2\u0a0f" + + "\u0a10\5\t\5\2\u0a10\u0a11\5/\30\2\u0a11\u0a12\5\31\r\2\u0a12\u0a13\5" + + "%\23\2\u0a13\u0a14\5#\22\2\u0a14\u0a15\7a\2\2\u0a15\u0a16\5-\27\2\u0a16" + + "\u0a17\5\r\7\2\u0a17\u0a18\5\27\f\2\u0a18\u0a19\5\21\t\2\u0a19\u0a1a\5" + + "!\21\2\u0a1a\u0a1b\5\t\5\2\u0a1b\u00f8\3\2\2\2\u0a1c\u0a1d\5\r\7\2\u0a1d" + + "\u0a1e\5%\23\2\u0a1e\u0a1f\5\37\20\2\u0a1f\u0a20\5\37\20\2\u0a20\u0a21" + + "\5\21\t\2\u0a21\u0a22\5\r\7\2\u0a22\u0a23\5/\30\2\u0a23\u00fa\3\2\2\2" + + "\u0a24\u0a25\5\r\7\2\u0a25\u0a26\5%\23\2\u0a26\u0a27\5\37\20\2\u0a27\u0a28" + + "\5\61\31\2\u0a28\u0a29\5!\21\2\u0a29\u0a2a\5#\22\2\u0a2a\u00fc\3\2\2\2" + + "\u0a2b\u0a2c\5\r\7\2\u0a2c\u0a2d\5%\23\2\u0a2d\u0a2e\5\37\20\2\u0a2e\u0a2f" + + "\5\61\31\2\u0a2f\u0a30\5!\21\2\u0a30\u0a31\5#\22\2\u0a31\u0a32\7a\2\2" + + "\u0a32\u0a33\5#\22\2\u0a33\u0a34\5\t\5\2\u0a34\u0a35\5!\21\2\u0a35\u0a36" + + "\5\21\t\2\u0a36\u00fe\3\2\2\2\u0a37\u0a38\5\r\7\2\u0a38\u0a39\5%\23\2" + + "\u0a39\u0a3a\5!\21\2\u0a3a\u0a3b\5!\21\2\u0a3b\u0a3c\5\t\5\2\u0a3c\u0a3d" + + "\5#\22\2\u0a3d\u0a3e\5\17\b\2\u0a3e\u0a3f\7a\2\2\u0a3f\u0a40\5\23\n\2" + + "\u0a40\u0a41\5\61\31\2\u0a41\u0a42\5#\22\2\u0a42\u0a43\5\r\7\2\u0a43\u0a44" + + "\5/\30\2\u0a44\u0a45\5\31\r\2\u0a45\u0a46\5%\23\2\u0a46\u0a47\5#\22\2" + + "\u0a47\u0100\3\2\2\2\u0a48\u0a49\5\r\7\2\u0a49\u0a4a\5%\23\2\u0a4a\u0a4b" + + "\5!\21\2\u0a4b\u0a4c\5!\21\2\u0a4c\u0a4d\5\t\5\2\u0a4d\u0a4e\5#\22\2\u0a4e" + + "\u0a4f\5\17\b\2\u0a4f\u0a50\7a\2\2\u0a50\u0a51\5\23\n\2\u0a51\u0a52\5" + + "\61\31\2\u0a52\u0a53\5#\22\2\u0a53\u0a54\5\r\7\2\u0a54\u0a55\5/\30\2\u0a55" + + "\u0a56\5\31\r\2\u0a56\u0a57\5%\23\2\u0a57\u0a58\5#\22\2\u0a58\u0a59\7" + + "a\2\2\u0a59\u0a5a\5\r\7\2\u0a5a\u0a5b\5%\23\2\u0a5b\u0a5c\5\17\b\2\u0a5c" + + "\u0a5d\5\21\t\2\u0a5d\u0102\3\2\2\2\u0a5e\u0a5f\5\r\7\2\u0a5f\u0a60\5" + + "%\23\2\u0a60\u0a61\5!\21\2\u0a61\u0a62\5!\21\2\u0a62\u0a63\5\21\t\2\u0a63" + + "\u0a64\5#\22\2\u0a64\u0a65\5/\30\2\u0a65\u0104\3\2\2\2\u0a66\u0a67\5\r" + + "\7\2\u0a67\u0a68\5%\23\2\u0a68\u0a69\5!\21\2\u0a69\u0a6a\5!\21\2\u0a6a" + + "\u0a6b\5\31\r\2\u0a6b\u0a6c\5/\30\2\u0a6c\u0106\3\2\2\2\u0a6d\u0a6e\5" + + "\r\7\2\u0a6e\u0a6f\5%\23\2\u0a6f\u0a70\5!\21\2\u0a70\u0a71\5!\21\2\u0a71" + + "\u0a72\5\31\r\2\u0a72\u0a73\5/\30\2\u0a73\u0a74\5/\30\2\u0a74\u0a75\5" + + "\21\t\2\u0a75\u0a76\5\17\b\2\u0a76\u0108\3\2\2\2\u0a77\u0a78\5\r\7\2\u0a78" + + "\u0a79\5%\23\2\u0a79\u0a7a\5!\21\2\u0a7a\u0a7b\5\'\24\2\u0a7b\u0a7c\5" + + "\37\20\2\u0a7c\u0a7d\5\21\t\2\u0a7d\u0a7e\5/\30\2\u0a7e\u0a7f\5\31\r\2" + + "\u0a7f\u0a80\5%\23\2\u0a80\u0a81\5#\22\2\u0a81\u010a\3\2\2\2\u0a82\u0a83" + + "\5\r\7\2\u0a83\u0a84\5%\23\2\u0a84\u0a85\5#\22\2\u0a85\u0a86\5\17\b\2" + + "\u0a86\u0a87\5\31\r\2\u0a87\u0a88\5/\30\2\u0a88\u0a89\5\31\r\2\u0a89\u0a8a" + + "\5%\23\2\u0a8a\u0a8b\5#\22\2\u0a8b\u010c\3\2\2\2\u0a8c\u0a8d\5\r\7\2\u0a8d" + + "\u0a8e\5%\23\2\u0a8e\u0a8f\5#\22\2\u0a8f\u0a90\5\17\b\2\u0a90\u0a91\5" + + "\31\r\2\u0a91\u0a92\5/\30\2\u0a92\u0a93\5\31\r\2\u0a93\u0a94\5%\23\2\u0a94" + + "\u0a95\5#\22\2\u0a95\u0a96\7a\2\2\u0a96\u0a97\5#\22\2\u0a97\u0a98\5\61" + + "\31\2\u0a98\u0a99\5!\21\2\u0a99\u0a9a\5\13\6\2\u0a9a\u0a9b\5\21\t\2\u0a9b" + + "\u0a9c\5+\26\2\u0a9c\u010e\3\2\2\2\u0a9d\u0a9e\5\r\7\2\u0a9e\u0a9f\5%" + + "\23\2\u0a9f\u0aa0\5#\22\2\u0aa0\u0aa1\5\23\n\2\u0aa1\u0aa2\5\31\r\2\u0aa2" + + "\u0aa3\5\25\13\2\u0aa3\u0aa4\5\61\31\2\u0aa4\u0aa5\5+\26\2\u0aa5\u0aa6" + + "\5\t\5\2\u0aa6\u0aa7\5/\30\2\u0aa7\u0aa8\5\31\r\2\u0aa8\u0aa9\5%\23\2" + + "\u0aa9\u0aaa\5#\22\2\u0aaa\u0110\3\2\2\2\u0aab\u0aac\5\r\7\2\u0aac\u0aad" + + "\5%\23\2\u0aad\u0aae\5#\22\2\u0aae\u0aaf\5\23\n\2\u0aaf\u0ab0\5\37\20" + + "\2\u0ab0\u0ab1\5\31\r\2\u0ab1\u0ab2\5\r\7\2\u0ab2\u0ab3\5/\30\2\u0ab3" + + "\u0112\3\2\2\2\u0ab4\u0ab5\5\r\7\2\u0ab5\u0ab6\5%\23\2\u0ab6\u0ab7\5#" + + "\22\2\u0ab7\u0ab8\5#\22\2\u0ab8\u0ab9\5\21\t\2\u0ab9\u0aba\5\r\7\2\u0aba" + + "\u0abb\5/\30\2\u0abb\u0114\3\2\2\2\u0abc\u0abd\5\r\7\2\u0abd\u0abe\5%" + + "\23\2\u0abe\u0abf\5#\22\2\u0abf\u0ac0\5#\22\2\u0ac0\u0ac1\5\21\t\2\u0ac1" + + "\u0ac2\5\r\7\2\u0ac2\u0ac3\5/\30\2\u0ac3\u0ac4\5\31\r\2\u0ac4\u0ac5\5" + + "%\23\2\u0ac5\u0ac6\5#\22\2\u0ac6\u0116\3\2\2\2\u0ac7\u0ac8\5\r\7\2\u0ac8" + + "\u0ac9\5%\23\2\u0ac9\u0aca\5#\22\2\u0aca\u0acb\5#\22\2\u0acb\u0acc\5\21" + + "\t\2\u0acc\u0acd\5\r\7\2\u0acd\u0ace\5/\30\2\u0ace\u0acf\5\31\r\2\u0acf" + + "\u0ad0\5%\23\2\u0ad0\u0ad1\5#\22\2\u0ad1\u0ad2\7a\2\2\u0ad2\u0ad3\5#\22" + + "\2\u0ad3\u0ad4\5\t\5\2\u0ad4\u0ad5\5!\21\2\u0ad5\u0ad6\5\21\t\2\u0ad6" + + "\u0118\3\2\2\2\u0ad7\u0ad8\5\r\7\2\u0ad8\u0ad9\5%\23\2\u0ad9\u0ada\5#" + + "\22\2\u0ada\u0adb\5-\27\2\u0adb\u0adc\5/\30\2\u0adc\u0add\5+\26\2\u0add" + + "\u0ade\5\t\5\2\u0ade\u0adf\5\31\r\2\u0adf\u0ae0\5#\22\2\u0ae0\u0ae1\5" + + "/\30\2\u0ae1\u011a\3\2\2\2\u0ae2\u0ae3\5\r\7\2\u0ae3\u0ae4\5%\23\2\u0ae4" + + "\u0ae5\5#\22\2\u0ae5\u0ae6\5-\27\2\u0ae6\u0ae7\5/\30\2\u0ae7\u0ae8\5+" + + "\26\2\u0ae8\u0ae9\5\t\5\2\u0ae9\u0aea\5\31\r\2\u0aea\u0aeb\5#\22\2\u0aeb" + + "\u0aec\5/\30\2\u0aec\u0aed\7a\2\2\u0aed\u0aee\5\r\7\2\u0aee\u0aef\5\t" + + "\5\2\u0aef\u0af0\5/\30\2\u0af0\u0af1\5\t\5\2\u0af1\u0af2\5\37\20\2\u0af2" + + "\u0af3\5%\23\2\u0af3\u0af4\5\25\13\2\u0af4\u011c\3\2\2\2\u0af5\u0af6\5" + + "\r\7\2\u0af6\u0af7\5%\23\2\u0af7\u0af8\5#\22\2\u0af8\u0af9\5-\27\2\u0af9" + + "\u0afa\5/\30\2\u0afa\u0afb\5+\26\2\u0afb\u0afc\5\t\5\2\u0afc\u0afd\5\31" + + "\r\2\u0afd\u0afe\5#\22\2\u0afe\u0aff\5/\30\2\u0aff\u0b00\7a\2\2\u0b00" + + "\u0b01\5#\22\2\u0b01\u0b02\5\t\5\2\u0b02\u0b03\5!\21\2\u0b03\u0b04\5\21" + + "\t\2\u0b04\u011e\3\2\2\2\u0b05\u0b06\5\r\7\2\u0b06\u0b07\5%\23\2\u0b07" + + "\u0b08\5#\22\2\u0b08\u0b09\5-\27\2\u0b09\u0b0a\5/\30\2\u0b0a\u0b0b\5+" + + "\26\2\u0b0b\u0b0c\5\t\5\2\u0b0c\u0b0d\5\31\r\2\u0b0d\u0b0e\5#\22\2\u0b0e" + + "\u0b0f\5/\30\2\u0b0f\u0b10\7a\2\2\u0b10\u0b11\5-\27\2\u0b11\u0b12\5\r" + + "\7\2\u0b12\u0b13\5\27\f\2\u0b13\u0b14\5\21\t\2\u0b14\u0b15\5!\21\2\u0b15" + + "\u0b16\5\t\5\2\u0b16\u0120\3\2\2\2\u0b17\u0b18\5\r\7\2\u0b18\u0b19\5%" + + "\23\2\u0b19\u0b1a\5#\22\2\u0b1a\u0b1b\5-\27\2\u0b1b\u0b1c\5/\30\2\u0b1c" + + "\u0b1d\5+\26\2\u0b1d\u0b1e\5\t\5\2\u0b1e\u0b1f\5\31\r\2\u0b1f\u0b20\5" + + "#\22\2\u0b20\u0b21\5/\30\2\u0b21\u0b22\5-\27\2\u0b22\u0122\3\2\2\2\u0b23" + + "\u0b24\5\r\7\2\u0b24\u0b25\5%\23\2\u0b25\u0b26\5#\22\2\u0b26\u0b27\5-" + + "\27\2\u0b27\u0b28\5/\30\2\u0b28\u0b29\5+\26\2\u0b29\u0b2a\5\61\31\2\u0b2a" + + "\u0b2b\5\r\7\2\u0b2b\u0b2c\5/\30\2\u0b2c\u0b2d\5%\23\2\u0b2d\u0b2e\5+" + + "\26\2\u0b2e\u0124\3\2\2\2\u0b2f\u0b30\5\r\7\2\u0b30\u0b31\5%\23\2\u0b31" + + "\u0b32\5#\22\2\u0b32\u0b33\5/\30\2\u0b33\u0b34\5\t\5\2\u0b34\u0b35\5\31" + + "\r\2\u0b35\u0b36\5#\22\2\u0b36\u0b37\5-\27\2\u0b37\u0126\3\2\2\2\u0b38" + + "\u0b39\5\r\7\2\u0b39\u0b3a\5%\23\2\u0b3a\u0b3b\5#\22\2\u0b3b\u0b3c\5/" + + "\30\2\u0b3c\u0b3d\5\31\r\2\u0b3d\u0b3e\5#\22\2\u0b3e\u0b3f\5\61\31\2\u0b3f" + + "\u0b40\5\21\t\2\u0b40\u0128\3\2\2\2\u0b41\u0b42\5\r\7\2\u0b42\u0b43\5" + + "%\23\2\u0b43\u0b44\5#\22\2\u0b44\u0b45\5\63\32\2\u0b45\u0b46\5\21\t\2" + + "\u0b46\u0b47\5+\26\2\u0b47\u0b48\5-\27\2\u0b48\u0b49\5\31\r\2\u0b49\u0b4a" + + "\5%\23\2\u0b4a\u0b4b\5#\22\2\u0b4b\u012a\3\2\2\2\u0b4c\u0b4d\5\r\7\2\u0b4d" + + "\u0b4e\5%\23\2\u0b4e\u0b4f\5#\22\2\u0b4f\u0b50\5\63\32\2\u0b50\u0b51\5" + + "\21\t\2\u0b51\u0b52\5+\26\2\u0b52\u0b53\5/\30\2\u0b53\u012c\3\2\2\2\u0b54" + + "\u0b55\5\r\7\2\u0b55\u0b56\5%\23\2\u0b56\u0b57\5\'\24\2\u0b57\u0b58\5" + + "9\35\2\u0b58\u012e\3\2\2\2\u0b59\u0b5a\5\r\7\2\u0b5a\u0b5b\5%\23\2\u0b5b" + + "\u0b5c\5+\26\2\u0b5c\u0b5d\5+\26\2\u0b5d\u0130\3\2\2\2\u0b5e\u0b5f\5\r" + + "\7\2\u0b5f\u0b60\5%\23\2\u0b60\u0b61\5+\26\2\u0b61\u0b62\5+\26\2\u0b62" + + "\u0b63\5\21\t\2\u0b63\u0b64\5-\27\2\u0b64\u0b65\5\'\24\2\u0b65\u0b66\5" + + "%\23\2\u0b66\u0b67\5#\22\2\u0b67\u0b68\5\17\b\2\u0b68\u0b69\5\31\r\2\u0b69" + + "\u0b6a\5#\22\2\u0b6a\u0b6b\5\25\13\2\u0b6b\u0132\3\2\2\2\u0b6c\u0b6d\5" + + "\r\7\2\u0b6d\u0b6e\5%\23\2\u0b6e\u0b6f\5-\27\2\u0b6f\u0b70\5/\30\2\u0b70" + + "\u0b71\5-\27\2\u0b71\u0134\3\2\2\2\u0b72\u0b73\5\r\7\2\u0b73\u0b74\5%" + + "\23\2\u0b74\u0b75\5\61\31\2\u0b75\u0b76\5#\22\2\u0b76\u0b77\5/\30\2\u0b77" + + "\u0136\3\2\2\2\u0b78\u0b79\5\r\7\2\u0b79\u0b7a\5%\23\2\u0b7a\u0b7b\5\63" + + "\32\2\u0b7b\u0b7c\5\t\5\2\u0b7c\u0b7d\5+\26\2\u0b7d\u0b7e\7a\2\2\u0b7e" + + "\u0b7f\5\'\24\2\u0b7f\u0b80\5%\23\2\u0b80\u0b81\5\'\24\2\u0b81\u0138\3" + + "\2\2\2\u0b82\u0b83\5\r\7\2\u0b83\u0b84\5%\23\2\u0b84\u0b85\5\63\32\2\u0b85" + + "\u0b86\5\t\5\2\u0b86\u0b87\5+\26\2\u0b87\u0b88\7a\2\2\u0b88\u0b89\5-\27" + + "\2\u0b89\u0b8a\5\t\5\2\u0b8a\u0b8b\5!\21\2\u0b8b\u0b8c\5\'\24\2\u0b8c" + + "\u013a\3\2\2\2\u0b8d\u0b8e\5\r\7\2\u0b8e\u0b8f\5+\26\2\u0b8f\u0b90\5\21" + + "\t\2\u0b90\u0b91\5\t\5\2\u0b91\u0b92\5/\30\2\u0b92\u0b93\5\21\t\2\u0b93" + + "\u013c\3\2\2\2\u0b94\u0b95\5\r\7\2\u0b95\u0b96\5+\26\2\u0b96\u0b97\5\21" + + "\t\2\u0b97\u0b98\5\t\5\2\u0b98\u0b99\5/\30\2\u0b99\u0b9a\5\21\t\2\u0b9a" + + "\u0b9b\5\17\b\2\u0b9b\u0b9c\5\13\6\2\u0b9c\u013e\3\2\2\2\u0b9d\u0b9e\5" + + "\r\7\2\u0b9e\u0b9f\5+\26\2\u0b9f\u0ba0\5\21\t\2\u0ba0\u0ba1\5\t\5\2\u0ba1" + + "\u0ba2\5/\30\2\u0ba2\u0ba3\5\21\t\2\u0ba3\u0ba4\5\61\31\2\u0ba4\u0ba5" + + "\5-\27\2\u0ba5\u0ba6\5\21\t\2\u0ba6\u0ba7\5+\26\2\u0ba7\u0140\3\2\2\2" + + "\u0ba8\u0ba9\5\r\7\2\u0ba9\u0baa\5+\26\2\u0baa\u0bab\5%\23\2\u0bab\u0bac" + + "\5-\27\2\u0bac\u0bad\5-\27\2\u0bad\u0142\3\2\2\2\u0bae\u0baf\5\r\7\2\u0baf" + + "\u0bb0\5-\27\2\u0bb0\u0bb1\5\63\32\2\u0bb1\u0144\3\2\2\2\u0bb2\u0bb3\5" + + "\r\7\2\u0bb3\u0bb4\5\61\31\2\u0bb4\u0bb5\5\13\6\2\u0bb5\u0bb6\5\21\t\2" + + "\u0bb6\u0146\3\2\2\2\u0bb7\u0bb8\5\r\7\2\u0bb8\u0bb9\5\61\31\2\u0bb9\u0bba" + + "\5!\21\2\u0bba\u0bbb\5\21\t\2\u0bbb\u0bbc\7a\2\2\u0bbc\u0bbd\5\17\b\2" + + "\u0bbd\u0bbe\5\31\r\2\u0bbe\u0bbf\5-\27\2\u0bbf\u0bc0\5/\30\2\u0bc0\u0148" + + "\3\2\2\2\u0bc1\u0bc2\5\r\7\2\u0bc2\u0bc3\5\61\31\2\u0bc3\u0bc4\5+\26\2" + + "\u0bc4\u0bc5\5+\26\2\u0bc5\u0bc6\5\21\t\2\u0bc6\u0bc7\5#\22\2\u0bc7\u0bc8" + + "\5/\30\2\u0bc8\u014a\3\2\2\2\u0bc9\u0bca\5\r\7\2\u0bca\u0bcb\5\61\31\2" + + "\u0bcb\u0bcc\5+\26\2\u0bcc\u0bcd\5+\26\2\u0bcd\u0bce\5\21\t\2\u0bce\u0bcf" + + "\5#\22\2\u0bcf\u0bd0\5/\30\2\u0bd0\u0bd1\7a\2\2\u0bd1\u0bd2\5\17\b\2\u0bd2" + + "\u0bd3\5\t\5\2\u0bd3\u0bd4\5/\30\2\u0bd4\u0bd5\5\21\t\2\u0bd5\u014c\3" + + "\2\2\2\u0bd6\u0bd7\5\r\7\2\u0bd7\u0bd8\5\61\31\2\u0bd8\u0bd9\5+\26\2\u0bd9" + + "\u0bda\5+\26\2\u0bda\u0bdb\5\21\t\2\u0bdb\u0bdc\5#\22\2\u0bdc\u0bdd\5" + + "/\30\2\u0bdd\u0bde\7a\2\2\u0bde\u0bdf\5\17\b\2\u0bdf\u0be0\5\21\t\2\u0be0" + + "\u0be1\5\23\n\2\u0be1\u0be2\5\t\5\2\u0be2\u0be3\5\61\31\2\u0be3\u0be4" + + "\5\37\20\2\u0be4\u0be5\5/\30\2\u0be5\u0be6\7a\2\2\u0be6\u0be7\5/\30\2" + + "\u0be7\u0be8\5+\26\2\u0be8\u0be9\5\t\5\2\u0be9\u0bea\5#\22\2\u0bea\u0beb" + + "\5-\27\2\u0beb\u0bec\5\23\n\2\u0bec\u0bed\5%\23\2\u0bed\u0bee\5+\26\2" + + "\u0bee\u0bef\5!\21\2\u0bef\u0bf0\7a\2\2\u0bf0\u0bf1\5\25\13\2\u0bf1\u0bf2" + + "\5+\26\2\u0bf2\u0bf3\5%\23\2\u0bf3\u0bf4\5\61\31\2\u0bf4\u0bf5\5\'\24" + + "\2\u0bf5\u014e\3\2\2\2\u0bf6\u0bf7\5\r\7\2\u0bf7\u0bf8\5\61\31\2\u0bf8" + + "\u0bf9\5+\26\2\u0bf9\u0bfa\5+\26\2\u0bfa\u0bfb\5\21\t\2\u0bfb\u0bfc\5" + + "#\22\2\u0bfc\u0bfd\5/\30\2\u0bfd\u0bfe\7a\2\2\u0bfe\u0bff\5\'\24\2\u0bff" + + "\u0c00\5\t\5\2\u0c00\u0c01\5/\30\2\u0c01\u0c02\5\27\f\2\u0c02\u0150\3" + + "\2\2\2\u0c03\u0c04\5\r\7\2\u0c04\u0c05\5\61\31\2\u0c05\u0c06\5+\26\2\u0c06" + + "\u0c07\5+\26\2\u0c07\u0c08\5\21\t\2\u0c08\u0c09\5#\22\2\u0c09\u0c0a\5" + + "/\30\2\u0c0a\u0c0b\7a\2\2\u0c0b\u0c0c\5+\26\2\u0c0c\u0c0d\5%\23\2\u0c0d" + + "\u0c0e\5\37\20\2\u0c0e\u0c0f\5\21\t\2\u0c0f\u0152\3\2\2\2\u0c10\u0c11" + + "\5\r\7\2\u0c11\u0c12\5\61\31\2\u0c12\u0c13\5+\26\2\u0c13\u0c14\5+\26\2" + + "\u0c14\u0c15\5\21\t\2\u0c15\u0c16\5#\22\2\u0c16\u0c17\5/\30\2\u0c17\u0c18" + + "\7a\2\2\u0c18\u0c19\5/\30\2\u0c19\u0c1a\5\31\r\2\u0c1a\u0c1b\5!\21\2\u0c1b" + + "\u0c1c\5\21\t\2\u0c1c\u0154\3\2\2\2\u0c1d\u0c1e\5\r\7\2\u0c1e\u0c1f\5" + + "\61\31\2\u0c1f\u0c20\5+\26\2\u0c20\u0c21\5+\26\2\u0c21\u0c22\5\21\t\2" + + "\u0c22\u0c23\5#\22\2\u0c23\u0c24\5/\30\2\u0c24\u0c25\7a\2\2\u0c25\u0c26" + + "\5/\30\2\u0c26\u0c27\5\31\r\2\u0c27\u0c28\5!\21\2\u0c28\u0c29\5\21\t\2" + + "\u0c29\u0c2a\5-\27\2\u0c2a\u0c2b\5/\30\2\u0c2b\u0c2c\5\t\5\2\u0c2c\u0c2d" + + "\5!\21\2\u0c2d\u0c2e\5\'\24\2\u0c2e\u0156\3\2\2\2\u0c2f\u0c30\5\r\7\2" + + "\u0c30\u0c31\5\61\31\2\u0c31\u0c32\5+\26\2\u0c32\u0c33\5+\26\2\u0c33\u0c34" + + "\5\21\t\2\u0c34\u0c35\5#\22\2\u0c35\u0c36\5/\30\2\u0c36\u0c37\7a\2\2\u0c37" + + "\u0c38\5/\30\2\u0c38\u0c39\5+\26\2\u0c39\u0c3a\5\t\5\2\u0c3a\u0c3b\5#" + + "\22\2\u0c3b\u0c3c\5-\27\2\u0c3c\u0c3d\5\23\n\2\u0c3d\u0c3e\5%\23\2\u0c3e" + + "\u0c3f\5+\26\2\u0c3f\u0c40\5!\21\2\u0c40\u0c41\7a\2\2\u0c41\u0c42\5\25" + + "\13\2\u0c42\u0c43\5+\26\2\u0c43\u0c44\5%\23\2\u0c44\u0c45\5\61\31\2\u0c45" + + "\u0c46\5\'\24\2\u0c46\u0c47\7a\2\2\u0c47\u0c48\5\23\n\2\u0c48\u0c49\5" + + "%\23\2\u0c49\u0c4a\5+\26\2\u0c4a\u0c4b\7a\2\2\u0c4b\u0c4c\5/\30\2\u0c4c" + + "\u0c4d\59\35\2\u0c4d\u0c4e\5\'\24\2\u0c4e\u0c4f\5\21\t\2\u0c4f\u0158\3" + + "\2\2\2\u0c50\u0c51\5\r\7\2\u0c51\u0c52\5\61\31\2\u0c52\u0c53\5+\26\2\u0c53" + + "\u0c54\5+\26\2\u0c54\u0c55\5\21\t\2\u0c55\u0c56\5#\22\2\u0c56\u0c57\5" + + "/\30\2\u0c57\u0c58\7a\2\2\u0c58\u0c59\5\61\31\2\u0c59\u0c5a\5-\27\2\u0c5a" + + "\u0c5b\5\21\t\2\u0c5b\u0c5c\5+\26\2\u0c5c\u015a\3\2\2\2\u0c5d\u0c5e\5" + + "\r\7\2\u0c5e\u0c5f\5\61\31\2\u0c5f\u0c60\5+\26\2\u0c60\u0c61\5-\27\2\u0c61" + + "\u0c62\5%\23\2\u0c62\u0c63\5+\26\2\u0c63\u015c\3\2\2\2\u0c64\u0c65\5\r" + + "\7\2\u0c65\u0c66\5\61\31\2\u0c66\u0c67\5+\26\2\u0c67\u0c68\5-\27\2\u0c68" + + "\u0c69\5%\23\2\u0c69\u0c6a\5+\26\2\u0c6a\u0c6b\7a\2\2\u0c6b\u0c6c\5#\22" + + "\2\u0c6c\u0c6d\5\t\5\2\u0c6d\u0c6e\5!\21\2\u0c6e\u0c6f\5\21\t\2\u0c6f" + + "\u015e\3\2\2\2\u0c70\u0c71\5\r\7\2\u0c71\u0c72\59\35\2\u0c72\u0c73\5\r" + + "\7\2\u0c73\u0c74\5\37\20\2\u0c74\u0c75\5\21\t\2\u0c75\u0160\3\2\2\2\u0c76" + + "\u0c77\5\17\b\2\u0c77\u0c78\5\t\5\2\u0c78\u0c79\5/\30\2\u0c79\u0c7a\5" + + "\t\5\2\u0c7a\u0162\3\2\2\2\u0c7b\u0c7c\5\17\b\2\u0c7c\u0c7d\5\t\5\2\u0c7d" + + "\u0c7e\5/\30\2\u0c7e\u0c7f\5\t\5\2\u0c7f\u0c80\5\13\6\2\u0c80\u0c81\5" + + "\t\5\2\u0c81\u0c82\5-\27\2\u0c82\u0c83\5\21\t\2\u0c83\u0164\3\2\2\2\u0c84" + + "\u0c85\5\17\b\2\u0c85\u0c86\5\t\5\2\u0c86\u0c87\5/\30\2\u0c87\u0c88\5" + + "\21\t\2\u0c88\u0166\3\2\2\2\u0c89\u0c8a\5\17\b\2\u0c8a\u0c8b\5\t\5\2\u0c8b" + + "\u0c8c\5/\30\2\u0c8c\u0c8d\5\21\t\2\u0c8d\u0c8e\5/\30\2\u0c8e\u0c8f\5" + + "\31\r\2\u0c8f\u0c90\5!\21\2\u0c90\u0c91\5\21\t\2\u0c91\u0c92\7a\2\2\u0c92" + + "\u0c93\5\31\r\2\u0c93\u0c94\5#\22\2\u0c94\u0c95\5/\30\2\u0c95\u0c96\5" + + "\21\t\2\u0c96\u0c97\5+\26\2\u0c97\u0c98\5\63\32\2\u0c98\u0c99\5\t\5\2" + + "\u0c99\u0c9a\5\37\20\2\u0c9a\u0c9b\7a\2\2\u0c9b\u0c9c\5\r\7\2\u0c9c\u0c9d" + + "\5%\23\2\u0c9d\u0c9e\5\17\b\2\u0c9e\u0c9f\5\21\t\2\u0c9f\u0168\3\2\2\2" + + "\u0ca0\u0ca1\5\17\b\2\u0ca1\u0ca2\5\t\5\2\u0ca2\u0ca3\5/\30\2\u0ca3\u0ca4" + + "\5\21\t\2\u0ca4\u0ca5\5/\30\2\u0ca5\u0ca6\5\31\r\2\u0ca6\u0ca7\5!\21\2" + + "\u0ca7\u0ca8\5\21\t\2\u0ca8\u0ca9\7a\2\2\u0ca9\u0caa\5\31\r\2\u0caa\u0cab" + + "\5#\22\2\u0cab\u0cac\5/\30\2\u0cac\u0cad\5\21\t\2\u0cad\u0cae\5+\26\2" + + "\u0cae\u0caf\5\63\32\2\u0caf\u0cb0\5\t\5\2\u0cb0\u0cb1\5\37\20\2\u0cb1" + + "\u0cb2\7a\2\2\u0cb2\u0cb3\5\'\24\2\u0cb3\u0cb4\5+\26\2\u0cb4\u0cb5\5\21" + + "\t\2\u0cb5\u0cb6\5\r\7\2\u0cb6\u0cb7\5\31\r\2\u0cb7\u0cb8\5-\27\2\u0cb8" + + "\u0cb9\5\31\r\2\u0cb9\u0cba\5%\23\2\u0cba\u0cbb\5#\22\2\u0cbb\u016a\3" + + "\2\2\2\u0cbc\u0cbd\5\17\b\2\u0cbd\u0cbe\5\t\5\2\u0cbe\u0cbf\59\35\2\u0cbf" + + "\u016c\3\2\2\2\u0cc0\u0cc1\5\17\b\2\u0cc1\u0cc2\5\21\t\2\u0cc2\u0cc3\5" + + "\t\5\2\u0cc3\u0cc4\5\37\20\2\u0cc4\u0cc5\5\37\20\2\u0cc5\u0cc6\5%\23\2" + + "\u0cc6\u0cc7\5\r\7\2\u0cc7\u0cc8\5\t\5\2\u0cc8\u0cc9\5/\30\2\u0cc9\u0cca" + + "\5\21\t\2\u0cca\u016e\3\2\2\2\u0ccb\u0ccc\5\17\b\2\u0ccc\u0ccd\5\21\t" + + "\2\u0ccd\u0cce\5\r\7\2\u0cce\u0170\3\2\2\2\u0ccf\u0cd0\5\17\b\2\u0cd0" + + "\u0cd1\5\21\t\2\u0cd1\u0cd2\5\r\7\2\u0cd2\u0cd3\5\31\r\2\u0cd3\u0cd4\5" + + "!\21\2\u0cd4\u0cd5\5\t\5\2\u0cd5\u0cd6\5\37\20\2\u0cd6\u0172\3\2\2\2\u0cd7" + + "\u0cd8\5\17\b\2\u0cd8\u0cd9\5\21\t\2\u0cd9\u0cda\5\r\7\2\u0cda\u0cdb\5" + + "\37\20\2\u0cdb\u0cdc\5\t\5\2\u0cdc\u0cdd\5+\26\2\u0cdd\u0cde\5\21\t\2" + + "\u0cde\u0174\3\2\2\2\u0cdf\u0ce0\5\17\b\2\u0ce0\u0ce1\5\21\t\2\u0ce1\u0ce2" + + "\5\23\n\2\u0ce2\u0ce3\5\t\5\2\u0ce3\u0ce4\5\61\31\2\u0ce4\u0ce5\5\37\20" + + "\2\u0ce5\u0ce6\5/\30\2\u0ce6\u0176\3\2\2\2\u0ce7\u0ce8\5\17\b\2\u0ce8" + + "\u0ce9\5\21\t\2\u0ce9\u0cea\5\23\n\2\u0cea\u0ceb\5\t\5\2\u0ceb\u0cec\5" + + "\61\31\2\u0cec\u0ced\5\37\20\2\u0ced\u0cee\5/\30\2\u0cee\u0cef\5-\27\2" + + "\u0cef\u0178\3\2\2\2\u0cf0\u0cf1\5\17\b\2\u0cf1\u0cf2\5\21\t\2\u0cf2\u0cf3" + + "\5\23\n\2\u0cf3\u0cf4\5\21\t\2\u0cf4\u0cf5\5+\26\2\u0cf5\u0cf6\5\t\5\2" + + "\u0cf6\u0cf7\5\13\6\2\u0cf7\u0cf8\5\37\20\2\u0cf8\u0cf9\5\21\t\2\u0cf9" + + "\u017a\3\2\2\2\u0cfa\u0cfb\5\17\b\2\u0cfb\u0cfc\5\21\t\2\u0cfc\u0cfd\5" + + "\23\n\2\u0cfd\u0cfe\5\21\t\2\u0cfe\u0cff\5+\26\2\u0cff\u0d00\5+\26\2\u0d00" + + "\u0d01\5\t\5\2\u0d01\u0d02\5\13\6\2\u0d02\u0d03\5\37\20\2\u0d03\u0d04" + + "\5\21\t\2\u0d04\u017c\3\2\2\2\u0d05\u0d06\5\17\b\2\u0d06\u0d07\5\21\t" + + "\2\u0d07\u0d08\5\23\n\2\u0d08\u0d09\5\21\t\2\u0d09\u0d0a\5+\26\2\u0d0a" + + "\u0d0b\5+\26\2\u0d0b\u0d0c\5\21\t\2\u0d0c\u0d0d\5\17\b\2\u0d0d\u017e\3" + + "\2\2\2\u0d0e\u0d0f\5\17\b\2\u0d0f\u0d10\5\21\t\2\u0d10\u0d11\5\23\n\2" + + "\u0d11\u0d12\5\31\r\2\u0d12\u0d13\5#\22\2\u0d13\u0d14\5\21\t\2\u0d14\u0d15" + + "\5\17\b\2\u0d15\u0180\3\2\2\2\u0d16\u0d17\5\17\b\2\u0d17\u0d18\5\21\t" + + "\2\u0d18\u0d19\5\23\n\2\u0d19\u0d1a\5\31\r\2\u0d1a\u0d1b\5#\22\2\u0d1b" + + "\u0d1c\5\21\t\2\u0d1c\u0d1d\5+\26\2\u0d1d\u0182\3\2\2\2\u0d1e\u0d1f\5" + + "\17\b\2\u0d1f\u0d20\5\21\t\2\u0d20\u0d21\5\25\13\2\u0d21\u0d22\5+\26\2" + + "\u0d22\u0d23\5\21\t\2\u0d23\u0d24\5\21\t\2\u0d24\u0184\3\2\2\2\u0d25\u0d26" + + "\5\17\b\2\u0d26\u0d27\5\21\t\2\u0d27\u0d28\5\37\20\2\u0d28\u0d29\5\21" + + "\t\2\u0d29\u0d2a\5/\30\2\u0d2a\u0d2b\5\21\t\2\u0d2b\u0186\3\2\2\2\u0d2c" + + "\u0d2d\5\17\b\2\u0d2d\u0d2e\5\21\t\2\u0d2e\u0d2f\5\37\20\2\u0d2f\u0d30" + + "\5\31\r\2\u0d30\u0d31\5!\21\2\u0d31\u0d32\5\31\r\2\u0d32\u0d33\5/\30\2" + + "\u0d33\u0d34\5\21\t\2\u0d34\u0d35\5+\26\2\u0d35\u0188\3\2\2\2\u0d36\u0d37" + + "\5\17\b\2\u0d37\u0d38\5\21\t\2\u0d38\u0d39\5\37\20\2\u0d39\u0d3a\5\31" + + "\r\2\u0d3a\u0d3b\5!\21\2\u0d3b\u0d3c\5\31\r\2\u0d3c\u0d3d\5/\30\2\u0d3d" + + "\u0d3e\5\21\t\2\u0d3e\u0d3f\5+\26\2\u0d3f\u0d40\5-\27\2\u0d40\u018a\3" + + "\2\2\2\u0d41\u0d42\5\17\b\2\u0d42\u0d43\5\21\t\2\u0d43\u0d44\5#\22\2\u0d44" + + "\u0d45\5-\27\2\u0d45\u0d46\5\21\t\2\u0d46\u0d47\7a\2\2\u0d47\u0d48\5+" + + "\26\2\u0d48\u0d49\5\t\5\2\u0d49\u0d4a\5#\22\2\u0d4a\u0d4b\5\35\17\2\u0d4b" + + "\u018c\3\2\2\2\u0d4c\u0d4d\5\17\b\2\u0d4d\u0d4e\5\21\t\2\u0d4e\u0d4f\5" + + "\'\24\2\u0d4f\u0d50\5\21\t\2\u0d50\u0d51\5#\22\2\u0d51\u0d52\5\17\b\2" + + "\u0d52\u0d53\5-\27\2\u0d53\u018e\3\2\2\2\u0d54\u0d55\5\17\b\2\u0d55\u0d56" + + "\5\21\t\2\u0d56\u0d57\5\'\24\2\u0d57\u0d58\5/\30\2\u0d58\u0d59\5\27\f" + + "\2\u0d59\u0190\3\2\2\2\u0d5a\u0d5b\5\17\b\2\u0d5b\u0d5c\5\21\t\2\u0d5c" + + "\u0d5d\5+\26\2\u0d5d\u0d5e\5\21\t\2\u0d5e\u0d5f\5\23\n\2\u0d5f\u0192\3" + + "\2\2\2\u0d60\u0d61\5\17\b\2\u0d61\u0d62\5\21\t\2\u0d62\u0d63\5+\26\2\u0d63" + + "\u0d64\5\31\r\2\u0d64\u0d65\5\63\32\2\u0d65\u0d66\5\21\t\2\u0d66\u0d67" + + "\5\17\b\2\u0d67\u0194\3\2\2\2\u0d68\u0d69\5\17\b\2\u0d69\u0d6a\5\21\t" + + "\2\u0d6a\u0d6b\5-\27\2\u0d6b\u0d6c\5\r\7\2\u0d6c\u0196\3\2\2\2\u0d6d\u0d6e" + + "\5\17\b\2\u0d6e\u0d6f\5\21\t\2\u0d6f\u0d70\5-\27\2\u0d70\u0d71\5\r\7\2" + + "\u0d71\u0d72\5+\26\2\u0d72\u0d73\5\31\r\2\u0d73\u0d74\5\13\6\2\u0d74\u0d75" + + "\5\21\t\2\u0d75\u0198\3\2\2\2\u0d76\u0d77\5\17\b\2\u0d77\u0d78\5\21\t" + + "\2\u0d78\u0d79\5-\27\2\u0d79\u0d7a\5\r\7\2\u0d7a\u0d7b\5+\26\2\u0d7b\u0d7c" + + "\5\31\r\2\u0d7c\u0d7d\5\'\24\2\u0d7d\u0d7e\5/\30\2\u0d7e\u0d7f\5%\23\2" + + "\u0d7f\u0d80\5+\26\2\u0d80\u019a\3\2\2\2\u0d81\u0d82\5\17\b\2\u0d82\u0d83" + + "\5\21\t\2\u0d83\u0d84\5-\27\2\u0d84\u0d85\5/\30\2\u0d85\u0d86\5+\26\2" + + "\u0d86\u0d87\5%\23\2\u0d87\u0d88\59\35\2\u0d88\u019c\3\2\2\2\u0d89\u0d8a" + + "\5\17\b\2\u0d8a\u0d8b\5\21\t\2\u0d8b\u0d8c\5-\27\2\u0d8c\u0d8d\5/\30\2" + + "\u0d8d\u0d8e\5+\26\2\u0d8e\u0d8f\5\61\31\2\u0d8f\u0d90\5\r\7\2\u0d90\u0d91" + + "\5/\30\2\u0d91\u0d92\5%\23\2\u0d92\u0d93\5+\26\2\u0d93\u019e\3\2\2\2\u0d94" + + "\u0d95\5\17\b\2\u0d95\u0d96\5\21\t\2\u0d96\u0d97\5/\30\2\u0d97\u0d98\5" + + "\21\t\2\u0d98\u0d99\5+\26\2\u0d99\u0d9a\5!\21\2\u0d9a\u0d9b\5\31\r\2\u0d9b" + + "\u0d9c\5#\22\2\u0d9c\u0d9d\5\31\r\2\u0d9d\u0d9e\5-\27\2\u0d9e\u0d9f\5" + + "/\30\2\u0d9f\u0da0\5\31\r\2\u0da0\u0da1\5\r\7\2\u0da1\u01a0\3\2\2\2\u0da2" + + "\u0da3\5\17\b\2\u0da3\u0da4\5\31\r\2\u0da4\u0da5\5\t\5\2\u0da5\u0da6\5" + + "\25\13\2\u0da6\u0da7\5#\22\2\u0da7\u0da8\5%\23\2\u0da8\u0da9\5-\27\2\u0da9" + + "\u0daa\5/\30\2\u0daa\u0dab\5\31\r\2\u0dab\u0dac\5\r\7\2\u0dac\u0dad\5" + + "-\27\2\u0dad\u01a2\3\2\2\2\u0dae\u0daf\5\17\b\2\u0daf\u0db0\5\31\r\2\u0db0" + + "\u0db1\5\r\7\2\u0db1\u0db2\5/\30\2\u0db2\u0db3\5\31\r\2\u0db3\u0db4\5" + + "%\23\2\u0db4\u0db5\5#\22\2\u0db5\u0db6\5\t\5\2\u0db6\u0db7\5+\26\2\u0db7" + + "\u0db8\59\35\2\u0db8\u01a4\3\2\2\2\u0db9\u0dba\5\17\b\2\u0dba\u0dbb\5" + + "\31\r\2\u0dbb\u0dbc\5-\27\2\u0dbc\u0dbd\5\t\5\2\u0dbd\u0dbe\5\13\6\2\u0dbe" + + "\u0dbf\5\37\20\2\u0dbf\u0dc0\5\21\t\2\u0dc0\u01a6\3\2\2\2\u0dc1\u0dc2" + + "\5\17\b\2\u0dc2\u0dc3\5\31\r\2\u0dc3\u0dc4\5-\27\2\u0dc4\u0dc5\5\t\5\2" + + "\u0dc5\u0dc6\5\13\6\2\u0dc6\u0dc7\5\37\20\2\u0dc7\u0dc8\5\21\t\2\u0dc8" + + "\u0dc9\7a\2\2\u0dc9\u0dca\5\'\24\2\u0dca\u0dcb\5\t\5\2\u0dcb\u0dcc\5\25" + + "\13\2\u0dcc\u0dcd\5\21\t\2\u0dcd\u0dce\7a\2\2\u0dce\u0dcf\5-\27\2\u0dcf" + + "\u0dd0\5\35\17\2\u0dd0\u0dd1\5\31\r\2\u0dd1\u0dd2\5\'\24\2\u0dd2\u0dd3" + + "\5\'\24\2\u0dd3\u0dd4\5\31\r\2\u0dd4\u0dd5\5#\22\2\u0dd5\u0dd6\5\25\13" + + "\2\u0dd6\u01a8\3\2\2\2\u0dd7\u0dd8\5\17\b\2\u0dd8\u0dd9\5\31\r\2\u0dd9" + + "\u0dda\5-\27\2\u0dda\u0ddb\5\r\7\2\u0ddb\u0ddc\5\t\5\2\u0ddc\u0ddd\5+" + + "\26\2\u0ddd\u0dde\5\17\b\2\u0dde\u01aa\3\2\2\2\u0ddf\u0de0\5\17\b\2\u0de0" + + "\u0de1\5\31\r\2\u0de1\u0de2\5-\27\2\u0de2\u0de3\5\r\7\2\u0de3\u0de4\5" + + "%\23\2\u0de4\u0de5\5#\22\2\u0de5\u0de6\5#\22\2\u0de6\u0de7\5\21\t\2\u0de7" + + "\u0de8\5\r\7\2\u0de8\u0de9\5/\30\2\u0de9\u01ac\3\2\2\2\u0dea\u0deb\5\17" + + "\b\2\u0deb\u0dec\5\31\r\2\u0dec\u0ded\5-\27\2\u0ded\u0dee\5\'\24\2\u0dee" + + "\u0def\5\t\5\2\u0def\u0df0\5/\30\2\u0df0\u0df1\5\r\7\2\u0df1\u0df2\5\27" + + "\f\2\u0df2\u01ae\3\2\2\2\u0df3\u0df4\5\17\b\2\u0df4\u0df5\5\31\r\2\u0df5" + + "\u0df6\5-\27\2\u0df6\u0df7\5/\30\2\u0df7\u0df8\5\31\r\2\u0df8\u0df9\5" + + "#\22\2\u0df9\u0dfa\5\r\7\2\u0dfa\u0dfb\5/\30\2\u0dfb\u01b0\3\2\2\2\u0dfc" + + "\u0dfd\5\17\b\2\u0dfd\u0dfe\5%\23\2\u0dfe\u01b2\3\2\2\2\u0dff\u0e00\5" + + "\17\b\2\u0e00\u0e01\5%\23\2\u0e01\u0e02\5!\21\2\u0e02\u0e03\5\t\5\2\u0e03" + + "\u0e04\5\31\r\2\u0e04\u0e05\5#\22\2\u0e05\u01b4\3\2\2\2\u0e06\u0e07\5" + + "\17\b\2\u0e07\u0e08\5%\23\2\u0e08\u0e09\5\61\31\2\u0e09\u0e0a\5\13\6\2" + + "\u0e0a\u0e0b\5\37\20\2\u0e0b\u0e0c\5\21\t\2\u0e0c\u01b6\3\2\2\2\u0e0d" + + "\u0e0e\5\17\b\2\u0e0e\u0e0f\5+\26\2\u0e0f\u0e10\5%\23\2\u0e10\u0e11\5" + + "\'\24\2\u0e11\u01b8\3\2\2\2\u0e12\u0e13\5\17\b\2\u0e13\u0e14\59\35\2\u0e14" + + "\u0e15\5#\22\2\u0e15\u0e16\5\t\5\2\u0e16\u0e17\5!\21\2\u0e17\u0e18\5\31" + + "\r\2\u0e18\u0e19\5\r\7\2\u0e19\u01ba\3\2\2\2\u0e1a\u0e1b\5\17\b\2\u0e1b" + + "\u0e1c\59\35\2\u0e1c\u0e1d\5#\22\2\u0e1d\u0e1e\5\t\5\2\u0e1e\u0e1f\5!" + + "\21\2\u0e1f\u0e20\5\31\r\2\u0e20\u0e21\5\r\7\2\u0e21\u0e22\7a\2\2\u0e22" + + "\u0e23\5\23\n\2\u0e23\u0e24\5\61\31\2\u0e24\u0e25\5#\22\2\u0e25\u0e26" + + "\5\r\7\2\u0e26\u0e27\5/\30\2\u0e27\u0e28\5\31\r\2\u0e28\u0e29\5%\23\2" + + "\u0e29\u0e2a\5#\22\2\u0e2a\u01bc\3\2\2\2\u0e2b\u0e2c\5\17\b\2\u0e2c\u0e2d" + + "\59\35\2\u0e2d\u0e2e\5#\22\2\u0e2e\u0e2f\5\t\5\2\u0e2f\u0e30\5!\21\2\u0e30" + + "\u0e31\5\31\r\2\u0e31\u0e32\5\r\7\2\u0e32\u0e33\7a\2\2\u0e33\u0e34\5\23" + + "\n\2\u0e34\u0e35\5\61\31\2\u0e35\u0e36\5#\22\2\u0e36\u0e37\5\r\7\2\u0e37" + + "\u0e38\5/\30\2\u0e38\u0e39\5\31\r\2\u0e39\u0e3a\5%\23\2\u0e3a\u0e3b\5" + + "#\22\2\u0e3b\u0e3c\7a\2\2\u0e3c\u0e3d\5\r\7\2\u0e3d\u0e3e\5%\23\2\u0e3e" + + "\u0e3f\5\17\b\2\u0e3f\u0e40\5\21\t\2\u0e40\u01be\3\2\2\2\u0e41\u0e42\5" + + "\21\t\2\u0e42\u0e43\5\t\5\2\u0e43\u0e44\5\r\7\2\u0e44\u0e45\5\27\f\2\u0e45" + + "\u01c0\3\2\2\2\u0e46\u0e47\5\21\t\2\u0e47\u0e48\5\37\20\2\u0e48\u0e49" + + "\5\21\t\2\u0e49\u0e4a\5!\21\2\u0e4a\u0e4b\5\21\t\2\u0e4b\u0e4c\5#\22\2" + + "\u0e4c\u0e4d\5/\30\2\u0e4d\u01c2\3\2\2\2\u0e4e\u0e4f\5\21\t\2\u0e4f\u0e50" + + "\5\37\20\2\u0e50\u0e51\5-\27\2\u0e51\u0e52\5\21\t\2\u0e52\u01c4\3\2\2" + + "\2\u0e53\u0e54\5\21\t\2\u0e54\u0e55\5#\22\2\u0e55\u0e56\5\t\5\2\u0e56" + + "\u0e57\5\13\6\2\u0e57\u0e58\5\37\20\2\u0e58\u0e59\5\21\t\2\u0e59\u01c6" + + "\3\2\2\2\u0e5a\u0e5b\5\21\t\2\u0e5b\u0e5c\5#\22\2\u0e5c\u0e5d\5\r\7\2" + + "\u0e5d\u0e5e\5%\23\2\u0e5e\u0e5f\5\17\b\2\u0e5f\u0e60\5\31\r\2\u0e60\u0e61" + + "\5#\22\2\u0e61\u0e62\5\25\13\2\u0e62\u01c8\3\2\2\2\u0e63\u0e64\5\21\t" + + "\2\u0e64\u0e65\5#\22\2\u0e65\u0e66\5\r\7\2\u0e66\u0e67\5+\26\2\u0e67\u0e68" + + "\59\35\2\u0e68\u0e69\5\'\24\2\u0e69\u0e6a\5/\30\2\u0e6a\u0e6b\5\21\t\2" + + "\u0e6b\u0e6c\5\17\b\2\u0e6c\u01ca\3\2\2\2\u0e6d\u0e6e\5\21\t\2\u0e6e\u0e6f" + + "\5#\22\2\u0e6f\u0e70\5\17\b\2\u0e70\u01cc\3\2\2\2\u0e71\u0e72\5\21\t\2" + + "\u0e72\u0e73\5#\22\2\u0e73\u0e74\5\17\b\2\u0e74\u0e75\7/\2\2\u0e75\u0e76" + + "\5\21\t\2\u0e76\u0e77\5\67\34\2\u0e77\u0e78\5\21\t\2\u0e78\u0e79\5\r\7" + + "\2\u0e79\u01ce\3\2\2\2\u0e7a\u0e7b\5\21\t\2\u0e7b\u0e7c\5)\25\2\u0e7c" + + "\u0e7d\5\61\31\2\u0e7d\u0e7e\5\t\5\2\u0e7e\u0e7f\5\37\20\2\u0e7f\u0e80" + + "\5-\27\2\u0e80\u01d0\3\2\2\2\u0e81\u0e82\5\21\t\2\u0e82\u0e83\5-\27\2" + + "\u0e83\u0e84\5\r\7\2\u0e84\u0e85\5\t\5\2\u0e85\u0e86\5\'\24\2\u0e86\u0e87" + + "\5\21\t\2\u0e87\u01d2\3\2\2\2\u0e88\u0e89\5\21\t\2\u0e89\u0e8a\5\63\32" + + "\2\u0e8a\u0e8b\5\21\t\2\u0e8b\u0e8c\5+\26\2\u0e8c\u0e8d\59\35\2\u0e8d" + + "\u01d4\3\2\2\2\u0e8e\u0e8f\5\21\t\2\u0e8f\u0e90\5\67\34\2\u0e90\u0e91" + + "\5\r\7\2\u0e91\u0e92\5\21\t\2\u0e92\u0e93\5\'\24\2\u0e93\u0e94\5/\30\2" + + "\u0e94\u01d6\3\2\2\2\u0e95\u0e96\5\21\t\2\u0e96\u0e97\5\67\34\2\u0e97" + + "\u0e98\5\r\7\2\u0e98\u0e99\5\21\t\2\u0e99\u0e9a\5\'\24\2\u0e9a\u0e9b\5" + + "/\30\2\u0e9b\u0e9c\5\31\r\2\u0e9c\u0e9d\5%\23\2\u0e9d\u0e9e\5#\22\2\u0e9e" + + "\u01d8\3\2\2\2\u0e9f\u0ea0\5\21\t\2\u0ea0\u0ea1\5\67\34\2\u0ea1\u0ea2" + + "\5\r\7\2\u0ea2\u0ea3\5\37\20\2\u0ea3\u0ea4\5\61\31\2\u0ea4\u0ea5\5\17" + + "\b\2\u0ea5\u0ea6\5\21\t\2\u0ea6\u01da\3\2\2\2\u0ea7\u0ea8\5\21\t\2\u0ea8" + + "\u0ea9\5\67\34\2\u0ea9\u0eaa\5\r\7\2\u0eaa\u0eab\5\37\20\2\u0eab\u0eac" + + "\5\61\31\2\u0eac\u0ead\5\17\b\2\u0ead\u0eae\5\31\r\2\u0eae\u0eaf\5#\22" + + "\2\u0eaf\u0eb0\5\25\13\2\u0eb0\u01dc\3\2\2\2\u0eb1\u0eb2\5\21\t\2\u0eb2" + + "\u0eb3\5\67\34\2\u0eb3\u0eb4\5\r\7\2\u0eb4\u0eb5\5\37\20\2\u0eb5\u0eb6" + + "\5\61\31\2\u0eb6\u0eb7\5-\27\2\u0eb7\u0eb8\5\31\r\2\u0eb8\u0eb9\5\63\32" + + "\2\u0eb9\u0eba\5\21\t\2\u0eba\u01de\3\2\2\2\u0ebb\u0ebc\5\21\t\2\u0ebc" + + "\u0ebd\5\67\34\2\u0ebd\u0ebe\5\21\t\2\u0ebe\u0ebf\5\r\7\2\u0ebf\u01e0" + + "\3\2\2\2\u0ec0\u0ec1\5\21\t\2\u0ec1\u0ec2\5\67\34\2\u0ec2\u0ec3\5\21\t" + + "\2\u0ec3\u0ec4\5\r\7\2\u0ec4\u0ec5\5\61\31\2\u0ec5\u0ec6\5/\30\2\u0ec6" + + "\u0ec7\5\21\t\2\u0ec7\u01e2\3\2\2\2\u0ec8\u0ec9\5\21\t\2\u0ec9\u0eca\5" + + "\67\34\2\u0eca\u0ecb\5\31\r\2\u0ecb\u0ecc\5-\27\2\u0ecc\u0ecd\5/\30\2" + + "\u0ecd\u0ece\5\31\r\2\u0ece\u0ecf\5#\22\2\u0ecf\u0ed0\5\25\13\2\u0ed0" + + "\u01e4\3\2\2\2\u0ed1\u0ed2\5\21\t\2\u0ed2\u0ed3\5\67\34\2\u0ed3\u0ed4" + + "\5\31\r\2\u0ed4\u0ed5\5-\27\2\u0ed5\u0ed6\5/\30\2\u0ed6\u0ed7\5-\27\2" + + "\u0ed7\u01e6\3\2\2\2\u0ed8\u0ed9\5\21\t\2\u0ed9\u0eda\5\67\34\2\u0eda" + + "\u0edb\5\'\24\2\u0edb\u01e8\3\2\2\2\u0edc\u0edd\5\21\t\2\u0edd\u0ede\5" + + "\67\34\2\u0ede\u0edf\5\'\24\2\u0edf\u0ee0\5\37\20\2\u0ee0\u0ee1\5\t\5" + + "\2\u0ee1\u0ee2\5\31\r\2\u0ee2\u0ee3\5#\22\2\u0ee3\u01ea\3\2\2\2\u0ee4" + + "\u0ee5\5\21\t\2\u0ee5\u0ee6\5\67\34\2\u0ee6\u0ee7\5/\30\2\u0ee7\u0ee8" + + "\5\21\t\2\u0ee8\u0ee9\5#\22\2\u0ee9\u0eea\5\17\b\2\u0eea\u0eeb\5\21\t" + + "\2\u0eeb\u0eec\5\17\b\2\u0eec\u01ec\3\2\2\2\u0eed\u0eee\5\21\t\2\u0eee" + + "\u0eef\5\67\34\2\u0eef\u0ef0\5/\30\2\u0ef0\u0ef1\5\21\t\2\u0ef1\u0ef2" + + "\5#\22\2\u0ef2\u0ef3\5-\27\2\u0ef3\u0ef4\5\31\r\2\u0ef4\u0ef5\5%\23\2" + + "\u0ef5\u0ef6\5#\22\2\u0ef6\u01ee\3\2\2\2\u0ef7\u0ef8\5\21\t\2\u0ef8\u0ef9" + + "\5\67\34\2\u0ef9\u0efa\5/\30\2\u0efa\u0efb\5\21\t\2\u0efb\u0efc\5+\26" + + "\2\u0efc\u0efd\5#\22\2\u0efd\u0efe\5\t\5\2\u0efe\u0eff\5\37\20\2\u0eff" + + "\u01f0\3\2\2\2\u0f00\u0f01\5\21\t\2\u0f01\u0f02\5\67\34\2\u0f02\u0f03" + + "\5/\30\2\u0f03\u0f04\5+\26\2\u0f04\u0f05\5\t\5\2\u0f05\u0f06\5\r\7\2\u0f06" + + "\u0f07\5/\30\2\u0f07\u01f2\3\2\2\2\u0f08\u0f09\5\23\n\2\u0f09\u0f0a\5" + + "\t\5\2\u0f0a\u0f0b\5\37\20\2\u0f0b\u0f0c\5-\27\2\u0f0c\u0f0d\5\21\t\2" + + "\u0f0d\u01f4\3\2\2\2\u0f0e\u0f0f\5\23\n\2\u0f0f\u0f10\5\21\t\2\u0f10\u0f11" + + "\5/\30\2\u0f11\u0f12\5\r\7\2\u0f12\u0f13\5\27\f\2\u0f13\u01f6\3\2\2\2" + + "\u0f14\u0f15\5\23\n\2\u0f15\u0f16\5\31\r\2\u0f16\u0f17\5\21\t\2\u0f17" + + "\u0f18\5\37\20\2\u0f18\u0f19\5\17\b\2\u0f19\u0f1a\5-\27\2\u0f1a\u01f8" + + "\3\2\2\2\u0f1b\u0f1c\5\23\n\2\u0f1c\u0f1d\5\31\r\2\u0f1d\u0f1e\5\37\20" + + "\2\u0f1e\u0f1f\5/\30\2\u0f1f\u0f20\5\21\t\2\u0f20\u0f21\5+\26\2\u0f21" + + "\u01fa\3\2\2\2\u0f22\u0f23\5\23\n\2\u0f23\u0f24\5\31\r\2\u0f24\u0f25\5" + + "#\22\2\u0f25\u0f26\5\t\5\2\u0f26\u0f27\5\37\20\2\u0f27\u01fc\3\2\2\2\u0f28" + + "\u0f29\5\23\n\2\u0f29\u0f2a\5\31\r\2\u0f2a\u0f2b\5+\26\2\u0f2b\u0f2c\5" + + "-\27\2\u0f2c\u0f2d\5/\30\2\u0f2d\u01fe\3\2\2\2\u0f2e\u0f2f\5\23\n\2\u0f2f" + + "\u0f30\5\37\20\2\u0f30\u0f31\5%\23\2\u0f31\u0f32\5\t\5\2\u0f32\u0f33\5" + + "/\30\2\u0f33\u0200\3\2\2\2\u0f34\u0f35\5\23\n\2\u0f35\u0f36\5\37\20\2" + + "\u0f36\u0f37\5%\23\2\u0f37\u0f38\5%\23\2\u0f38\u0f39\5+\26\2\u0f39\u0202" + + "\3\2\2\2\u0f3a\u0f3b\5\23\n\2\u0f3b\u0f3c\5%\23\2\u0f3c\u0f3d\5\37\20" + + "\2\u0f3d\u0f3e\5\37\20\2\u0f3e\u0f3f\5%\23\2\u0f3f\u0f40\5\65\33\2\u0f40" + + "\u0f41\5\31\r\2\u0f41\u0f42\5#\22\2\u0f42\u0f43\5\25\13\2\u0f43\u0204" + + "\3\2\2\2\u0f44\u0f45\5\23\n\2\u0f45\u0f46\5%\23\2\u0f46\u0f47\5+\26\2" + + "\u0f47\u0206\3\2\2\2\u0f48\u0f49\5\23\n\2\u0f49\u0f4a\5%\23\2\u0f4a\u0f4b" + + "\5+\26\2\u0f4b\u0f4c\5\r\7\2\u0f4c\u0f4d\5\21\t\2\u0f4d\u0208\3\2\2\2" + + "\u0f4e\u0f4f\5\23\n\2\u0f4f\u0f50\5%\23\2\u0f50\u0f51\5+\26\2\u0f51\u0f52" + + "\5\21\t\2\u0f52\u0f53\5\31\r\2\u0f53\u0f54\5\25\13\2\u0f54\u0f55\5#\22" + + "\2\u0f55\u020a\3\2\2\2\u0f56\u0f57\5\23\n\2\u0f57\u0f58\5%\23\2\u0f58" + + "\u0f59\5+\26\2\u0f59\u0f5a\5!\21\2\u0f5a\u0f5b\5\t\5\2\u0f5b\u0f5c\5/" + + "\30\2\u0f5c\u020c\3\2\2\2\u0f5d\u0f5e\5\23\n\2\u0f5e\u0f5f\5%\23\2\u0f5f" + + "\u0f60\5+\26\2\u0f60\u0f61\5/\30\2\u0f61\u0f62\5+\26\2\u0f62\u0f63\5\t" + + "\5\2\u0f63\u0f64\5#\22\2\u0f64\u020e\3\2\2\2\u0f65\u0f66\5\23\n\2\u0f66" + + "\u0f67\5%\23\2\u0f67\u0f68\5+\26\2\u0f68\u0f69\5\65\33\2\u0f69\u0f6a\5" + + "\t\5\2\u0f6a\u0f6b\5+\26\2\u0f6b\u0f6c\5\17\b\2\u0f6c\u0210\3\2\2\2\u0f6d" + + "\u0f6e\5\23\n\2\u0f6e\u0f6f\5%\23\2\u0f6f\u0f70\5\61\31\2\u0f70\u0f71" + + "\5#\22\2\u0f71\u0f72\5\17\b\2\u0f72\u0212\3\2\2\2\u0f73\u0f74\5\23\n\2" + + "\u0f74\u0f75\5+\26\2\u0f75\u0f76\5\21\t\2\u0f76\u0f77\5\21\t\2\u0f77\u0214" + + "\3\2\2\2\u0f78\u0f79\5\23\n\2\u0f79\u0f7a\5+\26\2\u0f7a\u0f7b\5\21\t\2" + + "\u0f7b\u0f7c\5\21\t\2\u0f7c\u0f7d\5;\36\2\u0f7d\u0f7e\5\21\t\2\u0f7e\u0216" + + "\3\2\2\2\u0f7f\u0f80\5\23\n\2\u0f80\u0f81\5+\26\2\u0f81\u0f82\5%\23\2" + + "\u0f82\u0f83\5!\21\2\u0f83\u0218\3\2\2\2\u0f84\u0f85\5\23\n\2\u0f85\u0f86" + + "\5\61\31\2\u0f86\u0f87\5\37\20\2\u0f87\u0f88\5\37\20\2\u0f88\u021a\3\2" + + "\2\2\u0f89\u0f8a\5\23\n\2\u0f8a\u0f8b\5\61\31\2\u0f8b\u0f8c\5#\22\2\u0f8c" + + "\u0f8d\5\r\7\2\u0f8d\u0f8e\5/\30\2\u0f8e\u0f8f\5\31\r\2\u0f8f\u0f90\5" + + "%\23\2\u0f90\u0f91\5#\22\2\u0f91\u021c\3\2\2\2\u0f92\u0f93\5\23\n\2\u0f93" + + "\u0f94\5\61\31\2\u0f94\u0f95\5-\27\2\u0f95\u0f96\5\31\r\2\u0f96\u0f97" + + "\5%\23\2\u0f97\u0f98\5#\22\2\u0f98\u021e\3\2\2\2\u0f99\u0f9a\5\25\13\2" + + "\u0f9a\u0220\3\2\2\2\u0f9b\u0f9c\5\25\13\2\u0f9c\u0f9d\5\21\t\2\u0f9d" + + "\u0f9e\5#\22\2\u0f9e\u0f9f\5\21\t\2\u0f9f\u0fa0\5+\26\2\u0fa0\u0fa1\5" + + "\t\5\2\u0fa1\u0fa2\5\37\20\2\u0fa2\u0222\3\2\2\2\u0fa3\u0fa4\5\25\13\2" + + "\u0fa4\u0fa5\5\21\t\2\u0fa5\u0fa6\5#\22\2\u0fa6\u0fa7\5\21\t\2\u0fa7\u0fa8" + + "\5+\26\2\u0fa8\u0fa9\5\t\5\2\u0fa9\u0faa\5/\30\2\u0faa\u0fab\5\21\t\2" + + "\u0fab\u0fac\5\17\b\2\u0fac\u0224\3\2\2\2\u0fad\u0fae\5\25\13\2\u0fae" + + "\u0faf\5\21\t\2\u0faf\u0fb0\5/\30\2\u0fb0\u0226\3\2\2\2\u0fb1\u0fb2\5" + + "\25\13\2\u0fb2\u0fb3\5\37\20\2\u0fb3\u0fb4\5%\23\2\u0fb4\u0fb5\5\13\6" + + "\2\u0fb5\u0fb6\5\t\5\2\u0fb6\u0fb7\5\37\20\2\u0fb7\u0228\3\2\2\2\u0fb8" + + "\u0fb9\5\25\13\2\u0fb9\u0fba\5%\23\2\u0fba\u022a\3\2\2\2\u0fbb\u0fbc\5" + + "\25\13\2\u0fbc\u0fbd\5%\23\2\u0fbd\u0fbe\5/\30\2\u0fbe\u0fbf\5%\23\2\u0fbf" + + "\u022c\3\2\2\2\u0fc0\u0fc1\5\25\13\2\u0fc1\u0fc2\5+\26\2\u0fc2\u0fc3\5" + + "\t\5\2\u0fc3\u0fc4\5#\22\2\u0fc4\u0fc5\5/\30\2\u0fc5\u022e\3\2\2\2\u0fc6" + + "\u0fc7\5\25\13\2\u0fc7\u0fc8\5+\26\2\u0fc8\u0fc9\5\t\5\2\u0fc9\u0fca\5" + + "#\22\2\u0fca\u0fcb\5/\30\2\u0fcb\u0fcc\5\21\t\2\u0fcc\u0fcd\5\17\b\2\u0fcd" + + "\u0230\3\2\2\2\u0fce\u0fcf\5\25\13\2\u0fcf\u0fd0\5+\26\2\u0fd0\u0fd1\5" + + "\21\t\2\u0fd1\u0fd2\5\t\5\2\u0fd2\u0fd3\5/\30\2\u0fd3\u0fd4\5\21\t\2\u0fd4" + + "\u0fd5\5-\27\2\u0fd5\u0fd6\5/\30\2\u0fd6\u0232\3\2\2\2\u0fd7\u0fd8\5\25" + + "\13\2\u0fd8\u0fd9\5+\26\2\u0fd9\u0fda\5%\23\2\u0fda\u0fdb\5\61\31\2\u0fdb" + + "\u0fdc\5\'\24\2\u0fdc\u0234\3\2\2\2\u0fdd\u0fde\5\25\13\2\u0fde\u0fdf" + + "\5+\26\2\u0fdf\u0fe0\5%\23\2\u0fe0\u0fe1\5\61\31\2\u0fe1\u0fe2\5\'\24" + + "\2\u0fe2\u0fe3\5\31\r\2\u0fe3\u0fe4\5#\22\2\u0fe4\u0fe5\5\25\13\2\u0fe5" + + "\u0236\3\2\2\2\u0fe6\u0fe7\5\27\f\2\u0fe7\u0fe8\5\t\5\2\u0fe8\u0fe9\5" + + "#\22\2\u0fe9\u0fea\5\17\b\2"; + private static final String _serializedATNSegment2 = + "\u0fea\u0feb\5\37\20\2\u0feb\u0fec\5\21\t\2\u0fec\u0fed\5+\26\2\u0fed" + + "\u0238\3\2\2\2\u0fee\u0fef\5\27\f\2\u0fef\u0ff0\5\t\5\2\u0ff0\u0ff1\5" + + "\63\32\2\u0ff1\u0ff2\5\31\r\2\u0ff2\u0ff3\5#\22\2\u0ff3\u0ff4\5\25\13" + + "\2\u0ff4\u023a\3\2\2\2\u0ff5\u0ff6\5\27\f\2\u0ff6\u0ff7\5\31\r\2\u0ff7" + + "\u0ff8\5\21\t\2\u0ff8\u0ff9\5+\26\2\u0ff9\u0ffa\5\t\5\2\u0ffa\u0ffb\5" + + "+\26\2\u0ffb\u0ffc\5\r\7\2\u0ffc\u0ffd\5\27\f\2\u0ffd\u0ffe\59\35\2\u0ffe" + + "\u023c\3\2\2\2\u0fff\u1000\5\27\f\2\u1000\u1001\5%\23\2\u1001\u1002\5" + + "\37\20\2\u1002\u1003\5\17\b\2\u1003\u023e\3\2\2\2\u1004\u1005\5\27\f\2" + + "\u1005\u1006\5%\23\2\u1006\u1007\5-\27\2\u1007\u1008\5/\30\2\u1008\u0240" + + "\3\2\2\2\u1009\u100a\5\27\f\2\u100a\u100b\5%\23\2\u100b\u100c\5\61\31" + + "\2\u100c\u100d\5+\26\2\u100d\u0242\3\2\2\2\u100e\u100f\5\31\r\2\u100f" + + "\u1010\5\17\b\2\u1010\u1011\5\21\t\2\u1011\u1012\5#\22\2\u1012\u1013\5" + + "/\30\2\u1013\u1014\5\31\r\2\u1014\u1015\5/\30\2\u1015\u1016\59\35\2\u1016" + + "\u0244\3\2\2\2\u1017\u1018\5\31\r\2\u1018\u1019\5\25\13\2\u1019\u101a" + + "\5#\22\2\u101a\u101b\5%\23\2\u101b\u101c\5+\26\2\u101c\u101d\5\21\t\2" + + "\u101d\u0246\3\2\2\2\u101e\u101f\5\31\r\2\u101f\u1020\5\37\20\2\u1020" + + "\u1021\5\31\r\2\u1021\u1022\5\35\17\2\u1022\u1023\5\21\t\2\u1023\u0248" + + "\3\2\2\2\u1024\u1025\5\31\r\2\u1025\u1026\5!\21\2\u1026\u1027\5!\21\2" + + "\u1027\u1028\5\21\t\2\u1028\u1029\5\17\b\2\u1029\u102a\5\31\r\2\u102a" + + "\u102b\5\t\5\2\u102b\u102c\5/\30\2\u102c\u102d\5\21\t\2\u102d\u024a\3" + + "\2\2\2\u102e\u102f\5\31\r\2\u102f\u1030\5!\21\2\u1030\u1031\5!\21\2\u1031" + + "\u1032\5\61\31\2\u1032\u1033\5/\30\2\u1033\u1034\5\t\5\2\u1034\u1035\5" + + "\13\6\2\u1035\u1036\5\37\20\2\u1036\u1037\5\21\t\2\u1037\u024c\3\2\2\2" + + "\u1038\u1039\5\31\r\2\u1039\u103a\5!\21\2\u103a\u103b\5\'\24\2\u103b\u103c" + + "\5\37\20\2\u103c\u103d\5\21\t\2\u103d\u103e\5!\21\2\u103e\u103f\5\21\t" + + "\2\u103f\u1040\5#\22\2\u1040\u1041\5/\30\2\u1041\u1042\5\t\5\2\u1042\u1043" + + "\5/\30\2\u1043\u1044\5\31\r\2\u1044\u1045\5%\23\2\u1045\u1046\5#\22\2" + + "\u1046\u024e\3\2\2\2\u1047\u1048\5\31\r\2\u1048\u1049\5!\21\2\u1049\u104a" + + "\5\'\24\2\u104a\u104b\5\37\20\2\u104b\u104c\5\31\r\2\u104c\u104d\5\r\7" + + "\2\u104d\u104e\5\31\r\2\u104e\u104f\5/\30\2\u104f\u0250\3\2\2\2\u1050" + + "\u1051\5\31\r\2\u1051\u1052\5#\22\2\u1052\u0252\3\2\2\2\u1053\u1054\5" + + "\31\r\2\u1054\u1055\5#\22\2\u1055\u1056\5\r\7\2\u1056\u1057\5\37\20\2" + + "\u1057\u1058\5\61\31\2\u1058\u1059\5\17\b\2\u1059\u105a\5\31\r\2\u105a" + + "\u105b\5#\22\2\u105b\u105c\5\25\13\2\u105c\u0254\3\2\2\2\u105d\u105e\5" + + "\31\r\2\u105e\u105f\5#\22\2\u105f\u1060\5\r\7\2\u1060\u1061\5+\26\2\u1061" + + "\u1062\5\21\t\2\u1062\u1063\5!\21\2\u1063\u1064\5\21\t\2\u1064\u1065\5" + + "#\22\2\u1065\u1066\5/\30\2\u1066\u0256\3\2\2\2\u1067\u1068\5\31\r\2\u1068" + + "\u1069\5#\22\2\u1069\u106a\5\17\b\2\u106a\u106b\5\21\t\2\u106b\u106c\5" + + "\67\34\2\u106c\u0258\3\2\2\2\u106d\u106e\5\31\r\2\u106e\u106f\5#\22\2" + + "\u106f\u1070\5\17\b\2\u1070\u1071\5\31\r\2\u1071\u1072\5\r\7\2\u1072\u1073" + + "\5\t\5\2\u1073\u1074\5/\30\2\u1074\u1075\5%\23\2\u1075\u1076\5+\26\2\u1076" + + "\u025a\3\2\2\2\u1077\u1078\5\31\r\2\u1078\u1079\5#\22\2\u1079\u107a\5" + + "\23\n\2\u107a\u107b\5\31\r\2\u107b\u107c\5\67\34\2\u107c\u025c\3\2\2\2" + + "\u107d\u107e\5\31\r\2\u107e\u107f\5#\22\2\u107f\u1080\5\27\f\2\u1080\u1081" + + "\5\21\t\2\u1081\u1082\5+\26\2\u1082\u1083\5\31\r\2\u1083\u1084\5/\30\2" + + "\u1084\u1085\5-\27\2\u1085\u025e\3\2\2\2\u1086\u1087\5\31\r\2\u1087\u1088" + + "\5#\22\2\u1088\u1089\5\31\r\2\u1089\u108a\5/\30\2\u108a\u108b\5\31\r\2" + + "\u108b\u108c\5\t\5\2\u108c\u108d\5\37\20\2\u108d\u108e\5\31\r\2\u108e" + + "\u108f\5;\36\2\u108f\u1090\5\21\t\2\u1090\u0260\3\2\2\2\u1091\u1092\5" + + "\31\r\2\u1092\u1093\5#\22\2\u1093\u1094\5\31\r\2\u1094\u1095\5/\30\2\u1095" + + "\u1096\5\31\r\2\u1096\u1097\5\t\5\2\u1097\u1098\5\37\20\2\u1098\u1099" + + "\5\37\20\2\u1099\u109a\59\35\2\u109a\u0262\3\2\2\2\u109b\u109c\5\31\r" + + "\2\u109c\u109d\5#\22\2\u109d\u109e\5#\22\2\u109e\u109f\5\21\t\2\u109f" + + "\u10a0\5+\26\2\u10a0\u0264\3\2\2\2\u10a1\u10a2\5\31\r\2\u10a2\u10a3\5" + + "#\22\2\u10a3\u10a4\5%\23\2\u10a4\u10a5\5\61\31\2\u10a5\u10a6\5/\30\2\u10a6" + + "\u0266\3\2\2\2\u10a7\u10a8\5\31\r\2\u10a8\u10a9\5#\22\2\u10a9\u10aa\5" + + "\'\24\2\u10aa\u10ab\5\61\31\2\u10ab\u10ac\5/\30\2\u10ac\u0268\3\2\2\2" + + "\u10ad\u10ae\5\31\r\2\u10ae\u10af\5#\22\2\u10af\u10b0\5-\27\2\u10b0\u10b1" + + "\5\21\t\2\u10b1\u10b2\5#\22\2\u10b2\u10b3\5-\27\2\u10b3\u10b4\5\31\r\2" + + "\u10b4\u10b5\5/\30\2\u10b5\u10b6\5\31\r\2\u10b6\u10b7\5\63\32\2\u10b7" + + "\u10b8\5\21\t\2\u10b8\u026a\3\2\2\2\u10b9\u10ba\5\31\r\2\u10ba\u10bb\5" + + "#\22\2\u10bb\u10bc\5-\27\2\u10bc\u10bd\5\21\t\2\u10bd\u10be\5+\26\2\u10be" + + "\u10bf\5/\30\2\u10bf\u026c\3\2\2\2\u10c0\u10c1\5\31\r\2\u10c1\u10c2\5" + + "#\22\2\u10c2\u10c3\5-\27\2\u10c3\u10c4\5/\30\2\u10c4\u10c5\5\t\5\2\u10c5" + + "\u10c6\5#\22\2\u10c6\u10c7\5\r\7\2\u10c7\u10c8\5\21\t\2\u10c8\u026e\3" + + "\2\2\2\u10c9\u10ca\5\31\r\2\u10ca\u10cb\5#\22\2\u10cb\u10cc\5-\27\2\u10cc" + + "\u10cd\5/\30\2\u10cd\u10ce\5\t\5\2\u10ce\u10cf\5#\22\2\u10cf\u10d0\5/" + + "\30\2\u10d0\u10d1\5\31\r\2\u10d1\u10d2\5\t\5\2\u10d2\u10d3\5\13\6\2\u10d3" + + "\u10d4\5\37\20\2\u10d4\u10d5\5\21\t\2\u10d5\u0270\3\2\2\2\u10d6\u10d7" + + "\5\31\r\2\u10d7\u10d8\5#\22\2\u10d8\u10d9\5-\27\2\u10d9\u10da\5/\30\2" + + "\u10da\u10db\5\21\t\2\u10db\u10dc\5\t\5\2\u10dc\u10dd\5\17\b\2\u10dd\u0272" + + "\3\2\2\2\u10de\u10df\5\31\r\2\u10df\u10e0\5#\22\2\u10e0\u10e1\5/\30\2" + + "\u10e1\u0274\3\2\2\2\u10e2\u10e3\5\31\r\2\u10e3\u10e4\5#\22\2\u10e4\u10e5" + + "\5/\30\2\u10e5\u10e6\5\21\t\2\u10e6\u10e7\5\25\13\2\u10e7\u10e8\5\21\t" + + "\2\u10e8\u10e9\5+\26\2\u10e9\u0276\3\2\2\2\u10ea\u10eb\5\31\r\2\u10eb" + + "\u10ec\5#\22\2\u10ec\u10ed\5/\30\2\u10ed\u10ee\5\21\t\2\u10ee\u10ef\5" + + "+\26\2\u10ef\u10f0\5-\27\2\u10f0\u10f1\5\21\t\2\u10f1\u10f2\5\r\7\2\u10f2" + + "\u10f3\5/\30\2\u10f3\u0278\3\2\2\2\u10f4\u10f5\5\31\r\2\u10f5\u10f6\5" + + "#\22\2\u10f6\u10f7\5/\30\2\u10f7\u10f8\5\21\t\2\u10f8\u10f9\5+\26\2\u10f9" + + "\u10fa\5-\27\2\u10fa\u10fb\5\21\t\2\u10fb\u10fc\5\r\7\2\u10fc\u10fd\5" + + "/\30\2\u10fd\u10fe\5\31\r\2\u10fe\u10ff\5%\23\2\u10ff\u1100\5#\22\2\u1100" + + "\u027a\3\2\2\2\u1101\u1102\5\31\r\2\u1102\u1103\5#\22\2\u1103\u1104\5" + + "/\30\2\u1104\u1105\5\21\t\2\u1105\u1106\5+\26\2\u1106\u1107\5\63\32\2" + + "\u1107\u1108\5\t\5\2\u1108\u1109\5\37\20\2\u1109\u027c\3\2\2\2\u110a\u110b" + + "\5\31\r\2\u110b\u110c\5#\22\2\u110c\u110d\5/\30\2\u110d\u110e\5%\23\2" + + "\u110e\u027e\3\2\2\2\u110f\u1110\5\31\r\2\u1110\u1111\5#\22\2\u1111\u1112" + + "\5\63\32\2\u1112\u1113\5%\23\2\u1113\u1114\5\35\17\2\u1114\u1115\5\21" + + "\t\2\u1115\u1116\5+\26\2\u1116\u0280\3\2\2\2\u1117\u1118\5\31\r\2\u1118" + + "\u1119\5-\27\2\u1119\u0282\3\2\2\2\u111a\u111b\5\31\r\2\u111b\u111c\5" + + "-\27\2\u111c\u111d\5%\23\2\u111d\u111e\5\37\20\2\u111e\u111f\5\t\5\2\u111f" + + "\u1120\5/\30\2\u1120\u1121\5\31\r\2\u1121\u1122\5%\23\2\u1122\u1123\5" + + "#\22\2\u1123\u0284\3\2\2\2\u1124\u1125\5\31\r\2\u1125\u1126\5/\30\2\u1126" + + "\u1127\5\21\t\2\u1127\u1128\5+\26\2\u1128\u1129\5\t\5\2\u1129\u112a\5" + + "/\30\2\u112a\u112b\5\21\t\2\u112b\u0286\3\2\2\2\u112c\u112d\5\33\16\2" + + "\u112d\u112e\5%\23\2\u112e\u112f\5\31\r\2\u112f\u1130\5#\22\2\u1130\u0288" + + "\3\2\2\2\u1131\u1132\5\35\17\2\u1132\u028a\3\2\2\2\u1133\u1134\5\35\17" + + "\2\u1134\u1135\5\21\t\2\u1135\u1136\59\35\2\u1136\u028c\3\2\2\2\u1137" + + "\u1138\5\35\17\2\u1138\u1139\5\21\t\2\u1139\u113a\59\35\2\u113a\u113b" + + "\7a\2\2\u113b\u113c\5!\21\2\u113c\u113d\5\21\t\2\u113d\u113e\5!\21\2\u113e" + + "\u113f\5\13\6\2\u113f\u1140\5\21\t\2\u1140\u1141\5+\26\2\u1141\u028e\3" + + "\2\2\2\u1142\u1143\5\35\17\2\u1143\u1144\5\21\t\2\u1144\u1145\59\35\2" + + "\u1145\u1146\7a\2\2\u1146\u1147\5/\30\2\u1147\u1148\59\35\2\u1148\u1149" + + "\5\'\24\2\u1149\u114a\5\21\t\2\u114a\u0290\3\2\2\2\u114b\u114c\5\37\20" + + "\2\u114c\u114d\5\t\5\2\u114d\u114e\5\13\6\2\u114e\u114f\5\21\t\2\u114f" + + "\u1150\5\37\20\2\u1150\u0292\3\2\2\2\u1151\u1152\5\37\20\2\u1152\u1153" + + "\5\t\5\2\u1153\u1154\5#\22\2\u1154\u1155\5\r\7\2\u1155\u1156\5%\23\2\u1156" + + "\u1157\5!\21\2\u1157\u1158\5\'\24\2\u1158\u1159\5\31\r\2\u1159\u115a\5" + + "\37\20\2\u115a\u115b\5\21\t\2\u115b\u115c\5+\26\2\u115c\u0294\3\2\2\2" + + "\u115d\u115e\5\37\20\2\u115e\u115f\5\t\5\2\u115f\u1160\5#\22\2\u1160\u1161" + + "\5\25\13\2\u1161\u1162\5\61\31\2\u1162\u1163\5\t\5\2\u1163\u1164\5\25" + + "\13\2\u1164\u1165\5\21\t\2\u1165\u0296\3\2\2\2\u1166\u1167\5\37\20\2\u1167" + + "\u1168\5\t\5\2\u1168\u1169\5+\26\2\u1169\u116a\5\25\13\2\u116a\u116b\5" + + "\21\t\2\u116b\u0298\3\2\2\2\u116c\u116d\5\37\20\2\u116d\u116e\5\t\5\2" + + "\u116e\u116f\5-\27\2\u116f\u1170\5/\30\2\u1170\u029a\3\2\2\2\u1171\u1172" + + "\5\37\20\2\u1172\u1173\5\t\5\2\u1173\u1174\5/\30\2\u1174\u1175\5\21\t" + + "\2\u1175\u1176\5+\26\2\u1176\u1177\5\t\5\2\u1177\u1178\5\37\20\2\u1178" + + "\u029c\3\2\2\2\u1179\u117a\5\37\20\2\u117a\u117b\5\21\t\2\u117b\u117c" + + "\5\t\5\2\u117c\u117d\5\17\b\2\u117d\u117e\5\31\r\2\u117e\u117f\5#\22\2" + + "\u117f\u1180\5\25\13\2\u1180\u029e\3\2\2\2\u1181\u1182\5\37\20\2\u1182" + + "\u1183\5\21\t\2\u1183\u1184\5\t\5\2\u1184\u1185\5-\27\2\u1185\u1186\5" + + "/\30\2\u1186\u02a0\3\2\2\2\u1187\u1188\5\37\20\2\u1188\u1189\5\21\t\2" + + "\u1189\u118a\5\23\n\2\u118a\u118b\5/\30\2\u118b\u02a2\3\2\2\2\u118c\u118d" + + "\5\37\20\2\u118d\u118e\5\21\t\2\u118e\u118f\5#\22\2\u118f\u1190\5\25\13" + + "\2\u1190\u1191\5/\30\2\u1191\u1192\5\27\f\2\u1192\u02a4\3\2\2\2\u1193" + + "\u1194\5\37\20\2\u1194\u1195\5\21\t\2\u1195\u1196\5-\27\2\u1196\u1197" + + "\5-\27\2\u1197\u02a6\3\2\2\2\u1198\u1199\5\37\20\2\u1199\u119a\5\21\t" + + "\2\u119a\u119b\5\63\32\2\u119b\u119c\5\21\t\2\u119c\u119d\5\37\20\2\u119d" + + "\u02a8\3\2\2\2\u119e\u119f\5\37\20\2\u119f\u11a0\5\31\r\2\u11a0\u11a1" + + "\5\35\17\2\u11a1\u11a2\5\21\t\2\u11a2\u02aa\3\2\2\2\u11a3\u11a4\5\37\20" + + "\2\u11a4\u11a5\5\31\r\2\u11a5\u11a6\5!\21\2\u11a6\u11a7\5\31\r\2\u11a7" + + "\u11a8\5/\30\2\u11a8\u02ac\3\2\2\2\u11a9\u11aa\5\37\20\2\u11aa\u11ab\5" + + "\31\r\2\u11ab\u11ac\5-\27\2\u11ac\u11ad\5/\30\2\u11ad\u11ae\5\21\t\2\u11ae" + + "\u11af\5#\22\2\u11af\u02ae\3\2\2\2\u11b0\u11b1\5\37\20\2\u11b1\u11b2\5" + + "#\22\2\u11b2\u02b0\3\2\2\2\u11b3\u11b4\5\37\20\2\u11b4\u11b5\5%\23\2\u11b5" + + "\u11b6\5\t\5\2\u11b6\u11b7\5\17\b\2\u11b7\u02b2\3\2\2\2\u11b8\u11b9\5" + + "\37\20\2\u11b9\u11ba\5%\23\2\u11ba\u11bb\5\r\7\2\u11bb\u11bc\5\t\5\2\u11bc" + + "\u11bd\5\37\20\2\u11bd\u02b4\3\2\2\2\u11be\u11bf\5\37\20\2\u11bf\u11c0" + + "\5%\23\2\u11c0\u11c1\5\r\7\2\u11c1\u11c2\5\t\5\2\u11c2\u11c3\5\37\20\2" + + "\u11c3\u11c4\5/\30\2\u11c4\u11c5\5\31\r\2\u11c5\u11c6\5!\21\2\u11c6\u11c7" + + "\5\21\t\2\u11c7\u02b6\3\2\2\2\u11c8\u11c9\5\37\20\2\u11c9\u11ca\5%\23" + + "\2\u11ca\u11cb\5\r\7\2\u11cb\u11cc\5\t\5\2\u11cc\u11cd\5\37\20\2\u11cd" + + "\u11ce\5/\30\2\u11ce\u11cf\5\31\r\2\u11cf\u11d0\5!\21\2\u11d0\u11d1\5" + + "\21\t\2\u11d1\u11d2\5-\27\2\u11d2\u11d3\5/\30\2\u11d3\u11d4\5\t\5\2\u11d4" + + "\u11d5\5!\21\2\u11d5\u11d6\5\'\24\2\u11d6\u02b8\3\2\2\2\u11d7\u11d8\5" + + "\37\20\2\u11d8\u11d9\5%\23\2\u11d9\u11da\5\r\7\2\u11da\u11db\5\t\5\2\u11db" + + "\u11dc\5/\30\2\u11dc\u11dd\5\31\r\2\u11dd\u11de\5%\23\2\u11de\u11df\5" + + "#\22\2\u11df\u02ba\3\2\2\2\u11e0\u11e1\5\37\20\2\u11e1\u11e2\5%\23\2\u11e2" + + "\u11e3\5\r\7\2\u11e3\u11e4\5\t\5\2\u11e4\u11e5\5/\30\2\u11e5\u11e6\5%" + + "\23\2\u11e6\u11e7\5+\26\2\u11e7\u02bc\3\2\2\2\u11e8\u11e9\5\37\20\2\u11e9" + + "\u11ea\5%\23\2\u11ea\u11eb\5\r\7\2\u11eb\u11ec\5\35\17\2\u11ec\u02be\3" + + "\2\2\2\u11ed\u11ee\5\37\20\2\u11ee\u11ef\5%\23\2\u11ef\u11f0\5\r\7\2\u11f0" + + "\u11f1\5\35\17\2\u11f1\u11f2\5\21\t\2\u11f2\u11f3\5\17\b\2\u11f3\u02c0" + + "\3\2\2\2\u11f4\u11f5\5\37\20\2\u11f5\u11f6\5%\23\2\u11f6\u11f7\5\65\33" + + "\2\u11f7\u11f8\5\21\t\2\u11f8\u11f9\5+\26\2\u11f9\u02c2\3\2\2\2\u11fa" + + "\u11fb\5!\21\2\u11fb\u02c4\3\2\2\2\u11fc\u11fd\5!\21\2\u11fd\u11fe\5\t" + + "\5\2\u11fe\u11ff\5\31\r\2\u11ff\u1200\5#\22\2\u1200\u02c6\3\2\2\2\u1201" + + "\u1202\5!\21\2\u1202\u1203\5\t\5\2\u1203\u1204\5\'\24\2\u1204\u02c8\3" + + "\2\2\2\u1205\u1206\5!\21\2\u1206\u1207\5\t\5\2\u1207\u1208\5\'\24\2\u1208" + + "\u1209\5\'\24\2\u1209\u120a\5\31\r\2\u120a\u120b\5#\22\2\u120b\u120c\5" + + "\25\13\2\u120c\u02ca\3\2\2\2\u120d\u120e\5!\21\2\u120e\u120f\5\t\5\2\u120f" + + "\u1210\5/\30\2\u1210\u1211\5\r\7\2\u1211\u1212\5\27\f\2\u1212\u02cc\3" + + "\2\2\2\u1213\u1214\5!\21\2\u1214\u1215\5\t\5\2\u1215\u1216\5/\30\2\u1216" + + "\u1217\5\r\7\2\u1217\u1218\5\27\f\2\u1218\u1219\7a\2\2\u1219\u121a\5-" + + "\27\2\u121a\u121b\5\31\r\2\u121b\u121c\5!\21\2\u121c\u121d\5\'\24\2\u121d" + + "\u121e\5\37\20\2\u121e\u121f\5\21\t\2\u121f\u02ce\3\2\2\2\u1220\u1221" + + "\5!\21\2\u1221\u1222\5\t\5\2\u1222\u1223\5/\30\2\u1223\u1224\5\r\7\2\u1224" + + "\u1225\5\27\f\2\u1225\u1226\5\21\t\2\u1226\u1227\5\17\b\2\u1227\u02d0" + + "\3\2\2\2\u1228\u1229\5!\21\2\u1229\u122a\5\t\5\2\u122a\u122b\5\67\34\2" + + "\u122b\u02d2\3\2\2\2\u122c\u122d\5!\21\2\u122d\u122e\5\t\5\2\u122e\u122f" + + "\5\67\34\2\u122f\u1230\5\63\32\2\u1230\u1231\5\t\5\2\u1231\u1232\5\37" + + "\20\2\u1232\u1233\5\61\31\2\u1233\u1234\5\21\t\2\u1234\u02d4\3\2\2\2\u1235" + + "\u1236\5!\21\2\u1236\u1237\5\21\t\2\u1237\u1238\5!\21\2\u1238\u1239\5" + + "\13\6\2\u1239\u123a\5\21\t\2\u123a\u123b\5+\26\2\u123b\u02d6\3\2\2\2\u123c" + + "\u123d\5!\21\2\u123d\u123e\5\21\t\2\u123e\u123f\5+\26\2\u123f\u1240\5" + + "\25\13\2\u1240\u1241\5\21\t\2\u1241\u02d8\3\2\2\2\u1242\u1243\5!\21\2" + + "\u1243\u1244\5\21\t\2\u1244\u1245\5-\27\2\u1245\u1246\5-\27\2\u1246\u1247" + + "\5\t\5\2\u1247\u1248\5\25\13\2\u1248\u1249\5\21\t\2\u1249\u124a\7a\2\2" + + "\u124a\u124b\5\37\20\2\u124b\u124c\5\21\t\2\u124c\u124d\5#\22\2\u124d" + + "\u124e\5\25\13\2\u124e\u124f\5/\30\2\u124f\u1250\5\27\f\2\u1250\u02da" + + "\3\2\2\2\u1251\u1252\5!\21\2\u1252\u1253\5\21\t\2\u1253\u1254\5-\27\2" + + "\u1254\u1255\5-\27\2\u1255\u1256\5\t\5\2\u1256\u1257\5\25\13\2\u1257\u1258" + + "\5\21\t\2\u1258\u1259\7a\2\2\u1259\u125a\5%\23\2\u125a\u125b\5\r\7\2\u125b" + + "\u125c\5/\30\2\u125c\u125d\5\21\t\2\u125d\u125e\5/\30\2\u125e\u125f\7" + + "a\2\2\u125f\u1260\5\37\20\2\u1260\u1261\5\21\t\2\u1261\u1262\5#\22\2\u1262" + + "\u1263\5\25\13\2\u1263\u1264\5/\30\2\u1264\u1265\5\27\f\2\u1265\u02dc" + + "\3\2\2\2\u1266\u1267\5!\21\2\u1267\u1268\5\21\t\2\u1268\u1269\5-\27\2" + + "\u1269\u126a\5-\27\2\u126a\u126b\5\t\5\2\u126b\u126c\5\25\13\2\u126c\u126d" + + "\5\21\t\2\u126d\u126e\7a\2\2\u126e\u126f\5/\30\2\u126f\u1270\5\21\t\2" + + "\u1270\u1271\5\67\34\2\u1271\u1272\5/\30\2\u1272\u02de\3\2\2\2\u1273\u1274" + + "\5!\21\2\u1274\u1275\5\21\t\2\u1275\u1276\5/\30\2\u1276\u1277\5\27\f\2" + + "\u1277\u1278\5%\23\2\u1278\u1279\5\17\b\2\u1279\u02e0\3\2\2\2\u127a\u127b" + + "\5!\21\2\u127b\u127c\5\31\r\2\u127c\u127d\5#\22\2\u127d\u02e2\3\2\2\2" + + "\u127e\u127f\5!\21\2\u127f\u1280\5\31\r\2\u1280\u1281\5#\22\2\u1281\u1282" + + "\5\61\31\2\u1282\u1283\5/\30\2\u1283\u1284\5\21\t\2\u1284\u02e4\3\2\2" + + "\2\u1285\u1286\5!\21\2\u1286\u1287\5\31\r\2\u1287\u1288\5#\22\2\u1288" + + "\u1289\5\63\32\2\u1289\u128a\5\t\5\2\u128a\u128b\5\37\20\2\u128b\u128c" + + "\5\61\31\2\u128c\u128d\5\21\t\2\u128d\u02e6\3\2\2\2\u128e\u128f\5!\21" + + "\2\u128f\u1290\5%\23\2\u1290\u1291\5\17\b\2\u1291\u02e8\3\2\2\2\u1292" + + "\u1293\5!\21\2\u1293\u1294\5%\23\2\u1294\u1295\5\17\b\2\u1295\u1296\5" + + "\21\t\2\u1296\u02ea\3\2\2\2\u1297\u1298\5!\21\2\u1298\u1299\5%\23\2\u1299" + + "\u129a\5\17\b\2\u129a\u129b\5\31\r\2\u129b\u129c\5\23\n\2\u129c\u129d" + + "\5\31\r\2\u129d\u129e\5\21\t\2\u129e\u129f\5-\27\2\u129f\u02ec\3\2\2\2" + + "\u12a0\u12a1\5!\21\2\u12a1\u12a2\5%\23\2\u12a2\u12a3\5\17\b\2\u12a3\u12a4" + + "\5\31\r\2\u12a4\u12a5\5\23\n\2\u12a5\u12a6\59\35\2\u12a6\u02ee\3\2\2\2" + + "\u12a7\u12a8\5!\21\2\u12a8\u12a9\5%\23\2\u12a9\u12aa\5\17\b\2\u12aa\u12ab" + + "\5\61\31\2\u12ab\u12ac\5\37\20\2\u12ac\u12ad\5\21\t\2\u12ad\u02f0\3\2" + + "\2\2\u12ae\u12af\5!\21\2\u12af\u12b0\5%\23\2\u12b0\u12b1\5#\22\2\u12b1" + + "\u12b2\5/\30\2\u12b2\u12b3\5\27\f\2\u12b3\u02f2\3\2\2\2\u12b4\u12b5\5" + + "!\21\2\u12b5\u12b6\5%\23\2\u12b6\u12b7\5+\26\2\u12b7\u12b8\5\21\t\2\u12b8" + + "\u02f4\3\2\2\2\u12b9\u12ba\5!\21\2\u12ba\u12bb\5%\23\2\u12bb\u12bc\5\63" + + "\32\2\u12bc\u12bd\5\21\t\2\u12bd\u02f6\3\2\2\2\u12be\u12bf\5!\21\2\u12bf" + + "\u12c0\5\61\31\2\u12c0\u12c1\5\37\20\2\u12c1\u12c2\5/\30\2\u12c2\u12c3" + + "\5\31\r\2\u12c3\u12c4\5-\27\2\u12c4\u12c5\5\21\t\2\u12c5\u12c6\5/\30\2" + + "\u12c6\u02f8\3\2\2\2\u12c7\u12c8\5!\21\2\u12c8\u12c9\5\61\31\2\u12c9\u12ca" + + "\5!\21\2\u12ca\u12cb\5\'\24\2\u12cb\u12cc\5-\27\2\u12cc\u02fa\3\2\2\2" + + "\u12cd\u12ce\5#\22\2\u12ce\u12cf\5\t\5\2\u12cf\u12d0\5!\21\2\u12d0\u12d1" + + "\5\21\t\2\u12d1\u02fc\3\2\2\2\u12d2\u12d3\5#\22\2\u12d3\u12d4\5\t\5\2" + + "\u12d4\u12d5\5!\21\2\u12d5\u12d6\5\21\t\2\u12d6\u12d7\5-\27\2\u12d7\u02fe" + + "\3\2\2\2\u12d8\u12d9\5#\22\2\u12d9\u12da\5\t\5\2\u12da\u12db\5/\30\2\u12db" + + "\u12dc\5\31\r\2\u12dc\u12dd\5%\23\2\u12dd\u12de\5#\22\2\u12de\u12df\5" + + "\t\5\2\u12df\u12e0\5\37\20\2\u12e0\u0300\3\2\2\2\u12e1\u12e2\5#\22\2\u12e2" + + "\u12e3\5\t\5\2\u12e3\u12e4\5/\30\2\u12e4\u12e5\5\61\31\2\u12e5\u12e6\5" + + "+\26\2\u12e6\u12e7\5\t\5\2\u12e7\u12e8\5\37\20\2\u12e8\u0302\3\2\2\2\u12e9" + + "\u12ea\5#\22\2\u12ea\u12eb\5\r\7\2\u12eb\u12ec\5\27\f\2\u12ec\u12ed\5" + + "\t\5\2\u12ed\u12ee\5+\26\2\u12ee\u0304\3\2\2\2\u12ef\u12f0\5#\22\2\u12f0" + + "\u12f1\5\r\7\2\u12f1\u12f2\5\37\20\2\u12f2\u12f3\5%\23\2\u12f3\u12f4\5" + + "\13\6\2\u12f4\u0306\3\2\2\2\u12f5\u12f6\5#\22\2\u12f6\u12f7\5\21\t\2\u12f7" + + "\u12f8\5-\27\2\u12f8\u12f9\5/\30\2\u12f9\u12fa\5\31\r\2\u12fa\u12fb\5" + + "#\22\2\u12fb\u12fc\5\25\13\2\u12fc\u0308\3\2\2\2\u12fd\u12fe\5#\22\2\u12fe" + + "\u12ff\5\21\t\2\u12ff\u1300\5\65\33\2\u1300\u030a\3\2\2\2\u1301\u1302" + + "\5#\22\2\u1302\u1303\5\21\t\2\u1303\u1304\5\67\34\2\u1304\u1305\5/\30" + + "\2\u1305\u030c\3\2\2\2\u1306\u1307\5#\22\2\u1307\u1308\5%\23\2\u1308\u030e" + + "\3\2\2\2\u1309\u130a\5#\22\2\u130a\u130b\5%\23\2\u130b\u130c\5\r\7\2\u130c" + + "\u130d\5+\26\2\u130d\u130e\5\21\t\2\u130e\u130f\5\t\5\2\u130f\u1310\5" + + "/\30\2\u1310\u1311\5\21\t\2\u1311\u1312\5\17\b\2\u1312\u1313\5\13\6\2" + + "\u1313\u0310\3\2\2\2\u1314\u1315\5#\22\2\u1315\u1316\5%\23\2\u1316\u1317" + + "\5\r\7\2\u1317\u1318\5+\26\2\u1318\u1319\5\21\t\2\u1319\u131a\5\t\5\2" + + "\u131a\u131b\5/\30\2\u131b\u131c\5\21\t\2\u131c\u131d\5\61\31\2\u131d" + + "\u131e\5-\27\2\u131e\u131f\5\21\t\2\u131f\u1320\5+\26\2\u1320\u0312\3" + + "\2\2\2\u1321\u1322\5#\22\2\u1322\u1323\5%\23\2\u1323\u1324\5#\22\2\u1324" + + "\u1325\5\21\t\2\u1325\u0314\3\2\2\2\u1326\u1327\5#\22\2\u1327\u1328\5" + + "%\23\2\u1328\u1329\5+\26\2\u1329\u132a\5!\21\2\u132a\u132b\5\t\5\2\u132b" + + "\u132c\5\37\20\2\u132c\u132d\5\31\r\2\u132d\u132e\5;\36\2\u132e\u132f" + + "\5\21\t\2\u132f\u0316\3\2\2\2\u1330\u1331\5#\22\2\u1331\u1332\5%\23\2" + + "\u1332\u1333\5+\26\2\u1333\u1334\5!\21\2\u1334\u1335\5\t\5\2\u1335\u1336" + + "\5\37\20\2\u1336\u1337\5\31\r\2\u1337\u1338\5;\36\2\u1338\u1339\5\21\t" + + "\2\u1339\u133a\5\17\b\2\u133a\u0318\3\2\2\2\u133b\u133c\5#\22\2\u133c" + + "\u133d\5%\23\2\u133d\u133e\5/\30\2\u133e\u031a\3\2\2\2\u133f\u1340\5#" + + "\22\2\u1340\u1341\5%\23\2\u1341\u1342\5/\30\2\u1342\u1343\5\27\f\2\u1343" + + "\u1344\5\31\r\2\u1344\u1345\5#\22\2\u1345\u1346\5\25\13\2\u1346\u031c" + + "\3\2\2\2\u1347\u1348\5#\22\2\u1348\u1349\5%\23\2\u1349\u134a\5/\30\2\u134a" + + "\u134b\5\31\r\2\u134b\u134c\5\23\n\2\u134c\u134d\59\35\2\u134d\u031e\3" + + "\2\2\2\u134e\u134f\5#\22\2\u134f\u1350\5%\23\2\u1350\u1351\5/\30\2\u1351" + + "\u1352\5#\22\2\u1352\u1353\5\61\31\2\u1353\u1354\5\37\20\2\u1354\u1355" + + "\5\37\20\2\u1355\u0320\3\2\2\2\u1356\u1357\5#\22\2\u1357\u1358\5%\23\2" + + "\u1358\u1359\5\65\33\2\u1359\u135a\5\t\5\2\u135a\u135b\5\31\r\2\u135b" + + "\u135c\5/\30\2\u135c\u0322\3\2\2\2\u135d\u135e\5#\22\2\u135e\u135f\5\61" + + "\31\2\u135f\u1360\5\37\20\2\u1360\u1361\5\37\20\2\u1361\u0324\3\2\2\2" + + "\u1362\u1363\5#\22\2\u1363\u1364\5\61\31\2\u1364\u1365\5\37\20\2\u1365" + + "\u1366\5\37\20\2\u1366\u1367\5\t\5\2\u1367\u1368\5\13\6\2\u1368\u1369" + + "\5\37\20\2\u1369\u136a\5\21\t\2\u136a\u0326\3\2\2\2\u136b\u136c\5#\22" + + "\2\u136c\u136d\5\61\31\2\u136d\u136e\5\37\20\2\u136e\u136f\5\37\20\2\u136f" + + "\u1370\5\31\r\2\u1370\u1371\5\23\n\2\u1371\u0328\3\2\2\2\u1372\u1373\5" + + "#\22\2\u1373\u1374\5\61\31\2\u1374\u1375\5\37\20\2\u1375\u1376\5\37\20" + + "\2\u1376\u1377\5-\27\2\u1377\u032a\3\2\2\2\u1378\u1379\5#\22\2\u1379\u137a" + + "\5\61\31\2\u137a\u137b\5!\21\2\u137b\u137c\5\13\6\2\u137c\u137d\5\21\t" + + "\2\u137d\u137e\5+\26\2\u137e\u032c\3\2\2\2\u137f\u1380\5#\22\2\u1380\u1381" + + "\5\61\31\2\u1381\u1382\5!\21\2\u1382\u1383\5\21\t\2\u1383\u1384\5+\26" + + "\2\u1384\u1385\5\31\r\2\u1385\u1386\5\r\7\2\u1386\u032e\3\2\2\2\u1387" + + "\u1388\5%\23\2\u1388\u1389\5\13\6\2\u1389\u138a\5\33\16\2\u138a\u138b" + + "\5\21\t\2\u138b\u138c\5\r\7\2\u138c\u138d\5/\30\2\u138d\u0330\3\2\2\2" + + "\u138e\u138f\5%\23\2\u138f\u1390\5\r\7\2\u1390\u1391\5/\30\2\u1391\u1392" + + "\5\21\t\2\u1392\u1393\5/\30\2\u1393\u1394\7a\2\2\u1394\u1395\5\37\20\2" + + "\u1395\u1396\5\21\t\2\u1396\u1397\5#\22\2\u1397\u1398\5\25\13\2\u1398" + + "\u1399\5/\30\2\u1399\u139a\5\27\f\2\u139a\u0332\3\2\2\2\u139b\u139c\5" + + "%\23\2\u139c\u139d\5\r\7\2\u139d\u139e\5/\30\2\u139e\u139f\5\21\t\2\u139f" + + "\u13a0\5/\30\2\u13a0\u13a1\5-\27\2\u13a1\u0334\3\2\2\2\u13a2\u13a3\5%" + + "\23\2\u13a3\u13a4\5\23\n\2\u13a4\u0336\3\2\2\2\u13a5\u13a6\5%\23\2\u13a6" + + "\u13a7\5\23\n\2\u13a7\u13a8\5\23\n\2\u13a8\u0338\3\2\2\2\u13a9\u13aa\5" + + "%\23\2\u13aa\u13ab\5\23\n\2\u13ab\u13ac\5\23\n\2\u13ac\u13ad\5-\27\2\u13ad" + + "\u13ae\5\21\t\2\u13ae\u13af\5/\30\2\u13af\u033a\3\2\2\2\u13b0\u13b1\5" + + "%\23\2\u13b1\u13b2\5\31\r\2\u13b2\u13b3\5\17\b\2\u13b3\u13b4\5-\27\2\u13b4" + + "\u033c\3\2\2\2\u13b5\u13b6\5%\23\2\u13b6\u13b7\5\37\20\2\u13b7\u13b8\5" + + "\17\b\2\u13b8\u033e\3\2\2\2\u13b9\u13ba\5%\23\2\u13ba\u13bb\5#\22\2\u13bb" + + "\u0340\3\2\2\2\u13bc\u13bd\5%\23\2\u13bd\u13be\5#\22\2\u13be\u13bf\5\37" + + "\20\2\u13bf\u13c0\59\35\2\u13c0\u0342\3\2\2\2\u13c1\u13c2\5%\23\2\u13c2" + + "\u13c3\5\'\24\2\u13c3\u13c4\5\21\t\2\u13c4\u13c5\5#\22\2\u13c5\u0344\3" + + "\2\2\2\u13c6\u13c7\5%\23\2\u13c7\u13c8\5\'\24\2\u13c8\u13c9\5\21\t\2\u13c9" + + "\u13ca\5+\26\2\u13ca\u13cb\5\t\5\2\u13cb\u13cc\5/\30\2\u13cc\u13cd\5\31" + + "\r\2\u13cd\u13ce\5%\23\2\u13ce\u13cf\5#\22\2\u13cf\u0346\3\2\2\2\u13d0" + + "\u13d1\5%\23\2\u13d1\u13d2\5\'\24\2\u13d2\u13d3\5\21\t\2\u13d3\u13d4\5" + + "+\26\2\u13d4\u13d5\5\t\5\2\u13d5\u13d6\5/\30\2\u13d6\u13d7\5%\23\2\u13d7" + + "\u13d8\5+\26\2\u13d8\u0348\3\2\2\2\u13d9\u13da\5%\23\2\u13da\u13db\5\'" + + "\24\2\u13db\u13dc\5/\30\2\u13dc\u13dd\5\31\r\2\u13dd\u13de\5%\23\2\u13de" + + "\u13df\5#\22\2\u13df\u034a\3\2\2\2\u13e0\u13e1\5%\23\2\u13e1\u13e2\5\'" + + "\24\2\u13e2\u13e3\5/\30\2\u13e3\u13e4\5\31\r\2\u13e4\u13e5\5%\23\2\u13e5" + + "\u13e6\5#\22\2\u13e6\u13e7\5-\27\2\u13e7\u034c\3\2\2\2\u13e8\u13e9\5%" + + "\23\2\u13e9\u13ea\5+\26\2\u13ea\u034e\3\2\2\2\u13eb\u13ec\5%\23\2\u13ec" + + "\u13ed\5+\26\2\u13ed\u13ee\5\17\b\2\u13ee\u13ef\5\21\t\2\u13ef\u13f0\5" + + "+\26\2\u13f0\u0350\3\2\2\2\u13f1\u13f2\5%\23\2\u13f2\u13f3\5+\26\2\u13f3" + + "\u13f4\5\17\b\2\u13f4\u13f5\5\21\t\2\u13f5\u13f6\5+\26\2\u13f6\u13f7\5" + + "\31\r\2\u13f7\u13f8\5#\22\2\u13f8\u13f9\5\25\13\2\u13f9\u0352\3\2\2\2" + + "\u13fa\u13fb\5%\23\2\u13fb\u13fc\5+\26\2\u13fc\u13fd\5\17\b\2\u13fd\u13fe" + + "\5\31\r\2\u13fe\u13ff\5#\22\2\u13ff\u1400\5\t\5\2\u1400\u1401\5\37\20" + + "\2\u1401\u1402\5\31\r\2\u1402\u1403\5/\30\2\u1403\u1404\59\35\2\u1404" + + "\u0354\3\2\2\2\u1405\u1406\5%\23\2\u1406\u1407\5/\30\2\u1407\u1408\5\27" + + "\f\2\u1408\u1409\5\21\t\2\u1409\u140a\5+\26\2\u140a\u140b\5-\27\2\u140b" + + "\u0356\3\2\2\2\u140c\u140d\5%\23\2\u140d\u140e\5\61\31\2\u140e\u140f\5" + + "/\30\2\u140f\u0358\3\2\2\2\u1410\u1411\5%\23\2\u1411\u1412\5\61\31\2\u1412" + + "\u1413\5/\30\2\u1413\u1414\5\21\t\2\u1414\u1415\5+\26\2\u1415\u035a\3" + + "\2\2\2\u1416\u1417\5%\23\2\u1417\u1418\5\61\31\2\u1418\u1419\5/\30\2\u1419" + + "\u141a\5\'\24\2\u141a\u141b\5\61\31\2\u141b\u141c\5/\30\2\u141c\u035c" + + "\3\2\2\2\u141d\u141e\5%\23\2\u141e\u141f\5\63\32\2\u141f\u1420\5\21\t" + + "\2\u1420\u1421\5+\26\2\u1421\u035e\3\2\2\2\u1422\u1423\5%\23\2\u1423\u1424" + + "\5\63\32\2\u1424\u1425\5\21\t\2\u1425\u1426\5+\26\2\u1426\u1427\5\37\20" + + "\2\u1427\u1428\5\t\5\2\u1428\u1429\5\'\24\2\u1429\u142a\5-\27\2\u142a" + + "\u0360\3\2\2\2\u142b\u142c\5%\23\2\u142c\u142d\5\63\32\2\u142d\u142e\5" + + "\21\t\2\u142e\u142f\5+\26\2\u142f\u1430\5\37\20\2\u1430\u1431\5\t\5\2" + + "\u1431\u1432\59\35\2\u1432\u0362\3\2\2\2\u1433\u1434\5%\23\2\u1434\u1435" + + "\5\63\32\2\u1435\u1436\5\21\t\2\u1436\u1437\5+\26\2\u1437\u1438\5+\26" + + "\2\u1438\u1439\5\31\r\2\u1439\u143a\5\17\b\2\u143a\u143b\5\31\r\2\u143b" + + "\u143c\5#\22\2\u143c\u143d\5\25\13\2\u143d\u0364\3\2\2\2\u143e\u143f\5" + + "%\23\2\u143f\u1440\5\65\33\2\u1440\u1441\5#\22\2\u1441\u1442\5\21\t\2" + + "\u1442\u1443\5+\26\2\u1443\u0366\3\2\2\2\u1444\u1445\5\'\24\2\u1445\u1446" + + "\5\t\5\2\u1446\u1447\5\17\b\2\u1447\u0368\3\2\2\2\u1448\u1449\5\'\24\2" + + "\u1449\u144a\5\t\5\2\u144a\u144b\5+\26\2\u144b\u144c\5\t\5\2\u144c\u144d" + + "\5!\21\2\u144d\u144e\5\21\t\2\u144e\u144f\5/\30\2\u144f\u1450\5\21\t\2" + + "\u1450\u1451\5+\26\2\u1451\u036a\3\2\2\2\u1452\u1453\5\'\24\2\u1453\u1454" + + "\5\t\5\2\u1454\u1455\5+\26\2\u1455\u1456\5\t\5\2\u1456\u1457\5!\21\2\u1457" + + "\u1458\5\21\t\2\u1458\u1459\5/\30\2\u1459\u145a\5\21\t\2\u145a\u145b\5" + + "+\26\2\u145b\u145c\7a\2\2\u145c\u145d\5!\21\2\u145d\u145e\5%\23\2\u145e" + + "\u145f\5\17\b\2\u145f\u1460\5\21\t\2\u1460\u036c\3\2\2\2\u1461\u1462\5" + + "\'\24\2\u1462\u1463\5\t\5\2\u1463\u1464\5+\26\2\u1464\u1465\5\t\5\2\u1465" + + "\u1466\5!\21\2\u1466\u1467\5\21\t\2\u1467\u1468\5/\30\2\u1468\u1469\5" + + "\21\t\2\u1469\u146a\5+\26\2\u146a\u146b\7a\2\2\u146b\u146c\5#\22\2\u146c" + + "\u146d\5\t\5\2\u146d\u146e\5!\21\2\u146e\u146f\5\21\t\2\u146f\u036e\3" + + "\2\2\2\u1470\u1471\5\'\24\2\u1471\u1472\5\t\5\2\u1472\u1473\5+\26\2\u1473" + + "\u1474\5\t\5\2\u1474\u1475\5!\21\2\u1475\u1476\5\21\t\2\u1476\u1477\5" + + "/\30\2\u1477\u1478\5\21\t\2\u1478\u1479\5+\26\2\u1479\u147a\7a\2\2\u147a" + + "\u147b\5%\23\2\u147b\u147c\5+\26\2\u147c\u147d\5\17\b\2\u147d\u147e\5" + + "\31\r\2\u147e\u147f\5#\22\2\u147f\u1480\5\t\5\2\u1480\u1481\5\37\20\2" + + "\u1481\u1482\7a\2\2\u1482\u1483\5\'\24\2\u1483\u1484\5%\23\2\u1484\u1485" + + "\5-\27\2\u1485\u1486\5\31\r\2\u1486\u1487\5/\30\2\u1487\u1488\5\31\r\2" + + "\u1488\u1489\5%\23\2\u1489\u148a\5#\22\2\u148a\u0370\3\2\2\2\u148b\u148c" + + "\5\'\24\2\u148c\u148d\5\t\5\2\u148d\u148e\5+\26\2\u148e\u148f\5\t\5\2" + + "\u148f\u1490\5!\21\2\u1490\u1491\5\21\t\2\u1491\u1492\5/\30\2\u1492\u1493" + + "\5\21\t\2\u1493\u1494\5+\26\2\u1494\u1495\7a\2\2\u1495\u1496\5-\27\2\u1496" + + "\u1497\5\'\24\2\u1497\u1498\5\21\t\2\u1498\u1499\5\r\7\2\u1499\u149a\5" + + "\31\r\2\u149a\u149b\5\23\n\2\u149b\u149c\5\31\r\2\u149c\u149d\5\r\7\2" + + "\u149d\u149e\7a\2\2\u149e\u149f\5\r\7\2\u149f\u14a0\5\t\5\2\u14a0\u14a1" + + "\5/\30\2\u14a1\u14a2\5\t\5\2\u14a2\u14a3\5\37\20\2\u14a3\u14a4\5%\23\2" + + "\u14a4\u14a5\5\25\13\2\u14a5\u0372\3\2\2\2\u14a6\u14a7\5\'\24\2\u14a7" + + "\u14a8\5\t\5\2\u14a8\u14a9\5+\26\2\u14a9\u14aa\5\t\5\2\u14aa\u14ab\5!" + + "\21\2\u14ab\u14ac\5\21\t\2\u14ac\u14ad\5/\30\2\u14ad\u14ae\5\21\t\2\u14ae" + + "\u14af\5+\26\2\u14af\u14b0\7a\2\2\u14b0\u14b1\5-\27\2\u14b1\u14b2\5\'" + + "\24\2\u14b2\u14b3\5\21\t\2\u14b3\u14b4\5\r\7\2\u14b4\u14b5\5\31\r\2\u14b5" + + "\u14b6\5\23\n\2\u14b6\u14b7\5\31\r\2\u14b7\u14b8\5\r\7\2\u14b8\u14b9\7" + + "a\2\2\u14b9\u14ba\5#\22\2\u14ba\u14bb\5\t\5\2\u14bb\u14bc\5!\21\2\u14bc" + + "\u14bd\5\21\t\2\u14bd\u0374\3\2\2\2\u14be\u14bf\5\'\24\2\u14bf\u14c0\5" + + "\t\5\2\u14c0\u14c1\5+\26\2\u14c1\u14c2\5\t\5\2\u14c2\u14c3\5!\21\2\u14c3" + + "\u14c4\5\21\t\2\u14c4\u14c5\5/\30\2\u14c5\u14c6\5\21\t\2\u14c6\u14c7\5" + + "+\26\2\u14c7\u14c8\7a\2\2\u14c8\u14c9\5-\27\2\u14c9\u14ca\5\'\24\2\u14ca" + + "\u14cb\5\21\t\2\u14cb\u14cc\5\r\7\2\u14cc\u14cd\5\31\r\2\u14cd\u14ce\5" + + "\23\n\2\u14ce\u14cf\5\31\r\2\u14cf\u14d0\5\r\7\2\u14d0\u14d1\7a\2\2\u14d1" + + "\u14d2\5-\27\2\u14d2\u14d3\5\r\7\2\u14d3\u14d4\5\27\f\2\u14d4\u14d5\5" + + "\21\t\2\u14d5\u14d6\5!\21\2\u14d6\u14d7\5\t\5\2\u14d7\u0376\3\2\2\2\u14d8" + + "\u14d9\5\'\24\2\u14d9\u14da\5\t\5\2\u14da\u14db\5+\26\2\u14db\u14dc\5" + + "\t\5\2\u14dc\u14dd\5!\21\2\u14dd\u14de\5\21\t\2\u14de\u14df\5/\30\2\u14df" + + "\u14e0\5\21\t\2\u14e0\u14e1\5+\26\2\u14e1\u14e2\5-\27\2\u14e2\u0378\3" + + "\2\2\2\u14e3\u14e4\5\'\24\2\u14e4\u14e5\5\t\5\2\u14e5\u14e6\5+\26\2\u14e6" + + "\u14e7\5-\27\2\u14e7\u14e8\5\21\t\2\u14e8\u14e9\5+\26\2\u14e9\u037a\3" + + "\2\2\2\u14ea\u14eb\5\'\24\2\u14eb\u14ec\5\t\5\2\u14ec\u14ed\5+\26\2\u14ed" + + "\u14ee\5/\30\2\u14ee\u14ef\5\31\r\2\u14ef\u14f0\5\t\5\2\u14f0\u14f1\5" + + "\37\20\2\u14f1\u037c\3\2\2\2\u14f2\u14f3\5\'\24\2\u14f3\u14f4\5\t\5\2" + + "\u14f4\u14f5\5+\26\2\u14f5\u14f6\5/\30\2\u14f6\u14f7\5\31\r\2\u14f7\u14f8" + + "\5/\30\2\u14f8\u14f9\5\31\r\2\u14f9\u14fa\5%\23\2\u14fa\u14fb\5#\22\2" + + "\u14fb\u037e\3\2\2\2\u14fc\u14fd\5\'\24\2\u14fd\u14fe\5\t\5\2\u14fe\u14ff" + + "\5-\27\2\u14ff\u1500\5\r\7\2\u1500\u1501\5\t\5\2\u1501\u1502\5\37\20\2" + + "\u1502\u0380\3\2\2\2\u1503\u1504\5\'\24\2\u1504\u1505\5\t\5\2\u1505\u1506" + + "\5-\27\2\u1506\u1507\5-\27\2\u1507\u1508\5\65\33\2\u1508\u1509\5%\23\2" + + "\u1509\u150a\5+\26\2\u150a\u150b\5\17\b\2\u150b\u0382\3\2\2\2\u150c\u150d" + + "\5\'\24\2\u150d\u150e\5\t\5\2\u150e\u150f\5/\30\2\u150f\u1510\5\27\f\2" + + "\u1510\u0384\3\2\2\2\u1511\u1512\5\'\24\2\u1512\u1513\5\21\t\2\u1513\u1514" + + "\5+\26\2\u1514\u1515\5\r\7\2\u1515\u1516\5\21\t\2\u1516\u1517\5#\22\2" + + "\u1517\u1518\5/\30\2\u1518\u1519\7a\2\2\u1519\u151a\5+\26\2\u151a\u151b" + + "\5\t\5\2\u151b\u151c\5#\22\2\u151c\u151d\5\35\17\2\u151d\u0386\3\2\2\2" + + "\u151e\u151f\5\'\24\2\u151f\u1520\5\21\t\2\u1520\u1521\5+\26\2\u1521\u1522" + + "\5\r\7\2\u1522\u1523\5\21\t\2\u1523\u1524\5#\22\2\u1524\u1525\5/\30\2" + + "\u1525\u1526\5\31\r\2\u1526\u1527\5\37\20\2\u1527\u1528\5\21\t\2\u1528" + + "\u1529\7a\2\2\u1529\u152a\5\r\7\2\u152a\u152b\5%\23\2\u152b\u152c\5#\22" + + "\2\u152c\u152d\5/\30\2\u152d\u0388\3\2\2\2\u152e\u152f\5\'\24\2\u152f" + + "\u1530\5\21\t\2\u1530\u1531\5+\26\2\u1531\u1532\5\r\7\2\u1532\u1533\5" + + "\21\t\2\u1533\u1534\5#\22\2\u1534\u1535\5/\30\2\u1535\u1536\5\31\r\2\u1536" + + "\u1537\5\37\20\2\u1537\u1538\5\21\t\2\u1538\u1539\7a\2\2\u1539\u153a\5" + + "\17\b\2\u153a\u153b\5\31\r\2\u153b\u153c\5-\27\2\u153c\u153d\5\r\7\2\u153d" + + "\u038a\3\2\2\2\u153e\u153f\5\'\24\2\u153f\u1540\5\37\20\2\u1540\u1541" + + "\5\t\5\2\u1541\u1542\5\r\7\2\u1542\u1543\5\31\r\2\u1543\u1544\5#\22\2" + + "\u1544\u1545\5\25\13\2\u1545\u038c\3\2\2\2\u1546\u1547\5\'\24\2\u1547" + + "\u1548\5\37\20\2\u1548\u1549\5\t\5\2\u1549\u154a\5\31\r\2\u154a\u154b" + + "\5#\22\2\u154b\u038e\3\2\2\2\u154c\u154d\5\'\24\2\u154d\u154e\5\37\20" + + "\2\u154e\u154f\5\t\5\2\u154f\u1550\5#\22\2\u1550\u1551\5-\27\2\u1551\u0390" + + "\3\2\2\2\u1552\u1553\5\'\24\2\u1553\u1554\5\37\20\2\u1554\u1555\5\31\r" + + "\2\u1555\u0392\3\2\2\2\u1556\u1557\5\'\24\2\u1557\u1558\5%\23\2\u1558" + + "\u1559\5-\27\2\u1559\u155a\5\31\r\2\u155a\u155b\5/\30\2\u155b\u155c\5" + + "\31\r\2\u155c\u155d\5%\23\2\u155d\u155e\5#\22\2\u155e\u0394\3\2\2\2\u155f" + + "\u1560\5\'\24\2\u1560\u1561\5%\23\2\u1561\u1562\5-\27\2\u1562\u1563\5" + + "/\30\2\u1563\u1564\5\23\n\2\u1564\u1565\5\31\r\2\u1565\u1566\5\67\34\2" + + "\u1566\u0396\3\2\2\2\u1567\u1568\5\'\24\2\u1568\u1569\5%\23\2\u1569\u156a" + + "\5\65\33\2\u156a\u156b\5\21\t\2\u156b\u156c\5+\26\2\u156c\u0398\3\2\2" + + "\2\u156d\u156e\5\'\24\2\u156e\u156f\5+\26\2\u156f\u1570\5\21\t\2\u1570" + + "\u1571\5\r\7\2\u1571\u1572\5\21\t\2\u1572\u1573\5\17\b\2\u1573\u1574\5" + + "\31\r\2\u1574\u1575\5#\22\2\u1575\u1576\5\25\13\2\u1576\u039a\3\2\2\2" + + "\u1577\u1578\5\'\24\2\u1578\u1579\5+\26\2\u1579\u157a\5\21\t\2\u157a\u157b" + + "\5\r\7\2\u157b\u157c\5\31\r\2\u157c\u157d\5-\27\2\u157d\u157e\5\31\r\2" + + "\u157e\u157f\5%\23\2\u157f\u1580\5#\22\2\u1580\u039c\3\2\2\2\u1581\u1582" + + "\5\'\24\2\u1582\u1583\5+\26\2\u1583\u1584\5\21\t\2\u1584\u1585\5\23\n" + + "\2\u1585\u1586\5\31\r\2\u1586\u1587\5\67\34\2\u1587\u039e\3\2\2\2\u1588" + + "\u1589\5\'\24\2\u1589\u158a\5+\26\2\u158a\u158b\5\21\t\2\u158b\u158c\5" + + "%\23\2\u158c\u158d\5+\26\2\u158d\u158e\5\17\b\2\u158e\u158f\5\21\t\2\u158f" + + "\u1590\5+\26\2\u1590\u03a0\3\2\2\2\u1591\u1592\5\'\24\2\u1592\u1593\5" + + "+\26\2\u1593\u1594\5\21\t\2\u1594\u1595\5\'\24\2\u1595\u1596\5\t\5\2\u1596" + + "\u1597\5+\26\2\u1597\u1598\5\21\t\2\u1598\u03a2\3\2\2\2\u1599\u159a\5" + + "\'\24\2\u159a\u159b\5+\26\2\u159b\u159c\5\21\t\2\u159c\u159d\5\'\24\2" + + "\u159d\u159e\5\t\5\2\u159e\u159f\5+\26\2\u159f\u15a0\5\21\t\2\u15a0\u15a1" + + "\5\17\b\2\u15a1\u03a4\3\2\2\2\u15a2\u15a3\5\'\24\2\u15a3\u15a4\5+\26\2" + + "\u15a4\u15a5\5\21\t\2\u15a5\u15a6\5-\27\2\u15a6\u15a7\5\21\t\2\u15a7\u15a8" + + "\5+\26\2\u15a8\u15a9\5\63\32\2\u15a9\u15aa\5\21\t\2\u15aa\u03a6\3\2\2" + + "\2\u15ab\u15ac\5\'\24\2\u15ac\u15ad\5+\26\2\u15ad\u15ae\5\31\r\2\u15ae" + + "\u15af\5!\21\2\u15af\u15b0\5\t\5\2\u15b0\u15b1\5+\26\2\u15b1\u15b2\59" + + "\35\2\u15b2\u03a8\3\2\2\2\u15b3\u15b4\5\'\24\2\u15b4\u15b5\5+\26\2\u15b5" + + "\u15b6\5\31\r\2\u15b6\u15b7\5%\23\2\u15b7\u15b8\5+\26\2\u15b8\u03aa\3" + + "\2\2\2\u15b9\u15ba\5\'\24\2\u15ba\u15bb\5+\26\2\u15bb\u15bc\5\31\r\2\u15bc" + + "\u15bd\5\63\32\2\u15bd\u15be\5\31\r\2\u15be\u15bf\5\37\20\2\u15bf\u15c0" + + "\5\21\t\2\u15c0\u15c1\5\25\13\2\u15c1\u15c2\5\21\t\2\u15c2\u15c3\5-\27" + + "\2\u15c3\u03ac\3\2\2\2\u15c4\u15c5\5\'\24\2\u15c5\u15c6\5+\26\2\u15c6" + + "\u15c7\5%\23\2\u15c7\u15c8\5\r\7\2\u15c8\u15c9\5\21\t\2\u15c9\u15ca\5" + + "\17\b\2\u15ca\u15cb\5\61\31\2\u15cb\u15cc\5+\26\2\u15cc\u15cd\5\t\5\2" + + "\u15cd\u15ce\5\37\20\2\u15ce\u03ae\3\2\2\2\u15cf\u15d0\5\'\24\2\u15d0" + + "\u15d1\5+\26\2\u15d1\u15d2\5%\23\2\u15d2\u15d3\5\r\7\2\u15d3\u15d4\5\21" + + "\t\2\u15d4\u15d5\5\17\b\2\u15d5\u15d6\5\61\31\2\u15d6\u15d7\5+\26\2\u15d7" + + "\u15d8\5\21\t\2\u15d8\u03b0\3\2\2\2\u15d9\u15da\5\'\24\2\u15da\u15db\5" + + "\61\31\2\u15db\u15dc\5\13\6\2\u15dc\u15dd\5\37\20\2\u15dd\u15de\5\31\r" + + "\2\u15de\u15df\5\r\7\2\u15df\u03b2\3\2\2\2\u15e0\u15e1\5\'\24\2\u15e1" + + "\u15e2\5\61\31\2\u15e2\u15e3\5\13\6\2\u15e3\u15e4\5\37\20\2\u15e4\u15e5" + + "\5\31\r\2\u15e5\u15e6\5\r\7\2\u15e6\u15e7\5\t\5\2\u15e7\u15e8\5/\30\2" + + "\u15e8\u15e9\5\31\r\2\u15e9\u15ea\5%\23\2\u15ea\u15eb\5#\22\2\u15eb\u03b4" + + "\3\2\2\2\u15ec\u15ed\5)\25\2\u15ed\u15ee\5\61\31\2\u15ee\u15ef\5%\23\2" + + "\u15ef\u15f0\5/\30\2\u15f0\u15f1\5\21\t\2\u15f1\u03b6\3\2\2\2\u15f2\u15f3" + + "\5+\26\2\u15f3\u15f4\5\t\5\2\u15f4\u15f5\5#\22\2\u15f5\u15f6\5\25\13\2" + + "\u15f6\u15f7\5\21\t\2\u15f7\u03b8\3\2\2\2\u15f8\u15f9\5+\26\2\u15f9\u15fa" + + "\5\t\5\2\u15fa\u15fb\5#\22\2\u15fb\u15fc\5\35\17\2\u15fc\u03ba\3\2\2\2" + + "\u15fd\u15fe\5+\26\2\u15fe\u15ff\5\21\t\2\u15ff\u1600\5\t\5\2\u1600\u1601" + + "\5\17\b\2\u1601\u03bc\3\2\2\2\u1602\u1603\5+\26\2\u1603\u1604\5\21\t\2" + + "\u1604\u1605\5\t\5\2\u1605\u1606\5\17\b\2\u1606\u1607\5-\27\2\u1607\u03be" + + "\3\2\2\2\u1608\u1609\5+\26\2\u1609\u160a\5\21\t\2\u160a\u160b\5\t\5\2" + + "\u160b\u160c\5\37\20\2\u160c\u03c0\3\2\2\2\u160d\u160e\5+\26\2\u160e\u160f" + + "\5\21\t\2\u160f\u1610\5\t\5\2\u1610\u1611\5-\27\2\u1611\u1612\5-\27\2" + + "\u1612\u1613\5\31\r\2\u1613\u1614\5\25\13\2\u1614\u1615\5#\22\2\u1615" + + "\u03c2\3\2\2\2\u1616\u1617\5+\26\2\u1617\u1618\5\21\t\2\u1618\u1619\5" + + "\r\7\2\u1619\u161a\5\27\f\2\u161a\u161b\5\21\t\2\u161b\u161c\5\r\7\2\u161c" + + "\u161d\5\35\17\2\u161d\u03c4\3\2\2\2\u161e\u161f\5+\26\2\u161f\u1620\5" + + "\21\t\2\u1620\u1621\5\r\7\2\u1621\u1622\5\61\31\2\u1622\u1623\5+\26\2" + + "\u1623\u1624\5-\27\2\u1624\u1625\5\31\r\2\u1625\u1626\5\63\32\2\u1626" + + "\u1627\5\21\t\2\u1627\u03c6\3\2\2\2\u1628\u1629\5+\26\2\u1629\u162a\5" + + "\21\t\2\u162a\u162b\5\23\n\2\u162b\u03c8\3\2\2\2\u162c\u162d\5+\26\2\u162d" + + "\u162e\5\21\t\2\u162e\u162f\5\23\n\2\u162f\u1630\5\21\t\2\u1630\u1631" + + "\5+\26\2\u1631\u1632\5\21\t\2\u1632\u1633\5#\22\2\u1633\u1634\5\r\7\2" + + "\u1634\u1635\5\21\t\2\u1635\u1636\5-\27\2\u1636\u03ca\3\2\2\2\u1637\u1638" + + "\5+\26\2\u1638\u1639\5\21\t\2\u1639\u163a\5\23\n\2\u163a\u163b\5\21\t" + + "\2\u163b\u163c\5+\26\2\u163c\u163d\5\21\t\2\u163d\u163e\5#\22\2\u163e" + + "\u163f\5\r\7\2\u163f\u1640\5\31\r\2\u1640\u1641\5#\22\2\u1641\u1642\5" + + "\25\13\2\u1642\u03cc\3\2\2\2\u1643\u1644\5+\26\2\u1644\u1645\5\21\t\2" + + "\u1645\u1646\5\23\n\2\u1646\u1647\5+\26\2\u1647\u1648\5\21\t\2\u1648\u1649" + + "\5-\27\2\u1649\u164a\5\27\f\2\u164a\u03ce\3\2\2\2\u164b\u164c\5+\26\2" + + "\u164c\u164d\5\21\t\2\u164d\u164e\5\25\13\2\u164e\u164f\5+\26\2\u164f" + + "\u1650\7a\2\2\u1650\u1651\5\t\5\2\u1651\u1652\5\63\32\2\u1652\u1653\5" + + "\25\13\2\u1653\u1654\5\67\34\2\u1654\u03d0\3\2\2\2\u1655\u1656\5+\26\2" + + "\u1656\u1657\5\21\t\2\u1657\u1658\5\25\13\2\u1658\u1659\5+\26\2\u1659" + + "\u165a\7a\2\2\u165a\u165b\5\t\5\2\u165b\u165c\5\63\32\2\u165c\u165d\5" + + "\25\13\2\u165d\u165e\59\35\2\u165e\u03d2\3\2\2\2\u165f\u1660\5+\26\2\u1660" + + "\u1661\5\21\t\2\u1661\u1662\5\25\13\2\u1662\u1663\5+\26\2\u1663\u1664" + + "\7a\2\2\u1664\u1665\5\r\7\2\u1665\u1666\5%\23\2\u1666\u1667\5\61\31\2" + + "\u1667\u1668\5#\22\2\u1668\u1669\5/\30\2\u1669\u03d4\3\2\2\2\u166a\u166b" + + "\5+\26\2\u166b\u166c\5\21\t\2\u166c\u166d\5\25\13\2\u166d\u166e\5+\26" + + "\2\u166e\u166f\7a\2\2\u166f\u1670\5\31\r\2\u1670\u1671\5#\22\2\u1671\u1672" + + "\5/\30\2\u1672\u1673\5\21\t\2\u1673\u1674\5+\26\2\u1674\u1675\5\r\7\2" + + "\u1675\u1676\5\21\t\2\u1676\u1677\5\'\24\2\u1677\u1678\5/\30\2\u1678\u03d6" + + "\3\2\2\2\u1679\u167a\5+\26\2\u167a\u167b\5\21\t\2\u167b\u167c\5\25\13" + + "\2\u167c\u167d\5+\26\2\u167d\u167e\7a\2\2\u167e\u167f\5+\26\2\u167f\u1680" + + "\7\64\2\2\u1680\u03d8\3\2\2\2\u1681\u1682\5+\26\2\u1682\u1683\5\21\t\2" + + "\u1683\u1684\5\25\13\2\u1684\u1685\5+\26\2\u1685\u1686\7a\2\2\u1686\u1687" + + "\5-\27\2\u1687\u1688\5\37\20\2\u1688\u1689\5%\23\2\u1689\u168a\5\'\24" + + "\2\u168a\u168b\5\21\t\2\u168b\u03da\3\2\2\2\u168c\u168d\5+\26\2\u168d" + + "\u168e\5\21\t\2\u168e\u168f\5\25\13\2\u168f\u1690\5+\26\2\u1690\u1691" + + "\7a\2\2\u1691\u1692\5-\27\2\u1692\u1693\5\67\34\2\u1693\u1694\5\67\34" + + "\2\u1694\u03dc\3\2\2\2\u1695\u1696\5+\26\2\u1696\u1697\5\21\t\2\u1697" + + "\u1698\5\25\13\2\u1698\u1699\5+\26\2\u1699\u169a\7a\2\2\u169a\u169b\5" + + "-\27\2\u169b\u169c\5\67\34\2\u169c\u169d\59\35\2\u169d\u03de\3\2\2\2\u169e" + + "\u169f\5+\26\2\u169f\u16a0\5\21\t\2\u16a0\u16a1\5\25\13\2\u16a1\u16a2" + + "\5+\26\2\u16a2\u16a3\7a\2\2\u16a3\u16a4\5-\27\2\u16a4\u16a5\59\35\2\u16a5" + + "\u16a6\59\35\2\u16a6\u03e0\3\2\2\2\u16a7\u16a8\5+\26\2\u16a8\u16a9\5\21" + + "\t\2\u16a9\u16aa\5\31\r\2\u16aa\u16ab\5#\22\2\u16ab\u16ac\5\17\b\2\u16ac" + + "\u16ad\5\21\t\2\u16ad\u16ae\5\67\34\2\u16ae\u03e2\3\2\2\2\u16af\u16b0" + + "\5+\26\2\u16b0\u16b1\5\21\t\2\u16b1\u16b2\5\37\20\2\u16b2\u16b3\5\t\5" + + "\2\u16b3\u16b4\5/\30\2\u16b4\u16b5\5\31\r\2\u16b5\u16b6\5\63\32\2\u16b6" + + "\u16b7\5\21\t\2\u16b7\u03e4\3\2\2\2\u16b8\u16b9\5+\26\2\u16b9\u16ba\5" + + "\21\t\2\u16ba\u16bb\5\37\20\2\u16bb\u16bc\5\21\t\2\u16bc\u16bd\5\t\5\2" + + "\u16bd\u16be\5-\27\2\u16be\u16bf\5\21\t\2\u16bf\u03e6\3\2\2\2\u16c0\u16c1" + + "\5+\26\2\u16c1\u16c2\5\21\t\2\u16c2\u16c3\5#\22\2\u16c3\u16c4\5\t\5\2" + + "\u16c4\u16c5\5!\21\2\u16c5\u16c6\5\21\t\2\u16c6\u03e8\3\2\2\2\u16c7\u16c8" + + "\5+\26\2\u16c8\u16c9\5\21\t\2\u16c9\u16ca\5\'\24\2\u16ca\u16cb\5\21\t" + + "\2\u16cb\u16cc\5\t\5\2\u16cc\u16cd\5/\30\2\u16cd\u16ce\5\t\5\2\u16ce\u16cf" + + "\5\13\6\2\u16cf\u16d0\5\37\20\2\u16d0\u16d1\5\21\t\2\u16d1\u03ea\3\2\2" + + "\2\u16d2\u16d3\5+\26\2\u16d3\u16d4\5\21\t\2\u16d4\u16d5\5\'\24\2\u16d5" + + "\u16d6\5\37\20\2\u16d6\u16d7\5\t\5\2\u16d7\u16d8\5\r\7\2\u16d8\u16d9\5" + + "\21\t\2\u16d9\u03ec\3\2\2\2\u16da\u16db\5+\26\2\u16db\u16dc\5\21\t\2\u16dc" + + "\u16dd\5\'\24\2\u16dd\u16de\5\37\20\2\u16de\u16df\5\31\r\2\u16df\u16e0" + + "\5\r\7\2\u16e0\u16e1\5\t\5\2\u16e1\u03ee\3\2\2\2\u16e2\u16e3\5+\26\2\u16e3" + + "\u16e4\5\21\t\2\u16e4\u16e5\5-\27\2\u16e5\u16e6\5\21\t\2\u16e6\u16e7\5" + + "/\30\2\u16e7\u03f0\3\2\2\2\u16e8\u16e9\5+\26\2\u16e9\u16ea\5\21\t\2\u16ea" + + "\u16eb\5-\27\2\u16eb\u16ec\5/\30\2\u16ec\u16ed\5\t\5\2\u16ed\u16ee\5+" + + "\26\2\u16ee\u16ef\5/\30\2\u16ef\u03f2\3\2\2\2\u16f0\u16f1\5+\26\2\u16f1" + + "\u16f2\5\21\t\2\u16f2\u16f3\5-\27\2\u16f3\u16f4\5/\30\2\u16f4\u16f5\5" + + "+\26\2\u16f5\u16f6\5\31\r\2\u16f6\u16f7\5\r\7\2\u16f7\u16f8\5/\30\2\u16f8" + + "\u03f4\3\2\2\2\u16f9\u16fa\5+\26\2\u16fa\u16fb\5\21\t\2\u16fb\u16fc\5" + + "-\27\2\u16fc\u16fd\5\61\31\2\u16fd\u16fe\5\37\20\2\u16fe\u16ff\5/\30\2" + + "\u16ff\u03f6\3\2\2\2\u1700\u1701\5+\26\2\u1701\u1702\5\21\t\2\u1702\u1703" + + "\5/\30\2\u1703\u1704\5\61\31\2\u1704\u1705\5+\26\2\u1705\u1706\5#\22\2" + + "\u1706\u03f8\3\2\2\2\u1707\u1708\5+\26\2\u1708\u1709\5\21\t\2\u1709\u170a" + + "\5/\30\2\u170a\u170b\5\61\31\2\u170b\u170c\5+\26\2\u170c\u170d\5#\22\2" + + "\u170d\u170e\5\21\t\2\u170e\u170f\5\17\b\2\u170f\u1710\7a\2\2\u1710\u1711" + + "\5\r\7\2\u1711\u1712\5\t\5\2\u1712\u1713\5+\26\2\u1713\u1714\5\17\b\2" + + "\u1714\u1715\5\31\r\2\u1715\u1716\5#\22\2\u1716\u1717\5\t\5\2\u1717\u1718" + + "\5\37\20\2\u1718\u1719\5\31\r\2\u1719\u171a\5/\30\2\u171a\u171b\59\35" + + "\2\u171b\u03fa\3\2\2\2\u171c\u171d\5+\26\2\u171d\u171e\5\21\t\2\u171e" + + "\u171f\5/\30\2\u171f\u1720\5\61\31\2\u1720\u1721\5+\26\2\u1721\u1722\5" + + "#\22\2\u1722\u1723\5\21\t\2\u1723\u1724\5\17\b\2\u1724\u1725\7a\2\2\u1725" + + "\u1726\5\37\20\2\u1726\u1727\5\21\t\2\u1727\u1728\5#\22\2\u1728\u1729" + + "\5\25\13\2\u1729\u172a\5/\30\2\u172a\u172b\5\27\f\2\u172b\u03fc\3\2\2" + + "\2\u172c\u172d\5+\26\2\u172d\u172e\5\21\t\2\u172e\u172f\5/\30\2\u172f" + + "\u1730\5\61\31\2\u1730\u1731\5+\26\2\u1731\u1732\5#\22\2\u1732\u1733\5" + + "\21\t\2\u1733\u1734\5\17\b\2\u1734\u1735\7a\2\2\u1735\u1736\5%\23\2\u1736" + + "\u1737\5\r\7\2\u1737\u1738\5/\30\2\u1738\u1739\5\21\t\2\u1739\u173a\5" + + "/\30\2\u173a\u173b\7a\2\2\u173b\u173c\5\37\20\2\u173c\u173d\5\21\t\2\u173d" + + "\u173e\5#\22\2\u173e\u173f\5\25\13\2\u173f\u1740\5/\30\2\u1740\u1741\5" + + "\27\f\2\u1741\u03fe\3\2\2\2\u1742\u1743\5+\26\2\u1743\u1744\5\21\t\2\u1744" + + "\u1745\5/\30\2\u1745\u1746\5\61\31\2\u1746\u1747\5+\26\2\u1747\u1748\5" + + "#\22\2\u1748\u1749\5\21\t\2\u1749\u174a\5\17\b\2\u174a\u174b\7a\2\2\u174b" + + "\u174c\5-\27\2\u174c\u174d\5)\25\2\u174d\u174e\5\37\20\2\u174e\u174f\5" + + "-\27\2\u174f\u1750\5/\30\2\u1750\u1751\5\t\5\2\u1751\u1752\5/\30\2\u1752" + + "\u1753\5\21\t\2\u1753\u0400\3\2\2\2\u1754\u1755\5+\26\2\u1755\u1756\5" + + "\21\t\2\u1756\u1757\5/\30\2\u1757\u1758\5\61\31\2\u1758\u1759\5+\26\2" + + "\u1759\u175a\5#\22\2\u175a\u175b\5\31\r\2\u175b\u175c\5#\22\2\u175c\u175d" + + "\5\25\13\2\u175d\u0402\3\2\2\2\u175e\u175f\5+\26\2\u175f\u1760\5\21\t" + + "\2\u1760\u1761\5/\30\2\u1761\u1762\5\61\31\2\u1762\u1763\5+\26\2\u1763" + + "\u1764\5#\22\2\u1764\u1765\5-\27\2\u1765\u0404\3\2\2\2\u1766\u1767\5+" + + "\26\2\u1767\u1768\5\21\t\2\u1768\u1769\5\63\32\2\u1769\u176a\5%\23\2\u176a" + + "\u176b\5\35\17\2\u176b\u176c\5\21\t\2\u176c\u0406\3\2\2\2\u176d\u176e" + + "\5+\26\2\u176e\u176f\5\31\r\2\u176f\u1770\5\25\13\2\u1770\u1771\5\27\f" + + "\2\u1771\u1772\5/\30\2\u1772\u0408\3\2\2\2\u1773\u1774\5+\26\2\u1774\u1775" + + "\5%\23\2\u1775\u1776\5\37\20\2\u1776\u1777\5\21\t\2\u1777\u040a\3\2\2" + + "\2\u1778\u1779\5+\26\2\u1779\u177a\5%\23\2\u177a\u177b\5\37\20\2\u177b" + + "\u177c\5\37\20\2\u177c\u177d\5\13\6\2\u177d\u177e\5\t\5\2\u177e\u177f" + + "\5\r\7\2\u177f\u1780\5\35\17\2\u1780\u040c\3\2\2\2\u1781\u1782\5+\26\2" + + "\u1782\u1783\5%\23\2\u1783\u1784\5\37\20\2\u1784\u1785\5\37\20\2\u1785" + + "\u1786\5\61\31\2\u1786\u1787\5\'\24\2\u1787\u040e\3\2\2\2\u1788\u1789" + + "\5+\26\2\u1789\u178a\5%\23\2\u178a\u178b\5\61\31\2\u178b\u178c\5/\30\2" + + "\u178c\u178d\5\31\r\2\u178d\u178e\5#\22\2\u178e\u178f\5\21\t\2\u178f\u0410" + + "\3\2\2\2\u1790\u1791\5+\26\2\u1791\u1792\5%\23\2\u1792\u1793\5\61\31\2" + + "\u1793\u1794\5/\30\2\u1794\u1795\5\31\r\2\u1795\u1796\5#\22\2\u1796\u1797" + + "\5\21\t\2\u1797\u1798\7a\2\2\u1798\u1799\5\r\7\2\u1799\u179a\5\t\5\2\u179a" + + "\u179b\5/\30\2\u179b\u179c\5\t\5\2\u179c\u179d\5\37\20\2\u179d\u179e\5" + + "%\23\2\u179e\u179f\5\25\13\2\u179f\u0412\3\2\2\2\u17a0\u17a1\5+\26\2\u17a1" + + "\u17a2\5%\23\2\u17a2\u17a3\5\61\31\2\u17a3\u17a4\5/\30\2\u17a4\u17a5\5" + + "\31\r\2\u17a5\u17a6\5#\22\2\u17a6\u17a7\5\21\t\2\u17a7\u17a8\7a\2\2\u17a8" + + "\u17a9\5#\22\2\u17a9\u17aa\5\t\5\2\u17aa\u17ab\5!\21\2\u17ab\u17ac\5\21" + + "\t\2\u17ac\u0414\3\2\2\2\u17ad\u17ae\5+\26\2\u17ae\u17af\5%\23\2\u17af" + + "\u17b0\5\61\31\2\u17b0\u17b1\5/\30\2\u17b1\u17b2\5\31\r\2\u17b2\u17b3" + + "\5#\22\2\u17b3\u17b4\5\21\t\2\u17b4\u17b5\7a\2\2\u17b5\u17b6\5-\27\2\u17b6" + + "\u17b7\5\r\7\2\u17b7\u17b8\5\27\f\2\u17b8\u17b9\5\21\t\2\u17b9\u17ba\5" + + "!\21\2\u17ba\u17bb\5\t\5\2\u17bb\u0416\3\2\2\2\u17bc\u17bd\5+\26\2\u17bd" + + "\u17be\5%\23\2\u17be\u17bf\5\65\33\2\u17bf\u0418\3\2\2\2\u17c0\u17c1\5" + + "+\26\2\u17c1\u17c2\5%\23\2\u17c2\u17c3\5\65\33\2\u17c3\u17c4\7a\2\2\u17c4" + + "\u17c5\5\r\7\2\u17c5\u17c6\5%\23\2\u17c6\u17c7\5\61\31\2\u17c7\u17c8\5" + + "#\22\2\u17c8\u17c9\5/\30\2\u17c9\u041a\3\2\2\2\u17ca\u17cb\5+\26\2\u17cb" + + "\u17cc\5%\23\2\u17cc\u17cd\5\65\33\2\u17cd\u17ce\7a\2\2\u17ce\u17cf\5" + + "#\22\2\u17cf\u17d0\5\61\31\2\u17d0\u17d1\5!\21\2\u17d1\u17d2\5\13\6\2" + + "\u17d2\u17d3\5\21\t\2\u17d3\u17d4\5+\26\2\u17d4\u041c\3\2\2\2\u17d5\u17d6" + + "\5+\26\2\u17d6\u17d7\5%\23\2\u17d7\u17d8\5\65\33\2\u17d8\u17d9\5-\27\2" + + "\u17d9\u041e\3\2\2\2\u17da\u17db\5+\26\2\u17db\u17dc\5\61\31\2\u17dc\u17dd" + + "\5\37\20\2\u17dd\u17de\5\21\t\2\u17de\u0420\3\2\2\2\u17df\u17e0\5-\27" + + "\2\u17e0\u17e1\5\t\5\2\u17e1\u17e2\5\63\32\2\u17e2\u17e3\5\21\t\2\u17e3" + + "\u17e4\5\'\24\2\u17e4\u17e5\5%\23\2\u17e5\u17e6\5\31\r\2\u17e6\u17e7\5" + + "#\22\2\u17e7\u17e8\5/\30\2\u17e8\u0422\3\2\2\2\u17e9\u17ea\5-\27\2\u17ea" + + "\u17eb\5\r\7\2\u17eb\u17ec\5\t\5\2\u17ec\u17ed\5\37\20\2\u17ed\u17ee\5" + + "\21\t\2\u17ee\u0424\3\2\2\2\u17ef\u17f0\5-\27\2\u17f0\u17f1\5\r\7\2\u17f1" + + "\u17f2\5\27\f\2\u17f2\u17f3\5\21\t\2\u17f3\u17f4\5!\21\2\u17f4\u17f5\5" + + "\t\5\2\u17f5\u0426\3\2\2\2\u17f6\u17f7\5-\27\2\u17f7\u17f8\5\r\7\2\u17f8" + + "\u17f9\5\27\f\2\u17f9\u17fa\5\21\t\2\u17fa\u17fb\5!\21\2\u17fb\u17fc\5" + + "\t\5\2\u17fc\u17fd\7a\2\2\u17fd\u17fe\5#\22\2\u17fe\u17ff\5\t\5\2\u17ff" + + "\u1800\5!\21\2\u1800\u1801\5\21\t\2\u1801\u0428\3\2\2\2\u1802\u1803\5" + + "-\27\2\u1803\u1804\5\r\7\2\u1804\u1805\5%\23\2\u1805\u1806\5\'\24\2\u1806" + + "\u1807\5\21\t\2\u1807\u042a\3\2\2\2\u1808\u1809\5-\27\2\u1809\u180a\5" + + "\r\7\2\u180a\u180b\5%\23\2\u180b\u180c\5\'\24\2\u180c\u180d\5\21\t\2\u180d" + + "\u180e\7a\2\2\u180e\u180f\5\r\7\2\u180f\u1810\5\t\5\2\u1810\u1811\5/\30" + + "\2\u1811\u1812\5\t\5\2\u1812\u1813\5\37\20\2\u1813\u1814\5%\23\2\u1814" + + "\u1815\5\25\13\2\u1815\u042c\3\2\2\2\u1816\u1817\5-\27\2\u1817\u1818\5" + + "\r\7\2\u1818\u1819\5%\23\2\u1819\u181a\5\'\24\2\u181a\u181b\5\21\t\2\u181b" + + "\u181c\7a\2\2\u181c\u181d\5#\22\2\u181d\u181e\5\t\5\2\u181e\u181f\5!\21" + + "\2\u181f\u1820\5\21\t\2\u1820\u042e\3\2\2\2\u1821\u1822\5-\27\2\u1822" + + "\u1823\5\r\7\2\u1823\u1824\5%\23\2\u1824\u1825\5\'\24\2\u1825\u1826\5" + + "\21\t\2\u1826\u1827\7a\2\2\u1827\u1828\5-\27\2\u1828\u1829\5\r\7\2\u1829" + + "\u182a\5\27\f\2\u182a\u182b\5\21\t\2\u182b\u182c\5!\21\2\u182c\u182d\5" + + "\t\5\2\u182d\u0430\3\2\2\2\u182e\u182f\5-\27\2\u182f\u1830\5\r\7\2\u1830" + + "\u1831\5+\26\2\u1831\u1832\5%\23\2\u1832\u1833\5\37\20\2\u1833\u1834\5" + + "\37\20\2\u1834\u0432\3\2\2\2\u1835\u1836\5-\27\2\u1836\u1837\5\21\t\2" + + "\u1837\u1838\5\t\5\2\u1838\u1839\5+\26\2\u1839\u183a\5\r\7\2\u183a\u183b" + + "\5\27\f\2\u183b\u0434\3\2\2\2\u183c\u183d\5-\27\2\u183d\u183e\5\21\t\2" + + "\u183e\u183f\5\r\7\2\u183f\u1840\5%\23\2\u1840\u1841\5#\22\2\u1841\u1842" + + "\5\17\b\2\u1842\u0436\3\2\2\2\u1843\u1844\5-\27\2\u1844\u1845\5\21\t\2" + + "\u1845\u1846\5\r\7\2\u1846\u1847\5/\30\2\u1847\u1848\5\31\r\2\u1848\u1849" + + "\5%\23\2\u1849\u184a\5#\22\2\u184a\u0438\3\2\2\2\u184b\u184c\5-\27\2\u184c" + + "\u184d\5\21\t\2\u184d\u184e\5\r\7\2\u184e\u184f\5\61\31\2\u184f\u1850" + + "\5+\26\2\u1850\u1851\5\31\r\2\u1851\u1852\5/\30\2\u1852\u1853\59\35\2" + + "\u1853\u043a\3\2\2\2\u1854\u1855\5-\27\2\u1855\u1856\5\21\t\2\u1856\u1857" + + "\5\37\20\2\u1857\u1858\5\21\t\2\u1858\u1859\5\r\7\2\u1859\u185a\5/\30" + + "\2\u185a\u043c\3\2\2\2\u185b\u185c\5-\27\2\u185c\u185d\5\21\t\2\u185d" + + "\u185e\5\37\20\2\u185e\u185f\5\23\n\2\u185f\u043e\3\2\2\2\u1860\u1861" + + "\5-\27\2\u1861\u1862\5\21\t\2\u1862\u1863\5#\22\2\u1863\u1864\5-\27\2" + + "\u1864\u1865\5\31\r\2\u1865\u1866\5/\30\2\u1866\u1867\5\31\r\2\u1867\u1868" + + "\5\63\32\2\u1868\u1869\5\21\t\2\u1869\u0440\3\2\2\2\u186a\u186b\5-\27" + + "\2\u186b\u186c\5\21\t\2\u186c\u186d\5)\25\2\u186d\u186e\5\61\31\2\u186e" + + "\u186f\5\21\t\2\u186f\u1870\5#\22\2\u1870\u1871\5\r\7\2\u1871\u1872\5" + + "\21\t\2\u1872\u0442\3\2\2\2\u1873\u1874\5-\27\2\u1874\u1875\5\21\t\2\u1875" + + "\u1876\5)\25\2\u1876\u1877\5\61\31\2\u1877\u1878\5\21\t\2\u1878\u1879" + + "\5#\22\2\u1879\u187a\5\r\7\2\u187a\u187b\5\21\t\2\u187b\u187c\5-\27\2" + + "\u187c\u0444\3\2\2\2\u187d\u187e\5-\27\2\u187e\u187f\5\21\t\2\u187f\u1880" + + "\5+\26\2\u1880\u1881\5\31\r\2\u1881\u1882\5\t\5\2\u1882\u1883\5\37\20" + + "\2\u1883\u1884\5\31\r\2\u1884\u1885\5;\36\2\u1885\u1886\5\t\5\2\u1886" + + "\u1887\5\13\6\2\u1887\u1888\5\37\20\2\u1888\u1889\5\21\t\2\u1889\u0446" + + "\3\2\2\2\u188a\u188b\5-\27\2\u188b\u188c\5\21\t\2\u188c\u188d\5+\26\2" + + "\u188d\u188e\5\63\32\2\u188e\u188f\5\21\t\2\u188f\u1890\5+\26\2\u1890" + + "\u1891\7a\2\2\u1891\u1892\5#\22\2\u1892\u1893\5\t\5\2\u1893\u1894\5!\21" + + "\2\u1894\u1895\5\21\t\2\u1895\u0448\3\2\2\2\u1896\u1897\5-\27\2\u1897" + + "\u1898\5\21\t\2\u1898\u1899\5-\27\2\u1899\u189a\5-\27\2\u189a\u189b\5" + + "\31\r\2\u189b\u189c\5%\23\2\u189c\u189d\5#\22\2\u189d\u044a\3\2\2\2\u189e" + + "\u189f\5-\27\2\u189f\u18a0\5\21\t\2\u18a0\u18a1\5-\27\2\u18a1\u18a2\5" + + "-\27\2\u18a2\u18a3\5\31\r\2\u18a3\u18a4\5%\23\2\u18a4\u18a5\5#\22\2\u18a5" + + "\u18a6\7a\2\2\u18a6\u18a7\5\61\31\2\u18a7\u18a8\5-\27\2\u18a8\u18a9\5" + + "\21\t\2\u18a9\u18aa\5+\26\2\u18aa\u044c\3\2\2\2\u18ab\u18ac\5-\27\2\u18ac" + + "\u18ad\5\21\t\2\u18ad\u18ae\5/\30\2\u18ae\u044e\3\2\2\2\u18af\u18b0\5" + + "-\27\2\u18b0\u18b1\5\21\t\2\u18b1\u18b2\5/\30\2\u18b2\u18b3\5%\23\2\u18b3" + + "\u18b4\5\23\n\2\u18b4\u0450\3\2\2\2\u18b5\u18b6\5-\27\2\u18b6\u18b7\5" + + "\21\t\2\u18b7\u18b8\5/\30\2\u18b8\u18b9\5-\27\2\u18b9\u0452\3\2\2\2\u18ba" + + "\u18bb\5-\27\2\u18bb\u18bc\5\27\f\2\u18bc\u18bd\5\t\5\2\u18bd\u18be\5" + + "+\26\2\u18be\u18bf\5\21\t\2\u18bf\u0454\3\2\2\2\u18c0\u18c1\5-\27\2\u18c1" + + "\u18c2\5\27\f\2\u18c2\u18c3\5%\23\2\u18c3\u18c4\5\65\33\2\u18c4\u0456" + + "\3\2\2\2\u18c5\u18c6\5-\27\2\u18c6\u18c7\5\31\r\2\u18c7\u18c8\5!\21\2" + + "\u18c8\u18c9\5\31\r\2\u18c9\u18ca\5\37\20\2\u18ca\u18cb\5\t\5\2\u18cb" + + "\u18cc\5+\26\2\u18cc\u0458\3\2\2\2\u18cd\u18ce\5-\27\2\u18ce\u18cf\5\31" + + "\r\2\u18cf\u18d0\5!\21\2\u18d0\u18d1\5\'\24\2\u18d1\u18d2\5\37\20\2\u18d2" + + "\u18d3\5\21\t\2\u18d3\u045a\3\2\2\2\u18d4\u18d5\5-\27\2\u18d5\u18d6\5" + + "\31\r\2\u18d6\u18d7\5;\36\2\u18d7\u18d8\5\21\t\2\u18d8\u045c\3\2\2\2\u18d9" + + "\u18da\5-\27\2\u18da\u18db\5\35\17\2\u18db\u18dc\5\31\r\2\u18dc\u18dd" + + "\5\'\24\2\u18dd\u045e\3\2\2\2\u18de\u18df\5-\27\2\u18df\u18e0\5!\21\2" + + "\u18e0\u18e1\5\t\5\2\u18e1\u18e2\5\37\20\2\u18e2\u18e3\5\37\20\2\u18e3" + + "\u18e4\5\31\r\2\u18e4\u18e5\5#\22\2\u18e5\u18e6\5/\30\2\u18e6\u0460\3" + + "\2\2\2\u18e7\u18e8\5-\27\2\u18e8\u18e9\5#\22\2\u18e9\u18ea\5\t\5\2\u18ea" + + "\u18eb\5\'\24\2\u18eb\u18ec\5-\27\2\u18ec\u18ed\5\27\f\2\u18ed\u18ee\5" + + "%\23\2\u18ee\u18ef\5/\30\2\u18ef\u0462\3\2\2\2\u18f0\u18f1\5-\27\2\u18f1" + + "\u18f2\5%\23\2\u18f2\u18f3\5!\21\2\u18f3\u18f4\5\21\t\2\u18f4\u0464\3" + + "\2\2\2\u18f5\u18f6\5-\27\2\u18f6\u18f7\5%\23\2\u18f7\u18f8\5\61\31\2\u18f8" + + "\u18f9\5+\26\2\u18f9\u18fa\5\r\7\2\u18fa\u18fb\5\21\t\2\u18fb\u0466\3" + + "\2\2\2\u18fc\u18fd\5-\27\2\u18fd\u18fe\5\'\24\2\u18fe\u18ff\5\t\5\2\u18ff" + + "\u1900\5\r\7\2\u1900\u1901\5\21\t\2\u1901\u0468\3\2\2\2\u1902\u1903\5" + + "-\27\2\u1903\u1904\5\'\24\2\u1904\u1905\5\21\t\2\u1905\u1906\5\r\7\2\u1906" + + "\u1907\5\31\r\2\u1907\u1908\5\23\n\2\u1908\u1909\5\31\r\2\u1909\u190a" + + "\5\r\7\2\u190a\u046a\3\2\2\2\u190b\u190c\5-\27\2\u190c\u190d\5\'\24\2" + + "\u190d\u190e\5\21\t\2\u190e\u190f\5\r\7\2\u190f\u1910\5\31\r\2\u1910\u1911" + + "\5\23\n\2\u1911\u1912\5\31\r\2\u1912\u1913\5\r\7\2\u1913\u1914\7a\2\2" + + "\u1914\u1915\5#\22\2\u1915\u1916\5\t\5\2\u1916\u1917\5!\21\2\u1917\u1918" + + "\5\21\t\2\u1918\u046c\3\2\2\2\u1919\u191a\5-\27\2\u191a\u191b\5\'\24\2" + + "\u191b\u191c\5\21\t\2\u191c\u191d\5\r\7\2\u191d\u191e\5\31\r\2\u191e\u191f" + + "\5\23\n\2\u191f\u1920\5\31\r\2\u1920\u1921\5\r\7\2\u1921\u1922\5/\30\2" + + "\u1922\u1923\59\35\2\u1923\u1924\5\'\24\2\u1924\u1925\5\21\t\2\u1925\u046e" + + "\3\2\2\2\u1926\u1927\5-\27\2\u1927\u1928\5)\25\2\u1928\u1929\5\37\20\2" + + "\u1929\u0470\3\2\2\2\u192a\u192b\5-\27\2\u192b\u192c\5)\25\2\u192c\u192d" + + "\5\37\20\2\u192d\u192e\5\r\7\2\u192e\u192f\5%\23\2\u192f\u1930\5\17\b" + + "\2\u1930\u1931\5\21\t\2\u1931\u0472\3\2\2\2\u1932\u1933\5-\27\2\u1933" + + "\u1934\5)\25\2\u1934\u1935\5\37\20\2\u1935\u1936\5\21\t\2\u1936\u1937" + + "\5+\26\2\u1937\u1938\5+\26\2\u1938\u1939\5%\23\2\u1939\u193a\5+\26\2\u193a" + + "\u0474\3\2\2\2\u193b\u193c\5-\27\2\u193c\u193d\5)\25\2\u193d\u193e\5\37" + + "\20\2\u193e\u193f\5\21\t\2\u193f\u1940\5\67\34\2\u1940\u1941\5\r\7\2\u1941" + + "\u1942\5\21\t\2\u1942\u1943\5\'\24\2\u1943\u1944\5/\30\2\u1944\u1945\5" + + "\31\r\2\u1945\u1946\5%\23\2\u1946\u1947\5#\22\2\u1947\u0476\3\2\2\2\u1948" + + "\u1949\5-\27\2\u1949\u194a\5)\25\2\u194a\u194b\5\37\20\2\u194b\u194c\5" + + "-\27\2\u194c\u194d\5/\30\2\u194d\u194e\5\t\5\2\u194e\u194f\5/\30\2\u194f" + + "\u1950\5\21\t\2\u1950\u0478\3\2\2\2\u1951\u1952\5-\27\2\u1952\u1953\5" + + ")\25\2\u1953\u1954\5\37\20\2\u1954\u1955\5\65\33\2\u1955\u1956\5\t\5\2" + + "\u1956\u1957\5+\26\2\u1957\u1958\5#\22\2\u1958\u1959\5\31\r\2\u1959\u195a" + + "\5#\22\2\u195a\u195b\5\25\13\2\u195b\u047a\3\2\2\2\u195c\u195d\5-\27\2" + + "\u195d\u195e\5)\25\2\u195e\u195f\5+\26\2\u195f\u1960\5/\30\2\u1960\u047c" + + "\3\2\2\2\u1961\u1962\5-\27\2\u1962\u1963\5/\30\2\u1963\u1964\5\t\5\2\u1964" + + "\u1965\5\13\6\2\u1965\u1966\5\37\20\2\u1966\u1967\5\21\t\2\u1967\u047e" + + "\3\2\2\2\u1968\u1969\5-\27\2\u1969\u196a\5/\30\2\u196a\u196b\5\t\5\2\u196b" + + "\u196c\5+\26\2\u196c\u196d\5/\30\2\u196d\u0480\3\2\2\2\u196e\u196f\5-" + + "\27\2\u196f\u1970\5/\30\2\u1970\u1971\5\t\5\2\u1971\u1972\5/\30\2\u1972" + + "\u1973\5\21\t\2\u1973\u0482\3\2\2\2\u1974\u1975\5-\27\2\u1975\u1976\5" + + "/\30\2\u1976\u1977\5\t\5\2\u1977\u1978\5/\30\2\u1978\u1979\5\21\t\2\u1979" + + "\u197a\5!\21\2\u197a\u197b\5\21\t\2\u197b\u197c\5#\22\2\u197c\u197d\5" + + "/\30\2\u197d\u0484\3\2\2\2\u197e\u197f\5-\27\2\u197f\u1980\5/\30\2\u1980" + + "\u1981\5\t\5\2\u1981\u1982\5/\30\2\u1982\u1983\5\31\r\2\u1983\u1984\5" + + "\r\7\2\u1984\u0486\3\2\2\2\u1985\u1986\5-\27\2\u1986\u1987\5/\30\2\u1987" + + "\u1988\5\t\5\2\u1988\u1989\5/\30\2\u1989\u198a\5\31\r\2\u198a\u198b\5" + + "-\27\2\u198b\u198c\5/\30\2\u198c\u198d\5\31\r\2\u198d\u198e\5\r\7\2\u198e" + + "\u198f\5-\27\2\u198f\u0488\3\2\2\2\u1990\u1991\5-\27\2\u1991\u1992\5/" + + "\30\2\u1992\u1993\5\17\b\2\u1993\u1994\5\17\b\2\u1994\u1995\5\21\t\2\u1995" + + "\u1996\5\63\32\2\u1996\u1997\7a\2\2\u1997\u1998\5\'\24\2\u1998\u1999\5" + + "%\23\2\u1999\u199a\5\'\24\2\u199a\u048a\3\2\2\2\u199b\u199c\5-\27\2\u199c" + + "\u199d\5/\30\2\u199d\u199e\5\17\b\2\u199e\u199f\5\17\b\2\u199f\u19a0\5" + + "\21\t\2\u19a0\u19a1\5\63\32\2\u19a1\u19a2\7a\2\2\u19a2\u19a3\5-\27\2\u19a3" + + "\u19a4\5\t\5\2\u19a4\u19a5\5!\21\2\u19a5\u19a6\5\'\24\2\u19a6\u048c\3" + + "\2\2\2\u19a7\u19a8\5-\27\2\u19a8\u19a9\5/\30\2\u19a9\u19aa\5\17\b\2\u19aa" + + "\u19ab\5\31\r\2\u19ab\u19ac\5#\22\2\u19ac\u048e\3\2\2\2\u19ad\u19ae\5" + + "-\27\2\u19ae\u19af\5/\30\2\u19af\u19b0\5\17\b\2\u19b0\u19b1\5%\23\2\u19b1" + + "\u19b2\5\61\31\2\u19b2\u19b3\5/\30\2\u19b3\u0490\3\2\2\2\u19b4\u19b5\5" + + "-\27\2\u19b5\u19b6\5/\30\2\u19b6\u19b7\5%\23\2\u19b7\u19b8\5+\26\2\u19b8" + + "\u19b9\5\t\5\2\u19b9\u19ba\5\25\13\2\u19ba\u19bb\5\21\t\2\u19bb\u0492" + + "\3\2\2\2\u19bc\u19bd\5-\27\2\u19bd\u19be\5/\30\2\u19be\u19bf\5+\26\2\u19bf" + + "\u19c0\5\31\r\2\u19c0\u19c1\5\r\7\2\u19c1\u19c2\5/\30\2\u19c2\u0494\3" + + "\2\2\2\u19c3\u19c4\5-\27\2\u19c4\u19c5\5/\30\2\u19c5\u19c6\5+\26\2\u19c6" + + "\u19c7\5\61\31\2\u19c7\u19c8\5\r\7\2\u19c8\u19c9\5/\30\2\u19c9\u19ca\5" + + "\61\31\2\u19ca\u19cb\5+\26\2\u19cb\u19cc\5\21\t\2\u19cc\u0496\3\2\2\2" + + "\u19cd\u19ce\5-\27\2\u19ce\u19cf\5/\30\2\u19cf\u19d0\59\35\2\u19d0\u19d1" + + "\5\37\20\2\u19d1\u19d2\5\21\t\2\u19d2\u0498\3\2\2\2\u19d3\u19d4\5-\27" + + "\2\u19d4\u19d5\5\61\31\2\u19d5\u19d6\5\13\6\2\u19d6\u19d7\5\r\7\2\u19d7" + + "\u19d8\5\37\20\2\u19d8\u19d9\5\t\5\2\u19d9\u19da\5-\27\2\u19da\u19db\5" + + "-\27\2\u19db\u19dc\7a\2\2\u19dc\u19dd\5%\23\2\u19dd\u19de\5+\26\2\u19de" + + "\u19df\5\31\r\2\u19df\u19e0\5\25\13\2\u19e0\u19e1\5\31\r\2\u19e1\u19e2" + + "\5#\22\2\u19e2\u049a\3\2\2\2\u19e3\u19e4\5-\27\2\u19e4\u19e5\5\61\31\2" + + "\u19e5\u19e6\5\13\6\2\u19e6\u19e7\5\37\20\2\u19e7\u19e8\5\31\r\2\u19e8" + + "\u19e9\5-\27\2\u19e9\u19ea\5/\30\2\u19ea\u049c\3\2\2\2\u19eb\u19ec\5-" + + "\27\2\u19ec\u19ed\5\61\31\2\u19ed\u19ee\5\13\6\2\u19ee\u19ef\5!\21\2\u19ef" + + "\u19f0\5\61\31\2\u19f0\u19f1\5\37\20\2\u19f1\u19f2\5/\30\2\u19f2\u19f3" + + "\5\31\r\2\u19f3\u19f4\5-\27\2\u19f4\u19f5\5\21\t\2\u19f5\u19f6\5/\30\2" + + "\u19f6\u049e\3\2\2\2\u19f7\u19f8\5-\27\2\u19f8\u19f9\5\61\31\2\u19f9\u19fa" + + "\5\13\6\2\u19fa\u19fb\5-\27\2\u19fb\u19fc\5\r\7\2\u19fc\u19fd\5+\26\2" + + "\u19fd\u19fe\5\31\r\2\u19fe\u19ff\5\'\24\2\u19ff\u1a00\5/\30\2\u1a00\u1a01" + + "\5\31\r\2\u1a01\u1a02\5%\23\2\u1a02\u1a03\5#\22\2\u1a03\u04a0\3\2\2\2" + + "\u1a04\u1a05\5-\27\2\u1a05\u1a06\5\61\31\2\u1a06\u1a07\5\13\6\2\u1a07" + + "\u1a08\5-\27\2\u1a08\u1a09\5/\30\2\u1a09\u1a0a\5+\26\2\u1a0a\u1a0b\5\31" + + "\r\2\u1a0b\u1a0c\5#\22\2\u1a0c\u1a0d\5\25\13\2\u1a0d\u04a2\3\2\2\2\u1a0e" + + "\u1a0f\5-\27\2\u1a0f\u1a10\5\61\31\2\u1a10\u1a11\5!\21\2\u1a11\u04a4\3" + + "\2\2\2\u1a12\u1a13\5-\27\2\u1a13\u1a14\59\35\2\u1a14\u1a15\5!\21\2\u1a15" + + "\u1a16\5!\21\2\u1a16\u1a17\5\21\t\2\u1a17\u1a18\5/\30\2\u1a18\u1a19\5" + + "+\26\2\u1a19\u1a1a\5\31\r\2\u1a1a\u1a1b\5\r\7\2\u1a1b\u04a6\3\2\2\2\u1a1c" + + "\u1a1d\5-\27\2\u1a1d\u1a1e\59\35\2\u1a1e\u1a1f\5-\27\2\u1a1f\u1a20\5\31" + + "\r\2\u1a20\u1a21\5\17\b\2\u1a21\u04a8\3\2\2\2\u1a22\u1a23\5-\27\2\u1a23" + + "\u1a24\59\35\2\u1a24\u1a25\5-\27\2\u1a25\u1a26\5/\30\2\u1a26\u1a27\5\21" + + "\t\2\u1a27\u1a28\5!\21\2\u1a28\u04aa\3\2\2\2\u1a29\u1a2a\5-\27\2\u1a2a" + + "\u1a2b\59\35\2\u1a2b\u1a2c\5-\27\2\u1a2c\u1a2d\5/\30\2\u1a2d\u1a2e\5\21" + + "\t\2\u1a2e\u1a2f\5!\21\2\u1a2f\u1a30\7a\2\2\u1a30\u1a31\5\61\31\2\u1a31" + + "\u1a32\5-\27\2\u1a32\u1a33\5\21\t\2\u1a33\u1a34\5+\26\2\u1a34\u04ac\3" + + "\2\2\2\u1a35\u1a36\5/\30\2\u1a36\u1a37\5\t\5\2\u1a37\u1a38\5\13\6\2\u1a38" + + "\u1a39\5\37\20\2\u1a39\u1a3a\5\21\t\2\u1a3a\u04ae\3\2\2\2\u1a3b\u1a3c" + + "\5/\30\2\u1a3c\u1a3d\5\t\5\2\u1a3d\u1a3e\5\13\6\2\u1a3e\u1a3f\5\37\20" + + "\2\u1a3f\u1a40\5\21\t\2\u1a40\u1a41\7a\2\2\u1a41\u1a42\5#\22\2\u1a42\u1a43" + + "\5\t\5\2\u1a43\u1a44\5!\21\2\u1a44\u1a45\5\21\t\2\u1a45\u04b0\3\2\2\2" + + "\u1a46\u1a47\5/\30\2\u1a47\u1a48\5\t\5\2\u1a48\u1a49\5\13\6\2\u1a49\u1a4a" + + "\5\37\20\2\u1a4a\u1a4b\5\21\t\2\u1a4b\u1a4c\5-\27\2\u1a4c\u1a4d\5\t\5" + + "\2\u1a4d\u1a4e\5!\21\2\u1a4e\u1a4f\5\'\24\2\u1a4f\u1a50\5\37\20\2\u1a50" + + "\u1a51\5\21\t\2\u1a51\u04b2\3\2\2\2\u1a52\u1a53\5/\30\2\u1a53\u1a54\5" + + "\t\5\2\u1a54\u1a55\5\13\6\2\u1a55\u1a56\5\37\20\2\u1a56\u1a57\5\21\t\2" + + "\u1a57\u1a58\5-\27\2\u1a58\u1a59\5\'\24\2\u1a59\u1a5a\5\t\5\2\u1a5a\u1a5b" + + "\5\r\7\2\u1a5b\u1a5c\5\21\t\2\u1a5c\u04b4\3\2\2\2\u1a5d\u1a5e\5/\30\2" + + "\u1a5e\u1a5f\5\21\t\2\u1a5f\u1a60\5!\21\2\u1a60\u1a61\5\'\24\2\u1a61\u04b6" + + "\3\2\2\2\u1a62\u1a63\5/\30\2\u1a63\u1a64\5\21\t\2\u1a64\u1a65\5!\21\2" + + "\u1a65\u1a66\5\'\24\2\u1a66\u1a67\5\37\20\2\u1a67\u1a68\5\t\5\2\u1a68" + + "\u1a69\5/\30\2\u1a69\u1a6a\5\21\t\2\u1a6a\u04b8\3\2\2\2\u1a6b\u1a6c\5" + + "/\30\2\u1a6c\u1a6d\5\21\t\2\u1a6d\u1a6e\5!\21\2\u1a6e\u1a6f\5\'\24\2\u1a6f" + + "\u1a70\5%\23\2\u1a70\u1a71\5+\26\2\u1a71\u1a72\5\t\5\2\u1a72\u1a73\5+" + + "\26\2\u1a73\u1a74\59\35\2\u1a74\u04ba\3\2\2\2\u1a75\u1a76\5/\30\2\u1a76" + + "\u1a77\5\21\t\2\u1a77\u1a78\5+\26\2\u1a78\u1a79\5!\21\2\u1a79\u1a7a\5" + + "\31\r\2\u1a7a\u1a7b\5#\22\2\u1a7b\u1a7c\5\t\5\2\u1a7c\u1a7d\5/\30\2\u1a7d" + + "\u1a7e\5\21\t\2\u1a7e\u04bc\3\2\2\2\u1a7f\u1a80\5/\30\2\u1a80\u1a81\5" + + "\27\f\2\u1a81\u1a82\5\t\5\2\u1a82\u1a83\5#\22\2\u1a83\u04be\3\2\2\2\u1a84" + + "\u1a85\5/\30\2\u1a85\u1a86\5\27\f\2\u1a86\u1a87\5\21\t\2\u1a87\u1a88\5" + + "#\22\2\u1a88\u04c0\3\2\2\2\u1a89\u1a8a\5/\30\2\u1a8a\u1a8b\5\31\r\2\u1a8b" + + "\u1a8c\5\21\t\2\u1a8c\u1a8d\5-\27\2\u1a8d\u04c2\3\2\2\2\u1a8e\u1a8f\5" + + "/\30\2\u1a8f\u1a90\5\31\r\2\u1a90\u1a91\5!\21\2\u1a91\u1a92\5\21\t\2\u1a92" + + "\u04c4\3\2\2\2\u1a93\u1a94\5/\30\2\u1a94\u1a95\5\31\r\2\u1a95\u1a96\5" + + "!\21\2\u1a96\u1a97\5\21\t\2\u1a97\u1a98\5-\27\2\u1a98\u1a99\5/\30\2\u1a99" + + "\u1a9a\5\t\5\2\u1a9a\u1a9b\5!\21\2\u1a9b\u1a9c\5\'\24\2\u1a9c\u04c6\3" + + "\2\2\2\u1a9d\u1a9e\5/\30\2\u1a9e\u1a9f\5\31\r\2\u1a9f\u1aa0\5!\21\2\u1aa0" + + "\u1aa1\5\21\t\2\u1aa1\u1aa2\5;\36\2\u1aa2\u1aa3\5%\23\2\u1aa3\u1aa4\5" + + "#\22\2\u1aa4\u1aa5\5\21\t\2\u1aa5\u1aa6\7a\2\2\u1aa6\u1aa7\5\27\f\2\u1aa7" + + "\u1aa8\5%\23\2\u1aa8\u1aa9\5\61\31\2\u1aa9\u1aaa\5+\26\2\u1aaa\u04c8\3" + + "\2\2\2\u1aab\u1aac\5/\30\2\u1aac\u1aad\5\31\r\2\u1aad\u1aae\5!\21\2\u1aae" + + "\u1aaf\5\21\t\2\u1aaf\u1ab0\5;\36\2\u1ab0\u1ab1\5%\23\2\u1ab1\u1ab2\5" + + "#\22\2\u1ab2\u1ab3\5\21\t\2\u1ab3\u1ab4\7a\2\2\u1ab4\u1ab5\5!\21\2\u1ab5" + + "\u1ab6\5\31\r\2\u1ab6\u1ab7\5#\22\2\u1ab7\u1ab8\5\61\31\2\u1ab8\u1ab9" + + "\5/\30\2\u1ab9\u1aba\5\21\t\2\u1aba\u04ca\3\2\2\2\u1abb\u1abc\5/\30\2" + + "\u1abc\u1abd\5\31\r\2\u1abd\u1abe\5!\21\2\u1abe\u1abf\5\31\r\2\u1abf\u1ac0" + + "\5#\22\2\u1ac0\u1ac1\5\25\13\2\u1ac1\u04cc\3\2\2\2\u1ac2\u1ac3\5/\30\2" + + "\u1ac3\u1ac4\5%\23\2\u1ac4\u04ce\3\2\2\2\u1ac5\u1ac6\5/\30\2\u1ac6\u1ac7" + + "\5%\23\2\u1ac7\u1ac8\5\t\5\2\u1ac8\u1ac9\5-\27\2\u1ac9\u1aca\5/\30\2\u1aca" + + "\u04d0\3\2\2\2\u1acb\u1acc\5/\30\2\u1acc\u1acd\5%\23\2\u1acd\u1ace\5\'" + + "\24\2\u1ace\u1acf\7a\2\2\u1acf\u1ad0\5\37\20\2\u1ad0\u1ad1\5\21\t\2\u1ad1" + + "\u1ad2\5\63\32\2\u1ad2\u1ad3\5\21\t\2\u1ad3\u1ad4\5\37\20\2\u1ad4\u1ad5" + + "\7a\2\2\u1ad5\u1ad6\5\r\7\2\u1ad6\u1ad7\5%\23\2\u1ad7\u1ad8\5\61\31\2" + + "\u1ad8\u1ad9\5#\22\2\u1ad9\u1ada\5/\30\2\u1ada\u04d2\3\2\2\2\u1adb\u1adc" + + "\5/\30\2\u1adc\u1add\5+\26\2\u1add\u1ade\5\t\5\2\u1ade\u1adf\5\31\r\2" + + "\u1adf\u1ae0\5\37\20\2\u1ae0\u1ae1\5\31\r\2\u1ae1\u1ae2\5#\22\2\u1ae2" + + "\u1ae3\5\25\13\2\u1ae3\u04d4\3\2\2\2\u1ae4\u1ae5\5/\30\2\u1ae5\u1ae6\5" + + "+\26\2\u1ae6\u1ae7\5\t\5\2\u1ae7\u1ae8\5#\22\2\u1ae8\u1ae9\5-\27\2\u1ae9" + + "\u1aea\5\t\5\2\u1aea\u1aeb\5\r\7\2\u1aeb\u1aec\5/\30\2\u1aec\u1aed\5\31" + + "\r\2\u1aed\u1aee\5%\23\2\u1aee\u1aef\5#\22\2\u1aef\u04d6\3\2\2\2\u1af0" + + "\u1af1\5/\30\2\u1af1\u1af2\5+\26\2\u1af2\u1af3\5\t\5\2\u1af3\u1af4\5#" + + "\22\2\u1af4\u1af5\5-\27\2\u1af5\u1af6\5\t\5\2\u1af6\u1af7\5\r\7\2\u1af7" + + "\u1af8\5/\30\2\u1af8\u1af9\5\31\r\2\u1af9\u1afa\5%\23\2\u1afa\u1afb\5" + + "#\22\2\u1afb\u1afc\7a\2\2\u1afc\u1afd\5\t\5\2\u1afd\u1afe\5\r\7\2\u1afe" + + "\u1aff\5/\30\2\u1aff\u1b00\5\31\r\2\u1b00\u1b01\5\63\32\2\u1b01\u1b02" + + "\5\21\t\2\u1b02\u04d8\3\2\2\2\u1b03\u1b04\5/\30\2\u1b04\u1b05\5+\26\2" + + "\u1b05\u1b06\5\t\5\2\u1b06\u1b07\5#\22\2\u1b07\u1b08\5-\27\2\u1b08\u1b09" + + "\5\t\5\2\u1b09\u1b0a\5\r\7\2\u1b0a\u1b0b\5/\30\2\u1b0b\u1b0c\5\31\r\2" + + "\u1b0c\u1b0d\5%\23\2\u1b0d\u1b0e\5#\22\2\u1b0e\u1b0f\5-\27\2\u1b0f\u1b10" + + "\7a\2\2\u1b10\u1b11\5\r\7\2\u1b11\u1b12\5%\23\2\u1b12\u1b13\5!\21\2\u1b13" + + "\u1b14\5!\21\2\u1b14\u1b15\5\31\r\2\u1b15\u1b16\5/\30\2\u1b16\u1b17\5" + + "/\30\2\u1b17\u1b18\5\21\t\2\u1b18\u1b19\5\17\b\2\u1b19\u04da\3\2\2\2\u1b1a" + + "\u1b1b\5/\30\2\u1b1b\u1b1c\5+\26\2\u1b1c\u1b1d\5\t\5\2\u1b1d\u1b1e\5#" + + "\22\2\u1b1e\u1b1f\5-\27\2\u1b1f\u1b20\5\t\5\2\u1b20\u1b21\5\r\7\2\u1b21" + + "\u1b22\5/\30\2\u1b22\u1b23\5\31\r\2\u1b23\u1b24\5%\23\2\u1b24\u1b25\5" + + "#\22\2\u1b25\u1b26\5-\27\2\u1b26\u1b27\7a\2\2\u1b27\u1b28\5+\26\2\u1b28" + + "\u1b29\5%\23\2\u1b29\u1b2a\5\37\20\2\u1b2a\u1b2b\5\37\20\2\u1b2b\u1b2c" + + "\5\21\t\2\u1b2c\u1b2d\5\17\b\2\u1b2d\u1b2e\7a\2\2\u1b2e\u1b2f\5\13\6\2" + + "\u1b2f\u1b30\5\t\5\2\u1b30\u1b31\5\r\7\2\u1b31\u1b32\5\35\17\2\u1b32\u04dc" + + "\3\2\2\2\u1b33\u1b34\5/\30\2\u1b34\u1b35\5+\26\2\u1b35\u1b36\5\t\5\2\u1b36" + + "\u1b37\5#\22\2\u1b37\u1b38\5-\27\2\u1b38\u1b39\5\23\n\2\u1b39\u1b3a\5" + + "%\23\2\u1b3a\u1b3b\5+\26\2\u1b3b\u1b3c\5!\21\2\u1b3c\u04de\3\2\2\2\u1b3d" + + "\u1b3e\5/\30\2\u1b3e\u1b3f\5+\26\2\u1b3f\u1b40\5\t\5\2\u1b40\u1b41\5#" + + "\22\2\u1b41\u1b42\5-\27\2\u1b42\u1b43\5\23\n\2\u1b43\u1b44\5%\23\2\u1b44" + + "\u1b45\5+\26\2\u1b45\u1b46\5!\21\2\u1b46\u1b47\5-\27\2\u1b47\u04e0\3\2" + + "\2\2\u1b48\u1b49\5/\30\2\u1b49\u1b4a\5+\26\2\u1b4a\u1b4b\5\t\5\2\u1b4b" + + "\u1b4c\5#\22\2\u1b4c\u1b4d\5-\27\2\u1b4d\u1b4e\5\37\20\2\u1b4e\u1b4f\5" + + "\t\5\2\u1b4f\u1b50\5/\30\2\u1b50\u1b51\5\21\t\2\u1b51\u04e2\3\2\2\2\u1b52" + + "\u1b53\5/\30\2\u1b53\u1b54\5+\26\2\u1b54\u1b55\5\t\5\2\u1b55\u1b56\5#" + + "\22\2\u1b56\u1b57\5-\27\2\u1b57\u1b58\5\37\20\2\u1b58\u1b59\5\t\5\2\u1b59" + + "\u1b5a\5/\30\2\u1b5a\u1b5b\5\31\r\2\u1b5b\u1b5c\5%\23\2\u1b5c\u1b5d\5" + + "#\22\2\u1b5d\u04e4\3\2\2\2\u1b5e\u1b5f\5/\30\2\u1b5f\u1b60\5+\26\2\u1b60" + + "\u1b61\5\21\t\2\u1b61\u1b62\5\t\5\2\u1b62\u1b63\5/\30\2\u1b63\u04e6\3" + + "\2\2\2\u1b64\u1b65\5/\30\2\u1b65\u1b66\5+\26\2\u1b66\u1b67\5\31\r\2\u1b67" + + "\u1b68\5\25\13\2\u1b68\u1b69\5\25\13\2\u1b69\u1b6a\5\21\t\2\u1b6a\u1b6b" + + "\5+\26\2\u1b6b\u04e8\3\2\2\2\u1b6c\u1b6d\5/\30\2\u1b6d\u1b6e\5+\26\2\u1b6e" + + "\u1b6f\5\31\r\2\u1b6f\u1b70\5\25\13\2\u1b70\u1b71\5\25\13\2\u1b71\u1b72" + + "\5\21\t\2\u1b72\u1b73\5+\26\2\u1b73\u1b74\7a\2\2\u1b74\u1b75\5\r\7\2\u1b75" + + "\u1b76\5\t\5\2\u1b76\u1b77\5/\30\2\u1b77\u1b78\5\t\5\2\u1b78\u1b79\5\37" + + "\20\2\u1b79\u1b7a\5%\23\2\u1b7a\u1b7b\5\25\13\2\u1b7b\u04ea\3\2\2\2\u1b7c" + + "\u1b7d\5/\30\2\u1b7d\u1b7e\5+\26\2\u1b7e\u1b7f\5\31\r\2\u1b7f\u1b80\5" + + "\25\13\2\u1b80\u1b81\5\25\13\2\u1b81\u1b82\5\21\t\2\u1b82\u1b83\5+\26" + + "\2\u1b83\u1b84\7a\2\2\u1b84\u1b85\5#\22\2\u1b85\u1b86\5\t\5\2\u1b86\u1b87" + + "\5!\21\2\u1b87\u1b88\5\21\t\2\u1b88\u04ec\3\2\2\2\u1b89\u1b8a\5/\30\2" + + "\u1b8a\u1b8b\5+\26\2\u1b8b\u1b8c\5\31\r\2\u1b8c\u1b8d\5\25\13\2\u1b8d" + + "\u1b8e\5\25\13\2\u1b8e\u1b8f\5\21\t\2\u1b8f\u1b90\5+\26\2\u1b90\u1b91" + + "\7a\2\2\u1b91\u1b92\5-\27\2\u1b92\u1b93\5\r\7\2\u1b93\u1b94\5\27\f\2\u1b94" + + "\u1b95\5\21\t\2\u1b95\u1b96\5!\21\2\u1b96\u1b97\5\t\5\2\u1b97\u04ee\3" + + "\2\2\2\u1b98\u1b99\5/\30\2\u1b99\u1b9a\5+\26\2\u1b9a\u1b9b\5\31\r\2\u1b9b" + + "\u1b9c\5!\21\2\u1b9c\u04f0\3\2\2\2\u1b9d\u1b9e\5/\30\2\u1b9e\u1b9f\5+" + + "\26\2\u1b9f\u1ba0\5\61\31\2\u1ba0\u1ba1\5\21\t\2\u1ba1\u04f2\3\2\2\2\u1ba2" + + "\u1ba3\5/\30\2\u1ba3\u1ba4\5+\26\2\u1ba4\u1ba5\5\61\31\2\u1ba5\u1ba6\5" + + "#\22\2\u1ba6\u1ba7\5\r\7\2\u1ba7\u1ba8\5\t\5\2\u1ba8\u1ba9\5/\30\2\u1ba9" + + "\u1baa\5\21\t\2\u1baa\u04f4\3\2\2\2\u1bab\u1bac\5/\30\2\u1bac\u1bad\5" + + "+\26\2\u1bad\u1bae\5\61\31\2\u1bae\u1baf\5-\27\2\u1baf\u1bb0\5/\30\2\u1bb0" + + "\u1bb1\5\21\t\2\u1bb1\u1bb2\5\17\b\2\u1bb2\u04f6\3\2\2\2\u1bb3\u1bb4\5" + + "/\30\2\u1bb4\u1bb5\59\35\2\u1bb5\u1bb6\5\'\24\2\u1bb6\u1bb7\5\21\t\2\u1bb7" + + "\u04f8\3\2\2\2\u1bb8\u1bb9\5\61\31\2\u1bb9\u1bba\5\21\t\2\u1bba\u1bbb" + + "\5-\27\2\u1bbb\u1bbc\5\r\7\2\u1bbc\u1bbd\5\t\5\2\u1bbd\u1bbe\5\'\24\2" + + "\u1bbe\u1bbf\5\21\t\2\u1bbf\u04fa\3\2\2\2\u1bc0\u1bc1\5\61\31\2\u1bc1" + + "\u1bc2\5#\22\2\u1bc2\u1bc3\5\13\6\2\u1bc3\u1bc4\5%\23\2\u1bc4\u1bc5\5" + + "\61\31\2\u1bc5\u1bc6\5#\22\2\u1bc6\u1bc7\5\17\b\2\u1bc7\u1bc8\5\21\t\2" + + "\u1bc8\u1bc9\5\17\b\2\u1bc9\u04fc\3\2\2\2\u1bca\u1bcb\5\61\31\2\u1bcb" + + "\u1bcc\5#\22\2\u1bcc\u1bcd\5\r\7\2\u1bcd\u1bce\5%\23\2\u1bce\u1bcf\5!" + + "\21\2\u1bcf\u1bd0\5!\21\2\u1bd0\u1bd1\5\31\r\2\u1bd1\u1bd2\5/\30\2\u1bd2" + + "\u1bd3\5/\30\2\u1bd3\u1bd4\5\21\t\2\u1bd4\u1bd5\5\17\b\2\u1bd5\u04fe\3" + + "\2\2\2\u1bd6\u1bd7\5\61\31\2\u1bd7\u1bd8\5#\22\2\u1bd8\u1bd9\5\17\b\2" + + "\u1bd9\u1bda\5\21\t\2\u1bda\u1bdb\5+\26\2\u1bdb\u0500\3\2\2\2\u1bdc\u1bdd" + + "\5\61\31\2\u1bdd\u1bde\5#\22\2\u1bde\u1bdf\5\21\t\2\u1bdf\u1be0\5#\22" + + "\2\u1be0\u1be1\5\r\7\2\u1be1\u1be2\5+\26\2\u1be2\u1be3\59\35\2\u1be3\u1be4" + + "\5\'\24\2\u1be4\u1be5\5/\30\2\u1be5\u1be6\5\21\t\2\u1be6\u1be7\5\17\b" + + "\2\u1be7\u0502\3\2\2\2\u1be8\u1be9\5\61\31\2\u1be9\u1bea\5#\22\2\u1bea" + + "\u1beb\5\31\r\2\u1beb\u1bec\5%\23\2\u1bec\u1bed\5#\22\2\u1bed\u0504\3" + + "\2\2\2\u1bee\u1bef\5\61\31\2\u1bef\u1bf0\5#\22\2\u1bf0\u1bf1\5\31\r\2" + + "\u1bf1\u1bf2\5)\25\2\u1bf2\u1bf3\5\61\31\2\u1bf3\u1bf4\5\21\t\2\u1bf4" + + "\u0506\3\2\2\2\u1bf5\u1bf6\5\61\31\2\u1bf6\u1bf7\5#\22\2\u1bf7\u1bf8\5" + + "\35\17\2\u1bf8\u1bf9\5#\22\2\u1bf9\u1bfa\5%\23\2\u1bfa\u1bfb\5\65\33\2" + + "\u1bfb\u1bfc\5#\22\2\u1bfc\u0508\3\2\2\2\u1bfd\u1bfe\5\61\31\2\u1bfe\u1bff" + + "\5#\22\2\u1bff\u1c00\5\37\20\2\u1c00\u1c01\5\31\r\2\u1c01\u1c02\5-\27" + + "\2\u1c02\u1c03\5/\30\2\u1c03\u1c04\5\21\t\2\u1c04\u1c05\5#\22\2\u1c05" + + "\u050a\3\2\2\2\u1c06\u1c07\5\61\31\2\u1c07\u1c08\5#\22\2\u1c08\u1c09\5" + + "#\22\2\u1c09\u1c0a\5\t\5\2\u1c0a\u1c0b\5!\21\2\u1c0b\u1c0c\5\21\t\2\u1c0c" + + "\u1c0d\5\17\b\2\u1c0d\u050c\3\2\2\2\u1c0e\u1c0f\5\61\31\2\u1c0f\u1c10" + + "\5#\22\2\u1c10\u1c11\5#\22\2\u1c11\u1c12\5\21\t\2\u1c12\u1c13\5-\27\2" + + "\u1c13\u1c14\5/\30\2\u1c14\u050e\3\2\2\2\u1c15\u1c16\5\61\31\2\u1c16\u1c17" + + "\5#\22\2\u1c17\u1c18\5/\30\2\u1c18\u1c19\5\31\r\2\u1c19\u1c1a\5\37\20" + + "\2\u1c1a\u0510\3\2\2\2\u1c1b\u1c1c\5\61\31\2\u1c1c\u1c1d\5\'\24\2\u1c1d" + + "\u1c1e\5\17\b\2\u1c1e\u1c1f\5\t\5\2\u1c1f\u1c20\5/\30\2\u1c20\u1c21\5" + + "\21\t\2\u1c21\u0512\3\2\2\2\u1c22\u1c23\5\61\31\2\u1c23\u1c24\5\'\24\2" + + "\u1c24\u1c25\5\'\24\2\u1c25\u1c26\5\21\t\2\u1c26\u1c27\5+\26\2\u1c27\u0514" + + "\3\2\2\2\u1c28\u1c29\5\61\31\2\u1c29\u1c2a\5-\27\2\u1c2a\u1c2b\5\t\5\2" + + "\u1c2b\u1c2c\5\25\13\2\u1c2c\u1c2d\5\21\t\2\u1c2d\u0516\3\2\2\2\u1c2e" + + "\u1c2f\5\61\31\2\u1c2f\u1c30\5-\27\2\u1c30\u1c31\5\21\t\2\u1c31\u1c32" + + "\5+\26\2\u1c32\u0518\3\2\2\2\u1c33\u1c34\5\61\31\2\u1c34\u1c35\5-\27\2" + + "\u1c35\u1c36\5\21\t\2\u1c36\u1c37\5+\26\2\u1c37\u1c38\7a\2\2\u1c38\u1c39" + + "\5\17\b\2\u1c39\u1c3a\5\21\t\2\u1c3a\u1c3b\5\23\n\2\u1c3b\u1c3c\5\31\r" + + "\2\u1c3c\u1c3d\5#\22\2\u1c3d\u1c3e\5\21\t\2\u1c3e\u1c3f\5\17\b\2\u1c3f" + + "\u1c40\7a\2\2\u1c40\u1c41\5/\30\2\u1c41\u1c42\59\35\2\u1c42\u1c43\5\'" + + "\24\2\u1c43\u1c44\5\21\t\2\u1c44\u1c45\7a\2\2\u1c45\u1c46\5\r\7\2\u1c46" + + "\u1c47\5\t\5\2\u1c47\u1c48\5/\30\2\u1c48\u1c49\5\t\5\2\u1c49\u1c4a\5\37" + + "\20\2\u1c4a\u1c4b\5%\23\2\u1c4b\u1c4c\5\25\13\2\u1c4c\u051a\3\2\2\2\u1c4d" + + "\u1c4e\5\61\31\2\u1c4e\u1c4f\5-\27\2\u1c4f\u1c50\5\21\t\2\u1c50\u1c51" + + "\5+\26\2\u1c51\u1c52\7a\2\2\u1c52\u1c53\5\17\b\2\u1c53\u1c54\5\21\t\2" + + "\u1c54\u1c55\5\23\n\2\u1c55\u1c56\5\31\r\2\u1c56\u1c57\5#\22\2\u1c57\u1c58" + + "\5\21\t\2\u1c58\u1c59\5\17\b\2\u1c59\u1c5a\7a\2\2\u1c5a\u1c5b\5/\30\2" + + "\u1c5b\u1c5c\59\35\2\u1c5c\u1c5d\5\'\24\2\u1c5d\u1c5e\5\21\t\2\u1c5e\u1c5f" + + "\7a\2\2\u1c5f\u1c60\5\r\7\2\u1c60\u1c61\5%\23\2\u1c61\u1c62\5\17\b\2\u1c62" + + "\u1c63\5\21\t\2\u1c63\u051c\3\2\2\2\u1c64\u1c65\5\61\31\2\u1c65\u1c66" + + "\5-\27\2\u1c66\u1c67\5\21\t\2\u1c67\u1c68\5+\26\2\u1c68\u1c69\7a\2\2\u1c69" + + "\u1c6a\5\17\b\2\u1c6a\u1c6b\5\21\t\2\u1c6b\u1c6c\5\23\n\2\u1c6c\u1c6d" + + "\5\31\r\2\u1c6d\u1c6e\5#\22\2\u1c6e\u1c6f\5\21\t\2\u1c6f\u1c70\5\17\b" + + "\2\u1c70\u1c71\7a\2\2\u1c71\u1c72\5/\30\2\u1c72\u1c73\59\35\2\u1c73\u1c74" + + "\5\'\24\2\u1c74\u1c75\5\21\t\2\u1c75\u1c76\7a\2\2\u1c76\u1c77\5#\22\2" + + "\u1c77\u1c78\5\t\5\2\u1c78\u1c79\5!\21\2\u1c79\u1c7a\5\21\t\2\u1c7a\u051e" + + "\3\2\2\2\u1c7b\u1c7c\5\61\31\2\u1c7c\u1c7d\5-\27\2\u1c7d\u1c7e\5\21\t" + + "\2\u1c7e\u1c7f\5+\26\2\u1c7f\u1c80\7a\2\2\u1c80\u1c81\5\17\b\2\u1c81\u1c82" + + "\5\21\t\2\u1c82\u1c83\5\23\n\2\u1c83\u1c84\5\31\r\2\u1c84\u1c85\5#\22" + + "\2\u1c85\u1c86\5\21\t\2\u1c86\u1c87\5\17\b\2\u1c87\u1c88\7a\2\2\u1c88" + + "\u1c89\5/\30\2\u1c89\u1c8a\59\35\2\u1c8a\u1c8b\5\'\24\2\u1c8b\u1c8c\5" + + "\21\t\2\u1c8c\u1c8d\7a\2\2\u1c8d\u1c8e\5-\27\2\u1c8e\u1c8f\5\r\7\2\u1c8f" + + "\u1c90\5\27\f\2\u1c90\u1c91\5\21\t\2\u1c91\u1c92\5!\21\2\u1c92\u1c93\5" + + "\t\5\2\u1c93\u0520\3\2\2\2\u1c94\u1c95\5\61\31\2\u1c95\u1c96\5-\27\2\u1c96" + + "\u1c97\5\31\r\2\u1c97\u1c98\5#\22\2\u1c98\u1c99\5\25\13\2\u1c99\u0522" + + "\3\2\2\2\u1c9a\u1c9b\5\63\32\2\u1c9b\u1c9c\5\t\5\2\u1c9c\u1c9d\5\r\7\2" + + "\u1c9d\u1c9e\5\61\31\2\u1c9e\u1c9f\5\61\31\2\u1c9f\u1ca0\5!\21\2\u1ca0" + + "\u0524\3\2\2\2\u1ca1\u1ca2\5\63\32\2\u1ca2\u1ca3\5\t\5\2\u1ca3\u1ca4\5" + + "\37\20\2\u1ca4\u1ca5\5\31\r\2\u1ca5\u1ca6\5\17\b\2\u1ca6\u0526\3\2\2\2" + + "\u1ca7\u1ca8\5\63\32\2\u1ca8\u1ca9\5\t\5\2\u1ca9\u1caa\5\37\20\2\u1caa" + + "\u1cab\5\31\r\2\u1cab\u1cac\5\17\b\2\u1cac\u1cad\5\t\5\2\u1cad\u1cae\5" + + "/\30\2\u1cae\u1caf\5\21\t\2\u1caf\u0528\3\2\2\2\u1cb0\u1cb1\5\63\32\2" + + "\u1cb1\u1cb2\5\t\5\2\u1cb2\u1cb3\5\37\20\2\u1cb3\u1cb4\5\31\r\2\u1cb4" + + "\u1cb5\5\17\b\2\u1cb5\u1cb6\5\t\5\2\u1cb6\u1cb7\5/\30\2\u1cb7\u1cb8\5" + + "%\23\2\u1cb8\u1cb9\5+\26\2\u1cb9\u052a\3\2\2\2\u1cba\u1cbb\5\63\32\2\u1cbb" + + "\u1cbc\5\t\5\2\u1cbc\u1cbd\5\37\20\2\u1cbd\u1cbe\5\61\31\2\u1cbe\u1cbf" + + "\5\21\t\2\u1cbf\u052c\3\2\2\2\u1cc0\u1cc1\5\63\32\2\u1cc1\u1cc2\5\t\5" + + "\2\u1cc2\u1cc3\5\37\20\2\u1cc3\u1cc4\5\61\31\2\u1cc4\u1cc5\5\21\t\2\u1cc5" + + "\u1cc6\5-\27\2\u1cc6\u052e\3\2\2\2\u1cc7\u1cc8\5\63\32\2\u1cc8\u1cc9\5" + + "\t\5\2\u1cc9\u1cca\5+\26\2\u1cca\u1ccb\7a\2\2\u1ccb\u1ccc\5\'\24\2\u1ccc" + + "\u1ccd\5%\23\2\u1ccd\u1cce\5\'\24\2\u1cce\u0530\3\2\2\2\u1ccf\u1cd0\5" + + "\63\32\2\u1cd0\u1cd1\5\t\5\2\u1cd1\u1cd2\5+\26\2\u1cd2\u1cd3\7a\2\2\u1cd3" + + "\u1cd4\5-\27\2\u1cd4\u1cd5\5\t\5\2\u1cd5\u1cd6\5!\21\2\u1cd6\u1cd7\5\'" + + "\24\2\u1cd7\u0532\3\2\2\2\u1cd8\u1cd9\5\63\32\2\u1cd9\u1cda\5\t\5\2\u1cda" + + "\u1cdb\5+\26\2\u1cdb\u1cdc\5\r\7\2\u1cdc\u1cdd\5\27\f\2\u1cdd\u1cde\5" + + "\t\5\2\u1cde\u1cdf\5+\26\2\u1cdf\u0534\3\2\2\2\u1ce0\u1ce1\5\63\32\2\u1ce1" + + "\u1ce2\5\t\5\2\u1ce2\u1ce3\5+\26\2\u1ce3\u1ce4\5\31\r\2\u1ce4\u1ce5\5" + + "\t\5\2\u1ce5\u1ce6\5\13\6\2\u1ce6\u1ce7\5\37\20\2\u1ce7\u1ce8\5\21\t\2" + + "\u1ce8\u0536\3\2\2\2\u1ce9\u1cea\5\63\32\2\u1cea\u1ceb\5\t\5\2\u1ceb\u1cec" + + "\5+\26\2\u1cec\u1ced\5\31\r\2\u1ced\u1cee\5\t\5\2\u1cee\u1cef\5\17\b\2" + + "\u1cef\u1cf0\5\31\r\2\u1cf0\u1cf1\5\r\7\2\u1cf1\u0538\3\2\2\2\u1cf2\u1cf3" + + "\5\63\32\2\u1cf3\u1cf4\5\t\5\2\u1cf4\u1cf5\5+\26\2\u1cf5\u1cf6\59\35\2" + + "\u1cf6\u1cf7\5\31\r\2\u1cf7\u1cf8\5#\22\2\u1cf8\u1cf9\5\25\13\2\u1cf9" + + "\u053a\3\2\2\2\u1cfa\u1cfb\5\63\32\2\u1cfb\u1cfc\5\21\t\2\u1cfc\u1cfd" + + "\5+\26\2\u1cfd\u1cfe\5\13\6\2\u1cfe\u1cff\5%\23\2\u1cff\u1d00\5-\27\2" + + "\u1d00\u1d01\5\21\t\2\u1d01\u053c\3\2\2\2\u1d02\u1d03\5\63\32\2\u1d03" + + "\u1d04\5\31\r\2\u1d04\u1d05\5\21\t\2\u1d05\u1d06\5\65\33\2\u1d06\u053e" + + "\3\2\2\2\u1d07\u1d08\5\63\32\2\u1d08\u1d09\5%\23\2\u1d09\u1d0a\5\37\20" + + "\2\u1d0a\u1d0b\5\t\5\2\u1d0b\u1d0c\5/\30\2\u1d0c\u1d0d\5\31\r\2\u1d0d" + + "\u1d0e\5\37\20\2\u1d0e\u1d0f\5\21\t\2\u1d0f\u0540\3\2\2\2\u1d10\u1d11" + + "\5\65\33\2\u1d11\u1d12\5\27\f\2\u1d12\u1d13\5\21\t\2\u1d13\u1d14\5#\22" + + "\2\u1d14\u0542\3\2\2\2\u1d15\u1d16\5\65\33\2\u1d16\u1d17\5\27\f\2\u1d17" + + "\u1d18\5\21\t\2\u1d18\u1d19\5#\22\2\u1d19\u1d1a\5\21\t\2\u1d1a\u1d1b\5" + + "\63\32\2\u1d1b\u1d1c\5\21\t\2\u1d1c\u1d1d\5+\26\2\u1d1d\u0544\3\2\2\2" + + "\u1d1e\u1d1f\5\65\33\2\u1d1f\u1d20\5\27\f\2\u1d20\u1d21\5\21\t\2\u1d21" + + "\u1d22\5+\26\2\u1d22\u1d23\5\21\t\2\u1d23\u0546\3\2\2\2\u1d24\u1d25\5" + + "\65\33\2\u1d25\u1d26\5\31\r\2\u1d26\u1d27\5\17\b\2\u1d27\u1d28\5/\30\2" + + "\u1d28\u1d29\5\27\f\2\u1d29\u1d2a\7a\2\2\u1d2a\u1d2b\5\13\6\2\u1d2b\u1d2c" + + "\5\61\31\2\u1d2c\u1d2d\5\r\7\2\u1d2d\u1d2e\5\35\17\2\u1d2e\u1d2f\5\21" + + "\t\2\u1d2f\u1d30\5/\30\2\u1d30\u0548\3\2\2\2\u1d31\u1d32\5\65\33\2\u1d32" + + "\u1d33\5\31\r\2\u1d33\u1d34\5#\22\2\u1d34\u1d35\5\17\b\2\u1d35\u1d36\5" + + "%\23\2\u1d36\u1d37\5\65\33\2\u1d37\u054a\3\2\2\2\u1d38\u1d39\5\65\33\2" + + "\u1d39\u1d3a\5\31\r\2\u1d3a\u1d3b\5/\30\2\u1d3b\u1d3c\5\27\f\2\u1d3c\u054c" + + "\3\2\2\2\u1d3d\u1d3e\5\65\33\2\u1d3e\u1d3f\5\31\r\2\u1d3f\u1d40\5/\30" + + "\2\u1d40\u1d41\5\27\f\2\u1d41\u1d42\5\31\r\2\u1d42\u1d43\5#\22\2\u1d43" + + "\u054e\3\2\2\2\u1d44\u1d45\5\65\33\2\u1d45\u1d46\5\31\r\2\u1d46\u1d47" + + "\5/\30\2\u1d47\u1d48\5\27\f\2\u1d48\u1d49\5%\23\2\u1d49\u1d4a\5\61\31" + + "\2\u1d4a\u1d4b\5/\30\2\u1d4b\u0550\3\2\2\2\u1d4c\u1d4d\5\65\33\2\u1d4d" + + "\u1d4e\5%\23\2\u1d4e\u1d4f\5+\26\2\u1d4f\u1d50\5\35\17\2\u1d50\u0552\3" + + "\2\2\2\u1d51\u1d52\5\65\33\2\u1d52\u1d53\5+\26\2\u1d53\u1d54\5\31\r\2" + + "\u1d54\u1d55\5/\30\2\u1d55\u1d56\5\21\t\2\u1d56\u0554\3\2\2\2\u1d57\u1d58" + + "\59\35\2\u1d58\u1d59\5\t\5\2\u1d59\u1d5a\5!\21\2\u1d5a\u1d5b\5\37\20\2" + + "\u1d5b\u0556\3\2\2\2\u1d5c\u1d5d\59\35\2\u1d5d\u1d5e\5\21\t\2\u1d5e\u1d5f" + + "\5\t\5\2\u1d5f\u1d60\5+\26\2\u1d60\u0558\3\2\2\2\u1d61\u1d62\59\35\2\u1d62" + + "\u1d63\5\21\t\2\u1d63\u1d64\5-\27\2\u1d64\u055a\3\2\2\2\u1d65\u1d66\5" + + ";\36\2\u1d66\u1d67\5%\23\2\u1d67\u1d68\5#\22\2\u1d68\u1d69\5\21\t\2\u1d69" + + "\u055c\3\2\2\2\u1d6a\u1d6b\5-\27\2\u1d6b\u1d6c\5\61\31\2\u1d6c\u1d6d\5" + + "\'\24\2\u1d6d\u1d6e\5\21\t\2\u1d6e\u1d6f\5+\26\2\u1d6f\u1d70\5\61\31\2" + + "\u1d70\u1d71\5-\27\2\u1d71\u1d72\5\21\t\2\u1d72\u1d73\5+\26\2\u1d73\u055e" + + "\3\2\2\2\u1d74\u1d75\5#\22\2\u1d75\u1d76\5%\23\2\u1d76\u1d77\5-\27\2\u1d77" + + "\u1d78\5\61\31\2\u1d78\u1d79\5\'\24\2\u1d79\u1d7a\5\21\t\2\u1d7a\u1d7b" + + "\5+\26\2\u1d7b\u1d7c\5\61\31\2\u1d7c\u1d7d\5-\27\2\u1d7d\u1d7e\5\21\t" + + "\2\u1d7e\u1d7f\5+\26\2\u1d7f\u0560\3\2\2\2\u1d80\u1d81\5\r\7\2\u1d81\u1d82" + + "\5+\26\2\u1d82\u1d83\5\21\t\2\u1d83\u1d84\5\t\5\2\u1d84\u1d85\5/\30\2" + + "\u1d85\u1d86\5\21\t\2\u1d86\u1d87\5+\26\2\u1d87\u1d88\5%\23\2\u1d88\u1d89" + + "\5\37\20\2\u1d89\u1d8a\5\21\t\2\u1d8a\u0562\3\2\2\2\u1d8b\u1d8c\5#\22" + + "\2\u1d8c\u1d8d\5%\23\2\u1d8d\u1d8e\5\r\7\2\u1d8e\u1d8f\5+\26\2\u1d8f\u1d90" + + "\5\21\t\2\u1d90\u1d91\5\t\5\2\u1d91\u1d92\5/\30\2\u1d92\u1d93\5\21\t\2" + + "\u1d93\u1d94\5+\26\2\u1d94\u1d95\5%\23\2\u1d95\u1d96\5\37\20\2\u1d96\u1d97" + + "\5\21\t\2\u1d97\u0564\3\2\2\2\u1d98\u1d99\5\31\r\2\u1d99\u1d9a\5#\22\2" + + "\u1d9a\u1d9b\5\27\f\2\u1d9b\u1d9c\5\21\t\2\u1d9c\u1d9d\5+\26\2\u1d9d\u1d9e" + + "\5\31\r\2\u1d9e\u1d9f\5/\30\2\u1d9f\u0566\3\2\2\2\u1da0\u1da1\5#\22\2" + + "\u1da1\u1da2\5%\23\2\u1da2\u1da3\5\31\r\2\u1da3\u1da4\5#\22\2\u1da4\u1da5" + + "\5\27\f\2\u1da5\u1da6\5\21\t\2\u1da6\u1da7\5+\26\2\u1da7\u1da8\5\31\r" + + "\2\u1da8\u1da9\5/\30\2\u1da9\u0568\3\2\2\2\u1daa\u1dab\5\37\20\2\u1dab" + + "\u1dac\5%\23\2\u1dac\u1dad\5\25\13\2\u1dad\u1dae\5\31\r\2\u1dae\u1daf" + + "\5#\22\2\u1daf\u056a\3\2\2\2\u1db0\u1db1\5#\22\2\u1db1\u1db2\5%\23\2\u1db2" + + "\u1db3\5\37\20\2\u1db3\u1db4\5%\23\2\u1db4\u1db5\5\25\13\2\u1db5\u1db6" + + "\5\31\r\2\u1db6\u1db7\5#\22\2\u1db7\u056c\3\2\2\2\u1db8\u1db9\5+\26\2" + + "\u1db9\u1dba\5\21\t\2\u1dba\u1dbb\5\'\24\2\u1dbb\u1dbc\5\37\20\2\u1dbc" + + "\u1dbd\5\31\r\2\u1dbd\u1dbe\5\r\7\2\u1dbe\u1dbf\5\t\5\2\u1dbf\u1dc0\5" + + "/\30\2\u1dc0\u1dc1\5\31\r\2\u1dc1\u1dc2\5%\23\2\u1dc2\u1dc3\5#\22\2\u1dc3" + + "\u056e\3\2\2\2\u1dc4\u1dc5\5#\22\2\u1dc5\u1dc6\5%\23\2\u1dc6\u1dc7\5+" + + "\26\2\u1dc7\u1dc8\5\21\t\2\u1dc8\u1dc9\5\'\24\2\u1dc9\u1dca\5\37\20\2" + + "\u1dca\u1dcb\5\31\r\2\u1dcb\u1dcc\5\r\7\2\u1dcc\u1dcd\5\t\5\2\u1dcd\u1dce" + + "\5/\30\2\u1dce\u1dcf\5\31\r\2\u1dcf\u1dd0\5%\23\2\u1dd0\u1dd1\5#\22\2" + + "\u1dd1\u0570\3\2\2\2\u1dd2\u1dd3\5\13\6\2\u1dd3\u1dd4\59\35\2\u1dd4\u1dd5" + + "\5\'\24\2\u1dd5\u1dd6\5\t\5\2\u1dd6\u1dd7\5-\27\2\u1dd7\u1dd8\5-\27\2" + + "\u1dd8\u1dd9\5+\26\2\u1dd9\u1dda\5\37\20\2\u1dda\u1ddb\5-\27\2\u1ddb\u0572" + + "\3\2\2\2\u1ddc\u1ddd\5#\22\2\u1ddd\u1dde\5%\23\2\u1dde\u1ddf\5\13\6\2" + + "\u1ddf\u1de0\59\35\2\u1de0\u1de1\5\'\24\2\u1de1\u1de2\5\t\5\2\u1de2\u1de3" + + "\5-\27\2\u1de3\u1de4\5-\27\2\u1de4\u1de5\5+\26\2\u1de5\u1de6\5\37\20\2" + + "\u1de6\u1de7\5-\27\2\u1de7\u0574\3\2\2\2\u1de8\u1de9\5-\27\2\u1de9\u1dea" + + "\5\23\n\2\u1dea\u1deb\5\61\31\2\u1deb\u1dec\5#\22\2\u1dec\u1ded\5\r\7" + + "\2\u1ded\u0576\3\2\2\2\u1dee\u1def\5-\27\2\u1def\u1df0\5/\30\2\u1df0\u1df1" + + "\59\35\2\u1df1\u1df2\5\'\24\2\u1df2\u1df3\5\21\t\2\u1df3\u0578\3\2\2\2" + + "\u1df4\u1df5\5-\27\2\u1df5\u1df6\5-\27\2\u1df6\u1df7\5\'\24\2\u1df7\u1df8" + + "\5\t\5\2\u1df8\u1df9\5\r\7\2\u1df9\u1dfa\5\21\t\2\u1dfa\u057a\3\2\2\2" + + "\u1dfb\u1dfc\5\23\n\2\u1dfc\u1dfd\5\31\r\2\u1dfd\u1dfe\5#\22\2\u1dfe\u1dff" + + "\5\t\5\2\u1dff\u1e00\5\37\20\2\u1e00\u1e01\5\23\n\2\u1e01\u1e02\5\61\31" + + "\2\u1e02\u1e03\5#\22\2\u1e03\u1e04\5\r\7\2\u1e04\u057c\3\2\2\2\u1e05\u1e06" + + "\5\23\n\2\u1e06\u1e07\5\31\r\2\u1e07\u1e08\5#\22\2\u1e08\u1e09\5\t\5\2" + + "\u1e09\u1e0a\5\37\20\2\u1e0a\u1e0b\5\23\n\2\u1e0b\u1e0c\5\61\31\2\u1e0c" + + "\u1e0d\5#\22\2\u1e0d\u1e0e\5\r\7\2\u1e0e\u1e0f\7a\2\2\u1e0f\u1e10\5\21" + + "\t\2\u1e10\u1e11\5\67\34\2\u1e11\u1e12\5/\30\2\u1e12\u1e13\5+\26\2\u1e13" + + "\u1e14\5\t\5\2\u1e14\u057e\3\2\2\2\u1e15\u1e16\5\r\7\2\u1e16\u1e17\5%" + + "\23\2\u1e17\u1e18\5!\21\2\u1e18\u1e19\5\13\6\2\u1e19\u1e1a\5\31\r\2\u1e1a" + + "\u1e1b\5#\22\2\u1e1b\u1e1c\5\21\t\2\u1e1c\u1e1d\5\23\n\2\u1e1d\u1e1e\5" + + "\61\31\2\u1e1e\u1e1f\5#\22\2\u1e1f\u1e20\5\r\7\2\u1e20\u0580\3\2\2\2\u1e21" + + "\u1e22\5-\27\2\u1e22\u1e23\5\21\t"; + private static final String _serializedATNSegment3 = + "\2\u1e23\u1e24\5+\26\2\u1e24\u1e25\5\31\r\2\u1e25\u1e26\5\t\5\2\u1e26" + + "\u1e27\5\37\20\2\u1e27\u1e28\5\23\n\2\u1e28\u1e29\5\61\31\2\u1e29\u1e2a" + + "\5#\22\2\u1e2a\u1e2b\5\r\7\2\u1e2b\u0582\3\2\2\2\u1e2c\u1e2d\5\17\b\2" + + "\u1e2d\u1e2e\5\21\t\2\u1e2e\u1e2f\5-\27\2\u1e2f\u1e30\5\21\t\2\u1e30\u1e31" + + "\5+\26\2\u1e31\u1e32\5\31\r\2\u1e32\u1e33\5\t\5\2\u1e33\u1e34\5\37\20" + + "\2\u1e34\u1e35\5\23\n\2\u1e35\u1e36\5\61\31\2\u1e36\u1e37\5#\22\2\u1e37" + + "\u1e38\5\r\7\2\u1e38\u0584\3\2\2\2\u1e39\u1e3a\5\31\r\2\u1e3a\u1e3b\5" + + "#\22\2\u1e3b\u1e3c\5\31\r\2\u1e3c\u1e3d\5/\30\2\u1e3d\u1e3e\5\r\7\2\u1e3e" + + "\u1e3f\5%\23\2\u1e3f\u1e40\5#\22\2\u1e40\u1e41\5\17\b\2\u1e41\u0586\3" + + "\2\2\2\u1e42\u1e43\5!\21\2\u1e43\u1e44\5-\27\2\u1e44\u1e45\5\23\n\2\u1e45" + + "\u1e46\5\61\31\2\u1e46\u1e47\5#\22\2\u1e47\u1e48\5\r\7\2\u1e48\u0588\3" + + "\2\2\2\u1e49\u1e4a\5!\21\2\u1e4a\u1e4b\5\31\r\2\u1e4b\u1e4c\5#\22\2\u1e4c" + + "\u1e4d\5\63\32\2\u1e4d\u1e4e\5\23\n\2\u1e4e\u1e4f\5\61\31\2\u1e4f\u1e50" + + "\5#\22\2\u1e50\u1e51\5\r\7\2\u1e51\u058a\3\2\2\2\u1e52\u1e53\5!\21\2\u1e53" + + "\u1e54\5-\27\2\u1e54\u1e55\5/\30\2\u1e55\u1e56\59\35\2\u1e56\u1e57\5\'" + + "\24\2\u1e57\u1e58\5\21\t\2\u1e58\u058c\3\2\2\2\u1e59\u1e5a\5!\21\2\u1e5a" + + "\u1e5b\5-\27\2\u1e5b\u1e5c\5-\27\2\u1e5c\u1e5d\5\'\24\2\u1e5d\u1e5e\5" + + "\t\5\2\u1e5e\u1e5f\5\r\7\2\u1e5f\u1e60\5\21\t\2\u1e60\u058e\3\2\2\2\u1e61" + + "\u1e62\5!\21\2\u1e62\u1e63\5\23\n\2\u1e63\u1e64\5\31\r\2\u1e64\u1e65\5" + + "#\22\2\u1e65\u1e66\5\t\5\2\u1e66\u1e67\5\37\20\2\u1e67\u1e68\5\23\n\2" + + "\u1e68\u1e69\5\61\31\2\u1e69\u1e6a\5#\22\2\u1e6a\u1e6b\5\r\7\2\u1e6b\u0590" + + "\3\2\2\2\u1e6c\u1e6d\5!\21\2\u1e6d\u1e6e\5\23\n\2\u1e6e\u1e6f\5\31\r\2" + + "\u1e6f\u1e70\5#\22\2\u1e70\u1e71\5\t\5\2\u1e71\u1e72\5\37\20\2\u1e72\u1e73" + + "\5\23\n\2\u1e73\u1e74\5\61\31\2\u1e74\u1e75\5#\22\2\u1e75\u1e76\5\r\7" + + "\2\u1e76\u1e77\7a\2\2\u1e77\u1e78\5\21\t\2\u1e78\u1e79\5\67\34\2\u1e79" + + "\u1e7a\5/\30\2\u1e7a\u1e7b\5+\26\2\u1e7b\u1e7c\5\t\5\2\u1e7c\u0592\3\2" + + "\2\2\u1e7d\u1e7e\5!\21\2\u1e7e\u1e7f\5\31\r\2\u1e7f\u1e80\5#\22\2\u1e80" + + "\u1e81\5\31\r\2\u1e81\u1e82\5/\30\2\u1e82\u1e83\5\r\7\2\u1e83\u1e84\5" + + "%\23\2\u1e84\u1e85\5#\22\2\u1e85\u1e86\5\17\b\2\u1e86\u0594\3\2\2\2\u1e87" + + "\u1e88\5-\27\2\u1e88\u1e89\5%\23\2\u1e89\u1e8a\5+\26\2\u1e8a\u1e8b\5/" + + "\30\2\u1e8b\u1e8c\5%\23\2\u1e8c\u1e8d\5\'\24\2\u1e8d\u0596\3\2\2\2\u1e8e" + + "\u1e8f\5\'\24\2\u1e8f\u1e90\5\t\5\2\u1e90\u1e91\5+\26\2\u1e91\u1e92\5" + + "\t\5\2\u1e92\u1e93\5\37\20\2\u1e93\u1e94\5\37\20\2\u1e94\u1e95\5\21\t" + + "\2\u1e95\u1e96\5\37\20\2\u1e96\u0598\3\2\2\2\u1e97\u1e98\5\27\f\2\u1e98" + + "\u1e99\59\35\2\u1e99\u1e9a\5\'\24\2\u1e9a\u1e9b\5%\23\2\u1e9b\u1e9c\5" + + "/\30\2\u1e9c\u1e9d\5\27\f\2\u1e9d\u1e9e\5\21\t\2\u1e9e\u1e9f\5/\30\2\u1e9f" + + "\u1ea0\5\31\r\2\u1ea0\u1ea1\5\r\7\2\u1ea1\u1ea2\5\t\5\2\u1ea2\u1ea3\5" + + "\37\20\2\u1ea3\u059a\3\2\2\2\u1ea4\u1ea5\5-\27\2\u1ea5\u1ea6\5\t\5\2\u1ea6" + + "\u1ea7\5\23\n\2\u1ea7\u1ea8\5\21\t\2\u1ea8\u059c\3\2\2\2\u1ea9\u1eaa\5" + + "+\26\2\u1eaa\u1eab\5\21\t\2\u1eab\u1eac\5-\27\2\u1eac\u1ead\5/\30\2\u1ead" + + "\u1eae\5+\26\2\u1eae\u1eaf\5\31\r\2\u1eaf\u1eb0\5\r\7\2\u1eb0\u1eb1\5" + + "/\30\2\u1eb1\u1eb2\5\21\t\2\u1eb2\u1eb3\5\17\b\2\u1eb3\u059e\3\2\2\2\u1eb4" + + "\u1eb5\5\61\31\2\u1eb5\u1eb6\5#\22\2\u1eb6\u1eb7\5-\27\2\u1eb7\u1eb8\5" + + "\t\5\2\u1eb8\u1eb9\5\23\n\2\u1eb9\u1eba\5\21\t\2\u1eba\u05a0\3\2\2\2\u1ebb" + + "\u1ebc\5\13\6\2\u1ebc\u1ebd\5\t\5\2\u1ebd\u1ebe\5-\27\2\u1ebe\u1ebf\5" + + "\21\t\2\u1ebf\u1ec0\5/\30\2\u1ec0\u1ec1\59\35\2\u1ec1\u1ec2\5\'\24\2\u1ec2" + + "\u1ec3\5\21\t\2\u1ec3\u05a2\3\2\2\2\u1ec4\u1ec5\5\31\r\2\u1ec5\u1ec6\5" + + "\23\n\2\u1ec6\u05a4\3\2\2\2\u1ec7\u1ec8\5\37\20\2\u1ec8\u1ec9\5%\23\2" + + "\u1ec9\u1eca\5\r\7\2\u1eca\u1ecb\5\t\5\2\u1ecb\u1ecc\5\37\20\2\u1ecc\u1ecd" + + "\5\21\t\2\u1ecd\u05a6\3\2\2\2\u1ece\u1ecf\5\37\20\2\u1ecf\u1ed0\5\r\7" + + "\2\u1ed0\u1ed1\7a\2\2\u1ed1\u1ed2\5\r\7\2\u1ed2\u1ed3\5%\23\2\u1ed3\u1ed4" + + "\5\37\20\2\u1ed4\u1ed5\5\37\20\2\u1ed5\u1ed6\5\t\5\2\u1ed6\u1ed7\5/\30" + + "\2\u1ed7\u1ed8\5\21\t\2\u1ed8\u05a8\3\2\2\2\u1ed9\u1eda\5\37\20\2\u1eda" + + "\u1edb\5\r\7\2\u1edb\u1edc\7a\2\2\u1edc\u1edd\5\r\7\2\u1edd\u1ede\5/\30" + + "\2\u1ede\u1edf\59\35\2\u1edf\u1ee0\5\'\24\2\u1ee0\u1ee1\5\21\t\2\u1ee1" + + "\u05aa\3\2\2\2\u1ee2\u1ee3\5\'\24\2\u1ee3\u1ee4\5+\26\2\u1ee4\u1ee5\5" + + "%\23\2\u1ee5\u1ee6\5\63\32\2\u1ee6\u1ee7\5\31\r\2\u1ee7\u1ee8\5\17\b\2" + + "\u1ee8\u1ee9\5\21\t\2\u1ee9\u1eea\5+\26\2\u1eea\u05ac\3\2\2\2\u1eeb\u1eec" + + "\5\63\32\2\u1eec\u1eed\5\21\t\2\u1eed\u1eee\5+\26\2\u1eee\u1eef\5-\27" + + "\2\u1eef\u1ef0\5\31\r\2\u1ef0\u1ef1\5%\23\2\u1ef1\u1ef2\5#\22\2\u1ef2" + + "\u05ae\3\2\2\2\u1ef3\u1ef4\5\t\5\2\u1ef4\u1ef5\5\37\20\2\u1ef5\u1ef6\5" + + "\37\20\2\u1ef6\u1ef7\5%\23\2\u1ef7\u1ef8\5\65\33\2\u1ef8\u1ef9\7a\2\2" + + "\u1ef9\u1efa\5\r\7\2\u1efa\u1efb\5%\23\2\u1efb\u1efc\5#\22\2\u1efc\u1efd" + + "\5#\22\2\u1efd\u1efe\5\21\t\2\u1efe\u1eff\5\r\7\2\u1eff\u1f00\5/\30\2" + + "\u1f00\u1f01\5\31\r\2\u1f01\u1f02\5%\23\2\u1f02\u1f03\5#\22\2\u1f03\u1f04" + + "\5-\27\2\u1f04\u05b0\3\2\2\2\u1f05\u1f06\5\31\r\2\u1f06\u1f07\5-\27\2" + + "\u1f07\u1f08\7a\2\2\u1f08\u1f09\5/\30\2\u1f09\u1f0a\5\21\t\2\u1f0a\u1f0b" + + "\5!\21\2\u1f0b\u1f0c\5\'\24\2\u1f0c\u1f0d\5\37\20\2\u1f0d\u1f0e\5\t\5" + + "\2\u1f0e\u1f0f\5/\30\2\u1f0f\u1f10\5\21\t\2\u1f10\u05b2\3\2\2\2\u1f11" + + "\u1f12\5\21\t\2\u1f12\u1f13\5\63\32\2\u1f13\u1f14\5\21\t\2\u1f14\u1f15" + + "\5#\22\2\u1f15\u1f16\5/\30\2\u1f16\u05b4\3\2\2\2\u1f17\u1f18\5\65\33\2" + + "\u1f18\u1f19\5+\26\2\u1f19\u1f1a\5\t\5\2\u1f1a\u1f1b\5\'\24\2\u1f1b\u1f1c" + + "\5\'\24\2\u1f1c\u1f1d\5\21\t\2\u1f1d\u1f1e\5+\26\2\u1f1e\u05b6\3\2\2\2" + + "\u1f1f\u1f20\5-\27\2\u1f20\u1f21\5\21\t\2\u1f21\u1f22\5+\26\2\u1f22\u1f23" + + "\5\63\32\2\u1f23\u1f24\5\21\t\2\u1f24\u1f25\5+\26\2\u1f25\u05b8\3\2\2" + + "\2\u1f26\u1f27\5\13\6\2\u1f27\u1f28\5/\30\2\u1f28\u1f29\5+\26\2\u1f29" + + "\u1f2a\5\21\t\2\u1f2a\u1f2b\5\21\t\2\u1f2b\u05ba\3\2\2\2\u1f2c\u1f2d\5" + + "\27\f\2\u1f2d\u1f2e\5\t\5\2\u1f2e\u1f2f\5-\27\2\u1f2f\u1f30\5\27\f\2\u1f30" + + "\u05bc\3\2\2\2\u1f31\u1f32\5\25\13\2\u1f32\u1f33\5\31\r\2\u1f33\u1f34" + + "\5-\27\2\u1f34\u1f35\5/\30\2\u1f35\u05be\3\2\2\2\u1f36\u1f37\5-\27\2\u1f37" + + "\u1f38\5\'\24\2\u1f38\u1f39\5\25\13\2\u1f39\u1f3a\5\31\r\2\u1f3a\u1f3b" + + "\5-\27\2\u1f3b\u1f3c\5/\30\2\u1f3c\u05c0\3\2\2\2\u1f3d\u1f3e\5\25\13\2" + + "\u1f3e\u1f3f\5\31\r\2\u1f3f\u1f40\5#\22\2\u1f40\u05c2\3\2\2\2\u1f41\u1f42" + + "\5\13\6\2\u1f42\u1f43\5+\26\2\u1f43\u1f44\5\31\r\2\u1f44\u1f45\5#\22\2" + + "\u1f45\u05c4\3\2\2\2\u1f46\u1f47\5\r\7\2\u1f47\u1f48\5%\23\2\u1f48\u1f49" + + "\5#\22\2\u1f49\u1f4a\5\r\7\2\u1f4a\u1f4b\5\61\31\2\u1f4b\u1f4c\5+\26\2" + + "\u1f4c\u1f4d\5+\26\2\u1f4d\u1f4e\5\21\t\2\u1f4e\u1f4f\5#\22\2\u1f4f\u1f50" + + "\5/\30\2\u1f50\u1f51\5\37\20\2\u1f51\u1f52\59\35\2\u1f52\u05c6\3\2\2\2" + + "\u1f53\u1f54\5\31\r\2\u1f54\u1f55\5#\22\2\u1f55\u1f56\5\37\20\2\u1f56" + + "\u1f57\5\31\r\2\u1f57\u1f58\5#\22\2\u1f58\u1f59\5\21\t\2\u1f59\u05c8\3" + + "\2\2\2\u1f5a\u1f5b\5!\21\2\u1f5b\u1f5c\5\t\5\2\u1f5c\u1f5d\5/\30\2\u1f5d" + + "\u1f5e\5\21\t\2\u1f5e\u1f5f\5+\26\2\u1f5f\u1f60\5\31\r\2\u1f60\u1f61\5" + + "\t\5\2\u1f61\u1f62\5\37\20\2\u1f62\u1f63\5\31\r\2\u1f63\u1f64\5;\36\2" + + "\u1f64\u1f65\5\21\t\2\u1f65\u1f66\5\17\b\2\u1f66\u05ca\3\2\2\2\u1f67\u1f68" + + "\5\37\20\2\u1f68\u1f69\5\21\t\2\u1f69\u1f6a\5\23\n\2\u1f6a\u1f6b\5/\30" + + "\2\u1f6b\u1f6c\5\t\5\2\u1f6c\u1f6d\5+\26\2\u1f6d\u1f6e\5\25\13\2\u1f6e" + + "\u05cc\3\2\2\2\u1f6f\u1f70\5+\26\2\u1f70\u1f71\5\31\r\2\u1f71\u1f72\5" + + "\25\13\2\u1f72\u1f73\5\27\f\2\u1f73\u1f74\5/\30\2\u1f74\u1f75\5\t\5\2" + + "\u1f75\u1f76\5+\26\2\u1f76\u1f77\5\25\13\2\u1f77\u05ce\3\2\2\2\u1f78\u1f79" + + "\5\r\7\2\u1f79\u1f7a\5%\23\2\u1f7a\u1f7b\5!\21\2\u1f7b\u1f7c\5!\21\2\u1f7c" + + "\u1f7d\5\61\31\2\u1f7d\u1f7e\5/\30\2\u1f7e\u1f7f\5\t\5\2\u1f7f\u1f80\5" + + "/\30\2\u1f80\u1f81\5%\23\2\u1f81\u1f82\5+\26\2\u1f82\u05d0\3\2\2\2\u1f83" + + "\u1f84\5#\22\2\u1f84\u1f85\5\21\t\2\u1f85\u1f86\5\25\13\2\u1f86\u1f87" + + "\5\t\5\2\u1f87\u1f88\5/\30\2\u1f88\u1f89\5%\23\2\u1f89\u1f8a\5+\26\2\u1f8a" + + "\u05d2\3\2\2\2\u1f8b\u1f8c\5\27\f\2\u1f8c\u1f8d\5\t\5\2\u1f8d\u1f8e\5" + + "-\27\2\u1f8e\u1f8f\5\27\f\2\u1f8f\u1f90\5\21\t\2\u1f90\u1f91\5-\27\2\u1f91" + + "\u05d4\3\2\2\2\u1f92\u1f93\5!\21\2\u1f93\u1f94\5\21\t\2\u1f94\u1f95\5" + + "+\26\2\u1f95\u1f96\5\25\13\2\u1f96\u1f97\5\21\t\2\u1f97\u1f98\5-\27\2" + + "\u1f98\u05d6\3\2\2\2\u1f99\u1f9a\5\23\n\2\u1f9a\u1f9b\5\t\5\2\u1f9b\u1f9c" + + "\5!\21\2\u1f9c\u1f9d\5\31\r\2\u1f9d\u1f9e\5\37\20\2\u1f9e\u1f9f\59\35" + + "\2\u1f9f\u05d8\3\2\2\2\u1fa0\u1fa1\5\'\24\2\u1fa1\u1fa2\5%\23\2\u1fa2" + + "\u1fa3\5\37\20\2\u1fa3\u1fa4\5\31\r\2\u1fa4\u1fa5\5\r\7\2\u1fa5\u1fa6" + + "\59\35\2\u1fa6\u05da\3\2\2\2\u1fa7\u1fa8\5%\23\2\u1fa8\u1fa9\5\65\33\2" + + "\u1fa9\u1faa\5#\22\2\u1faa\u1fab\5\21\t\2\u1fab\u1fac\5\17\b\2\u1fac\u05dc" + + "\3\2\2\2\u1fad\u1fae\5\t\5\2\u1fae\u1faf\5\13\6\2\u1faf\u1fb0\5-\27\2" + + "\u1fb0\u1fb1\5/\30\2\u1fb1\u1fb2\5\31\r\2\u1fb2\u1fb3\5!\21\2\u1fb3\u1fb4" + + "\5\21\t\2\u1fb4\u05de\3\2\2\2\u1fb5\u1fb6\5\13\6\2\u1fb6\u1fb7\5\31\r" + + "\2\u1fb7\u1fb8\5\25\13\2\u1fb8\u1fb9\5-\27\2\u1fb9\u1fba\5\21\t\2\u1fba" + + "\u1fbb\5+\26\2\u1fbb\u1fbc\5\31\r\2\u1fbc\u1fbd\5\t\5\2\u1fbd\u1fbe\5" + + "\37\20\2\u1fbe\u05e0\3\2\2\2\u1fbf\u1fc0\5\13\6\2\u1fc0\u1fc1\5\31\r\2" + + "\u1fc1\u1fc2\5/\30\2\u1fc2\u1fc3\7\"\2\2\u1fc3\u1fc4\5\63\32\2\u1fc4\u1fc5" + + "\5\t\5\2\u1fc5\u1fc6\5+\26\2\u1fc6\u1fc7\59\35\2\u1fc7\u1fc8\5\31\r\2" + + "\u1fc8\u1fc9\5#\22\2\u1fc9\u1fca\5\25\13\2\u1fca\u05e2\3\2\2\2\u1fcb\u1fcc" + + "\5\13\6\2\u1fcc\u1fcd\5%\23\2\u1fcd\u1fce\5%\23\2\u1fce\u1fcf\5\37\20" + + "\2\u1fcf\u05e4\3\2\2\2\u1fd0\u1fd1\5\13\6\2\u1fd1\u1fd2\5%\23\2\u1fd2" + + "\u1fd3\5\67\34\2\u1fd3\u05e6\3\2\2\2\u1fd4\u1fd5\5\13\6\2\u1fd5\u1fd6" + + "\59\35\2\u1fd6\u1fd7\5/\30\2\u1fd7\u1fd8\5\21\t\2\u1fd8\u1fd9\5\t\5\2" + + "\u1fd9\u05e8\3\2\2\2\u1fda\u1fdb\5\r\7\2\u1fdb\u1fdc\5\27\f\2\u1fdc\u1fdd" + + "\5\t\5\2\u1fdd\u1fde\5+\26\2\u1fde\u1fdf\5\t\5\2\u1fdf\u1fe0\5\r\7\2\u1fe0" + + "\u1fe1\5/\30\2\u1fe1\u1fe2\5\21\t\2\u1fe2\u1fe3\5+\26\2\u1fe3\u1fe4\7" + + "\"\2\2\u1fe4\u1fe5\5\63\32\2\u1fe5\u1fe6\5\t\5\2\u1fe6\u1fe7\5+\26\2\u1fe7" + + "\u1fe8\59\35\2\u1fe8\u1fe9\5\31\r\2\u1fe9\u1fea\5#\22\2\u1fea\u1feb\5" + + "\25\13\2\u1feb\u05ea\3\2\2\2\u1fec\u1fed\5\r\7\2\u1fed\u1fee\5\31\r\2" + + "\u1fee\u1fef\5\17\b\2\u1fef\u1ff0\5+\26\2\u1ff0\u05ec\3\2\2\2\u1ff1\u1ff2" + + "\5\r\7\2\u1ff2\u1ff3\5\31\r\2\u1ff3\u1ff4\5+\26\2\u1ff4\u1ff5\5\r\7\2" + + "\u1ff5\u1ff6\5\37\20\2\u1ff6\u1ff7\5\21\t\2\u1ff7\u05ee\3\2\2\2\u1ff8" + + "\u1ff9\5\23\n\2\u1ff9\u1ffa\5\37\20\2\u1ffa\u1ffb\5%\23\2\u1ffb\u1ffc" + + "\5\t\5\2\u1ffc\u1ffd\5/\30\2\u1ffd\u1ffe\7\66\2\2\u1ffe\u05f0\3\2\2\2" + + "\u1fff\u2000\5\23\n\2\u2000\u2001\5\37\20\2\u2001\u2002\5%\23\2\u2002" + + "\u2003\5\t\5\2\u2003\u2004\5/\30\2\u2004\u2005\7:\2\2\u2005\u05f2\3\2" + + "\2\2\u2006\u2007\5\31\r\2\u2007\u2008\5#\22\2\u2008\u2009\5\21\t\2\u2009" + + "\u200a\5/\30\2\u200a\u05f4\3\2\2\2\u200b\u200c\5\31\r\2\u200c\u200d\5" + + "#\22\2\u200d\u200e\5/\30\2\u200e\u200f\7\64\2\2\u200f\u05f6\3\2\2\2\u2010" + + "\u2011\5\31\r\2\u2011\u2012\5#\22\2\u2012\u2013\5/\30\2\u2013\u2014\7" + + "\66\2\2\u2014\u05f8\3\2\2\2\u2015\u2016\5\31\r\2\u2016\u2017\5#\22\2\u2017" + + "\u2018\5/\30\2\u2018\u2019\7:\2\2\u2019\u05fa\3\2\2\2\u201a\u201b\5\33" + + "\16\2\u201b\u201c\5-\27\2\u201c\u201d\5%\23\2\u201d\u201e\5#\22\2\u201e" + + "\u05fc\3\2\2\2\u201f\u2020\5\33\16\2\u2020\u2021\5-\27\2\u2021\u2022\5" + + "%\23\2\u2022\u2023\5#\22\2\u2023\u2024\5\13\6\2\u2024\u05fe\3\2\2\2\u2025" + + "\u2026\5\37\20\2\u2026\u2027\5\31\r\2\u2027\u2028\5#\22\2\u2028\u2029" + + "\5\21\t\2\u2029\u0600\3\2\2\2\u202a\u202b\5\37\20\2\u202b\u202c\5-\27" + + "\2\u202c\u202d\5\21\t\2\u202d\u202e\5\25\13\2\u202e\u0602\3\2\2\2\u202f" + + "\u2030\5!\21\2\u2030\u2031\5\t\5\2\u2031\u2032\5\r\7\2\u2032\u2033\5\t" + + "\5\2\u2033\u2034\5\17\b\2\u2034\u2035\5\17\b\2\u2035\u2036\5+\26\2\u2036" + + "\u0604\3\2\2\2\u2037\u2038\5!\21\2\u2038\u2039\5\t\5\2\u2039\u203a\5\r" + + "\7\2\u203a\u203b\5\t\5\2\u203b\u203c\5\17\b\2\u203c\u203d\5\17\b\2\u203d" + + "\u203e\5+\26\2\u203e\u203f\7:\2\2\u203f\u0606\3\2\2\2\u2040\u2041\5!\21" + + "\2\u2041\u2042\5%\23\2\u2042\u2043\5#\22\2\u2043\u2044\5\21\t\2\u2044" + + "\u2045\59\35\2\u2045\u0608\3\2\2\2\u2046\u2047\5\'\24\2\u2047\u2048\5" + + "\25\13\2\u2048\u2049\7a\2\2\u2049\u204a\5\37\20\2\u204a\u204b\5-\27\2" + + "\u204b\u204c\5#\22\2\u204c\u060a\3\2\2\2\u204d\u204e\5\'\24\2\u204e\u204f" + + "\5%\23\2\u204f\u2050\5\31\r\2\u2050\u2051\5#\22\2\u2051\u2052\5/\30\2" + + "\u2052\u060c\3\2\2\2\u2053\u2054\5\'\24\2\u2054\u2055\5%\23\2\u2055\u2056" + + "\5\37\20\2\u2056\u2057\59\35\2\u2057\u2058\5\25\13\2\u2058\u2059\5%\23" + + "\2\u2059\u205a\5#\22\2\u205a\u060e\3\2\2\2\u205b\u205c\5+\26\2\u205c\u205d" + + "\5\21\t\2\u205d\u205e\5\37\20\2\u205e\u205f\5/\30\2\u205f\u2060\5\31\r" + + "\2\u2060\u2061\5!\21\2\u2061\u2062\5\21\t\2\u2062\u0610\3\2\2\2\u2063" + + "\u2064\5-\27\2\u2064\u2065\5\21\t\2\u2065\u2066\5+\26\2\u2066\u2067\5" + + "\31\r\2\u2067\u2068\5\t\5\2\u2068\u2069\5\37\20\2\u2069\u0612\3\2\2\2" + + "\u206a\u206b\5-\27\2\u206b\u206c\5\21\t\2\u206c\u206d\5+\26\2\u206d\u206e" + + "\5\31\r\2\u206e\u206f\5\t\5\2\u206f\u2070\5\37\20\2\u2070\u2071\7\64\2" + + "\2\u2071\u0614\3\2\2\2\u2072\u2073\5-\27\2\u2073\u2074\5\21\t\2\u2074" + + "\u2075\5+\26\2\u2075\u2076\5\31\r\2\u2076\u2077\5\t\5\2\u2077\u2078\5" + + "\37\20\2\u2078\u2079\7\66\2\2\u2079\u0616\3\2\2\2\u207a\u207b\5-\27\2" + + "\u207b\u207c\5\21\t\2\u207c\u207d\5+\26\2\u207d\u207e\5\31\r\2\u207e\u207f" + + "\5\t\5\2\u207f\u2080\5\37\20\2\u2080\u2081\7:\2\2\u2081\u0618\3\2\2\2" + + "\u2082\u2083\5-\27\2\u2083\u2084\5!\21\2\u2084\u2085\5\t\5\2\u2085\u2086" + + "\5\37\20\2\u2086\u2087\5\37\20\2\u2087\u2088\5-\27\2\u2088\u2089\5\21" + + "\t\2\u2089\u208a\5+\26\2\u208a\u208b\5\31\r\2\u208b\u208c\5\t\5\2\u208c" + + "\u208d\5\37\20\2\u208d\u061a\3\2\2\2\u208e\u208f\5-\27\2\u208f\u2090\5" + + "/\30\2\u2090\u2091\5-\27\2\u2091\u2092\5/\30\2\u2092\u2093\5\21\t\2\u2093" + + "\u2094\5!\21\2\u2094\u061c\3\2\2\2\u2095\u2096\5/\30\2\u2096\u2097\5\21" + + "\t\2\u2097\u2098\5\67\34\2\u2098\u2099\5/\30\2\u2099\u061e\3\2\2\2\u209a" + + "\u209b\5/\30\2\u209b\u209c\5\31\r\2\u209c\u209d\5!\21\2\u209d\u209e\5" + + "\21\t\2\u209e\u209f\5-\27\2\u209f\u20a0\5/\30\2\u20a0\u20a1\5\t\5\2\u20a1" + + "\u20a2\5!\21\2\u20a2\u20a3\5\'\24\2\u20a3\u20a4\5/\30\2\u20a4\u20a5\5" + + ";\36\2\u20a5\u0620\3\2\2\2\u20a6\u20a7\5/\30\2\u20a7\u20a8\5\31\r\2\u20a8" + + "\u20a9\5!\21\2\u20a9\u20aa\5\21\t\2\u20aa\u20ab\5/\30\2\u20ab\u20ac\5" + + ";\36\2\u20ac\u0622\3\2\2\2\u20ad\u20ae\5/\30\2\u20ae\u20af\5-\27\2\u20af" + + "\u20b0\5)\25\2\u20b0\u20b1\5\61\31\2\u20b1\u20b2\5\21\t\2\u20b2\u20b3" + + "\5+\26\2\u20b3\u20b4\59\35\2\u20b4\u0624\3\2\2\2\u20b5\u20b6\5/\30\2\u20b6" + + "\u20b7\5-\27\2\u20b7\u20b8\5\63\32\2\u20b8\u20b9\5\21\t\2\u20b9\u20ba" + + "\5\r\7\2\u20ba\u20bb\5/\30\2\u20bb\u20bc\5%\23\2\u20bc\u20bd\5+\26\2\u20bd" + + "\u0626\3\2\2\2\u20be\u20bf\5/\30\2\u20bf\u20c0\5\67\34\2\u20c0\u20c1\5" + + "\31\r\2\u20c1\u20c2\5\17\b\2\u20c2\u20c3\7a\2\2\u20c3\u20c4\5-\27\2\u20c4" + + "\u20c5\5#\22\2\u20c5\u20c6\5\t\5\2\u20c6\u20c7\5\'\24\2\u20c7\u20c8\5" + + "-\27\2\u20c8\u20c9\5\27\f\2\u20c9\u20ca\5%\23\2\u20ca\u20cb\5/\30\2\u20cb" + + "\u0628\3\2\2\2\u20cc\u20cd\5\61\31\2\u20cd\u20ce\5\61\31\2\u20ce\u20cf" + + "\5\31\r\2\u20cf\u20d0\5\17\b\2\u20d0\u062a\3\2\2\2\u20d1\u20d2\5\63\32" + + "\2\u20d2\u20d3\5\t\5\2\u20d3\u20d4\5+\26\2\u20d4\u20d5\5\13\6\2\u20d5" + + "\u20d6\5\31\r\2\u20d6\u20d7\5/\30\2\u20d7\u062c\3\2\2\2\u20d8\u20d9\5" + + "\67\34\2\u20d9\u20da\5!\21\2\u20da\u20db\5\37\20\2\u20db\u062e\3\2\2\2" + + "\u20dc\u20dd\7.\2\2\u20dd\u0630\3\2\2\2\u20de\u20df\7<\2\2\u20df\u0632" + + "\3\2\2\2\u20e0\u20e1\7<\2\2\u20e1\u20e2\7<\2\2\u20e2\u0634\3\2\2\2\u20e3" + + "\u20e4\7&\2\2\u20e4\u0636\3\2\2\2\u20e5\u20e6\7&\2\2\u20e6\u20e7\7&\2" + + "\2\u20e7\u0638\3\2\2\2\u20e8\u20e9\7,\2\2\u20e9\u063a\3\2\2\2\u20ea\u20eb" + + "\7*\2\2\u20eb\u063c\3\2\2\2\u20ec\u20ed\7+\2\2\u20ed\u063e\3\2\2\2\u20ee" + + "\u20ef\7]\2\2\u20ef\u0640\3\2\2\2\u20f0\u20f1\7_\2\2\u20f1\u0642\3\2\2" + + "\2\u20f2\u20f3\5\13\6\2\u20f3\u20f7\7)\2\2\u20f4\u20f6\4\62\63\2\u20f5" + + "\u20f4\3\2\2\2\u20f6\u20f9\3\2\2\2\u20f7\u20f5\3\2\2\2\u20f7\u20f8\3\2" + + "\2\2\u20f8\u20fa\3\2\2\2\u20f9\u20f7\3\2\2\2\u20fa\u20fb\7)\2\2\u20fb" + + "\u0644\3\2\2\2\u20fc\u20fd\5\21\t\2\u20fd\u20fe\5C\"\2\u20fe\u0646\3\2" + + "\2\2\u20ff\u2101\7/\2\2\u2100\u20ff\3\2\2\2\u2100\u2101\3\2\2\2\u2101" + + "\u2103\3\2\2\2\u2102\u2104\5? \2\u2103\u2102\3\2\2\2\u2104\u2105\3\2\2" + + "\2\u2105\u2103\3\2\2\2\u2105\u2106\3\2\2\2\u2106\u2107\3\2\2\2\u2107\u2109" + + "\7\60\2\2\u2108\u210a\5? \2\u2109\u2108\3\2\2\2\u210a\u210b\3\2\2\2\u210b" + + "\u2109\3\2\2\2\u210b\u210c\3\2\2\2\u210c\u2119\3\2\2\2\u210d\u2111\5\21" + + "\t\2\u210e\u2110\7/\2\2\u210f\u210e\3\2\2\2\u2110\u2113\3\2\2\2\u2111" + + "\u210f\3\2\2\2\u2111\u2112\3\2\2\2\u2112\u2115\3\2\2\2\u2113\u2111\3\2" + + "\2\2\u2114\u2116\5? \2\u2115\u2114\3\2\2\2\u2116\u2117\3\2\2\2\u2117\u2115" + + "\3\2\2\2\u2117\u2118\3\2\2\2\u2118\u211a\3\2\2\2\u2119\u210d\3\2\2\2\u2119" + + "\u211a\3\2\2\2\u211a\u0648\3\2\2\2\u211b\u211d\7/\2\2\u211c\u211b\3\2" + + "\2\2\u211c\u211d\3\2\2\2\u211d\u211f\3\2\2\2\u211e\u2120\5? \2\u211f\u211e" + + "\3\2\2\2\u2120\u2121\3\2\2\2\u2121\u211f\3\2\2\2\u2121\u2122\3\2\2\2\u2122" + + "\u2129\3\2\2\2\u2123\u2125\5\21\t\2\u2124\u2126\5? \2\u2125\u2124\3\2" + + "\2\2\u2126\u2127\3\2\2\2\u2127\u2125\3\2\2\2\u2127\u2128\3\2\2\2\u2128" + + "\u212a\3\2\2\2\u2129\u2123\3\2\2\2\u2129\u212a\3\2\2\2\u212a\u064a\3\2" + + "\2\2\u212b\u212c\7z\2\2\u212c\u212d\5C\"\2\u212d\u064c\3\2\2\2\u212e\u212f" + + "\7\60\2\2\u212f\u064e\3\2\2\2\u2130\u2131\5C\"\2\u2131\u0650\3\2\2\2\u2132" + + "\u2133\5A!\2\u2133\u0652\3\2\2\2\u2134\u2138\t\"\2\2\u2135\u2137\t#\2" + + "\2\u2136\u2135\3\2\2\2\u2137\u213a\3\2\2\2\u2138\u2136\3\2\2\2\u2138\u2139" + + "\3\2\2\2\u2139\u0654\3\2\2\2\u213a\u2138\3\2\2\2\u213b\u213d\7&\2\2\u213c" + + "\u213e\5? \2\u213d\u213c\3\2\2\2\u213e\u213f\3\2\2\2\u213f\u213d\3\2\2" + + "\2\u213f\u2140\3\2\2\2\u2140\u0656\3\2\2\2\u2141\u2145\t$\2\2\u2142\u2144" + + "\t%\2\2\u2143\u2142\3\2\2\2\u2144\u2147\3\2\2\2\u2145\u2143\3\2\2\2\u2145" + + "\u2146\3\2\2\2\u2146\u0658\3\2\2\2\u2147\u2145\3\2\2\2\u2148\u2149\7(" + + "\2\2\u2149\u065a\3\2\2\2\u214a\u214b\7(\2\2\u214b\u214c\7(\2\2\u214c\u065c" + + "\3\2\2\2\u214d\u214e\7(\2\2\u214e\u214f\7>\2\2\u214f\u065e\3\2\2\2\u2150" + + "\u2151\7B\2\2\u2151\u2152\7B\2\2\u2152\u0660\3\2\2\2\u2153\u2154\7B\2" + + "\2\u2154\u2155\7@\2\2\u2155\u0662\3\2\2\2\u2156\u2157\7B\2\2\u2157\u0664" + + "\3\2\2\2\u2158\u2159\7#\2\2\u2159\u0666\3\2\2\2\u215a\u215b\7#\2\2\u215b" + + "\u215c\7#\2\2\u215c\u0668\3\2\2\2\u215d\u215e\7#\2\2\u215e\u215f\7?\2" + + "\2\u215f\u066a\3\2\2\2\u2160\u2161\7`\2\2\u2161\u066c\3\2\2\2\u2162\u2163" + + "\7?\2\2\u2163\u066e\3\2\2\2\u2164\u2165\7?\2\2\u2165\u2166\7@\2\2\u2166" + + "\u0670\3\2\2\2\u2167\u2168\7@\2\2\u2168\u0672\3\2\2\2\u2169\u216a\7@\2" + + "\2\u216a\u216b\7?\2\2\u216b\u0674\3\2\2\2\u216c\u216d\7@\2\2\u216d\u216e" + + "\7@\2\2\u216e\u0676\3\2\2\2\u216f\u2170\7%\2\2\u2170\u0678\3\2\2\2\u2171" + + "\u2172\7%\2\2\u2172\u2173\7?\2\2\u2173\u067a\3\2\2\2\u2174\u2175\7%\2" + + "\2\u2175\u2176\7@\2\2\u2176\u067c\3\2\2\2\u2177\u2178\7%\2\2\u2178\u2179" + + "\7@\2\2\u2179\u217a\7@\2\2\u217a\u067e\3\2\2\2\u217b\u217c\7%\2\2\u217c" + + "\u217d\7%\2\2\u217d\u0680\3\2\2\2\u217e\u217f\7/\2\2\u217f\u2180\7@\2" + + "\2\u2180\u0682\3\2\2\2\u2181\u2182\7/\2\2\u2182\u2183\7@\2\2\u2183\u2184" + + "\7@\2\2\u2184\u0684\3\2\2\2\u2185\u2186\7/\2\2\u2186\u2187\7~\2\2\u2187" + + "\u2188\7/\2\2\u2188\u0686\3\2\2\2\u2189\u218a\7>\2\2\u218a\u0688\3\2\2" + + "\2\u218b\u218c\7>\2\2\u218c\u218d\7?\2\2\u218d\u068a\3\2\2\2\u218e\u218f" + + "\7>\2\2\u218f\u2190\7B\2\2\u2190\u068c\3\2\2\2\u2191\u2192\7>\2\2\u2192" + + "\u2193\7`\2\2\u2193\u068e\3\2\2\2\u2194\u2195\7>\2\2\u2195\u2196\7@\2" + + "\2\u2196\u0690\3\2\2\2\u2197\u2198\7>\2\2\u2198\u2199\7/\2\2\u2199\u219a" + + "\7@\2\2\u219a\u0692\3\2\2\2\u219b\u219c\7>\2\2\u219c\u219d\7>\2\2\u219d" + + "\u0694\3\2\2\2\u219e\u219f\7>\2\2\u219f\u21a0\7>\2\2\u21a0\u21a1\7?\2" + + "\2\u21a1\u0696\3\2\2\2\u21a2\u21a3\7>\2\2\u21a3\u21a4\7A\2\2\u21a4\u21a5" + + "\7@\2\2\u21a5\u0698\3\2\2\2\u21a6\u21a7\7/\2\2\u21a7\u069a\3\2\2\2\u21a8" + + "\u21a9\7\'\2\2\u21a9\u069c\3\2\2\2\u21aa\u21ab\7~\2\2\u21ab\u069e\3\2" + + "\2\2\u21ac\u21ad\7~\2\2\u21ad\u21ae\7~\2\2\u21ae\u06a0\3\2\2\2\u21af\u21b0" + + "\7~\2\2\u21b0\u21b1\7~\2\2\u21b1\u21b2\7\61\2\2\u21b2\u06a2\3\2\2\2\u21b3" + + "\u21b4\7~\2\2\u21b4\u21b5\7\61\2\2\u21b5\u06a4\3\2\2\2\u21b6\u21b7\7-" + + "\2\2\u21b7\u06a6\3\2\2\2\u21b8\u21b9\7A\2\2\u21b9\u06a8\3\2\2\2\u21ba" + + "\u21bb\7A\2\2\u21bb\u21bc\7(\2\2\u21bc\u06aa\3\2\2\2\u21bd\u21be\7A\2" + + "\2\u21be\u21bf\7%\2\2\u21bf\u06ac\3\2\2\2\u21c0\u21c1\7A\2\2\u21c1\u21c2" + + "\7/\2\2\u21c2\u06ae\3\2\2\2\u21c3\u21c4\7A\2\2\u21c4\u21c5\7~\2\2\u21c5" + + "\u06b0\3\2\2\2\u21c6\u21c7\7\61\2\2\u21c7\u06b2\3\2\2\2\u21c8\u21c9\7" + + "\u0080\2\2\u21c9\u06b4\3\2\2\2\u21ca\u21cb\7\u0080\2\2\u21cb\u21cc\7?" + + "\2\2\u21cc\u06b6\3\2\2\2\u21cd\u21ce\7\u0080\2\2\u21ce\u21cf\7@\2\2\u21cf" + + "\u21d0\7?\2\2\u21d0\u21d1\7\u0080\2\2\u21d1\u06b8\3\2\2\2\u21d2\u21d3" + + "\7\u0080\2\2\u21d3\u21d4\7@\2\2\u21d4\u21d5\7\u0080\2\2\u21d5\u06ba\3" + + "\2\2\2\u21d6\u21d7\7\u0080\2\2\u21d7\u21d8\7>\2\2\u21d8\u21d9\7?\2\2\u21d9" + + "\u21da\7\u0080\2\2\u21da\u06bc\3\2\2\2\u21db\u21dc\7\u0080\2\2\u21dc\u21dd" + + "\7>\2\2\u21dd\u21de\7\u0080\2\2\u21de\u06be\3\2\2\2\u21df\u21e0\7\u0080" + + "\2\2\u21e0\u21e1\7,\2\2\u21e1\u06c0\3\2\2\2\u21e2\u21e3\7\u0080\2\2\u21e3" + + "\u21e4\7\u0080\2\2\u21e4\u06c2\3\2\2\2\u21e5\u21e6\7=\2\2\u21e6\u06c4" + + "\3\2\2\2\32\2\u06c8\u06d2\u06e0\u0725\u0727\u0732\u0734\u073f\u0741\u20f7" + + "\u2100\u2105\u210b\u2111\u2117\u2119\u211c\u2121\u2127\u2129\u2138\u213f" + + "\u2145\4\b\2\2\2\3\2"; + public static final String _serializedATN = Utils.join( + new String[]{ + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2, + _serializedATNSegment3 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java new file mode 100644 index 0000000..85dad9c --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java @@ -0,0 +1,58927 @@ +// Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.pg; + +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.ATN; +import org.antlr.v4.runtime.atn.ATNDeserializer; +import org.antlr.v4.runtime.atn.ParserATNSimulator; +import org.antlr.v4.runtime.atn.PredictionContextCache; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.Utils; +import org.antlr.v4.runtime.tree.ParseTreeListener; +import org.antlr.v4.runtime.tree.ParseTreeVisitor; +import org.antlr.v4.runtime.tree.TerminalNode; + +import java.util.List; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class PostgreSQLParser extends Parser { + static { + RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); + } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + WHITESPACE = 1, BLOCK_COMMENT = 2, LINE_COMMENT = 3, A_ = 4, ABORT = 5, ABS = 6, ABSOLUTE = 7, + ACCESS = 8, ACTION = 9, ADA = 10, ADD = 11, ADMIN = 12, AFTER = 13, AGGREGATE = 14, + ALIAS = 15, ALL = 16, ALLOCATE = 17, ALSO = 18, ALTER = 19, ALWAYS = 20, ANALYSE = 21, + ANALYZE = 22, AND = 23, ANY = 24, ARE = 25, ARRAY = 26, AS = 27, ASC = 28, ASENSITIVE = 29, + ASSERTION = 30, ASSIGNMENT = 31, ASYMMETRIC = 32, AT = 33, ATOMIC = 34, ATTRIBUTE = 35, + ATTRIBUTES = 36, AUTHORIZATION = 37, AVG = 38, BACKWARD = 39, BEFORE = 40, BEGIN = 41, + BERNOULLI = 42, BETWEEN = 43, BIGINT = 44, BINARY = 45, BIT = 46, BIT_LENGTH = 47, + BITVAR = 48, BLOB = 49, BOOLEAN = 50, BOTH = 51, BREADTH = 52, BUFFERS = 53, BY = 54, + C_ = 55, CACHE = 56, CALL = 57, CALLED = 58, CARDINALITY = 59, CASCADE = 60, CASCADED = 61, + CASE = 62, CAST = 63, CATALOG = 64, CATALOG_NAME = 65, CEIL = 66, CEILING = 67, CHAIN = 68, + CHAR = 69, CHAR_LENGTH = 70, CHARACTER = 71, CHARACTER_LENGTH = 72, CHARACTER_SET_CATALOG = 73, + CHARACTER_SET_NAME = 74, CHARACTER_SET_SCHEMA = 75, CHARACTERISTICS = 76, CHARACTERS = 77, + CHECK = 78, CHECKED = 79, CHECKPOINT = 80, CLASS = 81, CLASS_ORIGIN = 82, CLOB = 83, + CLOSE = 84, CLUSTER = 85, COALESCE = 86, COBOL = 87, COLLATE = 88, COLLATION = 89, + COLLATION_CATALOG = 90, COLLATION_NAME = 91, COLLATION_SCHEMA = 92, COLLECT = 93, + COLUMN = 94, COLUMN_NAME = 95, COMMAND_FUNCTION = 96, COMMAND_FUNCTION_CODE = 97, + COMMENT = 98, COMMIT = 99, COMMITTED = 100, COMPLETION = 101, CONDITION = 102, CONDITION_NUMBER = 103, + CONFIGURATION = 104, CONFLICT = 105, CONNECT = 106, CONNECTION = 107, CONNECTION_NAME = 108, + CONSTRAINT = 109, CONSTRAINT_CATALOG = 110, CONSTRAINT_NAME = 111, CONSTRAINT_SCHEMA = 112, + CONSTRAINTS = 113, CONSTRUCTOR = 114, CONTAINS = 115, CONTINUE = 116, CONVERSION = 117, + CONVERT = 118, COPY = 119, CORR = 120, CORRESPONDING = 121, COSTS = 122, COUNT = 123, + COVAR_POP = 124, COVAR_SAMP = 125, CREATE = 126, CREATEDB = 127, CREATEUSER = 128, + CROSS = 129, CSV = 130, CUBE = 131, CUME_DIST = 132, CURRENT = 133, CURRENT_DATE = 134, + CURRENT_DEFAULT_TRANSFORM_GROUP = 135, CURRENT_PATH = 136, CURRENT_ROLE = 137, + CURRENT_TIME = 138, CURRENT_TIMESTAMP = 139, CURRENT_TRANSFORM_GROUP_FOR_TYPE = 140, + CURRENT_USER = 141, CURSOR = 142, CURSOR_NAME = 143, CYCLE = 144, DATA = 145, DATABASE = 146, + DATE = 147, DATETIME_INTERVAL_CODE = 148, DATETIME_INTERVAL_PRECISION = 149, + DAY = 150, DEALLOCATE = 151, DEC = 152, DECIMAL = 153, DECLARE = 154, DEFAULT = 155, + DEFAULTS = 156, DEFERABLE = 157, DEFERRABLE = 158, DEFERRED = 159, DEFINED = 160, + DEFINER = 161, DEGREE = 162, DELETE = 163, DELIMITER = 164, DELIMITERS = 165, DENSE_RANK = 166, + DEPENDS = 167, DEPTH = 168, DEREF = 169, DERIVED = 170, DESC = 171, DESCRIBE = 172, + DESCRIPTOR = 173, DESTROY = 174, DESTRUCTOR = 175, DETERMINISTIC = 176, DIAGNOSTICS = 177, + DICTIONARY = 178, DISABLE = 179, DISABLE_PAGE_SKIPPING = 180, DISCARD = 181, DISCONNECT = 182, + DISPATCH = 183, DISTINCT = 184, DO = 185, DOMAIN = 186, DOUBLE = 187, DROP = 188, + DYNAMIC = 189, DYNAMIC_FUNCTION = 190, DYNAMIC_FUNCTION_CODE = 191, EACH = 192, + ELEMENT = 193, ELSE = 194, ENABLE = 195, ENCODING = 196, ENCRYPTED = 197, END = 198, + END_EXEC = 199, EQUALS = 200, ESCAPE = 201, EVERY = 202, EXCEPT = 203, EXCEPTION = 204, + EXCLUDE = 205, EXCLUDING = 206, EXCLUSIVE = 207, EXEC = 208, EXECUTE = 209, EXISTING = 210, + EXISTS = 211, EXP = 212, EXPLAIN = 213, EXTENDED = 214, EXTENSION = 215, EXTERNAL = 216, + EXTRACT = 217, FALSE = 218, FETCH = 219, FIELDS = 220, FILTER = 221, FINAL = 222, + FIRST = 223, FLOAT = 224, FLOOR = 225, FOLLOWING = 226, FOR = 227, FORCE = 228, FOREIGN = 229, + FORMAT = 230, FORTRAN = 231, FORWARD = 232, FOUND = 233, FREE = 234, FREEZE = 235, + FROM = 236, FULL = 237, FUNCTION = 238, FUSION = 239, G_ = 240, GENERAL = 241, GENERATED = 242, + GET = 243, GLOBAL = 244, GO = 245, GOTO = 246, GRANT = 247, GRANTED = 248, GREATEST = 249, + GROUP = 250, GROUPING = 251, HANDLER = 252, HAVING = 253, HIERARCHY = 254, HOLD = 255, + HOST = 256, HOUR = 257, IDENTITY = 258, IGNORE = 259, ILIKE = 260, IMMEDIATE = 261, + IMMUTABLE = 262, IMPLEMENTATION = 263, IMPLICIT = 264, IN = 265, INCLUDING = 266, + INCREMENT = 267, INDEX = 268, INDICATOR = 269, INFIX = 270, INHERITS = 271, INITIALIZE = 272, + INITIALLY = 273, INNER = 274, INOUT = 275, INPUT = 276, INSENSITIVE = 277, INSERT = 278, + INSTANCE = 279, INSTANTIABLE = 280, INSTEAD = 281, INT = 282, INTEGER = 283, INTERSECT = 284, + INTERSECTION = 285, INTERVAL = 286, INTO = 287, INVOKER = 288, IS = 289, ISOLATION = 290, + ITERATE = 291, JOIN = 292, K_ = 293, KEY = 294, KEY_MEMBER = 295, KEY_TYPE = 296, + LABEL = 297, LANCOMPILER = 298, LANGUAGE = 299, LARGE = 300, LAST = 301, LATERAL = 302, + LEADING = 303, LEAST = 304, LEFT = 305, LENGTH = 306, LESS = 307, LEVEL = 308, LIKE = 309, + LIMIT = 310, LISTEN = 311, LN = 312, LOAD = 313, LOCAL = 314, LOCALTIME = 315, LOCALTIMESTAMP = 316, + LOCATION = 317, LOCATOR = 318, LOCK = 319, LOCKED = 320, LOWER = 321, M_ = 322, MAIN = 323, + MAP = 324, MAPPING = 325, MATCH = 326, MATCH_SIMPLE = 327, MATCHED = 328, MAX = 329, + MAXVALUE = 330, MEMBER = 331, MERGE = 332, MESSAGE_LENGTH = 333, MESSAGE_OCTET_LENGTH = 334, + MESSAGE_TEXT = 335, METHOD = 336, MIN = 337, MINUTE = 338, MINVALUE = 339, MOD = 340, + MODE = 341, MODIFIES = 342, MODIFY = 343, MODULE = 344, MONTH = 345, MORE_ = 346, + MOVE = 347, MULTISET = 348, MUMPS = 349, NAME = 350, NAMES = 351, NATIONAL = 352, + NATURAL = 353, NCHAR = 354, NCLOB = 355, NESTING = 356, NEW = 357, NEXT = 358, NO = 359, + NOCREATEDB = 360, NOCREATEUSER = 361, NONE = 362, NORMALIZE = 363, NORMALIZED = 364, + NOT = 365, NOTHING = 366, NOTIFY = 367, NOTNULL = 368, NOWAIT = 369, NULL = 370, NULLABLE = 371, + NULLIF = 372, NULLS = 373, NUMBER = 374, NUMERIC = 375, OBJECT = 376, OCTET_LENGTH = 377, + OCTETS = 378, OF = 379, OFF = 380, OFFSET = 381, OIDS = 382, OLD = 383, ON = 384, ONLY = 385, + OPEN = 386, OPERATION = 387, OPERATOR = 388, OPTION = 389, OPTIONS = 390, OR = 391, + ORDER = 392, ORDERING = 393, ORDINALITY = 394, OTHERS = 395, OUT = 396, OUTER = 397, + OUTPUT = 398, OVER = 399, OVERLAPS = 400, OVERLAY = 401, OVERRIDING = 402, OWNER = 403, + PAD = 404, PARAMETER = 405, PARAMETER_MODE = 406, PARAMETER_NAME = 407, PARAMETER_ORDINAL_POSITION = 408, + PARAMETER_SPECIFIC_CATALOG = 409, PARAMETER_SPECIFIC_NAME = 410, PARAMETER_SPECIFIC_SCHEMA = 411, + PARAMETERS = 412, PARSER = 413, PARTIAL = 414, PARTITION = 415, PASCAL = 416, PASSWORD = 417, + PATH = 418, PERCENT_RANK = 419, PERCENTILE_CONT = 420, PERCENTILE_DISC = 421, + PLACING = 422, PLAIN = 423, PLANS = 424, PLI = 425, POSITION = 426, POSTFIX = 427, + POWER = 428, PRECEDING = 429, PRECISION = 430, PREFIX = 431, PREORDER = 432, PREPARE = 433, + PREPARED = 434, PRESERVE = 435, PRIMARY = 436, PRIOR = 437, PRIVILEGES = 438, PROCEDURAL = 439, + PROCEDURE = 440, PUBLIC = 441, PUBLICATION = 442, QUOTE = 443, RANGE = 444, RANK = 445, + READ = 446, READS = 447, REAL = 448, REASSIGN = 449, RECHECK = 450, RECURSIVE = 451, + REF = 452, REFERENCES = 453, REFERENCING = 454, REFRESH = 455, REGR_AVGX = 456, + REGR_AVGY = 457, REGR_COUNT = 458, REGR_INTERCEPT = 459, REGR_R2 = 460, REGR_SLOPE = 461, + REGR_SXX = 462, REGR_SXY = 463, REGR_SYY = 464, REINDEX = 465, RELATIVE = 466, RELEASE = 467, + RENAME = 468, REPEATABLE = 469, REPLACE = 470, REPLICA = 471, RESET = 472, RESTART = 473, + RESTRICT = 474, RESULT = 475, RETURN = 476, RETURNED_CARDINALITY = 477, RETURNED_LENGTH = 478, + RETURNED_OCTET_LENGTH = 479, RETURNED_SQLSTATE = 480, RETURNING = 481, RETURNS = 482, + REVOKE = 483, RIGHT = 484, ROLE = 485, ROLLBACK = 486, ROLLUP = 487, ROUTINE = 488, + ROUTINE_CATALOG = 489, ROUTINE_NAME = 490, ROUTINE_SCHEMA = 491, ROW = 492, ROW_COUNT = 493, + ROW_NUMBER = 494, ROWS = 495, RULE = 496, SAVEPOINT = 497, SCALE = 498, SCHEMA = 499, + SCHEMA_NAME = 500, SCOPE = 501, SCOPE_CATALOG = 502, SCOPE_NAME = 503, SCOPE_SCHEMA = 504, + SCROLL = 505, SEARCH = 506, SECOND = 507, SECTION = 508, SECURITY = 509, SELECT = 510, + SELF = 511, SENSITIVE = 512, SEQUENCE = 513, SEQUENCES = 514, SERIALIZABLE = 515, + SERVER_NAME = 516, SESSION = 517, SESSION_USER = 518, SET = 519, SETOF = 520, SETS = 521, + SHARE = 522, SHOW = 523, SIMILAR = 524, SIMPLE = 525, SIZE = 526, SKIP_ = 527, SMALLINT = 528, + SNAPSHOT = 529, SOME = 530, SOURCE = 531, SPACE = 532, SPECIFIC = 533, SPECIFIC_NAME = 534, + SPECIFICTYPE = 535, SQL = 536, SQLCODE = 537, SQLERROR = 538, SQLEXCEPTION = 539, + SQLSTATE = 540, SQLWARNING = 541, SQRT = 542, STABLE = 543, START = 544, STATE = 545, + STATEMENT = 546, STATIC = 547, STATISTICS = 548, STDDEV_POP = 549, STDDEV_SAMP = 550, + STDIN = 551, STDOUT = 552, STORAGE = 553, STRICT = 554, STRUCTURE = 555, STYLE = 556, + SUBCLASS_ORIGIN = 557, SUBLIST = 558, SUBMULTISET = 559, SUBSCRIPTION = 560, SUBSTRING = 561, + SUM = 562, SYMMETRIC = 563, SYSID = 564, SYSTEM = 565, SYSTEM_USER = 566, TABLE = 567, + TABLE_NAME = 568, TABLESAMPLE = 569, TABLESPACE = 570, TEMP = 571, TEMPLATE = 572, + TEMPORARY = 573, TERMINATE = 574, THAN = 575, THEN = 576, TIES = 577, TIME = 578, + TIMESTAMP = 579, TIMEZONE_HOUR = 580, TIMEZONE_MINUTE = 581, TIMING = 582, TO = 583, + TOAST = 584, TOP_LEVEL_COUNT = 585, TRAILING = 586, TRANSACTION = 587, TRANSACTION_ACTIVE = 588, + TRANSACTIONS_COMMITTED = 589, TRANSACTIONS_ROLLED_BACK = 590, TRANSFORM = 591, + TRANSFORMS = 592, TRANSLATE = 593, TRANSLATION = 594, TREAT = 595, TRIGGER = 596, + TRIGGER_CATALOG = 597, TRIGGER_NAME = 598, TRIGGER_SCHEMA = 599, TRIM = 600, TRUE = 601, + TRUNCATE = 602, TRUSTED = 603, TYPE = 604, UESCAPE = 605, UNBOUNDED = 606, UNCOMMITTED = 607, + UNDER = 608, UNENCRYPTED = 609, UNION = 610, UNIQUE = 611, UNKNOWN = 612, UNLISTEN = 613, + UNNAMED = 614, UNNEST = 615, UNTIL = 616, UPDATE = 617, UPPER = 618, USAGE = 619, + USER = 620, USER_DEFINED_TYPE_CATALOG = 621, USER_DEFINED_TYPE_CODE = 622, USER_DEFINED_TYPE_NAME = 623, + USER_DEFINED_TYPE_SCHEMA = 624, USING = 625, VACUUM = 626, VALID = 627, VALIDATE = 628, + VALIDATOR = 629, VALUE = 630, VALUES = 631, VAR_POP = 632, VAR_SAMP = 633, VARCHAR = 634, + VARIABLE = 635, VARIADIC = 636, VARYING = 637, VERBOSE = 638, VIEW = 639, VOLATILE = 640, + WHEN = 641, WHENEVER = 642, WHERE = 643, WIDTH_BUCKET = 644, WINDOW = 645, WITH = 646, + WITHIN = 647, WITHOUT = 648, WORK = 649, WRITE = 650, YAML = 651, YEAR = 652, YES = 653, + ZONE = 654, SUPERUSER = 655, NOSUPERUSER = 656, CREATEROLE = 657, NOCREATEROLE = 658, + INHERIT = 659, NOINHERIT = 660, LOGIN = 661, NOLOGIN = 662, REPLICATION = 663, NOREPLICATION = 664, + BYPASSRLS = 665, NOBYPASSRLS = 666, SFUNC = 667, STYPE = 668, SSPACE = 669, FINALFUNC = 670, + FINALFUNC_EXTRA = 671, COMBINEFUNC = 672, SERIALFUNC = 673, DESERIALFUNC = 674, + INITCOND = 675, MSFUNC = 676, MINVFUNC = 677, MSTYPE = 678, MSSPACE = 679, MFINALFUNC = 680, + MFINALFUNC_EXTRA = 681, MINITCOND = 682, SORTOP = 683, PARALLEL = 684, HYPOTHETICAL = 685, + SAFE = 686, RESTRICTED = 687, UNSAFE = 688, BASETYPE = 689, IF = 690, LOCALE = 691, + LC_COLLATE = 692, LC_CTYPE = 693, PROVIDER = 694, VERSION = 695, ALLOW_CONNECTIONS = 696, + IS_TEMPLATE = 697, EVENT = 698, WRAPPER = 699, SERVER = 700, BTREE = 701, HASH_ = 702, + GIST = 703, SPGIST = 704, GIN = 705, BRIN = 706, CONCURRENTLY = 707, INLINE = 708, + MATERIALIZED = 709, LEFTARG = 710, RIGHTARG = 711, COMMUTATOR = 712, NEGATOR = 713, + HASHES = 714, MERGES = 715, FAMILY = 716, POLICY = 717, OWNED = 718, ABSTIME = 719, + BIGSERIAL = 720, BIT_VARYING = 721, BOOL = 722, BOX = 723, BYTEA = 724, CHARACTER_VARYING = 725, + CIDR = 726, CIRCLE = 727, FLOAT4 = 728, FLOAT8 = 729, INET = 730, INT2 = 731, INT4 = 732, + INT8 = 733, JSON = 734, JSONB = 735, LINE = 736, LSEG = 737, MACADDR = 738, MACADDR8 = 739, + MONEY = 740, PG_LSN = 741, POINT = 742, POLYGON = 743, RELTIME = 744, SERIAL = 745, + SERIAL2 = 746, SERIAL4 = 747, SERIAL8 = 748, SMALLSERIAL = 749, STSTEM = 750, TEXT = 751, + TIMESTAMPTZ = 752, TIMETZ = 753, TSQUERY = 754, TSVECTOR = 755, TXID_SNAPSHOT = 756, + UUID = 757, VARBIT = 758, XML = 759, COMMA = 760, COLON = 761, COLON_COLON = 762, + DOLLAR = 763, DOLLAR_DOLLAR = 764, STAR = 765, OPEN_PAREN = 766, CLOSE_PAREN = 767, + OPEN_BRACKET = 768, CLOSE_BRACKET = 769, BIT_STRING = 770, REGEX_STRING = 771, + NUMERIC_LITERAL = 772, INTEGER_LITERAL = 773, HEX_INTEGER_LITERAL = 774, DOT = 775, + SINGLEQ_STRING_LITERAL = 776, DOUBLEQ_STRING_LITERAL = 777, IDENTIFIER = 778, + DOLLAR_DEC = 779, IDENTIFIER_UNICODE = 780, AMP = 781, AMP_AMP = 782, AMP_LT = 783, + AT_AT = 784, AT_GT = 785, AT_SIGN = 786, BANG = 787, BANG_BANG = 788, BANG_EQUAL = 789, + CARET = 790, EQUAL = 791, EQUAL_GT = 792, GT = 793, GTE = 794, GT_GT = 795, HASH = 796, + HASH_EQ = 797, HASH_GT = 798, HASH_GT_GT = 799, HASH_HASH = 800, HYPHEN_GT = 801, + HYPHEN_GT_GT = 802, HYPHEN_PIPE_HYPHEN = 803, LT = 804, LTE = 805, LT_AT = 806, + LT_CARET = 807, LT_GT = 808, LT_HYPHEN_GT = 809, LT_LT = 810, LT_LT_EQ = 811, LT_QMARK_GT = 812, + MINUS = 813, PERCENT = 814, PIPE = 815, PIPE_PIPE = 816, PIPE_PIPE_SLASH = 817, + PIPE_SLASH = 818, PLUS = 819, QMARK = 820, QMARK_AMP = 821, QMARK_HASH = 822, QMARK_HYPHEN = 823, + QMARK_PIPE = 824, SLASH = 825, TIL = 826, TIL_EQ = 827, TIL_GTE_TIL = 828, TIL_GT_TIL = 829, + TIL_LTE_TIL = 830, TIL_LT_TIL = 831, TIL_STAR = 832, TIL_TIL = 833, SEMI = 834, + UNLOGGED = 835; + public static final int + RULE_root = 0, RULE_stmt = 1, RULE_abort_stmt = 2, RULE_alter_stmt = 3, + RULE_alter_aggregate_stmt = 4, RULE_alter_collation_stmt = 5, RULE_alter_conversion_stmt = 6, + RULE_alter_database_stmt = 7, RULE_alter_default_privileges_stmt = 8, + RULE_alter_domain_stmt = 9, RULE_alter_event_trigger_stmt = 10, RULE_alter_extension_stmt = 11, + RULE_alter_foreign_data_wrapper_stmt = 12, RULE_alter_foreign_table_action = 13, + RULE_alter_foreign_table_action_list = 14, RULE_alter_foreign_table_stmt = 15, + RULE_alter_function_stmt = 16, RULE_alter_group_stmt = 17, RULE_alter_index_stmt = 18, + RULE_alter_language_stmt = 19, RULE_alter_large_object_stmt = 20, RULE_alter_materialize_view_stmt = 21, + RULE_alter_operator_stmt = 22, RULE_alter_operator_class_stmt = 23, RULE_alter_operator_family_stmt = 24, + RULE_alter_policy_stmt = 25, RULE_alter_publication_stmt = 26, RULE_alter_role_options = 27, + RULE_alter_role_stmt = 28, RULE_alter_rule_stmt = 29, RULE_alter_schema_stmt = 30, + RULE_alter_sequence_stmt = 31, RULE_alter_server_options_list = 32, RULE_alter_server_stmt = 33, + RULE_alter_statistics_stmt = 34, RULE_alter_subscription_stmt = 35, RULE_alter_system_stmt = 36, + RULE_alter_table_stmt = 37, RULE_alter_tablespace_stmt = 38, RULE_alter_text_search_config_stmt = 39, + RULE_alter_text_search_dict_stmt = 40, RULE_alter_text_search_parser_stmt = 41, + RULE_alter_text_search_template_stmt = 42, RULE_alter_trigger_stmt = 43, + RULE_alter_type_stmt = 44, RULE_alter_user_stmt = 45, RULE_alter_user_mapping_stmt = 46, + RULE_alter_view_stmt = 47, RULE_analyze_stmt = 48, RULE_close_stmt = 49, + RULE_cluster_stmt = 50, RULE_comment_stmt = 51, RULE_commit_stmt = 52, + RULE_commit_prepared_stmt = 53, RULE_copy_stmt = 54, RULE_create_stmt = 55, + RULE_create_access_method_stmt = 56, RULE_create_aggregate_stmt = 57, + RULE_create_cast_stmt = 58, RULE_create_collation_opt = 59, RULE_create_collation_opt_list = 60, + RULE_create_collation_stmt = 61, RULE_create_conversion_stmt = 62, RULE_create_database_stmt = 63, + RULE_domain_constraint = 64, RULE_create_domain_stmt = 65, RULE_create_event_trigger_cond = 66, + RULE_create_event_trigger_stmt = 67, RULE_create_foreign_data_options = 68, + RULE_create_foreign_data_stmt = 69, RULE_create_foreign_table_stmt = 70, + RULE_create_function_stmt = 71, RULE_create_group_stmt = 72, RULE_create_index_stmt = 73, + RULE_create_language_stmt = 74, RULE_create_materialized_view_stmt = 75, + RULE_create_operator_stmt = 76, RULE_create_operator_class_opt = 77, RULE_create_operator_class_stmt = 78, + RULE_create_operator_family_stmt = 79, RULE_create_policy_stmt = 80, RULE_create_role_stmt = 81, + RULE_create_rule_event = 82, RULE_create_rule_stmt = 83, RULE_create_schema_stmt = 84, + RULE_create_sequence_stmt = 85, RULE_create_server_stmt = 86, RULE_create_statistics_stmt = 87, + RULE_create_subscription_stmt = 88, RULE_create_table_stmt = 89, RULE_create_table_as_stmt = 90, + RULE_create_tablespace_stmt = 91, RULE_create_text_search_config_stmt = 92, + RULE_create_text_search_dict_stmt = 93, RULE_create_text_search_parser_stmt = 94, + RULE_create_text_search_template_stmt = 95, RULE_create_transform_stmt = 96, + RULE_create_trigger_stmt = 97, RULE_create_type_stmt = 98, RULE_create_user_stmt = 99, + RULE_create_user_mapping_stmt = 100, RULE_create_view_stmt = 101, RULE_deallocate_stmt = 102, + RULE_declare_stmt = 103, RULE_delete_stmt = 104, RULE_discard_stmt = 105, + RULE_drop_stmt = 106, RULE_drop_access_method_stmt = 107, RULE_drop_aggregate_stmt = 108, + RULE_drop_cast_stmt = 109, RULE_drop_collation_stmt = 110, RULE_drop_conversion_stmt = 111, + RULE_drop_database_stmt = 112, RULE_drop_domain_stmt = 113, RULE_drop_event_trigger_stmt = 114, + RULE_drop_extension_stmt = 115, RULE_drop_foreign_data_wrapper_stmt = 116, + RULE_drop_foreign_table_stmt = 117, RULE_drop_function_stmt = 118, RULE_drop_group_stmt = 119, + RULE_drop_index_stmt = 120, RULE_drop_language_stmt = 121, RULE_drop_materialized_view_stmt = 122, + RULE_drop_operator_stmt = 123, RULE_drop_operator_class_stmt = 124, RULE_drop_operator_family_stmt = 125, + RULE_drop_owned_stmt = 126, RULE_drop_policy_stmt = 127, RULE_drop_publication_stmt = 128, + RULE_drop_role_stmt = 129, RULE_drop_rule_stmt = 130, RULE_drop_schema_stmt = 131, + RULE_drop_sequence_stmt = 132, RULE_drop_server_stmt = 133, RULE_drop_statistics_stmt = 134, + RULE_drop_subscription_stmt = 135, RULE_drop_table_stmt = 136, RULE_drop_tablespace_stmt = 137, + RULE_drop_text_search_config_stmt = 138, RULE_drop_text_search_dict_stmt = 139, + RULE_drop_text_search_parser_stmt = 140, RULE_drop_text_search_template_stmt = 141, + RULE_drop_transform_stmt = 142, RULE_drop_trigger_stmt = 143, RULE_drop_type_stmt = 144, + RULE_drop_user_stmt = 145, RULE_drop_user_mapping_stmt = 146, RULE_drop_view_stmt = 147, + RULE_execute_stmt = 148, RULE_explain_stmt = 149, RULE_fetch_stmt = 150, + RULE_grant_stmt = 151, RULE_import_foreign_schema_stmt = 152, RULE_insert_stmt = 153, + RULE_listen_stmt = 154, RULE_load_stmt = 155, RULE_lock_stmt = 156, RULE_move_stmt = 157, + RULE_notify_stmt = 158, RULE_prepare_stmt = 159, RULE_prepare_transaction_stmt = 160, + RULE_reassign_owned_stmt = 161, RULE_refresh_materialized_view_stmt = 162, + RULE_reindex_stmt = 163, RULE_release_savepoint_stmt = 164, RULE_reset_stmt = 165, + RULE_revoke_stmt = 166, RULE_rollback_stmt = 167, RULE_rollback_prepared_stmt = 168, + RULE_rollback_to_savepoint_stmt = 169, RULE_savepoint_stmt = 170, RULE_security_label_stmt = 171, + RULE_select_stmt = 172, RULE_select_into_stmt = 173, RULE_with_clause = 174, + RULE_with_expr = 175, RULE_set_stmt = 176, RULE_set_constraints_stmt = 177, + RULE_set_role_stmt = 178, RULE_set_session_authorization_stmt = 179, RULE_transaction_mode = 180, + RULE_transaction_mode_list = 181, RULE_set_transaction_stmt = 182, RULE_show_stmt = 183, + RULE_truncate_stmt = 184, RULE_unlisten_stmt = 185, RULE_update_stmt = 186, + RULE_vacuum_opt = 187, RULE_vacuum_opt_list = 188, RULE_vacuum_stmt = 189, + RULE_values_stmt = 190, RULE_selector_clause = 191, RULE_from_clause = 192, + RULE_where_clause = 193, RULE_group_by_clause = 194, RULE_grouping_elem = 195, + RULE_grouping_elem_list = 196, RULE_having_clause = 197, RULE_column_list = 198, + RULE_explain_parameter = 199, RULE_frame = 200, RULE_frame_start = 201, + RULE_frame_end = 202, RULE_frame_clause = 203, RULE_window_definition = 204, + RULE_window_clause = 205, RULE_combine_clause = 206, RULE_order_by_clause = 207, + RULE_order_by_item = 208, RULE_limit_clause = 209, RULE_offset_clause = 210, + RULE_fetch_clause = 211, RULE_for_clause = 212, RULE_updater_clause = 213, + RULE_updater_expr = 214, RULE_returning_clause = 215, RULE_expr = 216, + RULE_bool_expr = 217, RULE_case_expr = 218, RULE_expr_list = 219, RULE_expr_list_list = 220, + RULE_func_sig_arg = 221, RULE_func_sig_arg_list = 222, RULE_func_sig = 223, + RULE_func_sig_list = 224, RULE_type_name = 225, RULE_timezone = 226, RULE_oper = 227, + RULE_aggregate = 228, RULE_name_ = 229, RULE_name_list = 230, RULE_identifier_list = 231, + RULE_option_expr = 232, RULE_option_list = 233, RULE_table_name_ = 234, + RULE_data_type = 235, RULE_data_type_list = 236, RULE_index_method = 237, + RULE_func_name = 238, RULE_func_call = 239, RULE_array_cons_expr = 240, + RULE_from_item = 241, RULE_with_column_alias = 242, RULE_join_type = 243, + RULE_join_clause = 244, RULE_predicate = 245, RULE_aggregate_signature = 246, + RULE_column_constraint = 247, RULE_column_constraints = 248, RULE_index_parameters = 249, + RULE_exclude_element = 250, RULE_table_constraint = 251, RULE_role_name = 252, + RULE_role_name_list = 253, RULE_param_value = 254, RULE_non_reserved_keyword = 255, + RULE_identifier = 256, RULE_todo_fill_in = 257, RULE_todo_implement = 258, + RULE_correlation_name = 259, RULE_column_name = 260, RULE_alias = 261, + RULE_column_alias = 262, RULE_column_definition = 263, RULE_window_name = 264; + public static final String[] ruleNames = { + "root", "stmt", "abort_stmt", "alter_stmt", "alter_aggregate_stmt", "alter_collation_stmt", + "alter_conversion_stmt", "alter_database_stmt", "alter_default_privileges_stmt", + "alter_domain_stmt", "alter_event_trigger_stmt", "alter_extension_stmt", + "alter_foreign_data_wrapper_stmt", "alter_foreign_table_action", "alter_foreign_table_action_list", + "alter_foreign_table_stmt", "alter_function_stmt", "alter_group_stmt", + "alter_index_stmt", "alter_language_stmt", "alter_large_object_stmt", + "alter_materialize_view_stmt", "alter_operator_stmt", "alter_operator_class_stmt", + "alter_operator_family_stmt", "alter_policy_stmt", "alter_publication_stmt", + "alter_role_options", "alter_role_stmt", "alter_rule_stmt", "alter_schema_stmt", + "alter_sequence_stmt", "alter_server_options_list", "alter_server_stmt", + "alter_statistics_stmt", "alter_subscription_stmt", "alter_system_stmt", + "alter_table_stmt", "alter_tablespace_stmt", "alter_text_search_config_stmt", + "alter_text_search_dict_stmt", "alter_text_search_parser_stmt", "alter_text_search_template_stmt", + "alter_trigger_stmt", "alter_type_stmt", "alter_user_stmt", "alter_user_mapping_stmt", + "alter_view_stmt", "analyze_stmt", "close_stmt", "cluster_stmt", "comment_stmt", + "commit_stmt", "commit_prepared_stmt", "copy_stmt", "create_stmt", "create_access_method_stmt", + "create_aggregate_stmt", "create_cast_stmt", "create_collation_opt", "create_collation_opt_list", + "create_collation_stmt", "create_conversion_stmt", "create_database_stmt", + "domain_constraint", "create_domain_stmt", "create_event_trigger_cond", + "create_event_trigger_stmt", "create_foreign_data_options", "create_foreign_data_stmt", + "create_foreign_table_stmt", "create_function_stmt", "create_group_stmt", + "create_index_stmt", "create_language_stmt", "create_materialized_view_stmt", + "create_operator_stmt", "create_operator_class_opt", "create_operator_class_stmt", + "create_operator_family_stmt", "create_policy_stmt", "create_role_stmt", + "create_rule_event", "create_rule_stmt", "create_schema_stmt", "create_sequence_stmt", + "create_server_stmt", "create_statistics_stmt", "create_subscription_stmt", + "create_table_stmt", "create_table_as_stmt", "create_tablespace_stmt", + "create_text_search_config_stmt", "create_text_search_dict_stmt", "create_text_search_parser_stmt", + "create_text_search_template_stmt", "create_transform_stmt", "create_trigger_stmt", + "create_type_stmt", "create_user_stmt", "create_user_mapping_stmt", "create_view_stmt", + "deallocate_stmt", "declare_stmt", "delete_stmt", "discard_stmt", "drop_stmt", + "drop_access_method_stmt", "drop_aggregate_stmt", "drop_cast_stmt", "drop_collation_stmt", + "drop_conversion_stmt", "drop_database_stmt", "drop_domain_stmt", "drop_event_trigger_stmt", + "drop_extension_stmt", "drop_foreign_data_wrapper_stmt", "drop_foreign_table_stmt", + "drop_function_stmt", "drop_group_stmt", "drop_index_stmt", "drop_language_stmt", + "drop_materialized_view_stmt", "drop_operator_stmt", "drop_operator_class_stmt", + "drop_operator_family_stmt", "drop_owned_stmt", "drop_policy_stmt", "drop_publication_stmt", + "drop_role_stmt", "drop_rule_stmt", "drop_schema_stmt", "drop_sequence_stmt", + "drop_server_stmt", "drop_statistics_stmt", "drop_subscription_stmt", + "drop_table_stmt", "drop_tablespace_stmt", "drop_text_search_config_stmt", + "drop_text_search_dict_stmt", "drop_text_search_parser_stmt", "drop_text_search_template_stmt", + "drop_transform_stmt", "drop_trigger_stmt", "drop_type_stmt", "drop_user_stmt", + "drop_user_mapping_stmt", "drop_view_stmt", "execute_stmt", "explain_stmt", + "fetch_stmt", "grant_stmt", "import_foreign_schema_stmt", "insert_stmt", + "listen_stmt", "load_stmt", "lock_stmt", "move_stmt", "notify_stmt", "prepare_stmt", + "prepare_transaction_stmt", "reassign_owned_stmt", "refresh_materialized_view_stmt", + "reindex_stmt", "release_savepoint_stmt", "reset_stmt", "revoke_stmt", + "rollback_stmt", "rollback_prepared_stmt", "rollback_to_savepoint_stmt", + "savepoint_stmt", "security_label_stmt", "select_stmt", "select_into_stmt", + "with_clause", "with_expr", "set_stmt", "set_constraints_stmt", "set_role_stmt", + "set_session_authorization_stmt", "transaction_mode", "transaction_mode_list", + "set_transaction_stmt", "show_stmt", "truncate_stmt", "unlisten_stmt", + "update_stmt", "vacuum_opt", "vacuum_opt_list", "vacuum_stmt", "values_stmt", + "selector_clause", "from_clause", "where_clause", "group_by_clause", "grouping_elem", + "grouping_elem_list", "having_clause", "column_list", "explain_parameter", + "frame", "frame_start", "frame_end", "frame_clause", "window_definition", + "window_clause", "combine_clause", "order_by_clause", "order_by_item", + "limit_clause", "offset_clause", "fetch_clause", "for_clause", "updater_clause", + "updater_expr", "returning_clause", "expr", "bool_expr", "case_expr", + "expr_list", "expr_list_list", "func_sig_arg", "func_sig_arg_list", "func_sig", + "func_sig_list", "type_name", "timezone", "oper", "aggregate", "name_", + "name_list", "identifier_list", "option_expr", "option_list", "table_name_", + "data_type", "data_type_list", "index_method", "func_name", "func_call", + "array_cons_expr", "from_item", "with_column_alias", "join_type", "join_clause", + "predicate", "aggregate_signature", "column_constraint", "column_constraints", + "index_parameters", "exclude_element", "table_constraint", "role_name", + "role_name_list", "param_value", "non_reserved_keyword", "identifier", + "todo_fill_in", "todo_implement", "correlation_name", "column_name", "alias", + "column_alias", "column_definition", "window_name" + }; + + private static final String[] _LITERAL_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", + "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, + null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", + "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", + "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", + "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", + "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", + "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", + "';'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", + "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", + "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", + "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", + "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", + "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", + "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", + "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", + "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", + "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", + "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", + "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", + "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", + "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", + "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", + "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", + "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", + "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", + "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", + "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", + "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", + "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", + "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", + "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", + "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", + "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", + "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", + "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", + "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", + "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", + "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", + "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", + "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", + "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", + "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", + "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", + "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", + "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", + "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", + "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", + "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", + "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", + "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", + "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", + "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", + "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", + "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", + "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", + "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", + "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", + "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", + "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", + "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", + "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", + "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", + "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", + "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", + "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", + "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", + "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", + "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", + "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", + "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", + "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", + "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", + "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", + "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", + "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", + "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", + "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", + "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", + "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", + "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", + "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", + "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", + "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", + "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", + "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", + "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", + "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", + "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", + "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", + "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", + "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", + "HYPOTHETICAL", "SAFE", "RESTRICTED", "UNSAFE", "BASETYPE", "IF", "LOCALE", + "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", + "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", + "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", + "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", + "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", + "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", + "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI", + "UNLOGGED" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { + return "PostgreSQLParser.g4"; + } + + @Override + public String[] getRuleNames() { + return ruleNames; + } + + @Override + public String getSerializedATN() { + return _serializedATN; + } + + @Override + public ATN getATN() { + return _ATN; + } + + public PostgreSQLParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache); + } + + public static class RootContext extends ParserRuleContext { + public List stmt() { + return getRuleContexts(StmtContext.class); + } + + public StmtContext stmt(int i) { + return getRuleContext(StmtContext.class, i); + } + + public TerminalNode EOF() { + return getToken(PostgreSQLParser.EOF, 0); + } + + public List SEMI() { + return getTokens(PostgreSQLParser.SEMI); + } + + public TerminalNode SEMI(int i) { + return getToken(PostgreSQLParser.SEMI, i); + } + + public RootContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_root; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterRoot(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitRoot(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRoot(this); + else return visitor.visitChildren(this); + } + } + + public final RootContext root() throws RecognitionException { + RootContext _localctx = new RootContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_root); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(530); + stmt(); + setState(539); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == SEMI) { + { + setState(533); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(531); + match(SEMI); + setState(532); + stmt(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(535); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 0, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + setState(537); + match(SEMI); + } + } + + setState(541); + match(EOF); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class StmtContext extends ParserRuleContext { + public Abort_stmtContext abort_stmt() { + return getRuleContext(Abort_stmtContext.class, 0); + } + + public Alter_stmtContext alter_stmt() { + return getRuleContext(Alter_stmtContext.class, 0); + } + + public Analyze_stmtContext analyze_stmt() { + return getRuleContext(Analyze_stmtContext.class, 0); + } + + public Create_stmtContext create_stmt() { + return getRuleContext(Create_stmtContext.class, 0); + } + + public Close_stmtContext close_stmt() { + return getRuleContext(Close_stmtContext.class, 0); + } + + public Cluster_stmtContext cluster_stmt() { + return getRuleContext(Cluster_stmtContext.class, 0); + } + + public Comment_stmtContext comment_stmt() { + return getRuleContext(Comment_stmtContext.class, 0); + } + + public Commit_stmtContext commit_stmt() { + return getRuleContext(Commit_stmtContext.class, 0); + } + + public Commit_prepared_stmtContext commit_prepared_stmt() { + return getRuleContext(Commit_prepared_stmtContext.class, 0); + } + + public Copy_stmtContext copy_stmt() { + return getRuleContext(Copy_stmtContext.class, 0); + } + + public Deallocate_stmtContext deallocate_stmt() { + return getRuleContext(Deallocate_stmtContext.class, 0); + } + + public Declare_stmtContext declare_stmt() { + return getRuleContext(Declare_stmtContext.class, 0); + } + + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class, 0); + } + + public Discard_stmtContext discard_stmt() { + return getRuleContext(Discard_stmtContext.class, 0); + } + + public Drop_stmtContext drop_stmt() { + return getRuleContext(Drop_stmtContext.class, 0); + } + + public Execute_stmtContext execute_stmt() { + return getRuleContext(Execute_stmtContext.class, 0); + } + + public Explain_stmtContext explain_stmt() { + return getRuleContext(Explain_stmtContext.class, 0); + } + + public Fetch_stmtContext fetch_stmt() { + return getRuleContext(Fetch_stmtContext.class, 0); + } + + public Grant_stmtContext grant_stmt() { + return getRuleContext(Grant_stmtContext.class, 0); + } + + public Import_foreign_schema_stmtContext import_foreign_schema_stmt() { + return getRuleContext(Import_foreign_schema_stmtContext.class, 0); + } + + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class, 0); + } + + public Listen_stmtContext listen_stmt() { + return getRuleContext(Listen_stmtContext.class, 0); + } + + public Load_stmtContext load_stmt() { + return getRuleContext(Load_stmtContext.class, 0); + } + + public Lock_stmtContext lock_stmt() { + return getRuleContext(Lock_stmtContext.class, 0); + } + + public Move_stmtContext move_stmt() { + return getRuleContext(Move_stmtContext.class, 0); + } + + public Notify_stmtContext notify_stmt() { + return getRuleContext(Notify_stmtContext.class, 0); + } + + public Prepare_stmtContext prepare_stmt() { + return getRuleContext(Prepare_stmtContext.class, 0); + } + + public Prepare_transaction_stmtContext prepare_transaction_stmt() { + return getRuleContext(Prepare_transaction_stmtContext.class, 0); + } + + public Reassign_owned_stmtContext reassign_owned_stmt() { + return getRuleContext(Reassign_owned_stmtContext.class, 0); + } + + public Refresh_materialized_view_stmtContext refresh_materialized_view_stmt() { + return getRuleContext(Refresh_materialized_view_stmtContext.class, 0); + } + + public Reindex_stmtContext reindex_stmt() { + return getRuleContext(Reindex_stmtContext.class, 0); + } + + public Release_savepoint_stmtContext release_savepoint_stmt() { + return getRuleContext(Release_savepoint_stmtContext.class, 0); + } + + public Reset_stmtContext reset_stmt() { + return getRuleContext(Reset_stmtContext.class, 0); + } + + public Revoke_stmtContext revoke_stmt() { + return getRuleContext(Revoke_stmtContext.class, 0); + } + + public Rollback_stmtContext rollback_stmt() { + return getRuleContext(Rollback_stmtContext.class, 0); + } + + public Rollback_prepared_stmtContext rollback_prepared_stmt() { + return getRuleContext(Rollback_prepared_stmtContext.class, 0); + } + + public Rollback_to_savepoint_stmtContext rollback_to_savepoint_stmt() { + return getRuleContext(Rollback_to_savepoint_stmtContext.class, 0); + } + + public Savepoint_stmtContext savepoint_stmt() { + return getRuleContext(Savepoint_stmtContext.class, 0); + } + + public Security_label_stmtContext security_label_stmt() { + return getRuleContext(Security_label_stmtContext.class, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Select_into_stmtContext select_into_stmt() { + return getRuleContext(Select_into_stmtContext.class, 0); + } + + public Set_stmtContext set_stmt() { + return getRuleContext(Set_stmtContext.class, 0); + } + + public Set_constraints_stmtContext set_constraints_stmt() { + return getRuleContext(Set_constraints_stmtContext.class, 0); + } + + public Set_role_stmtContext set_role_stmt() { + return getRuleContext(Set_role_stmtContext.class, 0); + } + + public Set_session_authorization_stmtContext set_session_authorization_stmt() { + return getRuleContext(Set_session_authorization_stmtContext.class, 0); + } + + public Set_transaction_stmtContext set_transaction_stmt() { + return getRuleContext(Set_transaction_stmtContext.class, 0); + } + + public Show_stmtContext show_stmt() { + return getRuleContext(Show_stmtContext.class, 0); + } + + public Truncate_stmtContext truncate_stmt() { + return getRuleContext(Truncate_stmtContext.class, 0); + } + + public Unlisten_stmtContext unlisten_stmt() { + return getRuleContext(Unlisten_stmtContext.class, 0); + } + + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class, 0); + } + + public Vacuum_stmtContext vacuum_stmt() { + return getRuleContext(Vacuum_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public StmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterStmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitStmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitStmt(this); + else return visitor.visitChildren(this); + } + } + + public final StmtContext stmt() throws RecognitionException { + StmtContext _localctx = new StmtContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(595); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 2, _ctx)) { + case 1: { + setState(543); + abort_stmt(); + } + break; + case 2: { + setState(544); + alter_stmt(); + } + break; + case 3: { + setState(545); + analyze_stmt(); + } + break; + case 4: { + setState(546); + create_stmt(); + } + break; + case 5: { + setState(547); + close_stmt(); + } + break; + case 6: { + setState(548); + cluster_stmt(); + } + break; + case 7: { + setState(549); + comment_stmt(); + } + break; + case 8: { + setState(550); + commit_stmt(); + } + break; + case 9: { + setState(551); + commit_prepared_stmt(); + } + break; + case 10: { + setState(552); + copy_stmt(); + } + break; + case 11: { + setState(553); + deallocate_stmt(); + } + break; + case 12: { + setState(554); + declare_stmt(); + } + break; + case 13: { + setState(555); + delete_stmt(); + } + break; + case 14: { + setState(556); + discard_stmt(); + } + break; + case 15: { + setState(557); + drop_stmt(); + } + break; + case 16: { + setState(558); + execute_stmt(); + } + break; + case 17: { + setState(559); + explain_stmt(); + } + break; + case 18: { + setState(560); + fetch_stmt(); + } + break; + case 19: { + setState(561); + grant_stmt(); + } + break; + case 20: { + setState(562); + import_foreign_schema_stmt(); + } + break; + case 21: { + setState(563); + insert_stmt(); + } + break; + case 22: { + setState(564); + listen_stmt(); + } + break; + case 23: { + setState(565); + load_stmt(); + } + break; + case 24: { + setState(566); + lock_stmt(); + } + break; + case 25: { + setState(567); + move_stmt(); + } + break; + case 26: { + setState(568); + notify_stmt(); + } + break; + case 27: { + setState(569); + prepare_stmt(); + } + break; + case 28: { + setState(570); + prepare_transaction_stmt(); + } + break; + case 29: { + setState(571); + reassign_owned_stmt(); + } + break; + case 30: { + setState(572); + refresh_materialized_view_stmt(); + } + break; + case 31: { + setState(573); + reindex_stmt(); + } + break; + case 32: { + setState(574); + release_savepoint_stmt(); + } + break; + case 33: { + setState(575); + reset_stmt(); + } + break; + case 34: { + setState(576); + revoke_stmt(); + } + break; + case 35: { + setState(577); + rollback_stmt(); + } + break; + case 36: { + setState(578); + rollback_prepared_stmt(); + } + break; + case 37: { + setState(579); + rollback_to_savepoint_stmt(); + } + break; + case 38: { + setState(580); + savepoint_stmt(); + } + break; + case 39: { + setState(581); + security_label_stmt(); + } + break; + case 40: { + setState(582); + select_stmt(); + } + break; + case 41: { + setState(583); + select_into_stmt(); + } + break; + case 42: { + setState(584); + set_stmt(); + } + break; + case 43: { + setState(585); + set_constraints_stmt(); + } + break; + case 44: { + setState(586); + set_role_stmt(); + } + break; + case 45: { + setState(587); + set_session_authorization_stmt(); + } + break; + case 46: { + setState(588); + set_transaction_stmt(); + } + break; + case 47: { + setState(589); + show_stmt(); + } + break; + case 48: { + setState(590); + truncate_stmt(); + } + break; + case 49: { + setState(591); + unlisten_stmt(); + } + break; + case 50: { + setState(592); + update_stmt(); + } + break; + case 51: { + setState(593); + vacuum_stmt(); + } + break; + case 52: { + setState(594); + values_stmt(); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Abort_stmtContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Abort_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_abort_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAbort_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAbort_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAbort_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Abort_stmtContext abort_stmt() throws RecognitionException { + Abort_stmtContext _localctx = new Abort_stmtContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_abort_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(597); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_stmtContext extends ParserRuleContext { + public Alter_aggregate_stmtContext alter_aggregate_stmt() { + return getRuleContext(Alter_aggregate_stmtContext.class, 0); + } + + public Alter_collation_stmtContext alter_collation_stmt() { + return getRuleContext(Alter_collation_stmtContext.class, 0); + } + + public Alter_conversion_stmtContext alter_conversion_stmt() { + return getRuleContext(Alter_conversion_stmtContext.class, 0); + } + + public Alter_database_stmtContext alter_database_stmt() { + return getRuleContext(Alter_database_stmtContext.class, 0); + } + + public Alter_default_privileges_stmtContext alter_default_privileges_stmt() { + return getRuleContext(Alter_default_privileges_stmtContext.class, 0); + } + + public Alter_domain_stmtContext alter_domain_stmt() { + return getRuleContext(Alter_domain_stmtContext.class, 0); + } + + public Alter_event_trigger_stmtContext alter_event_trigger_stmt() { + return getRuleContext(Alter_event_trigger_stmtContext.class, 0); + } + + public Alter_extension_stmtContext alter_extension_stmt() { + return getRuleContext(Alter_extension_stmtContext.class, 0); + } + + public Alter_foreign_data_wrapper_stmtContext alter_foreign_data_wrapper_stmt() { + return getRuleContext(Alter_foreign_data_wrapper_stmtContext.class, 0); + } + + public Alter_foreign_table_stmtContext alter_foreign_table_stmt() { + return getRuleContext(Alter_foreign_table_stmtContext.class, 0); + } + + public Alter_function_stmtContext alter_function_stmt() { + return getRuleContext(Alter_function_stmtContext.class, 0); + } + + public Alter_group_stmtContext alter_group_stmt() { + return getRuleContext(Alter_group_stmtContext.class, 0); + } + + public Alter_index_stmtContext alter_index_stmt() { + return getRuleContext(Alter_index_stmtContext.class, 0); + } + + public Alter_language_stmtContext alter_language_stmt() { + return getRuleContext(Alter_language_stmtContext.class, 0); + } + + public Alter_large_object_stmtContext alter_large_object_stmt() { + return getRuleContext(Alter_large_object_stmtContext.class, 0); + } + + public Alter_materialize_view_stmtContext alter_materialize_view_stmt() { + return getRuleContext(Alter_materialize_view_stmtContext.class, 0); + } + + public Alter_operator_stmtContext alter_operator_stmt() { + return getRuleContext(Alter_operator_stmtContext.class, 0); + } + + public Alter_operator_class_stmtContext alter_operator_class_stmt() { + return getRuleContext(Alter_operator_class_stmtContext.class, 0); + } + + public Alter_operator_family_stmtContext alter_operator_family_stmt() { + return getRuleContext(Alter_operator_family_stmtContext.class, 0); + } + + public Alter_policy_stmtContext alter_policy_stmt() { + return getRuleContext(Alter_policy_stmtContext.class, 0); + } + + public Alter_publication_stmtContext alter_publication_stmt() { + return getRuleContext(Alter_publication_stmtContext.class, 0); + } + + public Alter_role_stmtContext alter_role_stmt() { + return getRuleContext(Alter_role_stmtContext.class, 0); + } + + public Alter_rule_stmtContext alter_rule_stmt() { + return getRuleContext(Alter_rule_stmtContext.class, 0); + } + + public Alter_schema_stmtContext alter_schema_stmt() { + return getRuleContext(Alter_schema_stmtContext.class, 0); + } + + public Alter_sequence_stmtContext alter_sequence_stmt() { + return getRuleContext(Alter_sequence_stmtContext.class, 0); + } + + public Alter_server_stmtContext alter_server_stmt() { + return getRuleContext(Alter_server_stmtContext.class, 0); + } + + public Alter_statistics_stmtContext alter_statistics_stmt() { + return getRuleContext(Alter_statistics_stmtContext.class, 0); + } + + public Alter_subscription_stmtContext alter_subscription_stmt() { + return getRuleContext(Alter_subscription_stmtContext.class, 0); + } + + public Alter_system_stmtContext alter_system_stmt() { + return getRuleContext(Alter_system_stmtContext.class, 0); + } + + public Alter_table_stmtContext alter_table_stmt() { + return getRuleContext(Alter_table_stmtContext.class, 0); + } + + public Alter_tablespace_stmtContext alter_tablespace_stmt() { + return getRuleContext(Alter_tablespace_stmtContext.class, 0); + } + + public Alter_text_search_config_stmtContext alter_text_search_config_stmt() { + return getRuleContext(Alter_text_search_config_stmtContext.class, 0); + } + + public Alter_text_search_dict_stmtContext alter_text_search_dict_stmt() { + return getRuleContext(Alter_text_search_dict_stmtContext.class, 0); + } + + public Alter_text_search_parser_stmtContext alter_text_search_parser_stmt() { + return getRuleContext(Alter_text_search_parser_stmtContext.class, 0); + } + + public Alter_text_search_template_stmtContext alter_text_search_template_stmt() { + return getRuleContext(Alter_text_search_template_stmtContext.class, 0); + } + + public Alter_trigger_stmtContext alter_trigger_stmt() { + return getRuleContext(Alter_trigger_stmtContext.class, 0); + } + + public Alter_type_stmtContext alter_type_stmt() { + return getRuleContext(Alter_type_stmtContext.class, 0); + } + + public Alter_user_stmtContext alter_user_stmt() { + return getRuleContext(Alter_user_stmtContext.class, 0); + } + + public Alter_user_mapping_stmtContext alter_user_mapping_stmt() { + return getRuleContext(Alter_user_mapping_stmtContext.class, 0); + } + + public Alter_view_stmtContext alter_view_stmt() { + return getRuleContext(Alter_view_stmtContext.class, 0); + } + + public Alter_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_stmtContext alter_stmt() throws RecognitionException { + Alter_stmtContext _localctx = new Alter_stmtContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_alter_stmt); + try { + setState(639); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 3, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(599); + alter_aggregate_stmt(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(600); + alter_collation_stmt(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(601); + alter_conversion_stmt(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(602); + alter_database_stmt(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(603); + alter_default_privileges_stmt(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(604); + alter_domain_stmt(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(605); + alter_event_trigger_stmt(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(606); + alter_extension_stmt(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(607); + alter_foreign_data_wrapper_stmt(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(608); + alter_foreign_table_stmt(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(609); + alter_function_stmt(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(610); + alter_group_stmt(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(611); + alter_index_stmt(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(612); + alter_language_stmt(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(613); + alter_large_object_stmt(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(614); + alter_materialize_view_stmt(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(615); + alter_operator_stmt(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(616); + alter_operator_class_stmt(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(617); + alter_operator_family_stmt(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(618); + alter_policy_stmt(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(619); + alter_publication_stmt(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(620); + alter_role_stmt(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(621); + alter_rule_stmt(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(622); + alter_schema_stmt(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(623); + alter_sequence_stmt(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(624); + alter_server_stmt(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(625); + alter_statistics_stmt(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(626); + alter_subscription_stmt(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(627); + alter_system_stmt(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(628); + alter_table_stmt(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(629); + alter_tablespace_stmt(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(630); + alter_text_search_config_stmt(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(631); + alter_text_search_dict_stmt(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(632); + alter_text_search_parser_stmt(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(633); + alter_text_search_template_stmt(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(634); + alter_trigger_stmt(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(635); + alter_type_stmt(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(636); + alter_user_stmt(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(637); + alter_user_mapping_stmt(); + } + break; + case 40: + enterOuterAlt(_localctx, 40); + { + setState(638); + alter_view_stmt(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_aggregate_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode AGGREGATE() { + return getToken(PostgreSQLParser.AGGREGATE, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Aggregate_signatureContext aggregate_signature() { + return getRuleContext(Aggregate_signatureContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_aggregate_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_aggregate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_aggregate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_aggregate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_aggregate_stmtContext alter_aggregate_stmt() throws RecognitionException { + Alter_aggregate_stmtContext _localctx = new Alter_aggregate_stmtContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_alter_aggregate_stmt); + try { + setState(671); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 4, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(641); + match(ALTER); + setState(642); + match(AGGREGATE); + setState(643); + ((Alter_aggregate_stmtContext) _localctx).name = identifier(0); + setState(644); + match(OPEN_PAREN); + setState(645); + aggregate_signature(); + setState(646); + match(CLOSE_PAREN); + setState(647); + match(RENAME); + setState(648); + match(TO); + setState(649); + ((Alter_aggregate_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(651); + match(ALTER); + setState(652); + match(AGGREGATE); + setState(653); + ((Alter_aggregate_stmtContext) _localctx).name = identifier(0); + setState(654); + match(OPEN_PAREN); + setState(655); + aggregate_signature(); + setState(656); + match(CLOSE_PAREN); + setState(657); + match(OWNER); + setState(658); + match(TO); + setState(659); + ((Alter_aggregate_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(661); + match(ALTER); + setState(662); + match(AGGREGATE); + setState(663); + ((Alter_aggregate_stmtContext) _localctx).name = identifier(0); + setState(664); + match(OPEN_PAREN); + setState(665); + aggregate_signature(); + setState(666); + match(CLOSE_PAREN); + setState(667); + match(SET); + setState(668); + match(SCHEMA); + setState(669); + ((Alter_aggregate_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_collation_stmtContext extends ParserRuleContext { + public Name_Context name; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode COLLATION() { + return getToken(PostgreSQLParser.COLLATION, 0); + } + + public TerminalNode REFRESH() { + return getToken(PostgreSQLParser.REFRESH, 0); + } + + public TerminalNode VERSION() { + return getToken(PostgreSQLParser.VERSION, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_collation_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_collation_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_collation_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_collation_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_collation_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_collation_stmtContext alter_collation_stmt() throws RecognitionException { + Alter_collation_stmtContext _localctx = new Alter_collation_stmtContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_alter_collation_stmt); + try { + setState(700); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 5, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(673); + match(ALTER); + setState(674); + match(COLLATION); + setState(675); + ((Alter_collation_stmtContext) _localctx).name = name_(); + setState(676); + match(REFRESH); + setState(677); + match(VERSION); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(679); + match(ALTER); + setState(680); + match(COLLATION); + setState(681); + ((Alter_collation_stmtContext) _localctx).name = name_(); + setState(682); + match(RENAME); + setState(683); + match(TO); + setState(684); + ((Alter_collation_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(686); + match(ALTER); + setState(687); + match(COLLATION); + setState(688); + ((Alter_collation_stmtContext) _localctx).name = name_(); + setState(689); + match(OWNER); + setState(690); + match(TO); + setState(691); + ((Alter_collation_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(693); + match(ALTER); + setState(694); + match(COLLATION); + setState(695); + ((Alter_collation_stmtContext) _localctx).name = name_(); + setState(696); + match(SET); + setState(697); + match(SCHEMA); + setState(698); + ((Alter_collation_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_conversion_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode CONVERSION() { + return getToken(PostgreSQLParser.CONVERSION, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_conversion_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_conversion_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_conversion_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_conversion_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_conversion_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_conversion_stmtContext alter_conversion_stmt() throws RecognitionException { + Alter_conversion_stmtContext _localctx = new Alter_conversion_stmtContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_alter_conversion_stmt); + try { + setState(723); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 6, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(702); + match(ALTER); + setState(703); + match(CONVERSION); + setState(704); + ((Alter_conversion_stmtContext) _localctx).name = identifier(0); + setState(705); + match(RENAME); + setState(706); + match(TO); + setState(707); + ((Alter_conversion_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(709); + match(ALTER); + setState(710); + match(CONVERSION); + setState(711); + ((Alter_conversion_stmtContext) _localctx).name = identifier(0); + setState(712); + match(OWNER); + setState(713); + match(TO); + setState(714); + ((Alter_conversion_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(716); + match(ALTER); + setState(717); + match(CONVERSION); + setState(718); + ((Alter_conversion_stmtContext) _localctx).name = identifier(0); + setState(719); + match(SET); + setState(720); + match(SCHEMA); + setState(721); + ((Alter_conversion_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_database_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_database_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_database_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_database_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_database_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_database_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_database_stmtContext alter_database_stmt() throws RecognitionException { + Alter_database_stmtContext _localctx = new Alter_database_stmtContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_alter_database_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(725); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_default_privileges_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_default_privileges_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_default_privileges_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_default_privileges_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_default_privileges_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_default_privileges_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_default_privileges_stmtContext alter_default_privileges_stmt() throws RecognitionException { + Alter_default_privileges_stmtContext _localctx = new Alter_default_privileges_stmtContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_alter_default_privileges_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(727); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_domain_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext constraint_name; + public IdentifierContext new_constraint_name; + public Role_nameContext new_owner; + public IdentifierContext new_name; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode DOMAIN() { + return getToken(PostgreSQLParser.DOMAIN, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode NULL() { + return getToken(PostgreSQLParser.NULL, 0); + } + + public TerminalNode ADD() { + return getToken(PostgreSQLParser.ADD, 0); + } + + public Domain_constraintContext domain_constraint() { + return getRuleContext(Domain_constraintContext.class, 0); + } + + public TerminalNode VALID() { + return getToken(PostgreSQLParser.VALID, 0); + } + + public TerminalNode CONSTRAINT() { + return getToken(PostgreSQLParser.CONSTRAINT, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode VALIDATE() { + return getToken(PostgreSQLParser.VALIDATE, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_domain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_domain_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_domain_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_domain_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_domain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_domain_stmtContext alter_domain_stmt() throws RecognitionException { + Alter_domain_stmtContext _localctx = new Alter_domain_stmtContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_alter_domain_stmt); + int _la; + try { + setState(805); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 11, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(729); + match(ALTER); + setState(730); + match(DOMAIN); + setState(731); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(737); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SET: { + setState(732); + match(SET); + setState(733); + match(DEFAULT); + setState(734); + expr(0); + } + break; + case DROP: { + setState(735); + match(DROP); + setState(736); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(739); + match(ALTER); + setState(740); + match(DOMAIN); + setState(741); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(742); + _la = _input.LA(1); + if (!(_la == DROP || _la == SET)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(743); + match(NOT); + setState(744); + match(NULL); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(746); + match(ALTER); + setState(747); + match(DOMAIN); + setState(748); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(749); + match(ADD); + setState(750); + domain_constraint(); + setState(753); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(751); + match(NOT); + setState(752); + match(VALID); + } + } + + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(755); + match(ALTER); + setState(756); + match(DOMAIN); + setState(757); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(758); + match(DROP); + setState(759); + match(CONSTRAINT); + setState(762); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(760); + match(IF); + setState(761); + match(EXISTS); + } + } + + setState(764); + ((Alter_domain_stmtContext) _localctx).constraint_name = identifier(0); + setState(766); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(765); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(768); + match(ALTER); + setState(769); + match(DOMAIN); + setState(770); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(771); + match(RENAME); + setState(772); + match(CONSTRAINT); + setState(773); + ((Alter_domain_stmtContext) _localctx).constraint_name = identifier(0); + setState(774); + match(TO); + setState(775); + ((Alter_domain_stmtContext) _localctx).new_constraint_name = identifier(0); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(777); + match(ALTER); + setState(778); + match(DOMAIN); + setState(779); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(780); + match(VALIDATE); + setState(781); + match(CONSTRAINT); + setState(782); + ((Alter_domain_stmtContext) _localctx).constraint_name = identifier(0); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(784); + match(ALTER); + setState(785); + match(DOMAIN); + setState(786); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(787); + match(OWNER); + setState(788); + match(TO); + setState(789); + ((Alter_domain_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(791); + match(ALTER); + setState(792); + match(DOMAIN); + setState(793); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(794); + match(RENAME); + setState(795); + match(TO); + setState(796); + ((Alter_domain_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(798); + match(ALTER); + setState(799); + match(DOMAIN); + setState(800); + ((Alter_domain_stmtContext) _localctx).name = identifier(0); + setState(801); + match(SET); + setState(802); + match(SCHEMA); + setState(803); + ((Alter_domain_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_event_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_owner; + public IdentifierContext new_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode EVENT() { + return getToken(PostgreSQLParser.EVENT, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public TerminalNode DISABLE() { + return getToken(PostgreSQLParser.DISABLE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode ENABLE() { + return getToken(PostgreSQLParser.ENABLE, 0); + } + + public TerminalNode REPLICA() { + return getToken(PostgreSQLParser.REPLICA, 0); + } + + public TerminalNode ALWAYS() { + return getToken(PostgreSQLParser.ALWAYS, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public Alter_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_event_trigger_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_event_trigger_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_event_trigger_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_event_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws RecognitionException { + Alter_event_trigger_stmtContext _localctx = new Alter_event_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_alter_event_trigger_stmt); + int _la; + try { + setState(840); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 14, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(807); + match(ALTER); + setState(808); + match(EVENT); + setState(809); + match(TRIGGER); + setState(810); + ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); + setState(811); + match(DISABLE); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(813); + match(ALTER); + setState(814); + match(EVENT); + setState(815); + match(TRIGGER); + setState(816); + ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); + setState(817); + match(ENABLE); + setState(819); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ALWAYS || _la == REPLICA) { + { + setState(818); + _la = _input.LA(1); + if (!(_la == ALWAYS || _la == REPLICA)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(821); + match(ALTER); + setState(822); + match(EVENT); + setState(823); + match(TRIGGER); + setState(824); + ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); + setState(825); + match(OWNER); + setState(826); + match(TO); + setState(830); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(827); + ((Alter_event_trigger_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(828); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(829); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(832); + match(ALTER); + setState(833); + match(EVENT); + setState(834); + match(TRIGGER); + setState(835); + ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); + setState(836); + match(RENAME); + setState(837); + match(TO); + setState(838); + ((Alter_event_trigger_stmtContext) _localctx).new_name = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_extension_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_version; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode EXTENSION() { + return getToken(PostgreSQLParser.EXTENSION, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_extension_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_extension_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_extension_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_extension_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_extension_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_extension_stmtContext alter_extension_stmt() throws RecognitionException { + Alter_extension_stmtContext _localctx = new Alter_extension_stmtContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_alter_extension_stmt); + int _la; + try { + setState(857); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 16, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(842); + match(ALTER); + setState(843); + match(EXTENSION); + setState(844); + ((Alter_extension_stmtContext) _localctx).name = identifier(0); + setState(845); + match(UPDATE); + setState(848); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TO) { + { + setState(846); + match(TO); + setState(847); + ((Alter_extension_stmtContext) _localctx).new_version = identifier(0); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(850); + match(ALTER); + setState(851); + match(EXTENSION); + setState(852); + ((Alter_extension_stmtContext) _localctx).name = identifier(0); + setState(853); + match(SET); + setState(854); + match(SCHEMA); + setState(855); + ((Alter_extension_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_data_wrapper_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_foreign_data_wrapper_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_foreign_data_wrapper_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_foreign_data_wrapper_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_foreign_data_wrapper_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_data_wrapper_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_data_wrapper_stmtContext alter_foreign_data_wrapper_stmt() throws RecognitionException { + Alter_foreign_data_wrapper_stmtContext _localctx = new Alter_foreign_data_wrapper_stmtContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_alter_foreign_data_wrapper_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(859); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_table_actionContext extends ParserRuleContext { + public Column_nameContext column_name_; + public Data_typeContext data_type_; + public IdentifierContext collation; + public Column_constraintsContext column_constraints_; + public Option_listContext attribute_values; + public Identifier_listContext attributes; + public Todo_fill_inContext constraint_name; + public Todo_fill_inContext trigger_name; + public IdentifierContext parent_table; + public Role_nameContext new_owner; + + public TerminalNode ADD() { + return getToken(PostgreSQLParser.ADD, 0); + } + + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class, 0); + } + + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class, 0); + } + + public TerminalNode COLUMN() { + return getToken(PostgreSQLParser.COLUMN, 0); + } + + public TerminalNode COLLATE() { + return getToken(PostgreSQLParser.COLLATE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Column_constraintsContext column_constraints() { + return getRuleContext(Column_constraintsContext.class, 0); + } + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode TYPE() { + return getToken(PostgreSQLParser.TYPE, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode DATA() { + return getToken(PostgreSQLParser.DATA, 0); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode NULL() { + return getToken(PostgreSQLParser.NULL, 0); + } + + public TerminalNode STATISTICS() { + return getToken(PostgreSQLParser.STATISTICS, 0); + } + + public TerminalNode INTEGER() { + return getToken(PostgreSQLParser.INTEGER, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode STORAGE() { + return getToken(PostgreSQLParser.STORAGE, 0); + } + + public TerminalNode PLAIN() { + return getToken(PostgreSQLParser.PLAIN, 0); + } + + public TerminalNode EXTERNAL() { + return getToken(PostgreSQLParser.EXTERNAL, 0); + } + + public TerminalNode EXTENDED() { + return getToken(PostgreSQLParser.EXTENDED, 0); + } + + public TerminalNode MAIN() { + return getToken(PostgreSQLParser.MAIN, 0); + } + + public TerminalNode OPTIONS() { + return getToken(PostgreSQLParser.OPTIONS, 0); + } + + public Table_constraintContext table_constraint() { + return getRuleContext(Table_constraintContext.class, 0); + } + + public TerminalNode VALID() { + return getToken(PostgreSQLParser.VALID, 0); + } + + public TerminalNode VALIDATE() { + return getToken(PostgreSQLParser.VALIDATE, 0); + } + + public TerminalNode CONSTRAINT() { + return getToken(PostgreSQLParser.CONSTRAINT, 0); + } + + public Todo_fill_inContext todo_fill_in() { + return getRuleContext(Todo_fill_inContext.class, 0); + } + + public TerminalNode DISABLE() { + return getToken(PostgreSQLParser.DISABLE, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode USER() { + return getToken(PostgreSQLParser.USER, 0); + } + + public TerminalNode ENABLE() { + return getToken(PostgreSQLParser.ENABLE, 0); + } + + public TerminalNode REPLICA() { + return getToken(PostgreSQLParser.REPLICA, 0); + } + + public TerminalNode ALWAYS() { + return getToken(PostgreSQLParser.ALWAYS, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode OIDS() { + return getToken(PostgreSQLParser.OIDS, 0); + } + + public TerminalNode WITHOUT() { + return getToken(PostgreSQLParser.WITHOUT, 0); + } + + public TerminalNode INHERIT() { + return getToken(PostgreSQLParser.INHERIT, 0); + } + + public TerminalNode NO() { + return getToken(PostgreSQLParser.NO, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public Alter_foreign_table_actionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_foreign_table_action; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_foreign_table_action(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_foreign_table_action(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_table_action(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_table_actionContext alter_foreign_table_action() throws RecognitionException { + Alter_foreign_table_actionContext _localctx = new Alter_foreign_table_actionContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_alter_foreign_table_action); + int _la; + try { + setState(1033); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 41, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(861); + match(ADD); + setState(863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(862); + match(COLUMN); + } + } + + setState(865); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(866); + ((Alter_foreign_table_actionContext) _localctx).data_type_ = data_type(); + setState(869); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLLATE) { + { + setState(867); + match(COLLATE); + setState(868); + ((Alter_foreign_table_actionContext) _localctx).collation = identifier(0); + } + } + + setState(872); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(871); + ((Alter_foreign_table_actionContext) _localctx).column_constraints_ = column_constraints(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(874); + match(DROP); + setState(876); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(875); + match(COLUMN); + } + } + + setState(880); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(878); + match(IF); + setState(879); + match(EXISTS); + } + } + + setState(882); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(884); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(883); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(886); + match(ALTER); + setState(888); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(887); + match(COLUMN); + } + } + + setState(890); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(893); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == SET) { + { + setState(891); + match(SET); + setState(892); + match(DATA); + } + } + + setState(895); + match(TYPE); + setState(896); + ((Alter_foreign_table_actionContext) _localctx).data_type_ = data_type(); + setState(899); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLLATE) { + { + setState(897); + match(COLLATE); + setState(898); + ((Alter_foreign_table_actionContext) _localctx).collation = identifier(0); + } + } + + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(901); + match(ALTER); + setState(903); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(902); + match(COLUMN); + } + } + + setState(905); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(906); + match(SET); + setState(907); + match(DEFAULT); + setState(908); + expr(0); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(910); + match(ALTER); + setState(912); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(911); + match(COLUMN); + } + } + + setState(914); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(915); + match(DROP); + setState(916); + match(DEFAULT); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(918); + match(ALTER); + setState(920); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(919); + match(COLUMN); + } + } + + setState(922); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(923); + _la = _input.LA(1); + if (!(_la == DROP || _la == SET)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(924); + match(NOT); + setState(925); + match(NULL); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(927); + match(ALTER); + setState(929); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(928); + match(COLUMN); + } + } + + setState(931); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(932); + match(SET); + setState(933); + match(STATISTICS); + setState(934); + match(INTEGER); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(936); + match(ALTER); + setState(938); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(937); + match(COLUMN); + } + } + + setState(940); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(941); + match(SET); + setState(942); + match(OPEN_PAREN); + setState(943); + ((Alter_foreign_table_actionContext) _localctx).attribute_values = option_list(); + setState(944); + match(CLOSE_PAREN); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(946); + match(ALTER); + setState(948); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(947); + match(COLUMN); + } + } + + setState(950); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(951); + match(RESET); + setState(952); + match(OPEN_PAREN); + setState(953); + ((Alter_foreign_table_actionContext) _localctx).attributes = identifier_list(); + setState(954); + match(CLOSE_PAREN); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(956); + match(ALTER); + setState(958); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(957); + match(COLUMN); + } + } + + setState(960); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(961); + match(SET); + setState(962); + match(STORAGE); + setState(963); + _la = _input.LA(1); + if (!(_la == EXTENDED || _la == EXTERNAL || _la == MAIN || _la == PLAIN)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(965); + match(ALTER); + setState(967); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(966); + match(COLUMN); + } + } + + setState(969); + ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); + setState(970); + match(OPTIONS); + { + setState(972); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ADD || _la == DROP || _la == SET) { + { + setState(971); + _la = _input.LA(1); + if (!(_la == ADD || _la == DROP || _la == SET)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(974); + match(ADD); + setState(975); + table_constraint(); + setState(978); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(976); + match(NOT); + setState(977); + match(VALID); + } + } + + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(980); + match(VALIDATE); + setState(981); + match(CONSTRAINT); + setState(982); + ((Alter_foreign_table_actionContext) _localctx).constraint_name = todo_fill_in(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(983); + match(DROP); + setState(984); + match(CONSTRAINT); + setState(987); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 36, _ctx)) { + case 1: { + setState(985); + match(IF); + setState(986); + match(EXISTS); + } + break; + } + setState(989); + ((Alter_foreign_table_actionContext) _localctx).constraint_name = todo_fill_in(); + setState(991); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(990); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(993); + match(DISABLE); + setState(994); + match(TRIGGER); + setState(998); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 38, _ctx)) { + case 1: { + setState(995); + ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); + } + break; + case 2: { + setState(996); + match(ALL); + } + break; + case 3: { + setState(997); + match(USER); + } + break; + } + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(1000); + match(ENABLE); + setState(1001); + match(TRIGGER); + setState(1005); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 39, _ctx)) { + case 1: { + setState(1002); + ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); + } + break; + case 2: { + setState(1003); + match(ALL); + } + break; + case 3: { + setState(1004); + match(USER); + } + break; + } + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(1007); + match(ENABLE); + setState(1008); + match(REPLICA); + setState(1009); + match(TRIGGER); + setState(1010); + ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(1011); + match(ENABLE); + setState(1012); + match(ALWAYS); + setState(1013); + match(TRIGGER); + setState(1014); + ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(1015); + match(SET); + setState(1016); + match(WITH); + setState(1017); + match(OIDS); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(1018); + match(SET); + setState(1019); + match(WITHOUT); + setState(1020); + match(OIDS); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(1021); + match(INHERIT); + setState(1022); + ((Alter_foreign_table_actionContext) _localctx).parent_table = identifier(0); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(1023); + match(NO); + setState(1024); + match(INHERIT); + setState(1025); + ((Alter_foreign_table_actionContext) _localctx).parent_table = identifier(0); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(1026); + match(OWNER); + setState(1027); + match(TO); + setState(1028); + ((Alter_foreign_table_actionContext) _localctx).new_owner = role_name(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(1029); + match(OPTIONS); + { + setState(1031); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ADD || _la == DROP || _la == SET) { + { + setState(1030); + _la = _input.LA(1); + if (!(_la == ADD || _la == DROP || _la == SET)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_table_action_listContext extends ParserRuleContext { + public List alter_foreign_table_action() { + return getRuleContexts(Alter_foreign_table_actionContext.class); + } + + public Alter_foreign_table_actionContext alter_foreign_table_action(int i) { + return getRuleContext(Alter_foreign_table_actionContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Alter_foreign_table_action_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_foreign_table_action_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_foreign_table_action_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_foreign_table_action_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_table_action_list(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_table_action_listContext alter_foreign_table_action_list() throws RecognitionException { + Alter_foreign_table_action_listContext _localctx = new Alter_foreign_table_action_listContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_alter_foreign_table_action_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1035); + alter_foreign_table_action(); + setState(1040); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(1036); + match(COMMA); + setState(1037); + alter_foreign_table_action(); + } + } + setState(1042); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_table_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Alter_foreign_table_action_listContext actions; + public Column_nameContext column_name_; + public IdentifierContext new_column_name; + public IdentifierContext new_name; + public IdentifierContext new_schama; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public Alter_foreign_table_action_listContext alter_foreign_table_action_list() { + return getRuleContext(Alter_foreign_table_action_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class, 0); + } + + public TerminalNode COLUMN() { + return getToken(PostgreSQLParser.COLUMN, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_foreign_table_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_foreign_table_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_foreign_table_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_table_stmtContext alter_foreign_table_stmt() throws RecognitionException { + Alter_foreign_table_stmtContext _localctx = new Alter_foreign_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_alter_foreign_table_stmt); + int _la; + try { + setState(1105); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 52, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1043); + match(ALTER); + setState(1044); + match(FOREIGN); + setState(1045); + match(TABLE); + setState(1048); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1046); + match(IF); + setState(1047); + match(EXISTS); + } + } + + setState(1051); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(1050); + match(ONLY); + } + } + + setState(1053); + ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); + setState(1055); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(1054); + match(STAR); + } + } + + setState(1057); + ((Alter_foreign_table_stmtContext) _localctx).actions = alter_foreign_table_action_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1059); + match(ALTER); + setState(1060); + match(FOREIGN); + setState(1061); + match(TABLE); + setState(1064); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1062); + match(IF); + setState(1063); + match(EXISTS); + } + } + + setState(1067); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(1066); + match(ONLY); + } + } + + setState(1069); + ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); + setState(1071); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(1070); + match(STAR); + } + } + + setState(1073); + match(RENAME); + setState(1075); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLUMN) { + { + setState(1074); + match(COLUMN); + } + } + + setState(1077); + ((Alter_foreign_table_stmtContext) _localctx).column_name_ = column_name(); + setState(1078); + match(TO); + setState(1079); + ((Alter_foreign_table_stmtContext) _localctx).new_column_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1081); + match(ALTER); + setState(1082); + match(FOREIGN); + setState(1083); + match(TABLE); + setState(1086); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1084); + match(IF); + setState(1085); + match(EXISTS); + } + } + + setState(1088); + ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); + setState(1089); + match(RENAME); + setState(1090); + match(TO); + setState(1091); + ((Alter_foreign_table_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1093); + match(ALTER); + setState(1094); + match(FOREIGN); + setState(1095); + match(TABLE); + setState(1098); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1096); + match(IF); + setState(1097); + match(EXISTS); + } + } + + setState(1100); + ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); + setState(1101); + match(SET); + setState(1102); + match(SCHEMA); + setState(1103); + ((Alter_foreign_table_stmtContext) _localctx).new_schama = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_function_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_function_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_function_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_function_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_function_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_function_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_function_stmtContext alter_function_stmt() throws RecognitionException { + Alter_function_stmtContext _localctx = new Alter_function_stmtContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_alter_function_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1107); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_group_stmtContext extends ParserRuleContext { + public Role_nameContext role; + public Identifier_listContext users; + public IdentifierContext group_name; + public IdentifierContext new_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode GROUP() { + return getToken(PostgreSQLParser.GROUP, 0); + } + + public TerminalNode ADD() { + return getToken(PostgreSQLParser.ADD, 0); + } + + public TerminalNode USER() { + return getToken(PostgreSQLParser.USER, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public Alter_group_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_group_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_group_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_group_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_group_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_group_stmtContext alter_group_stmt() throws RecognitionException { + Alter_group_stmtContext _localctx = new Alter_group_stmtContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_alter_group_stmt); + try { + setState(1130); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 53, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1109); + match(ALTER); + setState(1110); + match(GROUP); + setState(1111); + ((Alter_group_stmtContext) _localctx).role = role_name(); + setState(1112); + match(ADD); + setState(1113); + match(USER); + setState(1114); + ((Alter_group_stmtContext) _localctx).users = identifier_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1116); + match(ALTER); + setState(1117); + match(GROUP); + setState(1118); + ((Alter_group_stmtContext) _localctx).role = role_name(); + setState(1119); + match(DROP); + setState(1120); + match(USER); + setState(1121); + ((Alter_group_stmtContext) _localctx).users = identifier_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1123); + match(ALTER); + setState(1124); + match(GROUP); + setState(1125); + ((Alter_group_stmtContext) _localctx).group_name = identifier(0); + setState(1126); + match(RENAME); + setState(1127); + match(TO); + setState(1128); + ((Alter_group_stmtContext) _localctx).new_name = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_index_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext tablespace_name; + public IdentifierContext extension_name; + public Identifier_listContext roles; + public IdentifierContext new_tablespace; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public List TABLESPACE() { + return getTokens(PostgreSQLParser.TABLESPACE); + } + + public TerminalNode TABLESPACE(int i) { + return getToken(PostgreSQLParser.TABLESPACE, i); + } + + public TerminalNode DEPENDS() { + return getToken(PostgreSQLParser.DEPENDS, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode EXTENSION() { + return getToken(PostgreSQLParser.EXTENSION, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public TerminalNode OWNED() { + return getToken(PostgreSQLParser.OWNED, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public TerminalNode NOWAIT() { + return getToken(PostgreSQLParser.NOWAIT, 0); + } + + public Alter_index_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_index_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_index_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_index_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_index_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_index_stmtContext alter_index_stmt() throws RecognitionException { + Alter_index_stmtContext _localctx = new Alter_index_stmtContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_alter_index_stmt); + int _la; + try { + setState(1202); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 60, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1132); + match(ALTER); + setState(1133); + match(INDEX); + setState(1136); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1134); + match(IF); + setState(1135); + match(EXISTS); + } + } + + setState(1138); + ((Alter_index_stmtContext) _localctx).name = identifier(0); + setState(1139); + match(RENAME); + setState(1140); + match(TO); + setState(1141); + ((Alter_index_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1143); + match(ALTER); + setState(1144); + match(INDEX); + setState(1147); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1145); + match(IF); + setState(1146); + match(EXISTS); + } + } + + setState(1149); + ((Alter_index_stmtContext) _localctx).name = identifier(0); + setState(1150); + match(SET); + setState(1151); + match(TABLESPACE); + setState(1152); + ((Alter_index_stmtContext) _localctx).tablespace_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1154); + match(ALTER); + setState(1155); + match(INDEX); + setState(1156); + ((Alter_index_stmtContext) _localctx).name = identifier(0); + setState(1157); + match(DEPENDS); + setState(1158); + match(ON); + setState(1159); + match(EXTENSION); + setState(1160); + ((Alter_index_stmtContext) _localctx).extension_name = identifier(0); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1162); + match(ALTER); + setState(1163); + match(INDEX); + setState(1166); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1164); + match(IF); + setState(1165); + match(EXISTS); + } + } + + setState(1168); + ((Alter_index_stmtContext) _localctx).name = identifier(0); + setState(1169); + match(SET); + setState(1170); + match(OPEN_PAREN); + setState(1171); + option_list(); + setState(1172); + match(CLOSE_PAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1174); + match(ALTER); + setState(1175); + match(INDEX); + setState(1178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1176); + match(IF); + setState(1177); + match(EXISTS); + } + } + + setState(1180); + match(RESET); + setState(1181); + match(OPEN_PAREN); + setState(1182); + identifier_list(); + setState(1183); + match(CLOSE_PAREN); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1185); + match(ALTER); + setState(1186); + match(INDEX); + setState(1187); + match(ALL); + setState(1188); + match(IN); + setState(1189); + match(TABLESPACE); + setState(1190); + ((Alter_index_stmtContext) _localctx).name = identifier(0); + setState(1194); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OWNED) { + { + setState(1191); + match(OWNED); + setState(1192); + match(BY); + setState(1193); + ((Alter_index_stmtContext) _localctx).roles = identifier_list(); + } + } + + setState(1196); + match(SET); + setState(1197); + match(TABLESPACE); + setState(1198); + ((Alter_index_stmtContext) _localctx).new_tablespace = identifier(0); + setState(1200); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOWAIT) { + { + setState(1199); + match(NOWAIT); + } + } + + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_language_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode LANGUAGE() { + return getToken(PostgreSQLParser.LANGUAGE, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode PROCEDURAL() { + return getToken(PostgreSQLParser.PROCEDURAL, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public Alter_language_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_language_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_language_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_language_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_language_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_language_stmtContext alter_language_stmt() throws RecognitionException { + Alter_language_stmtContext _localctx = new Alter_language_stmtContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_alter_language_stmt); + int _la; + try { + setState(1227); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 64, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1204); + match(ALTER); + setState(1206); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == PROCEDURAL) { + { + setState(1205); + match(PROCEDURAL); + } + } + + setState(1208); + match(LANGUAGE); + setState(1209); + ((Alter_language_stmtContext) _localctx).name = identifier(0); + setState(1210); + match(RENAME); + setState(1211); + match(TO); + setState(1212); + ((Alter_language_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1214); + match(ALTER); + setState(1216); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == PROCEDURAL) { + { + setState(1215); + match(PROCEDURAL); + } + } + + setState(1218); + match(LANGUAGE); + setState(1219); + ((Alter_language_stmtContext) _localctx).name = identifier(0); + setState(1220); + match(OWNER); + setState(1221); + match(TO); + setState(1225); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1222); + ((Alter_language_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(1223); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(1224); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_large_object_stmtContext extends ParserRuleContext { + public Token large_object_oid; + public IdentifierContext new_owner; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode LARGE() { + return getToken(PostgreSQLParser.LARGE, 0); + } + + public TerminalNode OBJECT() { + return getToken(PostgreSQLParser.OBJECT, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Alter_large_object_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_large_object_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_large_object_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_large_object_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_large_object_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_large_object_stmtContext alter_large_object_stmt() throws RecognitionException { + Alter_large_object_stmtContext _localctx = new Alter_large_object_stmtContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_alter_large_object_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1229); + match(ALTER); + setState(1230); + match(LARGE); + setState(1231); + match(OBJECT); + setState(1232); + ((Alter_large_object_stmtContext) _localctx).large_object_oid = match(INTEGER_LITERAL); + setState(1233); + match(OWNER); + setState(1234); + match(TO); + setState(1238); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1235); + ((Alter_large_object_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(1236); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(1237); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_materialize_view_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_materialize_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_materialize_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_materialize_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_materialize_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_materialize_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_materialize_view_stmtContext alter_materialize_view_stmt() throws RecognitionException { + Alter_materialize_view_stmtContext _localctx = new Alter_materialize_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_alter_materialize_view_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1240); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_operator_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_operator_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_operator_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_operator_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_operator_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_operator_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_operator_stmtContext alter_operator_stmt() throws RecognitionException { + Alter_operator_stmtContext _localctx = new Alter_operator_stmtContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_alter_operator_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1242); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_operator_class_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode CLASS() { + return getToken(PostgreSQLParser.CLASS, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_operator_class_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_operator_class_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_operator_class_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_operator_class_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws RecognitionException { + Alter_operator_class_stmtContext _localctx = new Alter_operator_class_stmtContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_alter_operator_class_stmt); + try { + setState(1277); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 67, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1244); + match(ALTER); + setState(1245); + match(OPERATOR); + setState(1246); + match(CLASS); + setState(1247); + ((Alter_operator_class_stmtContext) _localctx).name = identifier(0); + setState(1248); + match(USING); + setState(1249); + index_method(); + setState(1250); + match(RENAME); + setState(1251); + match(TO); + setState(1252); + ((Alter_operator_class_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1254); + match(ALTER); + setState(1255); + match(OPERATOR); + setState(1256); + match(CLASS); + setState(1257); + ((Alter_operator_class_stmtContext) _localctx).name = identifier(0); + setState(1258); + match(USING); + setState(1259); + index_method(); + setState(1260); + match(OWNER); + setState(1261); + match(TO); + setState(1265); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1262); + ((Alter_operator_class_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(1263); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(1264); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1267); + match(ALTER); + setState(1268); + match(OPERATOR); + setState(1269); + match(CLASS); + setState(1270); + ((Alter_operator_class_stmtContext) _localctx).name = identifier(0); + setState(1271); + match(USING); + setState(1272); + index_method(); + setState(1273); + match(SET); + setState(1274); + match(SCHEMA); + setState(1275); + ((Alter_operator_class_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_operator_family_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_operator_family_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_operator_family_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_operator_family_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_operator_family_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_operator_family_stmtContext alter_operator_family_stmt() throws RecognitionException { + Alter_operator_family_stmtContext _localctx = new Alter_operator_family_stmtContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_alter_operator_family_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1279); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_policy_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + public IdentifierContext new_name; + public Role_name_listContext roles; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode POLICY() { + return getToken(PostgreSQLParser.POLICY, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class, i); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode CHECK() { + return getToken(PostgreSQLParser.CHECK, 0); + } + + public Role_name_listContext role_name_list() { + return getRuleContext(Role_name_listContext.class, 0); + } + + public Alter_policy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_policy_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_policy_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_policy_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_policy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_policy_stmtContext alter_policy_stmt() throws RecognitionException { + Alter_policy_stmtContext _localctx = new Alter_policy_stmtContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_alter_policy_stmt); + int _la; + try { + setState(1308); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 71, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1281); + match(ALTER); + setState(1282); + match(POLICY); + setState(1283); + ((Alter_policy_stmtContext) _localctx).name = identifier(0); + setState(1284); + match(ON); + setState(1285); + ((Alter_policy_stmtContext) _localctx).table_name = identifier(0); + setState(1286); + match(RENAME); + setState(1287); + match(TO); + setState(1288); + ((Alter_policy_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1290); + match(ALTER); + setState(1291); + match(POLICY); + setState(1292); + ((Alter_policy_stmtContext) _localctx).name = identifier(0); + setState(1293); + match(ON); + setState(1294); + ((Alter_policy_stmtContext) _localctx).table_name = identifier(0); + setState(1297); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TO) { + { + setState(1295); + match(TO); + setState(1296); + ((Alter_policy_stmtContext) _localctx).roles = role_name_list(); + } + } + + setState(1301); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == USING) { + { + setState(1299); + match(USING); + setState(1300); + predicate(0); + } + } + + setState(1306); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(1303); + match(WITH); + setState(1304); + match(CHECK); + setState(1305); + predicate(0); + } + } + + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_publication_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Identifier_listContext table_names; + public Role_nameContext new_owner; + public Name_Context new_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode PUBLICATION() { + return getToken(PostgreSQLParser.PUBLICATION, 0); + } + + public TerminalNode ADD() { + return getToken(PostgreSQLParser.ADD, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Alter_publication_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_publication_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_publication_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_publication_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_publication_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_publication_stmtContext alter_publication_stmt() throws RecognitionException { + Alter_publication_stmtContext _localctx = new Alter_publication_stmtContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_alter_publication_stmt); + int _la; + try { + setState(1362); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 75, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1310); + match(ALTER); + setState(1311); + match(PUBLICATION); + setState(1312); + ((Alter_publication_stmtContext) _localctx).name = identifier(0); + setState(1313); + match(ADD); + setState(1314); + match(TABLE); + setState(1316); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(1315); + match(ONLY); + } + } + + setState(1318); + ((Alter_publication_stmtContext) _localctx).table_names = identifier_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1320); + match(ALTER); + setState(1321); + match(PUBLICATION); + setState(1322); + ((Alter_publication_stmtContext) _localctx).name = identifier(0); + setState(1323); + match(SET); + setState(1324); + match(TABLE); + setState(1326); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(1325); + match(ONLY); + } + } + + setState(1328); + ((Alter_publication_stmtContext) _localctx).table_names = identifier_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1330); + match(ALTER); + setState(1331); + match(PUBLICATION); + setState(1332); + ((Alter_publication_stmtContext) _localctx).name = identifier(0); + setState(1333); + match(DROP); + setState(1334); + match(TABLE); + setState(1336); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(1335); + match(ONLY); + } + } + + setState(1338); + ((Alter_publication_stmtContext) _localctx).table_names = identifier_list(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1340); + match(ALTER); + setState(1341); + match(PUBLICATION); + setState(1342); + ((Alter_publication_stmtContext) _localctx).name = identifier(0); + setState(1343); + match(SET); + setState(1344); + match(OPEN_PAREN); + setState(1345); + option_list(); + setState(1346); + match(CLOSE_PAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1348); + match(ALTER); + setState(1349); + match(PUBLICATION); + setState(1350); + ((Alter_publication_stmtContext) _localctx).name = identifier(0); + setState(1351); + match(OWNER); + setState(1352); + match(TO); + setState(1353); + ((Alter_publication_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1355); + match(ALTER); + setState(1356); + match(PUBLICATION); + setState(1357); + ((Alter_publication_stmtContext) _localctx).name = identifier(0); + setState(1358); + match(RENAME); + setState(1359); + match(TO); + setState(1360); + ((Alter_publication_stmtContext) _localctx).new_name = name_(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_role_optionsContext extends ParserRuleContext { + public Token connlimit; + + public TerminalNode SUPERUSER() { + return getToken(PostgreSQLParser.SUPERUSER, 0); + } + + public TerminalNode NOSUPERUSER() { + return getToken(PostgreSQLParser.NOSUPERUSER, 0); + } + + public TerminalNode CREATEDB() { + return getToken(PostgreSQLParser.CREATEDB, 0); + } + + public TerminalNode NOCREATEDB() { + return getToken(PostgreSQLParser.NOCREATEDB, 0); + } + + public TerminalNode CREATEROLE() { + return getToken(PostgreSQLParser.CREATEROLE, 0); + } + + public TerminalNode NOCREATEROLE() { + return getToken(PostgreSQLParser.NOCREATEROLE, 0); + } + + public TerminalNode INHERIT() { + return getToken(PostgreSQLParser.INHERIT, 0); + } + + public TerminalNode NOINHERIT() { + return getToken(PostgreSQLParser.NOINHERIT, 0); + } + + public TerminalNode LOGIN() { + return getToken(PostgreSQLParser.LOGIN, 0); + } + + public TerminalNode NOLOGIN() { + return getToken(PostgreSQLParser.NOLOGIN, 0); + } + + public TerminalNode REPLICATION() { + return getToken(PostgreSQLParser.REPLICATION, 0); + } + + public TerminalNode NOREPLICATION() { + return getToken(PostgreSQLParser.NOREPLICATION, 0); + } + + public TerminalNode BYPASSRLS() { + return getToken(PostgreSQLParser.BYPASSRLS, 0); + } + + public TerminalNode NOBYPASSRLS() { + return getToken(PostgreSQLParser.NOBYPASSRLS, 0); + } + + public TerminalNode CONNECTION() { + return getToken(PostgreSQLParser.CONNECTION, 0); + } + + public TerminalNode LIMIT() { + return getToken(PostgreSQLParser.LIMIT, 0); + } + + public TerminalNode INTEGER() { + return getToken(PostgreSQLParser.INTEGER, 0); + } + + public TerminalNode PASSWORD() { + return getToken(PostgreSQLParser.PASSWORD, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode ENCRYPTED() { + return getToken(PostgreSQLParser.ENCRYPTED, 0); + } + + public TerminalNode VALID() { + return getToken(PostgreSQLParser.VALID, 0); + } + + public TerminalNode UNTIL() { + return getToken(PostgreSQLParser.UNTIL, 0); + } + + public Alter_role_optionsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_role_options; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_role_options(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_role_options(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_role_options(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_role_optionsContext alter_role_options() throws RecognitionException { + Alter_role_optionsContext _localctx = new Alter_role_optionsContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_alter_role_options); + int _la; + try { + setState(1389); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPERUSER: + enterOuterAlt(_localctx, 1); + { + setState(1364); + match(SUPERUSER); + } + break; + case NOSUPERUSER: + enterOuterAlt(_localctx, 2); + { + setState(1365); + match(NOSUPERUSER); + } + break; + case CREATEDB: + enterOuterAlt(_localctx, 3); + { + setState(1366); + match(CREATEDB); + } + break; + case NOCREATEDB: + enterOuterAlt(_localctx, 4); + { + setState(1367); + match(NOCREATEDB); + } + break; + case CREATEROLE: + enterOuterAlt(_localctx, 5); + { + setState(1368); + match(CREATEROLE); + } + break; + case NOCREATEROLE: + enterOuterAlt(_localctx, 6); + { + setState(1369); + match(NOCREATEROLE); + } + break; + case INHERIT: + enterOuterAlt(_localctx, 7); + { + setState(1370); + match(INHERIT); + } + break; + case NOINHERIT: + enterOuterAlt(_localctx, 8); + { + setState(1371); + match(NOINHERIT); + } + break; + case LOGIN: + enterOuterAlt(_localctx, 9); + { + setState(1372); + match(LOGIN); + } + break; + case NOLOGIN: + enterOuterAlt(_localctx, 10); + { + setState(1373); + match(NOLOGIN); + } + break; + case REPLICATION: + enterOuterAlt(_localctx, 11); + { + setState(1374); + match(REPLICATION); + } + break; + case NOREPLICATION: + enterOuterAlt(_localctx, 12); + { + setState(1375); + match(NOREPLICATION); + } + break; + case BYPASSRLS: + enterOuterAlt(_localctx, 13); + { + setState(1376); + match(BYPASSRLS); + } + break; + case NOBYPASSRLS: + enterOuterAlt(_localctx, 14); + { + setState(1377); + match(NOBYPASSRLS); + } + break; + case CONNECTION: + enterOuterAlt(_localctx, 15); + { + setState(1378); + match(CONNECTION); + setState(1379); + match(LIMIT); + setState(1380); + ((Alter_role_optionsContext) _localctx).connlimit = match(INTEGER); + } + break; + case ENCRYPTED: + case PASSWORD: + enterOuterAlt(_localctx, 16); + { + setState(1382); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ENCRYPTED) { + { + setState(1381); + match(ENCRYPTED); + } + } + + setState(1384); + match(PASSWORD); + setState(1385); + match(SINGLEQ_STRING_LITERAL); + } + break; + case VALID: + enterOuterAlt(_localctx, 17); + { + setState(1386); + match(VALID); + setState(1387); + match(UNTIL); + setState(1388); + match(SINGLEQ_STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_role_stmtContext extends ParserRuleContext { + public Role_nameContext role; + public Alter_role_optionsContext options; + public Name_Context name; + public Name_Context new_name; + public Name_Context database_name; + public IdentifierContext configuration_parameter; + public Param_valueContext value; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode ROLE() { + return getToken(PostgreSQLParser.ROLE, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public List alter_role_options() { + return getRuleContexts(Alter_role_optionsContext.class); + } + + public Alter_role_optionsContext alter_role_options(int i) { + return getRuleContext(Alter_role_optionsContext.class, i); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public List ALL() { + return getTokens(PostgreSQLParser.ALL); + } + + public TerminalNode ALL(int i) { + return getToken(PostgreSQLParser.ALL, i); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public TerminalNode DATABASE() { + return getToken(PostgreSQLParser.DATABASE, 0); + } + + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public TerminalNode CURRENT() { + return getToken(PostgreSQLParser.CURRENT, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public Alter_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_role_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_role_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_role_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_role_stmtContext alter_role_stmt() throws RecognitionException { + Alter_role_stmtContext _localctx = new Alter_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_alter_role_stmt); + int _la; + try { + setState(1469); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 89, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1391); + match(ALTER); + setState(1392); + match(ROLE); + setState(1393); + ((Alter_role_stmtContext) _localctx).role = role_name(); + setState(1395); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(1394); + match(WITH); + } + } + + setState(1398); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1397); + ((Alter_role_stmtContext) _localctx).options = alter_role_options(); + } + } + setState(1400); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == CONNECTION || _la == CREATEDB || _la == ENCRYPTED || _la == NOCREATEDB || _la == PASSWORD || ((((_la - 627)) & ~0x3f) == 0 && ((1L << (_la - 627)) & ((1L << (VALID - 627)) | (1L << (SUPERUSER - 627)) | (1L << (NOSUPERUSER - 627)) | (1L << (CREATEROLE - 627)) | (1L << (NOCREATEROLE - 627)) | (1L << (INHERIT - 627)) | (1L << (NOINHERIT - 627)) | (1L << (LOGIN - 627)) | (1L << (NOLOGIN - 627)) | (1L << (REPLICATION - 627)) | (1L << (NOREPLICATION - 627)) | (1L << (BYPASSRLS - 627)) | (1L << (NOBYPASSRLS - 627)))) != 0)); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1402); + match(ALTER); + setState(1403); + match(ROLE); + setState(1404); + ((Alter_role_stmtContext) _localctx).name = name_(); + setState(1405); + match(RENAME); + setState(1406); + match(TO); + setState(1407); + ((Alter_role_stmtContext) _localctx).new_name = name_(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1409); + match(ALTER); + setState(1410); + match(ROLE); + setState(1413); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1411); + ((Alter_role_stmtContext) _localctx).role = role_name(); + } + break; + case ALL: { + setState(1412); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1418); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN) { + { + setState(1415); + match(IN); + setState(1416); + match(DATABASE); + setState(1417); + ((Alter_role_stmtContext) _localctx).database_name = name_(); + } + } + + setState(1420); + match(SET); + setState(1421); + ((Alter_role_stmtContext) _localctx).configuration_parameter = identifier(0); + setState(1422); + _la = _input.LA(1); + if (!(_la == TO || _la == EQUAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1425); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case ON: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case YES: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1423); + ((Alter_role_stmtContext) _localctx).value = param_value(); + } + break; + case DEFAULT: { + setState(1424); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1427); + match(ALTER); + setState(1428); + match(ROLE); + setState(1431); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1429); + ((Alter_role_stmtContext) _localctx).role = role_name(); + } + break; + case ALL: { + setState(1430); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1436); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN) { + { + setState(1433); + match(IN); + setState(1434); + match(DATABASE); + setState(1435); + ((Alter_role_stmtContext) _localctx).database_name = name_(); + } + } + + setState(1438); + match(SET); + setState(1439); + ((Alter_role_stmtContext) _localctx).configuration_parameter = identifier(0); + setState(1440); + match(FROM); + setState(1441); + match(CURRENT); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1443); + match(ALTER); + setState(1444); + match(ROLE); + setState(1447); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1445); + ((Alter_role_stmtContext) _localctx).role = role_name(); + } + break; + case ALL: { + setState(1446); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1452); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN) { + { + setState(1449); + match(IN); + setState(1450); + match(DATABASE); + setState(1451); + ((Alter_role_stmtContext) _localctx).database_name = name_(); + } + } + + setState(1454); + match(RESET); + setState(1455); + ((Alter_role_stmtContext) _localctx).configuration_parameter = identifier(0); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1456); + match(ALTER); + setState(1457); + match(ROLE); + setState(1460); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1458); + ((Alter_role_stmtContext) _localctx).role = role_name(); + } + break; + case ALL: { + setState(1459); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1465); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN) { + { + setState(1462); + match(IN); + setState(1463); + match(DATABASE); + setState(1464); + ((Alter_role_stmtContext) _localctx).database_name = name_(); + } + } + + setState(1467); + match(RESET); + setState(1468); + match(ALL); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_rule_stmtContext extends ParserRuleContext { + public Name_Context name; + public IdentifierContext table_name; + public Name_Context new_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode RULE() { + return getToken(PostgreSQLParser.RULE, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Alter_rule_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_rule_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_rule_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_rule_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_rule_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_rule_stmtContext alter_rule_stmt() throws RecognitionException { + Alter_rule_stmtContext _localctx = new Alter_rule_stmtContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_alter_rule_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1471); + match(ALTER); + setState(1472); + match(RULE); + setState(1473); + ((Alter_rule_stmtContext) _localctx).name = name_(); + setState(1474); + match(ON); + setState(1475); + ((Alter_rule_stmtContext) _localctx).table_name = identifier(0); + setState(1476); + match(RENAME); + setState(1477); + match(TO); + setState(1478); + ((Alter_rule_stmtContext) _localctx).new_name = name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_schema_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public Alter_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_schema_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_schema_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_schema_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionException { + Alter_schema_stmtContext _localctx = new Alter_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_alter_schema_stmt); + try { + setState(1497); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 91, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1480); + match(ALTER); + setState(1481); + match(SCHEMA); + setState(1482); + ((Alter_schema_stmtContext) _localctx).name = identifier(0); + setState(1483); + match(RENAME); + setState(1484); + match(TO); + setState(1485); + ((Alter_schema_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1487); + match(ALTER); + setState(1488); + match(SCHEMA); + setState(1489); + ((Alter_schema_stmtContext) _localctx).name = identifier(0); + setState(1490); + match(OWNER); + setState(1491); + match(TO); + setState(1495); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1492); + ((Alter_schema_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(1493); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(1494); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_sequence_stmtContext extends ParserRuleContext { + public Name_Context name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode SEQUENCE() { + return getToken(PostgreSQLParser.SEQUENCE, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Alter_sequence_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_sequence_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_sequence_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_sequence_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_sequence_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_sequence_stmtContext alter_sequence_stmt() throws RecognitionException { + Alter_sequence_stmtContext _localctx = new Alter_sequence_stmtContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_alter_sequence_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1499); + match(ALTER); + setState(1500); + match(SEQUENCE); + setState(1503); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1501); + match(IF); + setState(1502); + match(EXISTS); + } + } + + setState(1505); + ((Alter_sequence_stmtContext) _localctx).name = name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_server_options_listContext extends ParserRuleContext { + public IdentifierContext option; + public Param_valueContext value; + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public List ADD() { + return getTokens(PostgreSQLParser.ADD); + } + + public TerminalNode ADD(int i) { + return getToken(PostgreSQLParser.ADD, i); + } + + public List SET() { + return getTokens(PostgreSQLParser.SET); + } + + public TerminalNode SET(int i) { + return getToken(PostgreSQLParser.SET, i); + } + + public List DROP() { + return getTokens(PostgreSQLParser.DROP); + } + + public TerminalNode DROP(int i) { + return getToken(PostgreSQLParser.DROP, i); + } + + public List param_value() { + return getRuleContexts(Param_valueContext.class); + } + + public Param_valueContext param_value(int i) { + return getRuleContext(Param_valueContext.class, i); + } + + public Alter_server_options_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_server_options_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_server_options_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_server_options_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_server_options_list(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_server_options_listContext alter_server_options_list() throws RecognitionException { + Alter_server_options_listContext _localctx = new Alter_server_options_listContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_alter_server_options_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + { + setState(1508); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 93, _ctx)) { + case 1: { + setState(1507); + _la = _input.LA(1); + if (!(_la == ADD || _la == DROP || _la == SET)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(1510); + ((Alter_server_options_listContext) _localctx).option = identifier(0); + setState(1512); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(1511); + ((Alter_server_options_listContext) _localctx).value = param_value(); + } + } + + } + setState(1524); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(1514); + match(COMMA); + setState(1516); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 95, _ctx)) { + case 1: { + setState(1515); + _la = _input.LA(1); + if (!(_la == ADD || _la == DROP || _la == SET)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(1518); + ((Alter_server_options_listContext) _localctx).option = identifier(0); + setState(1520); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(1519); + ((Alter_server_options_listContext) _localctx).value = param_value(); + } + } + + } + } + setState(1526); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_server_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Role_nameContext new_owner; + public Name_Context new_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode SERVER() { + return getToken(PostgreSQLParser.SERVER, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode VERSION() { + return getToken(PostgreSQLParser.VERSION, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode OPTIONS() { + return getToken(PostgreSQLParser.OPTIONS, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Alter_server_options_listContext alter_server_options_list() { + return getRuleContext(Alter_server_options_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Alter_server_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_server_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_server_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_server_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_server_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_server_stmtContext alter_server_stmt() throws RecognitionException { + Alter_server_stmtContext _localctx = new Alter_server_stmtContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_alter_server_stmt); + int _la; + try { + setState(1557); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 100, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1527); + match(ALTER); + setState(1528); + match(SERVER); + setState(1529); + ((Alter_server_stmtContext) _localctx).name = identifier(0); + setState(1541); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 99, _ctx)) { + case 1: { + { + setState(1530); + match(VERSION); + setState(1531); + match(SINGLEQ_STRING_LITERAL); + } + } + break; + case 2: { + { + setState(1534); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == VERSION) { + { + setState(1532); + match(VERSION); + setState(1533); + match(SINGLEQ_STRING_LITERAL); + } + } + + { + setState(1536); + match(OPTIONS); + setState(1537); + match(OPEN_PAREN); + setState(1538); + alter_server_options_list(); + setState(1539); + match(CLOSE_PAREN); + } + } + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1543); + match(ALTER); + setState(1544); + match(SERVER); + setState(1545); + ((Alter_server_stmtContext) _localctx).name = identifier(0); + setState(1546); + match(OWNER); + setState(1547); + match(TO); + setState(1548); + ((Alter_server_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1550); + match(ALTER); + setState(1551); + match(SERVER); + setState(1552); + ((Alter_server_stmtContext) _localctx).name = identifier(0); + setState(1553); + match(RENAME); + setState(1554); + match(TO); + setState(1555); + ((Alter_server_stmtContext) _localctx).new_name = name_(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_statistics_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_owner; + public IdentifierContext new_name; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode STATISTICS() { + return getToken(PostgreSQLParser.STATISTICS, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_statistics_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_statistics_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_statistics_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_statistics_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_statistics_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_statistics_stmtContext alter_statistics_stmt() throws RecognitionException { + Alter_statistics_stmtContext _localctx = new Alter_statistics_stmtContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_alter_statistics_stmt); + try { + setState(1583); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 102, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1559); + match(ALTER); + setState(1560); + match(STATISTICS); + setState(1561); + ((Alter_statistics_stmtContext) _localctx).name = identifier(0); + setState(1562); + match(OWNER); + setState(1563); + match(TO); + setState(1567); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1564); + ((Alter_statistics_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(1565); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(1566); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1569); + match(ALTER); + setState(1570); + match(STATISTICS); + setState(1571); + ((Alter_statistics_stmtContext) _localctx).name = identifier(0); + setState(1572); + match(RENAME); + setState(1573); + match(TO); + setState(1574); + ((Alter_statistics_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1576); + match(ALTER); + setState(1577); + match(STATISTICS); + setState(1578); + ((Alter_statistics_stmtContext) _localctx).name = identifier(0); + setState(1579); + match(SET); + setState(1580); + match(SCHEMA); + setState(1581); + ((Alter_statistics_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_subscription_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Param_valueContext conninfo; + public Name_listContext publication_name; + public Role_nameContext new_owner; + public IdentifierContext new_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode SUBSCRIPTION() { + return getToken(PostgreSQLParser.SUBSCRIPTION, 0); + } + + public TerminalNode CONNECTION() { + return getToken(PostgreSQLParser.CONNECTION, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode PUBLICATION() { + return getToken(PostgreSQLParser.PUBLICATION, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode REFRESH() { + return getToken(PostgreSQLParser.REFRESH, 0); + } + + public TerminalNode ENABLE() { + return getToken(PostgreSQLParser.ENABLE, 0); + } + + public TerminalNode DISABLE() { + return getToken(PostgreSQLParser.DISABLE, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public Alter_subscription_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_subscription_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_subscription_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_subscription_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_subscription_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_subscription_stmtContext alter_subscription_stmt() throws RecognitionException { + Alter_subscription_stmtContext _localctx = new Alter_subscription_stmtContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_alter_subscription_stmt); + int _la; + try { + setState(1648); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 105, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1585); + match(ALTER); + setState(1586); + match(SUBSCRIPTION); + setState(1587); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1588); + match(CONNECTION); + setState(1589); + ((Alter_subscription_stmtContext) _localctx).conninfo = param_value(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1591); + match(ALTER); + setState(1592); + match(SUBSCRIPTION); + setState(1593); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1594); + match(SET); + setState(1595); + match(PUBLICATION); + setState(1596); + ((Alter_subscription_stmtContext) _localctx).publication_name = name_list(); + setState(1602); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(1597); + match(WITH); + setState(1598); + match(OPEN_PAREN); + setState(1599); + option_list(); + setState(1600); + match(CLOSE_PAREN); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1604); + match(ALTER); + setState(1605); + match(SUBSCRIPTION); + setState(1606); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1607); + match(REFRESH); + setState(1608); + match(PUBLICATION); + setState(1614); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(1609); + match(WITH); + setState(1610); + match(OPEN_PAREN); + setState(1611); + option_list(); + setState(1612); + match(CLOSE_PAREN); + } + } + + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1616); + match(ALTER); + setState(1617); + match(SUBSCRIPTION); + setState(1618); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1619); + match(ENABLE); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1621); + match(ALTER); + setState(1622); + match(SUBSCRIPTION); + setState(1623); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1624); + match(DISABLE); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1626); + match(ALTER); + setState(1627); + match(SUBSCRIPTION); + setState(1628); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1629); + match(SET); + setState(1630); + match(OPEN_PAREN); + setState(1631); + option_list(); + setState(1632); + match(CLOSE_PAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1634); + match(ALTER); + setState(1635); + match(SUBSCRIPTION); + setState(1636); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1637); + match(OWNER); + setState(1638); + match(TO); + setState(1639); + ((Alter_subscription_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1641); + match(ALTER); + setState(1642); + match(SUBSCRIPTION); + setState(1643); + ((Alter_subscription_stmtContext) _localctx).name = identifier(0); + setState(1644); + match(RENAME); + setState(1645); + match(TO); + setState(1646); + ((Alter_subscription_stmtContext) _localctx).new_name = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_system_stmtContext extends ParserRuleContext { + public Token param; + public Param_valueContext value; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode SYSTEM() { + return getToken(PostgreSQLParser.SYSTEM, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode IDENTIFIER() { + return getToken(PostgreSQLParser.IDENTIFIER, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public Alter_system_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_system_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_system_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_system_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_system_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_system_stmtContext alter_system_stmt() throws RecognitionException { + Alter_system_stmtContext _localctx = new Alter_system_stmtContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_alter_system_stmt); + int _la; + try { + setState(1664); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 106, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1650); + match(ALTER); + setState(1651); + match(SYSTEM); + setState(1652); + match(SET); + setState(1653); + ((Alter_system_stmtContext) _localctx).param = match(IDENTIFIER); + setState(1654); + _la = _input.LA(1); + if (!(_la == TO || _la == EQUAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1655); + ((Alter_system_stmtContext) _localctx).value = param_value(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1656); + match(ALTER); + setState(1657); + match(SYSTEM); + setState(1658); + match(RESET); + setState(1659); + ((Alter_system_stmtContext) _localctx).param = match(IDENTIFIER); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1660); + match(ALTER); + setState(1661); + match(SYSTEM); + setState(1662); + match(RESET); + setState(1663); + match(ALL); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_table_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_table_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_table_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_table_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_table_stmtContext alter_table_stmt() throws RecognitionException { + Alter_table_stmtContext _localctx = new Alter_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_alter_table_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1666); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_tablespace_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public Alter_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_tablespace_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_tablespace_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_tablespace_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_tablespace_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws RecognitionException { + Alter_tablespace_stmtContext _localctx = new Alter_tablespace_stmtContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_alter_tablespace_stmt); + try { + setState(1701); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 108, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1668); + match(ALTER); + setState(1669); + match(TABLESPACE); + setState(1670); + ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); + setState(1671); + match(RENAME); + setState(1672); + match(TO); + setState(1673); + ((Alter_tablespace_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1675); + match(ALTER); + setState(1676); + match(TABLESPACE); + setState(1677); + ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); + setState(1678); + match(OWNER); + setState(1679); + match(TO); + setState(1683); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(1680); + ((Alter_tablespace_stmtContext) _localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: { + setState(1681); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(1682); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1685); + match(ALTER); + setState(1686); + match(TABLESPACE); + setState(1687); + ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); + setState(1688); + match(SET); + setState(1689); + match(OPEN_PAREN); + setState(1690); + option_list(); + setState(1691); + match(CLOSE_PAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1693); + match(ALTER); + setState(1694); + match(TABLESPACE); + setState(1695); + ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); + setState(1696); + match(RESET); + setState(1697); + match(OPEN_PAREN); + setState(1698); + identifier_list(); + setState(1699); + match(CLOSE_PAREN); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_config_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Identifier_listContext token_types; + public Identifier_listContext dictionary_names; + public IdentifierContext old_dictionary; + public IdentifierContext new_dictionary; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + + public List ALTER() { + return getTokens(PostgreSQLParser.ALTER); + } + + public TerminalNode ALTER(int i) { + return getToken(PostgreSQLParser.ALTER, i); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode CONFIGURATION() { + return getToken(PostgreSQLParser.CONFIGURATION, 0); + } + + public TerminalNode ADD() { + return getToken(PostgreSQLParser.ADD, 0); + } + + public TerminalNode MAPPING() { + return getToken(PostgreSQLParser.MAPPING, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List identifier_list() { + return getRuleContexts(Identifier_listContext.class); + } + + public Identifier_listContext identifier_list(int i) { + return getRuleContext(Identifier_listContext.class, i); + } + + public TerminalNode REPLACE() { + return getToken(PostgreSQLParser.REPLACE, 0); + } + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_text_search_config_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_text_search_config_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_text_search_config_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_config_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_config_stmtContext alter_text_search_config_stmt() throws RecognitionException { + Alter_text_search_config_stmtContext _localctx = new Alter_text_search_config_stmtContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_alter_text_search_config_stmt); + int _la; + try { + setState(1794); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 110, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1703); + match(ALTER); + setState(1704); + match(TEXT); + setState(1705); + match(SEARCH); + setState(1706); + match(CONFIGURATION); + setState(1707); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1708); + match(ADD); + setState(1709); + match(MAPPING); + setState(1710); + match(FOR); + setState(1711); + ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); + setState(1712); + match(WITH); + setState(1713); + ((Alter_text_search_config_stmtContext) _localctx).dictionary_names = identifier_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1715); + match(ALTER); + setState(1716); + match(TEXT); + setState(1717); + match(SEARCH); + setState(1718); + match(CONFIGURATION); + setState(1719); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1720); + match(ALTER); + setState(1721); + match(MAPPING); + setState(1722); + match(FOR); + setState(1723); + ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); + setState(1724); + match(WITH); + setState(1725); + ((Alter_text_search_config_stmtContext) _localctx).dictionary_names = identifier_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1727); + match(ALTER); + setState(1728); + match(TEXT); + setState(1729); + match(SEARCH); + setState(1730); + match(CONFIGURATION); + setState(1731); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1732); + match(ALTER); + setState(1733); + match(MAPPING); + setState(1734); + match(REPLACE); + setState(1735); + ((Alter_text_search_config_stmtContext) _localctx).old_dictionary = identifier(0); + setState(1736); + match(WITH); + setState(1737); + ((Alter_text_search_config_stmtContext) _localctx).new_dictionary = identifier(0); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1739); + match(ALTER); + setState(1740); + match(TEXT); + setState(1741); + match(SEARCH); + setState(1742); + match(CONFIGURATION); + setState(1743); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1744); + match(ALTER); + setState(1745); + match(MAPPING); + setState(1746); + match(FOR); + setState(1747); + ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); + setState(1748); + match(REPLACE); + setState(1749); + ((Alter_text_search_config_stmtContext) _localctx).old_dictionary = identifier(0); + setState(1750); + match(WITH); + setState(1751); + ((Alter_text_search_config_stmtContext) _localctx).new_dictionary = identifier(0); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1753); + match(ALTER); + setState(1754); + match(TEXT); + setState(1755); + match(SEARCH); + setState(1756); + match(CONFIGURATION); + setState(1757); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1758); + match(DROP); + setState(1759); + match(MAPPING); + setState(1762); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(1760); + match(IF); + setState(1761); + match(EXISTS); + } + } + + setState(1764); + match(FOR); + setState(1765); + ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1767); + match(ALTER); + setState(1768); + match(TEXT); + setState(1769); + match(SEARCH); + setState(1770); + match(CONFIGURATION); + setState(1771); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1772); + match(RENAME); + setState(1773); + match(TO); + setState(1774); + ((Alter_text_search_config_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1776); + match(ALTER); + setState(1777); + match(TEXT); + setState(1778); + match(SEARCH); + setState(1779); + match(CONFIGURATION); + setState(1780); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1781); + match(OWNER); + setState(1782); + match(TO); + setState(1783); + ((Alter_text_search_config_stmtContext) _localctx).new_owner = role_name(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1785); + match(ALTER); + setState(1786); + match(TEXT); + setState(1787); + match(SEARCH); + setState(1788); + match(CONFIGURATION); + setState(1789); + ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(1790); + match(SET); + setState(1791); + match(SCHEMA); + setState(1792); + ((Alter_text_search_config_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_dict_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_text_search_dict_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_text_search_dict_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_text_search_dict_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_dict_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_dict_stmtContext alter_text_search_dict_stmt() throws RecognitionException { + Alter_text_search_dict_stmtContext _localctx = new Alter_text_search_dict_stmtContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_alter_text_search_dict_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1796); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_parser_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_text_search_parser_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_text_search_parser_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_text_search_parser_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_parser_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_parser_stmtContext alter_text_search_parser_stmt() throws RecognitionException { + Alter_text_search_parser_stmtContext _localctx = new Alter_text_search_parser_stmtContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_alter_text_search_parser_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1798); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_template_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_schema; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode TEMPLATE() { + return getToken(PostgreSQLParser.TEMPLATE, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Alter_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_text_search_template_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_text_search_template_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_text_search_template_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_template_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_template_stmtContext alter_text_search_template_stmt() throws RecognitionException { + Alter_text_search_template_stmtContext _localctx = new Alter_text_search_template_stmtContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_alter_text_search_template_stmt); + try { + setState(1818); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 111, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1800); + match(ALTER); + setState(1801); + match(TEXT); + setState(1802); + match(SEARCH); + setState(1803); + match(TEMPLATE); + setState(1804); + ((Alter_text_search_template_stmtContext) _localctx).name = identifier(0); + setState(1805); + match(RENAME); + setState(1806); + match(TO); + setState(1807); + ((Alter_text_search_template_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1809); + match(ALTER); + setState(1810); + match(TEXT); + setState(1811); + match(SEARCH); + setState(1812); + match(TEMPLATE); + setState(1813); + ((Alter_text_search_template_stmtContext) _localctx).name = identifier(0); + setState(1814); + match(SET); + setState(1815); + match(SCHEMA); + setState(1816); + ((Alter_text_search_template_stmtContext) _localctx).new_schema = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + public IdentifierContext new_name; + public IdentifierContext extension_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public List ON() { + return getTokens(PostgreSQLParser.ON); + } + + public TerminalNode ON(int i) { + return getToken(PostgreSQLParser.ON, i); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode DEPENDS() { + return getToken(PostgreSQLParser.DEPENDS, 0); + } + + public TerminalNode EXTENSION() { + return getToken(PostgreSQLParser.EXTENSION, 0); + } + + public Alter_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_trigger_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_trigger_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_trigger_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_trigger_stmtContext alter_trigger_stmt() throws RecognitionException { + Alter_trigger_stmtContext _localctx = new Alter_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_alter_trigger_stmt); + try { + setState(1839); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 112, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1820); + match(ALTER); + setState(1821); + match(TRIGGER); + setState(1822); + ((Alter_trigger_stmtContext) _localctx).name = identifier(0); + setState(1823); + match(ON); + setState(1824); + ((Alter_trigger_stmtContext) _localctx).table_name = identifier(0); + setState(1825); + match(RENAME); + setState(1826); + match(TO); + setState(1827); + ((Alter_trigger_stmtContext) _localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1829); + match(ALTER); + setState(1830); + match(TRIGGER); + setState(1831); + ((Alter_trigger_stmtContext) _localctx).name = identifier(0); + setState(1832); + match(ON); + setState(1833); + ((Alter_trigger_stmtContext) _localctx).table_name = identifier(0); + setState(1834); + match(DEPENDS); + setState(1835); + match(ON); + setState(1836); + match(EXTENSION); + setState(1837); + ((Alter_trigger_stmtContext) _localctx).extension_name = identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_type_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_type_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_type_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_type_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_type_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_type_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_type_stmtContext alter_type_stmt() throws RecognitionException { + Alter_type_stmtContext _localctx = new Alter_type_stmtContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_alter_type_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1841); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_user_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_user_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_user_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_user_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_user_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_user_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_user_stmtContext alter_user_stmt() throws RecognitionException { + Alter_user_stmtContext _localctx = new Alter_user_stmtContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_alter_user_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1843); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_user_mapping_stmtContext extends ParserRuleContext { + public Role_nameContext user; + public IdentifierContext server_name; + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode USER() { + return getToken(PostgreSQLParser.USER, 0); + } + + public TerminalNode MAPPING() { + return getToken(PostgreSQLParser.MAPPING, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode SERVER() { + return getToken(PostgreSQLParser.SERVER, 0); + } + + public TerminalNode OPTIONS() { + return getToken(PostgreSQLParser.OPTIONS, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Alter_server_options_listContext alter_server_options_list() { + return getRuleContext(Alter_server_options_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Alter_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_user_mapping_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_user_mapping_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_user_mapping_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_user_mapping_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_user_mapping_stmtContext alter_user_mapping_stmt() throws RecognitionException { + Alter_user_mapping_stmtContext _localctx = new Alter_user_mapping_stmtContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_alter_user_mapping_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1845); + match(ALTER); + setState(1846); + match(USER); + setState(1847); + match(MAPPING); + setState(1848); + match(FOR); + setState(1849); + ((Alter_user_mapping_stmtContext) _localctx).user = role_name(); + setState(1850); + match(SERVER); + setState(1851); + ((Alter_user_mapping_stmtContext) _localctx).server_name = identifier(0); + setState(1852); + match(OPTIONS); + { + setState(1853); + match(OPEN_PAREN); + setState(1854); + alter_server_options_list(); + setState(1855); + match(CLOSE_PAREN); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_view_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Alter_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alter_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAlter_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAlter_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlter_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_view_stmtContext alter_view_stmt() throws RecognitionException { + Alter_view_stmtContext _localctx = new Alter_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_alter_view_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1857); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Analyze_stmtContext extends ParserRuleContext { + public TerminalNode ANALYZE() { + return getToken(PostgreSQLParser.ANALYZE, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public TerminalNode VERBOSE() { + return getToken(PostgreSQLParser.VERBOSE, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Analyze_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_analyze_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAnalyze_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAnalyze_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAnalyze_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Analyze_stmtContext analyze_stmt() throws RecognitionException { + Analyze_stmtContext _localctx = new Analyze_stmtContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_analyze_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1859); + match(ANALYZE); + setState(1861); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == VERBOSE) { + { + setState(1860); + match(VERBOSE); + } + } + + setState(1863); + table_name_(); + setState(1868); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(1864); + match(OPEN_PAREN); + setState(1865); + name_list(); + setState(1866); + match(CLOSE_PAREN); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Close_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Close_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_close_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterClose_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitClose_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitClose_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Close_stmtContext close_stmt() throws RecognitionException { + Close_stmtContext _localctx = new Close_stmtContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_close_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1870); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Cluster_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Cluster_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_cluster_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCluster_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCluster_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCluster_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Cluster_stmtContext cluster_stmt() throws RecognitionException { + Cluster_stmtContext _localctx = new Cluster_stmtContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_cluster_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1872); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Comment_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Comment_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_comment_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterComment_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitComment_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitComment_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Comment_stmtContext comment_stmt() throws RecognitionException { + Comment_stmtContext _localctx = new Comment_stmtContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_comment_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1874); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Commit_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Commit_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_commit_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCommit_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCommit_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCommit_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Commit_stmtContext commit_stmt() throws RecognitionException { + Commit_stmtContext _localctx = new Commit_stmtContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_commit_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1876); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Commit_prepared_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Commit_prepared_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_commit_prepared_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCommit_prepared_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCommit_prepared_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCommit_prepared_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Commit_prepared_stmtContext commit_prepared_stmt() throws RecognitionException { + Commit_prepared_stmtContext _localctx = new Commit_prepared_stmtContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_commit_prepared_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1878); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Copy_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Copy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_copy_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCopy_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitCopy_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCopy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Copy_stmtContext copy_stmt() throws RecognitionException { + Copy_stmtContext _localctx = new Copy_stmtContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_copy_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1880); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_stmtContext extends ParserRuleContext { + public Create_access_method_stmtContext create_access_method_stmt() { + return getRuleContext(Create_access_method_stmtContext.class, 0); + } + + public Create_aggregate_stmtContext create_aggregate_stmt() { + return getRuleContext(Create_aggregate_stmtContext.class, 0); + } + + public Create_cast_stmtContext create_cast_stmt() { + return getRuleContext(Create_cast_stmtContext.class, 0); + } + + public Create_collation_stmtContext create_collation_stmt() { + return getRuleContext(Create_collation_stmtContext.class, 0); + } + + public Create_conversion_stmtContext create_conversion_stmt() { + return getRuleContext(Create_conversion_stmtContext.class, 0); + } + + public Create_database_stmtContext create_database_stmt() { + return getRuleContext(Create_database_stmtContext.class, 0); + } + + public Create_domain_stmtContext create_domain_stmt() { + return getRuleContext(Create_domain_stmtContext.class, 0); + } + + public Create_event_trigger_stmtContext create_event_trigger_stmt() { + return getRuleContext(Create_event_trigger_stmtContext.class, 0); + } + + public Create_foreign_data_stmtContext create_foreign_data_stmt() { + return getRuleContext(Create_foreign_data_stmtContext.class, 0); + } + + public Create_foreign_table_stmtContext create_foreign_table_stmt() { + return getRuleContext(Create_foreign_table_stmtContext.class, 0); + } + + public Create_function_stmtContext create_function_stmt() { + return getRuleContext(Create_function_stmtContext.class, 0); + } + + public Create_group_stmtContext create_group_stmt() { + return getRuleContext(Create_group_stmtContext.class, 0); + } + + public Create_index_stmtContext create_index_stmt() { + return getRuleContext(Create_index_stmtContext.class, 0); + } + + public Create_language_stmtContext create_language_stmt() { + return getRuleContext(Create_language_stmtContext.class, 0); + } + + public Create_materialized_view_stmtContext create_materialized_view_stmt() { + return getRuleContext(Create_materialized_view_stmtContext.class, 0); + } + + public Create_operator_stmtContext create_operator_stmt() { + return getRuleContext(Create_operator_stmtContext.class, 0); + } + + public Create_operator_class_stmtContext create_operator_class_stmt() { + return getRuleContext(Create_operator_class_stmtContext.class, 0); + } + + public Create_operator_family_stmtContext create_operator_family_stmt() { + return getRuleContext(Create_operator_family_stmtContext.class, 0); + } + + public Create_policy_stmtContext create_policy_stmt() { + return getRuleContext(Create_policy_stmtContext.class, 0); + } + + public Create_role_stmtContext create_role_stmt() { + return getRuleContext(Create_role_stmtContext.class, 0); + } + + public Create_rule_stmtContext create_rule_stmt() { + return getRuleContext(Create_rule_stmtContext.class, 0); + } + + public Create_schema_stmtContext create_schema_stmt() { + return getRuleContext(Create_schema_stmtContext.class, 0); + } + + public Create_sequence_stmtContext create_sequence_stmt() { + return getRuleContext(Create_sequence_stmtContext.class, 0); + } + + public Create_server_stmtContext create_server_stmt() { + return getRuleContext(Create_server_stmtContext.class, 0); + } + + public Create_statistics_stmtContext create_statistics_stmt() { + return getRuleContext(Create_statistics_stmtContext.class, 0); + } + + public Create_subscription_stmtContext create_subscription_stmt() { + return getRuleContext(Create_subscription_stmtContext.class, 0); + } + + public Create_table_stmtContext create_table_stmt() { + return getRuleContext(Create_table_stmtContext.class, 0); + } + + public Create_table_as_stmtContext create_table_as_stmt() { + return getRuleContext(Create_table_as_stmtContext.class, 0); + } + + public Create_tablespace_stmtContext create_tablespace_stmt() { + return getRuleContext(Create_tablespace_stmtContext.class, 0); + } + + public Create_text_search_config_stmtContext create_text_search_config_stmt() { + return getRuleContext(Create_text_search_config_stmtContext.class, 0); + } + + public Create_text_search_dict_stmtContext create_text_search_dict_stmt() { + return getRuleContext(Create_text_search_dict_stmtContext.class, 0); + } + + public Create_text_search_parser_stmtContext create_text_search_parser_stmt() { + return getRuleContext(Create_text_search_parser_stmtContext.class, 0); + } + + public Create_text_search_template_stmtContext create_text_search_template_stmt() { + return getRuleContext(Create_text_search_template_stmtContext.class, 0); + } + + public Create_transform_stmtContext create_transform_stmt() { + return getRuleContext(Create_transform_stmtContext.class, 0); + } + + public Create_trigger_stmtContext create_trigger_stmt() { + return getRuleContext(Create_trigger_stmtContext.class, 0); + } + + public Create_type_stmtContext create_type_stmt() { + return getRuleContext(Create_type_stmtContext.class, 0); + } + + public Create_user_stmtContext create_user_stmt() { + return getRuleContext(Create_user_stmtContext.class, 0); + } + + public Create_user_mapping_stmtContext create_user_mapping_stmt() { + return getRuleContext(Create_user_mapping_stmtContext.class, 0); + } + + public Create_view_stmtContext create_view_stmt() { + return getRuleContext(Create_view_stmtContext.class, 0); + } + + public Create_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_stmtContext create_stmt() throws RecognitionException { + Create_stmtContext _localctx = new Create_stmtContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_create_stmt); + try { + setState(1921); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 115, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1882); + create_access_method_stmt(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1883); + create_aggregate_stmt(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1884); + create_cast_stmt(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1885); + create_collation_stmt(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1886); + create_conversion_stmt(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1887); + create_database_stmt(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1888); + create_domain_stmt(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1889); + create_event_trigger_stmt(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1890); + create_foreign_data_stmt(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1891); + create_foreign_table_stmt(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1892); + create_function_stmt(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(1893); + create_group_stmt(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(1894); + create_index_stmt(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(1895); + create_language_stmt(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(1896); + create_materialized_view_stmt(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(1897); + create_operator_stmt(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(1898); + create_operator_class_stmt(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(1899); + create_operator_family_stmt(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(1900); + create_policy_stmt(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(1901); + create_role_stmt(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(1902); + create_rule_stmt(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(1903); + create_schema_stmt(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(1904); + create_sequence_stmt(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(1905); + create_server_stmt(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(1906); + create_statistics_stmt(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(1907); + create_subscription_stmt(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(1908); + create_table_stmt(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(1909); + create_table_as_stmt(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(1910); + create_tablespace_stmt(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(1911); + create_text_search_config_stmt(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(1912); + create_text_search_dict_stmt(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(1913); + create_text_search_parser_stmt(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(1914); + create_text_search_template_stmt(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(1915); + create_transform_stmt(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(1916); + create_trigger_stmt(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(1917); + create_type_stmt(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(1918); + create_user_stmt(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(1919); + create_user_mapping_stmt(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(1920); + create_view_stmt(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_access_method_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode ACCESS() { + return getToken(PostgreSQLParser.ACCESS, 0); + } + + public TerminalNode METHOD() { + return getToken(PostgreSQLParser.METHOD, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public TerminalNode TYPE() { + return getToken(PostgreSQLParser.TYPE, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public TerminalNode HANDLER() { + return getToken(PostgreSQLParser.HANDLER, 0); + } + + public Create_access_method_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_access_method_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_access_method_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_access_method_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_access_method_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_access_method_stmtContext create_access_method_stmt() throws RecognitionException { + Create_access_method_stmtContext _localctx = new Create_access_method_stmtContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_create_access_method_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1923); + match(CREATE); + setState(1924); + match(ACCESS); + setState(1925); + match(METHOD); + setState(1926); + name_(); + setState(1927); + match(TYPE); + setState(1928); + match(INDEX); + setState(1929); + match(HANDLER); + setState(1930); + name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_aggregate_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode AGGREGATE() { + return getToken(PostgreSQLParser.AGGREGATE, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List data_type_list() { + return getRuleContexts(Data_type_listContext.class); + } + + public Data_type_listContext data_type_list(int i) { + return getRuleContext(Data_type_listContext.class, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode SFUNC() { + return getToken(PostgreSQLParser.SFUNC, 0); + } + + public List EQUAL() { + return getTokens(PostgreSQLParser.EQUAL); + } + + public TerminalNode EQUAL(int i) { + return getToken(PostgreSQLParser.EQUAL, i); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public TerminalNode STYPE() { + return getToken(PostgreSQLParser.STYPE, 0); + } + + public TerminalNode SSPACE() { + return getToken(PostgreSQLParser.SSPACE, 0); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public TerminalNode FINALFUNC() { + return getToken(PostgreSQLParser.FINALFUNC, 0); + } + + public TerminalNode FINALFUNC_EXTRA() { + return getToken(PostgreSQLParser.FINALFUNC_EXTRA, 0); + } + + public TerminalNode COMBINEFUNC() { + return getToken(PostgreSQLParser.COMBINEFUNC, 0); + } + + public TerminalNode SERIALFUNC() { + return getToken(PostgreSQLParser.SERIALFUNC, 0); + } + + public TerminalNode DESERIALFUNC() { + return getToken(PostgreSQLParser.DESERIALFUNC, 0); + } + + public TerminalNode INITCOND() { + return getToken(PostgreSQLParser.INITCOND, 0); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode MSFUNC() { + return getToken(PostgreSQLParser.MSFUNC, 0); + } + + public TerminalNode MINVFUNC() { + return getToken(PostgreSQLParser.MINVFUNC, 0); + } + + public TerminalNode MSTYPE() { + return getToken(PostgreSQLParser.MSTYPE, 0); + } + + public TerminalNode MSSPACE() { + return getToken(PostgreSQLParser.MSSPACE, 0); + } + + public TerminalNode MFINALFUNC() { + return getToken(PostgreSQLParser.MFINALFUNC, 0); + } + + public TerminalNode MFINALFUNC_EXTRA() { + return getToken(PostgreSQLParser.MFINALFUNC_EXTRA, 0); + } + + public TerminalNode MINITCOND() { + return getToken(PostgreSQLParser.MINITCOND, 0); + } + + public TerminalNode SORTOP() { + return getToken(PostgreSQLParser.SORTOP, 0); + } + + public TerminalNode PARALLEL() { + return getToken(PostgreSQLParser.PARALLEL, 0); + } + + public List IN() { + return getTokens(PostgreSQLParser.IN); + } + + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + + public List VARIADIC() { + return getTokens(PostgreSQLParser.VARIADIC); + } + + public TerminalNode VARIADIC(int i) { + return getToken(PostgreSQLParser.VARIADIC, i); + } + + public TerminalNode SAFE() { + return getToken(PostgreSQLParser.SAFE, 0); + } + + public TerminalNode RESTRICTED() { + return getToken(PostgreSQLParser.RESTRICTED, 0); + } + + public TerminalNode UNSAFE() { + return getToken(PostgreSQLParser.UNSAFE, 0); + } + + public TerminalNode ORDER() { + return getToken(PostgreSQLParser.ORDER, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public TerminalNode HYPOTHETICAL() { + return getToken(PostgreSQLParser.HYPOTHETICAL, 0); + } + + public TerminalNode BASETYPE() { + return getToken(PostgreSQLParser.BASETYPE, 0); + } + + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class, 0); + } + + public Create_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_aggregate_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_aggregate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_aggregate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_aggregate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_aggregate_stmtContext create_aggregate_stmt() throws RecognitionException { + Create_aggregate_stmtContext _localctx = new Create_aggregate_stmtContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_create_aggregate_stmt); + int _la; + try { + setState(2214); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 160, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(1932); + match(CREATE); + setState(1933); + match(AGGREGATE); + setState(1934); + name_(); + setState(1935); + match(OPEN_PAREN); + setState(1937); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN || _la == VARIADIC) { + { + setState(1936); + _la = _input.LA(1); + if (!(_la == IN || _la == VARIADIC)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(1940); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 117, _ctx)) { + case 1: { + setState(1939); + name_(); + } + break; + } + setState(1942); + data_type_list(); + setState(1943); + match(CLOSE_PAREN); + setState(1944); + match(OPEN_PAREN); + setState(1945); + match(SFUNC); + setState(1946); + match(EQUAL); + setState(1947); + identifier(0); + setState(1948); + match(COMMA); + setState(1949); + match(STYPE); + setState(1950); + match(EQUAL); + setState(1951); + identifier(0); + setState(1956); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 118, _ctx)) { + case 1: { + setState(1952); + match(COMMA); + setState(1953); + match(SSPACE); + setState(1954); + match(EQUAL); + setState(1955); + match(INTEGER_LITERAL); + } + break; + } + setState(1962); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 119, _ctx)) { + case 1: { + setState(1958); + match(COMMA); + setState(1959); + match(FINALFUNC); + setState(1960); + match(EQUAL); + setState(1961); + identifier(0); + } + break; + } + setState(1966); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 120, _ctx)) { + case 1: { + setState(1964); + match(COMMA); + setState(1965); + match(FINALFUNC_EXTRA); + } + break; + } + setState(1972); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 121, _ctx)) { + case 1: { + setState(1968); + match(COMMA); + setState(1969); + match(COMBINEFUNC); + setState(1970); + match(EQUAL); + setState(1971); + identifier(0); + } + break; + } + setState(1978); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 122, _ctx)) { + case 1: { + setState(1974); + match(COMMA); + setState(1975); + match(SERIALFUNC); + setState(1976); + match(EQUAL); + setState(1977); + identifier(0); + } + break; + } + setState(1984); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 123, _ctx)) { + case 1: { + setState(1980); + match(COMMA); + setState(1981); + match(DESERIALFUNC); + setState(1982); + match(EQUAL); + setState(1983); + identifier(0); + } + break; + } + setState(1990); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 124, _ctx)) { + case 1: { + setState(1986); + match(COMMA); + setState(1987); + match(INITCOND); + setState(1988); + match(EQUAL); + setState(1989); + expr(0); + } + break; + } + setState(1996); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 125, _ctx)) { + case 1: { + setState(1992); + match(COMMA); + setState(1993); + match(MSFUNC); + setState(1994); + match(EQUAL); + setState(1995); + identifier(0); + } + break; + } + setState(2002); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 126, _ctx)) { + case 1: { + setState(1998); + match(COMMA); + setState(1999); + match(MINVFUNC); + setState(2000); + match(EQUAL); + setState(2001); + identifier(0); + } + break; + } + setState(2008); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 127, _ctx)) { + case 1: { + setState(2004); + match(COMMA); + setState(2005); + match(MSTYPE); + setState(2006); + match(EQUAL); + setState(2007); + identifier(0); + } + break; + } + setState(2014); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 128, _ctx)) { + case 1: { + setState(2010); + match(COMMA); + setState(2011); + match(MSSPACE); + setState(2012); + match(EQUAL); + setState(2013); + match(INTEGER_LITERAL); + } + break; + } + setState(2020); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 129, _ctx)) { + case 1: { + setState(2016); + match(COMMA); + setState(2017); + match(MFINALFUNC); + setState(2018); + match(EQUAL); + setState(2019); + identifier(0); + } + break; + } + setState(2024); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 130, _ctx)) { + case 1: { + setState(2022); + match(COMMA); + setState(2023); + match(MFINALFUNC_EXTRA); + } + break; + } + setState(2030); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 131, _ctx)) { + case 1: { + setState(2026); + match(COMMA); + setState(2027); + match(MINITCOND); + setState(2028); + match(EQUAL); + setState(2029); + identifier(0); + } + break; + } + setState(2036); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 132, _ctx)) { + case 1: { + setState(2032); + match(COMMA); + setState(2033); + match(SORTOP); + setState(2034); + match(EQUAL); + setState(2035); + identifier(0); + } + break; + } + setState(2042); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(2038); + match(COMMA); + setState(2039); + match(PARALLEL); + setState(2040); + match(EQUAL); + setState(2041); + _la = _input.LA(1); + if (!(((((_la - 686)) & ~0x3f) == 0 && ((1L << (_la - 686)) & ((1L << (SAFE - 686)) | (1L << (RESTRICTED - 686)) | (1L << (UNSAFE - 686)))) != 0))) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2044); + match(CLOSE_PAREN); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2046); + match(CREATE); + setState(2047); + match(AGGREGATE); + setState(2048); + name_(); + setState(2049); + match(OPEN_PAREN); + setState(2057); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(2051); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN || _la == VARIADIC) { + { + setState(2050); + _la = _input.LA(1); + if (!(_la == IN || _la == VARIADIC)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2054); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 135, _ctx)) { + case 1: { + setState(2053); + name_(); + } + break; + } + setState(2056); + data_type_list(); + } + } + + setState(2059); + match(ORDER); + setState(2060); + match(BY); + setState(2062); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN || _la == VARIADIC) { + { + setState(2061); + _la = _input.LA(1); + if (!(_la == IN || _la == VARIADIC)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2065); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 138, _ctx)) { + case 1: { + setState(2064); + name_(); + } + break; + } + setState(2067); + data_type_list(); + setState(2068); + match(CLOSE_PAREN); + setState(2069); + match(OPEN_PAREN); + setState(2070); + match(SFUNC); + setState(2071); + match(EQUAL); + setState(2072); + identifier(0); + setState(2073); + match(COMMA); + setState(2074); + match(STYPE); + setState(2075); + match(EQUAL); + setState(2076); + identifier(0); + setState(2081); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 139, _ctx)) { + case 1: { + setState(2077); + match(COMMA); + setState(2078); + match(SSPACE); + setState(2079); + match(EQUAL); + setState(2080); + match(INTEGER_LITERAL); + } + break; + } + setState(2087); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 140, _ctx)) { + case 1: { + setState(2083); + match(COMMA); + setState(2084); + match(FINALFUNC); + setState(2085); + match(EQUAL); + setState(2086); + identifier(0); + } + break; + } + setState(2091); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 141, _ctx)) { + case 1: { + setState(2089); + match(COMMA); + setState(2090); + match(FINALFUNC_EXTRA); + } + break; + } + setState(2097); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 142, _ctx)) { + case 1: { + setState(2093); + match(COMMA); + setState(2094); + match(INITCOND); + setState(2095); + match(EQUAL); + setState(2096); + expr(0); + } + break; + } + setState(2103); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 143, _ctx)) { + case 1: { + setState(2099); + match(COMMA); + setState(2100); + match(PARALLEL); + setState(2101); + match(EQUAL); + setState(2102); + _la = _input.LA(1); + if (!(((((_la - 686)) & ~0x3f) == 0 && ((1L << (_la - 686)) & ((1L << (SAFE - 686)) | (1L << (RESTRICTED - 686)) | (1L << (UNSAFE - 686)))) != 0))) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(2107); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(2105); + match(COMMA); + setState(2106); + match(HYPOTHETICAL); + } + } + + setState(2109); + match(CLOSE_PAREN); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + { + setState(2111); + match(CREATE); + setState(2112); + match(AGGREGATE); + setState(2113); + name_(); + setState(2114); + match(OPEN_PAREN); + setState(2115); + match(BASETYPE); + setState(2116); + match(EQUAL); + setState(2117); + data_type(); + setState(2118); + match(COMMA); + setState(2119); + match(SFUNC); + setState(2120); + match(EQUAL); + setState(2121); + identifier(0); + setState(2122); + match(COMMA); + setState(2123); + match(STYPE); + setState(2124); + match(EQUAL); + setState(2125); + identifier(0); + setState(2130); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 145, _ctx)) { + case 1: { + setState(2126); + match(COMMA); + setState(2127); + match(SSPACE); + setState(2128); + match(EQUAL); + setState(2129); + match(INTEGER_LITERAL); + } + break; + } + setState(2136); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 146, _ctx)) { + case 1: { + setState(2132); + match(COMMA); + setState(2133); + match(FINALFUNC); + setState(2134); + match(EQUAL); + setState(2135); + identifier(0); + } + break; + } + setState(2140); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 147, _ctx)) { + case 1: { + setState(2138); + match(COMMA); + setState(2139); + match(FINALFUNC_EXTRA); + } + break; + } + setState(2146); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 148, _ctx)) { + case 1: { + setState(2142); + match(COMMA); + setState(2143); + match(COMBINEFUNC); + setState(2144); + match(EQUAL); + setState(2145); + identifier(0); + } + break; + } + setState(2152); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 149, _ctx)) { + case 1: { + setState(2148); + match(COMMA); + setState(2149); + match(SERIALFUNC); + setState(2150); + match(EQUAL); + setState(2151); + identifier(0); + } + break; + } + setState(2158); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 150, _ctx)) { + case 1: { + setState(2154); + match(COMMA); + setState(2155); + match(DESERIALFUNC); + setState(2156); + match(EQUAL); + setState(2157); + identifier(0); + } + break; + } + setState(2164); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 151, _ctx)) { + case 1: { + setState(2160); + match(COMMA); + setState(2161); + match(INITCOND); + setState(2162); + match(EQUAL); + setState(2163); + expr(0); + } + break; + } + setState(2170); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 152, _ctx)) { + case 1: { + setState(2166); + match(COMMA); + setState(2167); + match(MSFUNC); + setState(2168); + match(EQUAL); + setState(2169); + identifier(0); + } + break; + } + setState(2176); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 153, _ctx)) { + case 1: { + setState(2172); + match(COMMA); + setState(2173); + match(MINVFUNC); + setState(2174); + match(EQUAL); + setState(2175); + identifier(0); + } + break; + } + setState(2182); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 154, _ctx)) { + case 1: { + setState(2178); + match(COMMA); + setState(2179); + match(MSTYPE); + setState(2180); + match(EQUAL); + setState(2181); + identifier(0); + } + break; + } + setState(2188); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 155, _ctx)) { + case 1: { + setState(2184); + match(COMMA); + setState(2185); + match(MSSPACE); + setState(2186); + match(EQUAL); + setState(2187); + match(INTEGER_LITERAL); + } + break; + } + setState(2194); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 156, _ctx)) { + case 1: { + setState(2190); + match(COMMA); + setState(2191); + match(MFINALFUNC); + setState(2192); + match(EQUAL); + setState(2193); + identifier(0); + } + break; + } + setState(2198); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 157, _ctx)) { + case 1: { + setState(2196); + match(COMMA); + setState(2197); + match(MFINALFUNC_EXTRA); + } + break; + } + setState(2204); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 158, _ctx)) { + case 1: { + setState(2200); + match(COMMA); + setState(2201); + match(MINITCOND); + setState(2202); + match(EQUAL); + setState(2203); + identifier(0); + } + break; + } + setState(2210); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(2206); + match(COMMA); + setState(2207); + match(SORTOP); + setState(2208); + match(EQUAL); + setState(2209); + identifier(0); + } + } + + setState(2212); + match(CLOSE_PAREN); + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_cast_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode CAST() { + return getToken(PostgreSQLParser.CAST, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List data_type() { + return getRuleContexts(Data_typeContext.class); + } + + public Data_typeContext data_type(int i) { + return getRuleContext(Data_typeContext.class, i); + } + + public List AS() { + return getTokens(PostgreSQLParser.AS); + } + + public TerminalNode AS(int i) { + return getToken(PostgreSQLParser.AS, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode ASSIGNMENT() { + return getToken(PostgreSQLParser.ASSIGNMENT, 0); + } + + public TerminalNode IMPLICIT() { + return getToken(PostgreSQLParser.IMPLICIT, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode FUNCTION() { + return getToken(PostgreSQLParser.FUNCTION, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode WITHOUT() { + return getToken(PostgreSQLParser.WITHOUT, 0); + } + + public TerminalNode INOUT() { + return getToken(PostgreSQLParser.INOUT, 0); + } + + public Data_type_listContext data_type_list() { + return getRuleContext(Data_type_listContext.class, 0); + } + + public Create_cast_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_cast_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_cast_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_cast_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_cast_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_cast_stmtContext create_cast_stmt() throws RecognitionException { + Create_cast_stmtContext _localctx = new Create_cast_stmtContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_create_cast_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2216); + match(CREATE); + setState(2217); + match(CAST); + setState(2218); + match(OPEN_PAREN); + setState(2219); + data_type(); + setState(2220); + match(AS); + setState(2221); + data_type(); + setState(2222); + match(CLOSE_PAREN); + setState(2236); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 162, _ctx)) { + case 1: { + { + setState(2223); + match(WITH); + setState(2224); + match(FUNCTION); + setState(2225); + identifier(0); + setState(2230); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(2226); + match(OPEN_PAREN); + setState(2227); + data_type_list(); + setState(2228); + match(CLOSE_PAREN); + } + } + + } + } + break; + case 2: { + { + setState(2232); + match(WITHOUT); + setState(2233); + match(FUNCTION); + } + } + break; + case 3: { + { + setState(2234); + match(WITH); + setState(2235); + match(INOUT); + } + } + break; + } + setState(2242); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 163, _ctx)) { + case 1: { + setState(2238); + match(AS); + setState(2239); + match(ASSIGNMENT); + } + break; + case 2: { + setState(2240); + match(AS); + setState(2241); + match(IMPLICIT); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_collation_optContext extends ParserRuleContext { + public TerminalNode LOCALE() { + return getToken(PostgreSQLParser.LOCALE, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode LC_COLLATE() { + return getToken(PostgreSQLParser.LC_COLLATE, 0); + } + + public TerminalNode LC_CTYPE() { + return getToken(PostgreSQLParser.LC_CTYPE, 0); + } + + public TerminalNode PROVIDER() { + return getToken(PostgreSQLParser.PROVIDER, 0); + } + + public TerminalNode VERSION() { + return getToken(PostgreSQLParser.VERSION, 0); + } + + public TerminalNode DOUBLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); + } + + public Create_collation_optContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_collation_opt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_collation_opt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_collation_opt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_collation_opt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_collation_optContext create_collation_opt() throws RecognitionException { + Create_collation_optContext _localctx = new Create_collation_optContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_create_collation_opt); + try { + setState(2262); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LOCALE: + enterOuterAlt(_localctx, 1); + { + setState(2244); + match(LOCALE); + setState(2245); + match(EQUAL); + setState(2246); + expr(0); + } + break; + case LC_COLLATE: + enterOuterAlt(_localctx, 2); + { + setState(2247); + match(LC_COLLATE); + setState(2248); + match(EQUAL); + setState(2249); + expr(0); + } + break; + case LC_CTYPE: + enterOuterAlt(_localctx, 3); + { + setState(2250); + match(LC_CTYPE); + setState(2251); + match(EQUAL); + setState(2252); + expr(0); + } + break; + case PROVIDER: + enterOuterAlt(_localctx, 4); + { + setState(2253); + match(PROVIDER); + setState(2254); + match(EQUAL); + setState(2255); + expr(0); + } + break; + case VERSION: + enterOuterAlt(_localctx, 5); + { + setState(2256); + match(VERSION); + setState(2257); + match(EQUAL); + setState(2258); + expr(0); + } + break; + case DOUBLEQ_STRING_LITERAL: + enterOuterAlt(_localctx, 6); + { + setState(2259); + match(DOUBLEQ_STRING_LITERAL); + setState(2260); + match(EQUAL); + setState(2261); + expr(0); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_collation_opt_listContext extends ParserRuleContext { + public List create_collation_opt() { + return getRuleContexts(Create_collation_optContext.class); + } + + public Create_collation_optContext create_collation_opt(int i) { + return getRuleContext(Create_collation_optContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Create_collation_opt_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_collation_opt_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_collation_opt_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_collation_opt_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_collation_opt_list(this); + else return visitor.visitChildren(this); + } + } + + public final Create_collation_opt_listContext create_collation_opt_list() throws RecognitionException { + Create_collation_opt_listContext _localctx = new Create_collation_opt_listContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_create_collation_opt_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2264); + create_collation_opt(); + setState(2269); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(2265); + match(COMMA); + setState(2266); + create_collation_opt(); + } + } + setState(2271); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_collation_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode COLLATION() { + return getToken(PostgreSQLParser.COLLATION, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Create_collation_opt_listContext create_collation_opt_list() { + return getRuleContext(Create_collation_opt_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public Create_collation_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_collation_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_collation_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_collation_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_collation_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_collation_stmtContext create_collation_stmt() throws RecognitionException { + Create_collation_stmtContext _localctx = new Create_collation_stmtContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_create_collation_stmt); + int _la; + try { + setState(2295); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 168, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(2272); + match(CREATE); + setState(2273); + match(COLLATION); + setState(2277); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(2274); + match(IF); + setState(2275); + match(NOT); + setState(2276); + match(EXISTS); + } + } + + setState(2279); + name_(); + setState(2280); + match(OPEN_PAREN); + setState(2281); + create_collation_opt_list(); + setState(2282); + match(CLOSE_PAREN); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2284); + match(CREATE); + setState(2285); + match(COLLATION); + setState(2289); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(2286); + match(IF); + setState(2287); + match(NOT); + setState(2288); + match(EXISTS); + } + } + + setState(2291); + name_(); + setState(2292); + match(FROM); + setState(2293); + name_(); + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_conversion_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode CONVERSION() { + return getToken(PostgreSQLParser.CONVERSION, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public List SINGLEQ_STRING_LITERAL() { + return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); + } + + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public Create_conversion_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_conversion_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_conversion_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_conversion_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_conversion_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_conversion_stmtContext create_conversion_stmt() throws RecognitionException { + Create_conversion_stmtContext _localctx = new Create_conversion_stmtContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_create_conversion_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2297); + match(CREATE); + setState(2299); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == DEFAULT) { + { + setState(2298); + match(DEFAULT); + } + } + + setState(2301); + match(CONVERSION); + setState(2302); + identifier(0); + setState(2303); + match(FOR); + setState(2304); + match(SINGLEQ_STRING_LITERAL); + setState(2305); + match(TO); + setState(2306); + match(SINGLEQ_STRING_LITERAL); + setState(2307); + match(FROM); + setState(2308); + name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_database_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode DATABASE() { + return getToken(PostgreSQLParser.DATABASE, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public List EQUAL() { + return getTokens(PostgreSQLParser.EQUAL); + } + + public TerminalNode EQUAL(int i) { + return getToken(PostgreSQLParser.EQUAL, i); + } + + public TerminalNode TEMPLATE() { + return getToken(PostgreSQLParser.TEMPLATE, 0); + } + + public TerminalNode ENCODING() { + return getToken(PostgreSQLParser.ENCODING, 0); + } + + public TerminalNode LC_COLLATE() { + return getToken(PostgreSQLParser.LC_COLLATE, 0); + } + + public TerminalNode LC_CTYPE() { + return getToken(PostgreSQLParser.LC_CTYPE, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public TerminalNode ALLOW_CONNECTIONS() { + return getToken(PostgreSQLParser.ALLOW_CONNECTIONS, 0); + } + + public TerminalNode CONNECTION() { + return getToken(PostgreSQLParser.CONNECTION, 0); + } + + public TerminalNode LIMIT() { + return getToken(PostgreSQLParser.LIMIT, 0); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public TerminalNode IS_TEMPLATE() { + return getToken(PostgreSQLParser.IS_TEMPLATE, 0); + } + + public Create_database_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_database_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_database_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_database_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_database_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_database_stmtContext create_database_stmt() throws RecognitionException { + Create_database_stmtContext _localctx = new Create_database_stmtContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_create_database_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2310); + match(CREATE); + setState(2311); + match(DATABASE); + setState(2312); + name_(); + { + setState(2314); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2313); + match(WITH); + } + } + + setState(2319); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OWNER) { + { + setState(2316); + match(OWNER); + setState(2317); + match(EQUAL); + setState(2318); + name_(); + } + } + + setState(2324); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TEMPLATE) { + { + setState(2321); + match(TEMPLATE); + setState(2322); + match(EQUAL); + setState(2323); + name_(); + } + } + + setState(2329); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ENCODING) { + { + setState(2326); + match(ENCODING); + setState(2327); + match(EQUAL); + setState(2328); + name_(); + } + } + + setState(2334); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LC_COLLATE) { + { + setState(2331); + match(LC_COLLATE); + setState(2332); + match(EQUAL); + setState(2333); + name_(); + } + } + + setState(2339); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LC_CTYPE) { + { + setState(2336); + match(LC_CTYPE); + setState(2337); + match(EQUAL); + setState(2338); + name_(); + } + } + + setState(2344); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TABLESPACE) { + { + setState(2341); + match(TABLESPACE); + setState(2342); + match(EQUAL); + setState(2343); + name_(); + } + } + + setState(2349); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ALLOW_CONNECTIONS) { + { + setState(2346); + match(ALLOW_CONNECTIONS); + setState(2347); + match(EQUAL); + setState(2348); + name_(); + } + } + + setState(2355); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CONNECTION) { + { + setState(2351); + match(CONNECTION); + setState(2352); + match(LIMIT); + setState(2353); + match(EQUAL); + setState(2354); + match(INTEGER_LITERAL); + } + } + + setState(2360); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IS_TEMPLATE) { + { + setState(2357); + match(IS_TEMPLATE); + setState(2358); + match(EQUAL); + setState(2359); + match(INTEGER_LITERAL); + } + } + + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Domain_constraintContext extends ParserRuleContext { + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode NULL() { + return getToken(PostgreSQLParser.NULL, 0); + } + + public TerminalNode CHECK() { + return getToken(PostgreSQLParser.CHECK, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode CONSTRAINT() { + return getToken(PostgreSQLParser.CONSTRAINT, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Domain_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_domain_constraint; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDomain_constraint(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDomain_constraint(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDomain_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Domain_constraintContext domain_constraint() throws RecognitionException { + Domain_constraintContext _localctx = new Domain_constraintContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_domain_constraint); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2364); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CONSTRAINT) { + { + setState(2362); + match(CONSTRAINT); + setState(2363); + name_(); + } + } + + setState(2374); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NOT: { + setState(2366); + match(NOT); + setState(2367); + match(NULL); + } + break; + case NULL: { + setState(2368); + match(NULL); + } + break; + case CHECK: { + setState(2369); + match(CHECK); + setState(2370); + match(OPEN_PAREN); + setState(2371); + expr(0); + setState(2372); + match(CLOSE_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_domain_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode DOMAIN() { + return getToken(PostgreSQLParser.DOMAIN, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List domain_constraint() { + return getRuleContexts(Domain_constraintContext.class); + } + + public Domain_constraintContext domain_constraint(int i) { + return getRuleContext(Domain_constraintContext.class, i); + } + + public List COLLATE() { + return getTokens(PostgreSQLParser.COLLATE); + } + + public TerminalNode COLLATE(int i) { + return getToken(PostgreSQLParser.COLLATE, i); + } + + public List DEFAULT() { + return getTokens(PostgreSQLParser.DEFAULT); + } + + public TerminalNode DEFAULT(int i) { + return getToken(PostgreSQLParser.DEFAULT, i); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public Create_domain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_domain_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_domain_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_domain_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_domain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_domain_stmtContext create_domain_stmt() throws RecognitionException { + Create_domain_stmtContext _localctx = new Create_domain_stmtContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_create_domain_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2376); + match(CREATE); + setState(2377); + match(DOMAIN); + setState(2378); + name_(); + setState(2380); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(2379); + match(AS); + } + } + + setState(2382); + data_type(); + setState(2390); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 78)) & ~0x3f) == 0 && ((1L << (_la - 78)) & ((1L << (CHECK - 78)) | (1L << (COLLATE - 78)) | (1L << (CONSTRAINT - 78)))) != 0) || _la == DEFAULT || _la == NOT || _la == NULL) { + { + setState(2388); + _errHandler.sync(this); + switch (_input.LA(1)) { + case COLLATE: { + { + setState(2383); + match(COLLATE); + setState(2384); + name_(); + } + } + break; + case DEFAULT: { + { + setState(2385); + match(DEFAULT); + setState(2386); + expr(0); + } + } + break; + case CHECK: + case CONSTRAINT: + case NOT: + case NULL: { + setState(2387); + domain_constraint(); + } + break; + default: + throw new NoViableAltException(this); + } + } + setState(2392); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_event_trigger_condContext extends ParserRuleContext { + public IdentifierContext filter_stmt; + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List SINGLEQ_STRING_LITERAL() { + return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); + } + + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public List AND() { + return getTokens(PostgreSQLParser.AND); + } + + public TerminalNode AND(int i) { + return getToken(PostgreSQLParser.AND, i); + } + + public List create_event_trigger_cond() { + return getRuleContexts(Create_event_trigger_condContext.class); + } + + public Create_event_trigger_condContext create_event_trigger_cond(int i) { + return getRuleContext(Create_event_trigger_condContext.class, i); + } + + public Create_event_trigger_condContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_event_trigger_cond; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_event_trigger_cond(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_event_trigger_cond(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_event_trigger_cond(this); + else return visitor.visitChildren(this); + } + } + + public final Create_event_trigger_condContext create_event_trigger_cond() throws RecognitionException { + Create_event_trigger_condContext _localctx = new Create_event_trigger_condContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_create_event_trigger_cond); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2393); + ((Create_event_trigger_condContext) _localctx).filter_stmt = identifier(0); + setState(2394); + match(IN); + setState(2395); + match(OPEN_PAREN); + setState(2396); + match(SINGLEQ_STRING_LITERAL); + setState(2401); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(2397); + match(COMMA); + setState(2398); + match(SINGLEQ_STRING_LITERAL); + } + } + setState(2403); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2404); + match(CLOSE_PAREN); + setState(2409); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 186, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(2405); + match(AND); + setState(2406); + create_event_trigger_cond(); + } + } + } + setState(2411); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 186, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_event_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext trigger; + public IdentifierContext event; + public IdentifierContext fn_name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode EVENT() { + return getToken(PostgreSQLParser.EVENT, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode EXECUTE() { + return getToken(PostgreSQLParser.EXECUTE, 0); + } + + public TerminalNode PROCEDURE() { + return getToken(PostgreSQLParser.PROCEDURE, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode WHEN() { + return getToken(PostgreSQLParser.WHEN, 0); + } + + public Create_event_trigger_condContext create_event_trigger_cond() { + return getRuleContext(Create_event_trigger_condContext.class, 0); + } + + public Create_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_event_trigger_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_event_trigger_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_event_trigger_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_event_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_event_trigger_stmtContext create_event_trigger_stmt() throws RecognitionException { + Create_event_trigger_stmtContext _localctx = new Create_event_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_create_event_trigger_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2412); + match(CREATE); + setState(2413); + match(EVENT); + setState(2414); + match(TRIGGER); + setState(2415); + ((Create_event_trigger_stmtContext) _localctx).trigger = identifier(0); + setState(2416); + match(ON); + setState(2417); + ((Create_event_trigger_stmtContext) _localctx).event = identifier(0); + setState(2420); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WHEN) { + { + setState(2418); + match(WHEN); + setState(2419); + create_event_trigger_cond(); + } + } + + setState(2422); + match(EXECUTE); + setState(2423); + match(PROCEDURE); + setState(2424); + ((Create_event_trigger_stmtContext) _localctx).fn_name = identifier(0); + setState(2425); + match(OPEN_PAREN); + setState(2426); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_foreign_data_optionsContext extends ParserRuleContext { + public Name_Context opt; + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public List create_foreign_data_options() { + return getRuleContexts(Create_foreign_data_optionsContext.class); + } + + public Create_foreign_data_optionsContext create_foreign_data_options(int i) { + return getRuleContext(Create_foreign_data_optionsContext.class, i); + } + + public Create_foreign_data_optionsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_foreign_data_options; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_foreign_data_options(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_foreign_data_options(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_foreign_data_options(this); + else return visitor.visitChildren(this); + } + } + + public final Create_foreign_data_optionsContext create_foreign_data_options() throws RecognitionException { + Create_foreign_data_optionsContext _localctx = new Create_foreign_data_optionsContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_create_foreign_data_options); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2428); + ((Create_foreign_data_optionsContext) _localctx).opt = name_(); + setState(2429); + match(SINGLEQ_STRING_LITERAL); + setState(2434); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 188, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(2430); + match(COMMA); + setState(2431); + create_foreign_data_options(); + } + } + } + setState(2436); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 188, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_foreign_data_stmtContext extends ParserRuleContext { + public IdentifierContext wrapper; + public IdentifierContext handler; + public IdentifierContext validator; + public Create_foreign_data_optionsContext opts; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode DATA() { + return getToken(PostgreSQLParser.DATA, 0); + } + + public TerminalNode WRAPPER() { + return getToken(PostgreSQLParser.WRAPPER, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List HANDLER() { + return getTokens(PostgreSQLParser.HANDLER); + } + + public TerminalNode HANDLER(int i) { + return getToken(PostgreSQLParser.HANDLER, i); + } + + public List NO() { + return getTokens(PostgreSQLParser.NO); + } + + public TerminalNode NO(int i) { + return getToken(PostgreSQLParser.NO, i); + } + + public TerminalNode VALIDATOR() { + return getToken(PostgreSQLParser.VALIDATOR, 0); + } + + public TerminalNode OPTIONS() { + return getToken(PostgreSQLParser.OPTIONS, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Create_foreign_data_optionsContext create_foreign_data_options() { + return getRuleContext(Create_foreign_data_optionsContext.class, 0); + } + + public Create_foreign_data_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_foreign_data_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_foreign_data_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_foreign_data_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_foreign_data_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_foreign_data_stmtContext create_foreign_data_stmt() throws RecognitionException { + Create_foreign_data_stmtContext _localctx = new Create_foreign_data_stmtContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_create_foreign_data_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2437); + match(CREATE); + setState(2438); + match(FOREIGN); + setState(2439); + match(DATA); + setState(2440); + match(WRAPPER); + setState(2441); + ((Create_foreign_data_stmtContext) _localctx).wrapper = identifier(0); + setState(2448); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 190, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + setState(2446); + _errHandler.sync(this); + switch (_input.LA(1)) { + case HANDLER: { + setState(2442); + match(HANDLER); + setState(2443); + ((Create_foreign_data_stmtContext) _localctx).handler = identifier(0); + } + break; + case NO: { + setState(2444); + match(NO); + setState(2445); + match(HANDLER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(2450); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 190, _ctx); + } + setState(2455); + _errHandler.sync(this); + switch (_input.LA(1)) { + case VALIDATOR: { + setState(2451); + match(VALIDATOR); + setState(2452); + ((Create_foreign_data_stmtContext) _localctx).validator = identifier(0); + } + break; + case NO: { + setState(2453); + match(NO); + setState(2454); + match(VALIDATOR); + } + break; + case EOF: + case OPTIONS: + case CLOSE_PAREN: + case SEMI: + break; + default: + break; + } + setState(2462); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPTIONS) { + { + setState(2457); + match(OPTIONS); + setState(2458); + match(OPEN_PAREN); + setState(2459); + ((Create_foreign_data_stmtContext) _localctx).opts = create_foreign_data_options(); + setState(2460); + match(CLOSE_PAREN); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_foreign_table_stmtContext extends ParserRuleContext { + public IdentifierContext table_name_TODO; + public IdentifierContext column_name_TODO; + public IdentifierContext column_type; + public Create_foreign_data_optionsContext opts; + public Name_Context server_name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode SERVER() { + return getToken(PostgreSQLParser.SERVER, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public List OPTIONS() { + return getTokens(PostgreSQLParser.OPTIONS); + } + + public TerminalNode OPTIONS(int i) { + return getToken(PostgreSQLParser.OPTIONS, i); + } + + public TerminalNode COLLATE() { + return getToken(PostgreSQLParser.COLLATE, 0); + } + + public Create_collation_optContext create_collation_opt() { + return getRuleContext(Create_collation_optContext.class, 0); + } + + public TerminalNode INHERITS() { + return getToken(PostgreSQLParser.INHERITS, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public List create_foreign_data_options() { + return getRuleContexts(Create_foreign_data_optionsContext.class); + } + + public Create_foreign_data_optionsContext create_foreign_data_options(int i) { + return getRuleContext(Create_foreign_data_optionsContext.class, i); + } + + public Create_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_foreign_table_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_foreign_table_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_foreign_table_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_foreign_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_foreign_table_stmtContext create_foreign_table_stmt() throws RecognitionException { + Create_foreign_table_stmtContext _localctx = new Create_foreign_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_create_foreign_table_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2464); + match(CREATE); + setState(2465); + match(FOREIGN); + setState(2466); + match(TABLE); + setState(2470); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(2467); + match(IF); + setState(2468); + match(NOT); + setState(2469); + match(EXISTS); + } + } + + setState(2472); + ((Create_foreign_table_stmtContext) _localctx).table_name_TODO = identifier(0); + setState(2473); + match(OPEN_PAREN); + setState(2474); + ((Create_foreign_table_stmtContext) _localctx).column_name_TODO = identifier(0); + setState(2475); + ((Create_foreign_table_stmtContext) _localctx).column_type = identifier(0); + setState(2481); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPTIONS) { + { + setState(2476); + match(OPTIONS); + setState(2477); + match(OPEN_PAREN); + setState(2478); + ((Create_foreign_table_stmtContext) _localctx).opts = create_foreign_data_options(); + setState(2479); + match(CLOSE_PAREN); + } + } + + setState(2485); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COLLATE) { + { + setState(2483); + match(COLLATE); + setState(2484); + create_collation_opt(); + } + } + + setState(2487); + match(CLOSE_PAREN); + setState(2490); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INHERITS) { + { + setState(2488); + match(INHERITS); + setState(2489); + name_list(); + } + } + + setState(2492); + match(SERVER); + setState(2493); + ((Create_foreign_table_stmtContext) _localctx).server_name = name_(); + setState(2499); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPTIONS) { + { + setState(2494); + match(OPTIONS); + setState(2495); + match(OPEN_PAREN); + setState(2496); + ((Create_foreign_table_stmtContext) _localctx).opts = create_foreign_data_options(); + setState(2497); + match(CLOSE_PAREN); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_function_stmtContext extends ParserRuleContext { + public Name_Context fn_name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode FUNCTION() { + return getToken(PostgreSQLParser.FUNCTION, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public TerminalNode REPLACE() { + return getToken(PostgreSQLParser.REPLACE, 0); + } + + public Create_function_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_function_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_function_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_function_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_function_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_function_stmtContext create_function_stmt() throws RecognitionException { + Create_function_stmtContext _localctx = new Create_function_stmtContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_create_function_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2501); + match(CREATE); + setState(2504); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OR) { + { + setState(2502); + match(OR); + setState(2503); + match(REPLACE); + } + } + + setState(2506); + match(FUNCTION); + setState(2507); + ((Create_function_stmtContext) _localctx).fn_name = name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_group_stmtContext extends ParserRuleContext { + public IdentifierContext group; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public List GROUP() { + return getTokens(PostgreSQLParser.GROUP); + } + + public TerminalNode GROUP(int i) { + return getToken(PostgreSQLParser.GROUP, i); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public List SUPERUSER() { + return getTokens(PostgreSQLParser.SUPERUSER); + } + + public TerminalNode SUPERUSER(int i) { + return getToken(PostgreSQLParser.SUPERUSER, i); + } + + public List NOSUPERUSER() { + return getTokens(PostgreSQLParser.NOSUPERUSER); + } + + public TerminalNode NOSUPERUSER(int i) { + return getToken(PostgreSQLParser.NOSUPERUSER, i); + } + + public List CREATEDB() { + return getTokens(PostgreSQLParser.CREATEDB); + } + + public TerminalNode CREATEDB(int i) { + return getToken(PostgreSQLParser.CREATEDB, i); + } + + public List NOCREATEDB() { + return getTokens(PostgreSQLParser.NOCREATEDB); + } + + public TerminalNode NOCREATEDB(int i) { + return getToken(PostgreSQLParser.NOCREATEDB, i); + } + + public List CREATEROLE() { + return getTokens(PostgreSQLParser.CREATEROLE); + } + + public TerminalNode CREATEROLE(int i) { + return getToken(PostgreSQLParser.CREATEROLE, i); + } + + public List NOCREATEROLE() { + return getTokens(PostgreSQLParser.NOCREATEROLE); + } + + public TerminalNode NOCREATEROLE(int i) { + return getToken(PostgreSQLParser.NOCREATEROLE, i); + } + + public List CREATEUSER() { + return getTokens(PostgreSQLParser.CREATEUSER); + } + + public TerminalNode CREATEUSER(int i) { + return getToken(PostgreSQLParser.CREATEUSER, i); + } + + public List NOCREATEUSER() { + return getTokens(PostgreSQLParser.NOCREATEUSER); + } + + public TerminalNode NOCREATEUSER(int i) { + return getToken(PostgreSQLParser.NOCREATEUSER, i); + } + + public List INHERIT() { + return getTokens(PostgreSQLParser.INHERIT); + } + + public TerminalNode INHERIT(int i) { + return getToken(PostgreSQLParser.INHERIT, i); + } + + public List NOINHERIT() { + return getTokens(PostgreSQLParser.NOINHERIT); + } + + public TerminalNode NOINHERIT(int i) { + return getToken(PostgreSQLParser.NOINHERIT, i); + } + + public List LOGIN() { + return getTokens(PostgreSQLParser.LOGIN); + } + + public TerminalNode LOGIN(int i) { + return getToken(PostgreSQLParser.LOGIN, i); + } + + public List NOLOGIN() { + return getTokens(PostgreSQLParser.NOLOGIN); + } + + public TerminalNode NOLOGIN(int i) { + return getToken(PostgreSQLParser.NOLOGIN, i); + } + + public List PASSWORD() { + return getTokens(PostgreSQLParser.PASSWORD); + } + + public TerminalNode PASSWORD(int i) { + return getToken(PostgreSQLParser.PASSWORD, i); + } + + public List VALID() { + return getTokens(PostgreSQLParser.VALID); + } + + public TerminalNode VALID(int i) { + return getToken(PostgreSQLParser.VALID, i); + } + + public List UNTIL() { + return getTokens(PostgreSQLParser.UNTIL); + } + + public TerminalNode UNTIL(int i) { + return getToken(PostgreSQLParser.UNTIL, i); + } + + public List SINGLEQ_STRING_LITERAL() { + return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); + } + + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + + public List IN() { + return getTokens(PostgreSQLParser.IN); + } + + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + + public List ROLE() { + return getTokens(PostgreSQLParser.ROLE); + } + + public TerminalNode ROLE(int i) { + return getToken(PostgreSQLParser.ROLE, i); + } + + public List name_list() { + return getRuleContexts(Name_listContext.class); + } + + public Name_listContext name_list(int i) { + return getRuleContext(Name_listContext.class, i); + } + + public List ADMIN() { + return getTokens(PostgreSQLParser.ADMIN); + } + + public TerminalNode ADMIN(int i) { + return getToken(PostgreSQLParser.ADMIN, i); + } + + public List USER() { + return getTokens(PostgreSQLParser.USER); + } + + public TerminalNode USER(int i) { + return getToken(PostgreSQLParser.USER, i); + } + + public List SYSID() { + return getTokens(PostgreSQLParser.SYSID); + } + + public TerminalNode SYSID(int i) { + return getToken(PostgreSQLParser.SYSID, i); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public List NULL() { + return getTokens(PostgreSQLParser.NULL); + } + + public TerminalNode NULL(int i) { + return getToken(PostgreSQLParser.NULL, i); + } + + public List ENCRYPTED() { + return getTokens(PostgreSQLParser.ENCRYPTED); + } + + public TerminalNode ENCRYPTED(int i) { + return getToken(PostgreSQLParser.ENCRYPTED, i); + } + + public List UNENCRYPTED() { + return getTokens(PostgreSQLParser.UNENCRYPTED); + } + + public TerminalNode UNENCRYPTED(int i) { + return getToken(PostgreSQLParser.UNENCRYPTED, i); + } + + public Create_group_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_group_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_group_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_group_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_group_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_group_stmtContext create_group_stmt() throws RecognitionException { + Create_group_stmtContext _localctx = new Create_group_stmtContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_create_group_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2509); + match(CREATE); + setState(2510); + match(GROUP); + setState(2511); + ((Create_group_stmtContext) _localctx).group = identifier(0); + setState(2553); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ADMIN || _la == CREATEDB || _la == CREATEUSER || _la == ENCRYPTED || _la == IN || ((((_la - 360)) & ~0x3f) == 0 && ((1L << (_la - 360)) & ((1L << (NOCREATEDB - 360)) | (1L << (NOCREATEUSER - 360)) | (1L << (PASSWORD - 360)))) != 0) || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (UNENCRYPTED - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 646)) & ~0x3f) == 0 && ((1L << (_la - 646)) & ((1L << (WITH - 646)) | (1L << (SUPERUSER - 646)) | (1L << (NOSUPERUSER - 646)) | (1L << (CREATEROLE - 646)) | (1L << (NOCREATEROLE - 646)) | (1L << (INHERIT - 646)) | (1L << (NOINHERIT - 646)) | (1L << (LOGIN - 646)) | (1L << (NOLOGIN - 646)))) != 0)) { + { + setState(2513); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2512); + match(WITH); + } + } + + setState(2549); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + setState(2549); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 201, _ctx)) { + case 1: { + setState(2515); + match(SUPERUSER); + } + break; + case 2: { + setState(2516); + match(NOSUPERUSER); + } + break; + case 3: { + setState(2517); + match(CREATEDB); + } + break; + case 4: { + setState(2518); + match(NOCREATEDB); + } + break; + case 5: { + setState(2519); + match(CREATEROLE); + } + break; + case 6: { + setState(2520); + match(NOCREATEROLE); + } + break; + case 7: { + setState(2521); + match(CREATEUSER); + } + break; + case 8: { + setState(2522); + match(NOCREATEUSER); + } + break; + case 9: { + setState(2523); + match(INHERIT); + } + break; + case 10: { + setState(2524); + match(NOINHERIT); + } + break; + case 11: { + setState(2525); + match(LOGIN); + } + break; + case 12: { + setState(2526); + match(NOLOGIN); + } + break; + case 13: { + setState(2528); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ENCRYPTED || _la == UNENCRYPTED) { + { + setState(2527); + _la = _input.LA(1); + if (!(_la == ENCRYPTED || _la == UNENCRYPTED)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2530); + match(PASSWORD); + setState(2531); + _la = _input.LA(1); + if (!(_la == NULL || _la == SINGLEQ_STRING_LITERAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 14: { + setState(2532); + match(VALID); + setState(2533); + match(UNTIL); + setState(2534); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 15: { + setState(2535); + match(IN); + setState(2536); + match(ROLE); + setState(2537); + name_list(); + } + break; + case 16: { + setState(2538); + match(IN); + setState(2539); + match(GROUP); + setState(2540); + name_list(); + } + break; + case 17: { + setState(2541); + match(ROLE); + setState(2542); + name_list(); + } + break; + case 18: { + setState(2543); + match(ADMIN); + setState(2544); + name_list(); + } + break; + case 19: { + setState(2545); + match(USER); + setState(2546); + name_list(); + } + break; + case 20: { + setState(2547); + match(SYSID); + setState(2548); + match(INTEGER_LITERAL); + } + break; + } + } + setState(2551); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == ADMIN || _la == CREATEDB || _la == CREATEUSER || _la == ENCRYPTED || _la == IN || ((((_la - 360)) & ~0x3f) == 0 && ((1L << (_la - 360)) & ((1L << (NOCREATEDB - 360)) | (1L << (NOCREATEUSER - 360)) | (1L << (PASSWORD - 360)))) != 0) || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (UNENCRYPTED - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 655)) & ~0x3f) == 0 && ((1L << (_la - 655)) & ((1L << (SUPERUSER - 655)) | (1L << (NOSUPERUSER - 655)) | (1L << (CREATEROLE - 655)) | (1L << (NOCREATEROLE - 655)) | (1L << (INHERIT - 655)) | (1L << (NOINHERIT - 655)) | (1L << (LOGIN - 655)) | (1L << (NOLOGIN - 655)))) != 0)); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_index_stmtContext extends ParserRuleContext { + public IdentifierContext index_name; + public IdentifierContext tableName; + public IdentifierContext tablespace_name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode UNIQUE() { + return getToken(PostgreSQLParser.UNIQUE, 0); + } + + public TerminalNode CONCURRENTLY() { + return getToken(PostgreSQLParser.CONCURRENTLY, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Create_index_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_index_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_index_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_index_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_index_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_index_stmtContext create_index_stmt() throws RecognitionException { + Create_index_stmtContext _localctx = new Create_index_stmtContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_create_index_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2555); + match(CREATE); + setState(2557); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == UNIQUE) { + { + setState(2556); + match(UNIQUE); + } + } + + setState(2559); + match(INDEX); + setState(2561); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CONCURRENTLY) { + { + setState(2560); + match(CONCURRENTLY); + } + } + + setState(2569); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)) | (1L << (IF - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(2566); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(2563); + match(IF); + setState(2564); + match(NOT); + setState(2565); + match(EXISTS); + } + } + + setState(2568); + ((Create_index_stmtContext) _localctx).index_name = identifier(0); + } + } + + setState(2571); + match(ON); + setState(2572); + ((Create_index_stmtContext) _localctx).tableName = identifier(0); + setState(2575); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == USING) { + { + setState(2573); + match(USING); + setState(2574); + index_method(); + } + } + + setState(2579); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TABLESPACE) { + { + setState(2577); + match(TABLESPACE); + setState(2578); + ((Create_index_stmtContext) _localctx).tablespace_name = identifier(0); + } + } + + setState(2583); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WHERE) { + { + setState(2581); + match(WHERE); + setState(2582); + predicate(0); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_language_stmtContext extends ParserRuleContext { + public IdentifierContext language_name; + public IdentifierContext call_handler; + public IdentifierContext inline_handler; + public IdentifierContext valfunction; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode LANGUAGE() { + return getToken(PostgreSQLParser.LANGUAGE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public TerminalNode REPLACE() { + return getToken(PostgreSQLParser.REPLACE, 0); + } + + public TerminalNode PROCEDURAL() { + return getToken(PostgreSQLParser.PROCEDURAL, 0); + } + + public TerminalNode HANDLER() { + return getToken(PostgreSQLParser.HANDLER, 0); + } + + public TerminalNode TRUSTED() { + return getToken(PostgreSQLParser.TRUSTED, 0); + } + + public TerminalNode INLINE() { + return getToken(PostgreSQLParser.INLINE, 0); + } + + public TerminalNode VALIDATOR() { + return getToken(PostgreSQLParser.VALIDATOR, 0); + } + + public Create_language_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_language_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_language_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_language_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_language_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_language_stmtContext create_language_stmt() throws RecognitionException { + Create_language_stmtContext _localctx = new Create_language_stmtContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_create_language_stmt); + int _la; + try { + setState(2618); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 218, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(2585); + match(CREATE); + setState(2588); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OR) { + { + setState(2586); + match(OR); + setState(2587); + match(REPLACE); + } + } + + setState(2591); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == PROCEDURAL) { + { + setState(2590); + match(PROCEDURAL); + } + } + + setState(2593); + match(LANGUAGE); + setState(2594); + ((Create_language_stmtContext) _localctx).language_name = identifier(0); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2595); + match(CREATE); + setState(2598); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OR) { + { + setState(2596); + match(OR); + setState(2597); + match(REPLACE); + } + } + + setState(2601); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TRUSTED) { + { + setState(2600); + match(TRUSTED); + } + } + + setState(2604); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == PROCEDURAL) { + { + setState(2603); + match(PROCEDURAL); + } + } + + setState(2606); + match(LANGUAGE); + setState(2607); + ((Create_language_stmtContext) _localctx).language_name = identifier(0); + setState(2608); + match(HANDLER); + setState(2609); + ((Create_language_stmtContext) _localctx).call_handler = identifier(0); + setState(2612); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INLINE) { + { + setState(2610); + match(INLINE); + setState(2611); + ((Create_language_stmtContext) _localctx).inline_handler = identifier(0); + } + } + + setState(2616); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == VALIDATOR) { + { + setState(2614); + match(VALIDATOR); + setState(2615); + ((Create_language_stmtContext) _localctx).valfunction = identifier(0); + } + } + + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_materialized_view_stmtContext extends ParserRuleContext { + public IdentifierContext tableName; + public Identifier_listContext columns; + public IdentifierContext tablespace_name; + public Select_stmtContext query; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode MATERIALIZED() { + return getToken(PostgreSQLParser.MATERIALIZED, 0); + } + + public TerminalNode VIEW() { + return getToken(PostgreSQLParser.VIEW, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List WITH() { + return getTokens(PostgreSQLParser.WITH); + } + + public TerminalNode WITH(int i) { + return getToken(PostgreSQLParser.WITH, i); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public TerminalNode DATA() { + return getToken(PostgreSQLParser.DATA, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode NO() { + return getToken(PostgreSQLParser.NO, 0); + } + + public Create_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_materialized_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_materialized_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_materialized_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_materialized_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_materialized_view_stmtContext create_materialized_view_stmt() throws RecognitionException { + Create_materialized_view_stmtContext _localctx = new Create_materialized_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_create_materialized_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2620); + match(CREATE); + setState(2621); + match(MATERIALIZED); + setState(2622); + match(VIEW); + setState(2626); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(2623); + match(IF); + setState(2624); + match(NOT); + setState(2625); + match(EXISTS); + } + } + + setState(2628); + ((Create_materialized_view_stmtContext) _localctx).tableName = identifier(0); + setState(2633); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(2629); + match(OPEN_PAREN); + setState(2630); + ((Create_materialized_view_stmtContext) _localctx).columns = identifier_list(); + setState(2631); + match(CLOSE_PAREN); + } + } + + setState(2636); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2635); + match(WITH); + } + } + + setState(2640); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TABLESPACE) { + { + setState(2638); + match(TABLESPACE); + setState(2639); + ((Create_materialized_view_stmtContext) _localctx).tablespace_name = identifier(0); + } + } + + setState(2642); + match(AS); + setState(2643); + ((Create_materialized_view_stmtContext) _localctx).query = select_stmt(); + setState(2649); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2644); + match(WITH); + setState(2646); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NO) { + { + setState(2645); + match(NO); + } + } + + setState(2648); + match(DATA); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_stmtContext extends ParserRuleContext { + public IdentifierContext opName; + public IdentifierContext function_name; + public Name_Context left_type; + public Name_Context right_type; + public Name_Context com_op; + public Name_Context neg_op; + public Name_Context res_proc; + public Name_Context join_proc; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode PROCEDURE() { + return getToken(PostgreSQLParser.PROCEDURE, 0); + } + + public List EQUAL() { + return getTokens(PostgreSQLParser.EQUAL); + } + + public TerminalNode EQUAL(int i) { + return getToken(PostgreSQLParser.EQUAL, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public TerminalNode LEFTARG() { + return getToken(PostgreSQLParser.LEFTARG, 0); + } + + public TerminalNode RIGHTARG() { + return getToken(PostgreSQLParser.RIGHTARG, 0); + } + + public TerminalNode COMMUTATOR() { + return getToken(PostgreSQLParser.COMMUTATOR, 0); + } + + public TerminalNode NEGATOR() { + return getToken(PostgreSQLParser.NEGATOR, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public TerminalNode JOIN() { + return getToken(PostgreSQLParser.JOIN, 0); + } + + public TerminalNode HASHES() { + return getToken(PostgreSQLParser.HASHES, 0); + } + + public TerminalNode MERGES() { + return getToken(PostgreSQLParser.MERGES, 0); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public Create_operator_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_operator_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_operator_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_operator_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_stmtContext create_operator_stmt() throws RecognitionException { + Create_operator_stmtContext _localctx = new Create_operator_stmtContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_create_operator_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2651); + match(CREATE); + setState(2652); + match(OPERATOR); + setState(2653); + ((Create_operator_stmtContext) _localctx).opName = identifier(0); + setState(2654); + match(OPEN_PAREN); + setState(2655); + match(PROCEDURE); + setState(2656); + match(EQUAL); + setState(2657); + ((Create_operator_stmtContext) _localctx).function_name = identifier(0); + setState(2662); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 225, _ctx)) { + case 1: { + setState(2658); + match(COMMA); + setState(2659); + match(LEFTARG); + setState(2660); + match(EQUAL); + setState(2661); + ((Create_operator_stmtContext) _localctx).left_type = name_(); + } + break; + } + setState(2668); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 226, _ctx)) { + case 1: { + setState(2664); + match(COMMA); + setState(2665); + match(RIGHTARG); + setState(2666); + match(EQUAL); + setState(2667); + ((Create_operator_stmtContext) _localctx).right_type = name_(); + } + break; + } + setState(2674); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 227, _ctx)) { + case 1: { + setState(2670); + match(COMMA); + setState(2671); + match(COMMUTATOR); + setState(2672); + match(EQUAL); + setState(2673); + ((Create_operator_stmtContext) _localctx).com_op = name_(); + } + break; + } + setState(2680); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 228, _ctx)) { + case 1: { + setState(2676); + match(COMMA); + setState(2677); + match(NEGATOR); + setState(2678); + match(EQUAL); + setState(2679); + ((Create_operator_stmtContext) _localctx).neg_op = name_(); + } + break; + } + setState(2686); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 229, _ctx)) { + case 1: { + setState(2682); + match(COMMA); + setState(2683); + match(RESTRICT); + setState(2684); + match(EQUAL); + setState(2685); + ((Create_operator_stmtContext) _localctx).res_proc = name_(); + } + break; + } + setState(2692); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 230, _ctx)) { + case 1: { + setState(2688); + match(COMMA); + setState(2689); + match(JOIN); + setState(2690); + match(EQUAL); + setState(2691); + ((Create_operator_stmtContext) _localctx).join_proc = name_(); + } + break; + } + setState(2696); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 231, _ctx)) { + case 1: { + setState(2694); + match(COMMA); + setState(2695); + match(HASHES); + } + break; + } + setState(2700); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(2698); + match(COMMA); + setState(2699); + match(MERGES); + } + } + + setState(2702); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_class_optContext extends ParserRuleContext { + public Token strategy_number; + public IdentifierContext opName; + public Token support_number; + public IdentifierContext func_name_; + public IdentifierContext storage_type; + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public TerminalNode COMMA() { + return getToken(PostgreSQLParser.COMMA, 0); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode FUNCTION() { + return getToken(PostgreSQLParser.FUNCTION, 0); + } + + public Data_type_listContext data_type_list() { + return getRuleContext(Data_type_listContext.class, 0); + } + + public TerminalNode STORAGE() { + return getToken(PostgreSQLParser.STORAGE, 0); + } + + public Create_operator_class_optContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_operator_class_opt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_operator_class_opt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_operator_class_opt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_class_opt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_class_optContext create_operator_class_opt() throws RecognitionException { + Create_operator_class_optContext _localctx = new Create_operator_class_optContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_create_operator_class_opt); + int _la; + try { + setState(2734); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPERATOR: + enterOuterAlt(_localctx, 1); + { + { + setState(2704); + match(OPERATOR); + setState(2705); + ((Create_operator_class_optContext) _localctx).strategy_number = match(INTEGER_LITERAL); + setState(2706); + ((Create_operator_class_optContext) _localctx).opName = identifier(0); + setState(2713); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(2707); + match(OPEN_PAREN); + setState(2708); + identifier(0); + setState(2709); + match(COMMA); + setState(2710); + identifier(0); + setState(2711); + match(CLOSE_PAREN); + } + } + + } + } + break; + case FUNCTION: + enterOuterAlt(_localctx, 2); + { + { + setState(2715); + match(FUNCTION); + setState(2716); + ((Create_operator_class_optContext) _localctx).support_number = match(INTEGER_LITERAL); + setState(2725); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(2717); + match(OPEN_PAREN); + setState(2718); + identifier(0); + setState(2721); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(2719); + match(COMMA); + setState(2720); + identifier(0); + } + } + + setState(2723); + match(CLOSE_PAREN); + } + } + + setState(2727); + ((Create_operator_class_optContext) _localctx).func_name_ = identifier(0); + setState(2728); + match(OPEN_PAREN); + setState(2729); + data_type_list(); + setState(2730); + match(CLOSE_PAREN); + } + } + break; + case STORAGE: + enterOuterAlt(_localctx, 3); + { + { + setState(2732); + match(STORAGE); + setState(2733); + ((Create_operator_class_optContext) _localctx).storage_type = identifier(0); + } + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_class_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext op_type; + public IdentifierContext family_name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode CLASS() { + return getToken(PostgreSQLParser.CLASS, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode TYPE() { + return getToken(PostgreSQLParser.TYPE, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List create_operator_class_opt() { + return getRuleContexts(Create_operator_class_optContext.class); + } + + public Create_operator_class_optContext create_operator_class_opt(int i) { + return getRuleContext(Create_operator_class_optContext.class, i); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public TerminalNode FAMILY() { + return getToken(PostgreSQLParser.FAMILY, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Create_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_operator_class_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_operator_class_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_operator_class_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_class_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_class_stmtContext create_operator_class_stmt() throws RecognitionException { + Create_operator_class_stmtContext _localctx = new Create_operator_class_stmtContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_create_operator_class_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2736); + match(CREATE); + setState(2737); + match(OPERATOR); + setState(2738); + match(CLASS); + setState(2739); + ((Create_operator_class_stmtContext) _localctx).name = identifier(0); + setState(2741); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == DEFAULT) { + { + setState(2740); + match(DEFAULT); + } + } + + setState(2743); + match(FOR); + setState(2744); + match(TYPE); + setState(2745); + ((Create_operator_class_stmtContext) _localctx).op_type = identifier(0); + setState(2746); + match(USING); + setState(2747); + index_method(); + setState(2750); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FAMILY) { + { + setState(2748); + match(FAMILY); + setState(2749); + ((Create_operator_class_stmtContext) _localctx).family_name = identifier(0); + } + } + + setState(2752); + match(AS); + setState(2753); + create_operator_class_opt(); + setState(2758); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(2754); + match(COMMA); + setState(2755); + create_operator_class_opt(); + } + } + setState(2760); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_family_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode FAMILY() { + return getToken(PostgreSQLParser.FAMILY, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Create_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_operator_family_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_operator_family_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_operator_family_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_family_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_family_stmtContext create_operator_family_stmt() throws RecognitionException { + Create_operator_family_stmtContext _localctx = new Create_operator_family_stmtContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_create_operator_family_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2761); + match(CREATE); + setState(2762); + match(OPERATOR); + setState(2763); + match(FAMILY); + setState(2764); + ((Create_operator_family_stmtContext) _localctx).name = identifier(0); + setState(2765); + match(USING); + setState(2766); + index_method(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_policy_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext tableName; + public Role_nameContext role; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode POLICY() { + return getToken(PostgreSQLParser.POLICY, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode CHECK() { + return getToken(PostgreSQLParser.CHECK, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode SELECT() { + return getToken(PostgreSQLParser.SELECT, 0); + } + + public TerminalNode INSERT() { + return getToken(PostgreSQLParser.INSERT, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public TerminalNode DELETE() { + return getToken(PostgreSQLParser.DELETE, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public Create_policy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_policy_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_policy_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_policy_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_policy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_policy_stmtContext create_policy_stmt() throws RecognitionException { + Create_policy_stmtContext _localctx = new Create_policy_stmtContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_create_policy_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2768); + match(CREATE); + setState(2769); + match(POLICY); + setState(2770); + ((Create_policy_stmtContext) _localctx).name = identifier(0); + setState(2771); + match(ON); + setState(2772); + ((Create_policy_stmtContext) _localctx).tableName = identifier(0); + setState(2775); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FOR) { + { + setState(2773); + match(FOR); + setState(2774); + _la = _input.LA(1); + if (!(_la == ALL || _la == DELETE || _la == INSERT || _la == SELECT || _la == UPDATE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2779); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TO) { + { + setState(2777); + match(TO); + setState(2778); + ((Create_policy_stmtContext) _localctx).role = role_name(); + } + } + + setState(2786); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == USING) { + { + setState(2781); + match(USING); + setState(2782); + match(OPEN_PAREN); + setState(2783); + predicate(0); + setState(2784); + match(CLOSE_PAREN); + } + } + + setState(2794); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2788); + match(WITH); + setState(2789); + match(CHECK); + setState(2790); + match(OPEN_PAREN); + setState(2791); + predicate(0); + setState(2792); + match(CLOSE_PAREN); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_role_stmtContext extends ParserRuleContext { + public Role_nameContext role; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public List ROLE() { + return getTokens(PostgreSQLParser.ROLE); + } + + public TerminalNode ROLE(int i) { + return getToken(PostgreSQLParser.ROLE, i); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public List SUPERUSER() { + return getTokens(PostgreSQLParser.SUPERUSER); + } + + public TerminalNode SUPERUSER(int i) { + return getToken(PostgreSQLParser.SUPERUSER, i); + } + + public List NOSUPERUSER() { + return getTokens(PostgreSQLParser.NOSUPERUSER); + } + + public TerminalNode NOSUPERUSER(int i) { + return getToken(PostgreSQLParser.NOSUPERUSER, i); + } + + public List CREATEDB() { + return getTokens(PostgreSQLParser.CREATEDB); + } + + public TerminalNode CREATEDB(int i) { + return getToken(PostgreSQLParser.CREATEDB, i); + } + + public List NOCREATEDB() { + return getTokens(PostgreSQLParser.NOCREATEDB); + } + + public TerminalNode NOCREATEDB(int i) { + return getToken(PostgreSQLParser.NOCREATEDB, i); + } + + public List CREATEROLE() { + return getTokens(PostgreSQLParser.CREATEROLE); + } + + public TerminalNode CREATEROLE(int i) { + return getToken(PostgreSQLParser.CREATEROLE, i); + } + + public List NOCREATEROLE() { + return getTokens(PostgreSQLParser.NOCREATEROLE); + } + + public TerminalNode NOCREATEROLE(int i) { + return getToken(PostgreSQLParser.NOCREATEROLE, i); + } + + public List INHERIT() { + return getTokens(PostgreSQLParser.INHERIT); + } + + public TerminalNode INHERIT(int i) { + return getToken(PostgreSQLParser.INHERIT, i); + } + + public List NOINHERIT() { + return getTokens(PostgreSQLParser.NOINHERIT); + } + + public TerminalNode NOINHERIT(int i) { + return getToken(PostgreSQLParser.NOINHERIT, i); + } + + public List LOGIN() { + return getTokens(PostgreSQLParser.LOGIN); + } + + public TerminalNode LOGIN(int i) { + return getToken(PostgreSQLParser.LOGIN, i); + } + + public List NOLOGIN() { + return getTokens(PostgreSQLParser.NOLOGIN); + } + + public TerminalNode NOLOGIN(int i) { + return getToken(PostgreSQLParser.NOLOGIN, i); + } + + public List REPLICATION() { + return getTokens(PostgreSQLParser.REPLICATION); + } + + public TerminalNode REPLICATION(int i) { + return getToken(PostgreSQLParser.REPLICATION, i); + } + + public List NOREPLICATION() { + return getTokens(PostgreSQLParser.NOREPLICATION); + } + + public TerminalNode NOREPLICATION(int i) { + return getToken(PostgreSQLParser.NOREPLICATION, i); + } + + public List BYPASSRLS() { + return getTokens(PostgreSQLParser.BYPASSRLS); + } + + public TerminalNode BYPASSRLS(int i) { + return getToken(PostgreSQLParser.BYPASSRLS, i); + } + + public List NOBYPASSRLS() { + return getTokens(PostgreSQLParser.NOBYPASSRLS); + } + + public TerminalNode NOBYPASSRLS(int i) { + return getToken(PostgreSQLParser.NOBYPASSRLS, i); + } + + public List CONNECTION() { + return getTokens(PostgreSQLParser.CONNECTION); + } + + public TerminalNode CONNECTION(int i) { + return getToken(PostgreSQLParser.CONNECTION, i); + } + + public List LIMIT() { + return getTokens(PostgreSQLParser.LIMIT); + } + + public TerminalNode LIMIT(int i) { + return getToken(PostgreSQLParser.LIMIT, i); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public List PASSWORD() { + return getTokens(PostgreSQLParser.PASSWORD); + } + + public TerminalNode PASSWORD(int i) { + return getToken(PostgreSQLParser.PASSWORD, i); + } + + public List VALID() { + return getTokens(PostgreSQLParser.VALID); + } + + public TerminalNode VALID(int i) { + return getToken(PostgreSQLParser.VALID, i); + } + + public List UNTIL() { + return getTokens(PostgreSQLParser.UNTIL); + } + + public TerminalNode UNTIL(int i) { + return getToken(PostgreSQLParser.UNTIL, i); + } + + public List SINGLEQ_STRING_LITERAL() { + return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); + } + + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + + public List IN() { + return getTokens(PostgreSQLParser.IN); + } + + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + + public List name_list() { + return getRuleContexts(Name_listContext.class); + } + + public Name_listContext name_list(int i) { + return getRuleContext(Name_listContext.class, i); + } + + public List GROUP() { + return getTokens(PostgreSQLParser.GROUP); + } + + public TerminalNode GROUP(int i) { + return getToken(PostgreSQLParser.GROUP, i); + } + + public List ADMIN() { + return getTokens(PostgreSQLParser.ADMIN); + } + + public TerminalNode ADMIN(int i) { + return getToken(PostgreSQLParser.ADMIN, i); + } + + public List USER() { + return getTokens(PostgreSQLParser.USER); + } + + public TerminalNode USER(int i) { + return getToken(PostgreSQLParser.USER, i); + } + + public List SYSID() { + return getTokens(PostgreSQLParser.SYSID); + } + + public TerminalNode SYSID(int i) { + return getToken(PostgreSQLParser.SYSID, i); + } + + public List NULL() { + return getTokens(PostgreSQLParser.NULL); + } + + public TerminalNode NULL(int i) { + return getToken(PostgreSQLParser.NULL, i); + } + + public List ENCRYPTED() { + return getTokens(PostgreSQLParser.ENCRYPTED); + } + + public TerminalNode ENCRYPTED(int i) { + return getToken(PostgreSQLParser.ENCRYPTED, i); + } + + public Create_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_role_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_role_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_role_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_role_stmtContext create_role_stmt() throws RecognitionException { + Create_role_stmtContext _localctx = new Create_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_create_role_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2796); + match(CREATE); + setState(2797); + match(ROLE); + setState(2798); + ((Create_role_stmtContext) _localctx).role = role_name(); + setState(2845); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ADMIN || _la == CONNECTION || _la == CREATEDB || _la == ENCRYPTED || _la == IN || _la == NOCREATEDB || _la == PASSWORD || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 646)) & ~0x3f) == 0 && ((1L << (_la - 646)) & ((1L << (WITH - 646)) | (1L << (SUPERUSER - 646)) | (1L << (NOSUPERUSER - 646)) | (1L << (CREATEROLE - 646)) | (1L << (NOCREATEROLE - 646)) | (1L << (INHERIT - 646)) | (1L << (NOINHERIT - 646)) | (1L << (LOGIN - 646)) | (1L << (NOLOGIN - 646)) | (1L << (REPLICATION - 646)) | (1L << (NOREPLICATION - 646)) | (1L << (BYPASSRLS - 646)) | (1L << (NOBYPASSRLS - 646)))) != 0)) { + { + setState(2800); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2799); + match(WITH); + } + } + + setState(2841); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + setState(2841); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 246, _ctx)) { + case 1: { + setState(2802); + match(SUPERUSER); + } + break; + case 2: { + setState(2803); + match(NOSUPERUSER); + } + break; + case 3: { + setState(2804); + match(CREATEDB); + } + break; + case 4: { + setState(2805); + match(NOCREATEDB); + } + break; + case 5: { + setState(2806); + match(CREATEROLE); + } + break; + case 6: { + setState(2807); + match(NOCREATEROLE); + } + break; + case 7: { + setState(2808); + match(INHERIT); + } + break; + case 8: { + setState(2809); + match(NOINHERIT); + } + break; + case 9: { + setState(2810); + match(LOGIN); + } + break; + case 10: { + setState(2811); + match(NOLOGIN); + } + break; + case 11: { + setState(2812); + match(REPLICATION); + } + break; + case 12: { + setState(2813); + match(NOREPLICATION); + } + break; + case 13: { + setState(2814); + match(BYPASSRLS); + } + break; + case 14: { + setState(2815); + match(NOBYPASSRLS); + } + break; + case 15: { + setState(2816); + match(CONNECTION); + setState(2817); + match(LIMIT); + setState(2818); + match(INTEGER_LITERAL); + } + break; + case 16: { + setState(2820); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ENCRYPTED) { + { + setState(2819); + match(ENCRYPTED); + } + } + + setState(2822); + match(PASSWORD); + setState(2823); + _la = _input.LA(1); + if (!(_la == NULL || _la == SINGLEQ_STRING_LITERAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 17: { + setState(2824); + match(VALID); + setState(2825); + match(UNTIL); + setState(2826); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 18: { + setState(2827); + match(IN); + setState(2828); + match(ROLE); + setState(2829); + name_list(); + } + break; + case 19: { + setState(2830); + match(IN); + setState(2831); + match(GROUP); + setState(2832); + name_list(); + } + break; + case 20: { + setState(2833); + match(ROLE); + setState(2834); + name_list(); + } + break; + case 21: { + setState(2835); + match(ADMIN); + setState(2836); + name_list(); + } + break; + case 22: { + setState(2837); + match(USER); + setState(2838); + name_list(); + } + break; + case 23: { + setState(2839); + match(SYSID); + setState(2840); + match(INTEGER_LITERAL); + } + break; + } + } + setState(2843); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == ADMIN || _la == CONNECTION || _la == CREATEDB || _la == ENCRYPTED || _la == IN || _la == NOCREATEDB || _la == PASSWORD || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 655)) & ~0x3f) == 0 && ((1L << (_la - 655)) & ((1L << (SUPERUSER - 655)) | (1L << (NOSUPERUSER - 655)) | (1L << (CREATEROLE - 655)) | (1L << (NOCREATEROLE - 655)) | (1L << (INHERIT - 655)) | (1L << (NOINHERIT - 655)) | (1L << (LOGIN - 655)) | (1L << (NOLOGIN - 655)) | (1L << (REPLICATION - 655)) | (1L << (NOREPLICATION - 655)) | (1L << (BYPASSRLS - 655)) | (1L << (NOBYPASSRLS - 655)))) != 0)); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_rule_eventContext extends ParserRuleContext { + public TerminalNode SELECT() { + return getToken(PostgreSQLParser.SELECT, 0); + } + + public TerminalNode INSERT() { + return getToken(PostgreSQLParser.INSERT, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public TerminalNode DELETE() { + return getToken(PostgreSQLParser.DELETE, 0); + } + + public Create_rule_eventContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_rule_event; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_rule_event(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_rule_event(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_rule_event(this); + else return visitor.visitChildren(this); + } + } + + public final Create_rule_eventContext create_rule_event() throws RecognitionException { + Create_rule_eventContext _localctx = new Create_rule_eventContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_create_rule_event); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2847); + _la = _input.LA(1); + if (!(_la == DELETE || _la == INSERT || _la == SELECT || _la == UPDATE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_rule_stmtContext extends ParserRuleContext { + public Name_Context name; + public Create_rule_eventContext event; + public IdentifierContext tableName; + public IdentifierContext command; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode RULE() { + return getToken(PostgreSQLParser.RULE, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode DO() { + return getToken(PostgreSQLParser.DO, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Create_rule_eventContext create_rule_event() { + return getRuleContext(Create_rule_eventContext.class, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode NOTHING() { + return getToken(PostgreSQLParser.NOTHING, 0); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public TerminalNode REPLACE() { + return getToken(PostgreSQLParser.REPLACE, 0); + } + + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class, 0); + } + + public TerminalNode ALSO() { + return getToken(PostgreSQLParser.ALSO, 0); + } + + public TerminalNode INSTEAD() { + return getToken(PostgreSQLParser.INSTEAD, 0); + } + + public Create_rule_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_rule_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_rule_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_rule_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_rule_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_rule_stmtContext create_rule_stmt() throws RecognitionException { + Create_rule_stmtContext _localctx = new Create_rule_stmtContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_create_rule_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2849); + match(CREATE); + setState(2852); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OR) { + { + setState(2850); + match(OR); + setState(2851); + match(REPLACE); + } + } + + setState(2854); + match(RULE); + setState(2855); + ((Create_rule_stmtContext) _localctx).name = name_(); + setState(2856); + match(AS); + setState(2857); + match(ON); + setState(2858); + ((Create_rule_stmtContext) _localctx).event = create_rule_event(); + setState(2859); + match(TO); + setState(2860); + ((Create_rule_stmtContext) _localctx).tableName = identifier(0); + setState(2863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WHERE) { + { + setState(2861); + match(WHERE); + setState(2862); + predicate(0); + } + } + + setState(2865); + match(DO); + setState(2867); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 251, _ctx)) { + case 1: { + setState(2866); + _la = _input.LA(1); + if (!(_la == ALSO || _la == INSTEAD)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(2871); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 252, _ctx)) { + case 1: { + setState(2869); + match(NOTHING); + } + break; + case 2: { + setState(2870); + ((Create_rule_stmtContext) _localctx).command = identifier(0); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_schema_stmtContext extends ParserRuleContext { + public IdentifierContext schema_name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode AUTHORIZATION() { + return getToken(PostgreSQLParser.AUTHORIZATION, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public Todo_fill_inContext todo_fill_in() { + return getRuleContext(Todo_fill_inContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Create_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_schema_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_schema_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_schema_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_schema_stmtContext create_schema_stmt() throws RecognitionException { + Create_schema_stmtContext _localctx = new Create_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_create_schema_stmt); + int _la; + try { + setState(2907); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 257, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(2873); + match(CREATE); + setState(2874); + match(SCHEMA); + setState(2875); + ((Create_schema_stmtContext) _localctx).schema_name = identifier(0); + setState(2878); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 253, _ctx)) { + case 1: { + setState(2876); + match(AUTHORIZATION); + setState(2877); + role_name(); + } + break; + } + setState(2881); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 254, _ctx)) { + case 1: { + setState(2880); + todo_fill_in(); + } + break; + } + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2883); + match(CREATE); + setState(2884); + match(SCHEMA); + setState(2885); + match(AUTHORIZATION); + setState(2886); + role_name(); + setState(2888); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 255, _ctx)) { + case 1: { + setState(2887); + todo_fill_in(); + } + break; + } + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + { + setState(2890); + match(CREATE); + setState(2891); + match(SCHEMA); + setState(2892); + match(IF); + setState(2893); + match(NOT); + setState(2894); + match(EXISTS); + setState(2895); + ((Create_schema_stmtContext) _localctx).schema_name = identifier(0); + setState(2898); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AUTHORIZATION) { + { + setState(2896); + match(AUTHORIZATION); + setState(2897); + role_name(); + } + } + + } + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + { + setState(2900); + match(CREATE); + setState(2901); + match(SCHEMA); + setState(2902); + match(IF); + setState(2903); + match(NOT); + setState(2904); + match(EXISTS); + setState(2905); + match(AUTHORIZATION); + setState(2906); + role_name(); + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_sequence_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Token increment; + public Token minvalue; + public Token maxvalue; + public Token start; + public Token cache; + public IdentifierContext table_name; + public IdentifierContext column_name_; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode SEQUENCE() { + return getToken(PostgreSQLParser.SEQUENCE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode INCREMENT() { + return getToken(PostgreSQLParser.INCREMENT, 0); + } + + public TerminalNode MINVALUE() { + return getToken(PostgreSQLParser.MINVALUE, 0); + } + + public List NO() { + return getTokens(PostgreSQLParser.NO); + } + + public TerminalNode NO(int i) { + return getToken(PostgreSQLParser.NO, i); + } + + public TerminalNode MAXVALUE() { + return getToken(PostgreSQLParser.MAXVALUE, 0); + } + + public TerminalNode START() { + return getToken(PostgreSQLParser.START, 0); + } + + public TerminalNode CACHE() { + return getToken(PostgreSQLParser.CACHE, 0); + } + + public TerminalNode CYCLE() { + return getToken(PostgreSQLParser.CYCLE, 0); + } + + public TerminalNode OWNED() { + return getToken(PostgreSQLParser.OWNED, 0); + } + + public List BY() { + return getTokens(PostgreSQLParser.BY); + } + + public TerminalNode BY(int i) { + return getToken(PostgreSQLParser.BY, i); + } + + public TerminalNode TEMPORARY() { + return getToken(PostgreSQLParser.TEMPORARY, 0); + } + + public TerminalNode TEMP() { + return getToken(PostgreSQLParser.TEMP, 0); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public TerminalNode NONE() { + return getToken(PostgreSQLParser.NONE, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode DOT() { + return getToken(PostgreSQLParser.DOT, 0); + } + + public Create_sequence_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_sequence_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_sequence_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_sequence_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_sequence_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_sequence_stmtContext create_sequence_stmt() throws RecognitionException { + Create_sequence_stmtContext _localctx = new Create_sequence_stmtContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_create_sequence_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2909); + match(CREATE); + setState(2911); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TEMP || _la == TEMPORARY) { + { + setState(2910); + _la = _input.LA(1); + if (!(_la == TEMP || _la == TEMPORARY)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2913); + match(SEQUENCE); + setState(2917); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(2914); + match(IF); + setState(2915); + match(NOT); + setState(2916); + match(EXISTS); + } + } + + setState(2919); + ((Create_sequence_stmtContext) _localctx).name = identifier(0); + setState(2925); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INCREMENT) { + { + setState(2920); + match(INCREMENT); + setState(2922); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == BY) { + { + setState(2921); + match(BY); + } + } + + setState(2924); + ((Create_sequence_stmtContext) _localctx).increment = match(INTEGER_LITERAL); + } + } + + setState(2931); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 262, _ctx)) { + case 1: { + setState(2927); + match(MINVALUE); + setState(2928); + ((Create_sequence_stmtContext) _localctx).minvalue = match(INTEGER_LITERAL); + } + break; + case 2: { + setState(2929); + match(NO); + setState(2930); + match(MINVALUE); + } + break; + } + setState(2937); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 263, _ctx)) { + case 1: { + setState(2933); + match(MAXVALUE); + setState(2934); + ((Create_sequence_stmtContext) _localctx).maxvalue = match(INTEGER_LITERAL); + } + break; + case 2: { + setState(2935); + match(NO); + setState(2936); + match(MAXVALUE); + } + break; + } + setState(2944); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == START) { + { + setState(2939); + match(START); + setState(2941); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(2940); + match(WITH); + } + } + + setState(2943); + ((Create_sequence_stmtContext) _localctx).start = match(INTEGER_LITERAL); + } + } + + setState(2948); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CACHE) { + { + setState(2946); + match(CACHE); + setState(2947); + ((Create_sequence_stmtContext) _localctx).cache = match(INTEGER_LITERAL); + } + } + + setState(2954); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CYCLE || _la == NO) { + { + setState(2951); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NO) { + { + setState(2950); + match(NO); + } + } + + setState(2953); + match(CYCLE); + } + } + + setState(2965); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OWNED) { + { + setState(2956); + match(OWNED); + setState(2957); + match(BY); + setState(2963); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 269, _ctx)) { + case 1: { + { + setState(2958); + ((Create_sequence_stmtContext) _localctx).table_name = identifier(0); + setState(2959); + match(DOT); + setState(2960); + ((Create_sequence_stmtContext) _localctx).column_name_ = identifier(0); + } + } + break; + case 2: { + setState(2962); + match(NONE); + } + break; + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_server_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_server_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_server_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_server_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_server_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_server_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_server_stmtContext create_server_stmt() throws RecognitionException { + Create_server_stmtContext _localctx = new Create_server_stmtContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_create_server_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2967); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_statistics_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_statistics_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_statistics_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_statistics_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_statistics_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_statistics_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_statistics_stmtContext create_statistics_stmt() throws RecognitionException { + Create_statistics_stmtContext _localctx = new Create_statistics_stmtContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_create_statistics_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2969); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_subscription_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_subscription_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_subscription_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_subscription_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_subscription_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_subscription_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_subscription_stmtContext create_subscription_stmt() throws RecognitionException { + Create_subscription_stmtContext _localctx = new Create_subscription_stmtContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_create_subscription_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2971); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_table_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_table_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_table_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_table_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_table_stmtContext create_table_stmt() throws RecognitionException { + Create_table_stmtContext _localctx = new Create_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_create_table_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2973); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_table_as_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_table_as_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_table_as_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_table_as_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_table_as_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_table_as_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_table_as_stmtContext create_table_as_stmt() throws RecognitionException { + Create_table_as_stmtContext _localctx = new Create_table_as_stmtContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_create_table_as_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2975); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_tablespace_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_tablespace_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_tablespace_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_tablespace_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_tablespace_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_tablespace_stmtContext create_tablespace_stmt() throws RecognitionException { + Create_tablespace_stmtContext _localctx = new Create_tablespace_stmtContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_create_tablespace_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2977); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_config_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_text_search_config_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_text_search_config_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_text_search_config_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_config_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_config_stmtContext create_text_search_config_stmt() throws RecognitionException { + Create_text_search_config_stmtContext _localctx = new Create_text_search_config_stmtContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_create_text_search_config_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2979); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_dict_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_text_search_dict_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_text_search_dict_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_text_search_dict_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_dict_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_dict_stmtContext create_text_search_dict_stmt() throws RecognitionException { + Create_text_search_dict_stmtContext _localctx = new Create_text_search_dict_stmtContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_create_text_search_dict_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2981); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_parser_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_text_search_parser_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_text_search_parser_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_text_search_parser_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_parser_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_parser_stmtContext create_text_search_parser_stmt() throws RecognitionException { + Create_text_search_parser_stmtContext _localctx = new Create_text_search_parser_stmtContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_create_text_search_parser_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2983); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_template_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_text_search_template_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_text_search_template_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_text_search_template_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_template_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_template_stmtContext create_text_search_template_stmt() throws RecognitionException { + Create_text_search_template_stmtContext _localctx = new Create_text_search_template_stmtContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_create_text_search_template_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2985); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_transform_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_transform_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_transform_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_transform_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_transform_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_transform_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_transform_stmtContext create_transform_stmt() throws RecognitionException { + Create_transform_stmtContext _localctx = new Create_transform_stmtContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_create_transform_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2987); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_trigger_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_trigger_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_trigger_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_trigger_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_trigger_stmtContext create_trigger_stmt() throws RecognitionException { + Create_trigger_stmtContext _localctx = new Create_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_create_trigger_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2989); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_type_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_type_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_type_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_type_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_type_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_type_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_type_stmtContext create_type_stmt() throws RecognitionException { + Create_type_stmtContext _localctx = new Create_type_stmtContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_create_type_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2991); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_user_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_user_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_user_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_user_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_user_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_user_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_user_stmtContext create_user_stmt() throws RecognitionException { + Create_user_stmtContext _localctx = new Create_user_stmtContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_create_user_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2993); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_user_mapping_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Create_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_user_mapping_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_user_mapping_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_user_mapping_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_user_mapping_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_user_mapping_stmtContext create_user_mapping_stmt() throws RecognitionException { + Create_user_mapping_stmtContext _localctx = new Create_user_mapping_stmtContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_create_user_mapping_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2995); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Create_view_stmtContext extends ParserRuleContext { + public Name_Context name; + + public TerminalNode CREATE() { + return getToken(PostgreSQLParser.CREATE, 0); + } + + public TerminalNode VIEW() { + return getToken(PostgreSQLParser.VIEW, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public TerminalNode REPLACE() { + return getToken(PostgreSQLParser.REPLACE, 0); + } + + public TerminalNode RECURSIVE() { + return getToken(PostgreSQLParser.RECURSIVE, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public List WITH() { + return getTokens(PostgreSQLParser.WITH); + } + + public TerminalNode WITH(int i) { + return getToken(PostgreSQLParser.WITH, i); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode CHECK() { + return getToken(PostgreSQLParser.CHECK, 0); + } + + public TerminalNode OPTION() { + return getToken(PostgreSQLParser.OPTION, 0); + } + + public TerminalNode TEMP() { + return getToken(PostgreSQLParser.TEMP, 0); + } + + public TerminalNode TEMPORARY() { + return getToken(PostgreSQLParser.TEMPORARY, 0); + } + + public TerminalNode CASCADED() { + return getToken(PostgreSQLParser.CASCADED, 0); + } + + public TerminalNode LOCAL() { + return getToken(PostgreSQLParser.LOCAL, 0); + } + + public Create_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_create_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCreate_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCreate_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCreate_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_view_stmtContext create_view_stmt() throws RecognitionException { + Create_view_stmtContext _localctx = new Create_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_create_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2997); + match(CREATE); + setState(3000); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OR) { + { + setState(2998); + match(OR); + setState(2999); + match(REPLACE); + } + } + + setState(3003); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TEMP || _la == TEMPORARY) { + { + setState(3002); + _la = _input.LA(1); + if (!(_la == TEMP || _la == TEMPORARY)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3006); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == RECURSIVE) { + { + setState(3005); + match(RECURSIVE); + } + } + + setState(3008); + match(VIEW); + setState(3009); + ((Create_view_stmtContext) _localctx).name = name_(); + setState(3014); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(3010); + match(OPEN_PAREN); + setState(3011); + name_list(); + setState(3012); + match(CLOSE_PAREN); + } + } + + setState(3021); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(3016); + match(WITH); + setState(3017); + match(OPEN_PAREN); + setState(3018); + option_list(); + setState(3019); + match(CLOSE_PAREN); + } + } + + setState(3023); + match(AS); + setState(3026); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 276, _ctx)) { + case 1: { + setState(3024); + select_stmt(); + } + break; + case 2: { + setState(3025); + values_stmt(); + } + break; + } + setState(3034); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(3028); + match(WITH); + setState(3030); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADED || _la == LOCAL) { + { + setState(3029); + _la = _input.LA(1); + if (!(_la == CASCADED || _la == LOCAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3032); + match(CHECK); + setState(3033); + match(OPTION); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Deallocate_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Deallocate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_deallocate_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDeallocate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDeallocate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDeallocate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Deallocate_stmtContext deallocate_stmt() throws RecognitionException { + Deallocate_stmtContext _localctx = new Deallocate_stmtContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_deallocate_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3036); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Declare_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Declare_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_declare_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDeclare_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDeclare_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDeclare_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Declare_stmtContext declare_stmt() throws RecognitionException { + Declare_stmtContext _localctx = new Declare_stmtContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_declare_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3038); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Delete_stmtContext extends ParserRuleContext { + public IdentifierContext cursor_name_; + + public TerminalNode DELETE() { + return getToken(PostgreSQLParser.DELETE, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public AliasContext alias() { + return getRuleContext(AliasContext.class, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class, 0); + } + + public Returning_clauseContext returning_clause() { + return getRuleContext(Returning_clauseContext.class, 0); + } + + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public TerminalNode CURRENT() { + return getToken(PostgreSQLParser.CURRENT, 0); + } + + public TerminalNode OF() { + return getToken(PostgreSQLParser.OF, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Delete_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_delete_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDelete_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDelete_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDelete_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Delete_stmtContext delete_stmt() throws RecognitionException { + Delete_stmtContext _localctx = new Delete_stmtContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_delete_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3041); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(3040); + with_clause(); + } + } + + setState(3043); + match(DELETE); + setState(3044); + match(FROM); + setState(3046); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(3045); + match(ONLY); + } + } + + setState(3048); + table_name_(); + setState(3050); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(3049); + match(STAR); + } + } + + setState(3056); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(3053); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(3052); + match(AS); + } + } + + setState(3055); + alias(); + } + } + + setState(3060); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == USING) { + { + setState(3058); + match(USING); + setState(3059); + identifier_list(); + } + } + + setState(3067); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 285, _ctx)) { + case 1: { + setState(3062); + where_clause(); + } + break; + case 2: { + { + setState(3063); + match(WHERE); + setState(3064); + match(CURRENT); + setState(3065); + match(OF); + setState(3066); + ((Delete_stmtContext) _localctx).cursor_name_ = identifier(0); + } + } + break; + } + setState(3070); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == RETURNING) { + { + setState(3069); + returning_clause(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Discard_stmtContext extends ParserRuleContext { + public TerminalNode DISCARD() { + return getToken(PostgreSQLParser.DISCARD, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode PLANS() { + return getToken(PostgreSQLParser.PLANS, 0); + } + + public TerminalNode SEQUENCES() { + return getToken(PostgreSQLParser.SEQUENCES, 0); + } + + public TerminalNode TEMPORARY() { + return getToken(PostgreSQLParser.TEMPORARY, 0); + } + + public TerminalNode TEMP() { + return getToken(PostgreSQLParser.TEMP, 0); + } + + public Discard_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_discard_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDiscard_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDiscard_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDiscard_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Discard_stmtContext discard_stmt() throws RecognitionException { + Discard_stmtContext _localctx = new Discard_stmtContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_discard_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3072); + match(DISCARD); + setState(3073); + _la = _input.LA(1); + if (!(_la == ALL || _la == PLANS || ((((_la - 514)) & ~0x3f) == 0 && ((1L << (_la - 514)) & ((1L << (SEQUENCES - 514)) | (1L << (TEMP - 514)) | (1L << (TEMPORARY - 514)))) != 0))) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_stmtContext extends ParserRuleContext { + public Drop_access_method_stmtContext drop_access_method_stmt() { + return getRuleContext(Drop_access_method_stmtContext.class, 0); + } + + public Drop_aggregate_stmtContext drop_aggregate_stmt() { + return getRuleContext(Drop_aggregate_stmtContext.class, 0); + } + + public Drop_cast_stmtContext drop_cast_stmt() { + return getRuleContext(Drop_cast_stmtContext.class, 0); + } + + public Drop_collation_stmtContext drop_collation_stmt() { + return getRuleContext(Drop_collation_stmtContext.class, 0); + } + + public Drop_conversion_stmtContext drop_conversion_stmt() { + return getRuleContext(Drop_conversion_stmtContext.class, 0); + } + + public Drop_database_stmtContext drop_database_stmt() { + return getRuleContext(Drop_database_stmtContext.class, 0); + } + + public Drop_domain_stmtContext drop_domain_stmt() { + return getRuleContext(Drop_domain_stmtContext.class, 0); + } + + public Drop_event_trigger_stmtContext drop_event_trigger_stmt() { + return getRuleContext(Drop_event_trigger_stmtContext.class, 0); + } + + public Drop_extension_stmtContext drop_extension_stmt() { + return getRuleContext(Drop_extension_stmtContext.class, 0); + } + + public Drop_foreign_data_wrapper_stmtContext drop_foreign_data_wrapper_stmt() { + return getRuleContext(Drop_foreign_data_wrapper_stmtContext.class, 0); + } + + public Drop_foreign_table_stmtContext drop_foreign_table_stmt() { + return getRuleContext(Drop_foreign_table_stmtContext.class, 0); + } + + public Drop_function_stmtContext drop_function_stmt() { + return getRuleContext(Drop_function_stmtContext.class, 0); + } + + public Drop_group_stmtContext drop_group_stmt() { + return getRuleContext(Drop_group_stmtContext.class, 0); + } + + public Drop_index_stmtContext drop_index_stmt() { + return getRuleContext(Drop_index_stmtContext.class, 0); + } + + public Drop_language_stmtContext drop_language_stmt() { + return getRuleContext(Drop_language_stmtContext.class, 0); + } + + public Drop_materialized_view_stmtContext drop_materialized_view_stmt() { + return getRuleContext(Drop_materialized_view_stmtContext.class, 0); + } + + public Drop_operator_stmtContext drop_operator_stmt() { + return getRuleContext(Drop_operator_stmtContext.class, 0); + } + + public Drop_operator_class_stmtContext drop_operator_class_stmt() { + return getRuleContext(Drop_operator_class_stmtContext.class, 0); + } + + public Drop_operator_family_stmtContext drop_operator_family_stmt() { + return getRuleContext(Drop_operator_family_stmtContext.class, 0); + } + + public Drop_owned_stmtContext drop_owned_stmt() { + return getRuleContext(Drop_owned_stmtContext.class, 0); + } + + public Drop_policy_stmtContext drop_policy_stmt() { + return getRuleContext(Drop_policy_stmtContext.class, 0); + } + + public Drop_publication_stmtContext drop_publication_stmt() { + return getRuleContext(Drop_publication_stmtContext.class, 0); + } + + public Drop_role_stmtContext drop_role_stmt() { + return getRuleContext(Drop_role_stmtContext.class, 0); + } + + public Drop_rule_stmtContext drop_rule_stmt() { + return getRuleContext(Drop_rule_stmtContext.class, 0); + } + + public Drop_schema_stmtContext drop_schema_stmt() { + return getRuleContext(Drop_schema_stmtContext.class, 0); + } + + public Drop_sequence_stmtContext drop_sequence_stmt() { + return getRuleContext(Drop_sequence_stmtContext.class, 0); + } + + public Drop_server_stmtContext drop_server_stmt() { + return getRuleContext(Drop_server_stmtContext.class, 0); + } + + public Drop_statistics_stmtContext drop_statistics_stmt() { + return getRuleContext(Drop_statistics_stmtContext.class, 0); + } + + public Drop_subscription_stmtContext drop_subscription_stmt() { + return getRuleContext(Drop_subscription_stmtContext.class, 0); + } + + public Drop_table_stmtContext drop_table_stmt() { + return getRuleContext(Drop_table_stmtContext.class, 0); + } + + public Drop_tablespace_stmtContext drop_tablespace_stmt() { + return getRuleContext(Drop_tablespace_stmtContext.class, 0); + } + + public Drop_text_search_config_stmtContext drop_text_search_config_stmt() { + return getRuleContext(Drop_text_search_config_stmtContext.class, 0); + } + + public Drop_text_search_dict_stmtContext drop_text_search_dict_stmt() { + return getRuleContext(Drop_text_search_dict_stmtContext.class, 0); + } + + public Drop_text_search_parser_stmtContext drop_text_search_parser_stmt() { + return getRuleContext(Drop_text_search_parser_stmtContext.class, 0); + } + + public Drop_text_search_template_stmtContext drop_text_search_template_stmt() { + return getRuleContext(Drop_text_search_template_stmtContext.class, 0); + } + + public Drop_transform_stmtContext drop_transform_stmt() { + return getRuleContext(Drop_transform_stmtContext.class, 0); + } + + public Drop_trigger_stmtContext drop_trigger_stmt() { + return getRuleContext(Drop_trigger_stmtContext.class, 0); + } + + public Drop_type_stmtContext drop_type_stmt() { + return getRuleContext(Drop_type_stmtContext.class, 0); + } + + public Drop_user_stmtContext drop_user_stmt() { + return getRuleContext(Drop_user_stmtContext.class, 0); + } + + public Drop_user_mapping_stmtContext drop_user_mapping_stmt() { + return getRuleContext(Drop_user_mapping_stmtContext.class, 0); + } + + public Drop_view_stmtContext drop_view_stmt() { + return getRuleContext(Drop_view_stmtContext.class, 0); + } + + public Drop_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitDrop_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_stmtContext drop_stmt() throws RecognitionException { + Drop_stmtContext _localctx = new Drop_stmtContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_drop_stmt); + try { + setState(3116); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 287, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3075); + drop_access_method_stmt(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3076); + drop_aggregate_stmt(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3077); + drop_cast_stmt(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3078); + drop_collation_stmt(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(3079); + drop_conversion_stmt(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(3080); + drop_database_stmt(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(3081); + drop_domain_stmt(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(3082); + drop_event_trigger_stmt(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(3083); + drop_extension_stmt(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(3084); + drop_foreign_data_wrapper_stmt(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(3085); + drop_foreign_table_stmt(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(3086); + drop_function_stmt(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(3087); + drop_group_stmt(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(3088); + drop_index_stmt(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(3089); + drop_language_stmt(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(3090); + drop_materialized_view_stmt(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(3091); + drop_operator_stmt(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(3092); + drop_operator_class_stmt(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(3093); + drop_operator_family_stmt(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(3094); + drop_owned_stmt(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(3095); + drop_policy_stmt(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(3096); + drop_publication_stmt(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(3097); + drop_role_stmt(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(3098); + drop_rule_stmt(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(3099); + drop_schema_stmt(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(3100); + drop_sequence_stmt(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(3101); + drop_server_stmt(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(3102); + drop_statistics_stmt(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(3103); + drop_subscription_stmt(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(3104); + drop_table_stmt(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(3105); + drop_tablespace_stmt(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(3106); + drop_text_search_config_stmt(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(3107); + drop_text_search_dict_stmt(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(3108); + drop_text_search_parser_stmt(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(3109); + drop_text_search_template_stmt(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(3110); + drop_transform_stmt(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(3111); + drop_trigger_stmt(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(3112); + drop_type_stmt(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(3113); + drop_user_stmt(); + } + break; + case 40: + enterOuterAlt(_localctx, 40); + { + setState(3114); + drop_user_mapping_stmt(); + } + break; + case 41: + enterOuterAlt(_localctx, 41); + { + setState(3115); + drop_view_stmt(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_access_method_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode ACCESS() { + return getToken(PostgreSQLParser.ACCESS, 0); + } + + public TerminalNode METHOD() { + return getToken(PostgreSQLParser.METHOD, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_access_method_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_access_method_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_access_method_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_access_method_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_access_method_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_access_method_stmtContext drop_access_method_stmt() throws RecognitionException { + Drop_access_method_stmtContext _localctx = new Drop_access_method_stmtContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_drop_access_method_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3118); + match(DROP); + setState(3119); + match(ACCESS); + setState(3120); + match(METHOD); + setState(3123); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3121); + match(IF); + setState(3122); + match(EXISTS); + } + } + + setState(3125); + ((Drop_access_method_stmtContext) _localctx).name = identifier(0); + setState(3127); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3126); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_aggregate_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode AGGREGATE() { + return getToken(PostgreSQLParser.AGGREGATE, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Aggregate_signatureContext aggregate_signature() { + return getRuleContext(Aggregate_signatureContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_aggregate_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_aggregate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_aggregate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_aggregate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_aggregate_stmtContext drop_aggregate_stmt() throws RecognitionException { + Drop_aggregate_stmtContext _localctx = new Drop_aggregate_stmtContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_drop_aggregate_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3129); + match(DROP); + setState(3130); + match(AGGREGATE); + setState(3133); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3131); + match(IF); + setState(3132); + match(EXISTS); + } + } + + setState(3135); + ((Drop_aggregate_stmtContext) _localctx).name = identifier(0); + setState(3136); + match(OPEN_PAREN); + setState(3137); + aggregate_signature(); + setState(3138); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_cast_stmtContext extends ParserRuleContext { + public Data_typeContext source_type; + public IdentifierContext target_type; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode CAST() { + return getToken(PostgreSQLParser.CAST, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_cast_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_cast_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_cast_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_cast_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_cast_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_cast_stmtContext drop_cast_stmt() throws RecognitionException { + Drop_cast_stmtContext _localctx = new Drop_cast_stmtContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_drop_cast_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3140); + match(DROP); + setState(3141); + match(CAST); + setState(3144); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3142); + match(IF); + setState(3143); + match(EXISTS); + } + } + + setState(3146); + match(OPEN_PAREN); + setState(3147); + ((Drop_cast_stmtContext) _localctx).source_type = data_type(); + setState(3148); + match(AS); + setState(3149); + ((Drop_cast_stmtContext) _localctx).target_type = identifier(0); + setState(3150); + match(CLOSE_PAREN); + setState(3152); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3151); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_collation_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode COLLATION() { + return getToken(PostgreSQLParser.COLLATION, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_collation_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_collation_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_collation_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_collation_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_collation_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_collation_stmtContext drop_collation_stmt() throws RecognitionException { + Drop_collation_stmtContext _localctx = new Drop_collation_stmtContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_drop_collation_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3154); + match(DROP); + setState(3155); + match(COLLATION); + setState(3158); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3156); + match(IF); + setState(3157); + match(EXISTS); + } + } + + setState(3160); + ((Drop_collation_stmtContext) _localctx).names = identifier_list(); + setState(3162); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3161); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_conversion_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode CONVERSION() { + return getToken(PostgreSQLParser.CONVERSION, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_conversion_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_conversion_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_conversion_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_conversion_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_conversion_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_conversion_stmtContext drop_conversion_stmt() throws RecognitionException { + Drop_conversion_stmtContext _localctx = new Drop_conversion_stmtContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_drop_conversion_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3164); + match(DROP); + setState(3165); + match(CONVERSION); + setState(3168); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3166); + match(IF); + setState(3167); + match(EXISTS); + } + } + + setState(3170); + ((Drop_conversion_stmtContext) _localctx).name = identifier(0); + setState(3172); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3171); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_database_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode DATABASE() { + return getToken(PostgreSQLParser.DATABASE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_database_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_database_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_database_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_database_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_database_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_database_stmtContext drop_database_stmt() throws RecognitionException { + Drop_database_stmtContext _localctx = new Drop_database_stmtContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_drop_database_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3174); + match(DROP); + setState(3175); + match(DATABASE); + setState(3178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3176); + match(IF); + setState(3177); + match(EXISTS); + } + } + + setState(3180); + ((Drop_database_stmtContext) _localctx).name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_domain_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode DOMAIN() { + return getToken(PostgreSQLParser.DOMAIN, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_domain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_domain_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_domain_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_domain_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_domain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_domain_stmtContext drop_domain_stmt() throws RecognitionException { + Drop_domain_stmtContext _localctx = new Drop_domain_stmtContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_drop_domain_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3182); + match(DROP); + setState(3183); + match(DOMAIN); + setState(3186); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3184); + match(IF); + setState(3185); + match(EXISTS); + } + } + + setState(3188); + ((Drop_domain_stmtContext) _localctx).names = identifier_list(); + setState(3190); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3189); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_event_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode EVENT() { + return getToken(PostgreSQLParser.EVENT, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_event_trigger_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_event_trigger_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_event_trigger_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_event_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_event_trigger_stmtContext drop_event_trigger_stmt() throws RecognitionException { + Drop_event_trigger_stmtContext _localctx = new Drop_event_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_drop_event_trigger_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3192); + match(DROP); + setState(3193); + match(EVENT); + setState(3194); + match(TRIGGER); + setState(3197); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3195); + match(IF); + setState(3196); + match(EXISTS); + } + } + + setState(3199); + ((Drop_event_trigger_stmtContext) _localctx).name = identifier(0); + setState(3201); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3200); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_extension_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode EXTENSION() { + return getToken(PostgreSQLParser.EXTENSION, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_extension_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_extension_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_extension_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_extension_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_extension_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_extension_stmtContext drop_extension_stmt() throws RecognitionException { + Drop_extension_stmtContext _localctx = new Drop_extension_stmtContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_drop_extension_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3203); + match(DROP); + setState(3204); + match(EXTENSION); + setState(3207); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3205); + match(IF); + setState(3206); + match(EXISTS); + } + } + + setState(3209); + ((Drop_extension_stmtContext) _localctx).names = identifier_list(); + setState(3211); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3210); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_foreign_data_wrapper_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode DATA() { + return getToken(PostgreSQLParser.DATA, 0); + } + + public TerminalNode WRAPPER() { + return getToken(PostgreSQLParser.WRAPPER, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_foreign_data_wrapper_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_foreign_data_wrapper_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_foreign_data_wrapper_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_foreign_data_wrapper_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_foreign_data_wrapper_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_foreign_data_wrapper_stmtContext drop_foreign_data_wrapper_stmt() throws RecognitionException { + Drop_foreign_data_wrapper_stmtContext _localctx = new Drop_foreign_data_wrapper_stmtContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_drop_foreign_data_wrapper_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3213); + match(DROP); + setState(3214); + match(FOREIGN); + setState(3215); + match(DATA); + setState(3216); + match(WRAPPER); + setState(3219); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3217); + match(IF); + setState(3218); + match(EXISTS); + } + } + + setState(3221); + ((Drop_foreign_data_wrapper_stmtContext) _localctx).names = identifier_list(); + setState(3223); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3222); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_foreign_table_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_foreign_table_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_foreign_table_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_foreign_table_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_foreign_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_foreign_table_stmtContext drop_foreign_table_stmt() throws RecognitionException { + Drop_foreign_table_stmtContext _localctx = new Drop_foreign_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_drop_foreign_table_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3225); + match(DROP); + setState(3226); + match(FOREIGN); + setState(3227); + match(TABLE); + setState(3230); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3228); + match(IF); + setState(3229); + match(EXISTS); + } + } + + setState(3232); + ((Drop_foreign_table_stmtContext) _localctx).names = identifier_list(); + setState(3234); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3233); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_function_stmtContext extends ParserRuleContext { + public Func_sig_listContext functions; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode FUNCTION() { + return getToken(PostgreSQLParser.FUNCTION, 0); + } + + public Func_sig_listContext func_sig_list() { + return getRuleContext(Func_sig_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_function_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_function_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_function_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_function_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_function_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_function_stmtContext drop_function_stmt() throws RecognitionException { + Drop_function_stmtContext _localctx = new Drop_function_stmtContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_drop_function_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3236); + match(DROP); + setState(3237); + match(FUNCTION); + setState(3240); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3238); + match(IF); + setState(3239); + match(EXISTS); + } + } + + setState(3242); + ((Drop_function_stmtContext) _localctx).functions = func_sig_list(); + setState(3244); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3243); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_group_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode GROUP() { + return getToken(PostgreSQLParser.GROUP, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_group_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_group_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_group_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_group_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_group_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_group_stmtContext drop_group_stmt() throws RecognitionException { + Drop_group_stmtContext _localctx = new Drop_group_stmtContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_drop_group_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3246); + match(DROP); + setState(3247); + match(GROUP); + setState(3250); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3248); + match(IF); + setState(3249); + match(EXISTS); + } + } + + setState(3252); + ((Drop_group_stmtContext) _localctx).names = identifier_list(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_index_stmtContext extends ParserRuleContext { + public Name_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public TerminalNode CONCURRENTLY() { + return getToken(PostgreSQLParser.CONCURRENTLY, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_index_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_index_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_index_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_index_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_index_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_index_stmtContext drop_index_stmt() throws RecognitionException { + Drop_index_stmtContext _localctx = new Drop_index_stmtContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_drop_index_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3254); + match(DROP); + setState(3255); + match(INDEX); + setState(3257); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CONCURRENTLY) { + { + setState(3256); + match(CONCURRENTLY); + } + } + + setState(3261); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3259); + match(IF); + setState(3260); + match(EXISTS); + } + } + + setState(3263); + ((Drop_index_stmtContext) _localctx).names = name_list(); + setState(3265); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3264); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_language_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode LANGUAGE() { + return getToken(PostgreSQLParser.LANGUAGE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode PROCEDURAL() { + return getToken(PostgreSQLParser.PROCEDURAL, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_language_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_language_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_language_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_language_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_language_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_language_stmtContext drop_language_stmt() throws RecognitionException { + Drop_language_stmtContext _localctx = new Drop_language_stmtContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_drop_language_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3267); + match(DROP); + setState(3269); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == PROCEDURAL) { + { + setState(3268); + match(PROCEDURAL); + } + } + + setState(3271); + match(LANGUAGE); + setState(3274); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3272); + match(IF); + setState(3273); + match(EXISTS); + } + } + + setState(3276); + ((Drop_language_stmtContext) _localctx).name = identifier(0); + setState(3278); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3277); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_materialized_view_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode MATERIALIZED() { + return getToken(PostgreSQLParser.MATERIALIZED, 0); + } + + public TerminalNode VIEW() { + return getToken(PostgreSQLParser.VIEW, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_materialized_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_materialized_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_materialized_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_materialized_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_materialized_view_stmtContext drop_materialized_view_stmt() throws RecognitionException { + Drop_materialized_view_stmtContext _localctx = new Drop_materialized_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_drop_materialized_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3280); + match(DROP); + setState(3281); + match(MATERIALIZED); + setState(3282); + match(VIEW); + setState(3285); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3283); + match(IF); + setState(3284); + match(EXISTS); + } + } + + setState(3287); + ((Drop_materialized_view_stmtContext) _localctx).names = identifier_list(); + setState(3289); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3288); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_operator_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Drop_operator_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_operator_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_operator_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_operator_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_operator_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_operator_stmtContext drop_operator_stmt() throws RecognitionException { + Drop_operator_stmtContext _localctx = new Drop_operator_stmtContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_drop_operator_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3291); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_operator_class_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode CLASS() { + return getToken(PostgreSQLParser.CLASS, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_operator_class_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_operator_class_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_operator_class_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_operator_class_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_operator_class_stmtContext drop_operator_class_stmt() throws RecognitionException { + Drop_operator_class_stmtContext _localctx = new Drop_operator_class_stmtContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_drop_operator_class_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3293); + match(DROP); + setState(3294); + match(OPERATOR); + setState(3295); + match(CLASS); + setState(3298); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3296); + match(IF); + setState(3297); + match(EXISTS); + } + } + + setState(3300); + ((Drop_operator_class_stmtContext) _localctx).name = identifier(0); + setState(3301); + match(USING); + setState(3302); + index_method(); + setState(3304); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3303); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_operator_family_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode FAMILY() { + return getToken(PostgreSQLParser.FAMILY, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_operator_family_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_operator_family_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_operator_family_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_operator_family_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_operator_family_stmtContext drop_operator_family_stmt() throws RecognitionException { + Drop_operator_family_stmtContext _localctx = new Drop_operator_family_stmtContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_drop_operator_family_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3306); + match(DROP); + setState(3307); + match(OPERATOR); + setState(3308); + match(FAMILY); + setState(3311); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3309); + match(IF); + setState(3310); + match(EXISTS); + } + } + + setState(3313); + ((Drop_operator_family_stmtContext) _localctx).name = identifier(0); + setState(3314); + match(USING); + setState(3315); + index_method(); + setState(3317); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3316); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_owned_stmtContext extends ParserRuleContext { + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode OWNED() { + return getToken(PostgreSQLParser.OWNED, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public Role_name_listContext role_name_list() { + return getRuleContext(Role_name_listContext.class, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_owned_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_owned_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_owned_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_owned_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_owned_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_owned_stmtContext drop_owned_stmt() throws RecognitionException { + Drop_owned_stmtContext _localctx = new Drop_owned_stmtContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_drop_owned_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3319); + match(DROP); + setState(3320); + match(OWNED); + setState(3321); + match(BY); + setState(3322); + role_name_list(); + setState(3324); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3323); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_policy_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode POLICY() { + return getToken(PostgreSQLParser.POLICY, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_policy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_policy_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_policy_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_policy_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_policy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_policy_stmtContext drop_policy_stmt() throws RecognitionException { + Drop_policy_stmtContext _localctx = new Drop_policy_stmtContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_drop_policy_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3326); + match(DROP); + setState(3327); + match(POLICY); + setState(3330); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3328); + match(IF); + setState(3329); + match(EXISTS); + } + } + + setState(3332); + ((Drop_policy_stmtContext) _localctx).name = identifier(0); + setState(3333); + match(ON); + setState(3334); + ((Drop_policy_stmtContext) _localctx).table_name = identifier(0); + setState(3336); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3335); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_publication_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode PUBLICATION() { + return getToken(PostgreSQLParser.PUBLICATION, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_publication_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_publication_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_publication_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_publication_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_publication_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_publication_stmtContext drop_publication_stmt() throws RecognitionException { + Drop_publication_stmtContext _localctx = new Drop_publication_stmtContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_drop_publication_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3338); + match(DROP); + setState(3339); + match(PUBLICATION); + setState(3342); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3340); + match(IF); + setState(3341); + match(EXISTS); + } + } + + setState(3344); + ((Drop_publication_stmtContext) _localctx).names = identifier_list(); + setState(3346); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3345); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_role_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode ROLE() { + return getToken(PostgreSQLParser.ROLE, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_role_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_role_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_role_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_role_stmtContext drop_role_stmt() throws RecognitionException { + Drop_role_stmtContext _localctx = new Drop_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_drop_role_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3348); + match(DROP); + setState(3349); + match(ROLE); + setState(3352); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3350); + match(IF); + setState(3351); + match(EXISTS); + } + } + + setState(3354); + ((Drop_role_stmtContext) _localctx).names = identifier_list(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_rule_stmtContext extends ParserRuleContext { + public Name_Context name; + public IdentifierContext table_name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode RULE() { + return getToken(PostgreSQLParser.RULE, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_rule_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_rule_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_rule_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_rule_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_rule_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_rule_stmtContext drop_rule_stmt() throws RecognitionException { + Drop_rule_stmtContext _localctx = new Drop_rule_stmtContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_drop_rule_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3356); + match(DROP); + setState(3357); + match(RULE); + setState(3360); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3358); + match(IF); + setState(3359); + match(EXISTS); + } + } + + setState(3362); + ((Drop_rule_stmtContext) _localctx).name = name_(); + setState(3363); + match(ON); + setState(3364); + ((Drop_rule_stmtContext) _localctx).table_name = identifier(0); + setState(3366); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3365); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_schema_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_schema_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_schema_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_schema_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_schema_stmtContext drop_schema_stmt() throws RecognitionException { + Drop_schema_stmtContext _localctx = new Drop_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_drop_schema_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3368); + match(DROP); + setState(3369); + match(SCHEMA); + setState(3372); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3370); + match(IF); + setState(3371); + match(EXISTS); + } + } + + setState(3374); + ((Drop_schema_stmtContext) _localctx).names = identifier_list(); + setState(3376); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3375); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_sequence_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode SEQUENCE() { + return getToken(PostgreSQLParser.SEQUENCE, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_sequence_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_sequence_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_sequence_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_sequence_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_sequence_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_sequence_stmtContext drop_sequence_stmt() throws RecognitionException { + Drop_sequence_stmtContext _localctx = new Drop_sequence_stmtContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_drop_sequence_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3378); + match(DROP); + setState(3379); + match(SEQUENCE); + setState(3382); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3380); + match(IF); + setState(3381); + match(EXISTS); + } + } + + setState(3384); + ((Drop_sequence_stmtContext) _localctx).names = identifier_list(); + setState(3386); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3385); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_server_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode SERVER() { + return getToken(PostgreSQLParser.SERVER, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_server_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_server_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_server_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_server_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_server_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_server_stmtContext drop_server_stmt() throws RecognitionException { + Drop_server_stmtContext _localctx = new Drop_server_stmtContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_drop_server_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3388); + match(DROP); + setState(3389); + match(SERVER); + setState(3392); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3390); + match(IF); + setState(3391); + match(EXISTS); + } + } + + setState(3394); + ((Drop_server_stmtContext) _localctx).names = identifier_list(); + setState(3396); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3395); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_statistics_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode STATISTICS() { + return getToken(PostgreSQLParser.STATISTICS, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_statistics_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_statistics_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_statistics_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_statistics_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_statistics_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_statistics_stmtContext drop_statistics_stmt() throws RecognitionException { + Drop_statistics_stmtContext _localctx = new Drop_statistics_stmtContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_drop_statistics_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3398); + match(DROP); + setState(3399); + match(STATISTICS); + setState(3402); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3400); + match(IF); + setState(3401); + match(EXISTS); + } + } + + setState(3404); + ((Drop_statistics_stmtContext) _localctx).names = identifier_list(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_subscription_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode SUBSCRIPTION() { + return getToken(PostgreSQLParser.SUBSCRIPTION, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_subscription_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_subscription_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_subscription_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_subscription_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_subscription_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_subscription_stmtContext drop_subscription_stmt() throws RecognitionException { + Drop_subscription_stmtContext _localctx = new Drop_subscription_stmtContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_drop_subscription_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3406); + match(DROP); + setState(3407); + match(SUBSCRIPTION); + setState(3410); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3408); + match(IF); + setState(3409); + match(EXISTS); + } + } + + setState(3412); + ((Drop_subscription_stmtContext) _localctx).name = identifier(0); + setState(3414); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3413); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_table_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_table_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_table_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_table_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_table_stmtContext drop_table_stmt() throws RecognitionException { + Drop_table_stmtContext _localctx = new Drop_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_drop_table_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3416); + match(DROP); + setState(3417); + match(TABLE); + setState(3420); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3418); + match(IF); + setState(3419); + match(EXISTS); + } + } + + setState(3422); + ((Drop_table_stmtContext) _localctx).names = identifier_list(); + setState(3424); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3423); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_tablespace_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_tablespace_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_tablespace_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_tablespace_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_tablespace_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_tablespace_stmtContext drop_tablespace_stmt() throws RecognitionException { + Drop_tablespace_stmtContext _localctx = new Drop_tablespace_stmtContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_drop_tablespace_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3426); + match(DROP); + setState(3427); + match(TABLESPACE); + setState(3430); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3428); + match(IF); + setState(3429); + match(EXISTS); + } + } + + setState(3432); + ((Drop_tablespace_stmtContext) _localctx).name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_config_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode CONFIGURATION() { + return getToken(PostgreSQLParser.CONFIGURATION, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_text_search_config_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_text_search_config_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_text_search_config_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_config_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_config_stmtContext drop_text_search_config_stmt() throws RecognitionException { + Drop_text_search_config_stmtContext _localctx = new Drop_text_search_config_stmtContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_drop_text_search_config_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3434); + match(DROP); + setState(3435); + match(TEXT); + setState(3436); + match(SEARCH); + setState(3437); + match(CONFIGURATION); + setState(3440); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3438); + match(IF); + setState(3439); + match(EXISTS); + } + } + + setState(3442); + ((Drop_text_search_config_stmtContext) _localctx).name = identifier(0); + setState(3444); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3443); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_dict_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode DICTIONARY() { + return getToken(PostgreSQLParser.DICTIONARY, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_text_search_dict_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_text_search_dict_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_text_search_dict_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_dict_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_dict_stmtContext drop_text_search_dict_stmt() throws RecognitionException { + Drop_text_search_dict_stmtContext _localctx = new Drop_text_search_dict_stmtContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_drop_text_search_dict_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3446); + match(DROP); + setState(3447); + match(TEXT); + setState(3448); + match(SEARCH); + setState(3449); + match(DICTIONARY); + setState(3452); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3450); + match(IF); + setState(3451); + match(EXISTS); + } + } + + setState(3454); + ((Drop_text_search_dict_stmtContext) _localctx).name = identifier(0); + setState(3456); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3455); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_parser_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode PARSER() { + return getToken(PostgreSQLParser.PARSER, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_text_search_parser_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_text_search_parser_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_text_search_parser_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_parser_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_parser_stmtContext drop_text_search_parser_stmt() throws RecognitionException { + Drop_text_search_parser_stmtContext _localctx = new Drop_text_search_parser_stmtContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_drop_text_search_parser_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3458); + match(DROP); + setState(3459); + match(TEXT); + setState(3460); + match(SEARCH); + setState(3461); + match(PARSER); + setState(3464); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3462); + match(IF); + setState(3463); + match(EXISTS); + } + } + + setState(3466); + ((Drop_text_search_parser_stmtContext) _localctx).name = identifier(0); + setState(3468); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3467); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_template_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode TEMPLATE() { + return getToken(PostgreSQLParser.TEMPLATE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_text_search_template_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_text_search_template_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_text_search_template_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_template_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_template_stmtContext drop_text_search_template_stmt() throws RecognitionException { + Drop_text_search_template_stmtContext _localctx = new Drop_text_search_template_stmtContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_drop_text_search_template_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3470); + match(DROP); + setState(3471); + match(TEXT); + setState(3472); + match(SEARCH); + setState(3473); + match(TEMPLATE); + setState(3476); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3474); + match(IF); + setState(3475); + match(EXISTS); + } + } + + setState(3478); + ((Drop_text_search_template_stmtContext) _localctx).name = identifier(0); + setState(3480); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3479); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_transform_stmtContext extends ParserRuleContext { + public IdentifierContext type_name_; + public IdentifierContext lang_name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TRANSFORM() { + return getToken(PostgreSQLParser.TRANSFORM, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode LANGUAGE() { + return getToken(PostgreSQLParser.LANGUAGE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_transform_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_transform_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_transform_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_transform_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_transform_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_transform_stmtContext drop_transform_stmt() throws RecognitionException { + Drop_transform_stmtContext _localctx = new Drop_transform_stmtContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_drop_transform_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3482); + match(DROP); + setState(3483); + match(TRANSFORM); + setState(3486); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3484); + match(IF); + setState(3485); + match(EXISTS); + } + } + + setState(3488); + match(FOR); + setState(3489); + ((Drop_transform_stmtContext) _localctx).type_name_ = identifier(0); + setState(3490); + match(LANGUAGE); + setState(3491); + ((Drop_transform_stmtContext) _localctx).lang_name = identifier(0); + setState(3492); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_trigger_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_trigger_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_trigger_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_trigger_stmtContext drop_trigger_stmt() throws RecognitionException { + Drop_trigger_stmtContext _localctx = new Drop_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_drop_trigger_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3494); + match(DROP); + setState(3495); + match(TRIGGER); + setState(3498); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3496); + match(IF); + setState(3497); + match(EXISTS); + } + } + + setState(3500); + ((Drop_trigger_stmtContext) _localctx).name = identifier(0); + setState(3501); + match(ON); + setState(3502); + ((Drop_trigger_stmtContext) _localctx).table_name = identifier(0); + setState(3504); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3503); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_type_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode TYPE() { + return getToken(PostgreSQLParser.TYPE, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_type_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_type_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_type_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_type_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_type_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_type_stmtContext drop_type_stmt() throws RecognitionException { + Drop_type_stmtContext _localctx = new Drop_type_stmtContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_drop_type_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3506); + match(DROP); + setState(3507); + match(TYPE); + setState(3510); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3508); + match(IF); + setState(3509); + match(EXISTS); + } + } + + setState(3512); + ((Drop_type_stmtContext) _localctx).names = identifier_list(); + setState(3514); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3513); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_user_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode USER() { + return getToken(PostgreSQLParser.USER, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Drop_user_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_user_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_user_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_user_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_user_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_user_stmtContext drop_user_stmt() throws RecognitionException { + Drop_user_stmtContext _localctx = new Drop_user_stmtContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_drop_user_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3516); + match(DROP); + setState(3517); + match(USER); + setState(3520); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3518); + match(IF); + setState(3519); + match(EXISTS); + } + } + + setState(3522); + ((Drop_user_stmtContext) _localctx).names = identifier_list(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_user_mapping_stmtContext extends ParserRuleContext { + public Name_Context user_name; + public IdentifierContext server_name; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public List USER() { + return getTokens(PostgreSQLParser.USER); + } + + public TerminalNode USER(int i) { + return getToken(PostgreSQLParser.USER, i); + } + + public TerminalNode MAPPING() { + return getToken(PostgreSQLParser.MAPPING, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode SERVER() { + return getToken(PostgreSQLParser.SERVER, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public TerminalNode PUBLIC() { + return getToken(PostgreSQLParser.PUBLIC, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Drop_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_user_mapping_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_user_mapping_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_user_mapping_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_user_mapping_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_user_mapping_stmtContext drop_user_mapping_stmt() throws RecognitionException { + Drop_user_mapping_stmtContext _localctx = new Drop_user_mapping_stmtContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_drop_user_mapping_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3524); + match(DROP); + setState(3525); + match(USER); + setState(3526); + match(MAPPING); + setState(3529); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3527); + match(IF); + setState(3528); + match(EXISTS); + } + } + + setState(3531); + match(FOR); + setState(3537); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 358, _ctx)) { + case 1: { + setState(3532); + ((Drop_user_mapping_stmtContext) _localctx).user_name = name_(); + } + break; + case 2: { + setState(3533); + match(USER); + } + break; + case 3: { + setState(3534); + match(CURRENT_USER); + } + break; + case 4: { + setState(3535); + match(SESSION_USER); + } + break; + case 5: { + setState(3536); + match(PUBLIC); + } + break; + } + setState(3539); + match(SERVER); + setState(3540); + ((Drop_user_mapping_stmtContext) _localctx).server_name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_view_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + + public TerminalNode DROP() { + return getToken(PostgreSQLParser.DROP, 0); + } + + public TerminalNode VIEW() { + return getToken(PostgreSQLParser.VIEW, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IF() { + return getToken(PostgreSQLParser.IF, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Drop_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_drop_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterDrop_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitDrop_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitDrop_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_view_stmtContext drop_view_stmt() throws RecognitionException { + Drop_view_stmtContext _localctx = new Drop_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_drop_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3542); + match(DROP); + setState(3543); + match(VIEW); + setState(3546); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IF) { + { + setState(3544); + match(IF); + setState(3545); + match(EXISTS); + } + } + + setState(3548); + ((Drop_view_stmtContext) _localctx).names = identifier_list(); + setState(3550); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(3549); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Execute_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode EXECUTE() { + return getToken(PostgreSQLParser.EXECUTE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class, 0); + } + + public Execute_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_execute_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterExecute_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitExecute_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExecute_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Execute_stmtContext execute_stmt() throws RecognitionException { + Execute_stmtContext _localctx = new Execute_stmtContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_execute_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3552); + match(EXECUTE); + setState(3553); + ((Execute_stmtContext) _localctx).name = identifier(0); + setState(3555); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(3554); + expr_list(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Explain_stmtContext extends ParserRuleContext { + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class, 0); + } + + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class, 0); + } + + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public Execute_stmtContext execute_stmt() { + return getRuleContext(Execute_stmtContext.class, 0); + } + + public Declare_stmtContext declare_stmt() { + return getRuleContext(Declare_stmtContext.class, 0); + } + + public Create_table_as_stmtContext create_table_as_stmt() { + return getRuleContext(Create_table_as_stmtContext.class, 0); + } + + public Create_materialized_view_stmtContext create_materialized_view_stmt() { + return getRuleContext(Create_materialized_view_stmtContext.class, 0); + } + + public TerminalNode EXPLAIN() { + return getToken(PostgreSQLParser.EXPLAIN, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List explain_parameter() { + return getRuleContexts(Explain_parameterContext.class); + } + + public Explain_parameterContext explain_parameter(int i) { + return getRuleContext(Explain_parameterContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode ANALYZE() { + return getToken(PostgreSQLParser.ANALYZE, 0); + } + + public TerminalNode VERBOSE() { + return getToken(PostgreSQLParser.VERBOSE, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Explain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_explain_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterExplain_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitExplain_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExplain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Explain_stmtContext explain_stmt() throws RecognitionException { + Explain_stmtContext _localctx = new Explain_stmtContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_explain_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3576); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 365, _ctx)) { + case 1: { + { + setState(3557); + match(EXPLAIN); + setState(3559); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ANALYZE) { + { + setState(3558); + match(ANALYZE); + } + } + + setState(3562); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == VERBOSE) { + { + setState(3561); + match(VERBOSE); + } + } + + } + } + break; + case 2: { + { + setState(3564); + match(EXPLAIN); + setState(3565); + match(OPEN_PAREN); + setState(3566); + explain_parameter(); + setState(3571); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(3567); + match(COMMA); + setState(3568); + explain_parameter(); + } + } + setState(3573); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(3574); + match(CLOSE_PAREN); + } + } + break; + } + setState(3587); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 366, _ctx)) { + case 1: { + setState(3578); + select_stmt(); + } + break; + case 2: { + setState(3579); + insert_stmt(); + } + break; + case 3: { + setState(3580); + update_stmt(); + } + break; + case 4: { + setState(3581); + delete_stmt(); + } + break; + case 5: { + setState(3582); + values_stmt(); + } + break; + case 6: { + setState(3583); + execute_stmt(); + } + break; + case 7: { + setState(3584); + declare_stmt(); + } + break; + case 8: { + setState(3585); + create_table_as_stmt(); + } + break; + case 9: { + setState(3586); + create_materialized_view_stmt(); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Fetch_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_fetch_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFetch_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFetch_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFetch_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Fetch_stmtContext fetch_stmt() throws RecognitionException { + Fetch_stmtContext _localctx = new Fetch_stmtContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_fetch_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3589); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Grant_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Grant_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_grant_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterGrant_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitGrant_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitGrant_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Grant_stmtContext grant_stmt() throws RecognitionException { + Grant_stmtContext _localctx = new Grant_stmtContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_grant_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3591); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Import_foreign_schema_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Import_foreign_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_import_foreign_schema_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterImport_foreign_schema_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitImport_foreign_schema_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitImport_foreign_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Import_foreign_schema_stmtContext import_foreign_schema_stmt() throws RecognitionException { + Import_foreign_schema_stmtContext _localctx = new Import_foreign_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_import_foreign_schema_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3593); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Insert_stmtContext extends ParserRuleContext { + public IdentifierContext alias_; + + public TerminalNode INSERT() { + return getToken(PostgreSQLParser.INSERT, 0); + } + + public TerminalNode INTO() { + return getToken(PostgreSQLParser.INTO, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public TerminalNode VALUES() { + return getToken(PostgreSQLParser.VALUES, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode OVERRIDING() { + return getToken(PostgreSQLParser.OVERRIDING, 0); + } + + public TerminalNode VALUE() { + return getToken(PostgreSQLParser.VALUE, 0); + } + + public List ON() { + return getTokens(PostgreSQLParser.ON); + } + + public TerminalNode ON(int i) { + return getToken(PostgreSQLParser.ON, i); + } + + public TerminalNode CONFLICT() { + return getToken(PostgreSQLParser.CONFLICT, 0); + } + + public Returning_clauseContext returning_clause() { + return getRuleContext(Returning_clauseContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public List column_name() { + return getRuleContexts(Column_nameContext.class); + } + + public Column_nameContext column_name(int i) { + return getRuleContext(Column_nameContext.class, i); + } + + public TerminalNode CONSTRAINT() { + return getToken(PostgreSQLParser.CONSTRAINT, 0); + } + + public List where_clause() { + return getRuleContexts(Where_clauseContext.class); + } + + public Where_clauseContext where_clause(int i) { + return getRuleContext(Where_clauseContext.class, i); + } + + public TerminalNode SYSTEM() { + return getToken(PostgreSQLParser.SYSTEM, 0); + } + + public TerminalNode USER() { + return getToken(PostgreSQLParser.USER, 0); + } + + public TerminalNode DO() { + return getToken(PostgreSQLParser.DO, 0); + } + + public TerminalNode NOTHING() { + return getToken(PostgreSQLParser.NOTHING, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public Updater_clauseContext updater_clause() { + return getRuleContext(Updater_clauseContext.class, 0); + } + + public Insert_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_insert_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterInsert_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitInsert_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitInsert_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Insert_stmtContext insert_stmt() throws RecognitionException { + Insert_stmtContext _localctx = new Insert_stmtContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_insert_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3596); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(3595); + with_clause(); + } + } + + setState(3598); + match(INSERT); + setState(3599); + match(INTO); + setState(3600); + table_name_(); + setState(3603); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(3601); + match(AS); + setState(3602); + ((Insert_stmtContext) _localctx).alias_ = identifier(0); + } + } + + setState(3609); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 369, _ctx)) { + case 1: { + setState(3605); + match(OPEN_PAREN); + setState(3606); + name_list(); + setState(3607); + match(CLOSE_PAREN); + } + break; + } + setState(3616); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OVERRIDING) { + { + setState(3611); + match(OVERRIDING); + setState(3613); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == SYSTEM || _la == USER) { + { + setState(3612); + _la = _input.LA(1); + if (!(_la == SYSTEM || _la == USER)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3615); + match(VALUE); + } + } + + setState(3622); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 372, _ctx)) { + case 1: { + setState(3618); + match(DEFAULT); + setState(3619); + match(VALUES); + } + break; + case 2: { + setState(3620); + select_stmt(); + } + break; + case 3: { + setState(3621); + values_stmt(); + } + break; + } + setState(3651); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ON) { + { + setState(3624); + match(ON); + setState(3625); + match(CONFLICT); + setState(3630); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(3626); + match(OPEN_PAREN); + setState(3627); + column_name(); + setState(3628); + match(CLOSE_PAREN); + } + } + + setState(3635); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ON) { + { + setState(3632); + match(ON); + setState(3633); + match(CONSTRAINT); + setState(3634); + column_name(); + } + } + + setState(3638); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WHERE) { + { + setState(3637); + where_clause(); + } + } + + setState(3649); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 377, _ctx)) { + case 1: { + { + setState(3640); + match(DO); + setState(3641); + match(NOTHING); + } + } + break; + case 2: { + { + setState(3642); + match(DO); + setState(3643); + match(UPDATE); + setState(3644); + match(SET); + setState(3645); + updater_clause(); + setState(3647); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WHERE) { + { + setState(3646); + where_clause(); + } + } + + } + } + break; + } + } + } + + setState(3654); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == RETURNING) { + { + setState(3653); + returning_clause(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Listen_stmtContext extends ParserRuleContext { + public IdentifierContext channel; + + public TerminalNode LISTEN() { + return getToken(PostgreSQLParser.LISTEN, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Listen_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_listen_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterListen_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitListen_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitListen_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Listen_stmtContext listen_stmt() throws RecognitionException { + Listen_stmtContext _localctx = new Listen_stmtContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_listen_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3656); + match(LISTEN); + setState(3657); + ((Listen_stmtContext) _localctx).channel = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Load_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Load_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_load_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterLoad_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitLoad_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitLoad_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Load_stmtContext load_stmt() throws RecognitionException { + Load_stmtContext _localctx = new Load_stmtContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_load_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3659); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Lock_stmtContext extends ParserRuleContext { + public Name_Context name; + + public TerminalNode LOCK() { + return getToken(PostgreSQLParser.LOCK, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public TerminalNode MODE() { + return getToken(PostgreSQLParser.MODE, 0); + } + + public TerminalNode NOWAIT() { + return getToken(PostgreSQLParser.NOWAIT, 0); + } + + public TerminalNode ACCESS() { + return getToken(PostgreSQLParser.ACCESS, 0); + } + + public TerminalNode SHARE() { + return getToken(PostgreSQLParser.SHARE, 0); + } + + public TerminalNode ROW() { + return getToken(PostgreSQLParser.ROW, 0); + } + + public TerminalNode EXCLUSIVE() { + return getToken(PostgreSQLParser.EXCLUSIVE, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public Lock_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_lock_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterLock_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitLock_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitLock_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Lock_stmtContext lock_stmt() throws RecognitionException { + Lock_stmtContext _localctx = new Lock_stmtContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_lock_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3661); + match(LOCK); + setState(3663); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TABLE) { + { + setState(3662); + match(TABLE); + } + } + + setState(3666); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(3665); + match(ONLY); + } + } + + setState(3668); + ((Lock_stmtContext) _localctx).name = name_(); + setState(3670); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(3669); + match(STAR); + } + } + + setState(3692); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN) { + { + setState(3672); + match(IN); + setState(3689); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 383, _ctx)) { + case 1: { + setState(3673); + match(ACCESS); + setState(3674); + match(SHARE); + } + break; + case 2: { + setState(3675); + match(ROW); + setState(3676); + match(SHARE); + } + break; + case 3: { + setState(3677); + match(ROW); + setState(3678); + match(EXCLUSIVE); + } + break; + case 4: { + setState(3679); + match(SHARE); + setState(3680); + match(UPDATE); + setState(3681); + match(EXCLUSIVE); + } + break; + case 5: { + setState(3682); + match(SHARE); + } + break; + case 6: { + setState(3683); + match(SHARE); + setState(3684); + match(ROW); + setState(3685); + match(EXCLUSIVE); + } + break; + case 7: { + setState(3686); + match(EXCLUSIVE); + } + break; + case 8: { + setState(3687); + match(ACCESS); + setState(3688); + match(EXCLUSIVE); + } + break; + } + setState(3691); + match(MODE); + } + } + + setState(3695); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOWAIT) { + { + setState(3694); + match(NOWAIT); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Move_stmtContext extends ParserRuleContext { + public Name_Context cursor_name; + + public TerminalNode MOVE() { + return getToken(PostgreSQLParser.MOVE, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode NEXT() { + return getToken(PostgreSQLParser.NEXT, 0); + } + + public TerminalNode PRIOR() { + return getToken(PostgreSQLParser.PRIOR, 0); + } + + public TerminalNode FIRST() { + return getToken(PostgreSQLParser.FIRST, 0); + } + + public TerminalNode LAST() { + return getToken(PostgreSQLParser.LAST, 0); + } + + public TerminalNode ABSOLUTE() { + return getToken(PostgreSQLParser.ABSOLUTE, 0); + } + + public TerminalNode INTEGER() { + return getToken(PostgreSQLParser.INTEGER, 0); + } + + public TerminalNode RELATIVE() { + return getToken(PostgreSQLParser.RELATIVE, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode FORWARD() { + return getToken(PostgreSQLParser.FORWARD, 0); + } + + public TerminalNode BACKWARD() { + return getToken(PostgreSQLParser.BACKWARD, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public Move_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_move_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterMove_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitMove_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitMove_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Move_stmtContext move_stmt() throws RecognitionException { + Move_stmtContext _localctx = new Move_stmtContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_move_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3697); + match(MOVE); + setState(3721); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 390, _ctx)) { + case 1: { + setState(3716); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NEXT: { + setState(3698); + match(NEXT); + } + break; + case PRIOR: { + setState(3699); + match(PRIOR); + } + break; + case FIRST: { + setState(3700); + match(FIRST); + } + break; + case LAST: { + setState(3701); + match(LAST); + } + break; + case ABSOLUTE: { + setState(3702); + match(ABSOLUTE); + setState(3703); + match(INTEGER); + } + break; + case RELATIVE: { + setState(3704); + match(RELATIVE); + setState(3705); + match(INTEGER_LITERAL); + } + break; + case INTEGER_LITERAL: { + setState(3706); + match(INTEGER_LITERAL); + } + break; + case ALL: { + setState(3707); + match(ALL); + } + break; + case FORWARD: { + setState(3708); + match(FORWARD); + setState(3710); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ALL || _la == INTEGER_LITERAL) { + { + setState(3709); + _la = _input.LA(1); + if (!(_la == ALL || _la == INTEGER_LITERAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case BACKWARD: { + setState(3712); + match(BACKWARD); + setState(3714); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ALL || _la == INTEGER_LITERAL) { + { + setState(3713); + _la = _input.LA(1); + if (!(_la == ALL || _la == INTEGER_LITERAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + setState(3719); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FROM || _la == IN) { + { + setState(3718); + _la = _input.LA(1); + if (!(_la == FROM || _la == IN)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + } + setState(3723); + ((Move_stmtContext) _localctx).cursor_name = name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Notify_stmtContext extends ParserRuleContext { + public Name_Context channel; + public Token payload; + + public TerminalNode NOTIFY() { + return getToken(PostgreSQLParser.NOTIFY, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode COMMA() { + return getToken(PostgreSQLParser.COMMA, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public Notify_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_notify_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterNotify_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitNotify_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitNotify_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Notify_stmtContext notify_stmt() throws RecognitionException { + Notify_stmtContext _localctx = new Notify_stmtContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_notify_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3725); + match(NOTIFY); + setState(3726); + ((Notify_stmtContext) _localctx).channel = name_(); + setState(3729); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(3727); + match(COMMA); + setState(3728); + ((Notify_stmtContext) _localctx).payload = match(SINGLEQ_STRING_LITERAL); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Prepare_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode PREPARE() { + return getToken(PostgreSQLParser.PREPARE, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class, 0); + } + + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class, 0); + } + + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Data_type_listContext data_type_list() { + return getRuleContext(Data_type_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Prepare_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_prepare_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterPrepare_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitPrepare_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitPrepare_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Prepare_stmtContext prepare_stmt() throws RecognitionException { + Prepare_stmtContext _localctx = new Prepare_stmtContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_prepare_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3731); + match(PREPARE); + setState(3732); + ((Prepare_stmtContext) _localctx).name = identifier(0); + setState(3737); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(3733); + match(OPEN_PAREN); + setState(3734); + data_type_list(); + setState(3735); + match(CLOSE_PAREN); + } + } + + setState(3739); + match(AS); + setState(3745); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 393, _ctx)) { + case 1: { + setState(3740); + select_stmt(); + } + break; + case 2: { + setState(3741); + insert_stmt(); + } + break; + case 3: { + setState(3742); + update_stmt(); + } + break; + case 4: { + setState(3743); + delete_stmt(); + } + break; + case 5: { + setState(3744); + values_stmt(); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Prepare_transaction_stmtContext extends ParserRuleContext { + public Name_Context name; + + public TerminalNode PREPARE() { + return getToken(PostgreSQLParser.PREPARE, 0); + } + + public TerminalNode TRANSACTION() { + return getToken(PostgreSQLParser.TRANSACTION, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public Prepare_transaction_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_prepare_transaction_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterPrepare_transaction_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitPrepare_transaction_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitPrepare_transaction_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Prepare_transaction_stmtContext prepare_transaction_stmt() throws RecognitionException { + Prepare_transaction_stmtContext _localctx = new Prepare_transaction_stmtContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_prepare_transaction_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3747); + match(PREPARE); + setState(3748); + match(TRANSACTION); + setState(3749); + ((Prepare_transaction_stmtContext) _localctx).name = name_(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Reassign_owned_stmtContext extends ParserRuleContext { + public TerminalNode REASSIGN() { + return getToken(PostgreSQLParser.REASSIGN, 0); + } + + public TerminalNode OWNED() { + return getToken(PostgreSQLParser.OWNED, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List CURRENT_USER() { + return getTokens(PostgreSQLParser.CURRENT_USER); + } + + public TerminalNode CURRENT_USER(int i) { + return getToken(PostgreSQLParser.CURRENT_USER, i); + } + + public List SESSION_USER() { + return getTokens(PostgreSQLParser.SESSION_USER); + } + + public TerminalNode SESSION_USER(int i) { + return getToken(PostgreSQLParser.SESSION_USER, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Reassign_owned_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_reassign_owned_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterReassign_owned_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitReassign_owned_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitReassign_owned_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Reassign_owned_stmtContext reassign_owned_stmt() throws RecognitionException { + Reassign_owned_stmtContext _localctx = new Reassign_owned_stmtContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_reassign_owned_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3751); + match(REASSIGN); + setState(3752); + match(OWNED); + setState(3753); + match(BY); + { + setState(3757); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(3754); + identifier(0); + } + break; + case CURRENT_USER: { + setState(3755); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(3756); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + setState(3767); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(3759); + match(COMMA); + setState(3763); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(3760); + identifier(0); + } + break; + case CURRENT_USER: { + setState(3761); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(3762); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(3769); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + setState(3770); + match(TO); + setState(3774); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(3771); + identifier(0); + } + break; + case CURRENT_USER: { + setState(3772); + match(CURRENT_USER); + } + break; + case SESSION_USER: { + setState(3773); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Refresh_materialized_view_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Refresh_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_refresh_materialized_view_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRefresh_materialized_view_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRefresh_materialized_view_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRefresh_materialized_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Refresh_materialized_view_stmtContext refresh_materialized_view_stmt() throws RecognitionException { + Refresh_materialized_view_stmtContext _localctx = new Refresh_materialized_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_refresh_materialized_view_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3776); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Reindex_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode REINDEX() { + return getToken(PostgreSQLParser.REINDEX, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public TerminalNode DATABASE() { + return getToken(PostgreSQLParser.DATABASE, 0); + } + + public TerminalNode SYSTEM() { + return getToken(PostgreSQLParser.SYSTEM, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode VERBOSE() { + return getToken(PostgreSQLParser.VERBOSE, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Reindex_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_reindex_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterReindex_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitReindex_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitReindex_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Reindex_stmtContext reindex_stmt() throws RecognitionException { + Reindex_stmtContext _localctx = new Reindex_stmtContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_reindex_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3778); + match(REINDEX); + setState(3782); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(3779); + match(OPEN_PAREN); + setState(3780); + match(VERBOSE); + setState(3781); + match(CLOSE_PAREN); + } + } + + setState(3784); + _la = _input.LA(1); + if (!(_la == DATABASE || _la == INDEX || _la == SCHEMA || _la == SYSTEM || _la == TABLE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3785); + ((Reindex_stmtContext) _localctx).name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Release_savepoint_stmtContext extends ParserRuleContext { + public IdentifierContext savepoint_name; + + public TerminalNode RELEASE() { + return getToken(PostgreSQLParser.RELEASE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode SAVEPOINT() { + return getToken(PostgreSQLParser.SAVEPOINT, 0); + } + + public Release_savepoint_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_release_savepoint_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRelease_savepoint_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRelease_savepoint_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRelease_savepoint_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Release_savepoint_stmtContext release_savepoint_stmt() throws RecognitionException { + Release_savepoint_stmtContext _localctx = new Release_savepoint_stmtContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_release_savepoint_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3787); + match(RELEASE); + setState(3789); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 399, _ctx)) { + case 1: { + setState(3788); + match(SAVEPOINT); + } + break; + } + setState(3791); + ((Release_savepoint_stmtContext) _localctx).savepoint_name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Reset_stmtContext extends ParserRuleContext { + public IdentifierContext configuration_parameter; + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Reset_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_reset_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterReset_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitReset_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitReset_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Reset_stmtContext reset_stmt() throws RecognitionException { + Reset_stmtContext _localctx = new Reset_stmtContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_reset_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3793); + match(RESET); + setState(3796); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(3794); + ((Reset_stmtContext) _localctx).configuration_parameter = identifier(0); + } + break; + case ALL: { + setState(3795); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Revoke_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Revoke_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_revoke_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRevoke_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRevoke_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRevoke_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Revoke_stmtContext revoke_stmt() throws RecognitionException { + Revoke_stmtContext _localctx = new Revoke_stmtContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_revoke_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3798); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Rollback_stmtContext extends ParserRuleContext { + public TerminalNode ROLLBACK() { + return getToken(PostgreSQLParser.ROLLBACK, 0); + } + + public TerminalNode WORK() { + return getToken(PostgreSQLParser.WORK, 0); + } + + public TerminalNode TRANSACTION() { + return getToken(PostgreSQLParser.TRANSACTION, 0); + } + + public Rollback_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_rollback_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRollback_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRollback_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRollback_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Rollback_stmtContext rollback_stmt() throws RecognitionException { + Rollback_stmtContext _localctx = new Rollback_stmtContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_rollback_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3800); + match(ROLLBACK); + setState(3802); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TRANSACTION || _la == WORK) { + { + setState(3801); + _la = _input.LA(1); + if (!(_la == TRANSACTION || _la == WORK)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Rollback_prepared_stmtContext extends ParserRuleContext { + public Token transaction_id; + + public TerminalNode ROLLBACK() { + return getToken(PostgreSQLParser.ROLLBACK, 0); + } + + public TerminalNode PREPARED() { + return getToken(PostgreSQLParser.PREPARED, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public Rollback_prepared_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_rollback_prepared_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRollback_prepared_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRollback_prepared_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRollback_prepared_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Rollback_prepared_stmtContext rollback_prepared_stmt() throws RecognitionException { + Rollback_prepared_stmtContext _localctx = new Rollback_prepared_stmtContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_rollback_prepared_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3804); + match(ROLLBACK); + setState(3805); + match(PREPARED); + setState(3806); + ((Rollback_prepared_stmtContext) _localctx).transaction_id = match(INTEGER_LITERAL); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Rollback_to_savepoint_stmtContext extends ParserRuleContext { + public IdentifierContext savepoint_name; + + public TerminalNode ROLLBACK() { + return getToken(PostgreSQLParser.ROLLBACK, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode SAVEPOINT() { + return getToken(PostgreSQLParser.SAVEPOINT, 0); + } + + public TerminalNode WORK() { + return getToken(PostgreSQLParser.WORK, 0); + } + + public TerminalNode TRANSACTION() { + return getToken(PostgreSQLParser.TRANSACTION, 0); + } + + public Rollback_to_savepoint_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_rollback_to_savepoint_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRollback_to_savepoint_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRollback_to_savepoint_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRollback_to_savepoint_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Rollback_to_savepoint_stmtContext rollback_to_savepoint_stmt() throws RecognitionException { + Rollback_to_savepoint_stmtContext _localctx = new Rollback_to_savepoint_stmtContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_rollback_to_savepoint_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3808); + match(ROLLBACK); + setState(3810); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TRANSACTION || _la == WORK) { + { + setState(3809); + _la = _input.LA(1); + if (!(_la == TRANSACTION || _la == WORK)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3812); + match(TO); + setState(3814); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 403, _ctx)) { + case 1: { + setState(3813); + match(SAVEPOINT); + } + break; + } + setState(3816); + ((Rollback_to_savepoint_stmtContext) _localctx).savepoint_name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Savepoint_stmtContext extends ParserRuleContext { + public IdentifierContext savepoint_name; + + public TerminalNode SAVEPOINT() { + return getToken(PostgreSQLParser.SAVEPOINT, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Savepoint_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_savepoint_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSavepoint_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSavepoint_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSavepoint_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Savepoint_stmtContext savepoint_stmt() throws RecognitionException { + Savepoint_stmtContext _localctx = new Savepoint_stmtContext(_ctx, getState()); + enterRule(_localctx, 340, RULE_savepoint_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3818); + match(SAVEPOINT); + setState(3819); + ((Savepoint_stmtContext) _localctx).savepoint_name = identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Security_label_stmtContext extends ParserRuleContext { + public Name_Context provider; + public IdentifierContext object_name; + public IdentifierContext table_name; + public Column_nameContext column_name_; + public IdentifierContext aggregate_name; + public IdentifierContext function_name; + public Token large_object_oid; + public Token label; + + public TerminalNode SECURITY() { + return getToken(PostgreSQLParser.SECURITY, 0); + } + + public TerminalNode LABEL() { + return getToken(PostgreSQLParser.LABEL, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode IS() { + return getToken(PostgreSQLParser.IS, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public TerminalNode COLUMN() { + return getToken(PostgreSQLParser.COLUMN, 0); + } + + public TerminalNode DOT() { + return getToken(PostgreSQLParser.DOT, 0); + } + + public TerminalNode AGGREGATE() { + return getToken(PostgreSQLParser.AGGREGATE, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Aggregate_signatureContext aggregate_signature() { + return getRuleContext(Aggregate_signatureContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode DATABASE() { + return getToken(PostgreSQLParser.DATABASE, 0); + } + + public TerminalNode DOMAIN() { + return getToken(PostgreSQLParser.DOMAIN, 0); + } + + public TerminalNode EVENT() { + return getToken(PostgreSQLParser.EVENT, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode FUNCTION() { + return getToken(PostgreSQLParser.FUNCTION, 0); + } + + public Func_sigContext func_sig() { + return getRuleContext(Func_sigContext.class, 0); + } + + public TerminalNode LARGE() { + return getToken(PostgreSQLParser.LARGE, 0); + } + + public TerminalNode OBJECT() { + return getToken(PostgreSQLParser.OBJECT, 0); + } + + public TerminalNode MATERIALIZED() { + return getToken(PostgreSQLParser.MATERIALIZED, 0); + } + + public TerminalNode VIEW() { + return getToken(PostgreSQLParser.VIEW, 0); + } + + public TerminalNode LANGUAGE() { + return getToken(PostgreSQLParser.LANGUAGE, 0); + } + + public TerminalNode PUBLICATION() { + return getToken(PostgreSQLParser.PUBLICATION, 0); + } + + public TerminalNode ROLE() { + return getToken(PostgreSQLParser.ROLE, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public TerminalNode SEQUENCE() { + return getToken(PostgreSQLParser.SEQUENCE, 0); + } + + public TerminalNode SUBSCRIPTION() { + return getToken(PostgreSQLParser.SUBSCRIPTION, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public TerminalNode TYPE() { + return getToken(PostgreSQLParser.TYPE, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode PROCEDURAL() { + return getToken(PostgreSQLParser.PROCEDURAL, 0); + } + + public Security_label_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_security_label_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSecurity_label_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSecurity_label_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSecurity_label_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Security_label_stmtContext security_label_stmt() throws RecognitionException { + Security_label_stmtContext _localctx = new Security_label_stmtContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_security_label_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3821); + match(SECURITY); + setState(3822); + match(LABEL); + setState(3825); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FOR) { + { + setState(3823); + match(FOR); + setState(3824); + ((Security_label_stmtContext) _localctx).provider = name_(); + } + } + + setState(3827); + match(ON); + setState(3882); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TABLE: { + setState(3828); + match(TABLE); + setState(3829); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case COLUMN: { + setState(3830); + match(COLUMN); + setState(3831); + ((Security_label_stmtContext) _localctx).table_name = identifier(0); + setState(3832); + match(DOT); + setState(3833); + ((Security_label_stmtContext) _localctx).column_name_ = column_name(); + } + break; + case AGGREGATE: { + setState(3835); + match(AGGREGATE); + setState(3836); + ((Security_label_stmtContext) _localctx).aggregate_name = identifier(0); + setState(3837); + match(OPEN_PAREN); + setState(3838); + aggregate_signature(); + setState(3839); + match(CLOSE_PAREN); + } + break; + case DATABASE: { + setState(3841); + match(DATABASE); + setState(3842); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case DOMAIN: { + setState(3843); + match(DOMAIN); + setState(3844); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case EVENT: { + setState(3845); + match(EVENT); + setState(3846); + match(TRIGGER); + setState(3847); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case FOREIGN: { + setState(3848); + match(FOREIGN); + setState(3849); + match(TABLE); + setState(3850); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case FUNCTION: { + setState(3851); + match(FUNCTION); + setState(3852); + ((Security_label_stmtContext) _localctx).function_name = identifier(0); + setState(3853); + func_sig(); + } + break; + case LARGE: { + setState(3855); + match(LARGE); + setState(3856); + match(OBJECT); + setState(3857); + ((Security_label_stmtContext) _localctx).large_object_oid = match(INTEGER_LITERAL); + } + break; + case MATERIALIZED: { + setState(3858); + match(MATERIALIZED); + setState(3859); + match(VIEW); + setState(3860); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case LANGUAGE: + case PROCEDURAL: { + setState(3862); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == PROCEDURAL) { + { + setState(3861); + match(PROCEDURAL); + } + } + + setState(3864); + match(LANGUAGE); + setState(3865); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case PUBLICATION: { + setState(3866); + match(PUBLICATION); + setState(3867); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case ROLE: { + setState(3868); + match(ROLE); + setState(3869); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case SCHEMA: { + setState(3870); + match(SCHEMA); + setState(3871); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case SEQUENCE: { + setState(3872); + match(SEQUENCE); + setState(3873); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case SUBSCRIPTION: { + setState(3874); + match(SUBSCRIPTION); + setState(3875); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case TABLESPACE: { + setState(3876); + match(TABLESPACE); + setState(3877); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case TYPE: { + setState(3878); + match(TYPE); + setState(3879); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + case VIEW: { + setState(3880); + match(VIEW); + setState(3881); + ((Security_label_stmtContext) _localctx).object_name = identifier(0); + } + break; + default: + throw new NoViableAltException(this); + } + setState(3884); + match(IS); + setState(3885); + ((Security_label_stmtContext) _localctx).label = match(SINGLEQ_STRING_LITERAL); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Select_stmtContext extends ParserRuleContext { + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class, 0); + } + + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class, 0); + } + + public Group_by_clauseContext group_by_clause() { + return getRuleContext(Group_by_clauseContext.class, 0); + } + + public Having_clauseContext having_clause() { + return getRuleContext(Having_clauseContext.class, 0); + } + + public Window_clauseContext window_clause() { + return getRuleContext(Window_clauseContext.class, 0); + } + + public List combine_clause() { + return getRuleContexts(Combine_clauseContext.class); + } + + public Combine_clauseContext combine_clause(int i) { + return getRuleContext(Combine_clauseContext.class, i); + } + + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class, 0); + } + + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class, 0); + } + + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class, 0); + } + + public Fetch_clauseContext fetch_clause() { + return getRuleContext(Fetch_clauseContext.class, 0); + } + + public For_clauseContext for_clause() { + return getRuleContext(For_clauseContext.class, 0); + } + + public TerminalNode SELECT() { + return getToken(PostgreSQLParser.SELECT, 0); + } + + public Selector_clauseContext selector_clause() { + return getRuleContext(Selector_clauseContext.class, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public Select_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_select_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSelect_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSelect_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSelect_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Select_stmtContext select_stmt() throws RecognitionException { + Select_stmtContext _localctx = new Select_stmtContext(_ctx, getState()); + enterRule(_localctx, 344, RULE_select_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3888); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(3887); + with_clause(); + } + } + + setState(3916); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: { + { + setState(3890); + match(SELECT); + setState(3891); + selector_clause(); + setState(3893); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 408, _ctx)) { + case 1: { + setState(3892); + from_clause(); + } + break; + } + } + } + break; + case TABLE: { + { + setState(3895); + match(TABLE); + setState(3897); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(3896); + match(ONLY); + } + } + + setState(3899); + table_name_(); + setState(3901); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 410, _ctx)) { + case 1: { + setState(3900); + match(STAR); + } + break; + } + } + } + break; + case OPEN_PAREN: { + { + setState(3904); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(3903); + match(OPEN_PAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3906); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 411, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + setState(3908); + select_stmt(); + setState(3910); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(3909); + match(CLOSE_PAREN); + } + } + setState(3912); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == CLOSE_PAREN); + setState(3914); + combine_clause(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3919); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 414, _ctx)) { + case 1: { + setState(3918); + where_clause(); + } + break; + } + setState(3922); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 415, _ctx)) { + case 1: { + setState(3921); + group_by_clause(); + } + break; + } + setState(3925); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 416, _ctx)) { + case 1: { + setState(3924); + having_clause(); + } + break; + } + setState(3928); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 417, _ctx)) { + case 1: { + setState(3927); + window_clause(); + } + break; + } + setState(3931); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 418, _ctx)) { + case 1: { + setState(3930); + combine_clause(); + } + break; + } + setState(3934); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 419, _ctx)) { + case 1: { + setState(3933); + order_by_clause(); + } + break; + } + setState(3937); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 420, _ctx)) { + case 1: { + setState(3936); + limit_clause(); + } + break; + } + setState(3940); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 421, _ctx)) { + case 1: { + setState(3939); + offset_clause(); + } + break; + } + setState(3943); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 422, _ctx)) { + case 1: { + setState(3942); + fetch_clause(); + } + break; + } + setState(3946); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 423, _ctx)) { + case 1: { + setState(3945); + for_clause(); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Select_into_stmtContext extends ParserRuleContext { + public Table_name_Context new_table; + + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class, 0); + } + + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class, 0); + } + + public Group_by_clauseContext group_by_clause() { + return getRuleContext(Group_by_clauseContext.class, 0); + } + + public Having_clauseContext having_clause() { + return getRuleContext(Having_clauseContext.class, 0); + } + + public Window_clauseContext window_clause() { + return getRuleContext(Window_clauseContext.class, 0); + } + + public List combine_clause() { + return getRuleContexts(Combine_clauseContext.class); + } + + public Combine_clauseContext combine_clause(int i) { + return getRuleContext(Combine_clauseContext.class, i); + } + + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class, 0); + } + + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class, 0); + } + + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class, 0); + } + + public Fetch_clauseContext fetch_clause() { + return getRuleContext(Fetch_clauseContext.class, 0); + } + + public For_clauseContext for_clause() { + return getRuleContext(For_clauseContext.class, 0); + } + + public TerminalNode SELECT() { + return getToken(PostgreSQLParser.SELECT, 0); + } + + public Selector_clauseContext selector_clause() { + return getRuleContext(Selector_clauseContext.class, 0); + } + + public TerminalNode INTO() { + return getToken(PostgreSQLParser.INTO, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode TEMPORARY() { + return getToken(PostgreSQLParser.TEMPORARY, 0); + } + + public TerminalNode TEMP() { + return getToken(PostgreSQLParser.TEMP, 0); + } + + public TerminalNode UNLOGGED() { + return getToken(PostgreSQLParser.UNLOGGED, 0); + } + + public Select_into_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_select_into_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSelect_into_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSelect_into_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSelect_into_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Select_into_stmtContext select_into_stmt() throws RecognitionException { + Select_into_stmtContext _localctx = new Select_into_stmtContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_select_into_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3949); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(3948); + with_clause(); + } + } + + setState(3985); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: { + { + setState(3951); + match(SELECT); + setState(3952); + selector_clause(); + setState(3953); + match(INTO); + setState(3955); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 425, _ctx)) { + case 1: { + setState(3954); + _la = _input.LA(1); + if (!(_la == TEMP || _la == TEMPORARY || _la == UNLOGGED)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(3958); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TABLE) { + { + setState(3957); + match(TABLE); + } + } + + setState(3960); + ((Select_into_stmtContext) _localctx).new_table = table_name_(); + setState(3962); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FROM) { + { + setState(3961); + from_clause(); + } + } + + } + } + break; + case TABLE: { + { + setState(3964); + match(TABLE); + setState(3966); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(3965); + match(ONLY); + } + } + + setState(3968); + table_name_(); + setState(3970); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(3969); + match(STAR); + } + } + + } + } + break; + case OPEN_PAREN: { + { + setState(3973); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(3972); + match(OPEN_PAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3975); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 430, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + setState(3977); + select_stmt(); + setState(3979); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(3978); + match(CLOSE_PAREN); + } + } + setState(3981); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == CLOSE_PAREN); + setState(3983); + combine_clause(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3988); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WHERE) { + { + setState(3987); + where_clause(); + } + } + + setState(3991); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == GROUP) { + { + setState(3990); + group_by_clause(); + } + } + + setState(3994); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == HAVING) { + { + setState(3993); + having_clause(); + } + } + + setState(3997); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WINDOW) { + { + setState(3996); + window_clause(); + } + } + + setState(4000); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == EXCEPT || _la == INTERSECT || _la == UNION) { + { + setState(3999); + combine_clause(); + } + } + + setState(4003); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ORDER) { + { + setState(4002); + order_by_clause(); + } + } + + setState(4006); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LIMIT) { + { + setState(4005); + limit_clause(); + } + } + + setState(4009); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OFFSET) { + { + setState(4008); + offset_clause(); + } + } + + setState(4012); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FETCH) { + { + setState(4011); + fetch_clause(); + } + } + + setState(4015); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FOR) { + { + setState(4014); + for_clause(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class With_clauseContext extends ParserRuleContext { + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public List with_expr() { + return getRuleContexts(With_exprContext.class); + } + + public With_exprContext with_expr(int i) { + return getRuleContext(With_exprContext.class, i); + } + + public TerminalNode RECURSIVE() { + return getToken(PostgreSQLParser.RECURSIVE, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public With_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_with_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWith_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitWith_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWith_clause(this); + else return visitor.visitChildren(this); + } + } + + public final With_clauseContext with_clause() throws RecognitionException { + With_clauseContext _localctx = new With_clauseContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_with_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4017); + match(WITH); + setState(4019); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 443, _ctx)) { + case 1: { + setState(4018); + match(RECURSIVE); + } + break; + } + setState(4021); + with_expr(); + setState(4026); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4022); + match(COMMA); + setState(4023); + with_expr(); + } + } + setState(4028); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class With_exprContext extends ParserRuleContext { + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class, 0); + } + + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class, 0); + } + + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public With_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_with_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWith_expr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitWith_expr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWith_expr(this); + else return visitor.visitChildren(this); + } + } + + public final With_exprContext with_expr() throws RecognitionException { + With_exprContext _localctx = new With_exprContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_with_expr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4029); + table_name_(); + setState(4034); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(4030); + match(OPEN_PAREN); + setState(4031); + name_list(); + setState(4032); + match(CLOSE_PAREN); + } + } + + setState(4036); + match(AS); + setState(4037); + match(OPEN_PAREN); + setState(4043); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 446, _ctx)) { + case 1: { + setState(4038); + select_stmt(); + } + break; + case 2: { + setState(4039); + insert_stmt(); + } + break; + case 3: { + setState(4040); + delete_stmt(); + } + break; + case 4: { + setState(4041); + update_stmt(); + } + break; + case 5: { + setState(4042); + values_stmt(); + } + break; + } + setState(4045); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Set_stmtContext extends ParserRuleContext { + public IdentifierContext configuration_parameter; + public Param_valueContext value; + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode TO() { + return getToken(PostgreSQLParser.TO, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class, 0); + } + + public TerminalNode SESSION() { + return getToken(PostgreSQLParser.SESSION, 0); + } + + public List LOCAL() { + return getTokens(PostgreSQLParser.LOCAL); + } + + public TerminalNode LOCAL(int i) { + return getToken(PostgreSQLParser.LOCAL, i); + } + + public TerminalNode TIME() { + return getToken(PostgreSQLParser.TIME, 0); + } + + public TerminalNode ZONE() { + return getToken(PostgreSQLParser.ZONE, 0); + } + + public TimezoneContext timezone() { + return getRuleContext(TimezoneContext.class, 0); + } + + public Set_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_set_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterSet_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitSet_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSet_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_stmtContext set_stmt() throws RecognitionException { + Set_stmtContext _localctx = new Set_stmtContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_set_stmt); + int _la; + try { + setState(4068); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 451, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4047); + match(SET); + setState(4049); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 447, _ctx)) { + case 1: { + setState(4048); + _la = _input.LA(1); + if (!(_la == LOCAL || _la == SESSION)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(4051); + ((Set_stmtContext) _localctx).configuration_parameter = identifier(0); + setState(4052); + _la = _input.LA(1); + if (!(_la == TO || _la == EQUAL)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4055); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case ON: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case YES: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(4053); + ((Set_stmtContext) _localctx).value = param_value(); + } + break; + case DEFAULT: { + setState(4054); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4057); + match(SET); + setState(4059); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LOCAL || _la == SESSION) { + { + setState(4058); + _la = _input.LA(1); + if (!(_la == LOCAL || _la == SESSION)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(4061); + match(TIME); + setState(4062); + match(ZONE); + setState(4066); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: { + setState(4063); + timezone(); + } + break; + case LOCAL: { + setState(4064); + match(LOCAL); + } + break; + case DEFAULT: { + setState(4065); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Set_constraints_stmtContext extends ParserRuleContext { + public Identifier_listContext constraints; + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode CONSTRAINTS() { + return getToken(PostgreSQLParser.CONSTRAINTS, 0); + } + + public TerminalNode DEFERRED() { + return getToken(PostgreSQLParser.DEFERRED, 0); + } + + public TerminalNode IMMEDIATE() { + return getToken(PostgreSQLParser.IMMEDIATE, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public Set_constraints_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_set_constraints_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSet_constraints_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSet_constraints_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSet_constraints_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_constraints_stmtContext set_constraints_stmt() throws RecognitionException { + Set_constraints_stmtContext _localctx = new Set_constraints_stmtContext(_ctx, getState()); + enterRule(_localctx, 354, RULE_set_constraints_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4070); + match(SET); + setState(4071); + match(CONSTRAINTS); + setState(4074); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ALL: { + setState(4072); + match(ALL); + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(4073); + ((Set_constraints_stmtContext) _localctx).constraints = identifier_list(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4076); + _la = _input.LA(1); + if (!(_la == DEFERRED || _la == IMMEDIATE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Set_role_stmtContext extends ParserRuleContext { + public Role_nameContext role_name_; + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode ROLE() { + return getToken(PostgreSQLParser.ROLE, 0); + } + + public TerminalNode NONE() { + return getToken(PostgreSQLParser.NONE, 0); + } + + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class, 0); + } + + public TerminalNode SESSION() { + return getToken(PostgreSQLParser.SESSION, 0); + } + + public TerminalNode LOCAL() { + return getToken(PostgreSQLParser.LOCAL, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public Set_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_set_role_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSet_role_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSet_role_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSet_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_role_stmtContext set_role_stmt() throws RecognitionException { + Set_role_stmtContext _localctx = new Set_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 356, RULE_set_role_stmt); + int _la; + try { + setState(4089); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SET: + enterOuterAlt(_localctx, 1); + { + setState(4078); + match(SET); + setState(4080); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LOCAL || _la == SESSION) { + { + setState(4079); + _la = _input.LA(1); + if (!(_la == LOCAL || _la == SESSION)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(4082); + match(ROLE); + setState(4085); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 454, _ctx)) { + case 1: { + setState(4083); + ((Set_role_stmtContext) _localctx).role_name_ = role_name(); + } + break; + case 2: { + setState(4084); + match(NONE); + } + break; + } + } + break; + case RESET: + enterOuterAlt(_localctx, 2); + { + setState(4087); + match(RESET); + setState(4088); + match(ROLE); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Set_session_authorization_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class, 0); + } + + public Set_session_authorization_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_set_session_authorization_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSet_session_authorization_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSet_session_authorization_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSet_session_authorization_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_session_authorization_stmtContext set_session_authorization_stmt() throws RecognitionException { + Set_session_authorization_stmtContext _localctx = new Set_session_authorization_stmtContext(_ctx, getState()); + enterRule(_localctx, 358, RULE_set_session_authorization_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(4091); + todo_implement(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Transaction_modeContext extends ParserRuleContext { + public TerminalNode ISOLATION() { + return getToken(PostgreSQLParser.ISOLATION, 0); + } + + public TerminalNode LEVEL() { + return getToken(PostgreSQLParser.LEVEL, 0); + } + + public TerminalNode SERIALIZABLE() { + return getToken(PostgreSQLParser.SERIALIZABLE, 0); + } + + public TerminalNode REPEATABLE() { + return getToken(PostgreSQLParser.REPEATABLE, 0); + } + + public TerminalNode READ() { + return getToken(PostgreSQLParser.READ, 0); + } + + public TerminalNode COMMITTED() { + return getToken(PostgreSQLParser.COMMITTED, 0); + } + + public TerminalNode UNCOMMITTED() { + return getToken(PostgreSQLParser.UNCOMMITTED, 0); + } + + public TerminalNode WRITE() { + return getToken(PostgreSQLParser.WRITE, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode DEFERRABLE() { + return getToken(PostgreSQLParser.DEFERRABLE, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public Transaction_modeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_transaction_mode; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTransaction_mode(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTransaction_mode(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTransaction_mode(this); + else return visitor.visitChildren(this); + } + } + + public final Transaction_modeContext transaction_mode() throws RecognitionException { + Transaction_modeContext _localctx = new Transaction_modeContext(_ctx, getState()); + enterRule(_localctx, 360, RULE_transaction_mode); + int _la; + try { + setState(4112); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 458, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4093); + match(ISOLATION); + setState(4094); + match(LEVEL); + setState(4102); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 456, _ctx)) { + case 1: { + setState(4095); + match(SERIALIZABLE); + } + break; + case 2: { + setState(4096); + match(REPEATABLE); + setState(4097); + match(READ); + } + break; + case 3: { + setState(4098); + match(READ); + setState(4099); + match(COMMITTED); + } + break; + case 4: { + setState(4100); + match(READ); + setState(4101); + match(UNCOMMITTED); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4104); + match(READ); + setState(4105); + match(WRITE); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4106); + match(READ); + setState(4107); + match(ONLY); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4109); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(4108); + match(NOT); + } + } + + setState(4111); + match(DEFERRABLE); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Transaction_mode_listContext extends ParserRuleContext { + public List transaction_mode() { + return getRuleContexts(Transaction_modeContext.class); + } + + public Transaction_modeContext transaction_mode(int i) { + return getRuleContext(Transaction_modeContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Transaction_mode_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_transaction_mode_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTransaction_mode_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTransaction_mode_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTransaction_mode_list(this); + else return visitor.visitChildren(this); + } + } + + public final Transaction_mode_listContext transaction_mode_list() throws RecognitionException { + Transaction_mode_listContext _localctx = new Transaction_mode_listContext(_ctx, getState()); + enterRule(_localctx, 362, RULE_transaction_mode_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4114); + transaction_mode(); + setState(4119); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4115); + match(COMMA); + setState(4116); + transaction_mode(); + } + } + setState(4121); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Set_transaction_stmtContext extends ParserRuleContext { + public Token snapshot_id; + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode TRANSACTION() { + return getToken(PostgreSQLParser.TRANSACTION, 0); + } + + public Transaction_mode_listContext transaction_mode_list() { + return getRuleContext(Transaction_mode_listContext.class, 0); + } + + public TerminalNode SNAPSHOT() { + return getToken(PostgreSQLParser.SNAPSHOT, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode SESSION() { + return getToken(PostgreSQLParser.SESSION, 0); + } + + public TerminalNode CHARACTERISTICS() { + return getToken(PostgreSQLParser.CHARACTERISTICS, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public Set_transaction_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_set_transaction_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSet_transaction_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSet_transaction_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSet_transaction_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_transaction_stmtContext set_transaction_stmt() throws RecognitionException { + Set_transaction_stmtContext _localctx = new Set_transaction_stmtContext(_ctx, getState()); + enterRule(_localctx, 364, RULE_set_transaction_stmt); + try { + setState(4135); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 460, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4122); + match(SET); + setState(4123); + match(TRANSACTION); + setState(4124); + transaction_mode_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4125); + match(SET); + setState(4126); + match(TRANSACTION); + setState(4127); + match(SNAPSHOT); + setState(4128); + ((Set_transaction_stmtContext) _localctx).snapshot_id = match(SINGLEQ_STRING_LITERAL); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4129); + match(SET); + setState(4130); + match(SESSION); + setState(4131); + match(CHARACTERISTICS); + setState(4132); + match(AS); + setState(4133); + match(TRANSACTION); + setState(4134); + transaction_mode_list(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Show_stmtContext extends ParserRuleContext { + public IdentifierContext name; + + public TerminalNode SHOW() { + return getToken(PostgreSQLParser.SHOW, 0); + } + + public TerminalNode TIME() { + return getToken(PostgreSQLParser.TIME, 0); + } + + public TerminalNode ZONE() { + return getToken(PostgreSQLParser.ZONE, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Show_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_show_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterShow_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitShow_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitShow_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Show_stmtContext show_stmt() throws RecognitionException { + Show_stmtContext _localctx = new Show_stmtContext(_ctx, getState()); + enterRule(_localctx, 366, RULE_show_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(4137); + match(SHOW); + setState(4142); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 461, _ctx)) { + case 1: { + setState(4138); + ((Show_stmtContext) _localctx).name = identifier(0); + } + break; + case 2: { + setState(4139); + match(TIME); + setState(4140); + match(ZONE); + } + break; + case 3: { + setState(4141); + match(ALL); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Truncate_stmtContext extends ParserRuleContext { + public TerminalNode TRUNCATE() { + return getToken(PostgreSQLParser.TRUNCATE, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public TerminalNode TABLE() { + return getToken(PostgreSQLParser.TABLE, 0); + } + + public List ONLY() { + return getTokens(PostgreSQLParser.ONLY); + } + + public TerminalNode ONLY(int i) { + return getToken(PostgreSQLParser.ONLY, i); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public TerminalNode COMMA() { + return getToken(PostgreSQLParser.COMMA, 0); + } + + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class, 0); + } + + public TerminalNode IDENTITY() { + return getToken(PostgreSQLParser.IDENTITY, 0); + } + + public TerminalNode RESTART() { + return getToken(PostgreSQLParser.RESTART, 0); + } + + public TerminalNode CONTINUE() { + return getToken(PostgreSQLParser.CONTINUE, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public Truncate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_truncate_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTruncate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTruncate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTruncate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Truncate_stmtContext truncate_stmt() throws RecognitionException { + Truncate_stmtContext _localctx = new Truncate_stmtContext(_ctx, getState()); + enterRule(_localctx, 368, RULE_truncate_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4144); + match(TRUNCATE); + setState(4146); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == TABLE) { + { + setState(4145); + match(TABLE); + } + } + + setState(4149); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(4148); + match(ONLY); + } + } + + setState(4151); + table_name_(); + setState(4153); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(4152); + match(STAR); + } + } + + setState(4160); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(4155); + match(COMMA); + setState(4157); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(4156); + match(ONLY); + } + } + + setState(4159); + identifier_list(); + } + } + + setState(4164); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CONTINUE || _la == RESTART) { + { + setState(4162); + _la = _input.LA(1); + if (!(_la == CONTINUE || _la == RESTART)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4163); + match(IDENTITY); + } + } + + setState(4167); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CASCADE || _la == RESTRICT) { + { + setState(4166); + _la = _input.LA(1); + if (!(_la == CASCADE || _la == RESTRICT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Unlisten_stmtContext extends ParserRuleContext { + public IdentifierContext channel; + + public TerminalNode UNLISTEN() { + return getToken(PostgreSQLParser.UNLISTEN, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Unlisten_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_unlisten_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterUnlisten_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitUnlisten_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitUnlisten_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { + Unlisten_stmtContext _localctx = new Unlisten_stmtContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_unlisten_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(4169); + match(UNLISTEN); + setState(4172); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(4170); + ((Unlisten_stmtContext) _localctx).channel = identifier(0); + } + break; + case STAR: { + setState(4171); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Update_stmtContext extends ParserRuleContext { + public IdentifierContext alias_; + public IdentifierContext cursor_name_; + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public Updater_clauseContext updater_clause() { + return getRuleContext(Updater_clauseContext.class, 0); + } + + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class, 0); + } + + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class, 0); + } + + public Returning_clauseContext returning_clause() { + return getRuleContext(Returning_clauseContext.class, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public TerminalNode CURRENT() { + return getToken(PostgreSQLParser.CURRENT, 0); + } + + public TerminalNode OF() { + return getToken(PostgreSQLParser.OF, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public Update_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_update_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterUpdate_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitUpdate_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitUpdate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Update_stmtContext update_stmt() throws RecognitionException { + Update_stmtContext _localctx = new Update_stmtContext(_ctx, getState()); + enterRule(_localctx, 372, RULE_update_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4175); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(4174); + with_clause(); + } + } + + setState(4177); + match(UPDATE); + setState(4179); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(4178); + match(ONLY); + } + } + + setState(4181); + table_name_(); + setState(4183); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == STAR) { + { + setState(4182); + match(STAR); + } + } + + setState(4189); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 474, _ctx)) { + case 1: { + setState(4186); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(4185); + match(AS); + } + } + + setState(4188); + ((Update_stmtContext) _localctx).alias_ = identifier(0); + } + break; + } + setState(4191); + match(SET); + setState(4192); + updater_clause(); + setState(4194); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FROM) { + { + setState(4193); + from_clause(); + } + } + + setState(4201); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 476, _ctx)) { + case 1: { + setState(4196); + where_clause(); + } + break; + case 2: { + { + setState(4197); + match(WHERE); + setState(4198); + match(CURRENT); + setState(4199); + match(OF); + setState(4200); + ((Update_stmtContext) _localctx).cursor_name_ = identifier(0); + } + } + break; + } + setState(4204); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == RETURNING) { + { + setState(4203); + returning_clause(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Vacuum_optContext extends ParserRuleContext { + public TerminalNode FULL() { + return getToken(PostgreSQLParser.FULL, 0); + } + + public TerminalNode FREEZE() { + return getToken(PostgreSQLParser.FREEZE, 0); + } + + public TerminalNode VERBOSE() { + return getToken(PostgreSQLParser.VERBOSE, 0); + } + + public TerminalNode ANALYZE() { + return getToken(PostgreSQLParser.ANALYZE, 0); + } + + public TerminalNode DISABLE_PAGE_SKIPPING() { + return getToken(PostgreSQLParser.DISABLE_PAGE_SKIPPING, 0); + } + + public Vacuum_optContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_vacuum_opt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterVacuum_opt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitVacuum_opt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitVacuum_opt(this); + else return visitor.visitChildren(this); + } + } + + public final Vacuum_optContext vacuum_opt() throws RecognitionException { + Vacuum_optContext _localctx = new Vacuum_optContext(_ctx, getState()); + enterRule(_localctx, 374, RULE_vacuum_opt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4206); + _la = _input.LA(1); + if (!(_la == ANALYZE || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DISABLE_PAGE_SKIPPING - 180)) | (1L << (FREEZE - 180)) | (1L << (FULL - 180)))) != 0) || _la == VERBOSE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Vacuum_opt_listContext extends ParserRuleContext { + public List vacuum_opt() { + return getRuleContexts(Vacuum_optContext.class); + } + + public Vacuum_optContext vacuum_opt(int i) { + return getRuleContext(Vacuum_optContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Vacuum_opt_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_vacuum_opt_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterVacuum_opt_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitVacuum_opt_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitVacuum_opt_list(this); + else return visitor.visitChildren(this); + } + } + + public final Vacuum_opt_listContext vacuum_opt_list() throws RecognitionException { + Vacuum_opt_listContext _localctx = new Vacuum_opt_listContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_vacuum_opt_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4208); + vacuum_opt(); + setState(4213); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4209); + match(COMMA); + setState(4210); + vacuum_opt(); + } + } + setState(4215); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Vacuum_stmtContext extends ParserRuleContext { + public Table_name_Context table_name; + + public TerminalNode VACUUM() { + return getToken(PostgreSQLParser.VACUUM, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public Vacuum_opt_listContext vacuum_opt_list() { + return getRuleContext(Vacuum_opt_listContext.class, 0); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public Column_listContext column_list() { + return getRuleContext(Column_listContext.class, 0); + } + + public TerminalNode FULL() { + return getToken(PostgreSQLParser.FULL, 0); + } + + public TerminalNode FREEZE() { + return getToken(PostgreSQLParser.FREEZE, 0); + } + + public TerminalNode VERBOSE() { + return getToken(PostgreSQLParser.VERBOSE, 0); + } + + public TerminalNode ANALYZE() { + return getToken(PostgreSQLParser.ANALYZE, 0); + } + + public Vacuum_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_vacuum_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterVacuum_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitVacuum_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitVacuum_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { + Vacuum_stmtContext _localctx = new Vacuum_stmtContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_vacuum_stmt); + int _la; + try { + setState(4263); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 490, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4216); + match(VACUUM); + setState(4221); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(4217); + match(OPEN_PAREN); + setState(4218); + vacuum_opt_list(); + setState(4219); + match(CLOSE_PAREN); + } + } + + { + setState(4223); + ((Vacuum_stmtContext) _localctx).table_name = table_name_(); + setState(4228); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(4224); + match(OPEN_PAREN); + setState(4225); + column_list(); + setState(4226); + match(CLOSE_PAREN); + } + } + + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4230); + match(VACUUM); + setState(4232); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FULL) { + { + setState(4231); + match(FULL); + } + } + + setState(4235); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FREEZE) { + { + setState(4234); + match(FREEZE); + } + } + + setState(4238); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == VERBOSE) { + { + setState(4237); + match(VERBOSE); + } + } + + setState(4241); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(4240); + ((Vacuum_stmtContext) _localctx).table_name = table_name_(); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4243); + match(VACUUM); + setState(4245); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FULL) { + { + setState(4244); + match(FULL); + } + } + + setState(4248); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FREEZE) { + { + setState(4247); + match(FREEZE); + } + } + + setState(4251); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == VERBOSE) { + { + setState(4250); + match(VERBOSE); + } + } + + setState(4253); + match(ANALYZE); + setState(4261); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(4254); + ((Vacuum_stmtContext) _localctx).table_name = table_name_(); + setState(4259); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(4255); + match(OPEN_PAREN); + setState(4256); + column_list(); + setState(4257); + match(CLOSE_PAREN); + } + } + + } + } + + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Values_stmtContext extends ParserRuleContext { + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class, 0); + } + + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class, 0); + } + + public List combine_clause() { + return getRuleContexts(Combine_clauseContext.class); + } + + public Combine_clauseContext combine_clause(int i) { + return getRuleContext(Combine_clauseContext.class, i); + } + + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class, 0); + } + + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class, 0); + } + + public Fetch_clauseContext fetch_clause() { + return getRuleContext(Fetch_clauseContext.class, 0); + } + + public TerminalNode VALUES() { + return getToken(PostgreSQLParser.VALUES, 0); + } + + public Expr_list_listContext expr_list_list() { + return getRuleContext(Expr_list_listContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public Values_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_values_stmt; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterValues_stmt(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitValues_stmt(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitValues_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Values_stmtContext values_stmt() throws RecognitionException { + Values_stmtContext _localctx = new Values_stmtContext(_ctx, getState()); + enterRule(_localctx, 380, RULE_values_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4266); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(4265); + with_clause(); + } + } + + setState(4283); + _errHandler.sync(this); + switch (_input.LA(1)) { + case VALUES: { + { + setState(4268); + match(VALUES); + setState(4269); + expr_list_list(); + } + } + break; + case OPEN_PAREN: { + { + setState(4271); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(4270); + match(OPEN_PAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4273); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 492, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + setState(4275); + values_stmt(); + setState(4277); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4276); + match(CLOSE_PAREN); + } + } + setState(4279); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == CLOSE_PAREN); + setState(4281); + combine_clause(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4286); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 495, _ctx)) { + case 1: { + setState(4285); + order_by_clause(); + } + break; + } + setState(4289); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 496, _ctx)) { + case 1: { + setState(4288); + combine_clause(); + } + break; + } + setState(4292); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 497, _ctx)) { + case 1: { + setState(4291); + limit_clause(); + } + break; + } + setState(4295); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 498, _ctx)) { + case 1: { + setState(4294); + offset_clause(); + } + break; + } + setState(4298); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 499, _ctx)) { + case 1: { + setState(4297); + fetch_clause(); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Selector_clauseContext extends ParserRuleContext { + public Column_listContext column_list() { + return getRuleContext(Column_listContext.class, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode DISTINCT() { + return getToken(PostgreSQLParser.DISTINCT, 0); + } + + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class, 0); + } + + public Selector_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_selector_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterSelector_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitSelector_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitSelector_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Selector_clauseContext selector_clause() throws RecognitionException { + Selector_clauseContext _localctx = new Selector_clauseContext(_ctx, getState()); + enterRule(_localctx, 382, RULE_selector_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4306); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 501, _ctx)) { + case 1: { + setState(4300); + match(ALL); + } + break; + case 2: { + { + setState(4301); + match(DISTINCT); + setState(4304); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ON) { + { + setState(4302); + match(ON); + setState(4303); + expr_list(); + } + } + + } + } + break; + } + setState(4308); + column_list(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class From_clauseContext extends ParserRuleContext { + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public List from_item() { + return getRuleContexts(From_itemContext.class); + } + + public From_itemContext from_item(int i) { + return getRuleContext(From_itemContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public From_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_from_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFrom_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFrom_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFrom_clause(this); + else return visitor.visitChildren(this); + } + } + + public final From_clauseContext from_clause() throws RecognitionException { + From_clauseContext _localctx = new From_clauseContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_from_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4310); + match(FROM); + setState(4311); + from_item(0); + setState(4316); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 502, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4312); + match(COMMA); + setState(4313); + from_item(0); + } + } + } + setState(4318); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 502, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Where_clauseContext extends ParserRuleContext { + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class, 0); + } + + public Where_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_where_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWhere_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitWhere_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWhere_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Where_clauseContext where_clause() throws RecognitionException { + Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState()); + enterRule(_localctx, 386, RULE_where_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4319); + match(WHERE); + setState(4320); + predicate(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Group_by_clauseContext extends ParserRuleContext { + public TerminalNode GROUP() { + return getToken(PostgreSQLParser.GROUP, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public List grouping_elem() { + return getRuleContexts(Grouping_elemContext.class); + } + + public Grouping_elemContext grouping_elem(int i) { + return getRuleContext(Grouping_elemContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Group_by_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_group_by_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterGroup_by_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitGroup_by_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitGroup_by_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Group_by_clauseContext group_by_clause() throws RecognitionException { + Group_by_clauseContext _localctx = new Group_by_clauseContext(_ctx, getState()); + enterRule(_localctx, 388, RULE_group_by_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4322); + match(GROUP); + setState(4323); + match(BY); + setState(4324); + grouping_elem(); + setState(4329); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 503, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4325); + match(COMMA); + setState(4326); + grouping_elem(); + } + } + } + setState(4331); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 503, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Grouping_elemContext extends ParserRuleContext { + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public List expr_list() { + return getRuleContexts(Expr_listContext.class); + } + + public Expr_listContext expr_list(int i) { + return getRuleContext(Expr_listContext.class, i); + } + + public TerminalNode ROLLUP() { + return getToken(PostgreSQLParser.ROLLUP, 0); + } + + public TerminalNode CUBE() { + return getToken(PostgreSQLParser.CUBE, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public TerminalNode GROUPING() { + return getToken(PostgreSQLParser.GROUPING, 0); + } + + public TerminalNode SETS() { + return getToken(PostgreSQLParser.SETS, 0); + } + + public Grouping_elem_listContext grouping_elem_list() { + return getRuleContext(Grouping_elem_listContext.class, 0); + } + + public Grouping_elemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_grouping_elem; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterGrouping_elem(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitGrouping_elem(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitGrouping_elem(this); + else return visitor.visitChildren(this); + } + } + + public final Grouping_elemContext grouping_elem() throws RecognitionException { + Grouping_elemContext _localctx = new Grouping_elemContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_grouping_elem); + int _la; + try { + setState(4357); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 507, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4332); + match(OPEN_PAREN); + setState(4333); + match(CLOSE_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4334); + expr(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4335); + expr_list(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4336); + _la = _input.LA(1); + if (!(_la == CUBE || _la == ROLLUP)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4337); + match(OPEN_PAREN); + setState(4340); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 504, _ctx)) { + case 1: { + setState(4338); + expr(0); + } + break; + case 2: { + setState(4339); + expr_list(); + } + break; + } + setState(4349); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4342); + match(COMMA); + setState(4345); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 505, _ctx)) { + case 1: { + setState(4343); + expr(0); + } + break; + case 2: { + setState(4344); + expr_list(); + } + break; + } + } + } + setState(4351); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(4352); + match(CLOSE_PAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(4354); + match(GROUPING); + setState(4355); + match(SETS); + setState(4356); + grouping_elem_list(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Grouping_elem_listContext extends ParserRuleContext { + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List grouping_elem() { + return getRuleContexts(Grouping_elemContext.class); + } + + public Grouping_elemContext grouping_elem(int i) { + return getRuleContext(Grouping_elemContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Grouping_elem_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_grouping_elem_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterGrouping_elem_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitGrouping_elem_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitGrouping_elem_list(this); + else return visitor.visitChildren(this); + } + } + + public final Grouping_elem_listContext grouping_elem_list() throws RecognitionException { + Grouping_elem_listContext _localctx = new Grouping_elem_listContext(_ctx, getState()); + enterRule(_localctx, 392, RULE_grouping_elem_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4359); + match(OPEN_PAREN); + setState(4360); + grouping_elem(); + setState(4365); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4361); + match(COMMA); + setState(4362); + grouping_elem(); + } + } + setState(4367); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(4368); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Having_clauseContext extends ParserRuleContext { + public TerminalNode HAVING() { + return getToken(PostgreSQLParser.HAVING, 0); + } + + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Having_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_having_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterHaving_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitHaving_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitHaving_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Having_clauseContext having_clause() throws RecognitionException { + Having_clauseContext _localctx = new Having_clauseContext(_ctx, getState()); + enterRule(_localctx, 394, RULE_having_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4370); + match(HAVING); + setState(4371); + predicate(0); + setState(4376); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 509, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4372); + match(COMMA); + setState(4373); + predicate(0); + } + } + } + setState(4378); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 509, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Column_listContext extends ParserRuleContext { + public ExprContext column_name_; + public Name_Context output_name; + + public List STAR() { + return getTokens(PostgreSQLParser.STAR); + } + + public TerminalNode STAR(int i) { + return getToken(PostgreSQLParser.STAR, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public List AS() { + return getTokens(PostgreSQLParser.AS); + } + + public TerminalNode AS(int i) { + return getToken(PostgreSQLParser.AS, i); + } + + public Column_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_column_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterColumn_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitColumn_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitColumn_list(this); + else return visitor.visitChildren(this); + } + } + + public final Column_listContext column_list() throws RecognitionException { + Column_listContext _localctx = new Column_listContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_column_list); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4387); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALL: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ARRAY: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CASE: + case CAST: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DATE: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_ROLE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULT: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOT: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULL: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITH: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOLLAR: + case DOLLAR_DOLLAR: + case OPEN_PAREN: + case BIT_STRING: + case REGEX_STRING: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case DOLLAR_DEC: + case IDENTIFIER_UNICODE: + case AT_SIGN: + case BANG_BANG: + case MINUS: + case PLUS: + case QMARK_HYPHEN: + case TIL: { + { + setState(4379); + ((Column_listContext) _localctx).column_name_ = expr(0); + setState(4384); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 511, _ctx)) { + case 1: { + setState(4381); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(4380); + match(AS); + } + } + + setState(4383); + ((Column_listContext) _localctx).output_name = name_(); + } + break; + } + } + } + break; + case STAR: { + setState(4386); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4402); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 516, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4389); + match(COMMA); + setState(4398); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALL: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ARRAY: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CASE: + case CAST: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DATE: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_ROLE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULT: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOT: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULL: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITH: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOLLAR: + case DOLLAR_DOLLAR: + case OPEN_PAREN: + case BIT_STRING: + case REGEX_STRING: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case DOLLAR_DEC: + case IDENTIFIER_UNICODE: + case AT_SIGN: + case BANG_BANG: + case MINUS: + case PLUS: + case QMARK_HYPHEN: + case TIL: { + { + setState(4390); + ((Column_listContext) _localctx).column_name_ = expr(0); + setState(4395); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 514, _ctx)) { + case 1: { + setState(4392); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(4391); + match(AS); + } + } + + setState(4394); + ((Column_listContext) _localctx).output_name = name_(); + } + break; + } + } + } + break; + case STAR: { + setState(4397); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + } + setState(4404); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 516, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Explain_parameterContext extends ParserRuleContext { + public TerminalNode ANALYZE() { + return getToken(PostgreSQLParser.ANALYZE, 0); + } + + public TerminalNode VERBOSE() { + return getToken(PostgreSQLParser.VERBOSE, 0); + } + + public TerminalNode COSTS() { + return getToken(PostgreSQLParser.COSTS, 0); + } + + public TerminalNode BUFFERS() { + return getToken(PostgreSQLParser.BUFFERS, 0); + } + + public TerminalNode TIMING() { + return getToken(PostgreSQLParser.TIMING, 0); + } + + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class, 0); + } + + public TerminalNode FORMAT() { + return getToken(PostgreSQLParser.FORMAT, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode XML() { + return getToken(PostgreSQLParser.XML, 0); + } + + public TerminalNode JSON() { + return getToken(PostgreSQLParser.JSON, 0); + } + + public TerminalNode YAML() { + return getToken(PostgreSQLParser.YAML, 0); + } + + public Explain_parameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_explain_parameter; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterExplain_parameter(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitExplain_parameter(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExplain_parameter(this); + else return visitor.visitChildren(this); + } + } + + public final Explain_parameterContext explain_parameter() throws RecognitionException { + Explain_parameterContext _localctx = new Explain_parameterContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_explain_parameter); + int _la; + try { + setState(4411); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ANALYZE: + case BUFFERS: + case COSTS: + case TIMING: + case VERBOSE: + enterOuterAlt(_localctx, 1); + { + setState(4405); + _la = _input.LA(1); + if (!(_la == ANALYZE || _la == BUFFERS || _la == COSTS || _la == TIMING || _la == VERBOSE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4407); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(4406); + param_value(); + } + } + + } + break; + case FORMAT: + enterOuterAlt(_localctx, 2); + { + setState(4409); + match(FORMAT); + setState(4410); + _la = _input.LA(1); + if (!(_la == YAML || ((((_la - 734)) & ~0x3f) == 0 && ((1L << (_la - 734)) & ((1L << (JSON - 734)) | (1L << (TEXT - 734)) | (1L << (XML - 734)))) != 0))) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class FrameContext extends ParserRuleContext { + public TerminalNode UNBOUNDED() { + return getToken(PostgreSQLParser.UNBOUNDED, 0); + } + + public TerminalNode PRECEDING() { + return getToken(PostgreSQLParser.PRECEDING, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode CURRENT() { + return getToken(PostgreSQLParser.CURRENT, 0); + } + + public TerminalNode ROW() { + return getToken(PostgreSQLParser.ROW, 0); + } + + public TerminalNode FOLLOWING() { + return getToken(PostgreSQLParser.FOLLOWING, 0); + } + + public FrameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_frame; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterFrame(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFrame(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFrame(this); + else return visitor.visitChildren(this); + } + } + + public final FrameContext frame() throws RecognitionException { + FrameContext _localctx = new FrameContext(_ctx, getState()); + enterRule(_localctx, 400, RULE_frame); + try { + setState(4423); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 519, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4413); + match(UNBOUNDED); + setState(4414); + match(PRECEDING); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4415); + match(INTEGER_LITERAL); + setState(4416); + match(PRECEDING); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4417); + match(CURRENT); + setState(4418); + match(ROW); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4419); + match(INTEGER_LITERAL); + setState(4420); + match(FOLLOWING); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(4421); + match(UNBOUNDED); + setState(4422); + match(FOLLOWING); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Frame_startContext extends ParserRuleContext { + public FrameContext frame() { + return getRuleContext(FrameContext.class, 0); + } + + public Frame_startContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_frame_start; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFrame_start(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFrame_start(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFrame_start(this); + else return visitor.visitChildren(this); + } + } + + public final Frame_startContext frame_start() throws RecognitionException { + Frame_startContext _localctx = new Frame_startContext(_ctx, getState()); + enterRule(_localctx, 402, RULE_frame_start); + try { + enterOuterAlt(_localctx, 1); + { + setState(4425); + frame(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Frame_endContext extends ParserRuleContext { + public FrameContext frame() { + return getRuleContext(FrameContext.class, 0); + } + + public Frame_endContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_frame_end; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFrame_end(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFrame_end(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFrame_end(this); + else return visitor.visitChildren(this); + } + } + + public final Frame_endContext frame_end() throws RecognitionException { + Frame_endContext _localctx = new Frame_endContext(_ctx, getState()); + enterRule(_localctx, 404, RULE_frame_end); + try { + enterOuterAlt(_localctx, 1); + { + setState(4427); + frame(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Frame_clauseContext extends ParserRuleContext { + public Frame_startContext frame_start() { + return getRuleContext(Frame_startContext.class, 0); + } + + public TerminalNode RANGE() { + return getToken(PostgreSQLParser.RANGE, 0); + } + + public TerminalNode ROWS() { + return getToken(PostgreSQLParser.ROWS, 0); + } + + public TerminalNode BETWEEN() { + return getToken(PostgreSQLParser.BETWEEN, 0); + } + + public TerminalNode AND() { + return getToken(PostgreSQLParser.AND, 0); + } + + public Frame_endContext frame_end() { + return getRuleContext(Frame_endContext.class, 0); + } + + public Frame_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_frame_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFrame_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFrame_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFrame_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Frame_clauseContext frame_clause() throws RecognitionException { + Frame_clauseContext _localctx = new Frame_clauseContext(_ctx, getState()); + enterRule(_localctx, 406, RULE_frame_clause); + int _la; + try { + setState(4437); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 520, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4429); + _la = _input.LA(1); + if (!(_la == RANGE || _la == ROWS)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4430); + frame_start(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4431); + _la = _input.LA(1); + if (!(_la == RANGE || _la == ROWS)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4432); + match(BETWEEN); + setState(4433); + frame_start(); + setState(4434); + match(AND); + setState(4435); + frame_end(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Window_definitionContext extends ParserRuleContext { + public Window_nameContext window_name() { + return getRuleContext(Window_nameContext.class, 0); + } + + public TerminalNode PARTITION() { + return getToken(PostgreSQLParser.PARTITION, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class, 0); + } + + public Window_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_window_definition; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWindow_definition(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitWindow_definition(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWindow_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Window_definitionContext window_definition() throws RecognitionException { + Window_definitionContext _localctx = new Window_definitionContext(_ctx, getState()); + enterRule(_localctx, 408, RULE_window_definition); + int _la; + try { + setState(4451); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 522, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4439); + window_name(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4440); + match(PARTITION); + setState(4441); + match(BY); + setState(4442); + expr(0); + setState(4447); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4443); + match(COMMA); + setState(4444); + expr(0); + } + } + setState(4449); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4450); + order_by_clause(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Window_clauseContext extends ParserRuleContext { + public TerminalNode WINDOW() { + return getToken(PostgreSQLParser.WINDOW, 0); + } + + public Window_nameContext window_name() { + return getRuleContext(Window_nameContext.class, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Window_definitionContext window_definition() { + return getRuleContext(Window_definitionContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Window_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_window_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWindow_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitWindow_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWindow_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Window_clauseContext window_clause() throws RecognitionException { + Window_clauseContext _localctx = new Window_clauseContext(_ctx, getState()); + enterRule(_localctx, 410, RULE_window_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4453); + match(WINDOW); + setState(4454); + window_name(); + setState(4455); + match(AS); + setState(4456); + match(OPEN_PAREN); + setState(4457); + window_definition(); + setState(4458); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Combine_clauseContext extends ParserRuleContext { + public TerminalNode UNION() { + return getToken(PostgreSQLParser.UNION, 0); + } + + public TerminalNode INTERSECT() { + return getToken(PostgreSQLParser.INTERSECT, 0); + } + + public TerminalNode EXCEPT() { + return getToken(PostgreSQLParser.EXCEPT, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public Combine_clauseContext combine_clause() { + return getRuleContext(Combine_clauseContext.class, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode DISTINCT() { + return getToken(PostgreSQLParser.DISTINCT, 0); + } + + public Combine_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_combine_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCombine_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCombine_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCombine_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Combine_clauseContext combine_clause() throws RecognitionException { + Combine_clauseContext _localctx = new Combine_clauseContext(_ctx, getState()); + enterRule(_localctx, 412, RULE_combine_clause); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4460); + _la = _input.LA(1); + if (!(_la == EXCEPT || _la == INTERSECT || _la == UNION)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4462); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ALL || _la == DISTINCT) { + { + setState(4461); + _la = _input.LA(1); + if (!(_la == ALL || _la == DISTINCT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(4467); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 524, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4464); + match(OPEN_PAREN); + } + } + } + setState(4469); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 524, _ctx); + } + setState(4472); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 525, _ctx)) { + case 1: { + setState(4470); + select_stmt(); + } + break; + case 2: { + setState(4471); + values_stmt(); + } + break; + } + setState(4477); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 526, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4474); + match(CLOSE_PAREN); + } + } + } + setState(4479); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 526, _ctx); + } + setState(4481); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 527, _ctx)) { + case 1: { + setState(4480); + combine_clause(); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Order_by_clauseContext extends ParserRuleContext { + public TerminalNode ORDER() { + return getToken(PostgreSQLParser.ORDER, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public List order_by_item() { + return getRuleContexts(Order_by_itemContext.class); + } + + public Order_by_itemContext order_by_item(int i) { + return getRuleContext(Order_by_itemContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Order_by_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_order_by_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterOrder_by_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitOrder_by_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitOrder_by_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Order_by_clauseContext order_by_clause() throws RecognitionException { + Order_by_clauseContext _localctx = new Order_by_clauseContext(_ctx, getState()); + enterRule(_localctx, 414, RULE_order_by_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4483); + match(ORDER); + setState(4484); + match(BY); + setState(4485); + order_by_item(); + setState(4490); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 528, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4486); + match(COMMA); + setState(4487); + order_by_item(); + } + } + } + setState(4492); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 528, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Order_by_itemContext extends ParserRuleContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public TerminalNode DOUBLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); + } + + public TerminalNode ASC() { + return getToken(PostgreSQLParser.ASC, 0); + } + + public TerminalNode DESC() { + return getToken(PostgreSQLParser.DESC, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public List NULLS() { + return getTokens(PostgreSQLParser.NULLS); + } + + public TerminalNode NULLS(int i) { + return getToken(PostgreSQLParser.NULLS, i); + } + + public List FIRST() { + return getTokens(PostgreSQLParser.FIRST); + } + + public TerminalNode FIRST(int i) { + return getToken(PostgreSQLParser.FIRST, i); + } + + public List LAST() { + return getTokens(PostgreSQLParser.LAST); + } + + public TerminalNode LAST(int i) { + return getToken(PostgreSQLParser.LAST, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Order_by_itemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_order_by_item; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterOrder_by_item(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitOrder_by_item(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitOrder_by_item(this); + else return visitor.visitChildren(this); + } + } + + public final Order_by_itemContext order_by_item() throws RecognitionException { + Order_by_itemContext _localctx = new Order_by_itemContext(_ctx, getState()); + enterRule(_localctx, 416, RULE_order_by_item); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4495); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 529, _ctx)) { + case 1: { + setState(4493); + expr(0); + } + break; + case 2: { + setState(4494); + match(DOUBLEQ_STRING_LITERAL); + } + break; + } + setState(4501); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 530, _ctx)) { + case 1: { + setState(4497); + match(ASC); + } + break; + case 2: { + setState(4498); + match(DESC); + } + break; + case 3: { + setState(4499); + match(USING); + setState(4500); + expr(0); + } + break; + } + setState(4514); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 532, _ctx)) { + case 1: { + { + setState(4503); + match(NULLS); + setState(4504); + _la = _input.LA(1); + if (!(_la == FIRST || _la == LAST)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + setState(4511); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 531, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4506); + match(COMMA); + { + setState(4507); + match(NULLS); + setState(4508); + _la = _input.LA(1); + if (!(_la == FIRST || _la == LAST)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + } + } + setState(4513); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 531, _ctx); + } + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Limit_clauseContext extends ParserRuleContext { + public TerminalNode LIMIT() { + return getToken(PostgreSQLParser.LIMIT, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public Func_callContext func_call() { + return getRuleContext(Func_callContext.class, 0); + } + + public Limit_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_limit_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterLimit_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitLimit_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitLimit_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Limit_clauseContext limit_clause() throws RecognitionException { + Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState()); + enterRule(_localctx, 418, RULE_limit_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4516); + match(LIMIT); + setState(4520); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INTEGER_LITERAL: { + setState(4517); + match(INTEGER_LITERAL); + } + break; + case ALL: { + setState(4518); + match(ALL); + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(4519); + func_call(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Offset_clauseContext extends ParserRuleContext { + public TerminalNode OFFSET() { + return getToken(PostgreSQLParser.OFFSET, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode ROW() { + return getToken(PostgreSQLParser.ROW, 0); + } + + public TerminalNode ROWS() { + return getToken(PostgreSQLParser.ROWS, 0); + } + + public Offset_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_offset_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterOffset_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitOffset_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitOffset_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Offset_clauseContext offset_clause() throws RecognitionException { + Offset_clauseContext _localctx = new Offset_clauseContext(_ctx, getState()); + enterRule(_localctx, 420, RULE_offset_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4522); + match(OFFSET); + setState(4523); + match(INTEGER_LITERAL); + setState(4525); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 534, _ctx)) { + case 1: { + setState(4524); + _la = _input.LA(1); + if (!(_la == ROW || _la == ROWS)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_clauseContext extends ParserRuleContext { + public TerminalNode FETCH() { + return getToken(PostgreSQLParser.FETCH, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode FIRST() { + return getToken(PostgreSQLParser.FIRST, 0); + } + + public TerminalNode NEXT() { + return getToken(PostgreSQLParser.NEXT, 0); + } + + public TerminalNode ROW() { + return getToken(PostgreSQLParser.ROW, 0); + } + + public TerminalNode ROWS() { + return getToken(PostgreSQLParser.ROWS, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public Fetch_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_fetch_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFetch_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFetch_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFetch_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Fetch_clauseContext fetch_clause() throws RecognitionException { + Fetch_clauseContext _localctx = new Fetch_clauseContext(_ctx, getState()); + enterRule(_localctx, 422, RULE_fetch_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4527); + match(FETCH); + setState(4528); + _la = _input.LA(1); + if (!(_la == FIRST || _la == NEXT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4530); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INTEGER_LITERAL) { + { + setState(4529); + match(INTEGER_LITERAL); + } + } + + setState(4532); + _la = _input.LA(1); + if (!(_la == ROW || _la == ROWS)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4533); + match(ONLY); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class For_clauseContext extends ParserRuleContext { + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public TerminalNode NO() { + return getToken(PostgreSQLParser.NO, 0); + } + + public TerminalNode KEY() { + return getToken(PostgreSQLParser.KEY, 0); + } + + public TerminalNode SHARE() { + return getToken(PostgreSQLParser.SHARE, 0); + } + + public TerminalNode OF() { + return getToken(PostgreSQLParser.OF, 0); + } + + public List table_name_() { + return getRuleContexts(Table_name_Context.class); + } + + public Table_name_Context table_name_(int i) { + return getRuleContext(Table_name_Context.class, i); + } + + public List NOWAIT() { + return getTokens(PostgreSQLParser.NOWAIT); + } + + public TerminalNode NOWAIT(int i) { + return getToken(PostgreSQLParser.NOWAIT, i); + } + + public List SKIP_() { + return getTokens(PostgreSQLParser.SKIP_); + } + + public TerminalNode SKIP_(int i) { + return getToken(PostgreSQLParser.SKIP_, i); + } + + public List LOCKED() { + return getTokens(PostgreSQLParser.LOCKED); + } + + public TerminalNode LOCKED(int i) { + return getToken(PostgreSQLParser.LOCKED, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public For_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_for_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFor_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFor_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFor_clause(this); + else return visitor.visitChildren(this); + } + } + + public final For_clauseContext for_clause() throws RecognitionException { + For_clauseContext _localctx = new For_clauseContext(_ctx, getState()); + enterRule(_localctx, 424, RULE_for_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4535); + match(FOR); + setState(4543); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UPDATE: { + setState(4536); + match(UPDATE); + } + break; + case NO: { + setState(4537); + match(NO); + setState(4538); + match(KEY); + setState(4539); + match(UPDATE); + } + break; + case SHARE: { + setState(4540); + match(SHARE); + } + break; + case KEY: { + setState(4541); + match(KEY); + setState(4542); + match(SHARE); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4554); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 538, _ctx)) { + case 1: { + setState(4545); + match(OF); + setState(4546); + table_name_(); + setState(4551); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 537, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4547); + match(COMMA); + setState(4548); + table_name_(); + } + } + } + setState(4553); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 537, _ctx); + } + } + break; + } + setState(4561); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 540, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + setState(4559); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NOWAIT: { + setState(4556); + match(NOWAIT); + } + break; + case SKIP_: { + setState(4557); + match(SKIP_); + setState(4558); + match(LOCKED); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(4563); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 540, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Updater_clauseContext extends ParserRuleContext { + public List updater_expr() { + return getRuleContexts(Updater_exprContext.class); + } + + public Updater_exprContext updater_expr(int i) { + return getRuleContext(Updater_exprContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Updater_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_updater_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterUpdater_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitUpdater_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitUpdater_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Updater_clauseContext updater_clause() throws RecognitionException { + Updater_clauseContext _localctx = new Updater_clauseContext(_ctx, getState()); + enterRule(_localctx, 426, RULE_updater_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4564); + updater_expr(); + setState(4569); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4565); + match(COMMA); + setState(4566); + updater_expr(); + } + } + setState(4571); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Updater_exprContext extends ParserRuleContext { + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class, 0); + } + + public Updater_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_updater_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterUpdater_expr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitUpdater_expr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitUpdater_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Updater_exprContext updater_expr() throws RecognitionException { + Updater_exprContext _localctx = new Updater_exprContext(_ctx, getState()); + enterRule(_localctx, 428, RULE_updater_expr); + try { + setState(4581); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 543, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4572); + expr(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(4573); + match(OPEN_PAREN); + setState(4574); + name_list(); + setState(4575); + match(CLOSE_PAREN); + setState(4576); + match(EQUAL); + setState(4579); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 542, _ctx)) { + case 1: { + setState(4577); + expr(0); + } + break; + case 2: { + setState(4578); + expr_list(); + } + break; + } + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Returning_clauseContext extends ParserRuleContext { + public TerminalNode RETURNING() { + return getToken(PostgreSQLParser.RETURNING, 0); + } + + public Column_listContext column_list() { + return getRuleContext(Column_listContext.class, 0); + } + + public Returning_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_returning_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterReturning_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitReturning_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitReturning_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Returning_clauseContext returning_clause() throws RecognitionException { + Returning_clauseContext _localctx = new Returning_clauseContext(_ctx, getState()); + enterRule(_localctx, 430, RULE_returning_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4583); + match(RETURNING); + setState(4584); + column_list(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class ExprContext extends ParserRuleContext { + public Token op; + + public TerminalNode NULL() { + return getToken(PostgreSQLParser.NULL, 0); + } + + public TerminalNode CURRENT_DATE() { + return getToken(PostgreSQLParser.CURRENT_DATE, 0); + } + + public TerminalNode CURRENT_ROLE() { + return getToken(PostgreSQLParser.CURRENT_ROLE, 0); + } + + public TerminalNode CURRENT_TIME() { + return getToken(PostgreSQLParser.CURRENT_TIME, 0); + } + + public TerminalNode CURRENT_TIMESTAMP() { + return getToken(PostgreSQLParser.CURRENT_TIMESTAMP, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode DEFAULT() { + return getToken(PostgreSQLParser.DEFAULT, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode HEX_INTEGER_LITERAL() { + return getToken(PostgreSQLParser.HEX_INTEGER_LITERAL, 0); + } + + public TerminalNode NUMERIC_LITERAL() { + return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode BIT_STRING() { + return getToken(PostgreSQLParser.BIT_STRING, 0); + } + + public TerminalNode REGEX_STRING() { + return getToken(PostgreSQLParser.REGEX_STRING, 0); + } + + public List DOLLAR_DOLLAR() { + return getTokens(PostgreSQLParser.DOLLAR_DOLLAR); + } + + public TerminalNode DOLLAR_DOLLAR(int i) { + return getToken(PostgreSQLParser.DOLLAR_DOLLAR, i); + } + + public List DOLLAR() { + return getTokens(PostgreSQLParser.DOLLAR); + } + + public TerminalNode DOLLAR(int i) { + return getToken(PostgreSQLParser.DOLLAR, i); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public Bool_exprContext bool_expr() { + return getRuleContext(Bool_exprContext.class, 0); + } + + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class, 0); + } + + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Type_nameContext type_name() { + return getRuleContext(Type_nameContext.class, 0); + } + + public TerminalNode BANG_BANG() { + return getToken(PostgreSQLParser.BANG_BANG, 0); + } + + public TerminalNode AT_SIGN() { + return getToken(PostgreSQLParser.AT_SIGN, 0); + } + + public TerminalNode PLUS() { + return getToken(PostgreSQLParser.PLUS, 0); + } + + public TerminalNode MINUS() { + return getToken(PostgreSQLParser.MINUS, 0); + } + + public TerminalNode TIL() { + return getToken(PostgreSQLParser.TIL, 0); + } + + public TerminalNode QMARK_HYPHEN() { + return getToken(PostgreSQLParser.QMARK_HYPHEN, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public Func_callContext func_call() { + return getRuleContext(Func_callContext.class, 0); + } + + public TerminalNode CAST() { + return getToken(PostgreSQLParser.CAST, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List data_type() { + return getRuleContexts(Data_typeContext.class); + } + + public Data_typeContext data_type(int i) { + return getRuleContext(Data_typeContext.class, i); + } + + public Correlation_nameContext correlation_name() { + return getRuleContext(Correlation_nameContext.class, 0); + } + + public TerminalNode DOT() { + return getToken(PostgreSQLParser.DOT, 0); + } + + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class, 0); + } + + public Case_exprContext case_expr() { + return getRuleContext(Case_exprContext.class, 0); + } + + public AggregateContext aggregate() { + return getRuleContext(AggregateContext.class, 0); + } + + public Array_cons_exprContext array_cons_expr() { + return getRuleContext(Array_cons_exprContext.class, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode DOLLAR_DEC() { + return getToken(PostgreSQLParser.DOLLAR_DEC, 0); + } + + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class, 0); + } + + public TerminalNode CARET() { + return getToken(PostgreSQLParser.CARET, 0); + } + + public TerminalNode PIPE_SLASH() { + return getToken(PostgreSQLParser.PIPE_SLASH, 0); + } + + public TerminalNode PIPE_PIPE_SLASH() { + return getToken(PostgreSQLParser.PIPE_PIPE_SLASH, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public TerminalNode SLASH() { + return getToken(PostgreSQLParser.SLASH, 0); + } + + public TerminalNode PERCENT() { + return getToken(PostgreSQLParser.PERCENT, 0); + } + + public TerminalNode AMP() { + return getToken(PostgreSQLParser.AMP, 0); + } + + public TerminalNode PIPE() { + return getToken(PostgreSQLParser.PIPE, 0); + } + + public TerminalNode HASH() { + return getToken(PostgreSQLParser.HASH, 0); + } + + public TerminalNode LT_LT() { + return getToken(PostgreSQLParser.LT_LT, 0); + } + + public TerminalNode LT_LT_EQ() { + return getToken(PostgreSQLParser.LT_LT_EQ, 0); + } + + public TerminalNode GT_GT() { + return getToken(PostgreSQLParser.GT_GT, 0); + } + + public TerminalNode AT_AT() { + return getToken(PostgreSQLParser.AT_AT, 0); + } + + public TerminalNode LT_HYPHEN_GT() { + return getToken(PostgreSQLParser.LT_HYPHEN_GT, 0); + } + + public TerminalNode AT_GT() { + return getToken(PostgreSQLParser.AT_GT, 0); + } + + public TerminalNode LT_AT() { + return getToken(PostgreSQLParser.LT_AT, 0); + } + + public TerminalNode TIL_EQ() { + return getToken(PostgreSQLParser.TIL_EQ, 0); + } + + public TerminalNode TIL_STAR() { + return getToken(PostgreSQLParser.TIL_STAR, 0); + } + + public TerminalNode TIL_TIL() { + return getToken(PostgreSQLParser.TIL_TIL, 0); + } + + public TerminalNode TIL_LT_TIL() { + return getToken(PostgreSQLParser.TIL_LT_TIL, 0); + } + + public TerminalNode TIL_GT_TIL() { + return getToken(PostgreSQLParser.TIL_GT_TIL, 0); + } + + public TerminalNode TIL_LTE_TIL() { + return getToken(PostgreSQLParser.TIL_LTE_TIL, 0); + } + + public TerminalNode TIL_GTE_TIL() { + return getToken(PostgreSQLParser.TIL_GTE_TIL, 0); + } + + public TerminalNode LT_QMARK_GT() { + return getToken(PostgreSQLParser.LT_QMARK_GT, 0); + } + + public TerminalNode HYPHEN_GT() { + return getToken(PostgreSQLParser.HYPHEN_GT, 0); + } + + public TerminalNode HYPHEN_GT_GT() { + return getToken(PostgreSQLParser.HYPHEN_GT_GT, 0); + } + + public TerminalNode HASH_HASH() { + return getToken(PostgreSQLParser.HASH_HASH, 0); + } + + public TerminalNode HASH_GT() { + return getToken(PostgreSQLParser.HASH_GT, 0); + } + + public TerminalNode HASH_GT_GT() { + return getToken(PostgreSQLParser.HASH_GT_GT, 0); + } + + public TerminalNode QMARK() { + return getToken(PostgreSQLParser.QMARK, 0); + } + + public TerminalNode QMARK_PIPE() { + return getToken(PostgreSQLParser.QMARK_PIPE, 0); + } + + public TerminalNode QMARK_AMP() { + return getToken(PostgreSQLParser.QMARK_AMP, 0); + } + + public TerminalNode QMARK_HASH() { + return getToken(PostgreSQLParser.QMARK_HASH, 0); + } + + public TerminalNode LT_CARET() { + return getToken(PostgreSQLParser.LT_CARET, 0); + } + + public TerminalNode AMP_LT() { + return getToken(PostgreSQLParser.AMP_LT, 0); + } + + public TerminalNode HYPHEN_PIPE_HYPHEN() { + return getToken(PostgreSQLParser.HYPHEN_PIPE_HYPHEN, 0); + } + + public TerminalNode HASH_EQ() { + return getToken(PostgreSQLParser.HASH_EQ, 0); + } + + public TerminalNode AMP_AMP() { + return getToken(PostgreSQLParser.AMP_AMP, 0); + } + + public TerminalNode PIPE_PIPE() { + return getToken(PostgreSQLParser.PIPE_PIPE, 0); + } + + public TerminalNode EQUAL_GT() { + return getToken(PostgreSQLParser.EQUAL_GT, 0); + } + + public TerminalNode AND() { + return getToken(PostgreSQLParser.AND, 0); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public TerminalNode LIKE() { + return getToken(PostgreSQLParser.LIKE, 0); + } + + public TerminalNode BETWEEN() { + return getToken(PostgreSQLParser.BETWEEN, 0); + } + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public TerminalNode LT() { + return getToken(PostgreSQLParser.LT, 0); + } + + public TerminalNode GT() { + return getToken(PostgreSQLParser.GT, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public TerminalNode LTE() { + return getToken(PostgreSQLParser.LTE, 0); + } + + public TerminalNode GTE() { + return getToken(PostgreSQLParser.GTE, 0); + } + + public TerminalNode LT_GT() { + return getToken(PostgreSQLParser.LT_GT, 0); + } + + public TerminalNode BANG_EQUAL() { + return getToken(PostgreSQLParser.BANG_EQUAL, 0); + } + + public TerminalNode IS() { + return getToken(PostgreSQLParser.IS, 0); + } + + public TerminalNode DISTINCT() { + return getToken(PostgreSQLParser.DISTINCT, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public List OPEN_BRACKET() { + return getTokens(PostgreSQLParser.OPEN_BRACKET); + } + + public TerminalNode OPEN_BRACKET(int i) { + return getToken(PostgreSQLParser.OPEN_BRACKET, i); + } + + public List CLOSE_BRACKET() { + return getTokens(PostgreSQLParser.CLOSE_BRACKET); + } + + public TerminalNode CLOSE_BRACKET(int i) { + return getToken(PostgreSQLParser.CLOSE_BRACKET, i); + } + + public TerminalNode BANG() { + return getToken(PostgreSQLParser.BANG, 0); + } + + public List COLON() { + return getTokens(PostgreSQLParser.COLON); + } + + public TerminalNode COLON(int i) { + return getToken(PostgreSQLParser.COLON, i); + } + + public List COLON_COLON() { + return getTokens(PostgreSQLParser.COLON_COLON); + } + + public TerminalNode COLON_COLON(int i) { + return getToken(PostgreSQLParser.COLON_COLON, i); + } + + public TerminalNode OF() { + return getToken(PostgreSQLParser.OF, 0); + } + + public TerminalNode AT() { + return getToken(PostgreSQLParser.AT, 0); + } + + public TerminalNode TIME() { + return getToken(PostgreSQLParser.TIME, 0); + } + + public TerminalNode ZONE() { + return getToken(PostgreSQLParser.ZONE, 0); + } + + public ExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterExpr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitExpr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExpr(this); + else return visitor.visitChildren(this); + } + } + + public final ExprContext expr() throws RecognitionException { + return expr(0); + } + + private ExprContext expr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExprContext _localctx = new ExprContext(_ctx, _parentState); + ExprContext _prevctx = _localctx; + int _startState = 432; + enterRecursionRule(_localctx, 432, RULE_expr, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4660); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 546, _ctx)) { + case 1: { + setState(4587); + match(NULL); + } + break; + case 2: { + setState(4588); + match(CURRENT_DATE); + } + break; + case 3: { + setState(4589); + match(CURRENT_ROLE); + } + break; + case 4: { + setState(4590); + match(CURRENT_TIME); + } + break; + case 5: { + setState(4591); + match(CURRENT_TIMESTAMP); + } + break; + case 6: { + setState(4592); + match(CURRENT_USER); + } + break; + case 7: { + setState(4593); + match(DEFAULT); + } + break; + case 8: { + setState(4594); + match(INTEGER_LITERAL); + } + break; + case 9: { + setState(4595); + match(HEX_INTEGER_LITERAL); + } + break; + case 10: { + setState(4596); + match(NUMERIC_LITERAL); + } + break; + case 11: { + setState(4597); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 12: { + setState(4598); + match(BIT_STRING); + } + break; + case 13: { + setState(4599); + match(REGEX_STRING); + } + break; + case 14: { + setState(4600); + match(DOLLAR_DOLLAR); + setState(4602); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(4601); + _la = _input.LA(1); + if (_la <= 0 || (_la == DOLLAR)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4604); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 544, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + setState(4606); + match(DOLLAR_DOLLAR); + } + break; + case 15: { + setState(4607); + match(DOLLAR); + setState(4608); + identifier(0); + setState(4610); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4609); + _la = _input.LA(1); + if (_la <= 0 || (_la == DOLLAR)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + setState(4612); + _errHandler.sync(this); + _la = _input.LA(1); + } while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << BLOCK_COMMENT) | (1L << LINE_COMMENT) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANALYSE) | (1L << ANALYZE) | (1L << AND) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << AS) | (1L << ASC) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << ASYMMETRIC) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AUTHORIZATION) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BINARY) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BITVAR) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BOTH) | (1L << BREADTH) | (1L << BUFFERS) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECK - 64)) | (1L << (CHECKED - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATE - 64)) | (1L << (COLLATION - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (COMPLETION - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONFIGURATION - 64)) | (1L << (CONFLICT - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COSTS - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)) | (1L << (CREATE - 64)) | (1L << (CREATEDB - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CREATEUSER - 128)) | (1L << (CROSS - 128)) | (1L << (CSV - 128)) | (1L << (CUBE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 128)) | (1L << (CURRENT_PATH - 128)) | (1L << (CURRENT_ROLE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (CYCLE - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME_INTERVAL_CODE - 128)) | (1L << (DATETIME_INTERVAL_PRECISION - 128)) | (1L << (DAY - 128)) | (1L << (DEALLOCATE - 128)) | (1L << (DEC - 128)) | (1L << (DECIMAL - 128)) | (1L << (DECLARE - 128)) | (1L << (DEFAULT - 128)) | (1L << (DEFAULTS - 128)) | (1L << (DEFERABLE - 128)) | (1L << (DEFERRABLE - 128)) | (1L << (DEFERRED - 128)) | (1L << (DEFINED - 128)) | (1L << (DEFINER - 128)) | (1L << (DEGREE - 128)) | (1L << (DELETE - 128)) | (1L << (DELIMITER - 128)) | (1L << (DELIMITERS - 128)) | (1L << (DENSE_RANK - 128)) | (1L << (DEPENDS - 128)) | (1L << (DEPTH - 128)) | (1L << (DEREF - 128)) | (1L << (DERIVED - 128)) | (1L << (DESC - 128)) | (1L << (DESCRIBE - 128)) | (1L << (DESCRIPTOR - 128)) | (1L << (DESTROY - 128)) | (1L << (DESTRUCTOR - 128)) | (1L << (DETERMINISTIC - 128)) | (1L << (DIAGNOSTICS - 128)) | (1L << (DICTIONARY - 128)) | (1L << (DISABLE - 128)) | (1L << (DISABLE_PAGE_SKIPPING - 128)) | (1L << (DISCARD - 128)) | (1L << (DISCONNECT - 128)) | (1L << (DISPATCH - 128)) | (1L << (DISTINCT - 128)) | (1L << (DO - 128)) | (1L << (DOMAIN - 128)) | (1L << (DOUBLE - 128)) | (1L << (DROP - 128)) | (1L << (DYNAMIC - 128)) | (1L << (DYNAMIC_FUNCTION - 128)) | (1L << (DYNAMIC_FUNCTION_CODE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (EACH - 192)) | (1L << (ELEMENT - 192)) | (1L << (ELSE - 192)) | (1L << (ENABLE - 192)) | (1L << (ENCODING - 192)) | (1L << (ENCRYPTED - 192)) | (1L << (END - 192)) | (1L << (END_EXEC - 192)) | (1L << (EQUALS - 192)) | (1L << (ESCAPE - 192)) | (1L << (EVERY - 192)) | (1L << (EXCEPT - 192)) | (1L << (EXCEPTION - 192)) | (1L << (EXCLUDE - 192)) | (1L << (EXCLUDING - 192)) | (1L << (EXCLUSIVE - 192)) | (1L << (EXEC - 192)) | (1L << (EXECUTE - 192)) | (1L << (EXISTING - 192)) | (1L << (EXISTS - 192)) | (1L << (EXP - 192)) | (1L << (EXPLAIN - 192)) | (1L << (EXTENDED - 192)) | (1L << (EXTENSION - 192)) | (1L << (EXTERNAL - 192)) | (1L << (EXTRACT - 192)) | (1L << (FALSE - 192)) | (1L << (FETCH - 192)) | (1L << (FIELDS - 192)) | (1L << (FILTER - 192)) | (1L << (FINAL - 192)) | (1L << (FIRST - 192)) | (1L << (FLOAT - 192)) | (1L << (FLOOR - 192)) | (1L << (FOLLOWING - 192)) | (1L << (FOR - 192)) | (1L << (FORCE - 192)) | (1L << (FOREIGN - 192)) | (1L << (FORMAT - 192)) | (1L << (FORTRAN - 192)) | (1L << (FORWARD - 192)) | (1L << (FOUND - 192)) | (1L << (FREE - 192)) | (1L << (FREEZE - 192)) | (1L << (FROM - 192)) | (1L << (FULL - 192)) | (1L << (FUNCTION - 192)) | (1L << (FUSION - 192)) | (1L << (G_ - 192)) | (1L << (GENERAL - 192)) | (1L << (GENERATED - 192)) | (1L << (GET - 192)) | (1L << (GLOBAL - 192)) | (1L << (GO - 192)) | (1L << (GOTO - 192)) | (1L << (GRANT - 192)) | (1L << (GRANTED - 192)) | (1L << (GREATEST - 192)) | (1L << (GROUP - 192)) | (1L << (GROUPING - 192)) | (1L << (HANDLER - 192)) | (1L << (HAVING - 192)) | (1L << (HIERARCHY - 192)) | (1L << (HOLD - 192)))) != 0) || ((((_la - 256)) & ~0x3f) == 0 && ((1L << (_la - 256)) & ((1L << (HOST - 256)) | (1L << (HOUR - 256)) | (1L << (IDENTITY - 256)) | (1L << (IGNORE - 256)) | (1L << (ILIKE - 256)) | (1L << (IMMEDIATE - 256)) | (1L << (IMMUTABLE - 256)) | (1L << (IMPLEMENTATION - 256)) | (1L << (IMPLICIT - 256)) | (1L << (IN - 256)) | (1L << (INCLUDING - 256)) | (1L << (INCREMENT - 256)) | (1L << (INDEX - 256)) | (1L << (INDICATOR - 256)) | (1L << (INFIX - 256)) | (1L << (INHERITS - 256)) | (1L << (INITIALIZE - 256)) | (1L << (INITIALLY - 256)) | (1L << (INNER - 256)) | (1L << (INOUT - 256)) | (1L << (INPUT - 256)) | (1L << (INSENSITIVE - 256)) | (1L << (INSERT - 256)) | (1L << (INSTANCE - 256)) | (1L << (INSTANTIABLE - 256)) | (1L << (INSTEAD - 256)) | (1L << (INT - 256)) | (1L << (INTEGER - 256)) | (1L << (INTERSECT - 256)) | (1L << (INTERSECTION - 256)) | (1L << (INTERVAL - 256)) | (1L << (INTO - 256)) | (1L << (INVOKER - 256)) | (1L << (IS - 256)) | (1L << (ISOLATION - 256)) | (1L << (ITERATE - 256)) | (1L << (JOIN - 256)) | (1L << (K_ - 256)) | (1L << (KEY - 256)) | (1L << (KEY_MEMBER - 256)) | (1L << (KEY_TYPE - 256)) | (1L << (LABEL - 256)) | (1L << (LANCOMPILER - 256)) | (1L << (LANGUAGE - 256)) | (1L << (LARGE - 256)) | (1L << (LAST - 256)) | (1L << (LATERAL - 256)) | (1L << (LEADING - 256)) | (1L << (LEAST - 256)) | (1L << (LEFT - 256)) | (1L << (LENGTH - 256)) | (1L << (LESS - 256)) | (1L << (LEVEL - 256)) | (1L << (LIKE - 256)) | (1L << (LIMIT - 256)) | (1L << (LISTEN - 256)) | (1L << (LN - 256)) | (1L << (LOAD - 256)) | (1L << (LOCAL - 256)) | (1L << (LOCALTIME - 256)) | (1L << (LOCALTIMESTAMP - 256)) | (1L << (LOCATION - 256)) | (1L << (LOCATOR - 256)) | (1L << (LOCK - 256)))) != 0) || ((((_la - 320)) & ~0x3f) == 0 && ((1L << (_la - 320)) & ((1L << (LOCKED - 320)) | (1L << (LOWER - 320)) | (1L << (M_ - 320)) | (1L << (MAIN - 320)) | (1L << (MAP - 320)) | (1L << (MAPPING - 320)) | (1L << (MATCH - 320)) | (1L << (MATCH_SIMPLE - 320)) | (1L << (MATCHED - 320)) | (1L << (MAX - 320)) | (1L << (MAXVALUE - 320)) | (1L << (MEMBER - 320)) | (1L << (MERGE - 320)) | (1L << (MESSAGE_LENGTH - 320)) | (1L << (MESSAGE_OCTET_LENGTH - 320)) | (1L << (MESSAGE_TEXT - 320)) | (1L << (METHOD - 320)) | (1L << (MIN - 320)) | (1L << (MINUTE - 320)) | (1L << (MINVALUE - 320)) | (1L << (MOD - 320)) | (1L << (MODE - 320)) | (1L << (MODIFIES - 320)) | (1L << (MODIFY - 320)) | (1L << (MODULE - 320)) | (1L << (MONTH - 320)) | (1L << (MORE_ - 320)) | (1L << (MOVE - 320)) | (1L << (MULTISET - 320)) | (1L << (MUMPS - 320)) | (1L << (NAME - 320)) | (1L << (NAMES - 320)) | (1L << (NATIONAL - 320)) | (1L << (NATURAL - 320)) | (1L << (NCHAR - 320)) | (1L << (NCLOB - 320)) | (1L << (NESTING - 320)) | (1L << (NEW - 320)) | (1L << (NEXT - 320)) | (1L << (NO - 320)) | (1L << (NOCREATEDB - 320)) | (1L << (NOCREATEUSER - 320)) | (1L << (NONE - 320)) | (1L << (NORMALIZE - 320)) | (1L << (NORMALIZED - 320)) | (1L << (NOT - 320)) | (1L << (NOTHING - 320)) | (1L << (NOTIFY - 320)) | (1L << (NOTNULL - 320)) | (1L << (NOWAIT - 320)) | (1L << (NULL - 320)) | (1L << (NULLABLE - 320)) | (1L << (NULLIF - 320)) | (1L << (NULLS - 320)) | (1L << (NUMBER - 320)) | (1L << (NUMERIC - 320)) | (1L << (OBJECT - 320)) | (1L << (OCTET_LENGTH - 320)) | (1L << (OCTETS - 320)) | (1L << (OF - 320)) | (1L << (OFF - 320)) | (1L << (OFFSET - 320)) | (1L << (OIDS - 320)) | (1L << (OLD - 320)))) != 0) || ((((_la - 384)) & ~0x3f) == 0 && ((1L << (_la - 384)) & ((1L << (ON - 384)) | (1L << (ONLY - 384)) | (1L << (OPEN - 384)) | (1L << (OPERATION - 384)) | (1L << (OPERATOR - 384)) | (1L << (OPTION - 384)) | (1L << (OPTIONS - 384)) | (1L << (OR - 384)) | (1L << (ORDER - 384)) | (1L << (ORDERING - 384)) | (1L << (ORDINALITY - 384)) | (1L << (OTHERS - 384)) | (1L << (OUT - 384)) | (1L << (OUTER - 384)) | (1L << (OUTPUT - 384)) | (1L << (OVER - 384)) | (1L << (OVERLAPS - 384)) | (1L << (OVERLAY - 384)) | (1L << (OVERRIDING - 384)) | (1L << (OWNER - 384)) | (1L << (PAD - 384)) | (1L << (PARAMETER - 384)) | (1L << (PARAMETER_MODE - 384)) | (1L << (PARAMETER_NAME - 384)) | (1L << (PARAMETER_ORDINAL_POSITION - 384)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 384)) | (1L << (PARAMETER_SPECIFIC_NAME - 384)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 384)) | (1L << (PARAMETERS - 384)) | (1L << (PARSER - 384)) | (1L << (PARTIAL - 384)) | (1L << (PARTITION - 384)) | (1L << (PASCAL - 384)) | (1L << (PASSWORD - 384)) | (1L << (PATH - 384)) | (1L << (PERCENT_RANK - 384)) | (1L << (PERCENTILE_CONT - 384)) | (1L << (PERCENTILE_DISC - 384)) | (1L << (PLACING - 384)) | (1L << (PLAIN - 384)) | (1L << (PLANS - 384)) | (1L << (PLI - 384)) | (1L << (POSITION - 384)) | (1L << (POSTFIX - 384)) | (1L << (POWER - 384)) | (1L << (PRECEDING - 384)) | (1L << (PRECISION - 384)) | (1L << (PREFIX - 384)) | (1L << (PREORDER - 384)) | (1L << (PREPARE - 384)) | (1L << (PREPARED - 384)) | (1L << (PRESERVE - 384)) | (1L << (PRIMARY - 384)) | (1L << (PRIOR - 384)) | (1L << (PRIVILEGES - 384)) | (1L << (PROCEDURAL - 384)) | (1L << (PROCEDURE - 384)) | (1L << (PUBLIC - 384)) | (1L << (PUBLICATION - 384)) | (1L << (QUOTE - 384)) | (1L << (RANGE - 384)) | (1L << (RANK - 384)) | (1L << (READ - 384)) | (1L << (READS - 384)))) != 0) || ((((_la - 448)) & ~0x3f) == 0 && ((1L << (_la - 448)) & ((1L << (REAL - 448)) | (1L << (REASSIGN - 448)) | (1L << (RECHECK - 448)) | (1L << (RECURSIVE - 448)) | (1L << (REF - 448)) | (1L << (REFERENCES - 448)) | (1L << (REFERENCING - 448)) | (1L << (REFRESH - 448)) | (1L << (REGR_AVGX - 448)) | (1L << (REGR_AVGY - 448)) | (1L << (REGR_COUNT - 448)) | (1L << (REGR_INTERCEPT - 448)) | (1L << (REGR_R2 - 448)) | (1L << (REGR_SLOPE - 448)) | (1L << (REGR_SXX - 448)) | (1L << (REGR_SXY - 448)) | (1L << (REGR_SYY - 448)) | (1L << (REINDEX - 448)) | (1L << (RELATIVE - 448)) | (1L << (RELEASE - 448)) | (1L << (RENAME - 448)) | (1L << (REPEATABLE - 448)) | (1L << (REPLACE - 448)) | (1L << (REPLICA - 448)) | (1L << (RESET - 448)) | (1L << (RESTART - 448)) | (1L << (RESTRICT - 448)) | (1L << (RESULT - 448)) | (1L << (RETURN - 448)) | (1L << (RETURNED_CARDINALITY - 448)) | (1L << (RETURNED_LENGTH - 448)) | (1L << (RETURNED_OCTET_LENGTH - 448)) | (1L << (RETURNED_SQLSTATE - 448)) | (1L << (RETURNING - 448)) | (1L << (RETURNS - 448)) | (1L << (REVOKE - 448)) | (1L << (RIGHT - 448)) | (1L << (ROLE - 448)) | (1L << (ROLLBACK - 448)) | (1L << (ROLLUP - 448)) | (1L << (ROUTINE - 448)) | (1L << (ROUTINE_CATALOG - 448)) | (1L << (ROUTINE_NAME - 448)) | (1L << (ROUTINE_SCHEMA - 448)) | (1L << (ROW - 448)) | (1L << (ROW_COUNT - 448)) | (1L << (ROW_NUMBER - 448)) | (1L << (ROWS - 448)) | (1L << (RULE - 448)) | (1L << (SAVEPOINT - 448)) | (1L << (SCALE - 448)) | (1L << (SCHEMA - 448)) | (1L << (SCHEMA_NAME - 448)) | (1L << (SCOPE - 448)) | (1L << (SCOPE_CATALOG - 448)) | (1L << (SCOPE_NAME - 448)) | (1L << (SCOPE_SCHEMA - 448)) | (1L << (SCROLL - 448)) | (1L << (SEARCH - 448)) | (1L << (SECOND - 448)) | (1L << (SECTION - 448)) | (1L << (SECURITY - 448)) | (1L << (SELECT - 448)) | (1L << (SELF - 448)))) != 0) || ((((_la - 512)) & ~0x3f) == 0 && ((1L << (_la - 512)) & ((1L << (SENSITIVE - 512)) | (1L << (SEQUENCE - 512)) | (1L << (SEQUENCES - 512)) | (1L << (SERIALIZABLE - 512)) | (1L << (SERVER_NAME - 512)) | (1L << (SESSION - 512)) | (1L << (SESSION_USER - 512)) | (1L << (SET - 512)) | (1L << (SETOF - 512)) | (1L << (SETS - 512)) | (1L << (SHARE - 512)) | (1L << (SHOW - 512)) | (1L << (SIMILAR - 512)) | (1L << (SIMPLE - 512)) | (1L << (SIZE - 512)) | (1L << (SKIP_ - 512)) | (1L << (SMALLINT - 512)) | (1L << (SNAPSHOT - 512)) | (1L << (SOME - 512)) | (1L << (SOURCE - 512)) | (1L << (SPACE - 512)) | (1L << (SPECIFIC - 512)) | (1L << (SPECIFIC_NAME - 512)) | (1L << (SPECIFICTYPE - 512)) | (1L << (SQL - 512)) | (1L << (SQLCODE - 512)) | (1L << (SQLERROR - 512)) | (1L << (SQLEXCEPTION - 512)) | (1L << (SQLSTATE - 512)) | (1L << (SQLWARNING - 512)) | (1L << (SQRT - 512)) | (1L << (STABLE - 512)) | (1L << (START - 512)) | (1L << (STATE - 512)) | (1L << (STATEMENT - 512)) | (1L << (STATIC - 512)) | (1L << (STATISTICS - 512)) | (1L << (STDDEV_POP - 512)) | (1L << (STDDEV_SAMP - 512)) | (1L << (STDIN - 512)) | (1L << (STDOUT - 512)) | (1L << (STORAGE - 512)) | (1L << (STRICT - 512)) | (1L << (STRUCTURE - 512)) | (1L << (STYLE - 512)) | (1L << (SUBCLASS_ORIGIN - 512)) | (1L << (SUBLIST - 512)) | (1L << (SUBMULTISET - 512)) | (1L << (SUBSCRIPTION - 512)) | (1L << (SUBSTRING - 512)) | (1L << (SUM - 512)) | (1L << (SYMMETRIC - 512)) | (1L << (SYSID - 512)) | (1L << (SYSTEM - 512)) | (1L << (SYSTEM_USER - 512)) | (1L << (TABLE - 512)) | (1L << (TABLE_NAME - 512)) | (1L << (TABLESAMPLE - 512)) | (1L << (TABLESPACE - 512)) | (1L << (TEMP - 512)) | (1L << (TEMPLATE - 512)) | (1L << (TEMPORARY - 512)) | (1L << (TERMINATE - 512)) | (1L << (THAN - 512)))) != 0) || ((((_la - 576)) & ~0x3f) == 0 && ((1L << (_la - 576)) & ((1L << (THEN - 576)) | (1L << (TIES - 576)) | (1L << (TIME - 576)) | (1L << (TIMESTAMP - 576)) | (1L << (TIMEZONE_HOUR - 576)) | (1L << (TIMEZONE_MINUTE - 576)) | (1L << (TIMING - 576)) | (1L << (TO - 576)) | (1L << (TOAST - 576)) | (1L << (TOP_LEVEL_COUNT - 576)) | (1L << (TRAILING - 576)) | (1L << (TRANSACTION - 576)) | (1L << (TRANSACTION_ACTIVE - 576)) | (1L << (TRANSACTIONS_COMMITTED - 576)) | (1L << (TRANSACTIONS_ROLLED_BACK - 576)) | (1L << (TRANSFORM - 576)) | (1L << (TRANSFORMS - 576)) | (1L << (TRANSLATE - 576)) | (1L << (TRANSLATION - 576)) | (1L << (TREAT - 576)) | (1L << (TRIGGER - 576)) | (1L << (TRIGGER_CATALOG - 576)) | (1L << (TRIGGER_NAME - 576)) | (1L << (TRIGGER_SCHEMA - 576)) | (1L << (TRIM - 576)) | (1L << (TRUE - 576)) | (1L << (TRUNCATE - 576)) | (1L << (TRUSTED - 576)) | (1L << (TYPE - 576)) | (1L << (UESCAPE - 576)) | (1L << (UNBOUNDED - 576)) | (1L << (UNCOMMITTED - 576)) | (1L << (UNDER - 576)) | (1L << (UNENCRYPTED - 576)) | (1L << (UNION - 576)) | (1L << (UNIQUE - 576)) | (1L << (UNKNOWN - 576)) | (1L << (UNLISTEN - 576)) | (1L << (UNNAMED - 576)) | (1L << (UNNEST - 576)) | (1L << (UNTIL - 576)) | (1L << (UPDATE - 576)) | (1L << (UPPER - 576)) | (1L << (USAGE - 576)) | (1L << (USER - 576)) | (1L << (USER_DEFINED_TYPE_CATALOG - 576)) | (1L << (USER_DEFINED_TYPE_CODE - 576)) | (1L << (USER_DEFINED_TYPE_NAME - 576)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 576)) | (1L << (USING - 576)) | (1L << (VACUUM - 576)) | (1L << (VALID - 576)) | (1L << (VALIDATE - 576)) | (1L << (VALIDATOR - 576)) | (1L << (VALUE - 576)) | (1L << (VALUES - 576)) | (1L << (VAR_POP - 576)) | (1L << (VAR_SAMP - 576)) | (1L << (VARCHAR - 576)) | (1L << (VARIABLE - 576)) | (1L << (VARIADIC - 576)) | (1L << (VARYING - 576)) | (1L << (VERBOSE - 576)) | (1L << (VIEW - 576)))) != 0) || ((((_la - 640)) & ~0x3f) == 0 && ((1L << (_la - 640)) & ((1L << (VOLATILE - 640)) | (1L << (WHEN - 640)) | (1L << (WHENEVER - 640)) | (1L << (WHERE - 640)) | (1L << (WIDTH_BUCKET - 640)) | (1L << (WINDOW - 640)) | (1L << (WITH - 640)) | (1L << (WITHIN - 640)) | (1L << (WITHOUT - 640)) | (1L << (WORK - 640)) | (1L << (WRITE - 640)) | (1L << (YAML - 640)) | (1L << (YEAR - 640)) | (1L << (YES - 640)) | (1L << (ZONE - 640)) | (1L << (SUPERUSER - 640)) | (1L << (NOSUPERUSER - 640)) | (1L << (CREATEROLE - 640)) | (1L << (NOCREATEROLE - 640)) | (1L << (INHERIT - 640)) | (1L << (NOINHERIT - 640)) | (1L << (LOGIN - 640)) | (1L << (NOLOGIN - 640)) | (1L << (REPLICATION - 640)) | (1L << (NOREPLICATION - 640)) | (1L << (BYPASSRLS - 640)) | (1L << (NOBYPASSRLS - 640)) | (1L << (SFUNC - 640)) | (1L << (STYPE - 640)) | (1L << (SSPACE - 640)) | (1L << (FINALFUNC - 640)) | (1L << (FINALFUNC_EXTRA - 640)) | (1L << (COMBINEFUNC - 640)) | (1L << (SERIALFUNC - 640)) | (1L << (DESERIALFUNC - 640)) | (1L << (INITCOND - 640)) | (1L << (MSFUNC - 640)) | (1L << (MINVFUNC - 640)) | (1L << (MSTYPE - 640)) | (1L << (MSSPACE - 640)) | (1L << (MFINALFUNC - 640)) | (1L << (MFINALFUNC_EXTRA - 640)) | (1L << (MINITCOND - 640)) | (1L << (SORTOP - 640)) | (1L << (PARALLEL - 640)) | (1L << (HYPOTHETICAL - 640)) | (1L << (SAFE - 640)) | (1L << (RESTRICTED - 640)) | (1L << (UNSAFE - 640)) | (1L << (BASETYPE - 640)) | (1L << (IF - 640)) | (1L << (LOCALE - 640)) | (1L << (LC_COLLATE - 640)) | (1L << (LC_CTYPE - 640)) | (1L << (PROVIDER - 640)) | (1L << (VERSION - 640)) | (1L << (ALLOW_CONNECTIONS - 640)) | (1L << (IS_TEMPLATE - 640)) | (1L << (EVENT - 640)) | (1L << (WRAPPER - 640)) | (1L << (SERVER - 640)) | (1L << (BTREE - 640)) | (1L << (HASH_ - 640)) | (1L << (GIST - 640)))) != 0) || ((((_la - 704)) & ~0x3f) == 0 && ((1L << (_la - 704)) & ((1L << (SPGIST - 704)) | (1L << (GIN - 704)) | (1L << (BRIN - 704)) | (1L << (CONCURRENTLY - 704)) | (1L << (INLINE - 704)) | (1L << (MATERIALIZED - 704)) | (1L << (LEFTARG - 704)) | (1L << (RIGHTARG - 704)) | (1L << (COMMUTATOR - 704)) | (1L << (NEGATOR - 704)) | (1L << (HASHES - 704)) | (1L << (MERGES - 704)) | (1L << (FAMILY - 704)) | (1L << (POLICY - 704)) | (1L << (OWNED - 704)) | (1L << (ABSTIME - 704)) | (1L << (BIGSERIAL - 704)) | (1L << (BIT_VARYING - 704)) | (1L << (BOOL - 704)) | (1L << (BOX - 704)) | (1L << (BYTEA - 704)) | (1L << (CHARACTER_VARYING - 704)) | (1L << (CIDR - 704)) | (1L << (CIRCLE - 704)) | (1L << (FLOAT4 - 704)) | (1L << (FLOAT8 - 704)) | (1L << (INET - 704)) | (1L << (INT2 - 704)) | (1L << (INT4 - 704)) | (1L << (INT8 - 704)) | (1L << (JSON - 704)) | (1L << (JSONB - 704)) | (1L << (LINE - 704)) | (1L << (LSEG - 704)) | (1L << (MACADDR - 704)) | (1L << (MACADDR8 - 704)) | (1L << (MONEY - 704)) | (1L << (PG_LSN - 704)) | (1L << (POINT - 704)) | (1L << (POLYGON - 704)) | (1L << (RELTIME - 704)) | (1L << (SERIAL - 704)) | (1L << (SERIAL2 - 704)) | (1L << (SERIAL4 - 704)) | (1L << (SERIAL8 - 704)) | (1L << (SMALLSERIAL - 704)) | (1L << (STSTEM - 704)) | (1L << (TEXT - 704)) | (1L << (TIMESTAMPTZ - 704)) | (1L << (TIMETZ - 704)) | (1L << (TSQUERY - 704)) | (1L << (TSVECTOR - 704)) | (1L << (TXID_SNAPSHOT - 704)) | (1L << (UUID - 704)) | (1L << (VARBIT - 704)) | (1L << (XML - 704)) | (1L << (COMMA - 704)) | (1L << (COLON - 704)) | (1L << (COLON_COLON - 704)) | (1L << (DOLLAR_DOLLAR - 704)) | (1L << (STAR - 704)) | (1L << (OPEN_PAREN - 704)) | (1L << (CLOSE_PAREN - 704)))) != 0) || ((((_la - 768)) & ~0x3f) == 0 && ((1L << (_la - 768)) & ((1L << (OPEN_BRACKET - 768)) | (1L << (CLOSE_BRACKET - 768)) | (1L << (BIT_STRING - 768)) | (1L << (REGEX_STRING - 768)) | (1L << (NUMERIC_LITERAL - 768)) | (1L << (INTEGER_LITERAL - 768)) | (1L << (HEX_INTEGER_LITERAL - 768)) | (1L << (DOT - 768)) | (1L << (SINGLEQ_STRING_LITERAL - 768)) | (1L << (DOUBLEQ_STRING_LITERAL - 768)) | (1L << (IDENTIFIER - 768)) | (1L << (DOLLAR_DEC - 768)) | (1L << (IDENTIFIER_UNICODE - 768)) | (1L << (AMP - 768)) | (1L << (AMP_AMP - 768)) | (1L << (AMP_LT - 768)) | (1L << (AT_AT - 768)) | (1L << (AT_GT - 768)) | (1L << (AT_SIGN - 768)) | (1L << (BANG - 768)) | (1L << (BANG_BANG - 768)) | (1L << (BANG_EQUAL - 768)) | (1L << (CARET - 768)) | (1L << (EQUAL - 768)) | (1L << (EQUAL_GT - 768)) | (1L << (GT - 768)) | (1L << (GTE - 768)) | (1L << (GT_GT - 768)) | (1L << (HASH - 768)) | (1L << (HASH_EQ - 768)) | (1L << (HASH_GT - 768)) | (1L << (HASH_GT_GT - 768)) | (1L << (HASH_HASH - 768)) | (1L << (HYPHEN_GT - 768)) | (1L << (HYPHEN_GT_GT - 768)) | (1L << (HYPHEN_PIPE_HYPHEN - 768)) | (1L << (LT - 768)) | (1L << (LTE - 768)) | (1L << (LT_AT - 768)) | (1L << (LT_CARET - 768)) | (1L << (LT_GT - 768)) | (1L << (LT_HYPHEN_GT - 768)) | (1L << (LT_LT - 768)) | (1L << (LT_LT_EQ - 768)) | (1L << (LT_QMARK_GT - 768)) | (1L << (MINUS - 768)) | (1L << (PERCENT - 768)) | (1L << (PIPE - 768)) | (1L << (PIPE_PIPE - 768)) | (1L << (PIPE_PIPE_SLASH - 768)) | (1L << (PIPE_SLASH - 768)) | (1L << (PLUS - 768)) | (1L << (QMARK - 768)) | (1L << (QMARK_AMP - 768)) | (1L << (QMARK_HASH - 768)) | (1L << (QMARK_HYPHEN - 768)) | (1L << (QMARK_PIPE - 768)) | (1L << (SLASH - 768)) | (1L << (TIL - 768)) | (1L << (TIL_EQ - 768)) | (1L << (TIL_GTE_TIL - 768)) | (1L << (TIL_GT_TIL - 768)) | (1L << (TIL_LTE_TIL - 768)) | (1L << (TIL_LT_TIL - 768)))) != 0) || ((((_la - 832)) & ~0x3f) == 0 && ((1L << (_la - 832)) & ((1L << (TIL_STAR - 832)) | (1L << (TIL_TIL - 832)) | (1L << (SEMI - 832)) | (1L << (UNLOGGED - 832)))) != 0)); + setState(4614); + match(DOLLAR); + setState(4615); + identifier(0); + setState(4616); + match(DOLLAR); + } + break; + case 16: { + setState(4618); + bool_expr(0); + } + break; + case 17: { + setState(4619); + values_stmt(); + } + break; + case 18: { + setState(4620); + expr_list(); + } + break; + case 19: { + setState(4621); + match(OPEN_PAREN); + setState(4622); + expr(0); + setState(4623); + match(CLOSE_PAREN); + } + break; + case 20: { + setState(4625); + type_name(); + setState(4626); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 21: { + setState(4628); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)))) != 0))) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4629); + expr(30); + } + break; + case 22: { + setState(4630); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(_la == QMARK_HYPHEN || _la == TIL)) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4631); + expr(29); + } + break; + case 23: { + setState(4632); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(_la == ALL || _la == NOT)) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4633); + expr(17); + } + break; + case 24: { + setState(4634); + func_call(); + } + break; + case 25: { + setState(4635); + identifier(0); + } + break; + case 26: { + setState(4636); + match(CAST); + setState(4637); + match(OPEN_PAREN); + setState(4638); + expr(0); + setState(4639); + match(AS); + setState(4640); + data_type(); + setState(4641); + match(CLOSE_PAREN); + } + break; + case 27: { + setState(4643); + correlation_name(); + setState(4644); + match(DOT); + setState(4645); + column_name(); + } + break; + case 28: { + setState(4647); + case_expr(); + } + break; + case 29: { + setState(4648); + data_type(); + setState(4649); + expr(9); + } + break; + case 30: { + setState(4651); + aggregate(); + } + break; + case 31: { + setState(4652); + array_cons_expr(); + } + break; + case 32: { + setState(4653); + match(EXISTS); + setState(4654); + expr(3); + } + break; + case 33: { + setState(4655); + match(DOLLAR_DEC); + } + break; + case 34: { + setState(4656); + match(OPEN_PAREN); + setState(4657); + select_stmt(); + setState(4658); + match(CLOSE_PAREN); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(4761); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 557, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + if (_parseListeners != null) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(4759); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 556, _ctx)) { + case 1: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4662); + if (!(precpred(_ctx, 27))) + throw new FailedPredicateException(this, "precpred(_ctx, 27)"); + setState(4663); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(((((_la - 790)) & ~0x3f) == 0 && ((1L << (_la - 790)) & ((1L << (CARET - 790)) | (1L << (PIPE_PIPE_SLASH - 790)) | (1L << (PIPE_SLASH - 790)))) != 0))) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4664); + expr(28); + } + break; + case 2: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4665); + if (!(precpred(_ctx, 26))) + throw new FailedPredicateException(this, "precpred(_ctx, 26)"); + setState(4666); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(((((_la - 765)) & ~0x3f) == 0 && ((1L << (_la - 765)) & ((1L << (STAR - 765)) | (1L << (PERCENT - 765)) | (1L << (SLASH - 765)))) != 0))) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4667); + expr(27); + } + break; + case 3: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4668); + if (!(precpred(_ctx, 25))) + throw new FailedPredicateException(this, "precpred(_ctx, 25)"); + setState(4669); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(_la == MINUS || _la == PLUS)) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4670); + expr(26); + } + break; + case 4: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4671); + if (!(precpred(_ctx, 24))) + throw new FailedPredicateException(this, "precpred(_ctx, 24)"); + setState(4672); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(_la == AND || _la == NOT || _la == OR || ((((_la - 781)) & ~0x3f) == 0 && ((1L << (_la - 781)) & ((1L << (AMP - 781)) | (1L << (AMP_AMP - 781)) | (1L << (AMP_LT - 781)) | (1L << (AT_AT - 781)) | (1L << (AT_GT - 781)) | (1L << (EQUAL_GT - 781)) | (1L << (GT_GT - 781)) | (1L << (HASH - 781)) | (1L << (HASH_EQ - 781)) | (1L << (HASH_GT - 781)) | (1L << (HASH_GT_GT - 781)) | (1L << (HASH_HASH - 781)) | (1L << (HYPHEN_GT - 781)) | (1L << (HYPHEN_GT_GT - 781)) | (1L << (HYPHEN_PIPE_HYPHEN - 781)) | (1L << (LT_AT - 781)) | (1L << (LT_CARET - 781)) | (1L << (LT_HYPHEN_GT - 781)) | (1L << (LT_LT - 781)) | (1L << (LT_LT_EQ - 781)) | (1L << (LT_QMARK_GT - 781)) | (1L << (PIPE - 781)) | (1L << (PIPE_PIPE - 781)) | (1L << (QMARK - 781)) | (1L << (QMARK_AMP - 781)) | (1L << (QMARK_HASH - 781)) | (1L << (QMARK_PIPE - 781)) | (1L << (TIL - 781)) | (1L << (TIL_EQ - 781)) | (1L << (TIL_GTE_TIL - 781)) | (1L << (TIL_GT_TIL - 781)) | (1L << (TIL_LTE_TIL - 781)) | (1L << (TIL_LT_TIL - 781)) | (1L << (TIL_STAR - 781)) | (1L << (TIL_TIL - 781)))) != 0))) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4673); + expr(25); + } + break; + case 5: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4674); + if (!(precpred(_ctx, 23))) + throw new FailedPredicateException(this, "precpred(_ctx, 23)"); + setState(4678); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NOT: { + setState(4675); + match(NOT); + setState(4676); + match(LIKE); + } + break; + case LIKE: { + setState(4677); + match(LIKE); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4680); + expr(24); + } + break; + case 6: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4681); + if (!(precpred(_ctx, 22))) + throw new FailedPredicateException(this, "precpred(_ctx, 22)"); + setState(4683); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(4682); + match(NOT); + } + } + + setState(4685); + match(BETWEEN); + setState(4686); + expr(0); + setState(4687); + match(AND); + setState(4688); + expr(23); + } + break; + case 7: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4690); + if (!(precpred(_ctx, 21))) + throw new FailedPredicateException(this, "precpred(_ctx, 21)"); + setState(4691); + match(IN); + setState(4692); + expr(22); + } + break; + case 8: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4693); + if (!(precpred(_ctx, 20))) + throw new FailedPredicateException(this, "precpred(_ctx, 20)"); + setState(4694); + ((ExprContext) _localctx).op = _input.LT(1); + _la = _input.LA(1); + if (!(((((_la - 789)) & ~0x3f) == 0 && ((1L << (_la - 789)) & ((1L << (BANG_EQUAL - 789)) | (1L << (EQUAL - 789)) | (1L << (GT - 789)) | (1L << (GTE - 789)) | (1L << (LT - 789)) | (1L << (LTE - 789)) | (1L << (LT_GT - 789)))) != 0))) { + ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4695); + expr(21); + } + break; + case 9: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4696); + if (!(precpred(_ctx, 18))) + throw new FailedPredicateException(this, "precpred(_ctx, 18)"); + setState(4697); + match(IS); + setState(4699); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(4698); + match(NOT); + } + } + + setState(4701); + match(DISTINCT); + setState(4702); + match(FROM); + setState(4703); + expr(19); + } + break; + case 10: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4704); + if (!(precpred(_ctx, 33))) + throw new FailedPredicateException(this, "precpred(_ctx, 33)"); + setState(4705); + match(OPEN_BRACKET); + setState(4706); + expr(0); + setState(4707); + match(CLOSE_BRACKET); + } + break; + case 11: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4709); + if (!(precpred(_ctx, 28))) + throw new FailedPredicateException(this, "precpred(_ctx, 28)"); + setState(4710); + ((ExprContext) _localctx).op = match(BANG); + } + break; + case 12: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4711); + if (!(precpred(_ctx, 19))) + throw new FailedPredicateException(this, "precpred(_ctx, 19)"); + setState(4712); + ((ExprContext) _localctx).op = match(IS); + setState(4717); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 550, _ctx)) { + case 1: { + setState(4713); + bool_expr(0); + } + break; + case 2: { + setState(4714); + match(NULL); + } + break; + case 3: { + setState(4715); + match(NOT); + setState(4716); + match(NULL); + } + break; + } + } + break; + case 13: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4719); + if (!(precpred(_ctx, 11))) + throw new FailedPredicateException(this, "precpred(_ctx, 11)"); + setState(4729); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(4720); + match(OPEN_BRACKET); + setState(4722); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { + { + setState(4721); + expr(0); + } + } + + setState(4724); + match(COLON); + setState(4726); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { + { + setState(4725); + expr(0); + } + } + + setState(4728); + match(CLOSE_BRACKET); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4731); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 553, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + } + break; + case 14: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4733); + if (!(precpred(_ctx, 10))) + throw new FailedPredicateException(this, "precpred(_ctx, 10)"); + setState(4736); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: { + { + setState(4734); + match(COLON_COLON); + setState(4735); + data_type(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4738); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 554, _ctx); + } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); + } + break; + case 15: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4740); + if (!(precpred(_ctx, 8))) + throw new FailedPredicateException(this, "precpred(_ctx, 8)"); + setState(4741); + match(IS); + setState(4742); + match(OF); + setState(4743); + match(OPEN_PAREN); + setState(4744); + data_type(); + setState(4745); + match(CLOSE_PAREN); + } + break; + case 16: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4747); + if (!(precpred(_ctx, 7))) + throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(4748); + match(DOT); + setState(4751); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(4749); + identifier(0); + } + break; + case STAR: { + setState(4750); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 17: { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4753); + if (!(precpred(_ctx, 4))) + throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + { + setState(4754); + match(AT); + setState(4755); + match(TIME); + setState(4756); + match(ZONE); + } + setState(4758); + match(SINGLEQ_STRING_LITERAL); + } + break; + } + } + } + setState(4763); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 557, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Bool_exprContext extends ParserRuleContext { + public TerminalNode TRUE() { + return getToken(PostgreSQLParser.TRUE, 0); + } + + public TerminalNode FALSE() { + return getToken(PostgreSQLParser.FALSE, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public List bool_expr() { + return getRuleContexts(Bool_exprContext.class); + } + + public Bool_exprContext bool_expr(int i) { + return getRuleContext(Bool_exprContext.class, i); + } + + public TerminalNode AND() { + return getToken(PostgreSQLParser.AND, 0); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public Bool_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_bool_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterBool_expr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitBool_expr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitBool_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Bool_exprContext bool_expr() throws RecognitionException { + return bool_expr(0); + } + + private Bool_exprContext bool_expr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + Bool_exprContext _localctx = new Bool_exprContext(_ctx, _parentState); + Bool_exprContext _prevctx = _localctx; + int _startState = 434; + enterRecursionRule(_localctx, 434, RULE_bool_expr, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4769); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TRUE: { + setState(4765); + match(TRUE); + } + break; + case FALSE: { + setState(4766); + match(FALSE); + } + break; + case NOT: { + setState(4767); + match(NOT); + setState(4768); + bool_expr(3); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(4779); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 560, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + if (_parseListeners != null) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(4777); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 559, _ctx)) { + case 1: { + _localctx = new Bool_exprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_bool_expr); + setState(4771); + if (!(precpred(_ctx, 2))) + throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(4772); + match(AND); + setState(4773); + bool_expr(3); + } + break; + case 2: { + _localctx = new Bool_exprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_bool_expr); + setState(4774); + if (!(precpred(_ctx, 1))) + throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(4775); + match(OR); + setState(4776); + bool_expr(2); + } + break; + } + } + } + setState(4781); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 560, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Case_exprContext extends ParserRuleContext { + public TerminalNode CASE() { + return getToken(PostgreSQLParser.CASE, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public TerminalNode END() { + return getToken(PostgreSQLParser.END, 0); + } + + public List WHEN() { + return getTokens(PostgreSQLParser.WHEN); + } + + public TerminalNode WHEN(int i) { + return getToken(PostgreSQLParser.WHEN, i); + } + + public List THEN() { + return getTokens(PostgreSQLParser.THEN); + } + + public TerminalNode THEN(int i) { + return getToken(PostgreSQLParser.THEN, i); + } + + public TerminalNode ELSE() { + return getToken(PostgreSQLParser.ELSE, 0); + } + + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class, i); + } + + public Case_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_case_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCase_expr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitCase_expr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCase_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Case_exprContext case_expr() throws RecognitionException { + Case_exprContext _localctx = new Case_exprContext(_ctx, getState()); + enterRule(_localctx, 436, RULE_case_expr); + int _la; + try { + setState(4815); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 565, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4782); + match(CASE); + setState(4783); + expr(0); + setState(4789); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4784); + match(WHEN); + setState(4785); + expr(0); + setState(4786); + match(THEN); + setState(4787); + expr(0); + } + } + setState(4791); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == WHEN); + setState(4795); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ELSE) { + { + setState(4793); + match(ELSE); + setState(4794); + expr(0); + } + } + + setState(4797); + match(END); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4799); + match(CASE); + setState(4805); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4800); + match(WHEN); + setState(4801); + predicate(0); + setState(4802); + match(THEN); + setState(4803); + expr(0); + } + } + setState(4807); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == WHEN); + setState(4811); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ELSE) { + { + setState(4809); + match(ELSE); + setState(4810); + expr(0); + } + } + + setState(4813); + match(END); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Expr_listContext extends ParserRuleContext { + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Expr_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_expr_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterExpr_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitExpr_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExpr_list(this); + else return visitor.visitChildren(this); + } + } + + public final Expr_listContext expr_list() throws RecognitionException { + Expr_listContext _localctx = new Expr_listContext(_ctx, getState()); + enterRule(_localctx, 438, RULE_expr_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4817); + match(OPEN_PAREN); + setState(4818); + expr(0); + setState(4823); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4819); + match(COMMA); + setState(4820); + expr(0); + } + } + setState(4825); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(4826); + match(CLOSE_PAREN); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Expr_list_listContext extends ParserRuleContext { + public List expr_list() { + return getRuleContexts(Expr_listContext.class); + } + + public Expr_listContext expr_list(int i) { + return getRuleContext(Expr_listContext.class, i); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Expr_list_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_expr_list_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterExpr_list_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitExpr_list_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExpr_list_list(this); + else return visitor.visitChildren(this); + } + } + + public final Expr_list_listContext expr_list_list() throws RecognitionException { + Expr_list_listContext _localctx = new Expr_list_listContext(_ctx, getState()); + enterRule(_localctx, 440, RULE_expr_list_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4829); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 567, _ctx)) { + case 1: { + setState(4828); + match(OPEN_PAREN); + } + break; + } + setState(4831); + expr_list(); + setState(4836); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 568, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(4832); + match(COMMA); + setState(4833); + expr_list(); + } + } + } + setState(4838); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 568, _ctx); + } + setState(4840); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 569, _ctx)) { + case 1: { + setState(4839); + match(CLOSE_PAREN); + } + break; + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sig_argContext extends ParserRuleContext { + public Token argmode; + public IdentifierContext argname; + public Data_typeContext argtype; + + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode IN() { + return getToken(PostgreSQLParser.IN, 0); + } + + public TerminalNode OUT() { + return getToken(PostgreSQLParser.OUT, 0); + } + + public TerminalNode INOUT() { + return getToken(PostgreSQLParser.INOUT, 0); + } + + public TerminalNode VARIADIC() { + return getToken(PostgreSQLParser.VARIADIC, 0); + } + + public Func_sig_argContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_func_sig_arg; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFunc_sig_arg(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFunc_sig_arg(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFunc_sig_arg(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sig_argContext func_sig_arg() throws RecognitionException { + Func_sig_argContext _localctx = new Func_sig_argContext(_ctx, getState()); + enterRule(_localctx, 442, RULE_func_sig_arg); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4849); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { + { + setState(4843); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 570, _ctx)) { + case 1: { + setState(4842); + ((Func_sig_argContext) _localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if (!(_la == IN || _la == INOUT || _la == OUT || _la == VARIADIC)) { + ((Func_sig_argContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(4846); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 571, _ctx)) { + case 1: { + setState(4845); + ((Func_sig_argContext) _localctx).argname = identifier(0); + } + break; + } + setState(4848); + ((Func_sig_argContext) _localctx).argtype = data_type(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sig_arg_listContext extends ParserRuleContext { + public List func_sig_arg() { + return getRuleContexts(Func_sig_argContext.class); + } + + public Func_sig_argContext func_sig_arg(int i) { + return getRuleContext(Func_sig_argContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Func_sig_arg_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_func_sig_arg_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFunc_sig_arg_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFunc_sig_arg_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFunc_sig_arg_list(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sig_arg_listContext func_sig_arg_list() throws RecognitionException { + Func_sig_arg_listContext _localctx = new Func_sig_arg_listContext(_ctx, getState()); + enterRule(_localctx, 444, RULE_func_sig_arg_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4851); + func_sig_arg(); + setState(4856); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4852); + match(COMMA); + setState(4853); + func_sig_arg(); + } + } + setState(4858); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sigContext extends ParserRuleContext { + public IdentifierContext name; + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Func_sig_arg_listContext func_sig_arg_list() { + return getRuleContext(Func_sig_arg_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public Func_sigContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_func_sig; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterFunc_sig(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFunc_sig(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFunc_sig(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sigContext func_sig() throws RecognitionException { + Func_sigContext _localctx = new Func_sigContext(_ctx, getState()); + enterRule(_localctx, 446, RULE_func_sig); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4859); + ((Func_sigContext) _localctx).name = identifier(0); + setState(4864); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OPEN_PAREN) { + { + setState(4860); + match(OPEN_PAREN); + setState(4861); + func_sig_arg_list(); + setState(4862); + match(CLOSE_PAREN); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sig_listContext extends ParserRuleContext { + public List func_sig() { + return getRuleContexts(Func_sigContext.class); + } + + public Func_sigContext func_sig(int i) { + return getRuleContext(Func_sigContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Func_sig_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_func_sig_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFunc_sig_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitFunc_sig_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFunc_sig_list(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sig_listContext func_sig_list() throws RecognitionException { + Func_sig_listContext _localctx = new Func_sig_listContext(_ctx, getState()); + enterRule(_localctx, 448, RULE_func_sig_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4866); + func_sig(); + setState(4871); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(4867); + match(COMMA); + setState(4868); + func_sig(); + } + } + setState(4873); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Type_nameContext extends ParserRuleContext { + public TerminalNode ABSTIME() { + return getToken(PostgreSQLParser.ABSTIME, 0); + } + + public TerminalNode RELTIME() { + return getToken(PostgreSQLParser.RELTIME, 0); + } + + public TerminalNode BIGINT() { + return getToken(PostgreSQLParser.BIGINT, 0); + } + + public TerminalNode BIGSERIAL() { + return getToken(PostgreSQLParser.BIGSERIAL, 0); + } + + public TerminalNode BIT() { + return getToken(PostgreSQLParser.BIT, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode BIT_VARYING() { + return getToken(PostgreSQLParser.BIT_VARYING, 0); + } + + public TerminalNode BOOL() { + return getToken(PostgreSQLParser.BOOL, 0); + } + + public TerminalNode BOOLEAN() { + return getToken(PostgreSQLParser.BOOLEAN, 0); + } + + public TerminalNode BOX() { + return getToken(PostgreSQLParser.BOX, 0); + } + + public TerminalNode BYTEA() { + return getToken(PostgreSQLParser.BYTEA, 0); + } + + public TerminalNode CHAR() { + return getToken(PostgreSQLParser.CHAR, 0); + } + + public TerminalNode CHARACTER() { + return getToken(PostgreSQLParser.CHARACTER, 0); + } + + public TerminalNode CHARACTER_VARYING() { + return getToken(PostgreSQLParser.CHARACTER_VARYING, 0); + } + + public TerminalNode CIDR() { + return getToken(PostgreSQLParser.CIDR, 0); + } + + public TerminalNode CIRCLE() { + return getToken(PostgreSQLParser.CIRCLE, 0); + } + + public TerminalNode DATE() { + return getToken(PostgreSQLParser.DATE, 0); + } + + public TerminalNode DECIMAL() { + return getToken(PostgreSQLParser.DECIMAL, 0); + } + + public TerminalNode COMMA() { + return getToken(PostgreSQLParser.COMMA, 0); + } + + public TerminalNode DOUBLE() { + return getToken(PostgreSQLParser.DOUBLE, 0); + } + + public TerminalNode PRECISION() { + return getToken(PostgreSQLParser.PRECISION, 0); + } + + public TerminalNode FLOAT4() { + return getToken(PostgreSQLParser.FLOAT4, 0); + } + + public TerminalNode FLOAT8() { + return getToken(PostgreSQLParser.FLOAT8, 0); + } + + public TerminalNode INET() { + return getToken(PostgreSQLParser.INET, 0); + } + + public TerminalNode INT() { + return getToken(PostgreSQLParser.INT, 0); + } + + public TerminalNode INT4() { + return getToken(PostgreSQLParser.INT4, 0); + } + + public TerminalNode INT2() { + return getToken(PostgreSQLParser.INT2, 0); + } + + public TerminalNode INT8() { + return getToken(PostgreSQLParser.INT8, 0); + } + + public TerminalNode INTEGER() { + return getToken(PostgreSQLParser.INTEGER, 0); + } + + public TerminalNode INTERVAL() { + return getToken(PostgreSQLParser.INTERVAL, 0); + } + + public TerminalNode FIELDS() { + return getToken(PostgreSQLParser.FIELDS, 0); + } + + public TerminalNode JSON() { + return getToken(PostgreSQLParser.JSON, 0); + } + + public TerminalNode JSONB() { + return getToken(PostgreSQLParser.JSONB, 0); + } + + public TerminalNode LINE() { + return getToken(PostgreSQLParser.LINE, 0); + } + + public TerminalNode LSEG() { + return getToken(PostgreSQLParser.LSEG, 0); + } + + public TerminalNode MACADDR() { + return getToken(PostgreSQLParser.MACADDR, 0); + } + + public TerminalNode MACADDR8() { + return getToken(PostgreSQLParser.MACADDR8, 0); + } + + public TerminalNode MONEY() { + return getToken(PostgreSQLParser.MONEY, 0); + } + + public TerminalNode NUMERIC() { + return getToken(PostgreSQLParser.NUMERIC, 0); + } + + public TerminalNode PATH() { + return getToken(PostgreSQLParser.PATH, 0); + } + + public TerminalNode PG_LSN() { + return getToken(PostgreSQLParser.PG_LSN, 0); + } + + public TerminalNode POINT() { + return getToken(PostgreSQLParser.POINT, 0); + } + + public TerminalNode POLYGON() { + return getToken(PostgreSQLParser.POLYGON, 0); + } + + public TerminalNode REAL() { + return getToken(PostgreSQLParser.REAL, 0); + } + + public TerminalNode SERIAL() { + return getToken(PostgreSQLParser.SERIAL, 0); + } + + public TerminalNode SERIAL2() { + return getToken(PostgreSQLParser.SERIAL2, 0); + } + + public TerminalNode SERIAL4() { + return getToken(PostgreSQLParser.SERIAL4, 0); + } + + public TerminalNode SERIAL8() { + return getToken(PostgreSQLParser.SERIAL8, 0); + } + + public TerminalNode SMALLINT() { + return getToken(PostgreSQLParser.SMALLINT, 0); + } + + public TerminalNode SMALLSERIAL() { + return getToken(PostgreSQLParser.SMALLSERIAL, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public List TIME() { + return getTokens(PostgreSQLParser.TIME); + } + + public TerminalNode TIME(int i) { + return getToken(PostgreSQLParser.TIME, i); + } + + public TerminalNode ZONE() { + return getToken(PostgreSQLParser.ZONE, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode WITHOUT() { + return getToken(PostgreSQLParser.WITHOUT, 0); + } + + public TerminalNode TIMESTAMP() { + return getToken(PostgreSQLParser.TIMESTAMP, 0); + } + + public TerminalNode TIMETZ() { + return getToken(PostgreSQLParser.TIMETZ, 0); + } + + public TerminalNode TIMESTAMPTZ() { + return getToken(PostgreSQLParser.TIMESTAMPTZ, 0); + } + + public TerminalNode TSQUERY() { + return getToken(PostgreSQLParser.TSQUERY, 0); + } + + public TerminalNode TSVECTOR() { + return getToken(PostgreSQLParser.TSVECTOR, 0); + } + + public TerminalNode TXID_SNAPSHOT() { + return getToken(PostgreSQLParser.TXID_SNAPSHOT, 0); + } + + public TerminalNode UUID() { + return getToken(PostgreSQLParser.UUID, 0); + } + + public TerminalNode VARBIT() { + return getToken(PostgreSQLParser.VARBIT, 0); + } + + public TerminalNode VARCHAR() { + return getToken(PostgreSQLParser.VARCHAR, 0); + } + + public TerminalNode XML() { + return getToken(PostgreSQLParser.XML, 0); + } + + public Type_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_type_name; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterType_name(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitType_name(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitType_name(this); + else return visitor.visitChildren(this); + } + } + + public final Type_nameContext type_name() throws RecognitionException { + Type_nameContext _localctx = new Type_nameContext(_ctx, getState()); + enterRule(_localctx, 450, RULE_type_name); + int _la; + try { + setState(5018); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTIME: + enterOuterAlt(_localctx, 1); + { + setState(4874); + match(ABSTIME); + } + break; + case RELTIME: + enterOuterAlt(_localctx, 2); + { + setState(4875); + match(RELTIME); + } + break; + case BIGINT: + enterOuterAlt(_localctx, 3); + { + setState(4876); + match(BIGINT); + } + break; + case BIGSERIAL: + enterOuterAlt(_localctx, 4); + { + setState(4877); + match(BIGSERIAL); + } + break; + case BIT: + enterOuterAlt(_localctx, 5); + { + setState(4878); + match(BIT); + setState(4882); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 576, _ctx)) { + case 1: { + setState(4879); + match(OPEN_PAREN); + setState(4880); + match(INTEGER_LITERAL); + setState(4881); + match(CLOSE_PAREN); + } + break; + } + } + break; + case BIT_VARYING: + enterOuterAlt(_localctx, 6); + { + setState(4884); + match(BIT_VARYING); + setState(4888); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 577, _ctx)) { + case 1: { + setState(4885); + match(OPEN_PAREN); + setState(4886); + match(INTEGER_LITERAL); + setState(4887); + match(CLOSE_PAREN); + } + break; + } + } + break; + case BOOL: + enterOuterAlt(_localctx, 7); + { + setState(4890); + match(BOOL); + } + break; + case BOOLEAN: + enterOuterAlt(_localctx, 8); + { + setState(4891); + match(BOOLEAN); + } + break; + case BOX: + enterOuterAlt(_localctx, 9); + { + setState(4892); + match(BOX); + } + break; + case BYTEA: + enterOuterAlt(_localctx, 10); + { + setState(4893); + match(BYTEA); + } + break; + case CHAR: + enterOuterAlt(_localctx, 11); + { + setState(4894); + match(CHAR); + setState(4898); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 578, _ctx)) { + case 1: { + setState(4895); + match(OPEN_PAREN); + setState(4896); + match(INTEGER_LITERAL); + setState(4897); + match(CLOSE_PAREN); + } + break; + } + } + break; + case CHARACTER: + enterOuterAlt(_localctx, 12); + { + setState(4900); + match(CHARACTER); + setState(4904); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 579, _ctx)) { + case 1: { + setState(4901); + match(OPEN_PAREN); + setState(4902); + match(INTEGER_LITERAL); + setState(4903); + match(CLOSE_PAREN); + } + break; + } + } + break; + case CHARACTER_VARYING: + enterOuterAlt(_localctx, 13); + { + setState(4906); + match(CHARACTER_VARYING); + setState(4910); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 580, _ctx)) { + case 1: { + setState(4907); + match(OPEN_PAREN); + setState(4908); + match(INTEGER_LITERAL); + setState(4909); + match(CLOSE_PAREN); + } + break; + } + } + break; + case CIDR: + enterOuterAlt(_localctx, 14); + { + setState(4912); + match(CIDR); + } + break; + case CIRCLE: + enterOuterAlt(_localctx, 15); + { + setState(4913); + match(CIRCLE); + } + break; + case DATE: + enterOuterAlt(_localctx, 16); + { + setState(4914); + match(DATE); + } + break; + case DECIMAL: + enterOuterAlt(_localctx, 17); + { + setState(4915); + match(DECIMAL); + setState(4921); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 581, _ctx)) { + case 1: { + setState(4916); + match(OPEN_PAREN); + setState(4917); + match(INTEGER_LITERAL); + setState(4918); + match(COMMA); + setState(4919); + match(INTEGER_LITERAL); + setState(4920); + match(CLOSE_PAREN); + } + break; + } + } + break; + case DOUBLE: + enterOuterAlt(_localctx, 18); + { + setState(4923); + match(DOUBLE); + setState(4924); + match(PRECISION); + } + break; + case FLOAT4: + enterOuterAlt(_localctx, 19); + { + setState(4925); + match(FLOAT4); + } + break; + case FLOAT8: + enterOuterAlt(_localctx, 20); + { + setState(4926); + match(FLOAT8); + } + break; + case INET: + enterOuterAlt(_localctx, 21); + { + setState(4927); + match(INET); + } + break; + case INT: + enterOuterAlt(_localctx, 22); + { + setState(4928); + match(INT); + } + break; + case INT4: + enterOuterAlt(_localctx, 23); + { + setState(4929); + match(INT4); + } + break; + case INT2: + enterOuterAlt(_localctx, 24); + { + setState(4930); + match(INT2); + } + break; + case INT8: + enterOuterAlt(_localctx, 25); + { + setState(4931); + match(INT8); + } + break; + case INTEGER: + enterOuterAlt(_localctx, 26); + { + setState(4932); + match(INTEGER); + } + break; + case INTERVAL: + enterOuterAlt(_localctx, 27); + { + setState(4933); + match(INTERVAL); + setState(4935); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 582, _ctx)) { + case 1: { + setState(4934); + match(FIELDS); + } + break; + } + setState(4938); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 583, _ctx)) { + case 1: { + setState(4937); + match(INTEGER_LITERAL); + } + break; + } + } + break; + case JSON: + enterOuterAlt(_localctx, 28); + { + setState(4940); + match(JSON); + } + break; + case JSONB: + enterOuterAlt(_localctx, 29); + { + setState(4941); + match(JSONB); + } + break; + case LINE: + enterOuterAlt(_localctx, 30); + { + setState(4942); + match(LINE); + } + break; + case LSEG: + enterOuterAlt(_localctx, 31); + { + setState(4943); + match(LSEG); + } + break; + case MACADDR: + enterOuterAlt(_localctx, 32); + { + setState(4944); + match(MACADDR); + } + break; + case MACADDR8: + enterOuterAlt(_localctx, 33); + { + setState(4945); + match(MACADDR8); + } + break; + case MONEY: + enterOuterAlt(_localctx, 34); + { + setState(4946); + match(MONEY); + } + break; + case NUMERIC: + enterOuterAlt(_localctx, 35); + { + setState(4947); + match(NUMERIC); + setState(4953); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 584, _ctx)) { + case 1: { + setState(4948); + match(OPEN_PAREN); + setState(4949); + match(INTEGER_LITERAL); + setState(4950); + match(COMMA); + setState(4951); + match(INTEGER_LITERAL); + setState(4952); + match(CLOSE_PAREN); + } + break; + } + } + break; + case PATH: + enterOuterAlt(_localctx, 36); + { + setState(4955); + match(PATH); + } + break; + case PG_LSN: + enterOuterAlt(_localctx, 37); + { + setState(4956); + match(PG_LSN); + } + break; + case POINT: + enterOuterAlt(_localctx, 38); + { + setState(4957); + match(POINT); + } + break; + case POLYGON: + enterOuterAlt(_localctx, 39); + { + setState(4958); + match(POLYGON); + } + break; + case REAL: + enterOuterAlt(_localctx, 40); + { + setState(4959); + match(REAL); + } + break; + case SERIAL: + enterOuterAlt(_localctx, 41); + { + setState(4960); + match(SERIAL); + } + break; + case SERIAL2: + enterOuterAlt(_localctx, 42); + { + setState(4961); + match(SERIAL2); + } + break; + case SERIAL4: + enterOuterAlt(_localctx, 43); + { + setState(4962); + match(SERIAL4); + } + break; + case SERIAL8: + enterOuterAlt(_localctx, 44); + { + setState(4963); + match(SERIAL8); + } + break; + case SMALLINT: + enterOuterAlt(_localctx, 45); + { + setState(4964); + match(SMALLINT); + } + break; + case SMALLSERIAL: + enterOuterAlt(_localctx, 46); + { + setState(4965); + match(SMALLSERIAL); + } + break; + case TEXT: + enterOuterAlt(_localctx, 47); + { + setState(4966); + match(TEXT); + } + break; + case TIME: + enterOuterAlt(_localctx, 48); + { + setState(4967); + match(TIME); + setState(4971); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 585, _ctx)) { + case 1: { + setState(4968); + match(OPEN_PAREN); + setState(4969); + match(INTEGER_LITERAL); + setState(4970); + match(CLOSE_PAREN); + } + break; + } + setState(4976); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 586, _ctx)) { + case 1: { + setState(4973); + _la = _input.LA(1); + if (!(_la == WITH || _la == WITHOUT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4974); + match(TIME); + setState(4975); + match(ZONE); + } + break; + } + } + break; + case TIMESTAMP: + enterOuterAlt(_localctx, 49); + { + setState(4978); + match(TIMESTAMP); + setState(4982); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 587, _ctx)) { + case 1: { + setState(4979); + match(OPEN_PAREN); + setState(4980); + match(INTEGER_LITERAL); + setState(4981); + match(CLOSE_PAREN); + } + break; + } + setState(4987); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 588, _ctx)) { + case 1: { + setState(4984); + _la = _input.LA(1); + if (!(_la == WITH || _la == WITHOUT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4985); + match(TIME); + setState(4986); + match(ZONE); + } + break; + } + } + break; + case TIMETZ: + enterOuterAlt(_localctx, 50); + { + setState(4989); + match(TIMETZ); + setState(4993); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 589, _ctx)) { + case 1: { + setState(4990); + match(OPEN_PAREN); + setState(4991); + match(INTEGER_LITERAL); + setState(4992); + match(CLOSE_PAREN); + } + break; + } + } + break; + case TIMESTAMPTZ: + enterOuterAlt(_localctx, 51); + { + setState(4995); + match(TIMESTAMPTZ); + setState(4999); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 590, _ctx)) { + case 1: { + setState(4996); + match(OPEN_PAREN); + setState(4997); + match(INTEGER_LITERAL); + setState(4998); + match(CLOSE_PAREN); + } + break; + } + } + break; + case TSQUERY: + enterOuterAlt(_localctx, 52); + { + setState(5001); + match(TSQUERY); + } + break; + case TSVECTOR: + enterOuterAlt(_localctx, 53); + { + setState(5002); + match(TSVECTOR); + } + break; + case TXID_SNAPSHOT: + enterOuterAlt(_localctx, 54); + { + setState(5003); + match(TXID_SNAPSHOT); + } + break; + case UUID: + enterOuterAlt(_localctx, 55); + { + setState(5004); + match(UUID); + } + break; + case VARBIT: + enterOuterAlt(_localctx, 56); + { + setState(5005); + match(VARBIT); + setState(5009); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 591, _ctx)) { + case 1: { + setState(5006); + match(OPEN_PAREN); + setState(5007); + match(INTEGER_LITERAL); + setState(5008); + match(CLOSE_PAREN); + } + break; + } + } + break; + case VARCHAR: + enterOuterAlt(_localctx, 57); + { + setState(5011); + match(VARCHAR); + setState(5015); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 592, _ctx)) { + case 1: { + setState(5012); + match(OPEN_PAREN); + setState(5013); + match(INTEGER_LITERAL); + setState(5014); + match(CLOSE_PAREN); + } + break; + } + } + break; + case XML: + enterOuterAlt(_localctx, 58); + { + setState(5017); + match(XML); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class TimezoneContext extends ParserRuleContext { + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode DOUBLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public TerminalNode NUMERIC_LITERAL() { + return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); + } + + public TimezoneContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_timezone; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterTimezone(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitTimezone(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTimezone(this); + else return visitor.visitChildren(this); + } + } + + public final TimezoneContext timezone() throws RecognitionException { + TimezoneContext _localctx = new TimezoneContext(_ctx, getState()); + enterRule(_localctx, 452, RULE_timezone); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5020); + _la = _input.LA(1); + if (!(((((_la - 772)) & ~0x3f) == 0 && ((1L << (_la - 772)) & ((1L << (NUMERIC_LITERAL - 772)) | (1L << (INTEGER_LITERAL - 772)) | (1L << (SINGLEQ_STRING_LITERAL - 772)) | (1L << (DOUBLEQ_STRING_LITERAL - 772)))) != 0))) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class OperContext extends ParserRuleContext { + public TerminalNode IS() { + return getToken(PostgreSQLParser.IS, 0); + } + + public TerminalNode OF() { + return getToken(PostgreSQLParser.OF, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public OperContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_oper; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterOper(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitOper(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitOper(this); + else return visitor.visitChildren(this); + } + } + + public final OperContext oper() throws RecognitionException { + OperContext _localctx = new OperContext(_ctx, getState()); + enterRule(_localctx, 454, RULE_oper); + try { + setState(5026); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 594, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5023); + match(IS); + setState(5024); + match(OF); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5025); + match(ALL); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class AggregateContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class, 0); + } + + public TerminalNode FILTER() { + return getToken(PostgreSQLParser.FILTER, 0); + } + + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class, 0); + } + + public TerminalNode ALL() { + return getToken(PostgreSQLParser.ALL, 0); + } + + public TerminalNode DISTINCT() { + return getToken(PostgreSQLParser.DISTINCT, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public TerminalNode WITHIN() { + return getToken(PostgreSQLParser.WITHIN, 0); + } + + public TerminalNode GROUP() { + return getToken(PostgreSQLParser.GROUP, 0); + } + + public AggregateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_aggregate; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAggregate(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitAggregate(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAggregate(this); + else return visitor.visitChildren(this); + } + } + + public final AggregateContext aggregate() throws RecognitionException { + AggregateContext _localctx = new AggregateContext(_ctx, getState()); + enterRule(_localctx, 456, RULE_aggregate); + int _la; + try { + setState(5091); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 603, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5028); + identifier(0); + setState(5029); + match(OPEN_PAREN); + setState(5031); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 595, _ctx)) { + case 1: { + setState(5030); + _la = _input.LA(1); + if (!(_la == ALL || _la == DISTINCT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(5033); + expr(0); + setState(5038); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5034); + match(COMMA); + setState(5035); + expr(0); + } + } + setState(5040); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5042); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ORDER) { + { + setState(5041); + order_by_clause(); + } + } + + setState(5044); + match(CLOSE_PAREN); + setState(5051); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 598, _ctx)) { + case 1: { + setState(5045); + match(FILTER); + setState(5046); + match(OPEN_PAREN); + setState(5047); + match(WHERE); + setState(5048); + where_clause(); + setState(5049); + match(CLOSE_PAREN); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5053); + identifier(0); + setState(5054); + match(OPEN_PAREN); + setState(5055); + match(STAR); + setState(5056); + match(CLOSE_PAREN); + setState(5063); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 599, _ctx)) { + case 1: { + setState(5057); + match(FILTER); + setState(5058); + match(OPEN_PAREN); + setState(5059); + match(WHERE); + setState(5060); + where_clause(); + setState(5061); + match(CLOSE_PAREN); + } + break; + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5065); + identifier(0); + setState(5066); + match(OPEN_PAREN); + setState(5075); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { + { + setState(5067); + expr(0); + setState(5072); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5068); + match(COMMA); + setState(5069); + expr(0); + } + } + setState(5074); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(5077); + match(CLOSE_PAREN); + setState(5078); + match(WITHIN); + setState(5079); + match(GROUP); + setState(5080); + match(OPEN_PAREN); + setState(5081); + order_by_clause(); + setState(5082); + match(CLOSE_PAREN); + setState(5089); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 602, _ctx)) { + case 1: { + setState(5083); + match(FILTER); + setState(5084); + match(OPEN_PAREN); + setState(5085); + match(WHERE); + setState(5086); + where_clause(); + setState(5087); + match(CLOSE_PAREN); + } + break; + } + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Name_Context extends ParserRuleContext { + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Name_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_name_; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterName_(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitName_(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitName_(this); + else return visitor.visitChildren(this); + } + } + + public final Name_Context name_() throws RecognitionException { + Name_Context _localctx = new Name_Context(_ctx, getState()); + enterRule(_localctx, 458, RULE_name_); + try { + setState(5095); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SINGLEQ_STRING_LITERAL: + enterOuterAlt(_localctx, 1); + { + setState(5093); + match(SINGLEQ_STRING_LITERAL); + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + enterOuterAlt(_localctx, 2); + { + setState(5094); + identifier(0); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Name_listContext extends ParserRuleContext { + public List name_() { + return getRuleContexts(Name_Context.class); + } + + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Name_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_name_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterName_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitName_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitName_list(this); + else return visitor.visitChildren(this); + } + } + + public final Name_listContext name_list() throws RecognitionException { + Name_listContext _localctx = new Name_listContext(_ctx, getState()); + enterRule(_localctx, 460, RULE_name_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5097); + name_(); + setState(5102); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5098); + match(COMMA); + setState(5099); + name_(); + } + } + setState(5104); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Identifier_listContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Identifier_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_identifier_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterIdentifier_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitIdentifier_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitIdentifier_list(this); + else return visitor.visitChildren(this); + } + } + + public final Identifier_listContext identifier_list() throws RecognitionException { + Identifier_listContext _localctx = new Identifier_listContext(_ctx, getState()); + enterRule(_localctx, 462, RULE_identifier_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5105); + identifier(0); + setState(5110); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 606, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(5106); + match(COMMA); + setState(5107); + identifier(0); + } + } + } + setState(5112); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 606, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Option_exprContext extends ParserRuleContext { + public IdentifierContext option_name; + public Param_valueContext value; + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public TerminalNode EQUAL() { + return getToken(PostgreSQLParser.EQUAL, 0); + } + + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class, 0); + } + + public Option_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_option_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterOption_expr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitOption_expr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitOption_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Option_exprContext option_expr() throws RecognitionException { + Option_exprContext _localctx = new Option_exprContext(_ctx, getState()); + enterRule(_localctx, 464, RULE_option_expr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5113); + ((Option_exprContext) _localctx).option_name = identifier(0); + setState(5116); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == EQUAL) { + { + setState(5114); + match(EQUAL); + setState(5115); + ((Option_exprContext) _localctx).value = param_value(); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Option_listContext extends ParserRuleContext { + public List option_expr() { + return getRuleContexts(Option_exprContext.class); + } + + public Option_exprContext option_expr(int i) { + return getRuleContext(Option_exprContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Option_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_option_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterOption_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitOption_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitOption_list(this); + else return visitor.visitChildren(this); + } + } + + public final Option_listContext option_list() throws RecognitionException { + Option_listContext _localctx = new Option_listContext(_ctx, getState()); + enterRule(_localctx, 466, RULE_option_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5118); + option_expr(); + setState(5123); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5119); + match(COMMA); + setState(5120); + option_expr(); + } + } + setState(5125); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Table_name_Context extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Table_name_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_table_name_; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTable_name_(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTable_name_(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTable_name_(this); + else return visitor.visitChildren(this); + } + } + + public final Table_name_Context table_name_() throws RecognitionException { + Table_name_Context _localctx = new Table_name_Context(_ctx, getState()); + enterRule(_localctx, 468, RULE_table_name_); + try { + enterOuterAlt(_localctx, 1); + { + setState(5126); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Data_typeContext extends ParserRuleContext { + public Type_nameContext type_name() { + return getRuleContext(Type_nameContext.class, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public List OPEN_BRACKET() { + return getTokens(PostgreSQLParser.OPEN_BRACKET); + } + + public TerminalNode OPEN_BRACKET(int i) { + return getToken(PostgreSQLParser.OPEN_BRACKET, i); + } + + public List CLOSE_BRACKET() { + return getTokens(PostgreSQLParser.CLOSE_BRACKET); + } + + public TerminalNode CLOSE_BRACKET(int i) { + return getToken(PostgreSQLParser.CLOSE_BRACKET, i); + } + + public List INTEGER_LITERAL() { + return getTokens(PostgreSQLParser.INTEGER_LITERAL); + } + + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + + public Data_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_data_type; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterData_type(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitData_type(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitData_type(this); + else return visitor.visitChildren(this); + } + } + + public final Data_typeContext data_type() throws RecognitionException { + Data_typeContext _localctx = new Data_typeContext(_ctx, getState()); + enterRule(_localctx, 470, RULE_data_type); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5130); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 609, _ctx)) { + case 1: { + setState(5128); + type_name(); + } + break; + case 2: { + setState(5129); + identifier(0); + } + break; + } + setState(5139); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 611, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(5132); + match(OPEN_BRACKET); + setState(5134); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INTEGER_LITERAL) { + { + setState(5133); + match(INTEGER_LITERAL); + } + } + + setState(5136); + match(CLOSE_BRACKET); + } + } + } + setState(5141); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 611, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Data_type_listContext extends ParserRuleContext { + public List data_type() { + return getRuleContexts(Data_typeContext.class); + } + + public Data_typeContext data_type(int i) { + return getRuleContext(Data_typeContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Data_type_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_data_type_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterData_type_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitData_type_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitData_type_list(this); + else return visitor.visitChildren(this); + } + } + + public final Data_type_listContext data_type_list() throws RecognitionException { + Data_type_listContext _localctx = new Data_type_listContext(_ctx, getState()); + enterRule(_localctx, 472, RULE_data_type_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5142); + data_type(); + setState(5147); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5143); + match(COMMA); + setState(5144); + data_type(); + } + } + setState(5149); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Index_methodContext extends ParserRuleContext { + public Token builtin; + public IdentifierContext unknown; + + public TerminalNode BTREE() { + return getToken(PostgreSQLParser.BTREE, 0); + } + + public TerminalNode HASH_() { + return getToken(PostgreSQLParser.HASH_, 0); + } + + public TerminalNode GIST() { + return getToken(PostgreSQLParser.GIST, 0); + } + + public TerminalNode SPGIST() { + return getToken(PostgreSQLParser.SPGIST, 0); + } + + public TerminalNode GIN() { + return getToken(PostgreSQLParser.GIN, 0); + } + + public TerminalNode BRIN() { + return getToken(PostgreSQLParser.BRIN, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Index_methodContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_index_method; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterIndex_method(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitIndex_method(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitIndex_method(this); + else return visitor.visitChildren(this); + } + } + + public final Index_methodContext index_method() throws RecognitionException { + Index_methodContext _localctx = new Index_methodContext(_ctx, getState()); + enterRule(_localctx, 474, RULE_index_method); + int _la; + try { + setState(5152); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BTREE: + case HASH_: + case GIST: + case SPGIST: + case GIN: + case BRIN: + enterOuterAlt(_localctx, 1); + { + setState(5150); + ((Index_methodContext) _localctx).builtin = _input.LT(1); + _la = _input.LA(1); + if (!(((((_la - 701)) & ~0x3f) == 0 && ((1L << (_la - 701)) & ((1L << (BTREE - 701)) | (1L << (HASH_ - 701)) | (1L << (GIST - 701)) | (1L << (SPGIST - 701)) | (1L << (GIN - 701)) | (1L << (BRIN - 701)))) != 0))) { + ((Index_methodContext) _localctx).builtin = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + enterOuterAlt(_localctx, 2); + { + setState(5151); + ((Index_methodContext) _localctx).unknown = identifier(0); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Func_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Func_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_func_name; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFunc_name(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFunc_name(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFunc_name(this); + else return visitor.visitChildren(this); + } + } + + public final Func_nameContext func_name() throws RecognitionException { + Func_nameContext _localctx = new Func_nameContext(_ctx, getState()); + enterRule(_localctx, 476, RULE_func_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5154); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Func_callContext extends ParserRuleContext { + public Func_nameContext func_name() { + return getRuleContext(Func_nameContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public TerminalNode VARIADIC() { + return getToken(PostgreSQLParser.VARIADIC, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Todo_fill_inContext todo_fill_in() { + return getRuleContext(Todo_fill_inContext.class, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public TerminalNode FOR() { + return getToken(PostgreSQLParser.FOR, 0); + } + + public Func_callContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_func_call; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFunc_call(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFunc_call(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFunc_call(this); + else return visitor.visitChildren(this); + } + } + + public final Func_callContext func_call() throws RecognitionException { + Func_callContext _localctx = new Func_callContext(_ctx, getState()); + enterRule(_localctx, 478, RULE_func_call); + int _la; + try { + int _alt; + setState(5192); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 618, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5156); + func_name(); + setState(5157); + match(OPEN_PAREN); + setState(5158); + match(VARIADIC); + setState(5159); + expr(0); + setState(5160); + match(CLOSE_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5162); + func_name(); + setState(5163); + match(OPEN_PAREN); + setState(5177); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { + { + setState(5164); + expr(0); + setState(5169); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 614, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(5165); + match(COMMA); + setState(5166); + expr(0); + } + } + } + setState(5171); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 614, _ctx); + } + setState(5175); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == COMMA) { + { + setState(5172); + match(COMMA); + setState(5173); + match(VARIADIC); + setState(5174); + expr(0); + } + } + + } + } + + setState(5179); + match(CLOSE_PAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5181); + func_name(); + setState(5182); + match(OPEN_PAREN); + setState(5183); + todo_fill_in(); + setState(5184); + match(FROM); + setState(5185); + expr(0); + setState(5188); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == FOR) { + { + setState(5186); + match(FOR); + setState(5187); + expr(0); + } + } + + setState(5190); + match(CLOSE_PAREN); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Array_cons_exprContext extends ParserRuleContext { + public TerminalNode ARRAY() { + return getToken(PostgreSQLParser.ARRAY, 0); + } + + public TerminalNode OPEN_BRACKET() { + return getToken(PostgreSQLParser.OPEN_BRACKET, 0); + } + + public TerminalNode CLOSE_BRACKET() { + return getToken(PostgreSQLParser.CLOSE_BRACKET, 0); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Array_cons_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_array_cons_expr; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterArray_cons_expr(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitArray_cons_expr(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitArray_cons_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Array_cons_exprContext array_cons_expr() throws RecognitionException { + Array_cons_exprContext _localctx = new Array_cons_exprContext(_ctx, getState()); + enterRule(_localctx, 480, RULE_array_cons_expr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5194); + match(ARRAY); + setState(5195); + match(OPEN_BRACKET); + setState(5204); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { + { + setState(5196); + expr(0); + setState(5201); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5197); + match(COMMA); + setState(5198); + expr(0); + } + } + setState(5203); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(5206); + match(CLOSE_BRACKET); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class From_itemContext extends ParserRuleContext { + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class, 0); + } + + public TerminalNode ONLY() { + return getToken(PostgreSQLParser.ONLY, 0); + } + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public With_column_aliasContext with_column_alias() { + return getRuleContext(With_column_aliasContext.class, 0); + } + + public TerminalNode TABLESAMPLE() { + return getToken(PostgreSQLParser.TABLESAMPLE, 0); + } + + public List todo_fill_in() { + return getRuleContexts(Todo_fill_inContext.class); + } + + public Todo_fill_inContext todo_fill_in(int i) { + return getRuleContext(Todo_fill_inContext.class, i); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public TerminalNode REPEATABLE() { + return getToken(PostgreSQLParser.REPEATABLE, 0); + } + + public StmtContext stmt() { + return getRuleContext(StmtContext.class, 0); + } + + public AliasContext alias() { + return getRuleContext(AliasContext.class, 0); + } + + public TerminalNode LATERAL() { + return getToken(PostgreSQLParser.LATERAL, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List column_alias() { + return getRuleContexts(Column_aliasContext.class); + } + + public Column_aliasContext column_alias(int i) { + return getRuleContext(Column_aliasContext.class, i); + } + + public Func_callContext func_call() { + return getRuleContext(Func_callContext.class, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode ORDINALITY() { + return getToken(PostgreSQLParser.ORDINALITY, 0); + } + + public List column_definition() { + return getRuleContexts(Column_definitionContext.class); + } + + public Column_definitionContext column_definition(int i) { + return getRuleContext(Column_definitionContext.class, i); + } + + public TerminalNode ROWS() { + return getToken(PostgreSQLParser.ROWS, 0); + } + + public TerminalNode FROM() { + return getToken(PostgreSQLParser.FROM, 0); + } + + public List from_item() { + return getRuleContexts(From_itemContext.class); + } + + public From_itemContext from_item(int i) { + return getRuleContext(From_itemContext.class, i); + } + + public Join_typeContext join_type() { + return getRuleContext(Join_typeContext.class, 0); + } + + public TerminalNode NATURAL() { + return getToken(PostgreSQLParser.NATURAL, 0); + } + + public Join_clauseContext join_clause() { + return getRuleContext(Join_clauseContext.class, 0); + } + + public From_itemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_from_item; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterFrom_item(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFrom_item(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitFrom_item(this); + else return visitor.visitChildren(this); + } + } + + public final From_itemContext from_item() throws RecognitionException { + return from_item(0); + } + + private From_itemContext from_item(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + From_itemContext _localctx = new From_itemContext(_ctx, _parentState); + From_itemContext _prevctx = _localctx; + int _startState = 482; + enterRecursionRule(_localctx, 482, RULE_from_item, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5314); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 639, _ctx)) { + case 1: { + setState(5210); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ONLY) { + { + setState(5209); + match(ONLY); + } + } + + setState(5212); + table_name_(); + setState(5214); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 622, _ctx)) { + case 1: { + setState(5213); + match(STAR); + } + break; + } + setState(5217); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 623, _ctx)) { + case 1: { + setState(5216); + with_column_alias(); + } + break; + } + setState(5238); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 626, _ctx)) { + case 1: { + setState(5219); + match(TABLESAMPLE); + setState(5220); + todo_fill_in(); + setState(5221); + match(OPEN_PAREN); + setState(5222); + expr(0); + setState(5227); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5223); + match(COMMA); + setState(5224); + expr(0); + } + } + setState(5229); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5230); + match(CLOSE_PAREN); + setState(5236); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 625, _ctx)) { + case 1: { + setState(5231); + match(REPEATABLE); + setState(5232); + match(OPEN_PAREN); + setState(5233); + todo_fill_in(); + setState(5234); + match(CLOSE_PAREN); + } + break; + } + } + break; + } + } + break; + case 2: { + setState(5241); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LATERAL) { + { + setState(5240); + match(LATERAL); + } + } + + setState(5243); + match(OPEN_PAREN); + setState(5244); + stmt(); + setState(5245); + match(CLOSE_PAREN); + setState(5247); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(5246); + match(AS); + } + } + + setState(5249); + alias(); + setState(5261); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 630, _ctx)) { + case 1: { + setState(5250); + match(OPEN_PAREN); + setState(5251); + column_alias(); + setState(5256); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5252); + match(COMMA); + setState(5253); + column_alias(); + } + } + setState(5258); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5259); + match(CLOSE_PAREN); + } + break; + } + } + break; + case 3: { + setState(5264); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LATERAL) { + { + setState(5263); + match(LATERAL); + } + } + + setState(5266); + func_call(); + setState(5269); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 632, _ctx)) { + case 1: { + setState(5267); + match(WITH); + setState(5268); + match(ORDINALITY); + } + break; + } + setState(5272); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 633, _ctx)) { + case 1: { + setState(5271); + with_column_alias(); + } + break; + } + } + break; + case 4: { + setState(5275); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LATERAL) { + { + setState(5274); + match(LATERAL); + } + } + + setState(5277); + func_call(); + setState(5278); + match(AS); + setState(5279); + match(OPEN_PAREN); + setState(5280); + column_definition(); + setState(5285); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5281); + match(COMMA); + setState(5282); + column_definition(); + } + } + setState(5287); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5288); + match(CLOSE_PAREN); + } + break; + case 5: { + setState(5291); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == LATERAL) { + { + setState(5290); + match(LATERAL); + } + } + + setState(5293); + match(ROWS); + setState(5294); + match(FROM); + setState(5295); + match(OPEN_PAREN); + setState(5296); + func_call(); + setState(5297); + match(CLOSE_PAREN); + setState(5310); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(5298); + match(AS); + setState(5299); + match(OPEN_PAREN); + setState(5300); + column_definition(); + setState(5305); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5301); + match(COMMA); + setState(5302); + column_definition(); + } + } + setState(5307); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5308); + match(CLOSE_PAREN); + } + } + + setState(5312); + match(CLOSE_PAREN); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(5333); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 644, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + if (_parseListeners != null) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new From_itemContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_from_item); + setState(5316); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(5318); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NATURAL) { + { + setState(5317); + match(NATURAL); + } + } + + setState(5320); + join_type(); + setState(5322); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 641, _ctx)) { + case 1: { + setState(5321); + match(OPEN_PAREN); + } + break; + } + setState(5324); + from_item(0); + setState(5326); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 642, _ctx)) { + case 1: { + setState(5325); + join_clause(); + } + break; + } + setState(5329); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 643, _ctx)) { + case 1: { + setState(5328); + match(CLOSE_PAREN); + } + break; + } + } + } + } + setState(5335); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 644, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class With_column_aliasContext extends ParserRuleContext { + public AliasContext alias() { + return getRuleContext(AliasContext.class, 0); + } + + public TerminalNode AS() { + return getToken(PostgreSQLParser.AS, 0); + } + + public List column_alias() { + return getRuleContexts(Column_aliasContext.class); + } + + public Column_aliasContext column_alias(int i) { + return getRuleContext(Column_aliasContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public With_column_aliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_with_column_alias; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWith_column_alias(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitWith_column_alias(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWith_column_alias(this); + else return visitor.visitChildren(this); + } + } + + public final With_column_aliasContext with_column_alias() throws RecognitionException { + With_column_aliasContext _localctx = new With_column_aliasContext(_ctx, getState()); + enterRule(_localctx, 484, RULE_with_column_alias); + int _la; + try { + int _alt; + setState(5358); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 649, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5337); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(5336); + match(AS); + } + } + + setState(5339); + alias(); + setState(5348); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 647, _ctx)) { + case 1: { + setState(5340); + column_alias(); + setState(5345); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 646, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + { + { + setState(5341); + match(COMMA); + setState(5342); + column_alias(); + } + } + } + setState(5347); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 646, _ctx); + } + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5351); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == AS) { + { + setState(5350); + match(AS); + } + } + + setState(5353); + alias(); + setState(5354); + match(OPEN_PAREN); + setState(5355); + name_list(); + setState(5356); + match(CLOSE_PAREN); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Join_typeContext extends ParserRuleContext { + public TerminalNode JOIN() { + return getToken(PostgreSQLParser.JOIN, 0); + } + + public TerminalNode INNER() { + return getToken(PostgreSQLParser.INNER, 0); + } + + public TerminalNode LEFT() { + return getToken(PostgreSQLParser.LEFT, 0); + } + + public TerminalNode OUTER() { + return getToken(PostgreSQLParser.OUTER, 0); + } + + public TerminalNode RIGHT() { + return getToken(PostgreSQLParser.RIGHT, 0); + } + + public TerminalNode FULL() { + return getToken(PostgreSQLParser.FULL, 0); + } + + public TerminalNode CROSS() { + return getToken(PostgreSQLParser.CROSS, 0); + } + + public Join_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_join_type; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterJoin_type(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitJoin_type(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitJoin_type(this); + else return visitor.visitChildren(this); + } + } + + public final Join_typeContext join_type() throws RecognitionException { + Join_typeContext _localctx = new Join_typeContext(_ctx, getState()); + enterRule(_localctx, 486, RULE_join_type); + int _la; + try { + setState(5381); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INNER: + case JOIN: + enterOuterAlt(_localctx, 1); + { + setState(5361); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INNER) { + { + setState(5360); + match(INNER); + } + } + + setState(5363); + match(JOIN); + } + break; + case LEFT: + enterOuterAlt(_localctx, 2); + { + setState(5364); + match(LEFT); + setState(5366); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OUTER) { + { + setState(5365); + match(OUTER); + } + } + + setState(5368); + match(JOIN); + } + break; + case RIGHT: + enterOuterAlt(_localctx, 3); + { + setState(5369); + match(RIGHT); + setState(5371); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OUTER) { + { + setState(5370); + match(OUTER); + } + } + + setState(5373); + match(JOIN); + } + break; + case FULL: + enterOuterAlt(_localctx, 4); + { + setState(5374); + match(FULL); + setState(5376); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == OUTER) { + { + setState(5375); + match(OUTER); + } + } + + setState(5378); + match(JOIN); + } + break; + case CROSS: + enterOuterAlt(_localctx, 5); + { + setState(5379); + match(CROSS); + setState(5380); + match(JOIN); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Join_clauseContext extends ParserRuleContext { + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List column_name() { + return getRuleContexts(Column_nameContext.class); + } + + public Column_nameContext column_name(int i) { + return getRuleContext(Column_nameContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Join_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_join_clause; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterJoin_clause(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitJoin_clause(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitJoin_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Join_clauseContext join_clause() throws RecognitionException { + Join_clauseContext _localctx = new Join_clauseContext(_ctx, getState()); + enterRule(_localctx, 488, RULE_join_clause); + int _la; + try { + setState(5397); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ON: + enterOuterAlt(_localctx, 1); + { + setState(5383); + match(ON); + setState(5384); + predicate(0); + } + break; + case USING: + enterOuterAlt(_localctx, 2); + { + setState(5385); + match(USING); + setState(5386); + match(OPEN_PAREN); + setState(5387); + column_name(); + setState(5392); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5388); + match(COMMA); + setState(5389); + column_name(); + } + } + setState(5394); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5395); + match(CLOSE_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class PredicateContext extends ParserRuleContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class, i); + } + + public OperContext oper() { + return getRuleContext(OperContext.class, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class, i); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode AND() { + return getToken(PostgreSQLParser.AND, 0); + } + + public TerminalNode OR() { + return getToken(PostgreSQLParser.OR, 0); + } + + public PredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_predicate; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterPredicate(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitPredicate(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitPredicate(this); + else return visitor.visitChildren(this); + } + } + + public final PredicateContext predicate() throws RecognitionException { + return predicate(0); + } + + private PredicateContext predicate(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + PredicateContext _localctx = new PredicateContext(_ctx, _parentState); + PredicateContext _prevctx = _localctx; + int _startState = 490; + enterRecursionRule(_localctx, 490, RULE_predicate, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5411); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 657, _ctx)) { + case 1: { + setState(5400); + expr(0); + } + break; + case 2: { + setState(5401); + expr(0); + setState(5402); + oper(); + setState(5403); + expr(0); + } + break; + case 3: { + setState(5405); + match(OPEN_PAREN); + setState(5406); + predicate(0); + setState(5407); + match(CLOSE_PAREN); + } + break; + case 4: { + setState(5409); + match(NOT); + setState(5410); + predicate(1); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(5421); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 659, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + if (_parseListeners != null) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(5419); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 658, _ctx)) { + case 1: { + _localctx = new PredicateContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_predicate); + setState(5413); + if (!(precpred(_ctx, 3))) + throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(5414); + match(AND); + setState(5415); + predicate(4); + } + break; + case 2: { + _localctx = new PredicateContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_predicate); + setState(5416); + if (!(precpred(_ctx, 2))) + throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(5417); + match(OR); + setState(5418); + predicate(3); + } + break; + } + } + } + setState(5423); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 659, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Aggregate_signatureContext extends ParserRuleContext { + public Token argmode; + public IdentifierContext argname; + public Data_type_listContext argtype; + + public TerminalNode STAR() { + return getToken(PostgreSQLParser.STAR, 0); + } + + public List data_type_list() { + return getRuleContexts(Data_type_listContext.class); + } + + public Data_type_listContext data_type_list(int i) { + return getRuleContext(Data_type_listContext.class, i); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public List IN() { + return getTokens(PostgreSQLParser.IN); + } + + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + + public List VARIADIC() { + return getTokens(PostgreSQLParser.VARIADIC); + } + + public TerminalNode VARIADIC(int i) { + return getToken(PostgreSQLParser.VARIADIC, i); + } + + public TerminalNode ORDER() { + return getToken(PostgreSQLParser.ORDER, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public Aggregate_signatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_aggregate_signature; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterAggregate_signature(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitAggregate_signature(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAggregate_signature(this); + else return visitor.visitChildren(this); + } + } + + public final Aggregate_signatureContext aggregate_signature() throws RecognitionException { + Aggregate_signatureContext _localctx = new Aggregate_signatureContext(_ctx, getState()); + enterRule(_localctx, 492, RULE_aggregate_signature); + int _la; + try { + setState(5450); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 666, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5424); + match(STAR); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5426); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN || _la == VARIADIC) { + { + setState(5425); + ((Aggregate_signatureContext) _localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if (!(_la == IN || _la == VARIADIC)) { + ((Aggregate_signatureContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5429); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 661, _ctx)) { + case 1: { + setState(5428); + ((Aggregate_signatureContext) _localctx).argname = identifier(0); + } + break; + } + setState(5431); + ((Aggregate_signatureContext) _localctx).argtype = data_type_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + { + setState(5433); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN || _la == VARIADIC) { + { + setState(5432); + ((Aggregate_signatureContext) _localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if (!(_la == IN || _la == VARIADIC)) { + ((Aggregate_signatureContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5436); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 663, _ctx)) { + case 1: { + setState(5435); + ((Aggregate_signatureContext) _localctx).argname = identifier(0); + } + break; + } + setState(5438); + ((Aggregate_signatureContext) _localctx).argtype = data_type_list(); + } + setState(5440); + match(ORDER); + setState(5441); + match(BY); + setState(5443); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == IN || _la == VARIADIC) { + { + setState(5442); + ((Aggregate_signatureContext) _localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if (!(_la == IN || _la == VARIADIC)) { + ((Aggregate_signatureContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5446); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 665, _ctx)) { + case 1: { + setState(5445); + ((Aggregate_signatureContext) _localctx).argname = identifier(0); + } + break; + } + setState(5448); + ((Aggregate_signatureContext) _localctx).argtype = data_type_list(); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Column_constraintContext extends ParserRuleContext { + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode NULL() { + return getToken(PostgreSQLParser.NULL, 0); + } + + public Column_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_column_constraint; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterColumn_constraint(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitColumn_constraint(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitColumn_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Column_constraintContext column_constraint() throws RecognitionException { + Column_constraintContext _localctx = new Column_constraintContext(_ctx, getState()); + enterRule(_localctx, 494, RULE_column_constraint); + try { + enterOuterAlt(_localctx, 1); + { + setState(5452); + match(NOT); + setState(5453); + match(NULL); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Column_constraintsContext extends ParserRuleContext { + public List column_constraint() { + return getRuleContexts(Column_constraintContext.class); + } + + public Column_constraintContext column_constraint(int i) { + return getRuleContext(Column_constraintContext.class, i); + } + + public Column_constraintsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_column_constraints; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterColumn_constraints(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitColumn_constraints(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitColumn_constraints(this); + else return visitor.visitChildren(this); + } + } + + public final Column_constraintsContext column_constraints() throws RecognitionException { + Column_constraintsContext _localctx = new Column_constraintsContext(_ctx, getState()); + enterRule(_localctx, 496, RULE_column_constraints); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5456); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(5455); + column_constraint(); + } + } + setState(5458); + _errHandler.sync(this); + _la = _input.LA(1); + } while (_la == NOT); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Index_parametersContext extends ParserRuleContext { + public IdentifierContext tablespace; + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Index_parametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_index_parameters; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterIndex_parameters(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitIndex_parameters(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitIndex_parameters(this); + else return visitor.visitChildren(this); + } + } + + public final Index_parametersContext index_parameters() throws RecognitionException { + Index_parametersContext _localctx = new Index_parametersContext(_ctx, getState()); + enterRule(_localctx, 498, RULE_index_parameters); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5465); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == WITH) { + { + setState(5460); + match(WITH); + setState(5461); + match(OPEN_PAREN); + setState(5462); + option_list(); + setState(5463); + match(CLOSE_PAREN); + } + } + + setState(5471); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == USING) { + { + setState(5467); + match(USING); + setState(5468); + match(INDEX); + setState(5469); + match(TABLESPACE); + setState(5470); + ((Index_parametersContext) _localctx).tablespace = identifier(0); + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Exclude_elementContext extends ParserRuleContext { + public IdentifierContext column_name_; + public IdentifierContext opclass; + + public TerminalNode OPEN_PAREN() { + return getToken(PostgreSQLParser.OPEN_PAREN, 0); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public TerminalNode CLOSE_PAREN() { + return getToken(PostgreSQLParser.CLOSE_PAREN, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode NULLS() { + return getToken(PostgreSQLParser.NULLS, 0); + } + + public TerminalNode ASC() { + return getToken(PostgreSQLParser.ASC, 0); + } + + public TerminalNode DESC() { + return getToken(PostgreSQLParser.DESC, 0); + } + + public TerminalNode FIRST() { + return getToken(PostgreSQLParser.FIRST, 0); + } + + public TerminalNode LAST() { + return getToken(PostgreSQLParser.LAST, 0); + } + + public Exclude_elementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_exclude_element; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterExclude_element(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitExclude_element(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitExclude_element(this); + else return visitor.visitChildren(this); + } + } + + public final Exclude_elementContext exclude_element() throws RecognitionException { + Exclude_elementContext _localctx = new Exclude_elementContext(_ctx, getState()); + enterRule(_localctx, 500, RULE_exclude_element); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5478); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: { + setState(5473); + ((Exclude_elementContext) _localctx).column_name_ = identifier(0); + } + break; + case OPEN_PAREN: { + setState(5474); + match(OPEN_PAREN); + setState(5475); + expr(0); + setState(5476); + match(CLOSE_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + setState(5481); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 671, _ctx)) { + case 1: { + setState(5480); + ((Exclude_elementContext) _localctx).opclass = identifier(0); + } + break; + } + setState(5484); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ASC || _la == DESC) { + { + setState(5483); + _la = _input.LA(1); + if (!(_la == ASC || _la == DESC)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5488); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NULLS) { + { + setState(5486); + match(NULLS); + setState(5487); + _la = _input.LA(1); + if (!(_la == FIRST || _la == LAST)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Table_constraintContext extends ParserRuleContext { + public Name_Context constraint_name; + public Identifier_listContext columns; + public Identifier_listContext operators; + public IdentifierContext reftable; + public IdentifierContext action; + + public TerminalNode CONSTRAINT() { + return getToken(PostgreSQLParser.CONSTRAINT, 0); + } + + public TerminalNode DEFERABLE() { + return getToken(PostgreSQLParser.DEFERABLE, 0); + } + + public TerminalNode INITIALLY() { + return getToken(PostgreSQLParser.INITIALLY, 0); + } + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode CHECK() { + return getToken(PostgreSQLParser.CHECK, 0); + } + + public List OPEN_PAREN() { + return getTokens(PostgreSQLParser.OPEN_PAREN); + } + + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + + public ExprContext expr() { + return getRuleContext(ExprContext.class, 0); + } + + public List CLOSE_PAREN() { + return getTokens(PostgreSQLParser.CLOSE_PAREN); + } + + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + + public TerminalNode UNIQUE() { + return getToken(PostgreSQLParser.UNIQUE, 0); + } + + public TerminalNode PRIMARY() { + return getToken(PostgreSQLParser.PRIMARY, 0); + } + + public TerminalNode KEY() { + return getToken(PostgreSQLParser.KEY, 0); + } + + public Index_parametersContext index_parameters() { + return getRuleContext(Index_parametersContext.class, 0); + } + + public TerminalNode FOREIGN() { + return getToken(PostgreSQLParser.FOREIGN, 0); + } + + public TerminalNode REFERENCES() { + return getToken(PostgreSQLParser.REFERENCES, 0); + } + + public TerminalNode DEFERRED() { + return getToken(PostgreSQLParser.DEFERRED, 0); + } + + public TerminalNode IMMEDIATE() { + return getToken(PostgreSQLParser.IMMEDIATE, 0); + } + + public List identifier_list() { + return getRuleContexts(Identifier_listContext.class); + } + + public Identifier_listContext identifier_list(int i) { + return getRuleContext(Identifier_listContext.class, i); + } + + public TerminalNode EXCLUDE() { + return getToken(PostgreSQLParser.EXCLUDE, 0); + } + + public Exclude_elementContext exclude_element() { + return getRuleContext(Exclude_elementContext.class, 0); + } + + public TerminalNode WITH() { + return getToken(PostgreSQLParser.WITH, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode NOT() { + return getToken(PostgreSQLParser.NOT, 0); + } + + public TerminalNode NO() { + return getToken(PostgreSQLParser.NO, 0); + } + + public TerminalNode INHERIT() { + return getToken(PostgreSQLParser.INHERIT, 0); + } + + public TerminalNode WHERE() { + return getToken(PostgreSQLParser.WHERE, 0); + } + + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class, 0); + } + + public TerminalNode MATCH() { + return getToken(PostgreSQLParser.MATCH, 0); + } + + public TerminalNode FULL() { + return getToken(PostgreSQLParser.FULL, 0); + } + + public TerminalNode PARTIAL() { + return getToken(PostgreSQLParser.PARTIAL, 0); + } + + public TerminalNode MATCH_SIMPLE() { + return getToken(PostgreSQLParser.MATCH_SIMPLE, 0); + } + + public List ON() { + return getTokens(PostgreSQLParser.ON); + } + + public TerminalNode ON(int i) { + return getToken(PostgreSQLParser.ON, i); + } + + public TerminalNode DELETE() { + return getToken(PostgreSQLParser.DELETE, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public TerminalNode USING() { + return getToken(PostgreSQLParser.USING, 0); + } + + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class, 0); + } + + public Table_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_table_constraint; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTable_constraint(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTable_constraint(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTable_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Table_constraintContext table_constraint() throws RecognitionException { + Table_constraintContext _localctx = new Table_constraintContext(_ctx, getState()); + enterRule(_localctx, 502, RULE_table_constraint); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5492); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == CONSTRAINT) { + { + setState(5490); + match(CONSTRAINT); + setState(5491); + ((Table_constraintContext) _localctx).constraint_name = name_(); + } + } + + setState(5559); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CHECK: { + { + setState(5494); + match(CHECK); + setState(5495); + match(OPEN_PAREN); + setState(5496); + expr(0); + setState(5497); + match(CLOSE_PAREN); + setState(5500); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NO) { + { + setState(5498); + match(NO); + setState(5499); + match(INHERIT); + } + } + + } + } + break; + case UNIQUE: { + { + setState(5502); + match(UNIQUE); + setState(5503); + match(OPEN_PAREN); + setState(5504); + ((Table_constraintContext) _localctx).columns = identifier_list(); + setState(5505); + match(CLOSE_PAREN); + } + } + break; + case PRIMARY: { + { + setState(5507); + match(PRIMARY); + setState(5508); + match(KEY); + setState(5509); + match(OPEN_PAREN); + setState(5510); + ((Table_constraintContext) _localctx).columns = identifier_list(); + setState(5511); + match(CLOSE_PAREN); + setState(5512); + index_parameters(); + } + } + break; + case EOF: + case DEFERABLE: + case EXCLUDE: + case INITIALLY: + case NOT: + case COMMA: + case CLOSE_PAREN: + case SEMI: { + setState(5530); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == EXCLUDE) { + { + setState(5514); + match(EXCLUDE); + setState(5517); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == USING) { + { + setState(5515); + match(USING); + setState(5516); + index_method(); + } + } + + setState(5519); + match(OPEN_PAREN); + setState(5520); + exclude_element(); + setState(5521); + match(WITH); + setState(5522); + ((Table_constraintContext) _localctx).operators = identifier_list(); + setState(5523); + match(CLOSE_PAREN); + setState(5524); + index_parameters(); + { + setState(5525); + match(WHERE); + setState(5526); + match(OPEN_PAREN); + setState(5527); + predicate(0); + setState(5528); + match(CLOSE_PAREN); + } + } + } + + } + break; + case FOREIGN: { + { + setState(5532); + match(FOREIGN); + setState(5533); + match(KEY); + setState(5534); + match(OPEN_PAREN); + setState(5535); + ((Table_constraintContext) _localctx).columns = identifier_list(); + setState(5536); + match(CLOSE_PAREN); + setState(5537); + match(REFERENCES); + setState(5538); + ((Table_constraintContext) _localctx).reftable = identifier(0); + setState(5540); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 678, _ctx)) { + case 1: { + setState(5539); + ((Table_constraintContext) _localctx).columns = identifier_list(); + } + break; + } + setState(5547); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 679, _ctx)) { + case 1: { + setState(5542); + match(MATCH); + setState(5543); + match(FULL); + } + break; + case 2: { + setState(5544); + match(MATCH); + setState(5545); + match(PARTIAL); + } + break; + case 3: { + setState(5546); + match(MATCH_SIMPLE); + } + break; + } + setState(5552); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 680, _ctx)) { + case 1: { + setState(5549); + match(ON); + setState(5550); + match(DELETE); + setState(5551); + ((Table_constraintContext) _localctx).action = identifier(0); + } + break; + } + setState(5557); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == ON) { + { + setState(5554); + match(ON); + setState(5555); + match(UPDATE); + setState(5556); + ((Table_constraintContext) _localctx).action = identifier(0); + } + } + + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(5565); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 684, _ctx)) { + case 1: { + setState(5562); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == NOT) { + { + setState(5561); + match(NOT); + } + } + + setState(5564); + match(DEFERABLE); + } + break; + } + setState(5569); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la == INITIALLY) { + { + setState(5567); + match(INITIALLY); + setState(5568); + _la = _input.LA(1); + if (!(_la == DEFERRED || _la == IMMEDIATE)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Role_nameContext extends ParserRuleContext { + public Name_Context name; + + public Name_Context name_() { + return getRuleContext(Name_Context.class, 0); + } + + public TerminalNode CURRENT_USER() { + return getToken(PostgreSQLParser.CURRENT_USER, 0); + } + + public TerminalNode SESSION_USER() { + return getToken(PostgreSQLParser.SESSION_USER, 0); + } + + public TerminalNode PUBLIC() { + return getToken(PostgreSQLParser.PUBLIC, 0); + } + + public Role_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_role_name; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRole_name(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitRole_name(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRole_name(this); + else return visitor.visitChildren(this); + } + } + + public final Role_nameContext role_name() throws RecognitionException { + Role_nameContext _localctx = new Role_nameContext(_ctx, getState()); + enterRule(_localctx, 504, RULE_role_name); + try { + setState(5575); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 686, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5571); + ((Role_nameContext) _localctx).name = name_(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5572); + match(CURRENT_USER); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5573); + match(SESSION_USER); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(5574); + match(PUBLIC); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Role_name_listContext extends ParserRuleContext { + public List role_name() { + return getRuleContexts(Role_nameContext.class); + } + + public Role_nameContext role_name(int i) { + return getRuleContext(Role_nameContext.class, i); + } + + public List COMMA() { + return getTokens(PostgreSQLParser.COMMA); + } + + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + + public Role_name_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_role_name_list; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterRole_name_list(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitRole_name_list(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitRole_name_list(this); + else return visitor.visitChildren(this); + } + } + + public final Role_name_listContext role_name_list() throws RecognitionException { + Role_name_listContext _localctx = new Role_name_listContext(_ctx, getState()); + enterRule(_localctx, 506, RULE_role_name_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5577); + role_name(); + setState(5582); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la == COMMA) { + { + { + setState(5578); + match(COMMA); + setState(5579); + role_name(); + } + } + setState(5584); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Param_valueContext extends ParserRuleContext { + public TerminalNode ON() { + return getToken(PostgreSQLParser.ON, 0); + } + + public TerminalNode OFF() { + return getToken(PostgreSQLParser.OFF, 0); + } + + public TerminalNode TRUE() { + return getToken(PostgreSQLParser.TRUE, 0); + } + + public TerminalNode FALSE() { + return getToken(PostgreSQLParser.FALSE, 0); + } + + public TerminalNode YES() { + return getToken(PostgreSQLParser.YES, 0); + } + + public TerminalNode NO() { + return getToken(PostgreSQLParser.NO, 0); + } + + public TerminalNode NONE() { + return getToken(PostgreSQLParser.NONE, 0); + } + + public TerminalNode SINGLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); + } + + public TerminalNode NUMERIC_LITERAL() { + return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); + } + + public TerminalNode INTEGER_LITERAL() { + return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); + } + + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Param_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_param_value; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterParam_value(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitParam_value(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitParam_value(this); + else return visitor.visitChildren(this); + } + } + + public final Param_valueContext param_value() throws RecognitionException { + Param_valueContext _localctx = new Param_valueContext(_ctx, getState()); + enterRule(_localctx, 508, RULE_param_value); + try { + setState(5596); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 688, _ctx)) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5585); + match(ON); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5586); + match(OFF); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5587); + match(TRUE); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(5588); + match(FALSE); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(5589); + match(YES); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(5590); + match(NO); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(5591); + match(NONE); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(5592); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(5593); + match(NUMERIC_LITERAL); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(5594); + match(INTEGER_LITERAL); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(5595); + identifier(0); + } + break; + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Non_reserved_keywordContext extends ParserRuleContext { + public TerminalNode A_() { + return getToken(PostgreSQLParser.A_, 0); + } + + public TerminalNode ABORT() { + return getToken(PostgreSQLParser.ABORT, 0); + } + + public TerminalNode ABS() { + return getToken(PostgreSQLParser.ABS, 0); + } + + public TerminalNode ABSOLUTE() { + return getToken(PostgreSQLParser.ABSOLUTE, 0); + } + + public TerminalNode ACCESS() { + return getToken(PostgreSQLParser.ACCESS, 0); + } + + public TerminalNode ACTION() { + return getToken(PostgreSQLParser.ACTION, 0); + } + + public TerminalNode ADA() { + return getToken(PostgreSQLParser.ADA, 0); + } + + public TerminalNode ADD() { + return getToken(PostgreSQLParser.ADD, 0); + } + + public TerminalNode ADMIN() { + return getToken(PostgreSQLParser.ADMIN, 0); + } + + public TerminalNode AFTER() { + return getToken(PostgreSQLParser.AFTER, 0); + } + + public TerminalNode AGGREGATE() { + return getToken(PostgreSQLParser.AGGREGATE, 0); + } + + public TerminalNode ALLOCATE() { + return getToken(PostgreSQLParser.ALLOCATE, 0); + } + + public TerminalNode ALSO() { + return getToken(PostgreSQLParser.ALSO, 0); + } + + public TerminalNode ALTER() { + return getToken(PostgreSQLParser.ALTER, 0); + } + + public TerminalNode ALWAYS() { + return getToken(PostgreSQLParser.ALWAYS, 0); + } + + public TerminalNode ANY() { + return getToken(PostgreSQLParser.ANY, 0); + } + + public TerminalNode ARE() { + return getToken(PostgreSQLParser.ARE, 0); + } + + public TerminalNode ASENSITIVE() { + return getToken(PostgreSQLParser.ASENSITIVE, 0); + } + + public TerminalNode ASSERTION() { + return getToken(PostgreSQLParser.ASSERTION, 0); + } + + public TerminalNode ASSIGNMENT() { + return getToken(PostgreSQLParser.ASSIGNMENT, 0); + } + + public TerminalNode AT() { + return getToken(PostgreSQLParser.AT, 0); + } + + public TerminalNode ATOMIC() { + return getToken(PostgreSQLParser.ATOMIC, 0); + } + + public TerminalNode ATTRIBUTE() { + return getToken(PostgreSQLParser.ATTRIBUTE, 0); + } + + public TerminalNode ATTRIBUTES() { + return getToken(PostgreSQLParser.ATTRIBUTES, 0); + } + + public TerminalNode AVG() { + return getToken(PostgreSQLParser.AVG, 0); + } + + public TerminalNode BACKWARD() { + return getToken(PostgreSQLParser.BACKWARD, 0); + } + + public TerminalNode BEFORE() { + return getToken(PostgreSQLParser.BEFORE, 0); + } + + public TerminalNode BEGIN() { + return getToken(PostgreSQLParser.BEGIN, 0); + } + + public TerminalNode BERNOULLI() { + return getToken(PostgreSQLParser.BERNOULLI, 0); + } + + public TerminalNode BETWEEN() { + return getToken(PostgreSQLParser.BETWEEN, 0); + } + + public TerminalNode BIGINT() { + return getToken(PostgreSQLParser.BIGINT, 0); + } + + public TerminalNode BIT() { + return getToken(PostgreSQLParser.BIT, 0); + } + + public TerminalNode BIT_LENGTH() { + return getToken(PostgreSQLParser.BIT_LENGTH, 0); + } + + public TerminalNode BLOB() { + return getToken(PostgreSQLParser.BLOB, 0); + } + + public TerminalNode BOOLEAN() { + return getToken(PostgreSQLParser.BOOLEAN, 0); + } + + public TerminalNode BREADTH() { + return getToken(PostgreSQLParser.BREADTH, 0); + } + + public TerminalNode BY() { + return getToken(PostgreSQLParser.BY, 0); + } + + public TerminalNode C_() { + return getToken(PostgreSQLParser.C_, 0); + } + + public TerminalNode CACHE() { + return getToken(PostgreSQLParser.CACHE, 0); + } + + public TerminalNode CALL() { + return getToken(PostgreSQLParser.CALL, 0); + } + + public TerminalNode CALLED() { + return getToken(PostgreSQLParser.CALLED, 0); + } + + public TerminalNode CARDINALITY() { + return getToken(PostgreSQLParser.CARDINALITY, 0); + } + + public TerminalNode CASCADE() { + return getToken(PostgreSQLParser.CASCADE, 0); + } + + public TerminalNode CASCADED() { + return getToken(PostgreSQLParser.CASCADED, 0); + } + + public TerminalNode CATALOG() { + return getToken(PostgreSQLParser.CATALOG, 0); + } + + public TerminalNode CATALOG_NAME() { + return getToken(PostgreSQLParser.CATALOG_NAME, 0); + } + + public TerminalNode CEIL() { + return getToken(PostgreSQLParser.CEIL, 0); + } + + public TerminalNode CEILING() { + return getToken(PostgreSQLParser.CEILING, 0); + } + + public TerminalNode CHAIN() { + return getToken(PostgreSQLParser.CHAIN, 0); + } + + public TerminalNode CHAR() { + return getToken(PostgreSQLParser.CHAR, 0); + } + + public TerminalNode CHARACTER() { + return getToken(PostgreSQLParser.CHARACTER, 0); + } + + public TerminalNode CHARACTERISTICS() { + return getToken(PostgreSQLParser.CHARACTERISTICS, 0); + } + + public TerminalNode CHARACTERS() { + return getToken(PostgreSQLParser.CHARACTERS, 0); + } + + public TerminalNode CHARACTER_LENGTH() { + return getToken(PostgreSQLParser.CHARACTER_LENGTH, 0); + } + + public TerminalNode CHARACTER_SET_CATALOG() { + return getToken(PostgreSQLParser.CHARACTER_SET_CATALOG, 0); + } + + public TerminalNode CHARACTER_SET_NAME() { + return getToken(PostgreSQLParser.CHARACTER_SET_NAME, 0); + } + + public TerminalNode CHARACTER_SET_SCHEMA() { + return getToken(PostgreSQLParser.CHARACTER_SET_SCHEMA, 0); + } + + public TerminalNode CHAR_LENGTH() { + return getToken(PostgreSQLParser.CHAR_LENGTH, 0); + } + + public TerminalNode CHECKPOINT() { + return getToken(PostgreSQLParser.CHECKPOINT, 0); + } + + public TerminalNode CLASS() { + return getToken(PostgreSQLParser.CLASS, 0); + } + + public TerminalNode CLASS_ORIGIN() { + return getToken(PostgreSQLParser.CLASS_ORIGIN, 0); + } + + public TerminalNode CLOB() { + return getToken(PostgreSQLParser.CLOB, 0); + } + + public TerminalNode CLOSE() { + return getToken(PostgreSQLParser.CLOSE, 0); + } + + public TerminalNode CLUSTER() { + return getToken(PostgreSQLParser.CLUSTER, 0); + } + + public TerminalNode COALESCE() { + return getToken(PostgreSQLParser.COALESCE, 0); + } + + public TerminalNode COBOL() { + return getToken(PostgreSQLParser.COBOL, 0); + } + + public TerminalNode COLLATION_CATALOG() { + return getToken(PostgreSQLParser.COLLATION_CATALOG, 0); + } + + public TerminalNode COLLATION_NAME() { + return getToken(PostgreSQLParser.COLLATION_NAME, 0); + } + + public TerminalNode COLLATION_SCHEMA() { + return getToken(PostgreSQLParser.COLLATION_SCHEMA, 0); + } + + public TerminalNode COLLECT() { + return getToken(PostgreSQLParser.COLLECT, 0); + } + + public TerminalNode COLUMN_NAME() { + return getToken(PostgreSQLParser.COLUMN_NAME, 0); + } + + public TerminalNode COMMAND_FUNCTION() { + return getToken(PostgreSQLParser.COMMAND_FUNCTION, 0); + } + + public TerminalNode COMMAND_FUNCTION_CODE() { + return getToken(PostgreSQLParser.COMMAND_FUNCTION_CODE, 0); + } + + public TerminalNode COMMENT() { + return getToken(PostgreSQLParser.COMMENT, 0); + } + + public TerminalNode COMMIT() { + return getToken(PostgreSQLParser.COMMIT, 0); + } + + public TerminalNode COMMITTED() { + return getToken(PostgreSQLParser.COMMITTED, 0); + } + + public TerminalNode CONDITION() { + return getToken(PostgreSQLParser.CONDITION, 0); + } + + public TerminalNode CONDITION_NUMBER() { + return getToken(PostgreSQLParser.CONDITION_NUMBER, 0); + } + + public TerminalNode CONNECT() { + return getToken(PostgreSQLParser.CONNECT, 0); + } + + public TerminalNode CONNECTION() { + return getToken(PostgreSQLParser.CONNECTION, 0); + } + + public TerminalNode CONNECTION_NAME() { + return getToken(PostgreSQLParser.CONNECTION_NAME, 0); + } + + public TerminalNode CONSTRAINTS() { + return getToken(PostgreSQLParser.CONSTRAINTS, 0); + } + + public TerminalNode CONSTRAINT_CATALOG() { + return getToken(PostgreSQLParser.CONSTRAINT_CATALOG, 0); + } + + public TerminalNode CONSTRAINT_NAME() { + return getToken(PostgreSQLParser.CONSTRAINT_NAME, 0); + } + + public TerminalNode CONSTRAINT_SCHEMA() { + return getToken(PostgreSQLParser.CONSTRAINT_SCHEMA, 0); + } + + public TerminalNode CONSTRUCTOR() { + return getToken(PostgreSQLParser.CONSTRUCTOR, 0); + } + + public TerminalNode CONTAINS() { + return getToken(PostgreSQLParser.CONTAINS, 0); + } + + public TerminalNode CONTINUE() { + return getToken(PostgreSQLParser.CONTINUE, 0); + } + + public TerminalNode CONVERSION() { + return getToken(PostgreSQLParser.CONVERSION, 0); + } + + public TerminalNode CONVERT() { + return getToken(PostgreSQLParser.CONVERT, 0); + } + + public TerminalNode COPY() { + return getToken(PostgreSQLParser.COPY, 0); + } + + public TerminalNode CORR() { + return getToken(PostgreSQLParser.CORR, 0); + } + + public TerminalNode CORRESPONDING() { + return getToken(PostgreSQLParser.CORRESPONDING, 0); + } + + public TerminalNode COUNT() { + return getToken(PostgreSQLParser.COUNT, 0); + } + + public TerminalNode COVAR_POP() { + return getToken(PostgreSQLParser.COVAR_POP, 0); + } + + public TerminalNode COVAR_SAMP() { + return getToken(PostgreSQLParser.COVAR_SAMP, 0); + } + + public TerminalNode CSV() { + return getToken(PostgreSQLParser.CSV, 0); + } + + public TerminalNode CUBE() { + return getToken(PostgreSQLParser.CUBE, 0); + } + + public TerminalNode CUME_DIST() { + return getToken(PostgreSQLParser.CUME_DIST, 0); + } + + public TerminalNode CURRENT() { + return getToken(PostgreSQLParser.CURRENT, 0); + } + + public TerminalNode CURRENT_DEFAULT_TRANSFORM_GROUP() { + return getToken(PostgreSQLParser.CURRENT_DEFAULT_TRANSFORM_GROUP, 0); + } + + public TerminalNode CURRENT_PATH() { + return getToken(PostgreSQLParser.CURRENT_PATH, 0); + } + + public TerminalNode CURRENT_TRANSFORM_GROUP_FOR_TYPE() { + return getToken(PostgreSQLParser.CURRENT_TRANSFORM_GROUP_FOR_TYPE, 0); + } + + public TerminalNode CURSOR() { + return getToken(PostgreSQLParser.CURSOR, 0); + } + + public TerminalNode CURSOR_NAME() { + return getToken(PostgreSQLParser.CURSOR_NAME, 0); + } + + public TerminalNode CYCLE() { + return getToken(PostgreSQLParser.CYCLE, 0); + } + + public TerminalNode DATA() { + return getToken(PostgreSQLParser.DATA, 0); + } + + public TerminalNode DATABASE() { + return getToken(PostgreSQLParser.DATABASE, 0); + } + + public TerminalNode DATE() { + return getToken(PostgreSQLParser.DATE, 0); + } + + public TerminalNode DATETIME_INTERVAL_CODE() { + return getToken(PostgreSQLParser.DATETIME_INTERVAL_CODE, 0); + } + + public TerminalNode DATETIME_INTERVAL_PRECISION() { + return getToken(PostgreSQLParser.DATETIME_INTERVAL_PRECISION, 0); + } + + public TerminalNode DAY() { + return getToken(PostgreSQLParser.DAY, 0); + } + + public TerminalNode DEALLOCATE() { + return getToken(PostgreSQLParser.DEALLOCATE, 0); + } + + public TerminalNode DEC() { + return getToken(PostgreSQLParser.DEC, 0); + } + + public TerminalNode DECIMAL() { + return getToken(PostgreSQLParser.DECIMAL, 0); + } + + public TerminalNode DECLARE() { + return getToken(PostgreSQLParser.DECLARE, 0); + } + + public TerminalNode DEFAULTS() { + return getToken(PostgreSQLParser.DEFAULTS, 0); + } + + public TerminalNode DEFERRED() { + return getToken(PostgreSQLParser.DEFERRED, 0); + } + + public TerminalNode DEFINED() { + return getToken(PostgreSQLParser.DEFINED, 0); + } + + public TerminalNode DEFINER() { + return getToken(PostgreSQLParser.DEFINER, 0); + } + + public TerminalNode DEGREE() { + return getToken(PostgreSQLParser.DEGREE, 0); + } + + public TerminalNode DELETE() { + return getToken(PostgreSQLParser.DELETE, 0); + } + + public TerminalNode DELIMITER() { + return getToken(PostgreSQLParser.DELIMITER, 0); + } + + public TerminalNode DELIMITERS() { + return getToken(PostgreSQLParser.DELIMITERS, 0); + } + + public TerminalNode DENSE_RANK() { + return getToken(PostgreSQLParser.DENSE_RANK, 0); + } + + public TerminalNode DEPTH() { + return getToken(PostgreSQLParser.DEPTH, 0); + } + + public TerminalNode DEREF() { + return getToken(PostgreSQLParser.DEREF, 0); + } + + public TerminalNode DERIVED() { + return getToken(PostgreSQLParser.DERIVED, 0); + } + + public TerminalNode DESCRIBE() { + return getToken(PostgreSQLParser.DESCRIBE, 0); + } + + public TerminalNode DESCRIPTOR() { + return getToken(PostgreSQLParser.DESCRIPTOR, 0); + } + + public TerminalNode DETERMINISTIC() { + return getToken(PostgreSQLParser.DETERMINISTIC, 0); + } + + public TerminalNode DIAGNOSTICS() { + return getToken(PostgreSQLParser.DIAGNOSTICS, 0); + } + + public TerminalNode DICTIONARY() { + return getToken(PostgreSQLParser.DICTIONARY, 0); + } + + public TerminalNode DISCONNECT() { + return getToken(PostgreSQLParser.DISCONNECT, 0); + } + + public TerminalNode DISPATCH() { + return getToken(PostgreSQLParser.DISPATCH, 0); + } + + public TerminalNode DOMAIN() { + return getToken(PostgreSQLParser.DOMAIN, 0); + } + + public TerminalNode DOUBLE() { + return getToken(PostgreSQLParser.DOUBLE, 0); + } + + public TerminalNode DYNAMIC() { + return getToken(PostgreSQLParser.DYNAMIC, 0); + } + + public TerminalNode DYNAMIC_FUNCTION() { + return getToken(PostgreSQLParser.DYNAMIC_FUNCTION, 0); + } + + public TerminalNode DYNAMIC_FUNCTION_CODE() { + return getToken(PostgreSQLParser.DYNAMIC_FUNCTION_CODE, 0); + } + + public TerminalNode EACH() { + return getToken(PostgreSQLParser.EACH, 0); + } + + public TerminalNode ELEMENT() { + return getToken(PostgreSQLParser.ELEMENT, 0); + } + + public TerminalNode ENCODING() { + return getToken(PostgreSQLParser.ENCODING, 0); + } + + public TerminalNode ENCRYPTED() { + return getToken(PostgreSQLParser.ENCRYPTED, 0); + } + + public TerminalNode END() { + return getToken(PostgreSQLParser.END, 0); + } + + public TerminalNode EQUALS() { + return getToken(PostgreSQLParser.EQUALS, 0); + } + + public TerminalNode ESCAPE() { + return getToken(PostgreSQLParser.ESCAPE, 0); + } + + public TerminalNode EVERY() { + return getToken(PostgreSQLParser.EVERY, 0); + } + + public TerminalNode EXCEPTION() { + return getToken(PostgreSQLParser.EXCEPTION, 0); + } + + public TerminalNode EXCLUDE() { + return getToken(PostgreSQLParser.EXCLUDE, 0); + } + + public TerminalNode EXCLUDING() { + return getToken(PostgreSQLParser.EXCLUDING, 0); + } + + public TerminalNode EXCLUSIVE() { + return getToken(PostgreSQLParser.EXCLUSIVE, 0); + } + + public TerminalNode EXEC() { + return getToken(PostgreSQLParser.EXEC, 0); + } + + public TerminalNode EXECUTE() { + return getToken(PostgreSQLParser.EXECUTE, 0); + } + + public TerminalNode EXISTS() { + return getToken(PostgreSQLParser.EXISTS, 0); + } + + public TerminalNode EXP() { + return getToken(PostgreSQLParser.EXP, 0); + } + + public TerminalNode EXPLAIN() { + return getToken(PostgreSQLParser.EXPLAIN, 0); + } + + public TerminalNode EXTENSION() { + return getToken(PostgreSQLParser.EXTENSION, 0); + } + + public TerminalNode EXTERNAL() { + return getToken(PostgreSQLParser.EXTERNAL, 0); + } + + public TerminalNode EXTRACT() { + return getToken(PostgreSQLParser.EXTRACT, 0); + } + + public TerminalNode FILTER() { + return getToken(PostgreSQLParser.FILTER, 0); + } + + public TerminalNode FINAL() { + return getToken(PostgreSQLParser.FINAL, 0); + } + + public TerminalNode FIRST() { + return getToken(PostgreSQLParser.FIRST, 0); + } + + public TerminalNode FLOAT() { + return getToken(PostgreSQLParser.FLOAT, 0); + } + + public TerminalNode FLOOR() { + return getToken(PostgreSQLParser.FLOOR, 0); + } + + public TerminalNode FOLLOWING() { + return getToken(PostgreSQLParser.FOLLOWING, 0); + } + + public TerminalNode FORCE() { + return getToken(PostgreSQLParser.FORCE, 0); + } + + public TerminalNode FORMAT() { + return getToken(PostgreSQLParser.FORMAT, 0); + } + + public TerminalNode FORTRAN() { + return getToken(PostgreSQLParser.FORTRAN, 0); + } + + public TerminalNode FORWARD() { + return getToken(PostgreSQLParser.FORWARD, 0); + } + + public TerminalNode FOUND() { + return getToken(PostgreSQLParser.FOUND, 0); + } + + public TerminalNode FREE() { + return getToken(PostgreSQLParser.FREE, 0); + } + + public TerminalNode FUNCTION() { + return getToken(PostgreSQLParser.FUNCTION, 0); + } + + public TerminalNode FUSION() { + return getToken(PostgreSQLParser.FUSION, 0); + } + + public TerminalNode G_() { + return getToken(PostgreSQLParser.G_, 0); + } + + public TerminalNode GENERAL() { + return getToken(PostgreSQLParser.GENERAL, 0); + } + + public TerminalNode GENERATED() { + return getToken(PostgreSQLParser.GENERATED, 0); + } + + public TerminalNode GET() { + return getToken(PostgreSQLParser.GET, 0); + } + + public TerminalNode GLOBAL() { + return getToken(PostgreSQLParser.GLOBAL, 0); + } + + public TerminalNode GO() { + return getToken(PostgreSQLParser.GO, 0); + } + + public TerminalNode GOTO() { + return getToken(PostgreSQLParser.GOTO, 0); + } + + public TerminalNode GREATEST() { + return getToken(PostgreSQLParser.GREATEST, 0); + } + + public TerminalNode GRANTED() { + return getToken(PostgreSQLParser.GRANTED, 0); + } + + public TerminalNode GROUPING() { + return getToken(PostgreSQLParser.GROUPING, 0); + } + + public TerminalNode HANDLER() { + return getToken(PostgreSQLParser.HANDLER, 0); + } + + public TerminalNode HIERARCHY() { + return getToken(PostgreSQLParser.HIERARCHY, 0); + } + + public TerminalNode HOLD() { + return getToken(PostgreSQLParser.HOLD, 0); + } + + public TerminalNode HOST() { + return getToken(PostgreSQLParser.HOST, 0); + } + + public TerminalNode HOUR() { + return getToken(PostgreSQLParser.HOUR, 0); + } + + public TerminalNode IDENTITY() { + return getToken(PostgreSQLParser.IDENTITY, 0); + } + + public TerminalNode IGNORE() { + return getToken(PostgreSQLParser.IGNORE, 0); + } + + public TerminalNode IMMEDIATE() { + return getToken(PostgreSQLParser.IMMEDIATE, 0); + } + + public TerminalNode IMMUTABLE() { + return getToken(PostgreSQLParser.IMMUTABLE, 0); + } + + public TerminalNode IMPLEMENTATION() { + return getToken(PostgreSQLParser.IMPLEMENTATION, 0); + } + + public TerminalNode IMPLICIT() { + return getToken(PostgreSQLParser.IMPLICIT, 0); + } + + public TerminalNode INCLUDING() { + return getToken(PostgreSQLParser.INCLUDING, 0); + } + + public TerminalNode INCREMENT() { + return getToken(PostgreSQLParser.INCREMENT, 0); + } + + public TerminalNode INDEX() { + return getToken(PostgreSQLParser.INDEX, 0); + } + + public TerminalNode INDICATOR() { + return getToken(PostgreSQLParser.INDICATOR, 0); + } + + public TerminalNode INHERITS() { + return getToken(PostgreSQLParser.INHERITS, 0); + } + + public TerminalNode INOUT() { + return getToken(PostgreSQLParser.INOUT, 0); + } + + public TerminalNode INPUT() { + return getToken(PostgreSQLParser.INPUT, 0); + } + + public TerminalNode INSENSITIVE() { + return getToken(PostgreSQLParser.INSENSITIVE, 0); + } + + public TerminalNode INSERT() { + return getToken(PostgreSQLParser.INSERT, 0); + } + + public TerminalNode INSTANCE() { + return getToken(PostgreSQLParser.INSTANCE, 0); + } + + public TerminalNode INSTANTIABLE() { + return getToken(PostgreSQLParser.INSTANTIABLE, 0); + } + + public TerminalNode INSTEAD() { + return getToken(PostgreSQLParser.INSTEAD, 0); + } + + public TerminalNode INT() { + return getToken(PostgreSQLParser.INT, 0); + } + + public TerminalNode INTEGER() { + return getToken(PostgreSQLParser.INTEGER, 0); + } + + public TerminalNode INTERSECTION() { + return getToken(PostgreSQLParser.INTERSECTION, 0); + } + + public TerminalNode INTERVAL() { + return getToken(PostgreSQLParser.INTERVAL, 0); + } + + public TerminalNode INVOKER() { + return getToken(PostgreSQLParser.INVOKER, 0); + } + + public TerminalNode ISOLATION() { + return getToken(PostgreSQLParser.ISOLATION, 0); + } + + public TerminalNode K_() { + return getToken(PostgreSQLParser.K_, 0); + } + + public TerminalNode KEY() { + return getToken(PostgreSQLParser.KEY, 0); + } + + public TerminalNode KEY_MEMBER() { + return getToken(PostgreSQLParser.KEY_MEMBER, 0); + } + + public TerminalNode KEY_TYPE() { + return getToken(PostgreSQLParser.KEY_TYPE, 0); + } + + public TerminalNode LANGUAGE() { + return getToken(PostgreSQLParser.LANGUAGE, 0); + } + + public TerminalNode LARGE() { + return getToken(PostgreSQLParser.LARGE, 0); + } + + public TerminalNode LAST() { + return getToken(PostgreSQLParser.LAST, 0); + } + + public TerminalNode LEAST() { + return getToken(PostgreSQLParser.LEAST, 0); + } + + public TerminalNode LEFT() { + return getToken(PostgreSQLParser.LEFT, 0); + } + + public TerminalNode LENGTH() { + return getToken(PostgreSQLParser.LENGTH, 0); + } + + public TerminalNode LEVEL() { + return getToken(PostgreSQLParser.LEVEL, 0); + } + + public TerminalNode LISTEN() { + return getToken(PostgreSQLParser.LISTEN, 0); + } + + public TerminalNode LN() { + return getToken(PostgreSQLParser.LN, 0); + } + + public TerminalNode LOAD() { + return getToken(PostgreSQLParser.LOAD, 0); + } + + public TerminalNode LOCAL() { + return getToken(PostgreSQLParser.LOCAL, 0); + } + + public TerminalNode LOCATION() { + return getToken(PostgreSQLParser.LOCATION, 0); + } + + public TerminalNode LOCATOR() { + return getToken(PostgreSQLParser.LOCATOR, 0); + } + + public TerminalNode LOCK() { + return getToken(PostgreSQLParser.LOCK, 0); + } + + public TerminalNode LOCKED() { + return getToken(PostgreSQLParser.LOCKED, 0); + } + + public TerminalNode LOWER() { + return getToken(PostgreSQLParser.LOWER, 0); + } + + public TerminalNode M_() { + return getToken(PostgreSQLParser.M_, 0); + } + + public TerminalNode MAP() { + return getToken(PostgreSQLParser.MAP, 0); + } + + public TerminalNode MATCH() { + return getToken(PostgreSQLParser.MATCH, 0); + } + + public TerminalNode MATCHED() { + return getToken(PostgreSQLParser.MATCHED, 0); + } + + public TerminalNode MAX() { + return getToken(PostgreSQLParser.MAX, 0); + } + + public TerminalNode MAXVALUE() { + return getToken(PostgreSQLParser.MAXVALUE, 0); + } + + public TerminalNode MEMBER() { + return getToken(PostgreSQLParser.MEMBER, 0); + } + + public TerminalNode MERGE() { + return getToken(PostgreSQLParser.MERGE, 0); + } + + public TerminalNode MESSAGE_LENGTH() { + return getToken(PostgreSQLParser.MESSAGE_LENGTH, 0); + } + + public TerminalNode MESSAGE_OCTET_LENGTH() { + return getToken(PostgreSQLParser.MESSAGE_OCTET_LENGTH, 0); + } + + public TerminalNode MESSAGE_TEXT() { + return getToken(PostgreSQLParser.MESSAGE_TEXT, 0); + } + + public TerminalNode METHOD() { + return getToken(PostgreSQLParser.METHOD, 0); + } + + public TerminalNode MIN() { + return getToken(PostgreSQLParser.MIN, 0); + } + + public TerminalNode MINUTE() { + return getToken(PostgreSQLParser.MINUTE, 0); + } + + public TerminalNode MINVALUE() { + return getToken(PostgreSQLParser.MINVALUE, 0); + } + + public TerminalNode MOD() { + return getToken(PostgreSQLParser.MOD, 0); + } + + public TerminalNode MODE() { + return getToken(PostgreSQLParser.MODE, 0); + } + + public TerminalNode MODIFIES() { + return getToken(PostgreSQLParser.MODIFIES, 0); + } + + public TerminalNode MODULE() { + return getToken(PostgreSQLParser.MODULE, 0); + } + + public TerminalNode MONTH() { + return getToken(PostgreSQLParser.MONTH, 0); + } + + public TerminalNode MORE_() { + return getToken(PostgreSQLParser.MORE_, 0); + } + + public TerminalNode MOVE() { + return getToken(PostgreSQLParser.MOVE, 0); + } + + public TerminalNode MULTISET() { + return getToken(PostgreSQLParser.MULTISET, 0); + } + + public TerminalNode MUMPS() { + return getToken(PostgreSQLParser.MUMPS, 0); + } + + public TerminalNode NAME() { + return getToken(PostgreSQLParser.NAME, 0); + } + + public TerminalNode NAMES() { + return getToken(PostgreSQLParser.NAMES, 0); + } + + public TerminalNode NATIONAL() { + return getToken(PostgreSQLParser.NATIONAL, 0); + } + + public TerminalNode NCHAR() { + return getToken(PostgreSQLParser.NCHAR, 0); + } + + public TerminalNode NCLOB() { + return getToken(PostgreSQLParser.NCLOB, 0); + } + + public TerminalNode NESTING() { + return getToken(PostgreSQLParser.NESTING, 0); + } + + public TerminalNode NEW() { + return getToken(PostgreSQLParser.NEW, 0); + } + + public TerminalNode NEXT() { + return getToken(PostgreSQLParser.NEXT, 0); + } + + public TerminalNode NO() { + return getToken(PostgreSQLParser.NO, 0); + } + + public TerminalNode NONE() { + return getToken(PostgreSQLParser.NONE, 0); + } + + public TerminalNode NORMALIZE() { + return getToken(PostgreSQLParser.NORMALIZE, 0); + } + + public TerminalNode NORMALIZED() { + return getToken(PostgreSQLParser.NORMALIZED, 0); + } + + public TerminalNode NOTHING() { + return getToken(PostgreSQLParser.NOTHING, 0); + } + + public TerminalNode NOTIFY() { + return getToken(PostgreSQLParser.NOTIFY, 0); + } + + public TerminalNode NOWAIT() { + return getToken(PostgreSQLParser.NOWAIT, 0); + } + + public TerminalNode NULLABLE() { + return getToken(PostgreSQLParser.NULLABLE, 0); + } + + public TerminalNode NULLIF() { + return getToken(PostgreSQLParser.NULLIF, 0); + } + + public TerminalNode NULLS() { + return getToken(PostgreSQLParser.NULLS, 0); + } + + public TerminalNode NUMBER() { + return getToken(PostgreSQLParser.NUMBER, 0); + } + + public TerminalNode NUMERIC() { + return getToken(PostgreSQLParser.NUMERIC, 0); + } + + public TerminalNode OBJECT() { + return getToken(PostgreSQLParser.OBJECT, 0); + } + + public TerminalNode OCTETS() { + return getToken(PostgreSQLParser.OCTETS, 0); + } + + public TerminalNode OCTET_LENGTH() { + return getToken(PostgreSQLParser.OCTET_LENGTH, 0); + } + + public TerminalNode OF() { + return getToken(PostgreSQLParser.OF, 0); + } + + public TerminalNode OFF() { + return getToken(PostgreSQLParser.OFF, 0); + } + + public TerminalNode OIDS() { + return getToken(PostgreSQLParser.OIDS, 0); + } + + public TerminalNode OLD() { + return getToken(PostgreSQLParser.OLD, 0); + } + + public TerminalNode OPEN() { + return getToken(PostgreSQLParser.OPEN, 0); + } + + public TerminalNode OPERATOR() { + return getToken(PostgreSQLParser.OPERATOR, 0); + } + + public TerminalNode OPTION() { + return getToken(PostgreSQLParser.OPTION, 0); + } + + public TerminalNode OPTIONS() { + return getToken(PostgreSQLParser.OPTIONS, 0); + } + + public TerminalNode ORDERING() { + return getToken(PostgreSQLParser.ORDERING, 0); + } + + public TerminalNode ORDINALITY() { + return getToken(PostgreSQLParser.ORDINALITY, 0); + } + + public TerminalNode OTHERS() { + return getToken(PostgreSQLParser.OTHERS, 0); + } + + public TerminalNode OUT() { + return getToken(PostgreSQLParser.OUT, 0); + } + + public TerminalNode OUTPUT() { + return getToken(PostgreSQLParser.OUTPUT, 0); + } + + public TerminalNode OVER() { + return getToken(PostgreSQLParser.OVER, 0); + } + + public TerminalNode OVERLAY() { + return getToken(PostgreSQLParser.OVERLAY, 0); + } + + public TerminalNode OVERRIDING() { + return getToken(PostgreSQLParser.OVERRIDING, 0); + } + + public TerminalNode OWNER() { + return getToken(PostgreSQLParser.OWNER, 0); + } + + public TerminalNode PAD() { + return getToken(PostgreSQLParser.PAD, 0); + } + + public TerminalNode PARAMETER() { + return getToken(PostgreSQLParser.PARAMETER, 0); + } + + public TerminalNode PARAMETER_MODE() { + return getToken(PostgreSQLParser.PARAMETER_MODE, 0); + } + + public TerminalNode PARAMETER_NAME() { + return getToken(PostgreSQLParser.PARAMETER_NAME, 0); + } + + public TerminalNode PARAMETER_ORDINAL_POSITION() { + return getToken(PostgreSQLParser.PARAMETER_ORDINAL_POSITION, 0); + } + + public TerminalNode PARAMETER_SPECIFIC_CATALOG() { + return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_CATALOG, 0); + } + + public TerminalNode PARAMETER_SPECIFIC_NAME() { + return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_NAME, 0); + } + + public TerminalNode PARAMETER_SPECIFIC_SCHEMA() { + return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_SCHEMA, 0); + } + + public TerminalNode PARTIAL() { + return getToken(PostgreSQLParser.PARTIAL, 0); + } + + public TerminalNode PARTITION() { + return getToken(PostgreSQLParser.PARTITION, 0); + } + + public TerminalNode PASCAL() { + return getToken(PostgreSQLParser.PASCAL, 0); + } + + public TerminalNode PASSWORD() { + return getToken(PostgreSQLParser.PASSWORD, 0); + } + + public TerminalNode PATH() { + return getToken(PostgreSQLParser.PATH, 0); + } + + public TerminalNode PERCENTILE_CONT() { + return getToken(PostgreSQLParser.PERCENTILE_CONT, 0); + } + + public TerminalNode PERCENTILE_DISC() { + return getToken(PostgreSQLParser.PERCENTILE_DISC, 0); + } + + public TerminalNode PERCENT_RANK() { + return getToken(PostgreSQLParser.PERCENT_RANK, 0); + } + + public TerminalNode PLAIN() { + return getToken(PostgreSQLParser.PLAIN, 0); + } + + public TerminalNode PLI() { + return getToken(PostgreSQLParser.PLI, 0); + } + + public TerminalNode POSITION() { + return getToken(PostgreSQLParser.POSITION, 0); + } + + public TerminalNode POWER() { + return getToken(PostgreSQLParser.POWER, 0); + } + + public TerminalNode PRECEDING() { + return getToken(PostgreSQLParser.PRECEDING, 0); + } + + public TerminalNode PRECISION() { + return getToken(PostgreSQLParser.PRECISION, 0); + } + + public TerminalNode PREPARE() { + return getToken(PostgreSQLParser.PREPARE, 0); + } + + public TerminalNode PRESERVE() { + return getToken(PostgreSQLParser.PRESERVE, 0); + } + + public TerminalNode PRIOR() { + return getToken(PostgreSQLParser.PRIOR, 0); + } + + public TerminalNode PRIVILEGES() { + return getToken(PostgreSQLParser.PRIVILEGES, 0); + } + + public TerminalNode PROCEDURAL() { + return getToken(PostgreSQLParser.PROCEDURAL, 0); + } + + public TerminalNode PROCEDURE() { + return getToken(PostgreSQLParser.PROCEDURE, 0); + } + + public TerminalNode PUBLIC() { + return getToken(PostgreSQLParser.PUBLIC, 0); + } + + public TerminalNode QUOTE() { + return getToken(PostgreSQLParser.QUOTE, 0); + } + + public TerminalNode RANGE() { + return getToken(PostgreSQLParser.RANGE, 0); + } + + public TerminalNode RANK() { + return getToken(PostgreSQLParser.RANK, 0); + } + + public TerminalNode READ() { + return getToken(PostgreSQLParser.READ, 0); + } + + public TerminalNode READS() { + return getToken(PostgreSQLParser.READS, 0); + } + + public TerminalNode REAL() { + return getToken(PostgreSQLParser.REAL, 0); + } + + public TerminalNode RECHECK() { + return getToken(PostgreSQLParser.RECHECK, 0); + } + + public TerminalNode RECURSIVE() { + return getToken(PostgreSQLParser.RECURSIVE, 0); + } + + public TerminalNode REF() { + return getToken(PostgreSQLParser.REF, 0); + } + + public TerminalNode REFERENCING() { + return getToken(PostgreSQLParser.REFERENCING, 0); + } + + public TerminalNode REFRESH() { + return getToken(PostgreSQLParser.REFRESH, 0); + } + + public TerminalNode REGR_AVGX() { + return getToken(PostgreSQLParser.REGR_AVGX, 0); + } + + public TerminalNode REGR_AVGY() { + return getToken(PostgreSQLParser.REGR_AVGY, 0); + } + + public TerminalNode REGR_COUNT() { + return getToken(PostgreSQLParser.REGR_COUNT, 0); + } + + public TerminalNode REGR_INTERCEPT() { + return getToken(PostgreSQLParser.REGR_INTERCEPT, 0); + } + + public TerminalNode REGR_SLOPE() { + return getToken(PostgreSQLParser.REGR_SLOPE, 0); + } + + public TerminalNode REGR_SXX() { + return getToken(PostgreSQLParser.REGR_SXX, 0); + } + + public TerminalNode REGR_SXY() { + return getToken(PostgreSQLParser.REGR_SXY, 0); + } + + public TerminalNode REGR_SYY() { + return getToken(PostgreSQLParser.REGR_SYY, 0); + } + + public TerminalNode REINDEX() { + return getToken(PostgreSQLParser.REINDEX, 0); + } + + public TerminalNode RELATIVE() { + return getToken(PostgreSQLParser.RELATIVE, 0); + } + + public TerminalNode RELEASE() { + return getToken(PostgreSQLParser.RELEASE, 0); + } + + public TerminalNode RENAME() { + return getToken(PostgreSQLParser.RENAME, 0); + } + + public TerminalNode REPEATABLE() { + return getToken(PostgreSQLParser.REPEATABLE, 0); + } + + public TerminalNode REPLACE() { + return getToken(PostgreSQLParser.REPLACE, 0); + } + + public TerminalNode RESET() { + return getToken(PostgreSQLParser.RESET, 0); + } + + public TerminalNode RESTART() { + return getToken(PostgreSQLParser.RESTART, 0); + } + + public TerminalNode RESTRICT() { + return getToken(PostgreSQLParser.RESTRICT, 0); + } + + public TerminalNode RESULT() { + return getToken(PostgreSQLParser.RESULT, 0); + } + + public TerminalNode RETURN() { + return getToken(PostgreSQLParser.RETURN, 0); + } + + public TerminalNode RETURNED_CARDINALITY() { + return getToken(PostgreSQLParser.RETURNED_CARDINALITY, 0); + } + + public TerminalNode RETURNED_LENGTH() { + return getToken(PostgreSQLParser.RETURNED_LENGTH, 0); + } + + public TerminalNode RETURNED_OCTET_LENGTH() { + return getToken(PostgreSQLParser.RETURNED_OCTET_LENGTH, 0); + } + + public TerminalNode RETURNED_SQLSTATE() { + return getToken(PostgreSQLParser.RETURNED_SQLSTATE, 0); + } + + public TerminalNode RETURNS() { + return getToken(PostgreSQLParser.RETURNS, 0); + } + + public TerminalNode REVOKE() { + return getToken(PostgreSQLParser.REVOKE, 0); + } + + public TerminalNode RIGHT() { + return getToken(PostgreSQLParser.RIGHT, 0); + } + + public TerminalNode ROLE() { + return getToken(PostgreSQLParser.ROLE, 0); + } + + public TerminalNode ROLLBACK() { + return getToken(PostgreSQLParser.ROLLBACK, 0); + } + + public TerminalNode ROLLUP() { + return getToken(PostgreSQLParser.ROLLUP, 0); + } + + public TerminalNode ROUTINE() { + return getToken(PostgreSQLParser.ROUTINE, 0); + } + + public TerminalNode ROUTINE_CATALOG() { + return getToken(PostgreSQLParser.ROUTINE_CATALOG, 0); + } + + public TerminalNode ROUTINE_NAME() { + return getToken(PostgreSQLParser.ROUTINE_NAME, 0); + } + + public TerminalNode ROUTINE_SCHEMA() { + return getToken(PostgreSQLParser.ROUTINE_SCHEMA, 0); + } + + public TerminalNode ROW() { + return getToken(PostgreSQLParser.ROW, 0); + } + + public TerminalNode ROWS() { + return getToken(PostgreSQLParser.ROWS, 0); + } + + public TerminalNode ROW_COUNT() { + return getToken(PostgreSQLParser.ROW_COUNT, 0); + } + + public TerminalNode ROW_NUMBER() { + return getToken(PostgreSQLParser.ROW_NUMBER, 0); + } + + public TerminalNode RULE() { + return getToken(PostgreSQLParser.RULE, 0); + } + + public TerminalNode SAVEPOINT() { + return getToken(PostgreSQLParser.SAVEPOINT, 0); + } + + public TerminalNode SCALE() { + return getToken(PostgreSQLParser.SCALE, 0); + } + + public TerminalNode SCHEMA() { + return getToken(PostgreSQLParser.SCHEMA, 0); + } + + public TerminalNode SCHEMA_NAME() { + return getToken(PostgreSQLParser.SCHEMA_NAME, 0); + } + + public TerminalNode SCOPE() { + return getToken(PostgreSQLParser.SCOPE, 0); + } + + public TerminalNode SCOPE_CATALOG() { + return getToken(PostgreSQLParser.SCOPE_CATALOG, 0); + } + + public TerminalNode SCOPE_NAME() { + return getToken(PostgreSQLParser.SCOPE_NAME, 0); + } + + public TerminalNode SCOPE_SCHEMA() { + return getToken(PostgreSQLParser.SCOPE_SCHEMA, 0); + } + + public TerminalNode SCROLL() { + return getToken(PostgreSQLParser.SCROLL, 0); + } + + public TerminalNode SEARCH() { + return getToken(PostgreSQLParser.SEARCH, 0); + } + + public TerminalNode SECOND() { + return getToken(PostgreSQLParser.SECOND, 0); + } + + public TerminalNode SECTION() { + return getToken(PostgreSQLParser.SECTION, 0); + } + + public TerminalNode SECURITY() { + return getToken(PostgreSQLParser.SECURITY, 0); + } + + public TerminalNode SELF() { + return getToken(PostgreSQLParser.SELF, 0); + } + + public TerminalNode SENSITIVE() { + return getToken(PostgreSQLParser.SENSITIVE, 0); + } + + public TerminalNode SEQUENCE() { + return getToken(PostgreSQLParser.SEQUENCE, 0); + } + + public TerminalNode SEQUENCES() { + return getToken(PostgreSQLParser.SEQUENCES, 0); + } + + public TerminalNode SERIALIZABLE() { + return getToken(PostgreSQLParser.SERIALIZABLE, 0); + } + + public TerminalNode SERVER_NAME() { + return getToken(PostgreSQLParser.SERVER_NAME, 0); + } + + public TerminalNode SESSION() { + return getToken(PostgreSQLParser.SESSION, 0); + } + + public TerminalNode SET() { + return getToken(PostgreSQLParser.SET, 0); + } + + public TerminalNode SETOF() { + return getToken(PostgreSQLParser.SETOF, 0); + } + + public TerminalNode SETS() { + return getToken(PostgreSQLParser.SETS, 0); + } + + public TerminalNode SHARE() { + return getToken(PostgreSQLParser.SHARE, 0); + } + + public TerminalNode SHOW() { + return getToken(PostgreSQLParser.SHOW, 0); + } + + public TerminalNode SIMPLE() { + return getToken(PostgreSQLParser.SIMPLE, 0); + } + + public TerminalNode SIZE() { + return getToken(PostgreSQLParser.SIZE, 0); + } + + public TerminalNode SMALLINT() { + return getToken(PostgreSQLParser.SMALLINT, 0); + } + + public TerminalNode SOME() { + return getToken(PostgreSQLParser.SOME, 0); + } + + public TerminalNode SOURCE() { + return getToken(PostgreSQLParser.SOURCE, 0); + } + + public TerminalNode SPACE() { + return getToken(PostgreSQLParser.SPACE, 0); + } + + public TerminalNode SPECIFIC() { + return getToken(PostgreSQLParser.SPECIFIC, 0); + } + + public TerminalNode SPECIFICTYPE() { + return getToken(PostgreSQLParser.SPECIFICTYPE, 0); + } + + public TerminalNode SPECIFIC_NAME() { + return getToken(PostgreSQLParser.SPECIFIC_NAME, 0); + } + + public TerminalNode SQL() { + return getToken(PostgreSQLParser.SQL, 0); + } + + public TerminalNode SQLCODE() { + return getToken(PostgreSQLParser.SQLCODE, 0); + } + + public TerminalNode SQLERROR() { + return getToken(PostgreSQLParser.SQLERROR, 0); + } + + public TerminalNode SQLEXCEPTION() { + return getToken(PostgreSQLParser.SQLEXCEPTION, 0); + } + + public TerminalNode SQLSTATE() { + return getToken(PostgreSQLParser.SQLSTATE, 0); + } + + public TerminalNode SQLWARNING() { + return getToken(PostgreSQLParser.SQLWARNING, 0); + } + + public TerminalNode SQRT() { + return getToken(PostgreSQLParser.SQRT, 0); + } + + public TerminalNode STABLE() { + return getToken(PostgreSQLParser.STABLE, 0); + } + + public TerminalNode START() { + return getToken(PostgreSQLParser.START, 0); + } + + public TerminalNode STATE() { + return getToken(PostgreSQLParser.STATE, 0); + } + + public TerminalNode STATEMENT() { + return getToken(PostgreSQLParser.STATEMENT, 0); + } + + public TerminalNode STATIC() { + return getToken(PostgreSQLParser.STATIC, 0); + } + + public TerminalNode STATISTICS() { + return getToken(PostgreSQLParser.STATISTICS, 0); + } + + public TerminalNode STDDEV_POP() { + return getToken(PostgreSQLParser.STDDEV_POP, 0); + } + + public TerminalNode STDDEV_SAMP() { + return getToken(PostgreSQLParser.STDDEV_SAMP, 0); + } + + public TerminalNode STDIN() { + return getToken(PostgreSQLParser.STDIN, 0); + } + + public TerminalNode STDOUT() { + return getToken(PostgreSQLParser.STDOUT, 0); + } + + public TerminalNode STORAGE() { + return getToken(PostgreSQLParser.STORAGE, 0); + } + + public TerminalNode STRICT() { + return getToken(PostgreSQLParser.STRICT, 0); + } + + public TerminalNode STRUCTURE() { + return getToken(PostgreSQLParser.STRUCTURE, 0); + } + + public TerminalNode STYLE() { + return getToken(PostgreSQLParser.STYLE, 0); + } + + public TerminalNode SUBCLASS_ORIGIN() { + return getToken(PostgreSQLParser.SUBCLASS_ORIGIN, 0); + } + + public TerminalNode SUBMULTISET() { + return getToken(PostgreSQLParser.SUBMULTISET, 0); + } + + public TerminalNode SUBSTRING() { + return getToken(PostgreSQLParser.SUBSTRING, 0); + } + + public TerminalNode SUM() { + return getToken(PostgreSQLParser.SUM, 0); + } + + public TerminalNode SYSID() { + return getToken(PostgreSQLParser.SYSID, 0); + } + + public TerminalNode SYSTEM() { + return getToken(PostgreSQLParser.SYSTEM, 0); + } + + public TerminalNode SYSTEM_USER() { + return getToken(PostgreSQLParser.SYSTEM_USER, 0); + } + + public TerminalNode TABLESPACE() { + return getToken(PostgreSQLParser.TABLESPACE, 0); + } + + public TerminalNode TABLE_NAME() { + return getToken(PostgreSQLParser.TABLE_NAME, 0); + } + + public TerminalNode TEMP() { + return getToken(PostgreSQLParser.TEMP, 0); + } + + public TerminalNode TEMPLATE() { + return getToken(PostgreSQLParser.TEMPLATE, 0); + } + + public TerminalNode TEMPORARY() { + return getToken(PostgreSQLParser.TEMPORARY, 0); + } + + public TerminalNode TEXT() { + return getToken(PostgreSQLParser.TEXT, 0); + } + + public TerminalNode TIES() { + return getToken(PostgreSQLParser.TIES, 0); + } + + public TerminalNode TIME() { + return getToken(PostgreSQLParser.TIME, 0); + } + + public TerminalNode TIMESTAMP() { + return getToken(PostgreSQLParser.TIMESTAMP, 0); + } + + public TerminalNode TIMEZONE_HOUR() { + return getToken(PostgreSQLParser.TIMEZONE_HOUR, 0); + } + + public TerminalNode TIMEZONE_MINUTE() { + return getToken(PostgreSQLParser.TIMEZONE_MINUTE, 0); + } + + public TerminalNode TOP_LEVEL_COUNT() { + return getToken(PostgreSQLParser.TOP_LEVEL_COUNT, 0); + } + + public TerminalNode TRANSACTION() { + return getToken(PostgreSQLParser.TRANSACTION, 0); + } + + public TerminalNode TRANSACTIONS_COMMITTED() { + return getToken(PostgreSQLParser.TRANSACTIONS_COMMITTED, 0); + } + + public TerminalNode TRANSACTIONS_ROLLED_BACK() { + return getToken(PostgreSQLParser.TRANSACTIONS_ROLLED_BACK, 0); + } + + public TerminalNode TRANSACTION_ACTIVE() { + return getToken(PostgreSQLParser.TRANSACTION_ACTIVE, 0); + } + + public TerminalNode TRANSFORM() { + return getToken(PostgreSQLParser.TRANSFORM, 0); + } + + public TerminalNode TRANSFORMS() { + return getToken(PostgreSQLParser.TRANSFORMS, 0); + } + + public TerminalNode TRANSLATE() { + return getToken(PostgreSQLParser.TRANSLATE, 0); + } + + public TerminalNode TRANSLATION() { + return getToken(PostgreSQLParser.TRANSLATION, 0); + } + + public TerminalNode TREAT() { + return getToken(PostgreSQLParser.TREAT, 0); + } + + public TerminalNode TRIGGER() { + return getToken(PostgreSQLParser.TRIGGER, 0); + } + + public TerminalNode TRIGGER_CATALOG() { + return getToken(PostgreSQLParser.TRIGGER_CATALOG, 0); + } + + public TerminalNode TRIGGER_NAME() { + return getToken(PostgreSQLParser.TRIGGER_NAME, 0); + } + + public TerminalNode TRIGGER_SCHEMA() { + return getToken(PostgreSQLParser.TRIGGER_SCHEMA, 0); + } + + public TerminalNode TRIM() { + return getToken(PostgreSQLParser.TRIM, 0); + } + + public TerminalNode TRUE() { + return getToken(PostgreSQLParser.TRUE, 0); + } + + public TerminalNode TRUNCATE() { + return getToken(PostgreSQLParser.TRUNCATE, 0); + } + + public TerminalNode TRUSTED() { + return getToken(PostgreSQLParser.TRUSTED, 0); + } + + public TerminalNode TYPE() { + return getToken(PostgreSQLParser.TYPE, 0); + } + + public TerminalNode UESCAPE() { + return getToken(PostgreSQLParser.UESCAPE, 0); + } + + public TerminalNode UNBOUNDED() { + return getToken(PostgreSQLParser.UNBOUNDED, 0); + } + + public TerminalNode UNCOMMITTED() { + return getToken(PostgreSQLParser.UNCOMMITTED, 0); + } + + public TerminalNode UNDER() { + return getToken(PostgreSQLParser.UNDER, 0); + } + + public TerminalNode UNENCRYPTED() { + return getToken(PostgreSQLParser.UNENCRYPTED, 0); + } + + public TerminalNode UNKNOWN() { + return getToken(PostgreSQLParser.UNKNOWN, 0); + } + + public TerminalNode UNLISTEN() { + return getToken(PostgreSQLParser.UNLISTEN, 0); + } + + public TerminalNode UNNAMED() { + return getToken(PostgreSQLParser.UNNAMED, 0); + } + + public TerminalNode UNNEST() { + return getToken(PostgreSQLParser.UNNEST, 0); + } + + public TerminalNode UNTIL() { + return getToken(PostgreSQLParser.UNTIL, 0); + } + + public TerminalNode UPDATE() { + return getToken(PostgreSQLParser.UPDATE, 0); + } + + public TerminalNode UPPER() { + return getToken(PostgreSQLParser.UPPER, 0); + } + + public TerminalNode USAGE() { + return getToken(PostgreSQLParser.USAGE, 0); + } + + public TerminalNode USER_DEFINED_TYPE_CATALOG() { + return getToken(PostgreSQLParser.USER_DEFINED_TYPE_CATALOG, 0); + } + + public TerminalNode USER_DEFINED_TYPE_CODE() { + return getToken(PostgreSQLParser.USER_DEFINED_TYPE_CODE, 0); + } + + public TerminalNode USER_DEFINED_TYPE_NAME() { + return getToken(PostgreSQLParser.USER_DEFINED_TYPE_NAME, 0); + } + + public TerminalNode USER_DEFINED_TYPE_SCHEMA() { + return getToken(PostgreSQLParser.USER_DEFINED_TYPE_SCHEMA, 0); + } + + public TerminalNode VACUUM() { + return getToken(PostgreSQLParser.VACUUM, 0); + } + + public TerminalNode VALID() { + return getToken(PostgreSQLParser.VALID, 0); + } + + public TerminalNode VALIDATOR() { + return getToken(PostgreSQLParser.VALIDATOR, 0); + } + + public TerminalNode VALUE() { + return getToken(PostgreSQLParser.VALUE, 0); + } + + public TerminalNode VALUES() { + return getToken(PostgreSQLParser.VALUES, 0); + } + + public TerminalNode VARCHAR() { + return getToken(PostgreSQLParser.VARCHAR, 0); + } + + public TerminalNode VARYING() { + return getToken(PostgreSQLParser.VARYING, 0); + } + + public TerminalNode VAR_POP() { + return getToken(PostgreSQLParser.VAR_POP, 0); + } + + public TerminalNode VAR_SAMP() { + return getToken(PostgreSQLParser.VAR_SAMP, 0); + } + + public TerminalNode VIEW() { + return getToken(PostgreSQLParser.VIEW, 0); + } + + public TerminalNode VOLATILE() { + return getToken(PostgreSQLParser.VOLATILE, 0); + } + + public TerminalNode WHENEVER() { + return getToken(PostgreSQLParser.WHENEVER, 0); + } + + public TerminalNode WHITESPACE() { + return getToken(PostgreSQLParser.WHITESPACE, 0); + } + + public TerminalNode WIDTH_BUCKET() { + return getToken(PostgreSQLParser.WIDTH_BUCKET, 0); + } + + public TerminalNode WITHIN() { + return getToken(PostgreSQLParser.WITHIN, 0); + } + + public TerminalNode WITHOUT() { + return getToken(PostgreSQLParser.WITHOUT, 0); + } + + public TerminalNode WORK() { + return getToken(PostgreSQLParser.WORK, 0); + } + + public TerminalNode WRITE() { + return getToken(PostgreSQLParser.WRITE, 0); + } + + public TerminalNode YEAR() { + return getToken(PostgreSQLParser.YEAR, 0); + } + + public TerminalNode ZONE() { + return getToken(PostgreSQLParser.ZONE, 0); + } + + public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_non_reserved_keyword; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterNon_reserved_keyword(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitNon_reserved_keyword(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitNon_reserved_keyword(this); + else return visitor.visitChildren(this); + } + } + + public final Non_reserved_keywordContext non_reserved_keyword() throws RecognitionException { + Non_reserved_keywordContext _localctx = new Non_reserved_keywordContext(_ctx, getState()); + enterRule(_localctx, 510, RULE_non_reserved_keyword); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5598); + _la = _input.LA(1); + if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || _la == TEXT)) { + _errHandler.recoverInline(this); + } else { + if (_input.LA(1) == Token.EOF) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class IdentifierContext extends ParserRuleContext { + public Non_reserved_keywordContext non_reserved_keyword() { + return getRuleContext(Non_reserved_keywordContext.class, 0); + } + + public TerminalNode DOUBLEQ_STRING_LITERAL() { + return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); + } + + public TerminalNode IDENTIFIER() { + return getToken(PostgreSQLParser.IDENTIFIER, 0); + } + + public Type_nameContext type_name() { + return getRuleContext(Type_nameContext.class, 0); + } + + public TerminalNode IDENTIFIER_UNICODE() { + return getToken(PostgreSQLParser.IDENTIFIER_UNICODE, 0); + } + + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class, i); + } + + public TerminalNode DOT() { + return getToken(PostgreSQLParser.DOT, 0); + } + + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_identifier; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterIdentifier(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitIdentifier(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitIdentifier(this); + else return visitor.visitChildren(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + return identifier(0); + } + + private IdentifierContext identifier(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + IdentifierContext _localctx = new IdentifierContext(_ctx, _parentState); + IdentifierContext _prevctx = _localctx; + int _startState = 512; + enterRecursionRule(_localctx, 512, RULE_identifier, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5606); + _errHandler.sync(this); + switch (getInterpreter().adaptivePredict(_input, 689, _ctx)) { + case 1: { + setState(5601); + non_reserved_keyword(); + } + break; + case 2: { + setState(5602); + match(DOUBLEQ_STRING_LITERAL); + } + break; + case 3: { + setState(5603); + match(IDENTIFIER); + } + break; + case 4: { + setState(5604); + type_name(); + } + break; + case 5: { + setState(5605); + match(IDENTIFIER_UNICODE); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(5613); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 690, _ctx); + while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt == 1) { + if (_parseListeners != null) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new IdentifierContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_identifier); + setState(5608); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(5609); + match(DOT); + setState(5610); + identifier(4); + } + } + } + setState(5615); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input, 690, _ctx); + } + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Todo_fill_inContext extends ParserRuleContext { + public Todo_fill_inContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_todo_fill_in; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTodo_fill_in(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTodo_fill_in(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTodo_fill_in(this); + else return visitor.visitChildren(this); + } + } + + public final Todo_fill_inContext todo_fill_in() throws RecognitionException { + Todo_fill_inContext _localctx = new Todo_fill_inContext(_ctx, getState()); + enterRule(_localctx, 514, RULE_todo_fill_in); + try { + enterOuterAlt(_localctx, 1); + { + setState(5616); + matchWildcard(); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Todo_implementContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Todo_implementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_todo_implement; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterTodo_implement(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitTodo_implement(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitTodo_implement(this); + else return visitor.visitChildren(this); + } + } + + public final Todo_implementContext todo_implement() throws RecognitionException { + Todo_implementContext _localctx = new Todo_implementContext(_ctx, getState()); + enterRule(_localctx, 516, RULE_todo_implement); + try { + enterOuterAlt(_localctx, 1); + { + setState(5618); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Correlation_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Correlation_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_correlation_name; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterCorrelation_name(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitCorrelation_name(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitCorrelation_name(this); + else return visitor.visitChildren(this); + } + } + + public final Correlation_nameContext correlation_name() throws RecognitionException { + Correlation_nameContext _localctx = new Correlation_nameContext(_ctx, getState()); + enterRule(_localctx, 518, RULE_correlation_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5620); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Column_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Column_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_column_name; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterColumn_name(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitColumn_name(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitColumn_name(this); + else return visitor.visitChildren(this); + } + } + + public final Column_nameContext column_name() throws RecognitionException { + Column_nameContext _localctx = new Column_nameContext(_ctx, getState()); + enterRule(_localctx, 520, RULE_column_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5622); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class AliasContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public AliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_alias; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterAlias(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitAlias(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitAlias(this); + else return visitor.visitChildren(this); + } + } + + public final AliasContext alias() throws RecognitionException { + AliasContext _localctx = new AliasContext(_ctx, getState()); + enterRule(_localctx, 522, RULE_alias); + try { + enterOuterAlt(_localctx, 1); + { + setState(5624); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Column_aliasContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Column_aliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_column_alias; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterColumn_alias(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitColumn_alias(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitColumn_alias(this); + else return visitor.visitChildren(this); + } + } + + public final Column_aliasContext column_alias() throws RecognitionException { + Column_aliasContext _localctx = new Column_aliasContext(_ctx, getState()); + enterRule(_localctx, 524, RULE_column_alias); + try { + enterOuterAlt(_localctx, 1); + { + setState(5626); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Column_definitionContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Column_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_column_definition; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterColumn_definition(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitColumn_definition(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitColumn_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Column_definitionContext column_definition() throws RecognitionException { + Column_definitionContext _localctx = new Column_definitionContext(_ctx, getState()); + enterRule(_localctx, 526, RULE_column_definition); + try { + enterOuterAlt(_localctx, 1); + { + setState(5628); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public static class Window_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class, 0); + } + + public Window_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + + @Override + public int getRuleIndex() { + return RULE_window_name; + } + + @Override + public void enterRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).enterWindow_name(this); + } + + @Override + public void exitRule(ParseTreeListener listener) { + if (listener instanceof PostgreSQLParserListener) + ((PostgreSQLParserListener) listener).exitWindow_name(this); + } + + @Override + public T accept(ParseTreeVisitor visitor) { + if (visitor instanceof PostgreSQLParserVisitor) + return ((PostgreSQLParserVisitor) visitor).visitWindow_name(this); + else return visitor.visitChildren(this); + } + } + + public final Window_nameContext window_name() throws RecognitionException { + Window_nameContext _localctx = new Window_nameContext(_ctx, getState()); + enterRule(_localctx, 528, RULE_window_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5630); + identifier(0); + } + } catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 216: + return expr_sempred((ExprContext) _localctx, predIndex); + case 217: + return bool_expr_sempred((Bool_exprContext) _localctx, predIndex); + case 241: + return from_item_sempred((From_itemContext) _localctx, predIndex); + case 245: + return predicate_sempred((PredicateContext) _localctx, predIndex); + case 256: + return identifier_sempred((IdentifierContext) _localctx, predIndex); + } + return true; + } + + private boolean expr_sempred(ExprContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 27); + case 1: + return precpred(_ctx, 26); + case 2: + return precpred(_ctx, 25); + case 3: + return precpred(_ctx, 24); + case 4: + return precpred(_ctx, 23); + case 5: + return precpred(_ctx, 22); + case 6: + return precpred(_ctx, 21); + case 7: + return precpred(_ctx, 20); + case 8: + return precpred(_ctx, 18); + case 9: + return precpred(_ctx, 33); + case 10: + return precpred(_ctx, 28); + case 11: + return precpred(_ctx, 19); + case 12: + return precpred(_ctx, 11); + case 13: + return precpred(_ctx, 10); + case 14: + return precpred(_ctx, 8); + case 15: + return precpred(_ctx, 7); + case 16: + return precpred(_ctx, 4); + } + return true; + } + + private boolean bool_expr_sempred(Bool_exprContext _localctx, int predIndex) { + switch (predIndex) { + case 17: + return precpred(_ctx, 2); + case 18: + return precpred(_ctx, 1); + } + return true; + } + + private boolean from_item_sempred(From_itemContext _localctx, int predIndex) { + switch (predIndex) { + case 19: + return precpred(_ctx, 1); + } + return true; + } + + private boolean predicate_sempred(PredicateContext _localctx, int predIndex) { + switch (predIndex) { + case 20: + return precpred(_ctx, 3); + case 21: + return precpred(_ctx, 2); + } + return true; + } + + private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { + switch (predIndex) { + case 22: + return precpred(_ctx, 3); + } + return true; + } + + private static final int _serializedATNSegments = 3; + private static final String _serializedATNSegment0 = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u0345\u1603\4\2\t" + + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13" + + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22" + + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31" + + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!" + + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4" + + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t" + + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t=" + + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I" + + "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT" + + "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4" + + "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t" + + "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4" + + "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080" + + "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085" + + "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089" + + "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e" + + "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092" + + "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097" + + "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b" + + "\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0" + + "\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4\t\u00a4" + + "\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8\4\u00a9" + + "\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad" + + "\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1\4\u00b2" + + "\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6\t\u00b6" + + "\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb" + + "\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf" + + "\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3\4\u00c4" + + "\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8\t\u00c8" + + "\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd" + + "\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1\t\u00d1" + + "\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5\4\u00d6" + + "\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da" + + "\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df" + + "\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3\t\u00e3" + + "\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7\4\u00e8" + + "\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec" + + "\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0\4\u00f1" + + "\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5\t\u00f5" + + "\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9\4\u00fa" + + "\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe\t\u00fe" + + "\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102\4\u0103" + + "\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107\t\u0107" + + "\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\3\2\3\2\3\2\6\2\u0218" + + "\n\2\r\2\16\2\u0219\3\2\3\2\5\2\u021e\n\2\3\2\3\2\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\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\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\3\3\3\3\3\3\3\3\3\3\3\5\3\u0256\n\3\3\4\3\4" + + "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3" + + "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5" + + "\3\5\3\5\3\5\3\5\3\5\5\5\u0282\n\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6" + + "\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3" + + "\6\3\6\3\6\3\6\5\6\u02a2\n\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3" + + "\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\5\7" + + "\u02bf\n\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b" + + "\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u02d6\n\b\3\t\3\t\3\n\3\n\3\13\3\13\3\13" + + "\3\13\3\13\3\13\3\13\3\13\5\13\u02e4\n\13\3\13\3\13\3\13\3\13\3\13\3\13" + + "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u02f4\n\13\3\13\3\13\3\13" + + "\3\13\3\13\3\13\3\13\5\13\u02fd\n\13\3\13\3\13\5\13\u0301\n\13\3\13\3" + + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3" + + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3" + + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u0328\n\13\3\f\3\f\3\f\3\f" + + "\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u0336\n\f\3\f\3\f\3\f\3\f\3\f\3\f" + + "\3\f\3\f\3\f\5\f\u0341\n\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u034b\n" + + "\f\3\r\3\r\3\r\3\r\3\r\3\r\5\r\u0353\n\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\5" + + "\r\u035c\n\r\3\16\3\16\3\17\3\17\5\17\u0362\n\17\3\17\3\17\3\17\3\17\5" + + "\17\u0368\n\17\3\17\5\17\u036b\n\17\3\17\3\17\5\17\u036f\n\17\3\17\3\17" + + "\5\17\u0373\n\17\3\17\3\17\5\17\u0377\n\17\3\17\3\17\5\17\u037b\n\17\3" + + "\17\3\17\3\17\5\17\u0380\n\17\3\17\3\17\3\17\3\17\5\17\u0386\n\17\3\17" + + "\3\17\5\17\u038a\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u0393\n" + + "\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u039b\n\17\3\17\3\17\3\17\3\17" + + "\3\17\3\17\3\17\5\17\u03a4\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17" + + "\u03ad\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u03b7\n\17\3" + + "\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u03c1\n\17\3\17\3\17\3\17" + + "\3\17\3\17\3\17\3\17\5\17\u03ca\n\17\3\17\3\17\3\17\5\17\u03cf\n\17\3" + + "\17\3\17\3\17\3\17\5\17\u03d5\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17" + + "\5\17\u03de\n\17\3\17\3\17\5\17\u03e2\n\17\3\17\3\17\3\17\3\17\3\17\5" + + "\17\u03e9\n\17\3\17\3\17\3\17\3\17\3\17\5\17\u03f0\n\17\3\17\3\17\3\17" + + "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17" + + "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u040a\n\17\5\17\u040c\n\17\3" + + "\20\3\20\3\20\7\20\u0411\n\20\f\20\16\20\u0414\13\20\3\21\3\21\3\21\3" + + "\21\3\21\5\21\u041b\n\21\3\21\5\21\u041e\n\21\3\21\3\21\5\21\u0422\n\21" + + "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\5\21\u042b\n\21\3\21\5\21\u042e\n" + + "\21\3\21\3\21\5\21\u0432\n\21\3\21\3\21\5\21\u0436\n\21\3\21\3\21\3\21" + + "\3\21\3\21\3\21\3\21\3\21\3\21\5\21\u0441\n\21\3\21\3\21\3\21\3\21\3\21" + + "\3\21\3\21\3\21\3\21\3\21\5\21\u044d\n\21\3\21\3\21\3\21\3\21\3\21\5\21" + + "\u0454\n\21\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23" + + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\5\23\u046d\n\23" + + "\3\24\3\24\3\24\3\24\5\24\u0473\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24" + + "\3\24\3\24\5\24\u047e\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24" + + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u0491\n\24\3\24\3\24\3\24" + + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u049d\n\24\3\24\3\24\3\24\3\24" + + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u04ad\n\24\3\24" + + "\3\24\3\24\3\24\5\24\u04b3\n\24\5\24\u04b5\n\24\3\25\3\25\5\25\u04b9\n" + + "\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u04c3\n\25\3\25\3\25" + + "\3\25\3\25\3\25\3\25\3\25\5\25\u04cc\n\25\5\25\u04ce\n\25\3\26\3\26\3" + + "\26\3\26\3\26\3\26\3\26\3\26\3\26\5\26\u04d9\n\26\3\27\3\27\3\30\3\30" + + "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31" + + "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u04f4\n\31\3\31\3\31\3\31\3\31" + + "\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0500\n\31\3\32\3\32\3\33\3\33\3\33" + + "\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\5\33" + + "\u0514\n\33\3\33\3\33\5\33\u0518\n\33\3\33\3\33\3\33\5\33\u051d\n\33\5" + + "\33\u051f\n\33\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0527\n\34\3\34\3\34" + + "\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0531\n\34\3\34\3\34\3\34\3\34\3\34" + + "\3\34\3\34\3\34\5\34\u053b\n\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34" + + "\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34" + + "\3\34\3\34\5\34\u0555\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35" + + "\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u0569\n\35\3\35\3\35" + + "\3\35\3\35\3\35\5\35\u0570\n\35\3\36\3\36\3\36\3\36\5\36\u0576\n\36\3" + + "\36\6\36\u0579\n\36\r\36\16\36\u057a\3\36\3\36\3\36\3\36\3\36\3\36\3\36" + + "\3\36\3\36\3\36\3\36\5\36\u0588\n\36\3\36\3\36\3\36\5\36\u058d\n\36\3" + + "\36\3\36\3\36\3\36\3\36\5\36\u0594\n\36\3\36\3\36\3\36\3\36\5\36\u059a" + + "\n\36\3\36\3\36\3\36\5\36\u059f\n\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36" + + "\3\36\3\36\5\36\u05aa\n\36\3\36\3\36\3\36\5\36\u05af\n\36\3\36\3\36\3" + + "\36\3\36\3\36\3\36\5\36\u05b7\n\36\3\36\3\36\3\36\5\36\u05bc\n\36\3\36" + + "\3\36\5\36\u05c0\n\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 " + + "\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u05da\n \5 \u05dc\n \3!" + + "\3!\3!\3!\5!\u05e2\n!\3!\3!\3\"\5\"\u05e7\n\"\3\"\3\"\5\"\u05eb\n\"\3" + + "\"\3\"\5\"\u05ef\n\"\3\"\3\"\5\"\u05f3\n\"\7\"\u05f5\n\"\f\"\16\"\u05f8" + + "\13\"\3#\3#\3#\3#\3#\3#\3#\5#\u0601\n#\3#\3#\3#\3#\3#\5#\u0608\n#\3#\3" + + "#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\5#\u0618\n#\3$\3$\3$\3$\3$\3$\3" + + "$\3$\5$\u0622\n$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0632\n" + + "$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0645\n%\3%\3" + + "%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0651\n%\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%\3%\5%\u0673" + + "\n%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\5&\u0683\n&\3\'\3\'\3(\3" + + "(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\5(\u0696\n(\3(\3(\3(\3(\3(\3" + + "(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\5(\u06a8\n(\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)\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)\5)\u06e5\n)\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)\5)\u0705\n)\3*\3*\3+\3" + + "+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\5,\u071d\n,\3" + + "-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\5-\u0732\n-\3" + + ".\3.\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60" + + "\3\61\3\61\3\62\3\62\5\62\u0748\n\62\3\62\3\62\3\62\3\62\3\62\5\62\u074f" + + "\n\62\3\63\3\63\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3" + + "9\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\3" + + "9\39\39\39\39\39\39\39\39\39\39\39\39\39\59\u0784\n9\3:\3:\3:\3:\3:\3" + + ":\3:\3:\3:\3;\3;\3;\3;\3;\5;\u0794\n;\3;\5;\u0797\n;\3;\3;\3;\3;\3;\3" + + ";\3;\3;\3;\3;\3;\3;\3;\3;\5;\u07a7\n;\3;\3;\3;\3;\5;\u07ad\n;\3;\3;\5" + + ";\u07b1\n;\3;\3;\3;\3;\5;\u07b7\n;\3;\3;\3;\3;\5;\u07bd\n;\3;\3;\3;\3" + + ";\5;\u07c3\n;\3;\3;\3;\3;\5;\u07c9\n;\3;\3;\3;\3;\5;\u07cf\n;\3;\3;\3" + + ";\3;\5;\u07d5\n;\3;\3;\3;\3;\5;\u07db\n;\3;\3;\3;\3;\5;\u07e1\n;\3;\3" + + ";\3;\3;\5;\u07e7\n;\3;\3;\5;\u07eb\n;\3;\3;\3;\3;\5;\u07f1\n;\3;\3;\3" + + ";\3;\5;\u07f7\n;\3;\3;\3;\3;\5;\u07fd\n;\3;\3;\3;\3;\3;\3;\3;\5;\u0806" + + "\n;\3;\5;\u0809\n;\3;\5;\u080c\n;\3;\3;\3;\5;\u0811\n;\3;\5;\u0814\n;" + + "\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\5;\u0824\n;\3;\3;\3;\3;\5;" + + "\u082a\n;\3;\3;\5;\u082e\n;\3;\3;\3;\3;\5;\u0834\n;\3;\3;\3;\3;\5;\u083a" + + "\n;\3;\3;\5;\u083e\n;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;" + + "\3;\3;\3;\3;\3;\5;\u0855\n;\3;\3;\3;\3;\5;\u085b\n;\3;\3;\5;\u085f\n;" + + "\3;\3;\3;\3;\5;\u0865\n;\3;\3;\3;\3;\5;\u086b\n;\3;\3;\3;\3;\5;\u0871" + + "\n;\3;\3;\3;\3;\5;\u0877\n;\3;\3;\3;\3;\5;\u087d\n;\3;\3;\3;\3;\5;\u0883" + + "\n;\3;\3;\3;\3;\5;\u0889\n;\3;\3;\3;\3;\5;\u088f\n;\3;\3;\3;\3;\5;\u0895" + + "\n;\3;\3;\5;\u0899\n;\3;\3;\3;\3;\5;\u089f\n;\3;\3;\3;\3;\5;\u08a5\n;" + + "\3;\3;\5;\u08a9\n;\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\5<\u08b9" + + "\n<\3<\3<\3<\3<\5<\u08bf\n<\3<\3<\3<\3<\5<\u08c5\n<\3=\3=\3=\3=\3=\3=" + + "\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\5=\u08d9\n=\3>\3>\3>\7>\u08de\n>" + + "\f>\16>\u08e1\13>\3?\3?\3?\3?\3?\5?\u08e8\n?\3?\3?\3?\3?\3?\3?\3?\3?\3" + + "?\3?\5?\u08f4\n?\3?\3?\3?\3?\5?\u08fa\n?\3@\3@\5@\u08fe\n@\3@\3@\3@\3" + + "@\3@\3@\3@\3@\3@\3A\3A\3A\3A\5A\u090d\nA\3A\3A\3A\5A\u0912\nA\3A\3A\3" + + "A\5A\u0917\nA\3A\3A\3A\5A\u091c\nA\3A\3A\3A\5A\u0921\nA\3A\3A\3A\5A\u0926" + + "\nA\3A\3A\3A\5A\u092b\nA\3A\3A\3A\5A\u0930\nA\3A\3A\3A\3A\5A\u0936\nA" + + "\3A\3A\3A\5A\u093b\nA\3B\3B\5B\u093f\nB\3B\3B\3B\3B\3B\3B\3B\3B\5B\u0949" + + "\nB\3C\3C\3C\3C\5C\u094f\nC\3C\3C\3C\3C\3C\3C\7C\u0957\nC\fC\16C\u095a" + + "\13C\3D\3D\3D\3D\3D\3D\7D\u0962\nD\fD\16D\u0965\13D\3D\3D\3D\7D\u096a" + + "\nD\fD\16D\u096d\13D\3E\3E\3E\3E\3E\3E\3E\3E\5E\u0977\nE\3E\3E\3E\3E\3" + + "E\3E\3F\3F\3F\3F\7F\u0983\nF\fF\16F\u0986\13F\3G\3G\3G\3G\3G\3G\3G\3G" + + "\3G\7G\u0991\nG\fG\16G\u0994\13G\3G\3G\3G\3G\5G\u099a\nG\3G\3G\3G\3G\3" + + "G\5G\u09a1\nG\3H\3H\3H\3H\3H\3H\5H\u09a9\nH\3H\3H\3H\3H\3H\3H\3H\3H\3" + + "H\5H\u09b4\nH\3H\3H\5H\u09b8\nH\3H\3H\3H\5H\u09bd\nH\3H\3H\3H\3H\3H\3" + + "H\3H\5H\u09c6\nH\3I\3I\3I\5I\u09cb\nI\3I\3I\3I\3J\3J\3J\3J\5J\u09d4\n" + + "J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\5J\u09e3\nJ\3J\3J\3J\3J\3J\3" + + "J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\6J\u09f8\nJ\rJ\16J\u09f9\5J\u09fc" + + "\nJ\3K\3K\5K\u0a00\nK\3K\3K\5K\u0a04\nK\3K\3K\3K\5K\u0a09\nK\3K\5K\u0a0c" + + "\nK\3K\3K\3K\3K\5K\u0a12\nK\3K\3K\5K\u0a16\nK\3K\3K\5K\u0a1a\nK\3L\3L" + + "\3L\5L\u0a1f\nL\3L\5L\u0a22\nL\3L\3L\3L\3L\3L\5L\u0a29\nL\3L\5L\u0a2c" + + "\nL\3L\5L\u0a2f\nL\3L\3L\3L\3L\3L\3L\5L\u0a37\nL\3L\3L\5L\u0a3b\nL\5L" + + "\u0a3d\nL\3M\3M\3M\3M\3M\3M\5M\u0a45\nM\3M\3M\3M\3M\3M\5M\u0a4c\nM\3M" + + "\5M\u0a4f\nM\3M\3M\5M\u0a53\nM\3M\3M\3M\3M\5M\u0a59\nM\3M\5M\u0a5c\nM" + + "\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\5N\u0a69\nN\3N\3N\3N\3N\5N\u0a6f\nN" + + "\3N\3N\3N\3N\5N\u0a75\nN\3N\3N\3N\3N\5N\u0a7b\nN\3N\3N\3N\3N\5N\u0a81" + + "\nN\3N\3N\3N\3N\5N\u0a87\nN\3N\3N\5N\u0a8b\nN\3N\3N\5N\u0a8f\nN\3N\3N" + + "\3O\3O\3O\3O\3O\3O\3O\3O\3O\5O\u0a9c\nO\3O\3O\3O\3O\3O\3O\5O\u0aa4\nO" + + "\3O\3O\5O\u0aa8\nO\3O\3O\3O\3O\3O\3O\3O\5O\u0ab1\nO\3P\3P\3P\3P\3P\5P" + + "\u0ab8\nP\3P\3P\3P\3P\3P\3P\3P\5P\u0ac1\nP\3P\3P\3P\3P\7P\u0ac7\nP\fP" + + "\16P\u0aca\13P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\5R\u0ada\nR\3" + + "R\3R\5R\u0ade\nR\3R\3R\3R\3R\3R\5R\u0ae5\nR\3R\3R\3R\3R\3R\3R\5R\u0aed" + + "\nR\3S\3S\3S\3S\5S\u0af3\nS\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S" + + "\3S\3S\3S\3S\5S\u0b07\nS\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S" + + "\3S\3S\3S\3S\6S\u0b1c\nS\rS\16S\u0b1d\5S\u0b20\nS\3T\3T\3U\3U\3U\5U\u0b27" + + "\nU\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0b32\nU\3U\3U\5U\u0b36\nU\3U\3U\5U" + + "\u0b3a\nU\3V\3V\3V\3V\3V\5V\u0b41\nV\3V\5V\u0b44\nV\3V\3V\3V\3V\3V\5V" + + "\u0b4b\nV\3V\3V\3V\3V\3V\3V\3V\3V\5V\u0b55\nV\3V\3V\3V\3V\3V\3V\3V\5V" + + "\u0b5e\nV\3W\3W\5W\u0b62\nW\3W\3W\3W\3W\5W\u0b68\nW\3W\3W\3W\5W\u0b6d" + + "\nW\3W\5W\u0b70\nW\3W\3W\3W\3W\5W\u0b76\nW\3W\3W\3W\3W\5W\u0b7c\nW\3W" + + "\3W\5W\u0b80\nW\3W\5W\u0b83\nW\3W\3W\5W\u0b87\nW\3W\5W\u0b8a\nW\3W\5W" + + "\u0b8d\nW\3W\3W\3W\3W\3W\3W\3W\5W\u0b96\nW\5W\u0b98\nW\3X\3X\3Y\3Y\3Z" + + "\3Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3_\3_\3`\3`\3a\3a\3b\3b\3c\3c\3d\3d\3e\3" + + "e\3f\3f\3g\3g\3g\5g\u0bbb\ng\3g\5g\u0bbe\ng\3g\5g\u0bc1\ng\3g\3g\3g\3" + + "g\3g\3g\5g\u0bc9\ng\3g\3g\3g\3g\3g\5g\u0bd0\ng\3g\3g\3g\5g\u0bd5\ng\3" + + "g\3g\5g\u0bd9\ng\3g\3g\5g\u0bdd\ng\3h\3h\3i\3i\3j\5j\u0be4\nj\3j\3j\3" + + "j\5j\u0be9\nj\3j\3j\5j\u0bed\nj\3j\5j\u0bf0\nj\3j\5j\u0bf3\nj\3j\3j\5" + + "j\u0bf7\nj\3j\3j\3j\3j\3j\5j\u0bfe\nj\3j\5j\u0c01\nj\3k\3k\3k\3l\3l\3" + + "l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3" + + "l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\5l\u0c2f\nl\3m\3m\3m\3" + + "m\3m\5m\u0c36\nm\3m\3m\5m\u0c3a\nm\3n\3n\3n\3n\5n\u0c40\nn\3n\3n\3n\3" + + "n\3n\3o\3o\3o\3o\5o\u0c4b\no\3o\3o\3o\3o\3o\3o\5o\u0c53\no\3p\3p\3p\3" + + "p\5p\u0c59\np\3p\3p\5p\u0c5d\np\3q\3q\3q\3q\5q\u0c63\nq\3q\3q\5q\u0c67" + + "\nq\3r\3r\3r\3r\5r\u0c6d\nr\3r\3r\3s\3s\3s\3s\5s\u0c75\ns\3s\3s\5s\u0c79" + + "\ns\3t\3t\3t\3t\3t\5t\u0c80\nt\3t\3t\5t\u0c84\nt\3u\3u\3u\3u\5u\u0c8a" + + "\nu\3u\3u\5u\u0c8e\nu\3v\3v\3v\3v\3v\3v\5v\u0c96\nv\3v\3v\5v\u0c9a\nv" + + "\3w\3w\3w\3w\3w\5w\u0ca1\nw\3w\3w\5w\u0ca5\nw\3x\3x\3x\3x\5x\u0cab\nx" + + "\3x\3x\5x\u0caf\nx\3y\3y\3y\3y\5y\u0cb5\ny\3y\3y\3z\3z\3z\5z\u0cbc\nz" + + "\3z\3z\5z\u0cc0\nz\3z\3z\5z\u0cc4\nz\3{\3{\5{\u0cc8\n{\3{\3{\3{\5{\u0ccd" + + "\n{\3{\3{\5{\u0cd1\n{\3|\3|\3|\3|\3|\5|\u0cd8\n|\3|\3|\5|\u0cdc\n|\3}" + + "\3}\3~\3~\3~\3~\3~\5~\u0ce5\n~\3~\3~\3~\3~\5~\u0ceb\n~\3\177\3\177\3\177" + + "\3\177\3\177\5\177\u0cf2\n\177\3\177\3\177\3\177\3\177\5\177\u0cf8\n\177" + + "\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\5\u0080\u0cff\n\u0080\3\u0081" + + "\3\u0081\3\u0081\3\u0081\5\u0081\u0d05\n\u0081\3\u0081\3\u0081\3\u0081" + + "\3\u0081\5\u0081\u0d0b\n\u0081\3\u0082\3\u0082\3\u0082\3\u0082\5\u0082" + + "\u0d11\n\u0082\3\u0082\3\u0082\5\u0082\u0d15\n\u0082\3\u0083\3\u0083\3" + + "\u0083\3\u0083\5\u0083\u0d1b\n\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3" + + "\u0084\3\u0084\5\u0084\u0d23\n\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5" + + "\u0084\u0d29\n\u0084\3\u0085\3\u0085\3\u0085\3\u0085\5\u0085\u0d2f\n\u0085" + + "\3\u0085\3\u0085\5\u0085\u0d33\n\u0085\3\u0086\3\u0086\3\u0086\3\u0086" + + "\5\u0086\u0d39\n\u0086\3\u0086\3\u0086\5\u0086\u0d3d\n\u0086\3\u0087\3" + + "\u0087\3\u0087\3\u0087\5\u0087\u0d43\n\u0087\3\u0087\3\u0087\5\u0087\u0d47" + + "\n\u0087\3\u0088\3\u0088\3\u0088\3\u0088\5\u0088\u0d4d\n\u0088\3\u0088" + + "\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\5\u0089\u0d55\n\u0089\3\u0089" + + "\3\u0089\5\u0089\u0d59\n\u0089\3\u008a\3\u008a\3\u008a\3\u008a\5\u008a" + + "\u0d5f\n\u008a\3\u008a\3\u008a\5\u008a\u0d63\n\u008a\3\u008b\3\u008b\3" + + "\u008b\3\u008b\5\u008b\u0d69\n\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3" + + "\u008c\3\u008c\3\u008c\3\u008c\5\u008c\u0d73\n\u008c\3\u008c\3\u008c\5" + + "\u008c\u0d77\n\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\5" + + "\u008d\u0d7f\n\u008d\3\u008d\3\u008d\5\u008d\u0d83\n\u008d\3\u008e\3\u008e" + + "\3\u008e\3\u008e\3\u008e\3\u008e\5\u008e\u0d8b\n\u008e\3\u008e\3\u008e" + + "\5\u008e\u0d8f\n\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f" + + "\5\u008f\u0d97\n\u008f\3\u008f\3\u008f\5\u008f\u0d9b\n\u008f\3\u0090\3" + + "\u0090\3\u0090\3\u0090\5\u0090\u0da1\n\u0090\3\u0090\3\u0090\3\u0090\3" + + "\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u0dad\n" + + "\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u0db3\n\u0091\3\u0092\3" + + "\u0092\3\u0092\3\u0092\5\u0092\u0db9\n\u0092\3\u0092\3\u0092\5\u0092\u0dbd" + + "\n\u0092\3\u0093\3\u0093\3\u0093\3\u0093\5\u0093\u0dc3\n\u0093\3\u0093" + + "\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\5\u0094\u0dcc\n\u0094" + + "\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\5\u0094\u0dd4\n\u0094" + + "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095\u0ddd" + + "\n\u0095\3\u0095\3\u0095\5\u0095\u0de1\n\u0095\3\u0096\3\u0096\3\u0096" + + "\5\u0096\u0de6\n\u0096\3\u0097\3\u0097\5\u0097\u0dea\n\u0097\3\u0097\5" + + "\u0097\u0ded\n\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\7\u0097\u0df4" + + "\n\u0097\f\u0097\16\u0097\u0df7\13\u0097\3\u0097\3\u0097\5\u0097\u0dfb" + + "\n\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097" + + "\3\u0097\5\u0097\u0e06\n\u0097\3\u0098\3\u0098\3\u0099\3\u0099\3\u009a" + + "\3\u009a\3\u009b\5\u009b\u0e0f\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b" + + "\3\u009b\5\u009b\u0e16\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b" + + "\u0e1c\n\u009b\3\u009b\3\u009b\5\u009b\u0e20\n\u009b\3\u009b\5\u009b\u0e23" + + "\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e29\n\u009b\3\u009b" + + "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e31\n\u009b\3\u009b" + + "\3\u009b\3\u009b\5\u009b\u0e36\n\u009b\3\u009b\5\u009b\u0e39\n\u009b\3" + + "\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e42\n" + + "\u009b\5\u009b\u0e44\n\u009b\5\u009b\u0e46\n\u009b\3\u009b\5\u009b\u0e49" + + "\n\u009b\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009e\3\u009e\5\u009e" + + "\u0e52\n\u009e\3\u009e\5\u009e\u0e55\n\u009e\3\u009e\3\u009e\5\u009e\u0e59" + + "\n\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e" + + "\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e" + + "\5\u009e\u0e6c\n\u009e\3\u009e\5\u009e\u0e6f\n\u009e\3\u009e\5\u009e\u0e72" + + "\n\u009e\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f" + + "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\5\u009f\u0e81\n\u009f\3\u009f" + + "\3\u009f\5\u009f\u0e85\n\u009f\5\u009f\u0e87\n\u009f\3\u009f\5\u009f\u0e8a" + + "\n\u009f\5\u009f\u0e8c\n\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0" + + "\3\u00a0\5\u00a0\u0e94\n\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1" + + "\3\u00a1\5\u00a1\u0e9c\n\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1" + + "\3\u00a1\5\u00a1\u0ea4\n\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3" + + "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\5\u00a3\u0eb0\n\u00a3\3\u00a3" + + "\3\u00a3\3\u00a3\3\u00a3\5\u00a3\u0eb6\n\u00a3\7\u00a3\u0eb8\n\u00a3\f" + + "\u00a3\16\u00a3\u0ebb\13\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\5\u00a3" + + "\u0ec1\n\u00a3\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5\5\u00a5" + + "\u0ec9\n\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6\u0ed0\n" + + "\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\5\u00a7\u0ed7\n\u00a7\3" + + "\u00a8\3\u00a8\3\u00a9\3\u00a9\5\u00a9\u0edd\n\u00a9\3\u00aa\3\u00aa\3" + + "\u00aa\3\u00aa\3\u00ab\3\u00ab\5\u00ab\u0ee5\n\u00ab\3\u00ab\3\u00ab\5" + + "\u00ab\u0ee9\n\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3" + + "\u00ad\3\u00ad\3\u00ad\5\u00ad\u0ef4\n\u00ad\3\u00ad\3\u00ad\3\u00ad\3" + + "\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad\u0f19\n\u00ad\3\u00ad" + + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad" + + "\u0f2d\n\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\5\u00ae\u0f33\n\u00ae\3" + + "\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f38\n\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f3c" + + "\n\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f40\n\u00ae\3\u00ae\6\u00ae\u0f43\n" + + "\u00ae\r\u00ae\16\u00ae\u0f44\3\u00ae\3\u00ae\6\u00ae\u0f49\n\u00ae\r" + + "\u00ae\16\u00ae\u0f4a\3\u00ae\3\u00ae\5\u00ae\u0f4f\n\u00ae\3\u00ae\5" + + "\u00ae\u0f52\n\u00ae\3\u00ae\5\u00ae\u0f55\n\u00ae\3\u00ae\5\u00ae\u0f58" + + "\n\u00ae\3\u00ae\5\u00ae\u0f5b\n\u00ae\3\u00ae\5\u00ae\u0f5e\n\u00ae\3" + + "\u00ae\5\u00ae\u0f61\n\u00ae\3\u00ae\5\u00ae\u0f64\n\u00ae\3\u00ae\5\u00ae" + + "\u0f67\n\u00ae\3\u00ae\5\u00ae\u0f6a\n\u00ae\3\u00ae\5\u00ae\u0f6d\n\u00ae" + + "\3\u00af\5\u00af\u0f70\n\u00af\3\u00af\3\u00af\3\u00af\3\u00af\5\u00af" + + "\u0f76\n\u00af\3\u00af\5\u00af\u0f79\n\u00af\3\u00af\3\u00af\5\u00af\u0f7d" + + "\n\u00af\3\u00af\3\u00af\5\u00af\u0f81\n\u00af\3\u00af\3\u00af\5\u00af" + + "\u0f85\n\u00af\3\u00af\6\u00af\u0f88\n\u00af\r\u00af\16\u00af\u0f89\3" + + "\u00af\3\u00af\6\u00af\u0f8e\n\u00af\r\u00af\16\u00af\u0f8f\3\u00af\3" + + "\u00af\5\u00af\u0f94\n\u00af\3\u00af\5\u00af\u0f97\n\u00af\3\u00af\5\u00af" + + "\u0f9a\n\u00af\3\u00af\5\u00af\u0f9d\n\u00af\3\u00af\5\u00af\u0fa0\n\u00af" + + "\3\u00af\5\u00af\u0fa3\n\u00af\3\u00af\5\u00af\u0fa6\n\u00af\3\u00af\5" + + "\u00af\u0fa9\n\u00af\3\u00af\5\u00af\u0fac\n\u00af\3\u00af\5\u00af\u0faf" + + "\n\u00af\3\u00af\5\u00af\u0fb2\n\u00af\3\u00b0\3\u00b0\5\u00b0\u0fb6\n" + + "\u00b0\3\u00b0\3\u00b0\3\u00b0\7\u00b0\u0fbb\n\u00b0\f\u00b0\16\u00b0" + + "\u0fbe\13\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1\u0fc5" + + "\n\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1" + + "\u0fce\n\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\5\u00b2\u0fd4\n\u00b2\3" + + "\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0fda\n\u00b2\3\u00b2\3\u00b2\5" + + "\u00b2\u0fde\n\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0fe5" + + "\n\u00b2\5\u00b2\u0fe7\n\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\5\u00b3" + + "\u0fed\n\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4\5\u00b4\u0ff3\n\u00b4\3" + + "\u00b4\3\u00b4\3\u00b4\5\u00b4\u0ff8\n\u00b4\3\u00b4\3\u00b4\5\u00b4\u0ffc" + + "\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6" + + "\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u1009\n\u00b6\3\u00b6\3\u00b6\3\u00b6" + + "\3\u00b6\3\u00b6\5\u00b6\u1010\n\u00b6\3\u00b6\5\u00b6\u1013\n\u00b6\3" + + "\u00b7\3\u00b7\3\u00b7\7\u00b7\u1018\n\u00b7\f\u00b7\16\u00b7\u101b\13" + + "\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8" + + "\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\5\u00b8\u102a\n\u00b8\3\u00b9" + + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u1031\n\u00b9\3\u00ba\3\u00ba" + + "\5\u00ba\u1035\n\u00ba\3\u00ba\5\u00ba\u1038\n\u00ba\3\u00ba\3\u00ba\5" + + "\u00ba\u103c\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u1040\n\u00ba\3\u00ba\5\u00ba" + + "\u1043\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u1047\n\u00ba\3\u00ba\5\u00ba\u104a" + + "\n\u00ba\3\u00bb\3\u00bb\3\u00bb\5\u00bb\u104f\n\u00bb\3\u00bc\5\u00bc" + + "\u1052\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u1056\n\u00bc\3\u00bc\3\u00bc\5" + + "\u00bc\u105a\n\u00bc\3\u00bc\5\u00bc\u105d\n\u00bc\3\u00bc\5\u00bc\u1060" + + "\n\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u1065\n\u00bc\3\u00bc\3\u00bc" + + "\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u106c\n\u00bc\3\u00bc\5\u00bc\u106f\n" + + "\u00bc\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\7\u00be\u1076\n\u00be\f" + + "\u00be\16\u00be\u1079\13\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf" + + "\5\u00bf\u1080\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\5\u00bf" + + "\u1087\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u108b\n\u00bf\3\u00bf\5\u00bf\u108e" + + "\n\u00bf\3\u00bf\5\u00bf\u1091\n\u00bf\3\u00bf\5\u00bf\u1094\n\u00bf\3" + + "\u00bf\3\u00bf\5\u00bf\u1098\n\u00bf\3\u00bf\5\u00bf\u109b\n\u00bf\3\u00bf" + + "\5\u00bf\u109e\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf" + + "\5\u00bf\u10a6\n\u00bf\5\u00bf\u10a8\n\u00bf\5\u00bf\u10aa\n\u00bf\3\u00c0" + + "\5\u00c0\u10ad\n\u00c0\3\u00c0\3\u00c0\3\u00c0\6\u00c0\u10b2\n\u00c0\r" + + "\u00c0\16\u00c0\u10b3\3\u00c0\3\u00c0\6\u00c0\u10b8\n\u00c0\r\u00c0\16" + + "\u00c0\u10b9\3\u00c0\3\u00c0\5\u00c0\u10be\n\u00c0\3\u00c0\5\u00c0\u10c1" + + "\n\u00c0\3\u00c0\5\u00c0\u10c4\n\u00c0\3\u00c0\5\u00c0\u10c7\n\u00c0\3" + + "\u00c0\5\u00c0\u10ca\n\u00c0\3\u00c0\5\u00c0\u10cd\n\u00c0\3\u00c1\3\u00c1" + + "\3\u00c1\3\u00c1\5\u00c1\u10d3\n\u00c1\5\u00c1\u10d5\n\u00c1\3\u00c1\3" + + "\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\7\u00c2\u10dd\n\u00c2\f\u00c2\16" + + "\u00c2\u10e0\13\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4" + + "\3\u00c4\3\u00c4\7\u00c4\u10ea\n\u00c4\f\u00c4\16\u00c4\u10ed\13\u00c4" + + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\5\u00c5" + + "\u10f7\n\u00c5\3\u00c5\3\u00c5\3\u00c5\5\u00c5\u10fc\n\u00c5\7\u00c5\u10fe" + + "\n\u00c5\f\u00c5\16\u00c5\u1101\13\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5" + + "\3\u00c5\5\u00c5\u1108\n\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6" + + "\u110e\n\u00c6\f\u00c6\16\u00c6\u1111\13\u00c6\3\u00c6\3\u00c6\3\u00c7" + + "\3\u00c7\3\u00c7\3\u00c7\7\u00c7\u1119\n\u00c7\f\u00c7\16\u00c7\u111c" + + "\13\u00c7\3\u00c8\3\u00c8\5\u00c8\u1120\n\u00c8\3\u00c8\5\u00c8\u1123" + + "\n\u00c8\3\u00c8\5\u00c8\u1126\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8" + + "\u112b\n\u00c8\3\u00c8\5\u00c8\u112e\n\u00c8\3\u00c8\5\u00c8\u1131\n\u00c8" + + "\7\u00c8\u1133\n\u00c8\f\u00c8\16\u00c8\u1136\13\u00c8\3\u00c9\3\u00c9" + + "\5\u00c9\u113a\n\u00c9\3\u00c9\3\u00c9\5\u00c9\u113e\n\u00c9\3\u00ca\3" + + "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca" + + "\5\u00ca\u114a\n\u00ca\3\u00cb\3\u00cb\3\u00cc\3\u00cc\3\u00cd\3\u00cd" + + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u1158\n\u00cd" + + "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\7\u00ce\u1160\n\u00ce" + + "\f\u00ce\16\u00ce\u1163\13\u00ce\3\u00ce\5\u00ce\u1166\n\u00ce\3\u00cf" + + "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\5\u00d0" + + "\u1171\n\u00d0\3\u00d0\7\u00d0\u1174\n\u00d0\f\u00d0\16\u00d0\u1177\13" + + "\u00d0\3\u00d0\3\u00d0\5\u00d0\u117b\n\u00d0\3\u00d0\7\u00d0\u117e\n\u00d0" + + "\f\u00d0\16\u00d0\u1181\13\u00d0\3\u00d0\5\u00d0\u1184\n\u00d0\3\u00d1" + + "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\7\u00d1\u118b\n\u00d1\f\u00d1\16\u00d1" + + "\u118e\13\u00d1\3\u00d2\3\u00d2\5\u00d2\u1192\n\u00d2\3\u00d2\3\u00d2" + + "\3\u00d2\3\u00d2\5\u00d2\u1198\n\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2" + + "\3\u00d2\3\u00d2\7\u00d2\u11a0\n\u00d2\f\u00d2\16\u00d2\u11a3\13\u00d2" + + "\5\u00d2\u11a5\n\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u11ab\n" + + "\u00d3\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u11b0\n\u00d4\3\u00d5\3\u00d5\3" + + "\u00d5\5\u00d5\u11b5\n\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d6\3\u00d6\3" + + "\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\5\u00d6\u11c2\n\u00d6\3" + + "\u00d6\3\u00d6\3\u00d6\3\u00d6\7\u00d6\u11c8\n\u00d6\f\u00d6\16\u00d6" + + "\u11cb\13\u00d6\5\u00d6\u11cd\n\u00d6\3\u00d6\3\u00d6\3\u00d6\7\u00d6" + + "\u11d2\n\u00d6\f\u00d6\16\u00d6\u11d5\13\u00d6\3\u00d7\3\u00d7\3\u00d7" + + "\7\u00d7\u11da\n\u00d7\f\u00d7\16\u00d7\u11dd\13\u00d7\3\u00d8\3\u00d8" + + "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\5\u00d8\u11e6\n\u00d8\5\u00d8" + + "\u11e8\n\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\6\u00da\u11fd\n\u00da\r\u00da\16\u00da\u11fe" + + "\3\u00da\3\u00da\3\u00da\3\u00da\6\u00da\u1205\n\u00da\r\u00da\16\u00da" + + "\u1206\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\5\u00da\u1237\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\5\u00da\u1249\n\u00da\3\u00da\3\u00da\3\u00da" + + "\5\u00da\u124e\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da" + + "\u125e\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\5\u00da\u1270\n\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u1275\n\u00da\3" + + "\u00da\3\u00da\5\u00da\u1279\n\u00da\3\u00da\6\u00da\u127c\n\u00da\r\u00da" + + "\16\u00da\u127d\3\u00da\3\u00da\3\u00da\6\u00da\u1283\n\u00da\r\u00da" + + "\16\u00da\u1284\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u1292\n\u00da\3\u00da\3\u00da" + + "\3\u00da\3\u00da\3\u00da\3\u00da\7\u00da\u129a\n\u00da\f\u00da\16\u00da" + + "\u129d\13\u00da\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u12a4" + + "\n\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\7\u00db\u12ac" + + "\n\u00db\f\u00db\16\u00db\u12af\13\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc" + + "\3\u00dc\3\u00dc\3\u00dc\6\u00dc\u12b8\n\u00dc\r\u00dc\16\u00dc\u12b9" + + "\3\u00dc\3\u00dc\5\u00dc\u12be\n\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc" + + "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\6\u00dc\u12c8\n\u00dc\r\u00dc\16\u00dc" + + "\u12c9\3\u00dc\3\u00dc\5\u00dc\u12ce\n\u00dc\3\u00dc\3\u00dc\5\u00dc\u12d2" + + "\n\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\7\u00dd\u12d8\n\u00dd\f\u00dd" + + "\16\u00dd\u12db\13\u00dd\3\u00dd\3\u00dd\3\u00de\5\u00de\u12e0\n\u00de" + + "\3\u00de\3\u00de\3\u00de\7\u00de\u12e5\n\u00de\f\u00de\16\u00de\u12e8" + + "\13\u00de\3\u00de\5\u00de\u12eb\n\u00de\3\u00df\5\u00df\u12ee\n\u00df" + + "\3\u00df\5\u00df\u12f1\n\u00df\3\u00df\5\u00df\u12f4\n\u00df\3\u00e0\3" + + "\u00e0\3\u00e0\7\u00e0\u12f9\n\u00e0\f\u00e0\16\u00e0\u12fc\13\u00e0\3" + + "\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\5\u00e1\u1303\n\u00e1\3\u00e2\3" + + "\u00e2\3\u00e2\7\u00e2\u1308\n\u00e2\f\u00e2\16\u00e2\u130b\13\u00e2\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3" + + "\u1315\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u131b\n\u00e3\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3" + + "\u1325\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u132b\n\u00e3\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1331\n\u00e3\3\u00e3\3\u00e3\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u133c\n" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3" + + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u134a\n\u00e3\3\u00e3\5\u00e3" + + "\u134d\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3" + + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u135c\n\u00e3" + + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3" + + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u136e" + + "\n\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1373\n\u00e3\3\u00e3\3\u00e3" + + "\3\u00e3\3\u00e3\5\u00e3\u1379\n\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3" + + "\u137e\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1384\n\u00e3\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u138a\n\u00e3\3\u00e3\3\u00e3\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1394\n\u00e3\3" + + "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u139a\n\u00e3\3\u00e3\5\u00e3\u139d" + + "\n\u00e3\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\5\u00e5\u13a5" + + "\n\u00e5\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u13aa\n\u00e6\3\u00e6\3\u00e6" + + "\3\u00e6\7\u00e6\u13af\n\u00e6\f\u00e6\16\u00e6\u13b2\13\u00e6\3\u00e6" + + "\5\u00e6\u13b5\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + + "\3\u00e6\5\u00e6\u13be\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u13ca\n\u00e6\3\u00e6" + + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\7\u00e6\u13d1\n\u00e6\f\u00e6\16\u00e6" + + "\u13d4\13\u00e6\5\u00e6\u13d6\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6" + + "\u13e4\n\u00e6\5\u00e6\u13e6\n\u00e6\3\u00e7\3\u00e7\5\u00e7\u13ea\n\u00e7" + + "\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u13ef\n\u00e8\f\u00e8\16\u00e8\u13f2" + + "\13\u00e8\3\u00e9\3\u00e9\3\u00e9\7\u00e9\u13f7\n\u00e9\f\u00e9\16\u00e9" + + "\u13fa\13\u00e9\3\u00ea\3\u00ea\3\u00ea\5\u00ea\u13ff\n\u00ea\3\u00eb" + + "\3\u00eb\3\u00eb\7\u00eb\u1404\n\u00eb\f\u00eb\16\u00eb\u1407\13\u00eb" + + "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\5\u00ed\u140d\n\u00ed\3\u00ed\3\u00ed" + + "\5\u00ed\u1411\n\u00ed\3\u00ed\7\u00ed\u1414\n\u00ed\f\u00ed\16\u00ed" + + "\u1417\13\u00ed\3\u00ee\3\u00ee\3\u00ee\7\u00ee\u141c\n\u00ee\f\u00ee" + + "\16\u00ee\u141f\13\u00ee\3\u00ef\3\u00ef\5\u00ef\u1423\n\u00ef\3\u00f0" + + "\3\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1" + + "\3\u00f1\3\u00f1\3\u00f1\7\u00f1\u1432\n\u00f1\f\u00f1\16\u00f1\u1435" + + "\13\u00f1\3\u00f1\3\u00f1\3\u00f1\5\u00f1\u143a\n\u00f1\5\u00f1\u143c" + + "\n\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1" + + "\3\u00f1\5\u00f1\u1447\n\u00f1\3\u00f1\3\u00f1\5\u00f1\u144b\n\u00f1\3" + + "\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\7\u00f2\u1452\n\u00f2\f\u00f2\16" + + "\u00f2\u1455\13\u00f2\5\u00f2\u1457\n\u00f2\3\u00f2\3\u00f2\3\u00f3\3" + + "\u00f3\5\u00f3\u145d\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u1461\n\u00f3\3\u00f3" + + "\5\u00f3\u1464\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3" + + "\7\u00f3\u146c\n\u00f3\f\u00f3\16\u00f3\u146f\13\u00f3\3\u00f3\3\u00f3" + + "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u1477\n\u00f3\5\u00f3\u1479\n" + + "\u00f3\3\u00f3\5\u00f3\u147c\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\5" + + "\u00f3\u1482\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u1489" + + "\n\u00f3\f\u00f3\16\u00f3\u148c\13\u00f3\3\u00f3\3\u00f3\5\u00f3\u1490" + + "\n\u00f3\3\u00f3\5\u00f3\u1493\n\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3" + + "\u1498\n\u00f3\3\u00f3\5\u00f3\u149b\n\u00f3\3\u00f3\5\u00f3\u149e\n\u00f3" + + "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u14a6\n\u00f3" + + "\f\u00f3\16\u00f3\u14a9\13\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u14ae" + + "\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3" + + "\3\u00f3\3\u00f3\7\u00f3\u14ba\n\u00f3\f\u00f3\16\u00f3\u14bd\13\u00f3" + + "\3\u00f3\3\u00f3\5\u00f3\u14c1\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14c5\n" + + "\u00f3\3\u00f3\3\u00f3\5\u00f3\u14c9\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14cd" + + "\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14d1\n\u00f3\3\u00f3\5\u00f3\u14d4\n" + + "\u00f3\7\u00f3\u14d6\n\u00f3\f\u00f3\16\u00f3\u14d9\13\u00f3\3\u00f4\5" + + "\u00f4\u14dc\n\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\7\u00f4\u14e2\n\u00f4" + + "\f\u00f4\16\u00f4\u14e5\13\u00f4\5\u00f4\u14e7\n\u00f4\3\u00f4\5\u00f4" + + "\u14ea\n\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\5\u00f4\u14f1\n" + + "\u00f4\3\u00f5\5\u00f5\u14f4\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u14f9" + + "\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u14fe\n\u00f5\3\u00f5\3\u00f5" + + "\3\u00f5\5\u00f5\u1503\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u1508\n" + + "\u00f5\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\7\u00f6" + + "\u1511\n\u00f6\f\u00f6\16\u00f6\u1514\13\u00f6\3\u00f6\3\u00f6\5\u00f6" + + "\u1518\n\u00f6\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7" + + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\5\u00f7\u1526\n\u00f7\3\u00f7" + + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\7\u00f7\u152e\n\u00f7\f\u00f7" + + "\16\u00f7\u1531\13\u00f7\3\u00f8\3\u00f8\5\u00f8\u1535\n\u00f8\3\u00f8" + + "\5\u00f8\u1538\n\u00f8\3\u00f8\3\u00f8\5\u00f8\u153c\n\u00f8\3\u00f8\5" + + "\u00f8\u153f\n\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\5\u00f8\u1546" + + "\n\u00f8\3\u00f8\5\u00f8\u1549\n\u00f8\3\u00f8\3\u00f8\5\u00f8\u154d\n" + + "\u00f8\3\u00f9\3\u00f9\3\u00f9\3\u00fa\6\u00fa\u1553\n\u00fa\r\u00fa\16" + + "\u00fa\u1554\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u155c\n\u00fb" + + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u1562\n\u00fb\3\u00fc\3\u00fc" + + "\3\u00fc\3\u00fc\3\u00fc\5\u00fc\u1569\n\u00fc\3\u00fc\5\u00fc\u156c\n" + + "\u00fc\3\u00fc\5\u00fc\u156f\n\u00fc\3\u00fc\3\u00fc\5\u00fc\u1573\n\u00fc" + + "\3\u00fd\3\u00fd\5\u00fd\u1577\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + + "\3\u00fd\3\u00fd\5\u00fd\u157f\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + + "\3\u00fd\3\u00fd\5\u00fd\u1590\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd\u159d" + + "\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + + "\5\u00fd\u15a7\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd" + + "\u15ae\n\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd\u15b3\n\u00fd\3\u00fd\3" + + "\u00fd\3\u00fd\5\u00fd\u15b8\n\u00fd\5\u00fd\u15ba\n\u00fd\3\u00fd\5\u00fd" + + "\u15bd\n\u00fd\3\u00fd\5\u00fd\u15c0\n\u00fd\3\u00fd\3\u00fd\5\u00fd\u15c4" + + "\n\u00fd\3\u00fe\3\u00fe\3\u00fe\3\u00fe\5\u00fe\u15ca\n\u00fe\3\u00ff" + + "\3\u00ff\3\u00ff\7\u00ff\u15cf\n\u00ff\f\u00ff\16\u00ff\u15d2\13\u00ff" + + "\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100" + + "\3\u0100\3\u0100\5\u0100\u15df\n\u0100\3\u0101\3\u0101\3\u0102\3\u0102" + + "\3\u0102\3\u0102\3\u0102\3\u0102\5\u0102\u15e9\n\u0102\3\u0102\3\u0102" + + "\3\u0102\7\u0102\u15ee\n\u0102\f\u0102\16\u0102\u15f1\13\u0102\3\u0103" + + "\3\u0103\3\u0104\3\u0104\3\u0105\3\u0105\3\u0106\3\u0106\3\u0107\3\u0107" + + "\3\u0108\3\u0108\3\u0109\3\u0109\3\u010a\3\u010a\3\u010a\2\7\u01b2\u01b4" + + "\u01e4\u01ec\u0202\u010b\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(" + + "*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084" + + "\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c" + + "\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4" + + "\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc" + + "\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4" + + "\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc" + + "\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114" + + "\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c" + + "\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144" + + "\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c" + + "\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174" + + "\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c" + + "\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4" + + "\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc" + + "\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4" + + "\u01d6\u01d8\u01da\u01dc\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec" + + "\u01ee\u01f0\u01f2\u01f4\u01f6\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204" + + "\u0206\u0208\u020a\u020c\u020e\u0210\u0212\2\64\4\2\u00be\u00be\u0209" + + "\u0209\4\2>>\u01dc\u01dc\4\2\26\26\u01d9\u01d9\6\2\u00d8\u00d8\u00da\u00da" + + "\u0145\u0145\u01a9\u01a9\5\2\r\r\u00be\u00be\u0209\u0209\4\2\u0249\u0249" + + "\u0319\u0319\4\2\u010b\u010b\u027e\u027e\3\2\u02b0\u02b2\4\2\u00c7\u00c7" + + "\u0263\u0263\4\2\u0174\u0174\u030a\u030a\7\2\22\22\u00a5\u00a5\u0118\u0118" + + "\u0200\u0200\u026b\u026b\6\2\u00a5\u00a5\u0118\u0118\u0200\u0200\u026b" + + "\u026b\4\2\24\24\u011b\u011b\4\2\u023d\u023d\u023f\u023f\4\2??\u013c\u013c" + + "\7\2\22\22\u01aa\u01aa\u0204\u0204\u023d\u023d\u023f\u023f\4\2\u0237\u0237" + + "\u026e\u026e\4\2\22\22\u0307\u0307\4\2\u00ee\u00ee\u010b\u010b\7\2\u0094" + + "\u0094\u010e\u010e\u01f5\u01f5\u0237\u0237\u0239\u0239\4\2\u024d\u024d" + + "\u028b\u028b\5\2\u023d\u023d\u023f\u023f\u0345\u0345\4\2\u013c\u013c\u0207" + + "\u0207\4\2\u00a1\u00a1\u0107\u0107\4\2vv\u01db\u01db\7\2\30\30\u00b6\u00b6" + + "\u00ed\u00ed\u00ef\u00ef\u0280\u0280\4\2\u0085\u0085\u01e9\u01e9\7\2\30" + + "\30\67\67||\u0248\u0248\u0280\u0280\6\2\u028d\u028d\u02e0\u02e0\u02f1" + + "\u02f1\u02f9\u02f9\4\2\u01be\u01be\u01f1\u01f1\5\2\u00cd\u00cd\u011e\u011e" + + "\u0264\u0264\4\2\22\22\u00ba\u00ba\4\2\u00e1\u00e1\u012f\u012f\4\2\u01ee" + + "\u01ee\u01f1\u01f1\4\2\u00e1\u00e1\u0168\u0168\3\2\u02fd\u02fd\6\2\u0314" + + "\u0314\u0316\u0316\u032f\u032f\u0335\u0335\4\2\u0339\u0339\u033c\u033c" + + "\4\2\22\22\u016f\u016f\4\2\u0318\u0318\u0333\u0334\5\2\u02ff\u02ff\u0330" + + "\u0330\u033b\u033b\4\2\u032f\u032f\u0335\u0335\16\2\31\31\u016f\u016f" + + "\u0189\u0189\u030f\u0313\u031a\u031a\u031d\u0325\u0328\u0329\u032b\u032e" + + "\u0331\u0332\u0336\u0338\u033a\u033a\u033c\u0343\7\2\u0317\u0317\u0319" + + "\u0319\u031b\u031c\u0326\u0327\u032a\u032a\6\2\u010b\u010b\u0115\u0115" + + "\u018e\u018e\u027e\u027e\4\2\u0288\u0288\u028a\u028a\4\2\u0306\u0307\u030a" + + "\u030b\3\2\u02bf\u02c4\4\2\36\36\u00ad\u00ado\2\3\3\6\20\23\26\32\33\37" + + "!#&(.\60\61\63\64\66\668?BORY\\_afhilnp{}\177\u0084\u0087\u0089\u008a" + + "\u008e\u008e\u0090\u009c\u009e\u009e\u00a1\u00a8\u00aa\u00ac\u00ae\u00af" + + "\u00b2\u00b4\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c6\u00c8\u00ca\u00cc" + + "\u00ce\u00d3\u00d5\u00d7\u00d9\u00db\u00df\u00e4\u00e6\u00e6\u00e8\u00ec" + + "\u00f0\u00f8\u00fa\u00fb\u00fd\u00fe\u0100\u0105\u0107\u010a\u010c\u010f" + + "\u0111\u0111\u0115\u011d\u011f\u0120\u0122\u0122\u0124\u0124\u0127\u012a" + + "\u012d\u012f\u0132\u0134\u0136\u0136\u0139\u013c\u013f\u0144\u0146\u0146" + + "\u0148\u0148\u014a\u0158\u015a\u0162\u0164\u0169\u016c\u016e\u0170\u0171" + + "\u0173\u0173\u0175\u017e\u0180\u0181\u0184\u0184\u0186\u0188\u018b\u018e" + + "\u0190\u0191\u0193\u019d\u01a0\u01a7\u01a9\u01a9\u01ab\u01ac\u01ae\u01b0" + + "\u01b3\u01b3\u01b5\u01b5\u01b7\u01bb\u01bd\u01c2\u01c4\u01c6\u01c8\u01cd" + + "\u01cf\u01d8\u01da\u01e2\u01e4\u01ff\u0201\u0207\u0209\u020d\u020f\u0210" + + "\u0212\u0212\u0214\u022f\u0231\u0231\u0233\u0234\u0236\u0238\u023a\u023a" + + "\u023c\u023f\u0243\u0247\u024b\u024b\u024d\u0263\u0266\u026d\u026f\u0272" + + "\u0274\u0275\u0277\u027c\u027f\u027f\u0281\u0282\u0284\u0284\u0286\u0286" + + "\u0289\u028c\u028e\u028e\u0290\u0290\u02f1\u02f1\2\u19b8\2\u0214\3\2\2" + + "\2\4\u0255\3\2\2\2\6\u0257\3\2\2\2\b\u0281\3\2\2\2\n\u02a1\3\2\2\2\f\u02be" + + "\3\2\2\2\16\u02d5\3\2\2\2\20\u02d7\3\2\2\2\22\u02d9\3\2\2\2\24\u0327\3" + + "\2\2\2\26\u034a\3\2\2\2\30\u035b\3\2\2\2\32\u035d\3\2\2\2\34\u040b\3\2" + + "\2\2\36\u040d\3\2\2\2 \u0453\3\2\2\2\"\u0455\3\2\2\2$\u046c\3\2\2\2&\u04b4" + + "\3\2\2\2(\u04cd\3\2\2\2*\u04cf\3\2\2\2,\u04da\3\2\2\2.\u04dc\3\2\2\2\60" + + "\u04ff\3\2\2\2\62\u0501\3\2\2\2\64\u051e\3\2\2\2\66\u0554\3\2\2\28\u056f" + + "\3\2\2\2:\u05bf\3\2\2\2<\u05c1\3\2\2\2>\u05db\3\2\2\2@\u05dd\3\2\2\2B" + + "\u05e6\3\2\2\2D\u0617\3\2\2\2F\u0631\3\2\2\2H\u0672\3\2\2\2J\u0682\3\2" + + "\2\2L\u0684\3\2\2\2N\u06a7\3\2\2\2P\u0704\3\2\2\2R\u0706\3\2\2\2T\u0708" + + "\3\2\2\2V\u071c\3\2\2\2X\u0731\3\2\2\2Z\u0733\3\2\2\2\\\u0735\3\2\2\2" + + "^\u0737\3\2\2\2`\u0743\3\2\2\2b\u0745\3\2\2\2d\u0750\3\2\2\2f\u0752\3" + + "\2\2\2h\u0754\3\2\2\2j\u0756\3\2\2\2l\u0758\3\2\2\2n\u075a\3\2\2\2p\u0783" + + "\3\2\2\2r\u0785\3\2\2\2t\u08a8\3\2\2\2v\u08aa\3\2\2\2x\u08d8\3\2\2\2z" + + "\u08da\3\2\2\2|\u08f9\3\2\2\2~\u08fb\3\2\2\2\u0080\u0908\3\2\2\2\u0082" + + "\u093e\3\2\2\2\u0084\u094a\3\2\2\2\u0086\u095b\3\2\2\2\u0088\u096e\3\2" + + "\2\2\u008a\u097e\3\2\2\2\u008c\u0987\3\2\2\2\u008e\u09a2\3\2\2\2\u0090" + + "\u09c7\3\2\2\2\u0092\u09cf\3\2\2\2\u0094\u09fd\3\2\2\2\u0096\u0a3c\3\2" + + "\2\2\u0098\u0a3e\3\2\2\2\u009a\u0a5d\3\2\2\2\u009c\u0ab0\3\2\2\2\u009e" + + "\u0ab2\3\2\2\2\u00a0\u0acb\3\2\2\2\u00a2\u0ad2\3\2\2\2\u00a4\u0aee\3\2" + + "\2\2\u00a6\u0b21\3\2\2\2\u00a8\u0b23\3\2\2\2\u00aa\u0b5d\3\2\2\2\u00ac" + + "\u0b5f\3\2\2\2\u00ae\u0b99\3\2\2\2\u00b0\u0b9b\3\2\2\2\u00b2\u0b9d\3\2" + + "\2\2\u00b4\u0b9f\3\2\2\2\u00b6\u0ba1\3\2\2\2\u00b8\u0ba3\3\2\2\2\u00ba" + + "\u0ba5\3\2\2\2\u00bc\u0ba7\3\2\2\2\u00be\u0ba9\3\2\2\2\u00c0\u0bab\3\2" + + "\2\2\u00c2\u0bad\3\2\2\2\u00c4\u0baf\3\2\2\2\u00c6\u0bb1\3\2\2\2\u00c8" + + "\u0bb3\3\2\2\2\u00ca\u0bb5\3\2\2\2\u00cc\u0bb7\3\2\2\2\u00ce\u0bde\3\2" + + "\2\2\u00d0\u0be0\3\2\2\2\u00d2\u0be3\3\2\2\2\u00d4\u0c02\3\2\2\2\u00d6" + + "\u0c2e\3\2\2\2\u00d8\u0c30\3\2\2\2\u00da\u0c3b\3\2\2\2\u00dc\u0c46\3\2" + + "\2\2\u00de\u0c54\3\2\2\2\u00e0\u0c5e\3\2\2\2\u00e2\u0c68\3\2\2\2\u00e4" + + "\u0c70\3\2\2\2\u00e6\u0c7a\3\2\2\2\u00e8\u0c85\3\2\2\2\u00ea\u0c8f\3\2" + + "\2\2\u00ec\u0c9b\3\2\2\2\u00ee\u0ca6\3\2\2\2\u00f0\u0cb0\3\2\2\2\u00f2" + + "\u0cb8\3\2\2\2\u00f4\u0cc5\3\2\2\2\u00f6\u0cd2\3\2\2\2\u00f8\u0cdd\3\2" + + "\2\2\u00fa\u0cdf\3\2\2\2\u00fc\u0cec\3\2\2\2\u00fe\u0cf9\3\2\2\2\u0100" + + "\u0d00\3\2\2\2\u0102\u0d0c\3\2\2\2\u0104\u0d16\3\2\2\2\u0106\u0d1e\3\2" + + "\2\2\u0108\u0d2a\3\2\2\2\u010a\u0d34\3\2\2\2\u010c\u0d3e\3\2\2\2\u010e" + + "\u0d48\3\2\2\2\u0110\u0d50\3\2\2\2\u0112\u0d5a\3\2\2\2\u0114\u0d64\3\2" + + "\2\2\u0116\u0d6c\3\2\2\2\u0118\u0d78\3\2\2\2\u011a\u0d84\3\2\2\2\u011c" + + "\u0d90\3\2\2\2\u011e\u0d9c\3\2\2\2\u0120\u0da8\3\2\2\2\u0122\u0db4\3\2" + + "\2\2\u0124\u0dbe\3\2\2\2\u0126\u0dc6\3\2\2\2\u0128\u0dd8\3\2\2\2\u012a" + + "\u0de2\3\2\2\2\u012c\u0dfa\3\2\2\2\u012e\u0e07\3\2\2\2\u0130\u0e09\3\2" + + "\2\2\u0132\u0e0b\3\2\2\2\u0134\u0e0e\3\2\2\2\u0136\u0e4a\3\2\2\2\u0138" + + "\u0e4d\3\2\2\2\u013a\u0e4f\3\2\2\2\u013c\u0e73\3\2\2\2\u013e\u0e8f\3\2" + + "\2\2\u0140\u0e95\3\2\2\2\u0142\u0ea5\3\2\2\2\u0144\u0ea9\3\2\2\2\u0146" + + "\u0ec2\3\2\2\2\u0148\u0ec4\3\2\2\2\u014a\u0ecd\3\2\2\2\u014c\u0ed3\3\2" + + "\2\2\u014e\u0ed8\3\2\2\2\u0150\u0eda\3\2\2\2\u0152\u0ede\3\2\2\2\u0154" + + "\u0ee2\3\2\2\2\u0156\u0eec\3\2\2\2\u0158\u0eef\3\2\2\2\u015a\u0f32\3\2" + + "\2\2\u015c\u0f6f\3\2\2\2\u015e\u0fb3\3\2\2\2\u0160\u0fbf\3\2\2\2\u0162" + + "\u0fe6\3\2\2\2\u0164\u0fe8\3\2\2\2\u0166\u0ffb\3\2\2\2\u0168\u0ffd\3\2" + + "\2\2\u016a\u1012\3\2\2\2\u016c\u1014\3\2\2\2\u016e\u1029\3\2\2\2\u0170" + + "\u102b\3\2\2\2\u0172\u1032\3\2\2\2\u0174\u104b\3\2\2\2\u0176\u1051\3\2" + + "\2\2\u0178\u1070\3\2\2\2\u017a\u1072\3\2\2\2\u017c\u10a9\3\2\2\2\u017e" + + "\u10ac\3\2\2\2\u0180\u10d4\3\2\2\2\u0182\u10d8\3\2\2\2\u0184\u10e1\3\2" + + "\2\2\u0186\u10e4\3\2\2\2\u0188\u1107\3\2\2\2\u018a\u1109\3\2\2\2\u018c" + + "\u1114\3\2\2\2\u018e\u1125\3\2\2\2\u0190\u113d\3\2\2\2\u0192\u1149\3\2" + + "\2\2\u0194\u114b\3\2\2\2\u0196\u114d\3\2\2\2\u0198\u1157\3\2\2\2\u019a" + + "\u1165\3\2\2\2\u019c\u1167\3\2\2\2\u019e\u116e\3\2\2\2\u01a0\u1185\3\2" + + "\2\2\u01a2\u1191\3\2\2\2\u01a4\u11a6\3\2\2\2\u01a6\u11ac\3\2\2\2\u01a8" + + "\u11b1\3\2\2\2\u01aa\u11b9\3\2\2\2\u01ac\u11d6\3\2\2\2\u01ae\u11e7\3\2" + + "\2\2\u01b0\u11e9\3\2\2\2\u01b2\u1236\3\2\2\2\u01b4\u12a3\3\2\2\2\u01b6" + + "\u12d1\3\2\2\2\u01b8\u12d3\3\2\2\2\u01ba\u12df\3\2\2\2\u01bc\u12f3\3\2" + + "\2\2\u01be\u12f5\3\2\2\2\u01c0\u12fd\3\2\2\2\u01c2\u1304\3\2\2\2\u01c4" + + "\u139c\3\2\2\2\u01c6\u139e\3\2\2\2\u01c8\u13a4\3\2\2\2\u01ca\u13e5\3\2" + + "\2\2\u01cc\u13e9\3\2\2\2\u01ce\u13eb\3\2\2\2\u01d0\u13f3\3\2\2\2\u01d2" + + "\u13fb\3\2\2\2\u01d4\u1400\3\2\2\2\u01d6\u1408\3\2\2\2\u01d8\u140c\3\2" + + "\2\2\u01da\u1418\3\2\2\2\u01dc\u1422\3\2\2\2\u01de\u1424\3\2\2\2\u01e0" + + "\u144a\3\2\2\2\u01e2\u144c\3\2\2\2\u01e4\u14c4\3\2\2\2\u01e6\u14f0\3\2" + + "\2\2\u01e8\u1507\3\2\2\2\u01ea\u1517\3\2\2\2\u01ec\u1525\3\2\2\2\u01ee" + + "\u154c\3\2\2\2\u01f0\u154e\3\2\2\2\u01f2\u1552\3\2\2\2\u01f4\u155b\3\2" + + "\2\2\u01f6\u1568\3\2\2\2\u01f8\u1576\3\2\2\2\u01fa\u15c9\3\2\2\2\u01fc" + + "\u15cb\3\2\2\2\u01fe\u15de\3\2\2\2\u0200\u15e0\3\2\2\2\u0202\u15e8\3\2" + + "\2\2\u0204\u15f2\3\2\2\2\u0206\u15f4\3\2\2\2\u0208\u15f6\3\2\2\2\u020a" + + "\u15f8\3\2\2\2\u020c\u15fa\3\2\2\2\u020e\u15fc\3\2\2\2\u0210\u15fe\3\2" + + "\2\2\u0212\u1600\3\2\2\2\u0214\u021d\5\4\3\2\u0215\u0216\7\u0344\2\2\u0216" + + "\u0218\5\4\3\2\u0217\u0215\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u0217\3\2" + + "\2\2\u0219\u021a\3\2\2\2\u021a\u021b\3\2\2\2\u021b\u021c\7\u0344\2\2\u021c" + + "\u021e\3\2\2\2\u021d\u0217\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u021f\3\2" + + "\2\2\u021f\u0220\7\2\2\3\u0220\3\3\2\2\2\u0221\u0256\5\6\4\2\u0222\u0256" + + "\5\b\5\2\u0223\u0256\5b\62\2\u0224\u0256\5p9\2\u0225\u0256\5d\63\2\u0226" + + "\u0256\5f\64\2\u0227\u0256\5h\65\2\u0228\u0256\5j\66\2\u0229\u0256\5l" + + "\67\2\u022a\u0256\5n8\2\u022b\u0256\5\u00ceh\2\u022c\u0256\5\u00d0i\2" + + "\u022d\u0256\5\u00d2j\2\u022e\u0256\5\u00d4k\2\u022f\u0256\5\u00d6l\2" + + "\u0230\u0256\5\u012a\u0096\2\u0231\u0256\5\u012c\u0097\2\u0232\u0256\5" + + "\u012e\u0098\2\u0233\u0256\5\u0130\u0099\2\u0234\u0256\5\u0132\u009a\2" + + "\u0235\u0256\5\u0134\u009b\2\u0236\u0256\5\u0136\u009c\2\u0237\u0256\5" + + "\u0138\u009d\2\u0238\u0256\5\u013a\u009e\2\u0239\u0256\5\u013c\u009f\2" + + "\u023a\u0256\5\u013e\u00a0\2\u023b\u0256\5\u0140\u00a1\2\u023c\u0256\5" + + "\u0142\u00a2\2\u023d\u0256\5\u0144\u00a3\2\u023e\u0256\5\u0146\u00a4\2" + + "\u023f\u0256\5\u0148\u00a5\2\u0240\u0256\5\u014a\u00a6\2\u0241\u0256\5" + + "\u014c\u00a7\2\u0242\u0256\5\u014e\u00a8\2\u0243\u0256\5\u0150\u00a9\2" + + "\u0244\u0256\5\u0152\u00aa\2\u0245\u0256\5\u0154\u00ab\2\u0246\u0256\5" + + "\u0156\u00ac\2\u0247\u0256\5\u0158\u00ad\2\u0248\u0256\5\u015a\u00ae\2" + + "\u0249\u0256\5\u015c\u00af\2\u024a\u0256\5\u0162\u00b2\2\u024b\u0256\5" + + "\u0164\u00b3\2\u024c\u0256\5\u0166\u00b4\2\u024d\u0256\5\u0168\u00b5\2" + + "\u024e\u0256\5\u016e\u00b8\2\u024f\u0256\5\u0170\u00b9\2\u0250\u0256\5" + + "\u0172\u00ba\2\u0251\u0256\5\u0174\u00bb\2\u0252\u0256\5\u0176\u00bc\2" + + "\u0253\u0256\5\u017c\u00bf\2\u0254\u0256\5\u017e\u00c0\2\u0255\u0221\3" + + "\2\2\2\u0255\u0222\3\2\2\2\u0255\u0223\3\2\2\2\u0255\u0224\3\2\2\2\u0255" + + "\u0225\3\2\2\2\u0255\u0226\3\2\2\2\u0255\u0227\3\2\2\2\u0255\u0228\3\2" + + "\2\2\u0255\u0229\3\2\2\2\u0255\u022a\3\2\2\2\u0255\u022b\3\2\2\2\u0255" + + "\u022c\3\2\2\2\u0255\u022d\3\2\2\2\u0255\u022e\3\2\2\2\u0255\u022f\3\2" + + "\2\2\u0255\u0230\3\2\2\2\u0255\u0231\3\2\2\2\u0255\u0232\3\2\2\2\u0255" + + "\u0233\3\2\2\2\u0255\u0234\3\2\2\2\u0255\u0235\3\2\2\2\u0255\u0236\3\2" + + "\2\2\u0255\u0237\3\2\2\2\u0255\u0238\3\2\2\2\u0255\u0239\3\2\2\2\u0255" + + "\u023a\3\2\2\2\u0255\u023b\3\2\2\2\u0255\u023c\3\2\2\2\u0255\u023d\3\2" + + "\2\2\u0255\u023e\3\2\2\2\u0255\u023f\3\2\2\2\u0255\u0240\3\2\2\2\u0255" + + "\u0241\3\2\2\2\u0255\u0242\3\2\2\2\u0255\u0243\3\2\2\2\u0255\u0244\3\2" + + "\2\2\u0255\u0245\3\2\2\2\u0255\u0246\3\2\2\2\u0255\u0247\3\2\2\2\u0255" + + "\u0248\3\2\2\2\u0255\u0249\3\2\2\2\u0255\u024a\3\2\2\2\u0255\u024b\3\2" + + "\2\2\u0255\u024c\3\2\2\2\u0255\u024d\3\2\2\2\u0255\u024e\3\2\2\2\u0255" + + "\u024f\3\2\2\2\u0255\u0250\3\2\2\2\u0255\u0251\3\2\2\2\u0255\u0252\3\2" + + "\2\2\u0255\u0253\3\2\2\2\u0255\u0254\3\2\2\2\u0256\5\3\2\2\2\u0257\u0258" + + "\5\u0202\u0102\2\u0258\7\3\2\2\2\u0259\u0282\5\n\6\2\u025a\u0282\5\f\7" + + "\2\u025b\u0282\5\16\b\2\u025c\u0282\5\20\t\2\u025d\u0282\5\22\n\2\u025e" + + "\u0282\5\24\13\2\u025f\u0282\5\26\f\2\u0260\u0282\5\30\r\2\u0261\u0282" + + "\5\32\16\2\u0262\u0282\5 \21\2\u0263\u0282\5\"\22\2\u0264\u0282\5$\23" + + "\2\u0265\u0282\5&\24\2\u0266\u0282\5(\25\2\u0267\u0282\5*\26\2\u0268\u0282" + + "\5,\27\2\u0269\u0282\5.\30\2\u026a\u0282\5\60\31\2\u026b\u0282\5\62\32" + + "\2\u026c\u0282\5\64\33\2\u026d\u0282\5\66\34\2\u026e\u0282\5:\36\2\u026f" + + "\u0282\5<\37\2\u0270\u0282\5> \2\u0271\u0282\5@!\2\u0272\u0282\5D#\2\u0273" + + "\u0282\5F$\2\u0274\u0282\5H%\2\u0275\u0282\5J&\2\u0276\u0282\5L\'\2\u0277" + + "\u0282\5N(\2\u0278\u0282\5P)\2\u0279\u0282\5R*\2\u027a\u0282\5T+\2\u027b" + + "\u0282\5V,\2\u027c\u0282\5X-\2\u027d\u0282\5Z.\2\u027e\u0282\5\\/\2\u027f" + + "\u0282\5^\60\2\u0280\u0282\5`\61\2\u0281\u0259\3\2\2\2\u0281\u025a\3\2" + + "\2\2\u0281\u025b\3\2\2\2\u0281\u025c\3\2\2\2\u0281\u025d\3\2\2\2\u0281" + + "\u025e\3\2\2\2\u0281\u025f\3\2\2\2\u0281\u0260\3\2\2\2\u0281\u0261\3\2" + + "\2\2\u0281\u0262\3\2\2\2\u0281\u0263\3\2\2\2\u0281\u0264\3\2\2\2\u0281" + + "\u0265\3\2\2\2\u0281\u0266\3\2\2\2\u0281\u0267\3\2\2\2\u0281\u0268\3\2" + + "\2\2\u0281\u0269\3\2\2\2\u0281\u026a\3\2\2\2\u0281\u026b\3\2\2\2\u0281" + + "\u026c\3\2\2\2\u0281\u026d\3\2\2\2\u0281\u026e\3\2\2\2\u0281\u026f\3\2" + + "\2\2\u0281\u0270\3\2\2\2\u0281\u0271\3\2\2\2\u0281\u0272\3\2\2\2\u0281" + + "\u0273\3\2\2\2\u0281\u0274\3\2\2\2\u0281\u0275\3\2\2\2\u0281\u0276\3\2" + + "\2\2\u0281\u0277\3\2\2\2\u0281\u0278\3\2\2\2\u0281\u0279\3\2\2\2\u0281" + + "\u027a\3\2\2\2\u0281\u027b\3\2\2\2\u0281\u027c\3\2\2\2\u0281\u027d\3\2" + + "\2\2\u0281\u027e\3\2\2\2\u0281\u027f\3\2\2\2\u0281\u0280\3\2\2\2\u0282" + + "\t\3\2\2\2\u0283\u0284\7\25\2\2\u0284\u0285\7\20\2\2\u0285\u0286\5\u0202" + + "\u0102\2\u0286\u0287\7\u0300\2\2\u0287\u0288\5\u01ee\u00f8\2\u0288\u0289" + + "\7\u0301\2\2\u0289\u028a\7\u01d6\2\2\u028a\u028b\7\u0249\2\2\u028b\u028c" + + "\5\u0202\u0102\2\u028c\u02a2\3\2\2\2\u028d\u028e\7\25\2\2\u028e\u028f" + + "\7\20\2\2\u028f\u0290\5\u0202\u0102\2\u0290\u0291\7\u0300\2\2\u0291\u0292" + + "\5\u01ee\u00f8\2\u0292\u0293\7\u0301\2\2\u0293\u0294\7\u0195\2\2\u0294" + + "\u0295\7\u0249\2\2\u0295\u0296\5\u01fa\u00fe\2\u0296\u02a2\3\2\2\2\u0297" + + "\u0298\7\25\2\2\u0298\u0299\7\20\2\2\u0299\u029a\5\u0202\u0102\2\u029a" + + "\u029b\7\u0300\2\2\u029b\u029c\5\u01ee\u00f8\2\u029c\u029d\7\u0301\2\2" + + "\u029d\u029e\7\u0209\2\2\u029e\u029f\7\u01f5\2\2\u029f\u02a0\5\u0202\u0102" + + "\2\u02a0\u02a2\3\2\2\2\u02a1\u0283\3\2\2\2\u02a1\u028d\3\2\2\2\u02a1\u0297" + + "\3\2\2\2\u02a2\13\3\2\2\2\u02a3\u02a4\7\25\2\2\u02a4\u02a5\7[\2\2\u02a5" + + "\u02a6\5\u01cc\u00e7\2\u02a6\u02a7\7\u01c9\2\2\u02a7\u02a8\7\u02b9\2\2" + + "\u02a8\u02bf\3\2\2\2\u02a9\u02aa\7\25\2\2\u02aa\u02ab\7[\2\2\u02ab\u02ac" + + "\5\u01cc\u00e7\2\u02ac\u02ad\7\u01d6\2\2\u02ad\u02ae\7\u0249\2\2\u02ae" + + "\u02af\5\u0202\u0102\2\u02af\u02bf\3\2\2\2\u02b0\u02b1\7\25\2\2\u02b1" + + "\u02b2\7[\2\2\u02b2\u02b3\5\u01cc\u00e7\2\u02b3\u02b4\7\u0195\2\2\u02b4" + + "\u02b5\7\u0249\2\2\u02b5\u02b6\5\u01fa\u00fe\2\u02b6\u02bf\3\2\2\2\u02b7" + + "\u02b8\7\25\2\2\u02b8\u02b9\7[\2\2\u02b9\u02ba\5\u01cc\u00e7\2\u02ba\u02bb" + + "\7\u0209\2\2\u02bb\u02bc\7\u01f5\2\2\u02bc\u02bd\5\u0202\u0102\2\u02bd" + + "\u02bf\3\2\2\2\u02be\u02a3\3\2\2\2\u02be\u02a9\3\2\2\2\u02be\u02b0\3\2" + + "\2\2\u02be\u02b7\3\2\2\2\u02bf\r\3\2\2\2\u02c0\u02c1\7\25\2\2\u02c1\u02c2" + + "\7w\2\2\u02c2\u02c3\5\u0202\u0102\2\u02c3\u02c4\7\u01d6\2\2\u02c4\u02c5" + + "\7\u0249\2\2\u02c5\u02c6\5\u0202\u0102\2\u02c6\u02d6\3\2\2\2\u02c7\u02c8" + + "\7\25\2\2\u02c8\u02c9\7w\2\2\u02c9\u02ca\5\u0202\u0102\2\u02ca\u02cb\7" + + "\u0195\2\2\u02cb\u02cc\7\u0249\2\2\u02cc\u02cd\5\u01fa\u00fe\2\u02cd\u02d6" + + "\3\2\2\2\u02ce\u02cf\7\25\2\2\u02cf\u02d0\7w\2\2\u02d0\u02d1\5\u0202\u0102" + + "\2\u02d1\u02d2\7\u0209\2\2\u02d2\u02d3\7\u01f5\2\2\u02d3\u02d4\5\u0202" + + "\u0102\2\u02d4\u02d6\3\2\2\2\u02d5\u02c0\3\2\2\2\u02d5\u02c7\3\2\2\2\u02d5" + + "\u02ce\3\2\2\2\u02d6\17\3\2\2\2\u02d7\u02d8\5\u0206\u0104\2\u02d8\21\3" + + "\2\2\2\u02d9\u02da\5\u0206\u0104\2\u02da\23\3\2\2\2\u02db\u02dc\7\25\2" + + "\2\u02dc\u02dd\7\u00bc\2\2\u02dd\u02e3\5\u0202\u0102\2\u02de\u02df\7\u0209" + + "\2\2\u02df\u02e0\7\u009d\2\2\u02e0\u02e4\5\u01b2\u00da\2\u02e1\u02e2\7" + + "\u00be\2\2\u02e2\u02e4\7\u009d\2\2\u02e3\u02de\3\2\2\2\u02e3\u02e1\3\2" + + "\2\2\u02e4\u0328\3\2\2\2\u02e5\u02e6\7\25\2\2\u02e6\u02e7\7\u00bc\2\2" + + "\u02e7\u02e8\5\u0202\u0102\2\u02e8\u02e9\t\2\2\2\u02e9\u02ea\7\u016f\2" + + "\2\u02ea\u02eb\7\u0174\2\2\u02eb\u0328\3\2\2\2\u02ec\u02ed\7\25\2\2\u02ed" + + "\u02ee\7\u00bc\2\2\u02ee\u02ef\5\u0202\u0102\2\u02ef\u02f0\7\r\2\2\u02f0" + + "\u02f3\5\u0082B\2\u02f1\u02f2\7\u016f\2\2\u02f2\u02f4\7\u0275\2\2\u02f3" + + "\u02f1\3\2\2\2\u02f3\u02f4\3\2\2\2\u02f4\u0328\3\2\2\2\u02f5\u02f6\7\25" + + "\2\2\u02f6\u02f7\7\u00bc\2\2\u02f7\u02f8\5\u0202\u0102\2\u02f8\u02f9\7" + + "\u00be\2\2\u02f9\u02fc\7o\2\2\u02fa\u02fb\7\u02b4\2\2\u02fb\u02fd\7\u00d5" + + "\2\2\u02fc\u02fa\3\2\2\2\u02fc\u02fd\3\2\2\2\u02fd\u02fe\3\2\2\2\u02fe" + + "\u0300\5\u0202\u0102\2\u02ff\u0301\t\3\2\2\u0300\u02ff\3\2\2\2\u0300\u0301" + + "\3\2\2\2\u0301\u0328\3\2\2\2\u0302\u0303\7\25\2\2\u0303\u0304\7\u00bc" + + "\2\2\u0304\u0305\5\u0202\u0102\2\u0305\u0306\7\u01d6\2\2\u0306\u0307\7" + + "o\2\2\u0307\u0308\5\u0202\u0102\2\u0308\u0309\7\u0249\2\2\u0309\u030a" + + "\5\u0202\u0102\2\u030a\u0328\3\2\2\2\u030b\u030c\7\25\2\2\u030c\u030d" + + "\7\u00bc\2\2\u030d\u030e\5\u0202\u0102\2\u030e\u030f\7\u0276\2\2\u030f" + + "\u0310\7o\2\2\u0310\u0311\5\u0202\u0102\2\u0311\u0328\3\2\2\2\u0312\u0313" + + "\7\25\2\2\u0313\u0314\7\u00bc\2\2\u0314\u0315\5\u0202\u0102\2\u0315\u0316" + + "\7\u0195\2\2\u0316\u0317\7\u0249\2\2\u0317\u0318\5\u01fa\u00fe\2\u0318" + + "\u0328\3\2\2\2\u0319\u031a\7\25\2\2\u031a\u031b\7\u00bc\2\2\u031b\u031c" + + "\5\u0202\u0102\2\u031c\u031d\7\u01d6\2\2\u031d\u031e\7\u0249\2\2\u031e" + + "\u031f\5\u0202\u0102\2\u031f\u0328\3\2\2\2\u0320\u0321\7\25\2\2\u0321" + + "\u0322\7\u00bc\2\2\u0322\u0323\5\u0202\u0102\2\u0323\u0324\7\u0209\2\2" + + "\u0324\u0325\7\u01f5\2\2\u0325\u0326\5\u0202\u0102\2\u0326\u0328\3\2\2" + + "\2\u0327\u02db\3\2\2\2\u0327\u02e5\3\2\2\2\u0327\u02ec\3\2\2\2\u0327\u02f5" + + "\3\2\2\2\u0327\u0302\3\2\2\2\u0327\u030b\3\2\2\2\u0327\u0312\3\2\2\2\u0327" + + "\u0319\3\2\2\2\u0327\u0320\3\2\2\2\u0328\25\3\2\2\2\u0329\u032a\7\25\2" + + "\2\u032a\u032b\7\u02bc\2\2\u032b\u032c\7\u0256\2\2\u032c\u032d\5\u0202" + + "\u0102\2\u032d\u032e\7\u00b5\2\2\u032e\u034b\3\2\2\2\u032f\u0330\7\25" + + "\2\2\u0330\u0331\7\u02bc\2\2\u0331\u0332\7\u0256\2\2\u0332\u0333\5\u0202" + + "\u0102\2\u0333\u0335\7\u00c5\2\2\u0334\u0336\t\4\2\2\u0335\u0334\3\2\2" + + "\2\u0335\u0336\3\2\2\2\u0336\u034b\3\2\2\2\u0337\u0338\7\25\2\2\u0338" + + "\u0339\7\u02bc\2\2\u0339\u033a\7\u0256\2\2\u033a\u033b\5\u0202\u0102\2" + + "\u033b\u033c\7\u0195\2\2\u033c\u0340\7\u0249\2\2\u033d\u0341\5\u0202\u0102" + + "\2\u033e\u0341\7\u008f\2\2\u033f\u0341\7\u0208\2\2\u0340\u033d\3\2\2\2" + + "\u0340\u033e\3\2\2\2\u0340\u033f\3\2\2\2\u0341\u034b\3\2\2\2\u0342\u0343" + + "\7\25\2\2\u0343\u0344\7\u02bc\2\2\u0344\u0345\7\u0256\2\2\u0345\u0346" + + "\5\u0202\u0102\2\u0346\u0347\7\u01d6\2\2\u0347\u0348\7\u0249\2\2\u0348" + + "\u0349\5\u0202\u0102\2\u0349\u034b\3\2\2\2\u034a\u0329\3\2\2\2\u034a\u032f" + + "\3\2\2\2\u034a\u0337\3\2\2\2\u034a\u0342\3\2\2\2\u034b\27\3\2\2\2\u034c" + + "\u034d\7\25\2\2\u034d\u034e\7\u00d9\2\2\u034e\u034f\5\u0202\u0102\2\u034f" + + "\u0352\7\u026b\2\2\u0350\u0351\7\u0249\2\2\u0351\u0353\5\u0202\u0102\2" + + "\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353\u035c\3\2\2\2\u0354\u0355" + + "\7\25\2\2\u0355\u0356\7\u00d9\2\2\u0356\u0357\5\u0202\u0102\2\u0357\u0358" + + "\7\u0209\2\2\u0358\u0359\7\u01f5\2\2\u0359\u035a\5\u0202\u0102\2\u035a" + + "\u035c\3\2\2\2\u035b\u034c\3\2\2\2\u035b\u0354\3\2\2\2\u035c\31\3\2\2" + + "\2\u035d\u035e\5\u0206\u0104\2\u035e\33\3\2\2\2\u035f\u0361\7\r\2\2\u0360" + + "\u0362\7`\2\2\u0361\u0360\3\2\2\2\u0361\u0362\3\2\2\2\u0362\u0363\3\2" + + "\2\2\u0363\u0364\5\u020a\u0106\2\u0364\u0367\5\u01d8\u00ed\2\u0365\u0366" + + "\7Z\2\2\u0366\u0368\5\u0202\u0102\2\u0367\u0365\3\2\2\2\u0367\u0368\3" + + "\2\2\2\u0368\u036a\3\2\2\2\u0369\u036b\5\u01f2\u00fa\2\u036a\u0369\3\2" + + "\2\2\u036a\u036b\3\2\2\2\u036b\u040c\3\2\2\2\u036c\u036e\7\u00be\2\2\u036d" + + "\u036f\7`\2\2\u036e\u036d\3\2\2\2\u036e\u036f\3\2\2\2\u036f\u0372\3\2" + + "\2\2\u0370\u0371\7\u02b4\2\2\u0371\u0373\7\u00d5\2\2\u0372\u0370\3\2\2" + + "\2\u0372\u0373\3\2\2\2\u0373\u0374\3\2\2\2\u0374\u0376\5\u020a\u0106\2" + + "\u0375\u0377\t\3\2\2\u0376\u0375\3\2\2\2\u0376\u0377\3\2\2\2\u0377\u040c" + + "\3\2\2\2\u0378\u037a\7\25\2\2\u0379\u037b\7`\2\2\u037a\u0379\3\2\2\2\u037a" + + "\u037b\3\2\2\2\u037b\u037c\3\2\2\2\u037c\u037f\5\u020a\u0106\2\u037d\u037e" + + "\7\u0209\2\2\u037e\u0380\7\u0093\2\2\u037f\u037d\3\2\2\2\u037f\u0380\3" + + "\2\2\2\u0380\u0381\3\2\2\2\u0381\u0382\7\u025e\2\2\u0382\u0385\5\u01d8" + + "\u00ed\2\u0383\u0384\7Z\2\2\u0384\u0386\5\u0202\u0102\2\u0385\u0383\3" + + "\2\2\2\u0385\u0386\3\2\2\2\u0386\u040c\3\2\2\2\u0387\u0389\7\25\2\2\u0388" + + "\u038a\7`\2\2\u0389\u0388\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u038b\3\2" + + "\2\2\u038b\u038c\5\u020a\u0106\2\u038c\u038d\7\u0209\2\2\u038d\u038e\7" + + "\u009d\2\2\u038e\u038f\5\u01b2\u00da\2\u038f\u040c\3\2\2\2\u0390\u0392" + + "\7\25\2\2\u0391\u0393\7`\2\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2\2\2\u0393" + + "\u0394\3\2\2\2\u0394\u0395\5\u020a\u0106\2\u0395\u0396\7\u00be\2\2\u0396" + + "\u0397\7\u009d\2\2\u0397\u040c\3\2\2\2\u0398\u039a\7\25\2\2\u0399\u039b" + + "\7`\2\2\u039a\u0399\3\2\2\2\u039a\u039b\3\2\2\2\u039b\u039c\3\2\2\2\u039c" + + "\u039d\5\u020a\u0106\2\u039d\u039e\t\2\2\2\u039e\u039f\7\u016f\2\2\u039f" + + "\u03a0\7\u0174\2\2\u03a0\u040c\3\2\2\2\u03a1\u03a3\7\25\2\2\u03a2\u03a4" + + "\7`\2\2\u03a3\u03a2\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\3\2\2\2\u03a5" + + "\u03a6\5\u020a\u0106\2\u03a6\u03a7\7\u0209\2\2\u03a7\u03a8\7\u0226\2\2" + + "\u03a8\u03a9\7\u011d\2\2\u03a9\u040c\3\2\2\2\u03aa\u03ac\7\25\2\2\u03ab" + + "\u03ad\7`\2\2\u03ac\u03ab\3\2\2\2\u03ac\u03ad\3\2\2\2\u03ad\u03ae\3\2" + + "\2\2\u03ae\u03af\5\u020a\u0106\2\u03af\u03b0\7\u0209\2\2\u03b0\u03b1\7" + + "\u0300\2\2\u03b1\u03b2\5\u01d4\u00eb\2\u03b2\u03b3\7\u0301\2\2\u03b3\u040c" + + "\3\2\2\2\u03b4\u03b6\7\25\2\2\u03b5\u03b7\7`\2\2\u03b6\u03b5\3\2\2\2\u03b6" + + "\u03b7\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\5\u020a\u0106\2\u03b9\u03ba" + + "\7\u01da\2\2\u03ba\u03bb\7\u0300\2\2\u03bb\u03bc\5\u01d0\u00e9\2\u03bc" + + "\u03bd\7\u0301\2\2\u03bd\u040c\3\2\2\2\u03be\u03c0\7\25\2\2\u03bf\u03c1" + + "\7`\2\2\u03c0\u03bf\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2" + + "\u03c3\5\u020a\u0106\2\u03c3\u03c4\7\u0209\2\2\u03c4\u03c5\7\u022b\2\2" + + "\u03c5\u03c6\t\5\2\2\u03c6\u040c\3\2\2\2\u03c7\u03c9\7\25\2\2\u03c8\u03ca" + + "\7`\2\2\u03c9\u03c8\3\2\2\2\u03c9\u03ca\3\2\2\2\u03ca\u03cb\3\2\2\2\u03cb" + + "\u03cc\5\u020a\u0106\2\u03cc\u03ce\7\u0188\2\2\u03cd\u03cf\t\6\2\2\u03ce" + + "\u03cd\3\2\2\2\u03ce\u03cf\3\2\2\2\u03cf\u040c\3\2\2\2\u03d0\u03d1\7\r" + + "\2\2\u03d1\u03d4\5\u01f8\u00fd\2\u03d2\u03d3\7\u016f\2\2\u03d3\u03d5\7" + + "\u0275\2\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u040c\3\2\2\2" + + "\u03d6\u03d7\7\u0276\2\2\u03d7\u03d8\7o\2\2\u03d8\u040c\5\u0204\u0103" + + "\2\u03d9\u03da\7\u00be\2\2\u03da\u03dd\7o\2\2\u03db\u03dc\7\u02b4\2\2" + + "\u03dc\u03de\7\u00d5\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3\2\2\2\u03de" + + "\u03df\3\2\2\2\u03df\u03e1\5\u0204\u0103\2\u03e0\u03e2\t\3\2\2\u03e1\u03e0" + + "\3\2\2\2\u03e1\u03e2\3\2\2\2\u03e2\u040c\3\2\2\2\u03e3\u03e4\7\u00b5\2" + + "\2\u03e4\u03e8\7\u0256\2\2\u03e5\u03e9\5\u0204\u0103\2\u03e6\u03e9\7\22" + + "\2\2\u03e7\u03e9\7\u026e\2\2\u03e8\u03e5\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e8" + + "\u03e7\3\2\2\2\u03e8\u03e9\3\2\2\2\u03e9\u040c\3\2\2\2\u03ea\u03eb\7\u00c5" + + "\2\2\u03eb\u03ef\7\u0256\2\2\u03ec\u03f0\5\u0204\u0103\2\u03ed\u03f0\7" + + "\22\2\2\u03ee\u03f0\7\u026e\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2" + + "\2\u03ef\u03ee\3\2\2\2\u03ef\u03f0\3\2\2\2\u03f0\u040c\3\2\2\2\u03f1\u03f2" + + "\7\u00c5\2\2\u03f2\u03f3\7\u01d9\2\2\u03f3\u03f4\7\u0256\2\2\u03f4\u040c" + + "\5\u0204\u0103\2\u03f5\u03f6\7\u00c5\2\2\u03f6\u03f7\7\26\2\2\u03f7\u03f8" + + "\7\u0256\2\2\u03f8\u040c\5\u0204\u0103\2\u03f9\u03fa\7\u0209\2\2\u03fa" + + "\u03fb\7\u0288\2\2\u03fb\u040c\7\u0180\2\2\u03fc\u03fd\7\u0209\2\2\u03fd" + + "\u03fe\7\u028a\2\2\u03fe\u040c\7\u0180\2\2\u03ff\u0400\7\u0295\2\2\u0400" + + "\u040c\5\u0202\u0102\2\u0401\u0402\7\u0169\2\2\u0402\u0403\7\u0295\2\2" + + "\u0403\u040c\5\u0202\u0102\2\u0404\u0405\7\u0195\2\2\u0405\u0406\7\u0249" + + "\2\2\u0406\u040c\5\u01fa\u00fe\2\u0407\u0409\7\u0188\2\2\u0408\u040a\t" + + "\6\2\2\u0409\u0408\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040c\3\2\2\2\u040b" + + "\u035f\3\2\2\2\u040b\u036c\3\2\2\2\u040b\u0378\3\2\2\2\u040b\u0387\3\2" + + "\2\2\u040b\u0390\3\2\2\2\u040b\u0398\3\2\2\2\u040b\u03a1\3\2\2\2\u040b" + + "\u03aa\3\2\2\2\u040b\u03b4\3\2\2\2\u040b\u03be\3\2\2\2\u040b\u03c7\3\2" + + "\2\2\u040b\u03d0\3\2\2\2\u040b\u03d6\3\2\2\2\u040b\u03d9\3\2\2\2\u040b" + + "\u03e3\3\2\2\2\u040b\u03ea\3\2\2\2\u040b\u03f1\3\2\2\2\u040b\u03f5\3\2" + + "\2\2\u040b\u03f9\3\2\2\2\u040b\u03fc\3\2\2\2\u040b\u03ff\3\2\2\2\u040b" + + "\u0401\3\2\2\2\u040b\u0404\3\2\2\2\u040b\u0407\3\2\2\2\u040c\35\3\2\2" + + "\2\u040d\u0412\5\34\17\2\u040e\u040f\7\u02fa\2\2\u040f\u0411\5\34\17\2" + + "\u0410\u040e\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0410\3\2\2\2\u0412\u0413" + + "\3\2\2\2\u0413\37\3\2\2\2\u0414\u0412\3\2\2\2\u0415\u0416\7\25\2\2\u0416" + + "\u0417\7\u00e7\2\2\u0417\u041a\7\u0239\2\2\u0418\u0419\7\u02b4\2\2\u0419" + + "\u041b\7\u00d5\2\2\u041a\u0418\3\2\2\2\u041a\u041b\3\2\2\2\u041b\u041d" + + "\3\2\2\2\u041c\u041e\7\u0183\2\2\u041d\u041c\3\2\2\2\u041d\u041e\3\2\2" + + "\2\u041e\u041f\3\2\2\2\u041f\u0421\5\u0202\u0102\2\u0420\u0422\7\u02ff" + + "\2\2\u0421\u0420\3\2\2\2\u0421\u0422\3\2\2\2\u0422\u0423\3\2\2\2\u0423" + + "\u0424\5\36\20\2\u0424\u0454\3\2\2\2\u0425\u0426\7\25\2\2\u0426\u0427" + + "\7\u00e7\2\2\u0427\u042a\7\u0239\2\2\u0428\u0429\7\u02b4\2\2\u0429\u042b" + + "\7\u00d5\2\2\u042a\u0428\3\2\2\2\u042a\u042b\3\2\2\2\u042b\u042d\3\2\2" + + "\2\u042c\u042e\7\u0183\2\2\u042d\u042c\3\2\2\2\u042d\u042e\3\2\2\2\u042e" + + "\u042f\3\2\2\2\u042f\u0431\5\u0202\u0102\2\u0430\u0432\7\u02ff\2\2\u0431" + + "\u0430\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u0435\7\u01d6" + + "\2\2\u0434\u0436\7`\2\2\u0435\u0434\3\2\2\2\u0435\u0436\3\2\2\2\u0436" + + "\u0437\3\2\2\2\u0437\u0438\5\u020a\u0106\2\u0438\u0439\7\u0249\2\2\u0439" + + "\u043a\5\u0202\u0102\2\u043a\u0454\3\2\2\2\u043b\u043c\7\25\2\2\u043c" + + "\u043d\7\u00e7\2\2\u043d\u0440\7\u0239\2\2\u043e\u043f\7\u02b4\2\2\u043f" + + "\u0441\7\u00d5\2\2\u0440\u043e\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442" + + "\3\2\2\2\u0442\u0443\5\u0202\u0102\2\u0443\u0444\7\u01d6\2\2\u0444\u0445" + + "\7\u0249\2\2\u0445\u0446\5\u0202\u0102\2\u0446\u0454\3\2\2\2\u0447\u0448" + + "\7\25\2\2\u0448\u0449\7\u00e7\2\2\u0449\u044c\7\u0239\2\2\u044a\u044b" + + "\7\u02b4\2\2\u044b\u044d\7\u00d5\2\2\u044c\u044a\3\2\2\2\u044c\u044d\3" + + "\2\2\2\u044d\u044e\3\2\2\2\u044e\u044f\5\u0202\u0102\2\u044f\u0450\7\u0209" + + "\2\2\u0450\u0451\7\u01f5\2\2\u0451\u0452\5\u0202\u0102\2\u0452\u0454\3" + + "\2\2\2\u0453\u0415\3\2\2\2\u0453\u0425\3\2\2\2\u0453\u043b\3\2\2\2\u0453" + + "\u0447\3\2\2\2\u0454!\3\2\2\2\u0455\u0456\5\u0206\u0104\2\u0456#\3\2\2" + + "\2\u0457\u0458\7\25\2\2\u0458\u0459\7\u00fc\2\2\u0459\u045a\5\u01fa\u00fe" + + "\2\u045a\u045b\7\r\2\2\u045b\u045c\7\u026e\2\2\u045c\u045d\5\u01d0\u00e9" + + "\2\u045d\u046d\3\2\2\2\u045e\u045f\7\25\2\2\u045f\u0460\7\u00fc\2\2\u0460" + + "\u0461\5\u01fa\u00fe\2\u0461\u0462\7\u00be\2\2\u0462\u0463\7\u026e\2\2" + + "\u0463\u0464\5\u01d0\u00e9\2\u0464\u046d\3\2\2\2\u0465\u0466\7\25\2\2" + + "\u0466\u0467\7\u00fc\2\2\u0467\u0468\5\u0202\u0102\2\u0468\u0469\7\u01d6" + + "\2\2\u0469\u046a\7\u0249\2\2\u046a\u046b\5\u0202\u0102\2\u046b\u046d\3" + + "\2\2\2\u046c\u0457\3\2\2\2\u046c\u045e\3\2\2\2\u046c\u0465\3\2\2\2\u046d" + + "%\3\2\2\2\u046e\u046f\7\25\2\2\u046f\u0472\7\u010e\2\2\u0470\u0471\7\u02b4" + + "\2\2\u0471\u0473\7\u00d5\2\2\u0472\u0470\3\2\2\2\u0472\u0473\3\2\2\2\u0473" + + "\u0474\3\2\2\2\u0474\u0475\5\u0202\u0102\2\u0475\u0476\7\u01d6\2\2\u0476" + + "\u0477\7\u0249\2\2\u0477\u0478\5\u0202\u0102\2\u0478\u04b5\3\2\2\2\u0479" + + "\u047a\7\25\2\2\u047a\u047d\7\u010e\2\2\u047b\u047c\7\u02b4\2\2\u047c" + + "\u047e\7\u00d5\2\2\u047d\u047b\3\2\2\2\u047d\u047e\3\2\2\2\u047e\u047f" + + "\3\2\2\2\u047f\u0480\5\u0202\u0102\2\u0480\u0481\7\u0209\2\2\u0481\u0482" + + "\7\u023c\2\2\u0482\u0483\5\u0202\u0102\2\u0483\u04b5\3\2\2\2\u0484\u0485" + + "\7\25\2\2\u0485\u0486\7\u010e\2\2\u0486\u0487\5\u0202\u0102\2\u0487\u0488" + + "\7\u00a9\2\2\u0488\u0489\7\u0182\2\2\u0489\u048a\7\u00d9\2\2\u048a\u048b" + + "\5\u0202\u0102\2\u048b\u04b5\3\2\2\2\u048c\u048d\7\25\2\2\u048d\u0490" + + "\7\u010e\2\2\u048e\u048f\7\u02b4\2\2\u048f\u0491\7\u00d5\2\2\u0490\u048e" + + "\3\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\5\u0202\u0102" + + "\2\u0493\u0494\7\u0209\2\2\u0494\u0495\7\u0300\2\2\u0495\u0496\5\u01d4" + + "\u00eb\2\u0496\u0497\7\u0301\2\2\u0497\u04b5\3\2\2\2\u0498\u0499\7\25" + + "\2\2\u0499\u049c\7\u010e\2\2\u049a\u049b\7\u02b4\2\2\u049b\u049d\7\u00d5" + + "\2\2\u049c\u049a\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2\2\u049e" + + "\u049f\7\u01da\2\2\u049f\u04a0\7\u0300\2\2\u04a0\u04a1\5\u01d0\u00e9\2" + + "\u04a1\u04a2\7\u0301\2\2\u04a2\u04b5\3\2\2\2\u04a3\u04a4\7\25\2\2\u04a4" + + "\u04a5\7\u010e\2\2\u04a5\u04a6\7\22\2\2\u04a6\u04a7\7\u010b\2\2\u04a7" + + "\u04a8\7\u023c\2\2\u04a8\u04ac\5\u0202\u0102\2\u04a9\u04aa\7\u02d0\2\2" + + "\u04aa\u04ab\78\2\2\u04ab\u04ad\5\u01d0\u00e9\2\u04ac\u04a9\3\2\2\2\u04ac" + + "\u04ad\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae\u04af\7\u0209\2\2\u04af\u04b0" + + "\7\u023c\2\2\u04b0\u04b2\5\u0202\u0102\2\u04b1\u04b3\7\u0173\2\2\u04b2" + + "\u04b1\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b5\3\2\2\2\u04b4\u046e\3\2" + + "\2\2\u04b4\u0479\3\2\2\2\u04b4\u0484\3\2\2\2\u04b4\u048c\3\2\2\2\u04b4" + + "\u0498\3\2\2\2\u04b4\u04a3\3\2\2\2\u04b5\'\3\2\2\2\u04b6\u04b8\7\25\2" + + "\2\u04b7\u04b9\7\u01b9\2\2\u04b8\u04b7\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9" + + "\u04ba\3\2\2\2\u04ba\u04bb\7\u012d\2\2\u04bb\u04bc\5\u0202\u0102\2\u04bc" + + "\u04bd\7\u01d6\2\2\u04bd\u04be\7\u0249\2\2\u04be\u04bf\5\u0202\u0102\2" + + "\u04bf\u04ce\3\2\2\2\u04c0\u04c2\7\25\2\2\u04c1\u04c3\7\u01b9\2\2\u04c2" + + "\u04c1\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4\u04c5\7\u012d" + + "\2\2\u04c5\u04c6\5\u0202\u0102\2\u04c6\u04c7\7\u0195\2\2\u04c7\u04cb\7" + + "\u0249\2\2\u04c8\u04cc\5\u0202\u0102\2\u04c9\u04cc\7\u008f\2\2\u04ca\u04cc" + + "\7\u0208\2\2\u04cb\u04c8\3\2\2\2\u04cb\u04c9\3\2\2\2\u04cb\u04ca\3\2\2" + + "\2\u04cc\u04ce\3\2\2\2\u04cd\u04b6\3\2\2\2\u04cd\u04c0\3\2\2\2\u04ce)" + + "\3\2\2\2\u04cf\u04d0\7\25\2\2\u04d0\u04d1\7\u012e\2\2\u04d1\u04d2\7\u017a" + + "\2\2\u04d2\u04d3\7\u0307\2\2\u04d3\u04d4\7\u0195\2\2\u04d4\u04d8\7\u0249" + + "\2\2\u04d5\u04d9\5\u0202\u0102\2\u04d6\u04d9\7\u008f\2\2\u04d7\u04d9\7" + + "\u0208\2\2\u04d8\u04d5\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8\u04d7\3\2\2\2" + + "\u04d9+\3\2\2\2\u04da\u04db\5\u0206\u0104\2\u04db-\3\2\2\2\u04dc\u04dd" + + "\5\u0206\u0104\2\u04dd/\3\2\2\2\u04de\u04df\7\25\2\2\u04df\u04e0\7\u0186" + + "\2\2\u04e0\u04e1\7S\2\2\u04e1\u04e2\5\u0202\u0102\2\u04e2\u04e3\7\u0273" + + "\2\2\u04e3\u04e4\5\u01dc\u00ef\2\u04e4\u04e5\7\u01d6\2\2\u04e5\u04e6\7" + + "\u0249\2\2\u04e6\u04e7\5\u0202\u0102\2\u04e7\u0500\3\2\2\2\u04e8\u04e9" + + "\7\25\2\2\u04e9\u04ea\7\u0186\2\2\u04ea\u04eb\7S\2\2\u04eb\u04ec\5\u0202" + + "\u0102\2\u04ec\u04ed\7\u0273\2\2\u04ed\u04ee\5\u01dc\u00ef\2\u04ee\u04ef" + + "\7\u0195\2\2\u04ef\u04f3\7\u0249\2\2\u04f0\u04f4\5\u0202\u0102\2\u04f1" + + "\u04f4\7\u008f\2\2\u04f2\u04f4\7\u0208\2\2\u04f3\u04f0\3\2\2\2\u04f3\u04f1" + + "\3\2\2\2\u04f3\u04f2\3\2\2\2\u04f4\u0500\3\2\2\2\u04f5\u04f6\7\25\2\2" + + "\u04f6\u04f7\7\u0186\2\2\u04f7\u04f8\7S\2\2\u04f8\u04f9\5\u0202\u0102" + + "\2\u04f9\u04fa\7\u0273\2\2\u04fa\u04fb\5\u01dc\u00ef\2\u04fb\u04fc\7\u0209" + + "\2\2\u04fc\u04fd\7\u01f5\2\2\u04fd\u04fe\5\u0202\u0102\2\u04fe\u0500\3" + + "\2\2\2\u04ff\u04de\3\2\2\2\u04ff\u04e8\3\2\2\2\u04ff\u04f5\3\2\2\2\u0500" + + "\61\3\2\2\2\u0501\u0502\5\u0206\u0104\2\u0502\63\3\2\2\2\u0503\u0504\7" + + "\25\2\2\u0504\u0505\7\u02cf\2\2\u0505\u0506\5\u0202\u0102\2\u0506\u0507" + + "\7\u0182\2\2\u0507\u0508\5\u0202\u0102\2\u0508\u0509\7\u01d6\2\2\u0509" + + "\u050a\7\u0249\2\2\u050a\u050b\5\u0202\u0102\2\u050b\u051f\3\2\2\2\u050c" + + "\u050d\7\25\2\2\u050d\u050e\7\u02cf\2\2\u050e\u050f\5\u0202\u0102\2\u050f" + + "\u0510\7\u0182\2\2\u0510\u0513\5\u0202\u0102\2\u0511\u0512\7\u0249\2\2" + + "\u0512\u0514\5\u01fc\u00ff\2\u0513\u0511\3\2\2\2\u0513\u0514\3\2\2\2\u0514" + + "\u0517\3\2\2\2\u0515\u0516\7\u0273\2\2\u0516\u0518\5\u01ec\u00f7\2\u0517" + + "\u0515\3\2\2\2\u0517\u0518\3\2\2\2\u0518\u051c\3\2\2\2\u0519\u051a\7\u0288" + + "\2\2\u051a\u051b\7P\2\2\u051b\u051d\5\u01ec\u00f7\2\u051c\u0519\3\2\2" + + "\2\u051c\u051d\3\2\2\2\u051d\u051f\3\2\2\2\u051e\u0503\3\2\2\2\u051e\u050c" + + "\3\2\2\2\u051f\65\3\2\2\2\u0520\u0521\7\25\2\2\u0521\u0522\7\u01bc\2\2" + + "\u0522\u0523\5\u0202\u0102\2\u0523\u0524\7\r\2\2\u0524\u0526\7\u0239\2" + + "\2\u0525\u0527\7\u0183\2\2\u0526\u0525\3\2\2\2\u0526\u0527\3\2\2\2\u0527" + + "\u0528\3\2\2\2\u0528\u0529\5\u01d0\u00e9\2\u0529\u0555\3\2\2\2\u052a\u052b" + + "\7\25\2\2\u052b\u052c\7\u01bc\2\2\u052c\u052d\5\u0202\u0102\2\u052d\u052e" + + "\7\u0209\2\2\u052e\u0530\7\u0239\2\2\u052f\u0531\7\u0183\2\2\u0530\u052f" + + "\3\2\2\2\u0530\u0531\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0533\5\u01d0\u00e9" + + "\2\u0533\u0555\3\2\2\2\u0534\u0535\7\25\2\2\u0535\u0536\7\u01bc\2\2\u0536" + + "\u0537\5\u0202\u0102\2\u0537\u0538\7\u00be\2\2\u0538\u053a\7\u0239\2\2" + + "\u0539\u053b\7\u0183\2\2\u053a\u0539\3\2\2\2\u053a\u053b\3\2\2\2\u053b" + + "\u053c\3\2\2\2\u053c\u053d\5\u01d0\u00e9\2\u053d\u0555\3\2\2\2\u053e\u053f" + + "\7\25\2\2\u053f\u0540\7\u01bc\2\2\u0540\u0541\5\u0202\u0102\2\u0541\u0542" + + "\7\u0209\2\2\u0542\u0543\7\u0300\2\2\u0543\u0544\5\u01d4\u00eb\2\u0544" + + "\u0545\7\u0301\2\2\u0545\u0555\3\2\2\2\u0546\u0547\7\25\2\2\u0547\u0548" + + "\7\u01bc\2\2\u0548\u0549\5\u0202\u0102\2\u0549\u054a\7\u0195\2\2\u054a" + + "\u054b\7\u0249\2\2\u054b\u054c\5\u01fa\u00fe\2\u054c\u0555\3\2\2\2\u054d" + + "\u054e\7\25\2\2\u054e\u054f\7\u01bc\2\2\u054f\u0550\5\u0202\u0102\2\u0550" + + "\u0551\7\u01d6\2\2\u0551\u0552\7\u0249\2\2\u0552\u0553\5\u01cc\u00e7\2" + + "\u0553\u0555\3\2\2\2\u0554\u0520\3\2\2\2\u0554\u052a\3\2\2\2\u0554\u0534" + + "\3\2\2\2\u0554\u053e\3\2\2\2\u0554\u0546\3\2\2\2\u0554\u054d\3\2\2\2\u0555" + + "\67\3\2\2\2\u0556\u0570\7\u0291\2\2\u0557\u0570\7\u0292\2\2\u0558\u0570" + + "\7\u0081\2\2\u0559\u0570\7\u016a\2\2\u055a\u0570\7\u0293\2\2\u055b\u0570" + + "\7\u0294\2\2\u055c\u0570\7\u0295\2\2\u055d\u0570\7\u0296\2\2\u055e\u0570" + + "\7\u0297\2\2\u055f\u0570\7\u0298\2\2\u0560\u0570\7\u0299\2\2\u0561\u0570" + + "\7\u029a\2\2\u0562\u0570\7\u029b\2\2\u0563\u0570\7\u029c\2\2\u0564\u0565" + + "\7m\2\2\u0565\u0566\7\u0138\2\2\u0566\u0570\7\u011d\2\2\u0567\u0569\7" + + "\u00c7\2\2\u0568\u0567\3\2\2\2\u0568\u0569\3\2\2\2\u0569\u056a\3\2\2\2" + + "\u056a\u056b\7\u01a3\2\2\u056b\u0570\7\u030a\2\2\u056c\u056d\7\u0275\2" + + "\2\u056d\u056e\7\u026a\2\2\u056e\u0570\7\u030a\2\2\u056f\u0556\3\2\2\2" + + "\u056f\u0557\3\2\2\2\u056f\u0558\3\2\2\2\u056f\u0559\3\2\2\2\u056f\u055a" + + "\3\2\2\2\u056f\u055b\3\2\2\2\u056f\u055c\3\2\2\2\u056f\u055d\3\2\2\2\u056f" + + "\u055e\3\2\2\2\u056f\u055f\3\2\2\2\u056f\u0560\3\2\2\2\u056f\u0561\3\2" + + "\2\2\u056f\u0562\3\2\2\2\u056f\u0563\3\2\2\2\u056f\u0564\3\2\2\2\u056f" + + "\u0568\3\2\2\2\u056f\u056c\3\2\2\2\u05709\3\2\2\2\u0571\u0572\7\25\2\2" + + "\u0572\u0573\7\u01e7\2\2\u0573\u0575\5\u01fa\u00fe\2\u0574\u0576\7\u0288" + + "\2\2\u0575\u0574\3\2\2\2\u0575\u0576\3\2\2\2\u0576\u0578\3\2\2\2\u0577" + + "\u0579\58\35\2\u0578\u0577\3\2\2\2\u0579\u057a\3\2\2\2\u057a\u0578\3\2" + + "\2\2\u057a\u057b\3\2\2\2\u057b\u05c0\3\2\2\2\u057c\u057d\7\25\2\2\u057d" + + "\u057e\7\u01e7\2\2\u057e\u057f\5\u01cc\u00e7\2\u057f\u0580\7\u01d6\2\2" + + "\u0580\u0581\7\u0249\2\2\u0581\u0582\5\u01cc\u00e7\2\u0582\u05c0\3\2\2" + + "\2\u0583\u0584\7\25\2\2\u0584\u0587\7\u01e7\2\2\u0585\u0588\5\u01fa\u00fe" + + "\2\u0586\u0588\7\22\2\2\u0587\u0585\3\2\2\2\u0587\u0586\3\2\2\2\u0588" + + "\u058c\3\2\2\2\u0589\u058a\7\u010b\2\2\u058a\u058b\7\u0094\2\2\u058b\u058d" + + "\5\u01cc\u00e7\2\u058c\u0589\3\2\2\2\u058c\u058d\3\2\2\2\u058d\u058e\3" + + "\2\2\2\u058e\u058f\7\u0209\2\2\u058f\u0590\5\u0202\u0102\2\u0590\u0593" + + "\t\7\2\2\u0591\u0594\5\u01fe\u0100\2\u0592\u0594\7\u009d\2\2\u0593\u0591" + + "\3\2\2\2\u0593\u0592\3\2\2\2\u0594\u05c0\3\2\2\2\u0595\u0596\7\25\2\2" + + "\u0596\u0599\7\u01e7\2\2\u0597\u059a\5\u01fa\u00fe\2\u0598\u059a\7\22" + + "\2\2\u0599\u0597\3\2\2\2\u0599\u0598\3\2\2\2\u059a\u059e\3\2\2\2\u059b" + + "\u059c\7\u010b\2\2\u059c\u059d\7\u0094\2\2\u059d\u059f\5\u01cc\u00e7\2" + + "\u059e\u059b\3\2\2\2\u059e\u059f\3\2\2\2\u059f\u05a0\3\2\2\2\u05a0\u05a1" + + "\7\u0209\2\2\u05a1\u05a2\5\u0202\u0102\2\u05a2\u05a3\7\u00ee\2\2\u05a3" + + "\u05a4\7\u0087\2\2\u05a4\u05c0\3\2\2\2\u05a5\u05a6\7\25\2\2\u05a6\u05a9" + + "\7\u01e7\2\2\u05a7\u05aa\5\u01fa\u00fe\2\u05a8\u05aa\7\22\2\2\u05a9\u05a7" + + "\3\2\2\2\u05a9\u05a8\3\2\2\2\u05aa\u05ae\3\2\2\2\u05ab\u05ac\7\u010b\2" + + "\2\u05ac\u05ad\7\u0094\2\2\u05ad\u05af\5\u01cc\u00e7\2\u05ae\u05ab\3\2" + + "\2\2\u05ae\u05af\3\2\2\2\u05af\u05b0\3\2\2\2\u05b0\u05b1\7\u01da\2\2\u05b1" + + "\u05c0\5\u0202\u0102\2\u05b2\u05b3\7\25\2\2\u05b3\u05b6\7\u01e7\2\2\u05b4" + + "\u05b7\5\u01fa\u00fe\2\u05b5\u05b7\7\22\2\2\u05b6\u05b4\3\2\2\2\u05b6" + + "\u05b5\3\2\2\2\u05b7\u05bb\3\2\2\2\u05b8\u05b9\7\u010b\2\2\u05b9\u05ba" + + "\7\u0094\2\2\u05ba\u05bc\5\u01cc\u00e7\2\u05bb\u05b8\3\2\2\2\u05bb\u05bc" + + "\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05be\7\u01da\2\2\u05be\u05c0\7\22" + + "\2\2\u05bf\u0571\3\2\2\2\u05bf\u057c\3\2\2\2\u05bf\u0583\3\2\2\2\u05bf" + + "\u0595\3\2\2\2\u05bf\u05a5\3\2\2\2\u05bf\u05b2\3\2\2\2\u05c0;\3\2\2\2" + + "\u05c1\u05c2\7\25\2\2\u05c2\u05c3\7\u01f2\2\2\u05c3\u05c4\5\u01cc\u00e7" + + "\2\u05c4\u05c5\7\u0182\2\2\u05c5\u05c6\5\u0202\u0102\2\u05c6\u05c7\7\u01d6" + + "\2\2\u05c7\u05c8\7\u0249\2\2\u05c8\u05c9\5\u01cc\u00e7\2\u05c9=\3\2\2" + + "\2\u05ca\u05cb\7\25\2\2\u05cb\u05cc\7\u01f5\2\2\u05cc\u05cd\5\u0202\u0102" + + "\2\u05cd\u05ce\7\u01d6\2\2\u05ce\u05cf\7\u0249\2\2\u05cf\u05d0\5\u0202" + + "\u0102\2\u05d0\u05dc\3\2\2\2\u05d1\u05d2\7\25\2\2\u05d2\u05d3\7\u01f5" + + "\2\2\u05d3\u05d4\5\u0202\u0102\2\u05d4\u05d5\7\u0195\2\2\u05d5\u05d9\7" + + "\u0249\2\2\u05d6\u05da\5\u0202\u0102\2\u05d7\u05da\7\u008f\2\2\u05d8\u05da" + + "\7\u0208\2\2\u05d9\u05d6\3\2\2\2\u05d9\u05d7\3\2\2\2\u05d9\u05d8\3\2\2" + + "\2\u05da\u05dc\3\2\2\2\u05db\u05ca\3\2\2\2\u05db\u05d1\3\2\2\2\u05dc?" + + "\3\2\2\2\u05dd\u05de\7\25\2\2\u05de\u05e1\7\u0203\2"; + private static final String _serializedATNSegment1 = + "\2\u05df\u05e0\7\u02b4\2\2\u05e0\u05e2\7\u00d5\2\2\u05e1\u05df\3\2\2\2" + + "\u05e1\u05e2\3\2\2\2\u05e2\u05e3\3\2\2\2\u05e3\u05e4\5\u01cc\u00e7\2\u05e4" + + "A\3\2\2\2\u05e5\u05e7\t\6\2\2\u05e6\u05e5\3\2\2\2\u05e6\u05e7\3\2\2\2" + + "\u05e7\u05e8\3\2\2\2\u05e8\u05ea\5\u0202\u0102\2\u05e9\u05eb\5\u01fe\u0100" + + "\2\u05ea\u05e9\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05f6\3\2\2\2\u05ec\u05ee" + + "\7\u02fa\2\2\u05ed\u05ef\t\6\2\2\u05ee\u05ed\3\2\2\2\u05ee\u05ef\3\2\2" + + "\2\u05ef\u05f0\3\2\2\2\u05f0\u05f2\5\u0202\u0102\2\u05f1\u05f3\5\u01fe" + + "\u0100\2\u05f2\u05f1\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3\u05f5\3\2\2\2\u05f4" + + "\u05ec\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6\u05f4\3\2\2\2\u05f6\u05f7\3\2" + + "\2\2\u05f7C\3\2\2\2\u05f8\u05f6\3\2\2\2\u05f9\u05fa\7\25\2\2\u05fa\u05fb" + + "\7\u02be\2\2\u05fb\u0607\5\u0202\u0102\2\u05fc\u05fd\7\u02b9\2\2\u05fd" + + "\u0608\7\u030a\2\2\u05fe\u05ff\7\u02b9\2\2\u05ff\u0601\7\u030a\2\2\u0600" + + "\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601\u0602\3\2\2\2\u0602\u0603\7\u0188" + + "\2\2\u0603\u0604\7\u0300\2\2\u0604\u0605\5B\"\2\u0605\u0606\7\u0301\2" + + "\2\u0606\u0608\3\2\2\2\u0607\u05fc\3\2\2\2\u0607\u0600\3\2\2\2\u0608\u0618" + + "\3\2\2\2\u0609\u060a\7\25\2\2\u060a\u060b\7\u02be\2\2\u060b\u060c\5\u0202" + + "\u0102\2\u060c\u060d\7\u0195\2\2\u060d\u060e\7\u0249\2\2\u060e\u060f\5" + + "\u01fa\u00fe\2\u060f\u0618\3\2\2\2\u0610\u0611\7\25\2\2\u0611\u0612\7" + + "\u02be\2\2\u0612\u0613\5\u0202\u0102\2\u0613\u0614\7\u01d6\2\2\u0614\u0615" + + "\7\u0249\2\2\u0615\u0616\5\u01cc\u00e7\2\u0616\u0618\3\2\2\2\u0617\u05f9" + + "\3\2\2\2\u0617\u0609\3\2\2\2\u0617\u0610\3\2\2\2\u0618E\3\2\2\2\u0619" + + "\u061a\7\25\2\2\u061a\u061b\7\u0226\2\2\u061b\u061c\5\u0202\u0102\2\u061c" + + "\u061d\7\u0195\2\2\u061d\u0621\7\u0249\2\2\u061e\u0622\5\u0202\u0102\2" + + "\u061f\u0622\7\u008f\2\2\u0620\u0622\7\u0208\2\2\u0621\u061e\3\2\2\2\u0621" + + "\u061f\3\2\2\2\u0621\u0620\3\2\2\2\u0622\u0632\3\2\2\2\u0623\u0624\7\25" + + "\2\2\u0624\u0625\7\u0226\2\2\u0625\u0626\5\u0202\u0102\2\u0626\u0627\7" + + "\u01d6\2\2\u0627\u0628\7\u0249\2\2\u0628\u0629\5\u0202\u0102\2\u0629\u0632" + + "\3\2\2\2\u062a\u062b\7\25\2\2\u062b\u062c\7\u0226\2\2\u062c\u062d\5\u0202" + + "\u0102\2\u062d\u062e\7\u0209\2\2\u062e\u062f\7\u01f5\2\2\u062f\u0630\5" + + "\u0202\u0102\2\u0630\u0632\3\2\2\2\u0631\u0619\3\2\2\2\u0631\u0623\3\2" + + "\2\2\u0631\u062a\3\2\2\2\u0632G\3\2\2\2\u0633\u0634\7\25\2\2\u0634\u0635" + + "\7\u0232\2\2\u0635\u0636\5\u0202\u0102\2\u0636\u0637\7m\2\2\u0637\u0638" + + "\5\u01fe\u0100\2\u0638\u0673\3\2\2\2\u0639\u063a\7\25\2\2\u063a\u063b" + + "\7\u0232\2\2\u063b\u063c\5\u0202\u0102\2\u063c\u063d\7\u0209\2\2\u063d" + + "\u063e\7\u01bc\2\2\u063e\u0644\5\u01ce\u00e8\2\u063f\u0640\7\u0288\2\2" + + "\u0640\u0641\7\u0300\2\2\u0641\u0642\5\u01d4\u00eb\2\u0642\u0643\7\u0301" + + "\2\2\u0643\u0645\3\2\2\2\u0644\u063f\3\2\2\2\u0644\u0645\3\2\2\2\u0645" + + "\u0673\3\2\2\2\u0646\u0647\7\25\2\2\u0647\u0648\7\u0232\2\2\u0648\u0649" + + "\5\u0202\u0102\2\u0649\u064a\7\u01c9\2\2\u064a\u0650\7\u01bc\2\2\u064b" + + "\u064c\7\u0288\2\2\u064c\u064d\7\u0300\2\2\u064d\u064e\5\u01d4\u00eb\2" + + "\u064e\u064f\7\u0301\2\2\u064f\u0651\3\2\2\2\u0650\u064b\3\2\2\2\u0650" + + "\u0651\3\2\2\2\u0651\u0673\3\2\2\2\u0652\u0653\7\25\2\2\u0653\u0654\7" + + "\u0232\2\2\u0654\u0655\5\u0202\u0102\2\u0655\u0656\7\u00c5\2\2\u0656\u0673" + + "\3\2\2\2\u0657\u0658\7\25\2\2\u0658\u0659\7\u0232\2\2\u0659\u065a\5\u0202" + + "\u0102\2\u065a\u065b\7\u00b5\2\2\u065b\u0673\3\2\2\2\u065c\u065d\7\25" + + "\2\2\u065d\u065e\7\u0232\2\2\u065e\u065f\5\u0202\u0102\2\u065f\u0660\7" + + "\u0209\2\2\u0660\u0661\7\u0300\2\2\u0661\u0662\5\u01d4\u00eb\2\u0662\u0663" + + "\7\u0301\2\2\u0663\u0673\3\2\2\2\u0664\u0665\7\25\2\2\u0665\u0666\7\u0232" + + "\2\2\u0666\u0667\5\u0202\u0102\2\u0667\u0668\7\u0195\2\2\u0668\u0669\7" + + "\u0249\2\2\u0669\u066a\5\u01fa\u00fe\2\u066a\u0673\3\2\2\2\u066b\u066c" + + "\7\25\2\2\u066c\u066d\7\u0232\2\2\u066d\u066e\5\u0202\u0102\2\u066e\u066f" + + "\7\u01d6\2\2\u066f\u0670\7\u0249\2\2\u0670\u0671\5\u0202\u0102\2\u0671" + + "\u0673\3\2\2\2\u0672\u0633\3\2\2\2\u0672\u0639\3\2\2\2\u0672\u0646\3\2" + + "\2\2\u0672\u0652\3\2\2\2\u0672\u0657\3\2\2\2\u0672\u065c\3\2\2\2\u0672" + + "\u0664\3\2\2\2\u0672\u066b\3\2\2\2\u0673I\3\2\2\2\u0674\u0675\7\25\2\2" + + "\u0675\u0676\7\u0237\2\2\u0676\u0677\7\u0209\2\2\u0677\u0678\7\u030c\2" + + "\2\u0678\u0679\t\7\2\2\u0679\u0683\5\u01fe\u0100\2\u067a\u067b\7\25\2" + + "\2\u067b\u067c\7\u0237\2\2\u067c\u067d\7\u01da\2\2\u067d\u0683\7\u030c" + + "\2\2\u067e\u067f\7\25\2\2\u067f\u0680\7\u0237\2\2\u0680\u0681\7\u01da" + + "\2\2\u0681\u0683\7\22\2\2\u0682\u0674\3\2\2\2\u0682\u067a\3\2\2\2\u0682" + + "\u067e\3\2\2\2\u0683K\3\2\2\2\u0684\u0685\5\u0206\u0104\2\u0685M\3\2\2" + + "\2\u0686\u0687\7\25\2\2\u0687\u0688\7\u023c\2\2\u0688\u0689\5\u0202\u0102" + + "\2\u0689\u068a\7\u01d6\2\2\u068a\u068b\7\u0249\2\2\u068b\u068c\5\u0202" + + "\u0102\2\u068c\u06a8\3\2\2\2\u068d\u068e\7\25\2\2\u068e\u068f\7\u023c" + + "\2\2\u068f\u0690\5\u0202\u0102\2\u0690\u0691\7\u0195\2\2\u0691\u0695\7" + + "\u0249\2\2\u0692\u0696\5\u0202\u0102\2\u0693\u0696\7\u008f\2\2\u0694\u0696" + + "\7\u0208\2\2\u0695\u0692\3\2\2\2\u0695\u0693\3\2\2\2\u0695\u0694\3\2\2" + + "\2\u0696\u06a8\3\2\2\2\u0697\u0698\7\25\2\2\u0698\u0699\7\u023c\2\2\u0699" + + "\u069a\5\u0202\u0102\2\u069a\u069b\7\u0209\2\2\u069b\u069c\7\u0300\2\2" + + "\u069c\u069d\5\u01d4\u00eb\2\u069d\u069e\7\u0301\2\2\u069e\u06a8\3\2\2" + + "\2\u069f\u06a0\7\25\2\2\u06a0\u06a1\7\u023c\2\2\u06a1\u06a2\5\u0202\u0102" + + "\2\u06a2\u06a3\7\u01da\2\2\u06a3\u06a4\7\u0300\2\2\u06a4\u06a5\5\u01d0" + + "\u00e9\2\u06a5\u06a6\7\u0301\2\2\u06a6\u06a8\3\2\2\2\u06a7\u0686\3\2\2" + + "\2\u06a7\u068d\3\2\2\2\u06a7\u0697\3\2\2\2\u06a7\u069f\3\2\2\2\u06a8O" + + "\3\2\2\2\u06a9\u06aa\7\25\2\2\u06aa\u06ab\7\u02f1\2\2\u06ab\u06ac\7\u01fc" + + "\2\2\u06ac\u06ad\7j\2\2\u06ad\u06ae\5\u0202\u0102\2\u06ae\u06af\7\r\2" + + "\2\u06af\u06b0\7\u0147\2\2\u06b0\u06b1\7\u00e5\2\2\u06b1\u06b2\5\u01d0" + + "\u00e9\2\u06b2\u06b3\7\u0288\2\2\u06b3\u06b4\5\u01d0\u00e9\2\u06b4\u0705" + + "\3\2\2\2\u06b5\u06b6\7\25\2\2\u06b6\u06b7\7\u02f1\2\2\u06b7\u06b8\7\u01fc" + + "\2\2\u06b8\u06b9\7j\2\2\u06b9\u06ba\5\u0202\u0102\2\u06ba\u06bb\7\25\2" + + "\2\u06bb\u06bc\7\u0147\2\2\u06bc\u06bd\7\u00e5\2\2\u06bd\u06be\5\u01d0" + + "\u00e9\2\u06be\u06bf\7\u0288\2\2\u06bf\u06c0\5\u01d0\u00e9\2\u06c0\u0705" + + "\3\2\2\2\u06c1\u06c2\7\25\2\2\u06c2\u06c3\7\u02f1\2\2\u06c3\u06c4\7\u01fc" + + "\2\2\u06c4\u06c5\7j\2\2\u06c5\u06c6\5\u0202\u0102\2\u06c6\u06c7\7\25\2" + + "\2\u06c7\u06c8\7\u0147\2\2\u06c8\u06c9\7\u01d8\2\2\u06c9\u06ca\5\u0202" + + "\u0102\2\u06ca\u06cb\7\u0288\2\2\u06cb\u06cc\5\u0202\u0102\2\u06cc\u0705" + + "\3\2\2\2\u06cd\u06ce\7\25\2\2\u06ce\u06cf\7\u02f1\2\2\u06cf\u06d0\7\u01fc" + + "\2\2\u06d0\u06d1\7j\2\2\u06d1\u06d2\5\u0202\u0102\2\u06d2\u06d3\7\25\2" + + "\2\u06d3\u06d4\7\u0147\2\2\u06d4\u06d5\7\u00e5\2\2\u06d5\u06d6\5\u01d0" + + "\u00e9\2\u06d6\u06d7\7\u01d8\2\2\u06d7\u06d8\5\u0202\u0102\2\u06d8\u06d9" + + "\7\u0288\2\2\u06d9\u06da\5\u0202\u0102\2\u06da\u0705\3\2\2\2\u06db\u06dc" + + "\7\25\2\2\u06dc\u06dd\7\u02f1\2\2\u06dd\u06de\7\u01fc\2\2\u06de\u06df" + + "\7j\2\2\u06df\u06e0\5\u0202\u0102\2\u06e0\u06e1\7\u00be\2\2\u06e1\u06e4" + + "\7\u0147\2\2\u06e2\u06e3\7\u02b4\2\2\u06e3\u06e5\7\u00d5\2\2\u06e4\u06e2" + + "\3\2\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\3\2\2\2\u06e6\u06e7\7\u00e5\2" + + "\2\u06e7\u06e8\5\u01d0\u00e9\2\u06e8\u0705\3\2\2\2\u06e9\u06ea\7\25\2" + + "\2\u06ea\u06eb\7\u02f1\2\2\u06eb\u06ec\7\u01fc\2\2\u06ec\u06ed\7j\2\2" + + "\u06ed\u06ee\5\u0202\u0102\2\u06ee\u06ef\7\u01d6\2\2\u06ef\u06f0\7\u0249" + + "\2\2\u06f0\u06f1\5\u0202\u0102\2\u06f1\u0705\3\2\2\2\u06f2\u06f3\7\25" + + "\2\2\u06f3\u06f4\7\u02f1\2\2\u06f4\u06f5\7\u01fc\2\2\u06f5\u06f6\7j\2" + + "\2\u06f6\u06f7\5\u0202\u0102\2\u06f7\u06f8\7\u0195\2\2\u06f8\u06f9\7\u0249" + + "\2\2\u06f9\u06fa\5\u01fa\u00fe\2\u06fa\u0705\3\2\2\2\u06fb\u06fc\7\25" + + "\2\2\u06fc\u06fd\7\u02f1\2\2\u06fd\u06fe\7\u01fc\2\2\u06fe\u06ff\7j\2" + + "\2\u06ff\u0700\5\u0202\u0102\2\u0700\u0701\7\u0209\2\2\u0701\u0702\7\u01f5" + + "\2\2\u0702\u0703\5\u0202\u0102\2\u0703\u0705\3\2\2\2\u0704\u06a9\3\2\2" + + "\2\u0704\u06b5\3\2\2\2\u0704\u06c1\3\2\2\2\u0704\u06cd\3\2\2\2\u0704\u06db" + + "\3\2\2\2\u0704\u06e9\3\2\2\2\u0704\u06f2\3\2\2\2\u0704\u06fb\3\2\2\2\u0705" + + "Q\3\2\2\2\u0706\u0707\5\u0206\u0104\2\u0707S\3\2\2\2\u0708\u0709\5\u0206" + + "\u0104\2\u0709U\3\2\2\2\u070a\u070b\7\25\2\2\u070b\u070c\7\u02f1\2\2\u070c" + + "\u070d\7\u01fc\2\2\u070d\u070e\7\u023e\2\2\u070e\u070f\5\u0202\u0102\2" + + "\u070f\u0710\7\u01d6\2\2\u0710\u0711\7\u0249\2\2\u0711\u0712\5\u0202\u0102" + + "\2\u0712\u071d\3\2\2\2\u0713\u0714\7\25\2\2\u0714\u0715\7\u02f1\2\2\u0715" + + "\u0716\7\u01fc\2\2\u0716\u0717\7\u023e\2\2\u0717\u0718\5\u0202\u0102\2" + + "\u0718\u0719\7\u0209\2\2\u0719\u071a\7\u01f5\2\2\u071a\u071b\5\u0202\u0102" + + "\2\u071b\u071d\3\2\2\2\u071c\u070a\3\2\2\2\u071c\u0713\3\2\2\2\u071dW" + + "\3\2\2\2\u071e\u071f\7\25\2\2\u071f\u0720\7\u0256\2\2\u0720\u0721\5\u0202" + + "\u0102\2\u0721\u0722\7\u0182\2\2\u0722\u0723\5\u0202\u0102\2\u0723\u0724" + + "\7\u01d6\2\2\u0724\u0725\7\u0249\2\2\u0725\u0726\5\u0202\u0102\2\u0726" + + "\u0732\3\2\2\2\u0727\u0728\7\25\2\2\u0728\u0729\7\u0256\2\2\u0729\u072a" + + "\5\u0202\u0102\2\u072a\u072b\7\u0182\2\2\u072b\u072c\5\u0202\u0102\2\u072c" + + "\u072d\7\u00a9\2\2\u072d\u072e\7\u0182\2\2\u072e\u072f\7\u00d9\2\2\u072f" + + "\u0730\5\u0202\u0102\2\u0730\u0732\3\2\2\2\u0731\u071e\3\2\2\2\u0731\u0727" + + "\3\2\2\2\u0732Y\3\2\2\2\u0733\u0734\5\u0206\u0104\2\u0734[\3\2\2\2\u0735" + + "\u0736\5\u0206\u0104\2\u0736]\3\2\2\2\u0737\u0738\7\25\2\2\u0738\u0739" + + "\7\u026e\2\2\u0739\u073a\7\u0147\2\2\u073a\u073b\7\u00e5\2\2\u073b\u073c" + + "\5\u01fa\u00fe\2\u073c\u073d\7\u02be\2\2\u073d\u073e\5\u0202\u0102\2\u073e" + + "\u073f\7\u0188\2\2\u073f\u0740\7\u0300\2\2\u0740\u0741\5B\"\2\u0741\u0742" + + "\7\u0301\2\2\u0742_\3\2\2\2\u0743\u0744\5\u0206\u0104\2\u0744a\3\2\2\2" + + "\u0745\u0747\7\30\2\2\u0746\u0748\7\u0280\2\2\u0747\u0746\3\2\2\2\u0747" + + "\u0748\3\2\2\2\u0748\u0749\3\2\2\2\u0749\u074e\5\u01d6\u00ec\2\u074a\u074b" + + "\7\u0300\2\2\u074b\u074c\5\u01ce\u00e8\2\u074c\u074d\7\u0301\2\2\u074d" + + "\u074f\3\2\2\2\u074e\u074a\3\2\2\2\u074e\u074f\3\2\2\2\u074fc\3\2\2\2" + + "\u0750\u0751\5\u0206\u0104\2\u0751e\3\2\2\2\u0752\u0753\5\u0206\u0104" + + "\2\u0753g\3\2\2\2\u0754\u0755\5\u0206\u0104\2\u0755i\3\2\2\2\u0756\u0757" + + "\5\u0206\u0104\2\u0757k\3\2\2\2\u0758\u0759\5\u0206\u0104\2\u0759m\3\2" + + "\2\2\u075a\u075b\5\u0206\u0104\2\u075bo\3\2\2\2\u075c\u0784\5r:\2\u075d" + + "\u0784\5t;\2\u075e\u0784\5v<\2\u075f\u0784\5|?\2\u0760\u0784\5~@\2\u0761" + + "\u0784\5\u0080A\2\u0762\u0784\5\u0084C\2\u0763\u0784\5\u0088E\2\u0764" + + "\u0784\5\u008cG\2\u0765\u0784\5\u008eH\2\u0766\u0784\5\u0090I\2\u0767" + + "\u0784\5\u0092J\2\u0768\u0784\5\u0094K\2\u0769\u0784\5\u0096L\2\u076a" + + "\u0784\5\u0098M\2\u076b\u0784\5\u009aN\2\u076c\u0784\5\u009eP\2\u076d" + + "\u0784\5\u00a0Q\2\u076e\u0784\5\u00a2R\2\u076f\u0784\5\u00a4S\2\u0770" + + "\u0784\5\u00a8U\2\u0771\u0784\5\u00aaV\2\u0772\u0784\5\u00acW\2\u0773" + + "\u0784\5\u00aeX\2\u0774\u0784\5\u00b0Y\2\u0775\u0784\5\u00b2Z\2\u0776" + + "\u0784\5\u00b4[\2\u0777\u0784\5\u00b6\\\2\u0778\u0784\5\u00b8]\2\u0779" + + "\u0784\5\u00ba^\2\u077a\u0784\5\u00bc_\2\u077b\u0784\5\u00be`\2\u077c" + + "\u0784\5\u00c0a\2\u077d\u0784\5\u00c2b\2\u077e\u0784\5\u00c4c\2\u077f" + + "\u0784\5\u00c6d\2\u0780\u0784\5\u00c8e\2\u0781\u0784\5\u00caf\2\u0782" + + "\u0784\5\u00ccg\2\u0783\u075c\3\2\2\2\u0783\u075d\3\2\2\2\u0783\u075e" + + "\3\2\2\2\u0783\u075f\3\2\2\2\u0783\u0760\3\2\2\2\u0783\u0761\3\2\2\2\u0783" + + "\u0762\3\2\2\2\u0783\u0763\3\2\2\2\u0783\u0764\3\2\2\2\u0783\u0765\3\2" + + "\2\2\u0783\u0766\3\2\2\2\u0783\u0767\3\2\2\2\u0783\u0768\3\2\2\2\u0783" + + "\u0769\3\2\2\2\u0783\u076a\3\2\2\2\u0783\u076b\3\2\2\2\u0783\u076c\3\2" + + "\2\2\u0783\u076d\3\2\2\2\u0783\u076e\3\2\2\2\u0783\u076f\3\2\2\2\u0783" + + "\u0770\3\2\2\2\u0783\u0771\3\2\2\2\u0783\u0772\3\2\2\2\u0783\u0773\3\2" + + "\2\2\u0783\u0774\3\2\2\2\u0783\u0775\3\2\2\2\u0783\u0776\3\2\2\2\u0783" + + "\u0777\3\2\2\2\u0783\u0778\3\2\2\2\u0783\u0779\3\2\2\2\u0783\u077a\3\2" + + "\2\2\u0783\u077b\3\2\2\2\u0783\u077c\3\2\2\2\u0783\u077d\3\2\2\2\u0783" + + "\u077e\3\2\2\2\u0783\u077f\3\2\2\2\u0783\u0780\3\2\2\2\u0783\u0781\3\2" + + "\2\2\u0783\u0782\3\2\2\2\u0784q\3\2\2\2\u0785\u0786\7\u0080\2\2\u0786" + + "\u0787\7\n\2\2\u0787\u0788\7\u0152\2\2\u0788\u0789\5\u01cc\u00e7\2\u0789" + + "\u078a\7\u025e\2\2\u078a\u078b\7\u010e\2\2\u078b\u078c\7\u00fe\2\2\u078c" + + "\u078d\5\u01cc\u00e7\2\u078ds\3\2\2\2\u078e\u078f\7\u0080\2\2\u078f\u0790" + + "\7\20\2\2\u0790\u0791\5\u01cc\u00e7\2\u0791\u0793\7\u0300\2\2\u0792\u0794" + + "\t\b\2\2\u0793\u0792\3\2\2\2\u0793\u0794\3\2\2\2\u0794\u0796\3\2\2\2\u0795" + + "\u0797\5\u01cc\u00e7\2\u0796\u0795\3\2\2\2\u0796\u0797\3\2\2\2\u0797\u0798" + + "\3\2\2\2\u0798\u0799\5\u01da\u00ee\2\u0799\u079a\7\u0301\2\2\u079a\u079b" + + "\7\u0300\2\2\u079b\u079c\7\u029d\2\2\u079c\u079d\7\u0319\2\2\u079d\u079e" + + "\5\u0202\u0102\2\u079e\u079f\7\u02fa\2\2\u079f\u07a0\7\u029e\2\2\u07a0" + + "\u07a1\7\u0319\2\2\u07a1\u07a6\5\u0202\u0102\2\u07a2\u07a3\7\u02fa\2\2" + + "\u07a3\u07a4\7\u029f\2\2\u07a4\u07a5\7\u0319\2\2\u07a5\u07a7\7\u0307\2" + + "\2\u07a6\u07a2\3\2\2\2\u07a6\u07a7\3\2\2\2\u07a7\u07ac\3\2\2\2\u07a8\u07a9" + + "\7\u02fa\2\2\u07a9\u07aa\7\u02a0\2\2\u07aa\u07ab\7\u0319\2\2\u07ab\u07ad" + + "\5\u0202\u0102\2\u07ac\u07a8\3\2\2\2\u07ac\u07ad\3\2\2\2\u07ad\u07b0\3" + + "\2\2\2\u07ae\u07af\7\u02fa\2\2\u07af\u07b1\7\u02a1\2\2\u07b0\u07ae\3\2" + + "\2\2\u07b0\u07b1\3\2\2\2\u07b1\u07b6\3\2\2\2\u07b2\u07b3\7\u02fa\2\2\u07b3" + + "\u07b4\7\u02a2\2\2\u07b4\u07b5\7\u0319\2\2\u07b5\u07b7\5\u0202\u0102\2" + + "\u07b6\u07b2\3\2\2\2\u07b6\u07b7\3\2\2\2\u07b7\u07bc\3\2\2\2\u07b8\u07b9" + + "\7\u02fa\2\2\u07b9\u07ba\7\u02a3\2\2\u07ba\u07bb\7\u0319\2\2\u07bb\u07bd" + + "\5\u0202\u0102\2\u07bc\u07b8\3\2\2\2\u07bc\u07bd\3\2\2\2\u07bd\u07c2\3" + + "\2\2\2\u07be\u07bf\7\u02fa\2\2\u07bf\u07c0\7\u02a4\2\2\u07c0\u07c1\7\u0319" + + "\2\2\u07c1\u07c3\5\u0202\u0102\2\u07c2\u07be\3\2\2\2\u07c2\u07c3\3\2\2" + + "\2\u07c3\u07c8\3\2\2\2\u07c4\u07c5\7\u02fa\2\2\u07c5\u07c6\7\u02a5\2\2" + + "\u07c6\u07c7\7\u0319\2\2\u07c7\u07c9\5\u01b2\u00da\2\u07c8\u07c4\3\2\2" + + "\2\u07c8\u07c9\3\2\2\2\u07c9\u07ce\3\2\2\2\u07ca\u07cb\7\u02fa\2\2\u07cb" + + "\u07cc\7\u02a6\2\2\u07cc\u07cd\7\u0319\2\2\u07cd\u07cf\5\u0202\u0102\2" + + "\u07ce\u07ca\3\2\2\2\u07ce\u07cf\3\2\2\2\u07cf\u07d4\3\2\2\2\u07d0\u07d1" + + "\7\u02fa\2\2\u07d1\u07d2\7\u02a7\2\2\u07d2\u07d3\7\u0319\2\2\u07d3\u07d5" + + "\5\u0202\u0102\2\u07d4\u07d0\3\2\2\2\u07d4\u07d5\3\2\2\2\u07d5\u07da\3" + + "\2\2\2\u07d6\u07d7\7\u02fa\2\2\u07d7\u07d8\7\u02a8\2\2\u07d8\u07d9\7\u0319" + + "\2\2\u07d9\u07db\5\u0202\u0102\2\u07da\u07d6\3\2\2\2\u07da\u07db\3\2\2" + + "\2\u07db\u07e0\3\2\2\2\u07dc\u07dd\7\u02fa\2\2\u07dd\u07de\7\u02a9\2\2" + + "\u07de\u07df\7\u0319\2\2\u07df\u07e1\7\u0307\2\2\u07e0\u07dc\3\2\2\2\u07e0" + + "\u07e1\3\2\2\2\u07e1\u07e6\3\2\2\2\u07e2\u07e3\7\u02fa\2\2\u07e3\u07e4" + + "\7\u02aa\2\2\u07e4\u07e5\7\u0319\2\2\u07e5\u07e7\5\u0202\u0102\2\u07e6" + + "\u07e2\3\2\2\2\u07e6\u07e7\3\2\2\2\u07e7\u07ea\3\2\2\2\u07e8\u07e9\7\u02fa" + + "\2\2\u07e9\u07eb\7\u02ab\2\2\u07ea\u07e8\3\2\2\2\u07ea\u07eb\3\2\2\2\u07eb" + + "\u07f0\3\2\2\2\u07ec\u07ed\7\u02fa\2\2\u07ed\u07ee\7\u02ac\2\2\u07ee\u07ef" + + "\7\u0319\2\2\u07ef\u07f1\5\u0202\u0102\2\u07f0\u07ec\3\2\2\2\u07f0\u07f1" + + "\3\2\2\2\u07f1\u07f6\3\2\2\2\u07f2\u07f3\7\u02fa\2\2\u07f3\u07f4\7\u02ad" + + "\2\2\u07f4\u07f5\7\u0319\2\2\u07f5\u07f7\5\u0202\u0102\2\u07f6\u07f2\3" + + "\2\2\2\u07f6\u07f7\3\2\2\2\u07f7\u07fc\3\2\2\2\u07f8\u07f9\7\u02fa\2\2" + + "\u07f9\u07fa\7\u02ae\2\2\u07fa\u07fb\7\u0319\2\2\u07fb\u07fd\t\t\2\2\u07fc" + + "\u07f8\3\2\2\2\u07fc\u07fd\3\2\2\2\u07fd\u07fe\3\2\2\2\u07fe\u07ff\7\u0301" + + "\2\2\u07ff\u08a9\3\2\2\2\u0800\u0801\7\u0080\2\2\u0801\u0802\7\20\2\2" + + "\u0802\u0803\5\u01cc\u00e7\2\u0803\u080b\7\u0300\2\2\u0804\u0806\t\b\2" + + "\2\u0805\u0804\3\2\2\2\u0805\u0806\3\2\2\2\u0806\u0808\3\2\2\2\u0807\u0809" + + "\5\u01cc\u00e7\2\u0808\u0807\3\2\2\2\u0808\u0809\3\2\2\2\u0809\u080a\3" + + "\2\2\2\u080a\u080c\5\u01da\u00ee\2\u080b\u0805\3\2\2\2\u080b\u080c\3\2" + + "\2\2\u080c\u080d\3\2\2\2\u080d\u080e\7\u018a\2\2\u080e\u0810\78\2\2\u080f" + + "\u0811\t\b\2\2\u0810\u080f\3\2\2\2\u0810\u0811\3\2\2\2\u0811\u0813\3\2" + + "\2\2\u0812\u0814\5\u01cc\u00e7\2\u0813\u0812\3\2\2\2\u0813\u0814\3\2\2" + + "\2\u0814\u0815\3\2\2\2\u0815\u0816\5\u01da\u00ee\2\u0816\u0817\7\u0301" + + "\2\2\u0817\u0818\7\u0300\2\2\u0818\u0819\7\u029d\2\2\u0819\u081a\7\u0319" + + "\2\2\u081a\u081b\5\u0202\u0102\2\u081b\u081c\7\u02fa\2\2\u081c\u081d\7" + + "\u029e\2\2\u081d\u081e\7\u0319\2\2\u081e\u0823\5\u0202\u0102\2\u081f\u0820" + + "\7\u02fa\2\2\u0820\u0821\7\u029f\2\2\u0821\u0822\7\u0319\2\2\u0822\u0824" + + "\7\u0307\2\2\u0823\u081f\3\2\2\2\u0823\u0824\3\2\2\2\u0824\u0829\3\2\2" + + "\2\u0825\u0826\7\u02fa\2\2\u0826\u0827\7\u02a0\2\2\u0827\u0828\7\u0319" + + "\2\2\u0828\u082a\5\u0202\u0102\2\u0829\u0825\3\2\2\2\u0829\u082a\3\2\2" + + "\2\u082a\u082d\3\2\2\2\u082b\u082c\7\u02fa\2\2\u082c\u082e\7\u02a1\2\2" + + "\u082d\u082b\3\2\2\2\u082d\u082e\3\2\2\2\u082e\u0833\3\2\2\2\u082f\u0830" + + "\7\u02fa\2\2\u0830\u0831\7\u02a5\2\2\u0831\u0832\7\u0319\2\2\u0832\u0834" + + "\5\u01b2\u00da\2\u0833\u082f\3\2\2\2\u0833\u0834\3\2\2\2\u0834\u0839\3" + + "\2\2\2\u0835\u0836\7\u02fa\2\2\u0836\u0837\7\u02ae\2\2\u0837\u0838\7\u0319" + + "\2\2\u0838\u083a\t\t\2\2\u0839\u0835\3\2\2\2\u0839\u083a\3\2\2\2\u083a" + + "\u083d\3\2\2\2\u083b\u083c\7\u02fa\2\2\u083c\u083e\7\u02af\2\2\u083d\u083b" + + "\3\2\2\2\u083d\u083e\3\2\2\2\u083e\u083f\3\2\2\2\u083f\u0840\7\u0301\2" + + "\2\u0840\u08a9\3\2\2\2\u0841\u0842\7\u0080\2\2\u0842\u0843\7\20\2\2\u0843" + + "\u0844\5\u01cc\u00e7\2\u0844\u0845\7\u0300\2\2\u0845\u0846\7\u02b3\2\2" + + "\u0846\u0847\7\u0319\2\2\u0847\u0848\5\u01d8\u00ed\2\u0848\u0849\7\u02fa" + + "\2\2\u0849\u084a\7\u029d\2\2\u084a\u084b\7\u0319\2\2\u084b\u084c\5\u0202" + + "\u0102\2\u084c\u084d\7\u02fa\2\2\u084d\u084e\7\u029e\2\2\u084e\u084f\7" + + "\u0319\2\2\u084f\u0854\5\u0202\u0102\2\u0850\u0851\7\u02fa\2\2\u0851\u0852" + + "\7\u029f\2\2\u0852\u0853\7\u0319\2\2\u0853\u0855\7\u0307\2\2\u0854\u0850" + + "\3\2\2\2\u0854\u0855\3\2\2\2\u0855\u085a\3\2\2\2\u0856\u0857\7\u02fa\2" + + "\2\u0857\u0858\7\u02a0\2\2\u0858\u0859\7\u0319\2\2\u0859\u085b\5\u0202" + + "\u0102\2\u085a\u0856\3\2\2\2\u085a\u085b\3\2\2\2\u085b\u085e\3\2\2\2\u085c" + + "\u085d\7\u02fa\2\2\u085d\u085f\7\u02a1\2\2\u085e\u085c\3\2\2\2\u085e\u085f" + + "\3\2\2\2\u085f\u0864\3\2\2\2\u0860\u0861\7\u02fa\2\2\u0861\u0862\7\u02a2" + + "\2\2\u0862\u0863\7\u0319\2\2\u0863\u0865\5\u0202\u0102\2\u0864\u0860\3" + + "\2\2\2\u0864\u0865\3\2\2\2\u0865\u086a\3\2\2\2\u0866\u0867\7\u02fa\2\2" + + "\u0867\u0868\7\u02a3\2\2\u0868\u0869\7\u0319\2\2\u0869\u086b\5\u0202\u0102" + + "\2\u086a\u0866\3\2\2\2\u086a\u086b\3\2\2\2\u086b\u0870\3\2\2\2\u086c\u086d" + + "\7\u02fa\2\2\u086d\u086e\7\u02a4\2\2\u086e\u086f\7\u0319\2\2\u086f\u0871" + + "\5\u0202\u0102\2\u0870\u086c\3\2\2\2\u0870\u0871\3\2\2\2\u0871\u0876\3" + + "\2\2\2\u0872\u0873\7\u02fa\2\2\u0873\u0874\7\u02a5\2\2\u0874\u0875\7\u0319" + + "\2\2\u0875\u0877\5\u01b2\u00da\2\u0876\u0872\3\2\2\2\u0876\u0877\3\2\2" + + "\2\u0877\u087c\3\2\2\2\u0878\u0879\7\u02fa\2\2\u0879\u087a\7\u02a6\2\2" + + "\u087a\u087b\7\u0319\2\2\u087b\u087d\5\u0202\u0102\2\u087c\u0878\3\2\2" + + "\2\u087c\u087d\3\2\2\2\u087d\u0882\3\2\2\2\u087e\u087f\7\u02fa\2\2\u087f" + + "\u0880\7\u02a7\2\2\u0880\u0881\7\u0319\2\2\u0881\u0883\5\u0202\u0102\2" + + "\u0882\u087e\3\2\2\2\u0882\u0883\3\2\2\2\u0883\u0888\3\2\2\2\u0884\u0885" + + "\7\u02fa\2\2\u0885\u0886\7\u02a8\2\2\u0886\u0887\7\u0319\2\2\u0887\u0889" + + "\5\u0202\u0102\2\u0888\u0884\3\2\2\2\u0888\u0889\3\2\2\2\u0889\u088e\3" + + "\2\2\2\u088a\u088b\7\u02fa\2\2\u088b\u088c\7\u02a9\2\2\u088c\u088d\7\u0319" + + "\2\2\u088d\u088f\7\u0307\2\2\u088e\u088a\3\2\2\2\u088e\u088f\3\2\2\2\u088f" + + "\u0894\3\2\2\2\u0890\u0891\7\u02fa\2\2\u0891\u0892\7\u02aa\2\2\u0892\u0893" + + "\7\u0319\2\2\u0893\u0895\5\u0202\u0102\2\u0894\u0890\3\2\2\2\u0894\u0895" + + "\3\2\2\2\u0895\u0898\3\2\2\2\u0896\u0897\7\u02fa\2\2\u0897\u0899\7\u02ab" + + "\2\2\u0898\u0896\3\2\2\2\u0898\u0899\3\2\2\2\u0899\u089e\3\2\2\2\u089a" + + "\u089b\7\u02fa\2\2\u089b\u089c\7\u02ac\2\2\u089c\u089d\7\u0319\2\2\u089d" + + "\u089f\5\u0202\u0102\2\u089e\u089a\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a4" + + "\3\2\2\2\u08a0\u08a1\7\u02fa\2\2\u08a1\u08a2\7\u02ad\2\2\u08a2\u08a3\7" + + "\u0319\2\2\u08a3\u08a5\5\u0202\u0102\2\u08a4\u08a0\3\2\2\2\u08a4\u08a5" + + "\3\2\2\2\u08a5\u08a6\3\2\2\2\u08a6\u08a7\7\u0301\2\2\u08a7\u08a9\3\2\2" + + "\2\u08a8\u078e\3\2\2\2\u08a8\u0800\3\2\2\2\u08a8\u0841\3\2\2\2\u08a9u" + + "\3\2\2\2\u08aa\u08ab\7\u0080\2\2\u08ab\u08ac\7A\2\2\u08ac\u08ad\7\u0300" + + "\2\2\u08ad\u08ae\5\u01d8\u00ed\2\u08ae\u08af\7\35\2\2\u08af\u08b0\5\u01d8" + + "\u00ed\2\u08b0\u08be\7\u0301\2\2\u08b1\u08b2\7\u0288\2\2\u08b2\u08b3\7" + + "\u00f0\2\2\u08b3\u08b8\5\u0202\u0102\2\u08b4\u08b5\7\u0300\2\2\u08b5\u08b6" + + "\5\u01da\u00ee\2\u08b6\u08b7\7\u0301\2\2\u08b7\u08b9\3\2\2\2\u08b8\u08b4" + + "\3\2\2\2\u08b8\u08b9\3\2\2\2\u08b9\u08bf\3\2\2\2\u08ba\u08bb\7\u028a\2" + + "\2\u08bb\u08bf\7\u00f0\2\2\u08bc\u08bd\7\u0288\2\2\u08bd\u08bf\7\u0115" + + "\2\2\u08be\u08b1\3\2\2\2\u08be\u08ba\3\2\2\2\u08be\u08bc\3\2\2\2\u08bf" + + "\u08c4\3\2\2\2\u08c0\u08c1\7\35\2\2\u08c1\u08c5\7!\2\2\u08c2\u08c3\7\35" + + "\2\2\u08c3\u08c5\7\u010a\2\2\u08c4\u08c0\3\2\2\2\u08c4\u08c2\3\2\2\2\u08c4" + + "\u08c5\3\2\2\2\u08c5w\3\2\2\2\u08c6\u08c7\7\u02b5\2\2\u08c7\u08c8\7\u0319" + + "\2\2\u08c8\u08d9\5\u01b2\u00da\2\u08c9\u08ca\7\u02b6\2\2\u08ca\u08cb\7" + + "\u0319\2\2\u08cb\u08d9\5\u01b2\u00da\2\u08cc\u08cd\7\u02b7\2\2\u08cd\u08ce" + + "\7\u0319\2\2\u08ce\u08d9\5\u01b2\u00da\2\u08cf\u08d0\7\u02b8\2\2\u08d0" + + "\u08d1\7\u0319\2\2\u08d1\u08d9\5\u01b2\u00da\2\u08d2\u08d3\7\u02b9\2\2" + + "\u08d3\u08d4\7\u0319\2\2\u08d4\u08d9\5\u01b2\u00da\2\u08d5\u08d6\7\u030b" + + "\2\2\u08d6\u08d7\7\u0319\2\2\u08d7\u08d9\5\u01b2\u00da\2\u08d8\u08c6\3" + + "\2\2\2\u08d8\u08c9\3\2\2\2\u08d8\u08cc\3\2\2\2\u08d8\u08cf\3\2\2\2\u08d8" + + "\u08d2\3\2\2\2\u08d8\u08d5\3\2\2\2\u08d9y\3\2\2\2\u08da\u08df\5x=\2\u08db" + + "\u08dc\7\u02fa\2\2\u08dc\u08de\5x=\2\u08dd\u08db\3\2\2\2\u08de\u08e1\3" + + "\2\2\2\u08df\u08dd\3\2\2\2\u08df\u08e0\3\2\2\2\u08e0{\3\2\2\2\u08e1\u08df" + + "\3\2\2\2\u08e2\u08e3\7\u0080\2\2\u08e3\u08e7\7[\2\2\u08e4\u08e5\7\u02b4" + + "\2\2\u08e5\u08e6\7\u016f\2\2\u08e6\u08e8\7\u00d5\2\2\u08e7\u08e4\3\2\2" + + "\2\u08e7\u08e8\3\2\2\2\u08e8\u08e9\3\2\2\2\u08e9\u08ea\5\u01cc\u00e7\2" + + "\u08ea\u08eb\7\u0300\2\2\u08eb\u08ec\5z>\2\u08ec\u08ed\7\u0301\2\2\u08ed" + + "\u08fa\3\2\2\2\u08ee\u08ef\7\u0080\2\2\u08ef\u08f3\7[\2\2\u08f0\u08f1" + + "\7\u02b4\2\2\u08f1\u08f2\7\u016f\2\2\u08f2\u08f4\7\u00d5\2\2\u08f3\u08f0" + + "\3\2\2\2\u08f3\u08f4\3\2\2\2\u08f4\u08f5\3\2\2\2\u08f5\u08f6\5\u01cc\u00e7" + + "\2\u08f6\u08f7\7\u00ee\2\2\u08f7\u08f8\5\u01cc\u00e7\2\u08f8\u08fa\3\2" + + "\2\2\u08f9\u08e2\3\2\2\2\u08f9\u08ee\3\2\2\2\u08fa}\3\2\2\2\u08fb\u08fd" + + "\7\u0080\2\2\u08fc\u08fe\7\u009d\2\2\u08fd\u08fc\3\2\2\2\u08fd\u08fe\3" + + "\2\2\2\u08fe\u08ff\3\2\2\2\u08ff\u0900\7w\2\2\u0900\u0901\5\u0202\u0102" + + "\2\u0901\u0902\7\u00e5\2\2\u0902\u0903\7\u030a\2\2\u0903\u0904\7\u0249" + + "\2\2\u0904\u0905\7\u030a\2\2\u0905\u0906\7\u00ee\2\2\u0906\u0907\5\u01cc" + + "\u00e7\2\u0907\177\3\2\2\2\u0908\u0909\7\u0080\2\2\u0909\u090a\7\u0094" + + "\2\2\u090a\u090c\5\u01cc\u00e7\2\u090b\u090d\7\u0288\2\2\u090c\u090b\3" + + "\2\2\2\u090c\u090d\3\2\2\2\u090d\u0911\3\2\2\2\u090e\u090f\7\u0195\2\2" + + "\u090f\u0910\7\u0319\2\2\u0910\u0912\5\u01cc\u00e7\2\u0911\u090e\3\2\2" + + "\2\u0911\u0912\3\2\2\2\u0912\u0916\3\2\2\2\u0913\u0914\7\u023e\2\2\u0914" + + "\u0915\7\u0319\2\2\u0915\u0917\5\u01cc\u00e7\2\u0916\u0913\3\2\2\2\u0916" + + "\u0917\3\2\2\2\u0917\u091b\3\2\2\2\u0918\u0919\7\u00c6\2\2\u0919\u091a" + + "\7\u0319\2\2\u091a\u091c\5\u01cc\u00e7\2\u091b\u0918\3\2\2\2\u091b\u091c" + + "\3\2\2\2\u091c\u0920\3\2\2\2\u091d\u091e\7\u02b6\2\2\u091e\u091f\7\u0319" + + "\2\2\u091f\u0921\5\u01cc\u00e7\2\u0920\u091d\3\2\2\2\u0920\u0921\3\2\2" + + "\2\u0921\u0925\3\2\2\2\u0922\u0923\7\u02b7\2\2\u0923\u0924\7\u0319\2\2" + + "\u0924\u0926\5\u01cc\u00e7\2\u0925\u0922\3\2\2\2\u0925\u0926\3\2\2\2\u0926" + + "\u092a\3\2\2\2\u0927\u0928\7\u023c\2\2\u0928\u0929\7\u0319\2\2\u0929\u092b" + + "\5\u01cc\u00e7\2\u092a\u0927\3\2\2\2\u092a\u092b\3\2\2\2\u092b\u092f\3" + + "\2\2\2\u092c\u092d\7\u02ba\2\2\u092d\u092e\7\u0319\2\2\u092e\u0930\5\u01cc" + + "\u00e7\2\u092f\u092c\3\2\2\2\u092f\u0930\3\2\2\2\u0930\u0935\3\2\2\2\u0931" + + "\u0932\7m\2\2\u0932\u0933\7\u0138\2\2\u0933\u0934\7\u0319\2\2\u0934\u0936" + + "\7\u0307\2\2\u0935\u0931\3\2\2\2\u0935\u0936\3\2\2\2\u0936\u093a\3\2\2" + + "\2\u0937\u0938\7\u02bb\2\2\u0938\u0939\7\u0319\2\2\u0939\u093b\7\u0307" + + "\2\2\u093a\u0937\3\2\2\2\u093a\u093b\3\2\2\2\u093b\u0081\3\2\2\2\u093c" + + "\u093d\7o\2\2\u093d\u093f\5\u01cc\u00e7\2\u093e\u093c\3\2\2\2\u093e\u093f" + + "\3\2\2\2\u093f\u0948\3\2\2\2\u0940\u0941\7\u016f\2\2\u0941\u0949\7\u0174" + + "\2\2\u0942\u0949\7\u0174\2\2\u0943\u0944\7P\2\2\u0944\u0945\7\u0300\2" + + "\2\u0945\u0946\5\u01b2\u00da\2\u0946\u0947\7\u0301\2\2\u0947\u0949\3\2" + + "\2\2\u0948\u0940\3\2\2\2\u0948\u0942\3\2\2\2\u0948\u0943\3\2\2\2\u0949" + + "\u0083\3\2\2\2\u094a\u094b\7\u0080\2\2\u094b\u094c\7\u00bc\2\2\u094c\u094e" + + "\5\u01cc\u00e7\2\u094d\u094f\7\35\2\2\u094e\u094d\3\2\2\2\u094e\u094f" + + "\3\2\2\2\u094f\u0950\3\2\2\2\u0950\u0958\5\u01d8\u00ed\2\u0951\u0952\7" + + "Z\2\2\u0952\u0957\5\u01cc\u00e7\2\u0953\u0954\7\u009d\2\2\u0954\u0957" + + "\5\u01b2\u00da\2\u0955\u0957\5\u0082B\2\u0956\u0951\3\2\2\2\u0956\u0953" + + "\3\2\2\2\u0956\u0955\3\2\2\2\u0957\u095a\3\2\2\2\u0958\u0956\3\2\2\2\u0958" + + "\u0959\3\2\2\2\u0959\u0085\3\2\2\2\u095a\u0958\3\2\2\2\u095b\u095c\5\u0202" + + "\u0102\2\u095c\u095d\7\u010b\2\2\u095d\u095e\7\u0300\2\2\u095e\u0963\7" + + "\u030a\2\2\u095f\u0960\7\u02fa\2\2\u0960\u0962\7\u030a\2\2\u0961\u095f" + + "\3\2\2\2\u0962\u0965\3\2\2\2\u0963\u0961\3\2\2\2\u0963\u0964\3\2\2\2\u0964" + + "\u0966\3\2\2\2\u0965\u0963\3\2\2\2\u0966\u096b\7\u0301\2\2\u0967\u0968" + + "\7\31\2\2\u0968\u096a\5\u0086D\2\u0969\u0967\3\2\2\2\u096a\u096d\3\2\2" + + "\2\u096b\u0969\3\2\2\2\u096b\u096c\3\2\2\2\u096c\u0087\3\2\2\2\u096d\u096b" + + "\3\2\2\2\u096e\u096f\7\u0080\2\2\u096f\u0970\7\u02bc\2\2\u0970\u0971\7" + + "\u0256\2\2\u0971\u0972\5\u0202\u0102\2\u0972\u0973\7\u0182\2\2\u0973\u0976" + + "\5\u0202\u0102\2\u0974\u0975\7\u0283\2\2\u0975\u0977\5\u0086D\2\u0976" + + "\u0974\3\2\2\2\u0976\u0977\3\2\2\2\u0977\u0978\3\2\2\2\u0978\u0979\7\u00d3" + + "\2\2\u0979\u097a\7\u01ba\2\2\u097a\u097b\5\u0202\u0102\2\u097b\u097c\7" + + "\u0300\2\2\u097c\u097d\7\u0301\2\2\u097d\u0089\3\2\2\2\u097e\u097f\5\u01cc" + + "\u00e7\2\u097f\u0984\7\u030a\2\2\u0980\u0981\7\u02fa\2\2\u0981\u0983\5" + + "\u008aF\2\u0982\u0980\3\2\2\2\u0983\u0986\3\2\2\2\u0984\u0982\3\2\2\2" + + "\u0984\u0985\3\2\2\2\u0985\u008b\3\2\2\2\u0986\u0984\3\2\2\2\u0987\u0988" + + "\7\u0080\2\2\u0988\u0989\7\u00e7\2\2\u0989\u098a\7\u0093\2\2\u098a\u098b" + + "\7\u02bd\2\2\u098b\u0992\5\u0202\u0102\2\u098c\u098d\7\u00fe\2\2\u098d" + + "\u0991\5\u0202\u0102\2\u098e\u098f\7\u0169\2\2\u098f\u0991\7\u00fe\2\2" + + "\u0990\u098c\3\2\2\2\u0990\u098e\3\2\2\2\u0991\u0994\3\2\2\2\u0992\u0990" + + "\3\2\2\2\u0992\u0993\3\2\2\2\u0993\u0999\3\2\2\2\u0994\u0992\3\2\2\2\u0995" + + "\u0996\7\u0277\2\2\u0996\u099a\5\u0202\u0102\2\u0997\u0998\7\u0169\2\2" + + "\u0998\u099a\7\u0277\2\2\u0999\u0995\3\2\2\2\u0999\u0997\3\2\2\2\u0999" + + "\u099a\3\2\2\2\u099a\u09a0\3\2\2\2\u099b\u099c\7\u0188\2\2\u099c\u099d" + + "\7\u0300\2\2\u099d\u099e\5\u008aF\2\u099e\u099f\7\u0301\2\2\u099f\u09a1" + + "\3\2\2\2\u09a0\u099b\3\2\2\2\u09a0\u09a1\3\2\2\2\u09a1\u008d\3\2\2\2\u09a2" + + "\u09a3\7\u0080\2\2\u09a3\u09a4\7\u00e7\2\2\u09a4\u09a8\7\u0239\2\2\u09a5" + + "\u09a6\7\u02b4\2\2\u09a6\u09a7\7\u016f\2\2\u09a7\u09a9\7\u00d5\2\2\u09a8" + + "\u09a5\3\2\2\2\u09a8\u09a9\3\2\2\2\u09a9\u09aa\3\2\2\2\u09aa\u09ab\5\u0202" + + "\u0102\2\u09ab\u09ac\7\u0300\2\2\u09ac\u09ad\5\u0202\u0102\2\u09ad\u09b3" + + "\5\u0202\u0102\2\u09ae\u09af\7\u0188\2\2\u09af\u09b0\7\u0300\2\2\u09b0" + + "\u09b1\5\u008aF\2\u09b1\u09b2\7\u0301\2\2\u09b2\u09b4\3\2\2\2\u09b3\u09ae" + + "\3\2\2\2\u09b3\u09b4\3\2\2\2\u09b4\u09b7\3\2\2\2\u09b5\u09b6\7Z\2\2\u09b6" + + "\u09b8\5x=\2\u09b7\u09b5\3\2\2\2\u09b7\u09b8\3\2\2\2\u09b8\u09b9\3\2\2" + + "\2\u09b9\u09bc\7\u0301\2\2\u09ba\u09bb\7\u0111\2\2\u09bb\u09bd\5\u01ce" + + "\u00e8\2\u09bc\u09ba\3\2\2\2\u09bc\u09bd\3\2\2\2\u09bd\u09be\3\2\2\2\u09be" + + "\u09bf\7\u02be\2\2\u09bf\u09c5\5\u01cc\u00e7\2\u09c0\u09c1\7\u0188\2\2" + + "\u09c1\u09c2\7\u0300\2\2\u09c2\u09c3\5\u008aF\2\u09c3\u09c4\7\u0301\2" + + "\2\u09c4\u09c6\3\2\2\2\u09c5\u09c0\3\2\2\2\u09c5\u09c6\3\2\2\2\u09c6\u008f" + + "\3\2\2\2\u09c7\u09ca\7\u0080\2\2\u09c8\u09c9\7\u0189\2\2\u09c9\u09cb\7" + + "\u01d8\2\2\u09ca\u09c8\3\2\2\2\u09ca\u09cb\3\2\2\2\u09cb\u09cc\3\2\2\2" + + "\u09cc\u09cd\7\u00f0\2\2\u09cd\u09ce\5\u01cc\u00e7\2\u09ce\u0091\3\2\2" + + "\2\u09cf\u09d0\7\u0080\2\2\u09d0\u09d1\7\u00fc\2\2\u09d1\u09fb\5\u0202" + + "\u0102\2\u09d2\u09d4\7\u0288\2\2\u09d3\u09d2\3\2\2\2\u09d3\u09d4\3\2\2" + + "\2\u09d4\u09f7\3\2\2\2\u09d5\u09f8\7\u0291\2\2\u09d6\u09f8\7\u0292\2\2" + + "\u09d7\u09f8\7\u0081\2\2\u09d8\u09f8\7\u016a\2\2\u09d9\u09f8\7\u0293\2" + + "\2\u09da\u09f8\7\u0294\2\2\u09db\u09f8\7\u0082\2\2\u09dc\u09f8\7\u016b" + + "\2\2\u09dd\u09f8\7\u0295\2\2\u09de\u09f8\7\u0296\2\2\u09df\u09f8\7\u0297" + + "\2\2\u09e0\u09f8\7\u0298\2\2\u09e1\u09e3\t\n\2\2\u09e2\u09e1\3\2\2\2\u09e2" + + "\u09e3\3\2\2\2\u09e3\u09e4\3\2\2\2\u09e4\u09e5\7\u01a3\2\2\u09e5\u09f8" + + "\t\13\2\2\u09e6\u09e7\7\u0275\2\2\u09e7\u09e8\7\u026a\2\2\u09e8\u09f8" + + "\7\u030a\2\2\u09e9\u09ea\7\u010b\2\2\u09ea\u09eb\7\u01e7\2\2\u09eb\u09f8" + + "\5\u01ce\u00e8\2\u09ec\u09ed\7\u010b\2\2\u09ed\u09ee\7\u00fc\2\2\u09ee" + + "\u09f8\5\u01ce\u00e8\2\u09ef\u09f0\7\u01e7\2\2\u09f0\u09f8\5\u01ce\u00e8" + + "\2\u09f1\u09f2\7\16\2\2\u09f2\u09f8\5\u01ce\u00e8\2\u09f3\u09f4\7\u026e" + + "\2\2\u09f4\u09f8\5\u01ce\u00e8\2\u09f5\u09f6\7\u0236\2\2\u09f6\u09f8\7" + + "\u0307\2\2\u09f7\u09d5\3\2\2\2\u09f7\u09d6\3\2\2\2\u09f7\u09d7\3\2\2\2" + + "\u09f7\u09d8\3\2\2\2\u09f7\u09d9\3\2\2\2\u09f7\u09da\3\2\2\2\u09f7\u09db" + + "\3\2\2\2\u09f7\u09dc\3\2\2\2\u09f7\u09dd\3\2\2\2\u09f7\u09de\3\2\2\2\u09f7" + + "\u09df\3\2\2\2\u09f7\u09e0\3\2\2\2\u09f7\u09e2\3\2\2\2\u09f7\u09e6\3\2" + + "\2\2\u09f7\u09e9\3\2\2\2\u09f7\u09ec\3\2\2\2\u09f7\u09ef\3\2\2\2\u09f7" + + "\u09f1\3\2\2\2\u09f7\u09f3\3\2\2\2\u09f7\u09f5\3\2\2\2\u09f8\u09f9\3\2" + + "\2\2\u09f9\u09f7\3\2\2\2\u09f9\u09fa\3\2\2\2\u09fa\u09fc\3\2\2\2\u09fb" + + "\u09d3\3\2\2\2\u09fb\u09fc\3\2\2\2\u09fc\u0093\3\2\2\2\u09fd\u09ff\7\u0080" + + "\2\2\u09fe\u0a00\7\u0265\2\2\u09ff\u09fe\3\2\2\2\u09ff\u0a00\3\2\2\2\u0a00" + + "\u0a01\3\2\2\2\u0a01\u0a03\7\u010e\2\2\u0a02\u0a04\7\u02c5\2\2\u0a03\u0a02" + + "\3\2\2\2\u0a03\u0a04\3\2\2\2\u0a04\u0a0b\3\2\2\2\u0a05\u0a06\7\u02b4\2" + + "\2\u0a06\u0a07\7\u016f\2\2\u0a07\u0a09\7\u00d5\2\2\u0a08\u0a05\3\2\2\2" + + "\u0a08\u0a09\3\2\2\2\u0a09\u0a0a\3\2\2\2\u0a0a\u0a0c\5\u0202\u0102\2\u0a0b" + + "\u0a08\3\2\2\2\u0a0b\u0a0c\3\2\2\2\u0a0c\u0a0d\3\2\2\2\u0a0d\u0a0e\7\u0182" + + "\2\2\u0a0e\u0a11\5\u0202\u0102\2\u0a0f\u0a10\7\u0273\2\2\u0a10\u0a12\5" + + "\u01dc\u00ef\2\u0a11\u0a0f\3\2\2\2\u0a11\u0a12\3\2\2\2\u0a12\u0a15\3\2" + + "\2\2\u0a13\u0a14\7\u023c\2\2\u0a14\u0a16\5\u0202\u0102\2\u0a15\u0a13\3" + + "\2\2\2\u0a15\u0a16\3\2\2\2\u0a16\u0a19\3\2\2\2\u0a17\u0a18\7\u0285\2\2" + + "\u0a18\u0a1a\5\u01ec\u00f7\2\u0a19\u0a17\3\2\2\2\u0a19\u0a1a\3\2\2\2\u0a1a" + + "\u0095\3\2\2\2\u0a1b\u0a1e\7\u0080\2\2\u0a1c\u0a1d\7\u0189\2\2\u0a1d\u0a1f" + + "\7\u01d8\2\2\u0a1e\u0a1c\3\2\2\2\u0a1e\u0a1f\3\2\2\2\u0a1f\u0a21\3\2\2" + + "\2\u0a20\u0a22\7\u01b9\2\2\u0a21\u0a20\3\2\2\2\u0a21\u0a22\3\2\2\2\u0a22" + + "\u0a23\3\2\2\2\u0a23\u0a24\7\u012d\2\2\u0a24\u0a3d\5\u0202\u0102\2\u0a25" + + "\u0a28\7\u0080\2\2\u0a26\u0a27\7\u0189\2\2\u0a27\u0a29\7\u01d8\2\2\u0a28" + + "\u0a26\3\2\2\2\u0a28\u0a29\3\2\2\2\u0a29\u0a2b\3\2\2\2\u0a2a\u0a2c\7\u025d" + + "\2\2\u0a2b\u0a2a\3\2\2\2\u0a2b\u0a2c\3\2\2\2\u0a2c\u0a2e\3\2\2\2\u0a2d" + + "\u0a2f\7\u01b9\2\2\u0a2e\u0a2d\3\2\2\2\u0a2e\u0a2f\3\2\2\2\u0a2f\u0a30" + + "\3\2\2\2\u0a30\u0a31\7\u012d\2\2\u0a31\u0a32\5\u0202\u0102\2\u0a32\u0a33" + + "\7\u00fe\2\2\u0a33\u0a36\5\u0202\u0102\2\u0a34\u0a35\7\u02c6\2\2\u0a35" + + "\u0a37\5\u0202\u0102\2\u0a36\u0a34\3\2\2\2\u0a36\u0a37\3\2\2\2\u0a37\u0a3a" + + "\3\2\2\2\u0a38\u0a39\7\u0277\2\2\u0a39\u0a3b\5\u0202\u0102\2\u0a3a\u0a38" + + "\3\2\2\2\u0a3a\u0a3b\3\2\2\2\u0a3b\u0a3d\3\2\2\2\u0a3c\u0a1b\3\2\2\2\u0a3c" + + "\u0a25\3\2\2\2\u0a3d\u0097\3\2\2\2\u0a3e\u0a3f\7\u0080\2\2\u0a3f\u0a40" + + "\7\u02c7\2\2\u0a40\u0a44\7\u0281\2\2\u0a41\u0a42\7\u02b4\2\2\u0a42\u0a43" + + "\7\u016f\2\2\u0a43\u0a45\7\u00d5\2\2\u0a44\u0a41\3\2\2\2\u0a44\u0a45\3" + + "\2\2\2\u0a45\u0a46\3\2\2\2\u0a46\u0a4b\5\u0202\u0102\2\u0a47\u0a48\7\u0300" + + "\2\2\u0a48\u0a49\5\u01d0\u00e9\2\u0a49\u0a4a\7\u0301\2\2\u0a4a\u0a4c\3" + + "\2\2\2\u0a4b\u0a47\3\2\2\2\u0a4b\u0a4c\3\2\2\2\u0a4c\u0a4e\3\2\2\2\u0a4d" + + "\u0a4f\7\u0288\2\2\u0a4e\u0a4d\3\2\2\2\u0a4e\u0a4f\3\2\2\2\u0a4f\u0a52" + + "\3\2\2\2\u0a50\u0a51\7\u023c\2\2\u0a51\u0a53\5\u0202\u0102\2\u0a52\u0a50" + + "\3\2\2\2\u0a52\u0a53\3\2\2\2\u0a53\u0a54\3\2\2\2\u0a54\u0a55\7\35\2\2" + + "\u0a55\u0a5b\5\u015a\u00ae\2\u0a56\u0a58\7\u0288\2\2\u0a57\u0a59\7\u0169" + + "\2\2\u0a58\u0a57\3\2\2\2\u0a58\u0a59\3\2\2\2\u0a59\u0a5a\3\2\2\2\u0a5a" + + "\u0a5c\7\u0093\2\2\u0a5b\u0a56\3\2\2\2\u0a5b\u0a5c\3\2\2\2\u0a5c\u0099" + + "\3\2\2\2\u0a5d\u0a5e\7\u0080\2\2\u0a5e\u0a5f\7\u0186\2\2\u0a5f\u0a60\5" + + "\u0202\u0102\2\u0a60\u0a61\7\u0300\2\2\u0a61\u0a62\7\u01ba\2\2\u0a62\u0a63" + + "\7\u0319\2\2\u0a63\u0a68\5\u0202\u0102\2\u0a64\u0a65\7\u02fa\2\2\u0a65" + + "\u0a66\7\u02c8\2\2\u0a66\u0a67\7\u0319\2\2\u0a67\u0a69\5\u01cc\u00e7\2" + + "\u0a68\u0a64\3\2\2\2\u0a68\u0a69\3\2\2\2\u0a69\u0a6e\3\2\2\2\u0a6a\u0a6b" + + "\7\u02fa\2\2\u0a6b\u0a6c\7\u02c9\2\2\u0a6c\u0a6d\7\u0319\2\2\u0a6d\u0a6f" + + "\5\u01cc\u00e7\2\u0a6e\u0a6a\3\2\2\2\u0a6e\u0a6f\3\2\2\2\u0a6f\u0a74\3" + + "\2\2\2\u0a70\u0a71\7\u02fa\2\2\u0a71\u0a72\7\u02ca\2\2\u0a72\u0a73\7\u0319" + + "\2\2\u0a73\u0a75\5\u01cc\u00e7\2\u0a74\u0a70\3\2\2\2\u0a74\u0a75\3\2\2" + + "\2\u0a75\u0a7a\3\2\2\2\u0a76\u0a77\7\u02fa\2\2\u0a77\u0a78\7\u02cb\2\2" + + "\u0a78\u0a79\7\u0319\2\2\u0a79\u0a7b\5\u01cc\u00e7\2\u0a7a\u0a76\3\2\2" + + "\2\u0a7a\u0a7b\3\2\2\2\u0a7b\u0a80\3\2\2\2\u0a7c\u0a7d\7\u02fa\2\2\u0a7d" + + "\u0a7e\7\u01dc\2\2\u0a7e\u0a7f\7\u0319\2\2\u0a7f\u0a81\5\u01cc\u00e7\2" + + "\u0a80\u0a7c\3\2\2\2\u0a80\u0a81\3\2\2\2\u0a81\u0a86\3\2\2\2\u0a82\u0a83" + + "\7\u02fa\2\2\u0a83\u0a84\7\u0126\2\2\u0a84\u0a85\7\u0319\2\2\u0a85\u0a87" + + "\5\u01cc\u00e7\2\u0a86\u0a82\3\2\2\2\u0a86\u0a87\3\2\2\2\u0a87\u0a8a\3" + + "\2\2\2\u0a88\u0a89\7\u02fa\2\2\u0a89\u0a8b\7\u02cc\2\2\u0a8a\u0a88\3\2" + + "\2\2\u0a8a\u0a8b\3\2\2\2\u0a8b\u0a8e\3\2\2\2\u0a8c\u0a8d\7\u02fa\2\2\u0a8d" + + "\u0a8f\7\u02cd\2\2\u0a8e\u0a8c\3\2\2\2\u0a8e\u0a8f\3\2\2\2\u0a8f\u0a90" + + "\3\2\2\2\u0a90\u0a91\7\u0301\2\2\u0a91\u009b\3\2\2\2\u0a92\u0a93\7\u0186" + + "\2\2\u0a93\u0a94\7\u0307\2\2\u0a94\u0a9b\5\u0202\u0102\2\u0a95\u0a96\7" + + "\u0300\2\2\u0a96\u0a97\5\u0202\u0102\2\u0a97\u0a98\7\u02fa\2\2\u0a98\u0a99" + + "\5\u0202\u0102\2\u0a99\u0a9a\7\u0301\2\2\u0a9a\u0a9c\3\2\2\2\u0a9b\u0a95" + + "\3\2\2\2\u0a9b\u0a9c\3\2\2\2\u0a9c\u0ab1\3\2\2\2\u0a9d\u0a9e\7\u00f0\2" + + "\2\u0a9e\u0aa7\7\u0307\2\2\u0a9f\u0aa0\7\u0300\2\2\u0aa0\u0aa3\5\u0202" + + "\u0102\2\u0aa1\u0aa2\7\u02fa\2\2\u0aa2\u0aa4\5\u0202\u0102\2\u0aa3\u0aa1" + + "\3\2\2\2\u0aa3\u0aa4\3\2\2\2\u0aa4\u0aa5\3\2\2\2\u0aa5\u0aa6\7\u0301\2" + + "\2\u0aa6\u0aa8\3\2\2\2\u0aa7\u0a9f\3\2\2\2\u0aa7\u0aa8\3\2\2\2\u0aa8\u0aa9" + + "\3\2\2\2\u0aa9\u0aaa\5\u0202\u0102\2\u0aaa\u0aab\7\u0300\2\2\u0aab\u0aac" + + "\5\u01da\u00ee\2\u0aac\u0aad\7\u0301\2\2\u0aad\u0ab1\3\2\2\2\u0aae\u0aaf" + + "\7\u022b\2\2\u0aaf\u0ab1\5\u0202\u0102\2\u0ab0\u0a92\3\2\2\2\u0ab0\u0a9d" + + "\3\2\2\2\u0ab0\u0aae\3\2\2\2\u0ab1\u009d\3\2\2\2\u0ab2\u0ab3\7\u0080\2" + + "\2\u0ab3\u0ab4\7\u0186\2\2\u0ab4\u0ab5\7S\2\2\u0ab5\u0ab7\5\u0202\u0102" + + "\2\u0ab6\u0ab8\7\u009d\2\2\u0ab7\u0ab6\3\2\2\2\u0ab7\u0ab8\3\2\2\2\u0ab8" + + "\u0ab9\3\2\2\2\u0ab9\u0aba\7\u00e5\2\2\u0aba\u0abb\7\u025e\2\2\u0abb\u0abc" + + "\5\u0202\u0102\2\u0abc\u0abd\7\u0273\2\2\u0abd\u0ac0\5\u01dc\u00ef\2\u0abe" + + "\u0abf\7\u02ce\2\2\u0abf\u0ac1\5\u0202\u0102\2\u0ac0\u0abe\3\2\2\2\u0ac0" + + "\u0ac1\3\2\2\2\u0ac1\u0ac2\3\2\2\2\u0ac2\u0ac3\7\35\2\2\u0ac3\u0ac8\5" + + "\u009cO\2\u0ac4\u0ac5\7\u02fa\2\2\u0ac5\u0ac7\5\u009cO\2\u0ac6\u0ac4\3" + + "\2\2\2\u0ac7\u0aca\3\2\2\2\u0ac8\u0ac6\3\2\2\2\u0ac8\u0ac9\3\2\2\2\u0ac9" + + "\u009f\3\2\2\2\u0aca\u0ac8\3\2\2\2\u0acb\u0acc\7\u0080\2\2\u0acc\u0acd" + + "\7\u0186\2\2\u0acd\u0ace\7\u02ce\2\2\u0ace\u0acf\5\u0202\u0102\2\u0acf" + + "\u0ad0\7\u0273\2\2\u0ad0\u0ad1\5\u01dc\u00ef\2\u0ad1\u00a1\3\2\2\2\u0ad2" + + "\u0ad3\7\u0080\2\2\u0ad3\u0ad4\7\u02cf\2\2\u0ad4\u0ad5\5\u0202\u0102\2" + + "\u0ad5\u0ad6\7\u0182\2\2\u0ad6\u0ad9\5\u0202\u0102\2\u0ad7\u0ad8\7\u00e5" + + "\2\2\u0ad8\u0ada\t\f\2\2\u0ad9\u0ad7\3\2\2\2\u0ad9\u0ada\3\2\2\2\u0ada" + + "\u0add\3\2\2\2\u0adb\u0adc\7\u0249\2\2\u0adc\u0ade\5\u01fa\u00fe\2\u0add" + + "\u0adb\3\2\2\2\u0add\u0ade\3\2\2\2\u0ade\u0ae4\3\2\2\2\u0adf\u0ae0\7\u0273" + + "\2\2\u0ae0\u0ae1\7\u0300\2\2\u0ae1\u0ae2\5\u01ec\u00f7\2\u0ae2\u0ae3\7" + + "\u0301\2\2\u0ae3\u0ae5\3\2\2\2\u0ae4\u0adf\3\2\2\2\u0ae4\u0ae5\3\2\2\2" + + "\u0ae5\u0aec\3\2\2\2\u0ae6\u0ae7\7\u0288\2\2\u0ae7\u0ae8\7P\2\2\u0ae8" + + "\u0ae9\7\u0300\2\2\u0ae9\u0aea\5\u01ec\u00f7\2\u0aea\u0aeb\7\u0301\2\2" + + "\u0aeb\u0aed\3\2\2\2\u0aec\u0ae6\3\2\2\2\u0aec\u0aed\3\2\2\2\u0aed\u00a3" + + "\3\2\2\2\u0aee\u0aef\7\u0080\2\2\u0aef\u0af0\7\u01e7\2\2\u0af0\u0b1f\5" + + "\u01fa\u00fe\2\u0af1\u0af3\7\u0288\2\2\u0af2\u0af1\3\2\2\2\u0af2\u0af3" + + "\3\2\2\2\u0af3\u0b1b\3\2\2\2\u0af4\u0b1c\7\u0291\2\2\u0af5\u0b1c\7\u0292" + + "\2\2\u0af6\u0b1c\7\u0081\2\2\u0af7\u0b1c\7\u016a\2\2\u0af8\u0b1c\7\u0293" + + "\2\2\u0af9\u0b1c\7\u0294\2\2\u0afa\u0b1c\7\u0295\2\2\u0afb\u0b1c\7\u0296" + + "\2\2\u0afc\u0b1c\7\u0297\2\2\u0afd\u0b1c\7\u0298\2\2\u0afe\u0b1c\7\u0299" + + "\2\2\u0aff\u0b1c\7\u029a\2\2\u0b00\u0b1c\7\u029b\2\2\u0b01\u0b1c\7\u029c" + + "\2\2\u0b02\u0b03\7m\2\2\u0b03\u0b04\7\u0138\2\2\u0b04\u0b1c\7\u0307\2" + + "\2\u0b05\u0b07\7\u00c7\2\2\u0b06\u0b05\3\2\2\2\u0b06\u0b07\3\2\2\2\u0b07" + + "\u0b08\3\2\2\2\u0b08\u0b09\7\u01a3\2\2\u0b09\u0b1c\t\13\2\2\u0b0a\u0b0b" + + "\7\u0275\2\2\u0b0b\u0b0c\7\u026a\2\2\u0b0c\u0b1c\7\u030a\2\2\u0b0d\u0b0e" + + "\7\u010b\2\2\u0b0e\u0b0f\7\u01e7\2\2\u0b0f\u0b1c\5\u01ce\u00e8\2\u0b10" + + "\u0b11\7\u010b\2\2\u0b11\u0b12\7\u00fc\2\2\u0b12\u0b1c\5\u01ce\u00e8\2" + + "\u0b13\u0b14\7\u01e7\2\2\u0b14\u0b1c\5\u01ce\u00e8\2\u0b15\u0b16\7\16" + + "\2\2\u0b16\u0b1c\5\u01ce\u00e8\2\u0b17\u0b18\7\u026e\2\2\u0b18\u0b1c\5" + + "\u01ce\u00e8\2\u0b19\u0b1a\7\u0236\2\2\u0b1a\u0b1c\7\u0307\2\2\u0b1b\u0af4" + + "\3\2\2\2\u0b1b\u0af5\3\2\2\2\u0b1b\u0af6\3\2\2\2\u0b1b\u0af7\3\2\2\2\u0b1b" + + "\u0af8\3\2\2\2\u0b1b\u0af9\3\2\2\2\u0b1b\u0afa\3\2\2\2\u0b1b\u0afb\3\2" + + "\2\2\u0b1b\u0afc\3\2\2\2\u0b1b\u0afd\3\2\2\2\u0b1b\u0afe\3\2\2\2\u0b1b" + + "\u0aff\3\2\2\2\u0b1b\u0b00\3\2\2\2\u0b1b\u0b01\3\2\2\2\u0b1b\u0b02\3\2" + + "\2\2\u0b1b\u0b06\3\2\2\2\u0b1b\u0b0a\3\2\2\2\u0b1b\u0b0d\3\2\2\2\u0b1b" + + "\u0b10\3\2\2\2\u0b1b\u0b13\3\2\2\2\u0b1b\u0b15\3\2\2\2\u0b1b\u0b17\3\2" + + "\2\2\u0b1b\u0b19\3\2\2\2\u0b1c\u0b1d\3\2\2\2\u0b1d\u0b1b\3\2\2\2\u0b1d" + + "\u0b1e\3\2\2\2\u0b1e\u0b20\3\2\2\2\u0b1f\u0af2\3\2\2\2\u0b1f\u0b20\3\2" + + "\2\2\u0b20\u00a5\3\2\2\2\u0b21\u0b22\t\r\2\2\u0b22\u00a7\3\2\2\2\u0b23" + + "\u0b26\7\u0080\2\2\u0b24\u0b25\7\u0189\2\2\u0b25\u0b27\7\u01d8\2\2\u0b26" + + "\u0b24\3\2\2\2\u0b26\u0b27\3\2\2\2\u0b27\u0b28\3\2\2\2\u0b28\u0b29\7\u01f2" + + "\2\2\u0b29\u0b2a\5\u01cc\u00e7\2\u0b2a\u0b2b\7\35\2\2\u0b2b\u0b2c\7\u0182" + + "\2\2\u0b2c\u0b2d\5\u00a6T\2\u0b2d\u0b2e\7\u0249\2\2\u0b2e\u0b31\5\u0202" + + "\u0102\2\u0b2f\u0b30\7\u0285\2\2\u0b30\u0b32\5\u01ec\u00f7\2\u0b31\u0b2f" + + "\3\2\2\2\u0b31\u0b32\3\2\2\2\u0b32\u0b33\3\2\2\2\u0b33\u0b35\7\u00bb\2" + + "\2\u0b34\u0b36\t\16\2\2\u0b35\u0b34\3\2\2\2\u0b35\u0b36\3\2\2\2\u0b36" + + "\u0b39\3\2\2\2\u0b37\u0b3a\7\u0170\2\2\u0b38\u0b3a\5\u0202\u0102\2\u0b39" + + "\u0b37\3\2\2\2\u0b39\u0b38\3\2\2\2\u0b3a\u00a9\3\2\2\2\u0b3b\u0b3c\7\u0080" + + "\2\2\u0b3c\u0b3d\7\u01f5\2\2\u0b3d\u0b40\5\u0202\u0102\2\u0b3e\u0b3f\7" + + "\'\2\2\u0b3f\u0b41\5\u01fa\u00fe\2\u0b40\u0b3e\3\2\2\2\u0b40\u0b41\3\2" + + "\2\2\u0b41\u0b43\3\2\2\2\u0b42\u0b44\5\u0204\u0103\2\u0b43\u0b42\3\2\2" + + "\2\u0b43\u0b44\3\2\2\2\u0b44\u0b5e\3\2\2\2\u0b45\u0b46\7\u0080\2\2\u0b46" + + "\u0b47\7\u01f5\2\2\u0b47\u0b48\7\'\2\2\u0b48\u0b4a\5\u01fa\u00fe\2\u0b49" + + "\u0b4b\5\u0204\u0103\2\u0b4a\u0b49\3\2\2\2\u0b4a\u0b4b\3\2\2\2\u0b4b\u0b5e" + + "\3\2\2\2\u0b4c\u0b4d\7\u0080\2\2\u0b4d\u0b4e\7\u01f5\2\2\u0b4e\u0b4f\7" + + "\u02b4\2\2\u0b4f\u0b50\7\u016f\2\2\u0b50\u0b51\7\u00d5\2\2\u0b51\u0b54" + + "\5\u0202\u0102\2\u0b52\u0b53\7\'\2\2\u0b53\u0b55\5\u01fa\u00fe\2\u0b54" + + "\u0b52\3\2\2\2\u0b54\u0b55\3\2\2\2\u0b55\u0b5e\3\2\2\2\u0b56\u0b57\7\u0080" + + "\2\2\u0b57\u0b58\7\u01f5\2\2\u0b58\u0b59\7\u02b4\2\2\u0b59\u0b5a\7\u016f" + + "\2\2\u0b5a\u0b5b\7\u00d5\2\2\u0b5b\u0b5c\7\'\2\2\u0b5c\u0b5e\5\u01fa\u00fe" + + "\2\u0b5d\u0b3b\3\2\2\2\u0b5d\u0b45\3\2\2\2\u0b5d\u0b4c\3\2\2\2\u0b5d\u0b56" + + "\3\2\2\2\u0b5e\u00ab\3\2\2\2\u0b5f\u0b61\7\u0080\2\2\u0b60\u0b62\t\17" + + "\2\2\u0b61\u0b60\3\2\2\2\u0b61\u0b62\3\2\2\2\u0b62\u0b63\3\2\2\2\u0b63" + + "\u0b67\7\u0203\2\2\u0b64\u0b65\7\u02b4\2\2\u0b65\u0b66\7\u016f\2\2\u0b66" + + "\u0b68\7\u00d5\2\2\u0b67\u0b64\3\2\2\2\u0b67\u0b68\3\2\2\2\u0b68\u0b69" + + "\3\2\2\2\u0b69\u0b6f\5\u0202\u0102\2\u0b6a\u0b6c\7\u010d\2\2\u0b6b\u0b6d" + + "\78\2\2\u0b6c\u0b6b\3\2\2\2\u0b6c\u0b6d\3\2\2\2\u0b6d\u0b6e\3\2\2\2\u0b6e" + + "\u0b70\7\u0307\2\2\u0b6f\u0b6a\3\2\2\2\u0b6f\u0b70\3\2\2\2\u0b70\u0b75" + + "\3\2\2\2\u0b71\u0b72\7\u0155\2\2\u0b72\u0b76\7\u0307\2\2\u0b73\u0b74\7" + + "\u0169\2\2\u0b74\u0b76\7\u0155\2\2\u0b75\u0b71\3\2\2\2\u0b75\u0b73\3\2" + + "\2\2\u0b75\u0b76\3\2\2\2\u0b76\u0b7b\3\2\2\2\u0b77\u0b78\7\u014c\2\2\u0b78" + + "\u0b7c\7\u0307\2\2\u0b79\u0b7a\7\u0169\2\2\u0b7a\u0b7c\7\u014c\2\2\u0b7b" + + "\u0b77\3\2\2\2\u0b7b\u0b79\3\2\2\2\u0b7b\u0b7c\3\2\2\2\u0b7c\u0b82\3\2" + + "\2\2\u0b7d\u0b7f\7\u0222\2\2\u0b7e\u0b80\7\u0288\2\2\u0b7f\u0b7e\3\2\2" + + "\2\u0b7f\u0b80\3\2\2\2\u0b80\u0b81\3\2\2\2\u0b81\u0b83\7\u0307\2\2\u0b82" + + "\u0b7d\3\2\2\2\u0b82\u0b83\3\2\2\2\u0b83\u0b86\3\2\2\2\u0b84\u0b85\7:" + + "\2\2\u0b85\u0b87\7\u0307\2\2\u0b86\u0b84\3\2\2\2\u0b86\u0b87\3\2\2\2\u0b87" + + "\u0b8c\3\2\2\2\u0b88\u0b8a\7\u0169\2\2\u0b89\u0b88\3\2\2\2\u0b89\u0b8a" + + "\3\2\2\2\u0b8a\u0b8b\3\2\2\2\u0b8b\u0b8d\7\u0092\2\2\u0b8c\u0b89\3\2\2" + + "\2\u0b8c\u0b8d\3\2\2\2\u0b8d\u0b97\3\2\2\2\u0b8e\u0b8f\7\u02d0\2\2\u0b8f" + + "\u0b95\78\2\2\u0b90\u0b91\5\u0202\u0102\2\u0b91\u0b92\7\u0309\2\2\u0b92" + + "\u0b93\5\u0202\u0102\2\u0b93\u0b96\3\2\2\2\u0b94\u0b96\7\u016c\2\2\u0b95" + + "\u0b90\3\2\2\2\u0b95\u0b94\3\2\2\2\u0b96\u0b98\3\2\2\2\u0b97\u0b8e\3\2" + + "\2\2\u0b97\u0b98\3\2\2\2\u0b98\u00ad\3\2\2\2\u0b99\u0b9a\5\u0206\u0104" + + "\2\u0b9a\u00af\3\2\2\2\u0b9b\u0b9c\5\u0206\u0104\2\u0b9c\u00b1\3\2\2\2" + + "\u0b9d\u0b9e\5\u0206\u0104\2\u0b9e\u00b3\3\2\2\2\u0b9f\u0ba0\5\u0206\u0104" + + "\2\u0ba0\u00b5\3\2\2\2\u0ba1\u0ba2\5\u0206\u0104\2\u0ba2\u00b7\3\2\2\2" + + "\u0ba3\u0ba4\5\u0206\u0104\2\u0ba4\u00b9\3\2\2\2\u0ba5\u0ba6\5\u0206\u0104" + + "\2\u0ba6\u00bb\3\2\2\2\u0ba7\u0ba8\5\u0206\u0104\2\u0ba8\u00bd\3\2\2\2" + + "\u0ba9\u0baa\5\u0206\u0104\2\u0baa\u00bf\3\2\2\2\u0bab\u0bac\5\u0206\u0104" + + "\2\u0bac\u00c1\3\2\2\2\u0bad\u0bae\5\u0206\u0104\2\u0bae\u00c3\3\2\2\2" + + "\u0baf\u0bb0\5\u0206\u0104\2\u0bb0\u00c5\3\2\2\2\u0bb1\u0bb2\5\u0206\u0104" + + "\2\u0bb2\u00c7\3\2\2\2\u0bb3\u0bb4\5\u0206\u0104\2\u0bb4\u00c9\3\2\2\2" + + "\u0bb5\u0bb6\5\u0206\u0104\2\u0bb6\u00cb\3\2\2\2\u0bb7\u0bba\7\u0080\2" + + "\2\u0bb8\u0bb9\7\u0189\2\2\u0bb9\u0bbb\7\u01d8\2\2\u0bba\u0bb8\3\2\2\2" + + "\u0bba\u0bbb\3\2\2\2\u0bbb\u0bbd\3\2\2\2\u0bbc\u0bbe\t\17\2\2\u0bbd\u0bbc" + + "\3\2\2\2\u0bbd\u0bbe\3\2\2\2\u0bbe\u0bc0\3\2\2\2\u0bbf\u0bc1\7\u01c5\2" + + "\2\u0bc0\u0bbf\3\2\2\2\u0bc0\u0bc1\3\2\2\2\u0bc1\u0bc2\3\2\2\2\u0bc2\u0bc3" + + "\7\u0281\2\2\u0bc3\u0bc8\5\u01cc\u00e7\2\u0bc4\u0bc5\7\u0300\2\2\u0bc5" + + "\u0bc6\5\u01ce\u00e8\2\u0bc6\u0bc7\7\u0301\2\2\u0bc7\u0bc9\3\2\2\2\u0bc8" + + "\u0bc4\3\2\2\2\u0bc8\u0bc9\3\2\2\2\u0bc9\u0bcf\3\2\2\2\u0bca\u0bcb\7\u0288" + + "\2\2\u0bcb\u0bcc\7\u0300\2\2\u0bcc\u0bcd\5\u01d4\u00eb\2\u0bcd\u0bce\7" + + "\u0301\2\2\u0bce\u0bd0\3\2\2\2\u0bcf\u0bca\3\2\2\2\u0bcf\u0bd0\3\2\2\2" + + "\u0bd0\u0bd1\3\2\2\2\u0bd1\u0bd4\7\35\2\2\u0bd2\u0bd5\5\u015a\u00ae\2" + + "\u0bd3\u0bd5\5\u017e\u00c0\2\u0bd4\u0bd2\3\2\2\2\u0bd4\u0bd3\3\2\2\2\u0bd5" + + "\u0bdc\3\2\2\2\u0bd6\u0bd8\7\u0288\2\2\u0bd7\u0bd9\t\20\2\2\u0bd8\u0bd7" + + "\3\2\2\2\u0bd8\u0bd9\3\2\2\2\u0bd9\u0bda\3\2\2\2\u0bda\u0bdb\7P\2\2\u0bdb" + + "\u0bdd\7\u0187\2\2\u0bdc\u0bd6\3\2\2\2\u0bdc\u0bdd\3\2\2\2\u0bdd\u00cd" + + "\3\2\2\2\u0bde\u0bdf\5\u0206\u0104\2\u0bdf\u00cf\3\2\2\2\u0be0\u0be1\5" + + "\u0206\u0104\2\u0be1\u00d1\3\2\2\2\u0be2\u0be4\5\u015e\u00b0\2\u0be3\u0be2" + + "\3\2\2\2\u0be3\u0be4\3\2\2\2\u0be4\u0be5\3\2\2\2\u0be5\u0be6\7\u00a5\2" + + "\2\u0be6\u0be8\7\u00ee\2\2\u0be7\u0be9\7\u0183\2\2\u0be8\u0be7\3\2\2\2" + + "\u0be8\u0be9\3\2\2\2\u0be9\u0bea\3\2\2\2\u0bea\u0bec\5\u01d6\u00ec\2\u0beb" + + "\u0bed\7\u02ff\2\2\u0bec\u0beb\3\2\2\2\u0bec\u0bed\3\2\2\2\u0bed\u0bf2" + + "\3\2\2\2\u0bee\u0bf0\7\35\2\2\u0bef\u0bee\3\2\2\2\u0bef\u0bf0\3\2\2\2" + + "\u0bf0\u0bf1\3\2\2\2\u0bf1\u0bf3\5\u020c\u0107\2\u0bf2\u0bef\3\2\2\2\u0bf2" + + "\u0bf3\3\2\2\2\u0bf3\u0bf6\3\2\2\2\u0bf4\u0bf5\7\u0273\2\2\u0bf5\u0bf7" + + "\5\u01d0\u00e9\2\u0bf6\u0bf4\3\2\2\2\u0bf6\u0bf7\3\2\2\2\u0bf7\u0bfd\3" + + "\2\2\2\u0bf8\u0bfe\5\u0184\u00c3\2\u0bf9\u0bfa\7\u0285\2\2\u0bfa\u0bfb" + + "\7\u0087\2\2\u0bfb\u0bfc\7\u017d\2\2\u0bfc\u0bfe\5\u0202\u0102\2\u0bfd" + + "\u0bf8\3\2\2\2\u0bfd\u0bf9\3\2\2\2\u0bfd\u0bfe\3\2\2\2\u0bfe\u0c00\3\2" + + "\2\2\u0bff\u0c01\5\u01b0\u00d9\2\u0c00\u0bff\3\2\2\2\u0c00\u0c01\3\2\2" + + "\2\u0c01\u00d3\3\2\2\2\u0c02\u0c03\7\u00b7\2\2\u0c03\u0c04\t\21\2\2\u0c04" + + "\u00d5\3\2\2\2\u0c05\u0c2f\5\u00d8m\2\u0c06\u0c2f\5\u00dan\2\u0c07\u0c2f" + + "\5\u00dco\2\u0c08\u0c2f\5\u00dep\2\u0c09\u0c2f\5\u00e0q\2\u0c0a\u0c2f" + + "\5\u00e2r\2\u0c0b\u0c2f\5\u00e4s\2\u0c0c\u0c2f\5\u00e6t\2\u0c0d\u0c2f" + + "\5\u00e8u\2\u0c0e\u0c2f\5\u00eav\2\u0c0f\u0c2f\5\u00ecw\2\u0c10\u0c2f" + + "\5\u00eex\2\u0c11\u0c2f\5\u00f0y\2\u0c12\u0c2f\5\u00f2z\2\u0c13\u0c2f" + + "\5\u00f4{\2\u0c14\u0c2f\5\u00f6|\2\u0c15\u0c2f\5\u00f8}\2\u0c16\u0c2f" + + "\5\u00fa~\2\u0c17\u0c2f\5\u00fc\177\2\u0c18\u0c2f\5\u00fe\u0080\2\u0c19" + + "\u0c2f\5\u0100\u0081\2\u0c1a\u0c2f\5\u0102\u0082\2\u0c1b\u0c2f\5\u0104" + + "\u0083\2\u0c1c\u0c2f\5\u0106\u0084\2\u0c1d\u0c2f\5\u0108\u0085\2\u0c1e" + + "\u0c2f\5\u010a\u0086\2\u0c1f\u0c2f\5\u010c\u0087\2\u0c20\u0c2f\5\u010e" + + "\u0088\2\u0c21\u0c2f\5\u0110\u0089\2\u0c22\u0c2f\5\u0112\u008a\2\u0c23" + + "\u0c2f\5\u0114\u008b\2\u0c24\u0c2f\5\u0116\u008c\2\u0c25\u0c2f\5\u0118" + + "\u008d\2\u0c26\u0c2f\5\u011a\u008e\2\u0c27\u0c2f\5\u011c\u008f\2\u0c28" + + "\u0c2f\5\u011e\u0090\2\u0c29\u0c2f\5\u0120\u0091\2\u0c2a\u0c2f\5\u0122" + + "\u0092\2\u0c2b\u0c2f\5\u0124\u0093\2\u0c2c\u0c2f\5\u0126\u0094\2\u0c2d" + + "\u0c2f\5\u0128\u0095\2\u0c2e\u0c05\3\2\2\2\u0c2e\u0c06\3\2\2\2\u0c2e\u0c07" + + "\3\2\2\2\u0c2e\u0c08\3\2\2\2\u0c2e\u0c09\3\2\2\2\u0c2e\u0c0a\3\2\2\2\u0c2e" + + "\u0c0b\3\2\2\2\u0c2e\u0c0c\3\2\2\2\u0c2e\u0c0d\3\2\2\2\u0c2e\u0c0e\3\2" + + "\2\2\u0c2e\u0c0f\3\2\2\2\u0c2e\u0c10\3\2\2\2\u0c2e\u0c11\3\2\2\2\u0c2e" + + "\u0c12\3\2\2\2\u0c2e\u0c13\3\2\2\2\u0c2e\u0c14\3\2\2\2\u0c2e\u0c15\3\2" + + "\2\2\u0c2e\u0c16\3\2\2\2\u0c2e\u0c17\3\2\2\2\u0c2e\u0c18\3\2\2\2\u0c2e" + + "\u0c19\3\2\2\2\u0c2e\u0c1a\3\2\2\2\u0c2e\u0c1b\3\2\2\2\u0c2e\u0c1c\3\2" + + "\2\2\u0c2e\u0c1d\3\2\2\2\u0c2e\u0c1e\3\2\2\2\u0c2e\u0c1f\3\2\2\2\u0c2e" + + "\u0c20\3\2\2\2\u0c2e\u0c21\3\2\2\2\u0c2e\u0c22\3\2\2\2\u0c2e\u0c23\3\2" + + "\2\2\u0c2e\u0c24\3\2\2\2\u0c2e\u0c25\3\2\2\2\u0c2e\u0c26\3\2\2\2\u0c2e" + + "\u0c27\3\2\2\2\u0c2e\u0c28\3\2\2\2\u0c2e\u0c29\3\2\2\2\u0c2e\u0c2a\3\2" + + "\2\2\u0c2e\u0c2b\3\2\2\2\u0c2e\u0c2c\3\2\2\2\u0c2e\u0c2d\3\2\2\2\u0c2f" + + "\u00d7\3\2\2\2\u0c30\u0c31\7\u00be\2\2\u0c31\u0c32\7\n\2\2\u0c32\u0c35" + + "\7\u0152\2\2\u0c33\u0c34\7\u02b4\2\2\u0c34\u0c36\7\u00d5\2\2\u0c35\u0c33" + + "\3\2\2\2\u0c35\u0c36\3\2\2\2\u0c36\u0c37\3\2\2\2\u0c37\u0c39\5\u0202\u0102" + + "\2\u0c38\u0c3a\t\3\2\2\u0c39\u0c38\3\2\2\2\u0c39\u0c3a\3\2\2\2\u0c3a\u00d9" + + "\3\2\2\2\u0c3b\u0c3c\7\u00be\2\2\u0c3c\u0c3f\7\20\2\2\u0c3d\u0c3e\7\u02b4" + + "\2\2\u0c3e\u0c40\7\u00d5\2\2\u0c3f\u0c3d\3\2\2\2\u0c3f\u0c40\3\2\2\2\u0c40" + + "\u0c41\3\2\2\2\u0c41\u0c42\5\u0202\u0102\2\u0c42\u0c43\7\u0300\2\2\u0c43" + + "\u0c44\5\u01ee\u00f8\2\u0c44\u0c45\7\u0301\2\2\u0c45\u00db\3\2\2\2\u0c46" + + "\u0c47\7\u00be\2\2\u0c47\u0c4a\7A\2\2\u0c48\u0c49\7\u02b4\2\2\u0c49\u0c4b" + + "\7\u00d5\2\2\u0c4a\u0c48\3\2\2\2\u0c4a\u0c4b\3\2\2\2\u0c4b\u0c4c\3\2\2" + + "\2\u0c4c\u0c4d\7\u0300\2\2\u0c4d\u0c4e\5\u01d8\u00ed\2\u0c4e\u0c4f\7\35" + + "\2\2\u0c4f\u0c50\5\u0202\u0102\2\u0c50\u0c52\7\u0301\2\2\u0c51\u0c53\t" + + "\3\2\2\u0c52\u0c51\3\2\2\2\u0c52\u0c53\3\2\2\2\u0c53\u00dd\3\2\2\2\u0c54" + + "\u0c55\7\u00be\2\2\u0c55\u0c58\7[\2\2\u0c56\u0c57\7\u02b4\2\2\u0c57\u0c59" + + "\7\u00d5\2\2\u0c58\u0c56\3\2\2\2\u0c58\u0c59\3\2\2\2\u0c59\u0c5a\3\2\2" + + "\2\u0c5a\u0c5c\5\u01d0\u00e9\2\u0c5b\u0c5d\t\3\2\2\u0c5c\u0c5b\3\2\2\2" + + "\u0c5c\u0c5d\3\2\2\2\u0c5d\u00df\3\2\2\2\u0c5e\u0c5f\7\u00be\2\2\u0c5f" + + "\u0c62\7w\2\2\u0c60\u0c61\7\u02b4\2\2\u0c61\u0c63\7\u00d5\2\2\u0c62\u0c60" + + "\3\2\2\2\u0c62\u0c63\3\2\2\2\u0c63\u0c64\3\2\2\2\u0c64\u0c66\5\u0202\u0102" + + "\2\u0c65\u0c67\t\3\2\2\u0c66\u0c65\3\2\2\2\u0c66\u0c67\3\2\2\2\u0c67\u00e1" + + "\3\2\2\2\u0c68\u0c69\7\u00be\2\2\u0c69\u0c6c\7\u0094\2\2\u0c6a\u0c6b\7" + + "\u02b4\2\2\u0c6b\u0c6d\7\u00d5\2\2\u0c6c\u0c6a\3\2\2\2\u0c6c\u0c6d\3\2" + + "\2\2\u0c6d\u0c6e\3\2\2\2\u0c6e\u0c6f\5\u0202\u0102\2\u0c6f\u00e3\3\2\2" + + "\2\u0c70\u0c71\7\u00be\2\2\u0c71\u0c74\7\u00bc\2\2\u0c72\u0c73\7\u02b4" + + "\2\2\u0c73\u0c75\7\u00d5\2\2\u0c74\u0c72\3\2\2\2\u0c74\u0c75\3\2\2\2\u0c75" + + "\u0c76\3\2\2\2\u0c76\u0c78\5\u01d0\u00e9\2\u0c77\u0c79\t\3\2\2\u0c78\u0c77" + + "\3\2\2\2\u0c78\u0c79\3\2\2\2\u0c79\u00e5\3\2\2\2\u0c7a\u0c7b\7\u00be\2" + + "\2\u0c7b\u0c7c\7\u02bc\2\2\u0c7c\u0c7f\7\u0256\2\2\u0c7d\u0c7e\7\u02b4" + + "\2\2\u0c7e\u0c80\7\u00d5\2\2\u0c7f\u0c7d\3\2\2\2\u0c7f\u0c80\3\2\2\2\u0c80" + + "\u0c81\3\2\2\2\u0c81\u0c83\5\u0202\u0102\2\u0c82\u0c84\t\3\2\2\u0c83\u0c82" + + "\3\2\2\2\u0c83\u0c84\3\2\2\2\u0c84\u00e7\3\2\2\2\u0c85\u0c86\7\u00be\2" + + "\2\u0c86\u0c89\7\u00d9\2\2\u0c87\u0c88\7\u02b4\2\2\u0c88\u0c8a\7\u00d5" + + "\2\2\u0c89\u0c87\3\2\2\2\u0c89\u0c8a\3\2\2\2\u0c8a\u0c8b\3\2\2\2\u0c8b" + + "\u0c8d\5\u01d0\u00e9\2\u0c8c\u0c8e\t\3\2\2\u0c8d\u0c8c\3\2\2\2\u0c8d\u0c8e" + + "\3\2\2\2\u0c8e\u00e9\3\2\2\2\u0c8f\u0c90\7\u00be\2\2\u0c90\u0c91\7\u00e7" + + "\2\2\u0c91\u0c92\7\u0093\2\2\u0c92\u0c95\7\u02bd\2\2\u0c93\u0c94\7\u02b4" + + "\2\2\u0c94\u0c96\7\u00d5\2\2\u0c95\u0c93\3\2\2\2\u0c95\u0c96\3\2\2\2\u0c96" + + "\u0c97\3\2\2\2\u0c97\u0c99\5\u01d0\u00e9\2\u0c98\u0c9a\t\3\2\2\u0c99\u0c98" + + "\3\2\2\2\u0c99\u0c9a\3\2\2\2\u0c9a\u00eb\3\2\2\2\u0c9b\u0c9c\7\u00be\2" + + "\2\u0c9c\u0c9d\7\u00e7\2\2\u0c9d\u0ca0\7\u0239\2\2\u0c9e\u0c9f\7\u02b4" + + "\2\2\u0c9f\u0ca1\7\u00d5\2\2\u0ca0\u0c9e\3\2\2\2\u0ca0\u0ca1\3\2\2\2\u0ca1" + + "\u0ca2\3\2\2\2\u0ca2\u0ca4\5\u01d0\u00e9\2\u0ca3\u0ca5\t\3\2\2\u0ca4\u0ca3" + + "\3\2\2\2\u0ca4\u0ca5\3\2\2\2\u0ca5\u00ed\3\2\2\2\u0ca6\u0ca7\7\u00be\2" + + "\2\u0ca7\u0caa\7\u00f0\2\2\u0ca8\u0ca9\7\u02b4\2\2\u0ca9\u0cab\7\u00d5" + + "\2\2\u0caa\u0ca8\3\2\2\2\u0caa\u0cab\3\2\2\2\u0cab\u0cac\3\2\2\2\u0cac" + + "\u0cae\5\u01c2\u00e2\2\u0cad\u0caf\t\3\2\2\u0cae\u0cad\3\2\2\2\u0cae\u0caf" + + "\3\2\2\2\u0caf\u00ef\3\2\2\2\u0cb0\u0cb1\7\u00be\2\2\u0cb1\u0cb4\7\u00fc" + + "\2\2\u0cb2\u0cb3\7\u02b4\2\2\u0cb3\u0cb5\7\u00d5\2\2\u0cb4\u0cb2\3\2\2" + + "\2\u0cb4\u0cb5\3\2\2\2\u0cb5\u0cb6\3\2\2\2\u0cb6\u0cb7\5\u01d0\u00e9\2" + + "\u0cb7\u00f1\3\2\2\2\u0cb8\u0cb9\7\u00be\2\2\u0cb9\u0cbb\7\u010e\2\2\u0cba" + + "\u0cbc\7\u02c5\2\2\u0cbb\u0cba\3\2\2\2\u0cbb\u0cbc\3\2\2\2\u0cbc\u0cbf" + + "\3\2\2\2\u0cbd\u0cbe\7\u02b4\2\2\u0cbe\u0cc0\7\u00d5\2\2\u0cbf\u0cbd\3" + + "\2\2\2\u0cbf\u0cc0\3\2\2\2\u0cc0\u0cc1\3\2\2\2\u0cc1\u0cc3\5\u01ce\u00e8" + + "\2\u0cc2\u0cc4\t\3\2\2\u0cc3\u0cc2\3\2\2\2\u0cc3\u0cc4\3\2\2\2\u0cc4\u00f3" + + "\3\2\2\2\u0cc5\u0cc7\7\u00be\2\2\u0cc6\u0cc8\7\u01b9\2\2\u0cc7\u0cc6\3" + + "\2\2\2\u0cc7\u0cc8\3\2\2\2\u0cc8\u0cc9\3\2\2\2\u0cc9\u0ccc\7\u012d\2\2" + + "\u0cca\u0ccb\7\u02b4\2\2\u0ccb\u0ccd\7\u00d5\2\2\u0ccc\u0cca\3\2\2\2\u0ccc" + + "\u0ccd\3\2\2\2\u0ccd\u0cce\3\2\2\2\u0cce\u0cd0\5\u0202\u0102\2\u0ccf\u0cd1" + + "\t\3\2\2\u0cd0\u0ccf\3\2\2\2\u0cd0\u0cd1\3\2\2\2\u0cd1\u00f5\3\2\2\2\u0cd2" + + "\u0cd3\7\u00be\2\2\u0cd3\u0cd4\7\u02c7\2\2\u0cd4\u0cd7\7\u0281\2\2\u0cd5" + + "\u0cd6\7\u02b4\2\2\u0cd6\u0cd8\7\u00d5\2\2\u0cd7\u0cd5\3\2\2\2\u0cd7\u0cd8" + + "\3\2\2\2\u0cd8\u0cd9\3\2\2\2\u0cd9\u0cdb\5\u01d0\u00e9\2\u0cda\u0cdc\t" + + "\3\2\2\u0cdb\u0cda\3\2\2\2\u0cdb\u0cdc\3\2\2\2\u0cdc\u00f7\3\2\2\2\u0cdd" + + "\u0cde\5\u0206\u0104\2\u0cde\u00f9\3\2\2\2\u0cdf\u0ce0\7\u00be\2\2\u0ce0" + + "\u0ce1\7\u0186\2\2\u0ce1\u0ce4\7S\2\2\u0ce2\u0ce3\7\u02b4\2\2\u0ce3\u0ce5" + + "\7\u00d5\2\2\u0ce4\u0ce2\3\2\2\2\u0ce4\u0ce5\3\2\2\2\u0ce5\u0ce6\3\2\2" + + "\2\u0ce6\u0ce7\5\u0202\u0102\2\u0ce7\u0ce8\7\u0273\2\2\u0ce8\u0cea\5\u01dc" + + "\u00ef\2\u0ce9\u0ceb\t\3\2\2\u0cea\u0ce9\3\2\2\2\u0cea\u0ceb\3\2\2\2\u0ceb" + + "\u00fb\3\2\2\2\u0cec\u0ced\7\u00be\2\2\u0ced\u0cee\7\u0186\2\2\u0cee\u0cf1" + + "\7\u02ce\2\2\u0cef\u0cf0\7\u02b4\2\2\u0cf0\u0cf2\7\u00d5\2\2\u0cf1\u0cef" + + "\3\2\2\2\u0cf1\u0cf2\3\2\2\2\u0cf2\u0cf3\3\2\2\2\u0cf3\u0cf4\5\u0202\u0102" + + "\2\u0cf4\u0cf5\7\u0273\2\2\u0cf5\u0cf7\5\u01dc\u00ef\2\u0cf6\u0cf8\t\3" + + "\2\2\u0cf7\u0cf6\3\2\2\2\u0cf7\u0cf8\3\2\2\2\u0cf8\u00fd\3\2\2\2\u0cf9" + + "\u0cfa\7\u00be\2\2\u0cfa\u0cfb\7\u02d0\2\2\u0cfb\u0cfc\78\2\2\u0cfc\u0cfe" + + "\5\u01fc\u00ff\2\u0cfd\u0cff\t\3\2\2\u0cfe\u0cfd\3\2\2\2\u0cfe\u0cff\3" + + "\2\2\2\u0cff\u00ff\3\2\2\2\u0d00\u0d01\7\u00be\2\2\u0d01\u0d04\7\u02cf" + + "\2\2\u0d02\u0d03\7\u02b4\2\2\u0d03\u0d05\7\u00d5\2\2\u0d04\u0d02\3\2\2" + + "\2\u0d04\u0d05\3\2\2\2\u0d05\u0d06\3\2\2\2\u0d06\u0d07\5\u0202\u0102\2" + + "\u0d07\u0d08\7\u0182\2\2\u0d08\u0d0a\5\u0202\u0102\2\u0d09\u0d0b\t\3\2" + + "\2\u0d0a\u0d09\3\2\2\2\u0d0a\u0d0b\3\2\2\2\u0d0b\u0101\3\2\2\2\u0d0c\u0d0d" + + "\7\u00be\2\2\u0d0d\u0d10\7\u01bc\2\2\u0d0e\u0d0f\7\u02b4\2\2\u0d0f\u0d11" + + "\7\u00d5\2\2\u0d10\u0d0e\3\2\2\2\u0d10\u0d11\3\2\2\2\u0d11\u0d12\3\2\2" + + "\2\u0d12\u0d14\5\u01d0\u00e9\2\u0d13\u0d15\t\3\2\2\u0d14\u0d13\3\2\2\2" + + "\u0d14\u0d15\3\2\2\2\u0d15\u0103\3\2\2\2\u0d16\u0d17\7\u00be\2\2\u0d17" + + "\u0d1a\7\u01e7\2\2\u0d18\u0d19\7\u02b4\2\2\u0d19\u0d1b\7\u00d5\2\2\u0d1a" + + "\u0d18\3\2\2\2\u0d1a\u0d1b\3\2\2\2\u0d1b\u0d1c\3\2\2\2\u0d1c\u0d1d\5\u01d0" + + "\u00e9\2\u0d1d\u0105\3\2\2\2\u0d1e\u0d1f\7\u00be\2\2\u0d1f\u0d22\7\u01f2" + + "\2\2\u0d20\u0d21\7\u02b4\2\2\u0d21\u0d23\7\u00d5\2\2\u0d22\u0d20\3\2\2" + + "\2\u0d22\u0d23\3\2\2\2\u0d23\u0d24\3\2\2\2\u0d24\u0d25\5\u01cc\u00e7\2" + + "\u0d25\u0d26\7\u0182\2\2\u0d26\u0d28\5\u0202\u0102\2\u0d27\u0d29\t\3\2" + + "\2\u0d28\u0d27\3\2\2\2\u0d28\u0d29\3\2\2\2\u0d29\u0107\3\2\2\2\u0d2a\u0d2b" + + "\7\u00be\2\2\u0d2b\u0d2e\7\u01f5\2\2\u0d2c\u0d2d\7\u02b4\2\2\u0d2d\u0d2f" + + "\7\u00d5\2\2\u0d2e\u0d2c\3\2\2\2\u0d2e\u0d2f\3\2\2\2\u0d2f\u0d30\3\2\2" + + "\2\u0d30\u0d32\5\u01d0\u00e9\2\u0d31\u0d33\t\3\2\2\u0d32\u0d31\3\2\2\2" + + "\u0d32\u0d33\3\2\2\2\u0d33\u0109\3\2\2\2\u0d34\u0d35\7\u00be\2\2\u0d35" + + "\u0d38\7\u0203\2\2\u0d36\u0d37\7\u02b4\2\2\u0d37\u0d39\7\u00d5\2\2\u0d38" + + "\u0d36\3\2\2\2\u0d38\u0d39\3\2\2\2\u0d39\u0d3a\3\2\2\2\u0d3a\u0d3c\5\u01d0" + + "\u00e9\2\u0d3b\u0d3d\t\3\2\2\u0d3c\u0d3b\3\2\2\2\u0d3c\u0d3d\3\2\2\2\u0d3d" + + "\u010b\3\2\2\2\u0d3e\u0d3f\7\u00be\2\2\u0d3f\u0d42\7\u02be\2\2\u0d40\u0d41" + + "\7\u02b4\2\2\u0d41\u0d43\7\u00d5\2\2\u0d42\u0d40\3\2\2\2\u0d42\u0d43\3" + + "\2\2\2\u0d43\u0d44\3\2\2\2\u0d44\u0d46\5\u01d0\u00e9\2\u0d45\u0d47\t\3" + + "\2\2\u0d46\u0d45\3\2\2\2\u0d46\u0d47\3\2\2\2\u0d47\u010d\3\2\2\2\u0d48" + + "\u0d49\7\u00be\2\2\u0d49\u0d4c\7\u0226\2\2\u0d4a\u0d4b\7\u02b4\2\2\u0d4b" + + "\u0d4d\7\u00d5\2\2\u0d4c\u0d4a\3\2\2\2\u0d4c\u0d4d\3\2\2\2\u0d4d\u0d4e" + + "\3\2\2\2\u0d4e\u0d4f\5\u01d0\u00e9\2\u0d4f\u010f\3\2\2\2\u0d50\u0d51\7" + + "\u00be\2\2\u0d51\u0d54\7\u0232\2\2\u0d52\u0d53\7\u02b4\2\2\u0d53\u0d55" + + "\7\u00d5\2\2\u0d54\u0d52\3\2\2\2\u0d54\u0d55\3\2\2\2\u0d55\u0d56\3\2\2" + + "\2\u0d56\u0d58\5\u0202\u0102\2\u0d57\u0d59\t\3\2\2\u0d58\u0d57\3\2\2\2" + + "\u0d58\u0d59\3\2\2\2\u0d59\u0111\3\2\2\2\u0d5a\u0d5b\7\u00be\2\2\u0d5b" + + "\u0d5e\7\u0239\2\2\u0d5c\u0d5d\7\u02b4\2\2\u0d5d\u0d5f\7\u00d5\2\2\u0d5e" + + "\u0d5c\3\2\2\2\u0d5e\u0d5f\3\2\2\2\u0d5f\u0d60\3\2\2\2\u0d60\u0d62\5\u01d0" + + "\u00e9\2\u0d61\u0d63\t\3\2\2\u0d62\u0d61\3\2\2\2\u0d62\u0d63\3\2\2\2\u0d63" + + "\u0113\3\2\2\2\u0d64\u0d65\7\u00be\2\2\u0d65\u0d68\7\u023c\2\2\u0d66\u0d67" + + "\7\u02b4\2\2\u0d67\u0d69\7\u00d5\2\2\u0d68\u0d66\3\2\2\2\u0d68\u0d69\3" + + "\2\2\2\u0d69\u0d6a\3\2\2\2\u0d6a\u0d6b\5\u0202\u0102\2\u0d6b\u0115\3\2" + + "\2\2\u0d6c\u0d6d\7\u00be\2\2\u0d6d\u0d6e\7\u02f1\2\2\u0d6e\u0d6f\7\u01fc" + + "\2\2\u0d6f\u0d72\7j\2\2\u0d70\u0d71\7\u02b4\2\2\u0d71\u0d73\7\u00d5\2" + + "\2\u0d72\u0d70\3\2\2\2\u0d72\u0d73\3\2\2\2\u0d73\u0d74\3\2\2\2\u0d74\u0d76" + + "\5\u0202\u0102\2\u0d75\u0d77\t\3\2\2\u0d76\u0d75\3\2\2\2\u0d76\u0d77\3" + + "\2\2\2\u0d77\u0117\3\2\2\2\u0d78\u0d79\7\u00be\2\2\u0d79\u0d7a\7\u02f1" + + "\2\2\u0d7a\u0d7b\7\u01fc\2\2\u0d7b\u0d7e\7\u00b4\2\2\u0d7c\u0d7d\7\u02b4" + + "\2\2\u0d7d\u0d7f\7\u00d5\2\2\u0d7e\u0d7c\3\2\2\2\u0d7e\u0d7f\3\2\2\2\u0d7f" + + "\u0d80\3\2\2\2\u0d80\u0d82\5\u0202\u0102\2\u0d81\u0d83\t\3\2\2\u0d82\u0d81" + + "\3\2\2\2\u0d82\u0d83\3\2\2\2\u0d83\u0119\3\2\2\2\u0d84\u0d85\7\u00be\2" + + "\2\u0d85\u0d86\7\u02f1\2\2\u0d86\u0d87\7\u01fc\2\2\u0d87\u0d8a\7\u019f" + + "\2\2\u0d88\u0d89\7\u02b4\2\2\u0d89\u0d8b\7\u00d5\2\2\u0d8a\u0d88\3\2\2" + + "\2\u0d8a\u0d8b\3\2\2\2\u0d8b\u0d8c\3\2\2\2\u0d8c\u0d8e\5\u0202\u0102\2" + + "\u0d8d\u0d8f\t\3\2\2\u0d8e\u0d8d\3\2\2\2\u0d8e\u0d8f\3\2\2\2\u0d8f\u011b" + + "\3\2\2\2\u0d90\u0d91\7\u00be\2\2\u0d91\u0d92\7\u02f1\2\2\u0d92\u0d93\7" + + "\u01fc\2\2\u0d93\u0d96\7\u023e\2\2\u0d94\u0d95\7\u02b4\2\2\u0d95\u0d97" + + "\7\u00d5\2\2\u0d96\u0d94\3\2\2\2\u0d96\u0d97\3\2\2\2\u0d97\u0d98\3\2\2" + + "\2\u0d98\u0d9a\5\u0202\u0102\2\u0d99\u0d9b\t\3\2\2\u0d9a\u0d99\3\2\2\2" + + "\u0d9a\u0d9b\3\2\2\2\u0d9b\u011d\3\2\2\2\u0d9c\u0d9d\7\u00be\2\2\u0d9d" + + "\u0da0\7\u0251\2\2\u0d9e\u0d9f\7\u02b4\2\2\u0d9f\u0da1\7\u00d5\2\2\u0da0" + + "\u0d9e\3\2\2\2\u0da0\u0da1\3\2\2\2\u0da1\u0da2\3\2\2\2\u0da2\u0da3\7\u00e5" + + "\2\2\u0da3\u0da4\5\u0202\u0102\2\u0da4\u0da5\7\u012d\2\2\u0da5\u0da6\5" + + "\u0202\u0102\2\u0da6\u0da7\t\3\2\2\u0da7\u011f\3\2\2\2\u0da8\u0da9\7\u00be" + + "\2\2\u0da9\u0dac\7\u0256\2\2\u0daa\u0dab\7\u02b4\2\2\u0dab\u0dad\7\u00d5" + + "\2\2\u0dac\u0daa\3\2\2\2\u0dac\u0dad\3\2\2\2\u0dad\u0dae\3\2\2\2\u0dae" + + "\u0daf\5\u0202\u0102\2\u0daf\u0db0\7\u0182\2\2\u0db0\u0db2\5\u0202\u0102" + + "\2\u0db1\u0db3\t\3\2\2\u0db2\u0db1\3\2\2\2\u0db2\u0db3\3\2\2\2\u0db3\u0121" + + "\3\2\2\2\u0db4\u0db5\7\u00be\2\2\u0db5\u0db8\7\u025e\2\2\u0db6\u0db7\7" + + "\u02b4\2\2\u0db7\u0db9\7\u00d5\2\2\u0db8\u0db6\3\2\2\2\u0db8\u0db9\3\2" + + "\2\2\u0db9\u0dba\3\2\2\2\u0dba\u0dbc\5\u01d0\u00e9\2\u0dbb\u0dbd\t\3\2" + + "\2\u0dbc\u0dbb\3\2\2\2\u0dbc\u0dbd\3\2\2\2\u0dbd\u0123\3\2\2\2\u0dbe\u0dbf" + + "\7\u00be\2\2\u0dbf\u0dc2\7\u026e\2\2\u0dc0\u0dc1\7\u02b4\2\2\u0dc1\u0dc3" + + "\7\u00d5\2\2\u0dc2\u0dc0\3\2\2\2\u0dc2\u0dc3\3\2\2\2\u0dc3\u0dc4\3\2\2" + + "\2\u0dc4\u0dc5\5\u01d0\u00e9\2\u0dc5\u0125\3\2\2\2\u0dc6\u0dc7\7\u00be" + + "\2\2\u0dc7\u0dc8\7\u026e\2\2\u0dc8\u0dcb\7\u0147\2\2\u0dc9\u0dca\7\u02b4" + + "\2\2\u0dca\u0dcc\7\u00d5\2\2\u0dcb\u0dc9\3\2\2\2\u0dcb\u0dcc\3\2\2\2\u0dcc" + + "\u0dcd\3\2\2\2\u0dcd\u0dd3\7\u00e5\2\2\u0dce\u0dd4\5\u01cc\u00e7\2\u0dcf" + + "\u0dd4\7\u026e\2\2\u0dd0\u0dd4\7\u008f\2\2\u0dd1\u0dd4\7\u0208\2\2\u0dd2" + + "\u0dd4\7\u01bb\2\2\u0dd3\u0dce\3\2\2\2\u0dd3\u0dcf\3\2\2\2\u0dd3\u0dd0" + + "\3\2\2\2\u0dd3\u0dd1\3\2\2\2\u0dd3\u0dd2\3\2\2\2\u0dd4\u0dd5\3\2\2\2\u0dd5" + + "\u0dd6\7\u02be\2\2\u0dd6\u0dd7\5\u0202\u0102\2\u0dd7\u0127\3\2\2\2\u0dd8" + + "\u0dd9\7\u00be\2\2\u0dd9\u0ddc\7\u0281\2\2\u0dda\u0ddb\7\u02b4\2\2\u0ddb" + + "\u0ddd\7\u00d5\2\2\u0ddc\u0dda\3\2\2\2\u0ddc\u0ddd\3\2\2\2\u0ddd\u0dde" + + "\3\2\2\2\u0dde\u0de0\5\u01d0\u00e9\2\u0ddf\u0de1\t\3\2\2\u0de0\u0ddf\3" + + "\2\2\2\u0de0\u0de1\3\2\2\2\u0de1\u0129\3\2\2\2\u0de2\u0de3\7\u00d3\2\2" + + "\u0de3\u0de5\5\u0202\u0102\2\u0de4\u0de6\5\u01b8\u00dd\2\u0de5\u0de4\3" + + "\2\2\2\u0de5\u0de6\3\2\2\2\u0de6\u012b\3\2\2\2\u0de7\u0de9\7\u00d7\2\2" + + "\u0de8\u0dea\7\30\2\2\u0de9\u0de8\3\2\2\2\u0de9\u0dea\3\2\2\2\u0dea\u0dec" + + "\3\2\2\2\u0deb\u0ded\7\u0280\2\2\u0dec\u0deb\3\2\2\2\u0dec\u0ded\3\2\2" + + "\2\u0ded\u0dfb\3\2\2\2\u0dee\u0def\7\u00d7\2\2\u0def\u0df0\7\u0300\2\2" + + "\u0df0\u0df5\5\u0190\u00c9\2\u0df1\u0df2\7\u02fa\2\2\u0df2\u0df4\5\u0190" + + "\u00c9\2\u0df3\u0df1\3\2\2\2\u0df4\u0df7\3\2\2\2\u0df5\u0df3\3\2\2\2\u0df5" + + "\u0df6\3\2\2\2\u0df6\u0df8\3\2\2\2\u0df7\u0df5\3\2\2\2\u0df8\u0df9\7\u0301" + + "\2\2\u0df9\u0dfb\3\2\2\2\u0dfa\u0de7\3\2\2\2\u0dfa\u0dee\3\2\2\2\u0dfb" + + "\u0e05\3\2\2\2\u0dfc\u0e06\5\u015a\u00ae\2\u0dfd\u0e06\5\u0134\u009b\2" + + "\u0dfe\u0e06\5\u0176\u00bc\2\u0dff\u0e06\5\u00d2j\2\u0e00\u0e06\5\u017e" + + "\u00c0\2\u0e01\u0e06\5\u012a\u0096\2\u0e02\u0e06\5\u00d0i\2\u0e03\u0e06" + + "\5\u00b6\\\2\u0e04\u0e06\5\u0098M\2\u0e05\u0dfc\3\2\2\2\u0e05\u0dfd\3" + + "\2\2\2\u0e05\u0dfe\3\2\2\2\u0e05\u0dff\3\2\2\2\u0e05\u0e00\3\2\2\2\u0e05" + + "\u0e01\3\2\2\2\u0e05\u0e02\3\2\2\2\u0e05\u0e03\3\2\2\2\u0e05\u0e04\3\2" + + "\2\2\u0e06\u012d\3\2\2\2\u0e07\u0e08\5\u0206\u0104\2\u0e08\u012f\3\2\2" + + "\2\u0e09\u0e0a\5\u0206\u0104\2\u0e0a\u0131\3\2\2\2\u0e0b\u0e0c\5\u0206" + + "\u0104\2\u0e0c\u0133\3\2\2\2\u0e0d\u0e0f\5\u015e\u00b0\2\u0e0e\u0e0d\3" + + "\2\2\2\u0e0e\u0e0f\3\2\2\2\u0e0f\u0e10\3\2\2\2\u0e10\u0e11\7\u0118\2\2" + + "\u0e11\u0e12\7\u0121\2\2\u0e12\u0e15\5\u01d6\u00ec\2\u0e13\u0e14\7\35" + + "\2\2\u0e14\u0e16\5\u0202\u0102\2\u0e15\u0e13\3\2\2\2\u0e15\u0e16\3\2\2" + + "\2\u0e16\u0e1b\3\2\2\2\u0e17\u0e18\7\u0300\2\2\u0e18\u0e19\5\u01ce\u00e8" + + "\2\u0e19\u0e1a\7\u0301\2\2\u0e1a\u0e1c\3\2\2\2\u0e1b\u0e17\3\2\2\2\u0e1b" + + "\u0e1c\3\2\2\2\u0e1c\u0e22\3\2\2\2\u0e1d\u0e1f\7\u0194\2\2\u0e1e\u0e20" + + "\t\22\2\2\u0e1f\u0e1e\3\2\2\2\u0e1f\u0e20\3\2\2\2\u0e20\u0e21\3\2\2\2" + + "\u0e21\u0e23\7\u0278\2\2\u0e22\u0e1d\3\2\2\2\u0e22\u0e23\3\2\2\2\u0e23" + + "\u0e28\3\2\2\2\u0e24\u0e25\7\u009d\2\2\u0e25\u0e29\7\u0279\2\2\u0e26\u0e29" + + "\5\u015a\u00ae\2\u0e27\u0e29\5\u017e\u00c0\2\u0e28\u0e24\3\2\2\2\u0e28" + + "\u0e26\3\2\2\2\u0e28\u0e27\3\2\2\2\u0e29\u0e45\3\2\2\2\u0e2a\u0e2b\7\u0182" + + "\2\2\u0e2b\u0e30\7k\2\2\u0e2c\u0e2d\7\u0300\2\2\u0e2d\u0e2e\5\u020a\u0106" + + "\2\u0e2e\u0e2f\7\u0301\2\2\u0e2f\u0e31\3\2\2\2\u0e30\u0e2c\3\2\2\2\u0e30" + + "\u0e31\3\2\2\2\u0e31\u0e35\3\2\2\2\u0e32\u0e33\7\u0182\2\2\u0e33\u0e34" + + "\7o\2\2\u0e34\u0e36\5\u020a\u0106\2\u0e35\u0e32\3\2\2\2\u0e35\u0e36\3" + + "\2\2\2\u0e36\u0e38\3\2\2\2\u0e37\u0e39\5\u0184\u00c3\2\u0e38\u0e37\3\2" + + "\2\2\u0e38\u0e39\3\2\2\2\u0e39\u0e43\3\2\2\2\u0e3a\u0e3b\7\u00bb\2\2\u0e3b" + + "\u0e44\7\u0170\2\2\u0e3c\u0e3d\7\u00bb\2\2\u0e3d\u0e3e\7\u026b\2\2\u0e3e" + + "\u0e3f\7\u0209\2\2\u0e3f\u0e41\5\u01ac\u00d7\2\u0e40\u0e42\5\u0184\u00c3" + + "\2\u0e41\u0e40\3\2\2\2\u0e41\u0e42\3\2\2\2\u0e42\u0e44\3\2\2\2\u0e43\u0e3a" + + "\3\2\2\2\u0e43\u0e3c\3\2\2\2\u0e44\u0e46\3\2\2\2\u0e45\u0e2a\3\2\2\2\u0e45" + + "\u0e46\3\2\2\2\u0e46\u0e48\3\2\2\2\u0e47\u0e49\5\u01b0\u00d9\2\u0e48\u0e47" + + "\3\2\2\2\u0e48\u0e49\3\2\2\2\u0e49\u0135\3\2\2\2\u0e4a\u0e4b\7\u0139\2" + + "\2\u0e4b\u0e4c\5\u0202\u0102\2\u0e4c\u0137\3\2\2\2\u0e4d\u0e4e\5\u0206" + + "\u0104\2\u0e4e\u0139\3\2\2\2\u0e4f\u0e51\7\u0141\2\2\u0e50\u0e52\7\u0239" + + "\2\2\u0e51\u0e50\3\2\2\2\u0e51\u0e52\3\2\2\2\u0e52\u0e54\3\2\2\2\u0e53" + + "\u0e55\7\u0183\2\2\u0e54\u0e53\3\2\2\2\u0e54\u0e55\3\2\2\2\u0e55\u0e56" + + "\3\2\2\2\u0e56\u0e58\5\u01cc\u00e7\2\u0e57\u0e59\7\u02ff\2\2\u0e58\u0e57" + + "\3\2\2\2\u0e58\u0e59\3\2\2\2\u0e59\u0e6e\3\2\2\2\u0e5a\u0e6b\7\u010b\2" + + "\2\u0e5b\u0e5c\7\n\2\2\u0e5c\u0e6c\7\u020c\2\2\u0e5d\u0e5e\7\u01ee\2\2" + + "\u0e5e\u0e6c\7\u020c\2\2\u0e5f\u0e60\7\u01ee\2\2\u0e60\u0e6c\7\u00d1\2" + + "\2\u0e61\u0e62\7\u020c\2\2\u0e62\u0e63\7\u026b\2\2\u0e63\u0e6c\7\u00d1" + + "\2\2\u0e64\u0e6c\7\u020c\2\2\u0e65\u0e66\7\u020c\2\2\u0e66\u0e67\7\u01ee" + + "\2\2\u0e67\u0e6c\7\u00d1\2\2\u0e68\u0e6c\7\u00d1\2\2\u0e69\u0e6a\7\n\2" + + "\2\u0e6a\u0e6c\7\u00d1\2\2\u0e6b\u0e5b\3\2\2\2\u0e6b\u0e5d\3\2\2\2\u0e6b" + + "\u0e5f\3\2\2\2\u0e6b\u0e61\3\2\2\2\u0e6b\u0e64\3\2\2\2\u0e6b\u0e65\3\2" + + "\2\2\u0e6b\u0e68\3\2\2\2\u0e6b\u0e69\3\2\2\2\u0e6c\u0e6d\3\2\2\2\u0e6d" + + "\u0e6f\7\u0157\2\2\u0e6e\u0e5a\3\2\2\2\u0e6e\u0e6f\3\2\2\2\u0e6f\u0e71" + + "\3\2\2\2\u0e70\u0e72\7\u0173\2\2\u0e71\u0e70\3\2\2\2\u0e71\u0e72\3\2\2" + + "\2\u0e72\u013b\3\2\2\2\u0e73\u0e8b\7\u015d\2\2\u0e74\u0e87\7\u0168\2\2" + + "\u0e75\u0e87\7\u01b7\2\2\u0e76\u0e87\7\u00e1\2\2\u0e77\u0e87\7\u012f\2" + + "\2\u0e78\u0e79\7\t\2\2\u0e79\u0e87\7\u011d\2\2\u0e7a\u0e7b\7\u01d4\2\2" + + "\u0e7b\u0e87\7\u0307\2\2\u0e7c\u0e87\7\u0307\2\2\u0e7d\u0e87\7\22\2\2" + + "\u0e7e\u0e80\7\u00ea\2\2\u0e7f\u0e81\t\23\2\2\u0e80\u0e7f\3\2\2\2\u0e80" + + "\u0e81\3\2\2\2\u0e81\u0e87\3\2\2\2\u0e82\u0e84\7)\2\2\u0e83\u0e85\t\23" + + "\2\2\u0e84\u0e83\3\2\2\2\u0e84\u0e85\3\2\2\2\u0e85\u0e87\3\2\2\2\u0e86" + + "\u0e74\3\2\2\2\u0e86\u0e75\3\2\2\2\u0e86\u0e76\3\2\2\2\u0e86\u0e77\3\2" + + "\2\2\u0e86\u0e78\3\2\2\2\u0e86\u0e7a\3\2\2\2\u0e86\u0e7c\3\2\2\2\u0e86" + + "\u0e7d\3\2\2\2\u0e86\u0e7e\3\2\2\2\u0e86\u0e82\3\2\2\2\u0e87\u0e89\3\2" + + "\2\2\u0e88\u0e8a\t\24\2\2\u0e89\u0e88\3\2\2\2\u0e89\u0e8a\3\2\2\2\u0e8a" + + "\u0e8c\3\2\2\2\u0e8b\u0e86\3\2\2\2\u0e8b\u0e8c\3\2\2\2\u0e8c\u0e8d\3\2" + + "\2\2\u0e8d\u0e8e\5\u01cc\u00e7\2\u0e8e\u013d\3\2\2\2\u0e8f\u0e90\7\u0171" + + "\2\2\u0e90\u0e93\5\u01cc\u00e7\2\u0e91\u0e92\7\u02fa\2\2\u0e92\u0e94\7" + + "\u030a\2\2\u0e93\u0e91\3\2\2\2\u0e93\u0e94\3\2\2\2\u0e94\u013f\3\2\2\2" + + "\u0e95\u0e96\7\u01b3\2\2\u0e96\u0e9b\5\u0202\u0102\2\u0e97\u0e98\7\u0300" + + "\2\2\u0e98\u0e99\5\u01da\u00ee\2\u0e99\u0e9a\7\u0301\2\2\u0e9a\u0e9c\3" + + "\2\2\2\u0e9b\u0e97\3\2\2\2\u0e9b\u0e9c\3\2\2\2\u0e9c\u0e9d\3\2\2\2\u0e9d" + + "\u0ea3\7\35\2\2\u0e9e\u0ea4\5\u015a\u00ae\2\u0e9f\u0ea4\5\u0134\u009b" + + "\2\u0ea0\u0ea4\5\u0176\u00bc\2\u0ea1\u0ea4\5\u00d2j\2\u0ea2\u0ea4\5\u017e" + + "\u00c0\2\u0ea3\u0e9e\3\2\2\2\u0ea3\u0e9f\3\2\2\2\u0ea3\u0ea0\3\2\2\2\u0ea3" + + "\u0ea1\3\2\2\2\u0ea3\u0ea2\3\2\2\2\u0ea4\u0141\3\2\2\2\u0ea5\u0ea6\7\u01b3" + + "\2\2\u0ea6\u0ea7\7\u024d\2\2\u0ea7\u0ea8\5\u01cc\u00e7\2\u0ea8\u0143\3" + + "\2\2\2\u0ea9\u0eaa\7\u01c3\2\2\u0eaa\u0eab\7\u02d0\2\2\u0eab\u0eaf\78" + + "\2\2\u0eac\u0eb0\5\u0202\u0102\2\u0ead\u0eb0\7\u008f\2\2\u0eae\u0eb0\7" + + "\u0208\2\2\u0eaf\u0eac\3\2\2\2\u0eaf\u0ead\3\2\2\2\u0eaf\u0eae\3\2\2\2" + + "\u0eb0\u0eb9\3\2\2\2\u0eb1\u0eb5\7\u02fa\2\2\u0eb2\u0eb6\5\u0202\u0102" + + "\2\u0eb3\u0eb6\7\u008f\2\2\u0eb4\u0eb6\7\u0208\2\2\u0eb5\u0eb2\3\2\2\2" + + "\u0eb5\u0eb3\3\2\2\2\u0eb5\u0eb4\3\2\2\2\u0eb6\u0eb8\3\2\2\2\u0eb7\u0eb1" + + "\3\2\2\2\u0eb8\u0ebb\3\2\2\2\u0eb9\u0eb7\3\2\2\2\u0eb9\u0eba\3\2\2\2\u0eba" + + "\u0ebc\3\2\2\2\u0ebb\u0eb9\3\2\2\2\u0ebc\u0ec0\7\u0249\2\2\u0ebd\u0ec1" + + "\5\u0202\u0102\2\u0ebe\u0ec1\7\u008f\2\2\u0ebf\u0ec1\7\u0208\2\2\u0ec0" + + "\u0ebd\3\2\2\2\u0ec0\u0ebe\3\2\2\2\u0ec0\u0ebf\3\2\2\2\u0ec1\u0145\3\2" + + "\2\2\u0ec2\u0ec3\5\u0206\u0104\2\u0ec3\u0147\3\2\2\2\u0ec4\u0ec8\7\u01d3" + + "\2\2\u0ec5\u0ec6\7\u0300\2\2\u0ec6\u0ec7\7\u0280\2\2\u0ec7\u0ec9\7\u0301" + + "\2\2\u0ec8\u0ec5\3\2\2\2\u0ec8\u0ec9\3\2\2\2\u0ec9\u0eca\3\2\2\2\u0eca" + + "\u0ecb\t\25\2\2\u0ecb\u0ecc\5\u0202\u0102\2\u0ecc\u0149\3\2\2\2\u0ecd" + + "\u0ecf\7\u01d5\2\2\u0ece\u0ed0\7\u01f3\2\2\u0ecf\u0ece\3\2\2\2\u0ecf\u0ed0" + + "\3\2\2\2\u0ed0\u0ed1\3\2\2\2\u0ed1\u0ed2\5\u0202\u0102\2\u0ed2\u014b\3" + + "\2\2\2\u0ed3\u0ed6\7\u01da\2\2\u0ed4\u0ed7\5\u0202\u0102\2\u0ed5\u0ed7" + + "\7\22\2\2\u0ed6\u0ed4\3\2\2\2\u0ed6\u0ed5\3\2\2\2\u0ed7\u014d\3\2\2\2" + + "\u0ed8\u0ed9\5\u0206\u0104\2\u0ed9\u014f\3\2\2\2\u0eda\u0edc\7\u01e8\2" + + "\2\u0edb\u0edd\t\26\2\2\u0edc\u0edb\3\2\2\2\u0edc\u0edd\3\2\2\2\u0edd" + + "\u0151\3\2\2\2\u0ede\u0edf\7\u01e8\2\2\u0edf\u0ee0\7\u01b4\2\2\u0ee0\u0ee1" + + "\7\u0307\2\2\u0ee1\u0153\3\2\2\2\u0ee2\u0ee4\7\u01e8\2\2\u0ee3\u0ee5\t" + + "\26\2\2\u0ee4\u0ee3\3\2\2\2\u0ee4\u0ee5\3\2\2\2\u0ee5\u0ee6\3\2\2\2\u0ee6" + + "\u0ee8\7\u0249\2\2\u0ee7\u0ee9\7\u01f3\2\2\u0ee8\u0ee7\3\2\2\2\u0ee8\u0ee9" + + "\3\2\2\2\u0ee9\u0eea\3\2\2\2\u0eea\u0eeb\5\u0202\u0102\2\u0eeb\u0155\3" + + "\2\2\2\u0eec\u0eed\7\u01f3\2\2\u0eed\u0eee\5\u0202\u0102\2\u0eee\u0157" + + "\3\2\2\2\u0eef\u0ef0\7\u01ff\2\2\u0ef0\u0ef3\7\u012b\2\2\u0ef1\u0ef2\7" + + "\u00e5\2\2\u0ef2\u0ef4\5\u01cc\u00e7\2\u0ef3\u0ef1\3\2\2\2\u0ef3\u0ef4" + + "\3\2\2\2\u0ef4\u0ef5\3\2\2\2\u0ef5\u0f2c\7\u0182\2\2\u0ef6\u0ef7\7\u0239" + + "\2\2\u0ef7\u0f2d\5\u0202\u0102\2\u0ef8\u0ef9\7`\2\2\u0ef9\u0efa\5\u0202" + + "\u0102\2\u0efa\u0efb\7\u0309\2\2\u0efb\u0efc\5\u020a\u0106\2\u0efc\u0f2d" + + "\3\2\2\2\u0efd\u0efe\7\20\2\2\u0efe\u0eff\5\u0202\u0102\2\u0eff\u0f00" + + "\7\u0300\2\2\u0f00\u0f01\5\u01ee\u00f8\2\u0f01\u0f02\7\u0301\2\2\u0f02" + + "\u0f2d\3\2\2\2\u0f03\u0f04\7\u0094\2\2\u0f04\u0f2d\5\u0202\u0102\2\u0f05" + + "\u0f06\7\u00bc\2\2\u0f06\u0f2d\5\u0202\u0102\2\u0f07\u0f08\7\u02bc\2\2" + + "\u0f08\u0f09\7\u0256\2\2\u0f09\u0f2d\5\u0202\u0102\2\u0f0a\u0f0b\7\u00e7" + + "\2\2\u0f0b\u0f0c\7\u0239\2\2\u0f0c\u0f2d\5\u0202\u0102\2\u0f0d\u0f0e\7" + + "\u00f0\2\2\u0f0e\u0f0f\5\u0202\u0102\2\u0f0f\u0f10\5\u01c0\u00e1\2\u0f10" + + "\u0f2d\3\2\2\2\u0f11\u0f12\7\u012e\2\2\u0f12\u0f13\7\u017a\2\2\u0f13\u0f2d" + + "\7\u0307\2\2\u0f14\u0f15\7\u02c7\2\2\u0f15\u0f16\7\u0281\2\2\u0f16\u0f2d" + + "\5\u0202\u0102\2\u0f17\u0f19\7\u01b9\2\2\u0f18\u0f17\3\2\2\2\u0f18\u0f19" + + "\3\2\2\2\u0f19\u0f1a\3\2\2\2\u0f1a\u0f1b\7\u012d\2\2\u0f1b\u0f2d\5\u0202" + + "\u0102\2\u0f1c\u0f1d\7\u01bc\2\2\u0f1d\u0f2d\5\u0202\u0102\2\u0f1e\u0f1f" + + "\7\u01e7\2\2\u0f1f\u0f2d\5\u0202\u0102\2\u0f20\u0f21\7\u01f5\2\2\u0f21" + + "\u0f2d\5\u0202\u0102\2\u0f22\u0f23\7\u0203\2\2\u0f23\u0f2d\5\u0202\u0102" + + "\2\u0f24\u0f25\7\u0232\2\2\u0f25\u0f2d\5\u0202\u0102\2\u0f26\u0f27\7\u023c" + + "\2\2\u0f27\u0f2d\5\u0202\u0102\2\u0f28\u0f29\7\u025e\2\2\u0f29\u0f2d\5" + + "\u0202\u0102\2\u0f2a\u0f2b\7\u0281\2\2\u0f2b\u0f2d\5\u0202\u0102\2\u0f2c" + + "\u0ef6\3\2\2\2\u0f2c\u0ef8\3\2\2\2\u0f2c\u0efd\3\2\2\2\u0f2c\u0f03\3\2" + + "\2\2\u0f2c\u0f05\3\2\2\2\u0f2c\u0f07\3\2\2\2\u0f2c\u0f0a\3\2\2\2\u0f2c" + + "\u0f0d\3\2\2\2\u0f2c\u0f11\3\2\2\2\u0f2c\u0f14\3\2\2\2\u0f2c\u0f18\3\2" + + "\2\2\u0f2c\u0f1c\3\2\2\2\u0f2c\u0f1e\3\2\2\2\u0f2c\u0f20\3\2\2\2\u0f2c" + + "\u0f22\3\2\2\2\u0f2c\u0f24\3\2\2\2\u0f2c\u0f26\3\2\2\2\u0f2c\u0f28\3\2" + + "\2\2\u0f2c\u0f2a\3\2\2\2\u0f2d\u0f2e\3\2\2\2\u0f2e\u0f2f\7\u0123\2\2\u0f2f" + + "\u0f30\7\u030a\2\2\u0f30\u0159\3\2\2\2\u0f31\u0f33\5\u015e\u00b0\2\u0f32" + + "\u0f31\3\2\2\2\u0f32\u0f33\3\2\2\2\u0f33\u0f4e\3\2\2\2\u0f34\u0f35\7\u0200" + + "\2\2\u0f35\u0f37\5\u0180\u00c1\2\u0f36\u0f38\5\u0182\u00c2\2\u0f37\u0f36" + + "\3\2\2\2\u0f37\u0f38\3\2\2\2\u0f38\u0f4f\3\2\2\2\u0f39\u0f3b\7\u0239\2" + + "\2\u0f3a\u0f3c\7\u0183\2\2\u0f3b\u0f3a\3\2\2\2\u0f3b\u0f3c\3\2\2\2\u0f3c" + + "\u0f3d\3\2\2\2\u0f3d\u0f3f\5\u01d6\u00ec\2\u0f3e\u0f40\7\u02ff\2\2\u0f3f" + + "\u0f3e\3\2\2\2\u0f3f\u0f40\3\2\2\2\u0f40\u0f4f\3\2\2\2\u0f41\u0f43\7\u0300" + + "\2\2\u0f42\u0f41\3\2\2\2\u0f43\u0f44\3\2\2\2\u0f44\u0f42\3\2\2\2\u0f44" + + "\u0f45\3\2\2\2\u0f45\u0f46\3\2\2\2\u0f46\u0f48\5\u015a\u00ae\2\u0f47\u0f49" + + "\7\u0301\2\2\u0f48\u0f47\3\2\2\2\u0f49\u0f4a\3\2\2\2\u0f4a\u0f48\3\2\2" + + "\2\u0f4a\u0f4b\3\2\2\2\u0f4b\u0f4c\3\2\2\2\u0f4c\u0f4d\5\u019e\u00d0\2" + + "\u0f4d\u0f4f\3\2\2\2\u0f4e\u0f34\3\2\2\2\u0f4e\u0f39\3\2\2\2\u0f4e\u0f42" + + "\3\2\2\2\u0f4f\u0f51\3\2\2\2\u0f50\u0f52\5\u0184\u00c3\2\u0f51\u0f50\3" + + "\2\2\2\u0f51\u0f52\3\2\2\2\u0f52\u0f54\3\2\2\2\u0f53\u0f55\5\u0186\u00c4" + + "\2\u0f54\u0f53\3\2\2\2\u0f54\u0f55\3\2\2\2\u0f55\u0f57\3\2\2\2\u0f56\u0f58" + + "\5\u018c\u00c7\2\u0f57\u0f56\3\2\2\2\u0f57\u0f58\3\2\2\2\u0f58\u0f5a\3" + + "\2\2\2\u0f59\u0f5b\5\u019c\u00cf\2\u0f5a\u0f59\3\2\2\2\u0f5a\u0f5b\3\2" + + "\2\2\u0f5b\u0f5d\3\2\2\2\u0f5c\u0f5e\5\u019e\u00d0\2\u0f5d\u0f5c\3\2\2" + + "\2\u0f5d\u0f5e\3\2\2\2\u0f5e\u0f60\3\2\2\2\u0f5f\u0f61\5\u01a0\u00d1\2" + + "\u0f60\u0f5f\3\2\2\2\u0f60\u0f61\3\2\2\2\u0f61\u0f63\3\2\2\2\u0f62\u0f64" + + "\5\u01a4\u00d3\2\u0f63\u0f62\3\2\2\2\u0f63\u0f64\3\2\2\2\u0f64\u0f66\3" + + "\2\2\2\u0f65\u0f67\5\u01a6\u00d4\2\u0f66\u0f65\3\2\2\2\u0f66\u0f67\3\2" + + "\2\2\u0f67\u0f69\3\2\2\2\u0f68\u0f6a\5\u01a8\u00d5\2\u0f69\u0f68\3\2\2" + + "\2\u0f69\u0f6a\3\2\2\2\u0f6a\u0f6c\3\2\2\2\u0f6b\u0f6d\5\u01aa\u00d6\2" + + "\u0f6c\u0f6b\3\2\2\2\u0f6c\u0f6d\3\2\2\2\u0f6d\u015b\3\2\2\2\u0f6e\u0f70" + + "\5\u015e\u00b0\2\u0f6f\u0f6e\3\2\2\2\u0f6f\u0f70\3\2\2\2\u0f70\u0f93\3" + + "\2\2\2\u0f71\u0f72\7\u0200\2\2\u0f72\u0f73\5\u0180\u00c1\2\u0f73\u0f75" + + "\7\u0121\2\2\u0f74\u0f76\t\27\2\2\u0f75\u0f74\3\2\2\2\u0f75\u0f76\3\2" + + "\2\2\u0f76\u0f78\3\2\2\2\u0f77\u0f79\7\u0239\2\2\u0f78\u0f77\3\2\2\2\u0f78" + + "\u0f79\3\2\2\2\u0f79\u0f7a\3\2\2\2\u0f7a\u0f7c\5\u01d6\u00ec\2\u0f7b\u0f7d" + + "\5\u0182\u00c2\2\u0f7c\u0f7b\3\2\2\2\u0f7c\u0f7d\3\2\2\2\u0f7d\u0f94\3" + + "\2\2\2\u0f7e\u0f80\7\u0239\2\2\u0f7f\u0f81\7\u0183\2\2\u0f80\u0f7f\3\2" + + "\2\2\u0f80\u0f81\3\2\2\2\u0f81\u0f82\3\2\2\2\u0f82\u0f84\5\u01d6\u00ec" + + "\2\u0f83\u0f85\7\u02ff\2\2\u0f84\u0f83\3\2\2\2\u0f84\u0f85\3\2\2\2\u0f85" + + "\u0f94\3\2\2\2\u0f86\u0f88\7\u0300\2\2\u0f87\u0f86\3\2\2\2\u0f88\u0f89" + + "\3\2\2\2\u0f89\u0f87\3\2\2\2\u0f89\u0f8a\3\2\2\2\u0f8a\u0f8b\3\2\2\2\u0f8b" + + "\u0f8d\5\u015a\u00ae\2\u0f8c\u0f8e\7\u0301\2\2\u0f8d\u0f8c\3\2\2\2\u0f8e" + + "\u0f8f\3\2\2\2\u0f8f\u0f8d\3\2\2\2\u0f8f\u0f90\3\2\2\2\u0f90\u0f91\3\2" + + "\2\2\u0f91\u0f92\5\u019e\u00d0\2\u0f92\u0f94\3\2\2\2\u0f93\u0f71\3\2\2" + + "\2\u0f93\u0f7e\3\2\2\2\u0f93\u0f87\3\2\2\2\u0f94\u0f96\3\2\2\2\u0f95\u0f97" + + "\5\u0184\u00c3\2\u0f96\u0f95\3\2\2\2\u0f96\u0f97\3\2\2\2\u0f97\u0f99\3" + + "\2\2\2\u0f98\u0f9a\5\u0186\u00c4\2\u0f99\u0f98\3\2\2\2\u0f99\u0f9a\3\2" + + "\2\2\u0f9a\u0f9c\3\2\2\2\u0f9b\u0f9d\5\u018c\u00c7\2\u0f9c\u0f9b\3\2\2" + + "\2\u0f9c\u0f9d\3\2\2\2\u0f9d\u0f9f\3\2\2\2\u0f9e\u0fa0\5\u019c\u00cf\2" + + "\u0f9f\u0f9e\3\2\2\2\u0f9f\u0fa0\3\2\2\2\u0fa0\u0fa2\3\2\2\2\u0fa1\u0fa3" + + "\5\u019e\u00d0\2\u0fa2\u0fa1\3\2\2\2\u0fa2\u0fa3\3\2\2\2\u0fa3\u0fa5\3" + + "\2\2\2\u0fa4\u0fa6\5\u01a0\u00d1\2\u0fa5\u0fa4\3\2\2\2\u0fa5\u0fa6\3\2" + + "\2\2\u0fa6\u0fa8\3\2\2\2\u0fa7\u0fa9\5\u01a4\u00d3\2\u0fa8\u0fa7\3\2\2" + + "\2\u0fa8\u0fa9\3\2\2\2\u0fa9\u0fab\3\2\2\2\u0faa\u0fac\5\u01a6\u00d4\2" + + "\u0fab\u0faa\3\2\2\2\u0fab\u0fac\3\2\2\2\u0fac\u0fae\3\2\2\2\u0fad\u0faf" + + "\5\u01a8\u00d5\2\u0fae\u0fad\3\2\2\2\u0fae\u0faf\3\2\2\2\u0faf\u0fb1\3" + + "\2\2\2\u0fb0\u0fb2\5\u01aa\u00d6\2\u0fb1\u0fb0\3\2\2\2\u0fb1\u0fb2\3\2" + + "\2\2\u0fb2\u015d\3\2\2\2\u0fb3\u0fb5\7\u0288\2\2\u0fb4\u0fb6\7\u01c5\2" + + "\2\u0fb5\u0fb4\3\2\2\2\u0fb5\u0fb6\3\2\2\2\u0fb6\u0fb7\3\2\2\2\u0fb7\u0fbc" + + "\5\u0160\u00b1\2\u0fb8\u0fb9\7\u02fa\2\2\u0fb9\u0fbb\5\u0160\u00b1\2\u0fba" + + "\u0fb8\3\2\2\2\u0fbb\u0fbe\3\2\2\2\u0fbc\u0fba\3\2\2\2\u0fbc\u0fbd\3\2" + + "\2\2\u0fbd\u015f\3\2\2\2\u0fbe\u0fbc\3\2\2\2\u0fbf\u0fc4\5\u01d6\u00ec" + + "\2\u0fc0\u0fc1\7\u0300\2\2\u0fc1\u0fc2\5\u01ce\u00e8\2\u0fc2\u0fc3\7\u0301" + + "\2\2\u0fc3\u0fc5\3\2\2\2\u0fc4\u0fc0\3\2\2\2\u0fc4\u0fc5\3\2\2\2\u0fc5" + + "\u0fc6\3\2\2\2\u0fc6\u0fc7\7\35\2\2\u0fc7\u0fcd\7\u0300\2\2\u0fc8\u0fce" + + "\5\u015a\u00ae\2\u0fc9\u0fce\5\u0134\u009b\2\u0fca\u0fce\5\u00d2j\2\u0fcb" + + "\u0fce\5\u0176\u00bc\2\u0fcc\u0fce\5\u017e\u00c0\2\u0fcd\u0fc8\3\2\2\2" + + "\u0fcd\u0fc9\3\2\2\2\u0fcd\u0fca\3\2\2\2\u0fcd\u0fcb\3\2\2\2\u0fcd\u0fcc" + + "\3\2\2\2\u0fce\u0fcf\3\2\2\2\u0fcf\u0fd0\7\u0301\2\2\u0fd0\u0161\3\2\2" + + "\2\u0fd1\u0fd3\7\u0209\2\2\u0fd2\u0fd4\t\30\2\2\u0fd3\u0fd2\3\2\2\2\u0fd3" + + "\u0fd4\3\2\2\2\u0fd4\u0fd5\3\2\2\2\u0fd5\u0fd6\5\u0202\u0102\2\u0fd6\u0fd9" + + "\t\7\2\2\u0fd7\u0fda\5\u01fe\u0100\2\u0fd8\u0fda\7\u009d\2\2\u0fd9\u0fd7" + + "\3\2\2\2\u0fd9\u0fd8\3\2\2\2\u0fda\u0fe7\3\2\2\2\u0fdb\u0fdd\7\u0209\2" + + "\2\u0fdc\u0fde\t\30\2\2\u0fdd\u0fdc\3\2\2\2\u0fdd\u0fde\3\2\2\2\u0fde" + + "\u0fdf\3\2\2\2\u0fdf\u0fe0\7\u0244\2\2\u0fe0\u0fe4\7\u0290\2\2\u0fe1\u0fe5" + + "\5\u01c6\u00e4\2\u0fe2\u0fe5\7\u013c\2\2\u0fe3\u0fe5\7\u009d\2\2\u0fe4" + + "\u0fe1\3\2\2\2\u0fe4\u0fe2\3\2\2\2\u0fe4\u0fe3\3\2\2\2\u0fe5\u0fe7\3\2" + + "\2\2\u0fe6\u0fd1\3\2\2\2\u0fe6\u0fdb\3\2\2\2\u0fe7\u0163\3\2\2\2\u0fe8" + + "\u0fe9\7\u0209\2\2\u0fe9\u0fec\7s\2\2\u0fea\u0fed\7\22\2\2\u0feb\u0fed" + + "\5\u01d0\u00e9\2\u0fec\u0fea\3\2\2\2\u0fec\u0feb\3\2\2\2\u0fed\u0fee\3" + + "\2\2\2\u0fee\u0fef\t\31\2\2\u0fef\u0165\3\2\2\2\u0ff0\u0ff2\7\u0209\2" + + "\2\u0ff1\u0ff3\t\30\2\2\u0ff2\u0ff1\3\2\2\2\u0ff2\u0ff3\3\2\2\2\u0ff3" + + "\u0ff4\3\2\2\2\u0ff4\u0ff7\7\u01e7\2\2\u0ff5\u0ff8\5\u01fa\u00fe\2\u0ff6" + + "\u0ff8\7\u016c\2\2\u0ff7\u0ff5\3\2\2\2\u0ff7\u0ff6\3\2\2\2\u0ff8\u0ffc" + + "\3\2\2\2\u0ff9\u0ffa\7\u01da\2\2\u0ffa\u0ffc\7\u01e7\2\2\u0ffb\u0ff0\3" + + "\2\2\2\u0ffb\u0ff9\3\2\2\2\u0ffc\u0167\3\2\2\2\u0ffd\u0ffe\5\u0206\u0104" + + "\2\u0ffe\u0169\3\2\2\2\u0fff\u1000\7\u0124\2\2\u1000\u1008\7\u0136\2\2" + + "\u1001\u1009\7\u0205\2\2\u1002\u1003\7\u01d7\2\2\u1003\u1009\7\u01c0\2" + + "\2\u1004\u1005\7\u01c0\2\2\u1005\u1009\7f\2\2\u1006\u1007\7\u01c0\2\2" + + "\u1007\u1009\7\u0261\2\2\u1008\u1001\3\2\2\2\u1008\u1002\3\2\2\2\u1008" + + "\u1004\3\2\2\2\u1008\u1006\3\2\2\2\u1009\u1013\3\2\2\2\u100a\u100b\7\u01c0" + + "\2\2\u100b\u1013\7\u028c\2\2\u100c\u100d\7\u01c0\2\2\u100d\u1013\7\u0183" + + "\2\2\u100e\u1010\7\u016f\2\2\u100f\u100e\3\2\2\2\u100f\u1010\3\2\2\2\u1010" + + "\u1011\3\2\2\2\u1011\u1013\7\u00a0\2\2\u1012\u0fff\3\2\2\2\u1012\u100a" + + "\3\2\2\2\u1012\u100c\3\2\2\2\u1012\u100f\3\2\2\2\u1013\u016b\3\2\2\2\u1014" + + "\u1019\5\u016a\u00b6\2\u1015\u1016\7\u02fa\2\2\u1016\u1018\5\u016a\u00b6" + + "\2\u1017\u1015\3\2\2\2\u1018\u101b\3\2\2\2\u1019\u1017\3\2\2\2\u1019\u101a" + + "\3\2\2\2\u101a\u016d\3\2\2\2\u101b\u1019\3\2\2\2\u101c\u101d\7\u0209\2" + + "\2\u101d\u101e\7\u024d\2\2\u101e\u102a\5\u016c\u00b7\2\u101f\u1020\7\u0209" + + "\2\2\u1020\u1021\7\u024d\2\2\u1021\u1022\7\u0213\2\2\u1022\u102a\7\u030a" + + "\2\2\u1023\u1024\7\u0209\2\2\u1024\u1025\7\u0207\2\2\u1025\u1026\7N\2" + + "\2\u1026\u1027\7\35\2\2\u1027\u1028\7\u024d\2\2\u1028\u102a\5\u016c\u00b7" + + "\2\u1029\u101c\3\2\2\2\u1029\u101f\3\2\2\2\u1029\u1023\3\2\2\2\u102a\u016f" + + "\3\2\2\2\u102b\u1030\7\u020d\2\2\u102c\u1031\5\u0202\u0102\2\u102d\u102e" + + "\7\u0244\2\2\u102e\u1031\7\u0290\2\2\u102f\u1031\7\22\2\2\u1030\u102c" + + "\3\2\2\2\u1030\u102d\3\2\2\2\u1030\u102f\3\2\2\2\u1031\u0171\3\2\2\2\u1032" + + "\u1034\7\u025c\2\2\u1033\u1035\7\u0239\2\2\u1034\u1033\3\2\2\2\u1034\u1035" + + "\3\2\2\2\u1035\u1037\3\2\2\2\u1036\u1038\7\u0183\2\2\u1037\u1036\3\2\2" + + "\2\u1037\u1038\3\2\2\2\u1038\u1039\3\2\2\2\u1039\u103b\5\u01d6\u00ec\2" + + "\u103a\u103c\7\u02ff\2\2\u103b\u103a\3\2\2\2\u103b\u103c\3\2\2\2\u103c" + + "\u1042\3\2\2\2\u103d\u103f\7\u02fa\2\2\u103e\u1040\7\u0183\2\2\u103f\u103e" + + "\3\2\2\2\u103f\u1040\3\2\2\2\u1040\u1041\3\2\2\2\u1041\u1043\5\u01d0\u00e9" + + "\2\u1042\u103d\3\2\2\2\u1042\u1043\3\2\2\2\u1043\u1046\3\2\2\2\u1044\u1045" + + "\t\32\2\2\u1045\u1047\7\u0104\2\2\u1046\u1044\3\2\2\2\u1046\u1047\3\2" + + "\2\2\u1047\u1049\3\2\2\2\u1048\u104a\t\3\2\2\u1049\u1048\3\2\2\2\u1049" + + "\u104a\3\2\2\2\u104a\u0173\3\2\2\2\u104b\u104e\7\u0267\2\2\u104c\u104f" + + "\5\u0202\u0102\2\u104d\u104f\7\u02ff\2\2\u104e\u104c\3\2\2\2\u104e\u104d" + + "\3\2\2\2\u104f\u0175\3\2\2\2\u1050\u1052\5\u015e\u00b0\2\u1051\u1050\3" + + "\2\2\2\u1051\u1052\3\2\2\2\u1052\u1053\3\2\2\2\u1053\u1055\7\u026b\2\2" + + "\u1054\u1056\7\u0183\2\2\u1055\u1054\3\2\2\2\u1055\u1056\3\2\2\2\u1056" + + "\u1057\3\2\2\2\u1057\u1059\5\u01d6\u00ec\2\u1058\u105a\7\u02ff\2\2\u1059" + + "\u1058\3\2\2\2\u1059\u105a\3\2\2\2\u105a\u105f\3\2\2\2\u105b\u105d\7\35" + + "\2\2\u105c\u105b\3\2\2\2\u105c\u105d\3\2\2\2\u105d\u105e\3\2\2\2\u105e" + + "\u1060\5\u0202\u0102\2\u105f\u105c\3\2\2\2\u105f\u1060\3\2\2\2\u1060\u1061" + + "\3\2\2\2\u1061\u1062\7\u0209\2\2\u1062\u1064\5\u01ac\u00d7\2\u1063\u1065" + + "\5\u0182\u00c2\2\u1064\u1063\3\2\2\2\u1064\u1065\3\2\2\2\u1065\u106b\3" + + "\2\2\2\u1066\u106c\5\u0184\u00c3\2\u1067\u1068\7\u0285\2\2\u1068\u1069" + + "\7\u0087\2\2\u1069\u106a\7\u017d\2\2\u106a\u106c\5\u0202\u0102\2\u106b" + + "\u1066\3\2\2\2\u106b\u1067\3\2\2\2\u106b\u106c\3\2\2\2\u106c\u106e\3\2" + + "\2\2\u106d\u106f\5\u01b0\u00d9\2\u106e\u106d\3\2\2\2\u106e\u106f\3\2\2" + + "\2\u106f\u0177\3\2\2\2\u1070\u1071\t\33\2\2\u1071\u0179\3\2\2\2\u1072" + + "\u1077\5\u0178\u00bd\2\u1073\u1074\7\u02fa\2\2\u1074\u1076\5\u0178\u00bd" + + "\2\u1075\u1073\3\2\2\2\u1076\u1079\3\2\2\2\u1077\u1075\3\2\2\2\u1077\u1078" + + "\3\2\2\2\u1078\u017b\3\2\2\2\u1079\u1077\3\2\2\2\u107a\u107f\7\u0274\2" + + "\2\u107b\u107c\7\u0300\2\2\u107c\u107d\5\u017a\u00be\2\u107d\u107e\7\u0301" + + "\2\2\u107e\u1080\3\2\2\2\u107f\u107b\3\2\2\2\u107f\u1080\3\2\2\2\u1080" + + "\u1081\3\2\2\2\u1081\u1086\5\u01d6\u00ec\2\u1082\u1083\7\u0300\2\2\u1083" + + "\u1084\5\u018e\u00c8\2\u1084\u1085\7\u0301\2\2\u1085\u1087\3\2\2\2\u1086" + + "\u1082\3\2\2\2\u1086\u1087\3\2\2\2\u1087\u10aa\3\2\2\2\u1088\u108a\7\u0274" + + "\2\2\u1089\u108b\7\u00ef\2\2\u108a\u1089\3\2\2\2\u108a\u108b\3\2\2\2\u108b" + + "\u108d\3\2\2\2\u108c\u108e\7\u00ed\2\2\u108d\u108c\3\2\2\2\u108d\u108e" + + "\3\2\2\2\u108e\u1090\3\2\2\2\u108f\u1091\7\u0280\2\2\u1090\u108f\3\2\2" + + "\2\u1090\u1091\3\2\2\2\u1091\u1093\3\2\2\2\u1092\u1094\5\u01d6\u00ec\2" + + "\u1093\u1092\3\2\2\2\u1093\u1094\3\2\2\2\u1094\u10aa\3\2\2\2\u1095\u1097" + + "\7\u0274\2\2\u1096\u1098\7\u00ef\2\2\u1097\u1096\3\2\2\2\u1097\u1098\3" + + "\2\2\2\u1098\u109a\3\2\2\2\u1099\u109b\7\u00ed\2\2\u109a\u1099\3\2\2\2" + + "\u109a\u109b\3\2\2\2\u109b\u109d\3\2\2\2\u109c\u109e\7\u0280\2\2\u109d" + + "\u109c\3\2\2\2\u109d\u109e\3\2\2\2\u109e\u109f\3\2\2\2\u109f\u10a7\7\30" + + "\2\2\u10a0\u10a5\5\u01d6\u00ec\2\u10a1\u10a2\7\u0300\2\2\u10a2\u10a3\5" + + "\u018e\u00c8\2\u10a3\u10a4\7\u0301\2\2\u10a4\u10a6\3\2\2\2\u10a5\u10a1" + + "\3\2\2\2\u10a5\u10a6\3\2\2\2\u10a6\u10a8\3\2\2\2\u10a7\u10a0\3\2\2\2\u10a7" + + "\u10a8\3\2\2\2\u10a8\u10aa\3\2\2\2\u10a9\u107a\3\2\2\2\u10a9\u1088\3\2" + + "\2\2\u10a9\u1095\3\2\2\2\u10aa\u017d\3\2\2\2\u10ab\u10ad\5\u015e\u00b0" + + "\2\u10ac\u10ab\3\2\2\2\u10ac\u10ad\3\2\2\2\u10ad\u10bd\3\2\2\2\u10ae\u10af" + + "\7\u0279\2\2\u10af\u10be\5\u01ba\u00de\2\u10b0\u10b2\7\u0300\2\2\u10b1" + + "\u10b0\3\2\2\2\u10b2\u10b3\3\2\2\2\u10b3\u10b1\3\2\2\2\u10b3\u10b4\3\2" + + "\2\2\u10b4\u10b5\3\2\2\2\u10b5\u10b7\5\u017e\u00c0\2\u10b6\u10b8\7\u0301" + + "\2\2\u10b7\u10b6\3\2\2\2\u10b8\u10b9\3\2\2\2\u10b9\u10b7\3\2\2\2\u10b9" + + "\u10ba\3\2\2\2\u10ba\u10bb\3\2\2\2\u10bb\u10bc\5\u019e\u00d0\2\u10bc\u10be" + + "\3\2\2\2\u10bd\u10ae\3\2\2\2\u10bd\u10b1\3\2\2\2\u10be\u10c0\3\2\2\2\u10bf" + + "\u10c1\5\u01a0\u00d1\2\u10c0\u10bf\3\2\2\2\u10c0\u10c1\3\2\2\2\u10c1\u10c3" + + "\3\2\2\2\u10c2\u10c4\5\u019e\u00d0\2\u10c3\u10c2\3\2\2\2\u10c3\u10c4\3" + + "\2\2\2\u10c4\u10c6\3\2\2\2\u10c5\u10c7\5\u01a4\u00d3\2\u10c6\u10c5\3\2" + + "\2\2\u10c6\u10c7\3\2\2\2\u10c7\u10c9\3\2\2\2\u10c8\u10ca\5\u01a6\u00d4" + + "\2\u10c9\u10c8\3\2\2\2\u10c9\u10ca\3\2\2\2\u10ca\u10cc\3\2\2\2\u10cb\u10cd" + + "\5\u01a8\u00d5\2\u10cc\u10cb\3\2\2\2\u10cc\u10cd\3\2\2\2\u10cd\u017f\3" + + "\2\2\2\u10ce\u10d5\7\22\2\2\u10cf\u10d2\7\u00ba\2\2\u10d0\u10d1\7\u0182" + + "\2\2\u10d1\u10d3\5\u01b8\u00dd\2\u10d2\u10d0\3\2\2\2\u10d2\u10d3\3\2\2" + + "\2\u10d3\u10d5\3\2\2\2\u10d4\u10ce\3\2\2\2\u10d4\u10cf\3\2\2\2\u10d4\u10d5" + + "\3\2\2\2\u10d5\u10d6\3\2\2\2\u10d6\u10d7\5\u018e\u00c8\2\u10d7\u0181\3" + + "\2\2\2\u10d8\u10d9\7\u00ee\2\2\u10d9\u10de\5\u01e4\u00f3\2\u10da\u10db" + + "\7\u02fa\2\2\u10db\u10dd\5\u01e4\u00f3\2\u10dc\u10da\3\2\2\2\u10dd\u10e0" + + "\3\2\2\2\u10de\u10dc\3\2\2\2\u10de\u10df\3\2\2\2\u10df\u0183\3\2\2\2\u10e0" + + "\u10de\3\2\2\2\u10e1\u10e2\7\u0285\2\2\u10e2\u10e3\5\u01ec\u00f7\2\u10e3" + + "\u0185\3\2\2\2\u10e4\u10e5\7\u00fc\2\2\u10e5\u10e6\78\2\2\u10e6\u10eb" + + "\5\u0188\u00c5\2\u10e7\u10e8\7\u02fa\2\2\u10e8\u10ea\5\u0188\u00c5\2\u10e9" + + "\u10e7\3\2\2\2\u10ea\u10ed\3\2\2\2\u10eb\u10e9\3\2\2\2\u10eb\u10ec\3\2" + + "\2\2\u10ec\u0187\3\2\2\2\u10ed\u10eb\3\2\2\2\u10ee\u10ef\7\u0300\2\2\u10ef" + + "\u1108\7\u0301\2\2\u10f0\u1108\5\u01b2\u00da\2\u10f1\u1108\5\u01b8\u00dd" + + "\2\u10f2\u10f3\t\34\2\2\u10f3\u10f6\7\u0300\2\2\u10f4\u10f7\5\u01b2\u00da" + + "\2\u10f5\u10f7\5\u01b8\u00dd\2\u10f6\u10f4\3\2\2\2\u10f6\u10f5\3\2\2\2" + + "\u10f7\u10ff\3\2\2\2\u10f8\u10fb\7\u02fa\2\2\u10f9\u10fc\5\u01b2\u00da" + + "\2\u10fa\u10fc\5\u01b8\u00dd\2\u10fb\u10f9\3\2\2\2\u10fb\u10fa\3\2\2\2" + + "\u10fc\u10fe\3\2\2\2\u10fd\u10f8\3\2\2\2\u10fe\u1101\3\2\2\2\u10ff\u10fd" + + "\3\2\2\2\u10ff\u1100\3\2\2\2\u1100\u1102\3\2\2\2\u1101\u10ff\3\2\2\2\u1102" + + "\u1103\7\u0301\2\2\u1103\u1108\3\2\2\2\u1104\u1105\7\u00fd\2\2\u1105\u1106" + + "\7\u020b\2\2\u1106\u1108\5\u018a\u00c6\2\u1107\u10ee\3\2\2\2\u1107\u10f0" + + "\3\2\2\2\u1107\u10f1\3\2\2\2\u1107\u10f2\3\2\2\2\u1107\u1104\3\2\2\2\u1108" + + "\u0189\3\2\2\2\u1109\u110a\7\u0300\2\2\u110a\u110f\5\u0188\u00c5\2\u110b" + + "\u110c\7\u02fa\2\2\u110c\u110e\5\u0188\u00c5\2\u110d\u110b\3\2\2\2\u110e" + + "\u1111\3\2\2\2\u110f\u110d\3\2\2\2\u110f\u1110\3\2\2\2\u1110\u1112\3\2" + + "\2\2\u1111\u110f\3\2\2\2\u1112\u1113\7\u0301\2\2\u1113\u018b\3\2\2\2\u1114" + + "\u1115\7\u00ff\2\2\u1115\u111a\5\u01ec\u00f7\2\u1116\u1117\7\u02fa\2\2" + + "\u1117\u1119\5\u01ec\u00f7\2\u1118\u1116\3\2\2\2\u1119\u111c\3\2\2\2\u111a" + + "\u1118\3\2\2\2\u111a\u111b\3\2\2\2\u111b\u018d\3\2\2\2\u111c\u111a\3\2" + + "\2\2\u111d\u1122\5\u01b2\u00da\2\u111e\u1120\7\35\2\2\u111f\u111e\3\2" + + "\2\2\u111f\u1120\3\2\2\2\u1120\u1121\3\2\2\2\u1121\u1123\5\u01cc\u00e7" + + "\2\u1122\u111f\3\2\2\2\u1122\u1123\3\2\2\2\u1123\u1126\3\2\2\2\u1124\u1126" + + "\7\u02ff\2\2\u1125\u111d\3\2\2\2\u1125\u1124\3\2\2\2\u1126\u1134\3\2\2" + + "\2\u1127\u1130\7\u02fa\2\2\u1128\u112d\5\u01b2\u00da\2\u1129\u112b\7\35" + + "\2\2\u112a\u1129\3\2\2\2\u112a\u112b\3\2\2\2\u112b\u112c\3\2\2\2\u112c" + + "\u112e\5\u01cc\u00e7\2\u112d\u112a\3\2\2\2\u112d\u112e\3\2\2\2\u112e\u1131" + + "\3\2\2\2\u112f\u1131\7\u02ff\2\2\u1130\u1128\3\2\2\2\u1130\u112f\3\2\2" + + "\2\u1131\u1133\3\2\2\2\u1132\u1127\3\2\2\2\u1133\u1136\3\2\2\2\u1134\u1132" + + "\3\2\2\2\u1134\u1135\3\2\2\2\u1135\u018f\3\2\2\2\u1136\u1134\3\2\2\2\u1137" + + "\u1139\t\35\2\2\u1138\u113a\5\u01fe\u0100\2\u1139\u1138\3\2\2\2\u1139" + + "\u113a\3\2\2\2\u113a\u113e\3\2\2\2\u113b\u113c\7\u00e8\2\2\u113c\u113e" + + "\t\36\2\2\u113d\u1137\3\2\2\2\u113d\u113b\3\2\2\2\u113e\u0191\3\2\2\2" + + "\u113f\u1140\7\u0260\2\2\u1140\u114a\7\u01af\2\2\u1141\u1142\7\u0307\2" + + "\2\u1142\u114a\7\u01af\2\2\u1143\u1144\7\u0087\2\2\u1144\u114a\7\u01ee" + + "\2\2\u1145\u1146\7\u0307\2\2\u1146\u114a\7\u00e4\2\2\u1147\u1148\7\u0260" + + "\2\2\u1148\u114a\7\u00e4\2\2\u1149\u113f\3\2\2\2\u1149\u1141\3\2\2\2\u1149" + + "\u1143\3\2\2\2\u1149\u1145\3\2\2\2\u1149\u1147\3\2\2\2\u114a\u0193\3\2" + + "\2\2\u114b\u114c\5\u0192\u00ca\2\u114c\u0195\3\2\2\2\u114d\u114e\5\u0192" + + "\u00ca\2\u114e\u0197\3\2\2\2\u114f\u1150\t\37\2\2\u1150\u1158\5\u0194" + + "\u00cb\2\u1151\u1152\t\37\2\2\u1152\u1153\7-\2\2\u1153\u1154\5\u0194\u00cb" + + "\2\u1154\u1155\7\31\2\2\u1155\u1156\5\u0196\u00cc\2\u1156\u1158\3\2\2" + + "\2\u1157\u114f\3\2\2\2\u1157\u1151\3\2\2\2\u1158\u0199\3\2\2\2\u1159\u1166" + + "\5\u0212\u010a\2\u115a\u115b\7\u01a1\2\2\u115b\u115c\78\2\2\u115c\u1161" + + "\5\u01b2\u00da\2\u115d\u115e\7\u02fa\2\2\u115e\u1160\5\u01b2\u00da\2\u115f" + + "\u115d\3\2\2\2\u1160\u1163\3\2\2\2\u1161\u115f\3\2\2\2\u1161\u1162\3\2" + + "\2\2\u1162\u1166\3\2\2\2\u1163\u1161\3\2\2\2\u1164\u1166\5\u01a0\u00d1" + + "\2\u1165\u1159\3\2\2\2\u1165\u115a\3\2\2\2\u1165\u1164\3\2\2\2\u1166\u019b" + + "\3\2\2\2\u1167\u1168\7\u0287\2\2\u1168\u1169\5\u0212\u010a\2\u1169\u116a" + + "\7\35\2\2\u116a\u116b\7\u0300\2\2\u116b\u116c\5\u019a\u00ce\2\u116c\u116d" + + "\7\u0301\2\2\u116d\u019d\3\2\2\2\u116e\u1170\t \2\2\u116f\u1171\t!\2\2" + + "\u1170\u116f\3\2\2\2\u1170\u1171\3\2\2\2\u1171\u1175\3\2\2\2\u1172\u1174" + + "\7\u0300\2\2\u1173\u1172\3\2\2\2\u1174\u1177\3\2\2\2\u1175\u1173\3\2\2" + + "\2\u1175\u1176\3\2\2\2\u1176\u117a\3\2\2\2\u1177\u1175\3\2\2\2\u1178\u117b" + + "\5\u015a\u00ae\2\u1179\u117b\5\u017e\u00c0\2\u117a\u1178\3\2\2\2\u117a" + + "\u1179\3\2\2\2\u117b\u117f\3\2\2\2\u117c\u117e\7\u0301\2\2\u117d\u117c" + + "\3\2\2\2\u117e\u1181\3\2\2\2\u117f\u117d\3\2\2\2\u117f\u1180\3\2\2\2\u1180" + + "\u1183\3\2\2\2\u1181\u117f\3\2\2\2\u1182\u1184\5\u019e\u00d0\2\u1183\u1182" + + "\3\2\2\2\u1183\u1184\3\2\2\2\u1184\u019f\3\2\2\2\u1185\u1186\7\u018a\2" + + "\2\u1186\u1187\78\2\2\u1187\u118c\5\u01a2"; + private static final String _serializedATNSegment2 = + "\u00d2\2\u1188\u1189\7\u02fa\2\2\u1189\u118b\5\u01a2\u00d2\2\u118a\u1188" + + "\3\2\2\2\u118b\u118e\3\2\2\2\u118c\u118a\3\2\2\2\u118c\u118d\3\2\2\2\u118d" + + "\u01a1\3\2\2\2\u118e\u118c\3\2\2\2\u118f\u1192\5\u01b2\u00da\2\u1190\u1192" + + "\7\u030b\2\2\u1191\u118f\3\2\2\2\u1191\u1190\3\2\2\2\u1192\u1197\3\2\2" + + "\2\u1193\u1198\7\36\2\2\u1194\u1198\7\u00ad\2\2\u1195\u1196\7\u0273\2" + + "\2\u1196\u1198\5\u01b2\u00da\2\u1197\u1193\3\2\2\2\u1197\u1194\3\2\2\2" + + "\u1197\u1195\3\2\2\2\u1197\u1198\3\2\2\2\u1198\u11a4\3\2\2\2\u1199\u119a" + + "\7\u0177\2\2\u119a\u119b\t\"\2\2\u119b\u11a1\3\2\2\2\u119c\u119d\7\u02fa" + + "\2\2\u119d\u119e\7\u0177\2\2\u119e\u11a0\t\"\2\2\u119f\u119c\3\2\2\2\u11a0" + + "\u11a3\3\2\2\2\u11a1\u119f\3\2\2\2\u11a1\u11a2\3\2\2\2\u11a2\u11a5\3\2" + + "\2\2\u11a3\u11a1\3\2\2\2\u11a4\u1199\3\2\2\2\u11a4\u11a5\3\2\2\2\u11a5" + + "\u01a3\3\2\2\2\u11a6\u11aa\7\u0138\2\2\u11a7\u11ab\7\u0307\2\2\u11a8\u11ab" + + "\7\22\2\2\u11a9\u11ab\5\u01e0\u00f1\2\u11aa\u11a7\3\2\2\2\u11aa\u11a8" + + "\3\2\2\2\u11aa\u11a9\3\2\2\2\u11ab\u01a5\3\2\2\2\u11ac\u11ad\7\u017f\2" + + "\2\u11ad\u11af\7\u0307\2\2\u11ae\u11b0\t#\2\2\u11af\u11ae\3\2\2\2\u11af" + + "\u11b0\3\2\2\2\u11b0\u01a7\3\2\2\2\u11b1\u11b2\7\u00dd\2\2\u11b2\u11b4" + + "\t$\2\2\u11b3\u11b5\7\u0307\2\2\u11b4\u11b3\3\2\2\2\u11b4\u11b5\3\2\2" + + "\2\u11b5\u11b6\3\2\2\2\u11b6\u11b7\t#\2\2\u11b7\u11b8\7\u0183\2\2\u11b8" + + "\u01a9\3\2\2\2\u11b9\u11c1\7\u00e5\2\2\u11ba\u11c2\7\u026b\2\2\u11bb\u11bc" + + "\7\u0169\2\2\u11bc\u11bd\7\u0128\2\2\u11bd\u11c2\7\u026b\2\2\u11be\u11c2" + + "\7\u020c\2\2\u11bf\u11c0\7\u0128\2\2\u11c0\u11c2\7\u020c\2\2\u11c1\u11ba" + + "\3\2\2\2\u11c1\u11bb\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1\u11bf\3\2\2\2\u11c2" + + "\u11cc\3\2\2\2\u11c3\u11c4\7\u017d\2\2\u11c4\u11c9\5\u01d6\u00ec\2\u11c5" + + "\u11c6\7\u02fa\2\2\u11c6\u11c8\5\u01d6\u00ec\2\u11c7\u11c5\3\2\2\2\u11c8" + + "\u11cb\3\2\2\2\u11c9\u11c7\3\2\2\2\u11c9\u11ca\3\2\2\2\u11ca\u11cd\3\2" + + "\2\2\u11cb\u11c9\3\2\2\2\u11cc\u11c3\3\2\2\2\u11cc\u11cd\3\2\2\2\u11cd" + + "\u11d3\3\2\2\2\u11ce\u11d2\7\u0173\2\2\u11cf\u11d0\7\u0211\2\2\u11d0\u11d2" + + "\7\u0142\2\2\u11d1\u11ce\3\2\2\2\u11d1\u11cf\3\2\2\2\u11d2\u11d5\3\2\2" + + "\2\u11d3\u11d1\3\2\2\2\u11d3\u11d4\3\2\2\2\u11d4\u01ab\3\2\2\2\u11d5\u11d3" + + "\3\2\2\2\u11d6\u11db\5\u01ae\u00d8\2\u11d7\u11d8\7\u02fa\2\2\u11d8\u11da" + + "\5\u01ae\u00d8\2\u11d9\u11d7\3\2\2\2\u11da\u11dd\3\2\2\2\u11db\u11d9\3" + + "\2\2\2\u11db\u11dc\3\2\2\2\u11dc\u01ad\3\2\2\2\u11dd\u11db\3\2\2\2\u11de" + + "\u11e8\5\u01b2\u00da\2\u11df\u11e0\7\u0300\2\2\u11e0\u11e1\5\u01ce\u00e8" + + "\2\u11e1\u11e2\7\u0301\2\2\u11e2\u11e5\7\u0319\2\2\u11e3\u11e6\5\u01b2" + + "\u00da\2\u11e4\u11e6\5\u01b8\u00dd\2\u11e5\u11e3\3\2\2\2\u11e5\u11e4\3" + + "\2\2\2\u11e6\u11e8\3\2\2\2\u11e7\u11de\3\2\2\2\u11e7\u11df\3\2\2\2\u11e8" + + "\u01af\3\2\2\2\u11e9\u11ea\7\u01e3\2\2\u11ea\u11eb\5\u018e\u00c8\2\u11eb" + + "\u01b1\3\2\2\2\u11ec\u11ed\b\u00da\1\2\u11ed\u1237\7\u0174\2\2\u11ee\u1237" + + "\7\u0088\2\2\u11ef\u1237\7\u008b\2\2\u11f0\u1237\7\u008c\2\2\u11f1\u1237" + + "\7\u008d\2\2\u11f2\u1237\7\u008f\2\2\u11f3\u1237\7\u009d\2\2\u11f4\u1237" + + "\7\u0307\2\2\u11f5\u1237\7\u0308\2\2\u11f6\u1237\7\u0306\2\2\u11f7\u1237" + + "\7\u030a\2\2\u11f8\u1237\7\u0304\2\2\u11f9\u1237\7\u0305\2\2\u11fa\u11fc" + + "\7\u02fe\2\2\u11fb\u11fd\n%\2\2\u11fc\u11fb\3\2\2\2\u11fd\u11fe\3\2\2" + + "\2\u11fe\u11fc\3\2\2\2\u11fe\u11ff\3\2\2\2\u11ff\u1200\3\2\2\2\u1200\u1237" + + "\7\u02fe\2\2\u1201\u1202\7\u02fd\2\2\u1202\u1204\5\u0202\u0102\2\u1203" + + "\u1205\n%\2\2\u1204\u1203\3\2\2\2\u1205\u1206\3\2\2\2\u1206\u1204\3\2" + + "\2\2\u1206\u1207\3\2\2\2\u1207\u1208\3\2\2\2\u1208\u1209\7\u02fd\2\2\u1209" + + "\u120a\5\u0202\u0102\2\u120a\u120b\7\u02fd\2\2\u120b\u1237\3\2\2\2\u120c" + + "\u1237\5\u01b4\u00db\2\u120d\u1237\5\u017e\u00c0\2\u120e\u1237\5\u01b8" + + "\u00dd\2\u120f\u1210\7\u0300\2\2\u1210\u1211\5\u01b2\u00da\2\u1211\u1212" + + "\7\u0301\2\2\u1212\u1237\3\2\2\2\u1213\u1214\5\u01c4\u00e3\2\u1214\u1215" + + "\7\u030a\2\2\u1215\u1237\3\2\2\2\u1216\u1217\t&\2\2\u1217\u1237\5\u01b2" + + "\u00da \u1218\u1219\t\'\2\2\u1219\u1237\5\u01b2\u00da\37\u121a\u121b\t" + + "(\2\2\u121b\u1237\5\u01b2\u00da\23\u121c\u1237\5\u01e0\u00f1\2\u121d\u1237" + + "\5\u0202\u0102\2\u121e\u121f\7A\2\2\u121f\u1220\7\u0300\2\2\u1220\u1221" + + "\5\u01b2\u00da\2\u1221\u1222\7\35\2\2\u1222\u1223\5\u01d8\u00ed\2\u1223" + + "\u1224\7\u0301\2\2\u1224\u1237\3\2\2\2\u1225\u1226\5\u0208\u0105\2\u1226" + + "\u1227\7\u0309\2\2\u1227\u1228\5\u020a\u0106\2\u1228\u1237\3\2\2\2\u1229" + + "\u1237\5\u01b6\u00dc\2\u122a\u122b\5\u01d8\u00ed\2\u122b\u122c\5\u01b2" + + "\u00da\13\u122c\u1237\3\2\2\2\u122d\u1237\5\u01ca\u00e6\2\u122e\u1237" + + "\5\u01e2\u00f2\2\u122f\u1230\7\u00d5\2\2\u1230\u1237\5\u01b2\u00da\5\u1231" + + "\u1237\7\u030d\2\2\u1232\u1233\7\u0300\2\2\u1233\u1234\5\u015a\u00ae\2" + + "\u1234\u1235\7\u0301\2\2\u1235\u1237\3\2\2\2\u1236\u11ec\3\2\2\2\u1236" + + "\u11ee\3\2\2\2\u1236\u11ef\3\2\2\2\u1236\u11f0\3\2\2\2\u1236\u11f1\3\2" + + "\2\2\u1236\u11f2\3\2\2\2\u1236\u11f3\3\2\2\2\u1236\u11f4\3\2\2\2\u1236" + + "\u11f5\3\2\2\2\u1236\u11f6\3\2\2\2\u1236\u11f7\3\2\2\2\u1236\u11f8\3\2" + + "\2\2\u1236\u11f9\3\2\2\2\u1236\u11fa\3\2\2\2\u1236\u1201\3\2\2\2\u1236" + + "\u120c\3\2\2\2\u1236\u120d\3\2\2\2\u1236\u120e\3\2\2\2\u1236\u120f\3\2" + + "\2\2\u1236\u1213\3\2\2\2\u1236\u1216\3\2\2\2\u1236\u1218\3\2\2\2\u1236" + + "\u121a\3\2\2\2\u1236\u121c\3\2\2\2\u1236\u121d\3\2\2\2\u1236\u121e\3\2" + + "\2\2\u1236\u1225\3\2\2\2\u1236\u1229\3\2\2\2\u1236\u122a\3\2\2\2\u1236" + + "\u122d\3\2\2\2\u1236\u122e\3\2\2\2\u1236\u122f\3\2\2\2\u1236\u1231\3\2" + + "\2\2\u1236\u1232\3\2\2\2\u1237\u129b\3\2\2\2\u1238\u1239\f\35\2\2\u1239" + + "\u123a\t)\2\2\u123a\u129a\5\u01b2\u00da\36\u123b\u123c\f\34\2\2\u123c" + + "\u123d\t*\2\2\u123d\u129a\5\u01b2\u00da\35\u123e\u123f\f\33\2\2\u123f" + + "\u1240\t+\2\2\u1240\u129a\5\u01b2\u00da\34\u1241\u1242\f\32\2\2\u1242" + + "\u1243\t,\2\2\u1243\u129a\5\u01b2\u00da\33\u1244\u1248\f\31\2\2\u1245" + + "\u1246\7\u016f\2\2\u1246\u1249\7\u0137\2\2\u1247\u1249\7\u0137\2\2\u1248" + + "\u1245\3\2\2\2\u1248\u1247\3\2\2\2\u1249\u124a\3\2\2\2\u124a\u129a\5\u01b2" + + "\u00da\32\u124b\u124d\f\30\2\2\u124c\u124e\7\u016f\2\2\u124d\u124c\3\2" + + "\2\2\u124d\u124e\3\2\2\2\u124e\u124f\3\2\2\2\u124f\u1250\7-\2\2\u1250" + + "\u1251\5\u01b2\u00da\2\u1251\u1252\7\31\2\2\u1252\u1253\5\u01b2\u00da" + + "\31\u1253\u129a\3\2\2\2\u1254\u1255\f\27\2\2\u1255\u1256\7\u010b\2\2\u1256" + + "\u129a\5\u01b2\u00da\30\u1257\u1258\f\26\2\2\u1258\u1259\t-\2\2\u1259" + + "\u129a\5\u01b2\u00da\27\u125a\u125b\f\24\2\2\u125b\u125d\7\u0123\2\2\u125c" + + "\u125e\7\u016f\2\2\u125d\u125c\3\2\2\2\u125d\u125e\3\2\2\2\u125e\u125f" + + "\3\2\2\2\u125f\u1260\7\u00ba\2\2\u1260\u1261\7\u00ee\2\2\u1261\u129a\5" + + "\u01b2\u00da\25\u1262\u1263\f#\2\2\u1263\u1264\7\u0302\2\2\u1264\u1265" + + "\5\u01b2\u00da\2\u1265\u1266\7\u0303\2\2\u1266\u129a\3\2\2\2\u1267\u1268" + + "\f\36\2\2\u1268\u129a\7\u0315\2\2\u1269\u126a\f\25\2\2\u126a\u126f\7\u0123" + + "\2\2\u126b\u1270\5\u01b4\u00db\2\u126c\u1270\7\u0174\2\2\u126d\u126e\7" + + "\u016f\2\2\u126e\u1270\7\u0174\2\2\u126f\u126b\3\2\2\2\u126f\u126c\3\2" + + "\2\2\u126f\u126d\3\2\2\2\u1270\u129a\3\2\2\2\u1271\u127b\f\r\2\2\u1272" + + "\u1274\7\u0302\2\2\u1273\u1275\5\u01b2\u00da\2\u1274\u1273\3\2\2\2\u1274" + + "\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278\7\u02fb\2\2\u1277\u1279" + + "\5\u01b2\u00da\2\u1278\u1277\3\2\2\2\u1278\u1279\3\2\2\2\u1279\u127a\3" + + "\2\2\2\u127a\u127c\7\u0303\2\2\u127b\u1272\3\2\2\2\u127c\u127d\3\2\2\2" + + "\u127d\u127b\3\2\2\2\u127d\u127e\3\2\2\2\u127e\u129a\3\2\2\2\u127f\u1282" + + "\f\f\2\2\u1280\u1281\7\u02fc\2\2\u1281\u1283\5\u01d8\u00ed\2\u1282\u1280" + + "\3\2\2\2\u1283\u1284\3\2\2\2\u1284\u1282\3\2\2\2\u1284\u1285\3\2\2\2\u1285" + + "\u129a\3\2\2\2\u1286\u1287\f\n\2\2\u1287\u1288\7\u0123\2\2\u1288\u1289" + + "\7\u017d\2\2\u1289\u128a\7\u0300\2\2\u128a\u128b\5\u01d8\u00ed\2\u128b" + + "\u128c\7\u0301\2\2\u128c\u129a\3\2\2\2\u128d\u128e\f\t\2\2\u128e\u1291" + + "\7\u0309\2\2\u128f\u1292\5\u0202\u0102\2\u1290\u1292\7\u02ff\2\2\u1291" + + "\u128f\3\2\2\2\u1291\u1290\3\2\2\2\u1292\u129a\3\2\2\2\u1293\u1294\f\6" + + "\2\2\u1294\u1295\7#\2\2\u1295\u1296\7\u0244\2\2\u1296\u1297\7\u0290\2" + + "\2\u1297\u1298\3\2\2\2\u1298\u129a\7\u030a\2\2\u1299\u1238\3\2\2\2\u1299" + + "\u123b\3\2\2\2\u1299\u123e\3\2\2\2\u1299\u1241\3\2\2\2\u1299\u1244\3\2" + + "\2\2\u1299\u124b\3\2\2\2\u1299\u1254\3\2\2\2\u1299\u1257\3\2\2\2\u1299" + + "\u125a\3\2\2\2\u1299\u1262\3\2\2\2\u1299\u1267\3\2\2\2\u1299\u1269\3\2" + + "\2\2\u1299\u1271\3\2\2\2\u1299\u127f\3\2\2\2\u1299\u1286\3\2\2\2\u1299" + + "\u128d\3\2\2\2\u1299\u1293\3\2\2\2\u129a\u129d\3\2\2\2\u129b\u1299\3\2" + + "\2\2\u129b\u129c\3\2\2\2\u129c\u01b3\3\2\2\2\u129d\u129b\3\2\2\2\u129e" + + "\u129f\b\u00db\1\2\u129f\u12a4\7\u025b\2\2\u12a0\u12a4\7\u00dc\2\2\u12a1" + + "\u12a2\7\u016f\2\2\u12a2\u12a4\5\u01b4\u00db\5\u12a3\u129e\3\2\2\2\u12a3" + + "\u12a0\3\2\2\2\u12a3\u12a1\3\2\2\2\u12a4\u12ad\3\2\2\2\u12a5\u12a6\f\4" + + "\2\2\u12a6\u12a7\7\31\2\2\u12a7\u12ac\5\u01b4\u00db\5\u12a8\u12a9\f\3" + + "\2\2\u12a9\u12aa\7\u0189\2\2\u12aa\u12ac\5\u01b4\u00db\4\u12ab\u12a5\3" + + "\2\2\2\u12ab\u12a8\3\2\2\2\u12ac\u12af\3\2\2\2\u12ad\u12ab\3\2\2\2\u12ad" + + "\u12ae\3\2\2\2\u12ae\u01b5\3\2\2\2\u12af\u12ad\3\2\2\2\u12b0\u12b1\7@" + + "\2\2\u12b1\u12b7\5\u01b2\u00da\2\u12b2\u12b3\7\u0283\2\2\u12b3\u12b4\5" + + "\u01b2\u00da\2\u12b4\u12b5\7\u0242\2\2\u12b5\u12b6\5\u01b2\u00da\2\u12b6" + + "\u12b8\3\2\2\2\u12b7\u12b2\3\2\2\2\u12b8\u12b9\3\2\2\2\u12b9\u12b7\3\2" + + "\2\2\u12b9\u12ba\3\2\2\2\u12ba\u12bd\3\2\2\2\u12bb\u12bc\7\u00c4\2\2\u12bc" + + "\u12be\5\u01b2\u00da\2\u12bd\u12bb\3\2\2\2\u12bd\u12be\3\2\2\2\u12be\u12bf" + + "\3\2\2\2\u12bf\u12c0\7\u00c8\2\2\u12c0\u12d2\3\2\2\2\u12c1\u12c7\7@\2" + + "\2\u12c2\u12c3\7\u0283\2\2\u12c3\u12c4\5\u01ec\u00f7\2\u12c4\u12c5\7\u0242" + + "\2\2\u12c5\u12c6\5\u01b2\u00da\2\u12c6\u12c8\3\2\2\2\u12c7\u12c2\3\2\2" + + "\2\u12c8\u12c9\3\2\2\2\u12c9\u12c7\3\2\2\2\u12c9\u12ca\3\2\2\2\u12ca\u12cd" + + "\3\2\2\2\u12cb\u12cc\7\u00c4\2\2\u12cc\u12ce\5\u01b2\u00da\2\u12cd\u12cb" + + "\3\2\2\2\u12cd\u12ce\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf\u12d0\7\u00c8\2" + + "\2\u12d0\u12d2\3\2\2\2\u12d1\u12b0\3\2\2\2\u12d1\u12c1\3\2\2\2\u12d2\u01b7" + + "\3\2\2\2\u12d3\u12d4\7\u0300\2\2\u12d4\u12d9\5\u01b2\u00da\2\u12d5\u12d6" + + "\7\u02fa\2\2\u12d6\u12d8\5\u01b2\u00da\2\u12d7\u12d5\3\2\2\2\u12d8\u12db" + + "\3\2\2\2\u12d9\u12d7\3\2\2\2\u12d9\u12da\3\2\2\2\u12da\u12dc\3\2\2\2\u12db" + + "\u12d9\3\2\2\2\u12dc\u12dd\7\u0301\2\2\u12dd\u01b9\3\2\2\2\u12de\u12e0" + + "\7\u0300\2\2\u12df\u12de\3\2\2\2\u12df\u12e0\3\2\2\2\u12e0\u12e1\3\2\2" + + "\2\u12e1\u12e6\5\u01b8\u00dd\2\u12e2\u12e3\7\u02fa\2\2\u12e3\u12e5\5\u01b8" + + "\u00dd\2\u12e4\u12e2\3\2\2\2\u12e5\u12e8\3\2\2\2\u12e6\u12e4\3\2\2\2\u12e6" + + "\u12e7\3\2\2\2\u12e7\u12ea\3\2\2\2\u12e8\u12e6\3\2\2\2\u12e9\u12eb\7\u0301" + + "\2\2\u12ea\u12e9\3\2\2\2\u12ea\u12eb\3\2\2\2\u12eb\u01bb\3\2\2\2\u12ec" + + "\u12ee\t.\2\2\u12ed\u12ec\3\2\2\2\u12ed\u12ee\3\2\2\2\u12ee\u12f0\3\2" + + "\2\2\u12ef\u12f1\5\u0202\u0102\2\u12f0\u12ef\3\2\2\2\u12f0\u12f1\3\2\2" + + "\2\u12f1\u12f2\3\2\2\2\u12f2\u12f4\5\u01d8\u00ed\2\u12f3\u12ed\3\2\2\2" + + "\u12f3\u12f4\3\2\2\2\u12f4\u01bd\3\2\2\2\u12f5\u12fa\5\u01bc\u00df\2\u12f6" + + "\u12f7\7\u02fa\2\2\u12f7\u12f9\5\u01bc\u00df\2\u12f8\u12f6\3\2\2\2\u12f9" + + "\u12fc\3\2\2\2\u12fa\u12f8\3\2\2\2\u12fa\u12fb\3\2\2\2\u12fb\u01bf\3\2" + + "\2\2\u12fc\u12fa\3\2\2\2\u12fd\u1302\5\u0202\u0102\2\u12fe\u12ff\7\u0300" + + "\2\2\u12ff\u1300\5\u01be\u00e0\2\u1300\u1301\7\u0301\2\2\u1301\u1303\3" + + "\2\2\2\u1302\u12fe\3\2\2\2\u1302\u1303\3\2\2\2\u1303\u01c1\3\2\2\2\u1304" + + "\u1309\5\u01c0\u00e1\2\u1305\u1306\7\u02fa\2\2\u1306\u1308\5\u01c0\u00e1" + + "\2\u1307\u1305\3\2\2\2\u1308\u130b\3\2\2\2\u1309\u1307\3\2\2\2\u1309\u130a" + + "\3\2\2\2\u130a\u01c3\3\2\2\2\u130b\u1309\3\2\2\2\u130c\u139d\7\u02d1\2" + + "\2\u130d\u139d\7\u02ea\2\2\u130e\u139d\7.\2\2\u130f\u139d\7\u02d2\2\2" + + "\u1310\u1314\7\60\2\2\u1311\u1312\7\u0300\2\2\u1312\u1313\7\u0307\2\2" + + "\u1313\u1315\7\u0301\2\2\u1314\u1311\3\2\2\2\u1314\u1315\3\2\2\2\u1315" + + "\u139d\3\2\2\2\u1316\u131a\7\u02d3\2\2\u1317\u1318\7\u0300\2\2\u1318\u1319" + + "\7\u0307\2\2\u1319\u131b\7\u0301\2\2\u131a\u1317\3\2\2\2\u131a\u131b\3" + + "\2\2\2\u131b\u139d\3\2\2\2\u131c\u139d\7\u02d4\2\2\u131d\u139d\7\64\2" + + "\2\u131e\u139d\7\u02d5\2\2\u131f\u139d\7\u02d6\2\2\u1320\u1324\7G\2\2" + + "\u1321\u1322\7\u0300\2\2\u1322\u1323\7\u0307\2\2\u1323\u1325\7\u0301\2" + + "\2\u1324\u1321\3\2\2\2\u1324\u1325\3\2\2\2\u1325\u139d\3\2\2\2\u1326\u132a" + + "\7I\2\2\u1327\u1328\7\u0300\2\2\u1328\u1329\7\u0307\2\2\u1329\u132b\7" + + "\u0301\2\2\u132a\u1327\3\2\2\2\u132a\u132b\3\2\2\2\u132b\u139d\3\2\2\2" + + "\u132c\u1330\7\u02d7\2\2\u132d\u132e\7\u0300\2\2\u132e\u132f\7\u0307\2" + + "\2\u132f\u1331\7\u0301\2\2\u1330\u132d\3\2\2\2\u1330\u1331\3\2\2\2\u1331" + + "\u139d\3\2\2\2\u1332\u139d\7\u02d8\2\2\u1333\u139d\7\u02d9\2\2\u1334\u139d" + + "\7\u0095\2\2\u1335\u133b\7\u009b\2\2\u1336\u1337\7\u0300\2\2\u1337\u1338" + + "\7\u0307\2\2\u1338\u1339\7\u02fa\2\2\u1339\u133a\7\u0307\2\2\u133a\u133c" + + "\7\u0301\2\2\u133b\u1336\3\2\2\2\u133b\u133c\3\2\2\2\u133c\u139d\3\2\2" + + "\2\u133d\u133e\7\u00bd\2\2\u133e\u139d\7\u01b0\2\2\u133f\u139d\7\u02da" + + "\2\2\u1340\u139d\7\u02db\2\2\u1341\u139d\7\u02dc\2\2\u1342\u139d\7\u011c" + + "\2\2\u1343\u139d\7\u02de\2\2\u1344\u139d\7\u02dd\2\2\u1345\u139d\7\u02df" + + "\2\2\u1346\u139d\7\u011d\2\2\u1347\u1349\7\u0120\2\2\u1348\u134a\7\u00de" + + "\2\2\u1349\u1348\3\2\2\2\u1349\u134a\3\2\2\2\u134a\u134c\3\2\2\2\u134b" + + "\u134d\7\u0307\2\2\u134c\u134b\3\2\2\2\u134c\u134d\3\2\2\2\u134d\u139d" + + "\3\2\2\2\u134e\u139d\7\u02e0\2\2\u134f\u139d\7\u02e1\2\2\u1350\u139d\7" + + "\u02e2\2\2\u1351\u139d\7\u02e3\2\2\u1352\u139d\7\u02e4\2\2\u1353\u139d" + + "\7\u02e5\2\2\u1354\u139d\7\u02e6\2\2\u1355\u135b\7\u0179\2\2\u1356\u1357" + + "\7\u0300\2\2\u1357\u1358\7\u0307\2\2\u1358\u1359\7\u02fa\2\2\u1359\u135a" + + "\7\u0307\2\2\u135a\u135c\7\u0301\2\2\u135b\u1356\3\2\2\2\u135b\u135c\3" + + "\2\2\2\u135c\u139d\3\2\2\2\u135d\u139d\7\u01a4\2\2\u135e\u139d\7\u02e7" + + "\2\2\u135f\u139d\7\u02e8\2\2\u1360\u139d\7\u02e9\2\2\u1361\u139d\7\u01c2" + + "\2\2\u1362\u139d\7\u02eb\2\2\u1363\u139d\7\u02ec\2\2\u1364\u139d\7\u02ed" + + "\2\2\u1365\u139d\7\u02ee\2\2\u1366\u139d\7\u0212\2\2\u1367\u139d\7\u02ef" + + "\2\2\u1368\u139d\7\u02f1\2\2\u1369\u136d\7\u0244\2\2\u136a\u136b\7\u0300" + + "\2\2\u136b\u136c\7\u0307\2\2\u136c\u136e\7\u0301\2\2\u136d\u136a\3\2\2" + + "\2\u136d\u136e\3\2\2\2\u136e\u1372\3\2\2\2\u136f\u1370\t/\2\2\u1370\u1371" + + "\7\u0244\2\2\u1371\u1373\7\u0290\2\2\u1372\u136f\3\2\2\2\u1372\u1373\3" + + "\2\2\2\u1373\u139d\3\2\2\2\u1374\u1378\7\u0245\2\2\u1375\u1376\7\u0300" + + "\2\2\u1376\u1377\7\u0307\2\2\u1377\u1379\7\u0301\2\2\u1378\u1375\3\2\2" + + "\2\u1378\u1379\3\2\2\2\u1379\u137d\3\2\2\2\u137a\u137b\t/\2\2\u137b\u137c" + + "\7\u0244\2\2\u137c\u137e\7\u0290\2\2\u137d\u137a\3\2\2\2\u137d\u137e\3" + + "\2\2\2\u137e\u139d\3\2\2\2\u137f\u1383\7\u02f3\2\2\u1380\u1381\7\u0300" + + "\2\2\u1381\u1382\7\u0307\2\2\u1382\u1384\7\u0301\2\2\u1383\u1380\3\2\2" + + "\2\u1383\u1384\3\2\2\2\u1384\u139d\3\2\2\2\u1385\u1389\7\u02f2\2\2\u1386" + + "\u1387\7\u0300\2\2\u1387\u1388\7\u0307\2\2\u1388\u138a\7\u0301\2\2\u1389" + + "\u1386\3\2\2\2\u1389\u138a\3\2\2\2\u138a\u139d\3\2\2\2\u138b\u139d\7\u02f4" + + "\2\2\u138c\u139d\7\u02f5\2\2\u138d\u139d\7\u02f6\2\2\u138e\u139d\7\u02f7" + + "\2\2\u138f\u1393\7\u02f8\2\2\u1390\u1391\7\u0300\2\2\u1391\u1392\7\u0307" + + "\2\2\u1392\u1394\7\u0301\2\2\u1393\u1390\3\2\2\2\u1393\u1394\3\2\2\2\u1394" + + "\u139d\3\2\2\2\u1395\u1399\7\u027c\2\2\u1396\u1397\7\u0300\2\2\u1397\u1398" + + "\7\u0307\2\2\u1398\u139a\7\u0301\2\2\u1399\u1396\3\2\2\2\u1399\u139a\3" + + "\2\2\2\u139a\u139d\3\2\2\2\u139b\u139d\7\u02f9\2\2\u139c\u130c\3\2\2\2" + + "\u139c\u130d\3\2\2\2\u139c\u130e\3\2\2\2\u139c\u130f\3\2\2\2\u139c\u1310" + + "\3\2\2\2\u139c\u1316\3\2\2\2\u139c\u131c\3\2\2\2\u139c\u131d\3\2\2\2\u139c" + + "\u131e\3\2\2\2\u139c\u131f\3\2\2\2\u139c\u1320\3\2\2\2\u139c\u1326\3\2" + + "\2\2\u139c\u132c\3\2\2\2\u139c\u1332\3\2\2\2\u139c\u1333\3\2\2\2\u139c" + + "\u1334\3\2\2\2\u139c\u1335\3\2\2\2\u139c\u133d\3\2\2\2\u139c\u133f\3\2" + + "\2\2\u139c\u1340\3\2\2\2\u139c\u1341\3\2\2\2\u139c\u1342\3\2\2\2\u139c" + + "\u1343\3\2\2\2\u139c\u1344\3\2\2\2\u139c\u1345\3\2\2\2\u139c\u1346\3\2" + + "\2\2\u139c\u1347\3\2\2\2\u139c\u134e\3\2\2\2\u139c\u134f\3\2\2\2\u139c" + + "\u1350\3\2\2\2\u139c\u1351\3\2\2\2\u139c\u1352\3\2\2\2\u139c\u1353\3\2" + + "\2\2\u139c\u1354\3\2\2\2\u139c\u1355\3\2\2\2\u139c\u135d\3\2\2\2\u139c" + + "\u135e\3\2\2\2\u139c\u135f\3\2\2\2\u139c\u1360\3\2\2\2\u139c\u1361\3\2" + + "\2\2\u139c\u1362\3\2\2\2\u139c\u1363\3\2\2\2\u139c\u1364\3\2\2\2\u139c" + + "\u1365\3\2\2\2\u139c\u1366\3\2\2\2\u139c\u1367\3\2\2\2\u139c\u1368\3\2" + + "\2\2\u139c\u1369\3\2\2\2\u139c\u1374\3\2\2\2\u139c\u137f\3\2\2\2\u139c" + + "\u1385\3\2\2\2\u139c\u138b\3\2\2\2\u139c\u138c\3\2\2\2\u139c\u138d\3\2" + + "\2\2\u139c\u138e\3\2\2\2\u139c\u138f\3\2\2\2\u139c\u1395\3\2\2\2\u139c" + + "\u139b\3\2\2\2\u139d\u01c5\3\2\2\2\u139e\u139f\t\60\2\2\u139f\u01c7\3" + + "\2\2\2\u13a0\u13a5\3\2\2\2\u13a1\u13a2\7\u0123\2\2\u13a2\u13a5\7\u017d" + + "\2\2\u13a3\u13a5\7\22\2\2\u13a4\u13a0\3\2\2\2\u13a4\u13a1\3\2\2\2\u13a4" + + "\u13a3\3\2\2\2\u13a5\u01c9\3\2\2\2\u13a6\u13a7\5\u0202\u0102\2\u13a7\u13a9" + + "\7\u0300\2\2\u13a8\u13aa\t!\2\2\u13a9\u13a8\3\2\2\2\u13a9\u13aa\3\2\2" + + "\2\u13aa\u13ab\3\2\2\2\u13ab\u13b0\5\u01b2\u00da\2\u13ac\u13ad\7\u02fa" + + "\2\2\u13ad\u13af\5\u01b2\u00da\2\u13ae\u13ac\3\2\2\2\u13af\u13b2\3\2\2" + + "\2\u13b0\u13ae\3\2\2\2\u13b0\u13b1\3\2\2\2\u13b1\u13b4\3\2\2\2\u13b2\u13b0" + + "\3\2\2\2\u13b3\u13b5\5\u01a0\u00d1\2\u13b4\u13b3\3\2\2\2\u13b4\u13b5\3" + + "\2\2\2\u13b5\u13b6\3\2\2\2\u13b6\u13bd\7\u0301\2\2\u13b7\u13b8\7\u00df" + + "\2\2\u13b8\u13b9\7\u0300\2\2\u13b9\u13ba\7\u0285\2\2\u13ba\u13bb\5\u0184" + + "\u00c3\2\u13bb\u13bc\7\u0301\2\2\u13bc\u13be\3\2\2\2\u13bd\u13b7\3\2\2" + + "\2\u13bd\u13be\3\2\2\2\u13be\u13e6\3\2\2\2\u13bf\u13c0\5\u0202\u0102\2" + + "\u13c0\u13c1\7\u0300\2\2\u13c1\u13c2\7\u02ff\2\2\u13c2\u13c9\7\u0301\2" + + "\2\u13c3\u13c4\7\u00df\2\2\u13c4\u13c5\7\u0300\2\2\u13c5\u13c6\7\u0285" + + "\2\2\u13c6\u13c7\5\u0184\u00c3\2\u13c7\u13c8\7\u0301\2\2\u13c8\u13ca\3" + + "\2\2\2\u13c9\u13c3\3\2\2\2\u13c9\u13ca\3\2\2\2\u13ca\u13e6\3\2\2\2\u13cb" + + "\u13cc\5\u0202\u0102\2\u13cc\u13d5\7\u0300\2\2\u13cd\u13d2\5\u01b2\u00da" + + "\2\u13ce\u13cf\7\u02fa\2\2\u13cf\u13d1\5\u01b2\u00da\2\u13d0\u13ce\3\2" + + "\2\2\u13d1\u13d4\3\2\2\2\u13d2\u13d0\3\2\2\2\u13d2\u13d3\3\2\2\2\u13d3" + + "\u13d6\3\2\2\2\u13d4\u13d2\3\2\2\2\u13d5\u13cd\3\2\2\2\u13d5\u13d6\3\2" + + "\2\2\u13d6\u13d7\3\2\2\2\u13d7\u13d8\7\u0301\2\2\u13d8\u13d9\7\u0289\2" + + "\2\u13d9\u13da\7\u00fc\2\2\u13da\u13db\7\u0300\2\2\u13db\u13dc\5\u01a0" + + "\u00d1\2\u13dc\u13e3\7\u0301\2\2\u13dd\u13de\7\u00df\2\2\u13de\u13df\7" + + "\u0300\2\2\u13df\u13e0\7\u0285\2\2\u13e0\u13e1\5\u0184\u00c3\2\u13e1\u13e2" + + "\7\u0301\2\2\u13e2\u13e4\3\2\2\2\u13e3\u13dd\3\2\2\2\u13e3\u13e4\3\2\2" + + "\2\u13e4\u13e6\3\2\2\2\u13e5\u13a6\3\2\2\2\u13e5\u13bf\3\2\2\2\u13e5\u13cb" + + "\3\2\2\2\u13e6\u01cb\3\2\2\2\u13e7\u13ea\7\u030a\2\2\u13e8\u13ea\5\u0202" + + "\u0102\2\u13e9\u13e7\3\2\2\2\u13e9\u13e8\3\2\2\2\u13ea\u01cd\3\2\2\2\u13eb" + + "\u13f0\5\u01cc\u00e7\2\u13ec\u13ed\7\u02fa\2\2\u13ed\u13ef\5\u01cc\u00e7" + + "\2\u13ee\u13ec\3\2\2\2\u13ef\u13f2\3\2\2\2\u13f0\u13ee\3\2\2\2\u13f0\u13f1" + + "\3\2\2\2\u13f1\u01cf\3\2\2\2\u13f2\u13f0\3\2\2\2\u13f3\u13f8\5\u0202\u0102" + + "\2\u13f4\u13f5\7\u02fa\2\2\u13f5\u13f7\5\u0202\u0102\2\u13f6\u13f4\3\2" + + "\2\2\u13f7\u13fa\3\2\2\2\u13f8\u13f6\3\2\2\2\u13f8\u13f9\3\2\2\2\u13f9" + + "\u01d1\3\2\2\2\u13fa\u13f8\3\2\2\2\u13fb\u13fe\5\u0202\u0102\2\u13fc\u13fd" + + "\7\u0319\2\2\u13fd\u13ff\5\u01fe\u0100\2\u13fe\u13fc\3\2\2\2\u13fe\u13ff" + + "\3\2\2\2\u13ff\u01d3\3\2\2\2\u1400\u1405\5\u01d2\u00ea\2\u1401\u1402\7" + + "\u02fa\2\2\u1402\u1404\5\u01d2\u00ea\2\u1403\u1401\3\2\2\2\u1404\u1407" + + "\3\2\2\2\u1405\u1403\3\2\2\2\u1405\u1406\3\2\2\2\u1406\u01d5\3\2\2\2\u1407" + + "\u1405\3\2\2\2\u1408\u1409\5\u0202\u0102\2\u1409\u01d7\3\2\2\2\u140a\u140d" + + "\5\u01c4\u00e3\2\u140b\u140d\5\u0202\u0102\2\u140c\u140a\3\2\2\2\u140c" + + "\u140b\3\2\2\2\u140d\u1415\3\2\2\2\u140e\u1410\7\u0302\2\2\u140f\u1411" + + "\7\u0307\2\2\u1410\u140f\3\2\2\2\u1410\u1411\3\2\2\2\u1411\u1412\3\2\2" + + "\2\u1412\u1414\7\u0303\2\2\u1413\u140e\3\2\2\2\u1414\u1417\3\2\2\2\u1415" + + "\u1413\3\2\2\2\u1415\u1416\3\2\2\2\u1416\u01d9\3\2\2\2\u1417\u1415\3\2" + + "\2\2\u1418\u141d\5\u01d8\u00ed\2\u1419\u141a\7\u02fa\2\2\u141a\u141c\5" + + "\u01d8\u00ed\2\u141b\u1419\3\2\2\2\u141c\u141f\3\2\2\2\u141d\u141b\3\2" + + "\2\2\u141d\u141e\3\2\2\2\u141e\u01db\3\2\2\2\u141f\u141d\3\2\2\2\u1420" + + "\u1423\t\61\2\2\u1421\u1423\5\u0202\u0102\2\u1422\u1420\3\2\2\2\u1422" + + "\u1421\3\2\2\2\u1423\u01dd\3\2\2\2\u1424\u1425\5\u0202\u0102\2\u1425\u01df" + + "\3\2\2\2\u1426\u1427\5\u01de\u00f0\2\u1427\u1428\7\u0300\2\2\u1428\u1429" + + "\7\u027e\2\2\u1429\u142a\5\u01b2\u00da\2\u142a\u142b\7\u0301\2\2\u142b" + + "\u144b\3\2\2\2\u142c\u142d\5\u01de\u00f0\2\u142d\u143b\7\u0300\2\2\u142e" + + "\u1433\5\u01b2\u00da\2\u142f\u1430\7\u02fa\2\2\u1430\u1432\5\u01b2\u00da" + + "\2\u1431\u142f\3\2\2\2\u1432\u1435\3\2\2\2\u1433\u1431\3\2\2\2\u1433\u1434" + + "\3\2\2\2\u1434\u1439\3\2\2\2\u1435\u1433\3\2\2\2\u1436\u1437\7\u02fa\2" + + "\2\u1437\u1438\7\u027e\2\2\u1438\u143a\5\u01b2\u00da\2\u1439\u1436\3\2" + + "\2\2\u1439\u143a\3\2\2\2\u143a\u143c\3\2\2\2\u143b\u142e\3\2\2\2\u143b" + + "\u143c\3\2\2\2\u143c\u143d\3\2\2\2\u143d\u143e\7\u0301\2\2\u143e\u144b" + + "\3\2\2\2\u143f\u1440\5\u01de\u00f0\2\u1440\u1441\7\u0300\2\2\u1441\u1442" + + "\5\u0204\u0103\2\u1442\u1443\7\u00ee\2\2\u1443\u1446\5\u01b2\u00da\2\u1444" + + "\u1445\7\u00e5\2\2\u1445\u1447\5\u01b2\u00da\2\u1446\u1444\3\2\2\2\u1446" + + "\u1447\3\2\2\2\u1447\u1448\3\2\2\2\u1448\u1449\7\u0301\2\2\u1449\u144b" + + "\3\2\2\2\u144a\u1426\3\2\2\2\u144a\u142c\3\2\2\2\u144a\u143f\3\2\2\2\u144b" + + "\u01e1\3\2\2\2\u144c\u144d\7\34\2\2\u144d\u1456\7\u0302\2\2\u144e\u1453" + + "\5\u01b2\u00da\2\u144f\u1450\7\u02fa\2\2\u1450\u1452\5\u01b2\u00da\2\u1451" + + "\u144f\3\2\2\2\u1452\u1455\3\2\2\2\u1453\u1451\3\2\2\2\u1453\u1454\3\2" + + "\2\2\u1454\u1457\3\2\2\2\u1455\u1453\3\2\2\2\u1456\u144e\3\2\2\2\u1456" + + "\u1457\3\2\2\2\u1457\u1458\3\2\2\2\u1458\u1459\7\u0303\2\2\u1459\u01e3" + + "\3\2\2\2\u145a\u145c\b\u00f3\1\2\u145b\u145d\7\u0183\2\2\u145c\u145b\3" + + "\2\2\2\u145c\u145d\3\2\2\2\u145d\u145e\3\2\2\2\u145e\u1460\5\u01d6\u00ec" + + "\2\u145f\u1461\7\u02ff\2\2\u1460\u145f\3\2\2\2\u1460\u1461\3\2\2\2\u1461" + + "\u1463\3\2\2\2\u1462\u1464\5\u01e6\u00f4\2\u1463\u1462\3\2\2\2\u1463\u1464" + + "\3\2\2\2\u1464\u1478\3\2\2\2\u1465\u1466\7\u023b\2\2\u1466\u1467\5\u0204" + + "\u0103\2\u1467\u1468\7\u0300\2\2\u1468\u146d\5\u01b2\u00da\2\u1469\u146a" + + "\7\u02fa\2\2\u146a\u146c\5\u01b2\u00da\2\u146b\u1469\3\2\2\2\u146c\u146f" + + "\3\2\2\2\u146d\u146b\3\2\2\2\u146d\u146e\3\2\2\2\u146e\u1470\3\2\2\2\u146f" + + "\u146d\3\2\2\2\u1470\u1476\7\u0301\2\2\u1471\u1472\7\u01d7\2\2\u1472\u1473" + + "\7\u0300\2\2\u1473\u1474\5\u0204\u0103\2\u1474\u1475\7\u0301\2\2\u1475" + + "\u1477\3\2\2\2\u1476\u1471\3\2\2\2\u1476\u1477\3\2\2\2\u1477\u1479\3\2" + + "\2\2\u1478\u1465\3\2\2\2\u1478\u1479\3\2\2\2\u1479\u14c5\3\2\2\2\u147a" + + "\u147c\7\u0130\2\2\u147b\u147a\3\2\2\2\u147b\u147c\3\2\2\2\u147c\u147d" + + "\3\2\2\2\u147d\u147e\7\u0300\2\2\u147e\u147f\5\4\3\2\u147f\u1481\7\u0301" + + "\2\2\u1480\u1482\7\35\2\2\u1481\u1480\3\2\2\2\u1481\u1482\3\2\2\2\u1482" + + "\u1483\3\2\2\2\u1483\u148f\5\u020c\u0107\2\u1484\u1485\7\u0300\2\2\u1485" + + "\u148a\5\u020e\u0108\2\u1486\u1487\7\u02fa\2\2\u1487\u1489\5\u020e\u0108" + + "\2\u1488\u1486\3\2\2\2\u1489\u148c\3\2\2\2\u148a\u1488\3\2\2\2\u148a\u148b" + + "\3\2\2\2\u148b\u148d\3\2\2\2\u148c\u148a\3\2\2\2\u148d\u148e\7\u0301\2" + + "\2\u148e\u1490\3\2\2\2\u148f\u1484\3\2\2\2\u148f\u1490\3\2\2\2\u1490\u14c5" + + "\3\2\2\2\u1491\u1493\7\u0130\2\2\u1492\u1491\3\2\2\2\u1492\u1493\3\2\2" + + "\2\u1493\u1494\3\2\2\2\u1494\u1497\5\u01e0\u00f1\2\u1495\u1496\7\u0288" + + "\2\2\u1496\u1498\7\u018c\2\2\u1497\u1495\3\2\2\2\u1497\u1498\3\2\2\2\u1498" + + "\u149a\3\2\2\2\u1499\u149b\5\u01e6\u00f4\2\u149a\u1499\3\2\2\2\u149a\u149b" + + "\3\2\2\2\u149b\u14c5\3\2\2\2\u149c\u149e\7\u0130\2\2\u149d\u149c\3\2\2" + + "\2\u149d\u149e\3\2\2\2\u149e\u149f\3\2\2\2\u149f\u14a0\5\u01e0\u00f1\2" + + "\u14a0\u14a1\7\35\2\2\u14a1\u14a2\7\u0300\2\2\u14a2\u14a7\5\u0210\u0109" + + "\2\u14a3\u14a4\7\u02fa\2\2\u14a4\u14a6\5\u0210\u0109\2\u14a5\u14a3\3\2" + + "\2\2\u14a6\u14a9\3\2\2\2\u14a7\u14a5\3\2\2\2\u14a7\u14a8\3\2\2\2\u14a8" + + "\u14aa\3\2\2\2\u14a9\u14a7\3\2\2\2\u14aa\u14ab\7\u0301\2\2\u14ab\u14c5" + + "\3\2\2\2\u14ac\u14ae\7\u0130\2\2\u14ad\u14ac\3\2\2\2\u14ad\u14ae\3\2\2" + + "\2\u14ae\u14af\3\2\2\2\u14af\u14b0\7\u01f1\2\2\u14b0\u14b1\7\u00ee\2\2" + + "\u14b1\u14b2\7\u0300\2\2\u14b2\u14b3\5\u01e0\u00f1\2\u14b3\u14c0\7\u0301" + + "\2\2\u14b4\u14b5\7\35\2\2\u14b5\u14b6\7\u0300\2\2\u14b6\u14bb\5\u0210" + + "\u0109\2\u14b7\u14b8\7\u02fa\2\2\u14b8\u14ba\5\u0210\u0109\2\u14b9\u14b7" + + "\3\2\2\2\u14ba\u14bd\3\2\2\2\u14bb\u14b9\3\2\2\2\u14bb\u14bc\3\2\2\2\u14bc" + + "\u14be\3\2\2\2\u14bd\u14bb\3\2\2\2\u14be\u14bf\7\u0301\2\2\u14bf\u14c1" + + "\3\2\2\2\u14c0\u14b4\3\2\2\2\u14c0\u14c1\3\2\2\2\u14c1\u14c2\3\2\2\2\u14c2" + + "\u14c3\7\u0301\2\2\u14c3\u14c5\3\2\2\2\u14c4\u145a\3\2\2\2\u14c4\u147b" + + "\3\2\2\2\u14c4\u1492\3\2\2\2\u14c4\u149d\3\2\2\2\u14c4\u14ad\3\2\2\2\u14c5" + + "\u14d7\3\2\2\2\u14c6\u14c8\f\3\2\2\u14c7\u14c9\7\u0163\2\2\u14c8\u14c7" + + "\3\2\2\2\u14c8\u14c9\3\2\2\2\u14c9\u14ca\3\2\2\2\u14ca\u14cc\5\u01e8\u00f5" + + "\2\u14cb\u14cd\7\u0300\2\2\u14cc\u14cb\3\2\2\2\u14cc\u14cd\3\2\2\2\u14cd" + + "\u14ce\3\2\2\2\u14ce\u14d0\5\u01e4\u00f3\2\u14cf\u14d1\5\u01ea\u00f6\2" + + "\u14d0\u14cf\3\2\2\2\u14d0\u14d1\3\2\2\2\u14d1\u14d3\3\2\2\2\u14d2\u14d4" + + "\7\u0301\2\2\u14d3\u14d2\3\2\2\2\u14d3\u14d4\3\2\2\2\u14d4\u14d6\3\2\2" + + "\2\u14d5\u14c6\3\2\2\2\u14d6\u14d9\3\2\2\2\u14d7\u14d5\3\2\2\2\u14d7\u14d8" + + "\3\2\2\2\u14d8\u01e5\3\2\2\2\u14d9\u14d7\3\2\2\2\u14da\u14dc\7\35\2\2" + + "\u14db\u14da\3\2\2\2\u14db\u14dc\3\2\2\2\u14dc\u14dd\3\2\2\2\u14dd\u14e6" + + "\5\u020c\u0107\2\u14de\u14e3\5\u020e\u0108\2\u14df\u14e0\7\u02fa\2\2\u14e0" + + "\u14e2\5\u020e\u0108\2\u14e1\u14df\3\2\2\2\u14e2\u14e5\3\2\2\2\u14e3\u14e1" + + "\3\2\2\2\u14e3\u14e4\3\2\2\2\u14e4\u14e7\3\2\2\2\u14e5\u14e3\3\2\2\2\u14e6" + + "\u14de\3\2\2\2\u14e6\u14e7\3\2\2\2\u14e7\u14f1\3\2\2\2\u14e8\u14ea\7\35" + + "\2\2\u14e9\u14e8\3\2\2\2\u14e9\u14ea\3\2\2\2\u14ea\u14eb\3\2\2\2\u14eb" + + "\u14ec\5\u020c\u0107\2\u14ec\u14ed\7\u0300\2\2\u14ed\u14ee\5\u01ce\u00e8" + + "\2\u14ee\u14ef\7\u0301\2\2\u14ef\u14f1\3\2\2\2\u14f0\u14db\3\2\2\2\u14f0" + + "\u14e9\3\2\2\2\u14f1\u01e7\3\2\2\2\u14f2\u14f4\7\u0114\2\2\u14f3\u14f2" + + "\3\2\2\2\u14f3\u14f4\3\2\2\2\u14f4\u14f5\3\2\2\2\u14f5\u1508\7\u0126\2" + + "\2\u14f6\u14f8\7\u0133\2\2\u14f7\u14f9\7\u018f\2\2\u14f8\u14f7\3\2\2\2" + + "\u14f8\u14f9\3\2\2\2\u14f9\u14fa\3\2\2\2\u14fa\u1508\7\u0126\2\2\u14fb" + + "\u14fd\7\u01e6\2\2\u14fc\u14fe\7\u018f\2\2\u14fd\u14fc\3\2\2\2\u14fd\u14fe" + + "\3\2\2\2\u14fe\u14ff\3\2\2\2\u14ff\u1508\7\u0126\2\2\u1500\u1502\7\u00ef" + + "\2\2\u1501\u1503\7\u018f\2\2\u1502\u1501\3\2\2\2\u1502\u1503\3\2\2\2\u1503" + + "\u1504\3\2\2\2\u1504\u1508\7\u0126\2\2\u1505\u1506\7\u0083\2\2\u1506\u1508" + + "\7\u0126\2\2\u1507\u14f3\3\2\2\2\u1507\u14f6\3\2\2\2\u1507\u14fb\3\2\2" + + "\2\u1507\u1500\3\2\2\2\u1507\u1505\3\2\2\2\u1508\u01e9\3\2\2\2\u1509\u150a" + + "\7\u0182\2\2\u150a\u1518\5\u01ec\u00f7\2\u150b\u150c\7\u0273\2\2\u150c" + + "\u150d\7\u0300\2\2\u150d\u1512\5\u020a\u0106\2\u150e\u150f\7\u02fa\2\2" + + "\u150f\u1511\5\u020a\u0106\2\u1510\u150e\3\2\2\2\u1511\u1514\3\2\2\2\u1512" + + "\u1510\3\2\2\2\u1512\u1513\3\2\2\2\u1513\u1515\3\2\2\2\u1514\u1512\3\2" + + "\2\2\u1515\u1516\7\u0301\2\2\u1516\u1518\3\2\2\2\u1517\u1509\3\2\2\2\u1517" + + "\u150b\3\2\2\2\u1518\u01eb\3\2\2\2\u1519\u151a\b\u00f7\1\2\u151a\u1526" + + "\5\u01b2\u00da\2\u151b\u151c\5\u01b2\u00da\2\u151c\u151d\5\u01c8\u00e5" + + "\2\u151d\u151e\5\u01b2\u00da\2\u151e\u1526\3\2\2\2\u151f\u1520\7\u0300" + + "\2\2\u1520\u1521\5\u01ec\u00f7\2\u1521\u1522\7\u0301\2\2\u1522\u1526\3" + + "\2\2\2\u1523\u1524\7\u016f\2\2\u1524\u1526\5\u01ec\u00f7\3\u1525\u1519" + + "\3\2\2\2\u1525\u151b\3\2\2\2\u1525\u151f\3\2\2\2\u1525\u1523\3\2\2\2\u1526" + + "\u152f\3\2\2\2\u1527\u1528\f\5\2\2\u1528\u1529\7\31\2\2\u1529\u152e\5" + + "\u01ec\u00f7\6\u152a\u152b\f\4\2\2\u152b\u152c\7\u0189\2\2\u152c\u152e" + + "\5\u01ec\u00f7\5\u152d\u1527\3\2\2\2\u152d\u152a\3\2\2\2\u152e\u1531\3" + + "\2\2\2\u152f\u152d\3\2\2\2\u152f\u1530\3\2\2\2\u1530\u01ed\3\2\2\2\u1531" + + "\u152f\3\2\2\2\u1532\u154d\7\u02ff\2\2\u1533\u1535\t\b\2\2\u1534\u1533" + + "\3\2\2\2\u1534\u1535\3\2\2\2\u1535\u1537\3\2\2\2\u1536\u1538\5\u0202\u0102" + + "\2\u1537\u1536\3\2\2\2\u1537\u1538\3\2\2\2\u1538\u1539\3\2\2\2\u1539\u154d" + + "\5\u01da\u00ee\2\u153a\u153c\t\b\2\2\u153b\u153a\3\2\2\2\u153b\u153c\3" + + "\2\2\2\u153c\u153e\3\2\2\2\u153d\u153f\5\u0202\u0102\2\u153e\u153d\3\2" + + "\2\2\u153e\u153f\3\2\2\2\u153f\u1540\3\2\2\2\u1540\u1541\5\u01da\u00ee" + + "\2\u1541\u1542\3\2\2\2\u1542\u1543\7\u018a\2\2\u1543\u1545\78\2\2\u1544" + + "\u1546\t\b\2\2\u1545\u1544\3\2\2\2\u1545\u1546\3\2\2\2\u1546\u1548\3\2" + + "\2\2\u1547\u1549\5\u0202\u0102\2\u1548\u1547\3\2\2\2\u1548\u1549\3\2\2" + + "\2\u1549\u154a\3\2\2\2\u154a\u154b\5\u01da\u00ee\2\u154b\u154d\3\2\2\2" + + "\u154c\u1532\3\2\2\2\u154c\u1534\3\2\2\2\u154c\u153b\3\2\2\2\u154d\u01ef" + + "\3\2\2\2\u154e\u154f\7\u016f\2\2\u154f\u1550\7\u0174\2\2\u1550\u01f1\3" + + "\2\2\2\u1551\u1553\5\u01f0\u00f9\2\u1552\u1551\3\2\2\2\u1553\u1554\3\2" + + "\2\2\u1554\u1552\3\2\2\2\u1554\u1555\3\2\2\2\u1555\u01f3\3\2\2\2\u1556" + + "\u1557\7\u0288\2\2\u1557\u1558\7\u0300\2\2\u1558\u1559\5\u01d4\u00eb\2" + + "\u1559\u155a\7\u0301\2\2\u155a\u155c\3\2\2\2\u155b\u1556\3\2\2\2\u155b" + + "\u155c\3\2\2\2\u155c\u1561\3\2\2\2\u155d\u155e\7\u0273\2\2\u155e\u155f" + + "\7\u010e\2\2\u155f\u1560\7\u023c\2\2\u1560\u1562\5\u0202\u0102\2\u1561" + + "\u155d\3\2\2\2\u1561\u1562\3\2\2\2\u1562\u01f5\3\2\2\2\u1563\u1569\5\u0202" + + "\u0102\2\u1564\u1565\7\u0300\2\2\u1565\u1566\5\u01b2\u00da\2\u1566\u1567" + + "\7\u0301\2\2\u1567\u1569\3\2\2\2\u1568\u1563\3\2\2\2\u1568\u1564\3\2\2" + + "\2\u1569\u156b\3\2\2\2\u156a\u156c\5\u0202\u0102\2\u156b\u156a\3\2\2\2" + + "\u156b\u156c\3\2\2\2\u156c\u156e\3\2\2\2\u156d\u156f\t\62\2\2\u156e\u156d" + + "\3\2\2\2\u156e\u156f\3\2\2\2\u156f\u1572\3\2\2\2\u1570\u1571\7\u0177\2" + + "\2\u1571\u1573\t\"\2\2\u1572\u1570\3\2\2\2\u1572\u1573\3\2\2\2\u1573\u01f7" + + "\3\2\2\2\u1574\u1575\7o\2\2\u1575\u1577\5\u01cc\u00e7\2\u1576\u1574\3" + + "\2\2\2\u1576\u1577\3\2\2\2\u1577\u15b9\3\2\2\2\u1578\u1579\7P\2\2\u1579" + + "\u157a\7\u0300\2\2\u157a\u157b\5\u01b2\u00da\2\u157b\u157e\7\u0301\2\2" + + "\u157c\u157d\7\u0169\2\2\u157d\u157f\7\u0295\2\2\u157e\u157c\3\2\2\2\u157e" + + "\u157f\3\2\2\2\u157f\u15ba\3\2\2\2\u1580\u1581\7\u0265\2\2\u1581\u1582" + + "\7\u0300\2\2\u1582\u1583\5\u01d0\u00e9\2\u1583\u1584\7\u0301\2\2\u1584" + + "\u15ba\3\2\2\2\u1585\u1586\7\u01b6\2\2\u1586\u1587\7\u0128\2\2\u1587\u1588" + + "\7\u0300\2\2\u1588\u1589\5\u01d0\u00e9\2\u1589\u158a\7\u0301\2\2\u158a" + + "\u158b\5\u01f4\u00fb\2\u158b\u15ba\3\2\2\2\u158c\u158f\7\u00cf\2\2\u158d" + + "\u158e\7\u0273\2\2\u158e\u1590\5\u01dc\u00ef\2\u158f\u158d\3\2\2\2\u158f" + + "\u1590\3\2\2\2\u1590\u1591\3\2\2\2\u1591\u1592\7\u0300\2\2\u1592\u1593" + + "\5\u01f6\u00fc\2\u1593\u1594\7\u0288\2\2\u1594\u1595\5\u01d0\u00e9\2\u1595" + + "\u1596\7\u0301\2\2\u1596\u1597\5\u01f4\u00fb\2\u1597\u1598\7\u0285\2\2" + + "\u1598\u1599\7\u0300\2\2\u1599\u159a\5\u01ec\u00f7\2\u159a\u159b\7\u0301" + + "\2\2\u159b\u159d\3\2\2\2\u159c\u158c\3\2\2\2\u159c\u159d\3\2\2\2\u159d" + + "\u15ba\3\2\2\2\u159e\u159f\7\u00e7\2\2\u159f\u15a0\7\u0128\2\2\u15a0\u15a1" + + "\7\u0300\2\2\u15a1\u15a2\5\u01d0\u00e9\2\u15a2\u15a3\7\u0301\2\2\u15a3" + + "\u15a4\7\u01c7\2\2\u15a4\u15a6\5\u0202\u0102\2\u15a5\u15a7\5\u01d0\u00e9" + + "\2\u15a6\u15a5\3\2\2\2\u15a6\u15a7\3\2\2\2\u15a7\u15ad\3\2\2\2\u15a8\u15a9" + + "\7\u0148\2\2\u15a9\u15ae\7\u00ef\2\2\u15aa\u15ab\7\u0148\2\2\u15ab\u15ae" + + "\7\u01a0\2\2\u15ac\u15ae\7\u0149\2\2\u15ad\u15a8\3\2\2\2\u15ad\u15aa\3" + + "\2\2\2\u15ad\u15ac\3\2\2\2\u15ad\u15ae\3\2\2\2\u15ae\u15b2\3\2\2\2\u15af" + + "\u15b0\7\u0182\2\2\u15b0\u15b1\7\u00a5\2\2\u15b1\u15b3\5\u0202\u0102\2" + + "\u15b2\u15af\3\2\2\2\u15b2\u15b3\3\2\2\2\u15b3\u15b7\3\2\2\2\u15b4\u15b5" + + "\7\u0182\2\2\u15b5\u15b6\7\u026b\2\2\u15b6\u15b8\5\u0202\u0102\2\u15b7" + + "\u15b4\3\2\2\2\u15b7\u15b8\3\2\2\2\u15b8\u15ba\3\2\2\2\u15b9\u1578\3\2" + + "\2\2\u15b9\u1580\3\2\2\2\u15b9\u1585\3\2\2\2\u15b9\u159c\3\2\2\2\u15b9" + + "\u159e\3\2\2\2\u15ba\u15bf\3\2\2\2\u15bb\u15bd\7\u016f\2\2\u15bc\u15bb" + + "\3\2\2\2\u15bc\u15bd\3\2\2\2\u15bd\u15be\3\2\2\2\u15be\u15c0\7\u009f\2" + + "\2\u15bf\u15bc\3\2\2\2\u15bf\u15c0\3\2\2\2\u15c0\u15c3\3\2\2\2\u15c1\u15c2" + + "\7\u0113\2\2\u15c2\u15c4\t\31\2\2\u15c3\u15c1\3\2\2\2\u15c3\u15c4\3\2" + + "\2\2\u15c4\u01f9\3\2\2\2\u15c5\u15ca\5\u01cc\u00e7\2\u15c6\u15ca\7\u008f" + + "\2\2\u15c7\u15ca\7\u0208\2\2\u15c8\u15ca\7\u01bb\2\2\u15c9\u15c5\3\2\2" + + "\2\u15c9\u15c6\3\2\2\2\u15c9\u15c7\3\2\2\2\u15c9\u15c8\3\2\2\2\u15ca\u01fb" + + "\3\2\2\2\u15cb\u15d0\5\u01fa\u00fe\2\u15cc\u15cd\7\u02fa\2\2\u15cd\u15cf" + + "\5\u01fa\u00fe\2\u15ce\u15cc\3\2\2\2\u15cf\u15d2\3\2\2\2\u15d0\u15ce\3" + + "\2\2\2\u15d0\u15d1\3\2\2\2\u15d1\u01fd\3\2\2\2\u15d2\u15d0\3\2\2\2\u15d3" + + "\u15df\7\u0182\2\2\u15d4\u15df\7\u017e\2\2\u15d5\u15df\7\u025b\2\2\u15d6" + + "\u15df\7\u00dc\2\2\u15d7\u15df\7\u028f\2\2\u15d8\u15df\7\u0169\2\2\u15d9" + + "\u15df\7\u016c\2\2\u15da\u15df\7\u030a\2\2\u15db\u15df\7\u0306\2\2\u15dc" + + "\u15df\7\u0307\2\2\u15dd\u15df\5\u0202\u0102\2\u15de\u15d3\3\2\2\2\u15de" + + "\u15d4\3\2\2\2\u15de\u15d5\3\2\2\2\u15de\u15d6\3\2\2\2\u15de\u15d7\3\2" + + "\2\2\u15de\u15d8\3\2\2\2\u15de\u15d9\3\2\2\2\u15de\u15da\3\2\2\2\u15de" + + "\u15db\3\2\2\2\u15de\u15dc\3\2\2\2\u15de\u15dd\3\2\2\2\u15df\u01ff\3\2" + + "\2\2\u15e0\u15e1\t\63\2\2\u15e1\u0201\3\2\2\2\u15e2\u15e3\b\u0102\1\2" + + "\u15e3\u15e9\5\u0200\u0101\2\u15e4\u15e9\7\u030b\2\2\u15e5\u15e9\7\u030c" + + "\2\2\u15e6\u15e9\5\u01c4\u00e3\2\u15e7\u15e9\7\u030e\2\2\u15e8\u15e2\3" + + "\2\2\2\u15e8\u15e4\3\2\2\2\u15e8\u15e5\3\2\2\2\u15e8\u15e6\3\2\2\2\u15e8" + + "\u15e7\3\2\2\2\u15e9\u15ef\3\2\2\2\u15ea\u15eb\f\5\2\2\u15eb\u15ec\7\u0309" + + "\2\2\u15ec\u15ee\5\u0202\u0102\6\u15ed\u15ea\3\2\2\2\u15ee\u15f1\3\2\2" + + "\2\u15ef\u15ed\3\2\2\2\u15ef\u15f0\3\2\2\2\u15f0\u0203\3\2\2\2\u15f1\u15ef" + + "\3\2\2\2\u15f2\u15f3\13\2\2\2\u15f3\u0205\3\2\2\2\u15f4\u15f5\5\u0202" + + "\u0102\2\u15f5\u0207\3\2\2\2\u15f6\u15f7\5\u0202\u0102\2\u15f7\u0209\3" + + "\2\2\2\u15f8\u15f9\5\u0202\u0102\2\u15f9\u020b\3\2\2\2\u15fa\u15fb\5\u0202" + + "\u0102\2\u15fb\u020d\3\2\2\2\u15fc\u15fd\5\u0202\u0102\2\u15fd\u020f\3" + + "\2\2\2\u15fe\u15ff\5\u0202\u0102\2\u15ff\u0211\3\2\2\2\u1600\u1601\5\u0202" + + "\u0102\2\u1601\u0213\3\2\2\2\u02b5\u0219\u021d\u0255\u0281\u02a1\u02be" + + "\u02d5\u02e3\u02f3\u02fc\u0300\u0327\u0335\u0340\u034a\u0352\u035b\u0361" + + "\u0367\u036a\u036e\u0372\u0376\u037a\u037f\u0385\u0389\u0392\u039a\u03a3" + + "\u03ac\u03b6\u03c0\u03c9\u03ce\u03d4\u03dd\u03e1\u03e8\u03ef\u0409\u040b" + + "\u0412\u041a\u041d\u0421\u042a\u042d\u0431\u0435\u0440\u044c\u0453\u046c" + + "\u0472\u047d\u0490\u049c\u04ac\u04b2\u04b4\u04b8\u04c2\u04cb\u04cd\u04d8" + + "\u04f3\u04ff\u0513\u0517\u051c\u051e\u0526\u0530\u053a\u0554\u0568\u056f" + + "\u0575\u057a\u0587\u058c\u0593\u0599\u059e\u05a9\u05ae\u05b6\u05bb\u05bf" + + "\u05d9\u05db\u05e1\u05e6\u05ea\u05ee\u05f2\u05f6\u0600\u0607\u0617\u0621" + + "\u0631\u0644\u0650\u0672\u0682\u0695\u06a7\u06e4\u0704\u071c\u0731\u0747" + + "\u074e\u0783\u0793\u0796\u07a6\u07ac\u07b0\u07b6\u07bc\u07c2\u07c8\u07ce" + + "\u07d4\u07da\u07e0\u07e6\u07ea\u07f0\u07f6\u07fc\u0805\u0808\u080b\u0810" + + "\u0813\u0823\u0829\u082d\u0833\u0839\u083d\u0854\u085a\u085e\u0864\u086a" + + "\u0870\u0876\u087c\u0882\u0888\u088e\u0894\u0898\u089e\u08a4\u08a8\u08b8" + + "\u08be\u08c4\u08d8\u08df\u08e7\u08f3\u08f9\u08fd\u090c\u0911\u0916\u091b" + + "\u0920\u0925\u092a\u092f\u0935\u093a\u093e\u0948\u094e\u0956\u0958\u0963" + + "\u096b\u0976\u0984\u0990\u0992\u0999\u09a0\u09a8\u09b3\u09b7\u09bc\u09c5" + + "\u09ca\u09d3\u09e2\u09f7\u09f9\u09fb\u09ff\u0a03\u0a08\u0a0b\u0a11\u0a15" + + "\u0a19\u0a1e\u0a21\u0a28\u0a2b\u0a2e\u0a36\u0a3a\u0a3c\u0a44\u0a4b\u0a4e" + + "\u0a52\u0a58\u0a5b\u0a68\u0a6e\u0a74\u0a7a\u0a80\u0a86\u0a8a\u0a8e\u0a9b" + + "\u0aa3\u0aa7\u0ab0\u0ab7\u0ac0\u0ac8\u0ad9\u0add\u0ae4\u0aec\u0af2\u0b06" + + "\u0b1b\u0b1d\u0b1f\u0b26\u0b31\u0b35\u0b39\u0b40\u0b43\u0b4a\u0b54\u0b5d" + + "\u0b61\u0b67\u0b6c\u0b6f\u0b75\u0b7b\u0b7f\u0b82\u0b86\u0b89\u0b8c\u0b95" + + "\u0b97\u0bba\u0bbd\u0bc0\u0bc8\u0bcf\u0bd4\u0bd8\u0bdc\u0be3\u0be8\u0bec" + + "\u0bef\u0bf2\u0bf6\u0bfd\u0c00\u0c2e\u0c35\u0c39\u0c3f\u0c4a\u0c52\u0c58" + + "\u0c5c\u0c62\u0c66\u0c6c\u0c74\u0c78\u0c7f\u0c83\u0c89\u0c8d\u0c95\u0c99" + + "\u0ca0\u0ca4\u0caa\u0cae\u0cb4\u0cbb\u0cbf\u0cc3\u0cc7\u0ccc\u0cd0\u0cd7" + + "\u0cdb\u0ce4\u0cea\u0cf1\u0cf7\u0cfe\u0d04\u0d0a\u0d10\u0d14\u0d1a\u0d22" + + "\u0d28\u0d2e\u0d32\u0d38\u0d3c\u0d42\u0d46\u0d4c\u0d54\u0d58\u0d5e\u0d62" + + "\u0d68\u0d72\u0d76\u0d7e\u0d82\u0d8a\u0d8e\u0d96\u0d9a\u0da0\u0dac\u0db2" + + "\u0db8\u0dbc\u0dc2\u0dcb\u0dd3\u0ddc\u0de0\u0de5\u0de9\u0dec\u0df5\u0dfa" + + "\u0e05\u0e0e\u0e15\u0e1b\u0e1f\u0e22\u0e28\u0e30\u0e35\u0e38\u0e41\u0e43" + + "\u0e45\u0e48\u0e51\u0e54\u0e58\u0e6b\u0e6e\u0e71\u0e80\u0e84\u0e86\u0e89" + + "\u0e8b\u0e93\u0e9b\u0ea3\u0eaf\u0eb5\u0eb9\u0ec0\u0ec8\u0ecf\u0ed6\u0edc" + + "\u0ee4\u0ee8\u0ef3\u0f18\u0f2c\u0f32\u0f37\u0f3b\u0f3f\u0f44\u0f4a\u0f4e" + + "\u0f51\u0f54\u0f57\u0f5a\u0f5d\u0f60\u0f63\u0f66\u0f69\u0f6c\u0f6f\u0f75" + + "\u0f78\u0f7c\u0f80\u0f84\u0f89\u0f8f\u0f93\u0f96\u0f99\u0f9c\u0f9f\u0fa2" + + "\u0fa5\u0fa8\u0fab\u0fae\u0fb1\u0fb5\u0fbc\u0fc4\u0fcd\u0fd3\u0fd9\u0fdd" + + "\u0fe4\u0fe6\u0fec\u0ff2\u0ff7\u0ffb\u1008\u100f\u1012\u1019\u1029\u1030" + + "\u1034\u1037\u103b\u103f\u1042\u1046\u1049\u104e\u1051\u1055\u1059\u105c" + + "\u105f\u1064\u106b\u106e\u1077\u107f\u1086\u108a\u108d\u1090\u1093\u1097" + + "\u109a\u109d\u10a5\u10a7\u10a9\u10ac\u10b3\u10b9\u10bd\u10c0\u10c3\u10c6" + + "\u10c9\u10cc\u10d2\u10d4\u10de\u10eb\u10f6\u10fb\u10ff\u1107\u110f\u111a" + + "\u111f\u1122\u1125\u112a\u112d\u1130\u1134\u1139\u113d\u1149\u1157\u1161" + + "\u1165\u1170\u1175\u117a\u117f\u1183\u118c\u1191\u1197\u11a1\u11a4\u11aa" + + "\u11af\u11b4\u11c1\u11c9\u11cc\u11d1\u11d3\u11db\u11e5\u11e7\u11fe\u1206" + + "\u1236\u1248\u124d\u125d\u126f\u1274\u1278\u127d\u1284\u1291\u1299\u129b" + + "\u12a3\u12ab\u12ad\u12b9\u12bd\u12c9\u12cd\u12d1\u12d9\u12df\u12e6\u12ea" + + "\u12ed\u12f0\u12f3\u12fa\u1302\u1309\u1314\u131a\u1324\u132a\u1330\u133b" + + "\u1349\u134c\u135b\u136d\u1372\u1378\u137d\u1383\u1389\u1393\u1399\u139c" + + "\u13a4\u13a9\u13b0\u13b4\u13bd\u13c9\u13d2\u13d5\u13e3\u13e5\u13e9\u13f0" + + "\u13f8\u13fe\u1405\u140c\u1410\u1415\u141d\u1422\u1433\u1439\u143b\u1446" + + "\u144a\u1453\u1456\u145c\u1460\u1463\u146d\u1476\u1478\u147b\u1481\u148a" + + "\u148f\u1492\u1497\u149a\u149d\u14a7\u14ad\u14bb\u14c0\u14c4\u14c8\u14cc" + + "\u14d0\u14d3\u14d7\u14db\u14e3\u14e6\u14e9\u14f0\u14f3\u14f8\u14fd\u1502" + + "\u1507\u1512\u1517\u1525\u152d\u152f\u1534\u1537\u153b\u153e\u1545\u1548" + + "\u154c\u1554\u155b\u1561\u1568\u156b\u156e\u1572\u1576\u157e\u158f\u159c" + + "\u15a6\u15ad\u15b2\u15b7\u15b9\u15bc\u15bf\u15c3\u15c9\u15d0\u15de\u15e8" + + "\u15ef"; + public static final String _serializedATN = Utils.join( + new String[]{ + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java new file mode 100644 index 0000000..2e6cc2b --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java @@ -0,0 +1,4819 @@ +// Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.pg; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link PostgreSQLParserListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class PostgreSQLParserBaseListener implements PostgreSQLParserListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRoot(PostgreSQLParser.RootContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRoot(PostgreSQLParser.RootContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterStmt(PostgreSQLParser.StmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitStmt(PostgreSQLParser.StmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWith_clause(PostgreSQLParser.With_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWith_clause(PostgreSQLParser.With_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWith_expr(PostgreSQLParser.With_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWith_expr(PostgreSQLParser.With_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFrom_clause(PostgreSQLParser.From_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFrom_clause(PostgreSQLParser.From_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterColumn_list(PostgreSQLParser.Column_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitColumn_list(PostgreSQLParser.Column_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFrame(PostgreSQLParser.FrameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFrame(PostgreSQLParser.FrameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFrame_start(PostgreSQLParser.Frame_startContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFrame_start(PostgreSQLParser.Frame_startContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFrame_end(PostgreSQLParser.Frame_endContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFrame_end(PostgreSQLParser.Frame_endContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFor_clause(PostgreSQLParser.For_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFor_clause(PostgreSQLParser.For_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExpr(PostgreSQLParser.ExprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExpr(PostgreSQLParser.ExprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterBool_expr(PostgreSQLParser.Bool_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitBool_expr(PostgreSQLParser.Bool_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCase_expr(PostgreSQLParser.Case_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCase_expr(PostgreSQLParser.Case_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExpr_list(PostgreSQLParser.Expr_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExpr_list(PostgreSQLParser.Expr_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFunc_sig(PostgreSQLParser.Func_sigContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFunc_sig(PostgreSQLParser.Func_sigContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterType_name(PostgreSQLParser.Type_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitType_name(PostgreSQLParser.Type_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTimezone(PostgreSQLParser.TimezoneContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTimezone(PostgreSQLParser.TimezoneContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterOper(PostgreSQLParser.OperContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitOper(PostgreSQLParser.OperContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAggregate(PostgreSQLParser.AggregateContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAggregate(PostgreSQLParser.AggregateContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterName_(PostgreSQLParser.Name_Context ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitName_(PostgreSQLParser.Name_Context ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterName_list(PostgreSQLParser.Name_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitName_list(PostgreSQLParser.Name_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterOption_expr(PostgreSQLParser.Option_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitOption_expr(PostgreSQLParser.Option_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterOption_list(PostgreSQLParser.Option_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitOption_list(PostgreSQLParser.Option_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTable_name_(PostgreSQLParser.Table_name_Context ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTable_name_(PostgreSQLParser.Table_name_Context ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterData_type(PostgreSQLParser.Data_typeContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitData_type(PostgreSQLParser.Data_typeContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterData_type_list(PostgreSQLParser.Data_type_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitData_type_list(PostgreSQLParser.Data_type_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterIndex_method(PostgreSQLParser.Index_methodContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitIndex_method(PostgreSQLParser.Index_methodContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFunc_name(PostgreSQLParser.Func_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFunc_name(PostgreSQLParser.Func_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFunc_call(PostgreSQLParser.Func_callContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFunc_call(PostgreSQLParser.Func_callContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterFrom_item(PostgreSQLParser.From_itemContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitFrom_item(PostgreSQLParser.From_itemContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterJoin_type(PostgreSQLParser.Join_typeContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitJoin_type(PostgreSQLParser.Join_typeContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterPredicate(PostgreSQLParser.PredicateContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitPredicate(PostgreSQLParser.PredicateContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRole_name(PostgreSQLParser.Role_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRole_name(PostgreSQLParser.Role_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterParam_value(PostgreSQLParser.Param_valueContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitParam_value(PostgreSQLParser.Param_valueContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterIdentifier(PostgreSQLParser.IdentifierContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitIdentifier(PostgreSQLParser.IdentifierContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterColumn_name(PostgreSQLParser.Column_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitColumn_name(PostgreSQLParser.Column_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterAlias(PostgreSQLParser.AliasContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitAlias(PostgreSQLParser.AliasContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterWindow_name(PostgreSQLParser.Window_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitWindow_name(PostgreSQLParser.Window_nameContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void enterEveryRule(ParserRuleContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void exitEveryRule(ParserRuleContext ctx) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void visitTerminal(TerminalNode node) { + } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override + public void visitErrorNode(ErrorNode node) { + } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java new file mode 100644 index 0000000..ae526c3 --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java @@ -0,0 +1,2929 @@ +// Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.pg; + +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; + +/** + * This class provides an empty implementation of {@link PostgreSQLParserVisitor}, + * which can be extended to create a visitor which only needs to handle a subset + * of the available methods. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public class PostgreSQLParserBaseVisitor extends AbstractParseTreeVisitor implements PostgreSQLParserVisitor { + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRoot(PostgreSQLParser.RootContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitStmt(PostgreSQLParser.StmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWith_clause(PostgreSQLParser.With_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWith_expr(PostgreSQLParser.With_exprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFrom_clause(PostgreSQLParser.From_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitColumn_list(PostgreSQLParser.Column_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFrame(PostgreSQLParser.FrameContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFrame_start(PostgreSQLParser.Frame_startContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFrame_end(PostgreSQLParser.Frame_endContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFor_clause(PostgreSQLParser.For_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExpr(PostgreSQLParser.ExprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitBool_expr(PostgreSQLParser.Bool_exprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCase_expr(PostgreSQLParser.Case_exprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExpr_list(PostgreSQLParser.Expr_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFunc_sig(PostgreSQLParser.Func_sigContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitType_name(PostgreSQLParser.Type_nameContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTimezone(PostgreSQLParser.TimezoneContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitOper(PostgreSQLParser.OperContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAggregate(PostgreSQLParser.AggregateContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitName_(PostgreSQLParser.Name_Context ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitName_list(PostgreSQLParser.Name_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitOption_expr(PostgreSQLParser.Option_exprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitOption_list(PostgreSQLParser.Option_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTable_name_(PostgreSQLParser.Table_name_Context ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitData_type(PostgreSQLParser.Data_typeContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitData_type_list(PostgreSQLParser.Data_type_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitIndex_method(PostgreSQLParser.Index_methodContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFunc_name(PostgreSQLParser.Func_nameContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFunc_call(PostgreSQLParser.Func_callContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitFrom_item(PostgreSQLParser.From_itemContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitJoin_type(PostgreSQLParser.Join_typeContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitPredicate(PostgreSQLParser.PredicateContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRole_name(PostgreSQLParser.Role_nameContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitParam_value(PostgreSQLParser.Param_valueContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitIdentifier(PostgreSQLParser.IdentifierContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitColumn_name(PostgreSQLParser.Column_nameContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitAlias(PostgreSQLParser.AliasContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { + return visitChildren(ctx); + } + + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override + public T visitWindow_name(PostgreSQLParser.Window_nameContext ctx) { + return visitChildren(ctx); + } +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java new file mode 100644 index 0000000..10a037a --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java @@ -0,0 +1,3720 @@ +// Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.pg; + +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link PostgreSQLParser}. + */ +public interface PostgreSQLParserListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link PostgreSQLParser#root}. + * + * @param ctx the parse tree + */ + void enterRoot(PostgreSQLParser.RootContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#root}. + * + * @param ctx the parse tree + */ + void exitRoot(PostgreSQLParser.RootContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#stmt}. + * + * @param ctx the parse tree + */ + void enterStmt(PostgreSQLParser.StmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#stmt}. + * + * @param ctx the parse tree + */ + void exitStmt(PostgreSQLParser.StmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#abort_stmt}. + * + * @param ctx the parse tree + */ + void enterAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#abort_stmt}. + * + * @param ctx the parse tree + */ + void exitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. + * + * @param ctx the parse tree + */ + void enterAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. + * + * @param ctx the parse tree + */ + void exitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. + * + * @param ctx the parse tree + */ + void enterAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. + * + * @param ctx the parse tree + */ + void exitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_role_options}. + * + * @param ctx the parse tree + */ + void enterAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_role_options}. + * + * @param ctx the parse tree + */ + void exitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. + * + * @param ctx the parse tree + */ + void enterAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. + * + * @param ctx the parse tree + */ + void exitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. + * + * @param ctx the parse tree + */ + void enterAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. + * + * @param ctx the parse tree + */ + void exitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. + * + * @param ctx the parse tree + */ + void enterAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. + * + * @param ctx the parse tree + */ + void exitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#close_stmt}. + * + * @param ctx the parse tree + */ + void enterClose_stmt(PostgreSQLParser.Close_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#close_stmt}. + * + * @param ctx the parse tree + */ + void exitClose_stmt(PostgreSQLParser.Close_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. + * + * @param ctx the parse tree + */ + void enterCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. + * + * @param ctx the parse tree + */ + void exitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#comment_stmt}. + * + * @param ctx the parse tree + */ + void enterComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#comment_stmt}. + * + * @param ctx the parse tree + */ + void exitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#commit_stmt}. + * + * @param ctx the parse tree + */ + void enterCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#commit_stmt}. + * + * @param ctx the parse tree + */ + void exitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. + * + * @param ctx the parse tree + */ + void enterCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. + * + * @param ctx the parse tree + */ + void exitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#copy_stmt}. + * + * @param ctx the parse tree + */ + void enterCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#copy_stmt}. + * + * @param ctx the parse tree + */ + void exitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. + * + * @param ctx the parse tree + */ + void enterCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. + * + * @param ctx the parse tree + */ + void exitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. + * + * @param ctx the parse tree + */ + void enterCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. + * + * @param ctx the parse tree + */ + void exitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#domain_constraint}. + * + * @param ctx the parse tree + */ + void enterDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#domain_constraint}. + * + * @param ctx the parse tree + */ + void exitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. + * + * @param ctx the parse tree + */ + void enterCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. + * + * @param ctx the parse tree + */ + void exitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. + * + * @param ctx the parse tree + */ + void enterCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. + * + * @param ctx the parse tree + */ + void exitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. + * + * @param ctx the parse tree + */ + void enterCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. + * + * @param ctx the parse tree + */ + void exitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_rule_event}. + * + * @param ctx the parse tree + */ + void enterCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_rule_event}. + * + * @param ctx the parse tree + */ + void exitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. + * + * @param ctx the parse tree + */ + void enterCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. + * + * @param ctx the parse tree + */ + void exitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. + * + * @param ctx the parse tree + */ + void enterDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. + * + * @param ctx the parse tree + */ + void exitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#declare_stmt}. + * + * @param ctx the parse tree + */ + void enterDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#declare_stmt}. + * + * @param ctx the parse tree + */ + void exitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#delete_stmt}. + * + * @param ctx the parse tree + */ + void enterDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#delete_stmt}. + * + * @param ctx the parse tree + */ + void exitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#discard_stmt}. + * + * @param ctx the parse tree + */ + void enterDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#discard_stmt}. + * + * @param ctx the parse tree + */ + void exitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. + * + * @param ctx the parse tree + */ + void enterDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. + * + * @param ctx the parse tree + */ + void exitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#execute_stmt}. + * + * @param ctx the parse tree + */ + void enterExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#execute_stmt}. + * + * @param ctx the parse tree + */ + void exitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#explain_stmt}. + * + * @param ctx the parse tree + */ + void enterExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#explain_stmt}. + * + * @param ctx the parse tree + */ + void exitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. + * + * @param ctx the parse tree + */ + void enterFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. + * + * @param ctx the parse tree + */ + void exitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#grant_stmt}. + * + * @param ctx the parse tree + */ + void enterGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#grant_stmt}. + * + * @param ctx the parse tree + */ + void exitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. + * + * @param ctx the parse tree + */ + void enterImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. + * + * @param ctx the parse tree + */ + void exitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#insert_stmt}. + * + * @param ctx the parse tree + */ + void enterInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#insert_stmt}. + * + * @param ctx the parse tree + */ + void exitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#listen_stmt}. + * + * @param ctx the parse tree + */ + void enterListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#listen_stmt}. + * + * @param ctx the parse tree + */ + void exitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#load_stmt}. + * + * @param ctx the parse tree + */ + void enterLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#load_stmt}. + * + * @param ctx the parse tree + */ + void exitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#lock_stmt}. + * + * @param ctx the parse tree + */ + void enterLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#lock_stmt}. + * + * @param ctx the parse tree + */ + void exitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#move_stmt}. + * + * @param ctx the parse tree + */ + void enterMove_stmt(PostgreSQLParser.Move_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#move_stmt}. + * + * @param ctx the parse tree + */ + void exitMove_stmt(PostgreSQLParser.Move_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#notify_stmt}. + * + * @param ctx the parse tree + */ + void enterNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#notify_stmt}. + * + * @param ctx the parse tree + */ + void exitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. + * + * @param ctx the parse tree + */ + void enterPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. + * + * @param ctx the parse tree + */ + void exitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. + * + * @param ctx the parse tree + */ + void enterPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. + * + * @param ctx the parse tree + */ + void exitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. + * + * @param ctx the parse tree + */ + void enterReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. + * + * @param ctx the parse tree + */ + void exitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. + * + * @param ctx the parse tree + */ + void enterRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. + * + * @param ctx the parse tree + */ + void exitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. + * + * @param ctx the parse tree + */ + void enterReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. + * + * @param ctx the parse tree + */ + void exitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. + * + * @param ctx the parse tree + */ + void enterRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. + * + * @param ctx the parse tree + */ + void exitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#reset_stmt}. + * + * @param ctx the parse tree + */ + void enterReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#reset_stmt}. + * + * @param ctx the parse tree + */ + void exitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. + * + * @param ctx the parse tree + */ + void enterRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. + * + * @param ctx the parse tree + */ + void exitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. + * + * @param ctx the parse tree + */ + void enterRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. + * + * @param ctx the parse tree + */ + void exitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. + * + * @param ctx the parse tree + */ + void enterRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. + * + * @param ctx the parse tree + */ + void exitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. + * + * @param ctx the parse tree + */ + void enterRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. + * + * @param ctx the parse tree + */ + void exitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. + * + * @param ctx the parse tree + */ + void enterSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. + * + * @param ctx the parse tree + */ + void exitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. + * + * @param ctx the parse tree + */ + void enterSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. + * + * @param ctx the parse tree + */ + void exitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#select_stmt}. + * + * @param ctx the parse tree + */ + void enterSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#select_stmt}. + * + * @param ctx the parse tree + */ + void exitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. + * + * @param ctx the parse tree + */ + void enterSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. + * + * @param ctx the parse tree + */ + void exitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#with_clause}. + * + * @param ctx the parse tree + */ + void enterWith_clause(PostgreSQLParser.With_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#with_clause}. + * + * @param ctx the parse tree + */ + void exitWith_clause(PostgreSQLParser.With_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#with_expr}. + * + * @param ctx the parse tree + */ + void enterWith_expr(PostgreSQLParser.With_exprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#with_expr}. + * + * @param ctx the parse tree + */ + void exitWith_expr(PostgreSQLParser.With_exprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_stmt}. + * + * @param ctx the parse tree + */ + void enterSet_stmt(PostgreSQLParser.Set_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_stmt}. + * + * @param ctx the parse tree + */ + void exitSet_stmt(PostgreSQLParser.Set_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. + * + * @param ctx the parse tree + */ + void enterSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. + * + * @param ctx the parse tree + */ + void exitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. + * + * @param ctx the parse tree + */ + void enterSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. + * + * @param ctx the parse tree + */ + void exitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. + * + * @param ctx the parse tree + */ + void enterSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. + * + * @param ctx the parse tree + */ + void exitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#transaction_mode}. + * + * @param ctx the parse tree + */ + void enterTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#transaction_mode}. + * + * @param ctx the parse tree + */ + void exitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. + * + * @param ctx the parse tree + */ + void enterTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. + * + * @param ctx the parse tree + */ + void exitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. + * + * @param ctx the parse tree + */ + void enterSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. + * + * @param ctx the parse tree + */ + void exitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#show_stmt}. + * + * @param ctx the parse tree + */ + void enterShow_stmt(PostgreSQLParser.Show_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#show_stmt}. + * + * @param ctx the parse tree + */ + void exitShow_stmt(PostgreSQLParser.Show_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. + * + * @param ctx the parse tree + */ + void enterTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. + * + * @param ctx the parse tree + */ + void exitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. + * + * @param ctx the parse tree + */ + void enterUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. + * + * @param ctx the parse tree + */ + void exitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#update_stmt}. + * + * @param ctx the parse tree + */ + void enterUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#update_stmt}. + * + * @param ctx the parse tree + */ + void exitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. + * + * @param ctx the parse tree + */ + void enterVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. + * + * @param ctx the parse tree + */ + void exitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. + * + * @param ctx the parse tree + */ + void enterVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. + * + * @param ctx the parse tree + */ + void exitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. + * + * @param ctx the parse tree + */ + void enterVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. + * + * @param ctx the parse tree + */ + void exitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#values_stmt}. + * + * @param ctx the parse tree + */ + void enterValues_stmt(PostgreSQLParser.Values_stmtContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#values_stmt}. + * + * @param ctx the parse tree + */ + void exitValues_stmt(PostgreSQLParser.Values_stmtContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#selector_clause}. + * + * @param ctx the parse tree + */ + void enterSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#selector_clause}. + * + * @param ctx the parse tree + */ + void exitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#from_clause}. + * + * @param ctx the parse tree + */ + void enterFrom_clause(PostgreSQLParser.From_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#from_clause}. + * + * @param ctx the parse tree + */ + void exitFrom_clause(PostgreSQLParser.From_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#where_clause}. + * + * @param ctx the parse tree + */ + void enterWhere_clause(PostgreSQLParser.Where_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#where_clause}. + * + * @param ctx the parse tree + */ + void exitWhere_clause(PostgreSQLParser.Where_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#group_by_clause}. + * + * @param ctx the parse tree + */ + void enterGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#group_by_clause}. + * + * @param ctx the parse tree + */ + void exitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#grouping_elem}. + * + * @param ctx the parse tree + */ + void enterGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#grouping_elem}. + * + * @param ctx the parse tree + */ + void exitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. + * + * @param ctx the parse tree + */ + void enterGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. + * + * @param ctx the parse tree + */ + void exitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#having_clause}. + * + * @param ctx the parse tree + */ + void enterHaving_clause(PostgreSQLParser.Having_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#having_clause}. + * + * @param ctx the parse tree + */ + void exitHaving_clause(PostgreSQLParser.Having_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_list}. + * + * @param ctx the parse tree + */ + void enterColumn_list(PostgreSQLParser.Column_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_list}. + * + * @param ctx the parse tree + */ + void exitColumn_list(PostgreSQLParser.Column_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#explain_parameter}. + * + * @param ctx the parse tree + */ + void enterExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#explain_parameter}. + * + * @param ctx the parse tree + */ + void exitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame}. + * + * @param ctx the parse tree + */ + void enterFrame(PostgreSQLParser.FrameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame}. + * + * @param ctx the parse tree + */ + void exitFrame(PostgreSQLParser.FrameContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame_start}. + * + * @param ctx the parse tree + */ + void enterFrame_start(PostgreSQLParser.Frame_startContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame_start}. + * + * @param ctx the parse tree + */ + void exitFrame_start(PostgreSQLParser.Frame_startContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame_end}. + * + * @param ctx the parse tree + */ + void enterFrame_end(PostgreSQLParser.Frame_endContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame_end}. + * + * @param ctx the parse tree + */ + void exitFrame_end(PostgreSQLParser.Frame_endContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame_clause}. + * + * @param ctx the parse tree + */ + void enterFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame_clause}. + * + * @param ctx the parse tree + */ + void exitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#window_definition}. + * + * @param ctx the parse tree + */ + void enterWindow_definition(PostgreSQLParser.Window_definitionContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#window_definition}. + * + * @param ctx the parse tree + */ + void exitWindow_definition(PostgreSQLParser.Window_definitionContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#window_clause}. + * + * @param ctx the parse tree + */ + void enterWindow_clause(PostgreSQLParser.Window_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#window_clause}. + * + * @param ctx the parse tree + */ + void exitWindow_clause(PostgreSQLParser.Window_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#combine_clause}. + * + * @param ctx the parse tree + */ + void enterCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#combine_clause}. + * + * @param ctx the parse tree + */ + void exitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#order_by_clause}. + * + * @param ctx the parse tree + */ + void enterOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#order_by_clause}. + * + * @param ctx the parse tree + */ + void exitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#order_by_item}. + * + * @param ctx the parse tree + */ + void enterOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#order_by_item}. + * + * @param ctx the parse tree + */ + void exitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#limit_clause}. + * + * @param ctx the parse tree + */ + void enterLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#limit_clause}. + * + * @param ctx the parse tree + */ + void exitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#offset_clause}. + * + * @param ctx the parse tree + */ + void enterOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#offset_clause}. + * + * @param ctx the parse tree + */ + void exitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#fetch_clause}. + * + * @param ctx the parse tree + */ + void enterFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#fetch_clause}. + * + * @param ctx the parse tree + */ + void exitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#for_clause}. + * + * @param ctx the parse tree + */ + void enterFor_clause(PostgreSQLParser.For_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#for_clause}. + * + * @param ctx the parse tree + */ + void exitFor_clause(PostgreSQLParser.For_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#updater_clause}. + * + * @param ctx the parse tree + */ + void enterUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#updater_clause}. + * + * @param ctx the parse tree + */ + void exitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#updater_expr}. + * + * @param ctx the parse tree + */ + void enterUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#updater_expr}. + * + * @param ctx the parse tree + */ + void exitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#returning_clause}. + * + * @param ctx the parse tree + */ + void enterReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#returning_clause}. + * + * @param ctx the parse tree + */ + void exitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#expr}. + * + * @param ctx the parse tree + */ + void enterExpr(PostgreSQLParser.ExprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#expr}. + * + * @param ctx the parse tree + */ + void exitExpr(PostgreSQLParser.ExprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#bool_expr}. + * + * @param ctx the parse tree + */ + void enterBool_expr(PostgreSQLParser.Bool_exprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#bool_expr}. + * + * @param ctx the parse tree + */ + void exitBool_expr(PostgreSQLParser.Bool_exprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#case_expr}. + * + * @param ctx the parse tree + */ + void enterCase_expr(PostgreSQLParser.Case_exprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#case_expr}. + * + * @param ctx the parse tree + */ + void exitCase_expr(PostgreSQLParser.Case_exprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#expr_list}. + * + * @param ctx the parse tree + */ + void enterExpr_list(PostgreSQLParser.Expr_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#expr_list}. + * + * @param ctx the parse tree + */ + void exitExpr_list(PostgreSQLParser.Expr_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#expr_list_list}. + * + * @param ctx the parse tree + */ + void enterExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#expr_list_list}. + * + * @param ctx the parse tree + */ + void exitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. + * + * @param ctx the parse tree + */ + void enterFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. + * + * @param ctx the parse tree + */ + void exitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. + * + * @param ctx the parse tree + */ + void enterFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. + * + * @param ctx the parse tree + */ + void exitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig}. + * + * @param ctx the parse tree + */ + void enterFunc_sig(PostgreSQLParser.Func_sigContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig}. + * + * @param ctx the parse tree + */ + void exitFunc_sig(PostgreSQLParser.Func_sigContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_list}. + * + * @param ctx the parse tree + */ + void enterFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_list}. + * + * @param ctx the parse tree + */ + void exitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#type_name}. + * + * @param ctx the parse tree + */ + void enterType_name(PostgreSQLParser.Type_nameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#type_name}. + * + * @param ctx the parse tree + */ + void exitType_name(PostgreSQLParser.Type_nameContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#timezone}. + * + * @param ctx the parse tree + */ + void enterTimezone(PostgreSQLParser.TimezoneContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#timezone}. + * + * @param ctx the parse tree + */ + void exitTimezone(PostgreSQLParser.TimezoneContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#oper}. + * + * @param ctx the parse tree + */ + void enterOper(PostgreSQLParser.OperContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#oper}. + * + * @param ctx the parse tree + */ + void exitOper(PostgreSQLParser.OperContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#aggregate}. + * + * @param ctx the parse tree + */ + void enterAggregate(PostgreSQLParser.AggregateContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#aggregate}. + * + * @param ctx the parse tree + */ + void exitAggregate(PostgreSQLParser.AggregateContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#name_}. + * + * @param ctx the parse tree + */ + void enterName_(PostgreSQLParser.Name_Context ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#name_}. + * + * @param ctx the parse tree + */ + void exitName_(PostgreSQLParser.Name_Context ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#name_list}. + * + * @param ctx the parse tree + */ + void enterName_list(PostgreSQLParser.Name_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#name_list}. + * + * @param ctx the parse tree + */ + void exitName_list(PostgreSQLParser.Name_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#identifier_list}. + * + * @param ctx the parse tree + */ + void enterIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#identifier_list}. + * + * @param ctx the parse tree + */ + void exitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#option_expr}. + * + * @param ctx the parse tree + */ + void enterOption_expr(PostgreSQLParser.Option_exprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#option_expr}. + * + * @param ctx the parse tree + */ + void exitOption_expr(PostgreSQLParser.Option_exprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#option_list}. + * + * @param ctx the parse tree + */ + void enterOption_list(PostgreSQLParser.Option_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#option_list}. + * + * @param ctx the parse tree + */ + void exitOption_list(PostgreSQLParser.Option_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#table_name_}. + * + * @param ctx the parse tree + */ + void enterTable_name_(PostgreSQLParser.Table_name_Context ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#table_name_}. + * + * @param ctx the parse tree + */ + void exitTable_name_(PostgreSQLParser.Table_name_Context ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#data_type}. + * + * @param ctx the parse tree + */ + void enterData_type(PostgreSQLParser.Data_typeContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#data_type}. + * + * @param ctx the parse tree + */ + void exitData_type(PostgreSQLParser.Data_typeContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#data_type_list}. + * + * @param ctx the parse tree + */ + void enterData_type_list(PostgreSQLParser.Data_type_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#data_type_list}. + * + * @param ctx the parse tree + */ + void exitData_type_list(PostgreSQLParser.Data_type_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#index_method}. + * + * @param ctx the parse tree + */ + void enterIndex_method(PostgreSQLParser.Index_methodContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#index_method}. + * + * @param ctx the parse tree + */ + void exitIndex_method(PostgreSQLParser.Index_methodContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_name}. + * + * @param ctx the parse tree + */ + void enterFunc_name(PostgreSQLParser.Func_nameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_name}. + * + * @param ctx the parse tree + */ + void exitFunc_name(PostgreSQLParser.Func_nameContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_call}. + * + * @param ctx the parse tree + */ + void enterFunc_call(PostgreSQLParser.Func_callContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_call}. + * + * @param ctx the parse tree + */ + void exitFunc_call(PostgreSQLParser.Func_callContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. + * + * @param ctx the parse tree + */ + void enterArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. + * + * @param ctx the parse tree + */ + void exitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#from_item}. + * + * @param ctx the parse tree + */ + void enterFrom_item(PostgreSQLParser.From_itemContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#from_item}. + * + * @param ctx the parse tree + */ + void exitFrom_item(PostgreSQLParser.From_itemContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#with_column_alias}. + * + * @param ctx the parse tree + */ + void enterWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#with_column_alias}. + * + * @param ctx the parse tree + */ + void exitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#join_type}. + * + * @param ctx the parse tree + */ + void enterJoin_type(PostgreSQLParser.Join_typeContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#join_type}. + * + * @param ctx the parse tree + */ + void exitJoin_type(PostgreSQLParser.Join_typeContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#join_clause}. + * + * @param ctx the parse tree + */ + void enterJoin_clause(PostgreSQLParser.Join_clauseContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#join_clause}. + * + * @param ctx the parse tree + */ + void exitJoin_clause(PostgreSQLParser.Join_clauseContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#predicate}. + * + * @param ctx the parse tree + */ + void enterPredicate(PostgreSQLParser.PredicateContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#predicate}. + * + * @param ctx the parse tree + */ + void exitPredicate(PostgreSQLParser.PredicateContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. + * + * @param ctx the parse tree + */ + void enterAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. + * + * @param ctx the parse tree + */ + void exitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_constraint}. + * + * @param ctx the parse tree + */ + void enterColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_constraint}. + * + * @param ctx the parse tree + */ + void exitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_constraints}. + * + * @param ctx the parse tree + */ + void enterColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_constraints}. + * + * @param ctx the parse tree + */ + void exitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#index_parameters}. + * + * @param ctx the parse tree + */ + void enterIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#index_parameters}. + * + * @param ctx the parse tree + */ + void exitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#exclude_element}. + * + * @param ctx the parse tree + */ + void enterExclude_element(PostgreSQLParser.Exclude_elementContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#exclude_element}. + * + * @param ctx the parse tree + */ + void exitExclude_element(PostgreSQLParser.Exclude_elementContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#table_constraint}. + * + * @param ctx the parse tree + */ + void enterTable_constraint(PostgreSQLParser.Table_constraintContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#table_constraint}. + * + * @param ctx the parse tree + */ + void exitTable_constraint(PostgreSQLParser.Table_constraintContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#role_name}. + * + * @param ctx the parse tree + */ + void enterRole_name(PostgreSQLParser.Role_nameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#role_name}. + * + * @param ctx the parse tree + */ + void exitRole_name(PostgreSQLParser.Role_nameContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#role_name_list}. + * + * @param ctx the parse tree + */ + void enterRole_name_list(PostgreSQLParser.Role_name_listContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#role_name_list}. + * + * @param ctx the parse tree + */ + void exitRole_name_list(PostgreSQLParser.Role_name_listContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#param_value}. + * + * @param ctx the parse tree + */ + void enterParam_value(PostgreSQLParser.Param_valueContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#param_value}. + * + * @param ctx the parse tree + */ + void exitParam_value(PostgreSQLParser.Param_valueContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. + * + * @param ctx the parse tree + */ + void enterNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. + * + * @param ctx the parse tree + */ + void exitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#identifier}. + * + * @param ctx the parse tree + */ + void enterIdentifier(PostgreSQLParser.IdentifierContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#identifier}. + * + * @param ctx the parse tree + */ + void exitIdentifier(PostgreSQLParser.IdentifierContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. + * + * @param ctx the parse tree + */ + void enterTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. + * + * @param ctx the parse tree + */ + void exitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#todo_implement}. + * + * @param ctx the parse tree + */ + void enterTodo_implement(PostgreSQLParser.Todo_implementContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#todo_implement}. + * + * @param ctx the parse tree + */ + void exitTodo_implement(PostgreSQLParser.Todo_implementContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#correlation_name}. + * + * @param ctx the parse tree + */ + void enterCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#correlation_name}. + * + * @param ctx the parse tree + */ + void exitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_name}. + * + * @param ctx the parse tree + */ + void enterColumn_name(PostgreSQLParser.Column_nameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_name}. + * + * @param ctx the parse tree + */ + void exitColumn_name(PostgreSQLParser.Column_nameContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alias}. + * + * @param ctx the parse tree + */ + void enterAlias(PostgreSQLParser.AliasContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alias}. + * + * @param ctx the parse tree + */ + void exitAlias(PostgreSQLParser.AliasContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_alias}. + * + * @param ctx the parse tree + */ + void enterColumn_alias(PostgreSQLParser.Column_aliasContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_alias}. + * + * @param ctx the parse tree + */ + void exitColumn_alias(PostgreSQLParser.Column_aliasContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_definition}. + * + * @param ctx the parse tree + */ + void enterColumn_definition(PostgreSQLParser.Column_definitionContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_definition}. + * + * @param ctx the parse tree + */ + void exitColumn_definition(PostgreSQLParser.Column_definitionContext ctx); + + /** + * Enter a parse tree produced by {@link PostgreSQLParser#window_name}. + * + * @param ctx the parse tree + */ + void enterWindow_name(PostgreSQLParser.Window_nameContext ctx); + + /** + * Exit a parse tree produced by {@link PostgreSQLParser#window_name}. + * + * @param ctx the parse tree + */ + void exitWindow_name(PostgreSQLParser.Window_nameContext ctx); +} \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java new file mode 100644 index 0000000..d5021d2 --- /dev/null +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java @@ -0,0 +1,2133 @@ +// Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 +package com.github.bigdata.sql.antlr4.pg; + +import org.antlr.v4.runtime.tree.ParseTreeVisitor; + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by {@link PostgreSQLParser}. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public interface PostgreSQLParserVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by {@link PostgreSQLParser#root}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRoot(PostgreSQLParser.RootContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitStmt(PostgreSQLParser.StmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#abort_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_role_options}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#close_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitClose_stmt(PostgreSQLParser.Close_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#comment_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#commit_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#copy_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#domain_constraint}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_rule_event}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#declare_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#delete_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#discard_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#execute_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#explain_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#grant_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#insert_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#listen_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#load_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#lock_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#move_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitMove_stmt(PostgreSQLParser.Move_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#notify_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#reset_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#select_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#with_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith_clause(PostgreSQLParser.With_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#with_expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith_expr(PostgreSQLParser.With_exprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_stmt(PostgreSQLParser.Set_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#transaction_mode}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#show_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitShow_stmt(PostgreSQLParser.Show_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#update_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#values_stmt}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitValues_stmt(PostgreSQLParser.Values_stmtContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#selector_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#from_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrom_clause(PostgreSQLParser.From_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#where_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhere_clause(PostgreSQLParser.Where_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#group_by_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#grouping_elem}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#having_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitHaving_clause(PostgreSQLParser.Having_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_list(PostgreSQLParser.Column_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#explain_parameter}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame(PostgreSQLParser.FrameContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame_start}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame_start(PostgreSQLParser.Frame_startContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame_end}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame_end(PostgreSQLParser.Frame_endContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#window_definition}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindow_definition(PostgreSQLParser.Window_definitionContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#window_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindow_clause(PostgreSQLParser.Window_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#combine_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#order_by_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#order_by_item}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#limit_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#offset_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#fetch_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#for_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFor_clause(PostgreSQLParser.For_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#updater_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#updater_expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#returning_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpr(PostgreSQLParser.ExprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#bool_expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitBool_expr(PostgreSQLParser.Bool_exprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#case_expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCase_expr(PostgreSQLParser.Case_exprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#expr_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpr_list(PostgreSQLParser.Expr_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#expr_list_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig(PostgreSQLParser.Func_sigContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#type_name}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_name(PostgreSQLParser.Type_nameContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#timezone}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTimezone(PostgreSQLParser.TimezoneContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#oper}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitOper(PostgreSQLParser.OperContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#aggregate}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAggregate(PostgreSQLParser.AggregateContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#name_}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitName_(PostgreSQLParser.Name_Context ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#name_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitName_list(PostgreSQLParser.Name_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#identifier_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#option_expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitOption_expr(PostgreSQLParser.Option_exprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#option_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitOption_list(PostgreSQLParser.Option_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#table_name_}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTable_name_(PostgreSQLParser.Table_name_Context ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#data_type}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitData_type(PostgreSQLParser.Data_typeContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#data_type_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitData_type_list(PostgreSQLParser.Data_type_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#index_method}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndex_method(PostgreSQLParser.Index_methodContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_name}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_name(PostgreSQLParser.Func_nameContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_call}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_call(PostgreSQLParser.Func_callContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#from_item}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrom_item(PostgreSQLParser.From_itemContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#with_column_alias}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#join_type}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoin_type(PostgreSQLParser.Join_typeContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#join_clause}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoin_clause(PostgreSQLParser.Join_clauseContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#predicate}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitPredicate(PostgreSQLParser.PredicateContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_constraint}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_constraints}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#index_parameters}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#exclude_element}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitExclude_element(PostgreSQLParser.Exclude_elementContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#table_constraint}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTable_constraint(PostgreSQLParser.Table_constraintContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#role_name}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRole_name(PostgreSQLParser.Role_nameContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#role_name_list}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitRole_name_list(PostgreSQLParser.Role_name_listContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#param_value}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitParam_value(PostgreSQLParser.Param_valueContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#identifier}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier(PostgreSQLParser.IdentifierContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#todo_implement}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitTodo_implement(PostgreSQLParser.Todo_implementContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#correlation_name}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_name}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_name(PostgreSQLParser.Column_nameContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alias}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlias(PostgreSQLParser.AliasContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_alias}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_alias(PostgreSQLParser.Column_aliasContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_definition}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_definition(PostgreSQLParser.Column_definitionContext ctx); + + /** + * Visit a parse tree produced by {@link PostgreSQLParser#window_name}. + * + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindow_name(PostgreSQLParser.Window_nameContext ctx); +} \ No newline at end of file diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt b/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt index 607cb86..2c87260 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/Data.kt @@ -87,8 +87,16 @@ data class TableSource( var columns: List? = ArrayList(), var type: String? = null ): Statement() { - constructor(databaseName: String?, - tableName: String): this(null,databaseName, tableName, null, null) + constructor( + databaseName: String?, + tableName: String + ) : this(null, databaseName, tableName, null, null) + + constructor( + databaseName: String?, + tableName: String, + columns: List? + ) : this(null, databaseName, tableName, null, columns) } data class DcRenameTable( diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt b/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt index 936e0f8..d6ff708 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/StatementType.kt @@ -96,6 +96,7 @@ enum class StatementType: Serializable { DATAX, PRESTO, + PG, UNKOWN; } diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt index 5c8f8e1..52c36e3 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -5,7 +5,7 @@ import cn.hutool.json.JSONObject import cn.hutool.json.JSONUtil import com.github.bigdata.sql.parser.TableData import com.github.bigdata.sql.parser.datax.commons.DataxType -import com.github.bigdata.sql.parser.presto.PrestoSQLHelper +import com.github.bigdata.sql.parser.pg.PostgreSQLHelper import com.github.bigdata.sql.parser.tidb.TidbSQLHelper.getStatementData import com.github.bigdata.sql.parser.util.SqlParserTool @@ -53,24 +53,17 @@ class DBReader { private fun pg(connection: JSONObject) { connectors = db if (!reader!!.containsKey("column") || connection.containsKey("querySql")) { - var querySql = connection.getJSONArray("querySql").getStr(0).replace(":", "") - if (querySql.contains("where")) { - querySql = querySql.split("where")[0] - } - val statement = PrestoSQLHelper.getStatementData(querySql).statement + var querySql = connection.getJSONArray("querySql").getStr(0) + val statement = PostgreSQLHelper().parseSqlFieldLineage(querySql).getStatementData().statement val tableData: TableData = if (statement is TableData) { statement } else { throw RuntimeException("血缘无法解析 -> $statement") } - val (_, databaseName, tableName) = tableData.inputTables[0] - db = if (StrUtil.isBlank(databaseName)) "public" else databaseName - table = tableName - try { - columns.addAll(SqlParserTool.getSelectColumnName(querySql)) - } catch (e: Exception) { - e.printStackTrace() - } + val tableSource = tableData.inputTables[0] + db = if (StrUtil.isBlank(tableSource.databaseName)) "public" else tableSource.databaseName + table = tableSource.tableName + columns = tableSource.columns as MutableList } else { val table = connection.getJSONArray("table").getStr(0) if (!table.contains(".")) { diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt index 5507c1e..d19f3d8 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/writer/S3Writer.kt @@ -30,7 +30,7 @@ class S3Writer { val split = path.split("/").toTypedArray() if (split.size < 3) throw RuntimeException("path 无法解析出库和表,path:" + ArrayUtil.toString(split)) if (writer!!.containsKey("old")){ - if (path.contains("/account/")) { + if (path.contains("/account/") && split.size >= 6) { db = split[4] table = split[5] } else { diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt new file mode 100644 index 0000000..248e787 --- /dev/null +++ b/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt @@ -0,0 +1,67 @@ +package com.github.bigdata.sql.parser.pg + +import cn.hutool.core.collection.CollUtil +import com.github.bigdata.sql.antlr4.pg.PostgreSQLLexer +import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser +import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser.ExprContext +import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser.Select_stmtContext +import com.github.bigdata.sql.antlr4.pg.PostgreSQLParserBaseVisitor +import com.github.bigdata.sql.parser.StatementData +import com.github.bigdata.sql.parser.StatementType +import com.github.bigdata.sql.parser.TableData +import com.github.bigdata.sql.parser.TableSource +import org.antlr.v4.runtime.CharStream +import org.antlr.v4.runtime.CharStreams +import org.antlr.v4.runtime.CommonTokenStream +import org.antlr.v4.runtime.tree.ParseTree +import java.util.function.Consumer + + +class PostgreSQLHelper : PostgreSQLParserBaseVisitor() { + + private var currentOptType: StatementType = StatementType.PG + private val statementData = TableData() + + override fun visitSelect_stmt(ctx: Select_stmtContext): Any? { + val fromItemcontext = ctx.from_clause().from_item().get(0) + val dbTable = fromItemcontext.text.split(".") + var databaseName = "public" + var tableName = "" + if (dbTable.size == 1) { + tableName = dbTable.get(0) + } else { + databaseName = dbTable.get(0) + tableName = dbTable.get(1) + } + + val columns: MutableList = CollUtil.newArrayList() + ctx.selector_clause().column_list().expr().forEach(Consumer { exprContext: ExprContext -> + exprContext.identifier().forEach( + Consumer { identifierContext: PostgreSQLParser.IdentifierContext -> + columns.add(identifierContext.ruleContext.text) + }) + }) + var tableSource = TableSource(databaseName, tableName, columns) + this.statementData.inputTables.add(tableSource) + return super.visitSelect_stmt(ctx) + } + + fun parseSqlFieldLineage(sql: String): PostgreSQLHelper { + val visitor = PostgreSQLHelper() + visitor.visit(getParseTree(sql)) + return visitor + } + + fun getStatementData(): StatementData { + return StatementData(currentOptType, statementData) + } + + private fun getParseTree(sql: String): ParseTree? { + val input: CharStream = CharStreams.fromString(sql) + val lexer = PostgreSQLLexer(input) + val tokenStream = CommonTokenStream(lexer) + val parser = PostgreSQLParser(tokenStream) + return parser.root() + } + +} \ No newline at end of file From 567e364d0ffc34505c4ebf141656df6d5be9d717 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Fri, 24 Feb 2023 17:14:56 +0800 Subject: [PATCH 45/56] PostgreSQLHelper --- gen/PostgreSQLLexer.interp | 2550 +++++++++++++++ gen/PostgreSQLLexer.java | 6194 ++++++++++++++++++++++++++++++++++++ gen/PostgreSQLLexer.tokens | 899 ++++++ 3 files changed, 9643 insertions(+) create mode 100644 gen/PostgreSQLLexer.interp create mode 100644 gen/PostgreSQLLexer.java create mode 100644 gen/PostgreSQLLexer.tokens diff --git a/gen/PostgreSQLLexer.interp b/gen/PostgreSQLLexer.interp new file mode 100644 index 0000000..d7b901d --- /dev/null +++ b/gen/PostgreSQLLexer.interp @@ -0,0 +1,2550 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +',' +':' +'::' +'$' +'$$' +'*' +'(' +')' +'[' +']' +null +null +null +null +null +'.' +null +null +null +null +null +'&' +'&&' +'&<' +'@@' +'@>' +'@' +'!' +'!!' +'!=' +'^' +'=' +'=>' +'>' +'>=' +'>>' +'#' +'#=' +'#>' +'#>>' +'##' +'->' +'->>' +'-|-' +'<' +'<=' +'<@' +'<^' +'<>' +'<->' +'<<' +'<<=' +'' +'-' +'%' +'|' +'||' +'||/' +'|/' +'+' +'?' +'?&' +'?#' +'?-' +'?|' +'/' +'~' +'~=' +'~>=~' +'~>~' +'~<=~' +'~<~' +'~*' +'~~' +';' + +token symbolic names: +null +WHITESPACE +BLOCK_COMMENT +LINE_COMMENT +A_ +ABORT +ABS +ABSOLUTE +ACCESS +ACTION +ADA +ADD +ADMIN +AFTER +AGGREGATE +ALIAS +ALL +ALLOCATE +ALSO +ALTER +ALWAYS +ANALYSE +ANALYZE +AND +ANY +ARE +ARRAY +AS +ASC +ASENSITIVE +ASSERTION +ASSIGNMENT +ASYMMETRIC +AT +ATOMIC +ATTRIBUTE +ATTRIBUTES +AUTHORIZATION +AVG +BACKWARD +BEFORE +BEGIN +BERNOULLI +BETWEEN +BIGINT +BINARY +BIT +BIT_LENGTH +BITVAR +BLOB +BOOLEAN +BOTH +BREADTH +BUFFERS +BY +C_ +CACHE +CALL +CALLED +CARDINALITY +CASCADE +CASCADED +CASE +CAST +CATALOG +CATALOG_NAME +CEIL +CEILING +CHAIN +CHAR +CHAR_LENGTH +CHARACTER +CHARACTER_LENGTH +CHARACTER_SET_CATALOG +CHARACTER_SET_NAME +CHARACTER_SET_SCHEMA +CHARACTERISTICS +CHARACTERS +CHECK +CHECKED +CHECKPOINT +CLASS +CLASS_ORIGIN +CLOB +CLOSE +CLUSTER +COALESCE +COBOL +COLLATE +COLLATION +COLLATION_CATALOG +COLLATION_NAME +COLLATION_SCHEMA +COLLECT +COLUMN +COLUMN_NAME +COMMAND_FUNCTION +COMMAND_FUNCTION_CODE +COMMENT +COMMIT +COMMITTED +COMPLETION +CONDITION +CONDITION_NUMBER +CONFIGURATION +CONFLICT +CONNECT +CONNECTION +CONNECTION_NAME +CONSTRAINT +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONSTRAINTS +CONSTRUCTOR +CONTAINS +CONTINUE +CONVERSION +CONVERT +COPY +CORR +CORRESPONDING +COSTS +COUNT +COVAR_POP +COVAR_SAMP +CREATE +CREATEDB +CREATEUSER +CROSS +CSV +CUBE +CUME_DIST +CURRENT +CURRENT_DATE +CURRENT_DEFAULT_TRANSFORM_GROUP +CURRENT_PATH +CURRENT_ROLE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_TRANSFORM_GROUP_FOR_TYPE +CURRENT_USER +CURSOR +CURSOR_NAME +CYCLE +DATA +DATABASE +DATE +DATETIME_INTERVAL_CODE +DATETIME_INTERVAL_PRECISION +DAY +DEALLOCATE +DEC +DECIMAL +DECLARE +DEFAULT +DEFAULTS +DEFERABLE +DEFERRABLE +DEFERRED +DEFINED +DEFINER +DEGREE +DELETE +DELIMITER +DELIMITERS +DENSE_RANK +DEPENDS +DEPTH +DEREF +DERIVED +DESC +DESCRIBE +DESCRIPTOR +DESTROY +DESTRUCTOR +DETERMINISTIC +DIAGNOSTICS +DICTIONARY +DISABLE +DISABLE_PAGE_SKIPPING +DISCARD +DISCONNECT +DISPATCH +DISTINCT +DO +DOMAIN +DOUBLE +DROP +DYNAMIC +DYNAMIC_FUNCTION +DYNAMIC_FUNCTION_CODE +EACH +ELEMENT +ELSE +ENABLE +ENCODING +ENCRYPTED +END +END_EXEC +EQUALS +ESCAPE +EVERY +EXCEPT +EXCEPTION +EXCLUDE +EXCLUDING +EXCLUSIVE +EXEC +EXECUTE +EXISTING +EXISTS +EXP +EXPLAIN +EXTENDED +EXTENSION +EXTERNAL +EXTRACT +FALSE +FETCH +FIELDS +FILTER +FINAL +FIRST +FLOAT +FLOOR +FOLLOWING +FOR +FORCE +FOREIGN +FORMAT +FORTRAN +FORWARD +FOUND +FREE +FREEZE +FROM +FULL +FUNCTION +FUSION +G_ +GENERAL +GENERATED +GET +GLOBAL +GO +GOTO +GRANT +GRANTED +GREATEST +GROUP +GROUPING +HANDLER +HAVING +HIERARCHY +HOLD +HOST +HOUR +IDENTITY +IGNORE +ILIKE +IMMEDIATE +IMMUTABLE +IMPLEMENTATION +IMPLICIT +IN +INCLUDING +INCREMENT +INDEX +INDICATOR +INFIX +INHERITS +INITIALIZE +INITIALLY +INNER +INOUT +INPUT +INSENSITIVE +INSERT +INSTANCE +INSTANTIABLE +INSTEAD +INT +INTEGER +INTERSECT +INTERSECTION +INTERVAL +INTO +INVOKER +IS +ISOLATION +ITERATE +JOIN +K_ +KEY +KEY_MEMBER +KEY_TYPE +LABEL +LANCOMPILER +LANGUAGE +LARGE +LAST +LATERAL +LEADING +LEAST +LEFT +LENGTH +LESS +LEVEL +LIKE +LIMIT +LISTEN +LN +LOAD +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCK +LOCKED +LOWER +M_ +MAIN +MAP +MAPPING +MATCH +MATCH_SIMPLE +MATCHED +MAX +MAXVALUE +MEMBER +MERGE +MESSAGE_LENGTH +MESSAGE_OCTET_LENGTH +MESSAGE_TEXT +METHOD +MIN +MINUTE +MINVALUE +MOD +MODE +MODIFIES +MODIFY +MODULE +MONTH +MORE_ +MOVE +MULTISET +MUMPS +NAME +NAMES +NATIONAL +NATURAL +NCHAR +NCLOB +NESTING +NEW +NEXT +NO +NOCREATEDB +NOCREATEUSER +NONE +NORMALIZE +NORMALIZED +NOT +NOTHING +NOTIFY +NOTNULL +NOWAIT +NULL +NULLABLE +NULLIF +NULLS +NUMBER +NUMERIC +OBJECT +OCTET_LENGTH +OCTETS +OF +OFF +OFFSET +OIDS +OLD +ON +ONLY +OPEN +OPERATION +OPERATOR +OPTION +OPTIONS +OR +ORDER +ORDERING +ORDINALITY +OTHERS +OUT +OUTER +OUTPUT +OVER +OVERLAPS +OVERLAY +OVERRIDING +OWNER +PAD +PARAMETER +PARAMETER_MODE +PARAMETER_NAME +PARAMETER_ORDINAL_POSITION +PARAMETER_SPECIFIC_CATALOG +PARAMETER_SPECIFIC_NAME +PARAMETER_SPECIFIC_SCHEMA +PARAMETERS +PARSER +PARTIAL +PARTITION +PASCAL +PASSWORD +PATH +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +PLACING +PLAIN +PLANS +PLI +POSITION +POSTFIX +POWER +PRECEDING +PRECISION +PREFIX +PREORDER +PREPARE +PREPARED +PRESERVE +PRIMARY +PRIOR +PRIVILEGES +PROCEDURAL +PROCEDURE +PUBLIC +PUBLICATION +QUOTE +RANGE +RANK +READ +READS +REAL +REASSIGN +RECHECK +RECURSIVE +REF +REFERENCES +REFERENCING +REFRESH +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REINDEX +RELATIVE +RELEASE +RENAME +REPEATABLE +REPLACE +REPLICA +RESET +RESTART +RESTRICT +RESULT +RETURN +RETURNED_CARDINALITY +RETURNED_LENGTH +RETURNED_OCTET_LENGTH +RETURNED_SQLSTATE +RETURNING +RETURNS +REVOKE +RIGHT +ROLE +ROLLBACK +ROLLUP +ROUTINE +ROUTINE_CATALOG +ROUTINE_NAME +ROUTINE_SCHEMA +ROW +ROW_COUNT +ROW_NUMBER +ROWS +RULE +SAVEPOINT +SCALE +SCHEMA +SCHEMA_NAME +SCOPE +SCOPE_CATALOG +SCOPE_NAME +SCOPE_SCHEMA +SCROLL +SEARCH +SECOND +SECTION +SECURITY +SELECT +SELF +SENSITIVE +SEQUENCE +SEQUENCES +SERIALIZABLE +SERVER_NAME +SESSION +SESSION_USER +SET +SETOF +SETS +SHARE +SHOW +SIMILAR +SIMPLE +SIZE +SKIP_ +SMALLINT +SNAPSHOT +SOME +SOURCE +SPACE +SPECIFIC +SPECIFIC_NAME +SPECIFICTYPE +SQL +SQLCODE +SQLERROR +SQLEXCEPTION +SQLSTATE +SQLWARNING +SQRT +STABLE +START +STATE +STATEMENT +STATIC +STATISTICS +STDDEV_POP +STDDEV_SAMP +STDIN +STDOUT +STORAGE +STRICT +STRUCTURE +STYLE +SUBCLASS_ORIGIN +SUBLIST +SUBMULTISET +SUBSCRIPTION +SUBSTRING +SUM +SYMMETRIC +SYSID +SYSTEM +SYSTEM_USER +TABLE +TABLE_NAME +TABLESAMPLE +TABLESPACE +TEMP +TEMPLATE +TEMPORARY +TERMINATE +THAN +THEN +TIES +TIME +TIMESTAMP +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMING +TO +TOAST +TOP_LEVEL_COUNT +TRAILING +TRANSACTION +TRANSACTION_ACTIVE +TRANSACTIONS_COMMITTED +TRANSACTIONS_ROLLED_BACK +TRANSFORM +TRANSFORMS +TRANSLATE +TRANSLATION +TREAT +TRIGGER +TRIGGER_CATALOG +TRIGGER_NAME +TRIGGER_SCHEMA +TRIM +TRUE +TRUNCATE +TRUSTED +TYPE +UESCAPE +UNBOUNDED +UNCOMMITTED +UNDER +UNENCRYPTED +UNION +UNIQUE +UNKNOWN +UNLISTEN +UNNAMED +UNNEST +UNTIL +UPDATE +UPPER +USAGE +USER +USER_DEFINED_TYPE_CATALOG +USER_DEFINED_TYPE_CODE +USER_DEFINED_TYPE_NAME +USER_DEFINED_TYPE_SCHEMA +USING +VACUUM +VALID +VALIDATE +VALIDATOR +VALUE +VALUES +VAR_POP +VAR_SAMP +VARCHAR +VARIABLE +VARIADIC +VARYING +VERBOSE +VIEW +VOLATILE +WHEN +WHENEVER +WHERE +WIDTH_BUCKET +WINDOW +WITH +WITHIN +WITHOUT +WORK +WRITE +YAML +YEAR +YES +ZONE +SUPERUSER +NOSUPERUSER +CREATEROLE +NOCREATEROLE +INHERIT +NOINHERIT +LOGIN +NOLOGIN +REPLICATION +NOREPLICATION +BYPASSRLS +NOBYPASSRLS +SFUNC +STYPE +SSPACE +FINALFUNC +FINALFUNC_EXTRA +COMBINEFUNC +SERIALFUNC +DESERIALFUNC +INITCOND +MSFUNC +MINVFUNC +MSTYPE +MSSPACE +MFINALFUNC +MFINALFUNC_EXTRA +MINITCOND +SORTOP +PARALLEL +HYPOTHETICAL +SAFE +RESTRICTED +UNSAFE +BASETYPE +IF +LOCALE +LC_COLLATE +LC_CTYPE +PROVIDER +VERSION +ALLOW_CONNECTIONS +IS_TEMPLATE +EVENT +WRAPPER +SERVER +BTREE +HASH_ +GIST +SPGIST +GIN +BRIN +CONCURRENTLY +INLINE +MATERIALIZED +LEFTARG +RIGHTARG +COMMUTATOR +NEGATOR +HASHES +MERGES +FAMILY +POLICY +OWNED +ABSTIME +BIGSERIAL +BIT_VARYING +BOOL +BOX +BYTEA +CHARACTER_VARYING +CIDR +CIRCLE +FLOAT4 +FLOAT8 +INET +INT2 +INT4 +INT8 +JSON +JSONB +LINE +LSEG +MACADDR +MACADDR8 +MONEY +PG_LSN +POINT +POLYGON +RELTIME +SERIAL +SERIAL2 +SERIAL4 +SERIAL8 +SMALLSERIAL +STSTEM +TEXT +TIMESTAMPTZ +TIMETZ +TSQUERY +TSVECTOR +TXID_SNAPSHOT +UUID +VARBIT +XML +COMMA +COLON +COLON_COLON +DOLLAR +DOLLAR_DOLLAR +STAR +OPEN_PAREN +CLOSE_PAREN +OPEN_BRACKET +CLOSE_BRACKET +BIT_STRING +REGEX_STRING +NUMERIC_LITERAL +INTEGER_LITERAL +HEX_INTEGER_LITERAL +DOT +SINGLEQ_STRING_LITERAL +DOUBLEQ_STRING_LITERAL +IDENTIFIER +DOLLAR_DEC +IDENTIFIER_UNICODE +AMP +AMP_AMP +AMP_LT +AT_AT +AT_GT +AT_SIGN +BANG +BANG_BANG +BANG_EQUAL +CARET +EQUAL +EQUAL_GT +GT +GTE +GT_GT +HASH +HASH_EQ +HASH_GT +HASH_GT_GT +HASH_HASH +HYPHEN_GT +HYPHEN_GT_GT +HYPHEN_PIPE_HYPHEN +LT +LTE +LT_AT +LT_CARET +LT_GT +LT_HYPHEN_GT +LT_LT +LT_LT_EQ +LT_QMARK_GT +MINUS +PERCENT +PIPE +PIPE_PIPE +PIPE_PIPE_SLASH +PIPE_SLASH +PLUS +QMARK +QMARK_AMP +QMARK_HASH +QMARK_HYPHEN +QMARK_PIPE +SLASH +TIL +TIL_EQ +TIL_GTE_TIL +TIL_GT_TIL +TIL_LTE_TIL +TIL_LT_TIL +TIL_STAR +TIL_TIL +SEMI + +rule names: +WHITESPACE +BLOCK_COMMENT +LINE_COMMENT +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +HEX_DIGIT +DEC_DIGIT +DQUOTA_STRING +SQUOTA_STRING +BQUOTA_STRING +A_ +ABORT +ABS +ABSOLUTE +ACCESS +ACTION +ADA +ADD +ADMIN +AFTER +AGGREGATE +ALIAS +ALL +ALLOCATE +ALSO +ALTER +ALWAYS +ANALYSE +ANALYZE +AND +ANY +ARE +ARRAY +AS +ASC +ASENSITIVE +ASSERTION +ASSIGNMENT +ASYMMETRIC +AT +ATOMIC +ATTRIBUTE +ATTRIBUTES +AUTHORIZATION +AVG +BACKWARD +BEFORE +BEGIN +BERNOULLI +BETWEEN +BIGINT +BINARY +BIT +BIT_LENGTH +BITVAR +BLOB +BOOLEAN +BOTH +BREADTH +BUFFERS +BY +C_ +CACHE +CALL +CALLED +CARDINALITY +CASCADE +CASCADED +CASE +CAST +CATALOG +CATALOG_NAME +CEIL +CEILING +CHAIN +CHAR +CHAR_LENGTH +CHARACTER +CHARACTER_LENGTH +CHARACTER_SET_CATALOG +CHARACTER_SET_NAME +CHARACTER_SET_SCHEMA +CHARACTERISTICS +CHARACTERS +CHECK +CHECKED +CHECKPOINT +CLASS +CLASS_ORIGIN +CLOB +CLOSE +CLUSTER +COALESCE +COBOL +COLLATE +COLLATION +COLLATION_CATALOG +COLLATION_NAME +COLLATION_SCHEMA +COLLECT +COLUMN +COLUMN_NAME +COMMAND_FUNCTION +COMMAND_FUNCTION_CODE +COMMENT +COMMIT +COMMITTED +COMPLETION +CONDITION +CONDITION_NUMBER +CONFIGURATION +CONFLICT +CONNECT +CONNECTION +CONNECTION_NAME +CONSTRAINT +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONSTRAINTS +CONSTRUCTOR +CONTAINS +CONTINUE +CONVERSION +CONVERT +COPY +CORR +CORRESPONDING +COSTS +COUNT +COVAR_POP +COVAR_SAMP +CREATE +CREATEDB +CREATEUSER +CROSS +CSV +CUBE +CUME_DIST +CURRENT +CURRENT_DATE +CURRENT_DEFAULT_TRANSFORM_GROUP +CURRENT_PATH +CURRENT_ROLE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_TRANSFORM_GROUP_FOR_TYPE +CURRENT_USER +CURSOR +CURSOR_NAME +CYCLE +DATA +DATABASE +DATE +DATETIME_INTERVAL_CODE +DATETIME_INTERVAL_PRECISION +DAY +DEALLOCATE +DEC +DECIMAL +DECLARE +DEFAULT +DEFAULTS +DEFERABLE +DEFERRABLE +DEFERRED +DEFINED +DEFINER +DEGREE +DELETE +DELIMITER +DELIMITERS +DENSE_RANK +DEPENDS +DEPTH +DEREF +DERIVED +DESC +DESCRIBE +DESCRIPTOR +DESTROY +DESTRUCTOR +DETERMINISTIC +DIAGNOSTICS +DICTIONARY +DISABLE +DISABLE_PAGE_SKIPPING +DISCARD +DISCONNECT +DISPATCH +DISTINCT +DO +DOMAIN +DOUBLE +DROP +DYNAMIC +DYNAMIC_FUNCTION +DYNAMIC_FUNCTION_CODE +EACH +ELEMENT +ELSE +ENABLE +ENCODING +ENCRYPTED +END +END_EXEC +EQUALS +ESCAPE +EVERY +EXCEPT +EXCEPTION +EXCLUDE +EXCLUDING +EXCLUSIVE +EXEC +EXECUTE +EXISTING +EXISTS +EXP +EXPLAIN +EXTENDED +EXTENSION +EXTERNAL +EXTRACT +FALSE +FETCH +FIELDS +FILTER +FINAL +FIRST +FLOAT +FLOOR +FOLLOWING +FOR +FORCE +FOREIGN +FORMAT +FORTRAN +FORWARD +FOUND +FREE +FREEZE +FROM +FULL +FUNCTION +FUSION +G_ +GENERAL +GENERATED +GET +GLOBAL +GO +GOTO +GRANT +GRANTED +GREATEST +GROUP +GROUPING +HANDLER +HAVING +HIERARCHY +HOLD +HOST +HOUR +IDENTITY +IGNORE +ILIKE +IMMEDIATE +IMMUTABLE +IMPLEMENTATION +IMPLICIT +IN +INCLUDING +INCREMENT +INDEX +INDICATOR +INFIX +INHERITS +INITIALIZE +INITIALLY +INNER +INOUT +INPUT +INSENSITIVE +INSERT +INSTANCE +INSTANTIABLE +INSTEAD +INT +INTEGER +INTERSECT +INTERSECTION +INTERVAL +INTO +INVOKER +IS +ISOLATION +ITERATE +JOIN +K_ +KEY +KEY_MEMBER +KEY_TYPE +LABEL +LANCOMPILER +LANGUAGE +LARGE +LAST +LATERAL +LEADING +LEAST +LEFT +LENGTH +LESS +LEVEL +LIKE +LIMIT +LISTEN +LN +LOAD +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCK +LOCKED +LOWER +M_ +MAIN +MAP +MAPPING +MATCH +MATCH_SIMPLE +MATCHED +MAX +MAXVALUE +MEMBER +MERGE +MESSAGE_LENGTH +MESSAGE_OCTET_LENGTH +MESSAGE_TEXT +METHOD +MIN +MINUTE +MINVALUE +MOD +MODE +MODIFIES +MODIFY +MODULE +MONTH +MORE_ +MOVE +MULTISET +MUMPS +NAME +NAMES +NATIONAL +NATURAL +NCHAR +NCLOB +NESTING +NEW +NEXT +NO +NOCREATEDB +NOCREATEUSER +NONE +NORMALIZE +NORMALIZED +NOT +NOTHING +NOTIFY +NOTNULL +NOWAIT +NULL +NULLABLE +NULLIF +NULLS +NUMBER +NUMERIC +OBJECT +OCTET_LENGTH +OCTETS +OF +OFF +OFFSET +OIDS +OLD +ON +ONLY +OPEN +OPERATION +OPERATOR +OPTION +OPTIONS +OR +ORDER +ORDERING +ORDINALITY +OTHERS +OUT +OUTER +OUTPUT +OVER +OVERLAPS +OVERLAY +OVERRIDING +OWNER +PAD +PARAMETER +PARAMETER_MODE +PARAMETER_NAME +PARAMETER_ORDINAL_POSITION +PARAMETER_SPECIFIC_CATALOG +PARAMETER_SPECIFIC_NAME +PARAMETER_SPECIFIC_SCHEMA +PARAMETERS +PARSER +PARTIAL +PARTITION +PASCAL +PASSWORD +PATH +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +PLACING +PLAIN +PLANS +PLI +POSITION +POSTFIX +POWER +PRECEDING +PRECISION +PREFIX +PREORDER +PREPARE +PREPARED +PRESERVE +PRIMARY +PRIOR +PRIVILEGES +PROCEDURAL +PROCEDURE +PUBLIC +PUBLICATION +QUOTE +RANGE +RANK +READ +READS +REAL +REASSIGN +RECHECK +RECURSIVE +REF +REFERENCES +REFERENCING +REFRESH +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REINDEX +RELATIVE +RELEASE +RENAME +REPEATABLE +REPLACE +REPLICA +RESET +RESTART +RESTRICT +RESULT +RETURN +RETURNED_CARDINALITY +RETURNED_LENGTH +RETURNED_OCTET_LENGTH +RETURNED_SQLSTATE +RETURNING +RETURNS +REVOKE +RIGHT +ROLE +ROLLBACK +ROLLUP +ROUTINE +ROUTINE_CATALOG +ROUTINE_NAME +ROUTINE_SCHEMA +ROW +ROW_COUNT +ROW_NUMBER +ROWS +RULE +SAVEPOINT +SCALE +SCHEMA +SCHEMA_NAME +SCOPE +SCOPE_CATALOG +SCOPE_NAME +SCOPE_SCHEMA +SCROLL +SEARCH +SECOND +SECTION +SECURITY +SELECT +SELF +SENSITIVE +SEQUENCE +SEQUENCES +SERIALIZABLE +SERVER_NAME +SESSION +SESSION_USER +SET +SETOF +SETS +SHARE +SHOW +SIMILAR +SIMPLE +SIZE +SKIP_ +SMALLINT +SNAPSHOT +SOME +SOURCE +SPACE +SPECIFIC +SPECIFIC_NAME +SPECIFICTYPE +SQL +SQLCODE +SQLERROR +SQLEXCEPTION +SQLSTATE +SQLWARNING +SQRT +STABLE +START +STATE +STATEMENT +STATIC +STATISTICS +STDDEV_POP +STDDEV_SAMP +STDIN +STDOUT +STORAGE +STRICT +STRUCTURE +STYLE +SUBCLASS_ORIGIN +SUBLIST +SUBMULTISET +SUBSCRIPTION +SUBSTRING +SUM +SYMMETRIC +SYSID +SYSTEM +SYSTEM_USER +TABLE +TABLE_NAME +TABLESAMPLE +TABLESPACE +TEMP +TEMPLATE +TEMPORARY +TERMINATE +THAN +THEN +TIES +TIME +TIMESTAMP +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMING +TO +TOAST +TOP_LEVEL_COUNT +TRAILING +TRANSACTION +TRANSACTION_ACTIVE +TRANSACTIONS_COMMITTED +TRANSACTIONS_ROLLED_BACK +TRANSFORM +TRANSFORMS +TRANSLATE +TRANSLATION +TREAT +TRIGGER +TRIGGER_CATALOG +TRIGGER_NAME +TRIGGER_SCHEMA +TRIM +TRUE +TRUNCATE +TRUSTED +TYPE +UESCAPE +UNBOUNDED +UNCOMMITTED +UNDER +UNENCRYPTED +UNION +UNIQUE +UNKNOWN +UNLISTEN +UNNAMED +UNNEST +UNTIL +UPDATE +UPPER +USAGE +USER +USER_DEFINED_TYPE_CATALOG +USER_DEFINED_TYPE_CODE +USER_DEFINED_TYPE_NAME +USER_DEFINED_TYPE_SCHEMA +USING +VACUUM +VALID +VALIDATE +VALIDATOR +VALUE +VALUES +VAR_POP +VAR_SAMP +VARCHAR +VARIABLE +VARIADIC +VARYING +VERBOSE +VIEW +VOLATILE +WHEN +WHENEVER +WHERE +WIDTH_BUCKET +WINDOW +WITH +WITHIN +WITHOUT +WORK +WRITE +YAML +YEAR +YES +ZONE +SUPERUSER +NOSUPERUSER +CREATEROLE +NOCREATEROLE +INHERIT +NOINHERIT +LOGIN +NOLOGIN +REPLICATION +NOREPLICATION +BYPASSRLS +NOBYPASSRLS +SFUNC +STYPE +SSPACE +FINALFUNC +FINALFUNC_EXTRA +COMBINEFUNC +SERIALFUNC +DESERIALFUNC +INITCOND +MSFUNC +MINVFUNC +MSTYPE +MSSPACE +MFINALFUNC +MFINALFUNC_EXTRA +MINITCOND +SORTOP +PARALLEL +HYPOTHETICAL +SAFE +RESTRICTED +UNSAFE +BASETYPE +IF +LOCALE +LC_COLLATE +LC_CTYPE +PROVIDER +VERSION +ALLOW_CONNECTIONS +IS_TEMPLATE +EVENT +WRAPPER +SERVER +BTREE +HASH_ +GIST +SPGIST +GIN +BRIN +CONCURRENTLY +INLINE +MATERIALIZED +LEFTARG +RIGHTARG +COMMUTATOR +NEGATOR +HASHES +MERGES +FAMILY +POLICY +OWNED +ABSTIME +BIGSERIAL +BIT_VARYING +BOOL +BOX +BYTEA +CHARACTER_VARYING +CIDR +CIRCLE +FLOAT4 +FLOAT8 +INET +INT2 +INT4 +INT8 +JSON +JSONB +LINE +LSEG +MACADDR +MACADDR8 +MONEY +PG_LSN +POINT +POLYGON +RELTIME +SERIAL +SERIAL2 +SERIAL4 +SERIAL8 +SMALLSERIAL +STSTEM +TEXT +TIMESTAMPTZ +TIMETZ +TSQUERY +TSVECTOR +TXID_SNAPSHOT +UUID +VARBIT +XML +COMMA +COLON +COLON_COLON +DOLLAR +DOLLAR_DOLLAR +STAR +OPEN_PAREN +CLOSE_PAREN +OPEN_BRACKET +CLOSE_BRACKET +BIT_STRING +REGEX_STRING +NUMERIC_LITERAL +INTEGER_LITERAL +HEX_INTEGER_LITERAL +DOT +SINGLEQ_STRING_LITERAL +DOUBLEQ_STRING_LITERAL +IDENTIFIER +DOLLAR_DEC +IDENTIFIER_UNICODE +AMP +AMP_AMP +AMP_LT +AT_AT +AT_GT +AT_SIGN +BANG +BANG_BANG +BANG_EQUAL +CARET +EQUAL +EQUAL_GT +GT +GTE +GT_GT +HASH +HASH_EQ +HASH_GT +HASH_GT_GT +HASH_HASH +HYPHEN_GT +HYPHEN_GT_GT +HYPHEN_PIPE_HYPHEN +LT +LTE +LT_AT +LT_CARET +LT_GT +LT_HYPHEN_GT +LT_LT +LT_LT_EQ +LT_QMARK_GT +MINUS +PERCENT +PIPE +PIPE_PIPE +PIPE_PIPE_SLASH +PIPE_SLASH +PLUS +QMARK +QMARK_AMP +QMARK_HASH +QMARK_HYPHEN +QMARK_PIPE +SLASH +TIL +TIL_EQ +TIL_GTE_TIL +TIL_GT_TIL +TIL_LTE_TIL +TIL_LT_TIL +TIL_STAR +TIL_TIL +SEMI + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 834, 8677, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 2, 864, 7, 864, 1, 0, 4, 0, 1733, 8, 0, 11, 0, 12, 0, 1734, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1743, 8, 1, 10, 1, 12, 1, 1746, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1757, 8, 2, 10, 2, 12, 2, 1760, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 1828, 8, 31, 10, 31, 12, 31, 1831, 9, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 1841, 8, 32, 10, 32, 12, 32, 1844, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 1854, 8, 33, 10, 33, 12, 33, 1857, 9, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 789, 1, 789, 1, 790, 1, 790, 1, 791, 1, 791, 1, 792, 1, 792, 1, 792, 1, 793, 1, 793, 1, 794, 1, 794, 1, 794, 1, 795, 1, 795, 1, 796, 1, 796, 1, 797, 1, 797, 1, 798, 1, 798, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 5, 800, 8436, 8, 800, 10, 800, 12, 800, 8439, 9, 800, 1, 800, 1, 800, 1, 801, 1, 801, 1, 801, 1, 802, 3, 802, 8447, 8, 802, 1, 802, 4, 802, 8450, 8, 802, 11, 802, 12, 802, 8451, 1, 802, 1, 802, 4, 802, 8456, 8, 802, 11, 802, 12, 802, 8457, 1, 802, 1, 802, 5, 802, 8462, 8, 802, 10, 802, 12, 802, 8465, 9, 802, 1, 802, 4, 802, 8468, 8, 802, 11, 802, 12, 802, 8469, 3, 802, 8472, 8, 802, 1, 803, 3, 803, 8475, 8, 803, 1, 803, 4, 803, 8478, 8, 803, 11, 803, 12, 803, 8479, 1, 803, 1, 803, 4, 803, 8484, 8, 803, 11, 803, 12, 803, 8485, 3, 803, 8488, 8, 803, 1, 804, 1, 804, 1, 804, 1, 805, 1, 805, 1, 806, 1, 806, 1, 807, 1, 807, 1, 808, 1, 808, 5, 808, 8501, 8, 808, 10, 808, 12, 808, 8504, 9, 808, 1, 809, 1, 809, 4, 809, 8508, 8, 809, 11, 809, 12, 809, 8509, 1, 810, 1, 810, 5, 810, 8514, 8, 810, 10, 810, 12, 810, 8517, 9, 810, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 815, 1, 816, 1, 816, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 819, 1, 820, 1, 820, 1, 821, 1, 821, 1, 822, 1, 822, 1, 822, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 825, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 833, 1, 833, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 842, 1, 842, 1, 843, 1, 843, 1, 844, 1, 844, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 848, 1, 849, 1, 849, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 854, 1, 855, 1, 855, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 1, 863, 1, 864, 1, 864, 2, 1744, 1758, 0, 865, 1, 1, 3, 2, 5, 3, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 4, 71, 5, 73, 6, 75, 7, 77, 8, 79, 9, 81, 10, 83, 11, 85, 12, 87, 13, 89, 14, 91, 15, 93, 16, 95, 17, 97, 18, 99, 19, 101, 20, 103, 21, 105, 22, 107, 23, 109, 24, 111, 25, 113, 26, 115, 27, 117, 28, 119, 29, 121, 30, 123, 31, 125, 32, 127, 33, 129, 34, 131, 35, 133, 36, 135, 37, 137, 38, 139, 39, 141, 40, 143, 41, 145, 42, 147, 43, 149, 44, 151, 45, 153, 46, 155, 47, 157, 48, 159, 49, 161, 50, 163, 51, 165, 52, 167, 53, 169, 54, 171, 55, 173, 56, 175, 57, 177, 58, 179, 59, 181, 60, 183, 61, 185, 62, 187, 63, 189, 64, 191, 65, 193, 66, 195, 67, 197, 68, 199, 69, 201, 70, 203, 71, 205, 72, 207, 73, 209, 74, 211, 75, 213, 76, 215, 77, 217, 78, 219, 79, 221, 80, 223, 81, 225, 82, 227, 83, 229, 84, 231, 85, 233, 86, 235, 87, 237, 88, 239, 89, 241, 90, 243, 91, 245, 92, 247, 93, 249, 94, 251, 95, 253, 96, 255, 97, 257, 98, 259, 99, 261, 100, 263, 101, 265, 102, 267, 103, 269, 104, 271, 105, 273, 106, 275, 107, 277, 108, 279, 109, 281, 110, 283, 111, 285, 112, 287, 113, 289, 114, 291, 115, 293, 116, 295, 117, 297, 118, 299, 119, 301, 120, 303, 121, 305, 122, 307, 123, 309, 124, 311, 125, 313, 126, 315, 127, 317, 128, 319, 129, 321, 130, 323, 131, 325, 132, 327, 133, 329, 134, 331, 135, 333, 136, 335, 137, 337, 138, 339, 139, 341, 140, 343, 141, 345, 142, 347, 143, 349, 144, 351, 145, 353, 146, 355, 147, 357, 148, 359, 149, 361, 150, 363, 151, 365, 152, 367, 153, 369, 154, 371, 155, 373, 156, 375, 157, 377, 158, 379, 159, 381, 160, 383, 161, 385, 162, 387, 163, 389, 164, 391, 165, 393, 166, 395, 167, 397, 168, 399, 169, 401, 170, 403, 171, 405, 172, 407, 173, 409, 174, 411, 175, 413, 176, 415, 177, 417, 178, 419, 179, 421, 180, 423, 181, 425, 182, 427, 183, 429, 184, 431, 185, 433, 186, 435, 187, 437, 188, 439, 189, 441, 190, 443, 191, 445, 192, 447, 193, 449, 194, 451, 195, 453, 196, 455, 197, 457, 198, 459, 199, 461, 200, 463, 201, 465, 202, 467, 203, 469, 204, 471, 205, 473, 206, 475, 207, 477, 208, 479, 209, 481, 210, 483, 211, 485, 212, 487, 213, 489, 214, 491, 215, 493, 216, 495, 217, 497, 218, 499, 219, 501, 220, 503, 221, 505, 222, 507, 223, 509, 224, 511, 225, 513, 226, 515, 227, 517, 228, 519, 229, 521, 230, 523, 231, 525, 232, 527, 233, 529, 234, 531, 235, 533, 236, 535, 237, 537, 238, 539, 239, 541, 240, 543, 241, 545, 242, 547, 243, 549, 244, 551, 245, 553, 246, 555, 247, 557, 248, 559, 249, 561, 250, 563, 251, 565, 252, 567, 253, 569, 254, 571, 255, 573, 256, 575, 257, 577, 258, 579, 259, 581, 260, 583, 261, 585, 262, 587, 263, 589, 264, 591, 265, 593, 266, 595, 267, 597, 268, 599, 269, 601, 270, 603, 271, 605, 272, 607, 273, 609, 274, 611, 275, 613, 276, 615, 277, 617, 278, 619, 279, 621, 280, 623, 281, 625, 282, 627, 283, 629, 284, 631, 285, 633, 286, 635, 287, 637, 288, 639, 289, 641, 290, 643, 291, 645, 292, 647, 293, 649, 294, 651, 295, 653, 296, 655, 297, 657, 298, 659, 299, 661, 300, 663, 301, 665, 302, 667, 303, 669, 304, 671, 305, 673, 306, 675, 307, 677, 308, 679, 309, 681, 310, 683, 311, 685, 312, 687, 313, 689, 314, 691, 315, 693, 316, 695, 317, 697, 318, 699, 319, 701, 320, 703, 321, 705, 322, 707, 323, 709, 324, 711, 325, 713, 326, 715, 327, 717, 328, 719, 329, 721, 330, 723, 331, 725, 332, 727, 333, 729, 334, 731, 335, 733, 336, 735, 337, 737, 338, 739, 339, 741, 340, 743, 341, 745, 342, 747, 343, 749, 344, 751, 345, 753, 346, 755, 347, 757, 348, 759, 349, 761, 350, 763, 351, 765, 352, 767, 353, 769, 354, 771, 355, 773, 356, 775, 357, 777, 358, 779, 359, 781, 360, 783, 361, 785, 362, 787, 363, 789, 364, 791, 365, 793, 366, 795, 367, 797, 368, 799, 369, 801, 370, 803, 371, 805, 372, 807, 373, 809, 374, 811, 375, 813, 376, 815, 377, 817, 378, 819, 379, 821, 380, 823, 381, 825, 382, 827, 383, 829, 384, 831, 385, 833, 386, 835, 387, 837, 388, 839, 389, 841, 390, 843, 391, 845, 392, 847, 393, 849, 394, 851, 395, 853, 396, 855, 397, 857, 398, 859, 399, 861, 400, 863, 401, 865, 402, 867, 403, 869, 404, 871, 405, 873, 406, 875, 407, 877, 408, 879, 409, 881, 410, 883, 411, 885, 412, 887, 413, 889, 414, 891, 415, 893, 416, 895, 417, 897, 418, 899, 419, 901, 420, 903, 421, 905, 422, 907, 423, 909, 424, 911, 425, 913, 426, 915, 427, 917, 428, 919, 429, 921, 430, 923, 431, 925, 432, 927, 433, 929, 434, 931, 435, 933, 436, 935, 437, 937, 438, 939, 439, 941, 440, 943, 441, 945, 442, 947, 443, 949, 444, 951, 445, 953, 446, 955, 447, 957, 448, 959, 449, 961, 450, 963, 451, 965, 452, 967, 453, 969, 454, 971, 455, 973, 456, 975, 457, 977, 458, 979, 459, 981, 460, 983, 461, 985, 462, 987, 463, 989, 464, 991, 465, 993, 466, 995, 467, 997, 468, 999, 469, 1001, 470, 1003, 471, 1005, 472, 1007, 473, 1009, 474, 1011, 475, 1013, 476, 1015, 477, 1017, 478, 1019, 479, 1021, 480, 1023, 481, 1025, 482, 1027, 483, 1029, 484, 1031, 485, 1033, 486, 1035, 487, 1037, 488, 1039, 489, 1041, 490, 1043, 491, 1045, 492, 1047, 493, 1049, 494, 1051, 495, 1053, 496, 1055, 497, 1057, 498, 1059, 499, 1061, 500, 1063, 501, 1065, 502, 1067, 503, 1069, 504, 1071, 505, 1073, 506, 1075, 507, 1077, 508, 1079, 509, 1081, 510, 1083, 511, 1085, 512, 1087, 513, 1089, 514, 1091, 515, 1093, 516, 1095, 517, 1097, 518, 1099, 519, 1101, 520, 1103, 521, 1105, 522, 1107, 523, 1109, 524, 1111, 525, 1113, 526, 1115, 527, 1117, 528, 1119, 529, 1121, 530, 1123, 531, 1125, 532, 1127, 533, 1129, 534, 1131, 535, 1133, 536, 1135, 537, 1137, 538, 1139, 539, 1141, 540, 1143, 541, 1145, 542, 1147, 543, 1149, 544, 1151, 545, 1153, 546, 1155, 547, 1157, 548, 1159, 549, 1161, 550, 1163, 551, 1165, 552, 1167, 553, 1169, 554, 1171, 555, 1173, 556, 1175, 557, 1177, 558, 1179, 559, 1181, 560, 1183, 561, 1185, 562, 1187, 563, 1189, 564, 1191, 565, 1193, 566, 1195, 567, 1197, 568, 1199, 569, 1201, 570, 1203, 571, 1205, 572, 1207, 573, 1209, 574, 1211, 575, 1213, 576, 1215, 577, 1217, 578, 1219, 579, 1221, 580, 1223, 581, 1225, 582, 1227, 583, 1229, 584, 1231, 585, 1233, 586, 1235, 587, 1237, 588, 1239, 589, 1241, 590, 1243, 591, 1245, 592, 1247, 593, 1249, 594, 1251, 595, 1253, 596, 1255, 597, 1257, 598, 1259, 599, 1261, 600, 1263, 601, 1265, 602, 1267, 603, 1269, 604, 1271, 605, 1273, 606, 1275, 607, 1277, 608, 1279, 609, 1281, 610, 1283, 611, 1285, 612, 1287, 613, 1289, 614, 1291, 615, 1293, 616, 1295, 617, 1297, 618, 1299, 619, 1301, 620, 1303, 621, 1305, 622, 1307, 623, 1309, 624, 1311, 625, 1313, 626, 1315, 627, 1317, 628, 1319, 629, 1321, 630, 1323, 631, 1325, 632, 1327, 633, 1329, 634, 1331, 635, 1333, 636, 1335, 637, 1337, 638, 1339, 639, 1341, 640, 1343, 641, 1345, 642, 1347, 643, 1349, 644, 1351, 645, 1353, 646, 1355, 647, 1357, 648, 1359, 649, 1361, 650, 1363, 651, 1365, 652, 1367, 653, 1369, 654, 1371, 655, 1373, 656, 1375, 657, 1377, 658, 1379, 659, 1381, 660, 1383, 661, 1385, 662, 1387, 663, 1389, 664, 1391, 665, 1393, 666, 1395, 667, 1397, 668, 1399, 669, 1401, 670, 1403, 671, 1405, 672, 1407, 673, 1409, 674, 1411, 675, 1413, 676, 1415, 677, 1417, 678, 1419, 679, 1421, 680, 1423, 681, 1425, 682, 1427, 683, 1429, 684, 1431, 685, 1433, 686, 1435, 687, 1437, 688, 1439, 689, 1441, 690, 1443, 691, 1445, 692, 1447, 693, 1449, 694, 1451, 695, 1453, 696, 1455, 697, 1457, 698, 1459, 699, 1461, 700, 1463, 701, 1465, 702, 1467, 703, 1469, 704, 1471, 705, 1473, 706, 1475, 707, 1477, 708, 1479, 709, 1481, 710, 1483, 711, 1485, 712, 1487, 713, 1489, 714, 1491, 715, 1493, 716, 1495, 717, 1497, 718, 1499, 719, 1501, 720, 1503, 721, 1505, 722, 1507, 723, 1509, 724, 1511, 725, 1513, 726, 1515, 727, 1517, 728, 1519, 729, 1521, 730, 1523, 731, 1525, 732, 1527, 733, 1529, 734, 1531, 735, 1533, 736, 1535, 737, 1537, 738, 1539, 739, 1541, 740, 1543, 741, 1545, 742, 1547, 743, 1549, 744, 1551, 745, 1553, 746, 1555, 747, 1557, 748, 1559, 749, 1561, 750, 1563, 751, 1565, 752, 1567, 753, 1569, 754, 1571, 755, 1573, 756, 1575, 757, 1577, 758, 1579, 759, 1581, 760, 1583, 761, 1585, 762, 1587, 763, 1589, 764, 1591, 765, 1593, 766, 1595, 767, 1597, 768, 1599, 769, 1601, 770, 1603, 771, 1605, 772, 1607, 773, 1609, 774, 1611, 775, 1613, 776, 1615, 777, 1617, 778, 1619, 779, 1621, 780, 1623, 781, 1625, 782, 1627, 783, 1629, 784, 1631, 785, 1633, 786, 1635, 787, 1637, 788, 1639, 789, 1641, 790, 1643, 791, 1645, 792, 1647, 793, 1649, 794, 1651, 795, 1653, 796, 1655, 797, 1657, 798, 1659, 799, 1661, 800, 1663, 801, 1665, 802, 1667, 803, 1669, 804, 1671, 805, 1673, 806, 1675, 807, 1677, 808, 1679, 809, 1681, 810, 1683, 811, 1685, 812, 1687, 813, 1689, 814, 1691, 815, 1693, 816, 1695, 817, 1697, 818, 1699, 819, 1701, 820, 1703, 821, 1705, 822, 1707, 823, 1709, 824, 1711, 825, 1713, 826, 1715, 827, 1717, 828, 1719, 829, 1721, 830, 1723, 831, 1725, 832, 1727, 833, 1729, 834, 1, 0, 36, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 48, 57, 65, 70, 1, 0, 48, 57, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 2, 0, 92, 92, 96, 96, 3, 0, 65, 90, 95, 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 65, 90, 95, 95, 97, 122, 161, 65535, 6, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 161, 65535, 8671, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 0, 1729, 1, 0, 0, 0, 1, 1732, 1, 0, 0, 0, 3, 1738, 1, 0, 0, 0, 5, 1752, 1, 0, 0, 0, 7, 1765, 1, 0, 0, 0, 9, 1767, 1, 0, 0, 0, 11, 1769, 1, 0, 0, 0, 13, 1771, 1, 0, 0, 0, 15, 1773, 1, 0, 0, 0, 17, 1775, 1, 0, 0, 0, 19, 1777, 1, 0, 0, 0, 21, 1779, 1, 0, 0, 0, 23, 1781, 1, 0, 0, 0, 25, 1783, 1, 0, 0, 0, 27, 1785, 1, 0, 0, 0, 29, 1787, 1, 0, 0, 0, 31, 1789, 1, 0, 0, 0, 33, 1791, 1, 0, 0, 0, 35, 1793, 1, 0, 0, 0, 37, 1795, 1, 0, 0, 0, 39, 1797, 1, 0, 0, 0, 41, 1799, 1, 0, 0, 0, 43, 1801, 1, 0, 0, 0, 45, 1803, 1, 0, 0, 0, 47, 1805, 1, 0, 0, 0, 49, 1807, 1, 0, 0, 0, 51, 1809, 1, 0, 0, 0, 53, 1811, 1, 0, 0, 0, 55, 1813, 1, 0, 0, 0, 57, 1815, 1, 0, 0, 0, 59, 1817, 1, 0, 0, 0, 61, 1819, 1, 0, 0, 0, 63, 1821, 1, 0, 0, 0, 65, 1834, 1, 0, 0, 0, 67, 1847, 1, 0, 0, 0, 69, 1860, 1, 0, 0, 0, 71, 1862, 1, 0, 0, 0, 73, 1868, 1, 0, 0, 0, 75, 1872, 1, 0, 0, 0, 77, 1881, 1, 0, 0, 0, 79, 1888, 1, 0, 0, 0, 81, 1895, 1, 0, 0, 0, 83, 1899, 1, 0, 0, 0, 85, 1903, 1, 0, 0, 0, 87, 1909, 1, 0, 0, 0, 89, 1915, 1, 0, 0, 0, 91, 1925, 1, 0, 0, 0, 93, 1931, 1, 0, 0, 0, 95, 1935, 1, 0, 0, 0, 97, 1944, 1, 0, 0, 0, 99, 1949, 1, 0, 0, 0, 101, 1955, 1, 0, 0, 0, 103, 1962, 1, 0, 0, 0, 105, 1970, 1, 0, 0, 0, 107, 1978, 1, 0, 0, 0, 109, 1982, 1, 0, 0, 0, 111, 1986, 1, 0, 0, 0, 113, 1990, 1, 0, 0, 0, 115, 1996, 1, 0, 0, 0, 117, 1999, 1, 0, 0, 0, 119, 2003, 1, 0, 0, 0, 121, 2014, 1, 0, 0, 0, 123, 2024, 1, 0, 0, 0, 125, 2035, 1, 0, 0, 0, 127, 2046, 1, 0, 0, 0, 129, 2049, 1, 0, 0, 0, 131, 2056, 1, 0, 0, 0, 133, 2066, 1, 0, 0, 0, 135, 2077, 1, 0, 0, 0, 137, 2091, 1, 0, 0, 0, 139, 2095, 1, 0, 0, 0, 141, 2104, 1, 0, 0, 0, 143, 2111, 1, 0, 0, 0, 145, 2117, 1, 0, 0, 0, 147, 2127, 1, 0, 0, 0, 149, 2135, 1, 0, 0, 0, 151, 2142, 1, 0, 0, 0, 153, 2149, 1, 0, 0, 0, 155, 2153, 1, 0, 0, 0, 157, 2164, 1, 0, 0, 0, 159, 2171, 1, 0, 0, 0, 161, 2176, 1, 0, 0, 0, 163, 2184, 1, 0, 0, 0, 165, 2189, 1, 0, 0, 0, 167, 2197, 1, 0, 0, 0, 169, 2205, 1, 0, 0, 0, 171, 2208, 1, 0, 0, 0, 173, 2210, 1, 0, 0, 0, 175, 2216, 1, 0, 0, 0, 177, 2221, 1, 0, 0, 0, 179, 2228, 1, 0, 0, 0, 181, 2240, 1, 0, 0, 0, 183, 2248, 1, 0, 0, 0, 185, 2257, 1, 0, 0, 0, 187, 2262, 1, 0, 0, 0, 189, 2267, 1, 0, 0, 0, 191, 2275, 1, 0, 0, 0, 193, 2288, 1, 0, 0, 0, 195, 2293, 1, 0, 0, 0, 197, 2301, 1, 0, 0, 0, 199, 2307, 1, 0, 0, 0, 201, 2312, 1, 0, 0, 0, 203, 2324, 1, 0, 0, 0, 205, 2334, 1, 0, 0, 0, 207, 2351, 1, 0, 0, 0, 209, 2373, 1, 0, 0, 0, 211, 2392, 1, 0, 0, 0, 213, 2413, 1, 0, 0, 0, 215, 2429, 1, 0, 0, 0, 217, 2440, 1, 0, 0, 0, 219, 2446, 1, 0, 0, 0, 221, 2454, 1, 0, 0, 0, 223, 2465, 1, 0, 0, 0, 225, 2471, 1, 0, 0, 0, 227, 2484, 1, 0, 0, 0, 229, 2489, 1, 0, 0, 0, 231, 2495, 1, 0, 0, 0, 233, 2503, 1, 0, 0, 0, 235, 2512, 1, 0, 0, 0, 237, 2518, 1, 0, 0, 0, 239, 2526, 1, 0, 0, 0, 241, 2536, 1, 0, 0, 0, 243, 2554, 1, 0, 0, 0, 245, 2569, 1, 0, 0, 0, 247, 2586, 1, 0, 0, 0, 249, 2594, 1, 0, 0, 0, 251, 2601, 1, 0, 0, 0, 253, 2613, 1, 0, 0, 0, 255, 2630, 1, 0, 0, 0, 257, 2652, 1, 0, 0, 0, 259, 2660, 1, 0, 0, 0, 261, 2667, 1, 0, 0, 0, 263, 2677, 1, 0, 0, 0, 265, 2688, 1, 0, 0, 0, 267, 2698, 1, 0, 0, 0, 269, 2715, 1, 0, 0, 0, 271, 2729, 1, 0, 0, 0, 273, 2738, 1, 0, 0, 0, 275, 2746, 1, 0, 0, 0, 277, 2757, 1, 0, 0, 0, 279, 2773, 1, 0, 0, 0, 281, 2784, 1, 0, 0, 0, 283, 2803, 1, 0, 0, 0, 285, 2819, 1, 0, 0, 0, 287, 2837, 1, 0, 0, 0, 289, 2849, 1, 0, 0, 0, 291, 2861, 1, 0, 0, 0, 293, 2870, 1, 0, 0, 0, 295, 2879, 1, 0, 0, 0, 297, 2890, 1, 0, 0, 0, 299, 2898, 1, 0, 0, 0, 301, 2903, 1, 0, 0, 0, 303, 2908, 1, 0, 0, 0, 305, 2922, 1, 0, 0, 0, 307, 2928, 1, 0, 0, 0, 309, 2934, 1, 0, 0, 0, 311, 2944, 1, 0, 0, 0, 313, 2955, 1, 0, 0, 0, 315, 2962, 1, 0, 0, 0, 317, 2971, 1, 0, 0, 0, 319, 2982, 1, 0, 0, 0, 321, 2988, 1, 0, 0, 0, 323, 2992, 1, 0, 0, 0, 325, 2997, 1, 0, 0, 0, 327, 3007, 1, 0, 0, 0, 329, 3015, 1, 0, 0, 0, 331, 3028, 1, 0, 0, 0, 333, 3060, 1, 0, 0, 0, 335, 3073, 1, 0, 0, 0, 337, 3086, 1, 0, 0, 0, 339, 3099, 1, 0, 0, 0, 341, 3117, 1, 0, 0, 0, 343, 3150, 1, 0, 0, 0, 345, 3163, 1, 0, 0, 0, 347, 3170, 1, 0, 0, 0, 349, 3182, 1, 0, 0, 0, 351, 3188, 1, 0, 0, 0, 353, 3193, 1, 0, 0, 0, 355, 3202, 1, 0, 0, 0, 357, 3207, 1, 0, 0, 0, 359, 3230, 1, 0, 0, 0, 361, 3258, 1, 0, 0, 0, 363, 3262, 1, 0, 0, 0, 365, 3273, 1, 0, 0, 0, 367, 3277, 1, 0, 0, 0, 369, 3285, 1, 0, 0, 0, 371, 3293, 1, 0, 0, 0, 373, 3301, 1, 0, 0, 0, 375, 3310, 1, 0, 0, 0, 377, 3320, 1, 0, 0, 0, 379, 3331, 1, 0, 0, 0, 381, 3340, 1, 0, 0, 0, 383, 3348, 1, 0, 0, 0, 385, 3356, 1, 0, 0, 0, 387, 3363, 1, 0, 0, 0, 389, 3370, 1, 0, 0, 0, 391, 3380, 1, 0, 0, 0, 393, 3391, 1, 0, 0, 0, 395, 3402, 1, 0, 0, 0, 397, 3410, 1, 0, 0, 0, 399, 3416, 1, 0, 0, 0, 401, 3422, 1, 0, 0, 0, 403, 3430, 1, 0, 0, 0, 405, 3435, 1, 0, 0, 0, 407, 3444, 1, 0, 0, 0, 409, 3455, 1, 0, 0, 0, 411, 3463, 1, 0, 0, 0, 413, 3474, 1, 0, 0, 0, 415, 3488, 1, 0, 0, 0, 417, 3500, 1, 0, 0, 0, 419, 3511, 1, 0, 0, 0, 421, 3519, 1, 0, 0, 0, 423, 3541, 1, 0, 0, 0, 425, 3549, 1, 0, 0, 0, 427, 3560, 1, 0, 0, 0, 429, 3569, 1, 0, 0, 0, 431, 3578, 1, 0, 0, 0, 433, 3581, 1, 0, 0, 0, 435, 3588, 1, 0, 0, 0, 437, 3595, 1, 0, 0, 0, 439, 3600, 1, 0, 0, 0, 441, 3608, 1, 0, 0, 0, 443, 3625, 1, 0, 0, 0, 445, 3647, 1, 0, 0, 0, 447, 3652, 1, 0, 0, 0, 449, 3660, 1, 0, 0, 0, 451, 3665, 1, 0, 0, 0, 453, 3672, 1, 0, 0, 0, 455, 3681, 1, 0, 0, 0, 457, 3691, 1, 0, 0, 0, 459, 3695, 1, 0, 0, 0, 461, 3704, 1, 0, 0, 0, 463, 3711, 1, 0, 0, 0, 465, 3718, 1, 0, 0, 0, 467, 3724, 1, 0, 0, 0, 469, 3731, 1, 0, 0, 0, 471, 3741, 1, 0, 0, 0, 473, 3749, 1, 0, 0, 0, 475, 3759, 1, 0, 0, 0, 477, 3769, 1, 0, 0, 0, 479, 3774, 1, 0, 0, 0, 481, 3782, 1, 0, 0, 0, 483, 3791, 1, 0, 0, 0, 485, 3798, 1, 0, 0, 0, 487, 3802, 1, 0, 0, 0, 489, 3810, 1, 0, 0, 0, 491, 3819, 1, 0, 0, 0, 493, 3829, 1, 0, 0, 0, 495, 3838, 1, 0, 0, 0, 497, 3846, 1, 0, 0, 0, 499, 3852, 1, 0, 0, 0, 501, 3858, 1, 0, 0, 0, 503, 3865, 1, 0, 0, 0, 505, 3872, 1, 0, 0, 0, 507, 3878, 1, 0, 0, 0, 509, 3884, 1, 0, 0, 0, 511, 3890, 1, 0, 0, 0, 513, 3896, 1, 0, 0, 0, 515, 3906, 1, 0, 0, 0, 517, 3910, 1, 0, 0, 0, 519, 3916, 1, 0, 0, 0, 521, 3924, 1, 0, 0, 0, 523, 3931, 1, 0, 0, 0, 525, 3939, 1, 0, 0, 0, 527, 3947, 1, 0, 0, 0, 529, 3953, 1, 0, 0, 0, 531, 3958, 1, 0, 0, 0, 533, 3965, 1, 0, 0, 0, 535, 3970, 1, 0, 0, 0, 537, 3975, 1, 0, 0, 0, 539, 3984, 1, 0, 0, 0, 541, 3991, 1, 0, 0, 0, 543, 3993, 1, 0, 0, 0, 545, 4001, 1, 0, 0, 0, 547, 4011, 1, 0, 0, 0, 549, 4015, 1, 0, 0, 0, 551, 4022, 1, 0, 0, 0, 553, 4025, 1, 0, 0, 0, 555, 4030, 1, 0, 0, 0, 557, 4036, 1, 0, 0, 0, 559, 4044, 1, 0, 0, 0, 561, 4053, 1, 0, 0, 0, 563, 4059, 1, 0, 0, 0, 565, 4068, 1, 0, 0, 0, 567, 4076, 1, 0, 0, 0, 569, 4083, 1, 0, 0, 0, 571, 4093, 1, 0, 0, 0, 573, 4098, 1, 0, 0, 0, 575, 4103, 1, 0, 0, 0, 577, 4108, 1, 0, 0, 0, 579, 4117, 1, 0, 0, 0, 581, 4124, 1, 0, 0, 0, 583, 4130, 1, 0, 0, 0, 585, 4140, 1, 0, 0, 0, 587, 4150, 1, 0, 0, 0, 589, 4165, 1, 0, 0, 0, 591, 4174, 1, 0, 0, 0, 593, 4177, 1, 0, 0, 0, 595, 4187, 1, 0, 0, 0, 597, 4197, 1, 0, 0, 0, 599, 4203, 1, 0, 0, 0, 601, 4213, 1, 0, 0, 0, 603, 4219, 1, 0, 0, 0, 605, 4228, 1, 0, 0, 0, 607, 4239, 1, 0, 0, 0, 609, 4249, 1, 0, 0, 0, 611, 4255, 1, 0, 0, 0, 613, 4261, 1, 0, 0, 0, 615, 4267, 1, 0, 0, 0, 617, 4279, 1, 0, 0, 0, 619, 4286, 1, 0, 0, 0, 621, 4295, 1, 0, 0, 0, 623, 4308, 1, 0, 0, 0, 625, 4316, 1, 0, 0, 0, 627, 4320, 1, 0, 0, 0, 629, 4328, 1, 0, 0, 0, 631, 4338, 1, 0, 0, 0, 633, 4351, 1, 0, 0, 0, 635, 4360, 1, 0, 0, 0, 637, 4365, 1, 0, 0, 0, 639, 4373, 1, 0, 0, 0, 641, 4376, 1, 0, 0, 0, 643, 4386, 1, 0, 0, 0, 645, 4394, 1, 0, 0, 0, 647, 4399, 1, 0, 0, 0, 649, 4401, 1, 0, 0, 0, 651, 4405, 1, 0, 0, 0, 653, 4416, 1, 0, 0, 0, 655, 4425, 1, 0, 0, 0, 657, 4431, 1, 0, 0, 0, 659, 4443, 1, 0, 0, 0, 661, 4452, 1, 0, 0, 0, 663, 4458, 1, 0, 0, 0, 665, 4463, 1, 0, 0, 0, 667, 4471, 1, 0, 0, 0, 669, 4479, 1, 0, 0, 0, 671, 4485, 1, 0, 0, 0, 673, 4490, 1, 0, 0, 0, 675, 4497, 1, 0, 0, 0, 677, 4502, 1, 0, 0, 0, 679, 4508, 1, 0, 0, 0, 681, 4513, 1, 0, 0, 0, 683, 4519, 1, 0, 0, 0, 685, 4526, 1, 0, 0, 0, 687, 4529, 1, 0, 0, 0, 689, 4534, 1, 0, 0, 0, 691, 4540, 1, 0, 0, 0, 693, 4550, 1, 0, 0, 0, 695, 4565, 1, 0, 0, 0, 697, 4574, 1, 0, 0, 0, 699, 4582, 1, 0, 0, 0, 701, 4587, 1, 0, 0, 0, 703, 4594, 1, 0, 0, 0, 705, 4600, 1, 0, 0, 0, 707, 4602, 1, 0, 0, 0, 709, 4607, 1, 0, 0, 0, 711, 4611, 1, 0, 0, 0, 713, 4619, 1, 0, 0, 0, 715, 4625, 1, 0, 0, 0, 717, 4638, 1, 0, 0, 0, 719, 4646, 1, 0, 0, 0, 721, 4650, 1, 0, 0, 0, 723, 4659, 1, 0, 0, 0, 725, 4666, 1, 0, 0, 0, 727, 4672, 1, 0, 0, 0, 729, 4687, 1, 0, 0, 0, 731, 4708, 1, 0, 0, 0, 733, 4721, 1, 0, 0, 0, 735, 4728, 1, 0, 0, 0, 737, 4732, 1, 0, 0, 0, 739, 4739, 1, 0, 0, 0, 741, 4748, 1, 0, 0, 0, 743, 4752, 1, 0, 0, 0, 745, 4757, 1, 0, 0, 0, 747, 4766, 1, 0, 0, 0, 749, 4773, 1, 0, 0, 0, 751, 4780, 1, 0, 0, 0, 753, 4786, 1, 0, 0, 0, 755, 4791, 1, 0, 0, 0, 757, 4796, 1, 0, 0, 0, 759, 4805, 1, 0, 0, 0, 761, 4811, 1, 0, 0, 0, 763, 4816, 1, 0, 0, 0, 765, 4822, 1, 0, 0, 0, 767, 4831, 1, 0, 0, 0, 769, 4839, 1, 0, 0, 0, 771, 4845, 1, 0, 0, 0, 773, 4851, 1, 0, 0, 0, 775, 4859, 1, 0, 0, 0, 777, 4863, 1, 0, 0, 0, 779, 4868, 1, 0, 0, 0, 781, 4871, 1, 0, 0, 0, 783, 4882, 1, 0, 0, 0, 785, 4895, 1, 0, 0, 0, 787, 4900, 1, 0, 0, 0, 789, 4910, 1, 0, 0, 0, 791, 4921, 1, 0, 0, 0, 793, 4925, 1, 0, 0, 0, 795, 4933, 1, 0, 0, 0, 797, 4940, 1, 0, 0, 0, 799, 4948, 1, 0, 0, 0, 801, 4955, 1, 0, 0, 0, 803, 4960, 1, 0, 0, 0, 805, 4969, 1, 0, 0, 0, 807, 4976, 1, 0, 0, 0, 809, 4982, 1, 0, 0, 0, 811, 4989, 1, 0, 0, 0, 813, 4997, 1, 0, 0, 0, 815, 5004, 1, 0, 0, 0, 817, 5017, 1, 0, 0, 0, 819, 5024, 1, 0, 0, 0, 821, 5027, 1, 0, 0, 0, 823, 5031, 1, 0, 0, 0, 825, 5038, 1, 0, 0, 0, 827, 5043, 1, 0, 0, 0, 829, 5047, 1, 0, 0, 0, 831, 5050, 1, 0, 0, 0, 833, 5055, 1, 0, 0, 0, 835, 5060, 1, 0, 0, 0, 837, 5070, 1, 0, 0, 0, 839, 5079, 1, 0, 0, 0, 841, 5086, 1, 0, 0, 0, 843, 5094, 1, 0, 0, 0, 845, 5097, 1, 0, 0, 0, 847, 5103, 1, 0, 0, 0, 849, 5112, 1, 0, 0, 0, 851, 5123, 1, 0, 0, 0, 853, 5130, 1, 0, 0, 0, 855, 5134, 1, 0, 0, 0, 857, 5140, 1, 0, 0, 0, 859, 5147, 1, 0, 0, 0, 861, 5152, 1, 0, 0, 0, 863, 5161, 1, 0, 0, 0, 865, 5169, 1, 0, 0, 0, 867, 5180, 1, 0, 0, 0, 869, 5186, 1, 0, 0, 0, 871, 5190, 1, 0, 0, 0, 873, 5200, 1, 0, 0, 0, 875, 5215, 1, 0, 0, 0, 877, 5230, 1, 0, 0, 0, 879, 5257, 1, 0, 0, 0, 881, 5284, 1, 0, 0, 0, 883, 5308, 1, 0, 0, 0, 885, 5334, 1, 0, 0, 0, 887, 5345, 1, 0, 0, 0, 889, 5352, 1, 0, 0, 0, 891, 5360, 1, 0, 0, 0, 893, 5370, 1, 0, 0, 0, 895, 5377, 1, 0, 0, 0, 897, 5386, 1, 0, 0, 0, 899, 5391, 1, 0, 0, 0, 901, 5404, 1, 0, 0, 0, 903, 5420, 1, 0, 0, 0, 905, 5436, 1, 0, 0, 0, 907, 5444, 1, 0, 0, 0, 909, 5450, 1, 0, 0, 0, 911, 5456, 1, 0, 0, 0, 913, 5460, 1, 0, 0, 0, 915, 5469, 1, 0, 0, 0, 917, 5477, 1, 0, 0, 0, 919, 5483, 1, 0, 0, 0, 921, 5493, 1, 0, 0, 0, 923, 5503, 1, 0, 0, 0, 925, 5510, 1, 0, 0, 0, 927, 5519, 1, 0, 0, 0, 929, 5527, 1, 0, 0, 0, 931, 5536, 1, 0, 0, 0, 933, 5545, 1, 0, 0, 0, 935, 5553, 1, 0, 0, 0, 937, 5559, 1, 0, 0, 0, 939, 5570, 1, 0, 0, 0, 941, 5581, 1, 0, 0, 0, 943, 5591, 1, 0, 0, 0, 945, 5598, 1, 0, 0, 0, 947, 5610, 1, 0, 0, 0, 949, 5616, 1, 0, 0, 0, 951, 5622, 1, 0, 0, 0, 953, 5627, 1, 0, 0, 0, 955, 5632, 1, 0, 0, 0, 957, 5638, 1, 0, 0, 0, 959, 5643, 1, 0, 0, 0, 961, 5652, 1, 0, 0, 0, 963, 5660, 1, 0, 0, 0, 965, 5670, 1, 0, 0, 0, 967, 5674, 1, 0, 0, 0, 969, 5685, 1, 0, 0, 0, 971, 5697, 1, 0, 0, 0, 973, 5705, 1, 0, 0, 0, 975, 5715, 1, 0, 0, 0, 977, 5725, 1, 0, 0, 0, 979, 5736, 1, 0, 0, 0, 981, 5751, 1, 0, 0, 0, 983, 5759, 1, 0, 0, 0, 985, 5770, 1, 0, 0, 0, 987, 5779, 1, 0, 0, 0, 989, 5788, 1, 0, 0, 0, 991, 5797, 1, 0, 0, 0, 993, 5805, 1, 0, 0, 0, 995, 5814, 1, 0, 0, 0, 997, 5822, 1, 0, 0, 0, 999, 5829, 1, 0, 0, 0, 1001, 5840, 1, 0, 0, 0, 1003, 5848, 1, 0, 0, 0, 1005, 5856, 1, 0, 0, 0, 1007, 5862, 1, 0, 0, 0, 1009, 5870, 1, 0, 0, 0, 1011, 5879, 1, 0, 0, 0, 1013, 5886, 1, 0, 0, 0, 1015, 5893, 1, 0, 0, 0, 1017, 5914, 1, 0, 0, 0, 1019, 5930, 1, 0, 0, 0, 1021, 5952, 1, 0, 0, 0, 1023, 5970, 1, 0, 0, 0, 1025, 5980, 1, 0, 0, 0, 1027, 5988, 1, 0, 0, 0, 1029, 5995, 1, 0, 0, 0, 1031, 6001, 1, 0, 0, 0, 1033, 6006, 1, 0, 0, 0, 1035, 6015, 1, 0, 0, 0, 1037, 6022, 1, 0, 0, 0, 1039, 6030, 1, 0, 0, 0, 1041, 6046, 1, 0, 0, 0, 1043, 6059, 1, 0, 0, 0, 1045, 6074, 1, 0, 0, 0, 1047, 6078, 1, 0, 0, 0, 1049, 6088, 1, 0, 0, 0, 1051, 6099, 1, 0, 0, 0, 1053, 6104, 1, 0, 0, 0, 1055, 6109, 1, 0, 0, 0, 1057, 6119, 1, 0, 0, 0, 1059, 6125, 1, 0, 0, 0, 1061, 6132, 1, 0, 0, 0, 1063, 6144, 1, 0, 0, 0, 1065, 6150, 1, 0, 0, 0, 1067, 6164, 1, 0, 0, 0, 1069, 6175, 1, 0, 0, 0, 1071, 6188, 1, 0, 0, 0, 1073, 6195, 1, 0, 0, 0, 1075, 6202, 1, 0, 0, 0, 1077, 6209, 1, 0, 0, 0, 1079, 6217, 1, 0, 0, 0, 1081, 6226, 1, 0, 0, 0, 1083, 6233, 1, 0, 0, 0, 1085, 6238, 1, 0, 0, 0, 1087, 6248, 1, 0, 0, 0, 1089, 6257, 1, 0, 0, 0, 1091, 6267, 1, 0, 0, 0, 1093, 6280, 1, 0, 0, 0, 1095, 6292, 1, 0, 0, 0, 1097, 6300, 1, 0, 0, 0, 1099, 6313, 1, 0, 0, 0, 1101, 6317, 1, 0, 0, 0, 1103, 6323, 1, 0, 0, 0, 1105, 6328, 1, 0, 0, 0, 1107, 6334, 1, 0, 0, 0, 1109, 6339, 1, 0, 0, 0, 1111, 6347, 1, 0, 0, 0, 1113, 6354, 1, 0, 0, 0, 1115, 6359, 1, 0, 0, 0, 1117, 6364, 1, 0, 0, 0, 1119, 6373, 1, 0, 0, 0, 1121, 6382, 1, 0, 0, 0, 1123, 6387, 1, 0, 0, 0, 1125, 6394, 1, 0, 0, 0, 1127, 6400, 1, 0, 0, 0, 1129, 6409, 1, 0, 0, 0, 1131, 6423, 1, 0, 0, 0, 1133, 6436, 1, 0, 0, 0, 1135, 6440, 1, 0, 0, 0, 1137, 6448, 1, 0, 0, 0, 1139, 6457, 1, 0, 0, 0, 1141, 6470, 1, 0, 0, 0, 1143, 6479, 1, 0, 0, 0, 1145, 6490, 1, 0, 0, 0, 1147, 6495, 1, 0, 0, 0, 1149, 6502, 1, 0, 0, 0, 1151, 6508, 1, 0, 0, 0, 1153, 6514, 1, 0, 0, 0, 1155, 6524, 1, 0, 0, 0, 1157, 6531, 1, 0, 0, 0, 1159, 6542, 1, 0, 0, 0, 1161, 6553, 1, 0, 0, 0, 1163, 6565, 1, 0, 0, 0, 1165, 6571, 1, 0, 0, 0, 1167, 6578, 1, 0, 0, 0, 1169, 6586, 1, 0, 0, 0, 1171, 6593, 1, 0, 0, 0, 1173, 6603, 1, 0, 0, 0, 1175, 6609, 1, 0, 0, 0, 1177, 6625, 1, 0, 0, 0, 1179, 6633, 1, 0, 0, 0, 1181, 6645, 1, 0, 0, 0, 1183, 6658, 1, 0, 0, 0, 1185, 6668, 1, 0, 0, 0, 1187, 6672, 1, 0, 0, 0, 1189, 6682, 1, 0, 0, 0, 1191, 6688, 1, 0, 0, 0, 1193, 6695, 1, 0, 0, 0, 1195, 6707, 1, 0, 0, 0, 1197, 6713, 1, 0, 0, 0, 1199, 6724, 1, 0, 0, 0, 1201, 6736, 1, 0, 0, 0, 1203, 6747, 1, 0, 0, 0, 1205, 6752, 1, 0, 0, 0, 1207, 6761, 1, 0, 0, 0, 1209, 6771, 1, 0, 0, 0, 1211, 6781, 1, 0, 0, 0, 1213, 6786, 1, 0, 0, 0, 1215, 6791, 1, 0, 0, 0, 1217, 6796, 1, 0, 0, 0, 1219, 6801, 1, 0, 0, 0, 1221, 6811, 1, 0, 0, 0, 1223, 6825, 1, 0, 0, 0, 1225, 6841, 1, 0, 0, 0, 1227, 6848, 1, 0, 0, 0, 1229, 6851, 1, 0, 0, 0, 1231, 6857, 1, 0, 0, 0, 1233, 6873, 1, 0, 0, 0, 1235, 6882, 1, 0, 0, 0, 1237, 6894, 1, 0, 0, 0, 1239, 6913, 1, 0, 0, 0, 1241, 6936, 1, 0, 0, 0, 1243, 6961, 1, 0, 0, 0, 1245, 6971, 1, 0, 0, 0, 1247, 6982, 1, 0, 0, 0, 1249, 6992, 1, 0, 0, 0, 1251, 7004, 1, 0, 0, 0, 1253, 7010, 1, 0, 0, 0, 1255, 7018, 1, 0, 0, 0, 1257, 7034, 1, 0, 0, 0, 1259, 7047, 1, 0, 0, 0, 1261, 7062, 1, 0, 0, 0, 1263, 7067, 1, 0, 0, 0, 1265, 7072, 1, 0, 0, 0, 1267, 7081, 1, 0, 0, 0, 1269, 7089, 1, 0, 0, 0, 1271, 7094, 1, 0, 0, 0, 1273, 7102, 1, 0, 0, 0, 1275, 7112, 1, 0, 0, 0, 1277, 7124, 1, 0, 0, 0, 1279, 7130, 1, 0, 0, 0, 1281, 7142, 1, 0, 0, 0, 1283, 7148, 1, 0, 0, 0, 1285, 7155, 1, 0, 0, 0, 1287, 7163, 1, 0, 0, 0, 1289, 7172, 1, 0, 0, 0, 1291, 7180, 1, 0, 0, 0, 1293, 7187, 1, 0, 0, 0, 1295, 7193, 1, 0, 0, 0, 1297, 7200, 1, 0, 0, 0, 1299, 7206, 1, 0, 0, 0, 1301, 7212, 1, 0, 0, 0, 1303, 7217, 1, 0, 0, 0, 1305, 7243, 1, 0, 0, 0, 1307, 7266, 1, 0, 0, 0, 1309, 7289, 1, 0, 0, 0, 1311, 7314, 1, 0, 0, 0, 1313, 7320, 1, 0, 0, 0, 1315, 7327, 1, 0, 0, 0, 1317, 7333, 1, 0, 0, 0, 1319, 7342, 1, 0, 0, 0, 1321, 7352, 1, 0, 0, 0, 1323, 7358, 1, 0, 0, 0, 1325, 7365, 1, 0, 0, 0, 1327, 7373, 1, 0, 0, 0, 1329, 7382, 1, 0, 0, 0, 1331, 7390, 1, 0, 0, 0, 1333, 7399, 1, 0, 0, 0, 1335, 7408, 1, 0, 0, 0, 1337, 7416, 1, 0, 0, 0, 1339, 7424, 1, 0, 0, 0, 1341, 7429, 1, 0, 0, 0, 1343, 7438, 1, 0, 0, 0, 1345, 7443, 1, 0, 0, 0, 1347, 7452, 1, 0, 0, 0, 1349, 7458, 1, 0, 0, 0, 1351, 7471, 1, 0, 0, 0, 1353, 7478, 1, 0, 0, 0, 1355, 7483, 1, 0, 0, 0, 1357, 7490, 1, 0, 0, 0, 1359, 7498, 1, 0, 0, 0, 1361, 7503, 1, 0, 0, 0, 1363, 7509, 1, 0, 0, 0, 1365, 7514, 1, 0, 0, 0, 1367, 7519, 1, 0, 0, 0, 1369, 7523, 1, 0, 0, 0, 1371, 7528, 1, 0, 0, 0, 1373, 7538, 1, 0, 0, 0, 1375, 7550, 1, 0, 0, 0, 1377, 7561, 1, 0, 0, 0, 1379, 7574, 1, 0, 0, 0, 1381, 7582, 1, 0, 0, 0, 1383, 7592, 1, 0, 0, 0, 1385, 7598, 1, 0, 0, 0, 1387, 7606, 1, 0, 0, 0, 1389, 7618, 1, 0, 0, 0, 1391, 7632, 1, 0, 0, 0, 1393, 7642, 1, 0, 0, 0, 1395, 7654, 1, 0, 0, 0, 1397, 7660, 1, 0, 0, 0, 1399, 7666, 1, 0, 0, 0, 1401, 7673, 1, 0, 0, 0, 1403, 7683, 1, 0, 0, 0, 1405, 7699, 1, 0, 0, 0, 1407, 7711, 1, 0, 0, 0, 1409, 7722, 1, 0, 0, 0, 1411, 7735, 1, 0, 0, 0, 1413, 7744, 1, 0, 0, 0, 1415, 7751, 1, 0, 0, 0, 1417, 7760, 1, 0, 0, 0, 1419, 7767, 1, 0, 0, 0, 1421, 7775, 1, 0, 0, 0, 1423, 7786, 1, 0, 0, 0, 1425, 7803, 1, 0, 0, 0, 1427, 7813, 1, 0, 0, 0, 1429, 7820, 1, 0, 0, 0, 1431, 7829, 1, 0, 0, 0, 1433, 7842, 1, 0, 0, 0, 1435, 7847, 1, 0, 0, 0, 1437, 7858, 1, 0, 0, 0, 1439, 7865, 1, 0, 0, 0, 1441, 7874, 1, 0, 0, 0, 1443, 7877, 1, 0, 0, 0, 1445, 7884, 1, 0, 0, 0, 1447, 7895, 1, 0, 0, 0, 1449, 7904, 1, 0, 0, 0, 1451, 7913, 1, 0, 0, 0, 1453, 7921, 1, 0, 0, 0, 1455, 7939, 1, 0, 0, 0, 1457, 7951, 1, 0, 0, 0, 1459, 7957, 1, 0, 0, 0, 1461, 7965, 1, 0, 0, 0, 1463, 7972, 1, 0, 0, 0, 1465, 7978, 1, 0, 0, 0, 1467, 7983, 1, 0, 0, 0, 1469, 7988, 1, 0, 0, 0, 1471, 7995, 1, 0, 0, 0, 1473, 7999, 1, 0, 0, 0, 1475, 8004, 1, 0, 0, 0, 1477, 8017, 1, 0, 0, 0, 1479, 8024, 1, 0, 0, 0, 1481, 8037, 1, 0, 0, 0, 1483, 8045, 1, 0, 0, 0, 1485, 8054, 1, 0, 0, 0, 1487, 8065, 1, 0, 0, 0, 1489, 8073, 1, 0, 0, 0, 1491, 8080, 1, 0, 0, 0, 1493, 8087, 1, 0, 0, 0, 1495, 8094, 1, 0, 0, 0, 1497, 8101, 1, 0, 0, 0, 1499, 8107, 1, 0, 0, 0, 1501, 8115, 1, 0, 0, 0, 1503, 8125, 1, 0, 0, 0, 1505, 8137, 1, 0, 0, 0, 1507, 8142, 1, 0, 0, 0, 1509, 8146, 1, 0, 0, 0, 1511, 8152, 1, 0, 0, 0, 1513, 8170, 1, 0, 0, 0, 1515, 8175, 1, 0, 0, 0, 1517, 8182, 1, 0, 0, 0, 1519, 8189, 1, 0, 0, 0, 1521, 8196, 1, 0, 0, 0, 1523, 8201, 1, 0, 0, 0, 1525, 8206, 1, 0, 0, 0, 1527, 8211, 1, 0, 0, 0, 1529, 8216, 1, 0, 0, 0, 1531, 8221, 1, 0, 0, 0, 1533, 8227, 1, 0, 0, 0, 1535, 8232, 1, 0, 0, 0, 1537, 8237, 1, 0, 0, 0, 1539, 8245, 1, 0, 0, 0, 1541, 8254, 1, 0, 0, 0, 1543, 8260, 1, 0, 0, 0, 1545, 8267, 1, 0, 0, 0, 1547, 8273, 1, 0, 0, 0, 1549, 8281, 1, 0, 0, 0, 1551, 8289, 1, 0, 0, 0, 1553, 8296, 1, 0, 0, 0, 1555, 8304, 1, 0, 0, 0, 1557, 8312, 1, 0, 0, 0, 1559, 8320, 1, 0, 0, 0, 1561, 8332, 1, 0, 0, 0, 1563, 8339, 1, 0, 0, 0, 1565, 8344, 1, 0, 0, 0, 1567, 8356, 1, 0, 0, 0, 1569, 8363, 1, 0, 0, 0, 1571, 8371, 1, 0, 0, 0, 1573, 8380, 1, 0, 0, 0, 1575, 8394, 1, 0, 0, 0, 1577, 8399, 1, 0, 0, 0, 1579, 8406, 1, 0, 0, 0, 1581, 8410, 1, 0, 0, 0, 1583, 8412, 1, 0, 0, 0, 1585, 8414, 1, 0, 0, 0, 1587, 8417, 1, 0, 0, 0, 1589, 8419, 1, 0, 0, 0, 1591, 8422, 1, 0, 0, 0, 1593, 8424, 1, 0, 0, 0, 1595, 8426, 1, 0, 0, 0, 1597, 8428, 1, 0, 0, 0, 1599, 8430, 1, 0, 0, 0, 1601, 8432, 1, 0, 0, 0, 1603, 8442, 1, 0, 0, 0, 1605, 8446, 1, 0, 0, 0, 1607, 8474, 1, 0, 0, 0, 1609, 8489, 1, 0, 0, 0, 1611, 8492, 1, 0, 0, 0, 1613, 8494, 1, 0, 0, 0, 1615, 8496, 1, 0, 0, 0, 1617, 8498, 1, 0, 0, 0, 1619, 8505, 1, 0, 0, 0, 1621, 8511, 1, 0, 0, 0, 1623, 8518, 1, 0, 0, 0, 1625, 8520, 1, 0, 0, 0, 1627, 8523, 1, 0, 0, 0, 1629, 8526, 1, 0, 0, 0, 1631, 8529, 1, 0, 0, 0, 1633, 8532, 1, 0, 0, 0, 1635, 8534, 1, 0, 0, 0, 1637, 8536, 1, 0, 0, 0, 1639, 8539, 1, 0, 0, 0, 1641, 8542, 1, 0, 0, 0, 1643, 8544, 1, 0, 0, 0, 1645, 8546, 1, 0, 0, 0, 1647, 8549, 1, 0, 0, 0, 1649, 8551, 1, 0, 0, 0, 1651, 8554, 1, 0, 0, 0, 1653, 8557, 1, 0, 0, 0, 1655, 8559, 1, 0, 0, 0, 1657, 8562, 1, 0, 0, 0, 1659, 8565, 1, 0, 0, 0, 1661, 8569, 1, 0, 0, 0, 1663, 8572, 1, 0, 0, 0, 1665, 8575, 1, 0, 0, 0, 1667, 8579, 1, 0, 0, 0, 1669, 8583, 1, 0, 0, 0, 1671, 8585, 1, 0, 0, 0, 1673, 8588, 1, 0, 0, 0, 1675, 8591, 1, 0, 0, 0, 1677, 8594, 1, 0, 0, 0, 1679, 8597, 1, 0, 0, 0, 1681, 8601, 1, 0, 0, 0, 1683, 8604, 1, 0, 0, 0, 1685, 8608, 1, 0, 0, 0, 1687, 8612, 1, 0, 0, 0, 1689, 8614, 1, 0, 0, 0, 1691, 8616, 1, 0, 0, 0, 1693, 8618, 1, 0, 0, 0, 1695, 8621, 1, 0, 0, 0, 1697, 8625, 1, 0, 0, 0, 1699, 8628, 1, 0, 0, 0, 1701, 8630, 1, 0, 0, 0, 1703, 8632, 1, 0, 0, 0, 1705, 8635, 1, 0, 0, 0, 1707, 8638, 1, 0, 0, 0, 1709, 8641, 1, 0, 0, 0, 1711, 8644, 1, 0, 0, 0, 1713, 8646, 1, 0, 0, 0, 1715, 8648, 1, 0, 0, 0, 1717, 8651, 1, 0, 0, 0, 1719, 8656, 1, 0, 0, 0, 1721, 8660, 1, 0, 0, 0, 1723, 8665, 1, 0, 0, 0, 1725, 8669, 1, 0, 0, 0, 1727, 8672, 1, 0, 0, 0, 1729, 8675, 1, 0, 0, 0, 1731, 1733, 7, 0, 0, 0, 1732, 1731, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1732, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1736, 1, 0, 0, 0, 1736, 1737, 6, 0, 0, 0, 1737, 2, 1, 0, 0, 0, 1738, 1739, 5, 47, 0, 0, 1739, 1740, 5, 42, 0, 0, 1740, 1744, 1, 0, 0, 0, 1741, 1743, 9, 0, 0, 0, 1742, 1741, 1, 0, 0, 0, 1743, 1746, 1, 0, 0, 0, 1744, 1745, 1, 0, 0, 0, 1744, 1742, 1, 0, 0, 0, 1745, 1747, 1, 0, 0, 0, 1746, 1744, 1, 0, 0, 0, 1747, 1748, 5, 42, 0, 0, 1748, 1749, 5, 47, 0, 0, 1749, 1750, 1, 0, 0, 0, 1750, 1751, 6, 1, 1, 0, 1751, 4, 1, 0, 0, 0, 1752, 1753, 5, 45, 0, 0, 1753, 1754, 5, 45, 0, 0, 1754, 1758, 1, 0, 0, 0, 1755, 1757, 9, 0, 0, 0, 1756, 1755, 1, 0, 0, 0, 1757, 1760, 1, 0, 0, 0, 1758, 1759, 1, 0, 0, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1761, 1, 0, 0, 0, 1760, 1758, 1, 0, 0, 0, 1761, 1762, 5, 10, 0, 0, 1762, 1763, 1, 0, 0, 0, 1763, 1764, 6, 2, 1, 0, 1764, 6, 1, 0, 0, 0, 1765, 1766, 7, 1, 0, 0, 1766, 8, 1, 0, 0, 0, 1767, 1768, 7, 2, 0, 0, 1768, 10, 1, 0, 0, 0, 1769, 1770, 7, 3, 0, 0, 1770, 12, 1, 0, 0, 0, 1771, 1772, 7, 4, 0, 0, 1772, 14, 1, 0, 0, 0, 1773, 1774, 7, 5, 0, 0, 1774, 16, 1, 0, 0, 0, 1775, 1776, 7, 6, 0, 0, 1776, 18, 1, 0, 0, 0, 1777, 1778, 7, 7, 0, 0, 1778, 20, 1, 0, 0, 0, 1779, 1780, 7, 8, 0, 0, 1780, 22, 1, 0, 0, 0, 1781, 1782, 7, 9, 0, 0, 1782, 24, 1, 0, 0, 0, 1783, 1784, 7, 10, 0, 0, 1784, 26, 1, 0, 0, 0, 1785, 1786, 7, 11, 0, 0, 1786, 28, 1, 0, 0, 0, 1787, 1788, 7, 12, 0, 0, 1788, 30, 1, 0, 0, 0, 1789, 1790, 7, 13, 0, 0, 1790, 32, 1, 0, 0, 0, 1791, 1792, 7, 14, 0, 0, 1792, 34, 1, 0, 0, 0, 1793, 1794, 7, 15, 0, 0, 1794, 36, 1, 0, 0, 0, 1795, 1796, 7, 16, 0, 0, 1796, 38, 1, 0, 0, 0, 1797, 1798, 7, 17, 0, 0, 1798, 40, 1, 0, 0, 0, 1799, 1800, 7, 18, 0, 0, 1800, 42, 1, 0, 0, 0, 1801, 1802, 7, 19, 0, 0, 1802, 44, 1, 0, 0, 0, 1803, 1804, 7, 20, 0, 0, 1804, 46, 1, 0, 0, 0, 1805, 1806, 7, 21, 0, 0, 1806, 48, 1, 0, 0, 0, 1807, 1808, 7, 22, 0, 0, 1808, 50, 1, 0, 0, 0, 1809, 1810, 7, 23, 0, 0, 1810, 52, 1, 0, 0, 0, 1811, 1812, 7, 24, 0, 0, 1812, 54, 1, 0, 0, 0, 1813, 1814, 7, 25, 0, 0, 1814, 56, 1, 0, 0, 0, 1815, 1816, 7, 26, 0, 0, 1816, 58, 1, 0, 0, 0, 1817, 1818, 7, 27, 0, 0, 1818, 60, 1, 0, 0, 0, 1819, 1820, 7, 28, 0, 0, 1820, 62, 1, 0, 0, 0, 1821, 1829, 5, 34, 0, 0, 1822, 1823, 5, 92, 0, 0, 1823, 1828, 9, 0, 0, 0, 1824, 1825, 5, 34, 0, 0, 1825, 1828, 5, 34, 0, 0, 1826, 1828, 8, 29, 0, 0, 1827, 1822, 1, 0, 0, 0, 1827, 1824, 1, 0, 0, 0, 1827, 1826, 1, 0, 0, 0, 1828, 1831, 1, 0, 0, 0, 1829, 1827, 1, 0, 0, 0, 1829, 1830, 1, 0, 0, 0, 1830, 1832, 1, 0, 0, 0, 1831, 1829, 1, 0, 0, 0, 1832, 1833, 5, 34, 0, 0, 1833, 64, 1, 0, 0, 0, 1834, 1842, 5, 39, 0, 0, 1835, 1836, 5, 92, 0, 0, 1836, 1841, 9, 0, 0, 0, 1837, 1838, 5, 39, 0, 0, 1838, 1841, 5, 39, 0, 0, 1839, 1841, 8, 30, 0, 0, 1840, 1835, 1, 0, 0, 0, 1840, 1837, 1, 0, 0, 0, 1840, 1839, 1, 0, 0, 0, 1841, 1844, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1845, 1, 0, 0, 0, 1844, 1842, 1, 0, 0, 0, 1845, 1846, 5, 39, 0, 0, 1846, 66, 1, 0, 0, 0, 1847, 1855, 5, 96, 0, 0, 1848, 1849, 5, 92, 0, 0, 1849, 1854, 9, 0, 0, 0, 1850, 1851, 5, 96, 0, 0, 1851, 1854, 5, 96, 0, 0, 1852, 1854, 8, 31, 0, 0, 1853, 1848, 1, 0, 0, 0, 1853, 1850, 1, 0, 0, 0, 1853, 1852, 1, 0, 0, 0, 1854, 1857, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1855, 1856, 1, 0, 0, 0, 1856, 1858, 1, 0, 0, 0, 1857, 1855, 1, 0, 0, 0, 1858, 1859, 5, 96, 0, 0, 1859, 68, 1, 0, 0, 0, 1860, 1861, 3, 7, 3, 0, 1861, 70, 1, 0, 0, 0, 1862, 1863, 3, 7, 3, 0, 1863, 1864, 3, 9, 4, 0, 1864, 1865, 3, 35, 17, 0, 1865, 1866, 3, 41, 20, 0, 1866, 1867, 3, 45, 22, 0, 1867, 72, 1, 0, 0, 0, 1868, 1869, 3, 7, 3, 0, 1869, 1870, 3, 9, 4, 0, 1870, 1871, 3, 43, 21, 0, 1871, 74, 1, 0, 0, 0, 1872, 1873, 3, 7, 3, 0, 1873, 1874, 3, 9, 4, 0, 1874, 1875, 3, 43, 21, 0, 1875, 1876, 3, 35, 17, 0, 1876, 1877, 3, 29, 14, 0, 1877, 1878, 3, 47, 23, 0, 1878, 1879, 3, 45, 22, 0, 1879, 1880, 3, 15, 7, 0, 1880, 76, 1, 0, 0, 0, 1881, 1882, 3, 7, 3, 0, 1882, 1883, 3, 11, 5, 0, 1883, 1884, 3, 11, 5, 0, 1884, 1885, 3, 15, 7, 0, 1885, 1886, 3, 43, 21, 0, 1886, 1887, 3, 43, 21, 0, 1887, 78, 1, 0, 0, 0, 1888, 1889, 3, 7, 3, 0, 1889, 1890, 3, 11, 5, 0, 1890, 1891, 3, 45, 22, 0, 1891, 1892, 3, 23, 11, 0, 1892, 1893, 3, 35, 17, 0, 1893, 1894, 3, 33, 16, 0, 1894, 80, 1, 0, 0, 0, 1895, 1896, 3, 7, 3, 0, 1896, 1897, 3, 13, 6, 0, 1897, 1898, 3, 7, 3, 0, 1898, 82, 1, 0, 0, 0, 1899, 1900, 3, 7, 3, 0, 1900, 1901, 3, 13, 6, 0, 1901, 1902, 3, 13, 6, 0, 1902, 84, 1, 0, 0, 0, 1903, 1904, 3, 7, 3, 0, 1904, 1905, 3, 13, 6, 0, 1905, 1906, 3, 31, 15, 0, 1906, 1907, 3, 23, 11, 0, 1907, 1908, 3, 33, 16, 0, 1908, 86, 1, 0, 0, 0, 1909, 1910, 3, 7, 3, 0, 1910, 1911, 3, 17, 8, 0, 1911, 1912, 3, 45, 22, 0, 1912, 1913, 3, 15, 7, 0, 1913, 1914, 3, 41, 20, 0, 1914, 88, 1, 0, 0, 0, 1915, 1916, 3, 7, 3, 0, 1916, 1917, 3, 19, 9, 0, 1917, 1918, 3, 19, 9, 0, 1918, 1919, 3, 41, 20, 0, 1919, 1920, 3, 15, 7, 0, 1920, 1921, 3, 19, 9, 0, 1921, 1922, 3, 7, 3, 0, 1922, 1923, 3, 45, 22, 0, 1923, 1924, 3, 15, 7, 0, 1924, 90, 1, 0, 0, 0, 1925, 1926, 3, 7, 3, 0, 1926, 1927, 3, 29, 14, 0, 1927, 1928, 3, 23, 11, 0, 1928, 1929, 3, 7, 3, 0, 1929, 1930, 3, 43, 21, 0, 1930, 92, 1, 0, 0, 0, 1931, 1932, 3, 7, 3, 0, 1932, 1933, 3, 29, 14, 0, 1933, 1934, 3, 29, 14, 0, 1934, 94, 1, 0, 0, 0, 1935, 1936, 3, 7, 3, 0, 1936, 1937, 3, 29, 14, 0, 1937, 1938, 3, 29, 14, 0, 1938, 1939, 3, 35, 17, 0, 1939, 1940, 3, 11, 5, 0, 1940, 1941, 3, 7, 3, 0, 1941, 1942, 3, 45, 22, 0, 1942, 1943, 3, 15, 7, 0, 1943, 96, 1, 0, 0, 0, 1944, 1945, 3, 7, 3, 0, 1945, 1946, 3, 29, 14, 0, 1946, 1947, 3, 43, 21, 0, 1947, 1948, 3, 35, 17, 0, 1948, 98, 1, 0, 0, 0, 1949, 1950, 3, 7, 3, 0, 1950, 1951, 3, 29, 14, 0, 1951, 1952, 3, 45, 22, 0, 1952, 1953, 3, 15, 7, 0, 1953, 1954, 3, 41, 20, 0, 1954, 100, 1, 0, 0, 0, 1955, 1956, 3, 7, 3, 0, 1956, 1957, 3, 29, 14, 0, 1957, 1958, 3, 51, 25, 0, 1958, 1959, 3, 7, 3, 0, 1959, 1960, 3, 55, 27, 0, 1960, 1961, 3, 43, 21, 0, 1961, 102, 1, 0, 0, 0, 1962, 1963, 3, 7, 3, 0, 1963, 1964, 3, 33, 16, 0, 1964, 1965, 3, 7, 3, 0, 1965, 1966, 3, 29, 14, 0, 1966, 1967, 3, 55, 27, 0, 1967, 1968, 3, 43, 21, 0, 1968, 1969, 3, 15, 7, 0, 1969, 104, 1, 0, 0, 0, 1970, 1971, 3, 7, 3, 0, 1971, 1972, 3, 33, 16, 0, 1972, 1973, 3, 7, 3, 0, 1973, 1974, 3, 29, 14, 0, 1974, 1975, 3, 55, 27, 0, 1975, 1976, 3, 57, 28, 0, 1976, 1977, 3, 15, 7, 0, 1977, 106, 1, 0, 0, 0, 1978, 1979, 3, 7, 3, 0, 1979, 1980, 3, 33, 16, 0, 1980, 1981, 3, 13, 6, 0, 1981, 108, 1, 0, 0, 0, 1982, 1983, 3, 7, 3, 0, 1983, 1984, 3, 33, 16, 0, 1984, 1985, 3, 55, 27, 0, 1985, 110, 1, 0, 0, 0, 1986, 1987, 3, 7, 3, 0, 1987, 1988, 3, 41, 20, 0, 1988, 1989, 3, 15, 7, 0, 1989, 112, 1, 0, 0, 0, 1990, 1991, 3, 7, 3, 0, 1991, 1992, 3, 41, 20, 0, 1992, 1993, 3, 41, 20, 0, 1993, 1994, 3, 7, 3, 0, 1994, 1995, 3, 55, 27, 0, 1995, 114, 1, 0, 0, 0, 1996, 1997, 3, 7, 3, 0, 1997, 1998, 3, 43, 21, 0, 1998, 116, 1, 0, 0, 0, 1999, 2000, 3, 7, 3, 0, 2000, 2001, 3, 43, 21, 0, 2001, 2002, 3, 11, 5, 0, 2002, 118, 1, 0, 0, 0, 2003, 2004, 3, 7, 3, 0, 2004, 2005, 3, 43, 21, 0, 2005, 2006, 3, 15, 7, 0, 2006, 2007, 3, 33, 16, 0, 2007, 2008, 3, 43, 21, 0, 2008, 2009, 3, 23, 11, 0, 2009, 2010, 3, 45, 22, 0, 2010, 2011, 3, 23, 11, 0, 2011, 2012, 3, 49, 24, 0, 2012, 2013, 3, 15, 7, 0, 2013, 120, 1, 0, 0, 0, 2014, 2015, 3, 7, 3, 0, 2015, 2016, 3, 43, 21, 0, 2016, 2017, 3, 43, 21, 0, 2017, 2018, 3, 15, 7, 0, 2018, 2019, 3, 41, 20, 0, 2019, 2020, 3, 45, 22, 0, 2020, 2021, 3, 23, 11, 0, 2021, 2022, 3, 35, 17, 0, 2022, 2023, 3, 33, 16, 0, 2023, 122, 1, 0, 0, 0, 2024, 2025, 3, 7, 3, 0, 2025, 2026, 3, 43, 21, 0, 2026, 2027, 3, 43, 21, 0, 2027, 2028, 3, 23, 11, 0, 2028, 2029, 3, 19, 9, 0, 2029, 2030, 3, 33, 16, 0, 2030, 2031, 3, 31, 15, 0, 2031, 2032, 3, 15, 7, 0, 2032, 2033, 3, 33, 16, 0, 2033, 2034, 3, 45, 22, 0, 2034, 124, 1, 0, 0, 0, 2035, 2036, 3, 7, 3, 0, 2036, 2037, 3, 43, 21, 0, 2037, 2038, 3, 55, 27, 0, 2038, 2039, 3, 31, 15, 0, 2039, 2040, 3, 31, 15, 0, 2040, 2041, 3, 15, 7, 0, 2041, 2042, 3, 45, 22, 0, 2042, 2043, 3, 41, 20, 0, 2043, 2044, 3, 23, 11, 0, 2044, 2045, 3, 11, 5, 0, 2045, 126, 1, 0, 0, 0, 2046, 2047, 3, 7, 3, 0, 2047, 2048, 3, 45, 22, 0, 2048, 128, 1, 0, 0, 0, 2049, 2050, 3, 7, 3, 0, 2050, 2051, 3, 45, 22, 0, 2051, 2052, 3, 35, 17, 0, 2052, 2053, 3, 31, 15, 0, 2053, 2054, 3, 23, 11, 0, 2054, 2055, 3, 11, 5, 0, 2055, 130, 1, 0, 0, 0, 2056, 2057, 3, 7, 3, 0, 2057, 2058, 3, 45, 22, 0, 2058, 2059, 3, 45, 22, 0, 2059, 2060, 3, 41, 20, 0, 2060, 2061, 3, 23, 11, 0, 2061, 2062, 3, 9, 4, 0, 2062, 2063, 3, 47, 23, 0, 2063, 2064, 3, 45, 22, 0, 2064, 2065, 3, 15, 7, 0, 2065, 132, 1, 0, 0, 0, 2066, 2067, 3, 7, 3, 0, 2067, 2068, 3, 45, 22, 0, 2068, 2069, 3, 45, 22, 0, 2069, 2070, 3, 41, 20, 0, 2070, 2071, 3, 23, 11, 0, 2071, 2072, 3, 9, 4, 0, 2072, 2073, 3, 47, 23, 0, 2073, 2074, 3, 45, 22, 0, 2074, 2075, 3, 15, 7, 0, 2075, 2076, 3, 43, 21, 0, 2076, 134, 1, 0, 0, 0, 2077, 2078, 3, 7, 3, 0, 2078, 2079, 3, 47, 23, 0, 2079, 2080, 3, 45, 22, 0, 2080, 2081, 3, 21, 10, 0, 2081, 2082, 3, 35, 17, 0, 2082, 2083, 3, 41, 20, 0, 2083, 2084, 3, 23, 11, 0, 2084, 2085, 3, 57, 28, 0, 2085, 2086, 3, 7, 3, 0, 2086, 2087, 3, 45, 22, 0, 2087, 2088, 3, 23, 11, 0, 2088, 2089, 3, 35, 17, 0, 2089, 2090, 3, 33, 16, 0, 2090, 136, 1, 0, 0, 0, 2091, 2092, 3, 7, 3, 0, 2092, 2093, 3, 49, 24, 0, 2093, 2094, 3, 19, 9, 0, 2094, 138, 1, 0, 0, 0, 2095, 2096, 3, 9, 4, 0, 2096, 2097, 3, 7, 3, 0, 2097, 2098, 3, 11, 5, 0, 2098, 2099, 3, 27, 13, 0, 2099, 2100, 3, 51, 25, 0, 2100, 2101, 3, 7, 3, 0, 2101, 2102, 3, 41, 20, 0, 2102, 2103, 3, 13, 6, 0, 2103, 140, 1, 0, 0, 0, 2104, 2105, 3, 9, 4, 0, 2105, 2106, 3, 15, 7, 0, 2106, 2107, 3, 17, 8, 0, 2107, 2108, 3, 35, 17, 0, 2108, 2109, 3, 41, 20, 0, 2109, 2110, 3, 15, 7, 0, 2110, 142, 1, 0, 0, 0, 2111, 2112, 3, 9, 4, 0, 2112, 2113, 3, 15, 7, 0, 2113, 2114, 3, 19, 9, 0, 2114, 2115, 3, 23, 11, 0, 2115, 2116, 3, 33, 16, 0, 2116, 144, 1, 0, 0, 0, 2117, 2118, 3, 9, 4, 0, 2118, 2119, 3, 15, 7, 0, 2119, 2120, 3, 41, 20, 0, 2120, 2121, 3, 33, 16, 0, 2121, 2122, 3, 35, 17, 0, 2122, 2123, 3, 47, 23, 0, 2123, 2124, 3, 29, 14, 0, 2124, 2125, 3, 29, 14, 0, 2125, 2126, 3, 23, 11, 0, 2126, 146, 1, 0, 0, 0, 2127, 2128, 3, 9, 4, 0, 2128, 2129, 3, 15, 7, 0, 2129, 2130, 3, 45, 22, 0, 2130, 2131, 3, 51, 25, 0, 2131, 2132, 3, 15, 7, 0, 2132, 2133, 3, 15, 7, 0, 2133, 2134, 3, 33, 16, 0, 2134, 148, 1, 0, 0, 0, 2135, 2136, 3, 9, 4, 0, 2136, 2137, 3, 23, 11, 0, 2137, 2138, 3, 19, 9, 0, 2138, 2139, 3, 23, 11, 0, 2139, 2140, 3, 33, 16, 0, 2140, 2141, 3, 45, 22, 0, 2141, 150, 1, 0, 0, 0, 2142, 2143, 3, 9, 4, 0, 2143, 2144, 3, 23, 11, 0, 2144, 2145, 3, 33, 16, 0, 2145, 2146, 3, 7, 3, 0, 2146, 2147, 3, 41, 20, 0, 2147, 2148, 3, 55, 27, 0, 2148, 152, 1, 0, 0, 0, 2149, 2150, 3, 9, 4, 0, 2150, 2151, 3, 23, 11, 0, 2151, 2152, 3, 45, 22, 0, 2152, 154, 1, 0, 0, 0, 2153, 2154, 3, 9, 4, 0, 2154, 2155, 3, 23, 11, 0, 2155, 2156, 3, 45, 22, 0, 2156, 2157, 5, 95, 0, 0, 2157, 2158, 3, 29, 14, 0, 2158, 2159, 3, 15, 7, 0, 2159, 2160, 3, 33, 16, 0, 2160, 2161, 3, 19, 9, 0, 2161, 2162, 3, 45, 22, 0, 2162, 2163, 3, 21, 10, 0, 2163, 156, 1, 0, 0, 0, 2164, 2165, 3, 9, 4, 0, 2165, 2166, 3, 23, 11, 0, 2166, 2167, 3, 45, 22, 0, 2167, 2168, 3, 49, 24, 0, 2168, 2169, 3, 7, 3, 0, 2169, 2170, 3, 41, 20, 0, 2170, 158, 1, 0, 0, 0, 2171, 2172, 3, 9, 4, 0, 2172, 2173, 3, 29, 14, 0, 2173, 2174, 3, 35, 17, 0, 2174, 2175, 3, 9, 4, 0, 2175, 160, 1, 0, 0, 0, 2176, 2177, 3, 9, 4, 0, 2177, 2178, 3, 35, 17, 0, 2178, 2179, 3, 35, 17, 0, 2179, 2180, 3, 29, 14, 0, 2180, 2181, 3, 15, 7, 0, 2181, 2182, 3, 7, 3, 0, 2182, 2183, 3, 33, 16, 0, 2183, 162, 1, 0, 0, 0, 2184, 2185, 3, 9, 4, 0, 2185, 2186, 3, 35, 17, 0, 2186, 2187, 3, 45, 22, 0, 2187, 2188, 3, 21, 10, 0, 2188, 164, 1, 0, 0, 0, 2189, 2190, 3, 9, 4, 0, 2190, 2191, 3, 41, 20, 0, 2191, 2192, 3, 15, 7, 0, 2192, 2193, 3, 7, 3, 0, 2193, 2194, 3, 13, 6, 0, 2194, 2195, 3, 45, 22, 0, 2195, 2196, 3, 21, 10, 0, 2196, 166, 1, 0, 0, 0, 2197, 2198, 3, 9, 4, 0, 2198, 2199, 3, 47, 23, 0, 2199, 2200, 3, 17, 8, 0, 2200, 2201, 3, 17, 8, 0, 2201, 2202, 3, 15, 7, 0, 2202, 2203, 3, 41, 20, 0, 2203, 2204, 3, 43, 21, 0, 2204, 168, 1, 0, 0, 0, 2205, 2206, 3, 9, 4, 0, 2206, 2207, 3, 55, 27, 0, 2207, 170, 1, 0, 0, 0, 2208, 2209, 3, 11, 5, 0, 2209, 172, 1, 0, 0, 0, 2210, 2211, 3, 11, 5, 0, 2211, 2212, 3, 7, 3, 0, 2212, 2213, 3, 11, 5, 0, 2213, 2214, 3, 21, 10, 0, 2214, 2215, 3, 15, 7, 0, 2215, 174, 1, 0, 0, 0, 2216, 2217, 3, 11, 5, 0, 2217, 2218, 3, 7, 3, 0, 2218, 2219, 3, 29, 14, 0, 2219, 2220, 3, 29, 14, 0, 2220, 176, 1, 0, 0, 0, 2221, 2222, 3, 11, 5, 0, 2222, 2223, 3, 7, 3, 0, 2223, 2224, 3, 29, 14, 0, 2224, 2225, 3, 29, 14, 0, 2225, 2226, 3, 15, 7, 0, 2226, 2227, 3, 13, 6, 0, 2227, 178, 1, 0, 0, 0, 2228, 2229, 3, 11, 5, 0, 2229, 2230, 3, 7, 3, 0, 2230, 2231, 3, 41, 20, 0, 2231, 2232, 3, 13, 6, 0, 2232, 2233, 3, 23, 11, 0, 2233, 2234, 3, 33, 16, 0, 2234, 2235, 3, 7, 3, 0, 2235, 2236, 3, 29, 14, 0, 2236, 2237, 3, 23, 11, 0, 2237, 2238, 3, 45, 22, 0, 2238, 2239, 3, 55, 27, 0, 2239, 180, 1, 0, 0, 0, 2240, 2241, 3, 11, 5, 0, 2241, 2242, 3, 7, 3, 0, 2242, 2243, 3, 43, 21, 0, 2243, 2244, 3, 11, 5, 0, 2244, 2245, 3, 7, 3, 0, 2245, 2246, 3, 13, 6, 0, 2246, 2247, 3, 15, 7, 0, 2247, 182, 1, 0, 0, 0, 2248, 2249, 3, 11, 5, 0, 2249, 2250, 3, 7, 3, 0, 2250, 2251, 3, 43, 21, 0, 2251, 2252, 3, 11, 5, 0, 2252, 2253, 3, 7, 3, 0, 2253, 2254, 3, 13, 6, 0, 2254, 2255, 3, 15, 7, 0, 2255, 2256, 3, 13, 6, 0, 2256, 184, 1, 0, 0, 0, 2257, 2258, 3, 11, 5, 0, 2258, 2259, 3, 7, 3, 0, 2259, 2260, 3, 43, 21, 0, 2260, 2261, 3, 15, 7, 0, 2261, 186, 1, 0, 0, 0, 2262, 2263, 3, 11, 5, 0, 2263, 2264, 3, 7, 3, 0, 2264, 2265, 3, 43, 21, 0, 2265, 2266, 3, 45, 22, 0, 2266, 188, 1, 0, 0, 0, 2267, 2268, 3, 11, 5, 0, 2268, 2269, 3, 7, 3, 0, 2269, 2270, 3, 45, 22, 0, 2270, 2271, 3, 7, 3, 0, 2271, 2272, 3, 29, 14, 0, 2272, 2273, 3, 35, 17, 0, 2273, 2274, 3, 19, 9, 0, 2274, 190, 1, 0, 0, 0, 2275, 2276, 3, 11, 5, 0, 2276, 2277, 3, 7, 3, 0, 2277, 2278, 3, 45, 22, 0, 2278, 2279, 3, 7, 3, 0, 2279, 2280, 3, 29, 14, 0, 2280, 2281, 3, 35, 17, 0, 2281, 2282, 3, 19, 9, 0, 2282, 2283, 5, 95, 0, 0, 2283, 2284, 3, 33, 16, 0, 2284, 2285, 3, 7, 3, 0, 2285, 2286, 3, 31, 15, 0, 2286, 2287, 3, 15, 7, 0, 2287, 192, 1, 0, 0, 0, 2288, 2289, 3, 11, 5, 0, 2289, 2290, 3, 15, 7, 0, 2290, 2291, 3, 23, 11, 0, 2291, 2292, 3, 29, 14, 0, 2292, 194, 1, 0, 0, 0, 2293, 2294, 3, 11, 5, 0, 2294, 2295, 3, 15, 7, 0, 2295, 2296, 3, 23, 11, 0, 2296, 2297, 3, 29, 14, 0, 2297, 2298, 3, 23, 11, 0, 2298, 2299, 3, 33, 16, 0, 2299, 2300, 3, 19, 9, 0, 2300, 196, 1, 0, 0, 0, 2301, 2302, 3, 11, 5, 0, 2302, 2303, 3, 21, 10, 0, 2303, 2304, 3, 7, 3, 0, 2304, 2305, 3, 23, 11, 0, 2305, 2306, 3, 33, 16, 0, 2306, 198, 1, 0, 0, 0, 2307, 2308, 3, 11, 5, 0, 2308, 2309, 3, 21, 10, 0, 2309, 2310, 3, 7, 3, 0, 2310, 2311, 3, 41, 20, 0, 2311, 200, 1, 0, 0, 0, 2312, 2313, 3, 11, 5, 0, 2313, 2314, 3, 21, 10, 0, 2314, 2315, 3, 7, 3, 0, 2315, 2316, 3, 41, 20, 0, 2316, 2317, 5, 95, 0, 0, 2317, 2318, 3, 29, 14, 0, 2318, 2319, 3, 15, 7, 0, 2319, 2320, 3, 33, 16, 0, 2320, 2321, 3, 19, 9, 0, 2321, 2322, 3, 45, 22, 0, 2322, 2323, 3, 21, 10, 0, 2323, 202, 1, 0, 0, 0, 2324, 2325, 3, 11, 5, 0, 2325, 2326, 3, 21, 10, 0, 2326, 2327, 3, 7, 3, 0, 2327, 2328, 3, 41, 20, 0, 2328, 2329, 3, 7, 3, 0, 2329, 2330, 3, 11, 5, 0, 2330, 2331, 3, 45, 22, 0, 2331, 2332, 3, 15, 7, 0, 2332, 2333, 3, 41, 20, 0, 2333, 204, 1, 0, 0, 0, 2334, 2335, 3, 11, 5, 0, 2335, 2336, 3, 21, 10, 0, 2336, 2337, 3, 7, 3, 0, 2337, 2338, 3, 41, 20, 0, 2338, 2339, 3, 7, 3, 0, 2339, 2340, 3, 11, 5, 0, 2340, 2341, 3, 45, 22, 0, 2341, 2342, 3, 15, 7, 0, 2342, 2343, 3, 41, 20, 0, 2343, 2344, 5, 95, 0, 0, 2344, 2345, 3, 29, 14, 0, 2345, 2346, 3, 15, 7, 0, 2346, 2347, 3, 33, 16, 0, 2347, 2348, 3, 19, 9, 0, 2348, 2349, 3, 45, 22, 0, 2349, 2350, 3, 21, 10, 0, 2350, 206, 1, 0, 0, 0, 2351, 2352, 3, 11, 5, 0, 2352, 2353, 3, 21, 10, 0, 2353, 2354, 3, 7, 3, 0, 2354, 2355, 3, 41, 20, 0, 2355, 2356, 3, 7, 3, 0, 2356, 2357, 3, 11, 5, 0, 2357, 2358, 3, 45, 22, 0, 2358, 2359, 3, 15, 7, 0, 2359, 2360, 3, 41, 20, 0, 2360, 2361, 5, 95, 0, 0, 2361, 2362, 3, 43, 21, 0, 2362, 2363, 3, 15, 7, 0, 2363, 2364, 3, 45, 22, 0, 2364, 2365, 5, 95, 0, 0, 2365, 2366, 3, 11, 5, 0, 2366, 2367, 3, 7, 3, 0, 2367, 2368, 3, 45, 22, 0, 2368, 2369, 3, 7, 3, 0, 2369, 2370, 3, 29, 14, 0, 2370, 2371, 3, 35, 17, 0, 2371, 2372, 3, 19, 9, 0, 2372, 208, 1, 0, 0, 0, 2373, 2374, 3, 11, 5, 0, 2374, 2375, 3, 21, 10, 0, 2375, 2376, 3, 7, 3, 0, 2376, 2377, 3, 41, 20, 0, 2377, 2378, 3, 7, 3, 0, 2378, 2379, 3, 11, 5, 0, 2379, 2380, 3, 45, 22, 0, 2380, 2381, 3, 15, 7, 0, 2381, 2382, 3, 41, 20, 0, 2382, 2383, 5, 95, 0, 0, 2383, 2384, 3, 43, 21, 0, 2384, 2385, 3, 15, 7, 0, 2385, 2386, 3, 45, 22, 0, 2386, 2387, 5, 95, 0, 0, 2387, 2388, 3, 33, 16, 0, 2388, 2389, 3, 7, 3, 0, 2389, 2390, 3, 31, 15, 0, 2390, 2391, 3, 15, 7, 0, 2391, 210, 1, 0, 0, 0, 2392, 2393, 3, 11, 5, 0, 2393, 2394, 3, 21, 10, 0, 2394, 2395, 3, 7, 3, 0, 2395, 2396, 3, 41, 20, 0, 2396, 2397, 3, 7, 3, 0, 2397, 2398, 3, 11, 5, 0, 2398, 2399, 3, 45, 22, 0, 2399, 2400, 3, 15, 7, 0, 2400, 2401, 3, 41, 20, 0, 2401, 2402, 5, 95, 0, 0, 2402, 2403, 3, 43, 21, 0, 2403, 2404, 3, 15, 7, 0, 2404, 2405, 3, 45, 22, 0, 2405, 2406, 5, 95, 0, 0, 2406, 2407, 3, 43, 21, 0, 2407, 2408, 3, 11, 5, 0, 2408, 2409, 3, 21, 10, 0, 2409, 2410, 3, 15, 7, 0, 2410, 2411, 3, 31, 15, 0, 2411, 2412, 3, 7, 3, 0, 2412, 212, 1, 0, 0, 0, 2413, 2414, 3, 11, 5, 0, 2414, 2415, 3, 21, 10, 0, 2415, 2416, 3, 7, 3, 0, 2416, 2417, 3, 41, 20, 0, 2417, 2418, 3, 7, 3, 0, 2418, 2419, 3, 11, 5, 0, 2419, 2420, 3, 45, 22, 0, 2420, 2421, 3, 15, 7, 0, 2421, 2422, 3, 41, 20, 0, 2422, 2423, 3, 23, 11, 0, 2423, 2424, 3, 43, 21, 0, 2424, 2425, 3, 45, 22, 0, 2425, 2426, 3, 23, 11, 0, 2426, 2427, 3, 11, 5, 0, 2427, 2428, 3, 43, 21, 0, 2428, 214, 1, 0, 0, 0, 2429, 2430, 3, 11, 5, 0, 2430, 2431, 3, 21, 10, 0, 2431, 2432, 3, 7, 3, 0, 2432, 2433, 3, 41, 20, 0, 2433, 2434, 3, 7, 3, 0, 2434, 2435, 3, 11, 5, 0, 2435, 2436, 3, 45, 22, 0, 2436, 2437, 3, 15, 7, 0, 2437, 2438, 3, 41, 20, 0, 2438, 2439, 3, 43, 21, 0, 2439, 216, 1, 0, 0, 0, 2440, 2441, 3, 11, 5, 0, 2441, 2442, 3, 21, 10, 0, 2442, 2443, 3, 15, 7, 0, 2443, 2444, 3, 11, 5, 0, 2444, 2445, 3, 27, 13, 0, 2445, 218, 1, 0, 0, 0, 2446, 2447, 3, 11, 5, 0, 2447, 2448, 3, 21, 10, 0, 2448, 2449, 3, 15, 7, 0, 2449, 2450, 3, 11, 5, 0, 2450, 2451, 3, 27, 13, 0, 2451, 2452, 3, 15, 7, 0, 2452, 2453, 3, 13, 6, 0, 2453, 220, 1, 0, 0, 0, 2454, 2455, 3, 11, 5, 0, 2455, 2456, 3, 21, 10, 0, 2456, 2457, 3, 15, 7, 0, 2457, 2458, 3, 11, 5, 0, 2458, 2459, 3, 27, 13, 0, 2459, 2460, 3, 37, 18, 0, 2460, 2461, 3, 35, 17, 0, 2461, 2462, 3, 23, 11, 0, 2462, 2463, 3, 33, 16, 0, 2463, 2464, 3, 45, 22, 0, 2464, 222, 1, 0, 0, 0, 2465, 2466, 3, 11, 5, 0, 2466, 2467, 3, 29, 14, 0, 2467, 2468, 3, 7, 3, 0, 2468, 2469, 3, 43, 21, 0, 2469, 2470, 3, 43, 21, 0, 2470, 224, 1, 0, 0, 0, 2471, 2472, 3, 11, 5, 0, 2472, 2473, 3, 29, 14, 0, 2473, 2474, 3, 7, 3, 0, 2474, 2475, 3, 43, 21, 0, 2475, 2476, 3, 43, 21, 0, 2476, 2477, 5, 95, 0, 0, 2477, 2478, 3, 35, 17, 0, 2478, 2479, 3, 41, 20, 0, 2479, 2480, 3, 23, 11, 0, 2480, 2481, 3, 19, 9, 0, 2481, 2482, 3, 23, 11, 0, 2482, 2483, 3, 33, 16, 0, 2483, 226, 1, 0, 0, 0, 2484, 2485, 3, 11, 5, 0, 2485, 2486, 3, 29, 14, 0, 2486, 2487, 3, 35, 17, 0, 2487, 2488, 3, 9, 4, 0, 2488, 228, 1, 0, 0, 0, 2489, 2490, 3, 11, 5, 0, 2490, 2491, 3, 29, 14, 0, 2491, 2492, 3, 35, 17, 0, 2492, 2493, 3, 43, 21, 0, 2493, 2494, 3, 15, 7, 0, 2494, 230, 1, 0, 0, 0, 2495, 2496, 3, 11, 5, 0, 2496, 2497, 3, 29, 14, 0, 2497, 2498, 3, 47, 23, 0, 2498, 2499, 3, 43, 21, 0, 2499, 2500, 3, 45, 22, 0, 2500, 2501, 3, 15, 7, 0, 2501, 2502, 3, 41, 20, 0, 2502, 232, 1, 0, 0, 0, 2503, 2504, 3, 11, 5, 0, 2504, 2505, 3, 35, 17, 0, 2505, 2506, 3, 7, 3, 0, 2506, 2507, 3, 29, 14, 0, 2507, 2508, 3, 15, 7, 0, 2508, 2509, 3, 43, 21, 0, 2509, 2510, 3, 11, 5, 0, 2510, 2511, 3, 15, 7, 0, 2511, 234, 1, 0, 0, 0, 2512, 2513, 3, 11, 5, 0, 2513, 2514, 3, 35, 17, 0, 2514, 2515, 3, 9, 4, 0, 2515, 2516, 3, 35, 17, 0, 2516, 2517, 3, 29, 14, 0, 2517, 236, 1, 0, 0, 0, 2518, 2519, 3, 11, 5, 0, 2519, 2520, 3, 35, 17, 0, 2520, 2521, 3, 29, 14, 0, 2521, 2522, 3, 29, 14, 0, 2522, 2523, 3, 7, 3, 0, 2523, 2524, 3, 45, 22, 0, 2524, 2525, 3, 15, 7, 0, 2525, 238, 1, 0, 0, 0, 2526, 2527, 3, 11, 5, 0, 2527, 2528, 3, 35, 17, 0, 2528, 2529, 3, 29, 14, 0, 2529, 2530, 3, 29, 14, 0, 2530, 2531, 3, 7, 3, 0, 2531, 2532, 3, 45, 22, 0, 2532, 2533, 3, 23, 11, 0, 2533, 2534, 3, 35, 17, 0, 2534, 2535, 3, 33, 16, 0, 2535, 240, 1, 0, 0, 0, 2536, 2537, 3, 11, 5, 0, 2537, 2538, 3, 35, 17, 0, 2538, 2539, 3, 29, 14, 0, 2539, 2540, 3, 29, 14, 0, 2540, 2541, 3, 7, 3, 0, 2541, 2542, 3, 45, 22, 0, 2542, 2543, 3, 23, 11, 0, 2543, 2544, 3, 35, 17, 0, 2544, 2545, 3, 33, 16, 0, 2545, 2546, 5, 95, 0, 0, 2546, 2547, 3, 11, 5, 0, 2547, 2548, 3, 7, 3, 0, 2548, 2549, 3, 45, 22, 0, 2549, 2550, 3, 7, 3, 0, 2550, 2551, 3, 29, 14, 0, 2551, 2552, 3, 35, 17, 0, 2552, 2553, 3, 19, 9, 0, 2553, 242, 1, 0, 0, 0, 2554, 2555, 3, 11, 5, 0, 2555, 2556, 3, 35, 17, 0, 2556, 2557, 3, 29, 14, 0, 2557, 2558, 3, 29, 14, 0, 2558, 2559, 3, 7, 3, 0, 2559, 2560, 3, 45, 22, 0, 2560, 2561, 3, 23, 11, 0, 2561, 2562, 3, 35, 17, 0, 2562, 2563, 3, 33, 16, 0, 2563, 2564, 5, 95, 0, 0, 2564, 2565, 3, 33, 16, 0, 2565, 2566, 3, 7, 3, 0, 2566, 2567, 3, 31, 15, 0, 2567, 2568, 3, 15, 7, 0, 2568, 244, 1, 0, 0, 0, 2569, 2570, 3, 11, 5, 0, 2570, 2571, 3, 35, 17, 0, 2571, 2572, 3, 29, 14, 0, 2572, 2573, 3, 29, 14, 0, 2573, 2574, 3, 7, 3, 0, 2574, 2575, 3, 45, 22, 0, 2575, 2576, 3, 23, 11, 0, 2576, 2577, 3, 35, 17, 0, 2577, 2578, 3, 33, 16, 0, 2578, 2579, 5, 95, 0, 0, 2579, 2580, 3, 43, 21, 0, 2580, 2581, 3, 11, 5, 0, 2581, 2582, 3, 21, 10, 0, 2582, 2583, 3, 15, 7, 0, 2583, 2584, 3, 31, 15, 0, 2584, 2585, 3, 7, 3, 0, 2585, 246, 1, 0, 0, 0, 2586, 2587, 3, 11, 5, 0, 2587, 2588, 3, 35, 17, 0, 2588, 2589, 3, 29, 14, 0, 2589, 2590, 3, 29, 14, 0, 2590, 2591, 3, 15, 7, 0, 2591, 2592, 3, 11, 5, 0, 2592, 2593, 3, 45, 22, 0, 2593, 248, 1, 0, 0, 0, 2594, 2595, 3, 11, 5, 0, 2595, 2596, 3, 35, 17, 0, 2596, 2597, 3, 29, 14, 0, 2597, 2598, 3, 47, 23, 0, 2598, 2599, 3, 31, 15, 0, 2599, 2600, 3, 33, 16, 0, 2600, 250, 1, 0, 0, 0, 2601, 2602, 3, 11, 5, 0, 2602, 2603, 3, 35, 17, 0, 2603, 2604, 3, 29, 14, 0, 2604, 2605, 3, 47, 23, 0, 2605, 2606, 3, 31, 15, 0, 2606, 2607, 3, 33, 16, 0, 2607, 2608, 5, 95, 0, 0, 2608, 2609, 3, 33, 16, 0, 2609, 2610, 3, 7, 3, 0, 2610, 2611, 3, 31, 15, 0, 2611, 2612, 3, 15, 7, 0, 2612, 252, 1, 0, 0, 0, 2613, 2614, 3, 11, 5, 0, 2614, 2615, 3, 35, 17, 0, 2615, 2616, 3, 31, 15, 0, 2616, 2617, 3, 31, 15, 0, 2617, 2618, 3, 7, 3, 0, 2618, 2619, 3, 33, 16, 0, 2619, 2620, 3, 13, 6, 0, 2620, 2621, 5, 95, 0, 0, 2621, 2622, 3, 17, 8, 0, 2622, 2623, 3, 47, 23, 0, 2623, 2624, 3, 33, 16, 0, 2624, 2625, 3, 11, 5, 0, 2625, 2626, 3, 45, 22, 0, 2626, 2627, 3, 23, 11, 0, 2627, 2628, 3, 35, 17, 0, 2628, 2629, 3, 33, 16, 0, 2629, 254, 1, 0, 0, 0, 2630, 2631, 3, 11, 5, 0, 2631, 2632, 3, 35, 17, 0, 2632, 2633, 3, 31, 15, 0, 2633, 2634, 3, 31, 15, 0, 2634, 2635, 3, 7, 3, 0, 2635, 2636, 3, 33, 16, 0, 2636, 2637, 3, 13, 6, 0, 2637, 2638, 5, 95, 0, 0, 2638, 2639, 3, 17, 8, 0, 2639, 2640, 3, 47, 23, 0, 2640, 2641, 3, 33, 16, 0, 2641, 2642, 3, 11, 5, 0, 2642, 2643, 3, 45, 22, 0, 2643, 2644, 3, 23, 11, 0, 2644, 2645, 3, 35, 17, 0, 2645, 2646, 3, 33, 16, 0, 2646, 2647, 5, 95, 0, 0, 2647, 2648, 3, 11, 5, 0, 2648, 2649, 3, 35, 17, 0, 2649, 2650, 3, 13, 6, 0, 2650, 2651, 3, 15, 7, 0, 2651, 256, 1, 0, 0, 0, 2652, 2653, 3, 11, 5, 0, 2653, 2654, 3, 35, 17, 0, 2654, 2655, 3, 31, 15, 0, 2655, 2656, 3, 31, 15, 0, 2656, 2657, 3, 15, 7, 0, 2657, 2658, 3, 33, 16, 0, 2658, 2659, 3, 45, 22, 0, 2659, 258, 1, 0, 0, 0, 2660, 2661, 3, 11, 5, 0, 2661, 2662, 3, 35, 17, 0, 2662, 2663, 3, 31, 15, 0, 2663, 2664, 3, 31, 15, 0, 2664, 2665, 3, 23, 11, 0, 2665, 2666, 3, 45, 22, 0, 2666, 260, 1, 0, 0, 0, 2667, 2668, 3, 11, 5, 0, 2668, 2669, 3, 35, 17, 0, 2669, 2670, 3, 31, 15, 0, 2670, 2671, 3, 31, 15, 0, 2671, 2672, 3, 23, 11, 0, 2672, 2673, 3, 45, 22, 0, 2673, 2674, 3, 45, 22, 0, 2674, 2675, 3, 15, 7, 0, 2675, 2676, 3, 13, 6, 0, 2676, 262, 1, 0, 0, 0, 2677, 2678, 3, 11, 5, 0, 2678, 2679, 3, 35, 17, 0, 2679, 2680, 3, 31, 15, 0, 2680, 2681, 3, 37, 18, 0, 2681, 2682, 3, 29, 14, 0, 2682, 2683, 3, 15, 7, 0, 2683, 2684, 3, 45, 22, 0, 2684, 2685, 3, 23, 11, 0, 2685, 2686, 3, 35, 17, 0, 2686, 2687, 3, 33, 16, 0, 2687, 264, 1, 0, 0, 0, 2688, 2689, 3, 11, 5, 0, 2689, 2690, 3, 35, 17, 0, 2690, 2691, 3, 33, 16, 0, 2691, 2692, 3, 13, 6, 0, 2692, 2693, 3, 23, 11, 0, 2693, 2694, 3, 45, 22, 0, 2694, 2695, 3, 23, 11, 0, 2695, 2696, 3, 35, 17, 0, 2696, 2697, 3, 33, 16, 0, 2697, 266, 1, 0, 0, 0, 2698, 2699, 3, 11, 5, 0, 2699, 2700, 3, 35, 17, 0, 2700, 2701, 3, 33, 16, 0, 2701, 2702, 3, 13, 6, 0, 2702, 2703, 3, 23, 11, 0, 2703, 2704, 3, 45, 22, 0, 2704, 2705, 3, 23, 11, 0, 2705, 2706, 3, 35, 17, 0, 2706, 2707, 3, 33, 16, 0, 2707, 2708, 5, 95, 0, 0, 2708, 2709, 3, 33, 16, 0, 2709, 2710, 3, 47, 23, 0, 2710, 2711, 3, 31, 15, 0, 2711, 2712, 3, 9, 4, 0, 2712, 2713, 3, 15, 7, 0, 2713, 2714, 3, 41, 20, 0, 2714, 268, 1, 0, 0, 0, 2715, 2716, 3, 11, 5, 0, 2716, 2717, 3, 35, 17, 0, 2717, 2718, 3, 33, 16, 0, 2718, 2719, 3, 17, 8, 0, 2719, 2720, 3, 23, 11, 0, 2720, 2721, 3, 19, 9, 0, 2721, 2722, 3, 47, 23, 0, 2722, 2723, 3, 41, 20, 0, 2723, 2724, 3, 7, 3, 0, 2724, 2725, 3, 45, 22, 0, 2725, 2726, 3, 23, 11, 0, 2726, 2727, 3, 35, 17, 0, 2727, 2728, 3, 33, 16, 0, 2728, 270, 1, 0, 0, 0, 2729, 2730, 3, 11, 5, 0, 2730, 2731, 3, 35, 17, 0, 2731, 2732, 3, 33, 16, 0, 2732, 2733, 3, 17, 8, 0, 2733, 2734, 3, 29, 14, 0, 2734, 2735, 3, 23, 11, 0, 2735, 2736, 3, 11, 5, 0, 2736, 2737, 3, 45, 22, 0, 2737, 272, 1, 0, 0, 0, 2738, 2739, 3, 11, 5, 0, 2739, 2740, 3, 35, 17, 0, 2740, 2741, 3, 33, 16, 0, 2741, 2742, 3, 33, 16, 0, 2742, 2743, 3, 15, 7, 0, 2743, 2744, 3, 11, 5, 0, 2744, 2745, 3, 45, 22, 0, 2745, 274, 1, 0, 0, 0, 2746, 2747, 3, 11, 5, 0, 2747, 2748, 3, 35, 17, 0, 2748, 2749, 3, 33, 16, 0, 2749, 2750, 3, 33, 16, 0, 2750, 2751, 3, 15, 7, 0, 2751, 2752, 3, 11, 5, 0, 2752, 2753, 3, 45, 22, 0, 2753, 2754, 3, 23, 11, 0, 2754, 2755, 3, 35, 17, 0, 2755, 2756, 3, 33, 16, 0, 2756, 276, 1, 0, 0, 0, 2757, 2758, 3, 11, 5, 0, 2758, 2759, 3, 35, 17, 0, 2759, 2760, 3, 33, 16, 0, 2760, 2761, 3, 33, 16, 0, 2761, 2762, 3, 15, 7, 0, 2762, 2763, 3, 11, 5, 0, 2763, 2764, 3, 45, 22, 0, 2764, 2765, 3, 23, 11, 0, 2765, 2766, 3, 35, 17, 0, 2766, 2767, 3, 33, 16, 0, 2767, 2768, 5, 95, 0, 0, 2768, 2769, 3, 33, 16, 0, 2769, 2770, 3, 7, 3, 0, 2770, 2771, 3, 31, 15, 0, 2771, 2772, 3, 15, 7, 0, 2772, 278, 1, 0, 0, 0, 2773, 2774, 3, 11, 5, 0, 2774, 2775, 3, 35, 17, 0, 2775, 2776, 3, 33, 16, 0, 2776, 2777, 3, 43, 21, 0, 2777, 2778, 3, 45, 22, 0, 2778, 2779, 3, 41, 20, 0, 2779, 2780, 3, 7, 3, 0, 2780, 2781, 3, 23, 11, 0, 2781, 2782, 3, 33, 16, 0, 2782, 2783, 3, 45, 22, 0, 2783, 280, 1, 0, 0, 0, 2784, 2785, 3, 11, 5, 0, 2785, 2786, 3, 35, 17, 0, 2786, 2787, 3, 33, 16, 0, 2787, 2788, 3, 43, 21, 0, 2788, 2789, 3, 45, 22, 0, 2789, 2790, 3, 41, 20, 0, 2790, 2791, 3, 7, 3, 0, 2791, 2792, 3, 23, 11, 0, 2792, 2793, 3, 33, 16, 0, 2793, 2794, 3, 45, 22, 0, 2794, 2795, 5, 95, 0, 0, 2795, 2796, 3, 11, 5, 0, 2796, 2797, 3, 7, 3, 0, 2797, 2798, 3, 45, 22, 0, 2798, 2799, 3, 7, 3, 0, 2799, 2800, 3, 29, 14, 0, 2800, 2801, 3, 35, 17, 0, 2801, 2802, 3, 19, 9, 0, 2802, 282, 1, 0, 0, 0, 2803, 2804, 3, 11, 5, 0, 2804, 2805, 3, 35, 17, 0, 2805, 2806, 3, 33, 16, 0, 2806, 2807, 3, 43, 21, 0, 2807, 2808, 3, 45, 22, 0, 2808, 2809, 3, 41, 20, 0, 2809, 2810, 3, 7, 3, 0, 2810, 2811, 3, 23, 11, 0, 2811, 2812, 3, 33, 16, 0, 2812, 2813, 3, 45, 22, 0, 2813, 2814, 5, 95, 0, 0, 2814, 2815, 3, 33, 16, 0, 2815, 2816, 3, 7, 3, 0, 2816, 2817, 3, 31, 15, 0, 2817, 2818, 3, 15, 7, 0, 2818, 284, 1, 0, 0, 0, 2819, 2820, 3, 11, 5, 0, 2820, 2821, 3, 35, 17, 0, 2821, 2822, 3, 33, 16, 0, 2822, 2823, 3, 43, 21, 0, 2823, 2824, 3, 45, 22, 0, 2824, 2825, 3, 41, 20, 0, 2825, 2826, 3, 7, 3, 0, 2826, 2827, 3, 23, 11, 0, 2827, 2828, 3, 33, 16, 0, 2828, 2829, 3, 45, 22, 0, 2829, 2830, 5, 95, 0, 0, 2830, 2831, 3, 43, 21, 0, 2831, 2832, 3, 11, 5, 0, 2832, 2833, 3, 21, 10, 0, 2833, 2834, 3, 15, 7, 0, 2834, 2835, 3, 31, 15, 0, 2835, 2836, 3, 7, 3, 0, 2836, 286, 1, 0, 0, 0, 2837, 2838, 3, 11, 5, 0, 2838, 2839, 3, 35, 17, 0, 2839, 2840, 3, 33, 16, 0, 2840, 2841, 3, 43, 21, 0, 2841, 2842, 3, 45, 22, 0, 2842, 2843, 3, 41, 20, 0, 2843, 2844, 3, 7, 3, 0, 2844, 2845, 3, 23, 11, 0, 2845, 2846, 3, 33, 16, 0, 2846, 2847, 3, 45, 22, 0, 2847, 2848, 3, 43, 21, 0, 2848, 288, 1, 0, 0, 0, 2849, 2850, 3, 11, 5, 0, 2850, 2851, 3, 35, 17, 0, 2851, 2852, 3, 33, 16, 0, 2852, 2853, 3, 43, 21, 0, 2853, 2854, 3, 45, 22, 0, 2854, 2855, 3, 41, 20, 0, 2855, 2856, 3, 47, 23, 0, 2856, 2857, 3, 11, 5, 0, 2857, 2858, 3, 45, 22, 0, 2858, 2859, 3, 35, 17, 0, 2859, 2860, 3, 41, 20, 0, 2860, 290, 1, 0, 0, 0, 2861, 2862, 3, 11, 5, 0, 2862, 2863, 3, 35, 17, 0, 2863, 2864, 3, 33, 16, 0, 2864, 2865, 3, 45, 22, 0, 2865, 2866, 3, 7, 3, 0, 2866, 2867, 3, 23, 11, 0, 2867, 2868, 3, 33, 16, 0, 2868, 2869, 3, 43, 21, 0, 2869, 292, 1, 0, 0, 0, 2870, 2871, 3, 11, 5, 0, 2871, 2872, 3, 35, 17, 0, 2872, 2873, 3, 33, 16, 0, 2873, 2874, 3, 45, 22, 0, 2874, 2875, 3, 23, 11, 0, 2875, 2876, 3, 33, 16, 0, 2876, 2877, 3, 47, 23, 0, 2877, 2878, 3, 15, 7, 0, 2878, 294, 1, 0, 0, 0, 2879, 2880, 3, 11, 5, 0, 2880, 2881, 3, 35, 17, 0, 2881, 2882, 3, 33, 16, 0, 2882, 2883, 3, 49, 24, 0, 2883, 2884, 3, 15, 7, 0, 2884, 2885, 3, 41, 20, 0, 2885, 2886, 3, 43, 21, 0, 2886, 2887, 3, 23, 11, 0, 2887, 2888, 3, 35, 17, 0, 2888, 2889, 3, 33, 16, 0, 2889, 296, 1, 0, 0, 0, 2890, 2891, 3, 11, 5, 0, 2891, 2892, 3, 35, 17, 0, 2892, 2893, 3, 33, 16, 0, 2893, 2894, 3, 49, 24, 0, 2894, 2895, 3, 15, 7, 0, 2895, 2896, 3, 41, 20, 0, 2896, 2897, 3, 45, 22, 0, 2897, 298, 1, 0, 0, 0, 2898, 2899, 3, 11, 5, 0, 2899, 2900, 3, 35, 17, 0, 2900, 2901, 3, 37, 18, 0, 2901, 2902, 3, 55, 27, 0, 2902, 300, 1, 0, 0, 0, 2903, 2904, 3, 11, 5, 0, 2904, 2905, 3, 35, 17, 0, 2905, 2906, 3, 41, 20, 0, 2906, 2907, 3, 41, 20, 0, 2907, 302, 1, 0, 0, 0, 2908, 2909, 3, 11, 5, 0, 2909, 2910, 3, 35, 17, 0, 2910, 2911, 3, 41, 20, 0, 2911, 2912, 3, 41, 20, 0, 2912, 2913, 3, 15, 7, 0, 2913, 2914, 3, 43, 21, 0, 2914, 2915, 3, 37, 18, 0, 2915, 2916, 3, 35, 17, 0, 2916, 2917, 3, 33, 16, 0, 2917, 2918, 3, 13, 6, 0, 2918, 2919, 3, 23, 11, 0, 2919, 2920, 3, 33, 16, 0, 2920, 2921, 3, 19, 9, 0, 2921, 304, 1, 0, 0, 0, 2922, 2923, 3, 11, 5, 0, 2923, 2924, 3, 35, 17, 0, 2924, 2925, 3, 43, 21, 0, 2925, 2926, 3, 45, 22, 0, 2926, 2927, 3, 43, 21, 0, 2927, 306, 1, 0, 0, 0, 2928, 2929, 3, 11, 5, 0, 2929, 2930, 3, 35, 17, 0, 2930, 2931, 3, 47, 23, 0, 2931, 2932, 3, 33, 16, 0, 2932, 2933, 3, 45, 22, 0, 2933, 308, 1, 0, 0, 0, 2934, 2935, 3, 11, 5, 0, 2935, 2936, 3, 35, 17, 0, 2936, 2937, 3, 49, 24, 0, 2937, 2938, 3, 7, 3, 0, 2938, 2939, 3, 41, 20, 0, 2939, 2940, 5, 95, 0, 0, 2940, 2941, 3, 37, 18, 0, 2941, 2942, 3, 35, 17, 0, 2942, 2943, 3, 37, 18, 0, 2943, 310, 1, 0, 0, 0, 2944, 2945, 3, 11, 5, 0, 2945, 2946, 3, 35, 17, 0, 2946, 2947, 3, 49, 24, 0, 2947, 2948, 3, 7, 3, 0, 2948, 2949, 3, 41, 20, 0, 2949, 2950, 5, 95, 0, 0, 2950, 2951, 3, 43, 21, 0, 2951, 2952, 3, 7, 3, 0, 2952, 2953, 3, 31, 15, 0, 2953, 2954, 3, 37, 18, 0, 2954, 312, 1, 0, 0, 0, 2955, 2956, 3, 11, 5, 0, 2956, 2957, 3, 41, 20, 0, 2957, 2958, 3, 15, 7, 0, 2958, 2959, 3, 7, 3, 0, 2959, 2960, 3, 45, 22, 0, 2960, 2961, 3, 15, 7, 0, 2961, 314, 1, 0, 0, 0, 2962, 2963, 3, 11, 5, 0, 2963, 2964, 3, 41, 20, 0, 2964, 2965, 3, 15, 7, 0, 2965, 2966, 3, 7, 3, 0, 2966, 2967, 3, 45, 22, 0, 2967, 2968, 3, 15, 7, 0, 2968, 2969, 3, 13, 6, 0, 2969, 2970, 3, 9, 4, 0, 2970, 316, 1, 0, 0, 0, 2971, 2972, 3, 11, 5, 0, 2972, 2973, 3, 41, 20, 0, 2973, 2974, 3, 15, 7, 0, 2974, 2975, 3, 7, 3, 0, 2975, 2976, 3, 45, 22, 0, 2976, 2977, 3, 15, 7, 0, 2977, 2978, 3, 47, 23, 0, 2978, 2979, 3, 43, 21, 0, 2979, 2980, 3, 15, 7, 0, 2980, 2981, 3, 41, 20, 0, 2981, 318, 1, 0, 0, 0, 2982, 2983, 3, 11, 5, 0, 2983, 2984, 3, 41, 20, 0, 2984, 2985, 3, 35, 17, 0, 2985, 2986, 3, 43, 21, 0, 2986, 2987, 3, 43, 21, 0, 2987, 320, 1, 0, 0, 0, 2988, 2989, 3, 11, 5, 0, 2989, 2990, 3, 43, 21, 0, 2990, 2991, 3, 49, 24, 0, 2991, 322, 1, 0, 0, 0, 2992, 2993, 3, 11, 5, 0, 2993, 2994, 3, 47, 23, 0, 2994, 2995, 3, 9, 4, 0, 2995, 2996, 3, 15, 7, 0, 2996, 324, 1, 0, 0, 0, 2997, 2998, 3, 11, 5, 0, 2998, 2999, 3, 47, 23, 0, 2999, 3000, 3, 31, 15, 0, 3000, 3001, 3, 15, 7, 0, 3001, 3002, 5, 95, 0, 0, 3002, 3003, 3, 13, 6, 0, 3003, 3004, 3, 23, 11, 0, 3004, 3005, 3, 43, 21, 0, 3005, 3006, 3, 45, 22, 0, 3006, 326, 1, 0, 0, 0, 3007, 3008, 3, 11, 5, 0, 3008, 3009, 3, 47, 23, 0, 3009, 3010, 3, 41, 20, 0, 3010, 3011, 3, 41, 20, 0, 3011, 3012, 3, 15, 7, 0, 3012, 3013, 3, 33, 16, 0, 3013, 3014, 3, 45, 22, 0, 3014, 328, 1, 0, 0, 0, 3015, 3016, 3, 11, 5, 0, 3016, 3017, 3, 47, 23, 0, 3017, 3018, 3, 41, 20, 0, 3018, 3019, 3, 41, 20, 0, 3019, 3020, 3, 15, 7, 0, 3020, 3021, 3, 33, 16, 0, 3021, 3022, 3, 45, 22, 0, 3022, 3023, 5, 95, 0, 0, 3023, 3024, 3, 13, 6, 0, 3024, 3025, 3, 7, 3, 0, 3025, 3026, 3, 45, 22, 0, 3026, 3027, 3, 15, 7, 0, 3027, 330, 1, 0, 0, 0, 3028, 3029, 3, 11, 5, 0, 3029, 3030, 3, 47, 23, 0, 3030, 3031, 3, 41, 20, 0, 3031, 3032, 3, 41, 20, 0, 3032, 3033, 3, 15, 7, 0, 3033, 3034, 3, 33, 16, 0, 3034, 3035, 3, 45, 22, 0, 3035, 3036, 5, 95, 0, 0, 3036, 3037, 3, 13, 6, 0, 3037, 3038, 3, 15, 7, 0, 3038, 3039, 3, 17, 8, 0, 3039, 3040, 3, 7, 3, 0, 3040, 3041, 3, 47, 23, 0, 3041, 3042, 3, 29, 14, 0, 3042, 3043, 3, 45, 22, 0, 3043, 3044, 5, 95, 0, 0, 3044, 3045, 3, 45, 22, 0, 3045, 3046, 3, 41, 20, 0, 3046, 3047, 3, 7, 3, 0, 3047, 3048, 3, 33, 16, 0, 3048, 3049, 3, 43, 21, 0, 3049, 3050, 3, 17, 8, 0, 3050, 3051, 3, 35, 17, 0, 3051, 3052, 3, 41, 20, 0, 3052, 3053, 3, 31, 15, 0, 3053, 3054, 5, 95, 0, 0, 3054, 3055, 3, 19, 9, 0, 3055, 3056, 3, 41, 20, 0, 3056, 3057, 3, 35, 17, 0, 3057, 3058, 3, 47, 23, 0, 3058, 3059, 3, 37, 18, 0, 3059, 332, 1, 0, 0, 0, 3060, 3061, 3, 11, 5, 0, 3061, 3062, 3, 47, 23, 0, 3062, 3063, 3, 41, 20, 0, 3063, 3064, 3, 41, 20, 0, 3064, 3065, 3, 15, 7, 0, 3065, 3066, 3, 33, 16, 0, 3066, 3067, 3, 45, 22, 0, 3067, 3068, 5, 95, 0, 0, 3068, 3069, 3, 37, 18, 0, 3069, 3070, 3, 7, 3, 0, 3070, 3071, 3, 45, 22, 0, 3071, 3072, 3, 21, 10, 0, 3072, 334, 1, 0, 0, 0, 3073, 3074, 3, 11, 5, 0, 3074, 3075, 3, 47, 23, 0, 3075, 3076, 3, 41, 20, 0, 3076, 3077, 3, 41, 20, 0, 3077, 3078, 3, 15, 7, 0, 3078, 3079, 3, 33, 16, 0, 3079, 3080, 3, 45, 22, 0, 3080, 3081, 5, 95, 0, 0, 3081, 3082, 3, 41, 20, 0, 3082, 3083, 3, 35, 17, 0, 3083, 3084, 3, 29, 14, 0, 3084, 3085, 3, 15, 7, 0, 3085, 336, 1, 0, 0, 0, 3086, 3087, 3, 11, 5, 0, 3087, 3088, 3, 47, 23, 0, 3088, 3089, 3, 41, 20, 0, 3089, 3090, 3, 41, 20, 0, 3090, 3091, 3, 15, 7, 0, 3091, 3092, 3, 33, 16, 0, 3092, 3093, 3, 45, 22, 0, 3093, 3094, 5, 95, 0, 0, 3094, 3095, 3, 45, 22, 0, 3095, 3096, 3, 23, 11, 0, 3096, 3097, 3, 31, 15, 0, 3097, 3098, 3, 15, 7, 0, 3098, 338, 1, 0, 0, 0, 3099, 3100, 3, 11, 5, 0, 3100, 3101, 3, 47, 23, 0, 3101, 3102, 3, 41, 20, 0, 3102, 3103, 3, 41, 20, 0, 3103, 3104, 3, 15, 7, 0, 3104, 3105, 3, 33, 16, 0, 3105, 3106, 3, 45, 22, 0, 3106, 3107, 5, 95, 0, 0, 3107, 3108, 3, 45, 22, 0, 3108, 3109, 3, 23, 11, 0, 3109, 3110, 3, 31, 15, 0, 3110, 3111, 3, 15, 7, 0, 3111, 3112, 3, 43, 21, 0, 3112, 3113, 3, 45, 22, 0, 3113, 3114, 3, 7, 3, 0, 3114, 3115, 3, 31, 15, 0, 3115, 3116, 3, 37, 18, 0, 3116, 340, 1, 0, 0, 0, 3117, 3118, 3, 11, 5, 0, 3118, 3119, 3, 47, 23, 0, 3119, 3120, 3, 41, 20, 0, 3120, 3121, 3, 41, 20, 0, 3121, 3122, 3, 15, 7, 0, 3122, 3123, 3, 33, 16, 0, 3123, 3124, 3, 45, 22, 0, 3124, 3125, 5, 95, 0, 0, 3125, 3126, 3, 45, 22, 0, 3126, 3127, 3, 41, 20, 0, 3127, 3128, 3, 7, 3, 0, 3128, 3129, 3, 33, 16, 0, 3129, 3130, 3, 43, 21, 0, 3130, 3131, 3, 17, 8, 0, 3131, 3132, 3, 35, 17, 0, 3132, 3133, 3, 41, 20, 0, 3133, 3134, 3, 31, 15, 0, 3134, 3135, 5, 95, 0, 0, 3135, 3136, 3, 19, 9, 0, 3136, 3137, 3, 41, 20, 0, 3137, 3138, 3, 35, 17, 0, 3138, 3139, 3, 47, 23, 0, 3139, 3140, 3, 37, 18, 0, 3140, 3141, 5, 95, 0, 0, 3141, 3142, 3, 17, 8, 0, 3142, 3143, 3, 35, 17, 0, 3143, 3144, 3, 41, 20, 0, 3144, 3145, 5, 95, 0, 0, 3145, 3146, 3, 45, 22, 0, 3146, 3147, 3, 55, 27, 0, 3147, 3148, 3, 37, 18, 0, 3148, 3149, 3, 15, 7, 0, 3149, 342, 1, 0, 0, 0, 3150, 3151, 3, 11, 5, 0, 3151, 3152, 3, 47, 23, 0, 3152, 3153, 3, 41, 20, 0, 3153, 3154, 3, 41, 20, 0, 3154, 3155, 3, 15, 7, 0, 3155, 3156, 3, 33, 16, 0, 3156, 3157, 3, 45, 22, 0, 3157, 3158, 5, 95, 0, 0, 3158, 3159, 3, 47, 23, 0, 3159, 3160, 3, 43, 21, 0, 3160, 3161, 3, 15, 7, 0, 3161, 3162, 3, 41, 20, 0, 3162, 344, 1, 0, 0, 0, 3163, 3164, 3, 11, 5, 0, 3164, 3165, 3, 47, 23, 0, 3165, 3166, 3, 41, 20, 0, 3166, 3167, 3, 43, 21, 0, 3167, 3168, 3, 35, 17, 0, 3168, 3169, 3, 41, 20, 0, 3169, 346, 1, 0, 0, 0, 3170, 3171, 3, 11, 5, 0, 3171, 3172, 3, 47, 23, 0, 3172, 3173, 3, 41, 20, 0, 3173, 3174, 3, 43, 21, 0, 3174, 3175, 3, 35, 17, 0, 3175, 3176, 3, 41, 20, 0, 3176, 3177, 5, 95, 0, 0, 3177, 3178, 3, 33, 16, 0, 3178, 3179, 3, 7, 3, 0, 3179, 3180, 3, 31, 15, 0, 3180, 3181, 3, 15, 7, 0, 3181, 348, 1, 0, 0, 0, 3182, 3183, 3, 11, 5, 0, 3183, 3184, 3, 55, 27, 0, 3184, 3185, 3, 11, 5, 0, 3185, 3186, 3, 29, 14, 0, 3186, 3187, 3, 15, 7, 0, 3187, 350, 1, 0, 0, 0, 3188, 3189, 3, 13, 6, 0, 3189, 3190, 3, 7, 3, 0, 3190, 3191, 3, 45, 22, 0, 3191, 3192, 3, 7, 3, 0, 3192, 352, 1, 0, 0, 0, 3193, 3194, 3, 13, 6, 0, 3194, 3195, 3, 7, 3, 0, 3195, 3196, 3, 45, 22, 0, 3196, 3197, 3, 7, 3, 0, 3197, 3198, 3, 9, 4, 0, 3198, 3199, 3, 7, 3, 0, 3199, 3200, 3, 43, 21, 0, 3200, 3201, 3, 15, 7, 0, 3201, 354, 1, 0, 0, 0, 3202, 3203, 3, 13, 6, 0, 3203, 3204, 3, 7, 3, 0, 3204, 3205, 3, 45, 22, 0, 3205, 3206, 3, 15, 7, 0, 3206, 356, 1, 0, 0, 0, 3207, 3208, 3, 13, 6, 0, 3208, 3209, 3, 7, 3, 0, 3209, 3210, 3, 45, 22, 0, 3210, 3211, 3, 15, 7, 0, 3211, 3212, 3, 45, 22, 0, 3212, 3213, 3, 23, 11, 0, 3213, 3214, 3, 31, 15, 0, 3214, 3215, 3, 15, 7, 0, 3215, 3216, 5, 95, 0, 0, 3216, 3217, 3, 23, 11, 0, 3217, 3218, 3, 33, 16, 0, 3218, 3219, 3, 45, 22, 0, 3219, 3220, 3, 15, 7, 0, 3220, 3221, 3, 41, 20, 0, 3221, 3222, 3, 49, 24, 0, 3222, 3223, 3, 7, 3, 0, 3223, 3224, 3, 29, 14, 0, 3224, 3225, 5, 95, 0, 0, 3225, 3226, 3, 11, 5, 0, 3226, 3227, 3, 35, 17, 0, 3227, 3228, 3, 13, 6, 0, 3228, 3229, 3, 15, 7, 0, 3229, 358, 1, 0, 0, 0, 3230, 3231, 3, 13, 6, 0, 3231, 3232, 3, 7, 3, 0, 3232, 3233, 3, 45, 22, 0, 3233, 3234, 3, 15, 7, 0, 3234, 3235, 3, 45, 22, 0, 3235, 3236, 3, 23, 11, 0, 3236, 3237, 3, 31, 15, 0, 3237, 3238, 3, 15, 7, 0, 3238, 3239, 5, 95, 0, 0, 3239, 3240, 3, 23, 11, 0, 3240, 3241, 3, 33, 16, 0, 3241, 3242, 3, 45, 22, 0, 3242, 3243, 3, 15, 7, 0, 3243, 3244, 3, 41, 20, 0, 3244, 3245, 3, 49, 24, 0, 3245, 3246, 3, 7, 3, 0, 3246, 3247, 3, 29, 14, 0, 3247, 3248, 5, 95, 0, 0, 3248, 3249, 3, 37, 18, 0, 3249, 3250, 3, 41, 20, 0, 3250, 3251, 3, 15, 7, 0, 3251, 3252, 3, 11, 5, 0, 3252, 3253, 3, 23, 11, 0, 3253, 3254, 3, 43, 21, 0, 3254, 3255, 3, 23, 11, 0, 3255, 3256, 3, 35, 17, 0, 3256, 3257, 3, 33, 16, 0, 3257, 360, 1, 0, 0, 0, 3258, 3259, 3, 13, 6, 0, 3259, 3260, 3, 7, 3, 0, 3260, 3261, 3, 55, 27, 0, 3261, 362, 1, 0, 0, 0, 3262, 3263, 3, 13, 6, 0, 3263, 3264, 3, 15, 7, 0, 3264, 3265, 3, 7, 3, 0, 3265, 3266, 3, 29, 14, 0, 3266, 3267, 3, 29, 14, 0, 3267, 3268, 3, 35, 17, 0, 3268, 3269, 3, 11, 5, 0, 3269, 3270, 3, 7, 3, 0, 3270, 3271, 3, 45, 22, 0, 3271, 3272, 3, 15, 7, 0, 3272, 364, 1, 0, 0, 0, 3273, 3274, 3, 13, 6, 0, 3274, 3275, 3, 15, 7, 0, 3275, 3276, 3, 11, 5, 0, 3276, 366, 1, 0, 0, 0, 3277, 3278, 3, 13, 6, 0, 3278, 3279, 3, 15, 7, 0, 3279, 3280, 3, 11, 5, 0, 3280, 3281, 3, 23, 11, 0, 3281, 3282, 3, 31, 15, 0, 3282, 3283, 3, 7, 3, 0, 3283, 3284, 3, 29, 14, 0, 3284, 368, 1, 0, 0, 0, 3285, 3286, 3, 13, 6, 0, 3286, 3287, 3, 15, 7, 0, 3287, 3288, 3, 11, 5, 0, 3288, 3289, 3, 29, 14, 0, 3289, 3290, 3, 7, 3, 0, 3290, 3291, 3, 41, 20, 0, 3291, 3292, 3, 15, 7, 0, 3292, 370, 1, 0, 0, 0, 3293, 3294, 3, 13, 6, 0, 3294, 3295, 3, 15, 7, 0, 3295, 3296, 3, 17, 8, 0, 3296, 3297, 3, 7, 3, 0, 3297, 3298, 3, 47, 23, 0, 3298, 3299, 3, 29, 14, 0, 3299, 3300, 3, 45, 22, 0, 3300, 372, 1, 0, 0, 0, 3301, 3302, 3, 13, 6, 0, 3302, 3303, 3, 15, 7, 0, 3303, 3304, 3, 17, 8, 0, 3304, 3305, 3, 7, 3, 0, 3305, 3306, 3, 47, 23, 0, 3306, 3307, 3, 29, 14, 0, 3307, 3308, 3, 45, 22, 0, 3308, 3309, 3, 43, 21, 0, 3309, 374, 1, 0, 0, 0, 3310, 3311, 3, 13, 6, 0, 3311, 3312, 3, 15, 7, 0, 3312, 3313, 3, 17, 8, 0, 3313, 3314, 3, 15, 7, 0, 3314, 3315, 3, 41, 20, 0, 3315, 3316, 3, 7, 3, 0, 3316, 3317, 3, 9, 4, 0, 3317, 3318, 3, 29, 14, 0, 3318, 3319, 3, 15, 7, 0, 3319, 376, 1, 0, 0, 0, 3320, 3321, 3, 13, 6, 0, 3321, 3322, 3, 15, 7, 0, 3322, 3323, 3, 17, 8, 0, 3323, 3324, 3, 15, 7, 0, 3324, 3325, 3, 41, 20, 0, 3325, 3326, 3, 41, 20, 0, 3326, 3327, 3, 7, 3, 0, 3327, 3328, 3, 9, 4, 0, 3328, 3329, 3, 29, 14, 0, 3329, 3330, 3, 15, 7, 0, 3330, 378, 1, 0, 0, 0, 3331, 3332, 3, 13, 6, 0, 3332, 3333, 3, 15, 7, 0, 3333, 3334, 3, 17, 8, 0, 3334, 3335, 3, 15, 7, 0, 3335, 3336, 3, 41, 20, 0, 3336, 3337, 3, 41, 20, 0, 3337, 3338, 3, 15, 7, 0, 3338, 3339, 3, 13, 6, 0, 3339, 380, 1, 0, 0, 0, 3340, 3341, 3, 13, 6, 0, 3341, 3342, 3, 15, 7, 0, 3342, 3343, 3, 17, 8, 0, 3343, 3344, 3, 23, 11, 0, 3344, 3345, 3, 33, 16, 0, 3345, 3346, 3, 15, 7, 0, 3346, 3347, 3, 13, 6, 0, 3347, 382, 1, 0, 0, 0, 3348, 3349, 3, 13, 6, 0, 3349, 3350, 3, 15, 7, 0, 3350, 3351, 3, 17, 8, 0, 3351, 3352, 3, 23, 11, 0, 3352, 3353, 3, 33, 16, 0, 3353, 3354, 3, 15, 7, 0, 3354, 3355, 3, 41, 20, 0, 3355, 384, 1, 0, 0, 0, 3356, 3357, 3, 13, 6, 0, 3357, 3358, 3, 15, 7, 0, 3358, 3359, 3, 19, 9, 0, 3359, 3360, 3, 41, 20, 0, 3360, 3361, 3, 15, 7, 0, 3361, 3362, 3, 15, 7, 0, 3362, 386, 1, 0, 0, 0, 3363, 3364, 3, 13, 6, 0, 3364, 3365, 3, 15, 7, 0, 3365, 3366, 3, 29, 14, 0, 3366, 3367, 3, 15, 7, 0, 3367, 3368, 3, 45, 22, 0, 3368, 3369, 3, 15, 7, 0, 3369, 388, 1, 0, 0, 0, 3370, 3371, 3, 13, 6, 0, 3371, 3372, 3, 15, 7, 0, 3372, 3373, 3, 29, 14, 0, 3373, 3374, 3, 23, 11, 0, 3374, 3375, 3, 31, 15, 0, 3375, 3376, 3, 23, 11, 0, 3376, 3377, 3, 45, 22, 0, 3377, 3378, 3, 15, 7, 0, 3378, 3379, 3, 41, 20, 0, 3379, 390, 1, 0, 0, 0, 3380, 3381, 3, 13, 6, 0, 3381, 3382, 3, 15, 7, 0, 3382, 3383, 3, 29, 14, 0, 3383, 3384, 3, 23, 11, 0, 3384, 3385, 3, 31, 15, 0, 3385, 3386, 3, 23, 11, 0, 3386, 3387, 3, 45, 22, 0, 3387, 3388, 3, 15, 7, 0, 3388, 3389, 3, 41, 20, 0, 3389, 3390, 3, 43, 21, 0, 3390, 392, 1, 0, 0, 0, 3391, 3392, 3, 13, 6, 0, 3392, 3393, 3, 15, 7, 0, 3393, 3394, 3, 33, 16, 0, 3394, 3395, 3, 43, 21, 0, 3395, 3396, 3, 15, 7, 0, 3396, 3397, 5, 95, 0, 0, 3397, 3398, 3, 41, 20, 0, 3398, 3399, 3, 7, 3, 0, 3399, 3400, 3, 33, 16, 0, 3400, 3401, 3, 27, 13, 0, 3401, 394, 1, 0, 0, 0, 3402, 3403, 3, 13, 6, 0, 3403, 3404, 3, 15, 7, 0, 3404, 3405, 3, 37, 18, 0, 3405, 3406, 3, 15, 7, 0, 3406, 3407, 3, 33, 16, 0, 3407, 3408, 3, 13, 6, 0, 3408, 3409, 3, 43, 21, 0, 3409, 396, 1, 0, 0, 0, 3410, 3411, 3, 13, 6, 0, 3411, 3412, 3, 15, 7, 0, 3412, 3413, 3, 37, 18, 0, 3413, 3414, 3, 45, 22, 0, 3414, 3415, 3, 21, 10, 0, 3415, 398, 1, 0, 0, 0, 3416, 3417, 3, 13, 6, 0, 3417, 3418, 3, 15, 7, 0, 3418, 3419, 3, 41, 20, 0, 3419, 3420, 3, 15, 7, 0, 3420, 3421, 3, 17, 8, 0, 3421, 400, 1, 0, 0, 0, 3422, 3423, 3, 13, 6, 0, 3423, 3424, 3, 15, 7, 0, 3424, 3425, 3, 41, 20, 0, 3425, 3426, 3, 23, 11, 0, 3426, 3427, 3, 49, 24, 0, 3427, 3428, 3, 15, 7, 0, 3428, 3429, 3, 13, 6, 0, 3429, 402, 1, 0, 0, 0, 3430, 3431, 3, 13, 6, 0, 3431, 3432, 3, 15, 7, 0, 3432, 3433, 3, 43, 21, 0, 3433, 3434, 3, 11, 5, 0, 3434, 404, 1, 0, 0, 0, 3435, 3436, 3, 13, 6, 0, 3436, 3437, 3, 15, 7, 0, 3437, 3438, 3, 43, 21, 0, 3438, 3439, 3, 11, 5, 0, 3439, 3440, 3, 41, 20, 0, 3440, 3441, 3, 23, 11, 0, 3441, 3442, 3, 9, 4, 0, 3442, 3443, 3, 15, 7, 0, 3443, 406, 1, 0, 0, 0, 3444, 3445, 3, 13, 6, 0, 3445, 3446, 3, 15, 7, 0, 3446, 3447, 3, 43, 21, 0, 3447, 3448, 3, 11, 5, 0, 3448, 3449, 3, 41, 20, 0, 3449, 3450, 3, 23, 11, 0, 3450, 3451, 3, 37, 18, 0, 3451, 3452, 3, 45, 22, 0, 3452, 3453, 3, 35, 17, 0, 3453, 3454, 3, 41, 20, 0, 3454, 408, 1, 0, 0, 0, 3455, 3456, 3, 13, 6, 0, 3456, 3457, 3, 15, 7, 0, 3457, 3458, 3, 43, 21, 0, 3458, 3459, 3, 45, 22, 0, 3459, 3460, 3, 41, 20, 0, 3460, 3461, 3, 35, 17, 0, 3461, 3462, 3, 55, 27, 0, 3462, 410, 1, 0, 0, 0, 3463, 3464, 3, 13, 6, 0, 3464, 3465, 3, 15, 7, 0, 3465, 3466, 3, 43, 21, 0, 3466, 3467, 3, 45, 22, 0, 3467, 3468, 3, 41, 20, 0, 3468, 3469, 3, 47, 23, 0, 3469, 3470, 3, 11, 5, 0, 3470, 3471, 3, 45, 22, 0, 3471, 3472, 3, 35, 17, 0, 3472, 3473, 3, 41, 20, 0, 3473, 412, 1, 0, 0, 0, 3474, 3475, 3, 13, 6, 0, 3475, 3476, 3, 15, 7, 0, 3476, 3477, 3, 45, 22, 0, 3477, 3478, 3, 15, 7, 0, 3478, 3479, 3, 41, 20, 0, 3479, 3480, 3, 31, 15, 0, 3480, 3481, 3, 23, 11, 0, 3481, 3482, 3, 33, 16, 0, 3482, 3483, 3, 23, 11, 0, 3483, 3484, 3, 43, 21, 0, 3484, 3485, 3, 45, 22, 0, 3485, 3486, 3, 23, 11, 0, 3486, 3487, 3, 11, 5, 0, 3487, 414, 1, 0, 0, 0, 3488, 3489, 3, 13, 6, 0, 3489, 3490, 3, 23, 11, 0, 3490, 3491, 3, 7, 3, 0, 3491, 3492, 3, 19, 9, 0, 3492, 3493, 3, 33, 16, 0, 3493, 3494, 3, 35, 17, 0, 3494, 3495, 3, 43, 21, 0, 3495, 3496, 3, 45, 22, 0, 3496, 3497, 3, 23, 11, 0, 3497, 3498, 3, 11, 5, 0, 3498, 3499, 3, 43, 21, 0, 3499, 416, 1, 0, 0, 0, 3500, 3501, 3, 13, 6, 0, 3501, 3502, 3, 23, 11, 0, 3502, 3503, 3, 11, 5, 0, 3503, 3504, 3, 45, 22, 0, 3504, 3505, 3, 23, 11, 0, 3505, 3506, 3, 35, 17, 0, 3506, 3507, 3, 33, 16, 0, 3507, 3508, 3, 7, 3, 0, 3508, 3509, 3, 41, 20, 0, 3509, 3510, 3, 55, 27, 0, 3510, 418, 1, 0, 0, 0, 3511, 3512, 3, 13, 6, 0, 3512, 3513, 3, 23, 11, 0, 3513, 3514, 3, 43, 21, 0, 3514, 3515, 3, 7, 3, 0, 3515, 3516, 3, 9, 4, 0, 3516, 3517, 3, 29, 14, 0, 3517, 3518, 3, 15, 7, 0, 3518, 420, 1, 0, 0, 0, 3519, 3520, 3, 13, 6, 0, 3520, 3521, 3, 23, 11, 0, 3521, 3522, 3, 43, 21, 0, 3522, 3523, 3, 7, 3, 0, 3523, 3524, 3, 9, 4, 0, 3524, 3525, 3, 29, 14, 0, 3525, 3526, 3, 15, 7, 0, 3526, 3527, 5, 95, 0, 0, 3527, 3528, 3, 37, 18, 0, 3528, 3529, 3, 7, 3, 0, 3529, 3530, 3, 19, 9, 0, 3530, 3531, 3, 15, 7, 0, 3531, 3532, 5, 95, 0, 0, 3532, 3533, 3, 43, 21, 0, 3533, 3534, 3, 27, 13, 0, 3534, 3535, 3, 23, 11, 0, 3535, 3536, 3, 37, 18, 0, 3536, 3537, 3, 37, 18, 0, 3537, 3538, 3, 23, 11, 0, 3538, 3539, 3, 33, 16, 0, 3539, 3540, 3, 19, 9, 0, 3540, 422, 1, 0, 0, 0, 3541, 3542, 3, 13, 6, 0, 3542, 3543, 3, 23, 11, 0, 3543, 3544, 3, 43, 21, 0, 3544, 3545, 3, 11, 5, 0, 3545, 3546, 3, 7, 3, 0, 3546, 3547, 3, 41, 20, 0, 3547, 3548, 3, 13, 6, 0, 3548, 424, 1, 0, 0, 0, 3549, 3550, 3, 13, 6, 0, 3550, 3551, 3, 23, 11, 0, 3551, 3552, 3, 43, 21, 0, 3552, 3553, 3, 11, 5, 0, 3553, 3554, 3, 35, 17, 0, 3554, 3555, 3, 33, 16, 0, 3555, 3556, 3, 33, 16, 0, 3556, 3557, 3, 15, 7, 0, 3557, 3558, 3, 11, 5, 0, 3558, 3559, 3, 45, 22, 0, 3559, 426, 1, 0, 0, 0, 3560, 3561, 3, 13, 6, 0, 3561, 3562, 3, 23, 11, 0, 3562, 3563, 3, 43, 21, 0, 3563, 3564, 3, 37, 18, 0, 3564, 3565, 3, 7, 3, 0, 3565, 3566, 3, 45, 22, 0, 3566, 3567, 3, 11, 5, 0, 3567, 3568, 3, 21, 10, 0, 3568, 428, 1, 0, 0, 0, 3569, 3570, 3, 13, 6, 0, 3570, 3571, 3, 23, 11, 0, 3571, 3572, 3, 43, 21, 0, 3572, 3573, 3, 45, 22, 0, 3573, 3574, 3, 23, 11, 0, 3574, 3575, 3, 33, 16, 0, 3575, 3576, 3, 11, 5, 0, 3576, 3577, 3, 45, 22, 0, 3577, 430, 1, 0, 0, 0, 3578, 3579, 3, 13, 6, 0, 3579, 3580, 3, 35, 17, 0, 3580, 432, 1, 0, 0, 0, 3581, 3582, 3, 13, 6, 0, 3582, 3583, 3, 35, 17, 0, 3583, 3584, 3, 31, 15, 0, 3584, 3585, 3, 7, 3, 0, 3585, 3586, 3, 23, 11, 0, 3586, 3587, 3, 33, 16, 0, 3587, 434, 1, 0, 0, 0, 3588, 3589, 3, 13, 6, 0, 3589, 3590, 3, 35, 17, 0, 3590, 3591, 3, 47, 23, 0, 3591, 3592, 3, 9, 4, 0, 3592, 3593, 3, 29, 14, 0, 3593, 3594, 3, 15, 7, 0, 3594, 436, 1, 0, 0, 0, 3595, 3596, 3, 13, 6, 0, 3596, 3597, 3, 41, 20, 0, 3597, 3598, 3, 35, 17, 0, 3598, 3599, 3, 37, 18, 0, 3599, 438, 1, 0, 0, 0, 3600, 3601, 3, 13, 6, 0, 3601, 3602, 3, 55, 27, 0, 3602, 3603, 3, 33, 16, 0, 3603, 3604, 3, 7, 3, 0, 3604, 3605, 3, 31, 15, 0, 3605, 3606, 3, 23, 11, 0, 3606, 3607, 3, 11, 5, 0, 3607, 440, 1, 0, 0, 0, 3608, 3609, 3, 13, 6, 0, 3609, 3610, 3, 55, 27, 0, 3610, 3611, 3, 33, 16, 0, 3611, 3612, 3, 7, 3, 0, 3612, 3613, 3, 31, 15, 0, 3613, 3614, 3, 23, 11, 0, 3614, 3615, 3, 11, 5, 0, 3615, 3616, 5, 95, 0, 0, 3616, 3617, 3, 17, 8, 0, 3617, 3618, 3, 47, 23, 0, 3618, 3619, 3, 33, 16, 0, 3619, 3620, 3, 11, 5, 0, 3620, 3621, 3, 45, 22, 0, 3621, 3622, 3, 23, 11, 0, 3622, 3623, 3, 35, 17, 0, 3623, 3624, 3, 33, 16, 0, 3624, 442, 1, 0, 0, 0, 3625, 3626, 3, 13, 6, 0, 3626, 3627, 3, 55, 27, 0, 3627, 3628, 3, 33, 16, 0, 3628, 3629, 3, 7, 3, 0, 3629, 3630, 3, 31, 15, 0, 3630, 3631, 3, 23, 11, 0, 3631, 3632, 3, 11, 5, 0, 3632, 3633, 5, 95, 0, 0, 3633, 3634, 3, 17, 8, 0, 3634, 3635, 3, 47, 23, 0, 3635, 3636, 3, 33, 16, 0, 3636, 3637, 3, 11, 5, 0, 3637, 3638, 3, 45, 22, 0, 3638, 3639, 3, 23, 11, 0, 3639, 3640, 3, 35, 17, 0, 3640, 3641, 3, 33, 16, 0, 3641, 3642, 5, 95, 0, 0, 3642, 3643, 3, 11, 5, 0, 3643, 3644, 3, 35, 17, 0, 3644, 3645, 3, 13, 6, 0, 3645, 3646, 3, 15, 7, 0, 3646, 444, 1, 0, 0, 0, 3647, 3648, 3, 15, 7, 0, 3648, 3649, 3, 7, 3, 0, 3649, 3650, 3, 11, 5, 0, 3650, 3651, 3, 21, 10, 0, 3651, 446, 1, 0, 0, 0, 3652, 3653, 3, 15, 7, 0, 3653, 3654, 3, 29, 14, 0, 3654, 3655, 3, 15, 7, 0, 3655, 3656, 3, 31, 15, 0, 3656, 3657, 3, 15, 7, 0, 3657, 3658, 3, 33, 16, 0, 3658, 3659, 3, 45, 22, 0, 3659, 448, 1, 0, 0, 0, 3660, 3661, 3, 15, 7, 0, 3661, 3662, 3, 29, 14, 0, 3662, 3663, 3, 43, 21, 0, 3663, 3664, 3, 15, 7, 0, 3664, 450, 1, 0, 0, 0, 3665, 3666, 3, 15, 7, 0, 3666, 3667, 3, 33, 16, 0, 3667, 3668, 3, 7, 3, 0, 3668, 3669, 3, 9, 4, 0, 3669, 3670, 3, 29, 14, 0, 3670, 3671, 3, 15, 7, 0, 3671, 452, 1, 0, 0, 0, 3672, 3673, 3, 15, 7, 0, 3673, 3674, 3, 33, 16, 0, 3674, 3675, 3, 11, 5, 0, 3675, 3676, 3, 35, 17, 0, 3676, 3677, 3, 13, 6, 0, 3677, 3678, 3, 23, 11, 0, 3678, 3679, 3, 33, 16, 0, 3679, 3680, 3, 19, 9, 0, 3680, 454, 1, 0, 0, 0, 3681, 3682, 3, 15, 7, 0, 3682, 3683, 3, 33, 16, 0, 3683, 3684, 3, 11, 5, 0, 3684, 3685, 3, 41, 20, 0, 3685, 3686, 3, 55, 27, 0, 3686, 3687, 3, 37, 18, 0, 3687, 3688, 3, 45, 22, 0, 3688, 3689, 3, 15, 7, 0, 3689, 3690, 3, 13, 6, 0, 3690, 456, 1, 0, 0, 0, 3691, 3692, 3, 15, 7, 0, 3692, 3693, 3, 33, 16, 0, 3693, 3694, 3, 13, 6, 0, 3694, 458, 1, 0, 0, 0, 3695, 3696, 3, 15, 7, 0, 3696, 3697, 3, 33, 16, 0, 3697, 3698, 3, 13, 6, 0, 3698, 3699, 5, 45, 0, 0, 3699, 3700, 3, 15, 7, 0, 3700, 3701, 3, 53, 26, 0, 3701, 3702, 3, 15, 7, 0, 3702, 3703, 3, 11, 5, 0, 3703, 460, 1, 0, 0, 0, 3704, 3705, 3, 15, 7, 0, 3705, 3706, 3, 39, 19, 0, 3706, 3707, 3, 47, 23, 0, 3707, 3708, 3, 7, 3, 0, 3708, 3709, 3, 29, 14, 0, 3709, 3710, 3, 43, 21, 0, 3710, 462, 1, 0, 0, 0, 3711, 3712, 3, 15, 7, 0, 3712, 3713, 3, 43, 21, 0, 3713, 3714, 3, 11, 5, 0, 3714, 3715, 3, 7, 3, 0, 3715, 3716, 3, 37, 18, 0, 3716, 3717, 3, 15, 7, 0, 3717, 464, 1, 0, 0, 0, 3718, 3719, 3, 15, 7, 0, 3719, 3720, 3, 49, 24, 0, 3720, 3721, 3, 15, 7, 0, 3721, 3722, 3, 41, 20, 0, 3722, 3723, 3, 55, 27, 0, 3723, 466, 1, 0, 0, 0, 3724, 3725, 3, 15, 7, 0, 3725, 3726, 3, 53, 26, 0, 3726, 3727, 3, 11, 5, 0, 3727, 3728, 3, 15, 7, 0, 3728, 3729, 3, 37, 18, 0, 3729, 3730, 3, 45, 22, 0, 3730, 468, 1, 0, 0, 0, 3731, 3732, 3, 15, 7, 0, 3732, 3733, 3, 53, 26, 0, 3733, 3734, 3, 11, 5, 0, 3734, 3735, 3, 15, 7, 0, 3735, 3736, 3, 37, 18, 0, 3736, 3737, 3, 45, 22, 0, 3737, 3738, 3, 23, 11, 0, 3738, 3739, 3, 35, 17, 0, 3739, 3740, 3, 33, 16, 0, 3740, 470, 1, 0, 0, 0, 3741, 3742, 3, 15, 7, 0, 3742, 3743, 3, 53, 26, 0, 3743, 3744, 3, 11, 5, 0, 3744, 3745, 3, 29, 14, 0, 3745, 3746, 3, 47, 23, 0, 3746, 3747, 3, 13, 6, 0, 3747, 3748, 3, 15, 7, 0, 3748, 472, 1, 0, 0, 0, 3749, 3750, 3, 15, 7, 0, 3750, 3751, 3, 53, 26, 0, 3751, 3752, 3, 11, 5, 0, 3752, 3753, 3, 29, 14, 0, 3753, 3754, 3, 47, 23, 0, 3754, 3755, 3, 13, 6, 0, 3755, 3756, 3, 23, 11, 0, 3756, 3757, 3, 33, 16, 0, 3757, 3758, 3, 19, 9, 0, 3758, 474, 1, 0, 0, 0, 3759, 3760, 3, 15, 7, 0, 3760, 3761, 3, 53, 26, 0, 3761, 3762, 3, 11, 5, 0, 3762, 3763, 3, 29, 14, 0, 3763, 3764, 3, 47, 23, 0, 3764, 3765, 3, 43, 21, 0, 3765, 3766, 3, 23, 11, 0, 3766, 3767, 3, 49, 24, 0, 3767, 3768, 3, 15, 7, 0, 3768, 476, 1, 0, 0, 0, 3769, 3770, 3, 15, 7, 0, 3770, 3771, 3, 53, 26, 0, 3771, 3772, 3, 15, 7, 0, 3772, 3773, 3, 11, 5, 0, 3773, 478, 1, 0, 0, 0, 3774, 3775, 3, 15, 7, 0, 3775, 3776, 3, 53, 26, 0, 3776, 3777, 3, 15, 7, 0, 3777, 3778, 3, 11, 5, 0, 3778, 3779, 3, 47, 23, 0, 3779, 3780, 3, 45, 22, 0, 3780, 3781, 3, 15, 7, 0, 3781, 480, 1, 0, 0, 0, 3782, 3783, 3, 15, 7, 0, 3783, 3784, 3, 53, 26, 0, 3784, 3785, 3, 23, 11, 0, 3785, 3786, 3, 43, 21, 0, 3786, 3787, 3, 45, 22, 0, 3787, 3788, 3, 23, 11, 0, 3788, 3789, 3, 33, 16, 0, 3789, 3790, 3, 19, 9, 0, 3790, 482, 1, 0, 0, 0, 3791, 3792, 3, 15, 7, 0, 3792, 3793, 3, 53, 26, 0, 3793, 3794, 3, 23, 11, 0, 3794, 3795, 3, 43, 21, 0, 3795, 3796, 3, 45, 22, 0, 3796, 3797, 3, 43, 21, 0, 3797, 484, 1, 0, 0, 0, 3798, 3799, 3, 15, 7, 0, 3799, 3800, 3, 53, 26, 0, 3800, 3801, 3, 37, 18, 0, 3801, 486, 1, 0, 0, 0, 3802, 3803, 3, 15, 7, 0, 3803, 3804, 3, 53, 26, 0, 3804, 3805, 3, 37, 18, 0, 3805, 3806, 3, 29, 14, 0, 3806, 3807, 3, 7, 3, 0, 3807, 3808, 3, 23, 11, 0, 3808, 3809, 3, 33, 16, 0, 3809, 488, 1, 0, 0, 0, 3810, 3811, 3, 15, 7, 0, 3811, 3812, 3, 53, 26, 0, 3812, 3813, 3, 45, 22, 0, 3813, 3814, 3, 15, 7, 0, 3814, 3815, 3, 33, 16, 0, 3815, 3816, 3, 13, 6, 0, 3816, 3817, 3, 15, 7, 0, 3817, 3818, 3, 13, 6, 0, 3818, 490, 1, 0, 0, 0, 3819, 3820, 3, 15, 7, 0, 3820, 3821, 3, 53, 26, 0, 3821, 3822, 3, 45, 22, 0, 3822, 3823, 3, 15, 7, 0, 3823, 3824, 3, 33, 16, 0, 3824, 3825, 3, 43, 21, 0, 3825, 3826, 3, 23, 11, 0, 3826, 3827, 3, 35, 17, 0, 3827, 3828, 3, 33, 16, 0, 3828, 492, 1, 0, 0, 0, 3829, 3830, 3, 15, 7, 0, 3830, 3831, 3, 53, 26, 0, 3831, 3832, 3, 45, 22, 0, 3832, 3833, 3, 15, 7, 0, 3833, 3834, 3, 41, 20, 0, 3834, 3835, 3, 33, 16, 0, 3835, 3836, 3, 7, 3, 0, 3836, 3837, 3, 29, 14, 0, 3837, 494, 1, 0, 0, 0, 3838, 3839, 3, 15, 7, 0, 3839, 3840, 3, 53, 26, 0, 3840, 3841, 3, 45, 22, 0, 3841, 3842, 3, 41, 20, 0, 3842, 3843, 3, 7, 3, 0, 3843, 3844, 3, 11, 5, 0, 3844, 3845, 3, 45, 22, 0, 3845, 496, 1, 0, 0, 0, 3846, 3847, 3, 17, 8, 0, 3847, 3848, 3, 7, 3, 0, 3848, 3849, 3, 29, 14, 0, 3849, 3850, 3, 43, 21, 0, 3850, 3851, 3, 15, 7, 0, 3851, 498, 1, 0, 0, 0, 3852, 3853, 3, 17, 8, 0, 3853, 3854, 3, 15, 7, 0, 3854, 3855, 3, 45, 22, 0, 3855, 3856, 3, 11, 5, 0, 3856, 3857, 3, 21, 10, 0, 3857, 500, 1, 0, 0, 0, 3858, 3859, 3, 17, 8, 0, 3859, 3860, 3, 23, 11, 0, 3860, 3861, 3, 15, 7, 0, 3861, 3862, 3, 29, 14, 0, 3862, 3863, 3, 13, 6, 0, 3863, 3864, 3, 43, 21, 0, 3864, 502, 1, 0, 0, 0, 3865, 3866, 3, 17, 8, 0, 3866, 3867, 3, 23, 11, 0, 3867, 3868, 3, 29, 14, 0, 3868, 3869, 3, 45, 22, 0, 3869, 3870, 3, 15, 7, 0, 3870, 3871, 3, 41, 20, 0, 3871, 504, 1, 0, 0, 0, 3872, 3873, 3, 17, 8, 0, 3873, 3874, 3, 23, 11, 0, 3874, 3875, 3, 33, 16, 0, 3875, 3876, 3, 7, 3, 0, 3876, 3877, 3, 29, 14, 0, 3877, 506, 1, 0, 0, 0, 3878, 3879, 3, 17, 8, 0, 3879, 3880, 3, 23, 11, 0, 3880, 3881, 3, 41, 20, 0, 3881, 3882, 3, 43, 21, 0, 3882, 3883, 3, 45, 22, 0, 3883, 508, 1, 0, 0, 0, 3884, 3885, 3, 17, 8, 0, 3885, 3886, 3, 29, 14, 0, 3886, 3887, 3, 35, 17, 0, 3887, 3888, 3, 7, 3, 0, 3888, 3889, 3, 45, 22, 0, 3889, 510, 1, 0, 0, 0, 3890, 3891, 3, 17, 8, 0, 3891, 3892, 3, 29, 14, 0, 3892, 3893, 3, 35, 17, 0, 3893, 3894, 3, 35, 17, 0, 3894, 3895, 3, 41, 20, 0, 3895, 512, 1, 0, 0, 0, 3896, 3897, 3, 17, 8, 0, 3897, 3898, 3, 35, 17, 0, 3898, 3899, 3, 29, 14, 0, 3899, 3900, 3, 29, 14, 0, 3900, 3901, 3, 35, 17, 0, 3901, 3902, 3, 51, 25, 0, 3902, 3903, 3, 23, 11, 0, 3903, 3904, 3, 33, 16, 0, 3904, 3905, 3, 19, 9, 0, 3905, 514, 1, 0, 0, 0, 3906, 3907, 3, 17, 8, 0, 3907, 3908, 3, 35, 17, 0, 3908, 3909, 3, 41, 20, 0, 3909, 516, 1, 0, 0, 0, 3910, 3911, 3, 17, 8, 0, 3911, 3912, 3, 35, 17, 0, 3912, 3913, 3, 41, 20, 0, 3913, 3914, 3, 11, 5, 0, 3914, 3915, 3, 15, 7, 0, 3915, 518, 1, 0, 0, 0, 3916, 3917, 3, 17, 8, 0, 3917, 3918, 3, 35, 17, 0, 3918, 3919, 3, 41, 20, 0, 3919, 3920, 3, 15, 7, 0, 3920, 3921, 3, 23, 11, 0, 3921, 3922, 3, 19, 9, 0, 3922, 3923, 3, 33, 16, 0, 3923, 520, 1, 0, 0, 0, 3924, 3925, 3, 17, 8, 0, 3925, 3926, 3, 35, 17, 0, 3926, 3927, 3, 41, 20, 0, 3927, 3928, 3, 31, 15, 0, 3928, 3929, 3, 7, 3, 0, 3929, 3930, 3, 45, 22, 0, 3930, 522, 1, 0, 0, 0, 3931, 3932, 3, 17, 8, 0, 3932, 3933, 3, 35, 17, 0, 3933, 3934, 3, 41, 20, 0, 3934, 3935, 3, 45, 22, 0, 3935, 3936, 3, 41, 20, 0, 3936, 3937, 3, 7, 3, 0, 3937, 3938, 3, 33, 16, 0, 3938, 524, 1, 0, 0, 0, 3939, 3940, 3, 17, 8, 0, 3940, 3941, 3, 35, 17, 0, 3941, 3942, 3, 41, 20, 0, 3942, 3943, 3, 51, 25, 0, 3943, 3944, 3, 7, 3, 0, 3944, 3945, 3, 41, 20, 0, 3945, 3946, 3, 13, 6, 0, 3946, 526, 1, 0, 0, 0, 3947, 3948, 3, 17, 8, 0, 3948, 3949, 3, 35, 17, 0, 3949, 3950, 3, 47, 23, 0, 3950, 3951, 3, 33, 16, 0, 3951, 3952, 3, 13, 6, 0, 3952, 528, 1, 0, 0, 0, 3953, 3954, 3, 17, 8, 0, 3954, 3955, 3, 41, 20, 0, 3955, 3956, 3, 15, 7, 0, 3956, 3957, 3, 15, 7, 0, 3957, 530, 1, 0, 0, 0, 3958, 3959, 3, 17, 8, 0, 3959, 3960, 3, 41, 20, 0, 3960, 3961, 3, 15, 7, 0, 3961, 3962, 3, 15, 7, 0, 3962, 3963, 3, 57, 28, 0, 3963, 3964, 3, 15, 7, 0, 3964, 532, 1, 0, 0, 0, 3965, 3966, 3, 17, 8, 0, 3966, 3967, 3, 41, 20, 0, 3967, 3968, 3, 35, 17, 0, 3968, 3969, 3, 31, 15, 0, 3969, 534, 1, 0, 0, 0, 3970, 3971, 3, 17, 8, 0, 3971, 3972, 3, 47, 23, 0, 3972, 3973, 3, 29, 14, 0, 3973, 3974, 3, 29, 14, 0, 3974, 536, 1, 0, 0, 0, 3975, 3976, 3, 17, 8, 0, 3976, 3977, 3, 47, 23, 0, 3977, 3978, 3, 33, 16, 0, 3978, 3979, 3, 11, 5, 0, 3979, 3980, 3, 45, 22, 0, 3980, 3981, 3, 23, 11, 0, 3981, 3982, 3, 35, 17, 0, 3982, 3983, 3, 33, 16, 0, 3983, 538, 1, 0, 0, 0, 3984, 3985, 3, 17, 8, 0, 3985, 3986, 3, 47, 23, 0, 3986, 3987, 3, 43, 21, 0, 3987, 3988, 3, 23, 11, 0, 3988, 3989, 3, 35, 17, 0, 3989, 3990, 3, 33, 16, 0, 3990, 540, 1, 0, 0, 0, 3991, 3992, 3, 19, 9, 0, 3992, 542, 1, 0, 0, 0, 3993, 3994, 3, 19, 9, 0, 3994, 3995, 3, 15, 7, 0, 3995, 3996, 3, 33, 16, 0, 3996, 3997, 3, 15, 7, 0, 3997, 3998, 3, 41, 20, 0, 3998, 3999, 3, 7, 3, 0, 3999, 4000, 3, 29, 14, 0, 4000, 544, 1, 0, 0, 0, 4001, 4002, 3, 19, 9, 0, 4002, 4003, 3, 15, 7, 0, 4003, 4004, 3, 33, 16, 0, 4004, 4005, 3, 15, 7, 0, 4005, 4006, 3, 41, 20, 0, 4006, 4007, 3, 7, 3, 0, 4007, 4008, 3, 45, 22, 0, 4008, 4009, 3, 15, 7, 0, 4009, 4010, 3, 13, 6, 0, 4010, 546, 1, 0, 0, 0, 4011, 4012, 3, 19, 9, 0, 4012, 4013, 3, 15, 7, 0, 4013, 4014, 3, 45, 22, 0, 4014, 548, 1, 0, 0, 0, 4015, 4016, 3, 19, 9, 0, 4016, 4017, 3, 29, 14, 0, 4017, 4018, 3, 35, 17, 0, 4018, 4019, 3, 9, 4, 0, 4019, 4020, 3, 7, 3, 0, 4020, 4021, 3, 29, 14, 0, 4021, 550, 1, 0, 0, 0, 4022, 4023, 3, 19, 9, 0, 4023, 4024, 3, 35, 17, 0, 4024, 552, 1, 0, 0, 0, 4025, 4026, 3, 19, 9, 0, 4026, 4027, 3, 35, 17, 0, 4027, 4028, 3, 45, 22, 0, 4028, 4029, 3, 35, 17, 0, 4029, 554, 1, 0, 0, 0, 4030, 4031, 3, 19, 9, 0, 4031, 4032, 3, 41, 20, 0, 4032, 4033, 3, 7, 3, 0, 4033, 4034, 3, 33, 16, 0, 4034, 4035, 3, 45, 22, 0, 4035, 556, 1, 0, 0, 0, 4036, 4037, 3, 19, 9, 0, 4037, 4038, 3, 41, 20, 0, 4038, 4039, 3, 7, 3, 0, 4039, 4040, 3, 33, 16, 0, 4040, 4041, 3, 45, 22, 0, 4041, 4042, 3, 15, 7, 0, 4042, 4043, 3, 13, 6, 0, 4043, 558, 1, 0, 0, 0, 4044, 4045, 3, 19, 9, 0, 4045, 4046, 3, 41, 20, 0, 4046, 4047, 3, 15, 7, 0, 4047, 4048, 3, 7, 3, 0, 4048, 4049, 3, 45, 22, 0, 4049, 4050, 3, 15, 7, 0, 4050, 4051, 3, 43, 21, 0, 4051, 4052, 3, 45, 22, 0, 4052, 560, 1, 0, 0, 0, 4053, 4054, 3, 19, 9, 0, 4054, 4055, 3, 41, 20, 0, 4055, 4056, 3, 35, 17, 0, 4056, 4057, 3, 47, 23, 0, 4057, 4058, 3, 37, 18, 0, 4058, 562, 1, 0, 0, 0, 4059, 4060, 3, 19, 9, 0, 4060, 4061, 3, 41, 20, 0, 4061, 4062, 3, 35, 17, 0, 4062, 4063, 3, 47, 23, 0, 4063, 4064, 3, 37, 18, 0, 4064, 4065, 3, 23, 11, 0, 4065, 4066, 3, 33, 16, 0, 4066, 4067, 3, 19, 9, 0, 4067, 564, 1, 0, 0, 0, 4068, 4069, 3, 21, 10, 0, 4069, 4070, 3, 7, 3, 0, 4070, 4071, 3, 33, 16, 0, 4071, 4072, 3, 13, 6, 0, 4072, 4073, 3, 29, 14, 0, 4073, 4074, 3, 15, 7, 0, 4074, 4075, 3, 41, 20, 0, 4075, 566, 1, 0, 0, 0, 4076, 4077, 3, 21, 10, 0, 4077, 4078, 3, 7, 3, 0, 4078, 4079, 3, 49, 24, 0, 4079, 4080, 3, 23, 11, 0, 4080, 4081, 3, 33, 16, 0, 4081, 4082, 3, 19, 9, 0, 4082, 568, 1, 0, 0, 0, 4083, 4084, 3, 21, 10, 0, 4084, 4085, 3, 23, 11, 0, 4085, 4086, 3, 15, 7, 0, 4086, 4087, 3, 41, 20, 0, 4087, 4088, 3, 7, 3, 0, 4088, 4089, 3, 41, 20, 0, 4089, 4090, 3, 11, 5, 0, 4090, 4091, 3, 21, 10, 0, 4091, 4092, 3, 55, 27, 0, 4092, 570, 1, 0, 0, 0, 4093, 4094, 3, 21, 10, 0, 4094, 4095, 3, 35, 17, 0, 4095, 4096, 3, 29, 14, 0, 4096, 4097, 3, 13, 6, 0, 4097, 572, 1, 0, 0, 0, 4098, 4099, 3, 21, 10, 0, 4099, 4100, 3, 35, 17, 0, 4100, 4101, 3, 43, 21, 0, 4101, 4102, 3, 45, 22, 0, 4102, 574, 1, 0, 0, 0, 4103, 4104, 3, 21, 10, 0, 4104, 4105, 3, 35, 17, 0, 4105, 4106, 3, 47, 23, 0, 4106, 4107, 3, 41, 20, 0, 4107, 576, 1, 0, 0, 0, 4108, 4109, 3, 23, 11, 0, 4109, 4110, 3, 13, 6, 0, 4110, 4111, 3, 15, 7, 0, 4111, 4112, 3, 33, 16, 0, 4112, 4113, 3, 45, 22, 0, 4113, 4114, 3, 23, 11, 0, 4114, 4115, 3, 45, 22, 0, 4115, 4116, 3, 55, 27, 0, 4116, 578, 1, 0, 0, 0, 4117, 4118, 3, 23, 11, 0, 4118, 4119, 3, 19, 9, 0, 4119, 4120, 3, 33, 16, 0, 4120, 4121, 3, 35, 17, 0, 4121, 4122, 3, 41, 20, 0, 4122, 4123, 3, 15, 7, 0, 4123, 580, 1, 0, 0, 0, 4124, 4125, 3, 23, 11, 0, 4125, 4126, 3, 29, 14, 0, 4126, 4127, 3, 23, 11, 0, 4127, 4128, 3, 27, 13, 0, 4128, 4129, 3, 15, 7, 0, 4129, 582, 1, 0, 0, 0, 4130, 4131, 3, 23, 11, 0, 4131, 4132, 3, 31, 15, 0, 4132, 4133, 3, 31, 15, 0, 4133, 4134, 3, 15, 7, 0, 4134, 4135, 3, 13, 6, 0, 4135, 4136, 3, 23, 11, 0, 4136, 4137, 3, 7, 3, 0, 4137, 4138, 3, 45, 22, 0, 4138, 4139, 3, 15, 7, 0, 4139, 584, 1, 0, 0, 0, 4140, 4141, 3, 23, 11, 0, 4141, 4142, 3, 31, 15, 0, 4142, 4143, 3, 31, 15, 0, 4143, 4144, 3, 47, 23, 0, 4144, 4145, 3, 45, 22, 0, 4145, 4146, 3, 7, 3, 0, 4146, 4147, 3, 9, 4, 0, 4147, 4148, 3, 29, 14, 0, 4148, 4149, 3, 15, 7, 0, 4149, 586, 1, 0, 0, 0, 4150, 4151, 3, 23, 11, 0, 4151, 4152, 3, 31, 15, 0, 4152, 4153, 3, 37, 18, 0, 4153, 4154, 3, 29, 14, 0, 4154, 4155, 3, 15, 7, 0, 4155, 4156, 3, 31, 15, 0, 4156, 4157, 3, 15, 7, 0, 4157, 4158, 3, 33, 16, 0, 4158, 4159, 3, 45, 22, 0, 4159, 4160, 3, 7, 3, 0, 4160, 4161, 3, 45, 22, 0, 4161, 4162, 3, 23, 11, 0, 4162, 4163, 3, 35, 17, 0, 4163, 4164, 3, 33, 16, 0, 4164, 588, 1, 0, 0, 0, 4165, 4166, 3, 23, 11, 0, 4166, 4167, 3, 31, 15, 0, 4167, 4168, 3, 37, 18, 0, 4168, 4169, 3, 29, 14, 0, 4169, 4170, 3, 23, 11, 0, 4170, 4171, 3, 11, 5, 0, 4171, 4172, 3, 23, 11, 0, 4172, 4173, 3, 45, 22, 0, 4173, 590, 1, 0, 0, 0, 4174, 4175, 3, 23, 11, 0, 4175, 4176, 3, 33, 16, 0, 4176, 592, 1, 0, 0, 0, 4177, 4178, 3, 23, 11, 0, 4178, 4179, 3, 33, 16, 0, 4179, 4180, 3, 11, 5, 0, 4180, 4181, 3, 29, 14, 0, 4181, 4182, 3, 47, 23, 0, 4182, 4183, 3, 13, 6, 0, 4183, 4184, 3, 23, 11, 0, 4184, 4185, 3, 33, 16, 0, 4185, 4186, 3, 19, 9, 0, 4186, 594, 1, 0, 0, 0, 4187, 4188, 3, 23, 11, 0, 4188, 4189, 3, 33, 16, 0, 4189, 4190, 3, 11, 5, 0, 4190, 4191, 3, 41, 20, 0, 4191, 4192, 3, 15, 7, 0, 4192, 4193, 3, 31, 15, 0, 4193, 4194, 3, 15, 7, 0, 4194, 4195, 3, 33, 16, 0, 4195, 4196, 3, 45, 22, 0, 4196, 596, 1, 0, 0, 0, 4197, 4198, 3, 23, 11, 0, 4198, 4199, 3, 33, 16, 0, 4199, 4200, 3, 13, 6, 0, 4200, 4201, 3, 15, 7, 0, 4201, 4202, 3, 53, 26, 0, 4202, 598, 1, 0, 0, 0, 4203, 4204, 3, 23, 11, 0, 4204, 4205, 3, 33, 16, 0, 4205, 4206, 3, 13, 6, 0, 4206, 4207, 3, 23, 11, 0, 4207, 4208, 3, 11, 5, 0, 4208, 4209, 3, 7, 3, 0, 4209, 4210, 3, 45, 22, 0, 4210, 4211, 3, 35, 17, 0, 4211, 4212, 3, 41, 20, 0, 4212, 600, 1, 0, 0, 0, 4213, 4214, 3, 23, 11, 0, 4214, 4215, 3, 33, 16, 0, 4215, 4216, 3, 17, 8, 0, 4216, 4217, 3, 23, 11, 0, 4217, 4218, 3, 53, 26, 0, 4218, 602, 1, 0, 0, 0, 4219, 4220, 3, 23, 11, 0, 4220, 4221, 3, 33, 16, 0, 4221, 4222, 3, 21, 10, 0, 4222, 4223, 3, 15, 7, 0, 4223, 4224, 3, 41, 20, 0, 4224, 4225, 3, 23, 11, 0, 4225, 4226, 3, 45, 22, 0, 4226, 4227, 3, 43, 21, 0, 4227, 604, 1, 0, 0, 0, 4228, 4229, 3, 23, 11, 0, 4229, 4230, 3, 33, 16, 0, 4230, 4231, 3, 23, 11, 0, 4231, 4232, 3, 45, 22, 0, 4232, 4233, 3, 23, 11, 0, 4233, 4234, 3, 7, 3, 0, 4234, 4235, 3, 29, 14, 0, 4235, 4236, 3, 23, 11, 0, 4236, 4237, 3, 57, 28, 0, 4237, 4238, 3, 15, 7, 0, 4238, 606, 1, 0, 0, 0, 4239, 4240, 3, 23, 11, 0, 4240, 4241, 3, 33, 16, 0, 4241, 4242, 3, 23, 11, 0, 4242, 4243, 3, 45, 22, 0, 4243, 4244, 3, 23, 11, 0, 4244, 4245, 3, 7, 3, 0, 4245, 4246, 3, 29, 14, 0, 4246, 4247, 3, 29, 14, 0, 4247, 4248, 3, 55, 27, 0, 4248, 608, 1, 0, 0, 0, 4249, 4250, 3, 23, 11, 0, 4250, 4251, 3, 33, 16, 0, 4251, 4252, 3, 33, 16, 0, 4252, 4253, 3, 15, 7, 0, 4253, 4254, 3, 41, 20, 0, 4254, 610, 1, 0, 0, 0, 4255, 4256, 3, 23, 11, 0, 4256, 4257, 3, 33, 16, 0, 4257, 4258, 3, 35, 17, 0, 4258, 4259, 3, 47, 23, 0, 4259, 4260, 3, 45, 22, 0, 4260, 612, 1, 0, 0, 0, 4261, 4262, 3, 23, 11, 0, 4262, 4263, 3, 33, 16, 0, 4263, 4264, 3, 37, 18, 0, 4264, 4265, 3, 47, 23, 0, 4265, 4266, 3, 45, 22, 0, 4266, 614, 1, 0, 0, 0, 4267, 4268, 3, 23, 11, 0, 4268, 4269, 3, 33, 16, 0, 4269, 4270, 3, 43, 21, 0, 4270, 4271, 3, 15, 7, 0, 4271, 4272, 3, 33, 16, 0, 4272, 4273, 3, 43, 21, 0, 4273, 4274, 3, 23, 11, 0, 4274, 4275, 3, 45, 22, 0, 4275, 4276, 3, 23, 11, 0, 4276, 4277, 3, 49, 24, 0, 4277, 4278, 3, 15, 7, 0, 4278, 616, 1, 0, 0, 0, 4279, 4280, 3, 23, 11, 0, 4280, 4281, 3, 33, 16, 0, 4281, 4282, 3, 43, 21, 0, 4282, 4283, 3, 15, 7, 0, 4283, 4284, 3, 41, 20, 0, 4284, 4285, 3, 45, 22, 0, 4285, 618, 1, 0, 0, 0, 4286, 4287, 3, 23, 11, 0, 4287, 4288, 3, 33, 16, 0, 4288, 4289, 3, 43, 21, 0, 4289, 4290, 3, 45, 22, 0, 4290, 4291, 3, 7, 3, 0, 4291, 4292, 3, 33, 16, 0, 4292, 4293, 3, 11, 5, 0, 4293, 4294, 3, 15, 7, 0, 4294, 620, 1, 0, 0, 0, 4295, 4296, 3, 23, 11, 0, 4296, 4297, 3, 33, 16, 0, 4297, 4298, 3, 43, 21, 0, 4298, 4299, 3, 45, 22, 0, 4299, 4300, 3, 7, 3, 0, 4300, 4301, 3, 33, 16, 0, 4301, 4302, 3, 45, 22, 0, 4302, 4303, 3, 23, 11, 0, 4303, 4304, 3, 7, 3, 0, 4304, 4305, 3, 9, 4, 0, 4305, 4306, 3, 29, 14, 0, 4306, 4307, 3, 15, 7, 0, 4307, 622, 1, 0, 0, 0, 4308, 4309, 3, 23, 11, 0, 4309, 4310, 3, 33, 16, 0, 4310, 4311, 3, 43, 21, 0, 4311, 4312, 3, 45, 22, 0, 4312, 4313, 3, 15, 7, 0, 4313, 4314, 3, 7, 3, 0, 4314, 4315, 3, 13, 6, 0, 4315, 624, 1, 0, 0, 0, 4316, 4317, 3, 23, 11, 0, 4317, 4318, 3, 33, 16, 0, 4318, 4319, 3, 45, 22, 0, 4319, 626, 1, 0, 0, 0, 4320, 4321, 3, 23, 11, 0, 4321, 4322, 3, 33, 16, 0, 4322, 4323, 3, 45, 22, 0, 4323, 4324, 3, 15, 7, 0, 4324, 4325, 3, 19, 9, 0, 4325, 4326, 3, 15, 7, 0, 4326, 4327, 3, 41, 20, 0, 4327, 628, 1, 0, 0, 0, 4328, 4329, 3, 23, 11, 0, 4329, 4330, 3, 33, 16, 0, 4330, 4331, 3, 45, 22, 0, 4331, 4332, 3, 15, 7, 0, 4332, 4333, 3, 41, 20, 0, 4333, 4334, 3, 43, 21, 0, 4334, 4335, 3, 15, 7, 0, 4335, 4336, 3, 11, 5, 0, 4336, 4337, 3, 45, 22, 0, 4337, 630, 1, 0, 0, 0, 4338, 4339, 3, 23, 11, 0, 4339, 4340, 3, 33, 16, 0, 4340, 4341, 3, 45, 22, 0, 4341, 4342, 3, 15, 7, 0, 4342, 4343, 3, 41, 20, 0, 4343, 4344, 3, 43, 21, 0, 4344, 4345, 3, 15, 7, 0, 4345, 4346, 3, 11, 5, 0, 4346, 4347, 3, 45, 22, 0, 4347, 4348, 3, 23, 11, 0, 4348, 4349, 3, 35, 17, 0, 4349, 4350, 3, 33, 16, 0, 4350, 632, 1, 0, 0, 0, 4351, 4352, 3, 23, 11, 0, 4352, 4353, 3, 33, 16, 0, 4353, 4354, 3, 45, 22, 0, 4354, 4355, 3, 15, 7, 0, 4355, 4356, 3, 41, 20, 0, 4356, 4357, 3, 49, 24, 0, 4357, 4358, 3, 7, 3, 0, 4358, 4359, 3, 29, 14, 0, 4359, 634, 1, 0, 0, 0, 4360, 4361, 3, 23, 11, 0, 4361, 4362, 3, 33, 16, 0, 4362, 4363, 3, 45, 22, 0, 4363, 4364, 3, 35, 17, 0, 4364, 636, 1, 0, 0, 0, 4365, 4366, 3, 23, 11, 0, 4366, 4367, 3, 33, 16, 0, 4367, 4368, 3, 49, 24, 0, 4368, 4369, 3, 35, 17, 0, 4369, 4370, 3, 27, 13, 0, 4370, 4371, 3, 15, 7, 0, 4371, 4372, 3, 41, 20, 0, 4372, 638, 1, 0, 0, 0, 4373, 4374, 3, 23, 11, 0, 4374, 4375, 3, 43, 21, 0, 4375, 640, 1, 0, 0, 0, 4376, 4377, 3, 23, 11, 0, 4377, 4378, 3, 43, 21, 0, 4378, 4379, 3, 35, 17, 0, 4379, 4380, 3, 29, 14, 0, 4380, 4381, 3, 7, 3, 0, 4381, 4382, 3, 45, 22, 0, 4382, 4383, 3, 23, 11, 0, 4383, 4384, 3, 35, 17, 0, 4384, 4385, 3, 33, 16, 0, 4385, 642, 1, 0, 0, 0, 4386, 4387, 3, 23, 11, 0, 4387, 4388, 3, 45, 22, 0, 4388, 4389, 3, 15, 7, 0, 4389, 4390, 3, 41, 20, 0, 4390, 4391, 3, 7, 3, 0, 4391, 4392, 3, 45, 22, 0, 4392, 4393, 3, 15, 7, 0, 4393, 644, 1, 0, 0, 0, 4394, 4395, 3, 25, 12, 0, 4395, 4396, 3, 35, 17, 0, 4396, 4397, 3, 23, 11, 0, 4397, 4398, 3, 33, 16, 0, 4398, 646, 1, 0, 0, 0, 4399, 4400, 3, 27, 13, 0, 4400, 648, 1, 0, 0, 0, 4401, 4402, 3, 27, 13, 0, 4402, 4403, 3, 15, 7, 0, 4403, 4404, 3, 55, 27, 0, 4404, 650, 1, 0, 0, 0, 4405, 4406, 3, 27, 13, 0, 4406, 4407, 3, 15, 7, 0, 4407, 4408, 3, 55, 27, 0, 4408, 4409, 5, 95, 0, 0, 4409, 4410, 3, 31, 15, 0, 4410, 4411, 3, 15, 7, 0, 4411, 4412, 3, 31, 15, 0, 4412, 4413, 3, 9, 4, 0, 4413, 4414, 3, 15, 7, 0, 4414, 4415, 3, 41, 20, 0, 4415, 652, 1, 0, 0, 0, 4416, 4417, 3, 27, 13, 0, 4417, 4418, 3, 15, 7, 0, 4418, 4419, 3, 55, 27, 0, 4419, 4420, 5, 95, 0, 0, 4420, 4421, 3, 45, 22, 0, 4421, 4422, 3, 55, 27, 0, 4422, 4423, 3, 37, 18, 0, 4423, 4424, 3, 15, 7, 0, 4424, 654, 1, 0, 0, 0, 4425, 4426, 3, 29, 14, 0, 4426, 4427, 3, 7, 3, 0, 4427, 4428, 3, 9, 4, 0, 4428, 4429, 3, 15, 7, 0, 4429, 4430, 3, 29, 14, 0, 4430, 656, 1, 0, 0, 0, 4431, 4432, 3, 29, 14, 0, 4432, 4433, 3, 7, 3, 0, 4433, 4434, 3, 33, 16, 0, 4434, 4435, 3, 11, 5, 0, 4435, 4436, 3, 35, 17, 0, 4436, 4437, 3, 31, 15, 0, 4437, 4438, 3, 37, 18, 0, 4438, 4439, 3, 23, 11, 0, 4439, 4440, 3, 29, 14, 0, 4440, 4441, 3, 15, 7, 0, 4441, 4442, 3, 41, 20, 0, 4442, 658, 1, 0, 0, 0, 4443, 4444, 3, 29, 14, 0, 4444, 4445, 3, 7, 3, 0, 4445, 4446, 3, 33, 16, 0, 4446, 4447, 3, 19, 9, 0, 4447, 4448, 3, 47, 23, 0, 4448, 4449, 3, 7, 3, 0, 4449, 4450, 3, 19, 9, 0, 4450, 4451, 3, 15, 7, 0, 4451, 660, 1, 0, 0, 0, 4452, 4453, 3, 29, 14, 0, 4453, 4454, 3, 7, 3, 0, 4454, 4455, 3, 41, 20, 0, 4455, 4456, 3, 19, 9, 0, 4456, 4457, 3, 15, 7, 0, 4457, 662, 1, 0, 0, 0, 4458, 4459, 3, 29, 14, 0, 4459, 4460, 3, 7, 3, 0, 4460, 4461, 3, 43, 21, 0, 4461, 4462, 3, 45, 22, 0, 4462, 664, 1, 0, 0, 0, 4463, 4464, 3, 29, 14, 0, 4464, 4465, 3, 7, 3, 0, 4465, 4466, 3, 45, 22, 0, 4466, 4467, 3, 15, 7, 0, 4467, 4468, 3, 41, 20, 0, 4468, 4469, 3, 7, 3, 0, 4469, 4470, 3, 29, 14, 0, 4470, 666, 1, 0, 0, 0, 4471, 4472, 3, 29, 14, 0, 4472, 4473, 3, 15, 7, 0, 4473, 4474, 3, 7, 3, 0, 4474, 4475, 3, 13, 6, 0, 4475, 4476, 3, 23, 11, 0, 4476, 4477, 3, 33, 16, 0, 4477, 4478, 3, 19, 9, 0, 4478, 668, 1, 0, 0, 0, 4479, 4480, 3, 29, 14, 0, 4480, 4481, 3, 15, 7, 0, 4481, 4482, 3, 7, 3, 0, 4482, 4483, 3, 43, 21, 0, 4483, 4484, 3, 45, 22, 0, 4484, 670, 1, 0, 0, 0, 4485, 4486, 3, 29, 14, 0, 4486, 4487, 3, 15, 7, 0, 4487, 4488, 3, 17, 8, 0, 4488, 4489, 3, 45, 22, 0, 4489, 672, 1, 0, 0, 0, 4490, 4491, 3, 29, 14, 0, 4491, 4492, 3, 15, 7, 0, 4492, 4493, 3, 33, 16, 0, 4493, 4494, 3, 19, 9, 0, 4494, 4495, 3, 45, 22, 0, 4495, 4496, 3, 21, 10, 0, 4496, 674, 1, 0, 0, 0, 4497, 4498, 3, 29, 14, 0, 4498, 4499, 3, 15, 7, 0, 4499, 4500, 3, 43, 21, 0, 4500, 4501, 3, 43, 21, 0, 4501, 676, 1, 0, 0, 0, 4502, 4503, 3, 29, 14, 0, 4503, 4504, 3, 15, 7, 0, 4504, 4505, 3, 49, 24, 0, 4505, 4506, 3, 15, 7, 0, 4506, 4507, 3, 29, 14, 0, 4507, 678, 1, 0, 0, 0, 4508, 4509, 3, 29, 14, 0, 4509, 4510, 3, 23, 11, 0, 4510, 4511, 3, 27, 13, 0, 4511, 4512, 3, 15, 7, 0, 4512, 680, 1, 0, 0, 0, 4513, 4514, 3, 29, 14, 0, 4514, 4515, 3, 23, 11, 0, 4515, 4516, 3, 31, 15, 0, 4516, 4517, 3, 23, 11, 0, 4517, 4518, 3, 45, 22, 0, 4518, 682, 1, 0, 0, 0, 4519, 4520, 3, 29, 14, 0, 4520, 4521, 3, 23, 11, 0, 4521, 4522, 3, 43, 21, 0, 4522, 4523, 3, 45, 22, 0, 4523, 4524, 3, 15, 7, 0, 4524, 4525, 3, 33, 16, 0, 4525, 684, 1, 0, 0, 0, 4526, 4527, 3, 29, 14, 0, 4527, 4528, 3, 33, 16, 0, 4528, 686, 1, 0, 0, 0, 4529, 4530, 3, 29, 14, 0, 4530, 4531, 3, 35, 17, 0, 4531, 4532, 3, 7, 3, 0, 4532, 4533, 3, 13, 6, 0, 4533, 688, 1, 0, 0, 0, 4534, 4535, 3, 29, 14, 0, 4535, 4536, 3, 35, 17, 0, 4536, 4537, 3, 11, 5, 0, 4537, 4538, 3, 7, 3, 0, 4538, 4539, 3, 29, 14, 0, 4539, 690, 1, 0, 0, 0, 4540, 4541, 3, 29, 14, 0, 4541, 4542, 3, 35, 17, 0, 4542, 4543, 3, 11, 5, 0, 4543, 4544, 3, 7, 3, 0, 4544, 4545, 3, 29, 14, 0, 4545, 4546, 3, 45, 22, 0, 4546, 4547, 3, 23, 11, 0, 4547, 4548, 3, 31, 15, 0, 4548, 4549, 3, 15, 7, 0, 4549, 692, 1, 0, 0, 0, 4550, 4551, 3, 29, 14, 0, 4551, 4552, 3, 35, 17, 0, 4552, 4553, 3, 11, 5, 0, 4553, 4554, 3, 7, 3, 0, 4554, 4555, 3, 29, 14, 0, 4555, 4556, 3, 45, 22, 0, 4556, 4557, 3, 23, 11, 0, 4557, 4558, 3, 31, 15, 0, 4558, 4559, 3, 15, 7, 0, 4559, 4560, 3, 43, 21, 0, 4560, 4561, 3, 45, 22, 0, 4561, 4562, 3, 7, 3, 0, 4562, 4563, 3, 31, 15, 0, 4563, 4564, 3, 37, 18, 0, 4564, 694, 1, 0, 0, 0, 4565, 4566, 3, 29, 14, 0, 4566, 4567, 3, 35, 17, 0, 4567, 4568, 3, 11, 5, 0, 4568, 4569, 3, 7, 3, 0, 4569, 4570, 3, 45, 22, 0, 4570, 4571, 3, 23, 11, 0, 4571, 4572, 3, 35, 17, 0, 4572, 4573, 3, 33, 16, 0, 4573, 696, 1, 0, 0, 0, 4574, 4575, 3, 29, 14, 0, 4575, 4576, 3, 35, 17, 0, 4576, 4577, 3, 11, 5, 0, 4577, 4578, 3, 7, 3, 0, 4578, 4579, 3, 45, 22, 0, 4579, 4580, 3, 35, 17, 0, 4580, 4581, 3, 41, 20, 0, 4581, 698, 1, 0, 0, 0, 4582, 4583, 3, 29, 14, 0, 4583, 4584, 3, 35, 17, 0, 4584, 4585, 3, 11, 5, 0, 4585, 4586, 3, 27, 13, 0, 4586, 700, 1, 0, 0, 0, 4587, 4588, 3, 29, 14, 0, 4588, 4589, 3, 35, 17, 0, 4589, 4590, 3, 11, 5, 0, 4590, 4591, 3, 27, 13, 0, 4591, 4592, 3, 15, 7, 0, 4592, 4593, 3, 13, 6, 0, 4593, 702, 1, 0, 0, 0, 4594, 4595, 3, 29, 14, 0, 4595, 4596, 3, 35, 17, 0, 4596, 4597, 3, 51, 25, 0, 4597, 4598, 3, 15, 7, 0, 4598, 4599, 3, 41, 20, 0, 4599, 704, 1, 0, 0, 0, 4600, 4601, 3, 31, 15, 0, 4601, 706, 1, 0, 0, 0, 4602, 4603, 3, 31, 15, 0, 4603, 4604, 3, 7, 3, 0, 4604, 4605, 3, 23, 11, 0, 4605, 4606, 3, 33, 16, 0, 4606, 708, 1, 0, 0, 0, 4607, 4608, 3, 31, 15, 0, 4608, 4609, 3, 7, 3, 0, 4609, 4610, 3, 37, 18, 0, 4610, 710, 1, 0, 0, 0, 4611, 4612, 3, 31, 15, 0, 4612, 4613, 3, 7, 3, 0, 4613, 4614, 3, 37, 18, 0, 4614, 4615, 3, 37, 18, 0, 4615, 4616, 3, 23, 11, 0, 4616, 4617, 3, 33, 16, 0, 4617, 4618, 3, 19, 9, 0, 4618, 712, 1, 0, 0, 0, 4619, 4620, 3, 31, 15, 0, 4620, 4621, 3, 7, 3, 0, 4621, 4622, 3, 45, 22, 0, 4622, 4623, 3, 11, 5, 0, 4623, 4624, 3, 21, 10, 0, 4624, 714, 1, 0, 0, 0, 4625, 4626, 3, 31, 15, 0, 4626, 4627, 3, 7, 3, 0, 4627, 4628, 3, 45, 22, 0, 4628, 4629, 3, 11, 5, 0, 4629, 4630, 3, 21, 10, 0, 4630, 4631, 5, 95, 0, 0, 4631, 4632, 3, 43, 21, 0, 4632, 4633, 3, 23, 11, 0, 4633, 4634, 3, 31, 15, 0, 4634, 4635, 3, 37, 18, 0, 4635, 4636, 3, 29, 14, 0, 4636, 4637, 3, 15, 7, 0, 4637, 716, 1, 0, 0, 0, 4638, 4639, 3, 31, 15, 0, 4639, 4640, 3, 7, 3, 0, 4640, 4641, 3, 45, 22, 0, 4641, 4642, 3, 11, 5, 0, 4642, 4643, 3, 21, 10, 0, 4643, 4644, 3, 15, 7, 0, 4644, 4645, 3, 13, 6, 0, 4645, 718, 1, 0, 0, 0, 4646, 4647, 3, 31, 15, 0, 4647, 4648, 3, 7, 3, 0, 4648, 4649, 3, 53, 26, 0, 4649, 720, 1, 0, 0, 0, 4650, 4651, 3, 31, 15, 0, 4651, 4652, 3, 7, 3, 0, 4652, 4653, 3, 53, 26, 0, 4653, 4654, 3, 49, 24, 0, 4654, 4655, 3, 7, 3, 0, 4655, 4656, 3, 29, 14, 0, 4656, 4657, 3, 47, 23, 0, 4657, 4658, 3, 15, 7, 0, 4658, 722, 1, 0, 0, 0, 4659, 4660, 3, 31, 15, 0, 4660, 4661, 3, 15, 7, 0, 4661, 4662, 3, 31, 15, 0, 4662, 4663, 3, 9, 4, 0, 4663, 4664, 3, 15, 7, 0, 4664, 4665, 3, 41, 20, 0, 4665, 724, 1, 0, 0, 0, 4666, 4667, 3, 31, 15, 0, 4667, 4668, 3, 15, 7, 0, 4668, 4669, 3, 41, 20, 0, 4669, 4670, 3, 19, 9, 0, 4670, 4671, 3, 15, 7, 0, 4671, 726, 1, 0, 0, 0, 4672, 4673, 3, 31, 15, 0, 4673, 4674, 3, 15, 7, 0, 4674, 4675, 3, 43, 21, 0, 4675, 4676, 3, 43, 21, 0, 4676, 4677, 3, 7, 3, 0, 4677, 4678, 3, 19, 9, 0, 4678, 4679, 3, 15, 7, 0, 4679, 4680, 5, 95, 0, 0, 4680, 4681, 3, 29, 14, 0, 4681, 4682, 3, 15, 7, 0, 4682, 4683, 3, 33, 16, 0, 4683, 4684, 3, 19, 9, 0, 4684, 4685, 3, 45, 22, 0, 4685, 4686, 3, 21, 10, 0, 4686, 728, 1, 0, 0, 0, 4687, 4688, 3, 31, 15, 0, 4688, 4689, 3, 15, 7, 0, 4689, 4690, 3, 43, 21, 0, 4690, 4691, 3, 43, 21, 0, 4691, 4692, 3, 7, 3, 0, 4692, 4693, 3, 19, 9, 0, 4693, 4694, 3, 15, 7, 0, 4694, 4695, 5, 95, 0, 0, 4695, 4696, 3, 35, 17, 0, 4696, 4697, 3, 11, 5, 0, 4697, 4698, 3, 45, 22, 0, 4698, 4699, 3, 15, 7, 0, 4699, 4700, 3, 45, 22, 0, 4700, 4701, 5, 95, 0, 0, 4701, 4702, 3, 29, 14, 0, 4702, 4703, 3, 15, 7, 0, 4703, 4704, 3, 33, 16, 0, 4704, 4705, 3, 19, 9, 0, 4705, 4706, 3, 45, 22, 0, 4706, 4707, 3, 21, 10, 0, 4707, 730, 1, 0, 0, 0, 4708, 4709, 3, 31, 15, 0, 4709, 4710, 3, 15, 7, 0, 4710, 4711, 3, 43, 21, 0, 4711, 4712, 3, 43, 21, 0, 4712, 4713, 3, 7, 3, 0, 4713, 4714, 3, 19, 9, 0, 4714, 4715, 3, 15, 7, 0, 4715, 4716, 5, 95, 0, 0, 4716, 4717, 3, 45, 22, 0, 4717, 4718, 3, 15, 7, 0, 4718, 4719, 3, 53, 26, 0, 4719, 4720, 3, 45, 22, 0, 4720, 732, 1, 0, 0, 0, 4721, 4722, 3, 31, 15, 0, 4722, 4723, 3, 15, 7, 0, 4723, 4724, 3, 45, 22, 0, 4724, 4725, 3, 21, 10, 0, 4725, 4726, 3, 35, 17, 0, 4726, 4727, 3, 13, 6, 0, 4727, 734, 1, 0, 0, 0, 4728, 4729, 3, 31, 15, 0, 4729, 4730, 3, 23, 11, 0, 4730, 4731, 3, 33, 16, 0, 4731, 736, 1, 0, 0, 0, 4732, 4733, 3, 31, 15, 0, 4733, 4734, 3, 23, 11, 0, 4734, 4735, 3, 33, 16, 0, 4735, 4736, 3, 47, 23, 0, 4736, 4737, 3, 45, 22, 0, 4737, 4738, 3, 15, 7, 0, 4738, 738, 1, 0, 0, 0, 4739, 4740, 3, 31, 15, 0, 4740, 4741, 3, 23, 11, 0, 4741, 4742, 3, 33, 16, 0, 4742, 4743, 3, 49, 24, 0, 4743, 4744, 3, 7, 3, 0, 4744, 4745, 3, 29, 14, 0, 4745, 4746, 3, 47, 23, 0, 4746, 4747, 3, 15, 7, 0, 4747, 740, 1, 0, 0, 0, 4748, 4749, 3, 31, 15, 0, 4749, 4750, 3, 35, 17, 0, 4750, 4751, 3, 13, 6, 0, 4751, 742, 1, 0, 0, 0, 4752, 4753, 3, 31, 15, 0, 4753, 4754, 3, 35, 17, 0, 4754, 4755, 3, 13, 6, 0, 4755, 4756, 3, 15, 7, 0, 4756, 744, 1, 0, 0, 0, 4757, 4758, 3, 31, 15, 0, 4758, 4759, 3, 35, 17, 0, 4759, 4760, 3, 13, 6, 0, 4760, 4761, 3, 23, 11, 0, 4761, 4762, 3, 17, 8, 0, 4762, 4763, 3, 23, 11, 0, 4763, 4764, 3, 15, 7, 0, 4764, 4765, 3, 43, 21, 0, 4765, 746, 1, 0, 0, 0, 4766, 4767, 3, 31, 15, 0, 4767, 4768, 3, 35, 17, 0, 4768, 4769, 3, 13, 6, 0, 4769, 4770, 3, 23, 11, 0, 4770, 4771, 3, 17, 8, 0, 4771, 4772, 3, 55, 27, 0, 4772, 748, 1, 0, 0, 0, 4773, 4774, 3, 31, 15, 0, 4774, 4775, 3, 35, 17, 0, 4775, 4776, 3, 13, 6, 0, 4776, 4777, 3, 47, 23, 0, 4777, 4778, 3, 29, 14, 0, 4778, 4779, 3, 15, 7, 0, 4779, 750, 1, 0, 0, 0, 4780, 4781, 3, 31, 15, 0, 4781, 4782, 3, 35, 17, 0, 4782, 4783, 3, 33, 16, 0, 4783, 4784, 3, 45, 22, 0, 4784, 4785, 3, 21, 10, 0, 4785, 752, 1, 0, 0, 0, 4786, 4787, 3, 31, 15, 0, 4787, 4788, 3, 35, 17, 0, 4788, 4789, 3, 41, 20, 0, 4789, 4790, 3, 15, 7, 0, 4790, 754, 1, 0, 0, 0, 4791, 4792, 3, 31, 15, 0, 4792, 4793, 3, 35, 17, 0, 4793, 4794, 3, 49, 24, 0, 4794, 4795, 3, 15, 7, 0, 4795, 756, 1, 0, 0, 0, 4796, 4797, 3, 31, 15, 0, 4797, 4798, 3, 47, 23, 0, 4798, 4799, 3, 29, 14, 0, 4799, 4800, 3, 45, 22, 0, 4800, 4801, 3, 23, 11, 0, 4801, 4802, 3, 43, 21, 0, 4802, 4803, 3, 15, 7, 0, 4803, 4804, 3, 45, 22, 0, 4804, 758, 1, 0, 0, 0, 4805, 4806, 3, 31, 15, 0, 4806, 4807, 3, 47, 23, 0, 4807, 4808, 3, 31, 15, 0, 4808, 4809, 3, 37, 18, 0, 4809, 4810, 3, 43, 21, 0, 4810, 760, 1, 0, 0, 0, 4811, 4812, 3, 33, 16, 0, 4812, 4813, 3, 7, 3, 0, 4813, 4814, 3, 31, 15, 0, 4814, 4815, 3, 15, 7, 0, 4815, 762, 1, 0, 0, 0, 4816, 4817, 3, 33, 16, 0, 4817, 4818, 3, 7, 3, 0, 4818, 4819, 3, 31, 15, 0, 4819, 4820, 3, 15, 7, 0, 4820, 4821, 3, 43, 21, 0, 4821, 764, 1, 0, 0, 0, 4822, 4823, 3, 33, 16, 0, 4823, 4824, 3, 7, 3, 0, 4824, 4825, 3, 45, 22, 0, 4825, 4826, 3, 23, 11, 0, 4826, 4827, 3, 35, 17, 0, 4827, 4828, 3, 33, 16, 0, 4828, 4829, 3, 7, 3, 0, 4829, 4830, 3, 29, 14, 0, 4830, 766, 1, 0, 0, 0, 4831, 4832, 3, 33, 16, 0, 4832, 4833, 3, 7, 3, 0, 4833, 4834, 3, 45, 22, 0, 4834, 4835, 3, 47, 23, 0, 4835, 4836, 3, 41, 20, 0, 4836, 4837, 3, 7, 3, 0, 4837, 4838, 3, 29, 14, 0, 4838, 768, 1, 0, 0, 0, 4839, 4840, 3, 33, 16, 0, 4840, 4841, 3, 11, 5, 0, 4841, 4842, 3, 21, 10, 0, 4842, 4843, 3, 7, 3, 0, 4843, 4844, 3, 41, 20, 0, 4844, 770, 1, 0, 0, 0, 4845, 4846, 3, 33, 16, 0, 4846, 4847, 3, 11, 5, 0, 4847, 4848, 3, 29, 14, 0, 4848, 4849, 3, 35, 17, 0, 4849, 4850, 3, 9, 4, 0, 4850, 772, 1, 0, 0, 0, 4851, 4852, 3, 33, 16, 0, 4852, 4853, 3, 15, 7, 0, 4853, 4854, 3, 43, 21, 0, 4854, 4855, 3, 45, 22, 0, 4855, 4856, 3, 23, 11, 0, 4856, 4857, 3, 33, 16, 0, 4857, 4858, 3, 19, 9, 0, 4858, 774, 1, 0, 0, 0, 4859, 4860, 3, 33, 16, 0, 4860, 4861, 3, 15, 7, 0, 4861, 4862, 3, 51, 25, 0, 4862, 776, 1, 0, 0, 0, 4863, 4864, 3, 33, 16, 0, 4864, 4865, 3, 15, 7, 0, 4865, 4866, 3, 53, 26, 0, 4866, 4867, 3, 45, 22, 0, 4867, 778, 1, 0, 0, 0, 4868, 4869, 3, 33, 16, 0, 4869, 4870, 3, 35, 17, 0, 4870, 780, 1, 0, 0, 0, 4871, 4872, 3, 33, 16, 0, 4872, 4873, 3, 35, 17, 0, 4873, 4874, 3, 11, 5, 0, 4874, 4875, 3, 41, 20, 0, 4875, 4876, 3, 15, 7, 0, 4876, 4877, 3, 7, 3, 0, 4877, 4878, 3, 45, 22, 0, 4878, 4879, 3, 15, 7, 0, 4879, 4880, 3, 13, 6, 0, 4880, 4881, 3, 9, 4, 0, 4881, 782, 1, 0, 0, 0, 4882, 4883, 3, 33, 16, 0, 4883, 4884, 3, 35, 17, 0, 4884, 4885, 3, 11, 5, 0, 4885, 4886, 3, 41, 20, 0, 4886, 4887, 3, 15, 7, 0, 4887, 4888, 3, 7, 3, 0, 4888, 4889, 3, 45, 22, 0, 4889, 4890, 3, 15, 7, 0, 4890, 4891, 3, 47, 23, 0, 4891, 4892, 3, 43, 21, 0, 4892, 4893, 3, 15, 7, 0, 4893, 4894, 3, 41, 20, 0, 4894, 784, 1, 0, 0, 0, 4895, 4896, 3, 33, 16, 0, 4896, 4897, 3, 35, 17, 0, 4897, 4898, 3, 33, 16, 0, 4898, 4899, 3, 15, 7, 0, 4899, 786, 1, 0, 0, 0, 4900, 4901, 3, 33, 16, 0, 4901, 4902, 3, 35, 17, 0, 4902, 4903, 3, 41, 20, 0, 4903, 4904, 3, 31, 15, 0, 4904, 4905, 3, 7, 3, 0, 4905, 4906, 3, 29, 14, 0, 4906, 4907, 3, 23, 11, 0, 4907, 4908, 3, 57, 28, 0, 4908, 4909, 3, 15, 7, 0, 4909, 788, 1, 0, 0, 0, 4910, 4911, 3, 33, 16, 0, 4911, 4912, 3, 35, 17, 0, 4912, 4913, 3, 41, 20, 0, 4913, 4914, 3, 31, 15, 0, 4914, 4915, 3, 7, 3, 0, 4915, 4916, 3, 29, 14, 0, 4916, 4917, 3, 23, 11, 0, 4917, 4918, 3, 57, 28, 0, 4918, 4919, 3, 15, 7, 0, 4919, 4920, 3, 13, 6, 0, 4920, 790, 1, 0, 0, 0, 4921, 4922, 3, 33, 16, 0, 4922, 4923, 3, 35, 17, 0, 4923, 4924, 3, 45, 22, 0, 4924, 792, 1, 0, 0, 0, 4925, 4926, 3, 33, 16, 0, 4926, 4927, 3, 35, 17, 0, 4927, 4928, 3, 45, 22, 0, 4928, 4929, 3, 21, 10, 0, 4929, 4930, 3, 23, 11, 0, 4930, 4931, 3, 33, 16, 0, 4931, 4932, 3, 19, 9, 0, 4932, 794, 1, 0, 0, 0, 4933, 4934, 3, 33, 16, 0, 4934, 4935, 3, 35, 17, 0, 4935, 4936, 3, 45, 22, 0, 4936, 4937, 3, 23, 11, 0, 4937, 4938, 3, 17, 8, 0, 4938, 4939, 3, 55, 27, 0, 4939, 796, 1, 0, 0, 0, 4940, 4941, 3, 33, 16, 0, 4941, 4942, 3, 35, 17, 0, 4942, 4943, 3, 45, 22, 0, 4943, 4944, 3, 33, 16, 0, 4944, 4945, 3, 47, 23, 0, 4945, 4946, 3, 29, 14, 0, 4946, 4947, 3, 29, 14, 0, 4947, 798, 1, 0, 0, 0, 4948, 4949, 3, 33, 16, 0, 4949, 4950, 3, 35, 17, 0, 4950, 4951, 3, 51, 25, 0, 4951, 4952, 3, 7, 3, 0, 4952, 4953, 3, 23, 11, 0, 4953, 4954, 3, 45, 22, 0, 4954, 800, 1, 0, 0, 0, 4955, 4956, 3, 33, 16, 0, 4956, 4957, 3, 47, 23, 0, 4957, 4958, 3, 29, 14, 0, 4958, 4959, 3, 29, 14, 0, 4959, 802, 1, 0, 0, 0, 4960, 4961, 3, 33, 16, 0, 4961, 4962, 3, 47, 23, 0, 4962, 4963, 3, 29, 14, 0, 4963, 4964, 3, 29, 14, 0, 4964, 4965, 3, 7, 3, 0, 4965, 4966, 3, 9, 4, 0, 4966, 4967, 3, 29, 14, 0, 4967, 4968, 3, 15, 7, 0, 4968, 804, 1, 0, 0, 0, 4969, 4970, 3, 33, 16, 0, 4970, 4971, 3, 47, 23, 0, 4971, 4972, 3, 29, 14, 0, 4972, 4973, 3, 29, 14, 0, 4973, 4974, 3, 23, 11, 0, 4974, 4975, 3, 17, 8, 0, 4975, 806, 1, 0, 0, 0, 4976, 4977, 3, 33, 16, 0, 4977, 4978, 3, 47, 23, 0, 4978, 4979, 3, 29, 14, 0, 4979, 4980, 3, 29, 14, 0, 4980, 4981, 3, 43, 21, 0, 4981, 808, 1, 0, 0, 0, 4982, 4983, 3, 33, 16, 0, 4983, 4984, 3, 47, 23, 0, 4984, 4985, 3, 31, 15, 0, 4985, 4986, 3, 9, 4, 0, 4986, 4987, 3, 15, 7, 0, 4987, 4988, 3, 41, 20, 0, 4988, 810, 1, 0, 0, 0, 4989, 4990, 3, 33, 16, 0, 4990, 4991, 3, 47, 23, 0, 4991, 4992, 3, 31, 15, 0, 4992, 4993, 3, 15, 7, 0, 4993, 4994, 3, 41, 20, 0, 4994, 4995, 3, 23, 11, 0, 4995, 4996, 3, 11, 5, 0, 4996, 812, 1, 0, 0, 0, 4997, 4998, 3, 35, 17, 0, 4998, 4999, 3, 9, 4, 0, 4999, 5000, 3, 25, 12, 0, 5000, 5001, 3, 15, 7, 0, 5001, 5002, 3, 11, 5, 0, 5002, 5003, 3, 45, 22, 0, 5003, 814, 1, 0, 0, 0, 5004, 5005, 3, 35, 17, 0, 5005, 5006, 3, 11, 5, 0, 5006, 5007, 3, 45, 22, 0, 5007, 5008, 3, 15, 7, 0, 5008, 5009, 3, 45, 22, 0, 5009, 5010, 5, 95, 0, 0, 5010, 5011, 3, 29, 14, 0, 5011, 5012, 3, 15, 7, 0, 5012, 5013, 3, 33, 16, 0, 5013, 5014, 3, 19, 9, 0, 5014, 5015, 3, 45, 22, 0, 5015, 5016, 3, 21, 10, 0, 5016, 816, 1, 0, 0, 0, 5017, 5018, 3, 35, 17, 0, 5018, 5019, 3, 11, 5, 0, 5019, 5020, 3, 45, 22, 0, 5020, 5021, 3, 15, 7, 0, 5021, 5022, 3, 45, 22, 0, 5022, 5023, 3, 43, 21, 0, 5023, 818, 1, 0, 0, 0, 5024, 5025, 3, 35, 17, 0, 5025, 5026, 3, 17, 8, 0, 5026, 820, 1, 0, 0, 0, 5027, 5028, 3, 35, 17, 0, 5028, 5029, 3, 17, 8, 0, 5029, 5030, 3, 17, 8, 0, 5030, 822, 1, 0, 0, 0, 5031, 5032, 3, 35, 17, 0, 5032, 5033, 3, 17, 8, 0, 5033, 5034, 3, 17, 8, 0, 5034, 5035, 3, 43, 21, 0, 5035, 5036, 3, 15, 7, 0, 5036, 5037, 3, 45, 22, 0, 5037, 824, 1, 0, 0, 0, 5038, 5039, 3, 35, 17, 0, 5039, 5040, 3, 23, 11, 0, 5040, 5041, 3, 13, 6, 0, 5041, 5042, 3, 43, 21, 0, 5042, 826, 1, 0, 0, 0, 5043, 5044, 3, 35, 17, 0, 5044, 5045, 3, 29, 14, 0, 5045, 5046, 3, 13, 6, 0, 5046, 828, 1, 0, 0, 0, 5047, 5048, 3, 35, 17, 0, 5048, 5049, 3, 33, 16, 0, 5049, 830, 1, 0, 0, 0, 5050, 5051, 3, 35, 17, 0, 5051, 5052, 3, 33, 16, 0, 5052, 5053, 3, 29, 14, 0, 5053, 5054, 3, 55, 27, 0, 5054, 832, 1, 0, 0, 0, 5055, 5056, 3, 35, 17, 0, 5056, 5057, 3, 37, 18, 0, 5057, 5058, 3, 15, 7, 0, 5058, 5059, 3, 33, 16, 0, 5059, 834, 1, 0, 0, 0, 5060, 5061, 3, 35, 17, 0, 5061, 5062, 3, 37, 18, 0, 5062, 5063, 3, 15, 7, 0, 5063, 5064, 3, 41, 20, 0, 5064, 5065, 3, 7, 3, 0, 5065, 5066, 3, 45, 22, 0, 5066, 5067, 3, 23, 11, 0, 5067, 5068, 3, 35, 17, 0, 5068, 5069, 3, 33, 16, 0, 5069, 836, 1, 0, 0, 0, 5070, 5071, 3, 35, 17, 0, 5071, 5072, 3, 37, 18, 0, 5072, 5073, 3, 15, 7, 0, 5073, 5074, 3, 41, 20, 0, 5074, 5075, 3, 7, 3, 0, 5075, 5076, 3, 45, 22, 0, 5076, 5077, 3, 35, 17, 0, 5077, 5078, 3, 41, 20, 0, 5078, 838, 1, 0, 0, 0, 5079, 5080, 3, 35, 17, 0, 5080, 5081, 3, 37, 18, 0, 5081, 5082, 3, 45, 22, 0, 5082, 5083, 3, 23, 11, 0, 5083, 5084, 3, 35, 17, 0, 5084, 5085, 3, 33, 16, 0, 5085, 840, 1, 0, 0, 0, 5086, 5087, 3, 35, 17, 0, 5087, 5088, 3, 37, 18, 0, 5088, 5089, 3, 45, 22, 0, 5089, 5090, 3, 23, 11, 0, 5090, 5091, 3, 35, 17, 0, 5091, 5092, 3, 33, 16, 0, 5092, 5093, 3, 43, 21, 0, 5093, 842, 1, 0, 0, 0, 5094, 5095, 3, 35, 17, 0, 5095, 5096, 3, 41, 20, 0, 5096, 844, 1, 0, 0, 0, 5097, 5098, 3, 35, 17, 0, 5098, 5099, 3, 41, 20, 0, 5099, 5100, 3, 13, 6, 0, 5100, 5101, 3, 15, 7, 0, 5101, 5102, 3, 41, 20, 0, 5102, 846, 1, 0, 0, 0, 5103, 5104, 3, 35, 17, 0, 5104, 5105, 3, 41, 20, 0, 5105, 5106, 3, 13, 6, 0, 5106, 5107, 3, 15, 7, 0, 5107, 5108, 3, 41, 20, 0, 5108, 5109, 3, 23, 11, 0, 5109, 5110, 3, 33, 16, 0, 5110, 5111, 3, 19, 9, 0, 5111, 848, 1, 0, 0, 0, 5112, 5113, 3, 35, 17, 0, 5113, 5114, 3, 41, 20, 0, 5114, 5115, 3, 13, 6, 0, 5115, 5116, 3, 23, 11, 0, 5116, 5117, 3, 33, 16, 0, 5117, 5118, 3, 7, 3, 0, 5118, 5119, 3, 29, 14, 0, 5119, 5120, 3, 23, 11, 0, 5120, 5121, 3, 45, 22, 0, 5121, 5122, 3, 55, 27, 0, 5122, 850, 1, 0, 0, 0, 5123, 5124, 3, 35, 17, 0, 5124, 5125, 3, 45, 22, 0, 5125, 5126, 3, 21, 10, 0, 5126, 5127, 3, 15, 7, 0, 5127, 5128, 3, 41, 20, 0, 5128, 5129, 3, 43, 21, 0, 5129, 852, 1, 0, 0, 0, 5130, 5131, 3, 35, 17, 0, 5131, 5132, 3, 47, 23, 0, 5132, 5133, 3, 45, 22, 0, 5133, 854, 1, 0, 0, 0, 5134, 5135, 3, 35, 17, 0, 5135, 5136, 3, 47, 23, 0, 5136, 5137, 3, 45, 22, 0, 5137, 5138, 3, 15, 7, 0, 5138, 5139, 3, 41, 20, 0, 5139, 856, 1, 0, 0, 0, 5140, 5141, 3, 35, 17, 0, 5141, 5142, 3, 47, 23, 0, 5142, 5143, 3, 45, 22, 0, 5143, 5144, 3, 37, 18, 0, 5144, 5145, 3, 47, 23, 0, 5145, 5146, 3, 45, 22, 0, 5146, 858, 1, 0, 0, 0, 5147, 5148, 3, 35, 17, 0, 5148, 5149, 3, 49, 24, 0, 5149, 5150, 3, 15, 7, 0, 5150, 5151, 3, 41, 20, 0, 5151, 860, 1, 0, 0, 0, 5152, 5153, 3, 35, 17, 0, 5153, 5154, 3, 49, 24, 0, 5154, 5155, 3, 15, 7, 0, 5155, 5156, 3, 41, 20, 0, 5156, 5157, 3, 29, 14, 0, 5157, 5158, 3, 7, 3, 0, 5158, 5159, 3, 37, 18, 0, 5159, 5160, 3, 43, 21, 0, 5160, 862, 1, 0, 0, 0, 5161, 5162, 3, 35, 17, 0, 5162, 5163, 3, 49, 24, 0, 5163, 5164, 3, 15, 7, 0, 5164, 5165, 3, 41, 20, 0, 5165, 5166, 3, 29, 14, 0, 5166, 5167, 3, 7, 3, 0, 5167, 5168, 3, 55, 27, 0, 5168, 864, 1, 0, 0, 0, 5169, 5170, 3, 35, 17, 0, 5170, 5171, 3, 49, 24, 0, 5171, 5172, 3, 15, 7, 0, 5172, 5173, 3, 41, 20, 0, 5173, 5174, 3, 41, 20, 0, 5174, 5175, 3, 23, 11, 0, 5175, 5176, 3, 13, 6, 0, 5176, 5177, 3, 23, 11, 0, 5177, 5178, 3, 33, 16, 0, 5178, 5179, 3, 19, 9, 0, 5179, 866, 1, 0, 0, 0, 5180, 5181, 3, 35, 17, 0, 5181, 5182, 3, 51, 25, 0, 5182, 5183, 3, 33, 16, 0, 5183, 5184, 3, 15, 7, 0, 5184, 5185, 3, 41, 20, 0, 5185, 868, 1, 0, 0, 0, 5186, 5187, 3, 37, 18, 0, 5187, 5188, 3, 7, 3, 0, 5188, 5189, 3, 13, 6, 0, 5189, 870, 1, 0, 0, 0, 5190, 5191, 3, 37, 18, 0, 5191, 5192, 3, 7, 3, 0, 5192, 5193, 3, 41, 20, 0, 5193, 5194, 3, 7, 3, 0, 5194, 5195, 3, 31, 15, 0, 5195, 5196, 3, 15, 7, 0, 5196, 5197, 3, 45, 22, 0, 5197, 5198, 3, 15, 7, 0, 5198, 5199, 3, 41, 20, 0, 5199, 872, 1, 0, 0, 0, 5200, 5201, 3, 37, 18, 0, 5201, 5202, 3, 7, 3, 0, 5202, 5203, 3, 41, 20, 0, 5203, 5204, 3, 7, 3, 0, 5204, 5205, 3, 31, 15, 0, 5205, 5206, 3, 15, 7, 0, 5206, 5207, 3, 45, 22, 0, 5207, 5208, 3, 15, 7, 0, 5208, 5209, 3, 41, 20, 0, 5209, 5210, 5, 95, 0, 0, 5210, 5211, 3, 31, 15, 0, 5211, 5212, 3, 35, 17, 0, 5212, 5213, 3, 13, 6, 0, 5213, 5214, 3, 15, 7, 0, 5214, 874, 1, 0, 0, 0, 5215, 5216, 3, 37, 18, 0, 5216, 5217, 3, 7, 3, 0, 5217, 5218, 3, 41, 20, 0, 5218, 5219, 3, 7, 3, 0, 5219, 5220, 3, 31, 15, 0, 5220, 5221, 3, 15, 7, 0, 5221, 5222, 3, 45, 22, 0, 5222, 5223, 3, 15, 7, 0, 5223, 5224, 3, 41, 20, 0, 5224, 5225, 5, 95, 0, 0, 5225, 5226, 3, 33, 16, 0, 5226, 5227, 3, 7, 3, 0, 5227, 5228, 3, 31, 15, 0, 5228, 5229, 3, 15, 7, 0, 5229, 876, 1, 0, 0, 0, 5230, 5231, 3, 37, 18, 0, 5231, 5232, 3, 7, 3, 0, 5232, 5233, 3, 41, 20, 0, 5233, 5234, 3, 7, 3, 0, 5234, 5235, 3, 31, 15, 0, 5235, 5236, 3, 15, 7, 0, 5236, 5237, 3, 45, 22, 0, 5237, 5238, 3, 15, 7, 0, 5238, 5239, 3, 41, 20, 0, 5239, 5240, 5, 95, 0, 0, 5240, 5241, 3, 35, 17, 0, 5241, 5242, 3, 41, 20, 0, 5242, 5243, 3, 13, 6, 0, 5243, 5244, 3, 23, 11, 0, 5244, 5245, 3, 33, 16, 0, 5245, 5246, 3, 7, 3, 0, 5246, 5247, 3, 29, 14, 0, 5247, 5248, 5, 95, 0, 0, 5248, 5249, 3, 37, 18, 0, 5249, 5250, 3, 35, 17, 0, 5250, 5251, 3, 43, 21, 0, 5251, 5252, 3, 23, 11, 0, 5252, 5253, 3, 45, 22, 0, 5253, 5254, 3, 23, 11, 0, 5254, 5255, 3, 35, 17, 0, 5255, 5256, 3, 33, 16, 0, 5256, 878, 1, 0, 0, 0, 5257, 5258, 3, 37, 18, 0, 5258, 5259, 3, 7, 3, 0, 5259, 5260, 3, 41, 20, 0, 5260, 5261, 3, 7, 3, 0, 5261, 5262, 3, 31, 15, 0, 5262, 5263, 3, 15, 7, 0, 5263, 5264, 3, 45, 22, 0, 5264, 5265, 3, 15, 7, 0, 5265, 5266, 3, 41, 20, 0, 5266, 5267, 5, 95, 0, 0, 5267, 5268, 3, 43, 21, 0, 5268, 5269, 3, 37, 18, 0, 5269, 5270, 3, 15, 7, 0, 5270, 5271, 3, 11, 5, 0, 5271, 5272, 3, 23, 11, 0, 5272, 5273, 3, 17, 8, 0, 5273, 5274, 3, 23, 11, 0, 5274, 5275, 3, 11, 5, 0, 5275, 5276, 5, 95, 0, 0, 5276, 5277, 3, 11, 5, 0, 5277, 5278, 3, 7, 3, 0, 5278, 5279, 3, 45, 22, 0, 5279, 5280, 3, 7, 3, 0, 5280, 5281, 3, 29, 14, 0, 5281, 5282, 3, 35, 17, 0, 5282, 5283, 3, 19, 9, 0, 5283, 880, 1, 0, 0, 0, 5284, 5285, 3, 37, 18, 0, 5285, 5286, 3, 7, 3, 0, 5286, 5287, 3, 41, 20, 0, 5287, 5288, 3, 7, 3, 0, 5288, 5289, 3, 31, 15, 0, 5289, 5290, 3, 15, 7, 0, 5290, 5291, 3, 45, 22, 0, 5291, 5292, 3, 15, 7, 0, 5292, 5293, 3, 41, 20, 0, 5293, 5294, 5, 95, 0, 0, 5294, 5295, 3, 43, 21, 0, 5295, 5296, 3, 37, 18, 0, 5296, 5297, 3, 15, 7, 0, 5297, 5298, 3, 11, 5, 0, 5298, 5299, 3, 23, 11, 0, 5299, 5300, 3, 17, 8, 0, 5300, 5301, 3, 23, 11, 0, 5301, 5302, 3, 11, 5, 0, 5302, 5303, 5, 95, 0, 0, 5303, 5304, 3, 33, 16, 0, 5304, 5305, 3, 7, 3, 0, 5305, 5306, 3, 31, 15, 0, 5306, 5307, 3, 15, 7, 0, 5307, 882, 1, 0, 0, 0, 5308, 5309, 3, 37, 18, 0, 5309, 5310, 3, 7, 3, 0, 5310, 5311, 3, 41, 20, 0, 5311, 5312, 3, 7, 3, 0, 5312, 5313, 3, 31, 15, 0, 5313, 5314, 3, 15, 7, 0, 5314, 5315, 3, 45, 22, 0, 5315, 5316, 3, 15, 7, 0, 5316, 5317, 3, 41, 20, 0, 5317, 5318, 5, 95, 0, 0, 5318, 5319, 3, 43, 21, 0, 5319, 5320, 3, 37, 18, 0, 5320, 5321, 3, 15, 7, 0, 5321, 5322, 3, 11, 5, 0, 5322, 5323, 3, 23, 11, 0, 5323, 5324, 3, 17, 8, 0, 5324, 5325, 3, 23, 11, 0, 5325, 5326, 3, 11, 5, 0, 5326, 5327, 5, 95, 0, 0, 5327, 5328, 3, 43, 21, 0, 5328, 5329, 3, 11, 5, 0, 5329, 5330, 3, 21, 10, 0, 5330, 5331, 3, 15, 7, 0, 5331, 5332, 3, 31, 15, 0, 5332, 5333, 3, 7, 3, 0, 5333, 884, 1, 0, 0, 0, 5334, 5335, 3, 37, 18, 0, 5335, 5336, 3, 7, 3, 0, 5336, 5337, 3, 41, 20, 0, 5337, 5338, 3, 7, 3, 0, 5338, 5339, 3, 31, 15, 0, 5339, 5340, 3, 15, 7, 0, 5340, 5341, 3, 45, 22, 0, 5341, 5342, 3, 15, 7, 0, 5342, 5343, 3, 41, 20, 0, 5343, 5344, 3, 43, 21, 0, 5344, 886, 1, 0, 0, 0, 5345, 5346, 3, 37, 18, 0, 5346, 5347, 3, 7, 3, 0, 5347, 5348, 3, 41, 20, 0, 5348, 5349, 3, 43, 21, 0, 5349, 5350, 3, 15, 7, 0, 5350, 5351, 3, 41, 20, 0, 5351, 888, 1, 0, 0, 0, 5352, 5353, 3, 37, 18, 0, 5353, 5354, 3, 7, 3, 0, 5354, 5355, 3, 41, 20, 0, 5355, 5356, 3, 45, 22, 0, 5356, 5357, 3, 23, 11, 0, 5357, 5358, 3, 7, 3, 0, 5358, 5359, 3, 29, 14, 0, 5359, 890, 1, 0, 0, 0, 5360, 5361, 3, 37, 18, 0, 5361, 5362, 3, 7, 3, 0, 5362, 5363, 3, 41, 20, 0, 5363, 5364, 3, 45, 22, 0, 5364, 5365, 3, 23, 11, 0, 5365, 5366, 3, 45, 22, 0, 5366, 5367, 3, 23, 11, 0, 5367, 5368, 3, 35, 17, 0, 5368, 5369, 3, 33, 16, 0, 5369, 892, 1, 0, 0, 0, 5370, 5371, 3, 37, 18, 0, 5371, 5372, 3, 7, 3, 0, 5372, 5373, 3, 43, 21, 0, 5373, 5374, 3, 11, 5, 0, 5374, 5375, 3, 7, 3, 0, 5375, 5376, 3, 29, 14, 0, 5376, 894, 1, 0, 0, 0, 5377, 5378, 3, 37, 18, 0, 5378, 5379, 3, 7, 3, 0, 5379, 5380, 3, 43, 21, 0, 5380, 5381, 3, 43, 21, 0, 5381, 5382, 3, 51, 25, 0, 5382, 5383, 3, 35, 17, 0, 5383, 5384, 3, 41, 20, 0, 5384, 5385, 3, 13, 6, 0, 5385, 896, 1, 0, 0, 0, 5386, 5387, 3, 37, 18, 0, 5387, 5388, 3, 7, 3, 0, 5388, 5389, 3, 45, 22, 0, 5389, 5390, 3, 21, 10, 0, 5390, 898, 1, 0, 0, 0, 5391, 5392, 3, 37, 18, 0, 5392, 5393, 3, 15, 7, 0, 5393, 5394, 3, 41, 20, 0, 5394, 5395, 3, 11, 5, 0, 5395, 5396, 3, 15, 7, 0, 5396, 5397, 3, 33, 16, 0, 5397, 5398, 3, 45, 22, 0, 5398, 5399, 5, 95, 0, 0, 5399, 5400, 3, 41, 20, 0, 5400, 5401, 3, 7, 3, 0, 5401, 5402, 3, 33, 16, 0, 5402, 5403, 3, 27, 13, 0, 5403, 900, 1, 0, 0, 0, 5404, 5405, 3, 37, 18, 0, 5405, 5406, 3, 15, 7, 0, 5406, 5407, 3, 41, 20, 0, 5407, 5408, 3, 11, 5, 0, 5408, 5409, 3, 15, 7, 0, 5409, 5410, 3, 33, 16, 0, 5410, 5411, 3, 45, 22, 0, 5411, 5412, 3, 23, 11, 0, 5412, 5413, 3, 29, 14, 0, 5413, 5414, 3, 15, 7, 0, 5414, 5415, 5, 95, 0, 0, 5415, 5416, 3, 11, 5, 0, 5416, 5417, 3, 35, 17, 0, 5417, 5418, 3, 33, 16, 0, 5418, 5419, 3, 45, 22, 0, 5419, 902, 1, 0, 0, 0, 5420, 5421, 3, 37, 18, 0, 5421, 5422, 3, 15, 7, 0, 5422, 5423, 3, 41, 20, 0, 5423, 5424, 3, 11, 5, 0, 5424, 5425, 3, 15, 7, 0, 5425, 5426, 3, 33, 16, 0, 5426, 5427, 3, 45, 22, 0, 5427, 5428, 3, 23, 11, 0, 5428, 5429, 3, 29, 14, 0, 5429, 5430, 3, 15, 7, 0, 5430, 5431, 5, 95, 0, 0, 5431, 5432, 3, 13, 6, 0, 5432, 5433, 3, 23, 11, 0, 5433, 5434, 3, 43, 21, 0, 5434, 5435, 3, 11, 5, 0, 5435, 904, 1, 0, 0, 0, 5436, 5437, 3, 37, 18, 0, 5437, 5438, 3, 29, 14, 0, 5438, 5439, 3, 7, 3, 0, 5439, 5440, 3, 11, 5, 0, 5440, 5441, 3, 23, 11, 0, 5441, 5442, 3, 33, 16, 0, 5442, 5443, 3, 19, 9, 0, 5443, 906, 1, 0, 0, 0, 5444, 5445, 3, 37, 18, 0, 5445, 5446, 3, 29, 14, 0, 5446, 5447, 3, 7, 3, 0, 5447, 5448, 3, 23, 11, 0, 5448, 5449, 3, 33, 16, 0, 5449, 908, 1, 0, 0, 0, 5450, 5451, 3, 37, 18, 0, 5451, 5452, 3, 29, 14, 0, 5452, 5453, 3, 7, 3, 0, 5453, 5454, 3, 33, 16, 0, 5454, 5455, 3, 43, 21, 0, 5455, 910, 1, 0, 0, 0, 5456, 5457, 3, 37, 18, 0, 5457, 5458, 3, 29, 14, 0, 5458, 5459, 3, 23, 11, 0, 5459, 912, 1, 0, 0, 0, 5460, 5461, 3, 37, 18, 0, 5461, 5462, 3, 35, 17, 0, 5462, 5463, 3, 43, 21, 0, 5463, 5464, 3, 23, 11, 0, 5464, 5465, 3, 45, 22, 0, 5465, 5466, 3, 23, 11, 0, 5466, 5467, 3, 35, 17, 0, 5467, 5468, 3, 33, 16, 0, 5468, 914, 1, 0, 0, 0, 5469, 5470, 3, 37, 18, 0, 5470, 5471, 3, 35, 17, 0, 5471, 5472, 3, 43, 21, 0, 5472, 5473, 3, 45, 22, 0, 5473, 5474, 3, 17, 8, 0, 5474, 5475, 3, 23, 11, 0, 5475, 5476, 3, 53, 26, 0, 5476, 916, 1, 0, 0, 0, 5477, 5478, 3, 37, 18, 0, 5478, 5479, 3, 35, 17, 0, 5479, 5480, 3, 51, 25, 0, 5480, 5481, 3, 15, 7, 0, 5481, 5482, 3, 41, 20, 0, 5482, 918, 1, 0, 0, 0, 5483, 5484, 3, 37, 18, 0, 5484, 5485, 3, 41, 20, 0, 5485, 5486, 3, 15, 7, 0, 5486, 5487, 3, 11, 5, 0, 5487, 5488, 3, 15, 7, 0, 5488, 5489, 3, 13, 6, 0, 5489, 5490, 3, 23, 11, 0, 5490, 5491, 3, 33, 16, 0, 5491, 5492, 3, 19, 9, 0, 5492, 920, 1, 0, 0, 0, 5493, 5494, 3, 37, 18, 0, 5494, 5495, 3, 41, 20, 0, 5495, 5496, 3, 15, 7, 0, 5496, 5497, 3, 11, 5, 0, 5497, 5498, 3, 23, 11, 0, 5498, 5499, 3, 43, 21, 0, 5499, 5500, 3, 23, 11, 0, 5500, 5501, 3, 35, 17, 0, 5501, 5502, 3, 33, 16, 0, 5502, 922, 1, 0, 0, 0, 5503, 5504, 3, 37, 18, 0, 5504, 5505, 3, 41, 20, 0, 5505, 5506, 3, 15, 7, 0, 5506, 5507, 3, 17, 8, 0, 5507, 5508, 3, 23, 11, 0, 5508, 5509, 3, 53, 26, 0, 5509, 924, 1, 0, 0, 0, 5510, 5511, 3, 37, 18, 0, 5511, 5512, 3, 41, 20, 0, 5512, 5513, 3, 15, 7, 0, 5513, 5514, 3, 35, 17, 0, 5514, 5515, 3, 41, 20, 0, 5515, 5516, 3, 13, 6, 0, 5516, 5517, 3, 15, 7, 0, 5517, 5518, 3, 41, 20, 0, 5518, 926, 1, 0, 0, 0, 5519, 5520, 3, 37, 18, 0, 5520, 5521, 3, 41, 20, 0, 5521, 5522, 3, 15, 7, 0, 5522, 5523, 3, 37, 18, 0, 5523, 5524, 3, 7, 3, 0, 5524, 5525, 3, 41, 20, 0, 5525, 5526, 3, 15, 7, 0, 5526, 928, 1, 0, 0, 0, 5527, 5528, 3, 37, 18, 0, 5528, 5529, 3, 41, 20, 0, 5529, 5530, 3, 15, 7, 0, 5530, 5531, 3, 37, 18, 0, 5531, 5532, 3, 7, 3, 0, 5532, 5533, 3, 41, 20, 0, 5533, 5534, 3, 15, 7, 0, 5534, 5535, 3, 13, 6, 0, 5535, 930, 1, 0, 0, 0, 5536, 5537, 3, 37, 18, 0, 5537, 5538, 3, 41, 20, 0, 5538, 5539, 3, 15, 7, 0, 5539, 5540, 3, 43, 21, 0, 5540, 5541, 3, 15, 7, 0, 5541, 5542, 3, 41, 20, 0, 5542, 5543, 3, 49, 24, 0, 5543, 5544, 3, 15, 7, 0, 5544, 932, 1, 0, 0, 0, 5545, 5546, 3, 37, 18, 0, 5546, 5547, 3, 41, 20, 0, 5547, 5548, 3, 23, 11, 0, 5548, 5549, 3, 31, 15, 0, 5549, 5550, 3, 7, 3, 0, 5550, 5551, 3, 41, 20, 0, 5551, 5552, 3, 55, 27, 0, 5552, 934, 1, 0, 0, 0, 5553, 5554, 3, 37, 18, 0, 5554, 5555, 3, 41, 20, 0, 5555, 5556, 3, 23, 11, 0, 5556, 5557, 3, 35, 17, 0, 5557, 5558, 3, 41, 20, 0, 5558, 936, 1, 0, 0, 0, 5559, 5560, 3, 37, 18, 0, 5560, 5561, 3, 41, 20, 0, 5561, 5562, 3, 23, 11, 0, 5562, 5563, 3, 49, 24, 0, 5563, 5564, 3, 23, 11, 0, 5564, 5565, 3, 29, 14, 0, 5565, 5566, 3, 15, 7, 0, 5566, 5567, 3, 19, 9, 0, 5567, 5568, 3, 15, 7, 0, 5568, 5569, 3, 43, 21, 0, 5569, 938, 1, 0, 0, 0, 5570, 5571, 3, 37, 18, 0, 5571, 5572, 3, 41, 20, 0, 5572, 5573, 3, 35, 17, 0, 5573, 5574, 3, 11, 5, 0, 5574, 5575, 3, 15, 7, 0, 5575, 5576, 3, 13, 6, 0, 5576, 5577, 3, 47, 23, 0, 5577, 5578, 3, 41, 20, 0, 5578, 5579, 3, 7, 3, 0, 5579, 5580, 3, 29, 14, 0, 5580, 940, 1, 0, 0, 0, 5581, 5582, 3, 37, 18, 0, 5582, 5583, 3, 41, 20, 0, 5583, 5584, 3, 35, 17, 0, 5584, 5585, 3, 11, 5, 0, 5585, 5586, 3, 15, 7, 0, 5586, 5587, 3, 13, 6, 0, 5587, 5588, 3, 47, 23, 0, 5588, 5589, 3, 41, 20, 0, 5589, 5590, 3, 15, 7, 0, 5590, 942, 1, 0, 0, 0, 5591, 5592, 3, 37, 18, 0, 5592, 5593, 3, 47, 23, 0, 5593, 5594, 3, 9, 4, 0, 5594, 5595, 3, 29, 14, 0, 5595, 5596, 3, 23, 11, 0, 5596, 5597, 3, 11, 5, 0, 5597, 944, 1, 0, 0, 0, 5598, 5599, 3, 37, 18, 0, 5599, 5600, 3, 47, 23, 0, 5600, 5601, 3, 9, 4, 0, 5601, 5602, 3, 29, 14, 0, 5602, 5603, 3, 23, 11, 0, 5603, 5604, 3, 11, 5, 0, 5604, 5605, 3, 7, 3, 0, 5605, 5606, 3, 45, 22, 0, 5606, 5607, 3, 23, 11, 0, 5607, 5608, 3, 35, 17, 0, 5608, 5609, 3, 33, 16, 0, 5609, 946, 1, 0, 0, 0, 5610, 5611, 3, 39, 19, 0, 5611, 5612, 3, 47, 23, 0, 5612, 5613, 3, 35, 17, 0, 5613, 5614, 3, 45, 22, 0, 5614, 5615, 3, 15, 7, 0, 5615, 948, 1, 0, 0, 0, 5616, 5617, 3, 41, 20, 0, 5617, 5618, 3, 7, 3, 0, 5618, 5619, 3, 33, 16, 0, 5619, 5620, 3, 19, 9, 0, 5620, 5621, 3, 15, 7, 0, 5621, 950, 1, 0, 0, 0, 5622, 5623, 3, 41, 20, 0, 5623, 5624, 3, 7, 3, 0, 5624, 5625, 3, 33, 16, 0, 5625, 5626, 3, 27, 13, 0, 5626, 952, 1, 0, 0, 0, 5627, 5628, 3, 41, 20, 0, 5628, 5629, 3, 15, 7, 0, 5629, 5630, 3, 7, 3, 0, 5630, 5631, 3, 13, 6, 0, 5631, 954, 1, 0, 0, 0, 5632, 5633, 3, 41, 20, 0, 5633, 5634, 3, 15, 7, 0, 5634, 5635, 3, 7, 3, 0, 5635, 5636, 3, 13, 6, 0, 5636, 5637, 3, 43, 21, 0, 5637, 956, 1, 0, 0, 0, 5638, 5639, 3, 41, 20, 0, 5639, 5640, 3, 15, 7, 0, 5640, 5641, 3, 7, 3, 0, 5641, 5642, 3, 29, 14, 0, 5642, 958, 1, 0, 0, 0, 5643, 5644, 3, 41, 20, 0, 5644, 5645, 3, 15, 7, 0, 5645, 5646, 3, 7, 3, 0, 5646, 5647, 3, 43, 21, 0, 5647, 5648, 3, 43, 21, 0, 5648, 5649, 3, 23, 11, 0, 5649, 5650, 3, 19, 9, 0, 5650, 5651, 3, 33, 16, 0, 5651, 960, 1, 0, 0, 0, 5652, 5653, 3, 41, 20, 0, 5653, 5654, 3, 15, 7, 0, 5654, 5655, 3, 11, 5, 0, 5655, 5656, 3, 21, 10, 0, 5656, 5657, 3, 15, 7, 0, 5657, 5658, 3, 11, 5, 0, 5658, 5659, 3, 27, 13, 0, 5659, 962, 1, 0, 0, 0, 5660, 5661, 3, 41, 20, 0, 5661, 5662, 3, 15, 7, 0, 5662, 5663, 3, 11, 5, 0, 5663, 5664, 3, 47, 23, 0, 5664, 5665, 3, 41, 20, 0, 5665, 5666, 3, 43, 21, 0, 5666, 5667, 3, 23, 11, 0, 5667, 5668, 3, 49, 24, 0, 5668, 5669, 3, 15, 7, 0, 5669, 964, 1, 0, 0, 0, 5670, 5671, 3, 41, 20, 0, 5671, 5672, 3, 15, 7, 0, 5672, 5673, 3, 17, 8, 0, 5673, 966, 1, 0, 0, 0, 5674, 5675, 3, 41, 20, 0, 5675, 5676, 3, 15, 7, 0, 5676, 5677, 3, 17, 8, 0, 5677, 5678, 3, 15, 7, 0, 5678, 5679, 3, 41, 20, 0, 5679, 5680, 3, 15, 7, 0, 5680, 5681, 3, 33, 16, 0, 5681, 5682, 3, 11, 5, 0, 5682, 5683, 3, 15, 7, 0, 5683, 5684, 3, 43, 21, 0, 5684, 968, 1, 0, 0, 0, 5685, 5686, 3, 41, 20, 0, 5686, 5687, 3, 15, 7, 0, 5687, 5688, 3, 17, 8, 0, 5688, 5689, 3, 15, 7, 0, 5689, 5690, 3, 41, 20, 0, 5690, 5691, 3, 15, 7, 0, 5691, 5692, 3, 33, 16, 0, 5692, 5693, 3, 11, 5, 0, 5693, 5694, 3, 23, 11, 0, 5694, 5695, 3, 33, 16, 0, 5695, 5696, 3, 19, 9, 0, 5696, 970, 1, 0, 0, 0, 5697, 5698, 3, 41, 20, 0, 5698, 5699, 3, 15, 7, 0, 5699, 5700, 3, 17, 8, 0, 5700, 5701, 3, 41, 20, 0, 5701, 5702, 3, 15, 7, 0, 5702, 5703, 3, 43, 21, 0, 5703, 5704, 3, 21, 10, 0, 5704, 972, 1, 0, 0, 0, 5705, 5706, 3, 41, 20, 0, 5706, 5707, 3, 15, 7, 0, 5707, 5708, 3, 19, 9, 0, 5708, 5709, 3, 41, 20, 0, 5709, 5710, 5, 95, 0, 0, 5710, 5711, 3, 7, 3, 0, 5711, 5712, 3, 49, 24, 0, 5712, 5713, 3, 19, 9, 0, 5713, 5714, 3, 53, 26, 0, 5714, 974, 1, 0, 0, 0, 5715, 5716, 3, 41, 20, 0, 5716, 5717, 3, 15, 7, 0, 5717, 5718, 3, 19, 9, 0, 5718, 5719, 3, 41, 20, 0, 5719, 5720, 5, 95, 0, 0, 5720, 5721, 3, 7, 3, 0, 5721, 5722, 3, 49, 24, 0, 5722, 5723, 3, 19, 9, 0, 5723, 5724, 3, 55, 27, 0, 5724, 976, 1, 0, 0, 0, 5725, 5726, 3, 41, 20, 0, 5726, 5727, 3, 15, 7, 0, 5727, 5728, 3, 19, 9, 0, 5728, 5729, 3, 41, 20, 0, 5729, 5730, 5, 95, 0, 0, 5730, 5731, 3, 11, 5, 0, 5731, 5732, 3, 35, 17, 0, 5732, 5733, 3, 47, 23, 0, 5733, 5734, 3, 33, 16, 0, 5734, 5735, 3, 45, 22, 0, 5735, 978, 1, 0, 0, 0, 5736, 5737, 3, 41, 20, 0, 5737, 5738, 3, 15, 7, 0, 5738, 5739, 3, 19, 9, 0, 5739, 5740, 3, 41, 20, 0, 5740, 5741, 5, 95, 0, 0, 5741, 5742, 3, 23, 11, 0, 5742, 5743, 3, 33, 16, 0, 5743, 5744, 3, 45, 22, 0, 5744, 5745, 3, 15, 7, 0, 5745, 5746, 3, 41, 20, 0, 5746, 5747, 3, 11, 5, 0, 5747, 5748, 3, 15, 7, 0, 5748, 5749, 3, 37, 18, 0, 5749, 5750, 3, 45, 22, 0, 5750, 980, 1, 0, 0, 0, 5751, 5752, 3, 41, 20, 0, 5752, 5753, 3, 15, 7, 0, 5753, 5754, 3, 19, 9, 0, 5754, 5755, 3, 41, 20, 0, 5755, 5756, 5, 95, 0, 0, 5756, 5757, 3, 41, 20, 0, 5757, 5758, 5, 50, 0, 0, 5758, 982, 1, 0, 0, 0, 5759, 5760, 3, 41, 20, 0, 5760, 5761, 3, 15, 7, 0, 5761, 5762, 3, 19, 9, 0, 5762, 5763, 3, 41, 20, 0, 5763, 5764, 5, 95, 0, 0, 5764, 5765, 3, 43, 21, 0, 5765, 5766, 3, 29, 14, 0, 5766, 5767, 3, 35, 17, 0, 5767, 5768, 3, 37, 18, 0, 5768, 5769, 3, 15, 7, 0, 5769, 984, 1, 0, 0, 0, 5770, 5771, 3, 41, 20, 0, 5771, 5772, 3, 15, 7, 0, 5772, 5773, 3, 19, 9, 0, 5773, 5774, 3, 41, 20, 0, 5774, 5775, 5, 95, 0, 0, 5775, 5776, 3, 43, 21, 0, 5776, 5777, 3, 53, 26, 0, 5777, 5778, 3, 53, 26, 0, 5778, 986, 1, 0, 0, 0, 5779, 5780, 3, 41, 20, 0, 5780, 5781, 3, 15, 7, 0, 5781, 5782, 3, 19, 9, 0, 5782, 5783, 3, 41, 20, 0, 5783, 5784, 5, 95, 0, 0, 5784, 5785, 3, 43, 21, 0, 5785, 5786, 3, 53, 26, 0, 5786, 5787, 3, 55, 27, 0, 5787, 988, 1, 0, 0, 0, 5788, 5789, 3, 41, 20, 0, 5789, 5790, 3, 15, 7, 0, 5790, 5791, 3, 19, 9, 0, 5791, 5792, 3, 41, 20, 0, 5792, 5793, 5, 95, 0, 0, 5793, 5794, 3, 43, 21, 0, 5794, 5795, 3, 55, 27, 0, 5795, 5796, 3, 55, 27, 0, 5796, 990, 1, 0, 0, 0, 5797, 5798, 3, 41, 20, 0, 5798, 5799, 3, 15, 7, 0, 5799, 5800, 3, 23, 11, 0, 5800, 5801, 3, 33, 16, 0, 5801, 5802, 3, 13, 6, 0, 5802, 5803, 3, 15, 7, 0, 5803, 5804, 3, 53, 26, 0, 5804, 992, 1, 0, 0, 0, 5805, 5806, 3, 41, 20, 0, 5806, 5807, 3, 15, 7, 0, 5807, 5808, 3, 29, 14, 0, 5808, 5809, 3, 7, 3, 0, 5809, 5810, 3, 45, 22, 0, 5810, 5811, 3, 23, 11, 0, 5811, 5812, 3, 49, 24, 0, 5812, 5813, 3, 15, 7, 0, 5813, 994, 1, 0, 0, 0, 5814, 5815, 3, 41, 20, 0, 5815, 5816, 3, 15, 7, 0, 5816, 5817, 3, 29, 14, 0, 5817, 5818, 3, 15, 7, 0, 5818, 5819, 3, 7, 3, 0, 5819, 5820, 3, 43, 21, 0, 5820, 5821, 3, 15, 7, 0, 5821, 996, 1, 0, 0, 0, 5822, 5823, 3, 41, 20, 0, 5823, 5824, 3, 15, 7, 0, 5824, 5825, 3, 33, 16, 0, 5825, 5826, 3, 7, 3, 0, 5826, 5827, 3, 31, 15, 0, 5827, 5828, 3, 15, 7, 0, 5828, 998, 1, 0, 0, 0, 5829, 5830, 3, 41, 20, 0, 5830, 5831, 3, 15, 7, 0, 5831, 5832, 3, 37, 18, 0, 5832, 5833, 3, 15, 7, 0, 5833, 5834, 3, 7, 3, 0, 5834, 5835, 3, 45, 22, 0, 5835, 5836, 3, 7, 3, 0, 5836, 5837, 3, 9, 4, 0, 5837, 5838, 3, 29, 14, 0, 5838, 5839, 3, 15, 7, 0, 5839, 1000, 1, 0, 0, 0, 5840, 5841, 3, 41, 20, 0, 5841, 5842, 3, 15, 7, 0, 5842, 5843, 3, 37, 18, 0, 5843, 5844, 3, 29, 14, 0, 5844, 5845, 3, 7, 3, 0, 5845, 5846, 3, 11, 5, 0, 5846, 5847, 3, 15, 7, 0, 5847, 1002, 1, 0, 0, 0, 5848, 5849, 3, 41, 20, 0, 5849, 5850, 3, 15, 7, 0, 5850, 5851, 3, 37, 18, 0, 5851, 5852, 3, 29, 14, 0, 5852, 5853, 3, 23, 11, 0, 5853, 5854, 3, 11, 5, 0, 5854, 5855, 3, 7, 3, 0, 5855, 1004, 1, 0, 0, 0, 5856, 5857, 3, 41, 20, 0, 5857, 5858, 3, 15, 7, 0, 5858, 5859, 3, 43, 21, 0, 5859, 5860, 3, 15, 7, 0, 5860, 5861, 3, 45, 22, 0, 5861, 1006, 1, 0, 0, 0, 5862, 5863, 3, 41, 20, 0, 5863, 5864, 3, 15, 7, 0, 5864, 5865, 3, 43, 21, 0, 5865, 5866, 3, 45, 22, 0, 5866, 5867, 3, 7, 3, 0, 5867, 5868, 3, 41, 20, 0, 5868, 5869, 3, 45, 22, 0, 5869, 1008, 1, 0, 0, 0, 5870, 5871, 3, 41, 20, 0, 5871, 5872, 3, 15, 7, 0, 5872, 5873, 3, 43, 21, 0, 5873, 5874, 3, 45, 22, 0, 5874, 5875, 3, 41, 20, 0, 5875, 5876, 3, 23, 11, 0, 5876, 5877, 3, 11, 5, 0, 5877, 5878, 3, 45, 22, 0, 5878, 1010, 1, 0, 0, 0, 5879, 5880, 3, 41, 20, 0, 5880, 5881, 3, 15, 7, 0, 5881, 5882, 3, 43, 21, 0, 5882, 5883, 3, 47, 23, 0, 5883, 5884, 3, 29, 14, 0, 5884, 5885, 3, 45, 22, 0, 5885, 1012, 1, 0, 0, 0, 5886, 5887, 3, 41, 20, 0, 5887, 5888, 3, 15, 7, 0, 5888, 5889, 3, 45, 22, 0, 5889, 5890, 3, 47, 23, 0, 5890, 5891, 3, 41, 20, 0, 5891, 5892, 3, 33, 16, 0, 5892, 1014, 1, 0, 0, 0, 5893, 5894, 3, 41, 20, 0, 5894, 5895, 3, 15, 7, 0, 5895, 5896, 3, 45, 22, 0, 5896, 5897, 3, 47, 23, 0, 5897, 5898, 3, 41, 20, 0, 5898, 5899, 3, 33, 16, 0, 5899, 5900, 3, 15, 7, 0, 5900, 5901, 3, 13, 6, 0, 5901, 5902, 5, 95, 0, 0, 5902, 5903, 3, 11, 5, 0, 5903, 5904, 3, 7, 3, 0, 5904, 5905, 3, 41, 20, 0, 5905, 5906, 3, 13, 6, 0, 5906, 5907, 3, 23, 11, 0, 5907, 5908, 3, 33, 16, 0, 5908, 5909, 3, 7, 3, 0, 5909, 5910, 3, 29, 14, 0, 5910, 5911, 3, 23, 11, 0, 5911, 5912, 3, 45, 22, 0, 5912, 5913, 3, 55, 27, 0, 5913, 1016, 1, 0, 0, 0, 5914, 5915, 3, 41, 20, 0, 5915, 5916, 3, 15, 7, 0, 5916, 5917, 3, 45, 22, 0, 5917, 5918, 3, 47, 23, 0, 5918, 5919, 3, 41, 20, 0, 5919, 5920, 3, 33, 16, 0, 5920, 5921, 3, 15, 7, 0, 5921, 5922, 3, 13, 6, 0, 5922, 5923, 5, 95, 0, 0, 5923, 5924, 3, 29, 14, 0, 5924, 5925, 3, 15, 7, 0, 5925, 5926, 3, 33, 16, 0, 5926, 5927, 3, 19, 9, 0, 5927, 5928, 3, 45, 22, 0, 5928, 5929, 3, 21, 10, 0, 5929, 1018, 1, 0, 0, 0, 5930, 5931, 3, 41, 20, 0, 5931, 5932, 3, 15, 7, 0, 5932, 5933, 3, 45, 22, 0, 5933, 5934, 3, 47, 23, 0, 5934, 5935, 3, 41, 20, 0, 5935, 5936, 3, 33, 16, 0, 5936, 5937, 3, 15, 7, 0, 5937, 5938, 3, 13, 6, 0, 5938, 5939, 5, 95, 0, 0, 5939, 5940, 3, 35, 17, 0, 5940, 5941, 3, 11, 5, 0, 5941, 5942, 3, 45, 22, 0, 5942, 5943, 3, 15, 7, 0, 5943, 5944, 3, 45, 22, 0, 5944, 5945, 5, 95, 0, 0, 5945, 5946, 3, 29, 14, 0, 5946, 5947, 3, 15, 7, 0, 5947, 5948, 3, 33, 16, 0, 5948, 5949, 3, 19, 9, 0, 5949, 5950, 3, 45, 22, 0, 5950, 5951, 3, 21, 10, 0, 5951, 1020, 1, 0, 0, 0, 5952, 5953, 3, 41, 20, 0, 5953, 5954, 3, 15, 7, 0, 5954, 5955, 3, 45, 22, 0, 5955, 5956, 3, 47, 23, 0, 5956, 5957, 3, 41, 20, 0, 5957, 5958, 3, 33, 16, 0, 5958, 5959, 3, 15, 7, 0, 5959, 5960, 3, 13, 6, 0, 5960, 5961, 5, 95, 0, 0, 5961, 5962, 3, 43, 21, 0, 5962, 5963, 3, 39, 19, 0, 5963, 5964, 3, 29, 14, 0, 5964, 5965, 3, 43, 21, 0, 5965, 5966, 3, 45, 22, 0, 5966, 5967, 3, 7, 3, 0, 5967, 5968, 3, 45, 22, 0, 5968, 5969, 3, 15, 7, 0, 5969, 1022, 1, 0, 0, 0, 5970, 5971, 3, 41, 20, 0, 5971, 5972, 3, 15, 7, 0, 5972, 5973, 3, 45, 22, 0, 5973, 5974, 3, 47, 23, 0, 5974, 5975, 3, 41, 20, 0, 5975, 5976, 3, 33, 16, 0, 5976, 5977, 3, 23, 11, 0, 5977, 5978, 3, 33, 16, 0, 5978, 5979, 3, 19, 9, 0, 5979, 1024, 1, 0, 0, 0, 5980, 5981, 3, 41, 20, 0, 5981, 5982, 3, 15, 7, 0, 5982, 5983, 3, 45, 22, 0, 5983, 5984, 3, 47, 23, 0, 5984, 5985, 3, 41, 20, 0, 5985, 5986, 3, 33, 16, 0, 5986, 5987, 3, 43, 21, 0, 5987, 1026, 1, 0, 0, 0, 5988, 5989, 3, 41, 20, 0, 5989, 5990, 3, 15, 7, 0, 5990, 5991, 3, 49, 24, 0, 5991, 5992, 3, 35, 17, 0, 5992, 5993, 3, 27, 13, 0, 5993, 5994, 3, 15, 7, 0, 5994, 1028, 1, 0, 0, 0, 5995, 5996, 3, 41, 20, 0, 5996, 5997, 3, 23, 11, 0, 5997, 5998, 3, 19, 9, 0, 5998, 5999, 3, 21, 10, 0, 5999, 6000, 3, 45, 22, 0, 6000, 1030, 1, 0, 0, 0, 6001, 6002, 3, 41, 20, 0, 6002, 6003, 3, 35, 17, 0, 6003, 6004, 3, 29, 14, 0, 6004, 6005, 3, 15, 7, 0, 6005, 1032, 1, 0, 0, 0, 6006, 6007, 3, 41, 20, 0, 6007, 6008, 3, 35, 17, 0, 6008, 6009, 3, 29, 14, 0, 6009, 6010, 3, 29, 14, 0, 6010, 6011, 3, 9, 4, 0, 6011, 6012, 3, 7, 3, 0, 6012, 6013, 3, 11, 5, 0, 6013, 6014, 3, 27, 13, 0, 6014, 1034, 1, 0, 0, 0, 6015, 6016, 3, 41, 20, 0, 6016, 6017, 3, 35, 17, 0, 6017, 6018, 3, 29, 14, 0, 6018, 6019, 3, 29, 14, 0, 6019, 6020, 3, 47, 23, 0, 6020, 6021, 3, 37, 18, 0, 6021, 1036, 1, 0, 0, 0, 6022, 6023, 3, 41, 20, 0, 6023, 6024, 3, 35, 17, 0, 6024, 6025, 3, 47, 23, 0, 6025, 6026, 3, 45, 22, 0, 6026, 6027, 3, 23, 11, 0, 6027, 6028, 3, 33, 16, 0, 6028, 6029, 3, 15, 7, 0, 6029, 1038, 1, 0, 0, 0, 6030, 6031, 3, 41, 20, 0, 6031, 6032, 3, 35, 17, 0, 6032, 6033, 3, 47, 23, 0, 6033, 6034, 3, 45, 22, 0, 6034, 6035, 3, 23, 11, 0, 6035, 6036, 3, 33, 16, 0, 6036, 6037, 3, 15, 7, 0, 6037, 6038, 5, 95, 0, 0, 6038, 6039, 3, 11, 5, 0, 6039, 6040, 3, 7, 3, 0, 6040, 6041, 3, 45, 22, 0, 6041, 6042, 3, 7, 3, 0, 6042, 6043, 3, 29, 14, 0, 6043, 6044, 3, 35, 17, 0, 6044, 6045, 3, 19, 9, 0, 6045, 1040, 1, 0, 0, 0, 6046, 6047, 3, 41, 20, 0, 6047, 6048, 3, 35, 17, 0, 6048, 6049, 3, 47, 23, 0, 6049, 6050, 3, 45, 22, 0, 6050, 6051, 3, 23, 11, 0, 6051, 6052, 3, 33, 16, 0, 6052, 6053, 3, 15, 7, 0, 6053, 6054, 5, 95, 0, 0, 6054, 6055, 3, 33, 16, 0, 6055, 6056, 3, 7, 3, 0, 6056, 6057, 3, 31, 15, 0, 6057, 6058, 3, 15, 7, 0, 6058, 1042, 1, 0, 0, 0, 6059, 6060, 3, 41, 20, 0, 6060, 6061, 3, 35, 17, 0, 6061, 6062, 3, 47, 23, 0, 6062, 6063, 3, 45, 22, 0, 6063, 6064, 3, 23, 11, 0, 6064, 6065, 3, 33, 16, 0, 6065, 6066, 3, 15, 7, 0, 6066, 6067, 5, 95, 0, 0, 6067, 6068, 3, 43, 21, 0, 6068, 6069, 3, 11, 5, 0, 6069, 6070, 3, 21, 10, 0, 6070, 6071, 3, 15, 7, 0, 6071, 6072, 3, 31, 15, 0, 6072, 6073, 3, 7, 3, 0, 6073, 1044, 1, 0, 0, 0, 6074, 6075, 3, 41, 20, 0, 6075, 6076, 3, 35, 17, 0, 6076, 6077, 3, 51, 25, 0, 6077, 1046, 1, 0, 0, 0, 6078, 6079, 3, 41, 20, 0, 6079, 6080, 3, 35, 17, 0, 6080, 6081, 3, 51, 25, 0, 6081, 6082, 5, 95, 0, 0, 6082, 6083, 3, 11, 5, 0, 6083, 6084, 3, 35, 17, 0, 6084, 6085, 3, 47, 23, 0, 6085, 6086, 3, 33, 16, 0, 6086, 6087, 3, 45, 22, 0, 6087, 1048, 1, 0, 0, 0, 6088, 6089, 3, 41, 20, 0, 6089, 6090, 3, 35, 17, 0, 6090, 6091, 3, 51, 25, 0, 6091, 6092, 5, 95, 0, 0, 6092, 6093, 3, 33, 16, 0, 6093, 6094, 3, 47, 23, 0, 6094, 6095, 3, 31, 15, 0, 6095, 6096, 3, 9, 4, 0, 6096, 6097, 3, 15, 7, 0, 6097, 6098, 3, 41, 20, 0, 6098, 1050, 1, 0, 0, 0, 6099, 6100, 3, 41, 20, 0, 6100, 6101, 3, 35, 17, 0, 6101, 6102, 3, 51, 25, 0, 6102, 6103, 3, 43, 21, 0, 6103, 1052, 1, 0, 0, 0, 6104, 6105, 3, 41, 20, 0, 6105, 6106, 3, 47, 23, 0, 6106, 6107, 3, 29, 14, 0, 6107, 6108, 3, 15, 7, 0, 6108, 1054, 1, 0, 0, 0, 6109, 6110, 3, 43, 21, 0, 6110, 6111, 3, 7, 3, 0, 6111, 6112, 3, 49, 24, 0, 6112, 6113, 3, 15, 7, 0, 6113, 6114, 3, 37, 18, 0, 6114, 6115, 3, 35, 17, 0, 6115, 6116, 3, 23, 11, 0, 6116, 6117, 3, 33, 16, 0, 6117, 6118, 3, 45, 22, 0, 6118, 1056, 1, 0, 0, 0, 6119, 6120, 3, 43, 21, 0, 6120, 6121, 3, 11, 5, 0, 6121, 6122, 3, 7, 3, 0, 6122, 6123, 3, 29, 14, 0, 6123, 6124, 3, 15, 7, 0, 6124, 1058, 1, 0, 0, 0, 6125, 6126, 3, 43, 21, 0, 6126, 6127, 3, 11, 5, 0, 6127, 6128, 3, 21, 10, 0, 6128, 6129, 3, 15, 7, 0, 6129, 6130, 3, 31, 15, 0, 6130, 6131, 3, 7, 3, 0, 6131, 1060, 1, 0, 0, 0, 6132, 6133, 3, 43, 21, 0, 6133, 6134, 3, 11, 5, 0, 6134, 6135, 3, 21, 10, 0, 6135, 6136, 3, 15, 7, 0, 6136, 6137, 3, 31, 15, 0, 6137, 6138, 3, 7, 3, 0, 6138, 6139, 5, 95, 0, 0, 6139, 6140, 3, 33, 16, 0, 6140, 6141, 3, 7, 3, 0, 6141, 6142, 3, 31, 15, 0, 6142, 6143, 3, 15, 7, 0, 6143, 1062, 1, 0, 0, 0, 6144, 6145, 3, 43, 21, 0, 6145, 6146, 3, 11, 5, 0, 6146, 6147, 3, 35, 17, 0, 6147, 6148, 3, 37, 18, 0, 6148, 6149, 3, 15, 7, 0, 6149, 1064, 1, 0, 0, 0, 6150, 6151, 3, 43, 21, 0, 6151, 6152, 3, 11, 5, 0, 6152, 6153, 3, 35, 17, 0, 6153, 6154, 3, 37, 18, 0, 6154, 6155, 3, 15, 7, 0, 6155, 6156, 5, 95, 0, 0, 6156, 6157, 3, 11, 5, 0, 6157, 6158, 3, 7, 3, 0, 6158, 6159, 3, 45, 22, 0, 6159, 6160, 3, 7, 3, 0, 6160, 6161, 3, 29, 14, 0, 6161, 6162, 3, 35, 17, 0, 6162, 6163, 3, 19, 9, 0, 6163, 1066, 1, 0, 0, 0, 6164, 6165, 3, 43, 21, 0, 6165, 6166, 3, 11, 5, 0, 6166, 6167, 3, 35, 17, 0, 6167, 6168, 3, 37, 18, 0, 6168, 6169, 3, 15, 7, 0, 6169, 6170, 5, 95, 0, 0, 6170, 6171, 3, 33, 16, 0, 6171, 6172, 3, 7, 3, 0, 6172, 6173, 3, 31, 15, 0, 6173, 6174, 3, 15, 7, 0, 6174, 1068, 1, 0, 0, 0, 6175, 6176, 3, 43, 21, 0, 6176, 6177, 3, 11, 5, 0, 6177, 6178, 3, 35, 17, 0, 6178, 6179, 3, 37, 18, 0, 6179, 6180, 3, 15, 7, 0, 6180, 6181, 5, 95, 0, 0, 6181, 6182, 3, 43, 21, 0, 6182, 6183, 3, 11, 5, 0, 6183, 6184, 3, 21, 10, 0, 6184, 6185, 3, 15, 7, 0, 6185, 6186, 3, 31, 15, 0, 6186, 6187, 3, 7, 3, 0, 6187, 1070, 1, 0, 0, 0, 6188, 6189, 3, 43, 21, 0, 6189, 6190, 3, 11, 5, 0, 6190, 6191, 3, 41, 20, 0, 6191, 6192, 3, 35, 17, 0, 6192, 6193, 3, 29, 14, 0, 6193, 6194, 3, 29, 14, 0, 6194, 1072, 1, 0, 0, 0, 6195, 6196, 3, 43, 21, 0, 6196, 6197, 3, 15, 7, 0, 6197, 6198, 3, 7, 3, 0, 6198, 6199, 3, 41, 20, 0, 6199, 6200, 3, 11, 5, 0, 6200, 6201, 3, 21, 10, 0, 6201, 1074, 1, 0, 0, 0, 6202, 6203, 3, 43, 21, 0, 6203, 6204, 3, 15, 7, 0, 6204, 6205, 3, 11, 5, 0, 6205, 6206, 3, 35, 17, 0, 6206, 6207, 3, 33, 16, 0, 6207, 6208, 3, 13, 6, 0, 6208, 1076, 1, 0, 0, 0, 6209, 6210, 3, 43, 21, 0, 6210, 6211, 3, 15, 7, 0, 6211, 6212, 3, 11, 5, 0, 6212, 6213, 3, 45, 22, 0, 6213, 6214, 3, 23, 11, 0, 6214, 6215, 3, 35, 17, 0, 6215, 6216, 3, 33, 16, 0, 6216, 1078, 1, 0, 0, 0, 6217, 6218, 3, 43, 21, 0, 6218, 6219, 3, 15, 7, 0, 6219, 6220, 3, 11, 5, 0, 6220, 6221, 3, 47, 23, 0, 6221, 6222, 3, 41, 20, 0, 6222, 6223, 3, 23, 11, 0, 6223, 6224, 3, 45, 22, 0, 6224, 6225, 3, 55, 27, 0, 6225, 1080, 1, 0, 0, 0, 6226, 6227, 3, 43, 21, 0, 6227, 6228, 3, 15, 7, 0, 6228, 6229, 3, 29, 14, 0, 6229, 6230, 3, 15, 7, 0, 6230, 6231, 3, 11, 5, 0, 6231, 6232, 3, 45, 22, 0, 6232, 1082, 1, 0, 0, 0, 6233, 6234, 3, 43, 21, 0, 6234, 6235, 3, 15, 7, 0, 6235, 6236, 3, 29, 14, 0, 6236, 6237, 3, 17, 8, 0, 6237, 1084, 1, 0, 0, 0, 6238, 6239, 3, 43, 21, 0, 6239, 6240, 3, 15, 7, 0, 6240, 6241, 3, 33, 16, 0, 6241, 6242, 3, 43, 21, 0, 6242, 6243, 3, 23, 11, 0, 6243, 6244, 3, 45, 22, 0, 6244, 6245, 3, 23, 11, 0, 6245, 6246, 3, 49, 24, 0, 6246, 6247, 3, 15, 7, 0, 6247, 1086, 1, 0, 0, 0, 6248, 6249, 3, 43, 21, 0, 6249, 6250, 3, 15, 7, 0, 6250, 6251, 3, 39, 19, 0, 6251, 6252, 3, 47, 23, 0, 6252, 6253, 3, 15, 7, 0, 6253, 6254, 3, 33, 16, 0, 6254, 6255, 3, 11, 5, 0, 6255, 6256, 3, 15, 7, 0, 6256, 1088, 1, 0, 0, 0, 6257, 6258, 3, 43, 21, 0, 6258, 6259, 3, 15, 7, 0, 6259, 6260, 3, 39, 19, 0, 6260, 6261, 3, 47, 23, 0, 6261, 6262, 3, 15, 7, 0, 6262, 6263, 3, 33, 16, 0, 6263, 6264, 3, 11, 5, 0, 6264, 6265, 3, 15, 7, 0, 6265, 6266, 3, 43, 21, 0, 6266, 1090, 1, 0, 0, 0, 6267, 6268, 3, 43, 21, 0, 6268, 6269, 3, 15, 7, 0, 6269, 6270, 3, 41, 20, 0, 6270, 6271, 3, 23, 11, 0, 6271, 6272, 3, 7, 3, 0, 6272, 6273, 3, 29, 14, 0, 6273, 6274, 3, 23, 11, 0, 6274, 6275, 3, 57, 28, 0, 6275, 6276, 3, 7, 3, 0, 6276, 6277, 3, 9, 4, 0, 6277, 6278, 3, 29, 14, 0, 6278, 6279, 3, 15, 7, 0, 6279, 1092, 1, 0, 0, 0, 6280, 6281, 3, 43, 21, 0, 6281, 6282, 3, 15, 7, 0, 6282, 6283, 3, 41, 20, 0, 6283, 6284, 3, 49, 24, 0, 6284, 6285, 3, 15, 7, 0, 6285, 6286, 3, 41, 20, 0, 6286, 6287, 5, 95, 0, 0, 6287, 6288, 3, 33, 16, 0, 6288, 6289, 3, 7, 3, 0, 6289, 6290, 3, 31, 15, 0, 6290, 6291, 3, 15, 7, 0, 6291, 1094, 1, 0, 0, 0, 6292, 6293, 3, 43, 21, 0, 6293, 6294, 3, 15, 7, 0, 6294, 6295, 3, 43, 21, 0, 6295, 6296, 3, 43, 21, 0, 6296, 6297, 3, 23, 11, 0, 6297, 6298, 3, 35, 17, 0, 6298, 6299, 3, 33, 16, 0, 6299, 1096, 1, 0, 0, 0, 6300, 6301, 3, 43, 21, 0, 6301, 6302, 3, 15, 7, 0, 6302, 6303, 3, 43, 21, 0, 6303, 6304, 3, 43, 21, 0, 6304, 6305, 3, 23, 11, 0, 6305, 6306, 3, 35, 17, 0, 6306, 6307, 3, 33, 16, 0, 6307, 6308, 5, 95, 0, 0, 6308, 6309, 3, 47, 23, 0, 6309, 6310, 3, 43, 21, 0, 6310, 6311, 3, 15, 7, 0, 6311, 6312, 3, 41, 20, 0, 6312, 1098, 1, 0, 0, 0, 6313, 6314, 3, 43, 21, 0, 6314, 6315, 3, 15, 7, 0, 6315, 6316, 3, 45, 22, 0, 6316, 1100, 1, 0, 0, 0, 6317, 6318, 3, 43, 21, 0, 6318, 6319, 3, 15, 7, 0, 6319, 6320, 3, 45, 22, 0, 6320, 6321, 3, 35, 17, 0, 6321, 6322, 3, 17, 8, 0, 6322, 1102, 1, 0, 0, 0, 6323, 6324, 3, 43, 21, 0, 6324, 6325, 3, 15, 7, 0, 6325, 6326, 3, 45, 22, 0, 6326, 6327, 3, 43, 21, 0, 6327, 1104, 1, 0, 0, 0, 6328, 6329, 3, 43, 21, 0, 6329, 6330, 3, 21, 10, 0, 6330, 6331, 3, 7, 3, 0, 6331, 6332, 3, 41, 20, 0, 6332, 6333, 3, 15, 7, 0, 6333, 1106, 1, 0, 0, 0, 6334, 6335, 3, 43, 21, 0, 6335, 6336, 3, 21, 10, 0, 6336, 6337, 3, 35, 17, 0, 6337, 6338, 3, 51, 25, 0, 6338, 1108, 1, 0, 0, 0, 6339, 6340, 3, 43, 21, 0, 6340, 6341, 3, 23, 11, 0, 6341, 6342, 3, 31, 15, 0, 6342, 6343, 3, 23, 11, 0, 6343, 6344, 3, 29, 14, 0, 6344, 6345, 3, 7, 3, 0, 6345, 6346, 3, 41, 20, 0, 6346, 1110, 1, 0, 0, 0, 6347, 6348, 3, 43, 21, 0, 6348, 6349, 3, 23, 11, 0, 6349, 6350, 3, 31, 15, 0, 6350, 6351, 3, 37, 18, 0, 6351, 6352, 3, 29, 14, 0, 6352, 6353, 3, 15, 7, 0, 6353, 1112, 1, 0, 0, 0, 6354, 6355, 3, 43, 21, 0, 6355, 6356, 3, 23, 11, 0, 6356, 6357, 3, 57, 28, 0, 6357, 6358, 3, 15, 7, 0, 6358, 1114, 1, 0, 0, 0, 6359, 6360, 3, 43, 21, 0, 6360, 6361, 3, 27, 13, 0, 6361, 6362, 3, 23, 11, 0, 6362, 6363, 3, 37, 18, 0, 6363, 1116, 1, 0, 0, 0, 6364, 6365, 3, 43, 21, 0, 6365, 6366, 3, 31, 15, 0, 6366, 6367, 3, 7, 3, 0, 6367, 6368, 3, 29, 14, 0, 6368, 6369, 3, 29, 14, 0, 6369, 6370, 3, 23, 11, 0, 6370, 6371, 3, 33, 16, 0, 6371, 6372, 3, 45, 22, 0, 6372, 1118, 1, 0, 0, 0, 6373, 6374, 3, 43, 21, 0, 6374, 6375, 3, 33, 16, 0, 6375, 6376, 3, 7, 3, 0, 6376, 6377, 3, 37, 18, 0, 6377, 6378, 3, 43, 21, 0, 6378, 6379, 3, 21, 10, 0, 6379, 6380, 3, 35, 17, 0, 6380, 6381, 3, 45, 22, 0, 6381, 1120, 1, 0, 0, 0, 6382, 6383, 3, 43, 21, 0, 6383, 6384, 3, 35, 17, 0, 6384, 6385, 3, 31, 15, 0, 6385, 6386, 3, 15, 7, 0, 6386, 1122, 1, 0, 0, 0, 6387, 6388, 3, 43, 21, 0, 6388, 6389, 3, 35, 17, 0, 6389, 6390, 3, 47, 23, 0, 6390, 6391, 3, 41, 20, 0, 6391, 6392, 3, 11, 5, 0, 6392, 6393, 3, 15, 7, 0, 6393, 1124, 1, 0, 0, 0, 6394, 6395, 3, 43, 21, 0, 6395, 6396, 3, 37, 18, 0, 6396, 6397, 3, 7, 3, 0, 6397, 6398, 3, 11, 5, 0, 6398, 6399, 3, 15, 7, 0, 6399, 1126, 1, 0, 0, 0, 6400, 6401, 3, 43, 21, 0, 6401, 6402, 3, 37, 18, 0, 6402, 6403, 3, 15, 7, 0, 6403, 6404, 3, 11, 5, 0, 6404, 6405, 3, 23, 11, 0, 6405, 6406, 3, 17, 8, 0, 6406, 6407, 3, 23, 11, 0, 6407, 6408, 3, 11, 5, 0, 6408, 1128, 1, 0, 0, 0, 6409, 6410, 3, 43, 21, 0, 6410, 6411, 3, 37, 18, 0, 6411, 6412, 3, 15, 7, 0, 6412, 6413, 3, 11, 5, 0, 6413, 6414, 3, 23, 11, 0, 6414, 6415, 3, 17, 8, 0, 6415, 6416, 3, 23, 11, 0, 6416, 6417, 3, 11, 5, 0, 6417, 6418, 5, 95, 0, 0, 6418, 6419, 3, 33, 16, 0, 6419, 6420, 3, 7, 3, 0, 6420, 6421, 3, 31, 15, 0, 6421, 6422, 3, 15, 7, 0, 6422, 1130, 1, 0, 0, 0, 6423, 6424, 3, 43, 21, 0, 6424, 6425, 3, 37, 18, 0, 6425, 6426, 3, 15, 7, 0, 6426, 6427, 3, 11, 5, 0, 6427, 6428, 3, 23, 11, 0, 6428, 6429, 3, 17, 8, 0, 6429, 6430, 3, 23, 11, 0, 6430, 6431, 3, 11, 5, 0, 6431, 6432, 3, 45, 22, 0, 6432, 6433, 3, 55, 27, 0, 6433, 6434, 3, 37, 18, 0, 6434, 6435, 3, 15, 7, 0, 6435, 1132, 1, 0, 0, 0, 6436, 6437, 3, 43, 21, 0, 6437, 6438, 3, 39, 19, 0, 6438, 6439, 3, 29, 14, 0, 6439, 1134, 1, 0, 0, 0, 6440, 6441, 3, 43, 21, 0, 6441, 6442, 3, 39, 19, 0, 6442, 6443, 3, 29, 14, 0, 6443, 6444, 3, 11, 5, 0, 6444, 6445, 3, 35, 17, 0, 6445, 6446, 3, 13, 6, 0, 6446, 6447, 3, 15, 7, 0, 6447, 1136, 1, 0, 0, 0, 6448, 6449, 3, 43, 21, 0, 6449, 6450, 3, 39, 19, 0, 6450, 6451, 3, 29, 14, 0, 6451, 6452, 3, 15, 7, 0, 6452, 6453, 3, 41, 20, 0, 6453, 6454, 3, 41, 20, 0, 6454, 6455, 3, 35, 17, 0, 6455, 6456, 3, 41, 20, 0, 6456, 1138, 1, 0, 0, 0, 6457, 6458, 3, 43, 21, 0, 6458, 6459, 3, 39, 19, 0, 6459, 6460, 3, 29, 14, 0, 6460, 6461, 3, 15, 7, 0, 6461, 6462, 3, 53, 26, 0, 6462, 6463, 3, 11, 5, 0, 6463, 6464, 3, 15, 7, 0, 6464, 6465, 3, 37, 18, 0, 6465, 6466, 3, 45, 22, 0, 6466, 6467, 3, 23, 11, 0, 6467, 6468, 3, 35, 17, 0, 6468, 6469, 3, 33, 16, 0, 6469, 1140, 1, 0, 0, 0, 6470, 6471, 3, 43, 21, 0, 6471, 6472, 3, 39, 19, 0, 6472, 6473, 3, 29, 14, 0, 6473, 6474, 3, 43, 21, 0, 6474, 6475, 3, 45, 22, 0, 6475, 6476, 3, 7, 3, 0, 6476, 6477, 3, 45, 22, 0, 6477, 6478, 3, 15, 7, 0, 6478, 1142, 1, 0, 0, 0, 6479, 6480, 3, 43, 21, 0, 6480, 6481, 3, 39, 19, 0, 6481, 6482, 3, 29, 14, 0, 6482, 6483, 3, 51, 25, 0, 6483, 6484, 3, 7, 3, 0, 6484, 6485, 3, 41, 20, 0, 6485, 6486, 3, 33, 16, 0, 6486, 6487, 3, 23, 11, 0, 6487, 6488, 3, 33, 16, 0, 6488, 6489, 3, 19, 9, 0, 6489, 1144, 1, 0, 0, 0, 6490, 6491, 3, 43, 21, 0, 6491, 6492, 3, 39, 19, 0, 6492, 6493, 3, 41, 20, 0, 6493, 6494, 3, 45, 22, 0, 6494, 1146, 1, 0, 0, 0, 6495, 6496, 3, 43, 21, 0, 6496, 6497, 3, 45, 22, 0, 6497, 6498, 3, 7, 3, 0, 6498, 6499, 3, 9, 4, 0, 6499, 6500, 3, 29, 14, 0, 6500, 6501, 3, 15, 7, 0, 6501, 1148, 1, 0, 0, 0, 6502, 6503, 3, 43, 21, 0, 6503, 6504, 3, 45, 22, 0, 6504, 6505, 3, 7, 3, 0, 6505, 6506, 3, 41, 20, 0, 6506, 6507, 3, 45, 22, 0, 6507, 1150, 1, 0, 0, 0, 6508, 6509, 3, 43, 21, 0, 6509, 6510, 3, 45, 22, 0, 6510, 6511, 3, 7, 3, 0, 6511, 6512, 3, 45, 22, 0, 6512, 6513, 3, 15, 7, 0, 6513, 1152, 1, 0, 0, 0, 6514, 6515, 3, 43, 21, 0, 6515, 6516, 3, 45, 22, 0, 6516, 6517, 3, 7, 3, 0, 6517, 6518, 3, 45, 22, 0, 6518, 6519, 3, 15, 7, 0, 6519, 6520, 3, 31, 15, 0, 6520, 6521, 3, 15, 7, 0, 6521, 6522, 3, 33, 16, 0, 6522, 6523, 3, 45, 22, 0, 6523, 1154, 1, 0, 0, 0, 6524, 6525, 3, 43, 21, 0, 6525, 6526, 3, 45, 22, 0, 6526, 6527, 3, 7, 3, 0, 6527, 6528, 3, 45, 22, 0, 6528, 6529, 3, 23, 11, 0, 6529, 6530, 3, 11, 5, 0, 6530, 1156, 1, 0, 0, 0, 6531, 6532, 3, 43, 21, 0, 6532, 6533, 3, 45, 22, 0, 6533, 6534, 3, 7, 3, 0, 6534, 6535, 3, 45, 22, 0, 6535, 6536, 3, 23, 11, 0, 6536, 6537, 3, 43, 21, 0, 6537, 6538, 3, 45, 22, 0, 6538, 6539, 3, 23, 11, 0, 6539, 6540, 3, 11, 5, 0, 6540, 6541, 3, 43, 21, 0, 6541, 1158, 1, 0, 0, 0, 6542, 6543, 3, 43, 21, 0, 6543, 6544, 3, 45, 22, 0, 6544, 6545, 3, 13, 6, 0, 6545, 6546, 3, 13, 6, 0, 6546, 6547, 3, 15, 7, 0, 6547, 6548, 3, 49, 24, 0, 6548, 6549, 5, 95, 0, 0, 6549, 6550, 3, 37, 18, 0, 6550, 6551, 3, 35, 17, 0, 6551, 6552, 3, 37, 18, 0, 6552, 1160, 1, 0, 0, 0, 6553, 6554, 3, 43, 21, 0, 6554, 6555, 3, 45, 22, 0, 6555, 6556, 3, 13, 6, 0, 6556, 6557, 3, 13, 6, 0, 6557, 6558, 3, 15, 7, 0, 6558, 6559, 3, 49, 24, 0, 6559, 6560, 5, 95, 0, 0, 6560, 6561, 3, 43, 21, 0, 6561, 6562, 3, 7, 3, 0, 6562, 6563, 3, 31, 15, 0, 6563, 6564, 3, 37, 18, 0, 6564, 1162, 1, 0, 0, 0, 6565, 6566, 3, 43, 21, 0, 6566, 6567, 3, 45, 22, 0, 6567, 6568, 3, 13, 6, 0, 6568, 6569, 3, 23, 11, 0, 6569, 6570, 3, 33, 16, 0, 6570, 1164, 1, 0, 0, 0, 6571, 6572, 3, 43, 21, 0, 6572, 6573, 3, 45, 22, 0, 6573, 6574, 3, 13, 6, 0, 6574, 6575, 3, 35, 17, 0, 6575, 6576, 3, 47, 23, 0, 6576, 6577, 3, 45, 22, 0, 6577, 1166, 1, 0, 0, 0, 6578, 6579, 3, 43, 21, 0, 6579, 6580, 3, 45, 22, 0, 6580, 6581, 3, 35, 17, 0, 6581, 6582, 3, 41, 20, 0, 6582, 6583, 3, 7, 3, 0, 6583, 6584, 3, 19, 9, 0, 6584, 6585, 3, 15, 7, 0, 6585, 1168, 1, 0, 0, 0, 6586, 6587, 3, 43, 21, 0, 6587, 6588, 3, 45, 22, 0, 6588, 6589, 3, 41, 20, 0, 6589, 6590, 3, 23, 11, 0, 6590, 6591, 3, 11, 5, 0, 6591, 6592, 3, 45, 22, 0, 6592, 1170, 1, 0, 0, 0, 6593, 6594, 3, 43, 21, 0, 6594, 6595, 3, 45, 22, 0, 6595, 6596, 3, 41, 20, 0, 6596, 6597, 3, 47, 23, 0, 6597, 6598, 3, 11, 5, 0, 6598, 6599, 3, 45, 22, 0, 6599, 6600, 3, 47, 23, 0, 6600, 6601, 3, 41, 20, 0, 6601, 6602, 3, 15, 7, 0, 6602, 1172, 1, 0, 0, 0, 6603, 6604, 3, 43, 21, 0, 6604, 6605, 3, 45, 22, 0, 6605, 6606, 3, 55, 27, 0, 6606, 6607, 3, 29, 14, 0, 6607, 6608, 3, 15, 7, 0, 6608, 1174, 1, 0, 0, 0, 6609, 6610, 3, 43, 21, 0, 6610, 6611, 3, 47, 23, 0, 6611, 6612, 3, 9, 4, 0, 6612, 6613, 3, 11, 5, 0, 6613, 6614, 3, 29, 14, 0, 6614, 6615, 3, 7, 3, 0, 6615, 6616, 3, 43, 21, 0, 6616, 6617, 3, 43, 21, 0, 6617, 6618, 5, 95, 0, 0, 6618, 6619, 3, 35, 17, 0, 6619, 6620, 3, 41, 20, 0, 6620, 6621, 3, 23, 11, 0, 6621, 6622, 3, 19, 9, 0, 6622, 6623, 3, 23, 11, 0, 6623, 6624, 3, 33, 16, 0, 6624, 1176, 1, 0, 0, 0, 6625, 6626, 3, 43, 21, 0, 6626, 6627, 3, 47, 23, 0, 6627, 6628, 3, 9, 4, 0, 6628, 6629, 3, 29, 14, 0, 6629, 6630, 3, 23, 11, 0, 6630, 6631, 3, 43, 21, 0, 6631, 6632, 3, 45, 22, 0, 6632, 1178, 1, 0, 0, 0, 6633, 6634, 3, 43, 21, 0, 6634, 6635, 3, 47, 23, 0, 6635, 6636, 3, 9, 4, 0, 6636, 6637, 3, 31, 15, 0, 6637, 6638, 3, 47, 23, 0, 6638, 6639, 3, 29, 14, 0, 6639, 6640, 3, 45, 22, 0, 6640, 6641, 3, 23, 11, 0, 6641, 6642, 3, 43, 21, 0, 6642, 6643, 3, 15, 7, 0, 6643, 6644, 3, 45, 22, 0, 6644, 1180, 1, 0, 0, 0, 6645, 6646, 3, 43, 21, 0, 6646, 6647, 3, 47, 23, 0, 6647, 6648, 3, 9, 4, 0, 6648, 6649, 3, 43, 21, 0, 6649, 6650, 3, 11, 5, 0, 6650, 6651, 3, 41, 20, 0, 6651, 6652, 3, 23, 11, 0, 6652, 6653, 3, 37, 18, 0, 6653, 6654, 3, 45, 22, 0, 6654, 6655, 3, 23, 11, 0, 6655, 6656, 3, 35, 17, 0, 6656, 6657, 3, 33, 16, 0, 6657, 1182, 1, 0, 0, 0, 6658, 6659, 3, 43, 21, 0, 6659, 6660, 3, 47, 23, 0, 6660, 6661, 3, 9, 4, 0, 6661, 6662, 3, 43, 21, 0, 6662, 6663, 3, 45, 22, 0, 6663, 6664, 3, 41, 20, 0, 6664, 6665, 3, 23, 11, 0, 6665, 6666, 3, 33, 16, 0, 6666, 6667, 3, 19, 9, 0, 6667, 1184, 1, 0, 0, 0, 6668, 6669, 3, 43, 21, 0, 6669, 6670, 3, 47, 23, 0, 6670, 6671, 3, 31, 15, 0, 6671, 1186, 1, 0, 0, 0, 6672, 6673, 3, 43, 21, 0, 6673, 6674, 3, 55, 27, 0, 6674, 6675, 3, 31, 15, 0, 6675, 6676, 3, 31, 15, 0, 6676, 6677, 3, 15, 7, 0, 6677, 6678, 3, 45, 22, 0, 6678, 6679, 3, 41, 20, 0, 6679, 6680, 3, 23, 11, 0, 6680, 6681, 3, 11, 5, 0, 6681, 1188, 1, 0, 0, 0, 6682, 6683, 3, 43, 21, 0, 6683, 6684, 3, 55, 27, 0, 6684, 6685, 3, 43, 21, 0, 6685, 6686, 3, 23, 11, 0, 6686, 6687, 3, 13, 6, 0, 6687, 1190, 1, 0, 0, 0, 6688, 6689, 3, 43, 21, 0, 6689, 6690, 3, 55, 27, 0, 6690, 6691, 3, 43, 21, 0, 6691, 6692, 3, 45, 22, 0, 6692, 6693, 3, 15, 7, 0, 6693, 6694, 3, 31, 15, 0, 6694, 1192, 1, 0, 0, 0, 6695, 6696, 3, 43, 21, 0, 6696, 6697, 3, 55, 27, 0, 6697, 6698, 3, 43, 21, 0, 6698, 6699, 3, 45, 22, 0, 6699, 6700, 3, 15, 7, 0, 6700, 6701, 3, 31, 15, 0, 6701, 6702, 5, 95, 0, 0, 6702, 6703, 3, 47, 23, 0, 6703, 6704, 3, 43, 21, 0, 6704, 6705, 3, 15, 7, 0, 6705, 6706, 3, 41, 20, 0, 6706, 1194, 1, 0, 0, 0, 6707, 6708, 3, 45, 22, 0, 6708, 6709, 3, 7, 3, 0, 6709, 6710, 3, 9, 4, 0, 6710, 6711, 3, 29, 14, 0, 6711, 6712, 3, 15, 7, 0, 6712, 1196, 1, 0, 0, 0, 6713, 6714, 3, 45, 22, 0, 6714, 6715, 3, 7, 3, 0, 6715, 6716, 3, 9, 4, 0, 6716, 6717, 3, 29, 14, 0, 6717, 6718, 3, 15, 7, 0, 6718, 6719, 5, 95, 0, 0, 6719, 6720, 3, 33, 16, 0, 6720, 6721, 3, 7, 3, 0, 6721, 6722, 3, 31, 15, 0, 6722, 6723, 3, 15, 7, 0, 6723, 1198, 1, 0, 0, 0, 6724, 6725, 3, 45, 22, 0, 6725, 6726, 3, 7, 3, 0, 6726, 6727, 3, 9, 4, 0, 6727, 6728, 3, 29, 14, 0, 6728, 6729, 3, 15, 7, 0, 6729, 6730, 3, 43, 21, 0, 6730, 6731, 3, 7, 3, 0, 6731, 6732, 3, 31, 15, 0, 6732, 6733, 3, 37, 18, 0, 6733, 6734, 3, 29, 14, 0, 6734, 6735, 3, 15, 7, 0, 6735, 1200, 1, 0, 0, 0, 6736, 6737, 3, 45, 22, 0, 6737, 6738, 3, 7, 3, 0, 6738, 6739, 3, 9, 4, 0, 6739, 6740, 3, 29, 14, 0, 6740, 6741, 3, 15, 7, 0, 6741, 6742, 3, 43, 21, 0, 6742, 6743, 3, 37, 18, 0, 6743, 6744, 3, 7, 3, 0, 6744, 6745, 3, 11, 5, 0, 6745, 6746, 3, 15, 7, 0, 6746, 1202, 1, 0, 0, 0, 6747, 6748, 3, 45, 22, 0, 6748, 6749, 3, 15, 7, 0, 6749, 6750, 3, 31, 15, 0, 6750, 6751, 3, 37, 18, 0, 6751, 1204, 1, 0, 0, 0, 6752, 6753, 3, 45, 22, 0, 6753, 6754, 3, 15, 7, 0, 6754, 6755, 3, 31, 15, 0, 6755, 6756, 3, 37, 18, 0, 6756, 6757, 3, 29, 14, 0, 6757, 6758, 3, 7, 3, 0, 6758, 6759, 3, 45, 22, 0, 6759, 6760, 3, 15, 7, 0, 6760, 1206, 1, 0, 0, 0, 6761, 6762, 3, 45, 22, 0, 6762, 6763, 3, 15, 7, 0, 6763, 6764, 3, 31, 15, 0, 6764, 6765, 3, 37, 18, 0, 6765, 6766, 3, 35, 17, 0, 6766, 6767, 3, 41, 20, 0, 6767, 6768, 3, 7, 3, 0, 6768, 6769, 3, 41, 20, 0, 6769, 6770, 3, 55, 27, 0, 6770, 1208, 1, 0, 0, 0, 6771, 6772, 3, 45, 22, 0, 6772, 6773, 3, 15, 7, 0, 6773, 6774, 3, 41, 20, 0, 6774, 6775, 3, 31, 15, 0, 6775, 6776, 3, 23, 11, 0, 6776, 6777, 3, 33, 16, 0, 6777, 6778, 3, 7, 3, 0, 6778, 6779, 3, 45, 22, 0, 6779, 6780, 3, 15, 7, 0, 6780, 1210, 1, 0, 0, 0, 6781, 6782, 3, 45, 22, 0, 6782, 6783, 3, 21, 10, 0, 6783, 6784, 3, 7, 3, 0, 6784, 6785, 3, 33, 16, 0, 6785, 1212, 1, 0, 0, 0, 6786, 6787, 3, 45, 22, 0, 6787, 6788, 3, 21, 10, 0, 6788, 6789, 3, 15, 7, 0, 6789, 6790, 3, 33, 16, 0, 6790, 1214, 1, 0, 0, 0, 6791, 6792, 3, 45, 22, 0, 6792, 6793, 3, 23, 11, 0, 6793, 6794, 3, 15, 7, 0, 6794, 6795, 3, 43, 21, 0, 6795, 1216, 1, 0, 0, 0, 6796, 6797, 3, 45, 22, 0, 6797, 6798, 3, 23, 11, 0, 6798, 6799, 3, 31, 15, 0, 6799, 6800, 3, 15, 7, 0, 6800, 1218, 1, 0, 0, 0, 6801, 6802, 3, 45, 22, 0, 6802, 6803, 3, 23, 11, 0, 6803, 6804, 3, 31, 15, 0, 6804, 6805, 3, 15, 7, 0, 6805, 6806, 3, 43, 21, 0, 6806, 6807, 3, 45, 22, 0, 6807, 6808, 3, 7, 3, 0, 6808, 6809, 3, 31, 15, 0, 6809, 6810, 3, 37, 18, 0, 6810, 1220, 1, 0, 0, 0, 6811, 6812, 3, 45, 22, 0, 6812, 6813, 3, 23, 11, 0, 6813, 6814, 3, 31, 15, 0, 6814, 6815, 3, 15, 7, 0, 6815, 6816, 3, 57, 28, 0, 6816, 6817, 3, 35, 17, 0, 6817, 6818, 3, 33, 16, 0, 6818, 6819, 3, 15, 7, 0, 6819, 6820, 5, 95, 0, 0, 6820, 6821, 3, 21, 10, 0, 6821, 6822, 3, 35, 17, 0, 6822, 6823, 3, 47, 23, 0, 6823, 6824, 3, 41, 20, 0, 6824, 1222, 1, 0, 0, 0, 6825, 6826, 3, 45, 22, 0, 6826, 6827, 3, 23, 11, 0, 6827, 6828, 3, 31, 15, 0, 6828, 6829, 3, 15, 7, 0, 6829, 6830, 3, 57, 28, 0, 6830, 6831, 3, 35, 17, 0, 6831, 6832, 3, 33, 16, 0, 6832, 6833, 3, 15, 7, 0, 6833, 6834, 5, 95, 0, 0, 6834, 6835, 3, 31, 15, 0, 6835, 6836, 3, 23, 11, 0, 6836, 6837, 3, 33, 16, 0, 6837, 6838, 3, 47, 23, 0, 6838, 6839, 3, 45, 22, 0, 6839, 6840, 3, 15, 7, 0, 6840, 1224, 1, 0, 0, 0, 6841, 6842, 3, 45, 22, 0, 6842, 6843, 3, 23, 11, 0, 6843, 6844, 3, 31, 15, 0, 6844, 6845, 3, 23, 11, 0, 6845, 6846, 3, 33, 16, 0, 6846, 6847, 3, 19, 9, 0, 6847, 1226, 1, 0, 0, 0, 6848, 6849, 3, 45, 22, 0, 6849, 6850, 3, 35, 17, 0, 6850, 1228, 1, 0, 0, 0, 6851, 6852, 3, 45, 22, 0, 6852, 6853, 3, 35, 17, 0, 6853, 6854, 3, 7, 3, 0, 6854, 6855, 3, 43, 21, 0, 6855, 6856, 3, 45, 22, 0, 6856, 1230, 1, 0, 0, 0, 6857, 6858, 3, 45, 22, 0, 6858, 6859, 3, 35, 17, 0, 6859, 6860, 3, 37, 18, 0, 6860, 6861, 5, 95, 0, 0, 6861, 6862, 3, 29, 14, 0, 6862, 6863, 3, 15, 7, 0, 6863, 6864, 3, 49, 24, 0, 6864, 6865, 3, 15, 7, 0, 6865, 6866, 3, 29, 14, 0, 6866, 6867, 5, 95, 0, 0, 6867, 6868, 3, 11, 5, 0, 6868, 6869, 3, 35, 17, 0, 6869, 6870, 3, 47, 23, 0, 6870, 6871, 3, 33, 16, 0, 6871, 6872, 3, 45, 22, 0, 6872, 1232, 1, 0, 0, 0, 6873, 6874, 3, 45, 22, 0, 6874, 6875, 3, 41, 20, 0, 6875, 6876, 3, 7, 3, 0, 6876, 6877, 3, 23, 11, 0, 6877, 6878, 3, 29, 14, 0, 6878, 6879, 3, 23, 11, 0, 6879, 6880, 3, 33, 16, 0, 6880, 6881, 3, 19, 9, 0, 6881, 1234, 1, 0, 0, 0, 6882, 6883, 3, 45, 22, 0, 6883, 6884, 3, 41, 20, 0, 6884, 6885, 3, 7, 3, 0, 6885, 6886, 3, 33, 16, 0, 6886, 6887, 3, 43, 21, 0, 6887, 6888, 3, 7, 3, 0, 6888, 6889, 3, 11, 5, 0, 6889, 6890, 3, 45, 22, 0, 6890, 6891, 3, 23, 11, 0, 6891, 6892, 3, 35, 17, 0, 6892, 6893, 3, 33, 16, 0, 6893, 1236, 1, 0, 0, 0, 6894, 6895, 3, 45, 22, 0, 6895, 6896, 3, 41, 20, 0, 6896, 6897, 3, 7, 3, 0, 6897, 6898, 3, 33, 16, 0, 6898, 6899, 3, 43, 21, 0, 6899, 6900, 3, 7, 3, 0, 6900, 6901, 3, 11, 5, 0, 6901, 6902, 3, 45, 22, 0, 6902, 6903, 3, 23, 11, 0, 6903, 6904, 3, 35, 17, 0, 6904, 6905, 3, 33, 16, 0, 6905, 6906, 5, 95, 0, 0, 6906, 6907, 3, 7, 3, 0, 6907, 6908, 3, 11, 5, 0, 6908, 6909, 3, 45, 22, 0, 6909, 6910, 3, 23, 11, 0, 6910, 6911, 3, 49, 24, 0, 6911, 6912, 3, 15, 7, 0, 6912, 1238, 1, 0, 0, 0, 6913, 6914, 3, 45, 22, 0, 6914, 6915, 3, 41, 20, 0, 6915, 6916, 3, 7, 3, 0, 6916, 6917, 3, 33, 16, 0, 6917, 6918, 3, 43, 21, 0, 6918, 6919, 3, 7, 3, 0, 6919, 6920, 3, 11, 5, 0, 6920, 6921, 3, 45, 22, 0, 6921, 6922, 3, 23, 11, 0, 6922, 6923, 3, 35, 17, 0, 6923, 6924, 3, 33, 16, 0, 6924, 6925, 3, 43, 21, 0, 6925, 6926, 5, 95, 0, 0, 6926, 6927, 3, 11, 5, 0, 6927, 6928, 3, 35, 17, 0, 6928, 6929, 3, 31, 15, 0, 6929, 6930, 3, 31, 15, 0, 6930, 6931, 3, 23, 11, 0, 6931, 6932, 3, 45, 22, 0, 6932, 6933, 3, 45, 22, 0, 6933, 6934, 3, 15, 7, 0, 6934, 6935, 3, 13, 6, 0, 6935, 1240, 1, 0, 0, 0, 6936, 6937, 3, 45, 22, 0, 6937, 6938, 3, 41, 20, 0, 6938, 6939, 3, 7, 3, 0, 6939, 6940, 3, 33, 16, 0, 6940, 6941, 3, 43, 21, 0, 6941, 6942, 3, 7, 3, 0, 6942, 6943, 3, 11, 5, 0, 6943, 6944, 3, 45, 22, 0, 6944, 6945, 3, 23, 11, 0, 6945, 6946, 3, 35, 17, 0, 6946, 6947, 3, 33, 16, 0, 6947, 6948, 3, 43, 21, 0, 6948, 6949, 5, 95, 0, 0, 6949, 6950, 3, 41, 20, 0, 6950, 6951, 3, 35, 17, 0, 6951, 6952, 3, 29, 14, 0, 6952, 6953, 3, 29, 14, 0, 6953, 6954, 3, 15, 7, 0, 6954, 6955, 3, 13, 6, 0, 6955, 6956, 5, 95, 0, 0, 6956, 6957, 3, 9, 4, 0, 6957, 6958, 3, 7, 3, 0, 6958, 6959, 3, 11, 5, 0, 6959, 6960, 3, 27, 13, 0, 6960, 1242, 1, 0, 0, 0, 6961, 6962, 3, 45, 22, 0, 6962, 6963, 3, 41, 20, 0, 6963, 6964, 3, 7, 3, 0, 6964, 6965, 3, 33, 16, 0, 6965, 6966, 3, 43, 21, 0, 6966, 6967, 3, 17, 8, 0, 6967, 6968, 3, 35, 17, 0, 6968, 6969, 3, 41, 20, 0, 6969, 6970, 3, 31, 15, 0, 6970, 1244, 1, 0, 0, 0, 6971, 6972, 3, 45, 22, 0, 6972, 6973, 3, 41, 20, 0, 6973, 6974, 3, 7, 3, 0, 6974, 6975, 3, 33, 16, 0, 6975, 6976, 3, 43, 21, 0, 6976, 6977, 3, 17, 8, 0, 6977, 6978, 3, 35, 17, 0, 6978, 6979, 3, 41, 20, 0, 6979, 6980, 3, 31, 15, 0, 6980, 6981, 3, 43, 21, 0, 6981, 1246, 1, 0, 0, 0, 6982, 6983, 3, 45, 22, 0, 6983, 6984, 3, 41, 20, 0, 6984, 6985, 3, 7, 3, 0, 6985, 6986, 3, 33, 16, 0, 6986, 6987, 3, 43, 21, 0, 6987, 6988, 3, 29, 14, 0, 6988, 6989, 3, 7, 3, 0, 6989, 6990, 3, 45, 22, 0, 6990, 6991, 3, 15, 7, 0, 6991, 1248, 1, 0, 0, 0, 6992, 6993, 3, 45, 22, 0, 6993, 6994, 3, 41, 20, 0, 6994, 6995, 3, 7, 3, 0, 6995, 6996, 3, 33, 16, 0, 6996, 6997, 3, 43, 21, 0, 6997, 6998, 3, 29, 14, 0, 6998, 6999, 3, 7, 3, 0, 6999, 7000, 3, 45, 22, 0, 7000, 7001, 3, 23, 11, 0, 7001, 7002, 3, 35, 17, 0, 7002, 7003, 3, 33, 16, 0, 7003, 1250, 1, 0, 0, 0, 7004, 7005, 3, 45, 22, 0, 7005, 7006, 3, 41, 20, 0, 7006, 7007, 3, 15, 7, 0, 7007, 7008, 3, 7, 3, 0, 7008, 7009, 3, 45, 22, 0, 7009, 1252, 1, 0, 0, 0, 7010, 7011, 3, 45, 22, 0, 7011, 7012, 3, 41, 20, 0, 7012, 7013, 3, 23, 11, 0, 7013, 7014, 3, 19, 9, 0, 7014, 7015, 3, 19, 9, 0, 7015, 7016, 3, 15, 7, 0, 7016, 7017, 3, 41, 20, 0, 7017, 1254, 1, 0, 0, 0, 7018, 7019, 3, 45, 22, 0, 7019, 7020, 3, 41, 20, 0, 7020, 7021, 3, 23, 11, 0, 7021, 7022, 3, 19, 9, 0, 7022, 7023, 3, 19, 9, 0, 7023, 7024, 3, 15, 7, 0, 7024, 7025, 3, 41, 20, 0, 7025, 7026, 5, 95, 0, 0, 7026, 7027, 3, 11, 5, 0, 7027, 7028, 3, 7, 3, 0, 7028, 7029, 3, 45, 22, 0, 7029, 7030, 3, 7, 3, 0, 7030, 7031, 3, 29, 14, 0, 7031, 7032, 3, 35, 17, 0, 7032, 7033, 3, 19, 9, 0, 7033, 1256, 1, 0, 0, 0, 7034, 7035, 3, 45, 22, 0, 7035, 7036, 3, 41, 20, 0, 7036, 7037, 3, 23, 11, 0, 7037, 7038, 3, 19, 9, 0, 7038, 7039, 3, 19, 9, 0, 7039, 7040, 3, 15, 7, 0, 7040, 7041, 3, 41, 20, 0, 7041, 7042, 5, 95, 0, 0, 7042, 7043, 3, 33, 16, 0, 7043, 7044, 3, 7, 3, 0, 7044, 7045, 3, 31, 15, 0, 7045, 7046, 3, 15, 7, 0, 7046, 1258, 1, 0, 0, 0, 7047, 7048, 3, 45, 22, 0, 7048, 7049, 3, 41, 20, 0, 7049, 7050, 3, 23, 11, 0, 7050, 7051, 3, 19, 9, 0, 7051, 7052, 3, 19, 9, 0, 7052, 7053, 3, 15, 7, 0, 7053, 7054, 3, 41, 20, 0, 7054, 7055, 5, 95, 0, 0, 7055, 7056, 3, 43, 21, 0, 7056, 7057, 3, 11, 5, 0, 7057, 7058, 3, 21, 10, 0, 7058, 7059, 3, 15, 7, 0, 7059, 7060, 3, 31, 15, 0, 7060, 7061, 3, 7, 3, 0, 7061, 1260, 1, 0, 0, 0, 7062, 7063, 3, 45, 22, 0, 7063, 7064, 3, 41, 20, 0, 7064, 7065, 3, 23, 11, 0, 7065, 7066, 3, 31, 15, 0, 7066, 1262, 1, 0, 0, 0, 7067, 7068, 3, 45, 22, 0, 7068, 7069, 3, 41, 20, 0, 7069, 7070, 3, 47, 23, 0, 7070, 7071, 3, 15, 7, 0, 7071, 1264, 1, 0, 0, 0, 7072, 7073, 3, 45, 22, 0, 7073, 7074, 3, 41, 20, 0, 7074, 7075, 3, 47, 23, 0, 7075, 7076, 3, 33, 16, 0, 7076, 7077, 3, 11, 5, 0, 7077, 7078, 3, 7, 3, 0, 7078, 7079, 3, 45, 22, 0, 7079, 7080, 3, 15, 7, 0, 7080, 1266, 1, 0, 0, 0, 7081, 7082, 3, 45, 22, 0, 7082, 7083, 3, 41, 20, 0, 7083, 7084, 3, 47, 23, 0, 7084, 7085, 3, 43, 21, 0, 7085, 7086, 3, 45, 22, 0, 7086, 7087, 3, 15, 7, 0, 7087, 7088, 3, 13, 6, 0, 7088, 1268, 1, 0, 0, 0, 7089, 7090, 3, 45, 22, 0, 7090, 7091, 3, 55, 27, 0, 7091, 7092, 3, 37, 18, 0, 7092, 7093, 3, 15, 7, 0, 7093, 1270, 1, 0, 0, 0, 7094, 7095, 3, 47, 23, 0, 7095, 7096, 3, 15, 7, 0, 7096, 7097, 3, 43, 21, 0, 7097, 7098, 3, 11, 5, 0, 7098, 7099, 3, 7, 3, 0, 7099, 7100, 3, 37, 18, 0, 7100, 7101, 3, 15, 7, 0, 7101, 1272, 1, 0, 0, 0, 7102, 7103, 3, 47, 23, 0, 7103, 7104, 3, 33, 16, 0, 7104, 7105, 3, 9, 4, 0, 7105, 7106, 3, 35, 17, 0, 7106, 7107, 3, 47, 23, 0, 7107, 7108, 3, 33, 16, 0, 7108, 7109, 3, 13, 6, 0, 7109, 7110, 3, 15, 7, 0, 7110, 7111, 3, 13, 6, 0, 7111, 1274, 1, 0, 0, 0, 7112, 7113, 3, 47, 23, 0, 7113, 7114, 3, 33, 16, 0, 7114, 7115, 3, 11, 5, 0, 7115, 7116, 3, 35, 17, 0, 7116, 7117, 3, 31, 15, 0, 7117, 7118, 3, 31, 15, 0, 7118, 7119, 3, 23, 11, 0, 7119, 7120, 3, 45, 22, 0, 7120, 7121, 3, 45, 22, 0, 7121, 7122, 3, 15, 7, 0, 7122, 7123, 3, 13, 6, 0, 7123, 1276, 1, 0, 0, 0, 7124, 7125, 3, 47, 23, 0, 7125, 7126, 3, 33, 16, 0, 7126, 7127, 3, 13, 6, 0, 7127, 7128, 3, 15, 7, 0, 7128, 7129, 3, 41, 20, 0, 7129, 1278, 1, 0, 0, 0, 7130, 7131, 3, 47, 23, 0, 7131, 7132, 3, 33, 16, 0, 7132, 7133, 3, 15, 7, 0, 7133, 7134, 3, 33, 16, 0, 7134, 7135, 3, 11, 5, 0, 7135, 7136, 3, 41, 20, 0, 7136, 7137, 3, 55, 27, 0, 7137, 7138, 3, 37, 18, 0, 7138, 7139, 3, 45, 22, 0, 7139, 7140, 3, 15, 7, 0, 7140, 7141, 3, 13, 6, 0, 7141, 1280, 1, 0, 0, 0, 7142, 7143, 3, 47, 23, 0, 7143, 7144, 3, 33, 16, 0, 7144, 7145, 3, 23, 11, 0, 7145, 7146, 3, 35, 17, 0, 7146, 7147, 3, 33, 16, 0, 7147, 1282, 1, 0, 0, 0, 7148, 7149, 3, 47, 23, 0, 7149, 7150, 3, 33, 16, 0, 7150, 7151, 3, 23, 11, 0, 7151, 7152, 3, 39, 19, 0, 7152, 7153, 3, 47, 23, 0, 7153, 7154, 3, 15, 7, 0, 7154, 1284, 1, 0, 0, 0, 7155, 7156, 3, 47, 23, 0, 7156, 7157, 3, 33, 16, 0, 7157, 7158, 3, 27, 13, 0, 7158, 7159, 3, 33, 16, 0, 7159, 7160, 3, 35, 17, 0, 7160, 7161, 3, 51, 25, 0, 7161, 7162, 3, 33, 16, 0, 7162, 1286, 1, 0, 0, 0, 7163, 7164, 3, 47, 23, 0, 7164, 7165, 3, 33, 16, 0, 7165, 7166, 3, 29, 14, 0, 7166, 7167, 3, 23, 11, 0, 7167, 7168, 3, 43, 21, 0, 7168, 7169, 3, 45, 22, 0, 7169, 7170, 3, 15, 7, 0, 7170, 7171, 3, 33, 16, 0, 7171, 1288, 1, 0, 0, 0, 7172, 7173, 3, 47, 23, 0, 7173, 7174, 3, 33, 16, 0, 7174, 7175, 3, 33, 16, 0, 7175, 7176, 3, 7, 3, 0, 7176, 7177, 3, 31, 15, 0, 7177, 7178, 3, 15, 7, 0, 7178, 7179, 3, 13, 6, 0, 7179, 1290, 1, 0, 0, 0, 7180, 7181, 3, 47, 23, 0, 7181, 7182, 3, 33, 16, 0, 7182, 7183, 3, 33, 16, 0, 7183, 7184, 3, 15, 7, 0, 7184, 7185, 3, 43, 21, 0, 7185, 7186, 3, 45, 22, 0, 7186, 1292, 1, 0, 0, 0, 7187, 7188, 3, 47, 23, 0, 7188, 7189, 3, 33, 16, 0, 7189, 7190, 3, 45, 22, 0, 7190, 7191, 3, 23, 11, 0, 7191, 7192, 3, 29, 14, 0, 7192, 1294, 1, 0, 0, 0, 7193, 7194, 3, 47, 23, 0, 7194, 7195, 3, 37, 18, 0, 7195, 7196, 3, 13, 6, 0, 7196, 7197, 3, 7, 3, 0, 7197, 7198, 3, 45, 22, 0, 7198, 7199, 3, 15, 7, 0, 7199, 1296, 1, 0, 0, 0, 7200, 7201, 3, 47, 23, 0, 7201, 7202, 3, 37, 18, 0, 7202, 7203, 3, 37, 18, 0, 7203, 7204, 3, 15, 7, 0, 7204, 7205, 3, 41, 20, 0, 7205, 1298, 1, 0, 0, 0, 7206, 7207, 3, 47, 23, 0, 7207, 7208, 3, 43, 21, 0, 7208, 7209, 3, 7, 3, 0, 7209, 7210, 3, 19, 9, 0, 7210, 7211, 3, 15, 7, 0, 7211, 1300, 1, 0, 0, 0, 7212, 7213, 3, 47, 23, 0, 7213, 7214, 3, 43, 21, 0, 7214, 7215, 3, 15, 7, 0, 7215, 7216, 3, 41, 20, 0, 7216, 1302, 1, 0, 0, 0, 7217, 7218, 3, 47, 23, 0, 7218, 7219, 3, 43, 21, 0, 7219, 7220, 3, 15, 7, 0, 7220, 7221, 3, 41, 20, 0, 7221, 7222, 5, 95, 0, 0, 7222, 7223, 3, 13, 6, 0, 7223, 7224, 3, 15, 7, 0, 7224, 7225, 3, 17, 8, 0, 7225, 7226, 3, 23, 11, 0, 7226, 7227, 3, 33, 16, 0, 7227, 7228, 3, 15, 7, 0, 7228, 7229, 3, 13, 6, 0, 7229, 7230, 5, 95, 0, 0, 7230, 7231, 3, 45, 22, 0, 7231, 7232, 3, 55, 27, 0, 7232, 7233, 3, 37, 18, 0, 7233, 7234, 3, 15, 7, 0, 7234, 7235, 5, 95, 0, 0, 7235, 7236, 3, 11, 5, 0, 7236, 7237, 3, 7, 3, 0, 7237, 7238, 3, 45, 22, 0, 7238, 7239, 3, 7, 3, 0, 7239, 7240, 3, 29, 14, 0, 7240, 7241, 3, 35, 17, 0, 7241, 7242, 3, 19, 9, 0, 7242, 1304, 1, 0, 0, 0, 7243, 7244, 3, 47, 23, 0, 7244, 7245, 3, 43, 21, 0, 7245, 7246, 3, 15, 7, 0, 7246, 7247, 3, 41, 20, 0, 7247, 7248, 5, 95, 0, 0, 7248, 7249, 3, 13, 6, 0, 7249, 7250, 3, 15, 7, 0, 7250, 7251, 3, 17, 8, 0, 7251, 7252, 3, 23, 11, 0, 7252, 7253, 3, 33, 16, 0, 7253, 7254, 3, 15, 7, 0, 7254, 7255, 3, 13, 6, 0, 7255, 7256, 5, 95, 0, 0, 7256, 7257, 3, 45, 22, 0, 7257, 7258, 3, 55, 27, 0, 7258, 7259, 3, 37, 18, 0, 7259, 7260, 3, 15, 7, 0, 7260, 7261, 5, 95, 0, 0, 7261, 7262, 3, 11, 5, 0, 7262, 7263, 3, 35, 17, 0, 7263, 7264, 3, 13, 6, 0, 7264, 7265, 3, 15, 7, 0, 7265, 1306, 1, 0, 0, 0, 7266, 7267, 3, 47, 23, 0, 7267, 7268, 3, 43, 21, 0, 7268, 7269, 3, 15, 7, 0, 7269, 7270, 3, 41, 20, 0, 7270, 7271, 5, 95, 0, 0, 7271, 7272, 3, 13, 6, 0, 7272, 7273, 3, 15, 7, 0, 7273, 7274, 3, 17, 8, 0, 7274, 7275, 3, 23, 11, 0, 7275, 7276, 3, 33, 16, 0, 7276, 7277, 3, 15, 7, 0, 7277, 7278, 3, 13, 6, 0, 7278, 7279, 5, 95, 0, 0, 7279, 7280, 3, 45, 22, 0, 7280, 7281, 3, 55, 27, 0, 7281, 7282, 3, 37, 18, 0, 7282, 7283, 3, 15, 7, 0, 7283, 7284, 5, 95, 0, 0, 7284, 7285, 3, 33, 16, 0, 7285, 7286, 3, 7, 3, 0, 7286, 7287, 3, 31, 15, 0, 7287, 7288, 3, 15, 7, 0, 7288, 1308, 1, 0, 0, 0, 7289, 7290, 3, 47, 23, 0, 7290, 7291, 3, 43, 21, 0, 7291, 7292, 3, 15, 7, 0, 7292, 7293, 3, 41, 20, 0, 7293, 7294, 5, 95, 0, 0, 7294, 7295, 3, 13, 6, 0, 7295, 7296, 3, 15, 7, 0, 7296, 7297, 3, 17, 8, 0, 7297, 7298, 3, 23, 11, 0, 7298, 7299, 3, 33, 16, 0, 7299, 7300, 3, 15, 7, 0, 7300, 7301, 3, 13, 6, 0, 7301, 7302, 5, 95, 0, 0, 7302, 7303, 3, 45, 22, 0, 7303, 7304, 3, 55, 27, 0, 7304, 7305, 3, 37, 18, 0, 7305, 7306, 3, 15, 7, 0, 7306, 7307, 5, 95, 0, 0, 7307, 7308, 3, 43, 21, 0, 7308, 7309, 3, 11, 5, 0, 7309, 7310, 3, 21, 10, 0, 7310, 7311, 3, 15, 7, 0, 7311, 7312, 3, 31, 15, 0, 7312, 7313, 3, 7, 3, 0, 7313, 1310, 1, 0, 0, 0, 7314, 7315, 3, 47, 23, 0, 7315, 7316, 3, 43, 21, 0, 7316, 7317, 3, 23, 11, 0, 7317, 7318, 3, 33, 16, 0, 7318, 7319, 3, 19, 9, 0, 7319, 1312, 1, 0, 0, 0, 7320, 7321, 3, 49, 24, 0, 7321, 7322, 3, 7, 3, 0, 7322, 7323, 3, 11, 5, 0, 7323, 7324, 3, 47, 23, 0, 7324, 7325, 3, 47, 23, 0, 7325, 7326, 3, 31, 15, 0, 7326, 1314, 1, 0, 0, 0, 7327, 7328, 3, 49, 24, 0, 7328, 7329, 3, 7, 3, 0, 7329, 7330, 3, 29, 14, 0, 7330, 7331, 3, 23, 11, 0, 7331, 7332, 3, 13, 6, 0, 7332, 1316, 1, 0, 0, 0, 7333, 7334, 3, 49, 24, 0, 7334, 7335, 3, 7, 3, 0, 7335, 7336, 3, 29, 14, 0, 7336, 7337, 3, 23, 11, 0, 7337, 7338, 3, 13, 6, 0, 7338, 7339, 3, 7, 3, 0, 7339, 7340, 3, 45, 22, 0, 7340, 7341, 3, 15, 7, 0, 7341, 1318, 1, 0, 0, 0, 7342, 7343, 3, 49, 24, 0, 7343, 7344, 3, 7, 3, 0, 7344, 7345, 3, 29, 14, 0, 7345, 7346, 3, 23, 11, 0, 7346, 7347, 3, 13, 6, 0, 7347, 7348, 3, 7, 3, 0, 7348, 7349, 3, 45, 22, 0, 7349, 7350, 3, 35, 17, 0, 7350, 7351, 3, 41, 20, 0, 7351, 1320, 1, 0, 0, 0, 7352, 7353, 3, 49, 24, 0, 7353, 7354, 3, 7, 3, 0, 7354, 7355, 3, 29, 14, 0, 7355, 7356, 3, 47, 23, 0, 7356, 7357, 3, 15, 7, 0, 7357, 1322, 1, 0, 0, 0, 7358, 7359, 3, 49, 24, 0, 7359, 7360, 3, 7, 3, 0, 7360, 7361, 3, 29, 14, 0, 7361, 7362, 3, 47, 23, 0, 7362, 7363, 3, 15, 7, 0, 7363, 7364, 3, 43, 21, 0, 7364, 1324, 1, 0, 0, 0, 7365, 7366, 3, 49, 24, 0, 7366, 7367, 3, 7, 3, 0, 7367, 7368, 3, 41, 20, 0, 7368, 7369, 5, 95, 0, 0, 7369, 7370, 3, 37, 18, 0, 7370, 7371, 3, 35, 17, 0, 7371, 7372, 3, 37, 18, 0, 7372, 1326, 1, 0, 0, 0, 7373, 7374, 3, 49, 24, 0, 7374, 7375, 3, 7, 3, 0, 7375, 7376, 3, 41, 20, 0, 7376, 7377, 5, 95, 0, 0, 7377, 7378, 3, 43, 21, 0, 7378, 7379, 3, 7, 3, 0, 7379, 7380, 3, 31, 15, 0, 7380, 7381, 3, 37, 18, 0, 7381, 1328, 1, 0, 0, 0, 7382, 7383, 3, 49, 24, 0, 7383, 7384, 3, 7, 3, 0, 7384, 7385, 3, 41, 20, 0, 7385, 7386, 3, 11, 5, 0, 7386, 7387, 3, 21, 10, 0, 7387, 7388, 3, 7, 3, 0, 7388, 7389, 3, 41, 20, 0, 7389, 1330, 1, 0, 0, 0, 7390, 7391, 3, 49, 24, 0, 7391, 7392, 3, 7, 3, 0, 7392, 7393, 3, 41, 20, 0, 7393, 7394, 3, 23, 11, 0, 7394, 7395, 3, 7, 3, 0, 7395, 7396, 3, 9, 4, 0, 7396, 7397, 3, 29, 14, 0, 7397, 7398, 3, 15, 7, 0, 7398, 1332, 1, 0, 0, 0, 7399, 7400, 3, 49, 24, 0, 7400, 7401, 3, 7, 3, 0, 7401, 7402, 3, 41, 20, 0, 7402, 7403, 3, 23, 11, 0, 7403, 7404, 3, 7, 3, 0, 7404, 7405, 3, 13, 6, 0, 7405, 7406, 3, 23, 11, 0, 7406, 7407, 3, 11, 5, 0, 7407, 1334, 1, 0, 0, 0, 7408, 7409, 3, 49, 24, 0, 7409, 7410, 3, 7, 3, 0, 7410, 7411, 3, 41, 20, 0, 7411, 7412, 3, 55, 27, 0, 7412, 7413, 3, 23, 11, 0, 7413, 7414, 3, 33, 16, 0, 7414, 7415, 3, 19, 9, 0, 7415, 1336, 1, 0, 0, 0, 7416, 7417, 3, 49, 24, 0, 7417, 7418, 3, 15, 7, 0, 7418, 7419, 3, 41, 20, 0, 7419, 7420, 3, 9, 4, 0, 7420, 7421, 3, 35, 17, 0, 7421, 7422, 3, 43, 21, 0, 7422, 7423, 3, 15, 7, 0, 7423, 1338, 1, 0, 0, 0, 7424, 7425, 3, 49, 24, 0, 7425, 7426, 3, 23, 11, 0, 7426, 7427, 3, 15, 7, 0, 7427, 7428, 3, 51, 25, 0, 7428, 1340, 1, 0, 0, 0, 7429, 7430, 3, 49, 24, 0, 7430, 7431, 3, 35, 17, 0, 7431, 7432, 3, 29, 14, 0, 7432, 7433, 3, 7, 3, 0, 7433, 7434, 3, 45, 22, 0, 7434, 7435, 3, 23, 11, 0, 7435, 7436, 3, 29, 14, 0, 7436, 7437, 3, 15, 7, 0, 7437, 1342, 1, 0, 0, 0, 7438, 7439, 3, 51, 25, 0, 7439, 7440, 3, 21, 10, 0, 7440, 7441, 3, 15, 7, 0, 7441, 7442, 3, 33, 16, 0, 7442, 1344, 1, 0, 0, 0, 7443, 7444, 3, 51, 25, 0, 7444, 7445, 3, 21, 10, 0, 7445, 7446, 3, 15, 7, 0, 7446, 7447, 3, 33, 16, 0, 7447, 7448, 3, 15, 7, 0, 7448, 7449, 3, 49, 24, 0, 7449, 7450, 3, 15, 7, 0, 7450, 7451, 3, 41, 20, 0, 7451, 1346, 1, 0, 0, 0, 7452, 7453, 3, 51, 25, 0, 7453, 7454, 3, 21, 10, 0, 7454, 7455, 3, 15, 7, 0, 7455, 7456, 3, 41, 20, 0, 7456, 7457, 3, 15, 7, 0, 7457, 1348, 1, 0, 0, 0, 7458, 7459, 3, 51, 25, 0, 7459, 7460, 3, 23, 11, 0, 7460, 7461, 3, 13, 6, 0, 7461, 7462, 3, 45, 22, 0, 7462, 7463, 3, 21, 10, 0, 7463, 7464, 5, 95, 0, 0, 7464, 7465, 3, 9, 4, 0, 7465, 7466, 3, 47, 23, 0, 7466, 7467, 3, 11, 5, 0, 7467, 7468, 3, 27, 13, 0, 7468, 7469, 3, 15, 7, 0, 7469, 7470, 3, 45, 22, 0, 7470, 1350, 1, 0, 0, 0, 7471, 7472, 3, 51, 25, 0, 7472, 7473, 3, 23, 11, 0, 7473, 7474, 3, 33, 16, 0, 7474, 7475, 3, 13, 6, 0, 7475, 7476, 3, 35, 17, 0, 7476, 7477, 3, 51, 25, 0, 7477, 1352, 1, 0, 0, 0, 7478, 7479, 3, 51, 25, 0, 7479, 7480, 3, 23, 11, 0, 7480, 7481, 3, 45, 22, 0, 7481, 7482, 3, 21, 10, 0, 7482, 1354, 1, 0, 0, 0, 7483, 7484, 3, 51, 25, 0, 7484, 7485, 3, 23, 11, 0, 7485, 7486, 3, 45, 22, 0, 7486, 7487, 3, 21, 10, 0, 7487, 7488, 3, 23, 11, 0, 7488, 7489, 3, 33, 16, 0, 7489, 1356, 1, 0, 0, 0, 7490, 7491, 3, 51, 25, 0, 7491, 7492, 3, 23, 11, 0, 7492, 7493, 3, 45, 22, 0, 7493, 7494, 3, 21, 10, 0, 7494, 7495, 3, 35, 17, 0, 7495, 7496, 3, 47, 23, 0, 7496, 7497, 3, 45, 22, 0, 7497, 1358, 1, 0, 0, 0, 7498, 7499, 3, 51, 25, 0, 7499, 7500, 3, 35, 17, 0, 7500, 7501, 3, 41, 20, 0, 7501, 7502, 3, 27, 13, 0, 7502, 1360, 1, 0, 0, 0, 7503, 7504, 3, 51, 25, 0, 7504, 7505, 3, 41, 20, 0, 7505, 7506, 3, 23, 11, 0, 7506, 7507, 3, 45, 22, 0, 7507, 7508, 3, 15, 7, 0, 7508, 1362, 1, 0, 0, 0, 7509, 7510, 3, 55, 27, 0, 7510, 7511, 3, 7, 3, 0, 7511, 7512, 3, 31, 15, 0, 7512, 7513, 3, 29, 14, 0, 7513, 1364, 1, 0, 0, 0, 7514, 7515, 3, 55, 27, 0, 7515, 7516, 3, 15, 7, 0, 7516, 7517, 3, 7, 3, 0, 7517, 7518, 3, 41, 20, 0, 7518, 1366, 1, 0, 0, 0, 7519, 7520, 3, 55, 27, 0, 7520, 7521, 3, 15, 7, 0, 7521, 7522, 3, 43, 21, 0, 7522, 1368, 1, 0, 0, 0, 7523, 7524, 3, 57, 28, 0, 7524, 7525, 3, 35, 17, 0, 7525, 7526, 3, 33, 16, 0, 7526, 7527, 3, 15, 7, 0, 7527, 1370, 1, 0, 0, 0, 7528, 7529, 3, 43, 21, 0, 7529, 7530, 3, 47, 23, 0, 7530, 7531, 3, 37, 18, 0, 7531, 7532, 3, 15, 7, 0, 7532, 7533, 3, 41, 20, 0, 7533, 7534, 3, 47, 23, 0, 7534, 7535, 3, 43, 21, 0, 7535, 7536, 3, 15, 7, 0, 7536, 7537, 3, 41, 20, 0, 7537, 1372, 1, 0, 0, 0, 7538, 7539, 3, 33, 16, 0, 7539, 7540, 3, 35, 17, 0, 7540, 7541, 3, 43, 21, 0, 7541, 7542, 3, 47, 23, 0, 7542, 7543, 3, 37, 18, 0, 7543, 7544, 3, 15, 7, 0, 7544, 7545, 3, 41, 20, 0, 7545, 7546, 3, 47, 23, 0, 7546, 7547, 3, 43, 21, 0, 7547, 7548, 3, 15, 7, 0, 7548, 7549, 3, 41, 20, 0, 7549, 1374, 1, 0, 0, 0, 7550, 7551, 3, 11, 5, 0, 7551, 7552, 3, 41, 20, 0, 7552, 7553, 3, 15, 7, 0, 7553, 7554, 3, 7, 3, 0, 7554, 7555, 3, 45, 22, 0, 7555, 7556, 3, 15, 7, 0, 7556, 7557, 3, 41, 20, 0, 7557, 7558, 3, 35, 17, 0, 7558, 7559, 3, 29, 14, 0, 7559, 7560, 3, 15, 7, 0, 7560, 1376, 1, 0, 0, 0, 7561, 7562, 3, 33, 16, 0, 7562, 7563, 3, 35, 17, 0, 7563, 7564, 3, 11, 5, 0, 7564, 7565, 3, 41, 20, 0, 7565, 7566, 3, 15, 7, 0, 7566, 7567, 3, 7, 3, 0, 7567, 7568, 3, 45, 22, 0, 7568, 7569, 3, 15, 7, 0, 7569, 7570, 3, 41, 20, 0, 7570, 7571, 3, 35, 17, 0, 7571, 7572, 3, 29, 14, 0, 7572, 7573, 3, 15, 7, 0, 7573, 1378, 1, 0, 0, 0, 7574, 7575, 3, 23, 11, 0, 7575, 7576, 3, 33, 16, 0, 7576, 7577, 3, 21, 10, 0, 7577, 7578, 3, 15, 7, 0, 7578, 7579, 3, 41, 20, 0, 7579, 7580, 3, 23, 11, 0, 7580, 7581, 3, 45, 22, 0, 7581, 1380, 1, 0, 0, 0, 7582, 7583, 3, 33, 16, 0, 7583, 7584, 3, 35, 17, 0, 7584, 7585, 3, 23, 11, 0, 7585, 7586, 3, 33, 16, 0, 7586, 7587, 3, 21, 10, 0, 7587, 7588, 3, 15, 7, 0, 7588, 7589, 3, 41, 20, 0, 7589, 7590, 3, 23, 11, 0, 7590, 7591, 3, 45, 22, 0, 7591, 1382, 1, 0, 0, 0, 7592, 7593, 3, 29, 14, 0, 7593, 7594, 3, 35, 17, 0, 7594, 7595, 3, 19, 9, 0, 7595, 7596, 3, 23, 11, 0, 7596, 7597, 3, 33, 16, 0, 7597, 1384, 1, 0, 0, 0, 7598, 7599, 3, 33, 16, 0, 7599, 7600, 3, 35, 17, 0, 7600, 7601, 3, 29, 14, 0, 7601, 7602, 3, 35, 17, 0, 7602, 7603, 3, 19, 9, 0, 7603, 7604, 3, 23, 11, 0, 7604, 7605, 3, 33, 16, 0, 7605, 1386, 1, 0, 0, 0, 7606, 7607, 3, 41, 20, 0, 7607, 7608, 3, 15, 7, 0, 7608, 7609, 3, 37, 18, 0, 7609, 7610, 3, 29, 14, 0, 7610, 7611, 3, 23, 11, 0, 7611, 7612, 3, 11, 5, 0, 7612, 7613, 3, 7, 3, 0, 7613, 7614, 3, 45, 22, 0, 7614, 7615, 3, 23, 11, 0, 7615, 7616, 3, 35, 17, 0, 7616, 7617, 3, 33, 16, 0, 7617, 1388, 1, 0, 0, 0, 7618, 7619, 3, 33, 16, 0, 7619, 7620, 3, 35, 17, 0, 7620, 7621, 3, 41, 20, 0, 7621, 7622, 3, 15, 7, 0, 7622, 7623, 3, 37, 18, 0, 7623, 7624, 3, 29, 14, 0, 7624, 7625, 3, 23, 11, 0, 7625, 7626, 3, 11, 5, 0, 7626, 7627, 3, 7, 3, 0, 7627, 7628, 3, 45, 22, 0, 7628, 7629, 3, 23, 11, 0, 7629, 7630, 3, 35, 17, 0, 7630, 7631, 3, 33, 16, 0, 7631, 1390, 1, 0, 0, 0, 7632, 7633, 3, 9, 4, 0, 7633, 7634, 3, 55, 27, 0, 7634, 7635, 3, 37, 18, 0, 7635, 7636, 3, 7, 3, 0, 7636, 7637, 3, 43, 21, 0, 7637, 7638, 3, 43, 21, 0, 7638, 7639, 3, 41, 20, 0, 7639, 7640, 3, 29, 14, 0, 7640, 7641, 3, 43, 21, 0, 7641, 1392, 1, 0, 0, 0, 7642, 7643, 3, 33, 16, 0, 7643, 7644, 3, 35, 17, 0, 7644, 7645, 3, 9, 4, 0, 7645, 7646, 3, 55, 27, 0, 7646, 7647, 3, 37, 18, 0, 7647, 7648, 3, 7, 3, 0, 7648, 7649, 3, 43, 21, 0, 7649, 7650, 3, 43, 21, 0, 7650, 7651, 3, 41, 20, 0, 7651, 7652, 3, 29, 14, 0, 7652, 7653, 3, 43, 21, 0, 7653, 1394, 1, 0, 0, 0, 7654, 7655, 3, 43, 21, 0, 7655, 7656, 3, 17, 8, 0, 7656, 7657, 3, 47, 23, 0, 7657, 7658, 3, 33, 16, 0, 7658, 7659, 3, 11, 5, 0, 7659, 1396, 1, 0, 0, 0, 7660, 7661, 3, 43, 21, 0, 7661, 7662, 3, 45, 22, 0, 7662, 7663, 3, 55, 27, 0, 7663, 7664, 3, 37, 18, 0, 7664, 7665, 3, 15, 7, 0, 7665, 1398, 1, 0, 0, 0, 7666, 7667, 3, 43, 21, 0, 7667, 7668, 3, 43, 21, 0, 7668, 7669, 3, 37, 18, 0, 7669, 7670, 3, 7, 3, 0, 7670, 7671, 3, 11, 5, 0, 7671, 7672, 3, 15, 7, 0, 7672, 1400, 1, 0, 0, 0, 7673, 7674, 3, 17, 8, 0, 7674, 7675, 3, 23, 11, 0, 7675, 7676, 3, 33, 16, 0, 7676, 7677, 3, 7, 3, 0, 7677, 7678, 3, 29, 14, 0, 7678, 7679, 3, 17, 8, 0, 7679, 7680, 3, 47, 23, 0, 7680, 7681, 3, 33, 16, 0, 7681, 7682, 3, 11, 5, 0, 7682, 1402, 1, 0, 0, 0, 7683, 7684, 3, 17, 8, 0, 7684, 7685, 3, 23, 11, 0, 7685, 7686, 3, 33, 16, 0, 7686, 7687, 3, 7, 3, 0, 7687, 7688, 3, 29, 14, 0, 7688, 7689, 3, 17, 8, 0, 7689, 7690, 3, 47, 23, 0, 7690, 7691, 3, 33, 16, 0, 7691, 7692, 3, 11, 5, 0, 7692, 7693, 5, 95, 0, 0, 7693, 7694, 3, 15, 7, 0, 7694, 7695, 3, 53, 26, 0, 7695, 7696, 3, 45, 22, 0, 7696, 7697, 3, 41, 20, 0, 7697, 7698, 3, 7, 3, 0, 7698, 1404, 1, 0, 0, 0, 7699, 7700, 3, 11, 5, 0, 7700, 7701, 3, 35, 17, 0, 7701, 7702, 3, 31, 15, 0, 7702, 7703, 3, 9, 4, 0, 7703, 7704, 3, 23, 11, 0, 7704, 7705, 3, 33, 16, 0, 7705, 7706, 3, 15, 7, 0, 7706, 7707, 3, 17, 8, 0, 7707, 7708, 3, 47, 23, 0, 7708, 7709, 3, 33, 16, 0, 7709, 7710, 3, 11, 5, 0, 7710, 1406, 1, 0, 0, 0, 7711, 7712, 3, 43, 21, 0, 7712, 7713, 3, 15, 7, 0, 7713, 7714, 3, 41, 20, 0, 7714, 7715, 3, 23, 11, 0, 7715, 7716, 3, 7, 3, 0, 7716, 7717, 3, 29, 14, 0, 7717, 7718, 3, 17, 8, 0, 7718, 7719, 3, 47, 23, 0, 7719, 7720, 3, 33, 16, 0, 7720, 7721, 3, 11, 5, 0, 7721, 1408, 1, 0, 0, 0, 7722, 7723, 3, 13, 6, 0, 7723, 7724, 3, 15, 7, 0, 7724, 7725, 3, 43, 21, 0, 7725, 7726, 3, 15, 7, 0, 7726, 7727, 3, 41, 20, 0, 7727, 7728, 3, 23, 11, 0, 7728, 7729, 3, 7, 3, 0, 7729, 7730, 3, 29, 14, 0, 7730, 7731, 3, 17, 8, 0, 7731, 7732, 3, 47, 23, 0, 7732, 7733, 3, 33, 16, 0, 7733, 7734, 3, 11, 5, 0, 7734, 1410, 1, 0, 0, 0, 7735, 7736, 3, 23, 11, 0, 7736, 7737, 3, 33, 16, 0, 7737, 7738, 3, 23, 11, 0, 7738, 7739, 3, 45, 22, 0, 7739, 7740, 3, 11, 5, 0, 7740, 7741, 3, 35, 17, 0, 7741, 7742, 3, 33, 16, 0, 7742, 7743, 3, 13, 6, 0, 7743, 1412, 1, 0, 0, 0, 7744, 7745, 3, 31, 15, 0, 7745, 7746, 3, 43, 21, 0, 7746, 7747, 3, 17, 8, 0, 7747, 7748, 3, 47, 23, 0, 7748, 7749, 3, 33, 16, 0, 7749, 7750, 3, 11, 5, 0, 7750, 1414, 1, 0, 0, 0, 7751, 7752, 3, 31, 15, 0, 7752, 7753, 3, 23, 11, 0, 7753, 7754, 3, 33, 16, 0, 7754, 7755, 3, 49, 24, 0, 7755, 7756, 3, 17, 8, 0, 7756, 7757, 3, 47, 23, 0, 7757, 7758, 3, 33, 16, 0, 7758, 7759, 3, 11, 5, 0, 7759, 1416, 1, 0, 0, 0, 7760, 7761, 3, 31, 15, 0, 7761, 7762, 3, 43, 21, 0, 7762, 7763, 3, 45, 22, 0, 7763, 7764, 3, 55, 27, 0, 7764, 7765, 3, 37, 18, 0, 7765, 7766, 3, 15, 7, 0, 7766, 1418, 1, 0, 0, 0, 7767, 7768, 3, 31, 15, 0, 7768, 7769, 3, 43, 21, 0, 7769, 7770, 3, 43, 21, 0, 7770, 7771, 3, 37, 18, 0, 7771, 7772, 3, 7, 3, 0, 7772, 7773, 3, 11, 5, 0, 7773, 7774, 3, 15, 7, 0, 7774, 1420, 1, 0, 0, 0, 7775, 7776, 3, 31, 15, 0, 7776, 7777, 3, 17, 8, 0, 7777, 7778, 3, 23, 11, 0, 7778, 7779, 3, 33, 16, 0, 7779, 7780, 3, 7, 3, 0, 7780, 7781, 3, 29, 14, 0, 7781, 7782, 3, 17, 8, 0, 7782, 7783, 3, 47, 23, 0, 7783, 7784, 3, 33, 16, 0, 7784, 7785, 3, 11, 5, 0, 7785, 1422, 1, 0, 0, 0, 7786, 7787, 3, 31, 15, 0, 7787, 7788, 3, 17, 8, 0, 7788, 7789, 3, 23, 11, 0, 7789, 7790, 3, 33, 16, 0, 7790, 7791, 3, 7, 3, 0, 7791, 7792, 3, 29, 14, 0, 7792, 7793, 3, 17, 8, 0, 7793, 7794, 3, 47, 23, 0, 7794, 7795, 3, 33, 16, 0, 7795, 7796, 3, 11, 5, 0, 7796, 7797, 5, 95, 0, 0, 7797, 7798, 3, 15, 7, 0, 7798, 7799, 3, 53, 26, 0, 7799, 7800, 3, 45, 22, 0, 7800, 7801, 3, 41, 20, 0, 7801, 7802, 3, 7, 3, 0, 7802, 1424, 1, 0, 0, 0, 7803, 7804, 3, 31, 15, 0, 7804, 7805, 3, 23, 11, 0, 7805, 7806, 3, 33, 16, 0, 7806, 7807, 3, 23, 11, 0, 7807, 7808, 3, 45, 22, 0, 7808, 7809, 3, 11, 5, 0, 7809, 7810, 3, 35, 17, 0, 7810, 7811, 3, 33, 16, 0, 7811, 7812, 3, 13, 6, 0, 7812, 1426, 1, 0, 0, 0, 7813, 7814, 3, 43, 21, 0, 7814, 7815, 3, 35, 17, 0, 7815, 7816, 3, 41, 20, 0, 7816, 7817, 3, 45, 22, 0, 7817, 7818, 3, 35, 17, 0, 7818, 7819, 3, 37, 18, 0, 7819, 1428, 1, 0, 0, 0, 7820, 7821, 3, 37, 18, 0, 7821, 7822, 3, 7, 3, 0, 7822, 7823, 3, 41, 20, 0, 7823, 7824, 3, 7, 3, 0, 7824, 7825, 3, 29, 14, 0, 7825, 7826, 3, 29, 14, 0, 7826, 7827, 3, 15, 7, 0, 7827, 7828, 3, 29, 14, 0, 7828, 1430, 1, 0, 0, 0, 7829, 7830, 3, 21, 10, 0, 7830, 7831, 3, 55, 27, 0, 7831, 7832, 3, 37, 18, 0, 7832, 7833, 3, 35, 17, 0, 7833, 7834, 3, 45, 22, 0, 7834, 7835, 3, 21, 10, 0, 7835, 7836, 3, 15, 7, 0, 7836, 7837, 3, 45, 22, 0, 7837, 7838, 3, 23, 11, 0, 7838, 7839, 3, 11, 5, 0, 7839, 7840, 3, 7, 3, 0, 7840, 7841, 3, 29, 14, 0, 7841, 1432, 1, 0, 0, 0, 7842, 7843, 3, 43, 21, 0, 7843, 7844, 3, 7, 3, 0, 7844, 7845, 3, 17, 8, 0, 7845, 7846, 3, 15, 7, 0, 7846, 1434, 1, 0, 0, 0, 7847, 7848, 3, 41, 20, 0, 7848, 7849, 3, 15, 7, 0, 7849, 7850, 3, 43, 21, 0, 7850, 7851, 3, 45, 22, 0, 7851, 7852, 3, 41, 20, 0, 7852, 7853, 3, 23, 11, 0, 7853, 7854, 3, 11, 5, 0, 7854, 7855, 3, 45, 22, 0, 7855, 7856, 3, 15, 7, 0, 7856, 7857, 3, 13, 6, 0, 7857, 1436, 1, 0, 0, 0, 7858, 7859, 3, 47, 23, 0, 7859, 7860, 3, 33, 16, 0, 7860, 7861, 3, 43, 21, 0, 7861, 7862, 3, 7, 3, 0, 7862, 7863, 3, 17, 8, 0, 7863, 7864, 3, 15, 7, 0, 7864, 1438, 1, 0, 0, 0, 7865, 7866, 3, 9, 4, 0, 7866, 7867, 3, 7, 3, 0, 7867, 7868, 3, 43, 21, 0, 7868, 7869, 3, 15, 7, 0, 7869, 7870, 3, 45, 22, 0, 7870, 7871, 3, 55, 27, 0, 7871, 7872, 3, 37, 18, 0, 7872, 7873, 3, 15, 7, 0, 7873, 1440, 1, 0, 0, 0, 7874, 7875, 3, 23, 11, 0, 7875, 7876, 3, 17, 8, 0, 7876, 1442, 1, 0, 0, 0, 7877, 7878, 3, 29, 14, 0, 7878, 7879, 3, 35, 17, 0, 7879, 7880, 3, 11, 5, 0, 7880, 7881, 3, 7, 3, 0, 7881, 7882, 3, 29, 14, 0, 7882, 7883, 3, 15, 7, 0, 7883, 1444, 1, 0, 0, 0, 7884, 7885, 3, 29, 14, 0, 7885, 7886, 3, 11, 5, 0, 7886, 7887, 5, 95, 0, 0, 7887, 7888, 3, 11, 5, 0, 7888, 7889, 3, 35, 17, 0, 7889, 7890, 3, 29, 14, 0, 7890, 7891, 3, 29, 14, 0, 7891, 7892, 3, 7, 3, 0, 7892, 7893, 3, 45, 22, 0, 7893, 7894, 3, 15, 7, 0, 7894, 1446, 1, 0, 0, 0, 7895, 7896, 3, 29, 14, 0, 7896, 7897, 3, 11, 5, 0, 7897, 7898, 5, 95, 0, 0, 7898, 7899, 3, 11, 5, 0, 7899, 7900, 3, 45, 22, 0, 7900, 7901, 3, 55, 27, 0, 7901, 7902, 3, 37, 18, 0, 7902, 7903, 3, 15, 7, 0, 7903, 1448, 1, 0, 0, 0, 7904, 7905, 3, 37, 18, 0, 7905, 7906, 3, 41, 20, 0, 7906, 7907, 3, 35, 17, 0, 7907, 7908, 3, 49, 24, 0, 7908, 7909, 3, 23, 11, 0, 7909, 7910, 3, 13, 6, 0, 7910, 7911, 3, 15, 7, 0, 7911, 7912, 3, 41, 20, 0, 7912, 1450, 1, 0, 0, 0, 7913, 7914, 3, 49, 24, 0, 7914, 7915, 3, 15, 7, 0, 7915, 7916, 3, 41, 20, 0, 7916, 7917, 3, 43, 21, 0, 7917, 7918, 3, 23, 11, 0, 7918, 7919, 3, 35, 17, 0, 7919, 7920, 3, 33, 16, 0, 7920, 1452, 1, 0, 0, 0, 7921, 7922, 3, 7, 3, 0, 7922, 7923, 3, 29, 14, 0, 7923, 7924, 3, 29, 14, 0, 7924, 7925, 3, 35, 17, 0, 7925, 7926, 3, 51, 25, 0, 7926, 7927, 5, 95, 0, 0, 7927, 7928, 3, 11, 5, 0, 7928, 7929, 3, 35, 17, 0, 7929, 7930, 3, 33, 16, 0, 7930, 7931, 3, 33, 16, 0, 7931, 7932, 3, 15, 7, 0, 7932, 7933, 3, 11, 5, 0, 7933, 7934, 3, 45, 22, 0, 7934, 7935, 3, 23, 11, 0, 7935, 7936, 3, 35, 17, 0, 7936, 7937, 3, 33, 16, 0, 7937, 7938, 3, 43, 21, 0, 7938, 1454, 1, 0, 0, 0, 7939, 7940, 3, 23, 11, 0, 7940, 7941, 3, 43, 21, 0, 7941, 7942, 5, 95, 0, 0, 7942, 7943, 3, 45, 22, 0, 7943, 7944, 3, 15, 7, 0, 7944, 7945, 3, 31, 15, 0, 7945, 7946, 3, 37, 18, 0, 7946, 7947, 3, 29, 14, 0, 7947, 7948, 3, 7, 3, 0, 7948, 7949, 3, 45, 22, 0, 7949, 7950, 3, 15, 7, 0, 7950, 1456, 1, 0, 0, 0, 7951, 7952, 3, 15, 7, 0, 7952, 7953, 3, 49, 24, 0, 7953, 7954, 3, 15, 7, 0, 7954, 7955, 3, 33, 16, 0, 7955, 7956, 3, 45, 22, 0, 7956, 1458, 1, 0, 0, 0, 7957, 7958, 3, 51, 25, 0, 7958, 7959, 3, 41, 20, 0, 7959, 7960, 3, 7, 3, 0, 7960, 7961, 3, 37, 18, 0, 7961, 7962, 3, 37, 18, 0, 7962, 7963, 3, 15, 7, 0, 7963, 7964, 3, 41, 20, 0, 7964, 1460, 1, 0, 0, 0, 7965, 7966, 3, 43, 21, 0, 7966, 7967, 3, 15, 7, 0, 7967, 7968, 3, 41, 20, 0, 7968, 7969, 3, 49, 24, 0, 7969, 7970, 3, 15, 7, 0, 7970, 7971, 3, 41, 20, 0, 7971, 1462, 1, 0, 0, 0, 7972, 7973, 3, 9, 4, 0, 7973, 7974, 3, 45, 22, 0, 7974, 7975, 3, 41, 20, 0, 7975, 7976, 3, 15, 7, 0, 7976, 7977, 3, 15, 7, 0, 7977, 1464, 1, 0, 0, 0, 7978, 7979, 3, 21, 10, 0, 7979, 7980, 3, 7, 3, 0, 7980, 7981, 3, 43, 21, 0, 7981, 7982, 3, 21, 10, 0, 7982, 1466, 1, 0, 0, 0, 7983, 7984, 3, 19, 9, 0, 7984, 7985, 3, 23, 11, 0, 7985, 7986, 3, 43, 21, 0, 7986, 7987, 3, 45, 22, 0, 7987, 1468, 1, 0, 0, 0, 7988, 7989, 3, 43, 21, 0, 7989, 7990, 3, 37, 18, 0, 7990, 7991, 3, 19, 9, 0, 7991, 7992, 3, 23, 11, 0, 7992, 7993, 3, 43, 21, 0, 7993, 7994, 3, 45, 22, 0, 7994, 1470, 1, 0, 0, 0, 7995, 7996, 3, 19, 9, 0, 7996, 7997, 3, 23, 11, 0, 7997, 7998, 3, 33, 16, 0, 7998, 1472, 1, 0, 0, 0, 7999, 8000, 3, 9, 4, 0, 8000, 8001, 3, 41, 20, 0, 8001, 8002, 3, 23, 11, 0, 8002, 8003, 3, 33, 16, 0, 8003, 1474, 1, 0, 0, 0, 8004, 8005, 3, 11, 5, 0, 8005, 8006, 3, 35, 17, 0, 8006, 8007, 3, 33, 16, 0, 8007, 8008, 3, 11, 5, 0, 8008, 8009, 3, 47, 23, 0, 8009, 8010, 3, 41, 20, 0, 8010, 8011, 3, 41, 20, 0, 8011, 8012, 3, 15, 7, 0, 8012, 8013, 3, 33, 16, 0, 8013, 8014, 3, 45, 22, 0, 8014, 8015, 3, 29, 14, 0, 8015, 8016, 3, 55, 27, 0, 8016, 1476, 1, 0, 0, 0, 8017, 8018, 3, 23, 11, 0, 8018, 8019, 3, 33, 16, 0, 8019, 8020, 3, 29, 14, 0, 8020, 8021, 3, 23, 11, 0, 8021, 8022, 3, 33, 16, 0, 8022, 8023, 3, 15, 7, 0, 8023, 1478, 1, 0, 0, 0, 8024, 8025, 3, 31, 15, 0, 8025, 8026, 3, 7, 3, 0, 8026, 8027, 3, 45, 22, 0, 8027, 8028, 3, 15, 7, 0, 8028, 8029, 3, 41, 20, 0, 8029, 8030, 3, 23, 11, 0, 8030, 8031, 3, 7, 3, 0, 8031, 8032, 3, 29, 14, 0, 8032, 8033, 3, 23, 11, 0, 8033, 8034, 3, 57, 28, 0, 8034, 8035, 3, 15, 7, 0, 8035, 8036, 3, 13, 6, 0, 8036, 1480, 1, 0, 0, 0, 8037, 8038, 3, 29, 14, 0, 8038, 8039, 3, 15, 7, 0, 8039, 8040, 3, 17, 8, 0, 8040, 8041, 3, 45, 22, 0, 8041, 8042, 3, 7, 3, 0, 8042, 8043, 3, 41, 20, 0, 8043, 8044, 3, 19, 9, 0, 8044, 1482, 1, 0, 0, 0, 8045, 8046, 3, 41, 20, 0, 8046, 8047, 3, 23, 11, 0, 8047, 8048, 3, 19, 9, 0, 8048, 8049, 3, 21, 10, 0, 8049, 8050, 3, 45, 22, 0, 8050, 8051, 3, 7, 3, 0, 8051, 8052, 3, 41, 20, 0, 8052, 8053, 3, 19, 9, 0, 8053, 1484, 1, 0, 0, 0, 8054, 8055, 3, 11, 5, 0, 8055, 8056, 3, 35, 17, 0, 8056, 8057, 3, 31, 15, 0, 8057, 8058, 3, 31, 15, 0, 8058, 8059, 3, 47, 23, 0, 8059, 8060, 3, 45, 22, 0, 8060, 8061, 3, 7, 3, 0, 8061, 8062, 3, 45, 22, 0, 8062, 8063, 3, 35, 17, 0, 8063, 8064, 3, 41, 20, 0, 8064, 1486, 1, 0, 0, 0, 8065, 8066, 3, 33, 16, 0, 8066, 8067, 3, 15, 7, 0, 8067, 8068, 3, 19, 9, 0, 8068, 8069, 3, 7, 3, 0, 8069, 8070, 3, 45, 22, 0, 8070, 8071, 3, 35, 17, 0, 8071, 8072, 3, 41, 20, 0, 8072, 1488, 1, 0, 0, 0, 8073, 8074, 3, 21, 10, 0, 8074, 8075, 3, 7, 3, 0, 8075, 8076, 3, 43, 21, 0, 8076, 8077, 3, 21, 10, 0, 8077, 8078, 3, 15, 7, 0, 8078, 8079, 3, 43, 21, 0, 8079, 1490, 1, 0, 0, 0, 8080, 8081, 3, 31, 15, 0, 8081, 8082, 3, 15, 7, 0, 8082, 8083, 3, 41, 20, 0, 8083, 8084, 3, 19, 9, 0, 8084, 8085, 3, 15, 7, 0, 8085, 8086, 3, 43, 21, 0, 8086, 1492, 1, 0, 0, 0, 8087, 8088, 3, 17, 8, 0, 8088, 8089, 3, 7, 3, 0, 8089, 8090, 3, 31, 15, 0, 8090, 8091, 3, 23, 11, 0, 8091, 8092, 3, 29, 14, 0, 8092, 8093, 3, 55, 27, 0, 8093, 1494, 1, 0, 0, 0, 8094, 8095, 3, 37, 18, 0, 8095, 8096, 3, 35, 17, 0, 8096, 8097, 3, 29, 14, 0, 8097, 8098, 3, 23, 11, 0, 8098, 8099, 3, 11, 5, 0, 8099, 8100, 3, 55, 27, 0, 8100, 1496, 1, 0, 0, 0, 8101, 8102, 3, 35, 17, 0, 8102, 8103, 3, 51, 25, 0, 8103, 8104, 3, 33, 16, 0, 8104, 8105, 3, 15, 7, 0, 8105, 8106, 3, 13, 6, 0, 8106, 1498, 1, 0, 0, 0, 8107, 8108, 3, 7, 3, 0, 8108, 8109, 3, 9, 4, 0, 8109, 8110, 3, 43, 21, 0, 8110, 8111, 3, 45, 22, 0, 8111, 8112, 3, 23, 11, 0, 8112, 8113, 3, 31, 15, 0, 8113, 8114, 3, 15, 7, 0, 8114, 1500, 1, 0, 0, 0, 8115, 8116, 3, 9, 4, 0, 8116, 8117, 3, 23, 11, 0, 8117, 8118, 3, 19, 9, 0, 8118, 8119, 3, 43, 21, 0, 8119, 8120, 3, 15, 7, 0, 8120, 8121, 3, 41, 20, 0, 8121, 8122, 3, 23, 11, 0, 8122, 8123, 3, 7, 3, 0, 8123, 8124, 3, 29, 14, 0, 8124, 1502, 1, 0, 0, 0, 8125, 8126, 3, 9, 4, 0, 8126, 8127, 3, 23, 11, 0, 8127, 8128, 3, 45, 22, 0, 8128, 8129, 5, 32, 0, 0, 8129, 8130, 3, 49, 24, 0, 8130, 8131, 3, 7, 3, 0, 8131, 8132, 3, 41, 20, 0, 8132, 8133, 3, 55, 27, 0, 8133, 8134, 3, 23, 11, 0, 8134, 8135, 3, 33, 16, 0, 8135, 8136, 3, 19, 9, 0, 8136, 1504, 1, 0, 0, 0, 8137, 8138, 3, 9, 4, 0, 8138, 8139, 3, 35, 17, 0, 8139, 8140, 3, 35, 17, 0, 8140, 8141, 3, 29, 14, 0, 8141, 1506, 1, 0, 0, 0, 8142, 8143, 3, 9, 4, 0, 8143, 8144, 3, 35, 17, 0, 8144, 8145, 3, 53, 26, 0, 8145, 1508, 1, 0, 0, 0, 8146, 8147, 3, 9, 4, 0, 8147, 8148, 3, 55, 27, 0, 8148, 8149, 3, 45, 22, 0, 8149, 8150, 3, 15, 7, 0, 8150, 8151, 3, 7, 3, 0, 8151, 1510, 1, 0, 0, 0, 8152, 8153, 3, 11, 5, 0, 8153, 8154, 3, 21, 10, 0, 8154, 8155, 3, 7, 3, 0, 8155, 8156, 3, 41, 20, 0, 8156, 8157, 3, 7, 3, 0, 8157, 8158, 3, 11, 5, 0, 8158, 8159, 3, 45, 22, 0, 8159, 8160, 3, 15, 7, 0, 8160, 8161, 3, 41, 20, 0, 8161, 8162, 5, 32, 0, 0, 8162, 8163, 3, 49, 24, 0, 8163, 8164, 3, 7, 3, 0, 8164, 8165, 3, 41, 20, 0, 8165, 8166, 3, 55, 27, 0, 8166, 8167, 3, 23, 11, 0, 8167, 8168, 3, 33, 16, 0, 8168, 8169, 3, 19, 9, 0, 8169, 1512, 1, 0, 0, 0, 8170, 8171, 3, 11, 5, 0, 8171, 8172, 3, 23, 11, 0, 8172, 8173, 3, 13, 6, 0, 8173, 8174, 3, 41, 20, 0, 8174, 1514, 1, 0, 0, 0, 8175, 8176, 3, 11, 5, 0, 8176, 8177, 3, 23, 11, 0, 8177, 8178, 3, 41, 20, 0, 8178, 8179, 3, 11, 5, 0, 8179, 8180, 3, 29, 14, 0, 8180, 8181, 3, 15, 7, 0, 8181, 1516, 1, 0, 0, 0, 8182, 8183, 3, 17, 8, 0, 8183, 8184, 3, 29, 14, 0, 8184, 8185, 3, 35, 17, 0, 8185, 8186, 3, 7, 3, 0, 8186, 8187, 3, 45, 22, 0, 8187, 8188, 5, 52, 0, 0, 8188, 1518, 1, 0, 0, 0, 8189, 8190, 3, 17, 8, 0, 8190, 8191, 3, 29, 14, 0, 8191, 8192, 3, 35, 17, 0, 8192, 8193, 3, 7, 3, 0, 8193, 8194, 3, 45, 22, 0, 8194, 8195, 5, 56, 0, 0, 8195, 1520, 1, 0, 0, 0, 8196, 8197, 3, 23, 11, 0, 8197, 8198, 3, 33, 16, 0, 8198, 8199, 3, 15, 7, 0, 8199, 8200, 3, 45, 22, 0, 8200, 1522, 1, 0, 0, 0, 8201, 8202, 3, 23, 11, 0, 8202, 8203, 3, 33, 16, 0, 8203, 8204, 3, 45, 22, 0, 8204, 8205, 5, 50, 0, 0, 8205, 1524, 1, 0, 0, 0, 8206, 8207, 3, 23, 11, 0, 8207, 8208, 3, 33, 16, 0, 8208, 8209, 3, 45, 22, 0, 8209, 8210, 5, 52, 0, 0, 8210, 1526, 1, 0, 0, 0, 8211, 8212, 3, 23, 11, 0, 8212, 8213, 3, 33, 16, 0, 8213, 8214, 3, 45, 22, 0, 8214, 8215, 5, 56, 0, 0, 8215, 1528, 1, 0, 0, 0, 8216, 8217, 3, 25, 12, 0, 8217, 8218, 3, 43, 21, 0, 8218, 8219, 3, 35, 17, 0, 8219, 8220, 3, 33, 16, 0, 8220, 1530, 1, 0, 0, 0, 8221, 8222, 3, 25, 12, 0, 8222, 8223, 3, 43, 21, 0, 8223, 8224, 3, 35, 17, 0, 8224, 8225, 3, 33, 16, 0, 8225, 8226, 3, 9, 4, 0, 8226, 1532, 1, 0, 0, 0, 8227, 8228, 3, 29, 14, 0, 8228, 8229, 3, 23, 11, 0, 8229, 8230, 3, 33, 16, 0, 8230, 8231, 3, 15, 7, 0, 8231, 1534, 1, 0, 0, 0, 8232, 8233, 3, 29, 14, 0, 8233, 8234, 3, 43, 21, 0, 8234, 8235, 3, 15, 7, 0, 8235, 8236, 3, 19, 9, 0, 8236, 1536, 1, 0, 0, 0, 8237, 8238, 3, 31, 15, 0, 8238, 8239, 3, 7, 3, 0, 8239, 8240, 3, 11, 5, 0, 8240, 8241, 3, 7, 3, 0, 8241, 8242, 3, 13, 6, 0, 8242, 8243, 3, 13, 6, 0, 8243, 8244, 3, 41, 20, 0, 8244, 1538, 1, 0, 0, 0, 8245, 8246, 3, 31, 15, 0, 8246, 8247, 3, 7, 3, 0, 8247, 8248, 3, 11, 5, 0, 8248, 8249, 3, 7, 3, 0, 8249, 8250, 3, 13, 6, 0, 8250, 8251, 3, 13, 6, 0, 8251, 8252, 3, 41, 20, 0, 8252, 8253, 5, 56, 0, 0, 8253, 1540, 1, 0, 0, 0, 8254, 8255, 3, 31, 15, 0, 8255, 8256, 3, 35, 17, 0, 8256, 8257, 3, 33, 16, 0, 8257, 8258, 3, 15, 7, 0, 8258, 8259, 3, 55, 27, 0, 8259, 1542, 1, 0, 0, 0, 8260, 8261, 3, 37, 18, 0, 8261, 8262, 3, 19, 9, 0, 8262, 8263, 5, 95, 0, 0, 8263, 8264, 3, 29, 14, 0, 8264, 8265, 3, 43, 21, 0, 8265, 8266, 3, 33, 16, 0, 8266, 1544, 1, 0, 0, 0, 8267, 8268, 3, 37, 18, 0, 8268, 8269, 3, 35, 17, 0, 8269, 8270, 3, 23, 11, 0, 8270, 8271, 3, 33, 16, 0, 8271, 8272, 3, 45, 22, 0, 8272, 1546, 1, 0, 0, 0, 8273, 8274, 3, 37, 18, 0, 8274, 8275, 3, 35, 17, 0, 8275, 8276, 3, 29, 14, 0, 8276, 8277, 3, 55, 27, 0, 8277, 8278, 3, 19, 9, 0, 8278, 8279, 3, 35, 17, 0, 8279, 8280, 3, 33, 16, 0, 8280, 1548, 1, 0, 0, 0, 8281, 8282, 3, 41, 20, 0, 8282, 8283, 3, 15, 7, 0, 8283, 8284, 3, 29, 14, 0, 8284, 8285, 3, 45, 22, 0, 8285, 8286, 3, 23, 11, 0, 8286, 8287, 3, 31, 15, 0, 8287, 8288, 3, 15, 7, 0, 8288, 1550, 1, 0, 0, 0, 8289, 8290, 3, 43, 21, 0, 8290, 8291, 3, 15, 7, 0, 8291, 8292, 3, 41, 20, 0, 8292, 8293, 3, 23, 11, 0, 8293, 8294, 3, 7, 3, 0, 8294, 8295, 3, 29, 14, 0, 8295, 1552, 1, 0, 0, 0, 8296, 8297, 3, 43, 21, 0, 8297, 8298, 3, 15, 7, 0, 8298, 8299, 3, 41, 20, 0, 8299, 8300, 3, 23, 11, 0, 8300, 8301, 3, 7, 3, 0, 8301, 8302, 3, 29, 14, 0, 8302, 8303, 5, 50, 0, 0, 8303, 1554, 1, 0, 0, 0, 8304, 8305, 3, 43, 21, 0, 8305, 8306, 3, 15, 7, 0, 8306, 8307, 3, 41, 20, 0, 8307, 8308, 3, 23, 11, 0, 8308, 8309, 3, 7, 3, 0, 8309, 8310, 3, 29, 14, 0, 8310, 8311, 5, 52, 0, 0, 8311, 1556, 1, 0, 0, 0, 8312, 8313, 3, 43, 21, 0, 8313, 8314, 3, 15, 7, 0, 8314, 8315, 3, 41, 20, 0, 8315, 8316, 3, 23, 11, 0, 8316, 8317, 3, 7, 3, 0, 8317, 8318, 3, 29, 14, 0, 8318, 8319, 5, 56, 0, 0, 8319, 1558, 1, 0, 0, 0, 8320, 8321, 3, 43, 21, 0, 8321, 8322, 3, 31, 15, 0, 8322, 8323, 3, 7, 3, 0, 8323, 8324, 3, 29, 14, 0, 8324, 8325, 3, 29, 14, 0, 8325, 8326, 3, 43, 21, 0, 8326, 8327, 3, 15, 7, 0, 8327, 8328, 3, 41, 20, 0, 8328, 8329, 3, 23, 11, 0, 8329, 8330, 3, 7, 3, 0, 8330, 8331, 3, 29, 14, 0, 8331, 1560, 1, 0, 0, 0, 8332, 8333, 3, 43, 21, 0, 8333, 8334, 3, 45, 22, 0, 8334, 8335, 3, 43, 21, 0, 8335, 8336, 3, 45, 22, 0, 8336, 8337, 3, 15, 7, 0, 8337, 8338, 3, 31, 15, 0, 8338, 1562, 1, 0, 0, 0, 8339, 8340, 3, 45, 22, 0, 8340, 8341, 3, 15, 7, 0, 8341, 8342, 3, 53, 26, 0, 8342, 8343, 3, 45, 22, 0, 8343, 1564, 1, 0, 0, 0, 8344, 8345, 3, 45, 22, 0, 8345, 8346, 3, 23, 11, 0, 8346, 8347, 3, 31, 15, 0, 8347, 8348, 3, 15, 7, 0, 8348, 8349, 3, 43, 21, 0, 8349, 8350, 3, 45, 22, 0, 8350, 8351, 3, 7, 3, 0, 8351, 8352, 3, 31, 15, 0, 8352, 8353, 3, 37, 18, 0, 8353, 8354, 3, 45, 22, 0, 8354, 8355, 3, 57, 28, 0, 8355, 1566, 1, 0, 0, 0, 8356, 8357, 3, 45, 22, 0, 8357, 8358, 3, 23, 11, 0, 8358, 8359, 3, 31, 15, 0, 8359, 8360, 3, 15, 7, 0, 8360, 8361, 3, 45, 22, 0, 8361, 8362, 3, 57, 28, 0, 8362, 1568, 1, 0, 0, 0, 8363, 8364, 3, 45, 22, 0, 8364, 8365, 3, 43, 21, 0, 8365, 8366, 3, 39, 19, 0, 8366, 8367, 3, 47, 23, 0, 8367, 8368, 3, 15, 7, 0, 8368, 8369, 3, 41, 20, 0, 8369, 8370, 3, 55, 27, 0, 8370, 1570, 1, 0, 0, 0, 8371, 8372, 3, 45, 22, 0, 8372, 8373, 3, 43, 21, 0, 8373, 8374, 3, 49, 24, 0, 8374, 8375, 3, 15, 7, 0, 8375, 8376, 3, 11, 5, 0, 8376, 8377, 3, 45, 22, 0, 8377, 8378, 3, 35, 17, 0, 8378, 8379, 3, 41, 20, 0, 8379, 1572, 1, 0, 0, 0, 8380, 8381, 3, 45, 22, 0, 8381, 8382, 3, 53, 26, 0, 8382, 8383, 3, 23, 11, 0, 8383, 8384, 3, 13, 6, 0, 8384, 8385, 5, 95, 0, 0, 8385, 8386, 3, 43, 21, 0, 8386, 8387, 3, 33, 16, 0, 8387, 8388, 3, 7, 3, 0, 8388, 8389, 3, 37, 18, 0, 8389, 8390, 3, 43, 21, 0, 8390, 8391, 3, 21, 10, 0, 8391, 8392, 3, 35, 17, 0, 8392, 8393, 3, 45, 22, 0, 8393, 1574, 1, 0, 0, 0, 8394, 8395, 3, 47, 23, 0, 8395, 8396, 3, 47, 23, 0, 8396, 8397, 3, 23, 11, 0, 8397, 8398, 3, 13, 6, 0, 8398, 1576, 1, 0, 0, 0, 8399, 8400, 3, 49, 24, 0, 8400, 8401, 3, 7, 3, 0, 8401, 8402, 3, 41, 20, 0, 8402, 8403, 3, 9, 4, 0, 8403, 8404, 3, 23, 11, 0, 8404, 8405, 3, 45, 22, 0, 8405, 1578, 1, 0, 0, 0, 8406, 8407, 3, 53, 26, 0, 8407, 8408, 3, 31, 15, 0, 8408, 8409, 3, 29, 14, 0, 8409, 1580, 1, 0, 0, 0, 8410, 8411, 5, 44, 0, 0, 8411, 1582, 1, 0, 0, 0, 8412, 8413, 5, 58, 0, 0, 8413, 1584, 1, 0, 0, 0, 8414, 8415, 5, 58, 0, 0, 8415, 8416, 5, 58, 0, 0, 8416, 1586, 1, 0, 0, 0, 8417, 8418, 5, 36, 0, 0, 8418, 1588, 1, 0, 0, 0, 8419, 8420, 5, 36, 0, 0, 8420, 8421, 5, 36, 0, 0, 8421, 1590, 1, 0, 0, 0, 8422, 8423, 5, 42, 0, 0, 8423, 1592, 1, 0, 0, 0, 8424, 8425, 5, 40, 0, 0, 8425, 1594, 1, 0, 0, 0, 8426, 8427, 5, 41, 0, 0, 8427, 1596, 1, 0, 0, 0, 8428, 8429, 5, 91, 0, 0, 8429, 1598, 1, 0, 0, 0, 8430, 8431, 5, 93, 0, 0, 8431, 1600, 1, 0, 0, 0, 8432, 8433, 3, 9, 4, 0, 8433, 8437, 5, 39, 0, 0, 8434, 8436, 2, 48, 49, 0, 8435, 8434, 1, 0, 0, 0, 8436, 8439, 1, 0, 0, 0, 8437, 8435, 1, 0, 0, 0, 8437, 8438, 1, 0, 0, 0, 8438, 8440, 1, 0, 0, 0, 8439, 8437, 1, 0, 0, 0, 8440, 8441, 5, 39, 0, 0, 8441, 1602, 1, 0, 0, 0, 8442, 8443, 3, 15, 7, 0, 8443, 8444, 3, 65, 32, 0, 8444, 1604, 1, 0, 0, 0, 8445, 8447, 5, 45, 0, 0, 8446, 8445, 1, 0, 0, 0, 8446, 8447, 1, 0, 0, 0, 8447, 8449, 1, 0, 0, 0, 8448, 8450, 3, 61, 30, 0, 8449, 8448, 1, 0, 0, 0, 8450, 8451, 1, 0, 0, 0, 8451, 8449, 1, 0, 0, 0, 8451, 8452, 1, 0, 0, 0, 8452, 8453, 1, 0, 0, 0, 8453, 8455, 5, 46, 0, 0, 8454, 8456, 3, 61, 30, 0, 8455, 8454, 1, 0, 0, 0, 8456, 8457, 1, 0, 0, 0, 8457, 8455, 1, 0, 0, 0, 8457, 8458, 1, 0, 0, 0, 8458, 8471, 1, 0, 0, 0, 8459, 8463, 3, 15, 7, 0, 8460, 8462, 5, 45, 0, 0, 8461, 8460, 1, 0, 0, 0, 8462, 8465, 1, 0, 0, 0, 8463, 8461, 1, 0, 0, 0, 8463, 8464, 1, 0, 0, 0, 8464, 8467, 1, 0, 0, 0, 8465, 8463, 1, 0, 0, 0, 8466, 8468, 3, 61, 30, 0, 8467, 8466, 1, 0, 0, 0, 8468, 8469, 1, 0, 0, 0, 8469, 8467, 1, 0, 0, 0, 8469, 8470, 1, 0, 0, 0, 8470, 8472, 1, 0, 0, 0, 8471, 8459, 1, 0, 0, 0, 8471, 8472, 1, 0, 0, 0, 8472, 1606, 1, 0, 0, 0, 8473, 8475, 5, 45, 0, 0, 8474, 8473, 1, 0, 0, 0, 8474, 8475, 1, 0, 0, 0, 8475, 8477, 1, 0, 0, 0, 8476, 8478, 3, 61, 30, 0, 8477, 8476, 1, 0, 0, 0, 8478, 8479, 1, 0, 0, 0, 8479, 8477, 1, 0, 0, 0, 8479, 8480, 1, 0, 0, 0, 8480, 8487, 1, 0, 0, 0, 8481, 8483, 3, 15, 7, 0, 8482, 8484, 3, 61, 30, 0, 8483, 8482, 1, 0, 0, 0, 8484, 8485, 1, 0, 0, 0, 8485, 8483, 1, 0, 0, 0, 8485, 8486, 1, 0, 0, 0, 8486, 8488, 1, 0, 0, 0, 8487, 8481, 1, 0, 0, 0, 8487, 8488, 1, 0, 0, 0, 8488, 1608, 1, 0, 0, 0, 8489, 8490, 5, 120, 0, 0, 8490, 8491, 3, 65, 32, 0, 8491, 1610, 1, 0, 0, 0, 8492, 8493, 5, 46, 0, 0, 8493, 1612, 1, 0, 0, 0, 8494, 8495, 3, 65, 32, 0, 8495, 1614, 1, 0, 0, 0, 8496, 8497, 3, 63, 31, 0, 8497, 1616, 1, 0, 0, 0, 8498, 8502, 7, 32, 0, 0, 8499, 8501, 7, 33, 0, 0, 8500, 8499, 1, 0, 0, 0, 8501, 8504, 1, 0, 0, 0, 8502, 8500, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 1618, 1, 0, 0, 0, 8504, 8502, 1, 0, 0, 0, 8505, 8507, 5, 36, 0, 0, 8506, 8508, 3, 61, 30, 0, 8507, 8506, 1, 0, 0, 0, 8508, 8509, 1, 0, 0, 0, 8509, 8507, 1, 0, 0, 0, 8509, 8510, 1, 0, 0, 0, 8510, 1620, 1, 0, 0, 0, 8511, 8515, 7, 34, 0, 0, 8512, 8514, 7, 35, 0, 0, 8513, 8512, 1, 0, 0, 0, 8514, 8517, 1, 0, 0, 0, 8515, 8513, 1, 0, 0, 0, 8515, 8516, 1, 0, 0, 0, 8516, 1622, 1, 0, 0, 0, 8517, 8515, 1, 0, 0, 0, 8518, 8519, 5, 38, 0, 0, 8519, 1624, 1, 0, 0, 0, 8520, 8521, 5, 38, 0, 0, 8521, 8522, 5, 38, 0, 0, 8522, 1626, 1, 0, 0, 0, 8523, 8524, 5, 38, 0, 0, 8524, 8525, 5, 60, 0, 0, 8525, 1628, 1, 0, 0, 0, 8526, 8527, 5, 64, 0, 0, 8527, 8528, 5, 64, 0, 0, 8528, 1630, 1, 0, 0, 0, 8529, 8530, 5, 64, 0, 0, 8530, 8531, 5, 62, 0, 0, 8531, 1632, 1, 0, 0, 0, 8532, 8533, 5, 64, 0, 0, 8533, 1634, 1, 0, 0, 0, 8534, 8535, 5, 33, 0, 0, 8535, 1636, 1, 0, 0, 0, 8536, 8537, 5, 33, 0, 0, 8537, 8538, 5, 33, 0, 0, 8538, 1638, 1, 0, 0, 0, 8539, 8540, 5, 33, 0, 0, 8540, 8541, 5, 61, 0, 0, 8541, 1640, 1, 0, 0, 0, 8542, 8543, 5, 94, 0, 0, 8543, 1642, 1, 0, 0, 0, 8544, 8545, 5, 61, 0, 0, 8545, 1644, 1, 0, 0, 0, 8546, 8547, 5, 61, 0, 0, 8547, 8548, 5, 62, 0, 0, 8548, 1646, 1, 0, 0, 0, 8549, 8550, 5, 62, 0, 0, 8550, 1648, 1, 0, 0, 0, 8551, 8552, 5, 62, 0, 0, 8552, 8553, 5, 61, 0, 0, 8553, 1650, 1, 0, 0, 0, 8554, 8555, 5, 62, 0, 0, 8555, 8556, 5, 62, 0, 0, 8556, 1652, 1, 0, 0, 0, 8557, 8558, 5, 35, 0, 0, 8558, 1654, 1, 0, 0, 0, 8559, 8560, 5, 35, 0, 0, 8560, 8561, 5, 61, 0, 0, 8561, 1656, 1, 0, 0, 0, 8562, 8563, 5, 35, 0, 0, 8563, 8564, 5, 62, 0, 0, 8564, 1658, 1, 0, 0, 0, 8565, 8566, 5, 35, 0, 0, 8566, 8567, 5, 62, 0, 0, 8567, 8568, 5, 62, 0, 0, 8568, 1660, 1, 0, 0, 0, 8569, 8570, 5, 35, 0, 0, 8570, 8571, 5, 35, 0, 0, 8571, 1662, 1, 0, 0, 0, 8572, 8573, 5, 45, 0, 0, 8573, 8574, 5, 62, 0, 0, 8574, 1664, 1, 0, 0, 0, 8575, 8576, 5, 45, 0, 0, 8576, 8577, 5, 62, 0, 0, 8577, 8578, 5, 62, 0, 0, 8578, 1666, 1, 0, 0, 0, 8579, 8580, 5, 45, 0, 0, 8580, 8581, 5, 124, 0, 0, 8581, 8582, 5, 45, 0, 0, 8582, 1668, 1, 0, 0, 0, 8583, 8584, 5, 60, 0, 0, 8584, 1670, 1, 0, 0, 0, 8585, 8586, 5, 60, 0, 0, 8586, 8587, 5, 61, 0, 0, 8587, 1672, 1, 0, 0, 0, 8588, 8589, 5, 60, 0, 0, 8589, 8590, 5, 64, 0, 0, 8590, 1674, 1, 0, 0, 0, 8591, 8592, 5, 60, 0, 0, 8592, 8593, 5, 94, 0, 0, 8593, 1676, 1, 0, 0, 0, 8594, 8595, 5, 60, 0, 0, 8595, 8596, 5, 62, 0, 0, 8596, 1678, 1, 0, 0, 0, 8597, 8598, 5, 60, 0, 0, 8598, 8599, 5, 45, 0, 0, 8599, 8600, 5, 62, 0, 0, 8600, 1680, 1, 0, 0, 0, 8601, 8602, 5, 60, 0, 0, 8602, 8603, 5, 60, 0, 0, 8603, 1682, 1, 0, 0, 0, 8604, 8605, 5, 60, 0, 0, 8605, 8606, 5, 60, 0, 0, 8606, 8607, 5, 61, 0, 0, 8607, 1684, 1, 0, 0, 0, 8608, 8609, 5, 60, 0, 0, 8609, 8610, 5, 63, 0, 0, 8610, 8611, 5, 62, 0, 0, 8611, 1686, 1, 0, 0, 0, 8612, 8613, 5, 45, 0, 0, 8613, 1688, 1, 0, 0, 0, 8614, 8615, 5, 37, 0, 0, 8615, 1690, 1, 0, 0, 0, 8616, 8617, 5, 124, 0, 0, 8617, 1692, 1, 0, 0, 0, 8618, 8619, 5, 124, 0, 0, 8619, 8620, 5, 124, 0, 0, 8620, 1694, 1, 0, 0, 0, 8621, 8622, 5, 124, 0, 0, 8622, 8623, 5, 124, 0, 0, 8623, 8624, 5, 47, 0, 0, 8624, 1696, 1, 0, 0, 0, 8625, 8626, 5, 124, 0, 0, 8626, 8627, 5, 47, 0, 0, 8627, 1698, 1, 0, 0, 0, 8628, 8629, 5, 43, 0, 0, 8629, 1700, 1, 0, 0, 0, 8630, 8631, 5, 63, 0, 0, 8631, 1702, 1, 0, 0, 0, 8632, 8633, 5, 63, 0, 0, 8633, 8634, 5, 38, 0, 0, 8634, 1704, 1, 0, 0, 0, 8635, 8636, 5, 63, 0, 0, 8636, 8637, 5, 35, 0, 0, 8637, 1706, 1, 0, 0, 0, 8638, 8639, 5, 63, 0, 0, 8639, 8640, 5, 45, 0, 0, 8640, 1708, 1, 0, 0, 0, 8641, 8642, 5, 63, 0, 0, 8642, 8643, 5, 124, 0, 0, 8643, 1710, 1, 0, 0, 0, 8644, 8645, 5, 47, 0, 0, 8645, 1712, 1, 0, 0, 0, 8646, 8647, 5, 126, 0, 0, 8647, 1714, 1, 0, 0, 0, 8648, 8649, 5, 126, 0, 0, 8649, 8650, 5, 61, 0, 0, 8650, 1716, 1, 0, 0, 0, 8651, 8652, 5, 126, 0, 0, 8652, 8653, 5, 62, 0, 0, 8653, 8654, 5, 61, 0, 0, 8654, 8655, 5, 126, 0, 0, 8655, 1718, 1, 0, 0, 0, 8656, 8657, 5, 126, 0, 0, 8657, 8658, 5, 62, 0, 0, 8658, 8659, 5, 126, 0, 0, 8659, 1720, 1, 0, 0, 0, 8660, 8661, 5, 126, 0, 0, 8661, 8662, 5, 60, 0, 0, 8662, 8663, 5, 61, 0, 0, 8663, 8664, 5, 126, 0, 0, 8664, 1722, 1, 0, 0, 0, 8665, 8666, 5, 126, 0, 0, 8666, 8667, 5, 60, 0, 0, 8667, 8668, 5, 126, 0, 0, 8668, 1724, 1, 0, 0, 0, 8669, 8670, 5, 126, 0, 0, 8670, 8671, 5, 42, 0, 0, 8671, 1726, 1, 0, 0, 0, 8672, 8673, 5, 126, 0, 0, 8673, 8674, 5, 126, 0, 0, 8674, 1728, 1, 0, 0, 0, 8675, 8676, 5, 59, 0, 0, 8676, 1730, 1, 0, 0, 0, 24, 0, 1734, 1744, 1758, 1827, 1829, 1840, 1842, 1853, 1855, 8437, 8446, 8451, 8457, 8463, 8469, 8471, 8474, 8479, 8485, 8487, 8502, 8509, 8515, 2, 6, 0, 0, 0, 1, 0] \ No newline at end of file diff --git a/gen/PostgreSQLLexer.java b/gen/PostgreSQLLexer.java new file mode 100644 index 0000000..5dcd154 --- /dev/null +++ b/gen/PostgreSQLLexer.java @@ -0,0 +1,6194 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class PostgreSQLLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + WHITESPACE=1, BLOCK_COMMENT=2, LINE_COMMENT=3, A_=4, ABORT=5, ABS=6, ABSOLUTE=7, + ACCESS=8, ACTION=9, ADA=10, ADD=11, ADMIN=12, AFTER=13, AGGREGATE=14, + ALIAS=15, ALL=16, ALLOCATE=17, ALSO=18, ALTER=19, ALWAYS=20, ANALYSE=21, + ANALYZE=22, AND=23, ANY=24, ARE=25, ARRAY=26, AS=27, ASC=28, ASENSITIVE=29, + ASSERTION=30, ASSIGNMENT=31, ASYMMETRIC=32, AT=33, ATOMIC=34, ATTRIBUTE=35, + ATTRIBUTES=36, AUTHORIZATION=37, AVG=38, BACKWARD=39, BEFORE=40, BEGIN=41, + BERNOULLI=42, BETWEEN=43, BIGINT=44, BINARY=45, BIT=46, BIT_LENGTH=47, + BITVAR=48, BLOB=49, BOOLEAN=50, BOTH=51, BREADTH=52, BUFFERS=53, BY=54, + C_=55, CACHE=56, CALL=57, CALLED=58, CARDINALITY=59, CASCADE=60, CASCADED=61, + CASE=62, CAST=63, CATALOG=64, CATALOG_NAME=65, CEIL=66, CEILING=67, CHAIN=68, + CHAR=69, CHAR_LENGTH=70, CHARACTER=71, CHARACTER_LENGTH=72, CHARACTER_SET_CATALOG=73, + CHARACTER_SET_NAME=74, CHARACTER_SET_SCHEMA=75, CHARACTERISTICS=76, CHARACTERS=77, + CHECK=78, CHECKED=79, CHECKPOINT=80, CLASS=81, CLASS_ORIGIN=82, CLOB=83, + CLOSE=84, CLUSTER=85, COALESCE=86, COBOL=87, COLLATE=88, COLLATION=89, + COLLATION_CATALOG=90, COLLATION_NAME=91, COLLATION_SCHEMA=92, COLLECT=93, + COLUMN=94, COLUMN_NAME=95, COMMAND_FUNCTION=96, COMMAND_FUNCTION_CODE=97, + COMMENT=98, COMMIT=99, COMMITTED=100, COMPLETION=101, CONDITION=102, CONDITION_NUMBER=103, + CONFIGURATION=104, CONFLICT=105, CONNECT=106, CONNECTION=107, CONNECTION_NAME=108, + CONSTRAINT=109, CONSTRAINT_CATALOG=110, CONSTRAINT_NAME=111, CONSTRAINT_SCHEMA=112, + CONSTRAINTS=113, CONSTRUCTOR=114, CONTAINS=115, CONTINUE=116, CONVERSION=117, + CONVERT=118, COPY=119, CORR=120, CORRESPONDING=121, COSTS=122, COUNT=123, + COVAR_POP=124, COVAR_SAMP=125, CREATE=126, CREATEDB=127, CREATEUSER=128, + CROSS=129, CSV=130, CUBE=131, CUME_DIST=132, CURRENT=133, CURRENT_DATE=134, + CURRENT_DEFAULT_TRANSFORM_GROUP=135, CURRENT_PATH=136, CURRENT_ROLE=137, + CURRENT_TIME=138, CURRENT_TIMESTAMP=139, CURRENT_TRANSFORM_GROUP_FOR_TYPE=140, + CURRENT_USER=141, CURSOR=142, CURSOR_NAME=143, CYCLE=144, DATA=145, DATABASE=146, + DATE=147, DATETIME_INTERVAL_CODE=148, DATETIME_INTERVAL_PRECISION=149, + DAY=150, DEALLOCATE=151, DEC=152, DECIMAL=153, DECLARE=154, DEFAULT=155, + DEFAULTS=156, DEFERABLE=157, DEFERRABLE=158, DEFERRED=159, DEFINED=160, + DEFINER=161, DEGREE=162, DELETE=163, DELIMITER=164, DELIMITERS=165, DENSE_RANK=166, + DEPENDS=167, DEPTH=168, DEREF=169, DERIVED=170, DESC=171, DESCRIBE=172, + DESCRIPTOR=173, DESTROY=174, DESTRUCTOR=175, DETERMINISTIC=176, DIAGNOSTICS=177, + DICTIONARY=178, DISABLE=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, DISCONNECT=182, + DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, DROP=188, + DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, EACH=192, + ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, END=198, + END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, EXCEPTION=204, + EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, EXISTING=210, + EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, EXTERNAL=216, + EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, FINAL=222, + FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, FOREIGN=229, + FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, FREEZE=235, + FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, GENERATED=242, + GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, GREATEST=249, + GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, HOLD=255, + HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, + IMMUTABLE=262, IMPLEMENTATION=263, IMPLICIT=264, IN=265, INCLUDING=266, + INCREMENT=267, INDEX=268, INDICATOR=269, INFIX=270, INHERITS=271, INITIALIZE=272, + INITIALLY=273, INNER=274, INOUT=275, INPUT=276, INSENSITIVE=277, INSERT=278, + INSTANCE=279, INSTANTIABLE=280, INSTEAD=281, INT=282, INTEGER=283, INTERSECT=284, + INTERSECTION=285, INTERVAL=286, INTO=287, INVOKER=288, IS=289, ISOLATION=290, + ITERATE=291, JOIN=292, K_=293, KEY=294, KEY_MEMBER=295, KEY_TYPE=296, + LABEL=297, LANCOMPILER=298, LANGUAGE=299, LARGE=300, LAST=301, LATERAL=302, + LEADING=303, LEAST=304, LEFT=305, LENGTH=306, LESS=307, LEVEL=308, LIKE=309, + LIMIT=310, LISTEN=311, LN=312, LOAD=313, LOCAL=314, LOCALTIME=315, LOCALTIMESTAMP=316, + LOCATION=317, LOCATOR=318, LOCK=319, LOCKED=320, LOWER=321, M_=322, MAIN=323, + MAP=324, MAPPING=325, MATCH=326, MATCH_SIMPLE=327, MATCHED=328, MAX=329, + MAXVALUE=330, MEMBER=331, MERGE=332, MESSAGE_LENGTH=333, MESSAGE_OCTET_LENGTH=334, + MESSAGE_TEXT=335, METHOD=336, MIN=337, MINUTE=338, MINVALUE=339, MOD=340, + MODE=341, MODIFIES=342, MODIFY=343, MODULE=344, MONTH=345, MORE_=346, + MOVE=347, MULTISET=348, MUMPS=349, NAME=350, NAMES=351, NATIONAL=352, + NATURAL=353, NCHAR=354, NCLOB=355, NESTING=356, NEW=357, NEXT=358, NO=359, + NOCREATEDB=360, NOCREATEUSER=361, NONE=362, NORMALIZE=363, NORMALIZED=364, + NOT=365, NOTHING=366, NOTIFY=367, NOTNULL=368, NOWAIT=369, NULL=370, NULLABLE=371, + NULLIF=372, NULLS=373, NUMBER=374, NUMERIC=375, OBJECT=376, OCTET_LENGTH=377, + OCTETS=378, OF=379, OFF=380, OFFSET=381, OIDS=382, OLD=383, ON=384, ONLY=385, + OPEN=386, OPERATION=387, OPERATOR=388, OPTION=389, OPTIONS=390, OR=391, + ORDER=392, ORDERING=393, ORDINALITY=394, OTHERS=395, OUT=396, OUTER=397, + OUTPUT=398, OVER=399, OVERLAPS=400, OVERLAY=401, OVERRIDING=402, OWNER=403, + PAD=404, PARAMETER=405, PARAMETER_MODE=406, PARAMETER_NAME=407, PARAMETER_ORDINAL_POSITION=408, + PARAMETER_SPECIFIC_CATALOG=409, PARAMETER_SPECIFIC_NAME=410, PARAMETER_SPECIFIC_SCHEMA=411, + PARAMETERS=412, PARSER=413, PARTIAL=414, PARTITION=415, PASCAL=416, PASSWORD=417, + PATH=418, PERCENT_RANK=419, PERCENTILE_CONT=420, PERCENTILE_DISC=421, + PLACING=422, PLAIN=423, PLANS=424, PLI=425, POSITION=426, POSTFIX=427, + POWER=428, PRECEDING=429, PRECISION=430, PREFIX=431, PREORDER=432, PREPARE=433, + PREPARED=434, PRESERVE=435, PRIMARY=436, PRIOR=437, PRIVILEGES=438, PROCEDURAL=439, + PROCEDURE=440, PUBLIC=441, PUBLICATION=442, QUOTE=443, RANGE=444, RANK=445, + READ=446, READS=447, REAL=448, REASSIGN=449, RECHECK=450, RECURSIVE=451, + REF=452, REFERENCES=453, REFERENCING=454, REFRESH=455, REGR_AVGX=456, + REGR_AVGY=457, REGR_COUNT=458, REGR_INTERCEPT=459, REGR_R2=460, REGR_SLOPE=461, + REGR_SXX=462, REGR_SXY=463, REGR_SYY=464, REINDEX=465, RELATIVE=466, RELEASE=467, + RENAME=468, REPEATABLE=469, REPLACE=470, REPLICA=471, RESET=472, RESTART=473, + RESTRICT=474, RESULT=475, RETURN=476, RETURNED_CARDINALITY=477, RETURNED_LENGTH=478, + RETURNED_OCTET_LENGTH=479, RETURNED_SQLSTATE=480, RETURNING=481, RETURNS=482, + REVOKE=483, RIGHT=484, ROLE=485, ROLLBACK=486, ROLLUP=487, ROUTINE=488, + ROUTINE_CATALOG=489, ROUTINE_NAME=490, ROUTINE_SCHEMA=491, ROW=492, ROW_COUNT=493, + ROW_NUMBER=494, ROWS=495, RULE=496, SAVEPOINT=497, SCALE=498, SCHEMA=499, + SCHEMA_NAME=500, SCOPE=501, SCOPE_CATALOG=502, SCOPE_NAME=503, SCOPE_SCHEMA=504, + SCROLL=505, SEARCH=506, SECOND=507, SECTION=508, SECURITY=509, SELECT=510, + SELF=511, SENSITIVE=512, SEQUENCE=513, SEQUENCES=514, SERIALIZABLE=515, + SERVER_NAME=516, SESSION=517, SESSION_USER=518, SET=519, SETOF=520, SETS=521, + SHARE=522, SHOW=523, SIMILAR=524, SIMPLE=525, SIZE=526, SKIP_=527, SMALLINT=528, + SNAPSHOT=529, SOME=530, SOURCE=531, SPACE=532, SPECIFIC=533, SPECIFIC_NAME=534, + SPECIFICTYPE=535, SQL=536, SQLCODE=537, SQLERROR=538, SQLEXCEPTION=539, + SQLSTATE=540, SQLWARNING=541, SQRT=542, STABLE=543, START=544, STATE=545, + STATEMENT=546, STATIC=547, STATISTICS=548, STDDEV_POP=549, STDDEV_SAMP=550, + STDIN=551, STDOUT=552, STORAGE=553, STRICT=554, STRUCTURE=555, STYLE=556, + SUBCLASS_ORIGIN=557, SUBLIST=558, SUBMULTISET=559, SUBSCRIPTION=560, SUBSTRING=561, + SUM=562, SYMMETRIC=563, SYSID=564, SYSTEM=565, SYSTEM_USER=566, TABLE=567, + TABLE_NAME=568, TABLESAMPLE=569, TABLESPACE=570, TEMP=571, TEMPLATE=572, + TEMPORARY=573, TERMINATE=574, THAN=575, THEN=576, TIES=577, TIME=578, + TIMESTAMP=579, TIMEZONE_HOUR=580, TIMEZONE_MINUTE=581, TIMING=582, TO=583, + TOAST=584, TOP_LEVEL_COUNT=585, TRAILING=586, TRANSACTION=587, TRANSACTION_ACTIVE=588, + TRANSACTIONS_COMMITTED=589, TRANSACTIONS_ROLLED_BACK=590, TRANSFORM=591, + TRANSFORMS=592, TRANSLATE=593, TRANSLATION=594, TREAT=595, TRIGGER=596, + TRIGGER_CATALOG=597, TRIGGER_NAME=598, TRIGGER_SCHEMA=599, TRIM=600, TRUE=601, + TRUNCATE=602, TRUSTED=603, TYPE=604, UESCAPE=605, UNBOUNDED=606, UNCOMMITTED=607, + UNDER=608, UNENCRYPTED=609, UNION=610, UNIQUE=611, UNKNOWN=612, UNLISTEN=613, + UNNAMED=614, UNNEST=615, UNTIL=616, UPDATE=617, UPPER=618, USAGE=619, + USER=620, USER_DEFINED_TYPE_CATALOG=621, USER_DEFINED_TYPE_CODE=622, USER_DEFINED_TYPE_NAME=623, + USER_DEFINED_TYPE_SCHEMA=624, USING=625, VACUUM=626, VALID=627, VALIDATE=628, + VALIDATOR=629, VALUE=630, VALUES=631, VAR_POP=632, VAR_SAMP=633, VARCHAR=634, + VARIABLE=635, VARIADIC=636, VARYING=637, VERBOSE=638, VIEW=639, VOLATILE=640, + WHEN=641, WHENEVER=642, WHERE=643, WIDTH_BUCKET=644, WINDOW=645, WITH=646, + WITHIN=647, WITHOUT=648, WORK=649, WRITE=650, YAML=651, YEAR=652, YES=653, + ZONE=654, SUPERUSER=655, NOSUPERUSER=656, CREATEROLE=657, NOCREATEROLE=658, + INHERIT=659, NOINHERIT=660, LOGIN=661, NOLOGIN=662, REPLICATION=663, NOREPLICATION=664, + BYPASSRLS=665, NOBYPASSRLS=666, SFUNC=667, STYPE=668, SSPACE=669, FINALFUNC=670, + FINALFUNC_EXTRA=671, COMBINEFUNC=672, SERIALFUNC=673, DESERIALFUNC=674, + INITCOND=675, MSFUNC=676, MINVFUNC=677, MSTYPE=678, MSSPACE=679, MFINALFUNC=680, + MFINALFUNC_EXTRA=681, MINITCOND=682, SORTOP=683, PARALLEL=684, HYPOTHETICAL=685, + SAFE=686, RESTRICTED=687, UNSAFE=688, BASETYPE=689, IF=690, LOCALE=691, + LC_COLLATE=692, LC_CTYPE=693, PROVIDER=694, VERSION=695, ALLOW_CONNECTIONS=696, + IS_TEMPLATE=697, EVENT=698, WRAPPER=699, SERVER=700, BTREE=701, HASH_=702, + GIST=703, SPGIST=704, GIN=705, BRIN=706, CONCURRENTLY=707, INLINE=708, + MATERIALIZED=709, LEFTARG=710, RIGHTARG=711, COMMUTATOR=712, NEGATOR=713, + HASHES=714, MERGES=715, FAMILY=716, POLICY=717, OWNED=718, ABSTIME=719, + BIGSERIAL=720, BIT_VARYING=721, BOOL=722, BOX=723, BYTEA=724, CHARACTER_VARYING=725, + CIDR=726, CIRCLE=727, FLOAT4=728, FLOAT8=729, INET=730, INT2=731, INT4=732, + INT8=733, JSON=734, JSONB=735, LINE=736, LSEG=737, MACADDR=738, MACADDR8=739, + MONEY=740, PG_LSN=741, POINT=742, POLYGON=743, RELTIME=744, SERIAL=745, + SERIAL2=746, SERIAL4=747, SERIAL8=748, SMALLSERIAL=749, STSTEM=750, TEXT=751, + TIMESTAMPTZ=752, TIMETZ=753, TSQUERY=754, TSVECTOR=755, TXID_SNAPSHOT=756, + UUID=757, VARBIT=758, XML=759, COMMA=760, COLON=761, COLON_COLON=762, + DOLLAR=763, DOLLAR_DOLLAR=764, STAR=765, OPEN_PAREN=766, CLOSE_PAREN=767, + OPEN_BRACKET=768, CLOSE_BRACKET=769, BIT_STRING=770, REGEX_STRING=771, + NUMERIC_LITERAL=772, INTEGER_LITERAL=773, HEX_INTEGER_LITERAL=774, DOT=775, + SINGLEQ_STRING_LITERAL=776, DOUBLEQ_STRING_LITERAL=777, IDENTIFIER=778, + DOLLAR_DEC=779, IDENTIFIER_UNICODE=780, AMP=781, AMP_AMP=782, AMP_LT=783, + AT_AT=784, AT_GT=785, AT_SIGN=786, BANG=787, BANG_BANG=788, BANG_EQUAL=789, + CARET=790, EQUAL=791, EQUAL_GT=792, GT=793, GTE=794, GT_GT=795, HASH=796, + HASH_EQ=797, HASH_GT=798, HASH_GT_GT=799, HASH_HASH=800, HYPHEN_GT=801, + HYPHEN_GT_GT=802, HYPHEN_PIPE_HYPHEN=803, LT=804, LTE=805, LT_AT=806, + LT_CARET=807, LT_GT=808, LT_HYPHEN_GT=809, LT_LT=810, LT_LT_EQ=811, LT_QMARK_GT=812, + MINUS=813, PERCENT=814, PIPE=815, PIPE_PIPE=816, PIPE_PIPE_SLASH=817, + PIPE_SLASH=818, PLUS=819, QMARK=820, QMARK_AMP=821, QMARK_HASH=822, QMARK_HYPHEN=823, + QMARK_PIPE=824, SLASH=825, TIL=826, TIL_EQ=827, TIL_GTE_TIL=828, TIL_GT_TIL=829, + TIL_LTE_TIL=830, TIL_LT_TIL=831, TIL_STAR=832, TIL_TIL=833, SEMI=834; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A", "B", "C", "D", "E", + "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", + "T", "U", "V", "W", "X", "Y", "Z", "HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", + "SQUOTA_STRING", "BQUOTA_STRING", "A_", "ABORT", "ABS", "ABSOLUTE", "ACCESS", + "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", + "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", + "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", + "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", "AUTHORIZATION", + "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", "BIGINT", + "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", "BOTH", "BREADTH", + "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", "CASCADE", + "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", "CEILING", + "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", "CHARACTER_SET_CATALOG", + "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CHARACTERISTICS", "CHARACTERS", + "CHECK", "CHECKED", "CHECKPOINT", "CLASS", "CLASS_ORIGIN", "CLOB", "CLOSE", + "CLUSTER", "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLLATION_CATALOG", + "COLLATION_NAME", "COLLATION_SCHEMA", "COLLECT", "COLUMN", "COLUMN_NAME", + "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMENT", "COMMIT", "COMMITTED", + "COMPLETION", "CONDITION", "CONDITION_NUMBER", "CONFIGURATION", "CONFLICT", + "CONNECT", "CONNECTION", "CONNECTION_NAME", "CONSTRAINT", "CONSTRAINT_CATALOG", + "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", "COPY", "CORR", "CORRESPONDING", + "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CREATEDB", "CREATEUSER", + "CROSS", "CSV", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", + "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", + "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CURSOR_NAME", + "CYCLE", "DATA", "DATABASE", "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", + "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", + "DEFERABLE", "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", + "DELETE", "DELIMITER", "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", + "DEREF", "DERIVED", "DESC", "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", + "DETERMINISTIC", "DIAGNOSTICS", "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", + "DISCARD", "DISCONNECT", "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", + "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", + "ELEMENT", "ELSE", "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", + "EQUALS", "ESCAPE", "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDE", "EXCLUDING", + "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", "EXISTS", "EXP", "EXPLAIN", + "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", + "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", "FOLLOWING", "FOR", "FORCE", + "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", "FOUND", "FREE", "FREEZE", + "FROM", "FULL", "FUNCTION", "FUSION", "G_", "GENERAL", "GENERATED", "GET", + "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", "GREATEST", "GROUP", "GROUPING", + "HANDLER", "HAVING", "HIERARCHY", "HOLD", "HOST", "HOUR", "IDENTITY", + "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLEMENTATION", "IMPLICIT", + "IN", "INCLUDING", "INCREMENT", "INDEX", "INDICATOR", "INFIX", "INHERITS", + "INITIALIZE", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", + "INSERT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INT", "INTEGER", "INTERSECT", + "INTERSECTION", "INTERVAL", "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", + "JOIN", "K_", "KEY", "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", + "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", + "LESS", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", + "LOCALTIMESTAMP", "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", + "MAIN", "MAP", "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", + "MAXVALUE", "MEMBER", "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", + "MESSAGE_TEXT", "METHOD", "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", + "MODIFIES", "MODIFY", "MODULE", "MONTH", "MORE_", "MOVE", "MULTISET", + "MUMPS", "NAME", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NESTING", + "NEW", "NEXT", "NO", "NOCREATEDB", "NOCREATEUSER", "NONE", "NORMALIZE", + "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL", + "NULLABLE", "NULLIF", "NULLS", "NUMBER", "NUMERIC", "OBJECT", "OCTET_LENGTH", + "OCTETS", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPEN", + "OPERATION", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDERING", + "ORDINALITY", "OTHERS", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", + "OVERLAY", "OVERRIDING", "OWNER", "PAD", "PARAMETER", "PARAMETER_MODE", + "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", + "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARAMETERS", + "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", "PATH", "PERCENT_RANK", + "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", "PLAIN", "PLANS", "PLI", + "POSITION", "POSTFIX", "POWER", "PRECEDING", "PRECISION", "PREFIX", "PREORDER", + "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", + "PROCEDURAL", "PROCEDURE", "PUBLIC", "PUBLICATION", "QUOTE", "RANGE", + "RANK", "READ", "READS", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", + "REF", "REFERENCES", "REFERENCING", "REFRESH", "REGR_AVGX", "REGR_AVGY", + "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", + "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", "RENAME", "REPEATABLE", + "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RESULT", "RETURN", + "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", + "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", + "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW", + "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", "SCHEMA", + "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", + "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", + "SIMPLE", "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", + "SPACE", "SPECIFIC", "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", + "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", + "START", "STATE", "STATEMENT", "STATIC", "STATISTICS", "STDDEV_POP", + "STDDEV_SAMP", "STDIN", "STDOUT", "STORAGE", "STRICT", "STRUCTURE", "STYLE", + "SUBCLASS_ORIGIN", "SUBLIST", "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", + "SUM", "SYMMETRIC", "SYSID", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", + "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", + "THAN", "THEN", "TIES", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", + "TIMING", "TO", "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", + "TRANSACTION_ACTIVE", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", + "TRANSFORM", "TRANSFORMS", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", + "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TRIM", "TRUE", + "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", + "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNNAMED", + "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", + "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", + "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", + "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", + "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", + "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", + "YES", "ZONE", "SUPERUSER", "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", + "INHERIT", "NOINHERIT", "LOGIN", "NOLOGIN", "REPLICATION", "NOREPLICATION", + "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", + "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", + "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", + "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "RESTRICTED", + "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", + "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", + "BTREE", "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", + "MATERIALIZED", "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", + "MERGES", "FAMILY", "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", + "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", + "FLOAT8", "INET", "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", + "MACADDR", "MACADDR8", "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", + "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", + "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", + "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", + "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", + "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", + "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", + "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", "AT_AT", + "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", "EQUAL", + "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", "HASH_GT_GT", + "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", "LT", + "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", + "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", + "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", + "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", + "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", + "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, + null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", + "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", + "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", + "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", + "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", + "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", + "';'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", + "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", + "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", + "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", + "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", + "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", + "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", + "CARDINALITY", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", + "CEIL", "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", + "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", + "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", + "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", + "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", + "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", + "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", + "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", + "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", + "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", + "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", + "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", + "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", + "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", + "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", + "EXEC", "EXECUTE", "EXISTING", "EXISTS", "EXP", "EXPLAIN", "EXTENDED", + "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", "FILTER", + "FINAL", "FIRST", "FLOAT", "FLOOR", "FOLLOWING", "FOR", "FORCE", "FOREIGN", + "FORMAT", "FORTRAN", "FORWARD", "FOUND", "FREE", "FREEZE", "FROM", "FULL", + "FUNCTION", "FUSION", "G_", "GENERAL", "GENERATED", "GET", "GLOBAL", + "GO", "GOTO", "GRANT", "GRANTED", "GREATEST", "GROUP", "GROUPING", "HANDLER", + "HAVING", "HIERARCHY", "HOLD", "HOST", "HOUR", "IDENTITY", "IGNORE", + "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLEMENTATION", "IMPLICIT", "IN", + "INCLUDING", "INCREMENT", "INDEX", "INDICATOR", "INFIX", "INHERITS", + "INITIALIZE", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", + "INSERT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INT", "INTEGER", "INTERSECT", + "INTERSECTION", "INTERVAL", "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", + "JOIN", "K_", "KEY", "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", + "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", + "LESS", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", + "LOCALTIMESTAMP", "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", + "MAIN", "MAP", "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", + "MAXVALUE", "MEMBER", "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", + "MESSAGE_TEXT", "METHOD", "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", + "MODIFIES", "MODIFY", "MODULE", "MONTH", "MORE_", "MOVE", "MULTISET", + "MUMPS", "NAME", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NESTING", + "NEW", "NEXT", "NO", "NOCREATEDB", "NOCREATEUSER", "NONE", "NORMALIZE", + "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL", + "NULLABLE", "NULLIF", "NULLS", "NUMBER", "NUMERIC", "OBJECT", "OCTET_LENGTH", + "OCTETS", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPEN", + "OPERATION", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDERING", + "ORDINALITY", "OTHERS", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", + "OVERLAY", "OVERRIDING", "OWNER", "PAD", "PARAMETER", "PARAMETER_MODE", + "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", + "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARAMETERS", + "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", "PATH", "PERCENT_RANK", + "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", "PLAIN", "PLANS", "PLI", + "POSITION", "POSTFIX", "POWER", "PRECEDING", "PRECISION", "PREFIX", "PREORDER", + "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", + "PROCEDURAL", "PROCEDURE", "PUBLIC", "PUBLICATION", "QUOTE", "RANGE", + "RANK", "READ", "READS", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", + "REF", "REFERENCES", "REFERENCING", "REFRESH", "REGR_AVGX", "REGR_AVGY", + "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", + "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", "RENAME", "REPEATABLE", + "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RESULT", "RETURN", + "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", + "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", + "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW", + "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", "SCHEMA", + "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", + "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", + "SIMPLE", "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", + "SPACE", "SPECIFIC", "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", + "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", + "START", "STATE", "STATEMENT", "STATIC", "STATISTICS", "STDDEV_POP", + "STDDEV_SAMP", "STDIN", "STDOUT", "STORAGE", "STRICT", "STRUCTURE", "STYLE", + "SUBCLASS_ORIGIN", "SUBLIST", "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", + "SUM", "SYMMETRIC", "SYSID", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", + "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", + "THAN", "THEN", "TIES", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", + "TIMING", "TO", "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", + "TRANSACTION_ACTIVE", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", + "TRANSFORM", "TRANSFORMS", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", + "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TRIM", "TRUE", + "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", + "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNNAMED", + "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", + "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", + "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", + "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", + "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", + "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", + "YES", "ZONE", "SUPERUSER", "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", + "INHERIT", "NOINHERIT", "LOGIN", "NOLOGIN", "REPLICATION", "NOREPLICATION", + "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", + "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", + "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", + "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "RESTRICTED", + "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", + "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", + "BTREE", "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", + "MATERIALIZED", "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", + "MERGES", "FAMILY", "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", + "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", + "FLOAT8", "INET", "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", + "MACADDR", "MACADDR8", "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", + "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", + "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", + "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", + "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", + "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", + "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", + "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", "AT_AT", + "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", "EQUAL", + "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", "HASH_GT_GT", + "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", "LT", + "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", + "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", + "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", + "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", + "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public PostgreSQLLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "PostgreSQLLexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u0342\u21e5\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ + "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ + "\u0002\u014f\u0007\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151"+ + "\u0002\u0152\u0007\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154"+ + "\u0002\u0155\u0007\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157"+ + "\u0002\u0158\u0007\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a"+ + "\u0002\u015b\u0007\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d"+ + "\u0002\u015e\u0007\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160"+ + "\u0002\u0161\u0007\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163"+ + "\u0002\u0164\u0007\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166"+ + "\u0002\u0167\u0007\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169"+ + "\u0002\u016a\u0007\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c"+ + "\u0002\u016d\u0007\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f"+ + "\u0002\u0170\u0007\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172"+ + "\u0002\u0173\u0007\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175"+ + "\u0002\u0176\u0007\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178"+ + "\u0002\u0179\u0007\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b"+ + "\u0002\u017c\u0007\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e"+ + "\u0002\u017f\u0007\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181"+ + "\u0002\u0182\u0007\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184"+ + "\u0002\u0185\u0007\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187"+ + "\u0002\u0188\u0007\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a"+ + "\u0002\u018b\u0007\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d"+ + "\u0002\u018e\u0007\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190"+ + "\u0002\u0191\u0007\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193"+ + "\u0002\u0194\u0007\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196"+ + "\u0002\u0197\u0007\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199"+ + "\u0002\u019a\u0007\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c"+ + "\u0002\u019d\u0007\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f"+ + "\u0002\u01a0\u0007\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2"+ + "\u0002\u01a3\u0007\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5"+ + "\u0002\u01a6\u0007\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8"+ + "\u0002\u01a9\u0007\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab"+ + "\u0002\u01ac\u0007\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae"+ + "\u0002\u01af\u0007\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1"+ + "\u0002\u01b2\u0007\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4"+ + "\u0002\u01b5\u0007\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7"+ + "\u0002\u01b8\u0007\u01b8\u0002\u01b9\u0007\u01b9\u0002\u01ba\u0007\u01ba"+ + "\u0002\u01bb\u0007\u01bb\u0002\u01bc\u0007\u01bc\u0002\u01bd\u0007\u01bd"+ + "\u0002\u01be\u0007\u01be\u0002\u01bf\u0007\u01bf\u0002\u01c0\u0007\u01c0"+ + "\u0002\u01c1\u0007\u01c1\u0002\u01c2\u0007\u01c2\u0002\u01c3\u0007\u01c3"+ + "\u0002\u01c4\u0007\u01c4\u0002\u01c5\u0007\u01c5\u0002\u01c6\u0007\u01c6"+ + "\u0002\u01c7\u0007\u01c7\u0002\u01c8\u0007\u01c8\u0002\u01c9\u0007\u01c9"+ + "\u0002\u01ca\u0007\u01ca\u0002\u01cb\u0007\u01cb\u0002\u01cc\u0007\u01cc"+ + "\u0002\u01cd\u0007\u01cd\u0002\u01ce\u0007\u01ce\u0002\u01cf\u0007\u01cf"+ + "\u0002\u01d0\u0007\u01d0\u0002\u01d1\u0007\u01d1\u0002\u01d2\u0007\u01d2"+ + "\u0002\u01d3\u0007\u01d3\u0002\u01d4\u0007\u01d4\u0002\u01d5\u0007\u01d5"+ + "\u0002\u01d6\u0007\u01d6\u0002\u01d7\u0007\u01d7\u0002\u01d8\u0007\u01d8"+ + "\u0002\u01d9\u0007\u01d9\u0002\u01da\u0007\u01da\u0002\u01db\u0007\u01db"+ + "\u0002\u01dc\u0007\u01dc\u0002\u01dd\u0007\u01dd\u0002\u01de\u0007\u01de"+ + "\u0002\u01df\u0007\u01df\u0002\u01e0\u0007\u01e0\u0002\u01e1\u0007\u01e1"+ + "\u0002\u01e2\u0007\u01e2\u0002\u01e3\u0007\u01e3\u0002\u01e4\u0007\u01e4"+ + "\u0002\u01e5\u0007\u01e5\u0002\u01e6\u0007\u01e6\u0002\u01e7\u0007\u01e7"+ + "\u0002\u01e8\u0007\u01e8\u0002\u01e9\u0007\u01e9\u0002\u01ea\u0007\u01ea"+ + "\u0002\u01eb\u0007\u01eb\u0002\u01ec\u0007\u01ec\u0002\u01ed\u0007\u01ed"+ + "\u0002\u01ee\u0007\u01ee\u0002\u01ef\u0007\u01ef\u0002\u01f0\u0007\u01f0"+ + "\u0002\u01f1\u0007\u01f1\u0002\u01f2\u0007\u01f2\u0002\u01f3\u0007\u01f3"+ + "\u0002\u01f4\u0007\u01f4\u0002\u01f5\u0007\u01f5\u0002\u01f6\u0007\u01f6"+ + "\u0002\u01f7\u0007\u01f7\u0002\u01f8\u0007\u01f8\u0002\u01f9\u0007\u01f9"+ + "\u0002\u01fa\u0007\u01fa\u0002\u01fb\u0007\u01fb\u0002\u01fc\u0007\u01fc"+ + "\u0002\u01fd\u0007\u01fd\u0002\u01fe\u0007\u01fe\u0002\u01ff\u0007\u01ff"+ + "\u0002\u0200\u0007\u0200\u0002\u0201\u0007\u0201\u0002\u0202\u0007\u0202"+ + "\u0002\u0203\u0007\u0203\u0002\u0204\u0007\u0204\u0002\u0205\u0007\u0205"+ + "\u0002\u0206\u0007\u0206\u0002\u0207\u0007\u0207\u0002\u0208\u0007\u0208"+ + "\u0002\u0209\u0007\u0209\u0002\u020a\u0007\u020a\u0002\u020b\u0007\u020b"+ + "\u0002\u020c\u0007\u020c\u0002\u020d\u0007\u020d\u0002\u020e\u0007\u020e"+ + "\u0002\u020f\u0007\u020f\u0002\u0210\u0007\u0210\u0002\u0211\u0007\u0211"+ + "\u0002\u0212\u0007\u0212\u0002\u0213\u0007\u0213\u0002\u0214\u0007\u0214"+ + "\u0002\u0215\u0007\u0215\u0002\u0216\u0007\u0216\u0002\u0217\u0007\u0217"+ + "\u0002\u0218\u0007\u0218\u0002\u0219\u0007\u0219\u0002\u021a\u0007\u021a"+ + "\u0002\u021b\u0007\u021b\u0002\u021c\u0007\u021c\u0002\u021d\u0007\u021d"+ + "\u0002\u021e\u0007\u021e\u0002\u021f\u0007\u021f\u0002\u0220\u0007\u0220"+ + "\u0002\u0221\u0007\u0221\u0002\u0222\u0007\u0222\u0002\u0223\u0007\u0223"+ + "\u0002\u0224\u0007\u0224\u0002\u0225\u0007\u0225\u0002\u0226\u0007\u0226"+ + "\u0002\u0227\u0007\u0227\u0002\u0228\u0007\u0228\u0002\u0229\u0007\u0229"+ + "\u0002\u022a\u0007\u022a\u0002\u022b\u0007\u022b\u0002\u022c\u0007\u022c"+ + "\u0002\u022d\u0007\u022d\u0002\u022e\u0007\u022e\u0002\u022f\u0007\u022f"+ + "\u0002\u0230\u0007\u0230\u0002\u0231\u0007\u0231\u0002\u0232\u0007\u0232"+ + "\u0002\u0233\u0007\u0233\u0002\u0234\u0007\u0234\u0002\u0235\u0007\u0235"+ + "\u0002\u0236\u0007\u0236\u0002\u0237\u0007\u0237\u0002\u0238\u0007\u0238"+ + "\u0002\u0239\u0007\u0239\u0002\u023a\u0007\u023a\u0002\u023b\u0007\u023b"+ + "\u0002\u023c\u0007\u023c\u0002\u023d\u0007\u023d\u0002\u023e\u0007\u023e"+ + "\u0002\u023f\u0007\u023f\u0002\u0240\u0007\u0240\u0002\u0241\u0007\u0241"+ + "\u0002\u0242\u0007\u0242\u0002\u0243\u0007\u0243\u0002\u0244\u0007\u0244"+ + "\u0002\u0245\u0007\u0245\u0002\u0246\u0007\u0246\u0002\u0247\u0007\u0247"+ + "\u0002\u0248\u0007\u0248\u0002\u0249\u0007\u0249\u0002\u024a\u0007\u024a"+ + "\u0002\u024b\u0007\u024b\u0002\u024c\u0007\u024c\u0002\u024d\u0007\u024d"+ + "\u0002\u024e\u0007\u024e\u0002\u024f\u0007\u024f\u0002\u0250\u0007\u0250"+ + "\u0002\u0251\u0007\u0251\u0002\u0252\u0007\u0252\u0002\u0253\u0007\u0253"+ + "\u0002\u0254\u0007\u0254\u0002\u0255\u0007\u0255\u0002\u0256\u0007\u0256"+ + "\u0002\u0257\u0007\u0257\u0002\u0258\u0007\u0258\u0002\u0259\u0007\u0259"+ + "\u0002\u025a\u0007\u025a\u0002\u025b\u0007\u025b\u0002\u025c\u0007\u025c"+ + "\u0002\u025d\u0007\u025d\u0002\u025e\u0007\u025e\u0002\u025f\u0007\u025f"+ + "\u0002\u0260\u0007\u0260\u0002\u0261\u0007\u0261\u0002\u0262\u0007\u0262"+ + "\u0002\u0263\u0007\u0263\u0002\u0264\u0007\u0264\u0002\u0265\u0007\u0265"+ + "\u0002\u0266\u0007\u0266\u0002\u0267\u0007\u0267\u0002\u0268\u0007\u0268"+ + "\u0002\u0269\u0007\u0269\u0002\u026a\u0007\u026a\u0002\u026b\u0007\u026b"+ + "\u0002\u026c\u0007\u026c\u0002\u026d\u0007\u026d\u0002\u026e\u0007\u026e"+ + "\u0002\u026f\u0007\u026f\u0002\u0270\u0007\u0270\u0002\u0271\u0007\u0271"+ + "\u0002\u0272\u0007\u0272\u0002\u0273\u0007\u0273\u0002\u0274\u0007\u0274"+ + "\u0002\u0275\u0007\u0275\u0002\u0276\u0007\u0276\u0002\u0277\u0007\u0277"+ + "\u0002\u0278\u0007\u0278\u0002\u0279\u0007\u0279\u0002\u027a\u0007\u027a"+ + "\u0002\u027b\u0007\u027b\u0002\u027c\u0007\u027c\u0002\u027d\u0007\u027d"+ + "\u0002\u027e\u0007\u027e\u0002\u027f\u0007\u027f\u0002\u0280\u0007\u0280"+ + "\u0002\u0281\u0007\u0281\u0002\u0282\u0007\u0282\u0002\u0283\u0007\u0283"+ + "\u0002\u0284\u0007\u0284\u0002\u0285\u0007\u0285\u0002\u0286\u0007\u0286"+ + "\u0002\u0287\u0007\u0287\u0002\u0288\u0007\u0288\u0002\u0289\u0007\u0289"+ + "\u0002\u028a\u0007\u028a\u0002\u028b\u0007\u028b\u0002\u028c\u0007\u028c"+ + "\u0002\u028d\u0007\u028d\u0002\u028e\u0007\u028e\u0002\u028f\u0007\u028f"+ + "\u0002\u0290\u0007\u0290\u0002\u0291\u0007\u0291\u0002\u0292\u0007\u0292"+ + "\u0002\u0293\u0007\u0293\u0002\u0294\u0007\u0294\u0002\u0295\u0007\u0295"+ + "\u0002\u0296\u0007\u0296\u0002\u0297\u0007\u0297\u0002\u0298\u0007\u0298"+ + "\u0002\u0299\u0007\u0299\u0002\u029a\u0007\u029a\u0002\u029b\u0007\u029b"+ + "\u0002\u029c\u0007\u029c\u0002\u029d\u0007\u029d\u0002\u029e\u0007\u029e"+ + "\u0002\u029f\u0007\u029f\u0002\u02a0\u0007\u02a0\u0002\u02a1\u0007\u02a1"+ + "\u0002\u02a2\u0007\u02a2\u0002\u02a3\u0007\u02a3\u0002\u02a4\u0007\u02a4"+ + "\u0002\u02a5\u0007\u02a5\u0002\u02a6\u0007\u02a6\u0002\u02a7\u0007\u02a7"+ + "\u0002\u02a8\u0007\u02a8\u0002\u02a9\u0007\u02a9\u0002\u02aa\u0007\u02aa"+ + "\u0002\u02ab\u0007\u02ab\u0002\u02ac\u0007\u02ac\u0002\u02ad\u0007\u02ad"+ + "\u0002\u02ae\u0007\u02ae\u0002\u02af\u0007\u02af\u0002\u02b0\u0007\u02b0"+ + "\u0002\u02b1\u0007\u02b1\u0002\u02b2\u0007\u02b2\u0002\u02b3\u0007\u02b3"+ + "\u0002\u02b4\u0007\u02b4\u0002\u02b5\u0007\u02b5\u0002\u02b6\u0007\u02b6"+ + "\u0002\u02b7\u0007\u02b7\u0002\u02b8\u0007\u02b8\u0002\u02b9\u0007\u02b9"+ + "\u0002\u02ba\u0007\u02ba\u0002\u02bb\u0007\u02bb\u0002\u02bc\u0007\u02bc"+ + "\u0002\u02bd\u0007\u02bd\u0002\u02be\u0007\u02be\u0002\u02bf\u0007\u02bf"+ + "\u0002\u02c0\u0007\u02c0\u0002\u02c1\u0007\u02c1\u0002\u02c2\u0007\u02c2"+ + "\u0002\u02c3\u0007\u02c3\u0002\u02c4\u0007\u02c4\u0002\u02c5\u0007\u02c5"+ + "\u0002\u02c6\u0007\u02c6\u0002\u02c7\u0007\u02c7\u0002\u02c8\u0007\u02c8"+ + "\u0002\u02c9\u0007\u02c9\u0002\u02ca\u0007\u02ca\u0002\u02cb\u0007\u02cb"+ + "\u0002\u02cc\u0007\u02cc\u0002\u02cd\u0007\u02cd\u0002\u02ce\u0007\u02ce"+ + "\u0002\u02cf\u0007\u02cf\u0002\u02d0\u0007\u02d0\u0002\u02d1\u0007\u02d1"+ + "\u0002\u02d2\u0007\u02d2\u0002\u02d3\u0007\u02d3\u0002\u02d4\u0007\u02d4"+ + "\u0002\u02d5\u0007\u02d5\u0002\u02d6\u0007\u02d6\u0002\u02d7\u0007\u02d7"+ + "\u0002\u02d8\u0007\u02d8\u0002\u02d9\u0007\u02d9\u0002\u02da\u0007\u02da"+ + "\u0002\u02db\u0007\u02db\u0002\u02dc\u0007\u02dc\u0002\u02dd\u0007\u02dd"+ + "\u0002\u02de\u0007\u02de\u0002\u02df\u0007\u02df\u0002\u02e0\u0007\u02e0"+ + "\u0002\u02e1\u0007\u02e1\u0002\u02e2\u0007\u02e2\u0002\u02e3\u0007\u02e3"+ + "\u0002\u02e4\u0007\u02e4\u0002\u02e5\u0007\u02e5\u0002\u02e6\u0007\u02e6"+ + "\u0002\u02e7\u0007\u02e7\u0002\u02e8\u0007\u02e8\u0002\u02e9\u0007\u02e9"+ + "\u0002\u02ea\u0007\u02ea\u0002\u02eb\u0007\u02eb\u0002\u02ec\u0007\u02ec"+ + "\u0002\u02ed\u0007\u02ed\u0002\u02ee\u0007\u02ee\u0002\u02ef\u0007\u02ef"+ + "\u0002\u02f0\u0007\u02f0\u0002\u02f1\u0007\u02f1\u0002\u02f2\u0007\u02f2"+ + "\u0002\u02f3\u0007\u02f3\u0002\u02f4\u0007\u02f4\u0002\u02f5\u0007\u02f5"+ + "\u0002\u02f6\u0007\u02f6\u0002\u02f7\u0007\u02f7\u0002\u02f8\u0007\u02f8"+ + "\u0002\u02f9\u0007\u02f9\u0002\u02fa\u0007\u02fa\u0002\u02fb\u0007\u02fb"+ + "\u0002\u02fc\u0007\u02fc\u0002\u02fd\u0007\u02fd\u0002\u02fe\u0007\u02fe"+ + "\u0002\u02ff\u0007\u02ff\u0002\u0300\u0007\u0300\u0002\u0301\u0007\u0301"+ + "\u0002\u0302\u0007\u0302\u0002\u0303\u0007\u0303\u0002\u0304\u0007\u0304"+ + "\u0002\u0305\u0007\u0305\u0002\u0306\u0007\u0306\u0002\u0307\u0007\u0307"+ + "\u0002\u0308\u0007\u0308\u0002\u0309\u0007\u0309\u0002\u030a\u0007\u030a"+ + "\u0002\u030b\u0007\u030b\u0002\u030c\u0007\u030c\u0002\u030d\u0007\u030d"+ + "\u0002\u030e\u0007\u030e\u0002\u030f\u0007\u030f\u0002\u0310\u0007\u0310"+ + "\u0002\u0311\u0007\u0311\u0002\u0312\u0007\u0312\u0002\u0313\u0007\u0313"+ + "\u0002\u0314\u0007\u0314\u0002\u0315\u0007\u0315\u0002\u0316\u0007\u0316"+ + "\u0002\u0317\u0007\u0317\u0002\u0318\u0007\u0318\u0002\u0319\u0007\u0319"+ + "\u0002\u031a\u0007\u031a\u0002\u031b\u0007\u031b\u0002\u031c\u0007\u031c"+ + "\u0002\u031d\u0007\u031d\u0002\u031e\u0007\u031e\u0002\u031f\u0007\u031f"+ + "\u0002\u0320\u0007\u0320\u0002\u0321\u0007\u0321\u0002\u0322\u0007\u0322"+ + "\u0002\u0323\u0007\u0323\u0002\u0324\u0007\u0324\u0002\u0325\u0007\u0325"+ + "\u0002\u0326\u0007\u0326\u0002\u0327\u0007\u0327\u0002\u0328\u0007\u0328"+ + "\u0002\u0329\u0007\u0329\u0002\u032a\u0007\u032a\u0002\u032b\u0007\u032b"+ + "\u0002\u032c\u0007\u032c\u0002\u032d\u0007\u032d\u0002\u032e\u0007\u032e"+ + "\u0002\u032f\u0007\u032f\u0002\u0330\u0007\u0330\u0002\u0331\u0007\u0331"+ + "\u0002\u0332\u0007\u0332\u0002\u0333\u0007\u0333\u0002\u0334\u0007\u0334"+ + "\u0002\u0335\u0007\u0335\u0002\u0336\u0007\u0336\u0002\u0337\u0007\u0337"+ + "\u0002\u0338\u0007\u0338\u0002\u0339\u0007\u0339\u0002\u033a\u0007\u033a"+ + "\u0002\u033b\u0007\u033b\u0002\u033c\u0007\u033c\u0002\u033d\u0007\u033d"+ + "\u0002\u033e\u0007\u033e\u0002\u033f\u0007\u033f\u0002\u0340\u0007\u0340"+ + "\u0002\u0341\u0007\u0341\u0002\u0342\u0007\u0342\u0002\u0343\u0007\u0343"+ + "\u0002\u0344\u0007\u0344\u0002\u0345\u0007\u0345\u0002\u0346\u0007\u0346"+ + "\u0002\u0347\u0007\u0347\u0002\u0348\u0007\u0348\u0002\u0349\u0007\u0349"+ + "\u0002\u034a\u0007\u034a\u0002\u034b\u0007\u034b\u0002\u034c\u0007\u034c"+ + "\u0002\u034d\u0007\u034d\u0002\u034e\u0007\u034e\u0002\u034f\u0007\u034f"+ + "\u0002\u0350\u0007\u0350\u0002\u0351\u0007\u0351\u0002\u0352\u0007\u0352"+ + "\u0002\u0353\u0007\u0353\u0002\u0354\u0007\u0354\u0002\u0355\u0007\u0355"+ + "\u0002\u0356\u0007\u0356\u0002\u0357\u0007\u0357\u0002\u0358\u0007\u0358"+ + "\u0002\u0359\u0007\u0359\u0002\u035a\u0007\u035a\u0002\u035b\u0007\u035b"+ + "\u0002\u035c\u0007\u035c\u0002\u035d\u0007\u035d\u0002\u035e\u0007\u035e"+ + "\u0002\u035f\u0007\u035f\u0002\u0360\u0007\u0360\u0001\u0000\u0004\u0000"+ + "\u06c5\b\u0000\u000b\u0000\f\u0000\u06c6\u0001\u0000\u0001\u0000\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u06cf\b\u0001\n"+ + "\u0001\f\u0001\u06d2\t\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0005"+ + "\u0002\u06dd\b\u0002\n\u0002\f\u0002\u06e0\t\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004"+ + "\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+ + "\u0001\b\u0001\b\u0001\t\u0001\t\u0001\n\u0001\n\u0001\u000b\u0001\u000b"+ + "\u0001\f\u0001\f\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000f\u0001"+ + "\u000f\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0012\u0001"+ + "\u0012\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0015\u0001"+ + "\u0015\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0018\u0001"+ + "\u0018\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001b\u0001"+ + "\u001b\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+ + "\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+ + "\u001f\u0005\u001f\u0724\b\u001f\n\u001f\f\u001f\u0727\t\u001f\u0001\u001f"+ + "\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0005 \u0731\b"+ + " \n \f \u0734\t \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ + "!\u0005!\u073e\b!\n!\f!\u0741\t!\u0001!\u0001!\u0001\"\u0001\"\u0001#"+ + "\u0001#\u0001#\u0001#\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001"+ + "%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001"+ + "&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+ + "\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001"+ + ")\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001"+ + "+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001.\u0001"+ + ".\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "/\u0001/\u00010\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u0001"+ + "1\u00011\u00011\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u0001"+ + "3\u00013\u00013\u00013\u00013\u00013\u00013\u00013\u00014\u00014\u0001"+ + "4\u00014\u00014\u00014\u00014\u00014\u00015\u00015\u00015\u00015\u0001"+ + "6\u00016\u00016\u00016\u00017\u00017\u00017\u00017\u00018\u00018\u0001"+ + "8\u00018\u00018\u00018\u00019\u00019\u00019\u0001:\u0001:\u0001:\u0001"+ + ":\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001"+ + "<\u0001<\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + ">\u0001>\u0001>\u0001>\u0001?\u0001?\u0001?\u0001@\u0001@\u0001@\u0001"+ + "@\u0001@\u0001@\u0001@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001"+ + "A\u0001A\u0001A\u0001A\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001D\u0001"+ + "D\u0001D\u0001D\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001"+ + "E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001G\u0001"+ + "G\u0001G\u0001G\u0001G\u0001G\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001I\u0001I\u0001I\u0001"+ + "I\u0001I\u0001I\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001"+ + "K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001"+ + "L\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001O\u0001"+ + "O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0001R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001S\u0001T\u0001T\u0001T\u0001U\u0001U\u0001V\u0001V\u0001"+ + "V\u0001V\u0001V\u0001V\u0001W\u0001W\u0001W\u0001W\u0001W\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\"+ + "\u0001]\u0001]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001"+ + "_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001"+ + "b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001"+ + "c\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ + "e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "h\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001l\u0001"+ + "l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0001m\u0001m\u0001m\u0001"+ + "m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001"+ + "n\u0001n\u0001n\u0001n\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001"+ + "p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ + "p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001q\u0001q\u0001r\u0001r\u0001"+ + "r\u0001r\u0001r\u0001r\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ + "s\u0001s\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001"+ + "t\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001"+ + "v\u0001v\u0001v\u0001v\u0001v\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001x\u0001x\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001z\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001z\u0001{\u0001{\u0001{\u0001{\u0001{\u0001"+ + "{\u0001{\u0001{\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001"+ + "}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001"+ + "}\u0001}\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0080"+ + "\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0088"+ + "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088"+ + "\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090"+ + "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090"+ + "\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0092"+ + "\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092"+ + "\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ + "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ + "\u0001\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094"+ + "\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0095\u0001\u0095\u0001\u0095"+ + "\u0001\u0095\u0001\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096"+ + "\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098\u0001\u0098"+ + "\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099"+ + "\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a\u0001\u009a"+ + "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a"+ + "\u0001\u009a\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c"+ + "\u0001\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009e\u0001\u009e"+ + "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ + "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009f\u0001\u009f\u0001\u009f"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0001\u00a0"+ + "\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1"+ + "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ + "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001\u00a3"+ + "\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ + "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ + "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ + "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a7\u0001\u00a7"+ + "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ + "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8"+ + "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ac\u0001\u00ac"+ + "\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ad"+ + "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ + "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ae"+ + "\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00af"+ + "\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4"+ + "\u0001\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b7\u0001\u00b7"+ + "\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7"+ + "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8"+ + "\u0001\u00b8\u0001\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ + "\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00ba\u0001\u00ba"+ + "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba"+ + "\u0001\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ + "\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bc"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ + "\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ + "\u0001\u00c1\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c3"+ + "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ + "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c6"+ + "\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c7"+ + "\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c8"+ + "\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ + "\u0001\u00c8\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ + "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00d0"+ + "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ + "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3"+ + "\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3"+ + "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ + "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5"+ + "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5"+ + "\u0001\u00d5\u0001\u00d5\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d7"+ + "\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8"+ + "\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00da\u0001\u00da"+ + "\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00db\u0001\u00db\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de"+ + "\u0001\u00de\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0"+ + "\u0001\u00e0\u0001\u00e0\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ + "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4"+ + "\u0001\u00e4\u0001\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5"+ + "\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e6"+ + "\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ + "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7"+ + "\u0001\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ + "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ + "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee"+ + "\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ef\u0001\u00ef\u0001\u00ef"+ + "\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0"+ + "\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ + "\u0001\u00f0\u0001\u00f0\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1"+ + "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001\u00f2\u0001\u00f2"+ + "\u0001\u00f2\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3"+ + "\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ + "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ + "\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ + "\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f6\u0001\u00f6"+ + "\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ + "\u0001\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f8\u0001\u00f8\u0001\u00f8"+ + "\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f9\u0001\u00f9\u0001\u00f9"+ + "\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa\u0001\u00fa\u0001\u00fa"+ + "\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb"+ + "\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fc"+ + "\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fd"+ + "\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fe"+ + "\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00ff"+ + "\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100"+ + "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ + "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0101\u0001\u0101\u0001\u0101"+ + "\u0001\u0101\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102"+ + "\u0001\u0102\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103"+ + "\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0104\u0001\u0104\u0001\u0104"+ + "\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0105\u0001\u0105"+ + "\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105"+ + "\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106"+ + "\u0001\u0106\u0001\u0106\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107"+ + "\u0001\u0107\u0001\u0107\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108"+ + "\u0001\u0108\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109"+ + "\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a"+ + "\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b"+ + "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c"+ + "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001\u010d\u0001\u010d"+ + "\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010e\u0001\u010e"+ + "\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f"+ + "\u0001\u010f\u0001\u010f\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ + "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ + "\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0112\u0001\u0112"+ + "\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0113"+ + "\u0001\u0113\u0001\u0113\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114"+ + "\u0001\u0114\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115"+ + "\u0001\u0115\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116"+ + "\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117\u0001\u0117"+ + "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117"+ + "\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118"+ + "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119"+ + "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u011a\u0001\u011a\u0001\u011a"+ + "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011b"+ + "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b"+ + "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c"+ + "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011d\u0001\u011d"+ + "\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011e\u0001\u011e\u0001\u011e"+ + "\u0001\u011e\u0001\u011e\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f"+ + "\u0001\u011f\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120"+ + "\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0121\u0001\u0121"+ + "\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0122"+ + "\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0123"+ + "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ + "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0124\u0001\u0124\u0001\u0124"+ + "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124"+ + "\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0126\u0001\u0126"+ + "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ + "\u0001\u0126\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0128\u0001\u0128"+ + "\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128"+ + "\u0001\u0128\u0001\u0128\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ + "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ + "\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a"+ + "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b"+ + "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012c\u0001\u012c"+ + "\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012d\u0001\u012d"+ + "\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d"+ + "\u0001\u012d\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ + "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ + "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f"+ + "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u0130\u0001\u0130"+ + "\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0131\u0001\u0131"+ + "\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0132\u0001\u0132"+ + "\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133"+ + "\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ + "\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0134\u0001\u0134"+ + "\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0135"+ + "\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135"+ + "\u0001\u0135\u0001\u0135\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001\u0137"+ + "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0138"+ + "\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0139\u0001\u0139\u0001\u0139"+ + "\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u013a"+ + "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ + "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013b\u0001\u013b\u0001\u013b"+ + "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ + "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013c\u0001\u013c"+ + "\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c"+ + "\u0001\u013c\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d"+ + "\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u0140"+ + "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ + "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0141\u0001\u0141\u0001\u0141"+ + "\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0142"+ + "\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0143\u0001\u0143"+ + "\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0145\u0001\u0145"+ + "\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ + "\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147"+ + "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149"+ + "\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u014a\u0001\u014a\u0001\u014a"+ + "\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014b\u0001\u014b\u0001\u014b"+ + "\u0001\u014b\u0001\u014b\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c"+ + "\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014d\u0001\u014d"+ + "\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d"+ + "\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e"+ + "\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0152"+ + "\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0153"+ + "\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0154\u0001\u0154"+ + "\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0155\u0001\u0155"+ + "\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0156"+ + "\u0001\u0156\u0001\u0156\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0157"+ + "\u0001\u0157\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158"+ + "\u0001\u0158\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u015a"+ + "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ + "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ + "\u0001\u015a\u0001\u015a\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b"+ + "\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015c"+ + "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c"+ + "\u0001\u015c\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d"+ + "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e"+ + "\u0001\u015e\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f"+ + "\u0001\u015f\u0001\u0160\u0001\u0160\u0001\u0161\u0001\u0161\u0001\u0161"+ + "\u0001\u0161\u0001\u0161\u0001\u0162\u0001\u0162\u0001\u0162\u0001\u0162"+ + "\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163"+ + "\u0001\u0163\u0001\u0163\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164"+ + "\u0001\u0164\u0001\u0164\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0166\u0001\u0166\u0001\u0166"+ + "\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0167"+ + "\u0001\u0167\u0001\u0167\u0001\u0167\u0001\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169"+ + "\u0001\u0169\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a"+ + "\u0001\u016a\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ + "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ + "\u0001\u016d\u0001\u016d\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e"+ + "\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016f\u0001\u016f\u0001\u016f"+ + "\u0001\u016f\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170"+ + "\u0001\u0170\u0001\u0170\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171"+ + "\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0172"+ + "\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0173\u0001\u0173\u0001\u0173"+ + "\u0001\u0173\u0001\u0173\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0175"+ + "\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ + "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177"+ + "\u0001\u0177\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178"+ + "\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u017a"+ + "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ + "\u0001\u017a\u0001\u017a\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b"+ + "\u0001\u017b\u0001\u017b\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c"+ + "\u0001\u017c\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d"+ + "\u0001\u017d\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017f\u0001\u017f"+ + "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ + "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182"+ + "\u0001\u0182\u0001\u0182\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183"+ + "\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0185"+ + "\u0001\u0185\u0001\u0185\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188"+ + "\u0001\u0188\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u018a"+ + "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ + "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018b\u0001\u018b"+ + "\u0001\u018b\u0001\u018b\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018d\u0001\u018d"+ + "\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018e"+ + "\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e"+ + "\u0001\u018e\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f"+ + "\u0001\u018f\u0001\u018f\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190"+ + "\u0001\u0190\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ + "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0192\u0001\u0192"+ + "\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0193"+ + "\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0194"+ + "\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194"+ + "\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195"+ + "\u0001\u0195\u0001\u0195\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196"+ + "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0197\u0001\u0197\u0001\u0197"+ + "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ + "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0198\u0001\u0198"+ + "\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u019a\u0001\u019a\u0001\u019a\u0001\u019a"+ + "\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b"+ + "\u0001\u019b\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c"+ + "\u0001\u019d\u0001\u019d\u0001\u019d\u0001\u019d\u0001\u019e\u0001\u019e"+ + "\u0001\u019e\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f"+ + "\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a1"+ + "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ + "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a2\u0001\u01a2\u0001\u01a2"+ + "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2"+ + "\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3"+ + "\u0001\u01a3\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4"+ + "\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a5\u0001\u01a5\u0001\u01a5"+ + "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ + "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ + "\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01aa\u0001\u01aa\u0001\u01aa"+ + "\u0001\u01aa\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab"+ + "\u0001\u01ab\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac"+ + "\u0001\u01ac\u0001\u01ac\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad"+ + "\u0001\u01ad\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01af\u0001\u01af"+ + "\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af"+ + "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ + "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b1"+ + "\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b2"+ + "\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ + "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ + "\u0001\u01b3\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb"+ + "\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bc\u0001\u01bc\u0001\u01bc"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bd"+ + "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ + "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01be\u0001\u01be\u0001\u01be"+ + "\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01bf\u0001\u01bf"+ + "\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ + "\u0001\u01bf\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c3"+ + "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ + "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ + "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c5"+ + "\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c6"+ + "\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c7"+ + "\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ + "\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9"+ + "\u0001\u01c9\u0001\u01c9\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca"+ + "\u0001\u01ca\u0001\u01ca\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ + "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d2\u0001\u01d2"+ + "\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2"+ + "\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3"+ + "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ + "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d5"+ + "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ + "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d6\u0001\u01d6"+ + "\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6"+ + "\u0001\u01d6\u0001\u01d6\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7"+ + "\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ + "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ + "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d9\u0001\u01d9\u0001\u01d9"+ + "\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01da\u0001\u01da\u0001\u01da"+ + "\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01db\u0001\u01db\u0001\u01db"+ + "\u0001\u01db\u0001\u01db\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc"+ + "\u0001\u01dc\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd"+ + "\u0001\u01dd\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de"+ + "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df"+ + "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01e0\u0001\u01e0\u0001\u01e0"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e1"+ + "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ + "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e2\u0001\u01e2\u0001\u01e2"+ + "\u0001\u01e2\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ + "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5"+ + "\u0001\u01e5\u0001\u01e5\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ + "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ + "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ + "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea"+ + "\u0001\u01ea\u0001\u01ea\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb"+ + "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb"+ + "\u0001\u01eb\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ + "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f2"+ + "\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ + "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ + "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f4"+ + "\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4"+ + "\u0001\u01f4\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ + "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f8"+ + "\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8"+ + "\u0001\u01f8\u0001\u01f8\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9"+ + "\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01fa\u0001\u01fa\u0001\u01fa"+ + "\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ + "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ + "\u0001\u01ff\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200"+ + "\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0201\u0001\u0201\u0001\u0201"+ + "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0202\u0001\u0202"+ + "\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0203\u0001\u0203"+ + "\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0204\u0001\u0204\u0001\u0204"+ + "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204"+ + "\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205"+ + "\u0001\u0205\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206"+ + "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ + "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ + "\u0001\u0208\u0001\u0208\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u020a"+ + "\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020b\u0001\u020b\u0001\u020b"+ + "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b"+ + "\u0001\u020b\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ + "\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020e"+ + "\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020f\u0001\u020f"+ + "\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f"+ + "\u0001\u020f\u0001\u020f\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210"+ + "\u0001\u0210\u0001\u0210\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211"+ + "\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0213\u0001\u0213\u0001\u0213"+ + "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0215"+ + "\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ + "\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0216\u0001\u0216"+ + "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ + "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0217"+ + "\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217"+ + "\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218"+ + "\u0001\u0218\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219"+ + "\u0001\u0219\u0001\u0219\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a"+ + "\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021b\u0001\u021b"+ + "\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b"+ + "\u0001\u021b\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c"+ + "\u0001\u021c\u0001\u021c\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021d"+ + "\u0001\u021d\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e"+ + "\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021f"+ + "\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f"+ + "\u0001\u021f\u0001\u021f\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220"+ + "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220"+ + "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ + "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ + "\u0001\u0221\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222"+ + "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222"+ + "\u0001\u0222\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223"+ + "\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0225\u0001\u0225"+ + "\u0001\u0225\u0001\u0225\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226"+ + "\u0001\u0226\u0001\u0226\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0227"+ + "\u0001\u0227\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228"+ + "\u0001\u0228\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u0229"+ + "\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a"+ + "\u0001\u022a\u0001\u022a\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b"+ + "\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022c\u0001\u022c\u0001\u022c"+ + "\u0001\u022c\u0001\u022c\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d"+ + "\u0001\u022d\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e"+ + "\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022f\u0001\u022f"+ + "\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f"+ + "\u0001\u022f\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0230"+ + "\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231"+ + "\u0001\u0231\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232"+ + "\u0001\u0232\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233"+ + "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0234\u0001\u0234"+ + "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ + "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ + "\u0001\u0235\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0237"+ + "\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237"+ + "\u0001\u0237\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238"+ + "\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0239\u0001\u0239"+ + "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ + "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u023a"+ + "\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a"+ + "\u0001\u023a\u0001\u023a\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ + "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ + "\u0001\u023b\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023c"+ + "\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d"+ + "\u0001\u023d\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e"+ + "\u0001\u023e\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f"+ + "\u0001\u023f\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240"+ + "\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0241"+ + "\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241"+ + "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242"+ + "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0243"+ + "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ + "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0244\u0001\u0244"+ + "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ + "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0245\u0001\u0245"+ + "\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0246\u0001\u0246"+ + "\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0247"+ + "\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247"+ + "\u0001\u0247\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248"+ + "\u0001\u0248\u0001\u0248\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249"+ + "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249"+ + "\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a"+ + "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ + "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ + "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024c\u0001\u024c"+ + "\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c"+ + "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ + "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ + "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ + "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ + "\u0001\u024e\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f"+ + "\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u0250"+ + "\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0251\u0001\u0251\u0001\u0251"+ + "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251"+ + "\u0001\u0251\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252"+ + "\u0001\u0252\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253"+ + "\u0001\u0253\u0001\u0253\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254"+ + "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254"+ + "\u0001\u0254\u0001\u0254\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255"+ + "\u0001\u0255\u0001\u0255\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256"+ + "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256"+ + "\u0001\u0256\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257"+ + "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257"+ + "\u0001\u0257\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258"+ + "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258"+ + "\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u025a"+ + "\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a"+ + "\u0001\u025a\u0001\u025a\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b"+ + "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b"+ + "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c"+ + "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025d\u0001\u025d"+ + "\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025e\u0001\u025e\u0001\u025e"+ + "\u0001\u025e\u0001\u025e\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f"+ + "\u0001\u025f\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0260"+ + "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261"+ + "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0262\u0001\u0262"+ + "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ + "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ + "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ + "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ + "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0264\u0001\u0264"+ + "\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0265"+ + "\u0001\u0265\u0001\u0265\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266"+ + "\u0001\u0266\u0001\u0266\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268"+ + "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ + "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ + "\u0001\u026e\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u0270"+ + "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ + "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0271"+ + "\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0272"+ + "\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272"+ + "\u0001\u0272\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0274"+ + "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ + "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ + "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ + "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ + "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0276\u0001\u0276\u0001\u0276"+ + "\u0001\u0276\u0001\u0276\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277"+ + "\u0001\u0277\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0279\u0001\u0279"+ + "\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ + "\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027b"+ + "\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b"+ + "\u0001\u027b\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c"+ + "\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027d"+ + "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ + "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027e"+ + "\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027f"+ + "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ + "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u0280"+ + "\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0281"+ + "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ + "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282"+ + "\u0001\u0282\u0001\u0282\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0284"+ + "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ + "\u0001\u0284\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285"+ + "\u0001\u0285\u0001\u0285\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286"+ + "\u0001\u0286\u0001\u0286\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287"+ + "\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0288\u0001\u0288\u0001\u0288"+ + "\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0289\u0001\u0289\u0001\u0289"+ + "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u028a\u0001\u028a\u0001\u028a"+ + "\u0001\u028a\u0001\u028a\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028f\u0001\u028f\u0001\u028f"+ + "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u0290\u0001\u0290\u0001\u0290"+ + "\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0291\u0001\u0291"+ + "\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0292\u0001\u0292"+ + "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ + "\u0001\u0292\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0294"+ + "\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0295"+ + "\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295"+ + "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296"+ + "\u0001\u0296\u0001\u0296\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0298"+ + "\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298"+ + "\u0001\u0298\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u029a\u0001\u029a"+ + "\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a"+ + "\u0001\u029a\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b"+ + "\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029c\u0001\u029c\u0001\u029c"+ + "\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029d"+ + "\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f"+ + "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ + "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a1\u0001\u02a1\u0001\u02a1"+ + "\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a3\u0001\u02a3"+ + "\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a4"+ + "\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a5\u0001\u02a5"+ + "\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a6"+ + "\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ + "\u0001\u02a6\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7"+ + "\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8"+ + "\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02aa"+ + "\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02ab\u0001\u02ab"+ + "\u0001\u02ab\u0001\u02ab\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac"+ + "\u0001\u02ac\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ae"+ + "\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ + "\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02af"+ + "\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ + "\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02b0\u0001\u02b0"+ + "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ + "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b1"+ + "\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1"+ + "\u0001\u02b1\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2"+ + "\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b3"+ + "\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b4"+ + "\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4"+ + "\u0001\u02b4\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b5\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ + "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ + "\u0001\u02b7\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8"+ + "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8"+ + "\u0001\u02b8\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9"+ + "\u0001\u02b9\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba"+ + "\u0001\u02ba\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb"+ + "\u0001\u02bb\u0001\u02bb\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ + "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02be\u0001\u02be"+ + "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ + "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c4"+ + "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ + "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ + "\u0001\u02c6\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ + "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c9\u0001\u02c9"+ + "\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02ca"+ + "\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ + "\u0001\u02ca\u0001\u02ca\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ + "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ + "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cc\u0001\u02cc\u0001\u02cc"+ + "\u0001\u02cc\u0001\u02cc\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ + "\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ + "\u0001\u02cd\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ + "\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02d0"+ + "\u0001\u02d0\u0001\u02d0\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ + "\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ + "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d4"+ + "\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4"+ + "\u0001\u02d4\u0001\u02d4\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d6\u0001\u02d6"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d7\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d8\u0001\u02d8"+ + "\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d9\u0001\u02d9"+ + "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9"+ + "\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da"+ + "\u0001\u02da\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db"+ + "\u0001\u02db\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc"+ + "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02de"+ + "\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de"+ + "\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ + "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ + "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e3"+ + "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4"+ + "\u0001\u02e4\u0001\u02e4\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ + "\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e6"+ + "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6"+ + "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e7\u0001\u02e7"+ + "\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7"+ + "\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8"+ + "\u0001\u02e8\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ + "\u0001\u02e9\u0001\u02e9\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ + "\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02eb\u0001\u02eb\u0001\u02eb"+ + "\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02ec\u0001\u02ec"+ + "\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ed\u0001\u02ed"+ + "\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed"+ + "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ + "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ef\u0001\u02ef"+ + "\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef"+ + "\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02f0\u0001\u02f0"+ + "\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f1\u0001\u02f1\u0001\u02f1"+ + "\u0001\u02f1\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ + "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ + "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ + "\u0001\u02f3\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4"+ + "\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5"+ + "\u0001\u02f5\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6"+ + "\u0001\u02f6\u0001\u02f6\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ + "\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f8\u0001\u02f8\u0001\u02f8"+ + "\u0001\u02f8\u0001\u02f8\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9"+ + "\u0001\u02f9\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa"+ + "\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fc"+ + "\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fd\u0001\u02fd"+ + "\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fe\u0001\u02fe"+ + "\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02ff\u0001\u02ff\u0001\u02ff"+ + "\u0001\u02ff\u0001\u02ff\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300"+ + "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0301\u0001\u0301"+ + "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301"+ + "\u0001\u0301\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302"+ + "\u0001\u0302\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ + "\u0001\u0303\u0001\u0303\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ + "\u0001\u0304\u0001\u0304\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305"+ + "\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0306\u0001\u0306"+ + "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306"+ + "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ + "\u0001\u0307\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ + "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0309\u0001\u0309\u0001\u0309"+ + "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u030a"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a"+ + "\u0001\u030a\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030b\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c"+ + "\u0001\u030c\u0001\u030c\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d"+ + "\u0001\u030d\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e"+ + "\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e"+ + "\u0001\u030e\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ + "\u0001\u030f\u0001\u030f\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310"+ + "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0311\u0001\u0311"+ + "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ + "\u0001\u0311\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312"+ + "\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312"+ + "\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0313\u0001\u0313\u0001\u0313"+ + "\u0001\u0313\u0001\u0313\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0314"+ + "\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0315\u0001\u0315\u0001\u0315"+ + "\u0001\u0315\u0001\u0316\u0001\u0316\u0001\u0317\u0001\u0317\u0001\u0318"+ + "\u0001\u0318\u0001\u0318\u0001\u0319\u0001\u0319\u0001\u031a\u0001\u031a"+ + "\u0001\u031a\u0001\u031b\u0001\u031b\u0001\u031c\u0001\u031c\u0001\u031d"+ + "\u0001\u031d\u0001\u031e\u0001\u031e\u0001\u031f\u0001\u031f\u0001\u0320"+ + "\u0001\u0320\u0001\u0320\u0005\u0320\u20f4\b\u0320\n\u0320\f\u0320\u20f7"+ + "\t\u0320\u0001\u0320\u0001\u0320\u0001\u0321\u0001\u0321\u0001\u0321\u0001"+ + "\u0322\u0003\u0322\u20ff\b\u0322\u0001\u0322\u0004\u0322\u2102\b\u0322"+ + "\u000b\u0322\f\u0322\u2103\u0001\u0322\u0001\u0322\u0004\u0322\u2108\b"+ + "\u0322\u000b\u0322\f\u0322\u2109\u0001\u0322\u0001\u0322\u0005\u0322\u210e"+ + "\b\u0322\n\u0322\f\u0322\u2111\t\u0322\u0001\u0322\u0004\u0322\u2114\b"+ + "\u0322\u000b\u0322\f\u0322\u2115\u0003\u0322\u2118\b\u0322\u0001\u0323"+ + "\u0003\u0323\u211b\b\u0323\u0001\u0323\u0004\u0323\u211e\b\u0323\u000b"+ + "\u0323\f\u0323\u211f\u0001\u0323\u0001\u0323\u0004\u0323\u2124\b\u0323"+ + "\u000b\u0323\f\u0323\u2125\u0003\u0323\u2128\b\u0323\u0001\u0324\u0001"+ + "\u0324\u0001\u0324\u0001\u0325\u0001\u0325\u0001\u0326\u0001\u0326\u0001"+ + "\u0327\u0001\u0327\u0001\u0328\u0001\u0328\u0005\u0328\u2135\b\u0328\n"+ + "\u0328\f\u0328\u2138\t\u0328\u0001\u0329\u0001\u0329\u0004\u0329\u213c"+ + "\b\u0329\u000b\u0329\f\u0329\u213d\u0001\u032a\u0001\u032a\u0005\u032a"+ + "\u2142\b\u032a\n\u032a\f\u032a\u2145\t\u032a\u0001\u032b\u0001\u032b\u0001"+ + "\u032c\u0001\u032c\u0001\u032c\u0001\u032d\u0001\u032d\u0001\u032d\u0001"+ + "\u032e\u0001\u032e\u0001\u032e\u0001\u032f\u0001\u032f\u0001\u032f\u0001"+ + "\u0330\u0001\u0330\u0001\u0331\u0001\u0331\u0001\u0332\u0001\u0332\u0001"+ + "\u0332\u0001\u0333\u0001\u0333\u0001\u0333\u0001\u0334\u0001\u0334\u0001"+ + "\u0335\u0001\u0335\u0001\u0336\u0001\u0336\u0001\u0336\u0001\u0337\u0001"+ + "\u0337\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0339\u0001\u0339\u0001"+ + "\u0339\u0001\u033a\u0001\u033a\u0001\u033b\u0001\u033b\u0001\u033b\u0001"+ + "\u033c\u0001\u033c\u0001\u033c\u0001\u033d\u0001\u033d\u0001\u033d\u0001"+ + "\u033d\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033f\u0001\u033f\u0001"+ + "\u033f\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0341\u0001"+ + "\u0341\u0001\u0341\u0001\u0341\u0001\u0342\u0001\u0342\u0001\u0343\u0001"+ + "\u0343\u0001\u0343\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0345\u0001"+ + "\u0345\u0001\u0345\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0347\u0001"+ + "\u0347\u0001\u0347\u0001\u0347\u0001\u0348\u0001\u0348\u0001\u0348\u0001"+ + "\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u034a\u0001\u034a\u0001"+ + "\u034a\u0001\u034a\u0001\u034b\u0001\u034b\u0001\u034c\u0001\u034c\u0001"+ + "\u034d\u0001\u034d\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034f\u0001"+ + "\u034f\u0001\u034f\u0001\u034f\u0001\u0350\u0001\u0350\u0001\u0350\u0001"+ + "\u0351\u0001\u0351\u0001\u0352\u0001\u0352\u0001\u0353\u0001\u0353\u0001"+ + "\u0353\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0355\u0001\u0355\u0001"+ + "\u0355\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0357\u0001\u0357\u0001"+ + "\u0358\u0001\u0358\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u035a\u0001"+ + "\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035b\u0001\u035b\u0001"+ + "\u035b\u0001\u035b\u0001\u035c\u0001\u035c\u0001\u035c\u0001\u035c\u0001"+ + "\u035c\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035e\u0001"+ + "\u035e\u0001\u035e\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u0360\u0001"+ + "\u0360\u0002\u06d0\u06de\u0000\u0361\u0001\u0001\u0003\u0002\u0005\u0003"+ + "\u0007\u0000\t\u0000\u000b\u0000\r\u0000\u000f\u0000\u0011\u0000\u0013"+ + "\u0000\u0015\u0000\u0017\u0000\u0019\u0000\u001b\u0000\u001d\u0000\u001f"+ + "\u0000!\u0000#\u0000%\u0000\'\u0000)\u0000+\u0000-\u0000/\u00001\u0000"+ + "3\u00005\u00007\u00009\u0000;\u0000=\u0000?\u0000A\u0000C\u0000E\u0004"+ + "G\u0005I\u0006K\u0007M\bO\tQ\nS\u000bU\fW\rY\u000e[\u000f]\u0010_\u0011"+ + "a\u0012c\u0013e\u0014g\u0015i\u0016k\u0017m\u0018o\u0019q\u001as\u001b"+ + "u\u001cw\u001dy\u001e{\u001f} \u007f!\u0081\"\u0083#\u0085$\u0087%\u0089"+ + "&\u008b\'\u008d(\u008f)\u0091*\u0093+\u0095,\u0097-\u0099.\u009b/\u009d"+ + "0\u009f1\u00a12\u00a33\u00a54\u00a75\u00a96\u00ab7\u00ad8\u00af9\u00b1"+ + ":\u00b3;\u00b5<\u00b7=\u00b9>\u00bb?\u00bd@\u00bfA\u00c1B\u00c3C\u00c5"+ + "D\u00c7E\u00c9F\u00cbG\u00cdH\u00cfI\u00d1J\u00d3K\u00d5L\u00d7M\u00d9"+ + "N\u00dbO\u00ddP\u00dfQ\u00e1R\u00e3S\u00e5T\u00e7U\u00e9V\u00ebW\u00ed"+ + "X\u00efY\u00f1Z\u00f3[\u00f5\\\u00f7]\u00f9^\u00fb_\u00fd`\u00ffa\u0101"+ + "b\u0103c\u0105d\u0107e\u0109f\u010bg\u010dh\u010fi\u0111j\u0113k\u0115"+ + "l\u0117m\u0119n\u011bo\u011dp\u011fq\u0121r\u0123s\u0125t\u0127u\u0129"+ + "v\u012bw\u012dx\u012fy\u0131z\u0133{\u0135|\u0137}\u0139~\u013b\u007f"+ + "\u013d\u0080\u013f\u0081\u0141\u0082\u0143\u0083\u0145\u0084\u0147\u0085"+ + "\u0149\u0086\u014b\u0087\u014d\u0088\u014f\u0089\u0151\u008a\u0153\u008b"+ + "\u0155\u008c\u0157\u008d\u0159\u008e\u015b\u008f\u015d\u0090\u015f\u0091"+ + "\u0161\u0092\u0163\u0093\u0165\u0094\u0167\u0095\u0169\u0096\u016b\u0097"+ + "\u016d\u0098\u016f\u0099\u0171\u009a\u0173\u009b\u0175\u009c\u0177\u009d"+ + "\u0179\u009e\u017b\u009f\u017d\u00a0\u017f\u00a1\u0181\u00a2\u0183\u00a3"+ + "\u0185\u00a4\u0187\u00a5\u0189\u00a6\u018b\u00a7\u018d\u00a8\u018f\u00a9"+ + "\u0191\u00aa\u0193\u00ab\u0195\u00ac\u0197\u00ad\u0199\u00ae\u019b\u00af"+ + "\u019d\u00b0\u019f\u00b1\u01a1\u00b2\u01a3\u00b3\u01a5\u00b4\u01a7\u00b5"+ + "\u01a9\u00b6\u01ab\u00b7\u01ad\u00b8\u01af\u00b9\u01b1\u00ba\u01b3\u00bb"+ + "\u01b5\u00bc\u01b7\u00bd\u01b9\u00be\u01bb\u00bf\u01bd\u00c0\u01bf\u00c1"+ + "\u01c1\u00c2\u01c3\u00c3\u01c5\u00c4\u01c7\u00c5\u01c9\u00c6\u01cb\u00c7"+ + "\u01cd\u00c8\u01cf\u00c9\u01d1\u00ca\u01d3\u00cb\u01d5\u00cc\u01d7\u00cd"+ + "\u01d9\u00ce\u01db\u00cf\u01dd\u00d0\u01df\u00d1\u01e1\u00d2\u01e3\u00d3"+ + "\u01e5\u00d4\u01e7\u00d5\u01e9\u00d6\u01eb\u00d7\u01ed\u00d8\u01ef\u00d9"+ + "\u01f1\u00da\u01f3\u00db\u01f5\u00dc\u01f7\u00dd\u01f9\u00de\u01fb\u00df"+ + "\u01fd\u00e0\u01ff\u00e1\u0201\u00e2\u0203\u00e3\u0205\u00e4\u0207\u00e5"+ + "\u0209\u00e6\u020b\u00e7\u020d\u00e8\u020f\u00e9\u0211\u00ea\u0213\u00eb"+ + "\u0215\u00ec\u0217\u00ed\u0219\u00ee\u021b\u00ef\u021d\u00f0\u021f\u00f1"+ + "\u0221\u00f2\u0223\u00f3\u0225\u00f4\u0227\u00f5\u0229\u00f6\u022b\u00f7"+ + "\u022d\u00f8\u022f\u00f9\u0231\u00fa\u0233\u00fb\u0235\u00fc\u0237\u00fd"+ + "\u0239\u00fe\u023b\u00ff\u023d\u0100\u023f\u0101\u0241\u0102\u0243\u0103"+ + "\u0245\u0104\u0247\u0105\u0249\u0106\u024b\u0107\u024d\u0108\u024f\u0109"+ + "\u0251\u010a\u0253\u010b\u0255\u010c\u0257\u010d\u0259\u010e\u025b\u010f"+ + "\u025d\u0110\u025f\u0111\u0261\u0112\u0263\u0113\u0265\u0114\u0267\u0115"+ + "\u0269\u0116\u026b\u0117\u026d\u0118\u026f\u0119\u0271\u011a\u0273\u011b"+ + "\u0275\u011c\u0277\u011d\u0279\u011e\u027b\u011f\u027d\u0120\u027f\u0121"+ + "\u0281\u0122\u0283\u0123\u0285\u0124\u0287\u0125\u0289\u0126\u028b\u0127"+ + "\u028d\u0128\u028f\u0129\u0291\u012a\u0293\u012b\u0295\u012c\u0297\u012d"+ + "\u0299\u012e\u029b\u012f\u029d\u0130\u029f\u0131\u02a1\u0132\u02a3\u0133"+ + "\u02a5\u0134\u02a7\u0135\u02a9\u0136\u02ab\u0137\u02ad\u0138\u02af\u0139"+ + "\u02b1\u013a\u02b3\u013b\u02b5\u013c\u02b7\u013d\u02b9\u013e\u02bb\u013f"+ + "\u02bd\u0140\u02bf\u0141\u02c1\u0142\u02c3\u0143\u02c5\u0144\u02c7\u0145"+ + "\u02c9\u0146\u02cb\u0147\u02cd\u0148\u02cf\u0149\u02d1\u014a\u02d3\u014b"+ + "\u02d5\u014c\u02d7\u014d\u02d9\u014e\u02db\u014f\u02dd\u0150\u02df\u0151"+ + "\u02e1\u0152\u02e3\u0153\u02e5\u0154\u02e7\u0155\u02e9\u0156\u02eb\u0157"+ + "\u02ed\u0158\u02ef\u0159\u02f1\u015a\u02f3\u015b\u02f5\u015c\u02f7\u015d"+ + "\u02f9\u015e\u02fb\u015f\u02fd\u0160\u02ff\u0161\u0301\u0162\u0303\u0163"+ + "\u0305\u0164\u0307\u0165\u0309\u0166\u030b\u0167\u030d\u0168\u030f\u0169"+ + "\u0311\u016a\u0313\u016b\u0315\u016c\u0317\u016d\u0319\u016e\u031b\u016f"+ + "\u031d\u0170\u031f\u0171\u0321\u0172\u0323\u0173\u0325\u0174\u0327\u0175"+ + "\u0329\u0176\u032b\u0177\u032d\u0178\u032f\u0179\u0331\u017a\u0333\u017b"+ + "\u0335\u017c\u0337\u017d\u0339\u017e\u033b\u017f\u033d\u0180\u033f\u0181"+ + "\u0341\u0182\u0343\u0183\u0345\u0184\u0347\u0185\u0349\u0186\u034b\u0187"+ + "\u034d\u0188\u034f\u0189\u0351\u018a\u0353\u018b\u0355\u018c\u0357\u018d"+ + "\u0359\u018e\u035b\u018f\u035d\u0190\u035f\u0191\u0361\u0192\u0363\u0193"+ + "\u0365\u0194\u0367\u0195\u0369\u0196\u036b\u0197\u036d\u0198\u036f\u0199"+ + "\u0371\u019a\u0373\u019b\u0375\u019c\u0377\u019d\u0379\u019e\u037b\u019f"+ + "\u037d\u01a0\u037f\u01a1\u0381\u01a2\u0383\u01a3\u0385\u01a4\u0387\u01a5"+ + "\u0389\u01a6\u038b\u01a7\u038d\u01a8\u038f\u01a9\u0391\u01aa\u0393\u01ab"+ + "\u0395\u01ac\u0397\u01ad\u0399\u01ae\u039b\u01af\u039d\u01b0\u039f\u01b1"+ + "\u03a1\u01b2\u03a3\u01b3\u03a5\u01b4\u03a7\u01b5\u03a9\u01b6\u03ab\u01b7"+ + "\u03ad\u01b8\u03af\u01b9\u03b1\u01ba\u03b3\u01bb\u03b5\u01bc\u03b7\u01bd"+ + "\u03b9\u01be\u03bb\u01bf\u03bd\u01c0\u03bf\u01c1\u03c1\u01c2\u03c3\u01c3"+ + "\u03c5\u01c4\u03c7\u01c5\u03c9\u01c6\u03cb\u01c7\u03cd\u01c8\u03cf\u01c9"+ + "\u03d1\u01ca\u03d3\u01cb\u03d5\u01cc\u03d7\u01cd\u03d9\u01ce\u03db\u01cf"+ + "\u03dd\u01d0\u03df\u01d1\u03e1\u01d2\u03e3\u01d3\u03e5\u01d4\u03e7\u01d5"+ + "\u03e9\u01d6\u03eb\u01d7\u03ed\u01d8\u03ef\u01d9\u03f1\u01da\u03f3\u01db"+ + "\u03f5\u01dc\u03f7\u01dd\u03f9\u01de\u03fb\u01df\u03fd\u01e0\u03ff\u01e1"+ + "\u0401\u01e2\u0403\u01e3\u0405\u01e4\u0407\u01e5\u0409\u01e6\u040b\u01e7"+ + "\u040d\u01e8\u040f\u01e9\u0411\u01ea\u0413\u01eb\u0415\u01ec\u0417\u01ed"+ + "\u0419\u01ee\u041b\u01ef\u041d\u01f0\u041f\u01f1\u0421\u01f2\u0423\u01f3"+ + "\u0425\u01f4\u0427\u01f5\u0429\u01f6\u042b\u01f7\u042d\u01f8\u042f\u01f9"+ + "\u0431\u01fa\u0433\u01fb\u0435\u01fc\u0437\u01fd\u0439\u01fe\u043b\u01ff"+ + "\u043d\u0200\u043f\u0201\u0441\u0202\u0443\u0203\u0445\u0204\u0447\u0205"+ + "\u0449\u0206\u044b\u0207\u044d\u0208\u044f\u0209\u0451\u020a\u0453\u020b"+ + "\u0455\u020c\u0457\u020d\u0459\u020e\u045b\u020f\u045d\u0210\u045f\u0211"+ + "\u0461\u0212\u0463\u0213\u0465\u0214\u0467\u0215\u0469\u0216\u046b\u0217"+ + "\u046d\u0218\u046f\u0219\u0471\u021a\u0473\u021b\u0475\u021c\u0477\u021d"+ + "\u0479\u021e\u047b\u021f\u047d\u0220\u047f\u0221\u0481\u0222\u0483\u0223"+ + "\u0485\u0224\u0487\u0225\u0489\u0226\u048b\u0227\u048d\u0228\u048f\u0229"+ + "\u0491\u022a\u0493\u022b\u0495\u022c\u0497\u022d\u0499\u022e\u049b\u022f"+ + "\u049d\u0230\u049f\u0231\u04a1\u0232\u04a3\u0233\u04a5\u0234\u04a7\u0235"+ + "\u04a9\u0236\u04ab\u0237\u04ad\u0238\u04af\u0239\u04b1\u023a\u04b3\u023b"+ + "\u04b5\u023c\u04b7\u023d\u04b9\u023e\u04bb\u023f\u04bd\u0240\u04bf\u0241"+ + "\u04c1\u0242\u04c3\u0243\u04c5\u0244\u04c7\u0245\u04c9\u0246\u04cb\u0247"+ + "\u04cd\u0248\u04cf\u0249\u04d1\u024a\u04d3\u024b\u04d5\u024c\u04d7\u024d"+ + "\u04d9\u024e\u04db\u024f\u04dd\u0250\u04df\u0251\u04e1\u0252\u04e3\u0253"+ + "\u04e5\u0254\u04e7\u0255\u04e9\u0256\u04eb\u0257\u04ed\u0258\u04ef\u0259"+ + "\u04f1\u025a\u04f3\u025b\u04f5\u025c\u04f7\u025d\u04f9\u025e\u04fb\u025f"+ + "\u04fd\u0260\u04ff\u0261\u0501\u0262\u0503\u0263\u0505\u0264\u0507\u0265"+ + "\u0509\u0266\u050b\u0267\u050d\u0268\u050f\u0269\u0511\u026a\u0513\u026b"+ + "\u0515\u026c\u0517\u026d\u0519\u026e\u051b\u026f\u051d\u0270\u051f\u0271"+ + "\u0521\u0272\u0523\u0273\u0525\u0274\u0527\u0275\u0529\u0276\u052b\u0277"+ + "\u052d\u0278\u052f\u0279\u0531\u027a\u0533\u027b\u0535\u027c\u0537\u027d"+ + "\u0539\u027e\u053b\u027f\u053d\u0280\u053f\u0281\u0541\u0282\u0543\u0283"+ + "\u0545\u0284\u0547\u0285\u0549\u0286\u054b\u0287\u054d\u0288\u054f\u0289"+ + "\u0551\u028a\u0553\u028b\u0555\u028c\u0557\u028d\u0559\u028e\u055b\u028f"+ + "\u055d\u0290\u055f\u0291\u0561\u0292\u0563\u0293\u0565\u0294\u0567\u0295"+ + "\u0569\u0296\u056b\u0297\u056d\u0298\u056f\u0299\u0571\u029a\u0573\u029b"+ + "\u0575\u029c\u0577\u029d\u0579\u029e\u057b\u029f\u057d\u02a0\u057f\u02a1"+ + "\u0581\u02a2\u0583\u02a3\u0585\u02a4\u0587\u02a5\u0589\u02a6\u058b\u02a7"+ + "\u058d\u02a8\u058f\u02a9\u0591\u02aa\u0593\u02ab\u0595\u02ac\u0597\u02ad"+ + "\u0599\u02ae\u059b\u02af\u059d\u02b0\u059f\u02b1\u05a1\u02b2\u05a3\u02b3"+ + "\u05a5\u02b4\u05a7\u02b5\u05a9\u02b6\u05ab\u02b7\u05ad\u02b8\u05af\u02b9"+ + "\u05b1\u02ba\u05b3\u02bb\u05b5\u02bc\u05b7\u02bd\u05b9\u02be\u05bb\u02bf"+ + "\u05bd\u02c0\u05bf\u02c1\u05c1\u02c2\u05c3\u02c3\u05c5\u02c4\u05c7\u02c5"+ + "\u05c9\u02c6\u05cb\u02c7\u05cd\u02c8\u05cf\u02c9\u05d1\u02ca\u05d3\u02cb"+ + "\u05d5\u02cc\u05d7\u02cd\u05d9\u02ce\u05db\u02cf\u05dd\u02d0\u05df\u02d1"+ + "\u05e1\u02d2\u05e3\u02d3\u05e5\u02d4\u05e7\u02d5\u05e9\u02d6\u05eb\u02d7"+ + "\u05ed\u02d8\u05ef\u02d9\u05f1\u02da\u05f3\u02db\u05f5\u02dc\u05f7\u02dd"+ + "\u05f9\u02de\u05fb\u02df\u05fd\u02e0\u05ff\u02e1\u0601\u02e2\u0603\u02e3"+ + "\u0605\u02e4\u0607\u02e5\u0609\u02e6\u060b\u02e7\u060d\u02e8\u060f\u02e9"+ + "\u0611\u02ea\u0613\u02eb\u0615\u02ec\u0617\u02ed\u0619\u02ee\u061b\u02ef"+ + "\u061d\u02f0\u061f\u02f1\u0621\u02f2\u0623\u02f3\u0625\u02f4\u0627\u02f5"+ + "\u0629\u02f6\u062b\u02f7\u062d\u02f8\u062f\u02f9\u0631\u02fa\u0633\u02fb"+ + "\u0635\u02fc\u0637\u02fd\u0639\u02fe\u063b\u02ff\u063d\u0300\u063f\u0301"+ + "\u0641\u0302\u0643\u0303\u0645\u0304\u0647\u0305\u0649\u0306\u064b\u0307"+ + "\u064d\u0308\u064f\u0309\u0651\u030a\u0653\u030b\u0655\u030c\u0657\u030d"+ + "\u0659\u030e\u065b\u030f\u065d\u0310\u065f\u0311\u0661\u0312\u0663\u0313"+ + "\u0665\u0314\u0667\u0315\u0669\u0316\u066b\u0317\u066d\u0318\u066f\u0319"+ + "\u0671\u031a\u0673\u031b\u0675\u031c\u0677\u031d\u0679\u031e\u067b\u031f"+ + "\u067d\u0320\u067f\u0321\u0681\u0322\u0683\u0323\u0685\u0324\u0687\u0325"+ + "\u0689\u0326\u068b\u0327\u068d\u0328\u068f\u0329\u0691\u032a\u0693\u032b"+ + "\u0695\u032c\u0697\u032d\u0699\u032e\u069b\u032f\u069d\u0330\u069f\u0331"+ + "\u06a1\u0332\u06a3\u0333\u06a5\u0334\u06a7\u0335\u06a9\u0336\u06ab\u0337"+ + "\u06ad\u0338\u06af\u0339\u06b1\u033a\u06b3\u033b\u06b5\u033c\u06b7\u033d"+ + "\u06b9\u033e\u06bb\u033f\u06bd\u0340\u06bf\u0341\u06c1\u0342\u0001\u0000"+ + "$\u0003\u0000\t\n\r\r \u0002\u0000AAaa\u0002\u0000BBbb\u0002\u0000CC"+ + "cc\u0002\u0000DDdd\u0002\u0000EEee\u0002\u0000FFff\u0002\u0000GGgg\u0002"+ + "\u0000HHhh\u0002\u0000IIii\u0002\u0000JJjj\u0002\u0000KKkk\u0002\u0000"+ + "LLll\u0002\u0000MMmm\u0002\u0000NNnn\u0002\u0000OOoo\u0002\u0000PPpp\u0002"+ + "\u0000QQqq\u0002\u0000RRrr\u0002\u0000SSss\u0002\u0000TTtt\u0002\u0000"+ + "UUuu\u0002\u0000VVvv\u0002\u0000WWww\u0002\u0000XXxx\u0002\u0000YYyy\u0002"+ + "\u0000ZZzz\u0002\u000009AF\u0001\u000009\u0002\u0000\"\"\\\\\u0002\u0000"+ + "\'\'\\\\\u0002\u0000\\\\``\u0003\u0000AZ__az\u0005\u0000$$09AZ__az\u0004"+ + "\u0000AZ__az\u00a1\u8000\uffff\u0006\u0000$$09AZ__az\u00a1\u8000\uffff"+ + "\u21df\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000"+ + "\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000"+ + "\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K"+ + "\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000"+ + "\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000"+ + "\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y"+ + "\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000"+ + "\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000"+ + "\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000\u0000g"+ + "\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k\u0001\u0000"+ + "\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000\u0000\u0000"+ + "\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000\u0000u"+ + "\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000\u0000\u0000y\u0001\u0000"+ + "\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000\u0000\u0000"+ + "\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000\u0000\u0000"+ + "\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000\u0000\u0000"+ + "\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000\u0000\u0000"+ + "\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000\u0000\u0000"+ + "\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000\u0000\u0000"+ + "\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095\u0001\u0000\u0000\u0000"+ + "\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099\u0001\u0000\u0000\u0000"+ + "\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000\u0000\u0000"+ + "\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1\u0001\u0000\u0000\u0000"+ + "\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000\u0000\u0000"+ + "\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000\u0000\u0000"+ + "\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000\u0000\u0000"+ + "\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1\u0001\u0000\u0000\u0000"+ + "\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000\u0000\u0000"+ + "\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9\u0001\u0000\u0000\u0000"+ + "\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000\u0000\u0000"+ + "\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000\u0000\u0000"+ + "\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000\u0000\u0000"+ + "\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000\u0000\u0000"+ + "\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000\u0000\u0000"+ + "\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000\u0000\u0000"+ + "\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000\u0000\u0000"+ + "\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000\u0000\u0000"+ + "\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000\u0000\u0000"+ + "\u0000\u00df\u0001\u0000\u0000\u0000\u0000\u00e1\u0001\u0000\u0000\u0000"+ + "\u0000\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5\u0001\u0000\u0000\u0000"+ + "\u0000\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9\u0001\u0000\u0000\u0000"+ + "\u0000\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed\u0001\u0000\u0000\u0000"+ + "\u0000\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1\u0001\u0000\u0000\u0000"+ + "\u0000\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5\u0001\u0000\u0000\u0000"+ + "\u0000\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9\u0001\u0000\u0000\u0000"+ + "\u0000\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd\u0001\u0000\u0000\u0000"+ + "\u0000\u00ff\u0001\u0000\u0000\u0000\u0000\u0101\u0001\u0000\u0000\u0000"+ + "\u0000\u0103\u0001\u0000\u0000\u0000\u0000\u0105\u0001\u0000\u0000\u0000"+ + "\u0000\u0107\u0001\u0000\u0000\u0000\u0000\u0109\u0001\u0000\u0000\u0000"+ + "\u0000\u010b\u0001\u0000\u0000\u0000\u0000\u010d\u0001\u0000\u0000\u0000"+ + "\u0000\u010f\u0001\u0000\u0000\u0000\u0000\u0111\u0001\u0000\u0000\u0000"+ + "\u0000\u0113\u0001\u0000\u0000\u0000\u0000\u0115\u0001\u0000\u0000\u0000"+ + "\u0000\u0117\u0001\u0000\u0000\u0000\u0000\u0119\u0001\u0000\u0000\u0000"+ + "\u0000\u011b\u0001\u0000\u0000\u0000\u0000\u011d\u0001\u0000\u0000\u0000"+ + "\u0000\u011f\u0001\u0000\u0000\u0000\u0000\u0121\u0001\u0000\u0000\u0000"+ + "\u0000\u0123\u0001\u0000\u0000\u0000\u0000\u0125\u0001\u0000\u0000\u0000"+ + "\u0000\u0127\u0001\u0000\u0000\u0000\u0000\u0129\u0001\u0000\u0000\u0000"+ + "\u0000\u012b\u0001\u0000\u0000\u0000\u0000\u012d\u0001\u0000\u0000\u0000"+ + "\u0000\u012f\u0001\u0000\u0000\u0000\u0000\u0131\u0001\u0000\u0000\u0000"+ + "\u0000\u0133\u0001\u0000\u0000\u0000\u0000\u0135\u0001\u0000\u0000\u0000"+ + "\u0000\u0137\u0001\u0000\u0000\u0000\u0000\u0139\u0001\u0000\u0000\u0000"+ + "\u0000\u013b\u0001\u0000\u0000\u0000\u0000\u013d\u0001\u0000\u0000\u0000"+ + "\u0000\u013f\u0001\u0000\u0000\u0000\u0000\u0141\u0001\u0000\u0000\u0000"+ + "\u0000\u0143\u0001\u0000\u0000\u0000\u0000\u0145\u0001\u0000\u0000\u0000"+ + "\u0000\u0147\u0001\u0000\u0000\u0000\u0000\u0149\u0001\u0000\u0000\u0000"+ + "\u0000\u014b\u0001\u0000\u0000\u0000\u0000\u014d\u0001\u0000\u0000\u0000"+ + "\u0000\u014f\u0001\u0000\u0000\u0000\u0000\u0151\u0001\u0000\u0000\u0000"+ + "\u0000\u0153\u0001\u0000\u0000\u0000\u0000\u0155\u0001\u0000\u0000\u0000"+ + "\u0000\u0157\u0001\u0000\u0000\u0000\u0000\u0159\u0001\u0000\u0000\u0000"+ + "\u0000\u015b\u0001\u0000\u0000\u0000\u0000\u015d\u0001\u0000\u0000\u0000"+ + "\u0000\u015f\u0001\u0000\u0000\u0000\u0000\u0161\u0001\u0000\u0000\u0000"+ + "\u0000\u0163\u0001\u0000\u0000\u0000\u0000\u0165\u0001\u0000\u0000\u0000"+ + "\u0000\u0167\u0001\u0000\u0000\u0000\u0000\u0169\u0001\u0000\u0000\u0000"+ + "\u0000\u016b\u0001\u0000\u0000\u0000\u0000\u016d\u0001\u0000\u0000\u0000"+ + "\u0000\u016f\u0001\u0000\u0000\u0000\u0000\u0171\u0001\u0000\u0000\u0000"+ + "\u0000\u0173\u0001\u0000\u0000\u0000\u0000\u0175\u0001\u0000\u0000\u0000"+ + "\u0000\u0177\u0001\u0000\u0000\u0000\u0000\u0179\u0001\u0000\u0000\u0000"+ + "\u0000\u017b\u0001\u0000\u0000\u0000\u0000\u017d\u0001\u0000\u0000\u0000"+ + "\u0000\u017f\u0001\u0000\u0000\u0000\u0000\u0181\u0001\u0000\u0000\u0000"+ + "\u0000\u0183\u0001\u0000\u0000\u0000\u0000\u0185\u0001\u0000\u0000\u0000"+ + "\u0000\u0187\u0001\u0000\u0000\u0000\u0000\u0189\u0001\u0000\u0000\u0000"+ + "\u0000\u018b\u0001\u0000\u0000\u0000\u0000\u018d\u0001\u0000\u0000\u0000"+ + "\u0000\u018f\u0001\u0000\u0000\u0000\u0000\u0191\u0001\u0000\u0000\u0000"+ + "\u0000\u0193\u0001\u0000\u0000\u0000\u0000\u0195\u0001\u0000\u0000\u0000"+ + "\u0000\u0197\u0001\u0000\u0000\u0000\u0000\u0199\u0001\u0000\u0000\u0000"+ + "\u0000\u019b\u0001\u0000\u0000\u0000\u0000\u019d\u0001\u0000\u0000\u0000"+ + "\u0000\u019f\u0001\u0000\u0000\u0000\u0000\u01a1\u0001\u0000\u0000\u0000"+ + "\u0000\u01a3\u0001\u0000\u0000\u0000\u0000\u01a5\u0001\u0000\u0000\u0000"+ + "\u0000\u01a7\u0001\u0000\u0000\u0000\u0000\u01a9\u0001\u0000\u0000\u0000"+ + "\u0000\u01ab\u0001\u0000\u0000\u0000\u0000\u01ad\u0001\u0000\u0000\u0000"+ + "\u0000\u01af\u0001\u0000\u0000\u0000\u0000\u01b1\u0001\u0000\u0000\u0000"+ + "\u0000\u01b3\u0001\u0000\u0000\u0000\u0000\u01b5\u0001\u0000\u0000\u0000"+ + "\u0000\u01b7\u0001\u0000\u0000\u0000\u0000\u01b9\u0001\u0000\u0000\u0000"+ + "\u0000\u01bb\u0001\u0000\u0000\u0000\u0000\u01bd\u0001\u0000\u0000\u0000"+ + "\u0000\u01bf\u0001\u0000\u0000\u0000\u0000\u01c1\u0001\u0000\u0000\u0000"+ + "\u0000\u01c3\u0001\u0000\u0000\u0000\u0000\u01c5\u0001\u0000\u0000\u0000"+ + "\u0000\u01c7\u0001\u0000\u0000\u0000\u0000\u01c9\u0001\u0000\u0000\u0000"+ + "\u0000\u01cb\u0001\u0000\u0000\u0000\u0000\u01cd\u0001\u0000\u0000\u0000"+ + "\u0000\u01cf\u0001\u0000\u0000\u0000\u0000\u01d1\u0001\u0000\u0000\u0000"+ + "\u0000\u01d3\u0001\u0000\u0000\u0000\u0000\u01d5\u0001\u0000\u0000\u0000"+ + "\u0000\u01d7\u0001\u0000\u0000\u0000\u0000\u01d9\u0001\u0000\u0000\u0000"+ + "\u0000\u01db\u0001\u0000\u0000\u0000\u0000\u01dd\u0001\u0000\u0000\u0000"+ + "\u0000\u01df\u0001\u0000\u0000\u0000\u0000\u01e1\u0001\u0000\u0000\u0000"+ + "\u0000\u01e3\u0001\u0000\u0000\u0000\u0000\u01e5\u0001\u0000\u0000\u0000"+ + "\u0000\u01e7\u0001\u0000\u0000\u0000\u0000\u01e9\u0001\u0000\u0000\u0000"+ + "\u0000\u01eb\u0001\u0000\u0000\u0000\u0000\u01ed\u0001\u0000\u0000\u0000"+ + "\u0000\u01ef\u0001\u0000\u0000\u0000\u0000\u01f1\u0001\u0000\u0000\u0000"+ + "\u0000\u01f3\u0001\u0000\u0000\u0000\u0000\u01f5\u0001\u0000\u0000\u0000"+ + "\u0000\u01f7\u0001\u0000\u0000\u0000\u0000\u01f9\u0001\u0000\u0000\u0000"+ + "\u0000\u01fb\u0001\u0000\u0000\u0000\u0000\u01fd\u0001\u0000\u0000\u0000"+ + "\u0000\u01ff\u0001\u0000\u0000\u0000\u0000\u0201\u0001\u0000\u0000\u0000"+ + "\u0000\u0203\u0001\u0000\u0000\u0000\u0000\u0205\u0001\u0000\u0000\u0000"+ + "\u0000\u0207\u0001\u0000\u0000\u0000\u0000\u0209\u0001\u0000\u0000\u0000"+ + "\u0000\u020b\u0001\u0000\u0000\u0000\u0000\u020d\u0001\u0000\u0000\u0000"+ + "\u0000\u020f\u0001\u0000\u0000\u0000\u0000\u0211\u0001\u0000\u0000\u0000"+ + "\u0000\u0213\u0001\u0000\u0000\u0000\u0000\u0215\u0001\u0000\u0000\u0000"+ + "\u0000\u0217\u0001\u0000\u0000\u0000\u0000\u0219\u0001\u0000\u0000\u0000"+ + "\u0000\u021b\u0001\u0000\u0000\u0000\u0000\u021d\u0001\u0000\u0000\u0000"+ + "\u0000\u021f\u0001\u0000\u0000\u0000\u0000\u0221\u0001\u0000\u0000\u0000"+ + "\u0000\u0223\u0001\u0000\u0000\u0000\u0000\u0225\u0001\u0000\u0000\u0000"+ + "\u0000\u0227\u0001\u0000\u0000\u0000\u0000\u0229\u0001\u0000\u0000\u0000"+ + "\u0000\u022b\u0001\u0000\u0000\u0000\u0000\u022d\u0001\u0000\u0000\u0000"+ + "\u0000\u022f\u0001\u0000\u0000\u0000\u0000\u0231\u0001\u0000\u0000\u0000"+ + "\u0000\u0233\u0001\u0000\u0000\u0000\u0000\u0235\u0001\u0000\u0000\u0000"+ + "\u0000\u0237\u0001\u0000\u0000\u0000\u0000\u0239\u0001\u0000\u0000\u0000"+ + "\u0000\u023b\u0001\u0000\u0000\u0000\u0000\u023d\u0001\u0000\u0000\u0000"+ + "\u0000\u023f\u0001\u0000\u0000\u0000\u0000\u0241\u0001\u0000\u0000\u0000"+ + "\u0000\u0243\u0001\u0000\u0000\u0000\u0000\u0245\u0001\u0000\u0000\u0000"+ + "\u0000\u0247\u0001\u0000\u0000\u0000\u0000\u0249\u0001\u0000\u0000\u0000"+ + "\u0000\u024b\u0001\u0000\u0000\u0000\u0000\u024d\u0001\u0000\u0000\u0000"+ + "\u0000\u024f\u0001\u0000\u0000\u0000\u0000\u0251\u0001\u0000\u0000\u0000"+ + "\u0000\u0253\u0001\u0000\u0000\u0000\u0000\u0255\u0001\u0000\u0000\u0000"+ + "\u0000\u0257\u0001\u0000\u0000\u0000\u0000\u0259\u0001\u0000\u0000\u0000"+ + "\u0000\u025b\u0001\u0000\u0000\u0000\u0000\u025d\u0001\u0000\u0000\u0000"+ + "\u0000\u025f\u0001\u0000\u0000\u0000\u0000\u0261\u0001\u0000\u0000\u0000"+ + "\u0000\u0263\u0001\u0000\u0000\u0000\u0000\u0265\u0001\u0000\u0000\u0000"+ + "\u0000\u0267\u0001\u0000\u0000\u0000\u0000\u0269\u0001\u0000\u0000\u0000"+ + "\u0000\u026b\u0001\u0000\u0000\u0000\u0000\u026d\u0001\u0000\u0000\u0000"+ + "\u0000\u026f\u0001\u0000\u0000\u0000\u0000\u0271\u0001\u0000\u0000\u0000"+ + "\u0000\u0273\u0001\u0000\u0000\u0000\u0000\u0275\u0001\u0000\u0000\u0000"+ + "\u0000\u0277\u0001\u0000\u0000\u0000\u0000\u0279\u0001\u0000\u0000\u0000"+ + "\u0000\u027b\u0001\u0000\u0000\u0000\u0000\u027d\u0001\u0000\u0000\u0000"+ + "\u0000\u027f\u0001\u0000\u0000\u0000\u0000\u0281\u0001\u0000\u0000\u0000"+ + "\u0000\u0283\u0001\u0000\u0000\u0000\u0000\u0285\u0001\u0000\u0000\u0000"+ + "\u0000\u0287\u0001\u0000\u0000\u0000\u0000\u0289\u0001\u0000\u0000\u0000"+ + "\u0000\u028b\u0001\u0000\u0000\u0000\u0000\u028d\u0001\u0000\u0000\u0000"+ + "\u0000\u028f\u0001\u0000\u0000\u0000\u0000\u0291\u0001\u0000\u0000\u0000"+ + "\u0000\u0293\u0001\u0000\u0000\u0000\u0000\u0295\u0001\u0000\u0000\u0000"+ + "\u0000\u0297\u0001\u0000\u0000\u0000\u0000\u0299\u0001\u0000\u0000\u0000"+ + "\u0000\u029b\u0001\u0000\u0000\u0000\u0000\u029d\u0001\u0000\u0000\u0000"+ + "\u0000\u029f\u0001\u0000\u0000\u0000\u0000\u02a1\u0001\u0000\u0000\u0000"+ + "\u0000\u02a3\u0001\u0000\u0000\u0000\u0000\u02a5\u0001\u0000\u0000\u0000"+ + "\u0000\u02a7\u0001\u0000\u0000\u0000\u0000\u02a9\u0001\u0000\u0000\u0000"+ + "\u0000\u02ab\u0001\u0000\u0000\u0000\u0000\u02ad\u0001\u0000\u0000\u0000"+ + "\u0000\u02af\u0001\u0000\u0000\u0000\u0000\u02b1\u0001\u0000\u0000\u0000"+ + "\u0000\u02b3\u0001\u0000\u0000\u0000\u0000\u02b5\u0001\u0000\u0000\u0000"+ + "\u0000\u02b7\u0001\u0000\u0000\u0000\u0000\u02b9\u0001\u0000\u0000\u0000"+ + "\u0000\u02bb\u0001\u0000\u0000\u0000\u0000\u02bd\u0001\u0000\u0000\u0000"+ + "\u0000\u02bf\u0001\u0000\u0000\u0000\u0000\u02c1\u0001\u0000\u0000\u0000"+ + "\u0000\u02c3\u0001\u0000\u0000\u0000\u0000\u02c5\u0001\u0000\u0000\u0000"+ + "\u0000\u02c7\u0001\u0000\u0000\u0000\u0000\u02c9\u0001\u0000\u0000\u0000"+ + "\u0000\u02cb\u0001\u0000\u0000\u0000\u0000\u02cd\u0001\u0000\u0000\u0000"+ + "\u0000\u02cf\u0001\u0000\u0000\u0000\u0000\u02d1\u0001\u0000\u0000\u0000"+ + "\u0000\u02d3\u0001\u0000\u0000\u0000\u0000\u02d5\u0001\u0000\u0000\u0000"+ + "\u0000\u02d7\u0001\u0000\u0000\u0000\u0000\u02d9\u0001\u0000\u0000\u0000"+ + "\u0000\u02db\u0001\u0000\u0000\u0000\u0000\u02dd\u0001\u0000\u0000\u0000"+ + "\u0000\u02df\u0001\u0000\u0000\u0000\u0000\u02e1\u0001\u0000\u0000\u0000"+ + "\u0000\u02e3\u0001\u0000\u0000\u0000\u0000\u02e5\u0001\u0000\u0000\u0000"+ + "\u0000\u02e7\u0001\u0000\u0000\u0000\u0000\u02e9\u0001\u0000\u0000\u0000"+ + "\u0000\u02eb\u0001\u0000\u0000\u0000\u0000\u02ed\u0001\u0000\u0000\u0000"+ + "\u0000\u02ef\u0001\u0000\u0000\u0000\u0000\u02f1\u0001\u0000\u0000\u0000"+ + "\u0000\u02f3\u0001\u0000\u0000\u0000\u0000\u02f5\u0001\u0000\u0000\u0000"+ + "\u0000\u02f7\u0001\u0000\u0000\u0000\u0000\u02f9\u0001\u0000\u0000\u0000"+ + "\u0000\u02fb\u0001\u0000\u0000\u0000\u0000\u02fd\u0001\u0000\u0000\u0000"+ + "\u0000\u02ff\u0001\u0000\u0000\u0000\u0000\u0301\u0001\u0000\u0000\u0000"+ + "\u0000\u0303\u0001\u0000\u0000\u0000\u0000\u0305\u0001\u0000\u0000\u0000"+ + "\u0000\u0307\u0001\u0000\u0000\u0000\u0000\u0309\u0001\u0000\u0000\u0000"+ + "\u0000\u030b\u0001\u0000\u0000\u0000\u0000\u030d\u0001\u0000\u0000\u0000"+ + "\u0000\u030f\u0001\u0000\u0000\u0000\u0000\u0311\u0001\u0000\u0000\u0000"+ + "\u0000\u0313\u0001\u0000\u0000\u0000\u0000\u0315\u0001\u0000\u0000\u0000"+ + "\u0000\u0317\u0001\u0000\u0000\u0000\u0000\u0319\u0001\u0000\u0000\u0000"+ + "\u0000\u031b\u0001\u0000\u0000\u0000\u0000\u031d\u0001\u0000\u0000\u0000"+ + "\u0000\u031f\u0001\u0000\u0000\u0000\u0000\u0321\u0001\u0000\u0000\u0000"+ + "\u0000\u0323\u0001\u0000\u0000\u0000\u0000\u0325\u0001\u0000\u0000\u0000"+ + "\u0000\u0327\u0001\u0000\u0000\u0000\u0000\u0329\u0001\u0000\u0000\u0000"+ + "\u0000\u032b\u0001\u0000\u0000\u0000\u0000\u032d\u0001\u0000\u0000\u0000"+ + "\u0000\u032f\u0001\u0000\u0000\u0000\u0000\u0331\u0001\u0000\u0000\u0000"+ + "\u0000\u0333\u0001\u0000\u0000\u0000\u0000\u0335\u0001\u0000\u0000\u0000"+ + "\u0000\u0337\u0001\u0000\u0000\u0000\u0000\u0339\u0001\u0000\u0000\u0000"+ + "\u0000\u033b\u0001\u0000\u0000\u0000\u0000\u033d\u0001\u0000\u0000\u0000"+ + "\u0000\u033f\u0001\u0000\u0000\u0000\u0000\u0341\u0001\u0000\u0000\u0000"+ + "\u0000\u0343\u0001\u0000\u0000\u0000\u0000\u0345\u0001\u0000\u0000\u0000"+ + "\u0000\u0347\u0001\u0000\u0000\u0000\u0000\u0349\u0001\u0000\u0000\u0000"+ + "\u0000\u034b\u0001\u0000\u0000\u0000\u0000\u034d\u0001\u0000\u0000\u0000"+ + "\u0000\u034f\u0001\u0000\u0000\u0000\u0000\u0351\u0001\u0000\u0000\u0000"+ + "\u0000\u0353\u0001\u0000\u0000\u0000\u0000\u0355\u0001\u0000\u0000\u0000"+ + "\u0000\u0357\u0001\u0000\u0000\u0000\u0000\u0359\u0001\u0000\u0000\u0000"+ + "\u0000\u035b\u0001\u0000\u0000\u0000\u0000\u035d\u0001\u0000\u0000\u0000"+ + "\u0000\u035f\u0001\u0000\u0000\u0000\u0000\u0361\u0001\u0000\u0000\u0000"+ + "\u0000\u0363\u0001\u0000\u0000\u0000\u0000\u0365\u0001\u0000\u0000\u0000"+ + "\u0000\u0367\u0001\u0000\u0000\u0000\u0000\u0369\u0001\u0000\u0000\u0000"+ + "\u0000\u036b\u0001\u0000\u0000\u0000\u0000\u036d\u0001\u0000\u0000\u0000"+ + "\u0000\u036f\u0001\u0000\u0000\u0000\u0000\u0371\u0001\u0000\u0000\u0000"+ + "\u0000\u0373\u0001\u0000\u0000\u0000\u0000\u0375\u0001\u0000\u0000\u0000"+ + "\u0000"; + private static final String _serializedATNSegment1 = + "\u0377\u0001\u0000\u0000\u0000\u0000\u0379\u0001\u0000\u0000\u0000\u0000"+ + "\u037b\u0001\u0000\u0000\u0000\u0000\u037d\u0001\u0000\u0000\u0000\u0000"+ + "\u037f\u0001\u0000\u0000\u0000\u0000\u0381\u0001\u0000\u0000\u0000\u0000"+ + "\u0383\u0001\u0000\u0000\u0000\u0000\u0385\u0001\u0000\u0000\u0000\u0000"+ + "\u0387\u0001\u0000\u0000\u0000\u0000\u0389\u0001\u0000\u0000\u0000\u0000"+ + "\u038b\u0001\u0000\u0000\u0000\u0000\u038d\u0001\u0000\u0000\u0000\u0000"+ + "\u038f\u0001\u0000\u0000\u0000\u0000\u0391\u0001\u0000\u0000\u0000\u0000"+ + "\u0393\u0001\u0000\u0000\u0000\u0000\u0395\u0001\u0000\u0000\u0000\u0000"+ + "\u0397\u0001\u0000\u0000\u0000\u0000\u0399\u0001\u0000\u0000\u0000\u0000"+ + "\u039b\u0001\u0000\u0000\u0000\u0000\u039d\u0001\u0000\u0000\u0000\u0000"+ + "\u039f\u0001\u0000\u0000\u0000\u0000\u03a1\u0001\u0000\u0000\u0000\u0000"+ + "\u03a3\u0001\u0000\u0000\u0000\u0000\u03a5\u0001\u0000\u0000\u0000\u0000"+ + "\u03a7\u0001\u0000\u0000\u0000\u0000\u03a9\u0001\u0000\u0000\u0000\u0000"+ + "\u03ab\u0001\u0000\u0000\u0000\u0000\u03ad\u0001\u0000\u0000\u0000\u0000"+ + "\u03af\u0001\u0000\u0000\u0000\u0000\u03b1\u0001\u0000\u0000\u0000\u0000"+ + "\u03b3\u0001\u0000\u0000\u0000\u0000\u03b5\u0001\u0000\u0000\u0000\u0000"+ + "\u03b7\u0001\u0000\u0000\u0000\u0000\u03b9\u0001\u0000\u0000\u0000\u0000"+ + "\u03bb\u0001\u0000\u0000\u0000\u0000\u03bd\u0001\u0000\u0000\u0000\u0000"+ + "\u03bf\u0001\u0000\u0000\u0000\u0000\u03c1\u0001\u0000\u0000\u0000\u0000"+ + "\u03c3\u0001\u0000\u0000\u0000\u0000\u03c5\u0001\u0000\u0000\u0000\u0000"+ + "\u03c7\u0001\u0000\u0000\u0000\u0000\u03c9\u0001\u0000\u0000\u0000\u0000"+ + "\u03cb\u0001\u0000\u0000\u0000\u0000\u03cd\u0001\u0000\u0000\u0000\u0000"+ + "\u03cf\u0001\u0000\u0000\u0000\u0000\u03d1\u0001\u0000\u0000\u0000\u0000"+ + "\u03d3\u0001\u0000\u0000\u0000\u0000\u03d5\u0001\u0000\u0000\u0000\u0000"+ + "\u03d7\u0001\u0000\u0000\u0000\u0000\u03d9\u0001\u0000\u0000\u0000\u0000"+ + "\u03db\u0001\u0000\u0000\u0000\u0000\u03dd\u0001\u0000\u0000\u0000\u0000"+ + "\u03df\u0001\u0000\u0000\u0000\u0000\u03e1\u0001\u0000\u0000\u0000\u0000"+ + "\u03e3\u0001\u0000\u0000\u0000\u0000\u03e5\u0001\u0000\u0000\u0000\u0000"+ + "\u03e7\u0001\u0000\u0000\u0000\u0000\u03e9\u0001\u0000\u0000\u0000\u0000"+ + "\u03eb\u0001\u0000\u0000\u0000\u0000\u03ed\u0001\u0000\u0000\u0000\u0000"+ + "\u03ef\u0001\u0000\u0000\u0000\u0000\u03f1\u0001\u0000\u0000\u0000\u0000"+ + "\u03f3\u0001\u0000\u0000\u0000\u0000\u03f5\u0001\u0000\u0000\u0000\u0000"+ + "\u03f7\u0001\u0000\u0000\u0000\u0000\u03f9\u0001\u0000\u0000\u0000\u0000"+ + "\u03fb\u0001\u0000\u0000\u0000\u0000\u03fd\u0001\u0000\u0000\u0000\u0000"+ + "\u03ff\u0001\u0000\u0000\u0000\u0000\u0401\u0001\u0000\u0000\u0000\u0000"+ + "\u0403\u0001\u0000\u0000\u0000\u0000\u0405\u0001\u0000\u0000\u0000\u0000"+ + "\u0407\u0001\u0000\u0000\u0000\u0000\u0409\u0001\u0000\u0000\u0000\u0000"+ + "\u040b\u0001\u0000\u0000\u0000\u0000\u040d\u0001\u0000\u0000\u0000\u0000"+ + "\u040f\u0001\u0000\u0000\u0000\u0000\u0411\u0001\u0000\u0000\u0000\u0000"+ + "\u0413\u0001\u0000\u0000\u0000\u0000\u0415\u0001\u0000\u0000\u0000\u0000"+ + "\u0417\u0001\u0000\u0000\u0000\u0000\u0419\u0001\u0000\u0000\u0000\u0000"+ + "\u041b\u0001\u0000\u0000\u0000\u0000\u041d\u0001\u0000\u0000\u0000\u0000"+ + "\u041f\u0001\u0000\u0000\u0000\u0000\u0421\u0001\u0000\u0000\u0000\u0000"+ + "\u0423\u0001\u0000\u0000\u0000\u0000\u0425\u0001\u0000\u0000\u0000\u0000"+ + "\u0427\u0001\u0000\u0000\u0000\u0000\u0429\u0001\u0000\u0000\u0000\u0000"+ + "\u042b\u0001\u0000\u0000\u0000\u0000\u042d\u0001\u0000\u0000\u0000\u0000"+ + "\u042f\u0001\u0000\u0000\u0000\u0000\u0431\u0001\u0000\u0000\u0000\u0000"+ + "\u0433\u0001\u0000\u0000\u0000\u0000\u0435\u0001\u0000\u0000\u0000\u0000"+ + "\u0437\u0001\u0000\u0000\u0000\u0000\u0439\u0001\u0000\u0000\u0000\u0000"+ + "\u043b\u0001\u0000\u0000\u0000\u0000\u043d\u0001\u0000\u0000\u0000\u0000"+ + "\u043f\u0001\u0000\u0000\u0000\u0000\u0441\u0001\u0000\u0000\u0000\u0000"+ + "\u0443\u0001\u0000\u0000\u0000\u0000\u0445\u0001\u0000\u0000\u0000\u0000"+ + "\u0447\u0001\u0000\u0000\u0000\u0000\u0449\u0001\u0000\u0000\u0000\u0000"+ + "\u044b\u0001\u0000\u0000\u0000\u0000\u044d\u0001\u0000\u0000\u0000\u0000"+ + "\u044f\u0001\u0000\u0000\u0000\u0000\u0451\u0001\u0000\u0000\u0000\u0000"+ + "\u0453\u0001\u0000\u0000\u0000\u0000\u0455\u0001\u0000\u0000\u0000\u0000"+ + "\u0457\u0001\u0000\u0000\u0000\u0000\u0459\u0001\u0000\u0000\u0000\u0000"+ + "\u045b\u0001\u0000\u0000\u0000\u0000\u045d\u0001\u0000\u0000\u0000\u0000"+ + "\u045f\u0001\u0000\u0000\u0000\u0000\u0461\u0001\u0000\u0000\u0000\u0000"+ + "\u0463\u0001\u0000\u0000\u0000\u0000\u0465\u0001\u0000\u0000\u0000\u0000"+ + "\u0467\u0001\u0000\u0000\u0000\u0000\u0469\u0001\u0000\u0000\u0000\u0000"+ + "\u046b\u0001\u0000\u0000\u0000\u0000\u046d\u0001\u0000\u0000\u0000\u0000"+ + "\u046f\u0001\u0000\u0000\u0000\u0000\u0471\u0001\u0000\u0000\u0000\u0000"+ + "\u0473\u0001\u0000\u0000\u0000\u0000\u0475\u0001\u0000\u0000\u0000\u0000"+ + "\u0477\u0001\u0000\u0000\u0000\u0000\u0479\u0001\u0000\u0000\u0000\u0000"+ + "\u047b\u0001\u0000\u0000\u0000\u0000\u047d\u0001\u0000\u0000\u0000\u0000"+ + "\u047f\u0001\u0000\u0000\u0000\u0000\u0481\u0001\u0000\u0000\u0000\u0000"+ + "\u0483\u0001\u0000\u0000\u0000\u0000\u0485\u0001\u0000\u0000\u0000\u0000"+ + "\u0487\u0001\u0000\u0000\u0000\u0000\u0489\u0001\u0000\u0000\u0000\u0000"+ + "\u048b\u0001\u0000\u0000\u0000\u0000\u048d\u0001\u0000\u0000\u0000\u0000"+ + "\u048f\u0001\u0000\u0000\u0000\u0000\u0491\u0001\u0000\u0000\u0000\u0000"+ + "\u0493\u0001\u0000\u0000\u0000\u0000\u0495\u0001\u0000\u0000\u0000\u0000"+ + "\u0497\u0001\u0000\u0000\u0000\u0000\u0499\u0001\u0000\u0000\u0000\u0000"+ + "\u049b\u0001\u0000\u0000\u0000\u0000\u049d\u0001\u0000\u0000\u0000\u0000"+ + "\u049f\u0001\u0000\u0000\u0000\u0000\u04a1\u0001\u0000\u0000\u0000\u0000"+ + "\u04a3\u0001\u0000\u0000\u0000\u0000\u04a5\u0001\u0000\u0000\u0000\u0000"+ + "\u04a7\u0001\u0000\u0000\u0000\u0000\u04a9\u0001\u0000\u0000\u0000\u0000"+ + "\u04ab\u0001\u0000\u0000\u0000\u0000\u04ad\u0001\u0000\u0000\u0000\u0000"+ + "\u04af\u0001\u0000\u0000\u0000\u0000\u04b1\u0001\u0000\u0000\u0000\u0000"+ + "\u04b3\u0001\u0000\u0000\u0000\u0000\u04b5\u0001\u0000\u0000\u0000\u0000"+ + "\u04b7\u0001\u0000\u0000\u0000\u0000\u04b9\u0001\u0000\u0000\u0000\u0000"+ + "\u04bb\u0001\u0000\u0000\u0000\u0000\u04bd\u0001\u0000\u0000\u0000\u0000"+ + "\u04bf\u0001\u0000\u0000\u0000\u0000\u04c1\u0001\u0000\u0000\u0000\u0000"+ + "\u04c3\u0001\u0000\u0000\u0000\u0000\u04c5\u0001\u0000\u0000\u0000\u0000"+ + "\u04c7\u0001\u0000\u0000\u0000\u0000\u04c9\u0001\u0000\u0000\u0000\u0000"+ + "\u04cb\u0001\u0000\u0000\u0000\u0000\u04cd\u0001\u0000\u0000\u0000\u0000"+ + "\u04cf\u0001\u0000\u0000\u0000\u0000\u04d1\u0001\u0000\u0000\u0000\u0000"+ + "\u04d3\u0001\u0000\u0000\u0000\u0000\u04d5\u0001\u0000\u0000\u0000\u0000"+ + "\u04d7\u0001\u0000\u0000\u0000\u0000\u04d9\u0001\u0000\u0000\u0000\u0000"+ + "\u04db\u0001\u0000\u0000\u0000\u0000\u04dd\u0001\u0000\u0000\u0000\u0000"+ + "\u04df\u0001\u0000\u0000\u0000\u0000\u04e1\u0001\u0000\u0000\u0000\u0000"+ + "\u04e3\u0001\u0000\u0000\u0000\u0000\u04e5\u0001\u0000\u0000\u0000\u0000"+ + "\u04e7\u0001\u0000\u0000\u0000\u0000\u04e9\u0001\u0000\u0000\u0000\u0000"+ + "\u04eb\u0001\u0000\u0000\u0000\u0000\u04ed\u0001\u0000\u0000\u0000\u0000"+ + "\u04ef\u0001\u0000\u0000\u0000\u0000\u04f1\u0001\u0000\u0000\u0000\u0000"+ + "\u04f3\u0001\u0000\u0000\u0000\u0000\u04f5\u0001\u0000\u0000\u0000\u0000"+ + "\u04f7\u0001\u0000\u0000\u0000\u0000\u04f9\u0001\u0000\u0000\u0000\u0000"+ + "\u04fb\u0001\u0000\u0000\u0000\u0000\u04fd\u0001\u0000\u0000\u0000\u0000"+ + "\u04ff\u0001\u0000\u0000\u0000\u0000\u0501\u0001\u0000\u0000\u0000\u0000"+ + "\u0503\u0001\u0000\u0000\u0000\u0000\u0505\u0001\u0000\u0000\u0000\u0000"+ + "\u0507\u0001\u0000\u0000\u0000\u0000\u0509\u0001\u0000\u0000\u0000\u0000"+ + "\u050b\u0001\u0000\u0000\u0000\u0000\u050d\u0001\u0000\u0000\u0000\u0000"+ + "\u050f\u0001\u0000\u0000\u0000\u0000\u0511\u0001\u0000\u0000\u0000\u0000"+ + "\u0513\u0001\u0000\u0000\u0000\u0000\u0515\u0001\u0000\u0000\u0000\u0000"+ + "\u0517\u0001\u0000\u0000\u0000\u0000\u0519\u0001\u0000\u0000\u0000\u0000"+ + "\u051b\u0001\u0000\u0000\u0000\u0000\u051d\u0001\u0000\u0000\u0000\u0000"+ + "\u051f\u0001\u0000\u0000\u0000\u0000\u0521\u0001\u0000\u0000\u0000\u0000"+ + "\u0523\u0001\u0000\u0000\u0000\u0000\u0525\u0001\u0000\u0000\u0000\u0000"+ + "\u0527\u0001\u0000\u0000\u0000\u0000\u0529\u0001\u0000\u0000\u0000\u0000"+ + "\u052b\u0001\u0000\u0000\u0000\u0000\u052d\u0001\u0000\u0000\u0000\u0000"+ + "\u052f\u0001\u0000\u0000\u0000\u0000\u0531\u0001\u0000\u0000\u0000\u0000"+ + "\u0533\u0001\u0000\u0000\u0000\u0000\u0535\u0001\u0000\u0000\u0000\u0000"+ + "\u0537\u0001\u0000\u0000\u0000\u0000\u0539\u0001\u0000\u0000\u0000\u0000"+ + "\u053b\u0001\u0000\u0000\u0000\u0000\u053d\u0001\u0000\u0000\u0000\u0000"+ + "\u053f\u0001\u0000\u0000\u0000\u0000\u0541\u0001\u0000\u0000\u0000\u0000"+ + "\u0543\u0001\u0000\u0000\u0000\u0000\u0545\u0001\u0000\u0000\u0000\u0000"+ + "\u0547\u0001\u0000\u0000\u0000\u0000\u0549\u0001\u0000\u0000\u0000\u0000"+ + "\u054b\u0001\u0000\u0000\u0000\u0000\u054d\u0001\u0000\u0000\u0000\u0000"+ + "\u054f\u0001\u0000\u0000\u0000\u0000\u0551\u0001\u0000\u0000\u0000\u0000"+ + "\u0553\u0001\u0000\u0000\u0000\u0000\u0555\u0001\u0000\u0000\u0000\u0000"+ + "\u0557\u0001\u0000\u0000\u0000\u0000\u0559\u0001\u0000\u0000\u0000\u0000"+ + "\u055b\u0001\u0000\u0000\u0000\u0000\u055d\u0001\u0000\u0000\u0000\u0000"+ + "\u055f\u0001\u0000\u0000\u0000\u0000\u0561\u0001\u0000\u0000\u0000\u0000"+ + "\u0563\u0001\u0000\u0000\u0000\u0000\u0565\u0001\u0000\u0000\u0000\u0000"+ + "\u0567\u0001\u0000\u0000\u0000\u0000\u0569\u0001\u0000\u0000\u0000\u0000"+ + "\u056b\u0001\u0000\u0000\u0000\u0000\u056d\u0001\u0000\u0000\u0000\u0000"+ + "\u056f\u0001\u0000\u0000\u0000\u0000\u0571\u0001\u0000\u0000\u0000\u0000"+ + "\u0573\u0001\u0000\u0000\u0000\u0000\u0575\u0001\u0000\u0000\u0000\u0000"+ + "\u0577\u0001\u0000\u0000\u0000\u0000\u0579\u0001\u0000\u0000\u0000\u0000"+ + "\u057b\u0001\u0000\u0000\u0000\u0000\u057d\u0001\u0000\u0000\u0000\u0000"+ + "\u057f\u0001\u0000\u0000\u0000\u0000\u0581\u0001\u0000\u0000\u0000\u0000"+ + "\u0583\u0001\u0000\u0000\u0000\u0000\u0585\u0001\u0000\u0000\u0000\u0000"+ + "\u0587\u0001\u0000\u0000\u0000\u0000\u0589\u0001\u0000\u0000\u0000\u0000"+ + "\u058b\u0001\u0000\u0000\u0000\u0000\u058d\u0001\u0000\u0000\u0000\u0000"+ + "\u058f\u0001\u0000\u0000\u0000\u0000\u0591\u0001\u0000\u0000\u0000\u0000"+ + "\u0593\u0001\u0000\u0000\u0000\u0000\u0595\u0001\u0000\u0000\u0000\u0000"+ + "\u0597\u0001\u0000\u0000\u0000\u0000\u0599\u0001\u0000\u0000\u0000\u0000"+ + "\u059b\u0001\u0000\u0000\u0000\u0000\u059d\u0001\u0000\u0000\u0000\u0000"+ + "\u059f\u0001\u0000\u0000\u0000\u0000\u05a1\u0001\u0000\u0000\u0000\u0000"+ + "\u05a3\u0001\u0000\u0000\u0000\u0000\u05a5\u0001\u0000\u0000\u0000\u0000"+ + "\u05a7\u0001\u0000\u0000\u0000\u0000\u05a9\u0001\u0000\u0000\u0000\u0000"+ + "\u05ab\u0001\u0000\u0000\u0000\u0000\u05ad\u0001\u0000\u0000\u0000\u0000"+ + "\u05af\u0001\u0000\u0000\u0000\u0000\u05b1\u0001\u0000\u0000\u0000\u0000"+ + "\u05b3\u0001\u0000\u0000\u0000\u0000\u05b5\u0001\u0000\u0000\u0000\u0000"+ + "\u05b7\u0001\u0000\u0000\u0000\u0000\u05b9\u0001\u0000\u0000\u0000\u0000"+ + "\u05bb\u0001\u0000\u0000\u0000\u0000\u05bd\u0001\u0000\u0000\u0000\u0000"+ + "\u05bf\u0001\u0000\u0000\u0000\u0000\u05c1\u0001\u0000\u0000\u0000\u0000"+ + "\u05c3\u0001\u0000\u0000\u0000\u0000\u05c5\u0001\u0000\u0000\u0000\u0000"+ + "\u05c7\u0001\u0000\u0000\u0000\u0000\u05c9\u0001\u0000\u0000\u0000\u0000"+ + "\u05cb\u0001\u0000\u0000\u0000\u0000\u05cd\u0001\u0000\u0000\u0000\u0000"+ + "\u05cf\u0001\u0000\u0000\u0000\u0000\u05d1\u0001\u0000\u0000\u0000\u0000"+ + "\u05d3\u0001\u0000\u0000\u0000\u0000\u05d5\u0001\u0000\u0000\u0000\u0000"+ + "\u05d7\u0001\u0000\u0000\u0000\u0000\u05d9\u0001\u0000\u0000\u0000\u0000"+ + "\u05db\u0001\u0000\u0000\u0000\u0000\u05dd\u0001\u0000\u0000\u0000\u0000"+ + "\u05df\u0001\u0000\u0000\u0000\u0000\u05e1\u0001\u0000\u0000\u0000\u0000"+ + "\u05e3\u0001\u0000\u0000\u0000\u0000\u05e5\u0001\u0000\u0000\u0000\u0000"+ + "\u05e7\u0001\u0000\u0000\u0000\u0000\u05e9\u0001\u0000\u0000\u0000\u0000"+ + "\u05eb\u0001\u0000\u0000\u0000\u0000\u05ed\u0001\u0000\u0000\u0000\u0000"+ + "\u05ef\u0001\u0000\u0000\u0000\u0000\u05f1\u0001\u0000\u0000\u0000\u0000"+ + "\u05f3\u0001\u0000\u0000\u0000\u0000\u05f5\u0001\u0000\u0000\u0000\u0000"+ + "\u05f7\u0001\u0000\u0000\u0000\u0000\u05f9\u0001\u0000\u0000\u0000\u0000"+ + "\u05fb\u0001\u0000\u0000\u0000\u0000\u05fd\u0001\u0000\u0000\u0000\u0000"+ + "\u05ff\u0001\u0000\u0000\u0000\u0000\u0601\u0001\u0000\u0000\u0000\u0000"+ + "\u0603\u0001\u0000\u0000\u0000\u0000\u0605\u0001\u0000\u0000\u0000\u0000"+ + "\u0607\u0001\u0000\u0000\u0000\u0000\u0609\u0001\u0000\u0000\u0000\u0000"+ + "\u060b\u0001\u0000\u0000\u0000\u0000\u060d\u0001\u0000\u0000\u0000\u0000"+ + "\u060f\u0001\u0000\u0000\u0000\u0000\u0611\u0001\u0000\u0000\u0000\u0000"+ + "\u0613\u0001\u0000\u0000\u0000\u0000\u0615\u0001\u0000\u0000\u0000\u0000"+ + "\u0617\u0001\u0000\u0000\u0000\u0000\u0619\u0001\u0000\u0000\u0000\u0000"+ + "\u061b\u0001\u0000\u0000\u0000\u0000\u061d\u0001\u0000\u0000\u0000\u0000"+ + "\u061f\u0001\u0000\u0000\u0000\u0000\u0621\u0001\u0000\u0000\u0000\u0000"+ + "\u0623\u0001\u0000\u0000\u0000\u0000\u0625\u0001\u0000\u0000\u0000\u0000"+ + "\u0627\u0001\u0000\u0000\u0000\u0000\u0629\u0001\u0000\u0000\u0000\u0000"+ + "\u062b\u0001\u0000\u0000\u0000\u0000\u062d\u0001\u0000\u0000\u0000\u0000"+ + "\u062f\u0001\u0000\u0000\u0000\u0000\u0631\u0001\u0000\u0000\u0000\u0000"+ + "\u0633\u0001\u0000\u0000\u0000\u0000\u0635\u0001\u0000\u0000\u0000\u0000"+ + "\u0637\u0001\u0000\u0000\u0000\u0000\u0639\u0001\u0000\u0000\u0000\u0000"+ + "\u063b\u0001\u0000\u0000\u0000\u0000\u063d\u0001\u0000\u0000\u0000\u0000"+ + "\u063f\u0001\u0000\u0000\u0000\u0000\u0641\u0001\u0000\u0000\u0000\u0000"+ + "\u0643\u0001\u0000\u0000\u0000\u0000\u0645\u0001\u0000\u0000\u0000\u0000"+ + "\u0647\u0001\u0000\u0000\u0000\u0000\u0649\u0001\u0000\u0000\u0000\u0000"+ + "\u064b\u0001\u0000\u0000\u0000\u0000\u064d\u0001\u0000\u0000\u0000\u0000"+ + "\u064f\u0001\u0000\u0000\u0000\u0000\u0651\u0001\u0000\u0000\u0000\u0000"+ + "\u0653\u0001\u0000\u0000\u0000\u0000\u0655\u0001\u0000\u0000\u0000\u0000"+ + "\u0657\u0001\u0000\u0000\u0000\u0000\u0659\u0001\u0000\u0000\u0000\u0000"+ + "\u065b\u0001\u0000\u0000\u0000\u0000\u065d\u0001\u0000\u0000\u0000\u0000"+ + "\u065f\u0001\u0000\u0000\u0000\u0000\u0661\u0001\u0000\u0000\u0000\u0000"+ + "\u0663\u0001\u0000\u0000\u0000\u0000\u0665\u0001\u0000\u0000\u0000\u0000"+ + "\u0667\u0001\u0000\u0000\u0000\u0000\u0669\u0001\u0000\u0000\u0000\u0000"+ + "\u066b\u0001\u0000\u0000\u0000\u0000\u066d\u0001\u0000\u0000\u0000\u0000"+ + "\u066f\u0001\u0000\u0000\u0000\u0000\u0671\u0001\u0000\u0000\u0000\u0000"+ + "\u0673\u0001\u0000\u0000\u0000\u0000\u0675\u0001\u0000\u0000\u0000\u0000"+ + "\u0677\u0001\u0000\u0000\u0000\u0000\u0679\u0001\u0000\u0000\u0000\u0000"+ + "\u067b\u0001\u0000\u0000\u0000\u0000\u067d\u0001\u0000\u0000\u0000\u0000"+ + "\u067f\u0001\u0000\u0000\u0000\u0000\u0681\u0001\u0000\u0000\u0000\u0000"+ + "\u0683\u0001\u0000\u0000\u0000\u0000\u0685\u0001\u0000\u0000\u0000\u0000"+ + "\u0687\u0001\u0000\u0000\u0000\u0000\u0689\u0001\u0000\u0000\u0000\u0000"+ + "\u068b\u0001\u0000\u0000\u0000\u0000\u068d\u0001\u0000\u0000\u0000\u0000"+ + "\u068f\u0001\u0000\u0000\u0000\u0000\u0691\u0001\u0000\u0000\u0000\u0000"+ + "\u0693\u0001\u0000\u0000\u0000\u0000\u0695\u0001\u0000\u0000\u0000\u0000"+ + "\u0697\u0001\u0000\u0000\u0000\u0000\u0699\u0001\u0000\u0000\u0000\u0000"+ + "\u069b\u0001\u0000\u0000\u0000\u0000\u069d\u0001\u0000\u0000\u0000\u0000"+ + "\u069f\u0001\u0000\u0000\u0000\u0000\u06a1\u0001\u0000\u0000\u0000\u0000"+ + "\u06a3\u0001\u0000\u0000\u0000\u0000\u06a5\u0001\u0000\u0000\u0000\u0000"+ + "\u06a7\u0001\u0000\u0000\u0000\u0000\u06a9\u0001\u0000\u0000\u0000\u0000"+ + "\u06ab\u0001\u0000\u0000\u0000\u0000\u06ad\u0001\u0000\u0000\u0000\u0000"+ + "\u06af\u0001\u0000\u0000\u0000\u0000\u06b1\u0001\u0000\u0000\u0000\u0000"+ + "\u06b3\u0001\u0000\u0000\u0000\u0000\u06b5\u0001\u0000\u0000\u0000\u0000"+ + "\u06b7\u0001\u0000\u0000\u0000\u0000\u06b9\u0001\u0000\u0000\u0000\u0000"+ + "\u06bb\u0001\u0000\u0000\u0000\u0000\u06bd\u0001\u0000\u0000\u0000\u0000"+ + "\u06bf\u0001\u0000\u0000\u0000\u0000\u06c1\u0001\u0000\u0000\u0000\u0001"+ + "\u06c4\u0001\u0000\u0000\u0000\u0003\u06ca\u0001\u0000\u0000\u0000\u0005"+ + "\u06d8\u0001\u0000\u0000\u0000\u0007\u06e5\u0001\u0000\u0000\u0000\t\u06e7"+ + "\u0001\u0000\u0000\u0000\u000b\u06e9\u0001\u0000\u0000\u0000\r\u06eb\u0001"+ + "\u0000\u0000\u0000\u000f\u06ed\u0001\u0000\u0000\u0000\u0011\u06ef\u0001"+ + "\u0000\u0000\u0000\u0013\u06f1\u0001\u0000\u0000\u0000\u0015\u06f3\u0001"+ + "\u0000\u0000\u0000\u0017\u06f5\u0001\u0000\u0000\u0000\u0019\u06f7\u0001"+ + "\u0000\u0000\u0000\u001b\u06f9\u0001\u0000\u0000\u0000\u001d\u06fb\u0001"+ + "\u0000\u0000\u0000\u001f\u06fd\u0001\u0000\u0000\u0000!\u06ff\u0001\u0000"+ + "\u0000\u0000#\u0701\u0001\u0000\u0000\u0000%\u0703\u0001\u0000\u0000\u0000"+ + "\'\u0705\u0001\u0000\u0000\u0000)\u0707\u0001\u0000\u0000\u0000+\u0709"+ + "\u0001\u0000\u0000\u0000-\u070b\u0001\u0000\u0000\u0000/\u070d\u0001\u0000"+ + "\u0000\u00001\u070f\u0001\u0000\u0000\u00003\u0711\u0001\u0000\u0000\u0000"+ + "5\u0713\u0001\u0000\u0000\u00007\u0715\u0001\u0000\u0000\u00009\u0717"+ + "\u0001\u0000\u0000\u0000;\u0719\u0001\u0000\u0000\u0000=\u071b\u0001\u0000"+ + "\u0000\u0000?\u071d\u0001\u0000\u0000\u0000A\u072a\u0001\u0000\u0000\u0000"+ + "C\u0737\u0001\u0000\u0000\u0000E\u0744\u0001\u0000\u0000\u0000G\u0746"+ + "\u0001\u0000\u0000\u0000I\u074c\u0001\u0000\u0000\u0000K\u0750\u0001\u0000"+ + "\u0000\u0000M\u0759\u0001\u0000\u0000\u0000O\u0760\u0001\u0000\u0000\u0000"+ + "Q\u0767\u0001\u0000\u0000\u0000S\u076b\u0001\u0000\u0000\u0000U\u076f"+ + "\u0001\u0000\u0000\u0000W\u0775\u0001\u0000\u0000\u0000Y\u077b\u0001\u0000"+ + "\u0000\u0000[\u0785\u0001\u0000\u0000\u0000]\u078b\u0001\u0000\u0000\u0000"+ + "_\u078f\u0001\u0000\u0000\u0000a\u0798\u0001\u0000\u0000\u0000c\u079d"+ + "\u0001\u0000\u0000\u0000e\u07a3\u0001\u0000\u0000\u0000g\u07aa\u0001\u0000"+ + "\u0000\u0000i\u07b2\u0001\u0000\u0000\u0000k\u07ba\u0001\u0000\u0000\u0000"+ + "m\u07be\u0001\u0000\u0000\u0000o\u07c2\u0001\u0000\u0000\u0000q\u07c6"+ + "\u0001\u0000\u0000\u0000s\u07cc\u0001\u0000\u0000\u0000u\u07cf\u0001\u0000"+ + "\u0000\u0000w\u07d3\u0001\u0000\u0000\u0000y\u07de\u0001\u0000\u0000\u0000"+ + "{\u07e8\u0001\u0000\u0000\u0000}\u07f3\u0001\u0000\u0000\u0000\u007f\u07fe"+ + "\u0001\u0000\u0000\u0000\u0081\u0801\u0001\u0000\u0000\u0000\u0083\u0808"+ + "\u0001\u0000\u0000\u0000\u0085\u0812\u0001\u0000\u0000\u0000\u0087\u081d"+ + "\u0001\u0000\u0000\u0000\u0089\u082b\u0001\u0000\u0000\u0000\u008b\u082f"+ + "\u0001\u0000\u0000\u0000\u008d\u0838\u0001\u0000\u0000\u0000\u008f\u083f"+ + "\u0001\u0000\u0000\u0000\u0091\u0845\u0001\u0000\u0000\u0000\u0093\u084f"+ + "\u0001\u0000\u0000\u0000\u0095\u0857\u0001\u0000\u0000\u0000\u0097\u085e"+ + "\u0001\u0000\u0000\u0000\u0099\u0865\u0001\u0000\u0000\u0000\u009b\u0869"+ + "\u0001\u0000\u0000\u0000\u009d\u0874\u0001\u0000\u0000\u0000\u009f\u087b"+ + "\u0001\u0000\u0000\u0000\u00a1\u0880\u0001\u0000\u0000\u0000\u00a3\u0888"+ + "\u0001\u0000\u0000\u0000\u00a5\u088d\u0001\u0000\u0000\u0000\u00a7\u0895"+ + "\u0001\u0000\u0000\u0000\u00a9\u089d\u0001\u0000\u0000\u0000\u00ab\u08a0"+ + "\u0001\u0000\u0000\u0000\u00ad\u08a2\u0001\u0000\u0000\u0000\u00af\u08a8"+ + "\u0001\u0000\u0000\u0000\u00b1\u08ad\u0001\u0000\u0000\u0000\u00b3\u08b4"+ + "\u0001\u0000\u0000\u0000\u00b5\u08c0\u0001\u0000\u0000\u0000\u00b7\u08c8"+ + "\u0001\u0000\u0000\u0000\u00b9\u08d1\u0001\u0000\u0000\u0000\u00bb\u08d6"+ + "\u0001\u0000\u0000\u0000\u00bd\u08db\u0001\u0000\u0000\u0000\u00bf\u08e3"+ + "\u0001\u0000\u0000\u0000\u00c1\u08f0\u0001\u0000\u0000\u0000\u00c3\u08f5"+ + "\u0001\u0000\u0000\u0000\u00c5\u08fd\u0001\u0000\u0000\u0000\u00c7\u0903"+ + "\u0001\u0000\u0000\u0000\u00c9\u0908\u0001\u0000\u0000\u0000\u00cb\u0914"+ + "\u0001\u0000\u0000\u0000\u00cd\u091e\u0001\u0000\u0000\u0000\u00cf\u092f"+ + "\u0001\u0000\u0000\u0000\u00d1\u0945\u0001\u0000\u0000\u0000\u00d3\u0958"+ + "\u0001\u0000\u0000\u0000\u00d5\u096d\u0001\u0000\u0000\u0000\u00d7\u097d"+ + "\u0001\u0000\u0000\u0000\u00d9\u0988\u0001\u0000\u0000\u0000\u00db\u098e"+ + "\u0001\u0000\u0000\u0000\u00dd\u0996\u0001\u0000\u0000\u0000\u00df\u09a1"+ + "\u0001\u0000\u0000\u0000\u00e1\u09a7\u0001\u0000\u0000\u0000\u00e3\u09b4"+ + "\u0001\u0000\u0000\u0000\u00e5\u09b9\u0001\u0000\u0000\u0000\u00e7\u09bf"+ + "\u0001\u0000\u0000\u0000\u00e9\u09c7\u0001\u0000\u0000\u0000\u00eb\u09d0"+ + "\u0001\u0000\u0000\u0000\u00ed\u09d6\u0001\u0000\u0000\u0000\u00ef\u09de"+ + "\u0001\u0000\u0000\u0000\u00f1\u09e8\u0001\u0000\u0000\u0000\u00f3\u09fa"+ + "\u0001\u0000\u0000\u0000\u00f5\u0a09\u0001\u0000\u0000\u0000\u00f7\u0a1a"+ + "\u0001\u0000\u0000\u0000\u00f9\u0a22\u0001\u0000\u0000\u0000\u00fb\u0a29"+ + "\u0001\u0000\u0000\u0000\u00fd\u0a35\u0001\u0000\u0000\u0000\u00ff\u0a46"+ + "\u0001\u0000\u0000\u0000\u0101\u0a5c\u0001\u0000\u0000\u0000\u0103\u0a64"+ + "\u0001\u0000\u0000\u0000\u0105\u0a6b\u0001\u0000\u0000\u0000\u0107\u0a75"+ + "\u0001\u0000\u0000\u0000\u0109\u0a80\u0001\u0000\u0000\u0000\u010b\u0a8a"+ + "\u0001\u0000\u0000\u0000\u010d\u0a9b\u0001\u0000\u0000\u0000\u010f\u0aa9"+ + "\u0001\u0000\u0000\u0000\u0111\u0ab2\u0001\u0000\u0000\u0000\u0113\u0aba"+ + "\u0001\u0000\u0000\u0000\u0115\u0ac5\u0001\u0000\u0000\u0000\u0117\u0ad5"+ + "\u0001\u0000\u0000\u0000\u0119\u0ae0\u0001\u0000\u0000\u0000\u011b\u0af3"+ + "\u0001\u0000\u0000\u0000\u011d\u0b03\u0001\u0000\u0000\u0000\u011f\u0b15"+ + "\u0001\u0000\u0000\u0000\u0121\u0b21\u0001\u0000\u0000\u0000\u0123\u0b2d"+ + "\u0001\u0000\u0000\u0000\u0125\u0b36\u0001\u0000\u0000\u0000\u0127\u0b3f"+ + "\u0001\u0000\u0000\u0000\u0129\u0b4a\u0001\u0000\u0000\u0000\u012b\u0b52"+ + "\u0001\u0000\u0000\u0000\u012d\u0b57\u0001\u0000\u0000\u0000\u012f\u0b5c"+ + "\u0001\u0000\u0000\u0000\u0131\u0b6a\u0001\u0000\u0000\u0000\u0133\u0b70"+ + "\u0001\u0000\u0000\u0000\u0135\u0b76\u0001\u0000\u0000\u0000\u0137\u0b80"+ + "\u0001\u0000\u0000\u0000\u0139\u0b8b\u0001\u0000\u0000\u0000\u013b\u0b92"+ + "\u0001\u0000\u0000\u0000\u013d\u0b9b\u0001\u0000\u0000\u0000\u013f\u0ba6"+ + "\u0001\u0000\u0000\u0000\u0141\u0bac\u0001\u0000\u0000\u0000\u0143\u0bb0"+ + "\u0001\u0000\u0000\u0000\u0145\u0bb5\u0001\u0000\u0000\u0000\u0147\u0bbf"+ + "\u0001\u0000\u0000\u0000\u0149\u0bc7\u0001\u0000\u0000\u0000\u014b\u0bd4"+ + "\u0001\u0000\u0000\u0000\u014d\u0bf4\u0001\u0000\u0000\u0000\u014f\u0c01"+ + "\u0001\u0000\u0000\u0000\u0151\u0c0e\u0001\u0000\u0000\u0000\u0153\u0c1b"+ + "\u0001\u0000\u0000\u0000\u0155\u0c2d\u0001\u0000\u0000\u0000\u0157\u0c4e"+ + "\u0001\u0000\u0000\u0000\u0159\u0c5b\u0001\u0000\u0000\u0000\u015b\u0c62"+ + "\u0001\u0000\u0000\u0000\u015d\u0c6e\u0001\u0000\u0000\u0000\u015f\u0c74"+ + "\u0001\u0000\u0000\u0000\u0161\u0c79\u0001\u0000\u0000\u0000\u0163\u0c82"+ + "\u0001\u0000\u0000\u0000\u0165\u0c87\u0001\u0000\u0000\u0000\u0167\u0c9e"+ + "\u0001\u0000\u0000\u0000\u0169\u0cba\u0001\u0000\u0000\u0000\u016b\u0cbe"+ + "\u0001\u0000\u0000\u0000\u016d\u0cc9\u0001\u0000\u0000\u0000\u016f\u0ccd"+ + "\u0001\u0000\u0000\u0000\u0171\u0cd5\u0001\u0000\u0000\u0000\u0173\u0cdd"+ + "\u0001\u0000\u0000\u0000\u0175\u0ce5\u0001\u0000\u0000\u0000\u0177\u0cee"+ + "\u0001\u0000\u0000\u0000\u0179\u0cf8\u0001\u0000\u0000\u0000\u017b\u0d03"+ + "\u0001\u0000\u0000\u0000\u017d\u0d0c\u0001\u0000\u0000\u0000\u017f\u0d14"+ + "\u0001\u0000\u0000\u0000\u0181\u0d1c\u0001\u0000\u0000\u0000\u0183\u0d23"+ + "\u0001\u0000\u0000\u0000\u0185\u0d2a\u0001\u0000\u0000\u0000\u0187\u0d34"+ + "\u0001\u0000\u0000\u0000\u0189\u0d3f\u0001\u0000\u0000\u0000\u018b\u0d4a"+ + "\u0001\u0000\u0000\u0000\u018d\u0d52\u0001\u0000\u0000\u0000\u018f\u0d58"+ + "\u0001\u0000\u0000\u0000\u0191\u0d5e\u0001\u0000\u0000\u0000\u0193\u0d66"+ + "\u0001\u0000\u0000\u0000\u0195\u0d6b\u0001\u0000\u0000\u0000\u0197\u0d74"+ + "\u0001\u0000\u0000\u0000\u0199\u0d7f\u0001\u0000\u0000\u0000\u019b\u0d87"+ + "\u0001\u0000\u0000\u0000\u019d\u0d92\u0001\u0000\u0000\u0000\u019f\u0da0"+ + "\u0001\u0000\u0000\u0000\u01a1\u0dac\u0001\u0000\u0000\u0000\u01a3\u0db7"+ + "\u0001\u0000\u0000\u0000\u01a5\u0dbf\u0001\u0000\u0000\u0000\u01a7\u0dd5"+ + "\u0001\u0000\u0000\u0000\u01a9\u0ddd\u0001\u0000\u0000\u0000\u01ab\u0de8"+ + "\u0001\u0000\u0000\u0000\u01ad\u0df1\u0001\u0000\u0000\u0000\u01af\u0dfa"+ + "\u0001\u0000\u0000\u0000\u01b1\u0dfd\u0001\u0000\u0000\u0000\u01b3\u0e04"+ + "\u0001\u0000\u0000\u0000\u01b5\u0e0b\u0001\u0000\u0000\u0000\u01b7\u0e10"+ + "\u0001\u0000\u0000\u0000\u01b9\u0e18\u0001\u0000\u0000\u0000\u01bb\u0e29"+ + "\u0001\u0000\u0000\u0000\u01bd\u0e3f\u0001\u0000\u0000\u0000\u01bf\u0e44"+ + "\u0001\u0000\u0000\u0000\u01c1\u0e4c\u0001\u0000\u0000\u0000\u01c3\u0e51"+ + "\u0001\u0000\u0000\u0000\u01c5\u0e58\u0001\u0000\u0000\u0000\u01c7\u0e61"+ + "\u0001\u0000\u0000\u0000\u01c9\u0e6b\u0001\u0000\u0000\u0000\u01cb\u0e6f"+ + "\u0001\u0000\u0000\u0000\u01cd\u0e78\u0001\u0000\u0000\u0000\u01cf\u0e7f"+ + "\u0001\u0000\u0000\u0000\u01d1\u0e86\u0001\u0000\u0000\u0000\u01d3\u0e8c"+ + "\u0001\u0000\u0000\u0000\u01d5\u0e93\u0001\u0000\u0000\u0000\u01d7\u0e9d"+ + "\u0001\u0000\u0000\u0000\u01d9\u0ea5\u0001\u0000\u0000\u0000\u01db\u0eaf"+ + "\u0001\u0000\u0000\u0000\u01dd\u0eb9\u0001\u0000\u0000\u0000\u01df\u0ebe"+ + "\u0001\u0000\u0000\u0000\u01e1\u0ec6\u0001\u0000\u0000\u0000\u01e3\u0ecf"+ + "\u0001\u0000\u0000\u0000\u01e5\u0ed6\u0001\u0000\u0000\u0000\u01e7\u0eda"+ + "\u0001\u0000\u0000\u0000\u01e9\u0ee2\u0001\u0000\u0000\u0000\u01eb\u0eeb"+ + "\u0001\u0000\u0000\u0000\u01ed\u0ef5\u0001\u0000\u0000\u0000\u01ef\u0efe"+ + "\u0001\u0000\u0000\u0000\u01f1\u0f06\u0001\u0000\u0000\u0000\u01f3\u0f0c"+ + "\u0001\u0000\u0000\u0000\u01f5\u0f12\u0001\u0000\u0000\u0000\u01f7\u0f19"+ + "\u0001\u0000\u0000\u0000\u01f9\u0f20\u0001\u0000\u0000\u0000\u01fb\u0f26"+ + "\u0001\u0000\u0000\u0000\u01fd\u0f2c\u0001\u0000\u0000\u0000\u01ff\u0f32"+ + "\u0001\u0000\u0000\u0000\u0201\u0f38\u0001\u0000\u0000\u0000\u0203\u0f42"+ + "\u0001\u0000\u0000\u0000\u0205\u0f46\u0001\u0000\u0000\u0000\u0207\u0f4c"+ + "\u0001\u0000\u0000\u0000\u0209\u0f54\u0001\u0000\u0000\u0000\u020b\u0f5b"+ + "\u0001\u0000\u0000\u0000\u020d\u0f63\u0001\u0000\u0000\u0000\u020f\u0f6b"+ + "\u0001\u0000\u0000\u0000\u0211\u0f71\u0001\u0000\u0000\u0000\u0213\u0f76"+ + "\u0001\u0000\u0000\u0000\u0215\u0f7d\u0001\u0000\u0000\u0000\u0217\u0f82"+ + "\u0001\u0000\u0000\u0000\u0219\u0f87\u0001\u0000\u0000\u0000\u021b\u0f90"+ + "\u0001\u0000\u0000\u0000\u021d\u0f97\u0001\u0000\u0000\u0000\u021f\u0f99"+ + "\u0001\u0000\u0000\u0000\u0221\u0fa1\u0001\u0000\u0000\u0000\u0223\u0fab"+ + "\u0001\u0000\u0000\u0000\u0225\u0faf\u0001\u0000\u0000\u0000\u0227\u0fb6"+ + "\u0001\u0000\u0000\u0000\u0229\u0fb9\u0001\u0000\u0000\u0000\u022b\u0fbe"+ + "\u0001\u0000\u0000\u0000\u022d\u0fc4\u0001\u0000\u0000\u0000\u022f\u0fcc"+ + "\u0001\u0000\u0000\u0000\u0231\u0fd5\u0001\u0000\u0000\u0000\u0233\u0fdb"+ + "\u0001\u0000\u0000\u0000\u0235\u0fe4\u0001\u0000\u0000\u0000\u0237\u0fec"+ + "\u0001\u0000\u0000\u0000\u0239\u0ff3\u0001\u0000\u0000\u0000\u023b\u0ffd"+ + "\u0001\u0000\u0000\u0000\u023d\u1002\u0001\u0000\u0000\u0000\u023f\u1007"+ + "\u0001\u0000\u0000\u0000\u0241\u100c\u0001\u0000\u0000\u0000\u0243\u1015"+ + "\u0001\u0000\u0000\u0000\u0245\u101c\u0001\u0000\u0000\u0000\u0247\u1022"+ + "\u0001\u0000\u0000\u0000\u0249\u102c\u0001\u0000\u0000\u0000\u024b\u1036"+ + "\u0001\u0000\u0000\u0000\u024d\u1045\u0001\u0000\u0000\u0000\u024f\u104e"+ + "\u0001\u0000\u0000\u0000\u0251\u1051\u0001\u0000\u0000\u0000\u0253\u105b"+ + "\u0001\u0000\u0000\u0000\u0255\u1065\u0001\u0000\u0000\u0000\u0257\u106b"+ + "\u0001\u0000\u0000\u0000\u0259\u1075\u0001\u0000\u0000\u0000\u025b\u107b"+ + "\u0001\u0000\u0000\u0000\u025d\u1084\u0001\u0000\u0000\u0000\u025f\u108f"+ + "\u0001\u0000\u0000\u0000\u0261\u1099\u0001\u0000\u0000\u0000\u0263\u109f"+ + "\u0001\u0000\u0000\u0000\u0265\u10a5\u0001\u0000\u0000\u0000\u0267\u10ab"+ + "\u0001\u0000\u0000\u0000\u0269\u10b7\u0001\u0000\u0000\u0000\u026b\u10be"+ + "\u0001\u0000\u0000\u0000\u026d\u10c7\u0001\u0000\u0000\u0000\u026f\u10d4"+ + "\u0001\u0000\u0000\u0000\u0271\u10dc\u0001\u0000\u0000\u0000\u0273\u10e0"+ + "\u0001\u0000\u0000\u0000\u0275\u10e8\u0001\u0000\u0000\u0000\u0277\u10f2"+ + "\u0001\u0000\u0000\u0000\u0279\u10ff\u0001\u0000\u0000\u0000\u027b\u1108"+ + "\u0001\u0000\u0000\u0000\u027d\u110d\u0001\u0000\u0000\u0000\u027f\u1115"+ + "\u0001\u0000\u0000\u0000\u0281\u1118\u0001\u0000\u0000\u0000\u0283\u1122"+ + "\u0001\u0000\u0000\u0000\u0285\u112a\u0001\u0000\u0000\u0000\u0287\u112f"+ + "\u0001\u0000\u0000\u0000\u0289\u1131\u0001\u0000\u0000\u0000\u028b\u1135"+ + "\u0001\u0000\u0000\u0000\u028d\u1140\u0001\u0000\u0000\u0000\u028f\u1149"+ + "\u0001\u0000\u0000\u0000\u0291\u114f\u0001\u0000\u0000\u0000\u0293\u115b"+ + "\u0001\u0000\u0000\u0000\u0295\u1164\u0001\u0000\u0000\u0000\u0297\u116a"+ + "\u0001\u0000\u0000\u0000\u0299\u116f\u0001\u0000\u0000\u0000\u029b\u1177"+ + "\u0001\u0000\u0000\u0000\u029d\u117f\u0001\u0000\u0000\u0000\u029f\u1185"+ + "\u0001\u0000\u0000\u0000\u02a1\u118a\u0001\u0000\u0000\u0000\u02a3\u1191"+ + "\u0001\u0000\u0000\u0000\u02a5\u1196\u0001\u0000\u0000\u0000\u02a7\u119c"+ + "\u0001\u0000\u0000\u0000\u02a9\u11a1\u0001\u0000\u0000\u0000\u02ab\u11a7"+ + "\u0001\u0000\u0000\u0000\u02ad\u11ae\u0001\u0000\u0000\u0000\u02af\u11b1"+ + "\u0001\u0000\u0000\u0000\u02b1\u11b6\u0001\u0000\u0000\u0000\u02b3\u11bc"+ + "\u0001\u0000\u0000\u0000\u02b5\u11c6\u0001\u0000\u0000\u0000\u02b7\u11d5"+ + "\u0001\u0000\u0000\u0000\u02b9\u11de\u0001\u0000\u0000\u0000\u02bb\u11e6"+ + "\u0001\u0000\u0000\u0000\u02bd\u11eb\u0001\u0000\u0000\u0000\u02bf\u11f2"+ + "\u0001\u0000\u0000\u0000\u02c1\u11f8\u0001\u0000\u0000\u0000\u02c3\u11fa"+ + "\u0001\u0000\u0000\u0000\u02c5\u11ff\u0001\u0000\u0000\u0000\u02c7\u1203"+ + "\u0001\u0000\u0000\u0000\u02c9\u120b\u0001\u0000\u0000\u0000\u02cb\u1211"+ + "\u0001\u0000\u0000\u0000\u02cd\u121e\u0001\u0000\u0000\u0000\u02cf\u1226"+ + "\u0001\u0000\u0000\u0000\u02d1\u122a\u0001\u0000\u0000\u0000\u02d3\u1233"+ + "\u0001\u0000\u0000\u0000\u02d5\u123a\u0001\u0000\u0000\u0000\u02d7\u1240"+ + "\u0001\u0000\u0000\u0000\u02d9\u124f\u0001\u0000\u0000\u0000\u02db\u1264"+ + "\u0001\u0000\u0000\u0000\u02dd\u1271\u0001\u0000\u0000\u0000\u02df\u1278"+ + "\u0001\u0000\u0000\u0000\u02e1\u127c\u0001\u0000\u0000\u0000\u02e3\u1283"+ + "\u0001\u0000\u0000\u0000\u02e5\u128c\u0001\u0000\u0000\u0000\u02e7\u1290"+ + "\u0001\u0000\u0000\u0000\u02e9\u1295\u0001\u0000\u0000\u0000\u02eb\u129e"+ + "\u0001\u0000\u0000\u0000\u02ed\u12a5\u0001\u0000\u0000\u0000\u02ef\u12ac"+ + "\u0001\u0000\u0000\u0000\u02f1\u12b2\u0001\u0000\u0000\u0000\u02f3\u12b7"+ + "\u0001\u0000\u0000\u0000\u02f5\u12bc\u0001\u0000\u0000\u0000\u02f7\u12c5"+ + "\u0001\u0000\u0000\u0000\u02f9\u12cb\u0001\u0000\u0000\u0000\u02fb\u12d0"+ + "\u0001\u0000\u0000\u0000\u02fd\u12d6\u0001\u0000\u0000\u0000\u02ff\u12df"+ + "\u0001\u0000\u0000\u0000\u0301\u12e7\u0001\u0000\u0000\u0000\u0303\u12ed"+ + "\u0001\u0000\u0000\u0000\u0305\u12f3\u0001\u0000\u0000\u0000\u0307\u12fb"+ + "\u0001\u0000\u0000\u0000\u0309\u12ff\u0001\u0000\u0000\u0000\u030b\u1304"+ + "\u0001\u0000\u0000\u0000\u030d\u1307\u0001\u0000\u0000\u0000\u030f\u1312"+ + "\u0001\u0000\u0000\u0000\u0311\u131f\u0001\u0000\u0000\u0000\u0313\u1324"+ + "\u0001\u0000\u0000\u0000\u0315\u132e\u0001\u0000\u0000\u0000\u0317\u1339"+ + "\u0001\u0000\u0000\u0000\u0319\u133d\u0001\u0000\u0000\u0000\u031b\u1345"+ + "\u0001\u0000\u0000\u0000\u031d\u134c\u0001\u0000\u0000\u0000\u031f\u1354"+ + "\u0001\u0000\u0000\u0000\u0321\u135b\u0001\u0000\u0000\u0000\u0323\u1360"+ + "\u0001\u0000\u0000\u0000\u0325\u1369\u0001\u0000\u0000\u0000\u0327\u1370"+ + "\u0001\u0000\u0000\u0000\u0329\u1376\u0001\u0000\u0000\u0000\u032b\u137d"+ + "\u0001\u0000\u0000\u0000\u032d\u1385\u0001\u0000\u0000\u0000\u032f\u138c"+ + "\u0001\u0000\u0000\u0000\u0331\u1399\u0001\u0000\u0000\u0000\u0333\u13a0"+ + "\u0001\u0000\u0000\u0000\u0335\u13a3\u0001\u0000\u0000\u0000\u0337\u13a7"+ + "\u0001\u0000\u0000\u0000\u0339\u13ae\u0001\u0000\u0000\u0000\u033b\u13b3"+ + "\u0001\u0000\u0000\u0000\u033d\u13b7\u0001\u0000\u0000\u0000\u033f\u13ba"+ + "\u0001\u0000\u0000\u0000\u0341\u13bf\u0001\u0000\u0000\u0000\u0343\u13c4"+ + "\u0001\u0000\u0000\u0000\u0345\u13ce\u0001\u0000\u0000\u0000\u0347\u13d7"+ + "\u0001\u0000\u0000\u0000\u0349\u13de\u0001\u0000\u0000\u0000\u034b\u13e6"+ + "\u0001\u0000\u0000\u0000\u034d\u13e9\u0001\u0000\u0000\u0000\u034f\u13ef"+ + "\u0001\u0000\u0000\u0000\u0351\u13f8\u0001\u0000\u0000\u0000\u0353\u1403"+ + "\u0001\u0000\u0000\u0000\u0355\u140a\u0001\u0000\u0000\u0000\u0357\u140e"+ + "\u0001\u0000\u0000\u0000\u0359\u1414\u0001\u0000\u0000\u0000\u035b\u141b"+ + "\u0001\u0000\u0000\u0000\u035d\u1420\u0001\u0000\u0000\u0000\u035f\u1429"+ + "\u0001\u0000\u0000\u0000\u0361\u1431\u0001\u0000\u0000\u0000\u0363\u143c"+ + "\u0001\u0000\u0000\u0000\u0365\u1442\u0001\u0000\u0000\u0000\u0367\u1446"+ + "\u0001\u0000\u0000\u0000\u0369\u1450\u0001\u0000\u0000\u0000\u036b\u145f"+ + "\u0001\u0000\u0000\u0000\u036d\u146e\u0001\u0000\u0000\u0000\u036f\u1489"+ + "\u0001\u0000\u0000\u0000\u0371\u14a4\u0001\u0000\u0000\u0000\u0373\u14bc"+ + "\u0001\u0000\u0000\u0000\u0375\u14d6\u0001\u0000\u0000\u0000\u0377\u14e1"+ + "\u0001\u0000\u0000\u0000\u0379\u14e8\u0001\u0000\u0000\u0000\u037b\u14f0"+ + "\u0001\u0000\u0000\u0000\u037d\u14fa\u0001\u0000\u0000\u0000\u037f\u1501"+ + "\u0001\u0000\u0000\u0000\u0381\u150a\u0001\u0000\u0000\u0000\u0383\u150f"+ + "\u0001\u0000\u0000\u0000\u0385\u151c\u0001\u0000\u0000\u0000\u0387\u152c"+ + "\u0001\u0000\u0000\u0000\u0389\u153c\u0001\u0000\u0000\u0000\u038b\u1544"+ + "\u0001\u0000\u0000\u0000\u038d\u154a\u0001\u0000\u0000\u0000\u038f\u1550"+ + "\u0001\u0000\u0000\u0000\u0391\u1554\u0001\u0000\u0000\u0000\u0393\u155d"+ + "\u0001\u0000\u0000\u0000\u0395\u1565\u0001\u0000\u0000\u0000\u0397\u156b"+ + "\u0001\u0000\u0000\u0000\u0399\u1575\u0001\u0000\u0000\u0000\u039b\u157f"+ + "\u0001\u0000\u0000\u0000\u039d\u1586\u0001\u0000\u0000\u0000\u039f\u158f"+ + "\u0001\u0000\u0000\u0000\u03a1\u1597\u0001\u0000\u0000\u0000\u03a3\u15a0"+ + "\u0001\u0000\u0000\u0000\u03a5\u15a9\u0001\u0000\u0000\u0000\u03a7\u15b1"+ + "\u0001\u0000\u0000\u0000\u03a9\u15b7\u0001\u0000\u0000\u0000\u03ab\u15c2"+ + "\u0001\u0000\u0000\u0000\u03ad\u15cd\u0001\u0000\u0000\u0000\u03af\u15d7"+ + "\u0001\u0000\u0000\u0000\u03b1\u15de\u0001\u0000\u0000\u0000\u03b3\u15ea"+ + "\u0001\u0000\u0000\u0000\u03b5\u15f0\u0001\u0000\u0000\u0000\u03b7\u15f6"+ + "\u0001\u0000\u0000\u0000\u03b9\u15fb\u0001\u0000\u0000\u0000\u03bb\u1600"+ + "\u0001\u0000\u0000\u0000\u03bd\u1606\u0001\u0000\u0000\u0000\u03bf\u160b"+ + "\u0001\u0000\u0000\u0000\u03c1\u1614\u0001\u0000\u0000\u0000\u03c3\u161c"+ + "\u0001\u0000\u0000\u0000\u03c5\u1626\u0001\u0000\u0000\u0000\u03c7\u162a"+ + "\u0001\u0000\u0000\u0000\u03c9\u1635\u0001\u0000\u0000\u0000\u03cb\u1641"+ + "\u0001\u0000\u0000\u0000\u03cd\u1649\u0001\u0000\u0000\u0000\u03cf\u1653"+ + "\u0001\u0000\u0000\u0000\u03d1\u165d\u0001\u0000\u0000\u0000\u03d3\u1668"+ + "\u0001\u0000\u0000\u0000\u03d5\u1677\u0001\u0000\u0000\u0000\u03d7\u167f"+ + "\u0001\u0000\u0000\u0000\u03d9\u168a\u0001\u0000\u0000\u0000\u03db\u1693"+ + "\u0001\u0000\u0000\u0000\u03dd\u169c\u0001\u0000\u0000\u0000\u03df\u16a5"+ + "\u0001\u0000\u0000\u0000\u03e1\u16ad\u0001\u0000\u0000\u0000\u03e3\u16b6"+ + "\u0001\u0000\u0000\u0000\u03e5\u16be\u0001\u0000\u0000\u0000\u03e7\u16c5"+ + "\u0001\u0000\u0000\u0000\u03e9\u16d0\u0001\u0000\u0000\u0000\u03eb\u16d8"+ + "\u0001\u0000\u0000\u0000\u03ed\u16e0\u0001\u0000\u0000\u0000\u03ef\u16e6"+ + "\u0001\u0000\u0000\u0000\u03f1\u16ee\u0001\u0000\u0000\u0000\u03f3\u16f7"+ + "\u0001\u0000\u0000\u0000\u03f5\u16fe\u0001\u0000\u0000\u0000\u03f7\u1705"+ + "\u0001\u0000\u0000\u0000\u03f9\u171a\u0001\u0000\u0000\u0000\u03fb\u172a"+ + "\u0001\u0000\u0000\u0000\u03fd\u1740\u0001\u0000\u0000\u0000\u03ff\u1752"+ + "\u0001\u0000\u0000\u0000\u0401\u175c\u0001\u0000\u0000\u0000\u0403\u1764"+ + "\u0001\u0000\u0000\u0000\u0405\u176b\u0001\u0000\u0000\u0000\u0407\u1771"+ + "\u0001\u0000\u0000\u0000\u0409\u1776\u0001\u0000\u0000\u0000\u040b\u177f"+ + "\u0001\u0000\u0000\u0000\u040d\u1786\u0001\u0000\u0000\u0000\u040f\u178e"+ + "\u0001\u0000\u0000\u0000\u0411\u179e\u0001\u0000\u0000\u0000\u0413\u17ab"+ + "\u0001\u0000\u0000\u0000\u0415\u17ba\u0001\u0000\u0000\u0000\u0417\u17be"+ + "\u0001\u0000\u0000\u0000\u0419\u17c8\u0001\u0000\u0000\u0000\u041b\u17d3"+ + "\u0001\u0000\u0000\u0000\u041d\u17d8\u0001\u0000\u0000\u0000\u041f\u17dd"+ + "\u0001\u0000\u0000\u0000\u0421\u17e7\u0001\u0000\u0000\u0000\u0423\u17ed"+ + "\u0001\u0000\u0000\u0000\u0425\u17f4\u0001\u0000\u0000\u0000\u0427\u1800"+ + "\u0001\u0000\u0000\u0000\u0429\u1806\u0001\u0000\u0000\u0000\u042b\u1814"+ + "\u0001\u0000\u0000\u0000\u042d\u181f\u0001\u0000\u0000\u0000\u042f\u182c"+ + "\u0001\u0000\u0000\u0000\u0431\u1833\u0001\u0000\u0000\u0000\u0433\u183a"+ + "\u0001\u0000\u0000\u0000\u0435\u1841\u0001\u0000\u0000\u0000\u0437\u1849"+ + "\u0001\u0000\u0000\u0000\u0439\u1852\u0001\u0000\u0000\u0000\u043b\u1859"+ + "\u0001\u0000\u0000\u0000\u043d\u185e\u0001\u0000\u0000\u0000\u043f\u1868"+ + "\u0001\u0000\u0000\u0000\u0441\u1871\u0001\u0000\u0000\u0000\u0443\u187b"+ + "\u0001\u0000\u0000\u0000\u0445\u1888\u0001\u0000\u0000\u0000\u0447\u1894"+ + "\u0001\u0000\u0000\u0000\u0449\u189c\u0001\u0000\u0000\u0000\u044b\u18a9"+ + "\u0001\u0000\u0000\u0000\u044d\u18ad\u0001\u0000\u0000\u0000\u044f\u18b3"+ + "\u0001\u0000\u0000\u0000\u0451\u18b8\u0001\u0000\u0000\u0000\u0453\u18be"+ + "\u0001\u0000\u0000\u0000\u0455\u18c3\u0001\u0000\u0000\u0000\u0457\u18cb"+ + "\u0001\u0000\u0000\u0000\u0459\u18d2\u0001\u0000\u0000\u0000\u045b\u18d7"+ + "\u0001\u0000\u0000\u0000\u045d\u18dc\u0001\u0000\u0000\u0000\u045f\u18e5"+ + "\u0001\u0000\u0000\u0000\u0461\u18ee\u0001\u0000\u0000\u0000\u0463\u18f3"+ + "\u0001\u0000\u0000\u0000\u0465\u18fa\u0001\u0000\u0000\u0000\u0467\u1900"+ + "\u0001\u0000\u0000\u0000\u0469\u1909\u0001\u0000\u0000\u0000\u046b\u1917"+ + "\u0001\u0000\u0000\u0000\u046d\u1924\u0001\u0000\u0000\u0000\u046f\u1928"+ + "\u0001\u0000\u0000\u0000\u0471\u1930\u0001\u0000\u0000\u0000\u0473\u1939"+ + "\u0001\u0000\u0000\u0000\u0475\u1946\u0001\u0000\u0000\u0000\u0477\u194f"+ + "\u0001\u0000\u0000\u0000\u0479\u195a\u0001\u0000\u0000\u0000\u047b\u195f"+ + "\u0001\u0000\u0000\u0000\u047d\u1966\u0001\u0000\u0000\u0000\u047f\u196c"+ + "\u0001\u0000\u0000\u0000\u0481\u1972\u0001\u0000\u0000\u0000\u0483\u197c"+ + "\u0001\u0000\u0000\u0000\u0485\u1983\u0001\u0000\u0000\u0000\u0487\u198e"+ + "\u0001\u0000\u0000\u0000\u0489\u1999\u0001\u0000\u0000\u0000\u048b\u19a5"+ + "\u0001\u0000\u0000\u0000\u048d\u19ab\u0001\u0000\u0000\u0000\u048f\u19b2"+ + "\u0001\u0000\u0000\u0000\u0491\u19ba\u0001\u0000\u0000\u0000\u0493\u19c1"+ + "\u0001\u0000\u0000\u0000\u0495\u19cb\u0001\u0000\u0000\u0000\u0497\u19d1"+ + "\u0001\u0000\u0000\u0000\u0499\u19e1\u0001\u0000\u0000\u0000\u049b\u19e9"+ + "\u0001\u0000\u0000\u0000\u049d\u19f5\u0001\u0000\u0000\u0000\u049f\u1a02"+ + "\u0001\u0000\u0000\u0000\u04a1\u1a0c\u0001\u0000\u0000\u0000\u04a3\u1a10"+ + "\u0001\u0000\u0000\u0000\u04a5\u1a1a\u0001\u0000\u0000\u0000\u04a7\u1a20"+ + "\u0001\u0000\u0000\u0000\u04a9\u1a27\u0001\u0000\u0000\u0000\u04ab\u1a33"+ + "\u0001\u0000\u0000\u0000\u04ad\u1a39\u0001\u0000\u0000\u0000\u04af\u1a44"+ + "\u0001\u0000\u0000\u0000\u04b1\u1a50\u0001\u0000\u0000\u0000\u04b3\u1a5b"+ + "\u0001\u0000\u0000\u0000\u04b5\u1a60\u0001\u0000\u0000\u0000\u04b7\u1a69"+ + "\u0001\u0000\u0000\u0000\u04b9\u1a73\u0001\u0000\u0000\u0000\u04bb\u1a7d"+ + "\u0001\u0000\u0000\u0000\u04bd\u1a82\u0001\u0000\u0000\u0000\u04bf\u1a87"+ + "\u0001\u0000\u0000\u0000\u04c1\u1a8c\u0001\u0000\u0000\u0000\u04c3\u1a91"+ + "\u0001\u0000\u0000\u0000\u04c5\u1a9b\u0001\u0000\u0000\u0000\u04c7\u1aa9"+ + "\u0001\u0000\u0000\u0000\u04c9\u1ab9\u0001\u0000\u0000\u0000\u04cb\u1ac0"+ + "\u0001\u0000\u0000\u0000\u04cd\u1ac3\u0001\u0000\u0000\u0000\u04cf\u1ac9"+ + "\u0001\u0000\u0000\u0000\u04d1\u1ad9\u0001\u0000\u0000\u0000\u04d3\u1ae2"+ + "\u0001\u0000\u0000\u0000\u04d5\u1aee\u0001\u0000\u0000\u0000\u04d7\u1b01"+ + "\u0001\u0000\u0000\u0000\u04d9\u1b18\u0001\u0000\u0000\u0000\u04db\u1b31"+ + "\u0001\u0000\u0000\u0000\u04dd\u1b3b\u0001\u0000\u0000\u0000\u04df\u1b46"+ + "\u0001\u0000\u0000\u0000\u04e1\u1b50\u0001\u0000\u0000\u0000\u04e3\u1b5c"+ + "\u0001\u0000\u0000\u0000\u04e5\u1b62\u0001\u0000\u0000\u0000\u04e7\u1b6a"+ + "\u0001\u0000\u0000\u0000\u04e9\u1b7a\u0001\u0000\u0000\u0000\u04eb\u1b87"+ + "\u0001\u0000\u0000\u0000\u04ed\u1b96\u0001\u0000\u0000\u0000\u04ef\u1b9b"+ + "\u0001\u0000\u0000\u0000\u04f1\u1ba0\u0001\u0000\u0000\u0000\u04f3\u1ba9"+ + "\u0001\u0000\u0000\u0000\u04f5\u1bb1\u0001\u0000\u0000\u0000\u04f7\u1bb6"+ + "\u0001\u0000\u0000\u0000\u04f9\u1bbe\u0001\u0000\u0000\u0000\u04fb\u1bc8"+ + "\u0001\u0000\u0000\u0000\u04fd\u1bd4\u0001\u0000\u0000\u0000\u04ff\u1bda"+ + "\u0001\u0000\u0000\u0000\u0501\u1be6\u0001\u0000\u0000\u0000\u0503\u1bec"+ + "\u0001\u0000\u0000\u0000\u0505\u1bf3\u0001\u0000\u0000\u0000\u0507\u1bfb"+ + "\u0001\u0000\u0000\u0000\u0509\u1c04\u0001\u0000\u0000\u0000\u050b\u1c0c"+ + "\u0001\u0000\u0000\u0000\u050d\u1c13\u0001\u0000\u0000\u0000\u050f\u1c19"+ + "\u0001\u0000\u0000\u0000\u0511\u1c20\u0001\u0000\u0000\u0000\u0513\u1c26"+ + "\u0001\u0000\u0000\u0000\u0515\u1c2c\u0001\u0000\u0000\u0000\u0517\u1c31"+ + "\u0001\u0000\u0000\u0000\u0519\u1c4b\u0001\u0000\u0000\u0000\u051b\u1c62"+ + "\u0001\u0000\u0000\u0000\u051d\u1c79\u0001\u0000\u0000\u0000\u051f\u1c92"+ + "\u0001\u0000\u0000\u0000\u0521\u1c98\u0001\u0000\u0000\u0000\u0523\u1c9f"+ + "\u0001\u0000\u0000\u0000\u0525\u1ca5\u0001\u0000\u0000\u0000\u0527\u1cae"+ + "\u0001\u0000\u0000\u0000\u0529\u1cb8\u0001\u0000\u0000\u0000\u052b\u1cbe"+ + "\u0001\u0000\u0000\u0000\u052d\u1cc5\u0001\u0000\u0000\u0000\u052f\u1ccd"+ + "\u0001\u0000\u0000\u0000\u0531\u1cd6\u0001\u0000\u0000\u0000\u0533\u1cde"+ + "\u0001\u0000\u0000\u0000\u0535\u1ce7\u0001\u0000\u0000\u0000\u0537\u1cf0"+ + "\u0001\u0000\u0000\u0000\u0539\u1cf8\u0001\u0000\u0000\u0000\u053b\u1d00"+ + "\u0001\u0000\u0000\u0000\u053d\u1d05\u0001\u0000\u0000\u0000\u053f\u1d0e"+ + "\u0001\u0000\u0000\u0000\u0541\u1d13\u0001\u0000\u0000\u0000\u0543\u1d1c"+ + "\u0001\u0000\u0000\u0000\u0545\u1d22\u0001\u0000\u0000\u0000\u0547\u1d2f"+ + "\u0001\u0000\u0000\u0000\u0549\u1d36\u0001\u0000\u0000\u0000\u054b\u1d3b"+ + "\u0001\u0000\u0000\u0000\u054d\u1d42\u0001\u0000\u0000\u0000\u054f\u1d4a"+ + "\u0001\u0000\u0000\u0000\u0551\u1d4f\u0001\u0000\u0000\u0000\u0553\u1d55"+ + "\u0001\u0000\u0000\u0000\u0555\u1d5a\u0001\u0000\u0000\u0000\u0557\u1d5f"+ + "\u0001\u0000\u0000\u0000\u0559\u1d63\u0001\u0000\u0000\u0000\u055b\u1d68"+ + "\u0001\u0000\u0000\u0000\u055d\u1d72\u0001\u0000\u0000\u0000\u055f\u1d7e"+ + "\u0001\u0000\u0000\u0000\u0561\u1d89\u0001\u0000\u0000\u0000\u0563\u1d96"+ + "\u0001\u0000\u0000\u0000\u0565\u1d9e\u0001\u0000\u0000\u0000\u0567\u1da8"+ + "\u0001\u0000\u0000\u0000\u0569\u1dae\u0001\u0000\u0000\u0000\u056b\u1db6"+ + "\u0001\u0000\u0000\u0000\u056d\u1dc2\u0001\u0000\u0000\u0000\u056f\u1dd0"+ + "\u0001\u0000\u0000\u0000\u0571\u1dda\u0001\u0000\u0000\u0000\u0573\u1de6"+ + "\u0001\u0000\u0000\u0000\u0575\u1dec\u0001\u0000\u0000\u0000\u0577\u1df2"+ + "\u0001\u0000\u0000\u0000\u0579\u1df9\u0001\u0000\u0000\u0000\u057b\u1e03"+ + "\u0001\u0000\u0000\u0000\u057d\u1e13\u0001\u0000\u0000\u0000\u057f\u1e1f"+ + "\u0001\u0000\u0000\u0000\u0581\u1e2a\u0001\u0000\u0000\u0000\u0583\u1e37"+ + "\u0001\u0000\u0000\u0000\u0585\u1e40\u0001\u0000\u0000\u0000\u0587\u1e47"+ + "\u0001\u0000\u0000\u0000\u0589\u1e50\u0001\u0000\u0000\u0000\u058b\u1e57"+ + "\u0001\u0000\u0000\u0000\u058d\u1e5f\u0001\u0000\u0000\u0000\u058f\u1e6a"+ + "\u0001\u0000\u0000\u0000\u0591\u1e7b\u0001\u0000\u0000\u0000\u0593\u1e85"+ + "\u0001\u0000\u0000\u0000\u0595\u1e8c\u0001\u0000\u0000\u0000\u0597\u1e95"+ + "\u0001\u0000\u0000\u0000\u0599\u1ea2\u0001\u0000\u0000\u0000\u059b\u1ea7"+ + "\u0001\u0000\u0000\u0000\u059d\u1eb2\u0001\u0000\u0000\u0000\u059f\u1eb9"+ + "\u0001\u0000\u0000\u0000\u05a1\u1ec2\u0001\u0000\u0000\u0000\u05a3\u1ec5"+ + "\u0001\u0000\u0000\u0000\u05a5\u1ecc\u0001\u0000\u0000\u0000\u05a7\u1ed7"+ + "\u0001\u0000\u0000\u0000\u05a9\u1ee0\u0001\u0000\u0000\u0000\u05ab\u1ee9"+ + "\u0001\u0000\u0000\u0000\u05ad\u1ef1\u0001\u0000\u0000\u0000\u05af\u1f03"+ + "\u0001\u0000\u0000\u0000\u05b1\u1f0f\u0001\u0000\u0000\u0000\u05b3\u1f15"+ + "\u0001\u0000\u0000\u0000\u05b5\u1f1d\u0001\u0000\u0000\u0000\u05b7\u1f24"+ + "\u0001\u0000\u0000\u0000\u05b9\u1f2a\u0001\u0000\u0000\u0000\u05bb\u1f2f"+ + "\u0001\u0000\u0000\u0000\u05bd\u1f34\u0001\u0000\u0000\u0000\u05bf\u1f3b"+ + "\u0001\u0000\u0000\u0000\u05c1\u1f3f\u0001\u0000\u0000\u0000\u05c3\u1f44"+ + "\u0001\u0000\u0000\u0000\u05c5\u1f51\u0001\u0000\u0000\u0000\u05c7\u1f58"+ + "\u0001\u0000\u0000\u0000\u05c9\u1f65\u0001\u0000\u0000\u0000\u05cb\u1f6d"+ + "\u0001\u0000\u0000\u0000\u05cd\u1f76\u0001\u0000\u0000\u0000\u05cf\u1f81"+ + "\u0001\u0000\u0000\u0000\u05d1\u1f89\u0001\u0000\u0000\u0000\u05d3\u1f90"+ + "\u0001\u0000\u0000\u0000\u05d5\u1f97\u0001\u0000\u0000\u0000\u05d7\u1f9e"+ + "\u0001\u0000\u0000\u0000\u05d9\u1fa5\u0001\u0000\u0000\u0000\u05db\u1fab"+ + "\u0001\u0000\u0000\u0000\u05dd\u1fb3\u0001\u0000\u0000\u0000\u05df\u1fbd"+ + "\u0001\u0000\u0000\u0000\u05e1\u1fc9\u0001\u0000\u0000\u0000\u05e3\u1fce"+ + "\u0001\u0000\u0000\u0000\u05e5\u1fd2\u0001\u0000\u0000\u0000\u05e7\u1fd8"+ + "\u0001\u0000\u0000\u0000\u05e9\u1fea\u0001\u0000\u0000\u0000\u05eb\u1fef"+ + "\u0001\u0000\u0000\u0000\u05ed\u1ff6\u0001\u0000\u0000\u0000\u05ef\u1ffd"+ + "\u0001\u0000\u0000\u0000\u05f1\u2004\u0001\u0000\u0000\u0000\u05f3\u2009"+ + "\u0001\u0000\u0000\u0000\u05f5\u200e\u0001\u0000\u0000\u0000\u05f7\u2013"+ + "\u0001\u0000\u0000\u0000\u05f9\u2018\u0001\u0000\u0000\u0000\u05fb\u201d"+ + "\u0001\u0000\u0000\u0000\u05fd\u2023\u0001\u0000\u0000\u0000\u05ff\u2028"+ + "\u0001\u0000\u0000\u0000\u0601\u202d\u0001\u0000\u0000\u0000\u0603\u2035"+ + "\u0001\u0000\u0000\u0000\u0605\u203e\u0001\u0000\u0000\u0000\u0607\u2044"+ + "\u0001\u0000\u0000\u0000\u0609\u204b\u0001\u0000\u0000\u0000\u060b\u2051"+ + "\u0001\u0000\u0000\u0000\u060d\u2059\u0001\u0000\u0000\u0000\u060f\u2061"+ + "\u0001\u0000\u0000\u0000\u0611\u2068\u0001\u0000\u0000\u0000\u0613\u2070"+ + "\u0001\u0000\u0000\u0000\u0615\u2078\u0001\u0000\u0000\u0000\u0617\u2080"+ + "\u0001\u0000\u0000\u0000\u0619\u208c\u0001\u0000\u0000\u0000\u061b\u2093"+ + "\u0001\u0000\u0000\u0000\u061d\u2098\u0001\u0000\u0000\u0000\u061f\u20a4"+ + "\u0001\u0000\u0000\u0000\u0621\u20ab\u0001\u0000\u0000\u0000\u0623\u20b3"+ + "\u0001\u0000\u0000\u0000\u0625\u20bc\u0001\u0000\u0000\u0000\u0627\u20ca"+ + "\u0001\u0000\u0000\u0000\u0629\u20cf\u0001\u0000\u0000\u0000\u062b\u20d6"+ + "\u0001\u0000\u0000\u0000\u062d\u20da\u0001\u0000\u0000\u0000\u062f\u20dc"+ + "\u0001\u0000\u0000\u0000\u0631\u20de\u0001\u0000\u0000\u0000\u0633\u20e1"+ + "\u0001\u0000\u0000\u0000\u0635\u20e3\u0001\u0000\u0000\u0000\u0637\u20e6"+ + "\u0001\u0000\u0000\u0000\u0639\u20e8\u0001\u0000\u0000\u0000\u063b\u20ea"+ + "\u0001\u0000\u0000\u0000\u063d\u20ec\u0001\u0000\u0000\u0000\u063f\u20ee"+ + "\u0001\u0000\u0000\u0000\u0641\u20f0\u0001\u0000\u0000\u0000\u0643\u20fa"+ + "\u0001\u0000\u0000\u0000\u0645\u20fe\u0001\u0000\u0000\u0000\u0647\u211a"+ + "\u0001\u0000\u0000\u0000\u0649\u2129\u0001\u0000\u0000\u0000\u064b\u212c"+ + "\u0001\u0000\u0000\u0000\u064d\u212e\u0001\u0000\u0000\u0000\u064f\u2130"+ + "\u0001\u0000\u0000\u0000\u0651\u2132\u0001\u0000\u0000\u0000\u0653\u2139"+ + "\u0001\u0000\u0000\u0000\u0655\u213f\u0001\u0000\u0000\u0000\u0657\u2146"+ + "\u0001\u0000\u0000\u0000\u0659\u2148\u0001\u0000\u0000\u0000\u065b\u214b"+ + "\u0001\u0000\u0000\u0000\u065d\u214e\u0001\u0000\u0000\u0000\u065f\u2151"+ + "\u0001\u0000\u0000\u0000\u0661\u2154\u0001\u0000\u0000\u0000\u0663\u2156"+ + "\u0001\u0000\u0000\u0000\u0665\u2158\u0001\u0000\u0000\u0000\u0667\u215b"+ + "\u0001\u0000\u0000\u0000\u0669\u215e\u0001\u0000\u0000\u0000\u066b\u2160"+ + "\u0001\u0000\u0000\u0000\u066d\u2162\u0001\u0000\u0000\u0000\u066f\u2165"+ + "\u0001\u0000\u0000\u0000\u0671\u2167\u0001\u0000\u0000\u0000\u0673\u216a"+ + "\u0001\u0000\u0000\u0000\u0675\u216d\u0001\u0000\u0000\u0000\u0677\u216f"+ + "\u0001\u0000\u0000\u0000\u0679\u2172\u0001\u0000\u0000\u0000\u067b\u2175"+ + "\u0001\u0000\u0000\u0000\u067d\u2179\u0001\u0000\u0000\u0000\u067f\u217c"+ + "\u0001\u0000\u0000\u0000\u0681\u217f\u0001\u0000\u0000\u0000\u0683\u2183"+ + "\u0001\u0000\u0000\u0000\u0685\u2187\u0001\u0000\u0000\u0000\u0687\u2189"+ + "\u0001\u0000\u0000\u0000\u0689\u218c\u0001\u0000\u0000\u0000\u068b\u218f"+ + "\u0001\u0000\u0000\u0000\u068d\u2192\u0001\u0000\u0000\u0000\u068f\u2195"+ + "\u0001\u0000\u0000\u0000\u0691\u2199\u0001\u0000\u0000\u0000\u0693\u219c"+ + "\u0001\u0000\u0000\u0000\u0695\u21a0\u0001\u0000\u0000\u0000\u0697\u21a4"+ + "\u0001\u0000\u0000\u0000\u0699\u21a6\u0001\u0000\u0000\u0000\u069b\u21a8"+ + "\u0001\u0000\u0000\u0000\u069d\u21aa\u0001\u0000\u0000\u0000\u069f\u21ad"+ + "\u0001\u0000\u0000\u0000\u06a1\u21b1\u0001\u0000\u0000\u0000\u06a3\u21b4"+ + "\u0001\u0000\u0000\u0000\u06a5\u21b6\u0001\u0000\u0000\u0000\u06a7\u21b8"+ + "\u0001\u0000\u0000\u0000\u06a9\u21bb\u0001\u0000\u0000\u0000\u06ab\u21be"+ + "\u0001\u0000\u0000\u0000\u06ad\u21c1\u0001\u0000\u0000\u0000\u06af\u21c4"+ + "\u0001\u0000\u0000\u0000\u06b1\u21c6\u0001\u0000\u0000\u0000\u06b3\u21c8"+ + "\u0001\u0000\u0000\u0000\u06b5\u21cb\u0001\u0000\u0000\u0000\u06b7\u21d0"+ + "\u0001\u0000\u0000\u0000\u06b9\u21d4\u0001\u0000\u0000\u0000\u06bb\u21d9"+ + "\u0001\u0000\u0000\u0000\u06bd\u21dd\u0001\u0000\u0000\u0000\u06bf\u21e0"+ + "\u0001\u0000\u0000\u0000\u06c1\u21e3\u0001\u0000\u0000\u0000\u06c3\u06c5"+ + "\u0007\u0000\u0000\u0000\u06c4\u06c3\u0001\u0000\u0000\u0000\u06c5\u06c6"+ + "\u0001\u0000\u0000\u0000\u06c6\u06c4\u0001\u0000\u0000\u0000\u06c6\u06c7"+ + "\u0001\u0000\u0000\u0000\u06c7\u06c8\u0001\u0000\u0000\u0000\u06c8\u06c9"+ + "\u0006\u0000\u0000\u0000\u06c9\u0002\u0001\u0000\u0000\u0000\u06ca\u06cb"+ + "\u0005/\u0000\u0000\u06cb\u06cc\u0005*\u0000\u0000\u06cc\u06d0\u0001\u0000"+ + "\u0000\u0000\u06cd\u06cf\t\u0000\u0000\u0000\u06ce\u06cd\u0001\u0000\u0000"+ + "\u0000\u06cf\u06d2\u0001\u0000\u0000\u0000\u06d0\u06d1\u0001\u0000\u0000"+ + "\u0000\u06d0\u06ce\u0001\u0000\u0000\u0000\u06d1\u06d3\u0001\u0000\u0000"+ + "\u0000\u06d2\u06d0\u0001\u0000\u0000\u0000\u06d3\u06d4\u0005*\u0000\u0000"+ + "\u06d4\u06d5\u0005/\u0000\u0000\u06d5\u06d6\u0001\u0000\u0000\u0000\u06d6"+ + "\u06d7\u0006\u0001\u0001\u0000\u06d7\u0004\u0001\u0000\u0000\u0000\u06d8"+ + "\u06d9\u0005-\u0000\u0000\u06d9\u06da\u0005-\u0000\u0000\u06da\u06de\u0001"+ + "\u0000\u0000\u0000\u06db\u06dd\t\u0000\u0000\u0000\u06dc\u06db\u0001\u0000"+ + "\u0000\u0000\u06dd\u06e0\u0001\u0000\u0000\u0000\u06de\u06df\u0001\u0000"+ + "\u0000\u0000\u06de\u06dc\u0001\u0000\u0000\u0000\u06df\u06e1\u0001\u0000"+ + "\u0000\u0000\u06e0\u06de\u0001\u0000\u0000\u0000\u06e1\u06e2\u0005\n\u0000"+ + "\u0000\u06e2\u06e3\u0001\u0000\u0000\u0000\u06e3\u06e4\u0006\u0002\u0001"+ + "\u0000\u06e4\u0006\u0001\u0000\u0000\u0000\u06e5\u06e6\u0007\u0001\u0000"+ + "\u0000\u06e6\b\u0001\u0000\u0000\u0000\u06e7\u06e8\u0007\u0002\u0000\u0000"+ + "\u06e8\n\u0001\u0000\u0000\u0000\u06e9\u06ea\u0007\u0003\u0000\u0000\u06ea"+ + "\f\u0001\u0000\u0000\u0000\u06eb\u06ec\u0007\u0004\u0000\u0000\u06ec\u000e"+ + "\u0001\u0000\u0000\u0000\u06ed\u06ee\u0007\u0005\u0000\u0000\u06ee\u0010"+ + "\u0001\u0000\u0000\u0000\u06ef\u06f0\u0007\u0006\u0000\u0000\u06f0\u0012"+ + "\u0001\u0000\u0000\u0000\u06f1\u06f2\u0007\u0007\u0000\u0000\u06f2\u0014"+ + "\u0001\u0000\u0000\u0000\u06f3\u06f4\u0007\b\u0000\u0000\u06f4\u0016\u0001"+ + "\u0000\u0000\u0000\u06f5\u06f6\u0007\t\u0000\u0000\u06f6\u0018\u0001\u0000"+ + "\u0000\u0000\u06f7\u06f8\u0007\n\u0000\u0000\u06f8\u001a\u0001\u0000\u0000"+ + "\u0000\u06f9\u06fa\u0007\u000b\u0000\u0000\u06fa\u001c\u0001\u0000\u0000"+ + "\u0000\u06fb\u06fc\u0007\f\u0000\u0000\u06fc\u001e\u0001\u0000\u0000\u0000"+ + "\u06fd\u06fe\u0007\r\u0000\u0000\u06fe \u0001\u0000\u0000\u0000\u06ff"+ + "\u0700\u0007\u000e\u0000\u0000\u0700\"\u0001\u0000\u0000\u0000\u0701\u0702"+ + "\u0007\u000f\u0000\u0000\u0702$\u0001\u0000\u0000\u0000\u0703\u0704\u0007"+ + "\u0010\u0000\u0000\u0704&\u0001\u0000\u0000\u0000\u0705\u0706\u0007\u0011"+ + "\u0000\u0000\u0706(\u0001\u0000\u0000\u0000\u0707\u0708\u0007\u0012\u0000"+ + "\u0000\u0708*\u0001\u0000\u0000\u0000\u0709\u070a\u0007\u0013\u0000\u0000"+ + "\u070a,\u0001\u0000\u0000\u0000\u070b\u070c\u0007\u0014\u0000\u0000\u070c"+ + ".\u0001\u0000\u0000\u0000\u070d\u070e\u0007\u0015\u0000\u0000\u070e0\u0001"+ + "\u0000\u0000\u0000\u070f\u0710\u0007\u0016\u0000\u0000\u07102\u0001\u0000"+ + "\u0000\u0000\u0711\u0712\u0007\u0017\u0000\u0000\u07124\u0001\u0000\u0000"+ + "\u0000\u0713\u0714\u0007\u0018\u0000\u0000\u07146\u0001\u0000\u0000\u0000"+ + "\u0715\u0716\u0007\u0019\u0000\u0000\u07168\u0001\u0000\u0000\u0000\u0717"+ + "\u0718\u0007\u001a\u0000\u0000\u0718:\u0001\u0000\u0000\u0000\u0719\u071a"+ + "\u0007\u001b\u0000\u0000\u071a<\u0001\u0000\u0000\u0000\u071b\u071c\u0007"+ + "\u001c\u0000\u0000\u071c>\u0001\u0000\u0000\u0000\u071d\u0725\u0005\""+ + "\u0000\u0000\u071e\u071f\u0005\\\u0000\u0000\u071f\u0724\t\u0000\u0000"+ + "\u0000\u0720\u0721\u0005\"\u0000\u0000\u0721\u0724\u0005\"\u0000\u0000"+ + "\u0722\u0724\b\u001d\u0000\u0000\u0723\u071e\u0001\u0000\u0000\u0000\u0723"+ + "\u0720\u0001\u0000\u0000\u0000\u0723\u0722\u0001\u0000\u0000\u0000\u0724"+ + "\u0727\u0001\u0000\u0000\u0000\u0725\u0723\u0001\u0000\u0000\u0000\u0725"+ + "\u0726\u0001\u0000\u0000\u0000\u0726\u0728\u0001\u0000\u0000\u0000\u0727"+ + "\u0725\u0001\u0000\u0000\u0000\u0728\u0729\u0005\"\u0000\u0000\u0729@"+ + "\u0001\u0000\u0000\u0000\u072a\u0732\u0005\'\u0000\u0000\u072b\u072c\u0005"+ + "\\\u0000\u0000\u072c\u0731\t\u0000\u0000\u0000\u072d\u072e\u0005\'\u0000"+ + "\u0000\u072e\u0731\u0005\'\u0000\u0000\u072f\u0731\b\u001e\u0000\u0000"+ + "\u0730\u072b\u0001\u0000\u0000\u0000\u0730\u072d\u0001\u0000\u0000\u0000"+ + "\u0730\u072f\u0001\u0000\u0000\u0000\u0731\u0734\u0001\u0000\u0000\u0000"+ + "\u0732\u0730\u0001\u0000\u0000\u0000\u0732\u0733\u0001\u0000\u0000\u0000"+ + "\u0733\u0735\u0001\u0000\u0000\u0000\u0734\u0732\u0001\u0000\u0000\u0000"+ + "\u0735\u0736\u0005\'\u0000\u0000\u0736B\u0001\u0000\u0000\u0000\u0737"+ + "\u073f\u0005`\u0000\u0000\u0738\u0739\u0005\\\u0000\u0000\u0739\u073e"+ + "\t\u0000\u0000\u0000\u073a\u073b\u0005`\u0000\u0000\u073b\u073e\u0005"+ + "`\u0000\u0000\u073c\u073e\b\u001f\u0000\u0000\u073d\u0738\u0001\u0000"+ + "\u0000\u0000\u073d\u073a\u0001\u0000\u0000\u0000\u073d\u073c\u0001\u0000"+ + "\u0000\u0000\u073e\u0741\u0001\u0000\u0000\u0000\u073f\u073d\u0001\u0000"+ + "\u0000\u0000\u073f\u0740\u0001\u0000\u0000\u0000\u0740\u0742\u0001\u0000"+ + "\u0000\u0000\u0741\u073f\u0001\u0000\u0000\u0000\u0742\u0743\u0005`\u0000"+ + "\u0000\u0743D\u0001\u0000\u0000\u0000\u0744\u0745\u0003\u0007\u0003\u0000"+ + "\u0745F\u0001\u0000\u0000\u0000\u0746\u0747\u0003\u0007\u0003\u0000\u0747"+ + "\u0748\u0003\t\u0004\u0000\u0748\u0749\u0003#\u0011\u0000\u0749\u074a"+ + "\u0003)\u0014\u0000\u074a\u074b\u0003-\u0016\u0000\u074bH\u0001\u0000"+ + "\u0000\u0000\u074c\u074d\u0003\u0007\u0003\u0000\u074d\u074e\u0003\t\u0004"+ + "\u0000\u074e\u074f\u0003+\u0015\u0000\u074fJ\u0001\u0000\u0000\u0000\u0750"+ + "\u0751\u0003\u0007\u0003\u0000\u0751\u0752\u0003\t\u0004\u0000\u0752\u0753"+ + "\u0003+\u0015\u0000\u0753\u0754\u0003#\u0011\u0000\u0754\u0755\u0003\u001d"+ + "\u000e\u0000\u0755\u0756\u0003/\u0017\u0000\u0756\u0757\u0003-\u0016\u0000"+ + "\u0757\u0758\u0003\u000f\u0007\u0000\u0758L\u0001\u0000\u0000\u0000\u0759"+ + "\u075a\u0003\u0007\u0003\u0000\u075a\u075b\u0003\u000b\u0005\u0000\u075b"+ + "\u075c\u0003\u000b\u0005\u0000\u075c\u075d\u0003\u000f\u0007\u0000\u075d"+ + "\u075e\u0003+\u0015\u0000\u075e\u075f\u0003+\u0015\u0000\u075fN\u0001"+ + "\u0000\u0000\u0000\u0760\u0761\u0003\u0007\u0003\u0000\u0761\u0762\u0003"+ + "\u000b\u0005\u0000\u0762\u0763\u0003-\u0016\u0000\u0763\u0764\u0003\u0017"+ + "\u000b\u0000\u0764\u0765\u0003#\u0011\u0000\u0765\u0766\u0003!\u0010\u0000"+ + "\u0766P\u0001\u0000\u0000\u0000\u0767\u0768\u0003\u0007\u0003\u0000\u0768"+ + "\u0769\u0003\r\u0006\u0000\u0769\u076a\u0003\u0007\u0003\u0000\u076aR"+ + "\u0001\u0000\u0000\u0000\u076b\u076c\u0003\u0007\u0003\u0000\u076c\u076d"+ + "\u0003\r\u0006\u0000\u076d\u076e\u0003\r\u0006\u0000\u076eT\u0001\u0000"+ + "\u0000\u0000\u076f\u0770\u0003\u0007\u0003\u0000\u0770\u0771\u0003\r\u0006"+ + "\u0000\u0771\u0772\u0003\u001f\u000f\u0000\u0772\u0773\u0003\u0017\u000b"+ + "\u0000\u0773\u0774\u0003!\u0010\u0000\u0774V\u0001\u0000\u0000\u0000\u0775"+ + "\u0776\u0003\u0007\u0003\u0000\u0776\u0777\u0003\u0011\b\u0000\u0777\u0778"+ + "\u0003-\u0016\u0000\u0778\u0779\u0003\u000f\u0007\u0000\u0779\u077a\u0003"+ + ")\u0014\u0000\u077aX\u0001\u0000\u0000\u0000\u077b\u077c\u0003\u0007\u0003"+ + "\u0000\u077c\u077d\u0003\u0013\t\u0000\u077d\u077e\u0003\u0013\t\u0000"+ + "\u077e\u077f\u0003)\u0014\u0000\u077f\u0780\u0003\u000f\u0007\u0000\u0780"+ + "\u0781\u0003\u0013\t\u0000\u0781\u0782\u0003\u0007\u0003\u0000\u0782\u0783"+ + "\u0003-\u0016\u0000\u0783\u0784\u0003\u000f\u0007\u0000\u0784Z\u0001\u0000"+ + "\u0000\u0000\u0785\u0786\u0003\u0007\u0003\u0000\u0786\u0787\u0003\u001d"+ + "\u000e\u0000\u0787\u0788\u0003\u0017\u000b\u0000\u0788\u0789\u0003\u0007"+ + "\u0003\u0000\u0789\u078a\u0003+\u0015\u0000\u078a\\\u0001\u0000\u0000"+ + "\u0000\u078b\u078c\u0003\u0007\u0003\u0000\u078c\u078d\u0003\u001d\u000e"+ + "\u0000\u078d\u078e\u0003\u001d\u000e\u0000\u078e^\u0001\u0000\u0000\u0000"+ + "\u078f\u0790\u0003\u0007\u0003\u0000\u0790\u0791\u0003\u001d\u000e\u0000"+ + "\u0791\u0792\u0003\u001d\u000e\u0000\u0792\u0793\u0003#\u0011\u0000\u0793"+ + "\u0794\u0003\u000b\u0005\u0000\u0794\u0795\u0003\u0007\u0003\u0000\u0795"+ + "\u0796\u0003-\u0016\u0000\u0796\u0797\u0003\u000f\u0007\u0000\u0797`\u0001"+ + "\u0000\u0000\u0000\u0798\u0799\u0003\u0007\u0003\u0000\u0799\u079a\u0003"+ + "\u001d\u000e\u0000\u079a\u079b\u0003+\u0015\u0000\u079b\u079c\u0003#\u0011"+ + "\u0000\u079cb\u0001\u0000\u0000\u0000\u079d\u079e\u0003\u0007\u0003\u0000"+ + "\u079e\u079f\u0003\u001d\u000e\u0000\u079f\u07a0\u0003-\u0016\u0000\u07a0"+ + "\u07a1\u0003\u000f\u0007\u0000\u07a1\u07a2\u0003)\u0014\u0000\u07a2d\u0001"+ + "\u0000\u0000\u0000\u07a3\u07a4\u0003\u0007\u0003\u0000\u07a4\u07a5\u0003"+ + "\u001d\u000e\u0000\u07a5\u07a6\u00033\u0019\u0000\u07a6\u07a7\u0003\u0007"+ + "\u0003\u0000\u07a7\u07a8\u00037\u001b\u0000\u07a8\u07a9\u0003+\u0015\u0000"+ + "\u07a9f\u0001\u0000\u0000\u0000\u07aa\u07ab\u0003\u0007\u0003\u0000\u07ab"+ + "\u07ac\u0003!\u0010\u0000\u07ac\u07ad\u0003\u0007\u0003\u0000\u07ad\u07ae"+ + "\u0003\u001d\u000e\u0000\u07ae\u07af\u00037\u001b\u0000\u07af\u07b0\u0003"+ + "+\u0015\u0000\u07b0\u07b1\u0003\u000f\u0007\u0000\u07b1h\u0001\u0000\u0000"+ + "\u0000\u07b2\u07b3\u0003\u0007\u0003\u0000\u07b3\u07b4\u0003!\u0010\u0000"+ + "\u07b4\u07b5\u0003\u0007\u0003\u0000\u07b5\u07b6\u0003\u001d\u000e\u0000"+ + "\u07b6\u07b7\u00037\u001b\u0000\u07b7\u07b8\u00039\u001c\u0000\u07b8\u07b9"+ + "\u0003\u000f\u0007\u0000\u07b9j\u0001\u0000\u0000\u0000\u07ba\u07bb\u0003"+ + "\u0007\u0003\u0000\u07bb\u07bc\u0003!\u0010\u0000\u07bc\u07bd\u0003\r"+ + "\u0006\u0000\u07bdl\u0001\u0000\u0000\u0000\u07be\u07bf\u0003\u0007\u0003"+ + "\u0000\u07bf\u07c0\u0003!\u0010\u0000\u07c0\u07c1\u00037\u001b\u0000\u07c1"+ + "n\u0001\u0000\u0000\u0000\u07c2\u07c3\u0003\u0007\u0003\u0000\u07c3\u07c4"+ + "\u0003)\u0014\u0000\u07c4\u07c5\u0003\u000f\u0007\u0000\u07c5p\u0001\u0000"+ + "\u0000\u0000\u07c6\u07c7\u0003\u0007\u0003\u0000\u07c7\u07c8\u0003)\u0014"+ + "\u0000\u07c8\u07c9\u0003)\u0014\u0000\u07c9\u07ca\u0003\u0007\u0003\u0000"+ + "\u07ca\u07cb\u00037\u001b\u0000\u07cbr\u0001\u0000\u0000\u0000\u07cc\u07cd"+ + "\u0003\u0007\u0003\u0000\u07cd\u07ce\u0003+\u0015\u0000\u07cet\u0001\u0000"+ + "\u0000\u0000\u07cf\u07d0\u0003\u0007\u0003\u0000\u07d0\u07d1\u0003+\u0015"+ + "\u0000\u07d1\u07d2\u0003\u000b\u0005\u0000\u07d2v\u0001\u0000\u0000\u0000"+ + "\u07d3\u07d4\u0003\u0007\u0003\u0000\u07d4\u07d5\u0003+\u0015\u0000\u07d5"+ + "\u07d6\u0003\u000f\u0007\u0000\u07d6\u07d7\u0003!\u0010\u0000\u07d7\u07d8"+ + "\u0003+\u0015\u0000\u07d8\u07d9\u0003\u0017\u000b\u0000\u07d9\u07da\u0003"+ + "-\u0016\u0000\u07da\u07db\u0003\u0017\u000b\u0000\u07db\u07dc\u00031\u0018"+ + "\u0000\u07dc\u07dd\u0003\u000f\u0007\u0000\u07ddx\u0001\u0000\u0000\u0000"+ + "\u07de\u07df\u0003\u0007\u0003\u0000\u07df\u07e0\u0003+\u0015\u0000\u07e0"+ + "\u07e1\u0003+\u0015\u0000\u07e1\u07e2\u0003\u000f\u0007\u0000\u07e2\u07e3"+ + "\u0003)\u0014\u0000\u07e3\u07e4\u0003-\u0016\u0000\u07e4\u07e5\u0003\u0017"+ + "\u000b\u0000\u07e5\u07e6\u0003#\u0011\u0000\u07e6\u07e7\u0003!\u0010\u0000"+ + "\u07e7z\u0001\u0000\u0000\u0000\u07e8\u07e9\u0003\u0007\u0003\u0000\u07e9"+ + "\u07ea\u0003+\u0015\u0000\u07ea\u07eb\u0003+\u0015\u0000\u07eb\u07ec\u0003"+ + "\u0017\u000b\u0000\u07ec\u07ed\u0003\u0013\t\u0000\u07ed\u07ee\u0003!"+ + "\u0010\u0000\u07ee\u07ef\u0003\u001f\u000f\u0000\u07ef\u07f0\u0003\u000f"+ + "\u0007\u0000\u07f0\u07f1\u0003!\u0010\u0000\u07f1\u07f2\u0003-\u0016\u0000"+ + "\u07f2|\u0001\u0000\u0000\u0000\u07f3\u07f4\u0003\u0007\u0003\u0000\u07f4"+ + "\u07f5\u0003+\u0015\u0000\u07f5\u07f6\u00037\u001b\u0000\u07f6\u07f7\u0003"+ + "\u001f\u000f\u0000\u07f7\u07f8\u0003\u001f\u000f\u0000\u07f8\u07f9\u0003"+ + "\u000f\u0007\u0000\u07f9\u07fa\u0003-\u0016\u0000\u07fa\u07fb\u0003)\u0014"+ + "\u0000\u07fb\u07fc\u0003\u0017\u000b\u0000\u07fc\u07fd\u0003\u000b\u0005"+ + "\u0000\u07fd~\u0001\u0000\u0000\u0000\u07fe\u07ff\u0003\u0007\u0003\u0000"+ + "\u07ff\u0800\u0003-\u0016\u0000\u0800\u0080\u0001\u0000\u0000\u0000\u0801"+ + "\u0802\u0003\u0007\u0003\u0000\u0802\u0803\u0003-\u0016\u0000\u0803\u0804"+ + "\u0003#\u0011\u0000\u0804\u0805\u0003\u001f\u000f\u0000\u0805\u0806\u0003"+ + "\u0017\u000b\u0000\u0806\u0807\u0003\u000b\u0005\u0000\u0807\u0082\u0001"+ + "\u0000\u0000\u0000\u0808\u0809\u0003\u0007\u0003\u0000\u0809\u080a\u0003"+ + "-\u0016\u0000\u080a\u080b\u0003-\u0016\u0000\u080b\u080c\u0003)\u0014"+ + "\u0000\u080c\u080d\u0003\u0017\u000b\u0000\u080d\u080e\u0003\t\u0004\u0000"+ + "\u080e\u080f\u0003/\u0017\u0000\u080f\u0810\u0003-\u0016\u0000\u0810\u0811"+ + "\u0003\u000f\u0007\u0000\u0811\u0084\u0001\u0000\u0000\u0000\u0812\u0813"+ + "\u0003\u0007\u0003\u0000\u0813\u0814\u0003-\u0016\u0000\u0814\u0815\u0003"+ + "-\u0016\u0000\u0815\u0816\u0003)\u0014\u0000\u0816\u0817\u0003\u0017\u000b"+ + "\u0000\u0817\u0818\u0003\t\u0004\u0000\u0818\u0819\u0003/\u0017\u0000"+ + "\u0819\u081a\u0003-\u0016\u0000\u081a\u081b\u0003\u000f\u0007\u0000\u081b"+ + "\u081c\u0003+\u0015\u0000\u081c\u0086\u0001\u0000\u0000\u0000\u081d\u081e"+ + "\u0003\u0007\u0003\u0000\u081e\u081f\u0003/\u0017\u0000\u081f\u0820\u0003"+ + "-\u0016\u0000\u0820\u0821\u0003\u0015\n\u0000\u0821\u0822\u0003#\u0011"+ + "\u0000\u0822\u0823\u0003)\u0014\u0000\u0823\u0824\u0003\u0017\u000b\u0000"+ + "\u0824\u0825\u00039\u001c\u0000\u0825\u0826\u0003\u0007\u0003\u0000\u0826"+ + "\u0827\u0003-\u0016\u0000\u0827\u0828\u0003\u0017\u000b\u0000\u0828\u0829"+ + "\u0003#\u0011\u0000\u0829\u082a\u0003!\u0010\u0000\u082a\u0088\u0001\u0000"+ + "\u0000\u0000\u082b\u082c\u0003\u0007\u0003\u0000\u082c\u082d\u00031\u0018"+ + "\u0000\u082d\u082e\u0003\u0013\t\u0000\u082e\u008a\u0001\u0000\u0000\u0000"+ + "\u082f\u0830\u0003\t\u0004\u0000\u0830\u0831\u0003\u0007\u0003\u0000\u0831"+ + "\u0832\u0003\u000b\u0005\u0000\u0832\u0833\u0003\u001b\r\u0000\u0833\u0834"+ + "\u00033\u0019\u0000\u0834\u0835\u0003\u0007\u0003\u0000\u0835\u0836\u0003"+ + ")\u0014\u0000\u0836\u0837\u0003\r\u0006\u0000\u0837\u008c\u0001\u0000"+ + "\u0000\u0000\u0838\u0839\u0003\t\u0004\u0000\u0839\u083a\u0003\u000f\u0007"+ + "\u0000\u083a\u083b\u0003\u0011\b\u0000\u083b\u083c\u0003#\u0011\u0000"+ + "\u083c\u083d\u0003)\u0014\u0000\u083d\u083e\u0003\u000f\u0007\u0000\u083e"+ + "\u008e\u0001\u0000\u0000\u0000\u083f\u0840\u0003\t\u0004\u0000\u0840\u0841"+ + "\u0003\u000f\u0007\u0000\u0841\u0842\u0003\u0013\t\u0000\u0842\u0843\u0003"+ + "\u0017\u000b\u0000\u0843\u0844\u0003!\u0010\u0000\u0844\u0090\u0001\u0000"+ + "\u0000\u0000\u0845\u0846\u0003\t\u0004\u0000\u0846\u0847\u0003\u000f\u0007"+ + "\u0000\u0847\u0848\u0003)\u0014\u0000\u0848\u0849\u0003!\u0010\u0000\u0849"+ + "\u084a\u0003#\u0011\u0000\u084a\u084b\u0003/\u0017\u0000\u084b\u084c\u0003"+ + "\u001d\u000e\u0000\u084c\u084d\u0003\u001d\u000e\u0000\u084d\u084e\u0003"+ + "\u0017\u000b\u0000\u084e\u0092\u0001\u0000\u0000\u0000\u084f\u0850\u0003"+ + "\t\u0004\u0000\u0850\u0851\u0003\u000f\u0007\u0000\u0851\u0852\u0003-"+ + "\u0016\u0000\u0852\u0853\u00033\u0019\u0000\u0853\u0854\u0003\u000f\u0007"+ + "\u0000\u0854\u0855\u0003\u000f\u0007\u0000\u0855\u0856\u0003!\u0010\u0000"+ + "\u0856\u0094\u0001\u0000\u0000\u0000\u0857\u0858\u0003\t\u0004\u0000\u0858"+ + "\u0859\u0003\u0017\u000b\u0000\u0859\u085a\u0003\u0013\t\u0000\u085a\u085b"+ + "\u0003\u0017\u000b\u0000\u085b\u085c\u0003!\u0010\u0000\u085c\u085d\u0003"+ + "-\u0016\u0000\u085d\u0096\u0001\u0000\u0000\u0000\u085e\u085f\u0003\t"+ + "\u0004\u0000\u085f\u0860\u0003\u0017\u000b\u0000\u0860\u0861\u0003!\u0010"+ + "\u0000\u0861\u0862\u0003\u0007\u0003\u0000\u0862\u0863\u0003)\u0014\u0000"+ + "\u0863\u0864\u00037\u001b\u0000\u0864\u0098\u0001\u0000\u0000\u0000\u0865"+ + "\u0866\u0003\t\u0004\u0000\u0866\u0867\u0003\u0017\u000b\u0000\u0867\u0868"+ + "\u0003-\u0016\u0000\u0868\u009a\u0001\u0000\u0000\u0000\u0869\u086a\u0003"+ + "\t\u0004\u0000\u086a\u086b\u0003\u0017\u000b\u0000\u086b\u086c\u0003-"+ + "\u0016\u0000\u086c\u086d\u0005_\u0000\u0000\u086d\u086e\u0003\u001d\u000e"+ + "\u0000\u086e\u086f\u0003\u000f\u0007\u0000\u086f\u0870\u0003!\u0010\u0000"+ + "\u0870\u0871\u0003\u0013\t\u0000\u0871\u0872\u0003-\u0016\u0000\u0872"+ + "\u0873\u0003\u0015\n\u0000\u0873\u009c\u0001\u0000\u0000\u0000\u0874\u0875"+ + "\u0003\t\u0004\u0000\u0875\u0876\u0003\u0017\u000b\u0000\u0876\u0877\u0003"+ + "-\u0016\u0000\u0877\u0878\u00031\u0018\u0000\u0878\u0879\u0003\u0007\u0003"+ + "\u0000\u0879\u087a\u0003)\u0014\u0000\u087a\u009e\u0001\u0000\u0000\u0000"+ + "\u087b\u087c\u0003\t\u0004\u0000\u087c\u087d\u0003\u001d\u000e\u0000\u087d"+ + "\u087e\u0003#\u0011\u0000\u087e\u087f\u0003\t\u0004\u0000\u087f\u00a0"+ + "\u0001\u0000\u0000\u0000\u0880\u0881\u0003\t\u0004\u0000\u0881\u0882\u0003"+ + "#\u0011\u0000\u0882\u0883\u0003#\u0011\u0000\u0883\u0884\u0003\u001d\u000e"+ + "\u0000\u0884\u0885\u0003\u000f\u0007\u0000\u0885\u0886\u0003\u0007\u0003"+ + "\u0000\u0886\u0887\u0003!\u0010\u0000\u0887\u00a2\u0001\u0000\u0000\u0000"+ + "\u0888\u0889\u0003\t\u0004\u0000\u0889\u088a\u0003#\u0011\u0000\u088a"+ + "\u088b\u0003-\u0016\u0000\u088b\u088c\u0003\u0015\n\u0000\u088c\u00a4"+ + "\u0001\u0000\u0000\u0000\u088d\u088e\u0003\t\u0004\u0000\u088e\u088f\u0003"+ + ")\u0014\u0000\u088f\u0890\u0003\u000f\u0007\u0000\u0890\u0891\u0003\u0007"+ + "\u0003\u0000\u0891\u0892\u0003\r\u0006\u0000\u0892\u0893\u0003-\u0016"+ + "\u0000\u0893\u0894\u0003\u0015\n\u0000\u0894\u00a6\u0001\u0000\u0000\u0000"+ + "\u0895\u0896\u0003\t\u0004\u0000\u0896\u0897\u0003/\u0017\u0000\u0897"+ + "\u0898\u0003\u0011\b\u0000\u0898\u0899\u0003\u0011\b\u0000\u0899\u089a"+ + "\u0003\u000f\u0007\u0000\u089a\u089b\u0003)\u0014\u0000\u089b\u089c\u0003"+ + "+\u0015\u0000\u089c\u00a8\u0001\u0000\u0000\u0000\u089d\u089e\u0003\t"+ + "\u0004\u0000\u089e\u089f\u00037\u001b\u0000\u089f\u00aa\u0001\u0000\u0000"+ + "\u0000\u08a0\u08a1\u0003\u000b\u0005\u0000\u08a1\u00ac\u0001\u0000\u0000"+ + "\u0000\u08a2\u08a3\u0003\u000b\u0005\u0000\u08a3\u08a4\u0003\u0007\u0003"+ + "\u0000\u08a4\u08a5\u0003\u000b\u0005\u0000\u08a5\u08a6\u0003\u0015\n\u0000"+ + "\u08a6\u08a7\u0003\u000f\u0007\u0000\u08a7\u00ae\u0001\u0000\u0000\u0000"+ + "\u08a8\u08a9\u0003\u000b\u0005\u0000\u08a9\u08aa\u0003\u0007\u0003\u0000"+ + "\u08aa\u08ab\u0003\u001d\u000e\u0000\u08ab\u08ac\u0003\u001d\u000e\u0000"+ + "\u08ac\u00b0\u0001\u0000\u0000\u0000\u08ad\u08ae\u0003\u000b\u0005\u0000"+ + "\u08ae\u08af\u0003\u0007\u0003\u0000\u08af\u08b0\u0003\u001d\u000e\u0000"+ + "\u08b0\u08b1\u0003\u001d\u000e\u0000\u08b1\u08b2\u0003\u000f\u0007\u0000"+ + "\u08b2\u08b3\u0003\r\u0006\u0000\u08b3\u00b2\u0001\u0000\u0000\u0000\u08b4"+ + "\u08b5\u0003\u000b\u0005\u0000\u08b5\u08b6\u0003\u0007\u0003\u0000\u08b6"+ + "\u08b7\u0003)\u0014\u0000\u08b7\u08b8\u0003\r\u0006\u0000\u08b8\u08b9"+ + "\u0003\u0017\u000b\u0000\u08b9\u08ba\u0003!\u0010\u0000\u08ba\u08bb\u0003"+ + "\u0007\u0003\u0000\u08bb\u08bc\u0003\u001d\u000e\u0000\u08bc\u08bd\u0003"+ + "\u0017\u000b\u0000\u08bd\u08be\u0003-\u0016\u0000\u08be\u08bf\u00037\u001b"+ + "\u0000\u08bf\u00b4\u0001\u0000\u0000\u0000\u08c0\u08c1\u0003\u000b\u0005"+ + "\u0000\u08c1\u08c2\u0003\u0007\u0003\u0000\u08c2\u08c3\u0003+\u0015\u0000"+ + "\u08c3\u08c4\u0003\u000b\u0005\u0000\u08c4\u08c5\u0003\u0007\u0003\u0000"+ + "\u08c5\u08c6\u0003\r\u0006\u0000\u08c6\u08c7\u0003\u000f\u0007\u0000\u08c7"+ + "\u00b6\u0001\u0000\u0000\u0000\u08c8\u08c9\u0003\u000b\u0005\u0000\u08c9"+ + "\u08ca\u0003\u0007\u0003\u0000\u08ca\u08cb\u0003+\u0015\u0000\u08cb\u08cc"+ + "\u0003\u000b\u0005\u0000\u08cc\u08cd\u0003\u0007\u0003\u0000\u08cd\u08ce"+ + "\u0003\r\u0006\u0000\u08ce\u08cf\u0003\u000f\u0007\u0000\u08cf\u08d0\u0003"+ + "\r\u0006\u0000\u08d0\u00b8\u0001\u0000\u0000\u0000\u08d1\u08d2\u0003\u000b"+ + "\u0005\u0000\u08d2\u08d3\u0003\u0007\u0003\u0000\u08d3\u08d4\u0003+\u0015"+ + "\u0000\u08d4\u08d5\u0003\u000f\u0007\u0000\u08d5\u00ba\u0001\u0000\u0000"+ + "\u0000\u08d6\u08d7\u0003\u000b\u0005\u0000\u08d7\u08d8\u0003\u0007\u0003"+ + "\u0000\u08d8\u08d9\u0003+\u0015\u0000\u08d9\u08da\u0003-\u0016\u0000\u08da"+ + "\u00bc\u0001\u0000\u0000\u0000\u08db\u08dc\u0003\u000b\u0005\u0000\u08dc"+ + "\u08dd\u0003\u0007\u0003\u0000\u08dd\u08de\u0003-\u0016\u0000\u08de\u08df"+ + "\u0003\u0007\u0003\u0000\u08df\u08e0\u0003\u001d\u000e\u0000\u08e0\u08e1"+ + "\u0003#\u0011\u0000\u08e1\u08e2\u0003\u0013\t\u0000\u08e2\u00be\u0001"+ + "\u0000\u0000\u0000\u08e3\u08e4\u0003\u000b\u0005\u0000\u08e4\u08e5\u0003"+ + "\u0007\u0003\u0000\u08e5\u08e6\u0003-\u0016\u0000\u08e6\u08e7\u0003\u0007"+ + "\u0003\u0000\u08e7\u08e8\u0003\u001d\u000e\u0000\u08e8\u08e9\u0003#\u0011"+ + "\u0000\u08e9\u08ea\u0003\u0013\t\u0000\u08ea\u08eb\u0005_\u0000\u0000"+ + "\u08eb\u08ec\u0003!\u0010\u0000\u08ec\u08ed\u0003\u0007\u0003\u0000\u08ed"+ + "\u08ee\u0003\u001f\u000f\u0000\u08ee\u08ef\u0003\u000f\u0007\u0000\u08ef"+ + "\u00c0\u0001\u0000\u0000\u0000\u08f0\u08f1\u0003\u000b\u0005\u0000\u08f1"+ + "\u08f2\u0003\u000f\u0007\u0000\u08f2\u08f3\u0003\u0017\u000b\u0000\u08f3"+ + "\u08f4\u0003\u001d\u000e\u0000\u08f4\u00c2\u0001\u0000\u0000\u0000\u08f5"+ + "\u08f6\u0003\u000b\u0005\u0000\u08f6\u08f7\u0003\u000f\u0007\u0000\u08f7"+ + "\u08f8\u0003\u0017\u000b\u0000\u08f8\u08f9\u0003\u001d\u000e\u0000\u08f9"+ + "\u08fa\u0003\u0017\u000b\u0000\u08fa\u08fb\u0003!\u0010\u0000\u08fb\u08fc"+ + "\u0003\u0013\t\u0000\u08fc\u00c4\u0001\u0000\u0000\u0000\u08fd\u08fe\u0003"+ + "\u000b\u0005\u0000\u08fe\u08ff\u0003\u0015\n\u0000\u08ff\u0900\u0003\u0007"+ + "\u0003\u0000\u0900\u0901\u0003\u0017\u000b\u0000\u0901\u0902\u0003!\u0010"+ + "\u0000\u0902\u00c6\u0001\u0000\u0000\u0000\u0903\u0904\u0003\u000b\u0005"+ + "\u0000\u0904\u0905\u0003\u0015\n\u0000\u0905\u0906\u0003\u0007\u0003\u0000"+ + "\u0906\u0907\u0003)\u0014\u0000\u0907\u00c8\u0001\u0000\u0000\u0000\u0908"+ + "\u0909\u0003\u000b\u0005\u0000\u0909\u090a\u0003\u0015\n\u0000\u090a\u090b"+ + "\u0003\u0007\u0003\u0000\u090b\u090c\u0003)\u0014\u0000\u090c\u090d\u0005"+ + "_\u0000\u0000\u090d\u090e\u0003\u001d\u000e\u0000\u090e\u090f\u0003\u000f"+ + "\u0007\u0000\u090f\u0910\u0003!\u0010\u0000\u0910\u0911\u0003\u0013\t"+ + "\u0000\u0911\u0912\u0003-\u0016\u0000\u0912\u0913\u0003\u0015\n\u0000"+ + "\u0913\u00ca\u0001\u0000\u0000\u0000\u0914\u0915\u0003\u000b\u0005\u0000"+ + "\u0915\u0916\u0003\u0015\n\u0000\u0916\u0917\u0003\u0007\u0003\u0000\u0917"+ + "\u0918\u0003)\u0014\u0000\u0918\u0919\u0003\u0007\u0003\u0000\u0919\u091a"+ + "\u0003\u000b\u0005\u0000\u091a\u091b\u0003-\u0016\u0000\u091b\u091c\u0003"+ + "\u000f\u0007\u0000\u091c\u091d\u0003)\u0014\u0000\u091d\u00cc\u0001\u0000"+ + "\u0000\u0000\u091e\u091f\u0003\u000b\u0005\u0000\u091f\u0920\u0003\u0015"+ + "\n\u0000\u0920\u0921\u0003\u0007\u0003\u0000\u0921\u0922\u0003)\u0014"+ + "\u0000\u0922\u0923\u0003\u0007\u0003\u0000\u0923\u0924\u0003\u000b\u0005"+ + "\u0000\u0924\u0925\u0003-\u0016\u0000\u0925\u0926\u0003\u000f\u0007\u0000"+ + "\u0926\u0927\u0003)\u0014\u0000\u0927\u0928\u0005_\u0000\u0000\u0928\u0929"+ + "\u0003\u001d\u000e\u0000\u0929\u092a\u0003\u000f\u0007\u0000\u092a\u092b"+ + "\u0003!\u0010\u0000\u092b\u092c\u0003\u0013\t\u0000\u092c\u092d\u0003"+ + "-\u0016\u0000\u092d\u092e\u0003\u0015\n\u0000\u092e\u00ce\u0001\u0000"+ + "\u0000\u0000\u092f\u0930\u0003\u000b\u0005\u0000\u0930\u0931\u0003\u0015"+ + "\n\u0000\u0931\u0932\u0003\u0007\u0003\u0000\u0932\u0933\u0003)\u0014"+ + "\u0000\u0933\u0934\u0003\u0007\u0003\u0000\u0934\u0935\u0003\u000b\u0005"+ + "\u0000\u0935\u0936\u0003-\u0016\u0000\u0936\u0937\u0003\u000f\u0007\u0000"+ + "\u0937\u0938\u0003)\u0014\u0000\u0938\u0939\u0005_\u0000\u0000\u0939\u093a"+ + "\u0003+\u0015\u0000\u093a\u093b\u0003\u000f\u0007\u0000\u093b\u093c\u0003"+ + "-\u0016\u0000\u093c\u093d\u0005_\u0000\u0000\u093d\u093e\u0003\u000b\u0005"+ + "\u0000\u093e\u093f\u0003\u0007\u0003\u0000\u093f\u0940\u0003-\u0016\u0000"+ + "\u0940\u0941\u0003\u0007\u0003\u0000\u0941\u0942\u0003\u001d\u000e\u0000"+ + "\u0942\u0943\u0003#\u0011\u0000\u0943\u0944\u0003\u0013\t\u0000\u0944"+ + "\u00d0\u0001\u0000\u0000\u0000\u0945\u0946\u0003\u000b\u0005\u0000\u0946"+ + "\u0947\u0003\u0015\n\u0000\u0947\u0948\u0003\u0007\u0003\u0000\u0948\u0949"+ + "\u0003)\u0014\u0000\u0949\u094a\u0003\u0007\u0003\u0000\u094a\u094b\u0003"+ + "\u000b\u0005\u0000\u094b\u094c\u0003-\u0016\u0000\u094c\u094d\u0003\u000f"+ + "\u0007\u0000\u094d\u094e\u0003)\u0014\u0000\u094e\u094f\u0005_\u0000\u0000"+ + "\u094f\u0950\u0003+\u0015\u0000\u0950\u0951\u0003\u000f\u0007\u0000\u0951"+ + "\u0952\u0003-\u0016\u0000\u0952\u0953\u0005_\u0000\u0000\u0953\u0954\u0003"+ + "!\u0010\u0000\u0954\u0955\u0003\u0007\u0003\u0000\u0955\u0956\u0003\u001f"+ + "\u000f\u0000\u0956\u0957\u0003\u000f\u0007\u0000\u0957\u00d2\u0001\u0000"+ + "\u0000\u0000\u0958\u0959\u0003\u000b\u0005\u0000\u0959\u095a\u0003\u0015"+ + "\n\u0000\u095a\u095b\u0003\u0007\u0003\u0000\u095b\u095c\u0003)\u0014"+ + "\u0000\u095c\u095d\u0003\u0007\u0003\u0000\u095d\u095e\u0003\u000b\u0005"+ + "\u0000\u095e\u095f\u0003-\u0016\u0000\u095f\u0960\u0003\u000f\u0007\u0000"+ + "\u0960\u0961\u0003)\u0014\u0000\u0961\u0962\u0005_\u0000\u0000\u0962\u0963"+ + "\u0003+\u0015\u0000\u0963\u0964\u0003\u000f\u0007\u0000\u0964\u0965\u0003"+ + "-\u0016\u0000\u0965\u0966\u0005_\u0000\u0000\u0966\u0967\u0003+\u0015"+ + "\u0000\u0967\u0968\u0003\u000b\u0005\u0000\u0968\u0969\u0003\u0015\n\u0000"+ + "\u0969\u096a\u0003\u000f\u0007\u0000\u096a\u096b\u0003\u001f\u000f\u0000"+ + "\u096b\u096c\u0003\u0007\u0003\u0000\u096c\u00d4\u0001\u0000\u0000\u0000"+ + "\u096d\u096e\u0003\u000b\u0005\u0000\u096e\u096f\u0003\u0015\n\u0000\u096f"+ + "\u0970\u0003\u0007\u0003\u0000\u0970\u0971\u0003)\u0014\u0000\u0971\u0972"+ + "\u0003\u0007\u0003\u0000\u0972\u0973\u0003\u000b\u0005\u0000\u0973\u0974"+ + "\u0003-\u0016\u0000\u0974\u0975\u0003\u000f\u0007\u0000\u0975\u0976\u0003"+ + ")\u0014\u0000\u0976\u0977\u0003\u0017\u000b\u0000\u0977\u0978\u0003+\u0015"+ + "\u0000\u0978\u0979\u0003-\u0016\u0000\u0979\u097a\u0003\u0017\u000b\u0000"+ + "\u097a\u097b\u0003\u000b\u0005\u0000\u097b\u097c\u0003+\u0015\u0000\u097c"+ + "\u00d6\u0001\u0000\u0000\u0000\u097d\u097e\u0003\u000b\u0005\u0000\u097e"+ + "\u097f\u0003\u0015\n\u0000\u097f\u0980\u0003\u0007\u0003\u0000\u0980\u0981"+ + "\u0003)\u0014\u0000\u0981\u0982\u0003\u0007\u0003\u0000\u0982\u0983\u0003"+ + "\u000b\u0005\u0000\u0983\u0984\u0003-\u0016\u0000\u0984\u0985\u0003\u000f"+ + "\u0007\u0000\u0985\u0986\u0003)\u0014\u0000\u0986\u0987\u0003+\u0015\u0000"+ + "\u0987\u00d8\u0001\u0000\u0000\u0000\u0988\u0989\u0003\u000b\u0005\u0000"+ + "\u0989\u098a\u0003\u0015\n\u0000\u098a\u098b\u0003\u000f\u0007\u0000\u098b"+ + "\u098c\u0003\u000b\u0005\u0000\u098c\u098d\u0003\u001b\r\u0000\u098d\u00da"+ + "\u0001\u0000\u0000\u0000\u098e\u098f\u0003\u000b\u0005\u0000\u098f\u0990"+ + "\u0003\u0015\n\u0000\u0990\u0991\u0003\u000f\u0007\u0000\u0991\u0992\u0003"+ + "\u000b\u0005\u0000\u0992\u0993\u0003\u001b\r\u0000\u0993\u0994\u0003\u000f"+ + "\u0007\u0000\u0994\u0995\u0003\r\u0006\u0000\u0995\u00dc\u0001\u0000\u0000"+ + "\u0000\u0996\u0997\u0003\u000b\u0005\u0000\u0997\u0998\u0003\u0015\n\u0000"+ + "\u0998\u0999\u0003\u000f\u0007\u0000\u0999\u099a\u0003\u000b\u0005\u0000"+ + "\u099a\u099b\u0003\u001b\r\u0000\u099b\u099c\u0003%\u0012\u0000\u099c"+ + "\u099d\u0003#\u0011\u0000\u099d\u099e\u0003\u0017\u000b\u0000\u099e\u099f"+ + "\u0003!\u0010\u0000\u099f\u09a0\u0003-\u0016\u0000\u09a0\u00de\u0001\u0000"+ + "\u0000\u0000\u09a1\u09a2\u0003\u000b\u0005\u0000\u09a2\u09a3\u0003\u001d"+ + "\u000e\u0000\u09a3\u09a4\u0003\u0007\u0003\u0000\u09a4\u09a5\u0003+\u0015"+ + "\u0000\u09a5\u09a6\u0003+\u0015\u0000\u09a6\u00e0\u0001\u0000\u0000\u0000"+ + "\u09a7\u09a8\u0003\u000b\u0005\u0000\u09a8\u09a9\u0003\u001d\u000e\u0000"+ + "\u09a9\u09aa\u0003\u0007\u0003\u0000\u09aa\u09ab\u0003+\u0015\u0000\u09ab"+ + "\u09ac\u0003+\u0015\u0000\u09ac\u09ad\u0005_\u0000\u0000\u09ad\u09ae\u0003"+ + "#\u0011\u0000\u09ae\u09af\u0003)\u0014\u0000\u09af\u09b0\u0003\u0017\u000b"+ + "\u0000\u09b0\u09b1\u0003\u0013\t\u0000\u09b1\u09b2\u0003\u0017\u000b\u0000"+ + "\u09b2\u09b3\u0003!\u0010\u0000\u09b3\u00e2\u0001\u0000\u0000\u0000\u09b4"+ + "\u09b5\u0003\u000b\u0005\u0000\u09b5\u09b6\u0003\u001d\u000e\u0000\u09b6"+ + "\u09b7\u0003#\u0011\u0000\u09b7\u09b8\u0003\t\u0004\u0000\u09b8\u00e4"+ + "\u0001\u0000\u0000\u0000\u09b9\u09ba\u0003\u000b\u0005\u0000\u09ba\u09bb"+ + "\u0003\u001d\u000e\u0000\u09bb\u09bc\u0003#\u0011\u0000\u09bc\u09bd\u0003"+ + "+\u0015\u0000\u09bd\u09be\u0003\u000f\u0007\u0000\u09be\u00e6\u0001\u0000"+ + "\u0000\u0000\u09bf\u09c0\u0003\u000b\u0005\u0000\u09c0\u09c1\u0003\u001d"+ + "\u000e\u0000\u09c1\u09c2\u0003/\u0017\u0000\u09c2\u09c3\u0003+\u0015\u0000"+ + "\u09c3\u09c4\u0003-\u0016\u0000\u09c4\u09c5\u0003\u000f\u0007\u0000\u09c5"+ + "\u09c6\u0003)\u0014\u0000\u09c6\u00e8\u0001\u0000\u0000\u0000\u09c7\u09c8"+ + "\u0003\u000b\u0005\u0000\u09c8\u09c9\u0003#\u0011\u0000\u09c9\u09ca\u0003"+ + "\u0007\u0003\u0000\u09ca\u09cb\u0003\u001d\u000e\u0000\u09cb\u09cc\u0003"+ + "\u000f\u0007\u0000\u09cc\u09cd\u0003+\u0015\u0000\u09cd\u09ce\u0003\u000b"+ + "\u0005\u0000\u09ce\u09cf\u0003\u000f\u0007\u0000\u09cf\u00ea\u0001\u0000"+ + "\u0000\u0000\u09d0\u09d1\u0003\u000b\u0005\u0000\u09d1\u09d2\u0003#\u0011"+ + "\u0000\u09d2\u09d3\u0003\t\u0004\u0000\u09d3\u09d4\u0003#\u0011\u0000"+ + "\u09d4\u09d5\u0003\u001d\u000e\u0000\u09d5\u00ec\u0001\u0000\u0000\u0000"+ + "\u09d6\u09d7\u0003\u000b\u0005\u0000\u09d7\u09d8\u0003#\u0011\u0000\u09d8"+ + "\u09d9\u0003\u001d\u000e\u0000\u09d9\u09da\u0003\u001d\u000e\u0000\u09da"+ + "\u09db\u0003\u0007\u0003\u0000\u09db\u09dc\u0003-\u0016\u0000\u09dc\u09dd"+ + "\u0003\u000f\u0007\u0000\u09dd\u00ee\u0001\u0000\u0000\u0000\u09de\u09df"+ + "\u0003\u000b\u0005\u0000\u09df\u09e0\u0003#\u0011\u0000\u09e0\u09e1\u0003"+ + "\u001d\u000e\u0000\u09e1\u09e2\u0003\u001d\u000e\u0000\u09e2\u09e3\u0003"+ + "\u0007\u0003\u0000\u09e3\u09e4\u0003-\u0016\u0000\u09e4\u09e5\u0003\u0017"+ + "\u000b\u0000\u09e5\u09e6\u0003#\u0011\u0000\u09e6\u09e7\u0003!\u0010\u0000"+ + "\u09e7\u00f0\u0001\u0000\u0000\u0000\u09e8\u09e9\u0003\u000b\u0005\u0000"+ + "\u09e9\u09ea\u0003#\u0011\u0000\u09ea\u09eb\u0003\u001d\u000e\u0000\u09eb"+ + "\u09ec\u0003\u001d\u000e\u0000\u09ec\u09ed\u0003\u0007\u0003\u0000\u09ed"+ + "\u09ee\u0003-\u0016\u0000\u09ee\u09ef\u0003\u0017\u000b\u0000\u09ef\u09f0"+ + "\u0003#\u0011\u0000\u09f0\u09f1\u0003!\u0010\u0000\u09f1\u09f2\u0005_"+ + "\u0000\u0000\u09f2\u09f3\u0003\u000b\u0005\u0000\u09f3\u09f4\u0003\u0007"+ + "\u0003\u0000\u09f4\u09f5\u0003-\u0016\u0000\u09f5\u09f6\u0003\u0007\u0003"+ + "\u0000\u09f6\u09f7\u0003\u001d\u000e\u0000\u09f7\u09f8\u0003#\u0011\u0000"+ + "\u09f8\u09f9\u0003\u0013\t\u0000\u09f9\u00f2\u0001\u0000\u0000\u0000\u09fa"+ + "\u09fb\u0003\u000b\u0005\u0000\u09fb\u09fc\u0003#\u0011\u0000\u09fc\u09fd"+ + "\u0003\u001d\u000e\u0000\u09fd\u09fe\u0003\u001d\u000e\u0000\u09fe\u09ff"+ + "\u0003\u0007\u0003\u0000\u09ff\u0a00\u0003-\u0016\u0000\u0a00\u0a01\u0003"+ + "\u0017\u000b\u0000\u0a01\u0a02\u0003#\u0011\u0000\u0a02\u0a03\u0003!\u0010"+ + "\u0000\u0a03\u0a04\u0005_\u0000\u0000\u0a04\u0a05\u0003!\u0010\u0000\u0a05"+ + "\u0a06\u0003\u0007\u0003\u0000\u0a06\u0a07\u0003\u001f\u000f\u0000\u0a07"+ + "\u0a08\u0003\u000f\u0007\u0000\u0a08\u00f4\u0001\u0000\u0000\u0000\u0a09"+ + "\u0a0a\u0003\u000b\u0005\u0000\u0a0a\u0a0b\u0003#\u0011\u0000\u0a0b\u0a0c"+ + "\u0003\u001d\u000e\u0000\u0a0c\u0a0d\u0003\u001d\u000e\u0000\u0a0d\u0a0e"+ + "\u0003\u0007\u0003\u0000\u0a0e\u0a0f\u0003-\u0016\u0000\u0a0f\u0a10\u0003"+ + "\u0017\u000b\u0000\u0a10\u0a11\u0003#\u0011\u0000\u0a11\u0a12\u0003!\u0010"+ + "\u0000\u0a12\u0a13\u0005_\u0000\u0000\u0a13\u0a14\u0003+\u0015\u0000\u0a14"+ + "\u0a15\u0003\u000b\u0005\u0000\u0a15\u0a16\u0003\u0015\n\u0000\u0a16\u0a17"+ + "\u0003\u000f\u0007\u0000\u0a17\u0a18\u0003\u001f\u000f\u0000\u0a18\u0a19"+ + "\u0003\u0007\u0003\u0000\u0a19\u00f6\u0001\u0000\u0000\u0000\u0a1a\u0a1b"+ + "\u0003\u000b\u0005\u0000\u0a1b\u0a1c\u0003#\u0011\u0000\u0a1c\u0a1d\u0003"+ + "\u001d\u000e\u0000\u0a1d\u0a1e\u0003\u001d\u000e\u0000\u0a1e\u0a1f\u0003"+ + "\u000f\u0007\u0000\u0a1f\u0a20\u0003\u000b\u0005\u0000\u0a20\u0a21\u0003"+ + "-\u0016\u0000\u0a21\u00f8\u0001\u0000\u0000\u0000\u0a22\u0a23\u0003\u000b"+ + "\u0005\u0000\u0a23\u0a24\u0003#\u0011\u0000\u0a24\u0a25\u0003\u001d\u000e"+ + "\u0000\u0a25\u0a26\u0003/\u0017\u0000\u0a26\u0a27\u0003\u001f\u000f\u0000"+ + "\u0a27\u0a28\u0003!\u0010\u0000\u0a28\u00fa\u0001\u0000\u0000\u0000\u0a29"+ + "\u0a2a\u0003\u000b\u0005\u0000\u0a2a\u0a2b\u0003#\u0011\u0000\u0a2b\u0a2c"+ + "\u0003\u001d\u000e\u0000\u0a2c\u0a2d\u0003/\u0017\u0000\u0a2d\u0a2e\u0003"+ + "\u001f\u000f\u0000\u0a2e\u0a2f\u0003!\u0010\u0000\u0a2f\u0a30\u0005_\u0000"+ + "\u0000\u0a30\u0a31\u0003!\u0010\u0000\u0a31\u0a32\u0003\u0007\u0003\u0000"+ + "\u0a32\u0a33\u0003\u001f\u000f\u0000\u0a33\u0a34\u0003\u000f\u0007\u0000"+ + "\u0a34\u00fc\u0001\u0000\u0000\u0000\u0a35\u0a36\u0003\u000b\u0005\u0000"+ + "\u0a36\u0a37\u0003#\u0011\u0000\u0a37\u0a38\u0003\u001f\u000f\u0000\u0a38"+ + "\u0a39\u0003\u001f\u000f\u0000\u0a39\u0a3a\u0003\u0007\u0003\u0000\u0a3a"+ + "\u0a3b\u0003!\u0010\u0000\u0a3b\u0a3c\u0003\r\u0006\u0000\u0a3c\u0a3d"+ + "\u0005_\u0000\u0000\u0a3d\u0a3e\u0003\u0011\b\u0000\u0a3e\u0a3f\u0003"+ + "/\u0017\u0000\u0a3f\u0a40\u0003!\u0010\u0000\u0a40\u0a41\u0003\u000b\u0005"+ + "\u0000\u0a41\u0a42\u0003-\u0016\u0000\u0a42\u0a43\u0003\u0017\u000b\u0000"+ + "\u0a43\u0a44\u0003#\u0011\u0000\u0a44\u0a45\u0003!\u0010\u0000\u0a45\u00fe"+ + "\u0001\u0000\u0000\u0000\u0a46\u0a47\u0003\u000b\u0005\u0000\u0a47\u0a48"+ + "\u0003#\u0011\u0000\u0a48\u0a49\u0003\u001f\u000f\u0000\u0a49\u0a4a\u0003"+ + "\u001f\u000f\u0000\u0a4a\u0a4b\u0003\u0007\u0003\u0000\u0a4b\u0a4c\u0003"+ + "!\u0010\u0000\u0a4c\u0a4d\u0003\r\u0006\u0000\u0a4d\u0a4e\u0005_\u0000"+ + "\u0000\u0a4e\u0a4f\u0003\u0011\b\u0000\u0a4f\u0a50\u0003/\u0017\u0000"+ + "\u0a50\u0a51\u0003!\u0010\u0000\u0a51\u0a52\u0003\u000b\u0005\u0000\u0a52"+ + "\u0a53\u0003-\u0016\u0000\u0a53\u0a54\u0003\u0017\u000b\u0000\u0a54\u0a55"+ + "\u0003#\u0011\u0000\u0a55\u0a56\u0003!\u0010\u0000\u0a56\u0a57\u0005_"+ + "\u0000\u0000\u0a57\u0a58\u0003\u000b\u0005\u0000\u0a58\u0a59\u0003#\u0011"+ + "\u0000\u0a59\u0a5a\u0003\r\u0006\u0000\u0a5a\u0a5b\u0003\u000f\u0007\u0000"+ + "\u0a5b\u0100\u0001\u0000\u0000\u0000\u0a5c\u0a5d\u0003\u000b\u0005\u0000"+ + "\u0a5d\u0a5e\u0003#\u0011\u0000\u0a5e\u0a5f\u0003\u001f\u000f\u0000\u0a5f"+ + "\u0a60\u0003\u001f\u000f\u0000\u0a60\u0a61\u0003\u000f\u0007\u0000\u0a61"+ + "\u0a62\u0003!\u0010\u0000\u0a62\u0a63\u0003-\u0016\u0000\u0a63\u0102\u0001"+ + "\u0000\u0000\u0000\u0a64\u0a65\u0003\u000b\u0005\u0000\u0a65\u0a66\u0003"+ + "#\u0011\u0000\u0a66\u0a67\u0003\u001f\u000f\u0000\u0a67\u0a68\u0003\u001f"+ + "\u000f\u0000\u0a68\u0a69\u0003\u0017\u000b\u0000\u0a69\u0a6a\u0003-\u0016"+ + "\u0000\u0a6a\u0104\u0001\u0000\u0000\u0000\u0a6b\u0a6c\u0003\u000b\u0005"+ + "\u0000\u0a6c\u0a6d\u0003#\u0011\u0000\u0a6d\u0a6e\u0003\u001f\u000f\u0000"+ + "\u0a6e\u0a6f\u0003\u001f\u000f\u0000\u0a6f\u0a70\u0003\u0017\u000b\u0000"+ + "\u0a70\u0a71\u0003-\u0016\u0000\u0a71\u0a72\u0003-\u0016\u0000\u0a72\u0a73"+ + "\u0003\u000f\u0007\u0000\u0a73\u0a74\u0003\r\u0006\u0000\u0a74\u0106\u0001"+ + "\u0000\u0000\u0000\u0a75\u0a76\u0003\u000b\u0005\u0000\u0a76\u0a77\u0003"+ + "#\u0011\u0000\u0a77\u0a78\u0003\u001f\u000f\u0000\u0a78\u0a79\u0003%\u0012"+ + "\u0000\u0a79\u0a7a\u0003\u001d\u000e\u0000\u0a7a\u0a7b\u0003\u000f\u0007"+ + "\u0000\u0a7b\u0a7c\u0003-\u0016\u0000\u0a7c\u0a7d\u0003\u0017\u000b\u0000"+ + "\u0a7d\u0a7e\u0003#\u0011\u0000\u0a7e\u0a7f\u0003!\u0010\u0000\u0a7f\u0108"+ + "\u0001\u0000\u0000\u0000\u0a80\u0a81\u0003\u000b\u0005\u0000\u0a81\u0a82"+ + "\u0003#\u0011\u0000\u0a82\u0a83\u0003!\u0010\u0000\u0a83\u0a84\u0003\r"+ + "\u0006\u0000\u0a84\u0a85\u0003\u0017\u000b\u0000\u0a85\u0a86\u0003-\u0016"+ + "\u0000\u0a86\u0a87\u0003\u0017\u000b\u0000\u0a87\u0a88\u0003#\u0011\u0000"+ + "\u0a88\u0a89\u0003!\u0010\u0000\u0a89\u010a\u0001\u0000\u0000\u0000\u0a8a"+ + "\u0a8b\u0003\u000b\u0005\u0000\u0a8b\u0a8c\u0003#\u0011\u0000\u0a8c\u0a8d"+ + "\u0003!\u0010\u0000\u0a8d\u0a8e\u0003\r\u0006\u0000\u0a8e\u0a8f\u0003"+ + "\u0017\u000b\u0000\u0a8f\u0a90\u0003-\u0016\u0000\u0a90\u0a91\u0003\u0017"+ + "\u000b\u0000\u0a91\u0a92\u0003#\u0011\u0000\u0a92\u0a93\u0003!\u0010\u0000"+ + "\u0a93\u0a94\u0005_\u0000\u0000\u0a94\u0a95\u0003!\u0010\u0000\u0a95\u0a96"+ + "\u0003/\u0017\u0000\u0a96\u0a97\u0003\u001f\u000f\u0000\u0a97\u0a98\u0003"+ + "\t\u0004\u0000\u0a98\u0a99\u0003\u000f\u0007\u0000\u0a99\u0a9a\u0003)"+ + "\u0014\u0000\u0a9a\u010c\u0001\u0000\u0000\u0000\u0a9b\u0a9c\u0003\u000b"+ + "\u0005\u0000\u0a9c\u0a9d\u0003#\u0011\u0000\u0a9d\u0a9e\u0003!\u0010\u0000"+ + "\u0a9e\u0a9f\u0003\u0011\b\u0000\u0a9f\u0aa0\u0003\u0017\u000b\u0000\u0aa0"+ + "\u0aa1\u0003\u0013\t\u0000\u0aa1\u0aa2\u0003/\u0017\u0000\u0aa2\u0aa3"+ + "\u0003)\u0014\u0000\u0aa3\u0aa4\u0003\u0007\u0003\u0000\u0aa4\u0aa5\u0003"+ + "-\u0016\u0000\u0aa5\u0aa6\u0003\u0017\u000b\u0000\u0aa6\u0aa7\u0003#\u0011"+ + "\u0000\u0aa7\u0aa8\u0003!\u0010\u0000\u0aa8\u010e\u0001\u0000\u0000\u0000"+ + "\u0aa9\u0aaa\u0003\u000b\u0005\u0000\u0aaa\u0aab\u0003#\u0011\u0000\u0aab"+ + "\u0aac\u0003!\u0010\u0000\u0aac\u0aad\u0003\u0011\b\u0000\u0aad\u0aae"+ + "\u0003\u001d\u000e\u0000\u0aae\u0aaf\u0003\u0017\u000b\u0000\u0aaf\u0ab0"+ + "\u0003\u000b\u0005\u0000\u0ab0\u0ab1\u0003-\u0016\u0000\u0ab1\u0110\u0001"+ + "\u0000\u0000\u0000\u0ab2\u0ab3\u0003\u000b\u0005\u0000\u0ab3\u0ab4\u0003"+ + "#\u0011\u0000\u0ab4\u0ab5\u0003!\u0010\u0000\u0ab5\u0ab6\u0003!\u0010"+ + "\u0000\u0ab6\u0ab7\u0003\u000f\u0007\u0000\u0ab7\u0ab8\u0003\u000b\u0005"+ + "\u0000\u0ab8\u0ab9\u0003-\u0016\u0000\u0ab9\u0112\u0001\u0000\u0000\u0000"+ + "\u0aba\u0abb\u0003\u000b\u0005\u0000\u0abb\u0abc\u0003#\u0011\u0000\u0abc"+ + "\u0abd\u0003!\u0010\u0000\u0abd\u0abe\u0003!\u0010\u0000\u0abe\u0abf\u0003"+ + "\u000f\u0007\u0000\u0abf\u0ac0\u0003\u000b\u0005\u0000\u0ac0\u0ac1\u0003"+ + "-\u0016\u0000\u0ac1\u0ac2\u0003\u0017\u000b\u0000\u0ac2\u0ac3\u0003#\u0011"+ + "\u0000\u0ac3\u0ac4\u0003!\u0010\u0000\u0ac4\u0114\u0001\u0000\u0000\u0000"+ + "\u0ac5\u0ac6\u0003\u000b\u0005\u0000\u0ac6\u0ac7\u0003#\u0011\u0000\u0ac7"+ + "\u0ac8\u0003!\u0010\u0000\u0ac8\u0ac9\u0003!\u0010\u0000\u0ac9\u0aca\u0003"+ + "\u000f\u0007\u0000\u0aca\u0acb\u0003\u000b\u0005\u0000\u0acb\u0acc\u0003"+ + "-\u0016\u0000\u0acc\u0acd\u0003\u0017\u000b\u0000\u0acd\u0ace\u0003#\u0011"+ + "\u0000\u0ace\u0acf\u0003!\u0010\u0000\u0acf\u0ad0\u0005_\u0000\u0000\u0ad0"+ + "\u0ad1\u0003!\u0010\u0000\u0ad1\u0ad2\u0003\u0007\u0003\u0000\u0ad2\u0ad3"+ + "\u0003\u001f\u000f\u0000\u0ad3\u0ad4\u0003\u000f\u0007\u0000\u0ad4\u0116"+ + "\u0001\u0000\u0000\u0000\u0ad5\u0ad6\u0003\u000b\u0005\u0000\u0ad6\u0ad7"+ + "\u0003#\u0011\u0000\u0ad7\u0ad8\u0003!\u0010\u0000\u0ad8\u0ad9\u0003+"+ + "\u0015\u0000\u0ad9\u0ada\u0003-\u0016\u0000\u0ada\u0adb\u0003)\u0014\u0000"+ + "\u0adb\u0adc\u0003\u0007\u0003\u0000\u0adc\u0add\u0003\u0017\u000b\u0000"+ + "\u0add\u0ade\u0003!\u0010\u0000\u0ade\u0adf\u0003-\u0016\u0000\u0adf\u0118"+ + "\u0001\u0000\u0000\u0000\u0ae0\u0ae1\u0003\u000b\u0005\u0000\u0ae1\u0ae2"+ + "\u0003#\u0011\u0000\u0ae2\u0ae3\u0003!\u0010\u0000\u0ae3\u0ae4\u0003+"+ + "\u0015\u0000\u0ae4\u0ae5\u0003-\u0016\u0000\u0ae5\u0ae6\u0003)\u0014\u0000"+ + "\u0ae6\u0ae7\u0003\u0007\u0003\u0000\u0ae7\u0ae8\u0003\u0017\u000b\u0000"+ + "\u0ae8\u0ae9\u0003!\u0010\u0000\u0ae9\u0aea\u0003-\u0016\u0000\u0aea\u0aeb"+ + "\u0005_\u0000\u0000\u0aeb\u0aec\u0003\u000b\u0005\u0000\u0aec\u0aed\u0003"+ + "\u0007\u0003\u0000\u0aed\u0aee\u0003-\u0016\u0000\u0aee\u0aef\u0003\u0007"+ + "\u0003\u0000\u0aef\u0af0\u0003\u001d\u000e\u0000\u0af0\u0af1\u0003#\u0011"+ + "\u0000\u0af1\u0af2\u0003\u0013\t\u0000\u0af2\u011a\u0001\u0000\u0000\u0000"+ + "\u0af3\u0af4\u0003\u000b\u0005\u0000\u0af4\u0af5\u0003#\u0011\u0000\u0af5"+ + "\u0af6\u0003!\u0010\u0000\u0af6\u0af7\u0003+\u0015\u0000\u0af7\u0af8\u0003"+ + "-\u0016\u0000\u0af8\u0af9\u0003)\u0014\u0000\u0af9\u0afa\u0003\u0007\u0003"+ + "\u0000\u0afa\u0afb\u0003\u0017\u000b\u0000\u0afb\u0afc\u0003!\u0010\u0000"+ + "\u0afc\u0afd\u0003-\u0016\u0000\u0afd\u0afe\u0005_\u0000\u0000\u0afe\u0aff"+ + "\u0003!\u0010\u0000\u0aff\u0b00\u0003\u0007\u0003\u0000\u0b00\u0b01\u0003"+ + "\u001f\u000f\u0000\u0b01\u0b02\u0003\u000f\u0007\u0000\u0b02\u011c\u0001"+ + "\u0000\u0000\u0000\u0b03\u0b04\u0003\u000b\u0005\u0000\u0b04\u0b05\u0003"+ + "#\u0011\u0000\u0b05\u0b06\u0003!\u0010\u0000\u0b06\u0b07\u0003+\u0015"+ + "\u0000\u0b07\u0b08\u0003-\u0016\u0000\u0b08\u0b09\u0003)\u0014\u0000\u0b09"+ + "\u0b0a\u0003\u0007\u0003\u0000\u0b0a\u0b0b\u0003\u0017\u000b\u0000\u0b0b"+ + "\u0b0c\u0003!\u0010\u0000\u0b0c\u0b0d\u0003-\u0016\u0000\u0b0d\u0b0e\u0005"+ + "_\u0000\u0000\u0b0e\u0b0f\u0003+\u0015\u0000\u0b0f\u0b10\u0003\u000b\u0005"+ + "\u0000\u0b10\u0b11\u0003\u0015\n\u0000\u0b11\u0b12\u0003\u000f\u0007\u0000"+ + "\u0b12\u0b13\u0003\u001f\u000f\u0000\u0b13\u0b14\u0003\u0007\u0003\u0000"+ + "\u0b14\u011e\u0001\u0000\u0000\u0000\u0b15\u0b16\u0003\u000b\u0005\u0000"+ + "\u0b16\u0b17\u0003#\u0011\u0000\u0b17\u0b18\u0003!\u0010\u0000\u0b18\u0b19"+ + "\u0003+\u0015\u0000\u0b19\u0b1a\u0003-\u0016\u0000\u0b1a\u0b1b\u0003)"+ + "\u0014\u0000\u0b1b\u0b1c\u0003\u0007\u0003\u0000\u0b1c\u0b1d\u0003\u0017"+ + "\u000b\u0000\u0b1d\u0b1e\u0003!\u0010\u0000\u0b1e\u0b1f\u0003-\u0016\u0000"+ + "\u0b1f\u0b20\u0003+\u0015\u0000\u0b20\u0120\u0001\u0000\u0000\u0000\u0b21"+ + "\u0b22\u0003\u000b\u0005\u0000\u0b22\u0b23\u0003#\u0011\u0000\u0b23\u0b24"+ + "\u0003!\u0010\u0000\u0b24\u0b25\u0003+\u0015\u0000\u0b25\u0b26\u0003-"+ + "\u0016\u0000\u0b26\u0b27\u0003)\u0014\u0000\u0b27\u0b28\u0003/\u0017\u0000"+ + "\u0b28\u0b29\u0003\u000b\u0005\u0000\u0b29\u0b2a\u0003-\u0016\u0000\u0b2a"+ + "\u0b2b\u0003#\u0011\u0000\u0b2b\u0b2c\u0003)\u0014\u0000\u0b2c\u0122\u0001"+ + "\u0000\u0000\u0000\u0b2d\u0b2e\u0003\u000b\u0005\u0000\u0b2e\u0b2f\u0003"+ + "#\u0011\u0000\u0b2f\u0b30\u0003!\u0010\u0000\u0b30\u0b31\u0003-\u0016"+ + "\u0000\u0b31\u0b32\u0003\u0007\u0003\u0000\u0b32\u0b33\u0003\u0017\u000b"+ + "\u0000\u0b33\u0b34\u0003!\u0010\u0000\u0b34\u0b35\u0003+\u0015\u0000\u0b35"+ + "\u0124\u0001\u0000\u0000\u0000\u0b36\u0b37\u0003\u000b\u0005\u0000\u0b37"+ + "\u0b38\u0003#\u0011\u0000\u0b38\u0b39\u0003!\u0010\u0000\u0b39\u0b3a\u0003"+ + "-\u0016\u0000\u0b3a\u0b3b\u0003\u0017\u000b\u0000\u0b3b\u0b3c\u0003!\u0010"+ + "\u0000\u0b3c\u0b3d\u0003/\u0017\u0000\u0b3d\u0b3e\u0003\u000f\u0007\u0000"+ + "\u0b3e\u0126\u0001\u0000\u0000\u0000\u0b3f\u0b40\u0003\u000b\u0005\u0000"+ + "\u0b40\u0b41\u0003#\u0011\u0000\u0b41\u0b42\u0003!\u0010\u0000\u0b42\u0b43"+ + "\u00031\u0018\u0000\u0b43\u0b44\u0003\u000f\u0007\u0000\u0b44\u0b45\u0003"+ + ")\u0014\u0000\u0b45\u0b46\u0003+\u0015\u0000\u0b46\u0b47\u0003\u0017\u000b"+ + "\u0000\u0b47\u0b48\u0003#\u0011\u0000\u0b48\u0b49\u0003!\u0010\u0000\u0b49"+ + "\u0128\u0001\u0000\u0000\u0000\u0b4a\u0b4b\u0003\u000b\u0005\u0000\u0b4b"+ + "\u0b4c\u0003#\u0011\u0000\u0b4c\u0b4d\u0003!\u0010\u0000\u0b4d\u0b4e\u0003"+ + "1\u0018\u0000\u0b4e\u0b4f\u0003\u000f\u0007\u0000\u0b4f\u0b50\u0003)\u0014"+ + "\u0000\u0b50\u0b51\u0003-\u0016\u0000\u0b51\u012a\u0001\u0000\u0000\u0000"+ + "\u0b52\u0b53\u0003\u000b\u0005\u0000\u0b53\u0b54\u0003#\u0011\u0000\u0b54"+ + "\u0b55\u0003%\u0012\u0000\u0b55\u0b56\u00037\u001b\u0000\u0b56\u012c\u0001"+ + "\u0000\u0000\u0000\u0b57\u0b58\u0003\u000b\u0005\u0000\u0b58\u0b59\u0003"+ + "#\u0011\u0000\u0b59\u0b5a\u0003)\u0014\u0000\u0b5a\u0b5b\u0003)\u0014"+ + "\u0000\u0b5b\u012e\u0001\u0000\u0000\u0000\u0b5c\u0b5d\u0003\u000b\u0005"+ + "\u0000\u0b5d\u0b5e\u0003#\u0011\u0000\u0b5e\u0b5f\u0003)\u0014\u0000\u0b5f"+ + "\u0b60\u0003)\u0014\u0000\u0b60\u0b61\u0003\u000f\u0007\u0000\u0b61\u0b62"+ + "\u0003+\u0015\u0000\u0b62\u0b63\u0003%\u0012\u0000\u0b63\u0b64\u0003#"+ + "\u0011\u0000\u0b64\u0b65\u0003!\u0010\u0000\u0b65\u0b66\u0003\r\u0006"+ + "\u0000\u0b66\u0b67\u0003\u0017\u000b\u0000\u0b67\u0b68\u0003!\u0010\u0000"+ + "\u0b68\u0b69\u0003\u0013\t\u0000\u0b69\u0130\u0001\u0000\u0000\u0000\u0b6a"+ + "\u0b6b\u0003\u000b\u0005\u0000\u0b6b\u0b6c\u0003#\u0011\u0000\u0b6c\u0b6d"+ + "\u0003+\u0015\u0000\u0b6d\u0b6e\u0003-\u0016\u0000\u0b6e\u0b6f\u0003+"+ + "\u0015\u0000\u0b6f\u0132\u0001\u0000\u0000\u0000\u0b70\u0b71\u0003\u000b"+ + "\u0005\u0000\u0b71\u0b72\u0003#\u0011\u0000\u0b72\u0b73\u0003/\u0017\u0000"+ + "\u0b73\u0b74\u0003!\u0010\u0000\u0b74\u0b75\u0003-\u0016\u0000\u0b75\u0134"+ + "\u0001\u0000\u0000\u0000\u0b76\u0b77\u0003\u000b\u0005\u0000\u0b77\u0b78"+ + "\u0003#\u0011\u0000\u0b78\u0b79\u00031\u0018\u0000\u0b79\u0b7a\u0003\u0007"+ + "\u0003\u0000\u0b7a\u0b7b\u0003)\u0014\u0000\u0b7b\u0b7c\u0005_\u0000\u0000"+ + "\u0b7c\u0b7d\u0003%\u0012\u0000\u0b7d\u0b7e\u0003#\u0011\u0000\u0b7e\u0b7f"+ + "\u0003%\u0012\u0000\u0b7f\u0136\u0001\u0000\u0000\u0000\u0b80\u0b81\u0003"+ + "\u000b\u0005\u0000\u0b81\u0b82\u0003#\u0011\u0000\u0b82\u0b83\u00031\u0018"+ + "\u0000\u0b83\u0b84\u0003\u0007\u0003\u0000\u0b84\u0b85\u0003)\u0014\u0000"+ + "\u0b85\u0b86\u0005_\u0000\u0000\u0b86\u0b87\u0003+\u0015\u0000\u0b87\u0b88"+ + "\u0003\u0007\u0003\u0000\u0b88\u0b89\u0003\u001f\u000f\u0000\u0b89\u0b8a"+ + "\u0003%\u0012\u0000\u0b8a\u0138\u0001\u0000\u0000\u0000\u0b8b\u0b8c\u0003"+ + "\u000b\u0005\u0000\u0b8c\u0b8d\u0003)\u0014\u0000\u0b8d\u0b8e\u0003\u000f"+ + "\u0007\u0000\u0b8e\u0b8f\u0003\u0007\u0003\u0000\u0b8f\u0b90\u0003-\u0016"+ + "\u0000\u0b90\u0b91\u0003\u000f\u0007\u0000\u0b91\u013a\u0001\u0000\u0000"+ + "\u0000\u0b92\u0b93\u0003\u000b\u0005\u0000\u0b93\u0b94\u0003)\u0014\u0000"+ + "\u0b94\u0b95\u0003\u000f\u0007\u0000\u0b95\u0b96\u0003\u0007\u0003\u0000"+ + "\u0b96\u0b97\u0003-\u0016\u0000\u0b97\u0b98\u0003\u000f\u0007\u0000\u0b98"+ + "\u0b99\u0003\r\u0006\u0000\u0b99\u0b9a\u0003\t\u0004\u0000\u0b9a\u013c"+ + "\u0001\u0000\u0000\u0000\u0b9b\u0b9c\u0003\u000b\u0005\u0000\u0b9c\u0b9d"+ + "\u0003)\u0014\u0000\u0b9d\u0b9e\u0003\u000f\u0007\u0000\u0b9e\u0b9f\u0003"+ + "\u0007\u0003\u0000\u0b9f\u0ba0\u0003-\u0016\u0000\u0ba0\u0ba1\u0003\u000f"+ + "\u0007\u0000\u0ba1\u0ba2\u0003/\u0017\u0000\u0ba2\u0ba3\u0003+\u0015\u0000"+ + "\u0ba3\u0ba4\u0003\u000f\u0007\u0000\u0ba4\u0ba5\u0003)\u0014\u0000\u0ba5"+ + "\u013e\u0001\u0000\u0000\u0000\u0ba6\u0ba7\u0003\u000b\u0005\u0000\u0ba7"+ + "\u0ba8\u0003)\u0014\u0000\u0ba8\u0ba9\u0003#\u0011\u0000\u0ba9\u0baa\u0003"+ + "+\u0015\u0000\u0baa\u0bab\u0003+\u0015\u0000\u0bab\u0140\u0001\u0000\u0000"+ + "\u0000\u0bac\u0bad\u0003\u000b\u0005\u0000\u0bad\u0bae\u0003+\u0015\u0000"+ + "\u0bae\u0baf\u00031\u0018\u0000\u0baf\u0142\u0001\u0000\u0000\u0000\u0bb0"+ + "\u0bb1\u0003\u000b\u0005\u0000\u0bb1\u0bb2\u0003/\u0017\u0000\u0bb2\u0bb3"+ + "\u0003\t\u0004\u0000\u0bb3\u0bb4\u0003\u000f\u0007\u0000\u0bb4\u0144\u0001"+ + "\u0000\u0000\u0000\u0bb5\u0bb6\u0003\u000b\u0005\u0000\u0bb6\u0bb7\u0003"+ + "/\u0017\u0000\u0bb7\u0bb8\u0003\u001f\u000f\u0000\u0bb8\u0bb9\u0003\u000f"+ + "\u0007\u0000\u0bb9\u0bba\u0005_\u0000\u0000\u0bba\u0bbb\u0003\r\u0006"+ + "\u0000\u0bbb\u0bbc\u0003\u0017\u000b\u0000\u0bbc\u0bbd\u0003+\u0015\u0000"+ + "\u0bbd\u0bbe\u0003-\u0016\u0000\u0bbe\u0146\u0001\u0000\u0000\u0000\u0bbf"+ + "\u0bc0\u0003\u000b\u0005\u0000\u0bc0\u0bc1\u0003/\u0017\u0000\u0bc1\u0bc2"+ + "\u0003)\u0014\u0000\u0bc2\u0bc3\u0003)\u0014\u0000\u0bc3\u0bc4\u0003\u000f"+ + "\u0007\u0000\u0bc4\u0bc5\u0003!\u0010\u0000\u0bc5\u0bc6\u0003-\u0016\u0000"+ + "\u0bc6\u0148\u0001\u0000\u0000\u0000\u0bc7\u0bc8\u0003\u000b\u0005\u0000"+ + "\u0bc8\u0bc9\u0003/\u0017\u0000\u0bc9\u0bca\u0003)\u0014\u0000\u0bca\u0bcb"+ + "\u0003)\u0014\u0000\u0bcb\u0bcc\u0003\u000f\u0007\u0000\u0bcc\u0bcd\u0003"+ + "!\u0010\u0000\u0bcd\u0bce\u0003-\u0016\u0000\u0bce\u0bcf\u0005_\u0000"+ + "\u0000\u0bcf\u0bd0\u0003\r\u0006\u0000\u0bd0\u0bd1\u0003\u0007\u0003\u0000"+ + "\u0bd1\u0bd2\u0003-\u0016\u0000\u0bd2\u0bd3\u0003\u000f\u0007\u0000\u0bd3"+ + "\u014a\u0001\u0000\u0000\u0000\u0bd4\u0bd5\u0003\u000b\u0005\u0000\u0bd5"+ + "\u0bd6\u0003/\u0017\u0000\u0bd6\u0bd7\u0003)\u0014\u0000\u0bd7\u0bd8\u0003"+ + ")\u0014\u0000\u0bd8\u0bd9\u0003\u000f\u0007\u0000\u0bd9\u0bda\u0003!\u0010"+ + "\u0000\u0bda\u0bdb\u0003-\u0016\u0000\u0bdb\u0bdc\u0005_\u0000\u0000\u0bdc"+ + "\u0bdd\u0003\r\u0006\u0000\u0bdd\u0bde\u0003\u000f\u0007\u0000\u0bde\u0bdf"+ + "\u0003\u0011\b\u0000\u0bdf\u0be0\u0003\u0007\u0003\u0000\u0be0\u0be1\u0003"+ + "/\u0017\u0000\u0be1\u0be2\u0003\u001d\u000e\u0000\u0be2\u0be3\u0003-\u0016"+ + "\u0000\u0be3\u0be4\u0005_\u0000\u0000\u0be4\u0be5\u0003-\u0016\u0000\u0be5"+ + "\u0be6\u0003)\u0014\u0000\u0be6\u0be7\u0003\u0007\u0003\u0000\u0be7\u0be8"+ + "\u0003!\u0010\u0000\u0be8\u0be9\u0003+\u0015\u0000\u0be9\u0bea\u0003\u0011"+ + "\b\u0000\u0bea\u0beb\u0003#\u0011\u0000\u0beb\u0bec\u0003)\u0014\u0000"+ + "\u0bec\u0bed\u0003\u001f\u000f\u0000\u0bed\u0bee\u0005_\u0000\u0000\u0bee"+ + "\u0bef\u0003\u0013\t\u0000\u0bef\u0bf0\u0003)\u0014\u0000\u0bf0\u0bf1"+ + "\u0003#\u0011\u0000\u0bf1\u0bf2\u0003/\u0017\u0000\u0bf2\u0bf3\u0003%"+ + "\u0012\u0000\u0bf3\u014c\u0001\u0000\u0000\u0000\u0bf4\u0bf5\u0003\u000b"+ + "\u0005\u0000\u0bf5\u0bf6\u0003/\u0017\u0000\u0bf6\u0bf7\u0003)\u0014\u0000"+ + "\u0bf7\u0bf8\u0003)\u0014\u0000\u0bf8\u0bf9\u0003\u000f\u0007\u0000\u0bf9"+ + "\u0bfa\u0003!\u0010\u0000\u0bfa\u0bfb\u0003-\u0016\u0000\u0bfb\u0bfc\u0005"+ + "_\u0000\u0000\u0bfc\u0bfd\u0003%\u0012\u0000\u0bfd\u0bfe\u0003\u0007\u0003"+ + "\u0000\u0bfe\u0bff\u0003-\u0016\u0000\u0bff\u0c00\u0003\u0015\n\u0000"+ + "\u0c00\u014e\u0001\u0000\u0000\u0000\u0c01\u0c02\u0003\u000b\u0005\u0000"+ + "\u0c02\u0c03\u0003/\u0017\u0000\u0c03\u0c04\u0003)\u0014\u0000\u0c04\u0c05"+ + "\u0003)\u0014\u0000\u0c05\u0c06\u0003\u000f\u0007\u0000\u0c06\u0c07\u0003"+ + "!\u0010\u0000\u0c07\u0c08\u0003-\u0016\u0000\u0c08\u0c09\u0005_\u0000"+ + "\u0000\u0c09\u0c0a\u0003)\u0014\u0000\u0c0a\u0c0b\u0003#\u0011\u0000\u0c0b"+ + "\u0c0c\u0003\u001d\u000e\u0000\u0c0c\u0c0d\u0003\u000f\u0007\u0000\u0c0d"+ + "\u0150\u0001\u0000\u0000\u0000\u0c0e\u0c0f\u0003\u000b\u0005\u0000\u0c0f"+ + "\u0c10\u0003/\u0017\u0000\u0c10\u0c11\u0003)\u0014\u0000\u0c11\u0c12\u0003"+ + ")\u0014\u0000\u0c12\u0c13\u0003\u000f\u0007\u0000\u0c13\u0c14\u0003!\u0010"+ + "\u0000\u0c14\u0c15\u0003-\u0016\u0000\u0c15\u0c16\u0005_\u0000\u0000\u0c16"+ + "\u0c17\u0003-\u0016\u0000\u0c17\u0c18\u0003\u0017\u000b\u0000\u0c18\u0c19"+ + "\u0003\u001f\u000f\u0000\u0c19\u0c1a\u0003\u000f\u0007\u0000\u0c1a\u0152"+ + "\u0001\u0000\u0000\u0000\u0c1b\u0c1c\u0003\u000b\u0005\u0000\u0c1c\u0c1d"+ + "\u0003/\u0017\u0000\u0c1d\u0c1e\u0003)\u0014\u0000\u0c1e\u0c1f\u0003)"+ + "\u0014\u0000\u0c1f\u0c20\u0003\u000f\u0007\u0000\u0c20\u0c21\u0003!\u0010"+ + "\u0000\u0c21\u0c22\u0003-\u0016\u0000\u0c22\u0c23\u0005_\u0000\u0000\u0c23"+ + "\u0c24\u0003-\u0016\u0000\u0c24\u0c25\u0003\u0017\u000b\u0000\u0c25\u0c26"+ + "\u0003\u001f\u000f\u0000\u0c26\u0c27\u0003\u000f\u0007\u0000\u0c27\u0c28"+ + "\u0003+\u0015\u0000\u0c28\u0c29\u0003-\u0016\u0000\u0c29\u0c2a\u0003\u0007"+ + "\u0003\u0000\u0c2a\u0c2b\u0003\u001f\u000f\u0000\u0c2b\u0c2c\u0003%\u0012"+ + "\u0000\u0c2c\u0154\u0001\u0000\u0000\u0000\u0c2d\u0c2e\u0003\u000b\u0005"+ + "\u0000\u0c2e\u0c2f\u0003/\u0017\u0000\u0c2f\u0c30\u0003)\u0014\u0000\u0c30"+ + "\u0c31\u0003)\u0014\u0000\u0c31\u0c32\u0003\u000f\u0007\u0000\u0c32\u0c33"+ + "\u0003!\u0010\u0000\u0c33\u0c34\u0003-\u0016\u0000\u0c34\u0c35\u0005_"+ + "\u0000\u0000\u0c35\u0c36\u0003-\u0016\u0000\u0c36\u0c37\u0003)\u0014\u0000"+ + "\u0c37\u0c38\u0003\u0007\u0003\u0000\u0c38\u0c39\u0003!\u0010\u0000\u0c39"+ + "\u0c3a\u0003+\u0015\u0000\u0c3a\u0c3b\u0003\u0011\b\u0000\u0c3b\u0c3c"+ + "\u0003#\u0011\u0000\u0c3c\u0c3d\u0003)\u0014\u0000\u0c3d\u0c3e\u0003\u001f"+ + "\u000f\u0000\u0c3e\u0c3f\u0005_\u0000\u0000\u0c3f\u0c40\u0003\u0013\t"+ + "\u0000\u0c40\u0c41\u0003)\u0014\u0000\u0c41\u0c42\u0003#\u0011\u0000\u0c42"+ + "\u0c43\u0003/\u0017\u0000\u0c43\u0c44\u0003%\u0012\u0000\u0c44\u0c45\u0005"+ + "_\u0000\u0000\u0c45\u0c46\u0003\u0011\b\u0000\u0c46\u0c47\u0003#\u0011"+ + "\u0000\u0c47\u0c48\u0003)\u0014\u0000\u0c48\u0c49\u0005_\u0000\u0000\u0c49"+ + "\u0c4a\u0003-\u0016\u0000\u0c4a\u0c4b\u00037\u001b\u0000\u0c4b\u0c4c\u0003"+ + "%\u0012\u0000\u0c4c\u0c4d\u0003\u000f\u0007\u0000\u0c4d\u0156\u0001\u0000"+ + "\u0000\u0000\u0c4e\u0c4f\u0003\u000b\u0005\u0000\u0c4f\u0c50\u0003/\u0017"+ + "\u0000\u0c50\u0c51\u0003)\u0014\u0000\u0c51\u0c52\u0003)\u0014\u0000\u0c52"+ + "\u0c53\u0003\u000f\u0007\u0000\u0c53\u0c54\u0003!\u0010\u0000\u0c54\u0c55"+ + "\u0003-\u0016\u0000\u0c55\u0c56\u0005_\u0000\u0000\u0c56\u0c57\u0003/"+ + "\u0017\u0000\u0c57\u0c58\u0003+\u0015\u0000\u0c58\u0c59\u0003\u000f\u0007"+ + "\u0000\u0c59\u0c5a\u0003)\u0014\u0000\u0c5a\u0158\u0001\u0000\u0000\u0000"+ + "\u0c5b\u0c5c\u0003\u000b\u0005\u0000\u0c5c\u0c5d\u0003/\u0017\u0000\u0c5d"+ + "\u0c5e\u0003)\u0014\u0000\u0c5e\u0c5f\u0003+\u0015\u0000\u0c5f\u0c60\u0003"+ + "#\u0011\u0000\u0c60\u0c61\u0003)\u0014\u0000\u0c61\u015a\u0001\u0000\u0000"+ + "\u0000\u0c62\u0c63\u0003\u000b\u0005\u0000\u0c63\u0c64\u0003/\u0017\u0000"+ + "\u0c64\u0c65\u0003)\u0014\u0000\u0c65\u0c66\u0003+\u0015\u0000\u0c66\u0c67"+ + "\u0003#\u0011\u0000\u0c67\u0c68\u0003)\u0014\u0000\u0c68\u0c69\u0005_"+ + "\u0000\u0000\u0c69\u0c6a\u0003!\u0010\u0000\u0c6a\u0c6b\u0003\u0007\u0003"+ + "\u0000\u0c6b\u0c6c\u0003\u001f\u000f\u0000\u0c6c\u0c6d\u0003\u000f\u0007"+ + "\u0000\u0c6d\u015c\u0001\u0000\u0000\u0000\u0c6e\u0c6f\u0003\u000b\u0005"+ + "\u0000\u0c6f\u0c70\u00037\u001b\u0000\u0c70\u0c71\u0003\u000b\u0005\u0000"+ + "\u0c71\u0c72\u0003\u001d\u000e\u0000\u0c72\u0c73\u0003\u000f\u0007\u0000"+ + "\u0c73\u015e\u0001\u0000\u0000\u0000\u0c74\u0c75\u0003\r\u0006\u0000\u0c75"+ + "\u0c76\u0003\u0007\u0003\u0000\u0c76\u0c77\u0003-\u0016\u0000\u0c77\u0c78"+ + "\u0003\u0007\u0003\u0000\u0c78\u0160\u0001\u0000\u0000\u0000\u0c79\u0c7a"+ + "\u0003\r\u0006\u0000\u0c7a\u0c7b\u0003\u0007\u0003\u0000\u0c7b\u0c7c\u0003"+ + "-\u0016\u0000\u0c7c\u0c7d\u0003\u0007\u0003\u0000\u0c7d\u0c7e\u0003\t"+ + "\u0004\u0000\u0c7e\u0c7f\u0003\u0007\u0003\u0000\u0c7f\u0c80\u0003+\u0015"+ + "\u0000\u0c80\u0c81\u0003\u000f\u0007\u0000\u0c81\u0162\u0001\u0000\u0000"+ + "\u0000\u0c82\u0c83\u0003\r\u0006\u0000\u0c83\u0c84\u0003\u0007\u0003\u0000"+ + "\u0c84\u0c85\u0003-\u0016\u0000\u0c85\u0c86\u0003\u000f\u0007\u0000\u0c86"+ + "\u0164\u0001\u0000\u0000\u0000\u0c87\u0c88\u0003\r\u0006\u0000\u0c88\u0c89"+ + "\u0003\u0007\u0003\u0000\u0c89\u0c8a\u0003-\u0016\u0000\u0c8a\u0c8b\u0003"+ + "\u000f\u0007\u0000\u0c8b\u0c8c\u0003-\u0016\u0000\u0c8c\u0c8d\u0003\u0017"+ + "\u000b\u0000\u0c8d\u0c8e\u0003\u001f\u000f\u0000\u0c8e\u0c8f\u0003\u000f"+ + "\u0007\u0000\u0c8f\u0c90\u0005_\u0000\u0000\u0c90\u0c91\u0003\u0017\u000b"+ + "\u0000\u0c91\u0c92\u0003!\u0010\u0000\u0c92\u0c93\u0003-\u0016\u0000\u0c93"+ + "\u0c94\u0003\u000f\u0007\u0000\u0c94\u0c95\u0003)\u0014\u0000\u0c95\u0c96"+ + "\u00031\u0018\u0000\u0c96\u0c97\u0003\u0007\u0003\u0000\u0c97\u0c98\u0003"+ + "\u001d\u000e\u0000\u0c98\u0c99\u0005_\u0000\u0000\u0c99\u0c9a\u0003\u000b"+ + "\u0005\u0000\u0c9a\u0c9b\u0003#\u0011\u0000\u0c9b\u0c9c\u0003\r\u0006"+ + "\u0000\u0c9c\u0c9d\u0003\u000f\u0007\u0000\u0c9d\u0166\u0001\u0000\u0000"+ + "\u0000\u0c9e\u0c9f\u0003\r\u0006\u0000\u0c9f\u0ca0\u0003\u0007\u0003\u0000"+ + "\u0ca0\u0ca1\u0003-\u0016\u0000\u0ca1\u0ca2\u0003\u000f\u0007\u0000\u0ca2"+ + "\u0ca3\u0003-\u0016\u0000\u0ca3\u0ca4\u0003\u0017\u000b\u0000\u0ca4\u0ca5"+ + "\u0003\u001f\u000f\u0000\u0ca5\u0ca6\u0003\u000f\u0007\u0000\u0ca6\u0ca7"+ + "\u0005_\u0000\u0000\u0ca7\u0ca8\u0003\u0017\u000b\u0000\u0ca8\u0ca9\u0003"+ + "!\u0010\u0000\u0ca9\u0caa\u0003-\u0016\u0000\u0caa\u0cab\u0003\u000f\u0007"+ + "\u0000\u0cab\u0cac\u0003)\u0014\u0000\u0cac\u0cad\u00031\u0018\u0000\u0cad"+ + "\u0cae\u0003\u0007\u0003\u0000\u0cae\u0caf\u0003\u001d\u000e\u0000\u0caf"+ + "\u0cb0\u0005_\u0000\u0000\u0cb0\u0cb1\u0003%\u0012\u0000\u0cb1\u0cb2\u0003"+ + ")\u0014\u0000\u0cb2\u0cb3\u0003\u000f\u0007\u0000\u0cb3\u0cb4\u0003\u000b"+ + "\u0005\u0000\u0cb4\u0cb5\u0003\u0017\u000b\u0000\u0cb5\u0cb6\u0003+\u0015"+ + "\u0000\u0cb6\u0cb7\u0003\u0017\u000b\u0000\u0cb7\u0cb8\u0003#\u0011\u0000"+ + "\u0cb8\u0cb9\u0003!\u0010\u0000\u0cb9\u0168\u0001\u0000\u0000\u0000\u0cba"+ + "\u0cbb\u0003\r\u0006\u0000\u0cbb\u0cbc\u0003\u0007\u0003\u0000\u0cbc\u0cbd"+ + "\u00037\u001b\u0000\u0cbd\u016a\u0001\u0000\u0000\u0000\u0cbe\u0cbf\u0003"+ + "\r\u0006\u0000\u0cbf\u0cc0\u0003\u000f\u0007\u0000\u0cc0\u0cc1\u0003\u0007"+ + "\u0003\u0000\u0cc1\u0cc2\u0003\u001d\u000e\u0000\u0cc2\u0cc3\u0003\u001d"+ + "\u000e\u0000\u0cc3\u0cc4\u0003#\u0011\u0000\u0cc4\u0cc5\u0003\u000b\u0005"+ + "\u0000\u0cc5\u0cc6\u0003\u0007\u0003\u0000\u0cc6\u0cc7\u0003-\u0016\u0000"+ + "\u0cc7\u0cc8\u0003\u000f\u0007\u0000\u0cc8\u016c\u0001\u0000\u0000\u0000"+ + "\u0cc9\u0cca\u0003\r\u0006\u0000\u0cca\u0ccb\u0003\u000f\u0007\u0000\u0ccb"+ + "\u0ccc\u0003\u000b\u0005\u0000\u0ccc\u016e\u0001\u0000\u0000\u0000\u0ccd"+ + "\u0cce\u0003\r\u0006\u0000\u0cce\u0ccf\u0003\u000f\u0007\u0000\u0ccf\u0cd0"+ + "\u0003\u000b\u0005\u0000\u0cd0\u0cd1\u0003\u0017\u000b\u0000\u0cd1\u0cd2"+ + "\u0003\u001f\u000f\u0000\u0cd2\u0cd3\u0003\u0007\u0003\u0000\u0cd3\u0cd4"+ + "\u0003\u001d\u000e\u0000\u0cd4\u0170\u0001\u0000\u0000\u0000\u0cd5\u0cd6"+ + "\u0003\r\u0006\u0000\u0cd6\u0cd7\u0003\u000f\u0007\u0000\u0cd7\u0cd8\u0003"+ + "\u000b\u0005\u0000\u0cd8\u0cd9\u0003\u001d\u000e\u0000\u0cd9\u0cda\u0003"+ + "\u0007\u0003\u0000\u0cda\u0cdb\u0003)\u0014\u0000\u0cdb\u0cdc\u0003\u000f"+ + "\u0007\u0000\u0cdc\u0172\u0001\u0000\u0000\u0000\u0cdd\u0cde\u0003\r\u0006"+ + "\u0000\u0cde\u0cdf\u0003\u000f\u0007\u0000\u0cdf\u0ce0\u0003\u0011\b\u0000"+ + "\u0ce0\u0ce1\u0003\u0007\u0003\u0000\u0ce1\u0ce2\u0003/\u0017\u0000\u0ce2"+ + "\u0ce3\u0003\u001d\u000e\u0000\u0ce3\u0ce4\u0003-\u0016\u0000\u0ce4\u0174"+ + "\u0001\u0000\u0000\u0000\u0ce5\u0ce6\u0003\r\u0006\u0000\u0ce6\u0ce7\u0003"+ + "\u000f\u0007\u0000\u0ce7\u0ce8\u0003\u0011\b\u0000\u0ce8\u0ce9\u0003\u0007"+ + "\u0003\u0000\u0ce9\u0cea\u0003/\u0017\u0000\u0cea\u0ceb\u0003\u001d\u000e"+ + "\u0000\u0ceb\u0cec\u0003-\u0016\u0000\u0cec\u0ced\u0003+\u0015\u0000\u0ced"+ + "\u0176\u0001\u0000\u0000\u0000\u0cee\u0cef\u0003\r\u0006\u0000\u0cef\u0cf0"+ + "\u0003\u000f\u0007\u0000\u0cf0\u0cf1\u0003\u0011\b\u0000\u0cf1\u0cf2\u0003"+ + "\u000f\u0007\u0000\u0cf2\u0cf3\u0003)\u0014\u0000\u0cf3\u0cf4\u0003\u0007"+ + "\u0003\u0000\u0cf4\u0cf5\u0003\t\u0004\u0000\u0cf5\u0cf6\u0003\u001d\u000e"+ + "\u0000\u0cf6\u0cf7\u0003\u000f\u0007\u0000\u0cf7\u0178\u0001\u0000\u0000"+ + "\u0000\u0cf8\u0cf9\u0003\r\u0006\u0000\u0cf9\u0cfa\u0003\u000f\u0007\u0000"+ + "\u0cfa\u0cfb\u0003\u0011\b\u0000\u0cfb\u0cfc\u0003\u000f\u0007\u0000\u0cfc"+ + "\u0cfd\u0003)\u0014\u0000\u0cfd\u0cfe\u0003)\u0014\u0000\u0cfe\u0cff\u0003"+ + "\u0007\u0003\u0000\u0cff\u0d00\u0003\t\u0004\u0000\u0d00\u0d01\u0003\u001d"+ + "\u000e\u0000\u0d01\u0d02\u0003\u000f\u0007\u0000\u0d02\u017a\u0001\u0000"+ + "\u0000\u0000\u0d03\u0d04\u0003\r\u0006\u0000\u0d04\u0d05\u0003\u000f\u0007"+ + "\u0000\u0d05\u0d06\u0003\u0011\b\u0000\u0d06\u0d07\u0003\u000f\u0007\u0000"+ + "\u0d07\u0d08\u0003)\u0014\u0000\u0d08\u0d09\u0003)\u0014\u0000\u0d09\u0d0a"+ + "\u0003\u000f\u0007\u0000\u0d0a\u0d0b\u0003\r\u0006\u0000\u0d0b\u017c\u0001"+ + "\u0000\u0000\u0000\u0d0c\u0d0d\u0003\r\u0006\u0000\u0d0d\u0d0e\u0003\u000f"+ + "\u0007\u0000\u0d0e\u0d0f\u0003\u0011\b\u0000\u0d0f\u0d10\u0003\u0017\u000b"+ + "\u0000\u0d10\u0d11\u0003!\u0010\u0000\u0d11\u0d12\u0003\u000f\u0007\u0000"+ + "\u0d12\u0d13\u0003\r\u0006\u0000\u0d13\u017e\u0001\u0000\u0000\u0000\u0d14"+ + "\u0d15\u0003\r\u0006\u0000\u0d15\u0d16\u0003\u000f\u0007\u0000\u0d16\u0d17"+ + "\u0003\u0011\b\u0000\u0d17\u0d18\u0003\u0017\u000b\u0000\u0d18\u0d19\u0003"+ + "!\u0010\u0000\u0d19\u0d1a\u0003\u000f\u0007\u0000\u0d1a\u0d1b\u0003)\u0014"+ + "\u0000\u0d1b\u0180\u0001\u0000\u0000\u0000\u0d1c\u0d1d\u0003\r\u0006\u0000"+ + "\u0d1d\u0d1e\u0003\u000f\u0007\u0000\u0d1e\u0d1f\u0003\u0013\t\u0000\u0d1f"+ + "\u0d20\u0003)\u0014\u0000\u0d20\u0d21\u0003\u000f\u0007\u0000\u0d21\u0d22"+ + "\u0003\u000f\u0007\u0000\u0d22\u0182\u0001\u0000\u0000\u0000\u0d23\u0d24"+ + "\u0003\r\u0006\u0000\u0d24\u0d25\u0003\u000f\u0007\u0000\u0d25\u0d26\u0003"+ + "\u001d\u000e\u0000\u0d26\u0d27\u0003\u000f\u0007\u0000\u0d27\u0d28\u0003"+ + "-\u0016\u0000\u0d28\u0d29\u0003\u000f\u0007\u0000\u0d29\u0184\u0001\u0000"+ + "\u0000\u0000\u0d2a\u0d2b\u0003\r\u0006\u0000\u0d2b\u0d2c\u0003\u000f\u0007"+ + "\u0000\u0d2c\u0d2d\u0003\u001d\u000e\u0000\u0d2d\u0d2e\u0003\u0017\u000b"+ + "\u0000\u0d2e\u0d2f\u0003\u001f\u000f\u0000\u0d2f\u0d30\u0003\u0017\u000b"+ + "\u0000\u0d30\u0d31\u0003-\u0016\u0000\u0d31\u0d32\u0003\u000f\u0007\u0000"+ + "\u0d32\u0d33\u0003)\u0014\u0000\u0d33\u0186\u0001\u0000\u0000\u0000\u0d34"+ + "\u0d35\u0003\r\u0006\u0000\u0d35\u0d36\u0003\u000f\u0007\u0000\u0d36\u0d37"+ + "\u0003\u001d\u000e\u0000\u0d37\u0d38\u0003\u0017\u000b\u0000\u0d38\u0d39"+ + "\u0003\u001f\u000f\u0000\u0d39\u0d3a\u0003\u0017\u000b\u0000\u0d3a\u0d3b"+ + "\u0003-\u0016\u0000\u0d3b\u0d3c\u0003\u000f\u0007\u0000\u0d3c\u0d3d\u0003"+ + ")\u0014\u0000\u0d3d\u0d3e\u0003+\u0015\u0000\u0d3e\u0188\u0001\u0000\u0000"+ + "\u0000\u0d3f\u0d40\u0003\r\u0006\u0000\u0d40\u0d41\u0003\u000f\u0007\u0000"+ + "\u0d41\u0d42\u0003!\u0010\u0000\u0d42\u0d43\u0003+\u0015\u0000\u0d43\u0d44"+ + "\u0003\u000f\u0007\u0000\u0d44\u0d45\u0005_\u0000\u0000\u0d45\u0d46\u0003"+ + ")\u0014\u0000\u0d46\u0d47\u0003\u0007\u0003\u0000\u0d47\u0d48\u0003!\u0010"+ + "\u0000\u0d48\u0d49\u0003\u001b\r\u0000\u0d49\u018a\u0001\u0000\u0000\u0000"+ + "\u0d4a\u0d4b\u0003\r\u0006\u0000\u0d4b\u0d4c\u0003\u000f\u0007\u0000\u0d4c"+ + "\u0d4d\u0003%\u0012\u0000\u0d4d\u0d4e\u0003\u000f\u0007\u0000\u0d4e\u0d4f"+ + "\u0003!\u0010\u0000\u0d4f\u0d50\u0003\r\u0006\u0000\u0d50\u0d51\u0003"+ + "+\u0015\u0000\u0d51\u018c\u0001\u0000\u0000\u0000\u0d52\u0d53\u0003\r"+ + "\u0006\u0000\u0d53\u0d54\u0003\u000f\u0007\u0000\u0d54\u0d55\u0003%\u0012"+ + "\u0000\u0d55\u0d56\u0003-\u0016\u0000\u0d56\u0d57\u0003\u0015\n\u0000"+ + "\u0d57\u018e\u0001\u0000\u0000\u0000\u0d58\u0d59\u0003\r\u0006\u0000\u0d59"+ + "\u0d5a\u0003\u000f\u0007\u0000\u0d5a\u0d5b\u0003)\u0014\u0000\u0d5b\u0d5c"+ + "\u0003\u000f\u0007\u0000\u0d5c\u0d5d\u0003\u0011\b\u0000\u0d5d\u0190\u0001"+ + "\u0000\u0000\u0000\u0d5e\u0d5f\u0003\r\u0006\u0000\u0d5f\u0d60\u0003\u000f"+ + "\u0007\u0000\u0d60\u0d61\u0003)\u0014\u0000\u0d61\u0d62\u0003\u0017\u000b"+ + "\u0000\u0d62\u0d63\u00031\u0018\u0000\u0d63\u0d64\u0003\u000f\u0007\u0000"+ + "\u0d64\u0d65\u0003\r\u0006\u0000\u0d65\u0192\u0001\u0000\u0000\u0000\u0d66"+ + "\u0d67\u0003\r\u0006\u0000\u0d67\u0d68\u0003\u000f\u0007\u0000\u0d68\u0d69"+ + "\u0003+\u0015\u0000\u0d69\u0d6a\u0003\u000b\u0005\u0000\u0d6a\u0194\u0001"+ + "\u0000\u0000\u0000\u0d6b\u0d6c\u0003\r\u0006\u0000\u0d6c\u0d6d\u0003\u000f"+ + "\u0007\u0000\u0d6d\u0d6e\u0003+\u0015\u0000\u0d6e\u0d6f\u0003\u000b\u0005"+ + "\u0000\u0d6f\u0d70\u0003)\u0014\u0000\u0d70\u0d71\u0003\u0017\u000b\u0000"+ + "\u0d71\u0d72\u0003\t\u0004\u0000\u0d72\u0d73\u0003\u000f\u0007\u0000\u0d73"+ + "\u0196\u0001\u0000\u0000\u0000\u0d74\u0d75\u0003\r\u0006\u0000\u0d75\u0d76"+ + "\u0003\u000f\u0007\u0000\u0d76\u0d77\u0003+\u0015\u0000\u0d77\u0d78\u0003"+ + "\u000b\u0005\u0000\u0d78\u0d79\u0003)\u0014\u0000\u0d79\u0d7a\u0003\u0017"+ + "\u000b\u0000\u0d7a\u0d7b\u0003%\u0012\u0000\u0d7b\u0d7c\u0003-\u0016\u0000"+ + "\u0d7c\u0d7d\u0003#\u0011\u0000\u0d7d\u0d7e\u0003)\u0014\u0000\u0d7e\u0198"+ + "\u0001\u0000\u0000\u0000\u0d7f\u0d80\u0003\r\u0006\u0000\u0d80\u0d81\u0003"+ + "\u000f\u0007\u0000\u0d81\u0d82\u0003+\u0015\u0000\u0d82\u0d83\u0003-\u0016"+ + "\u0000\u0d83\u0d84\u0003)\u0014\u0000\u0d84\u0d85\u0003#\u0011\u0000\u0d85"+ + "\u0d86\u00037\u001b\u0000\u0d86\u019a\u0001\u0000\u0000\u0000\u0d87\u0d88"+ + "\u0003\r\u0006\u0000\u0d88\u0d89\u0003\u000f\u0007\u0000\u0d89\u0d8a\u0003"+ + "+\u0015\u0000\u0d8a\u0d8b\u0003-\u0016\u0000\u0d8b\u0d8c\u0003)\u0014"+ + "\u0000\u0d8c\u0d8d\u0003/\u0017\u0000\u0d8d\u0d8e\u0003\u000b\u0005\u0000"+ + "\u0d8e\u0d8f\u0003-\u0016\u0000\u0d8f\u0d90\u0003#\u0011\u0000\u0d90\u0d91"+ + "\u0003)\u0014\u0000\u0d91\u019c\u0001\u0000\u0000\u0000\u0d92\u0d93\u0003"+ + "\r\u0006\u0000\u0d93\u0d94\u0003\u000f\u0007\u0000\u0d94\u0d95\u0003-"+ + "\u0016\u0000\u0d95\u0d96\u0003\u000f\u0007\u0000\u0d96\u0d97\u0003)\u0014"+ + "\u0000\u0d97\u0d98\u0003\u001f\u000f\u0000\u0d98\u0d99\u0003\u0017\u000b"+ + "\u0000\u0d99\u0d9a\u0003!\u0010\u0000\u0d9a\u0d9b\u0003\u0017\u000b\u0000"+ + "\u0d9b\u0d9c\u0003+\u0015\u0000\u0d9c\u0d9d\u0003-\u0016\u0000\u0d9d\u0d9e"+ + "\u0003\u0017\u000b\u0000\u0d9e\u0d9f\u0003\u000b\u0005\u0000\u0d9f\u019e"+ + "\u0001\u0000\u0000\u0000\u0da0\u0da1\u0003\r\u0006\u0000\u0da1\u0da2\u0003"+ + "\u0017\u000b\u0000\u0da2\u0da3\u0003\u0007\u0003\u0000\u0da3\u0da4\u0003"+ + "\u0013\t\u0000\u0da4\u0da5\u0003!\u0010\u0000\u0da5\u0da6\u0003#\u0011"+ + "\u0000\u0da6\u0da7\u0003+\u0015\u0000\u0da7\u0da8\u0003-\u0016\u0000\u0da8"+ + "\u0da9\u0003\u0017\u000b\u0000\u0da9\u0daa\u0003\u000b\u0005\u0000\u0daa"+ + "\u0dab\u0003+\u0015\u0000\u0dab\u01a0\u0001\u0000\u0000\u0000\u0dac\u0dad"+ + "\u0003\r\u0006\u0000\u0dad\u0dae\u0003\u0017\u000b\u0000\u0dae\u0daf\u0003"+ + "\u000b\u0005\u0000\u0daf\u0db0\u0003-\u0016\u0000\u0db0\u0db1\u0003\u0017"+ + "\u000b\u0000\u0db1\u0db2\u0003#\u0011\u0000\u0db2\u0db3\u0003!\u0010\u0000"+ + "\u0db3\u0db4\u0003\u0007\u0003\u0000\u0db4\u0db5\u0003)\u0014\u0000\u0db5"+ + "\u0db6\u00037\u001b\u0000\u0db6\u01a2\u0001\u0000\u0000\u0000\u0db7\u0db8"+ + "\u0003\r\u0006\u0000\u0db8\u0db9\u0003\u0017\u000b\u0000\u0db9\u0dba\u0003"+ + "+\u0015\u0000\u0dba\u0dbb\u0003\u0007\u0003\u0000\u0dbb\u0dbc\u0003\t"+ + "\u0004\u0000\u0dbc\u0dbd\u0003\u001d\u000e\u0000\u0dbd\u0dbe\u0003\u000f"+ + "\u0007\u0000\u0dbe\u01a4\u0001\u0000\u0000\u0000\u0dbf\u0dc0\u0003\r\u0006"+ + "\u0000\u0dc0\u0dc1\u0003\u0017\u000b\u0000\u0dc1\u0dc2\u0003+\u0015\u0000"+ + "\u0dc2\u0dc3\u0003\u0007\u0003\u0000\u0dc3\u0dc4\u0003\t\u0004\u0000\u0dc4"+ + "\u0dc5\u0003\u001d\u000e\u0000\u0dc5\u0dc6\u0003\u000f\u0007\u0000\u0dc6"+ + "\u0dc7\u0005_\u0000\u0000\u0dc7\u0dc8\u0003%\u0012\u0000\u0dc8\u0dc9\u0003"+ + "\u0007\u0003\u0000\u0dc9\u0dca\u0003\u0013\t\u0000\u0dca\u0dcb\u0003\u000f"+ + "\u0007\u0000\u0dcb\u0dcc\u0005_\u0000\u0000\u0dcc\u0dcd\u0003+\u0015\u0000"+ + "\u0dcd\u0dce\u0003\u001b\r\u0000\u0dce\u0dcf\u0003\u0017\u000b\u0000\u0dcf"+ + "\u0dd0\u0003%\u0012\u0000\u0dd0\u0dd1\u0003%\u0012\u0000\u0dd1\u0dd2\u0003"+ + "\u0017\u000b\u0000\u0dd2\u0dd3\u0003!\u0010\u0000\u0dd3\u0dd4\u0003\u0013"+ + "\t\u0000\u0dd4\u01a6\u0001\u0000\u0000\u0000\u0dd5\u0dd6\u0003\r\u0006"+ + "\u0000\u0dd6\u0dd7\u0003\u0017\u000b\u0000\u0dd7\u0dd8\u0003+\u0015\u0000"+ + "\u0dd8\u0dd9\u0003\u000b\u0005\u0000\u0dd9\u0dda\u0003\u0007\u0003\u0000"+ + "\u0dda\u0ddb\u0003)\u0014\u0000\u0ddb\u0ddc\u0003\r\u0006\u0000\u0ddc"+ + "\u01a8\u0001\u0000\u0000\u0000\u0ddd\u0dde\u0003\r\u0006\u0000\u0dde\u0ddf"+ + "\u0003\u0017\u000b\u0000\u0ddf\u0de0\u0003+\u0015\u0000\u0de0\u0de1\u0003"+ + "\u000b\u0005\u0000\u0de1\u0de2\u0003#\u0011\u0000\u0de2\u0de3\u0003!\u0010"+ + "\u0000\u0de3\u0de4\u0003!\u0010\u0000\u0de4\u0de5\u0003\u000f\u0007\u0000"+ + "\u0de5\u0de6\u0003\u000b\u0005\u0000\u0de6\u0de7\u0003-\u0016\u0000\u0de7"+ + "\u01aa\u0001\u0000\u0000\u0000\u0de8\u0de9\u0003\r\u0006\u0000\u0de9\u0dea"+ + "\u0003\u0017\u000b\u0000\u0dea\u0deb\u0003+\u0015\u0000\u0deb\u0dec\u0003"+ + "%\u0012\u0000\u0dec\u0ded\u0003\u0007\u0003\u0000\u0ded\u0dee\u0003-\u0016"+ + "\u0000\u0dee\u0def\u0003\u000b\u0005\u0000\u0def\u0df0\u0003\u0015\n\u0000"+ + "\u0df0\u01ac\u0001\u0000\u0000\u0000\u0df1\u0df2\u0003\r\u0006\u0000\u0df2"+ + "\u0df3\u0003\u0017\u000b\u0000\u0df3\u0df4\u0003+\u0015\u0000\u0df4\u0df5"+ + "\u0003-\u0016\u0000\u0df5\u0df6\u0003\u0017\u000b\u0000\u0df6\u0df7\u0003"+ + "!\u0010\u0000\u0df7\u0df8\u0003\u000b\u0005\u0000\u0df8\u0df9\u0003-\u0016"+ + "\u0000\u0df9\u01ae\u0001\u0000\u0000\u0000\u0dfa\u0dfb\u0003\r\u0006\u0000"+ + "\u0dfb\u0dfc\u0003#\u0011\u0000\u0dfc\u01b0\u0001\u0000\u0000\u0000\u0dfd"+ + "\u0dfe\u0003\r\u0006\u0000\u0dfe\u0dff\u0003#\u0011\u0000\u0dff\u0e00"+ + "\u0003\u001f\u000f\u0000\u0e00\u0e01\u0003\u0007\u0003\u0000\u0e01\u0e02"+ + "\u0003\u0017\u000b\u0000\u0e02\u0e03\u0003!\u0010\u0000\u0e03\u01b2\u0001"+ + "\u0000\u0000\u0000\u0e04\u0e05\u0003\r\u0006\u0000\u0e05\u0e06\u0003#"+ + "\u0011\u0000\u0e06\u0e07\u0003/\u0017\u0000\u0e07\u0e08\u0003\t\u0004"+ + "\u0000\u0e08\u0e09\u0003\u001d\u000e\u0000\u0e09\u0e0a\u0003\u000f\u0007"+ + "\u0000\u0e0a\u01b4\u0001\u0000\u0000\u0000\u0e0b\u0e0c\u0003\r\u0006\u0000"+ + "\u0e0c\u0e0d\u0003)\u0014\u0000\u0e0d\u0e0e\u0003#\u0011\u0000\u0e0e\u0e0f"+ + "\u0003%\u0012\u0000\u0e0f\u01b6\u0001\u0000\u0000\u0000\u0e10\u0e11\u0003"+ + "\r\u0006\u0000\u0e11\u0e12\u00037\u001b\u0000\u0e12\u0e13\u0003!\u0010"+ + "\u0000\u0e13\u0e14\u0003\u0007\u0003\u0000\u0e14\u0e15\u0003\u001f\u000f"+ + "\u0000\u0e15\u0e16\u0003\u0017\u000b\u0000\u0e16\u0e17\u0003\u000b\u0005"+ + "\u0000\u0e17\u01b8\u0001\u0000\u0000\u0000\u0e18\u0e19\u0003\r\u0006\u0000"+ + "\u0e19\u0e1a\u00037\u001b\u0000\u0e1a\u0e1b\u0003!\u0010\u0000\u0e1b\u0e1c"+ + "\u0003\u0007\u0003\u0000\u0e1c\u0e1d\u0003\u001f\u000f\u0000\u0e1d\u0e1e"+ + "\u0003\u0017\u000b\u0000\u0e1e\u0e1f\u0003\u000b\u0005\u0000\u0e1f\u0e20"+ + "\u0005_\u0000\u0000\u0e20\u0e21\u0003\u0011\b\u0000\u0e21\u0e22\u0003"+ + "/\u0017\u0000\u0e22\u0e23\u0003!\u0010\u0000\u0e23\u0e24\u0003\u000b\u0005"+ + "\u0000\u0e24\u0e25\u0003-\u0016\u0000\u0e25\u0e26\u0003\u0017\u000b\u0000"+ + "\u0e26\u0e27\u0003#\u0011\u0000\u0e27\u0e28\u0003!\u0010\u0000\u0e28\u01ba"+ + "\u0001\u0000\u0000\u0000\u0e29\u0e2a\u0003\r\u0006\u0000\u0e2a\u0e2b\u0003"+ + "7\u001b\u0000\u0e2b\u0e2c\u0003!\u0010\u0000\u0e2c\u0e2d\u0003\u0007\u0003"+ + "\u0000\u0e2d\u0e2e\u0003\u001f\u000f\u0000\u0e2e\u0e2f\u0003\u0017\u000b"+ + "\u0000\u0e2f\u0e30\u0003\u000b\u0005\u0000\u0e30\u0e31\u0005_\u0000\u0000"+ + "\u0e31\u0e32\u0003\u0011\b\u0000\u0e32\u0e33\u0003/\u0017\u0000\u0e33"+ + "\u0e34\u0003!\u0010\u0000\u0e34\u0e35\u0003\u000b\u0005\u0000\u0e35\u0e36"+ + "\u0003-\u0016\u0000\u0e36\u0e37\u0003\u0017\u000b\u0000\u0e37\u0e38\u0003"+ + "#\u0011\u0000\u0e38\u0e39\u0003!\u0010\u0000\u0e39\u0e3a\u0005_\u0000"+ + "\u0000\u0e3a\u0e3b\u0003\u000b\u0005\u0000\u0e3b\u0e3c\u0003#\u0011\u0000"+ + "\u0e3c\u0e3d\u0003\r\u0006\u0000\u0e3d\u0e3e\u0003\u000f\u0007\u0000\u0e3e"+ + "\u01bc\u0001\u0000\u0000\u0000\u0e3f\u0e40\u0003\u000f\u0007\u0000\u0e40"+ + "\u0e41\u0003\u0007\u0003\u0000\u0e41\u0e42\u0003\u000b\u0005\u0000\u0e42"+ + "\u0e43\u0003\u0015\n\u0000\u0e43\u01be\u0001\u0000\u0000\u0000\u0e44\u0e45"+ + "\u0003\u000f\u0007\u0000\u0e45\u0e46\u0003\u001d\u000e\u0000\u0e46\u0e47"+ + "\u0003\u000f\u0007\u0000\u0e47\u0e48\u0003\u001f\u000f\u0000\u0e48\u0e49"+ + "\u0003\u000f\u0007\u0000\u0e49\u0e4a\u0003!\u0010\u0000\u0e4a\u0e4b\u0003"+ + "-\u0016\u0000\u0e4b\u01c0\u0001\u0000\u0000\u0000\u0e4c\u0e4d\u0003\u000f"+ + "\u0007\u0000\u0e4d\u0e4e\u0003\u001d\u000e\u0000\u0e4e\u0e4f\u0003+\u0015"+ + "\u0000\u0e4f\u0e50\u0003\u000f\u0007\u0000\u0e50\u01c2\u0001\u0000\u0000"+ + "\u0000\u0e51\u0e52\u0003\u000f\u0007\u0000\u0e52\u0e53\u0003!\u0010\u0000"+ + "\u0e53\u0e54\u0003\u0007\u0003\u0000\u0e54\u0e55\u0003\t\u0004\u0000\u0e55"+ + "\u0e56\u0003\u001d\u000e\u0000\u0e56\u0e57\u0003\u000f\u0007\u0000\u0e57"+ + "\u01c4\u0001\u0000\u0000\u0000\u0e58\u0e59\u0003\u000f\u0007\u0000\u0e59"+ + "\u0e5a\u0003!\u0010\u0000\u0e5a\u0e5b\u0003\u000b\u0005\u0000\u0e5b\u0e5c"+ + "\u0003#\u0011\u0000\u0e5c\u0e5d\u0003\r\u0006\u0000\u0e5d\u0e5e\u0003"+ + "\u0017\u000b\u0000\u0e5e\u0e5f\u0003!\u0010\u0000\u0e5f\u0e60\u0003\u0013"+ + "\t\u0000\u0e60\u01c6\u0001\u0000\u0000\u0000\u0e61\u0e62\u0003\u000f\u0007"+ + "\u0000\u0e62\u0e63\u0003!\u0010\u0000\u0e63\u0e64\u0003\u000b\u0005\u0000"+ + "\u0e64\u0e65\u0003)\u0014\u0000\u0e65\u0e66\u00037\u001b\u0000\u0e66\u0e67"+ + "\u0003%\u0012\u0000\u0e67\u0e68\u0003-\u0016\u0000\u0e68\u0e69\u0003\u000f"+ + "\u0007\u0000\u0e69\u0e6a\u0003\r\u0006\u0000\u0e6a\u01c8\u0001\u0000\u0000"+ + "\u0000\u0e6b\u0e6c\u0003\u000f\u0007\u0000\u0e6c\u0e6d\u0003!\u0010\u0000"+ + "\u0e6d\u0e6e\u0003\r\u0006\u0000\u0e6e\u01ca\u0001\u0000\u0000\u0000\u0e6f"+ + "\u0e70\u0003\u000f\u0007\u0000\u0e70\u0e71\u0003!\u0010\u0000\u0e71\u0e72"+ + "\u0003\r\u0006\u0000\u0e72\u0e73\u0005-\u0000\u0000\u0e73\u0e74\u0003"+ + "\u000f\u0007\u0000\u0e74\u0e75\u00035\u001a\u0000\u0e75\u0e76\u0003\u000f"+ + "\u0007\u0000\u0e76\u0e77\u0003\u000b\u0005\u0000\u0e77\u01cc\u0001\u0000"+ + "\u0000\u0000\u0e78\u0e79\u0003\u000f\u0007\u0000\u0e79\u0e7a\u0003\'\u0013"+ + "\u0000\u0e7a\u0e7b\u0003/\u0017\u0000\u0e7b\u0e7c\u0003\u0007\u0003\u0000"+ + "\u0e7c\u0e7d\u0003\u001d\u000e\u0000\u0e7d\u0e7e\u0003+\u0015\u0000\u0e7e"+ + "\u01ce\u0001\u0000\u0000\u0000\u0e7f\u0e80\u0003\u000f\u0007\u0000\u0e80"+ + "\u0e81\u0003+\u0015\u0000\u0e81\u0e82\u0003\u000b\u0005\u0000\u0e82\u0e83"+ + "\u0003\u0007\u0003\u0000\u0e83\u0e84\u0003%\u0012\u0000\u0e84\u0e85\u0003"+ + "\u000f\u0007\u0000\u0e85\u01d0\u0001\u0000\u0000\u0000\u0e86\u0e87\u0003"+ + "\u000f\u0007\u0000\u0e87\u0e88\u00031\u0018\u0000\u0e88\u0e89\u0003\u000f"+ + "\u0007\u0000\u0e89\u0e8a\u0003)\u0014\u0000\u0e8a\u0e8b\u00037\u001b\u0000"+ + "\u0e8b\u01d2\u0001\u0000\u0000\u0000\u0e8c\u0e8d\u0003\u000f\u0007\u0000"+ + "\u0e8d\u0e8e\u00035\u001a\u0000\u0e8e\u0e8f\u0003\u000b\u0005\u0000\u0e8f"+ + "\u0e90\u0003\u000f\u0007\u0000\u0e90\u0e91\u0003%\u0012\u0000\u0e91\u0e92"+ + "\u0003-\u0016\u0000\u0e92\u01d4\u0001\u0000\u0000\u0000\u0e93\u0e94\u0003"+ + "\u000f\u0007\u0000\u0e94\u0e95\u00035\u001a\u0000\u0e95\u0e96\u0003\u000b"+ + "\u0005\u0000\u0e96\u0e97\u0003\u000f\u0007\u0000\u0e97\u0e98\u0003%\u0012"+ + "\u0000\u0e98\u0e99\u0003-\u0016\u0000\u0e99\u0e9a\u0003\u0017\u000b\u0000"+ + "\u0e9a\u0e9b\u0003#\u0011\u0000\u0e9b\u0e9c\u0003!\u0010\u0000\u0e9c\u01d6"+ + "\u0001\u0000\u0000\u0000\u0e9d\u0e9e\u0003\u000f\u0007\u0000\u0e9e\u0e9f"+ + "\u00035\u001a\u0000\u0e9f\u0ea0\u0003\u000b\u0005\u0000\u0ea0\u0ea1\u0003"+ + "\u001d\u000e\u0000\u0ea1\u0ea2\u0003/\u0017\u0000\u0ea2\u0ea3\u0003\r"+ + "\u0006\u0000\u0ea3\u0ea4\u0003\u000f\u0007\u0000\u0ea4\u01d8\u0001\u0000"+ + "\u0000\u0000\u0ea5\u0ea6\u0003\u000f\u0007\u0000\u0ea6\u0ea7\u00035\u001a"+ + "\u0000\u0ea7\u0ea8\u0003\u000b\u0005\u0000\u0ea8\u0ea9\u0003\u001d\u000e"+ + "\u0000\u0ea9\u0eaa\u0003/\u0017\u0000\u0eaa\u0eab\u0003\r\u0006\u0000"+ + "\u0eab\u0eac\u0003\u0017\u000b\u0000\u0eac\u0ead\u0003!\u0010\u0000\u0ead"+ + "\u0eae\u0003\u0013\t\u0000\u0eae\u01da\u0001\u0000\u0000\u0000\u0eaf\u0eb0"+ + "\u0003\u000f\u0007\u0000\u0eb0\u0eb1\u00035\u001a\u0000\u0eb1\u0eb2\u0003"+ + "\u000b\u0005\u0000\u0eb2\u0eb3\u0003\u001d\u000e\u0000\u0eb3\u0eb4\u0003"+ + "/\u0017\u0000\u0eb4\u0eb5\u0003+\u0015\u0000\u0eb5\u0eb6\u0003\u0017\u000b"+ + "\u0000\u0eb6\u0eb7\u00031\u0018\u0000\u0eb7\u0eb8\u0003\u000f\u0007\u0000"+ + "\u0eb8\u01dc\u0001\u0000\u0000\u0000\u0eb9\u0eba\u0003\u000f\u0007\u0000"+ + "\u0eba\u0ebb\u00035\u001a\u0000\u0ebb\u0ebc\u0003\u000f\u0007\u0000\u0ebc"+ + "\u0ebd\u0003\u000b\u0005\u0000\u0ebd\u01de\u0001\u0000\u0000\u0000\u0ebe"+ + "\u0ebf\u0003\u000f\u0007\u0000\u0ebf\u0ec0\u00035\u001a\u0000\u0ec0\u0ec1"+ + "\u0003\u000f\u0007\u0000\u0ec1\u0ec2\u0003\u000b\u0005\u0000\u0ec2\u0ec3"+ + "\u0003/\u0017\u0000\u0ec3\u0ec4\u0003-\u0016\u0000\u0ec4\u0ec5\u0003\u000f"+ + "\u0007\u0000\u0ec5\u01e0\u0001\u0000\u0000\u0000\u0ec6\u0ec7\u0003\u000f"+ + "\u0007\u0000\u0ec7\u0ec8\u00035\u001a\u0000\u0ec8\u0ec9\u0003\u0017\u000b"+ + "\u0000\u0ec9\u0eca\u0003+\u0015\u0000\u0eca\u0ecb\u0003-\u0016\u0000\u0ecb"+ + "\u0ecc\u0003\u0017\u000b\u0000\u0ecc\u0ecd\u0003!\u0010\u0000\u0ecd\u0ece"+ + "\u0003\u0013\t\u0000\u0ece\u01e2\u0001\u0000\u0000\u0000\u0ecf\u0ed0\u0003"+ + "\u000f\u0007\u0000\u0ed0\u0ed1\u00035\u001a\u0000\u0ed1\u0ed2\u0003\u0017"+ + "\u000b\u0000\u0ed2\u0ed3\u0003+\u0015\u0000\u0ed3\u0ed4\u0003-\u0016\u0000"+ + "\u0ed4\u0ed5\u0003+\u0015\u0000\u0ed5\u01e4\u0001\u0000\u0000\u0000\u0ed6"+ + "\u0ed7\u0003\u000f\u0007\u0000\u0ed7\u0ed8\u00035\u001a\u0000\u0ed8\u0ed9"+ + "\u0003%\u0012\u0000\u0ed9\u01e6\u0001\u0000\u0000\u0000\u0eda\u0edb\u0003"+ + "\u000f\u0007\u0000\u0edb\u0edc\u00035\u001a\u0000\u0edc\u0edd\u0003%\u0012"+ + "\u0000\u0edd\u0ede\u0003\u001d\u000e\u0000\u0ede\u0edf\u0003\u0007\u0003"+ + "\u0000\u0edf\u0ee0\u0003\u0017\u000b\u0000\u0ee0\u0ee1\u0003!\u0010\u0000"+ + "\u0ee1\u01e8\u0001\u0000\u0000\u0000\u0ee2\u0ee3\u0003\u000f\u0007\u0000"+ + "\u0ee3\u0ee4\u00035\u001a\u0000\u0ee4\u0ee5\u0003-\u0016\u0000\u0ee5\u0ee6"+ + "\u0003\u000f\u0007\u0000\u0ee6\u0ee7\u0003!\u0010\u0000\u0ee7\u0ee8\u0003"+ + "\r\u0006\u0000\u0ee8\u0ee9\u0003\u000f\u0007\u0000\u0ee9\u0eea\u0003\r"+ + "\u0006\u0000\u0eea\u01ea\u0001\u0000\u0000\u0000\u0eeb\u0eec\u0003\u000f"+ + "\u0007\u0000\u0eec\u0eed\u00035\u001a\u0000\u0eed\u0eee\u0003-\u0016\u0000"+ + "\u0eee\u0eef\u0003\u000f\u0007\u0000\u0eef\u0ef0\u0003!\u0010\u0000\u0ef0"+ + "\u0ef1\u0003+\u0015\u0000\u0ef1\u0ef2\u0003\u0017\u000b\u0000\u0ef2\u0ef3"+ + "\u0003#\u0011\u0000\u0ef3\u0ef4\u0003!\u0010\u0000\u0ef4\u01ec\u0001\u0000"+ + "\u0000\u0000\u0ef5\u0ef6\u0003\u000f\u0007\u0000\u0ef6\u0ef7\u00035\u001a"+ + "\u0000\u0ef7\u0ef8\u0003-\u0016\u0000\u0ef8\u0ef9\u0003\u000f\u0007\u0000"+ + "\u0ef9\u0efa\u0003)\u0014\u0000\u0efa\u0efb\u0003!\u0010\u0000\u0efb\u0efc"+ + "\u0003\u0007\u0003\u0000\u0efc\u0efd\u0003\u001d\u000e\u0000\u0efd\u01ee"+ + "\u0001\u0000\u0000\u0000\u0efe\u0eff\u0003\u000f\u0007\u0000\u0eff\u0f00"+ + "\u00035\u001a\u0000\u0f00\u0f01\u0003-\u0016\u0000\u0f01\u0f02\u0003)"+ + "\u0014\u0000\u0f02\u0f03\u0003\u0007\u0003\u0000\u0f03\u0f04\u0003\u000b"+ + "\u0005\u0000\u0f04\u0f05\u0003-\u0016\u0000\u0f05\u01f0\u0001\u0000\u0000"+ + "\u0000\u0f06\u0f07\u0003\u0011\b\u0000\u0f07\u0f08\u0003\u0007\u0003\u0000"+ + "\u0f08\u0f09\u0003\u001d\u000e\u0000\u0f09\u0f0a\u0003+\u0015\u0000\u0f0a"+ + "\u0f0b\u0003\u000f\u0007\u0000\u0f0b\u01f2\u0001\u0000\u0000\u0000\u0f0c"+ + "\u0f0d\u0003\u0011\b\u0000\u0f0d\u0f0e\u0003\u000f\u0007\u0000\u0f0e\u0f0f"+ + "\u0003-\u0016\u0000\u0f0f\u0f10\u0003\u000b\u0005\u0000\u0f10\u0f11\u0003"+ + "\u0015\n\u0000\u0f11\u01f4\u0001\u0000\u0000\u0000\u0f12\u0f13\u0003\u0011"+ + "\b\u0000\u0f13\u0f14\u0003\u0017\u000b\u0000\u0f14\u0f15\u0003\u000f\u0007"+ + "\u0000\u0f15\u0f16\u0003\u001d\u000e\u0000\u0f16\u0f17\u0003\r\u0006\u0000"+ + "\u0f17\u0f18\u0003+\u0015\u0000\u0f18\u01f6\u0001\u0000\u0000\u0000\u0f19"+ + "\u0f1a\u0003\u0011\b\u0000\u0f1a\u0f1b\u0003\u0017\u000b\u0000\u0f1b\u0f1c"+ + "\u0003\u001d\u000e\u0000\u0f1c\u0f1d\u0003-\u0016\u0000\u0f1d\u0f1e\u0003"+ + "\u000f\u0007\u0000\u0f1e\u0f1f\u0003)\u0014\u0000\u0f1f\u01f8\u0001\u0000"+ + "\u0000\u0000\u0f20\u0f21\u0003\u0011\b\u0000\u0f21\u0f22\u0003\u0017\u000b"+ + "\u0000\u0f22\u0f23\u0003!\u0010\u0000\u0f23\u0f24\u0003\u0007\u0003\u0000"+ + "\u0f24\u0f25\u0003\u001d\u000e\u0000\u0f25\u01fa\u0001\u0000\u0000\u0000"+ + "\u0f26\u0f27\u0003\u0011\b\u0000\u0f27\u0f28\u0003\u0017\u000b\u0000\u0f28"+ + "\u0f29\u0003)\u0014\u0000\u0f29\u0f2a\u0003+\u0015\u0000\u0f2a\u0f2b\u0003"+ + "-\u0016\u0000\u0f2b\u01fc\u0001\u0000\u0000\u0000\u0f2c\u0f2d\u0003\u0011"+ + "\b\u0000\u0f2d\u0f2e\u0003\u001d\u000e\u0000\u0f2e\u0f2f\u0003#\u0011"+ + "\u0000\u0f2f\u0f30\u0003\u0007\u0003\u0000\u0f30\u0f31\u0003-\u0016\u0000"+ + "\u0f31\u01fe\u0001\u0000\u0000\u0000\u0f32\u0f33\u0003\u0011\b\u0000\u0f33"+ + "\u0f34\u0003\u001d\u000e\u0000\u0f34\u0f35\u0003#\u0011\u0000\u0f35\u0f36"+ + "\u0003#\u0011\u0000\u0f36\u0f37\u0003)\u0014\u0000\u0f37\u0200\u0001\u0000"+ + "\u0000\u0000\u0f38\u0f39\u0003\u0011\b\u0000\u0f39\u0f3a\u0003#\u0011"+ + "\u0000\u0f3a\u0f3b\u0003\u001d\u000e\u0000\u0f3b\u0f3c\u0003\u001d\u000e"+ + "\u0000\u0f3c\u0f3d\u0003#\u0011\u0000\u0f3d\u0f3e\u00033\u0019\u0000\u0f3e"+ + "\u0f3f\u0003\u0017\u000b\u0000\u0f3f\u0f40\u0003!\u0010\u0000\u0f40\u0f41"+ + "\u0003\u0013\t\u0000\u0f41\u0202\u0001\u0000\u0000\u0000\u0f42\u0f43\u0003"+ + "\u0011\b\u0000\u0f43\u0f44\u0003#\u0011\u0000\u0f44\u0f45\u0003)\u0014"+ + "\u0000\u0f45\u0204\u0001\u0000\u0000\u0000\u0f46\u0f47\u0003\u0011\b\u0000"+ + "\u0f47\u0f48\u0003#\u0011\u0000\u0f48\u0f49\u0003)\u0014\u0000\u0f49\u0f4a"+ + "\u0003\u000b\u0005\u0000\u0f4a\u0f4b\u0003\u000f\u0007\u0000\u0f4b\u0206"+ + "\u0001\u0000\u0000\u0000\u0f4c\u0f4d\u0003\u0011\b\u0000\u0f4d\u0f4e\u0003"+ + "#\u0011\u0000\u0f4e\u0f4f\u0003)\u0014\u0000\u0f4f\u0f50\u0003\u000f\u0007"+ + "\u0000\u0f50\u0f51\u0003\u0017\u000b\u0000\u0f51\u0f52\u0003\u0013\t\u0000"+ + "\u0f52\u0f53\u0003!\u0010\u0000\u0f53\u0208\u0001\u0000\u0000\u0000\u0f54"+ + "\u0f55\u0003\u0011\b\u0000\u0f55\u0f56\u0003#\u0011\u0000\u0f56\u0f57"+ + "\u0003)\u0014\u0000\u0f57\u0f58\u0003\u001f\u000f\u0000\u0f58\u0f59\u0003"+ + "\u0007\u0003\u0000\u0f59\u0f5a\u0003-\u0016\u0000\u0f5a\u020a\u0001\u0000"+ + "\u0000\u0000\u0f5b\u0f5c\u0003\u0011\b\u0000\u0f5c\u0f5d\u0003#\u0011"+ + "\u0000\u0f5d\u0f5e\u0003)\u0014\u0000\u0f5e\u0f5f\u0003-\u0016\u0000\u0f5f"+ + "\u0f60\u0003)\u0014\u0000\u0f60\u0f61\u0003\u0007\u0003\u0000\u0f61\u0f62"+ + "\u0003!\u0010\u0000\u0f62\u020c\u0001\u0000\u0000\u0000\u0f63\u0f64\u0003"+ + "\u0011\b\u0000\u0f64\u0f65\u0003#\u0011\u0000\u0f65\u0f66\u0003)\u0014"+ + "\u0000\u0f66\u0f67\u00033\u0019\u0000\u0f67\u0f68\u0003\u0007\u0003\u0000"+ + "\u0f68\u0f69\u0003)\u0014\u0000\u0f69\u0f6a\u0003\r\u0006\u0000\u0f6a"+ + "\u020e\u0001\u0000\u0000\u0000\u0f6b\u0f6c\u0003\u0011\b\u0000\u0f6c\u0f6d"+ + "\u0003#\u0011\u0000\u0f6d\u0f6e\u0003/\u0017\u0000\u0f6e\u0f6f\u0003!"+ + "\u0010\u0000\u0f6f\u0f70\u0003\r\u0006\u0000\u0f70\u0210\u0001\u0000\u0000"+ + "\u0000\u0f71\u0f72\u0003\u0011\b\u0000\u0f72\u0f73\u0003)\u0014\u0000"+ + "\u0f73\u0f74\u0003\u000f\u0007\u0000\u0f74\u0f75\u0003\u000f\u0007\u0000"+ + "\u0f75\u0212\u0001\u0000\u0000\u0000\u0f76\u0f77\u0003\u0011\b\u0000\u0f77"+ + "\u0f78\u0003)\u0014\u0000\u0f78\u0f79\u0003\u000f\u0007\u0000\u0f79\u0f7a"+ + "\u0003\u000f\u0007\u0000\u0f7a\u0f7b\u00039\u001c\u0000\u0f7b\u0f7c\u0003"+ + "\u000f\u0007\u0000\u0f7c\u0214\u0001\u0000\u0000\u0000\u0f7d\u0f7e\u0003"+ + "\u0011\b\u0000\u0f7e\u0f7f\u0003)\u0014\u0000\u0f7f\u0f80\u0003#\u0011"+ + "\u0000\u0f80\u0f81\u0003\u001f\u000f\u0000\u0f81\u0216\u0001\u0000\u0000"+ + "\u0000\u0f82\u0f83\u0003\u0011\b\u0000\u0f83\u0f84\u0003/\u0017\u0000"+ + "\u0f84\u0f85\u0003\u001d\u000e\u0000\u0f85\u0f86\u0003\u001d\u000e\u0000"+ + "\u0f86\u0218\u0001\u0000\u0000\u0000\u0f87\u0f88\u0003\u0011\b\u0000\u0f88"+ + "\u0f89\u0003/\u0017\u0000\u0f89\u0f8a\u0003!\u0010\u0000\u0f8a\u0f8b\u0003"+ + "\u000b\u0005\u0000\u0f8b\u0f8c\u0003-\u0016\u0000\u0f8c\u0f8d\u0003\u0017"+ + "\u000b\u0000\u0f8d\u0f8e\u0003#\u0011\u0000\u0f8e\u0f8f\u0003!\u0010\u0000"+ + "\u0f8f\u021a\u0001\u0000\u0000\u0000\u0f90\u0f91\u0003\u0011\b\u0000\u0f91"+ + "\u0f92\u0003/\u0017\u0000\u0f92\u0f93\u0003+\u0015\u0000\u0f93\u0f94\u0003"+ + "\u0017\u000b\u0000\u0f94\u0f95\u0003#\u0011\u0000\u0f95\u0f96\u0003!\u0010"+ + "\u0000\u0f96\u021c\u0001\u0000\u0000\u0000\u0f97\u0f98\u0003\u0013\t\u0000"+ + "\u0f98\u021e\u0001\u0000\u0000\u0000\u0f99\u0f9a\u0003\u0013\t\u0000\u0f9a"+ + "\u0f9b\u0003\u000f\u0007\u0000\u0f9b\u0f9c\u0003!\u0010\u0000\u0f9c\u0f9d"+ + "\u0003\u000f\u0007\u0000\u0f9d\u0f9e\u0003)\u0014\u0000\u0f9e\u0f9f\u0003"+ + "\u0007\u0003\u0000\u0f9f\u0fa0\u0003\u001d\u000e\u0000\u0fa0\u0220\u0001"+ + "\u0000\u0000\u0000\u0fa1\u0fa2\u0003\u0013\t\u0000\u0fa2\u0fa3\u0003\u000f"+ + "\u0007\u0000\u0fa3\u0fa4\u0003!\u0010\u0000\u0fa4\u0fa5\u0003\u000f\u0007"+ + "\u0000\u0fa5\u0fa6\u0003)\u0014\u0000\u0fa6\u0fa7\u0003\u0007\u0003\u0000"+ + "\u0fa7\u0fa8\u0003-\u0016\u0000\u0fa8\u0fa9\u0003\u000f\u0007\u0000\u0fa9"+ + "\u0faa\u0003\r\u0006\u0000\u0faa\u0222\u0001\u0000\u0000\u0000\u0fab\u0fac"+ + "\u0003\u0013\t\u0000\u0fac\u0fad\u0003\u000f\u0007\u0000\u0fad\u0fae\u0003"+ + "-\u0016\u0000\u0fae\u0224\u0001\u0000\u0000\u0000\u0faf\u0fb0\u0003\u0013"+ + "\t\u0000\u0fb0\u0fb1\u0003\u001d\u000e\u0000\u0fb1\u0fb2\u0003#\u0011"+ + "\u0000\u0fb2\u0fb3\u0003\t\u0004\u0000\u0fb3\u0fb4\u0003\u0007\u0003\u0000"+ + "\u0fb4\u0fb5\u0003\u001d\u000e\u0000\u0fb5\u0226\u0001\u0000\u0000\u0000"+ + "\u0fb6\u0fb7\u0003\u0013\t\u0000\u0fb7\u0fb8\u0003#\u0011\u0000\u0fb8"+ + "\u0228\u0001\u0000\u0000\u0000\u0fb9\u0fba\u0003\u0013\t\u0000\u0fba\u0fbb"+ + "\u0003#\u0011\u0000\u0fbb\u0fbc\u0003-\u0016\u0000\u0fbc\u0fbd\u0003#"+ + "\u0011\u0000\u0fbd\u022a\u0001\u0000\u0000\u0000\u0fbe\u0fbf\u0003\u0013"+ + "\t\u0000\u0fbf\u0fc0\u0003)\u0014\u0000\u0fc0\u0fc1\u0003\u0007\u0003"+ + "\u0000\u0fc1\u0fc2\u0003!\u0010\u0000\u0fc2\u0fc3\u0003-\u0016\u0000\u0fc3"+ + "\u022c\u0001\u0000\u0000\u0000\u0fc4\u0fc5\u0003\u0013\t\u0000\u0fc5\u0fc6"+ + "\u0003)\u0014\u0000\u0fc6\u0fc7\u0003\u0007\u0003\u0000\u0fc7\u0fc8\u0003"+ + "!\u0010\u0000\u0fc8\u0fc9\u0003-\u0016\u0000\u0fc9\u0fca\u0003\u000f\u0007"+ + "\u0000\u0fca\u0fcb\u0003\r\u0006\u0000\u0fcb\u022e\u0001\u0000\u0000\u0000"+ + "\u0fcc\u0fcd\u0003\u0013\t\u0000\u0fcd\u0fce\u0003)\u0014\u0000\u0fce"+ + "\u0fcf\u0003\u000f\u0007\u0000\u0fcf\u0fd0\u0003\u0007\u0003\u0000\u0fd0"+ + "\u0fd1\u0003-\u0016\u0000\u0fd1\u0fd2\u0003\u000f\u0007\u0000\u0fd2\u0fd3"+ + "\u0003+\u0015\u0000\u0fd3\u0fd4\u0003-\u0016\u0000\u0fd4\u0230\u0001\u0000"+ + "\u0000\u0000\u0fd5\u0fd6\u0003\u0013\t\u0000\u0fd6\u0fd7\u0003)\u0014"+ + "\u0000\u0fd7\u0fd8\u0003#\u0011\u0000\u0fd8\u0fd9\u0003/\u0017\u0000\u0fd9"+ + "\u0fda\u0003%\u0012\u0000\u0fda\u0232\u0001\u0000\u0000\u0000\u0fdb\u0fdc"+ + "\u0003\u0013\t\u0000\u0fdc\u0fdd\u0003)\u0014\u0000\u0fdd\u0fde\u0003"+ + "#\u0011\u0000\u0fde\u0fdf\u0003/\u0017\u0000\u0fdf\u0fe0\u0003%\u0012"+ + "\u0000\u0fe0\u0fe1\u0003\u0017\u000b\u0000\u0fe1\u0fe2\u0003!\u0010\u0000"+ + "\u0fe2\u0fe3\u0003\u0013\t\u0000\u0fe3\u0234\u0001\u0000\u0000\u0000\u0fe4"+ + "\u0fe5\u0003\u0015\n\u0000\u0fe5\u0fe6\u0003\u0007\u0003\u0000\u0fe6\u0fe7"+ + "\u0003!\u0010\u0000\u0fe7\u0fe8\u0003\r\u0006\u0000\u0fe8\u0fe9\u0003"+ + "\u001d\u000e\u0000"; + private static final String _serializedATNSegment2 = + "\u0fe9\u0fea\u0003\u000f\u0007\u0000\u0fea\u0feb\u0003)\u0014\u0000\u0feb"+ + "\u0236\u0001\u0000\u0000\u0000\u0fec\u0fed\u0003\u0015\n\u0000\u0fed\u0fee"+ + "\u0003\u0007\u0003\u0000\u0fee\u0fef\u00031\u0018\u0000\u0fef\u0ff0\u0003"+ + "\u0017\u000b\u0000\u0ff0\u0ff1\u0003!\u0010\u0000\u0ff1\u0ff2\u0003\u0013"+ + "\t\u0000\u0ff2\u0238\u0001\u0000\u0000\u0000\u0ff3\u0ff4\u0003\u0015\n"+ + "\u0000\u0ff4\u0ff5\u0003\u0017\u000b\u0000\u0ff5\u0ff6\u0003\u000f\u0007"+ + "\u0000\u0ff6\u0ff7\u0003)\u0014\u0000\u0ff7\u0ff8\u0003\u0007\u0003\u0000"+ + "\u0ff8\u0ff9\u0003)\u0014\u0000\u0ff9\u0ffa\u0003\u000b\u0005\u0000\u0ffa"+ + "\u0ffb\u0003\u0015\n\u0000\u0ffb\u0ffc\u00037\u001b\u0000\u0ffc\u023a"+ + "\u0001\u0000\u0000\u0000\u0ffd\u0ffe\u0003\u0015\n\u0000\u0ffe\u0fff\u0003"+ + "#\u0011\u0000\u0fff\u1000\u0003\u001d\u000e\u0000\u1000\u1001\u0003\r"+ + "\u0006\u0000\u1001\u023c\u0001\u0000\u0000\u0000\u1002\u1003\u0003\u0015"+ + "\n\u0000\u1003\u1004\u0003#\u0011\u0000\u1004\u1005\u0003+\u0015\u0000"+ + "\u1005\u1006\u0003-\u0016\u0000\u1006\u023e\u0001\u0000\u0000\u0000\u1007"+ + "\u1008\u0003\u0015\n\u0000\u1008\u1009\u0003#\u0011\u0000\u1009\u100a"+ + "\u0003/\u0017\u0000\u100a\u100b\u0003)\u0014\u0000\u100b\u0240\u0001\u0000"+ + "\u0000\u0000\u100c\u100d\u0003\u0017\u000b\u0000\u100d\u100e\u0003\r\u0006"+ + "\u0000\u100e\u100f\u0003\u000f\u0007\u0000\u100f\u1010\u0003!\u0010\u0000"+ + "\u1010\u1011\u0003-\u0016\u0000\u1011\u1012\u0003\u0017\u000b\u0000\u1012"+ + "\u1013\u0003-\u0016\u0000\u1013\u1014\u00037\u001b\u0000\u1014\u0242\u0001"+ + "\u0000\u0000\u0000\u1015\u1016\u0003\u0017\u000b\u0000\u1016\u1017\u0003"+ + "\u0013\t\u0000\u1017\u1018\u0003!\u0010\u0000\u1018\u1019\u0003#\u0011"+ + "\u0000\u1019\u101a\u0003)\u0014\u0000\u101a\u101b\u0003\u000f\u0007\u0000"+ + "\u101b\u0244\u0001\u0000\u0000\u0000\u101c\u101d\u0003\u0017\u000b\u0000"+ + "\u101d\u101e\u0003\u001d\u000e\u0000\u101e\u101f\u0003\u0017\u000b\u0000"+ + "\u101f\u1020\u0003\u001b\r\u0000\u1020\u1021\u0003\u000f\u0007\u0000\u1021"+ + "\u0246\u0001\u0000\u0000\u0000\u1022\u1023\u0003\u0017\u000b\u0000\u1023"+ + "\u1024\u0003\u001f\u000f\u0000\u1024\u1025\u0003\u001f\u000f\u0000\u1025"+ + "\u1026\u0003\u000f\u0007\u0000\u1026\u1027\u0003\r\u0006\u0000\u1027\u1028"+ + "\u0003\u0017\u000b\u0000\u1028\u1029\u0003\u0007\u0003\u0000\u1029\u102a"+ + "\u0003-\u0016\u0000\u102a\u102b\u0003\u000f\u0007\u0000\u102b\u0248\u0001"+ + "\u0000\u0000\u0000\u102c\u102d\u0003\u0017\u000b\u0000\u102d\u102e\u0003"+ + "\u001f\u000f\u0000\u102e\u102f\u0003\u001f\u000f\u0000\u102f\u1030\u0003"+ + "/\u0017\u0000\u1030\u1031\u0003-\u0016\u0000\u1031\u1032\u0003\u0007\u0003"+ + "\u0000\u1032\u1033\u0003\t\u0004\u0000\u1033\u1034\u0003\u001d\u000e\u0000"+ + "\u1034\u1035\u0003\u000f\u0007\u0000\u1035\u024a\u0001\u0000\u0000\u0000"+ + "\u1036\u1037\u0003\u0017\u000b\u0000\u1037\u1038\u0003\u001f\u000f\u0000"+ + "\u1038\u1039\u0003%\u0012\u0000\u1039\u103a\u0003\u001d\u000e\u0000\u103a"+ + "\u103b\u0003\u000f\u0007\u0000\u103b\u103c\u0003\u001f\u000f\u0000\u103c"+ + "\u103d\u0003\u000f\u0007\u0000\u103d\u103e\u0003!\u0010\u0000\u103e\u103f"+ + "\u0003-\u0016\u0000\u103f\u1040\u0003\u0007\u0003\u0000\u1040\u1041\u0003"+ + "-\u0016\u0000\u1041\u1042\u0003\u0017\u000b\u0000\u1042\u1043\u0003#\u0011"+ + "\u0000\u1043\u1044\u0003!\u0010\u0000\u1044\u024c\u0001\u0000\u0000\u0000"+ + "\u1045\u1046\u0003\u0017\u000b\u0000\u1046\u1047\u0003\u001f\u000f\u0000"+ + "\u1047\u1048\u0003%\u0012\u0000\u1048\u1049\u0003\u001d\u000e\u0000\u1049"+ + "\u104a\u0003\u0017\u000b\u0000\u104a\u104b\u0003\u000b\u0005\u0000\u104b"+ + "\u104c\u0003\u0017\u000b\u0000\u104c\u104d\u0003-\u0016\u0000\u104d\u024e"+ + "\u0001\u0000\u0000\u0000\u104e\u104f\u0003\u0017\u000b\u0000\u104f\u1050"+ + "\u0003!\u0010\u0000\u1050\u0250\u0001\u0000\u0000\u0000\u1051\u1052\u0003"+ + "\u0017\u000b\u0000\u1052\u1053\u0003!\u0010\u0000\u1053\u1054\u0003\u000b"+ + "\u0005\u0000\u1054\u1055\u0003\u001d\u000e\u0000\u1055\u1056\u0003/\u0017"+ + "\u0000\u1056\u1057\u0003\r\u0006\u0000\u1057\u1058\u0003\u0017\u000b\u0000"+ + "\u1058\u1059\u0003!\u0010\u0000\u1059\u105a\u0003\u0013\t\u0000\u105a"+ + "\u0252\u0001\u0000\u0000\u0000\u105b\u105c\u0003\u0017\u000b\u0000\u105c"+ + "\u105d\u0003!\u0010\u0000\u105d\u105e\u0003\u000b\u0005\u0000\u105e\u105f"+ + "\u0003)\u0014\u0000\u105f\u1060\u0003\u000f\u0007\u0000\u1060\u1061\u0003"+ + "\u001f\u000f\u0000\u1061\u1062\u0003\u000f\u0007\u0000\u1062\u1063\u0003"+ + "!\u0010\u0000\u1063\u1064\u0003-\u0016\u0000\u1064\u0254\u0001\u0000\u0000"+ + "\u0000\u1065\u1066\u0003\u0017\u000b\u0000\u1066\u1067\u0003!\u0010\u0000"+ + "\u1067\u1068\u0003\r\u0006\u0000\u1068\u1069\u0003\u000f\u0007\u0000\u1069"+ + "\u106a\u00035\u001a\u0000\u106a\u0256\u0001\u0000\u0000\u0000\u106b\u106c"+ + "\u0003\u0017\u000b\u0000\u106c\u106d\u0003!\u0010\u0000\u106d\u106e\u0003"+ + "\r\u0006\u0000\u106e\u106f\u0003\u0017\u000b\u0000\u106f\u1070\u0003\u000b"+ + "\u0005\u0000\u1070\u1071\u0003\u0007\u0003\u0000\u1071\u1072\u0003-\u0016"+ + "\u0000\u1072\u1073\u0003#\u0011\u0000\u1073\u1074\u0003)\u0014\u0000\u1074"+ + "\u0258\u0001\u0000\u0000\u0000\u1075\u1076\u0003\u0017\u000b\u0000\u1076"+ + "\u1077\u0003!\u0010\u0000\u1077\u1078\u0003\u0011\b\u0000\u1078\u1079"+ + "\u0003\u0017\u000b\u0000\u1079\u107a\u00035\u001a\u0000\u107a\u025a\u0001"+ + "\u0000\u0000\u0000\u107b\u107c\u0003\u0017\u000b\u0000\u107c\u107d\u0003"+ + "!\u0010\u0000\u107d\u107e\u0003\u0015\n\u0000\u107e\u107f\u0003\u000f"+ + "\u0007\u0000\u107f\u1080\u0003)\u0014\u0000\u1080\u1081\u0003\u0017\u000b"+ + "\u0000\u1081\u1082\u0003-\u0016\u0000\u1082\u1083\u0003+\u0015\u0000\u1083"+ + "\u025c\u0001\u0000\u0000\u0000\u1084\u1085\u0003\u0017\u000b\u0000\u1085"+ + "\u1086\u0003!\u0010\u0000\u1086\u1087\u0003\u0017\u000b\u0000\u1087\u1088"+ + "\u0003-\u0016\u0000\u1088\u1089\u0003\u0017\u000b\u0000\u1089\u108a\u0003"+ + "\u0007\u0003\u0000\u108a\u108b\u0003\u001d\u000e\u0000\u108b\u108c\u0003"+ + "\u0017\u000b\u0000\u108c\u108d\u00039\u001c\u0000\u108d\u108e\u0003\u000f"+ + "\u0007\u0000\u108e\u025e\u0001\u0000\u0000\u0000\u108f\u1090\u0003\u0017"+ + "\u000b\u0000\u1090\u1091\u0003!\u0010\u0000\u1091\u1092\u0003\u0017\u000b"+ + "\u0000\u1092\u1093\u0003-\u0016\u0000\u1093\u1094\u0003\u0017\u000b\u0000"+ + "\u1094\u1095\u0003\u0007\u0003\u0000\u1095\u1096\u0003\u001d\u000e\u0000"+ + "\u1096\u1097\u0003\u001d\u000e\u0000\u1097\u1098\u00037\u001b\u0000\u1098"+ + "\u0260\u0001\u0000\u0000\u0000\u1099\u109a\u0003\u0017\u000b\u0000\u109a"+ + "\u109b\u0003!\u0010\u0000\u109b\u109c\u0003!\u0010\u0000\u109c\u109d\u0003"+ + "\u000f\u0007\u0000\u109d\u109e\u0003)\u0014\u0000\u109e\u0262\u0001\u0000"+ + "\u0000\u0000\u109f\u10a0\u0003\u0017\u000b\u0000\u10a0\u10a1\u0003!\u0010"+ + "\u0000\u10a1\u10a2\u0003#\u0011\u0000\u10a2\u10a3\u0003/\u0017\u0000\u10a3"+ + "\u10a4\u0003-\u0016\u0000\u10a4\u0264\u0001\u0000\u0000\u0000\u10a5\u10a6"+ + "\u0003\u0017\u000b\u0000\u10a6\u10a7\u0003!\u0010\u0000\u10a7\u10a8\u0003"+ + "%\u0012\u0000\u10a8\u10a9\u0003/\u0017\u0000\u10a9\u10aa\u0003-\u0016"+ + "\u0000\u10aa\u0266\u0001\u0000\u0000\u0000\u10ab\u10ac\u0003\u0017\u000b"+ + "\u0000\u10ac\u10ad\u0003!\u0010\u0000\u10ad\u10ae\u0003+\u0015\u0000\u10ae"+ + "\u10af\u0003\u000f\u0007\u0000\u10af\u10b0\u0003!\u0010\u0000\u10b0\u10b1"+ + "\u0003+\u0015\u0000\u10b1\u10b2\u0003\u0017\u000b\u0000\u10b2\u10b3\u0003"+ + "-\u0016\u0000\u10b3\u10b4\u0003\u0017\u000b\u0000\u10b4\u10b5\u00031\u0018"+ + "\u0000\u10b5\u10b6\u0003\u000f\u0007\u0000\u10b6\u0268\u0001\u0000\u0000"+ + "\u0000\u10b7\u10b8\u0003\u0017\u000b\u0000\u10b8\u10b9\u0003!\u0010\u0000"+ + "\u10b9\u10ba\u0003+\u0015\u0000\u10ba\u10bb\u0003\u000f\u0007\u0000\u10bb"+ + "\u10bc\u0003)\u0014\u0000\u10bc\u10bd\u0003-\u0016\u0000\u10bd\u026a\u0001"+ + "\u0000\u0000\u0000\u10be\u10bf\u0003\u0017\u000b\u0000\u10bf\u10c0\u0003"+ + "!\u0010\u0000\u10c0\u10c1\u0003+\u0015\u0000\u10c1\u10c2\u0003-\u0016"+ + "\u0000\u10c2\u10c3\u0003\u0007\u0003\u0000\u10c3\u10c4\u0003!\u0010\u0000"+ + "\u10c4\u10c5\u0003\u000b\u0005\u0000\u10c5\u10c6\u0003\u000f\u0007\u0000"+ + "\u10c6\u026c\u0001\u0000\u0000\u0000\u10c7\u10c8\u0003\u0017\u000b\u0000"+ + "\u10c8\u10c9\u0003!\u0010\u0000\u10c9\u10ca\u0003+\u0015\u0000\u10ca\u10cb"+ + "\u0003-\u0016\u0000\u10cb\u10cc\u0003\u0007\u0003\u0000\u10cc\u10cd\u0003"+ + "!\u0010\u0000\u10cd\u10ce\u0003-\u0016\u0000\u10ce\u10cf\u0003\u0017\u000b"+ + "\u0000\u10cf\u10d0\u0003\u0007\u0003\u0000\u10d0\u10d1\u0003\t\u0004\u0000"+ + "\u10d1\u10d2\u0003\u001d\u000e\u0000\u10d2\u10d3\u0003\u000f\u0007\u0000"+ + "\u10d3\u026e\u0001\u0000\u0000\u0000\u10d4\u10d5\u0003\u0017\u000b\u0000"+ + "\u10d5\u10d6\u0003!\u0010\u0000\u10d6\u10d7\u0003+\u0015\u0000\u10d7\u10d8"+ + "\u0003-\u0016\u0000\u10d8\u10d9\u0003\u000f\u0007\u0000\u10d9\u10da\u0003"+ + "\u0007\u0003\u0000\u10da\u10db\u0003\r\u0006\u0000\u10db\u0270\u0001\u0000"+ + "\u0000\u0000\u10dc\u10dd\u0003\u0017\u000b\u0000\u10dd\u10de\u0003!\u0010"+ + "\u0000\u10de\u10df\u0003-\u0016\u0000\u10df\u0272\u0001\u0000\u0000\u0000"+ + "\u10e0\u10e1\u0003\u0017\u000b\u0000\u10e1\u10e2\u0003!\u0010\u0000\u10e2"+ + "\u10e3\u0003-\u0016\u0000\u10e3\u10e4\u0003\u000f\u0007\u0000\u10e4\u10e5"+ + "\u0003\u0013\t\u0000\u10e5\u10e6\u0003\u000f\u0007\u0000\u10e6\u10e7\u0003"+ + ")\u0014\u0000\u10e7\u0274\u0001\u0000\u0000\u0000\u10e8\u10e9\u0003\u0017"+ + "\u000b\u0000\u10e9\u10ea\u0003!\u0010\u0000\u10ea\u10eb\u0003-\u0016\u0000"+ + "\u10eb\u10ec\u0003\u000f\u0007\u0000\u10ec\u10ed\u0003)\u0014\u0000\u10ed"+ + "\u10ee\u0003+\u0015\u0000\u10ee\u10ef\u0003\u000f\u0007\u0000\u10ef\u10f0"+ + "\u0003\u000b\u0005\u0000\u10f0\u10f1\u0003-\u0016\u0000\u10f1\u0276\u0001"+ + "\u0000\u0000\u0000\u10f2\u10f3\u0003\u0017\u000b\u0000\u10f3\u10f4\u0003"+ + "!\u0010\u0000\u10f4\u10f5\u0003-\u0016\u0000\u10f5\u10f6\u0003\u000f\u0007"+ + "\u0000\u10f6\u10f7\u0003)\u0014\u0000\u10f7\u10f8\u0003+\u0015\u0000\u10f8"+ + "\u10f9\u0003\u000f\u0007\u0000\u10f9\u10fa\u0003\u000b\u0005\u0000\u10fa"+ + "\u10fb\u0003-\u0016\u0000\u10fb\u10fc\u0003\u0017\u000b\u0000\u10fc\u10fd"+ + "\u0003#\u0011\u0000\u10fd\u10fe\u0003!\u0010\u0000\u10fe\u0278\u0001\u0000"+ + "\u0000\u0000\u10ff\u1100\u0003\u0017\u000b\u0000\u1100\u1101\u0003!\u0010"+ + "\u0000\u1101\u1102\u0003-\u0016\u0000\u1102\u1103\u0003\u000f\u0007\u0000"+ + "\u1103\u1104\u0003)\u0014\u0000\u1104\u1105\u00031\u0018\u0000\u1105\u1106"+ + "\u0003\u0007\u0003\u0000\u1106\u1107\u0003\u001d\u000e\u0000\u1107\u027a"+ + "\u0001\u0000\u0000\u0000\u1108\u1109\u0003\u0017\u000b\u0000\u1109\u110a"+ + "\u0003!\u0010\u0000\u110a\u110b\u0003-\u0016\u0000\u110b\u110c\u0003#"+ + "\u0011\u0000\u110c\u027c\u0001\u0000\u0000\u0000\u110d\u110e\u0003\u0017"+ + "\u000b\u0000\u110e\u110f\u0003!\u0010\u0000\u110f\u1110\u00031\u0018\u0000"+ + "\u1110\u1111\u0003#\u0011\u0000\u1111\u1112\u0003\u001b\r\u0000\u1112"+ + "\u1113\u0003\u000f\u0007\u0000\u1113\u1114\u0003)\u0014\u0000\u1114\u027e"+ + "\u0001\u0000\u0000\u0000\u1115\u1116\u0003\u0017\u000b\u0000\u1116\u1117"+ + "\u0003+\u0015\u0000\u1117\u0280\u0001\u0000\u0000\u0000\u1118\u1119\u0003"+ + "\u0017\u000b\u0000\u1119\u111a\u0003+\u0015\u0000\u111a\u111b\u0003#\u0011"+ + "\u0000\u111b\u111c\u0003\u001d\u000e\u0000\u111c\u111d\u0003\u0007\u0003"+ + "\u0000\u111d\u111e\u0003-\u0016\u0000\u111e\u111f\u0003\u0017\u000b\u0000"+ + "\u111f\u1120\u0003#\u0011\u0000\u1120\u1121\u0003!\u0010\u0000\u1121\u0282"+ + "\u0001\u0000\u0000\u0000\u1122\u1123\u0003\u0017\u000b\u0000\u1123\u1124"+ + "\u0003-\u0016\u0000\u1124\u1125\u0003\u000f\u0007\u0000\u1125\u1126\u0003"+ + ")\u0014\u0000\u1126\u1127\u0003\u0007\u0003\u0000\u1127\u1128\u0003-\u0016"+ + "\u0000\u1128\u1129\u0003\u000f\u0007\u0000\u1129\u0284\u0001\u0000\u0000"+ + "\u0000\u112a\u112b\u0003\u0019\f\u0000\u112b\u112c\u0003#\u0011\u0000"+ + "\u112c\u112d\u0003\u0017\u000b\u0000\u112d\u112e\u0003!\u0010\u0000\u112e"+ + "\u0286\u0001\u0000\u0000\u0000\u112f\u1130\u0003\u001b\r\u0000\u1130\u0288"+ + "\u0001\u0000\u0000\u0000\u1131\u1132\u0003\u001b\r\u0000\u1132\u1133\u0003"+ + "\u000f\u0007\u0000\u1133\u1134\u00037\u001b\u0000\u1134\u028a\u0001\u0000"+ + "\u0000\u0000\u1135\u1136\u0003\u001b\r\u0000\u1136\u1137\u0003\u000f\u0007"+ + "\u0000\u1137\u1138\u00037\u001b\u0000\u1138\u1139\u0005_\u0000\u0000\u1139"+ + "\u113a\u0003\u001f\u000f\u0000\u113a\u113b\u0003\u000f\u0007\u0000\u113b"+ + "\u113c\u0003\u001f\u000f\u0000\u113c\u113d\u0003\t\u0004\u0000\u113d\u113e"+ + "\u0003\u000f\u0007\u0000\u113e\u113f\u0003)\u0014\u0000\u113f\u028c\u0001"+ + "\u0000\u0000\u0000\u1140\u1141\u0003\u001b\r\u0000\u1141\u1142\u0003\u000f"+ + "\u0007\u0000\u1142\u1143\u00037\u001b\u0000\u1143\u1144\u0005_\u0000\u0000"+ + "\u1144\u1145\u0003-\u0016\u0000\u1145\u1146\u00037\u001b\u0000\u1146\u1147"+ + "\u0003%\u0012\u0000\u1147\u1148\u0003\u000f\u0007\u0000\u1148\u028e\u0001"+ + "\u0000\u0000\u0000\u1149\u114a\u0003\u001d\u000e\u0000\u114a\u114b\u0003"+ + "\u0007\u0003\u0000\u114b\u114c\u0003\t\u0004\u0000\u114c\u114d\u0003\u000f"+ + "\u0007\u0000\u114d\u114e\u0003\u001d\u000e\u0000\u114e\u0290\u0001\u0000"+ + "\u0000\u0000\u114f\u1150\u0003\u001d\u000e\u0000\u1150\u1151\u0003\u0007"+ + "\u0003\u0000\u1151\u1152\u0003!\u0010\u0000\u1152\u1153\u0003\u000b\u0005"+ + "\u0000\u1153\u1154\u0003#\u0011\u0000\u1154\u1155\u0003\u001f\u000f\u0000"+ + "\u1155\u1156\u0003%\u0012\u0000\u1156\u1157\u0003\u0017\u000b\u0000\u1157"+ + "\u1158\u0003\u001d\u000e\u0000\u1158\u1159\u0003\u000f\u0007\u0000\u1159"+ + "\u115a\u0003)\u0014\u0000\u115a\u0292\u0001\u0000\u0000\u0000\u115b\u115c"+ + "\u0003\u001d\u000e\u0000\u115c\u115d\u0003\u0007\u0003\u0000\u115d\u115e"+ + "\u0003!\u0010\u0000\u115e\u115f\u0003\u0013\t\u0000\u115f\u1160\u0003"+ + "/\u0017\u0000\u1160\u1161\u0003\u0007\u0003\u0000\u1161\u1162\u0003\u0013"+ + "\t\u0000\u1162\u1163\u0003\u000f\u0007\u0000\u1163\u0294\u0001\u0000\u0000"+ + "\u0000\u1164\u1165\u0003\u001d\u000e\u0000\u1165\u1166\u0003\u0007\u0003"+ + "\u0000\u1166\u1167\u0003)\u0014\u0000\u1167\u1168\u0003\u0013\t\u0000"+ + "\u1168\u1169\u0003\u000f\u0007\u0000\u1169\u0296\u0001\u0000\u0000\u0000"+ + "\u116a\u116b\u0003\u001d\u000e\u0000\u116b\u116c\u0003\u0007\u0003\u0000"+ + "\u116c\u116d\u0003+\u0015\u0000\u116d\u116e\u0003-\u0016\u0000\u116e\u0298"+ + "\u0001\u0000\u0000\u0000\u116f\u1170\u0003\u001d\u000e\u0000\u1170\u1171"+ + "\u0003\u0007\u0003\u0000\u1171\u1172\u0003-\u0016\u0000\u1172\u1173\u0003"+ + "\u000f\u0007\u0000\u1173\u1174\u0003)\u0014\u0000\u1174\u1175\u0003\u0007"+ + "\u0003\u0000\u1175\u1176\u0003\u001d\u000e\u0000\u1176\u029a\u0001\u0000"+ + "\u0000\u0000\u1177\u1178\u0003\u001d\u000e\u0000\u1178\u1179\u0003\u000f"+ + "\u0007\u0000\u1179\u117a\u0003\u0007\u0003\u0000\u117a\u117b\u0003\r\u0006"+ + "\u0000\u117b\u117c\u0003\u0017\u000b\u0000\u117c\u117d\u0003!\u0010\u0000"+ + "\u117d\u117e\u0003\u0013\t\u0000\u117e\u029c\u0001\u0000\u0000\u0000\u117f"+ + "\u1180\u0003\u001d\u000e\u0000\u1180\u1181\u0003\u000f\u0007\u0000\u1181"+ + "\u1182\u0003\u0007\u0003\u0000\u1182\u1183\u0003+\u0015\u0000\u1183\u1184"+ + "\u0003-\u0016\u0000\u1184\u029e\u0001\u0000\u0000\u0000\u1185\u1186\u0003"+ + "\u001d\u000e\u0000\u1186\u1187\u0003\u000f\u0007\u0000\u1187\u1188\u0003"+ + "\u0011\b\u0000\u1188\u1189\u0003-\u0016\u0000\u1189\u02a0\u0001\u0000"+ + "\u0000\u0000\u118a\u118b\u0003\u001d\u000e\u0000\u118b\u118c\u0003\u000f"+ + "\u0007\u0000\u118c\u118d\u0003!\u0010\u0000\u118d\u118e\u0003\u0013\t"+ + "\u0000\u118e\u118f\u0003-\u0016\u0000\u118f\u1190\u0003\u0015\n\u0000"+ + "\u1190\u02a2\u0001\u0000\u0000\u0000\u1191\u1192\u0003\u001d\u000e\u0000"+ + "\u1192\u1193\u0003\u000f\u0007\u0000\u1193\u1194\u0003+\u0015\u0000\u1194"+ + "\u1195\u0003+\u0015\u0000\u1195\u02a4\u0001\u0000\u0000\u0000\u1196\u1197"+ + "\u0003\u001d\u000e\u0000\u1197\u1198\u0003\u000f\u0007\u0000\u1198\u1199"+ + "\u00031\u0018\u0000\u1199\u119a\u0003\u000f\u0007\u0000\u119a\u119b\u0003"+ + "\u001d\u000e\u0000\u119b\u02a6\u0001\u0000\u0000\u0000\u119c\u119d\u0003"+ + "\u001d\u000e\u0000\u119d\u119e\u0003\u0017\u000b\u0000\u119e\u119f\u0003"+ + "\u001b\r\u0000\u119f\u11a0\u0003\u000f\u0007\u0000\u11a0\u02a8\u0001\u0000"+ + "\u0000\u0000\u11a1\u11a2\u0003\u001d\u000e\u0000\u11a2\u11a3\u0003\u0017"+ + "\u000b\u0000\u11a3\u11a4\u0003\u001f\u000f\u0000\u11a4\u11a5\u0003\u0017"+ + "\u000b\u0000\u11a5\u11a6\u0003-\u0016\u0000\u11a6\u02aa\u0001\u0000\u0000"+ + "\u0000\u11a7\u11a8\u0003\u001d\u000e\u0000\u11a8\u11a9\u0003\u0017\u000b"+ + "\u0000\u11a9\u11aa\u0003+\u0015\u0000\u11aa\u11ab\u0003-\u0016\u0000\u11ab"+ + "\u11ac\u0003\u000f\u0007\u0000\u11ac\u11ad\u0003!\u0010\u0000\u11ad\u02ac"+ + "\u0001\u0000\u0000\u0000\u11ae\u11af\u0003\u001d\u000e\u0000\u11af\u11b0"+ + "\u0003!\u0010\u0000\u11b0\u02ae\u0001\u0000\u0000\u0000\u11b1\u11b2\u0003"+ + "\u001d\u000e\u0000\u11b2\u11b3\u0003#\u0011\u0000\u11b3\u11b4\u0003\u0007"+ + "\u0003\u0000\u11b4\u11b5\u0003\r\u0006\u0000\u11b5\u02b0\u0001\u0000\u0000"+ + "\u0000\u11b6\u11b7\u0003\u001d\u000e\u0000\u11b7\u11b8\u0003#\u0011\u0000"+ + "\u11b8\u11b9\u0003\u000b\u0005\u0000\u11b9\u11ba\u0003\u0007\u0003\u0000"+ + "\u11ba\u11bb\u0003\u001d\u000e\u0000\u11bb\u02b2\u0001\u0000\u0000\u0000"+ + "\u11bc\u11bd\u0003\u001d\u000e\u0000\u11bd\u11be\u0003#\u0011\u0000\u11be"+ + "\u11bf\u0003\u000b\u0005\u0000\u11bf\u11c0\u0003\u0007\u0003\u0000\u11c0"+ + "\u11c1\u0003\u001d\u000e\u0000\u11c1\u11c2\u0003-\u0016\u0000\u11c2\u11c3"+ + "\u0003\u0017\u000b\u0000\u11c3\u11c4\u0003\u001f\u000f\u0000\u11c4\u11c5"+ + "\u0003\u000f\u0007\u0000\u11c5\u02b4\u0001\u0000\u0000\u0000\u11c6\u11c7"+ + "\u0003\u001d\u000e\u0000\u11c7\u11c8\u0003#\u0011\u0000\u11c8\u11c9\u0003"+ + "\u000b\u0005\u0000\u11c9\u11ca\u0003\u0007\u0003\u0000\u11ca\u11cb\u0003"+ + "\u001d\u000e\u0000\u11cb\u11cc\u0003-\u0016\u0000\u11cc\u11cd\u0003\u0017"+ + "\u000b\u0000\u11cd\u11ce\u0003\u001f\u000f\u0000\u11ce\u11cf\u0003\u000f"+ + "\u0007\u0000\u11cf\u11d0\u0003+\u0015\u0000\u11d0\u11d1\u0003-\u0016\u0000"+ + "\u11d1\u11d2\u0003\u0007\u0003\u0000\u11d2\u11d3\u0003\u001f\u000f\u0000"+ + "\u11d3\u11d4\u0003%\u0012\u0000\u11d4\u02b6\u0001\u0000\u0000\u0000\u11d5"+ + "\u11d6\u0003\u001d\u000e\u0000\u11d6\u11d7\u0003#\u0011\u0000\u11d7\u11d8"+ + "\u0003\u000b\u0005\u0000\u11d8\u11d9\u0003\u0007\u0003\u0000\u11d9\u11da"+ + "\u0003-\u0016\u0000\u11da\u11db\u0003\u0017\u000b\u0000\u11db\u11dc\u0003"+ + "#\u0011\u0000\u11dc\u11dd\u0003!\u0010\u0000\u11dd\u02b8\u0001\u0000\u0000"+ + "\u0000\u11de\u11df\u0003\u001d\u000e\u0000\u11df\u11e0\u0003#\u0011\u0000"+ + "\u11e0\u11e1\u0003\u000b\u0005\u0000\u11e1\u11e2\u0003\u0007\u0003\u0000"+ + "\u11e2\u11e3\u0003-\u0016\u0000\u11e3\u11e4\u0003#\u0011\u0000\u11e4\u11e5"+ + "\u0003)\u0014\u0000\u11e5\u02ba\u0001\u0000\u0000\u0000\u11e6\u11e7\u0003"+ + "\u001d\u000e\u0000\u11e7\u11e8\u0003#\u0011\u0000\u11e8\u11e9\u0003\u000b"+ + "\u0005\u0000\u11e9\u11ea\u0003\u001b\r\u0000\u11ea\u02bc\u0001\u0000\u0000"+ + "\u0000\u11eb\u11ec\u0003\u001d\u000e\u0000\u11ec\u11ed\u0003#\u0011\u0000"+ + "\u11ed\u11ee\u0003\u000b\u0005\u0000\u11ee\u11ef\u0003\u001b\r\u0000\u11ef"+ + "\u11f0\u0003\u000f\u0007\u0000\u11f0\u11f1\u0003\r\u0006\u0000\u11f1\u02be"+ + "\u0001\u0000\u0000\u0000\u11f2\u11f3\u0003\u001d\u000e\u0000\u11f3\u11f4"+ + "\u0003#\u0011\u0000\u11f4\u11f5\u00033\u0019\u0000\u11f5\u11f6\u0003\u000f"+ + "\u0007\u0000\u11f6\u11f7\u0003)\u0014\u0000\u11f7\u02c0\u0001\u0000\u0000"+ + "\u0000\u11f8\u11f9\u0003\u001f\u000f\u0000\u11f9\u02c2\u0001\u0000\u0000"+ + "\u0000\u11fa\u11fb\u0003\u001f\u000f\u0000\u11fb\u11fc\u0003\u0007\u0003"+ + "\u0000\u11fc\u11fd\u0003\u0017\u000b\u0000\u11fd\u11fe\u0003!\u0010\u0000"+ + "\u11fe\u02c4\u0001\u0000\u0000\u0000\u11ff\u1200\u0003\u001f\u000f\u0000"+ + "\u1200\u1201\u0003\u0007\u0003\u0000\u1201\u1202\u0003%\u0012\u0000\u1202"+ + "\u02c6\u0001\u0000\u0000\u0000\u1203\u1204\u0003\u001f\u000f\u0000\u1204"+ + "\u1205\u0003\u0007\u0003\u0000\u1205\u1206\u0003%\u0012\u0000\u1206\u1207"+ + "\u0003%\u0012\u0000\u1207\u1208\u0003\u0017\u000b\u0000\u1208\u1209\u0003"+ + "!\u0010\u0000\u1209\u120a\u0003\u0013\t\u0000\u120a\u02c8\u0001\u0000"+ + "\u0000\u0000\u120b\u120c\u0003\u001f\u000f\u0000\u120c\u120d\u0003\u0007"+ + "\u0003\u0000\u120d\u120e\u0003-\u0016\u0000\u120e\u120f\u0003\u000b\u0005"+ + "\u0000\u120f\u1210\u0003\u0015\n\u0000\u1210\u02ca\u0001\u0000\u0000\u0000"+ + "\u1211\u1212\u0003\u001f\u000f\u0000\u1212\u1213\u0003\u0007\u0003\u0000"+ + "\u1213\u1214\u0003-\u0016\u0000\u1214\u1215\u0003\u000b\u0005\u0000\u1215"+ + "\u1216\u0003\u0015\n\u0000\u1216\u1217\u0005_\u0000\u0000\u1217\u1218"+ + "\u0003+\u0015\u0000\u1218\u1219\u0003\u0017\u000b\u0000\u1219\u121a\u0003"+ + "\u001f\u000f\u0000\u121a\u121b\u0003%\u0012\u0000\u121b\u121c\u0003\u001d"+ + "\u000e\u0000\u121c\u121d\u0003\u000f\u0007\u0000\u121d\u02cc\u0001\u0000"+ + "\u0000\u0000\u121e\u121f\u0003\u001f\u000f\u0000\u121f\u1220\u0003\u0007"+ + "\u0003\u0000\u1220\u1221\u0003-\u0016\u0000\u1221\u1222\u0003\u000b\u0005"+ + "\u0000\u1222\u1223\u0003\u0015\n\u0000\u1223\u1224\u0003\u000f\u0007\u0000"+ + "\u1224\u1225\u0003\r\u0006\u0000\u1225\u02ce\u0001\u0000\u0000\u0000\u1226"+ + "\u1227\u0003\u001f\u000f\u0000\u1227\u1228\u0003\u0007\u0003\u0000\u1228"+ + "\u1229\u00035\u001a\u0000\u1229\u02d0\u0001\u0000\u0000\u0000\u122a\u122b"+ + "\u0003\u001f\u000f\u0000\u122b\u122c\u0003\u0007\u0003\u0000\u122c\u122d"+ + "\u00035\u001a\u0000\u122d\u122e\u00031\u0018\u0000\u122e\u122f\u0003\u0007"+ + "\u0003\u0000\u122f\u1230\u0003\u001d\u000e\u0000\u1230\u1231\u0003/\u0017"+ + "\u0000\u1231\u1232\u0003\u000f\u0007\u0000\u1232\u02d2\u0001\u0000\u0000"+ + "\u0000\u1233\u1234\u0003\u001f\u000f\u0000\u1234\u1235\u0003\u000f\u0007"+ + "\u0000\u1235\u1236\u0003\u001f\u000f\u0000\u1236\u1237\u0003\t\u0004\u0000"+ + "\u1237\u1238\u0003\u000f\u0007\u0000\u1238\u1239\u0003)\u0014\u0000\u1239"+ + "\u02d4\u0001\u0000\u0000\u0000\u123a\u123b\u0003\u001f\u000f\u0000\u123b"+ + "\u123c\u0003\u000f\u0007\u0000\u123c\u123d\u0003)\u0014\u0000\u123d\u123e"+ + "\u0003\u0013\t\u0000\u123e\u123f\u0003\u000f\u0007\u0000\u123f\u02d6\u0001"+ + "\u0000\u0000\u0000\u1240\u1241\u0003\u001f\u000f\u0000\u1241\u1242\u0003"+ + "\u000f\u0007\u0000\u1242\u1243\u0003+\u0015\u0000\u1243\u1244\u0003+\u0015"+ + "\u0000\u1244\u1245\u0003\u0007\u0003\u0000\u1245\u1246\u0003\u0013\t\u0000"+ + "\u1246\u1247\u0003\u000f\u0007\u0000\u1247\u1248\u0005_\u0000\u0000\u1248"+ + "\u1249\u0003\u001d\u000e\u0000\u1249\u124a\u0003\u000f\u0007\u0000\u124a"+ + "\u124b\u0003!\u0010\u0000\u124b\u124c\u0003\u0013\t\u0000\u124c\u124d"+ + "\u0003-\u0016\u0000\u124d\u124e\u0003\u0015\n\u0000\u124e\u02d8\u0001"+ + "\u0000\u0000\u0000\u124f\u1250\u0003\u001f\u000f\u0000\u1250\u1251\u0003"+ + "\u000f\u0007\u0000\u1251\u1252\u0003+\u0015\u0000\u1252\u1253\u0003+\u0015"+ + "\u0000\u1253\u1254\u0003\u0007\u0003\u0000\u1254\u1255\u0003\u0013\t\u0000"+ + "\u1255\u1256\u0003\u000f\u0007\u0000\u1256\u1257\u0005_\u0000\u0000\u1257"+ + "\u1258\u0003#\u0011\u0000\u1258\u1259\u0003\u000b\u0005\u0000\u1259\u125a"+ + "\u0003-\u0016\u0000\u125a\u125b\u0003\u000f\u0007\u0000\u125b\u125c\u0003"+ + "-\u0016\u0000\u125c\u125d\u0005_\u0000\u0000\u125d\u125e\u0003\u001d\u000e"+ + "\u0000\u125e\u125f\u0003\u000f\u0007\u0000\u125f\u1260\u0003!\u0010\u0000"+ + "\u1260\u1261\u0003\u0013\t\u0000\u1261\u1262\u0003-\u0016\u0000\u1262"+ + "\u1263\u0003\u0015\n\u0000\u1263\u02da\u0001\u0000\u0000\u0000\u1264\u1265"+ + "\u0003\u001f\u000f\u0000\u1265\u1266\u0003\u000f\u0007\u0000\u1266\u1267"+ + "\u0003+\u0015\u0000\u1267\u1268\u0003+\u0015\u0000\u1268\u1269\u0003\u0007"+ + "\u0003\u0000\u1269\u126a\u0003\u0013\t\u0000\u126a\u126b\u0003\u000f\u0007"+ + "\u0000\u126b\u126c\u0005_\u0000\u0000\u126c\u126d\u0003-\u0016\u0000\u126d"+ + "\u126e\u0003\u000f\u0007\u0000\u126e\u126f\u00035\u001a\u0000\u126f\u1270"+ + "\u0003-\u0016\u0000\u1270\u02dc\u0001\u0000\u0000\u0000\u1271\u1272\u0003"+ + "\u001f\u000f\u0000\u1272\u1273\u0003\u000f\u0007\u0000\u1273\u1274\u0003"+ + "-\u0016\u0000\u1274\u1275\u0003\u0015\n\u0000\u1275\u1276\u0003#\u0011"+ + "\u0000\u1276\u1277\u0003\r\u0006\u0000\u1277\u02de\u0001\u0000\u0000\u0000"+ + "\u1278\u1279\u0003\u001f\u000f\u0000\u1279\u127a\u0003\u0017\u000b\u0000"+ + "\u127a\u127b\u0003!\u0010\u0000\u127b\u02e0\u0001\u0000\u0000\u0000\u127c"+ + "\u127d\u0003\u001f\u000f\u0000\u127d\u127e\u0003\u0017\u000b\u0000\u127e"+ + "\u127f\u0003!\u0010\u0000\u127f\u1280\u0003/\u0017\u0000\u1280\u1281\u0003"+ + "-\u0016\u0000\u1281\u1282\u0003\u000f\u0007\u0000\u1282\u02e2\u0001\u0000"+ + "\u0000\u0000\u1283\u1284\u0003\u001f\u000f\u0000\u1284\u1285\u0003\u0017"+ + "\u000b\u0000\u1285\u1286\u0003!\u0010\u0000\u1286\u1287\u00031\u0018\u0000"+ + "\u1287\u1288\u0003\u0007\u0003\u0000\u1288\u1289\u0003\u001d\u000e\u0000"+ + "\u1289\u128a\u0003/\u0017\u0000\u128a\u128b\u0003\u000f\u0007\u0000\u128b"+ + "\u02e4\u0001\u0000\u0000\u0000\u128c\u128d\u0003\u001f\u000f\u0000\u128d"+ + "\u128e\u0003#\u0011\u0000\u128e\u128f\u0003\r\u0006\u0000\u128f\u02e6"+ + "\u0001\u0000\u0000\u0000\u1290\u1291\u0003\u001f\u000f\u0000\u1291\u1292"+ + "\u0003#\u0011\u0000\u1292\u1293\u0003\r\u0006\u0000\u1293\u1294\u0003"+ + "\u000f\u0007\u0000\u1294\u02e8\u0001\u0000\u0000\u0000\u1295\u1296\u0003"+ + "\u001f\u000f\u0000\u1296\u1297\u0003#\u0011\u0000\u1297\u1298\u0003\r"+ + "\u0006\u0000\u1298\u1299\u0003\u0017\u000b\u0000\u1299\u129a\u0003\u0011"+ + "\b\u0000\u129a\u129b\u0003\u0017\u000b\u0000\u129b\u129c\u0003\u000f\u0007"+ + "\u0000\u129c\u129d\u0003+\u0015\u0000\u129d\u02ea\u0001\u0000\u0000\u0000"+ + "\u129e\u129f\u0003\u001f\u000f\u0000\u129f\u12a0\u0003#\u0011\u0000\u12a0"+ + "\u12a1\u0003\r\u0006\u0000\u12a1\u12a2\u0003\u0017\u000b\u0000\u12a2\u12a3"+ + "\u0003\u0011\b\u0000\u12a3\u12a4\u00037\u001b\u0000\u12a4\u02ec\u0001"+ + "\u0000\u0000\u0000\u12a5\u12a6\u0003\u001f\u000f\u0000\u12a6\u12a7\u0003"+ + "#\u0011\u0000\u12a7\u12a8\u0003\r\u0006\u0000\u12a8\u12a9\u0003/\u0017"+ + "\u0000\u12a9\u12aa\u0003\u001d\u000e\u0000\u12aa\u12ab\u0003\u000f\u0007"+ + "\u0000\u12ab\u02ee\u0001\u0000\u0000\u0000\u12ac\u12ad\u0003\u001f\u000f"+ + "\u0000\u12ad\u12ae\u0003#\u0011\u0000\u12ae\u12af\u0003!\u0010\u0000\u12af"+ + "\u12b0\u0003-\u0016\u0000\u12b0\u12b1\u0003\u0015\n\u0000\u12b1\u02f0"+ + "\u0001\u0000\u0000\u0000\u12b2\u12b3\u0003\u001f\u000f\u0000\u12b3\u12b4"+ + "\u0003#\u0011\u0000\u12b4\u12b5\u0003)\u0014\u0000\u12b5\u12b6\u0003\u000f"+ + "\u0007\u0000\u12b6\u02f2\u0001\u0000\u0000\u0000\u12b7\u12b8\u0003\u001f"+ + "\u000f\u0000\u12b8\u12b9\u0003#\u0011\u0000\u12b9\u12ba\u00031\u0018\u0000"+ + "\u12ba\u12bb\u0003\u000f\u0007\u0000\u12bb\u02f4\u0001\u0000\u0000\u0000"+ + "\u12bc\u12bd\u0003\u001f\u000f\u0000\u12bd\u12be\u0003/\u0017\u0000\u12be"+ + "\u12bf\u0003\u001d\u000e\u0000\u12bf\u12c0\u0003-\u0016\u0000\u12c0\u12c1"+ + "\u0003\u0017\u000b\u0000\u12c1\u12c2\u0003+\u0015\u0000\u12c2\u12c3\u0003"+ + "\u000f\u0007\u0000\u12c3\u12c4\u0003-\u0016\u0000\u12c4\u02f6\u0001\u0000"+ + "\u0000\u0000\u12c5\u12c6\u0003\u001f\u000f\u0000\u12c6\u12c7\u0003/\u0017"+ + "\u0000\u12c7\u12c8\u0003\u001f\u000f\u0000\u12c8\u12c9\u0003%\u0012\u0000"+ + "\u12c9\u12ca\u0003+\u0015\u0000\u12ca\u02f8\u0001\u0000\u0000\u0000\u12cb"+ + "\u12cc\u0003!\u0010\u0000\u12cc\u12cd\u0003\u0007\u0003\u0000\u12cd\u12ce"+ + "\u0003\u001f\u000f\u0000\u12ce\u12cf\u0003\u000f\u0007\u0000\u12cf\u02fa"+ + "\u0001\u0000\u0000\u0000\u12d0\u12d1\u0003!\u0010\u0000\u12d1\u12d2\u0003"+ + "\u0007\u0003\u0000\u12d2\u12d3\u0003\u001f\u000f\u0000\u12d3\u12d4\u0003"+ + "\u000f\u0007\u0000\u12d4\u12d5\u0003+\u0015\u0000\u12d5\u02fc\u0001\u0000"+ + "\u0000\u0000\u12d6\u12d7\u0003!\u0010\u0000\u12d7\u12d8\u0003\u0007\u0003"+ + "\u0000\u12d8\u12d9\u0003-\u0016\u0000\u12d9\u12da\u0003\u0017\u000b\u0000"+ + "\u12da\u12db\u0003#\u0011\u0000\u12db\u12dc\u0003!\u0010\u0000\u12dc\u12dd"+ + "\u0003\u0007\u0003\u0000\u12dd\u12de\u0003\u001d\u000e\u0000\u12de\u02fe"+ + "\u0001\u0000\u0000\u0000\u12df\u12e0\u0003!\u0010\u0000\u12e0\u12e1\u0003"+ + "\u0007\u0003\u0000\u12e1\u12e2\u0003-\u0016\u0000\u12e2\u12e3\u0003/\u0017"+ + "\u0000\u12e3\u12e4\u0003)\u0014\u0000\u12e4\u12e5\u0003\u0007\u0003\u0000"+ + "\u12e5\u12e6\u0003\u001d\u000e\u0000\u12e6\u0300\u0001\u0000\u0000\u0000"+ + "\u12e7\u12e8\u0003!\u0010\u0000\u12e8\u12e9\u0003\u000b\u0005\u0000\u12e9"+ + "\u12ea\u0003\u0015\n\u0000\u12ea\u12eb\u0003\u0007\u0003\u0000\u12eb\u12ec"+ + "\u0003)\u0014\u0000\u12ec\u0302\u0001\u0000\u0000\u0000\u12ed\u12ee\u0003"+ + "!\u0010\u0000\u12ee\u12ef\u0003\u000b\u0005\u0000\u12ef\u12f0\u0003\u001d"+ + "\u000e\u0000\u12f0\u12f1\u0003#\u0011\u0000\u12f1\u12f2\u0003\t\u0004"+ + "\u0000\u12f2\u0304\u0001\u0000\u0000\u0000\u12f3\u12f4\u0003!\u0010\u0000"+ + "\u12f4\u12f5\u0003\u000f\u0007\u0000\u12f5\u12f6\u0003+\u0015\u0000\u12f6"+ + "\u12f7\u0003-\u0016\u0000\u12f7\u12f8\u0003\u0017\u000b\u0000\u12f8\u12f9"+ + "\u0003!\u0010\u0000\u12f9\u12fa\u0003\u0013\t\u0000\u12fa\u0306\u0001"+ + "\u0000\u0000\u0000\u12fb\u12fc\u0003!\u0010\u0000\u12fc\u12fd\u0003\u000f"+ + "\u0007\u0000\u12fd\u12fe\u00033\u0019\u0000\u12fe\u0308\u0001\u0000\u0000"+ + "\u0000\u12ff\u1300\u0003!\u0010\u0000\u1300\u1301\u0003\u000f\u0007\u0000"+ + "\u1301\u1302\u00035\u001a\u0000\u1302\u1303\u0003-\u0016\u0000\u1303\u030a"+ + "\u0001\u0000\u0000\u0000\u1304\u1305\u0003!\u0010\u0000\u1305\u1306\u0003"+ + "#\u0011\u0000\u1306\u030c\u0001\u0000\u0000\u0000\u1307\u1308\u0003!\u0010"+ + "\u0000\u1308\u1309\u0003#\u0011\u0000\u1309\u130a\u0003\u000b\u0005\u0000"+ + "\u130a\u130b\u0003)\u0014\u0000\u130b\u130c\u0003\u000f\u0007\u0000\u130c"+ + "\u130d\u0003\u0007\u0003\u0000\u130d\u130e\u0003-\u0016\u0000\u130e\u130f"+ + "\u0003\u000f\u0007\u0000\u130f\u1310\u0003\r\u0006\u0000\u1310\u1311\u0003"+ + "\t\u0004\u0000\u1311\u030e\u0001\u0000\u0000\u0000\u1312\u1313\u0003!"+ + "\u0010\u0000\u1313\u1314\u0003#\u0011\u0000\u1314\u1315\u0003\u000b\u0005"+ + "\u0000\u1315\u1316\u0003)\u0014\u0000\u1316\u1317\u0003\u000f\u0007\u0000"+ + "\u1317\u1318\u0003\u0007\u0003\u0000\u1318\u1319\u0003-\u0016\u0000\u1319"+ + "\u131a\u0003\u000f\u0007\u0000\u131a\u131b\u0003/\u0017\u0000\u131b\u131c"+ + "\u0003+\u0015\u0000\u131c\u131d\u0003\u000f\u0007\u0000\u131d\u131e\u0003"+ + ")\u0014\u0000\u131e\u0310\u0001\u0000\u0000\u0000\u131f\u1320\u0003!\u0010"+ + "\u0000\u1320\u1321\u0003#\u0011\u0000\u1321\u1322\u0003!\u0010\u0000\u1322"+ + "\u1323\u0003\u000f\u0007\u0000\u1323\u0312\u0001\u0000\u0000\u0000\u1324"+ + "\u1325\u0003!\u0010\u0000\u1325\u1326\u0003#\u0011\u0000\u1326\u1327\u0003"+ + ")\u0014\u0000\u1327\u1328\u0003\u001f\u000f\u0000\u1328\u1329\u0003\u0007"+ + "\u0003\u0000\u1329\u132a\u0003\u001d\u000e\u0000\u132a\u132b\u0003\u0017"+ + "\u000b\u0000\u132b\u132c\u00039\u001c\u0000\u132c\u132d\u0003\u000f\u0007"+ + "\u0000\u132d\u0314\u0001\u0000\u0000\u0000\u132e\u132f\u0003!\u0010\u0000"+ + "\u132f\u1330\u0003#\u0011\u0000\u1330\u1331\u0003)\u0014\u0000\u1331\u1332"+ + "\u0003\u001f\u000f\u0000\u1332\u1333\u0003\u0007\u0003\u0000\u1333\u1334"+ + "\u0003\u001d\u000e\u0000\u1334\u1335\u0003\u0017\u000b\u0000\u1335\u1336"+ + "\u00039\u001c\u0000\u1336\u1337\u0003\u000f\u0007\u0000\u1337\u1338\u0003"+ + "\r\u0006\u0000\u1338\u0316\u0001\u0000\u0000\u0000\u1339\u133a\u0003!"+ + "\u0010\u0000\u133a\u133b\u0003#\u0011\u0000\u133b\u133c\u0003-\u0016\u0000"+ + "\u133c\u0318\u0001\u0000\u0000\u0000\u133d\u133e\u0003!\u0010\u0000\u133e"+ + "\u133f\u0003#\u0011\u0000\u133f\u1340\u0003-\u0016\u0000\u1340\u1341\u0003"+ + "\u0015\n\u0000\u1341\u1342\u0003\u0017\u000b\u0000\u1342\u1343\u0003!"+ + "\u0010\u0000\u1343\u1344\u0003\u0013\t\u0000\u1344\u031a\u0001\u0000\u0000"+ + "\u0000\u1345\u1346\u0003!\u0010\u0000\u1346\u1347\u0003#\u0011\u0000\u1347"+ + "\u1348\u0003-\u0016\u0000\u1348\u1349\u0003\u0017\u000b\u0000\u1349\u134a"+ + "\u0003\u0011\b\u0000\u134a\u134b\u00037\u001b\u0000\u134b\u031c\u0001"+ + "\u0000\u0000\u0000\u134c\u134d\u0003!\u0010\u0000\u134d\u134e\u0003#\u0011"+ + "\u0000\u134e\u134f\u0003-\u0016\u0000\u134f\u1350\u0003!\u0010\u0000\u1350"+ + "\u1351\u0003/\u0017\u0000\u1351\u1352\u0003\u001d\u000e\u0000\u1352\u1353"+ + "\u0003\u001d\u000e\u0000\u1353\u031e\u0001\u0000\u0000\u0000\u1354\u1355"+ + "\u0003!\u0010\u0000\u1355\u1356\u0003#\u0011\u0000\u1356\u1357\u00033"+ + "\u0019\u0000\u1357\u1358\u0003\u0007\u0003\u0000\u1358\u1359\u0003\u0017"+ + "\u000b\u0000\u1359\u135a\u0003-\u0016\u0000\u135a\u0320\u0001\u0000\u0000"+ + "\u0000\u135b\u135c\u0003!\u0010\u0000\u135c\u135d\u0003/\u0017\u0000\u135d"+ + "\u135e\u0003\u001d\u000e\u0000\u135e\u135f\u0003\u001d\u000e\u0000\u135f"+ + "\u0322\u0001\u0000\u0000\u0000\u1360\u1361\u0003!\u0010\u0000\u1361\u1362"+ + "\u0003/\u0017\u0000\u1362\u1363\u0003\u001d\u000e\u0000\u1363\u1364\u0003"+ + "\u001d\u000e\u0000\u1364\u1365\u0003\u0007\u0003\u0000\u1365\u1366\u0003"+ + "\t\u0004\u0000\u1366\u1367\u0003\u001d\u000e\u0000\u1367\u1368\u0003\u000f"+ + "\u0007\u0000\u1368\u0324\u0001\u0000\u0000\u0000\u1369\u136a\u0003!\u0010"+ + "\u0000\u136a\u136b\u0003/\u0017\u0000\u136b\u136c\u0003\u001d\u000e\u0000"+ + "\u136c\u136d\u0003\u001d\u000e\u0000\u136d\u136e\u0003\u0017\u000b\u0000"+ + "\u136e\u136f\u0003\u0011\b\u0000\u136f\u0326\u0001\u0000\u0000\u0000\u1370"+ + "\u1371\u0003!\u0010\u0000\u1371\u1372\u0003/\u0017\u0000\u1372\u1373\u0003"+ + "\u001d\u000e\u0000\u1373\u1374\u0003\u001d\u000e\u0000\u1374\u1375\u0003"+ + "+\u0015\u0000\u1375\u0328\u0001\u0000\u0000\u0000\u1376\u1377\u0003!\u0010"+ + "\u0000\u1377\u1378\u0003/\u0017\u0000\u1378\u1379\u0003\u001f\u000f\u0000"+ + "\u1379\u137a\u0003\t\u0004\u0000\u137a\u137b\u0003\u000f\u0007\u0000\u137b"+ + "\u137c\u0003)\u0014\u0000\u137c\u032a\u0001\u0000\u0000\u0000\u137d\u137e"+ + "\u0003!\u0010\u0000\u137e\u137f\u0003/\u0017\u0000\u137f\u1380\u0003\u001f"+ + "\u000f\u0000\u1380\u1381\u0003\u000f\u0007\u0000\u1381\u1382\u0003)\u0014"+ + "\u0000\u1382\u1383\u0003\u0017\u000b\u0000\u1383\u1384\u0003\u000b\u0005"+ + "\u0000\u1384\u032c\u0001\u0000\u0000\u0000\u1385\u1386\u0003#\u0011\u0000"+ + "\u1386\u1387\u0003\t\u0004\u0000\u1387\u1388\u0003\u0019\f\u0000\u1388"+ + "\u1389\u0003\u000f\u0007\u0000\u1389\u138a\u0003\u000b\u0005\u0000\u138a"+ + "\u138b\u0003-\u0016\u0000\u138b\u032e\u0001\u0000\u0000\u0000\u138c\u138d"+ + "\u0003#\u0011\u0000\u138d\u138e\u0003\u000b\u0005\u0000\u138e\u138f\u0003"+ + "-\u0016\u0000\u138f\u1390\u0003\u000f\u0007\u0000\u1390\u1391\u0003-\u0016"+ + "\u0000\u1391\u1392\u0005_\u0000\u0000\u1392\u1393\u0003\u001d\u000e\u0000"+ + "\u1393\u1394\u0003\u000f\u0007\u0000\u1394\u1395\u0003!\u0010\u0000\u1395"+ + "\u1396\u0003\u0013\t\u0000\u1396\u1397\u0003-\u0016\u0000\u1397\u1398"+ + "\u0003\u0015\n\u0000\u1398\u0330\u0001\u0000\u0000\u0000\u1399\u139a\u0003"+ + "#\u0011\u0000\u139a\u139b\u0003\u000b\u0005\u0000\u139b\u139c\u0003-\u0016"+ + "\u0000\u139c\u139d\u0003\u000f\u0007\u0000\u139d\u139e\u0003-\u0016\u0000"+ + "\u139e\u139f\u0003+\u0015\u0000\u139f\u0332\u0001\u0000\u0000\u0000\u13a0"+ + "\u13a1\u0003#\u0011\u0000\u13a1\u13a2\u0003\u0011\b\u0000\u13a2\u0334"+ + "\u0001\u0000\u0000\u0000\u13a3\u13a4\u0003#\u0011\u0000\u13a4\u13a5\u0003"+ + "\u0011\b\u0000\u13a5\u13a6\u0003\u0011\b\u0000\u13a6\u0336\u0001\u0000"+ + "\u0000\u0000\u13a7\u13a8\u0003#\u0011\u0000\u13a8\u13a9\u0003\u0011\b"+ + "\u0000\u13a9\u13aa\u0003\u0011\b\u0000\u13aa\u13ab\u0003+\u0015\u0000"+ + "\u13ab\u13ac\u0003\u000f\u0007\u0000\u13ac\u13ad\u0003-\u0016\u0000\u13ad"+ + "\u0338\u0001\u0000\u0000\u0000\u13ae\u13af\u0003#\u0011\u0000\u13af\u13b0"+ + "\u0003\u0017\u000b\u0000\u13b0\u13b1\u0003\r\u0006\u0000\u13b1\u13b2\u0003"+ + "+\u0015\u0000\u13b2\u033a\u0001\u0000\u0000\u0000\u13b3\u13b4\u0003#\u0011"+ + "\u0000\u13b4\u13b5\u0003\u001d\u000e\u0000\u13b5\u13b6\u0003\r\u0006\u0000"+ + "\u13b6\u033c\u0001\u0000\u0000\u0000\u13b7\u13b8\u0003#\u0011\u0000\u13b8"+ + "\u13b9\u0003!\u0010\u0000\u13b9\u033e\u0001\u0000\u0000\u0000\u13ba\u13bb"+ + "\u0003#\u0011\u0000\u13bb\u13bc\u0003!\u0010\u0000\u13bc\u13bd\u0003\u001d"+ + "\u000e\u0000\u13bd\u13be\u00037\u001b\u0000\u13be\u0340\u0001\u0000\u0000"+ + "\u0000\u13bf\u13c0\u0003#\u0011\u0000\u13c0\u13c1\u0003%\u0012\u0000\u13c1"+ + "\u13c2\u0003\u000f\u0007\u0000\u13c2\u13c3\u0003!\u0010\u0000\u13c3\u0342"+ + "\u0001\u0000\u0000\u0000\u13c4\u13c5\u0003#\u0011\u0000\u13c5\u13c6\u0003"+ + "%\u0012\u0000\u13c6\u13c7\u0003\u000f\u0007\u0000\u13c7\u13c8\u0003)\u0014"+ + "\u0000\u13c8\u13c9\u0003\u0007\u0003\u0000\u13c9\u13ca\u0003-\u0016\u0000"+ + "\u13ca\u13cb\u0003\u0017\u000b\u0000\u13cb\u13cc\u0003#\u0011\u0000\u13cc"+ + "\u13cd\u0003!\u0010\u0000\u13cd\u0344\u0001\u0000\u0000\u0000\u13ce\u13cf"+ + "\u0003#\u0011\u0000\u13cf\u13d0\u0003%\u0012\u0000\u13d0\u13d1\u0003\u000f"+ + "\u0007\u0000\u13d1\u13d2\u0003)\u0014\u0000\u13d2\u13d3\u0003\u0007\u0003"+ + "\u0000\u13d3\u13d4\u0003-\u0016\u0000\u13d4\u13d5\u0003#\u0011\u0000\u13d5"+ + "\u13d6\u0003)\u0014\u0000\u13d6\u0346\u0001\u0000\u0000\u0000\u13d7\u13d8"+ + "\u0003#\u0011\u0000\u13d8\u13d9\u0003%\u0012\u0000\u13d9\u13da\u0003-"+ + "\u0016\u0000\u13da\u13db\u0003\u0017\u000b\u0000\u13db\u13dc\u0003#\u0011"+ + "\u0000\u13dc\u13dd\u0003!\u0010\u0000\u13dd\u0348\u0001\u0000\u0000\u0000"+ + "\u13de\u13df\u0003#\u0011\u0000\u13df\u13e0\u0003%\u0012\u0000\u13e0\u13e1"+ + "\u0003-\u0016\u0000\u13e1\u13e2\u0003\u0017\u000b\u0000\u13e2\u13e3\u0003"+ + "#\u0011\u0000\u13e3\u13e4\u0003!\u0010\u0000\u13e4\u13e5\u0003+\u0015"+ + "\u0000\u13e5\u034a\u0001\u0000\u0000\u0000\u13e6\u13e7\u0003#\u0011\u0000"+ + "\u13e7\u13e8\u0003)\u0014\u0000\u13e8\u034c\u0001\u0000\u0000\u0000\u13e9"+ + "\u13ea\u0003#\u0011\u0000\u13ea\u13eb\u0003)\u0014\u0000\u13eb\u13ec\u0003"+ + "\r\u0006\u0000\u13ec\u13ed\u0003\u000f\u0007\u0000\u13ed\u13ee\u0003)"+ + "\u0014\u0000\u13ee\u034e\u0001\u0000\u0000\u0000\u13ef\u13f0\u0003#\u0011"+ + "\u0000\u13f0\u13f1\u0003)\u0014\u0000\u13f1\u13f2\u0003\r\u0006\u0000"+ + "\u13f2\u13f3\u0003\u000f\u0007\u0000\u13f3\u13f4\u0003)\u0014\u0000\u13f4"+ + "\u13f5\u0003\u0017\u000b\u0000\u13f5\u13f6\u0003!\u0010\u0000\u13f6\u13f7"+ + "\u0003\u0013\t\u0000\u13f7\u0350\u0001\u0000\u0000\u0000\u13f8\u13f9\u0003"+ + "#\u0011\u0000\u13f9\u13fa\u0003)\u0014\u0000\u13fa\u13fb\u0003\r\u0006"+ + "\u0000\u13fb\u13fc\u0003\u0017\u000b\u0000\u13fc\u13fd\u0003!\u0010\u0000"+ + "\u13fd\u13fe\u0003\u0007\u0003\u0000\u13fe\u13ff\u0003\u001d\u000e\u0000"+ + "\u13ff\u1400\u0003\u0017\u000b\u0000\u1400\u1401\u0003-\u0016\u0000\u1401"+ + "\u1402\u00037\u001b\u0000\u1402\u0352\u0001\u0000\u0000\u0000\u1403\u1404"+ + "\u0003#\u0011\u0000\u1404\u1405\u0003-\u0016\u0000\u1405\u1406\u0003\u0015"+ + "\n\u0000\u1406\u1407\u0003\u000f\u0007\u0000\u1407\u1408\u0003)\u0014"+ + "\u0000\u1408\u1409\u0003+\u0015\u0000\u1409\u0354\u0001\u0000\u0000\u0000"+ + "\u140a\u140b\u0003#\u0011\u0000\u140b\u140c\u0003/\u0017\u0000\u140c\u140d"+ + "\u0003-\u0016\u0000\u140d\u0356\u0001\u0000\u0000\u0000\u140e\u140f\u0003"+ + "#\u0011\u0000\u140f\u1410\u0003/\u0017\u0000\u1410\u1411\u0003-\u0016"+ + "\u0000\u1411\u1412\u0003\u000f\u0007\u0000\u1412\u1413\u0003)\u0014\u0000"+ + "\u1413\u0358\u0001\u0000\u0000\u0000\u1414\u1415\u0003#\u0011\u0000\u1415"+ + "\u1416\u0003/\u0017\u0000\u1416\u1417\u0003-\u0016\u0000\u1417\u1418\u0003"+ + "%\u0012\u0000\u1418\u1419\u0003/\u0017\u0000\u1419\u141a\u0003-\u0016"+ + "\u0000\u141a\u035a\u0001\u0000\u0000\u0000\u141b\u141c\u0003#\u0011\u0000"+ + "\u141c\u141d\u00031\u0018\u0000\u141d\u141e\u0003\u000f\u0007\u0000\u141e"+ + "\u141f\u0003)\u0014\u0000\u141f\u035c\u0001\u0000\u0000\u0000\u1420\u1421"+ + "\u0003#\u0011\u0000\u1421\u1422\u00031\u0018\u0000\u1422\u1423\u0003\u000f"+ + "\u0007\u0000\u1423\u1424\u0003)\u0014\u0000\u1424\u1425\u0003\u001d\u000e"+ + "\u0000\u1425\u1426\u0003\u0007\u0003\u0000\u1426\u1427\u0003%\u0012\u0000"+ + "\u1427\u1428\u0003+\u0015\u0000\u1428\u035e\u0001\u0000\u0000\u0000\u1429"+ + "\u142a\u0003#\u0011\u0000\u142a\u142b\u00031\u0018\u0000\u142b\u142c\u0003"+ + "\u000f\u0007\u0000\u142c\u142d\u0003)\u0014\u0000\u142d\u142e\u0003\u001d"+ + "\u000e\u0000\u142e\u142f\u0003\u0007\u0003\u0000\u142f\u1430\u00037\u001b"+ + "\u0000\u1430\u0360\u0001\u0000\u0000\u0000\u1431\u1432\u0003#\u0011\u0000"+ + "\u1432\u1433\u00031\u0018\u0000\u1433\u1434\u0003\u000f\u0007\u0000\u1434"+ + "\u1435\u0003)\u0014\u0000\u1435\u1436\u0003)\u0014\u0000\u1436\u1437\u0003"+ + "\u0017\u000b\u0000\u1437\u1438\u0003\r\u0006\u0000\u1438\u1439\u0003\u0017"+ + "\u000b\u0000\u1439\u143a\u0003!\u0010\u0000\u143a\u143b\u0003\u0013\t"+ + "\u0000\u143b\u0362\u0001\u0000\u0000\u0000\u143c\u143d\u0003#\u0011\u0000"+ + "\u143d\u143e\u00033\u0019\u0000\u143e\u143f\u0003!\u0010\u0000\u143f\u1440"+ + "\u0003\u000f\u0007\u0000\u1440\u1441\u0003)\u0014\u0000\u1441\u0364\u0001"+ + "\u0000\u0000\u0000\u1442\u1443\u0003%\u0012\u0000\u1443\u1444\u0003\u0007"+ + "\u0003\u0000\u1444\u1445\u0003\r\u0006\u0000\u1445\u0366\u0001\u0000\u0000"+ + "\u0000\u1446\u1447\u0003%\u0012\u0000\u1447\u1448\u0003\u0007\u0003\u0000"+ + "\u1448\u1449\u0003)\u0014\u0000\u1449\u144a\u0003\u0007\u0003\u0000\u144a"+ + "\u144b\u0003\u001f\u000f\u0000\u144b\u144c\u0003\u000f\u0007\u0000\u144c"+ + "\u144d\u0003-\u0016\u0000\u144d\u144e\u0003\u000f\u0007\u0000\u144e\u144f"+ + "\u0003)\u0014\u0000\u144f\u0368\u0001\u0000\u0000\u0000\u1450\u1451\u0003"+ + "%\u0012\u0000\u1451\u1452\u0003\u0007\u0003\u0000\u1452\u1453\u0003)\u0014"+ + "\u0000\u1453\u1454\u0003\u0007\u0003\u0000\u1454\u1455\u0003\u001f\u000f"+ + "\u0000\u1455\u1456\u0003\u000f\u0007\u0000\u1456\u1457\u0003-\u0016\u0000"+ + "\u1457\u1458\u0003\u000f\u0007\u0000\u1458\u1459\u0003)\u0014\u0000\u1459"+ + "\u145a\u0005_\u0000\u0000\u145a\u145b\u0003\u001f\u000f\u0000\u145b\u145c"+ + "\u0003#\u0011\u0000\u145c\u145d\u0003\r\u0006\u0000\u145d\u145e\u0003"+ + "\u000f\u0007\u0000\u145e\u036a\u0001\u0000\u0000\u0000\u145f\u1460\u0003"+ + "%\u0012\u0000\u1460\u1461\u0003\u0007\u0003\u0000\u1461\u1462\u0003)\u0014"+ + "\u0000\u1462\u1463\u0003\u0007\u0003\u0000\u1463\u1464\u0003\u001f\u000f"+ + "\u0000\u1464\u1465\u0003\u000f\u0007\u0000\u1465\u1466\u0003-\u0016\u0000"+ + "\u1466\u1467\u0003\u000f\u0007\u0000\u1467\u1468\u0003)\u0014\u0000\u1468"+ + "\u1469\u0005_\u0000\u0000\u1469\u146a\u0003!\u0010\u0000\u146a\u146b\u0003"+ + "\u0007\u0003\u0000\u146b\u146c\u0003\u001f\u000f\u0000\u146c\u146d\u0003"+ + "\u000f\u0007\u0000\u146d\u036c\u0001\u0000\u0000\u0000\u146e\u146f\u0003"+ + "%\u0012\u0000\u146f\u1470\u0003\u0007\u0003\u0000\u1470\u1471\u0003)\u0014"+ + "\u0000\u1471\u1472\u0003\u0007\u0003\u0000\u1472\u1473\u0003\u001f\u000f"+ + "\u0000\u1473\u1474\u0003\u000f\u0007\u0000\u1474\u1475\u0003-\u0016\u0000"+ + "\u1475\u1476\u0003\u000f\u0007\u0000\u1476\u1477\u0003)\u0014\u0000\u1477"+ + "\u1478\u0005_\u0000\u0000\u1478\u1479\u0003#\u0011\u0000\u1479\u147a\u0003"+ + ")\u0014\u0000\u147a\u147b\u0003\r\u0006\u0000\u147b\u147c\u0003\u0017"+ + "\u000b\u0000\u147c\u147d\u0003!\u0010\u0000\u147d\u147e\u0003\u0007\u0003"+ + "\u0000\u147e\u147f\u0003\u001d\u000e\u0000\u147f\u1480\u0005_\u0000\u0000"+ + "\u1480\u1481\u0003%\u0012\u0000\u1481\u1482\u0003#\u0011\u0000\u1482\u1483"+ + "\u0003+\u0015\u0000\u1483\u1484\u0003\u0017\u000b\u0000\u1484\u1485\u0003"+ + "-\u0016\u0000\u1485\u1486\u0003\u0017\u000b\u0000\u1486\u1487\u0003#\u0011"+ + "\u0000\u1487\u1488\u0003!\u0010\u0000\u1488\u036e\u0001\u0000\u0000\u0000"+ + "\u1489\u148a\u0003%\u0012\u0000\u148a\u148b\u0003\u0007\u0003\u0000\u148b"+ + "\u148c\u0003)\u0014\u0000\u148c\u148d\u0003\u0007\u0003\u0000\u148d\u148e"+ + "\u0003\u001f\u000f\u0000\u148e\u148f\u0003\u000f\u0007\u0000\u148f\u1490"+ + "\u0003-\u0016\u0000\u1490\u1491\u0003\u000f\u0007\u0000\u1491\u1492\u0003"+ + ")\u0014\u0000\u1492\u1493\u0005_\u0000\u0000\u1493\u1494\u0003+\u0015"+ + "\u0000\u1494\u1495\u0003%\u0012\u0000\u1495\u1496\u0003\u000f\u0007\u0000"+ + "\u1496\u1497\u0003\u000b\u0005\u0000\u1497\u1498\u0003\u0017\u000b\u0000"+ + "\u1498\u1499\u0003\u0011\b\u0000\u1499\u149a\u0003\u0017\u000b\u0000\u149a"+ + "\u149b\u0003\u000b\u0005\u0000\u149b\u149c\u0005_\u0000\u0000\u149c\u149d"+ + "\u0003\u000b\u0005\u0000\u149d\u149e\u0003\u0007\u0003\u0000\u149e\u149f"+ + "\u0003-\u0016\u0000\u149f\u14a0\u0003\u0007\u0003\u0000\u14a0\u14a1\u0003"+ + "\u001d\u000e\u0000\u14a1\u14a2\u0003#\u0011\u0000\u14a2\u14a3\u0003\u0013"+ + "\t\u0000\u14a3\u0370\u0001\u0000\u0000\u0000\u14a4\u14a5\u0003%\u0012"+ + "\u0000\u14a5\u14a6\u0003\u0007\u0003\u0000\u14a6\u14a7\u0003)\u0014\u0000"+ + "\u14a7\u14a8\u0003\u0007\u0003\u0000\u14a8\u14a9\u0003\u001f\u000f\u0000"+ + "\u14a9\u14aa\u0003\u000f\u0007\u0000\u14aa\u14ab\u0003-\u0016\u0000\u14ab"+ + "\u14ac\u0003\u000f\u0007\u0000\u14ac\u14ad\u0003)\u0014\u0000\u14ad\u14ae"+ + "\u0005_\u0000\u0000\u14ae\u14af\u0003+\u0015\u0000\u14af\u14b0\u0003%"+ + "\u0012\u0000\u14b0\u14b1\u0003\u000f\u0007\u0000\u14b1\u14b2\u0003\u000b"+ + "\u0005\u0000\u14b2\u14b3\u0003\u0017\u000b\u0000\u14b3\u14b4\u0003\u0011"+ + "\b\u0000\u14b4\u14b5\u0003\u0017\u000b\u0000\u14b5\u14b6\u0003\u000b\u0005"+ + "\u0000\u14b6\u14b7\u0005_\u0000\u0000\u14b7\u14b8\u0003!\u0010\u0000\u14b8"+ + "\u14b9\u0003\u0007\u0003\u0000\u14b9\u14ba\u0003\u001f\u000f\u0000\u14ba"+ + "\u14bb\u0003\u000f\u0007\u0000\u14bb\u0372\u0001\u0000\u0000\u0000\u14bc"+ + "\u14bd\u0003%\u0012\u0000\u14bd\u14be\u0003\u0007\u0003\u0000\u14be\u14bf"+ + "\u0003)\u0014\u0000\u14bf\u14c0\u0003\u0007\u0003\u0000\u14c0\u14c1\u0003"+ + "\u001f\u000f\u0000\u14c1\u14c2\u0003\u000f\u0007\u0000\u14c2\u14c3\u0003"+ + "-\u0016\u0000\u14c3\u14c4\u0003\u000f\u0007\u0000\u14c4\u14c5\u0003)\u0014"+ + "\u0000\u14c5\u14c6\u0005_\u0000\u0000\u14c6\u14c7\u0003+\u0015\u0000\u14c7"+ + "\u14c8\u0003%\u0012\u0000\u14c8\u14c9\u0003\u000f\u0007\u0000\u14c9\u14ca"+ + "\u0003\u000b\u0005\u0000\u14ca\u14cb\u0003\u0017\u000b\u0000\u14cb\u14cc"+ + "\u0003\u0011\b\u0000\u14cc\u14cd\u0003\u0017\u000b\u0000\u14cd\u14ce\u0003"+ + "\u000b\u0005\u0000\u14ce\u14cf\u0005_\u0000\u0000\u14cf\u14d0\u0003+\u0015"+ + "\u0000\u14d0\u14d1\u0003\u000b\u0005\u0000\u14d1\u14d2\u0003\u0015\n\u0000"+ + "\u14d2\u14d3\u0003\u000f\u0007\u0000\u14d3\u14d4\u0003\u001f\u000f\u0000"+ + "\u14d4\u14d5\u0003\u0007\u0003\u0000\u14d5\u0374\u0001\u0000\u0000\u0000"+ + "\u14d6\u14d7\u0003%\u0012\u0000\u14d7\u14d8\u0003\u0007\u0003\u0000\u14d8"+ + "\u14d9\u0003)\u0014\u0000\u14d9\u14da\u0003\u0007\u0003\u0000\u14da\u14db"+ + "\u0003\u001f\u000f\u0000\u14db\u14dc\u0003\u000f\u0007\u0000\u14dc\u14dd"+ + "\u0003-\u0016\u0000\u14dd\u14de\u0003\u000f\u0007\u0000\u14de\u14df\u0003"+ + ")\u0014\u0000\u14df\u14e0\u0003+\u0015\u0000\u14e0\u0376\u0001\u0000\u0000"+ + "\u0000\u14e1\u14e2\u0003%\u0012\u0000\u14e2\u14e3\u0003\u0007\u0003\u0000"+ + "\u14e3\u14e4\u0003)\u0014\u0000\u14e4\u14e5\u0003+\u0015\u0000\u14e5\u14e6"+ + "\u0003\u000f\u0007\u0000\u14e6\u14e7\u0003)\u0014\u0000\u14e7\u0378\u0001"+ + "\u0000\u0000\u0000\u14e8\u14e9\u0003%\u0012\u0000\u14e9\u14ea\u0003\u0007"+ + "\u0003\u0000\u14ea\u14eb\u0003)\u0014\u0000\u14eb\u14ec\u0003-\u0016\u0000"+ + "\u14ec\u14ed\u0003\u0017\u000b\u0000\u14ed\u14ee\u0003\u0007\u0003\u0000"+ + "\u14ee\u14ef\u0003\u001d\u000e\u0000\u14ef\u037a\u0001\u0000\u0000\u0000"+ + "\u14f0\u14f1\u0003%\u0012\u0000\u14f1\u14f2\u0003\u0007\u0003\u0000\u14f2"+ + "\u14f3\u0003)\u0014\u0000\u14f3\u14f4\u0003-\u0016\u0000\u14f4\u14f5\u0003"+ + "\u0017\u000b\u0000\u14f5\u14f6\u0003-\u0016\u0000\u14f6\u14f7\u0003\u0017"+ + "\u000b\u0000\u14f7\u14f8\u0003#\u0011\u0000\u14f8\u14f9\u0003!\u0010\u0000"+ + "\u14f9\u037c\u0001\u0000\u0000\u0000\u14fa\u14fb\u0003%\u0012\u0000\u14fb"+ + "\u14fc\u0003\u0007\u0003\u0000\u14fc\u14fd\u0003+\u0015\u0000\u14fd\u14fe"+ + "\u0003\u000b\u0005\u0000\u14fe\u14ff\u0003\u0007\u0003\u0000\u14ff\u1500"+ + "\u0003\u001d\u000e\u0000\u1500\u037e\u0001\u0000\u0000\u0000\u1501\u1502"+ + "\u0003%\u0012\u0000\u1502\u1503\u0003\u0007\u0003\u0000\u1503\u1504\u0003"+ + "+\u0015\u0000\u1504\u1505\u0003+\u0015\u0000\u1505\u1506\u00033\u0019"+ + "\u0000\u1506\u1507\u0003#\u0011\u0000\u1507\u1508\u0003)\u0014\u0000\u1508"+ + "\u1509\u0003\r\u0006\u0000\u1509\u0380\u0001\u0000\u0000\u0000\u150a\u150b"+ + "\u0003%\u0012\u0000\u150b\u150c\u0003\u0007\u0003\u0000\u150c\u150d\u0003"+ + "-\u0016\u0000\u150d\u150e\u0003\u0015\n\u0000\u150e\u0382\u0001\u0000"+ + "\u0000\u0000\u150f\u1510\u0003%\u0012\u0000\u1510\u1511\u0003\u000f\u0007"+ + "\u0000\u1511\u1512\u0003)\u0014\u0000\u1512\u1513\u0003\u000b\u0005\u0000"+ + "\u1513\u1514\u0003\u000f\u0007\u0000\u1514\u1515\u0003!\u0010\u0000\u1515"+ + "\u1516\u0003-\u0016\u0000\u1516\u1517\u0005_\u0000\u0000\u1517\u1518\u0003"+ + ")\u0014\u0000\u1518\u1519\u0003\u0007\u0003\u0000\u1519\u151a\u0003!\u0010"+ + "\u0000\u151a\u151b\u0003\u001b\r\u0000\u151b\u0384\u0001\u0000\u0000\u0000"+ + "\u151c\u151d\u0003%\u0012\u0000\u151d\u151e\u0003\u000f\u0007\u0000\u151e"+ + "\u151f\u0003)\u0014\u0000\u151f\u1520\u0003\u000b\u0005\u0000\u1520\u1521"+ + "\u0003\u000f\u0007\u0000\u1521\u1522\u0003!\u0010\u0000\u1522\u1523\u0003"+ + "-\u0016\u0000\u1523\u1524\u0003\u0017\u000b\u0000\u1524\u1525\u0003\u001d"+ + "\u000e\u0000\u1525\u1526\u0003\u000f\u0007\u0000\u1526\u1527\u0005_\u0000"+ + "\u0000\u1527\u1528\u0003\u000b\u0005\u0000\u1528\u1529\u0003#\u0011\u0000"+ + "\u1529\u152a\u0003!\u0010\u0000\u152a\u152b\u0003-\u0016\u0000\u152b\u0386"+ + "\u0001\u0000\u0000\u0000\u152c\u152d\u0003%\u0012\u0000\u152d\u152e\u0003"+ + "\u000f\u0007\u0000\u152e\u152f\u0003)\u0014\u0000\u152f\u1530\u0003\u000b"+ + "\u0005\u0000\u1530\u1531\u0003\u000f\u0007\u0000\u1531\u1532\u0003!\u0010"+ + "\u0000\u1532\u1533\u0003-\u0016\u0000\u1533\u1534\u0003\u0017\u000b\u0000"+ + "\u1534\u1535\u0003\u001d\u000e\u0000\u1535\u1536\u0003\u000f\u0007\u0000"+ + "\u1536\u1537\u0005_\u0000\u0000\u1537\u1538\u0003\r\u0006\u0000\u1538"+ + "\u1539\u0003\u0017\u000b\u0000\u1539\u153a\u0003+\u0015\u0000\u153a\u153b"+ + "\u0003\u000b\u0005\u0000\u153b\u0388\u0001\u0000\u0000\u0000\u153c\u153d"+ + "\u0003%\u0012\u0000\u153d\u153e\u0003\u001d\u000e\u0000\u153e\u153f\u0003"+ + "\u0007\u0003\u0000\u153f\u1540\u0003\u000b\u0005\u0000\u1540\u1541\u0003"+ + "\u0017\u000b\u0000\u1541\u1542\u0003!\u0010\u0000\u1542\u1543\u0003\u0013"+ + "\t\u0000\u1543\u038a\u0001\u0000\u0000\u0000\u1544\u1545\u0003%\u0012"+ + "\u0000\u1545\u1546\u0003\u001d\u000e\u0000\u1546\u1547\u0003\u0007\u0003"+ + "\u0000\u1547\u1548\u0003\u0017\u000b\u0000\u1548\u1549\u0003!\u0010\u0000"+ + "\u1549\u038c\u0001\u0000\u0000\u0000\u154a\u154b\u0003%\u0012\u0000\u154b"+ + "\u154c\u0003\u001d\u000e\u0000\u154c\u154d\u0003\u0007\u0003\u0000\u154d"+ + "\u154e\u0003!\u0010\u0000\u154e\u154f\u0003+\u0015\u0000\u154f\u038e\u0001"+ + "\u0000\u0000\u0000\u1550\u1551\u0003%\u0012\u0000\u1551\u1552\u0003\u001d"+ + "\u000e\u0000\u1552\u1553\u0003\u0017\u000b\u0000\u1553\u0390\u0001\u0000"+ + "\u0000\u0000\u1554\u1555\u0003%\u0012\u0000\u1555\u1556\u0003#\u0011\u0000"+ + "\u1556\u1557\u0003+\u0015\u0000\u1557\u1558\u0003\u0017\u000b\u0000\u1558"+ + "\u1559\u0003-\u0016\u0000\u1559\u155a\u0003\u0017\u000b\u0000\u155a\u155b"+ + "\u0003#\u0011\u0000\u155b\u155c\u0003!\u0010\u0000\u155c\u0392\u0001\u0000"+ + "\u0000\u0000\u155d\u155e\u0003%\u0012\u0000\u155e\u155f\u0003#\u0011\u0000"+ + "\u155f\u1560\u0003+\u0015\u0000\u1560\u1561\u0003-\u0016\u0000\u1561\u1562"+ + "\u0003\u0011\b\u0000\u1562\u1563\u0003\u0017\u000b\u0000\u1563\u1564\u0003"+ + "5\u001a\u0000\u1564\u0394\u0001\u0000\u0000\u0000\u1565\u1566\u0003%\u0012"+ + "\u0000\u1566\u1567\u0003#\u0011\u0000\u1567\u1568\u00033\u0019\u0000\u1568"+ + "\u1569\u0003\u000f\u0007\u0000\u1569\u156a\u0003)\u0014\u0000\u156a\u0396"+ + "\u0001\u0000\u0000\u0000\u156b\u156c\u0003%\u0012\u0000\u156c\u156d\u0003"+ + ")\u0014\u0000\u156d\u156e\u0003\u000f\u0007\u0000\u156e\u156f\u0003\u000b"+ + "\u0005\u0000\u156f\u1570\u0003\u000f\u0007\u0000\u1570\u1571\u0003\r\u0006"+ + "\u0000\u1571\u1572\u0003\u0017\u000b\u0000\u1572\u1573\u0003!\u0010\u0000"+ + "\u1573\u1574\u0003\u0013\t\u0000\u1574\u0398\u0001\u0000\u0000\u0000\u1575"+ + "\u1576\u0003%\u0012\u0000\u1576\u1577\u0003)\u0014\u0000\u1577\u1578\u0003"+ + "\u000f\u0007\u0000\u1578\u1579\u0003\u000b\u0005\u0000\u1579\u157a\u0003"+ + "\u0017\u000b\u0000\u157a\u157b\u0003+\u0015\u0000\u157b\u157c\u0003\u0017"+ + "\u000b\u0000\u157c\u157d\u0003#\u0011\u0000\u157d\u157e\u0003!\u0010\u0000"+ + "\u157e\u039a\u0001\u0000\u0000\u0000\u157f\u1580\u0003%\u0012\u0000\u1580"+ + "\u1581\u0003)\u0014\u0000\u1581\u1582\u0003\u000f\u0007\u0000\u1582\u1583"+ + "\u0003\u0011\b\u0000\u1583\u1584\u0003\u0017\u000b\u0000\u1584\u1585\u0003"+ + "5\u001a\u0000\u1585\u039c\u0001\u0000\u0000\u0000\u1586\u1587\u0003%\u0012"+ + "\u0000\u1587\u1588\u0003)\u0014\u0000\u1588\u1589\u0003\u000f\u0007\u0000"+ + "\u1589\u158a\u0003#\u0011\u0000\u158a\u158b\u0003)\u0014\u0000\u158b\u158c"+ + "\u0003\r\u0006\u0000\u158c\u158d\u0003\u000f\u0007\u0000\u158d\u158e\u0003"+ + ")\u0014\u0000\u158e\u039e\u0001\u0000\u0000\u0000\u158f\u1590\u0003%\u0012"+ + "\u0000\u1590\u1591\u0003)\u0014\u0000\u1591\u1592\u0003\u000f\u0007\u0000"+ + "\u1592\u1593\u0003%\u0012\u0000\u1593\u1594\u0003\u0007\u0003\u0000\u1594"+ + "\u1595\u0003)\u0014\u0000\u1595\u1596\u0003\u000f\u0007\u0000\u1596\u03a0"+ + "\u0001\u0000\u0000\u0000\u1597\u1598\u0003%\u0012\u0000\u1598\u1599\u0003"+ + ")\u0014\u0000\u1599\u159a\u0003\u000f\u0007\u0000\u159a\u159b\u0003%\u0012"+ + "\u0000\u159b\u159c\u0003\u0007\u0003\u0000\u159c\u159d\u0003)\u0014\u0000"+ + "\u159d\u159e\u0003\u000f\u0007\u0000\u159e\u159f\u0003\r\u0006\u0000\u159f"+ + "\u03a2\u0001\u0000\u0000\u0000\u15a0\u15a1\u0003%\u0012\u0000\u15a1\u15a2"+ + "\u0003)\u0014\u0000\u15a2\u15a3\u0003\u000f\u0007\u0000\u15a3\u15a4\u0003"+ + "+\u0015\u0000\u15a4\u15a5\u0003\u000f\u0007\u0000\u15a5\u15a6\u0003)\u0014"+ + "\u0000\u15a6\u15a7\u00031\u0018\u0000\u15a7\u15a8\u0003\u000f\u0007\u0000"+ + "\u15a8\u03a4\u0001\u0000\u0000\u0000\u15a9\u15aa\u0003%\u0012\u0000\u15aa"+ + "\u15ab\u0003)\u0014\u0000\u15ab\u15ac\u0003\u0017\u000b\u0000\u15ac\u15ad"+ + "\u0003\u001f\u000f\u0000\u15ad\u15ae\u0003\u0007\u0003\u0000\u15ae\u15af"+ + "\u0003)\u0014\u0000\u15af\u15b0\u00037\u001b\u0000\u15b0\u03a6\u0001\u0000"+ + "\u0000\u0000\u15b1\u15b2\u0003%\u0012\u0000\u15b2\u15b3\u0003)\u0014\u0000"+ + "\u15b3\u15b4\u0003\u0017\u000b\u0000\u15b4\u15b5\u0003#\u0011\u0000\u15b5"+ + "\u15b6\u0003)\u0014\u0000\u15b6\u03a8\u0001\u0000\u0000\u0000\u15b7\u15b8"+ + "\u0003%\u0012\u0000\u15b8\u15b9\u0003)\u0014\u0000\u15b9\u15ba\u0003\u0017"+ + "\u000b\u0000\u15ba\u15bb\u00031\u0018\u0000\u15bb\u15bc\u0003\u0017\u000b"+ + "\u0000\u15bc\u15bd\u0003\u001d\u000e\u0000\u15bd\u15be\u0003\u000f\u0007"+ + "\u0000\u15be\u15bf\u0003\u0013\t\u0000\u15bf\u15c0\u0003\u000f\u0007\u0000"+ + "\u15c0\u15c1\u0003+\u0015\u0000\u15c1\u03aa\u0001\u0000\u0000\u0000\u15c2"+ + "\u15c3\u0003%\u0012\u0000\u15c3\u15c4\u0003)\u0014\u0000\u15c4\u15c5\u0003"+ + "#\u0011\u0000\u15c5\u15c6\u0003\u000b\u0005\u0000\u15c6\u15c7\u0003\u000f"+ + "\u0007\u0000\u15c7\u15c8\u0003\r\u0006\u0000\u15c8\u15c9\u0003/\u0017"+ + "\u0000\u15c9\u15ca\u0003)\u0014\u0000\u15ca\u15cb\u0003\u0007\u0003\u0000"+ + "\u15cb\u15cc\u0003\u001d\u000e\u0000\u15cc\u03ac\u0001\u0000\u0000\u0000"+ + "\u15cd\u15ce\u0003%\u0012\u0000\u15ce\u15cf\u0003)\u0014\u0000\u15cf\u15d0"+ + "\u0003#\u0011\u0000\u15d0\u15d1\u0003\u000b\u0005\u0000\u15d1\u15d2\u0003"+ + "\u000f\u0007\u0000\u15d2\u15d3\u0003\r\u0006\u0000\u15d3\u15d4\u0003/"+ + "\u0017\u0000\u15d4\u15d5\u0003)\u0014\u0000\u15d5\u15d6\u0003\u000f\u0007"+ + "\u0000\u15d6\u03ae\u0001\u0000\u0000\u0000\u15d7\u15d8\u0003%\u0012\u0000"+ + "\u15d8\u15d9\u0003/\u0017\u0000\u15d9\u15da\u0003\t\u0004\u0000\u15da"+ + "\u15db\u0003\u001d\u000e\u0000\u15db\u15dc\u0003\u0017\u000b\u0000\u15dc"+ + "\u15dd\u0003\u000b\u0005\u0000\u15dd\u03b0\u0001\u0000\u0000\u0000\u15de"+ + "\u15df\u0003%\u0012\u0000\u15df\u15e0\u0003/\u0017\u0000\u15e0\u15e1\u0003"+ + "\t\u0004\u0000\u15e1\u15e2\u0003\u001d\u000e\u0000\u15e2\u15e3\u0003\u0017"+ + "\u000b\u0000\u15e3\u15e4\u0003\u000b\u0005\u0000\u15e4\u15e5\u0003\u0007"+ + "\u0003\u0000\u15e5\u15e6\u0003-\u0016\u0000\u15e6\u15e7\u0003\u0017\u000b"+ + "\u0000\u15e7\u15e8\u0003#\u0011\u0000\u15e8\u15e9\u0003!\u0010\u0000\u15e9"+ + "\u03b2\u0001\u0000\u0000\u0000\u15ea\u15eb\u0003\'\u0013\u0000\u15eb\u15ec"+ + "\u0003/\u0017\u0000\u15ec\u15ed\u0003#\u0011\u0000\u15ed\u15ee\u0003-"+ + "\u0016\u0000\u15ee\u15ef\u0003\u000f\u0007\u0000\u15ef\u03b4\u0001\u0000"+ + "\u0000\u0000\u15f0\u15f1\u0003)\u0014\u0000\u15f1\u15f2\u0003\u0007\u0003"+ + "\u0000\u15f2\u15f3\u0003!\u0010\u0000\u15f3\u15f4\u0003\u0013\t\u0000"+ + "\u15f4\u15f5\u0003\u000f\u0007\u0000\u15f5\u03b6\u0001\u0000\u0000\u0000"+ + "\u15f6\u15f7\u0003)\u0014\u0000\u15f7\u15f8\u0003\u0007\u0003\u0000\u15f8"+ + "\u15f9\u0003!\u0010\u0000\u15f9\u15fa\u0003\u001b\r\u0000\u15fa\u03b8"+ + "\u0001\u0000\u0000\u0000\u15fb\u15fc\u0003)\u0014\u0000\u15fc\u15fd\u0003"+ + "\u000f\u0007\u0000\u15fd\u15fe\u0003\u0007\u0003\u0000\u15fe\u15ff\u0003"+ + "\r\u0006\u0000\u15ff\u03ba\u0001\u0000\u0000\u0000\u1600\u1601\u0003)"+ + "\u0014\u0000\u1601\u1602\u0003\u000f\u0007\u0000\u1602\u1603\u0003\u0007"+ + "\u0003\u0000\u1603\u1604\u0003\r\u0006\u0000\u1604\u1605\u0003+\u0015"+ + "\u0000\u1605\u03bc\u0001\u0000\u0000\u0000\u1606\u1607\u0003)\u0014\u0000"+ + "\u1607\u1608\u0003\u000f\u0007\u0000\u1608\u1609\u0003\u0007\u0003\u0000"+ + "\u1609\u160a\u0003\u001d\u000e\u0000\u160a\u03be\u0001\u0000\u0000\u0000"+ + "\u160b\u160c\u0003)\u0014\u0000\u160c\u160d\u0003\u000f\u0007\u0000\u160d"+ + "\u160e\u0003\u0007\u0003\u0000\u160e\u160f\u0003+\u0015\u0000\u160f\u1610"+ + "\u0003+\u0015\u0000\u1610\u1611\u0003\u0017\u000b\u0000\u1611\u1612\u0003"+ + "\u0013\t\u0000\u1612\u1613\u0003!\u0010\u0000\u1613\u03c0\u0001\u0000"+ + "\u0000\u0000\u1614\u1615\u0003)\u0014\u0000\u1615\u1616\u0003\u000f\u0007"+ + "\u0000\u1616\u1617\u0003\u000b\u0005\u0000\u1617\u1618\u0003\u0015\n\u0000"+ + "\u1618\u1619\u0003\u000f\u0007\u0000\u1619\u161a\u0003\u000b\u0005\u0000"+ + "\u161a\u161b\u0003\u001b\r\u0000\u161b\u03c2\u0001\u0000\u0000\u0000\u161c"+ + "\u161d\u0003)\u0014\u0000\u161d\u161e\u0003\u000f\u0007\u0000\u161e\u161f"+ + "\u0003\u000b\u0005\u0000\u161f\u1620\u0003/\u0017\u0000\u1620\u1621\u0003"+ + ")\u0014\u0000\u1621\u1622\u0003+\u0015\u0000\u1622\u1623\u0003\u0017\u000b"+ + "\u0000\u1623\u1624\u00031\u0018\u0000\u1624\u1625\u0003\u000f\u0007\u0000"+ + "\u1625\u03c4\u0001\u0000\u0000\u0000\u1626\u1627\u0003)\u0014\u0000\u1627"+ + "\u1628\u0003\u000f\u0007\u0000\u1628\u1629\u0003\u0011\b\u0000\u1629\u03c6"+ + "\u0001\u0000\u0000\u0000\u162a\u162b\u0003)\u0014\u0000\u162b\u162c\u0003"+ + "\u000f\u0007\u0000\u162c\u162d\u0003\u0011\b\u0000\u162d\u162e\u0003\u000f"+ + "\u0007\u0000\u162e\u162f\u0003)\u0014\u0000\u162f\u1630\u0003\u000f\u0007"+ + "\u0000\u1630\u1631\u0003!\u0010\u0000\u1631\u1632\u0003\u000b\u0005\u0000"+ + "\u1632\u1633\u0003\u000f\u0007\u0000\u1633\u1634\u0003+\u0015\u0000\u1634"+ + "\u03c8\u0001\u0000\u0000\u0000\u1635\u1636\u0003)\u0014\u0000\u1636\u1637"+ + "\u0003\u000f\u0007\u0000\u1637\u1638\u0003\u0011\b\u0000\u1638\u1639\u0003"+ + "\u000f\u0007\u0000\u1639\u163a\u0003)\u0014\u0000\u163a\u163b\u0003\u000f"+ + "\u0007\u0000\u163b\u163c\u0003!\u0010\u0000\u163c\u163d\u0003\u000b\u0005"+ + "\u0000\u163d\u163e\u0003\u0017\u000b\u0000\u163e\u163f\u0003!\u0010\u0000"+ + "\u163f\u1640\u0003\u0013\t\u0000\u1640\u03ca\u0001\u0000\u0000\u0000\u1641"+ + "\u1642\u0003)\u0014\u0000\u1642\u1643\u0003\u000f\u0007\u0000\u1643\u1644"+ + "\u0003\u0011\b\u0000\u1644\u1645\u0003)\u0014\u0000\u1645\u1646\u0003"+ + "\u000f\u0007\u0000\u1646\u1647\u0003+\u0015\u0000\u1647\u1648\u0003\u0015"+ + "\n\u0000\u1648\u03cc\u0001\u0000\u0000\u0000\u1649\u164a\u0003)\u0014"+ + "\u0000\u164a\u164b\u0003\u000f\u0007\u0000\u164b\u164c\u0003\u0013\t\u0000"+ + "\u164c\u164d\u0003)\u0014\u0000\u164d\u164e\u0005_\u0000\u0000\u164e\u164f"+ + "\u0003\u0007\u0003\u0000\u164f\u1650\u00031\u0018\u0000\u1650\u1651\u0003"+ + "\u0013\t\u0000\u1651\u1652\u00035\u001a\u0000\u1652\u03ce\u0001\u0000"+ + "\u0000\u0000\u1653\u1654\u0003)\u0014\u0000\u1654\u1655\u0003\u000f\u0007"+ + "\u0000\u1655\u1656\u0003\u0013\t\u0000\u1656\u1657\u0003)\u0014\u0000"+ + "\u1657\u1658\u0005_\u0000\u0000\u1658\u1659\u0003\u0007\u0003\u0000\u1659"+ + "\u165a\u00031\u0018\u0000\u165a\u165b\u0003\u0013\t\u0000\u165b\u165c"+ + "\u00037\u001b\u0000\u165c\u03d0\u0001\u0000\u0000\u0000\u165d\u165e\u0003"+ + ")\u0014\u0000\u165e\u165f\u0003\u000f\u0007\u0000\u165f\u1660\u0003\u0013"+ + "\t\u0000\u1660\u1661\u0003)\u0014\u0000\u1661\u1662\u0005_\u0000\u0000"+ + "\u1662\u1663\u0003\u000b\u0005\u0000\u1663\u1664\u0003#\u0011\u0000\u1664"+ + "\u1665\u0003/\u0017\u0000\u1665\u1666\u0003!\u0010\u0000\u1666\u1667\u0003"+ + "-\u0016\u0000\u1667\u03d2\u0001\u0000\u0000\u0000\u1668\u1669\u0003)\u0014"+ + "\u0000\u1669\u166a\u0003\u000f\u0007\u0000\u166a\u166b\u0003\u0013\t\u0000"+ + "\u166b\u166c\u0003)\u0014\u0000\u166c\u166d\u0005_\u0000\u0000\u166d\u166e"+ + "\u0003\u0017\u000b\u0000\u166e\u166f\u0003!\u0010\u0000\u166f\u1670\u0003"+ + "-\u0016\u0000\u1670\u1671\u0003\u000f\u0007\u0000\u1671\u1672\u0003)\u0014"+ + "\u0000\u1672\u1673\u0003\u000b\u0005\u0000\u1673\u1674\u0003\u000f\u0007"+ + "\u0000\u1674\u1675\u0003%\u0012\u0000\u1675\u1676\u0003-\u0016\u0000\u1676"+ + "\u03d4\u0001\u0000\u0000\u0000\u1677\u1678\u0003)\u0014\u0000\u1678\u1679"+ + "\u0003\u000f\u0007\u0000\u1679\u167a\u0003\u0013\t\u0000\u167a\u167b\u0003"+ + ")\u0014\u0000\u167b\u167c\u0005_\u0000\u0000\u167c\u167d\u0003)\u0014"+ + "\u0000\u167d\u167e\u00052\u0000\u0000\u167e\u03d6\u0001\u0000\u0000\u0000"+ + "\u167f\u1680\u0003)\u0014\u0000\u1680\u1681\u0003\u000f\u0007\u0000\u1681"+ + "\u1682\u0003\u0013\t\u0000\u1682\u1683\u0003)\u0014\u0000\u1683\u1684"+ + "\u0005_\u0000\u0000\u1684\u1685\u0003+\u0015\u0000\u1685\u1686\u0003\u001d"+ + "\u000e\u0000\u1686\u1687\u0003#\u0011\u0000\u1687\u1688\u0003%\u0012\u0000"+ + "\u1688\u1689\u0003\u000f\u0007\u0000\u1689\u03d8\u0001\u0000\u0000\u0000"+ + "\u168a\u168b\u0003)\u0014\u0000\u168b\u168c\u0003\u000f\u0007\u0000\u168c"+ + "\u168d\u0003\u0013\t\u0000\u168d\u168e\u0003)\u0014\u0000\u168e\u168f"+ + "\u0005_\u0000\u0000\u168f\u1690\u0003+\u0015\u0000\u1690\u1691\u00035"+ + "\u001a\u0000\u1691\u1692\u00035\u001a\u0000\u1692\u03da\u0001\u0000\u0000"+ + "\u0000\u1693\u1694\u0003)\u0014\u0000\u1694\u1695\u0003\u000f\u0007\u0000"+ + "\u1695\u1696\u0003\u0013\t\u0000\u1696\u1697\u0003)\u0014\u0000\u1697"+ + "\u1698\u0005_\u0000\u0000\u1698\u1699\u0003+\u0015\u0000\u1699\u169a\u0003"+ + "5\u001a\u0000\u169a\u169b\u00037\u001b\u0000\u169b\u03dc\u0001\u0000\u0000"+ + "\u0000\u169c\u169d\u0003)\u0014\u0000\u169d\u169e\u0003\u000f\u0007\u0000"+ + "\u169e\u169f\u0003\u0013\t\u0000\u169f\u16a0\u0003)\u0014\u0000\u16a0"+ + "\u16a1\u0005_\u0000\u0000\u16a1\u16a2\u0003+\u0015\u0000\u16a2\u16a3\u0003"+ + "7\u001b\u0000\u16a3\u16a4\u00037\u001b\u0000\u16a4\u03de\u0001\u0000\u0000"+ + "\u0000\u16a5\u16a6\u0003)\u0014\u0000\u16a6\u16a7\u0003\u000f\u0007\u0000"+ + "\u16a7\u16a8\u0003\u0017\u000b\u0000\u16a8\u16a9\u0003!\u0010\u0000\u16a9"+ + "\u16aa\u0003\r\u0006\u0000\u16aa\u16ab\u0003\u000f\u0007\u0000\u16ab\u16ac"+ + "\u00035\u001a\u0000\u16ac\u03e0\u0001\u0000\u0000\u0000\u16ad\u16ae\u0003"+ + ")\u0014\u0000\u16ae\u16af\u0003\u000f\u0007\u0000\u16af\u16b0\u0003\u001d"+ + "\u000e\u0000\u16b0\u16b1\u0003\u0007\u0003\u0000\u16b1\u16b2\u0003-\u0016"+ + "\u0000\u16b2\u16b3\u0003\u0017\u000b\u0000\u16b3\u16b4\u00031\u0018\u0000"+ + "\u16b4\u16b5\u0003\u000f\u0007\u0000\u16b5\u03e2\u0001\u0000\u0000\u0000"+ + "\u16b6\u16b7\u0003)\u0014\u0000\u16b7\u16b8\u0003\u000f\u0007\u0000\u16b8"+ + "\u16b9\u0003\u001d\u000e\u0000\u16b9\u16ba\u0003\u000f\u0007\u0000\u16ba"+ + "\u16bb\u0003\u0007\u0003\u0000\u16bb\u16bc\u0003+\u0015\u0000\u16bc\u16bd"+ + "\u0003\u000f\u0007\u0000\u16bd\u03e4\u0001\u0000\u0000\u0000\u16be\u16bf"+ + "\u0003)\u0014\u0000\u16bf\u16c0\u0003\u000f\u0007\u0000\u16c0\u16c1\u0003"+ + "!\u0010\u0000\u16c1\u16c2\u0003\u0007\u0003\u0000\u16c2\u16c3\u0003\u001f"+ + "\u000f\u0000\u16c3\u16c4\u0003\u000f\u0007\u0000\u16c4\u03e6\u0001\u0000"+ + "\u0000\u0000\u16c5\u16c6\u0003)\u0014\u0000\u16c6\u16c7\u0003\u000f\u0007"+ + "\u0000\u16c7\u16c8\u0003%\u0012\u0000\u16c8\u16c9\u0003\u000f\u0007\u0000"+ + "\u16c9\u16ca\u0003\u0007\u0003\u0000\u16ca\u16cb\u0003-\u0016\u0000\u16cb"+ + "\u16cc\u0003\u0007\u0003\u0000\u16cc\u16cd\u0003\t\u0004\u0000\u16cd\u16ce"+ + "\u0003\u001d\u000e\u0000\u16ce\u16cf\u0003\u000f\u0007\u0000\u16cf\u03e8"+ + "\u0001\u0000\u0000\u0000\u16d0\u16d1\u0003)\u0014\u0000\u16d1\u16d2\u0003"+ + "\u000f\u0007\u0000\u16d2\u16d3\u0003%\u0012\u0000\u16d3\u16d4\u0003\u001d"+ + "\u000e\u0000\u16d4\u16d5\u0003\u0007\u0003\u0000\u16d5\u16d6\u0003\u000b"+ + "\u0005\u0000\u16d6\u16d7\u0003\u000f\u0007\u0000\u16d7\u03ea\u0001\u0000"+ + "\u0000\u0000\u16d8\u16d9\u0003)\u0014\u0000\u16d9\u16da\u0003\u000f\u0007"+ + "\u0000\u16da\u16db\u0003%\u0012\u0000\u16db\u16dc\u0003\u001d\u000e\u0000"+ + "\u16dc\u16dd\u0003\u0017\u000b\u0000\u16dd\u16de\u0003\u000b\u0005\u0000"+ + "\u16de\u16df\u0003\u0007\u0003\u0000\u16df\u03ec\u0001\u0000\u0000\u0000"+ + "\u16e0\u16e1\u0003)\u0014\u0000\u16e1\u16e2\u0003\u000f\u0007\u0000\u16e2"+ + "\u16e3\u0003+\u0015\u0000\u16e3\u16e4\u0003\u000f\u0007\u0000\u16e4\u16e5"+ + "\u0003-\u0016\u0000\u16e5\u03ee\u0001\u0000\u0000\u0000\u16e6\u16e7\u0003"+ + ")\u0014\u0000\u16e7\u16e8\u0003\u000f\u0007\u0000\u16e8\u16e9\u0003+\u0015"+ + "\u0000\u16e9\u16ea\u0003-\u0016\u0000\u16ea\u16eb\u0003\u0007\u0003\u0000"+ + "\u16eb\u16ec\u0003)\u0014\u0000\u16ec\u16ed\u0003-\u0016\u0000\u16ed\u03f0"+ + "\u0001\u0000\u0000\u0000\u16ee\u16ef\u0003)\u0014\u0000\u16ef\u16f0\u0003"+ + "\u000f\u0007\u0000\u16f0\u16f1\u0003+\u0015\u0000\u16f1\u16f2\u0003-\u0016"+ + "\u0000\u16f2\u16f3\u0003)\u0014\u0000\u16f3\u16f4\u0003\u0017\u000b\u0000"+ + "\u16f4\u16f5\u0003\u000b\u0005\u0000\u16f5\u16f6\u0003-\u0016\u0000\u16f6"+ + "\u03f2\u0001\u0000\u0000\u0000\u16f7\u16f8\u0003)\u0014\u0000\u16f8\u16f9"+ + "\u0003\u000f\u0007\u0000\u16f9\u16fa\u0003+\u0015\u0000\u16fa\u16fb\u0003"+ + "/\u0017\u0000\u16fb\u16fc\u0003\u001d\u000e\u0000\u16fc\u16fd\u0003-\u0016"+ + "\u0000\u16fd\u03f4\u0001\u0000\u0000\u0000\u16fe\u16ff\u0003)\u0014\u0000"+ + "\u16ff\u1700\u0003\u000f\u0007\u0000\u1700\u1701\u0003-\u0016\u0000\u1701"+ + "\u1702\u0003/\u0017\u0000\u1702\u1703\u0003)\u0014\u0000\u1703\u1704\u0003"+ + "!\u0010\u0000\u1704\u03f6\u0001\u0000\u0000\u0000\u1705\u1706\u0003)\u0014"+ + "\u0000\u1706\u1707\u0003\u000f\u0007\u0000\u1707\u1708\u0003-\u0016\u0000"+ + "\u1708\u1709\u0003/\u0017\u0000\u1709\u170a\u0003)\u0014\u0000\u170a\u170b"+ + "\u0003!\u0010\u0000\u170b\u170c\u0003\u000f\u0007\u0000\u170c\u170d\u0003"+ + "\r\u0006\u0000\u170d\u170e\u0005_\u0000\u0000\u170e\u170f\u0003\u000b"+ + "\u0005\u0000\u170f\u1710\u0003\u0007\u0003\u0000\u1710\u1711\u0003)\u0014"+ + "\u0000\u1711\u1712\u0003\r\u0006\u0000\u1712\u1713\u0003\u0017\u000b\u0000"+ + "\u1713\u1714\u0003!\u0010\u0000\u1714\u1715\u0003\u0007\u0003\u0000\u1715"+ + "\u1716\u0003\u001d\u000e\u0000\u1716\u1717\u0003\u0017\u000b\u0000\u1717"+ + "\u1718\u0003-\u0016\u0000\u1718\u1719\u00037\u001b\u0000\u1719\u03f8\u0001"+ + "\u0000\u0000\u0000\u171a\u171b\u0003)\u0014\u0000\u171b\u171c\u0003\u000f"+ + "\u0007\u0000\u171c\u171d\u0003-\u0016\u0000\u171d\u171e\u0003/\u0017\u0000"+ + "\u171e\u171f\u0003)\u0014\u0000\u171f\u1720\u0003!\u0010\u0000\u1720\u1721"+ + "\u0003\u000f\u0007\u0000\u1721\u1722\u0003\r\u0006\u0000\u1722\u1723\u0005"+ + "_\u0000\u0000\u1723\u1724\u0003\u001d\u000e\u0000\u1724\u1725\u0003\u000f"+ + "\u0007\u0000\u1725\u1726\u0003!\u0010\u0000\u1726\u1727\u0003\u0013\t"+ + "\u0000\u1727\u1728\u0003-\u0016\u0000\u1728\u1729\u0003\u0015\n\u0000"+ + "\u1729\u03fa\u0001\u0000\u0000\u0000\u172a\u172b\u0003)\u0014\u0000\u172b"+ + "\u172c\u0003\u000f\u0007\u0000\u172c\u172d\u0003-\u0016\u0000\u172d\u172e"+ + "\u0003/\u0017\u0000\u172e\u172f\u0003)\u0014\u0000\u172f\u1730\u0003!"+ + "\u0010\u0000\u1730\u1731\u0003\u000f\u0007\u0000\u1731\u1732\u0003\r\u0006"+ + "\u0000\u1732\u1733\u0005_\u0000\u0000\u1733\u1734\u0003#\u0011\u0000\u1734"+ + "\u1735\u0003\u000b\u0005\u0000\u1735\u1736\u0003-\u0016\u0000\u1736\u1737"+ + "\u0003\u000f\u0007\u0000\u1737\u1738\u0003-\u0016\u0000\u1738\u1739\u0005"+ + "_\u0000\u0000\u1739\u173a\u0003\u001d\u000e\u0000\u173a\u173b\u0003\u000f"+ + "\u0007\u0000\u173b\u173c\u0003!\u0010\u0000\u173c\u173d\u0003\u0013\t"+ + "\u0000\u173d\u173e\u0003-\u0016\u0000\u173e\u173f\u0003\u0015\n\u0000"+ + "\u173f\u03fc\u0001\u0000\u0000\u0000\u1740\u1741\u0003)\u0014\u0000\u1741"+ + "\u1742\u0003\u000f\u0007\u0000\u1742\u1743\u0003-\u0016\u0000\u1743\u1744"+ + "\u0003/\u0017\u0000\u1744\u1745\u0003)\u0014\u0000\u1745\u1746\u0003!"+ + "\u0010\u0000\u1746\u1747\u0003\u000f\u0007\u0000\u1747\u1748\u0003\r\u0006"+ + "\u0000\u1748\u1749\u0005_\u0000\u0000\u1749\u174a\u0003+\u0015\u0000\u174a"+ + "\u174b\u0003\'\u0013\u0000\u174b\u174c\u0003\u001d\u000e\u0000\u174c\u174d"+ + "\u0003+\u0015\u0000\u174d\u174e\u0003-\u0016\u0000\u174e\u174f\u0003\u0007"+ + "\u0003\u0000\u174f\u1750\u0003-\u0016\u0000\u1750\u1751\u0003\u000f\u0007"+ + "\u0000\u1751\u03fe\u0001\u0000\u0000\u0000\u1752\u1753\u0003)\u0014\u0000"+ + "\u1753\u1754\u0003\u000f\u0007\u0000\u1754\u1755\u0003-\u0016\u0000\u1755"+ + "\u1756\u0003/\u0017\u0000\u1756\u1757\u0003)\u0014\u0000\u1757\u1758\u0003"+ + "!\u0010\u0000\u1758\u1759\u0003\u0017\u000b\u0000\u1759\u175a\u0003!\u0010"+ + "\u0000\u175a\u175b\u0003\u0013\t\u0000\u175b\u0400\u0001\u0000\u0000\u0000"+ + "\u175c\u175d\u0003)\u0014\u0000\u175d\u175e\u0003\u000f\u0007\u0000\u175e"+ + "\u175f\u0003-\u0016\u0000\u175f\u1760\u0003/\u0017\u0000\u1760\u1761\u0003"+ + ")\u0014\u0000\u1761\u1762\u0003!\u0010\u0000\u1762\u1763\u0003+\u0015"+ + "\u0000\u1763\u0402\u0001\u0000\u0000\u0000\u1764\u1765\u0003)\u0014\u0000"+ + "\u1765\u1766\u0003\u000f\u0007\u0000\u1766\u1767\u00031\u0018\u0000\u1767"+ + "\u1768\u0003#\u0011\u0000\u1768\u1769\u0003\u001b\r\u0000\u1769\u176a"+ + "\u0003\u000f\u0007\u0000\u176a\u0404\u0001\u0000\u0000\u0000\u176b\u176c"+ + "\u0003)\u0014\u0000\u176c\u176d\u0003\u0017\u000b\u0000\u176d\u176e\u0003"+ + "\u0013\t\u0000\u176e\u176f\u0003\u0015\n\u0000\u176f\u1770\u0003-\u0016"+ + "\u0000\u1770\u0406\u0001\u0000\u0000\u0000\u1771\u1772\u0003)\u0014\u0000"+ + "\u1772\u1773\u0003#\u0011\u0000\u1773\u1774\u0003\u001d\u000e\u0000\u1774"+ + "\u1775\u0003\u000f\u0007\u0000\u1775\u0408\u0001\u0000\u0000\u0000\u1776"+ + "\u1777\u0003)\u0014\u0000\u1777\u1778\u0003#\u0011\u0000\u1778\u1779\u0003"+ + "\u001d\u000e\u0000\u1779\u177a\u0003\u001d\u000e\u0000\u177a\u177b\u0003"+ + "\t\u0004\u0000\u177b\u177c\u0003\u0007\u0003\u0000\u177c\u177d\u0003\u000b"+ + "\u0005\u0000\u177d\u177e\u0003\u001b\r\u0000\u177e\u040a\u0001\u0000\u0000"+ + "\u0000\u177f\u1780\u0003)\u0014\u0000\u1780\u1781\u0003#\u0011\u0000\u1781"+ + "\u1782\u0003\u001d\u000e\u0000\u1782\u1783\u0003\u001d\u000e\u0000\u1783"+ + "\u1784\u0003/\u0017\u0000\u1784\u1785\u0003%\u0012\u0000\u1785\u040c\u0001"+ + "\u0000\u0000\u0000\u1786\u1787\u0003)\u0014\u0000\u1787\u1788\u0003#\u0011"+ + "\u0000\u1788\u1789\u0003/\u0017\u0000\u1789\u178a\u0003-\u0016\u0000\u178a"+ + "\u178b\u0003\u0017\u000b\u0000\u178b\u178c\u0003!\u0010\u0000\u178c\u178d"+ + "\u0003\u000f\u0007\u0000\u178d\u040e\u0001\u0000\u0000\u0000\u178e\u178f"+ + "\u0003)\u0014\u0000\u178f\u1790\u0003#\u0011\u0000\u1790\u1791\u0003/"+ + "\u0017\u0000\u1791\u1792\u0003-\u0016\u0000\u1792\u1793\u0003\u0017\u000b"+ + "\u0000\u1793\u1794\u0003!\u0010\u0000\u1794\u1795\u0003\u000f\u0007\u0000"+ + "\u1795\u1796\u0005_\u0000\u0000\u1796\u1797\u0003\u000b\u0005\u0000\u1797"+ + "\u1798\u0003\u0007\u0003\u0000\u1798\u1799\u0003-\u0016\u0000\u1799\u179a"+ + "\u0003\u0007\u0003\u0000\u179a\u179b\u0003\u001d\u000e\u0000\u179b\u179c"+ + "\u0003#\u0011\u0000\u179c\u179d\u0003\u0013\t\u0000\u179d\u0410\u0001"+ + "\u0000\u0000\u0000\u179e\u179f\u0003)\u0014\u0000\u179f\u17a0\u0003#\u0011"+ + "\u0000\u17a0\u17a1\u0003/\u0017\u0000\u17a1\u17a2\u0003-\u0016\u0000\u17a2"+ + "\u17a3\u0003\u0017\u000b\u0000\u17a3\u17a4\u0003!\u0010\u0000\u17a4\u17a5"+ + "\u0003\u000f\u0007\u0000\u17a5\u17a6\u0005_\u0000\u0000\u17a6\u17a7\u0003"+ + "!\u0010\u0000\u17a7\u17a8\u0003\u0007\u0003\u0000\u17a8\u17a9\u0003\u001f"+ + "\u000f\u0000\u17a9\u17aa\u0003\u000f\u0007\u0000\u17aa\u0412\u0001\u0000"+ + "\u0000\u0000\u17ab\u17ac\u0003)\u0014\u0000\u17ac\u17ad\u0003#\u0011\u0000"+ + "\u17ad\u17ae\u0003/\u0017\u0000\u17ae\u17af\u0003-\u0016\u0000\u17af\u17b0"+ + "\u0003\u0017\u000b\u0000\u17b0\u17b1\u0003!\u0010\u0000\u17b1\u17b2\u0003"+ + "\u000f\u0007\u0000\u17b2\u17b3\u0005_\u0000\u0000\u17b3\u17b4\u0003+\u0015"+ + "\u0000\u17b4\u17b5\u0003\u000b\u0005\u0000\u17b5\u17b6\u0003\u0015\n\u0000"+ + "\u17b6\u17b7\u0003\u000f\u0007\u0000\u17b7\u17b8\u0003\u001f\u000f\u0000"+ + "\u17b8\u17b9\u0003\u0007\u0003\u0000\u17b9\u0414\u0001\u0000\u0000\u0000"+ + "\u17ba\u17bb\u0003)\u0014\u0000\u17bb\u17bc\u0003#\u0011\u0000\u17bc\u17bd"+ + "\u00033\u0019\u0000\u17bd\u0416\u0001\u0000\u0000\u0000\u17be\u17bf\u0003"+ + ")\u0014\u0000\u17bf\u17c0\u0003#\u0011\u0000\u17c0\u17c1\u00033\u0019"+ + "\u0000\u17c1\u17c2\u0005_\u0000\u0000\u17c2\u17c3\u0003\u000b\u0005\u0000"+ + "\u17c3\u17c4\u0003#\u0011\u0000\u17c4\u17c5\u0003/\u0017\u0000\u17c5\u17c6"+ + "\u0003!\u0010\u0000\u17c6\u17c7\u0003-\u0016\u0000\u17c7\u0418\u0001\u0000"+ + "\u0000\u0000\u17c8\u17c9\u0003)\u0014\u0000\u17c9\u17ca\u0003#\u0011\u0000"+ + "\u17ca\u17cb\u00033\u0019\u0000\u17cb\u17cc\u0005_\u0000\u0000\u17cc\u17cd"+ + "\u0003!\u0010\u0000\u17cd\u17ce\u0003/\u0017\u0000\u17ce\u17cf\u0003\u001f"+ + "\u000f\u0000\u17cf\u17d0\u0003\t\u0004\u0000\u17d0\u17d1\u0003\u000f\u0007"+ + "\u0000\u17d1\u17d2\u0003)\u0014\u0000\u17d2\u041a\u0001\u0000\u0000\u0000"+ + "\u17d3\u17d4\u0003)\u0014\u0000\u17d4\u17d5\u0003#\u0011\u0000\u17d5\u17d6"+ + "\u00033\u0019\u0000\u17d6\u17d7\u0003+\u0015\u0000\u17d7\u041c\u0001\u0000"+ + "\u0000\u0000\u17d8\u17d9\u0003)\u0014\u0000\u17d9\u17da\u0003/\u0017\u0000"+ + "\u17da\u17db\u0003\u001d\u000e\u0000\u17db\u17dc\u0003\u000f\u0007\u0000"+ + "\u17dc\u041e\u0001\u0000\u0000\u0000\u17dd\u17de\u0003+\u0015\u0000\u17de"+ + "\u17df\u0003\u0007\u0003\u0000\u17df\u17e0\u00031\u0018\u0000\u17e0\u17e1"+ + "\u0003\u000f\u0007\u0000\u17e1\u17e2\u0003%\u0012\u0000\u17e2\u17e3\u0003"+ + "#\u0011\u0000\u17e3\u17e4\u0003\u0017\u000b\u0000\u17e4\u17e5\u0003!\u0010"+ + "\u0000\u17e5\u17e6\u0003-\u0016\u0000\u17e6\u0420\u0001\u0000\u0000\u0000"+ + "\u17e7\u17e8\u0003+\u0015\u0000\u17e8\u17e9\u0003\u000b\u0005\u0000\u17e9"+ + "\u17ea\u0003\u0007\u0003\u0000\u17ea\u17eb\u0003\u001d\u000e\u0000\u17eb"+ + "\u17ec\u0003\u000f\u0007\u0000\u17ec\u0422\u0001\u0000\u0000\u0000\u17ed"+ + "\u17ee\u0003+\u0015\u0000\u17ee\u17ef\u0003\u000b\u0005\u0000\u17ef\u17f0"+ + "\u0003\u0015\n\u0000\u17f0\u17f1\u0003\u000f\u0007\u0000\u17f1\u17f2\u0003"+ + "\u001f\u000f\u0000\u17f2\u17f3\u0003\u0007\u0003\u0000\u17f3\u0424\u0001"+ + "\u0000\u0000\u0000\u17f4\u17f5\u0003+\u0015\u0000\u17f5\u17f6\u0003\u000b"+ + "\u0005\u0000\u17f6\u17f7\u0003\u0015\n\u0000\u17f7\u17f8\u0003\u000f\u0007"+ + "\u0000\u17f8\u17f9\u0003\u001f\u000f\u0000\u17f9\u17fa\u0003\u0007\u0003"+ + "\u0000\u17fa\u17fb\u0005_\u0000\u0000\u17fb\u17fc\u0003!\u0010\u0000\u17fc"+ + "\u17fd\u0003\u0007\u0003\u0000\u17fd\u17fe\u0003\u001f\u000f\u0000\u17fe"+ + "\u17ff\u0003\u000f\u0007\u0000\u17ff\u0426\u0001\u0000\u0000\u0000\u1800"+ + "\u1801\u0003+\u0015\u0000\u1801\u1802\u0003\u000b\u0005\u0000\u1802\u1803"+ + "\u0003#\u0011\u0000\u1803\u1804\u0003%\u0012\u0000\u1804\u1805\u0003\u000f"+ + "\u0007\u0000\u1805\u0428\u0001\u0000\u0000\u0000\u1806\u1807\u0003+\u0015"+ + "\u0000\u1807\u1808\u0003\u000b\u0005\u0000\u1808\u1809\u0003#\u0011\u0000"+ + "\u1809\u180a\u0003%\u0012\u0000\u180a\u180b\u0003\u000f\u0007\u0000\u180b"+ + "\u180c\u0005_\u0000\u0000\u180c\u180d\u0003\u000b\u0005\u0000\u180d\u180e"+ + "\u0003\u0007\u0003\u0000\u180e\u180f\u0003-\u0016\u0000\u180f\u1810\u0003"+ + "\u0007\u0003\u0000\u1810\u1811\u0003\u001d\u000e\u0000\u1811\u1812\u0003"+ + "#\u0011\u0000\u1812\u1813\u0003\u0013\t\u0000\u1813\u042a\u0001\u0000"+ + "\u0000\u0000\u1814\u1815\u0003+\u0015\u0000\u1815\u1816\u0003\u000b\u0005"+ + "\u0000\u1816\u1817\u0003#\u0011\u0000\u1817\u1818\u0003%\u0012\u0000\u1818"+ + "\u1819\u0003\u000f\u0007\u0000\u1819\u181a\u0005_\u0000\u0000\u181a\u181b"+ + "\u0003!\u0010\u0000\u181b\u181c\u0003\u0007\u0003\u0000\u181c\u181d\u0003"+ + "\u001f\u000f\u0000\u181d\u181e\u0003\u000f\u0007\u0000\u181e\u042c\u0001"+ + "\u0000\u0000\u0000\u181f\u1820\u0003+\u0015\u0000\u1820\u1821\u0003\u000b"+ + "\u0005\u0000\u1821\u1822\u0003#\u0011\u0000\u1822\u1823\u0003%\u0012\u0000"+ + "\u1823\u1824\u0003\u000f\u0007\u0000\u1824\u1825\u0005_\u0000\u0000\u1825"+ + "\u1826\u0003+\u0015\u0000\u1826\u1827\u0003\u000b\u0005\u0000\u1827\u1828"+ + "\u0003\u0015\n\u0000\u1828\u1829\u0003\u000f\u0007\u0000\u1829\u182a\u0003"+ + "\u001f\u000f\u0000\u182a\u182b\u0003\u0007\u0003\u0000\u182b\u042e\u0001"+ + "\u0000\u0000\u0000\u182c\u182d\u0003+\u0015\u0000\u182d\u182e\u0003\u000b"+ + "\u0005\u0000\u182e\u182f\u0003)\u0014\u0000\u182f\u1830\u0003#\u0011\u0000"+ + "\u1830\u1831\u0003\u001d\u000e\u0000\u1831\u1832\u0003\u001d\u000e\u0000"+ + "\u1832\u0430\u0001\u0000\u0000\u0000\u1833\u1834\u0003+\u0015\u0000\u1834"+ + "\u1835\u0003\u000f\u0007\u0000\u1835\u1836\u0003\u0007\u0003\u0000\u1836"+ + "\u1837\u0003)\u0014\u0000\u1837\u1838\u0003\u000b\u0005\u0000\u1838\u1839"+ + "\u0003\u0015\n\u0000\u1839\u0432\u0001\u0000\u0000\u0000\u183a\u183b\u0003"+ + "+\u0015\u0000\u183b\u183c\u0003\u000f\u0007\u0000\u183c\u183d\u0003\u000b"+ + "\u0005\u0000\u183d\u183e\u0003#\u0011\u0000\u183e\u183f\u0003!\u0010\u0000"+ + "\u183f\u1840\u0003\r\u0006\u0000\u1840\u0434\u0001\u0000\u0000\u0000\u1841"+ + "\u1842\u0003+\u0015\u0000\u1842\u1843\u0003\u000f\u0007\u0000\u1843\u1844"+ + "\u0003\u000b\u0005\u0000\u1844\u1845\u0003-\u0016\u0000\u1845\u1846\u0003"+ + "\u0017\u000b\u0000\u1846\u1847\u0003#\u0011\u0000\u1847\u1848\u0003!\u0010"+ + "\u0000\u1848\u0436\u0001\u0000\u0000\u0000\u1849\u184a\u0003+\u0015\u0000"+ + "\u184a\u184b\u0003\u000f\u0007\u0000\u184b\u184c\u0003\u000b\u0005\u0000"+ + "\u184c\u184d\u0003/\u0017\u0000\u184d\u184e\u0003)\u0014\u0000\u184e\u184f"+ + "\u0003\u0017\u000b\u0000\u184f\u1850\u0003-\u0016\u0000\u1850\u1851\u0003"+ + "7\u001b\u0000\u1851\u0438\u0001\u0000\u0000\u0000\u1852\u1853\u0003+\u0015"+ + "\u0000\u1853\u1854\u0003\u000f\u0007\u0000\u1854\u1855\u0003\u001d\u000e"+ + "\u0000\u1855\u1856\u0003\u000f\u0007\u0000\u1856\u1857\u0003\u000b\u0005"+ + "\u0000\u1857\u1858\u0003-\u0016\u0000\u1858\u043a\u0001\u0000\u0000\u0000"+ + "\u1859\u185a\u0003+\u0015\u0000\u185a\u185b\u0003\u000f\u0007\u0000\u185b"+ + "\u185c\u0003\u001d\u000e\u0000\u185c\u185d\u0003\u0011\b\u0000\u185d\u043c"+ + "\u0001\u0000\u0000\u0000\u185e\u185f\u0003+\u0015\u0000\u185f\u1860\u0003"+ + "\u000f\u0007\u0000\u1860\u1861\u0003!\u0010\u0000\u1861\u1862\u0003+\u0015"+ + "\u0000\u1862\u1863\u0003\u0017\u000b\u0000\u1863\u1864\u0003-\u0016\u0000"+ + "\u1864\u1865\u0003\u0017\u000b\u0000\u1865\u1866\u00031\u0018\u0000\u1866"+ + "\u1867\u0003\u000f\u0007\u0000\u1867\u043e\u0001\u0000\u0000\u0000\u1868"+ + "\u1869\u0003+\u0015\u0000\u1869\u186a\u0003\u000f\u0007\u0000\u186a\u186b"+ + "\u0003\'\u0013\u0000\u186b\u186c\u0003/\u0017\u0000\u186c\u186d\u0003"+ + "\u000f\u0007\u0000\u186d\u186e\u0003!\u0010\u0000\u186e\u186f\u0003\u000b"+ + "\u0005\u0000\u186f\u1870\u0003\u000f\u0007\u0000\u1870\u0440\u0001\u0000"+ + "\u0000\u0000\u1871\u1872\u0003+\u0015\u0000\u1872\u1873\u0003\u000f\u0007"+ + "\u0000\u1873\u1874\u0003\'\u0013\u0000\u1874\u1875\u0003/\u0017\u0000"+ + "\u1875\u1876\u0003\u000f\u0007\u0000\u1876\u1877\u0003!\u0010\u0000\u1877"+ + "\u1878\u0003\u000b\u0005\u0000\u1878\u1879\u0003\u000f\u0007\u0000\u1879"+ + "\u187a\u0003+\u0015\u0000\u187a\u0442\u0001\u0000\u0000\u0000\u187b\u187c"+ + "\u0003+\u0015\u0000\u187c\u187d\u0003\u000f\u0007\u0000\u187d\u187e\u0003"+ + ")\u0014\u0000\u187e\u187f\u0003\u0017\u000b\u0000\u187f\u1880\u0003\u0007"+ + "\u0003\u0000\u1880\u1881\u0003\u001d\u000e\u0000\u1881\u1882\u0003\u0017"+ + "\u000b\u0000\u1882\u1883\u00039\u001c\u0000\u1883\u1884\u0003\u0007\u0003"+ + "\u0000\u1884\u1885\u0003\t\u0004\u0000\u1885\u1886\u0003\u001d\u000e\u0000"+ + "\u1886\u1887\u0003\u000f\u0007\u0000\u1887\u0444\u0001\u0000\u0000\u0000"+ + "\u1888\u1889\u0003+\u0015\u0000\u1889\u188a\u0003\u000f\u0007\u0000\u188a"+ + "\u188b\u0003)\u0014\u0000\u188b\u188c\u00031\u0018\u0000\u188c\u188d\u0003"+ + "\u000f\u0007\u0000\u188d\u188e\u0003)\u0014\u0000\u188e\u188f\u0005_\u0000"+ + "\u0000\u188f\u1890\u0003!\u0010\u0000\u1890\u1891\u0003\u0007\u0003\u0000"+ + "\u1891\u1892\u0003\u001f\u000f\u0000\u1892\u1893\u0003\u000f\u0007\u0000"+ + "\u1893\u0446\u0001\u0000\u0000\u0000\u1894\u1895\u0003+\u0015\u0000\u1895"+ + "\u1896\u0003\u000f\u0007\u0000\u1896\u1897\u0003+\u0015\u0000\u1897\u1898"+ + "\u0003+\u0015\u0000\u1898\u1899\u0003\u0017\u000b\u0000\u1899\u189a\u0003"+ + "#\u0011\u0000\u189a\u189b\u0003!\u0010\u0000\u189b\u0448\u0001\u0000\u0000"+ + "\u0000\u189c\u189d\u0003+\u0015\u0000\u189d\u189e\u0003\u000f\u0007\u0000"+ + "\u189e\u189f\u0003+\u0015\u0000\u189f\u18a0\u0003+\u0015\u0000\u18a0\u18a1"+ + "\u0003\u0017\u000b\u0000\u18a1\u18a2\u0003#\u0011\u0000\u18a2\u18a3\u0003"+ + "!\u0010\u0000\u18a3\u18a4\u0005_\u0000\u0000\u18a4\u18a5\u0003/\u0017"+ + "\u0000\u18a5\u18a6\u0003+\u0015\u0000\u18a6\u18a7\u0003\u000f\u0007\u0000"+ + "\u18a7\u18a8\u0003)\u0014\u0000\u18a8\u044a\u0001\u0000\u0000\u0000\u18a9"+ + "\u18aa\u0003+\u0015\u0000\u18aa\u18ab\u0003\u000f\u0007\u0000\u18ab\u18ac"+ + "\u0003-\u0016\u0000\u18ac\u044c\u0001\u0000\u0000\u0000\u18ad\u18ae\u0003"+ + "+\u0015\u0000\u18ae\u18af\u0003\u000f\u0007\u0000\u18af\u18b0\u0003-\u0016"+ + "\u0000\u18b0\u18b1\u0003#\u0011\u0000\u18b1\u18b2\u0003\u0011\b\u0000"+ + "\u18b2\u044e\u0001\u0000\u0000\u0000\u18b3\u18b4\u0003+\u0015\u0000\u18b4"+ + "\u18b5\u0003\u000f\u0007\u0000\u18b5\u18b6\u0003-\u0016\u0000\u18b6\u18b7"+ + "\u0003+\u0015\u0000\u18b7\u0450\u0001\u0000\u0000\u0000\u18b8\u18b9\u0003"+ + "+\u0015\u0000\u18b9\u18ba\u0003\u0015\n\u0000\u18ba\u18bb\u0003\u0007"+ + "\u0003\u0000\u18bb\u18bc\u0003)\u0014\u0000\u18bc\u18bd\u0003\u000f\u0007"+ + "\u0000\u18bd\u0452\u0001\u0000\u0000\u0000\u18be\u18bf\u0003+\u0015\u0000"+ + "\u18bf\u18c0\u0003\u0015\n\u0000\u18c0\u18c1\u0003#\u0011\u0000\u18c1"+ + "\u18c2\u00033\u0019\u0000\u18c2\u0454\u0001\u0000\u0000\u0000\u18c3\u18c4"+ + "\u0003+\u0015\u0000\u18c4\u18c5\u0003\u0017\u000b\u0000\u18c5\u18c6\u0003"+ + "\u001f\u000f\u0000\u18c6\u18c7\u0003\u0017\u000b\u0000\u18c7\u18c8\u0003"+ + "\u001d\u000e\u0000\u18c8\u18c9\u0003\u0007\u0003\u0000\u18c9\u18ca\u0003"+ + ")\u0014\u0000\u18ca\u0456\u0001\u0000\u0000\u0000\u18cb\u18cc\u0003+\u0015"+ + "\u0000\u18cc\u18cd\u0003\u0017\u000b\u0000\u18cd\u18ce\u0003\u001f\u000f"+ + "\u0000\u18ce\u18cf\u0003%\u0012\u0000\u18cf\u18d0\u0003\u001d\u000e\u0000"+ + "\u18d0\u18d1\u0003\u000f\u0007\u0000\u18d1\u0458\u0001\u0000\u0000\u0000"+ + "\u18d2\u18d3\u0003+\u0015\u0000\u18d3\u18d4\u0003\u0017\u000b\u0000\u18d4"+ + "\u18d5\u00039\u001c\u0000\u18d5\u18d6\u0003\u000f\u0007\u0000\u18d6\u045a"+ + "\u0001\u0000\u0000\u0000\u18d7\u18d8\u0003+\u0015\u0000\u18d8\u18d9\u0003"+ + "\u001b\r\u0000\u18d9\u18da\u0003\u0017\u000b\u0000\u18da\u18db\u0003%"+ + "\u0012\u0000\u18db\u045c\u0001\u0000\u0000\u0000\u18dc\u18dd\u0003+\u0015"+ + "\u0000\u18dd\u18de\u0003\u001f\u000f\u0000\u18de\u18df\u0003\u0007\u0003"+ + "\u0000\u18df\u18e0\u0003\u001d\u000e\u0000\u18e0\u18e1\u0003\u001d\u000e"+ + "\u0000\u18e1\u18e2\u0003\u0017\u000b\u0000\u18e2\u18e3\u0003!\u0010\u0000"+ + "\u18e3\u18e4\u0003-\u0016\u0000\u18e4\u045e\u0001\u0000\u0000\u0000\u18e5"+ + "\u18e6\u0003+\u0015\u0000\u18e6\u18e7\u0003!\u0010\u0000\u18e7\u18e8\u0003"+ + "\u0007\u0003\u0000\u18e8\u18e9\u0003%\u0012\u0000\u18e9\u18ea\u0003+\u0015"+ + "\u0000\u18ea\u18eb\u0003\u0015\n\u0000\u18eb\u18ec\u0003#\u0011\u0000"+ + "\u18ec\u18ed\u0003-\u0016\u0000\u18ed\u0460\u0001\u0000\u0000\u0000\u18ee"+ + "\u18ef\u0003+\u0015\u0000\u18ef\u18f0\u0003#\u0011\u0000\u18f0\u18f1\u0003"+ + "\u001f\u000f\u0000\u18f1\u18f2\u0003\u000f\u0007\u0000\u18f2\u0462\u0001"+ + "\u0000\u0000\u0000\u18f3\u18f4\u0003+\u0015\u0000\u18f4\u18f5\u0003#\u0011"+ + "\u0000\u18f5\u18f6\u0003/\u0017\u0000\u18f6\u18f7\u0003)\u0014\u0000\u18f7"+ + "\u18f8\u0003\u000b\u0005\u0000\u18f8\u18f9\u0003\u000f\u0007\u0000\u18f9"+ + "\u0464\u0001\u0000\u0000\u0000\u18fa\u18fb\u0003+\u0015\u0000\u18fb\u18fc"+ + "\u0003%\u0012\u0000\u18fc\u18fd\u0003\u0007\u0003\u0000\u18fd\u18fe\u0003"+ + "\u000b\u0005\u0000\u18fe\u18ff\u0003\u000f\u0007\u0000\u18ff\u0466\u0001"+ + "\u0000\u0000\u0000\u1900\u1901\u0003+\u0015\u0000\u1901\u1902\u0003%\u0012"+ + "\u0000\u1902\u1903\u0003\u000f\u0007\u0000\u1903\u1904\u0003\u000b\u0005"+ + "\u0000\u1904\u1905\u0003\u0017\u000b\u0000\u1905\u1906\u0003\u0011\b\u0000"+ + "\u1906\u1907\u0003\u0017\u000b\u0000\u1907\u1908\u0003\u000b\u0005\u0000"+ + "\u1908\u0468\u0001\u0000\u0000\u0000\u1909\u190a\u0003+\u0015\u0000\u190a"+ + "\u190b\u0003%\u0012\u0000\u190b\u190c\u0003\u000f\u0007\u0000\u190c\u190d"+ + "\u0003\u000b\u0005\u0000\u190d\u190e\u0003\u0017\u000b\u0000\u190e\u190f"+ + "\u0003\u0011\b\u0000\u190f\u1910\u0003\u0017\u000b\u0000\u1910\u1911\u0003"+ + "\u000b\u0005\u0000\u1911\u1912\u0005_\u0000\u0000\u1912\u1913\u0003!\u0010"+ + "\u0000\u1913\u1914\u0003\u0007\u0003\u0000\u1914\u1915\u0003\u001f\u000f"+ + "\u0000\u1915\u1916\u0003\u000f\u0007\u0000\u1916\u046a\u0001\u0000\u0000"+ + "\u0000\u1917\u1918\u0003+\u0015\u0000\u1918\u1919\u0003%\u0012\u0000\u1919"+ + "\u191a\u0003\u000f\u0007\u0000\u191a\u191b\u0003\u000b\u0005\u0000\u191b"+ + "\u191c\u0003\u0017\u000b\u0000\u191c\u191d\u0003\u0011\b\u0000\u191d\u191e"+ + "\u0003\u0017\u000b\u0000\u191e\u191f\u0003\u000b\u0005\u0000\u191f\u1920"+ + "\u0003-\u0016\u0000\u1920\u1921\u00037\u001b\u0000\u1921\u1922\u0003%"+ + "\u0012\u0000\u1922\u1923\u0003\u000f\u0007\u0000\u1923\u046c\u0001\u0000"+ + "\u0000\u0000\u1924\u1925\u0003+\u0015\u0000\u1925\u1926\u0003\'\u0013"+ + "\u0000\u1926\u1927\u0003\u001d\u000e\u0000\u1927\u046e\u0001\u0000\u0000"+ + "\u0000\u1928\u1929\u0003+\u0015\u0000\u1929\u192a\u0003\'\u0013\u0000"+ + "\u192a\u192b\u0003\u001d\u000e\u0000\u192b\u192c\u0003\u000b\u0005\u0000"+ + "\u192c\u192d\u0003#\u0011\u0000\u192d\u192e\u0003\r\u0006\u0000\u192e"+ + "\u192f\u0003\u000f\u0007\u0000\u192f\u0470\u0001\u0000\u0000\u0000\u1930"+ + "\u1931\u0003+\u0015\u0000\u1931\u1932\u0003\'\u0013\u0000\u1932\u1933"+ + "\u0003\u001d\u000e\u0000\u1933\u1934\u0003\u000f\u0007\u0000\u1934\u1935"+ + "\u0003)\u0014\u0000\u1935\u1936\u0003)\u0014\u0000\u1936\u1937\u0003#"+ + "\u0011\u0000\u1937\u1938\u0003)\u0014\u0000\u1938\u0472\u0001\u0000\u0000"+ + "\u0000\u1939\u193a\u0003+\u0015\u0000\u193a\u193b\u0003\'\u0013\u0000"+ + "\u193b\u193c\u0003\u001d\u000e\u0000\u193c\u193d\u0003\u000f\u0007\u0000"+ + "\u193d\u193e\u00035\u001a\u0000\u193e\u193f\u0003\u000b\u0005\u0000\u193f"+ + "\u1940\u0003\u000f\u0007\u0000\u1940\u1941\u0003%\u0012\u0000\u1941\u1942"+ + "\u0003-\u0016\u0000\u1942\u1943\u0003\u0017\u000b\u0000\u1943\u1944\u0003"+ + "#\u0011\u0000\u1944\u1945\u0003!\u0010\u0000\u1945\u0474\u0001\u0000\u0000"+ + "\u0000\u1946\u1947\u0003+\u0015\u0000\u1947\u1948\u0003\'\u0013\u0000"+ + "\u1948\u1949\u0003\u001d\u000e\u0000\u1949\u194a\u0003+\u0015\u0000\u194a"+ + "\u194b\u0003-\u0016\u0000\u194b\u194c\u0003\u0007\u0003\u0000\u194c\u194d"+ + "\u0003-\u0016\u0000\u194d\u194e\u0003\u000f\u0007\u0000\u194e\u0476\u0001"+ + "\u0000\u0000\u0000\u194f\u1950\u0003+\u0015\u0000\u1950\u1951\u0003\'"+ + "\u0013\u0000\u1951\u1952\u0003\u001d\u000e\u0000\u1952\u1953\u00033\u0019"+ + "\u0000\u1953\u1954\u0003\u0007\u0003\u0000\u1954\u1955\u0003)\u0014\u0000"+ + "\u1955\u1956\u0003!\u0010\u0000\u1956\u1957\u0003\u0017\u000b\u0000\u1957"+ + "\u1958\u0003!\u0010\u0000\u1958\u1959\u0003\u0013\t\u0000\u1959\u0478"+ + "\u0001\u0000\u0000\u0000\u195a\u195b\u0003+\u0015\u0000\u195b\u195c\u0003"+ + "\'\u0013\u0000\u195c\u195d\u0003)\u0014\u0000\u195d\u195e\u0003-\u0016"+ + "\u0000\u195e\u047a\u0001\u0000\u0000\u0000\u195f\u1960\u0003+\u0015\u0000"+ + "\u1960\u1961\u0003-\u0016\u0000\u1961\u1962\u0003\u0007\u0003\u0000\u1962"+ + "\u1963\u0003\t\u0004\u0000\u1963\u1964\u0003\u001d\u000e\u0000\u1964\u1965"+ + "\u0003\u000f\u0007\u0000\u1965\u047c\u0001\u0000\u0000\u0000\u1966\u1967"+ + "\u0003+\u0015\u0000\u1967\u1968\u0003-\u0016\u0000\u1968\u1969\u0003\u0007"+ + "\u0003\u0000\u1969\u196a\u0003)\u0014\u0000\u196a\u196b\u0003-\u0016\u0000"+ + "\u196b\u047e\u0001\u0000\u0000\u0000\u196c\u196d\u0003+\u0015\u0000\u196d"+ + "\u196e\u0003-\u0016\u0000\u196e\u196f\u0003\u0007\u0003\u0000\u196f\u1970"+ + "\u0003-\u0016\u0000\u1970\u1971\u0003\u000f\u0007\u0000\u1971\u0480\u0001"+ + "\u0000\u0000\u0000\u1972\u1973\u0003+\u0015\u0000\u1973\u1974\u0003-\u0016"+ + "\u0000\u1974\u1975\u0003\u0007\u0003\u0000\u1975\u1976\u0003-\u0016\u0000"+ + "\u1976\u1977\u0003\u000f\u0007\u0000\u1977\u1978\u0003\u001f\u000f\u0000"+ + "\u1978\u1979\u0003\u000f\u0007\u0000\u1979\u197a\u0003!\u0010\u0000\u197a"+ + "\u197b\u0003-\u0016\u0000\u197b\u0482\u0001\u0000\u0000\u0000\u197c\u197d"+ + "\u0003+\u0015\u0000\u197d\u197e\u0003-\u0016\u0000\u197e\u197f\u0003\u0007"+ + "\u0003\u0000\u197f\u1980\u0003-\u0016\u0000\u1980\u1981\u0003\u0017\u000b"+ + "\u0000\u1981\u1982\u0003\u000b\u0005\u0000\u1982\u0484\u0001\u0000\u0000"+ + "\u0000\u1983\u1984\u0003+\u0015\u0000\u1984\u1985\u0003-\u0016\u0000\u1985"+ + "\u1986\u0003\u0007\u0003\u0000\u1986\u1987\u0003-\u0016\u0000\u1987\u1988"+ + "\u0003\u0017\u000b\u0000\u1988\u1989\u0003+\u0015\u0000\u1989\u198a\u0003"+ + "-\u0016\u0000\u198a\u198b\u0003\u0017\u000b\u0000\u198b\u198c\u0003\u000b"+ + "\u0005\u0000\u198c\u198d\u0003+\u0015\u0000\u198d\u0486\u0001\u0000\u0000"+ + "\u0000\u198e\u198f\u0003+\u0015\u0000\u198f\u1990\u0003-\u0016\u0000\u1990"+ + "\u1991\u0003\r\u0006\u0000\u1991\u1992\u0003\r\u0006\u0000\u1992\u1993"+ + "\u0003\u000f\u0007\u0000\u1993\u1994\u00031\u0018\u0000\u1994\u1995\u0005"+ + "_\u0000\u0000\u1995\u1996\u0003%\u0012\u0000\u1996\u1997\u0003#\u0011"+ + "\u0000\u1997\u1998\u0003%\u0012\u0000\u1998\u0488\u0001\u0000\u0000\u0000"+ + "\u1999\u199a\u0003+\u0015\u0000\u199a\u199b\u0003-\u0016\u0000\u199b\u199c"+ + "\u0003\r\u0006\u0000\u199c\u199d\u0003\r\u0006\u0000\u199d\u199e\u0003"+ + "\u000f\u0007\u0000\u199e\u199f\u00031\u0018\u0000\u199f\u19a0\u0005_\u0000"+ + "\u0000\u19a0\u19a1\u0003+\u0015\u0000\u19a1\u19a2\u0003\u0007\u0003\u0000"+ + "\u19a2\u19a3\u0003\u001f\u000f\u0000\u19a3\u19a4\u0003%\u0012\u0000\u19a4"+ + "\u048a\u0001\u0000\u0000\u0000\u19a5\u19a6\u0003+\u0015\u0000\u19a6\u19a7"+ + "\u0003-\u0016\u0000\u19a7\u19a8\u0003\r\u0006\u0000\u19a8\u19a9\u0003"+ + "\u0017\u000b\u0000\u19a9\u19aa\u0003!\u0010\u0000\u19aa\u048c\u0001\u0000"+ + "\u0000\u0000\u19ab\u19ac\u0003+\u0015\u0000\u19ac\u19ad\u0003-\u0016\u0000"+ + "\u19ad\u19ae\u0003\r\u0006\u0000\u19ae\u19af\u0003#\u0011\u0000\u19af"+ + "\u19b0\u0003/\u0017\u0000\u19b0\u19b1\u0003-\u0016\u0000\u19b1\u048e\u0001"+ + "\u0000\u0000\u0000\u19b2\u19b3\u0003+\u0015\u0000\u19b3\u19b4\u0003-\u0016"+ + "\u0000\u19b4\u19b5\u0003#\u0011\u0000\u19b5\u19b6\u0003)\u0014\u0000\u19b6"+ + "\u19b7\u0003\u0007\u0003\u0000\u19b7\u19b8\u0003\u0013\t\u0000\u19b8\u19b9"+ + "\u0003\u000f\u0007\u0000\u19b9\u0490\u0001\u0000\u0000\u0000\u19ba\u19bb"+ + "\u0003+\u0015\u0000\u19bb\u19bc\u0003-\u0016\u0000\u19bc\u19bd\u0003)"+ + "\u0014\u0000\u19bd\u19be\u0003\u0017\u000b\u0000\u19be\u19bf\u0003\u000b"+ + "\u0005\u0000\u19bf\u19c0\u0003-\u0016\u0000\u19c0\u0492\u0001\u0000\u0000"+ + "\u0000\u19c1\u19c2\u0003+\u0015\u0000\u19c2\u19c3\u0003-\u0016\u0000\u19c3"+ + "\u19c4\u0003)\u0014\u0000\u19c4\u19c5\u0003/\u0017\u0000\u19c5\u19c6\u0003"+ + "\u000b\u0005\u0000\u19c6\u19c7\u0003-\u0016\u0000\u19c7\u19c8\u0003/\u0017"+ + "\u0000\u19c8\u19c9\u0003)\u0014\u0000\u19c9\u19ca\u0003\u000f\u0007\u0000"+ + "\u19ca\u0494\u0001\u0000\u0000\u0000\u19cb\u19cc\u0003+\u0015\u0000\u19cc"+ + "\u19cd\u0003-\u0016\u0000\u19cd\u19ce\u00037\u001b\u0000\u19ce\u19cf\u0003"+ + "\u001d\u000e\u0000\u19cf\u19d0\u0003\u000f\u0007\u0000\u19d0\u0496\u0001"+ + "\u0000\u0000\u0000\u19d1\u19d2\u0003+\u0015\u0000\u19d2\u19d3\u0003/\u0017"+ + "\u0000\u19d3\u19d4\u0003\t\u0004\u0000\u19d4\u19d5\u0003\u000b\u0005\u0000"+ + "\u19d5\u19d6\u0003\u001d\u000e\u0000\u19d6\u19d7\u0003\u0007\u0003\u0000"+ + "\u19d7\u19d8\u0003+\u0015\u0000\u19d8\u19d9\u0003+\u0015\u0000\u19d9\u19da"+ + "\u0005_\u0000\u0000\u19da\u19db\u0003#\u0011\u0000\u19db\u19dc\u0003)"+ + "\u0014\u0000\u19dc\u19dd\u0003\u0017\u000b\u0000\u19dd\u19de\u0003\u0013"+ + "\t\u0000\u19de\u19df\u0003\u0017\u000b\u0000\u19df\u19e0\u0003!\u0010"+ + "\u0000\u19e0\u0498\u0001\u0000\u0000\u0000\u19e1\u19e2\u0003+\u0015\u0000"+ + "\u19e2\u19e3\u0003/\u0017\u0000\u19e3\u19e4\u0003\t\u0004\u0000\u19e4"+ + "\u19e5\u0003\u001d\u000e\u0000\u19e5\u19e6\u0003\u0017\u000b\u0000\u19e6"+ + "\u19e7\u0003+\u0015\u0000\u19e7\u19e8\u0003-\u0016\u0000\u19e8\u049a\u0001"+ + "\u0000\u0000\u0000\u19e9\u19ea\u0003+\u0015\u0000\u19ea\u19eb\u0003/\u0017"+ + "\u0000\u19eb\u19ec\u0003\t\u0004\u0000\u19ec\u19ed\u0003\u001f\u000f\u0000"+ + "\u19ed\u19ee\u0003/\u0017\u0000\u19ee\u19ef\u0003\u001d\u000e\u0000\u19ef"+ + "\u19f0\u0003-\u0016\u0000\u19f0\u19f1\u0003\u0017\u000b\u0000\u19f1\u19f2"+ + "\u0003+\u0015\u0000\u19f2\u19f3\u0003\u000f\u0007\u0000\u19f3\u19f4\u0003"+ + "-\u0016\u0000\u19f4\u049c\u0001\u0000\u0000\u0000\u19f5\u19f6\u0003+\u0015"+ + "\u0000\u19f6\u19f7\u0003/\u0017\u0000\u19f7\u19f8\u0003\t\u0004\u0000"+ + "\u19f8\u19f9\u0003+\u0015\u0000\u19f9\u19fa\u0003\u000b\u0005\u0000\u19fa"+ + "\u19fb\u0003)\u0014\u0000\u19fb\u19fc\u0003\u0017\u000b\u0000\u19fc\u19fd"+ + "\u0003%\u0012\u0000\u19fd\u19fe\u0003-\u0016\u0000\u19fe\u19ff\u0003\u0017"+ + "\u000b\u0000\u19ff\u1a00\u0003#\u0011\u0000\u1a00\u1a01\u0003!\u0010\u0000"+ + "\u1a01\u049e\u0001\u0000\u0000\u0000\u1a02\u1a03\u0003+\u0015\u0000\u1a03"+ + "\u1a04\u0003/\u0017\u0000\u1a04\u1a05\u0003\t\u0004\u0000\u1a05\u1a06"+ + "\u0003+\u0015\u0000\u1a06\u1a07\u0003-\u0016\u0000\u1a07\u1a08\u0003)"+ + "\u0014\u0000\u1a08\u1a09\u0003\u0017\u000b\u0000\u1a09\u1a0a\u0003!\u0010"+ + "\u0000\u1a0a\u1a0b\u0003\u0013\t\u0000\u1a0b\u04a0\u0001\u0000\u0000\u0000"+ + "\u1a0c\u1a0d\u0003+\u0015\u0000\u1a0d\u1a0e\u0003/\u0017\u0000\u1a0e\u1a0f"+ + "\u0003\u001f\u000f\u0000\u1a0f\u04a2\u0001\u0000\u0000\u0000\u1a10\u1a11"+ + "\u0003+\u0015\u0000\u1a11\u1a12\u00037\u001b\u0000\u1a12\u1a13\u0003\u001f"+ + "\u000f\u0000\u1a13\u1a14\u0003\u001f\u000f\u0000\u1a14\u1a15\u0003\u000f"+ + "\u0007\u0000\u1a15\u1a16\u0003-\u0016\u0000\u1a16\u1a17\u0003)\u0014\u0000"+ + "\u1a17\u1a18\u0003\u0017\u000b\u0000\u1a18\u1a19\u0003\u000b\u0005\u0000"+ + "\u1a19\u04a4\u0001\u0000\u0000\u0000\u1a1a\u1a1b\u0003+\u0015\u0000\u1a1b"+ + "\u1a1c\u00037\u001b\u0000\u1a1c\u1a1d\u0003+\u0015\u0000\u1a1d\u1a1e\u0003"+ + "\u0017\u000b\u0000\u1a1e\u1a1f\u0003\r\u0006\u0000\u1a1f\u04a6\u0001\u0000"+ + "\u0000\u0000\u1a20\u1a21\u0003+\u0015\u0000\u1a21\u1a22\u00037\u001b\u0000"+ + "\u1a22\u1a23\u0003+\u0015\u0000\u1a23\u1a24\u0003-\u0016\u0000\u1a24\u1a25"+ + "\u0003\u000f\u0007\u0000\u1a25\u1a26\u0003\u001f\u000f\u0000\u1a26\u04a8"+ + "\u0001\u0000\u0000\u0000\u1a27\u1a28\u0003+\u0015\u0000\u1a28\u1a29\u0003"+ + "7\u001b\u0000\u1a29\u1a2a\u0003+\u0015\u0000\u1a2a\u1a2b\u0003-\u0016"+ + "\u0000\u1a2b\u1a2c\u0003\u000f\u0007\u0000\u1a2c\u1a2d\u0003\u001f\u000f"+ + "\u0000\u1a2d\u1a2e\u0005_\u0000\u0000\u1a2e\u1a2f\u0003/\u0017\u0000\u1a2f"+ + "\u1a30\u0003+\u0015\u0000\u1a30\u1a31\u0003\u000f\u0007\u0000\u1a31\u1a32"+ + "\u0003)\u0014\u0000\u1a32\u04aa\u0001\u0000\u0000\u0000\u1a33\u1a34\u0003"+ + "-\u0016\u0000\u1a34\u1a35\u0003\u0007\u0003\u0000\u1a35\u1a36\u0003\t"+ + "\u0004\u0000\u1a36\u1a37\u0003\u001d\u000e\u0000\u1a37\u1a38\u0003\u000f"+ + "\u0007\u0000\u1a38\u04ac\u0001\u0000\u0000\u0000\u1a39\u1a3a\u0003-\u0016"+ + "\u0000\u1a3a\u1a3b\u0003\u0007\u0003\u0000\u1a3b\u1a3c\u0003\t\u0004\u0000"+ + "\u1a3c\u1a3d\u0003\u001d\u000e\u0000\u1a3d\u1a3e\u0003\u000f\u0007\u0000"+ + "\u1a3e\u1a3f\u0005_\u0000\u0000\u1a3f\u1a40\u0003!\u0010\u0000\u1a40\u1a41"+ + "\u0003\u0007\u0003\u0000\u1a41\u1a42\u0003\u001f\u000f\u0000\u1a42\u1a43"+ + "\u0003\u000f\u0007\u0000\u1a43\u04ae\u0001\u0000\u0000\u0000\u1a44\u1a45"+ + "\u0003-\u0016\u0000\u1a45\u1a46\u0003\u0007\u0003\u0000\u1a46\u1a47\u0003"+ + "\t\u0004\u0000\u1a47\u1a48\u0003\u001d\u000e\u0000\u1a48\u1a49\u0003\u000f"+ + "\u0007\u0000\u1a49\u1a4a\u0003+\u0015\u0000\u1a4a\u1a4b\u0003\u0007\u0003"+ + "\u0000\u1a4b\u1a4c\u0003\u001f\u000f\u0000\u1a4c\u1a4d\u0003%\u0012\u0000"+ + "\u1a4d\u1a4e\u0003\u001d\u000e\u0000\u1a4e\u1a4f\u0003\u000f\u0007\u0000"+ + "\u1a4f\u04b0\u0001\u0000\u0000\u0000\u1a50\u1a51\u0003-\u0016\u0000\u1a51"+ + "\u1a52\u0003\u0007\u0003\u0000\u1a52\u1a53\u0003\t\u0004\u0000\u1a53\u1a54"+ + "\u0003\u001d\u000e\u0000\u1a54\u1a55\u0003\u000f\u0007\u0000\u1a55\u1a56"+ + "\u0003+\u0015\u0000\u1a56\u1a57\u0003%\u0012\u0000\u1a57\u1a58\u0003\u0007"+ + "\u0003\u0000\u1a58\u1a59\u0003\u000b\u0005\u0000\u1a59\u1a5a\u0003\u000f"+ + "\u0007\u0000\u1a5a\u04b2\u0001\u0000\u0000\u0000\u1a5b\u1a5c\u0003-\u0016"+ + "\u0000\u1a5c\u1a5d\u0003\u000f\u0007\u0000\u1a5d\u1a5e\u0003\u001f\u000f"+ + "\u0000\u1a5e\u1a5f\u0003%\u0012\u0000\u1a5f\u04b4\u0001\u0000\u0000\u0000"+ + "\u1a60\u1a61\u0003-\u0016\u0000\u1a61\u1a62\u0003\u000f\u0007\u0000\u1a62"+ + "\u1a63\u0003\u001f\u000f\u0000\u1a63\u1a64\u0003%\u0012\u0000\u1a64\u1a65"+ + "\u0003\u001d\u000e\u0000\u1a65\u1a66\u0003\u0007\u0003\u0000\u1a66\u1a67"+ + "\u0003-\u0016\u0000\u1a67\u1a68\u0003\u000f\u0007\u0000\u1a68\u04b6\u0001"+ + "\u0000\u0000\u0000\u1a69\u1a6a\u0003-\u0016\u0000\u1a6a\u1a6b\u0003\u000f"+ + "\u0007\u0000\u1a6b\u1a6c\u0003\u001f\u000f\u0000\u1a6c\u1a6d\u0003%\u0012"+ + "\u0000\u1a6d\u1a6e\u0003#\u0011\u0000\u1a6e\u1a6f\u0003)\u0014\u0000\u1a6f"+ + "\u1a70\u0003\u0007\u0003\u0000\u1a70\u1a71\u0003)\u0014\u0000\u1a71\u1a72"+ + "\u00037\u001b\u0000\u1a72\u04b8\u0001\u0000\u0000\u0000\u1a73\u1a74\u0003"+ + "-\u0016\u0000\u1a74\u1a75\u0003\u000f\u0007\u0000\u1a75\u1a76\u0003)\u0014"+ + "\u0000\u1a76\u1a77\u0003\u001f\u000f\u0000\u1a77\u1a78\u0003\u0017\u000b"+ + "\u0000\u1a78\u1a79\u0003!\u0010\u0000\u1a79\u1a7a\u0003\u0007\u0003\u0000"+ + "\u1a7a\u1a7b\u0003-\u0016\u0000\u1a7b\u1a7c\u0003\u000f\u0007\u0000\u1a7c"+ + "\u04ba\u0001\u0000\u0000\u0000\u1a7d\u1a7e\u0003-\u0016\u0000\u1a7e\u1a7f"+ + "\u0003\u0015\n\u0000\u1a7f\u1a80\u0003\u0007\u0003\u0000\u1a80\u1a81\u0003"+ + "!\u0010\u0000\u1a81\u04bc\u0001\u0000\u0000\u0000\u1a82\u1a83\u0003-\u0016"+ + "\u0000\u1a83\u1a84\u0003\u0015\n\u0000\u1a84\u1a85\u0003\u000f\u0007\u0000"+ + "\u1a85\u1a86\u0003!\u0010\u0000\u1a86\u04be\u0001\u0000\u0000\u0000\u1a87"+ + "\u1a88\u0003-\u0016\u0000\u1a88\u1a89\u0003\u0017\u000b\u0000\u1a89\u1a8a"+ + "\u0003\u000f\u0007\u0000\u1a8a\u1a8b\u0003+\u0015\u0000\u1a8b\u04c0\u0001"+ + "\u0000\u0000\u0000\u1a8c\u1a8d\u0003-\u0016\u0000\u1a8d\u1a8e\u0003\u0017"+ + "\u000b\u0000\u1a8e\u1a8f\u0003\u001f\u000f\u0000\u1a8f\u1a90\u0003\u000f"+ + "\u0007\u0000\u1a90\u04c2\u0001\u0000\u0000\u0000\u1a91\u1a92\u0003-\u0016"+ + "\u0000\u1a92\u1a93\u0003\u0017\u000b\u0000\u1a93\u1a94\u0003\u001f\u000f"+ + "\u0000\u1a94\u1a95\u0003\u000f\u0007\u0000\u1a95\u1a96\u0003+\u0015\u0000"+ + "\u1a96\u1a97\u0003-\u0016\u0000\u1a97\u1a98\u0003\u0007\u0003\u0000\u1a98"+ + "\u1a99\u0003\u001f\u000f\u0000\u1a99\u1a9a\u0003%\u0012\u0000\u1a9a\u04c4"+ + "\u0001\u0000\u0000\u0000\u1a9b\u1a9c\u0003-\u0016\u0000\u1a9c\u1a9d\u0003"+ + "\u0017\u000b\u0000\u1a9d\u1a9e\u0003\u001f\u000f\u0000\u1a9e\u1a9f\u0003"+ + "\u000f\u0007\u0000\u1a9f\u1aa0\u00039\u001c\u0000\u1aa0\u1aa1\u0003#\u0011"+ + "\u0000\u1aa1\u1aa2\u0003!\u0010\u0000\u1aa2\u1aa3\u0003\u000f\u0007\u0000"+ + "\u1aa3\u1aa4\u0005_\u0000\u0000\u1aa4\u1aa5\u0003\u0015\n\u0000\u1aa5"+ + "\u1aa6\u0003#\u0011\u0000\u1aa6\u1aa7\u0003/\u0017\u0000\u1aa7\u1aa8\u0003"+ + ")\u0014\u0000\u1aa8\u04c6\u0001\u0000\u0000\u0000\u1aa9\u1aaa\u0003-\u0016"+ + "\u0000\u1aaa\u1aab\u0003\u0017\u000b\u0000\u1aab\u1aac\u0003\u001f\u000f"+ + "\u0000\u1aac\u1aad\u0003\u000f\u0007\u0000\u1aad\u1aae\u00039\u001c\u0000"+ + "\u1aae\u1aaf\u0003#\u0011\u0000\u1aaf\u1ab0\u0003!\u0010\u0000\u1ab0\u1ab1"+ + "\u0003\u000f\u0007\u0000\u1ab1\u1ab2\u0005_\u0000\u0000\u1ab2\u1ab3\u0003"+ + "\u001f\u000f\u0000\u1ab3\u1ab4\u0003\u0017\u000b\u0000\u1ab4\u1ab5\u0003"+ + "!\u0010\u0000\u1ab5\u1ab6\u0003/\u0017\u0000\u1ab6\u1ab7\u0003-\u0016"+ + "\u0000\u1ab7\u1ab8\u0003\u000f\u0007\u0000\u1ab8\u04c8\u0001\u0000\u0000"+ + "\u0000\u1ab9\u1aba\u0003-\u0016\u0000\u1aba\u1abb\u0003\u0017\u000b\u0000"+ + "\u1abb\u1abc\u0003\u001f\u000f\u0000\u1abc\u1abd\u0003\u0017\u000b\u0000"+ + "\u1abd\u1abe\u0003!\u0010\u0000\u1abe\u1abf\u0003\u0013\t\u0000\u1abf"+ + "\u04ca\u0001\u0000\u0000\u0000\u1ac0\u1ac1\u0003-\u0016\u0000\u1ac1\u1ac2"+ + "\u0003#\u0011\u0000\u1ac2\u04cc\u0001\u0000\u0000\u0000\u1ac3\u1ac4\u0003"+ + "-\u0016\u0000\u1ac4\u1ac5\u0003#\u0011\u0000\u1ac5\u1ac6\u0003\u0007\u0003"+ + "\u0000\u1ac6\u1ac7\u0003+\u0015\u0000\u1ac7\u1ac8\u0003-\u0016\u0000\u1ac8"+ + "\u04ce\u0001\u0000\u0000\u0000\u1ac9\u1aca\u0003-\u0016\u0000\u1aca\u1acb"+ + "\u0003#\u0011\u0000\u1acb\u1acc\u0003%\u0012\u0000\u1acc\u1acd\u0005_"+ + "\u0000\u0000\u1acd\u1ace\u0003\u001d\u000e\u0000\u1ace\u1acf\u0003\u000f"+ + "\u0007\u0000\u1acf\u1ad0\u00031\u0018\u0000\u1ad0\u1ad1\u0003\u000f\u0007"+ + "\u0000\u1ad1\u1ad2\u0003\u001d\u000e\u0000\u1ad2\u1ad3\u0005_\u0000\u0000"+ + "\u1ad3\u1ad4\u0003\u000b\u0005\u0000\u1ad4\u1ad5\u0003#\u0011\u0000\u1ad5"+ + "\u1ad6\u0003/\u0017\u0000\u1ad6\u1ad7\u0003!\u0010\u0000\u1ad7\u1ad8\u0003"+ + "-\u0016\u0000\u1ad8\u04d0\u0001\u0000\u0000\u0000\u1ad9\u1ada\u0003-\u0016"+ + "\u0000\u1ada\u1adb\u0003)\u0014\u0000\u1adb\u1adc\u0003\u0007\u0003\u0000"+ + "\u1adc\u1add\u0003\u0017\u000b\u0000\u1add\u1ade\u0003\u001d\u000e\u0000"+ + "\u1ade\u1adf\u0003\u0017\u000b\u0000\u1adf\u1ae0\u0003!\u0010\u0000\u1ae0"+ + "\u1ae1\u0003\u0013\t\u0000\u1ae1\u04d2\u0001\u0000\u0000\u0000\u1ae2\u1ae3"+ + "\u0003-\u0016\u0000\u1ae3\u1ae4\u0003)\u0014\u0000\u1ae4\u1ae5\u0003\u0007"+ + "\u0003\u0000\u1ae5\u1ae6\u0003!\u0010\u0000\u1ae6\u1ae7\u0003+\u0015\u0000"+ + "\u1ae7\u1ae8\u0003\u0007\u0003\u0000\u1ae8\u1ae9\u0003\u000b\u0005\u0000"+ + "\u1ae9\u1aea\u0003-\u0016\u0000\u1aea\u1aeb\u0003\u0017\u000b\u0000\u1aeb"+ + "\u1aec\u0003#\u0011\u0000\u1aec\u1aed\u0003!\u0010\u0000\u1aed\u04d4\u0001"+ + "\u0000\u0000\u0000\u1aee\u1aef\u0003-\u0016\u0000\u1aef\u1af0\u0003)\u0014"+ + "\u0000\u1af0\u1af1\u0003\u0007\u0003\u0000\u1af1\u1af2\u0003!\u0010\u0000"+ + "\u1af2\u1af3\u0003+\u0015\u0000\u1af3\u1af4\u0003\u0007\u0003\u0000\u1af4"+ + "\u1af5\u0003\u000b\u0005\u0000\u1af5\u1af6\u0003-\u0016\u0000\u1af6\u1af7"+ + "\u0003\u0017\u000b\u0000\u1af7\u1af8\u0003#\u0011\u0000\u1af8\u1af9\u0003"+ + "!\u0010\u0000\u1af9\u1afa\u0005_\u0000\u0000\u1afa\u1afb\u0003\u0007\u0003"+ + "\u0000\u1afb\u1afc\u0003\u000b\u0005\u0000\u1afc\u1afd\u0003-\u0016\u0000"+ + "\u1afd\u1afe\u0003\u0017\u000b\u0000\u1afe\u1aff\u00031\u0018\u0000\u1aff"+ + "\u1b00\u0003\u000f\u0007\u0000\u1b00\u04d6\u0001\u0000\u0000\u0000\u1b01"+ + "\u1b02\u0003-\u0016\u0000\u1b02\u1b03\u0003)\u0014\u0000\u1b03\u1b04\u0003"+ + "\u0007\u0003\u0000\u1b04\u1b05\u0003!\u0010\u0000\u1b05\u1b06\u0003+\u0015"+ + "\u0000\u1b06\u1b07\u0003\u0007\u0003\u0000\u1b07\u1b08\u0003\u000b\u0005"+ + "\u0000\u1b08\u1b09\u0003-\u0016\u0000\u1b09\u1b0a\u0003\u0017\u000b\u0000"+ + "\u1b0a\u1b0b\u0003#\u0011\u0000\u1b0b\u1b0c\u0003!\u0010\u0000\u1b0c\u1b0d"+ + "\u0003+\u0015\u0000\u1b0d\u1b0e\u0005_\u0000\u0000\u1b0e\u1b0f\u0003\u000b"+ + "\u0005\u0000\u1b0f\u1b10\u0003#\u0011\u0000\u1b10\u1b11\u0003\u001f\u000f"+ + "\u0000\u1b11\u1b12\u0003\u001f\u000f\u0000\u1b12\u1b13\u0003\u0017\u000b"+ + "\u0000\u1b13\u1b14\u0003-\u0016\u0000\u1b14\u1b15\u0003-\u0016\u0000\u1b15"+ + "\u1b16\u0003\u000f\u0007\u0000\u1b16\u1b17\u0003\r\u0006\u0000\u1b17\u04d8"+ + "\u0001\u0000\u0000\u0000\u1b18\u1b19\u0003-\u0016\u0000\u1b19\u1b1a\u0003"+ + ")\u0014\u0000\u1b1a\u1b1b\u0003\u0007\u0003\u0000\u1b1b\u1b1c\u0003!\u0010"+ + "\u0000\u1b1c\u1b1d\u0003+\u0015\u0000\u1b1d\u1b1e\u0003\u0007\u0003\u0000"+ + "\u1b1e\u1b1f\u0003\u000b\u0005\u0000\u1b1f\u1b20\u0003-\u0016\u0000\u1b20"+ + "\u1b21\u0003\u0017\u000b\u0000\u1b21\u1b22\u0003#\u0011\u0000\u1b22\u1b23"+ + "\u0003!\u0010\u0000\u1b23\u1b24\u0003+\u0015\u0000\u1b24\u1b25\u0005_"+ + "\u0000\u0000\u1b25\u1b26\u0003)\u0014\u0000\u1b26\u1b27\u0003#\u0011\u0000"+ + "\u1b27\u1b28\u0003\u001d\u000e\u0000\u1b28\u1b29\u0003\u001d\u000e\u0000"+ + "\u1b29\u1b2a\u0003\u000f\u0007\u0000\u1b2a\u1b2b\u0003\r\u0006\u0000\u1b2b"+ + "\u1b2c\u0005_\u0000\u0000\u1b2c\u1b2d\u0003\t\u0004\u0000\u1b2d\u1b2e"+ + "\u0003\u0007\u0003\u0000\u1b2e\u1b2f\u0003\u000b\u0005\u0000\u1b2f\u1b30"+ + "\u0003\u001b\r\u0000\u1b30\u04da\u0001\u0000\u0000\u0000\u1b31\u1b32\u0003"+ + "-\u0016\u0000\u1b32\u1b33\u0003)\u0014\u0000\u1b33\u1b34\u0003\u0007\u0003"+ + "\u0000\u1b34\u1b35\u0003!\u0010\u0000\u1b35\u1b36\u0003+\u0015\u0000\u1b36"+ + "\u1b37\u0003\u0011\b\u0000\u1b37\u1b38\u0003#\u0011\u0000\u1b38\u1b39"+ + "\u0003)\u0014\u0000\u1b39\u1b3a\u0003\u001f\u000f\u0000\u1b3a\u04dc\u0001"+ + "\u0000\u0000\u0000\u1b3b\u1b3c\u0003-\u0016\u0000\u1b3c\u1b3d\u0003)\u0014"+ + "\u0000\u1b3d\u1b3e\u0003\u0007\u0003\u0000\u1b3e\u1b3f\u0003!\u0010\u0000"+ + "\u1b3f\u1b40\u0003+\u0015\u0000\u1b40\u1b41\u0003\u0011\b\u0000\u1b41"+ + "\u1b42\u0003#\u0011\u0000\u1b42\u1b43\u0003)\u0014\u0000\u1b43\u1b44\u0003"+ + "\u001f\u000f\u0000\u1b44\u1b45\u0003+\u0015\u0000\u1b45\u04de\u0001\u0000"+ + "\u0000\u0000\u1b46\u1b47\u0003-\u0016\u0000\u1b47\u1b48\u0003)\u0014\u0000"+ + "\u1b48\u1b49\u0003\u0007\u0003\u0000\u1b49\u1b4a\u0003!\u0010\u0000\u1b4a"+ + "\u1b4b\u0003+\u0015\u0000\u1b4b\u1b4c\u0003\u001d\u000e\u0000\u1b4c\u1b4d"+ + "\u0003\u0007\u0003\u0000\u1b4d\u1b4e\u0003-\u0016\u0000\u1b4e\u1b4f\u0003"+ + "\u000f\u0007\u0000\u1b4f\u04e0\u0001\u0000\u0000\u0000\u1b50\u1b51\u0003"+ + "-\u0016\u0000\u1b51\u1b52\u0003)\u0014\u0000\u1b52\u1b53\u0003\u0007\u0003"+ + "\u0000\u1b53\u1b54\u0003!\u0010\u0000\u1b54\u1b55\u0003+\u0015\u0000\u1b55"+ + "\u1b56\u0003\u001d\u000e\u0000\u1b56\u1b57\u0003\u0007\u0003\u0000\u1b57"+ + "\u1b58\u0003-\u0016\u0000\u1b58\u1b59\u0003\u0017\u000b\u0000\u1b59\u1b5a"+ + "\u0003#\u0011\u0000\u1b5a\u1b5b\u0003!\u0010\u0000\u1b5b\u04e2\u0001\u0000"+ + "\u0000\u0000\u1b5c\u1b5d\u0003-\u0016\u0000\u1b5d\u1b5e\u0003)\u0014\u0000"+ + "\u1b5e\u1b5f\u0003\u000f\u0007\u0000\u1b5f\u1b60\u0003\u0007\u0003\u0000"+ + "\u1b60\u1b61\u0003-\u0016\u0000\u1b61\u04e4\u0001\u0000\u0000\u0000\u1b62"+ + "\u1b63\u0003-\u0016\u0000\u1b63\u1b64\u0003)\u0014\u0000\u1b64\u1b65\u0003"+ + "\u0017\u000b\u0000\u1b65\u1b66\u0003\u0013\t\u0000\u1b66\u1b67\u0003\u0013"+ + "\t\u0000\u1b67\u1b68\u0003\u000f\u0007\u0000\u1b68\u1b69\u0003)\u0014"+ + "\u0000\u1b69\u04e6\u0001\u0000\u0000\u0000\u1b6a\u1b6b\u0003-\u0016\u0000"+ + "\u1b6b\u1b6c\u0003)\u0014\u0000\u1b6c\u1b6d\u0003\u0017\u000b\u0000\u1b6d"+ + "\u1b6e\u0003\u0013\t\u0000\u1b6e\u1b6f\u0003\u0013\t\u0000\u1b6f\u1b70"+ + "\u0003\u000f\u0007\u0000\u1b70\u1b71\u0003)\u0014\u0000\u1b71\u1b72\u0005"+ + "_\u0000\u0000\u1b72\u1b73\u0003\u000b\u0005\u0000\u1b73\u1b74\u0003\u0007"+ + "\u0003\u0000\u1b74\u1b75\u0003-\u0016\u0000\u1b75\u1b76\u0003\u0007\u0003"+ + "\u0000\u1b76\u1b77\u0003\u001d\u000e\u0000\u1b77\u1b78\u0003#\u0011\u0000"+ + "\u1b78\u1b79\u0003\u0013\t\u0000\u1b79\u04e8\u0001\u0000\u0000\u0000\u1b7a"+ + "\u1b7b\u0003-\u0016\u0000\u1b7b\u1b7c\u0003)\u0014\u0000\u1b7c\u1b7d\u0003"+ + "\u0017\u000b\u0000\u1b7d\u1b7e\u0003\u0013\t\u0000\u1b7e\u1b7f\u0003\u0013"+ + "\t\u0000\u1b7f\u1b80\u0003\u000f\u0007\u0000\u1b80\u1b81\u0003)\u0014"+ + "\u0000\u1b81\u1b82\u0005_\u0000\u0000\u1b82\u1b83\u0003!\u0010\u0000\u1b83"+ + "\u1b84\u0003\u0007\u0003\u0000\u1b84\u1b85\u0003\u001f\u000f\u0000\u1b85"+ + "\u1b86\u0003\u000f\u0007\u0000\u1b86\u04ea\u0001\u0000\u0000\u0000\u1b87"+ + "\u1b88\u0003-\u0016\u0000\u1b88\u1b89\u0003)\u0014\u0000\u1b89\u1b8a\u0003"+ + "\u0017\u000b\u0000\u1b8a\u1b8b\u0003\u0013\t\u0000\u1b8b\u1b8c\u0003\u0013"+ + "\t\u0000\u1b8c\u1b8d\u0003\u000f\u0007\u0000\u1b8d\u1b8e\u0003)\u0014"+ + "\u0000\u1b8e\u1b8f\u0005_\u0000\u0000\u1b8f\u1b90\u0003+\u0015\u0000\u1b90"+ + "\u1b91\u0003\u000b\u0005\u0000\u1b91\u1b92\u0003\u0015\n\u0000\u1b92\u1b93"+ + "\u0003\u000f\u0007\u0000\u1b93\u1b94\u0003\u001f\u000f\u0000\u1b94\u1b95"+ + "\u0003\u0007\u0003\u0000\u1b95\u04ec\u0001\u0000\u0000\u0000\u1b96\u1b97"+ + "\u0003-\u0016\u0000\u1b97\u1b98\u0003)\u0014\u0000\u1b98\u1b99\u0003\u0017"+ + "\u000b\u0000\u1b99\u1b9a\u0003\u001f\u000f\u0000\u1b9a\u04ee\u0001\u0000"+ + "\u0000\u0000\u1b9b\u1b9c\u0003-\u0016\u0000\u1b9c\u1b9d\u0003)\u0014\u0000"+ + "\u1b9d\u1b9e\u0003/\u0017\u0000\u1b9e\u1b9f\u0003\u000f\u0007\u0000\u1b9f"+ + "\u04f0\u0001\u0000\u0000\u0000\u1ba0\u1ba1\u0003-\u0016\u0000\u1ba1\u1ba2"+ + "\u0003)\u0014\u0000\u1ba2\u1ba3\u0003/\u0017\u0000\u1ba3\u1ba4\u0003!"+ + "\u0010\u0000\u1ba4\u1ba5\u0003\u000b\u0005\u0000\u1ba5\u1ba6\u0003\u0007"+ + "\u0003\u0000\u1ba6\u1ba7\u0003-\u0016\u0000\u1ba7\u1ba8\u0003\u000f\u0007"+ + "\u0000\u1ba8\u04f2\u0001\u0000\u0000\u0000\u1ba9\u1baa\u0003-\u0016\u0000"+ + "\u1baa\u1bab\u0003)\u0014\u0000\u1bab\u1bac\u0003/\u0017\u0000\u1bac\u1bad"+ + "\u0003+\u0015\u0000\u1bad\u1bae\u0003-\u0016\u0000\u1bae\u1baf\u0003\u000f"+ + "\u0007\u0000\u1baf\u1bb0\u0003\r\u0006\u0000\u1bb0\u04f4\u0001\u0000\u0000"+ + "\u0000\u1bb1\u1bb2\u0003-\u0016\u0000\u1bb2\u1bb3\u00037\u001b\u0000\u1bb3"+ + "\u1bb4\u0003%\u0012\u0000\u1bb4\u1bb5\u0003\u000f\u0007\u0000\u1bb5\u04f6"+ + "\u0001\u0000\u0000\u0000\u1bb6\u1bb7\u0003/\u0017\u0000\u1bb7\u1bb8\u0003"+ + "\u000f\u0007\u0000\u1bb8\u1bb9\u0003+\u0015\u0000\u1bb9\u1bba\u0003\u000b"+ + "\u0005\u0000\u1bba\u1bbb\u0003\u0007\u0003\u0000\u1bbb\u1bbc\u0003%\u0012"+ + "\u0000\u1bbc\u1bbd\u0003\u000f\u0007\u0000\u1bbd\u04f8\u0001\u0000\u0000"+ + "\u0000\u1bbe\u1bbf\u0003/\u0017\u0000\u1bbf\u1bc0\u0003!\u0010\u0000\u1bc0"+ + "\u1bc1\u0003\t\u0004\u0000\u1bc1\u1bc2\u0003#\u0011\u0000\u1bc2\u1bc3"+ + "\u0003/\u0017\u0000\u1bc3\u1bc4\u0003!\u0010\u0000\u1bc4\u1bc5\u0003\r"+ + "\u0006\u0000\u1bc5\u1bc6\u0003\u000f\u0007\u0000\u1bc6\u1bc7\u0003\r\u0006"+ + "\u0000\u1bc7\u04fa\u0001\u0000\u0000\u0000\u1bc8\u1bc9\u0003/\u0017\u0000"+ + "\u1bc9\u1bca\u0003!\u0010\u0000\u1bca\u1bcb\u0003\u000b\u0005\u0000\u1bcb"+ + "\u1bcc\u0003#\u0011\u0000\u1bcc\u1bcd\u0003\u001f\u000f\u0000\u1bcd\u1bce"+ + "\u0003\u001f\u000f\u0000\u1bce\u1bcf\u0003\u0017\u000b\u0000\u1bcf\u1bd0"+ + "\u0003-\u0016\u0000\u1bd0\u1bd1\u0003-\u0016\u0000\u1bd1\u1bd2\u0003\u000f"+ + "\u0007\u0000\u1bd2\u1bd3\u0003\r\u0006\u0000\u1bd3\u04fc\u0001\u0000\u0000"+ + "\u0000\u1bd4\u1bd5\u0003/\u0017\u0000\u1bd5\u1bd6\u0003!\u0010\u0000\u1bd6"+ + "\u1bd7\u0003\r\u0006\u0000\u1bd7\u1bd8\u0003\u000f\u0007\u0000\u1bd8\u1bd9"+ + "\u0003)\u0014\u0000\u1bd9\u04fe\u0001\u0000\u0000\u0000\u1bda\u1bdb\u0003"+ + "/\u0017\u0000\u1bdb\u1bdc\u0003!\u0010\u0000\u1bdc\u1bdd\u0003\u000f\u0007"+ + "\u0000\u1bdd\u1bde\u0003!\u0010\u0000\u1bde\u1bdf\u0003\u000b\u0005\u0000"+ + "\u1bdf\u1be0\u0003)\u0014\u0000\u1be0\u1be1\u00037\u001b\u0000\u1be1\u1be2"+ + "\u0003%\u0012\u0000\u1be2\u1be3\u0003-\u0016\u0000\u1be3\u1be4\u0003\u000f"+ + "\u0007\u0000\u1be4\u1be5\u0003\r\u0006\u0000\u1be5\u0500\u0001\u0000\u0000"+ + "\u0000\u1be6\u1be7\u0003/\u0017\u0000\u1be7\u1be8\u0003!\u0010\u0000\u1be8"+ + "\u1be9\u0003\u0017\u000b\u0000\u1be9\u1bea\u0003#\u0011\u0000\u1bea\u1beb"+ + "\u0003!\u0010\u0000\u1beb\u0502\u0001\u0000\u0000\u0000\u1bec\u1bed\u0003"+ + "/\u0017\u0000\u1bed\u1bee\u0003!\u0010\u0000\u1bee\u1bef\u0003\u0017\u000b"+ + "\u0000\u1bef\u1bf0\u0003\'\u0013\u0000\u1bf0\u1bf1\u0003/\u0017\u0000"+ + "\u1bf1\u1bf2\u0003\u000f\u0007\u0000\u1bf2\u0504\u0001\u0000\u0000\u0000"+ + "\u1bf3\u1bf4\u0003/\u0017\u0000\u1bf4\u1bf5\u0003!\u0010\u0000\u1bf5\u1bf6"+ + "\u0003\u001b\r\u0000\u1bf6\u1bf7\u0003!\u0010\u0000\u1bf7\u1bf8\u0003"+ + "#\u0011\u0000\u1bf8\u1bf9\u00033\u0019\u0000\u1bf9\u1bfa\u0003!\u0010"+ + "\u0000\u1bfa\u0506\u0001\u0000\u0000\u0000\u1bfb\u1bfc\u0003/\u0017\u0000"+ + "\u1bfc\u1bfd\u0003!\u0010\u0000\u1bfd\u1bfe\u0003\u001d\u000e\u0000\u1bfe"+ + "\u1bff\u0003\u0017\u000b\u0000\u1bff\u1c00\u0003+\u0015\u0000\u1c00\u1c01"+ + "\u0003-\u0016\u0000\u1c01\u1c02\u0003\u000f\u0007\u0000\u1c02\u1c03\u0003"+ + "!\u0010\u0000\u1c03\u0508\u0001\u0000\u0000\u0000\u1c04\u1c05\u0003/\u0017"+ + "\u0000\u1c05\u1c06\u0003!\u0010\u0000\u1c06\u1c07\u0003!\u0010\u0000\u1c07"+ + "\u1c08\u0003\u0007\u0003\u0000\u1c08\u1c09\u0003\u001f\u000f\u0000\u1c09"+ + "\u1c0a\u0003\u000f\u0007\u0000\u1c0a\u1c0b\u0003\r\u0006\u0000\u1c0b\u050a"+ + "\u0001\u0000\u0000\u0000\u1c0c\u1c0d\u0003/\u0017\u0000\u1c0d\u1c0e\u0003"+ + "!\u0010\u0000\u1c0e\u1c0f\u0003!\u0010\u0000\u1c0f\u1c10\u0003\u000f\u0007"+ + "\u0000\u1c10\u1c11\u0003+\u0015\u0000\u1c11\u1c12\u0003-\u0016\u0000\u1c12"+ + "\u050c\u0001\u0000\u0000\u0000\u1c13\u1c14\u0003/\u0017\u0000\u1c14\u1c15"+ + "\u0003!\u0010\u0000\u1c15\u1c16\u0003-\u0016\u0000\u1c16\u1c17\u0003\u0017"+ + "\u000b\u0000\u1c17\u1c18\u0003\u001d\u000e\u0000\u1c18\u050e\u0001\u0000"+ + "\u0000\u0000\u1c19\u1c1a\u0003/\u0017\u0000\u1c1a\u1c1b\u0003%\u0012\u0000"+ + "\u1c1b\u1c1c\u0003\r\u0006\u0000\u1c1c\u1c1d\u0003\u0007\u0003\u0000\u1c1d"+ + "\u1c1e\u0003-\u0016\u0000\u1c1e\u1c1f\u0003\u000f\u0007\u0000\u1c1f\u0510"+ + "\u0001\u0000\u0000\u0000\u1c20\u1c21\u0003/\u0017\u0000\u1c21\u1c22\u0003"+ + "%\u0012\u0000\u1c22\u1c23\u0003%\u0012\u0000\u1c23\u1c24\u0003\u000f\u0007"+ + "\u0000\u1c24\u1c25\u0003)\u0014\u0000\u1c25\u0512\u0001\u0000\u0000\u0000"+ + "\u1c26\u1c27\u0003/\u0017\u0000\u1c27\u1c28\u0003+\u0015\u0000\u1c28\u1c29"+ + "\u0003\u0007\u0003\u0000\u1c29\u1c2a\u0003\u0013\t\u0000\u1c2a\u1c2b\u0003"+ + "\u000f\u0007\u0000\u1c2b\u0514\u0001\u0000\u0000\u0000\u1c2c\u1c2d\u0003"+ + "/\u0017\u0000\u1c2d\u1c2e\u0003+\u0015\u0000\u1c2e\u1c2f\u0003\u000f\u0007"+ + "\u0000\u1c2f\u1c30\u0003)\u0014\u0000\u1c30\u0516\u0001\u0000\u0000\u0000"+ + "\u1c31\u1c32\u0003/\u0017\u0000\u1c32\u1c33\u0003+\u0015\u0000\u1c33\u1c34"+ + "\u0003\u000f\u0007\u0000\u1c34\u1c35\u0003)\u0014\u0000\u1c35\u1c36\u0005"+ + "_\u0000\u0000\u1c36\u1c37\u0003\r\u0006\u0000\u1c37\u1c38\u0003\u000f"+ + "\u0007\u0000\u1c38\u1c39\u0003\u0011\b\u0000\u1c39\u1c3a\u0003\u0017\u000b"+ + "\u0000\u1c3a\u1c3b\u0003!\u0010\u0000\u1c3b\u1c3c\u0003\u000f\u0007\u0000"+ + "\u1c3c\u1c3d\u0003\r\u0006\u0000\u1c3d\u1c3e\u0005_\u0000\u0000\u1c3e"+ + "\u1c3f\u0003-\u0016\u0000\u1c3f\u1c40\u00037\u001b\u0000\u1c40\u1c41\u0003"+ + "%\u0012\u0000\u1c41\u1c42\u0003\u000f\u0007\u0000\u1c42\u1c43\u0005_\u0000"+ + "\u0000\u1c43\u1c44\u0003\u000b\u0005\u0000\u1c44\u1c45\u0003\u0007\u0003"+ + "\u0000\u1c45\u1c46\u0003-\u0016\u0000\u1c46\u1c47\u0003\u0007\u0003\u0000"+ + "\u1c47\u1c48\u0003\u001d\u000e\u0000\u1c48\u1c49\u0003#\u0011\u0000\u1c49"+ + "\u1c4a\u0003\u0013\t\u0000\u1c4a\u0518\u0001\u0000\u0000\u0000\u1c4b\u1c4c"+ + "\u0003/\u0017\u0000\u1c4c\u1c4d\u0003+\u0015\u0000\u1c4d\u1c4e\u0003\u000f"+ + "\u0007\u0000\u1c4e\u1c4f\u0003)\u0014\u0000\u1c4f\u1c50\u0005_\u0000\u0000"+ + "\u1c50\u1c51\u0003\r\u0006\u0000\u1c51\u1c52\u0003\u000f\u0007\u0000\u1c52"+ + "\u1c53\u0003\u0011\b\u0000\u1c53\u1c54\u0003\u0017\u000b\u0000\u1c54\u1c55"+ + "\u0003!\u0010\u0000\u1c55\u1c56\u0003\u000f\u0007\u0000\u1c56\u1c57\u0003"+ + "\r\u0006\u0000\u1c57\u1c58\u0005_\u0000\u0000\u1c58\u1c59\u0003-\u0016"+ + "\u0000\u1c59\u1c5a\u00037\u001b\u0000\u1c5a\u1c5b\u0003%\u0012\u0000\u1c5b"+ + "\u1c5c\u0003\u000f\u0007\u0000\u1c5c\u1c5d\u0005_\u0000\u0000\u1c5d\u1c5e"+ + "\u0003\u000b\u0005\u0000\u1c5e\u1c5f\u0003#\u0011\u0000\u1c5f\u1c60\u0003"+ + "\r\u0006\u0000\u1c60\u1c61\u0003\u000f\u0007\u0000\u1c61\u051a\u0001\u0000"+ + "\u0000\u0000\u1c62\u1c63\u0003/\u0017\u0000\u1c63\u1c64\u0003+\u0015\u0000"+ + "\u1c64\u1c65\u0003\u000f\u0007\u0000\u1c65\u1c66\u0003)\u0014\u0000\u1c66"+ + "\u1c67\u0005_\u0000\u0000\u1c67\u1c68\u0003\r\u0006\u0000\u1c68\u1c69"+ + "\u0003\u000f\u0007\u0000\u1c69\u1c6a\u0003\u0011\b\u0000\u1c6a\u1c6b\u0003"+ + "\u0017\u000b\u0000\u1c6b\u1c6c\u0003!\u0010\u0000\u1c6c\u1c6d\u0003\u000f"+ + "\u0007\u0000\u1c6d\u1c6e\u0003\r\u0006\u0000\u1c6e\u1c6f\u0005_\u0000"+ + "\u0000\u1c6f\u1c70\u0003-\u0016\u0000\u1c70\u1c71\u00037\u001b\u0000\u1c71"+ + "\u1c72\u0003%\u0012\u0000\u1c72\u1c73\u0003\u000f\u0007\u0000\u1c73\u1c74"+ + "\u0005_\u0000\u0000\u1c74\u1c75\u0003!\u0010\u0000\u1c75\u1c76\u0003\u0007"+ + "\u0003\u0000\u1c76\u1c77\u0003\u001f\u000f\u0000\u1c77\u1c78\u0003\u000f"+ + "\u0007\u0000\u1c78\u051c\u0001\u0000\u0000\u0000\u1c79\u1c7a\u0003/\u0017"+ + "\u0000\u1c7a\u1c7b\u0003+\u0015\u0000\u1c7b\u1c7c\u0003\u000f\u0007\u0000"+ + "\u1c7c\u1c7d\u0003)\u0014\u0000\u1c7d\u1c7e\u0005_\u0000\u0000\u1c7e\u1c7f"+ + "\u0003\r\u0006\u0000\u1c7f\u1c80\u0003\u000f\u0007\u0000\u1c80\u1c81\u0003"+ + "\u0011\b\u0000\u1c81\u1c82\u0003\u0017\u000b\u0000\u1c82\u1c83\u0003!"+ + "\u0010\u0000\u1c83\u1c84\u0003\u000f\u0007\u0000\u1c84\u1c85\u0003\r\u0006"+ + "\u0000\u1c85\u1c86\u0005_\u0000\u0000\u1c86\u1c87\u0003-\u0016\u0000\u1c87"+ + "\u1c88\u00037\u001b\u0000\u1c88\u1c89\u0003%\u0012\u0000\u1c89\u1c8a\u0003"+ + "\u000f\u0007\u0000\u1c8a\u1c8b\u0005_\u0000\u0000\u1c8b\u1c8c\u0003+\u0015"+ + "\u0000\u1c8c\u1c8d\u0003\u000b\u0005\u0000\u1c8d\u1c8e\u0003\u0015\n\u0000"+ + "\u1c8e\u1c8f\u0003\u000f\u0007\u0000\u1c8f\u1c90\u0003\u001f\u000f\u0000"+ + "\u1c90\u1c91\u0003\u0007\u0003\u0000\u1c91\u051e\u0001\u0000\u0000\u0000"+ + "\u1c92\u1c93\u0003/\u0017\u0000\u1c93\u1c94\u0003+\u0015\u0000\u1c94\u1c95"+ + "\u0003\u0017\u000b\u0000\u1c95\u1c96\u0003!\u0010\u0000\u1c96\u1c97\u0003"+ + "\u0013\t\u0000\u1c97\u0520\u0001\u0000\u0000\u0000\u1c98\u1c99\u00031"+ + "\u0018\u0000\u1c99\u1c9a\u0003\u0007\u0003\u0000\u1c9a\u1c9b\u0003\u000b"+ + "\u0005\u0000\u1c9b\u1c9c\u0003/\u0017\u0000\u1c9c\u1c9d\u0003/\u0017\u0000"+ + "\u1c9d\u1c9e\u0003\u001f\u000f\u0000\u1c9e\u0522\u0001\u0000\u0000\u0000"+ + "\u1c9f\u1ca0\u00031\u0018\u0000\u1ca0\u1ca1\u0003\u0007\u0003\u0000\u1ca1"+ + "\u1ca2\u0003\u001d\u000e\u0000\u1ca2\u1ca3\u0003\u0017\u000b\u0000\u1ca3"+ + "\u1ca4\u0003\r\u0006\u0000\u1ca4\u0524\u0001\u0000\u0000\u0000\u1ca5\u1ca6"+ + "\u00031\u0018\u0000\u1ca6\u1ca7\u0003\u0007\u0003\u0000\u1ca7\u1ca8\u0003"+ + "\u001d\u000e\u0000\u1ca8\u1ca9\u0003\u0017\u000b\u0000\u1ca9\u1caa\u0003"+ + "\r\u0006\u0000\u1caa\u1cab\u0003\u0007\u0003\u0000\u1cab\u1cac\u0003-"+ + "\u0016\u0000\u1cac\u1cad\u0003\u000f\u0007\u0000\u1cad\u0526\u0001\u0000"+ + "\u0000\u0000\u1cae\u1caf\u00031\u0018\u0000\u1caf\u1cb0\u0003\u0007\u0003"+ + "\u0000\u1cb0\u1cb1\u0003\u001d\u000e\u0000\u1cb1\u1cb2\u0003\u0017\u000b"+ + "\u0000\u1cb2\u1cb3\u0003\r\u0006\u0000\u1cb3\u1cb4\u0003\u0007\u0003\u0000"+ + "\u1cb4\u1cb5\u0003-\u0016\u0000\u1cb5\u1cb6\u0003#\u0011\u0000\u1cb6\u1cb7"+ + "\u0003)\u0014\u0000\u1cb7\u0528\u0001\u0000\u0000\u0000\u1cb8\u1cb9\u0003"+ + "1\u0018\u0000\u1cb9\u1cba\u0003\u0007\u0003\u0000\u1cba\u1cbb\u0003\u001d"+ + "\u000e\u0000\u1cbb\u1cbc\u0003/\u0017\u0000\u1cbc\u1cbd\u0003\u000f\u0007"+ + "\u0000\u1cbd\u052a\u0001\u0000\u0000\u0000\u1cbe\u1cbf\u00031\u0018\u0000"+ + "\u1cbf\u1cc0\u0003\u0007\u0003\u0000\u1cc0\u1cc1\u0003\u001d\u000e\u0000"+ + "\u1cc1\u1cc2\u0003/\u0017\u0000\u1cc2\u1cc3\u0003\u000f\u0007\u0000\u1cc3"+ + "\u1cc4\u0003+\u0015\u0000\u1cc4\u052c\u0001\u0000\u0000\u0000\u1cc5\u1cc6"+ + "\u00031\u0018\u0000\u1cc6\u1cc7\u0003\u0007\u0003\u0000\u1cc7\u1cc8\u0003"+ + ")\u0014\u0000\u1cc8\u1cc9\u0005_\u0000\u0000\u1cc9\u1cca\u0003%\u0012"+ + "\u0000\u1cca\u1ccb\u0003#\u0011\u0000\u1ccb\u1ccc\u0003%\u0012\u0000\u1ccc"+ + "\u052e\u0001\u0000\u0000\u0000\u1ccd\u1cce\u00031\u0018\u0000\u1cce\u1ccf"+ + "\u0003\u0007\u0003\u0000\u1ccf\u1cd0\u0003)\u0014\u0000\u1cd0\u1cd1\u0005"+ + "_\u0000\u0000\u1cd1\u1cd2\u0003+\u0015\u0000\u1cd2\u1cd3\u0003\u0007\u0003"+ + "\u0000\u1cd3\u1cd4\u0003\u001f\u000f\u0000\u1cd4\u1cd5\u0003%\u0012\u0000"+ + "\u1cd5\u0530\u0001\u0000\u0000\u0000\u1cd6\u1cd7\u00031\u0018\u0000\u1cd7"+ + "\u1cd8\u0003\u0007\u0003\u0000\u1cd8\u1cd9\u0003)\u0014\u0000\u1cd9\u1cda"+ + "\u0003\u000b\u0005\u0000\u1cda\u1cdb\u0003\u0015\n\u0000\u1cdb\u1cdc\u0003"+ + "\u0007\u0003\u0000\u1cdc\u1cdd\u0003)\u0014\u0000\u1cdd\u0532\u0001\u0000"+ + "\u0000\u0000\u1cde\u1cdf\u00031\u0018\u0000\u1cdf\u1ce0\u0003\u0007\u0003"+ + "\u0000\u1ce0\u1ce1\u0003)\u0014\u0000\u1ce1\u1ce2\u0003\u0017\u000b\u0000"+ + "\u1ce2\u1ce3\u0003\u0007\u0003\u0000\u1ce3\u1ce4\u0003\t\u0004\u0000\u1ce4"+ + "\u1ce5\u0003\u001d\u000e\u0000\u1ce5\u1ce6\u0003\u000f\u0007\u0000\u1ce6"+ + "\u0534\u0001\u0000\u0000\u0000\u1ce7\u1ce8\u00031\u0018\u0000\u1ce8\u1ce9"+ + "\u0003\u0007\u0003\u0000\u1ce9\u1cea\u0003)\u0014\u0000\u1cea\u1ceb\u0003"+ + "\u0017\u000b\u0000\u1ceb\u1cec\u0003\u0007\u0003\u0000\u1cec\u1ced\u0003"+ + "\r\u0006\u0000\u1ced\u1cee\u0003\u0017\u000b\u0000\u1cee\u1cef\u0003\u000b"+ + "\u0005\u0000\u1cef\u0536\u0001\u0000\u0000\u0000\u1cf0\u1cf1\u00031\u0018"+ + "\u0000\u1cf1\u1cf2\u0003\u0007\u0003\u0000\u1cf2\u1cf3\u0003)\u0014\u0000"+ + "\u1cf3\u1cf4\u00037\u001b\u0000\u1cf4\u1cf5\u0003\u0017\u000b\u0000\u1cf5"+ + "\u1cf6\u0003!\u0010\u0000\u1cf6\u1cf7\u0003\u0013\t\u0000\u1cf7\u0538"+ + "\u0001\u0000\u0000\u0000\u1cf8\u1cf9\u00031\u0018\u0000\u1cf9\u1cfa\u0003"+ + "\u000f\u0007\u0000\u1cfa\u1cfb\u0003)\u0014\u0000\u1cfb\u1cfc\u0003\t"+ + "\u0004\u0000\u1cfc\u1cfd\u0003#\u0011\u0000\u1cfd\u1cfe\u0003+\u0015\u0000"+ + "\u1cfe\u1cff\u0003\u000f\u0007\u0000\u1cff\u053a\u0001\u0000\u0000\u0000"+ + "\u1d00\u1d01\u00031\u0018\u0000\u1d01\u1d02\u0003\u0017\u000b\u0000\u1d02"+ + "\u1d03\u0003\u000f\u0007\u0000\u1d03\u1d04\u00033\u0019\u0000\u1d04\u053c"+ + "\u0001\u0000\u0000\u0000\u1d05\u1d06\u00031\u0018\u0000\u1d06\u1d07\u0003"+ + "#\u0011\u0000\u1d07\u1d08\u0003\u001d\u000e\u0000\u1d08\u1d09\u0003\u0007"+ + "\u0003\u0000\u1d09\u1d0a\u0003-\u0016\u0000\u1d0a\u1d0b\u0003\u0017\u000b"+ + "\u0000\u1d0b\u1d0c\u0003\u001d\u000e\u0000\u1d0c\u1d0d\u0003\u000f\u0007"+ + "\u0000\u1d0d\u053e\u0001\u0000\u0000\u0000\u1d0e\u1d0f\u00033\u0019\u0000"+ + "\u1d0f\u1d10\u0003\u0015\n\u0000\u1d10\u1d11\u0003\u000f\u0007\u0000\u1d11"+ + "\u1d12\u0003!\u0010\u0000\u1d12\u0540\u0001\u0000\u0000\u0000\u1d13\u1d14"+ + "\u00033\u0019\u0000\u1d14\u1d15\u0003\u0015\n\u0000\u1d15\u1d16\u0003"+ + "\u000f\u0007\u0000\u1d16\u1d17\u0003!\u0010\u0000\u1d17\u1d18\u0003\u000f"+ + "\u0007\u0000\u1d18\u1d19\u00031\u0018\u0000\u1d19\u1d1a\u0003\u000f\u0007"+ + "\u0000\u1d1a\u1d1b\u0003)\u0014\u0000\u1d1b\u0542\u0001\u0000\u0000\u0000"+ + "\u1d1c\u1d1d\u00033\u0019\u0000\u1d1d\u1d1e\u0003\u0015\n\u0000\u1d1e"+ + "\u1d1f\u0003\u000f\u0007\u0000\u1d1f\u1d20\u0003)\u0014\u0000\u1d20\u1d21"+ + "\u0003\u000f\u0007\u0000\u1d21\u0544\u0001\u0000\u0000\u0000\u1d22\u1d23"+ + "\u00033\u0019\u0000\u1d23\u1d24\u0003\u0017\u000b\u0000\u1d24\u1d25\u0003"+ + "\r\u0006\u0000\u1d25\u1d26\u0003-\u0016\u0000\u1d26\u1d27\u0003\u0015"+ + "\n\u0000\u1d27\u1d28\u0005_\u0000\u0000\u1d28\u1d29\u0003\t\u0004\u0000"+ + "\u1d29\u1d2a\u0003/\u0017\u0000\u1d2a\u1d2b\u0003\u000b\u0005\u0000\u1d2b"+ + "\u1d2c\u0003\u001b\r\u0000\u1d2c\u1d2d\u0003\u000f\u0007\u0000\u1d2d\u1d2e"+ + "\u0003-\u0016\u0000\u1d2e\u0546\u0001\u0000\u0000\u0000\u1d2f\u1d30\u0003"+ + "3\u0019\u0000\u1d30\u1d31\u0003\u0017\u000b\u0000\u1d31\u1d32\u0003!\u0010"+ + "\u0000\u1d32\u1d33\u0003\r\u0006\u0000\u1d33\u1d34\u0003#\u0011\u0000"+ + "\u1d34\u1d35\u00033\u0019\u0000\u1d35\u0548\u0001\u0000\u0000\u0000\u1d36"+ + "\u1d37\u00033\u0019\u0000\u1d37\u1d38\u0003\u0017\u000b\u0000\u1d38\u1d39"+ + "\u0003-\u0016\u0000\u1d39\u1d3a\u0003\u0015\n\u0000\u1d3a\u054a\u0001"+ + "\u0000\u0000\u0000\u1d3b\u1d3c\u00033\u0019\u0000\u1d3c\u1d3d\u0003\u0017"+ + "\u000b\u0000\u1d3d\u1d3e\u0003-\u0016\u0000\u1d3e\u1d3f\u0003\u0015\n"+ + "\u0000\u1d3f\u1d40\u0003\u0017\u000b\u0000\u1d40\u1d41\u0003!\u0010\u0000"+ + "\u1d41\u054c\u0001\u0000\u0000\u0000\u1d42\u1d43\u00033\u0019\u0000\u1d43"+ + "\u1d44\u0003\u0017\u000b\u0000\u1d44\u1d45\u0003-\u0016\u0000\u1d45\u1d46"+ + "\u0003\u0015\n\u0000\u1d46\u1d47\u0003#\u0011\u0000\u1d47\u1d48\u0003"+ + "/\u0017\u0000\u1d48\u1d49\u0003-\u0016\u0000\u1d49\u054e\u0001\u0000\u0000"+ + "\u0000\u1d4a\u1d4b\u00033\u0019\u0000\u1d4b\u1d4c\u0003#\u0011\u0000\u1d4c"+ + "\u1d4d\u0003)\u0014\u0000\u1d4d\u1d4e\u0003\u001b\r\u0000\u1d4e\u0550"+ + "\u0001\u0000\u0000\u0000\u1d4f\u1d50\u00033\u0019\u0000\u1d50\u1d51\u0003"+ + ")\u0014\u0000\u1d51\u1d52\u0003\u0017\u000b\u0000\u1d52\u1d53\u0003-\u0016"+ + "\u0000\u1d53\u1d54\u0003\u000f\u0007\u0000\u1d54\u0552\u0001\u0000\u0000"+ + "\u0000\u1d55\u1d56\u00037\u001b\u0000\u1d56\u1d57\u0003\u0007\u0003\u0000"+ + "\u1d57\u1d58\u0003\u001f\u000f\u0000\u1d58\u1d59\u0003\u001d\u000e\u0000"+ + "\u1d59\u0554\u0001\u0000\u0000\u0000\u1d5a\u1d5b\u00037\u001b\u0000\u1d5b"+ + "\u1d5c\u0003\u000f\u0007\u0000\u1d5c\u1d5d\u0003\u0007\u0003\u0000\u1d5d"+ + "\u1d5e\u0003)\u0014\u0000\u1d5e\u0556\u0001\u0000\u0000\u0000\u1d5f\u1d60"+ + "\u00037\u001b\u0000\u1d60\u1d61\u0003\u000f\u0007\u0000\u1d61\u1d62\u0003"+ + "+\u0015\u0000\u1d62\u0558\u0001\u0000\u0000\u0000\u1d63\u1d64\u00039\u001c"+ + "\u0000\u1d64\u1d65\u0003#\u0011\u0000\u1d65\u1d66\u0003!\u0010\u0000\u1d66"+ + "\u1d67\u0003\u000f\u0007\u0000\u1d67\u055a\u0001\u0000\u0000\u0000\u1d68"+ + "\u1d69\u0003+\u0015\u0000\u1d69\u1d6a\u0003/\u0017\u0000\u1d6a\u1d6b\u0003"+ + "%\u0012\u0000\u1d6b\u1d6c\u0003\u000f\u0007\u0000\u1d6c\u1d6d\u0003)\u0014"+ + "\u0000\u1d6d\u1d6e\u0003/\u0017\u0000\u1d6e\u1d6f\u0003+\u0015\u0000\u1d6f"+ + "\u1d70\u0003\u000f\u0007\u0000\u1d70\u1d71\u0003)\u0014\u0000\u1d71\u055c"+ + "\u0001\u0000\u0000\u0000\u1d72\u1d73\u0003!\u0010\u0000\u1d73\u1d74\u0003"+ + "#\u0011\u0000\u1d74\u1d75\u0003+\u0015\u0000\u1d75\u1d76\u0003/\u0017"+ + "\u0000\u1d76\u1d77\u0003%\u0012\u0000\u1d77\u1d78\u0003\u000f\u0007\u0000"+ + "\u1d78\u1d79\u0003)\u0014\u0000\u1d79\u1d7a\u0003/\u0017\u0000\u1d7a\u1d7b"+ + "\u0003+\u0015\u0000\u1d7b\u1d7c\u0003\u000f\u0007\u0000\u1d7c\u1d7d\u0003"+ + ")\u0014\u0000\u1d7d\u055e\u0001\u0000\u0000\u0000\u1d7e\u1d7f\u0003\u000b"+ + "\u0005\u0000\u1d7f\u1d80\u0003)\u0014\u0000\u1d80\u1d81\u0003\u000f\u0007"+ + "\u0000\u1d81\u1d82\u0003\u0007\u0003\u0000\u1d82\u1d83\u0003-\u0016\u0000"+ + "\u1d83\u1d84\u0003\u000f\u0007\u0000\u1d84\u1d85\u0003)\u0014\u0000\u1d85"+ + "\u1d86\u0003#\u0011\u0000\u1d86\u1d87\u0003\u001d\u000e\u0000\u1d87\u1d88"+ + "\u0003\u000f\u0007\u0000\u1d88\u0560\u0001\u0000\u0000\u0000\u1d89\u1d8a"+ + "\u0003!\u0010\u0000\u1d8a\u1d8b\u0003#\u0011\u0000\u1d8b\u1d8c\u0003\u000b"+ + "\u0005\u0000\u1d8c\u1d8d\u0003)\u0014\u0000\u1d8d\u1d8e\u0003\u000f\u0007"+ + "\u0000\u1d8e\u1d8f\u0003\u0007\u0003\u0000\u1d8f\u1d90\u0003-\u0016\u0000"+ + "\u1d90\u1d91\u0003\u000f\u0007\u0000\u1d91\u1d92\u0003)\u0014\u0000\u1d92"+ + "\u1d93\u0003#\u0011\u0000\u1d93\u1d94\u0003\u001d\u000e\u0000\u1d94\u1d95"+ + "\u0003\u000f\u0007\u0000\u1d95\u0562\u0001\u0000\u0000\u0000\u1d96\u1d97"+ + "\u0003\u0017\u000b\u0000\u1d97\u1d98\u0003!\u0010\u0000\u1d98\u1d99\u0003"+ + "\u0015\n\u0000\u1d99\u1d9a\u0003\u000f\u0007\u0000\u1d9a\u1d9b\u0003)"+ + "\u0014\u0000\u1d9b\u1d9c\u0003\u0017\u000b\u0000\u1d9c\u1d9d\u0003-\u0016"+ + "\u0000\u1d9d\u0564\u0001\u0000\u0000\u0000\u1d9e\u1d9f\u0003!\u0010\u0000"+ + "\u1d9f\u1da0\u0003#\u0011\u0000\u1da0\u1da1\u0003\u0017\u000b\u0000\u1da1"+ + "\u1da2\u0003!\u0010\u0000\u1da2\u1da3\u0003\u0015\n\u0000\u1da3\u1da4"+ + "\u0003\u000f\u0007\u0000\u1da4\u1da5\u0003)\u0014\u0000\u1da5\u1da6\u0003"+ + "\u0017\u000b\u0000\u1da6\u1da7\u0003-\u0016\u0000\u1da7\u0566\u0001\u0000"+ + "\u0000\u0000\u1da8\u1da9\u0003\u001d\u000e\u0000\u1da9\u1daa\u0003#\u0011"+ + "\u0000\u1daa\u1dab\u0003\u0013\t\u0000\u1dab\u1dac\u0003\u0017\u000b\u0000"+ + "\u1dac\u1dad\u0003!\u0010\u0000\u1dad\u0568\u0001\u0000\u0000\u0000\u1dae"+ + "\u1daf\u0003!\u0010\u0000\u1daf\u1db0\u0003#\u0011\u0000\u1db0\u1db1\u0003"+ + "\u001d\u000e\u0000\u1db1\u1db2\u0003#\u0011\u0000\u1db2\u1db3\u0003\u0013"+ + "\t\u0000\u1db3\u1db4\u0003\u0017\u000b\u0000\u1db4\u1db5\u0003!\u0010"+ + "\u0000\u1db5\u056a\u0001\u0000\u0000\u0000\u1db6\u1db7\u0003)\u0014\u0000"+ + "\u1db7\u1db8\u0003\u000f\u0007\u0000\u1db8\u1db9\u0003%\u0012\u0000\u1db9"+ + "\u1dba\u0003\u001d\u000e\u0000\u1dba\u1dbb\u0003\u0017\u000b\u0000\u1dbb"+ + "\u1dbc\u0003\u000b\u0005\u0000\u1dbc\u1dbd\u0003\u0007\u0003\u0000\u1dbd"+ + "\u1dbe\u0003-\u0016\u0000\u1dbe\u1dbf\u0003\u0017\u000b\u0000\u1dbf\u1dc0"+ + "\u0003#\u0011\u0000\u1dc0\u1dc1\u0003!\u0010\u0000\u1dc1\u056c\u0001\u0000"+ + "\u0000\u0000\u1dc2\u1dc3\u0003!\u0010\u0000\u1dc3\u1dc4\u0003#\u0011\u0000"+ + "\u1dc4\u1dc5\u0003)\u0014\u0000\u1dc5\u1dc6\u0003\u000f\u0007\u0000\u1dc6"+ + "\u1dc7\u0003%\u0012\u0000\u1dc7\u1dc8\u0003\u001d\u000e\u0000\u1dc8\u1dc9"+ + "\u0003\u0017\u000b\u0000\u1dc9\u1dca\u0003\u000b\u0005\u0000\u1dca\u1dcb"+ + "\u0003\u0007\u0003\u0000\u1dcb\u1dcc\u0003-\u0016\u0000\u1dcc\u1dcd\u0003"+ + "\u0017\u000b\u0000\u1dcd\u1dce\u0003#\u0011\u0000\u1dce\u1dcf\u0003!\u0010"+ + "\u0000\u1dcf\u056e\u0001\u0000\u0000\u0000\u1dd0\u1dd1\u0003\t\u0004\u0000"+ + "\u1dd1\u1dd2\u00037\u001b\u0000\u1dd2\u1dd3\u0003%\u0012\u0000\u1dd3\u1dd4"+ + "\u0003\u0007\u0003\u0000\u1dd4\u1dd5\u0003+\u0015\u0000\u1dd5\u1dd6\u0003"+ + "+\u0015\u0000\u1dd6\u1dd7\u0003)\u0014\u0000\u1dd7\u1dd8\u0003\u001d\u000e"+ + "\u0000\u1dd8\u1dd9\u0003+\u0015\u0000\u1dd9\u0570\u0001\u0000\u0000\u0000"+ + "\u1dda\u1ddb\u0003!\u0010\u0000\u1ddb\u1ddc\u0003#\u0011\u0000\u1ddc\u1ddd"+ + "\u0003\t\u0004\u0000\u1ddd\u1dde\u00037\u001b\u0000\u1dde\u1ddf\u0003"+ + "%\u0012\u0000\u1ddf\u1de0\u0003\u0007\u0003\u0000\u1de0\u1de1\u0003+\u0015"+ + "\u0000\u1de1\u1de2\u0003+\u0015\u0000\u1de2\u1de3\u0003)\u0014\u0000\u1de3"+ + "\u1de4\u0003\u001d\u000e\u0000\u1de4\u1de5\u0003+\u0015\u0000\u1de5\u0572"+ + "\u0001\u0000\u0000\u0000\u1de6\u1de7\u0003+\u0015\u0000\u1de7\u1de8\u0003"+ + "\u0011\b\u0000\u1de8\u1de9\u0003/\u0017\u0000\u1de9\u1dea\u0003!\u0010"+ + "\u0000\u1dea\u1deb\u0003\u000b\u0005\u0000\u1deb\u0574\u0001\u0000\u0000"+ + "\u0000\u1dec\u1ded\u0003+\u0015\u0000\u1ded\u1dee\u0003-\u0016\u0000\u1dee"+ + "\u1def\u00037\u001b\u0000\u1def\u1df0\u0003%\u0012\u0000\u1df0\u1df1\u0003"+ + "\u000f\u0007\u0000\u1df1\u0576\u0001\u0000\u0000\u0000\u1df2\u1df3\u0003"+ + "+\u0015\u0000\u1df3\u1df4\u0003+\u0015\u0000\u1df4\u1df5\u0003%\u0012"+ + "\u0000\u1df5\u1df6\u0003\u0007\u0003\u0000\u1df6\u1df7\u0003\u000b\u0005"+ + "\u0000\u1df7\u1df8\u0003\u000f\u0007\u0000\u1df8\u0578\u0001\u0000\u0000"+ + "\u0000\u1df9\u1dfa\u0003\u0011\b\u0000\u1dfa\u1dfb\u0003\u0017\u000b\u0000"+ + "\u1dfb\u1dfc\u0003!\u0010\u0000\u1dfc\u1dfd\u0003\u0007\u0003\u0000\u1dfd"+ + "\u1dfe\u0003\u001d\u000e\u0000\u1dfe\u1dff\u0003\u0011\b\u0000\u1dff\u1e00"+ + "\u0003/\u0017\u0000\u1e00\u1e01\u0003!\u0010\u0000\u1e01\u1e02\u0003\u000b"+ + "\u0005\u0000\u1e02\u057a\u0001\u0000\u0000\u0000\u1e03\u1e04\u0003\u0011"+ + "\b\u0000\u1e04\u1e05\u0003\u0017\u000b\u0000\u1e05\u1e06\u0003!\u0010"+ + "\u0000\u1e06\u1e07\u0003\u0007\u0003\u0000\u1e07\u1e08\u0003\u001d\u000e"+ + "\u0000\u1e08\u1e09\u0003\u0011\b\u0000\u1e09\u1e0a\u0003/\u0017\u0000"+ + "\u1e0a\u1e0b\u0003!\u0010\u0000\u1e0b\u1e0c\u0003\u000b\u0005\u0000\u1e0c"+ + "\u1e0d\u0005_\u0000\u0000\u1e0d\u1e0e\u0003\u000f\u0007\u0000\u1e0e\u1e0f"+ + "\u00035\u001a\u0000\u1e0f\u1e10\u0003-\u0016\u0000\u1e10\u1e11\u0003)"+ + "\u0014\u0000\u1e11\u1e12\u0003\u0007\u0003\u0000\u1e12\u057c\u0001\u0000"+ + "\u0000\u0000\u1e13\u1e14\u0003\u000b\u0005\u0000\u1e14\u1e15\u0003#\u0011"+ + "\u0000\u1e15\u1e16\u0003\u001f\u000f\u0000\u1e16\u1e17\u0003\t\u0004\u0000"+ + "\u1e17\u1e18\u0003\u0017\u000b\u0000\u1e18\u1e19\u0003!\u0010\u0000\u1e19"+ + "\u1e1a\u0003\u000f\u0007\u0000\u1e1a\u1e1b\u0003\u0011\b\u0000\u1e1b\u1e1c"+ + "\u0003/\u0017\u0000\u1e1c\u1e1d\u0003!\u0010\u0000\u1e1d\u1e1e\u0003\u000b"+ + "\u0005\u0000\u1e1e\u057e\u0001\u0000\u0000\u0000\u1e1f\u1e20\u0003+\u0015"+ + "\u0000\u1e20\u1e21\u0003\u000f\u0007\u0000\u1e21\u1e22\u0003)\u0014"; + private static final String _serializedATNSegment3 = + "\u0000\u1e22\u1e23\u0003\u0017\u000b\u0000\u1e23\u1e24\u0003\u0007\u0003"+ + "\u0000\u1e24\u1e25\u0003\u001d\u000e\u0000\u1e25\u1e26\u0003\u0011\b\u0000"+ + "\u1e26\u1e27\u0003/\u0017\u0000\u1e27\u1e28\u0003!\u0010\u0000\u1e28\u1e29"+ + "\u0003\u000b\u0005\u0000\u1e29\u0580\u0001\u0000\u0000\u0000\u1e2a\u1e2b"+ + "\u0003\r\u0006\u0000\u1e2b\u1e2c\u0003\u000f\u0007\u0000\u1e2c\u1e2d\u0003"+ + "+\u0015\u0000\u1e2d\u1e2e\u0003\u000f\u0007\u0000\u1e2e\u1e2f\u0003)\u0014"+ + "\u0000\u1e2f\u1e30\u0003\u0017\u000b\u0000\u1e30\u1e31\u0003\u0007\u0003"+ + "\u0000\u1e31\u1e32\u0003\u001d\u000e\u0000\u1e32\u1e33\u0003\u0011\b\u0000"+ + "\u1e33\u1e34\u0003/\u0017\u0000\u1e34\u1e35\u0003!\u0010\u0000\u1e35\u1e36"+ + "\u0003\u000b\u0005\u0000\u1e36\u0582\u0001\u0000\u0000\u0000\u1e37\u1e38"+ + "\u0003\u0017\u000b\u0000\u1e38\u1e39\u0003!\u0010\u0000\u1e39\u1e3a\u0003"+ + "\u0017\u000b\u0000\u1e3a\u1e3b\u0003-\u0016\u0000\u1e3b\u1e3c\u0003\u000b"+ + "\u0005\u0000\u1e3c\u1e3d\u0003#\u0011\u0000\u1e3d\u1e3e\u0003!\u0010\u0000"+ + "\u1e3e\u1e3f\u0003\r\u0006\u0000\u1e3f\u0584\u0001\u0000\u0000\u0000\u1e40"+ + "\u1e41\u0003\u001f\u000f\u0000\u1e41\u1e42\u0003+\u0015\u0000\u1e42\u1e43"+ + "\u0003\u0011\b\u0000\u1e43\u1e44\u0003/\u0017\u0000\u1e44\u1e45\u0003"+ + "!\u0010\u0000\u1e45\u1e46\u0003\u000b\u0005\u0000\u1e46\u0586\u0001\u0000"+ + "\u0000\u0000\u1e47\u1e48\u0003\u001f\u000f\u0000\u1e48\u1e49\u0003\u0017"+ + "\u000b\u0000\u1e49\u1e4a\u0003!\u0010\u0000\u1e4a\u1e4b\u00031\u0018\u0000"+ + "\u1e4b\u1e4c\u0003\u0011\b\u0000\u1e4c\u1e4d\u0003/\u0017\u0000\u1e4d"+ + "\u1e4e\u0003!\u0010\u0000\u1e4e\u1e4f\u0003\u000b\u0005\u0000\u1e4f\u0588"+ + "\u0001\u0000\u0000\u0000\u1e50\u1e51\u0003\u001f\u000f\u0000\u1e51\u1e52"+ + "\u0003+\u0015\u0000\u1e52\u1e53\u0003-\u0016\u0000\u1e53\u1e54\u00037"+ + "\u001b\u0000\u1e54\u1e55\u0003%\u0012\u0000\u1e55\u1e56\u0003\u000f\u0007"+ + "\u0000\u1e56\u058a\u0001\u0000\u0000\u0000\u1e57\u1e58\u0003\u001f\u000f"+ + "\u0000\u1e58\u1e59\u0003+\u0015\u0000\u1e59\u1e5a\u0003+\u0015\u0000\u1e5a"+ + "\u1e5b\u0003%\u0012\u0000\u1e5b\u1e5c\u0003\u0007\u0003\u0000\u1e5c\u1e5d"+ + "\u0003\u000b\u0005\u0000\u1e5d\u1e5e\u0003\u000f\u0007\u0000\u1e5e\u058c"+ + "\u0001\u0000\u0000\u0000\u1e5f\u1e60\u0003\u001f\u000f\u0000\u1e60\u1e61"+ + "\u0003\u0011\b\u0000\u1e61\u1e62\u0003\u0017\u000b\u0000\u1e62\u1e63\u0003"+ + "!\u0010\u0000\u1e63\u1e64\u0003\u0007\u0003\u0000\u1e64\u1e65\u0003\u001d"+ + "\u000e\u0000\u1e65\u1e66\u0003\u0011\b\u0000\u1e66\u1e67\u0003/\u0017"+ + "\u0000\u1e67\u1e68\u0003!\u0010\u0000\u1e68\u1e69\u0003\u000b\u0005\u0000"+ + "\u1e69\u058e\u0001\u0000\u0000\u0000\u1e6a\u1e6b\u0003\u001f\u000f\u0000"+ + "\u1e6b\u1e6c\u0003\u0011\b\u0000\u1e6c\u1e6d\u0003\u0017\u000b\u0000\u1e6d"+ + "\u1e6e\u0003!\u0010\u0000\u1e6e\u1e6f\u0003\u0007\u0003\u0000\u1e6f\u1e70"+ + "\u0003\u001d\u000e\u0000\u1e70\u1e71\u0003\u0011\b\u0000\u1e71\u1e72\u0003"+ + "/\u0017\u0000\u1e72\u1e73\u0003!\u0010\u0000\u1e73\u1e74\u0003\u000b\u0005"+ + "\u0000\u1e74\u1e75\u0005_\u0000\u0000\u1e75\u1e76\u0003\u000f\u0007\u0000"+ + "\u1e76\u1e77\u00035\u001a\u0000\u1e77\u1e78\u0003-\u0016\u0000\u1e78\u1e79"+ + "\u0003)\u0014\u0000\u1e79\u1e7a\u0003\u0007\u0003\u0000\u1e7a\u0590\u0001"+ + "\u0000\u0000\u0000\u1e7b\u1e7c\u0003\u001f\u000f\u0000\u1e7c\u1e7d\u0003"+ + "\u0017\u000b\u0000\u1e7d\u1e7e\u0003!\u0010\u0000\u1e7e\u1e7f\u0003\u0017"+ + "\u000b\u0000\u1e7f\u1e80\u0003-\u0016\u0000\u1e80\u1e81\u0003\u000b\u0005"+ + "\u0000\u1e81\u1e82\u0003#\u0011\u0000\u1e82\u1e83\u0003!\u0010\u0000\u1e83"+ + "\u1e84\u0003\r\u0006\u0000\u1e84\u0592\u0001\u0000\u0000\u0000\u1e85\u1e86"+ + "\u0003+\u0015\u0000\u1e86\u1e87\u0003#\u0011\u0000\u1e87\u1e88\u0003)"+ + "\u0014\u0000\u1e88\u1e89\u0003-\u0016\u0000\u1e89\u1e8a\u0003#\u0011\u0000"+ + "\u1e8a\u1e8b\u0003%\u0012\u0000\u1e8b\u0594\u0001\u0000\u0000\u0000\u1e8c"+ + "\u1e8d\u0003%\u0012\u0000\u1e8d\u1e8e\u0003\u0007\u0003\u0000\u1e8e\u1e8f"+ + "\u0003)\u0014\u0000\u1e8f\u1e90\u0003\u0007\u0003\u0000\u1e90\u1e91\u0003"+ + "\u001d\u000e\u0000\u1e91\u1e92\u0003\u001d\u000e\u0000\u1e92\u1e93\u0003"+ + "\u000f\u0007\u0000\u1e93\u1e94\u0003\u001d\u000e\u0000\u1e94\u0596\u0001"+ + "\u0000\u0000\u0000\u1e95\u1e96\u0003\u0015\n\u0000\u1e96\u1e97\u00037"+ + "\u001b\u0000\u1e97\u1e98\u0003%\u0012\u0000\u1e98\u1e99\u0003#\u0011\u0000"+ + "\u1e99\u1e9a\u0003-\u0016\u0000\u1e9a\u1e9b\u0003\u0015\n\u0000\u1e9b"+ + "\u1e9c\u0003\u000f\u0007\u0000\u1e9c\u1e9d\u0003-\u0016\u0000\u1e9d\u1e9e"+ + "\u0003\u0017\u000b\u0000\u1e9e\u1e9f\u0003\u000b\u0005\u0000\u1e9f\u1ea0"+ + "\u0003\u0007\u0003\u0000\u1ea0\u1ea1\u0003\u001d\u000e\u0000\u1ea1\u0598"+ + "\u0001\u0000\u0000\u0000\u1ea2\u1ea3\u0003+\u0015\u0000\u1ea3\u1ea4\u0003"+ + "\u0007\u0003\u0000\u1ea4\u1ea5\u0003\u0011\b\u0000\u1ea5\u1ea6\u0003\u000f"+ + "\u0007\u0000\u1ea6\u059a\u0001\u0000\u0000\u0000\u1ea7\u1ea8\u0003)\u0014"+ + "\u0000\u1ea8\u1ea9\u0003\u000f\u0007\u0000\u1ea9\u1eaa\u0003+\u0015\u0000"+ + "\u1eaa\u1eab\u0003-\u0016\u0000\u1eab\u1eac\u0003)\u0014\u0000\u1eac\u1ead"+ + "\u0003\u0017\u000b\u0000\u1ead\u1eae\u0003\u000b\u0005\u0000\u1eae\u1eaf"+ + "\u0003-\u0016\u0000\u1eaf\u1eb0\u0003\u000f\u0007\u0000\u1eb0\u1eb1\u0003"+ + "\r\u0006\u0000\u1eb1\u059c\u0001\u0000\u0000\u0000\u1eb2\u1eb3\u0003/"+ + "\u0017\u0000\u1eb3\u1eb4\u0003!\u0010\u0000\u1eb4\u1eb5\u0003+\u0015\u0000"+ + "\u1eb5\u1eb6\u0003\u0007\u0003\u0000\u1eb6\u1eb7\u0003\u0011\b\u0000\u1eb7"+ + "\u1eb8\u0003\u000f\u0007\u0000\u1eb8\u059e\u0001\u0000\u0000\u0000\u1eb9"+ + "\u1eba\u0003\t\u0004\u0000\u1eba\u1ebb\u0003\u0007\u0003\u0000\u1ebb\u1ebc"+ + "\u0003+\u0015\u0000\u1ebc\u1ebd\u0003\u000f\u0007\u0000\u1ebd\u1ebe\u0003"+ + "-\u0016\u0000\u1ebe\u1ebf\u00037\u001b\u0000\u1ebf\u1ec0\u0003%\u0012"+ + "\u0000\u1ec0\u1ec1\u0003\u000f\u0007\u0000\u1ec1\u05a0\u0001\u0000\u0000"+ + "\u0000\u1ec2\u1ec3\u0003\u0017\u000b\u0000\u1ec3\u1ec4\u0003\u0011\b\u0000"+ + "\u1ec4\u05a2\u0001\u0000\u0000\u0000\u1ec5\u1ec6\u0003\u001d\u000e\u0000"+ + "\u1ec6\u1ec7\u0003#\u0011\u0000\u1ec7\u1ec8\u0003\u000b\u0005\u0000\u1ec8"+ + "\u1ec9\u0003\u0007\u0003\u0000\u1ec9\u1eca\u0003\u001d\u000e\u0000\u1eca"+ + "\u1ecb\u0003\u000f\u0007\u0000\u1ecb\u05a4\u0001\u0000\u0000\u0000\u1ecc"+ + "\u1ecd\u0003\u001d\u000e\u0000\u1ecd\u1ece\u0003\u000b\u0005\u0000\u1ece"+ + "\u1ecf\u0005_\u0000\u0000\u1ecf\u1ed0\u0003\u000b\u0005\u0000\u1ed0\u1ed1"+ + "\u0003#\u0011\u0000\u1ed1\u1ed2\u0003\u001d\u000e\u0000\u1ed2\u1ed3\u0003"+ + "\u001d\u000e\u0000\u1ed3\u1ed4\u0003\u0007\u0003\u0000\u1ed4\u1ed5\u0003"+ + "-\u0016\u0000\u1ed5\u1ed6\u0003\u000f\u0007\u0000\u1ed6\u05a6\u0001\u0000"+ + "\u0000\u0000\u1ed7\u1ed8\u0003\u001d\u000e\u0000\u1ed8\u1ed9\u0003\u000b"+ + "\u0005\u0000\u1ed9\u1eda\u0005_\u0000\u0000\u1eda\u1edb\u0003\u000b\u0005"+ + "\u0000\u1edb\u1edc\u0003-\u0016\u0000\u1edc\u1edd\u00037\u001b\u0000\u1edd"+ + "\u1ede\u0003%\u0012\u0000\u1ede\u1edf\u0003\u000f\u0007\u0000\u1edf\u05a8"+ + "\u0001\u0000\u0000\u0000\u1ee0\u1ee1\u0003%\u0012\u0000\u1ee1\u1ee2\u0003"+ + ")\u0014\u0000\u1ee2\u1ee3\u0003#\u0011\u0000\u1ee3\u1ee4\u00031\u0018"+ + "\u0000\u1ee4\u1ee5\u0003\u0017\u000b\u0000\u1ee5\u1ee6\u0003\r\u0006\u0000"+ + "\u1ee6\u1ee7\u0003\u000f\u0007\u0000\u1ee7\u1ee8\u0003)\u0014\u0000\u1ee8"+ + "\u05aa\u0001\u0000\u0000\u0000\u1ee9\u1eea\u00031\u0018\u0000\u1eea\u1eeb"+ + "\u0003\u000f\u0007\u0000\u1eeb\u1eec\u0003)\u0014\u0000\u1eec\u1eed\u0003"+ + "+\u0015\u0000\u1eed\u1eee\u0003\u0017\u000b\u0000\u1eee\u1eef\u0003#\u0011"+ + "\u0000\u1eef\u1ef0\u0003!\u0010\u0000\u1ef0\u05ac\u0001\u0000\u0000\u0000"+ + "\u1ef1\u1ef2\u0003\u0007\u0003\u0000\u1ef2\u1ef3\u0003\u001d\u000e\u0000"+ + "\u1ef3\u1ef4\u0003\u001d\u000e\u0000\u1ef4\u1ef5\u0003#\u0011\u0000\u1ef5"+ + "\u1ef6\u00033\u0019\u0000\u1ef6\u1ef7\u0005_\u0000\u0000\u1ef7\u1ef8\u0003"+ + "\u000b\u0005\u0000\u1ef8\u1ef9\u0003#\u0011\u0000\u1ef9\u1efa\u0003!\u0010"+ + "\u0000\u1efa\u1efb\u0003!\u0010\u0000\u1efb\u1efc\u0003\u000f\u0007\u0000"+ + "\u1efc\u1efd\u0003\u000b\u0005\u0000\u1efd\u1efe\u0003-\u0016\u0000\u1efe"+ + "\u1eff\u0003\u0017\u000b\u0000\u1eff\u1f00\u0003#\u0011\u0000\u1f00\u1f01"+ + "\u0003!\u0010\u0000\u1f01\u1f02\u0003+\u0015\u0000\u1f02\u05ae\u0001\u0000"+ + "\u0000\u0000\u1f03\u1f04\u0003\u0017\u000b\u0000\u1f04\u1f05\u0003+\u0015"+ + "\u0000\u1f05\u1f06\u0005_\u0000\u0000\u1f06\u1f07\u0003-\u0016\u0000\u1f07"+ + "\u1f08\u0003\u000f\u0007\u0000\u1f08\u1f09\u0003\u001f\u000f\u0000\u1f09"+ + "\u1f0a\u0003%\u0012\u0000\u1f0a\u1f0b\u0003\u001d\u000e\u0000\u1f0b\u1f0c"+ + "\u0003\u0007\u0003\u0000\u1f0c\u1f0d\u0003-\u0016\u0000\u1f0d\u1f0e\u0003"+ + "\u000f\u0007\u0000\u1f0e\u05b0\u0001\u0000\u0000\u0000\u1f0f\u1f10\u0003"+ + "\u000f\u0007\u0000\u1f10\u1f11\u00031\u0018\u0000\u1f11\u1f12\u0003\u000f"+ + "\u0007\u0000\u1f12\u1f13\u0003!\u0010\u0000\u1f13\u1f14\u0003-\u0016\u0000"+ + "\u1f14\u05b2\u0001\u0000\u0000\u0000\u1f15\u1f16\u00033\u0019\u0000\u1f16"+ + "\u1f17\u0003)\u0014\u0000\u1f17\u1f18\u0003\u0007\u0003\u0000\u1f18\u1f19"+ + "\u0003%\u0012\u0000\u1f19\u1f1a\u0003%\u0012\u0000\u1f1a\u1f1b\u0003\u000f"+ + "\u0007\u0000\u1f1b\u1f1c\u0003)\u0014\u0000\u1f1c\u05b4\u0001\u0000\u0000"+ + "\u0000\u1f1d\u1f1e\u0003+\u0015\u0000\u1f1e\u1f1f\u0003\u000f\u0007\u0000"+ + "\u1f1f\u1f20\u0003)\u0014\u0000\u1f20\u1f21\u00031\u0018\u0000\u1f21\u1f22"+ + "\u0003\u000f\u0007\u0000\u1f22\u1f23\u0003)\u0014\u0000\u1f23\u05b6\u0001"+ + "\u0000\u0000\u0000\u1f24\u1f25\u0003\t\u0004\u0000\u1f25\u1f26\u0003-"+ + "\u0016\u0000\u1f26\u1f27\u0003)\u0014\u0000\u1f27\u1f28\u0003\u000f\u0007"+ + "\u0000\u1f28\u1f29\u0003\u000f\u0007\u0000\u1f29\u05b8\u0001\u0000\u0000"+ + "\u0000\u1f2a\u1f2b\u0003\u0015\n\u0000\u1f2b\u1f2c\u0003\u0007\u0003\u0000"+ + "\u1f2c\u1f2d\u0003+\u0015\u0000\u1f2d\u1f2e\u0003\u0015\n\u0000\u1f2e"+ + "\u05ba\u0001\u0000\u0000\u0000\u1f2f\u1f30\u0003\u0013\t\u0000\u1f30\u1f31"+ + "\u0003\u0017\u000b\u0000\u1f31\u1f32\u0003+\u0015\u0000\u1f32\u1f33\u0003"+ + "-\u0016\u0000\u1f33\u05bc\u0001\u0000\u0000\u0000\u1f34\u1f35\u0003+\u0015"+ + "\u0000\u1f35\u1f36\u0003%\u0012\u0000\u1f36\u1f37\u0003\u0013\t\u0000"+ + "\u1f37\u1f38\u0003\u0017\u000b\u0000\u1f38\u1f39\u0003+\u0015\u0000\u1f39"+ + "\u1f3a\u0003-\u0016\u0000\u1f3a\u05be\u0001\u0000\u0000\u0000\u1f3b\u1f3c"+ + "\u0003\u0013\t\u0000\u1f3c\u1f3d\u0003\u0017\u000b\u0000\u1f3d\u1f3e\u0003"+ + "!\u0010\u0000\u1f3e\u05c0\u0001\u0000\u0000\u0000\u1f3f\u1f40\u0003\t"+ + "\u0004\u0000\u1f40\u1f41\u0003)\u0014\u0000\u1f41\u1f42\u0003\u0017\u000b"+ + "\u0000\u1f42\u1f43\u0003!\u0010\u0000\u1f43\u05c2\u0001\u0000\u0000\u0000"+ + "\u1f44\u1f45\u0003\u000b\u0005\u0000\u1f45\u1f46\u0003#\u0011\u0000\u1f46"+ + "\u1f47\u0003!\u0010\u0000\u1f47\u1f48\u0003\u000b\u0005\u0000\u1f48\u1f49"+ + "\u0003/\u0017\u0000\u1f49\u1f4a\u0003)\u0014\u0000\u1f4a\u1f4b\u0003)"+ + "\u0014\u0000\u1f4b\u1f4c\u0003\u000f\u0007\u0000\u1f4c\u1f4d\u0003!\u0010"+ + "\u0000\u1f4d\u1f4e\u0003-\u0016\u0000\u1f4e\u1f4f\u0003\u001d\u000e\u0000"+ + "\u1f4f\u1f50\u00037\u001b\u0000\u1f50\u05c4\u0001\u0000\u0000\u0000\u1f51"+ + "\u1f52\u0003\u0017\u000b\u0000\u1f52\u1f53\u0003!\u0010\u0000\u1f53\u1f54"+ + "\u0003\u001d\u000e\u0000\u1f54\u1f55\u0003\u0017\u000b\u0000\u1f55\u1f56"+ + "\u0003!\u0010\u0000\u1f56\u1f57\u0003\u000f\u0007\u0000\u1f57\u05c6\u0001"+ + "\u0000\u0000\u0000\u1f58\u1f59\u0003\u001f\u000f\u0000\u1f59\u1f5a\u0003"+ + "\u0007\u0003\u0000\u1f5a\u1f5b\u0003-\u0016\u0000\u1f5b\u1f5c\u0003\u000f"+ + "\u0007\u0000\u1f5c\u1f5d\u0003)\u0014\u0000\u1f5d\u1f5e\u0003\u0017\u000b"+ + "\u0000\u1f5e\u1f5f\u0003\u0007\u0003\u0000\u1f5f\u1f60\u0003\u001d\u000e"+ + "\u0000\u1f60\u1f61\u0003\u0017\u000b\u0000\u1f61\u1f62\u00039\u001c\u0000"+ + "\u1f62\u1f63\u0003\u000f\u0007\u0000\u1f63\u1f64\u0003\r\u0006\u0000\u1f64"+ + "\u05c8\u0001\u0000\u0000\u0000\u1f65\u1f66\u0003\u001d\u000e\u0000\u1f66"+ + "\u1f67\u0003\u000f\u0007\u0000\u1f67\u1f68\u0003\u0011\b\u0000\u1f68\u1f69"+ + "\u0003-\u0016\u0000\u1f69\u1f6a\u0003\u0007\u0003\u0000\u1f6a\u1f6b\u0003"+ + ")\u0014\u0000\u1f6b\u1f6c\u0003\u0013\t\u0000\u1f6c\u05ca\u0001\u0000"+ + "\u0000\u0000\u1f6d\u1f6e\u0003)\u0014\u0000\u1f6e\u1f6f\u0003\u0017\u000b"+ + "\u0000\u1f6f\u1f70\u0003\u0013\t\u0000\u1f70\u1f71\u0003\u0015\n\u0000"+ + "\u1f71\u1f72\u0003-\u0016\u0000\u1f72\u1f73\u0003\u0007\u0003\u0000\u1f73"+ + "\u1f74\u0003)\u0014\u0000\u1f74\u1f75\u0003\u0013\t\u0000\u1f75\u05cc"+ + "\u0001\u0000\u0000\u0000\u1f76\u1f77\u0003\u000b\u0005\u0000\u1f77\u1f78"+ + "\u0003#\u0011\u0000\u1f78\u1f79\u0003\u001f\u000f\u0000\u1f79\u1f7a\u0003"+ + "\u001f\u000f\u0000\u1f7a\u1f7b\u0003/\u0017\u0000\u1f7b\u1f7c\u0003-\u0016"+ + "\u0000\u1f7c\u1f7d\u0003\u0007\u0003\u0000\u1f7d\u1f7e\u0003-\u0016\u0000"+ + "\u1f7e\u1f7f\u0003#\u0011\u0000\u1f7f\u1f80\u0003)\u0014\u0000\u1f80\u05ce"+ + "\u0001\u0000\u0000\u0000\u1f81\u1f82\u0003!\u0010\u0000\u1f82\u1f83\u0003"+ + "\u000f\u0007\u0000\u1f83\u1f84\u0003\u0013\t\u0000\u1f84\u1f85\u0003\u0007"+ + "\u0003\u0000\u1f85\u1f86\u0003-\u0016\u0000\u1f86\u1f87\u0003#\u0011\u0000"+ + "\u1f87\u1f88\u0003)\u0014\u0000\u1f88\u05d0\u0001\u0000\u0000\u0000\u1f89"+ + "\u1f8a\u0003\u0015\n\u0000\u1f8a\u1f8b\u0003\u0007\u0003\u0000\u1f8b\u1f8c"+ + "\u0003+\u0015\u0000\u1f8c\u1f8d\u0003\u0015\n\u0000\u1f8d\u1f8e\u0003"+ + "\u000f\u0007\u0000\u1f8e\u1f8f\u0003+\u0015\u0000\u1f8f\u05d2\u0001\u0000"+ + "\u0000\u0000\u1f90\u1f91\u0003\u001f\u000f\u0000\u1f91\u1f92\u0003\u000f"+ + "\u0007\u0000\u1f92\u1f93\u0003)\u0014\u0000\u1f93\u1f94\u0003\u0013\t"+ + "\u0000\u1f94\u1f95\u0003\u000f\u0007\u0000\u1f95\u1f96\u0003+\u0015\u0000"+ + "\u1f96\u05d4\u0001\u0000\u0000\u0000\u1f97\u1f98\u0003\u0011\b\u0000\u1f98"+ + "\u1f99\u0003\u0007\u0003\u0000\u1f99\u1f9a\u0003\u001f\u000f\u0000\u1f9a"+ + "\u1f9b\u0003\u0017\u000b\u0000\u1f9b\u1f9c\u0003\u001d\u000e\u0000\u1f9c"+ + "\u1f9d\u00037\u001b\u0000\u1f9d\u05d6\u0001\u0000\u0000\u0000\u1f9e\u1f9f"+ + "\u0003%\u0012\u0000\u1f9f\u1fa0\u0003#\u0011\u0000\u1fa0\u1fa1\u0003\u001d"+ + "\u000e\u0000\u1fa1\u1fa2\u0003\u0017\u000b\u0000\u1fa2\u1fa3\u0003\u000b"+ + "\u0005\u0000\u1fa3\u1fa4\u00037\u001b\u0000\u1fa4\u05d8\u0001\u0000\u0000"+ + "\u0000\u1fa5\u1fa6\u0003#\u0011\u0000\u1fa6\u1fa7\u00033\u0019\u0000\u1fa7"+ + "\u1fa8\u0003!\u0010\u0000\u1fa8\u1fa9\u0003\u000f\u0007\u0000\u1fa9\u1faa"+ + "\u0003\r\u0006\u0000\u1faa\u05da\u0001\u0000\u0000\u0000\u1fab\u1fac\u0003"+ + "\u0007\u0003\u0000\u1fac\u1fad\u0003\t\u0004\u0000\u1fad\u1fae\u0003+"+ + "\u0015\u0000\u1fae\u1faf\u0003-\u0016\u0000\u1faf\u1fb0\u0003\u0017\u000b"+ + "\u0000\u1fb0\u1fb1\u0003\u001f\u000f\u0000\u1fb1\u1fb2\u0003\u000f\u0007"+ + "\u0000\u1fb2\u05dc\u0001\u0000\u0000\u0000\u1fb3\u1fb4\u0003\t\u0004\u0000"+ + "\u1fb4\u1fb5\u0003\u0017\u000b\u0000\u1fb5\u1fb6\u0003\u0013\t\u0000\u1fb6"+ + "\u1fb7\u0003+\u0015\u0000\u1fb7\u1fb8\u0003\u000f\u0007\u0000\u1fb8\u1fb9"+ + "\u0003)\u0014\u0000\u1fb9\u1fba\u0003\u0017\u000b\u0000\u1fba\u1fbb\u0003"+ + "\u0007\u0003\u0000\u1fbb\u1fbc\u0003\u001d\u000e\u0000\u1fbc\u05de\u0001"+ + "\u0000\u0000\u0000\u1fbd\u1fbe\u0003\t\u0004\u0000\u1fbe\u1fbf\u0003\u0017"+ + "\u000b\u0000\u1fbf\u1fc0\u0003-\u0016\u0000\u1fc0\u1fc1\u0005 \u0000\u0000"+ + "\u1fc1\u1fc2\u00031\u0018\u0000\u1fc2\u1fc3\u0003\u0007\u0003\u0000\u1fc3"+ + "\u1fc4\u0003)\u0014\u0000\u1fc4\u1fc5\u00037\u001b\u0000\u1fc5\u1fc6\u0003"+ + "\u0017\u000b\u0000\u1fc6\u1fc7\u0003!\u0010\u0000\u1fc7\u1fc8\u0003\u0013"+ + "\t\u0000\u1fc8\u05e0\u0001\u0000\u0000\u0000\u1fc9\u1fca\u0003\t\u0004"+ + "\u0000\u1fca\u1fcb\u0003#\u0011\u0000\u1fcb\u1fcc\u0003#\u0011\u0000\u1fcc"+ + "\u1fcd\u0003\u001d\u000e\u0000\u1fcd\u05e2\u0001\u0000\u0000\u0000\u1fce"+ + "\u1fcf\u0003\t\u0004\u0000\u1fcf\u1fd0\u0003#\u0011\u0000\u1fd0\u1fd1"+ + "\u00035\u001a\u0000\u1fd1\u05e4\u0001\u0000\u0000\u0000\u1fd2\u1fd3\u0003"+ + "\t\u0004\u0000\u1fd3\u1fd4\u00037\u001b\u0000\u1fd4\u1fd5\u0003-\u0016"+ + "\u0000\u1fd5\u1fd6\u0003\u000f\u0007\u0000\u1fd6\u1fd7\u0003\u0007\u0003"+ + "\u0000\u1fd7\u05e6\u0001\u0000\u0000\u0000\u1fd8\u1fd9\u0003\u000b\u0005"+ + "\u0000\u1fd9\u1fda\u0003\u0015\n\u0000\u1fda\u1fdb\u0003\u0007\u0003\u0000"+ + "\u1fdb\u1fdc\u0003)\u0014\u0000\u1fdc\u1fdd\u0003\u0007\u0003\u0000\u1fdd"+ + "\u1fde\u0003\u000b\u0005\u0000\u1fde\u1fdf\u0003-\u0016\u0000\u1fdf\u1fe0"+ + "\u0003\u000f\u0007\u0000\u1fe0\u1fe1\u0003)\u0014\u0000\u1fe1\u1fe2\u0005"+ + " \u0000\u0000\u1fe2\u1fe3\u00031\u0018\u0000\u1fe3\u1fe4\u0003\u0007\u0003"+ + "\u0000\u1fe4\u1fe5\u0003)\u0014\u0000\u1fe5\u1fe6\u00037\u001b\u0000\u1fe6"+ + "\u1fe7\u0003\u0017\u000b\u0000\u1fe7\u1fe8\u0003!\u0010\u0000\u1fe8\u1fe9"+ + "\u0003\u0013\t\u0000\u1fe9\u05e8\u0001\u0000\u0000\u0000\u1fea\u1feb\u0003"+ + "\u000b\u0005\u0000\u1feb\u1fec\u0003\u0017\u000b\u0000\u1fec\u1fed\u0003"+ + "\r\u0006\u0000\u1fed\u1fee\u0003)\u0014\u0000\u1fee\u05ea\u0001\u0000"+ + "\u0000\u0000\u1fef\u1ff0\u0003\u000b\u0005\u0000\u1ff0\u1ff1\u0003\u0017"+ + "\u000b\u0000\u1ff1\u1ff2\u0003)\u0014\u0000\u1ff2\u1ff3\u0003\u000b\u0005"+ + "\u0000\u1ff3\u1ff4\u0003\u001d\u000e\u0000\u1ff4\u1ff5\u0003\u000f\u0007"+ + "\u0000\u1ff5\u05ec\u0001\u0000\u0000\u0000\u1ff6\u1ff7\u0003\u0011\b\u0000"+ + "\u1ff7\u1ff8\u0003\u001d\u000e\u0000\u1ff8\u1ff9\u0003#\u0011\u0000\u1ff9"+ + "\u1ffa\u0003\u0007\u0003\u0000\u1ffa\u1ffb\u0003-\u0016\u0000\u1ffb\u1ffc"+ + "\u00054\u0000\u0000\u1ffc\u05ee\u0001\u0000\u0000\u0000\u1ffd\u1ffe\u0003"+ + "\u0011\b\u0000\u1ffe\u1fff\u0003\u001d\u000e\u0000\u1fff\u2000\u0003#"+ + "\u0011\u0000\u2000\u2001\u0003\u0007\u0003\u0000\u2001\u2002\u0003-\u0016"+ + "\u0000\u2002\u2003\u00058\u0000\u0000\u2003\u05f0\u0001\u0000\u0000\u0000"+ + "\u2004\u2005\u0003\u0017\u000b\u0000\u2005\u2006\u0003!\u0010\u0000\u2006"+ + "\u2007\u0003\u000f\u0007\u0000\u2007\u2008\u0003-\u0016\u0000\u2008\u05f2"+ + "\u0001\u0000\u0000\u0000\u2009\u200a\u0003\u0017\u000b\u0000\u200a\u200b"+ + "\u0003!\u0010\u0000\u200b\u200c\u0003-\u0016\u0000\u200c\u200d\u00052"+ + "\u0000\u0000\u200d\u05f4\u0001\u0000\u0000\u0000\u200e\u200f\u0003\u0017"+ + "\u000b\u0000\u200f\u2010\u0003!\u0010\u0000\u2010\u2011\u0003-\u0016\u0000"+ + "\u2011\u2012\u00054\u0000\u0000\u2012\u05f6\u0001\u0000\u0000\u0000\u2013"+ + "\u2014\u0003\u0017\u000b\u0000\u2014\u2015\u0003!\u0010\u0000\u2015\u2016"+ + "\u0003-\u0016\u0000\u2016\u2017\u00058\u0000\u0000\u2017\u05f8\u0001\u0000"+ + "\u0000\u0000\u2018\u2019\u0003\u0019\f\u0000\u2019\u201a\u0003+\u0015"+ + "\u0000\u201a\u201b\u0003#\u0011\u0000\u201b\u201c\u0003!\u0010\u0000\u201c"+ + "\u05fa\u0001\u0000\u0000\u0000\u201d\u201e\u0003\u0019\f\u0000\u201e\u201f"+ + "\u0003+\u0015\u0000\u201f\u2020\u0003#\u0011\u0000\u2020\u2021\u0003!"+ + "\u0010\u0000\u2021\u2022\u0003\t\u0004\u0000\u2022\u05fc\u0001\u0000\u0000"+ + "\u0000\u2023\u2024\u0003\u001d\u000e\u0000\u2024\u2025\u0003\u0017\u000b"+ + "\u0000\u2025\u2026\u0003!\u0010\u0000\u2026\u2027\u0003\u000f\u0007\u0000"+ + "\u2027\u05fe\u0001\u0000\u0000\u0000\u2028\u2029\u0003\u001d\u000e\u0000"+ + "\u2029\u202a\u0003+\u0015\u0000\u202a\u202b\u0003\u000f\u0007\u0000\u202b"+ + "\u202c\u0003\u0013\t\u0000\u202c\u0600\u0001\u0000\u0000\u0000\u202d\u202e"+ + "\u0003\u001f\u000f\u0000\u202e\u202f\u0003\u0007\u0003\u0000\u202f\u2030"+ + "\u0003\u000b\u0005\u0000\u2030\u2031\u0003\u0007\u0003\u0000\u2031\u2032"+ + "\u0003\r\u0006\u0000\u2032\u2033\u0003\r\u0006\u0000\u2033\u2034\u0003"+ + ")\u0014\u0000\u2034\u0602\u0001\u0000\u0000\u0000\u2035\u2036\u0003\u001f"+ + "\u000f\u0000\u2036\u2037\u0003\u0007\u0003\u0000\u2037\u2038\u0003\u000b"+ + "\u0005\u0000\u2038\u2039\u0003\u0007\u0003\u0000\u2039\u203a\u0003\r\u0006"+ + "\u0000\u203a\u203b\u0003\r\u0006\u0000\u203b\u203c\u0003)\u0014\u0000"+ + "\u203c\u203d\u00058\u0000\u0000\u203d\u0604\u0001\u0000\u0000\u0000\u203e"+ + "\u203f\u0003\u001f\u000f\u0000\u203f\u2040\u0003#\u0011\u0000\u2040\u2041"+ + "\u0003!\u0010\u0000\u2041\u2042\u0003\u000f\u0007\u0000\u2042\u2043\u0003"+ + "7\u001b\u0000\u2043\u0606\u0001\u0000\u0000\u0000\u2044\u2045\u0003%\u0012"+ + "\u0000\u2045\u2046\u0003\u0013\t\u0000\u2046\u2047\u0005_\u0000\u0000"+ + "\u2047\u2048\u0003\u001d\u000e\u0000\u2048\u2049\u0003+\u0015\u0000\u2049"+ + "\u204a\u0003!\u0010\u0000\u204a\u0608\u0001\u0000\u0000\u0000\u204b\u204c"+ + "\u0003%\u0012\u0000\u204c\u204d\u0003#\u0011\u0000\u204d\u204e\u0003\u0017"+ + "\u000b\u0000\u204e\u204f\u0003!\u0010\u0000\u204f\u2050\u0003-\u0016\u0000"+ + "\u2050\u060a\u0001\u0000\u0000\u0000\u2051\u2052\u0003%\u0012\u0000\u2052"+ + "\u2053\u0003#\u0011\u0000\u2053\u2054\u0003\u001d\u000e\u0000\u2054\u2055"+ + "\u00037\u001b\u0000\u2055\u2056\u0003\u0013\t\u0000\u2056\u2057\u0003"+ + "#\u0011\u0000\u2057\u2058\u0003!\u0010\u0000\u2058\u060c\u0001\u0000\u0000"+ + "\u0000\u2059\u205a\u0003)\u0014\u0000\u205a\u205b\u0003\u000f\u0007\u0000"+ + "\u205b\u205c\u0003\u001d\u000e\u0000\u205c\u205d\u0003-\u0016\u0000\u205d"+ + "\u205e\u0003\u0017\u000b\u0000\u205e\u205f\u0003\u001f\u000f\u0000\u205f"+ + "\u2060\u0003\u000f\u0007\u0000\u2060\u060e\u0001\u0000\u0000\u0000\u2061"+ + "\u2062\u0003+\u0015\u0000\u2062\u2063\u0003\u000f\u0007\u0000\u2063\u2064"+ + "\u0003)\u0014\u0000\u2064\u2065\u0003\u0017\u000b\u0000\u2065\u2066\u0003"+ + "\u0007\u0003\u0000\u2066\u2067\u0003\u001d\u000e\u0000\u2067\u0610\u0001"+ + "\u0000\u0000\u0000\u2068\u2069\u0003+\u0015\u0000\u2069\u206a\u0003\u000f"+ + "\u0007\u0000\u206a\u206b\u0003)\u0014\u0000\u206b\u206c\u0003\u0017\u000b"+ + "\u0000\u206c\u206d\u0003\u0007\u0003\u0000\u206d\u206e\u0003\u001d\u000e"+ + "\u0000\u206e\u206f\u00052\u0000\u0000\u206f\u0612\u0001\u0000\u0000\u0000"+ + "\u2070\u2071\u0003+\u0015\u0000\u2071\u2072\u0003\u000f\u0007\u0000\u2072"+ + "\u2073\u0003)\u0014\u0000\u2073\u2074\u0003\u0017\u000b\u0000\u2074\u2075"+ + "\u0003\u0007\u0003\u0000\u2075\u2076\u0003\u001d\u000e\u0000\u2076\u2077"+ + "\u00054\u0000\u0000\u2077\u0614\u0001\u0000\u0000\u0000\u2078\u2079\u0003"+ + "+\u0015\u0000\u2079\u207a\u0003\u000f\u0007\u0000\u207a\u207b\u0003)\u0014"+ + "\u0000\u207b\u207c\u0003\u0017\u000b\u0000\u207c\u207d\u0003\u0007\u0003"+ + "\u0000\u207d\u207e\u0003\u001d\u000e\u0000\u207e\u207f\u00058\u0000\u0000"+ + "\u207f\u0616\u0001\u0000\u0000\u0000\u2080\u2081\u0003+\u0015\u0000\u2081"+ + "\u2082\u0003\u001f\u000f\u0000\u2082\u2083\u0003\u0007\u0003\u0000\u2083"+ + "\u2084\u0003\u001d\u000e\u0000\u2084\u2085\u0003\u001d\u000e\u0000\u2085"+ + "\u2086\u0003+\u0015\u0000\u2086\u2087\u0003\u000f\u0007\u0000\u2087\u2088"+ + "\u0003)\u0014\u0000\u2088\u2089\u0003\u0017\u000b\u0000\u2089\u208a\u0003"+ + "\u0007\u0003\u0000\u208a\u208b\u0003\u001d\u000e\u0000\u208b\u0618\u0001"+ + "\u0000\u0000\u0000\u208c\u208d\u0003+\u0015\u0000\u208d\u208e\u0003-\u0016"+ + "\u0000\u208e\u208f\u0003+\u0015\u0000\u208f\u2090\u0003-\u0016\u0000\u2090"+ + "\u2091\u0003\u000f\u0007\u0000\u2091\u2092\u0003\u001f\u000f\u0000\u2092"+ + "\u061a\u0001\u0000\u0000\u0000\u2093\u2094\u0003-\u0016\u0000\u2094\u2095"+ + "\u0003\u000f\u0007\u0000\u2095\u2096\u00035\u001a\u0000\u2096\u2097\u0003"+ + "-\u0016\u0000\u2097\u061c\u0001\u0000\u0000\u0000\u2098\u2099\u0003-\u0016"+ + "\u0000\u2099\u209a\u0003\u0017\u000b\u0000\u209a\u209b\u0003\u001f\u000f"+ + "\u0000\u209b\u209c\u0003\u000f\u0007\u0000\u209c\u209d\u0003+\u0015\u0000"+ + "\u209d\u209e\u0003-\u0016\u0000\u209e\u209f\u0003\u0007\u0003\u0000\u209f"+ + "\u20a0\u0003\u001f\u000f\u0000\u20a0\u20a1\u0003%\u0012\u0000\u20a1\u20a2"+ + "\u0003-\u0016\u0000\u20a2\u20a3\u00039\u001c\u0000\u20a3\u061e\u0001\u0000"+ + "\u0000\u0000\u20a4\u20a5\u0003-\u0016\u0000\u20a5\u20a6\u0003\u0017\u000b"+ + "\u0000\u20a6\u20a7\u0003\u001f\u000f\u0000\u20a7\u20a8\u0003\u000f\u0007"+ + "\u0000\u20a8\u20a9\u0003-\u0016\u0000\u20a9\u20aa\u00039\u001c\u0000\u20aa"+ + "\u0620\u0001\u0000\u0000\u0000\u20ab\u20ac\u0003-\u0016\u0000\u20ac\u20ad"+ + "\u0003+\u0015\u0000\u20ad\u20ae\u0003\'\u0013\u0000\u20ae\u20af\u0003"+ + "/\u0017\u0000\u20af\u20b0\u0003\u000f\u0007\u0000\u20b0\u20b1\u0003)\u0014"+ + "\u0000\u20b1\u20b2\u00037\u001b\u0000\u20b2\u0622\u0001\u0000\u0000\u0000"+ + "\u20b3\u20b4\u0003-\u0016\u0000\u20b4\u20b5\u0003+\u0015\u0000\u20b5\u20b6"+ + "\u00031\u0018\u0000\u20b6\u20b7\u0003\u000f\u0007\u0000\u20b7\u20b8\u0003"+ + "\u000b\u0005\u0000\u20b8\u20b9\u0003-\u0016\u0000\u20b9\u20ba\u0003#\u0011"+ + "\u0000\u20ba\u20bb\u0003)\u0014\u0000\u20bb\u0624\u0001\u0000\u0000\u0000"+ + "\u20bc\u20bd\u0003-\u0016\u0000\u20bd\u20be\u00035\u001a\u0000\u20be\u20bf"+ + "\u0003\u0017\u000b\u0000\u20bf\u20c0\u0003\r\u0006\u0000\u20c0\u20c1\u0005"+ + "_\u0000\u0000\u20c1\u20c2\u0003+\u0015\u0000\u20c2\u20c3\u0003!\u0010"+ + "\u0000\u20c3\u20c4\u0003\u0007\u0003\u0000\u20c4\u20c5\u0003%\u0012\u0000"+ + "\u20c5\u20c6\u0003+\u0015\u0000\u20c6\u20c7\u0003\u0015\n\u0000\u20c7"+ + "\u20c8\u0003#\u0011\u0000\u20c8\u20c9\u0003-\u0016\u0000\u20c9\u0626\u0001"+ + "\u0000\u0000\u0000\u20ca\u20cb\u0003/\u0017\u0000\u20cb\u20cc\u0003/\u0017"+ + "\u0000\u20cc\u20cd\u0003\u0017\u000b\u0000\u20cd\u20ce\u0003\r\u0006\u0000"+ + "\u20ce\u0628\u0001\u0000\u0000\u0000\u20cf\u20d0\u00031\u0018\u0000\u20d0"+ + "\u20d1\u0003\u0007\u0003\u0000\u20d1\u20d2\u0003)\u0014\u0000\u20d2\u20d3"+ + "\u0003\t\u0004\u0000\u20d3\u20d4\u0003\u0017\u000b\u0000\u20d4\u20d5\u0003"+ + "-\u0016\u0000\u20d5\u062a\u0001\u0000\u0000\u0000\u20d6\u20d7\u00035\u001a"+ + "\u0000\u20d7\u20d8\u0003\u001f\u000f\u0000\u20d8\u20d9\u0003\u001d\u000e"+ + "\u0000\u20d9\u062c\u0001\u0000\u0000\u0000\u20da\u20db\u0005,\u0000\u0000"+ + "\u20db\u062e\u0001\u0000\u0000\u0000\u20dc\u20dd\u0005:\u0000\u0000\u20dd"+ + "\u0630\u0001\u0000\u0000\u0000\u20de\u20df\u0005:\u0000\u0000\u20df\u20e0"+ + "\u0005:\u0000\u0000\u20e0\u0632\u0001\u0000\u0000\u0000\u20e1\u20e2\u0005"+ + "$\u0000\u0000\u20e2\u0634\u0001\u0000\u0000\u0000\u20e3\u20e4\u0005$\u0000"+ + "\u0000\u20e4\u20e5\u0005$\u0000\u0000\u20e5\u0636\u0001\u0000\u0000\u0000"+ + "\u20e6\u20e7\u0005*\u0000\u0000\u20e7\u0638\u0001\u0000\u0000\u0000\u20e8"+ + "\u20e9\u0005(\u0000\u0000\u20e9\u063a\u0001\u0000\u0000\u0000\u20ea\u20eb"+ + "\u0005)\u0000\u0000\u20eb\u063c\u0001\u0000\u0000\u0000\u20ec\u20ed\u0005"+ + "[\u0000\u0000\u20ed\u063e\u0001\u0000\u0000\u0000\u20ee\u20ef\u0005]\u0000"+ + "\u0000\u20ef\u0640\u0001\u0000\u0000\u0000\u20f0\u20f1\u0003\t\u0004\u0000"+ + "\u20f1\u20f5\u0005\'\u0000\u0000\u20f2\u20f4\u000201\u0000\u20f3\u20f2"+ + "\u0001\u0000\u0000\u0000\u20f4\u20f7\u0001\u0000\u0000\u0000\u20f5\u20f3"+ + "\u0001\u0000\u0000\u0000\u20f5\u20f6\u0001\u0000\u0000\u0000\u20f6\u20f8"+ + "\u0001\u0000\u0000\u0000\u20f7\u20f5\u0001\u0000\u0000\u0000\u20f8\u20f9"+ + "\u0005\'\u0000\u0000\u20f9\u0642\u0001\u0000\u0000\u0000\u20fa\u20fb\u0003"+ + "\u000f\u0007\u0000\u20fb\u20fc\u0003A \u0000\u20fc\u0644\u0001\u0000\u0000"+ + "\u0000\u20fd\u20ff\u0005-\u0000\u0000\u20fe\u20fd\u0001\u0000\u0000\u0000"+ + "\u20fe\u20ff\u0001\u0000\u0000\u0000\u20ff\u2101\u0001\u0000\u0000\u0000"+ + "\u2100\u2102\u0003=\u001e\u0000\u2101\u2100\u0001\u0000\u0000\u0000\u2102"+ + "\u2103\u0001\u0000\u0000\u0000\u2103\u2101\u0001\u0000\u0000\u0000\u2103"+ + "\u2104\u0001\u0000\u0000\u0000\u2104\u2105\u0001\u0000\u0000\u0000\u2105"+ + "\u2107\u0005.\u0000\u0000\u2106\u2108\u0003=\u001e\u0000\u2107\u2106\u0001"+ + "\u0000\u0000\u0000\u2108\u2109\u0001\u0000\u0000\u0000\u2109\u2107\u0001"+ + "\u0000\u0000\u0000\u2109\u210a\u0001\u0000\u0000\u0000\u210a\u2117\u0001"+ + "\u0000\u0000\u0000\u210b\u210f\u0003\u000f\u0007\u0000\u210c\u210e\u0005"+ + "-\u0000\u0000\u210d\u210c\u0001\u0000\u0000\u0000\u210e\u2111\u0001\u0000"+ + "\u0000\u0000\u210f\u210d\u0001\u0000\u0000\u0000\u210f\u2110\u0001\u0000"+ + "\u0000\u0000\u2110\u2113\u0001\u0000\u0000\u0000\u2111\u210f\u0001\u0000"+ + "\u0000\u0000\u2112\u2114\u0003=\u001e\u0000\u2113\u2112\u0001\u0000\u0000"+ + "\u0000\u2114\u2115\u0001\u0000\u0000\u0000\u2115\u2113\u0001\u0000\u0000"+ + "\u0000\u2115\u2116\u0001\u0000\u0000\u0000\u2116\u2118\u0001\u0000\u0000"+ + "\u0000\u2117\u210b\u0001\u0000\u0000\u0000\u2117\u2118\u0001\u0000\u0000"+ + "\u0000\u2118\u0646\u0001\u0000\u0000\u0000\u2119\u211b\u0005-\u0000\u0000"+ + "\u211a\u2119\u0001\u0000\u0000\u0000\u211a\u211b\u0001\u0000\u0000\u0000"+ + "\u211b\u211d\u0001\u0000\u0000\u0000\u211c\u211e\u0003=\u001e\u0000\u211d"+ + "\u211c\u0001\u0000\u0000\u0000\u211e\u211f\u0001\u0000\u0000\u0000\u211f"+ + "\u211d\u0001\u0000\u0000\u0000\u211f\u2120\u0001\u0000\u0000\u0000\u2120"+ + "\u2127\u0001\u0000\u0000\u0000\u2121\u2123\u0003\u000f\u0007\u0000\u2122"+ + "\u2124\u0003=\u001e\u0000\u2123\u2122\u0001\u0000\u0000\u0000\u2124\u2125"+ + "\u0001\u0000\u0000\u0000\u2125\u2123\u0001\u0000\u0000\u0000\u2125\u2126"+ + "\u0001\u0000\u0000\u0000\u2126\u2128\u0001\u0000\u0000\u0000\u2127\u2121"+ + "\u0001\u0000\u0000\u0000\u2127\u2128\u0001\u0000\u0000\u0000\u2128\u0648"+ + "\u0001\u0000\u0000\u0000\u2129\u212a\u0005x\u0000\u0000\u212a\u212b\u0003"+ + "A \u0000\u212b\u064a\u0001\u0000\u0000\u0000\u212c\u212d\u0005.\u0000"+ + "\u0000\u212d\u064c\u0001\u0000\u0000\u0000\u212e\u212f\u0003A \u0000\u212f"+ + "\u064e\u0001\u0000\u0000\u0000\u2130\u2131\u0003?\u001f\u0000\u2131\u0650"+ + "\u0001\u0000\u0000\u0000\u2132\u2136\u0007 \u0000\u0000\u2133\u2135\u0007"+ + "!\u0000\u0000\u2134\u2133\u0001\u0000\u0000\u0000\u2135\u2138\u0001\u0000"+ + "\u0000\u0000\u2136\u2134\u0001\u0000\u0000\u0000\u2136\u2137\u0001\u0000"+ + "\u0000\u0000\u2137\u0652\u0001\u0000\u0000\u0000\u2138\u2136\u0001\u0000"+ + "\u0000\u0000\u2139\u213b\u0005$\u0000\u0000\u213a\u213c\u0003=\u001e\u0000"+ + "\u213b\u213a\u0001\u0000\u0000\u0000\u213c\u213d\u0001\u0000\u0000\u0000"+ + "\u213d\u213b\u0001\u0000\u0000\u0000\u213d\u213e\u0001\u0000\u0000\u0000"+ + "\u213e\u0654\u0001\u0000\u0000\u0000\u213f\u2143\u0007\"\u0000\u0000\u2140"+ + "\u2142\u0007#\u0000\u0000\u2141\u2140\u0001\u0000\u0000\u0000\u2142\u2145"+ + "\u0001\u0000\u0000\u0000\u2143\u2141\u0001\u0000\u0000\u0000\u2143\u2144"+ + "\u0001\u0000\u0000\u0000\u2144\u0656\u0001\u0000\u0000\u0000\u2145\u2143"+ + "\u0001\u0000\u0000\u0000\u2146\u2147\u0005&\u0000\u0000\u2147\u0658\u0001"+ + "\u0000\u0000\u0000\u2148\u2149\u0005&\u0000\u0000\u2149\u214a\u0005&\u0000"+ + "\u0000\u214a\u065a\u0001\u0000\u0000\u0000\u214b\u214c\u0005&\u0000\u0000"+ + "\u214c\u214d\u0005<\u0000\u0000\u214d\u065c\u0001\u0000\u0000\u0000\u214e"+ + "\u214f\u0005@\u0000\u0000\u214f\u2150\u0005@\u0000\u0000\u2150\u065e\u0001"+ + "\u0000\u0000\u0000\u2151\u2152\u0005@\u0000\u0000\u2152\u2153\u0005>\u0000"+ + "\u0000\u2153\u0660\u0001\u0000\u0000\u0000\u2154\u2155\u0005@\u0000\u0000"+ + "\u2155\u0662\u0001\u0000\u0000\u0000\u2156\u2157\u0005!\u0000\u0000\u2157"+ + "\u0664\u0001\u0000\u0000\u0000\u2158\u2159\u0005!\u0000\u0000\u2159\u215a"+ + "\u0005!\u0000\u0000\u215a\u0666\u0001\u0000\u0000\u0000\u215b\u215c\u0005"+ + "!\u0000\u0000\u215c\u215d\u0005=\u0000\u0000\u215d\u0668\u0001\u0000\u0000"+ + "\u0000\u215e\u215f\u0005^\u0000\u0000\u215f\u066a\u0001\u0000\u0000\u0000"+ + "\u2160\u2161\u0005=\u0000\u0000\u2161\u066c\u0001\u0000\u0000\u0000\u2162"+ + "\u2163\u0005=\u0000\u0000\u2163\u2164\u0005>\u0000\u0000\u2164\u066e\u0001"+ + "\u0000\u0000\u0000\u2165\u2166\u0005>\u0000\u0000\u2166\u0670\u0001\u0000"+ + "\u0000\u0000\u2167\u2168\u0005>\u0000\u0000\u2168\u2169\u0005=\u0000\u0000"+ + "\u2169\u0672\u0001\u0000\u0000\u0000\u216a\u216b\u0005>\u0000\u0000\u216b"+ + "\u216c\u0005>\u0000\u0000\u216c\u0674\u0001\u0000\u0000\u0000\u216d\u216e"+ + "\u0005#\u0000\u0000\u216e\u0676\u0001\u0000\u0000\u0000\u216f\u2170\u0005"+ + "#\u0000\u0000\u2170\u2171\u0005=\u0000\u0000\u2171\u0678\u0001\u0000\u0000"+ + "\u0000\u2172\u2173\u0005#\u0000\u0000\u2173\u2174\u0005>\u0000\u0000\u2174"+ + "\u067a\u0001\u0000\u0000\u0000\u2175\u2176\u0005#\u0000\u0000\u2176\u2177"+ + "\u0005>\u0000\u0000\u2177\u2178\u0005>\u0000\u0000\u2178\u067c\u0001\u0000"+ + "\u0000\u0000\u2179\u217a\u0005#\u0000\u0000\u217a\u217b\u0005#\u0000\u0000"+ + "\u217b\u067e\u0001\u0000\u0000\u0000\u217c\u217d\u0005-\u0000\u0000\u217d"+ + "\u217e\u0005>\u0000\u0000\u217e\u0680\u0001\u0000\u0000\u0000\u217f\u2180"+ + "\u0005-\u0000\u0000\u2180\u2181\u0005>\u0000\u0000\u2181\u2182\u0005>"+ + "\u0000\u0000\u2182\u0682\u0001\u0000\u0000\u0000\u2183\u2184\u0005-\u0000"+ + "\u0000\u2184\u2185\u0005|\u0000\u0000\u2185\u2186\u0005-\u0000\u0000\u2186"+ + "\u0684\u0001\u0000\u0000\u0000\u2187\u2188\u0005<\u0000\u0000\u2188\u0686"+ + "\u0001\u0000\u0000\u0000\u2189\u218a\u0005<\u0000\u0000\u218a\u218b\u0005"+ + "=\u0000\u0000\u218b\u0688\u0001\u0000\u0000\u0000\u218c\u218d\u0005<\u0000"+ + "\u0000\u218d\u218e\u0005@\u0000\u0000\u218e\u068a\u0001\u0000\u0000\u0000"+ + "\u218f\u2190\u0005<\u0000\u0000\u2190\u2191\u0005^\u0000\u0000\u2191\u068c"+ + "\u0001\u0000\u0000\u0000\u2192\u2193\u0005<\u0000\u0000\u2193\u2194\u0005"+ + ">\u0000\u0000\u2194\u068e\u0001\u0000\u0000\u0000\u2195\u2196\u0005<\u0000"+ + "\u0000\u2196\u2197\u0005-\u0000\u0000\u2197\u2198\u0005>\u0000\u0000\u2198"+ + "\u0690\u0001\u0000\u0000\u0000\u2199\u219a\u0005<\u0000\u0000\u219a\u219b"+ + "\u0005<\u0000\u0000\u219b\u0692\u0001\u0000\u0000\u0000\u219c\u219d\u0005"+ + "<\u0000\u0000\u219d\u219e\u0005<\u0000\u0000\u219e\u219f\u0005=\u0000"+ + "\u0000\u219f\u0694\u0001\u0000\u0000\u0000\u21a0\u21a1\u0005<\u0000\u0000"+ + "\u21a1\u21a2\u0005?\u0000\u0000\u21a2\u21a3\u0005>\u0000\u0000\u21a3\u0696"+ + "\u0001\u0000\u0000\u0000\u21a4\u21a5\u0005-\u0000\u0000\u21a5\u0698\u0001"+ + "\u0000\u0000\u0000\u21a6\u21a7\u0005%\u0000\u0000\u21a7\u069a\u0001\u0000"+ + "\u0000\u0000\u21a8\u21a9\u0005|\u0000\u0000\u21a9\u069c\u0001\u0000\u0000"+ + "\u0000\u21aa\u21ab\u0005|\u0000\u0000\u21ab\u21ac\u0005|\u0000\u0000\u21ac"+ + "\u069e\u0001\u0000\u0000\u0000\u21ad\u21ae\u0005|\u0000\u0000\u21ae\u21af"+ + "\u0005|\u0000\u0000\u21af\u21b0\u0005/\u0000\u0000\u21b0\u06a0\u0001\u0000"+ + "\u0000\u0000\u21b1\u21b2\u0005|\u0000\u0000\u21b2\u21b3\u0005/\u0000\u0000"+ + "\u21b3\u06a2\u0001\u0000\u0000\u0000\u21b4\u21b5\u0005+\u0000\u0000\u21b5"+ + "\u06a4\u0001\u0000\u0000\u0000\u21b6\u21b7\u0005?\u0000\u0000\u21b7\u06a6"+ + "\u0001\u0000\u0000\u0000\u21b8\u21b9\u0005?\u0000\u0000\u21b9\u21ba\u0005"+ + "&\u0000\u0000\u21ba\u06a8\u0001\u0000\u0000\u0000\u21bb\u21bc\u0005?\u0000"+ + "\u0000\u21bc\u21bd\u0005#\u0000\u0000\u21bd\u06aa\u0001\u0000\u0000\u0000"+ + "\u21be\u21bf\u0005?\u0000\u0000\u21bf\u21c0\u0005-\u0000\u0000\u21c0\u06ac"+ + "\u0001\u0000\u0000\u0000\u21c1\u21c2\u0005?\u0000\u0000\u21c2\u21c3\u0005"+ + "|\u0000\u0000\u21c3\u06ae\u0001\u0000\u0000\u0000\u21c4\u21c5\u0005/\u0000"+ + "\u0000\u21c5\u06b0\u0001\u0000\u0000\u0000\u21c6\u21c7\u0005~\u0000\u0000"+ + "\u21c7\u06b2\u0001\u0000\u0000\u0000\u21c8\u21c9\u0005~\u0000\u0000\u21c9"+ + "\u21ca\u0005=\u0000\u0000\u21ca\u06b4\u0001\u0000\u0000\u0000\u21cb\u21cc"+ + "\u0005~\u0000\u0000\u21cc\u21cd\u0005>\u0000\u0000\u21cd\u21ce\u0005="+ + "\u0000\u0000\u21ce\u21cf\u0005~\u0000\u0000\u21cf\u06b6\u0001\u0000\u0000"+ + "\u0000\u21d0\u21d1\u0005~\u0000\u0000\u21d1\u21d2\u0005>\u0000\u0000\u21d2"+ + "\u21d3\u0005~\u0000\u0000\u21d3\u06b8\u0001\u0000\u0000\u0000\u21d4\u21d5"+ + "\u0005~\u0000\u0000\u21d5\u21d6\u0005<\u0000\u0000\u21d6\u21d7\u0005="+ + "\u0000\u0000\u21d7\u21d8\u0005~\u0000\u0000\u21d8\u06ba\u0001\u0000\u0000"+ + "\u0000\u21d9\u21da\u0005~\u0000\u0000\u21da\u21db\u0005<\u0000\u0000\u21db"+ + "\u21dc\u0005~\u0000\u0000\u21dc\u06bc\u0001\u0000\u0000\u0000\u21dd\u21de"+ + "\u0005~\u0000\u0000\u21de\u21df\u0005*\u0000\u0000\u21df\u06be\u0001\u0000"+ + "\u0000\u0000\u21e0\u21e1\u0005~\u0000\u0000\u21e1\u21e2\u0005~\u0000\u0000"+ + "\u21e2\u06c0\u0001\u0000\u0000\u0000\u21e3\u21e4\u0005;\u0000\u0000\u21e4"+ + "\u06c2\u0001\u0000\u0000\u0000\u0018\u0000\u06c6\u06d0\u06de\u0723\u0725"+ + "\u0730\u0732\u073d\u073f\u20f5\u20fe\u2103\u2109\u210f\u2115\u2117\u211a"+ + "\u211f\u2125\u2127\u2136\u213d\u2143\u0002\u0006\u0000\u0000\u0000\u0001"+ + "\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2, + _serializedATNSegment3 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/gen/PostgreSQLLexer.tokens b/gen/PostgreSQLLexer.tokens new file mode 100644 index 0000000..476cae2 --- /dev/null +++ b/gen/PostgreSQLLexer.tokens @@ -0,0 +1,899 @@ +WHITESPACE=1 +BLOCK_COMMENT=2 +LINE_COMMENT=3 +A_=4 +ABORT=5 +ABS=6 +ABSOLUTE=7 +ACCESS=8 +ACTION=9 +ADA=10 +ADD=11 +ADMIN=12 +AFTER=13 +AGGREGATE=14 +ALIAS=15 +ALL=16 +ALLOCATE=17 +ALSO=18 +ALTER=19 +ALWAYS=20 +ANALYSE=21 +ANALYZE=22 +AND=23 +ANY=24 +ARE=25 +ARRAY=26 +AS=27 +ASC=28 +ASENSITIVE=29 +ASSERTION=30 +ASSIGNMENT=31 +ASYMMETRIC=32 +AT=33 +ATOMIC=34 +ATTRIBUTE=35 +ATTRIBUTES=36 +AUTHORIZATION=37 +AVG=38 +BACKWARD=39 +BEFORE=40 +BEGIN=41 +BERNOULLI=42 +BETWEEN=43 +BIGINT=44 +BINARY=45 +BIT=46 +BIT_LENGTH=47 +BITVAR=48 +BLOB=49 +BOOLEAN=50 +BOTH=51 +BREADTH=52 +BUFFERS=53 +BY=54 +C_=55 +CACHE=56 +CALL=57 +CALLED=58 +CARDINALITY=59 +CASCADE=60 +CASCADED=61 +CASE=62 +CAST=63 +CATALOG=64 +CATALOG_NAME=65 +CEIL=66 +CEILING=67 +CHAIN=68 +CHAR=69 +CHAR_LENGTH=70 +CHARACTER=71 +CHARACTER_LENGTH=72 +CHARACTER_SET_CATALOG=73 +CHARACTER_SET_NAME=74 +CHARACTER_SET_SCHEMA=75 +CHARACTERISTICS=76 +CHARACTERS=77 +CHECK=78 +CHECKED=79 +CHECKPOINT=80 +CLASS=81 +CLASS_ORIGIN=82 +CLOB=83 +CLOSE=84 +CLUSTER=85 +COALESCE=86 +COBOL=87 +COLLATE=88 +COLLATION=89 +COLLATION_CATALOG=90 +COLLATION_NAME=91 +COLLATION_SCHEMA=92 +COLLECT=93 +COLUMN=94 +COLUMN_NAME=95 +COMMAND_FUNCTION=96 +COMMAND_FUNCTION_CODE=97 +COMMENT=98 +COMMIT=99 +COMMITTED=100 +COMPLETION=101 +CONDITION=102 +CONDITION_NUMBER=103 +CONFIGURATION=104 +CONFLICT=105 +CONNECT=106 +CONNECTION=107 +CONNECTION_NAME=108 +CONSTRAINT=109 +CONSTRAINT_CATALOG=110 +CONSTRAINT_NAME=111 +CONSTRAINT_SCHEMA=112 +CONSTRAINTS=113 +CONSTRUCTOR=114 +CONTAINS=115 +CONTINUE=116 +CONVERSION=117 +CONVERT=118 +COPY=119 +CORR=120 +CORRESPONDING=121 +COSTS=122 +COUNT=123 +COVAR_POP=124 +COVAR_SAMP=125 +CREATE=126 +CREATEDB=127 +CREATEUSER=128 +CROSS=129 +CSV=130 +CUBE=131 +CUME_DIST=132 +CURRENT=133 +CURRENT_DATE=134 +CURRENT_DEFAULT_TRANSFORM_GROUP=135 +CURRENT_PATH=136 +CURRENT_ROLE=137 +CURRENT_TIME=138 +CURRENT_TIMESTAMP=139 +CURRENT_TRANSFORM_GROUP_FOR_TYPE=140 +CURRENT_USER=141 +CURSOR=142 +CURSOR_NAME=143 +CYCLE=144 +DATA=145 +DATABASE=146 +DATE=147 +DATETIME_INTERVAL_CODE=148 +DATETIME_INTERVAL_PRECISION=149 +DAY=150 +DEALLOCATE=151 +DEC=152 +DECIMAL=153 +DECLARE=154 +DEFAULT=155 +DEFAULTS=156 +DEFERABLE=157 +DEFERRABLE=158 +DEFERRED=159 +DEFINED=160 +DEFINER=161 +DEGREE=162 +DELETE=163 +DELIMITER=164 +DELIMITERS=165 +DENSE_RANK=166 +DEPENDS=167 +DEPTH=168 +DEREF=169 +DERIVED=170 +DESC=171 +DESCRIBE=172 +DESCRIPTOR=173 +DESTROY=174 +DESTRUCTOR=175 +DETERMINISTIC=176 +DIAGNOSTICS=177 +DICTIONARY=178 +DISABLE=179 +DISABLE_PAGE_SKIPPING=180 +DISCARD=181 +DISCONNECT=182 +DISPATCH=183 +DISTINCT=184 +DO=185 +DOMAIN=186 +DOUBLE=187 +DROP=188 +DYNAMIC=189 +DYNAMIC_FUNCTION=190 +DYNAMIC_FUNCTION_CODE=191 +EACH=192 +ELEMENT=193 +ELSE=194 +ENABLE=195 +ENCODING=196 +ENCRYPTED=197 +END=198 +END_EXEC=199 +EQUALS=200 +ESCAPE=201 +EVERY=202 +EXCEPT=203 +EXCEPTION=204 +EXCLUDE=205 +EXCLUDING=206 +EXCLUSIVE=207 +EXEC=208 +EXECUTE=209 +EXISTING=210 +EXISTS=211 +EXP=212 +EXPLAIN=213 +EXTENDED=214 +EXTENSION=215 +EXTERNAL=216 +EXTRACT=217 +FALSE=218 +FETCH=219 +FIELDS=220 +FILTER=221 +FINAL=222 +FIRST=223 +FLOAT=224 +FLOOR=225 +FOLLOWING=226 +FOR=227 +FORCE=228 +FOREIGN=229 +FORMAT=230 +FORTRAN=231 +FORWARD=232 +FOUND=233 +FREE=234 +FREEZE=235 +FROM=236 +FULL=237 +FUNCTION=238 +FUSION=239 +G_=240 +GENERAL=241 +GENERATED=242 +GET=243 +GLOBAL=244 +GO=245 +GOTO=246 +GRANT=247 +GRANTED=248 +GREATEST=249 +GROUP=250 +GROUPING=251 +HANDLER=252 +HAVING=253 +HIERARCHY=254 +HOLD=255 +HOST=256 +HOUR=257 +IDENTITY=258 +IGNORE=259 +ILIKE=260 +IMMEDIATE=261 +IMMUTABLE=262 +IMPLEMENTATION=263 +IMPLICIT=264 +IN=265 +INCLUDING=266 +INCREMENT=267 +INDEX=268 +INDICATOR=269 +INFIX=270 +INHERITS=271 +INITIALIZE=272 +INITIALLY=273 +INNER=274 +INOUT=275 +INPUT=276 +INSENSITIVE=277 +INSERT=278 +INSTANCE=279 +INSTANTIABLE=280 +INSTEAD=281 +INT=282 +INTEGER=283 +INTERSECT=284 +INTERSECTION=285 +INTERVAL=286 +INTO=287 +INVOKER=288 +IS=289 +ISOLATION=290 +ITERATE=291 +JOIN=292 +K_=293 +KEY=294 +KEY_MEMBER=295 +KEY_TYPE=296 +LABEL=297 +LANCOMPILER=298 +LANGUAGE=299 +LARGE=300 +LAST=301 +LATERAL=302 +LEADING=303 +LEAST=304 +LEFT=305 +LENGTH=306 +LESS=307 +LEVEL=308 +LIKE=309 +LIMIT=310 +LISTEN=311 +LN=312 +LOAD=313 +LOCAL=314 +LOCALTIME=315 +LOCALTIMESTAMP=316 +LOCATION=317 +LOCATOR=318 +LOCK=319 +LOCKED=320 +LOWER=321 +M_=322 +MAIN=323 +MAP=324 +MAPPING=325 +MATCH=326 +MATCH_SIMPLE=327 +MATCHED=328 +MAX=329 +MAXVALUE=330 +MEMBER=331 +MERGE=332 +MESSAGE_LENGTH=333 +MESSAGE_OCTET_LENGTH=334 +MESSAGE_TEXT=335 +METHOD=336 +MIN=337 +MINUTE=338 +MINVALUE=339 +MOD=340 +MODE=341 +MODIFIES=342 +MODIFY=343 +MODULE=344 +MONTH=345 +MORE_=346 +MOVE=347 +MULTISET=348 +MUMPS=349 +NAME=350 +NAMES=351 +NATIONAL=352 +NATURAL=353 +NCHAR=354 +NCLOB=355 +NESTING=356 +NEW=357 +NEXT=358 +NO=359 +NOCREATEDB=360 +NOCREATEUSER=361 +NONE=362 +NORMALIZE=363 +NORMALIZED=364 +NOT=365 +NOTHING=366 +NOTIFY=367 +NOTNULL=368 +NOWAIT=369 +NULL=370 +NULLABLE=371 +NULLIF=372 +NULLS=373 +NUMBER=374 +NUMERIC=375 +OBJECT=376 +OCTET_LENGTH=377 +OCTETS=378 +OF=379 +OFF=380 +OFFSET=381 +OIDS=382 +OLD=383 +ON=384 +ONLY=385 +OPEN=386 +OPERATION=387 +OPERATOR=388 +OPTION=389 +OPTIONS=390 +OR=391 +ORDER=392 +ORDERING=393 +ORDINALITY=394 +OTHERS=395 +OUT=396 +OUTER=397 +OUTPUT=398 +OVER=399 +OVERLAPS=400 +OVERLAY=401 +OVERRIDING=402 +OWNER=403 +PAD=404 +PARAMETER=405 +PARAMETER_MODE=406 +PARAMETER_NAME=407 +PARAMETER_ORDINAL_POSITION=408 +PARAMETER_SPECIFIC_CATALOG=409 +PARAMETER_SPECIFIC_NAME=410 +PARAMETER_SPECIFIC_SCHEMA=411 +PARAMETERS=412 +PARSER=413 +PARTIAL=414 +PARTITION=415 +PASCAL=416 +PASSWORD=417 +PATH=418 +PERCENT_RANK=419 +PERCENTILE_CONT=420 +PERCENTILE_DISC=421 +PLACING=422 +PLAIN=423 +PLANS=424 +PLI=425 +POSITION=426 +POSTFIX=427 +POWER=428 +PRECEDING=429 +PRECISION=430 +PREFIX=431 +PREORDER=432 +PREPARE=433 +PREPARED=434 +PRESERVE=435 +PRIMARY=436 +PRIOR=437 +PRIVILEGES=438 +PROCEDURAL=439 +PROCEDURE=440 +PUBLIC=441 +PUBLICATION=442 +QUOTE=443 +RANGE=444 +RANK=445 +READ=446 +READS=447 +REAL=448 +REASSIGN=449 +RECHECK=450 +RECURSIVE=451 +REF=452 +REFERENCES=453 +REFERENCING=454 +REFRESH=455 +REGR_AVGX=456 +REGR_AVGY=457 +REGR_COUNT=458 +REGR_INTERCEPT=459 +REGR_R2=460 +REGR_SLOPE=461 +REGR_SXX=462 +REGR_SXY=463 +REGR_SYY=464 +REINDEX=465 +RELATIVE=466 +RELEASE=467 +RENAME=468 +REPEATABLE=469 +REPLACE=470 +REPLICA=471 +RESET=472 +RESTART=473 +RESTRICT=474 +RESULT=475 +RETURN=476 +RETURNED_CARDINALITY=477 +RETURNED_LENGTH=478 +RETURNED_OCTET_LENGTH=479 +RETURNED_SQLSTATE=480 +RETURNING=481 +RETURNS=482 +REVOKE=483 +RIGHT=484 +ROLE=485 +ROLLBACK=486 +ROLLUP=487 +ROUTINE=488 +ROUTINE_CATALOG=489 +ROUTINE_NAME=490 +ROUTINE_SCHEMA=491 +ROW=492 +ROW_COUNT=493 +ROW_NUMBER=494 +ROWS=495 +RULE=496 +SAVEPOINT=497 +SCALE=498 +SCHEMA=499 +SCHEMA_NAME=500 +SCOPE=501 +SCOPE_CATALOG=502 +SCOPE_NAME=503 +SCOPE_SCHEMA=504 +SCROLL=505 +SEARCH=506 +SECOND=507 +SECTION=508 +SECURITY=509 +SELECT=510 +SELF=511 +SENSITIVE=512 +SEQUENCE=513 +SEQUENCES=514 +SERIALIZABLE=515 +SERVER_NAME=516 +SESSION=517 +SESSION_USER=518 +SET=519 +SETOF=520 +SETS=521 +SHARE=522 +SHOW=523 +SIMILAR=524 +SIMPLE=525 +SIZE=526 +SKIP_=527 +SMALLINT=528 +SNAPSHOT=529 +SOME=530 +SOURCE=531 +SPACE=532 +SPECIFIC=533 +SPECIFIC_NAME=534 +SPECIFICTYPE=535 +SQL=536 +SQLCODE=537 +SQLERROR=538 +SQLEXCEPTION=539 +SQLSTATE=540 +SQLWARNING=541 +SQRT=542 +STABLE=543 +START=544 +STATE=545 +STATEMENT=546 +STATIC=547 +STATISTICS=548 +STDDEV_POP=549 +STDDEV_SAMP=550 +STDIN=551 +STDOUT=552 +STORAGE=553 +STRICT=554 +STRUCTURE=555 +STYLE=556 +SUBCLASS_ORIGIN=557 +SUBLIST=558 +SUBMULTISET=559 +SUBSCRIPTION=560 +SUBSTRING=561 +SUM=562 +SYMMETRIC=563 +SYSID=564 +SYSTEM=565 +SYSTEM_USER=566 +TABLE=567 +TABLE_NAME=568 +TABLESAMPLE=569 +TABLESPACE=570 +TEMP=571 +TEMPLATE=572 +TEMPORARY=573 +TERMINATE=574 +THAN=575 +THEN=576 +TIES=577 +TIME=578 +TIMESTAMP=579 +TIMEZONE_HOUR=580 +TIMEZONE_MINUTE=581 +TIMING=582 +TO=583 +TOAST=584 +TOP_LEVEL_COUNT=585 +TRAILING=586 +TRANSACTION=587 +TRANSACTION_ACTIVE=588 +TRANSACTIONS_COMMITTED=589 +TRANSACTIONS_ROLLED_BACK=590 +TRANSFORM=591 +TRANSFORMS=592 +TRANSLATE=593 +TRANSLATION=594 +TREAT=595 +TRIGGER=596 +TRIGGER_CATALOG=597 +TRIGGER_NAME=598 +TRIGGER_SCHEMA=599 +TRIM=600 +TRUE=601 +TRUNCATE=602 +TRUSTED=603 +TYPE=604 +UESCAPE=605 +UNBOUNDED=606 +UNCOMMITTED=607 +UNDER=608 +UNENCRYPTED=609 +UNION=610 +UNIQUE=611 +UNKNOWN=612 +UNLISTEN=613 +UNNAMED=614 +UNNEST=615 +UNTIL=616 +UPDATE=617 +UPPER=618 +USAGE=619 +USER=620 +USER_DEFINED_TYPE_CATALOG=621 +USER_DEFINED_TYPE_CODE=622 +USER_DEFINED_TYPE_NAME=623 +USER_DEFINED_TYPE_SCHEMA=624 +USING=625 +VACUUM=626 +VALID=627 +VALIDATE=628 +VALIDATOR=629 +VALUE=630 +VALUES=631 +VAR_POP=632 +VAR_SAMP=633 +VARCHAR=634 +VARIABLE=635 +VARIADIC=636 +VARYING=637 +VERBOSE=638 +VIEW=639 +VOLATILE=640 +WHEN=641 +WHENEVER=642 +WHERE=643 +WIDTH_BUCKET=644 +WINDOW=645 +WITH=646 +WITHIN=647 +WITHOUT=648 +WORK=649 +WRITE=650 +YAML=651 +YEAR=652 +YES=653 +ZONE=654 +SUPERUSER=655 +NOSUPERUSER=656 +CREATEROLE=657 +NOCREATEROLE=658 +INHERIT=659 +NOINHERIT=660 +LOGIN=661 +NOLOGIN=662 +REPLICATION=663 +NOREPLICATION=664 +BYPASSRLS=665 +NOBYPASSRLS=666 +SFUNC=667 +STYPE=668 +SSPACE=669 +FINALFUNC=670 +FINALFUNC_EXTRA=671 +COMBINEFUNC=672 +SERIALFUNC=673 +DESERIALFUNC=674 +INITCOND=675 +MSFUNC=676 +MINVFUNC=677 +MSTYPE=678 +MSSPACE=679 +MFINALFUNC=680 +MFINALFUNC_EXTRA=681 +MINITCOND=682 +SORTOP=683 +PARALLEL=684 +HYPOTHETICAL=685 +SAFE=686 +RESTRICTED=687 +UNSAFE=688 +BASETYPE=689 +IF=690 +LOCALE=691 +LC_COLLATE=692 +LC_CTYPE=693 +PROVIDER=694 +VERSION=695 +ALLOW_CONNECTIONS=696 +IS_TEMPLATE=697 +EVENT=698 +WRAPPER=699 +SERVER=700 +BTREE=701 +HASH_=702 +GIST=703 +SPGIST=704 +GIN=705 +BRIN=706 +CONCURRENTLY=707 +INLINE=708 +MATERIALIZED=709 +LEFTARG=710 +RIGHTARG=711 +COMMUTATOR=712 +NEGATOR=713 +HASHES=714 +MERGES=715 +FAMILY=716 +POLICY=717 +OWNED=718 +ABSTIME=719 +BIGSERIAL=720 +BIT_VARYING=721 +BOOL=722 +BOX=723 +BYTEA=724 +CHARACTER_VARYING=725 +CIDR=726 +CIRCLE=727 +FLOAT4=728 +FLOAT8=729 +INET=730 +INT2=731 +INT4=732 +INT8=733 +JSON=734 +JSONB=735 +LINE=736 +LSEG=737 +MACADDR=738 +MACADDR8=739 +MONEY=740 +PG_LSN=741 +POINT=742 +POLYGON=743 +RELTIME=744 +SERIAL=745 +SERIAL2=746 +SERIAL4=747 +SERIAL8=748 +SMALLSERIAL=749 +STSTEM=750 +TEXT=751 +TIMESTAMPTZ=752 +TIMETZ=753 +TSQUERY=754 +TSVECTOR=755 +TXID_SNAPSHOT=756 +UUID=757 +VARBIT=758 +XML=759 +COMMA=760 +COLON=761 +COLON_COLON=762 +DOLLAR=763 +DOLLAR_DOLLAR=764 +STAR=765 +OPEN_PAREN=766 +CLOSE_PAREN=767 +OPEN_BRACKET=768 +CLOSE_BRACKET=769 +BIT_STRING=770 +REGEX_STRING=771 +NUMERIC_LITERAL=772 +INTEGER_LITERAL=773 +HEX_INTEGER_LITERAL=774 +DOT=775 +SINGLEQ_STRING_LITERAL=776 +DOUBLEQ_STRING_LITERAL=777 +IDENTIFIER=778 +DOLLAR_DEC=779 +IDENTIFIER_UNICODE=780 +AMP=781 +AMP_AMP=782 +AMP_LT=783 +AT_AT=784 +AT_GT=785 +AT_SIGN=786 +BANG=787 +BANG_BANG=788 +BANG_EQUAL=789 +CARET=790 +EQUAL=791 +EQUAL_GT=792 +GT=793 +GTE=794 +GT_GT=795 +HASH=796 +HASH_EQ=797 +HASH_GT=798 +HASH_GT_GT=799 +HASH_HASH=800 +HYPHEN_GT=801 +HYPHEN_GT_GT=802 +HYPHEN_PIPE_HYPHEN=803 +LT=804 +LTE=805 +LT_AT=806 +LT_CARET=807 +LT_GT=808 +LT_HYPHEN_GT=809 +LT_LT=810 +LT_LT_EQ=811 +LT_QMARK_GT=812 +MINUS=813 +PERCENT=814 +PIPE=815 +PIPE_PIPE=816 +PIPE_PIPE_SLASH=817 +PIPE_SLASH=818 +PLUS=819 +QMARK=820 +QMARK_AMP=821 +QMARK_HASH=822 +QMARK_HYPHEN=823 +QMARK_PIPE=824 +SLASH=825 +TIL=826 +TIL_EQ=827 +TIL_GTE_TIL=828 +TIL_GT_TIL=829 +TIL_LTE_TIL=830 +TIL_LT_TIL=831 +TIL_STAR=832 +TIL_TIL=833 +SEMI=834 +','=760 +':'=761 +'::'=762 +'$'=763 +'$$'=764 +'*'=765 +'('=766 +')'=767 +'['=768 +']'=769 +'.'=775 +'&'=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 From 8b361851cd39fce4bfcfdbba7a008406658e580e Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 28 Feb 2023 17:32:11 +0800 Subject: [PATCH 46/56] PostgreSQL --- gen/PostgreSQLLexer.interp | 9 +- gen/PostgreSQLLexer.java | 10213 +- gen/PostgreSQLLexer.tokens | 427 +- .../bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 | 3 +- .../sql/antlr4/pg/PostgreSQLLexer.tokens | 898 + .../bigdata/sql/antlr4/pg/PostgreSQLParser.g4 | 12 +- src/main/java/PostgreSQLLexer.tokens | 427 +- src/main/java/PostgreSQLParser.tokens | 429 +- .../sql/antlr4/pg/PostgreSQLLexer.java | 8098 +- .../sql/antlr4/pg/PostgreSQLParser.java | 108929 +++++++-------- .../pg/PostgreSQLParserBaseListener.java | 8010 +- .../pg/PostgreSQLParserBaseVisitor.java | 4772 +- .../antlr4/pg/PostgreSQLParserListener.java | 6360 +- .../antlr4/pg/PostgreSQLParserVisitor.java | 3712 +- .../bigdata/sql/parser/pg/PostgreSQLHelper.kt | 30 +- .../com/github/bigdata/sql/parser/pg/Test.kt | 11 +- src/test/resources/datax/pg2s3.json | 126 +- 17 files changed, 70066 insertions(+), 82400 deletions(-) create mode 100644 src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens diff --git a/gen/PostgreSQLLexer.interp b/gen/PostgreSQLLexer.interp index d7b901d..d0bf9c8 100644 --- a/gen/PostgreSQLLexer.interp +++ b/gen/PostgreSQLLexer.interp @@ -758,7 +758,6 @@ null null null null -null ',' ':' '::' @@ -1015,7 +1014,7 @@ DESTRUCTOR DETERMINISTIC DIAGNOSTICS DICTIONARY -DISABLE +DISABLE_P DISABLE_PAGE_SKIPPING DISCARD DISCONNECT @@ -1523,7 +1522,6 @@ SORTOP PARALLEL HYPOTHETICAL SAFE -RESTRICTED UNSAFE BASETYPE IF @@ -1882,7 +1880,7 @@ DESTRUCTOR DETERMINISTIC DIAGNOSTICS DICTIONARY -DISABLE +DISABLE_P DISABLE_PAGE_SKIPPING DISCARD DISCONNECT @@ -2390,7 +2388,6 @@ SORTOP PARALLEL HYPOTHETICAL SAFE -RESTRICTED UNSAFE BASETYPE IF @@ -2547,4 +2544,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 834, 8677, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 2, 864, 7, 864, 1, 0, 4, 0, 1733, 8, 0, 11, 0, 12, 0, 1734, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1743, 8, 1, 10, 1, 12, 1, 1746, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1757, 8, 2, 10, 2, 12, 2, 1760, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 1828, 8, 31, 10, 31, 12, 31, 1831, 9, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 1841, 8, 32, 10, 32, 12, 32, 1844, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 1854, 8, 33, 10, 33, 12, 33, 1857, 9, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 789, 1, 789, 1, 790, 1, 790, 1, 791, 1, 791, 1, 792, 1, 792, 1, 792, 1, 793, 1, 793, 1, 794, 1, 794, 1, 794, 1, 795, 1, 795, 1, 796, 1, 796, 1, 797, 1, 797, 1, 798, 1, 798, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 5, 800, 8436, 8, 800, 10, 800, 12, 800, 8439, 9, 800, 1, 800, 1, 800, 1, 801, 1, 801, 1, 801, 1, 802, 3, 802, 8447, 8, 802, 1, 802, 4, 802, 8450, 8, 802, 11, 802, 12, 802, 8451, 1, 802, 1, 802, 4, 802, 8456, 8, 802, 11, 802, 12, 802, 8457, 1, 802, 1, 802, 5, 802, 8462, 8, 802, 10, 802, 12, 802, 8465, 9, 802, 1, 802, 4, 802, 8468, 8, 802, 11, 802, 12, 802, 8469, 3, 802, 8472, 8, 802, 1, 803, 3, 803, 8475, 8, 803, 1, 803, 4, 803, 8478, 8, 803, 11, 803, 12, 803, 8479, 1, 803, 1, 803, 4, 803, 8484, 8, 803, 11, 803, 12, 803, 8485, 3, 803, 8488, 8, 803, 1, 804, 1, 804, 1, 804, 1, 805, 1, 805, 1, 806, 1, 806, 1, 807, 1, 807, 1, 808, 1, 808, 5, 808, 8501, 8, 808, 10, 808, 12, 808, 8504, 9, 808, 1, 809, 1, 809, 4, 809, 8508, 8, 809, 11, 809, 12, 809, 8509, 1, 810, 1, 810, 5, 810, 8514, 8, 810, 10, 810, 12, 810, 8517, 9, 810, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 815, 1, 816, 1, 816, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 819, 1, 820, 1, 820, 1, 821, 1, 821, 1, 822, 1, 822, 1, 822, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 825, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 833, 1, 833, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 842, 1, 842, 1, 843, 1, 843, 1, 844, 1, 844, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 848, 1, 849, 1, 849, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 854, 1, 855, 1, 855, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 1, 863, 1, 864, 1, 864, 2, 1744, 1758, 0, 865, 1, 1, 3, 2, 5, 3, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 4, 71, 5, 73, 6, 75, 7, 77, 8, 79, 9, 81, 10, 83, 11, 85, 12, 87, 13, 89, 14, 91, 15, 93, 16, 95, 17, 97, 18, 99, 19, 101, 20, 103, 21, 105, 22, 107, 23, 109, 24, 111, 25, 113, 26, 115, 27, 117, 28, 119, 29, 121, 30, 123, 31, 125, 32, 127, 33, 129, 34, 131, 35, 133, 36, 135, 37, 137, 38, 139, 39, 141, 40, 143, 41, 145, 42, 147, 43, 149, 44, 151, 45, 153, 46, 155, 47, 157, 48, 159, 49, 161, 50, 163, 51, 165, 52, 167, 53, 169, 54, 171, 55, 173, 56, 175, 57, 177, 58, 179, 59, 181, 60, 183, 61, 185, 62, 187, 63, 189, 64, 191, 65, 193, 66, 195, 67, 197, 68, 199, 69, 201, 70, 203, 71, 205, 72, 207, 73, 209, 74, 211, 75, 213, 76, 215, 77, 217, 78, 219, 79, 221, 80, 223, 81, 225, 82, 227, 83, 229, 84, 231, 85, 233, 86, 235, 87, 237, 88, 239, 89, 241, 90, 243, 91, 245, 92, 247, 93, 249, 94, 251, 95, 253, 96, 255, 97, 257, 98, 259, 99, 261, 100, 263, 101, 265, 102, 267, 103, 269, 104, 271, 105, 273, 106, 275, 107, 277, 108, 279, 109, 281, 110, 283, 111, 285, 112, 287, 113, 289, 114, 291, 115, 293, 116, 295, 117, 297, 118, 299, 119, 301, 120, 303, 121, 305, 122, 307, 123, 309, 124, 311, 125, 313, 126, 315, 127, 317, 128, 319, 129, 321, 130, 323, 131, 325, 132, 327, 133, 329, 134, 331, 135, 333, 136, 335, 137, 337, 138, 339, 139, 341, 140, 343, 141, 345, 142, 347, 143, 349, 144, 351, 145, 353, 146, 355, 147, 357, 148, 359, 149, 361, 150, 363, 151, 365, 152, 367, 153, 369, 154, 371, 155, 373, 156, 375, 157, 377, 158, 379, 159, 381, 160, 383, 161, 385, 162, 387, 163, 389, 164, 391, 165, 393, 166, 395, 167, 397, 168, 399, 169, 401, 170, 403, 171, 405, 172, 407, 173, 409, 174, 411, 175, 413, 176, 415, 177, 417, 178, 419, 179, 421, 180, 423, 181, 425, 182, 427, 183, 429, 184, 431, 185, 433, 186, 435, 187, 437, 188, 439, 189, 441, 190, 443, 191, 445, 192, 447, 193, 449, 194, 451, 195, 453, 196, 455, 197, 457, 198, 459, 199, 461, 200, 463, 201, 465, 202, 467, 203, 469, 204, 471, 205, 473, 206, 475, 207, 477, 208, 479, 209, 481, 210, 483, 211, 485, 212, 487, 213, 489, 214, 491, 215, 493, 216, 495, 217, 497, 218, 499, 219, 501, 220, 503, 221, 505, 222, 507, 223, 509, 224, 511, 225, 513, 226, 515, 227, 517, 228, 519, 229, 521, 230, 523, 231, 525, 232, 527, 233, 529, 234, 531, 235, 533, 236, 535, 237, 537, 238, 539, 239, 541, 240, 543, 241, 545, 242, 547, 243, 549, 244, 551, 245, 553, 246, 555, 247, 557, 248, 559, 249, 561, 250, 563, 251, 565, 252, 567, 253, 569, 254, 571, 255, 573, 256, 575, 257, 577, 258, 579, 259, 581, 260, 583, 261, 585, 262, 587, 263, 589, 264, 591, 265, 593, 266, 595, 267, 597, 268, 599, 269, 601, 270, 603, 271, 605, 272, 607, 273, 609, 274, 611, 275, 613, 276, 615, 277, 617, 278, 619, 279, 621, 280, 623, 281, 625, 282, 627, 283, 629, 284, 631, 285, 633, 286, 635, 287, 637, 288, 639, 289, 641, 290, 643, 291, 645, 292, 647, 293, 649, 294, 651, 295, 653, 296, 655, 297, 657, 298, 659, 299, 661, 300, 663, 301, 665, 302, 667, 303, 669, 304, 671, 305, 673, 306, 675, 307, 677, 308, 679, 309, 681, 310, 683, 311, 685, 312, 687, 313, 689, 314, 691, 315, 693, 316, 695, 317, 697, 318, 699, 319, 701, 320, 703, 321, 705, 322, 707, 323, 709, 324, 711, 325, 713, 326, 715, 327, 717, 328, 719, 329, 721, 330, 723, 331, 725, 332, 727, 333, 729, 334, 731, 335, 733, 336, 735, 337, 737, 338, 739, 339, 741, 340, 743, 341, 745, 342, 747, 343, 749, 344, 751, 345, 753, 346, 755, 347, 757, 348, 759, 349, 761, 350, 763, 351, 765, 352, 767, 353, 769, 354, 771, 355, 773, 356, 775, 357, 777, 358, 779, 359, 781, 360, 783, 361, 785, 362, 787, 363, 789, 364, 791, 365, 793, 366, 795, 367, 797, 368, 799, 369, 801, 370, 803, 371, 805, 372, 807, 373, 809, 374, 811, 375, 813, 376, 815, 377, 817, 378, 819, 379, 821, 380, 823, 381, 825, 382, 827, 383, 829, 384, 831, 385, 833, 386, 835, 387, 837, 388, 839, 389, 841, 390, 843, 391, 845, 392, 847, 393, 849, 394, 851, 395, 853, 396, 855, 397, 857, 398, 859, 399, 861, 400, 863, 401, 865, 402, 867, 403, 869, 404, 871, 405, 873, 406, 875, 407, 877, 408, 879, 409, 881, 410, 883, 411, 885, 412, 887, 413, 889, 414, 891, 415, 893, 416, 895, 417, 897, 418, 899, 419, 901, 420, 903, 421, 905, 422, 907, 423, 909, 424, 911, 425, 913, 426, 915, 427, 917, 428, 919, 429, 921, 430, 923, 431, 925, 432, 927, 433, 929, 434, 931, 435, 933, 436, 935, 437, 937, 438, 939, 439, 941, 440, 943, 441, 945, 442, 947, 443, 949, 444, 951, 445, 953, 446, 955, 447, 957, 448, 959, 449, 961, 450, 963, 451, 965, 452, 967, 453, 969, 454, 971, 455, 973, 456, 975, 457, 977, 458, 979, 459, 981, 460, 983, 461, 985, 462, 987, 463, 989, 464, 991, 465, 993, 466, 995, 467, 997, 468, 999, 469, 1001, 470, 1003, 471, 1005, 472, 1007, 473, 1009, 474, 1011, 475, 1013, 476, 1015, 477, 1017, 478, 1019, 479, 1021, 480, 1023, 481, 1025, 482, 1027, 483, 1029, 484, 1031, 485, 1033, 486, 1035, 487, 1037, 488, 1039, 489, 1041, 490, 1043, 491, 1045, 492, 1047, 493, 1049, 494, 1051, 495, 1053, 496, 1055, 497, 1057, 498, 1059, 499, 1061, 500, 1063, 501, 1065, 502, 1067, 503, 1069, 504, 1071, 505, 1073, 506, 1075, 507, 1077, 508, 1079, 509, 1081, 510, 1083, 511, 1085, 512, 1087, 513, 1089, 514, 1091, 515, 1093, 516, 1095, 517, 1097, 518, 1099, 519, 1101, 520, 1103, 521, 1105, 522, 1107, 523, 1109, 524, 1111, 525, 1113, 526, 1115, 527, 1117, 528, 1119, 529, 1121, 530, 1123, 531, 1125, 532, 1127, 533, 1129, 534, 1131, 535, 1133, 536, 1135, 537, 1137, 538, 1139, 539, 1141, 540, 1143, 541, 1145, 542, 1147, 543, 1149, 544, 1151, 545, 1153, 546, 1155, 547, 1157, 548, 1159, 549, 1161, 550, 1163, 551, 1165, 552, 1167, 553, 1169, 554, 1171, 555, 1173, 556, 1175, 557, 1177, 558, 1179, 559, 1181, 560, 1183, 561, 1185, 562, 1187, 563, 1189, 564, 1191, 565, 1193, 566, 1195, 567, 1197, 568, 1199, 569, 1201, 570, 1203, 571, 1205, 572, 1207, 573, 1209, 574, 1211, 575, 1213, 576, 1215, 577, 1217, 578, 1219, 579, 1221, 580, 1223, 581, 1225, 582, 1227, 583, 1229, 584, 1231, 585, 1233, 586, 1235, 587, 1237, 588, 1239, 589, 1241, 590, 1243, 591, 1245, 592, 1247, 593, 1249, 594, 1251, 595, 1253, 596, 1255, 597, 1257, 598, 1259, 599, 1261, 600, 1263, 601, 1265, 602, 1267, 603, 1269, 604, 1271, 605, 1273, 606, 1275, 607, 1277, 608, 1279, 609, 1281, 610, 1283, 611, 1285, 612, 1287, 613, 1289, 614, 1291, 615, 1293, 616, 1295, 617, 1297, 618, 1299, 619, 1301, 620, 1303, 621, 1305, 622, 1307, 623, 1309, 624, 1311, 625, 1313, 626, 1315, 627, 1317, 628, 1319, 629, 1321, 630, 1323, 631, 1325, 632, 1327, 633, 1329, 634, 1331, 635, 1333, 636, 1335, 637, 1337, 638, 1339, 639, 1341, 640, 1343, 641, 1345, 642, 1347, 643, 1349, 644, 1351, 645, 1353, 646, 1355, 647, 1357, 648, 1359, 649, 1361, 650, 1363, 651, 1365, 652, 1367, 653, 1369, 654, 1371, 655, 1373, 656, 1375, 657, 1377, 658, 1379, 659, 1381, 660, 1383, 661, 1385, 662, 1387, 663, 1389, 664, 1391, 665, 1393, 666, 1395, 667, 1397, 668, 1399, 669, 1401, 670, 1403, 671, 1405, 672, 1407, 673, 1409, 674, 1411, 675, 1413, 676, 1415, 677, 1417, 678, 1419, 679, 1421, 680, 1423, 681, 1425, 682, 1427, 683, 1429, 684, 1431, 685, 1433, 686, 1435, 687, 1437, 688, 1439, 689, 1441, 690, 1443, 691, 1445, 692, 1447, 693, 1449, 694, 1451, 695, 1453, 696, 1455, 697, 1457, 698, 1459, 699, 1461, 700, 1463, 701, 1465, 702, 1467, 703, 1469, 704, 1471, 705, 1473, 706, 1475, 707, 1477, 708, 1479, 709, 1481, 710, 1483, 711, 1485, 712, 1487, 713, 1489, 714, 1491, 715, 1493, 716, 1495, 717, 1497, 718, 1499, 719, 1501, 720, 1503, 721, 1505, 722, 1507, 723, 1509, 724, 1511, 725, 1513, 726, 1515, 727, 1517, 728, 1519, 729, 1521, 730, 1523, 731, 1525, 732, 1527, 733, 1529, 734, 1531, 735, 1533, 736, 1535, 737, 1537, 738, 1539, 739, 1541, 740, 1543, 741, 1545, 742, 1547, 743, 1549, 744, 1551, 745, 1553, 746, 1555, 747, 1557, 748, 1559, 749, 1561, 750, 1563, 751, 1565, 752, 1567, 753, 1569, 754, 1571, 755, 1573, 756, 1575, 757, 1577, 758, 1579, 759, 1581, 760, 1583, 761, 1585, 762, 1587, 763, 1589, 764, 1591, 765, 1593, 766, 1595, 767, 1597, 768, 1599, 769, 1601, 770, 1603, 771, 1605, 772, 1607, 773, 1609, 774, 1611, 775, 1613, 776, 1615, 777, 1617, 778, 1619, 779, 1621, 780, 1623, 781, 1625, 782, 1627, 783, 1629, 784, 1631, 785, 1633, 786, 1635, 787, 1637, 788, 1639, 789, 1641, 790, 1643, 791, 1645, 792, 1647, 793, 1649, 794, 1651, 795, 1653, 796, 1655, 797, 1657, 798, 1659, 799, 1661, 800, 1663, 801, 1665, 802, 1667, 803, 1669, 804, 1671, 805, 1673, 806, 1675, 807, 1677, 808, 1679, 809, 1681, 810, 1683, 811, 1685, 812, 1687, 813, 1689, 814, 1691, 815, 1693, 816, 1695, 817, 1697, 818, 1699, 819, 1701, 820, 1703, 821, 1705, 822, 1707, 823, 1709, 824, 1711, 825, 1713, 826, 1715, 827, 1717, 828, 1719, 829, 1721, 830, 1723, 831, 1725, 832, 1727, 833, 1729, 834, 1, 0, 36, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 48, 57, 65, 70, 1, 0, 48, 57, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 2, 0, 92, 92, 96, 96, 3, 0, 65, 90, 95, 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 65, 90, 95, 95, 97, 122, 161, 65535, 6, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 161, 65535, 8671, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 0, 1729, 1, 0, 0, 0, 1, 1732, 1, 0, 0, 0, 3, 1738, 1, 0, 0, 0, 5, 1752, 1, 0, 0, 0, 7, 1765, 1, 0, 0, 0, 9, 1767, 1, 0, 0, 0, 11, 1769, 1, 0, 0, 0, 13, 1771, 1, 0, 0, 0, 15, 1773, 1, 0, 0, 0, 17, 1775, 1, 0, 0, 0, 19, 1777, 1, 0, 0, 0, 21, 1779, 1, 0, 0, 0, 23, 1781, 1, 0, 0, 0, 25, 1783, 1, 0, 0, 0, 27, 1785, 1, 0, 0, 0, 29, 1787, 1, 0, 0, 0, 31, 1789, 1, 0, 0, 0, 33, 1791, 1, 0, 0, 0, 35, 1793, 1, 0, 0, 0, 37, 1795, 1, 0, 0, 0, 39, 1797, 1, 0, 0, 0, 41, 1799, 1, 0, 0, 0, 43, 1801, 1, 0, 0, 0, 45, 1803, 1, 0, 0, 0, 47, 1805, 1, 0, 0, 0, 49, 1807, 1, 0, 0, 0, 51, 1809, 1, 0, 0, 0, 53, 1811, 1, 0, 0, 0, 55, 1813, 1, 0, 0, 0, 57, 1815, 1, 0, 0, 0, 59, 1817, 1, 0, 0, 0, 61, 1819, 1, 0, 0, 0, 63, 1821, 1, 0, 0, 0, 65, 1834, 1, 0, 0, 0, 67, 1847, 1, 0, 0, 0, 69, 1860, 1, 0, 0, 0, 71, 1862, 1, 0, 0, 0, 73, 1868, 1, 0, 0, 0, 75, 1872, 1, 0, 0, 0, 77, 1881, 1, 0, 0, 0, 79, 1888, 1, 0, 0, 0, 81, 1895, 1, 0, 0, 0, 83, 1899, 1, 0, 0, 0, 85, 1903, 1, 0, 0, 0, 87, 1909, 1, 0, 0, 0, 89, 1915, 1, 0, 0, 0, 91, 1925, 1, 0, 0, 0, 93, 1931, 1, 0, 0, 0, 95, 1935, 1, 0, 0, 0, 97, 1944, 1, 0, 0, 0, 99, 1949, 1, 0, 0, 0, 101, 1955, 1, 0, 0, 0, 103, 1962, 1, 0, 0, 0, 105, 1970, 1, 0, 0, 0, 107, 1978, 1, 0, 0, 0, 109, 1982, 1, 0, 0, 0, 111, 1986, 1, 0, 0, 0, 113, 1990, 1, 0, 0, 0, 115, 1996, 1, 0, 0, 0, 117, 1999, 1, 0, 0, 0, 119, 2003, 1, 0, 0, 0, 121, 2014, 1, 0, 0, 0, 123, 2024, 1, 0, 0, 0, 125, 2035, 1, 0, 0, 0, 127, 2046, 1, 0, 0, 0, 129, 2049, 1, 0, 0, 0, 131, 2056, 1, 0, 0, 0, 133, 2066, 1, 0, 0, 0, 135, 2077, 1, 0, 0, 0, 137, 2091, 1, 0, 0, 0, 139, 2095, 1, 0, 0, 0, 141, 2104, 1, 0, 0, 0, 143, 2111, 1, 0, 0, 0, 145, 2117, 1, 0, 0, 0, 147, 2127, 1, 0, 0, 0, 149, 2135, 1, 0, 0, 0, 151, 2142, 1, 0, 0, 0, 153, 2149, 1, 0, 0, 0, 155, 2153, 1, 0, 0, 0, 157, 2164, 1, 0, 0, 0, 159, 2171, 1, 0, 0, 0, 161, 2176, 1, 0, 0, 0, 163, 2184, 1, 0, 0, 0, 165, 2189, 1, 0, 0, 0, 167, 2197, 1, 0, 0, 0, 169, 2205, 1, 0, 0, 0, 171, 2208, 1, 0, 0, 0, 173, 2210, 1, 0, 0, 0, 175, 2216, 1, 0, 0, 0, 177, 2221, 1, 0, 0, 0, 179, 2228, 1, 0, 0, 0, 181, 2240, 1, 0, 0, 0, 183, 2248, 1, 0, 0, 0, 185, 2257, 1, 0, 0, 0, 187, 2262, 1, 0, 0, 0, 189, 2267, 1, 0, 0, 0, 191, 2275, 1, 0, 0, 0, 193, 2288, 1, 0, 0, 0, 195, 2293, 1, 0, 0, 0, 197, 2301, 1, 0, 0, 0, 199, 2307, 1, 0, 0, 0, 201, 2312, 1, 0, 0, 0, 203, 2324, 1, 0, 0, 0, 205, 2334, 1, 0, 0, 0, 207, 2351, 1, 0, 0, 0, 209, 2373, 1, 0, 0, 0, 211, 2392, 1, 0, 0, 0, 213, 2413, 1, 0, 0, 0, 215, 2429, 1, 0, 0, 0, 217, 2440, 1, 0, 0, 0, 219, 2446, 1, 0, 0, 0, 221, 2454, 1, 0, 0, 0, 223, 2465, 1, 0, 0, 0, 225, 2471, 1, 0, 0, 0, 227, 2484, 1, 0, 0, 0, 229, 2489, 1, 0, 0, 0, 231, 2495, 1, 0, 0, 0, 233, 2503, 1, 0, 0, 0, 235, 2512, 1, 0, 0, 0, 237, 2518, 1, 0, 0, 0, 239, 2526, 1, 0, 0, 0, 241, 2536, 1, 0, 0, 0, 243, 2554, 1, 0, 0, 0, 245, 2569, 1, 0, 0, 0, 247, 2586, 1, 0, 0, 0, 249, 2594, 1, 0, 0, 0, 251, 2601, 1, 0, 0, 0, 253, 2613, 1, 0, 0, 0, 255, 2630, 1, 0, 0, 0, 257, 2652, 1, 0, 0, 0, 259, 2660, 1, 0, 0, 0, 261, 2667, 1, 0, 0, 0, 263, 2677, 1, 0, 0, 0, 265, 2688, 1, 0, 0, 0, 267, 2698, 1, 0, 0, 0, 269, 2715, 1, 0, 0, 0, 271, 2729, 1, 0, 0, 0, 273, 2738, 1, 0, 0, 0, 275, 2746, 1, 0, 0, 0, 277, 2757, 1, 0, 0, 0, 279, 2773, 1, 0, 0, 0, 281, 2784, 1, 0, 0, 0, 283, 2803, 1, 0, 0, 0, 285, 2819, 1, 0, 0, 0, 287, 2837, 1, 0, 0, 0, 289, 2849, 1, 0, 0, 0, 291, 2861, 1, 0, 0, 0, 293, 2870, 1, 0, 0, 0, 295, 2879, 1, 0, 0, 0, 297, 2890, 1, 0, 0, 0, 299, 2898, 1, 0, 0, 0, 301, 2903, 1, 0, 0, 0, 303, 2908, 1, 0, 0, 0, 305, 2922, 1, 0, 0, 0, 307, 2928, 1, 0, 0, 0, 309, 2934, 1, 0, 0, 0, 311, 2944, 1, 0, 0, 0, 313, 2955, 1, 0, 0, 0, 315, 2962, 1, 0, 0, 0, 317, 2971, 1, 0, 0, 0, 319, 2982, 1, 0, 0, 0, 321, 2988, 1, 0, 0, 0, 323, 2992, 1, 0, 0, 0, 325, 2997, 1, 0, 0, 0, 327, 3007, 1, 0, 0, 0, 329, 3015, 1, 0, 0, 0, 331, 3028, 1, 0, 0, 0, 333, 3060, 1, 0, 0, 0, 335, 3073, 1, 0, 0, 0, 337, 3086, 1, 0, 0, 0, 339, 3099, 1, 0, 0, 0, 341, 3117, 1, 0, 0, 0, 343, 3150, 1, 0, 0, 0, 345, 3163, 1, 0, 0, 0, 347, 3170, 1, 0, 0, 0, 349, 3182, 1, 0, 0, 0, 351, 3188, 1, 0, 0, 0, 353, 3193, 1, 0, 0, 0, 355, 3202, 1, 0, 0, 0, 357, 3207, 1, 0, 0, 0, 359, 3230, 1, 0, 0, 0, 361, 3258, 1, 0, 0, 0, 363, 3262, 1, 0, 0, 0, 365, 3273, 1, 0, 0, 0, 367, 3277, 1, 0, 0, 0, 369, 3285, 1, 0, 0, 0, 371, 3293, 1, 0, 0, 0, 373, 3301, 1, 0, 0, 0, 375, 3310, 1, 0, 0, 0, 377, 3320, 1, 0, 0, 0, 379, 3331, 1, 0, 0, 0, 381, 3340, 1, 0, 0, 0, 383, 3348, 1, 0, 0, 0, 385, 3356, 1, 0, 0, 0, 387, 3363, 1, 0, 0, 0, 389, 3370, 1, 0, 0, 0, 391, 3380, 1, 0, 0, 0, 393, 3391, 1, 0, 0, 0, 395, 3402, 1, 0, 0, 0, 397, 3410, 1, 0, 0, 0, 399, 3416, 1, 0, 0, 0, 401, 3422, 1, 0, 0, 0, 403, 3430, 1, 0, 0, 0, 405, 3435, 1, 0, 0, 0, 407, 3444, 1, 0, 0, 0, 409, 3455, 1, 0, 0, 0, 411, 3463, 1, 0, 0, 0, 413, 3474, 1, 0, 0, 0, 415, 3488, 1, 0, 0, 0, 417, 3500, 1, 0, 0, 0, 419, 3511, 1, 0, 0, 0, 421, 3519, 1, 0, 0, 0, 423, 3541, 1, 0, 0, 0, 425, 3549, 1, 0, 0, 0, 427, 3560, 1, 0, 0, 0, 429, 3569, 1, 0, 0, 0, 431, 3578, 1, 0, 0, 0, 433, 3581, 1, 0, 0, 0, 435, 3588, 1, 0, 0, 0, 437, 3595, 1, 0, 0, 0, 439, 3600, 1, 0, 0, 0, 441, 3608, 1, 0, 0, 0, 443, 3625, 1, 0, 0, 0, 445, 3647, 1, 0, 0, 0, 447, 3652, 1, 0, 0, 0, 449, 3660, 1, 0, 0, 0, 451, 3665, 1, 0, 0, 0, 453, 3672, 1, 0, 0, 0, 455, 3681, 1, 0, 0, 0, 457, 3691, 1, 0, 0, 0, 459, 3695, 1, 0, 0, 0, 461, 3704, 1, 0, 0, 0, 463, 3711, 1, 0, 0, 0, 465, 3718, 1, 0, 0, 0, 467, 3724, 1, 0, 0, 0, 469, 3731, 1, 0, 0, 0, 471, 3741, 1, 0, 0, 0, 473, 3749, 1, 0, 0, 0, 475, 3759, 1, 0, 0, 0, 477, 3769, 1, 0, 0, 0, 479, 3774, 1, 0, 0, 0, 481, 3782, 1, 0, 0, 0, 483, 3791, 1, 0, 0, 0, 485, 3798, 1, 0, 0, 0, 487, 3802, 1, 0, 0, 0, 489, 3810, 1, 0, 0, 0, 491, 3819, 1, 0, 0, 0, 493, 3829, 1, 0, 0, 0, 495, 3838, 1, 0, 0, 0, 497, 3846, 1, 0, 0, 0, 499, 3852, 1, 0, 0, 0, 501, 3858, 1, 0, 0, 0, 503, 3865, 1, 0, 0, 0, 505, 3872, 1, 0, 0, 0, 507, 3878, 1, 0, 0, 0, 509, 3884, 1, 0, 0, 0, 511, 3890, 1, 0, 0, 0, 513, 3896, 1, 0, 0, 0, 515, 3906, 1, 0, 0, 0, 517, 3910, 1, 0, 0, 0, 519, 3916, 1, 0, 0, 0, 521, 3924, 1, 0, 0, 0, 523, 3931, 1, 0, 0, 0, 525, 3939, 1, 0, 0, 0, 527, 3947, 1, 0, 0, 0, 529, 3953, 1, 0, 0, 0, 531, 3958, 1, 0, 0, 0, 533, 3965, 1, 0, 0, 0, 535, 3970, 1, 0, 0, 0, 537, 3975, 1, 0, 0, 0, 539, 3984, 1, 0, 0, 0, 541, 3991, 1, 0, 0, 0, 543, 3993, 1, 0, 0, 0, 545, 4001, 1, 0, 0, 0, 547, 4011, 1, 0, 0, 0, 549, 4015, 1, 0, 0, 0, 551, 4022, 1, 0, 0, 0, 553, 4025, 1, 0, 0, 0, 555, 4030, 1, 0, 0, 0, 557, 4036, 1, 0, 0, 0, 559, 4044, 1, 0, 0, 0, 561, 4053, 1, 0, 0, 0, 563, 4059, 1, 0, 0, 0, 565, 4068, 1, 0, 0, 0, 567, 4076, 1, 0, 0, 0, 569, 4083, 1, 0, 0, 0, 571, 4093, 1, 0, 0, 0, 573, 4098, 1, 0, 0, 0, 575, 4103, 1, 0, 0, 0, 577, 4108, 1, 0, 0, 0, 579, 4117, 1, 0, 0, 0, 581, 4124, 1, 0, 0, 0, 583, 4130, 1, 0, 0, 0, 585, 4140, 1, 0, 0, 0, 587, 4150, 1, 0, 0, 0, 589, 4165, 1, 0, 0, 0, 591, 4174, 1, 0, 0, 0, 593, 4177, 1, 0, 0, 0, 595, 4187, 1, 0, 0, 0, 597, 4197, 1, 0, 0, 0, 599, 4203, 1, 0, 0, 0, 601, 4213, 1, 0, 0, 0, 603, 4219, 1, 0, 0, 0, 605, 4228, 1, 0, 0, 0, 607, 4239, 1, 0, 0, 0, 609, 4249, 1, 0, 0, 0, 611, 4255, 1, 0, 0, 0, 613, 4261, 1, 0, 0, 0, 615, 4267, 1, 0, 0, 0, 617, 4279, 1, 0, 0, 0, 619, 4286, 1, 0, 0, 0, 621, 4295, 1, 0, 0, 0, 623, 4308, 1, 0, 0, 0, 625, 4316, 1, 0, 0, 0, 627, 4320, 1, 0, 0, 0, 629, 4328, 1, 0, 0, 0, 631, 4338, 1, 0, 0, 0, 633, 4351, 1, 0, 0, 0, 635, 4360, 1, 0, 0, 0, 637, 4365, 1, 0, 0, 0, 639, 4373, 1, 0, 0, 0, 641, 4376, 1, 0, 0, 0, 643, 4386, 1, 0, 0, 0, 645, 4394, 1, 0, 0, 0, 647, 4399, 1, 0, 0, 0, 649, 4401, 1, 0, 0, 0, 651, 4405, 1, 0, 0, 0, 653, 4416, 1, 0, 0, 0, 655, 4425, 1, 0, 0, 0, 657, 4431, 1, 0, 0, 0, 659, 4443, 1, 0, 0, 0, 661, 4452, 1, 0, 0, 0, 663, 4458, 1, 0, 0, 0, 665, 4463, 1, 0, 0, 0, 667, 4471, 1, 0, 0, 0, 669, 4479, 1, 0, 0, 0, 671, 4485, 1, 0, 0, 0, 673, 4490, 1, 0, 0, 0, 675, 4497, 1, 0, 0, 0, 677, 4502, 1, 0, 0, 0, 679, 4508, 1, 0, 0, 0, 681, 4513, 1, 0, 0, 0, 683, 4519, 1, 0, 0, 0, 685, 4526, 1, 0, 0, 0, 687, 4529, 1, 0, 0, 0, 689, 4534, 1, 0, 0, 0, 691, 4540, 1, 0, 0, 0, 693, 4550, 1, 0, 0, 0, 695, 4565, 1, 0, 0, 0, 697, 4574, 1, 0, 0, 0, 699, 4582, 1, 0, 0, 0, 701, 4587, 1, 0, 0, 0, 703, 4594, 1, 0, 0, 0, 705, 4600, 1, 0, 0, 0, 707, 4602, 1, 0, 0, 0, 709, 4607, 1, 0, 0, 0, 711, 4611, 1, 0, 0, 0, 713, 4619, 1, 0, 0, 0, 715, 4625, 1, 0, 0, 0, 717, 4638, 1, 0, 0, 0, 719, 4646, 1, 0, 0, 0, 721, 4650, 1, 0, 0, 0, 723, 4659, 1, 0, 0, 0, 725, 4666, 1, 0, 0, 0, 727, 4672, 1, 0, 0, 0, 729, 4687, 1, 0, 0, 0, 731, 4708, 1, 0, 0, 0, 733, 4721, 1, 0, 0, 0, 735, 4728, 1, 0, 0, 0, 737, 4732, 1, 0, 0, 0, 739, 4739, 1, 0, 0, 0, 741, 4748, 1, 0, 0, 0, 743, 4752, 1, 0, 0, 0, 745, 4757, 1, 0, 0, 0, 747, 4766, 1, 0, 0, 0, 749, 4773, 1, 0, 0, 0, 751, 4780, 1, 0, 0, 0, 753, 4786, 1, 0, 0, 0, 755, 4791, 1, 0, 0, 0, 757, 4796, 1, 0, 0, 0, 759, 4805, 1, 0, 0, 0, 761, 4811, 1, 0, 0, 0, 763, 4816, 1, 0, 0, 0, 765, 4822, 1, 0, 0, 0, 767, 4831, 1, 0, 0, 0, 769, 4839, 1, 0, 0, 0, 771, 4845, 1, 0, 0, 0, 773, 4851, 1, 0, 0, 0, 775, 4859, 1, 0, 0, 0, 777, 4863, 1, 0, 0, 0, 779, 4868, 1, 0, 0, 0, 781, 4871, 1, 0, 0, 0, 783, 4882, 1, 0, 0, 0, 785, 4895, 1, 0, 0, 0, 787, 4900, 1, 0, 0, 0, 789, 4910, 1, 0, 0, 0, 791, 4921, 1, 0, 0, 0, 793, 4925, 1, 0, 0, 0, 795, 4933, 1, 0, 0, 0, 797, 4940, 1, 0, 0, 0, 799, 4948, 1, 0, 0, 0, 801, 4955, 1, 0, 0, 0, 803, 4960, 1, 0, 0, 0, 805, 4969, 1, 0, 0, 0, 807, 4976, 1, 0, 0, 0, 809, 4982, 1, 0, 0, 0, 811, 4989, 1, 0, 0, 0, 813, 4997, 1, 0, 0, 0, 815, 5004, 1, 0, 0, 0, 817, 5017, 1, 0, 0, 0, 819, 5024, 1, 0, 0, 0, 821, 5027, 1, 0, 0, 0, 823, 5031, 1, 0, 0, 0, 825, 5038, 1, 0, 0, 0, 827, 5043, 1, 0, 0, 0, 829, 5047, 1, 0, 0, 0, 831, 5050, 1, 0, 0, 0, 833, 5055, 1, 0, 0, 0, 835, 5060, 1, 0, 0, 0, 837, 5070, 1, 0, 0, 0, 839, 5079, 1, 0, 0, 0, 841, 5086, 1, 0, 0, 0, 843, 5094, 1, 0, 0, 0, 845, 5097, 1, 0, 0, 0, 847, 5103, 1, 0, 0, 0, 849, 5112, 1, 0, 0, 0, 851, 5123, 1, 0, 0, 0, 853, 5130, 1, 0, 0, 0, 855, 5134, 1, 0, 0, 0, 857, 5140, 1, 0, 0, 0, 859, 5147, 1, 0, 0, 0, 861, 5152, 1, 0, 0, 0, 863, 5161, 1, 0, 0, 0, 865, 5169, 1, 0, 0, 0, 867, 5180, 1, 0, 0, 0, 869, 5186, 1, 0, 0, 0, 871, 5190, 1, 0, 0, 0, 873, 5200, 1, 0, 0, 0, 875, 5215, 1, 0, 0, 0, 877, 5230, 1, 0, 0, 0, 879, 5257, 1, 0, 0, 0, 881, 5284, 1, 0, 0, 0, 883, 5308, 1, 0, 0, 0, 885, 5334, 1, 0, 0, 0, 887, 5345, 1, 0, 0, 0, 889, 5352, 1, 0, 0, 0, 891, 5360, 1, 0, 0, 0, 893, 5370, 1, 0, 0, 0, 895, 5377, 1, 0, 0, 0, 897, 5386, 1, 0, 0, 0, 899, 5391, 1, 0, 0, 0, 901, 5404, 1, 0, 0, 0, 903, 5420, 1, 0, 0, 0, 905, 5436, 1, 0, 0, 0, 907, 5444, 1, 0, 0, 0, 909, 5450, 1, 0, 0, 0, 911, 5456, 1, 0, 0, 0, 913, 5460, 1, 0, 0, 0, 915, 5469, 1, 0, 0, 0, 917, 5477, 1, 0, 0, 0, 919, 5483, 1, 0, 0, 0, 921, 5493, 1, 0, 0, 0, 923, 5503, 1, 0, 0, 0, 925, 5510, 1, 0, 0, 0, 927, 5519, 1, 0, 0, 0, 929, 5527, 1, 0, 0, 0, 931, 5536, 1, 0, 0, 0, 933, 5545, 1, 0, 0, 0, 935, 5553, 1, 0, 0, 0, 937, 5559, 1, 0, 0, 0, 939, 5570, 1, 0, 0, 0, 941, 5581, 1, 0, 0, 0, 943, 5591, 1, 0, 0, 0, 945, 5598, 1, 0, 0, 0, 947, 5610, 1, 0, 0, 0, 949, 5616, 1, 0, 0, 0, 951, 5622, 1, 0, 0, 0, 953, 5627, 1, 0, 0, 0, 955, 5632, 1, 0, 0, 0, 957, 5638, 1, 0, 0, 0, 959, 5643, 1, 0, 0, 0, 961, 5652, 1, 0, 0, 0, 963, 5660, 1, 0, 0, 0, 965, 5670, 1, 0, 0, 0, 967, 5674, 1, 0, 0, 0, 969, 5685, 1, 0, 0, 0, 971, 5697, 1, 0, 0, 0, 973, 5705, 1, 0, 0, 0, 975, 5715, 1, 0, 0, 0, 977, 5725, 1, 0, 0, 0, 979, 5736, 1, 0, 0, 0, 981, 5751, 1, 0, 0, 0, 983, 5759, 1, 0, 0, 0, 985, 5770, 1, 0, 0, 0, 987, 5779, 1, 0, 0, 0, 989, 5788, 1, 0, 0, 0, 991, 5797, 1, 0, 0, 0, 993, 5805, 1, 0, 0, 0, 995, 5814, 1, 0, 0, 0, 997, 5822, 1, 0, 0, 0, 999, 5829, 1, 0, 0, 0, 1001, 5840, 1, 0, 0, 0, 1003, 5848, 1, 0, 0, 0, 1005, 5856, 1, 0, 0, 0, 1007, 5862, 1, 0, 0, 0, 1009, 5870, 1, 0, 0, 0, 1011, 5879, 1, 0, 0, 0, 1013, 5886, 1, 0, 0, 0, 1015, 5893, 1, 0, 0, 0, 1017, 5914, 1, 0, 0, 0, 1019, 5930, 1, 0, 0, 0, 1021, 5952, 1, 0, 0, 0, 1023, 5970, 1, 0, 0, 0, 1025, 5980, 1, 0, 0, 0, 1027, 5988, 1, 0, 0, 0, 1029, 5995, 1, 0, 0, 0, 1031, 6001, 1, 0, 0, 0, 1033, 6006, 1, 0, 0, 0, 1035, 6015, 1, 0, 0, 0, 1037, 6022, 1, 0, 0, 0, 1039, 6030, 1, 0, 0, 0, 1041, 6046, 1, 0, 0, 0, 1043, 6059, 1, 0, 0, 0, 1045, 6074, 1, 0, 0, 0, 1047, 6078, 1, 0, 0, 0, 1049, 6088, 1, 0, 0, 0, 1051, 6099, 1, 0, 0, 0, 1053, 6104, 1, 0, 0, 0, 1055, 6109, 1, 0, 0, 0, 1057, 6119, 1, 0, 0, 0, 1059, 6125, 1, 0, 0, 0, 1061, 6132, 1, 0, 0, 0, 1063, 6144, 1, 0, 0, 0, 1065, 6150, 1, 0, 0, 0, 1067, 6164, 1, 0, 0, 0, 1069, 6175, 1, 0, 0, 0, 1071, 6188, 1, 0, 0, 0, 1073, 6195, 1, 0, 0, 0, 1075, 6202, 1, 0, 0, 0, 1077, 6209, 1, 0, 0, 0, 1079, 6217, 1, 0, 0, 0, 1081, 6226, 1, 0, 0, 0, 1083, 6233, 1, 0, 0, 0, 1085, 6238, 1, 0, 0, 0, 1087, 6248, 1, 0, 0, 0, 1089, 6257, 1, 0, 0, 0, 1091, 6267, 1, 0, 0, 0, 1093, 6280, 1, 0, 0, 0, 1095, 6292, 1, 0, 0, 0, 1097, 6300, 1, 0, 0, 0, 1099, 6313, 1, 0, 0, 0, 1101, 6317, 1, 0, 0, 0, 1103, 6323, 1, 0, 0, 0, 1105, 6328, 1, 0, 0, 0, 1107, 6334, 1, 0, 0, 0, 1109, 6339, 1, 0, 0, 0, 1111, 6347, 1, 0, 0, 0, 1113, 6354, 1, 0, 0, 0, 1115, 6359, 1, 0, 0, 0, 1117, 6364, 1, 0, 0, 0, 1119, 6373, 1, 0, 0, 0, 1121, 6382, 1, 0, 0, 0, 1123, 6387, 1, 0, 0, 0, 1125, 6394, 1, 0, 0, 0, 1127, 6400, 1, 0, 0, 0, 1129, 6409, 1, 0, 0, 0, 1131, 6423, 1, 0, 0, 0, 1133, 6436, 1, 0, 0, 0, 1135, 6440, 1, 0, 0, 0, 1137, 6448, 1, 0, 0, 0, 1139, 6457, 1, 0, 0, 0, 1141, 6470, 1, 0, 0, 0, 1143, 6479, 1, 0, 0, 0, 1145, 6490, 1, 0, 0, 0, 1147, 6495, 1, 0, 0, 0, 1149, 6502, 1, 0, 0, 0, 1151, 6508, 1, 0, 0, 0, 1153, 6514, 1, 0, 0, 0, 1155, 6524, 1, 0, 0, 0, 1157, 6531, 1, 0, 0, 0, 1159, 6542, 1, 0, 0, 0, 1161, 6553, 1, 0, 0, 0, 1163, 6565, 1, 0, 0, 0, 1165, 6571, 1, 0, 0, 0, 1167, 6578, 1, 0, 0, 0, 1169, 6586, 1, 0, 0, 0, 1171, 6593, 1, 0, 0, 0, 1173, 6603, 1, 0, 0, 0, 1175, 6609, 1, 0, 0, 0, 1177, 6625, 1, 0, 0, 0, 1179, 6633, 1, 0, 0, 0, 1181, 6645, 1, 0, 0, 0, 1183, 6658, 1, 0, 0, 0, 1185, 6668, 1, 0, 0, 0, 1187, 6672, 1, 0, 0, 0, 1189, 6682, 1, 0, 0, 0, 1191, 6688, 1, 0, 0, 0, 1193, 6695, 1, 0, 0, 0, 1195, 6707, 1, 0, 0, 0, 1197, 6713, 1, 0, 0, 0, 1199, 6724, 1, 0, 0, 0, 1201, 6736, 1, 0, 0, 0, 1203, 6747, 1, 0, 0, 0, 1205, 6752, 1, 0, 0, 0, 1207, 6761, 1, 0, 0, 0, 1209, 6771, 1, 0, 0, 0, 1211, 6781, 1, 0, 0, 0, 1213, 6786, 1, 0, 0, 0, 1215, 6791, 1, 0, 0, 0, 1217, 6796, 1, 0, 0, 0, 1219, 6801, 1, 0, 0, 0, 1221, 6811, 1, 0, 0, 0, 1223, 6825, 1, 0, 0, 0, 1225, 6841, 1, 0, 0, 0, 1227, 6848, 1, 0, 0, 0, 1229, 6851, 1, 0, 0, 0, 1231, 6857, 1, 0, 0, 0, 1233, 6873, 1, 0, 0, 0, 1235, 6882, 1, 0, 0, 0, 1237, 6894, 1, 0, 0, 0, 1239, 6913, 1, 0, 0, 0, 1241, 6936, 1, 0, 0, 0, 1243, 6961, 1, 0, 0, 0, 1245, 6971, 1, 0, 0, 0, 1247, 6982, 1, 0, 0, 0, 1249, 6992, 1, 0, 0, 0, 1251, 7004, 1, 0, 0, 0, 1253, 7010, 1, 0, 0, 0, 1255, 7018, 1, 0, 0, 0, 1257, 7034, 1, 0, 0, 0, 1259, 7047, 1, 0, 0, 0, 1261, 7062, 1, 0, 0, 0, 1263, 7067, 1, 0, 0, 0, 1265, 7072, 1, 0, 0, 0, 1267, 7081, 1, 0, 0, 0, 1269, 7089, 1, 0, 0, 0, 1271, 7094, 1, 0, 0, 0, 1273, 7102, 1, 0, 0, 0, 1275, 7112, 1, 0, 0, 0, 1277, 7124, 1, 0, 0, 0, 1279, 7130, 1, 0, 0, 0, 1281, 7142, 1, 0, 0, 0, 1283, 7148, 1, 0, 0, 0, 1285, 7155, 1, 0, 0, 0, 1287, 7163, 1, 0, 0, 0, 1289, 7172, 1, 0, 0, 0, 1291, 7180, 1, 0, 0, 0, 1293, 7187, 1, 0, 0, 0, 1295, 7193, 1, 0, 0, 0, 1297, 7200, 1, 0, 0, 0, 1299, 7206, 1, 0, 0, 0, 1301, 7212, 1, 0, 0, 0, 1303, 7217, 1, 0, 0, 0, 1305, 7243, 1, 0, 0, 0, 1307, 7266, 1, 0, 0, 0, 1309, 7289, 1, 0, 0, 0, 1311, 7314, 1, 0, 0, 0, 1313, 7320, 1, 0, 0, 0, 1315, 7327, 1, 0, 0, 0, 1317, 7333, 1, 0, 0, 0, 1319, 7342, 1, 0, 0, 0, 1321, 7352, 1, 0, 0, 0, 1323, 7358, 1, 0, 0, 0, 1325, 7365, 1, 0, 0, 0, 1327, 7373, 1, 0, 0, 0, 1329, 7382, 1, 0, 0, 0, 1331, 7390, 1, 0, 0, 0, 1333, 7399, 1, 0, 0, 0, 1335, 7408, 1, 0, 0, 0, 1337, 7416, 1, 0, 0, 0, 1339, 7424, 1, 0, 0, 0, 1341, 7429, 1, 0, 0, 0, 1343, 7438, 1, 0, 0, 0, 1345, 7443, 1, 0, 0, 0, 1347, 7452, 1, 0, 0, 0, 1349, 7458, 1, 0, 0, 0, 1351, 7471, 1, 0, 0, 0, 1353, 7478, 1, 0, 0, 0, 1355, 7483, 1, 0, 0, 0, 1357, 7490, 1, 0, 0, 0, 1359, 7498, 1, 0, 0, 0, 1361, 7503, 1, 0, 0, 0, 1363, 7509, 1, 0, 0, 0, 1365, 7514, 1, 0, 0, 0, 1367, 7519, 1, 0, 0, 0, 1369, 7523, 1, 0, 0, 0, 1371, 7528, 1, 0, 0, 0, 1373, 7538, 1, 0, 0, 0, 1375, 7550, 1, 0, 0, 0, 1377, 7561, 1, 0, 0, 0, 1379, 7574, 1, 0, 0, 0, 1381, 7582, 1, 0, 0, 0, 1383, 7592, 1, 0, 0, 0, 1385, 7598, 1, 0, 0, 0, 1387, 7606, 1, 0, 0, 0, 1389, 7618, 1, 0, 0, 0, 1391, 7632, 1, 0, 0, 0, 1393, 7642, 1, 0, 0, 0, 1395, 7654, 1, 0, 0, 0, 1397, 7660, 1, 0, 0, 0, 1399, 7666, 1, 0, 0, 0, 1401, 7673, 1, 0, 0, 0, 1403, 7683, 1, 0, 0, 0, 1405, 7699, 1, 0, 0, 0, 1407, 7711, 1, 0, 0, 0, 1409, 7722, 1, 0, 0, 0, 1411, 7735, 1, 0, 0, 0, 1413, 7744, 1, 0, 0, 0, 1415, 7751, 1, 0, 0, 0, 1417, 7760, 1, 0, 0, 0, 1419, 7767, 1, 0, 0, 0, 1421, 7775, 1, 0, 0, 0, 1423, 7786, 1, 0, 0, 0, 1425, 7803, 1, 0, 0, 0, 1427, 7813, 1, 0, 0, 0, 1429, 7820, 1, 0, 0, 0, 1431, 7829, 1, 0, 0, 0, 1433, 7842, 1, 0, 0, 0, 1435, 7847, 1, 0, 0, 0, 1437, 7858, 1, 0, 0, 0, 1439, 7865, 1, 0, 0, 0, 1441, 7874, 1, 0, 0, 0, 1443, 7877, 1, 0, 0, 0, 1445, 7884, 1, 0, 0, 0, 1447, 7895, 1, 0, 0, 0, 1449, 7904, 1, 0, 0, 0, 1451, 7913, 1, 0, 0, 0, 1453, 7921, 1, 0, 0, 0, 1455, 7939, 1, 0, 0, 0, 1457, 7951, 1, 0, 0, 0, 1459, 7957, 1, 0, 0, 0, 1461, 7965, 1, 0, 0, 0, 1463, 7972, 1, 0, 0, 0, 1465, 7978, 1, 0, 0, 0, 1467, 7983, 1, 0, 0, 0, 1469, 7988, 1, 0, 0, 0, 1471, 7995, 1, 0, 0, 0, 1473, 7999, 1, 0, 0, 0, 1475, 8004, 1, 0, 0, 0, 1477, 8017, 1, 0, 0, 0, 1479, 8024, 1, 0, 0, 0, 1481, 8037, 1, 0, 0, 0, 1483, 8045, 1, 0, 0, 0, 1485, 8054, 1, 0, 0, 0, 1487, 8065, 1, 0, 0, 0, 1489, 8073, 1, 0, 0, 0, 1491, 8080, 1, 0, 0, 0, 1493, 8087, 1, 0, 0, 0, 1495, 8094, 1, 0, 0, 0, 1497, 8101, 1, 0, 0, 0, 1499, 8107, 1, 0, 0, 0, 1501, 8115, 1, 0, 0, 0, 1503, 8125, 1, 0, 0, 0, 1505, 8137, 1, 0, 0, 0, 1507, 8142, 1, 0, 0, 0, 1509, 8146, 1, 0, 0, 0, 1511, 8152, 1, 0, 0, 0, 1513, 8170, 1, 0, 0, 0, 1515, 8175, 1, 0, 0, 0, 1517, 8182, 1, 0, 0, 0, 1519, 8189, 1, 0, 0, 0, 1521, 8196, 1, 0, 0, 0, 1523, 8201, 1, 0, 0, 0, 1525, 8206, 1, 0, 0, 0, 1527, 8211, 1, 0, 0, 0, 1529, 8216, 1, 0, 0, 0, 1531, 8221, 1, 0, 0, 0, 1533, 8227, 1, 0, 0, 0, 1535, 8232, 1, 0, 0, 0, 1537, 8237, 1, 0, 0, 0, 1539, 8245, 1, 0, 0, 0, 1541, 8254, 1, 0, 0, 0, 1543, 8260, 1, 0, 0, 0, 1545, 8267, 1, 0, 0, 0, 1547, 8273, 1, 0, 0, 0, 1549, 8281, 1, 0, 0, 0, 1551, 8289, 1, 0, 0, 0, 1553, 8296, 1, 0, 0, 0, 1555, 8304, 1, 0, 0, 0, 1557, 8312, 1, 0, 0, 0, 1559, 8320, 1, 0, 0, 0, 1561, 8332, 1, 0, 0, 0, 1563, 8339, 1, 0, 0, 0, 1565, 8344, 1, 0, 0, 0, 1567, 8356, 1, 0, 0, 0, 1569, 8363, 1, 0, 0, 0, 1571, 8371, 1, 0, 0, 0, 1573, 8380, 1, 0, 0, 0, 1575, 8394, 1, 0, 0, 0, 1577, 8399, 1, 0, 0, 0, 1579, 8406, 1, 0, 0, 0, 1581, 8410, 1, 0, 0, 0, 1583, 8412, 1, 0, 0, 0, 1585, 8414, 1, 0, 0, 0, 1587, 8417, 1, 0, 0, 0, 1589, 8419, 1, 0, 0, 0, 1591, 8422, 1, 0, 0, 0, 1593, 8424, 1, 0, 0, 0, 1595, 8426, 1, 0, 0, 0, 1597, 8428, 1, 0, 0, 0, 1599, 8430, 1, 0, 0, 0, 1601, 8432, 1, 0, 0, 0, 1603, 8442, 1, 0, 0, 0, 1605, 8446, 1, 0, 0, 0, 1607, 8474, 1, 0, 0, 0, 1609, 8489, 1, 0, 0, 0, 1611, 8492, 1, 0, 0, 0, 1613, 8494, 1, 0, 0, 0, 1615, 8496, 1, 0, 0, 0, 1617, 8498, 1, 0, 0, 0, 1619, 8505, 1, 0, 0, 0, 1621, 8511, 1, 0, 0, 0, 1623, 8518, 1, 0, 0, 0, 1625, 8520, 1, 0, 0, 0, 1627, 8523, 1, 0, 0, 0, 1629, 8526, 1, 0, 0, 0, 1631, 8529, 1, 0, 0, 0, 1633, 8532, 1, 0, 0, 0, 1635, 8534, 1, 0, 0, 0, 1637, 8536, 1, 0, 0, 0, 1639, 8539, 1, 0, 0, 0, 1641, 8542, 1, 0, 0, 0, 1643, 8544, 1, 0, 0, 0, 1645, 8546, 1, 0, 0, 0, 1647, 8549, 1, 0, 0, 0, 1649, 8551, 1, 0, 0, 0, 1651, 8554, 1, 0, 0, 0, 1653, 8557, 1, 0, 0, 0, 1655, 8559, 1, 0, 0, 0, 1657, 8562, 1, 0, 0, 0, 1659, 8565, 1, 0, 0, 0, 1661, 8569, 1, 0, 0, 0, 1663, 8572, 1, 0, 0, 0, 1665, 8575, 1, 0, 0, 0, 1667, 8579, 1, 0, 0, 0, 1669, 8583, 1, 0, 0, 0, 1671, 8585, 1, 0, 0, 0, 1673, 8588, 1, 0, 0, 0, 1675, 8591, 1, 0, 0, 0, 1677, 8594, 1, 0, 0, 0, 1679, 8597, 1, 0, 0, 0, 1681, 8601, 1, 0, 0, 0, 1683, 8604, 1, 0, 0, 0, 1685, 8608, 1, 0, 0, 0, 1687, 8612, 1, 0, 0, 0, 1689, 8614, 1, 0, 0, 0, 1691, 8616, 1, 0, 0, 0, 1693, 8618, 1, 0, 0, 0, 1695, 8621, 1, 0, 0, 0, 1697, 8625, 1, 0, 0, 0, 1699, 8628, 1, 0, 0, 0, 1701, 8630, 1, 0, 0, 0, 1703, 8632, 1, 0, 0, 0, 1705, 8635, 1, 0, 0, 0, 1707, 8638, 1, 0, 0, 0, 1709, 8641, 1, 0, 0, 0, 1711, 8644, 1, 0, 0, 0, 1713, 8646, 1, 0, 0, 0, 1715, 8648, 1, 0, 0, 0, 1717, 8651, 1, 0, 0, 0, 1719, 8656, 1, 0, 0, 0, 1721, 8660, 1, 0, 0, 0, 1723, 8665, 1, 0, 0, 0, 1725, 8669, 1, 0, 0, 0, 1727, 8672, 1, 0, 0, 0, 1729, 8675, 1, 0, 0, 0, 1731, 1733, 7, 0, 0, 0, 1732, 1731, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1732, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1736, 1, 0, 0, 0, 1736, 1737, 6, 0, 0, 0, 1737, 2, 1, 0, 0, 0, 1738, 1739, 5, 47, 0, 0, 1739, 1740, 5, 42, 0, 0, 1740, 1744, 1, 0, 0, 0, 1741, 1743, 9, 0, 0, 0, 1742, 1741, 1, 0, 0, 0, 1743, 1746, 1, 0, 0, 0, 1744, 1745, 1, 0, 0, 0, 1744, 1742, 1, 0, 0, 0, 1745, 1747, 1, 0, 0, 0, 1746, 1744, 1, 0, 0, 0, 1747, 1748, 5, 42, 0, 0, 1748, 1749, 5, 47, 0, 0, 1749, 1750, 1, 0, 0, 0, 1750, 1751, 6, 1, 1, 0, 1751, 4, 1, 0, 0, 0, 1752, 1753, 5, 45, 0, 0, 1753, 1754, 5, 45, 0, 0, 1754, 1758, 1, 0, 0, 0, 1755, 1757, 9, 0, 0, 0, 1756, 1755, 1, 0, 0, 0, 1757, 1760, 1, 0, 0, 0, 1758, 1759, 1, 0, 0, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1761, 1, 0, 0, 0, 1760, 1758, 1, 0, 0, 0, 1761, 1762, 5, 10, 0, 0, 1762, 1763, 1, 0, 0, 0, 1763, 1764, 6, 2, 1, 0, 1764, 6, 1, 0, 0, 0, 1765, 1766, 7, 1, 0, 0, 1766, 8, 1, 0, 0, 0, 1767, 1768, 7, 2, 0, 0, 1768, 10, 1, 0, 0, 0, 1769, 1770, 7, 3, 0, 0, 1770, 12, 1, 0, 0, 0, 1771, 1772, 7, 4, 0, 0, 1772, 14, 1, 0, 0, 0, 1773, 1774, 7, 5, 0, 0, 1774, 16, 1, 0, 0, 0, 1775, 1776, 7, 6, 0, 0, 1776, 18, 1, 0, 0, 0, 1777, 1778, 7, 7, 0, 0, 1778, 20, 1, 0, 0, 0, 1779, 1780, 7, 8, 0, 0, 1780, 22, 1, 0, 0, 0, 1781, 1782, 7, 9, 0, 0, 1782, 24, 1, 0, 0, 0, 1783, 1784, 7, 10, 0, 0, 1784, 26, 1, 0, 0, 0, 1785, 1786, 7, 11, 0, 0, 1786, 28, 1, 0, 0, 0, 1787, 1788, 7, 12, 0, 0, 1788, 30, 1, 0, 0, 0, 1789, 1790, 7, 13, 0, 0, 1790, 32, 1, 0, 0, 0, 1791, 1792, 7, 14, 0, 0, 1792, 34, 1, 0, 0, 0, 1793, 1794, 7, 15, 0, 0, 1794, 36, 1, 0, 0, 0, 1795, 1796, 7, 16, 0, 0, 1796, 38, 1, 0, 0, 0, 1797, 1798, 7, 17, 0, 0, 1798, 40, 1, 0, 0, 0, 1799, 1800, 7, 18, 0, 0, 1800, 42, 1, 0, 0, 0, 1801, 1802, 7, 19, 0, 0, 1802, 44, 1, 0, 0, 0, 1803, 1804, 7, 20, 0, 0, 1804, 46, 1, 0, 0, 0, 1805, 1806, 7, 21, 0, 0, 1806, 48, 1, 0, 0, 0, 1807, 1808, 7, 22, 0, 0, 1808, 50, 1, 0, 0, 0, 1809, 1810, 7, 23, 0, 0, 1810, 52, 1, 0, 0, 0, 1811, 1812, 7, 24, 0, 0, 1812, 54, 1, 0, 0, 0, 1813, 1814, 7, 25, 0, 0, 1814, 56, 1, 0, 0, 0, 1815, 1816, 7, 26, 0, 0, 1816, 58, 1, 0, 0, 0, 1817, 1818, 7, 27, 0, 0, 1818, 60, 1, 0, 0, 0, 1819, 1820, 7, 28, 0, 0, 1820, 62, 1, 0, 0, 0, 1821, 1829, 5, 34, 0, 0, 1822, 1823, 5, 92, 0, 0, 1823, 1828, 9, 0, 0, 0, 1824, 1825, 5, 34, 0, 0, 1825, 1828, 5, 34, 0, 0, 1826, 1828, 8, 29, 0, 0, 1827, 1822, 1, 0, 0, 0, 1827, 1824, 1, 0, 0, 0, 1827, 1826, 1, 0, 0, 0, 1828, 1831, 1, 0, 0, 0, 1829, 1827, 1, 0, 0, 0, 1829, 1830, 1, 0, 0, 0, 1830, 1832, 1, 0, 0, 0, 1831, 1829, 1, 0, 0, 0, 1832, 1833, 5, 34, 0, 0, 1833, 64, 1, 0, 0, 0, 1834, 1842, 5, 39, 0, 0, 1835, 1836, 5, 92, 0, 0, 1836, 1841, 9, 0, 0, 0, 1837, 1838, 5, 39, 0, 0, 1838, 1841, 5, 39, 0, 0, 1839, 1841, 8, 30, 0, 0, 1840, 1835, 1, 0, 0, 0, 1840, 1837, 1, 0, 0, 0, 1840, 1839, 1, 0, 0, 0, 1841, 1844, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1845, 1, 0, 0, 0, 1844, 1842, 1, 0, 0, 0, 1845, 1846, 5, 39, 0, 0, 1846, 66, 1, 0, 0, 0, 1847, 1855, 5, 96, 0, 0, 1848, 1849, 5, 92, 0, 0, 1849, 1854, 9, 0, 0, 0, 1850, 1851, 5, 96, 0, 0, 1851, 1854, 5, 96, 0, 0, 1852, 1854, 8, 31, 0, 0, 1853, 1848, 1, 0, 0, 0, 1853, 1850, 1, 0, 0, 0, 1853, 1852, 1, 0, 0, 0, 1854, 1857, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1855, 1856, 1, 0, 0, 0, 1856, 1858, 1, 0, 0, 0, 1857, 1855, 1, 0, 0, 0, 1858, 1859, 5, 96, 0, 0, 1859, 68, 1, 0, 0, 0, 1860, 1861, 3, 7, 3, 0, 1861, 70, 1, 0, 0, 0, 1862, 1863, 3, 7, 3, 0, 1863, 1864, 3, 9, 4, 0, 1864, 1865, 3, 35, 17, 0, 1865, 1866, 3, 41, 20, 0, 1866, 1867, 3, 45, 22, 0, 1867, 72, 1, 0, 0, 0, 1868, 1869, 3, 7, 3, 0, 1869, 1870, 3, 9, 4, 0, 1870, 1871, 3, 43, 21, 0, 1871, 74, 1, 0, 0, 0, 1872, 1873, 3, 7, 3, 0, 1873, 1874, 3, 9, 4, 0, 1874, 1875, 3, 43, 21, 0, 1875, 1876, 3, 35, 17, 0, 1876, 1877, 3, 29, 14, 0, 1877, 1878, 3, 47, 23, 0, 1878, 1879, 3, 45, 22, 0, 1879, 1880, 3, 15, 7, 0, 1880, 76, 1, 0, 0, 0, 1881, 1882, 3, 7, 3, 0, 1882, 1883, 3, 11, 5, 0, 1883, 1884, 3, 11, 5, 0, 1884, 1885, 3, 15, 7, 0, 1885, 1886, 3, 43, 21, 0, 1886, 1887, 3, 43, 21, 0, 1887, 78, 1, 0, 0, 0, 1888, 1889, 3, 7, 3, 0, 1889, 1890, 3, 11, 5, 0, 1890, 1891, 3, 45, 22, 0, 1891, 1892, 3, 23, 11, 0, 1892, 1893, 3, 35, 17, 0, 1893, 1894, 3, 33, 16, 0, 1894, 80, 1, 0, 0, 0, 1895, 1896, 3, 7, 3, 0, 1896, 1897, 3, 13, 6, 0, 1897, 1898, 3, 7, 3, 0, 1898, 82, 1, 0, 0, 0, 1899, 1900, 3, 7, 3, 0, 1900, 1901, 3, 13, 6, 0, 1901, 1902, 3, 13, 6, 0, 1902, 84, 1, 0, 0, 0, 1903, 1904, 3, 7, 3, 0, 1904, 1905, 3, 13, 6, 0, 1905, 1906, 3, 31, 15, 0, 1906, 1907, 3, 23, 11, 0, 1907, 1908, 3, 33, 16, 0, 1908, 86, 1, 0, 0, 0, 1909, 1910, 3, 7, 3, 0, 1910, 1911, 3, 17, 8, 0, 1911, 1912, 3, 45, 22, 0, 1912, 1913, 3, 15, 7, 0, 1913, 1914, 3, 41, 20, 0, 1914, 88, 1, 0, 0, 0, 1915, 1916, 3, 7, 3, 0, 1916, 1917, 3, 19, 9, 0, 1917, 1918, 3, 19, 9, 0, 1918, 1919, 3, 41, 20, 0, 1919, 1920, 3, 15, 7, 0, 1920, 1921, 3, 19, 9, 0, 1921, 1922, 3, 7, 3, 0, 1922, 1923, 3, 45, 22, 0, 1923, 1924, 3, 15, 7, 0, 1924, 90, 1, 0, 0, 0, 1925, 1926, 3, 7, 3, 0, 1926, 1927, 3, 29, 14, 0, 1927, 1928, 3, 23, 11, 0, 1928, 1929, 3, 7, 3, 0, 1929, 1930, 3, 43, 21, 0, 1930, 92, 1, 0, 0, 0, 1931, 1932, 3, 7, 3, 0, 1932, 1933, 3, 29, 14, 0, 1933, 1934, 3, 29, 14, 0, 1934, 94, 1, 0, 0, 0, 1935, 1936, 3, 7, 3, 0, 1936, 1937, 3, 29, 14, 0, 1937, 1938, 3, 29, 14, 0, 1938, 1939, 3, 35, 17, 0, 1939, 1940, 3, 11, 5, 0, 1940, 1941, 3, 7, 3, 0, 1941, 1942, 3, 45, 22, 0, 1942, 1943, 3, 15, 7, 0, 1943, 96, 1, 0, 0, 0, 1944, 1945, 3, 7, 3, 0, 1945, 1946, 3, 29, 14, 0, 1946, 1947, 3, 43, 21, 0, 1947, 1948, 3, 35, 17, 0, 1948, 98, 1, 0, 0, 0, 1949, 1950, 3, 7, 3, 0, 1950, 1951, 3, 29, 14, 0, 1951, 1952, 3, 45, 22, 0, 1952, 1953, 3, 15, 7, 0, 1953, 1954, 3, 41, 20, 0, 1954, 100, 1, 0, 0, 0, 1955, 1956, 3, 7, 3, 0, 1956, 1957, 3, 29, 14, 0, 1957, 1958, 3, 51, 25, 0, 1958, 1959, 3, 7, 3, 0, 1959, 1960, 3, 55, 27, 0, 1960, 1961, 3, 43, 21, 0, 1961, 102, 1, 0, 0, 0, 1962, 1963, 3, 7, 3, 0, 1963, 1964, 3, 33, 16, 0, 1964, 1965, 3, 7, 3, 0, 1965, 1966, 3, 29, 14, 0, 1966, 1967, 3, 55, 27, 0, 1967, 1968, 3, 43, 21, 0, 1968, 1969, 3, 15, 7, 0, 1969, 104, 1, 0, 0, 0, 1970, 1971, 3, 7, 3, 0, 1971, 1972, 3, 33, 16, 0, 1972, 1973, 3, 7, 3, 0, 1973, 1974, 3, 29, 14, 0, 1974, 1975, 3, 55, 27, 0, 1975, 1976, 3, 57, 28, 0, 1976, 1977, 3, 15, 7, 0, 1977, 106, 1, 0, 0, 0, 1978, 1979, 3, 7, 3, 0, 1979, 1980, 3, 33, 16, 0, 1980, 1981, 3, 13, 6, 0, 1981, 108, 1, 0, 0, 0, 1982, 1983, 3, 7, 3, 0, 1983, 1984, 3, 33, 16, 0, 1984, 1985, 3, 55, 27, 0, 1985, 110, 1, 0, 0, 0, 1986, 1987, 3, 7, 3, 0, 1987, 1988, 3, 41, 20, 0, 1988, 1989, 3, 15, 7, 0, 1989, 112, 1, 0, 0, 0, 1990, 1991, 3, 7, 3, 0, 1991, 1992, 3, 41, 20, 0, 1992, 1993, 3, 41, 20, 0, 1993, 1994, 3, 7, 3, 0, 1994, 1995, 3, 55, 27, 0, 1995, 114, 1, 0, 0, 0, 1996, 1997, 3, 7, 3, 0, 1997, 1998, 3, 43, 21, 0, 1998, 116, 1, 0, 0, 0, 1999, 2000, 3, 7, 3, 0, 2000, 2001, 3, 43, 21, 0, 2001, 2002, 3, 11, 5, 0, 2002, 118, 1, 0, 0, 0, 2003, 2004, 3, 7, 3, 0, 2004, 2005, 3, 43, 21, 0, 2005, 2006, 3, 15, 7, 0, 2006, 2007, 3, 33, 16, 0, 2007, 2008, 3, 43, 21, 0, 2008, 2009, 3, 23, 11, 0, 2009, 2010, 3, 45, 22, 0, 2010, 2011, 3, 23, 11, 0, 2011, 2012, 3, 49, 24, 0, 2012, 2013, 3, 15, 7, 0, 2013, 120, 1, 0, 0, 0, 2014, 2015, 3, 7, 3, 0, 2015, 2016, 3, 43, 21, 0, 2016, 2017, 3, 43, 21, 0, 2017, 2018, 3, 15, 7, 0, 2018, 2019, 3, 41, 20, 0, 2019, 2020, 3, 45, 22, 0, 2020, 2021, 3, 23, 11, 0, 2021, 2022, 3, 35, 17, 0, 2022, 2023, 3, 33, 16, 0, 2023, 122, 1, 0, 0, 0, 2024, 2025, 3, 7, 3, 0, 2025, 2026, 3, 43, 21, 0, 2026, 2027, 3, 43, 21, 0, 2027, 2028, 3, 23, 11, 0, 2028, 2029, 3, 19, 9, 0, 2029, 2030, 3, 33, 16, 0, 2030, 2031, 3, 31, 15, 0, 2031, 2032, 3, 15, 7, 0, 2032, 2033, 3, 33, 16, 0, 2033, 2034, 3, 45, 22, 0, 2034, 124, 1, 0, 0, 0, 2035, 2036, 3, 7, 3, 0, 2036, 2037, 3, 43, 21, 0, 2037, 2038, 3, 55, 27, 0, 2038, 2039, 3, 31, 15, 0, 2039, 2040, 3, 31, 15, 0, 2040, 2041, 3, 15, 7, 0, 2041, 2042, 3, 45, 22, 0, 2042, 2043, 3, 41, 20, 0, 2043, 2044, 3, 23, 11, 0, 2044, 2045, 3, 11, 5, 0, 2045, 126, 1, 0, 0, 0, 2046, 2047, 3, 7, 3, 0, 2047, 2048, 3, 45, 22, 0, 2048, 128, 1, 0, 0, 0, 2049, 2050, 3, 7, 3, 0, 2050, 2051, 3, 45, 22, 0, 2051, 2052, 3, 35, 17, 0, 2052, 2053, 3, 31, 15, 0, 2053, 2054, 3, 23, 11, 0, 2054, 2055, 3, 11, 5, 0, 2055, 130, 1, 0, 0, 0, 2056, 2057, 3, 7, 3, 0, 2057, 2058, 3, 45, 22, 0, 2058, 2059, 3, 45, 22, 0, 2059, 2060, 3, 41, 20, 0, 2060, 2061, 3, 23, 11, 0, 2061, 2062, 3, 9, 4, 0, 2062, 2063, 3, 47, 23, 0, 2063, 2064, 3, 45, 22, 0, 2064, 2065, 3, 15, 7, 0, 2065, 132, 1, 0, 0, 0, 2066, 2067, 3, 7, 3, 0, 2067, 2068, 3, 45, 22, 0, 2068, 2069, 3, 45, 22, 0, 2069, 2070, 3, 41, 20, 0, 2070, 2071, 3, 23, 11, 0, 2071, 2072, 3, 9, 4, 0, 2072, 2073, 3, 47, 23, 0, 2073, 2074, 3, 45, 22, 0, 2074, 2075, 3, 15, 7, 0, 2075, 2076, 3, 43, 21, 0, 2076, 134, 1, 0, 0, 0, 2077, 2078, 3, 7, 3, 0, 2078, 2079, 3, 47, 23, 0, 2079, 2080, 3, 45, 22, 0, 2080, 2081, 3, 21, 10, 0, 2081, 2082, 3, 35, 17, 0, 2082, 2083, 3, 41, 20, 0, 2083, 2084, 3, 23, 11, 0, 2084, 2085, 3, 57, 28, 0, 2085, 2086, 3, 7, 3, 0, 2086, 2087, 3, 45, 22, 0, 2087, 2088, 3, 23, 11, 0, 2088, 2089, 3, 35, 17, 0, 2089, 2090, 3, 33, 16, 0, 2090, 136, 1, 0, 0, 0, 2091, 2092, 3, 7, 3, 0, 2092, 2093, 3, 49, 24, 0, 2093, 2094, 3, 19, 9, 0, 2094, 138, 1, 0, 0, 0, 2095, 2096, 3, 9, 4, 0, 2096, 2097, 3, 7, 3, 0, 2097, 2098, 3, 11, 5, 0, 2098, 2099, 3, 27, 13, 0, 2099, 2100, 3, 51, 25, 0, 2100, 2101, 3, 7, 3, 0, 2101, 2102, 3, 41, 20, 0, 2102, 2103, 3, 13, 6, 0, 2103, 140, 1, 0, 0, 0, 2104, 2105, 3, 9, 4, 0, 2105, 2106, 3, 15, 7, 0, 2106, 2107, 3, 17, 8, 0, 2107, 2108, 3, 35, 17, 0, 2108, 2109, 3, 41, 20, 0, 2109, 2110, 3, 15, 7, 0, 2110, 142, 1, 0, 0, 0, 2111, 2112, 3, 9, 4, 0, 2112, 2113, 3, 15, 7, 0, 2113, 2114, 3, 19, 9, 0, 2114, 2115, 3, 23, 11, 0, 2115, 2116, 3, 33, 16, 0, 2116, 144, 1, 0, 0, 0, 2117, 2118, 3, 9, 4, 0, 2118, 2119, 3, 15, 7, 0, 2119, 2120, 3, 41, 20, 0, 2120, 2121, 3, 33, 16, 0, 2121, 2122, 3, 35, 17, 0, 2122, 2123, 3, 47, 23, 0, 2123, 2124, 3, 29, 14, 0, 2124, 2125, 3, 29, 14, 0, 2125, 2126, 3, 23, 11, 0, 2126, 146, 1, 0, 0, 0, 2127, 2128, 3, 9, 4, 0, 2128, 2129, 3, 15, 7, 0, 2129, 2130, 3, 45, 22, 0, 2130, 2131, 3, 51, 25, 0, 2131, 2132, 3, 15, 7, 0, 2132, 2133, 3, 15, 7, 0, 2133, 2134, 3, 33, 16, 0, 2134, 148, 1, 0, 0, 0, 2135, 2136, 3, 9, 4, 0, 2136, 2137, 3, 23, 11, 0, 2137, 2138, 3, 19, 9, 0, 2138, 2139, 3, 23, 11, 0, 2139, 2140, 3, 33, 16, 0, 2140, 2141, 3, 45, 22, 0, 2141, 150, 1, 0, 0, 0, 2142, 2143, 3, 9, 4, 0, 2143, 2144, 3, 23, 11, 0, 2144, 2145, 3, 33, 16, 0, 2145, 2146, 3, 7, 3, 0, 2146, 2147, 3, 41, 20, 0, 2147, 2148, 3, 55, 27, 0, 2148, 152, 1, 0, 0, 0, 2149, 2150, 3, 9, 4, 0, 2150, 2151, 3, 23, 11, 0, 2151, 2152, 3, 45, 22, 0, 2152, 154, 1, 0, 0, 0, 2153, 2154, 3, 9, 4, 0, 2154, 2155, 3, 23, 11, 0, 2155, 2156, 3, 45, 22, 0, 2156, 2157, 5, 95, 0, 0, 2157, 2158, 3, 29, 14, 0, 2158, 2159, 3, 15, 7, 0, 2159, 2160, 3, 33, 16, 0, 2160, 2161, 3, 19, 9, 0, 2161, 2162, 3, 45, 22, 0, 2162, 2163, 3, 21, 10, 0, 2163, 156, 1, 0, 0, 0, 2164, 2165, 3, 9, 4, 0, 2165, 2166, 3, 23, 11, 0, 2166, 2167, 3, 45, 22, 0, 2167, 2168, 3, 49, 24, 0, 2168, 2169, 3, 7, 3, 0, 2169, 2170, 3, 41, 20, 0, 2170, 158, 1, 0, 0, 0, 2171, 2172, 3, 9, 4, 0, 2172, 2173, 3, 29, 14, 0, 2173, 2174, 3, 35, 17, 0, 2174, 2175, 3, 9, 4, 0, 2175, 160, 1, 0, 0, 0, 2176, 2177, 3, 9, 4, 0, 2177, 2178, 3, 35, 17, 0, 2178, 2179, 3, 35, 17, 0, 2179, 2180, 3, 29, 14, 0, 2180, 2181, 3, 15, 7, 0, 2181, 2182, 3, 7, 3, 0, 2182, 2183, 3, 33, 16, 0, 2183, 162, 1, 0, 0, 0, 2184, 2185, 3, 9, 4, 0, 2185, 2186, 3, 35, 17, 0, 2186, 2187, 3, 45, 22, 0, 2187, 2188, 3, 21, 10, 0, 2188, 164, 1, 0, 0, 0, 2189, 2190, 3, 9, 4, 0, 2190, 2191, 3, 41, 20, 0, 2191, 2192, 3, 15, 7, 0, 2192, 2193, 3, 7, 3, 0, 2193, 2194, 3, 13, 6, 0, 2194, 2195, 3, 45, 22, 0, 2195, 2196, 3, 21, 10, 0, 2196, 166, 1, 0, 0, 0, 2197, 2198, 3, 9, 4, 0, 2198, 2199, 3, 47, 23, 0, 2199, 2200, 3, 17, 8, 0, 2200, 2201, 3, 17, 8, 0, 2201, 2202, 3, 15, 7, 0, 2202, 2203, 3, 41, 20, 0, 2203, 2204, 3, 43, 21, 0, 2204, 168, 1, 0, 0, 0, 2205, 2206, 3, 9, 4, 0, 2206, 2207, 3, 55, 27, 0, 2207, 170, 1, 0, 0, 0, 2208, 2209, 3, 11, 5, 0, 2209, 172, 1, 0, 0, 0, 2210, 2211, 3, 11, 5, 0, 2211, 2212, 3, 7, 3, 0, 2212, 2213, 3, 11, 5, 0, 2213, 2214, 3, 21, 10, 0, 2214, 2215, 3, 15, 7, 0, 2215, 174, 1, 0, 0, 0, 2216, 2217, 3, 11, 5, 0, 2217, 2218, 3, 7, 3, 0, 2218, 2219, 3, 29, 14, 0, 2219, 2220, 3, 29, 14, 0, 2220, 176, 1, 0, 0, 0, 2221, 2222, 3, 11, 5, 0, 2222, 2223, 3, 7, 3, 0, 2223, 2224, 3, 29, 14, 0, 2224, 2225, 3, 29, 14, 0, 2225, 2226, 3, 15, 7, 0, 2226, 2227, 3, 13, 6, 0, 2227, 178, 1, 0, 0, 0, 2228, 2229, 3, 11, 5, 0, 2229, 2230, 3, 7, 3, 0, 2230, 2231, 3, 41, 20, 0, 2231, 2232, 3, 13, 6, 0, 2232, 2233, 3, 23, 11, 0, 2233, 2234, 3, 33, 16, 0, 2234, 2235, 3, 7, 3, 0, 2235, 2236, 3, 29, 14, 0, 2236, 2237, 3, 23, 11, 0, 2237, 2238, 3, 45, 22, 0, 2238, 2239, 3, 55, 27, 0, 2239, 180, 1, 0, 0, 0, 2240, 2241, 3, 11, 5, 0, 2241, 2242, 3, 7, 3, 0, 2242, 2243, 3, 43, 21, 0, 2243, 2244, 3, 11, 5, 0, 2244, 2245, 3, 7, 3, 0, 2245, 2246, 3, 13, 6, 0, 2246, 2247, 3, 15, 7, 0, 2247, 182, 1, 0, 0, 0, 2248, 2249, 3, 11, 5, 0, 2249, 2250, 3, 7, 3, 0, 2250, 2251, 3, 43, 21, 0, 2251, 2252, 3, 11, 5, 0, 2252, 2253, 3, 7, 3, 0, 2253, 2254, 3, 13, 6, 0, 2254, 2255, 3, 15, 7, 0, 2255, 2256, 3, 13, 6, 0, 2256, 184, 1, 0, 0, 0, 2257, 2258, 3, 11, 5, 0, 2258, 2259, 3, 7, 3, 0, 2259, 2260, 3, 43, 21, 0, 2260, 2261, 3, 15, 7, 0, 2261, 186, 1, 0, 0, 0, 2262, 2263, 3, 11, 5, 0, 2263, 2264, 3, 7, 3, 0, 2264, 2265, 3, 43, 21, 0, 2265, 2266, 3, 45, 22, 0, 2266, 188, 1, 0, 0, 0, 2267, 2268, 3, 11, 5, 0, 2268, 2269, 3, 7, 3, 0, 2269, 2270, 3, 45, 22, 0, 2270, 2271, 3, 7, 3, 0, 2271, 2272, 3, 29, 14, 0, 2272, 2273, 3, 35, 17, 0, 2273, 2274, 3, 19, 9, 0, 2274, 190, 1, 0, 0, 0, 2275, 2276, 3, 11, 5, 0, 2276, 2277, 3, 7, 3, 0, 2277, 2278, 3, 45, 22, 0, 2278, 2279, 3, 7, 3, 0, 2279, 2280, 3, 29, 14, 0, 2280, 2281, 3, 35, 17, 0, 2281, 2282, 3, 19, 9, 0, 2282, 2283, 5, 95, 0, 0, 2283, 2284, 3, 33, 16, 0, 2284, 2285, 3, 7, 3, 0, 2285, 2286, 3, 31, 15, 0, 2286, 2287, 3, 15, 7, 0, 2287, 192, 1, 0, 0, 0, 2288, 2289, 3, 11, 5, 0, 2289, 2290, 3, 15, 7, 0, 2290, 2291, 3, 23, 11, 0, 2291, 2292, 3, 29, 14, 0, 2292, 194, 1, 0, 0, 0, 2293, 2294, 3, 11, 5, 0, 2294, 2295, 3, 15, 7, 0, 2295, 2296, 3, 23, 11, 0, 2296, 2297, 3, 29, 14, 0, 2297, 2298, 3, 23, 11, 0, 2298, 2299, 3, 33, 16, 0, 2299, 2300, 3, 19, 9, 0, 2300, 196, 1, 0, 0, 0, 2301, 2302, 3, 11, 5, 0, 2302, 2303, 3, 21, 10, 0, 2303, 2304, 3, 7, 3, 0, 2304, 2305, 3, 23, 11, 0, 2305, 2306, 3, 33, 16, 0, 2306, 198, 1, 0, 0, 0, 2307, 2308, 3, 11, 5, 0, 2308, 2309, 3, 21, 10, 0, 2309, 2310, 3, 7, 3, 0, 2310, 2311, 3, 41, 20, 0, 2311, 200, 1, 0, 0, 0, 2312, 2313, 3, 11, 5, 0, 2313, 2314, 3, 21, 10, 0, 2314, 2315, 3, 7, 3, 0, 2315, 2316, 3, 41, 20, 0, 2316, 2317, 5, 95, 0, 0, 2317, 2318, 3, 29, 14, 0, 2318, 2319, 3, 15, 7, 0, 2319, 2320, 3, 33, 16, 0, 2320, 2321, 3, 19, 9, 0, 2321, 2322, 3, 45, 22, 0, 2322, 2323, 3, 21, 10, 0, 2323, 202, 1, 0, 0, 0, 2324, 2325, 3, 11, 5, 0, 2325, 2326, 3, 21, 10, 0, 2326, 2327, 3, 7, 3, 0, 2327, 2328, 3, 41, 20, 0, 2328, 2329, 3, 7, 3, 0, 2329, 2330, 3, 11, 5, 0, 2330, 2331, 3, 45, 22, 0, 2331, 2332, 3, 15, 7, 0, 2332, 2333, 3, 41, 20, 0, 2333, 204, 1, 0, 0, 0, 2334, 2335, 3, 11, 5, 0, 2335, 2336, 3, 21, 10, 0, 2336, 2337, 3, 7, 3, 0, 2337, 2338, 3, 41, 20, 0, 2338, 2339, 3, 7, 3, 0, 2339, 2340, 3, 11, 5, 0, 2340, 2341, 3, 45, 22, 0, 2341, 2342, 3, 15, 7, 0, 2342, 2343, 3, 41, 20, 0, 2343, 2344, 5, 95, 0, 0, 2344, 2345, 3, 29, 14, 0, 2345, 2346, 3, 15, 7, 0, 2346, 2347, 3, 33, 16, 0, 2347, 2348, 3, 19, 9, 0, 2348, 2349, 3, 45, 22, 0, 2349, 2350, 3, 21, 10, 0, 2350, 206, 1, 0, 0, 0, 2351, 2352, 3, 11, 5, 0, 2352, 2353, 3, 21, 10, 0, 2353, 2354, 3, 7, 3, 0, 2354, 2355, 3, 41, 20, 0, 2355, 2356, 3, 7, 3, 0, 2356, 2357, 3, 11, 5, 0, 2357, 2358, 3, 45, 22, 0, 2358, 2359, 3, 15, 7, 0, 2359, 2360, 3, 41, 20, 0, 2360, 2361, 5, 95, 0, 0, 2361, 2362, 3, 43, 21, 0, 2362, 2363, 3, 15, 7, 0, 2363, 2364, 3, 45, 22, 0, 2364, 2365, 5, 95, 0, 0, 2365, 2366, 3, 11, 5, 0, 2366, 2367, 3, 7, 3, 0, 2367, 2368, 3, 45, 22, 0, 2368, 2369, 3, 7, 3, 0, 2369, 2370, 3, 29, 14, 0, 2370, 2371, 3, 35, 17, 0, 2371, 2372, 3, 19, 9, 0, 2372, 208, 1, 0, 0, 0, 2373, 2374, 3, 11, 5, 0, 2374, 2375, 3, 21, 10, 0, 2375, 2376, 3, 7, 3, 0, 2376, 2377, 3, 41, 20, 0, 2377, 2378, 3, 7, 3, 0, 2378, 2379, 3, 11, 5, 0, 2379, 2380, 3, 45, 22, 0, 2380, 2381, 3, 15, 7, 0, 2381, 2382, 3, 41, 20, 0, 2382, 2383, 5, 95, 0, 0, 2383, 2384, 3, 43, 21, 0, 2384, 2385, 3, 15, 7, 0, 2385, 2386, 3, 45, 22, 0, 2386, 2387, 5, 95, 0, 0, 2387, 2388, 3, 33, 16, 0, 2388, 2389, 3, 7, 3, 0, 2389, 2390, 3, 31, 15, 0, 2390, 2391, 3, 15, 7, 0, 2391, 210, 1, 0, 0, 0, 2392, 2393, 3, 11, 5, 0, 2393, 2394, 3, 21, 10, 0, 2394, 2395, 3, 7, 3, 0, 2395, 2396, 3, 41, 20, 0, 2396, 2397, 3, 7, 3, 0, 2397, 2398, 3, 11, 5, 0, 2398, 2399, 3, 45, 22, 0, 2399, 2400, 3, 15, 7, 0, 2400, 2401, 3, 41, 20, 0, 2401, 2402, 5, 95, 0, 0, 2402, 2403, 3, 43, 21, 0, 2403, 2404, 3, 15, 7, 0, 2404, 2405, 3, 45, 22, 0, 2405, 2406, 5, 95, 0, 0, 2406, 2407, 3, 43, 21, 0, 2407, 2408, 3, 11, 5, 0, 2408, 2409, 3, 21, 10, 0, 2409, 2410, 3, 15, 7, 0, 2410, 2411, 3, 31, 15, 0, 2411, 2412, 3, 7, 3, 0, 2412, 212, 1, 0, 0, 0, 2413, 2414, 3, 11, 5, 0, 2414, 2415, 3, 21, 10, 0, 2415, 2416, 3, 7, 3, 0, 2416, 2417, 3, 41, 20, 0, 2417, 2418, 3, 7, 3, 0, 2418, 2419, 3, 11, 5, 0, 2419, 2420, 3, 45, 22, 0, 2420, 2421, 3, 15, 7, 0, 2421, 2422, 3, 41, 20, 0, 2422, 2423, 3, 23, 11, 0, 2423, 2424, 3, 43, 21, 0, 2424, 2425, 3, 45, 22, 0, 2425, 2426, 3, 23, 11, 0, 2426, 2427, 3, 11, 5, 0, 2427, 2428, 3, 43, 21, 0, 2428, 214, 1, 0, 0, 0, 2429, 2430, 3, 11, 5, 0, 2430, 2431, 3, 21, 10, 0, 2431, 2432, 3, 7, 3, 0, 2432, 2433, 3, 41, 20, 0, 2433, 2434, 3, 7, 3, 0, 2434, 2435, 3, 11, 5, 0, 2435, 2436, 3, 45, 22, 0, 2436, 2437, 3, 15, 7, 0, 2437, 2438, 3, 41, 20, 0, 2438, 2439, 3, 43, 21, 0, 2439, 216, 1, 0, 0, 0, 2440, 2441, 3, 11, 5, 0, 2441, 2442, 3, 21, 10, 0, 2442, 2443, 3, 15, 7, 0, 2443, 2444, 3, 11, 5, 0, 2444, 2445, 3, 27, 13, 0, 2445, 218, 1, 0, 0, 0, 2446, 2447, 3, 11, 5, 0, 2447, 2448, 3, 21, 10, 0, 2448, 2449, 3, 15, 7, 0, 2449, 2450, 3, 11, 5, 0, 2450, 2451, 3, 27, 13, 0, 2451, 2452, 3, 15, 7, 0, 2452, 2453, 3, 13, 6, 0, 2453, 220, 1, 0, 0, 0, 2454, 2455, 3, 11, 5, 0, 2455, 2456, 3, 21, 10, 0, 2456, 2457, 3, 15, 7, 0, 2457, 2458, 3, 11, 5, 0, 2458, 2459, 3, 27, 13, 0, 2459, 2460, 3, 37, 18, 0, 2460, 2461, 3, 35, 17, 0, 2461, 2462, 3, 23, 11, 0, 2462, 2463, 3, 33, 16, 0, 2463, 2464, 3, 45, 22, 0, 2464, 222, 1, 0, 0, 0, 2465, 2466, 3, 11, 5, 0, 2466, 2467, 3, 29, 14, 0, 2467, 2468, 3, 7, 3, 0, 2468, 2469, 3, 43, 21, 0, 2469, 2470, 3, 43, 21, 0, 2470, 224, 1, 0, 0, 0, 2471, 2472, 3, 11, 5, 0, 2472, 2473, 3, 29, 14, 0, 2473, 2474, 3, 7, 3, 0, 2474, 2475, 3, 43, 21, 0, 2475, 2476, 3, 43, 21, 0, 2476, 2477, 5, 95, 0, 0, 2477, 2478, 3, 35, 17, 0, 2478, 2479, 3, 41, 20, 0, 2479, 2480, 3, 23, 11, 0, 2480, 2481, 3, 19, 9, 0, 2481, 2482, 3, 23, 11, 0, 2482, 2483, 3, 33, 16, 0, 2483, 226, 1, 0, 0, 0, 2484, 2485, 3, 11, 5, 0, 2485, 2486, 3, 29, 14, 0, 2486, 2487, 3, 35, 17, 0, 2487, 2488, 3, 9, 4, 0, 2488, 228, 1, 0, 0, 0, 2489, 2490, 3, 11, 5, 0, 2490, 2491, 3, 29, 14, 0, 2491, 2492, 3, 35, 17, 0, 2492, 2493, 3, 43, 21, 0, 2493, 2494, 3, 15, 7, 0, 2494, 230, 1, 0, 0, 0, 2495, 2496, 3, 11, 5, 0, 2496, 2497, 3, 29, 14, 0, 2497, 2498, 3, 47, 23, 0, 2498, 2499, 3, 43, 21, 0, 2499, 2500, 3, 45, 22, 0, 2500, 2501, 3, 15, 7, 0, 2501, 2502, 3, 41, 20, 0, 2502, 232, 1, 0, 0, 0, 2503, 2504, 3, 11, 5, 0, 2504, 2505, 3, 35, 17, 0, 2505, 2506, 3, 7, 3, 0, 2506, 2507, 3, 29, 14, 0, 2507, 2508, 3, 15, 7, 0, 2508, 2509, 3, 43, 21, 0, 2509, 2510, 3, 11, 5, 0, 2510, 2511, 3, 15, 7, 0, 2511, 234, 1, 0, 0, 0, 2512, 2513, 3, 11, 5, 0, 2513, 2514, 3, 35, 17, 0, 2514, 2515, 3, 9, 4, 0, 2515, 2516, 3, 35, 17, 0, 2516, 2517, 3, 29, 14, 0, 2517, 236, 1, 0, 0, 0, 2518, 2519, 3, 11, 5, 0, 2519, 2520, 3, 35, 17, 0, 2520, 2521, 3, 29, 14, 0, 2521, 2522, 3, 29, 14, 0, 2522, 2523, 3, 7, 3, 0, 2523, 2524, 3, 45, 22, 0, 2524, 2525, 3, 15, 7, 0, 2525, 238, 1, 0, 0, 0, 2526, 2527, 3, 11, 5, 0, 2527, 2528, 3, 35, 17, 0, 2528, 2529, 3, 29, 14, 0, 2529, 2530, 3, 29, 14, 0, 2530, 2531, 3, 7, 3, 0, 2531, 2532, 3, 45, 22, 0, 2532, 2533, 3, 23, 11, 0, 2533, 2534, 3, 35, 17, 0, 2534, 2535, 3, 33, 16, 0, 2535, 240, 1, 0, 0, 0, 2536, 2537, 3, 11, 5, 0, 2537, 2538, 3, 35, 17, 0, 2538, 2539, 3, 29, 14, 0, 2539, 2540, 3, 29, 14, 0, 2540, 2541, 3, 7, 3, 0, 2541, 2542, 3, 45, 22, 0, 2542, 2543, 3, 23, 11, 0, 2543, 2544, 3, 35, 17, 0, 2544, 2545, 3, 33, 16, 0, 2545, 2546, 5, 95, 0, 0, 2546, 2547, 3, 11, 5, 0, 2547, 2548, 3, 7, 3, 0, 2548, 2549, 3, 45, 22, 0, 2549, 2550, 3, 7, 3, 0, 2550, 2551, 3, 29, 14, 0, 2551, 2552, 3, 35, 17, 0, 2552, 2553, 3, 19, 9, 0, 2553, 242, 1, 0, 0, 0, 2554, 2555, 3, 11, 5, 0, 2555, 2556, 3, 35, 17, 0, 2556, 2557, 3, 29, 14, 0, 2557, 2558, 3, 29, 14, 0, 2558, 2559, 3, 7, 3, 0, 2559, 2560, 3, 45, 22, 0, 2560, 2561, 3, 23, 11, 0, 2561, 2562, 3, 35, 17, 0, 2562, 2563, 3, 33, 16, 0, 2563, 2564, 5, 95, 0, 0, 2564, 2565, 3, 33, 16, 0, 2565, 2566, 3, 7, 3, 0, 2566, 2567, 3, 31, 15, 0, 2567, 2568, 3, 15, 7, 0, 2568, 244, 1, 0, 0, 0, 2569, 2570, 3, 11, 5, 0, 2570, 2571, 3, 35, 17, 0, 2571, 2572, 3, 29, 14, 0, 2572, 2573, 3, 29, 14, 0, 2573, 2574, 3, 7, 3, 0, 2574, 2575, 3, 45, 22, 0, 2575, 2576, 3, 23, 11, 0, 2576, 2577, 3, 35, 17, 0, 2577, 2578, 3, 33, 16, 0, 2578, 2579, 5, 95, 0, 0, 2579, 2580, 3, 43, 21, 0, 2580, 2581, 3, 11, 5, 0, 2581, 2582, 3, 21, 10, 0, 2582, 2583, 3, 15, 7, 0, 2583, 2584, 3, 31, 15, 0, 2584, 2585, 3, 7, 3, 0, 2585, 246, 1, 0, 0, 0, 2586, 2587, 3, 11, 5, 0, 2587, 2588, 3, 35, 17, 0, 2588, 2589, 3, 29, 14, 0, 2589, 2590, 3, 29, 14, 0, 2590, 2591, 3, 15, 7, 0, 2591, 2592, 3, 11, 5, 0, 2592, 2593, 3, 45, 22, 0, 2593, 248, 1, 0, 0, 0, 2594, 2595, 3, 11, 5, 0, 2595, 2596, 3, 35, 17, 0, 2596, 2597, 3, 29, 14, 0, 2597, 2598, 3, 47, 23, 0, 2598, 2599, 3, 31, 15, 0, 2599, 2600, 3, 33, 16, 0, 2600, 250, 1, 0, 0, 0, 2601, 2602, 3, 11, 5, 0, 2602, 2603, 3, 35, 17, 0, 2603, 2604, 3, 29, 14, 0, 2604, 2605, 3, 47, 23, 0, 2605, 2606, 3, 31, 15, 0, 2606, 2607, 3, 33, 16, 0, 2607, 2608, 5, 95, 0, 0, 2608, 2609, 3, 33, 16, 0, 2609, 2610, 3, 7, 3, 0, 2610, 2611, 3, 31, 15, 0, 2611, 2612, 3, 15, 7, 0, 2612, 252, 1, 0, 0, 0, 2613, 2614, 3, 11, 5, 0, 2614, 2615, 3, 35, 17, 0, 2615, 2616, 3, 31, 15, 0, 2616, 2617, 3, 31, 15, 0, 2617, 2618, 3, 7, 3, 0, 2618, 2619, 3, 33, 16, 0, 2619, 2620, 3, 13, 6, 0, 2620, 2621, 5, 95, 0, 0, 2621, 2622, 3, 17, 8, 0, 2622, 2623, 3, 47, 23, 0, 2623, 2624, 3, 33, 16, 0, 2624, 2625, 3, 11, 5, 0, 2625, 2626, 3, 45, 22, 0, 2626, 2627, 3, 23, 11, 0, 2627, 2628, 3, 35, 17, 0, 2628, 2629, 3, 33, 16, 0, 2629, 254, 1, 0, 0, 0, 2630, 2631, 3, 11, 5, 0, 2631, 2632, 3, 35, 17, 0, 2632, 2633, 3, 31, 15, 0, 2633, 2634, 3, 31, 15, 0, 2634, 2635, 3, 7, 3, 0, 2635, 2636, 3, 33, 16, 0, 2636, 2637, 3, 13, 6, 0, 2637, 2638, 5, 95, 0, 0, 2638, 2639, 3, 17, 8, 0, 2639, 2640, 3, 47, 23, 0, 2640, 2641, 3, 33, 16, 0, 2641, 2642, 3, 11, 5, 0, 2642, 2643, 3, 45, 22, 0, 2643, 2644, 3, 23, 11, 0, 2644, 2645, 3, 35, 17, 0, 2645, 2646, 3, 33, 16, 0, 2646, 2647, 5, 95, 0, 0, 2647, 2648, 3, 11, 5, 0, 2648, 2649, 3, 35, 17, 0, 2649, 2650, 3, 13, 6, 0, 2650, 2651, 3, 15, 7, 0, 2651, 256, 1, 0, 0, 0, 2652, 2653, 3, 11, 5, 0, 2653, 2654, 3, 35, 17, 0, 2654, 2655, 3, 31, 15, 0, 2655, 2656, 3, 31, 15, 0, 2656, 2657, 3, 15, 7, 0, 2657, 2658, 3, 33, 16, 0, 2658, 2659, 3, 45, 22, 0, 2659, 258, 1, 0, 0, 0, 2660, 2661, 3, 11, 5, 0, 2661, 2662, 3, 35, 17, 0, 2662, 2663, 3, 31, 15, 0, 2663, 2664, 3, 31, 15, 0, 2664, 2665, 3, 23, 11, 0, 2665, 2666, 3, 45, 22, 0, 2666, 260, 1, 0, 0, 0, 2667, 2668, 3, 11, 5, 0, 2668, 2669, 3, 35, 17, 0, 2669, 2670, 3, 31, 15, 0, 2670, 2671, 3, 31, 15, 0, 2671, 2672, 3, 23, 11, 0, 2672, 2673, 3, 45, 22, 0, 2673, 2674, 3, 45, 22, 0, 2674, 2675, 3, 15, 7, 0, 2675, 2676, 3, 13, 6, 0, 2676, 262, 1, 0, 0, 0, 2677, 2678, 3, 11, 5, 0, 2678, 2679, 3, 35, 17, 0, 2679, 2680, 3, 31, 15, 0, 2680, 2681, 3, 37, 18, 0, 2681, 2682, 3, 29, 14, 0, 2682, 2683, 3, 15, 7, 0, 2683, 2684, 3, 45, 22, 0, 2684, 2685, 3, 23, 11, 0, 2685, 2686, 3, 35, 17, 0, 2686, 2687, 3, 33, 16, 0, 2687, 264, 1, 0, 0, 0, 2688, 2689, 3, 11, 5, 0, 2689, 2690, 3, 35, 17, 0, 2690, 2691, 3, 33, 16, 0, 2691, 2692, 3, 13, 6, 0, 2692, 2693, 3, 23, 11, 0, 2693, 2694, 3, 45, 22, 0, 2694, 2695, 3, 23, 11, 0, 2695, 2696, 3, 35, 17, 0, 2696, 2697, 3, 33, 16, 0, 2697, 266, 1, 0, 0, 0, 2698, 2699, 3, 11, 5, 0, 2699, 2700, 3, 35, 17, 0, 2700, 2701, 3, 33, 16, 0, 2701, 2702, 3, 13, 6, 0, 2702, 2703, 3, 23, 11, 0, 2703, 2704, 3, 45, 22, 0, 2704, 2705, 3, 23, 11, 0, 2705, 2706, 3, 35, 17, 0, 2706, 2707, 3, 33, 16, 0, 2707, 2708, 5, 95, 0, 0, 2708, 2709, 3, 33, 16, 0, 2709, 2710, 3, 47, 23, 0, 2710, 2711, 3, 31, 15, 0, 2711, 2712, 3, 9, 4, 0, 2712, 2713, 3, 15, 7, 0, 2713, 2714, 3, 41, 20, 0, 2714, 268, 1, 0, 0, 0, 2715, 2716, 3, 11, 5, 0, 2716, 2717, 3, 35, 17, 0, 2717, 2718, 3, 33, 16, 0, 2718, 2719, 3, 17, 8, 0, 2719, 2720, 3, 23, 11, 0, 2720, 2721, 3, 19, 9, 0, 2721, 2722, 3, 47, 23, 0, 2722, 2723, 3, 41, 20, 0, 2723, 2724, 3, 7, 3, 0, 2724, 2725, 3, 45, 22, 0, 2725, 2726, 3, 23, 11, 0, 2726, 2727, 3, 35, 17, 0, 2727, 2728, 3, 33, 16, 0, 2728, 270, 1, 0, 0, 0, 2729, 2730, 3, 11, 5, 0, 2730, 2731, 3, 35, 17, 0, 2731, 2732, 3, 33, 16, 0, 2732, 2733, 3, 17, 8, 0, 2733, 2734, 3, 29, 14, 0, 2734, 2735, 3, 23, 11, 0, 2735, 2736, 3, 11, 5, 0, 2736, 2737, 3, 45, 22, 0, 2737, 272, 1, 0, 0, 0, 2738, 2739, 3, 11, 5, 0, 2739, 2740, 3, 35, 17, 0, 2740, 2741, 3, 33, 16, 0, 2741, 2742, 3, 33, 16, 0, 2742, 2743, 3, 15, 7, 0, 2743, 2744, 3, 11, 5, 0, 2744, 2745, 3, 45, 22, 0, 2745, 274, 1, 0, 0, 0, 2746, 2747, 3, 11, 5, 0, 2747, 2748, 3, 35, 17, 0, 2748, 2749, 3, 33, 16, 0, 2749, 2750, 3, 33, 16, 0, 2750, 2751, 3, 15, 7, 0, 2751, 2752, 3, 11, 5, 0, 2752, 2753, 3, 45, 22, 0, 2753, 2754, 3, 23, 11, 0, 2754, 2755, 3, 35, 17, 0, 2755, 2756, 3, 33, 16, 0, 2756, 276, 1, 0, 0, 0, 2757, 2758, 3, 11, 5, 0, 2758, 2759, 3, 35, 17, 0, 2759, 2760, 3, 33, 16, 0, 2760, 2761, 3, 33, 16, 0, 2761, 2762, 3, 15, 7, 0, 2762, 2763, 3, 11, 5, 0, 2763, 2764, 3, 45, 22, 0, 2764, 2765, 3, 23, 11, 0, 2765, 2766, 3, 35, 17, 0, 2766, 2767, 3, 33, 16, 0, 2767, 2768, 5, 95, 0, 0, 2768, 2769, 3, 33, 16, 0, 2769, 2770, 3, 7, 3, 0, 2770, 2771, 3, 31, 15, 0, 2771, 2772, 3, 15, 7, 0, 2772, 278, 1, 0, 0, 0, 2773, 2774, 3, 11, 5, 0, 2774, 2775, 3, 35, 17, 0, 2775, 2776, 3, 33, 16, 0, 2776, 2777, 3, 43, 21, 0, 2777, 2778, 3, 45, 22, 0, 2778, 2779, 3, 41, 20, 0, 2779, 2780, 3, 7, 3, 0, 2780, 2781, 3, 23, 11, 0, 2781, 2782, 3, 33, 16, 0, 2782, 2783, 3, 45, 22, 0, 2783, 280, 1, 0, 0, 0, 2784, 2785, 3, 11, 5, 0, 2785, 2786, 3, 35, 17, 0, 2786, 2787, 3, 33, 16, 0, 2787, 2788, 3, 43, 21, 0, 2788, 2789, 3, 45, 22, 0, 2789, 2790, 3, 41, 20, 0, 2790, 2791, 3, 7, 3, 0, 2791, 2792, 3, 23, 11, 0, 2792, 2793, 3, 33, 16, 0, 2793, 2794, 3, 45, 22, 0, 2794, 2795, 5, 95, 0, 0, 2795, 2796, 3, 11, 5, 0, 2796, 2797, 3, 7, 3, 0, 2797, 2798, 3, 45, 22, 0, 2798, 2799, 3, 7, 3, 0, 2799, 2800, 3, 29, 14, 0, 2800, 2801, 3, 35, 17, 0, 2801, 2802, 3, 19, 9, 0, 2802, 282, 1, 0, 0, 0, 2803, 2804, 3, 11, 5, 0, 2804, 2805, 3, 35, 17, 0, 2805, 2806, 3, 33, 16, 0, 2806, 2807, 3, 43, 21, 0, 2807, 2808, 3, 45, 22, 0, 2808, 2809, 3, 41, 20, 0, 2809, 2810, 3, 7, 3, 0, 2810, 2811, 3, 23, 11, 0, 2811, 2812, 3, 33, 16, 0, 2812, 2813, 3, 45, 22, 0, 2813, 2814, 5, 95, 0, 0, 2814, 2815, 3, 33, 16, 0, 2815, 2816, 3, 7, 3, 0, 2816, 2817, 3, 31, 15, 0, 2817, 2818, 3, 15, 7, 0, 2818, 284, 1, 0, 0, 0, 2819, 2820, 3, 11, 5, 0, 2820, 2821, 3, 35, 17, 0, 2821, 2822, 3, 33, 16, 0, 2822, 2823, 3, 43, 21, 0, 2823, 2824, 3, 45, 22, 0, 2824, 2825, 3, 41, 20, 0, 2825, 2826, 3, 7, 3, 0, 2826, 2827, 3, 23, 11, 0, 2827, 2828, 3, 33, 16, 0, 2828, 2829, 3, 45, 22, 0, 2829, 2830, 5, 95, 0, 0, 2830, 2831, 3, 43, 21, 0, 2831, 2832, 3, 11, 5, 0, 2832, 2833, 3, 21, 10, 0, 2833, 2834, 3, 15, 7, 0, 2834, 2835, 3, 31, 15, 0, 2835, 2836, 3, 7, 3, 0, 2836, 286, 1, 0, 0, 0, 2837, 2838, 3, 11, 5, 0, 2838, 2839, 3, 35, 17, 0, 2839, 2840, 3, 33, 16, 0, 2840, 2841, 3, 43, 21, 0, 2841, 2842, 3, 45, 22, 0, 2842, 2843, 3, 41, 20, 0, 2843, 2844, 3, 7, 3, 0, 2844, 2845, 3, 23, 11, 0, 2845, 2846, 3, 33, 16, 0, 2846, 2847, 3, 45, 22, 0, 2847, 2848, 3, 43, 21, 0, 2848, 288, 1, 0, 0, 0, 2849, 2850, 3, 11, 5, 0, 2850, 2851, 3, 35, 17, 0, 2851, 2852, 3, 33, 16, 0, 2852, 2853, 3, 43, 21, 0, 2853, 2854, 3, 45, 22, 0, 2854, 2855, 3, 41, 20, 0, 2855, 2856, 3, 47, 23, 0, 2856, 2857, 3, 11, 5, 0, 2857, 2858, 3, 45, 22, 0, 2858, 2859, 3, 35, 17, 0, 2859, 2860, 3, 41, 20, 0, 2860, 290, 1, 0, 0, 0, 2861, 2862, 3, 11, 5, 0, 2862, 2863, 3, 35, 17, 0, 2863, 2864, 3, 33, 16, 0, 2864, 2865, 3, 45, 22, 0, 2865, 2866, 3, 7, 3, 0, 2866, 2867, 3, 23, 11, 0, 2867, 2868, 3, 33, 16, 0, 2868, 2869, 3, 43, 21, 0, 2869, 292, 1, 0, 0, 0, 2870, 2871, 3, 11, 5, 0, 2871, 2872, 3, 35, 17, 0, 2872, 2873, 3, 33, 16, 0, 2873, 2874, 3, 45, 22, 0, 2874, 2875, 3, 23, 11, 0, 2875, 2876, 3, 33, 16, 0, 2876, 2877, 3, 47, 23, 0, 2877, 2878, 3, 15, 7, 0, 2878, 294, 1, 0, 0, 0, 2879, 2880, 3, 11, 5, 0, 2880, 2881, 3, 35, 17, 0, 2881, 2882, 3, 33, 16, 0, 2882, 2883, 3, 49, 24, 0, 2883, 2884, 3, 15, 7, 0, 2884, 2885, 3, 41, 20, 0, 2885, 2886, 3, 43, 21, 0, 2886, 2887, 3, 23, 11, 0, 2887, 2888, 3, 35, 17, 0, 2888, 2889, 3, 33, 16, 0, 2889, 296, 1, 0, 0, 0, 2890, 2891, 3, 11, 5, 0, 2891, 2892, 3, 35, 17, 0, 2892, 2893, 3, 33, 16, 0, 2893, 2894, 3, 49, 24, 0, 2894, 2895, 3, 15, 7, 0, 2895, 2896, 3, 41, 20, 0, 2896, 2897, 3, 45, 22, 0, 2897, 298, 1, 0, 0, 0, 2898, 2899, 3, 11, 5, 0, 2899, 2900, 3, 35, 17, 0, 2900, 2901, 3, 37, 18, 0, 2901, 2902, 3, 55, 27, 0, 2902, 300, 1, 0, 0, 0, 2903, 2904, 3, 11, 5, 0, 2904, 2905, 3, 35, 17, 0, 2905, 2906, 3, 41, 20, 0, 2906, 2907, 3, 41, 20, 0, 2907, 302, 1, 0, 0, 0, 2908, 2909, 3, 11, 5, 0, 2909, 2910, 3, 35, 17, 0, 2910, 2911, 3, 41, 20, 0, 2911, 2912, 3, 41, 20, 0, 2912, 2913, 3, 15, 7, 0, 2913, 2914, 3, 43, 21, 0, 2914, 2915, 3, 37, 18, 0, 2915, 2916, 3, 35, 17, 0, 2916, 2917, 3, 33, 16, 0, 2917, 2918, 3, 13, 6, 0, 2918, 2919, 3, 23, 11, 0, 2919, 2920, 3, 33, 16, 0, 2920, 2921, 3, 19, 9, 0, 2921, 304, 1, 0, 0, 0, 2922, 2923, 3, 11, 5, 0, 2923, 2924, 3, 35, 17, 0, 2924, 2925, 3, 43, 21, 0, 2925, 2926, 3, 45, 22, 0, 2926, 2927, 3, 43, 21, 0, 2927, 306, 1, 0, 0, 0, 2928, 2929, 3, 11, 5, 0, 2929, 2930, 3, 35, 17, 0, 2930, 2931, 3, 47, 23, 0, 2931, 2932, 3, 33, 16, 0, 2932, 2933, 3, 45, 22, 0, 2933, 308, 1, 0, 0, 0, 2934, 2935, 3, 11, 5, 0, 2935, 2936, 3, 35, 17, 0, 2936, 2937, 3, 49, 24, 0, 2937, 2938, 3, 7, 3, 0, 2938, 2939, 3, 41, 20, 0, 2939, 2940, 5, 95, 0, 0, 2940, 2941, 3, 37, 18, 0, 2941, 2942, 3, 35, 17, 0, 2942, 2943, 3, 37, 18, 0, 2943, 310, 1, 0, 0, 0, 2944, 2945, 3, 11, 5, 0, 2945, 2946, 3, 35, 17, 0, 2946, 2947, 3, 49, 24, 0, 2947, 2948, 3, 7, 3, 0, 2948, 2949, 3, 41, 20, 0, 2949, 2950, 5, 95, 0, 0, 2950, 2951, 3, 43, 21, 0, 2951, 2952, 3, 7, 3, 0, 2952, 2953, 3, 31, 15, 0, 2953, 2954, 3, 37, 18, 0, 2954, 312, 1, 0, 0, 0, 2955, 2956, 3, 11, 5, 0, 2956, 2957, 3, 41, 20, 0, 2957, 2958, 3, 15, 7, 0, 2958, 2959, 3, 7, 3, 0, 2959, 2960, 3, 45, 22, 0, 2960, 2961, 3, 15, 7, 0, 2961, 314, 1, 0, 0, 0, 2962, 2963, 3, 11, 5, 0, 2963, 2964, 3, 41, 20, 0, 2964, 2965, 3, 15, 7, 0, 2965, 2966, 3, 7, 3, 0, 2966, 2967, 3, 45, 22, 0, 2967, 2968, 3, 15, 7, 0, 2968, 2969, 3, 13, 6, 0, 2969, 2970, 3, 9, 4, 0, 2970, 316, 1, 0, 0, 0, 2971, 2972, 3, 11, 5, 0, 2972, 2973, 3, 41, 20, 0, 2973, 2974, 3, 15, 7, 0, 2974, 2975, 3, 7, 3, 0, 2975, 2976, 3, 45, 22, 0, 2976, 2977, 3, 15, 7, 0, 2977, 2978, 3, 47, 23, 0, 2978, 2979, 3, 43, 21, 0, 2979, 2980, 3, 15, 7, 0, 2980, 2981, 3, 41, 20, 0, 2981, 318, 1, 0, 0, 0, 2982, 2983, 3, 11, 5, 0, 2983, 2984, 3, 41, 20, 0, 2984, 2985, 3, 35, 17, 0, 2985, 2986, 3, 43, 21, 0, 2986, 2987, 3, 43, 21, 0, 2987, 320, 1, 0, 0, 0, 2988, 2989, 3, 11, 5, 0, 2989, 2990, 3, 43, 21, 0, 2990, 2991, 3, 49, 24, 0, 2991, 322, 1, 0, 0, 0, 2992, 2993, 3, 11, 5, 0, 2993, 2994, 3, 47, 23, 0, 2994, 2995, 3, 9, 4, 0, 2995, 2996, 3, 15, 7, 0, 2996, 324, 1, 0, 0, 0, 2997, 2998, 3, 11, 5, 0, 2998, 2999, 3, 47, 23, 0, 2999, 3000, 3, 31, 15, 0, 3000, 3001, 3, 15, 7, 0, 3001, 3002, 5, 95, 0, 0, 3002, 3003, 3, 13, 6, 0, 3003, 3004, 3, 23, 11, 0, 3004, 3005, 3, 43, 21, 0, 3005, 3006, 3, 45, 22, 0, 3006, 326, 1, 0, 0, 0, 3007, 3008, 3, 11, 5, 0, 3008, 3009, 3, 47, 23, 0, 3009, 3010, 3, 41, 20, 0, 3010, 3011, 3, 41, 20, 0, 3011, 3012, 3, 15, 7, 0, 3012, 3013, 3, 33, 16, 0, 3013, 3014, 3, 45, 22, 0, 3014, 328, 1, 0, 0, 0, 3015, 3016, 3, 11, 5, 0, 3016, 3017, 3, 47, 23, 0, 3017, 3018, 3, 41, 20, 0, 3018, 3019, 3, 41, 20, 0, 3019, 3020, 3, 15, 7, 0, 3020, 3021, 3, 33, 16, 0, 3021, 3022, 3, 45, 22, 0, 3022, 3023, 5, 95, 0, 0, 3023, 3024, 3, 13, 6, 0, 3024, 3025, 3, 7, 3, 0, 3025, 3026, 3, 45, 22, 0, 3026, 3027, 3, 15, 7, 0, 3027, 330, 1, 0, 0, 0, 3028, 3029, 3, 11, 5, 0, 3029, 3030, 3, 47, 23, 0, 3030, 3031, 3, 41, 20, 0, 3031, 3032, 3, 41, 20, 0, 3032, 3033, 3, 15, 7, 0, 3033, 3034, 3, 33, 16, 0, 3034, 3035, 3, 45, 22, 0, 3035, 3036, 5, 95, 0, 0, 3036, 3037, 3, 13, 6, 0, 3037, 3038, 3, 15, 7, 0, 3038, 3039, 3, 17, 8, 0, 3039, 3040, 3, 7, 3, 0, 3040, 3041, 3, 47, 23, 0, 3041, 3042, 3, 29, 14, 0, 3042, 3043, 3, 45, 22, 0, 3043, 3044, 5, 95, 0, 0, 3044, 3045, 3, 45, 22, 0, 3045, 3046, 3, 41, 20, 0, 3046, 3047, 3, 7, 3, 0, 3047, 3048, 3, 33, 16, 0, 3048, 3049, 3, 43, 21, 0, 3049, 3050, 3, 17, 8, 0, 3050, 3051, 3, 35, 17, 0, 3051, 3052, 3, 41, 20, 0, 3052, 3053, 3, 31, 15, 0, 3053, 3054, 5, 95, 0, 0, 3054, 3055, 3, 19, 9, 0, 3055, 3056, 3, 41, 20, 0, 3056, 3057, 3, 35, 17, 0, 3057, 3058, 3, 47, 23, 0, 3058, 3059, 3, 37, 18, 0, 3059, 332, 1, 0, 0, 0, 3060, 3061, 3, 11, 5, 0, 3061, 3062, 3, 47, 23, 0, 3062, 3063, 3, 41, 20, 0, 3063, 3064, 3, 41, 20, 0, 3064, 3065, 3, 15, 7, 0, 3065, 3066, 3, 33, 16, 0, 3066, 3067, 3, 45, 22, 0, 3067, 3068, 5, 95, 0, 0, 3068, 3069, 3, 37, 18, 0, 3069, 3070, 3, 7, 3, 0, 3070, 3071, 3, 45, 22, 0, 3071, 3072, 3, 21, 10, 0, 3072, 334, 1, 0, 0, 0, 3073, 3074, 3, 11, 5, 0, 3074, 3075, 3, 47, 23, 0, 3075, 3076, 3, 41, 20, 0, 3076, 3077, 3, 41, 20, 0, 3077, 3078, 3, 15, 7, 0, 3078, 3079, 3, 33, 16, 0, 3079, 3080, 3, 45, 22, 0, 3080, 3081, 5, 95, 0, 0, 3081, 3082, 3, 41, 20, 0, 3082, 3083, 3, 35, 17, 0, 3083, 3084, 3, 29, 14, 0, 3084, 3085, 3, 15, 7, 0, 3085, 336, 1, 0, 0, 0, 3086, 3087, 3, 11, 5, 0, 3087, 3088, 3, 47, 23, 0, 3088, 3089, 3, 41, 20, 0, 3089, 3090, 3, 41, 20, 0, 3090, 3091, 3, 15, 7, 0, 3091, 3092, 3, 33, 16, 0, 3092, 3093, 3, 45, 22, 0, 3093, 3094, 5, 95, 0, 0, 3094, 3095, 3, 45, 22, 0, 3095, 3096, 3, 23, 11, 0, 3096, 3097, 3, 31, 15, 0, 3097, 3098, 3, 15, 7, 0, 3098, 338, 1, 0, 0, 0, 3099, 3100, 3, 11, 5, 0, 3100, 3101, 3, 47, 23, 0, 3101, 3102, 3, 41, 20, 0, 3102, 3103, 3, 41, 20, 0, 3103, 3104, 3, 15, 7, 0, 3104, 3105, 3, 33, 16, 0, 3105, 3106, 3, 45, 22, 0, 3106, 3107, 5, 95, 0, 0, 3107, 3108, 3, 45, 22, 0, 3108, 3109, 3, 23, 11, 0, 3109, 3110, 3, 31, 15, 0, 3110, 3111, 3, 15, 7, 0, 3111, 3112, 3, 43, 21, 0, 3112, 3113, 3, 45, 22, 0, 3113, 3114, 3, 7, 3, 0, 3114, 3115, 3, 31, 15, 0, 3115, 3116, 3, 37, 18, 0, 3116, 340, 1, 0, 0, 0, 3117, 3118, 3, 11, 5, 0, 3118, 3119, 3, 47, 23, 0, 3119, 3120, 3, 41, 20, 0, 3120, 3121, 3, 41, 20, 0, 3121, 3122, 3, 15, 7, 0, 3122, 3123, 3, 33, 16, 0, 3123, 3124, 3, 45, 22, 0, 3124, 3125, 5, 95, 0, 0, 3125, 3126, 3, 45, 22, 0, 3126, 3127, 3, 41, 20, 0, 3127, 3128, 3, 7, 3, 0, 3128, 3129, 3, 33, 16, 0, 3129, 3130, 3, 43, 21, 0, 3130, 3131, 3, 17, 8, 0, 3131, 3132, 3, 35, 17, 0, 3132, 3133, 3, 41, 20, 0, 3133, 3134, 3, 31, 15, 0, 3134, 3135, 5, 95, 0, 0, 3135, 3136, 3, 19, 9, 0, 3136, 3137, 3, 41, 20, 0, 3137, 3138, 3, 35, 17, 0, 3138, 3139, 3, 47, 23, 0, 3139, 3140, 3, 37, 18, 0, 3140, 3141, 5, 95, 0, 0, 3141, 3142, 3, 17, 8, 0, 3142, 3143, 3, 35, 17, 0, 3143, 3144, 3, 41, 20, 0, 3144, 3145, 5, 95, 0, 0, 3145, 3146, 3, 45, 22, 0, 3146, 3147, 3, 55, 27, 0, 3147, 3148, 3, 37, 18, 0, 3148, 3149, 3, 15, 7, 0, 3149, 342, 1, 0, 0, 0, 3150, 3151, 3, 11, 5, 0, 3151, 3152, 3, 47, 23, 0, 3152, 3153, 3, 41, 20, 0, 3153, 3154, 3, 41, 20, 0, 3154, 3155, 3, 15, 7, 0, 3155, 3156, 3, 33, 16, 0, 3156, 3157, 3, 45, 22, 0, 3157, 3158, 5, 95, 0, 0, 3158, 3159, 3, 47, 23, 0, 3159, 3160, 3, 43, 21, 0, 3160, 3161, 3, 15, 7, 0, 3161, 3162, 3, 41, 20, 0, 3162, 344, 1, 0, 0, 0, 3163, 3164, 3, 11, 5, 0, 3164, 3165, 3, 47, 23, 0, 3165, 3166, 3, 41, 20, 0, 3166, 3167, 3, 43, 21, 0, 3167, 3168, 3, 35, 17, 0, 3168, 3169, 3, 41, 20, 0, 3169, 346, 1, 0, 0, 0, 3170, 3171, 3, 11, 5, 0, 3171, 3172, 3, 47, 23, 0, 3172, 3173, 3, 41, 20, 0, 3173, 3174, 3, 43, 21, 0, 3174, 3175, 3, 35, 17, 0, 3175, 3176, 3, 41, 20, 0, 3176, 3177, 5, 95, 0, 0, 3177, 3178, 3, 33, 16, 0, 3178, 3179, 3, 7, 3, 0, 3179, 3180, 3, 31, 15, 0, 3180, 3181, 3, 15, 7, 0, 3181, 348, 1, 0, 0, 0, 3182, 3183, 3, 11, 5, 0, 3183, 3184, 3, 55, 27, 0, 3184, 3185, 3, 11, 5, 0, 3185, 3186, 3, 29, 14, 0, 3186, 3187, 3, 15, 7, 0, 3187, 350, 1, 0, 0, 0, 3188, 3189, 3, 13, 6, 0, 3189, 3190, 3, 7, 3, 0, 3190, 3191, 3, 45, 22, 0, 3191, 3192, 3, 7, 3, 0, 3192, 352, 1, 0, 0, 0, 3193, 3194, 3, 13, 6, 0, 3194, 3195, 3, 7, 3, 0, 3195, 3196, 3, 45, 22, 0, 3196, 3197, 3, 7, 3, 0, 3197, 3198, 3, 9, 4, 0, 3198, 3199, 3, 7, 3, 0, 3199, 3200, 3, 43, 21, 0, 3200, 3201, 3, 15, 7, 0, 3201, 354, 1, 0, 0, 0, 3202, 3203, 3, 13, 6, 0, 3203, 3204, 3, 7, 3, 0, 3204, 3205, 3, 45, 22, 0, 3205, 3206, 3, 15, 7, 0, 3206, 356, 1, 0, 0, 0, 3207, 3208, 3, 13, 6, 0, 3208, 3209, 3, 7, 3, 0, 3209, 3210, 3, 45, 22, 0, 3210, 3211, 3, 15, 7, 0, 3211, 3212, 3, 45, 22, 0, 3212, 3213, 3, 23, 11, 0, 3213, 3214, 3, 31, 15, 0, 3214, 3215, 3, 15, 7, 0, 3215, 3216, 5, 95, 0, 0, 3216, 3217, 3, 23, 11, 0, 3217, 3218, 3, 33, 16, 0, 3218, 3219, 3, 45, 22, 0, 3219, 3220, 3, 15, 7, 0, 3220, 3221, 3, 41, 20, 0, 3221, 3222, 3, 49, 24, 0, 3222, 3223, 3, 7, 3, 0, 3223, 3224, 3, 29, 14, 0, 3224, 3225, 5, 95, 0, 0, 3225, 3226, 3, 11, 5, 0, 3226, 3227, 3, 35, 17, 0, 3227, 3228, 3, 13, 6, 0, 3228, 3229, 3, 15, 7, 0, 3229, 358, 1, 0, 0, 0, 3230, 3231, 3, 13, 6, 0, 3231, 3232, 3, 7, 3, 0, 3232, 3233, 3, 45, 22, 0, 3233, 3234, 3, 15, 7, 0, 3234, 3235, 3, 45, 22, 0, 3235, 3236, 3, 23, 11, 0, 3236, 3237, 3, 31, 15, 0, 3237, 3238, 3, 15, 7, 0, 3238, 3239, 5, 95, 0, 0, 3239, 3240, 3, 23, 11, 0, 3240, 3241, 3, 33, 16, 0, 3241, 3242, 3, 45, 22, 0, 3242, 3243, 3, 15, 7, 0, 3243, 3244, 3, 41, 20, 0, 3244, 3245, 3, 49, 24, 0, 3245, 3246, 3, 7, 3, 0, 3246, 3247, 3, 29, 14, 0, 3247, 3248, 5, 95, 0, 0, 3248, 3249, 3, 37, 18, 0, 3249, 3250, 3, 41, 20, 0, 3250, 3251, 3, 15, 7, 0, 3251, 3252, 3, 11, 5, 0, 3252, 3253, 3, 23, 11, 0, 3253, 3254, 3, 43, 21, 0, 3254, 3255, 3, 23, 11, 0, 3255, 3256, 3, 35, 17, 0, 3256, 3257, 3, 33, 16, 0, 3257, 360, 1, 0, 0, 0, 3258, 3259, 3, 13, 6, 0, 3259, 3260, 3, 7, 3, 0, 3260, 3261, 3, 55, 27, 0, 3261, 362, 1, 0, 0, 0, 3262, 3263, 3, 13, 6, 0, 3263, 3264, 3, 15, 7, 0, 3264, 3265, 3, 7, 3, 0, 3265, 3266, 3, 29, 14, 0, 3266, 3267, 3, 29, 14, 0, 3267, 3268, 3, 35, 17, 0, 3268, 3269, 3, 11, 5, 0, 3269, 3270, 3, 7, 3, 0, 3270, 3271, 3, 45, 22, 0, 3271, 3272, 3, 15, 7, 0, 3272, 364, 1, 0, 0, 0, 3273, 3274, 3, 13, 6, 0, 3274, 3275, 3, 15, 7, 0, 3275, 3276, 3, 11, 5, 0, 3276, 366, 1, 0, 0, 0, 3277, 3278, 3, 13, 6, 0, 3278, 3279, 3, 15, 7, 0, 3279, 3280, 3, 11, 5, 0, 3280, 3281, 3, 23, 11, 0, 3281, 3282, 3, 31, 15, 0, 3282, 3283, 3, 7, 3, 0, 3283, 3284, 3, 29, 14, 0, 3284, 368, 1, 0, 0, 0, 3285, 3286, 3, 13, 6, 0, 3286, 3287, 3, 15, 7, 0, 3287, 3288, 3, 11, 5, 0, 3288, 3289, 3, 29, 14, 0, 3289, 3290, 3, 7, 3, 0, 3290, 3291, 3, 41, 20, 0, 3291, 3292, 3, 15, 7, 0, 3292, 370, 1, 0, 0, 0, 3293, 3294, 3, 13, 6, 0, 3294, 3295, 3, 15, 7, 0, 3295, 3296, 3, 17, 8, 0, 3296, 3297, 3, 7, 3, 0, 3297, 3298, 3, 47, 23, 0, 3298, 3299, 3, 29, 14, 0, 3299, 3300, 3, 45, 22, 0, 3300, 372, 1, 0, 0, 0, 3301, 3302, 3, 13, 6, 0, 3302, 3303, 3, 15, 7, 0, 3303, 3304, 3, 17, 8, 0, 3304, 3305, 3, 7, 3, 0, 3305, 3306, 3, 47, 23, 0, 3306, 3307, 3, 29, 14, 0, 3307, 3308, 3, 45, 22, 0, 3308, 3309, 3, 43, 21, 0, 3309, 374, 1, 0, 0, 0, 3310, 3311, 3, 13, 6, 0, 3311, 3312, 3, 15, 7, 0, 3312, 3313, 3, 17, 8, 0, 3313, 3314, 3, 15, 7, 0, 3314, 3315, 3, 41, 20, 0, 3315, 3316, 3, 7, 3, 0, 3316, 3317, 3, 9, 4, 0, 3317, 3318, 3, 29, 14, 0, 3318, 3319, 3, 15, 7, 0, 3319, 376, 1, 0, 0, 0, 3320, 3321, 3, 13, 6, 0, 3321, 3322, 3, 15, 7, 0, 3322, 3323, 3, 17, 8, 0, 3323, 3324, 3, 15, 7, 0, 3324, 3325, 3, 41, 20, 0, 3325, 3326, 3, 41, 20, 0, 3326, 3327, 3, 7, 3, 0, 3327, 3328, 3, 9, 4, 0, 3328, 3329, 3, 29, 14, 0, 3329, 3330, 3, 15, 7, 0, 3330, 378, 1, 0, 0, 0, 3331, 3332, 3, 13, 6, 0, 3332, 3333, 3, 15, 7, 0, 3333, 3334, 3, 17, 8, 0, 3334, 3335, 3, 15, 7, 0, 3335, 3336, 3, 41, 20, 0, 3336, 3337, 3, 41, 20, 0, 3337, 3338, 3, 15, 7, 0, 3338, 3339, 3, 13, 6, 0, 3339, 380, 1, 0, 0, 0, 3340, 3341, 3, 13, 6, 0, 3341, 3342, 3, 15, 7, 0, 3342, 3343, 3, 17, 8, 0, 3343, 3344, 3, 23, 11, 0, 3344, 3345, 3, 33, 16, 0, 3345, 3346, 3, 15, 7, 0, 3346, 3347, 3, 13, 6, 0, 3347, 382, 1, 0, 0, 0, 3348, 3349, 3, 13, 6, 0, 3349, 3350, 3, 15, 7, 0, 3350, 3351, 3, 17, 8, 0, 3351, 3352, 3, 23, 11, 0, 3352, 3353, 3, 33, 16, 0, 3353, 3354, 3, 15, 7, 0, 3354, 3355, 3, 41, 20, 0, 3355, 384, 1, 0, 0, 0, 3356, 3357, 3, 13, 6, 0, 3357, 3358, 3, 15, 7, 0, 3358, 3359, 3, 19, 9, 0, 3359, 3360, 3, 41, 20, 0, 3360, 3361, 3, 15, 7, 0, 3361, 3362, 3, 15, 7, 0, 3362, 386, 1, 0, 0, 0, 3363, 3364, 3, 13, 6, 0, 3364, 3365, 3, 15, 7, 0, 3365, 3366, 3, 29, 14, 0, 3366, 3367, 3, 15, 7, 0, 3367, 3368, 3, 45, 22, 0, 3368, 3369, 3, 15, 7, 0, 3369, 388, 1, 0, 0, 0, 3370, 3371, 3, 13, 6, 0, 3371, 3372, 3, 15, 7, 0, 3372, 3373, 3, 29, 14, 0, 3373, 3374, 3, 23, 11, 0, 3374, 3375, 3, 31, 15, 0, 3375, 3376, 3, 23, 11, 0, 3376, 3377, 3, 45, 22, 0, 3377, 3378, 3, 15, 7, 0, 3378, 3379, 3, 41, 20, 0, 3379, 390, 1, 0, 0, 0, 3380, 3381, 3, 13, 6, 0, 3381, 3382, 3, 15, 7, 0, 3382, 3383, 3, 29, 14, 0, 3383, 3384, 3, 23, 11, 0, 3384, 3385, 3, 31, 15, 0, 3385, 3386, 3, 23, 11, 0, 3386, 3387, 3, 45, 22, 0, 3387, 3388, 3, 15, 7, 0, 3388, 3389, 3, 41, 20, 0, 3389, 3390, 3, 43, 21, 0, 3390, 392, 1, 0, 0, 0, 3391, 3392, 3, 13, 6, 0, 3392, 3393, 3, 15, 7, 0, 3393, 3394, 3, 33, 16, 0, 3394, 3395, 3, 43, 21, 0, 3395, 3396, 3, 15, 7, 0, 3396, 3397, 5, 95, 0, 0, 3397, 3398, 3, 41, 20, 0, 3398, 3399, 3, 7, 3, 0, 3399, 3400, 3, 33, 16, 0, 3400, 3401, 3, 27, 13, 0, 3401, 394, 1, 0, 0, 0, 3402, 3403, 3, 13, 6, 0, 3403, 3404, 3, 15, 7, 0, 3404, 3405, 3, 37, 18, 0, 3405, 3406, 3, 15, 7, 0, 3406, 3407, 3, 33, 16, 0, 3407, 3408, 3, 13, 6, 0, 3408, 3409, 3, 43, 21, 0, 3409, 396, 1, 0, 0, 0, 3410, 3411, 3, 13, 6, 0, 3411, 3412, 3, 15, 7, 0, 3412, 3413, 3, 37, 18, 0, 3413, 3414, 3, 45, 22, 0, 3414, 3415, 3, 21, 10, 0, 3415, 398, 1, 0, 0, 0, 3416, 3417, 3, 13, 6, 0, 3417, 3418, 3, 15, 7, 0, 3418, 3419, 3, 41, 20, 0, 3419, 3420, 3, 15, 7, 0, 3420, 3421, 3, 17, 8, 0, 3421, 400, 1, 0, 0, 0, 3422, 3423, 3, 13, 6, 0, 3423, 3424, 3, 15, 7, 0, 3424, 3425, 3, 41, 20, 0, 3425, 3426, 3, 23, 11, 0, 3426, 3427, 3, 49, 24, 0, 3427, 3428, 3, 15, 7, 0, 3428, 3429, 3, 13, 6, 0, 3429, 402, 1, 0, 0, 0, 3430, 3431, 3, 13, 6, 0, 3431, 3432, 3, 15, 7, 0, 3432, 3433, 3, 43, 21, 0, 3433, 3434, 3, 11, 5, 0, 3434, 404, 1, 0, 0, 0, 3435, 3436, 3, 13, 6, 0, 3436, 3437, 3, 15, 7, 0, 3437, 3438, 3, 43, 21, 0, 3438, 3439, 3, 11, 5, 0, 3439, 3440, 3, 41, 20, 0, 3440, 3441, 3, 23, 11, 0, 3441, 3442, 3, 9, 4, 0, 3442, 3443, 3, 15, 7, 0, 3443, 406, 1, 0, 0, 0, 3444, 3445, 3, 13, 6, 0, 3445, 3446, 3, 15, 7, 0, 3446, 3447, 3, 43, 21, 0, 3447, 3448, 3, 11, 5, 0, 3448, 3449, 3, 41, 20, 0, 3449, 3450, 3, 23, 11, 0, 3450, 3451, 3, 37, 18, 0, 3451, 3452, 3, 45, 22, 0, 3452, 3453, 3, 35, 17, 0, 3453, 3454, 3, 41, 20, 0, 3454, 408, 1, 0, 0, 0, 3455, 3456, 3, 13, 6, 0, 3456, 3457, 3, 15, 7, 0, 3457, 3458, 3, 43, 21, 0, 3458, 3459, 3, 45, 22, 0, 3459, 3460, 3, 41, 20, 0, 3460, 3461, 3, 35, 17, 0, 3461, 3462, 3, 55, 27, 0, 3462, 410, 1, 0, 0, 0, 3463, 3464, 3, 13, 6, 0, 3464, 3465, 3, 15, 7, 0, 3465, 3466, 3, 43, 21, 0, 3466, 3467, 3, 45, 22, 0, 3467, 3468, 3, 41, 20, 0, 3468, 3469, 3, 47, 23, 0, 3469, 3470, 3, 11, 5, 0, 3470, 3471, 3, 45, 22, 0, 3471, 3472, 3, 35, 17, 0, 3472, 3473, 3, 41, 20, 0, 3473, 412, 1, 0, 0, 0, 3474, 3475, 3, 13, 6, 0, 3475, 3476, 3, 15, 7, 0, 3476, 3477, 3, 45, 22, 0, 3477, 3478, 3, 15, 7, 0, 3478, 3479, 3, 41, 20, 0, 3479, 3480, 3, 31, 15, 0, 3480, 3481, 3, 23, 11, 0, 3481, 3482, 3, 33, 16, 0, 3482, 3483, 3, 23, 11, 0, 3483, 3484, 3, 43, 21, 0, 3484, 3485, 3, 45, 22, 0, 3485, 3486, 3, 23, 11, 0, 3486, 3487, 3, 11, 5, 0, 3487, 414, 1, 0, 0, 0, 3488, 3489, 3, 13, 6, 0, 3489, 3490, 3, 23, 11, 0, 3490, 3491, 3, 7, 3, 0, 3491, 3492, 3, 19, 9, 0, 3492, 3493, 3, 33, 16, 0, 3493, 3494, 3, 35, 17, 0, 3494, 3495, 3, 43, 21, 0, 3495, 3496, 3, 45, 22, 0, 3496, 3497, 3, 23, 11, 0, 3497, 3498, 3, 11, 5, 0, 3498, 3499, 3, 43, 21, 0, 3499, 416, 1, 0, 0, 0, 3500, 3501, 3, 13, 6, 0, 3501, 3502, 3, 23, 11, 0, 3502, 3503, 3, 11, 5, 0, 3503, 3504, 3, 45, 22, 0, 3504, 3505, 3, 23, 11, 0, 3505, 3506, 3, 35, 17, 0, 3506, 3507, 3, 33, 16, 0, 3507, 3508, 3, 7, 3, 0, 3508, 3509, 3, 41, 20, 0, 3509, 3510, 3, 55, 27, 0, 3510, 418, 1, 0, 0, 0, 3511, 3512, 3, 13, 6, 0, 3512, 3513, 3, 23, 11, 0, 3513, 3514, 3, 43, 21, 0, 3514, 3515, 3, 7, 3, 0, 3515, 3516, 3, 9, 4, 0, 3516, 3517, 3, 29, 14, 0, 3517, 3518, 3, 15, 7, 0, 3518, 420, 1, 0, 0, 0, 3519, 3520, 3, 13, 6, 0, 3520, 3521, 3, 23, 11, 0, 3521, 3522, 3, 43, 21, 0, 3522, 3523, 3, 7, 3, 0, 3523, 3524, 3, 9, 4, 0, 3524, 3525, 3, 29, 14, 0, 3525, 3526, 3, 15, 7, 0, 3526, 3527, 5, 95, 0, 0, 3527, 3528, 3, 37, 18, 0, 3528, 3529, 3, 7, 3, 0, 3529, 3530, 3, 19, 9, 0, 3530, 3531, 3, 15, 7, 0, 3531, 3532, 5, 95, 0, 0, 3532, 3533, 3, 43, 21, 0, 3533, 3534, 3, 27, 13, 0, 3534, 3535, 3, 23, 11, 0, 3535, 3536, 3, 37, 18, 0, 3536, 3537, 3, 37, 18, 0, 3537, 3538, 3, 23, 11, 0, 3538, 3539, 3, 33, 16, 0, 3539, 3540, 3, 19, 9, 0, 3540, 422, 1, 0, 0, 0, 3541, 3542, 3, 13, 6, 0, 3542, 3543, 3, 23, 11, 0, 3543, 3544, 3, 43, 21, 0, 3544, 3545, 3, 11, 5, 0, 3545, 3546, 3, 7, 3, 0, 3546, 3547, 3, 41, 20, 0, 3547, 3548, 3, 13, 6, 0, 3548, 424, 1, 0, 0, 0, 3549, 3550, 3, 13, 6, 0, 3550, 3551, 3, 23, 11, 0, 3551, 3552, 3, 43, 21, 0, 3552, 3553, 3, 11, 5, 0, 3553, 3554, 3, 35, 17, 0, 3554, 3555, 3, 33, 16, 0, 3555, 3556, 3, 33, 16, 0, 3556, 3557, 3, 15, 7, 0, 3557, 3558, 3, 11, 5, 0, 3558, 3559, 3, 45, 22, 0, 3559, 426, 1, 0, 0, 0, 3560, 3561, 3, 13, 6, 0, 3561, 3562, 3, 23, 11, 0, 3562, 3563, 3, 43, 21, 0, 3563, 3564, 3, 37, 18, 0, 3564, 3565, 3, 7, 3, 0, 3565, 3566, 3, 45, 22, 0, 3566, 3567, 3, 11, 5, 0, 3567, 3568, 3, 21, 10, 0, 3568, 428, 1, 0, 0, 0, 3569, 3570, 3, 13, 6, 0, 3570, 3571, 3, 23, 11, 0, 3571, 3572, 3, 43, 21, 0, 3572, 3573, 3, 45, 22, 0, 3573, 3574, 3, 23, 11, 0, 3574, 3575, 3, 33, 16, 0, 3575, 3576, 3, 11, 5, 0, 3576, 3577, 3, 45, 22, 0, 3577, 430, 1, 0, 0, 0, 3578, 3579, 3, 13, 6, 0, 3579, 3580, 3, 35, 17, 0, 3580, 432, 1, 0, 0, 0, 3581, 3582, 3, 13, 6, 0, 3582, 3583, 3, 35, 17, 0, 3583, 3584, 3, 31, 15, 0, 3584, 3585, 3, 7, 3, 0, 3585, 3586, 3, 23, 11, 0, 3586, 3587, 3, 33, 16, 0, 3587, 434, 1, 0, 0, 0, 3588, 3589, 3, 13, 6, 0, 3589, 3590, 3, 35, 17, 0, 3590, 3591, 3, 47, 23, 0, 3591, 3592, 3, 9, 4, 0, 3592, 3593, 3, 29, 14, 0, 3593, 3594, 3, 15, 7, 0, 3594, 436, 1, 0, 0, 0, 3595, 3596, 3, 13, 6, 0, 3596, 3597, 3, 41, 20, 0, 3597, 3598, 3, 35, 17, 0, 3598, 3599, 3, 37, 18, 0, 3599, 438, 1, 0, 0, 0, 3600, 3601, 3, 13, 6, 0, 3601, 3602, 3, 55, 27, 0, 3602, 3603, 3, 33, 16, 0, 3603, 3604, 3, 7, 3, 0, 3604, 3605, 3, 31, 15, 0, 3605, 3606, 3, 23, 11, 0, 3606, 3607, 3, 11, 5, 0, 3607, 440, 1, 0, 0, 0, 3608, 3609, 3, 13, 6, 0, 3609, 3610, 3, 55, 27, 0, 3610, 3611, 3, 33, 16, 0, 3611, 3612, 3, 7, 3, 0, 3612, 3613, 3, 31, 15, 0, 3613, 3614, 3, 23, 11, 0, 3614, 3615, 3, 11, 5, 0, 3615, 3616, 5, 95, 0, 0, 3616, 3617, 3, 17, 8, 0, 3617, 3618, 3, 47, 23, 0, 3618, 3619, 3, 33, 16, 0, 3619, 3620, 3, 11, 5, 0, 3620, 3621, 3, 45, 22, 0, 3621, 3622, 3, 23, 11, 0, 3622, 3623, 3, 35, 17, 0, 3623, 3624, 3, 33, 16, 0, 3624, 442, 1, 0, 0, 0, 3625, 3626, 3, 13, 6, 0, 3626, 3627, 3, 55, 27, 0, 3627, 3628, 3, 33, 16, 0, 3628, 3629, 3, 7, 3, 0, 3629, 3630, 3, 31, 15, 0, 3630, 3631, 3, 23, 11, 0, 3631, 3632, 3, 11, 5, 0, 3632, 3633, 5, 95, 0, 0, 3633, 3634, 3, 17, 8, 0, 3634, 3635, 3, 47, 23, 0, 3635, 3636, 3, 33, 16, 0, 3636, 3637, 3, 11, 5, 0, 3637, 3638, 3, 45, 22, 0, 3638, 3639, 3, 23, 11, 0, 3639, 3640, 3, 35, 17, 0, 3640, 3641, 3, 33, 16, 0, 3641, 3642, 5, 95, 0, 0, 3642, 3643, 3, 11, 5, 0, 3643, 3644, 3, 35, 17, 0, 3644, 3645, 3, 13, 6, 0, 3645, 3646, 3, 15, 7, 0, 3646, 444, 1, 0, 0, 0, 3647, 3648, 3, 15, 7, 0, 3648, 3649, 3, 7, 3, 0, 3649, 3650, 3, 11, 5, 0, 3650, 3651, 3, 21, 10, 0, 3651, 446, 1, 0, 0, 0, 3652, 3653, 3, 15, 7, 0, 3653, 3654, 3, 29, 14, 0, 3654, 3655, 3, 15, 7, 0, 3655, 3656, 3, 31, 15, 0, 3656, 3657, 3, 15, 7, 0, 3657, 3658, 3, 33, 16, 0, 3658, 3659, 3, 45, 22, 0, 3659, 448, 1, 0, 0, 0, 3660, 3661, 3, 15, 7, 0, 3661, 3662, 3, 29, 14, 0, 3662, 3663, 3, 43, 21, 0, 3663, 3664, 3, 15, 7, 0, 3664, 450, 1, 0, 0, 0, 3665, 3666, 3, 15, 7, 0, 3666, 3667, 3, 33, 16, 0, 3667, 3668, 3, 7, 3, 0, 3668, 3669, 3, 9, 4, 0, 3669, 3670, 3, 29, 14, 0, 3670, 3671, 3, 15, 7, 0, 3671, 452, 1, 0, 0, 0, 3672, 3673, 3, 15, 7, 0, 3673, 3674, 3, 33, 16, 0, 3674, 3675, 3, 11, 5, 0, 3675, 3676, 3, 35, 17, 0, 3676, 3677, 3, 13, 6, 0, 3677, 3678, 3, 23, 11, 0, 3678, 3679, 3, 33, 16, 0, 3679, 3680, 3, 19, 9, 0, 3680, 454, 1, 0, 0, 0, 3681, 3682, 3, 15, 7, 0, 3682, 3683, 3, 33, 16, 0, 3683, 3684, 3, 11, 5, 0, 3684, 3685, 3, 41, 20, 0, 3685, 3686, 3, 55, 27, 0, 3686, 3687, 3, 37, 18, 0, 3687, 3688, 3, 45, 22, 0, 3688, 3689, 3, 15, 7, 0, 3689, 3690, 3, 13, 6, 0, 3690, 456, 1, 0, 0, 0, 3691, 3692, 3, 15, 7, 0, 3692, 3693, 3, 33, 16, 0, 3693, 3694, 3, 13, 6, 0, 3694, 458, 1, 0, 0, 0, 3695, 3696, 3, 15, 7, 0, 3696, 3697, 3, 33, 16, 0, 3697, 3698, 3, 13, 6, 0, 3698, 3699, 5, 45, 0, 0, 3699, 3700, 3, 15, 7, 0, 3700, 3701, 3, 53, 26, 0, 3701, 3702, 3, 15, 7, 0, 3702, 3703, 3, 11, 5, 0, 3703, 460, 1, 0, 0, 0, 3704, 3705, 3, 15, 7, 0, 3705, 3706, 3, 39, 19, 0, 3706, 3707, 3, 47, 23, 0, 3707, 3708, 3, 7, 3, 0, 3708, 3709, 3, 29, 14, 0, 3709, 3710, 3, 43, 21, 0, 3710, 462, 1, 0, 0, 0, 3711, 3712, 3, 15, 7, 0, 3712, 3713, 3, 43, 21, 0, 3713, 3714, 3, 11, 5, 0, 3714, 3715, 3, 7, 3, 0, 3715, 3716, 3, 37, 18, 0, 3716, 3717, 3, 15, 7, 0, 3717, 464, 1, 0, 0, 0, 3718, 3719, 3, 15, 7, 0, 3719, 3720, 3, 49, 24, 0, 3720, 3721, 3, 15, 7, 0, 3721, 3722, 3, 41, 20, 0, 3722, 3723, 3, 55, 27, 0, 3723, 466, 1, 0, 0, 0, 3724, 3725, 3, 15, 7, 0, 3725, 3726, 3, 53, 26, 0, 3726, 3727, 3, 11, 5, 0, 3727, 3728, 3, 15, 7, 0, 3728, 3729, 3, 37, 18, 0, 3729, 3730, 3, 45, 22, 0, 3730, 468, 1, 0, 0, 0, 3731, 3732, 3, 15, 7, 0, 3732, 3733, 3, 53, 26, 0, 3733, 3734, 3, 11, 5, 0, 3734, 3735, 3, 15, 7, 0, 3735, 3736, 3, 37, 18, 0, 3736, 3737, 3, 45, 22, 0, 3737, 3738, 3, 23, 11, 0, 3738, 3739, 3, 35, 17, 0, 3739, 3740, 3, 33, 16, 0, 3740, 470, 1, 0, 0, 0, 3741, 3742, 3, 15, 7, 0, 3742, 3743, 3, 53, 26, 0, 3743, 3744, 3, 11, 5, 0, 3744, 3745, 3, 29, 14, 0, 3745, 3746, 3, 47, 23, 0, 3746, 3747, 3, 13, 6, 0, 3747, 3748, 3, 15, 7, 0, 3748, 472, 1, 0, 0, 0, 3749, 3750, 3, 15, 7, 0, 3750, 3751, 3, 53, 26, 0, 3751, 3752, 3, 11, 5, 0, 3752, 3753, 3, 29, 14, 0, 3753, 3754, 3, 47, 23, 0, 3754, 3755, 3, 13, 6, 0, 3755, 3756, 3, 23, 11, 0, 3756, 3757, 3, 33, 16, 0, 3757, 3758, 3, 19, 9, 0, 3758, 474, 1, 0, 0, 0, 3759, 3760, 3, 15, 7, 0, 3760, 3761, 3, 53, 26, 0, 3761, 3762, 3, 11, 5, 0, 3762, 3763, 3, 29, 14, 0, 3763, 3764, 3, 47, 23, 0, 3764, 3765, 3, 43, 21, 0, 3765, 3766, 3, 23, 11, 0, 3766, 3767, 3, 49, 24, 0, 3767, 3768, 3, 15, 7, 0, 3768, 476, 1, 0, 0, 0, 3769, 3770, 3, 15, 7, 0, 3770, 3771, 3, 53, 26, 0, 3771, 3772, 3, 15, 7, 0, 3772, 3773, 3, 11, 5, 0, 3773, 478, 1, 0, 0, 0, 3774, 3775, 3, 15, 7, 0, 3775, 3776, 3, 53, 26, 0, 3776, 3777, 3, 15, 7, 0, 3777, 3778, 3, 11, 5, 0, 3778, 3779, 3, 47, 23, 0, 3779, 3780, 3, 45, 22, 0, 3780, 3781, 3, 15, 7, 0, 3781, 480, 1, 0, 0, 0, 3782, 3783, 3, 15, 7, 0, 3783, 3784, 3, 53, 26, 0, 3784, 3785, 3, 23, 11, 0, 3785, 3786, 3, 43, 21, 0, 3786, 3787, 3, 45, 22, 0, 3787, 3788, 3, 23, 11, 0, 3788, 3789, 3, 33, 16, 0, 3789, 3790, 3, 19, 9, 0, 3790, 482, 1, 0, 0, 0, 3791, 3792, 3, 15, 7, 0, 3792, 3793, 3, 53, 26, 0, 3793, 3794, 3, 23, 11, 0, 3794, 3795, 3, 43, 21, 0, 3795, 3796, 3, 45, 22, 0, 3796, 3797, 3, 43, 21, 0, 3797, 484, 1, 0, 0, 0, 3798, 3799, 3, 15, 7, 0, 3799, 3800, 3, 53, 26, 0, 3800, 3801, 3, 37, 18, 0, 3801, 486, 1, 0, 0, 0, 3802, 3803, 3, 15, 7, 0, 3803, 3804, 3, 53, 26, 0, 3804, 3805, 3, 37, 18, 0, 3805, 3806, 3, 29, 14, 0, 3806, 3807, 3, 7, 3, 0, 3807, 3808, 3, 23, 11, 0, 3808, 3809, 3, 33, 16, 0, 3809, 488, 1, 0, 0, 0, 3810, 3811, 3, 15, 7, 0, 3811, 3812, 3, 53, 26, 0, 3812, 3813, 3, 45, 22, 0, 3813, 3814, 3, 15, 7, 0, 3814, 3815, 3, 33, 16, 0, 3815, 3816, 3, 13, 6, 0, 3816, 3817, 3, 15, 7, 0, 3817, 3818, 3, 13, 6, 0, 3818, 490, 1, 0, 0, 0, 3819, 3820, 3, 15, 7, 0, 3820, 3821, 3, 53, 26, 0, 3821, 3822, 3, 45, 22, 0, 3822, 3823, 3, 15, 7, 0, 3823, 3824, 3, 33, 16, 0, 3824, 3825, 3, 43, 21, 0, 3825, 3826, 3, 23, 11, 0, 3826, 3827, 3, 35, 17, 0, 3827, 3828, 3, 33, 16, 0, 3828, 492, 1, 0, 0, 0, 3829, 3830, 3, 15, 7, 0, 3830, 3831, 3, 53, 26, 0, 3831, 3832, 3, 45, 22, 0, 3832, 3833, 3, 15, 7, 0, 3833, 3834, 3, 41, 20, 0, 3834, 3835, 3, 33, 16, 0, 3835, 3836, 3, 7, 3, 0, 3836, 3837, 3, 29, 14, 0, 3837, 494, 1, 0, 0, 0, 3838, 3839, 3, 15, 7, 0, 3839, 3840, 3, 53, 26, 0, 3840, 3841, 3, 45, 22, 0, 3841, 3842, 3, 41, 20, 0, 3842, 3843, 3, 7, 3, 0, 3843, 3844, 3, 11, 5, 0, 3844, 3845, 3, 45, 22, 0, 3845, 496, 1, 0, 0, 0, 3846, 3847, 3, 17, 8, 0, 3847, 3848, 3, 7, 3, 0, 3848, 3849, 3, 29, 14, 0, 3849, 3850, 3, 43, 21, 0, 3850, 3851, 3, 15, 7, 0, 3851, 498, 1, 0, 0, 0, 3852, 3853, 3, 17, 8, 0, 3853, 3854, 3, 15, 7, 0, 3854, 3855, 3, 45, 22, 0, 3855, 3856, 3, 11, 5, 0, 3856, 3857, 3, 21, 10, 0, 3857, 500, 1, 0, 0, 0, 3858, 3859, 3, 17, 8, 0, 3859, 3860, 3, 23, 11, 0, 3860, 3861, 3, 15, 7, 0, 3861, 3862, 3, 29, 14, 0, 3862, 3863, 3, 13, 6, 0, 3863, 3864, 3, 43, 21, 0, 3864, 502, 1, 0, 0, 0, 3865, 3866, 3, 17, 8, 0, 3866, 3867, 3, 23, 11, 0, 3867, 3868, 3, 29, 14, 0, 3868, 3869, 3, 45, 22, 0, 3869, 3870, 3, 15, 7, 0, 3870, 3871, 3, 41, 20, 0, 3871, 504, 1, 0, 0, 0, 3872, 3873, 3, 17, 8, 0, 3873, 3874, 3, 23, 11, 0, 3874, 3875, 3, 33, 16, 0, 3875, 3876, 3, 7, 3, 0, 3876, 3877, 3, 29, 14, 0, 3877, 506, 1, 0, 0, 0, 3878, 3879, 3, 17, 8, 0, 3879, 3880, 3, 23, 11, 0, 3880, 3881, 3, 41, 20, 0, 3881, 3882, 3, 43, 21, 0, 3882, 3883, 3, 45, 22, 0, 3883, 508, 1, 0, 0, 0, 3884, 3885, 3, 17, 8, 0, 3885, 3886, 3, 29, 14, 0, 3886, 3887, 3, 35, 17, 0, 3887, 3888, 3, 7, 3, 0, 3888, 3889, 3, 45, 22, 0, 3889, 510, 1, 0, 0, 0, 3890, 3891, 3, 17, 8, 0, 3891, 3892, 3, 29, 14, 0, 3892, 3893, 3, 35, 17, 0, 3893, 3894, 3, 35, 17, 0, 3894, 3895, 3, 41, 20, 0, 3895, 512, 1, 0, 0, 0, 3896, 3897, 3, 17, 8, 0, 3897, 3898, 3, 35, 17, 0, 3898, 3899, 3, 29, 14, 0, 3899, 3900, 3, 29, 14, 0, 3900, 3901, 3, 35, 17, 0, 3901, 3902, 3, 51, 25, 0, 3902, 3903, 3, 23, 11, 0, 3903, 3904, 3, 33, 16, 0, 3904, 3905, 3, 19, 9, 0, 3905, 514, 1, 0, 0, 0, 3906, 3907, 3, 17, 8, 0, 3907, 3908, 3, 35, 17, 0, 3908, 3909, 3, 41, 20, 0, 3909, 516, 1, 0, 0, 0, 3910, 3911, 3, 17, 8, 0, 3911, 3912, 3, 35, 17, 0, 3912, 3913, 3, 41, 20, 0, 3913, 3914, 3, 11, 5, 0, 3914, 3915, 3, 15, 7, 0, 3915, 518, 1, 0, 0, 0, 3916, 3917, 3, 17, 8, 0, 3917, 3918, 3, 35, 17, 0, 3918, 3919, 3, 41, 20, 0, 3919, 3920, 3, 15, 7, 0, 3920, 3921, 3, 23, 11, 0, 3921, 3922, 3, 19, 9, 0, 3922, 3923, 3, 33, 16, 0, 3923, 520, 1, 0, 0, 0, 3924, 3925, 3, 17, 8, 0, 3925, 3926, 3, 35, 17, 0, 3926, 3927, 3, 41, 20, 0, 3927, 3928, 3, 31, 15, 0, 3928, 3929, 3, 7, 3, 0, 3929, 3930, 3, 45, 22, 0, 3930, 522, 1, 0, 0, 0, 3931, 3932, 3, 17, 8, 0, 3932, 3933, 3, 35, 17, 0, 3933, 3934, 3, 41, 20, 0, 3934, 3935, 3, 45, 22, 0, 3935, 3936, 3, 41, 20, 0, 3936, 3937, 3, 7, 3, 0, 3937, 3938, 3, 33, 16, 0, 3938, 524, 1, 0, 0, 0, 3939, 3940, 3, 17, 8, 0, 3940, 3941, 3, 35, 17, 0, 3941, 3942, 3, 41, 20, 0, 3942, 3943, 3, 51, 25, 0, 3943, 3944, 3, 7, 3, 0, 3944, 3945, 3, 41, 20, 0, 3945, 3946, 3, 13, 6, 0, 3946, 526, 1, 0, 0, 0, 3947, 3948, 3, 17, 8, 0, 3948, 3949, 3, 35, 17, 0, 3949, 3950, 3, 47, 23, 0, 3950, 3951, 3, 33, 16, 0, 3951, 3952, 3, 13, 6, 0, 3952, 528, 1, 0, 0, 0, 3953, 3954, 3, 17, 8, 0, 3954, 3955, 3, 41, 20, 0, 3955, 3956, 3, 15, 7, 0, 3956, 3957, 3, 15, 7, 0, 3957, 530, 1, 0, 0, 0, 3958, 3959, 3, 17, 8, 0, 3959, 3960, 3, 41, 20, 0, 3960, 3961, 3, 15, 7, 0, 3961, 3962, 3, 15, 7, 0, 3962, 3963, 3, 57, 28, 0, 3963, 3964, 3, 15, 7, 0, 3964, 532, 1, 0, 0, 0, 3965, 3966, 3, 17, 8, 0, 3966, 3967, 3, 41, 20, 0, 3967, 3968, 3, 35, 17, 0, 3968, 3969, 3, 31, 15, 0, 3969, 534, 1, 0, 0, 0, 3970, 3971, 3, 17, 8, 0, 3971, 3972, 3, 47, 23, 0, 3972, 3973, 3, 29, 14, 0, 3973, 3974, 3, 29, 14, 0, 3974, 536, 1, 0, 0, 0, 3975, 3976, 3, 17, 8, 0, 3976, 3977, 3, 47, 23, 0, 3977, 3978, 3, 33, 16, 0, 3978, 3979, 3, 11, 5, 0, 3979, 3980, 3, 45, 22, 0, 3980, 3981, 3, 23, 11, 0, 3981, 3982, 3, 35, 17, 0, 3982, 3983, 3, 33, 16, 0, 3983, 538, 1, 0, 0, 0, 3984, 3985, 3, 17, 8, 0, 3985, 3986, 3, 47, 23, 0, 3986, 3987, 3, 43, 21, 0, 3987, 3988, 3, 23, 11, 0, 3988, 3989, 3, 35, 17, 0, 3989, 3990, 3, 33, 16, 0, 3990, 540, 1, 0, 0, 0, 3991, 3992, 3, 19, 9, 0, 3992, 542, 1, 0, 0, 0, 3993, 3994, 3, 19, 9, 0, 3994, 3995, 3, 15, 7, 0, 3995, 3996, 3, 33, 16, 0, 3996, 3997, 3, 15, 7, 0, 3997, 3998, 3, 41, 20, 0, 3998, 3999, 3, 7, 3, 0, 3999, 4000, 3, 29, 14, 0, 4000, 544, 1, 0, 0, 0, 4001, 4002, 3, 19, 9, 0, 4002, 4003, 3, 15, 7, 0, 4003, 4004, 3, 33, 16, 0, 4004, 4005, 3, 15, 7, 0, 4005, 4006, 3, 41, 20, 0, 4006, 4007, 3, 7, 3, 0, 4007, 4008, 3, 45, 22, 0, 4008, 4009, 3, 15, 7, 0, 4009, 4010, 3, 13, 6, 0, 4010, 546, 1, 0, 0, 0, 4011, 4012, 3, 19, 9, 0, 4012, 4013, 3, 15, 7, 0, 4013, 4014, 3, 45, 22, 0, 4014, 548, 1, 0, 0, 0, 4015, 4016, 3, 19, 9, 0, 4016, 4017, 3, 29, 14, 0, 4017, 4018, 3, 35, 17, 0, 4018, 4019, 3, 9, 4, 0, 4019, 4020, 3, 7, 3, 0, 4020, 4021, 3, 29, 14, 0, 4021, 550, 1, 0, 0, 0, 4022, 4023, 3, 19, 9, 0, 4023, 4024, 3, 35, 17, 0, 4024, 552, 1, 0, 0, 0, 4025, 4026, 3, 19, 9, 0, 4026, 4027, 3, 35, 17, 0, 4027, 4028, 3, 45, 22, 0, 4028, 4029, 3, 35, 17, 0, 4029, 554, 1, 0, 0, 0, 4030, 4031, 3, 19, 9, 0, 4031, 4032, 3, 41, 20, 0, 4032, 4033, 3, 7, 3, 0, 4033, 4034, 3, 33, 16, 0, 4034, 4035, 3, 45, 22, 0, 4035, 556, 1, 0, 0, 0, 4036, 4037, 3, 19, 9, 0, 4037, 4038, 3, 41, 20, 0, 4038, 4039, 3, 7, 3, 0, 4039, 4040, 3, 33, 16, 0, 4040, 4041, 3, 45, 22, 0, 4041, 4042, 3, 15, 7, 0, 4042, 4043, 3, 13, 6, 0, 4043, 558, 1, 0, 0, 0, 4044, 4045, 3, 19, 9, 0, 4045, 4046, 3, 41, 20, 0, 4046, 4047, 3, 15, 7, 0, 4047, 4048, 3, 7, 3, 0, 4048, 4049, 3, 45, 22, 0, 4049, 4050, 3, 15, 7, 0, 4050, 4051, 3, 43, 21, 0, 4051, 4052, 3, 45, 22, 0, 4052, 560, 1, 0, 0, 0, 4053, 4054, 3, 19, 9, 0, 4054, 4055, 3, 41, 20, 0, 4055, 4056, 3, 35, 17, 0, 4056, 4057, 3, 47, 23, 0, 4057, 4058, 3, 37, 18, 0, 4058, 562, 1, 0, 0, 0, 4059, 4060, 3, 19, 9, 0, 4060, 4061, 3, 41, 20, 0, 4061, 4062, 3, 35, 17, 0, 4062, 4063, 3, 47, 23, 0, 4063, 4064, 3, 37, 18, 0, 4064, 4065, 3, 23, 11, 0, 4065, 4066, 3, 33, 16, 0, 4066, 4067, 3, 19, 9, 0, 4067, 564, 1, 0, 0, 0, 4068, 4069, 3, 21, 10, 0, 4069, 4070, 3, 7, 3, 0, 4070, 4071, 3, 33, 16, 0, 4071, 4072, 3, 13, 6, 0, 4072, 4073, 3, 29, 14, 0, 4073, 4074, 3, 15, 7, 0, 4074, 4075, 3, 41, 20, 0, 4075, 566, 1, 0, 0, 0, 4076, 4077, 3, 21, 10, 0, 4077, 4078, 3, 7, 3, 0, 4078, 4079, 3, 49, 24, 0, 4079, 4080, 3, 23, 11, 0, 4080, 4081, 3, 33, 16, 0, 4081, 4082, 3, 19, 9, 0, 4082, 568, 1, 0, 0, 0, 4083, 4084, 3, 21, 10, 0, 4084, 4085, 3, 23, 11, 0, 4085, 4086, 3, 15, 7, 0, 4086, 4087, 3, 41, 20, 0, 4087, 4088, 3, 7, 3, 0, 4088, 4089, 3, 41, 20, 0, 4089, 4090, 3, 11, 5, 0, 4090, 4091, 3, 21, 10, 0, 4091, 4092, 3, 55, 27, 0, 4092, 570, 1, 0, 0, 0, 4093, 4094, 3, 21, 10, 0, 4094, 4095, 3, 35, 17, 0, 4095, 4096, 3, 29, 14, 0, 4096, 4097, 3, 13, 6, 0, 4097, 572, 1, 0, 0, 0, 4098, 4099, 3, 21, 10, 0, 4099, 4100, 3, 35, 17, 0, 4100, 4101, 3, 43, 21, 0, 4101, 4102, 3, 45, 22, 0, 4102, 574, 1, 0, 0, 0, 4103, 4104, 3, 21, 10, 0, 4104, 4105, 3, 35, 17, 0, 4105, 4106, 3, 47, 23, 0, 4106, 4107, 3, 41, 20, 0, 4107, 576, 1, 0, 0, 0, 4108, 4109, 3, 23, 11, 0, 4109, 4110, 3, 13, 6, 0, 4110, 4111, 3, 15, 7, 0, 4111, 4112, 3, 33, 16, 0, 4112, 4113, 3, 45, 22, 0, 4113, 4114, 3, 23, 11, 0, 4114, 4115, 3, 45, 22, 0, 4115, 4116, 3, 55, 27, 0, 4116, 578, 1, 0, 0, 0, 4117, 4118, 3, 23, 11, 0, 4118, 4119, 3, 19, 9, 0, 4119, 4120, 3, 33, 16, 0, 4120, 4121, 3, 35, 17, 0, 4121, 4122, 3, 41, 20, 0, 4122, 4123, 3, 15, 7, 0, 4123, 580, 1, 0, 0, 0, 4124, 4125, 3, 23, 11, 0, 4125, 4126, 3, 29, 14, 0, 4126, 4127, 3, 23, 11, 0, 4127, 4128, 3, 27, 13, 0, 4128, 4129, 3, 15, 7, 0, 4129, 582, 1, 0, 0, 0, 4130, 4131, 3, 23, 11, 0, 4131, 4132, 3, 31, 15, 0, 4132, 4133, 3, 31, 15, 0, 4133, 4134, 3, 15, 7, 0, 4134, 4135, 3, 13, 6, 0, 4135, 4136, 3, 23, 11, 0, 4136, 4137, 3, 7, 3, 0, 4137, 4138, 3, 45, 22, 0, 4138, 4139, 3, 15, 7, 0, 4139, 584, 1, 0, 0, 0, 4140, 4141, 3, 23, 11, 0, 4141, 4142, 3, 31, 15, 0, 4142, 4143, 3, 31, 15, 0, 4143, 4144, 3, 47, 23, 0, 4144, 4145, 3, 45, 22, 0, 4145, 4146, 3, 7, 3, 0, 4146, 4147, 3, 9, 4, 0, 4147, 4148, 3, 29, 14, 0, 4148, 4149, 3, 15, 7, 0, 4149, 586, 1, 0, 0, 0, 4150, 4151, 3, 23, 11, 0, 4151, 4152, 3, 31, 15, 0, 4152, 4153, 3, 37, 18, 0, 4153, 4154, 3, 29, 14, 0, 4154, 4155, 3, 15, 7, 0, 4155, 4156, 3, 31, 15, 0, 4156, 4157, 3, 15, 7, 0, 4157, 4158, 3, 33, 16, 0, 4158, 4159, 3, 45, 22, 0, 4159, 4160, 3, 7, 3, 0, 4160, 4161, 3, 45, 22, 0, 4161, 4162, 3, 23, 11, 0, 4162, 4163, 3, 35, 17, 0, 4163, 4164, 3, 33, 16, 0, 4164, 588, 1, 0, 0, 0, 4165, 4166, 3, 23, 11, 0, 4166, 4167, 3, 31, 15, 0, 4167, 4168, 3, 37, 18, 0, 4168, 4169, 3, 29, 14, 0, 4169, 4170, 3, 23, 11, 0, 4170, 4171, 3, 11, 5, 0, 4171, 4172, 3, 23, 11, 0, 4172, 4173, 3, 45, 22, 0, 4173, 590, 1, 0, 0, 0, 4174, 4175, 3, 23, 11, 0, 4175, 4176, 3, 33, 16, 0, 4176, 592, 1, 0, 0, 0, 4177, 4178, 3, 23, 11, 0, 4178, 4179, 3, 33, 16, 0, 4179, 4180, 3, 11, 5, 0, 4180, 4181, 3, 29, 14, 0, 4181, 4182, 3, 47, 23, 0, 4182, 4183, 3, 13, 6, 0, 4183, 4184, 3, 23, 11, 0, 4184, 4185, 3, 33, 16, 0, 4185, 4186, 3, 19, 9, 0, 4186, 594, 1, 0, 0, 0, 4187, 4188, 3, 23, 11, 0, 4188, 4189, 3, 33, 16, 0, 4189, 4190, 3, 11, 5, 0, 4190, 4191, 3, 41, 20, 0, 4191, 4192, 3, 15, 7, 0, 4192, 4193, 3, 31, 15, 0, 4193, 4194, 3, 15, 7, 0, 4194, 4195, 3, 33, 16, 0, 4195, 4196, 3, 45, 22, 0, 4196, 596, 1, 0, 0, 0, 4197, 4198, 3, 23, 11, 0, 4198, 4199, 3, 33, 16, 0, 4199, 4200, 3, 13, 6, 0, 4200, 4201, 3, 15, 7, 0, 4201, 4202, 3, 53, 26, 0, 4202, 598, 1, 0, 0, 0, 4203, 4204, 3, 23, 11, 0, 4204, 4205, 3, 33, 16, 0, 4205, 4206, 3, 13, 6, 0, 4206, 4207, 3, 23, 11, 0, 4207, 4208, 3, 11, 5, 0, 4208, 4209, 3, 7, 3, 0, 4209, 4210, 3, 45, 22, 0, 4210, 4211, 3, 35, 17, 0, 4211, 4212, 3, 41, 20, 0, 4212, 600, 1, 0, 0, 0, 4213, 4214, 3, 23, 11, 0, 4214, 4215, 3, 33, 16, 0, 4215, 4216, 3, 17, 8, 0, 4216, 4217, 3, 23, 11, 0, 4217, 4218, 3, 53, 26, 0, 4218, 602, 1, 0, 0, 0, 4219, 4220, 3, 23, 11, 0, 4220, 4221, 3, 33, 16, 0, 4221, 4222, 3, 21, 10, 0, 4222, 4223, 3, 15, 7, 0, 4223, 4224, 3, 41, 20, 0, 4224, 4225, 3, 23, 11, 0, 4225, 4226, 3, 45, 22, 0, 4226, 4227, 3, 43, 21, 0, 4227, 604, 1, 0, 0, 0, 4228, 4229, 3, 23, 11, 0, 4229, 4230, 3, 33, 16, 0, 4230, 4231, 3, 23, 11, 0, 4231, 4232, 3, 45, 22, 0, 4232, 4233, 3, 23, 11, 0, 4233, 4234, 3, 7, 3, 0, 4234, 4235, 3, 29, 14, 0, 4235, 4236, 3, 23, 11, 0, 4236, 4237, 3, 57, 28, 0, 4237, 4238, 3, 15, 7, 0, 4238, 606, 1, 0, 0, 0, 4239, 4240, 3, 23, 11, 0, 4240, 4241, 3, 33, 16, 0, 4241, 4242, 3, 23, 11, 0, 4242, 4243, 3, 45, 22, 0, 4243, 4244, 3, 23, 11, 0, 4244, 4245, 3, 7, 3, 0, 4245, 4246, 3, 29, 14, 0, 4246, 4247, 3, 29, 14, 0, 4247, 4248, 3, 55, 27, 0, 4248, 608, 1, 0, 0, 0, 4249, 4250, 3, 23, 11, 0, 4250, 4251, 3, 33, 16, 0, 4251, 4252, 3, 33, 16, 0, 4252, 4253, 3, 15, 7, 0, 4253, 4254, 3, 41, 20, 0, 4254, 610, 1, 0, 0, 0, 4255, 4256, 3, 23, 11, 0, 4256, 4257, 3, 33, 16, 0, 4257, 4258, 3, 35, 17, 0, 4258, 4259, 3, 47, 23, 0, 4259, 4260, 3, 45, 22, 0, 4260, 612, 1, 0, 0, 0, 4261, 4262, 3, 23, 11, 0, 4262, 4263, 3, 33, 16, 0, 4263, 4264, 3, 37, 18, 0, 4264, 4265, 3, 47, 23, 0, 4265, 4266, 3, 45, 22, 0, 4266, 614, 1, 0, 0, 0, 4267, 4268, 3, 23, 11, 0, 4268, 4269, 3, 33, 16, 0, 4269, 4270, 3, 43, 21, 0, 4270, 4271, 3, 15, 7, 0, 4271, 4272, 3, 33, 16, 0, 4272, 4273, 3, 43, 21, 0, 4273, 4274, 3, 23, 11, 0, 4274, 4275, 3, 45, 22, 0, 4275, 4276, 3, 23, 11, 0, 4276, 4277, 3, 49, 24, 0, 4277, 4278, 3, 15, 7, 0, 4278, 616, 1, 0, 0, 0, 4279, 4280, 3, 23, 11, 0, 4280, 4281, 3, 33, 16, 0, 4281, 4282, 3, 43, 21, 0, 4282, 4283, 3, 15, 7, 0, 4283, 4284, 3, 41, 20, 0, 4284, 4285, 3, 45, 22, 0, 4285, 618, 1, 0, 0, 0, 4286, 4287, 3, 23, 11, 0, 4287, 4288, 3, 33, 16, 0, 4288, 4289, 3, 43, 21, 0, 4289, 4290, 3, 45, 22, 0, 4290, 4291, 3, 7, 3, 0, 4291, 4292, 3, 33, 16, 0, 4292, 4293, 3, 11, 5, 0, 4293, 4294, 3, 15, 7, 0, 4294, 620, 1, 0, 0, 0, 4295, 4296, 3, 23, 11, 0, 4296, 4297, 3, 33, 16, 0, 4297, 4298, 3, 43, 21, 0, 4298, 4299, 3, 45, 22, 0, 4299, 4300, 3, 7, 3, 0, 4300, 4301, 3, 33, 16, 0, 4301, 4302, 3, 45, 22, 0, 4302, 4303, 3, 23, 11, 0, 4303, 4304, 3, 7, 3, 0, 4304, 4305, 3, 9, 4, 0, 4305, 4306, 3, 29, 14, 0, 4306, 4307, 3, 15, 7, 0, 4307, 622, 1, 0, 0, 0, 4308, 4309, 3, 23, 11, 0, 4309, 4310, 3, 33, 16, 0, 4310, 4311, 3, 43, 21, 0, 4311, 4312, 3, 45, 22, 0, 4312, 4313, 3, 15, 7, 0, 4313, 4314, 3, 7, 3, 0, 4314, 4315, 3, 13, 6, 0, 4315, 624, 1, 0, 0, 0, 4316, 4317, 3, 23, 11, 0, 4317, 4318, 3, 33, 16, 0, 4318, 4319, 3, 45, 22, 0, 4319, 626, 1, 0, 0, 0, 4320, 4321, 3, 23, 11, 0, 4321, 4322, 3, 33, 16, 0, 4322, 4323, 3, 45, 22, 0, 4323, 4324, 3, 15, 7, 0, 4324, 4325, 3, 19, 9, 0, 4325, 4326, 3, 15, 7, 0, 4326, 4327, 3, 41, 20, 0, 4327, 628, 1, 0, 0, 0, 4328, 4329, 3, 23, 11, 0, 4329, 4330, 3, 33, 16, 0, 4330, 4331, 3, 45, 22, 0, 4331, 4332, 3, 15, 7, 0, 4332, 4333, 3, 41, 20, 0, 4333, 4334, 3, 43, 21, 0, 4334, 4335, 3, 15, 7, 0, 4335, 4336, 3, 11, 5, 0, 4336, 4337, 3, 45, 22, 0, 4337, 630, 1, 0, 0, 0, 4338, 4339, 3, 23, 11, 0, 4339, 4340, 3, 33, 16, 0, 4340, 4341, 3, 45, 22, 0, 4341, 4342, 3, 15, 7, 0, 4342, 4343, 3, 41, 20, 0, 4343, 4344, 3, 43, 21, 0, 4344, 4345, 3, 15, 7, 0, 4345, 4346, 3, 11, 5, 0, 4346, 4347, 3, 45, 22, 0, 4347, 4348, 3, 23, 11, 0, 4348, 4349, 3, 35, 17, 0, 4349, 4350, 3, 33, 16, 0, 4350, 632, 1, 0, 0, 0, 4351, 4352, 3, 23, 11, 0, 4352, 4353, 3, 33, 16, 0, 4353, 4354, 3, 45, 22, 0, 4354, 4355, 3, 15, 7, 0, 4355, 4356, 3, 41, 20, 0, 4356, 4357, 3, 49, 24, 0, 4357, 4358, 3, 7, 3, 0, 4358, 4359, 3, 29, 14, 0, 4359, 634, 1, 0, 0, 0, 4360, 4361, 3, 23, 11, 0, 4361, 4362, 3, 33, 16, 0, 4362, 4363, 3, 45, 22, 0, 4363, 4364, 3, 35, 17, 0, 4364, 636, 1, 0, 0, 0, 4365, 4366, 3, 23, 11, 0, 4366, 4367, 3, 33, 16, 0, 4367, 4368, 3, 49, 24, 0, 4368, 4369, 3, 35, 17, 0, 4369, 4370, 3, 27, 13, 0, 4370, 4371, 3, 15, 7, 0, 4371, 4372, 3, 41, 20, 0, 4372, 638, 1, 0, 0, 0, 4373, 4374, 3, 23, 11, 0, 4374, 4375, 3, 43, 21, 0, 4375, 640, 1, 0, 0, 0, 4376, 4377, 3, 23, 11, 0, 4377, 4378, 3, 43, 21, 0, 4378, 4379, 3, 35, 17, 0, 4379, 4380, 3, 29, 14, 0, 4380, 4381, 3, 7, 3, 0, 4381, 4382, 3, 45, 22, 0, 4382, 4383, 3, 23, 11, 0, 4383, 4384, 3, 35, 17, 0, 4384, 4385, 3, 33, 16, 0, 4385, 642, 1, 0, 0, 0, 4386, 4387, 3, 23, 11, 0, 4387, 4388, 3, 45, 22, 0, 4388, 4389, 3, 15, 7, 0, 4389, 4390, 3, 41, 20, 0, 4390, 4391, 3, 7, 3, 0, 4391, 4392, 3, 45, 22, 0, 4392, 4393, 3, 15, 7, 0, 4393, 644, 1, 0, 0, 0, 4394, 4395, 3, 25, 12, 0, 4395, 4396, 3, 35, 17, 0, 4396, 4397, 3, 23, 11, 0, 4397, 4398, 3, 33, 16, 0, 4398, 646, 1, 0, 0, 0, 4399, 4400, 3, 27, 13, 0, 4400, 648, 1, 0, 0, 0, 4401, 4402, 3, 27, 13, 0, 4402, 4403, 3, 15, 7, 0, 4403, 4404, 3, 55, 27, 0, 4404, 650, 1, 0, 0, 0, 4405, 4406, 3, 27, 13, 0, 4406, 4407, 3, 15, 7, 0, 4407, 4408, 3, 55, 27, 0, 4408, 4409, 5, 95, 0, 0, 4409, 4410, 3, 31, 15, 0, 4410, 4411, 3, 15, 7, 0, 4411, 4412, 3, 31, 15, 0, 4412, 4413, 3, 9, 4, 0, 4413, 4414, 3, 15, 7, 0, 4414, 4415, 3, 41, 20, 0, 4415, 652, 1, 0, 0, 0, 4416, 4417, 3, 27, 13, 0, 4417, 4418, 3, 15, 7, 0, 4418, 4419, 3, 55, 27, 0, 4419, 4420, 5, 95, 0, 0, 4420, 4421, 3, 45, 22, 0, 4421, 4422, 3, 55, 27, 0, 4422, 4423, 3, 37, 18, 0, 4423, 4424, 3, 15, 7, 0, 4424, 654, 1, 0, 0, 0, 4425, 4426, 3, 29, 14, 0, 4426, 4427, 3, 7, 3, 0, 4427, 4428, 3, 9, 4, 0, 4428, 4429, 3, 15, 7, 0, 4429, 4430, 3, 29, 14, 0, 4430, 656, 1, 0, 0, 0, 4431, 4432, 3, 29, 14, 0, 4432, 4433, 3, 7, 3, 0, 4433, 4434, 3, 33, 16, 0, 4434, 4435, 3, 11, 5, 0, 4435, 4436, 3, 35, 17, 0, 4436, 4437, 3, 31, 15, 0, 4437, 4438, 3, 37, 18, 0, 4438, 4439, 3, 23, 11, 0, 4439, 4440, 3, 29, 14, 0, 4440, 4441, 3, 15, 7, 0, 4441, 4442, 3, 41, 20, 0, 4442, 658, 1, 0, 0, 0, 4443, 4444, 3, 29, 14, 0, 4444, 4445, 3, 7, 3, 0, 4445, 4446, 3, 33, 16, 0, 4446, 4447, 3, 19, 9, 0, 4447, 4448, 3, 47, 23, 0, 4448, 4449, 3, 7, 3, 0, 4449, 4450, 3, 19, 9, 0, 4450, 4451, 3, 15, 7, 0, 4451, 660, 1, 0, 0, 0, 4452, 4453, 3, 29, 14, 0, 4453, 4454, 3, 7, 3, 0, 4454, 4455, 3, 41, 20, 0, 4455, 4456, 3, 19, 9, 0, 4456, 4457, 3, 15, 7, 0, 4457, 662, 1, 0, 0, 0, 4458, 4459, 3, 29, 14, 0, 4459, 4460, 3, 7, 3, 0, 4460, 4461, 3, 43, 21, 0, 4461, 4462, 3, 45, 22, 0, 4462, 664, 1, 0, 0, 0, 4463, 4464, 3, 29, 14, 0, 4464, 4465, 3, 7, 3, 0, 4465, 4466, 3, 45, 22, 0, 4466, 4467, 3, 15, 7, 0, 4467, 4468, 3, 41, 20, 0, 4468, 4469, 3, 7, 3, 0, 4469, 4470, 3, 29, 14, 0, 4470, 666, 1, 0, 0, 0, 4471, 4472, 3, 29, 14, 0, 4472, 4473, 3, 15, 7, 0, 4473, 4474, 3, 7, 3, 0, 4474, 4475, 3, 13, 6, 0, 4475, 4476, 3, 23, 11, 0, 4476, 4477, 3, 33, 16, 0, 4477, 4478, 3, 19, 9, 0, 4478, 668, 1, 0, 0, 0, 4479, 4480, 3, 29, 14, 0, 4480, 4481, 3, 15, 7, 0, 4481, 4482, 3, 7, 3, 0, 4482, 4483, 3, 43, 21, 0, 4483, 4484, 3, 45, 22, 0, 4484, 670, 1, 0, 0, 0, 4485, 4486, 3, 29, 14, 0, 4486, 4487, 3, 15, 7, 0, 4487, 4488, 3, 17, 8, 0, 4488, 4489, 3, 45, 22, 0, 4489, 672, 1, 0, 0, 0, 4490, 4491, 3, 29, 14, 0, 4491, 4492, 3, 15, 7, 0, 4492, 4493, 3, 33, 16, 0, 4493, 4494, 3, 19, 9, 0, 4494, 4495, 3, 45, 22, 0, 4495, 4496, 3, 21, 10, 0, 4496, 674, 1, 0, 0, 0, 4497, 4498, 3, 29, 14, 0, 4498, 4499, 3, 15, 7, 0, 4499, 4500, 3, 43, 21, 0, 4500, 4501, 3, 43, 21, 0, 4501, 676, 1, 0, 0, 0, 4502, 4503, 3, 29, 14, 0, 4503, 4504, 3, 15, 7, 0, 4504, 4505, 3, 49, 24, 0, 4505, 4506, 3, 15, 7, 0, 4506, 4507, 3, 29, 14, 0, 4507, 678, 1, 0, 0, 0, 4508, 4509, 3, 29, 14, 0, 4509, 4510, 3, 23, 11, 0, 4510, 4511, 3, 27, 13, 0, 4511, 4512, 3, 15, 7, 0, 4512, 680, 1, 0, 0, 0, 4513, 4514, 3, 29, 14, 0, 4514, 4515, 3, 23, 11, 0, 4515, 4516, 3, 31, 15, 0, 4516, 4517, 3, 23, 11, 0, 4517, 4518, 3, 45, 22, 0, 4518, 682, 1, 0, 0, 0, 4519, 4520, 3, 29, 14, 0, 4520, 4521, 3, 23, 11, 0, 4521, 4522, 3, 43, 21, 0, 4522, 4523, 3, 45, 22, 0, 4523, 4524, 3, 15, 7, 0, 4524, 4525, 3, 33, 16, 0, 4525, 684, 1, 0, 0, 0, 4526, 4527, 3, 29, 14, 0, 4527, 4528, 3, 33, 16, 0, 4528, 686, 1, 0, 0, 0, 4529, 4530, 3, 29, 14, 0, 4530, 4531, 3, 35, 17, 0, 4531, 4532, 3, 7, 3, 0, 4532, 4533, 3, 13, 6, 0, 4533, 688, 1, 0, 0, 0, 4534, 4535, 3, 29, 14, 0, 4535, 4536, 3, 35, 17, 0, 4536, 4537, 3, 11, 5, 0, 4537, 4538, 3, 7, 3, 0, 4538, 4539, 3, 29, 14, 0, 4539, 690, 1, 0, 0, 0, 4540, 4541, 3, 29, 14, 0, 4541, 4542, 3, 35, 17, 0, 4542, 4543, 3, 11, 5, 0, 4543, 4544, 3, 7, 3, 0, 4544, 4545, 3, 29, 14, 0, 4545, 4546, 3, 45, 22, 0, 4546, 4547, 3, 23, 11, 0, 4547, 4548, 3, 31, 15, 0, 4548, 4549, 3, 15, 7, 0, 4549, 692, 1, 0, 0, 0, 4550, 4551, 3, 29, 14, 0, 4551, 4552, 3, 35, 17, 0, 4552, 4553, 3, 11, 5, 0, 4553, 4554, 3, 7, 3, 0, 4554, 4555, 3, 29, 14, 0, 4555, 4556, 3, 45, 22, 0, 4556, 4557, 3, 23, 11, 0, 4557, 4558, 3, 31, 15, 0, 4558, 4559, 3, 15, 7, 0, 4559, 4560, 3, 43, 21, 0, 4560, 4561, 3, 45, 22, 0, 4561, 4562, 3, 7, 3, 0, 4562, 4563, 3, 31, 15, 0, 4563, 4564, 3, 37, 18, 0, 4564, 694, 1, 0, 0, 0, 4565, 4566, 3, 29, 14, 0, 4566, 4567, 3, 35, 17, 0, 4567, 4568, 3, 11, 5, 0, 4568, 4569, 3, 7, 3, 0, 4569, 4570, 3, 45, 22, 0, 4570, 4571, 3, 23, 11, 0, 4571, 4572, 3, 35, 17, 0, 4572, 4573, 3, 33, 16, 0, 4573, 696, 1, 0, 0, 0, 4574, 4575, 3, 29, 14, 0, 4575, 4576, 3, 35, 17, 0, 4576, 4577, 3, 11, 5, 0, 4577, 4578, 3, 7, 3, 0, 4578, 4579, 3, 45, 22, 0, 4579, 4580, 3, 35, 17, 0, 4580, 4581, 3, 41, 20, 0, 4581, 698, 1, 0, 0, 0, 4582, 4583, 3, 29, 14, 0, 4583, 4584, 3, 35, 17, 0, 4584, 4585, 3, 11, 5, 0, 4585, 4586, 3, 27, 13, 0, 4586, 700, 1, 0, 0, 0, 4587, 4588, 3, 29, 14, 0, 4588, 4589, 3, 35, 17, 0, 4589, 4590, 3, 11, 5, 0, 4590, 4591, 3, 27, 13, 0, 4591, 4592, 3, 15, 7, 0, 4592, 4593, 3, 13, 6, 0, 4593, 702, 1, 0, 0, 0, 4594, 4595, 3, 29, 14, 0, 4595, 4596, 3, 35, 17, 0, 4596, 4597, 3, 51, 25, 0, 4597, 4598, 3, 15, 7, 0, 4598, 4599, 3, 41, 20, 0, 4599, 704, 1, 0, 0, 0, 4600, 4601, 3, 31, 15, 0, 4601, 706, 1, 0, 0, 0, 4602, 4603, 3, 31, 15, 0, 4603, 4604, 3, 7, 3, 0, 4604, 4605, 3, 23, 11, 0, 4605, 4606, 3, 33, 16, 0, 4606, 708, 1, 0, 0, 0, 4607, 4608, 3, 31, 15, 0, 4608, 4609, 3, 7, 3, 0, 4609, 4610, 3, 37, 18, 0, 4610, 710, 1, 0, 0, 0, 4611, 4612, 3, 31, 15, 0, 4612, 4613, 3, 7, 3, 0, 4613, 4614, 3, 37, 18, 0, 4614, 4615, 3, 37, 18, 0, 4615, 4616, 3, 23, 11, 0, 4616, 4617, 3, 33, 16, 0, 4617, 4618, 3, 19, 9, 0, 4618, 712, 1, 0, 0, 0, 4619, 4620, 3, 31, 15, 0, 4620, 4621, 3, 7, 3, 0, 4621, 4622, 3, 45, 22, 0, 4622, 4623, 3, 11, 5, 0, 4623, 4624, 3, 21, 10, 0, 4624, 714, 1, 0, 0, 0, 4625, 4626, 3, 31, 15, 0, 4626, 4627, 3, 7, 3, 0, 4627, 4628, 3, 45, 22, 0, 4628, 4629, 3, 11, 5, 0, 4629, 4630, 3, 21, 10, 0, 4630, 4631, 5, 95, 0, 0, 4631, 4632, 3, 43, 21, 0, 4632, 4633, 3, 23, 11, 0, 4633, 4634, 3, 31, 15, 0, 4634, 4635, 3, 37, 18, 0, 4635, 4636, 3, 29, 14, 0, 4636, 4637, 3, 15, 7, 0, 4637, 716, 1, 0, 0, 0, 4638, 4639, 3, 31, 15, 0, 4639, 4640, 3, 7, 3, 0, 4640, 4641, 3, 45, 22, 0, 4641, 4642, 3, 11, 5, 0, 4642, 4643, 3, 21, 10, 0, 4643, 4644, 3, 15, 7, 0, 4644, 4645, 3, 13, 6, 0, 4645, 718, 1, 0, 0, 0, 4646, 4647, 3, 31, 15, 0, 4647, 4648, 3, 7, 3, 0, 4648, 4649, 3, 53, 26, 0, 4649, 720, 1, 0, 0, 0, 4650, 4651, 3, 31, 15, 0, 4651, 4652, 3, 7, 3, 0, 4652, 4653, 3, 53, 26, 0, 4653, 4654, 3, 49, 24, 0, 4654, 4655, 3, 7, 3, 0, 4655, 4656, 3, 29, 14, 0, 4656, 4657, 3, 47, 23, 0, 4657, 4658, 3, 15, 7, 0, 4658, 722, 1, 0, 0, 0, 4659, 4660, 3, 31, 15, 0, 4660, 4661, 3, 15, 7, 0, 4661, 4662, 3, 31, 15, 0, 4662, 4663, 3, 9, 4, 0, 4663, 4664, 3, 15, 7, 0, 4664, 4665, 3, 41, 20, 0, 4665, 724, 1, 0, 0, 0, 4666, 4667, 3, 31, 15, 0, 4667, 4668, 3, 15, 7, 0, 4668, 4669, 3, 41, 20, 0, 4669, 4670, 3, 19, 9, 0, 4670, 4671, 3, 15, 7, 0, 4671, 726, 1, 0, 0, 0, 4672, 4673, 3, 31, 15, 0, 4673, 4674, 3, 15, 7, 0, 4674, 4675, 3, 43, 21, 0, 4675, 4676, 3, 43, 21, 0, 4676, 4677, 3, 7, 3, 0, 4677, 4678, 3, 19, 9, 0, 4678, 4679, 3, 15, 7, 0, 4679, 4680, 5, 95, 0, 0, 4680, 4681, 3, 29, 14, 0, 4681, 4682, 3, 15, 7, 0, 4682, 4683, 3, 33, 16, 0, 4683, 4684, 3, 19, 9, 0, 4684, 4685, 3, 45, 22, 0, 4685, 4686, 3, 21, 10, 0, 4686, 728, 1, 0, 0, 0, 4687, 4688, 3, 31, 15, 0, 4688, 4689, 3, 15, 7, 0, 4689, 4690, 3, 43, 21, 0, 4690, 4691, 3, 43, 21, 0, 4691, 4692, 3, 7, 3, 0, 4692, 4693, 3, 19, 9, 0, 4693, 4694, 3, 15, 7, 0, 4694, 4695, 5, 95, 0, 0, 4695, 4696, 3, 35, 17, 0, 4696, 4697, 3, 11, 5, 0, 4697, 4698, 3, 45, 22, 0, 4698, 4699, 3, 15, 7, 0, 4699, 4700, 3, 45, 22, 0, 4700, 4701, 5, 95, 0, 0, 4701, 4702, 3, 29, 14, 0, 4702, 4703, 3, 15, 7, 0, 4703, 4704, 3, 33, 16, 0, 4704, 4705, 3, 19, 9, 0, 4705, 4706, 3, 45, 22, 0, 4706, 4707, 3, 21, 10, 0, 4707, 730, 1, 0, 0, 0, 4708, 4709, 3, 31, 15, 0, 4709, 4710, 3, 15, 7, 0, 4710, 4711, 3, 43, 21, 0, 4711, 4712, 3, 43, 21, 0, 4712, 4713, 3, 7, 3, 0, 4713, 4714, 3, 19, 9, 0, 4714, 4715, 3, 15, 7, 0, 4715, 4716, 5, 95, 0, 0, 4716, 4717, 3, 45, 22, 0, 4717, 4718, 3, 15, 7, 0, 4718, 4719, 3, 53, 26, 0, 4719, 4720, 3, 45, 22, 0, 4720, 732, 1, 0, 0, 0, 4721, 4722, 3, 31, 15, 0, 4722, 4723, 3, 15, 7, 0, 4723, 4724, 3, 45, 22, 0, 4724, 4725, 3, 21, 10, 0, 4725, 4726, 3, 35, 17, 0, 4726, 4727, 3, 13, 6, 0, 4727, 734, 1, 0, 0, 0, 4728, 4729, 3, 31, 15, 0, 4729, 4730, 3, 23, 11, 0, 4730, 4731, 3, 33, 16, 0, 4731, 736, 1, 0, 0, 0, 4732, 4733, 3, 31, 15, 0, 4733, 4734, 3, 23, 11, 0, 4734, 4735, 3, 33, 16, 0, 4735, 4736, 3, 47, 23, 0, 4736, 4737, 3, 45, 22, 0, 4737, 4738, 3, 15, 7, 0, 4738, 738, 1, 0, 0, 0, 4739, 4740, 3, 31, 15, 0, 4740, 4741, 3, 23, 11, 0, 4741, 4742, 3, 33, 16, 0, 4742, 4743, 3, 49, 24, 0, 4743, 4744, 3, 7, 3, 0, 4744, 4745, 3, 29, 14, 0, 4745, 4746, 3, 47, 23, 0, 4746, 4747, 3, 15, 7, 0, 4747, 740, 1, 0, 0, 0, 4748, 4749, 3, 31, 15, 0, 4749, 4750, 3, 35, 17, 0, 4750, 4751, 3, 13, 6, 0, 4751, 742, 1, 0, 0, 0, 4752, 4753, 3, 31, 15, 0, 4753, 4754, 3, 35, 17, 0, 4754, 4755, 3, 13, 6, 0, 4755, 4756, 3, 15, 7, 0, 4756, 744, 1, 0, 0, 0, 4757, 4758, 3, 31, 15, 0, 4758, 4759, 3, 35, 17, 0, 4759, 4760, 3, 13, 6, 0, 4760, 4761, 3, 23, 11, 0, 4761, 4762, 3, 17, 8, 0, 4762, 4763, 3, 23, 11, 0, 4763, 4764, 3, 15, 7, 0, 4764, 4765, 3, 43, 21, 0, 4765, 746, 1, 0, 0, 0, 4766, 4767, 3, 31, 15, 0, 4767, 4768, 3, 35, 17, 0, 4768, 4769, 3, 13, 6, 0, 4769, 4770, 3, 23, 11, 0, 4770, 4771, 3, 17, 8, 0, 4771, 4772, 3, 55, 27, 0, 4772, 748, 1, 0, 0, 0, 4773, 4774, 3, 31, 15, 0, 4774, 4775, 3, 35, 17, 0, 4775, 4776, 3, 13, 6, 0, 4776, 4777, 3, 47, 23, 0, 4777, 4778, 3, 29, 14, 0, 4778, 4779, 3, 15, 7, 0, 4779, 750, 1, 0, 0, 0, 4780, 4781, 3, 31, 15, 0, 4781, 4782, 3, 35, 17, 0, 4782, 4783, 3, 33, 16, 0, 4783, 4784, 3, 45, 22, 0, 4784, 4785, 3, 21, 10, 0, 4785, 752, 1, 0, 0, 0, 4786, 4787, 3, 31, 15, 0, 4787, 4788, 3, 35, 17, 0, 4788, 4789, 3, 41, 20, 0, 4789, 4790, 3, 15, 7, 0, 4790, 754, 1, 0, 0, 0, 4791, 4792, 3, 31, 15, 0, 4792, 4793, 3, 35, 17, 0, 4793, 4794, 3, 49, 24, 0, 4794, 4795, 3, 15, 7, 0, 4795, 756, 1, 0, 0, 0, 4796, 4797, 3, 31, 15, 0, 4797, 4798, 3, 47, 23, 0, 4798, 4799, 3, 29, 14, 0, 4799, 4800, 3, 45, 22, 0, 4800, 4801, 3, 23, 11, 0, 4801, 4802, 3, 43, 21, 0, 4802, 4803, 3, 15, 7, 0, 4803, 4804, 3, 45, 22, 0, 4804, 758, 1, 0, 0, 0, 4805, 4806, 3, 31, 15, 0, 4806, 4807, 3, 47, 23, 0, 4807, 4808, 3, 31, 15, 0, 4808, 4809, 3, 37, 18, 0, 4809, 4810, 3, 43, 21, 0, 4810, 760, 1, 0, 0, 0, 4811, 4812, 3, 33, 16, 0, 4812, 4813, 3, 7, 3, 0, 4813, 4814, 3, 31, 15, 0, 4814, 4815, 3, 15, 7, 0, 4815, 762, 1, 0, 0, 0, 4816, 4817, 3, 33, 16, 0, 4817, 4818, 3, 7, 3, 0, 4818, 4819, 3, 31, 15, 0, 4819, 4820, 3, 15, 7, 0, 4820, 4821, 3, 43, 21, 0, 4821, 764, 1, 0, 0, 0, 4822, 4823, 3, 33, 16, 0, 4823, 4824, 3, 7, 3, 0, 4824, 4825, 3, 45, 22, 0, 4825, 4826, 3, 23, 11, 0, 4826, 4827, 3, 35, 17, 0, 4827, 4828, 3, 33, 16, 0, 4828, 4829, 3, 7, 3, 0, 4829, 4830, 3, 29, 14, 0, 4830, 766, 1, 0, 0, 0, 4831, 4832, 3, 33, 16, 0, 4832, 4833, 3, 7, 3, 0, 4833, 4834, 3, 45, 22, 0, 4834, 4835, 3, 47, 23, 0, 4835, 4836, 3, 41, 20, 0, 4836, 4837, 3, 7, 3, 0, 4837, 4838, 3, 29, 14, 0, 4838, 768, 1, 0, 0, 0, 4839, 4840, 3, 33, 16, 0, 4840, 4841, 3, 11, 5, 0, 4841, 4842, 3, 21, 10, 0, 4842, 4843, 3, 7, 3, 0, 4843, 4844, 3, 41, 20, 0, 4844, 770, 1, 0, 0, 0, 4845, 4846, 3, 33, 16, 0, 4846, 4847, 3, 11, 5, 0, 4847, 4848, 3, 29, 14, 0, 4848, 4849, 3, 35, 17, 0, 4849, 4850, 3, 9, 4, 0, 4850, 772, 1, 0, 0, 0, 4851, 4852, 3, 33, 16, 0, 4852, 4853, 3, 15, 7, 0, 4853, 4854, 3, 43, 21, 0, 4854, 4855, 3, 45, 22, 0, 4855, 4856, 3, 23, 11, 0, 4856, 4857, 3, 33, 16, 0, 4857, 4858, 3, 19, 9, 0, 4858, 774, 1, 0, 0, 0, 4859, 4860, 3, 33, 16, 0, 4860, 4861, 3, 15, 7, 0, 4861, 4862, 3, 51, 25, 0, 4862, 776, 1, 0, 0, 0, 4863, 4864, 3, 33, 16, 0, 4864, 4865, 3, 15, 7, 0, 4865, 4866, 3, 53, 26, 0, 4866, 4867, 3, 45, 22, 0, 4867, 778, 1, 0, 0, 0, 4868, 4869, 3, 33, 16, 0, 4869, 4870, 3, 35, 17, 0, 4870, 780, 1, 0, 0, 0, 4871, 4872, 3, 33, 16, 0, 4872, 4873, 3, 35, 17, 0, 4873, 4874, 3, 11, 5, 0, 4874, 4875, 3, 41, 20, 0, 4875, 4876, 3, 15, 7, 0, 4876, 4877, 3, 7, 3, 0, 4877, 4878, 3, 45, 22, 0, 4878, 4879, 3, 15, 7, 0, 4879, 4880, 3, 13, 6, 0, 4880, 4881, 3, 9, 4, 0, 4881, 782, 1, 0, 0, 0, 4882, 4883, 3, 33, 16, 0, 4883, 4884, 3, 35, 17, 0, 4884, 4885, 3, 11, 5, 0, 4885, 4886, 3, 41, 20, 0, 4886, 4887, 3, 15, 7, 0, 4887, 4888, 3, 7, 3, 0, 4888, 4889, 3, 45, 22, 0, 4889, 4890, 3, 15, 7, 0, 4890, 4891, 3, 47, 23, 0, 4891, 4892, 3, 43, 21, 0, 4892, 4893, 3, 15, 7, 0, 4893, 4894, 3, 41, 20, 0, 4894, 784, 1, 0, 0, 0, 4895, 4896, 3, 33, 16, 0, 4896, 4897, 3, 35, 17, 0, 4897, 4898, 3, 33, 16, 0, 4898, 4899, 3, 15, 7, 0, 4899, 786, 1, 0, 0, 0, 4900, 4901, 3, 33, 16, 0, 4901, 4902, 3, 35, 17, 0, 4902, 4903, 3, 41, 20, 0, 4903, 4904, 3, 31, 15, 0, 4904, 4905, 3, 7, 3, 0, 4905, 4906, 3, 29, 14, 0, 4906, 4907, 3, 23, 11, 0, 4907, 4908, 3, 57, 28, 0, 4908, 4909, 3, 15, 7, 0, 4909, 788, 1, 0, 0, 0, 4910, 4911, 3, 33, 16, 0, 4911, 4912, 3, 35, 17, 0, 4912, 4913, 3, 41, 20, 0, 4913, 4914, 3, 31, 15, 0, 4914, 4915, 3, 7, 3, 0, 4915, 4916, 3, 29, 14, 0, 4916, 4917, 3, 23, 11, 0, 4917, 4918, 3, 57, 28, 0, 4918, 4919, 3, 15, 7, 0, 4919, 4920, 3, 13, 6, 0, 4920, 790, 1, 0, 0, 0, 4921, 4922, 3, 33, 16, 0, 4922, 4923, 3, 35, 17, 0, 4923, 4924, 3, 45, 22, 0, 4924, 792, 1, 0, 0, 0, 4925, 4926, 3, 33, 16, 0, 4926, 4927, 3, 35, 17, 0, 4927, 4928, 3, 45, 22, 0, 4928, 4929, 3, 21, 10, 0, 4929, 4930, 3, 23, 11, 0, 4930, 4931, 3, 33, 16, 0, 4931, 4932, 3, 19, 9, 0, 4932, 794, 1, 0, 0, 0, 4933, 4934, 3, 33, 16, 0, 4934, 4935, 3, 35, 17, 0, 4935, 4936, 3, 45, 22, 0, 4936, 4937, 3, 23, 11, 0, 4937, 4938, 3, 17, 8, 0, 4938, 4939, 3, 55, 27, 0, 4939, 796, 1, 0, 0, 0, 4940, 4941, 3, 33, 16, 0, 4941, 4942, 3, 35, 17, 0, 4942, 4943, 3, 45, 22, 0, 4943, 4944, 3, 33, 16, 0, 4944, 4945, 3, 47, 23, 0, 4945, 4946, 3, 29, 14, 0, 4946, 4947, 3, 29, 14, 0, 4947, 798, 1, 0, 0, 0, 4948, 4949, 3, 33, 16, 0, 4949, 4950, 3, 35, 17, 0, 4950, 4951, 3, 51, 25, 0, 4951, 4952, 3, 7, 3, 0, 4952, 4953, 3, 23, 11, 0, 4953, 4954, 3, 45, 22, 0, 4954, 800, 1, 0, 0, 0, 4955, 4956, 3, 33, 16, 0, 4956, 4957, 3, 47, 23, 0, 4957, 4958, 3, 29, 14, 0, 4958, 4959, 3, 29, 14, 0, 4959, 802, 1, 0, 0, 0, 4960, 4961, 3, 33, 16, 0, 4961, 4962, 3, 47, 23, 0, 4962, 4963, 3, 29, 14, 0, 4963, 4964, 3, 29, 14, 0, 4964, 4965, 3, 7, 3, 0, 4965, 4966, 3, 9, 4, 0, 4966, 4967, 3, 29, 14, 0, 4967, 4968, 3, 15, 7, 0, 4968, 804, 1, 0, 0, 0, 4969, 4970, 3, 33, 16, 0, 4970, 4971, 3, 47, 23, 0, 4971, 4972, 3, 29, 14, 0, 4972, 4973, 3, 29, 14, 0, 4973, 4974, 3, 23, 11, 0, 4974, 4975, 3, 17, 8, 0, 4975, 806, 1, 0, 0, 0, 4976, 4977, 3, 33, 16, 0, 4977, 4978, 3, 47, 23, 0, 4978, 4979, 3, 29, 14, 0, 4979, 4980, 3, 29, 14, 0, 4980, 4981, 3, 43, 21, 0, 4981, 808, 1, 0, 0, 0, 4982, 4983, 3, 33, 16, 0, 4983, 4984, 3, 47, 23, 0, 4984, 4985, 3, 31, 15, 0, 4985, 4986, 3, 9, 4, 0, 4986, 4987, 3, 15, 7, 0, 4987, 4988, 3, 41, 20, 0, 4988, 810, 1, 0, 0, 0, 4989, 4990, 3, 33, 16, 0, 4990, 4991, 3, 47, 23, 0, 4991, 4992, 3, 31, 15, 0, 4992, 4993, 3, 15, 7, 0, 4993, 4994, 3, 41, 20, 0, 4994, 4995, 3, 23, 11, 0, 4995, 4996, 3, 11, 5, 0, 4996, 812, 1, 0, 0, 0, 4997, 4998, 3, 35, 17, 0, 4998, 4999, 3, 9, 4, 0, 4999, 5000, 3, 25, 12, 0, 5000, 5001, 3, 15, 7, 0, 5001, 5002, 3, 11, 5, 0, 5002, 5003, 3, 45, 22, 0, 5003, 814, 1, 0, 0, 0, 5004, 5005, 3, 35, 17, 0, 5005, 5006, 3, 11, 5, 0, 5006, 5007, 3, 45, 22, 0, 5007, 5008, 3, 15, 7, 0, 5008, 5009, 3, 45, 22, 0, 5009, 5010, 5, 95, 0, 0, 5010, 5011, 3, 29, 14, 0, 5011, 5012, 3, 15, 7, 0, 5012, 5013, 3, 33, 16, 0, 5013, 5014, 3, 19, 9, 0, 5014, 5015, 3, 45, 22, 0, 5015, 5016, 3, 21, 10, 0, 5016, 816, 1, 0, 0, 0, 5017, 5018, 3, 35, 17, 0, 5018, 5019, 3, 11, 5, 0, 5019, 5020, 3, 45, 22, 0, 5020, 5021, 3, 15, 7, 0, 5021, 5022, 3, 45, 22, 0, 5022, 5023, 3, 43, 21, 0, 5023, 818, 1, 0, 0, 0, 5024, 5025, 3, 35, 17, 0, 5025, 5026, 3, 17, 8, 0, 5026, 820, 1, 0, 0, 0, 5027, 5028, 3, 35, 17, 0, 5028, 5029, 3, 17, 8, 0, 5029, 5030, 3, 17, 8, 0, 5030, 822, 1, 0, 0, 0, 5031, 5032, 3, 35, 17, 0, 5032, 5033, 3, 17, 8, 0, 5033, 5034, 3, 17, 8, 0, 5034, 5035, 3, 43, 21, 0, 5035, 5036, 3, 15, 7, 0, 5036, 5037, 3, 45, 22, 0, 5037, 824, 1, 0, 0, 0, 5038, 5039, 3, 35, 17, 0, 5039, 5040, 3, 23, 11, 0, 5040, 5041, 3, 13, 6, 0, 5041, 5042, 3, 43, 21, 0, 5042, 826, 1, 0, 0, 0, 5043, 5044, 3, 35, 17, 0, 5044, 5045, 3, 29, 14, 0, 5045, 5046, 3, 13, 6, 0, 5046, 828, 1, 0, 0, 0, 5047, 5048, 3, 35, 17, 0, 5048, 5049, 3, 33, 16, 0, 5049, 830, 1, 0, 0, 0, 5050, 5051, 3, 35, 17, 0, 5051, 5052, 3, 33, 16, 0, 5052, 5053, 3, 29, 14, 0, 5053, 5054, 3, 55, 27, 0, 5054, 832, 1, 0, 0, 0, 5055, 5056, 3, 35, 17, 0, 5056, 5057, 3, 37, 18, 0, 5057, 5058, 3, 15, 7, 0, 5058, 5059, 3, 33, 16, 0, 5059, 834, 1, 0, 0, 0, 5060, 5061, 3, 35, 17, 0, 5061, 5062, 3, 37, 18, 0, 5062, 5063, 3, 15, 7, 0, 5063, 5064, 3, 41, 20, 0, 5064, 5065, 3, 7, 3, 0, 5065, 5066, 3, 45, 22, 0, 5066, 5067, 3, 23, 11, 0, 5067, 5068, 3, 35, 17, 0, 5068, 5069, 3, 33, 16, 0, 5069, 836, 1, 0, 0, 0, 5070, 5071, 3, 35, 17, 0, 5071, 5072, 3, 37, 18, 0, 5072, 5073, 3, 15, 7, 0, 5073, 5074, 3, 41, 20, 0, 5074, 5075, 3, 7, 3, 0, 5075, 5076, 3, 45, 22, 0, 5076, 5077, 3, 35, 17, 0, 5077, 5078, 3, 41, 20, 0, 5078, 838, 1, 0, 0, 0, 5079, 5080, 3, 35, 17, 0, 5080, 5081, 3, 37, 18, 0, 5081, 5082, 3, 45, 22, 0, 5082, 5083, 3, 23, 11, 0, 5083, 5084, 3, 35, 17, 0, 5084, 5085, 3, 33, 16, 0, 5085, 840, 1, 0, 0, 0, 5086, 5087, 3, 35, 17, 0, 5087, 5088, 3, 37, 18, 0, 5088, 5089, 3, 45, 22, 0, 5089, 5090, 3, 23, 11, 0, 5090, 5091, 3, 35, 17, 0, 5091, 5092, 3, 33, 16, 0, 5092, 5093, 3, 43, 21, 0, 5093, 842, 1, 0, 0, 0, 5094, 5095, 3, 35, 17, 0, 5095, 5096, 3, 41, 20, 0, 5096, 844, 1, 0, 0, 0, 5097, 5098, 3, 35, 17, 0, 5098, 5099, 3, 41, 20, 0, 5099, 5100, 3, 13, 6, 0, 5100, 5101, 3, 15, 7, 0, 5101, 5102, 3, 41, 20, 0, 5102, 846, 1, 0, 0, 0, 5103, 5104, 3, 35, 17, 0, 5104, 5105, 3, 41, 20, 0, 5105, 5106, 3, 13, 6, 0, 5106, 5107, 3, 15, 7, 0, 5107, 5108, 3, 41, 20, 0, 5108, 5109, 3, 23, 11, 0, 5109, 5110, 3, 33, 16, 0, 5110, 5111, 3, 19, 9, 0, 5111, 848, 1, 0, 0, 0, 5112, 5113, 3, 35, 17, 0, 5113, 5114, 3, 41, 20, 0, 5114, 5115, 3, 13, 6, 0, 5115, 5116, 3, 23, 11, 0, 5116, 5117, 3, 33, 16, 0, 5117, 5118, 3, 7, 3, 0, 5118, 5119, 3, 29, 14, 0, 5119, 5120, 3, 23, 11, 0, 5120, 5121, 3, 45, 22, 0, 5121, 5122, 3, 55, 27, 0, 5122, 850, 1, 0, 0, 0, 5123, 5124, 3, 35, 17, 0, 5124, 5125, 3, 45, 22, 0, 5125, 5126, 3, 21, 10, 0, 5126, 5127, 3, 15, 7, 0, 5127, 5128, 3, 41, 20, 0, 5128, 5129, 3, 43, 21, 0, 5129, 852, 1, 0, 0, 0, 5130, 5131, 3, 35, 17, 0, 5131, 5132, 3, 47, 23, 0, 5132, 5133, 3, 45, 22, 0, 5133, 854, 1, 0, 0, 0, 5134, 5135, 3, 35, 17, 0, 5135, 5136, 3, 47, 23, 0, 5136, 5137, 3, 45, 22, 0, 5137, 5138, 3, 15, 7, 0, 5138, 5139, 3, 41, 20, 0, 5139, 856, 1, 0, 0, 0, 5140, 5141, 3, 35, 17, 0, 5141, 5142, 3, 47, 23, 0, 5142, 5143, 3, 45, 22, 0, 5143, 5144, 3, 37, 18, 0, 5144, 5145, 3, 47, 23, 0, 5145, 5146, 3, 45, 22, 0, 5146, 858, 1, 0, 0, 0, 5147, 5148, 3, 35, 17, 0, 5148, 5149, 3, 49, 24, 0, 5149, 5150, 3, 15, 7, 0, 5150, 5151, 3, 41, 20, 0, 5151, 860, 1, 0, 0, 0, 5152, 5153, 3, 35, 17, 0, 5153, 5154, 3, 49, 24, 0, 5154, 5155, 3, 15, 7, 0, 5155, 5156, 3, 41, 20, 0, 5156, 5157, 3, 29, 14, 0, 5157, 5158, 3, 7, 3, 0, 5158, 5159, 3, 37, 18, 0, 5159, 5160, 3, 43, 21, 0, 5160, 862, 1, 0, 0, 0, 5161, 5162, 3, 35, 17, 0, 5162, 5163, 3, 49, 24, 0, 5163, 5164, 3, 15, 7, 0, 5164, 5165, 3, 41, 20, 0, 5165, 5166, 3, 29, 14, 0, 5166, 5167, 3, 7, 3, 0, 5167, 5168, 3, 55, 27, 0, 5168, 864, 1, 0, 0, 0, 5169, 5170, 3, 35, 17, 0, 5170, 5171, 3, 49, 24, 0, 5171, 5172, 3, 15, 7, 0, 5172, 5173, 3, 41, 20, 0, 5173, 5174, 3, 41, 20, 0, 5174, 5175, 3, 23, 11, 0, 5175, 5176, 3, 13, 6, 0, 5176, 5177, 3, 23, 11, 0, 5177, 5178, 3, 33, 16, 0, 5178, 5179, 3, 19, 9, 0, 5179, 866, 1, 0, 0, 0, 5180, 5181, 3, 35, 17, 0, 5181, 5182, 3, 51, 25, 0, 5182, 5183, 3, 33, 16, 0, 5183, 5184, 3, 15, 7, 0, 5184, 5185, 3, 41, 20, 0, 5185, 868, 1, 0, 0, 0, 5186, 5187, 3, 37, 18, 0, 5187, 5188, 3, 7, 3, 0, 5188, 5189, 3, 13, 6, 0, 5189, 870, 1, 0, 0, 0, 5190, 5191, 3, 37, 18, 0, 5191, 5192, 3, 7, 3, 0, 5192, 5193, 3, 41, 20, 0, 5193, 5194, 3, 7, 3, 0, 5194, 5195, 3, 31, 15, 0, 5195, 5196, 3, 15, 7, 0, 5196, 5197, 3, 45, 22, 0, 5197, 5198, 3, 15, 7, 0, 5198, 5199, 3, 41, 20, 0, 5199, 872, 1, 0, 0, 0, 5200, 5201, 3, 37, 18, 0, 5201, 5202, 3, 7, 3, 0, 5202, 5203, 3, 41, 20, 0, 5203, 5204, 3, 7, 3, 0, 5204, 5205, 3, 31, 15, 0, 5205, 5206, 3, 15, 7, 0, 5206, 5207, 3, 45, 22, 0, 5207, 5208, 3, 15, 7, 0, 5208, 5209, 3, 41, 20, 0, 5209, 5210, 5, 95, 0, 0, 5210, 5211, 3, 31, 15, 0, 5211, 5212, 3, 35, 17, 0, 5212, 5213, 3, 13, 6, 0, 5213, 5214, 3, 15, 7, 0, 5214, 874, 1, 0, 0, 0, 5215, 5216, 3, 37, 18, 0, 5216, 5217, 3, 7, 3, 0, 5217, 5218, 3, 41, 20, 0, 5218, 5219, 3, 7, 3, 0, 5219, 5220, 3, 31, 15, 0, 5220, 5221, 3, 15, 7, 0, 5221, 5222, 3, 45, 22, 0, 5222, 5223, 3, 15, 7, 0, 5223, 5224, 3, 41, 20, 0, 5224, 5225, 5, 95, 0, 0, 5225, 5226, 3, 33, 16, 0, 5226, 5227, 3, 7, 3, 0, 5227, 5228, 3, 31, 15, 0, 5228, 5229, 3, 15, 7, 0, 5229, 876, 1, 0, 0, 0, 5230, 5231, 3, 37, 18, 0, 5231, 5232, 3, 7, 3, 0, 5232, 5233, 3, 41, 20, 0, 5233, 5234, 3, 7, 3, 0, 5234, 5235, 3, 31, 15, 0, 5235, 5236, 3, 15, 7, 0, 5236, 5237, 3, 45, 22, 0, 5237, 5238, 3, 15, 7, 0, 5238, 5239, 3, 41, 20, 0, 5239, 5240, 5, 95, 0, 0, 5240, 5241, 3, 35, 17, 0, 5241, 5242, 3, 41, 20, 0, 5242, 5243, 3, 13, 6, 0, 5243, 5244, 3, 23, 11, 0, 5244, 5245, 3, 33, 16, 0, 5245, 5246, 3, 7, 3, 0, 5246, 5247, 3, 29, 14, 0, 5247, 5248, 5, 95, 0, 0, 5248, 5249, 3, 37, 18, 0, 5249, 5250, 3, 35, 17, 0, 5250, 5251, 3, 43, 21, 0, 5251, 5252, 3, 23, 11, 0, 5252, 5253, 3, 45, 22, 0, 5253, 5254, 3, 23, 11, 0, 5254, 5255, 3, 35, 17, 0, 5255, 5256, 3, 33, 16, 0, 5256, 878, 1, 0, 0, 0, 5257, 5258, 3, 37, 18, 0, 5258, 5259, 3, 7, 3, 0, 5259, 5260, 3, 41, 20, 0, 5260, 5261, 3, 7, 3, 0, 5261, 5262, 3, 31, 15, 0, 5262, 5263, 3, 15, 7, 0, 5263, 5264, 3, 45, 22, 0, 5264, 5265, 3, 15, 7, 0, 5265, 5266, 3, 41, 20, 0, 5266, 5267, 5, 95, 0, 0, 5267, 5268, 3, 43, 21, 0, 5268, 5269, 3, 37, 18, 0, 5269, 5270, 3, 15, 7, 0, 5270, 5271, 3, 11, 5, 0, 5271, 5272, 3, 23, 11, 0, 5272, 5273, 3, 17, 8, 0, 5273, 5274, 3, 23, 11, 0, 5274, 5275, 3, 11, 5, 0, 5275, 5276, 5, 95, 0, 0, 5276, 5277, 3, 11, 5, 0, 5277, 5278, 3, 7, 3, 0, 5278, 5279, 3, 45, 22, 0, 5279, 5280, 3, 7, 3, 0, 5280, 5281, 3, 29, 14, 0, 5281, 5282, 3, 35, 17, 0, 5282, 5283, 3, 19, 9, 0, 5283, 880, 1, 0, 0, 0, 5284, 5285, 3, 37, 18, 0, 5285, 5286, 3, 7, 3, 0, 5286, 5287, 3, 41, 20, 0, 5287, 5288, 3, 7, 3, 0, 5288, 5289, 3, 31, 15, 0, 5289, 5290, 3, 15, 7, 0, 5290, 5291, 3, 45, 22, 0, 5291, 5292, 3, 15, 7, 0, 5292, 5293, 3, 41, 20, 0, 5293, 5294, 5, 95, 0, 0, 5294, 5295, 3, 43, 21, 0, 5295, 5296, 3, 37, 18, 0, 5296, 5297, 3, 15, 7, 0, 5297, 5298, 3, 11, 5, 0, 5298, 5299, 3, 23, 11, 0, 5299, 5300, 3, 17, 8, 0, 5300, 5301, 3, 23, 11, 0, 5301, 5302, 3, 11, 5, 0, 5302, 5303, 5, 95, 0, 0, 5303, 5304, 3, 33, 16, 0, 5304, 5305, 3, 7, 3, 0, 5305, 5306, 3, 31, 15, 0, 5306, 5307, 3, 15, 7, 0, 5307, 882, 1, 0, 0, 0, 5308, 5309, 3, 37, 18, 0, 5309, 5310, 3, 7, 3, 0, 5310, 5311, 3, 41, 20, 0, 5311, 5312, 3, 7, 3, 0, 5312, 5313, 3, 31, 15, 0, 5313, 5314, 3, 15, 7, 0, 5314, 5315, 3, 45, 22, 0, 5315, 5316, 3, 15, 7, 0, 5316, 5317, 3, 41, 20, 0, 5317, 5318, 5, 95, 0, 0, 5318, 5319, 3, 43, 21, 0, 5319, 5320, 3, 37, 18, 0, 5320, 5321, 3, 15, 7, 0, 5321, 5322, 3, 11, 5, 0, 5322, 5323, 3, 23, 11, 0, 5323, 5324, 3, 17, 8, 0, 5324, 5325, 3, 23, 11, 0, 5325, 5326, 3, 11, 5, 0, 5326, 5327, 5, 95, 0, 0, 5327, 5328, 3, 43, 21, 0, 5328, 5329, 3, 11, 5, 0, 5329, 5330, 3, 21, 10, 0, 5330, 5331, 3, 15, 7, 0, 5331, 5332, 3, 31, 15, 0, 5332, 5333, 3, 7, 3, 0, 5333, 884, 1, 0, 0, 0, 5334, 5335, 3, 37, 18, 0, 5335, 5336, 3, 7, 3, 0, 5336, 5337, 3, 41, 20, 0, 5337, 5338, 3, 7, 3, 0, 5338, 5339, 3, 31, 15, 0, 5339, 5340, 3, 15, 7, 0, 5340, 5341, 3, 45, 22, 0, 5341, 5342, 3, 15, 7, 0, 5342, 5343, 3, 41, 20, 0, 5343, 5344, 3, 43, 21, 0, 5344, 886, 1, 0, 0, 0, 5345, 5346, 3, 37, 18, 0, 5346, 5347, 3, 7, 3, 0, 5347, 5348, 3, 41, 20, 0, 5348, 5349, 3, 43, 21, 0, 5349, 5350, 3, 15, 7, 0, 5350, 5351, 3, 41, 20, 0, 5351, 888, 1, 0, 0, 0, 5352, 5353, 3, 37, 18, 0, 5353, 5354, 3, 7, 3, 0, 5354, 5355, 3, 41, 20, 0, 5355, 5356, 3, 45, 22, 0, 5356, 5357, 3, 23, 11, 0, 5357, 5358, 3, 7, 3, 0, 5358, 5359, 3, 29, 14, 0, 5359, 890, 1, 0, 0, 0, 5360, 5361, 3, 37, 18, 0, 5361, 5362, 3, 7, 3, 0, 5362, 5363, 3, 41, 20, 0, 5363, 5364, 3, 45, 22, 0, 5364, 5365, 3, 23, 11, 0, 5365, 5366, 3, 45, 22, 0, 5366, 5367, 3, 23, 11, 0, 5367, 5368, 3, 35, 17, 0, 5368, 5369, 3, 33, 16, 0, 5369, 892, 1, 0, 0, 0, 5370, 5371, 3, 37, 18, 0, 5371, 5372, 3, 7, 3, 0, 5372, 5373, 3, 43, 21, 0, 5373, 5374, 3, 11, 5, 0, 5374, 5375, 3, 7, 3, 0, 5375, 5376, 3, 29, 14, 0, 5376, 894, 1, 0, 0, 0, 5377, 5378, 3, 37, 18, 0, 5378, 5379, 3, 7, 3, 0, 5379, 5380, 3, 43, 21, 0, 5380, 5381, 3, 43, 21, 0, 5381, 5382, 3, 51, 25, 0, 5382, 5383, 3, 35, 17, 0, 5383, 5384, 3, 41, 20, 0, 5384, 5385, 3, 13, 6, 0, 5385, 896, 1, 0, 0, 0, 5386, 5387, 3, 37, 18, 0, 5387, 5388, 3, 7, 3, 0, 5388, 5389, 3, 45, 22, 0, 5389, 5390, 3, 21, 10, 0, 5390, 898, 1, 0, 0, 0, 5391, 5392, 3, 37, 18, 0, 5392, 5393, 3, 15, 7, 0, 5393, 5394, 3, 41, 20, 0, 5394, 5395, 3, 11, 5, 0, 5395, 5396, 3, 15, 7, 0, 5396, 5397, 3, 33, 16, 0, 5397, 5398, 3, 45, 22, 0, 5398, 5399, 5, 95, 0, 0, 5399, 5400, 3, 41, 20, 0, 5400, 5401, 3, 7, 3, 0, 5401, 5402, 3, 33, 16, 0, 5402, 5403, 3, 27, 13, 0, 5403, 900, 1, 0, 0, 0, 5404, 5405, 3, 37, 18, 0, 5405, 5406, 3, 15, 7, 0, 5406, 5407, 3, 41, 20, 0, 5407, 5408, 3, 11, 5, 0, 5408, 5409, 3, 15, 7, 0, 5409, 5410, 3, 33, 16, 0, 5410, 5411, 3, 45, 22, 0, 5411, 5412, 3, 23, 11, 0, 5412, 5413, 3, 29, 14, 0, 5413, 5414, 3, 15, 7, 0, 5414, 5415, 5, 95, 0, 0, 5415, 5416, 3, 11, 5, 0, 5416, 5417, 3, 35, 17, 0, 5417, 5418, 3, 33, 16, 0, 5418, 5419, 3, 45, 22, 0, 5419, 902, 1, 0, 0, 0, 5420, 5421, 3, 37, 18, 0, 5421, 5422, 3, 15, 7, 0, 5422, 5423, 3, 41, 20, 0, 5423, 5424, 3, 11, 5, 0, 5424, 5425, 3, 15, 7, 0, 5425, 5426, 3, 33, 16, 0, 5426, 5427, 3, 45, 22, 0, 5427, 5428, 3, 23, 11, 0, 5428, 5429, 3, 29, 14, 0, 5429, 5430, 3, 15, 7, 0, 5430, 5431, 5, 95, 0, 0, 5431, 5432, 3, 13, 6, 0, 5432, 5433, 3, 23, 11, 0, 5433, 5434, 3, 43, 21, 0, 5434, 5435, 3, 11, 5, 0, 5435, 904, 1, 0, 0, 0, 5436, 5437, 3, 37, 18, 0, 5437, 5438, 3, 29, 14, 0, 5438, 5439, 3, 7, 3, 0, 5439, 5440, 3, 11, 5, 0, 5440, 5441, 3, 23, 11, 0, 5441, 5442, 3, 33, 16, 0, 5442, 5443, 3, 19, 9, 0, 5443, 906, 1, 0, 0, 0, 5444, 5445, 3, 37, 18, 0, 5445, 5446, 3, 29, 14, 0, 5446, 5447, 3, 7, 3, 0, 5447, 5448, 3, 23, 11, 0, 5448, 5449, 3, 33, 16, 0, 5449, 908, 1, 0, 0, 0, 5450, 5451, 3, 37, 18, 0, 5451, 5452, 3, 29, 14, 0, 5452, 5453, 3, 7, 3, 0, 5453, 5454, 3, 33, 16, 0, 5454, 5455, 3, 43, 21, 0, 5455, 910, 1, 0, 0, 0, 5456, 5457, 3, 37, 18, 0, 5457, 5458, 3, 29, 14, 0, 5458, 5459, 3, 23, 11, 0, 5459, 912, 1, 0, 0, 0, 5460, 5461, 3, 37, 18, 0, 5461, 5462, 3, 35, 17, 0, 5462, 5463, 3, 43, 21, 0, 5463, 5464, 3, 23, 11, 0, 5464, 5465, 3, 45, 22, 0, 5465, 5466, 3, 23, 11, 0, 5466, 5467, 3, 35, 17, 0, 5467, 5468, 3, 33, 16, 0, 5468, 914, 1, 0, 0, 0, 5469, 5470, 3, 37, 18, 0, 5470, 5471, 3, 35, 17, 0, 5471, 5472, 3, 43, 21, 0, 5472, 5473, 3, 45, 22, 0, 5473, 5474, 3, 17, 8, 0, 5474, 5475, 3, 23, 11, 0, 5475, 5476, 3, 53, 26, 0, 5476, 916, 1, 0, 0, 0, 5477, 5478, 3, 37, 18, 0, 5478, 5479, 3, 35, 17, 0, 5479, 5480, 3, 51, 25, 0, 5480, 5481, 3, 15, 7, 0, 5481, 5482, 3, 41, 20, 0, 5482, 918, 1, 0, 0, 0, 5483, 5484, 3, 37, 18, 0, 5484, 5485, 3, 41, 20, 0, 5485, 5486, 3, 15, 7, 0, 5486, 5487, 3, 11, 5, 0, 5487, 5488, 3, 15, 7, 0, 5488, 5489, 3, 13, 6, 0, 5489, 5490, 3, 23, 11, 0, 5490, 5491, 3, 33, 16, 0, 5491, 5492, 3, 19, 9, 0, 5492, 920, 1, 0, 0, 0, 5493, 5494, 3, 37, 18, 0, 5494, 5495, 3, 41, 20, 0, 5495, 5496, 3, 15, 7, 0, 5496, 5497, 3, 11, 5, 0, 5497, 5498, 3, 23, 11, 0, 5498, 5499, 3, 43, 21, 0, 5499, 5500, 3, 23, 11, 0, 5500, 5501, 3, 35, 17, 0, 5501, 5502, 3, 33, 16, 0, 5502, 922, 1, 0, 0, 0, 5503, 5504, 3, 37, 18, 0, 5504, 5505, 3, 41, 20, 0, 5505, 5506, 3, 15, 7, 0, 5506, 5507, 3, 17, 8, 0, 5507, 5508, 3, 23, 11, 0, 5508, 5509, 3, 53, 26, 0, 5509, 924, 1, 0, 0, 0, 5510, 5511, 3, 37, 18, 0, 5511, 5512, 3, 41, 20, 0, 5512, 5513, 3, 15, 7, 0, 5513, 5514, 3, 35, 17, 0, 5514, 5515, 3, 41, 20, 0, 5515, 5516, 3, 13, 6, 0, 5516, 5517, 3, 15, 7, 0, 5517, 5518, 3, 41, 20, 0, 5518, 926, 1, 0, 0, 0, 5519, 5520, 3, 37, 18, 0, 5520, 5521, 3, 41, 20, 0, 5521, 5522, 3, 15, 7, 0, 5522, 5523, 3, 37, 18, 0, 5523, 5524, 3, 7, 3, 0, 5524, 5525, 3, 41, 20, 0, 5525, 5526, 3, 15, 7, 0, 5526, 928, 1, 0, 0, 0, 5527, 5528, 3, 37, 18, 0, 5528, 5529, 3, 41, 20, 0, 5529, 5530, 3, 15, 7, 0, 5530, 5531, 3, 37, 18, 0, 5531, 5532, 3, 7, 3, 0, 5532, 5533, 3, 41, 20, 0, 5533, 5534, 3, 15, 7, 0, 5534, 5535, 3, 13, 6, 0, 5535, 930, 1, 0, 0, 0, 5536, 5537, 3, 37, 18, 0, 5537, 5538, 3, 41, 20, 0, 5538, 5539, 3, 15, 7, 0, 5539, 5540, 3, 43, 21, 0, 5540, 5541, 3, 15, 7, 0, 5541, 5542, 3, 41, 20, 0, 5542, 5543, 3, 49, 24, 0, 5543, 5544, 3, 15, 7, 0, 5544, 932, 1, 0, 0, 0, 5545, 5546, 3, 37, 18, 0, 5546, 5547, 3, 41, 20, 0, 5547, 5548, 3, 23, 11, 0, 5548, 5549, 3, 31, 15, 0, 5549, 5550, 3, 7, 3, 0, 5550, 5551, 3, 41, 20, 0, 5551, 5552, 3, 55, 27, 0, 5552, 934, 1, 0, 0, 0, 5553, 5554, 3, 37, 18, 0, 5554, 5555, 3, 41, 20, 0, 5555, 5556, 3, 23, 11, 0, 5556, 5557, 3, 35, 17, 0, 5557, 5558, 3, 41, 20, 0, 5558, 936, 1, 0, 0, 0, 5559, 5560, 3, 37, 18, 0, 5560, 5561, 3, 41, 20, 0, 5561, 5562, 3, 23, 11, 0, 5562, 5563, 3, 49, 24, 0, 5563, 5564, 3, 23, 11, 0, 5564, 5565, 3, 29, 14, 0, 5565, 5566, 3, 15, 7, 0, 5566, 5567, 3, 19, 9, 0, 5567, 5568, 3, 15, 7, 0, 5568, 5569, 3, 43, 21, 0, 5569, 938, 1, 0, 0, 0, 5570, 5571, 3, 37, 18, 0, 5571, 5572, 3, 41, 20, 0, 5572, 5573, 3, 35, 17, 0, 5573, 5574, 3, 11, 5, 0, 5574, 5575, 3, 15, 7, 0, 5575, 5576, 3, 13, 6, 0, 5576, 5577, 3, 47, 23, 0, 5577, 5578, 3, 41, 20, 0, 5578, 5579, 3, 7, 3, 0, 5579, 5580, 3, 29, 14, 0, 5580, 940, 1, 0, 0, 0, 5581, 5582, 3, 37, 18, 0, 5582, 5583, 3, 41, 20, 0, 5583, 5584, 3, 35, 17, 0, 5584, 5585, 3, 11, 5, 0, 5585, 5586, 3, 15, 7, 0, 5586, 5587, 3, 13, 6, 0, 5587, 5588, 3, 47, 23, 0, 5588, 5589, 3, 41, 20, 0, 5589, 5590, 3, 15, 7, 0, 5590, 942, 1, 0, 0, 0, 5591, 5592, 3, 37, 18, 0, 5592, 5593, 3, 47, 23, 0, 5593, 5594, 3, 9, 4, 0, 5594, 5595, 3, 29, 14, 0, 5595, 5596, 3, 23, 11, 0, 5596, 5597, 3, 11, 5, 0, 5597, 944, 1, 0, 0, 0, 5598, 5599, 3, 37, 18, 0, 5599, 5600, 3, 47, 23, 0, 5600, 5601, 3, 9, 4, 0, 5601, 5602, 3, 29, 14, 0, 5602, 5603, 3, 23, 11, 0, 5603, 5604, 3, 11, 5, 0, 5604, 5605, 3, 7, 3, 0, 5605, 5606, 3, 45, 22, 0, 5606, 5607, 3, 23, 11, 0, 5607, 5608, 3, 35, 17, 0, 5608, 5609, 3, 33, 16, 0, 5609, 946, 1, 0, 0, 0, 5610, 5611, 3, 39, 19, 0, 5611, 5612, 3, 47, 23, 0, 5612, 5613, 3, 35, 17, 0, 5613, 5614, 3, 45, 22, 0, 5614, 5615, 3, 15, 7, 0, 5615, 948, 1, 0, 0, 0, 5616, 5617, 3, 41, 20, 0, 5617, 5618, 3, 7, 3, 0, 5618, 5619, 3, 33, 16, 0, 5619, 5620, 3, 19, 9, 0, 5620, 5621, 3, 15, 7, 0, 5621, 950, 1, 0, 0, 0, 5622, 5623, 3, 41, 20, 0, 5623, 5624, 3, 7, 3, 0, 5624, 5625, 3, 33, 16, 0, 5625, 5626, 3, 27, 13, 0, 5626, 952, 1, 0, 0, 0, 5627, 5628, 3, 41, 20, 0, 5628, 5629, 3, 15, 7, 0, 5629, 5630, 3, 7, 3, 0, 5630, 5631, 3, 13, 6, 0, 5631, 954, 1, 0, 0, 0, 5632, 5633, 3, 41, 20, 0, 5633, 5634, 3, 15, 7, 0, 5634, 5635, 3, 7, 3, 0, 5635, 5636, 3, 13, 6, 0, 5636, 5637, 3, 43, 21, 0, 5637, 956, 1, 0, 0, 0, 5638, 5639, 3, 41, 20, 0, 5639, 5640, 3, 15, 7, 0, 5640, 5641, 3, 7, 3, 0, 5641, 5642, 3, 29, 14, 0, 5642, 958, 1, 0, 0, 0, 5643, 5644, 3, 41, 20, 0, 5644, 5645, 3, 15, 7, 0, 5645, 5646, 3, 7, 3, 0, 5646, 5647, 3, 43, 21, 0, 5647, 5648, 3, 43, 21, 0, 5648, 5649, 3, 23, 11, 0, 5649, 5650, 3, 19, 9, 0, 5650, 5651, 3, 33, 16, 0, 5651, 960, 1, 0, 0, 0, 5652, 5653, 3, 41, 20, 0, 5653, 5654, 3, 15, 7, 0, 5654, 5655, 3, 11, 5, 0, 5655, 5656, 3, 21, 10, 0, 5656, 5657, 3, 15, 7, 0, 5657, 5658, 3, 11, 5, 0, 5658, 5659, 3, 27, 13, 0, 5659, 962, 1, 0, 0, 0, 5660, 5661, 3, 41, 20, 0, 5661, 5662, 3, 15, 7, 0, 5662, 5663, 3, 11, 5, 0, 5663, 5664, 3, 47, 23, 0, 5664, 5665, 3, 41, 20, 0, 5665, 5666, 3, 43, 21, 0, 5666, 5667, 3, 23, 11, 0, 5667, 5668, 3, 49, 24, 0, 5668, 5669, 3, 15, 7, 0, 5669, 964, 1, 0, 0, 0, 5670, 5671, 3, 41, 20, 0, 5671, 5672, 3, 15, 7, 0, 5672, 5673, 3, 17, 8, 0, 5673, 966, 1, 0, 0, 0, 5674, 5675, 3, 41, 20, 0, 5675, 5676, 3, 15, 7, 0, 5676, 5677, 3, 17, 8, 0, 5677, 5678, 3, 15, 7, 0, 5678, 5679, 3, 41, 20, 0, 5679, 5680, 3, 15, 7, 0, 5680, 5681, 3, 33, 16, 0, 5681, 5682, 3, 11, 5, 0, 5682, 5683, 3, 15, 7, 0, 5683, 5684, 3, 43, 21, 0, 5684, 968, 1, 0, 0, 0, 5685, 5686, 3, 41, 20, 0, 5686, 5687, 3, 15, 7, 0, 5687, 5688, 3, 17, 8, 0, 5688, 5689, 3, 15, 7, 0, 5689, 5690, 3, 41, 20, 0, 5690, 5691, 3, 15, 7, 0, 5691, 5692, 3, 33, 16, 0, 5692, 5693, 3, 11, 5, 0, 5693, 5694, 3, 23, 11, 0, 5694, 5695, 3, 33, 16, 0, 5695, 5696, 3, 19, 9, 0, 5696, 970, 1, 0, 0, 0, 5697, 5698, 3, 41, 20, 0, 5698, 5699, 3, 15, 7, 0, 5699, 5700, 3, 17, 8, 0, 5700, 5701, 3, 41, 20, 0, 5701, 5702, 3, 15, 7, 0, 5702, 5703, 3, 43, 21, 0, 5703, 5704, 3, 21, 10, 0, 5704, 972, 1, 0, 0, 0, 5705, 5706, 3, 41, 20, 0, 5706, 5707, 3, 15, 7, 0, 5707, 5708, 3, 19, 9, 0, 5708, 5709, 3, 41, 20, 0, 5709, 5710, 5, 95, 0, 0, 5710, 5711, 3, 7, 3, 0, 5711, 5712, 3, 49, 24, 0, 5712, 5713, 3, 19, 9, 0, 5713, 5714, 3, 53, 26, 0, 5714, 974, 1, 0, 0, 0, 5715, 5716, 3, 41, 20, 0, 5716, 5717, 3, 15, 7, 0, 5717, 5718, 3, 19, 9, 0, 5718, 5719, 3, 41, 20, 0, 5719, 5720, 5, 95, 0, 0, 5720, 5721, 3, 7, 3, 0, 5721, 5722, 3, 49, 24, 0, 5722, 5723, 3, 19, 9, 0, 5723, 5724, 3, 55, 27, 0, 5724, 976, 1, 0, 0, 0, 5725, 5726, 3, 41, 20, 0, 5726, 5727, 3, 15, 7, 0, 5727, 5728, 3, 19, 9, 0, 5728, 5729, 3, 41, 20, 0, 5729, 5730, 5, 95, 0, 0, 5730, 5731, 3, 11, 5, 0, 5731, 5732, 3, 35, 17, 0, 5732, 5733, 3, 47, 23, 0, 5733, 5734, 3, 33, 16, 0, 5734, 5735, 3, 45, 22, 0, 5735, 978, 1, 0, 0, 0, 5736, 5737, 3, 41, 20, 0, 5737, 5738, 3, 15, 7, 0, 5738, 5739, 3, 19, 9, 0, 5739, 5740, 3, 41, 20, 0, 5740, 5741, 5, 95, 0, 0, 5741, 5742, 3, 23, 11, 0, 5742, 5743, 3, 33, 16, 0, 5743, 5744, 3, 45, 22, 0, 5744, 5745, 3, 15, 7, 0, 5745, 5746, 3, 41, 20, 0, 5746, 5747, 3, 11, 5, 0, 5747, 5748, 3, 15, 7, 0, 5748, 5749, 3, 37, 18, 0, 5749, 5750, 3, 45, 22, 0, 5750, 980, 1, 0, 0, 0, 5751, 5752, 3, 41, 20, 0, 5752, 5753, 3, 15, 7, 0, 5753, 5754, 3, 19, 9, 0, 5754, 5755, 3, 41, 20, 0, 5755, 5756, 5, 95, 0, 0, 5756, 5757, 3, 41, 20, 0, 5757, 5758, 5, 50, 0, 0, 5758, 982, 1, 0, 0, 0, 5759, 5760, 3, 41, 20, 0, 5760, 5761, 3, 15, 7, 0, 5761, 5762, 3, 19, 9, 0, 5762, 5763, 3, 41, 20, 0, 5763, 5764, 5, 95, 0, 0, 5764, 5765, 3, 43, 21, 0, 5765, 5766, 3, 29, 14, 0, 5766, 5767, 3, 35, 17, 0, 5767, 5768, 3, 37, 18, 0, 5768, 5769, 3, 15, 7, 0, 5769, 984, 1, 0, 0, 0, 5770, 5771, 3, 41, 20, 0, 5771, 5772, 3, 15, 7, 0, 5772, 5773, 3, 19, 9, 0, 5773, 5774, 3, 41, 20, 0, 5774, 5775, 5, 95, 0, 0, 5775, 5776, 3, 43, 21, 0, 5776, 5777, 3, 53, 26, 0, 5777, 5778, 3, 53, 26, 0, 5778, 986, 1, 0, 0, 0, 5779, 5780, 3, 41, 20, 0, 5780, 5781, 3, 15, 7, 0, 5781, 5782, 3, 19, 9, 0, 5782, 5783, 3, 41, 20, 0, 5783, 5784, 5, 95, 0, 0, 5784, 5785, 3, 43, 21, 0, 5785, 5786, 3, 53, 26, 0, 5786, 5787, 3, 55, 27, 0, 5787, 988, 1, 0, 0, 0, 5788, 5789, 3, 41, 20, 0, 5789, 5790, 3, 15, 7, 0, 5790, 5791, 3, 19, 9, 0, 5791, 5792, 3, 41, 20, 0, 5792, 5793, 5, 95, 0, 0, 5793, 5794, 3, 43, 21, 0, 5794, 5795, 3, 55, 27, 0, 5795, 5796, 3, 55, 27, 0, 5796, 990, 1, 0, 0, 0, 5797, 5798, 3, 41, 20, 0, 5798, 5799, 3, 15, 7, 0, 5799, 5800, 3, 23, 11, 0, 5800, 5801, 3, 33, 16, 0, 5801, 5802, 3, 13, 6, 0, 5802, 5803, 3, 15, 7, 0, 5803, 5804, 3, 53, 26, 0, 5804, 992, 1, 0, 0, 0, 5805, 5806, 3, 41, 20, 0, 5806, 5807, 3, 15, 7, 0, 5807, 5808, 3, 29, 14, 0, 5808, 5809, 3, 7, 3, 0, 5809, 5810, 3, 45, 22, 0, 5810, 5811, 3, 23, 11, 0, 5811, 5812, 3, 49, 24, 0, 5812, 5813, 3, 15, 7, 0, 5813, 994, 1, 0, 0, 0, 5814, 5815, 3, 41, 20, 0, 5815, 5816, 3, 15, 7, 0, 5816, 5817, 3, 29, 14, 0, 5817, 5818, 3, 15, 7, 0, 5818, 5819, 3, 7, 3, 0, 5819, 5820, 3, 43, 21, 0, 5820, 5821, 3, 15, 7, 0, 5821, 996, 1, 0, 0, 0, 5822, 5823, 3, 41, 20, 0, 5823, 5824, 3, 15, 7, 0, 5824, 5825, 3, 33, 16, 0, 5825, 5826, 3, 7, 3, 0, 5826, 5827, 3, 31, 15, 0, 5827, 5828, 3, 15, 7, 0, 5828, 998, 1, 0, 0, 0, 5829, 5830, 3, 41, 20, 0, 5830, 5831, 3, 15, 7, 0, 5831, 5832, 3, 37, 18, 0, 5832, 5833, 3, 15, 7, 0, 5833, 5834, 3, 7, 3, 0, 5834, 5835, 3, 45, 22, 0, 5835, 5836, 3, 7, 3, 0, 5836, 5837, 3, 9, 4, 0, 5837, 5838, 3, 29, 14, 0, 5838, 5839, 3, 15, 7, 0, 5839, 1000, 1, 0, 0, 0, 5840, 5841, 3, 41, 20, 0, 5841, 5842, 3, 15, 7, 0, 5842, 5843, 3, 37, 18, 0, 5843, 5844, 3, 29, 14, 0, 5844, 5845, 3, 7, 3, 0, 5845, 5846, 3, 11, 5, 0, 5846, 5847, 3, 15, 7, 0, 5847, 1002, 1, 0, 0, 0, 5848, 5849, 3, 41, 20, 0, 5849, 5850, 3, 15, 7, 0, 5850, 5851, 3, 37, 18, 0, 5851, 5852, 3, 29, 14, 0, 5852, 5853, 3, 23, 11, 0, 5853, 5854, 3, 11, 5, 0, 5854, 5855, 3, 7, 3, 0, 5855, 1004, 1, 0, 0, 0, 5856, 5857, 3, 41, 20, 0, 5857, 5858, 3, 15, 7, 0, 5858, 5859, 3, 43, 21, 0, 5859, 5860, 3, 15, 7, 0, 5860, 5861, 3, 45, 22, 0, 5861, 1006, 1, 0, 0, 0, 5862, 5863, 3, 41, 20, 0, 5863, 5864, 3, 15, 7, 0, 5864, 5865, 3, 43, 21, 0, 5865, 5866, 3, 45, 22, 0, 5866, 5867, 3, 7, 3, 0, 5867, 5868, 3, 41, 20, 0, 5868, 5869, 3, 45, 22, 0, 5869, 1008, 1, 0, 0, 0, 5870, 5871, 3, 41, 20, 0, 5871, 5872, 3, 15, 7, 0, 5872, 5873, 3, 43, 21, 0, 5873, 5874, 3, 45, 22, 0, 5874, 5875, 3, 41, 20, 0, 5875, 5876, 3, 23, 11, 0, 5876, 5877, 3, 11, 5, 0, 5877, 5878, 3, 45, 22, 0, 5878, 1010, 1, 0, 0, 0, 5879, 5880, 3, 41, 20, 0, 5880, 5881, 3, 15, 7, 0, 5881, 5882, 3, 43, 21, 0, 5882, 5883, 3, 47, 23, 0, 5883, 5884, 3, 29, 14, 0, 5884, 5885, 3, 45, 22, 0, 5885, 1012, 1, 0, 0, 0, 5886, 5887, 3, 41, 20, 0, 5887, 5888, 3, 15, 7, 0, 5888, 5889, 3, 45, 22, 0, 5889, 5890, 3, 47, 23, 0, 5890, 5891, 3, 41, 20, 0, 5891, 5892, 3, 33, 16, 0, 5892, 1014, 1, 0, 0, 0, 5893, 5894, 3, 41, 20, 0, 5894, 5895, 3, 15, 7, 0, 5895, 5896, 3, 45, 22, 0, 5896, 5897, 3, 47, 23, 0, 5897, 5898, 3, 41, 20, 0, 5898, 5899, 3, 33, 16, 0, 5899, 5900, 3, 15, 7, 0, 5900, 5901, 3, 13, 6, 0, 5901, 5902, 5, 95, 0, 0, 5902, 5903, 3, 11, 5, 0, 5903, 5904, 3, 7, 3, 0, 5904, 5905, 3, 41, 20, 0, 5905, 5906, 3, 13, 6, 0, 5906, 5907, 3, 23, 11, 0, 5907, 5908, 3, 33, 16, 0, 5908, 5909, 3, 7, 3, 0, 5909, 5910, 3, 29, 14, 0, 5910, 5911, 3, 23, 11, 0, 5911, 5912, 3, 45, 22, 0, 5912, 5913, 3, 55, 27, 0, 5913, 1016, 1, 0, 0, 0, 5914, 5915, 3, 41, 20, 0, 5915, 5916, 3, 15, 7, 0, 5916, 5917, 3, 45, 22, 0, 5917, 5918, 3, 47, 23, 0, 5918, 5919, 3, 41, 20, 0, 5919, 5920, 3, 33, 16, 0, 5920, 5921, 3, 15, 7, 0, 5921, 5922, 3, 13, 6, 0, 5922, 5923, 5, 95, 0, 0, 5923, 5924, 3, 29, 14, 0, 5924, 5925, 3, 15, 7, 0, 5925, 5926, 3, 33, 16, 0, 5926, 5927, 3, 19, 9, 0, 5927, 5928, 3, 45, 22, 0, 5928, 5929, 3, 21, 10, 0, 5929, 1018, 1, 0, 0, 0, 5930, 5931, 3, 41, 20, 0, 5931, 5932, 3, 15, 7, 0, 5932, 5933, 3, 45, 22, 0, 5933, 5934, 3, 47, 23, 0, 5934, 5935, 3, 41, 20, 0, 5935, 5936, 3, 33, 16, 0, 5936, 5937, 3, 15, 7, 0, 5937, 5938, 3, 13, 6, 0, 5938, 5939, 5, 95, 0, 0, 5939, 5940, 3, 35, 17, 0, 5940, 5941, 3, 11, 5, 0, 5941, 5942, 3, 45, 22, 0, 5942, 5943, 3, 15, 7, 0, 5943, 5944, 3, 45, 22, 0, 5944, 5945, 5, 95, 0, 0, 5945, 5946, 3, 29, 14, 0, 5946, 5947, 3, 15, 7, 0, 5947, 5948, 3, 33, 16, 0, 5948, 5949, 3, 19, 9, 0, 5949, 5950, 3, 45, 22, 0, 5950, 5951, 3, 21, 10, 0, 5951, 1020, 1, 0, 0, 0, 5952, 5953, 3, 41, 20, 0, 5953, 5954, 3, 15, 7, 0, 5954, 5955, 3, 45, 22, 0, 5955, 5956, 3, 47, 23, 0, 5956, 5957, 3, 41, 20, 0, 5957, 5958, 3, 33, 16, 0, 5958, 5959, 3, 15, 7, 0, 5959, 5960, 3, 13, 6, 0, 5960, 5961, 5, 95, 0, 0, 5961, 5962, 3, 43, 21, 0, 5962, 5963, 3, 39, 19, 0, 5963, 5964, 3, 29, 14, 0, 5964, 5965, 3, 43, 21, 0, 5965, 5966, 3, 45, 22, 0, 5966, 5967, 3, 7, 3, 0, 5967, 5968, 3, 45, 22, 0, 5968, 5969, 3, 15, 7, 0, 5969, 1022, 1, 0, 0, 0, 5970, 5971, 3, 41, 20, 0, 5971, 5972, 3, 15, 7, 0, 5972, 5973, 3, 45, 22, 0, 5973, 5974, 3, 47, 23, 0, 5974, 5975, 3, 41, 20, 0, 5975, 5976, 3, 33, 16, 0, 5976, 5977, 3, 23, 11, 0, 5977, 5978, 3, 33, 16, 0, 5978, 5979, 3, 19, 9, 0, 5979, 1024, 1, 0, 0, 0, 5980, 5981, 3, 41, 20, 0, 5981, 5982, 3, 15, 7, 0, 5982, 5983, 3, 45, 22, 0, 5983, 5984, 3, 47, 23, 0, 5984, 5985, 3, 41, 20, 0, 5985, 5986, 3, 33, 16, 0, 5986, 5987, 3, 43, 21, 0, 5987, 1026, 1, 0, 0, 0, 5988, 5989, 3, 41, 20, 0, 5989, 5990, 3, 15, 7, 0, 5990, 5991, 3, 49, 24, 0, 5991, 5992, 3, 35, 17, 0, 5992, 5993, 3, 27, 13, 0, 5993, 5994, 3, 15, 7, 0, 5994, 1028, 1, 0, 0, 0, 5995, 5996, 3, 41, 20, 0, 5996, 5997, 3, 23, 11, 0, 5997, 5998, 3, 19, 9, 0, 5998, 5999, 3, 21, 10, 0, 5999, 6000, 3, 45, 22, 0, 6000, 1030, 1, 0, 0, 0, 6001, 6002, 3, 41, 20, 0, 6002, 6003, 3, 35, 17, 0, 6003, 6004, 3, 29, 14, 0, 6004, 6005, 3, 15, 7, 0, 6005, 1032, 1, 0, 0, 0, 6006, 6007, 3, 41, 20, 0, 6007, 6008, 3, 35, 17, 0, 6008, 6009, 3, 29, 14, 0, 6009, 6010, 3, 29, 14, 0, 6010, 6011, 3, 9, 4, 0, 6011, 6012, 3, 7, 3, 0, 6012, 6013, 3, 11, 5, 0, 6013, 6014, 3, 27, 13, 0, 6014, 1034, 1, 0, 0, 0, 6015, 6016, 3, 41, 20, 0, 6016, 6017, 3, 35, 17, 0, 6017, 6018, 3, 29, 14, 0, 6018, 6019, 3, 29, 14, 0, 6019, 6020, 3, 47, 23, 0, 6020, 6021, 3, 37, 18, 0, 6021, 1036, 1, 0, 0, 0, 6022, 6023, 3, 41, 20, 0, 6023, 6024, 3, 35, 17, 0, 6024, 6025, 3, 47, 23, 0, 6025, 6026, 3, 45, 22, 0, 6026, 6027, 3, 23, 11, 0, 6027, 6028, 3, 33, 16, 0, 6028, 6029, 3, 15, 7, 0, 6029, 1038, 1, 0, 0, 0, 6030, 6031, 3, 41, 20, 0, 6031, 6032, 3, 35, 17, 0, 6032, 6033, 3, 47, 23, 0, 6033, 6034, 3, 45, 22, 0, 6034, 6035, 3, 23, 11, 0, 6035, 6036, 3, 33, 16, 0, 6036, 6037, 3, 15, 7, 0, 6037, 6038, 5, 95, 0, 0, 6038, 6039, 3, 11, 5, 0, 6039, 6040, 3, 7, 3, 0, 6040, 6041, 3, 45, 22, 0, 6041, 6042, 3, 7, 3, 0, 6042, 6043, 3, 29, 14, 0, 6043, 6044, 3, 35, 17, 0, 6044, 6045, 3, 19, 9, 0, 6045, 1040, 1, 0, 0, 0, 6046, 6047, 3, 41, 20, 0, 6047, 6048, 3, 35, 17, 0, 6048, 6049, 3, 47, 23, 0, 6049, 6050, 3, 45, 22, 0, 6050, 6051, 3, 23, 11, 0, 6051, 6052, 3, 33, 16, 0, 6052, 6053, 3, 15, 7, 0, 6053, 6054, 5, 95, 0, 0, 6054, 6055, 3, 33, 16, 0, 6055, 6056, 3, 7, 3, 0, 6056, 6057, 3, 31, 15, 0, 6057, 6058, 3, 15, 7, 0, 6058, 1042, 1, 0, 0, 0, 6059, 6060, 3, 41, 20, 0, 6060, 6061, 3, 35, 17, 0, 6061, 6062, 3, 47, 23, 0, 6062, 6063, 3, 45, 22, 0, 6063, 6064, 3, 23, 11, 0, 6064, 6065, 3, 33, 16, 0, 6065, 6066, 3, 15, 7, 0, 6066, 6067, 5, 95, 0, 0, 6067, 6068, 3, 43, 21, 0, 6068, 6069, 3, 11, 5, 0, 6069, 6070, 3, 21, 10, 0, 6070, 6071, 3, 15, 7, 0, 6071, 6072, 3, 31, 15, 0, 6072, 6073, 3, 7, 3, 0, 6073, 1044, 1, 0, 0, 0, 6074, 6075, 3, 41, 20, 0, 6075, 6076, 3, 35, 17, 0, 6076, 6077, 3, 51, 25, 0, 6077, 1046, 1, 0, 0, 0, 6078, 6079, 3, 41, 20, 0, 6079, 6080, 3, 35, 17, 0, 6080, 6081, 3, 51, 25, 0, 6081, 6082, 5, 95, 0, 0, 6082, 6083, 3, 11, 5, 0, 6083, 6084, 3, 35, 17, 0, 6084, 6085, 3, 47, 23, 0, 6085, 6086, 3, 33, 16, 0, 6086, 6087, 3, 45, 22, 0, 6087, 1048, 1, 0, 0, 0, 6088, 6089, 3, 41, 20, 0, 6089, 6090, 3, 35, 17, 0, 6090, 6091, 3, 51, 25, 0, 6091, 6092, 5, 95, 0, 0, 6092, 6093, 3, 33, 16, 0, 6093, 6094, 3, 47, 23, 0, 6094, 6095, 3, 31, 15, 0, 6095, 6096, 3, 9, 4, 0, 6096, 6097, 3, 15, 7, 0, 6097, 6098, 3, 41, 20, 0, 6098, 1050, 1, 0, 0, 0, 6099, 6100, 3, 41, 20, 0, 6100, 6101, 3, 35, 17, 0, 6101, 6102, 3, 51, 25, 0, 6102, 6103, 3, 43, 21, 0, 6103, 1052, 1, 0, 0, 0, 6104, 6105, 3, 41, 20, 0, 6105, 6106, 3, 47, 23, 0, 6106, 6107, 3, 29, 14, 0, 6107, 6108, 3, 15, 7, 0, 6108, 1054, 1, 0, 0, 0, 6109, 6110, 3, 43, 21, 0, 6110, 6111, 3, 7, 3, 0, 6111, 6112, 3, 49, 24, 0, 6112, 6113, 3, 15, 7, 0, 6113, 6114, 3, 37, 18, 0, 6114, 6115, 3, 35, 17, 0, 6115, 6116, 3, 23, 11, 0, 6116, 6117, 3, 33, 16, 0, 6117, 6118, 3, 45, 22, 0, 6118, 1056, 1, 0, 0, 0, 6119, 6120, 3, 43, 21, 0, 6120, 6121, 3, 11, 5, 0, 6121, 6122, 3, 7, 3, 0, 6122, 6123, 3, 29, 14, 0, 6123, 6124, 3, 15, 7, 0, 6124, 1058, 1, 0, 0, 0, 6125, 6126, 3, 43, 21, 0, 6126, 6127, 3, 11, 5, 0, 6127, 6128, 3, 21, 10, 0, 6128, 6129, 3, 15, 7, 0, 6129, 6130, 3, 31, 15, 0, 6130, 6131, 3, 7, 3, 0, 6131, 1060, 1, 0, 0, 0, 6132, 6133, 3, 43, 21, 0, 6133, 6134, 3, 11, 5, 0, 6134, 6135, 3, 21, 10, 0, 6135, 6136, 3, 15, 7, 0, 6136, 6137, 3, 31, 15, 0, 6137, 6138, 3, 7, 3, 0, 6138, 6139, 5, 95, 0, 0, 6139, 6140, 3, 33, 16, 0, 6140, 6141, 3, 7, 3, 0, 6141, 6142, 3, 31, 15, 0, 6142, 6143, 3, 15, 7, 0, 6143, 1062, 1, 0, 0, 0, 6144, 6145, 3, 43, 21, 0, 6145, 6146, 3, 11, 5, 0, 6146, 6147, 3, 35, 17, 0, 6147, 6148, 3, 37, 18, 0, 6148, 6149, 3, 15, 7, 0, 6149, 1064, 1, 0, 0, 0, 6150, 6151, 3, 43, 21, 0, 6151, 6152, 3, 11, 5, 0, 6152, 6153, 3, 35, 17, 0, 6153, 6154, 3, 37, 18, 0, 6154, 6155, 3, 15, 7, 0, 6155, 6156, 5, 95, 0, 0, 6156, 6157, 3, 11, 5, 0, 6157, 6158, 3, 7, 3, 0, 6158, 6159, 3, 45, 22, 0, 6159, 6160, 3, 7, 3, 0, 6160, 6161, 3, 29, 14, 0, 6161, 6162, 3, 35, 17, 0, 6162, 6163, 3, 19, 9, 0, 6163, 1066, 1, 0, 0, 0, 6164, 6165, 3, 43, 21, 0, 6165, 6166, 3, 11, 5, 0, 6166, 6167, 3, 35, 17, 0, 6167, 6168, 3, 37, 18, 0, 6168, 6169, 3, 15, 7, 0, 6169, 6170, 5, 95, 0, 0, 6170, 6171, 3, 33, 16, 0, 6171, 6172, 3, 7, 3, 0, 6172, 6173, 3, 31, 15, 0, 6173, 6174, 3, 15, 7, 0, 6174, 1068, 1, 0, 0, 0, 6175, 6176, 3, 43, 21, 0, 6176, 6177, 3, 11, 5, 0, 6177, 6178, 3, 35, 17, 0, 6178, 6179, 3, 37, 18, 0, 6179, 6180, 3, 15, 7, 0, 6180, 6181, 5, 95, 0, 0, 6181, 6182, 3, 43, 21, 0, 6182, 6183, 3, 11, 5, 0, 6183, 6184, 3, 21, 10, 0, 6184, 6185, 3, 15, 7, 0, 6185, 6186, 3, 31, 15, 0, 6186, 6187, 3, 7, 3, 0, 6187, 1070, 1, 0, 0, 0, 6188, 6189, 3, 43, 21, 0, 6189, 6190, 3, 11, 5, 0, 6190, 6191, 3, 41, 20, 0, 6191, 6192, 3, 35, 17, 0, 6192, 6193, 3, 29, 14, 0, 6193, 6194, 3, 29, 14, 0, 6194, 1072, 1, 0, 0, 0, 6195, 6196, 3, 43, 21, 0, 6196, 6197, 3, 15, 7, 0, 6197, 6198, 3, 7, 3, 0, 6198, 6199, 3, 41, 20, 0, 6199, 6200, 3, 11, 5, 0, 6200, 6201, 3, 21, 10, 0, 6201, 1074, 1, 0, 0, 0, 6202, 6203, 3, 43, 21, 0, 6203, 6204, 3, 15, 7, 0, 6204, 6205, 3, 11, 5, 0, 6205, 6206, 3, 35, 17, 0, 6206, 6207, 3, 33, 16, 0, 6207, 6208, 3, 13, 6, 0, 6208, 1076, 1, 0, 0, 0, 6209, 6210, 3, 43, 21, 0, 6210, 6211, 3, 15, 7, 0, 6211, 6212, 3, 11, 5, 0, 6212, 6213, 3, 45, 22, 0, 6213, 6214, 3, 23, 11, 0, 6214, 6215, 3, 35, 17, 0, 6215, 6216, 3, 33, 16, 0, 6216, 1078, 1, 0, 0, 0, 6217, 6218, 3, 43, 21, 0, 6218, 6219, 3, 15, 7, 0, 6219, 6220, 3, 11, 5, 0, 6220, 6221, 3, 47, 23, 0, 6221, 6222, 3, 41, 20, 0, 6222, 6223, 3, 23, 11, 0, 6223, 6224, 3, 45, 22, 0, 6224, 6225, 3, 55, 27, 0, 6225, 1080, 1, 0, 0, 0, 6226, 6227, 3, 43, 21, 0, 6227, 6228, 3, 15, 7, 0, 6228, 6229, 3, 29, 14, 0, 6229, 6230, 3, 15, 7, 0, 6230, 6231, 3, 11, 5, 0, 6231, 6232, 3, 45, 22, 0, 6232, 1082, 1, 0, 0, 0, 6233, 6234, 3, 43, 21, 0, 6234, 6235, 3, 15, 7, 0, 6235, 6236, 3, 29, 14, 0, 6236, 6237, 3, 17, 8, 0, 6237, 1084, 1, 0, 0, 0, 6238, 6239, 3, 43, 21, 0, 6239, 6240, 3, 15, 7, 0, 6240, 6241, 3, 33, 16, 0, 6241, 6242, 3, 43, 21, 0, 6242, 6243, 3, 23, 11, 0, 6243, 6244, 3, 45, 22, 0, 6244, 6245, 3, 23, 11, 0, 6245, 6246, 3, 49, 24, 0, 6246, 6247, 3, 15, 7, 0, 6247, 1086, 1, 0, 0, 0, 6248, 6249, 3, 43, 21, 0, 6249, 6250, 3, 15, 7, 0, 6250, 6251, 3, 39, 19, 0, 6251, 6252, 3, 47, 23, 0, 6252, 6253, 3, 15, 7, 0, 6253, 6254, 3, 33, 16, 0, 6254, 6255, 3, 11, 5, 0, 6255, 6256, 3, 15, 7, 0, 6256, 1088, 1, 0, 0, 0, 6257, 6258, 3, 43, 21, 0, 6258, 6259, 3, 15, 7, 0, 6259, 6260, 3, 39, 19, 0, 6260, 6261, 3, 47, 23, 0, 6261, 6262, 3, 15, 7, 0, 6262, 6263, 3, 33, 16, 0, 6263, 6264, 3, 11, 5, 0, 6264, 6265, 3, 15, 7, 0, 6265, 6266, 3, 43, 21, 0, 6266, 1090, 1, 0, 0, 0, 6267, 6268, 3, 43, 21, 0, 6268, 6269, 3, 15, 7, 0, 6269, 6270, 3, 41, 20, 0, 6270, 6271, 3, 23, 11, 0, 6271, 6272, 3, 7, 3, 0, 6272, 6273, 3, 29, 14, 0, 6273, 6274, 3, 23, 11, 0, 6274, 6275, 3, 57, 28, 0, 6275, 6276, 3, 7, 3, 0, 6276, 6277, 3, 9, 4, 0, 6277, 6278, 3, 29, 14, 0, 6278, 6279, 3, 15, 7, 0, 6279, 1092, 1, 0, 0, 0, 6280, 6281, 3, 43, 21, 0, 6281, 6282, 3, 15, 7, 0, 6282, 6283, 3, 41, 20, 0, 6283, 6284, 3, 49, 24, 0, 6284, 6285, 3, 15, 7, 0, 6285, 6286, 3, 41, 20, 0, 6286, 6287, 5, 95, 0, 0, 6287, 6288, 3, 33, 16, 0, 6288, 6289, 3, 7, 3, 0, 6289, 6290, 3, 31, 15, 0, 6290, 6291, 3, 15, 7, 0, 6291, 1094, 1, 0, 0, 0, 6292, 6293, 3, 43, 21, 0, 6293, 6294, 3, 15, 7, 0, 6294, 6295, 3, 43, 21, 0, 6295, 6296, 3, 43, 21, 0, 6296, 6297, 3, 23, 11, 0, 6297, 6298, 3, 35, 17, 0, 6298, 6299, 3, 33, 16, 0, 6299, 1096, 1, 0, 0, 0, 6300, 6301, 3, 43, 21, 0, 6301, 6302, 3, 15, 7, 0, 6302, 6303, 3, 43, 21, 0, 6303, 6304, 3, 43, 21, 0, 6304, 6305, 3, 23, 11, 0, 6305, 6306, 3, 35, 17, 0, 6306, 6307, 3, 33, 16, 0, 6307, 6308, 5, 95, 0, 0, 6308, 6309, 3, 47, 23, 0, 6309, 6310, 3, 43, 21, 0, 6310, 6311, 3, 15, 7, 0, 6311, 6312, 3, 41, 20, 0, 6312, 1098, 1, 0, 0, 0, 6313, 6314, 3, 43, 21, 0, 6314, 6315, 3, 15, 7, 0, 6315, 6316, 3, 45, 22, 0, 6316, 1100, 1, 0, 0, 0, 6317, 6318, 3, 43, 21, 0, 6318, 6319, 3, 15, 7, 0, 6319, 6320, 3, 45, 22, 0, 6320, 6321, 3, 35, 17, 0, 6321, 6322, 3, 17, 8, 0, 6322, 1102, 1, 0, 0, 0, 6323, 6324, 3, 43, 21, 0, 6324, 6325, 3, 15, 7, 0, 6325, 6326, 3, 45, 22, 0, 6326, 6327, 3, 43, 21, 0, 6327, 1104, 1, 0, 0, 0, 6328, 6329, 3, 43, 21, 0, 6329, 6330, 3, 21, 10, 0, 6330, 6331, 3, 7, 3, 0, 6331, 6332, 3, 41, 20, 0, 6332, 6333, 3, 15, 7, 0, 6333, 1106, 1, 0, 0, 0, 6334, 6335, 3, 43, 21, 0, 6335, 6336, 3, 21, 10, 0, 6336, 6337, 3, 35, 17, 0, 6337, 6338, 3, 51, 25, 0, 6338, 1108, 1, 0, 0, 0, 6339, 6340, 3, 43, 21, 0, 6340, 6341, 3, 23, 11, 0, 6341, 6342, 3, 31, 15, 0, 6342, 6343, 3, 23, 11, 0, 6343, 6344, 3, 29, 14, 0, 6344, 6345, 3, 7, 3, 0, 6345, 6346, 3, 41, 20, 0, 6346, 1110, 1, 0, 0, 0, 6347, 6348, 3, 43, 21, 0, 6348, 6349, 3, 23, 11, 0, 6349, 6350, 3, 31, 15, 0, 6350, 6351, 3, 37, 18, 0, 6351, 6352, 3, 29, 14, 0, 6352, 6353, 3, 15, 7, 0, 6353, 1112, 1, 0, 0, 0, 6354, 6355, 3, 43, 21, 0, 6355, 6356, 3, 23, 11, 0, 6356, 6357, 3, 57, 28, 0, 6357, 6358, 3, 15, 7, 0, 6358, 1114, 1, 0, 0, 0, 6359, 6360, 3, 43, 21, 0, 6360, 6361, 3, 27, 13, 0, 6361, 6362, 3, 23, 11, 0, 6362, 6363, 3, 37, 18, 0, 6363, 1116, 1, 0, 0, 0, 6364, 6365, 3, 43, 21, 0, 6365, 6366, 3, 31, 15, 0, 6366, 6367, 3, 7, 3, 0, 6367, 6368, 3, 29, 14, 0, 6368, 6369, 3, 29, 14, 0, 6369, 6370, 3, 23, 11, 0, 6370, 6371, 3, 33, 16, 0, 6371, 6372, 3, 45, 22, 0, 6372, 1118, 1, 0, 0, 0, 6373, 6374, 3, 43, 21, 0, 6374, 6375, 3, 33, 16, 0, 6375, 6376, 3, 7, 3, 0, 6376, 6377, 3, 37, 18, 0, 6377, 6378, 3, 43, 21, 0, 6378, 6379, 3, 21, 10, 0, 6379, 6380, 3, 35, 17, 0, 6380, 6381, 3, 45, 22, 0, 6381, 1120, 1, 0, 0, 0, 6382, 6383, 3, 43, 21, 0, 6383, 6384, 3, 35, 17, 0, 6384, 6385, 3, 31, 15, 0, 6385, 6386, 3, 15, 7, 0, 6386, 1122, 1, 0, 0, 0, 6387, 6388, 3, 43, 21, 0, 6388, 6389, 3, 35, 17, 0, 6389, 6390, 3, 47, 23, 0, 6390, 6391, 3, 41, 20, 0, 6391, 6392, 3, 11, 5, 0, 6392, 6393, 3, 15, 7, 0, 6393, 1124, 1, 0, 0, 0, 6394, 6395, 3, 43, 21, 0, 6395, 6396, 3, 37, 18, 0, 6396, 6397, 3, 7, 3, 0, 6397, 6398, 3, 11, 5, 0, 6398, 6399, 3, 15, 7, 0, 6399, 1126, 1, 0, 0, 0, 6400, 6401, 3, 43, 21, 0, 6401, 6402, 3, 37, 18, 0, 6402, 6403, 3, 15, 7, 0, 6403, 6404, 3, 11, 5, 0, 6404, 6405, 3, 23, 11, 0, 6405, 6406, 3, 17, 8, 0, 6406, 6407, 3, 23, 11, 0, 6407, 6408, 3, 11, 5, 0, 6408, 1128, 1, 0, 0, 0, 6409, 6410, 3, 43, 21, 0, 6410, 6411, 3, 37, 18, 0, 6411, 6412, 3, 15, 7, 0, 6412, 6413, 3, 11, 5, 0, 6413, 6414, 3, 23, 11, 0, 6414, 6415, 3, 17, 8, 0, 6415, 6416, 3, 23, 11, 0, 6416, 6417, 3, 11, 5, 0, 6417, 6418, 5, 95, 0, 0, 6418, 6419, 3, 33, 16, 0, 6419, 6420, 3, 7, 3, 0, 6420, 6421, 3, 31, 15, 0, 6421, 6422, 3, 15, 7, 0, 6422, 1130, 1, 0, 0, 0, 6423, 6424, 3, 43, 21, 0, 6424, 6425, 3, 37, 18, 0, 6425, 6426, 3, 15, 7, 0, 6426, 6427, 3, 11, 5, 0, 6427, 6428, 3, 23, 11, 0, 6428, 6429, 3, 17, 8, 0, 6429, 6430, 3, 23, 11, 0, 6430, 6431, 3, 11, 5, 0, 6431, 6432, 3, 45, 22, 0, 6432, 6433, 3, 55, 27, 0, 6433, 6434, 3, 37, 18, 0, 6434, 6435, 3, 15, 7, 0, 6435, 1132, 1, 0, 0, 0, 6436, 6437, 3, 43, 21, 0, 6437, 6438, 3, 39, 19, 0, 6438, 6439, 3, 29, 14, 0, 6439, 1134, 1, 0, 0, 0, 6440, 6441, 3, 43, 21, 0, 6441, 6442, 3, 39, 19, 0, 6442, 6443, 3, 29, 14, 0, 6443, 6444, 3, 11, 5, 0, 6444, 6445, 3, 35, 17, 0, 6445, 6446, 3, 13, 6, 0, 6446, 6447, 3, 15, 7, 0, 6447, 1136, 1, 0, 0, 0, 6448, 6449, 3, 43, 21, 0, 6449, 6450, 3, 39, 19, 0, 6450, 6451, 3, 29, 14, 0, 6451, 6452, 3, 15, 7, 0, 6452, 6453, 3, 41, 20, 0, 6453, 6454, 3, 41, 20, 0, 6454, 6455, 3, 35, 17, 0, 6455, 6456, 3, 41, 20, 0, 6456, 1138, 1, 0, 0, 0, 6457, 6458, 3, 43, 21, 0, 6458, 6459, 3, 39, 19, 0, 6459, 6460, 3, 29, 14, 0, 6460, 6461, 3, 15, 7, 0, 6461, 6462, 3, 53, 26, 0, 6462, 6463, 3, 11, 5, 0, 6463, 6464, 3, 15, 7, 0, 6464, 6465, 3, 37, 18, 0, 6465, 6466, 3, 45, 22, 0, 6466, 6467, 3, 23, 11, 0, 6467, 6468, 3, 35, 17, 0, 6468, 6469, 3, 33, 16, 0, 6469, 1140, 1, 0, 0, 0, 6470, 6471, 3, 43, 21, 0, 6471, 6472, 3, 39, 19, 0, 6472, 6473, 3, 29, 14, 0, 6473, 6474, 3, 43, 21, 0, 6474, 6475, 3, 45, 22, 0, 6475, 6476, 3, 7, 3, 0, 6476, 6477, 3, 45, 22, 0, 6477, 6478, 3, 15, 7, 0, 6478, 1142, 1, 0, 0, 0, 6479, 6480, 3, 43, 21, 0, 6480, 6481, 3, 39, 19, 0, 6481, 6482, 3, 29, 14, 0, 6482, 6483, 3, 51, 25, 0, 6483, 6484, 3, 7, 3, 0, 6484, 6485, 3, 41, 20, 0, 6485, 6486, 3, 33, 16, 0, 6486, 6487, 3, 23, 11, 0, 6487, 6488, 3, 33, 16, 0, 6488, 6489, 3, 19, 9, 0, 6489, 1144, 1, 0, 0, 0, 6490, 6491, 3, 43, 21, 0, 6491, 6492, 3, 39, 19, 0, 6492, 6493, 3, 41, 20, 0, 6493, 6494, 3, 45, 22, 0, 6494, 1146, 1, 0, 0, 0, 6495, 6496, 3, 43, 21, 0, 6496, 6497, 3, 45, 22, 0, 6497, 6498, 3, 7, 3, 0, 6498, 6499, 3, 9, 4, 0, 6499, 6500, 3, 29, 14, 0, 6500, 6501, 3, 15, 7, 0, 6501, 1148, 1, 0, 0, 0, 6502, 6503, 3, 43, 21, 0, 6503, 6504, 3, 45, 22, 0, 6504, 6505, 3, 7, 3, 0, 6505, 6506, 3, 41, 20, 0, 6506, 6507, 3, 45, 22, 0, 6507, 1150, 1, 0, 0, 0, 6508, 6509, 3, 43, 21, 0, 6509, 6510, 3, 45, 22, 0, 6510, 6511, 3, 7, 3, 0, 6511, 6512, 3, 45, 22, 0, 6512, 6513, 3, 15, 7, 0, 6513, 1152, 1, 0, 0, 0, 6514, 6515, 3, 43, 21, 0, 6515, 6516, 3, 45, 22, 0, 6516, 6517, 3, 7, 3, 0, 6517, 6518, 3, 45, 22, 0, 6518, 6519, 3, 15, 7, 0, 6519, 6520, 3, 31, 15, 0, 6520, 6521, 3, 15, 7, 0, 6521, 6522, 3, 33, 16, 0, 6522, 6523, 3, 45, 22, 0, 6523, 1154, 1, 0, 0, 0, 6524, 6525, 3, 43, 21, 0, 6525, 6526, 3, 45, 22, 0, 6526, 6527, 3, 7, 3, 0, 6527, 6528, 3, 45, 22, 0, 6528, 6529, 3, 23, 11, 0, 6529, 6530, 3, 11, 5, 0, 6530, 1156, 1, 0, 0, 0, 6531, 6532, 3, 43, 21, 0, 6532, 6533, 3, 45, 22, 0, 6533, 6534, 3, 7, 3, 0, 6534, 6535, 3, 45, 22, 0, 6535, 6536, 3, 23, 11, 0, 6536, 6537, 3, 43, 21, 0, 6537, 6538, 3, 45, 22, 0, 6538, 6539, 3, 23, 11, 0, 6539, 6540, 3, 11, 5, 0, 6540, 6541, 3, 43, 21, 0, 6541, 1158, 1, 0, 0, 0, 6542, 6543, 3, 43, 21, 0, 6543, 6544, 3, 45, 22, 0, 6544, 6545, 3, 13, 6, 0, 6545, 6546, 3, 13, 6, 0, 6546, 6547, 3, 15, 7, 0, 6547, 6548, 3, 49, 24, 0, 6548, 6549, 5, 95, 0, 0, 6549, 6550, 3, 37, 18, 0, 6550, 6551, 3, 35, 17, 0, 6551, 6552, 3, 37, 18, 0, 6552, 1160, 1, 0, 0, 0, 6553, 6554, 3, 43, 21, 0, 6554, 6555, 3, 45, 22, 0, 6555, 6556, 3, 13, 6, 0, 6556, 6557, 3, 13, 6, 0, 6557, 6558, 3, 15, 7, 0, 6558, 6559, 3, 49, 24, 0, 6559, 6560, 5, 95, 0, 0, 6560, 6561, 3, 43, 21, 0, 6561, 6562, 3, 7, 3, 0, 6562, 6563, 3, 31, 15, 0, 6563, 6564, 3, 37, 18, 0, 6564, 1162, 1, 0, 0, 0, 6565, 6566, 3, 43, 21, 0, 6566, 6567, 3, 45, 22, 0, 6567, 6568, 3, 13, 6, 0, 6568, 6569, 3, 23, 11, 0, 6569, 6570, 3, 33, 16, 0, 6570, 1164, 1, 0, 0, 0, 6571, 6572, 3, 43, 21, 0, 6572, 6573, 3, 45, 22, 0, 6573, 6574, 3, 13, 6, 0, 6574, 6575, 3, 35, 17, 0, 6575, 6576, 3, 47, 23, 0, 6576, 6577, 3, 45, 22, 0, 6577, 1166, 1, 0, 0, 0, 6578, 6579, 3, 43, 21, 0, 6579, 6580, 3, 45, 22, 0, 6580, 6581, 3, 35, 17, 0, 6581, 6582, 3, 41, 20, 0, 6582, 6583, 3, 7, 3, 0, 6583, 6584, 3, 19, 9, 0, 6584, 6585, 3, 15, 7, 0, 6585, 1168, 1, 0, 0, 0, 6586, 6587, 3, 43, 21, 0, 6587, 6588, 3, 45, 22, 0, 6588, 6589, 3, 41, 20, 0, 6589, 6590, 3, 23, 11, 0, 6590, 6591, 3, 11, 5, 0, 6591, 6592, 3, 45, 22, 0, 6592, 1170, 1, 0, 0, 0, 6593, 6594, 3, 43, 21, 0, 6594, 6595, 3, 45, 22, 0, 6595, 6596, 3, 41, 20, 0, 6596, 6597, 3, 47, 23, 0, 6597, 6598, 3, 11, 5, 0, 6598, 6599, 3, 45, 22, 0, 6599, 6600, 3, 47, 23, 0, 6600, 6601, 3, 41, 20, 0, 6601, 6602, 3, 15, 7, 0, 6602, 1172, 1, 0, 0, 0, 6603, 6604, 3, 43, 21, 0, 6604, 6605, 3, 45, 22, 0, 6605, 6606, 3, 55, 27, 0, 6606, 6607, 3, 29, 14, 0, 6607, 6608, 3, 15, 7, 0, 6608, 1174, 1, 0, 0, 0, 6609, 6610, 3, 43, 21, 0, 6610, 6611, 3, 47, 23, 0, 6611, 6612, 3, 9, 4, 0, 6612, 6613, 3, 11, 5, 0, 6613, 6614, 3, 29, 14, 0, 6614, 6615, 3, 7, 3, 0, 6615, 6616, 3, 43, 21, 0, 6616, 6617, 3, 43, 21, 0, 6617, 6618, 5, 95, 0, 0, 6618, 6619, 3, 35, 17, 0, 6619, 6620, 3, 41, 20, 0, 6620, 6621, 3, 23, 11, 0, 6621, 6622, 3, 19, 9, 0, 6622, 6623, 3, 23, 11, 0, 6623, 6624, 3, 33, 16, 0, 6624, 1176, 1, 0, 0, 0, 6625, 6626, 3, 43, 21, 0, 6626, 6627, 3, 47, 23, 0, 6627, 6628, 3, 9, 4, 0, 6628, 6629, 3, 29, 14, 0, 6629, 6630, 3, 23, 11, 0, 6630, 6631, 3, 43, 21, 0, 6631, 6632, 3, 45, 22, 0, 6632, 1178, 1, 0, 0, 0, 6633, 6634, 3, 43, 21, 0, 6634, 6635, 3, 47, 23, 0, 6635, 6636, 3, 9, 4, 0, 6636, 6637, 3, 31, 15, 0, 6637, 6638, 3, 47, 23, 0, 6638, 6639, 3, 29, 14, 0, 6639, 6640, 3, 45, 22, 0, 6640, 6641, 3, 23, 11, 0, 6641, 6642, 3, 43, 21, 0, 6642, 6643, 3, 15, 7, 0, 6643, 6644, 3, 45, 22, 0, 6644, 1180, 1, 0, 0, 0, 6645, 6646, 3, 43, 21, 0, 6646, 6647, 3, 47, 23, 0, 6647, 6648, 3, 9, 4, 0, 6648, 6649, 3, 43, 21, 0, 6649, 6650, 3, 11, 5, 0, 6650, 6651, 3, 41, 20, 0, 6651, 6652, 3, 23, 11, 0, 6652, 6653, 3, 37, 18, 0, 6653, 6654, 3, 45, 22, 0, 6654, 6655, 3, 23, 11, 0, 6655, 6656, 3, 35, 17, 0, 6656, 6657, 3, 33, 16, 0, 6657, 1182, 1, 0, 0, 0, 6658, 6659, 3, 43, 21, 0, 6659, 6660, 3, 47, 23, 0, 6660, 6661, 3, 9, 4, 0, 6661, 6662, 3, 43, 21, 0, 6662, 6663, 3, 45, 22, 0, 6663, 6664, 3, 41, 20, 0, 6664, 6665, 3, 23, 11, 0, 6665, 6666, 3, 33, 16, 0, 6666, 6667, 3, 19, 9, 0, 6667, 1184, 1, 0, 0, 0, 6668, 6669, 3, 43, 21, 0, 6669, 6670, 3, 47, 23, 0, 6670, 6671, 3, 31, 15, 0, 6671, 1186, 1, 0, 0, 0, 6672, 6673, 3, 43, 21, 0, 6673, 6674, 3, 55, 27, 0, 6674, 6675, 3, 31, 15, 0, 6675, 6676, 3, 31, 15, 0, 6676, 6677, 3, 15, 7, 0, 6677, 6678, 3, 45, 22, 0, 6678, 6679, 3, 41, 20, 0, 6679, 6680, 3, 23, 11, 0, 6680, 6681, 3, 11, 5, 0, 6681, 1188, 1, 0, 0, 0, 6682, 6683, 3, 43, 21, 0, 6683, 6684, 3, 55, 27, 0, 6684, 6685, 3, 43, 21, 0, 6685, 6686, 3, 23, 11, 0, 6686, 6687, 3, 13, 6, 0, 6687, 1190, 1, 0, 0, 0, 6688, 6689, 3, 43, 21, 0, 6689, 6690, 3, 55, 27, 0, 6690, 6691, 3, 43, 21, 0, 6691, 6692, 3, 45, 22, 0, 6692, 6693, 3, 15, 7, 0, 6693, 6694, 3, 31, 15, 0, 6694, 1192, 1, 0, 0, 0, 6695, 6696, 3, 43, 21, 0, 6696, 6697, 3, 55, 27, 0, 6697, 6698, 3, 43, 21, 0, 6698, 6699, 3, 45, 22, 0, 6699, 6700, 3, 15, 7, 0, 6700, 6701, 3, 31, 15, 0, 6701, 6702, 5, 95, 0, 0, 6702, 6703, 3, 47, 23, 0, 6703, 6704, 3, 43, 21, 0, 6704, 6705, 3, 15, 7, 0, 6705, 6706, 3, 41, 20, 0, 6706, 1194, 1, 0, 0, 0, 6707, 6708, 3, 45, 22, 0, 6708, 6709, 3, 7, 3, 0, 6709, 6710, 3, 9, 4, 0, 6710, 6711, 3, 29, 14, 0, 6711, 6712, 3, 15, 7, 0, 6712, 1196, 1, 0, 0, 0, 6713, 6714, 3, 45, 22, 0, 6714, 6715, 3, 7, 3, 0, 6715, 6716, 3, 9, 4, 0, 6716, 6717, 3, 29, 14, 0, 6717, 6718, 3, 15, 7, 0, 6718, 6719, 5, 95, 0, 0, 6719, 6720, 3, 33, 16, 0, 6720, 6721, 3, 7, 3, 0, 6721, 6722, 3, 31, 15, 0, 6722, 6723, 3, 15, 7, 0, 6723, 1198, 1, 0, 0, 0, 6724, 6725, 3, 45, 22, 0, 6725, 6726, 3, 7, 3, 0, 6726, 6727, 3, 9, 4, 0, 6727, 6728, 3, 29, 14, 0, 6728, 6729, 3, 15, 7, 0, 6729, 6730, 3, 43, 21, 0, 6730, 6731, 3, 7, 3, 0, 6731, 6732, 3, 31, 15, 0, 6732, 6733, 3, 37, 18, 0, 6733, 6734, 3, 29, 14, 0, 6734, 6735, 3, 15, 7, 0, 6735, 1200, 1, 0, 0, 0, 6736, 6737, 3, 45, 22, 0, 6737, 6738, 3, 7, 3, 0, 6738, 6739, 3, 9, 4, 0, 6739, 6740, 3, 29, 14, 0, 6740, 6741, 3, 15, 7, 0, 6741, 6742, 3, 43, 21, 0, 6742, 6743, 3, 37, 18, 0, 6743, 6744, 3, 7, 3, 0, 6744, 6745, 3, 11, 5, 0, 6745, 6746, 3, 15, 7, 0, 6746, 1202, 1, 0, 0, 0, 6747, 6748, 3, 45, 22, 0, 6748, 6749, 3, 15, 7, 0, 6749, 6750, 3, 31, 15, 0, 6750, 6751, 3, 37, 18, 0, 6751, 1204, 1, 0, 0, 0, 6752, 6753, 3, 45, 22, 0, 6753, 6754, 3, 15, 7, 0, 6754, 6755, 3, 31, 15, 0, 6755, 6756, 3, 37, 18, 0, 6756, 6757, 3, 29, 14, 0, 6757, 6758, 3, 7, 3, 0, 6758, 6759, 3, 45, 22, 0, 6759, 6760, 3, 15, 7, 0, 6760, 1206, 1, 0, 0, 0, 6761, 6762, 3, 45, 22, 0, 6762, 6763, 3, 15, 7, 0, 6763, 6764, 3, 31, 15, 0, 6764, 6765, 3, 37, 18, 0, 6765, 6766, 3, 35, 17, 0, 6766, 6767, 3, 41, 20, 0, 6767, 6768, 3, 7, 3, 0, 6768, 6769, 3, 41, 20, 0, 6769, 6770, 3, 55, 27, 0, 6770, 1208, 1, 0, 0, 0, 6771, 6772, 3, 45, 22, 0, 6772, 6773, 3, 15, 7, 0, 6773, 6774, 3, 41, 20, 0, 6774, 6775, 3, 31, 15, 0, 6775, 6776, 3, 23, 11, 0, 6776, 6777, 3, 33, 16, 0, 6777, 6778, 3, 7, 3, 0, 6778, 6779, 3, 45, 22, 0, 6779, 6780, 3, 15, 7, 0, 6780, 1210, 1, 0, 0, 0, 6781, 6782, 3, 45, 22, 0, 6782, 6783, 3, 21, 10, 0, 6783, 6784, 3, 7, 3, 0, 6784, 6785, 3, 33, 16, 0, 6785, 1212, 1, 0, 0, 0, 6786, 6787, 3, 45, 22, 0, 6787, 6788, 3, 21, 10, 0, 6788, 6789, 3, 15, 7, 0, 6789, 6790, 3, 33, 16, 0, 6790, 1214, 1, 0, 0, 0, 6791, 6792, 3, 45, 22, 0, 6792, 6793, 3, 23, 11, 0, 6793, 6794, 3, 15, 7, 0, 6794, 6795, 3, 43, 21, 0, 6795, 1216, 1, 0, 0, 0, 6796, 6797, 3, 45, 22, 0, 6797, 6798, 3, 23, 11, 0, 6798, 6799, 3, 31, 15, 0, 6799, 6800, 3, 15, 7, 0, 6800, 1218, 1, 0, 0, 0, 6801, 6802, 3, 45, 22, 0, 6802, 6803, 3, 23, 11, 0, 6803, 6804, 3, 31, 15, 0, 6804, 6805, 3, 15, 7, 0, 6805, 6806, 3, 43, 21, 0, 6806, 6807, 3, 45, 22, 0, 6807, 6808, 3, 7, 3, 0, 6808, 6809, 3, 31, 15, 0, 6809, 6810, 3, 37, 18, 0, 6810, 1220, 1, 0, 0, 0, 6811, 6812, 3, 45, 22, 0, 6812, 6813, 3, 23, 11, 0, 6813, 6814, 3, 31, 15, 0, 6814, 6815, 3, 15, 7, 0, 6815, 6816, 3, 57, 28, 0, 6816, 6817, 3, 35, 17, 0, 6817, 6818, 3, 33, 16, 0, 6818, 6819, 3, 15, 7, 0, 6819, 6820, 5, 95, 0, 0, 6820, 6821, 3, 21, 10, 0, 6821, 6822, 3, 35, 17, 0, 6822, 6823, 3, 47, 23, 0, 6823, 6824, 3, 41, 20, 0, 6824, 1222, 1, 0, 0, 0, 6825, 6826, 3, 45, 22, 0, 6826, 6827, 3, 23, 11, 0, 6827, 6828, 3, 31, 15, 0, 6828, 6829, 3, 15, 7, 0, 6829, 6830, 3, 57, 28, 0, 6830, 6831, 3, 35, 17, 0, 6831, 6832, 3, 33, 16, 0, 6832, 6833, 3, 15, 7, 0, 6833, 6834, 5, 95, 0, 0, 6834, 6835, 3, 31, 15, 0, 6835, 6836, 3, 23, 11, 0, 6836, 6837, 3, 33, 16, 0, 6837, 6838, 3, 47, 23, 0, 6838, 6839, 3, 45, 22, 0, 6839, 6840, 3, 15, 7, 0, 6840, 1224, 1, 0, 0, 0, 6841, 6842, 3, 45, 22, 0, 6842, 6843, 3, 23, 11, 0, 6843, 6844, 3, 31, 15, 0, 6844, 6845, 3, 23, 11, 0, 6845, 6846, 3, 33, 16, 0, 6846, 6847, 3, 19, 9, 0, 6847, 1226, 1, 0, 0, 0, 6848, 6849, 3, 45, 22, 0, 6849, 6850, 3, 35, 17, 0, 6850, 1228, 1, 0, 0, 0, 6851, 6852, 3, 45, 22, 0, 6852, 6853, 3, 35, 17, 0, 6853, 6854, 3, 7, 3, 0, 6854, 6855, 3, 43, 21, 0, 6855, 6856, 3, 45, 22, 0, 6856, 1230, 1, 0, 0, 0, 6857, 6858, 3, 45, 22, 0, 6858, 6859, 3, 35, 17, 0, 6859, 6860, 3, 37, 18, 0, 6860, 6861, 5, 95, 0, 0, 6861, 6862, 3, 29, 14, 0, 6862, 6863, 3, 15, 7, 0, 6863, 6864, 3, 49, 24, 0, 6864, 6865, 3, 15, 7, 0, 6865, 6866, 3, 29, 14, 0, 6866, 6867, 5, 95, 0, 0, 6867, 6868, 3, 11, 5, 0, 6868, 6869, 3, 35, 17, 0, 6869, 6870, 3, 47, 23, 0, 6870, 6871, 3, 33, 16, 0, 6871, 6872, 3, 45, 22, 0, 6872, 1232, 1, 0, 0, 0, 6873, 6874, 3, 45, 22, 0, 6874, 6875, 3, 41, 20, 0, 6875, 6876, 3, 7, 3, 0, 6876, 6877, 3, 23, 11, 0, 6877, 6878, 3, 29, 14, 0, 6878, 6879, 3, 23, 11, 0, 6879, 6880, 3, 33, 16, 0, 6880, 6881, 3, 19, 9, 0, 6881, 1234, 1, 0, 0, 0, 6882, 6883, 3, 45, 22, 0, 6883, 6884, 3, 41, 20, 0, 6884, 6885, 3, 7, 3, 0, 6885, 6886, 3, 33, 16, 0, 6886, 6887, 3, 43, 21, 0, 6887, 6888, 3, 7, 3, 0, 6888, 6889, 3, 11, 5, 0, 6889, 6890, 3, 45, 22, 0, 6890, 6891, 3, 23, 11, 0, 6891, 6892, 3, 35, 17, 0, 6892, 6893, 3, 33, 16, 0, 6893, 1236, 1, 0, 0, 0, 6894, 6895, 3, 45, 22, 0, 6895, 6896, 3, 41, 20, 0, 6896, 6897, 3, 7, 3, 0, 6897, 6898, 3, 33, 16, 0, 6898, 6899, 3, 43, 21, 0, 6899, 6900, 3, 7, 3, 0, 6900, 6901, 3, 11, 5, 0, 6901, 6902, 3, 45, 22, 0, 6902, 6903, 3, 23, 11, 0, 6903, 6904, 3, 35, 17, 0, 6904, 6905, 3, 33, 16, 0, 6905, 6906, 5, 95, 0, 0, 6906, 6907, 3, 7, 3, 0, 6907, 6908, 3, 11, 5, 0, 6908, 6909, 3, 45, 22, 0, 6909, 6910, 3, 23, 11, 0, 6910, 6911, 3, 49, 24, 0, 6911, 6912, 3, 15, 7, 0, 6912, 1238, 1, 0, 0, 0, 6913, 6914, 3, 45, 22, 0, 6914, 6915, 3, 41, 20, 0, 6915, 6916, 3, 7, 3, 0, 6916, 6917, 3, 33, 16, 0, 6917, 6918, 3, 43, 21, 0, 6918, 6919, 3, 7, 3, 0, 6919, 6920, 3, 11, 5, 0, 6920, 6921, 3, 45, 22, 0, 6921, 6922, 3, 23, 11, 0, 6922, 6923, 3, 35, 17, 0, 6923, 6924, 3, 33, 16, 0, 6924, 6925, 3, 43, 21, 0, 6925, 6926, 5, 95, 0, 0, 6926, 6927, 3, 11, 5, 0, 6927, 6928, 3, 35, 17, 0, 6928, 6929, 3, 31, 15, 0, 6929, 6930, 3, 31, 15, 0, 6930, 6931, 3, 23, 11, 0, 6931, 6932, 3, 45, 22, 0, 6932, 6933, 3, 45, 22, 0, 6933, 6934, 3, 15, 7, 0, 6934, 6935, 3, 13, 6, 0, 6935, 1240, 1, 0, 0, 0, 6936, 6937, 3, 45, 22, 0, 6937, 6938, 3, 41, 20, 0, 6938, 6939, 3, 7, 3, 0, 6939, 6940, 3, 33, 16, 0, 6940, 6941, 3, 43, 21, 0, 6941, 6942, 3, 7, 3, 0, 6942, 6943, 3, 11, 5, 0, 6943, 6944, 3, 45, 22, 0, 6944, 6945, 3, 23, 11, 0, 6945, 6946, 3, 35, 17, 0, 6946, 6947, 3, 33, 16, 0, 6947, 6948, 3, 43, 21, 0, 6948, 6949, 5, 95, 0, 0, 6949, 6950, 3, 41, 20, 0, 6950, 6951, 3, 35, 17, 0, 6951, 6952, 3, 29, 14, 0, 6952, 6953, 3, 29, 14, 0, 6953, 6954, 3, 15, 7, 0, 6954, 6955, 3, 13, 6, 0, 6955, 6956, 5, 95, 0, 0, 6956, 6957, 3, 9, 4, 0, 6957, 6958, 3, 7, 3, 0, 6958, 6959, 3, 11, 5, 0, 6959, 6960, 3, 27, 13, 0, 6960, 1242, 1, 0, 0, 0, 6961, 6962, 3, 45, 22, 0, 6962, 6963, 3, 41, 20, 0, 6963, 6964, 3, 7, 3, 0, 6964, 6965, 3, 33, 16, 0, 6965, 6966, 3, 43, 21, 0, 6966, 6967, 3, 17, 8, 0, 6967, 6968, 3, 35, 17, 0, 6968, 6969, 3, 41, 20, 0, 6969, 6970, 3, 31, 15, 0, 6970, 1244, 1, 0, 0, 0, 6971, 6972, 3, 45, 22, 0, 6972, 6973, 3, 41, 20, 0, 6973, 6974, 3, 7, 3, 0, 6974, 6975, 3, 33, 16, 0, 6975, 6976, 3, 43, 21, 0, 6976, 6977, 3, 17, 8, 0, 6977, 6978, 3, 35, 17, 0, 6978, 6979, 3, 41, 20, 0, 6979, 6980, 3, 31, 15, 0, 6980, 6981, 3, 43, 21, 0, 6981, 1246, 1, 0, 0, 0, 6982, 6983, 3, 45, 22, 0, 6983, 6984, 3, 41, 20, 0, 6984, 6985, 3, 7, 3, 0, 6985, 6986, 3, 33, 16, 0, 6986, 6987, 3, 43, 21, 0, 6987, 6988, 3, 29, 14, 0, 6988, 6989, 3, 7, 3, 0, 6989, 6990, 3, 45, 22, 0, 6990, 6991, 3, 15, 7, 0, 6991, 1248, 1, 0, 0, 0, 6992, 6993, 3, 45, 22, 0, 6993, 6994, 3, 41, 20, 0, 6994, 6995, 3, 7, 3, 0, 6995, 6996, 3, 33, 16, 0, 6996, 6997, 3, 43, 21, 0, 6997, 6998, 3, 29, 14, 0, 6998, 6999, 3, 7, 3, 0, 6999, 7000, 3, 45, 22, 0, 7000, 7001, 3, 23, 11, 0, 7001, 7002, 3, 35, 17, 0, 7002, 7003, 3, 33, 16, 0, 7003, 1250, 1, 0, 0, 0, 7004, 7005, 3, 45, 22, 0, 7005, 7006, 3, 41, 20, 0, 7006, 7007, 3, 15, 7, 0, 7007, 7008, 3, 7, 3, 0, 7008, 7009, 3, 45, 22, 0, 7009, 1252, 1, 0, 0, 0, 7010, 7011, 3, 45, 22, 0, 7011, 7012, 3, 41, 20, 0, 7012, 7013, 3, 23, 11, 0, 7013, 7014, 3, 19, 9, 0, 7014, 7015, 3, 19, 9, 0, 7015, 7016, 3, 15, 7, 0, 7016, 7017, 3, 41, 20, 0, 7017, 1254, 1, 0, 0, 0, 7018, 7019, 3, 45, 22, 0, 7019, 7020, 3, 41, 20, 0, 7020, 7021, 3, 23, 11, 0, 7021, 7022, 3, 19, 9, 0, 7022, 7023, 3, 19, 9, 0, 7023, 7024, 3, 15, 7, 0, 7024, 7025, 3, 41, 20, 0, 7025, 7026, 5, 95, 0, 0, 7026, 7027, 3, 11, 5, 0, 7027, 7028, 3, 7, 3, 0, 7028, 7029, 3, 45, 22, 0, 7029, 7030, 3, 7, 3, 0, 7030, 7031, 3, 29, 14, 0, 7031, 7032, 3, 35, 17, 0, 7032, 7033, 3, 19, 9, 0, 7033, 1256, 1, 0, 0, 0, 7034, 7035, 3, 45, 22, 0, 7035, 7036, 3, 41, 20, 0, 7036, 7037, 3, 23, 11, 0, 7037, 7038, 3, 19, 9, 0, 7038, 7039, 3, 19, 9, 0, 7039, 7040, 3, 15, 7, 0, 7040, 7041, 3, 41, 20, 0, 7041, 7042, 5, 95, 0, 0, 7042, 7043, 3, 33, 16, 0, 7043, 7044, 3, 7, 3, 0, 7044, 7045, 3, 31, 15, 0, 7045, 7046, 3, 15, 7, 0, 7046, 1258, 1, 0, 0, 0, 7047, 7048, 3, 45, 22, 0, 7048, 7049, 3, 41, 20, 0, 7049, 7050, 3, 23, 11, 0, 7050, 7051, 3, 19, 9, 0, 7051, 7052, 3, 19, 9, 0, 7052, 7053, 3, 15, 7, 0, 7053, 7054, 3, 41, 20, 0, 7054, 7055, 5, 95, 0, 0, 7055, 7056, 3, 43, 21, 0, 7056, 7057, 3, 11, 5, 0, 7057, 7058, 3, 21, 10, 0, 7058, 7059, 3, 15, 7, 0, 7059, 7060, 3, 31, 15, 0, 7060, 7061, 3, 7, 3, 0, 7061, 1260, 1, 0, 0, 0, 7062, 7063, 3, 45, 22, 0, 7063, 7064, 3, 41, 20, 0, 7064, 7065, 3, 23, 11, 0, 7065, 7066, 3, 31, 15, 0, 7066, 1262, 1, 0, 0, 0, 7067, 7068, 3, 45, 22, 0, 7068, 7069, 3, 41, 20, 0, 7069, 7070, 3, 47, 23, 0, 7070, 7071, 3, 15, 7, 0, 7071, 1264, 1, 0, 0, 0, 7072, 7073, 3, 45, 22, 0, 7073, 7074, 3, 41, 20, 0, 7074, 7075, 3, 47, 23, 0, 7075, 7076, 3, 33, 16, 0, 7076, 7077, 3, 11, 5, 0, 7077, 7078, 3, 7, 3, 0, 7078, 7079, 3, 45, 22, 0, 7079, 7080, 3, 15, 7, 0, 7080, 1266, 1, 0, 0, 0, 7081, 7082, 3, 45, 22, 0, 7082, 7083, 3, 41, 20, 0, 7083, 7084, 3, 47, 23, 0, 7084, 7085, 3, 43, 21, 0, 7085, 7086, 3, 45, 22, 0, 7086, 7087, 3, 15, 7, 0, 7087, 7088, 3, 13, 6, 0, 7088, 1268, 1, 0, 0, 0, 7089, 7090, 3, 45, 22, 0, 7090, 7091, 3, 55, 27, 0, 7091, 7092, 3, 37, 18, 0, 7092, 7093, 3, 15, 7, 0, 7093, 1270, 1, 0, 0, 0, 7094, 7095, 3, 47, 23, 0, 7095, 7096, 3, 15, 7, 0, 7096, 7097, 3, 43, 21, 0, 7097, 7098, 3, 11, 5, 0, 7098, 7099, 3, 7, 3, 0, 7099, 7100, 3, 37, 18, 0, 7100, 7101, 3, 15, 7, 0, 7101, 1272, 1, 0, 0, 0, 7102, 7103, 3, 47, 23, 0, 7103, 7104, 3, 33, 16, 0, 7104, 7105, 3, 9, 4, 0, 7105, 7106, 3, 35, 17, 0, 7106, 7107, 3, 47, 23, 0, 7107, 7108, 3, 33, 16, 0, 7108, 7109, 3, 13, 6, 0, 7109, 7110, 3, 15, 7, 0, 7110, 7111, 3, 13, 6, 0, 7111, 1274, 1, 0, 0, 0, 7112, 7113, 3, 47, 23, 0, 7113, 7114, 3, 33, 16, 0, 7114, 7115, 3, 11, 5, 0, 7115, 7116, 3, 35, 17, 0, 7116, 7117, 3, 31, 15, 0, 7117, 7118, 3, 31, 15, 0, 7118, 7119, 3, 23, 11, 0, 7119, 7120, 3, 45, 22, 0, 7120, 7121, 3, 45, 22, 0, 7121, 7122, 3, 15, 7, 0, 7122, 7123, 3, 13, 6, 0, 7123, 1276, 1, 0, 0, 0, 7124, 7125, 3, 47, 23, 0, 7125, 7126, 3, 33, 16, 0, 7126, 7127, 3, 13, 6, 0, 7127, 7128, 3, 15, 7, 0, 7128, 7129, 3, 41, 20, 0, 7129, 1278, 1, 0, 0, 0, 7130, 7131, 3, 47, 23, 0, 7131, 7132, 3, 33, 16, 0, 7132, 7133, 3, 15, 7, 0, 7133, 7134, 3, 33, 16, 0, 7134, 7135, 3, 11, 5, 0, 7135, 7136, 3, 41, 20, 0, 7136, 7137, 3, 55, 27, 0, 7137, 7138, 3, 37, 18, 0, 7138, 7139, 3, 45, 22, 0, 7139, 7140, 3, 15, 7, 0, 7140, 7141, 3, 13, 6, 0, 7141, 1280, 1, 0, 0, 0, 7142, 7143, 3, 47, 23, 0, 7143, 7144, 3, 33, 16, 0, 7144, 7145, 3, 23, 11, 0, 7145, 7146, 3, 35, 17, 0, 7146, 7147, 3, 33, 16, 0, 7147, 1282, 1, 0, 0, 0, 7148, 7149, 3, 47, 23, 0, 7149, 7150, 3, 33, 16, 0, 7150, 7151, 3, 23, 11, 0, 7151, 7152, 3, 39, 19, 0, 7152, 7153, 3, 47, 23, 0, 7153, 7154, 3, 15, 7, 0, 7154, 1284, 1, 0, 0, 0, 7155, 7156, 3, 47, 23, 0, 7156, 7157, 3, 33, 16, 0, 7157, 7158, 3, 27, 13, 0, 7158, 7159, 3, 33, 16, 0, 7159, 7160, 3, 35, 17, 0, 7160, 7161, 3, 51, 25, 0, 7161, 7162, 3, 33, 16, 0, 7162, 1286, 1, 0, 0, 0, 7163, 7164, 3, 47, 23, 0, 7164, 7165, 3, 33, 16, 0, 7165, 7166, 3, 29, 14, 0, 7166, 7167, 3, 23, 11, 0, 7167, 7168, 3, 43, 21, 0, 7168, 7169, 3, 45, 22, 0, 7169, 7170, 3, 15, 7, 0, 7170, 7171, 3, 33, 16, 0, 7171, 1288, 1, 0, 0, 0, 7172, 7173, 3, 47, 23, 0, 7173, 7174, 3, 33, 16, 0, 7174, 7175, 3, 33, 16, 0, 7175, 7176, 3, 7, 3, 0, 7176, 7177, 3, 31, 15, 0, 7177, 7178, 3, 15, 7, 0, 7178, 7179, 3, 13, 6, 0, 7179, 1290, 1, 0, 0, 0, 7180, 7181, 3, 47, 23, 0, 7181, 7182, 3, 33, 16, 0, 7182, 7183, 3, 33, 16, 0, 7183, 7184, 3, 15, 7, 0, 7184, 7185, 3, 43, 21, 0, 7185, 7186, 3, 45, 22, 0, 7186, 1292, 1, 0, 0, 0, 7187, 7188, 3, 47, 23, 0, 7188, 7189, 3, 33, 16, 0, 7189, 7190, 3, 45, 22, 0, 7190, 7191, 3, 23, 11, 0, 7191, 7192, 3, 29, 14, 0, 7192, 1294, 1, 0, 0, 0, 7193, 7194, 3, 47, 23, 0, 7194, 7195, 3, 37, 18, 0, 7195, 7196, 3, 13, 6, 0, 7196, 7197, 3, 7, 3, 0, 7197, 7198, 3, 45, 22, 0, 7198, 7199, 3, 15, 7, 0, 7199, 1296, 1, 0, 0, 0, 7200, 7201, 3, 47, 23, 0, 7201, 7202, 3, 37, 18, 0, 7202, 7203, 3, 37, 18, 0, 7203, 7204, 3, 15, 7, 0, 7204, 7205, 3, 41, 20, 0, 7205, 1298, 1, 0, 0, 0, 7206, 7207, 3, 47, 23, 0, 7207, 7208, 3, 43, 21, 0, 7208, 7209, 3, 7, 3, 0, 7209, 7210, 3, 19, 9, 0, 7210, 7211, 3, 15, 7, 0, 7211, 1300, 1, 0, 0, 0, 7212, 7213, 3, 47, 23, 0, 7213, 7214, 3, 43, 21, 0, 7214, 7215, 3, 15, 7, 0, 7215, 7216, 3, 41, 20, 0, 7216, 1302, 1, 0, 0, 0, 7217, 7218, 3, 47, 23, 0, 7218, 7219, 3, 43, 21, 0, 7219, 7220, 3, 15, 7, 0, 7220, 7221, 3, 41, 20, 0, 7221, 7222, 5, 95, 0, 0, 7222, 7223, 3, 13, 6, 0, 7223, 7224, 3, 15, 7, 0, 7224, 7225, 3, 17, 8, 0, 7225, 7226, 3, 23, 11, 0, 7226, 7227, 3, 33, 16, 0, 7227, 7228, 3, 15, 7, 0, 7228, 7229, 3, 13, 6, 0, 7229, 7230, 5, 95, 0, 0, 7230, 7231, 3, 45, 22, 0, 7231, 7232, 3, 55, 27, 0, 7232, 7233, 3, 37, 18, 0, 7233, 7234, 3, 15, 7, 0, 7234, 7235, 5, 95, 0, 0, 7235, 7236, 3, 11, 5, 0, 7236, 7237, 3, 7, 3, 0, 7237, 7238, 3, 45, 22, 0, 7238, 7239, 3, 7, 3, 0, 7239, 7240, 3, 29, 14, 0, 7240, 7241, 3, 35, 17, 0, 7241, 7242, 3, 19, 9, 0, 7242, 1304, 1, 0, 0, 0, 7243, 7244, 3, 47, 23, 0, 7244, 7245, 3, 43, 21, 0, 7245, 7246, 3, 15, 7, 0, 7246, 7247, 3, 41, 20, 0, 7247, 7248, 5, 95, 0, 0, 7248, 7249, 3, 13, 6, 0, 7249, 7250, 3, 15, 7, 0, 7250, 7251, 3, 17, 8, 0, 7251, 7252, 3, 23, 11, 0, 7252, 7253, 3, 33, 16, 0, 7253, 7254, 3, 15, 7, 0, 7254, 7255, 3, 13, 6, 0, 7255, 7256, 5, 95, 0, 0, 7256, 7257, 3, 45, 22, 0, 7257, 7258, 3, 55, 27, 0, 7258, 7259, 3, 37, 18, 0, 7259, 7260, 3, 15, 7, 0, 7260, 7261, 5, 95, 0, 0, 7261, 7262, 3, 11, 5, 0, 7262, 7263, 3, 35, 17, 0, 7263, 7264, 3, 13, 6, 0, 7264, 7265, 3, 15, 7, 0, 7265, 1306, 1, 0, 0, 0, 7266, 7267, 3, 47, 23, 0, 7267, 7268, 3, 43, 21, 0, 7268, 7269, 3, 15, 7, 0, 7269, 7270, 3, 41, 20, 0, 7270, 7271, 5, 95, 0, 0, 7271, 7272, 3, 13, 6, 0, 7272, 7273, 3, 15, 7, 0, 7273, 7274, 3, 17, 8, 0, 7274, 7275, 3, 23, 11, 0, 7275, 7276, 3, 33, 16, 0, 7276, 7277, 3, 15, 7, 0, 7277, 7278, 3, 13, 6, 0, 7278, 7279, 5, 95, 0, 0, 7279, 7280, 3, 45, 22, 0, 7280, 7281, 3, 55, 27, 0, 7281, 7282, 3, 37, 18, 0, 7282, 7283, 3, 15, 7, 0, 7283, 7284, 5, 95, 0, 0, 7284, 7285, 3, 33, 16, 0, 7285, 7286, 3, 7, 3, 0, 7286, 7287, 3, 31, 15, 0, 7287, 7288, 3, 15, 7, 0, 7288, 1308, 1, 0, 0, 0, 7289, 7290, 3, 47, 23, 0, 7290, 7291, 3, 43, 21, 0, 7291, 7292, 3, 15, 7, 0, 7292, 7293, 3, 41, 20, 0, 7293, 7294, 5, 95, 0, 0, 7294, 7295, 3, 13, 6, 0, 7295, 7296, 3, 15, 7, 0, 7296, 7297, 3, 17, 8, 0, 7297, 7298, 3, 23, 11, 0, 7298, 7299, 3, 33, 16, 0, 7299, 7300, 3, 15, 7, 0, 7300, 7301, 3, 13, 6, 0, 7301, 7302, 5, 95, 0, 0, 7302, 7303, 3, 45, 22, 0, 7303, 7304, 3, 55, 27, 0, 7304, 7305, 3, 37, 18, 0, 7305, 7306, 3, 15, 7, 0, 7306, 7307, 5, 95, 0, 0, 7307, 7308, 3, 43, 21, 0, 7308, 7309, 3, 11, 5, 0, 7309, 7310, 3, 21, 10, 0, 7310, 7311, 3, 15, 7, 0, 7311, 7312, 3, 31, 15, 0, 7312, 7313, 3, 7, 3, 0, 7313, 1310, 1, 0, 0, 0, 7314, 7315, 3, 47, 23, 0, 7315, 7316, 3, 43, 21, 0, 7316, 7317, 3, 23, 11, 0, 7317, 7318, 3, 33, 16, 0, 7318, 7319, 3, 19, 9, 0, 7319, 1312, 1, 0, 0, 0, 7320, 7321, 3, 49, 24, 0, 7321, 7322, 3, 7, 3, 0, 7322, 7323, 3, 11, 5, 0, 7323, 7324, 3, 47, 23, 0, 7324, 7325, 3, 47, 23, 0, 7325, 7326, 3, 31, 15, 0, 7326, 1314, 1, 0, 0, 0, 7327, 7328, 3, 49, 24, 0, 7328, 7329, 3, 7, 3, 0, 7329, 7330, 3, 29, 14, 0, 7330, 7331, 3, 23, 11, 0, 7331, 7332, 3, 13, 6, 0, 7332, 1316, 1, 0, 0, 0, 7333, 7334, 3, 49, 24, 0, 7334, 7335, 3, 7, 3, 0, 7335, 7336, 3, 29, 14, 0, 7336, 7337, 3, 23, 11, 0, 7337, 7338, 3, 13, 6, 0, 7338, 7339, 3, 7, 3, 0, 7339, 7340, 3, 45, 22, 0, 7340, 7341, 3, 15, 7, 0, 7341, 1318, 1, 0, 0, 0, 7342, 7343, 3, 49, 24, 0, 7343, 7344, 3, 7, 3, 0, 7344, 7345, 3, 29, 14, 0, 7345, 7346, 3, 23, 11, 0, 7346, 7347, 3, 13, 6, 0, 7347, 7348, 3, 7, 3, 0, 7348, 7349, 3, 45, 22, 0, 7349, 7350, 3, 35, 17, 0, 7350, 7351, 3, 41, 20, 0, 7351, 1320, 1, 0, 0, 0, 7352, 7353, 3, 49, 24, 0, 7353, 7354, 3, 7, 3, 0, 7354, 7355, 3, 29, 14, 0, 7355, 7356, 3, 47, 23, 0, 7356, 7357, 3, 15, 7, 0, 7357, 1322, 1, 0, 0, 0, 7358, 7359, 3, 49, 24, 0, 7359, 7360, 3, 7, 3, 0, 7360, 7361, 3, 29, 14, 0, 7361, 7362, 3, 47, 23, 0, 7362, 7363, 3, 15, 7, 0, 7363, 7364, 3, 43, 21, 0, 7364, 1324, 1, 0, 0, 0, 7365, 7366, 3, 49, 24, 0, 7366, 7367, 3, 7, 3, 0, 7367, 7368, 3, 41, 20, 0, 7368, 7369, 5, 95, 0, 0, 7369, 7370, 3, 37, 18, 0, 7370, 7371, 3, 35, 17, 0, 7371, 7372, 3, 37, 18, 0, 7372, 1326, 1, 0, 0, 0, 7373, 7374, 3, 49, 24, 0, 7374, 7375, 3, 7, 3, 0, 7375, 7376, 3, 41, 20, 0, 7376, 7377, 5, 95, 0, 0, 7377, 7378, 3, 43, 21, 0, 7378, 7379, 3, 7, 3, 0, 7379, 7380, 3, 31, 15, 0, 7380, 7381, 3, 37, 18, 0, 7381, 1328, 1, 0, 0, 0, 7382, 7383, 3, 49, 24, 0, 7383, 7384, 3, 7, 3, 0, 7384, 7385, 3, 41, 20, 0, 7385, 7386, 3, 11, 5, 0, 7386, 7387, 3, 21, 10, 0, 7387, 7388, 3, 7, 3, 0, 7388, 7389, 3, 41, 20, 0, 7389, 1330, 1, 0, 0, 0, 7390, 7391, 3, 49, 24, 0, 7391, 7392, 3, 7, 3, 0, 7392, 7393, 3, 41, 20, 0, 7393, 7394, 3, 23, 11, 0, 7394, 7395, 3, 7, 3, 0, 7395, 7396, 3, 9, 4, 0, 7396, 7397, 3, 29, 14, 0, 7397, 7398, 3, 15, 7, 0, 7398, 1332, 1, 0, 0, 0, 7399, 7400, 3, 49, 24, 0, 7400, 7401, 3, 7, 3, 0, 7401, 7402, 3, 41, 20, 0, 7402, 7403, 3, 23, 11, 0, 7403, 7404, 3, 7, 3, 0, 7404, 7405, 3, 13, 6, 0, 7405, 7406, 3, 23, 11, 0, 7406, 7407, 3, 11, 5, 0, 7407, 1334, 1, 0, 0, 0, 7408, 7409, 3, 49, 24, 0, 7409, 7410, 3, 7, 3, 0, 7410, 7411, 3, 41, 20, 0, 7411, 7412, 3, 55, 27, 0, 7412, 7413, 3, 23, 11, 0, 7413, 7414, 3, 33, 16, 0, 7414, 7415, 3, 19, 9, 0, 7415, 1336, 1, 0, 0, 0, 7416, 7417, 3, 49, 24, 0, 7417, 7418, 3, 15, 7, 0, 7418, 7419, 3, 41, 20, 0, 7419, 7420, 3, 9, 4, 0, 7420, 7421, 3, 35, 17, 0, 7421, 7422, 3, 43, 21, 0, 7422, 7423, 3, 15, 7, 0, 7423, 1338, 1, 0, 0, 0, 7424, 7425, 3, 49, 24, 0, 7425, 7426, 3, 23, 11, 0, 7426, 7427, 3, 15, 7, 0, 7427, 7428, 3, 51, 25, 0, 7428, 1340, 1, 0, 0, 0, 7429, 7430, 3, 49, 24, 0, 7430, 7431, 3, 35, 17, 0, 7431, 7432, 3, 29, 14, 0, 7432, 7433, 3, 7, 3, 0, 7433, 7434, 3, 45, 22, 0, 7434, 7435, 3, 23, 11, 0, 7435, 7436, 3, 29, 14, 0, 7436, 7437, 3, 15, 7, 0, 7437, 1342, 1, 0, 0, 0, 7438, 7439, 3, 51, 25, 0, 7439, 7440, 3, 21, 10, 0, 7440, 7441, 3, 15, 7, 0, 7441, 7442, 3, 33, 16, 0, 7442, 1344, 1, 0, 0, 0, 7443, 7444, 3, 51, 25, 0, 7444, 7445, 3, 21, 10, 0, 7445, 7446, 3, 15, 7, 0, 7446, 7447, 3, 33, 16, 0, 7447, 7448, 3, 15, 7, 0, 7448, 7449, 3, 49, 24, 0, 7449, 7450, 3, 15, 7, 0, 7450, 7451, 3, 41, 20, 0, 7451, 1346, 1, 0, 0, 0, 7452, 7453, 3, 51, 25, 0, 7453, 7454, 3, 21, 10, 0, 7454, 7455, 3, 15, 7, 0, 7455, 7456, 3, 41, 20, 0, 7456, 7457, 3, 15, 7, 0, 7457, 1348, 1, 0, 0, 0, 7458, 7459, 3, 51, 25, 0, 7459, 7460, 3, 23, 11, 0, 7460, 7461, 3, 13, 6, 0, 7461, 7462, 3, 45, 22, 0, 7462, 7463, 3, 21, 10, 0, 7463, 7464, 5, 95, 0, 0, 7464, 7465, 3, 9, 4, 0, 7465, 7466, 3, 47, 23, 0, 7466, 7467, 3, 11, 5, 0, 7467, 7468, 3, 27, 13, 0, 7468, 7469, 3, 15, 7, 0, 7469, 7470, 3, 45, 22, 0, 7470, 1350, 1, 0, 0, 0, 7471, 7472, 3, 51, 25, 0, 7472, 7473, 3, 23, 11, 0, 7473, 7474, 3, 33, 16, 0, 7474, 7475, 3, 13, 6, 0, 7475, 7476, 3, 35, 17, 0, 7476, 7477, 3, 51, 25, 0, 7477, 1352, 1, 0, 0, 0, 7478, 7479, 3, 51, 25, 0, 7479, 7480, 3, 23, 11, 0, 7480, 7481, 3, 45, 22, 0, 7481, 7482, 3, 21, 10, 0, 7482, 1354, 1, 0, 0, 0, 7483, 7484, 3, 51, 25, 0, 7484, 7485, 3, 23, 11, 0, 7485, 7486, 3, 45, 22, 0, 7486, 7487, 3, 21, 10, 0, 7487, 7488, 3, 23, 11, 0, 7488, 7489, 3, 33, 16, 0, 7489, 1356, 1, 0, 0, 0, 7490, 7491, 3, 51, 25, 0, 7491, 7492, 3, 23, 11, 0, 7492, 7493, 3, 45, 22, 0, 7493, 7494, 3, 21, 10, 0, 7494, 7495, 3, 35, 17, 0, 7495, 7496, 3, 47, 23, 0, 7496, 7497, 3, 45, 22, 0, 7497, 1358, 1, 0, 0, 0, 7498, 7499, 3, 51, 25, 0, 7499, 7500, 3, 35, 17, 0, 7500, 7501, 3, 41, 20, 0, 7501, 7502, 3, 27, 13, 0, 7502, 1360, 1, 0, 0, 0, 7503, 7504, 3, 51, 25, 0, 7504, 7505, 3, 41, 20, 0, 7505, 7506, 3, 23, 11, 0, 7506, 7507, 3, 45, 22, 0, 7507, 7508, 3, 15, 7, 0, 7508, 1362, 1, 0, 0, 0, 7509, 7510, 3, 55, 27, 0, 7510, 7511, 3, 7, 3, 0, 7511, 7512, 3, 31, 15, 0, 7512, 7513, 3, 29, 14, 0, 7513, 1364, 1, 0, 0, 0, 7514, 7515, 3, 55, 27, 0, 7515, 7516, 3, 15, 7, 0, 7516, 7517, 3, 7, 3, 0, 7517, 7518, 3, 41, 20, 0, 7518, 1366, 1, 0, 0, 0, 7519, 7520, 3, 55, 27, 0, 7520, 7521, 3, 15, 7, 0, 7521, 7522, 3, 43, 21, 0, 7522, 1368, 1, 0, 0, 0, 7523, 7524, 3, 57, 28, 0, 7524, 7525, 3, 35, 17, 0, 7525, 7526, 3, 33, 16, 0, 7526, 7527, 3, 15, 7, 0, 7527, 1370, 1, 0, 0, 0, 7528, 7529, 3, 43, 21, 0, 7529, 7530, 3, 47, 23, 0, 7530, 7531, 3, 37, 18, 0, 7531, 7532, 3, 15, 7, 0, 7532, 7533, 3, 41, 20, 0, 7533, 7534, 3, 47, 23, 0, 7534, 7535, 3, 43, 21, 0, 7535, 7536, 3, 15, 7, 0, 7536, 7537, 3, 41, 20, 0, 7537, 1372, 1, 0, 0, 0, 7538, 7539, 3, 33, 16, 0, 7539, 7540, 3, 35, 17, 0, 7540, 7541, 3, 43, 21, 0, 7541, 7542, 3, 47, 23, 0, 7542, 7543, 3, 37, 18, 0, 7543, 7544, 3, 15, 7, 0, 7544, 7545, 3, 41, 20, 0, 7545, 7546, 3, 47, 23, 0, 7546, 7547, 3, 43, 21, 0, 7547, 7548, 3, 15, 7, 0, 7548, 7549, 3, 41, 20, 0, 7549, 1374, 1, 0, 0, 0, 7550, 7551, 3, 11, 5, 0, 7551, 7552, 3, 41, 20, 0, 7552, 7553, 3, 15, 7, 0, 7553, 7554, 3, 7, 3, 0, 7554, 7555, 3, 45, 22, 0, 7555, 7556, 3, 15, 7, 0, 7556, 7557, 3, 41, 20, 0, 7557, 7558, 3, 35, 17, 0, 7558, 7559, 3, 29, 14, 0, 7559, 7560, 3, 15, 7, 0, 7560, 1376, 1, 0, 0, 0, 7561, 7562, 3, 33, 16, 0, 7562, 7563, 3, 35, 17, 0, 7563, 7564, 3, 11, 5, 0, 7564, 7565, 3, 41, 20, 0, 7565, 7566, 3, 15, 7, 0, 7566, 7567, 3, 7, 3, 0, 7567, 7568, 3, 45, 22, 0, 7568, 7569, 3, 15, 7, 0, 7569, 7570, 3, 41, 20, 0, 7570, 7571, 3, 35, 17, 0, 7571, 7572, 3, 29, 14, 0, 7572, 7573, 3, 15, 7, 0, 7573, 1378, 1, 0, 0, 0, 7574, 7575, 3, 23, 11, 0, 7575, 7576, 3, 33, 16, 0, 7576, 7577, 3, 21, 10, 0, 7577, 7578, 3, 15, 7, 0, 7578, 7579, 3, 41, 20, 0, 7579, 7580, 3, 23, 11, 0, 7580, 7581, 3, 45, 22, 0, 7581, 1380, 1, 0, 0, 0, 7582, 7583, 3, 33, 16, 0, 7583, 7584, 3, 35, 17, 0, 7584, 7585, 3, 23, 11, 0, 7585, 7586, 3, 33, 16, 0, 7586, 7587, 3, 21, 10, 0, 7587, 7588, 3, 15, 7, 0, 7588, 7589, 3, 41, 20, 0, 7589, 7590, 3, 23, 11, 0, 7590, 7591, 3, 45, 22, 0, 7591, 1382, 1, 0, 0, 0, 7592, 7593, 3, 29, 14, 0, 7593, 7594, 3, 35, 17, 0, 7594, 7595, 3, 19, 9, 0, 7595, 7596, 3, 23, 11, 0, 7596, 7597, 3, 33, 16, 0, 7597, 1384, 1, 0, 0, 0, 7598, 7599, 3, 33, 16, 0, 7599, 7600, 3, 35, 17, 0, 7600, 7601, 3, 29, 14, 0, 7601, 7602, 3, 35, 17, 0, 7602, 7603, 3, 19, 9, 0, 7603, 7604, 3, 23, 11, 0, 7604, 7605, 3, 33, 16, 0, 7605, 1386, 1, 0, 0, 0, 7606, 7607, 3, 41, 20, 0, 7607, 7608, 3, 15, 7, 0, 7608, 7609, 3, 37, 18, 0, 7609, 7610, 3, 29, 14, 0, 7610, 7611, 3, 23, 11, 0, 7611, 7612, 3, 11, 5, 0, 7612, 7613, 3, 7, 3, 0, 7613, 7614, 3, 45, 22, 0, 7614, 7615, 3, 23, 11, 0, 7615, 7616, 3, 35, 17, 0, 7616, 7617, 3, 33, 16, 0, 7617, 1388, 1, 0, 0, 0, 7618, 7619, 3, 33, 16, 0, 7619, 7620, 3, 35, 17, 0, 7620, 7621, 3, 41, 20, 0, 7621, 7622, 3, 15, 7, 0, 7622, 7623, 3, 37, 18, 0, 7623, 7624, 3, 29, 14, 0, 7624, 7625, 3, 23, 11, 0, 7625, 7626, 3, 11, 5, 0, 7626, 7627, 3, 7, 3, 0, 7627, 7628, 3, 45, 22, 0, 7628, 7629, 3, 23, 11, 0, 7629, 7630, 3, 35, 17, 0, 7630, 7631, 3, 33, 16, 0, 7631, 1390, 1, 0, 0, 0, 7632, 7633, 3, 9, 4, 0, 7633, 7634, 3, 55, 27, 0, 7634, 7635, 3, 37, 18, 0, 7635, 7636, 3, 7, 3, 0, 7636, 7637, 3, 43, 21, 0, 7637, 7638, 3, 43, 21, 0, 7638, 7639, 3, 41, 20, 0, 7639, 7640, 3, 29, 14, 0, 7640, 7641, 3, 43, 21, 0, 7641, 1392, 1, 0, 0, 0, 7642, 7643, 3, 33, 16, 0, 7643, 7644, 3, 35, 17, 0, 7644, 7645, 3, 9, 4, 0, 7645, 7646, 3, 55, 27, 0, 7646, 7647, 3, 37, 18, 0, 7647, 7648, 3, 7, 3, 0, 7648, 7649, 3, 43, 21, 0, 7649, 7650, 3, 43, 21, 0, 7650, 7651, 3, 41, 20, 0, 7651, 7652, 3, 29, 14, 0, 7652, 7653, 3, 43, 21, 0, 7653, 1394, 1, 0, 0, 0, 7654, 7655, 3, 43, 21, 0, 7655, 7656, 3, 17, 8, 0, 7656, 7657, 3, 47, 23, 0, 7657, 7658, 3, 33, 16, 0, 7658, 7659, 3, 11, 5, 0, 7659, 1396, 1, 0, 0, 0, 7660, 7661, 3, 43, 21, 0, 7661, 7662, 3, 45, 22, 0, 7662, 7663, 3, 55, 27, 0, 7663, 7664, 3, 37, 18, 0, 7664, 7665, 3, 15, 7, 0, 7665, 1398, 1, 0, 0, 0, 7666, 7667, 3, 43, 21, 0, 7667, 7668, 3, 43, 21, 0, 7668, 7669, 3, 37, 18, 0, 7669, 7670, 3, 7, 3, 0, 7670, 7671, 3, 11, 5, 0, 7671, 7672, 3, 15, 7, 0, 7672, 1400, 1, 0, 0, 0, 7673, 7674, 3, 17, 8, 0, 7674, 7675, 3, 23, 11, 0, 7675, 7676, 3, 33, 16, 0, 7676, 7677, 3, 7, 3, 0, 7677, 7678, 3, 29, 14, 0, 7678, 7679, 3, 17, 8, 0, 7679, 7680, 3, 47, 23, 0, 7680, 7681, 3, 33, 16, 0, 7681, 7682, 3, 11, 5, 0, 7682, 1402, 1, 0, 0, 0, 7683, 7684, 3, 17, 8, 0, 7684, 7685, 3, 23, 11, 0, 7685, 7686, 3, 33, 16, 0, 7686, 7687, 3, 7, 3, 0, 7687, 7688, 3, 29, 14, 0, 7688, 7689, 3, 17, 8, 0, 7689, 7690, 3, 47, 23, 0, 7690, 7691, 3, 33, 16, 0, 7691, 7692, 3, 11, 5, 0, 7692, 7693, 5, 95, 0, 0, 7693, 7694, 3, 15, 7, 0, 7694, 7695, 3, 53, 26, 0, 7695, 7696, 3, 45, 22, 0, 7696, 7697, 3, 41, 20, 0, 7697, 7698, 3, 7, 3, 0, 7698, 1404, 1, 0, 0, 0, 7699, 7700, 3, 11, 5, 0, 7700, 7701, 3, 35, 17, 0, 7701, 7702, 3, 31, 15, 0, 7702, 7703, 3, 9, 4, 0, 7703, 7704, 3, 23, 11, 0, 7704, 7705, 3, 33, 16, 0, 7705, 7706, 3, 15, 7, 0, 7706, 7707, 3, 17, 8, 0, 7707, 7708, 3, 47, 23, 0, 7708, 7709, 3, 33, 16, 0, 7709, 7710, 3, 11, 5, 0, 7710, 1406, 1, 0, 0, 0, 7711, 7712, 3, 43, 21, 0, 7712, 7713, 3, 15, 7, 0, 7713, 7714, 3, 41, 20, 0, 7714, 7715, 3, 23, 11, 0, 7715, 7716, 3, 7, 3, 0, 7716, 7717, 3, 29, 14, 0, 7717, 7718, 3, 17, 8, 0, 7718, 7719, 3, 47, 23, 0, 7719, 7720, 3, 33, 16, 0, 7720, 7721, 3, 11, 5, 0, 7721, 1408, 1, 0, 0, 0, 7722, 7723, 3, 13, 6, 0, 7723, 7724, 3, 15, 7, 0, 7724, 7725, 3, 43, 21, 0, 7725, 7726, 3, 15, 7, 0, 7726, 7727, 3, 41, 20, 0, 7727, 7728, 3, 23, 11, 0, 7728, 7729, 3, 7, 3, 0, 7729, 7730, 3, 29, 14, 0, 7730, 7731, 3, 17, 8, 0, 7731, 7732, 3, 47, 23, 0, 7732, 7733, 3, 33, 16, 0, 7733, 7734, 3, 11, 5, 0, 7734, 1410, 1, 0, 0, 0, 7735, 7736, 3, 23, 11, 0, 7736, 7737, 3, 33, 16, 0, 7737, 7738, 3, 23, 11, 0, 7738, 7739, 3, 45, 22, 0, 7739, 7740, 3, 11, 5, 0, 7740, 7741, 3, 35, 17, 0, 7741, 7742, 3, 33, 16, 0, 7742, 7743, 3, 13, 6, 0, 7743, 1412, 1, 0, 0, 0, 7744, 7745, 3, 31, 15, 0, 7745, 7746, 3, 43, 21, 0, 7746, 7747, 3, 17, 8, 0, 7747, 7748, 3, 47, 23, 0, 7748, 7749, 3, 33, 16, 0, 7749, 7750, 3, 11, 5, 0, 7750, 1414, 1, 0, 0, 0, 7751, 7752, 3, 31, 15, 0, 7752, 7753, 3, 23, 11, 0, 7753, 7754, 3, 33, 16, 0, 7754, 7755, 3, 49, 24, 0, 7755, 7756, 3, 17, 8, 0, 7756, 7757, 3, 47, 23, 0, 7757, 7758, 3, 33, 16, 0, 7758, 7759, 3, 11, 5, 0, 7759, 1416, 1, 0, 0, 0, 7760, 7761, 3, 31, 15, 0, 7761, 7762, 3, 43, 21, 0, 7762, 7763, 3, 45, 22, 0, 7763, 7764, 3, 55, 27, 0, 7764, 7765, 3, 37, 18, 0, 7765, 7766, 3, 15, 7, 0, 7766, 1418, 1, 0, 0, 0, 7767, 7768, 3, 31, 15, 0, 7768, 7769, 3, 43, 21, 0, 7769, 7770, 3, 43, 21, 0, 7770, 7771, 3, 37, 18, 0, 7771, 7772, 3, 7, 3, 0, 7772, 7773, 3, 11, 5, 0, 7773, 7774, 3, 15, 7, 0, 7774, 1420, 1, 0, 0, 0, 7775, 7776, 3, 31, 15, 0, 7776, 7777, 3, 17, 8, 0, 7777, 7778, 3, 23, 11, 0, 7778, 7779, 3, 33, 16, 0, 7779, 7780, 3, 7, 3, 0, 7780, 7781, 3, 29, 14, 0, 7781, 7782, 3, 17, 8, 0, 7782, 7783, 3, 47, 23, 0, 7783, 7784, 3, 33, 16, 0, 7784, 7785, 3, 11, 5, 0, 7785, 1422, 1, 0, 0, 0, 7786, 7787, 3, 31, 15, 0, 7787, 7788, 3, 17, 8, 0, 7788, 7789, 3, 23, 11, 0, 7789, 7790, 3, 33, 16, 0, 7790, 7791, 3, 7, 3, 0, 7791, 7792, 3, 29, 14, 0, 7792, 7793, 3, 17, 8, 0, 7793, 7794, 3, 47, 23, 0, 7794, 7795, 3, 33, 16, 0, 7795, 7796, 3, 11, 5, 0, 7796, 7797, 5, 95, 0, 0, 7797, 7798, 3, 15, 7, 0, 7798, 7799, 3, 53, 26, 0, 7799, 7800, 3, 45, 22, 0, 7800, 7801, 3, 41, 20, 0, 7801, 7802, 3, 7, 3, 0, 7802, 1424, 1, 0, 0, 0, 7803, 7804, 3, 31, 15, 0, 7804, 7805, 3, 23, 11, 0, 7805, 7806, 3, 33, 16, 0, 7806, 7807, 3, 23, 11, 0, 7807, 7808, 3, 45, 22, 0, 7808, 7809, 3, 11, 5, 0, 7809, 7810, 3, 35, 17, 0, 7810, 7811, 3, 33, 16, 0, 7811, 7812, 3, 13, 6, 0, 7812, 1426, 1, 0, 0, 0, 7813, 7814, 3, 43, 21, 0, 7814, 7815, 3, 35, 17, 0, 7815, 7816, 3, 41, 20, 0, 7816, 7817, 3, 45, 22, 0, 7817, 7818, 3, 35, 17, 0, 7818, 7819, 3, 37, 18, 0, 7819, 1428, 1, 0, 0, 0, 7820, 7821, 3, 37, 18, 0, 7821, 7822, 3, 7, 3, 0, 7822, 7823, 3, 41, 20, 0, 7823, 7824, 3, 7, 3, 0, 7824, 7825, 3, 29, 14, 0, 7825, 7826, 3, 29, 14, 0, 7826, 7827, 3, 15, 7, 0, 7827, 7828, 3, 29, 14, 0, 7828, 1430, 1, 0, 0, 0, 7829, 7830, 3, 21, 10, 0, 7830, 7831, 3, 55, 27, 0, 7831, 7832, 3, 37, 18, 0, 7832, 7833, 3, 35, 17, 0, 7833, 7834, 3, 45, 22, 0, 7834, 7835, 3, 21, 10, 0, 7835, 7836, 3, 15, 7, 0, 7836, 7837, 3, 45, 22, 0, 7837, 7838, 3, 23, 11, 0, 7838, 7839, 3, 11, 5, 0, 7839, 7840, 3, 7, 3, 0, 7840, 7841, 3, 29, 14, 0, 7841, 1432, 1, 0, 0, 0, 7842, 7843, 3, 43, 21, 0, 7843, 7844, 3, 7, 3, 0, 7844, 7845, 3, 17, 8, 0, 7845, 7846, 3, 15, 7, 0, 7846, 1434, 1, 0, 0, 0, 7847, 7848, 3, 41, 20, 0, 7848, 7849, 3, 15, 7, 0, 7849, 7850, 3, 43, 21, 0, 7850, 7851, 3, 45, 22, 0, 7851, 7852, 3, 41, 20, 0, 7852, 7853, 3, 23, 11, 0, 7853, 7854, 3, 11, 5, 0, 7854, 7855, 3, 45, 22, 0, 7855, 7856, 3, 15, 7, 0, 7856, 7857, 3, 13, 6, 0, 7857, 1436, 1, 0, 0, 0, 7858, 7859, 3, 47, 23, 0, 7859, 7860, 3, 33, 16, 0, 7860, 7861, 3, 43, 21, 0, 7861, 7862, 3, 7, 3, 0, 7862, 7863, 3, 17, 8, 0, 7863, 7864, 3, 15, 7, 0, 7864, 1438, 1, 0, 0, 0, 7865, 7866, 3, 9, 4, 0, 7866, 7867, 3, 7, 3, 0, 7867, 7868, 3, 43, 21, 0, 7868, 7869, 3, 15, 7, 0, 7869, 7870, 3, 45, 22, 0, 7870, 7871, 3, 55, 27, 0, 7871, 7872, 3, 37, 18, 0, 7872, 7873, 3, 15, 7, 0, 7873, 1440, 1, 0, 0, 0, 7874, 7875, 3, 23, 11, 0, 7875, 7876, 3, 17, 8, 0, 7876, 1442, 1, 0, 0, 0, 7877, 7878, 3, 29, 14, 0, 7878, 7879, 3, 35, 17, 0, 7879, 7880, 3, 11, 5, 0, 7880, 7881, 3, 7, 3, 0, 7881, 7882, 3, 29, 14, 0, 7882, 7883, 3, 15, 7, 0, 7883, 1444, 1, 0, 0, 0, 7884, 7885, 3, 29, 14, 0, 7885, 7886, 3, 11, 5, 0, 7886, 7887, 5, 95, 0, 0, 7887, 7888, 3, 11, 5, 0, 7888, 7889, 3, 35, 17, 0, 7889, 7890, 3, 29, 14, 0, 7890, 7891, 3, 29, 14, 0, 7891, 7892, 3, 7, 3, 0, 7892, 7893, 3, 45, 22, 0, 7893, 7894, 3, 15, 7, 0, 7894, 1446, 1, 0, 0, 0, 7895, 7896, 3, 29, 14, 0, 7896, 7897, 3, 11, 5, 0, 7897, 7898, 5, 95, 0, 0, 7898, 7899, 3, 11, 5, 0, 7899, 7900, 3, 45, 22, 0, 7900, 7901, 3, 55, 27, 0, 7901, 7902, 3, 37, 18, 0, 7902, 7903, 3, 15, 7, 0, 7903, 1448, 1, 0, 0, 0, 7904, 7905, 3, 37, 18, 0, 7905, 7906, 3, 41, 20, 0, 7906, 7907, 3, 35, 17, 0, 7907, 7908, 3, 49, 24, 0, 7908, 7909, 3, 23, 11, 0, 7909, 7910, 3, 13, 6, 0, 7910, 7911, 3, 15, 7, 0, 7911, 7912, 3, 41, 20, 0, 7912, 1450, 1, 0, 0, 0, 7913, 7914, 3, 49, 24, 0, 7914, 7915, 3, 15, 7, 0, 7915, 7916, 3, 41, 20, 0, 7916, 7917, 3, 43, 21, 0, 7917, 7918, 3, 23, 11, 0, 7918, 7919, 3, 35, 17, 0, 7919, 7920, 3, 33, 16, 0, 7920, 1452, 1, 0, 0, 0, 7921, 7922, 3, 7, 3, 0, 7922, 7923, 3, 29, 14, 0, 7923, 7924, 3, 29, 14, 0, 7924, 7925, 3, 35, 17, 0, 7925, 7926, 3, 51, 25, 0, 7926, 7927, 5, 95, 0, 0, 7927, 7928, 3, 11, 5, 0, 7928, 7929, 3, 35, 17, 0, 7929, 7930, 3, 33, 16, 0, 7930, 7931, 3, 33, 16, 0, 7931, 7932, 3, 15, 7, 0, 7932, 7933, 3, 11, 5, 0, 7933, 7934, 3, 45, 22, 0, 7934, 7935, 3, 23, 11, 0, 7935, 7936, 3, 35, 17, 0, 7936, 7937, 3, 33, 16, 0, 7937, 7938, 3, 43, 21, 0, 7938, 1454, 1, 0, 0, 0, 7939, 7940, 3, 23, 11, 0, 7940, 7941, 3, 43, 21, 0, 7941, 7942, 5, 95, 0, 0, 7942, 7943, 3, 45, 22, 0, 7943, 7944, 3, 15, 7, 0, 7944, 7945, 3, 31, 15, 0, 7945, 7946, 3, 37, 18, 0, 7946, 7947, 3, 29, 14, 0, 7947, 7948, 3, 7, 3, 0, 7948, 7949, 3, 45, 22, 0, 7949, 7950, 3, 15, 7, 0, 7950, 1456, 1, 0, 0, 0, 7951, 7952, 3, 15, 7, 0, 7952, 7953, 3, 49, 24, 0, 7953, 7954, 3, 15, 7, 0, 7954, 7955, 3, 33, 16, 0, 7955, 7956, 3, 45, 22, 0, 7956, 1458, 1, 0, 0, 0, 7957, 7958, 3, 51, 25, 0, 7958, 7959, 3, 41, 20, 0, 7959, 7960, 3, 7, 3, 0, 7960, 7961, 3, 37, 18, 0, 7961, 7962, 3, 37, 18, 0, 7962, 7963, 3, 15, 7, 0, 7963, 7964, 3, 41, 20, 0, 7964, 1460, 1, 0, 0, 0, 7965, 7966, 3, 43, 21, 0, 7966, 7967, 3, 15, 7, 0, 7967, 7968, 3, 41, 20, 0, 7968, 7969, 3, 49, 24, 0, 7969, 7970, 3, 15, 7, 0, 7970, 7971, 3, 41, 20, 0, 7971, 1462, 1, 0, 0, 0, 7972, 7973, 3, 9, 4, 0, 7973, 7974, 3, 45, 22, 0, 7974, 7975, 3, 41, 20, 0, 7975, 7976, 3, 15, 7, 0, 7976, 7977, 3, 15, 7, 0, 7977, 1464, 1, 0, 0, 0, 7978, 7979, 3, 21, 10, 0, 7979, 7980, 3, 7, 3, 0, 7980, 7981, 3, 43, 21, 0, 7981, 7982, 3, 21, 10, 0, 7982, 1466, 1, 0, 0, 0, 7983, 7984, 3, 19, 9, 0, 7984, 7985, 3, 23, 11, 0, 7985, 7986, 3, 43, 21, 0, 7986, 7987, 3, 45, 22, 0, 7987, 1468, 1, 0, 0, 0, 7988, 7989, 3, 43, 21, 0, 7989, 7990, 3, 37, 18, 0, 7990, 7991, 3, 19, 9, 0, 7991, 7992, 3, 23, 11, 0, 7992, 7993, 3, 43, 21, 0, 7993, 7994, 3, 45, 22, 0, 7994, 1470, 1, 0, 0, 0, 7995, 7996, 3, 19, 9, 0, 7996, 7997, 3, 23, 11, 0, 7997, 7998, 3, 33, 16, 0, 7998, 1472, 1, 0, 0, 0, 7999, 8000, 3, 9, 4, 0, 8000, 8001, 3, 41, 20, 0, 8001, 8002, 3, 23, 11, 0, 8002, 8003, 3, 33, 16, 0, 8003, 1474, 1, 0, 0, 0, 8004, 8005, 3, 11, 5, 0, 8005, 8006, 3, 35, 17, 0, 8006, 8007, 3, 33, 16, 0, 8007, 8008, 3, 11, 5, 0, 8008, 8009, 3, 47, 23, 0, 8009, 8010, 3, 41, 20, 0, 8010, 8011, 3, 41, 20, 0, 8011, 8012, 3, 15, 7, 0, 8012, 8013, 3, 33, 16, 0, 8013, 8014, 3, 45, 22, 0, 8014, 8015, 3, 29, 14, 0, 8015, 8016, 3, 55, 27, 0, 8016, 1476, 1, 0, 0, 0, 8017, 8018, 3, 23, 11, 0, 8018, 8019, 3, 33, 16, 0, 8019, 8020, 3, 29, 14, 0, 8020, 8021, 3, 23, 11, 0, 8021, 8022, 3, 33, 16, 0, 8022, 8023, 3, 15, 7, 0, 8023, 1478, 1, 0, 0, 0, 8024, 8025, 3, 31, 15, 0, 8025, 8026, 3, 7, 3, 0, 8026, 8027, 3, 45, 22, 0, 8027, 8028, 3, 15, 7, 0, 8028, 8029, 3, 41, 20, 0, 8029, 8030, 3, 23, 11, 0, 8030, 8031, 3, 7, 3, 0, 8031, 8032, 3, 29, 14, 0, 8032, 8033, 3, 23, 11, 0, 8033, 8034, 3, 57, 28, 0, 8034, 8035, 3, 15, 7, 0, 8035, 8036, 3, 13, 6, 0, 8036, 1480, 1, 0, 0, 0, 8037, 8038, 3, 29, 14, 0, 8038, 8039, 3, 15, 7, 0, 8039, 8040, 3, 17, 8, 0, 8040, 8041, 3, 45, 22, 0, 8041, 8042, 3, 7, 3, 0, 8042, 8043, 3, 41, 20, 0, 8043, 8044, 3, 19, 9, 0, 8044, 1482, 1, 0, 0, 0, 8045, 8046, 3, 41, 20, 0, 8046, 8047, 3, 23, 11, 0, 8047, 8048, 3, 19, 9, 0, 8048, 8049, 3, 21, 10, 0, 8049, 8050, 3, 45, 22, 0, 8050, 8051, 3, 7, 3, 0, 8051, 8052, 3, 41, 20, 0, 8052, 8053, 3, 19, 9, 0, 8053, 1484, 1, 0, 0, 0, 8054, 8055, 3, 11, 5, 0, 8055, 8056, 3, 35, 17, 0, 8056, 8057, 3, 31, 15, 0, 8057, 8058, 3, 31, 15, 0, 8058, 8059, 3, 47, 23, 0, 8059, 8060, 3, 45, 22, 0, 8060, 8061, 3, 7, 3, 0, 8061, 8062, 3, 45, 22, 0, 8062, 8063, 3, 35, 17, 0, 8063, 8064, 3, 41, 20, 0, 8064, 1486, 1, 0, 0, 0, 8065, 8066, 3, 33, 16, 0, 8066, 8067, 3, 15, 7, 0, 8067, 8068, 3, 19, 9, 0, 8068, 8069, 3, 7, 3, 0, 8069, 8070, 3, 45, 22, 0, 8070, 8071, 3, 35, 17, 0, 8071, 8072, 3, 41, 20, 0, 8072, 1488, 1, 0, 0, 0, 8073, 8074, 3, 21, 10, 0, 8074, 8075, 3, 7, 3, 0, 8075, 8076, 3, 43, 21, 0, 8076, 8077, 3, 21, 10, 0, 8077, 8078, 3, 15, 7, 0, 8078, 8079, 3, 43, 21, 0, 8079, 1490, 1, 0, 0, 0, 8080, 8081, 3, 31, 15, 0, 8081, 8082, 3, 15, 7, 0, 8082, 8083, 3, 41, 20, 0, 8083, 8084, 3, 19, 9, 0, 8084, 8085, 3, 15, 7, 0, 8085, 8086, 3, 43, 21, 0, 8086, 1492, 1, 0, 0, 0, 8087, 8088, 3, 17, 8, 0, 8088, 8089, 3, 7, 3, 0, 8089, 8090, 3, 31, 15, 0, 8090, 8091, 3, 23, 11, 0, 8091, 8092, 3, 29, 14, 0, 8092, 8093, 3, 55, 27, 0, 8093, 1494, 1, 0, 0, 0, 8094, 8095, 3, 37, 18, 0, 8095, 8096, 3, 35, 17, 0, 8096, 8097, 3, 29, 14, 0, 8097, 8098, 3, 23, 11, 0, 8098, 8099, 3, 11, 5, 0, 8099, 8100, 3, 55, 27, 0, 8100, 1496, 1, 0, 0, 0, 8101, 8102, 3, 35, 17, 0, 8102, 8103, 3, 51, 25, 0, 8103, 8104, 3, 33, 16, 0, 8104, 8105, 3, 15, 7, 0, 8105, 8106, 3, 13, 6, 0, 8106, 1498, 1, 0, 0, 0, 8107, 8108, 3, 7, 3, 0, 8108, 8109, 3, 9, 4, 0, 8109, 8110, 3, 43, 21, 0, 8110, 8111, 3, 45, 22, 0, 8111, 8112, 3, 23, 11, 0, 8112, 8113, 3, 31, 15, 0, 8113, 8114, 3, 15, 7, 0, 8114, 1500, 1, 0, 0, 0, 8115, 8116, 3, 9, 4, 0, 8116, 8117, 3, 23, 11, 0, 8117, 8118, 3, 19, 9, 0, 8118, 8119, 3, 43, 21, 0, 8119, 8120, 3, 15, 7, 0, 8120, 8121, 3, 41, 20, 0, 8121, 8122, 3, 23, 11, 0, 8122, 8123, 3, 7, 3, 0, 8123, 8124, 3, 29, 14, 0, 8124, 1502, 1, 0, 0, 0, 8125, 8126, 3, 9, 4, 0, 8126, 8127, 3, 23, 11, 0, 8127, 8128, 3, 45, 22, 0, 8128, 8129, 5, 32, 0, 0, 8129, 8130, 3, 49, 24, 0, 8130, 8131, 3, 7, 3, 0, 8131, 8132, 3, 41, 20, 0, 8132, 8133, 3, 55, 27, 0, 8133, 8134, 3, 23, 11, 0, 8134, 8135, 3, 33, 16, 0, 8135, 8136, 3, 19, 9, 0, 8136, 1504, 1, 0, 0, 0, 8137, 8138, 3, 9, 4, 0, 8138, 8139, 3, 35, 17, 0, 8139, 8140, 3, 35, 17, 0, 8140, 8141, 3, 29, 14, 0, 8141, 1506, 1, 0, 0, 0, 8142, 8143, 3, 9, 4, 0, 8143, 8144, 3, 35, 17, 0, 8144, 8145, 3, 53, 26, 0, 8145, 1508, 1, 0, 0, 0, 8146, 8147, 3, 9, 4, 0, 8147, 8148, 3, 55, 27, 0, 8148, 8149, 3, 45, 22, 0, 8149, 8150, 3, 15, 7, 0, 8150, 8151, 3, 7, 3, 0, 8151, 1510, 1, 0, 0, 0, 8152, 8153, 3, 11, 5, 0, 8153, 8154, 3, 21, 10, 0, 8154, 8155, 3, 7, 3, 0, 8155, 8156, 3, 41, 20, 0, 8156, 8157, 3, 7, 3, 0, 8157, 8158, 3, 11, 5, 0, 8158, 8159, 3, 45, 22, 0, 8159, 8160, 3, 15, 7, 0, 8160, 8161, 3, 41, 20, 0, 8161, 8162, 5, 32, 0, 0, 8162, 8163, 3, 49, 24, 0, 8163, 8164, 3, 7, 3, 0, 8164, 8165, 3, 41, 20, 0, 8165, 8166, 3, 55, 27, 0, 8166, 8167, 3, 23, 11, 0, 8167, 8168, 3, 33, 16, 0, 8168, 8169, 3, 19, 9, 0, 8169, 1512, 1, 0, 0, 0, 8170, 8171, 3, 11, 5, 0, 8171, 8172, 3, 23, 11, 0, 8172, 8173, 3, 13, 6, 0, 8173, 8174, 3, 41, 20, 0, 8174, 1514, 1, 0, 0, 0, 8175, 8176, 3, 11, 5, 0, 8176, 8177, 3, 23, 11, 0, 8177, 8178, 3, 41, 20, 0, 8178, 8179, 3, 11, 5, 0, 8179, 8180, 3, 29, 14, 0, 8180, 8181, 3, 15, 7, 0, 8181, 1516, 1, 0, 0, 0, 8182, 8183, 3, 17, 8, 0, 8183, 8184, 3, 29, 14, 0, 8184, 8185, 3, 35, 17, 0, 8185, 8186, 3, 7, 3, 0, 8186, 8187, 3, 45, 22, 0, 8187, 8188, 5, 52, 0, 0, 8188, 1518, 1, 0, 0, 0, 8189, 8190, 3, 17, 8, 0, 8190, 8191, 3, 29, 14, 0, 8191, 8192, 3, 35, 17, 0, 8192, 8193, 3, 7, 3, 0, 8193, 8194, 3, 45, 22, 0, 8194, 8195, 5, 56, 0, 0, 8195, 1520, 1, 0, 0, 0, 8196, 8197, 3, 23, 11, 0, 8197, 8198, 3, 33, 16, 0, 8198, 8199, 3, 15, 7, 0, 8199, 8200, 3, 45, 22, 0, 8200, 1522, 1, 0, 0, 0, 8201, 8202, 3, 23, 11, 0, 8202, 8203, 3, 33, 16, 0, 8203, 8204, 3, 45, 22, 0, 8204, 8205, 5, 50, 0, 0, 8205, 1524, 1, 0, 0, 0, 8206, 8207, 3, 23, 11, 0, 8207, 8208, 3, 33, 16, 0, 8208, 8209, 3, 45, 22, 0, 8209, 8210, 5, 52, 0, 0, 8210, 1526, 1, 0, 0, 0, 8211, 8212, 3, 23, 11, 0, 8212, 8213, 3, 33, 16, 0, 8213, 8214, 3, 45, 22, 0, 8214, 8215, 5, 56, 0, 0, 8215, 1528, 1, 0, 0, 0, 8216, 8217, 3, 25, 12, 0, 8217, 8218, 3, 43, 21, 0, 8218, 8219, 3, 35, 17, 0, 8219, 8220, 3, 33, 16, 0, 8220, 1530, 1, 0, 0, 0, 8221, 8222, 3, 25, 12, 0, 8222, 8223, 3, 43, 21, 0, 8223, 8224, 3, 35, 17, 0, 8224, 8225, 3, 33, 16, 0, 8225, 8226, 3, 9, 4, 0, 8226, 1532, 1, 0, 0, 0, 8227, 8228, 3, 29, 14, 0, 8228, 8229, 3, 23, 11, 0, 8229, 8230, 3, 33, 16, 0, 8230, 8231, 3, 15, 7, 0, 8231, 1534, 1, 0, 0, 0, 8232, 8233, 3, 29, 14, 0, 8233, 8234, 3, 43, 21, 0, 8234, 8235, 3, 15, 7, 0, 8235, 8236, 3, 19, 9, 0, 8236, 1536, 1, 0, 0, 0, 8237, 8238, 3, 31, 15, 0, 8238, 8239, 3, 7, 3, 0, 8239, 8240, 3, 11, 5, 0, 8240, 8241, 3, 7, 3, 0, 8241, 8242, 3, 13, 6, 0, 8242, 8243, 3, 13, 6, 0, 8243, 8244, 3, 41, 20, 0, 8244, 1538, 1, 0, 0, 0, 8245, 8246, 3, 31, 15, 0, 8246, 8247, 3, 7, 3, 0, 8247, 8248, 3, 11, 5, 0, 8248, 8249, 3, 7, 3, 0, 8249, 8250, 3, 13, 6, 0, 8250, 8251, 3, 13, 6, 0, 8251, 8252, 3, 41, 20, 0, 8252, 8253, 5, 56, 0, 0, 8253, 1540, 1, 0, 0, 0, 8254, 8255, 3, 31, 15, 0, 8255, 8256, 3, 35, 17, 0, 8256, 8257, 3, 33, 16, 0, 8257, 8258, 3, 15, 7, 0, 8258, 8259, 3, 55, 27, 0, 8259, 1542, 1, 0, 0, 0, 8260, 8261, 3, 37, 18, 0, 8261, 8262, 3, 19, 9, 0, 8262, 8263, 5, 95, 0, 0, 8263, 8264, 3, 29, 14, 0, 8264, 8265, 3, 43, 21, 0, 8265, 8266, 3, 33, 16, 0, 8266, 1544, 1, 0, 0, 0, 8267, 8268, 3, 37, 18, 0, 8268, 8269, 3, 35, 17, 0, 8269, 8270, 3, 23, 11, 0, 8270, 8271, 3, 33, 16, 0, 8271, 8272, 3, 45, 22, 0, 8272, 1546, 1, 0, 0, 0, 8273, 8274, 3, 37, 18, 0, 8274, 8275, 3, 35, 17, 0, 8275, 8276, 3, 29, 14, 0, 8276, 8277, 3, 55, 27, 0, 8277, 8278, 3, 19, 9, 0, 8278, 8279, 3, 35, 17, 0, 8279, 8280, 3, 33, 16, 0, 8280, 1548, 1, 0, 0, 0, 8281, 8282, 3, 41, 20, 0, 8282, 8283, 3, 15, 7, 0, 8283, 8284, 3, 29, 14, 0, 8284, 8285, 3, 45, 22, 0, 8285, 8286, 3, 23, 11, 0, 8286, 8287, 3, 31, 15, 0, 8287, 8288, 3, 15, 7, 0, 8288, 1550, 1, 0, 0, 0, 8289, 8290, 3, 43, 21, 0, 8290, 8291, 3, 15, 7, 0, 8291, 8292, 3, 41, 20, 0, 8292, 8293, 3, 23, 11, 0, 8293, 8294, 3, 7, 3, 0, 8294, 8295, 3, 29, 14, 0, 8295, 1552, 1, 0, 0, 0, 8296, 8297, 3, 43, 21, 0, 8297, 8298, 3, 15, 7, 0, 8298, 8299, 3, 41, 20, 0, 8299, 8300, 3, 23, 11, 0, 8300, 8301, 3, 7, 3, 0, 8301, 8302, 3, 29, 14, 0, 8302, 8303, 5, 50, 0, 0, 8303, 1554, 1, 0, 0, 0, 8304, 8305, 3, 43, 21, 0, 8305, 8306, 3, 15, 7, 0, 8306, 8307, 3, 41, 20, 0, 8307, 8308, 3, 23, 11, 0, 8308, 8309, 3, 7, 3, 0, 8309, 8310, 3, 29, 14, 0, 8310, 8311, 5, 52, 0, 0, 8311, 1556, 1, 0, 0, 0, 8312, 8313, 3, 43, 21, 0, 8313, 8314, 3, 15, 7, 0, 8314, 8315, 3, 41, 20, 0, 8315, 8316, 3, 23, 11, 0, 8316, 8317, 3, 7, 3, 0, 8317, 8318, 3, 29, 14, 0, 8318, 8319, 5, 56, 0, 0, 8319, 1558, 1, 0, 0, 0, 8320, 8321, 3, 43, 21, 0, 8321, 8322, 3, 31, 15, 0, 8322, 8323, 3, 7, 3, 0, 8323, 8324, 3, 29, 14, 0, 8324, 8325, 3, 29, 14, 0, 8325, 8326, 3, 43, 21, 0, 8326, 8327, 3, 15, 7, 0, 8327, 8328, 3, 41, 20, 0, 8328, 8329, 3, 23, 11, 0, 8329, 8330, 3, 7, 3, 0, 8330, 8331, 3, 29, 14, 0, 8331, 1560, 1, 0, 0, 0, 8332, 8333, 3, 43, 21, 0, 8333, 8334, 3, 45, 22, 0, 8334, 8335, 3, 43, 21, 0, 8335, 8336, 3, 45, 22, 0, 8336, 8337, 3, 15, 7, 0, 8337, 8338, 3, 31, 15, 0, 8338, 1562, 1, 0, 0, 0, 8339, 8340, 3, 45, 22, 0, 8340, 8341, 3, 15, 7, 0, 8341, 8342, 3, 53, 26, 0, 8342, 8343, 3, 45, 22, 0, 8343, 1564, 1, 0, 0, 0, 8344, 8345, 3, 45, 22, 0, 8345, 8346, 3, 23, 11, 0, 8346, 8347, 3, 31, 15, 0, 8347, 8348, 3, 15, 7, 0, 8348, 8349, 3, 43, 21, 0, 8349, 8350, 3, 45, 22, 0, 8350, 8351, 3, 7, 3, 0, 8351, 8352, 3, 31, 15, 0, 8352, 8353, 3, 37, 18, 0, 8353, 8354, 3, 45, 22, 0, 8354, 8355, 3, 57, 28, 0, 8355, 1566, 1, 0, 0, 0, 8356, 8357, 3, 45, 22, 0, 8357, 8358, 3, 23, 11, 0, 8358, 8359, 3, 31, 15, 0, 8359, 8360, 3, 15, 7, 0, 8360, 8361, 3, 45, 22, 0, 8361, 8362, 3, 57, 28, 0, 8362, 1568, 1, 0, 0, 0, 8363, 8364, 3, 45, 22, 0, 8364, 8365, 3, 43, 21, 0, 8365, 8366, 3, 39, 19, 0, 8366, 8367, 3, 47, 23, 0, 8367, 8368, 3, 15, 7, 0, 8368, 8369, 3, 41, 20, 0, 8369, 8370, 3, 55, 27, 0, 8370, 1570, 1, 0, 0, 0, 8371, 8372, 3, 45, 22, 0, 8372, 8373, 3, 43, 21, 0, 8373, 8374, 3, 49, 24, 0, 8374, 8375, 3, 15, 7, 0, 8375, 8376, 3, 11, 5, 0, 8376, 8377, 3, 45, 22, 0, 8377, 8378, 3, 35, 17, 0, 8378, 8379, 3, 41, 20, 0, 8379, 1572, 1, 0, 0, 0, 8380, 8381, 3, 45, 22, 0, 8381, 8382, 3, 53, 26, 0, 8382, 8383, 3, 23, 11, 0, 8383, 8384, 3, 13, 6, 0, 8384, 8385, 5, 95, 0, 0, 8385, 8386, 3, 43, 21, 0, 8386, 8387, 3, 33, 16, 0, 8387, 8388, 3, 7, 3, 0, 8388, 8389, 3, 37, 18, 0, 8389, 8390, 3, 43, 21, 0, 8390, 8391, 3, 21, 10, 0, 8391, 8392, 3, 35, 17, 0, 8392, 8393, 3, 45, 22, 0, 8393, 1574, 1, 0, 0, 0, 8394, 8395, 3, 47, 23, 0, 8395, 8396, 3, 47, 23, 0, 8396, 8397, 3, 23, 11, 0, 8397, 8398, 3, 13, 6, 0, 8398, 1576, 1, 0, 0, 0, 8399, 8400, 3, 49, 24, 0, 8400, 8401, 3, 7, 3, 0, 8401, 8402, 3, 41, 20, 0, 8402, 8403, 3, 9, 4, 0, 8403, 8404, 3, 23, 11, 0, 8404, 8405, 3, 45, 22, 0, 8405, 1578, 1, 0, 0, 0, 8406, 8407, 3, 53, 26, 0, 8407, 8408, 3, 31, 15, 0, 8408, 8409, 3, 29, 14, 0, 8409, 1580, 1, 0, 0, 0, 8410, 8411, 5, 44, 0, 0, 8411, 1582, 1, 0, 0, 0, 8412, 8413, 5, 58, 0, 0, 8413, 1584, 1, 0, 0, 0, 8414, 8415, 5, 58, 0, 0, 8415, 8416, 5, 58, 0, 0, 8416, 1586, 1, 0, 0, 0, 8417, 8418, 5, 36, 0, 0, 8418, 1588, 1, 0, 0, 0, 8419, 8420, 5, 36, 0, 0, 8420, 8421, 5, 36, 0, 0, 8421, 1590, 1, 0, 0, 0, 8422, 8423, 5, 42, 0, 0, 8423, 1592, 1, 0, 0, 0, 8424, 8425, 5, 40, 0, 0, 8425, 1594, 1, 0, 0, 0, 8426, 8427, 5, 41, 0, 0, 8427, 1596, 1, 0, 0, 0, 8428, 8429, 5, 91, 0, 0, 8429, 1598, 1, 0, 0, 0, 8430, 8431, 5, 93, 0, 0, 8431, 1600, 1, 0, 0, 0, 8432, 8433, 3, 9, 4, 0, 8433, 8437, 5, 39, 0, 0, 8434, 8436, 2, 48, 49, 0, 8435, 8434, 1, 0, 0, 0, 8436, 8439, 1, 0, 0, 0, 8437, 8435, 1, 0, 0, 0, 8437, 8438, 1, 0, 0, 0, 8438, 8440, 1, 0, 0, 0, 8439, 8437, 1, 0, 0, 0, 8440, 8441, 5, 39, 0, 0, 8441, 1602, 1, 0, 0, 0, 8442, 8443, 3, 15, 7, 0, 8443, 8444, 3, 65, 32, 0, 8444, 1604, 1, 0, 0, 0, 8445, 8447, 5, 45, 0, 0, 8446, 8445, 1, 0, 0, 0, 8446, 8447, 1, 0, 0, 0, 8447, 8449, 1, 0, 0, 0, 8448, 8450, 3, 61, 30, 0, 8449, 8448, 1, 0, 0, 0, 8450, 8451, 1, 0, 0, 0, 8451, 8449, 1, 0, 0, 0, 8451, 8452, 1, 0, 0, 0, 8452, 8453, 1, 0, 0, 0, 8453, 8455, 5, 46, 0, 0, 8454, 8456, 3, 61, 30, 0, 8455, 8454, 1, 0, 0, 0, 8456, 8457, 1, 0, 0, 0, 8457, 8455, 1, 0, 0, 0, 8457, 8458, 1, 0, 0, 0, 8458, 8471, 1, 0, 0, 0, 8459, 8463, 3, 15, 7, 0, 8460, 8462, 5, 45, 0, 0, 8461, 8460, 1, 0, 0, 0, 8462, 8465, 1, 0, 0, 0, 8463, 8461, 1, 0, 0, 0, 8463, 8464, 1, 0, 0, 0, 8464, 8467, 1, 0, 0, 0, 8465, 8463, 1, 0, 0, 0, 8466, 8468, 3, 61, 30, 0, 8467, 8466, 1, 0, 0, 0, 8468, 8469, 1, 0, 0, 0, 8469, 8467, 1, 0, 0, 0, 8469, 8470, 1, 0, 0, 0, 8470, 8472, 1, 0, 0, 0, 8471, 8459, 1, 0, 0, 0, 8471, 8472, 1, 0, 0, 0, 8472, 1606, 1, 0, 0, 0, 8473, 8475, 5, 45, 0, 0, 8474, 8473, 1, 0, 0, 0, 8474, 8475, 1, 0, 0, 0, 8475, 8477, 1, 0, 0, 0, 8476, 8478, 3, 61, 30, 0, 8477, 8476, 1, 0, 0, 0, 8478, 8479, 1, 0, 0, 0, 8479, 8477, 1, 0, 0, 0, 8479, 8480, 1, 0, 0, 0, 8480, 8487, 1, 0, 0, 0, 8481, 8483, 3, 15, 7, 0, 8482, 8484, 3, 61, 30, 0, 8483, 8482, 1, 0, 0, 0, 8484, 8485, 1, 0, 0, 0, 8485, 8483, 1, 0, 0, 0, 8485, 8486, 1, 0, 0, 0, 8486, 8488, 1, 0, 0, 0, 8487, 8481, 1, 0, 0, 0, 8487, 8488, 1, 0, 0, 0, 8488, 1608, 1, 0, 0, 0, 8489, 8490, 5, 120, 0, 0, 8490, 8491, 3, 65, 32, 0, 8491, 1610, 1, 0, 0, 0, 8492, 8493, 5, 46, 0, 0, 8493, 1612, 1, 0, 0, 0, 8494, 8495, 3, 65, 32, 0, 8495, 1614, 1, 0, 0, 0, 8496, 8497, 3, 63, 31, 0, 8497, 1616, 1, 0, 0, 0, 8498, 8502, 7, 32, 0, 0, 8499, 8501, 7, 33, 0, 0, 8500, 8499, 1, 0, 0, 0, 8501, 8504, 1, 0, 0, 0, 8502, 8500, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 1618, 1, 0, 0, 0, 8504, 8502, 1, 0, 0, 0, 8505, 8507, 5, 36, 0, 0, 8506, 8508, 3, 61, 30, 0, 8507, 8506, 1, 0, 0, 0, 8508, 8509, 1, 0, 0, 0, 8509, 8507, 1, 0, 0, 0, 8509, 8510, 1, 0, 0, 0, 8510, 1620, 1, 0, 0, 0, 8511, 8515, 7, 34, 0, 0, 8512, 8514, 7, 35, 0, 0, 8513, 8512, 1, 0, 0, 0, 8514, 8517, 1, 0, 0, 0, 8515, 8513, 1, 0, 0, 0, 8515, 8516, 1, 0, 0, 0, 8516, 1622, 1, 0, 0, 0, 8517, 8515, 1, 0, 0, 0, 8518, 8519, 5, 38, 0, 0, 8519, 1624, 1, 0, 0, 0, 8520, 8521, 5, 38, 0, 0, 8521, 8522, 5, 38, 0, 0, 8522, 1626, 1, 0, 0, 0, 8523, 8524, 5, 38, 0, 0, 8524, 8525, 5, 60, 0, 0, 8525, 1628, 1, 0, 0, 0, 8526, 8527, 5, 64, 0, 0, 8527, 8528, 5, 64, 0, 0, 8528, 1630, 1, 0, 0, 0, 8529, 8530, 5, 64, 0, 0, 8530, 8531, 5, 62, 0, 0, 8531, 1632, 1, 0, 0, 0, 8532, 8533, 5, 64, 0, 0, 8533, 1634, 1, 0, 0, 0, 8534, 8535, 5, 33, 0, 0, 8535, 1636, 1, 0, 0, 0, 8536, 8537, 5, 33, 0, 0, 8537, 8538, 5, 33, 0, 0, 8538, 1638, 1, 0, 0, 0, 8539, 8540, 5, 33, 0, 0, 8540, 8541, 5, 61, 0, 0, 8541, 1640, 1, 0, 0, 0, 8542, 8543, 5, 94, 0, 0, 8543, 1642, 1, 0, 0, 0, 8544, 8545, 5, 61, 0, 0, 8545, 1644, 1, 0, 0, 0, 8546, 8547, 5, 61, 0, 0, 8547, 8548, 5, 62, 0, 0, 8548, 1646, 1, 0, 0, 0, 8549, 8550, 5, 62, 0, 0, 8550, 1648, 1, 0, 0, 0, 8551, 8552, 5, 62, 0, 0, 8552, 8553, 5, 61, 0, 0, 8553, 1650, 1, 0, 0, 0, 8554, 8555, 5, 62, 0, 0, 8555, 8556, 5, 62, 0, 0, 8556, 1652, 1, 0, 0, 0, 8557, 8558, 5, 35, 0, 0, 8558, 1654, 1, 0, 0, 0, 8559, 8560, 5, 35, 0, 0, 8560, 8561, 5, 61, 0, 0, 8561, 1656, 1, 0, 0, 0, 8562, 8563, 5, 35, 0, 0, 8563, 8564, 5, 62, 0, 0, 8564, 1658, 1, 0, 0, 0, 8565, 8566, 5, 35, 0, 0, 8566, 8567, 5, 62, 0, 0, 8567, 8568, 5, 62, 0, 0, 8568, 1660, 1, 0, 0, 0, 8569, 8570, 5, 35, 0, 0, 8570, 8571, 5, 35, 0, 0, 8571, 1662, 1, 0, 0, 0, 8572, 8573, 5, 45, 0, 0, 8573, 8574, 5, 62, 0, 0, 8574, 1664, 1, 0, 0, 0, 8575, 8576, 5, 45, 0, 0, 8576, 8577, 5, 62, 0, 0, 8577, 8578, 5, 62, 0, 0, 8578, 1666, 1, 0, 0, 0, 8579, 8580, 5, 45, 0, 0, 8580, 8581, 5, 124, 0, 0, 8581, 8582, 5, 45, 0, 0, 8582, 1668, 1, 0, 0, 0, 8583, 8584, 5, 60, 0, 0, 8584, 1670, 1, 0, 0, 0, 8585, 8586, 5, 60, 0, 0, 8586, 8587, 5, 61, 0, 0, 8587, 1672, 1, 0, 0, 0, 8588, 8589, 5, 60, 0, 0, 8589, 8590, 5, 64, 0, 0, 8590, 1674, 1, 0, 0, 0, 8591, 8592, 5, 60, 0, 0, 8592, 8593, 5, 94, 0, 0, 8593, 1676, 1, 0, 0, 0, 8594, 8595, 5, 60, 0, 0, 8595, 8596, 5, 62, 0, 0, 8596, 1678, 1, 0, 0, 0, 8597, 8598, 5, 60, 0, 0, 8598, 8599, 5, 45, 0, 0, 8599, 8600, 5, 62, 0, 0, 8600, 1680, 1, 0, 0, 0, 8601, 8602, 5, 60, 0, 0, 8602, 8603, 5, 60, 0, 0, 8603, 1682, 1, 0, 0, 0, 8604, 8605, 5, 60, 0, 0, 8605, 8606, 5, 60, 0, 0, 8606, 8607, 5, 61, 0, 0, 8607, 1684, 1, 0, 0, 0, 8608, 8609, 5, 60, 0, 0, 8609, 8610, 5, 63, 0, 0, 8610, 8611, 5, 62, 0, 0, 8611, 1686, 1, 0, 0, 0, 8612, 8613, 5, 45, 0, 0, 8613, 1688, 1, 0, 0, 0, 8614, 8615, 5, 37, 0, 0, 8615, 1690, 1, 0, 0, 0, 8616, 8617, 5, 124, 0, 0, 8617, 1692, 1, 0, 0, 0, 8618, 8619, 5, 124, 0, 0, 8619, 8620, 5, 124, 0, 0, 8620, 1694, 1, 0, 0, 0, 8621, 8622, 5, 124, 0, 0, 8622, 8623, 5, 124, 0, 0, 8623, 8624, 5, 47, 0, 0, 8624, 1696, 1, 0, 0, 0, 8625, 8626, 5, 124, 0, 0, 8626, 8627, 5, 47, 0, 0, 8627, 1698, 1, 0, 0, 0, 8628, 8629, 5, 43, 0, 0, 8629, 1700, 1, 0, 0, 0, 8630, 8631, 5, 63, 0, 0, 8631, 1702, 1, 0, 0, 0, 8632, 8633, 5, 63, 0, 0, 8633, 8634, 5, 38, 0, 0, 8634, 1704, 1, 0, 0, 0, 8635, 8636, 5, 63, 0, 0, 8636, 8637, 5, 35, 0, 0, 8637, 1706, 1, 0, 0, 0, 8638, 8639, 5, 63, 0, 0, 8639, 8640, 5, 45, 0, 0, 8640, 1708, 1, 0, 0, 0, 8641, 8642, 5, 63, 0, 0, 8642, 8643, 5, 124, 0, 0, 8643, 1710, 1, 0, 0, 0, 8644, 8645, 5, 47, 0, 0, 8645, 1712, 1, 0, 0, 0, 8646, 8647, 5, 126, 0, 0, 8647, 1714, 1, 0, 0, 0, 8648, 8649, 5, 126, 0, 0, 8649, 8650, 5, 61, 0, 0, 8650, 1716, 1, 0, 0, 0, 8651, 8652, 5, 126, 0, 0, 8652, 8653, 5, 62, 0, 0, 8653, 8654, 5, 61, 0, 0, 8654, 8655, 5, 126, 0, 0, 8655, 1718, 1, 0, 0, 0, 8656, 8657, 5, 126, 0, 0, 8657, 8658, 5, 62, 0, 0, 8658, 8659, 5, 126, 0, 0, 8659, 1720, 1, 0, 0, 0, 8660, 8661, 5, 126, 0, 0, 8661, 8662, 5, 60, 0, 0, 8662, 8663, 5, 61, 0, 0, 8663, 8664, 5, 126, 0, 0, 8664, 1722, 1, 0, 0, 0, 8665, 8666, 5, 126, 0, 0, 8666, 8667, 5, 60, 0, 0, 8667, 8668, 5, 126, 0, 0, 8668, 1724, 1, 0, 0, 0, 8669, 8670, 5, 126, 0, 0, 8670, 8671, 5, 42, 0, 0, 8671, 1726, 1, 0, 0, 0, 8672, 8673, 5, 126, 0, 0, 8673, 8674, 5, 126, 0, 0, 8674, 1728, 1, 0, 0, 0, 8675, 8676, 5, 59, 0, 0, 8676, 1730, 1, 0, 0, 0, 24, 0, 1734, 1744, 1758, 1827, 1829, 1840, 1842, 1853, 1855, 8437, 8446, 8451, 8457, 8463, 8469, 8471, 8474, 8479, 8485, 8487, 8502, 8509, 8515, 2, 6, 0, 0, 0, 1, 0] \ No newline at end of file +[4, 0, 833, 8664, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 1, 0, 4, 0, 1731, 8, 0, 11, 0, 12, 0, 1732, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1741, 8, 1, 10, 1, 12, 1, 1744, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1755, 8, 2, 10, 2, 12, 2, 1758, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 1826, 8, 31, 10, 31, 12, 31, 1829, 9, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 1839, 8, 32, 10, 32, 12, 32, 1842, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 1852, 8, 33, 10, 33, 12, 33, 1855, 9, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 790, 1, 790, 1, 791, 1, 791, 1, 791, 1, 792, 1, 792, 1, 793, 1, 793, 1, 793, 1, 794, 1, 794, 1, 795, 1, 795, 1, 796, 1, 796, 1, 797, 1, 797, 1, 798, 1, 798, 1, 799, 1, 799, 1, 799, 5, 799, 8423, 8, 799, 10, 799, 12, 799, 8426, 9, 799, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 1, 801, 3, 801, 8434, 8, 801, 1, 801, 4, 801, 8437, 8, 801, 11, 801, 12, 801, 8438, 1, 801, 1, 801, 4, 801, 8443, 8, 801, 11, 801, 12, 801, 8444, 1, 801, 1, 801, 5, 801, 8449, 8, 801, 10, 801, 12, 801, 8452, 9, 801, 1, 801, 4, 801, 8455, 8, 801, 11, 801, 12, 801, 8456, 3, 801, 8459, 8, 801, 1, 802, 3, 802, 8462, 8, 802, 1, 802, 4, 802, 8465, 8, 802, 11, 802, 12, 802, 8466, 1, 802, 1, 802, 4, 802, 8471, 8, 802, 11, 802, 12, 802, 8472, 3, 802, 8475, 8, 802, 1, 803, 1, 803, 1, 803, 1, 804, 1, 804, 1, 805, 1, 805, 1, 806, 1, 806, 1, 807, 1, 807, 5, 807, 8488, 8, 807, 10, 807, 12, 807, 8491, 9, 807, 1, 808, 1, 808, 4, 808, 8495, 8, 808, 11, 808, 12, 808, 8496, 1, 809, 1, 809, 5, 809, 8501, 8, 809, 10, 809, 12, 809, 8504, 9, 809, 1, 810, 1, 810, 1, 811, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 816, 1, 816, 1, 817, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 820, 1, 820, 1, 821, 1, 821, 1, 821, 1, 822, 1, 822, 1, 823, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 826, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 834, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 843, 1, 843, 1, 844, 1, 844, 1, 845, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 849, 1, 849, 1, 850, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 855, 1, 855, 1, 856, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 2, 1742, 1756, 0, 864, 1, 1, 3, 2, 5, 3, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 4, 71, 5, 73, 6, 75, 7, 77, 8, 79, 9, 81, 10, 83, 11, 85, 12, 87, 13, 89, 14, 91, 15, 93, 16, 95, 17, 97, 18, 99, 19, 101, 20, 103, 21, 105, 22, 107, 23, 109, 24, 111, 25, 113, 26, 115, 27, 117, 28, 119, 29, 121, 30, 123, 31, 125, 32, 127, 33, 129, 34, 131, 35, 133, 36, 135, 37, 137, 38, 139, 39, 141, 40, 143, 41, 145, 42, 147, 43, 149, 44, 151, 45, 153, 46, 155, 47, 157, 48, 159, 49, 161, 50, 163, 51, 165, 52, 167, 53, 169, 54, 171, 55, 173, 56, 175, 57, 177, 58, 179, 59, 181, 60, 183, 61, 185, 62, 187, 63, 189, 64, 191, 65, 193, 66, 195, 67, 197, 68, 199, 69, 201, 70, 203, 71, 205, 72, 207, 73, 209, 74, 211, 75, 213, 76, 215, 77, 217, 78, 219, 79, 221, 80, 223, 81, 225, 82, 227, 83, 229, 84, 231, 85, 233, 86, 235, 87, 237, 88, 239, 89, 241, 90, 243, 91, 245, 92, 247, 93, 249, 94, 251, 95, 253, 96, 255, 97, 257, 98, 259, 99, 261, 100, 263, 101, 265, 102, 267, 103, 269, 104, 271, 105, 273, 106, 275, 107, 277, 108, 279, 109, 281, 110, 283, 111, 285, 112, 287, 113, 289, 114, 291, 115, 293, 116, 295, 117, 297, 118, 299, 119, 301, 120, 303, 121, 305, 122, 307, 123, 309, 124, 311, 125, 313, 126, 315, 127, 317, 128, 319, 129, 321, 130, 323, 131, 325, 132, 327, 133, 329, 134, 331, 135, 333, 136, 335, 137, 337, 138, 339, 139, 341, 140, 343, 141, 345, 142, 347, 143, 349, 144, 351, 145, 353, 146, 355, 147, 357, 148, 359, 149, 361, 150, 363, 151, 365, 152, 367, 153, 369, 154, 371, 155, 373, 156, 375, 157, 377, 158, 379, 159, 381, 160, 383, 161, 385, 162, 387, 163, 389, 164, 391, 165, 393, 166, 395, 167, 397, 168, 399, 169, 401, 170, 403, 171, 405, 172, 407, 173, 409, 174, 411, 175, 413, 176, 415, 177, 417, 178, 419, 179, 421, 180, 423, 181, 425, 182, 427, 183, 429, 184, 431, 185, 433, 186, 435, 187, 437, 188, 439, 189, 441, 190, 443, 191, 445, 192, 447, 193, 449, 194, 451, 195, 453, 196, 455, 197, 457, 198, 459, 199, 461, 200, 463, 201, 465, 202, 467, 203, 469, 204, 471, 205, 473, 206, 475, 207, 477, 208, 479, 209, 481, 210, 483, 211, 485, 212, 487, 213, 489, 214, 491, 215, 493, 216, 495, 217, 497, 218, 499, 219, 501, 220, 503, 221, 505, 222, 507, 223, 509, 224, 511, 225, 513, 226, 515, 227, 517, 228, 519, 229, 521, 230, 523, 231, 525, 232, 527, 233, 529, 234, 531, 235, 533, 236, 535, 237, 537, 238, 539, 239, 541, 240, 543, 241, 545, 242, 547, 243, 549, 244, 551, 245, 553, 246, 555, 247, 557, 248, 559, 249, 561, 250, 563, 251, 565, 252, 567, 253, 569, 254, 571, 255, 573, 256, 575, 257, 577, 258, 579, 259, 581, 260, 583, 261, 585, 262, 587, 263, 589, 264, 591, 265, 593, 266, 595, 267, 597, 268, 599, 269, 601, 270, 603, 271, 605, 272, 607, 273, 609, 274, 611, 275, 613, 276, 615, 277, 617, 278, 619, 279, 621, 280, 623, 281, 625, 282, 627, 283, 629, 284, 631, 285, 633, 286, 635, 287, 637, 288, 639, 289, 641, 290, 643, 291, 645, 292, 647, 293, 649, 294, 651, 295, 653, 296, 655, 297, 657, 298, 659, 299, 661, 300, 663, 301, 665, 302, 667, 303, 669, 304, 671, 305, 673, 306, 675, 307, 677, 308, 679, 309, 681, 310, 683, 311, 685, 312, 687, 313, 689, 314, 691, 315, 693, 316, 695, 317, 697, 318, 699, 319, 701, 320, 703, 321, 705, 322, 707, 323, 709, 324, 711, 325, 713, 326, 715, 327, 717, 328, 719, 329, 721, 330, 723, 331, 725, 332, 727, 333, 729, 334, 731, 335, 733, 336, 735, 337, 737, 338, 739, 339, 741, 340, 743, 341, 745, 342, 747, 343, 749, 344, 751, 345, 753, 346, 755, 347, 757, 348, 759, 349, 761, 350, 763, 351, 765, 352, 767, 353, 769, 354, 771, 355, 773, 356, 775, 357, 777, 358, 779, 359, 781, 360, 783, 361, 785, 362, 787, 363, 789, 364, 791, 365, 793, 366, 795, 367, 797, 368, 799, 369, 801, 370, 803, 371, 805, 372, 807, 373, 809, 374, 811, 375, 813, 376, 815, 377, 817, 378, 819, 379, 821, 380, 823, 381, 825, 382, 827, 383, 829, 384, 831, 385, 833, 386, 835, 387, 837, 388, 839, 389, 841, 390, 843, 391, 845, 392, 847, 393, 849, 394, 851, 395, 853, 396, 855, 397, 857, 398, 859, 399, 861, 400, 863, 401, 865, 402, 867, 403, 869, 404, 871, 405, 873, 406, 875, 407, 877, 408, 879, 409, 881, 410, 883, 411, 885, 412, 887, 413, 889, 414, 891, 415, 893, 416, 895, 417, 897, 418, 899, 419, 901, 420, 903, 421, 905, 422, 907, 423, 909, 424, 911, 425, 913, 426, 915, 427, 917, 428, 919, 429, 921, 430, 923, 431, 925, 432, 927, 433, 929, 434, 931, 435, 933, 436, 935, 437, 937, 438, 939, 439, 941, 440, 943, 441, 945, 442, 947, 443, 949, 444, 951, 445, 953, 446, 955, 447, 957, 448, 959, 449, 961, 450, 963, 451, 965, 452, 967, 453, 969, 454, 971, 455, 973, 456, 975, 457, 977, 458, 979, 459, 981, 460, 983, 461, 985, 462, 987, 463, 989, 464, 991, 465, 993, 466, 995, 467, 997, 468, 999, 469, 1001, 470, 1003, 471, 1005, 472, 1007, 473, 1009, 474, 1011, 475, 1013, 476, 1015, 477, 1017, 478, 1019, 479, 1021, 480, 1023, 481, 1025, 482, 1027, 483, 1029, 484, 1031, 485, 1033, 486, 1035, 487, 1037, 488, 1039, 489, 1041, 490, 1043, 491, 1045, 492, 1047, 493, 1049, 494, 1051, 495, 1053, 496, 1055, 497, 1057, 498, 1059, 499, 1061, 500, 1063, 501, 1065, 502, 1067, 503, 1069, 504, 1071, 505, 1073, 506, 1075, 507, 1077, 508, 1079, 509, 1081, 510, 1083, 511, 1085, 512, 1087, 513, 1089, 514, 1091, 515, 1093, 516, 1095, 517, 1097, 518, 1099, 519, 1101, 520, 1103, 521, 1105, 522, 1107, 523, 1109, 524, 1111, 525, 1113, 526, 1115, 527, 1117, 528, 1119, 529, 1121, 530, 1123, 531, 1125, 532, 1127, 533, 1129, 534, 1131, 535, 1133, 536, 1135, 537, 1137, 538, 1139, 539, 1141, 540, 1143, 541, 1145, 542, 1147, 543, 1149, 544, 1151, 545, 1153, 546, 1155, 547, 1157, 548, 1159, 549, 1161, 550, 1163, 551, 1165, 552, 1167, 553, 1169, 554, 1171, 555, 1173, 556, 1175, 557, 1177, 558, 1179, 559, 1181, 560, 1183, 561, 1185, 562, 1187, 563, 1189, 564, 1191, 565, 1193, 566, 1195, 567, 1197, 568, 1199, 569, 1201, 570, 1203, 571, 1205, 572, 1207, 573, 1209, 574, 1211, 575, 1213, 576, 1215, 577, 1217, 578, 1219, 579, 1221, 580, 1223, 581, 1225, 582, 1227, 583, 1229, 584, 1231, 585, 1233, 586, 1235, 587, 1237, 588, 1239, 589, 1241, 590, 1243, 591, 1245, 592, 1247, 593, 1249, 594, 1251, 595, 1253, 596, 1255, 597, 1257, 598, 1259, 599, 1261, 600, 1263, 601, 1265, 602, 1267, 603, 1269, 604, 1271, 605, 1273, 606, 1275, 607, 1277, 608, 1279, 609, 1281, 610, 1283, 611, 1285, 612, 1287, 613, 1289, 614, 1291, 615, 1293, 616, 1295, 617, 1297, 618, 1299, 619, 1301, 620, 1303, 621, 1305, 622, 1307, 623, 1309, 624, 1311, 625, 1313, 626, 1315, 627, 1317, 628, 1319, 629, 1321, 630, 1323, 631, 1325, 632, 1327, 633, 1329, 634, 1331, 635, 1333, 636, 1335, 637, 1337, 638, 1339, 639, 1341, 640, 1343, 641, 1345, 642, 1347, 643, 1349, 644, 1351, 645, 1353, 646, 1355, 647, 1357, 648, 1359, 649, 1361, 650, 1363, 651, 1365, 652, 1367, 653, 1369, 654, 1371, 655, 1373, 656, 1375, 657, 1377, 658, 1379, 659, 1381, 660, 1383, 661, 1385, 662, 1387, 663, 1389, 664, 1391, 665, 1393, 666, 1395, 667, 1397, 668, 1399, 669, 1401, 670, 1403, 671, 1405, 672, 1407, 673, 1409, 674, 1411, 675, 1413, 676, 1415, 677, 1417, 678, 1419, 679, 1421, 680, 1423, 681, 1425, 682, 1427, 683, 1429, 684, 1431, 685, 1433, 686, 1435, 687, 1437, 688, 1439, 689, 1441, 690, 1443, 691, 1445, 692, 1447, 693, 1449, 694, 1451, 695, 1453, 696, 1455, 697, 1457, 698, 1459, 699, 1461, 700, 1463, 701, 1465, 702, 1467, 703, 1469, 704, 1471, 705, 1473, 706, 1475, 707, 1477, 708, 1479, 709, 1481, 710, 1483, 711, 1485, 712, 1487, 713, 1489, 714, 1491, 715, 1493, 716, 1495, 717, 1497, 718, 1499, 719, 1501, 720, 1503, 721, 1505, 722, 1507, 723, 1509, 724, 1511, 725, 1513, 726, 1515, 727, 1517, 728, 1519, 729, 1521, 730, 1523, 731, 1525, 732, 1527, 733, 1529, 734, 1531, 735, 1533, 736, 1535, 737, 1537, 738, 1539, 739, 1541, 740, 1543, 741, 1545, 742, 1547, 743, 1549, 744, 1551, 745, 1553, 746, 1555, 747, 1557, 748, 1559, 749, 1561, 750, 1563, 751, 1565, 752, 1567, 753, 1569, 754, 1571, 755, 1573, 756, 1575, 757, 1577, 758, 1579, 759, 1581, 760, 1583, 761, 1585, 762, 1587, 763, 1589, 764, 1591, 765, 1593, 766, 1595, 767, 1597, 768, 1599, 769, 1601, 770, 1603, 771, 1605, 772, 1607, 773, 1609, 774, 1611, 775, 1613, 776, 1615, 777, 1617, 778, 1619, 779, 1621, 780, 1623, 781, 1625, 782, 1627, 783, 1629, 784, 1631, 785, 1633, 786, 1635, 787, 1637, 788, 1639, 789, 1641, 790, 1643, 791, 1645, 792, 1647, 793, 1649, 794, 1651, 795, 1653, 796, 1655, 797, 1657, 798, 1659, 799, 1661, 800, 1663, 801, 1665, 802, 1667, 803, 1669, 804, 1671, 805, 1673, 806, 1675, 807, 1677, 808, 1679, 809, 1681, 810, 1683, 811, 1685, 812, 1687, 813, 1689, 814, 1691, 815, 1693, 816, 1695, 817, 1697, 818, 1699, 819, 1701, 820, 1703, 821, 1705, 822, 1707, 823, 1709, 824, 1711, 825, 1713, 826, 1715, 827, 1717, 828, 1719, 829, 1721, 830, 1723, 831, 1725, 832, 1727, 833, 1, 0, 36, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 48, 57, 65, 70, 1, 0, 48, 57, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 2, 0, 92, 92, 96, 96, 3, 0, 65, 90, 95, 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 65, 90, 95, 95, 97, 122, 161, 65535, 6, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 161, 65535, 8658, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 1, 1730, 1, 0, 0, 0, 3, 1736, 1, 0, 0, 0, 5, 1750, 1, 0, 0, 0, 7, 1763, 1, 0, 0, 0, 9, 1765, 1, 0, 0, 0, 11, 1767, 1, 0, 0, 0, 13, 1769, 1, 0, 0, 0, 15, 1771, 1, 0, 0, 0, 17, 1773, 1, 0, 0, 0, 19, 1775, 1, 0, 0, 0, 21, 1777, 1, 0, 0, 0, 23, 1779, 1, 0, 0, 0, 25, 1781, 1, 0, 0, 0, 27, 1783, 1, 0, 0, 0, 29, 1785, 1, 0, 0, 0, 31, 1787, 1, 0, 0, 0, 33, 1789, 1, 0, 0, 0, 35, 1791, 1, 0, 0, 0, 37, 1793, 1, 0, 0, 0, 39, 1795, 1, 0, 0, 0, 41, 1797, 1, 0, 0, 0, 43, 1799, 1, 0, 0, 0, 45, 1801, 1, 0, 0, 0, 47, 1803, 1, 0, 0, 0, 49, 1805, 1, 0, 0, 0, 51, 1807, 1, 0, 0, 0, 53, 1809, 1, 0, 0, 0, 55, 1811, 1, 0, 0, 0, 57, 1813, 1, 0, 0, 0, 59, 1815, 1, 0, 0, 0, 61, 1817, 1, 0, 0, 0, 63, 1819, 1, 0, 0, 0, 65, 1832, 1, 0, 0, 0, 67, 1845, 1, 0, 0, 0, 69, 1858, 1, 0, 0, 0, 71, 1860, 1, 0, 0, 0, 73, 1866, 1, 0, 0, 0, 75, 1870, 1, 0, 0, 0, 77, 1879, 1, 0, 0, 0, 79, 1886, 1, 0, 0, 0, 81, 1893, 1, 0, 0, 0, 83, 1897, 1, 0, 0, 0, 85, 1901, 1, 0, 0, 0, 87, 1907, 1, 0, 0, 0, 89, 1913, 1, 0, 0, 0, 91, 1923, 1, 0, 0, 0, 93, 1929, 1, 0, 0, 0, 95, 1933, 1, 0, 0, 0, 97, 1942, 1, 0, 0, 0, 99, 1947, 1, 0, 0, 0, 101, 1953, 1, 0, 0, 0, 103, 1960, 1, 0, 0, 0, 105, 1968, 1, 0, 0, 0, 107, 1976, 1, 0, 0, 0, 109, 1980, 1, 0, 0, 0, 111, 1984, 1, 0, 0, 0, 113, 1988, 1, 0, 0, 0, 115, 1994, 1, 0, 0, 0, 117, 1997, 1, 0, 0, 0, 119, 2001, 1, 0, 0, 0, 121, 2012, 1, 0, 0, 0, 123, 2022, 1, 0, 0, 0, 125, 2033, 1, 0, 0, 0, 127, 2044, 1, 0, 0, 0, 129, 2047, 1, 0, 0, 0, 131, 2054, 1, 0, 0, 0, 133, 2064, 1, 0, 0, 0, 135, 2075, 1, 0, 0, 0, 137, 2089, 1, 0, 0, 0, 139, 2093, 1, 0, 0, 0, 141, 2102, 1, 0, 0, 0, 143, 2109, 1, 0, 0, 0, 145, 2115, 1, 0, 0, 0, 147, 2125, 1, 0, 0, 0, 149, 2133, 1, 0, 0, 0, 151, 2140, 1, 0, 0, 0, 153, 2147, 1, 0, 0, 0, 155, 2151, 1, 0, 0, 0, 157, 2162, 1, 0, 0, 0, 159, 2169, 1, 0, 0, 0, 161, 2174, 1, 0, 0, 0, 163, 2182, 1, 0, 0, 0, 165, 2187, 1, 0, 0, 0, 167, 2195, 1, 0, 0, 0, 169, 2203, 1, 0, 0, 0, 171, 2206, 1, 0, 0, 0, 173, 2208, 1, 0, 0, 0, 175, 2214, 1, 0, 0, 0, 177, 2219, 1, 0, 0, 0, 179, 2226, 1, 0, 0, 0, 181, 2238, 1, 0, 0, 0, 183, 2246, 1, 0, 0, 0, 185, 2255, 1, 0, 0, 0, 187, 2260, 1, 0, 0, 0, 189, 2265, 1, 0, 0, 0, 191, 2273, 1, 0, 0, 0, 193, 2286, 1, 0, 0, 0, 195, 2291, 1, 0, 0, 0, 197, 2299, 1, 0, 0, 0, 199, 2305, 1, 0, 0, 0, 201, 2310, 1, 0, 0, 0, 203, 2322, 1, 0, 0, 0, 205, 2332, 1, 0, 0, 0, 207, 2349, 1, 0, 0, 0, 209, 2371, 1, 0, 0, 0, 211, 2390, 1, 0, 0, 0, 213, 2411, 1, 0, 0, 0, 215, 2427, 1, 0, 0, 0, 217, 2438, 1, 0, 0, 0, 219, 2444, 1, 0, 0, 0, 221, 2452, 1, 0, 0, 0, 223, 2463, 1, 0, 0, 0, 225, 2469, 1, 0, 0, 0, 227, 2482, 1, 0, 0, 0, 229, 2487, 1, 0, 0, 0, 231, 2493, 1, 0, 0, 0, 233, 2501, 1, 0, 0, 0, 235, 2510, 1, 0, 0, 0, 237, 2516, 1, 0, 0, 0, 239, 2524, 1, 0, 0, 0, 241, 2534, 1, 0, 0, 0, 243, 2552, 1, 0, 0, 0, 245, 2567, 1, 0, 0, 0, 247, 2584, 1, 0, 0, 0, 249, 2592, 1, 0, 0, 0, 251, 2599, 1, 0, 0, 0, 253, 2611, 1, 0, 0, 0, 255, 2628, 1, 0, 0, 0, 257, 2650, 1, 0, 0, 0, 259, 2658, 1, 0, 0, 0, 261, 2665, 1, 0, 0, 0, 263, 2675, 1, 0, 0, 0, 265, 2686, 1, 0, 0, 0, 267, 2696, 1, 0, 0, 0, 269, 2713, 1, 0, 0, 0, 271, 2727, 1, 0, 0, 0, 273, 2736, 1, 0, 0, 0, 275, 2744, 1, 0, 0, 0, 277, 2755, 1, 0, 0, 0, 279, 2771, 1, 0, 0, 0, 281, 2782, 1, 0, 0, 0, 283, 2801, 1, 0, 0, 0, 285, 2817, 1, 0, 0, 0, 287, 2835, 1, 0, 0, 0, 289, 2847, 1, 0, 0, 0, 291, 2859, 1, 0, 0, 0, 293, 2868, 1, 0, 0, 0, 295, 2877, 1, 0, 0, 0, 297, 2888, 1, 0, 0, 0, 299, 2896, 1, 0, 0, 0, 301, 2901, 1, 0, 0, 0, 303, 2906, 1, 0, 0, 0, 305, 2920, 1, 0, 0, 0, 307, 2926, 1, 0, 0, 0, 309, 2932, 1, 0, 0, 0, 311, 2942, 1, 0, 0, 0, 313, 2953, 1, 0, 0, 0, 315, 2960, 1, 0, 0, 0, 317, 2969, 1, 0, 0, 0, 319, 2980, 1, 0, 0, 0, 321, 2986, 1, 0, 0, 0, 323, 2990, 1, 0, 0, 0, 325, 2995, 1, 0, 0, 0, 327, 3005, 1, 0, 0, 0, 329, 3013, 1, 0, 0, 0, 331, 3026, 1, 0, 0, 0, 333, 3058, 1, 0, 0, 0, 335, 3071, 1, 0, 0, 0, 337, 3084, 1, 0, 0, 0, 339, 3097, 1, 0, 0, 0, 341, 3115, 1, 0, 0, 0, 343, 3148, 1, 0, 0, 0, 345, 3161, 1, 0, 0, 0, 347, 3168, 1, 0, 0, 0, 349, 3180, 1, 0, 0, 0, 351, 3186, 1, 0, 0, 0, 353, 3191, 1, 0, 0, 0, 355, 3200, 1, 0, 0, 0, 357, 3205, 1, 0, 0, 0, 359, 3228, 1, 0, 0, 0, 361, 3256, 1, 0, 0, 0, 363, 3260, 1, 0, 0, 0, 365, 3271, 1, 0, 0, 0, 367, 3275, 1, 0, 0, 0, 369, 3283, 1, 0, 0, 0, 371, 3291, 1, 0, 0, 0, 373, 3299, 1, 0, 0, 0, 375, 3308, 1, 0, 0, 0, 377, 3318, 1, 0, 0, 0, 379, 3329, 1, 0, 0, 0, 381, 3338, 1, 0, 0, 0, 383, 3346, 1, 0, 0, 0, 385, 3354, 1, 0, 0, 0, 387, 3361, 1, 0, 0, 0, 389, 3368, 1, 0, 0, 0, 391, 3378, 1, 0, 0, 0, 393, 3389, 1, 0, 0, 0, 395, 3400, 1, 0, 0, 0, 397, 3408, 1, 0, 0, 0, 399, 3414, 1, 0, 0, 0, 401, 3420, 1, 0, 0, 0, 403, 3428, 1, 0, 0, 0, 405, 3433, 1, 0, 0, 0, 407, 3442, 1, 0, 0, 0, 409, 3453, 1, 0, 0, 0, 411, 3461, 1, 0, 0, 0, 413, 3472, 1, 0, 0, 0, 415, 3486, 1, 0, 0, 0, 417, 3498, 1, 0, 0, 0, 419, 3509, 1, 0, 0, 0, 421, 3517, 1, 0, 0, 0, 423, 3539, 1, 0, 0, 0, 425, 3547, 1, 0, 0, 0, 427, 3558, 1, 0, 0, 0, 429, 3567, 1, 0, 0, 0, 431, 3576, 1, 0, 0, 0, 433, 3579, 1, 0, 0, 0, 435, 3586, 1, 0, 0, 0, 437, 3593, 1, 0, 0, 0, 439, 3598, 1, 0, 0, 0, 441, 3606, 1, 0, 0, 0, 443, 3623, 1, 0, 0, 0, 445, 3645, 1, 0, 0, 0, 447, 3650, 1, 0, 0, 0, 449, 3658, 1, 0, 0, 0, 451, 3663, 1, 0, 0, 0, 453, 3670, 1, 0, 0, 0, 455, 3679, 1, 0, 0, 0, 457, 3689, 1, 0, 0, 0, 459, 3693, 1, 0, 0, 0, 461, 3702, 1, 0, 0, 0, 463, 3709, 1, 0, 0, 0, 465, 3716, 1, 0, 0, 0, 467, 3722, 1, 0, 0, 0, 469, 3729, 1, 0, 0, 0, 471, 3739, 1, 0, 0, 0, 473, 3747, 1, 0, 0, 0, 475, 3757, 1, 0, 0, 0, 477, 3767, 1, 0, 0, 0, 479, 3772, 1, 0, 0, 0, 481, 3780, 1, 0, 0, 0, 483, 3789, 1, 0, 0, 0, 485, 3796, 1, 0, 0, 0, 487, 3800, 1, 0, 0, 0, 489, 3808, 1, 0, 0, 0, 491, 3817, 1, 0, 0, 0, 493, 3827, 1, 0, 0, 0, 495, 3836, 1, 0, 0, 0, 497, 3844, 1, 0, 0, 0, 499, 3850, 1, 0, 0, 0, 501, 3856, 1, 0, 0, 0, 503, 3863, 1, 0, 0, 0, 505, 3870, 1, 0, 0, 0, 507, 3876, 1, 0, 0, 0, 509, 3882, 1, 0, 0, 0, 511, 3888, 1, 0, 0, 0, 513, 3894, 1, 0, 0, 0, 515, 3904, 1, 0, 0, 0, 517, 3908, 1, 0, 0, 0, 519, 3914, 1, 0, 0, 0, 521, 3922, 1, 0, 0, 0, 523, 3929, 1, 0, 0, 0, 525, 3937, 1, 0, 0, 0, 527, 3945, 1, 0, 0, 0, 529, 3951, 1, 0, 0, 0, 531, 3956, 1, 0, 0, 0, 533, 3963, 1, 0, 0, 0, 535, 3968, 1, 0, 0, 0, 537, 3973, 1, 0, 0, 0, 539, 3982, 1, 0, 0, 0, 541, 3989, 1, 0, 0, 0, 543, 3991, 1, 0, 0, 0, 545, 3999, 1, 0, 0, 0, 547, 4009, 1, 0, 0, 0, 549, 4013, 1, 0, 0, 0, 551, 4020, 1, 0, 0, 0, 553, 4023, 1, 0, 0, 0, 555, 4028, 1, 0, 0, 0, 557, 4034, 1, 0, 0, 0, 559, 4042, 1, 0, 0, 0, 561, 4051, 1, 0, 0, 0, 563, 4057, 1, 0, 0, 0, 565, 4066, 1, 0, 0, 0, 567, 4074, 1, 0, 0, 0, 569, 4081, 1, 0, 0, 0, 571, 4091, 1, 0, 0, 0, 573, 4096, 1, 0, 0, 0, 575, 4101, 1, 0, 0, 0, 577, 4106, 1, 0, 0, 0, 579, 4115, 1, 0, 0, 0, 581, 4122, 1, 0, 0, 0, 583, 4128, 1, 0, 0, 0, 585, 4138, 1, 0, 0, 0, 587, 4148, 1, 0, 0, 0, 589, 4163, 1, 0, 0, 0, 591, 4172, 1, 0, 0, 0, 593, 4175, 1, 0, 0, 0, 595, 4185, 1, 0, 0, 0, 597, 4195, 1, 0, 0, 0, 599, 4201, 1, 0, 0, 0, 601, 4211, 1, 0, 0, 0, 603, 4217, 1, 0, 0, 0, 605, 4226, 1, 0, 0, 0, 607, 4237, 1, 0, 0, 0, 609, 4247, 1, 0, 0, 0, 611, 4253, 1, 0, 0, 0, 613, 4259, 1, 0, 0, 0, 615, 4265, 1, 0, 0, 0, 617, 4277, 1, 0, 0, 0, 619, 4284, 1, 0, 0, 0, 621, 4293, 1, 0, 0, 0, 623, 4306, 1, 0, 0, 0, 625, 4314, 1, 0, 0, 0, 627, 4318, 1, 0, 0, 0, 629, 4326, 1, 0, 0, 0, 631, 4336, 1, 0, 0, 0, 633, 4349, 1, 0, 0, 0, 635, 4358, 1, 0, 0, 0, 637, 4363, 1, 0, 0, 0, 639, 4371, 1, 0, 0, 0, 641, 4374, 1, 0, 0, 0, 643, 4384, 1, 0, 0, 0, 645, 4392, 1, 0, 0, 0, 647, 4397, 1, 0, 0, 0, 649, 4399, 1, 0, 0, 0, 651, 4403, 1, 0, 0, 0, 653, 4414, 1, 0, 0, 0, 655, 4423, 1, 0, 0, 0, 657, 4429, 1, 0, 0, 0, 659, 4441, 1, 0, 0, 0, 661, 4450, 1, 0, 0, 0, 663, 4456, 1, 0, 0, 0, 665, 4461, 1, 0, 0, 0, 667, 4469, 1, 0, 0, 0, 669, 4477, 1, 0, 0, 0, 671, 4483, 1, 0, 0, 0, 673, 4488, 1, 0, 0, 0, 675, 4495, 1, 0, 0, 0, 677, 4500, 1, 0, 0, 0, 679, 4506, 1, 0, 0, 0, 681, 4511, 1, 0, 0, 0, 683, 4517, 1, 0, 0, 0, 685, 4524, 1, 0, 0, 0, 687, 4527, 1, 0, 0, 0, 689, 4532, 1, 0, 0, 0, 691, 4538, 1, 0, 0, 0, 693, 4548, 1, 0, 0, 0, 695, 4563, 1, 0, 0, 0, 697, 4572, 1, 0, 0, 0, 699, 4580, 1, 0, 0, 0, 701, 4585, 1, 0, 0, 0, 703, 4592, 1, 0, 0, 0, 705, 4598, 1, 0, 0, 0, 707, 4600, 1, 0, 0, 0, 709, 4605, 1, 0, 0, 0, 711, 4609, 1, 0, 0, 0, 713, 4617, 1, 0, 0, 0, 715, 4623, 1, 0, 0, 0, 717, 4636, 1, 0, 0, 0, 719, 4644, 1, 0, 0, 0, 721, 4648, 1, 0, 0, 0, 723, 4657, 1, 0, 0, 0, 725, 4664, 1, 0, 0, 0, 727, 4670, 1, 0, 0, 0, 729, 4685, 1, 0, 0, 0, 731, 4706, 1, 0, 0, 0, 733, 4719, 1, 0, 0, 0, 735, 4726, 1, 0, 0, 0, 737, 4730, 1, 0, 0, 0, 739, 4737, 1, 0, 0, 0, 741, 4746, 1, 0, 0, 0, 743, 4750, 1, 0, 0, 0, 745, 4755, 1, 0, 0, 0, 747, 4764, 1, 0, 0, 0, 749, 4771, 1, 0, 0, 0, 751, 4778, 1, 0, 0, 0, 753, 4784, 1, 0, 0, 0, 755, 4789, 1, 0, 0, 0, 757, 4794, 1, 0, 0, 0, 759, 4803, 1, 0, 0, 0, 761, 4809, 1, 0, 0, 0, 763, 4814, 1, 0, 0, 0, 765, 4820, 1, 0, 0, 0, 767, 4829, 1, 0, 0, 0, 769, 4837, 1, 0, 0, 0, 771, 4843, 1, 0, 0, 0, 773, 4849, 1, 0, 0, 0, 775, 4857, 1, 0, 0, 0, 777, 4861, 1, 0, 0, 0, 779, 4866, 1, 0, 0, 0, 781, 4869, 1, 0, 0, 0, 783, 4880, 1, 0, 0, 0, 785, 4893, 1, 0, 0, 0, 787, 4898, 1, 0, 0, 0, 789, 4908, 1, 0, 0, 0, 791, 4919, 1, 0, 0, 0, 793, 4923, 1, 0, 0, 0, 795, 4931, 1, 0, 0, 0, 797, 4938, 1, 0, 0, 0, 799, 4946, 1, 0, 0, 0, 801, 4953, 1, 0, 0, 0, 803, 4958, 1, 0, 0, 0, 805, 4967, 1, 0, 0, 0, 807, 4974, 1, 0, 0, 0, 809, 4980, 1, 0, 0, 0, 811, 4987, 1, 0, 0, 0, 813, 4995, 1, 0, 0, 0, 815, 5002, 1, 0, 0, 0, 817, 5015, 1, 0, 0, 0, 819, 5022, 1, 0, 0, 0, 821, 5025, 1, 0, 0, 0, 823, 5029, 1, 0, 0, 0, 825, 5036, 1, 0, 0, 0, 827, 5041, 1, 0, 0, 0, 829, 5045, 1, 0, 0, 0, 831, 5048, 1, 0, 0, 0, 833, 5053, 1, 0, 0, 0, 835, 5058, 1, 0, 0, 0, 837, 5068, 1, 0, 0, 0, 839, 5077, 1, 0, 0, 0, 841, 5084, 1, 0, 0, 0, 843, 5092, 1, 0, 0, 0, 845, 5095, 1, 0, 0, 0, 847, 5101, 1, 0, 0, 0, 849, 5110, 1, 0, 0, 0, 851, 5121, 1, 0, 0, 0, 853, 5128, 1, 0, 0, 0, 855, 5132, 1, 0, 0, 0, 857, 5138, 1, 0, 0, 0, 859, 5145, 1, 0, 0, 0, 861, 5150, 1, 0, 0, 0, 863, 5159, 1, 0, 0, 0, 865, 5167, 1, 0, 0, 0, 867, 5178, 1, 0, 0, 0, 869, 5184, 1, 0, 0, 0, 871, 5188, 1, 0, 0, 0, 873, 5198, 1, 0, 0, 0, 875, 5213, 1, 0, 0, 0, 877, 5228, 1, 0, 0, 0, 879, 5255, 1, 0, 0, 0, 881, 5282, 1, 0, 0, 0, 883, 5306, 1, 0, 0, 0, 885, 5332, 1, 0, 0, 0, 887, 5343, 1, 0, 0, 0, 889, 5350, 1, 0, 0, 0, 891, 5358, 1, 0, 0, 0, 893, 5368, 1, 0, 0, 0, 895, 5375, 1, 0, 0, 0, 897, 5384, 1, 0, 0, 0, 899, 5389, 1, 0, 0, 0, 901, 5402, 1, 0, 0, 0, 903, 5418, 1, 0, 0, 0, 905, 5434, 1, 0, 0, 0, 907, 5442, 1, 0, 0, 0, 909, 5448, 1, 0, 0, 0, 911, 5454, 1, 0, 0, 0, 913, 5458, 1, 0, 0, 0, 915, 5467, 1, 0, 0, 0, 917, 5475, 1, 0, 0, 0, 919, 5481, 1, 0, 0, 0, 921, 5491, 1, 0, 0, 0, 923, 5501, 1, 0, 0, 0, 925, 5508, 1, 0, 0, 0, 927, 5517, 1, 0, 0, 0, 929, 5525, 1, 0, 0, 0, 931, 5534, 1, 0, 0, 0, 933, 5543, 1, 0, 0, 0, 935, 5551, 1, 0, 0, 0, 937, 5557, 1, 0, 0, 0, 939, 5568, 1, 0, 0, 0, 941, 5579, 1, 0, 0, 0, 943, 5589, 1, 0, 0, 0, 945, 5596, 1, 0, 0, 0, 947, 5608, 1, 0, 0, 0, 949, 5614, 1, 0, 0, 0, 951, 5620, 1, 0, 0, 0, 953, 5625, 1, 0, 0, 0, 955, 5630, 1, 0, 0, 0, 957, 5636, 1, 0, 0, 0, 959, 5641, 1, 0, 0, 0, 961, 5650, 1, 0, 0, 0, 963, 5658, 1, 0, 0, 0, 965, 5668, 1, 0, 0, 0, 967, 5672, 1, 0, 0, 0, 969, 5683, 1, 0, 0, 0, 971, 5695, 1, 0, 0, 0, 973, 5703, 1, 0, 0, 0, 975, 5713, 1, 0, 0, 0, 977, 5723, 1, 0, 0, 0, 979, 5734, 1, 0, 0, 0, 981, 5749, 1, 0, 0, 0, 983, 5757, 1, 0, 0, 0, 985, 5768, 1, 0, 0, 0, 987, 5777, 1, 0, 0, 0, 989, 5786, 1, 0, 0, 0, 991, 5795, 1, 0, 0, 0, 993, 5803, 1, 0, 0, 0, 995, 5812, 1, 0, 0, 0, 997, 5820, 1, 0, 0, 0, 999, 5827, 1, 0, 0, 0, 1001, 5838, 1, 0, 0, 0, 1003, 5846, 1, 0, 0, 0, 1005, 5854, 1, 0, 0, 0, 1007, 5860, 1, 0, 0, 0, 1009, 5868, 1, 0, 0, 0, 1011, 5877, 1, 0, 0, 0, 1013, 5884, 1, 0, 0, 0, 1015, 5891, 1, 0, 0, 0, 1017, 5912, 1, 0, 0, 0, 1019, 5928, 1, 0, 0, 0, 1021, 5950, 1, 0, 0, 0, 1023, 5968, 1, 0, 0, 0, 1025, 5978, 1, 0, 0, 0, 1027, 5986, 1, 0, 0, 0, 1029, 5993, 1, 0, 0, 0, 1031, 5999, 1, 0, 0, 0, 1033, 6004, 1, 0, 0, 0, 1035, 6013, 1, 0, 0, 0, 1037, 6020, 1, 0, 0, 0, 1039, 6028, 1, 0, 0, 0, 1041, 6044, 1, 0, 0, 0, 1043, 6057, 1, 0, 0, 0, 1045, 6072, 1, 0, 0, 0, 1047, 6076, 1, 0, 0, 0, 1049, 6086, 1, 0, 0, 0, 1051, 6097, 1, 0, 0, 0, 1053, 6102, 1, 0, 0, 0, 1055, 6107, 1, 0, 0, 0, 1057, 6117, 1, 0, 0, 0, 1059, 6123, 1, 0, 0, 0, 1061, 6130, 1, 0, 0, 0, 1063, 6142, 1, 0, 0, 0, 1065, 6148, 1, 0, 0, 0, 1067, 6162, 1, 0, 0, 0, 1069, 6173, 1, 0, 0, 0, 1071, 6186, 1, 0, 0, 0, 1073, 6193, 1, 0, 0, 0, 1075, 6200, 1, 0, 0, 0, 1077, 6207, 1, 0, 0, 0, 1079, 6215, 1, 0, 0, 0, 1081, 6224, 1, 0, 0, 0, 1083, 6231, 1, 0, 0, 0, 1085, 6236, 1, 0, 0, 0, 1087, 6246, 1, 0, 0, 0, 1089, 6255, 1, 0, 0, 0, 1091, 6265, 1, 0, 0, 0, 1093, 6278, 1, 0, 0, 0, 1095, 6290, 1, 0, 0, 0, 1097, 6298, 1, 0, 0, 0, 1099, 6311, 1, 0, 0, 0, 1101, 6315, 1, 0, 0, 0, 1103, 6321, 1, 0, 0, 0, 1105, 6326, 1, 0, 0, 0, 1107, 6332, 1, 0, 0, 0, 1109, 6337, 1, 0, 0, 0, 1111, 6345, 1, 0, 0, 0, 1113, 6352, 1, 0, 0, 0, 1115, 6357, 1, 0, 0, 0, 1117, 6362, 1, 0, 0, 0, 1119, 6371, 1, 0, 0, 0, 1121, 6380, 1, 0, 0, 0, 1123, 6385, 1, 0, 0, 0, 1125, 6392, 1, 0, 0, 0, 1127, 6398, 1, 0, 0, 0, 1129, 6407, 1, 0, 0, 0, 1131, 6421, 1, 0, 0, 0, 1133, 6434, 1, 0, 0, 0, 1135, 6438, 1, 0, 0, 0, 1137, 6446, 1, 0, 0, 0, 1139, 6455, 1, 0, 0, 0, 1141, 6468, 1, 0, 0, 0, 1143, 6477, 1, 0, 0, 0, 1145, 6488, 1, 0, 0, 0, 1147, 6493, 1, 0, 0, 0, 1149, 6500, 1, 0, 0, 0, 1151, 6506, 1, 0, 0, 0, 1153, 6512, 1, 0, 0, 0, 1155, 6522, 1, 0, 0, 0, 1157, 6529, 1, 0, 0, 0, 1159, 6540, 1, 0, 0, 0, 1161, 6551, 1, 0, 0, 0, 1163, 6563, 1, 0, 0, 0, 1165, 6569, 1, 0, 0, 0, 1167, 6576, 1, 0, 0, 0, 1169, 6584, 1, 0, 0, 0, 1171, 6591, 1, 0, 0, 0, 1173, 6601, 1, 0, 0, 0, 1175, 6607, 1, 0, 0, 0, 1177, 6623, 1, 0, 0, 0, 1179, 6631, 1, 0, 0, 0, 1181, 6643, 1, 0, 0, 0, 1183, 6656, 1, 0, 0, 0, 1185, 6666, 1, 0, 0, 0, 1187, 6670, 1, 0, 0, 0, 1189, 6680, 1, 0, 0, 0, 1191, 6686, 1, 0, 0, 0, 1193, 6693, 1, 0, 0, 0, 1195, 6705, 1, 0, 0, 0, 1197, 6711, 1, 0, 0, 0, 1199, 6722, 1, 0, 0, 0, 1201, 6734, 1, 0, 0, 0, 1203, 6745, 1, 0, 0, 0, 1205, 6750, 1, 0, 0, 0, 1207, 6759, 1, 0, 0, 0, 1209, 6769, 1, 0, 0, 0, 1211, 6779, 1, 0, 0, 0, 1213, 6784, 1, 0, 0, 0, 1215, 6789, 1, 0, 0, 0, 1217, 6794, 1, 0, 0, 0, 1219, 6799, 1, 0, 0, 0, 1221, 6809, 1, 0, 0, 0, 1223, 6823, 1, 0, 0, 0, 1225, 6839, 1, 0, 0, 0, 1227, 6846, 1, 0, 0, 0, 1229, 6849, 1, 0, 0, 0, 1231, 6855, 1, 0, 0, 0, 1233, 6871, 1, 0, 0, 0, 1235, 6880, 1, 0, 0, 0, 1237, 6892, 1, 0, 0, 0, 1239, 6911, 1, 0, 0, 0, 1241, 6934, 1, 0, 0, 0, 1243, 6959, 1, 0, 0, 0, 1245, 6969, 1, 0, 0, 0, 1247, 6980, 1, 0, 0, 0, 1249, 6990, 1, 0, 0, 0, 1251, 7002, 1, 0, 0, 0, 1253, 7008, 1, 0, 0, 0, 1255, 7016, 1, 0, 0, 0, 1257, 7032, 1, 0, 0, 0, 1259, 7045, 1, 0, 0, 0, 1261, 7060, 1, 0, 0, 0, 1263, 7065, 1, 0, 0, 0, 1265, 7070, 1, 0, 0, 0, 1267, 7079, 1, 0, 0, 0, 1269, 7087, 1, 0, 0, 0, 1271, 7092, 1, 0, 0, 0, 1273, 7100, 1, 0, 0, 0, 1275, 7110, 1, 0, 0, 0, 1277, 7122, 1, 0, 0, 0, 1279, 7128, 1, 0, 0, 0, 1281, 7140, 1, 0, 0, 0, 1283, 7146, 1, 0, 0, 0, 1285, 7153, 1, 0, 0, 0, 1287, 7161, 1, 0, 0, 0, 1289, 7170, 1, 0, 0, 0, 1291, 7178, 1, 0, 0, 0, 1293, 7185, 1, 0, 0, 0, 1295, 7191, 1, 0, 0, 0, 1297, 7198, 1, 0, 0, 0, 1299, 7204, 1, 0, 0, 0, 1301, 7210, 1, 0, 0, 0, 1303, 7215, 1, 0, 0, 0, 1305, 7241, 1, 0, 0, 0, 1307, 7264, 1, 0, 0, 0, 1309, 7287, 1, 0, 0, 0, 1311, 7312, 1, 0, 0, 0, 1313, 7318, 1, 0, 0, 0, 1315, 7325, 1, 0, 0, 0, 1317, 7331, 1, 0, 0, 0, 1319, 7340, 1, 0, 0, 0, 1321, 7350, 1, 0, 0, 0, 1323, 7356, 1, 0, 0, 0, 1325, 7363, 1, 0, 0, 0, 1327, 7371, 1, 0, 0, 0, 1329, 7380, 1, 0, 0, 0, 1331, 7388, 1, 0, 0, 0, 1333, 7397, 1, 0, 0, 0, 1335, 7406, 1, 0, 0, 0, 1337, 7414, 1, 0, 0, 0, 1339, 7422, 1, 0, 0, 0, 1341, 7427, 1, 0, 0, 0, 1343, 7436, 1, 0, 0, 0, 1345, 7441, 1, 0, 0, 0, 1347, 7450, 1, 0, 0, 0, 1349, 7456, 1, 0, 0, 0, 1351, 7469, 1, 0, 0, 0, 1353, 7476, 1, 0, 0, 0, 1355, 7481, 1, 0, 0, 0, 1357, 7488, 1, 0, 0, 0, 1359, 7496, 1, 0, 0, 0, 1361, 7501, 1, 0, 0, 0, 1363, 7507, 1, 0, 0, 0, 1365, 7512, 1, 0, 0, 0, 1367, 7517, 1, 0, 0, 0, 1369, 7521, 1, 0, 0, 0, 1371, 7526, 1, 0, 0, 0, 1373, 7536, 1, 0, 0, 0, 1375, 7548, 1, 0, 0, 0, 1377, 7559, 1, 0, 0, 0, 1379, 7572, 1, 0, 0, 0, 1381, 7580, 1, 0, 0, 0, 1383, 7590, 1, 0, 0, 0, 1385, 7596, 1, 0, 0, 0, 1387, 7604, 1, 0, 0, 0, 1389, 7616, 1, 0, 0, 0, 1391, 7630, 1, 0, 0, 0, 1393, 7640, 1, 0, 0, 0, 1395, 7652, 1, 0, 0, 0, 1397, 7658, 1, 0, 0, 0, 1399, 7664, 1, 0, 0, 0, 1401, 7671, 1, 0, 0, 0, 1403, 7681, 1, 0, 0, 0, 1405, 7697, 1, 0, 0, 0, 1407, 7709, 1, 0, 0, 0, 1409, 7720, 1, 0, 0, 0, 1411, 7733, 1, 0, 0, 0, 1413, 7742, 1, 0, 0, 0, 1415, 7749, 1, 0, 0, 0, 1417, 7758, 1, 0, 0, 0, 1419, 7765, 1, 0, 0, 0, 1421, 7773, 1, 0, 0, 0, 1423, 7784, 1, 0, 0, 0, 1425, 7801, 1, 0, 0, 0, 1427, 7811, 1, 0, 0, 0, 1429, 7818, 1, 0, 0, 0, 1431, 7827, 1, 0, 0, 0, 1433, 7840, 1, 0, 0, 0, 1435, 7845, 1, 0, 0, 0, 1437, 7852, 1, 0, 0, 0, 1439, 7861, 1, 0, 0, 0, 1441, 7864, 1, 0, 0, 0, 1443, 7871, 1, 0, 0, 0, 1445, 7882, 1, 0, 0, 0, 1447, 7891, 1, 0, 0, 0, 1449, 7900, 1, 0, 0, 0, 1451, 7908, 1, 0, 0, 0, 1453, 7926, 1, 0, 0, 0, 1455, 7938, 1, 0, 0, 0, 1457, 7944, 1, 0, 0, 0, 1459, 7952, 1, 0, 0, 0, 1461, 7959, 1, 0, 0, 0, 1463, 7965, 1, 0, 0, 0, 1465, 7970, 1, 0, 0, 0, 1467, 7975, 1, 0, 0, 0, 1469, 7982, 1, 0, 0, 0, 1471, 7986, 1, 0, 0, 0, 1473, 7991, 1, 0, 0, 0, 1475, 8004, 1, 0, 0, 0, 1477, 8011, 1, 0, 0, 0, 1479, 8024, 1, 0, 0, 0, 1481, 8032, 1, 0, 0, 0, 1483, 8041, 1, 0, 0, 0, 1485, 8052, 1, 0, 0, 0, 1487, 8060, 1, 0, 0, 0, 1489, 8067, 1, 0, 0, 0, 1491, 8074, 1, 0, 0, 0, 1493, 8081, 1, 0, 0, 0, 1495, 8088, 1, 0, 0, 0, 1497, 8094, 1, 0, 0, 0, 1499, 8102, 1, 0, 0, 0, 1501, 8112, 1, 0, 0, 0, 1503, 8124, 1, 0, 0, 0, 1505, 8129, 1, 0, 0, 0, 1507, 8133, 1, 0, 0, 0, 1509, 8139, 1, 0, 0, 0, 1511, 8157, 1, 0, 0, 0, 1513, 8162, 1, 0, 0, 0, 1515, 8169, 1, 0, 0, 0, 1517, 8176, 1, 0, 0, 0, 1519, 8183, 1, 0, 0, 0, 1521, 8188, 1, 0, 0, 0, 1523, 8193, 1, 0, 0, 0, 1525, 8198, 1, 0, 0, 0, 1527, 8203, 1, 0, 0, 0, 1529, 8208, 1, 0, 0, 0, 1531, 8214, 1, 0, 0, 0, 1533, 8219, 1, 0, 0, 0, 1535, 8224, 1, 0, 0, 0, 1537, 8232, 1, 0, 0, 0, 1539, 8241, 1, 0, 0, 0, 1541, 8247, 1, 0, 0, 0, 1543, 8254, 1, 0, 0, 0, 1545, 8260, 1, 0, 0, 0, 1547, 8268, 1, 0, 0, 0, 1549, 8276, 1, 0, 0, 0, 1551, 8283, 1, 0, 0, 0, 1553, 8291, 1, 0, 0, 0, 1555, 8299, 1, 0, 0, 0, 1557, 8307, 1, 0, 0, 0, 1559, 8319, 1, 0, 0, 0, 1561, 8326, 1, 0, 0, 0, 1563, 8331, 1, 0, 0, 0, 1565, 8343, 1, 0, 0, 0, 1567, 8350, 1, 0, 0, 0, 1569, 8358, 1, 0, 0, 0, 1571, 8367, 1, 0, 0, 0, 1573, 8381, 1, 0, 0, 0, 1575, 8386, 1, 0, 0, 0, 1577, 8393, 1, 0, 0, 0, 1579, 8397, 1, 0, 0, 0, 1581, 8399, 1, 0, 0, 0, 1583, 8401, 1, 0, 0, 0, 1585, 8404, 1, 0, 0, 0, 1587, 8406, 1, 0, 0, 0, 1589, 8409, 1, 0, 0, 0, 1591, 8411, 1, 0, 0, 0, 1593, 8413, 1, 0, 0, 0, 1595, 8415, 1, 0, 0, 0, 1597, 8417, 1, 0, 0, 0, 1599, 8419, 1, 0, 0, 0, 1601, 8429, 1, 0, 0, 0, 1603, 8433, 1, 0, 0, 0, 1605, 8461, 1, 0, 0, 0, 1607, 8476, 1, 0, 0, 0, 1609, 8479, 1, 0, 0, 0, 1611, 8481, 1, 0, 0, 0, 1613, 8483, 1, 0, 0, 0, 1615, 8485, 1, 0, 0, 0, 1617, 8492, 1, 0, 0, 0, 1619, 8498, 1, 0, 0, 0, 1621, 8505, 1, 0, 0, 0, 1623, 8507, 1, 0, 0, 0, 1625, 8510, 1, 0, 0, 0, 1627, 8513, 1, 0, 0, 0, 1629, 8516, 1, 0, 0, 0, 1631, 8519, 1, 0, 0, 0, 1633, 8521, 1, 0, 0, 0, 1635, 8523, 1, 0, 0, 0, 1637, 8526, 1, 0, 0, 0, 1639, 8529, 1, 0, 0, 0, 1641, 8531, 1, 0, 0, 0, 1643, 8533, 1, 0, 0, 0, 1645, 8536, 1, 0, 0, 0, 1647, 8538, 1, 0, 0, 0, 1649, 8541, 1, 0, 0, 0, 1651, 8544, 1, 0, 0, 0, 1653, 8546, 1, 0, 0, 0, 1655, 8549, 1, 0, 0, 0, 1657, 8552, 1, 0, 0, 0, 1659, 8556, 1, 0, 0, 0, 1661, 8559, 1, 0, 0, 0, 1663, 8562, 1, 0, 0, 0, 1665, 8566, 1, 0, 0, 0, 1667, 8570, 1, 0, 0, 0, 1669, 8572, 1, 0, 0, 0, 1671, 8575, 1, 0, 0, 0, 1673, 8578, 1, 0, 0, 0, 1675, 8581, 1, 0, 0, 0, 1677, 8584, 1, 0, 0, 0, 1679, 8588, 1, 0, 0, 0, 1681, 8591, 1, 0, 0, 0, 1683, 8595, 1, 0, 0, 0, 1685, 8599, 1, 0, 0, 0, 1687, 8601, 1, 0, 0, 0, 1689, 8603, 1, 0, 0, 0, 1691, 8605, 1, 0, 0, 0, 1693, 8608, 1, 0, 0, 0, 1695, 8612, 1, 0, 0, 0, 1697, 8615, 1, 0, 0, 0, 1699, 8617, 1, 0, 0, 0, 1701, 8619, 1, 0, 0, 0, 1703, 8622, 1, 0, 0, 0, 1705, 8625, 1, 0, 0, 0, 1707, 8628, 1, 0, 0, 0, 1709, 8631, 1, 0, 0, 0, 1711, 8633, 1, 0, 0, 0, 1713, 8635, 1, 0, 0, 0, 1715, 8638, 1, 0, 0, 0, 1717, 8643, 1, 0, 0, 0, 1719, 8647, 1, 0, 0, 0, 1721, 8652, 1, 0, 0, 0, 1723, 8656, 1, 0, 0, 0, 1725, 8659, 1, 0, 0, 0, 1727, 8662, 1, 0, 0, 0, 1729, 1731, 7, 0, 0, 0, 1730, 1729, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1730, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1735, 6, 0, 0, 0, 1735, 2, 1, 0, 0, 0, 1736, 1737, 5, 47, 0, 0, 1737, 1738, 5, 42, 0, 0, 1738, 1742, 1, 0, 0, 0, 1739, 1741, 9, 0, 0, 0, 1740, 1739, 1, 0, 0, 0, 1741, 1744, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1742, 1740, 1, 0, 0, 0, 1743, 1745, 1, 0, 0, 0, 1744, 1742, 1, 0, 0, 0, 1745, 1746, 5, 42, 0, 0, 1746, 1747, 5, 47, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 6, 1, 1, 0, 1749, 4, 1, 0, 0, 0, 1750, 1751, 5, 45, 0, 0, 1751, 1752, 5, 45, 0, 0, 1752, 1756, 1, 0, 0, 0, 1753, 1755, 9, 0, 0, 0, 1754, 1753, 1, 0, 0, 0, 1755, 1758, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1756, 1754, 1, 0, 0, 0, 1757, 1759, 1, 0, 0, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1760, 5, 10, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 6, 2, 1, 0, 1762, 6, 1, 0, 0, 0, 1763, 1764, 7, 1, 0, 0, 1764, 8, 1, 0, 0, 0, 1765, 1766, 7, 2, 0, 0, 1766, 10, 1, 0, 0, 0, 1767, 1768, 7, 3, 0, 0, 1768, 12, 1, 0, 0, 0, 1769, 1770, 7, 4, 0, 0, 1770, 14, 1, 0, 0, 0, 1771, 1772, 7, 5, 0, 0, 1772, 16, 1, 0, 0, 0, 1773, 1774, 7, 6, 0, 0, 1774, 18, 1, 0, 0, 0, 1775, 1776, 7, 7, 0, 0, 1776, 20, 1, 0, 0, 0, 1777, 1778, 7, 8, 0, 0, 1778, 22, 1, 0, 0, 0, 1779, 1780, 7, 9, 0, 0, 1780, 24, 1, 0, 0, 0, 1781, 1782, 7, 10, 0, 0, 1782, 26, 1, 0, 0, 0, 1783, 1784, 7, 11, 0, 0, 1784, 28, 1, 0, 0, 0, 1785, 1786, 7, 12, 0, 0, 1786, 30, 1, 0, 0, 0, 1787, 1788, 7, 13, 0, 0, 1788, 32, 1, 0, 0, 0, 1789, 1790, 7, 14, 0, 0, 1790, 34, 1, 0, 0, 0, 1791, 1792, 7, 15, 0, 0, 1792, 36, 1, 0, 0, 0, 1793, 1794, 7, 16, 0, 0, 1794, 38, 1, 0, 0, 0, 1795, 1796, 7, 17, 0, 0, 1796, 40, 1, 0, 0, 0, 1797, 1798, 7, 18, 0, 0, 1798, 42, 1, 0, 0, 0, 1799, 1800, 7, 19, 0, 0, 1800, 44, 1, 0, 0, 0, 1801, 1802, 7, 20, 0, 0, 1802, 46, 1, 0, 0, 0, 1803, 1804, 7, 21, 0, 0, 1804, 48, 1, 0, 0, 0, 1805, 1806, 7, 22, 0, 0, 1806, 50, 1, 0, 0, 0, 1807, 1808, 7, 23, 0, 0, 1808, 52, 1, 0, 0, 0, 1809, 1810, 7, 24, 0, 0, 1810, 54, 1, 0, 0, 0, 1811, 1812, 7, 25, 0, 0, 1812, 56, 1, 0, 0, 0, 1813, 1814, 7, 26, 0, 0, 1814, 58, 1, 0, 0, 0, 1815, 1816, 7, 27, 0, 0, 1816, 60, 1, 0, 0, 0, 1817, 1818, 7, 28, 0, 0, 1818, 62, 1, 0, 0, 0, 1819, 1827, 5, 34, 0, 0, 1820, 1821, 5, 92, 0, 0, 1821, 1826, 9, 0, 0, 0, 1822, 1823, 5, 34, 0, 0, 1823, 1826, 5, 34, 0, 0, 1824, 1826, 8, 29, 0, 0, 1825, 1820, 1, 0, 0, 0, 1825, 1822, 1, 0, 0, 0, 1825, 1824, 1, 0, 0, 0, 1826, 1829, 1, 0, 0, 0, 1827, 1825, 1, 0, 0, 0, 1827, 1828, 1, 0, 0, 0, 1828, 1830, 1, 0, 0, 0, 1829, 1827, 1, 0, 0, 0, 1830, 1831, 5, 34, 0, 0, 1831, 64, 1, 0, 0, 0, 1832, 1840, 5, 39, 0, 0, 1833, 1834, 5, 92, 0, 0, 1834, 1839, 9, 0, 0, 0, 1835, 1836, 5, 39, 0, 0, 1836, 1839, 5, 39, 0, 0, 1837, 1839, 8, 30, 0, 0, 1838, 1833, 1, 0, 0, 0, 1838, 1835, 1, 0, 0, 0, 1838, 1837, 1, 0, 0, 0, 1839, 1842, 1, 0, 0, 0, 1840, 1838, 1, 0, 0, 0, 1840, 1841, 1, 0, 0, 0, 1841, 1843, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1843, 1844, 5, 39, 0, 0, 1844, 66, 1, 0, 0, 0, 1845, 1853, 5, 96, 0, 0, 1846, 1847, 5, 92, 0, 0, 1847, 1852, 9, 0, 0, 0, 1848, 1849, 5, 96, 0, 0, 1849, 1852, 5, 96, 0, 0, 1850, 1852, 8, 31, 0, 0, 1851, 1846, 1, 0, 0, 0, 1851, 1848, 1, 0, 0, 0, 1851, 1850, 1, 0, 0, 0, 1852, 1855, 1, 0, 0, 0, 1853, 1851, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1856, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1856, 1857, 5, 96, 0, 0, 1857, 68, 1, 0, 0, 0, 1858, 1859, 3, 7, 3, 0, 1859, 70, 1, 0, 0, 0, 1860, 1861, 3, 7, 3, 0, 1861, 1862, 3, 9, 4, 0, 1862, 1863, 3, 35, 17, 0, 1863, 1864, 3, 41, 20, 0, 1864, 1865, 3, 45, 22, 0, 1865, 72, 1, 0, 0, 0, 1866, 1867, 3, 7, 3, 0, 1867, 1868, 3, 9, 4, 0, 1868, 1869, 3, 43, 21, 0, 1869, 74, 1, 0, 0, 0, 1870, 1871, 3, 7, 3, 0, 1871, 1872, 3, 9, 4, 0, 1872, 1873, 3, 43, 21, 0, 1873, 1874, 3, 35, 17, 0, 1874, 1875, 3, 29, 14, 0, 1875, 1876, 3, 47, 23, 0, 1876, 1877, 3, 45, 22, 0, 1877, 1878, 3, 15, 7, 0, 1878, 76, 1, 0, 0, 0, 1879, 1880, 3, 7, 3, 0, 1880, 1881, 3, 11, 5, 0, 1881, 1882, 3, 11, 5, 0, 1882, 1883, 3, 15, 7, 0, 1883, 1884, 3, 43, 21, 0, 1884, 1885, 3, 43, 21, 0, 1885, 78, 1, 0, 0, 0, 1886, 1887, 3, 7, 3, 0, 1887, 1888, 3, 11, 5, 0, 1888, 1889, 3, 45, 22, 0, 1889, 1890, 3, 23, 11, 0, 1890, 1891, 3, 35, 17, 0, 1891, 1892, 3, 33, 16, 0, 1892, 80, 1, 0, 0, 0, 1893, 1894, 3, 7, 3, 0, 1894, 1895, 3, 13, 6, 0, 1895, 1896, 3, 7, 3, 0, 1896, 82, 1, 0, 0, 0, 1897, 1898, 3, 7, 3, 0, 1898, 1899, 3, 13, 6, 0, 1899, 1900, 3, 13, 6, 0, 1900, 84, 1, 0, 0, 0, 1901, 1902, 3, 7, 3, 0, 1902, 1903, 3, 13, 6, 0, 1903, 1904, 3, 31, 15, 0, 1904, 1905, 3, 23, 11, 0, 1905, 1906, 3, 33, 16, 0, 1906, 86, 1, 0, 0, 0, 1907, 1908, 3, 7, 3, 0, 1908, 1909, 3, 17, 8, 0, 1909, 1910, 3, 45, 22, 0, 1910, 1911, 3, 15, 7, 0, 1911, 1912, 3, 41, 20, 0, 1912, 88, 1, 0, 0, 0, 1913, 1914, 3, 7, 3, 0, 1914, 1915, 3, 19, 9, 0, 1915, 1916, 3, 19, 9, 0, 1916, 1917, 3, 41, 20, 0, 1917, 1918, 3, 15, 7, 0, 1918, 1919, 3, 19, 9, 0, 1919, 1920, 3, 7, 3, 0, 1920, 1921, 3, 45, 22, 0, 1921, 1922, 3, 15, 7, 0, 1922, 90, 1, 0, 0, 0, 1923, 1924, 3, 7, 3, 0, 1924, 1925, 3, 29, 14, 0, 1925, 1926, 3, 23, 11, 0, 1926, 1927, 3, 7, 3, 0, 1927, 1928, 3, 43, 21, 0, 1928, 92, 1, 0, 0, 0, 1929, 1930, 3, 7, 3, 0, 1930, 1931, 3, 29, 14, 0, 1931, 1932, 3, 29, 14, 0, 1932, 94, 1, 0, 0, 0, 1933, 1934, 3, 7, 3, 0, 1934, 1935, 3, 29, 14, 0, 1935, 1936, 3, 29, 14, 0, 1936, 1937, 3, 35, 17, 0, 1937, 1938, 3, 11, 5, 0, 1938, 1939, 3, 7, 3, 0, 1939, 1940, 3, 45, 22, 0, 1940, 1941, 3, 15, 7, 0, 1941, 96, 1, 0, 0, 0, 1942, 1943, 3, 7, 3, 0, 1943, 1944, 3, 29, 14, 0, 1944, 1945, 3, 43, 21, 0, 1945, 1946, 3, 35, 17, 0, 1946, 98, 1, 0, 0, 0, 1947, 1948, 3, 7, 3, 0, 1948, 1949, 3, 29, 14, 0, 1949, 1950, 3, 45, 22, 0, 1950, 1951, 3, 15, 7, 0, 1951, 1952, 3, 41, 20, 0, 1952, 100, 1, 0, 0, 0, 1953, 1954, 3, 7, 3, 0, 1954, 1955, 3, 29, 14, 0, 1955, 1956, 3, 51, 25, 0, 1956, 1957, 3, 7, 3, 0, 1957, 1958, 3, 55, 27, 0, 1958, 1959, 3, 43, 21, 0, 1959, 102, 1, 0, 0, 0, 1960, 1961, 3, 7, 3, 0, 1961, 1962, 3, 33, 16, 0, 1962, 1963, 3, 7, 3, 0, 1963, 1964, 3, 29, 14, 0, 1964, 1965, 3, 55, 27, 0, 1965, 1966, 3, 43, 21, 0, 1966, 1967, 3, 15, 7, 0, 1967, 104, 1, 0, 0, 0, 1968, 1969, 3, 7, 3, 0, 1969, 1970, 3, 33, 16, 0, 1970, 1971, 3, 7, 3, 0, 1971, 1972, 3, 29, 14, 0, 1972, 1973, 3, 55, 27, 0, 1973, 1974, 3, 57, 28, 0, 1974, 1975, 3, 15, 7, 0, 1975, 106, 1, 0, 0, 0, 1976, 1977, 3, 7, 3, 0, 1977, 1978, 3, 33, 16, 0, 1978, 1979, 3, 13, 6, 0, 1979, 108, 1, 0, 0, 0, 1980, 1981, 3, 7, 3, 0, 1981, 1982, 3, 33, 16, 0, 1982, 1983, 3, 55, 27, 0, 1983, 110, 1, 0, 0, 0, 1984, 1985, 3, 7, 3, 0, 1985, 1986, 3, 41, 20, 0, 1986, 1987, 3, 15, 7, 0, 1987, 112, 1, 0, 0, 0, 1988, 1989, 3, 7, 3, 0, 1989, 1990, 3, 41, 20, 0, 1990, 1991, 3, 41, 20, 0, 1991, 1992, 3, 7, 3, 0, 1992, 1993, 3, 55, 27, 0, 1993, 114, 1, 0, 0, 0, 1994, 1995, 3, 7, 3, 0, 1995, 1996, 3, 43, 21, 0, 1996, 116, 1, 0, 0, 0, 1997, 1998, 3, 7, 3, 0, 1998, 1999, 3, 43, 21, 0, 1999, 2000, 3, 11, 5, 0, 2000, 118, 1, 0, 0, 0, 2001, 2002, 3, 7, 3, 0, 2002, 2003, 3, 43, 21, 0, 2003, 2004, 3, 15, 7, 0, 2004, 2005, 3, 33, 16, 0, 2005, 2006, 3, 43, 21, 0, 2006, 2007, 3, 23, 11, 0, 2007, 2008, 3, 45, 22, 0, 2008, 2009, 3, 23, 11, 0, 2009, 2010, 3, 49, 24, 0, 2010, 2011, 3, 15, 7, 0, 2011, 120, 1, 0, 0, 0, 2012, 2013, 3, 7, 3, 0, 2013, 2014, 3, 43, 21, 0, 2014, 2015, 3, 43, 21, 0, 2015, 2016, 3, 15, 7, 0, 2016, 2017, 3, 41, 20, 0, 2017, 2018, 3, 45, 22, 0, 2018, 2019, 3, 23, 11, 0, 2019, 2020, 3, 35, 17, 0, 2020, 2021, 3, 33, 16, 0, 2021, 122, 1, 0, 0, 0, 2022, 2023, 3, 7, 3, 0, 2023, 2024, 3, 43, 21, 0, 2024, 2025, 3, 43, 21, 0, 2025, 2026, 3, 23, 11, 0, 2026, 2027, 3, 19, 9, 0, 2027, 2028, 3, 33, 16, 0, 2028, 2029, 3, 31, 15, 0, 2029, 2030, 3, 15, 7, 0, 2030, 2031, 3, 33, 16, 0, 2031, 2032, 3, 45, 22, 0, 2032, 124, 1, 0, 0, 0, 2033, 2034, 3, 7, 3, 0, 2034, 2035, 3, 43, 21, 0, 2035, 2036, 3, 55, 27, 0, 2036, 2037, 3, 31, 15, 0, 2037, 2038, 3, 31, 15, 0, 2038, 2039, 3, 15, 7, 0, 2039, 2040, 3, 45, 22, 0, 2040, 2041, 3, 41, 20, 0, 2041, 2042, 3, 23, 11, 0, 2042, 2043, 3, 11, 5, 0, 2043, 126, 1, 0, 0, 0, 2044, 2045, 3, 7, 3, 0, 2045, 2046, 3, 45, 22, 0, 2046, 128, 1, 0, 0, 0, 2047, 2048, 3, 7, 3, 0, 2048, 2049, 3, 45, 22, 0, 2049, 2050, 3, 35, 17, 0, 2050, 2051, 3, 31, 15, 0, 2051, 2052, 3, 23, 11, 0, 2052, 2053, 3, 11, 5, 0, 2053, 130, 1, 0, 0, 0, 2054, 2055, 3, 7, 3, 0, 2055, 2056, 3, 45, 22, 0, 2056, 2057, 3, 45, 22, 0, 2057, 2058, 3, 41, 20, 0, 2058, 2059, 3, 23, 11, 0, 2059, 2060, 3, 9, 4, 0, 2060, 2061, 3, 47, 23, 0, 2061, 2062, 3, 45, 22, 0, 2062, 2063, 3, 15, 7, 0, 2063, 132, 1, 0, 0, 0, 2064, 2065, 3, 7, 3, 0, 2065, 2066, 3, 45, 22, 0, 2066, 2067, 3, 45, 22, 0, 2067, 2068, 3, 41, 20, 0, 2068, 2069, 3, 23, 11, 0, 2069, 2070, 3, 9, 4, 0, 2070, 2071, 3, 47, 23, 0, 2071, 2072, 3, 45, 22, 0, 2072, 2073, 3, 15, 7, 0, 2073, 2074, 3, 43, 21, 0, 2074, 134, 1, 0, 0, 0, 2075, 2076, 3, 7, 3, 0, 2076, 2077, 3, 47, 23, 0, 2077, 2078, 3, 45, 22, 0, 2078, 2079, 3, 21, 10, 0, 2079, 2080, 3, 35, 17, 0, 2080, 2081, 3, 41, 20, 0, 2081, 2082, 3, 23, 11, 0, 2082, 2083, 3, 57, 28, 0, 2083, 2084, 3, 7, 3, 0, 2084, 2085, 3, 45, 22, 0, 2085, 2086, 3, 23, 11, 0, 2086, 2087, 3, 35, 17, 0, 2087, 2088, 3, 33, 16, 0, 2088, 136, 1, 0, 0, 0, 2089, 2090, 3, 7, 3, 0, 2090, 2091, 3, 49, 24, 0, 2091, 2092, 3, 19, 9, 0, 2092, 138, 1, 0, 0, 0, 2093, 2094, 3, 9, 4, 0, 2094, 2095, 3, 7, 3, 0, 2095, 2096, 3, 11, 5, 0, 2096, 2097, 3, 27, 13, 0, 2097, 2098, 3, 51, 25, 0, 2098, 2099, 3, 7, 3, 0, 2099, 2100, 3, 41, 20, 0, 2100, 2101, 3, 13, 6, 0, 2101, 140, 1, 0, 0, 0, 2102, 2103, 3, 9, 4, 0, 2103, 2104, 3, 15, 7, 0, 2104, 2105, 3, 17, 8, 0, 2105, 2106, 3, 35, 17, 0, 2106, 2107, 3, 41, 20, 0, 2107, 2108, 3, 15, 7, 0, 2108, 142, 1, 0, 0, 0, 2109, 2110, 3, 9, 4, 0, 2110, 2111, 3, 15, 7, 0, 2111, 2112, 3, 19, 9, 0, 2112, 2113, 3, 23, 11, 0, 2113, 2114, 3, 33, 16, 0, 2114, 144, 1, 0, 0, 0, 2115, 2116, 3, 9, 4, 0, 2116, 2117, 3, 15, 7, 0, 2117, 2118, 3, 41, 20, 0, 2118, 2119, 3, 33, 16, 0, 2119, 2120, 3, 35, 17, 0, 2120, 2121, 3, 47, 23, 0, 2121, 2122, 3, 29, 14, 0, 2122, 2123, 3, 29, 14, 0, 2123, 2124, 3, 23, 11, 0, 2124, 146, 1, 0, 0, 0, 2125, 2126, 3, 9, 4, 0, 2126, 2127, 3, 15, 7, 0, 2127, 2128, 3, 45, 22, 0, 2128, 2129, 3, 51, 25, 0, 2129, 2130, 3, 15, 7, 0, 2130, 2131, 3, 15, 7, 0, 2131, 2132, 3, 33, 16, 0, 2132, 148, 1, 0, 0, 0, 2133, 2134, 3, 9, 4, 0, 2134, 2135, 3, 23, 11, 0, 2135, 2136, 3, 19, 9, 0, 2136, 2137, 3, 23, 11, 0, 2137, 2138, 3, 33, 16, 0, 2138, 2139, 3, 45, 22, 0, 2139, 150, 1, 0, 0, 0, 2140, 2141, 3, 9, 4, 0, 2141, 2142, 3, 23, 11, 0, 2142, 2143, 3, 33, 16, 0, 2143, 2144, 3, 7, 3, 0, 2144, 2145, 3, 41, 20, 0, 2145, 2146, 3, 55, 27, 0, 2146, 152, 1, 0, 0, 0, 2147, 2148, 3, 9, 4, 0, 2148, 2149, 3, 23, 11, 0, 2149, 2150, 3, 45, 22, 0, 2150, 154, 1, 0, 0, 0, 2151, 2152, 3, 9, 4, 0, 2152, 2153, 3, 23, 11, 0, 2153, 2154, 3, 45, 22, 0, 2154, 2155, 5, 95, 0, 0, 2155, 2156, 3, 29, 14, 0, 2156, 2157, 3, 15, 7, 0, 2157, 2158, 3, 33, 16, 0, 2158, 2159, 3, 19, 9, 0, 2159, 2160, 3, 45, 22, 0, 2160, 2161, 3, 21, 10, 0, 2161, 156, 1, 0, 0, 0, 2162, 2163, 3, 9, 4, 0, 2163, 2164, 3, 23, 11, 0, 2164, 2165, 3, 45, 22, 0, 2165, 2166, 3, 49, 24, 0, 2166, 2167, 3, 7, 3, 0, 2167, 2168, 3, 41, 20, 0, 2168, 158, 1, 0, 0, 0, 2169, 2170, 3, 9, 4, 0, 2170, 2171, 3, 29, 14, 0, 2171, 2172, 3, 35, 17, 0, 2172, 2173, 3, 9, 4, 0, 2173, 160, 1, 0, 0, 0, 2174, 2175, 3, 9, 4, 0, 2175, 2176, 3, 35, 17, 0, 2176, 2177, 3, 35, 17, 0, 2177, 2178, 3, 29, 14, 0, 2178, 2179, 3, 15, 7, 0, 2179, 2180, 3, 7, 3, 0, 2180, 2181, 3, 33, 16, 0, 2181, 162, 1, 0, 0, 0, 2182, 2183, 3, 9, 4, 0, 2183, 2184, 3, 35, 17, 0, 2184, 2185, 3, 45, 22, 0, 2185, 2186, 3, 21, 10, 0, 2186, 164, 1, 0, 0, 0, 2187, 2188, 3, 9, 4, 0, 2188, 2189, 3, 41, 20, 0, 2189, 2190, 3, 15, 7, 0, 2190, 2191, 3, 7, 3, 0, 2191, 2192, 3, 13, 6, 0, 2192, 2193, 3, 45, 22, 0, 2193, 2194, 3, 21, 10, 0, 2194, 166, 1, 0, 0, 0, 2195, 2196, 3, 9, 4, 0, 2196, 2197, 3, 47, 23, 0, 2197, 2198, 3, 17, 8, 0, 2198, 2199, 3, 17, 8, 0, 2199, 2200, 3, 15, 7, 0, 2200, 2201, 3, 41, 20, 0, 2201, 2202, 3, 43, 21, 0, 2202, 168, 1, 0, 0, 0, 2203, 2204, 3, 9, 4, 0, 2204, 2205, 3, 55, 27, 0, 2205, 170, 1, 0, 0, 0, 2206, 2207, 3, 11, 5, 0, 2207, 172, 1, 0, 0, 0, 2208, 2209, 3, 11, 5, 0, 2209, 2210, 3, 7, 3, 0, 2210, 2211, 3, 11, 5, 0, 2211, 2212, 3, 21, 10, 0, 2212, 2213, 3, 15, 7, 0, 2213, 174, 1, 0, 0, 0, 2214, 2215, 3, 11, 5, 0, 2215, 2216, 3, 7, 3, 0, 2216, 2217, 3, 29, 14, 0, 2217, 2218, 3, 29, 14, 0, 2218, 176, 1, 0, 0, 0, 2219, 2220, 3, 11, 5, 0, 2220, 2221, 3, 7, 3, 0, 2221, 2222, 3, 29, 14, 0, 2222, 2223, 3, 29, 14, 0, 2223, 2224, 3, 15, 7, 0, 2224, 2225, 3, 13, 6, 0, 2225, 178, 1, 0, 0, 0, 2226, 2227, 3, 11, 5, 0, 2227, 2228, 3, 7, 3, 0, 2228, 2229, 3, 41, 20, 0, 2229, 2230, 3, 13, 6, 0, 2230, 2231, 3, 23, 11, 0, 2231, 2232, 3, 33, 16, 0, 2232, 2233, 3, 7, 3, 0, 2233, 2234, 3, 29, 14, 0, 2234, 2235, 3, 23, 11, 0, 2235, 2236, 3, 45, 22, 0, 2236, 2237, 3, 55, 27, 0, 2237, 180, 1, 0, 0, 0, 2238, 2239, 3, 11, 5, 0, 2239, 2240, 3, 7, 3, 0, 2240, 2241, 3, 43, 21, 0, 2241, 2242, 3, 11, 5, 0, 2242, 2243, 3, 7, 3, 0, 2243, 2244, 3, 13, 6, 0, 2244, 2245, 3, 15, 7, 0, 2245, 182, 1, 0, 0, 0, 2246, 2247, 3, 11, 5, 0, 2247, 2248, 3, 7, 3, 0, 2248, 2249, 3, 43, 21, 0, 2249, 2250, 3, 11, 5, 0, 2250, 2251, 3, 7, 3, 0, 2251, 2252, 3, 13, 6, 0, 2252, 2253, 3, 15, 7, 0, 2253, 2254, 3, 13, 6, 0, 2254, 184, 1, 0, 0, 0, 2255, 2256, 3, 11, 5, 0, 2256, 2257, 3, 7, 3, 0, 2257, 2258, 3, 43, 21, 0, 2258, 2259, 3, 15, 7, 0, 2259, 186, 1, 0, 0, 0, 2260, 2261, 3, 11, 5, 0, 2261, 2262, 3, 7, 3, 0, 2262, 2263, 3, 43, 21, 0, 2263, 2264, 3, 45, 22, 0, 2264, 188, 1, 0, 0, 0, 2265, 2266, 3, 11, 5, 0, 2266, 2267, 3, 7, 3, 0, 2267, 2268, 3, 45, 22, 0, 2268, 2269, 3, 7, 3, 0, 2269, 2270, 3, 29, 14, 0, 2270, 2271, 3, 35, 17, 0, 2271, 2272, 3, 19, 9, 0, 2272, 190, 1, 0, 0, 0, 2273, 2274, 3, 11, 5, 0, 2274, 2275, 3, 7, 3, 0, 2275, 2276, 3, 45, 22, 0, 2276, 2277, 3, 7, 3, 0, 2277, 2278, 3, 29, 14, 0, 2278, 2279, 3, 35, 17, 0, 2279, 2280, 3, 19, 9, 0, 2280, 2281, 5, 95, 0, 0, 2281, 2282, 3, 33, 16, 0, 2282, 2283, 3, 7, 3, 0, 2283, 2284, 3, 31, 15, 0, 2284, 2285, 3, 15, 7, 0, 2285, 192, 1, 0, 0, 0, 2286, 2287, 3, 11, 5, 0, 2287, 2288, 3, 15, 7, 0, 2288, 2289, 3, 23, 11, 0, 2289, 2290, 3, 29, 14, 0, 2290, 194, 1, 0, 0, 0, 2291, 2292, 3, 11, 5, 0, 2292, 2293, 3, 15, 7, 0, 2293, 2294, 3, 23, 11, 0, 2294, 2295, 3, 29, 14, 0, 2295, 2296, 3, 23, 11, 0, 2296, 2297, 3, 33, 16, 0, 2297, 2298, 3, 19, 9, 0, 2298, 196, 1, 0, 0, 0, 2299, 2300, 3, 11, 5, 0, 2300, 2301, 3, 21, 10, 0, 2301, 2302, 3, 7, 3, 0, 2302, 2303, 3, 23, 11, 0, 2303, 2304, 3, 33, 16, 0, 2304, 198, 1, 0, 0, 0, 2305, 2306, 3, 11, 5, 0, 2306, 2307, 3, 21, 10, 0, 2307, 2308, 3, 7, 3, 0, 2308, 2309, 3, 41, 20, 0, 2309, 200, 1, 0, 0, 0, 2310, 2311, 3, 11, 5, 0, 2311, 2312, 3, 21, 10, 0, 2312, 2313, 3, 7, 3, 0, 2313, 2314, 3, 41, 20, 0, 2314, 2315, 5, 95, 0, 0, 2315, 2316, 3, 29, 14, 0, 2316, 2317, 3, 15, 7, 0, 2317, 2318, 3, 33, 16, 0, 2318, 2319, 3, 19, 9, 0, 2319, 2320, 3, 45, 22, 0, 2320, 2321, 3, 21, 10, 0, 2321, 202, 1, 0, 0, 0, 2322, 2323, 3, 11, 5, 0, 2323, 2324, 3, 21, 10, 0, 2324, 2325, 3, 7, 3, 0, 2325, 2326, 3, 41, 20, 0, 2326, 2327, 3, 7, 3, 0, 2327, 2328, 3, 11, 5, 0, 2328, 2329, 3, 45, 22, 0, 2329, 2330, 3, 15, 7, 0, 2330, 2331, 3, 41, 20, 0, 2331, 204, 1, 0, 0, 0, 2332, 2333, 3, 11, 5, 0, 2333, 2334, 3, 21, 10, 0, 2334, 2335, 3, 7, 3, 0, 2335, 2336, 3, 41, 20, 0, 2336, 2337, 3, 7, 3, 0, 2337, 2338, 3, 11, 5, 0, 2338, 2339, 3, 45, 22, 0, 2339, 2340, 3, 15, 7, 0, 2340, 2341, 3, 41, 20, 0, 2341, 2342, 5, 95, 0, 0, 2342, 2343, 3, 29, 14, 0, 2343, 2344, 3, 15, 7, 0, 2344, 2345, 3, 33, 16, 0, 2345, 2346, 3, 19, 9, 0, 2346, 2347, 3, 45, 22, 0, 2347, 2348, 3, 21, 10, 0, 2348, 206, 1, 0, 0, 0, 2349, 2350, 3, 11, 5, 0, 2350, 2351, 3, 21, 10, 0, 2351, 2352, 3, 7, 3, 0, 2352, 2353, 3, 41, 20, 0, 2353, 2354, 3, 7, 3, 0, 2354, 2355, 3, 11, 5, 0, 2355, 2356, 3, 45, 22, 0, 2356, 2357, 3, 15, 7, 0, 2357, 2358, 3, 41, 20, 0, 2358, 2359, 5, 95, 0, 0, 2359, 2360, 3, 43, 21, 0, 2360, 2361, 3, 15, 7, 0, 2361, 2362, 3, 45, 22, 0, 2362, 2363, 5, 95, 0, 0, 2363, 2364, 3, 11, 5, 0, 2364, 2365, 3, 7, 3, 0, 2365, 2366, 3, 45, 22, 0, 2366, 2367, 3, 7, 3, 0, 2367, 2368, 3, 29, 14, 0, 2368, 2369, 3, 35, 17, 0, 2369, 2370, 3, 19, 9, 0, 2370, 208, 1, 0, 0, 0, 2371, 2372, 3, 11, 5, 0, 2372, 2373, 3, 21, 10, 0, 2373, 2374, 3, 7, 3, 0, 2374, 2375, 3, 41, 20, 0, 2375, 2376, 3, 7, 3, 0, 2376, 2377, 3, 11, 5, 0, 2377, 2378, 3, 45, 22, 0, 2378, 2379, 3, 15, 7, 0, 2379, 2380, 3, 41, 20, 0, 2380, 2381, 5, 95, 0, 0, 2381, 2382, 3, 43, 21, 0, 2382, 2383, 3, 15, 7, 0, 2383, 2384, 3, 45, 22, 0, 2384, 2385, 5, 95, 0, 0, 2385, 2386, 3, 33, 16, 0, 2386, 2387, 3, 7, 3, 0, 2387, 2388, 3, 31, 15, 0, 2388, 2389, 3, 15, 7, 0, 2389, 210, 1, 0, 0, 0, 2390, 2391, 3, 11, 5, 0, 2391, 2392, 3, 21, 10, 0, 2392, 2393, 3, 7, 3, 0, 2393, 2394, 3, 41, 20, 0, 2394, 2395, 3, 7, 3, 0, 2395, 2396, 3, 11, 5, 0, 2396, 2397, 3, 45, 22, 0, 2397, 2398, 3, 15, 7, 0, 2398, 2399, 3, 41, 20, 0, 2399, 2400, 5, 95, 0, 0, 2400, 2401, 3, 43, 21, 0, 2401, 2402, 3, 15, 7, 0, 2402, 2403, 3, 45, 22, 0, 2403, 2404, 5, 95, 0, 0, 2404, 2405, 3, 43, 21, 0, 2405, 2406, 3, 11, 5, 0, 2406, 2407, 3, 21, 10, 0, 2407, 2408, 3, 15, 7, 0, 2408, 2409, 3, 31, 15, 0, 2409, 2410, 3, 7, 3, 0, 2410, 212, 1, 0, 0, 0, 2411, 2412, 3, 11, 5, 0, 2412, 2413, 3, 21, 10, 0, 2413, 2414, 3, 7, 3, 0, 2414, 2415, 3, 41, 20, 0, 2415, 2416, 3, 7, 3, 0, 2416, 2417, 3, 11, 5, 0, 2417, 2418, 3, 45, 22, 0, 2418, 2419, 3, 15, 7, 0, 2419, 2420, 3, 41, 20, 0, 2420, 2421, 3, 23, 11, 0, 2421, 2422, 3, 43, 21, 0, 2422, 2423, 3, 45, 22, 0, 2423, 2424, 3, 23, 11, 0, 2424, 2425, 3, 11, 5, 0, 2425, 2426, 3, 43, 21, 0, 2426, 214, 1, 0, 0, 0, 2427, 2428, 3, 11, 5, 0, 2428, 2429, 3, 21, 10, 0, 2429, 2430, 3, 7, 3, 0, 2430, 2431, 3, 41, 20, 0, 2431, 2432, 3, 7, 3, 0, 2432, 2433, 3, 11, 5, 0, 2433, 2434, 3, 45, 22, 0, 2434, 2435, 3, 15, 7, 0, 2435, 2436, 3, 41, 20, 0, 2436, 2437, 3, 43, 21, 0, 2437, 216, 1, 0, 0, 0, 2438, 2439, 3, 11, 5, 0, 2439, 2440, 3, 21, 10, 0, 2440, 2441, 3, 15, 7, 0, 2441, 2442, 3, 11, 5, 0, 2442, 2443, 3, 27, 13, 0, 2443, 218, 1, 0, 0, 0, 2444, 2445, 3, 11, 5, 0, 2445, 2446, 3, 21, 10, 0, 2446, 2447, 3, 15, 7, 0, 2447, 2448, 3, 11, 5, 0, 2448, 2449, 3, 27, 13, 0, 2449, 2450, 3, 15, 7, 0, 2450, 2451, 3, 13, 6, 0, 2451, 220, 1, 0, 0, 0, 2452, 2453, 3, 11, 5, 0, 2453, 2454, 3, 21, 10, 0, 2454, 2455, 3, 15, 7, 0, 2455, 2456, 3, 11, 5, 0, 2456, 2457, 3, 27, 13, 0, 2457, 2458, 3, 37, 18, 0, 2458, 2459, 3, 35, 17, 0, 2459, 2460, 3, 23, 11, 0, 2460, 2461, 3, 33, 16, 0, 2461, 2462, 3, 45, 22, 0, 2462, 222, 1, 0, 0, 0, 2463, 2464, 3, 11, 5, 0, 2464, 2465, 3, 29, 14, 0, 2465, 2466, 3, 7, 3, 0, 2466, 2467, 3, 43, 21, 0, 2467, 2468, 3, 43, 21, 0, 2468, 224, 1, 0, 0, 0, 2469, 2470, 3, 11, 5, 0, 2470, 2471, 3, 29, 14, 0, 2471, 2472, 3, 7, 3, 0, 2472, 2473, 3, 43, 21, 0, 2473, 2474, 3, 43, 21, 0, 2474, 2475, 5, 95, 0, 0, 2475, 2476, 3, 35, 17, 0, 2476, 2477, 3, 41, 20, 0, 2477, 2478, 3, 23, 11, 0, 2478, 2479, 3, 19, 9, 0, 2479, 2480, 3, 23, 11, 0, 2480, 2481, 3, 33, 16, 0, 2481, 226, 1, 0, 0, 0, 2482, 2483, 3, 11, 5, 0, 2483, 2484, 3, 29, 14, 0, 2484, 2485, 3, 35, 17, 0, 2485, 2486, 3, 9, 4, 0, 2486, 228, 1, 0, 0, 0, 2487, 2488, 3, 11, 5, 0, 2488, 2489, 3, 29, 14, 0, 2489, 2490, 3, 35, 17, 0, 2490, 2491, 3, 43, 21, 0, 2491, 2492, 3, 15, 7, 0, 2492, 230, 1, 0, 0, 0, 2493, 2494, 3, 11, 5, 0, 2494, 2495, 3, 29, 14, 0, 2495, 2496, 3, 47, 23, 0, 2496, 2497, 3, 43, 21, 0, 2497, 2498, 3, 45, 22, 0, 2498, 2499, 3, 15, 7, 0, 2499, 2500, 3, 41, 20, 0, 2500, 232, 1, 0, 0, 0, 2501, 2502, 3, 11, 5, 0, 2502, 2503, 3, 35, 17, 0, 2503, 2504, 3, 7, 3, 0, 2504, 2505, 3, 29, 14, 0, 2505, 2506, 3, 15, 7, 0, 2506, 2507, 3, 43, 21, 0, 2507, 2508, 3, 11, 5, 0, 2508, 2509, 3, 15, 7, 0, 2509, 234, 1, 0, 0, 0, 2510, 2511, 3, 11, 5, 0, 2511, 2512, 3, 35, 17, 0, 2512, 2513, 3, 9, 4, 0, 2513, 2514, 3, 35, 17, 0, 2514, 2515, 3, 29, 14, 0, 2515, 236, 1, 0, 0, 0, 2516, 2517, 3, 11, 5, 0, 2517, 2518, 3, 35, 17, 0, 2518, 2519, 3, 29, 14, 0, 2519, 2520, 3, 29, 14, 0, 2520, 2521, 3, 7, 3, 0, 2521, 2522, 3, 45, 22, 0, 2522, 2523, 3, 15, 7, 0, 2523, 238, 1, 0, 0, 0, 2524, 2525, 3, 11, 5, 0, 2525, 2526, 3, 35, 17, 0, 2526, 2527, 3, 29, 14, 0, 2527, 2528, 3, 29, 14, 0, 2528, 2529, 3, 7, 3, 0, 2529, 2530, 3, 45, 22, 0, 2530, 2531, 3, 23, 11, 0, 2531, 2532, 3, 35, 17, 0, 2532, 2533, 3, 33, 16, 0, 2533, 240, 1, 0, 0, 0, 2534, 2535, 3, 11, 5, 0, 2535, 2536, 3, 35, 17, 0, 2536, 2537, 3, 29, 14, 0, 2537, 2538, 3, 29, 14, 0, 2538, 2539, 3, 7, 3, 0, 2539, 2540, 3, 45, 22, 0, 2540, 2541, 3, 23, 11, 0, 2541, 2542, 3, 35, 17, 0, 2542, 2543, 3, 33, 16, 0, 2543, 2544, 5, 95, 0, 0, 2544, 2545, 3, 11, 5, 0, 2545, 2546, 3, 7, 3, 0, 2546, 2547, 3, 45, 22, 0, 2547, 2548, 3, 7, 3, 0, 2548, 2549, 3, 29, 14, 0, 2549, 2550, 3, 35, 17, 0, 2550, 2551, 3, 19, 9, 0, 2551, 242, 1, 0, 0, 0, 2552, 2553, 3, 11, 5, 0, 2553, 2554, 3, 35, 17, 0, 2554, 2555, 3, 29, 14, 0, 2555, 2556, 3, 29, 14, 0, 2556, 2557, 3, 7, 3, 0, 2557, 2558, 3, 45, 22, 0, 2558, 2559, 3, 23, 11, 0, 2559, 2560, 3, 35, 17, 0, 2560, 2561, 3, 33, 16, 0, 2561, 2562, 5, 95, 0, 0, 2562, 2563, 3, 33, 16, 0, 2563, 2564, 3, 7, 3, 0, 2564, 2565, 3, 31, 15, 0, 2565, 2566, 3, 15, 7, 0, 2566, 244, 1, 0, 0, 0, 2567, 2568, 3, 11, 5, 0, 2568, 2569, 3, 35, 17, 0, 2569, 2570, 3, 29, 14, 0, 2570, 2571, 3, 29, 14, 0, 2571, 2572, 3, 7, 3, 0, 2572, 2573, 3, 45, 22, 0, 2573, 2574, 3, 23, 11, 0, 2574, 2575, 3, 35, 17, 0, 2575, 2576, 3, 33, 16, 0, 2576, 2577, 5, 95, 0, 0, 2577, 2578, 3, 43, 21, 0, 2578, 2579, 3, 11, 5, 0, 2579, 2580, 3, 21, 10, 0, 2580, 2581, 3, 15, 7, 0, 2581, 2582, 3, 31, 15, 0, 2582, 2583, 3, 7, 3, 0, 2583, 246, 1, 0, 0, 0, 2584, 2585, 3, 11, 5, 0, 2585, 2586, 3, 35, 17, 0, 2586, 2587, 3, 29, 14, 0, 2587, 2588, 3, 29, 14, 0, 2588, 2589, 3, 15, 7, 0, 2589, 2590, 3, 11, 5, 0, 2590, 2591, 3, 45, 22, 0, 2591, 248, 1, 0, 0, 0, 2592, 2593, 3, 11, 5, 0, 2593, 2594, 3, 35, 17, 0, 2594, 2595, 3, 29, 14, 0, 2595, 2596, 3, 47, 23, 0, 2596, 2597, 3, 31, 15, 0, 2597, 2598, 3, 33, 16, 0, 2598, 250, 1, 0, 0, 0, 2599, 2600, 3, 11, 5, 0, 2600, 2601, 3, 35, 17, 0, 2601, 2602, 3, 29, 14, 0, 2602, 2603, 3, 47, 23, 0, 2603, 2604, 3, 31, 15, 0, 2604, 2605, 3, 33, 16, 0, 2605, 2606, 5, 95, 0, 0, 2606, 2607, 3, 33, 16, 0, 2607, 2608, 3, 7, 3, 0, 2608, 2609, 3, 31, 15, 0, 2609, 2610, 3, 15, 7, 0, 2610, 252, 1, 0, 0, 0, 2611, 2612, 3, 11, 5, 0, 2612, 2613, 3, 35, 17, 0, 2613, 2614, 3, 31, 15, 0, 2614, 2615, 3, 31, 15, 0, 2615, 2616, 3, 7, 3, 0, 2616, 2617, 3, 33, 16, 0, 2617, 2618, 3, 13, 6, 0, 2618, 2619, 5, 95, 0, 0, 2619, 2620, 3, 17, 8, 0, 2620, 2621, 3, 47, 23, 0, 2621, 2622, 3, 33, 16, 0, 2622, 2623, 3, 11, 5, 0, 2623, 2624, 3, 45, 22, 0, 2624, 2625, 3, 23, 11, 0, 2625, 2626, 3, 35, 17, 0, 2626, 2627, 3, 33, 16, 0, 2627, 254, 1, 0, 0, 0, 2628, 2629, 3, 11, 5, 0, 2629, 2630, 3, 35, 17, 0, 2630, 2631, 3, 31, 15, 0, 2631, 2632, 3, 31, 15, 0, 2632, 2633, 3, 7, 3, 0, 2633, 2634, 3, 33, 16, 0, 2634, 2635, 3, 13, 6, 0, 2635, 2636, 5, 95, 0, 0, 2636, 2637, 3, 17, 8, 0, 2637, 2638, 3, 47, 23, 0, 2638, 2639, 3, 33, 16, 0, 2639, 2640, 3, 11, 5, 0, 2640, 2641, 3, 45, 22, 0, 2641, 2642, 3, 23, 11, 0, 2642, 2643, 3, 35, 17, 0, 2643, 2644, 3, 33, 16, 0, 2644, 2645, 5, 95, 0, 0, 2645, 2646, 3, 11, 5, 0, 2646, 2647, 3, 35, 17, 0, 2647, 2648, 3, 13, 6, 0, 2648, 2649, 3, 15, 7, 0, 2649, 256, 1, 0, 0, 0, 2650, 2651, 3, 11, 5, 0, 2651, 2652, 3, 35, 17, 0, 2652, 2653, 3, 31, 15, 0, 2653, 2654, 3, 31, 15, 0, 2654, 2655, 3, 15, 7, 0, 2655, 2656, 3, 33, 16, 0, 2656, 2657, 3, 45, 22, 0, 2657, 258, 1, 0, 0, 0, 2658, 2659, 3, 11, 5, 0, 2659, 2660, 3, 35, 17, 0, 2660, 2661, 3, 31, 15, 0, 2661, 2662, 3, 31, 15, 0, 2662, 2663, 3, 23, 11, 0, 2663, 2664, 3, 45, 22, 0, 2664, 260, 1, 0, 0, 0, 2665, 2666, 3, 11, 5, 0, 2666, 2667, 3, 35, 17, 0, 2667, 2668, 3, 31, 15, 0, 2668, 2669, 3, 31, 15, 0, 2669, 2670, 3, 23, 11, 0, 2670, 2671, 3, 45, 22, 0, 2671, 2672, 3, 45, 22, 0, 2672, 2673, 3, 15, 7, 0, 2673, 2674, 3, 13, 6, 0, 2674, 262, 1, 0, 0, 0, 2675, 2676, 3, 11, 5, 0, 2676, 2677, 3, 35, 17, 0, 2677, 2678, 3, 31, 15, 0, 2678, 2679, 3, 37, 18, 0, 2679, 2680, 3, 29, 14, 0, 2680, 2681, 3, 15, 7, 0, 2681, 2682, 3, 45, 22, 0, 2682, 2683, 3, 23, 11, 0, 2683, 2684, 3, 35, 17, 0, 2684, 2685, 3, 33, 16, 0, 2685, 264, 1, 0, 0, 0, 2686, 2687, 3, 11, 5, 0, 2687, 2688, 3, 35, 17, 0, 2688, 2689, 3, 33, 16, 0, 2689, 2690, 3, 13, 6, 0, 2690, 2691, 3, 23, 11, 0, 2691, 2692, 3, 45, 22, 0, 2692, 2693, 3, 23, 11, 0, 2693, 2694, 3, 35, 17, 0, 2694, 2695, 3, 33, 16, 0, 2695, 266, 1, 0, 0, 0, 2696, 2697, 3, 11, 5, 0, 2697, 2698, 3, 35, 17, 0, 2698, 2699, 3, 33, 16, 0, 2699, 2700, 3, 13, 6, 0, 2700, 2701, 3, 23, 11, 0, 2701, 2702, 3, 45, 22, 0, 2702, 2703, 3, 23, 11, 0, 2703, 2704, 3, 35, 17, 0, 2704, 2705, 3, 33, 16, 0, 2705, 2706, 5, 95, 0, 0, 2706, 2707, 3, 33, 16, 0, 2707, 2708, 3, 47, 23, 0, 2708, 2709, 3, 31, 15, 0, 2709, 2710, 3, 9, 4, 0, 2710, 2711, 3, 15, 7, 0, 2711, 2712, 3, 41, 20, 0, 2712, 268, 1, 0, 0, 0, 2713, 2714, 3, 11, 5, 0, 2714, 2715, 3, 35, 17, 0, 2715, 2716, 3, 33, 16, 0, 2716, 2717, 3, 17, 8, 0, 2717, 2718, 3, 23, 11, 0, 2718, 2719, 3, 19, 9, 0, 2719, 2720, 3, 47, 23, 0, 2720, 2721, 3, 41, 20, 0, 2721, 2722, 3, 7, 3, 0, 2722, 2723, 3, 45, 22, 0, 2723, 2724, 3, 23, 11, 0, 2724, 2725, 3, 35, 17, 0, 2725, 2726, 3, 33, 16, 0, 2726, 270, 1, 0, 0, 0, 2727, 2728, 3, 11, 5, 0, 2728, 2729, 3, 35, 17, 0, 2729, 2730, 3, 33, 16, 0, 2730, 2731, 3, 17, 8, 0, 2731, 2732, 3, 29, 14, 0, 2732, 2733, 3, 23, 11, 0, 2733, 2734, 3, 11, 5, 0, 2734, 2735, 3, 45, 22, 0, 2735, 272, 1, 0, 0, 0, 2736, 2737, 3, 11, 5, 0, 2737, 2738, 3, 35, 17, 0, 2738, 2739, 3, 33, 16, 0, 2739, 2740, 3, 33, 16, 0, 2740, 2741, 3, 15, 7, 0, 2741, 2742, 3, 11, 5, 0, 2742, 2743, 3, 45, 22, 0, 2743, 274, 1, 0, 0, 0, 2744, 2745, 3, 11, 5, 0, 2745, 2746, 3, 35, 17, 0, 2746, 2747, 3, 33, 16, 0, 2747, 2748, 3, 33, 16, 0, 2748, 2749, 3, 15, 7, 0, 2749, 2750, 3, 11, 5, 0, 2750, 2751, 3, 45, 22, 0, 2751, 2752, 3, 23, 11, 0, 2752, 2753, 3, 35, 17, 0, 2753, 2754, 3, 33, 16, 0, 2754, 276, 1, 0, 0, 0, 2755, 2756, 3, 11, 5, 0, 2756, 2757, 3, 35, 17, 0, 2757, 2758, 3, 33, 16, 0, 2758, 2759, 3, 33, 16, 0, 2759, 2760, 3, 15, 7, 0, 2760, 2761, 3, 11, 5, 0, 2761, 2762, 3, 45, 22, 0, 2762, 2763, 3, 23, 11, 0, 2763, 2764, 3, 35, 17, 0, 2764, 2765, 3, 33, 16, 0, 2765, 2766, 5, 95, 0, 0, 2766, 2767, 3, 33, 16, 0, 2767, 2768, 3, 7, 3, 0, 2768, 2769, 3, 31, 15, 0, 2769, 2770, 3, 15, 7, 0, 2770, 278, 1, 0, 0, 0, 2771, 2772, 3, 11, 5, 0, 2772, 2773, 3, 35, 17, 0, 2773, 2774, 3, 33, 16, 0, 2774, 2775, 3, 43, 21, 0, 2775, 2776, 3, 45, 22, 0, 2776, 2777, 3, 41, 20, 0, 2777, 2778, 3, 7, 3, 0, 2778, 2779, 3, 23, 11, 0, 2779, 2780, 3, 33, 16, 0, 2780, 2781, 3, 45, 22, 0, 2781, 280, 1, 0, 0, 0, 2782, 2783, 3, 11, 5, 0, 2783, 2784, 3, 35, 17, 0, 2784, 2785, 3, 33, 16, 0, 2785, 2786, 3, 43, 21, 0, 2786, 2787, 3, 45, 22, 0, 2787, 2788, 3, 41, 20, 0, 2788, 2789, 3, 7, 3, 0, 2789, 2790, 3, 23, 11, 0, 2790, 2791, 3, 33, 16, 0, 2791, 2792, 3, 45, 22, 0, 2792, 2793, 5, 95, 0, 0, 2793, 2794, 3, 11, 5, 0, 2794, 2795, 3, 7, 3, 0, 2795, 2796, 3, 45, 22, 0, 2796, 2797, 3, 7, 3, 0, 2797, 2798, 3, 29, 14, 0, 2798, 2799, 3, 35, 17, 0, 2799, 2800, 3, 19, 9, 0, 2800, 282, 1, 0, 0, 0, 2801, 2802, 3, 11, 5, 0, 2802, 2803, 3, 35, 17, 0, 2803, 2804, 3, 33, 16, 0, 2804, 2805, 3, 43, 21, 0, 2805, 2806, 3, 45, 22, 0, 2806, 2807, 3, 41, 20, 0, 2807, 2808, 3, 7, 3, 0, 2808, 2809, 3, 23, 11, 0, 2809, 2810, 3, 33, 16, 0, 2810, 2811, 3, 45, 22, 0, 2811, 2812, 5, 95, 0, 0, 2812, 2813, 3, 33, 16, 0, 2813, 2814, 3, 7, 3, 0, 2814, 2815, 3, 31, 15, 0, 2815, 2816, 3, 15, 7, 0, 2816, 284, 1, 0, 0, 0, 2817, 2818, 3, 11, 5, 0, 2818, 2819, 3, 35, 17, 0, 2819, 2820, 3, 33, 16, 0, 2820, 2821, 3, 43, 21, 0, 2821, 2822, 3, 45, 22, 0, 2822, 2823, 3, 41, 20, 0, 2823, 2824, 3, 7, 3, 0, 2824, 2825, 3, 23, 11, 0, 2825, 2826, 3, 33, 16, 0, 2826, 2827, 3, 45, 22, 0, 2827, 2828, 5, 95, 0, 0, 2828, 2829, 3, 43, 21, 0, 2829, 2830, 3, 11, 5, 0, 2830, 2831, 3, 21, 10, 0, 2831, 2832, 3, 15, 7, 0, 2832, 2833, 3, 31, 15, 0, 2833, 2834, 3, 7, 3, 0, 2834, 286, 1, 0, 0, 0, 2835, 2836, 3, 11, 5, 0, 2836, 2837, 3, 35, 17, 0, 2837, 2838, 3, 33, 16, 0, 2838, 2839, 3, 43, 21, 0, 2839, 2840, 3, 45, 22, 0, 2840, 2841, 3, 41, 20, 0, 2841, 2842, 3, 7, 3, 0, 2842, 2843, 3, 23, 11, 0, 2843, 2844, 3, 33, 16, 0, 2844, 2845, 3, 45, 22, 0, 2845, 2846, 3, 43, 21, 0, 2846, 288, 1, 0, 0, 0, 2847, 2848, 3, 11, 5, 0, 2848, 2849, 3, 35, 17, 0, 2849, 2850, 3, 33, 16, 0, 2850, 2851, 3, 43, 21, 0, 2851, 2852, 3, 45, 22, 0, 2852, 2853, 3, 41, 20, 0, 2853, 2854, 3, 47, 23, 0, 2854, 2855, 3, 11, 5, 0, 2855, 2856, 3, 45, 22, 0, 2856, 2857, 3, 35, 17, 0, 2857, 2858, 3, 41, 20, 0, 2858, 290, 1, 0, 0, 0, 2859, 2860, 3, 11, 5, 0, 2860, 2861, 3, 35, 17, 0, 2861, 2862, 3, 33, 16, 0, 2862, 2863, 3, 45, 22, 0, 2863, 2864, 3, 7, 3, 0, 2864, 2865, 3, 23, 11, 0, 2865, 2866, 3, 33, 16, 0, 2866, 2867, 3, 43, 21, 0, 2867, 292, 1, 0, 0, 0, 2868, 2869, 3, 11, 5, 0, 2869, 2870, 3, 35, 17, 0, 2870, 2871, 3, 33, 16, 0, 2871, 2872, 3, 45, 22, 0, 2872, 2873, 3, 23, 11, 0, 2873, 2874, 3, 33, 16, 0, 2874, 2875, 3, 47, 23, 0, 2875, 2876, 3, 15, 7, 0, 2876, 294, 1, 0, 0, 0, 2877, 2878, 3, 11, 5, 0, 2878, 2879, 3, 35, 17, 0, 2879, 2880, 3, 33, 16, 0, 2880, 2881, 3, 49, 24, 0, 2881, 2882, 3, 15, 7, 0, 2882, 2883, 3, 41, 20, 0, 2883, 2884, 3, 43, 21, 0, 2884, 2885, 3, 23, 11, 0, 2885, 2886, 3, 35, 17, 0, 2886, 2887, 3, 33, 16, 0, 2887, 296, 1, 0, 0, 0, 2888, 2889, 3, 11, 5, 0, 2889, 2890, 3, 35, 17, 0, 2890, 2891, 3, 33, 16, 0, 2891, 2892, 3, 49, 24, 0, 2892, 2893, 3, 15, 7, 0, 2893, 2894, 3, 41, 20, 0, 2894, 2895, 3, 45, 22, 0, 2895, 298, 1, 0, 0, 0, 2896, 2897, 3, 11, 5, 0, 2897, 2898, 3, 35, 17, 0, 2898, 2899, 3, 37, 18, 0, 2899, 2900, 3, 55, 27, 0, 2900, 300, 1, 0, 0, 0, 2901, 2902, 3, 11, 5, 0, 2902, 2903, 3, 35, 17, 0, 2903, 2904, 3, 41, 20, 0, 2904, 2905, 3, 41, 20, 0, 2905, 302, 1, 0, 0, 0, 2906, 2907, 3, 11, 5, 0, 2907, 2908, 3, 35, 17, 0, 2908, 2909, 3, 41, 20, 0, 2909, 2910, 3, 41, 20, 0, 2910, 2911, 3, 15, 7, 0, 2911, 2912, 3, 43, 21, 0, 2912, 2913, 3, 37, 18, 0, 2913, 2914, 3, 35, 17, 0, 2914, 2915, 3, 33, 16, 0, 2915, 2916, 3, 13, 6, 0, 2916, 2917, 3, 23, 11, 0, 2917, 2918, 3, 33, 16, 0, 2918, 2919, 3, 19, 9, 0, 2919, 304, 1, 0, 0, 0, 2920, 2921, 3, 11, 5, 0, 2921, 2922, 3, 35, 17, 0, 2922, 2923, 3, 43, 21, 0, 2923, 2924, 3, 45, 22, 0, 2924, 2925, 3, 43, 21, 0, 2925, 306, 1, 0, 0, 0, 2926, 2927, 3, 11, 5, 0, 2927, 2928, 3, 35, 17, 0, 2928, 2929, 3, 47, 23, 0, 2929, 2930, 3, 33, 16, 0, 2930, 2931, 3, 45, 22, 0, 2931, 308, 1, 0, 0, 0, 2932, 2933, 3, 11, 5, 0, 2933, 2934, 3, 35, 17, 0, 2934, 2935, 3, 49, 24, 0, 2935, 2936, 3, 7, 3, 0, 2936, 2937, 3, 41, 20, 0, 2937, 2938, 5, 95, 0, 0, 2938, 2939, 3, 37, 18, 0, 2939, 2940, 3, 35, 17, 0, 2940, 2941, 3, 37, 18, 0, 2941, 310, 1, 0, 0, 0, 2942, 2943, 3, 11, 5, 0, 2943, 2944, 3, 35, 17, 0, 2944, 2945, 3, 49, 24, 0, 2945, 2946, 3, 7, 3, 0, 2946, 2947, 3, 41, 20, 0, 2947, 2948, 5, 95, 0, 0, 2948, 2949, 3, 43, 21, 0, 2949, 2950, 3, 7, 3, 0, 2950, 2951, 3, 31, 15, 0, 2951, 2952, 3, 37, 18, 0, 2952, 312, 1, 0, 0, 0, 2953, 2954, 3, 11, 5, 0, 2954, 2955, 3, 41, 20, 0, 2955, 2956, 3, 15, 7, 0, 2956, 2957, 3, 7, 3, 0, 2957, 2958, 3, 45, 22, 0, 2958, 2959, 3, 15, 7, 0, 2959, 314, 1, 0, 0, 0, 2960, 2961, 3, 11, 5, 0, 2961, 2962, 3, 41, 20, 0, 2962, 2963, 3, 15, 7, 0, 2963, 2964, 3, 7, 3, 0, 2964, 2965, 3, 45, 22, 0, 2965, 2966, 3, 15, 7, 0, 2966, 2967, 3, 13, 6, 0, 2967, 2968, 3, 9, 4, 0, 2968, 316, 1, 0, 0, 0, 2969, 2970, 3, 11, 5, 0, 2970, 2971, 3, 41, 20, 0, 2971, 2972, 3, 15, 7, 0, 2972, 2973, 3, 7, 3, 0, 2973, 2974, 3, 45, 22, 0, 2974, 2975, 3, 15, 7, 0, 2975, 2976, 3, 47, 23, 0, 2976, 2977, 3, 43, 21, 0, 2977, 2978, 3, 15, 7, 0, 2978, 2979, 3, 41, 20, 0, 2979, 318, 1, 0, 0, 0, 2980, 2981, 3, 11, 5, 0, 2981, 2982, 3, 41, 20, 0, 2982, 2983, 3, 35, 17, 0, 2983, 2984, 3, 43, 21, 0, 2984, 2985, 3, 43, 21, 0, 2985, 320, 1, 0, 0, 0, 2986, 2987, 3, 11, 5, 0, 2987, 2988, 3, 43, 21, 0, 2988, 2989, 3, 49, 24, 0, 2989, 322, 1, 0, 0, 0, 2990, 2991, 3, 11, 5, 0, 2991, 2992, 3, 47, 23, 0, 2992, 2993, 3, 9, 4, 0, 2993, 2994, 3, 15, 7, 0, 2994, 324, 1, 0, 0, 0, 2995, 2996, 3, 11, 5, 0, 2996, 2997, 3, 47, 23, 0, 2997, 2998, 3, 31, 15, 0, 2998, 2999, 3, 15, 7, 0, 2999, 3000, 5, 95, 0, 0, 3000, 3001, 3, 13, 6, 0, 3001, 3002, 3, 23, 11, 0, 3002, 3003, 3, 43, 21, 0, 3003, 3004, 3, 45, 22, 0, 3004, 326, 1, 0, 0, 0, 3005, 3006, 3, 11, 5, 0, 3006, 3007, 3, 47, 23, 0, 3007, 3008, 3, 41, 20, 0, 3008, 3009, 3, 41, 20, 0, 3009, 3010, 3, 15, 7, 0, 3010, 3011, 3, 33, 16, 0, 3011, 3012, 3, 45, 22, 0, 3012, 328, 1, 0, 0, 0, 3013, 3014, 3, 11, 5, 0, 3014, 3015, 3, 47, 23, 0, 3015, 3016, 3, 41, 20, 0, 3016, 3017, 3, 41, 20, 0, 3017, 3018, 3, 15, 7, 0, 3018, 3019, 3, 33, 16, 0, 3019, 3020, 3, 45, 22, 0, 3020, 3021, 5, 95, 0, 0, 3021, 3022, 3, 13, 6, 0, 3022, 3023, 3, 7, 3, 0, 3023, 3024, 3, 45, 22, 0, 3024, 3025, 3, 15, 7, 0, 3025, 330, 1, 0, 0, 0, 3026, 3027, 3, 11, 5, 0, 3027, 3028, 3, 47, 23, 0, 3028, 3029, 3, 41, 20, 0, 3029, 3030, 3, 41, 20, 0, 3030, 3031, 3, 15, 7, 0, 3031, 3032, 3, 33, 16, 0, 3032, 3033, 3, 45, 22, 0, 3033, 3034, 5, 95, 0, 0, 3034, 3035, 3, 13, 6, 0, 3035, 3036, 3, 15, 7, 0, 3036, 3037, 3, 17, 8, 0, 3037, 3038, 3, 7, 3, 0, 3038, 3039, 3, 47, 23, 0, 3039, 3040, 3, 29, 14, 0, 3040, 3041, 3, 45, 22, 0, 3041, 3042, 5, 95, 0, 0, 3042, 3043, 3, 45, 22, 0, 3043, 3044, 3, 41, 20, 0, 3044, 3045, 3, 7, 3, 0, 3045, 3046, 3, 33, 16, 0, 3046, 3047, 3, 43, 21, 0, 3047, 3048, 3, 17, 8, 0, 3048, 3049, 3, 35, 17, 0, 3049, 3050, 3, 41, 20, 0, 3050, 3051, 3, 31, 15, 0, 3051, 3052, 5, 95, 0, 0, 3052, 3053, 3, 19, 9, 0, 3053, 3054, 3, 41, 20, 0, 3054, 3055, 3, 35, 17, 0, 3055, 3056, 3, 47, 23, 0, 3056, 3057, 3, 37, 18, 0, 3057, 332, 1, 0, 0, 0, 3058, 3059, 3, 11, 5, 0, 3059, 3060, 3, 47, 23, 0, 3060, 3061, 3, 41, 20, 0, 3061, 3062, 3, 41, 20, 0, 3062, 3063, 3, 15, 7, 0, 3063, 3064, 3, 33, 16, 0, 3064, 3065, 3, 45, 22, 0, 3065, 3066, 5, 95, 0, 0, 3066, 3067, 3, 37, 18, 0, 3067, 3068, 3, 7, 3, 0, 3068, 3069, 3, 45, 22, 0, 3069, 3070, 3, 21, 10, 0, 3070, 334, 1, 0, 0, 0, 3071, 3072, 3, 11, 5, 0, 3072, 3073, 3, 47, 23, 0, 3073, 3074, 3, 41, 20, 0, 3074, 3075, 3, 41, 20, 0, 3075, 3076, 3, 15, 7, 0, 3076, 3077, 3, 33, 16, 0, 3077, 3078, 3, 45, 22, 0, 3078, 3079, 5, 95, 0, 0, 3079, 3080, 3, 41, 20, 0, 3080, 3081, 3, 35, 17, 0, 3081, 3082, 3, 29, 14, 0, 3082, 3083, 3, 15, 7, 0, 3083, 336, 1, 0, 0, 0, 3084, 3085, 3, 11, 5, 0, 3085, 3086, 3, 47, 23, 0, 3086, 3087, 3, 41, 20, 0, 3087, 3088, 3, 41, 20, 0, 3088, 3089, 3, 15, 7, 0, 3089, 3090, 3, 33, 16, 0, 3090, 3091, 3, 45, 22, 0, 3091, 3092, 5, 95, 0, 0, 3092, 3093, 3, 45, 22, 0, 3093, 3094, 3, 23, 11, 0, 3094, 3095, 3, 31, 15, 0, 3095, 3096, 3, 15, 7, 0, 3096, 338, 1, 0, 0, 0, 3097, 3098, 3, 11, 5, 0, 3098, 3099, 3, 47, 23, 0, 3099, 3100, 3, 41, 20, 0, 3100, 3101, 3, 41, 20, 0, 3101, 3102, 3, 15, 7, 0, 3102, 3103, 3, 33, 16, 0, 3103, 3104, 3, 45, 22, 0, 3104, 3105, 5, 95, 0, 0, 3105, 3106, 3, 45, 22, 0, 3106, 3107, 3, 23, 11, 0, 3107, 3108, 3, 31, 15, 0, 3108, 3109, 3, 15, 7, 0, 3109, 3110, 3, 43, 21, 0, 3110, 3111, 3, 45, 22, 0, 3111, 3112, 3, 7, 3, 0, 3112, 3113, 3, 31, 15, 0, 3113, 3114, 3, 37, 18, 0, 3114, 340, 1, 0, 0, 0, 3115, 3116, 3, 11, 5, 0, 3116, 3117, 3, 47, 23, 0, 3117, 3118, 3, 41, 20, 0, 3118, 3119, 3, 41, 20, 0, 3119, 3120, 3, 15, 7, 0, 3120, 3121, 3, 33, 16, 0, 3121, 3122, 3, 45, 22, 0, 3122, 3123, 5, 95, 0, 0, 3123, 3124, 3, 45, 22, 0, 3124, 3125, 3, 41, 20, 0, 3125, 3126, 3, 7, 3, 0, 3126, 3127, 3, 33, 16, 0, 3127, 3128, 3, 43, 21, 0, 3128, 3129, 3, 17, 8, 0, 3129, 3130, 3, 35, 17, 0, 3130, 3131, 3, 41, 20, 0, 3131, 3132, 3, 31, 15, 0, 3132, 3133, 5, 95, 0, 0, 3133, 3134, 3, 19, 9, 0, 3134, 3135, 3, 41, 20, 0, 3135, 3136, 3, 35, 17, 0, 3136, 3137, 3, 47, 23, 0, 3137, 3138, 3, 37, 18, 0, 3138, 3139, 5, 95, 0, 0, 3139, 3140, 3, 17, 8, 0, 3140, 3141, 3, 35, 17, 0, 3141, 3142, 3, 41, 20, 0, 3142, 3143, 5, 95, 0, 0, 3143, 3144, 3, 45, 22, 0, 3144, 3145, 3, 55, 27, 0, 3145, 3146, 3, 37, 18, 0, 3146, 3147, 3, 15, 7, 0, 3147, 342, 1, 0, 0, 0, 3148, 3149, 3, 11, 5, 0, 3149, 3150, 3, 47, 23, 0, 3150, 3151, 3, 41, 20, 0, 3151, 3152, 3, 41, 20, 0, 3152, 3153, 3, 15, 7, 0, 3153, 3154, 3, 33, 16, 0, 3154, 3155, 3, 45, 22, 0, 3155, 3156, 5, 95, 0, 0, 3156, 3157, 3, 47, 23, 0, 3157, 3158, 3, 43, 21, 0, 3158, 3159, 3, 15, 7, 0, 3159, 3160, 3, 41, 20, 0, 3160, 344, 1, 0, 0, 0, 3161, 3162, 3, 11, 5, 0, 3162, 3163, 3, 47, 23, 0, 3163, 3164, 3, 41, 20, 0, 3164, 3165, 3, 43, 21, 0, 3165, 3166, 3, 35, 17, 0, 3166, 3167, 3, 41, 20, 0, 3167, 346, 1, 0, 0, 0, 3168, 3169, 3, 11, 5, 0, 3169, 3170, 3, 47, 23, 0, 3170, 3171, 3, 41, 20, 0, 3171, 3172, 3, 43, 21, 0, 3172, 3173, 3, 35, 17, 0, 3173, 3174, 3, 41, 20, 0, 3174, 3175, 5, 95, 0, 0, 3175, 3176, 3, 33, 16, 0, 3176, 3177, 3, 7, 3, 0, 3177, 3178, 3, 31, 15, 0, 3178, 3179, 3, 15, 7, 0, 3179, 348, 1, 0, 0, 0, 3180, 3181, 3, 11, 5, 0, 3181, 3182, 3, 55, 27, 0, 3182, 3183, 3, 11, 5, 0, 3183, 3184, 3, 29, 14, 0, 3184, 3185, 3, 15, 7, 0, 3185, 350, 1, 0, 0, 0, 3186, 3187, 3, 13, 6, 0, 3187, 3188, 3, 7, 3, 0, 3188, 3189, 3, 45, 22, 0, 3189, 3190, 3, 7, 3, 0, 3190, 352, 1, 0, 0, 0, 3191, 3192, 3, 13, 6, 0, 3192, 3193, 3, 7, 3, 0, 3193, 3194, 3, 45, 22, 0, 3194, 3195, 3, 7, 3, 0, 3195, 3196, 3, 9, 4, 0, 3196, 3197, 3, 7, 3, 0, 3197, 3198, 3, 43, 21, 0, 3198, 3199, 3, 15, 7, 0, 3199, 354, 1, 0, 0, 0, 3200, 3201, 3, 13, 6, 0, 3201, 3202, 3, 7, 3, 0, 3202, 3203, 3, 45, 22, 0, 3203, 3204, 3, 15, 7, 0, 3204, 356, 1, 0, 0, 0, 3205, 3206, 3, 13, 6, 0, 3206, 3207, 3, 7, 3, 0, 3207, 3208, 3, 45, 22, 0, 3208, 3209, 3, 15, 7, 0, 3209, 3210, 3, 45, 22, 0, 3210, 3211, 3, 23, 11, 0, 3211, 3212, 3, 31, 15, 0, 3212, 3213, 3, 15, 7, 0, 3213, 3214, 5, 95, 0, 0, 3214, 3215, 3, 23, 11, 0, 3215, 3216, 3, 33, 16, 0, 3216, 3217, 3, 45, 22, 0, 3217, 3218, 3, 15, 7, 0, 3218, 3219, 3, 41, 20, 0, 3219, 3220, 3, 49, 24, 0, 3220, 3221, 3, 7, 3, 0, 3221, 3222, 3, 29, 14, 0, 3222, 3223, 5, 95, 0, 0, 3223, 3224, 3, 11, 5, 0, 3224, 3225, 3, 35, 17, 0, 3225, 3226, 3, 13, 6, 0, 3226, 3227, 3, 15, 7, 0, 3227, 358, 1, 0, 0, 0, 3228, 3229, 3, 13, 6, 0, 3229, 3230, 3, 7, 3, 0, 3230, 3231, 3, 45, 22, 0, 3231, 3232, 3, 15, 7, 0, 3232, 3233, 3, 45, 22, 0, 3233, 3234, 3, 23, 11, 0, 3234, 3235, 3, 31, 15, 0, 3235, 3236, 3, 15, 7, 0, 3236, 3237, 5, 95, 0, 0, 3237, 3238, 3, 23, 11, 0, 3238, 3239, 3, 33, 16, 0, 3239, 3240, 3, 45, 22, 0, 3240, 3241, 3, 15, 7, 0, 3241, 3242, 3, 41, 20, 0, 3242, 3243, 3, 49, 24, 0, 3243, 3244, 3, 7, 3, 0, 3244, 3245, 3, 29, 14, 0, 3245, 3246, 5, 95, 0, 0, 3246, 3247, 3, 37, 18, 0, 3247, 3248, 3, 41, 20, 0, 3248, 3249, 3, 15, 7, 0, 3249, 3250, 3, 11, 5, 0, 3250, 3251, 3, 23, 11, 0, 3251, 3252, 3, 43, 21, 0, 3252, 3253, 3, 23, 11, 0, 3253, 3254, 3, 35, 17, 0, 3254, 3255, 3, 33, 16, 0, 3255, 360, 1, 0, 0, 0, 3256, 3257, 3, 13, 6, 0, 3257, 3258, 3, 7, 3, 0, 3258, 3259, 3, 55, 27, 0, 3259, 362, 1, 0, 0, 0, 3260, 3261, 3, 13, 6, 0, 3261, 3262, 3, 15, 7, 0, 3262, 3263, 3, 7, 3, 0, 3263, 3264, 3, 29, 14, 0, 3264, 3265, 3, 29, 14, 0, 3265, 3266, 3, 35, 17, 0, 3266, 3267, 3, 11, 5, 0, 3267, 3268, 3, 7, 3, 0, 3268, 3269, 3, 45, 22, 0, 3269, 3270, 3, 15, 7, 0, 3270, 364, 1, 0, 0, 0, 3271, 3272, 3, 13, 6, 0, 3272, 3273, 3, 15, 7, 0, 3273, 3274, 3, 11, 5, 0, 3274, 366, 1, 0, 0, 0, 3275, 3276, 3, 13, 6, 0, 3276, 3277, 3, 15, 7, 0, 3277, 3278, 3, 11, 5, 0, 3278, 3279, 3, 23, 11, 0, 3279, 3280, 3, 31, 15, 0, 3280, 3281, 3, 7, 3, 0, 3281, 3282, 3, 29, 14, 0, 3282, 368, 1, 0, 0, 0, 3283, 3284, 3, 13, 6, 0, 3284, 3285, 3, 15, 7, 0, 3285, 3286, 3, 11, 5, 0, 3286, 3287, 3, 29, 14, 0, 3287, 3288, 3, 7, 3, 0, 3288, 3289, 3, 41, 20, 0, 3289, 3290, 3, 15, 7, 0, 3290, 370, 1, 0, 0, 0, 3291, 3292, 3, 13, 6, 0, 3292, 3293, 3, 15, 7, 0, 3293, 3294, 3, 17, 8, 0, 3294, 3295, 3, 7, 3, 0, 3295, 3296, 3, 47, 23, 0, 3296, 3297, 3, 29, 14, 0, 3297, 3298, 3, 45, 22, 0, 3298, 372, 1, 0, 0, 0, 3299, 3300, 3, 13, 6, 0, 3300, 3301, 3, 15, 7, 0, 3301, 3302, 3, 17, 8, 0, 3302, 3303, 3, 7, 3, 0, 3303, 3304, 3, 47, 23, 0, 3304, 3305, 3, 29, 14, 0, 3305, 3306, 3, 45, 22, 0, 3306, 3307, 3, 43, 21, 0, 3307, 374, 1, 0, 0, 0, 3308, 3309, 3, 13, 6, 0, 3309, 3310, 3, 15, 7, 0, 3310, 3311, 3, 17, 8, 0, 3311, 3312, 3, 15, 7, 0, 3312, 3313, 3, 41, 20, 0, 3313, 3314, 3, 7, 3, 0, 3314, 3315, 3, 9, 4, 0, 3315, 3316, 3, 29, 14, 0, 3316, 3317, 3, 15, 7, 0, 3317, 376, 1, 0, 0, 0, 3318, 3319, 3, 13, 6, 0, 3319, 3320, 3, 15, 7, 0, 3320, 3321, 3, 17, 8, 0, 3321, 3322, 3, 15, 7, 0, 3322, 3323, 3, 41, 20, 0, 3323, 3324, 3, 41, 20, 0, 3324, 3325, 3, 7, 3, 0, 3325, 3326, 3, 9, 4, 0, 3326, 3327, 3, 29, 14, 0, 3327, 3328, 3, 15, 7, 0, 3328, 378, 1, 0, 0, 0, 3329, 3330, 3, 13, 6, 0, 3330, 3331, 3, 15, 7, 0, 3331, 3332, 3, 17, 8, 0, 3332, 3333, 3, 15, 7, 0, 3333, 3334, 3, 41, 20, 0, 3334, 3335, 3, 41, 20, 0, 3335, 3336, 3, 15, 7, 0, 3336, 3337, 3, 13, 6, 0, 3337, 380, 1, 0, 0, 0, 3338, 3339, 3, 13, 6, 0, 3339, 3340, 3, 15, 7, 0, 3340, 3341, 3, 17, 8, 0, 3341, 3342, 3, 23, 11, 0, 3342, 3343, 3, 33, 16, 0, 3343, 3344, 3, 15, 7, 0, 3344, 3345, 3, 13, 6, 0, 3345, 382, 1, 0, 0, 0, 3346, 3347, 3, 13, 6, 0, 3347, 3348, 3, 15, 7, 0, 3348, 3349, 3, 17, 8, 0, 3349, 3350, 3, 23, 11, 0, 3350, 3351, 3, 33, 16, 0, 3351, 3352, 3, 15, 7, 0, 3352, 3353, 3, 41, 20, 0, 3353, 384, 1, 0, 0, 0, 3354, 3355, 3, 13, 6, 0, 3355, 3356, 3, 15, 7, 0, 3356, 3357, 3, 19, 9, 0, 3357, 3358, 3, 41, 20, 0, 3358, 3359, 3, 15, 7, 0, 3359, 3360, 3, 15, 7, 0, 3360, 386, 1, 0, 0, 0, 3361, 3362, 3, 13, 6, 0, 3362, 3363, 3, 15, 7, 0, 3363, 3364, 3, 29, 14, 0, 3364, 3365, 3, 15, 7, 0, 3365, 3366, 3, 45, 22, 0, 3366, 3367, 3, 15, 7, 0, 3367, 388, 1, 0, 0, 0, 3368, 3369, 3, 13, 6, 0, 3369, 3370, 3, 15, 7, 0, 3370, 3371, 3, 29, 14, 0, 3371, 3372, 3, 23, 11, 0, 3372, 3373, 3, 31, 15, 0, 3373, 3374, 3, 23, 11, 0, 3374, 3375, 3, 45, 22, 0, 3375, 3376, 3, 15, 7, 0, 3376, 3377, 3, 41, 20, 0, 3377, 390, 1, 0, 0, 0, 3378, 3379, 3, 13, 6, 0, 3379, 3380, 3, 15, 7, 0, 3380, 3381, 3, 29, 14, 0, 3381, 3382, 3, 23, 11, 0, 3382, 3383, 3, 31, 15, 0, 3383, 3384, 3, 23, 11, 0, 3384, 3385, 3, 45, 22, 0, 3385, 3386, 3, 15, 7, 0, 3386, 3387, 3, 41, 20, 0, 3387, 3388, 3, 43, 21, 0, 3388, 392, 1, 0, 0, 0, 3389, 3390, 3, 13, 6, 0, 3390, 3391, 3, 15, 7, 0, 3391, 3392, 3, 33, 16, 0, 3392, 3393, 3, 43, 21, 0, 3393, 3394, 3, 15, 7, 0, 3394, 3395, 5, 95, 0, 0, 3395, 3396, 3, 41, 20, 0, 3396, 3397, 3, 7, 3, 0, 3397, 3398, 3, 33, 16, 0, 3398, 3399, 3, 27, 13, 0, 3399, 394, 1, 0, 0, 0, 3400, 3401, 3, 13, 6, 0, 3401, 3402, 3, 15, 7, 0, 3402, 3403, 3, 37, 18, 0, 3403, 3404, 3, 15, 7, 0, 3404, 3405, 3, 33, 16, 0, 3405, 3406, 3, 13, 6, 0, 3406, 3407, 3, 43, 21, 0, 3407, 396, 1, 0, 0, 0, 3408, 3409, 3, 13, 6, 0, 3409, 3410, 3, 15, 7, 0, 3410, 3411, 3, 37, 18, 0, 3411, 3412, 3, 45, 22, 0, 3412, 3413, 3, 21, 10, 0, 3413, 398, 1, 0, 0, 0, 3414, 3415, 3, 13, 6, 0, 3415, 3416, 3, 15, 7, 0, 3416, 3417, 3, 41, 20, 0, 3417, 3418, 3, 15, 7, 0, 3418, 3419, 3, 17, 8, 0, 3419, 400, 1, 0, 0, 0, 3420, 3421, 3, 13, 6, 0, 3421, 3422, 3, 15, 7, 0, 3422, 3423, 3, 41, 20, 0, 3423, 3424, 3, 23, 11, 0, 3424, 3425, 3, 49, 24, 0, 3425, 3426, 3, 15, 7, 0, 3426, 3427, 3, 13, 6, 0, 3427, 402, 1, 0, 0, 0, 3428, 3429, 3, 13, 6, 0, 3429, 3430, 3, 15, 7, 0, 3430, 3431, 3, 43, 21, 0, 3431, 3432, 3, 11, 5, 0, 3432, 404, 1, 0, 0, 0, 3433, 3434, 3, 13, 6, 0, 3434, 3435, 3, 15, 7, 0, 3435, 3436, 3, 43, 21, 0, 3436, 3437, 3, 11, 5, 0, 3437, 3438, 3, 41, 20, 0, 3438, 3439, 3, 23, 11, 0, 3439, 3440, 3, 9, 4, 0, 3440, 3441, 3, 15, 7, 0, 3441, 406, 1, 0, 0, 0, 3442, 3443, 3, 13, 6, 0, 3443, 3444, 3, 15, 7, 0, 3444, 3445, 3, 43, 21, 0, 3445, 3446, 3, 11, 5, 0, 3446, 3447, 3, 41, 20, 0, 3447, 3448, 3, 23, 11, 0, 3448, 3449, 3, 37, 18, 0, 3449, 3450, 3, 45, 22, 0, 3450, 3451, 3, 35, 17, 0, 3451, 3452, 3, 41, 20, 0, 3452, 408, 1, 0, 0, 0, 3453, 3454, 3, 13, 6, 0, 3454, 3455, 3, 15, 7, 0, 3455, 3456, 3, 43, 21, 0, 3456, 3457, 3, 45, 22, 0, 3457, 3458, 3, 41, 20, 0, 3458, 3459, 3, 35, 17, 0, 3459, 3460, 3, 55, 27, 0, 3460, 410, 1, 0, 0, 0, 3461, 3462, 3, 13, 6, 0, 3462, 3463, 3, 15, 7, 0, 3463, 3464, 3, 43, 21, 0, 3464, 3465, 3, 45, 22, 0, 3465, 3466, 3, 41, 20, 0, 3466, 3467, 3, 47, 23, 0, 3467, 3468, 3, 11, 5, 0, 3468, 3469, 3, 45, 22, 0, 3469, 3470, 3, 35, 17, 0, 3470, 3471, 3, 41, 20, 0, 3471, 412, 1, 0, 0, 0, 3472, 3473, 3, 13, 6, 0, 3473, 3474, 3, 15, 7, 0, 3474, 3475, 3, 45, 22, 0, 3475, 3476, 3, 15, 7, 0, 3476, 3477, 3, 41, 20, 0, 3477, 3478, 3, 31, 15, 0, 3478, 3479, 3, 23, 11, 0, 3479, 3480, 3, 33, 16, 0, 3480, 3481, 3, 23, 11, 0, 3481, 3482, 3, 43, 21, 0, 3482, 3483, 3, 45, 22, 0, 3483, 3484, 3, 23, 11, 0, 3484, 3485, 3, 11, 5, 0, 3485, 414, 1, 0, 0, 0, 3486, 3487, 3, 13, 6, 0, 3487, 3488, 3, 23, 11, 0, 3488, 3489, 3, 7, 3, 0, 3489, 3490, 3, 19, 9, 0, 3490, 3491, 3, 33, 16, 0, 3491, 3492, 3, 35, 17, 0, 3492, 3493, 3, 43, 21, 0, 3493, 3494, 3, 45, 22, 0, 3494, 3495, 3, 23, 11, 0, 3495, 3496, 3, 11, 5, 0, 3496, 3497, 3, 43, 21, 0, 3497, 416, 1, 0, 0, 0, 3498, 3499, 3, 13, 6, 0, 3499, 3500, 3, 23, 11, 0, 3500, 3501, 3, 11, 5, 0, 3501, 3502, 3, 45, 22, 0, 3502, 3503, 3, 23, 11, 0, 3503, 3504, 3, 35, 17, 0, 3504, 3505, 3, 33, 16, 0, 3505, 3506, 3, 7, 3, 0, 3506, 3507, 3, 41, 20, 0, 3507, 3508, 3, 55, 27, 0, 3508, 418, 1, 0, 0, 0, 3509, 3510, 3, 13, 6, 0, 3510, 3511, 3, 23, 11, 0, 3511, 3512, 3, 43, 21, 0, 3512, 3513, 3, 7, 3, 0, 3513, 3514, 3, 9, 4, 0, 3514, 3515, 3, 29, 14, 0, 3515, 3516, 3, 15, 7, 0, 3516, 420, 1, 0, 0, 0, 3517, 3518, 3, 13, 6, 0, 3518, 3519, 3, 23, 11, 0, 3519, 3520, 3, 43, 21, 0, 3520, 3521, 3, 7, 3, 0, 3521, 3522, 3, 9, 4, 0, 3522, 3523, 3, 29, 14, 0, 3523, 3524, 3, 15, 7, 0, 3524, 3525, 5, 95, 0, 0, 3525, 3526, 3, 37, 18, 0, 3526, 3527, 3, 7, 3, 0, 3527, 3528, 3, 19, 9, 0, 3528, 3529, 3, 15, 7, 0, 3529, 3530, 5, 95, 0, 0, 3530, 3531, 3, 43, 21, 0, 3531, 3532, 3, 27, 13, 0, 3532, 3533, 3, 23, 11, 0, 3533, 3534, 3, 37, 18, 0, 3534, 3535, 3, 37, 18, 0, 3535, 3536, 3, 23, 11, 0, 3536, 3537, 3, 33, 16, 0, 3537, 3538, 3, 19, 9, 0, 3538, 422, 1, 0, 0, 0, 3539, 3540, 3, 13, 6, 0, 3540, 3541, 3, 23, 11, 0, 3541, 3542, 3, 43, 21, 0, 3542, 3543, 3, 11, 5, 0, 3543, 3544, 3, 7, 3, 0, 3544, 3545, 3, 41, 20, 0, 3545, 3546, 3, 13, 6, 0, 3546, 424, 1, 0, 0, 0, 3547, 3548, 3, 13, 6, 0, 3548, 3549, 3, 23, 11, 0, 3549, 3550, 3, 43, 21, 0, 3550, 3551, 3, 11, 5, 0, 3551, 3552, 3, 35, 17, 0, 3552, 3553, 3, 33, 16, 0, 3553, 3554, 3, 33, 16, 0, 3554, 3555, 3, 15, 7, 0, 3555, 3556, 3, 11, 5, 0, 3556, 3557, 3, 45, 22, 0, 3557, 426, 1, 0, 0, 0, 3558, 3559, 3, 13, 6, 0, 3559, 3560, 3, 23, 11, 0, 3560, 3561, 3, 43, 21, 0, 3561, 3562, 3, 37, 18, 0, 3562, 3563, 3, 7, 3, 0, 3563, 3564, 3, 45, 22, 0, 3564, 3565, 3, 11, 5, 0, 3565, 3566, 3, 21, 10, 0, 3566, 428, 1, 0, 0, 0, 3567, 3568, 3, 13, 6, 0, 3568, 3569, 3, 23, 11, 0, 3569, 3570, 3, 43, 21, 0, 3570, 3571, 3, 45, 22, 0, 3571, 3572, 3, 23, 11, 0, 3572, 3573, 3, 33, 16, 0, 3573, 3574, 3, 11, 5, 0, 3574, 3575, 3, 45, 22, 0, 3575, 430, 1, 0, 0, 0, 3576, 3577, 3, 13, 6, 0, 3577, 3578, 3, 35, 17, 0, 3578, 432, 1, 0, 0, 0, 3579, 3580, 3, 13, 6, 0, 3580, 3581, 3, 35, 17, 0, 3581, 3582, 3, 31, 15, 0, 3582, 3583, 3, 7, 3, 0, 3583, 3584, 3, 23, 11, 0, 3584, 3585, 3, 33, 16, 0, 3585, 434, 1, 0, 0, 0, 3586, 3587, 3, 13, 6, 0, 3587, 3588, 3, 35, 17, 0, 3588, 3589, 3, 47, 23, 0, 3589, 3590, 3, 9, 4, 0, 3590, 3591, 3, 29, 14, 0, 3591, 3592, 3, 15, 7, 0, 3592, 436, 1, 0, 0, 0, 3593, 3594, 3, 13, 6, 0, 3594, 3595, 3, 41, 20, 0, 3595, 3596, 3, 35, 17, 0, 3596, 3597, 3, 37, 18, 0, 3597, 438, 1, 0, 0, 0, 3598, 3599, 3, 13, 6, 0, 3599, 3600, 3, 55, 27, 0, 3600, 3601, 3, 33, 16, 0, 3601, 3602, 3, 7, 3, 0, 3602, 3603, 3, 31, 15, 0, 3603, 3604, 3, 23, 11, 0, 3604, 3605, 3, 11, 5, 0, 3605, 440, 1, 0, 0, 0, 3606, 3607, 3, 13, 6, 0, 3607, 3608, 3, 55, 27, 0, 3608, 3609, 3, 33, 16, 0, 3609, 3610, 3, 7, 3, 0, 3610, 3611, 3, 31, 15, 0, 3611, 3612, 3, 23, 11, 0, 3612, 3613, 3, 11, 5, 0, 3613, 3614, 5, 95, 0, 0, 3614, 3615, 3, 17, 8, 0, 3615, 3616, 3, 47, 23, 0, 3616, 3617, 3, 33, 16, 0, 3617, 3618, 3, 11, 5, 0, 3618, 3619, 3, 45, 22, 0, 3619, 3620, 3, 23, 11, 0, 3620, 3621, 3, 35, 17, 0, 3621, 3622, 3, 33, 16, 0, 3622, 442, 1, 0, 0, 0, 3623, 3624, 3, 13, 6, 0, 3624, 3625, 3, 55, 27, 0, 3625, 3626, 3, 33, 16, 0, 3626, 3627, 3, 7, 3, 0, 3627, 3628, 3, 31, 15, 0, 3628, 3629, 3, 23, 11, 0, 3629, 3630, 3, 11, 5, 0, 3630, 3631, 5, 95, 0, 0, 3631, 3632, 3, 17, 8, 0, 3632, 3633, 3, 47, 23, 0, 3633, 3634, 3, 33, 16, 0, 3634, 3635, 3, 11, 5, 0, 3635, 3636, 3, 45, 22, 0, 3636, 3637, 3, 23, 11, 0, 3637, 3638, 3, 35, 17, 0, 3638, 3639, 3, 33, 16, 0, 3639, 3640, 5, 95, 0, 0, 3640, 3641, 3, 11, 5, 0, 3641, 3642, 3, 35, 17, 0, 3642, 3643, 3, 13, 6, 0, 3643, 3644, 3, 15, 7, 0, 3644, 444, 1, 0, 0, 0, 3645, 3646, 3, 15, 7, 0, 3646, 3647, 3, 7, 3, 0, 3647, 3648, 3, 11, 5, 0, 3648, 3649, 3, 21, 10, 0, 3649, 446, 1, 0, 0, 0, 3650, 3651, 3, 15, 7, 0, 3651, 3652, 3, 29, 14, 0, 3652, 3653, 3, 15, 7, 0, 3653, 3654, 3, 31, 15, 0, 3654, 3655, 3, 15, 7, 0, 3655, 3656, 3, 33, 16, 0, 3656, 3657, 3, 45, 22, 0, 3657, 448, 1, 0, 0, 0, 3658, 3659, 3, 15, 7, 0, 3659, 3660, 3, 29, 14, 0, 3660, 3661, 3, 43, 21, 0, 3661, 3662, 3, 15, 7, 0, 3662, 450, 1, 0, 0, 0, 3663, 3664, 3, 15, 7, 0, 3664, 3665, 3, 33, 16, 0, 3665, 3666, 3, 7, 3, 0, 3666, 3667, 3, 9, 4, 0, 3667, 3668, 3, 29, 14, 0, 3668, 3669, 3, 15, 7, 0, 3669, 452, 1, 0, 0, 0, 3670, 3671, 3, 15, 7, 0, 3671, 3672, 3, 33, 16, 0, 3672, 3673, 3, 11, 5, 0, 3673, 3674, 3, 35, 17, 0, 3674, 3675, 3, 13, 6, 0, 3675, 3676, 3, 23, 11, 0, 3676, 3677, 3, 33, 16, 0, 3677, 3678, 3, 19, 9, 0, 3678, 454, 1, 0, 0, 0, 3679, 3680, 3, 15, 7, 0, 3680, 3681, 3, 33, 16, 0, 3681, 3682, 3, 11, 5, 0, 3682, 3683, 3, 41, 20, 0, 3683, 3684, 3, 55, 27, 0, 3684, 3685, 3, 37, 18, 0, 3685, 3686, 3, 45, 22, 0, 3686, 3687, 3, 15, 7, 0, 3687, 3688, 3, 13, 6, 0, 3688, 456, 1, 0, 0, 0, 3689, 3690, 3, 15, 7, 0, 3690, 3691, 3, 33, 16, 0, 3691, 3692, 3, 13, 6, 0, 3692, 458, 1, 0, 0, 0, 3693, 3694, 3, 15, 7, 0, 3694, 3695, 3, 33, 16, 0, 3695, 3696, 3, 13, 6, 0, 3696, 3697, 5, 45, 0, 0, 3697, 3698, 3, 15, 7, 0, 3698, 3699, 3, 53, 26, 0, 3699, 3700, 3, 15, 7, 0, 3700, 3701, 3, 11, 5, 0, 3701, 460, 1, 0, 0, 0, 3702, 3703, 3, 15, 7, 0, 3703, 3704, 3, 39, 19, 0, 3704, 3705, 3, 47, 23, 0, 3705, 3706, 3, 7, 3, 0, 3706, 3707, 3, 29, 14, 0, 3707, 3708, 3, 43, 21, 0, 3708, 462, 1, 0, 0, 0, 3709, 3710, 3, 15, 7, 0, 3710, 3711, 3, 43, 21, 0, 3711, 3712, 3, 11, 5, 0, 3712, 3713, 3, 7, 3, 0, 3713, 3714, 3, 37, 18, 0, 3714, 3715, 3, 15, 7, 0, 3715, 464, 1, 0, 0, 0, 3716, 3717, 3, 15, 7, 0, 3717, 3718, 3, 49, 24, 0, 3718, 3719, 3, 15, 7, 0, 3719, 3720, 3, 41, 20, 0, 3720, 3721, 3, 55, 27, 0, 3721, 466, 1, 0, 0, 0, 3722, 3723, 3, 15, 7, 0, 3723, 3724, 3, 53, 26, 0, 3724, 3725, 3, 11, 5, 0, 3725, 3726, 3, 15, 7, 0, 3726, 3727, 3, 37, 18, 0, 3727, 3728, 3, 45, 22, 0, 3728, 468, 1, 0, 0, 0, 3729, 3730, 3, 15, 7, 0, 3730, 3731, 3, 53, 26, 0, 3731, 3732, 3, 11, 5, 0, 3732, 3733, 3, 15, 7, 0, 3733, 3734, 3, 37, 18, 0, 3734, 3735, 3, 45, 22, 0, 3735, 3736, 3, 23, 11, 0, 3736, 3737, 3, 35, 17, 0, 3737, 3738, 3, 33, 16, 0, 3738, 470, 1, 0, 0, 0, 3739, 3740, 3, 15, 7, 0, 3740, 3741, 3, 53, 26, 0, 3741, 3742, 3, 11, 5, 0, 3742, 3743, 3, 29, 14, 0, 3743, 3744, 3, 47, 23, 0, 3744, 3745, 3, 13, 6, 0, 3745, 3746, 3, 15, 7, 0, 3746, 472, 1, 0, 0, 0, 3747, 3748, 3, 15, 7, 0, 3748, 3749, 3, 53, 26, 0, 3749, 3750, 3, 11, 5, 0, 3750, 3751, 3, 29, 14, 0, 3751, 3752, 3, 47, 23, 0, 3752, 3753, 3, 13, 6, 0, 3753, 3754, 3, 23, 11, 0, 3754, 3755, 3, 33, 16, 0, 3755, 3756, 3, 19, 9, 0, 3756, 474, 1, 0, 0, 0, 3757, 3758, 3, 15, 7, 0, 3758, 3759, 3, 53, 26, 0, 3759, 3760, 3, 11, 5, 0, 3760, 3761, 3, 29, 14, 0, 3761, 3762, 3, 47, 23, 0, 3762, 3763, 3, 43, 21, 0, 3763, 3764, 3, 23, 11, 0, 3764, 3765, 3, 49, 24, 0, 3765, 3766, 3, 15, 7, 0, 3766, 476, 1, 0, 0, 0, 3767, 3768, 3, 15, 7, 0, 3768, 3769, 3, 53, 26, 0, 3769, 3770, 3, 15, 7, 0, 3770, 3771, 3, 11, 5, 0, 3771, 478, 1, 0, 0, 0, 3772, 3773, 3, 15, 7, 0, 3773, 3774, 3, 53, 26, 0, 3774, 3775, 3, 15, 7, 0, 3775, 3776, 3, 11, 5, 0, 3776, 3777, 3, 47, 23, 0, 3777, 3778, 3, 45, 22, 0, 3778, 3779, 3, 15, 7, 0, 3779, 480, 1, 0, 0, 0, 3780, 3781, 3, 15, 7, 0, 3781, 3782, 3, 53, 26, 0, 3782, 3783, 3, 23, 11, 0, 3783, 3784, 3, 43, 21, 0, 3784, 3785, 3, 45, 22, 0, 3785, 3786, 3, 23, 11, 0, 3786, 3787, 3, 33, 16, 0, 3787, 3788, 3, 19, 9, 0, 3788, 482, 1, 0, 0, 0, 3789, 3790, 3, 15, 7, 0, 3790, 3791, 3, 53, 26, 0, 3791, 3792, 3, 23, 11, 0, 3792, 3793, 3, 43, 21, 0, 3793, 3794, 3, 45, 22, 0, 3794, 3795, 3, 43, 21, 0, 3795, 484, 1, 0, 0, 0, 3796, 3797, 3, 15, 7, 0, 3797, 3798, 3, 53, 26, 0, 3798, 3799, 3, 37, 18, 0, 3799, 486, 1, 0, 0, 0, 3800, 3801, 3, 15, 7, 0, 3801, 3802, 3, 53, 26, 0, 3802, 3803, 3, 37, 18, 0, 3803, 3804, 3, 29, 14, 0, 3804, 3805, 3, 7, 3, 0, 3805, 3806, 3, 23, 11, 0, 3806, 3807, 3, 33, 16, 0, 3807, 488, 1, 0, 0, 0, 3808, 3809, 3, 15, 7, 0, 3809, 3810, 3, 53, 26, 0, 3810, 3811, 3, 45, 22, 0, 3811, 3812, 3, 15, 7, 0, 3812, 3813, 3, 33, 16, 0, 3813, 3814, 3, 13, 6, 0, 3814, 3815, 3, 15, 7, 0, 3815, 3816, 3, 13, 6, 0, 3816, 490, 1, 0, 0, 0, 3817, 3818, 3, 15, 7, 0, 3818, 3819, 3, 53, 26, 0, 3819, 3820, 3, 45, 22, 0, 3820, 3821, 3, 15, 7, 0, 3821, 3822, 3, 33, 16, 0, 3822, 3823, 3, 43, 21, 0, 3823, 3824, 3, 23, 11, 0, 3824, 3825, 3, 35, 17, 0, 3825, 3826, 3, 33, 16, 0, 3826, 492, 1, 0, 0, 0, 3827, 3828, 3, 15, 7, 0, 3828, 3829, 3, 53, 26, 0, 3829, 3830, 3, 45, 22, 0, 3830, 3831, 3, 15, 7, 0, 3831, 3832, 3, 41, 20, 0, 3832, 3833, 3, 33, 16, 0, 3833, 3834, 3, 7, 3, 0, 3834, 3835, 3, 29, 14, 0, 3835, 494, 1, 0, 0, 0, 3836, 3837, 3, 15, 7, 0, 3837, 3838, 3, 53, 26, 0, 3838, 3839, 3, 45, 22, 0, 3839, 3840, 3, 41, 20, 0, 3840, 3841, 3, 7, 3, 0, 3841, 3842, 3, 11, 5, 0, 3842, 3843, 3, 45, 22, 0, 3843, 496, 1, 0, 0, 0, 3844, 3845, 3, 17, 8, 0, 3845, 3846, 3, 7, 3, 0, 3846, 3847, 3, 29, 14, 0, 3847, 3848, 3, 43, 21, 0, 3848, 3849, 3, 15, 7, 0, 3849, 498, 1, 0, 0, 0, 3850, 3851, 3, 17, 8, 0, 3851, 3852, 3, 15, 7, 0, 3852, 3853, 3, 45, 22, 0, 3853, 3854, 3, 11, 5, 0, 3854, 3855, 3, 21, 10, 0, 3855, 500, 1, 0, 0, 0, 3856, 3857, 3, 17, 8, 0, 3857, 3858, 3, 23, 11, 0, 3858, 3859, 3, 15, 7, 0, 3859, 3860, 3, 29, 14, 0, 3860, 3861, 3, 13, 6, 0, 3861, 3862, 3, 43, 21, 0, 3862, 502, 1, 0, 0, 0, 3863, 3864, 3, 17, 8, 0, 3864, 3865, 3, 23, 11, 0, 3865, 3866, 3, 29, 14, 0, 3866, 3867, 3, 45, 22, 0, 3867, 3868, 3, 15, 7, 0, 3868, 3869, 3, 41, 20, 0, 3869, 504, 1, 0, 0, 0, 3870, 3871, 3, 17, 8, 0, 3871, 3872, 3, 23, 11, 0, 3872, 3873, 3, 33, 16, 0, 3873, 3874, 3, 7, 3, 0, 3874, 3875, 3, 29, 14, 0, 3875, 506, 1, 0, 0, 0, 3876, 3877, 3, 17, 8, 0, 3877, 3878, 3, 23, 11, 0, 3878, 3879, 3, 41, 20, 0, 3879, 3880, 3, 43, 21, 0, 3880, 3881, 3, 45, 22, 0, 3881, 508, 1, 0, 0, 0, 3882, 3883, 3, 17, 8, 0, 3883, 3884, 3, 29, 14, 0, 3884, 3885, 3, 35, 17, 0, 3885, 3886, 3, 7, 3, 0, 3886, 3887, 3, 45, 22, 0, 3887, 510, 1, 0, 0, 0, 3888, 3889, 3, 17, 8, 0, 3889, 3890, 3, 29, 14, 0, 3890, 3891, 3, 35, 17, 0, 3891, 3892, 3, 35, 17, 0, 3892, 3893, 3, 41, 20, 0, 3893, 512, 1, 0, 0, 0, 3894, 3895, 3, 17, 8, 0, 3895, 3896, 3, 35, 17, 0, 3896, 3897, 3, 29, 14, 0, 3897, 3898, 3, 29, 14, 0, 3898, 3899, 3, 35, 17, 0, 3899, 3900, 3, 51, 25, 0, 3900, 3901, 3, 23, 11, 0, 3901, 3902, 3, 33, 16, 0, 3902, 3903, 3, 19, 9, 0, 3903, 514, 1, 0, 0, 0, 3904, 3905, 3, 17, 8, 0, 3905, 3906, 3, 35, 17, 0, 3906, 3907, 3, 41, 20, 0, 3907, 516, 1, 0, 0, 0, 3908, 3909, 3, 17, 8, 0, 3909, 3910, 3, 35, 17, 0, 3910, 3911, 3, 41, 20, 0, 3911, 3912, 3, 11, 5, 0, 3912, 3913, 3, 15, 7, 0, 3913, 518, 1, 0, 0, 0, 3914, 3915, 3, 17, 8, 0, 3915, 3916, 3, 35, 17, 0, 3916, 3917, 3, 41, 20, 0, 3917, 3918, 3, 15, 7, 0, 3918, 3919, 3, 23, 11, 0, 3919, 3920, 3, 19, 9, 0, 3920, 3921, 3, 33, 16, 0, 3921, 520, 1, 0, 0, 0, 3922, 3923, 3, 17, 8, 0, 3923, 3924, 3, 35, 17, 0, 3924, 3925, 3, 41, 20, 0, 3925, 3926, 3, 31, 15, 0, 3926, 3927, 3, 7, 3, 0, 3927, 3928, 3, 45, 22, 0, 3928, 522, 1, 0, 0, 0, 3929, 3930, 3, 17, 8, 0, 3930, 3931, 3, 35, 17, 0, 3931, 3932, 3, 41, 20, 0, 3932, 3933, 3, 45, 22, 0, 3933, 3934, 3, 41, 20, 0, 3934, 3935, 3, 7, 3, 0, 3935, 3936, 3, 33, 16, 0, 3936, 524, 1, 0, 0, 0, 3937, 3938, 3, 17, 8, 0, 3938, 3939, 3, 35, 17, 0, 3939, 3940, 3, 41, 20, 0, 3940, 3941, 3, 51, 25, 0, 3941, 3942, 3, 7, 3, 0, 3942, 3943, 3, 41, 20, 0, 3943, 3944, 3, 13, 6, 0, 3944, 526, 1, 0, 0, 0, 3945, 3946, 3, 17, 8, 0, 3946, 3947, 3, 35, 17, 0, 3947, 3948, 3, 47, 23, 0, 3948, 3949, 3, 33, 16, 0, 3949, 3950, 3, 13, 6, 0, 3950, 528, 1, 0, 0, 0, 3951, 3952, 3, 17, 8, 0, 3952, 3953, 3, 41, 20, 0, 3953, 3954, 3, 15, 7, 0, 3954, 3955, 3, 15, 7, 0, 3955, 530, 1, 0, 0, 0, 3956, 3957, 3, 17, 8, 0, 3957, 3958, 3, 41, 20, 0, 3958, 3959, 3, 15, 7, 0, 3959, 3960, 3, 15, 7, 0, 3960, 3961, 3, 57, 28, 0, 3961, 3962, 3, 15, 7, 0, 3962, 532, 1, 0, 0, 0, 3963, 3964, 3, 17, 8, 0, 3964, 3965, 3, 41, 20, 0, 3965, 3966, 3, 35, 17, 0, 3966, 3967, 3, 31, 15, 0, 3967, 534, 1, 0, 0, 0, 3968, 3969, 3, 17, 8, 0, 3969, 3970, 3, 47, 23, 0, 3970, 3971, 3, 29, 14, 0, 3971, 3972, 3, 29, 14, 0, 3972, 536, 1, 0, 0, 0, 3973, 3974, 3, 17, 8, 0, 3974, 3975, 3, 47, 23, 0, 3975, 3976, 3, 33, 16, 0, 3976, 3977, 3, 11, 5, 0, 3977, 3978, 3, 45, 22, 0, 3978, 3979, 3, 23, 11, 0, 3979, 3980, 3, 35, 17, 0, 3980, 3981, 3, 33, 16, 0, 3981, 538, 1, 0, 0, 0, 3982, 3983, 3, 17, 8, 0, 3983, 3984, 3, 47, 23, 0, 3984, 3985, 3, 43, 21, 0, 3985, 3986, 3, 23, 11, 0, 3986, 3987, 3, 35, 17, 0, 3987, 3988, 3, 33, 16, 0, 3988, 540, 1, 0, 0, 0, 3989, 3990, 3, 19, 9, 0, 3990, 542, 1, 0, 0, 0, 3991, 3992, 3, 19, 9, 0, 3992, 3993, 3, 15, 7, 0, 3993, 3994, 3, 33, 16, 0, 3994, 3995, 3, 15, 7, 0, 3995, 3996, 3, 41, 20, 0, 3996, 3997, 3, 7, 3, 0, 3997, 3998, 3, 29, 14, 0, 3998, 544, 1, 0, 0, 0, 3999, 4000, 3, 19, 9, 0, 4000, 4001, 3, 15, 7, 0, 4001, 4002, 3, 33, 16, 0, 4002, 4003, 3, 15, 7, 0, 4003, 4004, 3, 41, 20, 0, 4004, 4005, 3, 7, 3, 0, 4005, 4006, 3, 45, 22, 0, 4006, 4007, 3, 15, 7, 0, 4007, 4008, 3, 13, 6, 0, 4008, 546, 1, 0, 0, 0, 4009, 4010, 3, 19, 9, 0, 4010, 4011, 3, 15, 7, 0, 4011, 4012, 3, 45, 22, 0, 4012, 548, 1, 0, 0, 0, 4013, 4014, 3, 19, 9, 0, 4014, 4015, 3, 29, 14, 0, 4015, 4016, 3, 35, 17, 0, 4016, 4017, 3, 9, 4, 0, 4017, 4018, 3, 7, 3, 0, 4018, 4019, 3, 29, 14, 0, 4019, 550, 1, 0, 0, 0, 4020, 4021, 3, 19, 9, 0, 4021, 4022, 3, 35, 17, 0, 4022, 552, 1, 0, 0, 0, 4023, 4024, 3, 19, 9, 0, 4024, 4025, 3, 35, 17, 0, 4025, 4026, 3, 45, 22, 0, 4026, 4027, 3, 35, 17, 0, 4027, 554, 1, 0, 0, 0, 4028, 4029, 3, 19, 9, 0, 4029, 4030, 3, 41, 20, 0, 4030, 4031, 3, 7, 3, 0, 4031, 4032, 3, 33, 16, 0, 4032, 4033, 3, 45, 22, 0, 4033, 556, 1, 0, 0, 0, 4034, 4035, 3, 19, 9, 0, 4035, 4036, 3, 41, 20, 0, 4036, 4037, 3, 7, 3, 0, 4037, 4038, 3, 33, 16, 0, 4038, 4039, 3, 45, 22, 0, 4039, 4040, 3, 15, 7, 0, 4040, 4041, 3, 13, 6, 0, 4041, 558, 1, 0, 0, 0, 4042, 4043, 3, 19, 9, 0, 4043, 4044, 3, 41, 20, 0, 4044, 4045, 3, 15, 7, 0, 4045, 4046, 3, 7, 3, 0, 4046, 4047, 3, 45, 22, 0, 4047, 4048, 3, 15, 7, 0, 4048, 4049, 3, 43, 21, 0, 4049, 4050, 3, 45, 22, 0, 4050, 560, 1, 0, 0, 0, 4051, 4052, 3, 19, 9, 0, 4052, 4053, 3, 41, 20, 0, 4053, 4054, 3, 35, 17, 0, 4054, 4055, 3, 47, 23, 0, 4055, 4056, 3, 37, 18, 0, 4056, 562, 1, 0, 0, 0, 4057, 4058, 3, 19, 9, 0, 4058, 4059, 3, 41, 20, 0, 4059, 4060, 3, 35, 17, 0, 4060, 4061, 3, 47, 23, 0, 4061, 4062, 3, 37, 18, 0, 4062, 4063, 3, 23, 11, 0, 4063, 4064, 3, 33, 16, 0, 4064, 4065, 3, 19, 9, 0, 4065, 564, 1, 0, 0, 0, 4066, 4067, 3, 21, 10, 0, 4067, 4068, 3, 7, 3, 0, 4068, 4069, 3, 33, 16, 0, 4069, 4070, 3, 13, 6, 0, 4070, 4071, 3, 29, 14, 0, 4071, 4072, 3, 15, 7, 0, 4072, 4073, 3, 41, 20, 0, 4073, 566, 1, 0, 0, 0, 4074, 4075, 3, 21, 10, 0, 4075, 4076, 3, 7, 3, 0, 4076, 4077, 3, 49, 24, 0, 4077, 4078, 3, 23, 11, 0, 4078, 4079, 3, 33, 16, 0, 4079, 4080, 3, 19, 9, 0, 4080, 568, 1, 0, 0, 0, 4081, 4082, 3, 21, 10, 0, 4082, 4083, 3, 23, 11, 0, 4083, 4084, 3, 15, 7, 0, 4084, 4085, 3, 41, 20, 0, 4085, 4086, 3, 7, 3, 0, 4086, 4087, 3, 41, 20, 0, 4087, 4088, 3, 11, 5, 0, 4088, 4089, 3, 21, 10, 0, 4089, 4090, 3, 55, 27, 0, 4090, 570, 1, 0, 0, 0, 4091, 4092, 3, 21, 10, 0, 4092, 4093, 3, 35, 17, 0, 4093, 4094, 3, 29, 14, 0, 4094, 4095, 3, 13, 6, 0, 4095, 572, 1, 0, 0, 0, 4096, 4097, 3, 21, 10, 0, 4097, 4098, 3, 35, 17, 0, 4098, 4099, 3, 43, 21, 0, 4099, 4100, 3, 45, 22, 0, 4100, 574, 1, 0, 0, 0, 4101, 4102, 3, 21, 10, 0, 4102, 4103, 3, 35, 17, 0, 4103, 4104, 3, 47, 23, 0, 4104, 4105, 3, 41, 20, 0, 4105, 576, 1, 0, 0, 0, 4106, 4107, 3, 23, 11, 0, 4107, 4108, 3, 13, 6, 0, 4108, 4109, 3, 15, 7, 0, 4109, 4110, 3, 33, 16, 0, 4110, 4111, 3, 45, 22, 0, 4111, 4112, 3, 23, 11, 0, 4112, 4113, 3, 45, 22, 0, 4113, 4114, 3, 55, 27, 0, 4114, 578, 1, 0, 0, 0, 4115, 4116, 3, 23, 11, 0, 4116, 4117, 3, 19, 9, 0, 4117, 4118, 3, 33, 16, 0, 4118, 4119, 3, 35, 17, 0, 4119, 4120, 3, 41, 20, 0, 4120, 4121, 3, 15, 7, 0, 4121, 580, 1, 0, 0, 0, 4122, 4123, 3, 23, 11, 0, 4123, 4124, 3, 29, 14, 0, 4124, 4125, 3, 23, 11, 0, 4125, 4126, 3, 27, 13, 0, 4126, 4127, 3, 15, 7, 0, 4127, 582, 1, 0, 0, 0, 4128, 4129, 3, 23, 11, 0, 4129, 4130, 3, 31, 15, 0, 4130, 4131, 3, 31, 15, 0, 4131, 4132, 3, 15, 7, 0, 4132, 4133, 3, 13, 6, 0, 4133, 4134, 3, 23, 11, 0, 4134, 4135, 3, 7, 3, 0, 4135, 4136, 3, 45, 22, 0, 4136, 4137, 3, 15, 7, 0, 4137, 584, 1, 0, 0, 0, 4138, 4139, 3, 23, 11, 0, 4139, 4140, 3, 31, 15, 0, 4140, 4141, 3, 31, 15, 0, 4141, 4142, 3, 47, 23, 0, 4142, 4143, 3, 45, 22, 0, 4143, 4144, 3, 7, 3, 0, 4144, 4145, 3, 9, 4, 0, 4145, 4146, 3, 29, 14, 0, 4146, 4147, 3, 15, 7, 0, 4147, 586, 1, 0, 0, 0, 4148, 4149, 3, 23, 11, 0, 4149, 4150, 3, 31, 15, 0, 4150, 4151, 3, 37, 18, 0, 4151, 4152, 3, 29, 14, 0, 4152, 4153, 3, 15, 7, 0, 4153, 4154, 3, 31, 15, 0, 4154, 4155, 3, 15, 7, 0, 4155, 4156, 3, 33, 16, 0, 4156, 4157, 3, 45, 22, 0, 4157, 4158, 3, 7, 3, 0, 4158, 4159, 3, 45, 22, 0, 4159, 4160, 3, 23, 11, 0, 4160, 4161, 3, 35, 17, 0, 4161, 4162, 3, 33, 16, 0, 4162, 588, 1, 0, 0, 0, 4163, 4164, 3, 23, 11, 0, 4164, 4165, 3, 31, 15, 0, 4165, 4166, 3, 37, 18, 0, 4166, 4167, 3, 29, 14, 0, 4167, 4168, 3, 23, 11, 0, 4168, 4169, 3, 11, 5, 0, 4169, 4170, 3, 23, 11, 0, 4170, 4171, 3, 45, 22, 0, 4171, 590, 1, 0, 0, 0, 4172, 4173, 3, 23, 11, 0, 4173, 4174, 3, 33, 16, 0, 4174, 592, 1, 0, 0, 0, 4175, 4176, 3, 23, 11, 0, 4176, 4177, 3, 33, 16, 0, 4177, 4178, 3, 11, 5, 0, 4178, 4179, 3, 29, 14, 0, 4179, 4180, 3, 47, 23, 0, 4180, 4181, 3, 13, 6, 0, 4181, 4182, 3, 23, 11, 0, 4182, 4183, 3, 33, 16, 0, 4183, 4184, 3, 19, 9, 0, 4184, 594, 1, 0, 0, 0, 4185, 4186, 3, 23, 11, 0, 4186, 4187, 3, 33, 16, 0, 4187, 4188, 3, 11, 5, 0, 4188, 4189, 3, 41, 20, 0, 4189, 4190, 3, 15, 7, 0, 4190, 4191, 3, 31, 15, 0, 4191, 4192, 3, 15, 7, 0, 4192, 4193, 3, 33, 16, 0, 4193, 4194, 3, 45, 22, 0, 4194, 596, 1, 0, 0, 0, 4195, 4196, 3, 23, 11, 0, 4196, 4197, 3, 33, 16, 0, 4197, 4198, 3, 13, 6, 0, 4198, 4199, 3, 15, 7, 0, 4199, 4200, 3, 53, 26, 0, 4200, 598, 1, 0, 0, 0, 4201, 4202, 3, 23, 11, 0, 4202, 4203, 3, 33, 16, 0, 4203, 4204, 3, 13, 6, 0, 4204, 4205, 3, 23, 11, 0, 4205, 4206, 3, 11, 5, 0, 4206, 4207, 3, 7, 3, 0, 4207, 4208, 3, 45, 22, 0, 4208, 4209, 3, 35, 17, 0, 4209, 4210, 3, 41, 20, 0, 4210, 600, 1, 0, 0, 0, 4211, 4212, 3, 23, 11, 0, 4212, 4213, 3, 33, 16, 0, 4213, 4214, 3, 17, 8, 0, 4214, 4215, 3, 23, 11, 0, 4215, 4216, 3, 53, 26, 0, 4216, 602, 1, 0, 0, 0, 4217, 4218, 3, 23, 11, 0, 4218, 4219, 3, 33, 16, 0, 4219, 4220, 3, 21, 10, 0, 4220, 4221, 3, 15, 7, 0, 4221, 4222, 3, 41, 20, 0, 4222, 4223, 3, 23, 11, 0, 4223, 4224, 3, 45, 22, 0, 4224, 4225, 3, 43, 21, 0, 4225, 604, 1, 0, 0, 0, 4226, 4227, 3, 23, 11, 0, 4227, 4228, 3, 33, 16, 0, 4228, 4229, 3, 23, 11, 0, 4229, 4230, 3, 45, 22, 0, 4230, 4231, 3, 23, 11, 0, 4231, 4232, 3, 7, 3, 0, 4232, 4233, 3, 29, 14, 0, 4233, 4234, 3, 23, 11, 0, 4234, 4235, 3, 57, 28, 0, 4235, 4236, 3, 15, 7, 0, 4236, 606, 1, 0, 0, 0, 4237, 4238, 3, 23, 11, 0, 4238, 4239, 3, 33, 16, 0, 4239, 4240, 3, 23, 11, 0, 4240, 4241, 3, 45, 22, 0, 4241, 4242, 3, 23, 11, 0, 4242, 4243, 3, 7, 3, 0, 4243, 4244, 3, 29, 14, 0, 4244, 4245, 3, 29, 14, 0, 4245, 4246, 3, 55, 27, 0, 4246, 608, 1, 0, 0, 0, 4247, 4248, 3, 23, 11, 0, 4248, 4249, 3, 33, 16, 0, 4249, 4250, 3, 33, 16, 0, 4250, 4251, 3, 15, 7, 0, 4251, 4252, 3, 41, 20, 0, 4252, 610, 1, 0, 0, 0, 4253, 4254, 3, 23, 11, 0, 4254, 4255, 3, 33, 16, 0, 4255, 4256, 3, 35, 17, 0, 4256, 4257, 3, 47, 23, 0, 4257, 4258, 3, 45, 22, 0, 4258, 612, 1, 0, 0, 0, 4259, 4260, 3, 23, 11, 0, 4260, 4261, 3, 33, 16, 0, 4261, 4262, 3, 37, 18, 0, 4262, 4263, 3, 47, 23, 0, 4263, 4264, 3, 45, 22, 0, 4264, 614, 1, 0, 0, 0, 4265, 4266, 3, 23, 11, 0, 4266, 4267, 3, 33, 16, 0, 4267, 4268, 3, 43, 21, 0, 4268, 4269, 3, 15, 7, 0, 4269, 4270, 3, 33, 16, 0, 4270, 4271, 3, 43, 21, 0, 4271, 4272, 3, 23, 11, 0, 4272, 4273, 3, 45, 22, 0, 4273, 4274, 3, 23, 11, 0, 4274, 4275, 3, 49, 24, 0, 4275, 4276, 3, 15, 7, 0, 4276, 616, 1, 0, 0, 0, 4277, 4278, 3, 23, 11, 0, 4278, 4279, 3, 33, 16, 0, 4279, 4280, 3, 43, 21, 0, 4280, 4281, 3, 15, 7, 0, 4281, 4282, 3, 41, 20, 0, 4282, 4283, 3, 45, 22, 0, 4283, 618, 1, 0, 0, 0, 4284, 4285, 3, 23, 11, 0, 4285, 4286, 3, 33, 16, 0, 4286, 4287, 3, 43, 21, 0, 4287, 4288, 3, 45, 22, 0, 4288, 4289, 3, 7, 3, 0, 4289, 4290, 3, 33, 16, 0, 4290, 4291, 3, 11, 5, 0, 4291, 4292, 3, 15, 7, 0, 4292, 620, 1, 0, 0, 0, 4293, 4294, 3, 23, 11, 0, 4294, 4295, 3, 33, 16, 0, 4295, 4296, 3, 43, 21, 0, 4296, 4297, 3, 45, 22, 0, 4297, 4298, 3, 7, 3, 0, 4298, 4299, 3, 33, 16, 0, 4299, 4300, 3, 45, 22, 0, 4300, 4301, 3, 23, 11, 0, 4301, 4302, 3, 7, 3, 0, 4302, 4303, 3, 9, 4, 0, 4303, 4304, 3, 29, 14, 0, 4304, 4305, 3, 15, 7, 0, 4305, 622, 1, 0, 0, 0, 4306, 4307, 3, 23, 11, 0, 4307, 4308, 3, 33, 16, 0, 4308, 4309, 3, 43, 21, 0, 4309, 4310, 3, 45, 22, 0, 4310, 4311, 3, 15, 7, 0, 4311, 4312, 3, 7, 3, 0, 4312, 4313, 3, 13, 6, 0, 4313, 624, 1, 0, 0, 0, 4314, 4315, 3, 23, 11, 0, 4315, 4316, 3, 33, 16, 0, 4316, 4317, 3, 45, 22, 0, 4317, 626, 1, 0, 0, 0, 4318, 4319, 3, 23, 11, 0, 4319, 4320, 3, 33, 16, 0, 4320, 4321, 3, 45, 22, 0, 4321, 4322, 3, 15, 7, 0, 4322, 4323, 3, 19, 9, 0, 4323, 4324, 3, 15, 7, 0, 4324, 4325, 3, 41, 20, 0, 4325, 628, 1, 0, 0, 0, 4326, 4327, 3, 23, 11, 0, 4327, 4328, 3, 33, 16, 0, 4328, 4329, 3, 45, 22, 0, 4329, 4330, 3, 15, 7, 0, 4330, 4331, 3, 41, 20, 0, 4331, 4332, 3, 43, 21, 0, 4332, 4333, 3, 15, 7, 0, 4333, 4334, 3, 11, 5, 0, 4334, 4335, 3, 45, 22, 0, 4335, 630, 1, 0, 0, 0, 4336, 4337, 3, 23, 11, 0, 4337, 4338, 3, 33, 16, 0, 4338, 4339, 3, 45, 22, 0, 4339, 4340, 3, 15, 7, 0, 4340, 4341, 3, 41, 20, 0, 4341, 4342, 3, 43, 21, 0, 4342, 4343, 3, 15, 7, 0, 4343, 4344, 3, 11, 5, 0, 4344, 4345, 3, 45, 22, 0, 4345, 4346, 3, 23, 11, 0, 4346, 4347, 3, 35, 17, 0, 4347, 4348, 3, 33, 16, 0, 4348, 632, 1, 0, 0, 0, 4349, 4350, 3, 23, 11, 0, 4350, 4351, 3, 33, 16, 0, 4351, 4352, 3, 45, 22, 0, 4352, 4353, 3, 15, 7, 0, 4353, 4354, 3, 41, 20, 0, 4354, 4355, 3, 49, 24, 0, 4355, 4356, 3, 7, 3, 0, 4356, 4357, 3, 29, 14, 0, 4357, 634, 1, 0, 0, 0, 4358, 4359, 3, 23, 11, 0, 4359, 4360, 3, 33, 16, 0, 4360, 4361, 3, 45, 22, 0, 4361, 4362, 3, 35, 17, 0, 4362, 636, 1, 0, 0, 0, 4363, 4364, 3, 23, 11, 0, 4364, 4365, 3, 33, 16, 0, 4365, 4366, 3, 49, 24, 0, 4366, 4367, 3, 35, 17, 0, 4367, 4368, 3, 27, 13, 0, 4368, 4369, 3, 15, 7, 0, 4369, 4370, 3, 41, 20, 0, 4370, 638, 1, 0, 0, 0, 4371, 4372, 3, 23, 11, 0, 4372, 4373, 3, 43, 21, 0, 4373, 640, 1, 0, 0, 0, 4374, 4375, 3, 23, 11, 0, 4375, 4376, 3, 43, 21, 0, 4376, 4377, 3, 35, 17, 0, 4377, 4378, 3, 29, 14, 0, 4378, 4379, 3, 7, 3, 0, 4379, 4380, 3, 45, 22, 0, 4380, 4381, 3, 23, 11, 0, 4381, 4382, 3, 35, 17, 0, 4382, 4383, 3, 33, 16, 0, 4383, 642, 1, 0, 0, 0, 4384, 4385, 3, 23, 11, 0, 4385, 4386, 3, 45, 22, 0, 4386, 4387, 3, 15, 7, 0, 4387, 4388, 3, 41, 20, 0, 4388, 4389, 3, 7, 3, 0, 4389, 4390, 3, 45, 22, 0, 4390, 4391, 3, 15, 7, 0, 4391, 644, 1, 0, 0, 0, 4392, 4393, 3, 25, 12, 0, 4393, 4394, 3, 35, 17, 0, 4394, 4395, 3, 23, 11, 0, 4395, 4396, 3, 33, 16, 0, 4396, 646, 1, 0, 0, 0, 4397, 4398, 3, 27, 13, 0, 4398, 648, 1, 0, 0, 0, 4399, 4400, 3, 27, 13, 0, 4400, 4401, 3, 15, 7, 0, 4401, 4402, 3, 55, 27, 0, 4402, 650, 1, 0, 0, 0, 4403, 4404, 3, 27, 13, 0, 4404, 4405, 3, 15, 7, 0, 4405, 4406, 3, 55, 27, 0, 4406, 4407, 5, 95, 0, 0, 4407, 4408, 3, 31, 15, 0, 4408, 4409, 3, 15, 7, 0, 4409, 4410, 3, 31, 15, 0, 4410, 4411, 3, 9, 4, 0, 4411, 4412, 3, 15, 7, 0, 4412, 4413, 3, 41, 20, 0, 4413, 652, 1, 0, 0, 0, 4414, 4415, 3, 27, 13, 0, 4415, 4416, 3, 15, 7, 0, 4416, 4417, 3, 55, 27, 0, 4417, 4418, 5, 95, 0, 0, 4418, 4419, 3, 45, 22, 0, 4419, 4420, 3, 55, 27, 0, 4420, 4421, 3, 37, 18, 0, 4421, 4422, 3, 15, 7, 0, 4422, 654, 1, 0, 0, 0, 4423, 4424, 3, 29, 14, 0, 4424, 4425, 3, 7, 3, 0, 4425, 4426, 3, 9, 4, 0, 4426, 4427, 3, 15, 7, 0, 4427, 4428, 3, 29, 14, 0, 4428, 656, 1, 0, 0, 0, 4429, 4430, 3, 29, 14, 0, 4430, 4431, 3, 7, 3, 0, 4431, 4432, 3, 33, 16, 0, 4432, 4433, 3, 11, 5, 0, 4433, 4434, 3, 35, 17, 0, 4434, 4435, 3, 31, 15, 0, 4435, 4436, 3, 37, 18, 0, 4436, 4437, 3, 23, 11, 0, 4437, 4438, 3, 29, 14, 0, 4438, 4439, 3, 15, 7, 0, 4439, 4440, 3, 41, 20, 0, 4440, 658, 1, 0, 0, 0, 4441, 4442, 3, 29, 14, 0, 4442, 4443, 3, 7, 3, 0, 4443, 4444, 3, 33, 16, 0, 4444, 4445, 3, 19, 9, 0, 4445, 4446, 3, 47, 23, 0, 4446, 4447, 3, 7, 3, 0, 4447, 4448, 3, 19, 9, 0, 4448, 4449, 3, 15, 7, 0, 4449, 660, 1, 0, 0, 0, 4450, 4451, 3, 29, 14, 0, 4451, 4452, 3, 7, 3, 0, 4452, 4453, 3, 41, 20, 0, 4453, 4454, 3, 19, 9, 0, 4454, 4455, 3, 15, 7, 0, 4455, 662, 1, 0, 0, 0, 4456, 4457, 3, 29, 14, 0, 4457, 4458, 3, 7, 3, 0, 4458, 4459, 3, 43, 21, 0, 4459, 4460, 3, 45, 22, 0, 4460, 664, 1, 0, 0, 0, 4461, 4462, 3, 29, 14, 0, 4462, 4463, 3, 7, 3, 0, 4463, 4464, 3, 45, 22, 0, 4464, 4465, 3, 15, 7, 0, 4465, 4466, 3, 41, 20, 0, 4466, 4467, 3, 7, 3, 0, 4467, 4468, 3, 29, 14, 0, 4468, 666, 1, 0, 0, 0, 4469, 4470, 3, 29, 14, 0, 4470, 4471, 3, 15, 7, 0, 4471, 4472, 3, 7, 3, 0, 4472, 4473, 3, 13, 6, 0, 4473, 4474, 3, 23, 11, 0, 4474, 4475, 3, 33, 16, 0, 4475, 4476, 3, 19, 9, 0, 4476, 668, 1, 0, 0, 0, 4477, 4478, 3, 29, 14, 0, 4478, 4479, 3, 15, 7, 0, 4479, 4480, 3, 7, 3, 0, 4480, 4481, 3, 43, 21, 0, 4481, 4482, 3, 45, 22, 0, 4482, 670, 1, 0, 0, 0, 4483, 4484, 3, 29, 14, 0, 4484, 4485, 3, 15, 7, 0, 4485, 4486, 3, 17, 8, 0, 4486, 4487, 3, 45, 22, 0, 4487, 672, 1, 0, 0, 0, 4488, 4489, 3, 29, 14, 0, 4489, 4490, 3, 15, 7, 0, 4490, 4491, 3, 33, 16, 0, 4491, 4492, 3, 19, 9, 0, 4492, 4493, 3, 45, 22, 0, 4493, 4494, 3, 21, 10, 0, 4494, 674, 1, 0, 0, 0, 4495, 4496, 3, 29, 14, 0, 4496, 4497, 3, 15, 7, 0, 4497, 4498, 3, 43, 21, 0, 4498, 4499, 3, 43, 21, 0, 4499, 676, 1, 0, 0, 0, 4500, 4501, 3, 29, 14, 0, 4501, 4502, 3, 15, 7, 0, 4502, 4503, 3, 49, 24, 0, 4503, 4504, 3, 15, 7, 0, 4504, 4505, 3, 29, 14, 0, 4505, 678, 1, 0, 0, 0, 4506, 4507, 3, 29, 14, 0, 4507, 4508, 3, 23, 11, 0, 4508, 4509, 3, 27, 13, 0, 4509, 4510, 3, 15, 7, 0, 4510, 680, 1, 0, 0, 0, 4511, 4512, 3, 29, 14, 0, 4512, 4513, 3, 23, 11, 0, 4513, 4514, 3, 31, 15, 0, 4514, 4515, 3, 23, 11, 0, 4515, 4516, 3, 45, 22, 0, 4516, 682, 1, 0, 0, 0, 4517, 4518, 3, 29, 14, 0, 4518, 4519, 3, 23, 11, 0, 4519, 4520, 3, 43, 21, 0, 4520, 4521, 3, 45, 22, 0, 4521, 4522, 3, 15, 7, 0, 4522, 4523, 3, 33, 16, 0, 4523, 684, 1, 0, 0, 0, 4524, 4525, 3, 29, 14, 0, 4525, 4526, 3, 33, 16, 0, 4526, 686, 1, 0, 0, 0, 4527, 4528, 3, 29, 14, 0, 4528, 4529, 3, 35, 17, 0, 4529, 4530, 3, 7, 3, 0, 4530, 4531, 3, 13, 6, 0, 4531, 688, 1, 0, 0, 0, 4532, 4533, 3, 29, 14, 0, 4533, 4534, 3, 35, 17, 0, 4534, 4535, 3, 11, 5, 0, 4535, 4536, 3, 7, 3, 0, 4536, 4537, 3, 29, 14, 0, 4537, 690, 1, 0, 0, 0, 4538, 4539, 3, 29, 14, 0, 4539, 4540, 3, 35, 17, 0, 4540, 4541, 3, 11, 5, 0, 4541, 4542, 3, 7, 3, 0, 4542, 4543, 3, 29, 14, 0, 4543, 4544, 3, 45, 22, 0, 4544, 4545, 3, 23, 11, 0, 4545, 4546, 3, 31, 15, 0, 4546, 4547, 3, 15, 7, 0, 4547, 692, 1, 0, 0, 0, 4548, 4549, 3, 29, 14, 0, 4549, 4550, 3, 35, 17, 0, 4550, 4551, 3, 11, 5, 0, 4551, 4552, 3, 7, 3, 0, 4552, 4553, 3, 29, 14, 0, 4553, 4554, 3, 45, 22, 0, 4554, 4555, 3, 23, 11, 0, 4555, 4556, 3, 31, 15, 0, 4556, 4557, 3, 15, 7, 0, 4557, 4558, 3, 43, 21, 0, 4558, 4559, 3, 45, 22, 0, 4559, 4560, 3, 7, 3, 0, 4560, 4561, 3, 31, 15, 0, 4561, 4562, 3, 37, 18, 0, 4562, 694, 1, 0, 0, 0, 4563, 4564, 3, 29, 14, 0, 4564, 4565, 3, 35, 17, 0, 4565, 4566, 3, 11, 5, 0, 4566, 4567, 3, 7, 3, 0, 4567, 4568, 3, 45, 22, 0, 4568, 4569, 3, 23, 11, 0, 4569, 4570, 3, 35, 17, 0, 4570, 4571, 3, 33, 16, 0, 4571, 696, 1, 0, 0, 0, 4572, 4573, 3, 29, 14, 0, 4573, 4574, 3, 35, 17, 0, 4574, 4575, 3, 11, 5, 0, 4575, 4576, 3, 7, 3, 0, 4576, 4577, 3, 45, 22, 0, 4577, 4578, 3, 35, 17, 0, 4578, 4579, 3, 41, 20, 0, 4579, 698, 1, 0, 0, 0, 4580, 4581, 3, 29, 14, 0, 4581, 4582, 3, 35, 17, 0, 4582, 4583, 3, 11, 5, 0, 4583, 4584, 3, 27, 13, 0, 4584, 700, 1, 0, 0, 0, 4585, 4586, 3, 29, 14, 0, 4586, 4587, 3, 35, 17, 0, 4587, 4588, 3, 11, 5, 0, 4588, 4589, 3, 27, 13, 0, 4589, 4590, 3, 15, 7, 0, 4590, 4591, 3, 13, 6, 0, 4591, 702, 1, 0, 0, 0, 4592, 4593, 3, 29, 14, 0, 4593, 4594, 3, 35, 17, 0, 4594, 4595, 3, 51, 25, 0, 4595, 4596, 3, 15, 7, 0, 4596, 4597, 3, 41, 20, 0, 4597, 704, 1, 0, 0, 0, 4598, 4599, 3, 31, 15, 0, 4599, 706, 1, 0, 0, 0, 4600, 4601, 3, 31, 15, 0, 4601, 4602, 3, 7, 3, 0, 4602, 4603, 3, 23, 11, 0, 4603, 4604, 3, 33, 16, 0, 4604, 708, 1, 0, 0, 0, 4605, 4606, 3, 31, 15, 0, 4606, 4607, 3, 7, 3, 0, 4607, 4608, 3, 37, 18, 0, 4608, 710, 1, 0, 0, 0, 4609, 4610, 3, 31, 15, 0, 4610, 4611, 3, 7, 3, 0, 4611, 4612, 3, 37, 18, 0, 4612, 4613, 3, 37, 18, 0, 4613, 4614, 3, 23, 11, 0, 4614, 4615, 3, 33, 16, 0, 4615, 4616, 3, 19, 9, 0, 4616, 712, 1, 0, 0, 0, 4617, 4618, 3, 31, 15, 0, 4618, 4619, 3, 7, 3, 0, 4619, 4620, 3, 45, 22, 0, 4620, 4621, 3, 11, 5, 0, 4621, 4622, 3, 21, 10, 0, 4622, 714, 1, 0, 0, 0, 4623, 4624, 3, 31, 15, 0, 4624, 4625, 3, 7, 3, 0, 4625, 4626, 3, 45, 22, 0, 4626, 4627, 3, 11, 5, 0, 4627, 4628, 3, 21, 10, 0, 4628, 4629, 5, 95, 0, 0, 4629, 4630, 3, 43, 21, 0, 4630, 4631, 3, 23, 11, 0, 4631, 4632, 3, 31, 15, 0, 4632, 4633, 3, 37, 18, 0, 4633, 4634, 3, 29, 14, 0, 4634, 4635, 3, 15, 7, 0, 4635, 716, 1, 0, 0, 0, 4636, 4637, 3, 31, 15, 0, 4637, 4638, 3, 7, 3, 0, 4638, 4639, 3, 45, 22, 0, 4639, 4640, 3, 11, 5, 0, 4640, 4641, 3, 21, 10, 0, 4641, 4642, 3, 15, 7, 0, 4642, 4643, 3, 13, 6, 0, 4643, 718, 1, 0, 0, 0, 4644, 4645, 3, 31, 15, 0, 4645, 4646, 3, 7, 3, 0, 4646, 4647, 3, 53, 26, 0, 4647, 720, 1, 0, 0, 0, 4648, 4649, 3, 31, 15, 0, 4649, 4650, 3, 7, 3, 0, 4650, 4651, 3, 53, 26, 0, 4651, 4652, 3, 49, 24, 0, 4652, 4653, 3, 7, 3, 0, 4653, 4654, 3, 29, 14, 0, 4654, 4655, 3, 47, 23, 0, 4655, 4656, 3, 15, 7, 0, 4656, 722, 1, 0, 0, 0, 4657, 4658, 3, 31, 15, 0, 4658, 4659, 3, 15, 7, 0, 4659, 4660, 3, 31, 15, 0, 4660, 4661, 3, 9, 4, 0, 4661, 4662, 3, 15, 7, 0, 4662, 4663, 3, 41, 20, 0, 4663, 724, 1, 0, 0, 0, 4664, 4665, 3, 31, 15, 0, 4665, 4666, 3, 15, 7, 0, 4666, 4667, 3, 41, 20, 0, 4667, 4668, 3, 19, 9, 0, 4668, 4669, 3, 15, 7, 0, 4669, 726, 1, 0, 0, 0, 4670, 4671, 3, 31, 15, 0, 4671, 4672, 3, 15, 7, 0, 4672, 4673, 3, 43, 21, 0, 4673, 4674, 3, 43, 21, 0, 4674, 4675, 3, 7, 3, 0, 4675, 4676, 3, 19, 9, 0, 4676, 4677, 3, 15, 7, 0, 4677, 4678, 5, 95, 0, 0, 4678, 4679, 3, 29, 14, 0, 4679, 4680, 3, 15, 7, 0, 4680, 4681, 3, 33, 16, 0, 4681, 4682, 3, 19, 9, 0, 4682, 4683, 3, 45, 22, 0, 4683, 4684, 3, 21, 10, 0, 4684, 728, 1, 0, 0, 0, 4685, 4686, 3, 31, 15, 0, 4686, 4687, 3, 15, 7, 0, 4687, 4688, 3, 43, 21, 0, 4688, 4689, 3, 43, 21, 0, 4689, 4690, 3, 7, 3, 0, 4690, 4691, 3, 19, 9, 0, 4691, 4692, 3, 15, 7, 0, 4692, 4693, 5, 95, 0, 0, 4693, 4694, 3, 35, 17, 0, 4694, 4695, 3, 11, 5, 0, 4695, 4696, 3, 45, 22, 0, 4696, 4697, 3, 15, 7, 0, 4697, 4698, 3, 45, 22, 0, 4698, 4699, 5, 95, 0, 0, 4699, 4700, 3, 29, 14, 0, 4700, 4701, 3, 15, 7, 0, 4701, 4702, 3, 33, 16, 0, 4702, 4703, 3, 19, 9, 0, 4703, 4704, 3, 45, 22, 0, 4704, 4705, 3, 21, 10, 0, 4705, 730, 1, 0, 0, 0, 4706, 4707, 3, 31, 15, 0, 4707, 4708, 3, 15, 7, 0, 4708, 4709, 3, 43, 21, 0, 4709, 4710, 3, 43, 21, 0, 4710, 4711, 3, 7, 3, 0, 4711, 4712, 3, 19, 9, 0, 4712, 4713, 3, 15, 7, 0, 4713, 4714, 5, 95, 0, 0, 4714, 4715, 3, 45, 22, 0, 4715, 4716, 3, 15, 7, 0, 4716, 4717, 3, 53, 26, 0, 4717, 4718, 3, 45, 22, 0, 4718, 732, 1, 0, 0, 0, 4719, 4720, 3, 31, 15, 0, 4720, 4721, 3, 15, 7, 0, 4721, 4722, 3, 45, 22, 0, 4722, 4723, 3, 21, 10, 0, 4723, 4724, 3, 35, 17, 0, 4724, 4725, 3, 13, 6, 0, 4725, 734, 1, 0, 0, 0, 4726, 4727, 3, 31, 15, 0, 4727, 4728, 3, 23, 11, 0, 4728, 4729, 3, 33, 16, 0, 4729, 736, 1, 0, 0, 0, 4730, 4731, 3, 31, 15, 0, 4731, 4732, 3, 23, 11, 0, 4732, 4733, 3, 33, 16, 0, 4733, 4734, 3, 47, 23, 0, 4734, 4735, 3, 45, 22, 0, 4735, 4736, 3, 15, 7, 0, 4736, 738, 1, 0, 0, 0, 4737, 4738, 3, 31, 15, 0, 4738, 4739, 3, 23, 11, 0, 4739, 4740, 3, 33, 16, 0, 4740, 4741, 3, 49, 24, 0, 4741, 4742, 3, 7, 3, 0, 4742, 4743, 3, 29, 14, 0, 4743, 4744, 3, 47, 23, 0, 4744, 4745, 3, 15, 7, 0, 4745, 740, 1, 0, 0, 0, 4746, 4747, 3, 31, 15, 0, 4747, 4748, 3, 35, 17, 0, 4748, 4749, 3, 13, 6, 0, 4749, 742, 1, 0, 0, 0, 4750, 4751, 3, 31, 15, 0, 4751, 4752, 3, 35, 17, 0, 4752, 4753, 3, 13, 6, 0, 4753, 4754, 3, 15, 7, 0, 4754, 744, 1, 0, 0, 0, 4755, 4756, 3, 31, 15, 0, 4756, 4757, 3, 35, 17, 0, 4757, 4758, 3, 13, 6, 0, 4758, 4759, 3, 23, 11, 0, 4759, 4760, 3, 17, 8, 0, 4760, 4761, 3, 23, 11, 0, 4761, 4762, 3, 15, 7, 0, 4762, 4763, 3, 43, 21, 0, 4763, 746, 1, 0, 0, 0, 4764, 4765, 3, 31, 15, 0, 4765, 4766, 3, 35, 17, 0, 4766, 4767, 3, 13, 6, 0, 4767, 4768, 3, 23, 11, 0, 4768, 4769, 3, 17, 8, 0, 4769, 4770, 3, 55, 27, 0, 4770, 748, 1, 0, 0, 0, 4771, 4772, 3, 31, 15, 0, 4772, 4773, 3, 35, 17, 0, 4773, 4774, 3, 13, 6, 0, 4774, 4775, 3, 47, 23, 0, 4775, 4776, 3, 29, 14, 0, 4776, 4777, 3, 15, 7, 0, 4777, 750, 1, 0, 0, 0, 4778, 4779, 3, 31, 15, 0, 4779, 4780, 3, 35, 17, 0, 4780, 4781, 3, 33, 16, 0, 4781, 4782, 3, 45, 22, 0, 4782, 4783, 3, 21, 10, 0, 4783, 752, 1, 0, 0, 0, 4784, 4785, 3, 31, 15, 0, 4785, 4786, 3, 35, 17, 0, 4786, 4787, 3, 41, 20, 0, 4787, 4788, 3, 15, 7, 0, 4788, 754, 1, 0, 0, 0, 4789, 4790, 3, 31, 15, 0, 4790, 4791, 3, 35, 17, 0, 4791, 4792, 3, 49, 24, 0, 4792, 4793, 3, 15, 7, 0, 4793, 756, 1, 0, 0, 0, 4794, 4795, 3, 31, 15, 0, 4795, 4796, 3, 47, 23, 0, 4796, 4797, 3, 29, 14, 0, 4797, 4798, 3, 45, 22, 0, 4798, 4799, 3, 23, 11, 0, 4799, 4800, 3, 43, 21, 0, 4800, 4801, 3, 15, 7, 0, 4801, 4802, 3, 45, 22, 0, 4802, 758, 1, 0, 0, 0, 4803, 4804, 3, 31, 15, 0, 4804, 4805, 3, 47, 23, 0, 4805, 4806, 3, 31, 15, 0, 4806, 4807, 3, 37, 18, 0, 4807, 4808, 3, 43, 21, 0, 4808, 760, 1, 0, 0, 0, 4809, 4810, 3, 33, 16, 0, 4810, 4811, 3, 7, 3, 0, 4811, 4812, 3, 31, 15, 0, 4812, 4813, 3, 15, 7, 0, 4813, 762, 1, 0, 0, 0, 4814, 4815, 3, 33, 16, 0, 4815, 4816, 3, 7, 3, 0, 4816, 4817, 3, 31, 15, 0, 4817, 4818, 3, 15, 7, 0, 4818, 4819, 3, 43, 21, 0, 4819, 764, 1, 0, 0, 0, 4820, 4821, 3, 33, 16, 0, 4821, 4822, 3, 7, 3, 0, 4822, 4823, 3, 45, 22, 0, 4823, 4824, 3, 23, 11, 0, 4824, 4825, 3, 35, 17, 0, 4825, 4826, 3, 33, 16, 0, 4826, 4827, 3, 7, 3, 0, 4827, 4828, 3, 29, 14, 0, 4828, 766, 1, 0, 0, 0, 4829, 4830, 3, 33, 16, 0, 4830, 4831, 3, 7, 3, 0, 4831, 4832, 3, 45, 22, 0, 4832, 4833, 3, 47, 23, 0, 4833, 4834, 3, 41, 20, 0, 4834, 4835, 3, 7, 3, 0, 4835, 4836, 3, 29, 14, 0, 4836, 768, 1, 0, 0, 0, 4837, 4838, 3, 33, 16, 0, 4838, 4839, 3, 11, 5, 0, 4839, 4840, 3, 21, 10, 0, 4840, 4841, 3, 7, 3, 0, 4841, 4842, 3, 41, 20, 0, 4842, 770, 1, 0, 0, 0, 4843, 4844, 3, 33, 16, 0, 4844, 4845, 3, 11, 5, 0, 4845, 4846, 3, 29, 14, 0, 4846, 4847, 3, 35, 17, 0, 4847, 4848, 3, 9, 4, 0, 4848, 772, 1, 0, 0, 0, 4849, 4850, 3, 33, 16, 0, 4850, 4851, 3, 15, 7, 0, 4851, 4852, 3, 43, 21, 0, 4852, 4853, 3, 45, 22, 0, 4853, 4854, 3, 23, 11, 0, 4854, 4855, 3, 33, 16, 0, 4855, 4856, 3, 19, 9, 0, 4856, 774, 1, 0, 0, 0, 4857, 4858, 3, 33, 16, 0, 4858, 4859, 3, 15, 7, 0, 4859, 4860, 3, 51, 25, 0, 4860, 776, 1, 0, 0, 0, 4861, 4862, 3, 33, 16, 0, 4862, 4863, 3, 15, 7, 0, 4863, 4864, 3, 53, 26, 0, 4864, 4865, 3, 45, 22, 0, 4865, 778, 1, 0, 0, 0, 4866, 4867, 3, 33, 16, 0, 4867, 4868, 3, 35, 17, 0, 4868, 780, 1, 0, 0, 0, 4869, 4870, 3, 33, 16, 0, 4870, 4871, 3, 35, 17, 0, 4871, 4872, 3, 11, 5, 0, 4872, 4873, 3, 41, 20, 0, 4873, 4874, 3, 15, 7, 0, 4874, 4875, 3, 7, 3, 0, 4875, 4876, 3, 45, 22, 0, 4876, 4877, 3, 15, 7, 0, 4877, 4878, 3, 13, 6, 0, 4878, 4879, 3, 9, 4, 0, 4879, 782, 1, 0, 0, 0, 4880, 4881, 3, 33, 16, 0, 4881, 4882, 3, 35, 17, 0, 4882, 4883, 3, 11, 5, 0, 4883, 4884, 3, 41, 20, 0, 4884, 4885, 3, 15, 7, 0, 4885, 4886, 3, 7, 3, 0, 4886, 4887, 3, 45, 22, 0, 4887, 4888, 3, 15, 7, 0, 4888, 4889, 3, 47, 23, 0, 4889, 4890, 3, 43, 21, 0, 4890, 4891, 3, 15, 7, 0, 4891, 4892, 3, 41, 20, 0, 4892, 784, 1, 0, 0, 0, 4893, 4894, 3, 33, 16, 0, 4894, 4895, 3, 35, 17, 0, 4895, 4896, 3, 33, 16, 0, 4896, 4897, 3, 15, 7, 0, 4897, 786, 1, 0, 0, 0, 4898, 4899, 3, 33, 16, 0, 4899, 4900, 3, 35, 17, 0, 4900, 4901, 3, 41, 20, 0, 4901, 4902, 3, 31, 15, 0, 4902, 4903, 3, 7, 3, 0, 4903, 4904, 3, 29, 14, 0, 4904, 4905, 3, 23, 11, 0, 4905, 4906, 3, 57, 28, 0, 4906, 4907, 3, 15, 7, 0, 4907, 788, 1, 0, 0, 0, 4908, 4909, 3, 33, 16, 0, 4909, 4910, 3, 35, 17, 0, 4910, 4911, 3, 41, 20, 0, 4911, 4912, 3, 31, 15, 0, 4912, 4913, 3, 7, 3, 0, 4913, 4914, 3, 29, 14, 0, 4914, 4915, 3, 23, 11, 0, 4915, 4916, 3, 57, 28, 0, 4916, 4917, 3, 15, 7, 0, 4917, 4918, 3, 13, 6, 0, 4918, 790, 1, 0, 0, 0, 4919, 4920, 3, 33, 16, 0, 4920, 4921, 3, 35, 17, 0, 4921, 4922, 3, 45, 22, 0, 4922, 792, 1, 0, 0, 0, 4923, 4924, 3, 33, 16, 0, 4924, 4925, 3, 35, 17, 0, 4925, 4926, 3, 45, 22, 0, 4926, 4927, 3, 21, 10, 0, 4927, 4928, 3, 23, 11, 0, 4928, 4929, 3, 33, 16, 0, 4929, 4930, 3, 19, 9, 0, 4930, 794, 1, 0, 0, 0, 4931, 4932, 3, 33, 16, 0, 4932, 4933, 3, 35, 17, 0, 4933, 4934, 3, 45, 22, 0, 4934, 4935, 3, 23, 11, 0, 4935, 4936, 3, 17, 8, 0, 4936, 4937, 3, 55, 27, 0, 4937, 796, 1, 0, 0, 0, 4938, 4939, 3, 33, 16, 0, 4939, 4940, 3, 35, 17, 0, 4940, 4941, 3, 45, 22, 0, 4941, 4942, 3, 33, 16, 0, 4942, 4943, 3, 47, 23, 0, 4943, 4944, 3, 29, 14, 0, 4944, 4945, 3, 29, 14, 0, 4945, 798, 1, 0, 0, 0, 4946, 4947, 3, 33, 16, 0, 4947, 4948, 3, 35, 17, 0, 4948, 4949, 3, 51, 25, 0, 4949, 4950, 3, 7, 3, 0, 4950, 4951, 3, 23, 11, 0, 4951, 4952, 3, 45, 22, 0, 4952, 800, 1, 0, 0, 0, 4953, 4954, 3, 33, 16, 0, 4954, 4955, 3, 47, 23, 0, 4955, 4956, 3, 29, 14, 0, 4956, 4957, 3, 29, 14, 0, 4957, 802, 1, 0, 0, 0, 4958, 4959, 3, 33, 16, 0, 4959, 4960, 3, 47, 23, 0, 4960, 4961, 3, 29, 14, 0, 4961, 4962, 3, 29, 14, 0, 4962, 4963, 3, 7, 3, 0, 4963, 4964, 3, 9, 4, 0, 4964, 4965, 3, 29, 14, 0, 4965, 4966, 3, 15, 7, 0, 4966, 804, 1, 0, 0, 0, 4967, 4968, 3, 33, 16, 0, 4968, 4969, 3, 47, 23, 0, 4969, 4970, 3, 29, 14, 0, 4970, 4971, 3, 29, 14, 0, 4971, 4972, 3, 23, 11, 0, 4972, 4973, 3, 17, 8, 0, 4973, 806, 1, 0, 0, 0, 4974, 4975, 3, 33, 16, 0, 4975, 4976, 3, 47, 23, 0, 4976, 4977, 3, 29, 14, 0, 4977, 4978, 3, 29, 14, 0, 4978, 4979, 3, 43, 21, 0, 4979, 808, 1, 0, 0, 0, 4980, 4981, 3, 33, 16, 0, 4981, 4982, 3, 47, 23, 0, 4982, 4983, 3, 31, 15, 0, 4983, 4984, 3, 9, 4, 0, 4984, 4985, 3, 15, 7, 0, 4985, 4986, 3, 41, 20, 0, 4986, 810, 1, 0, 0, 0, 4987, 4988, 3, 33, 16, 0, 4988, 4989, 3, 47, 23, 0, 4989, 4990, 3, 31, 15, 0, 4990, 4991, 3, 15, 7, 0, 4991, 4992, 3, 41, 20, 0, 4992, 4993, 3, 23, 11, 0, 4993, 4994, 3, 11, 5, 0, 4994, 812, 1, 0, 0, 0, 4995, 4996, 3, 35, 17, 0, 4996, 4997, 3, 9, 4, 0, 4997, 4998, 3, 25, 12, 0, 4998, 4999, 3, 15, 7, 0, 4999, 5000, 3, 11, 5, 0, 5000, 5001, 3, 45, 22, 0, 5001, 814, 1, 0, 0, 0, 5002, 5003, 3, 35, 17, 0, 5003, 5004, 3, 11, 5, 0, 5004, 5005, 3, 45, 22, 0, 5005, 5006, 3, 15, 7, 0, 5006, 5007, 3, 45, 22, 0, 5007, 5008, 5, 95, 0, 0, 5008, 5009, 3, 29, 14, 0, 5009, 5010, 3, 15, 7, 0, 5010, 5011, 3, 33, 16, 0, 5011, 5012, 3, 19, 9, 0, 5012, 5013, 3, 45, 22, 0, 5013, 5014, 3, 21, 10, 0, 5014, 816, 1, 0, 0, 0, 5015, 5016, 3, 35, 17, 0, 5016, 5017, 3, 11, 5, 0, 5017, 5018, 3, 45, 22, 0, 5018, 5019, 3, 15, 7, 0, 5019, 5020, 3, 45, 22, 0, 5020, 5021, 3, 43, 21, 0, 5021, 818, 1, 0, 0, 0, 5022, 5023, 3, 35, 17, 0, 5023, 5024, 3, 17, 8, 0, 5024, 820, 1, 0, 0, 0, 5025, 5026, 3, 35, 17, 0, 5026, 5027, 3, 17, 8, 0, 5027, 5028, 3, 17, 8, 0, 5028, 822, 1, 0, 0, 0, 5029, 5030, 3, 35, 17, 0, 5030, 5031, 3, 17, 8, 0, 5031, 5032, 3, 17, 8, 0, 5032, 5033, 3, 43, 21, 0, 5033, 5034, 3, 15, 7, 0, 5034, 5035, 3, 45, 22, 0, 5035, 824, 1, 0, 0, 0, 5036, 5037, 3, 35, 17, 0, 5037, 5038, 3, 23, 11, 0, 5038, 5039, 3, 13, 6, 0, 5039, 5040, 3, 43, 21, 0, 5040, 826, 1, 0, 0, 0, 5041, 5042, 3, 35, 17, 0, 5042, 5043, 3, 29, 14, 0, 5043, 5044, 3, 13, 6, 0, 5044, 828, 1, 0, 0, 0, 5045, 5046, 3, 35, 17, 0, 5046, 5047, 3, 33, 16, 0, 5047, 830, 1, 0, 0, 0, 5048, 5049, 3, 35, 17, 0, 5049, 5050, 3, 33, 16, 0, 5050, 5051, 3, 29, 14, 0, 5051, 5052, 3, 55, 27, 0, 5052, 832, 1, 0, 0, 0, 5053, 5054, 3, 35, 17, 0, 5054, 5055, 3, 37, 18, 0, 5055, 5056, 3, 15, 7, 0, 5056, 5057, 3, 33, 16, 0, 5057, 834, 1, 0, 0, 0, 5058, 5059, 3, 35, 17, 0, 5059, 5060, 3, 37, 18, 0, 5060, 5061, 3, 15, 7, 0, 5061, 5062, 3, 41, 20, 0, 5062, 5063, 3, 7, 3, 0, 5063, 5064, 3, 45, 22, 0, 5064, 5065, 3, 23, 11, 0, 5065, 5066, 3, 35, 17, 0, 5066, 5067, 3, 33, 16, 0, 5067, 836, 1, 0, 0, 0, 5068, 5069, 3, 35, 17, 0, 5069, 5070, 3, 37, 18, 0, 5070, 5071, 3, 15, 7, 0, 5071, 5072, 3, 41, 20, 0, 5072, 5073, 3, 7, 3, 0, 5073, 5074, 3, 45, 22, 0, 5074, 5075, 3, 35, 17, 0, 5075, 5076, 3, 41, 20, 0, 5076, 838, 1, 0, 0, 0, 5077, 5078, 3, 35, 17, 0, 5078, 5079, 3, 37, 18, 0, 5079, 5080, 3, 45, 22, 0, 5080, 5081, 3, 23, 11, 0, 5081, 5082, 3, 35, 17, 0, 5082, 5083, 3, 33, 16, 0, 5083, 840, 1, 0, 0, 0, 5084, 5085, 3, 35, 17, 0, 5085, 5086, 3, 37, 18, 0, 5086, 5087, 3, 45, 22, 0, 5087, 5088, 3, 23, 11, 0, 5088, 5089, 3, 35, 17, 0, 5089, 5090, 3, 33, 16, 0, 5090, 5091, 3, 43, 21, 0, 5091, 842, 1, 0, 0, 0, 5092, 5093, 3, 35, 17, 0, 5093, 5094, 3, 41, 20, 0, 5094, 844, 1, 0, 0, 0, 5095, 5096, 3, 35, 17, 0, 5096, 5097, 3, 41, 20, 0, 5097, 5098, 3, 13, 6, 0, 5098, 5099, 3, 15, 7, 0, 5099, 5100, 3, 41, 20, 0, 5100, 846, 1, 0, 0, 0, 5101, 5102, 3, 35, 17, 0, 5102, 5103, 3, 41, 20, 0, 5103, 5104, 3, 13, 6, 0, 5104, 5105, 3, 15, 7, 0, 5105, 5106, 3, 41, 20, 0, 5106, 5107, 3, 23, 11, 0, 5107, 5108, 3, 33, 16, 0, 5108, 5109, 3, 19, 9, 0, 5109, 848, 1, 0, 0, 0, 5110, 5111, 3, 35, 17, 0, 5111, 5112, 3, 41, 20, 0, 5112, 5113, 3, 13, 6, 0, 5113, 5114, 3, 23, 11, 0, 5114, 5115, 3, 33, 16, 0, 5115, 5116, 3, 7, 3, 0, 5116, 5117, 3, 29, 14, 0, 5117, 5118, 3, 23, 11, 0, 5118, 5119, 3, 45, 22, 0, 5119, 5120, 3, 55, 27, 0, 5120, 850, 1, 0, 0, 0, 5121, 5122, 3, 35, 17, 0, 5122, 5123, 3, 45, 22, 0, 5123, 5124, 3, 21, 10, 0, 5124, 5125, 3, 15, 7, 0, 5125, 5126, 3, 41, 20, 0, 5126, 5127, 3, 43, 21, 0, 5127, 852, 1, 0, 0, 0, 5128, 5129, 3, 35, 17, 0, 5129, 5130, 3, 47, 23, 0, 5130, 5131, 3, 45, 22, 0, 5131, 854, 1, 0, 0, 0, 5132, 5133, 3, 35, 17, 0, 5133, 5134, 3, 47, 23, 0, 5134, 5135, 3, 45, 22, 0, 5135, 5136, 3, 15, 7, 0, 5136, 5137, 3, 41, 20, 0, 5137, 856, 1, 0, 0, 0, 5138, 5139, 3, 35, 17, 0, 5139, 5140, 3, 47, 23, 0, 5140, 5141, 3, 45, 22, 0, 5141, 5142, 3, 37, 18, 0, 5142, 5143, 3, 47, 23, 0, 5143, 5144, 3, 45, 22, 0, 5144, 858, 1, 0, 0, 0, 5145, 5146, 3, 35, 17, 0, 5146, 5147, 3, 49, 24, 0, 5147, 5148, 3, 15, 7, 0, 5148, 5149, 3, 41, 20, 0, 5149, 860, 1, 0, 0, 0, 5150, 5151, 3, 35, 17, 0, 5151, 5152, 3, 49, 24, 0, 5152, 5153, 3, 15, 7, 0, 5153, 5154, 3, 41, 20, 0, 5154, 5155, 3, 29, 14, 0, 5155, 5156, 3, 7, 3, 0, 5156, 5157, 3, 37, 18, 0, 5157, 5158, 3, 43, 21, 0, 5158, 862, 1, 0, 0, 0, 5159, 5160, 3, 35, 17, 0, 5160, 5161, 3, 49, 24, 0, 5161, 5162, 3, 15, 7, 0, 5162, 5163, 3, 41, 20, 0, 5163, 5164, 3, 29, 14, 0, 5164, 5165, 3, 7, 3, 0, 5165, 5166, 3, 55, 27, 0, 5166, 864, 1, 0, 0, 0, 5167, 5168, 3, 35, 17, 0, 5168, 5169, 3, 49, 24, 0, 5169, 5170, 3, 15, 7, 0, 5170, 5171, 3, 41, 20, 0, 5171, 5172, 3, 41, 20, 0, 5172, 5173, 3, 23, 11, 0, 5173, 5174, 3, 13, 6, 0, 5174, 5175, 3, 23, 11, 0, 5175, 5176, 3, 33, 16, 0, 5176, 5177, 3, 19, 9, 0, 5177, 866, 1, 0, 0, 0, 5178, 5179, 3, 35, 17, 0, 5179, 5180, 3, 51, 25, 0, 5180, 5181, 3, 33, 16, 0, 5181, 5182, 3, 15, 7, 0, 5182, 5183, 3, 41, 20, 0, 5183, 868, 1, 0, 0, 0, 5184, 5185, 3, 37, 18, 0, 5185, 5186, 3, 7, 3, 0, 5186, 5187, 3, 13, 6, 0, 5187, 870, 1, 0, 0, 0, 5188, 5189, 3, 37, 18, 0, 5189, 5190, 3, 7, 3, 0, 5190, 5191, 3, 41, 20, 0, 5191, 5192, 3, 7, 3, 0, 5192, 5193, 3, 31, 15, 0, 5193, 5194, 3, 15, 7, 0, 5194, 5195, 3, 45, 22, 0, 5195, 5196, 3, 15, 7, 0, 5196, 5197, 3, 41, 20, 0, 5197, 872, 1, 0, 0, 0, 5198, 5199, 3, 37, 18, 0, 5199, 5200, 3, 7, 3, 0, 5200, 5201, 3, 41, 20, 0, 5201, 5202, 3, 7, 3, 0, 5202, 5203, 3, 31, 15, 0, 5203, 5204, 3, 15, 7, 0, 5204, 5205, 3, 45, 22, 0, 5205, 5206, 3, 15, 7, 0, 5206, 5207, 3, 41, 20, 0, 5207, 5208, 5, 95, 0, 0, 5208, 5209, 3, 31, 15, 0, 5209, 5210, 3, 35, 17, 0, 5210, 5211, 3, 13, 6, 0, 5211, 5212, 3, 15, 7, 0, 5212, 874, 1, 0, 0, 0, 5213, 5214, 3, 37, 18, 0, 5214, 5215, 3, 7, 3, 0, 5215, 5216, 3, 41, 20, 0, 5216, 5217, 3, 7, 3, 0, 5217, 5218, 3, 31, 15, 0, 5218, 5219, 3, 15, 7, 0, 5219, 5220, 3, 45, 22, 0, 5220, 5221, 3, 15, 7, 0, 5221, 5222, 3, 41, 20, 0, 5222, 5223, 5, 95, 0, 0, 5223, 5224, 3, 33, 16, 0, 5224, 5225, 3, 7, 3, 0, 5225, 5226, 3, 31, 15, 0, 5226, 5227, 3, 15, 7, 0, 5227, 876, 1, 0, 0, 0, 5228, 5229, 3, 37, 18, 0, 5229, 5230, 3, 7, 3, 0, 5230, 5231, 3, 41, 20, 0, 5231, 5232, 3, 7, 3, 0, 5232, 5233, 3, 31, 15, 0, 5233, 5234, 3, 15, 7, 0, 5234, 5235, 3, 45, 22, 0, 5235, 5236, 3, 15, 7, 0, 5236, 5237, 3, 41, 20, 0, 5237, 5238, 5, 95, 0, 0, 5238, 5239, 3, 35, 17, 0, 5239, 5240, 3, 41, 20, 0, 5240, 5241, 3, 13, 6, 0, 5241, 5242, 3, 23, 11, 0, 5242, 5243, 3, 33, 16, 0, 5243, 5244, 3, 7, 3, 0, 5244, 5245, 3, 29, 14, 0, 5245, 5246, 5, 95, 0, 0, 5246, 5247, 3, 37, 18, 0, 5247, 5248, 3, 35, 17, 0, 5248, 5249, 3, 43, 21, 0, 5249, 5250, 3, 23, 11, 0, 5250, 5251, 3, 45, 22, 0, 5251, 5252, 3, 23, 11, 0, 5252, 5253, 3, 35, 17, 0, 5253, 5254, 3, 33, 16, 0, 5254, 878, 1, 0, 0, 0, 5255, 5256, 3, 37, 18, 0, 5256, 5257, 3, 7, 3, 0, 5257, 5258, 3, 41, 20, 0, 5258, 5259, 3, 7, 3, 0, 5259, 5260, 3, 31, 15, 0, 5260, 5261, 3, 15, 7, 0, 5261, 5262, 3, 45, 22, 0, 5262, 5263, 3, 15, 7, 0, 5263, 5264, 3, 41, 20, 0, 5264, 5265, 5, 95, 0, 0, 5265, 5266, 3, 43, 21, 0, 5266, 5267, 3, 37, 18, 0, 5267, 5268, 3, 15, 7, 0, 5268, 5269, 3, 11, 5, 0, 5269, 5270, 3, 23, 11, 0, 5270, 5271, 3, 17, 8, 0, 5271, 5272, 3, 23, 11, 0, 5272, 5273, 3, 11, 5, 0, 5273, 5274, 5, 95, 0, 0, 5274, 5275, 3, 11, 5, 0, 5275, 5276, 3, 7, 3, 0, 5276, 5277, 3, 45, 22, 0, 5277, 5278, 3, 7, 3, 0, 5278, 5279, 3, 29, 14, 0, 5279, 5280, 3, 35, 17, 0, 5280, 5281, 3, 19, 9, 0, 5281, 880, 1, 0, 0, 0, 5282, 5283, 3, 37, 18, 0, 5283, 5284, 3, 7, 3, 0, 5284, 5285, 3, 41, 20, 0, 5285, 5286, 3, 7, 3, 0, 5286, 5287, 3, 31, 15, 0, 5287, 5288, 3, 15, 7, 0, 5288, 5289, 3, 45, 22, 0, 5289, 5290, 3, 15, 7, 0, 5290, 5291, 3, 41, 20, 0, 5291, 5292, 5, 95, 0, 0, 5292, 5293, 3, 43, 21, 0, 5293, 5294, 3, 37, 18, 0, 5294, 5295, 3, 15, 7, 0, 5295, 5296, 3, 11, 5, 0, 5296, 5297, 3, 23, 11, 0, 5297, 5298, 3, 17, 8, 0, 5298, 5299, 3, 23, 11, 0, 5299, 5300, 3, 11, 5, 0, 5300, 5301, 5, 95, 0, 0, 5301, 5302, 3, 33, 16, 0, 5302, 5303, 3, 7, 3, 0, 5303, 5304, 3, 31, 15, 0, 5304, 5305, 3, 15, 7, 0, 5305, 882, 1, 0, 0, 0, 5306, 5307, 3, 37, 18, 0, 5307, 5308, 3, 7, 3, 0, 5308, 5309, 3, 41, 20, 0, 5309, 5310, 3, 7, 3, 0, 5310, 5311, 3, 31, 15, 0, 5311, 5312, 3, 15, 7, 0, 5312, 5313, 3, 45, 22, 0, 5313, 5314, 3, 15, 7, 0, 5314, 5315, 3, 41, 20, 0, 5315, 5316, 5, 95, 0, 0, 5316, 5317, 3, 43, 21, 0, 5317, 5318, 3, 37, 18, 0, 5318, 5319, 3, 15, 7, 0, 5319, 5320, 3, 11, 5, 0, 5320, 5321, 3, 23, 11, 0, 5321, 5322, 3, 17, 8, 0, 5322, 5323, 3, 23, 11, 0, 5323, 5324, 3, 11, 5, 0, 5324, 5325, 5, 95, 0, 0, 5325, 5326, 3, 43, 21, 0, 5326, 5327, 3, 11, 5, 0, 5327, 5328, 3, 21, 10, 0, 5328, 5329, 3, 15, 7, 0, 5329, 5330, 3, 31, 15, 0, 5330, 5331, 3, 7, 3, 0, 5331, 884, 1, 0, 0, 0, 5332, 5333, 3, 37, 18, 0, 5333, 5334, 3, 7, 3, 0, 5334, 5335, 3, 41, 20, 0, 5335, 5336, 3, 7, 3, 0, 5336, 5337, 3, 31, 15, 0, 5337, 5338, 3, 15, 7, 0, 5338, 5339, 3, 45, 22, 0, 5339, 5340, 3, 15, 7, 0, 5340, 5341, 3, 41, 20, 0, 5341, 5342, 3, 43, 21, 0, 5342, 886, 1, 0, 0, 0, 5343, 5344, 3, 37, 18, 0, 5344, 5345, 3, 7, 3, 0, 5345, 5346, 3, 41, 20, 0, 5346, 5347, 3, 43, 21, 0, 5347, 5348, 3, 15, 7, 0, 5348, 5349, 3, 41, 20, 0, 5349, 888, 1, 0, 0, 0, 5350, 5351, 3, 37, 18, 0, 5351, 5352, 3, 7, 3, 0, 5352, 5353, 3, 41, 20, 0, 5353, 5354, 3, 45, 22, 0, 5354, 5355, 3, 23, 11, 0, 5355, 5356, 3, 7, 3, 0, 5356, 5357, 3, 29, 14, 0, 5357, 890, 1, 0, 0, 0, 5358, 5359, 3, 37, 18, 0, 5359, 5360, 3, 7, 3, 0, 5360, 5361, 3, 41, 20, 0, 5361, 5362, 3, 45, 22, 0, 5362, 5363, 3, 23, 11, 0, 5363, 5364, 3, 45, 22, 0, 5364, 5365, 3, 23, 11, 0, 5365, 5366, 3, 35, 17, 0, 5366, 5367, 3, 33, 16, 0, 5367, 892, 1, 0, 0, 0, 5368, 5369, 3, 37, 18, 0, 5369, 5370, 3, 7, 3, 0, 5370, 5371, 3, 43, 21, 0, 5371, 5372, 3, 11, 5, 0, 5372, 5373, 3, 7, 3, 0, 5373, 5374, 3, 29, 14, 0, 5374, 894, 1, 0, 0, 0, 5375, 5376, 3, 37, 18, 0, 5376, 5377, 3, 7, 3, 0, 5377, 5378, 3, 43, 21, 0, 5378, 5379, 3, 43, 21, 0, 5379, 5380, 3, 51, 25, 0, 5380, 5381, 3, 35, 17, 0, 5381, 5382, 3, 41, 20, 0, 5382, 5383, 3, 13, 6, 0, 5383, 896, 1, 0, 0, 0, 5384, 5385, 3, 37, 18, 0, 5385, 5386, 3, 7, 3, 0, 5386, 5387, 3, 45, 22, 0, 5387, 5388, 3, 21, 10, 0, 5388, 898, 1, 0, 0, 0, 5389, 5390, 3, 37, 18, 0, 5390, 5391, 3, 15, 7, 0, 5391, 5392, 3, 41, 20, 0, 5392, 5393, 3, 11, 5, 0, 5393, 5394, 3, 15, 7, 0, 5394, 5395, 3, 33, 16, 0, 5395, 5396, 3, 45, 22, 0, 5396, 5397, 5, 95, 0, 0, 5397, 5398, 3, 41, 20, 0, 5398, 5399, 3, 7, 3, 0, 5399, 5400, 3, 33, 16, 0, 5400, 5401, 3, 27, 13, 0, 5401, 900, 1, 0, 0, 0, 5402, 5403, 3, 37, 18, 0, 5403, 5404, 3, 15, 7, 0, 5404, 5405, 3, 41, 20, 0, 5405, 5406, 3, 11, 5, 0, 5406, 5407, 3, 15, 7, 0, 5407, 5408, 3, 33, 16, 0, 5408, 5409, 3, 45, 22, 0, 5409, 5410, 3, 23, 11, 0, 5410, 5411, 3, 29, 14, 0, 5411, 5412, 3, 15, 7, 0, 5412, 5413, 5, 95, 0, 0, 5413, 5414, 3, 11, 5, 0, 5414, 5415, 3, 35, 17, 0, 5415, 5416, 3, 33, 16, 0, 5416, 5417, 3, 45, 22, 0, 5417, 902, 1, 0, 0, 0, 5418, 5419, 3, 37, 18, 0, 5419, 5420, 3, 15, 7, 0, 5420, 5421, 3, 41, 20, 0, 5421, 5422, 3, 11, 5, 0, 5422, 5423, 3, 15, 7, 0, 5423, 5424, 3, 33, 16, 0, 5424, 5425, 3, 45, 22, 0, 5425, 5426, 3, 23, 11, 0, 5426, 5427, 3, 29, 14, 0, 5427, 5428, 3, 15, 7, 0, 5428, 5429, 5, 95, 0, 0, 5429, 5430, 3, 13, 6, 0, 5430, 5431, 3, 23, 11, 0, 5431, 5432, 3, 43, 21, 0, 5432, 5433, 3, 11, 5, 0, 5433, 904, 1, 0, 0, 0, 5434, 5435, 3, 37, 18, 0, 5435, 5436, 3, 29, 14, 0, 5436, 5437, 3, 7, 3, 0, 5437, 5438, 3, 11, 5, 0, 5438, 5439, 3, 23, 11, 0, 5439, 5440, 3, 33, 16, 0, 5440, 5441, 3, 19, 9, 0, 5441, 906, 1, 0, 0, 0, 5442, 5443, 3, 37, 18, 0, 5443, 5444, 3, 29, 14, 0, 5444, 5445, 3, 7, 3, 0, 5445, 5446, 3, 23, 11, 0, 5446, 5447, 3, 33, 16, 0, 5447, 908, 1, 0, 0, 0, 5448, 5449, 3, 37, 18, 0, 5449, 5450, 3, 29, 14, 0, 5450, 5451, 3, 7, 3, 0, 5451, 5452, 3, 33, 16, 0, 5452, 5453, 3, 43, 21, 0, 5453, 910, 1, 0, 0, 0, 5454, 5455, 3, 37, 18, 0, 5455, 5456, 3, 29, 14, 0, 5456, 5457, 3, 23, 11, 0, 5457, 912, 1, 0, 0, 0, 5458, 5459, 3, 37, 18, 0, 5459, 5460, 3, 35, 17, 0, 5460, 5461, 3, 43, 21, 0, 5461, 5462, 3, 23, 11, 0, 5462, 5463, 3, 45, 22, 0, 5463, 5464, 3, 23, 11, 0, 5464, 5465, 3, 35, 17, 0, 5465, 5466, 3, 33, 16, 0, 5466, 914, 1, 0, 0, 0, 5467, 5468, 3, 37, 18, 0, 5468, 5469, 3, 35, 17, 0, 5469, 5470, 3, 43, 21, 0, 5470, 5471, 3, 45, 22, 0, 5471, 5472, 3, 17, 8, 0, 5472, 5473, 3, 23, 11, 0, 5473, 5474, 3, 53, 26, 0, 5474, 916, 1, 0, 0, 0, 5475, 5476, 3, 37, 18, 0, 5476, 5477, 3, 35, 17, 0, 5477, 5478, 3, 51, 25, 0, 5478, 5479, 3, 15, 7, 0, 5479, 5480, 3, 41, 20, 0, 5480, 918, 1, 0, 0, 0, 5481, 5482, 3, 37, 18, 0, 5482, 5483, 3, 41, 20, 0, 5483, 5484, 3, 15, 7, 0, 5484, 5485, 3, 11, 5, 0, 5485, 5486, 3, 15, 7, 0, 5486, 5487, 3, 13, 6, 0, 5487, 5488, 3, 23, 11, 0, 5488, 5489, 3, 33, 16, 0, 5489, 5490, 3, 19, 9, 0, 5490, 920, 1, 0, 0, 0, 5491, 5492, 3, 37, 18, 0, 5492, 5493, 3, 41, 20, 0, 5493, 5494, 3, 15, 7, 0, 5494, 5495, 3, 11, 5, 0, 5495, 5496, 3, 23, 11, 0, 5496, 5497, 3, 43, 21, 0, 5497, 5498, 3, 23, 11, 0, 5498, 5499, 3, 35, 17, 0, 5499, 5500, 3, 33, 16, 0, 5500, 922, 1, 0, 0, 0, 5501, 5502, 3, 37, 18, 0, 5502, 5503, 3, 41, 20, 0, 5503, 5504, 3, 15, 7, 0, 5504, 5505, 3, 17, 8, 0, 5505, 5506, 3, 23, 11, 0, 5506, 5507, 3, 53, 26, 0, 5507, 924, 1, 0, 0, 0, 5508, 5509, 3, 37, 18, 0, 5509, 5510, 3, 41, 20, 0, 5510, 5511, 3, 15, 7, 0, 5511, 5512, 3, 35, 17, 0, 5512, 5513, 3, 41, 20, 0, 5513, 5514, 3, 13, 6, 0, 5514, 5515, 3, 15, 7, 0, 5515, 5516, 3, 41, 20, 0, 5516, 926, 1, 0, 0, 0, 5517, 5518, 3, 37, 18, 0, 5518, 5519, 3, 41, 20, 0, 5519, 5520, 3, 15, 7, 0, 5520, 5521, 3, 37, 18, 0, 5521, 5522, 3, 7, 3, 0, 5522, 5523, 3, 41, 20, 0, 5523, 5524, 3, 15, 7, 0, 5524, 928, 1, 0, 0, 0, 5525, 5526, 3, 37, 18, 0, 5526, 5527, 3, 41, 20, 0, 5527, 5528, 3, 15, 7, 0, 5528, 5529, 3, 37, 18, 0, 5529, 5530, 3, 7, 3, 0, 5530, 5531, 3, 41, 20, 0, 5531, 5532, 3, 15, 7, 0, 5532, 5533, 3, 13, 6, 0, 5533, 930, 1, 0, 0, 0, 5534, 5535, 3, 37, 18, 0, 5535, 5536, 3, 41, 20, 0, 5536, 5537, 3, 15, 7, 0, 5537, 5538, 3, 43, 21, 0, 5538, 5539, 3, 15, 7, 0, 5539, 5540, 3, 41, 20, 0, 5540, 5541, 3, 49, 24, 0, 5541, 5542, 3, 15, 7, 0, 5542, 932, 1, 0, 0, 0, 5543, 5544, 3, 37, 18, 0, 5544, 5545, 3, 41, 20, 0, 5545, 5546, 3, 23, 11, 0, 5546, 5547, 3, 31, 15, 0, 5547, 5548, 3, 7, 3, 0, 5548, 5549, 3, 41, 20, 0, 5549, 5550, 3, 55, 27, 0, 5550, 934, 1, 0, 0, 0, 5551, 5552, 3, 37, 18, 0, 5552, 5553, 3, 41, 20, 0, 5553, 5554, 3, 23, 11, 0, 5554, 5555, 3, 35, 17, 0, 5555, 5556, 3, 41, 20, 0, 5556, 936, 1, 0, 0, 0, 5557, 5558, 3, 37, 18, 0, 5558, 5559, 3, 41, 20, 0, 5559, 5560, 3, 23, 11, 0, 5560, 5561, 3, 49, 24, 0, 5561, 5562, 3, 23, 11, 0, 5562, 5563, 3, 29, 14, 0, 5563, 5564, 3, 15, 7, 0, 5564, 5565, 3, 19, 9, 0, 5565, 5566, 3, 15, 7, 0, 5566, 5567, 3, 43, 21, 0, 5567, 938, 1, 0, 0, 0, 5568, 5569, 3, 37, 18, 0, 5569, 5570, 3, 41, 20, 0, 5570, 5571, 3, 35, 17, 0, 5571, 5572, 3, 11, 5, 0, 5572, 5573, 3, 15, 7, 0, 5573, 5574, 3, 13, 6, 0, 5574, 5575, 3, 47, 23, 0, 5575, 5576, 3, 41, 20, 0, 5576, 5577, 3, 7, 3, 0, 5577, 5578, 3, 29, 14, 0, 5578, 940, 1, 0, 0, 0, 5579, 5580, 3, 37, 18, 0, 5580, 5581, 3, 41, 20, 0, 5581, 5582, 3, 35, 17, 0, 5582, 5583, 3, 11, 5, 0, 5583, 5584, 3, 15, 7, 0, 5584, 5585, 3, 13, 6, 0, 5585, 5586, 3, 47, 23, 0, 5586, 5587, 3, 41, 20, 0, 5587, 5588, 3, 15, 7, 0, 5588, 942, 1, 0, 0, 0, 5589, 5590, 3, 37, 18, 0, 5590, 5591, 3, 47, 23, 0, 5591, 5592, 3, 9, 4, 0, 5592, 5593, 3, 29, 14, 0, 5593, 5594, 3, 23, 11, 0, 5594, 5595, 3, 11, 5, 0, 5595, 944, 1, 0, 0, 0, 5596, 5597, 3, 37, 18, 0, 5597, 5598, 3, 47, 23, 0, 5598, 5599, 3, 9, 4, 0, 5599, 5600, 3, 29, 14, 0, 5600, 5601, 3, 23, 11, 0, 5601, 5602, 3, 11, 5, 0, 5602, 5603, 3, 7, 3, 0, 5603, 5604, 3, 45, 22, 0, 5604, 5605, 3, 23, 11, 0, 5605, 5606, 3, 35, 17, 0, 5606, 5607, 3, 33, 16, 0, 5607, 946, 1, 0, 0, 0, 5608, 5609, 3, 39, 19, 0, 5609, 5610, 3, 47, 23, 0, 5610, 5611, 3, 35, 17, 0, 5611, 5612, 3, 45, 22, 0, 5612, 5613, 3, 15, 7, 0, 5613, 948, 1, 0, 0, 0, 5614, 5615, 3, 41, 20, 0, 5615, 5616, 3, 7, 3, 0, 5616, 5617, 3, 33, 16, 0, 5617, 5618, 3, 19, 9, 0, 5618, 5619, 3, 15, 7, 0, 5619, 950, 1, 0, 0, 0, 5620, 5621, 3, 41, 20, 0, 5621, 5622, 3, 7, 3, 0, 5622, 5623, 3, 33, 16, 0, 5623, 5624, 3, 27, 13, 0, 5624, 952, 1, 0, 0, 0, 5625, 5626, 3, 41, 20, 0, 5626, 5627, 3, 15, 7, 0, 5627, 5628, 3, 7, 3, 0, 5628, 5629, 3, 13, 6, 0, 5629, 954, 1, 0, 0, 0, 5630, 5631, 3, 41, 20, 0, 5631, 5632, 3, 15, 7, 0, 5632, 5633, 3, 7, 3, 0, 5633, 5634, 3, 13, 6, 0, 5634, 5635, 3, 43, 21, 0, 5635, 956, 1, 0, 0, 0, 5636, 5637, 3, 41, 20, 0, 5637, 5638, 3, 15, 7, 0, 5638, 5639, 3, 7, 3, 0, 5639, 5640, 3, 29, 14, 0, 5640, 958, 1, 0, 0, 0, 5641, 5642, 3, 41, 20, 0, 5642, 5643, 3, 15, 7, 0, 5643, 5644, 3, 7, 3, 0, 5644, 5645, 3, 43, 21, 0, 5645, 5646, 3, 43, 21, 0, 5646, 5647, 3, 23, 11, 0, 5647, 5648, 3, 19, 9, 0, 5648, 5649, 3, 33, 16, 0, 5649, 960, 1, 0, 0, 0, 5650, 5651, 3, 41, 20, 0, 5651, 5652, 3, 15, 7, 0, 5652, 5653, 3, 11, 5, 0, 5653, 5654, 3, 21, 10, 0, 5654, 5655, 3, 15, 7, 0, 5655, 5656, 3, 11, 5, 0, 5656, 5657, 3, 27, 13, 0, 5657, 962, 1, 0, 0, 0, 5658, 5659, 3, 41, 20, 0, 5659, 5660, 3, 15, 7, 0, 5660, 5661, 3, 11, 5, 0, 5661, 5662, 3, 47, 23, 0, 5662, 5663, 3, 41, 20, 0, 5663, 5664, 3, 43, 21, 0, 5664, 5665, 3, 23, 11, 0, 5665, 5666, 3, 49, 24, 0, 5666, 5667, 3, 15, 7, 0, 5667, 964, 1, 0, 0, 0, 5668, 5669, 3, 41, 20, 0, 5669, 5670, 3, 15, 7, 0, 5670, 5671, 3, 17, 8, 0, 5671, 966, 1, 0, 0, 0, 5672, 5673, 3, 41, 20, 0, 5673, 5674, 3, 15, 7, 0, 5674, 5675, 3, 17, 8, 0, 5675, 5676, 3, 15, 7, 0, 5676, 5677, 3, 41, 20, 0, 5677, 5678, 3, 15, 7, 0, 5678, 5679, 3, 33, 16, 0, 5679, 5680, 3, 11, 5, 0, 5680, 5681, 3, 15, 7, 0, 5681, 5682, 3, 43, 21, 0, 5682, 968, 1, 0, 0, 0, 5683, 5684, 3, 41, 20, 0, 5684, 5685, 3, 15, 7, 0, 5685, 5686, 3, 17, 8, 0, 5686, 5687, 3, 15, 7, 0, 5687, 5688, 3, 41, 20, 0, 5688, 5689, 3, 15, 7, 0, 5689, 5690, 3, 33, 16, 0, 5690, 5691, 3, 11, 5, 0, 5691, 5692, 3, 23, 11, 0, 5692, 5693, 3, 33, 16, 0, 5693, 5694, 3, 19, 9, 0, 5694, 970, 1, 0, 0, 0, 5695, 5696, 3, 41, 20, 0, 5696, 5697, 3, 15, 7, 0, 5697, 5698, 3, 17, 8, 0, 5698, 5699, 3, 41, 20, 0, 5699, 5700, 3, 15, 7, 0, 5700, 5701, 3, 43, 21, 0, 5701, 5702, 3, 21, 10, 0, 5702, 972, 1, 0, 0, 0, 5703, 5704, 3, 41, 20, 0, 5704, 5705, 3, 15, 7, 0, 5705, 5706, 3, 19, 9, 0, 5706, 5707, 3, 41, 20, 0, 5707, 5708, 5, 95, 0, 0, 5708, 5709, 3, 7, 3, 0, 5709, 5710, 3, 49, 24, 0, 5710, 5711, 3, 19, 9, 0, 5711, 5712, 3, 53, 26, 0, 5712, 974, 1, 0, 0, 0, 5713, 5714, 3, 41, 20, 0, 5714, 5715, 3, 15, 7, 0, 5715, 5716, 3, 19, 9, 0, 5716, 5717, 3, 41, 20, 0, 5717, 5718, 5, 95, 0, 0, 5718, 5719, 3, 7, 3, 0, 5719, 5720, 3, 49, 24, 0, 5720, 5721, 3, 19, 9, 0, 5721, 5722, 3, 55, 27, 0, 5722, 976, 1, 0, 0, 0, 5723, 5724, 3, 41, 20, 0, 5724, 5725, 3, 15, 7, 0, 5725, 5726, 3, 19, 9, 0, 5726, 5727, 3, 41, 20, 0, 5727, 5728, 5, 95, 0, 0, 5728, 5729, 3, 11, 5, 0, 5729, 5730, 3, 35, 17, 0, 5730, 5731, 3, 47, 23, 0, 5731, 5732, 3, 33, 16, 0, 5732, 5733, 3, 45, 22, 0, 5733, 978, 1, 0, 0, 0, 5734, 5735, 3, 41, 20, 0, 5735, 5736, 3, 15, 7, 0, 5736, 5737, 3, 19, 9, 0, 5737, 5738, 3, 41, 20, 0, 5738, 5739, 5, 95, 0, 0, 5739, 5740, 3, 23, 11, 0, 5740, 5741, 3, 33, 16, 0, 5741, 5742, 3, 45, 22, 0, 5742, 5743, 3, 15, 7, 0, 5743, 5744, 3, 41, 20, 0, 5744, 5745, 3, 11, 5, 0, 5745, 5746, 3, 15, 7, 0, 5746, 5747, 3, 37, 18, 0, 5747, 5748, 3, 45, 22, 0, 5748, 980, 1, 0, 0, 0, 5749, 5750, 3, 41, 20, 0, 5750, 5751, 3, 15, 7, 0, 5751, 5752, 3, 19, 9, 0, 5752, 5753, 3, 41, 20, 0, 5753, 5754, 5, 95, 0, 0, 5754, 5755, 3, 41, 20, 0, 5755, 5756, 5, 50, 0, 0, 5756, 982, 1, 0, 0, 0, 5757, 5758, 3, 41, 20, 0, 5758, 5759, 3, 15, 7, 0, 5759, 5760, 3, 19, 9, 0, 5760, 5761, 3, 41, 20, 0, 5761, 5762, 5, 95, 0, 0, 5762, 5763, 3, 43, 21, 0, 5763, 5764, 3, 29, 14, 0, 5764, 5765, 3, 35, 17, 0, 5765, 5766, 3, 37, 18, 0, 5766, 5767, 3, 15, 7, 0, 5767, 984, 1, 0, 0, 0, 5768, 5769, 3, 41, 20, 0, 5769, 5770, 3, 15, 7, 0, 5770, 5771, 3, 19, 9, 0, 5771, 5772, 3, 41, 20, 0, 5772, 5773, 5, 95, 0, 0, 5773, 5774, 3, 43, 21, 0, 5774, 5775, 3, 53, 26, 0, 5775, 5776, 3, 53, 26, 0, 5776, 986, 1, 0, 0, 0, 5777, 5778, 3, 41, 20, 0, 5778, 5779, 3, 15, 7, 0, 5779, 5780, 3, 19, 9, 0, 5780, 5781, 3, 41, 20, 0, 5781, 5782, 5, 95, 0, 0, 5782, 5783, 3, 43, 21, 0, 5783, 5784, 3, 53, 26, 0, 5784, 5785, 3, 55, 27, 0, 5785, 988, 1, 0, 0, 0, 5786, 5787, 3, 41, 20, 0, 5787, 5788, 3, 15, 7, 0, 5788, 5789, 3, 19, 9, 0, 5789, 5790, 3, 41, 20, 0, 5790, 5791, 5, 95, 0, 0, 5791, 5792, 3, 43, 21, 0, 5792, 5793, 3, 55, 27, 0, 5793, 5794, 3, 55, 27, 0, 5794, 990, 1, 0, 0, 0, 5795, 5796, 3, 41, 20, 0, 5796, 5797, 3, 15, 7, 0, 5797, 5798, 3, 23, 11, 0, 5798, 5799, 3, 33, 16, 0, 5799, 5800, 3, 13, 6, 0, 5800, 5801, 3, 15, 7, 0, 5801, 5802, 3, 53, 26, 0, 5802, 992, 1, 0, 0, 0, 5803, 5804, 3, 41, 20, 0, 5804, 5805, 3, 15, 7, 0, 5805, 5806, 3, 29, 14, 0, 5806, 5807, 3, 7, 3, 0, 5807, 5808, 3, 45, 22, 0, 5808, 5809, 3, 23, 11, 0, 5809, 5810, 3, 49, 24, 0, 5810, 5811, 3, 15, 7, 0, 5811, 994, 1, 0, 0, 0, 5812, 5813, 3, 41, 20, 0, 5813, 5814, 3, 15, 7, 0, 5814, 5815, 3, 29, 14, 0, 5815, 5816, 3, 15, 7, 0, 5816, 5817, 3, 7, 3, 0, 5817, 5818, 3, 43, 21, 0, 5818, 5819, 3, 15, 7, 0, 5819, 996, 1, 0, 0, 0, 5820, 5821, 3, 41, 20, 0, 5821, 5822, 3, 15, 7, 0, 5822, 5823, 3, 33, 16, 0, 5823, 5824, 3, 7, 3, 0, 5824, 5825, 3, 31, 15, 0, 5825, 5826, 3, 15, 7, 0, 5826, 998, 1, 0, 0, 0, 5827, 5828, 3, 41, 20, 0, 5828, 5829, 3, 15, 7, 0, 5829, 5830, 3, 37, 18, 0, 5830, 5831, 3, 15, 7, 0, 5831, 5832, 3, 7, 3, 0, 5832, 5833, 3, 45, 22, 0, 5833, 5834, 3, 7, 3, 0, 5834, 5835, 3, 9, 4, 0, 5835, 5836, 3, 29, 14, 0, 5836, 5837, 3, 15, 7, 0, 5837, 1000, 1, 0, 0, 0, 5838, 5839, 3, 41, 20, 0, 5839, 5840, 3, 15, 7, 0, 5840, 5841, 3, 37, 18, 0, 5841, 5842, 3, 29, 14, 0, 5842, 5843, 3, 7, 3, 0, 5843, 5844, 3, 11, 5, 0, 5844, 5845, 3, 15, 7, 0, 5845, 1002, 1, 0, 0, 0, 5846, 5847, 3, 41, 20, 0, 5847, 5848, 3, 15, 7, 0, 5848, 5849, 3, 37, 18, 0, 5849, 5850, 3, 29, 14, 0, 5850, 5851, 3, 23, 11, 0, 5851, 5852, 3, 11, 5, 0, 5852, 5853, 3, 7, 3, 0, 5853, 1004, 1, 0, 0, 0, 5854, 5855, 3, 41, 20, 0, 5855, 5856, 3, 15, 7, 0, 5856, 5857, 3, 43, 21, 0, 5857, 5858, 3, 15, 7, 0, 5858, 5859, 3, 45, 22, 0, 5859, 1006, 1, 0, 0, 0, 5860, 5861, 3, 41, 20, 0, 5861, 5862, 3, 15, 7, 0, 5862, 5863, 3, 43, 21, 0, 5863, 5864, 3, 45, 22, 0, 5864, 5865, 3, 7, 3, 0, 5865, 5866, 3, 41, 20, 0, 5866, 5867, 3, 45, 22, 0, 5867, 1008, 1, 0, 0, 0, 5868, 5869, 3, 41, 20, 0, 5869, 5870, 3, 15, 7, 0, 5870, 5871, 3, 43, 21, 0, 5871, 5872, 3, 45, 22, 0, 5872, 5873, 3, 41, 20, 0, 5873, 5874, 3, 23, 11, 0, 5874, 5875, 3, 11, 5, 0, 5875, 5876, 3, 45, 22, 0, 5876, 1010, 1, 0, 0, 0, 5877, 5878, 3, 41, 20, 0, 5878, 5879, 3, 15, 7, 0, 5879, 5880, 3, 43, 21, 0, 5880, 5881, 3, 47, 23, 0, 5881, 5882, 3, 29, 14, 0, 5882, 5883, 3, 45, 22, 0, 5883, 1012, 1, 0, 0, 0, 5884, 5885, 3, 41, 20, 0, 5885, 5886, 3, 15, 7, 0, 5886, 5887, 3, 45, 22, 0, 5887, 5888, 3, 47, 23, 0, 5888, 5889, 3, 41, 20, 0, 5889, 5890, 3, 33, 16, 0, 5890, 1014, 1, 0, 0, 0, 5891, 5892, 3, 41, 20, 0, 5892, 5893, 3, 15, 7, 0, 5893, 5894, 3, 45, 22, 0, 5894, 5895, 3, 47, 23, 0, 5895, 5896, 3, 41, 20, 0, 5896, 5897, 3, 33, 16, 0, 5897, 5898, 3, 15, 7, 0, 5898, 5899, 3, 13, 6, 0, 5899, 5900, 5, 95, 0, 0, 5900, 5901, 3, 11, 5, 0, 5901, 5902, 3, 7, 3, 0, 5902, 5903, 3, 41, 20, 0, 5903, 5904, 3, 13, 6, 0, 5904, 5905, 3, 23, 11, 0, 5905, 5906, 3, 33, 16, 0, 5906, 5907, 3, 7, 3, 0, 5907, 5908, 3, 29, 14, 0, 5908, 5909, 3, 23, 11, 0, 5909, 5910, 3, 45, 22, 0, 5910, 5911, 3, 55, 27, 0, 5911, 1016, 1, 0, 0, 0, 5912, 5913, 3, 41, 20, 0, 5913, 5914, 3, 15, 7, 0, 5914, 5915, 3, 45, 22, 0, 5915, 5916, 3, 47, 23, 0, 5916, 5917, 3, 41, 20, 0, 5917, 5918, 3, 33, 16, 0, 5918, 5919, 3, 15, 7, 0, 5919, 5920, 3, 13, 6, 0, 5920, 5921, 5, 95, 0, 0, 5921, 5922, 3, 29, 14, 0, 5922, 5923, 3, 15, 7, 0, 5923, 5924, 3, 33, 16, 0, 5924, 5925, 3, 19, 9, 0, 5925, 5926, 3, 45, 22, 0, 5926, 5927, 3, 21, 10, 0, 5927, 1018, 1, 0, 0, 0, 5928, 5929, 3, 41, 20, 0, 5929, 5930, 3, 15, 7, 0, 5930, 5931, 3, 45, 22, 0, 5931, 5932, 3, 47, 23, 0, 5932, 5933, 3, 41, 20, 0, 5933, 5934, 3, 33, 16, 0, 5934, 5935, 3, 15, 7, 0, 5935, 5936, 3, 13, 6, 0, 5936, 5937, 5, 95, 0, 0, 5937, 5938, 3, 35, 17, 0, 5938, 5939, 3, 11, 5, 0, 5939, 5940, 3, 45, 22, 0, 5940, 5941, 3, 15, 7, 0, 5941, 5942, 3, 45, 22, 0, 5942, 5943, 5, 95, 0, 0, 5943, 5944, 3, 29, 14, 0, 5944, 5945, 3, 15, 7, 0, 5945, 5946, 3, 33, 16, 0, 5946, 5947, 3, 19, 9, 0, 5947, 5948, 3, 45, 22, 0, 5948, 5949, 3, 21, 10, 0, 5949, 1020, 1, 0, 0, 0, 5950, 5951, 3, 41, 20, 0, 5951, 5952, 3, 15, 7, 0, 5952, 5953, 3, 45, 22, 0, 5953, 5954, 3, 47, 23, 0, 5954, 5955, 3, 41, 20, 0, 5955, 5956, 3, 33, 16, 0, 5956, 5957, 3, 15, 7, 0, 5957, 5958, 3, 13, 6, 0, 5958, 5959, 5, 95, 0, 0, 5959, 5960, 3, 43, 21, 0, 5960, 5961, 3, 39, 19, 0, 5961, 5962, 3, 29, 14, 0, 5962, 5963, 3, 43, 21, 0, 5963, 5964, 3, 45, 22, 0, 5964, 5965, 3, 7, 3, 0, 5965, 5966, 3, 45, 22, 0, 5966, 5967, 3, 15, 7, 0, 5967, 1022, 1, 0, 0, 0, 5968, 5969, 3, 41, 20, 0, 5969, 5970, 3, 15, 7, 0, 5970, 5971, 3, 45, 22, 0, 5971, 5972, 3, 47, 23, 0, 5972, 5973, 3, 41, 20, 0, 5973, 5974, 3, 33, 16, 0, 5974, 5975, 3, 23, 11, 0, 5975, 5976, 3, 33, 16, 0, 5976, 5977, 3, 19, 9, 0, 5977, 1024, 1, 0, 0, 0, 5978, 5979, 3, 41, 20, 0, 5979, 5980, 3, 15, 7, 0, 5980, 5981, 3, 45, 22, 0, 5981, 5982, 3, 47, 23, 0, 5982, 5983, 3, 41, 20, 0, 5983, 5984, 3, 33, 16, 0, 5984, 5985, 3, 43, 21, 0, 5985, 1026, 1, 0, 0, 0, 5986, 5987, 3, 41, 20, 0, 5987, 5988, 3, 15, 7, 0, 5988, 5989, 3, 49, 24, 0, 5989, 5990, 3, 35, 17, 0, 5990, 5991, 3, 27, 13, 0, 5991, 5992, 3, 15, 7, 0, 5992, 1028, 1, 0, 0, 0, 5993, 5994, 3, 41, 20, 0, 5994, 5995, 3, 23, 11, 0, 5995, 5996, 3, 19, 9, 0, 5996, 5997, 3, 21, 10, 0, 5997, 5998, 3, 45, 22, 0, 5998, 1030, 1, 0, 0, 0, 5999, 6000, 3, 41, 20, 0, 6000, 6001, 3, 35, 17, 0, 6001, 6002, 3, 29, 14, 0, 6002, 6003, 3, 15, 7, 0, 6003, 1032, 1, 0, 0, 0, 6004, 6005, 3, 41, 20, 0, 6005, 6006, 3, 35, 17, 0, 6006, 6007, 3, 29, 14, 0, 6007, 6008, 3, 29, 14, 0, 6008, 6009, 3, 9, 4, 0, 6009, 6010, 3, 7, 3, 0, 6010, 6011, 3, 11, 5, 0, 6011, 6012, 3, 27, 13, 0, 6012, 1034, 1, 0, 0, 0, 6013, 6014, 3, 41, 20, 0, 6014, 6015, 3, 35, 17, 0, 6015, 6016, 3, 29, 14, 0, 6016, 6017, 3, 29, 14, 0, 6017, 6018, 3, 47, 23, 0, 6018, 6019, 3, 37, 18, 0, 6019, 1036, 1, 0, 0, 0, 6020, 6021, 3, 41, 20, 0, 6021, 6022, 3, 35, 17, 0, 6022, 6023, 3, 47, 23, 0, 6023, 6024, 3, 45, 22, 0, 6024, 6025, 3, 23, 11, 0, 6025, 6026, 3, 33, 16, 0, 6026, 6027, 3, 15, 7, 0, 6027, 1038, 1, 0, 0, 0, 6028, 6029, 3, 41, 20, 0, 6029, 6030, 3, 35, 17, 0, 6030, 6031, 3, 47, 23, 0, 6031, 6032, 3, 45, 22, 0, 6032, 6033, 3, 23, 11, 0, 6033, 6034, 3, 33, 16, 0, 6034, 6035, 3, 15, 7, 0, 6035, 6036, 5, 95, 0, 0, 6036, 6037, 3, 11, 5, 0, 6037, 6038, 3, 7, 3, 0, 6038, 6039, 3, 45, 22, 0, 6039, 6040, 3, 7, 3, 0, 6040, 6041, 3, 29, 14, 0, 6041, 6042, 3, 35, 17, 0, 6042, 6043, 3, 19, 9, 0, 6043, 1040, 1, 0, 0, 0, 6044, 6045, 3, 41, 20, 0, 6045, 6046, 3, 35, 17, 0, 6046, 6047, 3, 47, 23, 0, 6047, 6048, 3, 45, 22, 0, 6048, 6049, 3, 23, 11, 0, 6049, 6050, 3, 33, 16, 0, 6050, 6051, 3, 15, 7, 0, 6051, 6052, 5, 95, 0, 0, 6052, 6053, 3, 33, 16, 0, 6053, 6054, 3, 7, 3, 0, 6054, 6055, 3, 31, 15, 0, 6055, 6056, 3, 15, 7, 0, 6056, 1042, 1, 0, 0, 0, 6057, 6058, 3, 41, 20, 0, 6058, 6059, 3, 35, 17, 0, 6059, 6060, 3, 47, 23, 0, 6060, 6061, 3, 45, 22, 0, 6061, 6062, 3, 23, 11, 0, 6062, 6063, 3, 33, 16, 0, 6063, 6064, 3, 15, 7, 0, 6064, 6065, 5, 95, 0, 0, 6065, 6066, 3, 43, 21, 0, 6066, 6067, 3, 11, 5, 0, 6067, 6068, 3, 21, 10, 0, 6068, 6069, 3, 15, 7, 0, 6069, 6070, 3, 31, 15, 0, 6070, 6071, 3, 7, 3, 0, 6071, 1044, 1, 0, 0, 0, 6072, 6073, 3, 41, 20, 0, 6073, 6074, 3, 35, 17, 0, 6074, 6075, 3, 51, 25, 0, 6075, 1046, 1, 0, 0, 0, 6076, 6077, 3, 41, 20, 0, 6077, 6078, 3, 35, 17, 0, 6078, 6079, 3, 51, 25, 0, 6079, 6080, 5, 95, 0, 0, 6080, 6081, 3, 11, 5, 0, 6081, 6082, 3, 35, 17, 0, 6082, 6083, 3, 47, 23, 0, 6083, 6084, 3, 33, 16, 0, 6084, 6085, 3, 45, 22, 0, 6085, 1048, 1, 0, 0, 0, 6086, 6087, 3, 41, 20, 0, 6087, 6088, 3, 35, 17, 0, 6088, 6089, 3, 51, 25, 0, 6089, 6090, 5, 95, 0, 0, 6090, 6091, 3, 33, 16, 0, 6091, 6092, 3, 47, 23, 0, 6092, 6093, 3, 31, 15, 0, 6093, 6094, 3, 9, 4, 0, 6094, 6095, 3, 15, 7, 0, 6095, 6096, 3, 41, 20, 0, 6096, 1050, 1, 0, 0, 0, 6097, 6098, 3, 41, 20, 0, 6098, 6099, 3, 35, 17, 0, 6099, 6100, 3, 51, 25, 0, 6100, 6101, 3, 43, 21, 0, 6101, 1052, 1, 0, 0, 0, 6102, 6103, 3, 41, 20, 0, 6103, 6104, 3, 47, 23, 0, 6104, 6105, 3, 29, 14, 0, 6105, 6106, 3, 15, 7, 0, 6106, 1054, 1, 0, 0, 0, 6107, 6108, 3, 43, 21, 0, 6108, 6109, 3, 7, 3, 0, 6109, 6110, 3, 49, 24, 0, 6110, 6111, 3, 15, 7, 0, 6111, 6112, 3, 37, 18, 0, 6112, 6113, 3, 35, 17, 0, 6113, 6114, 3, 23, 11, 0, 6114, 6115, 3, 33, 16, 0, 6115, 6116, 3, 45, 22, 0, 6116, 1056, 1, 0, 0, 0, 6117, 6118, 3, 43, 21, 0, 6118, 6119, 3, 11, 5, 0, 6119, 6120, 3, 7, 3, 0, 6120, 6121, 3, 29, 14, 0, 6121, 6122, 3, 15, 7, 0, 6122, 1058, 1, 0, 0, 0, 6123, 6124, 3, 43, 21, 0, 6124, 6125, 3, 11, 5, 0, 6125, 6126, 3, 21, 10, 0, 6126, 6127, 3, 15, 7, 0, 6127, 6128, 3, 31, 15, 0, 6128, 6129, 3, 7, 3, 0, 6129, 1060, 1, 0, 0, 0, 6130, 6131, 3, 43, 21, 0, 6131, 6132, 3, 11, 5, 0, 6132, 6133, 3, 21, 10, 0, 6133, 6134, 3, 15, 7, 0, 6134, 6135, 3, 31, 15, 0, 6135, 6136, 3, 7, 3, 0, 6136, 6137, 5, 95, 0, 0, 6137, 6138, 3, 33, 16, 0, 6138, 6139, 3, 7, 3, 0, 6139, 6140, 3, 31, 15, 0, 6140, 6141, 3, 15, 7, 0, 6141, 1062, 1, 0, 0, 0, 6142, 6143, 3, 43, 21, 0, 6143, 6144, 3, 11, 5, 0, 6144, 6145, 3, 35, 17, 0, 6145, 6146, 3, 37, 18, 0, 6146, 6147, 3, 15, 7, 0, 6147, 1064, 1, 0, 0, 0, 6148, 6149, 3, 43, 21, 0, 6149, 6150, 3, 11, 5, 0, 6150, 6151, 3, 35, 17, 0, 6151, 6152, 3, 37, 18, 0, 6152, 6153, 3, 15, 7, 0, 6153, 6154, 5, 95, 0, 0, 6154, 6155, 3, 11, 5, 0, 6155, 6156, 3, 7, 3, 0, 6156, 6157, 3, 45, 22, 0, 6157, 6158, 3, 7, 3, 0, 6158, 6159, 3, 29, 14, 0, 6159, 6160, 3, 35, 17, 0, 6160, 6161, 3, 19, 9, 0, 6161, 1066, 1, 0, 0, 0, 6162, 6163, 3, 43, 21, 0, 6163, 6164, 3, 11, 5, 0, 6164, 6165, 3, 35, 17, 0, 6165, 6166, 3, 37, 18, 0, 6166, 6167, 3, 15, 7, 0, 6167, 6168, 5, 95, 0, 0, 6168, 6169, 3, 33, 16, 0, 6169, 6170, 3, 7, 3, 0, 6170, 6171, 3, 31, 15, 0, 6171, 6172, 3, 15, 7, 0, 6172, 1068, 1, 0, 0, 0, 6173, 6174, 3, 43, 21, 0, 6174, 6175, 3, 11, 5, 0, 6175, 6176, 3, 35, 17, 0, 6176, 6177, 3, 37, 18, 0, 6177, 6178, 3, 15, 7, 0, 6178, 6179, 5, 95, 0, 0, 6179, 6180, 3, 43, 21, 0, 6180, 6181, 3, 11, 5, 0, 6181, 6182, 3, 21, 10, 0, 6182, 6183, 3, 15, 7, 0, 6183, 6184, 3, 31, 15, 0, 6184, 6185, 3, 7, 3, 0, 6185, 1070, 1, 0, 0, 0, 6186, 6187, 3, 43, 21, 0, 6187, 6188, 3, 11, 5, 0, 6188, 6189, 3, 41, 20, 0, 6189, 6190, 3, 35, 17, 0, 6190, 6191, 3, 29, 14, 0, 6191, 6192, 3, 29, 14, 0, 6192, 1072, 1, 0, 0, 0, 6193, 6194, 3, 43, 21, 0, 6194, 6195, 3, 15, 7, 0, 6195, 6196, 3, 7, 3, 0, 6196, 6197, 3, 41, 20, 0, 6197, 6198, 3, 11, 5, 0, 6198, 6199, 3, 21, 10, 0, 6199, 1074, 1, 0, 0, 0, 6200, 6201, 3, 43, 21, 0, 6201, 6202, 3, 15, 7, 0, 6202, 6203, 3, 11, 5, 0, 6203, 6204, 3, 35, 17, 0, 6204, 6205, 3, 33, 16, 0, 6205, 6206, 3, 13, 6, 0, 6206, 1076, 1, 0, 0, 0, 6207, 6208, 3, 43, 21, 0, 6208, 6209, 3, 15, 7, 0, 6209, 6210, 3, 11, 5, 0, 6210, 6211, 3, 45, 22, 0, 6211, 6212, 3, 23, 11, 0, 6212, 6213, 3, 35, 17, 0, 6213, 6214, 3, 33, 16, 0, 6214, 1078, 1, 0, 0, 0, 6215, 6216, 3, 43, 21, 0, 6216, 6217, 3, 15, 7, 0, 6217, 6218, 3, 11, 5, 0, 6218, 6219, 3, 47, 23, 0, 6219, 6220, 3, 41, 20, 0, 6220, 6221, 3, 23, 11, 0, 6221, 6222, 3, 45, 22, 0, 6222, 6223, 3, 55, 27, 0, 6223, 1080, 1, 0, 0, 0, 6224, 6225, 3, 43, 21, 0, 6225, 6226, 3, 15, 7, 0, 6226, 6227, 3, 29, 14, 0, 6227, 6228, 3, 15, 7, 0, 6228, 6229, 3, 11, 5, 0, 6229, 6230, 3, 45, 22, 0, 6230, 1082, 1, 0, 0, 0, 6231, 6232, 3, 43, 21, 0, 6232, 6233, 3, 15, 7, 0, 6233, 6234, 3, 29, 14, 0, 6234, 6235, 3, 17, 8, 0, 6235, 1084, 1, 0, 0, 0, 6236, 6237, 3, 43, 21, 0, 6237, 6238, 3, 15, 7, 0, 6238, 6239, 3, 33, 16, 0, 6239, 6240, 3, 43, 21, 0, 6240, 6241, 3, 23, 11, 0, 6241, 6242, 3, 45, 22, 0, 6242, 6243, 3, 23, 11, 0, 6243, 6244, 3, 49, 24, 0, 6244, 6245, 3, 15, 7, 0, 6245, 1086, 1, 0, 0, 0, 6246, 6247, 3, 43, 21, 0, 6247, 6248, 3, 15, 7, 0, 6248, 6249, 3, 39, 19, 0, 6249, 6250, 3, 47, 23, 0, 6250, 6251, 3, 15, 7, 0, 6251, 6252, 3, 33, 16, 0, 6252, 6253, 3, 11, 5, 0, 6253, 6254, 3, 15, 7, 0, 6254, 1088, 1, 0, 0, 0, 6255, 6256, 3, 43, 21, 0, 6256, 6257, 3, 15, 7, 0, 6257, 6258, 3, 39, 19, 0, 6258, 6259, 3, 47, 23, 0, 6259, 6260, 3, 15, 7, 0, 6260, 6261, 3, 33, 16, 0, 6261, 6262, 3, 11, 5, 0, 6262, 6263, 3, 15, 7, 0, 6263, 6264, 3, 43, 21, 0, 6264, 1090, 1, 0, 0, 0, 6265, 6266, 3, 43, 21, 0, 6266, 6267, 3, 15, 7, 0, 6267, 6268, 3, 41, 20, 0, 6268, 6269, 3, 23, 11, 0, 6269, 6270, 3, 7, 3, 0, 6270, 6271, 3, 29, 14, 0, 6271, 6272, 3, 23, 11, 0, 6272, 6273, 3, 57, 28, 0, 6273, 6274, 3, 7, 3, 0, 6274, 6275, 3, 9, 4, 0, 6275, 6276, 3, 29, 14, 0, 6276, 6277, 3, 15, 7, 0, 6277, 1092, 1, 0, 0, 0, 6278, 6279, 3, 43, 21, 0, 6279, 6280, 3, 15, 7, 0, 6280, 6281, 3, 41, 20, 0, 6281, 6282, 3, 49, 24, 0, 6282, 6283, 3, 15, 7, 0, 6283, 6284, 3, 41, 20, 0, 6284, 6285, 5, 95, 0, 0, 6285, 6286, 3, 33, 16, 0, 6286, 6287, 3, 7, 3, 0, 6287, 6288, 3, 31, 15, 0, 6288, 6289, 3, 15, 7, 0, 6289, 1094, 1, 0, 0, 0, 6290, 6291, 3, 43, 21, 0, 6291, 6292, 3, 15, 7, 0, 6292, 6293, 3, 43, 21, 0, 6293, 6294, 3, 43, 21, 0, 6294, 6295, 3, 23, 11, 0, 6295, 6296, 3, 35, 17, 0, 6296, 6297, 3, 33, 16, 0, 6297, 1096, 1, 0, 0, 0, 6298, 6299, 3, 43, 21, 0, 6299, 6300, 3, 15, 7, 0, 6300, 6301, 3, 43, 21, 0, 6301, 6302, 3, 43, 21, 0, 6302, 6303, 3, 23, 11, 0, 6303, 6304, 3, 35, 17, 0, 6304, 6305, 3, 33, 16, 0, 6305, 6306, 5, 95, 0, 0, 6306, 6307, 3, 47, 23, 0, 6307, 6308, 3, 43, 21, 0, 6308, 6309, 3, 15, 7, 0, 6309, 6310, 3, 41, 20, 0, 6310, 1098, 1, 0, 0, 0, 6311, 6312, 3, 43, 21, 0, 6312, 6313, 3, 15, 7, 0, 6313, 6314, 3, 45, 22, 0, 6314, 1100, 1, 0, 0, 0, 6315, 6316, 3, 43, 21, 0, 6316, 6317, 3, 15, 7, 0, 6317, 6318, 3, 45, 22, 0, 6318, 6319, 3, 35, 17, 0, 6319, 6320, 3, 17, 8, 0, 6320, 1102, 1, 0, 0, 0, 6321, 6322, 3, 43, 21, 0, 6322, 6323, 3, 15, 7, 0, 6323, 6324, 3, 45, 22, 0, 6324, 6325, 3, 43, 21, 0, 6325, 1104, 1, 0, 0, 0, 6326, 6327, 3, 43, 21, 0, 6327, 6328, 3, 21, 10, 0, 6328, 6329, 3, 7, 3, 0, 6329, 6330, 3, 41, 20, 0, 6330, 6331, 3, 15, 7, 0, 6331, 1106, 1, 0, 0, 0, 6332, 6333, 3, 43, 21, 0, 6333, 6334, 3, 21, 10, 0, 6334, 6335, 3, 35, 17, 0, 6335, 6336, 3, 51, 25, 0, 6336, 1108, 1, 0, 0, 0, 6337, 6338, 3, 43, 21, 0, 6338, 6339, 3, 23, 11, 0, 6339, 6340, 3, 31, 15, 0, 6340, 6341, 3, 23, 11, 0, 6341, 6342, 3, 29, 14, 0, 6342, 6343, 3, 7, 3, 0, 6343, 6344, 3, 41, 20, 0, 6344, 1110, 1, 0, 0, 0, 6345, 6346, 3, 43, 21, 0, 6346, 6347, 3, 23, 11, 0, 6347, 6348, 3, 31, 15, 0, 6348, 6349, 3, 37, 18, 0, 6349, 6350, 3, 29, 14, 0, 6350, 6351, 3, 15, 7, 0, 6351, 1112, 1, 0, 0, 0, 6352, 6353, 3, 43, 21, 0, 6353, 6354, 3, 23, 11, 0, 6354, 6355, 3, 57, 28, 0, 6355, 6356, 3, 15, 7, 0, 6356, 1114, 1, 0, 0, 0, 6357, 6358, 3, 43, 21, 0, 6358, 6359, 3, 27, 13, 0, 6359, 6360, 3, 23, 11, 0, 6360, 6361, 3, 37, 18, 0, 6361, 1116, 1, 0, 0, 0, 6362, 6363, 3, 43, 21, 0, 6363, 6364, 3, 31, 15, 0, 6364, 6365, 3, 7, 3, 0, 6365, 6366, 3, 29, 14, 0, 6366, 6367, 3, 29, 14, 0, 6367, 6368, 3, 23, 11, 0, 6368, 6369, 3, 33, 16, 0, 6369, 6370, 3, 45, 22, 0, 6370, 1118, 1, 0, 0, 0, 6371, 6372, 3, 43, 21, 0, 6372, 6373, 3, 33, 16, 0, 6373, 6374, 3, 7, 3, 0, 6374, 6375, 3, 37, 18, 0, 6375, 6376, 3, 43, 21, 0, 6376, 6377, 3, 21, 10, 0, 6377, 6378, 3, 35, 17, 0, 6378, 6379, 3, 45, 22, 0, 6379, 1120, 1, 0, 0, 0, 6380, 6381, 3, 43, 21, 0, 6381, 6382, 3, 35, 17, 0, 6382, 6383, 3, 31, 15, 0, 6383, 6384, 3, 15, 7, 0, 6384, 1122, 1, 0, 0, 0, 6385, 6386, 3, 43, 21, 0, 6386, 6387, 3, 35, 17, 0, 6387, 6388, 3, 47, 23, 0, 6388, 6389, 3, 41, 20, 0, 6389, 6390, 3, 11, 5, 0, 6390, 6391, 3, 15, 7, 0, 6391, 1124, 1, 0, 0, 0, 6392, 6393, 3, 43, 21, 0, 6393, 6394, 3, 37, 18, 0, 6394, 6395, 3, 7, 3, 0, 6395, 6396, 3, 11, 5, 0, 6396, 6397, 3, 15, 7, 0, 6397, 1126, 1, 0, 0, 0, 6398, 6399, 3, 43, 21, 0, 6399, 6400, 3, 37, 18, 0, 6400, 6401, 3, 15, 7, 0, 6401, 6402, 3, 11, 5, 0, 6402, 6403, 3, 23, 11, 0, 6403, 6404, 3, 17, 8, 0, 6404, 6405, 3, 23, 11, 0, 6405, 6406, 3, 11, 5, 0, 6406, 1128, 1, 0, 0, 0, 6407, 6408, 3, 43, 21, 0, 6408, 6409, 3, 37, 18, 0, 6409, 6410, 3, 15, 7, 0, 6410, 6411, 3, 11, 5, 0, 6411, 6412, 3, 23, 11, 0, 6412, 6413, 3, 17, 8, 0, 6413, 6414, 3, 23, 11, 0, 6414, 6415, 3, 11, 5, 0, 6415, 6416, 5, 95, 0, 0, 6416, 6417, 3, 33, 16, 0, 6417, 6418, 3, 7, 3, 0, 6418, 6419, 3, 31, 15, 0, 6419, 6420, 3, 15, 7, 0, 6420, 1130, 1, 0, 0, 0, 6421, 6422, 3, 43, 21, 0, 6422, 6423, 3, 37, 18, 0, 6423, 6424, 3, 15, 7, 0, 6424, 6425, 3, 11, 5, 0, 6425, 6426, 3, 23, 11, 0, 6426, 6427, 3, 17, 8, 0, 6427, 6428, 3, 23, 11, 0, 6428, 6429, 3, 11, 5, 0, 6429, 6430, 3, 45, 22, 0, 6430, 6431, 3, 55, 27, 0, 6431, 6432, 3, 37, 18, 0, 6432, 6433, 3, 15, 7, 0, 6433, 1132, 1, 0, 0, 0, 6434, 6435, 3, 43, 21, 0, 6435, 6436, 3, 39, 19, 0, 6436, 6437, 3, 29, 14, 0, 6437, 1134, 1, 0, 0, 0, 6438, 6439, 3, 43, 21, 0, 6439, 6440, 3, 39, 19, 0, 6440, 6441, 3, 29, 14, 0, 6441, 6442, 3, 11, 5, 0, 6442, 6443, 3, 35, 17, 0, 6443, 6444, 3, 13, 6, 0, 6444, 6445, 3, 15, 7, 0, 6445, 1136, 1, 0, 0, 0, 6446, 6447, 3, 43, 21, 0, 6447, 6448, 3, 39, 19, 0, 6448, 6449, 3, 29, 14, 0, 6449, 6450, 3, 15, 7, 0, 6450, 6451, 3, 41, 20, 0, 6451, 6452, 3, 41, 20, 0, 6452, 6453, 3, 35, 17, 0, 6453, 6454, 3, 41, 20, 0, 6454, 1138, 1, 0, 0, 0, 6455, 6456, 3, 43, 21, 0, 6456, 6457, 3, 39, 19, 0, 6457, 6458, 3, 29, 14, 0, 6458, 6459, 3, 15, 7, 0, 6459, 6460, 3, 53, 26, 0, 6460, 6461, 3, 11, 5, 0, 6461, 6462, 3, 15, 7, 0, 6462, 6463, 3, 37, 18, 0, 6463, 6464, 3, 45, 22, 0, 6464, 6465, 3, 23, 11, 0, 6465, 6466, 3, 35, 17, 0, 6466, 6467, 3, 33, 16, 0, 6467, 1140, 1, 0, 0, 0, 6468, 6469, 3, 43, 21, 0, 6469, 6470, 3, 39, 19, 0, 6470, 6471, 3, 29, 14, 0, 6471, 6472, 3, 43, 21, 0, 6472, 6473, 3, 45, 22, 0, 6473, 6474, 3, 7, 3, 0, 6474, 6475, 3, 45, 22, 0, 6475, 6476, 3, 15, 7, 0, 6476, 1142, 1, 0, 0, 0, 6477, 6478, 3, 43, 21, 0, 6478, 6479, 3, 39, 19, 0, 6479, 6480, 3, 29, 14, 0, 6480, 6481, 3, 51, 25, 0, 6481, 6482, 3, 7, 3, 0, 6482, 6483, 3, 41, 20, 0, 6483, 6484, 3, 33, 16, 0, 6484, 6485, 3, 23, 11, 0, 6485, 6486, 3, 33, 16, 0, 6486, 6487, 3, 19, 9, 0, 6487, 1144, 1, 0, 0, 0, 6488, 6489, 3, 43, 21, 0, 6489, 6490, 3, 39, 19, 0, 6490, 6491, 3, 41, 20, 0, 6491, 6492, 3, 45, 22, 0, 6492, 1146, 1, 0, 0, 0, 6493, 6494, 3, 43, 21, 0, 6494, 6495, 3, 45, 22, 0, 6495, 6496, 3, 7, 3, 0, 6496, 6497, 3, 9, 4, 0, 6497, 6498, 3, 29, 14, 0, 6498, 6499, 3, 15, 7, 0, 6499, 1148, 1, 0, 0, 0, 6500, 6501, 3, 43, 21, 0, 6501, 6502, 3, 45, 22, 0, 6502, 6503, 3, 7, 3, 0, 6503, 6504, 3, 41, 20, 0, 6504, 6505, 3, 45, 22, 0, 6505, 1150, 1, 0, 0, 0, 6506, 6507, 3, 43, 21, 0, 6507, 6508, 3, 45, 22, 0, 6508, 6509, 3, 7, 3, 0, 6509, 6510, 3, 45, 22, 0, 6510, 6511, 3, 15, 7, 0, 6511, 1152, 1, 0, 0, 0, 6512, 6513, 3, 43, 21, 0, 6513, 6514, 3, 45, 22, 0, 6514, 6515, 3, 7, 3, 0, 6515, 6516, 3, 45, 22, 0, 6516, 6517, 3, 15, 7, 0, 6517, 6518, 3, 31, 15, 0, 6518, 6519, 3, 15, 7, 0, 6519, 6520, 3, 33, 16, 0, 6520, 6521, 3, 45, 22, 0, 6521, 1154, 1, 0, 0, 0, 6522, 6523, 3, 43, 21, 0, 6523, 6524, 3, 45, 22, 0, 6524, 6525, 3, 7, 3, 0, 6525, 6526, 3, 45, 22, 0, 6526, 6527, 3, 23, 11, 0, 6527, 6528, 3, 11, 5, 0, 6528, 1156, 1, 0, 0, 0, 6529, 6530, 3, 43, 21, 0, 6530, 6531, 3, 45, 22, 0, 6531, 6532, 3, 7, 3, 0, 6532, 6533, 3, 45, 22, 0, 6533, 6534, 3, 23, 11, 0, 6534, 6535, 3, 43, 21, 0, 6535, 6536, 3, 45, 22, 0, 6536, 6537, 3, 23, 11, 0, 6537, 6538, 3, 11, 5, 0, 6538, 6539, 3, 43, 21, 0, 6539, 1158, 1, 0, 0, 0, 6540, 6541, 3, 43, 21, 0, 6541, 6542, 3, 45, 22, 0, 6542, 6543, 3, 13, 6, 0, 6543, 6544, 3, 13, 6, 0, 6544, 6545, 3, 15, 7, 0, 6545, 6546, 3, 49, 24, 0, 6546, 6547, 5, 95, 0, 0, 6547, 6548, 3, 37, 18, 0, 6548, 6549, 3, 35, 17, 0, 6549, 6550, 3, 37, 18, 0, 6550, 1160, 1, 0, 0, 0, 6551, 6552, 3, 43, 21, 0, 6552, 6553, 3, 45, 22, 0, 6553, 6554, 3, 13, 6, 0, 6554, 6555, 3, 13, 6, 0, 6555, 6556, 3, 15, 7, 0, 6556, 6557, 3, 49, 24, 0, 6557, 6558, 5, 95, 0, 0, 6558, 6559, 3, 43, 21, 0, 6559, 6560, 3, 7, 3, 0, 6560, 6561, 3, 31, 15, 0, 6561, 6562, 3, 37, 18, 0, 6562, 1162, 1, 0, 0, 0, 6563, 6564, 3, 43, 21, 0, 6564, 6565, 3, 45, 22, 0, 6565, 6566, 3, 13, 6, 0, 6566, 6567, 3, 23, 11, 0, 6567, 6568, 3, 33, 16, 0, 6568, 1164, 1, 0, 0, 0, 6569, 6570, 3, 43, 21, 0, 6570, 6571, 3, 45, 22, 0, 6571, 6572, 3, 13, 6, 0, 6572, 6573, 3, 35, 17, 0, 6573, 6574, 3, 47, 23, 0, 6574, 6575, 3, 45, 22, 0, 6575, 1166, 1, 0, 0, 0, 6576, 6577, 3, 43, 21, 0, 6577, 6578, 3, 45, 22, 0, 6578, 6579, 3, 35, 17, 0, 6579, 6580, 3, 41, 20, 0, 6580, 6581, 3, 7, 3, 0, 6581, 6582, 3, 19, 9, 0, 6582, 6583, 3, 15, 7, 0, 6583, 1168, 1, 0, 0, 0, 6584, 6585, 3, 43, 21, 0, 6585, 6586, 3, 45, 22, 0, 6586, 6587, 3, 41, 20, 0, 6587, 6588, 3, 23, 11, 0, 6588, 6589, 3, 11, 5, 0, 6589, 6590, 3, 45, 22, 0, 6590, 1170, 1, 0, 0, 0, 6591, 6592, 3, 43, 21, 0, 6592, 6593, 3, 45, 22, 0, 6593, 6594, 3, 41, 20, 0, 6594, 6595, 3, 47, 23, 0, 6595, 6596, 3, 11, 5, 0, 6596, 6597, 3, 45, 22, 0, 6597, 6598, 3, 47, 23, 0, 6598, 6599, 3, 41, 20, 0, 6599, 6600, 3, 15, 7, 0, 6600, 1172, 1, 0, 0, 0, 6601, 6602, 3, 43, 21, 0, 6602, 6603, 3, 45, 22, 0, 6603, 6604, 3, 55, 27, 0, 6604, 6605, 3, 29, 14, 0, 6605, 6606, 3, 15, 7, 0, 6606, 1174, 1, 0, 0, 0, 6607, 6608, 3, 43, 21, 0, 6608, 6609, 3, 47, 23, 0, 6609, 6610, 3, 9, 4, 0, 6610, 6611, 3, 11, 5, 0, 6611, 6612, 3, 29, 14, 0, 6612, 6613, 3, 7, 3, 0, 6613, 6614, 3, 43, 21, 0, 6614, 6615, 3, 43, 21, 0, 6615, 6616, 5, 95, 0, 0, 6616, 6617, 3, 35, 17, 0, 6617, 6618, 3, 41, 20, 0, 6618, 6619, 3, 23, 11, 0, 6619, 6620, 3, 19, 9, 0, 6620, 6621, 3, 23, 11, 0, 6621, 6622, 3, 33, 16, 0, 6622, 1176, 1, 0, 0, 0, 6623, 6624, 3, 43, 21, 0, 6624, 6625, 3, 47, 23, 0, 6625, 6626, 3, 9, 4, 0, 6626, 6627, 3, 29, 14, 0, 6627, 6628, 3, 23, 11, 0, 6628, 6629, 3, 43, 21, 0, 6629, 6630, 3, 45, 22, 0, 6630, 1178, 1, 0, 0, 0, 6631, 6632, 3, 43, 21, 0, 6632, 6633, 3, 47, 23, 0, 6633, 6634, 3, 9, 4, 0, 6634, 6635, 3, 31, 15, 0, 6635, 6636, 3, 47, 23, 0, 6636, 6637, 3, 29, 14, 0, 6637, 6638, 3, 45, 22, 0, 6638, 6639, 3, 23, 11, 0, 6639, 6640, 3, 43, 21, 0, 6640, 6641, 3, 15, 7, 0, 6641, 6642, 3, 45, 22, 0, 6642, 1180, 1, 0, 0, 0, 6643, 6644, 3, 43, 21, 0, 6644, 6645, 3, 47, 23, 0, 6645, 6646, 3, 9, 4, 0, 6646, 6647, 3, 43, 21, 0, 6647, 6648, 3, 11, 5, 0, 6648, 6649, 3, 41, 20, 0, 6649, 6650, 3, 23, 11, 0, 6650, 6651, 3, 37, 18, 0, 6651, 6652, 3, 45, 22, 0, 6652, 6653, 3, 23, 11, 0, 6653, 6654, 3, 35, 17, 0, 6654, 6655, 3, 33, 16, 0, 6655, 1182, 1, 0, 0, 0, 6656, 6657, 3, 43, 21, 0, 6657, 6658, 3, 47, 23, 0, 6658, 6659, 3, 9, 4, 0, 6659, 6660, 3, 43, 21, 0, 6660, 6661, 3, 45, 22, 0, 6661, 6662, 3, 41, 20, 0, 6662, 6663, 3, 23, 11, 0, 6663, 6664, 3, 33, 16, 0, 6664, 6665, 3, 19, 9, 0, 6665, 1184, 1, 0, 0, 0, 6666, 6667, 3, 43, 21, 0, 6667, 6668, 3, 47, 23, 0, 6668, 6669, 3, 31, 15, 0, 6669, 1186, 1, 0, 0, 0, 6670, 6671, 3, 43, 21, 0, 6671, 6672, 3, 55, 27, 0, 6672, 6673, 3, 31, 15, 0, 6673, 6674, 3, 31, 15, 0, 6674, 6675, 3, 15, 7, 0, 6675, 6676, 3, 45, 22, 0, 6676, 6677, 3, 41, 20, 0, 6677, 6678, 3, 23, 11, 0, 6678, 6679, 3, 11, 5, 0, 6679, 1188, 1, 0, 0, 0, 6680, 6681, 3, 43, 21, 0, 6681, 6682, 3, 55, 27, 0, 6682, 6683, 3, 43, 21, 0, 6683, 6684, 3, 23, 11, 0, 6684, 6685, 3, 13, 6, 0, 6685, 1190, 1, 0, 0, 0, 6686, 6687, 3, 43, 21, 0, 6687, 6688, 3, 55, 27, 0, 6688, 6689, 3, 43, 21, 0, 6689, 6690, 3, 45, 22, 0, 6690, 6691, 3, 15, 7, 0, 6691, 6692, 3, 31, 15, 0, 6692, 1192, 1, 0, 0, 0, 6693, 6694, 3, 43, 21, 0, 6694, 6695, 3, 55, 27, 0, 6695, 6696, 3, 43, 21, 0, 6696, 6697, 3, 45, 22, 0, 6697, 6698, 3, 15, 7, 0, 6698, 6699, 3, 31, 15, 0, 6699, 6700, 5, 95, 0, 0, 6700, 6701, 3, 47, 23, 0, 6701, 6702, 3, 43, 21, 0, 6702, 6703, 3, 15, 7, 0, 6703, 6704, 3, 41, 20, 0, 6704, 1194, 1, 0, 0, 0, 6705, 6706, 3, 45, 22, 0, 6706, 6707, 3, 7, 3, 0, 6707, 6708, 3, 9, 4, 0, 6708, 6709, 3, 29, 14, 0, 6709, 6710, 3, 15, 7, 0, 6710, 1196, 1, 0, 0, 0, 6711, 6712, 3, 45, 22, 0, 6712, 6713, 3, 7, 3, 0, 6713, 6714, 3, 9, 4, 0, 6714, 6715, 3, 29, 14, 0, 6715, 6716, 3, 15, 7, 0, 6716, 6717, 5, 95, 0, 0, 6717, 6718, 3, 33, 16, 0, 6718, 6719, 3, 7, 3, 0, 6719, 6720, 3, 31, 15, 0, 6720, 6721, 3, 15, 7, 0, 6721, 1198, 1, 0, 0, 0, 6722, 6723, 3, 45, 22, 0, 6723, 6724, 3, 7, 3, 0, 6724, 6725, 3, 9, 4, 0, 6725, 6726, 3, 29, 14, 0, 6726, 6727, 3, 15, 7, 0, 6727, 6728, 3, 43, 21, 0, 6728, 6729, 3, 7, 3, 0, 6729, 6730, 3, 31, 15, 0, 6730, 6731, 3, 37, 18, 0, 6731, 6732, 3, 29, 14, 0, 6732, 6733, 3, 15, 7, 0, 6733, 1200, 1, 0, 0, 0, 6734, 6735, 3, 45, 22, 0, 6735, 6736, 3, 7, 3, 0, 6736, 6737, 3, 9, 4, 0, 6737, 6738, 3, 29, 14, 0, 6738, 6739, 3, 15, 7, 0, 6739, 6740, 3, 43, 21, 0, 6740, 6741, 3, 37, 18, 0, 6741, 6742, 3, 7, 3, 0, 6742, 6743, 3, 11, 5, 0, 6743, 6744, 3, 15, 7, 0, 6744, 1202, 1, 0, 0, 0, 6745, 6746, 3, 45, 22, 0, 6746, 6747, 3, 15, 7, 0, 6747, 6748, 3, 31, 15, 0, 6748, 6749, 3, 37, 18, 0, 6749, 1204, 1, 0, 0, 0, 6750, 6751, 3, 45, 22, 0, 6751, 6752, 3, 15, 7, 0, 6752, 6753, 3, 31, 15, 0, 6753, 6754, 3, 37, 18, 0, 6754, 6755, 3, 29, 14, 0, 6755, 6756, 3, 7, 3, 0, 6756, 6757, 3, 45, 22, 0, 6757, 6758, 3, 15, 7, 0, 6758, 1206, 1, 0, 0, 0, 6759, 6760, 3, 45, 22, 0, 6760, 6761, 3, 15, 7, 0, 6761, 6762, 3, 31, 15, 0, 6762, 6763, 3, 37, 18, 0, 6763, 6764, 3, 35, 17, 0, 6764, 6765, 3, 41, 20, 0, 6765, 6766, 3, 7, 3, 0, 6766, 6767, 3, 41, 20, 0, 6767, 6768, 3, 55, 27, 0, 6768, 1208, 1, 0, 0, 0, 6769, 6770, 3, 45, 22, 0, 6770, 6771, 3, 15, 7, 0, 6771, 6772, 3, 41, 20, 0, 6772, 6773, 3, 31, 15, 0, 6773, 6774, 3, 23, 11, 0, 6774, 6775, 3, 33, 16, 0, 6775, 6776, 3, 7, 3, 0, 6776, 6777, 3, 45, 22, 0, 6777, 6778, 3, 15, 7, 0, 6778, 1210, 1, 0, 0, 0, 6779, 6780, 3, 45, 22, 0, 6780, 6781, 3, 21, 10, 0, 6781, 6782, 3, 7, 3, 0, 6782, 6783, 3, 33, 16, 0, 6783, 1212, 1, 0, 0, 0, 6784, 6785, 3, 45, 22, 0, 6785, 6786, 3, 21, 10, 0, 6786, 6787, 3, 15, 7, 0, 6787, 6788, 3, 33, 16, 0, 6788, 1214, 1, 0, 0, 0, 6789, 6790, 3, 45, 22, 0, 6790, 6791, 3, 23, 11, 0, 6791, 6792, 3, 15, 7, 0, 6792, 6793, 3, 43, 21, 0, 6793, 1216, 1, 0, 0, 0, 6794, 6795, 3, 45, 22, 0, 6795, 6796, 3, 23, 11, 0, 6796, 6797, 3, 31, 15, 0, 6797, 6798, 3, 15, 7, 0, 6798, 1218, 1, 0, 0, 0, 6799, 6800, 3, 45, 22, 0, 6800, 6801, 3, 23, 11, 0, 6801, 6802, 3, 31, 15, 0, 6802, 6803, 3, 15, 7, 0, 6803, 6804, 3, 43, 21, 0, 6804, 6805, 3, 45, 22, 0, 6805, 6806, 3, 7, 3, 0, 6806, 6807, 3, 31, 15, 0, 6807, 6808, 3, 37, 18, 0, 6808, 1220, 1, 0, 0, 0, 6809, 6810, 3, 45, 22, 0, 6810, 6811, 3, 23, 11, 0, 6811, 6812, 3, 31, 15, 0, 6812, 6813, 3, 15, 7, 0, 6813, 6814, 3, 57, 28, 0, 6814, 6815, 3, 35, 17, 0, 6815, 6816, 3, 33, 16, 0, 6816, 6817, 3, 15, 7, 0, 6817, 6818, 5, 95, 0, 0, 6818, 6819, 3, 21, 10, 0, 6819, 6820, 3, 35, 17, 0, 6820, 6821, 3, 47, 23, 0, 6821, 6822, 3, 41, 20, 0, 6822, 1222, 1, 0, 0, 0, 6823, 6824, 3, 45, 22, 0, 6824, 6825, 3, 23, 11, 0, 6825, 6826, 3, 31, 15, 0, 6826, 6827, 3, 15, 7, 0, 6827, 6828, 3, 57, 28, 0, 6828, 6829, 3, 35, 17, 0, 6829, 6830, 3, 33, 16, 0, 6830, 6831, 3, 15, 7, 0, 6831, 6832, 5, 95, 0, 0, 6832, 6833, 3, 31, 15, 0, 6833, 6834, 3, 23, 11, 0, 6834, 6835, 3, 33, 16, 0, 6835, 6836, 3, 47, 23, 0, 6836, 6837, 3, 45, 22, 0, 6837, 6838, 3, 15, 7, 0, 6838, 1224, 1, 0, 0, 0, 6839, 6840, 3, 45, 22, 0, 6840, 6841, 3, 23, 11, 0, 6841, 6842, 3, 31, 15, 0, 6842, 6843, 3, 23, 11, 0, 6843, 6844, 3, 33, 16, 0, 6844, 6845, 3, 19, 9, 0, 6845, 1226, 1, 0, 0, 0, 6846, 6847, 3, 45, 22, 0, 6847, 6848, 3, 35, 17, 0, 6848, 1228, 1, 0, 0, 0, 6849, 6850, 3, 45, 22, 0, 6850, 6851, 3, 35, 17, 0, 6851, 6852, 3, 7, 3, 0, 6852, 6853, 3, 43, 21, 0, 6853, 6854, 3, 45, 22, 0, 6854, 1230, 1, 0, 0, 0, 6855, 6856, 3, 45, 22, 0, 6856, 6857, 3, 35, 17, 0, 6857, 6858, 3, 37, 18, 0, 6858, 6859, 5, 95, 0, 0, 6859, 6860, 3, 29, 14, 0, 6860, 6861, 3, 15, 7, 0, 6861, 6862, 3, 49, 24, 0, 6862, 6863, 3, 15, 7, 0, 6863, 6864, 3, 29, 14, 0, 6864, 6865, 5, 95, 0, 0, 6865, 6866, 3, 11, 5, 0, 6866, 6867, 3, 35, 17, 0, 6867, 6868, 3, 47, 23, 0, 6868, 6869, 3, 33, 16, 0, 6869, 6870, 3, 45, 22, 0, 6870, 1232, 1, 0, 0, 0, 6871, 6872, 3, 45, 22, 0, 6872, 6873, 3, 41, 20, 0, 6873, 6874, 3, 7, 3, 0, 6874, 6875, 3, 23, 11, 0, 6875, 6876, 3, 29, 14, 0, 6876, 6877, 3, 23, 11, 0, 6877, 6878, 3, 33, 16, 0, 6878, 6879, 3, 19, 9, 0, 6879, 1234, 1, 0, 0, 0, 6880, 6881, 3, 45, 22, 0, 6881, 6882, 3, 41, 20, 0, 6882, 6883, 3, 7, 3, 0, 6883, 6884, 3, 33, 16, 0, 6884, 6885, 3, 43, 21, 0, 6885, 6886, 3, 7, 3, 0, 6886, 6887, 3, 11, 5, 0, 6887, 6888, 3, 45, 22, 0, 6888, 6889, 3, 23, 11, 0, 6889, 6890, 3, 35, 17, 0, 6890, 6891, 3, 33, 16, 0, 6891, 1236, 1, 0, 0, 0, 6892, 6893, 3, 45, 22, 0, 6893, 6894, 3, 41, 20, 0, 6894, 6895, 3, 7, 3, 0, 6895, 6896, 3, 33, 16, 0, 6896, 6897, 3, 43, 21, 0, 6897, 6898, 3, 7, 3, 0, 6898, 6899, 3, 11, 5, 0, 6899, 6900, 3, 45, 22, 0, 6900, 6901, 3, 23, 11, 0, 6901, 6902, 3, 35, 17, 0, 6902, 6903, 3, 33, 16, 0, 6903, 6904, 5, 95, 0, 0, 6904, 6905, 3, 7, 3, 0, 6905, 6906, 3, 11, 5, 0, 6906, 6907, 3, 45, 22, 0, 6907, 6908, 3, 23, 11, 0, 6908, 6909, 3, 49, 24, 0, 6909, 6910, 3, 15, 7, 0, 6910, 1238, 1, 0, 0, 0, 6911, 6912, 3, 45, 22, 0, 6912, 6913, 3, 41, 20, 0, 6913, 6914, 3, 7, 3, 0, 6914, 6915, 3, 33, 16, 0, 6915, 6916, 3, 43, 21, 0, 6916, 6917, 3, 7, 3, 0, 6917, 6918, 3, 11, 5, 0, 6918, 6919, 3, 45, 22, 0, 6919, 6920, 3, 23, 11, 0, 6920, 6921, 3, 35, 17, 0, 6921, 6922, 3, 33, 16, 0, 6922, 6923, 3, 43, 21, 0, 6923, 6924, 5, 95, 0, 0, 6924, 6925, 3, 11, 5, 0, 6925, 6926, 3, 35, 17, 0, 6926, 6927, 3, 31, 15, 0, 6927, 6928, 3, 31, 15, 0, 6928, 6929, 3, 23, 11, 0, 6929, 6930, 3, 45, 22, 0, 6930, 6931, 3, 45, 22, 0, 6931, 6932, 3, 15, 7, 0, 6932, 6933, 3, 13, 6, 0, 6933, 1240, 1, 0, 0, 0, 6934, 6935, 3, 45, 22, 0, 6935, 6936, 3, 41, 20, 0, 6936, 6937, 3, 7, 3, 0, 6937, 6938, 3, 33, 16, 0, 6938, 6939, 3, 43, 21, 0, 6939, 6940, 3, 7, 3, 0, 6940, 6941, 3, 11, 5, 0, 6941, 6942, 3, 45, 22, 0, 6942, 6943, 3, 23, 11, 0, 6943, 6944, 3, 35, 17, 0, 6944, 6945, 3, 33, 16, 0, 6945, 6946, 3, 43, 21, 0, 6946, 6947, 5, 95, 0, 0, 6947, 6948, 3, 41, 20, 0, 6948, 6949, 3, 35, 17, 0, 6949, 6950, 3, 29, 14, 0, 6950, 6951, 3, 29, 14, 0, 6951, 6952, 3, 15, 7, 0, 6952, 6953, 3, 13, 6, 0, 6953, 6954, 5, 95, 0, 0, 6954, 6955, 3, 9, 4, 0, 6955, 6956, 3, 7, 3, 0, 6956, 6957, 3, 11, 5, 0, 6957, 6958, 3, 27, 13, 0, 6958, 1242, 1, 0, 0, 0, 6959, 6960, 3, 45, 22, 0, 6960, 6961, 3, 41, 20, 0, 6961, 6962, 3, 7, 3, 0, 6962, 6963, 3, 33, 16, 0, 6963, 6964, 3, 43, 21, 0, 6964, 6965, 3, 17, 8, 0, 6965, 6966, 3, 35, 17, 0, 6966, 6967, 3, 41, 20, 0, 6967, 6968, 3, 31, 15, 0, 6968, 1244, 1, 0, 0, 0, 6969, 6970, 3, 45, 22, 0, 6970, 6971, 3, 41, 20, 0, 6971, 6972, 3, 7, 3, 0, 6972, 6973, 3, 33, 16, 0, 6973, 6974, 3, 43, 21, 0, 6974, 6975, 3, 17, 8, 0, 6975, 6976, 3, 35, 17, 0, 6976, 6977, 3, 41, 20, 0, 6977, 6978, 3, 31, 15, 0, 6978, 6979, 3, 43, 21, 0, 6979, 1246, 1, 0, 0, 0, 6980, 6981, 3, 45, 22, 0, 6981, 6982, 3, 41, 20, 0, 6982, 6983, 3, 7, 3, 0, 6983, 6984, 3, 33, 16, 0, 6984, 6985, 3, 43, 21, 0, 6985, 6986, 3, 29, 14, 0, 6986, 6987, 3, 7, 3, 0, 6987, 6988, 3, 45, 22, 0, 6988, 6989, 3, 15, 7, 0, 6989, 1248, 1, 0, 0, 0, 6990, 6991, 3, 45, 22, 0, 6991, 6992, 3, 41, 20, 0, 6992, 6993, 3, 7, 3, 0, 6993, 6994, 3, 33, 16, 0, 6994, 6995, 3, 43, 21, 0, 6995, 6996, 3, 29, 14, 0, 6996, 6997, 3, 7, 3, 0, 6997, 6998, 3, 45, 22, 0, 6998, 6999, 3, 23, 11, 0, 6999, 7000, 3, 35, 17, 0, 7000, 7001, 3, 33, 16, 0, 7001, 1250, 1, 0, 0, 0, 7002, 7003, 3, 45, 22, 0, 7003, 7004, 3, 41, 20, 0, 7004, 7005, 3, 15, 7, 0, 7005, 7006, 3, 7, 3, 0, 7006, 7007, 3, 45, 22, 0, 7007, 1252, 1, 0, 0, 0, 7008, 7009, 3, 45, 22, 0, 7009, 7010, 3, 41, 20, 0, 7010, 7011, 3, 23, 11, 0, 7011, 7012, 3, 19, 9, 0, 7012, 7013, 3, 19, 9, 0, 7013, 7014, 3, 15, 7, 0, 7014, 7015, 3, 41, 20, 0, 7015, 1254, 1, 0, 0, 0, 7016, 7017, 3, 45, 22, 0, 7017, 7018, 3, 41, 20, 0, 7018, 7019, 3, 23, 11, 0, 7019, 7020, 3, 19, 9, 0, 7020, 7021, 3, 19, 9, 0, 7021, 7022, 3, 15, 7, 0, 7022, 7023, 3, 41, 20, 0, 7023, 7024, 5, 95, 0, 0, 7024, 7025, 3, 11, 5, 0, 7025, 7026, 3, 7, 3, 0, 7026, 7027, 3, 45, 22, 0, 7027, 7028, 3, 7, 3, 0, 7028, 7029, 3, 29, 14, 0, 7029, 7030, 3, 35, 17, 0, 7030, 7031, 3, 19, 9, 0, 7031, 1256, 1, 0, 0, 0, 7032, 7033, 3, 45, 22, 0, 7033, 7034, 3, 41, 20, 0, 7034, 7035, 3, 23, 11, 0, 7035, 7036, 3, 19, 9, 0, 7036, 7037, 3, 19, 9, 0, 7037, 7038, 3, 15, 7, 0, 7038, 7039, 3, 41, 20, 0, 7039, 7040, 5, 95, 0, 0, 7040, 7041, 3, 33, 16, 0, 7041, 7042, 3, 7, 3, 0, 7042, 7043, 3, 31, 15, 0, 7043, 7044, 3, 15, 7, 0, 7044, 1258, 1, 0, 0, 0, 7045, 7046, 3, 45, 22, 0, 7046, 7047, 3, 41, 20, 0, 7047, 7048, 3, 23, 11, 0, 7048, 7049, 3, 19, 9, 0, 7049, 7050, 3, 19, 9, 0, 7050, 7051, 3, 15, 7, 0, 7051, 7052, 3, 41, 20, 0, 7052, 7053, 5, 95, 0, 0, 7053, 7054, 3, 43, 21, 0, 7054, 7055, 3, 11, 5, 0, 7055, 7056, 3, 21, 10, 0, 7056, 7057, 3, 15, 7, 0, 7057, 7058, 3, 31, 15, 0, 7058, 7059, 3, 7, 3, 0, 7059, 1260, 1, 0, 0, 0, 7060, 7061, 3, 45, 22, 0, 7061, 7062, 3, 41, 20, 0, 7062, 7063, 3, 23, 11, 0, 7063, 7064, 3, 31, 15, 0, 7064, 1262, 1, 0, 0, 0, 7065, 7066, 3, 45, 22, 0, 7066, 7067, 3, 41, 20, 0, 7067, 7068, 3, 47, 23, 0, 7068, 7069, 3, 15, 7, 0, 7069, 1264, 1, 0, 0, 0, 7070, 7071, 3, 45, 22, 0, 7071, 7072, 3, 41, 20, 0, 7072, 7073, 3, 47, 23, 0, 7073, 7074, 3, 33, 16, 0, 7074, 7075, 3, 11, 5, 0, 7075, 7076, 3, 7, 3, 0, 7076, 7077, 3, 45, 22, 0, 7077, 7078, 3, 15, 7, 0, 7078, 1266, 1, 0, 0, 0, 7079, 7080, 3, 45, 22, 0, 7080, 7081, 3, 41, 20, 0, 7081, 7082, 3, 47, 23, 0, 7082, 7083, 3, 43, 21, 0, 7083, 7084, 3, 45, 22, 0, 7084, 7085, 3, 15, 7, 0, 7085, 7086, 3, 13, 6, 0, 7086, 1268, 1, 0, 0, 0, 7087, 7088, 3, 45, 22, 0, 7088, 7089, 3, 55, 27, 0, 7089, 7090, 3, 37, 18, 0, 7090, 7091, 3, 15, 7, 0, 7091, 1270, 1, 0, 0, 0, 7092, 7093, 3, 47, 23, 0, 7093, 7094, 3, 15, 7, 0, 7094, 7095, 3, 43, 21, 0, 7095, 7096, 3, 11, 5, 0, 7096, 7097, 3, 7, 3, 0, 7097, 7098, 3, 37, 18, 0, 7098, 7099, 3, 15, 7, 0, 7099, 1272, 1, 0, 0, 0, 7100, 7101, 3, 47, 23, 0, 7101, 7102, 3, 33, 16, 0, 7102, 7103, 3, 9, 4, 0, 7103, 7104, 3, 35, 17, 0, 7104, 7105, 3, 47, 23, 0, 7105, 7106, 3, 33, 16, 0, 7106, 7107, 3, 13, 6, 0, 7107, 7108, 3, 15, 7, 0, 7108, 7109, 3, 13, 6, 0, 7109, 1274, 1, 0, 0, 0, 7110, 7111, 3, 47, 23, 0, 7111, 7112, 3, 33, 16, 0, 7112, 7113, 3, 11, 5, 0, 7113, 7114, 3, 35, 17, 0, 7114, 7115, 3, 31, 15, 0, 7115, 7116, 3, 31, 15, 0, 7116, 7117, 3, 23, 11, 0, 7117, 7118, 3, 45, 22, 0, 7118, 7119, 3, 45, 22, 0, 7119, 7120, 3, 15, 7, 0, 7120, 7121, 3, 13, 6, 0, 7121, 1276, 1, 0, 0, 0, 7122, 7123, 3, 47, 23, 0, 7123, 7124, 3, 33, 16, 0, 7124, 7125, 3, 13, 6, 0, 7125, 7126, 3, 15, 7, 0, 7126, 7127, 3, 41, 20, 0, 7127, 1278, 1, 0, 0, 0, 7128, 7129, 3, 47, 23, 0, 7129, 7130, 3, 33, 16, 0, 7130, 7131, 3, 15, 7, 0, 7131, 7132, 3, 33, 16, 0, 7132, 7133, 3, 11, 5, 0, 7133, 7134, 3, 41, 20, 0, 7134, 7135, 3, 55, 27, 0, 7135, 7136, 3, 37, 18, 0, 7136, 7137, 3, 45, 22, 0, 7137, 7138, 3, 15, 7, 0, 7138, 7139, 3, 13, 6, 0, 7139, 1280, 1, 0, 0, 0, 7140, 7141, 3, 47, 23, 0, 7141, 7142, 3, 33, 16, 0, 7142, 7143, 3, 23, 11, 0, 7143, 7144, 3, 35, 17, 0, 7144, 7145, 3, 33, 16, 0, 7145, 1282, 1, 0, 0, 0, 7146, 7147, 3, 47, 23, 0, 7147, 7148, 3, 33, 16, 0, 7148, 7149, 3, 23, 11, 0, 7149, 7150, 3, 39, 19, 0, 7150, 7151, 3, 47, 23, 0, 7151, 7152, 3, 15, 7, 0, 7152, 1284, 1, 0, 0, 0, 7153, 7154, 3, 47, 23, 0, 7154, 7155, 3, 33, 16, 0, 7155, 7156, 3, 27, 13, 0, 7156, 7157, 3, 33, 16, 0, 7157, 7158, 3, 35, 17, 0, 7158, 7159, 3, 51, 25, 0, 7159, 7160, 3, 33, 16, 0, 7160, 1286, 1, 0, 0, 0, 7161, 7162, 3, 47, 23, 0, 7162, 7163, 3, 33, 16, 0, 7163, 7164, 3, 29, 14, 0, 7164, 7165, 3, 23, 11, 0, 7165, 7166, 3, 43, 21, 0, 7166, 7167, 3, 45, 22, 0, 7167, 7168, 3, 15, 7, 0, 7168, 7169, 3, 33, 16, 0, 7169, 1288, 1, 0, 0, 0, 7170, 7171, 3, 47, 23, 0, 7171, 7172, 3, 33, 16, 0, 7172, 7173, 3, 33, 16, 0, 7173, 7174, 3, 7, 3, 0, 7174, 7175, 3, 31, 15, 0, 7175, 7176, 3, 15, 7, 0, 7176, 7177, 3, 13, 6, 0, 7177, 1290, 1, 0, 0, 0, 7178, 7179, 3, 47, 23, 0, 7179, 7180, 3, 33, 16, 0, 7180, 7181, 3, 33, 16, 0, 7181, 7182, 3, 15, 7, 0, 7182, 7183, 3, 43, 21, 0, 7183, 7184, 3, 45, 22, 0, 7184, 1292, 1, 0, 0, 0, 7185, 7186, 3, 47, 23, 0, 7186, 7187, 3, 33, 16, 0, 7187, 7188, 3, 45, 22, 0, 7188, 7189, 3, 23, 11, 0, 7189, 7190, 3, 29, 14, 0, 7190, 1294, 1, 0, 0, 0, 7191, 7192, 3, 47, 23, 0, 7192, 7193, 3, 37, 18, 0, 7193, 7194, 3, 13, 6, 0, 7194, 7195, 3, 7, 3, 0, 7195, 7196, 3, 45, 22, 0, 7196, 7197, 3, 15, 7, 0, 7197, 1296, 1, 0, 0, 0, 7198, 7199, 3, 47, 23, 0, 7199, 7200, 3, 37, 18, 0, 7200, 7201, 3, 37, 18, 0, 7201, 7202, 3, 15, 7, 0, 7202, 7203, 3, 41, 20, 0, 7203, 1298, 1, 0, 0, 0, 7204, 7205, 3, 47, 23, 0, 7205, 7206, 3, 43, 21, 0, 7206, 7207, 3, 7, 3, 0, 7207, 7208, 3, 19, 9, 0, 7208, 7209, 3, 15, 7, 0, 7209, 1300, 1, 0, 0, 0, 7210, 7211, 3, 47, 23, 0, 7211, 7212, 3, 43, 21, 0, 7212, 7213, 3, 15, 7, 0, 7213, 7214, 3, 41, 20, 0, 7214, 1302, 1, 0, 0, 0, 7215, 7216, 3, 47, 23, 0, 7216, 7217, 3, 43, 21, 0, 7217, 7218, 3, 15, 7, 0, 7218, 7219, 3, 41, 20, 0, 7219, 7220, 5, 95, 0, 0, 7220, 7221, 3, 13, 6, 0, 7221, 7222, 3, 15, 7, 0, 7222, 7223, 3, 17, 8, 0, 7223, 7224, 3, 23, 11, 0, 7224, 7225, 3, 33, 16, 0, 7225, 7226, 3, 15, 7, 0, 7226, 7227, 3, 13, 6, 0, 7227, 7228, 5, 95, 0, 0, 7228, 7229, 3, 45, 22, 0, 7229, 7230, 3, 55, 27, 0, 7230, 7231, 3, 37, 18, 0, 7231, 7232, 3, 15, 7, 0, 7232, 7233, 5, 95, 0, 0, 7233, 7234, 3, 11, 5, 0, 7234, 7235, 3, 7, 3, 0, 7235, 7236, 3, 45, 22, 0, 7236, 7237, 3, 7, 3, 0, 7237, 7238, 3, 29, 14, 0, 7238, 7239, 3, 35, 17, 0, 7239, 7240, 3, 19, 9, 0, 7240, 1304, 1, 0, 0, 0, 7241, 7242, 3, 47, 23, 0, 7242, 7243, 3, 43, 21, 0, 7243, 7244, 3, 15, 7, 0, 7244, 7245, 3, 41, 20, 0, 7245, 7246, 5, 95, 0, 0, 7246, 7247, 3, 13, 6, 0, 7247, 7248, 3, 15, 7, 0, 7248, 7249, 3, 17, 8, 0, 7249, 7250, 3, 23, 11, 0, 7250, 7251, 3, 33, 16, 0, 7251, 7252, 3, 15, 7, 0, 7252, 7253, 3, 13, 6, 0, 7253, 7254, 5, 95, 0, 0, 7254, 7255, 3, 45, 22, 0, 7255, 7256, 3, 55, 27, 0, 7256, 7257, 3, 37, 18, 0, 7257, 7258, 3, 15, 7, 0, 7258, 7259, 5, 95, 0, 0, 7259, 7260, 3, 11, 5, 0, 7260, 7261, 3, 35, 17, 0, 7261, 7262, 3, 13, 6, 0, 7262, 7263, 3, 15, 7, 0, 7263, 1306, 1, 0, 0, 0, 7264, 7265, 3, 47, 23, 0, 7265, 7266, 3, 43, 21, 0, 7266, 7267, 3, 15, 7, 0, 7267, 7268, 3, 41, 20, 0, 7268, 7269, 5, 95, 0, 0, 7269, 7270, 3, 13, 6, 0, 7270, 7271, 3, 15, 7, 0, 7271, 7272, 3, 17, 8, 0, 7272, 7273, 3, 23, 11, 0, 7273, 7274, 3, 33, 16, 0, 7274, 7275, 3, 15, 7, 0, 7275, 7276, 3, 13, 6, 0, 7276, 7277, 5, 95, 0, 0, 7277, 7278, 3, 45, 22, 0, 7278, 7279, 3, 55, 27, 0, 7279, 7280, 3, 37, 18, 0, 7280, 7281, 3, 15, 7, 0, 7281, 7282, 5, 95, 0, 0, 7282, 7283, 3, 33, 16, 0, 7283, 7284, 3, 7, 3, 0, 7284, 7285, 3, 31, 15, 0, 7285, 7286, 3, 15, 7, 0, 7286, 1308, 1, 0, 0, 0, 7287, 7288, 3, 47, 23, 0, 7288, 7289, 3, 43, 21, 0, 7289, 7290, 3, 15, 7, 0, 7290, 7291, 3, 41, 20, 0, 7291, 7292, 5, 95, 0, 0, 7292, 7293, 3, 13, 6, 0, 7293, 7294, 3, 15, 7, 0, 7294, 7295, 3, 17, 8, 0, 7295, 7296, 3, 23, 11, 0, 7296, 7297, 3, 33, 16, 0, 7297, 7298, 3, 15, 7, 0, 7298, 7299, 3, 13, 6, 0, 7299, 7300, 5, 95, 0, 0, 7300, 7301, 3, 45, 22, 0, 7301, 7302, 3, 55, 27, 0, 7302, 7303, 3, 37, 18, 0, 7303, 7304, 3, 15, 7, 0, 7304, 7305, 5, 95, 0, 0, 7305, 7306, 3, 43, 21, 0, 7306, 7307, 3, 11, 5, 0, 7307, 7308, 3, 21, 10, 0, 7308, 7309, 3, 15, 7, 0, 7309, 7310, 3, 31, 15, 0, 7310, 7311, 3, 7, 3, 0, 7311, 1310, 1, 0, 0, 0, 7312, 7313, 3, 47, 23, 0, 7313, 7314, 3, 43, 21, 0, 7314, 7315, 3, 23, 11, 0, 7315, 7316, 3, 33, 16, 0, 7316, 7317, 3, 19, 9, 0, 7317, 1312, 1, 0, 0, 0, 7318, 7319, 3, 49, 24, 0, 7319, 7320, 3, 7, 3, 0, 7320, 7321, 3, 11, 5, 0, 7321, 7322, 3, 47, 23, 0, 7322, 7323, 3, 47, 23, 0, 7323, 7324, 3, 31, 15, 0, 7324, 1314, 1, 0, 0, 0, 7325, 7326, 3, 49, 24, 0, 7326, 7327, 3, 7, 3, 0, 7327, 7328, 3, 29, 14, 0, 7328, 7329, 3, 23, 11, 0, 7329, 7330, 3, 13, 6, 0, 7330, 1316, 1, 0, 0, 0, 7331, 7332, 3, 49, 24, 0, 7332, 7333, 3, 7, 3, 0, 7333, 7334, 3, 29, 14, 0, 7334, 7335, 3, 23, 11, 0, 7335, 7336, 3, 13, 6, 0, 7336, 7337, 3, 7, 3, 0, 7337, 7338, 3, 45, 22, 0, 7338, 7339, 3, 15, 7, 0, 7339, 1318, 1, 0, 0, 0, 7340, 7341, 3, 49, 24, 0, 7341, 7342, 3, 7, 3, 0, 7342, 7343, 3, 29, 14, 0, 7343, 7344, 3, 23, 11, 0, 7344, 7345, 3, 13, 6, 0, 7345, 7346, 3, 7, 3, 0, 7346, 7347, 3, 45, 22, 0, 7347, 7348, 3, 35, 17, 0, 7348, 7349, 3, 41, 20, 0, 7349, 1320, 1, 0, 0, 0, 7350, 7351, 3, 49, 24, 0, 7351, 7352, 3, 7, 3, 0, 7352, 7353, 3, 29, 14, 0, 7353, 7354, 3, 47, 23, 0, 7354, 7355, 3, 15, 7, 0, 7355, 1322, 1, 0, 0, 0, 7356, 7357, 3, 49, 24, 0, 7357, 7358, 3, 7, 3, 0, 7358, 7359, 3, 29, 14, 0, 7359, 7360, 3, 47, 23, 0, 7360, 7361, 3, 15, 7, 0, 7361, 7362, 3, 43, 21, 0, 7362, 1324, 1, 0, 0, 0, 7363, 7364, 3, 49, 24, 0, 7364, 7365, 3, 7, 3, 0, 7365, 7366, 3, 41, 20, 0, 7366, 7367, 5, 95, 0, 0, 7367, 7368, 3, 37, 18, 0, 7368, 7369, 3, 35, 17, 0, 7369, 7370, 3, 37, 18, 0, 7370, 1326, 1, 0, 0, 0, 7371, 7372, 3, 49, 24, 0, 7372, 7373, 3, 7, 3, 0, 7373, 7374, 3, 41, 20, 0, 7374, 7375, 5, 95, 0, 0, 7375, 7376, 3, 43, 21, 0, 7376, 7377, 3, 7, 3, 0, 7377, 7378, 3, 31, 15, 0, 7378, 7379, 3, 37, 18, 0, 7379, 1328, 1, 0, 0, 0, 7380, 7381, 3, 49, 24, 0, 7381, 7382, 3, 7, 3, 0, 7382, 7383, 3, 41, 20, 0, 7383, 7384, 3, 11, 5, 0, 7384, 7385, 3, 21, 10, 0, 7385, 7386, 3, 7, 3, 0, 7386, 7387, 3, 41, 20, 0, 7387, 1330, 1, 0, 0, 0, 7388, 7389, 3, 49, 24, 0, 7389, 7390, 3, 7, 3, 0, 7390, 7391, 3, 41, 20, 0, 7391, 7392, 3, 23, 11, 0, 7392, 7393, 3, 7, 3, 0, 7393, 7394, 3, 9, 4, 0, 7394, 7395, 3, 29, 14, 0, 7395, 7396, 3, 15, 7, 0, 7396, 1332, 1, 0, 0, 0, 7397, 7398, 3, 49, 24, 0, 7398, 7399, 3, 7, 3, 0, 7399, 7400, 3, 41, 20, 0, 7400, 7401, 3, 23, 11, 0, 7401, 7402, 3, 7, 3, 0, 7402, 7403, 3, 13, 6, 0, 7403, 7404, 3, 23, 11, 0, 7404, 7405, 3, 11, 5, 0, 7405, 1334, 1, 0, 0, 0, 7406, 7407, 3, 49, 24, 0, 7407, 7408, 3, 7, 3, 0, 7408, 7409, 3, 41, 20, 0, 7409, 7410, 3, 55, 27, 0, 7410, 7411, 3, 23, 11, 0, 7411, 7412, 3, 33, 16, 0, 7412, 7413, 3, 19, 9, 0, 7413, 1336, 1, 0, 0, 0, 7414, 7415, 3, 49, 24, 0, 7415, 7416, 3, 15, 7, 0, 7416, 7417, 3, 41, 20, 0, 7417, 7418, 3, 9, 4, 0, 7418, 7419, 3, 35, 17, 0, 7419, 7420, 3, 43, 21, 0, 7420, 7421, 3, 15, 7, 0, 7421, 1338, 1, 0, 0, 0, 7422, 7423, 3, 49, 24, 0, 7423, 7424, 3, 23, 11, 0, 7424, 7425, 3, 15, 7, 0, 7425, 7426, 3, 51, 25, 0, 7426, 1340, 1, 0, 0, 0, 7427, 7428, 3, 49, 24, 0, 7428, 7429, 3, 35, 17, 0, 7429, 7430, 3, 29, 14, 0, 7430, 7431, 3, 7, 3, 0, 7431, 7432, 3, 45, 22, 0, 7432, 7433, 3, 23, 11, 0, 7433, 7434, 3, 29, 14, 0, 7434, 7435, 3, 15, 7, 0, 7435, 1342, 1, 0, 0, 0, 7436, 7437, 3, 51, 25, 0, 7437, 7438, 3, 21, 10, 0, 7438, 7439, 3, 15, 7, 0, 7439, 7440, 3, 33, 16, 0, 7440, 1344, 1, 0, 0, 0, 7441, 7442, 3, 51, 25, 0, 7442, 7443, 3, 21, 10, 0, 7443, 7444, 3, 15, 7, 0, 7444, 7445, 3, 33, 16, 0, 7445, 7446, 3, 15, 7, 0, 7446, 7447, 3, 49, 24, 0, 7447, 7448, 3, 15, 7, 0, 7448, 7449, 3, 41, 20, 0, 7449, 1346, 1, 0, 0, 0, 7450, 7451, 3, 51, 25, 0, 7451, 7452, 3, 21, 10, 0, 7452, 7453, 3, 15, 7, 0, 7453, 7454, 3, 41, 20, 0, 7454, 7455, 3, 15, 7, 0, 7455, 1348, 1, 0, 0, 0, 7456, 7457, 3, 51, 25, 0, 7457, 7458, 3, 23, 11, 0, 7458, 7459, 3, 13, 6, 0, 7459, 7460, 3, 45, 22, 0, 7460, 7461, 3, 21, 10, 0, 7461, 7462, 5, 95, 0, 0, 7462, 7463, 3, 9, 4, 0, 7463, 7464, 3, 47, 23, 0, 7464, 7465, 3, 11, 5, 0, 7465, 7466, 3, 27, 13, 0, 7466, 7467, 3, 15, 7, 0, 7467, 7468, 3, 45, 22, 0, 7468, 1350, 1, 0, 0, 0, 7469, 7470, 3, 51, 25, 0, 7470, 7471, 3, 23, 11, 0, 7471, 7472, 3, 33, 16, 0, 7472, 7473, 3, 13, 6, 0, 7473, 7474, 3, 35, 17, 0, 7474, 7475, 3, 51, 25, 0, 7475, 1352, 1, 0, 0, 0, 7476, 7477, 3, 51, 25, 0, 7477, 7478, 3, 23, 11, 0, 7478, 7479, 3, 45, 22, 0, 7479, 7480, 3, 21, 10, 0, 7480, 1354, 1, 0, 0, 0, 7481, 7482, 3, 51, 25, 0, 7482, 7483, 3, 23, 11, 0, 7483, 7484, 3, 45, 22, 0, 7484, 7485, 3, 21, 10, 0, 7485, 7486, 3, 23, 11, 0, 7486, 7487, 3, 33, 16, 0, 7487, 1356, 1, 0, 0, 0, 7488, 7489, 3, 51, 25, 0, 7489, 7490, 3, 23, 11, 0, 7490, 7491, 3, 45, 22, 0, 7491, 7492, 3, 21, 10, 0, 7492, 7493, 3, 35, 17, 0, 7493, 7494, 3, 47, 23, 0, 7494, 7495, 3, 45, 22, 0, 7495, 1358, 1, 0, 0, 0, 7496, 7497, 3, 51, 25, 0, 7497, 7498, 3, 35, 17, 0, 7498, 7499, 3, 41, 20, 0, 7499, 7500, 3, 27, 13, 0, 7500, 1360, 1, 0, 0, 0, 7501, 7502, 3, 51, 25, 0, 7502, 7503, 3, 41, 20, 0, 7503, 7504, 3, 23, 11, 0, 7504, 7505, 3, 45, 22, 0, 7505, 7506, 3, 15, 7, 0, 7506, 1362, 1, 0, 0, 0, 7507, 7508, 3, 55, 27, 0, 7508, 7509, 3, 7, 3, 0, 7509, 7510, 3, 31, 15, 0, 7510, 7511, 3, 29, 14, 0, 7511, 1364, 1, 0, 0, 0, 7512, 7513, 3, 55, 27, 0, 7513, 7514, 3, 15, 7, 0, 7514, 7515, 3, 7, 3, 0, 7515, 7516, 3, 41, 20, 0, 7516, 1366, 1, 0, 0, 0, 7517, 7518, 3, 55, 27, 0, 7518, 7519, 3, 15, 7, 0, 7519, 7520, 3, 43, 21, 0, 7520, 1368, 1, 0, 0, 0, 7521, 7522, 3, 57, 28, 0, 7522, 7523, 3, 35, 17, 0, 7523, 7524, 3, 33, 16, 0, 7524, 7525, 3, 15, 7, 0, 7525, 1370, 1, 0, 0, 0, 7526, 7527, 3, 43, 21, 0, 7527, 7528, 3, 47, 23, 0, 7528, 7529, 3, 37, 18, 0, 7529, 7530, 3, 15, 7, 0, 7530, 7531, 3, 41, 20, 0, 7531, 7532, 3, 47, 23, 0, 7532, 7533, 3, 43, 21, 0, 7533, 7534, 3, 15, 7, 0, 7534, 7535, 3, 41, 20, 0, 7535, 1372, 1, 0, 0, 0, 7536, 7537, 3, 33, 16, 0, 7537, 7538, 3, 35, 17, 0, 7538, 7539, 3, 43, 21, 0, 7539, 7540, 3, 47, 23, 0, 7540, 7541, 3, 37, 18, 0, 7541, 7542, 3, 15, 7, 0, 7542, 7543, 3, 41, 20, 0, 7543, 7544, 3, 47, 23, 0, 7544, 7545, 3, 43, 21, 0, 7545, 7546, 3, 15, 7, 0, 7546, 7547, 3, 41, 20, 0, 7547, 1374, 1, 0, 0, 0, 7548, 7549, 3, 11, 5, 0, 7549, 7550, 3, 41, 20, 0, 7550, 7551, 3, 15, 7, 0, 7551, 7552, 3, 7, 3, 0, 7552, 7553, 3, 45, 22, 0, 7553, 7554, 3, 15, 7, 0, 7554, 7555, 3, 41, 20, 0, 7555, 7556, 3, 35, 17, 0, 7556, 7557, 3, 29, 14, 0, 7557, 7558, 3, 15, 7, 0, 7558, 1376, 1, 0, 0, 0, 7559, 7560, 3, 33, 16, 0, 7560, 7561, 3, 35, 17, 0, 7561, 7562, 3, 11, 5, 0, 7562, 7563, 3, 41, 20, 0, 7563, 7564, 3, 15, 7, 0, 7564, 7565, 3, 7, 3, 0, 7565, 7566, 3, 45, 22, 0, 7566, 7567, 3, 15, 7, 0, 7567, 7568, 3, 41, 20, 0, 7568, 7569, 3, 35, 17, 0, 7569, 7570, 3, 29, 14, 0, 7570, 7571, 3, 15, 7, 0, 7571, 1378, 1, 0, 0, 0, 7572, 7573, 3, 23, 11, 0, 7573, 7574, 3, 33, 16, 0, 7574, 7575, 3, 21, 10, 0, 7575, 7576, 3, 15, 7, 0, 7576, 7577, 3, 41, 20, 0, 7577, 7578, 3, 23, 11, 0, 7578, 7579, 3, 45, 22, 0, 7579, 1380, 1, 0, 0, 0, 7580, 7581, 3, 33, 16, 0, 7581, 7582, 3, 35, 17, 0, 7582, 7583, 3, 23, 11, 0, 7583, 7584, 3, 33, 16, 0, 7584, 7585, 3, 21, 10, 0, 7585, 7586, 3, 15, 7, 0, 7586, 7587, 3, 41, 20, 0, 7587, 7588, 3, 23, 11, 0, 7588, 7589, 3, 45, 22, 0, 7589, 1382, 1, 0, 0, 0, 7590, 7591, 3, 29, 14, 0, 7591, 7592, 3, 35, 17, 0, 7592, 7593, 3, 19, 9, 0, 7593, 7594, 3, 23, 11, 0, 7594, 7595, 3, 33, 16, 0, 7595, 1384, 1, 0, 0, 0, 7596, 7597, 3, 33, 16, 0, 7597, 7598, 3, 35, 17, 0, 7598, 7599, 3, 29, 14, 0, 7599, 7600, 3, 35, 17, 0, 7600, 7601, 3, 19, 9, 0, 7601, 7602, 3, 23, 11, 0, 7602, 7603, 3, 33, 16, 0, 7603, 1386, 1, 0, 0, 0, 7604, 7605, 3, 41, 20, 0, 7605, 7606, 3, 15, 7, 0, 7606, 7607, 3, 37, 18, 0, 7607, 7608, 3, 29, 14, 0, 7608, 7609, 3, 23, 11, 0, 7609, 7610, 3, 11, 5, 0, 7610, 7611, 3, 7, 3, 0, 7611, 7612, 3, 45, 22, 0, 7612, 7613, 3, 23, 11, 0, 7613, 7614, 3, 35, 17, 0, 7614, 7615, 3, 33, 16, 0, 7615, 1388, 1, 0, 0, 0, 7616, 7617, 3, 33, 16, 0, 7617, 7618, 3, 35, 17, 0, 7618, 7619, 3, 41, 20, 0, 7619, 7620, 3, 15, 7, 0, 7620, 7621, 3, 37, 18, 0, 7621, 7622, 3, 29, 14, 0, 7622, 7623, 3, 23, 11, 0, 7623, 7624, 3, 11, 5, 0, 7624, 7625, 3, 7, 3, 0, 7625, 7626, 3, 45, 22, 0, 7626, 7627, 3, 23, 11, 0, 7627, 7628, 3, 35, 17, 0, 7628, 7629, 3, 33, 16, 0, 7629, 1390, 1, 0, 0, 0, 7630, 7631, 3, 9, 4, 0, 7631, 7632, 3, 55, 27, 0, 7632, 7633, 3, 37, 18, 0, 7633, 7634, 3, 7, 3, 0, 7634, 7635, 3, 43, 21, 0, 7635, 7636, 3, 43, 21, 0, 7636, 7637, 3, 41, 20, 0, 7637, 7638, 3, 29, 14, 0, 7638, 7639, 3, 43, 21, 0, 7639, 1392, 1, 0, 0, 0, 7640, 7641, 3, 33, 16, 0, 7641, 7642, 3, 35, 17, 0, 7642, 7643, 3, 9, 4, 0, 7643, 7644, 3, 55, 27, 0, 7644, 7645, 3, 37, 18, 0, 7645, 7646, 3, 7, 3, 0, 7646, 7647, 3, 43, 21, 0, 7647, 7648, 3, 43, 21, 0, 7648, 7649, 3, 41, 20, 0, 7649, 7650, 3, 29, 14, 0, 7650, 7651, 3, 43, 21, 0, 7651, 1394, 1, 0, 0, 0, 7652, 7653, 3, 43, 21, 0, 7653, 7654, 3, 17, 8, 0, 7654, 7655, 3, 47, 23, 0, 7655, 7656, 3, 33, 16, 0, 7656, 7657, 3, 11, 5, 0, 7657, 1396, 1, 0, 0, 0, 7658, 7659, 3, 43, 21, 0, 7659, 7660, 3, 45, 22, 0, 7660, 7661, 3, 55, 27, 0, 7661, 7662, 3, 37, 18, 0, 7662, 7663, 3, 15, 7, 0, 7663, 1398, 1, 0, 0, 0, 7664, 7665, 3, 43, 21, 0, 7665, 7666, 3, 43, 21, 0, 7666, 7667, 3, 37, 18, 0, 7667, 7668, 3, 7, 3, 0, 7668, 7669, 3, 11, 5, 0, 7669, 7670, 3, 15, 7, 0, 7670, 1400, 1, 0, 0, 0, 7671, 7672, 3, 17, 8, 0, 7672, 7673, 3, 23, 11, 0, 7673, 7674, 3, 33, 16, 0, 7674, 7675, 3, 7, 3, 0, 7675, 7676, 3, 29, 14, 0, 7676, 7677, 3, 17, 8, 0, 7677, 7678, 3, 47, 23, 0, 7678, 7679, 3, 33, 16, 0, 7679, 7680, 3, 11, 5, 0, 7680, 1402, 1, 0, 0, 0, 7681, 7682, 3, 17, 8, 0, 7682, 7683, 3, 23, 11, 0, 7683, 7684, 3, 33, 16, 0, 7684, 7685, 3, 7, 3, 0, 7685, 7686, 3, 29, 14, 0, 7686, 7687, 3, 17, 8, 0, 7687, 7688, 3, 47, 23, 0, 7688, 7689, 3, 33, 16, 0, 7689, 7690, 3, 11, 5, 0, 7690, 7691, 5, 95, 0, 0, 7691, 7692, 3, 15, 7, 0, 7692, 7693, 3, 53, 26, 0, 7693, 7694, 3, 45, 22, 0, 7694, 7695, 3, 41, 20, 0, 7695, 7696, 3, 7, 3, 0, 7696, 1404, 1, 0, 0, 0, 7697, 7698, 3, 11, 5, 0, 7698, 7699, 3, 35, 17, 0, 7699, 7700, 3, 31, 15, 0, 7700, 7701, 3, 9, 4, 0, 7701, 7702, 3, 23, 11, 0, 7702, 7703, 3, 33, 16, 0, 7703, 7704, 3, 15, 7, 0, 7704, 7705, 3, 17, 8, 0, 7705, 7706, 3, 47, 23, 0, 7706, 7707, 3, 33, 16, 0, 7707, 7708, 3, 11, 5, 0, 7708, 1406, 1, 0, 0, 0, 7709, 7710, 3, 43, 21, 0, 7710, 7711, 3, 15, 7, 0, 7711, 7712, 3, 41, 20, 0, 7712, 7713, 3, 23, 11, 0, 7713, 7714, 3, 7, 3, 0, 7714, 7715, 3, 29, 14, 0, 7715, 7716, 3, 17, 8, 0, 7716, 7717, 3, 47, 23, 0, 7717, 7718, 3, 33, 16, 0, 7718, 7719, 3, 11, 5, 0, 7719, 1408, 1, 0, 0, 0, 7720, 7721, 3, 13, 6, 0, 7721, 7722, 3, 15, 7, 0, 7722, 7723, 3, 43, 21, 0, 7723, 7724, 3, 15, 7, 0, 7724, 7725, 3, 41, 20, 0, 7725, 7726, 3, 23, 11, 0, 7726, 7727, 3, 7, 3, 0, 7727, 7728, 3, 29, 14, 0, 7728, 7729, 3, 17, 8, 0, 7729, 7730, 3, 47, 23, 0, 7730, 7731, 3, 33, 16, 0, 7731, 7732, 3, 11, 5, 0, 7732, 1410, 1, 0, 0, 0, 7733, 7734, 3, 23, 11, 0, 7734, 7735, 3, 33, 16, 0, 7735, 7736, 3, 23, 11, 0, 7736, 7737, 3, 45, 22, 0, 7737, 7738, 3, 11, 5, 0, 7738, 7739, 3, 35, 17, 0, 7739, 7740, 3, 33, 16, 0, 7740, 7741, 3, 13, 6, 0, 7741, 1412, 1, 0, 0, 0, 7742, 7743, 3, 31, 15, 0, 7743, 7744, 3, 43, 21, 0, 7744, 7745, 3, 17, 8, 0, 7745, 7746, 3, 47, 23, 0, 7746, 7747, 3, 33, 16, 0, 7747, 7748, 3, 11, 5, 0, 7748, 1414, 1, 0, 0, 0, 7749, 7750, 3, 31, 15, 0, 7750, 7751, 3, 23, 11, 0, 7751, 7752, 3, 33, 16, 0, 7752, 7753, 3, 49, 24, 0, 7753, 7754, 3, 17, 8, 0, 7754, 7755, 3, 47, 23, 0, 7755, 7756, 3, 33, 16, 0, 7756, 7757, 3, 11, 5, 0, 7757, 1416, 1, 0, 0, 0, 7758, 7759, 3, 31, 15, 0, 7759, 7760, 3, 43, 21, 0, 7760, 7761, 3, 45, 22, 0, 7761, 7762, 3, 55, 27, 0, 7762, 7763, 3, 37, 18, 0, 7763, 7764, 3, 15, 7, 0, 7764, 1418, 1, 0, 0, 0, 7765, 7766, 3, 31, 15, 0, 7766, 7767, 3, 43, 21, 0, 7767, 7768, 3, 43, 21, 0, 7768, 7769, 3, 37, 18, 0, 7769, 7770, 3, 7, 3, 0, 7770, 7771, 3, 11, 5, 0, 7771, 7772, 3, 15, 7, 0, 7772, 1420, 1, 0, 0, 0, 7773, 7774, 3, 31, 15, 0, 7774, 7775, 3, 17, 8, 0, 7775, 7776, 3, 23, 11, 0, 7776, 7777, 3, 33, 16, 0, 7777, 7778, 3, 7, 3, 0, 7778, 7779, 3, 29, 14, 0, 7779, 7780, 3, 17, 8, 0, 7780, 7781, 3, 47, 23, 0, 7781, 7782, 3, 33, 16, 0, 7782, 7783, 3, 11, 5, 0, 7783, 1422, 1, 0, 0, 0, 7784, 7785, 3, 31, 15, 0, 7785, 7786, 3, 17, 8, 0, 7786, 7787, 3, 23, 11, 0, 7787, 7788, 3, 33, 16, 0, 7788, 7789, 3, 7, 3, 0, 7789, 7790, 3, 29, 14, 0, 7790, 7791, 3, 17, 8, 0, 7791, 7792, 3, 47, 23, 0, 7792, 7793, 3, 33, 16, 0, 7793, 7794, 3, 11, 5, 0, 7794, 7795, 5, 95, 0, 0, 7795, 7796, 3, 15, 7, 0, 7796, 7797, 3, 53, 26, 0, 7797, 7798, 3, 45, 22, 0, 7798, 7799, 3, 41, 20, 0, 7799, 7800, 3, 7, 3, 0, 7800, 1424, 1, 0, 0, 0, 7801, 7802, 3, 31, 15, 0, 7802, 7803, 3, 23, 11, 0, 7803, 7804, 3, 33, 16, 0, 7804, 7805, 3, 23, 11, 0, 7805, 7806, 3, 45, 22, 0, 7806, 7807, 3, 11, 5, 0, 7807, 7808, 3, 35, 17, 0, 7808, 7809, 3, 33, 16, 0, 7809, 7810, 3, 13, 6, 0, 7810, 1426, 1, 0, 0, 0, 7811, 7812, 3, 43, 21, 0, 7812, 7813, 3, 35, 17, 0, 7813, 7814, 3, 41, 20, 0, 7814, 7815, 3, 45, 22, 0, 7815, 7816, 3, 35, 17, 0, 7816, 7817, 3, 37, 18, 0, 7817, 1428, 1, 0, 0, 0, 7818, 7819, 3, 37, 18, 0, 7819, 7820, 3, 7, 3, 0, 7820, 7821, 3, 41, 20, 0, 7821, 7822, 3, 7, 3, 0, 7822, 7823, 3, 29, 14, 0, 7823, 7824, 3, 29, 14, 0, 7824, 7825, 3, 15, 7, 0, 7825, 7826, 3, 29, 14, 0, 7826, 1430, 1, 0, 0, 0, 7827, 7828, 3, 21, 10, 0, 7828, 7829, 3, 55, 27, 0, 7829, 7830, 3, 37, 18, 0, 7830, 7831, 3, 35, 17, 0, 7831, 7832, 3, 45, 22, 0, 7832, 7833, 3, 21, 10, 0, 7833, 7834, 3, 15, 7, 0, 7834, 7835, 3, 45, 22, 0, 7835, 7836, 3, 23, 11, 0, 7836, 7837, 3, 11, 5, 0, 7837, 7838, 3, 7, 3, 0, 7838, 7839, 3, 29, 14, 0, 7839, 1432, 1, 0, 0, 0, 7840, 7841, 3, 43, 21, 0, 7841, 7842, 3, 7, 3, 0, 7842, 7843, 3, 17, 8, 0, 7843, 7844, 3, 15, 7, 0, 7844, 1434, 1, 0, 0, 0, 7845, 7846, 3, 47, 23, 0, 7846, 7847, 3, 33, 16, 0, 7847, 7848, 3, 43, 21, 0, 7848, 7849, 3, 7, 3, 0, 7849, 7850, 3, 17, 8, 0, 7850, 7851, 3, 15, 7, 0, 7851, 1436, 1, 0, 0, 0, 7852, 7853, 3, 9, 4, 0, 7853, 7854, 3, 7, 3, 0, 7854, 7855, 3, 43, 21, 0, 7855, 7856, 3, 15, 7, 0, 7856, 7857, 3, 45, 22, 0, 7857, 7858, 3, 55, 27, 0, 7858, 7859, 3, 37, 18, 0, 7859, 7860, 3, 15, 7, 0, 7860, 1438, 1, 0, 0, 0, 7861, 7862, 3, 23, 11, 0, 7862, 7863, 3, 17, 8, 0, 7863, 1440, 1, 0, 0, 0, 7864, 7865, 3, 29, 14, 0, 7865, 7866, 3, 35, 17, 0, 7866, 7867, 3, 11, 5, 0, 7867, 7868, 3, 7, 3, 0, 7868, 7869, 3, 29, 14, 0, 7869, 7870, 3, 15, 7, 0, 7870, 1442, 1, 0, 0, 0, 7871, 7872, 3, 29, 14, 0, 7872, 7873, 3, 11, 5, 0, 7873, 7874, 5, 95, 0, 0, 7874, 7875, 3, 11, 5, 0, 7875, 7876, 3, 35, 17, 0, 7876, 7877, 3, 29, 14, 0, 7877, 7878, 3, 29, 14, 0, 7878, 7879, 3, 7, 3, 0, 7879, 7880, 3, 45, 22, 0, 7880, 7881, 3, 15, 7, 0, 7881, 1444, 1, 0, 0, 0, 7882, 7883, 3, 29, 14, 0, 7883, 7884, 3, 11, 5, 0, 7884, 7885, 5, 95, 0, 0, 7885, 7886, 3, 11, 5, 0, 7886, 7887, 3, 45, 22, 0, 7887, 7888, 3, 55, 27, 0, 7888, 7889, 3, 37, 18, 0, 7889, 7890, 3, 15, 7, 0, 7890, 1446, 1, 0, 0, 0, 7891, 7892, 3, 37, 18, 0, 7892, 7893, 3, 41, 20, 0, 7893, 7894, 3, 35, 17, 0, 7894, 7895, 3, 49, 24, 0, 7895, 7896, 3, 23, 11, 0, 7896, 7897, 3, 13, 6, 0, 7897, 7898, 3, 15, 7, 0, 7898, 7899, 3, 41, 20, 0, 7899, 1448, 1, 0, 0, 0, 7900, 7901, 3, 49, 24, 0, 7901, 7902, 3, 15, 7, 0, 7902, 7903, 3, 41, 20, 0, 7903, 7904, 3, 43, 21, 0, 7904, 7905, 3, 23, 11, 0, 7905, 7906, 3, 35, 17, 0, 7906, 7907, 3, 33, 16, 0, 7907, 1450, 1, 0, 0, 0, 7908, 7909, 3, 7, 3, 0, 7909, 7910, 3, 29, 14, 0, 7910, 7911, 3, 29, 14, 0, 7911, 7912, 3, 35, 17, 0, 7912, 7913, 3, 51, 25, 0, 7913, 7914, 5, 95, 0, 0, 7914, 7915, 3, 11, 5, 0, 7915, 7916, 3, 35, 17, 0, 7916, 7917, 3, 33, 16, 0, 7917, 7918, 3, 33, 16, 0, 7918, 7919, 3, 15, 7, 0, 7919, 7920, 3, 11, 5, 0, 7920, 7921, 3, 45, 22, 0, 7921, 7922, 3, 23, 11, 0, 7922, 7923, 3, 35, 17, 0, 7923, 7924, 3, 33, 16, 0, 7924, 7925, 3, 43, 21, 0, 7925, 1452, 1, 0, 0, 0, 7926, 7927, 3, 23, 11, 0, 7927, 7928, 3, 43, 21, 0, 7928, 7929, 5, 95, 0, 0, 7929, 7930, 3, 45, 22, 0, 7930, 7931, 3, 15, 7, 0, 7931, 7932, 3, 31, 15, 0, 7932, 7933, 3, 37, 18, 0, 7933, 7934, 3, 29, 14, 0, 7934, 7935, 3, 7, 3, 0, 7935, 7936, 3, 45, 22, 0, 7936, 7937, 3, 15, 7, 0, 7937, 1454, 1, 0, 0, 0, 7938, 7939, 3, 15, 7, 0, 7939, 7940, 3, 49, 24, 0, 7940, 7941, 3, 15, 7, 0, 7941, 7942, 3, 33, 16, 0, 7942, 7943, 3, 45, 22, 0, 7943, 1456, 1, 0, 0, 0, 7944, 7945, 3, 51, 25, 0, 7945, 7946, 3, 41, 20, 0, 7946, 7947, 3, 7, 3, 0, 7947, 7948, 3, 37, 18, 0, 7948, 7949, 3, 37, 18, 0, 7949, 7950, 3, 15, 7, 0, 7950, 7951, 3, 41, 20, 0, 7951, 1458, 1, 0, 0, 0, 7952, 7953, 3, 43, 21, 0, 7953, 7954, 3, 15, 7, 0, 7954, 7955, 3, 41, 20, 0, 7955, 7956, 3, 49, 24, 0, 7956, 7957, 3, 15, 7, 0, 7957, 7958, 3, 41, 20, 0, 7958, 1460, 1, 0, 0, 0, 7959, 7960, 3, 9, 4, 0, 7960, 7961, 3, 45, 22, 0, 7961, 7962, 3, 41, 20, 0, 7962, 7963, 3, 15, 7, 0, 7963, 7964, 3, 15, 7, 0, 7964, 1462, 1, 0, 0, 0, 7965, 7966, 3, 21, 10, 0, 7966, 7967, 3, 7, 3, 0, 7967, 7968, 3, 43, 21, 0, 7968, 7969, 3, 21, 10, 0, 7969, 1464, 1, 0, 0, 0, 7970, 7971, 3, 19, 9, 0, 7971, 7972, 3, 23, 11, 0, 7972, 7973, 3, 43, 21, 0, 7973, 7974, 3, 45, 22, 0, 7974, 1466, 1, 0, 0, 0, 7975, 7976, 3, 43, 21, 0, 7976, 7977, 3, 37, 18, 0, 7977, 7978, 3, 19, 9, 0, 7978, 7979, 3, 23, 11, 0, 7979, 7980, 3, 43, 21, 0, 7980, 7981, 3, 45, 22, 0, 7981, 1468, 1, 0, 0, 0, 7982, 7983, 3, 19, 9, 0, 7983, 7984, 3, 23, 11, 0, 7984, 7985, 3, 33, 16, 0, 7985, 1470, 1, 0, 0, 0, 7986, 7987, 3, 9, 4, 0, 7987, 7988, 3, 41, 20, 0, 7988, 7989, 3, 23, 11, 0, 7989, 7990, 3, 33, 16, 0, 7990, 1472, 1, 0, 0, 0, 7991, 7992, 3, 11, 5, 0, 7992, 7993, 3, 35, 17, 0, 7993, 7994, 3, 33, 16, 0, 7994, 7995, 3, 11, 5, 0, 7995, 7996, 3, 47, 23, 0, 7996, 7997, 3, 41, 20, 0, 7997, 7998, 3, 41, 20, 0, 7998, 7999, 3, 15, 7, 0, 7999, 8000, 3, 33, 16, 0, 8000, 8001, 3, 45, 22, 0, 8001, 8002, 3, 29, 14, 0, 8002, 8003, 3, 55, 27, 0, 8003, 1474, 1, 0, 0, 0, 8004, 8005, 3, 23, 11, 0, 8005, 8006, 3, 33, 16, 0, 8006, 8007, 3, 29, 14, 0, 8007, 8008, 3, 23, 11, 0, 8008, 8009, 3, 33, 16, 0, 8009, 8010, 3, 15, 7, 0, 8010, 1476, 1, 0, 0, 0, 8011, 8012, 3, 31, 15, 0, 8012, 8013, 3, 7, 3, 0, 8013, 8014, 3, 45, 22, 0, 8014, 8015, 3, 15, 7, 0, 8015, 8016, 3, 41, 20, 0, 8016, 8017, 3, 23, 11, 0, 8017, 8018, 3, 7, 3, 0, 8018, 8019, 3, 29, 14, 0, 8019, 8020, 3, 23, 11, 0, 8020, 8021, 3, 57, 28, 0, 8021, 8022, 3, 15, 7, 0, 8022, 8023, 3, 13, 6, 0, 8023, 1478, 1, 0, 0, 0, 8024, 8025, 3, 29, 14, 0, 8025, 8026, 3, 15, 7, 0, 8026, 8027, 3, 17, 8, 0, 8027, 8028, 3, 45, 22, 0, 8028, 8029, 3, 7, 3, 0, 8029, 8030, 3, 41, 20, 0, 8030, 8031, 3, 19, 9, 0, 8031, 1480, 1, 0, 0, 0, 8032, 8033, 3, 41, 20, 0, 8033, 8034, 3, 23, 11, 0, 8034, 8035, 3, 19, 9, 0, 8035, 8036, 3, 21, 10, 0, 8036, 8037, 3, 45, 22, 0, 8037, 8038, 3, 7, 3, 0, 8038, 8039, 3, 41, 20, 0, 8039, 8040, 3, 19, 9, 0, 8040, 1482, 1, 0, 0, 0, 8041, 8042, 3, 11, 5, 0, 8042, 8043, 3, 35, 17, 0, 8043, 8044, 3, 31, 15, 0, 8044, 8045, 3, 31, 15, 0, 8045, 8046, 3, 47, 23, 0, 8046, 8047, 3, 45, 22, 0, 8047, 8048, 3, 7, 3, 0, 8048, 8049, 3, 45, 22, 0, 8049, 8050, 3, 35, 17, 0, 8050, 8051, 3, 41, 20, 0, 8051, 1484, 1, 0, 0, 0, 8052, 8053, 3, 33, 16, 0, 8053, 8054, 3, 15, 7, 0, 8054, 8055, 3, 19, 9, 0, 8055, 8056, 3, 7, 3, 0, 8056, 8057, 3, 45, 22, 0, 8057, 8058, 3, 35, 17, 0, 8058, 8059, 3, 41, 20, 0, 8059, 1486, 1, 0, 0, 0, 8060, 8061, 3, 21, 10, 0, 8061, 8062, 3, 7, 3, 0, 8062, 8063, 3, 43, 21, 0, 8063, 8064, 3, 21, 10, 0, 8064, 8065, 3, 15, 7, 0, 8065, 8066, 3, 43, 21, 0, 8066, 1488, 1, 0, 0, 0, 8067, 8068, 3, 31, 15, 0, 8068, 8069, 3, 15, 7, 0, 8069, 8070, 3, 41, 20, 0, 8070, 8071, 3, 19, 9, 0, 8071, 8072, 3, 15, 7, 0, 8072, 8073, 3, 43, 21, 0, 8073, 1490, 1, 0, 0, 0, 8074, 8075, 3, 17, 8, 0, 8075, 8076, 3, 7, 3, 0, 8076, 8077, 3, 31, 15, 0, 8077, 8078, 3, 23, 11, 0, 8078, 8079, 3, 29, 14, 0, 8079, 8080, 3, 55, 27, 0, 8080, 1492, 1, 0, 0, 0, 8081, 8082, 3, 37, 18, 0, 8082, 8083, 3, 35, 17, 0, 8083, 8084, 3, 29, 14, 0, 8084, 8085, 3, 23, 11, 0, 8085, 8086, 3, 11, 5, 0, 8086, 8087, 3, 55, 27, 0, 8087, 1494, 1, 0, 0, 0, 8088, 8089, 3, 35, 17, 0, 8089, 8090, 3, 51, 25, 0, 8090, 8091, 3, 33, 16, 0, 8091, 8092, 3, 15, 7, 0, 8092, 8093, 3, 13, 6, 0, 8093, 1496, 1, 0, 0, 0, 8094, 8095, 3, 7, 3, 0, 8095, 8096, 3, 9, 4, 0, 8096, 8097, 3, 43, 21, 0, 8097, 8098, 3, 45, 22, 0, 8098, 8099, 3, 23, 11, 0, 8099, 8100, 3, 31, 15, 0, 8100, 8101, 3, 15, 7, 0, 8101, 1498, 1, 0, 0, 0, 8102, 8103, 3, 9, 4, 0, 8103, 8104, 3, 23, 11, 0, 8104, 8105, 3, 19, 9, 0, 8105, 8106, 3, 43, 21, 0, 8106, 8107, 3, 15, 7, 0, 8107, 8108, 3, 41, 20, 0, 8108, 8109, 3, 23, 11, 0, 8109, 8110, 3, 7, 3, 0, 8110, 8111, 3, 29, 14, 0, 8111, 1500, 1, 0, 0, 0, 8112, 8113, 3, 9, 4, 0, 8113, 8114, 3, 23, 11, 0, 8114, 8115, 3, 45, 22, 0, 8115, 8116, 5, 32, 0, 0, 8116, 8117, 3, 49, 24, 0, 8117, 8118, 3, 7, 3, 0, 8118, 8119, 3, 41, 20, 0, 8119, 8120, 3, 55, 27, 0, 8120, 8121, 3, 23, 11, 0, 8121, 8122, 3, 33, 16, 0, 8122, 8123, 3, 19, 9, 0, 8123, 1502, 1, 0, 0, 0, 8124, 8125, 3, 9, 4, 0, 8125, 8126, 3, 35, 17, 0, 8126, 8127, 3, 35, 17, 0, 8127, 8128, 3, 29, 14, 0, 8128, 1504, 1, 0, 0, 0, 8129, 8130, 3, 9, 4, 0, 8130, 8131, 3, 35, 17, 0, 8131, 8132, 3, 53, 26, 0, 8132, 1506, 1, 0, 0, 0, 8133, 8134, 3, 9, 4, 0, 8134, 8135, 3, 55, 27, 0, 8135, 8136, 3, 45, 22, 0, 8136, 8137, 3, 15, 7, 0, 8137, 8138, 3, 7, 3, 0, 8138, 1508, 1, 0, 0, 0, 8139, 8140, 3, 11, 5, 0, 8140, 8141, 3, 21, 10, 0, 8141, 8142, 3, 7, 3, 0, 8142, 8143, 3, 41, 20, 0, 8143, 8144, 3, 7, 3, 0, 8144, 8145, 3, 11, 5, 0, 8145, 8146, 3, 45, 22, 0, 8146, 8147, 3, 15, 7, 0, 8147, 8148, 3, 41, 20, 0, 8148, 8149, 5, 32, 0, 0, 8149, 8150, 3, 49, 24, 0, 8150, 8151, 3, 7, 3, 0, 8151, 8152, 3, 41, 20, 0, 8152, 8153, 3, 55, 27, 0, 8153, 8154, 3, 23, 11, 0, 8154, 8155, 3, 33, 16, 0, 8155, 8156, 3, 19, 9, 0, 8156, 1510, 1, 0, 0, 0, 8157, 8158, 3, 11, 5, 0, 8158, 8159, 3, 23, 11, 0, 8159, 8160, 3, 13, 6, 0, 8160, 8161, 3, 41, 20, 0, 8161, 1512, 1, 0, 0, 0, 8162, 8163, 3, 11, 5, 0, 8163, 8164, 3, 23, 11, 0, 8164, 8165, 3, 41, 20, 0, 8165, 8166, 3, 11, 5, 0, 8166, 8167, 3, 29, 14, 0, 8167, 8168, 3, 15, 7, 0, 8168, 1514, 1, 0, 0, 0, 8169, 8170, 3, 17, 8, 0, 8170, 8171, 3, 29, 14, 0, 8171, 8172, 3, 35, 17, 0, 8172, 8173, 3, 7, 3, 0, 8173, 8174, 3, 45, 22, 0, 8174, 8175, 5, 52, 0, 0, 8175, 1516, 1, 0, 0, 0, 8176, 8177, 3, 17, 8, 0, 8177, 8178, 3, 29, 14, 0, 8178, 8179, 3, 35, 17, 0, 8179, 8180, 3, 7, 3, 0, 8180, 8181, 3, 45, 22, 0, 8181, 8182, 5, 56, 0, 0, 8182, 1518, 1, 0, 0, 0, 8183, 8184, 3, 23, 11, 0, 8184, 8185, 3, 33, 16, 0, 8185, 8186, 3, 15, 7, 0, 8186, 8187, 3, 45, 22, 0, 8187, 1520, 1, 0, 0, 0, 8188, 8189, 3, 23, 11, 0, 8189, 8190, 3, 33, 16, 0, 8190, 8191, 3, 45, 22, 0, 8191, 8192, 5, 50, 0, 0, 8192, 1522, 1, 0, 0, 0, 8193, 8194, 3, 23, 11, 0, 8194, 8195, 3, 33, 16, 0, 8195, 8196, 3, 45, 22, 0, 8196, 8197, 5, 52, 0, 0, 8197, 1524, 1, 0, 0, 0, 8198, 8199, 3, 23, 11, 0, 8199, 8200, 3, 33, 16, 0, 8200, 8201, 3, 45, 22, 0, 8201, 8202, 5, 56, 0, 0, 8202, 1526, 1, 0, 0, 0, 8203, 8204, 3, 25, 12, 0, 8204, 8205, 3, 43, 21, 0, 8205, 8206, 3, 35, 17, 0, 8206, 8207, 3, 33, 16, 0, 8207, 1528, 1, 0, 0, 0, 8208, 8209, 3, 25, 12, 0, 8209, 8210, 3, 43, 21, 0, 8210, 8211, 3, 35, 17, 0, 8211, 8212, 3, 33, 16, 0, 8212, 8213, 3, 9, 4, 0, 8213, 1530, 1, 0, 0, 0, 8214, 8215, 3, 29, 14, 0, 8215, 8216, 3, 23, 11, 0, 8216, 8217, 3, 33, 16, 0, 8217, 8218, 3, 15, 7, 0, 8218, 1532, 1, 0, 0, 0, 8219, 8220, 3, 29, 14, 0, 8220, 8221, 3, 43, 21, 0, 8221, 8222, 3, 15, 7, 0, 8222, 8223, 3, 19, 9, 0, 8223, 1534, 1, 0, 0, 0, 8224, 8225, 3, 31, 15, 0, 8225, 8226, 3, 7, 3, 0, 8226, 8227, 3, 11, 5, 0, 8227, 8228, 3, 7, 3, 0, 8228, 8229, 3, 13, 6, 0, 8229, 8230, 3, 13, 6, 0, 8230, 8231, 3, 41, 20, 0, 8231, 1536, 1, 0, 0, 0, 8232, 8233, 3, 31, 15, 0, 8233, 8234, 3, 7, 3, 0, 8234, 8235, 3, 11, 5, 0, 8235, 8236, 3, 7, 3, 0, 8236, 8237, 3, 13, 6, 0, 8237, 8238, 3, 13, 6, 0, 8238, 8239, 3, 41, 20, 0, 8239, 8240, 5, 56, 0, 0, 8240, 1538, 1, 0, 0, 0, 8241, 8242, 3, 31, 15, 0, 8242, 8243, 3, 35, 17, 0, 8243, 8244, 3, 33, 16, 0, 8244, 8245, 3, 15, 7, 0, 8245, 8246, 3, 55, 27, 0, 8246, 1540, 1, 0, 0, 0, 8247, 8248, 3, 37, 18, 0, 8248, 8249, 3, 19, 9, 0, 8249, 8250, 5, 95, 0, 0, 8250, 8251, 3, 29, 14, 0, 8251, 8252, 3, 43, 21, 0, 8252, 8253, 3, 33, 16, 0, 8253, 1542, 1, 0, 0, 0, 8254, 8255, 3, 37, 18, 0, 8255, 8256, 3, 35, 17, 0, 8256, 8257, 3, 23, 11, 0, 8257, 8258, 3, 33, 16, 0, 8258, 8259, 3, 45, 22, 0, 8259, 1544, 1, 0, 0, 0, 8260, 8261, 3, 37, 18, 0, 8261, 8262, 3, 35, 17, 0, 8262, 8263, 3, 29, 14, 0, 8263, 8264, 3, 55, 27, 0, 8264, 8265, 3, 19, 9, 0, 8265, 8266, 3, 35, 17, 0, 8266, 8267, 3, 33, 16, 0, 8267, 1546, 1, 0, 0, 0, 8268, 8269, 3, 41, 20, 0, 8269, 8270, 3, 15, 7, 0, 8270, 8271, 3, 29, 14, 0, 8271, 8272, 3, 45, 22, 0, 8272, 8273, 3, 23, 11, 0, 8273, 8274, 3, 31, 15, 0, 8274, 8275, 3, 15, 7, 0, 8275, 1548, 1, 0, 0, 0, 8276, 8277, 3, 43, 21, 0, 8277, 8278, 3, 15, 7, 0, 8278, 8279, 3, 41, 20, 0, 8279, 8280, 3, 23, 11, 0, 8280, 8281, 3, 7, 3, 0, 8281, 8282, 3, 29, 14, 0, 8282, 1550, 1, 0, 0, 0, 8283, 8284, 3, 43, 21, 0, 8284, 8285, 3, 15, 7, 0, 8285, 8286, 3, 41, 20, 0, 8286, 8287, 3, 23, 11, 0, 8287, 8288, 3, 7, 3, 0, 8288, 8289, 3, 29, 14, 0, 8289, 8290, 5, 50, 0, 0, 8290, 1552, 1, 0, 0, 0, 8291, 8292, 3, 43, 21, 0, 8292, 8293, 3, 15, 7, 0, 8293, 8294, 3, 41, 20, 0, 8294, 8295, 3, 23, 11, 0, 8295, 8296, 3, 7, 3, 0, 8296, 8297, 3, 29, 14, 0, 8297, 8298, 5, 52, 0, 0, 8298, 1554, 1, 0, 0, 0, 8299, 8300, 3, 43, 21, 0, 8300, 8301, 3, 15, 7, 0, 8301, 8302, 3, 41, 20, 0, 8302, 8303, 3, 23, 11, 0, 8303, 8304, 3, 7, 3, 0, 8304, 8305, 3, 29, 14, 0, 8305, 8306, 5, 56, 0, 0, 8306, 1556, 1, 0, 0, 0, 8307, 8308, 3, 43, 21, 0, 8308, 8309, 3, 31, 15, 0, 8309, 8310, 3, 7, 3, 0, 8310, 8311, 3, 29, 14, 0, 8311, 8312, 3, 29, 14, 0, 8312, 8313, 3, 43, 21, 0, 8313, 8314, 3, 15, 7, 0, 8314, 8315, 3, 41, 20, 0, 8315, 8316, 3, 23, 11, 0, 8316, 8317, 3, 7, 3, 0, 8317, 8318, 3, 29, 14, 0, 8318, 1558, 1, 0, 0, 0, 8319, 8320, 3, 43, 21, 0, 8320, 8321, 3, 45, 22, 0, 8321, 8322, 3, 43, 21, 0, 8322, 8323, 3, 45, 22, 0, 8323, 8324, 3, 15, 7, 0, 8324, 8325, 3, 31, 15, 0, 8325, 1560, 1, 0, 0, 0, 8326, 8327, 3, 45, 22, 0, 8327, 8328, 3, 15, 7, 0, 8328, 8329, 3, 53, 26, 0, 8329, 8330, 3, 45, 22, 0, 8330, 1562, 1, 0, 0, 0, 8331, 8332, 3, 45, 22, 0, 8332, 8333, 3, 23, 11, 0, 8333, 8334, 3, 31, 15, 0, 8334, 8335, 3, 15, 7, 0, 8335, 8336, 3, 43, 21, 0, 8336, 8337, 3, 45, 22, 0, 8337, 8338, 3, 7, 3, 0, 8338, 8339, 3, 31, 15, 0, 8339, 8340, 3, 37, 18, 0, 8340, 8341, 3, 45, 22, 0, 8341, 8342, 3, 57, 28, 0, 8342, 1564, 1, 0, 0, 0, 8343, 8344, 3, 45, 22, 0, 8344, 8345, 3, 23, 11, 0, 8345, 8346, 3, 31, 15, 0, 8346, 8347, 3, 15, 7, 0, 8347, 8348, 3, 45, 22, 0, 8348, 8349, 3, 57, 28, 0, 8349, 1566, 1, 0, 0, 0, 8350, 8351, 3, 45, 22, 0, 8351, 8352, 3, 43, 21, 0, 8352, 8353, 3, 39, 19, 0, 8353, 8354, 3, 47, 23, 0, 8354, 8355, 3, 15, 7, 0, 8355, 8356, 3, 41, 20, 0, 8356, 8357, 3, 55, 27, 0, 8357, 1568, 1, 0, 0, 0, 8358, 8359, 3, 45, 22, 0, 8359, 8360, 3, 43, 21, 0, 8360, 8361, 3, 49, 24, 0, 8361, 8362, 3, 15, 7, 0, 8362, 8363, 3, 11, 5, 0, 8363, 8364, 3, 45, 22, 0, 8364, 8365, 3, 35, 17, 0, 8365, 8366, 3, 41, 20, 0, 8366, 1570, 1, 0, 0, 0, 8367, 8368, 3, 45, 22, 0, 8368, 8369, 3, 53, 26, 0, 8369, 8370, 3, 23, 11, 0, 8370, 8371, 3, 13, 6, 0, 8371, 8372, 5, 95, 0, 0, 8372, 8373, 3, 43, 21, 0, 8373, 8374, 3, 33, 16, 0, 8374, 8375, 3, 7, 3, 0, 8375, 8376, 3, 37, 18, 0, 8376, 8377, 3, 43, 21, 0, 8377, 8378, 3, 21, 10, 0, 8378, 8379, 3, 35, 17, 0, 8379, 8380, 3, 45, 22, 0, 8380, 1572, 1, 0, 0, 0, 8381, 8382, 3, 47, 23, 0, 8382, 8383, 3, 47, 23, 0, 8383, 8384, 3, 23, 11, 0, 8384, 8385, 3, 13, 6, 0, 8385, 1574, 1, 0, 0, 0, 8386, 8387, 3, 49, 24, 0, 8387, 8388, 3, 7, 3, 0, 8388, 8389, 3, 41, 20, 0, 8389, 8390, 3, 9, 4, 0, 8390, 8391, 3, 23, 11, 0, 8391, 8392, 3, 45, 22, 0, 8392, 1576, 1, 0, 0, 0, 8393, 8394, 3, 53, 26, 0, 8394, 8395, 3, 31, 15, 0, 8395, 8396, 3, 29, 14, 0, 8396, 1578, 1, 0, 0, 0, 8397, 8398, 5, 44, 0, 0, 8398, 1580, 1, 0, 0, 0, 8399, 8400, 5, 58, 0, 0, 8400, 1582, 1, 0, 0, 0, 8401, 8402, 5, 58, 0, 0, 8402, 8403, 5, 58, 0, 0, 8403, 1584, 1, 0, 0, 0, 8404, 8405, 5, 36, 0, 0, 8405, 1586, 1, 0, 0, 0, 8406, 8407, 5, 36, 0, 0, 8407, 8408, 5, 36, 0, 0, 8408, 1588, 1, 0, 0, 0, 8409, 8410, 5, 42, 0, 0, 8410, 1590, 1, 0, 0, 0, 8411, 8412, 5, 40, 0, 0, 8412, 1592, 1, 0, 0, 0, 8413, 8414, 5, 41, 0, 0, 8414, 1594, 1, 0, 0, 0, 8415, 8416, 5, 91, 0, 0, 8416, 1596, 1, 0, 0, 0, 8417, 8418, 5, 93, 0, 0, 8418, 1598, 1, 0, 0, 0, 8419, 8420, 3, 9, 4, 0, 8420, 8424, 5, 39, 0, 0, 8421, 8423, 2, 48, 49, 0, 8422, 8421, 1, 0, 0, 0, 8423, 8426, 1, 0, 0, 0, 8424, 8422, 1, 0, 0, 0, 8424, 8425, 1, 0, 0, 0, 8425, 8427, 1, 0, 0, 0, 8426, 8424, 1, 0, 0, 0, 8427, 8428, 5, 39, 0, 0, 8428, 1600, 1, 0, 0, 0, 8429, 8430, 3, 15, 7, 0, 8430, 8431, 3, 65, 32, 0, 8431, 1602, 1, 0, 0, 0, 8432, 8434, 5, 45, 0, 0, 8433, 8432, 1, 0, 0, 0, 8433, 8434, 1, 0, 0, 0, 8434, 8436, 1, 0, 0, 0, 8435, 8437, 3, 61, 30, 0, 8436, 8435, 1, 0, 0, 0, 8437, 8438, 1, 0, 0, 0, 8438, 8436, 1, 0, 0, 0, 8438, 8439, 1, 0, 0, 0, 8439, 8440, 1, 0, 0, 0, 8440, 8442, 5, 46, 0, 0, 8441, 8443, 3, 61, 30, 0, 8442, 8441, 1, 0, 0, 0, 8443, 8444, 1, 0, 0, 0, 8444, 8442, 1, 0, 0, 0, 8444, 8445, 1, 0, 0, 0, 8445, 8458, 1, 0, 0, 0, 8446, 8450, 3, 15, 7, 0, 8447, 8449, 5, 45, 0, 0, 8448, 8447, 1, 0, 0, 0, 8449, 8452, 1, 0, 0, 0, 8450, 8448, 1, 0, 0, 0, 8450, 8451, 1, 0, 0, 0, 8451, 8454, 1, 0, 0, 0, 8452, 8450, 1, 0, 0, 0, 8453, 8455, 3, 61, 30, 0, 8454, 8453, 1, 0, 0, 0, 8455, 8456, 1, 0, 0, 0, 8456, 8454, 1, 0, 0, 0, 8456, 8457, 1, 0, 0, 0, 8457, 8459, 1, 0, 0, 0, 8458, 8446, 1, 0, 0, 0, 8458, 8459, 1, 0, 0, 0, 8459, 1604, 1, 0, 0, 0, 8460, 8462, 5, 45, 0, 0, 8461, 8460, 1, 0, 0, 0, 8461, 8462, 1, 0, 0, 0, 8462, 8464, 1, 0, 0, 0, 8463, 8465, 3, 61, 30, 0, 8464, 8463, 1, 0, 0, 0, 8465, 8466, 1, 0, 0, 0, 8466, 8464, 1, 0, 0, 0, 8466, 8467, 1, 0, 0, 0, 8467, 8474, 1, 0, 0, 0, 8468, 8470, 3, 15, 7, 0, 8469, 8471, 3, 61, 30, 0, 8470, 8469, 1, 0, 0, 0, 8471, 8472, 1, 0, 0, 0, 8472, 8470, 1, 0, 0, 0, 8472, 8473, 1, 0, 0, 0, 8473, 8475, 1, 0, 0, 0, 8474, 8468, 1, 0, 0, 0, 8474, 8475, 1, 0, 0, 0, 8475, 1606, 1, 0, 0, 0, 8476, 8477, 5, 120, 0, 0, 8477, 8478, 3, 65, 32, 0, 8478, 1608, 1, 0, 0, 0, 8479, 8480, 5, 46, 0, 0, 8480, 1610, 1, 0, 0, 0, 8481, 8482, 3, 65, 32, 0, 8482, 1612, 1, 0, 0, 0, 8483, 8484, 3, 63, 31, 0, 8484, 1614, 1, 0, 0, 0, 8485, 8489, 7, 32, 0, 0, 8486, 8488, 7, 33, 0, 0, 8487, 8486, 1, 0, 0, 0, 8488, 8491, 1, 0, 0, 0, 8489, 8487, 1, 0, 0, 0, 8489, 8490, 1, 0, 0, 0, 8490, 1616, 1, 0, 0, 0, 8491, 8489, 1, 0, 0, 0, 8492, 8494, 5, 36, 0, 0, 8493, 8495, 3, 61, 30, 0, 8494, 8493, 1, 0, 0, 0, 8495, 8496, 1, 0, 0, 0, 8496, 8494, 1, 0, 0, 0, 8496, 8497, 1, 0, 0, 0, 8497, 1618, 1, 0, 0, 0, 8498, 8502, 7, 34, 0, 0, 8499, 8501, 7, 35, 0, 0, 8500, 8499, 1, 0, 0, 0, 8501, 8504, 1, 0, 0, 0, 8502, 8500, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 1620, 1, 0, 0, 0, 8504, 8502, 1, 0, 0, 0, 8505, 8506, 5, 38, 0, 0, 8506, 1622, 1, 0, 0, 0, 8507, 8508, 5, 38, 0, 0, 8508, 8509, 5, 38, 0, 0, 8509, 1624, 1, 0, 0, 0, 8510, 8511, 5, 38, 0, 0, 8511, 8512, 5, 60, 0, 0, 8512, 1626, 1, 0, 0, 0, 8513, 8514, 5, 64, 0, 0, 8514, 8515, 5, 64, 0, 0, 8515, 1628, 1, 0, 0, 0, 8516, 8517, 5, 64, 0, 0, 8517, 8518, 5, 62, 0, 0, 8518, 1630, 1, 0, 0, 0, 8519, 8520, 5, 64, 0, 0, 8520, 1632, 1, 0, 0, 0, 8521, 8522, 5, 33, 0, 0, 8522, 1634, 1, 0, 0, 0, 8523, 8524, 5, 33, 0, 0, 8524, 8525, 5, 33, 0, 0, 8525, 1636, 1, 0, 0, 0, 8526, 8527, 5, 33, 0, 0, 8527, 8528, 5, 61, 0, 0, 8528, 1638, 1, 0, 0, 0, 8529, 8530, 5, 94, 0, 0, 8530, 1640, 1, 0, 0, 0, 8531, 8532, 5, 61, 0, 0, 8532, 1642, 1, 0, 0, 0, 8533, 8534, 5, 61, 0, 0, 8534, 8535, 5, 62, 0, 0, 8535, 1644, 1, 0, 0, 0, 8536, 8537, 5, 62, 0, 0, 8537, 1646, 1, 0, 0, 0, 8538, 8539, 5, 62, 0, 0, 8539, 8540, 5, 61, 0, 0, 8540, 1648, 1, 0, 0, 0, 8541, 8542, 5, 62, 0, 0, 8542, 8543, 5, 62, 0, 0, 8543, 1650, 1, 0, 0, 0, 8544, 8545, 5, 35, 0, 0, 8545, 1652, 1, 0, 0, 0, 8546, 8547, 5, 35, 0, 0, 8547, 8548, 5, 61, 0, 0, 8548, 1654, 1, 0, 0, 0, 8549, 8550, 5, 35, 0, 0, 8550, 8551, 5, 62, 0, 0, 8551, 1656, 1, 0, 0, 0, 8552, 8553, 5, 35, 0, 0, 8553, 8554, 5, 62, 0, 0, 8554, 8555, 5, 62, 0, 0, 8555, 1658, 1, 0, 0, 0, 8556, 8557, 5, 35, 0, 0, 8557, 8558, 5, 35, 0, 0, 8558, 1660, 1, 0, 0, 0, 8559, 8560, 5, 45, 0, 0, 8560, 8561, 5, 62, 0, 0, 8561, 1662, 1, 0, 0, 0, 8562, 8563, 5, 45, 0, 0, 8563, 8564, 5, 62, 0, 0, 8564, 8565, 5, 62, 0, 0, 8565, 1664, 1, 0, 0, 0, 8566, 8567, 5, 45, 0, 0, 8567, 8568, 5, 124, 0, 0, 8568, 8569, 5, 45, 0, 0, 8569, 1666, 1, 0, 0, 0, 8570, 8571, 5, 60, 0, 0, 8571, 1668, 1, 0, 0, 0, 8572, 8573, 5, 60, 0, 0, 8573, 8574, 5, 61, 0, 0, 8574, 1670, 1, 0, 0, 0, 8575, 8576, 5, 60, 0, 0, 8576, 8577, 5, 64, 0, 0, 8577, 1672, 1, 0, 0, 0, 8578, 8579, 5, 60, 0, 0, 8579, 8580, 5, 94, 0, 0, 8580, 1674, 1, 0, 0, 0, 8581, 8582, 5, 60, 0, 0, 8582, 8583, 5, 62, 0, 0, 8583, 1676, 1, 0, 0, 0, 8584, 8585, 5, 60, 0, 0, 8585, 8586, 5, 45, 0, 0, 8586, 8587, 5, 62, 0, 0, 8587, 1678, 1, 0, 0, 0, 8588, 8589, 5, 60, 0, 0, 8589, 8590, 5, 60, 0, 0, 8590, 1680, 1, 0, 0, 0, 8591, 8592, 5, 60, 0, 0, 8592, 8593, 5, 60, 0, 0, 8593, 8594, 5, 61, 0, 0, 8594, 1682, 1, 0, 0, 0, 8595, 8596, 5, 60, 0, 0, 8596, 8597, 5, 63, 0, 0, 8597, 8598, 5, 62, 0, 0, 8598, 1684, 1, 0, 0, 0, 8599, 8600, 5, 45, 0, 0, 8600, 1686, 1, 0, 0, 0, 8601, 8602, 5, 37, 0, 0, 8602, 1688, 1, 0, 0, 0, 8603, 8604, 5, 124, 0, 0, 8604, 1690, 1, 0, 0, 0, 8605, 8606, 5, 124, 0, 0, 8606, 8607, 5, 124, 0, 0, 8607, 1692, 1, 0, 0, 0, 8608, 8609, 5, 124, 0, 0, 8609, 8610, 5, 124, 0, 0, 8610, 8611, 5, 47, 0, 0, 8611, 1694, 1, 0, 0, 0, 8612, 8613, 5, 124, 0, 0, 8613, 8614, 5, 47, 0, 0, 8614, 1696, 1, 0, 0, 0, 8615, 8616, 5, 43, 0, 0, 8616, 1698, 1, 0, 0, 0, 8617, 8618, 5, 63, 0, 0, 8618, 1700, 1, 0, 0, 0, 8619, 8620, 5, 63, 0, 0, 8620, 8621, 5, 38, 0, 0, 8621, 1702, 1, 0, 0, 0, 8622, 8623, 5, 63, 0, 0, 8623, 8624, 5, 35, 0, 0, 8624, 1704, 1, 0, 0, 0, 8625, 8626, 5, 63, 0, 0, 8626, 8627, 5, 45, 0, 0, 8627, 1706, 1, 0, 0, 0, 8628, 8629, 5, 63, 0, 0, 8629, 8630, 5, 124, 0, 0, 8630, 1708, 1, 0, 0, 0, 8631, 8632, 5, 47, 0, 0, 8632, 1710, 1, 0, 0, 0, 8633, 8634, 5, 126, 0, 0, 8634, 1712, 1, 0, 0, 0, 8635, 8636, 5, 126, 0, 0, 8636, 8637, 5, 61, 0, 0, 8637, 1714, 1, 0, 0, 0, 8638, 8639, 5, 126, 0, 0, 8639, 8640, 5, 62, 0, 0, 8640, 8641, 5, 61, 0, 0, 8641, 8642, 5, 126, 0, 0, 8642, 1716, 1, 0, 0, 0, 8643, 8644, 5, 126, 0, 0, 8644, 8645, 5, 62, 0, 0, 8645, 8646, 5, 126, 0, 0, 8646, 1718, 1, 0, 0, 0, 8647, 8648, 5, 126, 0, 0, 8648, 8649, 5, 60, 0, 0, 8649, 8650, 5, 61, 0, 0, 8650, 8651, 5, 126, 0, 0, 8651, 1720, 1, 0, 0, 0, 8652, 8653, 5, 126, 0, 0, 8653, 8654, 5, 60, 0, 0, 8654, 8655, 5, 126, 0, 0, 8655, 1722, 1, 0, 0, 0, 8656, 8657, 5, 126, 0, 0, 8657, 8658, 5, 42, 0, 0, 8658, 1724, 1, 0, 0, 0, 8659, 8660, 5, 126, 0, 0, 8660, 8661, 5, 126, 0, 0, 8661, 1726, 1, 0, 0, 0, 8662, 8663, 5, 59, 0, 0, 8663, 1728, 1, 0, 0, 0, 24, 0, 1732, 1742, 1756, 1825, 1827, 1838, 1840, 1851, 1853, 8424, 8433, 8438, 8444, 8450, 8456, 8458, 8461, 8466, 8472, 8474, 8489, 8496, 8502, 2, 6, 0, 0, 0, 1, 0] \ No newline at end of file diff --git a/gen/PostgreSQLLexer.java b/gen/PostgreSQLLexer.java index 5dcd154..c481088 100644 --- a/gen/PostgreSQLLexer.java +++ b/gen/PostgreSQLLexer.java @@ -48,20 +48,20 @@ public class PostgreSQLLexer extends Lexer { DEFINER=161, DEGREE=162, DELETE=163, DELIMITER=164, DELIMITERS=165, DENSE_RANK=166, DEPENDS=167, DEPTH=168, DEREF=169, DERIVED=170, DESC=171, DESCRIBE=172, DESCRIPTOR=173, DESTROY=174, DESTRUCTOR=175, DETERMINISTIC=176, DIAGNOSTICS=177, - DICTIONARY=178, DISABLE=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, DISCONNECT=182, - DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, DROP=188, - DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, EACH=192, - ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, END=198, - END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, EXCEPTION=204, - EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, EXISTING=210, - EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, EXTERNAL=216, - EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, FINAL=222, - FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, FOREIGN=229, - FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, FREEZE=235, - FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, GENERATED=242, - GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, GREATEST=249, - GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, HOLD=255, - HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, + DICTIONARY=178, DISABLE_P=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, + DISCONNECT=182, DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, + DROP=188, DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, + EACH=192, ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, + END=198, END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, + EXCEPTION=204, EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, + EXISTING=210, EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, + EXTERNAL=216, EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, + FINAL=222, FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, + FOREIGN=229, FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, + FREEZE=235, FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, + GENERATED=242, GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, + GREATEST=249, GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, + HOLD=255, HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, IMMUTABLE=262, IMPLEMENTATION=263, IMPLICIT=264, IN=265, INCLUDING=266, INCREMENT=267, INDEX=268, INDICATOR=269, INFIX=270, INHERITS=271, INITIALIZE=272, INITIALLY=273, INNER=274, INOUT=275, INPUT=276, INSENSITIVE=277, INSERT=278, @@ -137,33 +137,32 @@ public class PostgreSQLLexer extends Lexer { FINALFUNC_EXTRA=671, COMBINEFUNC=672, SERIALFUNC=673, DESERIALFUNC=674, INITCOND=675, MSFUNC=676, MINVFUNC=677, MSTYPE=678, MSSPACE=679, MFINALFUNC=680, MFINALFUNC_EXTRA=681, MINITCOND=682, SORTOP=683, PARALLEL=684, HYPOTHETICAL=685, - SAFE=686, RESTRICTED=687, UNSAFE=688, BASETYPE=689, IF=690, LOCALE=691, - LC_COLLATE=692, LC_CTYPE=693, PROVIDER=694, VERSION=695, ALLOW_CONNECTIONS=696, - IS_TEMPLATE=697, EVENT=698, WRAPPER=699, SERVER=700, BTREE=701, HASH_=702, - GIST=703, SPGIST=704, GIN=705, BRIN=706, CONCURRENTLY=707, INLINE=708, - MATERIALIZED=709, LEFTARG=710, RIGHTARG=711, COMMUTATOR=712, NEGATOR=713, - HASHES=714, MERGES=715, FAMILY=716, POLICY=717, OWNED=718, ABSTIME=719, - BIGSERIAL=720, BIT_VARYING=721, BOOL=722, BOX=723, BYTEA=724, CHARACTER_VARYING=725, - CIDR=726, CIRCLE=727, FLOAT4=728, FLOAT8=729, INET=730, INT2=731, INT4=732, - INT8=733, JSON=734, JSONB=735, LINE=736, LSEG=737, MACADDR=738, MACADDR8=739, - MONEY=740, PG_LSN=741, POINT=742, POLYGON=743, RELTIME=744, SERIAL=745, - SERIAL2=746, SERIAL4=747, SERIAL8=748, SMALLSERIAL=749, STSTEM=750, TEXT=751, - TIMESTAMPTZ=752, TIMETZ=753, TSQUERY=754, TSVECTOR=755, TXID_SNAPSHOT=756, - UUID=757, VARBIT=758, XML=759, COMMA=760, COLON=761, COLON_COLON=762, - DOLLAR=763, DOLLAR_DOLLAR=764, STAR=765, OPEN_PAREN=766, CLOSE_PAREN=767, - OPEN_BRACKET=768, CLOSE_BRACKET=769, BIT_STRING=770, REGEX_STRING=771, - NUMERIC_LITERAL=772, INTEGER_LITERAL=773, HEX_INTEGER_LITERAL=774, DOT=775, - SINGLEQ_STRING_LITERAL=776, DOUBLEQ_STRING_LITERAL=777, IDENTIFIER=778, - DOLLAR_DEC=779, IDENTIFIER_UNICODE=780, AMP=781, AMP_AMP=782, AMP_LT=783, - AT_AT=784, AT_GT=785, AT_SIGN=786, BANG=787, BANG_BANG=788, BANG_EQUAL=789, - CARET=790, EQUAL=791, EQUAL_GT=792, GT=793, GTE=794, GT_GT=795, HASH=796, - HASH_EQ=797, HASH_GT=798, HASH_GT_GT=799, HASH_HASH=800, HYPHEN_GT=801, - HYPHEN_GT_GT=802, HYPHEN_PIPE_HYPHEN=803, LT=804, LTE=805, LT_AT=806, - LT_CARET=807, LT_GT=808, LT_HYPHEN_GT=809, LT_LT=810, LT_LT_EQ=811, LT_QMARK_GT=812, - MINUS=813, PERCENT=814, PIPE=815, PIPE_PIPE=816, PIPE_PIPE_SLASH=817, - PIPE_SLASH=818, PLUS=819, QMARK=820, QMARK_AMP=821, QMARK_HASH=822, QMARK_HYPHEN=823, - QMARK_PIPE=824, SLASH=825, TIL=826, TIL_EQ=827, TIL_GTE_TIL=828, TIL_GT_TIL=829, - TIL_LTE_TIL=830, TIL_LT_TIL=831, TIL_STAR=832, TIL_TIL=833, SEMI=834; + SAFE=686, UNSAFE=687, BASETYPE=688, IF=689, LOCALE=690, LC_COLLATE=691, + LC_CTYPE=692, PROVIDER=693, VERSION=694, ALLOW_CONNECTIONS=695, IS_TEMPLATE=696, + EVENT=697, WRAPPER=698, SERVER=699, BTREE=700, HASH_=701, GIST=702, SPGIST=703, + GIN=704, BRIN=705, CONCURRENTLY=706, INLINE=707, MATERIALIZED=708, LEFTARG=709, + RIGHTARG=710, COMMUTATOR=711, NEGATOR=712, HASHES=713, MERGES=714, FAMILY=715, + POLICY=716, OWNED=717, ABSTIME=718, BIGSERIAL=719, BIT_VARYING=720, BOOL=721, + BOX=722, BYTEA=723, CHARACTER_VARYING=724, CIDR=725, CIRCLE=726, FLOAT4=727, + FLOAT8=728, INET=729, INT2=730, INT4=731, INT8=732, JSON=733, JSONB=734, + LINE=735, LSEG=736, MACADDR=737, MACADDR8=738, MONEY=739, PG_LSN=740, + POINT=741, POLYGON=742, RELTIME=743, SERIAL=744, SERIAL2=745, SERIAL4=746, + SERIAL8=747, SMALLSERIAL=748, STSTEM=749, TEXT=750, TIMESTAMPTZ=751, TIMETZ=752, + TSQUERY=753, TSVECTOR=754, TXID_SNAPSHOT=755, UUID=756, VARBIT=757, XML=758, + COMMA=759, COLON=760, COLON_COLON=761, DOLLAR=762, DOLLAR_DOLLAR=763, + STAR=764, OPEN_PAREN=765, CLOSE_PAREN=766, OPEN_BRACKET=767, CLOSE_BRACKET=768, + BIT_STRING=769, REGEX_STRING=770, NUMERIC_LITERAL=771, INTEGER_LITERAL=772, + HEX_INTEGER_LITERAL=773, DOT=774, SINGLEQ_STRING_LITERAL=775, DOUBLEQ_STRING_LITERAL=776, + IDENTIFIER=777, DOLLAR_DEC=778, IDENTIFIER_UNICODE=779, AMP=780, AMP_AMP=781, + AMP_LT=782, AT_AT=783, AT_GT=784, AT_SIGN=785, BANG=786, BANG_BANG=787, + BANG_EQUAL=788, CARET=789, EQUAL=790, EQUAL_GT=791, GT=792, GTE=793, GT_GT=794, + HASH=795, HASH_EQ=796, HASH_GT=797, HASH_GT_GT=798, HASH_HASH=799, HYPHEN_GT=800, + HYPHEN_GT_GT=801, HYPHEN_PIPE_HYPHEN=802, LT=803, LTE=804, LT_AT=805, + LT_CARET=806, LT_GT=807, LT_HYPHEN_GT=808, LT_LT=809, LT_LT_EQ=810, LT_QMARK_GT=811, + MINUS=812, PERCENT=813, PIPE=814, PIPE_PIPE=815, PIPE_PIPE_SLASH=816, + PIPE_SLASH=817, PLUS=818, QMARK=819, QMARK_AMP=820, QMARK_HASH=821, QMARK_HYPHEN=822, + QMARK_PIPE=823, SLASH=824, TIL=825, TIL_EQ=826, TIL_GTE_TIL=827, TIL_GT_TIL=828, + TIL_LTE_TIL=829, TIL_LT_TIL=830, TIL_STAR=831, TIL_TIL=832, SEMI=833; public static String[] channelNames = { "DEFAULT_TOKEN_CHANNEL", "HIDDEN" }; @@ -205,7 +204,7 @@ private static String[] makeRuleNames() { "DEFERABLE", "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", - "DETERMINISTIC", "DIAGNOSTICS", "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", + "DETERMINISTIC", "DIAGNOSTICS", "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", @@ -284,30 +283,29 @@ private static String[] makeRuleNames() { "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", - "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "RESTRICTED", - "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", - "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", - "BTREE", "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", - "MATERIALIZED", "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", - "MERGES", "FAMILY", "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", - "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", - "FLOAT8", "INET", "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", - "MACADDR", "MACADDR8", "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", - "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", - "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", - "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", - "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", - "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", - "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", - "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", "AT_AT", - "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", "EQUAL", - "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", "HASH_GT_GT", - "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", "LT", - "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", - "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", - "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", - "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", - "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "UNSAFE", + "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", + "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", + "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", + "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", + "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", + "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", + "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" }; } public static final String[] ruleNames = makeRuleNames(); @@ -377,7 +375,7 @@ private static String[] makeLiteralNames() { null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", + null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", @@ -420,7 +418,7 @@ private static String[] makeSymbolicNames() { "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", - "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", @@ -499,30 +497,29 @@ private static String[] makeSymbolicNames() { "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", - "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "RESTRICTED", - "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", - "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", - "BTREE", "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", - "MATERIALIZED", "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", - "MERGES", "FAMILY", "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", - "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", - "FLOAT8", "INET", "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", - "MACADDR", "MACADDR8", "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", - "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", - "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", - "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", - "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", - "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", - "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", - "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", "AT_AT", - "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", "EQUAL", - "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", "HASH_GT_GT", - "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", "LT", - "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", - "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", - "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", - "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", - "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "UNSAFE", + "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", + "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", + "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", + "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", + "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", + "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", + "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" }; } private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); @@ -584,7 +581,7 @@ public PostgreSQLLexer(CharStream input) { public ATN getATN() { return _ATN; } private static final String _serializedATNSegment0 = - "\u0004\u0000\u0342\u21e5\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0004\u0000\u0341\u21d8\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ @@ -859,5321 +856,5309 @@ public PostgreSQLLexer(CharStream input) { "\u0002\u0356\u0007\u0356\u0002\u0357\u0007\u0357\u0002\u0358\u0007\u0358"+ "\u0002\u0359\u0007\u0359\u0002\u035a\u0007\u035a\u0002\u035b\u0007\u035b"+ "\u0002\u035c\u0007\u035c\u0002\u035d\u0007\u035d\u0002\u035e\u0007\u035e"+ - "\u0002\u035f\u0007\u035f\u0002\u0360\u0007\u0360\u0001\u0000\u0004\u0000"+ - "\u06c5\b\u0000\u000b\u0000\f\u0000\u06c6\u0001\u0000\u0001\u0000\u0001"+ - "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u06cf\b\u0001\n"+ - "\u0001\f\u0001\u06d2\t\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ - "\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0005"+ - "\u0002\u06dd\b\u0002\n\u0002\f\u0002\u06e0\t\u0002\u0001\u0002\u0001\u0002"+ - "\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004"+ - "\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+ - "\u0001\b\u0001\b\u0001\t\u0001\t\u0001\n\u0001\n\u0001\u000b\u0001\u000b"+ - "\u0001\f\u0001\f\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000f\u0001"+ - "\u000f\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0012\u0001"+ - "\u0012\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0015\u0001"+ - "\u0015\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0018\u0001"+ - "\u0018\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001b\u0001"+ - "\u001b\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+ - "\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+ - "\u001f\u0005\u001f\u0724\b\u001f\n\u001f\f\u001f\u0727\t\u001f\u0001\u001f"+ - "\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0005 \u0731\b"+ - " \n \f \u0734\t \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ - "!\u0005!\u073e\b!\n!\f!\u0741\t!\u0001!\u0001!\u0001\"\u0001\"\u0001#"+ - "\u0001#\u0001#\u0001#\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001"+ - "%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001"+ - "&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+ - "\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001"+ - ")\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001"+ - "+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001"+ - ",\u0001,\u0001,\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001.\u0001"+ - ".\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ - "/\u0001/\u00010\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u0001"+ - "1\u00011\u00011\u00012\u00012\u00012\u00012\u00012\u00012\u00012\u0001"+ - "3\u00013\u00013\u00013\u00013\u00013\u00013\u00013\u00014\u00014\u0001"+ - "4\u00014\u00014\u00014\u00014\u00014\u00015\u00015\u00015\u00015\u0001"+ - "6\u00016\u00016\u00016\u00017\u00017\u00017\u00017\u00018\u00018\u0001"+ - "8\u00018\u00018\u00018\u00019\u00019\u00019\u0001:\u0001:\u0001:\u0001"+ - ":\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ - ";\u0001;\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001"+ - "<\u0001<\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001"+ - "=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ - ">\u0001>\u0001>\u0001>\u0001?\u0001?\u0001?\u0001@\u0001@\u0001@\u0001"+ - "@\u0001@\u0001@\u0001@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001"+ - "A\u0001A\u0001A\u0001A\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ - "B\u0001B\u0001B\u0001B\u0001B\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ - "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001D\u0001"+ - "D\u0001D\u0001D\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001"+ - "E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001G\u0001"+ - "G\u0001G\u0001G\u0001G\u0001G\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ - "H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001I\u0001I\u0001I\u0001"+ - "I\u0001I\u0001I\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001"+ - "K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001"+ - "L\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001O\u0001"+ - "O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ - "P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001"+ - "R\u0001R\u0001R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ - "S\u0001S\u0001S\u0001T\u0001T\u0001T\u0001U\u0001U\u0001V\u0001V\u0001"+ - "V\u0001V\u0001V\u0001V\u0001W\u0001W\u0001W\u0001W\u0001W\u0001X\u0001"+ - "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ - "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001"+ - "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001[\u0001[\u0001[\u0001[\u0001"+ - "[\u0001[\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\"+ - "\u0001]\u0001]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001"+ - "^\u0001^\u0001^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001"+ - "_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001"+ - "`\u0001`\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001a\u0001"+ - "b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001"+ - "c\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001"+ - "d\u0001d\u0001d\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ - "e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "\u0002\u035f\u0007\u035f\u0001\u0000\u0004\u0000\u06c3\b\u0000\u000b\u0000"+ + "\f\u0000\u06c4\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0005\u0001\u06cd\b\u0001\n\u0001\f\u0001\u06d0\t\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001"+ + "\u0002\u0001\u0002\u0001\u0002\u0005\u0002\u06db\b\u0002\n\u0002\f\u0002"+ + "\u06de\t\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003"+ + "\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006"+ + "\u0001\u0006\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\t\u0001\t\u0001"+ + "\n\u0001\n\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\r\u0001\r\u0001"+ + "\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001"+ + "\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+ + "\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001"+ + "\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001"+ + "\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001"+ + "\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001"+ + "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u0722\b\u001f\n"+ + "\u001f\f\u001f\u0725\t\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001"+ + " \u0001 \u0001 \u0001 \u0005 \u072f\b \n \f \u0732\t \u0001 \u0001 \u0001"+ + "!\u0001!\u0001!\u0001!\u0001!\u0001!\u0005!\u073c\b!\n!\f!\u073f\t!\u0001"+ + "!\u0001!\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+ + "$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ + "\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001"+ + "(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001*\u0001*\u0001*\u0001*\u0001"+ + "*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001"+ + "-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u0001"+ + "0\u00010\u00011\u00011\u00011\u00011\u00011\u00011\u00012\u00012\u0001"+ + "2\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00013\u00013\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u0001"+ + "4\u00015\u00015\u00015\u00015\u00016\u00016\u00016\u00016\u00017\u0001"+ + "7\u00017\u00017\u00018\u00018\u00018\u00018\u00018\u00018\u00019\u0001"+ + "9\u00019\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001<\u0001<\u0001<\u0001"+ + "<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001"+ + ">\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001?\u0001"+ + "?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001A\u0001"+ + "A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ + "C\u0001C\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ + "I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001K\u0001K\u0001K\u0001"+ + "K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001N\u0001N\u0001N\u0001"+ + "N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001O\u0001O\u0001O\u0001P\u0001"+ + "P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ + "T\u0001U\u0001U\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001W\u0001"+ + "W\u0001W\u0001W\u0001W\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ + "X\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0001]\u0001]"+ + "\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001_\u0001"+ + "_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001"+ + "_\u0001_\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001e\u0001e\u0001"+ + "e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001"+ "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ - "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ - "g\u0001g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001"+ "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ - "h\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001i\u0001"+ "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ - "i\u0001i\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ - "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001k\u0001k\u0001"+ - "k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001l\u0001"+ - "l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0001m\u0001m\u0001m\u0001"+ - "m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001"+ - "n\u0001n\u0001n\u0001n\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001"+ - "p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ - "p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001q\u0001q\u0001r\u0001r\u0001"+ - "r\u0001r\u0001r\u0001r\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ - "s\u0001s\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001"+ - "t\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001"+ - "v\u0001v\u0001v\u0001v\u0001v\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ - "w\u0001w\u0001w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001"+ + "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001o\u0001"+ + "o\u0001o\u0001o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ + "p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001"+ + "q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001s\u0001"+ + "s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001"+ + "t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001u\u0001"+ + "u\u0001u\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001"+ + "w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ - "x\u0001x\u0001x\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ - "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001z\u0001z\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ "z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ - "z\u0001z\u0001z\u0001z\u0001z\u0001{\u0001{\u0001{\u0001{\u0001{\u0001"+ - "{\u0001{\u0001{\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001"+ - "}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001"+ - "}\u0001}\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001"+ - "~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001\u007f"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001}\u0001"+ + "}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ - "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0080"+ - "\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0081"+ - "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080"+ + "\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0082"+ "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ - "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083"+ + "\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ - "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0084"+ "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ - "\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0085\u0001\u0085"+ "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0086"+ "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ - "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ - "\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ - "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0088"+ - "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088"+ - "\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088"+ + "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089"+ "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a"+ "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ - "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008b\u0001\u008b"+ + "\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ - "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001\u008c\u0001\u008c"+ "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ - "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008d\u0001\u008d"+ - "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ - "\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008e"+ "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ - "\u0001\u008e\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008f"+ "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ - "\u0001\u008f\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u0090"+ "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090"+ - "\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091"+ - "\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0092"+ - "\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092"+ - "\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ + "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092"+ + "\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0093"+ "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ - "\u0001\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094"+ - "\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0095\u0001\u0095\u0001\u0095"+ - "\u0001\u0095\u0001\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096"+ - "\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001\u0094"+ + "\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094"+ + "\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096"+ + "\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097"+ "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ - "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098\u0001\u0098"+ - "\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099"+ - "\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a\u0001\u009a"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098"+ + "\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099"+ "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a"+ - "\u0001\u009a\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b"+ "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ - "\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c"+ - "\u0001\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d"+ - "\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009e\u0001\u009e"+ + "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c"+ + "\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ - "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009f\u0001\u009f\u0001\u009f"+ - "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0001\u00a0"+ - "\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f"+ + "\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1"+ + "\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ - "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001\u00a3"+ - "\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ - "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ + "\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ - "\u0001\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a5\u0001\u00a5"+ "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ - "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a7\u0001\u00a7"+ + "\u0001\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ - "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8"+ + "\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ - "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ - "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ - "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ac\u0001\u00ac"+ - "\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ad"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+ + "\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ - "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ae"+ - "\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00af"+ - "\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00b0\u0001\u00b0"+ - "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ - "\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1"+ + "\u0001\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae"+ + "\u0001\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af"+ + "\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1"+ + "\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ - "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b3"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ - "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4"+ - "\u0001\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ + "\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b5\u0001\u00b5"+ "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ - "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b7\u0001\u00b7"+ - "\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7"+ - "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8"+ - "\u0001\u00b8\u0001\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ - "\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00ba\u0001\u00ba"+ - "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba"+ - "\u0001\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ - "\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bc"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7"+ + "\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8"+ + "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b9"+ + "\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ + "\u0001\u00b9\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba"+ + "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00bb\u0001\u00bb"+ + "\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ + "\u0001\u00bb\u0001\u00bb\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ - "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001\u00bd"+ - "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ - "\u0001\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ - "\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ - "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00c0"+ - "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ - "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ - "\u0001\u00c1\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+ - "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c3"+ + "\u0001\u00bc\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be"+ + "\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ + "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ - "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ "\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ - "\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001\u00c5"+ - "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c6"+ - "\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c7"+ - "\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c8"+ - "\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ - "\u0001\u00c8\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6"+ + "\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7"+ + "\u0001\u00c7\u0001\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ + "\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ - "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ - "\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ - "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ - "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ - "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00cf"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ - "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00d0"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ - "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1"+ - "\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ - "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3"+ - "\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3"+ + "\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3"+ + "\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ - "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5"+ - "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5"+ - "\u0001\u00d5\u0001\u00d5\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6"+ - "\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d7"+ - "\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8"+ - "\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ - "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00da\u0001\u00da"+ - "\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00db\u0001\u00db\u0001\u00db"+ - "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00dc"+ + "\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5"+ + "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d8"+ + "\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8"+ + "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0001\u00d9\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ - "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ - "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ - "\u0001\u00dd\u0001\u00dd\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de"+ - "\u0001\u00de\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ - "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0"+ - "\u0001\u00e0\u0001\u00e0\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ - "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00de"+ + "\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ - "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4"+ - "\u0001\u00e4\u0001\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5"+ - "\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e6"+ - "\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ - "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7"+ - "\u0001\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8"+ - "\u0001\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9"+ - "\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ + "\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e5"+ + "\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5"+ + "\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ + "\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7"+ + "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e9\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00ea"+ "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ - "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ - "\u0001\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00ec"+ "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ - "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee"+ - "\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ef\u0001\u00ef\u0001\u00ef"+ - "\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0"+ - "\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ - "\u0001\u00f0\u0001\u00f0\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1"+ - "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001\u00f2\u0001\u00f2"+ - "\u0001\u00f2\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3"+ - "\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ + "\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee"+ + "\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef"+ + "\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ + "\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1"+ + "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1"+ + "\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f3\u0001\u00f3"+ + "\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3"+ "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ + "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ "\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ - "\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f6\u0001\u00f6"+ - "\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ - "\u0001\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7"+ - "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f8\u0001\u00f8\u0001\u00f8"+ - "\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f9\u0001\u00f9\u0001\u00f9"+ - "\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa\u0001\u00fa\u0001\u00fa"+ - "\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb"+ - "\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fc"+ - "\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fd"+ - "\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fe"+ - "\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00ff"+ - "\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100"+ + "\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ + "\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8"+ + "\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9"+ + "\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa"+ + "\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb"+ + "\u0001\u00fb\u0001\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc"+ + "\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd"+ + "\u0001\u00fd\u0001\u00fd\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe"+ + "\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff"+ + "\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ - "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0101\u0001\u0101\u0001\u0101"+ - "\u0001\u0101\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102"+ - "\u0001\u0102\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103"+ - "\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0104\u0001\u0104\u0001\u0104"+ - "\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0105\u0001\u0105"+ - "\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105"+ - "\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106"+ - "\u0001\u0106\u0001\u0106\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107"+ - "\u0001\u0107\u0001\u0107\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108"+ - "\u0001\u0108\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109"+ - "\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a"+ - "\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b"+ + "\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0102\u0001\u0102"+ + "\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0103\u0001\u0103"+ + "\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103"+ + "\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104"+ + "\u0001\u0104\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105"+ + "\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106\u0001\u0106"+ + "\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0107"+ + "\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0108"+ + "\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0109\u0001\u0109"+ + "\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u010a"+ + "\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010b\u0001\u010b"+ + "\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001\u010c"+ "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c"+ - "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001\u010d\u0001\u010d"+ - "\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010e\u0001\u010e"+ - "\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f"+ - "\u0001\u010f\u0001\u010f\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ + "\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d"+ + "\u0001\u010d\u0001\u010e\u0001\u010e\u0001\u010f\u0001\u010f\u0001\u010f"+ + "\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u0110"+ "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ - "\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0112\u0001\u0112"+ - "\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0113"+ - "\u0001\u0113\u0001\u0113\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114"+ - "\u0001\u0114\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115"+ - "\u0001\u0115\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116"+ - "\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117\u0001\u0117"+ + "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0111\u0001\u0111\u0001\u0111"+ + "\u0001\u0111\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112"+ + "\u0001\u0112\u0001\u0112\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0114"+ + "\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0115\u0001\u0115"+ + "\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0116\u0001\u0116"+ + "\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116"+ "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117"+ - "\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118"+ + "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118"+ + "\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119"+ "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119"+ - "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u011a\u0001\u011a\u0001\u011a"+ - "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011b"+ - "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b"+ + "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a"+ + "\u0001\u011a\u0001\u011a\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b"+ + "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011c\u0001\u011c\u0001\u011c"+ "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c"+ - "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011d\u0001\u011d"+ - "\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011e\u0001\u011e\u0001\u011e"+ - "\u0001\u011e\u0001\u011e\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f"+ - "\u0001\u011f\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120"+ - "\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0121\u0001\u0121"+ - "\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0122"+ - "\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0123"+ + "\u0001\u011c\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d"+ + "\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011f"+ + "\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001\u0120"+ + "\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120"+ + "\u0001\u0120\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121"+ + "\u0001\u0121\u0001\u0121\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122"+ + "\u0001\u0122\u0001\u0122\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ - "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0124\u0001\u0124\u0001\u0124"+ "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124"+ - "\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ + "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ - "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0126\u0001\u0126"+ - "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ - "\u0001\u0126\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0128\u0001\u0128"+ - "\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128"+ - "\u0001\u0128\u0001\u0128\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ + "\u0001\u0125\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ + "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0127\u0001\u0127"+ + "\u0001\u0127\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128"+ + "\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0129"+ "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ - "\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a"+ + "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u012a\u0001\u012a\u0001\u012a"+ + "\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012b\u0001\u012b\u0001\u012b"+ "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b"+ - "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012c\u0001\u012c"+ - "\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012d\u0001\u012d"+ - "\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d"+ - "\u0001\u012d\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ + "\u0001\u012b\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c"+ + "\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d"+ + "\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e"+ "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ + "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012f\u0001\u012f\u0001\u012f"+ "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f"+ - "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u0130\u0001\u0130"+ - "\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0131\u0001\u0131"+ - "\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0132\u0001\u0132"+ - "\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133"+ + "\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130"+ + "\u0001\u0130\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131"+ + "\u0001\u0131\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132"+ + "\u0001\u0132\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ "\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ - "\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0134\u0001\u0134"+ - "\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0135"+ - "\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135"+ - "\u0001\u0135\u0001\u0135\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ + "\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134"+ + "\u0001\u0134\u0001\u0134\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135"+ + "\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ - "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001\u0137"+ - "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0138"+ - "\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0139\u0001\u0139\u0001\u0139"+ - "\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u013a"+ + "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137"+ + "\u0001\u0137\u0001\u0137\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138"+ + "\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139"+ + "\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ - "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013b\u0001\u013b\u0001\u013b"+ "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ - "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013c\u0001\u013c"+ - "\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c"+ - "\u0001\u013c\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d"+ - "\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e"+ - "\u0001\u013e\u0001\u013e\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u0140"+ + "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ + "\u0001\u013b\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c"+ + "\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013d\u0001\u013d"+ + "\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013f"+ + "\u0001\u013f\u0001\u013f\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ - "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0141\u0001\u0141\u0001\u0141"+ - "\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0142"+ - "\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0143\u0001\u0143"+ - "\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0145\u0001\u0145"+ + "\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141"+ + "\u0001\u0141\u0001\u0141\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142"+ + "\u0001\u0142\u0001\u0143\u0001\u0143\u0001\u0144\u0001\u0144\u0001\u0144"+ + "\u0001\u0144\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ "\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ - "\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0146"+ "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ - "\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147"+ - "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0147\u0001\u0147\u0001\u0147"+ + "\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0148\u0001\u0148\u0001\u0148"+ "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0149\u0001\u0149\u0001\u0149"+ "\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149"+ - "\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u014a\u0001\u014a\u0001\u014a"+ - "\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014b\u0001\u014b\u0001\u014b"+ - "\u0001\u014b\u0001\u014b\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c"+ - "\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014d\u0001\u014d"+ - "\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d"+ - "\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e"+ - "\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u0150"+ - "\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ - "\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0152"+ - "\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0153"+ - "\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0154\u0001\u0154"+ - "\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0155\u0001\u0155"+ - "\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0156"+ - "\u0001\u0156\u0001\u0156\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0157"+ - "\u0001\u0157\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158"+ - "\u0001\u0158\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ - "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u015a"+ + "\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a"+ + "\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014c"+ + "\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c"+ + "\u0001\u014c\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d"+ + "\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014e"+ + "\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014f\u0001\u014f\u0001\u014f"+ + "\u0001\u014f\u0001\u014f\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0151\u0001\u0151\u0001\u0151"+ + "\u0001\u0151\u0001\u0151\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152"+ + "\u0001\u0152\u0001\u0152\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153"+ + "\u0001\u0153\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154"+ + "\u0001\u0154\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155"+ + "\u0001\u0155\u0001\u0155\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0157"+ + "\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0158\u0001\u0158"+ + "\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ - "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ - "\u0001\u015a\u0001\u015a\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b"+ - "\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015c"+ - "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c"+ - "\u0001\u015c\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d"+ - "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e"+ - "\u0001\u015e\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f"+ - "\u0001\u015f\u0001\u0160\u0001\u0160\u0001\u0161\u0001\u0161\u0001\u0161"+ - "\u0001\u0161\u0001\u0161\u0001\u0162\u0001\u0162\u0001\u0162\u0001\u0162"+ - "\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163"+ - "\u0001\u0163\u0001\u0163\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164"+ - "\u0001\u0164\u0001\u0164\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015b"+ + "\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b"+ + "\u0001\u015b\u0001\u015b\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c"+ + "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015d\u0001\u015d"+ + "\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015e\u0001\u015e\u0001\u015e"+ + "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015f\u0001\u015f"+ + "\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u0160\u0001\u0160"+ + "\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0162"+ + "\u0001\u0162\u0001\u0162\u0001\u0162\u0001\u0163\u0001\u0163\u0001\u0163"+ + "\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0164"+ + "\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ - "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0166\u0001\u0166\u0001\u0166"+ - "\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0167"+ - "\u0001\u0167\u0001\u0167\u0001\u0167\u0001\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166"+ + "\u0001\u0166\u0001\u0166\u0001\u0167\u0001\u0167\u0001\u0167\u0001\u0167"+ "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168"+ - "\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169"+ - "\u0001\u0169\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a"+ - "\u0001\u016a\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0169\u0001\u0169\u0001\u0169"+ + "\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u016a\u0001\u016a"+ + "\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016b\u0001\u016b"+ "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ - "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016c\u0001\u016c"+ - "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ - "\u0001\u016c\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016d\u0001\u016d"+ "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ - "\u0001\u016d\u0001\u016d\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e"+ - "\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016f\u0001\u016f\u0001\u016f"+ - "\u0001\u016f\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170"+ - "\u0001\u0170\u0001\u0170\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171"+ - "\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0172"+ - "\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0173\u0001\u0173\u0001\u0173"+ - "\u0001\u0173\u0001\u0173\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ - "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0175"+ - "\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ - "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176"+ - "\u0001\u0176\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177"+ - "\u0001\u0177\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0178"+ - "\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u017a"+ - "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ - "\u0001\u017a\u0001\u017a\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b"+ - "\u0001\u017b\u0001\u017b\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c"+ - "\u0001\u017c\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d"+ - "\u0001\u017d\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ - "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017f\u0001\u017f"+ - "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ - "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0180"+ - "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0181"+ - "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182"+ - "\u0001\u0182\u0001\u0182\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183"+ - "\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0185"+ - "\u0001\u0185\u0001\u0185\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016e"+ + "\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e"+ + "\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u0170\u0001\u0170"+ + "\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0171"+ + "\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171"+ + "\u0001\u0171\u0001\u0171\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0172"+ + "\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ + "\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0177\u0001\u0177"+ + "\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0178\u0001\u0178"+ + "\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0179\u0001\u0179\u0001\u0179"+ + "\u0001\u0179\u0001\u0179\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ + "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017b"+ + "\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017c"+ + "\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017d\u0001\u017d"+ + "\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ + "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0182\u0001\u0182\u0001\u0182"+ + "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0183"+ + "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0184\u0001\u0184\u0001\u0184"+ + "\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0186"+ "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ - "\u0001\u0186\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0187\u0001\u0187"+ "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ - "\u0001\u0187\u0001\u0187\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188"+ - "\u0001\u0188\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189"+ - "\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u018a"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0188"+ + "\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0189\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ - "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018b\u0001\u018b"+ - "\u0001\u018b\u0001\u018b\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ - "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018d\u0001\u018d"+ - "\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018e"+ - "\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e"+ - "\u0001\u018e\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f"+ - "\u0001\u018f\u0001\u018f\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190"+ - "\u0001\u0190\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ - "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0192\u0001\u0192"+ - "\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0193"+ - "\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0194"+ - "\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194"+ - "\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195"+ - "\u0001\u0195\u0001\u0195\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196"+ - "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0197\u0001\u0197\u0001\u0197"+ + "\u0001\u018a\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018c"+ + "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d"+ + "\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e"+ + "\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018f\u0001\u018f"+ + "\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u0190"+ + "\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0191\u0001\u0191"+ + "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ + "\u0001\u0191\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192"+ + "\u0001\u0192\u0001\u0192\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193"+ + "\u0001\u0193\u0001\u0193\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194"+ + "\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0195\u0001\u0195\u0001\u0195"+ + "\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0196"+ + "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196"+ + "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ - "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0198\u0001\u0198"+ - "\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0199"+ - "\u0001\u0199\u0001\u0199\u0001\u019a\u0001\u019a\u0001\u019a\u0001\u019a"+ - "\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b"+ - "\u0001\u019b\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c"+ - "\u0001\u019d\u0001\u019d\u0001\u019d\u0001\u019d\u0001\u019e\u0001\u019e"+ - "\u0001\u019e\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u019f"+ - "\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a1"+ + "\u0001\u0197\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198"+ + "\u0001\u0198\u0001\u0198\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u019a"+ + "\u0001\u019a\u0001\u019a\u0001\u019a\u0001\u019b\u0001\u019b\u0001\u019b"+ + "\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019c\u0001\u019c"+ + "\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019d\u0001\u019d\u0001\u019d"+ + "\u0001\u019d\u0001\u019e\u0001\u019e\u0001\u019e\u0001\u019f\u0001\u019f"+ + "\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u01a0\u0001\u01a0\u0001\u01a0"+ + "\u0001\u01a0\u0001\u01a0\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ - "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a2\u0001\u01a2\u0001\u01a2"+ "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2"+ - "\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3"+ - "\u0001\u01a3\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4"+ - "\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a5\u0001\u01a5\u0001\u01a5"+ - "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001\u01a3"+ + "\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a4\u0001\u01a4"+ + "\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4"+ + "\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ - "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ - "\u0001\u01a8\u0001\u01a8\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ - "\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01aa\u0001\u01aa\u0001\u01aa"+ - "\u0001\u01aa\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab"+ - "\u0001\u01ab\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac"+ - "\u0001\u01ac\u0001\u01ac\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad"+ - "\u0001\u01ad\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ - "\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01af\u0001\u01af"+ - "\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a9"+ + "\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ + "\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01ab\u0001\u01ab"+ + "\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ac\u0001\u01ac"+ + "\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ad"+ + "\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af"+ + "\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ - "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b1"+ - "\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b2"+ - "\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ + "\u0001\u01b0\u0001\u01b0\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1"+ + "\u0001\u01b1\u0001\u01b1\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2"+ "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ - "\u0001\u01b3\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b4\u0001\u01b4"+ "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ - "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b5\u0001\u01b5"+ - "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b4\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ - "\u0001\u01b5\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001\u01b6"+ "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ - "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b7\u0001\u01b7"+ - "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ - "\u0001\u01b7\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b8\u0001\u01b8"+ "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ - "\u0001\u01b8\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ - "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ - "\u0001\u01ba\u0001\u01ba\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb"+ - "\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bc\u0001\u01bc\u0001\u01bc"+ - "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bd"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01bb"+ + "\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ - "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01be\u0001\u01be\u0001\u01be"+ - "\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01bf\u0001\u01bf"+ - "\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ - "\u0001\u01bf\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0"+ - "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be"+ + "\u0001\u01be\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ + "\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01c0\u0001\u01c0"+ + "\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ - "\u0001\u01c1\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ - "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c3"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ - "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ - "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c5"+ - "\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c6"+ - "\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c7"+ - "\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5"+ + "\u0001\u01c5\u0001\u01c5\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6"+ + "\u0001\u01c6\u0001\u01c6\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c7"+ "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ - "\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9"+ - "\u0001\u01c9\u0001\u01c9\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca"+ - "\u0001\u01ca\u0001\u01ca\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c9\u0001\u01c9\u0001\u01c9"+ + "\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01ca"+ + "\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01cb"+ "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ - "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cd\u0001\u01cd"+ - "\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01ce"+ - "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ - "\u0001\u01ce\u0001\u01ce\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ - "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01d0\u0001\u01d0"+ - "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ - "\u0001\u01d0\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1"+ - "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d2\u0001\u01d2"+ - "\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2"+ - "\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d3"+ + "\u0001\u01cc\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2"+ + "\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d3\u0001\u01d3\u0001\u01d3"+ + "\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ - "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d5"+ + "\u0001\u01d4\u0001\u01d4\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ - "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d6\u0001\u01d6"+ - "\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6"+ - "\u0001\u01d6\u0001\u01d6\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7"+ - "\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ + "\u0001\u01d5\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6"+ + "\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d7"+ + "\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7"+ "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ - "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d9\u0001\u01d9\u0001\u01d9"+ - "\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01da\u0001\u01da\u0001\u01da"+ - "\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01db\u0001\u01db\u0001\u01db"+ - "\u0001\u01db\u0001\u01db\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc"+ - "\u0001\u01dc\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd"+ - "\u0001\u01dd\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01de"+ + "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ + "\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9"+ + "\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da"+ + "\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01dc"+ + "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dd\u0001\u01dd"+ + "\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01de\u0001\u01de"+ + "\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01df\u0001\u01df\u0001\u01df"+ "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df"+ - "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01e0\u0001\u01e0\u0001\u01e0"+ - "\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e1"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ - "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e2\u0001\u01e2\u0001\u01e2"+ - "\u0001\u01e2\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e3\u0001\u01e3"+ "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ - "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ - "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5"+ - "\u0001\u01e5\u0001\u01e5\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e5\u0001\u01e5\u0001\u01e5"+ + "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e6"+ "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ - "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e7\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ "\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ - "\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ - "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea"+ - "\u0001\u01ea\u0001\u01ea\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01ea\u0001\u01ea\u0001\u01ea"+ + "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01eb"+ "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb"+ - "\u0001\u01eb\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ - "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ed\u0001\u01ed"+ - "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ - "\u0001\u01ed\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ - "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ef\u0001\u01ef"+ - "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ - "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ - "\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f2"+ - "\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ + "\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ - "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f4"+ - "\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4"+ - "\u0001\u01f4\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ - "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ - "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ - "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f8"+ - "\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8"+ - "\u0001\u01f8\u0001\u01f8\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9"+ - "\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01fa\u0001\u01fa\u0001\u01fa"+ - "\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01f3\u0001\u01f3\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4"+ + "\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8"+ + "\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f9"+ + "\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9"+ + "\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa"+ + "\u0001\u01fa\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ - "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ - "\u0001\u01fb\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ - "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fd"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ - "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ - "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ - "\u0001\u01ff\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200"+ - "\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0201\u0001\u0201\u0001\u0201"+ - "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0202\u0001\u0202"+ - "\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0203\u0001\u0203"+ - "\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0204\u0001\u0204\u0001\u0204"+ + "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u0200\u0001\u0200"+ + "\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200"+ + "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201"+ + "\u0001\u0201\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202"+ + "\u0001\u0202\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203"+ "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204"+ - "\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205"+ - "\u0001\u0205\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206"+ - "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0205\u0001\u0205\u0001\u0205"+ + "\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0206\u0001\u0206"+ + "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206"+ "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ - "\u0001\u0207\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0208\u0001\u0208"+ "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ - "\u0001\u0208\u0001\u0208\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ + "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ - "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u020a"+ - "\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020b\u0001\u020b\u0001\u020b"+ + "\u0001\u0209\u0001\u0209\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a"+ "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b"+ - "\u0001\u020b\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ + "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020c\u0001\u020c"+ "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ - "\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020d\u0001\u020e"+ - "\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020f\u0001\u020f"+ - "\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f"+ - "\u0001\u020f\u0001\u020f\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210"+ - "\u0001\u0210\u0001\u0210\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211"+ - "\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020d\u0001\u020d\u0001\u020d"+ + "\u0001\u020d\u0001\u020d\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e"+ + "\u0001\u020e\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f"+ + "\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u0210"+ + "\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0211"+ + "\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211"+ "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ - "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0213\u0001\u0213\u0001\u0213"+ - "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213"+ + "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ - "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0215"+ + "\u0001\u0214\u0001\u0214\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ "\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ - "\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0216\u0001\u0216"+ + "\u0001\u0215\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ - "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0217"+ - "\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217"+ - "\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218"+ - "\u0001\u0218\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219"+ - "\u0001\u0219\u0001\u0219\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a"+ - "\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021b\u0001\u021b"+ - "\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b"+ - "\u0001\u021b\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c"+ - "\u0001\u021c\u0001\u021c\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021d"+ - "\u0001\u021d\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e"+ - "\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021f"+ - "\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f"+ - "\u0001\u021f\u0001\u021f\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220"+ + "\u0001\u0216\u0001\u0216\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217"+ + "\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0218\u0001\u0218\u0001\u0218"+ + "\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0219\u0001\u0219"+ + "\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u021a"+ + "\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a"+ + "\u0001\u021a\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b"+ + "\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021c\u0001\u021c"+ + "\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021d"+ + "\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021e\u0001\u021e"+ + "\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e"+ + "\u0001\u021e\u0001\u021e\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f"+ + "\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u0220"+ "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220"+ + "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0221\u0001\u0221\u0001\u0221"+ "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ - "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ - "\u0001\u0221\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222"+ + "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0222\u0001\u0222"+ "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222"+ - "\u0001\u0222\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223"+ - "\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0223\u0001\u0223"+ + "\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223"+ "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ - "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0225\u0001\u0225"+ - "\u0001\u0225\u0001\u0225\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226"+ - "\u0001\u0226\u0001\u0226\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0227"+ - "\u0001\u0227\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228"+ - "\u0001\u0228\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u0229"+ - "\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a"+ - "\u0001\u022a\u0001\u022a\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b"+ - "\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022c\u0001\u022c\u0001\u022c"+ - "\u0001\u022c\u0001\u022c\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d"+ - "\u0001\u022d\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e"+ - "\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022f\u0001\u022f"+ - "\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f"+ - "\u0001\u022f\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0230"+ - "\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231"+ - "\u0001\u0231\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232"+ - "\u0001\u0232\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233"+ - "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0234\u0001\u0234"+ - "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0224\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0226"+ + "\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0227"+ + "\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0228\u0001\u0228"+ + "\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0229\u0001\u0229"+ + "\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u022a\u0001\u022a\u0001\u022a"+ + "\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022b"+ + "\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b"+ + "\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022d"+ + "\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022e\u0001\u022e"+ + "\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e"+ + "\u0001\u022e\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f"+ + "\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u0230\u0001\u0230"+ + "\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0231\u0001\u0231\u0001\u0231"+ + "\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0232\u0001\u0232"+ + "\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0233\u0001\u0233"+ + "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233"+ + "\u0001\u0233\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0235\u0001\u0235\u0001\u0235"+ "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ - "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ - "\u0001\u0235\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0236\u0001\u0237"+ - "\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237"+ - "\u0001\u0237\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238"+ - "\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0239\u0001\u0239"+ + "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0236\u0001\u0236"+ + "\u0001\u0236\u0001\u0236\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237"+ + "\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0238\u0001\u0238"+ + "\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238"+ + "\u0001\u0238\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ - "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u023a"+ - "\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a"+ - "\u0001\u023a\u0001\u023a\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ + "\u0001\u0239\u0001\u0239\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a"+ + "\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023b"+ "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ - "\u0001\u023b\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023c"+ - "\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d"+ - "\u0001\u023d\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e"+ - "\u0001\u023e\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f"+ - "\u0001\u023f\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240"+ - "\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0241"+ - "\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241"+ + "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023c\u0001\u023c"+ + "\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023d\u0001\u023d\u0001\u023d"+ + "\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023e\u0001\u023e"+ + "\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023f\u0001\u023f"+ + "\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u0240\u0001\u0240"+ + "\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240"+ + "\u0001\u0240\u0001\u0240\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241"+ + "\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0242\u0001\u0242\u0001\u0242"+ "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242"+ - "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0243"+ + "\u0001\u0242\u0001\u0242\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ - "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0244\u0001\u0244"+ + "\u0001\u0243\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ - "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0245\u0001\u0245"+ - "\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0246\u0001\u0246"+ - "\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0247"+ - "\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247"+ - "\u0001\u0247\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248"+ - "\u0001\u0248\u0001\u0248\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249"+ + "\u0001\u0244\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245"+ + "\u0001\u0245\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246"+ + "\u0001\u0246\u0001\u0246\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247"+ + "\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0248\u0001\u0248"+ + "\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0249"+ "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249"+ - "\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024a"+ + "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u024a\u0001\u024a\u0001\u024a"+ + "\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024b\u0001\u024b\u0001\u024b"+ "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ - "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024c\u0001\u024c"+ - "\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c"+ + "\u0001\u024b\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c"+ + "\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024d\u0001\u024d\u0001\u024d"+ "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ - "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ - "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ + "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024e\u0001\u024e\u0001\u024e"+ "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ - "\u0001\u024e\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f"+ - "\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u0250"+ - "\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0251\u0001\u0251\u0001\u0251"+ + "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024f\u0001\u024f"+ + "\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f"+ + "\u0001\u024f\u0001\u024f\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0250"+ "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251"+ - "\u0001\u0251\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252"+ - "\u0001\u0252\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253"+ - "\u0001\u0253\u0001\u0253\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254"+ + "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0252\u0001\u0252"+ + "\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0253\u0001\u0253"+ + "\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0254"+ "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254"+ - "\u0001\u0254\u0001\u0254\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255"+ - "\u0001\u0255\u0001\u0255\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256"+ + "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0255"+ + "\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0256"+ "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256"+ - "\u0001\u0256\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257"+ + "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0257\u0001\u0257"+ "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257"+ - "\u0001\u0257\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258"+ + "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0258\u0001\u0258"+ "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258"+ - "\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u0259\u0001\u025a"+ - "\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a"+ - "\u0001\u025a\u0001\u025a\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b"+ + "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0259\u0001\u0259\u0001\u0259"+ + "\u0001\u0259\u0001\u0259\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a"+ + "\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025b"+ "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b"+ + "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025c\u0001\u025c\u0001\u025c"+ "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c"+ - "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025d\u0001\u025d"+ - "\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025e\u0001\u025e\u0001\u025e"+ - "\u0001\u025e\u0001\u025e\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f"+ - "\u0001\u025f\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0260"+ + "\u0001\u025c\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d"+ + "\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025f"+ + "\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u0260\u0001\u0260"+ + "\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0261\u0001\u0261\u0001\u0261"+ "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261"+ - "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0262\u0001\u0262"+ - "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ + "\u0001\u0261\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ + "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0263\u0001\u0263\u0001\u0263"+ "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ - "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0264\u0001\u0264"+ - "\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0265"+ - "\u0001\u0265\u0001\u0265\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266"+ - "\u0001\u0266\u0001\u0266\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0263\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264"+ + "\u0001\u0264\u0001\u0264\u0001\u0265\u0001\u0265\u0001\u0265\u0001\u0266"+ + "\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0267"+ "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0268\u0001\u0268\u0001\u0268"+ "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268"+ - "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0269\u0001\u0269\u0001\u0269"+ "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ - "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ - "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026b\u0001\u026b"+ + "\u0001\u026a\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ - "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026c\u0001\u026c\u0001\u026c"+ "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ - "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026d\u0001\u026d"+ - "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ - "\u0001\u026d\u0001\u026d\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026e"+ "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ - "\u0001\u026e\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ - "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u0270"+ + "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ - "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0271"+ - "\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0272"+ - "\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272"+ - "\u0001\u0272\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0270\u0001\u0270\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271"+ + "\u0001\u0271\u0001\u0271\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272"+ + "\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0273\u0001\u0273"+ "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ - "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0274"+ - "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ + "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ + "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0275\u0001\u0275\u0001\u0275"+ "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ - "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0276\u0001\u0276\u0001\u0276"+ - "\u0001\u0276\u0001\u0276\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277"+ - "\u0001\u0277\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ - "\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0279\u0001\u0279"+ - "\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ - "\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027a\u0001\u027b"+ - "\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b"+ - "\u0001\u027b\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c"+ - "\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027d"+ + "\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0277"+ + "\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ + "\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u027a\u0001\u027a\u0001\u027a"+ + "\u0001\u027a\u0001\u027a\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b"+ + "\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027c\u0001\u027c"+ + "\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c"+ + "\u0001\u027c\u0001\u027c\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ - "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027e"+ - "\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027f"+ + "\u0001\u027d\u0001\u027d\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e"+ + "\u0001\u027e\u0001\u027e\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ - "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u0280"+ - "\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0281"+ - "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ - "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282"+ - "\u0001\u0282\u0001\u0282\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ - "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0284"+ - "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ - "\u0001\u0284\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285"+ - "\u0001\u0285\u0001\u0285\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286"+ - "\u0001\u0286\u0001\u0286\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287"+ - "\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0288\u0001\u0288\u0001\u0288"+ - "\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0289\u0001\u0289\u0001\u0289"+ - "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u028a\u0001\u028a\u0001\u028a"+ - "\u0001\u028a\u0001\u028a\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u027f\u0001\u027f\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280"+ + "\u0001\u0280\u0001\u0280\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ + "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0282\u0001\u0282\u0001\u0282"+ + "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ + "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0285\u0001\u0285"+ + "\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0286"+ + "\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0287"+ + "\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287"+ + "\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288"+ + "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289"+ + "\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ - "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028c\u0001\u028c"+ + "\u0001\u028b\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ - "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028d\u0001\u028d\u0001\u028d"+ "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ - "\u0001\u028d\u0001\u028d\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ - "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028f\u0001\u028f\u0001\u028f"+ - "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u0290\u0001\u0290\u0001\u0290"+ - "\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0291\u0001\u0291"+ - "\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0292\u0001\u0292"+ - "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ - "\u0001\u0292\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293"+ - "\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0294"+ - "\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0295"+ - "\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295"+ - "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296"+ - "\u0001\u0296\u0001\u0296\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297"+ - "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0298"+ - "\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298"+ - "\u0001\u0298\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299"+ - "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u029a\u0001\u029a"+ - "\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a"+ - "\u0001\u029a\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b"+ - "\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029c\u0001\u029c\u0001\u029c"+ - "\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029d"+ - "\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029e\u0001\u029e"+ - "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ - "\u0001\u029e\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u029f"+ + "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f"+ + "\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290"+ + "\u0001\u0290\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291"+ + "\u0001\u0291\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ + "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0293\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294"+ + "\u0001\u0294\u0001\u0294\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295"+ + "\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0296\u0001\u0296\u0001\u0296"+ + "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298"+ + "\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a"+ + "\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029b\u0001\u029b"+ + "\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b"+ + "\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c"+ + "\u0001\u029c\u0001\u029c\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ + "\u0001\u029d\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029f\u0001\u029f"+ + "\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ - "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a1\u0001\u02a1\u0001\u02a1"+ - "\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1"+ "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ - "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a3\u0001\u02a3"+ - "\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a4"+ - "\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a5\u0001\u02a5"+ - "\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a6"+ - "\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ - "\u0001\u02a6\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a7"+ - "\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a8"+ - "\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02a9\u0001\u02aa"+ - "\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02ab\u0001\u02ab"+ - "\u0001\u02ab\u0001\u02ab\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac"+ - "\u0001\u02ac\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad"+ - "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ae"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3"+ + "\u0001\u02a3\u0001\u02a3\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4"+ + "\u0001\u02a4\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5"+ + "\u0001\u02a5\u0001\u02a5\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ + "\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a7\u0001\u02a7"+ + "\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a8\u0001\u02a8\u0001\u02a8"+ + "\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a9\u0001\u02a9\u0001\u02a9"+ + "\u0001\u02a9\u0001\u02a9\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa"+ + "\u0001\u02aa\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ac"+ + "\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ad\u0001\u02ad"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ "\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ - "\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02af"+ + "\u0001\u02ae\u0001\u02ae\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ "\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ - "\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02b0\u0001\u02b0"+ + "\u0001\u02af\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ - "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b1"+ - "\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1"+ - "\u0001\u02b1\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2"+ - "\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b3"+ - "\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b4"+ - "\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4"+ - "\u0001\u02b4\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b0\u0001\u02b0\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1"+ + "\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b2\u0001\u02b2"+ + "\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2"+ + "\u0001\u02b2\u0001\u02b2\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3"+ + "\u0001\u02b3\u0001\u02b3\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4"+ + "\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b5\u0001\u02b5"+ "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ - "\u0001\u02b5\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ - "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ - "\u0001\u02b7\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8"+ + "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b8\u0001\u02b8"+ "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8"+ - "\u0001\u02b8\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9"+ - "\u0001\u02b9\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba"+ - "\u0001\u02ba\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb"+ - "\u0001\u02bb\u0001\u02bb\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ + "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b9\u0001\u02b9"+ + "\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02ba\u0001\u02ba"+ + "\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02bb\u0001\u02bb"+ + "\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bc"+ "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ + "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ - "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02be\u0001\u02be"+ + "\u0001\u02bd\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ - "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02be\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ - "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ - "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c1\u0001\u02c1"+ - "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ - "\u0001\u02c1\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2"+ - "\u0001\u02c2\u0001\u02c2\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ - "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c4"+ - "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ - "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ - "\u0001\u02c5\u0001\u02c5\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ + "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c6"+ "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ - "\u0001\u02c6\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c7\u0001\u02c7"+ "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ - "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c9\u0001\u02c9"+ - "\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02ca"+ - "\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ - "\u0001\u02ca\u0001\u02ca\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ + "\u0001\u02c8\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9"+ + "\u0001\u02c9\u0001\u02c9\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ + "\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02cb"+ + "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ - "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cc\u0001\u02cc\u0001\u02cc"+ - "\u0001\u02cc\u0001\u02cc\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ + "\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cd"+ "\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ - "\u0001\u02cd\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce"+ - "\u0001\u02ce\u0001\u02ce\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ - "\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02cf\u0001\u02d0"+ - "\u0001\u02d0\u0001\u02d0\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ - "\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ + "\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0"+ + "\u0001\u02d0\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ + "\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ - "\u0001\u02d2\u0001\u02d2\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ - "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d4"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ + "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ "\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4"+ "\u0001\u02d4\u0001\u02d4\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ - "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d6\u0001\u02d6"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ - "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ - "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d7\u0001\u02d7"+ - "\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ - "\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d8\u0001\u02d8"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d7\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8"+ "\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d9\u0001\u02d9"+ - "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9"+ - "\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da"+ - "\u0001\u02da\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db"+ - "\u0001\u02db\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dc"+ - "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02de"+ - "\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de\u0001\u02de"+ - "\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02e0\u0001\u02e0"+ - "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ - "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ - "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e2\u0001\u02e2"+ - "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e3"+ - "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02da"+ + "\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02db"+ + "\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02dc\u0001\u02dc"+ + "\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dd\u0001\u02dd\u0001\u02dd"+ + "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02de\u0001\u02de"+ + "\u0001\u02de\u0001\u02de\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df"+ + "\u0001\u02df\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ + "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e3\u0001\u02e3"+ "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4"+ - "\u0001\u02e4\u0001\u02e4\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ - "\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e6"+ - "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6"+ + "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ + "\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ + "\u0001\u02e5\u0001\u02e5\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6"+ "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e7\u0001\u02e7"+ - "\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7"+ + "\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e8"+ "\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8"+ - "\u0001\u02e8\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ - "\u0001\u02e9\u0001\u02e9\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ - "\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02eb\u0001\u02eb\u0001\u02eb"+ - "\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02ec\u0001\u02ec"+ + "\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ + "\u0001\u02e9\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ + "\u0001\u02ea\u0001\u02ea\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02eb"+ + "\u0001\u02eb\u0001\u02eb\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec"+ "\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ed\u0001\u02ed"+ "\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed"+ + "\u0001\u02ed\u0001\u02ed\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ - "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ef\u0001\u02ef"+ - "\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef"+ - "\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02f0\u0001\u02f0"+ - "\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f1\u0001\u02f1\u0001\u02f1"+ - "\u0001\u02f1\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ - "\u0001\u02f2\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ - "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ - "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3"+ - "\u0001\u02f3\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4"+ + "\u0001\u02ee\u0001\u02ee\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef"+ + "\u0001\u02ef\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f1"+ + "\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f3"+ + "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f4\u0001\u02f4"+ + "\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f5"+ "\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5"+ - "\u0001\u02f5\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6"+ - "\u0001\u02f6\u0001\u02f6\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ - "\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f8\u0001\u02f8\u0001\u02f8"+ - "\u0001\u02f8\u0001\u02f8\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9"+ - "\u0001\u02f9\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fa"+ - "\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fb\u0001\u02fc"+ - "\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fd\u0001\u02fd"+ - "\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fe\u0001\u02fe"+ - "\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02ff\u0001\u02ff\u0001\u02ff"+ + "\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6"+ + "\u0001\u02f6\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ + "\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f9"+ + "\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02fa\u0001\u02fa"+ + "\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fb\u0001\u02fb\u0001\u02fb"+ + "\u0001\u02fb\u0001\u02fb\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc"+ + "\u0001\u02fc\u0001\u02fc\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd"+ + "\u0001\u02fd\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe"+ + "\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff"+ "\u0001\u02ff\u0001\u02ff\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300"+ - "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0301\u0001\u0301"+ - "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301"+ - "\u0001\u0301\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302"+ - "\u0001\u0302\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ - "\u0001\u0303\u0001\u0303\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ + "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0301"+ + "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0302"+ + "\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302"+ + "\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ + "\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ "\u0001\u0304\u0001\u0304\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305"+ "\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0306\u0001\u0306"+ - "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306"+ + "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0307"+ "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ "\u0001\u0307\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0309\u0001\u0309\u0001\u0309"+ "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u030a"+ "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a"+ - "\u0001\u030a\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030b"+ "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ - "\u0001\u030b\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c"+ - "\u0001\u030c\u0001\u030c\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d"+ - "\u0001\u030d\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e"+ + "\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030d"+ + "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d"+ + "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030e"+ "\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e"+ - "\u0001\u030e\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ + "\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ "\u0001\u030f\u0001\u030f\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310"+ - "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0311\u0001\u0311"+ + "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0311"+ + "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ "\u0001\u0311\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312"+ - "\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312"+ - "\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0313\u0001\u0313\u0001\u0313"+ - "\u0001\u0313\u0001\u0313\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0314"+ - "\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0315\u0001\u0315\u0001\u0315"+ - "\u0001\u0315\u0001\u0316\u0001\u0316\u0001\u0317\u0001\u0317\u0001\u0318"+ - "\u0001\u0318\u0001\u0318\u0001\u0319\u0001\u0319\u0001\u031a\u0001\u031a"+ + "\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313"+ + "\u0001\u0313\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0315"+ + "\u0001\u0315\u0001\u0316\u0001\u0316\u0001\u0317\u0001\u0317\u0001\u0317"+ + "\u0001\u0318\u0001\u0318\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u031a"+ "\u0001\u031a\u0001\u031b\u0001\u031b\u0001\u031c\u0001\u031c\u0001\u031d"+ - "\u0001\u031d\u0001\u031e\u0001\u031e\u0001\u031f\u0001\u031f\u0001\u0320"+ - "\u0001\u0320\u0001\u0320\u0005\u0320\u20f4\b\u0320\n\u0320\f\u0320\u20f7"+ - "\t\u0320\u0001\u0320\u0001\u0320\u0001\u0321\u0001\u0321\u0001\u0321\u0001"+ - "\u0322\u0003\u0322\u20ff\b\u0322\u0001\u0322\u0004\u0322\u2102\b\u0322"+ - "\u000b\u0322\f\u0322\u2103\u0001\u0322\u0001\u0322\u0004\u0322\u2108\b"+ - "\u0322\u000b\u0322\f\u0322\u2109\u0001\u0322\u0001\u0322\u0005\u0322\u210e"+ - "\b\u0322\n\u0322\f\u0322\u2111\t\u0322\u0001\u0322\u0004\u0322\u2114\b"+ - "\u0322\u000b\u0322\f\u0322\u2115\u0003\u0322\u2118\b\u0322\u0001\u0323"+ - "\u0003\u0323\u211b\b\u0323\u0001\u0323\u0004\u0323\u211e\b\u0323\u000b"+ - "\u0323\f\u0323\u211f\u0001\u0323\u0001\u0323\u0004\u0323\u2124\b\u0323"+ - "\u000b\u0323\f\u0323\u2125\u0003\u0323\u2128\b\u0323\u0001\u0324\u0001"+ - "\u0324\u0001\u0324\u0001\u0325\u0001\u0325\u0001\u0326\u0001\u0326\u0001"+ - "\u0327\u0001\u0327\u0001\u0328\u0001\u0328\u0005\u0328\u2135\b\u0328\n"+ - "\u0328\f\u0328\u2138\t\u0328\u0001\u0329\u0001\u0329\u0004\u0329\u213c"+ - "\b\u0329\u000b\u0329\f\u0329\u213d\u0001\u032a\u0001\u032a\u0005\u032a"+ - "\u2142\b\u032a\n\u032a\f\u032a\u2145\t\u032a\u0001\u032b\u0001\u032b\u0001"+ + "\u0001\u031d\u0001\u031e\u0001\u031e\u0001\u031f\u0001\u031f\u0001\u031f"+ + "\u0005\u031f\u20e7\b\u031f\n\u031f\f\u031f\u20ea\t\u031f\u0001\u031f\u0001"+ + "\u031f\u0001\u0320\u0001\u0320\u0001\u0320\u0001\u0321\u0003\u0321\u20f2"+ + "\b\u0321\u0001\u0321\u0004\u0321\u20f5\b\u0321\u000b\u0321\f\u0321\u20f6"+ + "\u0001\u0321\u0001\u0321\u0004\u0321\u20fb\b\u0321\u000b\u0321\f\u0321"+ + "\u20fc\u0001\u0321\u0001\u0321\u0005\u0321\u2101\b\u0321\n\u0321\f\u0321"+ + "\u2104\t\u0321\u0001\u0321\u0004\u0321\u2107\b\u0321\u000b\u0321\f\u0321"+ + "\u2108\u0003\u0321\u210b\b\u0321\u0001\u0322\u0003\u0322\u210e\b\u0322"+ + "\u0001\u0322\u0004\u0322\u2111\b\u0322\u000b\u0322\f\u0322\u2112\u0001"+ + "\u0322\u0001\u0322\u0004\u0322\u2117\b\u0322\u000b\u0322\f\u0322\u2118"+ + "\u0003\u0322\u211b\b\u0322\u0001\u0323\u0001\u0323\u0001\u0323\u0001\u0324"+ + "\u0001\u0324\u0001\u0325\u0001\u0325\u0001\u0326\u0001\u0326\u0001\u0327"+ + "\u0001\u0327\u0005\u0327\u2128\b\u0327\n\u0327\f\u0327\u212b\t\u0327\u0001"+ + "\u0328\u0001\u0328\u0004\u0328\u212f\b\u0328\u000b\u0328\f\u0328\u2130"+ + "\u0001\u0329\u0001\u0329\u0005\u0329\u2135\b\u0329\n\u0329\f\u0329\u2138"+ + "\t\u0329\u0001\u032a\u0001\u032a\u0001\u032b\u0001\u032b\u0001\u032b\u0001"+ "\u032c\u0001\u032c\u0001\u032c\u0001\u032d\u0001\u032d\u0001\u032d\u0001"+ - "\u032e\u0001\u032e\u0001\u032e\u0001\u032f\u0001\u032f\u0001\u032f\u0001"+ - "\u0330\u0001\u0330\u0001\u0331\u0001\u0331\u0001\u0332\u0001\u0332\u0001"+ - "\u0332\u0001\u0333\u0001\u0333\u0001\u0333\u0001\u0334\u0001\u0334\u0001"+ - "\u0335\u0001\u0335\u0001\u0336\u0001\u0336\u0001\u0336\u0001\u0337\u0001"+ + "\u032e\u0001\u032e\u0001\u032e\u0001\u032f\u0001\u032f\u0001\u0330\u0001"+ + "\u0330\u0001\u0331\u0001\u0331\u0001\u0331\u0001\u0332\u0001\u0332\u0001"+ + "\u0332\u0001\u0333\u0001\u0333\u0001\u0334\u0001\u0334\u0001\u0335\u0001"+ + "\u0335\u0001\u0335\u0001\u0336\u0001\u0336\u0001\u0337\u0001\u0337\u0001"+ "\u0337\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0339\u0001\u0339\u0001"+ - "\u0339\u0001\u033a\u0001\u033a\u0001\u033b\u0001\u033b\u0001\u033b\u0001"+ - "\u033c\u0001\u033c\u0001\u033c\u0001\u033d\u0001\u033d\u0001\u033d\u0001"+ + "\u033a\u0001\u033a\u0001\u033a\u0001\u033b\u0001\u033b\u0001\u033b\u0001"+ + "\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033d\u0001\u033d\u0001"+ "\u033d\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033f\u0001\u033f\u0001"+ - "\u033f\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0341\u0001"+ - "\u0341\u0001\u0341\u0001\u0341\u0001\u0342\u0001\u0342\u0001\u0343\u0001"+ + "\u033f\u0001\u033f\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001"+ + "\u0341\u0001\u0341\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0343\u0001"+ "\u0343\u0001\u0343\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0345\u0001"+ - "\u0345\u0001\u0345\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0347\u0001"+ + "\u0345\u0001\u0345\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0346\u0001"+ "\u0347\u0001\u0347\u0001\u0347\u0001\u0348\u0001\u0348\u0001\u0348\u0001"+ - "\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u034a\u0001\u034a\u0001"+ - "\u034a\u0001\u034a\u0001\u034b\u0001\u034b\u0001\u034c\u0001\u034c\u0001"+ - "\u034d\u0001\u034d\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034f\u0001"+ - "\u034f\u0001\u034f\u0001\u034f\u0001\u0350\u0001\u0350\u0001\u0350\u0001"+ - "\u0351\u0001\u0351\u0001\u0352\u0001\u0352\u0001\u0353\u0001\u0353\u0001"+ + "\u0348\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u034a\u0001"+ + "\u034a\u0001\u034b\u0001\u034b\u0001\u034c\u0001\u034c\u0001\u034d\u0001"+ + "\u034d\u0001\u034d\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001"+ + "\u034f\u0001\u034f\u0001\u034f\u0001\u0350\u0001\u0350\u0001\u0351\u0001"+ + "\u0351\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0353\u0001\u0353\u0001"+ "\u0353\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0355\u0001\u0355\u0001"+ - "\u0355\u0001\u0356\u0001\u0356\u0001\u0356\u0001\u0357\u0001\u0357\u0001"+ - "\u0358\u0001\u0358\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u035a\u0001"+ - "\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035b\u0001\u035b\u0001"+ - "\u035b\u0001\u035b\u0001\u035c\u0001\u035c\u0001\u035c\u0001\u035c\u0001"+ - "\u035c\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035e\u0001"+ - "\u035e\u0001\u035e\u0001\u035f\u0001\u035f\u0001\u035f\u0001\u0360\u0001"+ - "\u0360\u0002\u06d0\u06de\u0000\u0361\u0001\u0001\u0003\u0002\u0005\u0003"+ - "\u0007\u0000\t\u0000\u000b\u0000\r\u0000\u000f\u0000\u0011\u0000\u0013"+ - "\u0000\u0015\u0000\u0017\u0000\u0019\u0000\u001b\u0000\u001d\u0000\u001f"+ - "\u0000!\u0000#\u0000%\u0000\'\u0000)\u0000+\u0000-\u0000/\u00001\u0000"+ - "3\u00005\u00007\u00009\u0000;\u0000=\u0000?\u0000A\u0000C\u0000E\u0004"+ - "G\u0005I\u0006K\u0007M\bO\tQ\nS\u000bU\fW\rY\u000e[\u000f]\u0010_\u0011"+ - "a\u0012c\u0013e\u0014g\u0015i\u0016k\u0017m\u0018o\u0019q\u001as\u001b"+ - "u\u001cw\u001dy\u001e{\u001f} \u007f!\u0081\"\u0083#\u0085$\u0087%\u0089"+ - "&\u008b\'\u008d(\u008f)\u0091*\u0093+\u0095,\u0097-\u0099.\u009b/\u009d"+ - "0\u009f1\u00a12\u00a33\u00a54\u00a75\u00a96\u00ab7\u00ad8\u00af9\u00b1"+ - ":\u00b3;\u00b5<\u00b7=\u00b9>\u00bb?\u00bd@\u00bfA\u00c1B\u00c3C\u00c5"+ - "D\u00c7E\u00c9F\u00cbG\u00cdH\u00cfI\u00d1J\u00d3K\u00d5L\u00d7M\u00d9"+ - "N\u00dbO\u00ddP\u00dfQ\u00e1R\u00e3S\u00e5T\u00e7U\u00e9V\u00ebW\u00ed"+ - "X\u00efY\u00f1Z\u00f3[\u00f5\\\u00f7]\u00f9^\u00fb_\u00fd`\u00ffa\u0101"+ - "b\u0103c\u0105d\u0107e\u0109f\u010bg\u010dh\u010fi\u0111j\u0113k\u0115"+ - "l\u0117m\u0119n\u011bo\u011dp\u011fq\u0121r\u0123s\u0125t\u0127u\u0129"+ - "v\u012bw\u012dx\u012fy\u0131z\u0133{\u0135|\u0137}\u0139~\u013b\u007f"+ - "\u013d\u0080\u013f\u0081\u0141\u0082\u0143\u0083\u0145\u0084\u0147\u0085"+ - "\u0149\u0086\u014b\u0087\u014d\u0088\u014f\u0089\u0151\u008a\u0153\u008b"+ - "\u0155\u008c\u0157\u008d\u0159\u008e\u015b\u008f\u015d\u0090\u015f\u0091"+ - "\u0161\u0092\u0163\u0093\u0165\u0094\u0167\u0095\u0169\u0096\u016b\u0097"+ - "\u016d\u0098\u016f\u0099\u0171\u009a\u0173\u009b\u0175\u009c\u0177\u009d"+ - "\u0179\u009e\u017b\u009f\u017d\u00a0\u017f\u00a1\u0181\u00a2\u0183\u00a3"+ - "\u0185\u00a4\u0187\u00a5\u0189\u00a6\u018b\u00a7\u018d\u00a8\u018f\u00a9"+ - "\u0191\u00aa\u0193\u00ab\u0195\u00ac\u0197\u00ad\u0199\u00ae\u019b\u00af"+ - "\u019d\u00b0\u019f\u00b1\u01a1\u00b2\u01a3\u00b3\u01a5\u00b4\u01a7\u00b5"+ - "\u01a9\u00b6\u01ab\u00b7\u01ad\u00b8\u01af\u00b9\u01b1\u00ba\u01b3\u00bb"+ - "\u01b5\u00bc\u01b7\u00bd\u01b9\u00be\u01bb\u00bf\u01bd\u00c0\u01bf\u00c1"+ - "\u01c1\u00c2\u01c3\u00c3\u01c5\u00c4\u01c7\u00c5\u01c9\u00c6\u01cb\u00c7"+ - "\u01cd\u00c8\u01cf\u00c9\u01d1\u00ca\u01d3\u00cb\u01d5\u00cc\u01d7\u00cd"+ - "\u01d9\u00ce\u01db\u00cf\u01dd\u00d0\u01df\u00d1\u01e1\u00d2\u01e3\u00d3"+ - "\u01e5\u00d4\u01e7\u00d5\u01e9\u00d6\u01eb\u00d7\u01ed\u00d8\u01ef\u00d9"+ - "\u01f1\u00da\u01f3\u00db\u01f5\u00dc\u01f7\u00dd\u01f9\u00de\u01fb\u00df"+ - "\u01fd\u00e0\u01ff\u00e1\u0201\u00e2\u0203\u00e3\u0205\u00e4\u0207\u00e5"+ - "\u0209\u00e6\u020b\u00e7\u020d\u00e8\u020f\u00e9\u0211\u00ea\u0213\u00eb"+ - "\u0215\u00ec\u0217\u00ed\u0219\u00ee\u021b\u00ef\u021d\u00f0\u021f\u00f1"+ - "\u0221\u00f2\u0223\u00f3\u0225\u00f4\u0227\u00f5\u0229\u00f6\u022b\u00f7"+ - "\u022d\u00f8\u022f\u00f9\u0231\u00fa\u0233\u00fb\u0235\u00fc\u0237\u00fd"+ - "\u0239\u00fe\u023b\u00ff\u023d\u0100\u023f\u0101\u0241\u0102\u0243\u0103"+ - "\u0245\u0104\u0247\u0105\u0249\u0106\u024b\u0107\u024d\u0108\u024f\u0109"+ - "\u0251\u010a\u0253\u010b\u0255\u010c\u0257\u010d\u0259\u010e\u025b\u010f"+ - "\u025d\u0110\u025f\u0111\u0261\u0112\u0263\u0113\u0265\u0114\u0267\u0115"+ - "\u0269\u0116\u026b\u0117\u026d\u0118\u026f\u0119\u0271\u011a\u0273\u011b"+ - "\u0275\u011c\u0277\u011d\u0279\u011e\u027b\u011f\u027d\u0120\u027f\u0121"+ - "\u0281\u0122\u0283\u0123\u0285\u0124\u0287\u0125\u0289\u0126\u028b\u0127"+ - "\u028d\u0128\u028f\u0129\u0291\u012a\u0293\u012b\u0295\u012c\u0297\u012d"+ - "\u0299\u012e\u029b\u012f\u029d\u0130\u029f\u0131\u02a1\u0132\u02a3\u0133"+ - "\u02a5\u0134\u02a7\u0135\u02a9\u0136\u02ab\u0137\u02ad\u0138\u02af\u0139"+ - "\u02b1\u013a\u02b3\u013b\u02b5\u013c\u02b7\u013d\u02b9\u013e\u02bb\u013f"+ - "\u02bd\u0140\u02bf\u0141\u02c1\u0142\u02c3\u0143\u02c5\u0144\u02c7\u0145"+ - "\u02c9\u0146\u02cb\u0147\u02cd\u0148\u02cf\u0149\u02d1\u014a\u02d3\u014b"+ - "\u02d5\u014c\u02d7\u014d\u02d9\u014e\u02db\u014f\u02dd\u0150\u02df\u0151"+ - "\u02e1\u0152\u02e3\u0153\u02e5\u0154\u02e7\u0155\u02e9\u0156\u02eb\u0157"+ - "\u02ed\u0158\u02ef\u0159\u02f1\u015a\u02f3\u015b\u02f5\u015c\u02f7\u015d"+ - "\u02f9\u015e\u02fb\u015f\u02fd\u0160\u02ff\u0161\u0301\u0162\u0303\u0163"+ - "\u0305\u0164\u0307\u0165\u0309\u0166\u030b\u0167\u030d\u0168\u030f\u0169"+ - "\u0311\u016a\u0313\u016b\u0315\u016c\u0317\u016d\u0319\u016e\u031b\u016f"+ - "\u031d\u0170\u031f\u0171\u0321\u0172\u0323\u0173\u0325\u0174\u0327\u0175"+ - "\u0329\u0176\u032b\u0177\u032d\u0178\u032f\u0179\u0331\u017a\u0333\u017b"+ - "\u0335\u017c\u0337\u017d\u0339\u017e\u033b\u017f\u033d\u0180\u033f\u0181"+ - "\u0341\u0182\u0343\u0183\u0345\u0184\u0347\u0185\u0349\u0186\u034b\u0187"+ - "\u034d\u0188\u034f\u0189\u0351\u018a\u0353\u018b\u0355\u018c\u0357\u018d"+ - "\u0359\u018e\u035b\u018f\u035d\u0190\u035f\u0191\u0361\u0192\u0363\u0193"+ - "\u0365\u0194\u0367\u0195\u0369\u0196\u036b\u0197\u036d\u0198\u036f\u0199"+ - "\u0371\u019a\u0373\u019b\u0375\u019c\u0377\u019d\u0379\u019e\u037b\u019f"+ - "\u037d\u01a0\u037f\u01a1\u0381\u01a2\u0383\u01a3\u0385\u01a4\u0387\u01a5"+ - "\u0389\u01a6\u038b\u01a7\u038d\u01a8\u038f\u01a9\u0391\u01aa\u0393\u01ab"+ - "\u0395\u01ac\u0397\u01ad\u0399\u01ae\u039b\u01af\u039d\u01b0\u039f\u01b1"+ - "\u03a1\u01b2\u03a3\u01b3\u03a5\u01b4\u03a7\u01b5\u03a9\u01b6\u03ab\u01b7"+ - "\u03ad\u01b8\u03af\u01b9\u03b1\u01ba\u03b3\u01bb\u03b5\u01bc\u03b7\u01bd"+ - "\u03b9\u01be\u03bb\u01bf\u03bd\u01c0\u03bf\u01c1\u03c1\u01c2\u03c3\u01c3"+ - "\u03c5\u01c4\u03c7\u01c5\u03c9\u01c6\u03cb\u01c7\u03cd\u01c8\u03cf\u01c9"+ - "\u03d1\u01ca\u03d3\u01cb\u03d5\u01cc\u03d7\u01cd\u03d9\u01ce\u03db\u01cf"+ - "\u03dd\u01d0\u03df\u01d1\u03e1\u01d2\u03e3\u01d3\u03e5\u01d4\u03e7\u01d5"+ - "\u03e9\u01d6\u03eb\u01d7\u03ed\u01d8\u03ef\u01d9\u03f1\u01da\u03f3\u01db"+ - "\u03f5\u01dc\u03f7\u01dd\u03f9\u01de\u03fb\u01df\u03fd\u01e0\u03ff\u01e1"+ - "\u0401\u01e2\u0403\u01e3\u0405\u01e4\u0407\u01e5\u0409\u01e6\u040b\u01e7"+ - "\u040d\u01e8\u040f\u01e9\u0411\u01ea\u0413\u01eb\u0415\u01ec\u0417\u01ed"+ - "\u0419\u01ee\u041b\u01ef\u041d\u01f0\u041f\u01f1\u0421\u01f2\u0423\u01f3"+ - "\u0425\u01f4\u0427\u01f5\u0429\u01f6\u042b\u01f7\u042d\u01f8\u042f\u01f9"+ - "\u0431\u01fa\u0433\u01fb\u0435\u01fc\u0437\u01fd\u0439\u01fe\u043b\u01ff"+ - "\u043d\u0200\u043f\u0201\u0441\u0202\u0443\u0203\u0445\u0204\u0447\u0205"+ - "\u0449\u0206\u044b\u0207\u044d\u0208\u044f\u0209\u0451\u020a\u0453\u020b"+ - "\u0455\u020c\u0457\u020d\u0459\u020e\u045b\u020f\u045d\u0210\u045f\u0211"+ - "\u0461\u0212\u0463\u0213\u0465\u0214\u0467\u0215\u0469\u0216\u046b\u0217"+ - "\u046d\u0218\u046f\u0219\u0471\u021a\u0473\u021b\u0475\u021c\u0477\u021d"+ - "\u0479\u021e\u047b\u021f\u047d\u0220\u047f\u0221\u0481\u0222\u0483\u0223"+ - "\u0485\u0224\u0487\u0225\u0489\u0226\u048b\u0227\u048d\u0228\u048f\u0229"+ - "\u0491\u022a\u0493\u022b\u0495\u022c\u0497\u022d\u0499\u022e\u049b\u022f"+ - "\u049d\u0230\u049f\u0231\u04a1\u0232\u04a3\u0233\u04a5\u0234\u04a7\u0235"+ - "\u04a9\u0236\u04ab\u0237\u04ad\u0238\u04af\u0239\u04b1\u023a\u04b3\u023b"+ - "\u04b5\u023c\u04b7\u023d\u04b9\u023e\u04bb\u023f\u04bd\u0240\u04bf\u0241"+ - "\u04c1\u0242\u04c3\u0243\u04c5\u0244\u04c7\u0245\u04c9\u0246\u04cb\u0247"+ - "\u04cd\u0248\u04cf\u0249\u04d1\u024a\u04d3\u024b\u04d5\u024c\u04d7\u024d"+ - "\u04d9\u024e\u04db\u024f\u04dd\u0250\u04df\u0251\u04e1\u0252\u04e3\u0253"+ - "\u04e5\u0254\u04e7\u0255\u04e9\u0256\u04eb\u0257\u04ed\u0258\u04ef\u0259"+ - "\u04f1\u025a\u04f3\u025b\u04f5\u025c\u04f7\u025d\u04f9\u025e\u04fb\u025f"+ - "\u04fd\u0260\u04ff\u0261\u0501\u0262\u0503\u0263\u0505\u0264\u0507\u0265"+ - "\u0509\u0266\u050b\u0267\u050d\u0268\u050f\u0269\u0511\u026a\u0513\u026b"+ - "\u0515\u026c\u0517\u026d\u0519\u026e\u051b\u026f\u051d\u0270\u051f\u0271"+ - "\u0521\u0272\u0523\u0273\u0525\u0274\u0527\u0275\u0529\u0276\u052b\u0277"+ - "\u052d\u0278\u052f\u0279\u0531\u027a\u0533\u027b\u0535\u027c\u0537\u027d"+ - "\u0539\u027e\u053b\u027f\u053d\u0280\u053f\u0281\u0541\u0282\u0543\u0283"+ - "\u0545\u0284\u0547\u0285\u0549\u0286\u054b\u0287\u054d\u0288\u054f\u0289"+ - "\u0551\u028a\u0553\u028b\u0555\u028c\u0557\u028d\u0559\u028e\u055b\u028f"+ - "\u055d\u0290\u055f\u0291\u0561\u0292\u0563\u0293\u0565\u0294\u0567\u0295"+ - "\u0569\u0296\u056b\u0297\u056d\u0298\u056f\u0299\u0571\u029a\u0573\u029b"+ - "\u0575\u029c\u0577\u029d\u0579\u029e\u057b\u029f\u057d\u02a0\u057f\u02a1"+ - "\u0581\u02a2\u0583\u02a3\u0585\u02a4\u0587\u02a5\u0589\u02a6\u058b\u02a7"+ - "\u058d\u02a8\u058f\u02a9\u0591\u02aa\u0593\u02ab\u0595\u02ac\u0597\u02ad"+ - "\u0599\u02ae\u059b\u02af\u059d\u02b0\u059f\u02b1\u05a1\u02b2\u05a3\u02b3"+ - "\u05a5\u02b4\u05a7\u02b5\u05a9\u02b6\u05ab\u02b7\u05ad\u02b8\u05af\u02b9"+ - "\u05b1\u02ba\u05b3\u02bb\u05b5\u02bc\u05b7\u02bd\u05b9\u02be\u05bb\u02bf"+ - "\u05bd\u02c0\u05bf\u02c1\u05c1\u02c2\u05c3\u02c3\u05c5\u02c4\u05c7\u02c5"+ - "\u05c9\u02c6\u05cb\u02c7\u05cd\u02c8\u05cf\u02c9\u05d1\u02ca\u05d3\u02cb"+ - "\u05d5\u02cc\u05d7\u02cd\u05d9\u02ce\u05db\u02cf\u05dd\u02d0\u05df\u02d1"+ - "\u05e1\u02d2\u05e3\u02d3\u05e5\u02d4\u05e7\u02d5\u05e9\u02d6\u05eb\u02d7"+ - "\u05ed\u02d8\u05ef\u02d9\u05f1\u02da\u05f3\u02db\u05f5\u02dc\u05f7\u02dd"+ - "\u05f9\u02de\u05fb\u02df\u05fd\u02e0\u05ff\u02e1\u0601\u02e2\u0603\u02e3"+ - "\u0605\u02e4\u0607\u02e5\u0609\u02e6\u060b\u02e7\u060d\u02e8\u060f\u02e9"+ - "\u0611\u02ea\u0613\u02eb\u0615\u02ec\u0617\u02ed\u0619\u02ee\u061b\u02ef"+ - "\u061d\u02f0\u061f\u02f1\u0621\u02f2\u0623\u02f3\u0625\u02f4\u0627\u02f5"+ - "\u0629\u02f6\u062b\u02f7\u062d\u02f8\u062f\u02f9\u0631\u02fa\u0633\u02fb"+ - "\u0635\u02fc\u0637\u02fd\u0639\u02fe\u063b\u02ff\u063d\u0300\u063f\u0301"+ - "\u0641\u0302\u0643\u0303\u0645\u0304\u0647\u0305\u0649\u0306\u064b\u0307"+ - "\u064d\u0308\u064f\u0309\u0651\u030a\u0653\u030b\u0655\u030c\u0657\u030d"+ - "\u0659\u030e\u065b\u030f\u065d\u0310\u065f\u0311\u0661\u0312\u0663\u0313"+ - "\u0665\u0314\u0667\u0315\u0669\u0316\u066b\u0317\u066d\u0318\u066f\u0319"+ - "\u0671\u031a\u0673\u031b\u0675\u031c\u0677\u031d\u0679\u031e\u067b\u031f"+ - "\u067d\u0320\u067f\u0321\u0681\u0322\u0683\u0323\u0685\u0324\u0687\u0325"+ - "\u0689\u0326\u068b\u0327\u068d\u0328\u068f\u0329\u0691\u032a\u0693\u032b"+ - "\u0695\u032c\u0697\u032d\u0699\u032e\u069b\u032f\u069d\u0330\u069f\u0331"+ - "\u06a1\u0332\u06a3\u0333\u06a5\u0334\u06a7\u0335\u06a9\u0336\u06ab\u0337"+ - "\u06ad\u0338\u06af\u0339\u06b1\u033a\u06b3\u033b\u06b5\u033c\u06b7\u033d"+ - "\u06b9\u033e\u06bb\u033f\u06bd\u0340\u06bf\u0341\u06c1\u0342\u0001\u0000"+ - "$\u0003\u0000\t\n\r\r \u0002\u0000AAaa\u0002\u0000BBbb\u0002\u0000CC"+ - "cc\u0002\u0000DDdd\u0002\u0000EEee\u0002\u0000FFff\u0002\u0000GGgg\u0002"+ - "\u0000HHhh\u0002\u0000IIii\u0002\u0000JJjj\u0002\u0000KKkk\u0002\u0000"+ - "LLll\u0002\u0000MMmm\u0002\u0000NNnn\u0002\u0000OOoo\u0002\u0000PPpp\u0002"+ - "\u0000QQqq\u0002\u0000RRrr\u0002\u0000SSss\u0002\u0000TTtt\u0002\u0000"+ - "UUuu\u0002\u0000VVvv\u0002\u0000WWww\u0002\u0000XXxx\u0002\u0000YYyy\u0002"+ - "\u0000ZZzz\u0002\u000009AF\u0001\u000009\u0002\u0000\"\"\\\\\u0002\u0000"+ - "\'\'\\\\\u0002\u0000\\\\``\u0003\u0000AZ__az\u0005\u0000$$09AZ__az\u0004"+ - "\u0000AZ__az\u00a1\u8000\uffff\u0006\u0000$$09AZ__az\u00a1\u8000\uffff"+ - "\u21df\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000"+ - "\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000"+ - "\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K"+ - "\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000"+ - "\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000"+ - "\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y"+ - "\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000"+ - "\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000"+ - "\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000\u0000g"+ - "\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k\u0001\u0000"+ - "\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000\u0000\u0000"+ - "\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000\u0000u"+ - "\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000\u0000\u0000y\u0001\u0000"+ - "\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000\u0000\u0000"+ - "\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000\u0000\u0000"+ - "\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000\u0000\u0000"+ - "\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000\u0000\u0000"+ - "\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000\u0000\u0000"+ - "\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000\u0000\u0000"+ - "\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095\u0001\u0000\u0000\u0000"+ - "\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099\u0001\u0000\u0000\u0000"+ - "\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000\u0000\u0000"+ - "\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1\u0001\u0000\u0000\u0000"+ - "\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000\u0000\u0000"+ - "\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000\u0000\u0000"+ - "\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000\u0000\u0000"+ - "\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1\u0001\u0000\u0000\u0000"+ - "\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000\u0000\u0000"+ - "\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9\u0001\u0000\u0000\u0000"+ - "\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000\u0000\u0000"+ - "\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000\u0000\u0000"+ - "\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000\u0000\u0000"+ - "\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000\u0000\u0000"+ - "\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000\u0000\u0000"+ - "\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000\u0000\u0000"+ - "\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000\u0000\u0000"+ - "\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000\u0000\u0000"+ - "\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000\u0000\u0000"+ - "\u0000\u00df\u0001\u0000\u0000\u0000\u0000\u00e1\u0001\u0000\u0000\u0000"+ - "\u0000\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5\u0001\u0000\u0000\u0000"+ - "\u0000\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9\u0001\u0000\u0000\u0000"+ - "\u0000\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed\u0001\u0000\u0000\u0000"+ - "\u0000\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1\u0001\u0000\u0000\u0000"+ - "\u0000\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5\u0001\u0000\u0000\u0000"+ - "\u0000\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9\u0001\u0000\u0000\u0000"+ - "\u0000\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd\u0001\u0000\u0000\u0000"+ - "\u0000\u00ff\u0001\u0000\u0000\u0000\u0000\u0101\u0001\u0000\u0000\u0000"+ - "\u0000\u0103\u0001\u0000\u0000\u0000\u0000\u0105\u0001\u0000\u0000\u0000"+ - "\u0000\u0107\u0001\u0000\u0000\u0000\u0000\u0109\u0001\u0000\u0000\u0000"+ - "\u0000\u010b\u0001\u0000\u0000\u0000\u0000\u010d\u0001\u0000\u0000\u0000"+ - "\u0000\u010f\u0001\u0000\u0000\u0000\u0000\u0111\u0001\u0000\u0000\u0000"+ - "\u0000\u0113\u0001\u0000\u0000\u0000\u0000\u0115\u0001\u0000\u0000\u0000"+ - "\u0000\u0117\u0001\u0000\u0000\u0000\u0000\u0119\u0001\u0000\u0000\u0000"+ - "\u0000\u011b\u0001\u0000\u0000\u0000\u0000\u011d\u0001\u0000\u0000\u0000"+ - "\u0000\u011f\u0001\u0000\u0000\u0000\u0000\u0121\u0001\u0000\u0000\u0000"+ - "\u0000\u0123\u0001\u0000\u0000\u0000\u0000\u0125\u0001\u0000\u0000\u0000"+ - "\u0000\u0127\u0001\u0000\u0000\u0000\u0000\u0129\u0001\u0000\u0000\u0000"+ - "\u0000\u012b\u0001\u0000\u0000\u0000\u0000\u012d\u0001\u0000\u0000\u0000"+ - "\u0000\u012f\u0001\u0000\u0000\u0000\u0000\u0131\u0001\u0000\u0000\u0000"+ - "\u0000\u0133\u0001\u0000\u0000\u0000\u0000\u0135\u0001\u0000\u0000\u0000"+ - "\u0000\u0137\u0001\u0000\u0000\u0000\u0000\u0139\u0001\u0000\u0000\u0000"+ - "\u0000\u013b\u0001\u0000\u0000\u0000\u0000\u013d\u0001\u0000\u0000\u0000"+ - "\u0000\u013f\u0001\u0000\u0000\u0000\u0000\u0141\u0001\u0000\u0000\u0000"+ - "\u0000\u0143\u0001\u0000\u0000\u0000\u0000\u0145\u0001\u0000\u0000\u0000"+ - "\u0000\u0147\u0001\u0000\u0000\u0000\u0000\u0149\u0001\u0000\u0000\u0000"+ - "\u0000\u014b\u0001\u0000\u0000\u0000\u0000\u014d\u0001\u0000\u0000\u0000"+ - "\u0000\u014f\u0001\u0000\u0000\u0000\u0000\u0151\u0001\u0000\u0000\u0000"+ - "\u0000\u0153\u0001\u0000\u0000\u0000\u0000\u0155\u0001\u0000\u0000\u0000"+ - "\u0000\u0157\u0001\u0000\u0000\u0000\u0000\u0159\u0001\u0000\u0000\u0000"+ - "\u0000\u015b\u0001\u0000\u0000\u0000\u0000\u015d\u0001\u0000\u0000\u0000"+ - "\u0000\u015f\u0001\u0000\u0000\u0000\u0000\u0161\u0001\u0000\u0000\u0000"+ - "\u0000\u0163\u0001\u0000\u0000\u0000\u0000\u0165\u0001\u0000\u0000\u0000"+ - "\u0000\u0167\u0001\u0000\u0000\u0000\u0000\u0169\u0001\u0000\u0000\u0000"+ - "\u0000\u016b\u0001\u0000\u0000\u0000\u0000\u016d\u0001\u0000\u0000\u0000"+ - "\u0000\u016f\u0001\u0000\u0000\u0000\u0000\u0171\u0001\u0000\u0000\u0000"+ - "\u0000\u0173\u0001\u0000\u0000\u0000\u0000\u0175\u0001\u0000\u0000\u0000"+ - "\u0000\u0177\u0001\u0000\u0000\u0000\u0000\u0179\u0001\u0000\u0000\u0000"+ - "\u0000\u017b\u0001\u0000\u0000\u0000\u0000\u017d\u0001\u0000\u0000\u0000"+ - "\u0000\u017f\u0001\u0000\u0000\u0000\u0000\u0181\u0001\u0000\u0000\u0000"+ - "\u0000\u0183\u0001\u0000\u0000\u0000\u0000\u0185\u0001\u0000\u0000\u0000"+ - "\u0000\u0187\u0001\u0000\u0000\u0000\u0000\u0189\u0001\u0000\u0000\u0000"+ - "\u0000\u018b\u0001\u0000\u0000\u0000\u0000\u018d\u0001\u0000\u0000\u0000"+ - "\u0000\u018f\u0001\u0000\u0000\u0000\u0000\u0191\u0001\u0000\u0000\u0000"+ - "\u0000\u0193\u0001\u0000\u0000\u0000\u0000\u0195\u0001\u0000\u0000\u0000"+ - "\u0000\u0197\u0001\u0000\u0000\u0000\u0000\u0199\u0001\u0000\u0000\u0000"+ - "\u0000\u019b\u0001\u0000\u0000\u0000\u0000\u019d\u0001\u0000\u0000\u0000"+ - "\u0000\u019f\u0001\u0000\u0000\u0000\u0000\u01a1\u0001\u0000\u0000\u0000"+ - "\u0000\u01a3\u0001\u0000\u0000\u0000\u0000\u01a5\u0001\u0000\u0000\u0000"+ - "\u0000\u01a7\u0001\u0000\u0000\u0000\u0000\u01a9\u0001\u0000\u0000\u0000"+ - "\u0000\u01ab\u0001\u0000\u0000\u0000\u0000\u01ad\u0001\u0000\u0000\u0000"+ - "\u0000\u01af\u0001\u0000\u0000\u0000\u0000\u01b1\u0001\u0000\u0000\u0000"+ - "\u0000\u01b3\u0001\u0000\u0000\u0000\u0000\u01b5\u0001\u0000\u0000\u0000"+ - "\u0000\u01b7\u0001\u0000\u0000\u0000\u0000\u01b9\u0001\u0000\u0000\u0000"+ - "\u0000\u01bb\u0001\u0000\u0000\u0000\u0000\u01bd\u0001\u0000\u0000\u0000"+ - "\u0000\u01bf\u0001\u0000\u0000\u0000\u0000\u01c1\u0001\u0000\u0000\u0000"+ - "\u0000\u01c3\u0001\u0000\u0000\u0000\u0000\u01c5\u0001\u0000\u0000\u0000"+ - "\u0000\u01c7\u0001\u0000\u0000\u0000\u0000\u01c9\u0001\u0000\u0000\u0000"+ - "\u0000\u01cb\u0001\u0000\u0000\u0000\u0000\u01cd\u0001\u0000\u0000\u0000"+ - "\u0000\u01cf\u0001\u0000\u0000\u0000\u0000\u01d1\u0001\u0000\u0000\u0000"+ - "\u0000\u01d3\u0001\u0000\u0000\u0000\u0000\u01d5\u0001\u0000\u0000\u0000"+ - "\u0000\u01d7\u0001\u0000\u0000\u0000\u0000\u01d9\u0001\u0000\u0000\u0000"+ - "\u0000\u01db\u0001\u0000\u0000\u0000\u0000\u01dd\u0001\u0000\u0000\u0000"+ - "\u0000\u01df\u0001\u0000\u0000\u0000\u0000\u01e1\u0001\u0000\u0000\u0000"+ - "\u0000\u01e3\u0001\u0000\u0000\u0000\u0000\u01e5\u0001\u0000\u0000\u0000"+ - "\u0000\u01e7\u0001\u0000\u0000\u0000\u0000\u01e9\u0001\u0000\u0000\u0000"+ - "\u0000\u01eb\u0001\u0000\u0000\u0000\u0000\u01ed\u0001\u0000\u0000\u0000"+ - "\u0000\u01ef\u0001\u0000\u0000\u0000\u0000\u01f1\u0001\u0000\u0000\u0000"+ - "\u0000\u01f3\u0001\u0000\u0000\u0000\u0000\u01f5\u0001\u0000\u0000\u0000"+ - "\u0000\u01f7\u0001\u0000\u0000\u0000\u0000\u01f9\u0001\u0000\u0000\u0000"+ - "\u0000\u01fb\u0001\u0000\u0000\u0000\u0000\u01fd\u0001\u0000\u0000\u0000"+ - "\u0000\u01ff\u0001\u0000\u0000\u0000\u0000\u0201\u0001\u0000\u0000\u0000"+ - "\u0000\u0203\u0001\u0000\u0000\u0000\u0000\u0205\u0001\u0000\u0000\u0000"+ - "\u0000\u0207\u0001\u0000\u0000\u0000\u0000\u0209\u0001\u0000\u0000\u0000"+ - "\u0000\u020b\u0001\u0000\u0000\u0000\u0000\u020d\u0001\u0000\u0000\u0000"+ - "\u0000\u020f\u0001\u0000\u0000\u0000\u0000\u0211\u0001\u0000\u0000\u0000"+ - "\u0000\u0213\u0001\u0000\u0000\u0000\u0000\u0215\u0001\u0000\u0000\u0000"+ - "\u0000\u0217\u0001\u0000\u0000\u0000\u0000\u0219\u0001\u0000\u0000\u0000"+ - "\u0000\u021b\u0001\u0000\u0000\u0000\u0000\u021d\u0001\u0000\u0000\u0000"+ - "\u0000\u021f\u0001\u0000\u0000\u0000\u0000\u0221\u0001\u0000\u0000\u0000"+ - "\u0000\u0223\u0001\u0000\u0000\u0000\u0000\u0225\u0001\u0000\u0000\u0000"+ - "\u0000\u0227\u0001\u0000\u0000\u0000\u0000\u0229\u0001\u0000\u0000\u0000"+ - "\u0000\u022b\u0001\u0000\u0000\u0000\u0000\u022d\u0001\u0000\u0000\u0000"+ - "\u0000\u022f\u0001\u0000\u0000\u0000\u0000\u0231\u0001\u0000\u0000\u0000"+ - "\u0000\u0233\u0001\u0000\u0000\u0000\u0000\u0235\u0001\u0000\u0000\u0000"+ - "\u0000\u0237\u0001\u0000\u0000\u0000\u0000\u0239\u0001\u0000\u0000\u0000"+ - "\u0000\u023b\u0001\u0000\u0000\u0000\u0000\u023d\u0001\u0000\u0000\u0000"+ - "\u0000\u023f\u0001\u0000\u0000\u0000\u0000\u0241\u0001\u0000\u0000\u0000"+ - "\u0000\u0243\u0001\u0000\u0000\u0000\u0000\u0245\u0001\u0000\u0000\u0000"+ - "\u0000\u0247\u0001\u0000\u0000\u0000\u0000\u0249\u0001\u0000\u0000\u0000"+ - "\u0000\u024b\u0001\u0000\u0000\u0000\u0000\u024d\u0001\u0000\u0000\u0000"+ - "\u0000\u024f\u0001\u0000\u0000\u0000\u0000\u0251\u0001\u0000\u0000\u0000"+ - "\u0000\u0253\u0001\u0000\u0000\u0000\u0000\u0255\u0001\u0000\u0000\u0000"+ - "\u0000\u0257\u0001\u0000\u0000\u0000\u0000\u0259\u0001\u0000\u0000\u0000"+ - "\u0000\u025b\u0001\u0000\u0000\u0000\u0000\u025d\u0001\u0000\u0000\u0000"+ - "\u0000\u025f\u0001\u0000\u0000\u0000\u0000\u0261\u0001\u0000\u0000\u0000"+ - "\u0000\u0263\u0001\u0000\u0000\u0000\u0000\u0265\u0001\u0000\u0000\u0000"+ - "\u0000\u0267\u0001\u0000\u0000\u0000\u0000\u0269\u0001\u0000\u0000\u0000"+ - "\u0000\u026b\u0001\u0000\u0000\u0000\u0000\u026d\u0001\u0000\u0000\u0000"+ - "\u0000\u026f\u0001\u0000\u0000\u0000\u0000\u0271\u0001\u0000\u0000\u0000"+ - "\u0000\u0273\u0001\u0000\u0000\u0000\u0000\u0275\u0001\u0000\u0000\u0000"+ - "\u0000\u0277\u0001\u0000\u0000\u0000\u0000\u0279\u0001\u0000\u0000\u0000"+ - "\u0000\u027b\u0001\u0000\u0000\u0000\u0000\u027d\u0001\u0000\u0000\u0000"+ - "\u0000\u027f\u0001\u0000\u0000\u0000\u0000\u0281\u0001\u0000\u0000\u0000"+ - "\u0000\u0283\u0001\u0000\u0000\u0000\u0000\u0285\u0001\u0000\u0000\u0000"+ - "\u0000\u0287\u0001\u0000\u0000\u0000\u0000\u0289\u0001\u0000\u0000\u0000"+ - "\u0000\u028b\u0001\u0000\u0000\u0000\u0000\u028d\u0001\u0000\u0000\u0000"+ - "\u0000\u028f\u0001\u0000\u0000\u0000\u0000\u0291\u0001\u0000\u0000\u0000"+ - "\u0000\u0293\u0001\u0000\u0000\u0000\u0000\u0295\u0001\u0000\u0000\u0000"+ - "\u0000\u0297\u0001\u0000\u0000\u0000\u0000\u0299\u0001\u0000\u0000\u0000"+ - "\u0000\u029b\u0001\u0000\u0000\u0000\u0000\u029d\u0001\u0000\u0000\u0000"+ - "\u0000\u029f\u0001\u0000\u0000\u0000\u0000\u02a1\u0001\u0000\u0000\u0000"+ - "\u0000\u02a3\u0001\u0000\u0000\u0000\u0000\u02a5\u0001\u0000\u0000\u0000"+ - "\u0000\u02a7\u0001\u0000\u0000\u0000\u0000\u02a9\u0001\u0000\u0000\u0000"+ - "\u0000\u02ab\u0001\u0000\u0000\u0000\u0000\u02ad\u0001\u0000\u0000\u0000"+ - "\u0000\u02af\u0001\u0000\u0000\u0000\u0000\u02b1\u0001\u0000\u0000\u0000"+ - "\u0000\u02b3\u0001\u0000\u0000\u0000\u0000\u02b5\u0001\u0000\u0000\u0000"+ - "\u0000\u02b7\u0001\u0000\u0000\u0000\u0000\u02b9\u0001\u0000\u0000\u0000"+ - "\u0000\u02bb\u0001\u0000\u0000\u0000\u0000\u02bd\u0001\u0000\u0000\u0000"+ - "\u0000\u02bf\u0001\u0000\u0000\u0000\u0000\u02c1\u0001\u0000\u0000\u0000"+ - "\u0000\u02c3\u0001\u0000\u0000\u0000\u0000\u02c5\u0001\u0000\u0000\u0000"+ - "\u0000\u02c7\u0001\u0000\u0000\u0000\u0000\u02c9\u0001\u0000\u0000\u0000"+ - "\u0000\u02cb\u0001\u0000\u0000\u0000\u0000\u02cd\u0001\u0000\u0000\u0000"+ - "\u0000\u02cf\u0001\u0000\u0000\u0000\u0000\u02d1\u0001\u0000\u0000\u0000"+ - "\u0000\u02d3\u0001\u0000\u0000\u0000\u0000\u02d5\u0001\u0000\u0000\u0000"+ - "\u0000\u02d7\u0001\u0000\u0000\u0000\u0000\u02d9\u0001\u0000\u0000\u0000"+ - "\u0000\u02db\u0001\u0000\u0000\u0000\u0000\u02dd\u0001\u0000\u0000\u0000"+ - "\u0000\u02df\u0001\u0000\u0000\u0000\u0000\u02e1\u0001\u0000\u0000\u0000"+ - "\u0000\u02e3\u0001\u0000\u0000\u0000\u0000\u02e5\u0001\u0000\u0000\u0000"+ - "\u0000\u02e7\u0001\u0000\u0000\u0000\u0000\u02e9\u0001\u0000\u0000\u0000"+ - "\u0000\u02eb\u0001\u0000\u0000\u0000\u0000\u02ed\u0001\u0000\u0000\u0000"+ - "\u0000\u02ef\u0001\u0000\u0000\u0000\u0000\u02f1\u0001\u0000\u0000\u0000"+ - "\u0000\u02f3\u0001\u0000\u0000\u0000\u0000\u02f5\u0001\u0000\u0000\u0000"+ - "\u0000\u02f7\u0001\u0000\u0000\u0000\u0000\u02f9\u0001\u0000\u0000\u0000"+ - "\u0000\u02fb\u0001\u0000\u0000\u0000\u0000\u02fd\u0001\u0000\u0000\u0000"+ - "\u0000\u02ff\u0001\u0000\u0000\u0000\u0000\u0301\u0001\u0000\u0000\u0000"+ - "\u0000\u0303\u0001\u0000\u0000\u0000\u0000\u0305\u0001\u0000\u0000\u0000"+ - "\u0000\u0307\u0001\u0000\u0000\u0000\u0000\u0309\u0001\u0000\u0000\u0000"+ - "\u0000\u030b\u0001\u0000\u0000\u0000\u0000\u030d\u0001\u0000\u0000\u0000"+ - "\u0000\u030f\u0001\u0000\u0000\u0000\u0000\u0311\u0001\u0000\u0000\u0000"+ - "\u0000\u0313\u0001\u0000\u0000\u0000\u0000\u0315\u0001\u0000\u0000\u0000"+ - "\u0000\u0317\u0001\u0000\u0000\u0000\u0000\u0319\u0001\u0000\u0000\u0000"+ - "\u0000\u031b\u0001\u0000\u0000\u0000\u0000\u031d\u0001\u0000\u0000\u0000"+ - "\u0000\u031f\u0001\u0000\u0000\u0000\u0000\u0321\u0001\u0000\u0000\u0000"+ - "\u0000\u0323\u0001\u0000\u0000\u0000\u0000\u0325\u0001\u0000\u0000\u0000"+ - "\u0000\u0327\u0001\u0000\u0000\u0000\u0000\u0329\u0001\u0000\u0000\u0000"+ - "\u0000\u032b\u0001\u0000\u0000\u0000\u0000\u032d\u0001\u0000\u0000\u0000"+ - "\u0000\u032f\u0001\u0000\u0000\u0000\u0000\u0331\u0001\u0000\u0000\u0000"+ - "\u0000\u0333\u0001\u0000\u0000\u0000\u0000\u0335\u0001\u0000\u0000\u0000"+ - "\u0000\u0337\u0001\u0000\u0000\u0000\u0000\u0339\u0001\u0000\u0000\u0000"+ - "\u0000\u033b\u0001\u0000\u0000\u0000\u0000\u033d\u0001\u0000\u0000\u0000"+ - "\u0000\u033f\u0001\u0000\u0000\u0000\u0000\u0341\u0001\u0000\u0000\u0000"+ - "\u0000\u0343\u0001\u0000\u0000\u0000\u0000\u0345\u0001\u0000\u0000\u0000"+ - "\u0000\u0347\u0001\u0000\u0000\u0000\u0000\u0349\u0001\u0000\u0000\u0000"+ - "\u0000\u034b\u0001\u0000\u0000\u0000\u0000\u034d\u0001\u0000\u0000\u0000"+ - "\u0000\u034f\u0001\u0000\u0000\u0000\u0000\u0351\u0001\u0000\u0000\u0000"+ - "\u0000\u0353\u0001\u0000\u0000\u0000\u0000\u0355\u0001\u0000\u0000\u0000"+ - "\u0000\u0357\u0001\u0000\u0000\u0000\u0000\u0359\u0001\u0000\u0000\u0000"+ - "\u0000\u035b\u0001\u0000\u0000\u0000\u0000\u035d\u0001\u0000\u0000\u0000"+ - "\u0000\u035f\u0001\u0000\u0000\u0000\u0000\u0361\u0001\u0000\u0000\u0000"+ - "\u0000\u0363\u0001\u0000\u0000\u0000\u0000\u0365\u0001\u0000\u0000\u0000"+ - "\u0000\u0367\u0001\u0000\u0000\u0000\u0000\u0369\u0001\u0000\u0000\u0000"+ - "\u0000\u036b\u0001\u0000\u0000\u0000\u0000\u036d\u0001\u0000\u0000\u0000"+ - "\u0000\u036f\u0001\u0000\u0000\u0000\u0000\u0371\u0001\u0000\u0000\u0000"+ - "\u0000\u0373\u0001\u0000\u0000\u0000\u0000\u0375\u0001\u0000\u0000\u0000"+ - "\u0000"; + "\u0355\u0001\u0356\u0001\u0356\u0001\u0357\u0001\u0357\u0001\u0358\u0001"+ + "\u0358\u0001\u0358\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359\u0001"+ + "\u0359\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035b\u0001"+ + "\u035b\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035c\u0001\u035c\u0001"+ + "\u035c\u0001\u035c\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035e\u0001"+ + "\u035e\u0001\u035e\u0001\u035f\u0001\u035f\u0002\u06ce\u06dc\u0000\u0360"+ + "\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0000\t\u0000\u000b\u0000\r"+ + "\u0000\u000f\u0000\u0011\u0000\u0013\u0000\u0015\u0000\u0017\u0000\u0019"+ + "\u0000\u001b\u0000\u001d\u0000\u001f\u0000!\u0000#\u0000%\u0000\'\u0000"+ + ")\u0000+\u0000-\u0000/\u00001\u00003\u00005\u00007\u00009\u0000;\u0000"+ + "=\u0000?\u0000A\u0000C\u0000E\u0004G\u0005I\u0006K\u0007M\bO\tQ\nS\u000b"+ + "U\fW\rY\u000e[\u000f]\u0010_\u0011a\u0012c\u0013e\u0014g\u0015i\u0016"+ + "k\u0017m\u0018o\u0019q\u001as\u001bu\u001cw\u001dy\u001e{\u001f} \u007f"+ + "!\u0081\"\u0083#\u0085$\u0087%\u0089&\u008b\'\u008d(\u008f)\u0091*\u0093"+ + "+\u0095,\u0097-\u0099.\u009b/\u009d0\u009f1\u00a12\u00a33\u00a54\u00a7"+ + "5\u00a96\u00ab7\u00ad8\u00af9\u00b1:\u00b3;\u00b5<\u00b7=\u00b9>\u00bb"+ + "?\u00bd@\u00bfA\u00c1B\u00c3C\u00c5D\u00c7E\u00c9F\u00cbG\u00cdH\u00cf"+ + "I\u00d1J\u00d3K\u00d5L\u00d7M\u00d9N\u00dbO\u00ddP\u00dfQ\u00e1R\u00e3"+ + "S\u00e5T\u00e7U\u00e9V\u00ebW\u00edX\u00efY\u00f1Z\u00f3[\u00f5\\\u00f7"+ + "]\u00f9^\u00fb_\u00fd`\u00ffa\u0101b\u0103c\u0105d\u0107e\u0109f\u010b"+ + "g\u010dh\u010fi\u0111j\u0113k\u0115l\u0117m\u0119n\u011bo\u011dp\u011f"+ + "q\u0121r\u0123s\u0125t\u0127u\u0129v\u012bw\u012dx\u012fy\u0131z\u0133"+ + "{\u0135|\u0137}\u0139~\u013b\u007f\u013d\u0080\u013f\u0081\u0141\u0082"+ + "\u0143\u0083\u0145\u0084\u0147\u0085\u0149\u0086\u014b\u0087\u014d\u0088"+ + "\u014f\u0089\u0151\u008a\u0153\u008b\u0155\u008c\u0157\u008d\u0159\u008e"+ + "\u015b\u008f\u015d\u0090\u015f\u0091\u0161\u0092\u0163\u0093\u0165\u0094"+ + "\u0167\u0095\u0169\u0096\u016b\u0097\u016d\u0098\u016f\u0099\u0171\u009a"+ + "\u0173\u009b\u0175\u009c\u0177\u009d\u0179\u009e\u017b\u009f\u017d\u00a0"+ + "\u017f\u00a1\u0181\u00a2\u0183\u00a3\u0185\u00a4\u0187\u00a5\u0189\u00a6"+ + "\u018b\u00a7\u018d\u00a8\u018f\u00a9\u0191\u00aa\u0193\u00ab\u0195\u00ac"+ + "\u0197\u00ad\u0199\u00ae\u019b\u00af\u019d\u00b0\u019f\u00b1\u01a1\u00b2"+ + "\u01a3\u00b3\u01a5\u00b4\u01a7\u00b5\u01a9\u00b6\u01ab\u00b7\u01ad\u00b8"+ + "\u01af\u00b9\u01b1\u00ba\u01b3\u00bb\u01b5\u00bc\u01b7\u00bd\u01b9\u00be"+ + "\u01bb\u00bf\u01bd\u00c0\u01bf\u00c1\u01c1\u00c2\u01c3\u00c3\u01c5\u00c4"+ + "\u01c7\u00c5\u01c9\u00c6\u01cb\u00c7\u01cd\u00c8\u01cf\u00c9\u01d1\u00ca"+ + "\u01d3\u00cb\u01d5\u00cc\u01d7\u00cd\u01d9\u00ce\u01db\u00cf\u01dd\u00d0"+ + "\u01df\u00d1\u01e1\u00d2\u01e3\u00d3\u01e5\u00d4\u01e7\u00d5\u01e9\u00d6"+ + "\u01eb\u00d7\u01ed\u00d8\u01ef\u00d9\u01f1\u00da\u01f3\u00db\u01f5\u00dc"+ + "\u01f7\u00dd\u01f9\u00de\u01fb\u00df\u01fd\u00e0\u01ff\u00e1\u0201\u00e2"+ + "\u0203\u00e3\u0205\u00e4\u0207\u00e5\u0209\u00e6\u020b\u00e7\u020d\u00e8"+ + "\u020f\u00e9\u0211\u00ea\u0213\u00eb\u0215\u00ec\u0217\u00ed\u0219\u00ee"+ + "\u021b\u00ef\u021d\u00f0\u021f\u00f1\u0221\u00f2\u0223\u00f3\u0225\u00f4"+ + "\u0227\u00f5\u0229\u00f6\u022b\u00f7\u022d\u00f8\u022f\u00f9\u0231\u00fa"+ + "\u0233\u00fb\u0235\u00fc\u0237\u00fd\u0239\u00fe\u023b\u00ff\u023d\u0100"+ + "\u023f\u0101\u0241\u0102\u0243\u0103\u0245\u0104\u0247\u0105\u0249\u0106"+ + "\u024b\u0107\u024d\u0108\u024f\u0109\u0251\u010a\u0253\u010b\u0255\u010c"+ + "\u0257\u010d\u0259\u010e\u025b\u010f\u025d\u0110\u025f\u0111\u0261\u0112"+ + "\u0263\u0113\u0265\u0114\u0267\u0115\u0269\u0116\u026b\u0117\u026d\u0118"+ + "\u026f\u0119\u0271\u011a\u0273\u011b\u0275\u011c\u0277\u011d\u0279\u011e"+ + "\u027b\u011f\u027d\u0120\u027f\u0121\u0281\u0122\u0283\u0123\u0285\u0124"+ + "\u0287\u0125\u0289\u0126\u028b\u0127\u028d\u0128\u028f\u0129\u0291\u012a"+ + "\u0293\u012b\u0295\u012c\u0297\u012d\u0299\u012e\u029b\u012f\u029d\u0130"+ + "\u029f\u0131\u02a1\u0132\u02a3\u0133\u02a5\u0134\u02a7\u0135\u02a9\u0136"+ + "\u02ab\u0137\u02ad\u0138\u02af\u0139\u02b1\u013a\u02b3\u013b\u02b5\u013c"+ + "\u02b7\u013d\u02b9\u013e\u02bb\u013f\u02bd\u0140\u02bf\u0141\u02c1\u0142"+ + "\u02c3\u0143\u02c5\u0144\u02c7\u0145\u02c9\u0146\u02cb\u0147\u02cd\u0148"+ + "\u02cf\u0149\u02d1\u014a\u02d3\u014b\u02d5\u014c\u02d7\u014d\u02d9\u014e"+ + "\u02db\u014f\u02dd\u0150\u02df\u0151\u02e1\u0152\u02e3\u0153\u02e5\u0154"+ + "\u02e7\u0155\u02e9\u0156\u02eb\u0157\u02ed\u0158\u02ef\u0159\u02f1\u015a"+ + "\u02f3\u015b\u02f5\u015c\u02f7\u015d\u02f9\u015e\u02fb\u015f\u02fd\u0160"+ + "\u02ff\u0161\u0301\u0162\u0303\u0163\u0305\u0164\u0307\u0165\u0309\u0166"+ + "\u030b\u0167\u030d\u0168\u030f\u0169\u0311\u016a\u0313\u016b\u0315\u016c"+ + "\u0317\u016d\u0319\u016e\u031b\u016f\u031d\u0170\u031f\u0171\u0321\u0172"+ + "\u0323\u0173\u0325\u0174\u0327\u0175\u0329\u0176\u032b\u0177\u032d\u0178"+ + "\u032f\u0179\u0331\u017a\u0333\u017b\u0335\u017c\u0337\u017d\u0339\u017e"+ + "\u033b\u017f\u033d\u0180\u033f\u0181\u0341\u0182\u0343\u0183\u0345\u0184"+ + "\u0347\u0185\u0349\u0186\u034b\u0187\u034d\u0188\u034f\u0189\u0351\u018a"+ + "\u0353\u018b\u0355\u018c\u0357\u018d\u0359\u018e\u035b\u018f\u035d\u0190"+ + "\u035f\u0191\u0361\u0192\u0363\u0193\u0365\u0194\u0367\u0195\u0369\u0196"+ + "\u036b\u0197\u036d\u0198\u036f\u0199\u0371\u019a\u0373\u019b\u0375\u019c"+ + "\u0377\u019d\u0379\u019e\u037b\u019f\u037d\u01a0\u037f\u01a1\u0381\u01a2"+ + "\u0383\u01a3\u0385\u01a4\u0387\u01a5\u0389\u01a6\u038b\u01a7\u038d\u01a8"+ + "\u038f\u01a9\u0391\u01aa\u0393\u01ab\u0395\u01ac\u0397\u01ad\u0399\u01ae"+ + "\u039b\u01af\u039d\u01b0\u039f\u01b1\u03a1\u01b2\u03a3\u01b3\u03a5\u01b4"+ + "\u03a7\u01b5\u03a9\u01b6\u03ab\u01b7\u03ad\u01b8\u03af\u01b9\u03b1\u01ba"+ + "\u03b3\u01bb\u03b5\u01bc\u03b7\u01bd\u03b9\u01be\u03bb\u01bf\u03bd\u01c0"+ + "\u03bf\u01c1\u03c1\u01c2\u03c3\u01c3\u03c5\u01c4\u03c7\u01c5\u03c9\u01c6"+ + "\u03cb\u01c7\u03cd\u01c8\u03cf\u01c9\u03d1\u01ca\u03d3\u01cb\u03d5\u01cc"+ + "\u03d7\u01cd\u03d9\u01ce\u03db\u01cf\u03dd\u01d0\u03df\u01d1\u03e1\u01d2"+ + "\u03e3\u01d3\u03e5\u01d4\u03e7\u01d5\u03e9\u01d6\u03eb\u01d7\u03ed\u01d8"+ + "\u03ef\u01d9\u03f1\u01da\u03f3\u01db\u03f5\u01dc\u03f7\u01dd\u03f9\u01de"+ + "\u03fb\u01df\u03fd\u01e0\u03ff\u01e1\u0401\u01e2\u0403\u01e3\u0405\u01e4"+ + "\u0407\u01e5\u0409\u01e6\u040b\u01e7\u040d\u01e8\u040f\u01e9\u0411\u01ea"+ + "\u0413\u01eb\u0415\u01ec\u0417\u01ed\u0419\u01ee\u041b\u01ef\u041d\u01f0"+ + "\u041f\u01f1\u0421\u01f2\u0423\u01f3\u0425\u01f4\u0427\u01f5\u0429\u01f6"+ + "\u042b\u01f7\u042d\u01f8\u042f\u01f9\u0431\u01fa\u0433\u01fb\u0435\u01fc"+ + "\u0437\u01fd\u0439\u01fe\u043b\u01ff\u043d\u0200\u043f\u0201\u0441\u0202"+ + "\u0443\u0203\u0445\u0204\u0447\u0205\u0449\u0206\u044b\u0207\u044d\u0208"+ + "\u044f\u0209\u0451\u020a\u0453\u020b\u0455\u020c\u0457\u020d\u0459\u020e"+ + "\u045b\u020f\u045d\u0210\u045f\u0211\u0461\u0212\u0463\u0213\u0465\u0214"+ + "\u0467\u0215\u0469\u0216\u046b\u0217\u046d\u0218\u046f\u0219\u0471\u021a"+ + "\u0473\u021b\u0475\u021c\u0477\u021d\u0479\u021e\u047b\u021f\u047d\u0220"+ + "\u047f\u0221\u0481\u0222\u0483\u0223\u0485\u0224\u0487\u0225\u0489\u0226"+ + "\u048b\u0227\u048d\u0228\u048f\u0229\u0491\u022a\u0493\u022b\u0495\u022c"+ + "\u0497\u022d\u0499\u022e\u049b\u022f\u049d\u0230\u049f\u0231\u04a1\u0232"+ + "\u04a3\u0233\u04a5\u0234\u04a7\u0235\u04a9\u0236\u04ab\u0237\u04ad\u0238"+ + "\u04af\u0239\u04b1\u023a\u04b3\u023b\u04b5\u023c\u04b7\u023d\u04b9\u023e"+ + "\u04bb\u023f\u04bd\u0240\u04bf\u0241\u04c1\u0242\u04c3\u0243\u04c5\u0244"+ + "\u04c7\u0245\u04c9\u0246\u04cb\u0247\u04cd\u0248\u04cf\u0249\u04d1\u024a"+ + "\u04d3\u024b\u04d5\u024c\u04d7\u024d\u04d9\u024e\u04db\u024f\u04dd\u0250"+ + "\u04df\u0251\u04e1\u0252\u04e3\u0253\u04e5\u0254\u04e7\u0255\u04e9\u0256"+ + "\u04eb\u0257\u04ed\u0258\u04ef\u0259\u04f1\u025a\u04f3\u025b\u04f5\u025c"+ + "\u04f7\u025d\u04f9\u025e\u04fb\u025f\u04fd\u0260\u04ff\u0261\u0501\u0262"+ + "\u0503\u0263\u0505\u0264\u0507\u0265\u0509\u0266\u050b\u0267\u050d\u0268"+ + "\u050f\u0269\u0511\u026a\u0513\u026b\u0515\u026c\u0517\u026d\u0519\u026e"+ + "\u051b\u026f\u051d\u0270\u051f\u0271\u0521\u0272\u0523\u0273\u0525\u0274"+ + "\u0527\u0275\u0529\u0276\u052b\u0277\u052d\u0278\u052f\u0279\u0531\u027a"+ + "\u0533\u027b\u0535\u027c\u0537\u027d\u0539\u027e\u053b\u027f\u053d\u0280"+ + "\u053f\u0281\u0541\u0282\u0543\u0283\u0545\u0284\u0547\u0285\u0549\u0286"+ + "\u054b\u0287\u054d\u0288\u054f\u0289\u0551\u028a\u0553\u028b\u0555\u028c"+ + "\u0557\u028d\u0559\u028e\u055b\u028f\u055d\u0290\u055f\u0291\u0561\u0292"+ + "\u0563\u0293\u0565\u0294\u0567\u0295\u0569\u0296\u056b\u0297\u056d\u0298"+ + "\u056f\u0299\u0571\u029a\u0573\u029b\u0575\u029c\u0577\u029d\u0579\u029e"+ + "\u057b\u029f\u057d\u02a0\u057f\u02a1\u0581\u02a2\u0583\u02a3\u0585\u02a4"+ + "\u0587\u02a5\u0589\u02a6\u058b\u02a7\u058d\u02a8\u058f\u02a9\u0591\u02aa"+ + "\u0593\u02ab\u0595\u02ac\u0597\u02ad\u0599\u02ae\u059b\u02af\u059d\u02b0"+ + "\u059f\u02b1\u05a1\u02b2\u05a3\u02b3\u05a5\u02b4\u05a7\u02b5\u05a9\u02b6"+ + "\u05ab\u02b7\u05ad\u02b8\u05af\u02b9\u05b1\u02ba\u05b3\u02bb\u05b5\u02bc"+ + "\u05b7\u02bd\u05b9\u02be\u05bb\u02bf\u05bd\u02c0\u05bf\u02c1\u05c1\u02c2"+ + "\u05c3\u02c3\u05c5\u02c4\u05c7\u02c5\u05c9\u02c6\u05cb\u02c7\u05cd\u02c8"+ + "\u05cf\u02c9\u05d1\u02ca\u05d3\u02cb\u05d5\u02cc\u05d7\u02cd\u05d9\u02ce"+ + "\u05db\u02cf\u05dd\u02d0\u05df\u02d1\u05e1\u02d2\u05e3\u02d3\u05e5\u02d4"+ + "\u05e7\u02d5\u05e9\u02d6\u05eb\u02d7\u05ed\u02d8\u05ef\u02d9\u05f1\u02da"+ + "\u05f3\u02db\u05f5\u02dc\u05f7\u02dd\u05f9\u02de\u05fb\u02df\u05fd\u02e0"+ + "\u05ff\u02e1\u0601\u02e2\u0603\u02e3\u0605\u02e4\u0607\u02e5\u0609\u02e6"+ + "\u060b\u02e7\u060d\u02e8\u060f\u02e9\u0611\u02ea\u0613\u02eb\u0615\u02ec"+ + "\u0617\u02ed\u0619\u02ee\u061b\u02ef\u061d\u02f0\u061f\u02f1\u0621\u02f2"+ + "\u0623\u02f3\u0625\u02f4\u0627\u02f5\u0629\u02f6\u062b\u02f7\u062d\u02f8"+ + "\u062f\u02f9\u0631\u02fa\u0633\u02fb\u0635\u02fc\u0637\u02fd\u0639\u02fe"+ + "\u063b\u02ff\u063d\u0300\u063f\u0301\u0641\u0302\u0643\u0303\u0645\u0304"+ + "\u0647\u0305\u0649\u0306\u064b\u0307\u064d\u0308\u064f\u0309\u0651\u030a"+ + "\u0653\u030b\u0655\u030c\u0657\u030d\u0659\u030e\u065b\u030f\u065d\u0310"+ + "\u065f\u0311\u0661\u0312\u0663\u0313\u0665\u0314\u0667\u0315\u0669\u0316"+ + "\u066b\u0317\u066d\u0318\u066f\u0319\u0671\u031a\u0673\u031b\u0675\u031c"+ + "\u0677\u031d\u0679\u031e\u067b\u031f\u067d\u0320\u067f\u0321\u0681\u0322"+ + "\u0683\u0323\u0685\u0324\u0687\u0325\u0689\u0326\u068b\u0327\u068d\u0328"+ + "\u068f\u0329\u0691\u032a\u0693\u032b\u0695\u032c\u0697\u032d\u0699\u032e"+ + "\u069b\u032f\u069d\u0330\u069f\u0331\u06a1\u0332\u06a3\u0333\u06a5\u0334"+ + "\u06a7\u0335\u06a9\u0336\u06ab\u0337\u06ad\u0338\u06af\u0339\u06b1\u033a"+ + "\u06b3\u033b\u06b5\u033c\u06b7\u033d\u06b9\u033e\u06bb\u033f\u06bd\u0340"+ + "\u06bf\u0341\u0001\u0000$\u0003\u0000\t\n\r\r \u0002\u0000AAaa\u0002"+ + "\u0000BBbb\u0002\u0000CCcc\u0002\u0000DDdd\u0002\u0000EEee\u0002\u0000"+ + "FFff\u0002\u0000GGgg\u0002\u0000HHhh\u0002\u0000IIii\u0002\u0000JJjj\u0002"+ + "\u0000KKkk\u0002\u0000LLll\u0002\u0000MMmm\u0002\u0000NNnn\u0002\u0000"+ + "OOoo\u0002\u0000PPpp\u0002\u0000QQqq\u0002\u0000RRrr\u0002\u0000SSss\u0002"+ + "\u0000TTtt\u0002\u0000UUuu\u0002\u0000VVvv\u0002\u0000WWww\u0002\u0000"+ + "XXxx\u0002\u0000YYyy\u0002\u0000ZZzz\u0002\u000009AF\u0001\u000009\u0002"+ + "\u0000\"\"\\\\\u0002\u0000\'\'\\\\\u0002\u0000\\\\``\u0003\u0000AZ__a"+ + "z\u0005\u0000$$09AZ__az\u0004\u0000AZ__az\u00a1\u8000\uffff\u0006\u0000"+ + "$$09AZ__az\u00a1\u8000\uffff\u21d2\u0000\u0001\u0001\u0000\u0000\u0000"+ + "\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000"+ + "\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I"+ + "\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000"+ + "\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000"+ + "\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W"+ + "\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000"+ + "\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000"+ + "\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e"+ + "\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000"+ + "\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000"+ + "\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s"+ + "\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000"+ + "\u0000\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000"+ + "\u0000}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000"+ + "\u0081\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000"+ + "\u0085\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000"+ + "\u0089\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000"+ + "\u008d\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000"+ + "\u0091\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000"+ + "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ + "\u0099\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000"+ + "\u009d\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000"+ + "\u00a1\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000"+ + "\u00a5\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000"+ + "\u00a9\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000"+ + "\u00ad\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000"+ + "\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000"+ + "\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000"+ + "\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000"+ + "\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000"+ + "\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000"+ + "\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000"+ + "\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000"+ + "\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000"+ + "\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000"+ + "\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000"+ + "\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000"+ + "\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000"+ + "\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000"+ + "\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000"+ + "\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000"+ + "\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000"+ + "\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000"+ + "\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000"+ + "\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000"+ + "\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000"+ + "\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000"+ + "\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000"+ + "\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000"+ + "\u0111\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000"+ + "\u0115\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000"+ + "\u0119\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000"+ + "\u011d\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000"+ + "\u0121\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000"+ + "\u0125\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000"+ + "\u0129\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000"+ + "\u012d\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000"+ + "\u0131\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000"+ + "\u0135\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000"+ + "\u0139\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000"+ + "\u013d\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000"+ + "\u0141\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000"+ + "\u0145\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000"+ + "\u0149\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000"+ + "\u014d\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000"+ + "\u0151\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000"+ + "\u0155\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000"+ + "\u0159\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000"+ + "\u015d\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000"+ + "\u0161\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000"+ + "\u0165\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000"+ + "\u0169\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000"+ + "\u016d\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000"+ + "\u0171\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000"+ + "\u0175\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000"+ + "\u0179\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000"+ + "\u017d\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000"+ + "\u0181\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000"+ + "\u0185\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000"+ + "\u0189\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000"+ + "\u018d\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000"+ + "\u0191\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000"+ + "\u0195\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000"+ + "\u0199\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000"+ + "\u019d\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000"+ + "\u01a1\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000"+ + "\u01a5\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000"+ + "\u01a9\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000"+ + "\u01ad\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000"+ + "\u01b1\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000"+ + "\u01b5\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000"+ + "\u01b9\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000"+ + "\u01bd\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000"+ + "\u01c1\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000"+ + "\u01c5\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000"+ + "\u01c9\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000"+ + "\u01cd\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000"+ + "\u01d1\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000"+ + "\u01d5\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000"+ + "\u01d9\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000"+ + "\u01dd\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000"+ + "\u01e1\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000"+ + "\u01e5\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000"+ + "\u01e9\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000"+ + "\u01ed\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000"+ + "\u01f1\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000"+ + "\u01f5\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000"+ + "\u01f9\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000"+ + "\u01fd\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0201\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000"+ + "\u0205\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000"+ + "\u0209\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000"+ + "\u020d\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000"+ + "\u0211\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000"+ + "\u0215\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000"+ + "\u0219\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000"+ + "\u021d\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000"+ + "\u0221\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000"+ + "\u0225\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000"+ + "\u0229\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000"+ + "\u022d\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000"+ + "\u0231\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000"+ + "\u0235\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000"+ + "\u0239\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000"+ + "\u023d\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000"+ + "\u0241\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000"+ + "\u0245\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000"+ + "\u0249\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000"+ + "\u024d\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000"+ + "\u0251\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000"+ + "\u0255\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000"+ + "\u0259\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000"+ + "\u025d\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000"+ + "\u0261\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000"+ + "\u0265\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000"+ + "\u0269\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000"+ + "\u026d\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000"+ + "\u0271\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000"+ + "\u0275\u0001\u0000\u0000\u0000\u0000\u0277\u0001\u0000\u0000\u0000\u0000"+ + "\u0279\u0001\u0000\u0000\u0000\u0000\u027b\u0001\u0000\u0000\u0000\u0000"+ + "\u027d\u0001\u0000\u0000\u0000\u0000\u027f\u0001\u0000\u0000\u0000\u0000"+ + "\u0281\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000"+ + "\u0285\u0001\u0000\u0000\u0000\u0000\u0287\u0001\u0000\u0000\u0000\u0000"+ + "\u0289\u0001\u0000\u0000\u0000\u0000\u028b\u0001\u0000\u0000\u0000\u0000"+ + "\u028d\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000"+ + "\u0291\u0001\u0000\u0000\u0000\u0000\u0293\u0001\u0000\u0000\u0000\u0000"+ + "\u0295\u0001\u0000\u0000\u0000\u0000\u0297\u0001\u0000\u0000\u0000\u0000"+ + "\u0299\u0001\u0000\u0000\u0000\u0000\u029b\u0001\u0000\u0000\u0000\u0000"+ + "\u029d\u0001\u0000\u0000\u0000\u0000\u029f\u0001\u0000\u0000\u0000\u0000"+ + "\u02a1\u0001\u0000\u0000\u0000\u0000\u02a3\u0001\u0000\u0000\u0000\u0000"+ + "\u02a5\u0001\u0000\u0000\u0000\u0000\u02a7\u0001\u0000\u0000\u0000\u0000"+ + "\u02a9\u0001\u0000\u0000\u0000\u0000\u02ab\u0001\u0000\u0000\u0000\u0000"+ + "\u02ad\u0001\u0000\u0000\u0000\u0000\u02af\u0001\u0000\u0000\u0000\u0000"+ + "\u02b1\u0001\u0000\u0000\u0000\u0000\u02b3\u0001\u0000\u0000\u0000\u0000"+ + "\u02b5\u0001\u0000\u0000\u0000\u0000\u02b7\u0001\u0000\u0000\u0000\u0000"+ + "\u02b9\u0001\u0000\u0000\u0000\u0000\u02bb\u0001\u0000\u0000\u0000\u0000"+ + "\u02bd\u0001\u0000\u0000\u0000\u0000\u02bf\u0001\u0000\u0000\u0000\u0000"+ + "\u02c1\u0001\u0000\u0000\u0000\u0000\u02c3\u0001\u0000\u0000\u0000\u0000"+ + "\u02c5\u0001\u0000\u0000\u0000\u0000\u02c7\u0001\u0000\u0000\u0000\u0000"+ + "\u02c9\u0001\u0000\u0000\u0000\u0000\u02cb\u0001\u0000\u0000\u0000\u0000"+ + "\u02cd\u0001\u0000\u0000\u0000\u0000\u02cf\u0001\u0000\u0000\u0000\u0000"+ + "\u02d1\u0001\u0000\u0000\u0000\u0000\u02d3\u0001\u0000\u0000\u0000\u0000"+ + "\u02d5\u0001\u0000\u0000\u0000\u0000\u02d7\u0001\u0000\u0000\u0000\u0000"+ + "\u02d9\u0001\u0000\u0000\u0000\u0000\u02db\u0001\u0000\u0000\u0000\u0000"+ + "\u02dd\u0001\u0000\u0000\u0000\u0000\u02df\u0001\u0000\u0000\u0000\u0000"+ + "\u02e1\u0001\u0000\u0000\u0000\u0000\u02e3\u0001\u0000\u0000\u0000\u0000"+ + "\u02e5\u0001\u0000\u0000\u0000\u0000\u02e7\u0001\u0000\u0000\u0000\u0000"+ + "\u02e9\u0001\u0000\u0000\u0000\u0000\u02eb\u0001\u0000\u0000\u0000\u0000"+ + "\u02ed\u0001\u0000\u0000\u0000\u0000\u02ef\u0001\u0000\u0000\u0000\u0000"+ + "\u02f1\u0001\u0000\u0000\u0000\u0000\u02f3\u0001\u0000\u0000\u0000\u0000"+ + "\u02f5\u0001\u0000\u0000\u0000\u0000\u02f7\u0001\u0000\u0000\u0000\u0000"+ + "\u02f9\u0001\u0000\u0000\u0000\u0000\u02fb\u0001\u0000\u0000\u0000\u0000"+ + "\u02fd\u0001\u0000\u0000\u0000\u0000\u02ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0301\u0001\u0000\u0000\u0000\u0000\u0303\u0001\u0000\u0000\u0000\u0000"+ + "\u0305\u0001\u0000\u0000\u0000\u0000\u0307\u0001\u0000\u0000\u0000\u0000"+ + "\u0309\u0001\u0000\u0000\u0000\u0000\u030b\u0001\u0000\u0000\u0000\u0000"+ + "\u030d\u0001\u0000\u0000\u0000\u0000\u030f\u0001\u0000\u0000\u0000\u0000"+ + "\u0311\u0001\u0000\u0000\u0000\u0000\u0313\u0001\u0000\u0000\u0000\u0000"+ + "\u0315\u0001\u0000\u0000\u0000\u0000\u0317\u0001\u0000\u0000\u0000\u0000"+ + "\u0319\u0001\u0000\u0000\u0000\u0000\u031b\u0001\u0000\u0000\u0000\u0000"+ + "\u031d\u0001\u0000\u0000\u0000\u0000\u031f\u0001\u0000\u0000\u0000\u0000"+ + "\u0321\u0001\u0000\u0000\u0000\u0000\u0323\u0001\u0000\u0000\u0000\u0000"+ + "\u0325\u0001\u0000\u0000\u0000\u0000\u0327\u0001\u0000\u0000\u0000\u0000"+ + "\u0329\u0001\u0000\u0000\u0000\u0000\u032b\u0001\u0000\u0000\u0000\u0000"+ + "\u032d\u0001\u0000\u0000\u0000\u0000\u032f\u0001\u0000\u0000\u0000\u0000"+ + "\u0331\u0001\u0000\u0000\u0000\u0000\u0333\u0001\u0000\u0000\u0000\u0000"+ + "\u0335\u0001\u0000\u0000\u0000\u0000\u0337\u0001\u0000\u0000\u0000\u0000"+ + "\u0339\u0001\u0000\u0000\u0000\u0000\u033b\u0001\u0000\u0000\u0000\u0000"+ + "\u033d\u0001\u0000\u0000\u0000\u0000\u033f\u0001\u0000\u0000\u0000\u0000"+ + "\u0341\u0001\u0000\u0000\u0000\u0000\u0343\u0001\u0000\u0000\u0000\u0000"+ + "\u0345\u0001\u0000\u0000\u0000\u0000\u0347\u0001\u0000\u0000\u0000\u0000"+ + "\u0349\u0001\u0000\u0000\u0000\u0000\u034b\u0001\u0000\u0000\u0000\u0000"+ + "\u034d\u0001\u0000\u0000\u0000\u0000\u034f\u0001\u0000\u0000\u0000\u0000"+ + "\u0351\u0001\u0000\u0000\u0000\u0000\u0353\u0001\u0000\u0000\u0000\u0000"+ + "\u0355\u0001\u0000\u0000\u0000\u0000\u0357\u0001\u0000\u0000\u0000\u0000"+ + "\u0359\u0001\u0000\u0000\u0000\u0000\u035b\u0001\u0000\u0000\u0000\u0000"+ + "\u035d\u0001\u0000\u0000\u0000\u0000\u035f\u0001\u0000\u0000\u0000\u0000"+ + "\u0361\u0001\u0000\u0000\u0000\u0000\u0363\u0001\u0000\u0000\u0000\u0000"+ + "\u0365\u0001\u0000\u0000\u0000\u0000\u0367\u0001\u0000\u0000\u0000\u0000"+ + "\u0369\u0001\u0000\u0000\u0000\u0000\u036b\u0001\u0000\u0000\u0000\u0000"+ + "\u036d\u0001\u0000\u0000\u0000\u0000\u036f\u0001\u0000\u0000\u0000\u0000"+ + "\u0371\u0001\u0000\u0000\u0000\u0000\u0373\u0001\u0000\u0000\u0000\u0000"+ + "\u0375\u0001\u0000\u0000\u0000\u0000\u0377\u0001\u0000\u0000\u0000\u0000"+ + "\u0379\u0001\u0000\u0000\u0000\u0000\u037b\u0001\u0000\u0000\u0000\u0000"+ + "\u037d\u0001\u0000\u0000\u0000\u0000\u037f\u0001\u0000\u0000"; private static final String _serializedATNSegment1 = - "\u0377\u0001\u0000\u0000\u0000\u0000\u0379\u0001\u0000\u0000\u0000\u0000"+ - "\u037b\u0001\u0000\u0000\u0000\u0000\u037d\u0001\u0000\u0000\u0000\u0000"+ - "\u037f\u0001\u0000\u0000\u0000\u0000\u0381\u0001\u0000\u0000\u0000\u0000"+ - "\u0383\u0001\u0000\u0000\u0000\u0000\u0385\u0001\u0000\u0000\u0000\u0000"+ - "\u0387\u0001\u0000\u0000\u0000\u0000\u0389\u0001\u0000\u0000\u0000\u0000"+ - "\u038b\u0001\u0000\u0000\u0000\u0000\u038d\u0001\u0000\u0000\u0000\u0000"+ - "\u038f\u0001\u0000\u0000\u0000\u0000\u0391\u0001\u0000\u0000\u0000\u0000"+ - "\u0393\u0001\u0000\u0000\u0000\u0000\u0395\u0001\u0000\u0000\u0000\u0000"+ - "\u0397\u0001\u0000\u0000\u0000\u0000\u0399\u0001\u0000\u0000\u0000\u0000"+ - "\u039b\u0001\u0000\u0000\u0000\u0000\u039d\u0001\u0000\u0000\u0000\u0000"+ - "\u039f\u0001\u0000\u0000\u0000\u0000\u03a1\u0001\u0000\u0000\u0000\u0000"+ - "\u03a3\u0001\u0000\u0000\u0000\u0000\u03a5\u0001\u0000\u0000\u0000\u0000"+ - "\u03a7\u0001\u0000\u0000\u0000\u0000\u03a9\u0001\u0000\u0000\u0000\u0000"+ - "\u03ab\u0001\u0000\u0000\u0000\u0000\u03ad\u0001\u0000\u0000\u0000\u0000"+ - "\u03af\u0001\u0000\u0000\u0000\u0000\u03b1\u0001\u0000\u0000\u0000\u0000"+ - "\u03b3\u0001\u0000\u0000\u0000\u0000\u03b5\u0001\u0000\u0000\u0000\u0000"+ - "\u03b7\u0001\u0000\u0000\u0000\u0000\u03b9\u0001\u0000\u0000\u0000\u0000"+ - "\u03bb\u0001\u0000\u0000\u0000\u0000\u03bd\u0001\u0000\u0000\u0000\u0000"+ - "\u03bf\u0001\u0000\u0000\u0000\u0000\u03c1\u0001\u0000\u0000\u0000\u0000"+ - "\u03c3\u0001\u0000\u0000\u0000\u0000\u03c5\u0001\u0000\u0000\u0000\u0000"+ - "\u03c7\u0001\u0000\u0000\u0000\u0000\u03c9\u0001\u0000\u0000\u0000\u0000"+ - "\u03cb\u0001\u0000\u0000\u0000\u0000\u03cd\u0001\u0000\u0000\u0000\u0000"+ - "\u03cf\u0001\u0000\u0000\u0000\u0000\u03d1\u0001\u0000\u0000\u0000\u0000"+ - "\u03d3\u0001\u0000\u0000\u0000\u0000\u03d5\u0001\u0000\u0000\u0000\u0000"+ - "\u03d7\u0001\u0000\u0000\u0000\u0000\u03d9\u0001\u0000\u0000\u0000\u0000"+ - "\u03db\u0001\u0000\u0000\u0000\u0000\u03dd\u0001\u0000\u0000\u0000\u0000"+ - "\u03df\u0001\u0000\u0000\u0000\u0000\u03e1\u0001\u0000\u0000\u0000\u0000"+ - "\u03e3\u0001\u0000\u0000\u0000\u0000\u03e5\u0001\u0000\u0000\u0000\u0000"+ - "\u03e7\u0001\u0000\u0000\u0000\u0000\u03e9\u0001\u0000\u0000\u0000\u0000"+ - "\u03eb\u0001\u0000\u0000\u0000\u0000\u03ed\u0001\u0000\u0000\u0000\u0000"+ - "\u03ef\u0001\u0000\u0000\u0000\u0000\u03f1\u0001\u0000\u0000\u0000\u0000"+ - "\u03f3\u0001\u0000\u0000\u0000\u0000\u03f5\u0001\u0000\u0000\u0000\u0000"+ - "\u03f7\u0001\u0000\u0000\u0000\u0000\u03f9\u0001\u0000\u0000\u0000\u0000"+ - "\u03fb\u0001\u0000\u0000\u0000\u0000\u03fd\u0001\u0000\u0000\u0000\u0000"+ - "\u03ff\u0001\u0000\u0000\u0000\u0000\u0401\u0001\u0000\u0000\u0000\u0000"+ - "\u0403\u0001\u0000\u0000\u0000\u0000\u0405\u0001\u0000\u0000\u0000\u0000"+ - "\u0407\u0001\u0000\u0000\u0000\u0000\u0409\u0001\u0000\u0000\u0000\u0000"+ - "\u040b\u0001\u0000\u0000\u0000\u0000\u040d\u0001\u0000\u0000\u0000\u0000"+ - "\u040f\u0001\u0000\u0000\u0000\u0000\u0411\u0001\u0000\u0000\u0000\u0000"+ - "\u0413\u0001\u0000\u0000\u0000\u0000\u0415\u0001\u0000\u0000\u0000\u0000"+ - "\u0417\u0001\u0000\u0000\u0000\u0000\u0419\u0001\u0000\u0000\u0000\u0000"+ - "\u041b\u0001\u0000\u0000\u0000\u0000\u041d\u0001\u0000\u0000\u0000\u0000"+ - "\u041f\u0001\u0000\u0000\u0000\u0000\u0421\u0001\u0000\u0000\u0000\u0000"+ - "\u0423\u0001\u0000\u0000\u0000\u0000\u0425\u0001\u0000\u0000\u0000\u0000"+ - "\u0427\u0001\u0000\u0000\u0000\u0000\u0429\u0001\u0000\u0000\u0000\u0000"+ - "\u042b\u0001\u0000\u0000\u0000\u0000\u042d\u0001\u0000\u0000\u0000\u0000"+ - "\u042f\u0001\u0000\u0000\u0000\u0000\u0431\u0001\u0000\u0000\u0000\u0000"+ - "\u0433\u0001\u0000\u0000\u0000\u0000\u0435\u0001\u0000\u0000\u0000\u0000"+ - "\u0437\u0001\u0000\u0000\u0000\u0000\u0439\u0001\u0000\u0000\u0000\u0000"+ - "\u043b\u0001\u0000\u0000\u0000\u0000\u043d\u0001\u0000\u0000\u0000\u0000"+ - "\u043f\u0001\u0000\u0000\u0000\u0000\u0441\u0001\u0000\u0000\u0000\u0000"+ - "\u0443\u0001\u0000\u0000\u0000\u0000\u0445\u0001\u0000\u0000\u0000\u0000"+ - "\u0447\u0001\u0000\u0000\u0000\u0000\u0449\u0001\u0000\u0000\u0000\u0000"+ - "\u044b\u0001\u0000\u0000\u0000\u0000\u044d\u0001\u0000\u0000\u0000\u0000"+ - "\u044f\u0001\u0000\u0000\u0000\u0000\u0451\u0001\u0000\u0000\u0000\u0000"+ - "\u0453\u0001\u0000\u0000\u0000\u0000\u0455\u0001\u0000\u0000\u0000\u0000"+ - "\u0457\u0001\u0000\u0000\u0000\u0000\u0459\u0001\u0000\u0000\u0000\u0000"+ - "\u045b\u0001\u0000\u0000\u0000\u0000\u045d\u0001\u0000\u0000\u0000\u0000"+ - "\u045f\u0001\u0000\u0000\u0000\u0000\u0461\u0001\u0000\u0000\u0000\u0000"+ - "\u0463\u0001\u0000\u0000\u0000\u0000\u0465\u0001\u0000\u0000\u0000\u0000"+ - "\u0467\u0001\u0000\u0000\u0000\u0000\u0469\u0001\u0000\u0000\u0000\u0000"+ - "\u046b\u0001\u0000\u0000\u0000\u0000\u046d\u0001\u0000\u0000\u0000\u0000"+ - "\u046f\u0001\u0000\u0000\u0000\u0000\u0471\u0001\u0000\u0000\u0000\u0000"+ - "\u0473\u0001\u0000\u0000\u0000\u0000\u0475\u0001\u0000\u0000\u0000\u0000"+ - "\u0477\u0001\u0000\u0000\u0000\u0000\u0479\u0001\u0000\u0000\u0000\u0000"+ - "\u047b\u0001\u0000\u0000\u0000\u0000\u047d\u0001\u0000\u0000\u0000\u0000"+ - "\u047f\u0001\u0000\u0000\u0000\u0000\u0481\u0001\u0000\u0000\u0000\u0000"+ - "\u0483\u0001\u0000\u0000\u0000\u0000\u0485\u0001\u0000\u0000\u0000\u0000"+ - "\u0487\u0001\u0000\u0000\u0000\u0000\u0489\u0001\u0000\u0000\u0000\u0000"+ - "\u048b\u0001\u0000\u0000\u0000\u0000\u048d\u0001\u0000\u0000\u0000\u0000"+ - "\u048f\u0001\u0000\u0000\u0000\u0000\u0491\u0001\u0000\u0000\u0000\u0000"+ - "\u0493\u0001\u0000\u0000\u0000\u0000\u0495\u0001\u0000\u0000\u0000\u0000"+ - "\u0497\u0001\u0000\u0000\u0000\u0000\u0499\u0001\u0000\u0000\u0000\u0000"+ - "\u049b\u0001\u0000\u0000\u0000\u0000\u049d\u0001\u0000\u0000\u0000\u0000"+ - "\u049f\u0001\u0000\u0000\u0000\u0000\u04a1\u0001\u0000\u0000\u0000\u0000"+ - "\u04a3\u0001\u0000\u0000\u0000\u0000\u04a5\u0001\u0000\u0000\u0000\u0000"+ - "\u04a7\u0001\u0000\u0000\u0000\u0000\u04a9\u0001\u0000\u0000\u0000\u0000"+ - "\u04ab\u0001\u0000\u0000\u0000\u0000\u04ad\u0001\u0000\u0000\u0000\u0000"+ - "\u04af\u0001\u0000\u0000\u0000\u0000\u04b1\u0001\u0000\u0000\u0000\u0000"+ - "\u04b3\u0001\u0000\u0000\u0000\u0000\u04b5\u0001\u0000\u0000\u0000\u0000"+ - "\u04b7\u0001\u0000\u0000\u0000\u0000\u04b9\u0001\u0000\u0000\u0000\u0000"+ - "\u04bb\u0001\u0000\u0000\u0000\u0000\u04bd\u0001\u0000\u0000\u0000\u0000"+ - "\u04bf\u0001\u0000\u0000\u0000\u0000\u04c1\u0001\u0000\u0000\u0000\u0000"+ - "\u04c3\u0001\u0000\u0000\u0000\u0000\u04c5\u0001\u0000\u0000\u0000\u0000"+ - "\u04c7\u0001\u0000\u0000\u0000\u0000\u04c9\u0001\u0000\u0000\u0000\u0000"+ - "\u04cb\u0001\u0000\u0000\u0000\u0000\u04cd\u0001\u0000\u0000\u0000\u0000"+ - "\u04cf\u0001\u0000\u0000\u0000\u0000\u04d1\u0001\u0000\u0000\u0000\u0000"+ - "\u04d3\u0001\u0000\u0000\u0000\u0000\u04d5\u0001\u0000\u0000\u0000\u0000"+ - "\u04d7\u0001\u0000\u0000\u0000\u0000\u04d9\u0001\u0000\u0000\u0000\u0000"+ - "\u04db\u0001\u0000\u0000\u0000\u0000\u04dd\u0001\u0000\u0000\u0000\u0000"+ - "\u04df\u0001\u0000\u0000\u0000\u0000\u04e1\u0001\u0000\u0000\u0000\u0000"+ - "\u04e3\u0001\u0000\u0000\u0000\u0000\u04e5\u0001\u0000\u0000\u0000\u0000"+ - "\u04e7\u0001\u0000\u0000\u0000\u0000\u04e9\u0001\u0000\u0000\u0000\u0000"+ - "\u04eb\u0001\u0000\u0000\u0000\u0000\u04ed\u0001\u0000\u0000\u0000\u0000"+ - "\u04ef\u0001\u0000\u0000\u0000\u0000\u04f1\u0001\u0000\u0000\u0000\u0000"+ - "\u04f3\u0001\u0000\u0000\u0000\u0000\u04f5\u0001\u0000\u0000\u0000\u0000"+ - "\u04f7\u0001\u0000\u0000\u0000\u0000\u04f9\u0001\u0000\u0000\u0000\u0000"+ - "\u04fb\u0001\u0000\u0000\u0000\u0000\u04fd\u0001\u0000\u0000\u0000\u0000"+ - "\u04ff\u0001\u0000\u0000\u0000\u0000\u0501\u0001\u0000\u0000\u0000\u0000"+ - "\u0503\u0001\u0000\u0000\u0000\u0000\u0505\u0001\u0000\u0000\u0000\u0000"+ - "\u0507\u0001\u0000\u0000\u0000\u0000\u0509\u0001\u0000\u0000\u0000\u0000"+ - "\u050b\u0001\u0000\u0000\u0000\u0000\u050d\u0001\u0000\u0000\u0000\u0000"+ - "\u050f\u0001\u0000\u0000\u0000\u0000\u0511\u0001\u0000\u0000\u0000\u0000"+ - "\u0513\u0001\u0000\u0000\u0000\u0000\u0515\u0001\u0000\u0000\u0000\u0000"+ - "\u0517\u0001\u0000\u0000\u0000\u0000\u0519\u0001\u0000\u0000\u0000\u0000"+ - "\u051b\u0001\u0000\u0000\u0000\u0000\u051d\u0001\u0000\u0000\u0000\u0000"+ - "\u051f\u0001\u0000\u0000\u0000\u0000\u0521\u0001\u0000\u0000\u0000\u0000"+ - "\u0523\u0001\u0000\u0000\u0000\u0000\u0525\u0001\u0000\u0000\u0000\u0000"+ - "\u0527\u0001\u0000\u0000\u0000\u0000\u0529\u0001\u0000\u0000\u0000\u0000"+ - "\u052b\u0001\u0000\u0000\u0000\u0000\u052d\u0001\u0000\u0000\u0000\u0000"+ - "\u052f\u0001\u0000\u0000\u0000\u0000\u0531\u0001\u0000\u0000\u0000\u0000"+ - "\u0533\u0001\u0000\u0000\u0000\u0000\u0535\u0001\u0000\u0000\u0000\u0000"+ - "\u0537\u0001\u0000\u0000\u0000\u0000\u0539\u0001\u0000\u0000\u0000\u0000"+ - "\u053b\u0001\u0000\u0000\u0000\u0000\u053d\u0001\u0000\u0000\u0000\u0000"+ - "\u053f\u0001\u0000\u0000\u0000\u0000\u0541\u0001\u0000\u0000\u0000\u0000"+ - "\u0543\u0001\u0000\u0000\u0000\u0000\u0545\u0001\u0000\u0000\u0000\u0000"+ - "\u0547\u0001\u0000\u0000\u0000\u0000\u0549\u0001\u0000\u0000\u0000\u0000"+ - "\u054b\u0001\u0000\u0000\u0000\u0000\u054d\u0001\u0000\u0000\u0000\u0000"+ - "\u054f\u0001\u0000\u0000\u0000\u0000\u0551\u0001\u0000\u0000\u0000\u0000"+ - "\u0553\u0001\u0000\u0000\u0000\u0000\u0555\u0001\u0000\u0000\u0000\u0000"+ - "\u0557\u0001\u0000\u0000\u0000\u0000\u0559\u0001\u0000\u0000\u0000\u0000"+ - "\u055b\u0001\u0000\u0000\u0000\u0000\u055d\u0001\u0000\u0000\u0000\u0000"+ - "\u055f\u0001\u0000\u0000\u0000\u0000\u0561\u0001\u0000\u0000\u0000\u0000"+ - "\u0563\u0001\u0000\u0000\u0000\u0000\u0565\u0001\u0000\u0000\u0000\u0000"+ - "\u0567\u0001\u0000\u0000\u0000\u0000\u0569\u0001\u0000\u0000\u0000\u0000"+ - "\u056b\u0001\u0000\u0000\u0000\u0000\u056d\u0001\u0000\u0000\u0000\u0000"+ - "\u056f\u0001\u0000\u0000\u0000\u0000\u0571\u0001\u0000\u0000\u0000\u0000"+ - "\u0573\u0001\u0000\u0000\u0000\u0000\u0575\u0001\u0000\u0000\u0000\u0000"+ - "\u0577\u0001\u0000\u0000\u0000\u0000\u0579\u0001\u0000\u0000\u0000\u0000"+ - "\u057b\u0001\u0000\u0000\u0000\u0000\u057d\u0001\u0000\u0000\u0000\u0000"+ - "\u057f\u0001\u0000\u0000\u0000\u0000\u0581\u0001\u0000\u0000\u0000\u0000"+ - "\u0583\u0001\u0000\u0000\u0000\u0000\u0585\u0001\u0000\u0000\u0000\u0000"+ - "\u0587\u0001\u0000\u0000\u0000\u0000\u0589\u0001\u0000\u0000\u0000\u0000"+ - "\u058b\u0001\u0000\u0000\u0000\u0000\u058d\u0001\u0000\u0000\u0000\u0000"+ - "\u058f\u0001\u0000\u0000\u0000\u0000\u0591\u0001\u0000\u0000\u0000\u0000"+ - "\u0593\u0001\u0000\u0000\u0000\u0000\u0595\u0001\u0000\u0000\u0000\u0000"+ - "\u0597\u0001\u0000\u0000\u0000\u0000\u0599\u0001\u0000\u0000\u0000\u0000"+ - "\u059b\u0001\u0000\u0000\u0000\u0000\u059d\u0001\u0000\u0000\u0000\u0000"+ - "\u059f\u0001\u0000\u0000\u0000\u0000\u05a1\u0001\u0000\u0000\u0000\u0000"+ - "\u05a3\u0001\u0000\u0000\u0000\u0000\u05a5\u0001\u0000\u0000\u0000\u0000"+ - "\u05a7\u0001\u0000\u0000\u0000\u0000\u05a9\u0001\u0000\u0000\u0000\u0000"+ - "\u05ab\u0001\u0000\u0000\u0000\u0000\u05ad\u0001\u0000\u0000\u0000\u0000"+ - "\u05af\u0001\u0000\u0000\u0000\u0000\u05b1\u0001\u0000\u0000\u0000\u0000"+ - "\u05b3\u0001\u0000\u0000\u0000\u0000\u05b5\u0001\u0000\u0000\u0000\u0000"+ - "\u05b7\u0001\u0000\u0000\u0000\u0000\u05b9\u0001\u0000\u0000\u0000\u0000"+ - "\u05bb\u0001\u0000\u0000\u0000\u0000\u05bd\u0001\u0000\u0000\u0000\u0000"+ - "\u05bf\u0001\u0000\u0000\u0000\u0000\u05c1\u0001\u0000\u0000\u0000\u0000"+ - "\u05c3\u0001\u0000\u0000\u0000\u0000\u05c5\u0001\u0000\u0000\u0000\u0000"+ - "\u05c7\u0001\u0000\u0000\u0000\u0000\u05c9\u0001\u0000\u0000\u0000\u0000"+ - "\u05cb\u0001\u0000\u0000\u0000\u0000\u05cd\u0001\u0000\u0000\u0000\u0000"+ - "\u05cf\u0001\u0000\u0000\u0000\u0000\u05d1\u0001\u0000\u0000\u0000\u0000"+ - "\u05d3\u0001\u0000\u0000\u0000\u0000\u05d5\u0001\u0000\u0000\u0000\u0000"+ - "\u05d7\u0001\u0000\u0000\u0000\u0000\u05d9\u0001\u0000\u0000\u0000\u0000"+ - "\u05db\u0001\u0000\u0000\u0000\u0000\u05dd\u0001\u0000\u0000\u0000\u0000"+ - "\u05df\u0001\u0000\u0000\u0000\u0000\u05e1\u0001\u0000\u0000\u0000\u0000"+ - "\u05e3\u0001\u0000\u0000\u0000\u0000\u05e5\u0001\u0000\u0000\u0000\u0000"+ - "\u05e7\u0001\u0000\u0000\u0000\u0000\u05e9\u0001\u0000\u0000\u0000\u0000"+ - "\u05eb\u0001\u0000\u0000\u0000\u0000\u05ed\u0001\u0000\u0000\u0000\u0000"+ - "\u05ef\u0001\u0000\u0000\u0000\u0000\u05f1\u0001\u0000\u0000\u0000\u0000"+ - "\u05f3\u0001\u0000\u0000\u0000\u0000\u05f5\u0001\u0000\u0000\u0000\u0000"+ - "\u05f7\u0001\u0000\u0000\u0000\u0000\u05f9\u0001\u0000\u0000\u0000\u0000"+ - "\u05fb\u0001\u0000\u0000\u0000\u0000\u05fd\u0001\u0000\u0000\u0000\u0000"+ - "\u05ff\u0001\u0000\u0000\u0000\u0000\u0601\u0001\u0000\u0000\u0000\u0000"+ - "\u0603\u0001\u0000\u0000\u0000\u0000\u0605\u0001\u0000\u0000\u0000\u0000"+ - "\u0607\u0001\u0000\u0000\u0000\u0000\u0609\u0001\u0000\u0000\u0000\u0000"+ - "\u060b\u0001\u0000\u0000\u0000\u0000\u060d\u0001\u0000\u0000\u0000\u0000"+ - "\u060f\u0001\u0000\u0000\u0000\u0000\u0611\u0001\u0000\u0000\u0000\u0000"+ - "\u0613\u0001\u0000\u0000\u0000\u0000\u0615\u0001\u0000\u0000\u0000\u0000"+ - "\u0617\u0001\u0000\u0000\u0000\u0000\u0619\u0001\u0000\u0000\u0000\u0000"+ - "\u061b\u0001\u0000\u0000\u0000\u0000\u061d\u0001\u0000\u0000\u0000\u0000"+ - "\u061f\u0001\u0000\u0000\u0000\u0000\u0621\u0001\u0000\u0000\u0000\u0000"+ - "\u0623\u0001\u0000\u0000\u0000\u0000\u0625\u0001\u0000\u0000\u0000\u0000"+ - "\u0627\u0001\u0000\u0000\u0000\u0000\u0629\u0001\u0000\u0000\u0000\u0000"+ - "\u062b\u0001\u0000\u0000\u0000\u0000\u062d\u0001\u0000\u0000\u0000\u0000"+ - "\u062f\u0001\u0000\u0000\u0000\u0000\u0631\u0001\u0000\u0000\u0000\u0000"+ - "\u0633\u0001\u0000\u0000\u0000\u0000\u0635\u0001\u0000\u0000\u0000\u0000"+ - "\u0637\u0001\u0000\u0000\u0000\u0000\u0639\u0001\u0000\u0000\u0000\u0000"+ - "\u063b\u0001\u0000\u0000\u0000\u0000\u063d\u0001\u0000\u0000\u0000\u0000"+ - "\u063f\u0001\u0000\u0000\u0000\u0000\u0641\u0001\u0000\u0000\u0000\u0000"+ - "\u0643\u0001\u0000\u0000\u0000\u0000\u0645\u0001\u0000\u0000\u0000\u0000"+ - "\u0647\u0001\u0000\u0000\u0000\u0000\u0649\u0001\u0000\u0000\u0000\u0000"+ - "\u064b\u0001\u0000\u0000\u0000\u0000\u064d\u0001\u0000\u0000\u0000\u0000"+ - "\u064f\u0001\u0000\u0000\u0000\u0000\u0651\u0001\u0000\u0000\u0000\u0000"+ - "\u0653\u0001\u0000\u0000\u0000\u0000\u0655\u0001\u0000\u0000\u0000\u0000"+ - "\u0657\u0001\u0000\u0000\u0000\u0000\u0659\u0001\u0000\u0000\u0000\u0000"+ - "\u065b\u0001\u0000\u0000\u0000\u0000\u065d\u0001\u0000\u0000\u0000\u0000"+ - "\u065f\u0001\u0000\u0000\u0000\u0000\u0661\u0001\u0000\u0000\u0000\u0000"+ - "\u0663\u0001\u0000\u0000\u0000\u0000\u0665\u0001\u0000\u0000\u0000\u0000"+ - "\u0667\u0001\u0000\u0000\u0000\u0000\u0669\u0001\u0000\u0000\u0000\u0000"+ - "\u066b\u0001\u0000\u0000\u0000\u0000\u066d\u0001\u0000\u0000\u0000\u0000"+ - "\u066f\u0001\u0000\u0000\u0000\u0000\u0671\u0001\u0000\u0000\u0000\u0000"+ - "\u0673\u0001\u0000\u0000\u0000\u0000\u0675\u0001\u0000\u0000\u0000\u0000"+ - "\u0677\u0001\u0000\u0000\u0000\u0000\u0679\u0001\u0000\u0000\u0000\u0000"+ - "\u067b\u0001\u0000\u0000\u0000\u0000\u067d\u0001\u0000\u0000\u0000\u0000"+ - "\u067f\u0001\u0000\u0000\u0000\u0000\u0681\u0001\u0000\u0000\u0000\u0000"+ - "\u0683\u0001\u0000\u0000\u0000\u0000\u0685\u0001\u0000\u0000\u0000\u0000"+ - "\u0687\u0001\u0000\u0000\u0000\u0000\u0689\u0001\u0000\u0000\u0000\u0000"+ - "\u068b\u0001\u0000\u0000\u0000\u0000\u068d\u0001\u0000\u0000\u0000\u0000"+ - "\u068f\u0001\u0000\u0000\u0000\u0000\u0691\u0001\u0000\u0000\u0000\u0000"+ - "\u0693\u0001\u0000\u0000\u0000\u0000\u0695\u0001\u0000\u0000\u0000\u0000"+ - "\u0697\u0001\u0000\u0000\u0000\u0000\u0699\u0001\u0000\u0000\u0000\u0000"+ - "\u069b\u0001\u0000\u0000\u0000\u0000\u069d\u0001\u0000\u0000\u0000\u0000"+ - "\u069f\u0001\u0000\u0000\u0000\u0000\u06a1\u0001\u0000\u0000\u0000\u0000"+ - "\u06a3\u0001\u0000\u0000\u0000\u0000\u06a5\u0001\u0000\u0000\u0000\u0000"+ - "\u06a7\u0001\u0000\u0000\u0000\u0000\u06a9\u0001\u0000\u0000\u0000\u0000"+ - "\u06ab\u0001\u0000\u0000\u0000\u0000\u06ad\u0001\u0000\u0000\u0000\u0000"+ - "\u06af\u0001\u0000\u0000\u0000\u0000\u06b1\u0001\u0000\u0000\u0000\u0000"+ - "\u06b3\u0001\u0000\u0000\u0000\u0000\u06b5\u0001\u0000\u0000\u0000\u0000"+ - "\u06b7\u0001\u0000\u0000\u0000\u0000\u06b9\u0001\u0000\u0000\u0000\u0000"+ - "\u06bb\u0001\u0000\u0000\u0000\u0000\u06bd\u0001\u0000\u0000\u0000\u0000"+ - "\u06bf\u0001\u0000\u0000\u0000\u0000\u06c1\u0001\u0000\u0000\u0000\u0001"+ - "\u06c4\u0001\u0000\u0000\u0000\u0003\u06ca\u0001\u0000\u0000\u0000\u0005"+ - "\u06d8\u0001\u0000\u0000\u0000\u0007\u06e5\u0001\u0000\u0000\u0000\t\u06e7"+ - "\u0001\u0000\u0000\u0000\u000b\u06e9\u0001\u0000\u0000\u0000\r\u06eb\u0001"+ - "\u0000\u0000\u0000\u000f\u06ed\u0001\u0000\u0000\u0000\u0011\u06ef\u0001"+ - "\u0000\u0000\u0000\u0013\u06f1\u0001\u0000\u0000\u0000\u0015\u06f3\u0001"+ - "\u0000\u0000\u0000\u0017\u06f5\u0001\u0000\u0000\u0000\u0019\u06f7\u0001"+ - "\u0000\u0000\u0000\u001b\u06f9\u0001\u0000\u0000\u0000\u001d\u06fb\u0001"+ - "\u0000\u0000\u0000\u001f\u06fd\u0001\u0000\u0000\u0000!\u06ff\u0001\u0000"+ - "\u0000\u0000#\u0701\u0001\u0000\u0000\u0000%\u0703\u0001\u0000\u0000\u0000"+ - "\'\u0705\u0001\u0000\u0000\u0000)\u0707\u0001\u0000\u0000\u0000+\u0709"+ - "\u0001\u0000\u0000\u0000-\u070b\u0001\u0000\u0000\u0000/\u070d\u0001\u0000"+ - "\u0000\u00001\u070f\u0001\u0000\u0000\u00003\u0711\u0001\u0000\u0000\u0000"+ - "5\u0713\u0001\u0000\u0000\u00007\u0715\u0001\u0000\u0000\u00009\u0717"+ - "\u0001\u0000\u0000\u0000;\u0719\u0001\u0000\u0000\u0000=\u071b\u0001\u0000"+ - "\u0000\u0000?\u071d\u0001\u0000\u0000\u0000A\u072a\u0001\u0000\u0000\u0000"+ - "C\u0737\u0001\u0000\u0000\u0000E\u0744\u0001\u0000\u0000\u0000G\u0746"+ - "\u0001\u0000\u0000\u0000I\u074c\u0001\u0000\u0000\u0000K\u0750\u0001\u0000"+ - "\u0000\u0000M\u0759\u0001\u0000\u0000\u0000O\u0760\u0001\u0000\u0000\u0000"+ - "Q\u0767\u0001\u0000\u0000\u0000S\u076b\u0001\u0000\u0000\u0000U\u076f"+ - "\u0001\u0000\u0000\u0000W\u0775\u0001\u0000\u0000\u0000Y\u077b\u0001\u0000"+ - "\u0000\u0000[\u0785\u0001\u0000\u0000\u0000]\u078b\u0001\u0000\u0000\u0000"+ - "_\u078f\u0001\u0000\u0000\u0000a\u0798\u0001\u0000\u0000\u0000c\u079d"+ - "\u0001\u0000\u0000\u0000e\u07a3\u0001\u0000\u0000\u0000g\u07aa\u0001\u0000"+ - "\u0000\u0000i\u07b2\u0001\u0000\u0000\u0000k\u07ba\u0001\u0000\u0000\u0000"+ - "m\u07be\u0001\u0000\u0000\u0000o\u07c2\u0001\u0000\u0000\u0000q\u07c6"+ - "\u0001\u0000\u0000\u0000s\u07cc\u0001\u0000\u0000\u0000u\u07cf\u0001\u0000"+ - "\u0000\u0000w\u07d3\u0001\u0000\u0000\u0000y\u07de\u0001\u0000\u0000\u0000"+ - "{\u07e8\u0001\u0000\u0000\u0000}\u07f3\u0001\u0000\u0000\u0000\u007f\u07fe"+ - "\u0001\u0000\u0000\u0000\u0081\u0801\u0001\u0000\u0000\u0000\u0083\u0808"+ - "\u0001\u0000\u0000\u0000\u0085\u0812\u0001\u0000\u0000\u0000\u0087\u081d"+ - "\u0001\u0000\u0000\u0000\u0089\u082b\u0001\u0000\u0000\u0000\u008b\u082f"+ - "\u0001\u0000\u0000\u0000\u008d\u0838\u0001\u0000\u0000\u0000\u008f\u083f"+ - "\u0001\u0000\u0000\u0000\u0091\u0845\u0001\u0000\u0000\u0000\u0093\u084f"+ - "\u0001\u0000\u0000\u0000\u0095\u0857\u0001\u0000\u0000\u0000\u0097\u085e"+ - "\u0001\u0000\u0000\u0000\u0099\u0865\u0001\u0000\u0000\u0000\u009b\u0869"+ - "\u0001\u0000\u0000\u0000\u009d\u0874\u0001\u0000\u0000\u0000\u009f\u087b"+ - "\u0001\u0000\u0000\u0000\u00a1\u0880\u0001\u0000\u0000\u0000\u00a3\u0888"+ - "\u0001\u0000\u0000\u0000\u00a5\u088d\u0001\u0000\u0000\u0000\u00a7\u0895"+ - "\u0001\u0000\u0000\u0000\u00a9\u089d\u0001\u0000\u0000\u0000\u00ab\u08a0"+ - "\u0001\u0000\u0000\u0000\u00ad\u08a2\u0001\u0000\u0000\u0000\u00af\u08a8"+ - "\u0001\u0000\u0000\u0000\u00b1\u08ad\u0001\u0000\u0000\u0000\u00b3\u08b4"+ - "\u0001\u0000\u0000\u0000\u00b5\u08c0\u0001\u0000\u0000\u0000\u00b7\u08c8"+ - "\u0001\u0000\u0000\u0000\u00b9\u08d1\u0001\u0000\u0000\u0000\u00bb\u08d6"+ - "\u0001\u0000\u0000\u0000\u00bd\u08db\u0001\u0000\u0000\u0000\u00bf\u08e3"+ - "\u0001\u0000\u0000\u0000\u00c1\u08f0\u0001\u0000\u0000\u0000\u00c3\u08f5"+ - "\u0001\u0000\u0000\u0000\u00c5\u08fd\u0001\u0000\u0000\u0000\u00c7\u0903"+ - "\u0001\u0000\u0000\u0000\u00c9\u0908\u0001\u0000\u0000\u0000\u00cb\u0914"+ - "\u0001\u0000\u0000\u0000\u00cd\u091e\u0001\u0000\u0000\u0000\u00cf\u092f"+ - "\u0001\u0000\u0000\u0000\u00d1\u0945\u0001\u0000\u0000\u0000\u00d3\u0958"+ - "\u0001\u0000\u0000\u0000\u00d5\u096d\u0001\u0000\u0000\u0000\u00d7\u097d"+ - "\u0001\u0000\u0000\u0000\u00d9\u0988\u0001\u0000\u0000\u0000\u00db\u098e"+ - "\u0001\u0000\u0000\u0000\u00dd\u0996\u0001\u0000\u0000\u0000\u00df\u09a1"+ - "\u0001\u0000\u0000\u0000\u00e1\u09a7\u0001\u0000\u0000\u0000\u00e3\u09b4"+ - "\u0001\u0000\u0000\u0000\u00e5\u09b9\u0001\u0000\u0000\u0000\u00e7\u09bf"+ - "\u0001\u0000\u0000\u0000\u00e9\u09c7\u0001\u0000\u0000\u0000\u00eb\u09d0"+ - "\u0001\u0000\u0000\u0000\u00ed\u09d6\u0001\u0000\u0000\u0000\u00ef\u09de"+ - "\u0001\u0000\u0000\u0000\u00f1\u09e8\u0001\u0000\u0000\u0000\u00f3\u09fa"+ - "\u0001\u0000\u0000\u0000\u00f5\u0a09\u0001\u0000\u0000\u0000\u00f7\u0a1a"+ - "\u0001\u0000\u0000\u0000\u00f9\u0a22\u0001\u0000\u0000\u0000\u00fb\u0a29"+ - "\u0001\u0000\u0000\u0000\u00fd\u0a35\u0001\u0000\u0000\u0000\u00ff\u0a46"+ - "\u0001\u0000\u0000\u0000\u0101\u0a5c\u0001\u0000\u0000\u0000\u0103\u0a64"+ - "\u0001\u0000\u0000\u0000\u0105\u0a6b\u0001\u0000\u0000\u0000\u0107\u0a75"+ - "\u0001\u0000\u0000\u0000\u0109\u0a80\u0001\u0000\u0000\u0000\u010b\u0a8a"+ - "\u0001\u0000\u0000\u0000\u010d\u0a9b\u0001\u0000\u0000\u0000\u010f\u0aa9"+ - "\u0001\u0000\u0000\u0000\u0111\u0ab2\u0001\u0000\u0000\u0000\u0113\u0aba"+ - "\u0001\u0000\u0000\u0000\u0115\u0ac5\u0001\u0000\u0000\u0000\u0117\u0ad5"+ - "\u0001\u0000\u0000\u0000\u0119\u0ae0\u0001\u0000\u0000\u0000\u011b\u0af3"+ - "\u0001\u0000\u0000\u0000\u011d\u0b03\u0001\u0000\u0000\u0000\u011f\u0b15"+ - "\u0001\u0000\u0000\u0000\u0121\u0b21\u0001\u0000\u0000\u0000\u0123\u0b2d"+ - "\u0001\u0000\u0000\u0000\u0125\u0b36\u0001\u0000\u0000\u0000\u0127\u0b3f"+ - "\u0001\u0000\u0000\u0000\u0129\u0b4a\u0001\u0000\u0000\u0000\u012b\u0b52"+ - "\u0001\u0000\u0000\u0000\u012d\u0b57\u0001\u0000\u0000\u0000\u012f\u0b5c"+ - "\u0001\u0000\u0000\u0000\u0131\u0b6a\u0001\u0000\u0000\u0000\u0133\u0b70"+ - "\u0001\u0000\u0000\u0000\u0135\u0b76\u0001\u0000\u0000\u0000\u0137\u0b80"+ - "\u0001\u0000\u0000\u0000\u0139\u0b8b\u0001\u0000\u0000\u0000\u013b\u0b92"+ - "\u0001\u0000\u0000\u0000\u013d\u0b9b\u0001\u0000\u0000\u0000\u013f\u0ba6"+ - "\u0001\u0000\u0000\u0000\u0141\u0bac\u0001\u0000\u0000\u0000\u0143\u0bb0"+ - "\u0001\u0000\u0000\u0000\u0145\u0bb5\u0001\u0000\u0000\u0000\u0147\u0bbf"+ - "\u0001\u0000\u0000\u0000\u0149\u0bc7\u0001\u0000\u0000\u0000\u014b\u0bd4"+ - "\u0001\u0000\u0000\u0000\u014d\u0bf4\u0001\u0000\u0000\u0000\u014f\u0c01"+ - "\u0001\u0000\u0000\u0000\u0151\u0c0e\u0001\u0000\u0000\u0000\u0153\u0c1b"+ - "\u0001\u0000\u0000\u0000\u0155\u0c2d\u0001\u0000\u0000\u0000\u0157\u0c4e"+ - "\u0001\u0000\u0000\u0000\u0159\u0c5b\u0001\u0000\u0000\u0000\u015b\u0c62"+ - "\u0001\u0000\u0000\u0000\u015d\u0c6e\u0001\u0000\u0000\u0000\u015f\u0c74"+ - "\u0001\u0000\u0000\u0000\u0161\u0c79\u0001\u0000\u0000\u0000\u0163\u0c82"+ - "\u0001\u0000\u0000\u0000\u0165\u0c87\u0001\u0000\u0000\u0000\u0167\u0c9e"+ - "\u0001\u0000\u0000\u0000\u0169\u0cba\u0001\u0000\u0000\u0000\u016b\u0cbe"+ - "\u0001\u0000\u0000\u0000\u016d\u0cc9\u0001\u0000\u0000\u0000\u016f\u0ccd"+ - "\u0001\u0000\u0000\u0000\u0171\u0cd5\u0001\u0000\u0000\u0000\u0173\u0cdd"+ - "\u0001\u0000\u0000\u0000\u0175\u0ce5\u0001\u0000\u0000\u0000\u0177\u0cee"+ - "\u0001\u0000\u0000\u0000\u0179\u0cf8\u0001\u0000\u0000\u0000\u017b\u0d03"+ - "\u0001\u0000\u0000\u0000\u017d\u0d0c\u0001\u0000\u0000\u0000\u017f\u0d14"+ - "\u0001\u0000\u0000\u0000\u0181\u0d1c\u0001\u0000\u0000\u0000\u0183\u0d23"+ - "\u0001\u0000\u0000\u0000\u0185\u0d2a\u0001\u0000\u0000\u0000\u0187\u0d34"+ - "\u0001\u0000\u0000\u0000\u0189\u0d3f\u0001\u0000\u0000\u0000\u018b\u0d4a"+ - "\u0001\u0000\u0000\u0000\u018d\u0d52\u0001\u0000\u0000\u0000\u018f\u0d58"+ - "\u0001\u0000\u0000\u0000\u0191\u0d5e\u0001\u0000\u0000\u0000\u0193\u0d66"+ - "\u0001\u0000\u0000\u0000\u0195\u0d6b\u0001\u0000\u0000\u0000\u0197\u0d74"+ - "\u0001\u0000\u0000\u0000\u0199\u0d7f\u0001\u0000\u0000\u0000\u019b\u0d87"+ - "\u0001\u0000\u0000\u0000\u019d\u0d92\u0001\u0000\u0000\u0000\u019f\u0da0"+ - "\u0001\u0000\u0000\u0000\u01a1\u0dac\u0001\u0000\u0000\u0000\u01a3\u0db7"+ - "\u0001\u0000\u0000\u0000\u01a5\u0dbf\u0001\u0000\u0000\u0000\u01a7\u0dd5"+ - "\u0001\u0000\u0000\u0000\u01a9\u0ddd\u0001\u0000\u0000\u0000\u01ab\u0de8"+ - "\u0001\u0000\u0000\u0000\u01ad\u0df1\u0001\u0000\u0000\u0000\u01af\u0dfa"+ - "\u0001\u0000\u0000\u0000\u01b1\u0dfd\u0001\u0000\u0000\u0000\u01b3\u0e04"+ - "\u0001\u0000\u0000\u0000\u01b5\u0e0b\u0001\u0000\u0000\u0000\u01b7\u0e10"+ - "\u0001\u0000\u0000\u0000\u01b9\u0e18\u0001\u0000\u0000\u0000\u01bb\u0e29"+ - "\u0001\u0000\u0000\u0000\u01bd\u0e3f\u0001\u0000\u0000\u0000\u01bf\u0e44"+ - "\u0001\u0000\u0000\u0000\u01c1\u0e4c\u0001\u0000\u0000\u0000\u01c3\u0e51"+ - "\u0001\u0000\u0000\u0000\u01c5\u0e58\u0001\u0000\u0000\u0000\u01c7\u0e61"+ - "\u0001\u0000\u0000\u0000\u01c9\u0e6b\u0001\u0000\u0000\u0000\u01cb\u0e6f"+ - "\u0001\u0000\u0000\u0000\u01cd\u0e78\u0001\u0000\u0000\u0000\u01cf\u0e7f"+ - "\u0001\u0000\u0000\u0000\u01d1\u0e86\u0001\u0000\u0000\u0000\u01d3\u0e8c"+ - "\u0001\u0000\u0000\u0000\u01d5\u0e93\u0001\u0000\u0000\u0000\u01d7\u0e9d"+ - "\u0001\u0000\u0000\u0000\u01d9\u0ea5\u0001\u0000\u0000\u0000\u01db\u0eaf"+ - "\u0001\u0000\u0000\u0000\u01dd\u0eb9\u0001\u0000\u0000\u0000\u01df\u0ebe"+ - "\u0001\u0000\u0000\u0000\u01e1\u0ec6\u0001\u0000\u0000\u0000\u01e3\u0ecf"+ - "\u0001\u0000\u0000\u0000\u01e5\u0ed6\u0001\u0000\u0000\u0000\u01e7\u0eda"+ - "\u0001\u0000\u0000\u0000\u01e9\u0ee2\u0001\u0000\u0000\u0000\u01eb\u0eeb"+ - "\u0001\u0000\u0000\u0000\u01ed\u0ef5\u0001\u0000\u0000\u0000\u01ef\u0efe"+ - "\u0001\u0000\u0000\u0000\u01f1\u0f06\u0001\u0000\u0000\u0000\u01f3\u0f0c"+ - "\u0001\u0000\u0000\u0000\u01f5\u0f12\u0001\u0000\u0000\u0000\u01f7\u0f19"+ - "\u0001\u0000\u0000\u0000\u01f9\u0f20\u0001\u0000\u0000\u0000\u01fb\u0f26"+ - "\u0001\u0000\u0000\u0000\u01fd\u0f2c\u0001\u0000\u0000\u0000\u01ff\u0f32"+ - "\u0001\u0000\u0000\u0000\u0201\u0f38\u0001\u0000\u0000\u0000\u0203\u0f42"+ - "\u0001\u0000\u0000\u0000\u0205\u0f46\u0001\u0000\u0000\u0000\u0207\u0f4c"+ - "\u0001\u0000\u0000\u0000\u0209\u0f54\u0001\u0000\u0000\u0000\u020b\u0f5b"+ - "\u0001\u0000\u0000\u0000\u020d\u0f63\u0001\u0000\u0000\u0000\u020f\u0f6b"+ - "\u0001\u0000\u0000\u0000\u0211\u0f71\u0001\u0000\u0000\u0000\u0213\u0f76"+ - "\u0001\u0000\u0000\u0000\u0215\u0f7d\u0001\u0000\u0000\u0000\u0217\u0f82"+ - "\u0001\u0000\u0000\u0000\u0219\u0f87\u0001\u0000\u0000\u0000\u021b\u0f90"+ - "\u0001\u0000\u0000\u0000\u021d\u0f97\u0001\u0000\u0000\u0000\u021f\u0f99"+ - "\u0001\u0000\u0000\u0000\u0221\u0fa1\u0001\u0000\u0000\u0000\u0223\u0fab"+ - "\u0001\u0000\u0000\u0000\u0225\u0faf\u0001\u0000\u0000\u0000\u0227\u0fb6"+ - "\u0001\u0000\u0000\u0000\u0229\u0fb9\u0001\u0000\u0000\u0000\u022b\u0fbe"+ - "\u0001\u0000\u0000\u0000\u022d\u0fc4\u0001\u0000\u0000\u0000\u022f\u0fcc"+ - "\u0001\u0000\u0000\u0000\u0231\u0fd5\u0001\u0000\u0000\u0000\u0233\u0fdb"+ - "\u0001\u0000\u0000\u0000\u0235\u0fe4\u0001\u0000\u0000\u0000\u0237\u0fec"+ - "\u0001\u0000\u0000\u0000\u0239\u0ff3\u0001\u0000\u0000\u0000\u023b\u0ffd"+ - "\u0001\u0000\u0000\u0000\u023d\u1002\u0001\u0000\u0000\u0000\u023f\u1007"+ - "\u0001\u0000\u0000\u0000\u0241\u100c\u0001\u0000\u0000\u0000\u0243\u1015"+ - "\u0001\u0000\u0000\u0000\u0245\u101c\u0001\u0000\u0000\u0000\u0247\u1022"+ - "\u0001\u0000\u0000\u0000\u0249\u102c\u0001\u0000\u0000\u0000\u024b\u1036"+ - "\u0001\u0000\u0000\u0000\u024d\u1045\u0001\u0000\u0000\u0000\u024f\u104e"+ - "\u0001\u0000\u0000\u0000\u0251\u1051\u0001\u0000\u0000\u0000\u0253\u105b"+ - "\u0001\u0000\u0000\u0000\u0255\u1065\u0001\u0000\u0000\u0000\u0257\u106b"+ - "\u0001\u0000\u0000\u0000\u0259\u1075\u0001\u0000\u0000\u0000\u025b\u107b"+ - "\u0001\u0000\u0000\u0000\u025d\u1084\u0001\u0000\u0000\u0000\u025f\u108f"+ - "\u0001\u0000\u0000\u0000\u0261\u1099\u0001\u0000\u0000\u0000\u0263\u109f"+ - "\u0001\u0000\u0000\u0000\u0265\u10a5\u0001\u0000\u0000\u0000\u0267\u10ab"+ - "\u0001\u0000\u0000\u0000\u0269\u10b7\u0001\u0000\u0000\u0000\u026b\u10be"+ - "\u0001\u0000\u0000\u0000\u026d\u10c7\u0001\u0000\u0000\u0000\u026f\u10d4"+ - "\u0001\u0000\u0000\u0000\u0271\u10dc\u0001\u0000\u0000\u0000\u0273\u10e0"+ - "\u0001\u0000\u0000\u0000\u0275\u10e8\u0001\u0000\u0000\u0000\u0277\u10f2"+ - "\u0001\u0000\u0000\u0000\u0279\u10ff\u0001\u0000\u0000\u0000\u027b\u1108"+ - "\u0001\u0000\u0000\u0000\u027d\u110d\u0001\u0000\u0000\u0000\u027f\u1115"+ - "\u0001\u0000\u0000\u0000\u0281\u1118\u0001\u0000\u0000\u0000\u0283\u1122"+ - "\u0001\u0000\u0000\u0000\u0285\u112a\u0001\u0000\u0000\u0000\u0287\u112f"+ - "\u0001\u0000\u0000\u0000\u0289\u1131\u0001\u0000\u0000\u0000\u028b\u1135"+ - "\u0001\u0000\u0000\u0000\u028d\u1140\u0001\u0000\u0000\u0000\u028f\u1149"+ - "\u0001\u0000\u0000\u0000\u0291\u114f\u0001\u0000\u0000\u0000\u0293\u115b"+ - "\u0001\u0000\u0000\u0000\u0295\u1164\u0001\u0000\u0000\u0000\u0297\u116a"+ - "\u0001\u0000\u0000\u0000\u0299\u116f\u0001\u0000\u0000\u0000\u029b\u1177"+ - "\u0001\u0000\u0000\u0000\u029d\u117f\u0001\u0000\u0000\u0000\u029f\u1185"+ - "\u0001\u0000\u0000\u0000\u02a1\u118a\u0001\u0000\u0000\u0000\u02a3\u1191"+ - "\u0001\u0000\u0000\u0000\u02a5\u1196\u0001\u0000\u0000\u0000\u02a7\u119c"+ - "\u0001\u0000\u0000\u0000\u02a9\u11a1\u0001\u0000\u0000\u0000\u02ab\u11a7"+ - "\u0001\u0000\u0000\u0000\u02ad\u11ae\u0001\u0000\u0000\u0000\u02af\u11b1"+ - "\u0001\u0000\u0000\u0000\u02b1\u11b6\u0001\u0000\u0000\u0000\u02b3\u11bc"+ - "\u0001\u0000\u0000\u0000\u02b5\u11c6\u0001\u0000\u0000\u0000\u02b7\u11d5"+ - "\u0001\u0000\u0000\u0000\u02b9\u11de\u0001\u0000\u0000\u0000\u02bb\u11e6"+ - "\u0001\u0000\u0000\u0000\u02bd\u11eb\u0001\u0000\u0000\u0000\u02bf\u11f2"+ - "\u0001\u0000\u0000\u0000\u02c1\u11f8\u0001\u0000\u0000\u0000\u02c3\u11fa"+ - "\u0001\u0000\u0000\u0000\u02c5\u11ff\u0001\u0000\u0000\u0000\u02c7\u1203"+ - "\u0001\u0000\u0000\u0000\u02c9\u120b\u0001\u0000\u0000\u0000\u02cb\u1211"+ - "\u0001\u0000\u0000\u0000\u02cd\u121e\u0001\u0000\u0000\u0000\u02cf\u1226"+ - "\u0001\u0000\u0000\u0000\u02d1\u122a\u0001\u0000\u0000\u0000\u02d3\u1233"+ - "\u0001\u0000\u0000\u0000\u02d5\u123a\u0001\u0000\u0000\u0000\u02d7\u1240"+ - "\u0001\u0000\u0000\u0000\u02d9\u124f\u0001\u0000\u0000\u0000\u02db\u1264"+ - "\u0001\u0000\u0000\u0000\u02dd\u1271\u0001\u0000\u0000\u0000\u02df\u1278"+ - "\u0001\u0000\u0000\u0000\u02e1\u127c\u0001\u0000\u0000\u0000\u02e3\u1283"+ - "\u0001\u0000\u0000\u0000\u02e5\u128c\u0001\u0000\u0000\u0000\u02e7\u1290"+ - "\u0001\u0000\u0000\u0000\u02e9\u1295\u0001\u0000\u0000\u0000\u02eb\u129e"+ - "\u0001\u0000\u0000\u0000\u02ed\u12a5\u0001\u0000\u0000\u0000\u02ef\u12ac"+ - "\u0001\u0000\u0000\u0000\u02f1\u12b2\u0001\u0000\u0000\u0000\u02f3\u12b7"+ - "\u0001\u0000\u0000\u0000\u02f5\u12bc\u0001\u0000\u0000\u0000\u02f7\u12c5"+ - "\u0001\u0000\u0000\u0000\u02f9\u12cb\u0001\u0000\u0000\u0000\u02fb\u12d0"+ - "\u0001\u0000\u0000\u0000\u02fd\u12d6\u0001\u0000\u0000\u0000\u02ff\u12df"+ - "\u0001\u0000\u0000\u0000\u0301\u12e7\u0001\u0000\u0000\u0000\u0303\u12ed"+ - "\u0001\u0000\u0000\u0000\u0305\u12f3\u0001\u0000\u0000\u0000\u0307\u12fb"+ - "\u0001\u0000\u0000\u0000\u0309\u12ff\u0001\u0000\u0000\u0000\u030b\u1304"+ - "\u0001\u0000\u0000\u0000\u030d\u1307\u0001\u0000\u0000\u0000\u030f\u1312"+ - "\u0001\u0000\u0000\u0000\u0311\u131f\u0001\u0000\u0000\u0000\u0313\u1324"+ - "\u0001\u0000\u0000\u0000\u0315\u132e\u0001\u0000\u0000\u0000\u0317\u1339"+ - "\u0001\u0000\u0000\u0000\u0319\u133d\u0001\u0000\u0000\u0000\u031b\u1345"+ - "\u0001\u0000\u0000\u0000\u031d\u134c\u0001\u0000\u0000\u0000\u031f\u1354"+ - "\u0001\u0000\u0000\u0000\u0321\u135b\u0001\u0000\u0000\u0000\u0323\u1360"+ - "\u0001\u0000\u0000\u0000\u0325\u1369\u0001\u0000\u0000\u0000\u0327\u1370"+ - "\u0001\u0000\u0000\u0000\u0329\u1376\u0001\u0000\u0000\u0000\u032b\u137d"+ - "\u0001\u0000\u0000\u0000\u032d\u1385\u0001\u0000\u0000\u0000\u032f\u138c"+ - "\u0001\u0000\u0000\u0000\u0331\u1399\u0001\u0000\u0000\u0000\u0333\u13a0"+ - "\u0001\u0000\u0000\u0000\u0335\u13a3\u0001\u0000\u0000\u0000\u0337\u13a7"+ - "\u0001\u0000\u0000\u0000\u0339\u13ae\u0001\u0000\u0000\u0000\u033b\u13b3"+ - "\u0001\u0000\u0000\u0000\u033d\u13b7\u0001\u0000\u0000\u0000\u033f\u13ba"+ - "\u0001\u0000\u0000\u0000\u0341\u13bf\u0001\u0000\u0000\u0000\u0343\u13c4"+ - "\u0001\u0000\u0000\u0000\u0345\u13ce\u0001\u0000\u0000\u0000\u0347\u13d7"+ - "\u0001\u0000\u0000\u0000\u0349\u13de\u0001\u0000\u0000\u0000\u034b\u13e6"+ - "\u0001\u0000\u0000\u0000\u034d\u13e9\u0001\u0000\u0000\u0000\u034f\u13ef"+ - "\u0001\u0000\u0000\u0000\u0351\u13f8\u0001\u0000\u0000\u0000\u0353\u1403"+ - "\u0001\u0000\u0000\u0000\u0355\u140a\u0001\u0000\u0000\u0000\u0357\u140e"+ - "\u0001\u0000\u0000\u0000\u0359\u1414\u0001\u0000\u0000\u0000\u035b\u141b"+ - "\u0001\u0000\u0000\u0000\u035d\u1420\u0001\u0000\u0000\u0000\u035f\u1429"+ - "\u0001\u0000\u0000\u0000\u0361\u1431\u0001\u0000\u0000\u0000\u0363\u143c"+ - "\u0001\u0000\u0000\u0000\u0365\u1442\u0001\u0000\u0000\u0000\u0367\u1446"+ - "\u0001\u0000\u0000\u0000\u0369\u1450\u0001\u0000\u0000\u0000\u036b\u145f"+ - "\u0001\u0000\u0000\u0000\u036d\u146e\u0001\u0000\u0000\u0000\u036f\u1489"+ - "\u0001\u0000\u0000\u0000\u0371\u14a4\u0001\u0000\u0000\u0000\u0373\u14bc"+ - "\u0001\u0000\u0000\u0000\u0375\u14d6\u0001\u0000\u0000\u0000\u0377\u14e1"+ - "\u0001\u0000\u0000\u0000\u0379\u14e8\u0001\u0000\u0000\u0000\u037b\u14f0"+ - "\u0001\u0000\u0000\u0000\u037d\u14fa\u0001\u0000\u0000\u0000\u037f\u1501"+ - "\u0001\u0000\u0000\u0000\u0381\u150a\u0001\u0000\u0000\u0000\u0383\u150f"+ - "\u0001\u0000\u0000\u0000\u0385\u151c\u0001\u0000\u0000\u0000\u0387\u152c"+ - "\u0001\u0000\u0000\u0000\u0389\u153c\u0001\u0000\u0000\u0000\u038b\u1544"+ - "\u0001\u0000\u0000\u0000\u038d\u154a\u0001\u0000\u0000\u0000\u038f\u1550"+ - "\u0001\u0000\u0000\u0000\u0391\u1554\u0001\u0000\u0000\u0000\u0393\u155d"+ - "\u0001\u0000\u0000\u0000\u0395\u1565\u0001\u0000\u0000\u0000\u0397\u156b"+ - "\u0001\u0000\u0000\u0000\u0399\u1575\u0001\u0000\u0000\u0000\u039b\u157f"+ - "\u0001\u0000\u0000\u0000\u039d\u1586\u0001\u0000\u0000\u0000\u039f\u158f"+ - "\u0001\u0000\u0000\u0000\u03a1\u1597\u0001\u0000\u0000\u0000\u03a3\u15a0"+ - "\u0001\u0000\u0000\u0000\u03a5\u15a9\u0001\u0000\u0000\u0000\u03a7\u15b1"+ - "\u0001\u0000\u0000\u0000\u03a9\u15b7\u0001\u0000\u0000\u0000\u03ab\u15c2"+ - "\u0001\u0000\u0000\u0000\u03ad\u15cd\u0001\u0000\u0000\u0000\u03af\u15d7"+ - "\u0001\u0000\u0000\u0000\u03b1\u15de\u0001\u0000\u0000\u0000\u03b3\u15ea"+ - "\u0001\u0000\u0000\u0000\u03b5\u15f0\u0001\u0000\u0000\u0000\u03b7\u15f6"+ - "\u0001\u0000\u0000\u0000\u03b9\u15fb\u0001\u0000\u0000\u0000\u03bb\u1600"+ - "\u0001\u0000\u0000\u0000\u03bd\u1606\u0001\u0000\u0000\u0000\u03bf\u160b"+ - "\u0001\u0000\u0000\u0000\u03c1\u1614\u0001\u0000\u0000\u0000\u03c3\u161c"+ - "\u0001\u0000\u0000\u0000\u03c5\u1626\u0001\u0000\u0000\u0000\u03c7\u162a"+ - "\u0001\u0000\u0000\u0000\u03c9\u1635\u0001\u0000\u0000\u0000\u03cb\u1641"+ - "\u0001\u0000\u0000\u0000\u03cd\u1649\u0001\u0000\u0000\u0000\u03cf\u1653"+ - "\u0001\u0000\u0000\u0000\u03d1\u165d\u0001\u0000\u0000\u0000\u03d3\u1668"+ - "\u0001\u0000\u0000\u0000\u03d5\u1677\u0001\u0000\u0000\u0000\u03d7\u167f"+ - "\u0001\u0000\u0000\u0000\u03d9\u168a\u0001\u0000\u0000\u0000\u03db\u1693"+ - "\u0001\u0000\u0000\u0000\u03dd\u169c\u0001\u0000\u0000\u0000\u03df\u16a5"+ - "\u0001\u0000\u0000\u0000\u03e1\u16ad\u0001\u0000\u0000\u0000\u03e3\u16b6"+ - "\u0001\u0000\u0000\u0000\u03e5\u16be\u0001\u0000\u0000\u0000\u03e7\u16c5"+ - "\u0001\u0000\u0000\u0000\u03e9\u16d0\u0001\u0000\u0000\u0000\u03eb\u16d8"+ - "\u0001\u0000\u0000\u0000\u03ed\u16e0\u0001\u0000\u0000\u0000\u03ef\u16e6"+ - "\u0001\u0000\u0000\u0000\u03f1\u16ee\u0001\u0000\u0000\u0000\u03f3\u16f7"+ - "\u0001\u0000\u0000\u0000\u03f5\u16fe\u0001\u0000\u0000\u0000\u03f7\u1705"+ - "\u0001\u0000\u0000\u0000\u03f9\u171a\u0001\u0000\u0000\u0000\u03fb\u172a"+ - "\u0001\u0000\u0000\u0000\u03fd\u1740\u0001\u0000\u0000\u0000\u03ff\u1752"+ - "\u0001\u0000\u0000\u0000\u0401\u175c\u0001\u0000\u0000\u0000\u0403\u1764"+ - "\u0001\u0000\u0000\u0000\u0405\u176b\u0001\u0000\u0000\u0000\u0407\u1771"+ - "\u0001\u0000\u0000\u0000\u0409\u1776\u0001\u0000\u0000\u0000\u040b\u177f"+ - "\u0001\u0000\u0000\u0000\u040d\u1786\u0001\u0000\u0000\u0000\u040f\u178e"+ - "\u0001\u0000\u0000\u0000\u0411\u179e\u0001\u0000\u0000\u0000\u0413\u17ab"+ - "\u0001\u0000\u0000\u0000\u0415\u17ba\u0001\u0000\u0000\u0000\u0417\u17be"+ - "\u0001\u0000\u0000\u0000\u0419\u17c8\u0001\u0000\u0000\u0000\u041b\u17d3"+ - "\u0001\u0000\u0000\u0000\u041d\u17d8\u0001\u0000\u0000\u0000\u041f\u17dd"+ - "\u0001\u0000\u0000\u0000\u0421\u17e7\u0001\u0000\u0000\u0000\u0423\u17ed"+ - "\u0001\u0000\u0000\u0000\u0425\u17f4\u0001\u0000\u0000\u0000\u0427\u1800"+ - "\u0001\u0000\u0000\u0000\u0429\u1806\u0001\u0000\u0000\u0000\u042b\u1814"+ - "\u0001\u0000\u0000\u0000\u042d\u181f\u0001\u0000\u0000\u0000\u042f\u182c"+ - "\u0001\u0000\u0000\u0000\u0431\u1833\u0001\u0000\u0000\u0000\u0433\u183a"+ - "\u0001\u0000\u0000\u0000\u0435\u1841\u0001\u0000\u0000\u0000\u0437\u1849"+ - "\u0001\u0000\u0000\u0000\u0439\u1852\u0001\u0000\u0000\u0000\u043b\u1859"+ - "\u0001\u0000\u0000\u0000\u043d\u185e\u0001\u0000\u0000\u0000\u043f\u1868"+ - "\u0001\u0000\u0000\u0000\u0441\u1871\u0001\u0000\u0000\u0000\u0443\u187b"+ - "\u0001\u0000\u0000\u0000\u0445\u1888\u0001\u0000\u0000\u0000\u0447\u1894"+ - "\u0001\u0000\u0000\u0000\u0449\u189c\u0001\u0000\u0000\u0000\u044b\u18a9"+ - "\u0001\u0000\u0000\u0000\u044d\u18ad\u0001\u0000\u0000\u0000\u044f\u18b3"+ - "\u0001\u0000\u0000\u0000\u0451\u18b8\u0001\u0000\u0000\u0000\u0453\u18be"+ - "\u0001\u0000\u0000\u0000\u0455\u18c3\u0001\u0000\u0000\u0000\u0457\u18cb"+ - "\u0001\u0000\u0000\u0000\u0459\u18d2\u0001\u0000\u0000\u0000\u045b\u18d7"+ - "\u0001\u0000\u0000\u0000\u045d\u18dc\u0001\u0000\u0000\u0000\u045f\u18e5"+ - "\u0001\u0000\u0000\u0000\u0461\u18ee\u0001\u0000\u0000\u0000\u0463\u18f3"+ - "\u0001\u0000\u0000\u0000\u0465\u18fa\u0001\u0000\u0000\u0000\u0467\u1900"+ - "\u0001\u0000\u0000\u0000\u0469\u1909\u0001\u0000\u0000\u0000\u046b\u1917"+ - "\u0001\u0000\u0000\u0000\u046d\u1924\u0001\u0000\u0000\u0000\u046f\u1928"+ - "\u0001\u0000\u0000\u0000\u0471\u1930\u0001\u0000\u0000\u0000\u0473\u1939"+ - "\u0001\u0000\u0000\u0000\u0475\u1946\u0001\u0000\u0000\u0000\u0477\u194f"+ - "\u0001\u0000\u0000\u0000\u0479\u195a\u0001\u0000\u0000\u0000\u047b\u195f"+ - "\u0001\u0000\u0000\u0000\u047d\u1966\u0001\u0000\u0000\u0000\u047f\u196c"+ - "\u0001\u0000\u0000\u0000\u0481\u1972\u0001\u0000\u0000\u0000\u0483\u197c"+ - "\u0001\u0000\u0000\u0000\u0485\u1983\u0001\u0000\u0000\u0000\u0487\u198e"+ - "\u0001\u0000\u0000\u0000\u0489\u1999\u0001\u0000\u0000\u0000\u048b\u19a5"+ - "\u0001\u0000\u0000\u0000\u048d\u19ab\u0001\u0000\u0000\u0000\u048f\u19b2"+ - "\u0001\u0000\u0000\u0000\u0491\u19ba\u0001\u0000\u0000\u0000\u0493\u19c1"+ - "\u0001\u0000\u0000\u0000\u0495\u19cb\u0001\u0000\u0000\u0000\u0497\u19d1"+ - "\u0001\u0000\u0000\u0000\u0499\u19e1\u0001\u0000\u0000\u0000\u049b\u19e9"+ - "\u0001\u0000\u0000\u0000\u049d\u19f5\u0001\u0000\u0000\u0000\u049f\u1a02"+ - "\u0001\u0000\u0000\u0000\u04a1\u1a0c\u0001\u0000\u0000\u0000\u04a3\u1a10"+ - "\u0001\u0000\u0000\u0000\u04a5\u1a1a\u0001\u0000\u0000\u0000\u04a7\u1a20"+ - "\u0001\u0000\u0000\u0000\u04a9\u1a27\u0001\u0000\u0000\u0000\u04ab\u1a33"+ - "\u0001\u0000\u0000\u0000\u04ad\u1a39\u0001\u0000\u0000\u0000\u04af\u1a44"+ - "\u0001\u0000\u0000\u0000\u04b1\u1a50\u0001\u0000\u0000\u0000\u04b3\u1a5b"+ - "\u0001\u0000\u0000\u0000\u04b5\u1a60\u0001\u0000\u0000\u0000\u04b7\u1a69"+ - "\u0001\u0000\u0000\u0000\u04b9\u1a73\u0001\u0000\u0000\u0000\u04bb\u1a7d"+ - "\u0001\u0000\u0000\u0000\u04bd\u1a82\u0001\u0000\u0000\u0000\u04bf\u1a87"+ - "\u0001\u0000\u0000\u0000\u04c1\u1a8c\u0001\u0000\u0000\u0000\u04c3\u1a91"+ - "\u0001\u0000\u0000\u0000\u04c5\u1a9b\u0001\u0000\u0000\u0000\u04c7\u1aa9"+ - "\u0001\u0000\u0000\u0000\u04c9\u1ab9\u0001\u0000\u0000\u0000\u04cb\u1ac0"+ - "\u0001\u0000\u0000\u0000\u04cd\u1ac3\u0001\u0000\u0000\u0000\u04cf\u1ac9"+ - "\u0001\u0000\u0000\u0000\u04d1\u1ad9\u0001\u0000\u0000\u0000\u04d3\u1ae2"+ - "\u0001\u0000\u0000\u0000\u04d5\u1aee\u0001\u0000\u0000\u0000\u04d7\u1b01"+ - "\u0001\u0000\u0000\u0000\u04d9\u1b18\u0001\u0000\u0000\u0000\u04db\u1b31"+ - "\u0001\u0000\u0000\u0000\u04dd\u1b3b\u0001\u0000\u0000\u0000\u04df\u1b46"+ - "\u0001\u0000\u0000\u0000\u04e1\u1b50\u0001\u0000\u0000\u0000\u04e3\u1b5c"+ - "\u0001\u0000\u0000\u0000\u04e5\u1b62\u0001\u0000\u0000\u0000\u04e7\u1b6a"+ - "\u0001\u0000\u0000\u0000\u04e9\u1b7a\u0001\u0000\u0000\u0000\u04eb\u1b87"+ - "\u0001\u0000\u0000\u0000\u04ed\u1b96\u0001\u0000\u0000\u0000\u04ef\u1b9b"+ - "\u0001\u0000\u0000\u0000\u04f1\u1ba0\u0001\u0000\u0000\u0000\u04f3\u1ba9"+ - "\u0001\u0000\u0000\u0000\u04f5\u1bb1\u0001\u0000\u0000\u0000\u04f7\u1bb6"+ - "\u0001\u0000\u0000\u0000\u04f9\u1bbe\u0001\u0000\u0000\u0000\u04fb\u1bc8"+ - "\u0001\u0000\u0000\u0000\u04fd\u1bd4\u0001\u0000\u0000\u0000\u04ff\u1bda"+ - "\u0001\u0000\u0000\u0000\u0501\u1be6\u0001\u0000\u0000\u0000\u0503\u1bec"+ - "\u0001\u0000\u0000\u0000\u0505\u1bf3\u0001\u0000\u0000\u0000\u0507\u1bfb"+ - "\u0001\u0000\u0000\u0000\u0509\u1c04\u0001\u0000\u0000\u0000\u050b\u1c0c"+ - "\u0001\u0000\u0000\u0000\u050d\u1c13\u0001\u0000\u0000\u0000\u050f\u1c19"+ - "\u0001\u0000\u0000\u0000\u0511\u1c20\u0001\u0000\u0000\u0000\u0513\u1c26"+ - "\u0001\u0000\u0000\u0000\u0515\u1c2c\u0001\u0000\u0000\u0000\u0517\u1c31"+ - "\u0001\u0000\u0000\u0000\u0519\u1c4b\u0001\u0000\u0000\u0000\u051b\u1c62"+ - "\u0001\u0000\u0000\u0000\u051d\u1c79\u0001\u0000\u0000\u0000\u051f\u1c92"+ - "\u0001\u0000\u0000\u0000\u0521\u1c98\u0001\u0000\u0000\u0000\u0523\u1c9f"+ - "\u0001\u0000\u0000\u0000\u0525\u1ca5\u0001\u0000\u0000\u0000\u0527\u1cae"+ - "\u0001\u0000\u0000\u0000\u0529\u1cb8\u0001\u0000\u0000\u0000\u052b\u1cbe"+ - "\u0001\u0000\u0000\u0000\u052d\u1cc5\u0001\u0000\u0000\u0000\u052f\u1ccd"+ - "\u0001\u0000\u0000\u0000\u0531\u1cd6\u0001\u0000\u0000\u0000\u0533\u1cde"+ - "\u0001\u0000\u0000\u0000\u0535\u1ce7\u0001\u0000\u0000\u0000\u0537\u1cf0"+ - "\u0001\u0000\u0000\u0000\u0539\u1cf8\u0001\u0000\u0000\u0000\u053b\u1d00"+ - "\u0001\u0000\u0000\u0000\u053d\u1d05\u0001\u0000\u0000\u0000\u053f\u1d0e"+ - "\u0001\u0000\u0000\u0000\u0541\u1d13\u0001\u0000\u0000\u0000\u0543\u1d1c"+ - "\u0001\u0000\u0000\u0000\u0545\u1d22\u0001\u0000\u0000\u0000\u0547\u1d2f"+ - "\u0001\u0000\u0000\u0000\u0549\u1d36\u0001\u0000\u0000\u0000\u054b\u1d3b"+ - "\u0001\u0000\u0000\u0000\u054d\u1d42\u0001\u0000\u0000\u0000\u054f\u1d4a"+ - "\u0001\u0000\u0000\u0000\u0551\u1d4f\u0001\u0000\u0000\u0000\u0553\u1d55"+ - "\u0001\u0000\u0000\u0000\u0555\u1d5a\u0001\u0000\u0000\u0000\u0557\u1d5f"+ - "\u0001\u0000\u0000\u0000\u0559\u1d63\u0001\u0000\u0000\u0000\u055b\u1d68"+ - "\u0001\u0000\u0000\u0000\u055d\u1d72\u0001\u0000\u0000\u0000\u055f\u1d7e"+ - "\u0001\u0000\u0000\u0000\u0561\u1d89\u0001\u0000\u0000\u0000\u0563\u1d96"+ - "\u0001\u0000\u0000\u0000\u0565\u1d9e\u0001\u0000\u0000\u0000\u0567\u1da8"+ - "\u0001\u0000\u0000\u0000\u0569\u1dae\u0001\u0000\u0000\u0000\u056b\u1db6"+ - "\u0001\u0000\u0000\u0000\u056d\u1dc2\u0001\u0000\u0000\u0000\u056f\u1dd0"+ - "\u0001\u0000\u0000\u0000\u0571\u1dda\u0001\u0000\u0000\u0000\u0573\u1de6"+ - "\u0001\u0000\u0000\u0000\u0575\u1dec\u0001\u0000\u0000\u0000\u0577\u1df2"+ - "\u0001\u0000\u0000\u0000\u0579\u1df9\u0001\u0000\u0000\u0000\u057b\u1e03"+ - "\u0001\u0000\u0000\u0000\u057d\u1e13\u0001\u0000\u0000\u0000\u057f\u1e1f"+ - "\u0001\u0000\u0000\u0000\u0581\u1e2a\u0001\u0000\u0000\u0000\u0583\u1e37"+ - "\u0001\u0000\u0000\u0000\u0585\u1e40\u0001\u0000\u0000\u0000\u0587\u1e47"+ - "\u0001\u0000\u0000\u0000\u0589\u1e50\u0001\u0000\u0000\u0000\u058b\u1e57"+ - "\u0001\u0000\u0000\u0000\u058d\u1e5f\u0001\u0000\u0000\u0000\u058f\u1e6a"+ - "\u0001\u0000\u0000\u0000\u0591\u1e7b\u0001\u0000\u0000\u0000\u0593\u1e85"+ - "\u0001\u0000\u0000\u0000\u0595\u1e8c\u0001\u0000\u0000\u0000\u0597\u1e95"+ - "\u0001\u0000\u0000\u0000\u0599\u1ea2\u0001\u0000\u0000\u0000\u059b\u1ea7"+ - "\u0001\u0000\u0000\u0000\u059d\u1eb2\u0001\u0000\u0000\u0000\u059f\u1eb9"+ - "\u0001\u0000\u0000\u0000\u05a1\u1ec2\u0001\u0000\u0000\u0000\u05a3\u1ec5"+ - "\u0001\u0000\u0000\u0000\u05a5\u1ecc\u0001\u0000\u0000\u0000\u05a7\u1ed7"+ - "\u0001\u0000\u0000\u0000\u05a9\u1ee0\u0001\u0000\u0000\u0000\u05ab\u1ee9"+ - "\u0001\u0000\u0000\u0000\u05ad\u1ef1\u0001\u0000\u0000\u0000\u05af\u1f03"+ - "\u0001\u0000\u0000\u0000\u05b1\u1f0f\u0001\u0000\u0000\u0000\u05b3\u1f15"+ - "\u0001\u0000\u0000\u0000\u05b5\u1f1d\u0001\u0000\u0000\u0000\u05b7\u1f24"+ - "\u0001\u0000\u0000\u0000\u05b9\u1f2a\u0001\u0000\u0000\u0000\u05bb\u1f2f"+ - "\u0001\u0000\u0000\u0000\u05bd\u1f34\u0001\u0000\u0000\u0000\u05bf\u1f3b"+ - "\u0001\u0000\u0000\u0000\u05c1\u1f3f\u0001\u0000\u0000\u0000\u05c3\u1f44"+ - "\u0001\u0000\u0000\u0000\u05c5\u1f51\u0001\u0000\u0000\u0000\u05c7\u1f58"+ - "\u0001\u0000\u0000\u0000\u05c9\u1f65\u0001\u0000\u0000\u0000\u05cb\u1f6d"+ - "\u0001\u0000\u0000\u0000\u05cd\u1f76\u0001\u0000\u0000\u0000\u05cf\u1f81"+ - "\u0001\u0000\u0000\u0000\u05d1\u1f89\u0001\u0000\u0000\u0000\u05d3\u1f90"+ - "\u0001\u0000\u0000\u0000\u05d5\u1f97\u0001\u0000\u0000\u0000\u05d7\u1f9e"+ - "\u0001\u0000\u0000\u0000\u05d9\u1fa5\u0001\u0000\u0000\u0000\u05db\u1fab"+ - "\u0001\u0000\u0000\u0000\u05dd\u1fb3\u0001\u0000\u0000\u0000\u05df\u1fbd"+ - "\u0001\u0000\u0000\u0000\u05e1\u1fc9\u0001\u0000\u0000\u0000\u05e3\u1fce"+ - "\u0001\u0000\u0000\u0000\u05e5\u1fd2\u0001\u0000\u0000\u0000\u05e7\u1fd8"+ - "\u0001\u0000\u0000\u0000\u05e9\u1fea\u0001\u0000\u0000\u0000\u05eb\u1fef"+ - "\u0001\u0000\u0000\u0000\u05ed\u1ff6\u0001\u0000\u0000\u0000\u05ef\u1ffd"+ - "\u0001\u0000\u0000\u0000\u05f1\u2004\u0001\u0000\u0000\u0000\u05f3\u2009"+ - "\u0001\u0000\u0000\u0000\u05f5\u200e\u0001\u0000\u0000\u0000\u05f7\u2013"+ - "\u0001\u0000\u0000\u0000\u05f9\u2018\u0001\u0000\u0000\u0000\u05fb\u201d"+ - "\u0001\u0000\u0000\u0000\u05fd\u2023\u0001\u0000\u0000\u0000\u05ff\u2028"+ - "\u0001\u0000\u0000\u0000\u0601\u202d\u0001\u0000\u0000\u0000\u0603\u2035"+ - "\u0001\u0000\u0000\u0000\u0605\u203e\u0001\u0000\u0000\u0000\u0607\u2044"+ - "\u0001\u0000\u0000\u0000\u0609\u204b\u0001\u0000\u0000\u0000\u060b\u2051"+ - "\u0001\u0000\u0000\u0000\u060d\u2059\u0001\u0000\u0000\u0000\u060f\u2061"+ - "\u0001\u0000\u0000\u0000\u0611\u2068\u0001\u0000\u0000\u0000\u0613\u2070"+ - "\u0001\u0000\u0000\u0000\u0615\u2078\u0001\u0000\u0000\u0000\u0617\u2080"+ - "\u0001\u0000\u0000\u0000\u0619\u208c\u0001\u0000\u0000\u0000\u061b\u2093"+ - "\u0001\u0000\u0000\u0000\u061d\u2098\u0001\u0000\u0000\u0000\u061f\u20a4"+ - "\u0001\u0000\u0000\u0000\u0621\u20ab\u0001\u0000\u0000\u0000\u0623\u20b3"+ - "\u0001\u0000\u0000\u0000\u0625\u20bc\u0001\u0000\u0000\u0000\u0627\u20ca"+ - "\u0001\u0000\u0000\u0000\u0629\u20cf\u0001\u0000\u0000\u0000\u062b\u20d6"+ - "\u0001\u0000\u0000\u0000\u062d\u20da\u0001\u0000\u0000\u0000\u062f\u20dc"+ - "\u0001\u0000\u0000\u0000\u0631\u20de\u0001\u0000\u0000\u0000\u0633\u20e1"+ - "\u0001\u0000\u0000\u0000\u0635\u20e3\u0001\u0000\u0000\u0000\u0637\u20e6"+ - "\u0001\u0000\u0000\u0000\u0639\u20e8\u0001\u0000\u0000\u0000\u063b\u20ea"+ - "\u0001\u0000\u0000\u0000\u063d\u20ec\u0001\u0000\u0000\u0000\u063f\u20ee"+ - "\u0001\u0000\u0000\u0000\u0641\u20f0\u0001\u0000\u0000\u0000\u0643\u20fa"+ - "\u0001\u0000\u0000\u0000\u0645\u20fe\u0001\u0000\u0000\u0000\u0647\u211a"+ - "\u0001\u0000\u0000\u0000\u0649\u2129\u0001\u0000\u0000\u0000\u064b\u212c"+ - "\u0001\u0000\u0000\u0000\u064d\u212e\u0001\u0000\u0000\u0000\u064f\u2130"+ - "\u0001\u0000\u0000\u0000\u0651\u2132\u0001\u0000\u0000\u0000\u0653\u2139"+ - "\u0001\u0000\u0000\u0000\u0655\u213f\u0001\u0000\u0000\u0000\u0657\u2146"+ - "\u0001\u0000\u0000\u0000\u0659\u2148\u0001\u0000\u0000\u0000\u065b\u214b"+ - "\u0001\u0000\u0000\u0000\u065d\u214e\u0001\u0000\u0000\u0000\u065f\u2151"+ - "\u0001\u0000\u0000\u0000\u0661\u2154\u0001\u0000\u0000\u0000\u0663\u2156"+ - "\u0001\u0000\u0000\u0000\u0665\u2158\u0001\u0000\u0000\u0000\u0667\u215b"+ - "\u0001\u0000\u0000\u0000\u0669\u215e\u0001\u0000\u0000\u0000\u066b\u2160"+ - "\u0001\u0000\u0000\u0000\u066d\u2162\u0001\u0000\u0000\u0000\u066f\u2165"+ - "\u0001\u0000\u0000\u0000\u0671\u2167\u0001\u0000\u0000\u0000\u0673\u216a"+ - "\u0001\u0000\u0000\u0000\u0675\u216d\u0001\u0000\u0000\u0000\u0677\u216f"+ - "\u0001\u0000\u0000\u0000\u0679\u2172\u0001\u0000\u0000\u0000\u067b\u2175"+ - "\u0001\u0000\u0000\u0000\u067d\u2179\u0001\u0000\u0000\u0000\u067f\u217c"+ - "\u0001\u0000\u0000\u0000\u0681\u217f\u0001\u0000\u0000\u0000\u0683\u2183"+ - "\u0001\u0000\u0000\u0000\u0685\u2187\u0001\u0000\u0000\u0000\u0687\u2189"+ - "\u0001\u0000\u0000\u0000\u0689\u218c\u0001\u0000\u0000\u0000\u068b\u218f"+ - "\u0001\u0000\u0000\u0000\u068d\u2192\u0001\u0000\u0000\u0000\u068f\u2195"+ - "\u0001\u0000\u0000\u0000\u0691\u2199\u0001\u0000\u0000\u0000\u0693\u219c"+ - "\u0001\u0000\u0000\u0000\u0695\u21a0\u0001\u0000\u0000\u0000\u0697\u21a4"+ - "\u0001\u0000\u0000\u0000\u0699\u21a6\u0001\u0000\u0000\u0000\u069b\u21a8"+ - "\u0001\u0000\u0000\u0000\u069d\u21aa\u0001\u0000\u0000\u0000\u069f\u21ad"+ - "\u0001\u0000\u0000\u0000\u06a1\u21b1\u0001\u0000\u0000\u0000\u06a3\u21b4"+ - "\u0001\u0000\u0000\u0000\u06a5\u21b6\u0001\u0000\u0000\u0000\u06a7\u21b8"+ - "\u0001\u0000\u0000\u0000\u06a9\u21bb\u0001\u0000\u0000\u0000\u06ab\u21be"+ - "\u0001\u0000\u0000\u0000\u06ad\u21c1\u0001\u0000\u0000\u0000\u06af\u21c4"+ - "\u0001\u0000\u0000\u0000\u06b1\u21c6\u0001\u0000\u0000\u0000\u06b3\u21c8"+ - "\u0001\u0000\u0000\u0000\u06b5\u21cb\u0001\u0000\u0000\u0000\u06b7\u21d0"+ - "\u0001\u0000\u0000\u0000\u06b9\u21d4\u0001\u0000\u0000\u0000\u06bb\u21d9"+ - "\u0001\u0000\u0000\u0000\u06bd\u21dd\u0001\u0000\u0000\u0000\u06bf\u21e0"+ - "\u0001\u0000\u0000\u0000\u06c1\u21e3\u0001\u0000\u0000\u0000\u06c3\u06c5"+ - "\u0007\u0000\u0000\u0000\u06c4\u06c3\u0001\u0000\u0000\u0000\u06c5\u06c6"+ - "\u0001\u0000\u0000\u0000\u06c6\u06c4\u0001\u0000\u0000\u0000\u06c6\u06c7"+ - "\u0001\u0000\u0000\u0000\u06c7\u06c8\u0001\u0000\u0000\u0000\u06c8\u06c9"+ - "\u0006\u0000\u0000\u0000\u06c9\u0002\u0001\u0000\u0000\u0000\u06ca\u06cb"+ - "\u0005/\u0000\u0000\u06cb\u06cc\u0005*\u0000\u0000\u06cc\u06d0\u0001\u0000"+ - "\u0000\u0000\u06cd\u06cf\t\u0000\u0000\u0000\u06ce\u06cd\u0001\u0000\u0000"+ - "\u0000\u06cf\u06d2\u0001\u0000\u0000\u0000\u06d0\u06d1\u0001\u0000\u0000"+ - "\u0000\u06d0\u06ce\u0001\u0000\u0000\u0000\u06d1\u06d3\u0001\u0000\u0000"+ - "\u0000\u06d2\u06d0\u0001\u0000\u0000\u0000\u06d3\u06d4\u0005*\u0000\u0000"+ - "\u06d4\u06d5\u0005/\u0000\u0000\u06d5\u06d6\u0001\u0000\u0000\u0000\u06d6"+ - "\u06d7\u0006\u0001\u0001\u0000\u06d7\u0004\u0001\u0000\u0000\u0000\u06d8"+ - "\u06d9\u0005-\u0000\u0000\u06d9\u06da\u0005-\u0000\u0000\u06da\u06de\u0001"+ - "\u0000\u0000\u0000\u06db\u06dd\t\u0000\u0000\u0000\u06dc\u06db\u0001\u0000"+ - "\u0000\u0000\u06dd\u06e0\u0001\u0000\u0000\u0000\u06de\u06df\u0001\u0000"+ - "\u0000\u0000\u06de\u06dc\u0001\u0000\u0000\u0000\u06df\u06e1\u0001\u0000"+ - "\u0000\u0000\u06e0\u06de\u0001\u0000\u0000\u0000\u06e1\u06e2\u0005\n\u0000"+ - "\u0000\u06e2\u06e3\u0001\u0000\u0000\u0000\u06e3\u06e4\u0006\u0002\u0001"+ - "\u0000\u06e4\u0006\u0001\u0000\u0000\u0000\u06e5\u06e6\u0007\u0001\u0000"+ - "\u0000\u06e6\b\u0001\u0000\u0000\u0000\u06e7\u06e8\u0007\u0002\u0000\u0000"+ - "\u06e8\n\u0001\u0000\u0000\u0000\u06e9\u06ea\u0007\u0003\u0000\u0000\u06ea"+ - "\f\u0001\u0000\u0000\u0000\u06eb\u06ec\u0007\u0004\u0000\u0000\u06ec\u000e"+ - "\u0001\u0000\u0000\u0000\u06ed\u06ee\u0007\u0005\u0000\u0000\u06ee\u0010"+ - "\u0001\u0000\u0000\u0000\u06ef\u06f0\u0007\u0006\u0000\u0000\u06f0\u0012"+ - "\u0001\u0000\u0000\u0000\u06f1\u06f2\u0007\u0007\u0000\u0000\u06f2\u0014"+ - "\u0001\u0000\u0000\u0000\u06f3\u06f4\u0007\b\u0000\u0000\u06f4\u0016\u0001"+ - "\u0000\u0000\u0000\u06f5\u06f6\u0007\t\u0000\u0000\u06f6\u0018\u0001\u0000"+ - "\u0000\u0000\u06f7\u06f8\u0007\n\u0000\u0000\u06f8\u001a\u0001\u0000\u0000"+ - "\u0000\u06f9\u06fa\u0007\u000b\u0000\u0000\u06fa\u001c\u0001\u0000\u0000"+ - "\u0000\u06fb\u06fc\u0007\f\u0000\u0000\u06fc\u001e\u0001\u0000\u0000\u0000"+ - "\u06fd\u06fe\u0007\r\u0000\u0000\u06fe \u0001\u0000\u0000\u0000\u06ff"+ - "\u0700\u0007\u000e\u0000\u0000\u0700\"\u0001\u0000\u0000\u0000\u0701\u0702"+ - "\u0007\u000f\u0000\u0000\u0702$\u0001\u0000\u0000\u0000\u0703\u0704\u0007"+ - "\u0010\u0000\u0000\u0704&\u0001\u0000\u0000\u0000\u0705\u0706\u0007\u0011"+ - "\u0000\u0000\u0706(\u0001\u0000\u0000\u0000\u0707\u0708\u0007\u0012\u0000"+ - "\u0000\u0708*\u0001\u0000\u0000\u0000\u0709\u070a\u0007\u0013\u0000\u0000"+ - "\u070a,\u0001\u0000\u0000\u0000\u070b\u070c\u0007\u0014\u0000\u0000\u070c"+ - ".\u0001\u0000\u0000\u0000\u070d\u070e\u0007\u0015\u0000\u0000\u070e0\u0001"+ - "\u0000\u0000\u0000\u070f\u0710\u0007\u0016\u0000\u0000\u07102\u0001\u0000"+ - "\u0000\u0000\u0711\u0712\u0007\u0017\u0000\u0000\u07124\u0001\u0000\u0000"+ - "\u0000\u0713\u0714\u0007\u0018\u0000\u0000\u07146\u0001\u0000\u0000\u0000"+ - "\u0715\u0716\u0007\u0019\u0000\u0000\u07168\u0001\u0000\u0000\u0000\u0717"+ - "\u0718\u0007\u001a\u0000\u0000\u0718:\u0001\u0000\u0000\u0000\u0719\u071a"+ - "\u0007\u001b\u0000\u0000\u071a<\u0001\u0000\u0000\u0000\u071b\u071c\u0007"+ - "\u001c\u0000\u0000\u071c>\u0001\u0000\u0000\u0000\u071d\u0725\u0005\""+ - "\u0000\u0000\u071e\u071f\u0005\\\u0000\u0000\u071f\u0724\t\u0000\u0000"+ - "\u0000\u0720\u0721\u0005\"\u0000\u0000\u0721\u0724\u0005\"\u0000\u0000"+ - "\u0722\u0724\b\u001d\u0000\u0000\u0723\u071e\u0001\u0000\u0000\u0000\u0723"+ - "\u0720\u0001\u0000\u0000\u0000\u0723\u0722\u0001\u0000\u0000\u0000\u0724"+ - "\u0727\u0001\u0000\u0000\u0000\u0725\u0723\u0001\u0000\u0000\u0000\u0725"+ - "\u0726\u0001\u0000\u0000\u0000\u0726\u0728\u0001\u0000\u0000\u0000\u0727"+ - "\u0725\u0001\u0000\u0000\u0000\u0728\u0729\u0005\"\u0000\u0000\u0729@"+ - "\u0001\u0000\u0000\u0000\u072a\u0732\u0005\'\u0000\u0000\u072b\u072c\u0005"+ - "\\\u0000\u0000\u072c\u0731\t\u0000\u0000\u0000\u072d\u072e\u0005\'\u0000"+ - "\u0000\u072e\u0731\u0005\'\u0000\u0000\u072f\u0731\b\u001e\u0000\u0000"+ - "\u0730\u072b\u0001\u0000\u0000\u0000\u0730\u072d\u0001\u0000\u0000\u0000"+ - "\u0730\u072f\u0001\u0000\u0000\u0000\u0731\u0734\u0001\u0000\u0000\u0000"+ - "\u0732\u0730\u0001\u0000\u0000\u0000\u0732\u0733\u0001\u0000\u0000\u0000"+ - "\u0733\u0735\u0001\u0000\u0000\u0000\u0734\u0732\u0001\u0000\u0000\u0000"+ - "\u0735\u0736\u0005\'\u0000\u0000\u0736B\u0001\u0000\u0000\u0000\u0737"+ - "\u073f\u0005`\u0000\u0000\u0738\u0739\u0005\\\u0000\u0000\u0739\u073e"+ - "\t\u0000\u0000\u0000\u073a\u073b\u0005`\u0000\u0000\u073b\u073e\u0005"+ - "`\u0000\u0000\u073c\u073e\b\u001f\u0000\u0000\u073d\u0738\u0001\u0000"+ - "\u0000\u0000\u073d\u073a\u0001\u0000\u0000\u0000\u073d\u073c\u0001\u0000"+ - "\u0000\u0000\u073e\u0741\u0001\u0000\u0000\u0000\u073f\u073d\u0001\u0000"+ - "\u0000\u0000\u073f\u0740\u0001\u0000\u0000\u0000\u0740\u0742\u0001\u0000"+ - "\u0000\u0000\u0741\u073f\u0001\u0000\u0000\u0000\u0742\u0743\u0005`\u0000"+ - "\u0000\u0743D\u0001\u0000\u0000\u0000\u0744\u0745\u0003\u0007\u0003\u0000"+ - "\u0745F\u0001\u0000\u0000\u0000\u0746\u0747\u0003\u0007\u0003\u0000\u0747"+ - "\u0748\u0003\t\u0004\u0000\u0748\u0749\u0003#\u0011\u0000\u0749\u074a"+ - "\u0003)\u0014\u0000\u074a\u074b\u0003-\u0016\u0000\u074bH\u0001\u0000"+ - "\u0000\u0000\u074c\u074d\u0003\u0007\u0003\u0000\u074d\u074e\u0003\t\u0004"+ - "\u0000\u074e\u074f\u0003+\u0015\u0000\u074fJ\u0001\u0000\u0000\u0000\u0750"+ - "\u0751\u0003\u0007\u0003\u0000\u0751\u0752\u0003\t\u0004\u0000\u0752\u0753"+ - "\u0003+\u0015\u0000\u0753\u0754\u0003#\u0011\u0000\u0754\u0755\u0003\u001d"+ - "\u000e\u0000\u0755\u0756\u0003/\u0017\u0000\u0756\u0757\u0003-\u0016\u0000"+ - "\u0757\u0758\u0003\u000f\u0007\u0000\u0758L\u0001\u0000\u0000\u0000\u0759"+ - "\u075a\u0003\u0007\u0003\u0000\u075a\u075b\u0003\u000b\u0005\u0000\u075b"+ - "\u075c\u0003\u000b\u0005\u0000\u075c\u075d\u0003\u000f\u0007\u0000\u075d"+ - "\u075e\u0003+\u0015\u0000\u075e\u075f\u0003+\u0015\u0000\u075fN\u0001"+ - "\u0000\u0000\u0000\u0760\u0761\u0003\u0007\u0003\u0000\u0761\u0762\u0003"+ - "\u000b\u0005\u0000\u0762\u0763\u0003-\u0016\u0000\u0763\u0764\u0003\u0017"+ - "\u000b\u0000\u0764\u0765\u0003#\u0011\u0000\u0765\u0766\u0003!\u0010\u0000"+ - "\u0766P\u0001\u0000\u0000\u0000\u0767\u0768\u0003\u0007\u0003\u0000\u0768"+ - "\u0769\u0003\r\u0006\u0000\u0769\u076a\u0003\u0007\u0003\u0000\u076aR"+ - "\u0001\u0000\u0000\u0000\u076b\u076c\u0003\u0007\u0003\u0000\u076c\u076d"+ - "\u0003\r\u0006\u0000\u076d\u076e\u0003\r\u0006\u0000\u076eT\u0001\u0000"+ - "\u0000\u0000\u076f\u0770\u0003\u0007\u0003\u0000\u0770\u0771\u0003\r\u0006"+ - "\u0000\u0771\u0772\u0003\u001f\u000f\u0000\u0772\u0773\u0003\u0017\u000b"+ - "\u0000\u0773\u0774\u0003!\u0010\u0000\u0774V\u0001\u0000\u0000\u0000\u0775"+ - "\u0776\u0003\u0007\u0003\u0000\u0776\u0777\u0003\u0011\b\u0000\u0777\u0778"+ - "\u0003-\u0016\u0000\u0778\u0779\u0003\u000f\u0007\u0000\u0779\u077a\u0003"+ - ")\u0014\u0000\u077aX\u0001\u0000\u0000\u0000\u077b\u077c\u0003\u0007\u0003"+ - "\u0000\u077c\u077d\u0003\u0013\t\u0000\u077d\u077e\u0003\u0013\t\u0000"+ - "\u077e\u077f\u0003)\u0014\u0000\u077f\u0780\u0003\u000f\u0007\u0000\u0780"+ - "\u0781\u0003\u0013\t\u0000\u0781\u0782\u0003\u0007\u0003\u0000\u0782\u0783"+ - "\u0003-\u0016\u0000\u0783\u0784\u0003\u000f\u0007\u0000\u0784Z\u0001\u0000"+ - "\u0000\u0000\u0785\u0786\u0003\u0007\u0003\u0000\u0786\u0787\u0003\u001d"+ - "\u000e\u0000\u0787\u0788\u0003\u0017\u000b\u0000\u0788\u0789\u0003\u0007"+ - "\u0003\u0000\u0789\u078a\u0003+\u0015\u0000\u078a\\\u0001\u0000\u0000"+ - "\u0000\u078b\u078c\u0003\u0007\u0003\u0000\u078c\u078d\u0003\u001d\u000e"+ - "\u0000\u078d\u078e\u0003\u001d\u000e\u0000\u078e^\u0001\u0000\u0000\u0000"+ - "\u078f\u0790\u0003\u0007\u0003\u0000\u0790\u0791\u0003\u001d\u000e\u0000"+ - "\u0791\u0792\u0003\u001d\u000e\u0000\u0792\u0793\u0003#\u0011\u0000\u0793"+ - "\u0794\u0003\u000b\u0005\u0000\u0794\u0795\u0003\u0007\u0003\u0000\u0795"+ - "\u0796\u0003-\u0016\u0000\u0796\u0797\u0003\u000f\u0007\u0000\u0797`\u0001"+ - "\u0000\u0000\u0000\u0798\u0799\u0003\u0007\u0003\u0000\u0799\u079a\u0003"+ - "\u001d\u000e\u0000\u079a\u079b\u0003+\u0015\u0000\u079b\u079c\u0003#\u0011"+ - "\u0000\u079cb\u0001\u0000\u0000\u0000\u079d\u079e\u0003\u0007\u0003\u0000"+ - "\u079e\u079f\u0003\u001d\u000e\u0000\u079f\u07a0\u0003-\u0016\u0000\u07a0"+ - "\u07a1\u0003\u000f\u0007\u0000\u07a1\u07a2\u0003)\u0014\u0000\u07a2d\u0001"+ - "\u0000\u0000\u0000\u07a3\u07a4\u0003\u0007\u0003\u0000\u07a4\u07a5\u0003"+ - "\u001d\u000e\u0000\u07a5\u07a6\u00033\u0019\u0000\u07a6\u07a7\u0003\u0007"+ - "\u0003\u0000\u07a7\u07a8\u00037\u001b\u0000\u07a8\u07a9\u0003+\u0015\u0000"+ - "\u07a9f\u0001\u0000\u0000\u0000\u07aa\u07ab\u0003\u0007\u0003\u0000\u07ab"+ - "\u07ac\u0003!\u0010\u0000\u07ac\u07ad\u0003\u0007\u0003\u0000\u07ad\u07ae"+ - "\u0003\u001d\u000e\u0000\u07ae\u07af\u00037\u001b\u0000\u07af\u07b0\u0003"+ - "+\u0015\u0000\u07b0\u07b1\u0003\u000f\u0007\u0000\u07b1h\u0001\u0000\u0000"+ - "\u0000\u07b2\u07b3\u0003\u0007\u0003\u0000\u07b3\u07b4\u0003!\u0010\u0000"+ - "\u07b4\u07b5\u0003\u0007\u0003\u0000\u07b5\u07b6\u0003\u001d\u000e\u0000"+ - "\u07b6\u07b7\u00037\u001b\u0000\u07b7\u07b8\u00039\u001c\u0000\u07b8\u07b9"+ - "\u0003\u000f\u0007\u0000\u07b9j\u0001\u0000\u0000\u0000\u07ba\u07bb\u0003"+ - "\u0007\u0003\u0000\u07bb\u07bc\u0003!\u0010\u0000\u07bc\u07bd\u0003\r"+ - "\u0006\u0000\u07bdl\u0001\u0000\u0000\u0000\u07be\u07bf\u0003\u0007\u0003"+ - "\u0000\u07bf\u07c0\u0003!\u0010\u0000\u07c0\u07c1\u00037\u001b\u0000\u07c1"+ - "n\u0001\u0000\u0000\u0000\u07c2\u07c3\u0003\u0007\u0003\u0000\u07c3\u07c4"+ - "\u0003)\u0014\u0000\u07c4\u07c5\u0003\u000f\u0007\u0000\u07c5p\u0001\u0000"+ - "\u0000\u0000\u07c6\u07c7\u0003\u0007\u0003\u0000\u07c7\u07c8\u0003)\u0014"+ - "\u0000\u07c8\u07c9\u0003)\u0014\u0000\u07c9\u07ca\u0003\u0007\u0003\u0000"+ - "\u07ca\u07cb\u00037\u001b\u0000\u07cbr\u0001\u0000\u0000\u0000\u07cc\u07cd"+ - "\u0003\u0007\u0003\u0000\u07cd\u07ce\u0003+\u0015\u0000\u07cet\u0001\u0000"+ - "\u0000\u0000\u07cf\u07d0\u0003\u0007\u0003\u0000\u07d0\u07d1\u0003+\u0015"+ - "\u0000\u07d1\u07d2\u0003\u000b\u0005\u0000\u07d2v\u0001\u0000\u0000\u0000"+ - "\u07d3\u07d4\u0003\u0007\u0003\u0000\u07d4\u07d5\u0003+\u0015\u0000\u07d5"+ - "\u07d6\u0003\u000f\u0007\u0000\u07d6\u07d7\u0003!\u0010\u0000\u07d7\u07d8"+ - "\u0003+\u0015\u0000\u07d8\u07d9\u0003\u0017\u000b\u0000\u07d9\u07da\u0003"+ - "-\u0016\u0000\u07da\u07db\u0003\u0017\u000b\u0000\u07db\u07dc\u00031\u0018"+ - "\u0000\u07dc\u07dd\u0003\u000f\u0007\u0000\u07ddx\u0001\u0000\u0000\u0000"+ - "\u07de\u07df\u0003\u0007\u0003\u0000\u07df\u07e0\u0003+\u0015\u0000\u07e0"+ - "\u07e1\u0003+\u0015\u0000\u07e1\u07e2\u0003\u000f\u0007\u0000\u07e2\u07e3"+ - "\u0003)\u0014\u0000\u07e3\u07e4\u0003-\u0016\u0000\u07e4\u07e5\u0003\u0017"+ - "\u000b\u0000\u07e5\u07e6\u0003#\u0011\u0000\u07e6\u07e7\u0003!\u0010\u0000"+ - "\u07e7z\u0001\u0000\u0000\u0000\u07e8\u07e9\u0003\u0007\u0003\u0000\u07e9"+ - "\u07ea\u0003+\u0015\u0000\u07ea\u07eb\u0003+\u0015\u0000\u07eb\u07ec\u0003"+ - "\u0017\u000b\u0000\u07ec\u07ed\u0003\u0013\t\u0000\u07ed\u07ee\u0003!"+ - "\u0010\u0000\u07ee\u07ef\u0003\u001f\u000f\u0000\u07ef\u07f0\u0003\u000f"+ - "\u0007\u0000\u07f0\u07f1\u0003!\u0010\u0000\u07f1\u07f2\u0003-\u0016\u0000"+ - "\u07f2|\u0001\u0000\u0000\u0000\u07f3\u07f4\u0003\u0007\u0003\u0000\u07f4"+ - "\u07f5\u0003+\u0015\u0000\u07f5\u07f6\u00037\u001b\u0000\u07f6\u07f7\u0003"+ - "\u001f\u000f\u0000\u07f7\u07f8\u0003\u001f\u000f\u0000\u07f8\u07f9\u0003"+ - "\u000f\u0007\u0000\u07f9\u07fa\u0003-\u0016\u0000\u07fa\u07fb\u0003)\u0014"+ - "\u0000\u07fb\u07fc\u0003\u0017\u000b\u0000\u07fc\u07fd\u0003\u000b\u0005"+ - "\u0000\u07fd~\u0001\u0000\u0000\u0000\u07fe\u07ff\u0003\u0007\u0003\u0000"+ - "\u07ff\u0800\u0003-\u0016\u0000\u0800\u0080\u0001\u0000\u0000\u0000\u0801"+ - "\u0802\u0003\u0007\u0003\u0000\u0802\u0803\u0003-\u0016\u0000\u0803\u0804"+ - "\u0003#\u0011\u0000\u0804\u0805\u0003\u001f\u000f\u0000\u0805\u0806\u0003"+ - "\u0017\u000b\u0000\u0806\u0807\u0003\u000b\u0005\u0000\u0807\u0082\u0001"+ - "\u0000\u0000\u0000\u0808\u0809\u0003\u0007\u0003\u0000\u0809\u080a\u0003"+ - "-\u0016\u0000\u080a\u080b\u0003-\u0016\u0000\u080b\u080c\u0003)\u0014"+ - "\u0000\u080c\u080d\u0003\u0017\u000b\u0000\u080d\u080e\u0003\t\u0004\u0000"+ - "\u080e\u080f\u0003/\u0017\u0000\u080f\u0810\u0003-\u0016\u0000\u0810\u0811"+ - "\u0003\u000f\u0007\u0000\u0811\u0084\u0001\u0000\u0000\u0000\u0812\u0813"+ - "\u0003\u0007\u0003\u0000\u0813\u0814\u0003-\u0016\u0000\u0814\u0815\u0003"+ - "-\u0016\u0000\u0815\u0816\u0003)\u0014\u0000\u0816\u0817\u0003\u0017\u000b"+ - "\u0000\u0817\u0818\u0003\t\u0004\u0000\u0818\u0819\u0003/\u0017\u0000"+ - "\u0819\u081a\u0003-\u0016\u0000\u081a\u081b\u0003\u000f\u0007\u0000\u081b"+ - "\u081c\u0003+\u0015\u0000\u081c\u0086\u0001\u0000\u0000\u0000\u081d\u081e"+ - "\u0003\u0007\u0003\u0000\u081e\u081f\u0003/\u0017\u0000\u081f\u0820\u0003"+ - "-\u0016\u0000\u0820\u0821\u0003\u0015\n\u0000\u0821\u0822\u0003#\u0011"+ - "\u0000\u0822\u0823\u0003)\u0014\u0000\u0823\u0824\u0003\u0017\u000b\u0000"+ - "\u0824\u0825\u00039\u001c\u0000\u0825\u0826\u0003\u0007\u0003\u0000\u0826"+ - "\u0827\u0003-\u0016\u0000\u0827\u0828\u0003\u0017\u000b\u0000\u0828\u0829"+ - "\u0003#\u0011\u0000\u0829\u082a\u0003!\u0010\u0000\u082a\u0088\u0001\u0000"+ - "\u0000\u0000\u082b\u082c\u0003\u0007\u0003\u0000\u082c\u082d\u00031\u0018"+ - "\u0000\u082d\u082e\u0003\u0013\t\u0000\u082e\u008a\u0001\u0000\u0000\u0000"+ - "\u082f\u0830\u0003\t\u0004\u0000\u0830\u0831\u0003\u0007\u0003\u0000\u0831"+ - "\u0832\u0003\u000b\u0005\u0000\u0832\u0833\u0003\u001b\r\u0000\u0833\u0834"+ - "\u00033\u0019\u0000\u0834\u0835\u0003\u0007\u0003\u0000\u0835\u0836\u0003"+ - ")\u0014\u0000\u0836\u0837\u0003\r\u0006\u0000\u0837\u008c\u0001\u0000"+ - "\u0000\u0000\u0838\u0839\u0003\t\u0004\u0000\u0839\u083a\u0003\u000f\u0007"+ - "\u0000\u083a\u083b\u0003\u0011\b\u0000\u083b\u083c\u0003#\u0011\u0000"+ - "\u083c\u083d\u0003)\u0014\u0000\u083d\u083e\u0003\u000f\u0007\u0000\u083e"+ - "\u008e\u0001\u0000\u0000\u0000\u083f\u0840\u0003\t\u0004\u0000\u0840\u0841"+ - "\u0003\u000f\u0007\u0000\u0841\u0842\u0003\u0013\t\u0000\u0842\u0843\u0003"+ - "\u0017\u000b\u0000\u0843\u0844\u0003!\u0010\u0000\u0844\u0090\u0001\u0000"+ - "\u0000\u0000\u0845\u0846\u0003\t\u0004\u0000\u0846\u0847\u0003\u000f\u0007"+ - "\u0000\u0847\u0848\u0003)\u0014\u0000\u0848\u0849\u0003!\u0010\u0000\u0849"+ - "\u084a\u0003#\u0011\u0000\u084a\u084b\u0003/\u0017\u0000\u084b\u084c\u0003"+ - "\u001d\u000e\u0000\u084c\u084d\u0003\u001d\u000e\u0000\u084d\u084e\u0003"+ - "\u0017\u000b\u0000\u084e\u0092\u0001\u0000\u0000\u0000\u084f\u0850\u0003"+ - "\t\u0004\u0000\u0850\u0851\u0003\u000f\u0007\u0000\u0851\u0852\u0003-"+ - "\u0016\u0000\u0852\u0853\u00033\u0019\u0000\u0853\u0854\u0003\u000f\u0007"+ - "\u0000\u0854\u0855\u0003\u000f\u0007\u0000\u0855\u0856\u0003!\u0010\u0000"+ - "\u0856\u0094\u0001\u0000\u0000\u0000\u0857\u0858\u0003\t\u0004\u0000\u0858"+ - "\u0859\u0003\u0017\u000b\u0000\u0859\u085a\u0003\u0013\t\u0000\u085a\u085b"+ - "\u0003\u0017\u000b\u0000\u085b\u085c\u0003!\u0010\u0000\u085c\u085d\u0003"+ - "-\u0016\u0000\u085d\u0096\u0001\u0000\u0000\u0000\u085e\u085f\u0003\t"+ - "\u0004\u0000\u085f\u0860\u0003\u0017\u000b\u0000\u0860\u0861\u0003!\u0010"+ - "\u0000\u0861\u0862\u0003\u0007\u0003\u0000\u0862\u0863\u0003)\u0014\u0000"+ - "\u0863\u0864\u00037\u001b\u0000\u0864\u0098\u0001\u0000\u0000\u0000\u0865"+ - "\u0866\u0003\t\u0004\u0000\u0866\u0867\u0003\u0017\u000b\u0000\u0867\u0868"+ - "\u0003-\u0016\u0000\u0868\u009a\u0001\u0000\u0000\u0000\u0869\u086a\u0003"+ - "\t\u0004\u0000\u086a\u086b\u0003\u0017\u000b\u0000\u086b\u086c\u0003-"+ - "\u0016\u0000\u086c\u086d\u0005_\u0000\u0000\u086d\u086e\u0003\u001d\u000e"+ - "\u0000\u086e\u086f\u0003\u000f\u0007\u0000\u086f\u0870\u0003!\u0010\u0000"+ - "\u0870\u0871\u0003\u0013\t\u0000\u0871\u0872\u0003-\u0016\u0000\u0872"+ - "\u0873\u0003\u0015\n\u0000\u0873\u009c\u0001\u0000\u0000\u0000\u0874\u0875"+ - "\u0003\t\u0004\u0000\u0875\u0876\u0003\u0017\u000b\u0000\u0876\u0877\u0003"+ - "-\u0016\u0000\u0877\u0878\u00031\u0018\u0000\u0878\u0879\u0003\u0007\u0003"+ - "\u0000\u0879\u087a\u0003)\u0014\u0000\u087a\u009e\u0001\u0000\u0000\u0000"+ - "\u087b\u087c\u0003\t\u0004\u0000\u087c\u087d\u0003\u001d\u000e\u0000\u087d"+ - "\u087e\u0003#\u0011\u0000\u087e\u087f\u0003\t\u0004\u0000\u087f\u00a0"+ - "\u0001\u0000\u0000\u0000\u0880\u0881\u0003\t\u0004\u0000\u0881\u0882\u0003"+ - "#\u0011\u0000\u0882\u0883\u0003#\u0011\u0000\u0883\u0884\u0003\u001d\u000e"+ - "\u0000\u0884\u0885\u0003\u000f\u0007\u0000\u0885\u0886\u0003\u0007\u0003"+ - "\u0000\u0886\u0887\u0003!\u0010\u0000\u0887\u00a2\u0001\u0000\u0000\u0000"+ - "\u0888\u0889\u0003\t\u0004\u0000\u0889\u088a\u0003#\u0011\u0000\u088a"+ - "\u088b\u0003-\u0016\u0000\u088b\u088c\u0003\u0015\n\u0000\u088c\u00a4"+ - "\u0001\u0000\u0000\u0000\u088d\u088e\u0003\t\u0004\u0000\u088e\u088f\u0003"+ - ")\u0014\u0000\u088f\u0890\u0003\u000f\u0007\u0000\u0890\u0891\u0003\u0007"+ - "\u0003\u0000\u0891\u0892\u0003\r\u0006\u0000\u0892\u0893\u0003-\u0016"+ - "\u0000\u0893\u0894\u0003\u0015\n\u0000\u0894\u00a6\u0001\u0000\u0000\u0000"+ - "\u0895\u0896\u0003\t\u0004\u0000\u0896\u0897\u0003/\u0017\u0000\u0897"+ - "\u0898\u0003\u0011\b\u0000\u0898\u0899\u0003\u0011\b\u0000\u0899\u089a"+ - "\u0003\u000f\u0007\u0000\u089a\u089b\u0003)\u0014\u0000\u089b\u089c\u0003"+ - "+\u0015\u0000\u089c\u00a8\u0001\u0000\u0000\u0000\u089d\u089e\u0003\t"+ - "\u0004\u0000\u089e\u089f\u00037\u001b\u0000\u089f\u00aa\u0001\u0000\u0000"+ - "\u0000\u08a0\u08a1\u0003\u000b\u0005\u0000\u08a1\u00ac\u0001\u0000\u0000"+ - "\u0000\u08a2\u08a3\u0003\u000b\u0005\u0000\u08a3\u08a4\u0003\u0007\u0003"+ - "\u0000\u08a4\u08a5\u0003\u000b\u0005\u0000\u08a5\u08a6\u0003\u0015\n\u0000"+ - "\u08a6\u08a7\u0003\u000f\u0007\u0000\u08a7\u00ae\u0001\u0000\u0000\u0000"+ - "\u08a8\u08a9\u0003\u000b\u0005\u0000\u08a9\u08aa\u0003\u0007\u0003\u0000"+ - "\u08aa\u08ab\u0003\u001d\u000e\u0000\u08ab\u08ac\u0003\u001d\u000e\u0000"+ - "\u08ac\u00b0\u0001\u0000\u0000\u0000\u08ad\u08ae\u0003\u000b\u0005\u0000"+ - "\u08ae\u08af\u0003\u0007\u0003\u0000\u08af\u08b0\u0003\u001d\u000e\u0000"+ - "\u08b0\u08b1\u0003\u001d\u000e\u0000\u08b1\u08b2\u0003\u000f\u0007\u0000"+ - "\u08b2\u08b3\u0003\r\u0006\u0000\u08b3\u00b2\u0001\u0000\u0000\u0000\u08b4"+ - "\u08b5\u0003\u000b\u0005\u0000\u08b5\u08b6\u0003\u0007\u0003\u0000\u08b6"+ - "\u08b7\u0003)\u0014\u0000\u08b7\u08b8\u0003\r\u0006\u0000\u08b8\u08b9"+ - "\u0003\u0017\u000b\u0000\u08b9\u08ba\u0003!\u0010\u0000\u08ba\u08bb\u0003"+ - "\u0007\u0003\u0000\u08bb\u08bc\u0003\u001d\u000e\u0000\u08bc\u08bd\u0003"+ - "\u0017\u000b\u0000\u08bd\u08be\u0003-\u0016\u0000\u08be\u08bf\u00037\u001b"+ - "\u0000\u08bf\u00b4\u0001\u0000\u0000\u0000\u08c0\u08c1\u0003\u000b\u0005"+ - "\u0000\u08c1\u08c2\u0003\u0007\u0003\u0000\u08c2\u08c3\u0003+\u0015\u0000"+ - "\u08c3\u08c4\u0003\u000b\u0005\u0000\u08c4\u08c5\u0003\u0007\u0003\u0000"+ - "\u08c5\u08c6\u0003\r\u0006\u0000\u08c6\u08c7\u0003\u000f\u0007\u0000\u08c7"+ - "\u00b6\u0001\u0000\u0000\u0000\u08c8\u08c9\u0003\u000b\u0005\u0000\u08c9"+ - "\u08ca\u0003\u0007\u0003\u0000\u08ca\u08cb\u0003+\u0015\u0000\u08cb\u08cc"+ - "\u0003\u000b\u0005\u0000\u08cc\u08cd\u0003\u0007\u0003\u0000\u08cd\u08ce"+ - "\u0003\r\u0006\u0000\u08ce\u08cf\u0003\u000f\u0007\u0000\u08cf\u08d0\u0003"+ - "\r\u0006\u0000\u08d0\u00b8\u0001\u0000\u0000\u0000\u08d1\u08d2\u0003\u000b"+ - "\u0005\u0000\u08d2\u08d3\u0003\u0007\u0003\u0000\u08d3\u08d4\u0003+\u0015"+ - "\u0000\u08d4\u08d5\u0003\u000f\u0007\u0000\u08d5\u00ba\u0001\u0000\u0000"+ - "\u0000\u08d6\u08d7\u0003\u000b\u0005\u0000\u08d7\u08d8\u0003\u0007\u0003"+ - "\u0000\u08d8\u08d9\u0003+\u0015\u0000\u08d9\u08da\u0003-\u0016\u0000\u08da"+ - "\u00bc\u0001\u0000\u0000\u0000\u08db\u08dc\u0003\u000b\u0005\u0000\u08dc"+ - "\u08dd\u0003\u0007\u0003\u0000\u08dd\u08de\u0003-\u0016\u0000\u08de\u08df"+ - "\u0003\u0007\u0003\u0000\u08df\u08e0\u0003\u001d\u000e\u0000\u08e0\u08e1"+ - "\u0003#\u0011\u0000\u08e1\u08e2\u0003\u0013\t\u0000\u08e2\u00be\u0001"+ - "\u0000\u0000\u0000\u08e3\u08e4\u0003\u000b\u0005\u0000\u08e4\u08e5\u0003"+ - "\u0007\u0003\u0000\u08e5\u08e6\u0003-\u0016\u0000\u08e6\u08e7\u0003\u0007"+ - "\u0003\u0000\u08e7\u08e8\u0003\u001d\u000e\u0000\u08e8\u08e9\u0003#\u0011"+ - "\u0000\u08e9\u08ea\u0003\u0013\t\u0000\u08ea\u08eb\u0005_\u0000\u0000"+ - "\u08eb\u08ec\u0003!\u0010\u0000\u08ec\u08ed\u0003\u0007\u0003\u0000\u08ed"+ - "\u08ee\u0003\u001f\u000f\u0000\u08ee\u08ef\u0003\u000f\u0007\u0000\u08ef"+ - "\u00c0\u0001\u0000\u0000\u0000\u08f0\u08f1\u0003\u000b\u0005\u0000\u08f1"+ - "\u08f2\u0003\u000f\u0007\u0000\u08f2\u08f3\u0003\u0017\u000b\u0000\u08f3"+ - "\u08f4\u0003\u001d\u000e\u0000\u08f4\u00c2\u0001\u0000\u0000\u0000\u08f5"+ - "\u08f6\u0003\u000b\u0005\u0000\u08f6\u08f7\u0003\u000f\u0007\u0000\u08f7"+ - "\u08f8\u0003\u0017\u000b\u0000\u08f8\u08f9\u0003\u001d\u000e\u0000\u08f9"+ - "\u08fa\u0003\u0017\u000b\u0000\u08fa\u08fb\u0003!\u0010\u0000\u08fb\u08fc"+ - "\u0003\u0013\t\u0000\u08fc\u00c4\u0001\u0000\u0000\u0000\u08fd\u08fe\u0003"+ - "\u000b\u0005\u0000\u08fe\u08ff\u0003\u0015\n\u0000\u08ff\u0900\u0003\u0007"+ - "\u0003\u0000\u0900\u0901\u0003\u0017\u000b\u0000\u0901\u0902\u0003!\u0010"+ - "\u0000\u0902\u00c6\u0001\u0000\u0000\u0000\u0903\u0904\u0003\u000b\u0005"+ - "\u0000\u0904\u0905\u0003\u0015\n\u0000\u0905\u0906\u0003\u0007\u0003\u0000"+ - "\u0906\u0907\u0003)\u0014\u0000\u0907\u00c8\u0001\u0000\u0000\u0000\u0908"+ - "\u0909\u0003\u000b\u0005\u0000\u0909\u090a\u0003\u0015\n\u0000\u090a\u090b"+ - "\u0003\u0007\u0003\u0000\u090b\u090c\u0003)\u0014\u0000\u090c\u090d\u0005"+ - "_\u0000\u0000\u090d\u090e\u0003\u001d\u000e\u0000\u090e\u090f\u0003\u000f"+ - "\u0007\u0000\u090f\u0910\u0003!\u0010\u0000\u0910\u0911\u0003\u0013\t"+ - "\u0000\u0911\u0912\u0003-\u0016\u0000\u0912\u0913\u0003\u0015\n\u0000"+ - "\u0913\u00ca\u0001\u0000\u0000\u0000\u0914\u0915\u0003\u000b\u0005\u0000"+ - "\u0915\u0916\u0003\u0015\n\u0000\u0916\u0917\u0003\u0007\u0003\u0000\u0917"+ - "\u0918\u0003)\u0014\u0000\u0918\u0919\u0003\u0007\u0003\u0000\u0919\u091a"+ - "\u0003\u000b\u0005\u0000\u091a\u091b\u0003-\u0016\u0000\u091b\u091c\u0003"+ - "\u000f\u0007\u0000\u091c\u091d\u0003)\u0014\u0000\u091d\u00cc\u0001\u0000"+ - "\u0000\u0000\u091e\u091f\u0003\u000b\u0005\u0000\u091f\u0920\u0003\u0015"+ - "\n\u0000\u0920\u0921\u0003\u0007\u0003\u0000\u0921\u0922\u0003)\u0014"+ - "\u0000\u0922\u0923\u0003\u0007\u0003\u0000\u0923\u0924\u0003\u000b\u0005"+ - "\u0000\u0924\u0925\u0003-\u0016\u0000\u0925\u0926\u0003\u000f\u0007\u0000"+ - "\u0926\u0927\u0003)\u0014\u0000\u0927\u0928\u0005_\u0000\u0000\u0928\u0929"+ - "\u0003\u001d\u000e\u0000\u0929\u092a\u0003\u000f\u0007\u0000\u092a\u092b"+ - "\u0003!\u0010\u0000\u092b\u092c\u0003\u0013\t\u0000\u092c\u092d\u0003"+ - "-\u0016\u0000\u092d\u092e\u0003\u0015\n\u0000\u092e\u00ce\u0001\u0000"+ - "\u0000\u0000\u092f\u0930\u0003\u000b\u0005\u0000\u0930\u0931\u0003\u0015"+ - "\n\u0000\u0931\u0932\u0003\u0007\u0003\u0000\u0932\u0933\u0003)\u0014"+ - "\u0000\u0933\u0934\u0003\u0007\u0003\u0000\u0934\u0935\u0003\u000b\u0005"+ - "\u0000\u0935\u0936\u0003-\u0016\u0000\u0936\u0937\u0003\u000f\u0007\u0000"+ - "\u0937\u0938\u0003)\u0014\u0000\u0938\u0939\u0005_\u0000\u0000\u0939\u093a"+ - "\u0003+\u0015\u0000\u093a\u093b\u0003\u000f\u0007\u0000\u093b\u093c\u0003"+ - "-\u0016\u0000\u093c\u093d\u0005_\u0000\u0000\u093d\u093e\u0003\u000b\u0005"+ - "\u0000\u093e\u093f\u0003\u0007\u0003\u0000\u093f\u0940\u0003-\u0016\u0000"+ - "\u0940\u0941\u0003\u0007\u0003\u0000\u0941\u0942\u0003\u001d\u000e\u0000"+ - "\u0942\u0943\u0003#\u0011\u0000\u0943\u0944\u0003\u0013\t\u0000\u0944"+ - "\u00d0\u0001\u0000\u0000\u0000\u0945\u0946\u0003\u000b\u0005\u0000\u0946"+ - "\u0947\u0003\u0015\n\u0000\u0947\u0948\u0003\u0007\u0003\u0000\u0948\u0949"+ - "\u0003)\u0014\u0000\u0949\u094a\u0003\u0007\u0003\u0000\u094a\u094b\u0003"+ - "\u000b\u0005\u0000\u094b\u094c\u0003-\u0016\u0000\u094c\u094d\u0003\u000f"+ - "\u0007\u0000\u094d\u094e\u0003)\u0014\u0000\u094e\u094f\u0005_\u0000\u0000"+ - "\u094f\u0950\u0003+\u0015\u0000\u0950\u0951\u0003\u000f\u0007\u0000\u0951"+ - "\u0952\u0003-\u0016\u0000\u0952\u0953\u0005_\u0000\u0000\u0953\u0954\u0003"+ - "!\u0010\u0000\u0954\u0955\u0003\u0007\u0003\u0000\u0955\u0956\u0003\u001f"+ - "\u000f\u0000\u0956\u0957\u0003\u000f\u0007\u0000\u0957\u00d2\u0001\u0000"+ - "\u0000\u0000\u0958\u0959\u0003\u000b\u0005\u0000\u0959\u095a\u0003\u0015"+ - "\n\u0000\u095a\u095b\u0003\u0007\u0003\u0000\u095b\u095c\u0003)\u0014"+ - "\u0000\u095c\u095d\u0003\u0007\u0003\u0000\u095d\u095e\u0003\u000b\u0005"+ - "\u0000\u095e\u095f\u0003-\u0016\u0000\u095f\u0960\u0003\u000f\u0007\u0000"+ - "\u0960\u0961\u0003)\u0014\u0000\u0961\u0962\u0005_\u0000\u0000\u0962\u0963"+ - "\u0003+\u0015\u0000\u0963\u0964\u0003\u000f\u0007\u0000\u0964\u0965\u0003"+ - "-\u0016\u0000\u0965\u0966\u0005_\u0000\u0000\u0966\u0967\u0003+\u0015"+ - "\u0000\u0967\u0968\u0003\u000b\u0005\u0000\u0968\u0969\u0003\u0015\n\u0000"+ - "\u0969\u096a\u0003\u000f\u0007\u0000\u096a\u096b\u0003\u001f\u000f\u0000"+ - "\u096b\u096c\u0003\u0007\u0003\u0000\u096c\u00d4\u0001\u0000\u0000\u0000"+ - "\u096d\u096e\u0003\u000b\u0005\u0000\u096e\u096f\u0003\u0015\n\u0000\u096f"+ - "\u0970\u0003\u0007\u0003\u0000\u0970\u0971\u0003)\u0014\u0000\u0971\u0972"+ - "\u0003\u0007\u0003\u0000\u0972\u0973\u0003\u000b\u0005\u0000\u0973\u0974"+ - "\u0003-\u0016\u0000\u0974\u0975\u0003\u000f\u0007\u0000\u0975\u0976\u0003"+ - ")\u0014\u0000\u0976\u0977\u0003\u0017\u000b\u0000\u0977\u0978\u0003+\u0015"+ - "\u0000\u0978\u0979\u0003-\u0016\u0000\u0979\u097a\u0003\u0017\u000b\u0000"+ - "\u097a\u097b\u0003\u000b\u0005\u0000\u097b\u097c\u0003+\u0015\u0000\u097c"+ - "\u00d6\u0001\u0000\u0000\u0000\u097d\u097e\u0003\u000b\u0005\u0000\u097e"+ - "\u097f\u0003\u0015\n\u0000\u097f\u0980\u0003\u0007\u0003\u0000\u0980\u0981"+ - "\u0003)\u0014\u0000\u0981\u0982\u0003\u0007\u0003\u0000\u0982\u0983\u0003"+ - "\u000b\u0005\u0000\u0983\u0984\u0003-\u0016\u0000\u0984\u0985\u0003\u000f"+ - "\u0007\u0000\u0985\u0986\u0003)\u0014\u0000\u0986\u0987\u0003+\u0015\u0000"+ - "\u0987\u00d8\u0001\u0000\u0000\u0000\u0988\u0989\u0003\u000b\u0005\u0000"+ - "\u0989\u098a\u0003\u0015\n\u0000\u098a\u098b\u0003\u000f\u0007\u0000\u098b"+ - "\u098c\u0003\u000b\u0005\u0000\u098c\u098d\u0003\u001b\r\u0000\u098d\u00da"+ - "\u0001\u0000\u0000\u0000\u098e\u098f\u0003\u000b\u0005\u0000\u098f\u0990"+ - "\u0003\u0015\n\u0000\u0990\u0991\u0003\u000f\u0007\u0000\u0991\u0992\u0003"+ - "\u000b\u0005\u0000\u0992\u0993\u0003\u001b\r\u0000\u0993\u0994\u0003\u000f"+ - "\u0007\u0000\u0994\u0995\u0003\r\u0006\u0000\u0995\u00dc\u0001\u0000\u0000"+ - "\u0000\u0996\u0997\u0003\u000b\u0005\u0000\u0997\u0998\u0003\u0015\n\u0000"+ - "\u0998\u0999\u0003\u000f\u0007\u0000\u0999\u099a\u0003\u000b\u0005\u0000"+ - "\u099a\u099b\u0003\u001b\r\u0000\u099b\u099c\u0003%\u0012\u0000\u099c"+ - "\u099d\u0003#\u0011\u0000\u099d\u099e\u0003\u0017\u000b\u0000\u099e\u099f"+ - "\u0003!\u0010\u0000\u099f\u09a0\u0003-\u0016\u0000\u09a0\u00de\u0001\u0000"+ - "\u0000\u0000\u09a1\u09a2\u0003\u000b\u0005\u0000\u09a2\u09a3\u0003\u001d"+ - "\u000e\u0000\u09a3\u09a4\u0003\u0007\u0003\u0000\u09a4\u09a5\u0003+\u0015"+ - "\u0000\u09a5\u09a6\u0003+\u0015\u0000\u09a6\u00e0\u0001\u0000\u0000\u0000"+ - "\u09a7\u09a8\u0003\u000b\u0005\u0000\u09a8\u09a9\u0003\u001d\u000e\u0000"+ - "\u09a9\u09aa\u0003\u0007\u0003\u0000\u09aa\u09ab\u0003+\u0015\u0000\u09ab"+ - "\u09ac\u0003+\u0015\u0000\u09ac\u09ad\u0005_\u0000\u0000\u09ad\u09ae\u0003"+ - "#\u0011\u0000\u09ae\u09af\u0003)\u0014\u0000\u09af\u09b0\u0003\u0017\u000b"+ - "\u0000\u09b0\u09b1\u0003\u0013\t\u0000\u09b1\u09b2\u0003\u0017\u000b\u0000"+ - "\u09b2\u09b3\u0003!\u0010\u0000\u09b3\u00e2\u0001\u0000\u0000\u0000\u09b4"+ - "\u09b5\u0003\u000b\u0005\u0000\u09b5\u09b6\u0003\u001d\u000e\u0000\u09b6"+ - "\u09b7\u0003#\u0011\u0000\u09b7\u09b8\u0003\t\u0004\u0000\u09b8\u00e4"+ - "\u0001\u0000\u0000\u0000\u09b9\u09ba\u0003\u000b\u0005\u0000\u09ba\u09bb"+ - "\u0003\u001d\u000e\u0000\u09bb\u09bc\u0003#\u0011\u0000\u09bc\u09bd\u0003"+ - "+\u0015\u0000\u09bd\u09be\u0003\u000f\u0007\u0000\u09be\u00e6\u0001\u0000"+ - "\u0000\u0000\u09bf\u09c0\u0003\u000b\u0005\u0000\u09c0\u09c1\u0003\u001d"+ - "\u000e\u0000\u09c1\u09c2\u0003/\u0017\u0000\u09c2\u09c3\u0003+\u0015\u0000"+ - "\u09c3\u09c4\u0003-\u0016\u0000\u09c4\u09c5\u0003\u000f\u0007\u0000\u09c5"+ - "\u09c6\u0003)\u0014\u0000\u09c6\u00e8\u0001\u0000\u0000\u0000\u09c7\u09c8"+ - "\u0003\u000b\u0005\u0000\u09c8\u09c9\u0003#\u0011\u0000\u09c9\u09ca\u0003"+ - "\u0007\u0003\u0000\u09ca\u09cb\u0003\u001d\u000e\u0000\u09cb\u09cc\u0003"+ - "\u000f\u0007\u0000\u09cc\u09cd\u0003+\u0015\u0000\u09cd\u09ce\u0003\u000b"+ - "\u0005\u0000\u09ce\u09cf\u0003\u000f\u0007\u0000\u09cf\u00ea\u0001\u0000"+ - "\u0000\u0000\u09d0\u09d1\u0003\u000b\u0005\u0000\u09d1\u09d2\u0003#\u0011"+ - "\u0000\u09d2\u09d3\u0003\t\u0004\u0000\u09d3\u09d4\u0003#\u0011\u0000"+ - "\u09d4\u09d5\u0003\u001d\u000e\u0000\u09d5\u00ec\u0001\u0000\u0000\u0000"+ - "\u09d6\u09d7\u0003\u000b\u0005\u0000\u09d7\u09d8\u0003#\u0011\u0000\u09d8"+ - "\u09d9\u0003\u001d\u000e\u0000\u09d9\u09da\u0003\u001d\u000e\u0000\u09da"+ - "\u09db\u0003\u0007\u0003\u0000\u09db\u09dc\u0003-\u0016\u0000\u09dc\u09dd"+ - "\u0003\u000f\u0007\u0000\u09dd\u00ee\u0001\u0000\u0000\u0000\u09de\u09df"+ - "\u0003\u000b\u0005\u0000\u09df\u09e0\u0003#\u0011\u0000\u09e0\u09e1\u0003"+ - "\u001d\u000e\u0000\u09e1\u09e2\u0003\u001d\u000e\u0000\u09e2\u09e3\u0003"+ - "\u0007\u0003\u0000\u09e3\u09e4\u0003-\u0016\u0000\u09e4\u09e5\u0003\u0017"+ - "\u000b\u0000\u09e5\u09e6\u0003#\u0011\u0000\u09e6\u09e7\u0003!\u0010\u0000"+ - "\u09e7\u00f0\u0001\u0000\u0000\u0000\u09e8\u09e9\u0003\u000b\u0005\u0000"+ - "\u09e9\u09ea\u0003#\u0011\u0000\u09ea\u09eb\u0003\u001d\u000e\u0000\u09eb"+ - "\u09ec\u0003\u001d\u000e\u0000\u09ec\u09ed\u0003\u0007\u0003\u0000\u09ed"+ - "\u09ee\u0003-\u0016\u0000\u09ee\u09ef\u0003\u0017\u000b\u0000\u09ef\u09f0"+ - "\u0003#\u0011\u0000\u09f0\u09f1\u0003!\u0010\u0000\u09f1\u09f2\u0005_"+ - "\u0000\u0000\u09f2\u09f3\u0003\u000b\u0005\u0000\u09f3\u09f4\u0003\u0007"+ - "\u0003\u0000\u09f4\u09f5\u0003-\u0016\u0000\u09f5\u09f6\u0003\u0007\u0003"+ - "\u0000\u09f6\u09f7\u0003\u001d\u000e\u0000\u09f7\u09f8\u0003#\u0011\u0000"+ - "\u09f8\u09f9\u0003\u0013\t\u0000\u09f9\u00f2\u0001\u0000\u0000\u0000\u09fa"+ - "\u09fb\u0003\u000b\u0005\u0000\u09fb\u09fc\u0003#\u0011\u0000\u09fc\u09fd"+ - "\u0003\u001d\u000e\u0000\u09fd\u09fe\u0003\u001d\u000e\u0000\u09fe\u09ff"+ - "\u0003\u0007\u0003\u0000\u09ff\u0a00\u0003-\u0016\u0000\u0a00\u0a01\u0003"+ - "\u0017\u000b\u0000\u0a01\u0a02\u0003#\u0011\u0000\u0a02\u0a03\u0003!\u0010"+ - "\u0000\u0a03\u0a04\u0005_\u0000\u0000\u0a04\u0a05\u0003!\u0010\u0000\u0a05"+ - "\u0a06\u0003\u0007\u0003\u0000\u0a06\u0a07\u0003\u001f\u000f\u0000\u0a07"+ - "\u0a08\u0003\u000f\u0007\u0000\u0a08\u00f4\u0001\u0000\u0000\u0000\u0a09"+ - "\u0a0a\u0003\u000b\u0005\u0000\u0a0a\u0a0b\u0003#\u0011\u0000\u0a0b\u0a0c"+ - "\u0003\u001d\u000e\u0000\u0a0c\u0a0d\u0003\u001d\u000e\u0000\u0a0d\u0a0e"+ - "\u0003\u0007\u0003\u0000\u0a0e\u0a0f\u0003-\u0016\u0000\u0a0f\u0a10\u0003"+ - "\u0017\u000b\u0000\u0a10\u0a11\u0003#\u0011\u0000\u0a11\u0a12\u0003!\u0010"+ - "\u0000\u0a12\u0a13\u0005_\u0000\u0000\u0a13\u0a14\u0003+\u0015\u0000\u0a14"+ - "\u0a15\u0003\u000b\u0005\u0000\u0a15\u0a16\u0003\u0015\n\u0000\u0a16\u0a17"+ - "\u0003\u000f\u0007\u0000\u0a17\u0a18\u0003\u001f\u000f\u0000\u0a18\u0a19"+ - "\u0003\u0007\u0003\u0000\u0a19\u00f6\u0001\u0000\u0000\u0000\u0a1a\u0a1b"+ - "\u0003\u000b\u0005\u0000\u0a1b\u0a1c\u0003#\u0011\u0000\u0a1c\u0a1d\u0003"+ - "\u001d\u000e\u0000\u0a1d\u0a1e\u0003\u001d\u000e\u0000\u0a1e\u0a1f\u0003"+ - "\u000f\u0007\u0000\u0a1f\u0a20\u0003\u000b\u0005\u0000\u0a20\u0a21\u0003"+ - "-\u0016\u0000\u0a21\u00f8\u0001\u0000\u0000\u0000\u0a22\u0a23\u0003\u000b"+ - "\u0005\u0000\u0a23\u0a24\u0003#\u0011\u0000\u0a24\u0a25\u0003\u001d\u000e"+ - "\u0000\u0a25\u0a26\u0003/\u0017\u0000\u0a26\u0a27\u0003\u001f\u000f\u0000"+ - "\u0a27\u0a28\u0003!\u0010\u0000\u0a28\u00fa\u0001\u0000\u0000\u0000\u0a29"+ - "\u0a2a\u0003\u000b\u0005\u0000\u0a2a\u0a2b\u0003#\u0011\u0000\u0a2b\u0a2c"+ - "\u0003\u001d\u000e\u0000\u0a2c\u0a2d\u0003/\u0017\u0000\u0a2d\u0a2e\u0003"+ - "\u001f\u000f\u0000\u0a2e\u0a2f\u0003!\u0010\u0000\u0a2f\u0a30\u0005_\u0000"+ - "\u0000\u0a30\u0a31\u0003!\u0010\u0000\u0a31\u0a32\u0003\u0007\u0003\u0000"+ - "\u0a32\u0a33\u0003\u001f\u000f\u0000\u0a33\u0a34\u0003\u000f\u0007\u0000"+ - "\u0a34\u00fc\u0001\u0000\u0000\u0000\u0a35\u0a36\u0003\u000b\u0005\u0000"+ - "\u0a36\u0a37\u0003#\u0011\u0000\u0a37\u0a38\u0003\u001f\u000f\u0000\u0a38"+ - "\u0a39\u0003\u001f\u000f\u0000\u0a39\u0a3a\u0003\u0007\u0003\u0000\u0a3a"+ - "\u0a3b\u0003!\u0010\u0000\u0a3b\u0a3c\u0003\r\u0006\u0000\u0a3c\u0a3d"+ - "\u0005_\u0000\u0000\u0a3d\u0a3e\u0003\u0011\b\u0000\u0a3e\u0a3f\u0003"+ - "/\u0017\u0000\u0a3f\u0a40\u0003!\u0010\u0000\u0a40\u0a41\u0003\u000b\u0005"+ - "\u0000\u0a41\u0a42\u0003-\u0016\u0000\u0a42\u0a43\u0003\u0017\u000b\u0000"+ - "\u0a43\u0a44\u0003#\u0011\u0000\u0a44\u0a45\u0003!\u0010\u0000\u0a45\u00fe"+ - "\u0001\u0000\u0000\u0000\u0a46\u0a47\u0003\u000b\u0005\u0000\u0a47\u0a48"+ - "\u0003#\u0011\u0000\u0a48\u0a49\u0003\u001f\u000f\u0000\u0a49\u0a4a\u0003"+ - "\u001f\u000f\u0000\u0a4a\u0a4b\u0003\u0007\u0003\u0000\u0a4b\u0a4c\u0003"+ - "!\u0010\u0000\u0a4c\u0a4d\u0003\r\u0006\u0000\u0a4d\u0a4e\u0005_\u0000"+ - "\u0000\u0a4e\u0a4f\u0003\u0011\b\u0000\u0a4f\u0a50\u0003/\u0017\u0000"+ - "\u0a50\u0a51\u0003!\u0010\u0000\u0a51\u0a52\u0003\u000b\u0005\u0000\u0a52"+ - "\u0a53\u0003-\u0016\u0000\u0a53\u0a54\u0003\u0017\u000b\u0000\u0a54\u0a55"+ - "\u0003#\u0011\u0000\u0a55\u0a56\u0003!\u0010\u0000\u0a56\u0a57\u0005_"+ - "\u0000\u0000\u0a57\u0a58\u0003\u000b\u0005\u0000\u0a58\u0a59\u0003#\u0011"+ - "\u0000\u0a59\u0a5a\u0003\r\u0006\u0000\u0a5a\u0a5b\u0003\u000f\u0007\u0000"+ - "\u0a5b\u0100\u0001\u0000\u0000\u0000\u0a5c\u0a5d\u0003\u000b\u0005\u0000"+ - "\u0a5d\u0a5e\u0003#\u0011\u0000\u0a5e\u0a5f\u0003\u001f\u000f\u0000\u0a5f"+ - "\u0a60\u0003\u001f\u000f\u0000\u0a60\u0a61\u0003\u000f\u0007\u0000\u0a61"+ - "\u0a62\u0003!\u0010\u0000\u0a62\u0a63\u0003-\u0016\u0000\u0a63\u0102\u0001"+ - "\u0000\u0000\u0000\u0a64\u0a65\u0003\u000b\u0005\u0000\u0a65\u0a66\u0003"+ - "#\u0011\u0000\u0a66\u0a67\u0003\u001f\u000f\u0000\u0a67\u0a68\u0003\u001f"+ - "\u000f\u0000\u0a68\u0a69\u0003\u0017\u000b\u0000\u0a69\u0a6a\u0003-\u0016"+ - "\u0000\u0a6a\u0104\u0001\u0000\u0000\u0000\u0a6b\u0a6c\u0003\u000b\u0005"+ - "\u0000\u0a6c\u0a6d\u0003#\u0011\u0000\u0a6d\u0a6e\u0003\u001f\u000f\u0000"+ - "\u0a6e\u0a6f\u0003\u001f\u000f\u0000\u0a6f\u0a70\u0003\u0017\u000b\u0000"+ - "\u0a70\u0a71\u0003-\u0016\u0000\u0a71\u0a72\u0003-\u0016\u0000\u0a72\u0a73"+ - "\u0003\u000f\u0007\u0000\u0a73\u0a74\u0003\r\u0006\u0000\u0a74\u0106\u0001"+ - "\u0000\u0000\u0000\u0a75\u0a76\u0003\u000b\u0005\u0000\u0a76\u0a77\u0003"+ - "#\u0011\u0000\u0a77\u0a78\u0003\u001f\u000f\u0000\u0a78\u0a79\u0003%\u0012"+ - "\u0000\u0a79\u0a7a\u0003\u001d\u000e\u0000\u0a7a\u0a7b\u0003\u000f\u0007"+ - "\u0000\u0a7b\u0a7c\u0003-\u0016\u0000\u0a7c\u0a7d\u0003\u0017\u000b\u0000"+ - "\u0a7d\u0a7e\u0003#\u0011\u0000\u0a7e\u0a7f\u0003!\u0010\u0000\u0a7f\u0108"+ - "\u0001\u0000\u0000\u0000\u0a80\u0a81\u0003\u000b\u0005\u0000\u0a81\u0a82"+ - "\u0003#\u0011\u0000\u0a82\u0a83\u0003!\u0010\u0000\u0a83\u0a84\u0003\r"+ - "\u0006\u0000\u0a84\u0a85\u0003\u0017\u000b\u0000\u0a85\u0a86\u0003-\u0016"+ - "\u0000\u0a86\u0a87\u0003\u0017\u000b\u0000\u0a87\u0a88\u0003#\u0011\u0000"+ - "\u0a88\u0a89\u0003!\u0010\u0000\u0a89\u010a\u0001\u0000\u0000\u0000\u0a8a"+ - "\u0a8b\u0003\u000b\u0005\u0000\u0a8b\u0a8c\u0003#\u0011\u0000\u0a8c\u0a8d"+ - "\u0003!\u0010\u0000\u0a8d\u0a8e\u0003\r\u0006\u0000\u0a8e\u0a8f\u0003"+ - "\u0017\u000b\u0000\u0a8f\u0a90\u0003-\u0016\u0000\u0a90\u0a91\u0003\u0017"+ - "\u000b\u0000\u0a91\u0a92\u0003#\u0011\u0000\u0a92\u0a93\u0003!\u0010\u0000"+ - "\u0a93\u0a94\u0005_\u0000\u0000\u0a94\u0a95\u0003!\u0010\u0000\u0a95\u0a96"+ - "\u0003/\u0017\u0000\u0a96\u0a97\u0003\u001f\u000f\u0000\u0a97\u0a98\u0003"+ - "\t\u0004\u0000\u0a98\u0a99\u0003\u000f\u0007\u0000\u0a99\u0a9a\u0003)"+ - "\u0014\u0000\u0a9a\u010c\u0001\u0000\u0000\u0000\u0a9b\u0a9c\u0003\u000b"+ - "\u0005\u0000\u0a9c\u0a9d\u0003#\u0011\u0000\u0a9d\u0a9e\u0003!\u0010\u0000"+ - "\u0a9e\u0a9f\u0003\u0011\b\u0000\u0a9f\u0aa0\u0003\u0017\u000b\u0000\u0aa0"+ - "\u0aa1\u0003\u0013\t\u0000\u0aa1\u0aa2\u0003/\u0017\u0000\u0aa2\u0aa3"+ - "\u0003)\u0014\u0000\u0aa3\u0aa4\u0003\u0007\u0003\u0000\u0aa4\u0aa5\u0003"+ - "-\u0016\u0000\u0aa5\u0aa6\u0003\u0017\u000b\u0000\u0aa6\u0aa7\u0003#\u0011"+ - "\u0000\u0aa7\u0aa8\u0003!\u0010\u0000\u0aa8\u010e\u0001\u0000\u0000\u0000"+ - "\u0aa9\u0aaa\u0003\u000b\u0005\u0000\u0aaa\u0aab\u0003#\u0011\u0000\u0aab"+ - "\u0aac\u0003!\u0010\u0000\u0aac\u0aad\u0003\u0011\b\u0000\u0aad\u0aae"+ - "\u0003\u001d\u000e\u0000\u0aae\u0aaf\u0003\u0017\u000b\u0000\u0aaf\u0ab0"+ - "\u0003\u000b\u0005\u0000\u0ab0\u0ab1\u0003-\u0016\u0000\u0ab1\u0110\u0001"+ - "\u0000\u0000\u0000\u0ab2\u0ab3\u0003\u000b\u0005\u0000\u0ab3\u0ab4\u0003"+ - "#\u0011\u0000\u0ab4\u0ab5\u0003!\u0010\u0000\u0ab5\u0ab6\u0003!\u0010"+ - "\u0000\u0ab6\u0ab7\u0003\u000f\u0007\u0000\u0ab7\u0ab8\u0003\u000b\u0005"+ - "\u0000\u0ab8\u0ab9\u0003-\u0016\u0000\u0ab9\u0112\u0001\u0000\u0000\u0000"+ - "\u0aba\u0abb\u0003\u000b\u0005\u0000\u0abb\u0abc\u0003#\u0011\u0000\u0abc"+ - "\u0abd\u0003!\u0010\u0000\u0abd\u0abe\u0003!\u0010\u0000\u0abe\u0abf\u0003"+ - "\u000f\u0007\u0000\u0abf\u0ac0\u0003\u000b\u0005\u0000\u0ac0\u0ac1\u0003"+ - "-\u0016\u0000\u0ac1\u0ac2\u0003\u0017\u000b\u0000\u0ac2\u0ac3\u0003#\u0011"+ - "\u0000\u0ac3\u0ac4\u0003!\u0010\u0000\u0ac4\u0114\u0001\u0000\u0000\u0000"+ - "\u0ac5\u0ac6\u0003\u000b\u0005\u0000\u0ac6\u0ac7\u0003#\u0011\u0000\u0ac7"+ - "\u0ac8\u0003!\u0010\u0000\u0ac8\u0ac9\u0003!\u0010\u0000\u0ac9\u0aca\u0003"+ - "\u000f\u0007\u0000\u0aca\u0acb\u0003\u000b\u0005\u0000\u0acb\u0acc\u0003"+ - "-\u0016\u0000\u0acc\u0acd\u0003\u0017\u000b\u0000\u0acd\u0ace\u0003#\u0011"+ - "\u0000\u0ace\u0acf\u0003!\u0010\u0000\u0acf\u0ad0\u0005_\u0000\u0000\u0ad0"+ - "\u0ad1\u0003!\u0010\u0000\u0ad1\u0ad2\u0003\u0007\u0003\u0000\u0ad2\u0ad3"+ - "\u0003\u001f\u000f\u0000\u0ad3\u0ad4\u0003\u000f\u0007\u0000\u0ad4\u0116"+ - "\u0001\u0000\u0000\u0000\u0ad5\u0ad6\u0003\u000b\u0005\u0000\u0ad6\u0ad7"+ - "\u0003#\u0011\u0000\u0ad7\u0ad8\u0003!\u0010\u0000\u0ad8\u0ad9\u0003+"+ - "\u0015\u0000\u0ad9\u0ada\u0003-\u0016\u0000\u0ada\u0adb\u0003)\u0014\u0000"+ - "\u0adb\u0adc\u0003\u0007\u0003\u0000\u0adc\u0add\u0003\u0017\u000b\u0000"+ - "\u0add\u0ade\u0003!\u0010\u0000\u0ade\u0adf\u0003-\u0016\u0000\u0adf\u0118"+ - "\u0001\u0000\u0000\u0000\u0ae0\u0ae1\u0003\u000b\u0005\u0000\u0ae1\u0ae2"+ - "\u0003#\u0011\u0000\u0ae2\u0ae3\u0003!\u0010\u0000\u0ae3\u0ae4\u0003+"+ - "\u0015\u0000\u0ae4\u0ae5\u0003-\u0016\u0000\u0ae5\u0ae6\u0003)\u0014\u0000"+ - "\u0ae6\u0ae7\u0003\u0007\u0003\u0000\u0ae7\u0ae8\u0003\u0017\u000b\u0000"+ - "\u0ae8\u0ae9\u0003!\u0010\u0000\u0ae9\u0aea\u0003-\u0016\u0000\u0aea\u0aeb"+ - "\u0005_\u0000\u0000\u0aeb\u0aec\u0003\u000b\u0005\u0000\u0aec\u0aed\u0003"+ - "\u0007\u0003\u0000\u0aed\u0aee\u0003-\u0016\u0000\u0aee\u0aef\u0003\u0007"+ - "\u0003\u0000\u0aef\u0af0\u0003\u001d\u000e\u0000\u0af0\u0af1\u0003#\u0011"+ - "\u0000\u0af1\u0af2\u0003\u0013\t\u0000\u0af2\u011a\u0001\u0000\u0000\u0000"+ - "\u0af3\u0af4\u0003\u000b\u0005\u0000\u0af4\u0af5\u0003#\u0011\u0000\u0af5"+ - "\u0af6\u0003!\u0010\u0000\u0af6\u0af7\u0003+\u0015\u0000\u0af7\u0af8\u0003"+ - "-\u0016\u0000\u0af8\u0af9\u0003)\u0014\u0000\u0af9\u0afa\u0003\u0007\u0003"+ - "\u0000\u0afa\u0afb\u0003\u0017\u000b\u0000\u0afb\u0afc\u0003!\u0010\u0000"+ - "\u0afc\u0afd\u0003-\u0016\u0000\u0afd\u0afe\u0005_\u0000\u0000\u0afe\u0aff"+ - "\u0003!\u0010\u0000\u0aff\u0b00\u0003\u0007\u0003\u0000\u0b00\u0b01\u0003"+ - "\u001f\u000f\u0000\u0b01\u0b02\u0003\u000f\u0007\u0000\u0b02\u011c\u0001"+ - "\u0000\u0000\u0000\u0b03\u0b04\u0003\u000b\u0005\u0000\u0b04\u0b05\u0003"+ - "#\u0011\u0000\u0b05\u0b06\u0003!\u0010\u0000\u0b06\u0b07\u0003+\u0015"+ - "\u0000\u0b07\u0b08\u0003-\u0016\u0000\u0b08\u0b09\u0003)\u0014\u0000\u0b09"+ - "\u0b0a\u0003\u0007\u0003\u0000\u0b0a\u0b0b\u0003\u0017\u000b\u0000\u0b0b"+ - "\u0b0c\u0003!\u0010\u0000\u0b0c\u0b0d\u0003-\u0016\u0000\u0b0d\u0b0e\u0005"+ - "_\u0000\u0000\u0b0e\u0b0f\u0003+\u0015\u0000\u0b0f\u0b10\u0003\u000b\u0005"+ - "\u0000\u0b10\u0b11\u0003\u0015\n\u0000\u0b11\u0b12\u0003\u000f\u0007\u0000"+ - "\u0b12\u0b13\u0003\u001f\u000f\u0000\u0b13\u0b14\u0003\u0007\u0003\u0000"+ - "\u0b14\u011e\u0001\u0000\u0000\u0000\u0b15\u0b16\u0003\u000b\u0005\u0000"+ - "\u0b16\u0b17\u0003#\u0011\u0000\u0b17\u0b18\u0003!\u0010\u0000\u0b18\u0b19"+ - "\u0003+\u0015\u0000\u0b19\u0b1a\u0003-\u0016\u0000\u0b1a\u0b1b\u0003)"+ - "\u0014\u0000\u0b1b\u0b1c\u0003\u0007\u0003\u0000\u0b1c\u0b1d\u0003\u0017"+ - "\u000b\u0000\u0b1d\u0b1e\u0003!\u0010\u0000\u0b1e\u0b1f\u0003-\u0016\u0000"+ - "\u0b1f\u0b20\u0003+\u0015\u0000\u0b20\u0120\u0001\u0000\u0000\u0000\u0b21"+ - "\u0b22\u0003\u000b\u0005\u0000\u0b22\u0b23\u0003#\u0011\u0000\u0b23\u0b24"+ - "\u0003!\u0010\u0000\u0b24\u0b25\u0003+\u0015\u0000\u0b25\u0b26\u0003-"+ - "\u0016\u0000\u0b26\u0b27\u0003)\u0014\u0000\u0b27\u0b28\u0003/\u0017\u0000"+ - "\u0b28\u0b29\u0003\u000b\u0005\u0000\u0b29\u0b2a\u0003-\u0016\u0000\u0b2a"+ - "\u0b2b\u0003#\u0011\u0000\u0b2b\u0b2c\u0003)\u0014\u0000\u0b2c\u0122\u0001"+ - "\u0000\u0000\u0000\u0b2d\u0b2e\u0003\u000b\u0005\u0000\u0b2e\u0b2f\u0003"+ - "#\u0011\u0000\u0b2f\u0b30\u0003!\u0010\u0000\u0b30\u0b31\u0003-\u0016"+ - "\u0000\u0b31\u0b32\u0003\u0007\u0003\u0000\u0b32\u0b33\u0003\u0017\u000b"+ - "\u0000\u0b33\u0b34\u0003!\u0010\u0000\u0b34\u0b35\u0003+\u0015\u0000\u0b35"+ - "\u0124\u0001\u0000\u0000\u0000\u0b36\u0b37\u0003\u000b\u0005\u0000\u0b37"+ - "\u0b38\u0003#\u0011\u0000\u0b38\u0b39\u0003!\u0010\u0000\u0b39\u0b3a\u0003"+ - "-\u0016\u0000\u0b3a\u0b3b\u0003\u0017\u000b\u0000\u0b3b\u0b3c\u0003!\u0010"+ - "\u0000\u0b3c\u0b3d\u0003/\u0017\u0000\u0b3d\u0b3e\u0003\u000f\u0007\u0000"+ - "\u0b3e\u0126\u0001\u0000\u0000\u0000\u0b3f\u0b40\u0003\u000b\u0005\u0000"+ - "\u0b40\u0b41\u0003#\u0011\u0000\u0b41\u0b42\u0003!\u0010\u0000\u0b42\u0b43"+ - "\u00031\u0018\u0000\u0b43\u0b44\u0003\u000f\u0007\u0000\u0b44\u0b45\u0003"+ - ")\u0014\u0000\u0b45\u0b46\u0003+\u0015\u0000\u0b46\u0b47\u0003\u0017\u000b"+ - "\u0000\u0b47\u0b48\u0003#\u0011\u0000\u0b48\u0b49\u0003!\u0010\u0000\u0b49"+ - "\u0128\u0001\u0000\u0000\u0000\u0b4a\u0b4b\u0003\u000b\u0005\u0000\u0b4b"+ - "\u0b4c\u0003#\u0011\u0000\u0b4c\u0b4d\u0003!\u0010\u0000\u0b4d\u0b4e\u0003"+ - "1\u0018\u0000\u0b4e\u0b4f\u0003\u000f\u0007\u0000\u0b4f\u0b50\u0003)\u0014"+ - "\u0000\u0b50\u0b51\u0003-\u0016\u0000\u0b51\u012a\u0001\u0000\u0000\u0000"+ - "\u0b52\u0b53\u0003\u000b\u0005\u0000\u0b53\u0b54\u0003#\u0011\u0000\u0b54"+ - "\u0b55\u0003%\u0012\u0000\u0b55\u0b56\u00037\u001b\u0000\u0b56\u012c\u0001"+ - "\u0000\u0000\u0000\u0b57\u0b58\u0003\u000b\u0005\u0000\u0b58\u0b59\u0003"+ - "#\u0011\u0000\u0b59\u0b5a\u0003)\u0014\u0000\u0b5a\u0b5b\u0003)\u0014"+ - "\u0000\u0b5b\u012e\u0001\u0000\u0000\u0000\u0b5c\u0b5d\u0003\u000b\u0005"+ - "\u0000\u0b5d\u0b5e\u0003#\u0011\u0000\u0b5e\u0b5f\u0003)\u0014\u0000\u0b5f"+ - "\u0b60\u0003)\u0014\u0000\u0b60\u0b61\u0003\u000f\u0007\u0000\u0b61\u0b62"+ - "\u0003+\u0015\u0000\u0b62\u0b63\u0003%\u0012\u0000\u0b63\u0b64\u0003#"+ - "\u0011\u0000\u0b64\u0b65\u0003!\u0010\u0000\u0b65\u0b66\u0003\r\u0006"+ - "\u0000\u0b66\u0b67\u0003\u0017\u000b\u0000\u0b67\u0b68\u0003!\u0010\u0000"+ - "\u0b68\u0b69\u0003\u0013\t\u0000\u0b69\u0130\u0001\u0000\u0000\u0000\u0b6a"+ - "\u0b6b\u0003\u000b\u0005\u0000\u0b6b\u0b6c\u0003#\u0011\u0000\u0b6c\u0b6d"+ - "\u0003+\u0015\u0000\u0b6d\u0b6e\u0003-\u0016\u0000\u0b6e\u0b6f\u0003+"+ - "\u0015\u0000\u0b6f\u0132\u0001\u0000\u0000\u0000\u0b70\u0b71\u0003\u000b"+ - "\u0005\u0000\u0b71\u0b72\u0003#\u0011\u0000\u0b72\u0b73\u0003/\u0017\u0000"+ - "\u0b73\u0b74\u0003!\u0010\u0000\u0b74\u0b75\u0003-\u0016\u0000\u0b75\u0134"+ - "\u0001\u0000\u0000\u0000\u0b76\u0b77\u0003\u000b\u0005\u0000\u0b77\u0b78"+ - "\u0003#\u0011\u0000\u0b78\u0b79\u00031\u0018\u0000\u0b79\u0b7a\u0003\u0007"+ - "\u0003\u0000\u0b7a\u0b7b\u0003)\u0014\u0000\u0b7b\u0b7c\u0005_\u0000\u0000"+ - "\u0b7c\u0b7d\u0003%\u0012\u0000\u0b7d\u0b7e\u0003#\u0011\u0000\u0b7e\u0b7f"+ - "\u0003%\u0012\u0000\u0b7f\u0136\u0001\u0000\u0000\u0000\u0b80\u0b81\u0003"+ - "\u000b\u0005\u0000\u0b81\u0b82\u0003#\u0011\u0000\u0b82\u0b83\u00031\u0018"+ - "\u0000\u0b83\u0b84\u0003\u0007\u0003\u0000\u0b84\u0b85\u0003)\u0014\u0000"+ - "\u0b85\u0b86\u0005_\u0000\u0000\u0b86\u0b87\u0003+\u0015\u0000\u0b87\u0b88"+ - "\u0003\u0007\u0003\u0000\u0b88\u0b89\u0003\u001f\u000f\u0000\u0b89\u0b8a"+ - "\u0003%\u0012\u0000\u0b8a\u0138\u0001\u0000\u0000\u0000\u0b8b\u0b8c\u0003"+ - "\u000b\u0005\u0000\u0b8c\u0b8d\u0003)\u0014\u0000\u0b8d\u0b8e\u0003\u000f"+ - "\u0007\u0000\u0b8e\u0b8f\u0003\u0007\u0003\u0000\u0b8f\u0b90\u0003-\u0016"+ - "\u0000\u0b90\u0b91\u0003\u000f\u0007\u0000\u0b91\u013a\u0001\u0000\u0000"+ - "\u0000\u0b92\u0b93\u0003\u000b\u0005\u0000\u0b93\u0b94\u0003)\u0014\u0000"+ - "\u0b94\u0b95\u0003\u000f\u0007\u0000\u0b95\u0b96\u0003\u0007\u0003\u0000"+ - "\u0b96\u0b97\u0003-\u0016\u0000\u0b97\u0b98\u0003\u000f\u0007\u0000\u0b98"+ - "\u0b99\u0003\r\u0006\u0000\u0b99\u0b9a\u0003\t\u0004\u0000\u0b9a\u013c"+ - "\u0001\u0000\u0000\u0000\u0b9b\u0b9c\u0003\u000b\u0005\u0000\u0b9c\u0b9d"+ - "\u0003)\u0014\u0000\u0b9d\u0b9e\u0003\u000f\u0007\u0000\u0b9e\u0b9f\u0003"+ - "\u0007\u0003\u0000\u0b9f\u0ba0\u0003-\u0016\u0000\u0ba0\u0ba1\u0003\u000f"+ - "\u0007\u0000\u0ba1\u0ba2\u0003/\u0017\u0000\u0ba2\u0ba3\u0003+\u0015\u0000"+ - "\u0ba3\u0ba4\u0003\u000f\u0007\u0000\u0ba4\u0ba5\u0003)\u0014\u0000\u0ba5"+ - "\u013e\u0001\u0000\u0000\u0000\u0ba6\u0ba7\u0003\u000b\u0005\u0000\u0ba7"+ - "\u0ba8\u0003)\u0014\u0000\u0ba8\u0ba9\u0003#\u0011\u0000\u0ba9\u0baa\u0003"+ - "+\u0015\u0000\u0baa\u0bab\u0003+\u0015\u0000\u0bab\u0140\u0001\u0000\u0000"+ - "\u0000\u0bac\u0bad\u0003\u000b\u0005\u0000\u0bad\u0bae\u0003+\u0015\u0000"+ - "\u0bae\u0baf\u00031\u0018\u0000\u0baf\u0142\u0001\u0000\u0000\u0000\u0bb0"+ - "\u0bb1\u0003\u000b\u0005\u0000\u0bb1\u0bb2\u0003/\u0017\u0000\u0bb2\u0bb3"+ - "\u0003\t\u0004\u0000\u0bb3\u0bb4\u0003\u000f\u0007\u0000\u0bb4\u0144\u0001"+ - "\u0000\u0000\u0000\u0bb5\u0bb6\u0003\u000b\u0005\u0000\u0bb6\u0bb7\u0003"+ - "/\u0017\u0000\u0bb7\u0bb8\u0003\u001f\u000f\u0000\u0bb8\u0bb9\u0003\u000f"+ - "\u0007\u0000\u0bb9\u0bba\u0005_\u0000\u0000\u0bba\u0bbb\u0003\r\u0006"+ - "\u0000\u0bbb\u0bbc\u0003\u0017\u000b\u0000\u0bbc\u0bbd\u0003+\u0015\u0000"+ - "\u0bbd\u0bbe\u0003-\u0016\u0000\u0bbe\u0146\u0001\u0000\u0000\u0000\u0bbf"+ - "\u0bc0\u0003\u000b\u0005\u0000\u0bc0\u0bc1\u0003/\u0017\u0000\u0bc1\u0bc2"+ - "\u0003)\u0014\u0000\u0bc2\u0bc3\u0003)\u0014\u0000\u0bc3\u0bc4\u0003\u000f"+ - "\u0007\u0000\u0bc4\u0bc5\u0003!\u0010\u0000\u0bc5\u0bc6\u0003-\u0016\u0000"+ - "\u0bc6\u0148\u0001\u0000\u0000\u0000\u0bc7\u0bc8\u0003\u000b\u0005\u0000"+ - "\u0bc8\u0bc9\u0003/\u0017\u0000\u0bc9\u0bca\u0003)\u0014\u0000\u0bca\u0bcb"+ - "\u0003)\u0014\u0000\u0bcb\u0bcc\u0003\u000f\u0007\u0000\u0bcc\u0bcd\u0003"+ - "!\u0010\u0000\u0bcd\u0bce\u0003-\u0016\u0000\u0bce\u0bcf\u0005_\u0000"+ - "\u0000\u0bcf\u0bd0\u0003\r\u0006\u0000\u0bd0\u0bd1\u0003\u0007\u0003\u0000"+ - "\u0bd1\u0bd2\u0003-\u0016\u0000\u0bd2\u0bd3\u0003\u000f\u0007\u0000\u0bd3"+ - "\u014a\u0001\u0000\u0000\u0000\u0bd4\u0bd5\u0003\u000b\u0005\u0000\u0bd5"+ - "\u0bd6\u0003/\u0017\u0000\u0bd6\u0bd7\u0003)\u0014\u0000\u0bd7\u0bd8\u0003"+ - ")\u0014\u0000\u0bd8\u0bd9\u0003\u000f\u0007\u0000\u0bd9\u0bda\u0003!\u0010"+ - "\u0000\u0bda\u0bdb\u0003-\u0016\u0000\u0bdb\u0bdc\u0005_\u0000\u0000\u0bdc"+ - "\u0bdd\u0003\r\u0006\u0000\u0bdd\u0bde\u0003\u000f\u0007\u0000\u0bde\u0bdf"+ - "\u0003\u0011\b\u0000\u0bdf\u0be0\u0003\u0007\u0003\u0000\u0be0\u0be1\u0003"+ - "/\u0017\u0000\u0be1\u0be2\u0003\u001d\u000e\u0000\u0be2\u0be3\u0003-\u0016"+ - "\u0000\u0be3\u0be4\u0005_\u0000\u0000\u0be4\u0be5\u0003-\u0016\u0000\u0be5"+ - "\u0be6\u0003)\u0014\u0000\u0be6\u0be7\u0003\u0007\u0003\u0000\u0be7\u0be8"+ - "\u0003!\u0010\u0000\u0be8\u0be9\u0003+\u0015\u0000\u0be9\u0bea\u0003\u0011"+ - "\b\u0000\u0bea\u0beb\u0003#\u0011\u0000\u0beb\u0bec\u0003)\u0014\u0000"+ - "\u0bec\u0bed\u0003\u001f\u000f\u0000\u0bed\u0bee\u0005_\u0000\u0000\u0bee"+ - "\u0bef\u0003\u0013\t\u0000\u0bef\u0bf0\u0003)\u0014\u0000\u0bf0\u0bf1"+ - "\u0003#\u0011\u0000\u0bf1\u0bf2\u0003/\u0017\u0000\u0bf2\u0bf3\u0003%"+ - "\u0012\u0000\u0bf3\u014c\u0001\u0000\u0000\u0000\u0bf4\u0bf5\u0003\u000b"+ - "\u0005\u0000\u0bf5\u0bf6\u0003/\u0017\u0000\u0bf6\u0bf7\u0003)\u0014\u0000"+ - "\u0bf7\u0bf8\u0003)\u0014\u0000\u0bf8\u0bf9\u0003\u000f\u0007\u0000\u0bf9"+ - "\u0bfa\u0003!\u0010\u0000\u0bfa\u0bfb\u0003-\u0016\u0000\u0bfb\u0bfc\u0005"+ - "_\u0000\u0000\u0bfc\u0bfd\u0003%\u0012\u0000\u0bfd\u0bfe\u0003\u0007\u0003"+ - "\u0000\u0bfe\u0bff\u0003-\u0016\u0000\u0bff\u0c00\u0003\u0015\n\u0000"+ - "\u0c00\u014e\u0001\u0000\u0000\u0000\u0c01\u0c02\u0003\u000b\u0005\u0000"+ - "\u0c02\u0c03\u0003/\u0017\u0000\u0c03\u0c04\u0003)\u0014\u0000\u0c04\u0c05"+ - "\u0003)\u0014\u0000\u0c05\u0c06\u0003\u000f\u0007\u0000\u0c06\u0c07\u0003"+ - "!\u0010\u0000\u0c07\u0c08\u0003-\u0016\u0000\u0c08\u0c09\u0005_\u0000"+ - "\u0000\u0c09\u0c0a\u0003)\u0014\u0000\u0c0a\u0c0b\u0003#\u0011\u0000\u0c0b"+ - "\u0c0c\u0003\u001d\u000e\u0000\u0c0c\u0c0d\u0003\u000f\u0007\u0000\u0c0d"+ - "\u0150\u0001\u0000\u0000\u0000\u0c0e\u0c0f\u0003\u000b\u0005\u0000\u0c0f"+ - "\u0c10\u0003/\u0017\u0000\u0c10\u0c11\u0003)\u0014\u0000\u0c11\u0c12\u0003"+ - ")\u0014\u0000\u0c12\u0c13\u0003\u000f\u0007\u0000\u0c13\u0c14\u0003!\u0010"+ - "\u0000\u0c14\u0c15\u0003-\u0016\u0000\u0c15\u0c16\u0005_\u0000\u0000\u0c16"+ - "\u0c17\u0003-\u0016\u0000\u0c17\u0c18\u0003\u0017\u000b\u0000\u0c18\u0c19"+ - "\u0003\u001f\u000f\u0000\u0c19\u0c1a\u0003\u000f\u0007\u0000\u0c1a\u0152"+ - "\u0001\u0000\u0000\u0000\u0c1b\u0c1c\u0003\u000b\u0005\u0000\u0c1c\u0c1d"+ - "\u0003/\u0017\u0000\u0c1d\u0c1e\u0003)\u0014\u0000\u0c1e\u0c1f\u0003)"+ - "\u0014\u0000\u0c1f\u0c20\u0003\u000f\u0007\u0000\u0c20\u0c21\u0003!\u0010"+ - "\u0000\u0c21\u0c22\u0003-\u0016\u0000\u0c22\u0c23\u0005_\u0000\u0000\u0c23"+ - "\u0c24\u0003-\u0016\u0000\u0c24\u0c25\u0003\u0017\u000b\u0000\u0c25\u0c26"+ - "\u0003\u001f\u000f\u0000\u0c26\u0c27\u0003\u000f\u0007\u0000\u0c27\u0c28"+ - "\u0003+\u0015\u0000\u0c28\u0c29\u0003-\u0016\u0000\u0c29\u0c2a\u0003\u0007"+ - "\u0003\u0000\u0c2a\u0c2b\u0003\u001f\u000f\u0000\u0c2b\u0c2c\u0003%\u0012"+ - "\u0000\u0c2c\u0154\u0001\u0000\u0000\u0000\u0c2d\u0c2e\u0003\u000b\u0005"+ - "\u0000\u0c2e\u0c2f\u0003/\u0017\u0000\u0c2f\u0c30\u0003)\u0014\u0000\u0c30"+ - "\u0c31\u0003)\u0014\u0000\u0c31\u0c32\u0003\u000f\u0007\u0000\u0c32\u0c33"+ - "\u0003!\u0010\u0000\u0c33\u0c34\u0003-\u0016\u0000\u0c34\u0c35\u0005_"+ - "\u0000\u0000\u0c35\u0c36\u0003-\u0016\u0000\u0c36\u0c37\u0003)\u0014\u0000"+ - "\u0c37\u0c38\u0003\u0007\u0003\u0000\u0c38\u0c39\u0003!\u0010\u0000\u0c39"+ - "\u0c3a\u0003+\u0015\u0000\u0c3a\u0c3b\u0003\u0011\b\u0000\u0c3b\u0c3c"+ - "\u0003#\u0011\u0000\u0c3c\u0c3d\u0003)\u0014\u0000\u0c3d\u0c3e\u0003\u001f"+ - "\u000f\u0000\u0c3e\u0c3f\u0005_\u0000\u0000\u0c3f\u0c40\u0003\u0013\t"+ - "\u0000\u0c40\u0c41\u0003)\u0014\u0000\u0c41\u0c42\u0003#\u0011\u0000\u0c42"+ - "\u0c43\u0003/\u0017\u0000\u0c43\u0c44\u0003%\u0012\u0000\u0c44\u0c45\u0005"+ - "_\u0000\u0000\u0c45\u0c46\u0003\u0011\b\u0000\u0c46\u0c47\u0003#\u0011"+ - "\u0000\u0c47\u0c48\u0003)\u0014\u0000\u0c48\u0c49\u0005_\u0000\u0000\u0c49"+ - "\u0c4a\u0003-\u0016\u0000\u0c4a\u0c4b\u00037\u001b\u0000\u0c4b\u0c4c\u0003"+ - "%\u0012\u0000\u0c4c\u0c4d\u0003\u000f\u0007\u0000\u0c4d\u0156\u0001\u0000"+ - "\u0000\u0000\u0c4e\u0c4f\u0003\u000b\u0005\u0000\u0c4f\u0c50\u0003/\u0017"+ - "\u0000\u0c50\u0c51\u0003)\u0014\u0000\u0c51\u0c52\u0003)\u0014\u0000\u0c52"+ - "\u0c53\u0003\u000f\u0007\u0000\u0c53\u0c54\u0003!\u0010\u0000\u0c54\u0c55"+ - "\u0003-\u0016\u0000\u0c55\u0c56\u0005_\u0000\u0000\u0c56\u0c57\u0003/"+ - "\u0017\u0000\u0c57\u0c58\u0003+\u0015\u0000\u0c58\u0c59\u0003\u000f\u0007"+ - "\u0000\u0c59\u0c5a\u0003)\u0014\u0000\u0c5a\u0158\u0001\u0000\u0000\u0000"+ - "\u0c5b\u0c5c\u0003\u000b\u0005\u0000\u0c5c\u0c5d\u0003/\u0017\u0000\u0c5d"+ - "\u0c5e\u0003)\u0014\u0000\u0c5e\u0c5f\u0003+\u0015\u0000\u0c5f\u0c60\u0003"+ - "#\u0011\u0000\u0c60\u0c61\u0003)\u0014\u0000\u0c61\u015a\u0001\u0000\u0000"+ - "\u0000\u0c62\u0c63\u0003\u000b\u0005\u0000\u0c63\u0c64\u0003/\u0017\u0000"+ - "\u0c64\u0c65\u0003)\u0014\u0000\u0c65\u0c66\u0003+\u0015\u0000\u0c66\u0c67"+ - "\u0003#\u0011\u0000\u0c67\u0c68\u0003)\u0014\u0000\u0c68\u0c69\u0005_"+ - "\u0000\u0000\u0c69\u0c6a\u0003!\u0010\u0000\u0c6a\u0c6b\u0003\u0007\u0003"+ - "\u0000\u0c6b\u0c6c\u0003\u001f\u000f\u0000\u0c6c\u0c6d\u0003\u000f\u0007"+ - "\u0000\u0c6d\u015c\u0001\u0000\u0000\u0000\u0c6e\u0c6f\u0003\u000b\u0005"+ - "\u0000\u0c6f\u0c70\u00037\u001b\u0000\u0c70\u0c71\u0003\u000b\u0005\u0000"+ - "\u0c71\u0c72\u0003\u001d\u000e\u0000\u0c72\u0c73\u0003\u000f\u0007\u0000"+ - "\u0c73\u015e\u0001\u0000\u0000\u0000\u0c74\u0c75\u0003\r\u0006\u0000\u0c75"+ - "\u0c76\u0003\u0007\u0003\u0000\u0c76\u0c77\u0003-\u0016\u0000\u0c77\u0c78"+ - "\u0003\u0007\u0003\u0000\u0c78\u0160\u0001\u0000\u0000\u0000\u0c79\u0c7a"+ - "\u0003\r\u0006\u0000\u0c7a\u0c7b\u0003\u0007\u0003\u0000\u0c7b\u0c7c\u0003"+ - "-\u0016\u0000\u0c7c\u0c7d\u0003\u0007\u0003\u0000\u0c7d\u0c7e\u0003\t"+ - "\u0004\u0000\u0c7e\u0c7f\u0003\u0007\u0003\u0000\u0c7f\u0c80\u0003+\u0015"+ - "\u0000\u0c80\u0c81\u0003\u000f\u0007\u0000\u0c81\u0162\u0001\u0000\u0000"+ - "\u0000\u0c82\u0c83\u0003\r\u0006\u0000\u0c83\u0c84\u0003\u0007\u0003\u0000"+ - "\u0c84\u0c85\u0003-\u0016\u0000\u0c85\u0c86\u0003\u000f\u0007\u0000\u0c86"+ - "\u0164\u0001\u0000\u0000\u0000\u0c87\u0c88\u0003\r\u0006\u0000\u0c88\u0c89"+ - "\u0003\u0007\u0003\u0000\u0c89\u0c8a\u0003-\u0016\u0000\u0c8a\u0c8b\u0003"+ - "\u000f\u0007\u0000\u0c8b\u0c8c\u0003-\u0016\u0000\u0c8c\u0c8d\u0003\u0017"+ - "\u000b\u0000\u0c8d\u0c8e\u0003\u001f\u000f\u0000\u0c8e\u0c8f\u0003\u000f"+ - "\u0007\u0000\u0c8f\u0c90\u0005_\u0000\u0000\u0c90\u0c91\u0003\u0017\u000b"+ - "\u0000\u0c91\u0c92\u0003!\u0010\u0000\u0c92\u0c93\u0003-\u0016\u0000\u0c93"+ - "\u0c94\u0003\u000f\u0007\u0000\u0c94\u0c95\u0003)\u0014\u0000\u0c95\u0c96"+ - "\u00031\u0018\u0000\u0c96\u0c97\u0003\u0007\u0003\u0000\u0c97\u0c98\u0003"+ - "\u001d\u000e\u0000\u0c98\u0c99\u0005_\u0000\u0000\u0c99\u0c9a\u0003\u000b"+ - "\u0005\u0000\u0c9a\u0c9b\u0003#\u0011\u0000\u0c9b\u0c9c\u0003\r\u0006"+ - "\u0000\u0c9c\u0c9d\u0003\u000f\u0007\u0000\u0c9d\u0166\u0001\u0000\u0000"+ - "\u0000\u0c9e\u0c9f\u0003\r\u0006\u0000\u0c9f\u0ca0\u0003\u0007\u0003\u0000"+ - "\u0ca0\u0ca1\u0003-\u0016\u0000\u0ca1\u0ca2\u0003\u000f\u0007\u0000\u0ca2"+ - "\u0ca3\u0003-\u0016\u0000\u0ca3\u0ca4\u0003\u0017\u000b\u0000\u0ca4\u0ca5"+ - "\u0003\u001f\u000f\u0000\u0ca5\u0ca6\u0003\u000f\u0007\u0000\u0ca6\u0ca7"+ - "\u0005_\u0000\u0000\u0ca7\u0ca8\u0003\u0017\u000b\u0000\u0ca8\u0ca9\u0003"+ - "!\u0010\u0000\u0ca9\u0caa\u0003-\u0016\u0000\u0caa\u0cab\u0003\u000f\u0007"+ - "\u0000\u0cab\u0cac\u0003)\u0014\u0000\u0cac\u0cad\u00031\u0018\u0000\u0cad"+ - "\u0cae\u0003\u0007\u0003\u0000\u0cae\u0caf\u0003\u001d\u000e\u0000\u0caf"+ - "\u0cb0\u0005_\u0000\u0000\u0cb0\u0cb1\u0003%\u0012\u0000\u0cb1\u0cb2\u0003"+ - ")\u0014\u0000\u0cb2\u0cb3\u0003\u000f\u0007\u0000\u0cb3\u0cb4\u0003\u000b"+ - "\u0005\u0000\u0cb4\u0cb5\u0003\u0017\u000b\u0000\u0cb5\u0cb6\u0003+\u0015"+ - "\u0000\u0cb6\u0cb7\u0003\u0017\u000b\u0000\u0cb7\u0cb8\u0003#\u0011\u0000"+ - "\u0cb8\u0cb9\u0003!\u0010\u0000\u0cb9\u0168\u0001\u0000\u0000\u0000\u0cba"+ - "\u0cbb\u0003\r\u0006\u0000\u0cbb\u0cbc\u0003\u0007\u0003\u0000\u0cbc\u0cbd"+ - "\u00037\u001b\u0000\u0cbd\u016a\u0001\u0000\u0000\u0000\u0cbe\u0cbf\u0003"+ - "\r\u0006\u0000\u0cbf\u0cc0\u0003\u000f\u0007\u0000\u0cc0\u0cc1\u0003\u0007"+ - "\u0003\u0000\u0cc1\u0cc2\u0003\u001d\u000e\u0000\u0cc2\u0cc3\u0003\u001d"+ - "\u000e\u0000\u0cc3\u0cc4\u0003#\u0011\u0000\u0cc4\u0cc5\u0003\u000b\u0005"+ - "\u0000\u0cc5\u0cc6\u0003\u0007\u0003\u0000\u0cc6\u0cc7\u0003-\u0016\u0000"+ - "\u0cc7\u0cc8\u0003\u000f\u0007\u0000\u0cc8\u016c\u0001\u0000\u0000\u0000"+ - "\u0cc9\u0cca\u0003\r\u0006\u0000\u0cca\u0ccb\u0003\u000f\u0007\u0000\u0ccb"+ - "\u0ccc\u0003\u000b\u0005\u0000\u0ccc\u016e\u0001\u0000\u0000\u0000\u0ccd"+ - "\u0cce\u0003\r\u0006\u0000\u0cce\u0ccf\u0003\u000f\u0007\u0000\u0ccf\u0cd0"+ - "\u0003\u000b\u0005\u0000\u0cd0\u0cd1\u0003\u0017\u000b\u0000\u0cd1\u0cd2"+ - "\u0003\u001f\u000f\u0000\u0cd2\u0cd3\u0003\u0007\u0003\u0000\u0cd3\u0cd4"+ - "\u0003\u001d\u000e\u0000\u0cd4\u0170\u0001\u0000\u0000\u0000\u0cd5\u0cd6"+ - "\u0003\r\u0006\u0000\u0cd6\u0cd7\u0003\u000f\u0007\u0000\u0cd7\u0cd8\u0003"+ - "\u000b\u0005\u0000\u0cd8\u0cd9\u0003\u001d\u000e\u0000\u0cd9\u0cda\u0003"+ - "\u0007\u0003\u0000\u0cda\u0cdb\u0003)\u0014\u0000\u0cdb\u0cdc\u0003\u000f"+ - "\u0007\u0000\u0cdc\u0172\u0001\u0000\u0000\u0000\u0cdd\u0cde\u0003\r\u0006"+ - "\u0000\u0cde\u0cdf\u0003\u000f\u0007\u0000\u0cdf\u0ce0\u0003\u0011\b\u0000"+ - "\u0ce0\u0ce1\u0003\u0007\u0003\u0000\u0ce1\u0ce2\u0003/\u0017\u0000\u0ce2"+ - "\u0ce3\u0003\u001d\u000e\u0000\u0ce3\u0ce4\u0003-\u0016\u0000\u0ce4\u0174"+ - "\u0001\u0000\u0000\u0000\u0ce5\u0ce6\u0003\r\u0006\u0000\u0ce6\u0ce7\u0003"+ - "\u000f\u0007\u0000\u0ce7\u0ce8\u0003\u0011\b\u0000\u0ce8\u0ce9\u0003\u0007"+ - "\u0003\u0000\u0ce9\u0cea\u0003/\u0017\u0000\u0cea\u0ceb\u0003\u001d\u000e"+ - "\u0000\u0ceb\u0cec\u0003-\u0016\u0000\u0cec\u0ced\u0003+\u0015\u0000\u0ced"+ - "\u0176\u0001\u0000\u0000\u0000\u0cee\u0cef\u0003\r\u0006\u0000\u0cef\u0cf0"+ - "\u0003\u000f\u0007\u0000\u0cf0\u0cf1\u0003\u0011\b\u0000\u0cf1\u0cf2\u0003"+ - "\u000f\u0007\u0000\u0cf2\u0cf3\u0003)\u0014\u0000\u0cf3\u0cf4\u0003\u0007"+ - "\u0003\u0000\u0cf4\u0cf5\u0003\t\u0004\u0000\u0cf5\u0cf6\u0003\u001d\u000e"+ - "\u0000\u0cf6\u0cf7\u0003\u000f\u0007\u0000\u0cf7\u0178\u0001\u0000\u0000"+ - "\u0000\u0cf8\u0cf9\u0003\r\u0006\u0000\u0cf9\u0cfa\u0003\u000f\u0007\u0000"+ - "\u0cfa\u0cfb\u0003\u0011\b\u0000\u0cfb\u0cfc\u0003\u000f\u0007\u0000\u0cfc"+ - "\u0cfd\u0003)\u0014\u0000\u0cfd\u0cfe\u0003)\u0014\u0000\u0cfe\u0cff\u0003"+ - "\u0007\u0003\u0000\u0cff\u0d00\u0003\t\u0004\u0000\u0d00\u0d01\u0003\u001d"+ - "\u000e\u0000\u0d01\u0d02\u0003\u000f\u0007\u0000\u0d02\u017a\u0001\u0000"+ - "\u0000\u0000\u0d03\u0d04\u0003\r\u0006\u0000\u0d04\u0d05\u0003\u000f\u0007"+ - "\u0000\u0d05\u0d06\u0003\u0011\b\u0000\u0d06\u0d07\u0003\u000f\u0007\u0000"+ - "\u0d07\u0d08\u0003)\u0014\u0000\u0d08\u0d09\u0003)\u0014\u0000\u0d09\u0d0a"+ - "\u0003\u000f\u0007\u0000\u0d0a\u0d0b\u0003\r\u0006\u0000\u0d0b\u017c\u0001"+ - "\u0000\u0000\u0000\u0d0c\u0d0d\u0003\r\u0006\u0000\u0d0d\u0d0e\u0003\u000f"+ - "\u0007\u0000\u0d0e\u0d0f\u0003\u0011\b\u0000\u0d0f\u0d10\u0003\u0017\u000b"+ - "\u0000\u0d10\u0d11\u0003!\u0010\u0000\u0d11\u0d12\u0003\u000f\u0007\u0000"+ - "\u0d12\u0d13\u0003\r\u0006\u0000\u0d13\u017e\u0001\u0000\u0000\u0000\u0d14"+ - "\u0d15\u0003\r\u0006\u0000\u0d15\u0d16\u0003\u000f\u0007\u0000\u0d16\u0d17"+ - "\u0003\u0011\b\u0000\u0d17\u0d18\u0003\u0017\u000b\u0000\u0d18\u0d19\u0003"+ - "!\u0010\u0000\u0d19\u0d1a\u0003\u000f\u0007\u0000\u0d1a\u0d1b\u0003)\u0014"+ - "\u0000\u0d1b\u0180\u0001\u0000\u0000\u0000\u0d1c\u0d1d\u0003\r\u0006\u0000"+ - "\u0d1d\u0d1e\u0003\u000f\u0007\u0000\u0d1e\u0d1f\u0003\u0013\t\u0000\u0d1f"+ - "\u0d20\u0003)\u0014\u0000\u0d20\u0d21\u0003\u000f\u0007\u0000\u0d21\u0d22"+ - "\u0003\u000f\u0007\u0000\u0d22\u0182\u0001\u0000\u0000\u0000\u0d23\u0d24"+ - "\u0003\r\u0006\u0000\u0d24\u0d25\u0003\u000f\u0007\u0000\u0d25\u0d26\u0003"+ - "\u001d\u000e\u0000\u0d26\u0d27\u0003\u000f\u0007\u0000\u0d27\u0d28\u0003"+ - "-\u0016\u0000\u0d28\u0d29\u0003\u000f\u0007\u0000\u0d29\u0184\u0001\u0000"+ - "\u0000\u0000\u0d2a\u0d2b\u0003\r\u0006\u0000\u0d2b\u0d2c\u0003\u000f\u0007"+ - "\u0000\u0d2c\u0d2d\u0003\u001d\u000e\u0000\u0d2d\u0d2e\u0003\u0017\u000b"+ - "\u0000\u0d2e\u0d2f\u0003\u001f\u000f\u0000\u0d2f\u0d30\u0003\u0017\u000b"+ - "\u0000\u0d30\u0d31\u0003-\u0016\u0000\u0d31\u0d32\u0003\u000f\u0007\u0000"+ - "\u0d32\u0d33\u0003)\u0014\u0000\u0d33\u0186\u0001\u0000\u0000\u0000\u0d34"+ - "\u0d35\u0003\r\u0006\u0000\u0d35\u0d36\u0003\u000f\u0007\u0000\u0d36\u0d37"+ - "\u0003\u001d\u000e\u0000\u0d37\u0d38\u0003\u0017\u000b\u0000\u0d38\u0d39"+ - "\u0003\u001f\u000f\u0000\u0d39\u0d3a\u0003\u0017\u000b\u0000\u0d3a\u0d3b"+ - "\u0003-\u0016\u0000\u0d3b\u0d3c\u0003\u000f\u0007\u0000\u0d3c\u0d3d\u0003"+ - ")\u0014\u0000\u0d3d\u0d3e\u0003+\u0015\u0000\u0d3e\u0188\u0001\u0000\u0000"+ - "\u0000\u0d3f\u0d40\u0003\r\u0006\u0000\u0d40\u0d41\u0003\u000f\u0007\u0000"+ - "\u0d41\u0d42\u0003!\u0010\u0000\u0d42\u0d43\u0003+\u0015\u0000\u0d43\u0d44"+ - "\u0003\u000f\u0007\u0000\u0d44\u0d45\u0005_\u0000\u0000\u0d45\u0d46\u0003"+ - ")\u0014\u0000\u0d46\u0d47\u0003\u0007\u0003\u0000\u0d47\u0d48\u0003!\u0010"+ - "\u0000\u0d48\u0d49\u0003\u001b\r\u0000\u0d49\u018a\u0001\u0000\u0000\u0000"+ - "\u0d4a\u0d4b\u0003\r\u0006\u0000\u0d4b\u0d4c\u0003\u000f\u0007\u0000\u0d4c"+ - "\u0d4d\u0003%\u0012\u0000\u0d4d\u0d4e\u0003\u000f\u0007\u0000\u0d4e\u0d4f"+ - "\u0003!\u0010\u0000\u0d4f\u0d50\u0003\r\u0006\u0000\u0d50\u0d51\u0003"+ - "+\u0015\u0000\u0d51\u018c\u0001\u0000\u0000\u0000\u0d52\u0d53\u0003\r"+ - "\u0006\u0000\u0d53\u0d54\u0003\u000f\u0007\u0000\u0d54\u0d55\u0003%\u0012"+ - "\u0000\u0d55\u0d56\u0003-\u0016\u0000\u0d56\u0d57\u0003\u0015\n\u0000"+ - "\u0d57\u018e\u0001\u0000\u0000\u0000\u0d58\u0d59\u0003\r\u0006\u0000\u0d59"+ - "\u0d5a\u0003\u000f\u0007\u0000\u0d5a\u0d5b\u0003)\u0014\u0000\u0d5b\u0d5c"+ - "\u0003\u000f\u0007\u0000\u0d5c\u0d5d\u0003\u0011\b\u0000\u0d5d\u0190\u0001"+ - "\u0000\u0000\u0000\u0d5e\u0d5f\u0003\r\u0006\u0000\u0d5f\u0d60\u0003\u000f"+ - "\u0007\u0000\u0d60\u0d61\u0003)\u0014\u0000\u0d61\u0d62\u0003\u0017\u000b"+ - "\u0000\u0d62\u0d63\u00031\u0018\u0000\u0d63\u0d64\u0003\u000f\u0007\u0000"+ - "\u0d64\u0d65\u0003\r\u0006\u0000\u0d65\u0192\u0001\u0000\u0000\u0000\u0d66"+ - "\u0d67\u0003\r\u0006\u0000\u0d67\u0d68\u0003\u000f\u0007\u0000\u0d68\u0d69"+ - "\u0003+\u0015\u0000\u0d69\u0d6a\u0003\u000b\u0005\u0000\u0d6a\u0194\u0001"+ - "\u0000\u0000\u0000\u0d6b\u0d6c\u0003\r\u0006\u0000\u0d6c\u0d6d\u0003\u000f"+ - "\u0007\u0000\u0d6d\u0d6e\u0003+\u0015\u0000\u0d6e\u0d6f\u0003\u000b\u0005"+ - "\u0000\u0d6f\u0d70\u0003)\u0014\u0000\u0d70\u0d71\u0003\u0017\u000b\u0000"+ - "\u0d71\u0d72\u0003\t\u0004\u0000\u0d72\u0d73\u0003\u000f\u0007\u0000\u0d73"+ - "\u0196\u0001\u0000\u0000\u0000\u0d74\u0d75\u0003\r\u0006\u0000\u0d75\u0d76"+ - "\u0003\u000f\u0007\u0000\u0d76\u0d77\u0003+\u0015\u0000\u0d77\u0d78\u0003"+ - "\u000b\u0005\u0000\u0d78\u0d79\u0003)\u0014\u0000\u0d79\u0d7a\u0003\u0017"+ - "\u000b\u0000\u0d7a\u0d7b\u0003%\u0012\u0000\u0d7b\u0d7c\u0003-\u0016\u0000"+ - "\u0d7c\u0d7d\u0003#\u0011\u0000\u0d7d\u0d7e\u0003)\u0014\u0000\u0d7e\u0198"+ - "\u0001\u0000\u0000\u0000\u0d7f\u0d80\u0003\r\u0006\u0000\u0d80\u0d81\u0003"+ - "\u000f\u0007\u0000\u0d81\u0d82\u0003+\u0015\u0000\u0d82\u0d83\u0003-\u0016"+ - "\u0000\u0d83\u0d84\u0003)\u0014\u0000\u0d84\u0d85\u0003#\u0011\u0000\u0d85"+ - "\u0d86\u00037\u001b\u0000\u0d86\u019a\u0001\u0000\u0000\u0000\u0d87\u0d88"+ - "\u0003\r\u0006\u0000\u0d88\u0d89\u0003\u000f\u0007\u0000\u0d89\u0d8a\u0003"+ - "+\u0015\u0000\u0d8a\u0d8b\u0003-\u0016\u0000\u0d8b\u0d8c\u0003)\u0014"+ - "\u0000\u0d8c\u0d8d\u0003/\u0017\u0000\u0d8d\u0d8e\u0003\u000b\u0005\u0000"+ - "\u0d8e\u0d8f\u0003-\u0016\u0000\u0d8f\u0d90\u0003#\u0011\u0000\u0d90\u0d91"+ - "\u0003)\u0014\u0000\u0d91\u019c\u0001\u0000\u0000\u0000\u0d92\u0d93\u0003"+ - "\r\u0006\u0000\u0d93\u0d94\u0003\u000f\u0007\u0000\u0d94\u0d95\u0003-"+ - "\u0016\u0000\u0d95\u0d96\u0003\u000f\u0007\u0000\u0d96\u0d97\u0003)\u0014"+ - "\u0000\u0d97\u0d98\u0003\u001f\u000f\u0000\u0d98\u0d99\u0003\u0017\u000b"+ - "\u0000\u0d99\u0d9a\u0003!\u0010\u0000\u0d9a\u0d9b\u0003\u0017\u000b\u0000"+ - "\u0d9b\u0d9c\u0003+\u0015\u0000\u0d9c\u0d9d\u0003-\u0016\u0000\u0d9d\u0d9e"+ - "\u0003\u0017\u000b\u0000\u0d9e\u0d9f\u0003\u000b\u0005\u0000\u0d9f\u019e"+ - "\u0001\u0000\u0000\u0000\u0da0\u0da1\u0003\r\u0006\u0000\u0da1\u0da2\u0003"+ - "\u0017\u000b\u0000\u0da2\u0da3\u0003\u0007\u0003\u0000\u0da3\u0da4\u0003"+ - "\u0013\t\u0000\u0da4\u0da5\u0003!\u0010\u0000\u0da5\u0da6\u0003#\u0011"+ - "\u0000\u0da6\u0da7\u0003+\u0015\u0000\u0da7\u0da8\u0003-\u0016\u0000\u0da8"+ - "\u0da9\u0003\u0017\u000b\u0000\u0da9\u0daa\u0003\u000b\u0005\u0000\u0daa"+ - "\u0dab\u0003+\u0015\u0000\u0dab\u01a0\u0001\u0000\u0000\u0000\u0dac\u0dad"+ - "\u0003\r\u0006\u0000\u0dad\u0dae\u0003\u0017\u000b\u0000\u0dae\u0daf\u0003"+ - "\u000b\u0005\u0000\u0daf\u0db0\u0003-\u0016\u0000\u0db0\u0db1\u0003\u0017"+ - "\u000b\u0000\u0db1\u0db2\u0003#\u0011\u0000\u0db2\u0db3\u0003!\u0010\u0000"+ - "\u0db3\u0db4\u0003\u0007\u0003\u0000\u0db4\u0db5\u0003)\u0014\u0000\u0db5"+ - "\u0db6\u00037\u001b\u0000\u0db6\u01a2\u0001\u0000\u0000\u0000\u0db7\u0db8"+ - "\u0003\r\u0006\u0000\u0db8\u0db9\u0003\u0017\u000b\u0000\u0db9\u0dba\u0003"+ - "+\u0015\u0000\u0dba\u0dbb\u0003\u0007\u0003\u0000\u0dbb\u0dbc\u0003\t"+ - "\u0004\u0000\u0dbc\u0dbd\u0003\u001d\u000e\u0000\u0dbd\u0dbe\u0003\u000f"+ - "\u0007\u0000\u0dbe\u01a4\u0001\u0000\u0000\u0000\u0dbf\u0dc0\u0003\r\u0006"+ - "\u0000\u0dc0\u0dc1\u0003\u0017\u000b\u0000\u0dc1\u0dc2\u0003+\u0015\u0000"+ - "\u0dc2\u0dc3\u0003\u0007\u0003\u0000\u0dc3\u0dc4\u0003\t\u0004\u0000\u0dc4"+ - "\u0dc5\u0003\u001d\u000e\u0000\u0dc5\u0dc6\u0003\u000f\u0007\u0000\u0dc6"+ - "\u0dc7\u0005_\u0000\u0000\u0dc7\u0dc8\u0003%\u0012\u0000\u0dc8\u0dc9\u0003"+ - "\u0007\u0003\u0000\u0dc9\u0dca\u0003\u0013\t\u0000\u0dca\u0dcb\u0003\u000f"+ - "\u0007\u0000\u0dcb\u0dcc\u0005_\u0000\u0000\u0dcc\u0dcd\u0003+\u0015\u0000"+ - "\u0dcd\u0dce\u0003\u001b\r\u0000\u0dce\u0dcf\u0003\u0017\u000b\u0000\u0dcf"+ - "\u0dd0\u0003%\u0012\u0000\u0dd0\u0dd1\u0003%\u0012\u0000\u0dd1\u0dd2\u0003"+ - "\u0017\u000b\u0000\u0dd2\u0dd3\u0003!\u0010\u0000\u0dd3\u0dd4\u0003\u0013"+ - "\t\u0000\u0dd4\u01a6\u0001\u0000\u0000\u0000\u0dd5\u0dd6\u0003\r\u0006"+ - "\u0000\u0dd6\u0dd7\u0003\u0017\u000b\u0000\u0dd7\u0dd8\u0003+\u0015\u0000"+ - "\u0dd8\u0dd9\u0003\u000b\u0005\u0000\u0dd9\u0dda\u0003\u0007\u0003\u0000"+ - "\u0dda\u0ddb\u0003)\u0014\u0000\u0ddb\u0ddc\u0003\r\u0006\u0000\u0ddc"+ - "\u01a8\u0001\u0000\u0000\u0000\u0ddd\u0dde\u0003\r\u0006\u0000\u0dde\u0ddf"+ - "\u0003\u0017\u000b\u0000\u0ddf\u0de0\u0003+\u0015\u0000\u0de0\u0de1\u0003"+ - "\u000b\u0005\u0000\u0de1\u0de2\u0003#\u0011\u0000\u0de2\u0de3\u0003!\u0010"+ - "\u0000\u0de3\u0de4\u0003!\u0010\u0000\u0de4\u0de5\u0003\u000f\u0007\u0000"+ - "\u0de5\u0de6\u0003\u000b\u0005\u0000\u0de6\u0de7\u0003-\u0016\u0000\u0de7"+ - "\u01aa\u0001\u0000\u0000\u0000\u0de8\u0de9\u0003\r\u0006\u0000\u0de9\u0dea"+ - "\u0003\u0017\u000b\u0000\u0dea\u0deb\u0003+\u0015\u0000\u0deb\u0dec\u0003"+ - "%\u0012\u0000\u0dec\u0ded\u0003\u0007\u0003\u0000\u0ded\u0dee\u0003-\u0016"+ - "\u0000\u0dee\u0def\u0003\u000b\u0005\u0000\u0def\u0df0\u0003\u0015\n\u0000"+ - "\u0df0\u01ac\u0001\u0000\u0000\u0000\u0df1\u0df2\u0003\r\u0006\u0000\u0df2"+ - "\u0df3\u0003\u0017\u000b\u0000\u0df3\u0df4\u0003+\u0015\u0000\u0df4\u0df5"+ - "\u0003-\u0016\u0000\u0df5\u0df6\u0003\u0017\u000b\u0000\u0df6\u0df7\u0003"+ - "!\u0010\u0000\u0df7\u0df8\u0003\u000b\u0005\u0000\u0df8\u0df9\u0003-\u0016"+ - "\u0000\u0df9\u01ae\u0001\u0000\u0000\u0000\u0dfa\u0dfb\u0003\r\u0006\u0000"+ - "\u0dfb\u0dfc\u0003#\u0011\u0000\u0dfc\u01b0\u0001\u0000\u0000\u0000\u0dfd"+ - "\u0dfe\u0003\r\u0006\u0000\u0dfe\u0dff\u0003#\u0011\u0000\u0dff\u0e00"+ - "\u0003\u001f\u000f\u0000\u0e00\u0e01\u0003\u0007\u0003\u0000\u0e01\u0e02"+ - "\u0003\u0017\u000b\u0000\u0e02\u0e03\u0003!\u0010\u0000\u0e03\u01b2\u0001"+ - "\u0000\u0000\u0000\u0e04\u0e05\u0003\r\u0006\u0000\u0e05\u0e06\u0003#"+ - "\u0011\u0000\u0e06\u0e07\u0003/\u0017\u0000\u0e07\u0e08\u0003\t\u0004"+ - "\u0000\u0e08\u0e09\u0003\u001d\u000e\u0000\u0e09\u0e0a\u0003\u000f\u0007"+ - "\u0000\u0e0a\u01b4\u0001\u0000\u0000\u0000\u0e0b\u0e0c\u0003\r\u0006\u0000"+ - "\u0e0c\u0e0d\u0003)\u0014\u0000\u0e0d\u0e0e\u0003#\u0011\u0000\u0e0e\u0e0f"+ - "\u0003%\u0012\u0000\u0e0f\u01b6\u0001\u0000\u0000\u0000\u0e10\u0e11\u0003"+ - "\r\u0006\u0000\u0e11\u0e12\u00037\u001b\u0000\u0e12\u0e13\u0003!\u0010"+ - "\u0000\u0e13\u0e14\u0003\u0007\u0003\u0000\u0e14\u0e15\u0003\u001f\u000f"+ - "\u0000\u0e15\u0e16\u0003\u0017\u000b\u0000\u0e16\u0e17\u0003\u000b\u0005"+ - "\u0000\u0e17\u01b8\u0001\u0000\u0000\u0000\u0e18\u0e19\u0003\r\u0006\u0000"+ - "\u0e19\u0e1a\u00037\u001b\u0000\u0e1a\u0e1b\u0003!\u0010\u0000\u0e1b\u0e1c"+ - "\u0003\u0007\u0003\u0000\u0e1c\u0e1d\u0003\u001f\u000f\u0000\u0e1d\u0e1e"+ - "\u0003\u0017\u000b\u0000\u0e1e\u0e1f\u0003\u000b\u0005\u0000\u0e1f\u0e20"+ - "\u0005_\u0000\u0000\u0e20\u0e21\u0003\u0011\b\u0000\u0e21\u0e22\u0003"+ - "/\u0017\u0000\u0e22\u0e23\u0003!\u0010\u0000\u0e23\u0e24\u0003\u000b\u0005"+ - "\u0000\u0e24\u0e25\u0003-\u0016\u0000\u0e25\u0e26\u0003\u0017\u000b\u0000"+ - "\u0e26\u0e27\u0003#\u0011\u0000\u0e27\u0e28\u0003!\u0010\u0000\u0e28\u01ba"+ - "\u0001\u0000\u0000\u0000\u0e29\u0e2a\u0003\r\u0006\u0000\u0e2a\u0e2b\u0003"+ - "7\u001b\u0000\u0e2b\u0e2c\u0003!\u0010\u0000\u0e2c\u0e2d\u0003\u0007\u0003"+ - "\u0000\u0e2d\u0e2e\u0003\u001f\u000f\u0000\u0e2e\u0e2f\u0003\u0017\u000b"+ - "\u0000\u0e2f\u0e30\u0003\u000b\u0005\u0000\u0e30\u0e31\u0005_\u0000\u0000"+ - "\u0e31\u0e32\u0003\u0011\b\u0000\u0e32\u0e33\u0003/\u0017\u0000\u0e33"+ - "\u0e34\u0003!\u0010\u0000\u0e34\u0e35\u0003\u000b\u0005\u0000\u0e35\u0e36"+ - "\u0003-\u0016\u0000\u0e36\u0e37\u0003\u0017\u000b\u0000\u0e37\u0e38\u0003"+ - "#\u0011\u0000\u0e38\u0e39\u0003!\u0010\u0000\u0e39\u0e3a\u0005_\u0000"+ - "\u0000\u0e3a\u0e3b\u0003\u000b\u0005\u0000\u0e3b\u0e3c\u0003#\u0011\u0000"+ - "\u0e3c\u0e3d\u0003\r\u0006\u0000\u0e3d\u0e3e\u0003\u000f\u0007\u0000\u0e3e"+ - "\u01bc\u0001\u0000\u0000\u0000\u0e3f\u0e40\u0003\u000f\u0007\u0000\u0e40"+ - "\u0e41\u0003\u0007\u0003\u0000\u0e41\u0e42\u0003\u000b\u0005\u0000\u0e42"+ - "\u0e43\u0003\u0015\n\u0000\u0e43\u01be\u0001\u0000\u0000\u0000\u0e44\u0e45"+ - "\u0003\u000f\u0007\u0000\u0e45\u0e46\u0003\u001d\u000e\u0000\u0e46\u0e47"+ - "\u0003\u000f\u0007\u0000\u0e47\u0e48\u0003\u001f\u000f\u0000\u0e48\u0e49"+ - "\u0003\u000f\u0007\u0000\u0e49\u0e4a\u0003!\u0010\u0000\u0e4a\u0e4b\u0003"+ - "-\u0016\u0000\u0e4b\u01c0\u0001\u0000\u0000\u0000\u0e4c\u0e4d\u0003\u000f"+ - "\u0007\u0000\u0e4d\u0e4e\u0003\u001d\u000e\u0000\u0e4e\u0e4f\u0003+\u0015"+ - "\u0000\u0e4f\u0e50\u0003\u000f\u0007\u0000\u0e50\u01c2\u0001\u0000\u0000"+ - "\u0000\u0e51\u0e52\u0003\u000f\u0007\u0000\u0e52\u0e53\u0003!\u0010\u0000"+ - "\u0e53\u0e54\u0003\u0007\u0003\u0000\u0e54\u0e55\u0003\t\u0004\u0000\u0e55"+ - "\u0e56\u0003\u001d\u000e\u0000\u0e56\u0e57\u0003\u000f\u0007\u0000\u0e57"+ - "\u01c4\u0001\u0000\u0000\u0000\u0e58\u0e59\u0003\u000f\u0007\u0000\u0e59"+ - "\u0e5a\u0003!\u0010\u0000\u0e5a\u0e5b\u0003\u000b\u0005\u0000\u0e5b\u0e5c"+ - "\u0003#\u0011\u0000\u0e5c\u0e5d\u0003\r\u0006\u0000\u0e5d\u0e5e\u0003"+ - "\u0017\u000b\u0000\u0e5e\u0e5f\u0003!\u0010\u0000\u0e5f\u0e60\u0003\u0013"+ - "\t\u0000\u0e60\u01c6\u0001\u0000\u0000\u0000\u0e61\u0e62\u0003\u000f\u0007"+ - "\u0000\u0e62\u0e63\u0003!\u0010\u0000\u0e63\u0e64\u0003\u000b\u0005\u0000"+ - "\u0e64\u0e65\u0003)\u0014\u0000\u0e65\u0e66\u00037\u001b\u0000\u0e66\u0e67"+ - "\u0003%\u0012\u0000\u0e67\u0e68\u0003-\u0016\u0000\u0e68\u0e69\u0003\u000f"+ - "\u0007\u0000\u0e69\u0e6a\u0003\r\u0006\u0000\u0e6a\u01c8\u0001\u0000\u0000"+ - "\u0000\u0e6b\u0e6c\u0003\u000f\u0007\u0000\u0e6c\u0e6d\u0003!\u0010\u0000"+ - "\u0e6d\u0e6e\u0003\r\u0006\u0000\u0e6e\u01ca\u0001\u0000\u0000\u0000\u0e6f"+ - "\u0e70\u0003\u000f\u0007\u0000\u0e70\u0e71\u0003!\u0010\u0000\u0e71\u0e72"+ - "\u0003\r\u0006\u0000\u0e72\u0e73\u0005-\u0000\u0000\u0e73\u0e74\u0003"+ - "\u000f\u0007\u0000\u0e74\u0e75\u00035\u001a\u0000\u0e75\u0e76\u0003\u000f"+ - "\u0007\u0000\u0e76\u0e77\u0003\u000b\u0005\u0000\u0e77\u01cc\u0001\u0000"+ - "\u0000\u0000\u0e78\u0e79\u0003\u000f\u0007\u0000\u0e79\u0e7a\u0003\'\u0013"+ - "\u0000\u0e7a\u0e7b\u0003/\u0017\u0000\u0e7b\u0e7c\u0003\u0007\u0003\u0000"+ - "\u0e7c\u0e7d\u0003\u001d\u000e\u0000\u0e7d\u0e7e\u0003+\u0015\u0000\u0e7e"+ - "\u01ce\u0001\u0000\u0000\u0000\u0e7f\u0e80\u0003\u000f\u0007\u0000\u0e80"+ - "\u0e81\u0003+\u0015\u0000\u0e81\u0e82\u0003\u000b\u0005\u0000\u0e82\u0e83"+ - "\u0003\u0007\u0003\u0000\u0e83\u0e84\u0003%\u0012\u0000\u0e84\u0e85\u0003"+ - "\u000f\u0007\u0000\u0e85\u01d0\u0001\u0000\u0000\u0000\u0e86\u0e87\u0003"+ - "\u000f\u0007\u0000\u0e87\u0e88\u00031\u0018\u0000\u0e88\u0e89\u0003\u000f"+ - "\u0007\u0000\u0e89\u0e8a\u0003)\u0014\u0000\u0e8a\u0e8b\u00037\u001b\u0000"+ - "\u0e8b\u01d2\u0001\u0000\u0000\u0000\u0e8c\u0e8d\u0003\u000f\u0007\u0000"+ - "\u0e8d\u0e8e\u00035\u001a\u0000\u0e8e\u0e8f\u0003\u000b\u0005\u0000\u0e8f"+ - "\u0e90\u0003\u000f\u0007\u0000\u0e90\u0e91\u0003%\u0012\u0000\u0e91\u0e92"+ - "\u0003-\u0016\u0000\u0e92\u01d4\u0001\u0000\u0000\u0000\u0e93\u0e94\u0003"+ - "\u000f\u0007\u0000\u0e94\u0e95\u00035\u001a\u0000\u0e95\u0e96\u0003\u000b"+ - "\u0005\u0000\u0e96\u0e97\u0003\u000f\u0007\u0000\u0e97\u0e98\u0003%\u0012"+ - "\u0000\u0e98\u0e99\u0003-\u0016\u0000\u0e99\u0e9a\u0003\u0017\u000b\u0000"+ - "\u0e9a\u0e9b\u0003#\u0011\u0000\u0e9b\u0e9c\u0003!\u0010\u0000\u0e9c\u01d6"+ - "\u0001\u0000\u0000\u0000\u0e9d\u0e9e\u0003\u000f\u0007\u0000\u0e9e\u0e9f"+ - "\u00035\u001a\u0000\u0e9f\u0ea0\u0003\u000b\u0005\u0000\u0ea0\u0ea1\u0003"+ - "\u001d\u000e\u0000\u0ea1\u0ea2\u0003/\u0017\u0000\u0ea2\u0ea3\u0003\r"+ - "\u0006\u0000\u0ea3\u0ea4\u0003\u000f\u0007\u0000\u0ea4\u01d8\u0001\u0000"+ - "\u0000\u0000\u0ea5\u0ea6\u0003\u000f\u0007\u0000\u0ea6\u0ea7\u00035\u001a"+ - "\u0000\u0ea7\u0ea8\u0003\u000b\u0005\u0000\u0ea8\u0ea9\u0003\u001d\u000e"+ - "\u0000\u0ea9\u0eaa\u0003/\u0017\u0000\u0eaa\u0eab\u0003\r\u0006\u0000"+ - "\u0eab\u0eac\u0003\u0017\u000b\u0000\u0eac\u0ead\u0003!\u0010\u0000\u0ead"+ - "\u0eae\u0003\u0013\t\u0000\u0eae\u01da\u0001\u0000\u0000\u0000\u0eaf\u0eb0"+ - "\u0003\u000f\u0007\u0000\u0eb0\u0eb1\u00035\u001a\u0000\u0eb1\u0eb2\u0003"+ - "\u000b\u0005\u0000\u0eb2\u0eb3\u0003\u001d\u000e\u0000\u0eb3\u0eb4\u0003"+ - "/\u0017\u0000\u0eb4\u0eb5\u0003+\u0015\u0000\u0eb5\u0eb6\u0003\u0017\u000b"+ - "\u0000\u0eb6\u0eb7\u00031\u0018\u0000\u0eb7\u0eb8\u0003\u000f\u0007\u0000"+ - "\u0eb8\u01dc\u0001\u0000\u0000\u0000\u0eb9\u0eba\u0003\u000f\u0007\u0000"+ - "\u0eba\u0ebb\u00035\u001a\u0000\u0ebb\u0ebc\u0003\u000f\u0007\u0000\u0ebc"+ - "\u0ebd\u0003\u000b\u0005\u0000\u0ebd\u01de\u0001\u0000\u0000\u0000\u0ebe"+ - "\u0ebf\u0003\u000f\u0007\u0000\u0ebf\u0ec0\u00035\u001a\u0000\u0ec0\u0ec1"+ - "\u0003\u000f\u0007\u0000\u0ec1\u0ec2\u0003\u000b\u0005\u0000\u0ec2\u0ec3"+ - "\u0003/\u0017\u0000\u0ec3\u0ec4\u0003-\u0016\u0000\u0ec4\u0ec5\u0003\u000f"+ - "\u0007\u0000\u0ec5\u01e0\u0001\u0000\u0000\u0000\u0ec6\u0ec7\u0003\u000f"+ - "\u0007\u0000\u0ec7\u0ec8\u00035\u001a\u0000\u0ec8\u0ec9\u0003\u0017\u000b"+ - "\u0000\u0ec9\u0eca\u0003+\u0015\u0000\u0eca\u0ecb\u0003-\u0016\u0000\u0ecb"+ - "\u0ecc\u0003\u0017\u000b\u0000\u0ecc\u0ecd\u0003!\u0010\u0000\u0ecd\u0ece"+ - "\u0003\u0013\t\u0000\u0ece\u01e2\u0001\u0000\u0000\u0000\u0ecf\u0ed0\u0003"+ - "\u000f\u0007\u0000\u0ed0\u0ed1\u00035\u001a\u0000\u0ed1\u0ed2\u0003\u0017"+ - "\u000b\u0000\u0ed2\u0ed3\u0003+\u0015\u0000\u0ed3\u0ed4\u0003-\u0016\u0000"+ - "\u0ed4\u0ed5\u0003+\u0015\u0000\u0ed5\u01e4\u0001\u0000\u0000\u0000\u0ed6"+ - "\u0ed7\u0003\u000f\u0007\u0000\u0ed7\u0ed8\u00035\u001a\u0000\u0ed8\u0ed9"+ - "\u0003%\u0012\u0000\u0ed9\u01e6\u0001\u0000\u0000\u0000\u0eda\u0edb\u0003"+ - "\u000f\u0007\u0000\u0edb\u0edc\u00035\u001a\u0000\u0edc\u0edd\u0003%\u0012"+ - "\u0000\u0edd\u0ede\u0003\u001d\u000e\u0000\u0ede\u0edf\u0003\u0007\u0003"+ - "\u0000\u0edf\u0ee0\u0003\u0017\u000b\u0000\u0ee0\u0ee1\u0003!\u0010\u0000"+ - "\u0ee1\u01e8\u0001\u0000\u0000\u0000\u0ee2\u0ee3\u0003\u000f\u0007\u0000"+ - "\u0ee3\u0ee4\u00035\u001a\u0000\u0ee4\u0ee5\u0003-\u0016\u0000\u0ee5\u0ee6"+ - "\u0003\u000f\u0007\u0000\u0ee6\u0ee7\u0003!\u0010\u0000\u0ee7\u0ee8\u0003"+ - "\r\u0006\u0000\u0ee8\u0ee9\u0003\u000f\u0007\u0000\u0ee9\u0eea\u0003\r"+ - "\u0006\u0000\u0eea\u01ea\u0001\u0000\u0000\u0000\u0eeb\u0eec\u0003\u000f"+ - "\u0007\u0000\u0eec\u0eed\u00035\u001a\u0000\u0eed\u0eee\u0003-\u0016\u0000"+ - "\u0eee\u0eef\u0003\u000f\u0007\u0000\u0eef\u0ef0\u0003!\u0010\u0000\u0ef0"+ - "\u0ef1\u0003+\u0015\u0000\u0ef1\u0ef2\u0003\u0017\u000b\u0000\u0ef2\u0ef3"+ - "\u0003#\u0011\u0000\u0ef3\u0ef4\u0003!\u0010\u0000\u0ef4\u01ec\u0001\u0000"+ - "\u0000\u0000\u0ef5\u0ef6\u0003\u000f\u0007\u0000\u0ef6\u0ef7\u00035\u001a"+ - "\u0000\u0ef7\u0ef8\u0003-\u0016\u0000\u0ef8\u0ef9\u0003\u000f\u0007\u0000"+ - "\u0ef9\u0efa\u0003)\u0014\u0000\u0efa\u0efb\u0003!\u0010\u0000\u0efb\u0efc"+ - "\u0003\u0007\u0003\u0000\u0efc\u0efd\u0003\u001d\u000e\u0000\u0efd\u01ee"+ - "\u0001\u0000\u0000\u0000\u0efe\u0eff\u0003\u000f\u0007\u0000\u0eff\u0f00"+ - "\u00035\u001a\u0000\u0f00\u0f01\u0003-\u0016\u0000\u0f01\u0f02\u0003)"+ - "\u0014\u0000\u0f02\u0f03\u0003\u0007\u0003\u0000\u0f03\u0f04\u0003\u000b"+ - "\u0005\u0000\u0f04\u0f05\u0003-\u0016\u0000\u0f05\u01f0\u0001\u0000\u0000"+ - "\u0000\u0f06\u0f07\u0003\u0011\b\u0000\u0f07\u0f08\u0003\u0007\u0003\u0000"+ - "\u0f08\u0f09\u0003\u001d\u000e\u0000\u0f09\u0f0a\u0003+\u0015\u0000\u0f0a"+ - "\u0f0b\u0003\u000f\u0007\u0000\u0f0b\u01f2\u0001\u0000\u0000\u0000\u0f0c"+ - "\u0f0d\u0003\u0011\b\u0000\u0f0d\u0f0e\u0003\u000f\u0007\u0000\u0f0e\u0f0f"+ - "\u0003-\u0016\u0000\u0f0f\u0f10\u0003\u000b\u0005\u0000\u0f10\u0f11\u0003"+ - "\u0015\n\u0000\u0f11\u01f4\u0001\u0000\u0000\u0000\u0f12\u0f13\u0003\u0011"+ - "\b\u0000\u0f13\u0f14\u0003\u0017\u000b\u0000\u0f14\u0f15\u0003\u000f\u0007"+ - "\u0000\u0f15\u0f16\u0003\u001d\u000e\u0000\u0f16\u0f17\u0003\r\u0006\u0000"+ - "\u0f17\u0f18\u0003+\u0015\u0000\u0f18\u01f6\u0001\u0000\u0000\u0000\u0f19"+ - "\u0f1a\u0003\u0011\b\u0000\u0f1a\u0f1b\u0003\u0017\u000b\u0000\u0f1b\u0f1c"+ - "\u0003\u001d\u000e\u0000\u0f1c\u0f1d\u0003-\u0016\u0000\u0f1d\u0f1e\u0003"+ - "\u000f\u0007\u0000\u0f1e\u0f1f\u0003)\u0014\u0000\u0f1f\u01f8\u0001\u0000"+ - "\u0000\u0000\u0f20\u0f21\u0003\u0011\b\u0000\u0f21\u0f22\u0003\u0017\u000b"+ - "\u0000\u0f22\u0f23\u0003!\u0010\u0000\u0f23\u0f24\u0003\u0007\u0003\u0000"+ - "\u0f24\u0f25\u0003\u001d\u000e\u0000\u0f25\u01fa\u0001\u0000\u0000\u0000"+ - "\u0f26\u0f27\u0003\u0011\b\u0000\u0f27\u0f28\u0003\u0017\u000b\u0000\u0f28"+ - "\u0f29\u0003)\u0014\u0000\u0f29\u0f2a\u0003+\u0015\u0000\u0f2a\u0f2b\u0003"+ - "-\u0016\u0000\u0f2b\u01fc\u0001\u0000\u0000\u0000\u0f2c\u0f2d\u0003\u0011"+ - "\b\u0000\u0f2d\u0f2e\u0003\u001d\u000e\u0000\u0f2e\u0f2f\u0003#\u0011"+ - "\u0000\u0f2f\u0f30\u0003\u0007\u0003\u0000\u0f30\u0f31\u0003-\u0016\u0000"+ - "\u0f31\u01fe\u0001\u0000\u0000\u0000\u0f32\u0f33\u0003\u0011\b\u0000\u0f33"+ - "\u0f34\u0003\u001d\u000e\u0000\u0f34\u0f35\u0003#\u0011\u0000\u0f35\u0f36"+ - "\u0003#\u0011\u0000\u0f36\u0f37\u0003)\u0014\u0000\u0f37\u0200\u0001\u0000"+ - "\u0000\u0000\u0f38\u0f39\u0003\u0011\b\u0000\u0f39\u0f3a\u0003#\u0011"+ - "\u0000\u0f3a\u0f3b\u0003\u001d\u000e\u0000\u0f3b\u0f3c\u0003\u001d\u000e"+ - "\u0000\u0f3c\u0f3d\u0003#\u0011\u0000\u0f3d\u0f3e\u00033\u0019\u0000\u0f3e"+ - "\u0f3f\u0003\u0017\u000b\u0000\u0f3f\u0f40\u0003!\u0010\u0000\u0f40\u0f41"+ - "\u0003\u0013\t\u0000\u0f41\u0202\u0001\u0000\u0000\u0000\u0f42\u0f43\u0003"+ - "\u0011\b\u0000\u0f43\u0f44\u0003#\u0011\u0000\u0f44\u0f45\u0003)\u0014"+ - "\u0000\u0f45\u0204\u0001\u0000\u0000\u0000\u0f46\u0f47\u0003\u0011\b\u0000"+ - "\u0f47\u0f48\u0003#\u0011\u0000\u0f48\u0f49\u0003)\u0014\u0000\u0f49\u0f4a"+ - "\u0003\u000b\u0005\u0000\u0f4a\u0f4b\u0003\u000f\u0007\u0000\u0f4b\u0206"+ - "\u0001\u0000\u0000\u0000\u0f4c\u0f4d\u0003\u0011\b\u0000\u0f4d\u0f4e\u0003"+ - "#\u0011\u0000\u0f4e\u0f4f\u0003)\u0014\u0000\u0f4f\u0f50\u0003\u000f\u0007"+ - "\u0000\u0f50\u0f51\u0003\u0017\u000b\u0000\u0f51\u0f52\u0003\u0013\t\u0000"+ - "\u0f52\u0f53\u0003!\u0010\u0000\u0f53\u0208\u0001\u0000\u0000\u0000\u0f54"+ - "\u0f55\u0003\u0011\b\u0000\u0f55\u0f56\u0003#\u0011\u0000\u0f56\u0f57"+ - "\u0003)\u0014\u0000\u0f57\u0f58\u0003\u001f\u000f\u0000\u0f58\u0f59\u0003"+ - "\u0007\u0003\u0000\u0f59\u0f5a\u0003-\u0016\u0000\u0f5a\u020a\u0001\u0000"+ - "\u0000\u0000\u0f5b\u0f5c\u0003\u0011\b\u0000\u0f5c\u0f5d\u0003#\u0011"+ - "\u0000\u0f5d\u0f5e\u0003)\u0014\u0000\u0f5e\u0f5f\u0003-\u0016\u0000\u0f5f"+ - "\u0f60\u0003)\u0014\u0000\u0f60\u0f61\u0003\u0007\u0003\u0000\u0f61\u0f62"+ - "\u0003!\u0010\u0000\u0f62\u020c\u0001\u0000\u0000\u0000\u0f63\u0f64\u0003"+ - "\u0011\b\u0000\u0f64\u0f65\u0003#\u0011\u0000\u0f65\u0f66\u0003)\u0014"+ - "\u0000\u0f66\u0f67\u00033\u0019\u0000\u0f67\u0f68\u0003\u0007\u0003\u0000"+ - "\u0f68\u0f69\u0003)\u0014\u0000\u0f69\u0f6a\u0003\r\u0006\u0000\u0f6a"+ - "\u020e\u0001\u0000\u0000\u0000\u0f6b\u0f6c\u0003\u0011\b\u0000\u0f6c\u0f6d"+ - "\u0003#\u0011\u0000\u0f6d\u0f6e\u0003/\u0017\u0000\u0f6e\u0f6f\u0003!"+ - "\u0010\u0000\u0f6f\u0f70\u0003\r\u0006\u0000\u0f70\u0210\u0001\u0000\u0000"+ - "\u0000\u0f71\u0f72\u0003\u0011\b\u0000\u0f72\u0f73\u0003)\u0014\u0000"+ - "\u0f73\u0f74\u0003\u000f\u0007\u0000\u0f74\u0f75\u0003\u000f\u0007\u0000"+ - "\u0f75\u0212\u0001\u0000\u0000\u0000\u0f76\u0f77\u0003\u0011\b\u0000\u0f77"+ - "\u0f78\u0003)\u0014\u0000\u0f78\u0f79\u0003\u000f\u0007\u0000\u0f79\u0f7a"+ - "\u0003\u000f\u0007\u0000\u0f7a\u0f7b\u00039\u001c\u0000\u0f7b\u0f7c\u0003"+ - "\u000f\u0007\u0000\u0f7c\u0214\u0001\u0000\u0000\u0000\u0f7d\u0f7e\u0003"+ - "\u0011\b\u0000\u0f7e\u0f7f\u0003)\u0014\u0000\u0f7f\u0f80\u0003#\u0011"+ - "\u0000\u0f80\u0f81\u0003\u001f\u000f\u0000\u0f81\u0216\u0001\u0000\u0000"+ - "\u0000\u0f82\u0f83\u0003\u0011\b\u0000\u0f83\u0f84\u0003/\u0017\u0000"+ - "\u0f84\u0f85\u0003\u001d\u000e\u0000\u0f85\u0f86\u0003\u001d\u000e\u0000"+ - "\u0f86\u0218\u0001\u0000\u0000\u0000\u0f87\u0f88\u0003\u0011\b\u0000\u0f88"+ - "\u0f89\u0003/\u0017\u0000\u0f89\u0f8a\u0003!\u0010\u0000\u0f8a\u0f8b\u0003"+ - "\u000b\u0005\u0000\u0f8b\u0f8c\u0003-\u0016\u0000\u0f8c\u0f8d\u0003\u0017"+ - "\u000b\u0000\u0f8d\u0f8e\u0003#\u0011\u0000\u0f8e\u0f8f\u0003!\u0010\u0000"+ - "\u0f8f\u021a\u0001\u0000\u0000\u0000\u0f90\u0f91\u0003\u0011\b\u0000\u0f91"+ - "\u0f92\u0003/\u0017\u0000\u0f92\u0f93\u0003+\u0015\u0000\u0f93\u0f94\u0003"+ - "\u0017\u000b\u0000\u0f94\u0f95\u0003#\u0011\u0000\u0f95\u0f96\u0003!\u0010"+ - "\u0000\u0f96\u021c\u0001\u0000\u0000\u0000\u0f97\u0f98\u0003\u0013\t\u0000"+ - "\u0f98\u021e\u0001\u0000\u0000\u0000\u0f99\u0f9a\u0003\u0013\t\u0000\u0f9a"+ - "\u0f9b\u0003\u000f\u0007\u0000\u0f9b\u0f9c\u0003!\u0010\u0000\u0f9c\u0f9d"+ - "\u0003\u000f\u0007\u0000\u0f9d\u0f9e\u0003)\u0014\u0000\u0f9e\u0f9f\u0003"+ - "\u0007\u0003\u0000\u0f9f\u0fa0\u0003\u001d\u000e\u0000\u0fa0\u0220\u0001"+ - "\u0000\u0000\u0000\u0fa1\u0fa2\u0003\u0013\t\u0000\u0fa2\u0fa3\u0003\u000f"+ - "\u0007\u0000\u0fa3\u0fa4\u0003!\u0010\u0000\u0fa4\u0fa5\u0003\u000f\u0007"+ - "\u0000\u0fa5\u0fa6\u0003)\u0014\u0000\u0fa6\u0fa7\u0003\u0007\u0003\u0000"+ - "\u0fa7\u0fa8\u0003-\u0016\u0000\u0fa8\u0fa9\u0003\u000f\u0007\u0000\u0fa9"+ - "\u0faa\u0003\r\u0006\u0000\u0faa\u0222\u0001\u0000\u0000\u0000\u0fab\u0fac"+ - "\u0003\u0013\t\u0000\u0fac\u0fad\u0003\u000f\u0007\u0000\u0fad\u0fae\u0003"+ - "-\u0016\u0000\u0fae\u0224\u0001\u0000\u0000\u0000\u0faf\u0fb0\u0003\u0013"+ - "\t\u0000\u0fb0\u0fb1\u0003\u001d\u000e\u0000\u0fb1\u0fb2\u0003#\u0011"+ - "\u0000\u0fb2\u0fb3\u0003\t\u0004\u0000\u0fb3\u0fb4\u0003\u0007\u0003\u0000"+ - "\u0fb4\u0fb5\u0003\u001d\u000e\u0000\u0fb5\u0226\u0001\u0000\u0000\u0000"+ - "\u0fb6\u0fb7\u0003\u0013\t\u0000\u0fb7\u0fb8\u0003#\u0011\u0000\u0fb8"+ - "\u0228\u0001\u0000\u0000\u0000\u0fb9\u0fba\u0003\u0013\t\u0000\u0fba\u0fbb"+ - "\u0003#\u0011\u0000\u0fbb\u0fbc\u0003-\u0016\u0000\u0fbc\u0fbd\u0003#"+ - "\u0011\u0000\u0fbd\u022a\u0001\u0000\u0000\u0000\u0fbe\u0fbf\u0003\u0013"+ - "\t\u0000\u0fbf\u0fc0\u0003)\u0014\u0000\u0fc0\u0fc1\u0003\u0007\u0003"+ - "\u0000\u0fc1\u0fc2\u0003!\u0010\u0000\u0fc2\u0fc3\u0003-\u0016\u0000\u0fc3"+ - "\u022c\u0001\u0000\u0000\u0000\u0fc4\u0fc5\u0003\u0013\t\u0000\u0fc5\u0fc6"+ - "\u0003)\u0014\u0000\u0fc6\u0fc7\u0003\u0007\u0003\u0000\u0fc7\u0fc8\u0003"+ - "!\u0010\u0000\u0fc8\u0fc9\u0003-\u0016\u0000\u0fc9\u0fca\u0003\u000f\u0007"+ - "\u0000\u0fca\u0fcb\u0003\r\u0006\u0000\u0fcb\u022e\u0001\u0000\u0000\u0000"+ - "\u0fcc\u0fcd\u0003\u0013\t\u0000\u0fcd\u0fce\u0003)\u0014\u0000\u0fce"+ - "\u0fcf\u0003\u000f\u0007\u0000\u0fcf\u0fd0\u0003\u0007\u0003\u0000\u0fd0"+ - "\u0fd1\u0003-\u0016\u0000\u0fd1\u0fd2\u0003\u000f\u0007\u0000\u0fd2\u0fd3"+ - "\u0003+\u0015\u0000\u0fd3\u0fd4\u0003-\u0016\u0000\u0fd4\u0230\u0001\u0000"+ - "\u0000\u0000\u0fd5\u0fd6\u0003\u0013\t\u0000\u0fd6\u0fd7\u0003)\u0014"+ - "\u0000\u0fd7\u0fd8\u0003#\u0011\u0000\u0fd8\u0fd9\u0003/\u0017\u0000\u0fd9"+ - "\u0fda\u0003%\u0012\u0000\u0fda\u0232\u0001\u0000\u0000\u0000\u0fdb\u0fdc"+ - "\u0003\u0013\t\u0000\u0fdc\u0fdd\u0003)\u0014\u0000\u0fdd\u0fde\u0003"+ - "#\u0011\u0000\u0fde\u0fdf\u0003/\u0017\u0000\u0fdf\u0fe0\u0003%\u0012"+ - "\u0000\u0fe0\u0fe1\u0003\u0017\u000b\u0000\u0fe1\u0fe2\u0003!\u0010\u0000"+ - "\u0fe2\u0fe3\u0003\u0013\t\u0000\u0fe3\u0234\u0001\u0000\u0000\u0000\u0fe4"+ - "\u0fe5\u0003\u0015\n\u0000\u0fe5\u0fe6\u0003\u0007\u0003\u0000\u0fe6\u0fe7"+ - "\u0003!\u0010\u0000\u0fe7\u0fe8\u0003\r\u0006\u0000\u0fe8\u0fe9\u0003"+ - "\u001d\u000e\u0000"; + "\u0000\u0000\u0381\u0001\u0000\u0000\u0000\u0000\u0383\u0001\u0000\u0000"+ + "\u0000\u0000\u0385\u0001\u0000\u0000\u0000\u0000\u0387\u0001\u0000\u0000"+ + "\u0000\u0000\u0389\u0001\u0000\u0000\u0000\u0000\u038b\u0001\u0000\u0000"+ + "\u0000\u0000\u038d\u0001\u0000\u0000\u0000\u0000\u038f\u0001\u0000\u0000"+ + "\u0000\u0000\u0391\u0001\u0000\u0000\u0000\u0000\u0393\u0001\u0000\u0000"+ + "\u0000\u0000\u0395\u0001\u0000\u0000\u0000\u0000\u0397\u0001\u0000\u0000"+ + "\u0000\u0000\u0399\u0001\u0000\u0000\u0000\u0000\u039b\u0001\u0000\u0000"+ + "\u0000\u0000\u039d\u0001\u0000\u0000\u0000\u0000\u039f\u0001\u0000\u0000"+ + "\u0000\u0000\u03a1\u0001\u0000\u0000\u0000\u0000\u03a3\u0001\u0000\u0000"+ + "\u0000\u0000\u03a5\u0001\u0000\u0000\u0000\u0000\u03a7\u0001\u0000\u0000"+ + "\u0000\u0000\u03a9\u0001\u0000\u0000\u0000\u0000\u03ab\u0001\u0000\u0000"+ + "\u0000\u0000\u03ad\u0001\u0000\u0000\u0000\u0000\u03af\u0001\u0000\u0000"+ + "\u0000\u0000\u03b1\u0001\u0000\u0000\u0000\u0000\u03b3\u0001\u0000\u0000"+ + "\u0000\u0000\u03b5\u0001\u0000\u0000\u0000\u0000\u03b7\u0001\u0000\u0000"+ + "\u0000\u0000\u03b9\u0001\u0000\u0000\u0000\u0000\u03bb\u0001\u0000\u0000"+ + "\u0000\u0000\u03bd\u0001\u0000\u0000\u0000\u0000\u03bf\u0001\u0000\u0000"+ + "\u0000\u0000\u03c1\u0001\u0000\u0000\u0000\u0000\u03c3\u0001\u0000\u0000"+ + "\u0000\u0000\u03c5\u0001\u0000\u0000\u0000\u0000\u03c7\u0001\u0000\u0000"+ + "\u0000\u0000\u03c9\u0001\u0000\u0000\u0000\u0000\u03cb\u0001\u0000\u0000"+ + "\u0000\u0000\u03cd\u0001\u0000\u0000\u0000\u0000\u03cf\u0001\u0000\u0000"+ + "\u0000\u0000\u03d1\u0001\u0000\u0000\u0000\u0000\u03d3\u0001\u0000\u0000"+ + "\u0000\u0000\u03d5\u0001\u0000\u0000\u0000\u0000\u03d7\u0001\u0000\u0000"+ + "\u0000\u0000\u03d9\u0001\u0000\u0000\u0000\u0000\u03db\u0001\u0000\u0000"+ + "\u0000\u0000\u03dd\u0001\u0000\u0000\u0000\u0000\u03df\u0001\u0000\u0000"+ + "\u0000\u0000\u03e1\u0001\u0000\u0000\u0000\u0000\u03e3\u0001\u0000\u0000"+ + "\u0000\u0000\u03e5\u0001\u0000\u0000\u0000\u0000\u03e7\u0001\u0000\u0000"+ + "\u0000\u0000\u03e9\u0001\u0000\u0000\u0000\u0000\u03eb\u0001\u0000\u0000"+ + "\u0000\u0000\u03ed\u0001\u0000\u0000\u0000\u0000\u03ef\u0001\u0000\u0000"+ + "\u0000\u0000\u03f1\u0001\u0000\u0000\u0000\u0000\u03f3\u0001\u0000\u0000"+ + "\u0000\u0000\u03f5\u0001\u0000\u0000\u0000\u0000\u03f7\u0001\u0000\u0000"+ + "\u0000\u0000\u03f9\u0001\u0000\u0000\u0000\u0000\u03fb\u0001\u0000\u0000"+ + "\u0000\u0000\u03fd\u0001\u0000\u0000\u0000\u0000\u03ff\u0001\u0000\u0000"+ + "\u0000\u0000\u0401\u0001\u0000\u0000\u0000\u0000\u0403\u0001\u0000\u0000"+ + "\u0000\u0000\u0405\u0001\u0000\u0000\u0000\u0000\u0407\u0001\u0000\u0000"+ + "\u0000\u0000\u0409\u0001\u0000\u0000\u0000\u0000\u040b\u0001\u0000\u0000"+ + "\u0000\u0000\u040d\u0001\u0000\u0000\u0000\u0000\u040f\u0001\u0000\u0000"+ + "\u0000\u0000\u0411\u0001\u0000\u0000\u0000\u0000\u0413\u0001\u0000\u0000"+ + "\u0000\u0000\u0415\u0001\u0000\u0000\u0000\u0000\u0417\u0001\u0000\u0000"+ + "\u0000\u0000\u0419\u0001\u0000\u0000\u0000\u0000\u041b\u0001\u0000\u0000"+ + "\u0000\u0000\u041d\u0001\u0000\u0000\u0000\u0000\u041f\u0001\u0000\u0000"+ + "\u0000\u0000\u0421\u0001\u0000\u0000\u0000\u0000\u0423\u0001\u0000\u0000"+ + "\u0000\u0000\u0425\u0001\u0000\u0000\u0000\u0000\u0427\u0001\u0000\u0000"+ + "\u0000\u0000\u0429\u0001\u0000\u0000\u0000\u0000\u042b\u0001\u0000\u0000"+ + "\u0000\u0000\u042d\u0001\u0000\u0000\u0000\u0000\u042f\u0001\u0000\u0000"+ + "\u0000\u0000\u0431\u0001\u0000\u0000\u0000\u0000\u0433\u0001\u0000\u0000"+ + "\u0000\u0000\u0435\u0001\u0000\u0000\u0000\u0000\u0437\u0001\u0000\u0000"+ + "\u0000\u0000\u0439\u0001\u0000\u0000\u0000\u0000\u043b\u0001\u0000\u0000"+ + "\u0000\u0000\u043d\u0001\u0000\u0000\u0000\u0000\u043f\u0001\u0000\u0000"+ + "\u0000\u0000\u0441\u0001\u0000\u0000\u0000\u0000\u0443\u0001\u0000\u0000"+ + "\u0000\u0000\u0445\u0001\u0000\u0000\u0000\u0000\u0447\u0001\u0000\u0000"+ + "\u0000\u0000\u0449\u0001\u0000\u0000\u0000\u0000\u044b\u0001\u0000\u0000"+ + "\u0000\u0000\u044d\u0001\u0000\u0000\u0000\u0000\u044f\u0001\u0000\u0000"+ + "\u0000\u0000\u0451\u0001\u0000\u0000\u0000\u0000\u0453\u0001\u0000\u0000"+ + "\u0000\u0000\u0455\u0001\u0000\u0000\u0000\u0000\u0457\u0001\u0000\u0000"+ + "\u0000\u0000\u0459\u0001\u0000\u0000\u0000\u0000\u045b\u0001\u0000\u0000"+ + "\u0000\u0000\u045d\u0001\u0000\u0000\u0000\u0000\u045f\u0001\u0000\u0000"+ + "\u0000\u0000\u0461\u0001\u0000\u0000\u0000\u0000\u0463\u0001\u0000\u0000"+ + "\u0000\u0000\u0465\u0001\u0000\u0000\u0000\u0000\u0467\u0001\u0000\u0000"+ + "\u0000\u0000\u0469\u0001\u0000\u0000\u0000\u0000\u046b\u0001\u0000\u0000"+ + "\u0000\u0000\u046d\u0001\u0000\u0000\u0000\u0000\u046f\u0001\u0000\u0000"+ + "\u0000\u0000\u0471\u0001\u0000\u0000\u0000\u0000\u0473\u0001\u0000\u0000"+ + "\u0000\u0000\u0475\u0001\u0000\u0000\u0000\u0000\u0477\u0001\u0000\u0000"+ + "\u0000\u0000\u0479\u0001\u0000\u0000\u0000\u0000\u047b\u0001\u0000\u0000"+ + "\u0000\u0000\u047d\u0001\u0000\u0000\u0000\u0000\u047f\u0001\u0000\u0000"+ + "\u0000\u0000\u0481\u0001\u0000\u0000\u0000\u0000\u0483\u0001\u0000\u0000"+ + "\u0000\u0000\u0485\u0001\u0000\u0000\u0000\u0000\u0487\u0001\u0000\u0000"+ + "\u0000\u0000\u0489\u0001\u0000\u0000\u0000\u0000\u048b\u0001\u0000\u0000"+ + "\u0000\u0000\u048d\u0001\u0000\u0000\u0000\u0000\u048f\u0001\u0000\u0000"+ + "\u0000\u0000\u0491\u0001\u0000\u0000\u0000\u0000\u0493\u0001\u0000\u0000"+ + "\u0000\u0000\u0495\u0001\u0000\u0000\u0000\u0000\u0497\u0001\u0000\u0000"+ + "\u0000\u0000\u0499\u0001\u0000\u0000\u0000\u0000\u049b\u0001\u0000\u0000"+ + "\u0000\u0000\u049d\u0001\u0000\u0000\u0000\u0000\u049f\u0001\u0000\u0000"+ + "\u0000\u0000\u04a1\u0001\u0000\u0000\u0000\u0000\u04a3\u0001\u0000\u0000"+ + "\u0000\u0000\u04a5\u0001\u0000\u0000\u0000\u0000\u04a7\u0001\u0000\u0000"+ + "\u0000\u0000\u04a9\u0001\u0000\u0000\u0000\u0000\u04ab\u0001\u0000\u0000"+ + "\u0000\u0000\u04ad\u0001\u0000\u0000\u0000\u0000\u04af\u0001\u0000\u0000"+ + "\u0000\u0000\u04b1\u0001\u0000\u0000\u0000\u0000\u04b3\u0001\u0000\u0000"+ + "\u0000\u0000\u04b5\u0001\u0000\u0000\u0000\u0000\u04b7\u0001\u0000\u0000"+ + "\u0000\u0000\u04b9\u0001\u0000\u0000\u0000\u0000\u04bb\u0001\u0000\u0000"+ + "\u0000\u0000\u04bd\u0001\u0000\u0000\u0000\u0000\u04bf\u0001\u0000\u0000"+ + "\u0000\u0000\u04c1\u0001\u0000\u0000\u0000\u0000\u04c3\u0001\u0000\u0000"+ + "\u0000\u0000\u04c5\u0001\u0000\u0000\u0000\u0000\u04c7\u0001\u0000\u0000"+ + "\u0000\u0000\u04c9\u0001\u0000\u0000\u0000\u0000\u04cb\u0001\u0000\u0000"+ + "\u0000\u0000\u04cd\u0001\u0000\u0000\u0000\u0000\u04cf\u0001\u0000\u0000"+ + "\u0000\u0000\u04d1\u0001\u0000\u0000\u0000\u0000\u04d3\u0001\u0000\u0000"+ + "\u0000\u0000\u04d5\u0001\u0000\u0000\u0000\u0000\u04d7\u0001\u0000\u0000"+ + "\u0000\u0000\u04d9\u0001\u0000\u0000\u0000\u0000\u04db\u0001\u0000\u0000"+ + "\u0000\u0000\u04dd\u0001\u0000\u0000\u0000\u0000\u04df\u0001\u0000\u0000"+ + "\u0000\u0000\u04e1\u0001\u0000\u0000\u0000\u0000\u04e3\u0001\u0000\u0000"+ + "\u0000\u0000\u04e5\u0001\u0000\u0000\u0000\u0000\u04e7\u0001\u0000\u0000"+ + "\u0000\u0000\u04e9\u0001\u0000\u0000\u0000\u0000\u04eb\u0001\u0000\u0000"+ + "\u0000\u0000\u04ed\u0001\u0000\u0000\u0000\u0000\u04ef\u0001\u0000\u0000"+ + "\u0000\u0000\u04f1\u0001\u0000\u0000\u0000\u0000\u04f3\u0001\u0000\u0000"+ + "\u0000\u0000\u04f5\u0001\u0000\u0000\u0000\u0000\u04f7\u0001\u0000\u0000"+ + "\u0000\u0000\u04f9\u0001\u0000\u0000\u0000\u0000\u04fb\u0001\u0000\u0000"+ + "\u0000\u0000\u04fd\u0001\u0000\u0000\u0000\u0000\u04ff\u0001\u0000\u0000"+ + "\u0000\u0000\u0501\u0001\u0000\u0000\u0000\u0000\u0503\u0001\u0000\u0000"+ + "\u0000\u0000\u0505\u0001\u0000\u0000\u0000\u0000\u0507\u0001\u0000\u0000"+ + "\u0000\u0000\u0509\u0001\u0000\u0000\u0000\u0000\u050b\u0001\u0000\u0000"+ + "\u0000\u0000\u050d\u0001\u0000\u0000\u0000\u0000\u050f\u0001\u0000\u0000"+ + "\u0000\u0000\u0511\u0001\u0000\u0000\u0000\u0000\u0513\u0001\u0000\u0000"+ + "\u0000\u0000\u0515\u0001\u0000\u0000\u0000\u0000\u0517\u0001\u0000\u0000"+ + "\u0000\u0000\u0519\u0001\u0000\u0000\u0000\u0000\u051b\u0001\u0000\u0000"+ + "\u0000\u0000\u051d\u0001\u0000\u0000\u0000\u0000\u051f\u0001\u0000\u0000"+ + "\u0000\u0000\u0521\u0001\u0000\u0000\u0000\u0000\u0523\u0001\u0000\u0000"+ + "\u0000\u0000\u0525\u0001\u0000\u0000\u0000\u0000\u0527\u0001\u0000\u0000"+ + "\u0000\u0000\u0529\u0001\u0000\u0000\u0000\u0000\u052b\u0001\u0000\u0000"+ + "\u0000\u0000\u052d\u0001\u0000\u0000\u0000\u0000\u052f\u0001\u0000\u0000"+ + "\u0000\u0000\u0531\u0001\u0000\u0000\u0000\u0000\u0533\u0001\u0000\u0000"+ + "\u0000\u0000\u0535\u0001\u0000\u0000\u0000\u0000\u0537\u0001\u0000\u0000"+ + "\u0000\u0000\u0539\u0001\u0000\u0000\u0000\u0000\u053b\u0001\u0000\u0000"+ + "\u0000\u0000\u053d\u0001\u0000\u0000\u0000\u0000\u053f\u0001\u0000\u0000"+ + "\u0000\u0000\u0541\u0001\u0000\u0000\u0000\u0000\u0543\u0001\u0000\u0000"+ + "\u0000\u0000\u0545\u0001\u0000\u0000\u0000\u0000\u0547\u0001\u0000\u0000"+ + "\u0000\u0000\u0549\u0001\u0000\u0000\u0000\u0000\u054b\u0001\u0000\u0000"+ + "\u0000\u0000\u054d\u0001\u0000\u0000\u0000\u0000\u054f\u0001\u0000\u0000"+ + "\u0000\u0000\u0551\u0001\u0000\u0000\u0000\u0000\u0553\u0001\u0000\u0000"+ + "\u0000\u0000\u0555\u0001\u0000\u0000\u0000\u0000\u0557\u0001\u0000\u0000"+ + "\u0000\u0000\u0559\u0001\u0000\u0000\u0000\u0000\u055b\u0001\u0000\u0000"+ + "\u0000\u0000\u055d\u0001\u0000\u0000\u0000\u0000\u055f\u0001\u0000\u0000"+ + "\u0000\u0000\u0561\u0001\u0000\u0000\u0000\u0000\u0563\u0001\u0000\u0000"+ + "\u0000\u0000\u0565\u0001\u0000\u0000\u0000\u0000\u0567\u0001\u0000\u0000"+ + "\u0000\u0000\u0569\u0001\u0000\u0000\u0000\u0000\u056b\u0001\u0000\u0000"+ + "\u0000\u0000\u056d\u0001\u0000\u0000\u0000\u0000\u056f\u0001\u0000\u0000"+ + "\u0000\u0000\u0571\u0001\u0000\u0000\u0000\u0000\u0573\u0001\u0000\u0000"+ + "\u0000\u0000\u0575\u0001\u0000\u0000\u0000\u0000\u0577\u0001\u0000\u0000"+ + "\u0000\u0000\u0579\u0001\u0000\u0000\u0000\u0000\u057b\u0001\u0000\u0000"+ + "\u0000\u0000\u057d\u0001\u0000\u0000\u0000\u0000\u057f\u0001\u0000\u0000"+ + "\u0000\u0000\u0581\u0001\u0000\u0000\u0000\u0000\u0583\u0001\u0000\u0000"+ + "\u0000\u0000\u0585\u0001\u0000\u0000\u0000\u0000\u0587\u0001\u0000\u0000"+ + "\u0000\u0000\u0589\u0001\u0000\u0000\u0000\u0000\u058b\u0001\u0000\u0000"+ + "\u0000\u0000\u058d\u0001\u0000\u0000\u0000\u0000\u058f\u0001\u0000\u0000"+ + "\u0000\u0000\u0591\u0001\u0000\u0000\u0000\u0000\u0593\u0001\u0000\u0000"+ + "\u0000\u0000\u0595\u0001\u0000\u0000\u0000\u0000\u0597\u0001\u0000\u0000"+ + "\u0000\u0000\u0599\u0001\u0000\u0000\u0000\u0000\u059b\u0001\u0000\u0000"+ + "\u0000\u0000\u059d\u0001\u0000\u0000\u0000\u0000\u059f\u0001\u0000\u0000"+ + "\u0000\u0000\u05a1\u0001\u0000\u0000\u0000\u0000\u05a3\u0001\u0000\u0000"+ + "\u0000\u0000\u05a5\u0001\u0000\u0000\u0000\u0000\u05a7\u0001\u0000\u0000"+ + "\u0000\u0000\u05a9\u0001\u0000\u0000\u0000\u0000\u05ab\u0001\u0000\u0000"+ + "\u0000\u0000\u05ad\u0001\u0000\u0000\u0000\u0000\u05af\u0001\u0000\u0000"+ + "\u0000\u0000\u05b1\u0001\u0000\u0000\u0000\u0000\u05b3\u0001\u0000\u0000"+ + "\u0000\u0000\u05b5\u0001\u0000\u0000\u0000\u0000\u05b7\u0001\u0000\u0000"+ + "\u0000\u0000\u05b9\u0001\u0000\u0000\u0000\u0000\u05bb\u0001\u0000\u0000"+ + "\u0000\u0000\u05bd\u0001\u0000\u0000\u0000\u0000\u05bf\u0001\u0000\u0000"+ + "\u0000\u0000\u05c1\u0001\u0000\u0000\u0000\u0000\u05c3\u0001\u0000\u0000"+ + "\u0000\u0000\u05c5\u0001\u0000\u0000\u0000\u0000\u05c7\u0001\u0000\u0000"+ + "\u0000\u0000\u05c9\u0001\u0000\u0000\u0000\u0000\u05cb\u0001\u0000\u0000"+ + "\u0000\u0000\u05cd\u0001\u0000\u0000\u0000\u0000\u05cf\u0001\u0000\u0000"+ + "\u0000\u0000\u05d1\u0001\u0000\u0000\u0000\u0000\u05d3\u0001\u0000\u0000"+ + "\u0000\u0000\u05d5\u0001\u0000\u0000\u0000\u0000\u05d7\u0001\u0000\u0000"+ + "\u0000\u0000\u05d9\u0001\u0000\u0000\u0000\u0000\u05db\u0001\u0000\u0000"+ + "\u0000\u0000\u05dd\u0001\u0000\u0000\u0000\u0000\u05df\u0001\u0000\u0000"+ + "\u0000\u0000\u05e1\u0001\u0000\u0000\u0000\u0000\u05e3\u0001\u0000\u0000"+ + "\u0000\u0000\u05e5\u0001\u0000\u0000\u0000\u0000\u05e7\u0001\u0000\u0000"+ + "\u0000\u0000\u05e9\u0001\u0000\u0000\u0000\u0000\u05eb\u0001\u0000\u0000"+ + "\u0000\u0000\u05ed\u0001\u0000\u0000\u0000\u0000\u05ef\u0001\u0000\u0000"+ + "\u0000\u0000\u05f1\u0001\u0000\u0000\u0000\u0000\u05f3\u0001\u0000\u0000"+ + "\u0000\u0000\u05f5\u0001\u0000\u0000\u0000\u0000\u05f7\u0001\u0000\u0000"+ + "\u0000\u0000\u05f9\u0001\u0000\u0000\u0000\u0000\u05fb\u0001\u0000\u0000"+ + "\u0000\u0000\u05fd\u0001\u0000\u0000\u0000\u0000\u05ff\u0001\u0000\u0000"+ + "\u0000\u0000\u0601\u0001\u0000\u0000\u0000\u0000\u0603\u0001\u0000\u0000"+ + "\u0000\u0000\u0605\u0001\u0000\u0000\u0000\u0000\u0607\u0001\u0000\u0000"+ + "\u0000\u0000\u0609\u0001\u0000\u0000\u0000\u0000\u060b\u0001\u0000\u0000"+ + "\u0000\u0000\u060d\u0001\u0000\u0000\u0000\u0000\u060f\u0001\u0000\u0000"+ + "\u0000\u0000\u0611\u0001\u0000\u0000\u0000\u0000\u0613\u0001\u0000\u0000"+ + "\u0000\u0000\u0615\u0001\u0000\u0000\u0000\u0000\u0617\u0001\u0000\u0000"+ + "\u0000\u0000\u0619\u0001\u0000\u0000\u0000\u0000\u061b\u0001\u0000\u0000"+ + "\u0000\u0000\u061d\u0001\u0000\u0000\u0000\u0000\u061f\u0001\u0000\u0000"+ + "\u0000\u0000\u0621\u0001\u0000\u0000\u0000\u0000\u0623\u0001\u0000\u0000"+ + "\u0000\u0000\u0625\u0001\u0000\u0000\u0000\u0000\u0627\u0001\u0000\u0000"+ + "\u0000\u0000\u0629\u0001\u0000\u0000\u0000\u0000\u062b\u0001\u0000\u0000"+ + "\u0000\u0000\u062d\u0001\u0000\u0000\u0000\u0000\u062f\u0001\u0000\u0000"+ + "\u0000\u0000\u0631\u0001\u0000\u0000\u0000\u0000\u0633\u0001\u0000\u0000"+ + "\u0000\u0000\u0635\u0001\u0000\u0000\u0000\u0000\u0637\u0001\u0000\u0000"+ + "\u0000\u0000\u0639\u0001\u0000\u0000\u0000\u0000\u063b\u0001\u0000\u0000"+ + "\u0000\u0000\u063d\u0001\u0000\u0000\u0000\u0000\u063f\u0001\u0000\u0000"+ + "\u0000\u0000\u0641\u0001\u0000\u0000\u0000\u0000\u0643\u0001\u0000\u0000"+ + "\u0000\u0000\u0645\u0001\u0000\u0000\u0000\u0000\u0647\u0001\u0000\u0000"+ + "\u0000\u0000\u0649\u0001\u0000\u0000\u0000\u0000\u064b\u0001\u0000\u0000"+ + "\u0000\u0000\u064d\u0001\u0000\u0000\u0000\u0000\u064f\u0001\u0000\u0000"+ + "\u0000\u0000\u0651\u0001\u0000\u0000\u0000\u0000\u0653\u0001\u0000\u0000"+ + "\u0000\u0000\u0655\u0001\u0000\u0000\u0000\u0000\u0657\u0001\u0000\u0000"+ + "\u0000\u0000\u0659\u0001\u0000\u0000\u0000\u0000\u065b\u0001\u0000\u0000"+ + "\u0000\u0000\u065d\u0001\u0000\u0000\u0000\u0000\u065f\u0001\u0000\u0000"+ + "\u0000\u0000\u0661\u0001\u0000\u0000\u0000\u0000\u0663\u0001\u0000\u0000"+ + "\u0000\u0000\u0665\u0001\u0000\u0000\u0000\u0000\u0667\u0001\u0000\u0000"+ + "\u0000\u0000\u0669\u0001\u0000\u0000\u0000\u0000\u066b\u0001\u0000\u0000"+ + "\u0000\u0000\u066d\u0001\u0000\u0000\u0000\u0000\u066f\u0001\u0000\u0000"+ + "\u0000\u0000\u0671\u0001\u0000\u0000\u0000\u0000\u0673\u0001\u0000\u0000"+ + "\u0000\u0000\u0675\u0001\u0000\u0000\u0000\u0000\u0677\u0001\u0000\u0000"+ + "\u0000\u0000\u0679\u0001\u0000\u0000\u0000\u0000\u067b\u0001\u0000\u0000"+ + "\u0000\u0000\u067d\u0001\u0000\u0000\u0000\u0000\u067f\u0001\u0000\u0000"+ + "\u0000\u0000\u0681\u0001\u0000\u0000\u0000\u0000\u0683\u0001\u0000\u0000"+ + "\u0000\u0000\u0685\u0001\u0000\u0000\u0000\u0000\u0687\u0001\u0000\u0000"+ + "\u0000\u0000\u0689\u0001\u0000\u0000\u0000\u0000\u068b\u0001\u0000\u0000"+ + "\u0000\u0000\u068d\u0001\u0000\u0000\u0000\u0000\u068f\u0001\u0000\u0000"+ + "\u0000\u0000\u0691\u0001\u0000\u0000\u0000\u0000\u0693\u0001\u0000\u0000"+ + "\u0000\u0000\u0695\u0001\u0000\u0000\u0000\u0000\u0697\u0001\u0000\u0000"+ + "\u0000\u0000\u0699\u0001\u0000\u0000\u0000\u0000\u069b\u0001\u0000\u0000"+ + "\u0000\u0000\u069d\u0001\u0000\u0000\u0000\u0000\u069f\u0001\u0000\u0000"+ + "\u0000\u0000\u06a1\u0001\u0000\u0000\u0000\u0000\u06a3\u0001\u0000\u0000"+ + "\u0000\u0000\u06a5\u0001\u0000\u0000\u0000\u0000\u06a7\u0001\u0000\u0000"+ + "\u0000\u0000\u06a9\u0001\u0000\u0000\u0000\u0000\u06ab\u0001\u0000\u0000"+ + "\u0000\u0000\u06ad\u0001\u0000\u0000\u0000\u0000\u06af\u0001\u0000\u0000"+ + "\u0000\u0000\u06b1\u0001\u0000\u0000\u0000\u0000\u06b3\u0001\u0000\u0000"+ + "\u0000\u0000\u06b5\u0001\u0000\u0000\u0000\u0000\u06b7\u0001\u0000\u0000"+ + "\u0000\u0000\u06b9\u0001\u0000\u0000\u0000\u0000\u06bb\u0001\u0000\u0000"+ + "\u0000\u0000\u06bd\u0001\u0000\u0000\u0000\u0000\u06bf\u0001\u0000\u0000"+ + "\u0000\u0001\u06c2\u0001\u0000\u0000\u0000\u0003\u06c8\u0001\u0000\u0000"+ + "\u0000\u0005\u06d6\u0001\u0000\u0000\u0000\u0007\u06e3\u0001\u0000\u0000"+ + "\u0000\t\u06e5\u0001\u0000\u0000\u0000\u000b\u06e7\u0001\u0000\u0000\u0000"+ + "\r\u06e9\u0001\u0000\u0000\u0000\u000f\u06eb\u0001\u0000\u0000\u0000\u0011"+ + "\u06ed\u0001\u0000\u0000\u0000\u0013\u06ef\u0001\u0000\u0000\u0000\u0015"+ + "\u06f1\u0001\u0000\u0000\u0000\u0017\u06f3\u0001\u0000\u0000\u0000\u0019"+ + "\u06f5\u0001\u0000\u0000\u0000\u001b\u06f7\u0001\u0000\u0000\u0000\u001d"+ + "\u06f9\u0001\u0000\u0000\u0000\u001f\u06fb\u0001\u0000\u0000\u0000!\u06fd"+ + "\u0001\u0000\u0000\u0000#\u06ff\u0001\u0000\u0000\u0000%\u0701\u0001\u0000"+ + "\u0000\u0000\'\u0703\u0001\u0000\u0000\u0000)\u0705\u0001\u0000\u0000"+ + "\u0000+\u0707\u0001\u0000\u0000\u0000-\u0709\u0001\u0000\u0000\u0000/"+ + "\u070b\u0001\u0000\u0000\u00001\u070d\u0001\u0000\u0000\u00003\u070f\u0001"+ + "\u0000\u0000\u00005\u0711\u0001\u0000\u0000\u00007\u0713\u0001\u0000\u0000"+ + "\u00009\u0715\u0001\u0000\u0000\u0000;\u0717\u0001\u0000\u0000\u0000="+ + "\u0719\u0001\u0000\u0000\u0000?\u071b\u0001\u0000\u0000\u0000A\u0728\u0001"+ + "\u0000\u0000\u0000C\u0735\u0001\u0000\u0000\u0000E\u0742\u0001\u0000\u0000"+ + "\u0000G\u0744\u0001\u0000\u0000\u0000I\u074a\u0001\u0000\u0000\u0000K"+ + "\u074e\u0001\u0000\u0000\u0000M\u0757\u0001\u0000\u0000\u0000O\u075e\u0001"+ + "\u0000\u0000\u0000Q\u0765\u0001\u0000\u0000\u0000S\u0769\u0001\u0000\u0000"+ + "\u0000U\u076d\u0001\u0000\u0000\u0000W\u0773\u0001\u0000\u0000\u0000Y"+ + "\u0779\u0001\u0000\u0000\u0000[\u0783\u0001\u0000\u0000\u0000]\u0789\u0001"+ + "\u0000\u0000\u0000_\u078d\u0001\u0000\u0000\u0000a\u0796\u0001\u0000\u0000"+ + "\u0000c\u079b\u0001\u0000\u0000\u0000e\u07a1\u0001\u0000\u0000\u0000g"+ + "\u07a8\u0001\u0000\u0000\u0000i\u07b0\u0001\u0000\u0000\u0000k\u07b8\u0001"+ + "\u0000\u0000\u0000m\u07bc\u0001\u0000\u0000\u0000o\u07c0\u0001\u0000\u0000"+ + "\u0000q\u07c4\u0001\u0000\u0000\u0000s\u07ca\u0001\u0000\u0000\u0000u"+ + "\u07cd\u0001\u0000\u0000\u0000w\u07d1\u0001\u0000\u0000\u0000y\u07dc\u0001"+ + "\u0000\u0000\u0000{\u07e6\u0001\u0000\u0000\u0000}\u07f1\u0001\u0000\u0000"+ + "\u0000\u007f\u07fc\u0001\u0000\u0000\u0000\u0081\u07ff\u0001\u0000\u0000"+ + "\u0000\u0083\u0806\u0001\u0000\u0000\u0000\u0085\u0810\u0001\u0000\u0000"+ + "\u0000\u0087\u081b\u0001\u0000\u0000\u0000\u0089\u0829\u0001\u0000\u0000"+ + "\u0000\u008b\u082d\u0001\u0000\u0000\u0000\u008d\u0836\u0001\u0000\u0000"+ + "\u0000\u008f\u083d\u0001\u0000\u0000\u0000\u0091\u0843\u0001\u0000\u0000"+ + "\u0000\u0093\u084d\u0001\u0000\u0000\u0000\u0095\u0855\u0001\u0000\u0000"+ + "\u0000\u0097\u085c\u0001\u0000\u0000\u0000\u0099\u0863\u0001\u0000\u0000"+ + "\u0000\u009b\u0867\u0001\u0000\u0000\u0000\u009d\u0872\u0001\u0000\u0000"+ + "\u0000\u009f\u0879\u0001\u0000\u0000\u0000\u00a1\u087e\u0001\u0000\u0000"+ + "\u0000\u00a3\u0886\u0001\u0000\u0000\u0000\u00a5\u088b\u0001\u0000\u0000"+ + "\u0000\u00a7\u0893\u0001\u0000\u0000\u0000\u00a9\u089b\u0001\u0000\u0000"+ + "\u0000\u00ab\u089e\u0001\u0000\u0000\u0000\u00ad\u08a0\u0001\u0000\u0000"+ + "\u0000\u00af\u08a6\u0001\u0000\u0000\u0000\u00b1\u08ab\u0001\u0000\u0000"+ + "\u0000\u00b3\u08b2\u0001\u0000\u0000\u0000\u00b5\u08be\u0001\u0000\u0000"+ + "\u0000\u00b7\u08c6\u0001\u0000\u0000\u0000\u00b9\u08cf\u0001\u0000\u0000"+ + "\u0000\u00bb\u08d4\u0001\u0000\u0000\u0000\u00bd\u08d9\u0001\u0000\u0000"+ + "\u0000\u00bf\u08e1\u0001\u0000\u0000\u0000\u00c1\u08ee\u0001\u0000\u0000"+ + "\u0000\u00c3\u08f3\u0001\u0000\u0000\u0000\u00c5\u08fb\u0001\u0000\u0000"+ + "\u0000\u00c7\u0901\u0001\u0000\u0000\u0000\u00c9\u0906\u0001\u0000\u0000"+ + "\u0000\u00cb\u0912\u0001\u0000\u0000\u0000\u00cd\u091c\u0001\u0000\u0000"+ + "\u0000\u00cf\u092d\u0001\u0000\u0000\u0000\u00d1\u0943\u0001\u0000\u0000"+ + "\u0000\u00d3\u0956\u0001\u0000\u0000\u0000\u00d5\u096b\u0001\u0000\u0000"+ + "\u0000\u00d7\u097b\u0001\u0000\u0000\u0000\u00d9\u0986\u0001\u0000\u0000"+ + "\u0000\u00db\u098c\u0001\u0000\u0000\u0000\u00dd\u0994\u0001\u0000\u0000"+ + "\u0000\u00df\u099f\u0001\u0000\u0000\u0000\u00e1\u09a5\u0001\u0000\u0000"+ + "\u0000\u00e3\u09b2\u0001\u0000\u0000\u0000\u00e5\u09b7\u0001\u0000\u0000"+ + "\u0000\u00e7\u09bd\u0001\u0000\u0000\u0000\u00e9\u09c5\u0001\u0000\u0000"+ + "\u0000\u00eb\u09ce\u0001\u0000\u0000\u0000\u00ed\u09d4\u0001\u0000\u0000"+ + "\u0000\u00ef\u09dc\u0001\u0000\u0000\u0000\u00f1\u09e6\u0001\u0000\u0000"+ + "\u0000\u00f3\u09f8\u0001\u0000\u0000\u0000\u00f5\u0a07\u0001\u0000\u0000"+ + "\u0000\u00f7\u0a18\u0001\u0000\u0000\u0000\u00f9\u0a20\u0001\u0000\u0000"+ + "\u0000\u00fb\u0a27\u0001\u0000\u0000\u0000\u00fd\u0a33\u0001\u0000\u0000"+ + "\u0000\u00ff\u0a44\u0001\u0000\u0000\u0000\u0101\u0a5a\u0001\u0000\u0000"+ + "\u0000\u0103\u0a62\u0001\u0000\u0000\u0000\u0105\u0a69\u0001\u0000\u0000"+ + "\u0000\u0107\u0a73\u0001\u0000\u0000\u0000\u0109\u0a7e\u0001\u0000\u0000"+ + "\u0000\u010b\u0a88\u0001\u0000\u0000\u0000\u010d\u0a99\u0001\u0000\u0000"+ + "\u0000\u010f\u0aa7\u0001\u0000\u0000\u0000\u0111\u0ab0\u0001\u0000\u0000"+ + "\u0000\u0113\u0ab8\u0001\u0000\u0000\u0000\u0115\u0ac3\u0001\u0000\u0000"+ + "\u0000\u0117\u0ad3\u0001\u0000\u0000\u0000\u0119\u0ade\u0001\u0000\u0000"+ + "\u0000\u011b\u0af1\u0001\u0000\u0000\u0000\u011d\u0b01\u0001\u0000\u0000"+ + "\u0000\u011f\u0b13\u0001\u0000\u0000\u0000\u0121\u0b1f\u0001\u0000\u0000"+ + "\u0000\u0123\u0b2b\u0001\u0000\u0000\u0000\u0125\u0b34\u0001\u0000\u0000"+ + "\u0000\u0127\u0b3d\u0001\u0000\u0000\u0000\u0129\u0b48\u0001\u0000\u0000"+ + "\u0000\u012b\u0b50\u0001\u0000\u0000\u0000\u012d\u0b55\u0001\u0000\u0000"+ + "\u0000\u012f\u0b5a\u0001\u0000\u0000\u0000\u0131\u0b68\u0001\u0000\u0000"+ + "\u0000\u0133\u0b6e\u0001\u0000\u0000\u0000\u0135\u0b74\u0001\u0000\u0000"+ + "\u0000\u0137\u0b7e\u0001\u0000\u0000\u0000\u0139\u0b89\u0001\u0000\u0000"+ + "\u0000\u013b\u0b90\u0001\u0000\u0000\u0000\u013d\u0b99\u0001\u0000\u0000"+ + "\u0000\u013f\u0ba4\u0001\u0000\u0000\u0000\u0141\u0baa\u0001\u0000\u0000"+ + "\u0000\u0143\u0bae\u0001\u0000\u0000\u0000\u0145\u0bb3\u0001\u0000\u0000"+ + "\u0000\u0147\u0bbd\u0001\u0000\u0000\u0000\u0149\u0bc5\u0001\u0000\u0000"+ + "\u0000\u014b\u0bd2\u0001\u0000\u0000\u0000\u014d\u0bf2\u0001\u0000\u0000"+ + "\u0000\u014f\u0bff\u0001\u0000\u0000\u0000\u0151\u0c0c\u0001\u0000\u0000"+ + "\u0000\u0153\u0c19\u0001\u0000\u0000\u0000\u0155\u0c2b\u0001\u0000\u0000"+ + "\u0000\u0157\u0c4c\u0001\u0000\u0000\u0000\u0159\u0c59\u0001\u0000\u0000"+ + "\u0000\u015b\u0c60\u0001\u0000\u0000\u0000\u015d\u0c6c\u0001\u0000\u0000"+ + "\u0000\u015f\u0c72\u0001\u0000\u0000\u0000\u0161\u0c77\u0001\u0000\u0000"+ + "\u0000\u0163\u0c80\u0001\u0000\u0000\u0000\u0165\u0c85\u0001\u0000\u0000"+ + "\u0000\u0167\u0c9c\u0001\u0000\u0000\u0000\u0169\u0cb8\u0001\u0000\u0000"+ + "\u0000\u016b\u0cbc\u0001\u0000\u0000\u0000\u016d\u0cc7\u0001\u0000\u0000"+ + "\u0000\u016f\u0ccb\u0001\u0000\u0000\u0000\u0171\u0cd3\u0001\u0000\u0000"+ + "\u0000\u0173\u0cdb\u0001\u0000\u0000\u0000\u0175\u0ce3\u0001\u0000\u0000"+ + "\u0000\u0177\u0cec\u0001\u0000\u0000\u0000\u0179\u0cf6\u0001\u0000\u0000"+ + "\u0000\u017b\u0d01\u0001\u0000\u0000\u0000\u017d\u0d0a\u0001\u0000\u0000"+ + "\u0000\u017f\u0d12\u0001\u0000\u0000\u0000\u0181\u0d1a\u0001\u0000\u0000"+ + "\u0000\u0183\u0d21\u0001\u0000\u0000\u0000\u0185\u0d28\u0001\u0000\u0000"+ + "\u0000\u0187\u0d32\u0001\u0000\u0000\u0000\u0189\u0d3d\u0001\u0000\u0000"+ + "\u0000\u018b\u0d48\u0001\u0000\u0000\u0000\u018d\u0d50\u0001\u0000\u0000"+ + "\u0000\u018f\u0d56\u0001\u0000\u0000\u0000\u0191\u0d5c\u0001\u0000\u0000"+ + "\u0000\u0193\u0d64\u0001\u0000\u0000\u0000\u0195\u0d69\u0001\u0000\u0000"+ + "\u0000\u0197\u0d72\u0001\u0000\u0000\u0000\u0199\u0d7d\u0001\u0000\u0000"+ + "\u0000\u019b\u0d85\u0001\u0000\u0000\u0000\u019d\u0d90\u0001\u0000\u0000"+ + "\u0000\u019f\u0d9e\u0001\u0000\u0000\u0000\u01a1\u0daa\u0001\u0000\u0000"+ + "\u0000\u01a3\u0db5\u0001\u0000\u0000\u0000\u01a5\u0dbd\u0001\u0000\u0000"+ + "\u0000\u01a7\u0dd3\u0001\u0000\u0000\u0000\u01a9\u0ddb\u0001\u0000\u0000"+ + "\u0000\u01ab\u0de6\u0001\u0000\u0000\u0000\u01ad\u0def\u0001\u0000\u0000"+ + "\u0000\u01af\u0df8\u0001\u0000\u0000\u0000\u01b1\u0dfb\u0001\u0000\u0000"+ + "\u0000\u01b3\u0e02\u0001\u0000\u0000\u0000\u01b5\u0e09\u0001\u0000\u0000"+ + "\u0000\u01b7\u0e0e\u0001\u0000\u0000\u0000\u01b9\u0e16\u0001\u0000\u0000"+ + "\u0000\u01bb\u0e27\u0001\u0000\u0000\u0000\u01bd\u0e3d\u0001\u0000\u0000"+ + "\u0000\u01bf\u0e42\u0001\u0000\u0000\u0000\u01c1\u0e4a\u0001\u0000\u0000"+ + "\u0000\u01c3\u0e4f\u0001\u0000\u0000\u0000\u01c5\u0e56\u0001\u0000\u0000"+ + "\u0000\u01c7\u0e5f\u0001\u0000\u0000\u0000\u01c9\u0e69\u0001\u0000\u0000"+ + "\u0000\u01cb\u0e6d\u0001\u0000\u0000\u0000\u01cd\u0e76\u0001\u0000\u0000"+ + "\u0000\u01cf\u0e7d\u0001\u0000\u0000\u0000\u01d1\u0e84\u0001\u0000\u0000"+ + "\u0000\u01d3\u0e8a\u0001\u0000\u0000\u0000\u01d5\u0e91\u0001\u0000\u0000"+ + "\u0000\u01d7\u0e9b\u0001\u0000\u0000\u0000\u01d9\u0ea3\u0001\u0000\u0000"+ + "\u0000\u01db\u0ead\u0001\u0000\u0000\u0000\u01dd\u0eb7\u0001\u0000\u0000"+ + "\u0000\u01df\u0ebc\u0001\u0000\u0000\u0000\u01e1\u0ec4\u0001\u0000\u0000"+ + "\u0000\u01e3\u0ecd\u0001\u0000\u0000\u0000\u01e5\u0ed4\u0001\u0000\u0000"+ + "\u0000\u01e7\u0ed8\u0001\u0000\u0000\u0000\u01e9\u0ee0\u0001\u0000\u0000"+ + "\u0000\u01eb\u0ee9\u0001\u0000\u0000\u0000\u01ed\u0ef3\u0001\u0000\u0000"+ + "\u0000\u01ef\u0efc\u0001\u0000\u0000\u0000\u01f1\u0f04\u0001\u0000\u0000"+ + "\u0000\u01f3\u0f0a\u0001\u0000\u0000\u0000\u01f5\u0f10\u0001\u0000\u0000"+ + "\u0000\u01f7\u0f17\u0001\u0000\u0000\u0000\u01f9\u0f1e\u0001\u0000\u0000"+ + "\u0000\u01fb\u0f24\u0001\u0000\u0000\u0000\u01fd\u0f2a\u0001\u0000\u0000"+ + "\u0000\u01ff\u0f30\u0001\u0000\u0000\u0000\u0201\u0f36\u0001\u0000\u0000"+ + "\u0000\u0203\u0f40\u0001\u0000\u0000\u0000\u0205\u0f44\u0001\u0000\u0000"+ + "\u0000\u0207\u0f4a\u0001\u0000\u0000\u0000\u0209\u0f52\u0001\u0000\u0000"+ + "\u0000\u020b\u0f59\u0001\u0000\u0000\u0000\u020d\u0f61\u0001\u0000\u0000"+ + "\u0000\u020f\u0f69\u0001\u0000\u0000\u0000\u0211\u0f6f\u0001\u0000\u0000"+ + "\u0000\u0213\u0f74\u0001\u0000\u0000\u0000\u0215\u0f7b\u0001\u0000\u0000"+ + "\u0000\u0217\u0f80\u0001\u0000\u0000\u0000\u0219\u0f85\u0001\u0000\u0000"+ + "\u0000\u021b\u0f8e\u0001\u0000\u0000\u0000\u021d\u0f95\u0001\u0000\u0000"+ + "\u0000\u021f\u0f97\u0001\u0000\u0000\u0000\u0221\u0f9f\u0001\u0000\u0000"+ + "\u0000\u0223\u0fa9\u0001\u0000\u0000\u0000\u0225\u0fad\u0001\u0000\u0000"+ + "\u0000\u0227\u0fb4\u0001\u0000\u0000\u0000\u0229\u0fb7\u0001\u0000\u0000"+ + "\u0000\u022b\u0fbc\u0001\u0000\u0000\u0000\u022d\u0fc2\u0001\u0000\u0000"+ + "\u0000\u022f\u0fca\u0001\u0000\u0000\u0000\u0231\u0fd3\u0001\u0000\u0000"+ + "\u0000\u0233\u0fd9\u0001\u0000\u0000\u0000\u0235\u0fe2\u0001\u0000\u0000"+ + "\u0000\u0237\u0fea\u0001\u0000\u0000\u0000\u0239\u0ff1\u0001\u0000\u0000"+ + "\u0000\u023b\u0ffb\u0001\u0000\u0000\u0000\u023d\u1000\u0001\u0000\u0000"+ + "\u0000\u023f\u1005\u0001\u0000\u0000\u0000\u0241\u100a\u0001\u0000\u0000"+ + "\u0000\u0243\u1013\u0001\u0000\u0000\u0000\u0245\u101a\u0001\u0000\u0000"+ + "\u0000\u0247\u1020\u0001\u0000\u0000\u0000\u0249\u102a\u0001\u0000\u0000"+ + "\u0000\u024b\u1034\u0001\u0000\u0000\u0000\u024d\u1043\u0001\u0000\u0000"+ + "\u0000\u024f\u104c\u0001\u0000\u0000\u0000\u0251\u104f\u0001\u0000\u0000"+ + "\u0000\u0253\u1059\u0001\u0000\u0000\u0000\u0255\u1063\u0001\u0000\u0000"+ + "\u0000\u0257\u1069\u0001\u0000\u0000\u0000\u0259\u1073\u0001\u0000\u0000"+ + "\u0000\u025b\u1079\u0001\u0000\u0000\u0000\u025d\u1082\u0001\u0000\u0000"+ + "\u0000\u025f\u108d\u0001\u0000\u0000\u0000\u0261\u1097\u0001\u0000\u0000"+ + "\u0000\u0263\u109d\u0001\u0000\u0000\u0000\u0265\u10a3\u0001\u0000\u0000"+ + "\u0000\u0267\u10a9\u0001\u0000\u0000\u0000\u0269\u10b5\u0001\u0000\u0000"+ + "\u0000\u026b\u10bc\u0001\u0000\u0000\u0000\u026d\u10c5\u0001\u0000\u0000"+ + "\u0000\u026f\u10d2\u0001\u0000\u0000\u0000\u0271\u10da\u0001\u0000\u0000"+ + "\u0000\u0273\u10de\u0001\u0000\u0000\u0000\u0275\u10e6\u0001\u0000\u0000"+ + "\u0000\u0277\u10f0\u0001\u0000\u0000\u0000\u0279\u10fd\u0001\u0000\u0000"+ + "\u0000\u027b\u1106\u0001\u0000\u0000\u0000\u027d\u110b\u0001\u0000\u0000"+ + "\u0000\u027f\u1113\u0001\u0000\u0000\u0000\u0281\u1116\u0001\u0000\u0000"+ + "\u0000\u0283\u1120\u0001\u0000\u0000\u0000\u0285\u1128\u0001\u0000\u0000"+ + "\u0000\u0287\u112d\u0001\u0000\u0000\u0000\u0289\u112f\u0001\u0000\u0000"+ + "\u0000\u028b\u1133\u0001\u0000\u0000\u0000\u028d\u113e\u0001\u0000\u0000"+ + "\u0000\u028f\u1147\u0001\u0000\u0000\u0000\u0291\u114d\u0001\u0000\u0000"+ + "\u0000\u0293\u1159\u0001\u0000\u0000\u0000\u0295\u1162\u0001\u0000\u0000"+ + "\u0000\u0297\u1168\u0001\u0000\u0000\u0000\u0299\u116d\u0001\u0000\u0000"+ + "\u0000\u029b\u1175\u0001\u0000\u0000\u0000\u029d\u117d\u0001\u0000\u0000"+ + "\u0000\u029f\u1183\u0001\u0000\u0000\u0000\u02a1\u1188\u0001\u0000\u0000"+ + "\u0000\u02a3\u118f\u0001\u0000\u0000\u0000\u02a5\u1194\u0001\u0000\u0000"+ + "\u0000\u02a7\u119a\u0001\u0000\u0000\u0000\u02a9\u119f\u0001\u0000\u0000"+ + "\u0000\u02ab\u11a5\u0001\u0000\u0000\u0000\u02ad\u11ac\u0001\u0000\u0000"+ + "\u0000\u02af\u11af\u0001\u0000\u0000\u0000\u02b1\u11b4\u0001\u0000\u0000"+ + "\u0000\u02b3\u11ba\u0001\u0000\u0000\u0000\u02b5\u11c4\u0001\u0000\u0000"+ + "\u0000\u02b7\u11d3\u0001\u0000\u0000\u0000\u02b9\u11dc\u0001\u0000\u0000"+ + "\u0000\u02bb\u11e4\u0001\u0000\u0000\u0000\u02bd\u11e9\u0001\u0000\u0000"+ + "\u0000\u02bf\u11f0\u0001\u0000\u0000\u0000\u02c1\u11f6\u0001\u0000\u0000"+ + "\u0000\u02c3\u11f8\u0001\u0000\u0000\u0000\u02c5\u11fd\u0001\u0000\u0000"+ + "\u0000\u02c7\u1201\u0001\u0000\u0000\u0000\u02c9\u1209\u0001\u0000\u0000"+ + "\u0000\u02cb\u120f\u0001\u0000\u0000\u0000\u02cd\u121c\u0001\u0000\u0000"+ + "\u0000\u02cf\u1224\u0001\u0000\u0000\u0000\u02d1\u1228\u0001\u0000\u0000"+ + "\u0000\u02d3\u1231\u0001\u0000\u0000\u0000\u02d5\u1238\u0001\u0000\u0000"+ + "\u0000\u02d7\u123e\u0001\u0000\u0000\u0000\u02d9\u124d\u0001\u0000\u0000"+ + "\u0000\u02db\u1262\u0001\u0000\u0000\u0000\u02dd\u126f\u0001\u0000\u0000"+ + "\u0000\u02df\u1276\u0001\u0000\u0000\u0000\u02e1\u127a\u0001\u0000\u0000"+ + "\u0000\u02e3\u1281\u0001\u0000\u0000\u0000\u02e5\u128a\u0001\u0000\u0000"+ + "\u0000\u02e7\u128e\u0001\u0000\u0000\u0000\u02e9\u1293\u0001\u0000\u0000"+ + "\u0000\u02eb\u129c\u0001\u0000\u0000\u0000\u02ed\u12a3\u0001\u0000\u0000"+ + "\u0000\u02ef\u12aa\u0001\u0000\u0000\u0000\u02f1\u12b0\u0001\u0000\u0000"+ + "\u0000\u02f3\u12b5\u0001\u0000\u0000\u0000\u02f5\u12ba\u0001\u0000\u0000"+ + "\u0000\u02f7\u12c3\u0001\u0000\u0000\u0000\u02f9\u12c9\u0001\u0000\u0000"+ + "\u0000\u02fb\u12ce\u0001\u0000\u0000\u0000\u02fd\u12d4\u0001\u0000\u0000"+ + "\u0000\u02ff\u12dd\u0001\u0000\u0000\u0000\u0301\u12e5\u0001\u0000\u0000"+ + "\u0000\u0303\u12eb\u0001\u0000\u0000\u0000\u0305\u12f1\u0001\u0000\u0000"+ + "\u0000\u0307\u12f9\u0001\u0000\u0000\u0000\u0309\u12fd\u0001\u0000\u0000"+ + "\u0000\u030b\u1302\u0001\u0000\u0000\u0000\u030d\u1305\u0001\u0000\u0000"+ + "\u0000\u030f\u1310\u0001\u0000\u0000\u0000\u0311\u131d\u0001\u0000\u0000"+ + "\u0000\u0313\u1322\u0001\u0000\u0000\u0000\u0315\u132c\u0001\u0000\u0000"+ + "\u0000\u0317\u1337\u0001\u0000\u0000\u0000\u0319\u133b\u0001\u0000\u0000"+ + "\u0000\u031b\u1343\u0001\u0000\u0000\u0000\u031d\u134a\u0001\u0000\u0000"+ + "\u0000\u031f\u1352\u0001\u0000\u0000\u0000\u0321\u1359\u0001\u0000\u0000"+ + "\u0000\u0323\u135e\u0001\u0000\u0000\u0000\u0325\u1367\u0001\u0000\u0000"+ + "\u0000\u0327\u136e\u0001\u0000\u0000\u0000\u0329\u1374\u0001\u0000\u0000"+ + "\u0000\u032b\u137b\u0001\u0000\u0000\u0000\u032d\u1383\u0001\u0000\u0000"+ + "\u0000\u032f\u138a\u0001\u0000\u0000\u0000\u0331\u1397\u0001\u0000\u0000"+ + "\u0000\u0333\u139e\u0001\u0000\u0000\u0000\u0335\u13a1\u0001\u0000\u0000"+ + "\u0000\u0337\u13a5\u0001\u0000\u0000\u0000\u0339\u13ac\u0001\u0000\u0000"+ + "\u0000\u033b\u13b1\u0001\u0000\u0000\u0000\u033d\u13b5\u0001\u0000\u0000"+ + "\u0000\u033f\u13b8\u0001\u0000\u0000\u0000\u0341\u13bd\u0001\u0000\u0000"+ + "\u0000\u0343\u13c2\u0001\u0000\u0000\u0000\u0345\u13cc\u0001\u0000\u0000"+ + "\u0000\u0347\u13d5\u0001\u0000\u0000\u0000\u0349\u13dc\u0001\u0000\u0000"+ + "\u0000\u034b\u13e4\u0001\u0000\u0000\u0000\u034d\u13e7\u0001\u0000\u0000"+ + "\u0000\u034f\u13ed\u0001\u0000\u0000\u0000\u0351\u13f6\u0001\u0000\u0000"+ + "\u0000\u0353\u1401\u0001\u0000\u0000\u0000\u0355\u1408\u0001\u0000\u0000"+ + "\u0000\u0357\u140c\u0001\u0000\u0000\u0000\u0359\u1412\u0001\u0000\u0000"+ + "\u0000\u035b\u1419\u0001\u0000\u0000\u0000\u035d\u141e\u0001\u0000\u0000"+ + "\u0000\u035f\u1427\u0001\u0000\u0000\u0000\u0361\u142f\u0001\u0000\u0000"+ + "\u0000\u0363\u143a\u0001\u0000\u0000\u0000\u0365\u1440\u0001\u0000\u0000"+ + "\u0000\u0367\u1444\u0001\u0000\u0000\u0000\u0369\u144e\u0001\u0000\u0000"+ + "\u0000\u036b\u145d\u0001\u0000\u0000\u0000\u036d\u146c\u0001\u0000\u0000"+ + "\u0000\u036f\u1487\u0001\u0000\u0000\u0000\u0371\u14a2\u0001\u0000\u0000"+ + "\u0000\u0373\u14ba\u0001\u0000\u0000\u0000\u0375\u14d4\u0001\u0000\u0000"+ + "\u0000\u0377\u14df\u0001\u0000\u0000\u0000\u0379\u14e6\u0001\u0000\u0000"+ + "\u0000\u037b\u14ee\u0001\u0000\u0000\u0000\u037d\u14f8\u0001\u0000\u0000"+ + "\u0000\u037f\u14ff\u0001\u0000\u0000\u0000\u0381\u1508\u0001\u0000\u0000"+ + "\u0000\u0383\u150d\u0001\u0000\u0000\u0000\u0385\u151a\u0001\u0000\u0000"+ + "\u0000\u0387\u152a\u0001\u0000\u0000\u0000\u0389\u153a\u0001\u0000\u0000"+ + "\u0000\u038b\u1542\u0001\u0000\u0000\u0000\u038d\u1548\u0001\u0000\u0000"+ + "\u0000\u038f\u154e\u0001\u0000\u0000\u0000\u0391\u1552\u0001\u0000\u0000"+ + "\u0000\u0393\u155b\u0001\u0000\u0000\u0000\u0395\u1563\u0001\u0000\u0000"+ + "\u0000\u0397\u1569\u0001\u0000\u0000\u0000\u0399\u1573\u0001\u0000\u0000"+ + "\u0000\u039b\u157d\u0001\u0000\u0000\u0000\u039d\u1584\u0001\u0000\u0000"+ + "\u0000\u039f\u158d\u0001\u0000\u0000\u0000\u03a1\u1595\u0001\u0000\u0000"+ + "\u0000\u03a3\u159e\u0001\u0000\u0000\u0000\u03a5\u15a7\u0001\u0000\u0000"+ + "\u0000\u03a7\u15af\u0001\u0000\u0000\u0000\u03a9\u15b5\u0001\u0000\u0000"+ + "\u0000\u03ab\u15c0\u0001\u0000\u0000\u0000\u03ad\u15cb\u0001\u0000\u0000"+ + "\u0000\u03af\u15d5\u0001\u0000\u0000\u0000\u03b1\u15dc\u0001\u0000\u0000"+ + "\u0000\u03b3\u15e8\u0001\u0000\u0000\u0000\u03b5\u15ee\u0001\u0000\u0000"+ + "\u0000\u03b7\u15f4\u0001\u0000\u0000\u0000\u03b9\u15f9\u0001\u0000\u0000"+ + "\u0000\u03bb\u15fe\u0001\u0000\u0000\u0000\u03bd\u1604\u0001\u0000\u0000"+ + "\u0000\u03bf\u1609\u0001\u0000\u0000\u0000\u03c1\u1612\u0001\u0000\u0000"+ + "\u0000\u03c3\u161a\u0001\u0000\u0000\u0000\u03c5\u1624\u0001\u0000\u0000"+ + "\u0000\u03c7\u1628\u0001\u0000\u0000\u0000\u03c9\u1633\u0001\u0000\u0000"+ + "\u0000\u03cb\u163f\u0001\u0000\u0000\u0000\u03cd\u1647\u0001\u0000\u0000"+ + "\u0000\u03cf\u1651\u0001\u0000\u0000\u0000\u03d1\u165b\u0001\u0000\u0000"+ + "\u0000\u03d3\u1666\u0001\u0000\u0000\u0000\u03d5\u1675\u0001\u0000\u0000"+ + "\u0000\u03d7\u167d\u0001\u0000\u0000\u0000\u03d9\u1688\u0001\u0000\u0000"+ + "\u0000\u03db\u1691\u0001\u0000\u0000\u0000\u03dd\u169a\u0001\u0000\u0000"+ + "\u0000\u03df\u16a3\u0001\u0000\u0000\u0000\u03e1\u16ab\u0001\u0000\u0000"+ + "\u0000\u03e3\u16b4\u0001\u0000\u0000\u0000\u03e5\u16bc\u0001\u0000\u0000"+ + "\u0000\u03e7\u16c3\u0001\u0000\u0000\u0000\u03e9\u16ce\u0001\u0000\u0000"+ + "\u0000\u03eb\u16d6\u0001\u0000\u0000\u0000\u03ed\u16de\u0001\u0000\u0000"+ + "\u0000\u03ef\u16e4\u0001\u0000\u0000\u0000\u03f1\u16ec\u0001\u0000\u0000"+ + "\u0000\u03f3\u16f5\u0001\u0000\u0000\u0000\u03f5\u16fc\u0001\u0000\u0000"+ + "\u0000\u03f7\u1703\u0001\u0000\u0000\u0000\u03f9\u1718\u0001\u0000\u0000"+ + "\u0000\u03fb\u1728\u0001\u0000\u0000\u0000\u03fd\u173e\u0001\u0000\u0000"+ + "\u0000\u03ff\u1750\u0001\u0000\u0000\u0000\u0401\u175a\u0001\u0000\u0000"+ + "\u0000\u0403\u1762\u0001\u0000\u0000\u0000\u0405\u1769\u0001\u0000\u0000"+ + "\u0000\u0407\u176f\u0001\u0000\u0000\u0000\u0409\u1774\u0001\u0000\u0000"+ + "\u0000\u040b\u177d\u0001\u0000\u0000\u0000\u040d\u1784\u0001\u0000\u0000"+ + "\u0000\u040f\u178c\u0001\u0000\u0000\u0000\u0411\u179c\u0001\u0000\u0000"+ + "\u0000\u0413\u17a9\u0001\u0000\u0000\u0000\u0415\u17b8\u0001\u0000\u0000"+ + "\u0000\u0417\u17bc\u0001\u0000\u0000\u0000\u0419\u17c6\u0001\u0000\u0000"+ + "\u0000\u041b\u17d1\u0001\u0000\u0000\u0000\u041d\u17d6\u0001\u0000\u0000"+ + "\u0000\u041f\u17db\u0001\u0000\u0000\u0000\u0421\u17e5\u0001\u0000\u0000"+ + "\u0000\u0423\u17eb\u0001\u0000\u0000\u0000\u0425\u17f2\u0001\u0000\u0000"+ + "\u0000\u0427\u17fe\u0001\u0000\u0000\u0000\u0429\u1804\u0001\u0000\u0000"+ + "\u0000\u042b\u1812\u0001\u0000\u0000\u0000\u042d\u181d\u0001\u0000\u0000"+ + "\u0000\u042f\u182a\u0001\u0000\u0000\u0000\u0431\u1831\u0001\u0000\u0000"+ + "\u0000\u0433\u1838\u0001\u0000\u0000\u0000\u0435\u183f\u0001\u0000\u0000"+ + "\u0000\u0437\u1847\u0001\u0000\u0000\u0000\u0439\u1850\u0001\u0000\u0000"+ + "\u0000\u043b\u1857\u0001\u0000\u0000\u0000\u043d\u185c\u0001\u0000\u0000"+ + "\u0000\u043f\u1866\u0001\u0000\u0000\u0000\u0441\u186f\u0001\u0000\u0000"+ + "\u0000\u0443\u1879\u0001\u0000\u0000\u0000\u0445\u1886\u0001\u0000\u0000"+ + "\u0000\u0447\u1892\u0001\u0000\u0000\u0000\u0449\u189a\u0001\u0000\u0000"+ + "\u0000\u044b\u18a7\u0001\u0000\u0000\u0000\u044d\u18ab\u0001\u0000\u0000"+ + "\u0000\u044f\u18b1\u0001\u0000\u0000\u0000\u0451\u18b6\u0001\u0000\u0000"+ + "\u0000\u0453\u18bc\u0001\u0000\u0000\u0000\u0455\u18c1\u0001\u0000\u0000"+ + "\u0000\u0457\u18c9\u0001\u0000\u0000\u0000\u0459\u18d0\u0001\u0000\u0000"+ + "\u0000\u045b\u18d5\u0001\u0000\u0000\u0000\u045d\u18da\u0001\u0000\u0000"+ + "\u0000\u045f\u18e3\u0001\u0000\u0000\u0000\u0461\u18ec\u0001\u0000\u0000"+ + "\u0000\u0463\u18f1\u0001\u0000\u0000\u0000\u0465\u18f8\u0001\u0000\u0000"+ + "\u0000\u0467\u18fe\u0001\u0000\u0000\u0000\u0469\u1907\u0001\u0000\u0000"+ + "\u0000\u046b\u1915\u0001\u0000\u0000\u0000\u046d\u1922\u0001\u0000\u0000"+ + "\u0000\u046f\u1926\u0001\u0000\u0000\u0000\u0471\u192e\u0001\u0000\u0000"+ + "\u0000\u0473\u1937\u0001\u0000\u0000\u0000\u0475\u1944\u0001\u0000\u0000"+ + "\u0000\u0477\u194d\u0001\u0000\u0000\u0000\u0479\u1958\u0001\u0000\u0000"+ + "\u0000\u047b\u195d\u0001\u0000\u0000\u0000\u047d\u1964\u0001\u0000\u0000"+ + "\u0000\u047f\u196a\u0001\u0000\u0000\u0000\u0481\u1970\u0001\u0000\u0000"+ + "\u0000\u0483\u197a\u0001\u0000\u0000\u0000\u0485\u1981\u0001\u0000\u0000"+ + "\u0000\u0487\u198c\u0001\u0000\u0000\u0000\u0489\u1997\u0001\u0000\u0000"+ + "\u0000\u048b\u19a3\u0001\u0000\u0000\u0000\u048d\u19a9\u0001\u0000\u0000"+ + "\u0000\u048f\u19b0\u0001\u0000\u0000\u0000\u0491\u19b8\u0001\u0000\u0000"+ + "\u0000\u0493\u19bf\u0001\u0000\u0000\u0000\u0495\u19c9\u0001\u0000\u0000"+ + "\u0000\u0497\u19cf\u0001\u0000\u0000\u0000\u0499\u19df\u0001\u0000\u0000"+ + "\u0000\u049b\u19e7\u0001\u0000\u0000\u0000\u049d\u19f3\u0001\u0000\u0000"+ + "\u0000\u049f\u1a00\u0001\u0000\u0000\u0000\u04a1\u1a0a\u0001\u0000\u0000"+ + "\u0000\u04a3\u1a0e\u0001\u0000\u0000\u0000\u04a5\u1a18\u0001\u0000\u0000"+ + "\u0000\u04a7\u1a1e\u0001\u0000\u0000\u0000\u04a9\u1a25\u0001\u0000\u0000"+ + "\u0000\u04ab\u1a31\u0001\u0000\u0000\u0000\u04ad\u1a37\u0001\u0000\u0000"+ + "\u0000\u04af\u1a42\u0001\u0000\u0000\u0000\u04b1\u1a4e\u0001\u0000\u0000"+ + "\u0000\u04b3\u1a59\u0001\u0000\u0000\u0000\u04b5\u1a5e\u0001\u0000\u0000"+ + "\u0000\u04b7\u1a67\u0001\u0000\u0000\u0000\u04b9\u1a71\u0001\u0000\u0000"+ + "\u0000\u04bb\u1a7b\u0001\u0000\u0000\u0000\u04bd\u1a80\u0001\u0000\u0000"+ + "\u0000\u04bf\u1a85\u0001\u0000\u0000\u0000\u04c1\u1a8a\u0001\u0000\u0000"+ + "\u0000\u04c3\u1a8f\u0001\u0000\u0000\u0000\u04c5\u1a99\u0001\u0000\u0000"+ + "\u0000\u04c7\u1aa7\u0001\u0000\u0000\u0000\u04c9\u1ab7\u0001\u0000\u0000"+ + "\u0000\u04cb\u1abe\u0001\u0000\u0000\u0000\u04cd\u1ac1\u0001\u0000\u0000"+ + "\u0000\u04cf\u1ac7\u0001\u0000\u0000\u0000\u04d1\u1ad7\u0001\u0000\u0000"+ + "\u0000\u04d3\u1ae0\u0001\u0000\u0000\u0000\u04d5\u1aec\u0001\u0000\u0000"+ + "\u0000\u04d7\u1aff\u0001\u0000\u0000\u0000\u04d9\u1b16\u0001\u0000\u0000"+ + "\u0000\u04db\u1b2f\u0001\u0000\u0000\u0000\u04dd\u1b39\u0001\u0000\u0000"+ + "\u0000\u04df\u1b44\u0001\u0000\u0000\u0000\u04e1\u1b4e\u0001\u0000\u0000"+ + "\u0000\u04e3\u1b5a\u0001\u0000\u0000\u0000\u04e5\u1b60\u0001\u0000\u0000"+ + "\u0000\u04e7\u1b68\u0001\u0000\u0000\u0000\u04e9\u1b78\u0001\u0000\u0000"+ + "\u0000\u04eb\u1b85\u0001\u0000\u0000\u0000\u04ed\u1b94\u0001\u0000\u0000"+ + "\u0000\u04ef\u1b99\u0001\u0000\u0000\u0000\u04f1\u1b9e\u0001\u0000\u0000"+ + "\u0000\u04f3\u1ba7\u0001\u0000\u0000\u0000\u04f5\u1baf\u0001\u0000\u0000"+ + "\u0000\u04f7\u1bb4\u0001\u0000\u0000\u0000\u04f9\u1bbc\u0001\u0000\u0000"+ + "\u0000\u04fb\u1bc6\u0001\u0000\u0000\u0000\u04fd\u1bd2\u0001\u0000\u0000"+ + "\u0000\u04ff\u1bd8\u0001\u0000\u0000\u0000\u0501\u1be4\u0001\u0000\u0000"+ + "\u0000\u0503\u1bea\u0001\u0000\u0000\u0000\u0505\u1bf1\u0001\u0000\u0000"+ + "\u0000\u0507\u1bf9\u0001\u0000\u0000\u0000\u0509\u1c02\u0001\u0000\u0000"+ + "\u0000\u050b\u1c0a\u0001\u0000\u0000\u0000\u050d\u1c11\u0001\u0000\u0000"+ + "\u0000\u050f\u1c17\u0001\u0000\u0000\u0000\u0511\u1c1e\u0001\u0000\u0000"+ + "\u0000\u0513\u1c24\u0001\u0000\u0000\u0000\u0515\u1c2a\u0001\u0000\u0000"+ + "\u0000\u0517\u1c2f\u0001\u0000\u0000\u0000\u0519\u1c49\u0001\u0000\u0000"+ + "\u0000\u051b\u1c60\u0001\u0000\u0000\u0000\u051d\u1c77\u0001\u0000\u0000"+ + "\u0000\u051f\u1c90\u0001\u0000\u0000\u0000\u0521\u1c96\u0001\u0000\u0000"+ + "\u0000\u0523\u1c9d\u0001\u0000\u0000\u0000\u0525\u1ca3\u0001\u0000\u0000"+ + "\u0000\u0527\u1cac\u0001\u0000\u0000\u0000\u0529\u1cb6\u0001\u0000\u0000"+ + "\u0000\u052b\u1cbc\u0001\u0000\u0000\u0000\u052d\u1cc3\u0001\u0000\u0000"+ + "\u0000\u052f\u1ccb\u0001\u0000\u0000\u0000\u0531\u1cd4\u0001\u0000\u0000"+ + "\u0000\u0533\u1cdc\u0001\u0000\u0000\u0000\u0535\u1ce5\u0001\u0000\u0000"+ + "\u0000\u0537\u1cee\u0001\u0000\u0000\u0000\u0539\u1cf6\u0001\u0000\u0000"+ + "\u0000\u053b\u1cfe\u0001\u0000\u0000\u0000\u053d\u1d03\u0001\u0000\u0000"+ + "\u0000\u053f\u1d0c\u0001\u0000\u0000\u0000\u0541\u1d11\u0001\u0000\u0000"+ + "\u0000\u0543\u1d1a\u0001\u0000\u0000\u0000\u0545\u1d20\u0001\u0000\u0000"+ + "\u0000\u0547\u1d2d\u0001\u0000\u0000\u0000\u0549\u1d34\u0001\u0000\u0000"+ + "\u0000\u054b\u1d39\u0001\u0000\u0000\u0000\u054d\u1d40\u0001\u0000\u0000"+ + "\u0000\u054f\u1d48\u0001\u0000\u0000\u0000\u0551\u1d4d\u0001\u0000\u0000"+ + "\u0000\u0553\u1d53\u0001\u0000\u0000\u0000\u0555\u1d58\u0001\u0000\u0000"+ + "\u0000\u0557\u1d5d\u0001\u0000\u0000\u0000\u0559\u1d61\u0001\u0000\u0000"+ + "\u0000\u055b\u1d66\u0001\u0000\u0000\u0000\u055d\u1d70\u0001\u0000\u0000"+ + "\u0000\u055f\u1d7c\u0001\u0000\u0000\u0000\u0561\u1d87\u0001\u0000\u0000"+ + "\u0000\u0563\u1d94\u0001\u0000\u0000\u0000\u0565\u1d9c\u0001\u0000\u0000"+ + "\u0000\u0567\u1da6\u0001\u0000\u0000\u0000\u0569\u1dac\u0001\u0000\u0000"+ + "\u0000\u056b\u1db4\u0001\u0000\u0000\u0000\u056d\u1dc0\u0001\u0000\u0000"+ + "\u0000\u056f\u1dce\u0001\u0000\u0000\u0000\u0571\u1dd8\u0001\u0000\u0000"+ + "\u0000\u0573\u1de4\u0001\u0000\u0000\u0000\u0575\u1dea\u0001\u0000\u0000"+ + "\u0000\u0577\u1df0\u0001\u0000\u0000\u0000\u0579\u1df7\u0001\u0000\u0000"+ + "\u0000\u057b\u1e01\u0001\u0000\u0000\u0000\u057d\u1e11\u0001\u0000\u0000"+ + "\u0000\u057f\u1e1d\u0001\u0000\u0000\u0000\u0581\u1e28\u0001\u0000\u0000"+ + "\u0000\u0583\u1e35\u0001\u0000\u0000\u0000\u0585\u1e3e\u0001\u0000\u0000"+ + "\u0000\u0587\u1e45\u0001\u0000\u0000\u0000\u0589\u1e4e\u0001\u0000\u0000"+ + "\u0000\u058b\u1e55\u0001\u0000\u0000\u0000\u058d\u1e5d\u0001\u0000\u0000"+ + "\u0000\u058f\u1e68\u0001\u0000\u0000\u0000\u0591\u1e79\u0001\u0000\u0000"+ + "\u0000\u0593\u1e83\u0001\u0000\u0000\u0000\u0595\u1e8a\u0001\u0000\u0000"+ + "\u0000\u0597\u1e93\u0001\u0000\u0000\u0000\u0599\u1ea0\u0001\u0000\u0000"+ + "\u0000\u059b\u1ea5\u0001\u0000\u0000\u0000\u059d\u1eac\u0001\u0000\u0000"+ + "\u0000\u059f\u1eb5\u0001\u0000\u0000\u0000\u05a1\u1eb8\u0001\u0000\u0000"+ + "\u0000\u05a3\u1ebf\u0001\u0000\u0000\u0000\u05a5\u1eca\u0001\u0000\u0000"+ + "\u0000\u05a7\u1ed3\u0001\u0000\u0000\u0000\u05a9\u1edc\u0001\u0000\u0000"+ + "\u0000\u05ab\u1ee4\u0001\u0000\u0000\u0000\u05ad\u1ef6\u0001\u0000\u0000"+ + "\u0000\u05af\u1f02\u0001\u0000\u0000\u0000\u05b1\u1f08\u0001\u0000\u0000"+ + "\u0000\u05b3\u1f10\u0001\u0000\u0000\u0000\u05b5\u1f17\u0001\u0000\u0000"+ + "\u0000\u05b7\u1f1d\u0001\u0000\u0000\u0000\u05b9\u1f22\u0001\u0000\u0000"+ + "\u0000\u05bb\u1f27\u0001\u0000\u0000\u0000\u05bd\u1f2e\u0001\u0000\u0000"+ + "\u0000\u05bf\u1f32\u0001\u0000\u0000\u0000\u05c1\u1f37\u0001\u0000\u0000"+ + "\u0000\u05c3\u1f44\u0001\u0000\u0000\u0000\u05c5\u1f4b\u0001\u0000\u0000"+ + "\u0000\u05c7\u1f58\u0001\u0000\u0000\u0000\u05c9\u1f60\u0001\u0000\u0000"+ + "\u0000\u05cb\u1f69\u0001\u0000\u0000\u0000\u05cd\u1f74\u0001\u0000\u0000"+ + "\u0000\u05cf\u1f7c\u0001\u0000\u0000\u0000\u05d1\u1f83\u0001\u0000\u0000"+ + "\u0000\u05d3\u1f8a\u0001\u0000\u0000\u0000\u05d5\u1f91\u0001\u0000\u0000"+ + "\u0000\u05d7\u1f98\u0001\u0000\u0000\u0000\u05d9\u1f9e\u0001\u0000\u0000"+ + "\u0000\u05db\u1fa6\u0001\u0000\u0000\u0000\u05dd\u1fb0\u0001\u0000\u0000"+ + "\u0000\u05df\u1fbc\u0001\u0000\u0000\u0000\u05e1\u1fc1\u0001\u0000\u0000"+ + "\u0000\u05e3\u1fc5\u0001\u0000\u0000\u0000\u05e5\u1fcb\u0001\u0000\u0000"+ + "\u0000\u05e7\u1fdd\u0001\u0000\u0000\u0000\u05e9\u1fe2\u0001\u0000\u0000"+ + "\u0000\u05eb\u1fe9\u0001\u0000\u0000\u0000\u05ed\u1ff0\u0001\u0000\u0000"+ + "\u0000\u05ef\u1ff7\u0001\u0000\u0000\u0000\u05f1\u1ffc\u0001\u0000\u0000"+ + "\u0000\u05f3\u2001\u0001\u0000\u0000\u0000\u05f5\u2006\u0001\u0000\u0000"+ + "\u0000\u05f7\u200b\u0001\u0000\u0000\u0000\u05f9\u2010\u0001\u0000\u0000"+ + "\u0000\u05fb\u2016\u0001\u0000\u0000\u0000\u05fd\u201b\u0001\u0000\u0000"+ + "\u0000\u05ff\u2020\u0001\u0000\u0000\u0000\u0601\u2028\u0001\u0000\u0000"+ + "\u0000\u0603\u2031\u0001\u0000\u0000\u0000\u0605\u2037\u0001\u0000\u0000"+ + "\u0000\u0607\u203e\u0001\u0000\u0000\u0000\u0609\u2044\u0001\u0000\u0000"+ + "\u0000\u060b\u204c\u0001\u0000\u0000\u0000\u060d\u2054\u0001\u0000\u0000"+ + "\u0000\u060f\u205b\u0001\u0000\u0000\u0000\u0611\u2063\u0001\u0000\u0000"+ + "\u0000\u0613\u206b\u0001\u0000\u0000\u0000\u0615\u2073\u0001\u0000\u0000"+ + "\u0000\u0617\u207f\u0001\u0000\u0000\u0000\u0619\u2086\u0001\u0000\u0000"+ + "\u0000\u061b\u208b\u0001\u0000\u0000\u0000\u061d\u2097\u0001\u0000\u0000"+ + "\u0000\u061f\u209e\u0001\u0000\u0000\u0000\u0621\u20a6\u0001\u0000\u0000"+ + "\u0000\u0623\u20af\u0001\u0000\u0000\u0000\u0625\u20bd\u0001\u0000\u0000"+ + "\u0000\u0627\u20c2\u0001\u0000\u0000\u0000\u0629\u20c9\u0001\u0000\u0000"+ + "\u0000\u062b\u20cd\u0001\u0000\u0000\u0000\u062d\u20cf\u0001\u0000\u0000"+ + "\u0000\u062f\u20d1\u0001\u0000\u0000\u0000\u0631\u20d4\u0001\u0000\u0000"+ + "\u0000\u0633\u20d6\u0001\u0000\u0000\u0000\u0635\u20d9\u0001\u0000\u0000"+ + "\u0000\u0637\u20db\u0001\u0000\u0000\u0000\u0639\u20dd\u0001\u0000\u0000"+ + "\u0000\u063b\u20df\u0001\u0000\u0000\u0000\u063d\u20e1\u0001\u0000\u0000"+ + "\u0000\u063f\u20e3\u0001\u0000\u0000\u0000\u0641\u20ed\u0001\u0000\u0000"+ + "\u0000\u0643\u20f1\u0001\u0000\u0000\u0000\u0645\u210d\u0001\u0000\u0000"+ + "\u0000\u0647\u211c\u0001\u0000\u0000\u0000\u0649\u211f\u0001\u0000\u0000"+ + "\u0000\u064b\u2121\u0001\u0000\u0000\u0000\u064d\u2123\u0001\u0000\u0000"+ + "\u0000\u064f\u2125\u0001\u0000\u0000\u0000\u0651\u212c\u0001\u0000\u0000"+ + "\u0000\u0653\u2132\u0001\u0000\u0000\u0000\u0655\u2139\u0001\u0000\u0000"+ + "\u0000\u0657\u213b\u0001\u0000\u0000\u0000\u0659\u213e\u0001\u0000\u0000"+ + "\u0000\u065b\u2141\u0001\u0000\u0000\u0000\u065d\u2144\u0001\u0000\u0000"+ + "\u0000\u065f\u2147\u0001\u0000\u0000\u0000\u0661\u2149\u0001\u0000\u0000"+ + "\u0000\u0663\u214b\u0001\u0000\u0000\u0000\u0665\u214e\u0001\u0000\u0000"+ + "\u0000\u0667\u2151\u0001\u0000\u0000\u0000\u0669\u2153\u0001\u0000\u0000"+ + "\u0000\u066b\u2155\u0001\u0000\u0000\u0000\u066d\u2158\u0001\u0000\u0000"+ + "\u0000\u066f\u215a\u0001\u0000\u0000\u0000\u0671\u215d\u0001\u0000\u0000"+ + "\u0000\u0673\u2160\u0001\u0000\u0000\u0000\u0675\u2162\u0001\u0000\u0000"+ + "\u0000\u0677\u2165\u0001\u0000\u0000\u0000\u0679\u2168\u0001\u0000\u0000"+ + "\u0000\u067b\u216c\u0001\u0000\u0000\u0000\u067d\u216f\u0001\u0000\u0000"+ + "\u0000\u067f\u2172\u0001\u0000\u0000\u0000\u0681\u2176\u0001\u0000\u0000"+ + "\u0000\u0683\u217a\u0001\u0000\u0000\u0000\u0685\u217c\u0001\u0000\u0000"+ + "\u0000\u0687\u217f\u0001\u0000\u0000\u0000\u0689\u2182\u0001\u0000\u0000"+ + "\u0000\u068b\u2185\u0001\u0000\u0000\u0000\u068d\u2188\u0001\u0000\u0000"+ + "\u0000\u068f\u218c\u0001\u0000\u0000\u0000\u0691\u218f\u0001\u0000\u0000"+ + "\u0000\u0693\u2193\u0001\u0000\u0000\u0000\u0695\u2197\u0001\u0000\u0000"+ + "\u0000\u0697\u2199\u0001\u0000\u0000\u0000\u0699\u219b\u0001\u0000\u0000"+ + "\u0000\u069b\u219d\u0001\u0000\u0000\u0000\u069d\u21a0\u0001\u0000\u0000"+ + "\u0000\u069f\u21a4\u0001\u0000\u0000\u0000\u06a1\u21a7\u0001\u0000\u0000"+ + "\u0000\u06a3\u21a9\u0001\u0000\u0000\u0000\u06a5\u21ab\u0001\u0000\u0000"+ + "\u0000\u06a7\u21ae\u0001\u0000\u0000\u0000\u06a9\u21b1\u0001\u0000\u0000"+ + "\u0000\u06ab\u21b4\u0001\u0000\u0000\u0000\u06ad\u21b7\u0001\u0000\u0000"+ + "\u0000\u06af\u21b9\u0001\u0000\u0000\u0000\u06b1\u21bb\u0001\u0000\u0000"+ + "\u0000\u06b3\u21be\u0001\u0000\u0000\u0000\u06b5\u21c3\u0001\u0000\u0000"+ + "\u0000\u06b7\u21c7\u0001\u0000\u0000\u0000\u06b9\u21cc\u0001\u0000\u0000"+ + "\u0000\u06bb\u21d0\u0001\u0000\u0000\u0000\u06bd\u21d3\u0001\u0000\u0000"+ + "\u0000\u06bf\u21d6\u0001\u0000\u0000\u0000\u06c1\u06c3\u0007\u0000\u0000"+ + "\u0000\u06c2\u06c1\u0001\u0000\u0000\u0000\u06c3\u06c4\u0001\u0000\u0000"+ + "\u0000\u06c4\u06c2\u0001\u0000\u0000\u0000\u06c4\u06c5\u0001\u0000\u0000"+ + "\u0000\u06c5\u06c6\u0001\u0000\u0000\u0000\u06c6\u06c7\u0006\u0000\u0000"+ + "\u0000\u06c7\u0002\u0001\u0000\u0000\u0000\u06c8\u06c9\u0005/\u0000\u0000"+ + "\u06c9\u06ca\u0005*\u0000\u0000\u06ca\u06ce\u0001\u0000\u0000\u0000\u06cb"+ + "\u06cd\t\u0000\u0000\u0000\u06cc\u06cb\u0001\u0000\u0000\u0000\u06cd\u06d0"+ + "\u0001\u0000\u0000\u0000\u06ce\u06cf\u0001\u0000\u0000\u0000\u06ce\u06cc"+ + "\u0001\u0000\u0000\u0000\u06cf\u06d1\u0001\u0000\u0000\u0000\u06d0\u06ce"+ + "\u0001\u0000\u0000\u0000\u06d1\u06d2\u0005*\u0000\u0000\u06d2\u06d3\u0005"+ + "/\u0000\u0000\u06d3\u06d4\u0001\u0000\u0000\u0000\u06d4\u06d5\u0006\u0001"+ + "\u0001\u0000\u06d5\u0004\u0001\u0000\u0000\u0000\u06d6\u06d7\u0005-\u0000"+ + "\u0000\u06d7\u06d8\u0005-\u0000\u0000\u06d8\u06dc\u0001\u0000\u0000\u0000"+ + "\u06d9\u06db\t\u0000\u0000\u0000\u06da\u06d9\u0001\u0000\u0000\u0000\u06db"+ + "\u06de\u0001\u0000\u0000\u0000\u06dc\u06dd\u0001\u0000\u0000\u0000\u06dc"+ + "\u06da\u0001\u0000\u0000\u0000\u06dd\u06df\u0001\u0000\u0000\u0000\u06de"+ + "\u06dc\u0001\u0000\u0000\u0000\u06df\u06e0\u0005\n\u0000\u0000\u06e0\u06e1"+ + "\u0001\u0000\u0000\u0000\u06e1\u06e2\u0006\u0002\u0001\u0000\u06e2\u0006"+ + "\u0001\u0000\u0000\u0000\u06e3\u06e4\u0007\u0001\u0000\u0000\u06e4\b\u0001"+ + "\u0000\u0000\u0000\u06e5\u06e6\u0007\u0002\u0000\u0000\u06e6\n\u0001\u0000"+ + "\u0000\u0000\u06e7\u06e8\u0007\u0003\u0000\u0000\u06e8\f\u0001\u0000\u0000"+ + "\u0000\u06e9\u06ea\u0007\u0004\u0000\u0000\u06ea\u000e\u0001\u0000\u0000"+ + "\u0000\u06eb\u06ec\u0007\u0005\u0000\u0000\u06ec\u0010\u0001\u0000\u0000"+ + "\u0000\u06ed\u06ee\u0007\u0006\u0000\u0000\u06ee\u0012\u0001\u0000\u0000"+ + "\u0000\u06ef\u06f0\u0007\u0007\u0000\u0000\u06f0\u0014\u0001\u0000\u0000"+ + "\u0000\u06f1\u06f2\u0007\b\u0000\u0000\u06f2\u0016\u0001\u0000\u0000\u0000"+ + "\u06f3\u06f4\u0007\t\u0000\u0000\u06f4\u0018\u0001\u0000\u0000\u0000\u06f5"+ + "\u06f6\u0007\n\u0000\u0000\u06f6\u001a\u0001\u0000\u0000\u0000\u06f7\u06f8"+ + "\u0007\u000b\u0000\u0000\u06f8\u001c\u0001\u0000\u0000\u0000\u06f9\u06fa"+ + "\u0007\f\u0000\u0000\u06fa\u001e\u0001\u0000\u0000\u0000\u06fb\u06fc\u0007"+ + "\r\u0000\u0000\u06fc \u0001\u0000\u0000\u0000\u06fd\u06fe\u0007\u000e"+ + "\u0000\u0000\u06fe\"\u0001\u0000\u0000\u0000\u06ff\u0700\u0007\u000f\u0000"+ + "\u0000\u0700$\u0001\u0000\u0000\u0000\u0701\u0702\u0007\u0010\u0000\u0000"+ + "\u0702&\u0001\u0000\u0000\u0000\u0703\u0704\u0007\u0011\u0000\u0000\u0704"+ + "(\u0001\u0000\u0000\u0000\u0705\u0706\u0007\u0012\u0000\u0000\u0706*\u0001"+ + "\u0000\u0000\u0000\u0707\u0708\u0007\u0013\u0000\u0000\u0708,\u0001\u0000"+ + "\u0000\u0000\u0709\u070a\u0007\u0014\u0000\u0000\u070a.\u0001\u0000\u0000"+ + "\u0000\u070b\u070c\u0007\u0015\u0000\u0000\u070c0\u0001\u0000\u0000\u0000"+ + "\u070d\u070e\u0007\u0016\u0000\u0000\u070e2\u0001\u0000\u0000\u0000\u070f"+ + "\u0710\u0007\u0017\u0000\u0000\u07104\u0001\u0000\u0000\u0000\u0711\u0712"+ + "\u0007\u0018\u0000\u0000\u07126\u0001\u0000\u0000\u0000\u0713\u0714\u0007"+ + "\u0019\u0000\u0000\u07148\u0001\u0000\u0000\u0000\u0715\u0716\u0007\u001a"+ + "\u0000\u0000\u0716:\u0001\u0000\u0000\u0000\u0717\u0718\u0007\u001b\u0000"+ + "\u0000\u0718<\u0001\u0000\u0000\u0000\u0719\u071a\u0007\u001c\u0000\u0000"+ + "\u071a>\u0001\u0000\u0000\u0000\u071b\u0723\u0005\"\u0000\u0000\u071c"+ + "\u071d\u0005\\\u0000\u0000\u071d\u0722\t\u0000\u0000\u0000\u071e\u071f"+ + "\u0005\"\u0000\u0000\u071f\u0722\u0005\"\u0000\u0000\u0720\u0722\b\u001d"+ + "\u0000\u0000\u0721\u071c\u0001\u0000\u0000\u0000\u0721\u071e\u0001\u0000"+ + "\u0000\u0000\u0721\u0720\u0001\u0000\u0000\u0000\u0722\u0725\u0001\u0000"+ + "\u0000\u0000\u0723\u0721\u0001\u0000\u0000\u0000\u0723\u0724\u0001\u0000"+ + "\u0000\u0000\u0724\u0726\u0001\u0000\u0000\u0000\u0725\u0723\u0001\u0000"+ + "\u0000\u0000\u0726\u0727\u0005\"\u0000\u0000\u0727@\u0001\u0000\u0000"+ + "\u0000\u0728\u0730\u0005\'\u0000\u0000\u0729\u072a\u0005\\\u0000\u0000"+ + "\u072a\u072f\t\u0000\u0000\u0000\u072b\u072c\u0005\'\u0000\u0000\u072c"+ + "\u072f\u0005\'\u0000\u0000\u072d\u072f\b\u001e\u0000\u0000\u072e\u0729"+ + "\u0001\u0000\u0000\u0000\u072e\u072b\u0001\u0000\u0000\u0000\u072e\u072d"+ + "\u0001\u0000\u0000\u0000\u072f\u0732\u0001\u0000\u0000\u0000\u0730\u072e"+ + "\u0001\u0000\u0000\u0000\u0730\u0731\u0001\u0000\u0000\u0000\u0731\u0733"+ + "\u0001\u0000\u0000\u0000\u0732\u0730\u0001\u0000\u0000\u0000\u0733\u0734"+ + "\u0005\'\u0000\u0000\u0734B\u0001\u0000\u0000\u0000\u0735\u073d\u0005"+ + "`\u0000\u0000\u0736\u0737\u0005\\\u0000\u0000\u0737\u073c\t\u0000\u0000"+ + "\u0000\u0738\u0739\u0005`\u0000\u0000\u0739\u073c\u0005`\u0000\u0000\u073a"+ + "\u073c\b\u001f\u0000\u0000\u073b\u0736\u0001\u0000\u0000\u0000\u073b\u0738"+ + "\u0001\u0000\u0000\u0000\u073b\u073a\u0001\u0000\u0000\u0000\u073c\u073f"+ + "\u0001\u0000\u0000\u0000\u073d\u073b\u0001\u0000\u0000\u0000\u073d\u073e"+ + "\u0001\u0000\u0000\u0000\u073e\u0740\u0001\u0000\u0000\u0000\u073f\u073d"+ + "\u0001\u0000\u0000\u0000\u0740\u0741\u0005`\u0000\u0000\u0741D\u0001\u0000"+ + "\u0000\u0000\u0742\u0743\u0003\u0007\u0003\u0000\u0743F\u0001\u0000\u0000"+ + "\u0000\u0744\u0745\u0003\u0007\u0003\u0000\u0745\u0746\u0003\t\u0004\u0000"+ + "\u0746\u0747\u0003#\u0011\u0000\u0747\u0748\u0003)\u0014\u0000\u0748\u0749"+ + "\u0003-\u0016\u0000\u0749H\u0001\u0000\u0000\u0000\u074a\u074b\u0003\u0007"+ + "\u0003\u0000\u074b\u074c\u0003\t\u0004\u0000\u074c\u074d\u0003+\u0015"+ + "\u0000\u074dJ\u0001\u0000\u0000\u0000\u074e\u074f\u0003\u0007\u0003\u0000"+ + "\u074f\u0750\u0003\t\u0004\u0000\u0750\u0751\u0003+\u0015\u0000\u0751"+ + "\u0752\u0003#\u0011\u0000\u0752\u0753\u0003\u001d\u000e\u0000\u0753\u0754"+ + "\u0003/\u0017\u0000\u0754\u0755\u0003-\u0016\u0000\u0755\u0756\u0003\u000f"+ + "\u0007\u0000\u0756L\u0001\u0000\u0000\u0000\u0757\u0758\u0003\u0007\u0003"+ + "\u0000\u0758\u0759\u0003\u000b\u0005\u0000\u0759\u075a\u0003\u000b\u0005"+ + "\u0000\u075a\u075b\u0003\u000f\u0007\u0000\u075b\u075c\u0003+\u0015\u0000"+ + "\u075c\u075d\u0003+\u0015\u0000\u075dN\u0001\u0000\u0000\u0000\u075e\u075f"+ + "\u0003\u0007\u0003\u0000\u075f\u0760\u0003\u000b\u0005\u0000\u0760\u0761"+ + "\u0003-\u0016\u0000\u0761\u0762\u0003\u0017\u000b\u0000\u0762\u0763\u0003"+ + "#\u0011\u0000\u0763\u0764\u0003!\u0010\u0000\u0764P\u0001\u0000\u0000"+ + "\u0000\u0765\u0766\u0003\u0007\u0003\u0000\u0766\u0767\u0003\r\u0006\u0000"+ + "\u0767\u0768\u0003\u0007\u0003\u0000\u0768R\u0001\u0000\u0000\u0000\u0769"+ + "\u076a\u0003\u0007\u0003\u0000\u076a\u076b\u0003\r\u0006\u0000\u076b\u076c"+ + "\u0003\r\u0006\u0000\u076cT\u0001\u0000\u0000\u0000\u076d\u076e\u0003"+ + "\u0007\u0003\u0000\u076e\u076f\u0003\r\u0006\u0000\u076f\u0770\u0003\u001f"+ + "\u000f\u0000\u0770\u0771\u0003\u0017\u000b\u0000\u0771\u0772\u0003!\u0010"+ + "\u0000\u0772V\u0001\u0000\u0000\u0000\u0773\u0774\u0003\u0007\u0003\u0000"+ + "\u0774\u0775\u0003\u0011\b\u0000\u0775\u0776\u0003-\u0016\u0000\u0776"+ + "\u0777\u0003\u000f\u0007\u0000\u0777\u0778\u0003)\u0014\u0000\u0778X\u0001"+ + "\u0000\u0000\u0000\u0779\u077a\u0003\u0007\u0003\u0000\u077a\u077b\u0003"+ + "\u0013\t\u0000\u077b\u077c\u0003\u0013\t\u0000\u077c\u077d\u0003)\u0014"+ + "\u0000\u077d\u077e\u0003\u000f\u0007\u0000\u077e\u077f\u0003\u0013\t\u0000"+ + "\u077f\u0780\u0003\u0007\u0003\u0000\u0780\u0781\u0003-\u0016\u0000\u0781"+ + "\u0782\u0003\u000f\u0007\u0000\u0782Z\u0001\u0000\u0000\u0000\u0783\u0784"+ + "\u0003\u0007\u0003\u0000\u0784\u0785\u0003\u001d\u000e\u0000\u0785\u0786"+ + "\u0003\u0017\u000b\u0000\u0786\u0787\u0003\u0007\u0003\u0000\u0787\u0788"+ + "\u0003+\u0015\u0000\u0788\\\u0001\u0000\u0000\u0000\u0789\u078a\u0003"+ + "\u0007\u0003\u0000\u078a\u078b\u0003\u001d\u000e\u0000\u078b\u078c\u0003"+ + "\u001d\u000e\u0000\u078c^\u0001\u0000\u0000\u0000\u078d\u078e\u0003\u0007"+ + "\u0003\u0000\u078e\u078f\u0003\u001d\u000e\u0000\u078f\u0790\u0003\u001d"+ + "\u000e\u0000\u0790\u0791\u0003#\u0011\u0000\u0791\u0792\u0003\u000b\u0005"+ + "\u0000\u0792\u0793\u0003\u0007\u0003\u0000\u0793\u0794\u0003-\u0016\u0000"+ + "\u0794\u0795\u0003\u000f\u0007\u0000\u0795`\u0001\u0000\u0000\u0000\u0796"+ + "\u0797\u0003\u0007\u0003\u0000\u0797\u0798\u0003\u001d\u000e\u0000\u0798"+ + "\u0799\u0003+\u0015\u0000\u0799\u079a\u0003#\u0011\u0000\u079ab\u0001"+ + "\u0000\u0000\u0000\u079b\u079c\u0003\u0007\u0003\u0000\u079c\u079d\u0003"+ + "\u001d\u000e\u0000\u079d\u079e\u0003-\u0016\u0000\u079e\u079f\u0003\u000f"+ + "\u0007\u0000\u079f\u07a0\u0003)\u0014\u0000\u07a0d\u0001\u0000\u0000\u0000"+ + "\u07a1\u07a2\u0003\u0007\u0003\u0000\u07a2\u07a3\u0003\u001d\u000e\u0000"+ + "\u07a3\u07a4\u00033\u0019\u0000\u07a4\u07a5\u0003\u0007\u0003\u0000\u07a5"+ + "\u07a6\u00037\u001b\u0000\u07a6\u07a7\u0003+\u0015\u0000\u07a7f\u0001"+ + "\u0000\u0000\u0000\u07a8\u07a9\u0003\u0007\u0003\u0000\u07a9\u07aa\u0003"+ + "!\u0010\u0000\u07aa\u07ab\u0003\u0007\u0003\u0000\u07ab\u07ac\u0003\u001d"+ + "\u000e\u0000\u07ac\u07ad\u00037\u001b\u0000\u07ad\u07ae\u0003+\u0015\u0000"+ + "\u07ae\u07af\u0003\u000f\u0007\u0000\u07afh\u0001\u0000\u0000\u0000\u07b0"+ + "\u07b1\u0003\u0007\u0003\u0000\u07b1\u07b2\u0003!\u0010\u0000\u07b2\u07b3"+ + "\u0003\u0007\u0003\u0000\u07b3\u07b4\u0003\u001d\u000e\u0000\u07b4\u07b5"+ + "\u00037\u001b\u0000\u07b5\u07b6\u00039\u001c\u0000\u07b6\u07b7\u0003\u000f"+ + "\u0007\u0000\u07b7j\u0001\u0000\u0000\u0000\u07b8\u07b9\u0003\u0007\u0003"+ + "\u0000\u07b9\u07ba\u0003!\u0010\u0000\u07ba\u07bb\u0003\r\u0006\u0000"+ + "\u07bbl\u0001\u0000\u0000\u0000\u07bc\u07bd\u0003\u0007\u0003\u0000\u07bd"+ + "\u07be\u0003!\u0010\u0000\u07be\u07bf\u00037\u001b\u0000\u07bfn\u0001"+ + "\u0000\u0000\u0000\u07c0\u07c1\u0003\u0007\u0003\u0000\u07c1\u07c2\u0003"+ + ")\u0014\u0000\u07c2\u07c3\u0003\u000f\u0007\u0000\u07c3p\u0001\u0000\u0000"+ + "\u0000\u07c4\u07c5\u0003\u0007\u0003\u0000\u07c5\u07c6\u0003)\u0014\u0000"+ + "\u07c6\u07c7\u0003)\u0014\u0000\u07c7\u07c8\u0003\u0007\u0003\u0000\u07c8"+ + "\u07c9\u00037\u001b\u0000\u07c9r\u0001\u0000\u0000\u0000\u07ca\u07cb\u0003"+ + "\u0007\u0003\u0000\u07cb\u07cc\u0003+\u0015\u0000\u07cct\u0001\u0000\u0000"+ + "\u0000\u07cd\u07ce\u0003\u0007\u0003\u0000\u07ce\u07cf\u0003+\u0015\u0000"+ + "\u07cf\u07d0\u0003\u000b\u0005\u0000\u07d0v\u0001\u0000\u0000\u0000\u07d1"+ + "\u07d2\u0003\u0007\u0003\u0000\u07d2\u07d3\u0003+\u0015\u0000\u07d3\u07d4"+ + "\u0003\u000f\u0007\u0000\u07d4\u07d5\u0003!\u0010\u0000\u07d5\u07d6\u0003"+ + "+\u0015\u0000\u07d6\u07d7\u0003\u0017\u000b\u0000\u07d7\u07d8\u0003-\u0016"+ + "\u0000\u07d8\u07d9\u0003\u0017\u000b\u0000\u07d9\u07da\u00031\u0018\u0000"+ + "\u07da\u07db\u0003\u000f\u0007\u0000\u07dbx\u0001\u0000\u0000\u0000\u07dc"+ + "\u07dd\u0003\u0007\u0003\u0000\u07dd\u07de\u0003+\u0015\u0000\u07de\u07df"+ + "\u0003+\u0015\u0000\u07df\u07e0\u0003\u000f\u0007\u0000\u07e0\u07e1\u0003"+ + ")\u0014\u0000\u07e1\u07e2\u0003-\u0016\u0000\u07e2\u07e3\u0003\u0017\u000b"+ + "\u0000\u07e3\u07e4\u0003#\u0011\u0000\u07e4\u07e5\u0003!\u0010\u0000\u07e5"+ + "z\u0001\u0000\u0000\u0000\u07e6\u07e7\u0003\u0007\u0003\u0000\u07e7\u07e8"+ + "\u0003+\u0015\u0000\u07e8\u07e9\u0003+\u0015\u0000\u07e9\u07ea\u0003\u0017"+ + "\u000b\u0000\u07ea\u07eb\u0003\u0013\t\u0000\u07eb\u07ec\u0003!\u0010"+ + "\u0000\u07ec\u07ed\u0003\u001f\u000f\u0000\u07ed\u07ee\u0003\u000f\u0007"+ + "\u0000\u07ee\u07ef\u0003!\u0010\u0000\u07ef\u07f0\u0003-\u0016\u0000\u07f0"+ + "|\u0001\u0000\u0000\u0000\u07f1\u07f2\u0003\u0007\u0003\u0000\u07f2\u07f3"+ + "\u0003+\u0015\u0000\u07f3\u07f4\u00037\u001b\u0000\u07f4\u07f5\u0003\u001f"+ + "\u000f\u0000\u07f5\u07f6\u0003\u001f\u000f\u0000\u07f6\u07f7\u0003\u000f"+ + "\u0007\u0000\u07f7\u07f8\u0003-\u0016\u0000\u07f8\u07f9\u0003)\u0014\u0000"+ + "\u07f9\u07fa\u0003\u0017\u000b\u0000\u07fa\u07fb\u0003\u000b\u0005\u0000"+ + "\u07fb~\u0001\u0000\u0000\u0000\u07fc\u07fd\u0003\u0007\u0003\u0000\u07fd"+ + "\u07fe\u0003-\u0016\u0000\u07fe\u0080\u0001\u0000\u0000\u0000\u07ff\u0800"+ + "\u0003\u0007\u0003\u0000\u0800\u0801\u0003-\u0016\u0000\u0801\u0802\u0003"+ + "#\u0011\u0000\u0802\u0803\u0003\u001f\u000f\u0000\u0803\u0804\u0003\u0017"+ + "\u000b\u0000\u0804\u0805\u0003\u000b\u0005\u0000\u0805\u0082\u0001\u0000"+ + "\u0000\u0000\u0806\u0807\u0003\u0007\u0003\u0000\u0807\u0808\u0003-\u0016"+ + "\u0000\u0808\u0809\u0003-\u0016\u0000\u0809\u080a\u0003)\u0014\u0000\u080a"+ + "\u080b\u0003\u0017\u000b\u0000\u080b\u080c\u0003\t\u0004\u0000\u080c\u080d"+ + "\u0003/\u0017\u0000\u080d\u080e\u0003-\u0016\u0000\u080e\u080f\u0003\u000f"+ + "\u0007\u0000\u080f\u0084\u0001\u0000\u0000\u0000\u0810\u0811\u0003\u0007"+ + "\u0003\u0000\u0811\u0812\u0003-\u0016\u0000\u0812\u0813\u0003-\u0016\u0000"+ + "\u0813\u0814\u0003)\u0014\u0000\u0814\u0815\u0003\u0017\u000b\u0000\u0815"+ + "\u0816\u0003\t\u0004\u0000\u0816\u0817\u0003/\u0017\u0000\u0817\u0818"+ + "\u0003-\u0016\u0000\u0818\u0819\u0003\u000f\u0007\u0000\u0819\u081a\u0003"+ + "+\u0015\u0000\u081a\u0086\u0001\u0000\u0000\u0000\u081b\u081c\u0003\u0007"+ + "\u0003\u0000\u081c\u081d\u0003/\u0017\u0000\u081d\u081e\u0003-\u0016\u0000"+ + "\u081e\u081f\u0003\u0015\n\u0000\u081f\u0820\u0003#\u0011\u0000\u0820"+ + "\u0821\u0003)\u0014\u0000\u0821\u0822\u0003\u0017\u000b\u0000\u0822\u0823"+ + "\u00039\u001c\u0000\u0823\u0824\u0003\u0007\u0003\u0000\u0824\u0825\u0003"+ + "-\u0016\u0000\u0825\u0826\u0003\u0017\u000b\u0000\u0826\u0827\u0003#\u0011"+ + "\u0000\u0827\u0828\u0003!\u0010\u0000\u0828\u0088\u0001\u0000\u0000\u0000"+ + "\u0829\u082a\u0003\u0007\u0003\u0000\u082a\u082b\u00031\u0018\u0000\u082b"+ + "\u082c\u0003\u0013\t\u0000\u082c\u008a\u0001\u0000\u0000\u0000\u082d\u082e"+ + "\u0003\t\u0004\u0000\u082e\u082f\u0003\u0007\u0003\u0000\u082f\u0830\u0003"+ + "\u000b\u0005\u0000\u0830\u0831\u0003\u001b\r\u0000\u0831\u0832\u00033"+ + "\u0019\u0000\u0832\u0833\u0003\u0007\u0003\u0000\u0833\u0834\u0003)\u0014"+ + "\u0000\u0834\u0835\u0003\r\u0006\u0000\u0835\u008c\u0001\u0000\u0000\u0000"+ + "\u0836\u0837\u0003\t\u0004\u0000\u0837\u0838\u0003\u000f\u0007\u0000\u0838"+ + "\u0839\u0003\u0011\b\u0000\u0839\u083a\u0003#\u0011\u0000\u083a\u083b"+ + "\u0003)\u0014\u0000\u083b\u083c\u0003\u000f\u0007\u0000\u083c\u008e\u0001"+ + "\u0000\u0000\u0000\u083d\u083e\u0003\t\u0004\u0000\u083e\u083f\u0003\u000f"+ + "\u0007\u0000\u083f\u0840\u0003\u0013\t\u0000\u0840\u0841\u0003\u0017\u000b"+ + "\u0000\u0841\u0842\u0003!\u0010\u0000\u0842\u0090\u0001\u0000\u0000\u0000"+ + "\u0843\u0844\u0003\t\u0004\u0000\u0844\u0845\u0003\u000f\u0007\u0000\u0845"+ + "\u0846\u0003)\u0014\u0000\u0846\u0847\u0003!\u0010\u0000\u0847\u0848\u0003"+ + "#\u0011\u0000\u0848\u0849\u0003/\u0017\u0000\u0849\u084a\u0003\u001d\u000e"+ + "\u0000\u084a\u084b\u0003\u001d\u000e\u0000\u084b\u084c\u0003\u0017\u000b"+ + "\u0000\u084c\u0092\u0001\u0000\u0000\u0000\u084d\u084e\u0003\t\u0004\u0000"+ + "\u084e\u084f\u0003\u000f\u0007\u0000\u084f\u0850\u0003-\u0016\u0000\u0850"+ + "\u0851\u00033\u0019\u0000\u0851\u0852\u0003\u000f\u0007\u0000\u0852\u0853"+ + "\u0003\u000f\u0007\u0000\u0853\u0854\u0003!\u0010\u0000\u0854\u0094\u0001"+ + "\u0000\u0000\u0000\u0855\u0856\u0003\t\u0004\u0000\u0856\u0857\u0003\u0017"+ + "\u000b\u0000\u0857\u0858\u0003\u0013\t\u0000\u0858\u0859\u0003\u0017\u000b"+ + "\u0000\u0859\u085a\u0003!\u0010\u0000\u085a\u085b\u0003-\u0016\u0000\u085b"+ + "\u0096\u0001\u0000\u0000\u0000\u085c\u085d\u0003\t\u0004\u0000\u085d\u085e"+ + "\u0003\u0017\u000b\u0000\u085e\u085f\u0003!\u0010\u0000\u085f\u0860\u0003"+ + "\u0007\u0003\u0000\u0860\u0861\u0003)\u0014\u0000\u0861\u0862\u00037\u001b"+ + "\u0000\u0862\u0098\u0001\u0000\u0000\u0000\u0863\u0864\u0003\t\u0004\u0000"+ + "\u0864\u0865\u0003\u0017\u000b\u0000\u0865\u0866\u0003-\u0016\u0000\u0866"+ + "\u009a\u0001\u0000\u0000\u0000\u0867\u0868\u0003\t\u0004\u0000\u0868\u0869"+ + "\u0003\u0017\u000b\u0000\u0869\u086a\u0003-\u0016\u0000\u086a\u086b\u0005"+ + "_\u0000\u0000\u086b\u086c\u0003\u001d\u000e\u0000\u086c\u086d\u0003\u000f"+ + "\u0007\u0000\u086d\u086e\u0003!\u0010\u0000\u086e\u086f\u0003\u0013\t"+ + "\u0000\u086f\u0870\u0003-\u0016\u0000\u0870\u0871\u0003\u0015\n\u0000"+ + "\u0871\u009c\u0001\u0000\u0000\u0000\u0872\u0873\u0003\t\u0004\u0000\u0873"+ + "\u0874\u0003\u0017\u000b\u0000\u0874\u0875\u0003-\u0016\u0000\u0875\u0876"+ + "\u00031\u0018\u0000\u0876\u0877\u0003\u0007\u0003\u0000\u0877\u0878\u0003"+ + ")\u0014\u0000\u0878\u009e\u0001\u0000\u0000\u0000\u0879\u087a\u0003\t"+ + "\u0004\u0000\u087a\u087b\u0003\u001d\u000e\u0000\u087b\u087c\u0003#\u0011"+ + "\u0000\u087c\u087d\u0003\t\u0004\u0000\u087d\u00a0\u0001\u0000\u0000\u0000"+ + "\u087e\u087f\u0003\t\u0004\u0000\u087f\u0880\u0003#\u0011\u0000\u0880"+ + "\u0881\u0003#\u0011\u0000\u0881\u0882\u0003\u001d\u000e\u0000\u0882\u0883"+ + "\u0003\u000f\u0007\u0000\u0883\u0884\u0003\u0007\u0003\u0000\u0884\u0885"+ + "\u0003!\u0010\u0000\u0885\u00a2\u0001\u0000\u0000\u0000\u0886\u0887\u0003"+ + "\t\u0004\u0000\u0887\u0888\u0003#\u0011\u0000\u0888\u0889\u0003-\u0016"+ + "\u0000\u0889\u088a\u0003\u0015\n\u0000\u088a\u00a4\u0001\u0000\u0000\u0000"+ + "\u088b\u088c\u0003\t\u0004\u0000\u088c\u088d\u0003)\u0014\u0000\u088d"+ + "\u088e\u0003\u000f\u0007\u0000\u088e\u088f\u0003\u0007\u0003\u0000\u088f"+ + "\u0890\u0003\r\u0006\u0000\u0890\u0891\u0003-\u0016\u0000\u0891\u0892"+ + "\u0003\u0015\n\u0000\u0892\u00a6\u0001\u0000\u0000\u0000\u0893\u0894\u0003"+ + "\t\u0004\u0000\u0894\u0895\u0003/\u0017\u0000\u0895\u0896\u0003\u0011"+ + "\b\u0000\u0896\u0897\u0003\u0011\b\u0000\u0897\u0898\u0003\u000f\u0007"+ + "\u0000\u0898\u0899\u0003)\u0014\u0000\u0899\u089a\u0003+\u0015\u0000\u089a"+ + "\u00a8\u0001\u0000\u0000\u0000\u089b\u089c\u0003\t\u0004\u0000\u089c\u089d"+ + "\u00037\u001b\u0000\u089d\u00aa\u0001\u0000\u0000\u0000\u089e\u089f\u0003"+ + "\u000b\u0005\u0000\u089f\u00ac\u0001\u0000\u0000\u0000\u08a0\u08a1\u0003"+ + "\u000b\u0005\u0000\u08a1\u08a2\u0003\u0007\u0003\u0000\u08a2\u08a3\u0003"+ + "\u000b\u0005\u0000\u08a3\u08a4\u0003\u0015\n\u0000\u08a4\u08a5\u0003\u000f"+ + "\u0007\u0000\u08a5\u00ae\u0001\u0000\u0000\u0000\u08a6\u08a7\u0003\u000b"+ + "\u0005\u0000\u08a7\u08a8\u0003\u0007\u0003\u0000\u08a8\u08a9\u0003\u001d"+ + "\u000e\u0000\u08a9\u08aa\u0003\u001d\u000e\u0000\u08aa\u00b0\u0001\u0000"+ + "\u0000\u0000\u08ab\u08ac\u0003\u000b\u0005\u0000\u08ac\u08ad\u0003\u0007"+ + "\u0003\u0000\u08ad\u08ae\u0003\u001d\u000e\u0000\u08ae\u08af\u0003\u001d"+ + "\u000e\u0000\u08af\u08b0\u0003\u000f\u0007\u0000\u08b0\u08b1\u0003\r\u0006"+ + "\u0000\u08b1\u00b2\u0001\u0000\u0000\u0000\u08b2\u08b3\u0003\u000b\u0005"+ + "\u0000\u08b3\u08b4\u0003\u0007\u0003\u0000\u08b4\u08b5\u0003)\u0014\u0000"+ + "\u08b5\u08b6\u0003\r\u0006\u0000\u08b6\u08b7\u0003\u0017\u000b\u0000\u08b7"+ + "\u08b8\u0003!\u0010\u0000\u08b8\u08b9\u0003\u0007\u0003\u0000\u08b9\u08ba"+ + "\u0003\u001d\u000e\u0000\u08ba\u08bb\u0003\u0017\u000b\u0000\u08bb\u08bc"+ + "\u0003-\u0016\u0000\u08bc\u08bd\u00037\u001b\u0000\u08bd\u00b4\u0001\u0000"+ + "\u0000\u0000\u08be\u08bf\u0003\u000b\u0005\u0000\u08bf\u08c0\u0003\u0007"+ + "\u0003\u0000\u08c0\u08c1\u0003+\u0015\u0000\u08c1\u08c2\u0003\u000b\u0005"+ + "\u0000\u08c2\u08c3\u0003\u0007\u0003\u0000\u08c3\u08c4\u0003\r\u0006\u0000"+ + "\u08c4\u08c5\u0003\u000f\u0007\u0000\u08c5\u00b6\u0001\u0000\u0000\u0000"+ + "\u08c6\u08c7\u0003\u000b\u0005\u0000\u08c7\u08c8\u0003\u0007\u0003\u0000"+ + "\u08c8\u08c9\u0003+\u0015\u0000\u08c9\u08ca\u0003\u000b\u0005\u0000\u08ca"+ + "\u08cb\u0003\u0007\u0003\u0000\u08cb\u08cc\u0003\r\u0006\u0000\u08cc\u08cd"+ + "\u0003\u000f\u0007\u0000\u08cd\u08ce\u0003\r\u0006\u0000\u08ce\u00b8\u0001"+ + "\u0000\u0000\u0000\u08cf\u08d0\u0003\u000b\u0005\u0000\u08d0\u08d1\u0003"+ + "\u0007\u0003\u0000\u08d1\u08d2\u0003+\u0015\u0000\u08d2\u08d3\u0003\u000f"+ + "\u0007\u0000\u08d3\u00ba\u0001\u0000\u0000\u0000\u08d4\u08d5\u0003\u000b"+ + "\u0005\u0000\u08d5\u08d6\u0003\u0007\u0003\u0000\u08d6\u08d7\u0003+\u0015"+ + "\u0000\u08d7\u08d8\u0003-\u0016\u0000\u08d8\u00bc\u0001\u0000\u0000\u0000"+ + "\u08d9\u08da\u0003\u000b\u0005\u0000\u08da\u08db\u0003\u0007\u0003\u0000"+ + "\u08db\u08dc\u0003-\u0016\u0000\u08dc\u08dd\u0003\u0007\u0003\u0000\u08dd"+ + "\u08de\u0003\u001d\u000e\u0000\u08de\u08df\u0003#\u0011\u0000\u08df\u08e0"+ + "\u0003\u0013\t\u0000\u08e0\u00be\u0001\u0000\u0000\u0000\u08e1\u08e2\u0003"+ + "\u000b\u0005\u0000\u08e2\u08e3\u0003\u0007\u0003\u0000\u08e3\u08e4\u0003"+ + "-\u0016\u0000\u08e4\u08e5\u0003\u0007\u0003\u0000\u08e5\u08e6\u0003\u001d"+ + "\u000e\u0000\u08e6\u08e7\u0003#\u0011\u0000\u08e7\u08e8\u0003\u0013\t"+ + "\u0000\u08e8\u08e9\u0005_\u0000\u0000\u08e9\u08ea\u0003!\u0010\u0000\u08ea"+ + "\u08eb\u0003\u0007\u0003\u0000\u08eb\u08ec\u0003\u001f\u000f\u0000\u08ec"+ + "\u08ed\u0003\u000f\u0007\u0000\u08ed\u00c0\u0001\u0000\u0000\u0000\u08ee"+ + "\u08ef\u0003\u000b\u0005\u0000\u08ef\u08f0\u0003\u000f\u0007\u0000\u08f0"+ + "\u08f1\u0003\u0017\u000b\u0000\u08f1\u08f2\u0003\u001d\u000e\u0000\u08f2"+ + "\u00c2\u0001\u0000\u0000\u0000\u08f3\u08f4\u0003\u000b\u0005\u0000\u08f4"+ + "\u08f5\u0003\u000f\u0007\u0000\u08f5\u08f6\u0003\u0017\u000b\u0000\u08f6"+ + "\u08f7\u0003\u001d\u000e\u0000\u08f7\u08f8\u0003\u0017\u000b\u0000\u08f8"+ + "\u08f9\u0003!\u0010\u0000\u08f9\u08fa\u0003\u0013\t\u0000\u08fa\u00c4"+ + "\u0001\u0000\u0000\u0000\u08fb\u08fc\u0003\u000b\u0005\u0000\u08fc\u08fd"+ + "\u0003\u0015\n\u0000\u08fd\u08fe\u0003\u0007\u0003\u0000\u08fe\u08ff\u0003"+ + "\u0017\u000b\u0000\u08ff\u0900\u0003!\u0010\u0000\u0900\u00c6\u0001\u0000"+ + "\u0000\u0000\u0901\u0902\u0003\u000b\u0005\u0000\u0902\u0903\u0003\u0015"+ + "\n\u0000\u0903\u0904\u0003\u0007\u0003\u0000\u0904\u0905\u0003)\u0014"+ + "\u0000\u0905\u00c8\u0001\u0000\u0000\u0000\u0906\u0907\u0003\u000b\u0005"+ + "\u0000\u0907\u0908\u0003\u0015\n\u0000\u0908\u0909\u0003\u0007\u0003\u0000"+ + "\u0909\u090a\u0003)\u0014\u0000\u090a\u090b\u0005_\u0000\u0000\u090b\u090c"+ + "\u0003\u001d\u000e\u0000\u090c\u090d\u0003\u000f\u0007\u0000\u090d\u090e"+ + "\u0003!\u0010\u0000\u090e\u090f\u0003\u0013\t\u0000\u090f\u0910\u0003"+ + "-\u0016\u0000\u0910\u0911\u0003\u0015\n\u0000\u0911\u00ca\u0001\u0000"+ + "\u0000\u0000\u0912\u0913\u0003\u000b\u0005\u0000\u0913\u0914\u0003\u0015"+ + "\n\u0000\u0914\u0915\u0003\u0007\u0003\u0000\u0915\u0916\u0003)\u0014"+ + "\u0000\u0916\u0917\u0003\u0007\u0003\u0000\u0917\u0918\u0003\u000b\u0005"+ + "\u0000\u0918\u0919\u0003-\u0016\u0000\u0919\u091a\u0003\u000f\u0007\u0000"+ + "\u091a\u091b\u0003)\u0014\u0000\u091b\u00cc\u0001\u0000\u0000\u0000\u091c"+ + "\u091d\u0003\u000b\u0005\u0000\u091d\u091e\u0003\u0015\n\u0000\u091e\u091f"+ + "\u0003\u0007\u0003\u0000\u091f\u0920\u0003)\u0014\u0000\u0920\u0921\u0003"+ + "\u0007\u0003\u0000\u0921\u0922\u0003\u000b\u0005\u0000\u0922\u0923\u0003"+ + "-\u0016\u0000\u0923\u0924\u0003\u000f\u0007\u0000\u0924\u0925\u0003)\u0014"+ + "\u0000\u0925\u0926\u0005_\u0000\u0000\u0926\u0927\u0003\u001d\u000e\u0000"+ + "\u0927\u0928\u0003\u000f\u0007\u0000\u0928\u0929\u0003!\u0010\u0000\u0929"+ + "\u092a\u0003\u0013\t\u0000\u092a\u092b\u0003-\u0016\u0000\u092b\u092c"+ + "\u0003\u0015\n\u0000\u092c\u00ce\u0001\u0000\u0000\u0000\u092d\u092e\u0003"+ + "\u000b\u0005\u0000\u092e\u092f\u0003\u0015\n\u0000\u092f\u0930\u0003\u0007"+ + "\u0003\u0000\u0930\u0931\u0003)\u0014\u0000\u0931\u0932\u0003\u0007\u0003"+ + "\u0000\u0932\u0933\u0003\u000b\u0005\u0000\u0933\u0934\u0003-\u0016\u0000"+ + "\u0934\u0935\u0003\u000f\u0007\u0000\u0935\u0936\u0003)\u0014\u0000\u0936"+ + "\u0937\u0005_\u0000\u0000\u0937\u0938\u0003+\u0015\u0000\u0938\u0939\u0003"+ + "\u000f\u0007\u0000\u0939\u093a\u0003-\u0016\u0000\u093a\u093b\u0005_\u0000"+ + "\u0000\u093b\u093c\u0003\u000b\u0005\u0000\u093c\u093d\u0003\u0007\u0003"+ + "\u0000\u093d\u093e\u0003-\u0016\u0000\u093e\u093f\u0003\u0007\u0003\u0000"+ + "\u093f\u0940\u0003\u001d\u000e\u0000\u0940\u0941\u0003#\u0011\u0000\u0941"+ + "\u0942\u0003\u0013\t\u0000\u0942\u00d0\u0001\u0000\u0000\u0000\u0943\u0944"+ + "\u0003\u000b\u0005\u0000\u0944\u0945\u0003\u0015\n\u0000\u0945\u0946\u0003"+ + "\u0007\u0003\u0000\u0946\u0947\u0003)\u0014\u0000\u0947\u0948\u0003\u0007"+ + "\u0003\u0000\u0948\u0949\u0003\u000b\u0005\u0000\u0949\u094a\u0003-\u0016"+ + "\u0000\u094a\u094b\u0003\u000f\u0007\u0000\u094b\u094c\u0003)\u0014\u0000"+ + "\u094c\u094d\u0005_\u0000\u0000\u094d\u094e\u0003+\u0015\u0000\u094e\u094f"+ + "\u0003\u000f\u0007\u0000\u094f\u0950\u0003-\u0016\u0000\u0950\u0951\u0005"+ + "_\u0000\u0000\u0951\u0952\u0003!\u0010\u0000\u0952\u0953\u0003\u0007\u0003"+ + "\u0000\u0953\u0954\u0003\u001f\u000f\u0000\u0954\u0955\u0003\u000f\u0007"+ + "\u0000\u0955\u00d2\u0001\u0000\u0000\u0000\u0956\u0957\u0003\u000b\u0005"+ + "\u0000\u0957\u0958\u0003\u0015\n\u0000\u0958\u0959\u0003\u0007\u0003\u0000"+ + "\u0959\u095a\u0003)\u0014\u0000\u095a\u095b\u0003\u0007\u0003\u0000\u095b"+ + "\u095c\u0003\u000b\u0005\u0000\u095c\u095d\u0003-\u0016\u0000\u095d\u095e"+ + "\u0003\u000f\u0007\u0000\u095e\u095f\u0003)\u0014\u0000\u095f\u0960\u0005"+ + "_\u0000\u0000\u0960\u0961\u0003+\u0015\u0000\u0961\u0962\u0003\u000f\u0007"+ + "\u0000\u0962\u0963\u0003-\u0016\u0000\u0963\u0964\u0005_\u0000\u0000\u0964"+ + "\u0965\u0003+\u0015\u0000\u0965\u0966\u0003\u000b\u0005\u0000\u0966\u0967"+ + "\u0003\u0015\n\u0000\u0967\u0968\u0003\u000f\u0007\u0000\u0968\u0969\u0003"+ + "\u001f\u000f\u0000\u0969\u096a\u0003\u0007\u0003\u0000\u096a\u00d4\u0001"+ + "\u0000\u0000\u0000\u096b\u096c\u0003\u000b\u0005\u0000\u096c\u096d\u0003"+ + "\u0015\n\u0000\u096d\u096e\u0003\u0007\u0003\u0000\u096e\u096f\u0003)"+ + "\u0014\u0000\u096f\u0970\u0003\u0007\u0003\u0000\u0970\u0971\u0003\u000b"+ + "\u0005\u0000\u0971\u0972\u0003-\u0016\u0000\u0972\u0973\u0003\u000f\u0007"+ + "\u0000\u0973\u0974\u0003)\u0014\u0000\u0974\u0975\u0003\u0017\u000b\u0000"+ + "\u0975\u0976\u0003+\u0015\u0000\u0976\u0977\u0003-\u0016\u0000\u0977\u0978"+ + "\u0003\u0017\u000b\u0000\u0978\u0979\u0003\u000b\u0005\u0000\u0979\u097a"+ + "\u0003+\u0015\u0000\u097a\u00d6\u0001\u0000\u0000\u0000\u097b\u097c\u0003"+ + "\u000b\u0005\u0000\u097c\u097d\u0003\u0015\n\u0000\u097d\u097e\u0003\u0007"+ + "\u0003\u0000\u097e\u097f\u0003)\u0014\u0000\u097f\u0980\u0003\u0007\u0003"+ + "\u0000\u0980\u0981\u0003\u000b\u0005\u0000\u0981\u0982\u0003-\u0016\u0000"+ + "\u0982\u0983\u0003\u000f\u0007\u0000\u0983\u0984\u0003)\u0014\u0000\u0984"+ + "\u0985\u0003+\u0015\u0000\u0985\u00d8\u0001\u0000\u0000\u0000\u0986\u0987"+ + "\u0003\u000b\u0005\u0000\u0987\u0988\u0003\u0015\n\u0000\u0988\u0989\u0003"+ + "\u000f\u0007\u0000\u0989\u098a\u0003\u000b\u0005\u0000\u098a\u098b\u0003"+ + "\u001b\r\u0000\u098b\u00da\u0001\u0000\u0000\u0000\u098c\u098d\u0003\u000b"+ + "\u0005\u0000\u098d\u098e\u0003\u0015\n\u0000\u098e\u098f\u0003\u000f\u0007"+ + "\u0000\u098f\u0990\u0003\u000b\u0005\u0000\u0990\u0991\u0003\u001b\r\u0000"+ + "\u0991\u0992\u0003\u000f\u0007\u0000\u0992\u0993\u0003\r\u0006\u0000\u0993"+ + "\u00dc\u0001\u0000\u0000\u0000\u0994\u0995\u0003\u000b\u0005\u0000\u0995"+ + "\u0996\u0003\u0015\n\u0000\u0996\u0997\u0003\u000f\u0007\u0000\u0997\u0998"+ + "\u0003\u000b\u0005\u0000\u0998\u0999\u0003\u001b\r\u0000\u0999\u099a\u0003"+ + "%\u0012\u0000\u099a\u099b\u0003#\u0011\u0000\u099b\u099c\u0003\u0017\u000b"+ + "\u0000\u099c\u099d\u0003!\u0010\u0000\u099d\u099e\u0003-\u0016\u0000\u099e"+ + "\u00de\u0001\u0000\u0000\u0000\u099f\u09a0\u0003\u000b\u0005\u0000\u09a0"+ + "\u09a1\u0003\u001d\u000e\u0000\u09a1\u09a2\u0003\u0007\u0003\u0000\u09a2"+ + "\u09a3\u0003+\u0015\u0000\u09a3\u09a4\u0003+\u0015\u0000\u09a4\u00e0\u0001"+ + "\u0000\u0000\u0000\u09a5\u09a6\u0003\u000b\u0005\u0000\u09a6\u09a7\u0003"+ + "\u001d\u000e\u0000\u09a7\u09a8\u0003\u0007\u0003\u0000\u09a8\u09a9\u0003"+ + "+\u0015\u0000\u09a9\u09aa\u0003+\u0015\u0000\u09aa\u09ab\u0005_\u0000"+ + "\u0000\u09ab\u09ac\u0003#\u0011\u0000\u09ac\u09ad\u0003)\u0014\u0000\u09ad"+ + "\u09ae\u0003\u0017\u000b\u0000\u09ae\u09af\u0003\u0013\t\u0000\u09af\u09b0"+ + "\u0003\u0017\u000b\u0000\u09b0\u09b1\u0003!\u0010\u0000\u09b1\u00e2\u0001"+ + "\u0000\u0000\u0000\u09b2\u09b3\u0003\u000b\u0005\u0000\u09b3\u09b4\u0003"+ + "\u001d\u000e\u0000\u09b4\u09b5\u0003#\u0011\u0000\u09b5\u09b6\u0003\t"+ + "\u0004\u0000\u09b6\u00e4\u0001\u0000\u0000\u0000\u09b7\u09b8\u0003\u000b"+ + "\u0005\u0000\u09b8\u09b9\u0003\u001d\u000e\u0000\u09b9\u09ba\u0003#\u0011"+ + "\u0000\u09ba\u09bb\u0003+\u0015\u0000\u09bb\u09bc\u0003\u000f\u0007\u0000"+ + "\u09bc\u00e6\u0001\u0000\u0000\u0000\u09bd\u09be\u0003\u000b\u0005\u0000"+ + "\u09be\u09bf\u0003\u001d\u000e\u0000\u09bf\u09c0\u0003/\u0017\u0000\u09c0"+ + "\u09c1\u0003+\u0015\u0000\u09c1\u09c2\u0003-\u0016\u0000\u09c2\u09c3\u0003"+ + "\u000f\u0007\u0000\u09c3\u09c4\u0003)\u0014\u0000\u09c4\u00e8\u0001\u0000"+ + "\u0000\u0000\u09c5\u09c6\u0003\u000b\u0005\u0000\u09c6\u09c7\u0003#\u0011"+ + "\u0000\u09c7\u09c8\u0003\u0007\u0003\u0000\u09c8\u09c9\u0003\u001d\u000e"+ + "\u0000\u09c9\u09ca\u0003\u000f\u0007\u0000\u09ca\u09cb\u0003+\u0015\u0000"+ + "\u09cb\u09cc\u0003\u000b\u0005\u0000\u09cc\u09cd\u0003\u000f\u0007\u0000"+ + "\u09cd\u00ea\u0001\u0000\u0000\u0000\u09ce\u09cf\u0003\u000b\u0005\u0000"+ + "\u09cf\u09d0\u0003#\u0011\u0000\u09d0\u09d1\u0003\t\u0004\u0000\u09d1"+ + "\u09d2\u0003#\u0011\u0000\u09d2\u09d3\u0003\u001d\u000e\u0000\u09d3\u00ec"+ + "\u0001\u0000\u0000\u0000\u09d4\u09d5\u0003\u000b\u0005\u0000\u09d5\u09d6"+ + "\u0003#\u0011\u0000\u09d6\u09d7\u0003\u001d\u000e\u0000\u09d7\u09d8\u0003"+ + "\u001d\u000e\u0000\u09d8\u09d9\u0003\u0007\u0003\u0000\u09d9\u09da\u0003"+ + "-\u0016\u0000\u09da\u09db\u0003\u000f\u0007\u0000\u09db\u00ee\u0001\u0000"+ + "\u0000\u0000\u09dc\u09dd\u0003\u000b\u0005\u0000\u09dd\u09de\u0003#\u0011"+ + "\u0000\u09de\u09df\u0003\u001d\u000e\u0000\u09df\u09e0\u0003\u001d\u000e"+ + "\u0000\u09e0\u09e1\u0003\u0007\u0003\u0000\u09e1\u09e2\u0003-\u0016\u0000"+ + "\u09e2\u09e3\u0003\u0017\u000b\u0000\u09e3\u09e4\u0003#\u0011\u0000\u09e4"+ + "\u09e5\u0003!\u0010\u0000\u09e5\u00f0\u0001\u0000\u0000\u0000\u09e6\u09e7"+ + "\u0003\u000b\u0005\u0000\u09e7\u09e8\u0003#\u0011\u0000\u09e8\u09e9\u0003"+ + "\u001d\u000e\u0000\u09e9\u09ea\u0003\u001d\u000e\u0000\u09ea\u09eb\u0003"+ + "\u0007\u0003\u0000\u09eb\u09ec\u0003-\u0016\u0000\u09ec\u09ed\u0003\u0017"+ + "\u000b\u0000\u09ed\u09ee\u0003#\u0011\u0000\u09ee\u09ef\u0003!\u0010\u0000"+ + "\u09ef\u09f0\u0005_\u0000\u0000\u09f0\u09f1\u0003\u000b\u0005\u0000\u09f1"+ + "\u09f2\u0003\u0007\u0003\u0000\u09f2\u09f3\u0003-\u0016\u0000\u09f3\u09f4"+ + "\u0003\u0007\u0003\u0000\u09f4\u09f5\u0003\u001d\u000e\u0000\u09f5\u09f6"+ + "\u0003#\u0011\u0000\u09f6\u09f7\u0003\u0013\t\u0000\u09f7\u00f2\u0001"+ + "\u0000\u0000\u0000\u09f8\u09f9\u0003\u000b\u0005\u0000\u09f9\u09fa\u0003"+ + "#\u0011\u0000\u09fa\u09fb\u0003\u001d\u000e\u0000\u09fb\u09fc\u0003\u001d"+ + "\u000e\u0000\u09fc\u09fd\u0003\u0007\u0003\u0000\u09fd\u09fe\u0003-\u0016"+ + "\u0000\u09fe\u09ff\u0003\u0017\u000b\u0000\u09ff\u0a00\u0003#\u0011\u0000"+ + "\u0a00\u0a01\u0003!\u0010\u0000\u0a01\u0a02\u0005_\u0000\u0000\u0a02\u0a03"+ + "\u0003!\u0010\u0000\u0a03\u0a04\u0003\u0007\u0003\u0000\u0a04\u0a05\u0003"+ + "\u001f\u000f\u0000\u0a05\u0a06\u0003\u000f\u0007\u0000\u0a06\u00f4\u0001"+ + "\u0000\u0000\u0000\u0a07\u0a08\u0003\u000b\u0005\u0000\u0a08\u0a09\u0003"+ + "#\u0011\u0000\u0a09\u0a0a\u0003\u001d\u000e\u0000\u0a0a\u0a0b\u0003\u001d"+ + "\u000e\u0000\u0a0b\u0a0c\u0003\u0007\u0003\u0000\u0a0c\u0a0d\u0003-\u0016"+ + "\u0000\u0a0d\u0a0e\u0003\u0017\u000b\u0000\u0a0e\u0a0f\u0003#\u0011\u0000"+ + "\u0a0f\u0a10\u0003!\u0010\u0000\u0a10\u0a11\u0005_\u0000\u0000\u0a11\u0a12"+ + "\u0003+\u0015\u0000\u0a12\u0a13\u0003\u000b\u0005\u0000\u0a13\u0a14\u0003"+ + "\u0015\n\u0000\u0a14\u0a15\u0003\u000f\u0007\u0000\u0a15\u0a16\u0003\u001f"+ + "\u000f\u0000\u0a16\u0a17\u0003\u0007\u0003\u0000\u0a17\u00f6\u0001\u0000"+ + "\u0000\u0000\u0a18\u0a19\u0003\u000b\u0005\u0000\u0a19\u0a1a\u0003#\u0011"+ + "\u0000\u0a1a\u0a1b\u0003\u001d\u000e\u0000\u0a1b\u0a1c\u0003\u001d\u000e"+ + "\u0000\u0a1c\u0a1d\u0003\u000f\u0007\u0000\u0a1d\u0a1e\u0003\u000b\u0005"+ + "\u0000\u0a1e\u0a1f\u0003-\u0016\u0000\u0a1f\u00f8\u0001\u0000\u0000\u0000"+ + "\u0a20\u0a21\u0003\u000b\u0005\u0000\u0a21\u0a22\u0003#\u0011\u0000\u0a22"+ + "\u0a23\u0003\u001d\u000e\u0000\u0a23\u0a24\u0003/\u0017\u0000\u0a24\u0a25"+ + "\u0003\u001f\u000f\u0000\u0a25\u0a26\u0003!\u0010\u0000\u0a26\u00fa\u0001"+ + "\u0000\u0000\u0000\u0a27\u0a28\u0003\u000b\u0005\u0000\u0a28\u0a29\u0003"+ + "#\u0011\u0000\u0a29\u0a2a\u0003\u001d\u000e\u0000\u0a2a\u0a2b\u0003/\u0017"+ + "\u0000\u0a2b\u0a2c\u0003\u001f\u000f\u0000\u0a2c\u0a2d\u0003!\u0010\u0000"+ + "\u0a2d\u0a2e\u0005_\u0000\u0000\u0a2e\u0a2f\u0003!\u0010\u0000\u0a2f\u0a30"+ + "\u0003\u0007\u0003\u0000\u0a30\u0a31\u0003\u001f\u000f\u0000\u0a31\u0a32"+ + "\u0003\u000f\u0007\u0000\u0a32\u00fc\u0001\u0000\u0000\u0000\u0a33\u0a34"+ + "\u0003\u000b\u0005\u0000\u0a34\u0a35\u0003#\u0011\u0000\u0a35\u0a36\u0003"+ + "\u001f\u000f\u0000\u0a36\u0a37\u0003\u001f\u000f\u0000\u0a37\u0a38\u0003"+ + "\u0007\u0003\u0000\u0a38\u0a39\u0003!\u0010\u0000\u0a39\u0a3a\u0003\r"+ + "\u0006\u0000\u0a3a\u0a3b\u0005_\u0000\u0000\u0a3b\u0a3c\u0003\u0011\b"+ + "\u0000\u0a3c\u0a3d\u0003/\u0017\u0000\u0a3d\u0a3e\u0003!\u0010\u0000\u0a3e"+ + "\u0a3f\u0003\u000b\u0005\u0000\u0a3f\u0a40\u0003-\u0016\u0000\u0a40\u0a41"+ + "\u0003\u0017\u000b\u0000\u0a41\u0a42\u0003#\u0011\u0000\u0a42\u0a43\u0003"+ + "!\u0010\u0000\u0a43\u00fe\u0001\u0000\u0000\u0000\u0a44\u0a45\u0003\u000b"+ + "\u0005\u0000\u0a45\u0a46\u0003#\u0011\u0000\u0a46\u0a47\u0003\u001f\u000f"+ + "\u0000\u0a47\u0a48\u0003\u001f\u000f\u0000\u0a48\u0a49\u0003\u0007\u0003"+ + "\u0000\u0a49\u0a4a\u0003!\u0010\u0000\u0a4a\u0a4b\u0003\r\u0006\u0000"+ + "\u0a4b\u0a4c\u0005_\u0000\u0000\u0a4c\u0a4d\u0003\u0011\b\u0000\u0a4d"+ + "\u0a4e\u0003/\u0017\u0000\u0a4e\u0a4f\u0003!\u0010\u0000\u0a4f\u0a50\u0003"+ + "\u000b\u0005\u0000\u0a50\u0a51\u0003-\u0016\u0000\u0a51\u0a52\u0003\u0017"+ + "\u000b\u0000\u0a52\u0a53\u0003#\u0011\u0000\u0a53\u0a54\u0003!\u0010\u0000"+ + "\u0a54\u0a55\u0005_\u0000\u0000\u0a55\u0a56\u0003\u000b\u0005\u0000\u0a56"+ + "\u0a57\u0003#\u0011\u0000\u0a57\u0a58\u0003\r\u0006\u0000\u0a58\u0a59"+ + "\u0003\u000f\u0007\u0000\u0a59\u0100\u0001\u0000\u0000\u0000\u0a5a\u0a5b"+ + "\u0003\u000b\u0005\u0000\u0a5b\u0a5c\u0003#\u0011\u0000\u0a5c\u0a5d\u0003"+ + "\u001f\u000f\u0000\u0a5d\u0a5e\u0003\u001f\u000f\u0000\u0a5e\u0a5f\u0003"+ + "\u000f\u0007\u0000\u0a5f\u0a60\u0003!\u0010\u0000\u0a60\u0a61\u0003-\u0016"+ + "\u0000\u0a61\u0102\u0001\u0000\u0000\u0000\u0a62\u0a63\u0003\u000b\u0005"+ + "\u0000\u0a63\u0a64\u0003#\u0011\u0000\u0a64\u0a65\u0003\u001f\u000f\u0000"+ + "\u0a65\u0a66\u0003\u001f\u000f\u0000\u0a66\u0a67\u0003\u0017\u000b\u0000"+ + "\u0a67\u0a68\u0003-\u0016\u0000\u0a68\u0104\u0001\u0000\u0000\u0000\u0a69"+ + "\u0a6a\u0003\u000b\u0005\u0000\u0a6a\u0a6b\u0003#\u0011\u0000\u0a6b\u0a6c"+ + "\u0003\u001f\u000f\u0000\u0a6c\u0a6d\u0003\u001f\u000f\u0000\u0a6d\u0a6e"+ + "\u0003\u0017\u000b\u0000\u0a6e\u0a6f\u0003-\u0016\u0000\u0a6f\u0a70\u0003"+ + "-\u0016\u0000\u0a70\u0a71\u0003\u000f\u0007\u0000\u0a71\u0a72\u0003\r"+ + "\u0006\u0000\u0a72\u0106\u0001\u0000\u0000\u0000\u0a73\u0a74\u0003\u000b"+ + "\u0005\u0000\u0a74\u0a75\u0003#\u0011\u0000\u0a75\u0a76\u0003\u001f\u000f"+ + "\u0000\u0a76\u0a77\u0003%\u0012\u0000\u0a77\u0a78\u0003\u001d\u000e\u0000"+ + "\u0a78\u0a79\u0003\u000f\u0007\u0000\u0a79\u0a7a\u0003-\u0016\u0000\u0a7a"+ + "\u0a7b\u0003\u0017\u000b\u0000\u0a7b\u0a7c\u0003#\u0011\u0000\u0a7c\u0a7d"+ + "\u0003!\u0010\u0000\u0a7d\u0108\u0001\u0000\u0000\u0000\u0a7e\u0a7f\u0003"+ + "\u000b\u0005\u0000\u0a7f\u0a80\u0003#\u0011\u0000\u0a80\u0a81\u0003!\u0010"+ + "\u0000\u0a81\u0a82\u0003\r\u0006\u0000\u0a82\u0a83\u0003\u0017\u000b\u0000"+ + "\u0a83\u0a84\u0003-\u0016\u0000\u0a84\u0a85\u0003\u0017\u000b\u0000\u0a85"+ + "\u0a86\u0003#\u0011\u0000\u0a86\u0a87\u0003!\u0010\u0000\u0a87\u010a\u0001"+ + "\u0000\u0000\u0000\u0a88\u0a89\u0003\u000b\u0005\u0000\u0a89\u0a8a\u0003"+ + "#\u0011\u0000\u0a8a\u0a8b\u0003!\u0010\u0000\u0a8b\u0a8c\u0003\r\u0006"+ + "\u0000\u0a8c\u0a8d\u0003\u0017\u000b\u0000\u0a8d\u0a8e\u0003-\u0016\u0000"+ + "\u0a8e\u0a8f\u0003\u0017\u000b\u0000\u0a8f\u0a90\u0003#\u0011\u0000\u0a90"+ + "\u0a91\u0003!\u0010\u0000\u0a91\u0a92\u0005_\u0000\u0000\u0a92\u0a93\u0003"+ + "!\u0010\u0000\u0a93\u0a94\u0003/\u0017\u0000\u0a94\u0a95\u0003\u001f\u000f"+ + "\u0000\u0a95\u0a96\u0003\t\u0004\u0000\u0a96\u0a97\u0003\u000f\u0007\u0000"+ + "\u0a97\u0a98\u0003)\u0014\u0000\u0a98\u010c\u0001\u0000\u0000\u0000\u0a99"+ + "\u0a9a\u0003\u000b\u0005\u0000\u0a9a\u0a9b\u0003#\u0011\u0000\u0a9b\u0a9c"+ + "\u0003!\u0010\u0000\u0a9c\u0a9d\u0003\u0011\b\u0000\u0a9d\u0a9e\u0003"+ + "\u0017\u000b\u0000\u0a9e\u0a9f\u0003\u0013\t\u0000\u0a9f\u0aa0\u0003/"+ + "\u0017\u0000\u0aa0\u0aa1\u0003)\u0014\u0000\u0aa1\u0aa2\u0003\u0007\u0003"+ + "\u0000\u0aa2\u0aa3\u0003-\u0016\u0000\u0aa3\u0aa4\u0003\u0017\u000b\u0000"+ + "\u0aa4\u0aa5\u0003#\u0011\u0000\u0aa5\u0aa6\u0003!\u0010\u0000\u0aa6\u010e"+ + "\u0001\u0000\u0000\u0000\u0aa7\u0aa8\u0003\u000b\u0005\u0000\u0aa8\u0aa9"+ + "\u0003#\u0011\u0000\u0aa9\u0aaa\u0003!\u0010\u0000\u0aaa\u0aab\u0003\u0011"+ + "\b\u0000\u0aab\u0aac\u0003\u001d\u000e\u0000\u0aac\u0aad\u0003\u0017\u000b"+ + "\u0000\u0aad\u0aae\u0003\u000b\u0005\u0000\u0aae\u0aaf\u0003-\u0016\u0000"+ + "\u0aaf\u0110\u0001\u0000\u0000\u0000\u0ab0\u0ab1\u0003\u000b\u0005\u0000"+ + "\u0ab1\u0ab2\u0003#\u0011\u0000\u0ab2\u0ab3\u0003!\u0010\u0000\u0ab3\u0ab4"+ + "\u0003!\u0010\u0000\u0ab4\u0ab5\u0003\u000f\u0007\u0000\u0ab5\u0ab6\u0003"+ + "\u000b\u0005\u0000\u0ab6\u0ab7\u0003-\u0016\u0000\u0ab7\u0112\u0001\u0000"+ + "\u0000\u0000\u0ab8\u0ab9\u0003\u000b\u0005\u0000\u0ab9\u0aba\u0003#\u0011"+ + "\u0000\u0aba\u0abb\u0003!\u0010\u0000\u0abb\u0abc\u0003!\u0010\u0000\u0abc"+ + "\u0abd\u0003\u000f\u0007\u0000\u0abd\u0abe\u0003\u000b\u0005\u0000\u0abe"+ + "\u0abf\u0003-\u0016\u0000\u0abf\u0ac0\u0003\u0017\u000b\u0000\u0ac0\u0ac1"+ + "\u0003#\u0011\u0000\u0ac1\u0ac2\u0003!\u0010\u0000\u0ac2\u0114\u0001\u0000"+ + "\u0000\u0000\u0ac3\u0ac4\u0003\u000b\u0005\u0000\u0ac4\u0ac5\u0003#\u0011"+ + "\u0000\u0ac5\u0ac6\u0003!\u0010\u0000\u0ac6\u0ac7\u0003!\u0010\u0000\u0ac7"+ + "\u0ac8\u0003\u000f\u0007\u0000\u0ac8\u0ac9\u0003\u000b\u0005\u0000\u0ac9"+ + "\u0aca\u0003-\u0016\u0000\u0aca\u0acb\u0003\u0017\u000b\u0000\u0acb\u0acc"+ + "\u0003#\u0011\u0000\u0acc\u0acd\u0003!\u0010\u0000\u0acd\u0ace\u0005_"+ + "\u0000\u0000\u0ace\u0acf\u0003!\u0010\u0000\u0acf\u0ad0\u0003\u0007\u0003"+ + "\u0000\u0ad0\u0ad1\u0003\u001f\u000f\u0000\u0ad1\u0ad2\u0003\u000f\u0007"+ + "\u0000\u0ad2\u0116\u0001\u0000\u0000\u0000\u0ad3\u0ad4\u0003\u000b\u0005"+ + "\u0000\u0ad4\u0ad5\u0003#\u0011\u0000\u0ad5\u0ad6\u0003!\u0010\u0000\u0ad6"+ + "\u0ad7\u0003+\u0015\u0000\u0ad7\u0ad8\u0003-\u0016\u0000\u0ad8\u0ad9\u0003"+ + ")\u0014\u0000\u0ad9\u0ada\u0003\u0007\u0003\u0000\u0ada\u0adb\u0003\u0017"+ + "\u000b\u0000\u0adb\u0adc\u0003!\u0010\u0000\u0adc\u0add\u0003-\u0016\u0000"+ + "\u0add\u0118\u0001\u0000\u0000\u0000\u0ade\u0adf\u0003\u000b\u0005\u0000"+ + "\u0adf\u0ae0\u0003#\u0011\u0000\u0ae0\u0ae1\u0003!\u0010\u0000\u0ae1\u0ae2"+ + "\u0003+\u0015\u0000\u0ae2\u0ae3\u0003-\u0016\u0000\u0ae3\u0ae4\u0003)"+ + "\u0014\u0000\u0ae4\u0ae5\u0003\u0007\u0003\u0000\u0ae5\u0ae6\u0003\u0017"+ + "\u000b\u0000\u0ae6\u0ae7\u0003!\u0010\u0000\u0ae7\u0ae8\u0003-\u0016\u0000"+ + "\u0ae8\u0ae9\u0005_\u0000\u0000\u0ae9\u0aea\u0003\u000b\u0005\u0000\u0aea"+ + "\u0aeb\u0003\u0007\u0003\u0000\u0aeb\u0aec\u0003-\u0016\u0000\u0aec\u0aed"+ + "\u0003\u0007\u0003\u0000\u0aed\u0aee\u0003\u001d\u000e\u0000\u0aee\u0aef"+ + "\u0003#\u0011\u0000\u0aef\u0af0\u0003\u0013\t\u0000\u0af0\u011a\u0001"+ + "\u0000\u0000\u0000\u0af1\u0af2\u0003\u000b\u0005\u0000\u0af2\u0af3\u0003"+ + "#\u0011\u0000\u0af3\u0af4\u0003!\u0010\u0000\u0af4\u0af5\u0003+\u0015"+ + "\u0000\u0af5\u0af6\u0003-\u0016\u0000\u0af6\u0af7\u0003)\u0014\u0000\u0af7"+ + "\u0af8\u0003\u0007\u0003\u0000\u0af8\u0af9\u0003\u0017\u000b\u0000\u0af9"+ + "\u0afa\u0003!\u0010\u0000\u0afa\u0afb\u0003-\u0016\u0000\u0afb\u0afc\u0005"+ + "_\u0000\u0000\u0afc\u0afd\u0003!\u0010\u0000\u0afd\u0afe\u0003\u0007\u0003"+ + "\u0000\u0afe\u0aff\u0003\u001f\u000f\u0000\u0aff\u0b00\u0003\u000f\u0007"+ + "\u0000\u0b00\u011c\u0001\u0000\u0000\u0000\u0b01\u0b02\u0003\u000b\u0005"+ + "\u0000\u0b02\u0b03\u0003#\u0011\u0000\u0b03\u0b04\u0003!\u0010\u0000\u0b04"+ + "\u0b05\u0003+\u0015\u0000\u0b05\u0b06\u0003-\u0016\u0000\u0b06\u0b07\u0003"+ + ")\u0014\u0000\u0b07\u0b08\u0003\u0007\u0003\u0000\u0b08\u0b09\u0003\u0017"+ + "\u000b\u0000\u0b09\u0b0a\u0003!\u0010\u0000\u0b0a\u0b0b\u0003-\u0016\u0000"+ + "\u0b0b\u0b0c\u0005_\u0000\u0000\u0b0c\u0b0d\u0003+\u0015\u0000\u0b0d\u0b0e"+ + "\u0003\u000b\u0005\u0000\u0b0e\u0b0f\u0003\u0015\n\u0000\u0b0f\u0b10\u0003"+ + "\u000f\u0007\u0000\u0b10\u0b11\u0003\u001f\u000f\u0000\u0b11\u0b12\u0003"+ + "\u0007\u0003\u0000\u0b12\u011e\u0001\u0000\u0000\u0000\u0b13\u0b14\u0003"+ + "\u000b\u0005\u0000\u0b14\u0b15\u0003#\u0011\u0000\u0b15\u0b16\u0003!\u0010"+ + "\u0000\u0b16\u0b17\u0003+\u0015\u0000\u0b17\u0b18\u0003-\u0016\u0000\u0b18"+ + "\u0b19\u0003)\u0014\u0000\u0b19\u0b1a\u0003\u0007\u0003\u0000\u0b1a\u0b1b"+ + "\u0003\u0017\u000b\u0000\u0b1b\u0b1c\u0003!\u0010\u0000\u0b1c\u0b1d\u0003"+ + "-\u0016\u0000\u0b1d\u0b1e\u0003+\u0015\u0000\u0b1e\u0120\u0001\u0000\u0000"+ + "\u0000\u0b1f\u0b20\u0003\u000b\u0005\u0000\u0b20\u0b21\u0003#\u0011\u0000"+ + "\u0b21\u0b22\u0003!\u0010\u0000\u0b22\u0b23\u0003+\u0015\u0000\u0b23\u0b24"+ + "\u0003-\u0016\u0000\u0b24\u0b25\u0003)\u0014\u0000\u0b25\u0b26\u0003/"+ + "\u0017\u0000\u0b26\u0b27\u0003\u000b\u0005\u0000\u0b27\u0b28\u0003-\u0016"+ + "\u0000\u0b28\u0b29\u0003#\u0011\u0000\u0b29\u0b2a\u0003)\u0014\u0000\u0b2a"+ + "\u0122\u0001\u0000\u0000\u0000\u0b2b\u0b2c\u0003\u000b\u0005\u0000\u0b2c"+ + "\u0b2d\u0003#\u0011\u0000\u0b2d\u0b2e\u0003!\u0010\u0000\u0b2e\u0b2f\u0003"+ + "-\u0016\u0000\u0b2f\u0b30\u0003\u0007\u0003\u0000\u0b30\u0b31\u0003\u0017"+ + "\u000b\u0000\u0b31\u0b32\u0003!\u0010\u0000\u0b32\u0b33\u0003+\u0015\u0000"+ + "\u0b33\u0124\u0001\u0000\u0000\u0000\u0b34\u0b35\u0003\u000b\u0005\u0000"+ + "\u0b35\u0b36\u0003#\u0011\u0000\u0b36\u0b37\u0003!\u0010\u0000\u0b37\u0b38"+ + "\u0003-\u0016\u0000\u0b38\u0b39\u0003\u0017\u000b\u0000\u0b39\u0b3a\u0003"+ + "!\u0010\u0000\u0b3a\u0b3b\u0003/\u0017\u0000\u0b3b\u0b3c\u0003\u000f\u0007"+ + "\u0000\u0b3c\u0126\u0001\u0000\u0000\u0000\u0b3d\u0b3e\u0003\u000b\u0005"+ + "\u0000\u0b3e\u0b3f\u0003#\u0011\u0000\u0b3f\u0b40\u0003!\u0010\u0000\u0b40"+ + "\u0b41\u00031\u0018\u0000\u0b41\u0b42\u0003\u000f\u0007\u0000\u0b42\u0b43"+ + "\u0003)\u0014\u0000\u0b43\u0b44\u0003+\u0015\u0000\u0b44\u0b45\u0003\u0017"+ + "\u000b\u0000\u0b45\u0b46\u0003#\u0011\u0000\u0b46\u0b47\u0003!\u0010\u0000"+ + "\u0b47\u0128\u0001\u0000\u0000\u0000\u0b48\u0b49\u0003\u000b\u0005\u0000"+ + "\u0b49\u0b4a\u0003#\u0011\u0000\u0b4a\u0b4b\u0003!\u0010\u0000\u0b4b\u0b4c"+ + "\u00031\u0018\u0000\u0b4c\u0b4d\u0003\u000f\u0007\u0000\u0b4d\u0b4e\u0003"+ + ")\u0014\u0000\u0b4e\u0b4f\u0003-\u0016\u0000\u0b4f\u012a\u0001\u0000\u0000"+ + "\u0000\u0b50\u0b51\u0003\u000b\u0005\u0000\u0b51\u0b52\u0003#\u0011\u0000"+ + "\u0b52\u0b53\u0003%\u0012\u0000\u0b53\u0b54\u00037\u001b\u0000\u0b54\u012c"+ + "\u0001\u0000\u0000\u0000\u0b55\u0b56\u0003\u000b\u0005\u0000\u0b56\u0b57"+ + "\u0003#\u0011\u0000\u0b57\u0b58\u0003)\u0014\u0000\u0b58\u0b59\u0003)"+ + "\u0014\u0000\u0b59\u012e\u0001\u0000\u0000\u0000\u0b5a\u0b5b\u0003\u000b"+ + "\u0005\u0000\u0b5b\u0b5c\u0003#\u0011\u0000\u0b5c\u0b5d\u0003)\u0014\u0000"+ + "\u0b5d\u0b5e\u0003)\u0014\u0000\u0b5e\u0b5f\u0003\u000f\u0007\u0000\u0b5f"+ + "\u0b60\u0003+\u0015\u0000\u0b60\u0b61\u0003%\u0012\u0000\u0b61\u0b62\u0003"+ + "#\u0011\u0000\u0b62\u0b63\u0003!\u0010\u0000\u0b63\u0b64\u0003\r\u0006"+ + "\u0000\u0b64\u0b65\u0003\u0017\u000b\u0000\u0b65\u0b66\u0003!\u0010\u0000"+ + "\u0b66\u0b67\u0003\u0013\t\u0000\u0b67\u0130\u0001\u0000\u0000\u0000\u0b68"+ + "\u0b69\u0003\u000b\u0005\u0000\u0b69\u0b6a\u0003#\u0011\u0000\u0b6a\u0b6b"+ + "\u0003+\u0015\u0000\u0b6b\u0b6c\u0003-\u0016\u0000\u0b6c\u0b6d\u0003+"+ + "\u0015\u0000\u0b6d\u0132\u0001\u0000\u0000\u0000\u0b6e\u0b6f\u0003\u000b"+ + "\u0005\u0000\u0b6f\u0b70\u0003#\u0011\u0000\u0b70\u0b71\u0003/\u0017\u0000"+ + "\u0b71\u0b72\u0003!\u0010\u0000\u0b72\u0b73\u0003-\u0016\u0000\u0b73\u0134"+ + "\u0001\u0000\u0000\u0000\u0b74\u0b75\u0003\u000b\u0005\u0000\u0b75\u0b76"+ + "\u0003#\u0011\u0000\u0b76\u0b77\u00031\u0018\u0000\u0b77\u0b78\u0003\u0007"+ + "\u0003\u0000\u0b78\u0b79\u0003)\u0014\u0000\u0b79\u0b7a\u0005_\u0000\u0000"+ + "\u0b7a\u0b7b\u0003%\u0012\u0000\u0b7b\u0b7c\u0003#\u0011\u0000\u0b7c\u0b7d"+ + "\u0003%\u0012\u0000\u0b7d\u0136\u0001\u0000\u0000\u0000\u0b7e\u0b7f\u0003"+ + "\u000b\u0005\u0000\u0b7f\u0b80\u0003#\u0011\u0000\u0b80\u0b81\u00031\u0018"+ + "\u0000\u0b81\u0b82\u0003\u0007\u0003\u0000\u0b82\u0b83\u0003)\u0014\u0000"+ + "\u0b83\u0b84\u0005_\u0000\u0000\u0b84\u0b85\u0003+\u0015\u0000\u0b85\u0b86"+ + "\u0003\u0007\u0003\u0000\u0b86\u0b87\u0003\u001f\u000f\u0000\u0b87\u0b88"+ + "\u0003%\u0012\u0000\u0b88\u0138\u0001\u0000\u0000\u0000\u0b89\u0b8a\u0003"+ + "\u000b\u0005\u0000\u0b8a\u0b8b\u0003)\u0014\u0000\u0b8b\u0b8c\u0003\u000f"+ + "\u0007\u0000\u0b8c\u0b8d\u0003\u0007\u0003\u0000\u0b8d\u0b8e\u0003-\u0016"+ + "\u0000\u0b8e\u0b8f\u0003\u000f\u0007\u0000\u0b8f\u013a\u0001\u0000\u0000"+ + "\u0000\u0b90\u0b91\u0003\u000b\u0005\u0000\u0b91\u0b92\u0003)\u0014\u0000"+ + "\u0b92\u0b93\u0003\u000f\u0007\u0000\u0b93\u0b94\u0003\u0007\u0003\u0000"+ + "\u0b94\u0b95\u0003-\u0016\u0000\u0b95\u0b96\u0003\u000f\u0007\u0000\u0b96"+ + "\u0b97\u0003\r\u0006\u0000\u0b97\u0b98\u0003\t\u0004\u0000\u0b98\u013c"+ + "\u0001\u0000\u0000\u0000\u0b99\u0b9a\u0003\u000b\u0005\u0000\u0b9a\u0b9b"+ + "\u0003)\u0014\u0000\u0b9b\u0b9c\u0003\u000f\u0007\u0000\u0b9c\u0b9d\u0003"+ + "\u0007\u0003\u0000\u0b9d\u0b9e\u0003-\u0016\u0000\u0b9e\u0b9f\u0003\u000f"+ + "\u0007\u0000\u0b9f\u0ba0\u0003/\u0017\u0000\u0ba0\u0ba1\u0003+\u0015\u0000"+ + "\u0ba1\u0ba2\u0003\u000f\u0007\u0000\u0ba2\u0ba3\u0003)\u0014\u0000\u0ba3"+ + "\u013e\u0001\u0000\u0000\u0000\u0ba4\u0ba5\u0003\u000b\u0005\u0000\u0ba5"+ + "\u0ba6\u0003)\u0014\u0000\u0ba6\u0ba7\u0003#\u0011\u0000\u0ba7\u0ba8\u0003"+ + "+\u0015\u0000\u0ba8\u0ba9\u0003+\u0015\u0000\u0ba9\u0140\u0001\u0000\u0000"+ + "\u0000\u0baa\u0bab\u0003\u000b\u0005\u0000\u0bab\u0bac\u0003+\u0015\u0000"+ + "\u0bac\u0bad\u00031\u0018\u0000\u0bad\u0142\u0001\u0000\u0000\u0000\u0bae"+ + "\u0baf\u0003\u000b\u0005\u0000\u0baf\u0bb0\u0003/\u0017\u0000\u0bb0\u0bb1"+ + "\u0003\t\u0004\u0000\u0bb1\u0bb2\u0003\u000f\u0007\u0000\u0bb2\u0144\u0001"+ + "\u0000\u0000\u0000\u0bb3\u0bb4\u0003\u000b\u0005\u0000\u0bb4\u0bb5\u0003"+ + "/\u0017\u0000\u0bb5\u0bb6\u0003\u001f\u000f\u0000\u0bb6\u0bb7\u0003\u000f"+ + "\u0007\u0000\u0bb7\u0bb8\u0005_\u0000\u0000\u0bb8\u0bb9\u0003\r\u0006"+ + "\u0000\u0bb9\u0bba\u0003\u0017\u000b\u0000\u0bba\u0bbb\u0003+\u0015\u0000"+ + "\u0bbb\u0bbc\u0003-\u0016\u0000\u0bbc\u0146\u0001\u0000\u0000\u0000\u0bbd"+ + "\u0bbe\u0003\u000b\u0005\u0000\u0bbe\u0bbf\u0003/\u0017\u0000\u0bbf\u0bc0"+ + "\u0003)\u0014\u0000\u0bc0\u0bc1\u0003)\u0014\u0000\u0bc1\u0bc2\u0003\u000f"+ + "\u0007\u0000\u0bc2\u0bc3\u0003!\u0010\u0000\u0bc3\u0bc4\u0003-\u0016\u0000"+ + "\u0bc4\u0148\u0001\u0000\u0000\u0000\u0bc5\u0bc6\u0003\u000b\u0005\u0000"+ + "\u0bc6\u0bc7\u0003/\u0017\u0000\u0bc7\u0bc8\u0003)\u0014\u0000\u0bc8\u0bc9"+ + "\u0003)\u0014\u0000\u0bc9\u0bca\u0003\u000f\u0007\u0000\u0bca\u0bcb\u0003"+ + "!\u0010\u0000\u0bcb\u0bcc\u0003-\u0016\u0000\u0bcc\u0bcd\u0005_\u0000"+ + "\u0000\u0bcd\u0bce\u0003\r\u0006\u0000\u0bce\u0bcf\u0003\u0007\u0003\u0000"+ + "\u0bcf\u0bd0\u0003-\u0016\u0000\u0bd0\u0bd1\u0003\u000f\u0007\u0000\u0bd1"+ + "\u014a\u0001\u0000\u0000\u0000\u0bd2\u0bd3\u0003\u000b\u0005\u0000\u0bd3"+ + "\u0bd4\u0003/\u0017\u0000\u0bd4\u0bd5\u0003)\u0014\u0000\u0bd5\u0bd6\u0003"+ + ")\u0014\u0000\u0bd6\u0bd7\u0003\u000f\u0007\u0000\u0bd7\u0bd8\u0003!\u0010"+ + "\u0000\u0bd8\u0bd9\u0003-\u0016\u0000\u0bd9\u0bda\u0005_\u0000\u0000\u0bda"+ + "\u0bdb\u0003\r\u0006\u0000\u0bdb\u0bdc\u0003\u000f\u0007\u0000\u0bdc\u0bdd"+ + "\u0003\u0011\b\u0000\u0bdd\u0bde\u0003\u0007\u0003\u0000\u0bde\u0bdf\u0003"+ + "/\u0017\u0000\u0bdf\u0be0\u0003\u001d\u000e\u0000\u0be0\u0be1\u0003-\u0016"+ + "\u0000\u0be1\u0be2\u0005_\u0000\u0000\u0be2\u0be3\u0003-\u0016\u0000\u0be3"+ + "\u0be4\u0003)\u0014\u0000\u0be4\u0be5\u0003\u0007\u0003\u0000\u0be5\u0be6"+ + "\u0003!\u0010\u0000\u0be6\u0be7\u0003+\u0015\u0000\u0be7\u0be8\u0003\u0011"+ + "\b\u0000\u0be8\u0be9\u0003#\u0011\u0000\u0be9\u0bea\u0003)\u0014\u0000"+ + "\u0bea\u0beb\u0003\u001f\u000f\u0000\u0beb\u0bec\u0005_\u0000\u0000\u0bec"+ + "\u0bed\u0003\u0013\t\u0000\u0bed\u0bee\u0003)\u0014\u0000\u0bee\u0bef"+ + "\u0003#\u0011\u0000\u0bef\u0bf0\u0003/\u0017\u0000\u0bf0\u0bf1\u0003%"+ + "\u0012\u0000\u0bf1\u014c\u0001\u0000\u0000\u0000\u0bf2\u0bf3\u0003\u000b"+ + "\u0005\u0000\u0bf3\u0bf4\u0003/\u0017\u0000\u0bf4\u0bf5\u0003)\u0014\u0000"+ + "\u0bf5\u0bf6\u0003)\u0014\u0000\u0bf6\u0bf7\u0003\u000f\u0007\u0000\u0bf7"+ + "\u0bf8\u0003!\u0010\u0000\u0bf8\u0bf9\u0003-\u0016\u0000\u0bf9\u0bfa\u0005"+ + "_\u0000\u0000\u0bfa\u0bfb\u0003%\u0012\u0000\u0bfb\u0bfc\u0003\u0007\u0003"+ + "\u0000\u0bfc\u0bfd\u0003-\u0016\u0000\u0bfd\u0bfe\u0003\u0015\n\u0000"+ + "\u0bfe\u014e\u0001\u0000\u0000\u0000\u0bff\u0c00\u0003\u000b\u0005\u0000"+ + "\u0c00\u0c01\u0003/\u0017\u0000\u0c01\u0c02\u0003)\u0014\u0000\u0c02\u0c03"+ + "\u0003)\u0014\u0000\u0c03\u0c04\u0003\u000f\u0007\u0000\u0c04\u0c05\u0003"+ + "!\u0010\u0000\u0c05\u0c06\u0003-\u0016\u0000\u0c06\u0c07\u0005_\u0000"+ + "\u0000\u0c07\u0c08\u0003)\u0014\u0000\u0c08\u0c09\u0003#\u0011\u0000\u0c09"+ + "\u0c0a\u0003\u001d\u000e\u0000\u0c0a\u0c0b\u0003\u000f\u0007\u0000\u0c0b"+ + "\u0150\u0001\u0000\u0000\u0000\u0c0c\u0c0d\u0003\u000b\u0005\u0000\u0c0d"+ + "\u0c0e\u0003/\u0017\u0000\u0c0e\u0c0f\u0003)\u0014\u0000\u0c0f\u0c10\u0003"+ + ")\u0014\u0000\u0c10\u0c11\u0003\u000f\u0007\u0000\u0c11\u0c12\u0003!\u0010"+ + "\u0000\u0c12\u0c13\u0003-\u0016\u0000\u0c13\u0c14\u0005_\u0000\u0000\u0c14"+ + "\u0c15\u0003-\u0016\u0000\u0c15\u0c16\u0003\u0017\u000b\u0000\u0c16\u0c17"+ + "\u0003\u001f\u000f\u0000\u0c17\u0c18\u0003\u000f\u0007\u0000\u0c18\u0152"+ + "\u0001\u0000\u0000\u0000\u0c19\u0c1a\u0003\u000b\u0005\u0000\u0c1a\u0c1b"+ + "\u0003/\u0017\u0000\u0c1b\u0c1c\u0003)\u0014\u0000\u0c1c\u0c1d\u0003)"+ + "\u0014\u0000\u0c1d\u0c1e\u0003\u000f\u0007\u0000\u0c1e\u0c1f\u0003!\u0010"+ + "\u0000\u0c1f\u0c20\u0003-\u0016\u0000\u0c20\u0c21\u0005_\u0000\u0000\u0c21"+ + "\u0c22\u0003-\u0016\u0000\u0c22\u0c23\u0003\u0017\u000b\u0000\u0c23\u0c24"+ + "\u0003\u001f\u000f\u0000\u0c24\u0c25\u0003\u000f\u0007\u0000\u0c25\u0c26"+ + "\u0003+\u0015\u0000\u0c26\u0c27\u0003-\u0016\u0000\u0c27\u0c28\u0003\u0007"+ + "\u0003\u0000\u0c28\u0c29\u0003\u001f\u000f\u0000\u0c29\u0c2a\u0003%\u0012"+ + "\u0000\u0c2a\u0154\u0001\u0000\u0000\u0000\u0c2b\u0c2c\u0003\u000b\u0005"+ + "\u0000\u0c2c\u0c2d\u0003/\u0017\u0000\u0c2d\u0c2e\u0003)\u0014\u0000\u0c2e"+ + "\u0c2f\u0003)\u0014\u0000\u0c2f\u0c30\u0003\u000f\u0007\u0000\u0c30\u0c31"+ + "\u0003!\u0010\u0000\u0c31\u0c32\u0003-\u0016\u0000\u0c32\u0c33\u0005_"+ + "\u0000\u0000\u0c33\u0c34\u0003-\u0016\u0000\u0c34\u0c35\u0003)\u0014\u0000"+ + "\u0c35\u0c36\u0003\u0007\u0003\u0000\u0c36\u0c37\u0003!\u0010\u0000\u0c37"+ + "\u0c38\u0003+\u0015\u0000\u0c38\u0c39\u0003\u0011\b\u0000\u0c39\u0c3a"+ + "\u0003#\u0011\u0000\u0c3a\u0c3b\u0003)\u0014\u0000\u0c3b\u0c3c\u0003\u001f"+ + "\u000f\u0000\u0c3c\u0c3d\u0005_\u0000\u0000\u0c3d\u0c3e\u0003\u0013\t"+ + "\u0000\u0c3e\u0c3f\u0003)\u0014\u0000\u0c3f\u0c40\u0003#\u0011\u0000\u0c40"+ + "\u0c41\u0003/\u0017\u0000\u0c41\u0c42\u0003%\u0012\u0000\u0c42\u0c43\u0005"+ + "_\u0000\u0000\u0c43\u0c44\u0003\u0011\b\u0000\u0c44\u0c45\u0003#\u0011"+ + "\u0000\u0c45\u0c46\u0003)\u0014\u0000\u0c46\u0c47\u0005_\u0000\u0000\u0c47"+ + "\u0c48\u0003-\u0016\u0000\u0c48\u0c49\u00037\u001b\u0000\u0c49\u0c4a\u0003"+ + "%\u0012\u0000\u0c4a\u0c4b\u0003\u000f\u0007\u0000\u0c4b\u0156\u0001\u0000"+ + "\u0000\u0000\u0c4c\u0c4d\u0003\u000b\u0005\u0000\u0c4d\u0c4e\u0003/\u0017"+ + "\u0000\u0c4e\u0c4f\u0003)\u0014\u0000\u0c4f\u0c50\u0003)\u0014\u0000\u0c50"+ + "\u0c51\u0003\u000f\u0007\u0000\u0c51\u0c52\u0003!\u0010\u0000\u0c52\u0c53"+ + "\u0003-\u0016\u0000\u0c53\u0c54\u0005_\u0000\u0000\u0c54\u0c55\u0003/"+ + "\u0017\u0000\u0c55\u0c56\u0003+\u0015\u0000\u0c56\u0c57\u0003\u000f\u0007"+ + "\u0000\u0c57\u0c58\u0003)\u0014\u0000\u0c58\u0158\u0001\u0000\u0000\u0000"+ + "\u0c59\u0c5a\u0003\u000b\u0005\u0000\u0c5a\u0c5b\u0003/\u0017\u0000\u0c5b"+ + "\u0c5c\u0003)\u0014\u0000\u0c5c\u0c5d\u0003+\u0015\u0000\u0c5d\u0c5e\u0003"+ + "#\u0011\u0000\u0c5e\u0c5f\u0003)\u0014\u0000\u0c5f\u015a\u0001\u0000\u0000"+ + "\u0000\u0c60\u0c61\u0003\u000b\u0005\u0000\u0c61\u0c62\u0003/\u0017\u0000"+ + "\u0c62\u0c63\u0003)\u0014\u0000\u0c63\u0c64\u0003+\u0015\u0000\u0c64\u0c65"+ + "\u0003#\u0011\u0000\u0c65\u0c66\u0003)\u0014\u0000\u0c66\u0c67\u0005_"+ + "\u0000\u0000\u0c67\u0c68\u0003!\u0010\u0000\u0c68\u0c69\u0003\u0007\u0003"+ + "\u0000\u0c69\u0c6a\u0003\u001f\u000f\u0000\u0c6a\u0c6b\u0003\u000f\u0007"+ + "\u0000\u0c6b\u015c\u0001\u0000\u0000\u0000\u0c6c\u0c6d\u0003\u000b\u0005"+ + "\u0000\u0c6d\u0c6e\u00037\u001b\u0000\u0c6e\u0c6f\u0003\u000b\u0005\u0000"+ + "\u0c6f\u0c70\u0003\u001d\u000e\u0000\u0c70\u0c71\u0003\u000f\u0007\u0000"+ + "\u0c71\u015e\u0001\u0000\u0000\u0000\u0c72\u0c73\u0003\r\u0006\u0000\u0c73"+ + "\u0c74\u0003\u0007\u0003\u0000\u0c74\u0c75\u0003-\u0016\u0000\u0c75\u0c76"+ + "\u0003\u0007\u0003\u0000\u0c76\u0160\u0001\u0000\u0000\u0000\u0c77\u0c78"+ + "\u0003\r\u0006\u0000\u0c78\u0c79\u0003\u0007\u0003\u0000\u0c79\u0c7a\u0003"+ + "-\u0016\u0000\u0c7a\u0c7b\u0003\u0007\u0003\u0000\u0c7b\u0c7c\u0003\t"+ + "\u0004\u0000\u0c7c\u0c7d\u0003\u0007\u0003\u0000\u0c7d\u0c7e\u0003+\u0015"+ + "\u0000\u0c7e\u0c7f\u0003\u000f\u0007\u0000\u0c7f\u0162\u0001\u0000\u0000"+ + "\u0000\u0c80\u0c81\u0003\r\u0006\u0000\u0c81\u0c82\u0003\u0007\u0003\u0000"+ + "\u0c82\u0c83\u0003-\u0016\u0000\u0c83\u0c84\u0003\u000f\u0007\u0000\u0c84"+ + "\u0164\u0001\u0000\u0000\u0000\u0c85\u0c86\u0003\r\u0006\u0000\u0c86\u0c87"+ + "\u0003\u0007\u0003\u0000\u0c87\u0c88\u0003-\u0016\u0000\u0c88\u0c89\u0003"+ + "\u000f\u0007\u0000\u0c89\u0c8a\u0003-\u0016\u0000\u0c8a\u0c8b\u0003\u0017"+ + "\u000b\u0000\u0c8b\u0c8c\u0003\u001f\u000f\u0000\u0c8c\u0c8d\u0003\u000f"+ + "\u0007\u0000\u0c8d\u0c8e\u0005_\u0000\u0000\u0c8e\u0c8f\u0003\u0017\u000b"+ + "\u0000\u0c8f\u0c90\u0003!\u0010\u0000\u0c90\u0c91\u0003-\u0016\u0000\u0c91"+ + "\u0c92\u0003\u000f\u0007\u0000\u0c92\u0c93\u0003)\u0014\u0000\u0c93\u0c94"+ + "\u00031\u0018\u0000\u0c94\u0c95\u0003\u0007\u0003\u0000\u0c95\u0c96\u0003"+ + "\u001d\u000e\u0000\u0c96\u0c97\u0005_\u0000\u0000\u0c97\u0c98\u0003\u000b"+ + "\u0005\u0000\u0c98\u0c99\u0003#\u0011\u0000\u0c99\u0c9a\u0003\r\u0006"+ + "\u0000\u0c9a\u0c9b\u0003\u000f\u0007\u0000\u0c9b\u0166\u0001\u0000\u0000"+ + "\u0000\u0c9c\u0c9d\u0003\r\u0006\u0000\u0c9d\u0c9e\u0003\u0007\u0003\u0000"+ + "\u0c9e\u0c9f\u0003-\u0016\u0000\u0c9f\u0ca0\u0003\u000f\u0007\u0000\u0ca0"+ + "\u0ca1\u0003-\u0016\u0000\u0ca1\u0ca2\u0003\u0017\u000b\u0000\u0ca2\u0ca3"+ + "\u0003\u001f\u000f\u0000\u0ca3\u0ca4\u0003\u000f\u0007\u0000\u0ca4\u0ca5"+ + "\u0005_\u0000\u0000\u0ca5\u0ca6\u0003\u0017\u000b\u0000\u0ca6\u0ca7\u0003"+ + "!\u0010\u0000\u0ca7\u0ca8\u0003-\u0016\u0000\u0ca8\u0ca9\u0003\u000f\u0007"+ + "\u0000\u0ca9\u0caa\u0003)\u0014\u0000\u0caa\u0cab\u00031\u0018\u0000\u0cab"+ + "\u0cac\u0003\u0007\u0003\u0000\u0cac\u0cad\u0003\u001d\u000e\u0000\u0cad"+ + "\u0cae\u0005_\u0000\u0000\u0cae\u0caf\u0003%\u0012\u0000\u0caf\u0cb0\u0003"+ + ")\u0014\u0000\u0cb0\u0cb1\u0003\u000f\u0007\u0000\u0cb1\u0cb2\u0003\u000b"+ + "\u0005\u0000\u0cb2\u0cb3\u0003\u0017\u000b\u0000\u0cb3\u0cb4\u0003+\u0015"+ + "\u0000\u0cb4\u0cb5\u0003\u0017\u000b\u0000\u0cb5\u0cb6\u0003#\u0011\u0000"+ + "\u0cb6\u0cb7\u0003!\u0010\u0000\u0cb7\u0168\u0001\u0000\u0000\u0000\u0cb8"+ + "\u0cb9\u0003\r\u0006\u0000\u0cb9\u0cba\u0003\u0007\u0003\u0000\u0cba\u0cbb"+ + "\u00037\u001b\u0000\u0cbb\u016a\u0001\u0000\u0000\u0000\u0cbc\u0cbd\u0003"+ + "\r\u0006\u0000\u0cbd\u0cbe\u0003\u000f\u0007\u0000\u0cbe\u0cbf\u0003\u0007"+ + "\u0003\u0000\u0cbf\u0cc0\u0003\u001d\u000e\u0000\u0cc0\u0cc1\u0003\u001d"+ + "\u000e\u0000\u0cc1\u0cc2\u0003#\u0011\u0000\u0cc2\u0cc3\u0003\u000b\u0005"+ + "\u0000\u0cc3\u0cc4\u0003\u0007\u0003\u0000\u0cc4\u0cc5\u0003-\u0016\u0000"+ + "\u0cc5\u0cc6\u0003\u000f\u0007\u0000\u0cc6\u016c\u0001\u0000\u0000\u0000"+ + "\u0cc7\u0cc8\u0003\r\u0006\u0000\u0cc8\u0cc9\u0003\u000f\u0007\u0000\u0cc9"+ + "\u0cca\u0003\u000b\u0005\u0000\u0cca\u016e\u0001\u0000\u0000\u0000\u0ccb"+ + "\u0ccc\u0003\r\u0006\u0000\u0ccc\u0ccd\u0003\u000f\u0007\u0000\u0ccd\u0cce"+ + "\u0003\u000b\u0005\u0000\u0cce\u0ccf\u0003\u0017\u000b\u0000\u0ccf\u0cd0"+ + "\u0003\u001f\u000f\u0000\u0cd0\u0cd1\u0003\u0007\u0003\u0000\u0cd1\u0cd2"+ + "\u0003\u001d\u000e\u0000\u0cd2\u0170\u0001\u0000\u0000\u0000\u0cd3\u0cd4"+ + "\u0003\r\u0006\u0000\u0cd4\u0cd5\u0003\u000f\u0007\u0000\u0cd5\u0cd6\u0003"+ + "\u000b\u0005\u0000\u0cd6\u0cd7\u0003\u001d\u000e\u0000\u0cd7\u0cd8\u0003"+ + "\u0007\u0003\u0000\u0cd8\u0cd9\u0003)\u0014\u0000\u0cd9\u0cda\u0003\u000f"+ + "\u0007\u0000\u0cda\u0172\u0001\u0000\u0000\u0000\u0cdb\u0cdc\u0003\r\u0006"+ + "\u0000\u0cdc\u0cdd\u0003\u000f\u0007\u0000\u0cdd\u0cde\u0003\u0011\b\u0000"+ + "\u0cde\u0cdf\u0003\u0007\u0003\u0000\u0cdf\u0ce0\u0003/\u0017\u0000\u0ce0"+ + "\u0ce1\u0003\u001d\u000e\u0000\u0ce1\u0ce2\u0003-\u0016\u0000\u0ce2\u0174"+ + "\u0001\u0000\u0000\u0000\u0ce3\u0ce4\u0003\r\u0006\u0000\u0ce4\u0ce5\u0003"+ + "\u000f\u0007\u0000\u0ce5\u0ce6\u0003\u0011\b\u0000\u0ce6\u0ce7\u0003\u0007"+ + "\u0003\u0000\u0ce7\u0ce8\u0003/\u0017\u0000\u0ce8\u0ce9\u0003\u001d\u000e"+ + "\u0000\u0ce9\u0cea\u0003-\u0016\u0000\u0cea\u0ceb\u0003+\u0015\u0000\u0ceb"+ + "\u0176\u0001\u0000\u0000\u0000\u0cec\u0ced\u0003\r\u0006\u0000\u0ced\u0cee"+ + "\u0003\u000f\u0007\u0000\u0cee\u0cef\u0003\u0011\b\u0000\u0cef\u0cf0\u0003"+ + "\u000f\u0007\u0000\u0cf0\u0cf1\u0003)\u0014\u0000\u0cf1\u0cf2\u0003\u0007"+ + "\u0003\u0000\u0cf2\u0cf3\u0003\t\u0004\u0000\u0cf3\u0cf4\u0003\u001d\u000e"+ + "\u0000\u0cf4\u0cf5\u0003\u000f\u0007\u0000\u0cf5\u0178\u0001\u0000\u0000"+ + "\u0000\u0cf6\u0cf7\u0003\r\u0006\u0000\u0cf7\u0cf8\u0003\u000f\u0007\u0000"+ + "\u0cf8\u0cf9\u0003\u0011\b\u0000\u0cf9\u0cfa\u0003\u000f\u0007\u0000\u0cfa"+ + "\u0cfb\u0003)\u0014\u0000\u0cfb\u0cfc\u0003)\u0014\u0000\u0cfc\u0cfd\u0003"+ + "\u0007\u0003\u0000\u0cfd\u0cfe\u0003\t\u0004\u0000\u0cfe\u0cff\u0003\u001d"+ + "\u000e\u0000\u0cff\u0d00\u0003\u000f\u0007\u0000\u0d00\u017a\u0001\u0000"+ + "\u0000\u0000\u0d01\u0d02\u0003\r\u0006\u0000\u0d02\u0d03\u0003\u000f\u0007"+ + "\u0000\u0d03\u0d04\u0003\u0011\b\u0000\u0d04\u0d05\u0003\u000f\u0007\u0000"+ + "\u0d05\u0d06\u0003)\u0014\u0000\u0d06\u0d07\u0003)\u0014\u0000\u0d07\u0d08"+ + "\u0003\u000f\u0007\u0000\u0d08\u0d09\u0003\r\u0006\u0000\u0d09\u017c\u0001"+ + "\u0000\u0000\u0000\u0d0a\u0d0b\u0003\r\u0006\u0000\u0d0b\u0d0c\u0003\u000f"+ + "\u0007\u0000\u0d0c\u0d0d\u0003\u0011\b\u0000\u0d0d\u0d0e\u0003\u0017\u000b"+ + "\u0000\u0d0e\u0d0f\u0003!\u0010\u0000\u0d0f\u0d10\u0003\u000f\u0007\u0000"+ + "\u0d10\u0d11\u0003\r\u0006\u0000\u0d11\u017e\u0001\u0000\u0000\u0000\u0d12"+ + "\u0d13\u0003\r\u0006\u0000\u0d13\u0d14\u0003\u000f\u0007\u0000\u0d14\u0d15"+ + "\u0003\u0011\b\u0000\u0d15\u0d16\u0003\u0017\u000b\u0000\u0d16\u0d17\u0003"+ + "!\u0010\u0000\u0d17\u0d18\u0003\u000f\u0007\u0000\u0d18\u0d19\u0003)\u0014"+ + "\u0000\u0d19\u0180\u0001\u0000\u0000\u0000\u0d1a\u0d1b\u0003\r\u0006\u0000"+ + "\u0d1b\u0d1c\u0003\u000f\u0007\u0000\u0d1c\u0d1d\u0003\u0013\t\u0000\u0d1d"+ + "\u0d1e\u0003)\u0014\u0000\u0d1e\u0d1f\u0003\u000f\u0007\u0000\u0d1f\u0d20"+ + "\u0003\u000f\u0007\u0000\u0d20\u0182\u0001\u0000\u0000\u0000\u0d21\u0d22"+ + "\u0003\r\u0006\u0000\u0d22\u0d23\u0003\u000f\u0007\u0000\u0d23\u0d24\u0003"+ + "\u001d\u000e\u0000\u0d24\u0d25\u0003\u000f\u0007\u0000\u0d25\u0d26\u0003"+ + "-\u0016\u0000\u0d26\u0d27\u0003\u000f\u0007\u0000\u0d27\u0184\u0001\u0000"+ + "\u0000\u0000\u0d28\u0d29\u0003\r\u0006\u0000\u0d29\u0d2a\u0003\u000f\u0007"+ + "\u0000\u0d2a\u0d2b\u0003\u001d\u000e\u0000\u0d2b\u0d2c\u0003\u0017\u000b"+ + "\u0000\u0d2c\u0d2d\u0003\u001f\u000f\u0000\u0d2d\u0d2e\u0003\u0017\u000b"+ + "\u0000\u0d2e\u0d2f\u0003-\u0016\u0000\u0d2f\u0d30\u0003\u000f\u0007\u0000"+ + "\u0d30\u0d31\u0003)\u0014\u0000\u0d31\u0186\u0001\u0000\u0000\u0000\u0d32"+ + "\u0d33\u0003\r\u0006\u0000\u0d33\u0d34\u0003\u000f\u0007\u0000\u0d34\u0d35"+ + "\u0003\u001d\u000e\u0000\u0d35\u0d36\u0003\u0017\u000b\u0000\u0d36\u0d37"+ + "\u0003\u001f\u000f\u0000\u0d37\u0d38\u0003\u0017\u000b\u0000\u0d38\u0d39"+ + "\u0003-\u0016\u0000\u0d39\u0d3a\u0003\u000f\u0007\u0000\u0d3a\u0d3b\u0003"+ + ")\u0014\u0000\u0d3b\u0d3c\u0003+\u0015\u0000\u0d3c\u0188\u0001\u0000\u0000"+ + "\u0000\u0d3d\u0d3e\u0003\r\u0006\u0000\u0d3e\u0d3f\u0003\u000f\u0007\u0000"+ + "\u0d3f\u0d40\u0003!\u0010\u0000\u0d40\u0d41\u0003+\u0015\u0000\u0d41\u0d42"+ + "\u0003\u000f\u0007\u0000\u0d42\u0d43\u0005_\u0000\u0000\u0d43\u0d44\u0003"+ + ")\u0014\u0000\u0d44\u0d45\u0003\u0007\u0003\u0000\u0d45\u0d46\u0003!\u0010"+ + "\u0000\u0d46\u0d47\u0003\u001b\r\u0000\u0d47\u018a\u0001\u0000\u0000\u0000"+ + "\u0d48\u0d49\u0003\r\u0006\u0000\u0d49\u0d4a\u0003\u000f\u0007\u0000\u0d4a"+ + "\u0d4b\u0003%\u0012\u0000\u0d4b\u0d4c\u0003\u000f\u0007\u0000\u0d4c\u0d4d"+ + "\u0003!\u0010\u0000\u0d4d\u0d4e\u0003\r\u0006\u0000\u0d4e\u0d4f\u0003"+ + "+\u0015\u0000\u0d4f\u018c\u0001\u0000\u0000\u0000\u0d50\u0d51\u0003\r"+ + "\u0006\u0000\u0d51\u0d52\u0003\u000f\u0007\u0000\u0d52\u0d53\u0003%\u0012"+ + "\u0000\u0d53\u0d54\u0003-\u0016\u0000\u0d54\u0d55\u0003\u0015\n\u0000"+ + "\u0d55\u018e\u0001\u0000\u0000\u0000\u0d56\u0d57\u0003\r\u0006\u0000\u0d57"+ + "\u0d58\u0003\u000f\u0007\u0000\u0d58\u0d59\u0003)\u0014\u0000\u0d59\u0d5a"+ + "\u0003\u000f\u0007\u0000\u0d5a\u0d5b\u0003\u0011\b\u0000\u0d5b\u0190\u0001"+ + "\u0000\u0000\u0000\u0d5c\u0d5d\u0003\r\u0006\u0000\u0d5d\u0d5e\u0003\u000f"+ + "\u0007\u0000\u0d5e\u0d5f\u0003)\u0014\u0000\u0d5f\u0d60\u0003\u0017\u000b"+ + "\u0000\u0d60\u0d61\u00031\u0018\u0000\u0d61\u0d62\u0003\u000f\u0007\u0000"+ + "\u0d62\u0d63\u0003\r\u0006\u0000\u0d63\u0192\u0001\u0000\u0000\u0000\u0d64"+ + "\u0d65\u0003\r\u0006\u0000\u0d65\u0d66\u0003\u000f\u0007\u0000\u0d66\u0d67"+ + "\u0003+\u0015\u0000\u0d67\u0d68\u0003\u000b\u0005\u0000\u0d68\u0194\u0001"+ + "\u0000\u0000\u0000\u0d69\u0d6a\u0003\r\u0006\u0000\u0d6a\u0d6b\u0003\u000f"+ + "\u0007\u0000\u0d6b\u0d6c\u0003+\u0015\u0000\u0d6c\u0d6d\u0003\u000b\u0005"+ + "\u0000\u0d6d\u0d6e\u0003)\u0014\u0000\u0d6e\u0d6f\u0003\u0017\u000b\u0000"+ + "\u0d6f\u0d70\u0003\t\u0004\u0000\u0d70\u0d71\u0003\u000f\u0007\u0000\u0d71"+ + "\u0196\u0001\u0000\u0000\u0000\u0d72\u0d73\u0003\r\u0006\u0000\u0d73\u0d74"+ + "\u0003\u000f\u0007\u0000\u0d74\u0d75\u0003+\u0015\u0000\u0d75\u0d76\u0003"+ + "\u000b\u0005\u0000\u0d76\u0d77\u0003)\u0014\u0000\u0d77\u0d78\u0003\u0017"+ + "\u000b\u0000\u0d78\u0d79\u0003%\u0012\u0000\u0d79\u0d7a\u0003-\u0016\u0000"+ + "\u0d7a\u0d7b\u0003#\u0011\u0000\u0d7b\u0d7c\u0003)\u0014\u0000\u0d7c\u0198"+ + "\u0001\u0000\u0000\u0000\u0d7d\u0d7e\u0003\r\u0006\u0000\u0d7e\u0d7f\u0003"+ + "\u000f\u0007\u0000\u0d7f\u0d80\u0003+\u0015\u0000\u0d80\u0d81\u0003-\u0016"+ + "\u0000\u0d81\u0d82\u0003)\u0014\u0000\u0d82\u0d83\u0003#\u0011\u0000\u0d83"+ + "\u0d84\u00037\u001b\u0000\u0d84\u019a\u0001\u0000\u0000\u0000\u0d85\u0d86"+ + "\u0003\r\u0006\u0000\u0d86\u0d87\u0003\u000f\u0007\u0000\u0d87\u0d88\u0003"+ + "+\u0015\u0000\u0d88\u0d89\u0003-\u0016\u0000\u0d89\u0d8a\u0003)\u0014"+ + "\u0000\u0d8a\u0d8b\u0003/\u0017\u0000\u0d8b\u0d8c\u0003\u000b\u0005\u0000"+ + "\u0d8c\u0d8d\u0003-\u0016\u0000\u0d8d\u0d8e\u0003#\u0011\u0000\u0d8e\u0d8f"+ + "\u0003)\u0014\u0000\u0d8f\u019c\u0001\u0000\u0000\u0000\u0d90\u0d91\u0003"+ + "\r\u0006\u0000\u0d91\u0d92\u0003\u000f\u0007\u0000\u0d92\u0d93\u0003-"+ + "\u0016\u0000\u0d93\u0d94\u0003\u000f\u0007\u0000\u0d94\u0d95\u0003)\u0014"+ + "\u0000\u0d95\u0d96\u0003\u001f\u000f\u0000\u0d96\u0d97\u0003\u0017\u000b"+ + "\u0000\u0d97\u0d98\u0003!\u0010\u0000\u0d98\u0d99\u0003\u0017\u000b\u0000"+ + "\u0d99\u0d9a\u0003+\u0015\u0000\u0d9a\u0d9b\u0003-\u0016\u0000\u0d9b\u0d9c"+ + "\u0003\u0017\u000b\u0000\u0d9c\u0d9d\u0003\u000b\u0005\u0000\u0d9d\u019e"+ + "\u0001\u0000\u0000\u0000\u0d9e\u0d9f\u0003\r\u0006\u0000\u0d9f\u0da0\u0003"+ + "\u0017\u000b\u0000\u0da0\u0da1\u0003\u0007\u0003\u0000\u0da1\u0da2\u0003"+ + "\u0013\t\u0000\u0da2\u0da3\u0003!\u0010\u0000\u0da3\u0da4\u0003#\u0011"+ + "\u0000\u0da4\u0da5\u0003+\u0015\u0000\u0da5\u0da6\u0003-\u0016\u0000\u0da6"+ + "\u0da7\u0003\u0017\u000b\u0000\u0da7\u0da8\u0003\u000b\u0005\u0000\u0da8"+ + "\u0da9\u0003+\u0015\u0000\u0da9\u01a0\u0001\u0000\u0000\u0000\u0daa\u0dab"+ + "\u0003\r\u0006\u0000\u0dab\u0dac\u0003\u0017\u000b\u0000\u0dac\u0dad\u0003"+ + "\u000b\u0005\u0000\u0dad\u0dae\u0003-\u0016\u0000\u0dae\u0daf\u0003\u0017"+ + "\u000b\u0000\u0daf\u0db0\u0003#\u0011\u0000\u0db0\u0db1\u0003!\u0010\u0000"+ + "\u0db1\u0db2\u0003\u0007\u0003\u0000\u0db2\u0db3\u0003)\u0014\u0000\u0db3"+ + "\u0db4\u00037\u001b\u0000\u0db4\u01a2\u0001\u0000\u0000\u0000\u0db5\u0db6"+ + "\u0003\r\u0006\u0000\u0db6\u0db7\u0003\u0017\u000b\u0000\u0db7\u0db8\u0003"+ + "+\u0015\u0000\u0db8\u0db9\u0003\u0007\u0003\u0000\u0db9\u0dba\u0003\t"+ + "\u0004\u0000\u0dba\u0dbb\u0003\u001d\u000e\u0000\u0dbb\u0dbc\u0003\u000f"+ + "\u0007\u0000\u0dbc\u01a4\u0001\u0000\u0000\u0000\u0dbd\u0dbe\u0003\r\u0006"+ + "\u0000\u0dbe\u0dbf\u0003\u0017\u000b\u0000\u0dbf\u0dc0\u0003+\u0015\u0000"+ + "\u0dc0\u0dc1\u0003\u0007\u0003\u0000\u0dc1\u0dc2\u0003\t\u0004\u0000\u0dc2"+ + "\u0dc3\u0003\u001d\u000e\u0000\u0dc3\u0dc4\u0003\u000f\u0007\u0000\u0dc4"+ + "\u0dc5\u0005_\u0000\u0000\u0dc5\u0dc6\u0003%\u0012\u0000\u0dc6\u0dc7\u0003"+ + "\u0007\u0003\u0000\u0dc7\u0dc8\u0003\u0013\t\u0000\u0dc8\u0dc9\u0003\u000f"+ + "\u0007\u0000\u0dc9\u0dca\u0005_\u0000\u0000\u0dca\u0dcb\u0003+\u0015\u0000"+ + "\u0dcb\u0dcc\u0003\u001b\r\u0000\u0dcc\u0dcd\u0003\u0017\u000b\u0000\u0dcd"+ + "\u0dce\u0003%\u0012\u0000\u0dce\u0dcf\u0003%\u0012\u0000\u0dcf\u0dd0\u0003"+ + "\u0017\u000b\u0000\u0dd0\u0dd1\u0003!\u0010\u0000\u0dd1\u0dd2\u0003\u0013"+ + "\t\u0000\u0dd2\u01a6\u0001\u0000\u0000\u0000\u0dd3\u0dd4\u0003\r\u0006"+ + "\u0000\u0dd4\u0dd5\u0003\u0017\u000b\u0000\u0dd5\u0dd6\u0003+\u0015\u0000"+ + "\u0dd6\u0dd7\u0003\u000b\u0005\u0000\u0dd7\u0dd8\u0003\u0007\u0003\u0000"+ + "\u0dd8\u0dd9\u0003)\u0014\u0000\u0dd9\u0dda\u0003\r\u0006\u0000\u0dda"+ + "\u01a8\u0001\u0000\u0000\u0000\u0ddb\u0ddc\u0003\r\u0006\u0000\u0ddc\u0ddd"+ + "\u0003\u0017\u000b\u0000\u0ddd\u0dde\u0003+\u0015\u0000\u0dde\u0ddf\u0003"+ + "\u000b\u0005\u0000\u0ddf\u0de0\u0003#\u0011\u0000\u0de0\u0de1\u0003!\u0010"+ + "\u0000\u0de1\u0de2\u0003!\u0010\u0000\u0de2\u0de3\u0003\u000f\u0007\u0000"+ + "\u0de3\u0de4\u0003\u000b\u0005\u0000\u0de4\u0de5\u0003-\u0016\u0000\u0de5"+ + "\u01aa\u0001\u0000\u0000\u0000\u0de6\u0de7\u0003\r\u0006\u0000\u0de7\u0de8"+ + "\u0003\u0017\u000b\u0000\u0de8\u0de9\u0003+\u0015\u0000\u0de9\u0dea\u0003"+ + "%\u0012\u0000\u0dea\u0deb\u0003\u0007\u0003\u0000\u0deb\u0dec\u0003-\u0016"+ + "\u0000\u0dec\u0ded\u0003\u000b\u0005\u0000\u0ded\u0dee\u0003\u0015\n\u0000"+ + "\u0dee\u01ac\u0001\u0000\u0000\u0000\u0def\u0df0\u0003\r\u0006\u0000\u0df0"+ + "\u0df1\u0003\u0017\u000b\u0000\u0df1\u0df2\u0003+\u0015\u0000\u0df2\u0df3"+ + "\u0003-\u0016\u0000\u0df3\u0df4\u0003\u0017\u000b\u0000\u0df4\u0df5\u0003"+ + "!\u0010\u0000\u0df5\u0df6\u0003\u000b\u0005\u0000\u0df6\u0df7\u0003-\u0016"+ + "\u0000\u0df7\u01ae\u0001\u0000\u0000\u0000\u0df8\u0df9\u0003\r\u0006\u0000"+ + "\u0df9\u0dfa\u0003#\u0011\u0000\u0dfa\u01b0\u0001\u0000\u0000\u0000\u0dfb"+ + "\u0dfc\u0003\r\u0006\u0000\u0dfc\u0dfd\u0003#\u0011\u0000\u0dfd\u0dfe"+ + "\u0003\u001f\u000f\u0000\u0dfe\u0dff\u0003\u0007\u0003\u0000\u0dff\u0e00"+ + "\u0003\u0017\u000b\u0000\u0e00\u0e01\u0003!\u0010\u0000\u0e01\u01b2\u0001"+ + "\u0000\u0000\u0000\u0e02\u0e03\u0003\r\u0006\u0000\u0e03\u0e04\u0003#"+ + "\u0011\u0000\u0e04\u0e05\u0003/\u0017\u0000\u0e05\u0e06\u0003\t\u0004"+ + "\u0000\u0e06\u0e07\u0003\u001d\u000e\u0000\u0e07\u0e08\u0003\u000f\u0007"+ + "\u0000\u0e08\u01b4\u0001\u0000\u0000\u0000\u0e09\u0e0a\u0003\r\u0006\u0000"+ + "\u0e0a\u0e0b\u0003)\u0014\u0000\u0e0b\u0e0c\u0003#\u0011\u0000\u0e0c\u0e0d"+ + "\u0003%\u0012\u0000\u0e0d\u01b6\u0001\u0000\u0000\u0000\u0e0e\u0e0f\u0003"+ + "\r\u0006\u0000\u0e0f\u0e10\u00037\u001b\u0000\u0e10\u0e11\u0003!\u0010"+ + "\u0000\u0e11\u0e12\u0003\u0007\u0003\u0000\u0e12\u0e13\u0003\u001f\u000f"+ + "\u0000\u0e13\u0e14\u0003\u0017\u000b\u0000\u0e14\u0e15\u0003\u000b\u0005"+ + "\u0000\u0e15\u01b8\u0001\u0000\u0000\u0000\u0e16\u0e17\u0003\r\u0006\u0000"+ + "\u0e17\u0e18\u00037\u001b\u0000\u0e18\u0e19\u0003!\u0010\u0000\u0e19\u0e1a"+ + "\u0003\u0007\u0003\u0000\u0e1a\u0e1b\u0003\u001f\u000f\u0000\u0e1b\u0e1c"+ + "\u0003\u0017\u000b\u0000\u0e1c\u0e1d\u0003\u000b\u0005\u0000\u0e1d\u0e1e"+ + "\u0005_\u0000\u0000\u0e1e\u0e1f\u0003\u0011\b\u0000\u0e1f\u0e20\u0003"+ + "/\u0017\u0000\u0e20\u0e21\u0003!\u0010\u0000\u0e21\u0e22\u0003\u000b\u0005"+ + "\u0000\u0e22\u0e23\u0003-\u0016\u0000\u0e23\u0e24\u0003\u0017\u000b\u0000"+ + "\u0e24\u0e25\u0003#\u0011\u0000\u0e25\u0e26\u0003!\u0010\u0000\u0e26\u01ba"+ + "\u0001\u0000\u0000\u0000\u0e27\u0e28\u0003\r\u0006\u0000\u0e28\u0e29\u0003"+ + "7\u001b\u0000\u0e29\u0e2a\u0003!\u0010\u0000\u0e2a\u0e2b\u0003\u0007\u0003"+ + "\u0000\u0e2b\u0e2c\u0003\u001f\u000f\u0000\u0e2c\u0e2d\u0003\u0017\u000b"+ + "\u0000\u0e2d\u0e2e\u0003\u000b\u0005\u0000\u0e2e\u0e2f\u0005_\u0000\u0000"+ + "\u0e2f\u0e30\u0003\u0011\b\u0000\u0e30\u0e31\u0003/\u0017\u0000\u0e31"+ + "\u0e32\u0003!\u0010\u0000\u0e32\u0e33\u0003\u000b\u0005\u0000\u0e33\u0e34"+ + "\u0003-\u0016\u0000\u0e34\u0e35\u0003\u0017\u000b\u0000\u0e35\u0e36\u0003"+ + "#\u0011\u0000\u0e36\u0e37\u0003!\u0010\u0000\u0e37\u0e38\u0005_\u0000"+ + "\u0000\u0e38\u0e39\u0003\u000b\u0005\u0000\u0e39\u0e3a\u0003#\u0011\u0000"+ + "\u0e3a\u0e3b\u0003\r\u0006\u0000\u0e3b\u0e3c\u0003\u000f\u0007\u0000\u0e3c"+ + "\u01bc\u0001\u0000\u0000\u0000\u0e3d\u0e3e\u0003\u000f\u0007\u0000\u0e3e"+ + "\u0e3f\u0003\u0007\u0003\u0000\u0e3f\u0e40\u0003\u000b\u0005\u0000\u0e40"+ + "\u0e41\u0003\u0015\n\u0000\u0e41\u01be\u0001\u0000\u0000\u0000\u0e42\u0e43"+ + "\u0003\u000f\u0007\u0000\u0e43\u0e44\u0003\u001d\u000e\u0000\u0e44\u0e45"+ + "\u0003\u000f\u0007\u0000\u0e45\u0e46\u0003\u001f\u000f\u0000\u0e46\u0e47"+ + "\u0003\u000f\u0007\u0000\u0e47\u0e48\u0003!\u0010\u0000\u0e48\u0e49\u0003"+ + "-\u0016\u0000\u0e49\u01c0\u0001\u0000\u0000\u0000\u0e4a\u0e4b\u0003\u000f"+ + "\u0007\u0000\u0e4b\u0e4c\u0003\u001d\u000e\u0000\u0e4c\u0e4d\u0003+\u0015"+ + "\u0000\u0e4d\u0e4e\u0003\u000f\u0007\u0000\u0e4e\u01c2\u0001\u0000\u0000"+ + "\u0000\u0e4f\u0e50\u0003\u000f\u0007\u0000\u0e50\u0e51\u0003!\u0010\u0000"+ + "\u0e51\u0e52\u0003\u0007\u0003\u0000\u0e52\u0e53\u0003\t\u0004\u0000\u0e53"+ + "\u0e54\u0003\u001d\u000e\u0000\u0e54\u0e55\u0003\u000f\u0007\u0000\u0e55"+ + "\u01c4\u0001\u0000\u0000\u0000\u0e56\u0e57\u0003\u000f\u0007\u0000\u0e57"+ + "\u0e58\u0003!\u0010\u0000\u0e58\u0e59\u0003\u000b\u0005\u0000\u0e59\u0e5a"+ + "\u0003#\u0011\u0000\u0e5a\u0e5b\u0003\r\u0006\u0000\u0e5b\u0e5c\u0003"+ + "\u0017\u000b\u0000\u0e5c\u0e5d\u0003!\u0010\u0000\u0e5d\u0e5e\u0003\u0013"+ + "\t\u0000\u0e5e\u01c6\u0001\u0000\u0000\u0000\u0e5f\u0e60\u0003\u000f\u0007"+ + "\u0000\u0e60\u0e61\u0003!\u0010\u0000\u0e61\u0e62\u0003\u000b\u0005\u0000"+ + "\u0e62\u0e63\u0003)\u0014\u0000\u0e63\u0e64\u00037\u001b\u0000\u0e64\u0e65"+ + "\u0003%\u0012\u0000\u0e65\u0e66\u0003-\u0016\u0000\u0e66\u0e67\u0003\u000f"+ + "\u0007\u0000\u0e67\u0e68\u0003\r\u0006\u0000\u0e68\u01c8\u0001\u0000\u0000"+ + "\u0000\u0e69\u0e6a\u0003\u000f\u0007\u0000\u0e6a\u0e6b\u0003!\u0010\u0000"+ + "\u0e6b\u0e6c\u0003\r\u0006\u0000\u0e6c\u01ca\u0001\u0000\u0000\u0000\u0e6d"+ + "\u0e6e\u0003\u000f\u0007\u0000\u0e6e\u0e6f\u0003!\u0010\u0000\u0e6f\u0e70"+ + "\u0003\r\u0006\u0000\u0e70\u0e71\u0005-\u0000\u0000\u0e71\u0e72\u0003"+ + "\u000f\u0007\u0000\u0e72\u0e73\u00035\u001a\u0000\u0e73\u0e74\u0003\u000f"+ + "\u0007\u0000\u0e74\u0e75\u0003\u000b\u0005\u0000\u0e75\u01cc\u0001\u0000"+ + "\u0000\u0000\u0e76\u0e77\u0003\u000f\u0007\u0000\u0e77\u0e78\u0003\'\u0013"+ + "\u0000\u0e78\u0e79\u0003/\u0017\u0000\u0e79\u0e7a\u0003\u0007\u0003\u0000"+ + "\u0e7a\u0e7b\u0003\u001d\u000e\u0000\u0e7b\u0e7c\u0003+\u0015\u0000\u0e7c"+ + "\u01ce\u0001\u0000\u0000\u0000\u0e7d\u0e7e\u0003\u000f\u0007\u0000\u0e7e"+ + "\u0e7f\u0003+\u0015\u0000\u0e7f\u0e80\u0003\u000b\u0005\u0000\u0e80\u0e81"+ + "\u0003\u0007\u0003\u0000\u0e81\u0e82\u0003%\u0012\u0000\u0e82\u0e83\u0003"+ + "\u000f\u0007\u0000\u0e83\u01d0\u0001\u0000\u0000\u0000\u0e84\u0e85\u0003"+ + "\u000f\u0007\u0000\u0e85\u0e86\u00031\u0018\u0000\u0e86\u0e87\u0003\u000f"+ + "\u0007\u0000\u0e87\u0e88\u0003)\u0014\u0000\u0e88\u0e89\u00037\u001b\u0000"+ + "\u0e89\u01d2\u0001\u0000\u0000\u0000\u0e8a\u0e8b\u0003\u000f\u0007\u0000"+ + "\u0e8b\u0e8c\u00035\u001a\u0000\u0e8c\u0e8d\u0003\u000b\u0005\u0000\u0e8d"+ + "\u0e8e\u0003\u000f\u0007\u0000\u0e8e\u0e8f\u0003%\u0012\u0000\u0e8f\u0e90"+ + "\u0003-\u0016\u0000\u0e90\u01d4\u0001\u0000\u0000\u0000\u0e91\u0e92\u0003"+ + "\u000f\u0007\u0000\u0e92\u0e93\u00035\u001a\u0000\u0e93\u0e94\u0003\u000b"+ + "\u0005\u0000\u0e94\u0e95\u0003\u000f\u0007\u0000\u0e95\u0e96\u0003%\u0012"+ + "\u0000\u0e96\u0e97\u0003-\u0016\u0000\u0e97\u0e98\u0003\u0017\u000b\u0000"+ + "\u0e98\u0e99\u0003#\u0011\u0000\u0e99\u0e9a\u0003!\u0010\u0000\u0e9a\u01d6"+ + "\u0001\u0000\u0000\u0000\u0e9b\u0e9c\u0003\u000f\u0007\u0000\u0e9c\u0e9d"+ + "\u00035\u001a\u0000\u0e9d\u0e9e\u0003\u000b\u0005\u0000\u0e9e\u0e9f\u0003"+ + "\u001d\u000e\u0000\u0e9f\u0ea0\u0003/\u0017\u0000\u0ea0\u0ea1\u0003\r"+ + "\u0006\u0000\u0ea1\u0ea2\u0003\u000f\u0007\u0000\u0ea2\u01d8\u0001\u0000"+ + "\u0000\u0000\u0ea3\u0ea4\u0003\u000f\u0007\u0000\u0ea4\u0ea5\u00035\u001a"+ + "\u0000\u0ea5\u0ea6\u0003\u000b\u0005\u0000\u0ea6\u0ea7\u0003\u001d\u000e"+ + "\u0000\u0ea7\u0ea8\u0003/\u0017\u0000\u0ea8\u0ea9\u0003\r\u0006\u0000"+ + "\u0ea9\u0eaa\u0003\u0017\u000b\u0000\u0eaa\u0eab\u0003!\u0010\u0000\u0eab"+ + "\u0eac\u0003\u0013\t\u0000\u0eac\u01da\u0001\u0000\u0000\u0000\u0ead\u0eae"+ + "\u0003\u000f\u0007\u0000\u0eae\u0eaf\u00035\u001a\u0000\u0eaf\u0eb0\u0003"+ + "\u000b\u0005\u0000\u0eb0\u0eb1\u0003\u001d\u000e\u0000\u0eb1\u0eb2\u0003"+ + "/\u0017\u0000\u0eb2\u0eb3\u0003+\u0015\u0000\u0eb3\u0eb4\u0003\u0017\u000b"+ + "\u0000\u0eb4\u0eb5\u00031\u0018\u0000\u0eb5\u0eb6\u0003\u000f\u0007\u0000"+ + "\u0eb6\u01dc\u0001\u0000\u0000\u0000\u0eb7\u0eb8\u0003\u000f\u0007\u0000"+ + "\u0eb8\u0eb9\u00035\u001a\u0000\u0eb9\u0eba\u0003\u000f\u0007\u0000\u0eba"+ + "\u0ebb\u0003\u000b\u0005\u0000\u0ebb\u01de\u0001\u0000\u0000\u0000\u0ebc"+ + "\u0ebd\u0003\u000f\u0007\u0000\u0ebd\u0ebe\u00035\u001a\u0000\u0ebe\u0ebf"+ + "\u0003\u000f\u0007\u0000\u0ebf\u0ec0\u0003\u000b\u0005\u0000\u0ec0\u0ec1"+ + "\u0003/\u0017\u0000\u0ec1\u0ec2\u0003-\u0016\u0000\u0ec2\u0ec3\u0003\u000f"+ + "\u0007\u0000\u0ec3\u01e0\u0001\u0000\u0000\u0000\u0ec4\u0ec5\u0003\u000f"+ + "\u0007\u0000\u0ec5\u0ec6\u00035\u001a\u0000\u0ec6\u0ec7\u0003\u0017\u000b"+ + "\u0000\u0ec7\u0ec8\u0003+\u0015\u0000\u0ec8\u0ec9\u0003-\u0016\u0000\u0ec9"+ + "\u0eca\u0003\u0017\u000b\u0000\u0eca\u0ecb\u0003!\u0010\u0000\u0ecb\u0ecc"+ + "\u0003\u0013\t\u0000\u0ecc\u01e2\u0001\u0000\u0000\u0000\u0ecd\u0ece\u0003"+ + "\u000f\u0007\u0000\u0ece\u0ecf\u00035\u001a\u0000\u0ecf\u0ed0\u0003\u0017"+ + "\u000b\u0000\u0ed0\u0ed1\u0003+\u0015\u0000\u0ed1\u0ed2\u0003-\u0016\u0000"+ + "\u0ed2\u0ed3\u0003+\u0015\u0000\u0ed3\u01e4\u0001\u0000\u0000\u0000\u0ed4"+ + "\u0ed5\u0003\u000f\u0007\u0000\u0ed5\u0ed6\u00035\u001a\u0000\u0ed6\u0ed7"+ + "\u0003%\u0012\u0000\u0ed7\u01e6\u0001\u0000\u0000\u0000\u0ed8\u0ed9\u0003"+ + "\u000f\u0007\u0000\u0ed9\u0eda\u00035\u001a\u0000\u0eda\u0edb\u0003%\u0012"+ + "\u0000\u0edb\u0edc\u0003\u001d\u000e\u0000\u0edc\u0edd\u0003\u0007\u0003"+ + "\u0000\u0edd\u0ede\u0003\u0017\u000b\u0000\u0ede\u0edf\u0003!\u0010\u0000"+ + "\u0edf\u01e8\u0001\u0000\u0000\u0000\u0ee0\u0ee1\u0003\u000f\u0007\u0000"+ + "\u0ee1\u0ee2\u00035\u001a\u0000\u0ee2\u0ee3\u0003-\u0016\u0000\u0ee3\u0ee4"+ + "\u0003\u000f\u0007\u0000\u0ee4\u0ee5\u0003!\u0010\u0000\u0ee5\u0ee6\u0003"+ + "\r\u0006\u0000\u0ee6\u0ee7\u0003\u000f\u0007\u0000\u0ee7\u0ee8\u0003\r"+ + "\u0006\u0000\u0ee8\u01ea\u0001\u0000\u0000\u0000\u0ee9\u0eea\u0003\u000f"+ + "\u0007\u0000\u0eea\u0eeb\u00035\u001a\u0000\u0eeb\u0eec\u0003-\u0016\u0000"+ + "\u0eec\u0eed\u0003\u000f\u0007\u0000\u0eed\u0eee\u0003!\u0010\u0000\u0eee"+ + "\u0eef\u0003+\u0015\u0000\u0eef\u0ef0\u0003\u0017\u000b\u0000\u0ef0\u0ef1"+ + "\u0003#\u0011\u0000\u0ef1\u0ef2\u0003!\u0010\u0000\u0ef2\u01ec\u0001\u0000"+ + "\u0000\u0000\u0ef3\u0ef4\u0003\u000f\u0007\u0000\u0ef4\u0ef5\u00035\u001a"+ + "\u0000\u0ef5\u0ef6\u0003-\u0016\u0000\u0ef6\u0ef7\u0003\u000f\u0007\u0000"+ + "\u0ef7\u0ef8\u0003)\u0014\u0000\u0ef8\u0ef9\u0003!\u0010\u0000\u0ef9\u0efa"+ + "\u0003\u0007\u0003\u0000\u0efa\u0efb\u0003\u001d\u000e\u0000\u0efb\u01ee"+ + "\u0001\u0000\u0000\u0000\u0efc\u0efd\u0003\u000f\u0007\u0000\u0efd\u0efe"+ + "\u00035\u001a\u0000\u0efe\u0eff\u0003-\u0016\u0000\u0eff\u0f00\u0003)"+ + "\u0014\u0000\u0f00\u0f01\u0003\u0007\u0003\u0000\u0f01\u0f02\u0003\u000b"+ + "\u0005\u0000\u0f02\u0f03\u0003-\u0016\u0000\u0f03\u01f0\u0001\u0000\u0000"+ + "\u0000\u0f04\u0f05\u0003\u0011\b\u0000\u0f05\u0f06\u0003\u0007\u0003\u0000"+ + "\u0f06\u0f07\u0003\u001d\u000e\u0000\u0f07\u0f08\u0003+\u0015\u0000\u0f08"+ + "\u0f09\u0003\u000f\u0007\u0000\u0f09\u01f2\u0001\u0000\u0000\u0000\u0f0a"+ + "\u0f0b\u0003\u0011\b\u0000\u0f0b\u0f0c\u0003\u000f\u0007\u0000\u0f0c\u0f0d"+ + "\u0003-\u0016\u0000\u0f0d\u0f0e\u0003\u000b\u0005\u0000\u0f0e\u0f0f\u0003"+ + "\u0015\n\u0000\u0f0f\u01f4\u0001\u0000\u0000\u0000\u0f10\u0f11\u0003\u0011"+ + "\b\u0000\u0f11\u0f12\u0003\u0017\u000b\u0000\u0f12\u0f13\u0003\u000f\u0007"+ + "\u0000\u0f13\u0f14\u0003\u001d\u000e\u0000\u0f14\u0f15\u0003\r\u0006\u0000"+ + "\u0f15\u0f16\u0003+\u0015\u0000\u0f16\u01f6\u0001\u0000\u0000\u0000\u0f17"+ + "\u0f18\u0003\u0011\b\u0000\u0f18\u0f19\u0003\u0017\u000b\u0000\u0f19\u0f1a"+ + "\u0003\u001d\u000e\u0000\u0f1a\u0f1b\u0003-\u0016\u0000\u0f1b\u0f1c\u0003"+ + "\u000f\u0007\u0000\u0f1c\u0f1d\u0003)\u0014\u0000\u0f1d\u01f8\u0001\u0000"+ + "\u0000\u0000\u0f1e\u0f1f\u0003\u0011\b\u0000\u0f1f\u0f20\u0003\u0017\u000b"+ + "\u0000\u0f20\u0f21\u0003!\u0010\u0000\u0f21\u0f22\u0003\u0007\u0003\u0000"+ + "\u0f22\u0f23\u0003\u001d\u000e\u0000\u0f23\u01fa\u0001\u0000\u0000\u0000"+ + "\u0f24\u0f25\u0003\u0011\b\u0000\u0f25\u0f26\u0003\u0017\u000b\u0000\u0f26"+ + "\u0f27\u0003)\u0014\u0000\u0f27\u0f28\u0003+\u0015\u0000\u0f28\u0f29\u0003"+ + "-\u0016\u0000\u0f29\u01fc\u0001\u0000\u0000\u0000\u0f2a\u0f2b\u0003\u0011"+ + "\b\u0000\u0f2b\u0f2c\u0003\u001d\u000e\u0000\u0f2c\u0f2d\u0003#\u0011"+ + "\u0000\u0f2d\u0f2e\u0003\u0007\u0003\u0000\u0f2e\u0f2f\u0003-\u0016\u0000"+ + "\u0f2f\u01fe\u0001\u0000\u0000\u0000\u0f30\u0f31\u0003\u0011\b\u0000\u0f31"+ + "\u0f32\u0003\u001d\u000e\u0000\u0f32\u0f33\u0003#\u0011\u0000\u0f33\u0f34"+ + "\u0003#\u0011\u0000\u0f34\u0f35\u0003)\u0014\u0000\u0f35\u0200\u0001\u0000"+ + "\u0000\u0000\u0f36\u0f37\u0003\u0011\b\u0000\u0f37\u0f38\u0003#\u0011"+ + "\u0000\u0f38\u0f39\u0003\u001d\u000e\u0000\u0f39\u0f3a\u0003\u001d\u000e"+ + "\u0000\u0f3a\u0f3b\u0003#\u0011\u0000\u0f3b\u0f3c\u00033\u0019\u0000\u0f3c"+ + "\u0f3d\u0003\u0017\u000b\u0000\u0f3d\u0f3e\u0003!\u0010\u0000\u0f3e\u0f3f"+ + "\u0003\u0013\t\u0000\u0f3f\u0202\u0001\u0000\u0000\u0000\u0f40\u0f41\u0003"+ + "\u0011\b\u0000\u0f41\u0f42\u0003#\u0011\u0000\u0f42\u0f43\u0003)\u0014"+ + "\u0000\u0f43\u0204\u0001\u0000\u0000\u0000\u0f44\u0f45\u0003\u0011\b\u0000"+ + "\u0f45\u0f46\u0003#\u0011\u0000\u0f46\u0f47\u0003)\u0014\u0000\u0f47\u0f48"+ + "\u0003\u000b\u0005\u0000\u0f48\u0f49\u0003\u000f\u0007\u0000\u0f49\u0206"+ + "\u0001\u0000\u0000\u0000\u0f4a\u0f4b\u0003\u0011\b\u0000\u0f4b\u0f4c\u0003"+ + "#\u0011\u0000\u0f4c\u0f4d\u0003)\u0014\u0000\u0f4d\u0f4e\u0003\u000f\u0007"+ + "\u0000\u0f4e\u0f4f\u0003\u0017\u000b\u0000\u0f4f\u0f50\u0003\u0013\t\u0000"+ + "\u0f50\u0f51\u0003!\u0010\u0000\u0f51\u0208\u0001\u0000\u0000\u0000\u0f52"+ + "\u0f53\u0003\u0011\b\u0000\u0f53\u0f54\u0003#\u0011\u0000\u0f54\u0f55"+ + "\u0003)\u0014\u0000\u0f55\u0f56\u0003\u001f\u000f\u0000\u0f56\u0f57\u0003"+ + "\u0007\u0003\u0000\u0f57\u0f58\u0003-\u0016\u0000\u0f58\u020a\u0001\u0000"+ + "\u0000\u0000\u0f59\u0f5a\u0003\u0011\b\u0000\u0f5a\u0f5b\u0003#\u0011"+ + "\u0000\u0f5b\u0f5c\u0003)\u0014\u0000\u0f5c\u0f5d\u0003-\u0016\u0000\u0f5d"+ + "\u0f5e\u0003)\u0014\u0000\u0f5e\u0f5f\u0003\u0007\u0003\u0000\u0f5f\u0f60"+ + "\u0003!\u0010\u0000\u0f60\u020c\u0001\u0000\u0000\u0000\u0f61\u0f62\u0003"+ + "\u0011\b\u0000\u0f62\u0f63\u0003#\u0011\u0000\u0f63\u0f64\u0003)\u0014"+ + "\u0000\u0f64\u0f65\u00033\u0019\u0000\u0f65\u0f66\u0003\u0007\u0003\u0000"+ + "\u0f66\u0f67\u0003)\u0014\u0000\u0f67\u0f68\u0003\r\u0006\u0000\u0f68"+ + "\u020e\u0001\u0000\u0000\u0000\u0f69\u0f6a\u0003\u0011\b\u0000\u0f6a\u0f6b"+ + "\u0003#\u0011\u0000\u0f6b\u0f6c\u0003/\u0017\u0000\u0f6c\u0f6d\u0003!"+ + "\u0010\u0000\u0f6d\u0f6e\u0003\r\u0006\u0000\u0f6e\u0210\u0001\u0000\u0000"+ + "\u0000\u0f6f\u0f70\u0003\u0011\b\u0000\u0f70\u0f71\u0003)\u0014\u0000"+ + "\u0f71\u0f72\u0003\u000f\u0007\u0000\u0f72\u0f73\u0003\u000f\u0007\u0000"+ + "\u0f73\u0212\u0001\u0000\u0000\u0000\u0f74\u0f75\u0003\u0011\b\u0000\u0f75"+ + "\u0f76\u0003)\u0014\u0000\u0f76\u0f77\u0003\u000f\u0007\u0000\u0f77\u0f78"+ + "\u0003\u000f\u0007\u0000\u0f78\u0f79\u00039\u001c\u0000\u0f79\u0f7a\u0003"+ + "\u000f\u0007\u0000\u0f7a\u0214\u0001\u0000\u0000\u0000\u0f7b\u0f7c\u0003"+ + "\u0011\b\u0000\u0f7c\u0f7d\u0003)\u0014\u0000\u0f7d\u0f7e\u0003#\u0011"+ + "\u0000\u0f7e\u0f7f\u0003\u001f\u000f\u0000\u0f7f\u0216\u0001\u0000\u0000"+ + "\u0000\u0f80\u0f81\u0003\u0011\b\u0000\u0f81\u0f82\u0003/\u0017\u0000"+ + "\u0f82\u0f83\u0003\u001d\u000e\u0000\u0f83\u0f84\u0003\u001d\u000e\u0000"+ + "\u0f84\u0218\u0001\u0000\u0000\u0000\u0f85\u0f86\u0003\u0011\b\u0000\u0f86"+ + "\u0f87\u0003/\u0017\u0000\u0f87\u0f88\u0003!\u0010\u0000\u0f88\u0f89\u0003"+ + "\u000b\u0005\u0000\u0f89\u0f8a\u0003-\u0016\u0000\u0f8a\u0f8b\u0003\u0017"+ + "\u000b\u0000\u0f8b\u0f8c\u0003#\u0011\u0000\u0f8c\u0f8d\u0003!\u0010\u0000"+ + "\u0f8d\u021a\u0001\u0000\u0000\u0000\u0f8e\u0f8f\u0003\u0011\b\u0000\u0f8f"+ + "\u0f90\u0003/\u0017\u0000\u0f90\u0f91\u0003+\u0015\u0000\u0f91\u0f92\u0003"+ + "\u0017\u000b\u0000\u0f92\u0f93\u0003#\u0011\u0000\u0f93\u0f94\u0003!\u0010"+ + "\u0000\u0f94\u021c\u0001\u0000\u0000\u0000\u0f95\u0f96\u0003\u0013\t\u0000"+ + "\u0f96\u021e\u0001\u0000\u0000\u0000\u0f97\u0f98\u0003\u0013\t\u0000\u0f98"+ + "\u0f99\u0003\u000f\u0007\u0000\u0f99\u0f9a\u0003!\u0010\u0000\u0f9a\u0f9b"+ + "\u0003\u000f\u0007\u0000\u0f9b\u0f9c\u0003)\u0014\u0000\u0f9c\u0f9d\u0003"+ + "\u0007\u0003\u0000\u0f9d\u0f9e\u0003\u001d\u000e\u0000\u0f9e\u0220\u0001"+ + "\u0000\u0000\u0000\u0f9f\u0fa0\u0003\u0013\t\u0000\u0fa0\u0fa1\u0003\u000f"+ + "\u0007\u0000\u0fa1\u0fa2\u0003!\u0010\u0000\u0fa2\u0fa3\u0003\u000f\u0007"+ + "\u0000\u0fa3\u0fa4\u0003)\u0014\u0000\u0fa4\u0fa5\u0003\u0007\u0003\u0000"+ + "\u0fa5\u0fa6\u0003-\u0016\u0000\u0fa6\u0fa7\u0003\u000f\u0007\u0000\u0fa7"+ + "\u0fa8\u0003\r\u0006\u0000\u0fa8\u0222\u0001\u0000\u0000\u0000\u0fa9\u0faa"+ + "\u0003\u0013\t\u0000\u0faa\u0fab\u0003\u000f\u0007\u0000\u0fab\u0fac\u0003"+ + "-\u0016\u0000\u0fac\u0224\u0001\u0000\u0000\u0000\u0fad\u0fae\u0003\u0013"+ + "\t\u0000\u0fae\u0faf\u0003\u001d\u000e\u0000\u0faf\u0fb0\u0003#\u0011"+ + "\u0000\u0fb0\u0fb1\u0003\t\u0004\u0000\u0fb1\u0fb2\u0003\u0007\u0003\u0000"+ + "\u0fb2\u0fb3\u0003\u001d\u000e\u0000\u0fb3\u0226\u0001\u0000\u0000\u0000"+ + "\u0fb4\u0fb5\u0003\u0013\t\u0000\u0fb5\u0fb6\u0003#\u0011\u0000\u0fb6"+ + "\u0228\u0001\u0000\u0000\u0000\u0fb7\u0fb8\u0003\u0013\t\u0000\u0fb8\u0fb9"+ + "\u0003#\u0011\u0000\u0fb9\u0fba\u0003-\u0016\u0000\u0fba\u0fbb\u0003#"+ + "\u0011\u0000\u0fbb\u022a\u0001\u0000\u0000\u0000\u0fbc\u0fbd\u0003\u0013"+ + "\t\u0000\u0fbd\u0fbe\u0003)\u0014\u0000\u0fbe\u0fbf\u0003\u0007\u0003"+ + "\u0000\u0fbf\u0fc0\u0003!\u0010\u0000\u0fc0\u0fc1\u0003-\u0016\u0000\u0fc1"+ + "\u022c\u0001\u0000\u0000\u0000\u0fc2\u0fc3\u0003\u0013\t\u0000\u0fc3\u0fc4"+ + "\u0003)\u0014\u0000\u0fc4\u0fc5\u0003\u0007\u0003\u0000\u0fc5\u0fc6\u0003"+ + "!\u0010\u0000\u0fc6\u0fc7\u0003-\u0016\u0000\u0fc7\u0fc8\u0003\u000f\u0007"+ + "\u0000\u0fc8\u0fc9\u0003\r\u0006\u0000\u0fc9\u022e\u0001\u0000\u0000\u0000"+ + "\u0fca\u0fcb\u0003\u0013\t\u0000\u0fcb\u0fcc\u0003)\u0014\u0000\u0fcc"+ + "\u0fcd\u0003\u000f\u0007\u0000\u0fcd\u0fce\u0003\u0007\u0003\u0000\u0fce"+ + "\u0fcf\u0003-\u0016\u0000\u0fcf\u0fd0\u0003\u000f\u0007\u0000\u0fd0\u0fd1"+ + "\u0003+\u0015\u0000\u0fd1\u0fd2\u0003-\u0016\u0000\u0fd2\u0230\u0001\u0000"+ + "\u0000\u0000\u0fd3\u0fd4\u0003\u0013\t\u0000\u0fd4\u0fd5\u0003)\u0014"+ + "\u0000\u0fd5\u0fd6\u0003#\u0011\u0000\u0fd6\u0fd7\u0003/\u0017\u0000\u0fd7"+ + "\u0fd8\u0003%\u0012\u0000\u0fd8\u0232\u0001\u0000\u0000\u0000\u0fd9\u0fda"+ + "\u0003\u0013\t\u0000\u0fda\u0fdb\u0003)\u0014\u0000\u0fdb\u0fdc\u0003"+ + "#\u0011\u0000\u0fdc\u0fdd\u0003/\u0017\u0000\u0fdd\u0fde\u0003%\u0012"+ + "\u0000\u0fde\u0fdf\u0003\u0017\u000b\u0000\u0fdf\u0fe0\u0003!\u0010\u0000"+ + "\u0fe0\u0fe1\u0003\u0013\t\u0000\u0fe1\u0234\u0001\u0000\u0000\u0000\u0fe2"+ + "\u0fe3\u0003\u0015\n\u0000\u0fe3\u0fe4\u0003\u0007\u0003\u0000\u0fe4\u0fe5"+ + "\u0003!\u0010\u0000\u0fe5\u0fe6\u0003\r\u0006\u0000\u0fe6\u0fe7\u0003"+ + "\u001d\u000e\u0000\u0fe7\u0fe8\u0003\u000f\u0007\u0000\u0fe8\u0fe9\u0003"+ + ")\u0014\u0000\u0fe9\u0236\u0001\u0000\u0000\u0000\u0fea\u0feb\u0003\u0015"+ + "\n\u0000\u0feb\u0fec\u0003\u0007\u0003\u0000\u0fec\u0fed\u00031\u0018"+ + "\u0000\u0fed\u0fee\u0003\u0017"; private static final String _serializedATNSegment2 = - "\u0fe9\u0fea\u0003\u000f\u0007\u0000\u0fea\u0feb\u0003)\u0014\u0000\u0feb"+ - "\u0236\u0001\u0000\u0000\u0000\u0fec\u0fed\u0003\u0015\n\u0000\u0fed\u0fee"+ - "\u0003\u0007\u0003\u0000\u0fee\u0fef\u00031\u0018\u0000\u0fef\u0ff0\u0003"+ - "\u0017\u000b\u0000\u0ff0\u0ff1\u0003!\u0010\u0000\u0ff1\u0ff2\u0003\u0013"+ - "\t\u0000\u0ff2\u0238\u0001\u0000\u0000\u0000\u0ff3\u0ff4\u0003\u0015\n"+ - "\u0000\u0ff4\u0ff5\u0003\u0017\u000b\u0000\u0ff5\u0ff6\u0003\u000f\u0007"+ - "\u0000\u0ff6\u0ff7\u0003)\u0014\u0000\u0ff7\u0ff8\u0003\u0007\u0003\u0000"+ - "\u0ff8\u0ff9\u0003)\u0014\u0000\u0ff9\u0ffa\u0003\u000b\u0005\u0000\u0ffa"+ - "\u0ffb\u0003\u0015\n\u0000\u0ffb\u0ffc\u00037\u001b\u0000\u0ffc\u023a"+ - "\u0001\u0000\u0000\u0000\u0ffd\u0ffe\u0003\u0015\n\u0000\u0ffe\u0fff\u0003"+ - "#\u0011\u0000\u0fff\u1000\u0003\u001d\u000e\u0000\u1000\u1001\u0003\r"+ - "\u0006\u0000\u1001\u023c\u0001\u0000\u0000\u0000\u1002\u1003\u0003\u0015"+ - "\n\u0000\u1003\u1004\u0003#\u0011\u0000\u1004\u1005\u0003+\u0015\u0000"+ - "\u1005\u1006\u0003-\u0016\u0000\u1006\u023e\u0001\u0000\u0000\u0000\u1007"+ - "\u1008\u0003\u0015\n\u0000\u1008\u1009\u0003#\u0011\u0000\u1009\u100a"+ - "\u0003/\u0017\u0000\u100a\u100b\u0003)\u0014\u0000\u100b\u0240\u0001\u0000"+ - "\u0000\u0000\u100c\u100d\u0003\u0017\u000b\u0000\u100d\u100e\u0003\r\u0006"+ - "\u0000\u100e\u100f\u0003\u000f\u0007\u0000\u100f\u1010\u0003!\u0010\u0000"+ - "\u1010\u1011\u0003-\u0016\u0000\u1011\u1012\u0003\u0017\u000b\u0000\u1012"+ - "\u1013\u0003-\u0016\u0000\u1013\u1014\u00037\u001b\u0000\u1014\u0242\u0001"+ - "\u0000\u0000\u0000\u1015\u1016\u0003\u0017\u000b\u0000\u1016\u1017\u0003"+ - "\u0013\t\u0000\u1017\u1018\u0003!\u0010\u0000\u1018\u1019\u0003#\u0011"+ - "\u0000\u1019\u101a\u0003)\u0014\u0000\u101a\u101b\u0003\u000f\u0007\u0000"+ - "\u101b\u0244\u0001\u0000\u0000\u0000\u101c\u101d\u0003\u0017\u000b\u0000"+ - "\u101d\u101e\u0003\u001d\u000e\u0000\u101e\u101f\u0003\u0017\u000b\u0000"+ - "\u101f\u1020\u0003\u001b\r\u0000\u1020\u1021\u0003\u000f\u0007\u0000\u1021"+ - "\u0246\u0001\u0000\u0000\u0000\u1022\u1023\u0003\u0017\u000b\u0000\u1023"+ - "\u1024\u0003\u001f\u000f\u0000\u1024\u1025\u0003\u001f\u000f\u0000\u1025"+ - "\u1026\u0003\u000f\u0007\u0000\u1026\u1027\u0003\r\u0006\u0000\u1027\u1028"+ - "\u0003\u0017\u000b\u0000\u1028\u1029\u0003\u0007\u0003\u0000\u1029\u102a"+ - "\u0003-\u0016\u0000\u102a\u102b\u0003\u000f\u0007\u0000\u102b\u0248\u0001"+ - "\u0000\u0000\u0000\u102c\u102d\u0003\u0017\u000b\u0000\u102d\u102e\u0003"+ - "\u001f\u000f\u0000\u102e\u102f\u0003\u001f\u000f\u0000\u102f\u1030\u0003"+ - "/\u0017\u0000\u1030\u1031\u0003-\u0016\u0000\u1031\u1032\u0003\u0007\u0003"+ - "\u0000\u1032\u1033\u0003\t\u0004\u0000\u1033\u1034\u0003\u001d\u000e\u0000"+ - "\u1034\u1035\u0003\u000f\u0007\u0000\u1035\u024a\u0001\u0000\u0000\u0000"+ - "\u1036\u1037\u0003\u0017\u000b\u0000\u1037\u1038\u0003\u001f\u000f\u0000"+ - "\u1038\u1039\u0003%\u0012\u0000\u1039\u103a\u0003\u001d\u000e\u0000\u103a"+ - "\u103b\u0003\u000f\u0007\u0000\u103b\u103c\u0003\u001f\u000f\u0000\u103c"+ - "\u103d\u0003\u000f\u0007\u0000\u103d\u103e\u0003!\u0010\u0000\u103e\u103f"+ - "\u0003-\u0016\u0000\u103f\u1040\u0003\u0007\u0003\u0000\u1040\u1041\u0003"+ - "-\u0016\u0000\u1041\u1042\u0003\u0017\u000b\u0000\u1042\u1043\u0003#\u0011"+ - "\u0000\u1043\u1044\u0003!\u0010\u0000\u1044\u024c\u0001\u0000\u0000\u0000"+ - "\u1045\u1046\u0003\u0017\u000b\u0000\u1046\u1047\u0003\u001f\u000f\u0000"+ - "\u1047\u1048\u0003%\u0012\u0000\u1048\u1049\u0003\u001d\u000e\u0000\u1049"+ - "\u104a\u0003\u0017\u000b\u0000\u104a\u104b\u0003\u000b\u0005\u0000\u104b"+ - "\u104c\u0003\u0017\u000b\u0000\u104c\u104d\u0003-\u0016\u0000\u104d\u024e"+ - "\u0001\u0000\u0000\u0000\u104e\u104f\u0003\u0017\u000b\u0000\u104f\u1050"+ - "\u0003!\u0010\u0000\u1050\u0250\u0001\u0000\u0000\u0000\u1051\u1052\u0003"+ - "\u0017\u000b\u0000\u1052\u1053\u0003!\u0010\u0000\u1053\u1054\u0003\u000b"+ - "\u0005\u0000\u1054\u1055\u0003\u001d\u000e\u0000\u1055\u1056\u0003/\u0017"+ - "\u0000\u1056\u1057\u0003\r\u0006\u0000\u1057\u1058\u0003\u0017\u000b\u0000"+ - "\u1058\u1059\u0003!\u0010\u0000\u1059\u105a\u0003\u0013\t\u0000\u105a"+ - "\u0252\u0001\u0000\u0000\u0000\u105b\u105c\u0003\u0017\u000b\u0000\u105c"+ - "\u105d\u0003!\u0010\u0000\u105d\u105e\u0003\u000b\u0005\u0000\u105e\u105f"+ - "\u0003)\u0014\u0000\u105f\u1060\u0003\u000f\u0007\u0000\u1060\u1061\u0003"+ - "\u001f\u000f\u0000\u1061\u1062\u0003\u000f\u0007\u0000\u1062\u1063\u0003"+ - "!\u0010\u0000\u1063\u1064\u0003-\u0016\u0000\u1064\u0254\u0001\u0000\u0000"+ - "\u0000\u1065\u1066\u0003\u0017\u000b\u0000\u1066\u1067\u0003!\u0010\u0000"+ - "\u1067\u1068\u0003\r\u0006\u0000\u1068\u1069\u0003\u000f\u0007\u0000\u1069"+ - "\u106a\u00035\u001a\u0000\u106a\u0256\u0001\u0000\u0000\u0000\u106b\u106c"+ - "\u0003\u0017\u000b\u0000\u106c\u106d\u0003!\u0010\u0000\u106d\u106e\u0003"+ - "\r\u0006\u0000\u106e\u106f\u0003\u0017\u000b\u0000\u106f\u1070\u0003\u000b"+ - "\u0005\u0000\u1070\u1071\u0003\u0007\u0003\u0000\u1071\u1072\u0003-\u0016"+ - "\u0000\u1072\u1073\u0003#\u0011\u0000\u1073\u1074\u0003)\u0014\u0000\u1074"+ - "\u0258\u0001\u0000\u0000\u0000\u1075\u1076\u0003\u0017\u000b\u0000\u1076"+ - "\u1077\u0003!\u0010\u0000\u1077\u1078\u0003\u0011\b\u0000\u1078\u1079"+ - "\u0003\u0017\u000b\u0000\u1079\u107a\u00035\u001a\u0000\u107a\u025a\u0001"+ - "\u0000\u0000\u0000\u107b\u107c\u0003\u0017\u000b\u0000\u107c\u107d\u0003"+ - "!\u0010\u0000\u107d\u107e\u0003\u0015\n\u0000\u107e\u107f\u0003\u000f"+ - "\u0007\u0000\u107f\u1080\u0003)\u0014\u0000\u1080\u1081\u0003\u0017\u000b"+ - "\u0000\u1081\u1082\u0003-\u0016\u0000\u1082\u1083\u0003+\u0015\u0000\u1083"+ - "\u025c\u0001\u0000\u0000\u0000\u1084\u1085\u0003\u0017\u000b\u0000\u1085"+ - "\u1086\u0003!\u0010\u0000\u1086\u1087\u0003\u0017\u000b\u0000\u1087\u1088"+ - "\u0003-\u0016\u0000\u1088\u1089\u0003\u0017\u000b\u0000\u1089\u108a\u0003"+ - "\u0007\u0003\u0000\u108a\u108b\u0003\u001d\u000e\u0000\u108b\u108c\u0003"+ - "\u0017\u000b\u0000\u108c\u108d\u00039\u001c\u0000\u108d\u108e\u0003\u000f"+ - "\u0007\u0000\u108e\u025e\u0001\u0000\u0000\u0000\u108f\u1090\u0003\u0017"+ - "\u000b\u0000\u1090\u1091\u0003!\u0010\u0000\u1091\u1092\u0003\u0017\u000b"+ - "\u0000\u1092\u1093\u0003-\u0016\u0000\u1093\u1094\u0003\u0017\u000b\u0000"+ - "\u1094\u1095\u0003\u0007\u0003\u0000\u1095\u1096\u0003\u001d\u000e\u0000"+ - "\u1096\u1097\u0003\u001d\u000e\u0000\u1097\u1098\u00037\u001b\u0000\u1098"+ - "\u0260\u0001\u0000\u0000\u0000\u1099\u109a\u0003\u0017\u000b\u0000\u109a"+ - "\u109b\u0003!\u0010\u0000\u109b\u109c\u0003!\u0010\u0000\u109c\u109d\u0003"+ - "\u000f\u0007\u0000\u109d\u109e\u0003)\u0014\u0000\u109e\u0262\u0001\u0000"+ - "\u0000\u0000\u109f\u10a0\u0003\u0017\u000b\u0000\u10a0\u10a1\u0003!\u0010"+ - "\u0000\u10a1\u10a2\u0003#\u0011\u0000\u10a2\u10a3\u0003/\u0017\u0000\u10a3"+ - "\u10a4\u0003-\u0016\u0000\u10a4\u0264\u0001\u0000\u0000\u0000\u10a5\u10a6"+ - "\u0003\u0017\u000b\u0000\u10a6\u10a7\u0003!\u0010\u0000\u10a7\u10a8\u0003"+ - "%\u0012\u0000\u10a8\u10a9\u0003/\u0017\u0000\u10a9\u10aa\u0003-\u0016"+ - "\u0000\u10aa\u0266\u0001\u0000\u0000\u0000\u10ab\u10ac\u0003\u0017\u000b"+ - "\u0000\u10ac\u10ad\u0003!\u0010\u0000\u10ad\u10ae\u0003+\u0015\u0000\u10ae"+ - "\u10af\u0003\u000f\u0007\u0000\u10af\u10b0\u0003!\u0010\u0000\u10b0\u10b1"+ - "\u0003+\u0015\u0000\u10b1\u10b2\u0003\u0017\u000b\u0000\u10b2\u10b3\u0003"+ - "-\u0016\u0000\u10b3\u10b4\u0003\u0017\u000b\u0000\u10b4\u10b5\u00031\u0018"+ - "\u0000\u10b5\u10b6\u0003\u000f\u0007\u0000\u10b6\u0268\u0001\u0000\u0000"+ - "\u0000\u10b7\u10b8\u0003\u0017\u000b\u0000\u10b8\u10b9\u0003!\u0010\u0000"+ - "\u10b9\u10ba\u0003+\u0015\u0000\u10ba\u10bb\u0003\u000f\u0007\u0000\u10bb"+ - "\u10bc\u0003)\u0014\u0000\u10bc\u10bd\u0003-\u0016\u0000\u10bd\u026a\u0001"+ - "\u0000\u0000\u0000\u10be\u10bf\u0003\u0017\u000b\u0000\u10bf\u10c0\u0003"+ - "!\u0010\u0000\u10c0\u10c1\u0003+\u0015\u0000\u10c1\u10c2\u0003-\u0016"+ - "\u0000\u10c2\u10c3\u0003\u0007\u0003\u0000\u10c3\u10c4\u0003!\u0010\u0000"+ - "\u10c4\u10c5\u0003\u000b\u0005\u0000\u10c5\u10c6\u0003\u000f\u0007\u0000"+ - "\u10c6\u026c\u0001\u0000\u0000\u0000\u10c7\u10c8\u0003\u0017\u000b\u0000"+ - "\u10c8\u10c9\u0003!\u0010\u0000\u10c9\u10ca\u0003+\u0015\u0000\u10ca\u10cb"+ - "\u0003-\u0016\u0000\u10cb\u10cc\u0003\u0007\u0003\u0000\u10cc\u10cd\u0003"+ - "!\u0010\u0000\u10cd\u10ce\u0003-\u0016\u0000\u10ce\u10cf\u0003\u0017\u000b"+ - "\u0000\u10cf\u10d0\u0003\u0007\u0003\u0000\u10d0\u10d1\u0003\t\u0004\u0000"+ - "\u10d1\u10d2\u0003\u001d\u000e\u0000\u10d2\u10d3\u0003\u000f\u0007\u0000"+ - "\u10d3\u026e\u0001\u0000\u0000\u0000\u10d4\u10d5\u0003\u0017\u000b\u0000"+ - "\u10d5\u10d6\u0003!\u0010\u0000\u10d6\u10d7\u0003+\u0015\u0000\u10d7\u10d8"+ - "\u0003-\u0016\u0000\u10d8\u10d9\u0003\u000f\u0007\u0000\u10d9\u10da\u0003"+ - "\u0007\u0003\u0000\u10da\u10db\u0003\r\u0006\u0000\u10db\u0270\u0001\u0000"+ - "\u0000\u0000\u10dc\u10dd\u0003\u0017\u000b\u0000\u10dd\u10de\u0003!\u0010"+ - "\u0000\u10de\u10df\u0003-\u0016\u0000\u10df\u0272\u0001\u0000\u0000\u0000"+ - "\u10e0\u10e1\u0003\u0017\u000b\u0000\u10e1\u10e2\u0003!\u0010\u0000\u10e2"+ - "\u10e3\u0003-\u0016\u0000\u10e3\u10e4\u0003\u000f\u0007\u0000\u10e4\u10e5"+ - "\u0003\u0013\t\u0000\u10e5\u10e6\u0003\u000f\u0007\u0000\u10e6\u10e7\u0003"+ - ")\u0014\u0000\u10e7\u0274\u0001\u0000\u0000\u0000\u10e8\u10e9\u0003\u0017"+ - "\u000b\u0000\u10e9\u10ea\u0003!\u0010\u0000\u10ea\u10eb\u0003-\u0016\u0000"+ - "\u10eb\u10ec\u0003\u000f\u0007\u0000\u10ec\u10ed\u0003)\u0014\u0000\u10ed"+ - "\u10ee\u0003+\u0015\u0000\u10ee\u10ef\u0003\u000f\u0007\u0000\u10ef\u10f0"+ - "\u0003\u000b\u0005\u0000\u10f0\u10f1\u0003-\u0016\u0000\u10f1\u0276\u0001"+ - "\u0000\u0000\u0000\u10f2\u10f3\u0003\u0017\u000b\u0000\u10f3\u10f4\u0003"+ - "!\u0010\u0000\u10f4\u10f5\u0003-\u0016\u0000\u10f5\u10f6\u0003\u000f\u0007"+ - "\u0000\u10f6\u10f7\u0003)\u0014\u0000\u10f7\u10f8\u0003+\u0015\u0000\u10f8"+ - "\u10f9\u0003\u000f\u0007\u0000\u10f9\u10fa\u0003\u000b\u0005\u0000\u10fa"+ - "\u10fb\u0003-\u0016\u0000\u10fb\u10fc\u0003\u0017\u000b\u0000\u10fc\u10fd"+ - "\u0003#\u0011\u0000\u10fd\u10fe\u0003!\u0010\u0000\u10fe\u0278\u0001\u0000"+ - "\u0000\u0000\u10ff\u1100\u0003\u0017\u000b\u0000\u1100\u1101\u0003!\u0010"+ - "\u0000\u1101\u1102\u0003-\u0016\u0000\u1102\u1103\u0003\u000f\u0007\u0000"+ - "\u1103\u1104\u0003)\u0014\u0000\u1104\u1105\u00031\u0018\u0000\u1105\u1106"+ - "\u0003\u0007\u0003\u0000\u1106\u1107\u0003\u001d\u000e\u0000\u1107\u027a"+ - "\u0001\u0000\u0000\u0000\u1108\u1109\u0003\u0017\u000b\u0000\u1109\u110a"+ - "\u0003!\u0010\u0000\u110a\u110b\u0003-\u0016\u0000\u110b\u110c\u0003#"+ - "\u0011\u0000\u110c\u027c\u0001\u0000\u0000\u0000\u110d\u110e\u0003\u0017"+ - "\u000b\u0000\u110e\u110f\u0003!\u0010\u0000\u110f\u1110\u00031\u0018\u0000"+ - "\u1110\u1111\u0003#\u0011\u0000\u1111\u1112\u0003\u001b\r\u0000\u1112"+ - "\u1113\u0003\u000f\u0007\u0000\u1113\u1114\u0003)\u0014\u0000\u1114\u027e"+ - "\u0001\u0000\u0000\u0000\u1115\u1116\u0003\u0017\u000b\u0000\u1116\u1117"+ - "\u0003+\u0015\u0000\u1117\u0280\u0001\u0000\u0000\u0000\u1118\u1119\u0003"+ - "\u0017\u000b\u0000\u1119\u111a\u0003+\u0015\u0000\u111a\u111b\u0003#\u0011"+ - "\u0000\u111b\u111c\u0003\u001d\u000e\u0000\u111c\u111d\u0003\u0007\u0003"+ - "\u0000\u111d\u111e\u0003-\u0016\u0000\u111e\u111f\u0003\u0017\u000b\u0000"+ - "\u111f\u1120\u0003#\u0011\u0000\u1120\u1121\u0003!\u0010\u0000\u1121\u0282"+ - "\u0001\u0000\u0000\u0000\u1122\u1123\u0003\u0017\u000b\u0000\u1123\u1124"+ - "\u0003-\u0016\u0000\u1124\u1125\u0003\u000f\u0007\u0000\u1125\u1126\u0003"+ - ")\u0014\u0000\u1126\u1127\u0003\u0007\u0003\u0000\u1127\u1128\u0003-\u0016"+ - "\u0000\u1128\u1129\u0003\u000f\u0007\u0000\u1129\u0284\u0001\u0000\u0000"+ - "\u0000\u112a\u112b\u0003\u0019\f\u0000\u112b\u112c\u0003#\u0011\u0000"+ - "\u112c\u112d\u0003\u0017\u000b\u0000\u112d\u112e\u0003!\u0010\u0000\u112e"+ - "\u0286\u0001\u0000\u0000\u0000\u112f\u1130\u0003\u001b\r\u0000\u1130\u0288"+ - "\u0001\u0000\u0000\u0000\u1131\u1132\u0003\u001b\r\u0000\u1132\u1133\u0003"+ - "\u000f\u0007\u0000\u1133\u1134\u00037\u001b\u0000\u1134\u028a\u0001\u0000"+ - "\u0000\u0000\u1135\u1136\u0003\u001b\r\u0000\u1136\u1137\u0003\u000f\u0007"+ - "\u0000\u1137\u1138\u00037\u001b\u0000\u1138\u1139\u0005_\u0000\u0000\u1139"+ - "\u113a\u0003\u001f\u000f\u0000\u113a\u113b\u0003\u000f\u0007\u0000\u113b"+ - "\u113c\u0003\u001f\u000f\u0000\u113c\u113d\u0003\t\u0004\u0000\u113d\u113e"+ - "\u0003\u000f\u0007\u0000\u113e\u113f\u0003)\u0014\u0000\u113f\u028c\u0001"+ - "\u0000\u0000\u0000\u1140\u1141\u0003\u001b\r\u0000\u1141\u1142\u0003\u000f"+ - "\u0007\u0000\u1142\u1143\u00037\u001b\u0000\u1143\u1144\u0005_\u0000\u0000"+ - "\u1144\u1145\u0003-\u0016\u0000\u1145\u1146\u00037\u001b\u0000\u1146\u1147"+ - "\u0003%\u0012\u0000\u1147\u1148\u0003\u000f\u0007\u0000\u1148\u028e\u0001"+ - "\u0000\u0000\u0000\u1149\u114a\u0003\u001d\u000e\u0000\u114a\u114b\u0003"+ - "\u0007\u0003\u0000\u114b\u114c\u0003\t\u0004\u0000\u114c\u114d\u0003\u000f"+ - "\u0007\u0000\u114d\u114e\u0003\u001d\u000e\u0000\u114e\u0290\u0001\u0000"+ - "\u0000\u0000\u114f\u1150\u0003\u001d\u000e\u0000\u1150\u1151\u0003\u0007"+ - "\u0003\u0000\u1151\u1152\u0003!\u0010\u0000\u1152\u1153\u0003\u000b\u0005"+ - "\u0000\u1153\u1154\u0003#\u0011\u0000\u1154\u1155\u0003\u001f\u000f\u0000"+ - "\u1155\u1156\u0003%\u0012\u0000\u1156\u1157\u0003\u0017\u000b\u0000\u1157"+ - "\u1158\u0003\u001d\u000e\u0000\u1158\u1159\u0003\u000f\u0007\u0000\u1159"+ - "\u115a\u0003)\u0014\u0000\u115a\u0292\u0001\u0000\u0000\u0000\u115b\u115c"+ - "\u0003\u001d\u000e\u0000\u115c\u115d\u0003\u0007\u0003\u0000\u115d\u115e"+ - "\u0003!\u0010\u0000\u115e\u115f\u0003\u0013\t\u0000\u115f\u1160\u0003"+ - "/\u0017\u0000\u1160\u1161\u0003\u0007\u0003\u0000\u1161\u1162\u0003\u0013"+ - "\t\u0000\u1162\u1163\u0003\u000f\u0007\u0000\u1163\u0294\u0001\u0000\u0000"+ - "\u0000\u1164\u1165\u0003\u001d\u000e\u0000\u1165\u1166\u0003\u0007\u0003"+ - "\u0000\u1166\u1167\u0003)\u0014\u0000\u1167\u1168\u0003\u0013\t\u0000"+ - "\u1168\u1169\u0003\u000f\u0007\u0000\u1169\u0296\u0001\u0000\u0000\u0000"+ - "\u116a\u116b\u0003\u001d\u000e\u0000\u116b\u116c\u0003\u0007\u0003\u0000"+ - "\u116c\u116d\u0003+\u0015\u0000\u116d\u116e\u0003-\u0016\u0000\u116e\u0298"+ - "\u0001\u0000\u0000\u0000\u116f\u1170\u0003\u001d\u000e\u0000\u1170\u1171"+ - "\u0003\u0007\u0003\u0000\u1171\u1172\u0003-\u0016\u0000\u1172\u1173\u0003"+ - "\u000f\u0007\u0000\u1173\u1174\u0003)\u0014\u0000\u1174\u1175\u0003\u0007"+ - "\u0003\u0000\u1175\u1176\u0003\u001d\u000e\u0000\u1176\u029a\u0001\u0000"+ - "\u0000\u0000\u1177\u1178\u0003\u001d\u000e\u0000\u1178\u1179\u0003\u000f"+ - "\u0007\u0000\u1179\u117a\u0003\u0007\u0003\u0000\u117a\u117b\u0003\r\u0006"+ - "\u0000\u117b\u117c\u0003\u0017\u000b\u0000\u117c\u117d\u0003!\u0010\u0000"+ - "\u117d\u117e\u0003\u0013\t\u0000\u117e\u029c\u0001\u0000\u0000\u0000\u117f"+ - "\u1180\u0003\u001d\u000e\u0000\u1180\u1181\u0003\u000f\u0007\u0000\u1181"+ - "\u1182\u0003\u0007\u0003\u0000\u1182\u1183\u0003+\u0015\u0000\u1183\u1184"+ - "\u0003-\u0016\u0000\u1184\u029e\u0001\u0000\u0000\u0000\u1185\u1186\u0003"+ - "\u001d\u000e\u0000\u1186\u1187\u0003\u000f\u0007\u0000\u1187\u1188\u0003"+ - "\u0011\b\u0000\u1188\u1189\u0003-\u0016\u0000\u1189\u02a0\u0001\u0000"+ - "\u0000\u0000\u118a\u118b\u0003\u001d\u000e\u0000\u118b\u118c\u0003\u000f"+ - "\u0007\u0000\u118c\u118d\u0003!\u0010\u0000\u118d\u118e\u0003\u0013\t"+ - "\u0000\u118e\u118f\u0003-\u0016\u0000\u118f\u1190\u0003\u0015\n\u0000"+ - "\u1190\u02a2\u0001\u0000\u0000\u0000\u1191\u1192\u0003\u001d\u000e\u0000"+ - "\u1192\u1193\u0003\u000f\u0007\u0000\u1193\u1194\u0003+\u0015\u0000\u1194"+ - "\u1195\u0003+\u0015\u0000\u1195\u02a4\u0001\u0000\u0000\u0000\u1196\u1197"+ - "\u0003\u001d\u000e\u0000\u1197\u1198\u0003\u000f\u0007\u0000\u1198\u1199"+ - "\u00031\u0018\u0000\u1199\u119a\u0003\u000f\u0007\u0000\u119a\u119b\u0003"+ - "\u001d\u000e\u0000\u119b\u02a6\u0001\u0000\u0000\u0000\u119c\u119d\u0003"+ - "\u001d\u000e\u0000\u119d\u119e\u0003\u0017\u000b\u0000\u119e\u119f\u0003"+ - "\u001b\r\u0000\u119f\u11a0\u0003\u000f\u0007\u0000\u11a0\u02a8\u0001\u0000"+ - "\u0000\u0000\u11a1\u11a2\u0003\u001d\u000e\u0000\u11a2\u11a3\u0003\u0017"+ - "\u000b\u0000\u11a3\u11a4\u0003\u001f\u000f\u0000\u11a4\u11a5\u0003\u0017"+ - "\u000b\u0000\u11a5\u11a6\u0003-\u0016\u0000\u11a6\u02aa\u0001\u0000\u0000"+ - "\u0000\u11a7\u11a8\u0003\u001d\u000e\u0000\u11a8\u11a9\u0003\u0017\u000b"+ - "\u0000\u11a9\u11aa\u0003+\u0015\u0000\u11aa\u11ab\u0003-\u0016\u0000\u11ab"+ - "\u11ac\u0003\u000f\u0007\u0000\u11ac\u11ad\u0003!\u0010\u0000\u11ad\u02ac"+ - "\u0001\u0000\u0000\u0000\u11ae\u11af\u0003\u001d\u000e\u0000\u11af\u11b0"+ - "\u0003!\u0010\u0000\u11b0\u02ae\u0001\u0000\u0000\u0000\u11b1\u11b2\u0003"+ - "\u001d\u000e\u0000\u11b2\u11b3\u0003#\u0011\u0000\u11b3\u11b4\u0003\u0007"+ - "\u0003\u0000\u11b4\u11b5\u0003\r\u0006\u0000\u11b5\u02b0\u0001\u0000\u0000"+ - "\u0000\u11b6\u11b7\u0003\u001d\u000e\u0000\u11b7\u11b8\u0003#\u0011\u0000"+ - "\u11b8\u11b9\u0003\u000b\u0005\u0000\u11b9\u11ba\u0003\u0007\u0003\u0000"+ - "\u11ba\u11bb\u0003\u001d\u000e\u0000\u11bb\u02b2\u0001\u0000\u0000\u0000"+ - "\u11bc\u11bd\u0003\u001d\u000e\u0000\u11bd\u11be\u0003#\u0011\u0000\u11be"+ - "\u11bf\u0003\u000b\u0005\u0000\u11bf\u11c0\u0003\u0007\u0003\u0000\u11c0"+ - "\u11c1\u0003\u001d\u000e\u0000\u11c1\u11c2\u0003-\u0016\u0000\u11c2\u11c3"+ - "\u0003\u0017\u000b\u0000\u11c3\u11c4\u0003\u001f\u000f\u0000\u11c4\u11c5"+ - "\u0003\u000f\u0007\u0000\u11c5\u02b4\u0001\u0000\u0000\u0000\u11c6\u11c7"+ - "\u0003\u001d\u000e\u0000\u11c7\u11c8\u0003#\u0011\u0000\u11c8\u11c9\u0003"+ - "\u000b\u0005\u0000\u11c9\u11ca\u0003\u0007\u0003\u0000\u11ca\u11cb\u0003"+ - "\u001d\u000e\u0000\u11cb\u11cc\u0003-\u0016\u0000\u11cc\u11cd\u0003\u0017"+ - "\u000b\u0000\u11cd\u11ce\u0003\u001f\u000f\u0000\u11ce\u11cf\u0003\u000f"+ - "\u0007\u0000\u11cf\u11d0\u0003+\u0015\u0000\u11d0\u11d1\u0003-\u0016\u0000"+ - "\u11d1\u11d2\u0003\u0007\u0003\u0000\u11d2\u11d3\u0003\u001f\u000f\u0000"+ - "\u11d3\u11d4\u0003%\u0012\u0000\u11d4\u02b6\u0001\u0000\u0000\u0000\u11d5"+ - "\u11d6\u0003\u001d\u000e\u0000\u11d6\u11d7\u0003#\u0011\u0000\u11d7\u11d8"+ - "\u0003\u000b\u0005\u0000\u11d8\u11d9\u0003\u0007\u0003\u0000\u11d9\u11da"+ - "\u0003-\u0016\u0000\u11da\u11db\u0003\u0017\u000b\u0000\u11db\u11dc\u0003"+ - "#\u0011\u0000\u11dc\u11dd\u0003!\u0010\u0000\u11dd\u02b8\u0001\u0000\u0000"+ - "\u0000\u11de\u11df\u0003\u001d\u000e\u0000\u11df\u11e0\u0003#\u0011\u0000"+ - "\u11e0\u11e1\u0003\u000b\u0005\u0000\u11e1\u11e2\u0003\u0007\u0003\u0000"+ - "\u11e2\u11e3\u0003-\u0016\u0000\u11e3\u11e4\u0003#\u0011\u0000\u11e4\u11e5"+ - "\u0003)\u0014\u0000\u11e5\u02ba\u0001\u0000\u0000\u0000\u11e6\u11e7\u0003"+ - "\u001d\u000e\u0000\u11e7\u11e8\u0003#\u0011\u0000\u11e8\u11e9\u0003\u000b"+ - "\u0005\u0000\u11e9\u11ea\u0003\u001b\r\u0000\u11ea\u02bc\u0001\u0000\u0000"+ - "\u0000\u11eb\u11ec\u0003\u001d\u000e\u0000\u11ec\u11ed\u0003#\u0011\u0000"+ - "\u11ed\u11ee\u0003\u000b\u0005\u0000\u11ee\u11ef\u0003\u001b\r\u0000\u11ef"+ - "\u11f0\u0003\u000f\u0007\u0000\u11f0\u11f1\u0003\r\u0006\u0000\u11f1\u02be"+ - "\u0001\u0000\u0000\u0000\u11f2\u11f3\u0003\u001d\u000e\u0000\u11f3\u11f4"+ - "\u0003#\u0011\u0000\u11f4\u11f5\u00033\u0019\u0000\u11f5\u11f6\u0003\u000f"+ - "\u0007\u0000\u11f6\u11f7\u0003)\u0014\u0000\u11f7\u02c0\u0001\u0000\u0000"+ - "\u0000\u11f8\u11f9\u0003\u001f\u000f\u0000\u11f9\u02c2\u0001\u0000\u0000"+ - "\u0000\u11fa\u11fb\u0003\u001f\u000f\u0000\u11fb\u11fc\u0003\u0007\u0003"+ - "\u0000\u11fc\u11fd\u0003\u0017\u000b\u0000\u11fd\u11fe\u0003!\u0010\u0000"+ - "\u11fe\u02c4\u0001\u0000\u0000\u0000\u11ff\u1200\u0003\u001f\u000f\u0000"+ - "\u1200\u1201\u0003\u0007\u0003\u0000\u1201\u1202\u0003%\u0012\u0000\u1202"+ - "\u02c6\u0001\u0000\u0000\u0000\u1203\u1204\u0003\u001f\u000f\u0000\u1204"+ - "\u1205\u0003\u0007\u0003\u0000\u1205\u1206\u0003%\u0012\u0000\u1206\u1207"+ - "\u0003%\u0012\u0000\u1207\u1208\u0003\u0017\u000b\u0000\u1208\u1209\u0003"+ - "!\u0010\u0000\u1209\u120a\u0003\u0013\t\u0000\u120a\u02c8\u0001\u0000"+ - "\u0000\u0000\u120b\u120c\u0003\u001f\u000f\u0000\u120c\u120d\u0003\u0007"+ - "\u0003\u0000\u120d\u120e\u0003-\u0016\u0000\u120e\u120f\u0003\u000b\u0005"+ - "\u0000\u120f\u1210\u0003\u0015\n\u0000\u1210\u02ca\u0001\u0000\u0000\u0000"+ - "\u1211\u1212\u0003\u001f\u000f\u0000\u1212\u1213\u0003\u0007\u0003\u0000"+ - "\u1213\u1214\u0003-\u0016\u0000\u1214\u1215\u0003\u000b\u0005\u0000\u1215"+ - "\u1216\u0003\u0015\n\u0000\u1216\u1217\u0005_\u0000\u0000\u1217\u1218"+ - "\u0003+\u0015\u0000\u1218\u1219\u0003\u0017\u000b\u0000\u1219\u121a\u0003"+ - "\u001f\u000f\u0000\u121a\u121b\u0003%\u0012\u0000\u121b\u121c\u0003\u001d"+ - "\u000e\u0000\u121c\u121d\u0003\u000f\u0007\u0000\u121d\u02cc\u0001\u0000"+ - "\u0000\u0000\u121e\u121f\u0003\u001f\u000f\u0000\u121f\u1220\u0003\u0007"+ - "\u0003\u0000\u1220\u1221\u0003-\u0016\u0000\u1221\u1222\u0003\u000b\u0005"+ - "\u0000\u1222\u1223\u0003\u0015\n\u0000\u1223\u1224\u0003\u000f\u0007\u0000"+ - "\u1224\u1225\u0003\r\u0006\u0000\u1225\u02ce\u0001\u0000\u0000\u0000\u1226"+ - "\u1227\u0003\u001f\u000f\u0000\u1227\u1228\u0003\u0007\u0003\u0000\u1228"+ - "\u1229\u00035\u001a\u0000\u1229\u02d0\u0001\u0000\u0000\u0000\u122a\u122b"+ - "\u0003\u001f\u000f\u0000\u122b\u122c\u0003\u0007\u0003\u0000\u122c\u122d"+ - "\u00035\u001a\u0000\u122d\u122e\u00031\u0018\u0000\u122e\u122f\u0003\u0007"+ - "\u0003\u0000\u122f\u1230\u0003\u001d\u000e\u0000\u1230\u1231\u0003/\u0017"+ - "\u0000\u1231\u1232\u0003\u000f\u0007\u0000\u1232\u02d2\u0001\u0000\u0000"+ - "\u0000\u1233\u1234\u0003\u001f\u000f\u0000\u1234\u1235\u0003\u000f\u0007"+ - "\u0000\u1235\u1236\u0003\u001f\u000f\u0000\u1236\u1237\u0003\t\u0004\u0000"+ - "\u1237\u1238\u0003\u000f\u0007\u0000\u1238\u1239\u0003)\u0014\u0000\u1239"+ - "\u02d4\u0001\u0000\u0000\u0000\u123a\u123b\u0003\u001f\u000f\u0000\u123b"+ - "\u123c\u0003\u000f\u0007\u0000\u123c\u123d\u0003)\u0014\u0000\u123d\u123e"+ - "\u0003\u0013\t\u0000\u123e\u123f\u0003\u000f\u0007\u0000\u123f\u02d6\u0001"+ - "\u0000\u0000\u0000\u1240\u1241\u0003\u001f\u000f\u0000\u1241\u1242\u0003"+ - "\u000f\u0007\u0000\u1242\u1243\u0003+\u0015\u0000\u1243\u1244\u0003+\u0015"+ - "\u0000\u1244\u1245\u0003\u0007\u0003\u0000\u1245\u1246\u0003\u0013\t\u0000"+ - "\u1246\u1247\u0003\u000f\u0007\u0000\u1247\u1248\u0005_\u0000\u0000\u1248"+ - "\u1249\u0003\u001d\u000e\u0000\u1249\u124a\u0003\u000f\u0007\u0000\u124a"+ - "\u124b\u0003!\u0010\u0000\u124b\u124c\u0003\u0013\t\u0000\u124c\u124d"+ - "\u0003-\u0016\u0000\u124d\u124e\u0003\u0015\n\u0000\u124e\u02d8\u0001"+ - "\u0000\u0000\u0000\u124f\u1250\u0003\u001f\u000f\u0000\u1250\u1251\u0003"+ - "\u000f\u0007\u0000\u1251\u1252\u0003+\u0015\u0000\u1252\u1253\u0003+\u0015"+ - "\u0000\u1253\u1254\u0003\u0007\u0003\u0000\u1254\u1255\u0003\u0013\t\u0000"+ - "\u1255\u1256\u0003\u000f\u0007\u0000\u1256\u1257\u0005_\u0000\u0000\u1257"+ - "\u1258\u0003#\u0011\u0000\u1258\u1259\u0003\u000b\u0005\u0000\u1259\u125a"+ - "\u0003-\u0016\u0000\u125a\u125b\u0003\u000f\u0007\u0000\u125b\u125c\u0003"+ - "-\u0016\u0000\u125c\u125d\u0005_\u0000\u0000\u125d\u125e\u0003\u001d\u000e"+ - "\u0000\u125e\u125f\u0003\u000f\u0007\u0000\u125f\u1260\u0003!\u0010\u0000"+ - "\u1260\u1261\u0003\u0013\t\u0000\u1261\u1262\u0003-\u0016\u0000\u1262"+ - "\u1263\u0003\u0015\n\u0000\u1263\u02da\u0001\u0000\u0000\u0000\u1264\u1265"+ - "\u0003\u001f\u000f\u0000\u1265\u1266\u0003\u000f\u0007\u0000\u1266\u1267"+ - "\u0003+\u0015\u0000\u1267\u1268\u0003+\u0015\u0000\u1268\u1269\u0003\u0007"+ - "\u0003\u0000\u1269\u126a\u0003\u0013\t\u0000\u126a\u126b\u0003\u000f\u0007"+ - "\u0000\u126b\u126c\u0005_\u0000\u0000\u126c\u126d\u0003-\u0016\u0000\u126d"+ - "\u126e\u0003\u000f\u0007\u0000\u126e\u126f\u00035\u001a\u0000\u126f\u1270"+ - "\u0003-\u0016\u0000\u1270\u02dc\u0001\u0000\u0000\u0000\u1271\u1272\u0003"+ - "\u001f\u000f\u0000\u1272\u1273\u0003\u000f\u0007\u0000\u1273\u1274\u0003"+ - "-\u0016\u0000\u1274\u1275\u0003\u0015\n\u0000\u1275\u1276\u0003#\u0011"+ - "\u0000\u1276\u1277\u0003\r\u0006\u0000\u1277\u02de\u0001\u0000\u0000\u0000"+ - "\u1278\u1279\u0003\u001f\u000f\u0000\u1279\u127a\u0003\u0017\u000b\u0000"+ - "\u127a\u127b\u0003!\u0010\u0000\u127b\u02e0\u0001\u0000\u0000\u0000\u127c"+ - "\u127d\u0003\u001f\u000f\u0000\u127d\u127e\u0003\u0017\u000b\u0000\u127e"+ - "\u127f\u0003!\u0010\u0000\u127f\u1280\u0003/\u0017\u0000\u1280\u1281\u0003"+ - "-\u0016\u0000\u1281\u1282\u0003\u000f\u0007\u0000\u1282\u02e2\u0001\u0000"+ - "\u0000\u0000\u1283\u1284\u0003\u001f\u000f\u0000\u1284\u1285\u0003\u0017"+ - "\u000b\u0000\u1285\u1286\u0003!\u0010\u0000\u1286\u1287\u00031\u0018\u0000"+ - "\u1287\u1288\u0003\u0007\u0003\u0000\u1288\u1289\u0003\u001d\u000e\u0000"+ - "\u1289\u128a\u0003/\u0017\u0000\u128a\u128b\u0003\u000f\u0007\u0000\u128b"+ - "\u02e4\u0001\u0000\u0000\u0000\u128c\u128d\u0003\u001f\u000f\u0000\u128d"+ - "\u128e\u0003#\u0011\u0000\u128e\u128f\u0003\r\u0006\u0000\u128f\u02e6"+ - "\u0001\u0000\u0000\u0000\u1290\u1291\u0003\u001f\u000f\u0000\u1291\u1292"+ - "\u0003#\u0011\u0000\u1292\u1293\u0003\r\u0006\u0000\u1293\u1294\u0003"+ - "\u000f\u0007\u0000\u1294\u02e8\u0001\u0000\u0000\u0000\u1295\u1296\u0003"+ - "\u001f\u000f\u0000\u1296\u1297\u0003#\u0011\u0000\u1297\u1298\u0003\r"+ - "\u0006\u0000\u1298\u1299\u0003\u0017\u000b\u0000\u1299\u129a\u0003\u0011"+ - "\b\u0000\u129a\u129b\u0003\u0017\u000b\u0000\u129b\u129c\u0003\u000f\u0007"+ - "\u0000\u129c\u129d\u0003+\u0015\u0000\u129d\u02ea\u0001\u0000\u0000\u0000"+ - "\u129e\u129f\u0003\u001f\u000f\u0000\u129f\u12a0\u0003#\u0011\u0000\u12a0"+ - "\u12a1\u0003\r\u0006\u0000\u12a1\u12a2\u0003\u0017\u000b\u0000\u12a2\u12a3"+ - "\u0003\u0011\b\u0000\u12a3\u12a4\u00037\u001b\u0000\u12a4\u02ec\u0001"+ - "\u0000\u0000\u0000\u12a5\u12a6\u0003\u001f\u000f\u0000\u12a6\u12a7\u0003"+ - "#\u0011\u0000\u12a7\u12a8\u0003\r\u0006\u0000\u12a8\u12a9\u0003/\u0017"+ - "\u0000\u12a9\u12aa\u0003\u001d\u000e\u0000\u12aa\u12ab\u0003\u000f\u0007"+ - "\u0000\u12ab\u02ee\u0001\u0000\u0000\u0000\u12ac\u12ad\u0003\u001f\u000f"+ - "\u0000\u12ad\u12ae\u0003#\u0011\u0000\u12ae\u12af\u0003!\u0010\u0000\u12af"+ - "\u12b0\u0003-\u0016\u0000\u12b0\u12b1\u0003\u0015\n\u0000\u12b1\u02f0"+ - "\u0001\u0000\u0000\u0000\u12b2\u12b3\u0003\u001f\u000f\u0000\u12b3\u12b4"+ - "\u0003#\u0011\u0000\u12b4\u12b5\u0003)\u0014\u0000\u12b5\u12b6\u0003\u000f"+ - "\u0007\u0000\u12b6\u02f2\u0001\u0000\u0000\u0000\u12b7\u12b8\u0003\u001f"+ - "\u000f\u0000\u12b8\u12b9\u0003#\u0011\u0000\u12b9\u12ba\u00031\u0018\u0000"+ - "\u12ba\u12bb\u0003\u000f\u0007\u0000\u12bb\u02f4\u0001\u0000\u0000\u0000"+ - "\u12bc\u12bd\u0003\u001f\u000f\u0000\u12bd\u12be\u0003/\u0017\u0000\u12be"+ - "\u12bf\u0003\u001d\u000e\u0000\u12bf\u12c0\u0003-\u0016\u0000\u12c0\u12c1"+ - "\u0003\u0017\u000b\u0000\u12c1\u12c2\u0003+\u0015\u0000\u12c2\u12c3\u0003"+ - "\u000f\u0007\u0000\u12c3\u12c4\u0003-\u0016\u0000\u12c4\u02f6\u0001\u0000"+ - "\u0000\u0000\u12c5\u12c6\u0003\u001f\u000f\u0000\u12c6\u12c7\u0003/\u0017"+ - "\u0000\u12c7\u12c8\u0003\u001f\u000f\u0000\u12c8\u12c9\u0003%\u0012\u0000"+ - "\u12c9\u12ca\u0003+\u0015\u0000\u12ca\u02f8\u0001\u0000\u0000\u0000\u12cb"+ - "\u12cc\u0003!\u0010\u0000\u12cc\u12cd\u0003\u0007\u0003\u0000\u12cd\u12ce"+ - "\u0003\u001f\u000f\u0000\u12ce\u12cf\u0003\u000f\u0007\u0000\u12cf\u02fa"+ - "\u0001\u0000\u0000\u0000\u12d0\u12d1\u0003!\u0010\u0000\u12d1\u12d2\u0003"+ - "\u0007\u0003\u0000\u12d2\u12d3\u0003\u001f\u000f\u0000\u12d3\u12d4\u0003"+ - "\u000f\u0007\u0000\u12d4\u12d5\u0003+\u0015\u0000\u12d5\u02fc\u0001\u0000"+ - "\u0000\u0000\u12d6\u12d7\u0003!\u0010\u0000\u12d7\u12d8\u0003\u0007\u0003"+ - "\u0000\u12d8\u12d9\u0003-\u0016\u0000\u12d9\u12da\u0003\u0017\u000b\u0000"+ - "\u12da\u12db\u0003#\u0011\u0000\u12db\u12dc\u0003!\u0010\u0000\u12dc\u12dd"+ - "\u0003\u0007\u0003\u0000\u12dd\u12de\u0003\u001d\u000e\u0000\u12de\u02fe"+ - "\u0001\u0000\u0000\u0000\u12df\u12e0\u0003!\u0010\u0000\u12e0\u12e1\u0003"+ - "\u0007\u0003\u0000\u12e1\u12e2\u0003-\u0016\u0000\u12e2\u12e3\u0003/\u0017"+ - "\u0000\u12e3\u12e4\u0003)\u0014\u0000\u12e4\u12e5\u0003\u0007\u0003\u0000"+ - "\u12e5\u12e6\u0003\u001d\u000e\u0000\u12e6\u0300\u0001\u0000\u0000\u0000"+ - "\u12e7\u12e8\u0003!\u0010\u0000\u12e8\u12e9\u0003\u000b\u0005\u0000\u12e9"+ - "\u12ea\u0003\u0015\n\u0000\u12ea\u12eb\u0003\u0007\u0003\u0000\u12eb\u12ec"+ - "\u0003)\u0014\u0000\u12ec\u0302\u0001\u0000\u0000\u0000\u12ed\u12ee\u0003"+ - "!\u0010\u0000\u12ee\u12ef\u0003\u000b\u0005\u0000\u12ef\u12f0\u0003\u001d"+ - "\u000e\u0000\u12f0\u12f1\u0003#\u0011\u0000\u12f1\u12f2\u0003\t\u0004"+ - "\u0000\u12f2\u0304\u0001\u0000\u0000\u0000\u12f3\u12f4\u0003!\u0010\u0000"+ - "\u12f4\u12f5\u0003\u000f\u0007\u0000\u12f5\u12f6\u0003+\u0015\u0000\u12f6"+ - "\u12f7\u0003-\u0016\u0000\u12f7\u12f8\u0003\u0017\u000b\u0000\u12f8\u12f9"+ - "\u0003!\u0010\u0000\u12f9\u12fa\u0003\u0013\t\u0000\u12fa\u0306\u0001"+ - "\u0000\u0000\u0000\u12fb\u12fc\u0003!\u0010\u0000\u12fc\u12fd\u0003\u000f"+ - "\u0007\u0000\u12fd\u12fe\u00033\u0019\u0000\u12fe\u0308\u0001\u0000\u0000"+ - "\u0000\u12ff\u1300\u0003!\u0010\u0000\u1300\u1301\u0003\u000f\u0007\u0000"+ - "\u1301\u1302\u00035\u001a\u0000\u1302\u1303\u0003-\u0016\u0000\u1303\u030a"+ - "\u0001\u0000\u0000\u0000\u1304\u1305\u0003!\u0010\u0000\u1305\u1306\u0003"+ - "#\u0011\u0000\u1306\u030c\u0001\u0000\u0000\u0000\u1307\u1308\u0003!\u0010"+ - "\u0000\u1308\u1309\u0003#\u0011\u0000\u1309\u130a\u0003\u000b\u0005\u0000"+ - "\u130a\u130b\u0003)\u0014\u0000\u130b\u130c\u0003\u000f\u0007\u0000\u130c"+ - "\u130d\u0003\u0007\u0003\u0000\u130d\u130e\u0003-\u0016\u0000\u130e\u130f"+ - "\u0003\u000f\u0007\u0000\u130f\u1310\u0003\r\u0006\u0000\u1310\u1311\u0003"+ - "\t\u0004\u0000\u1311\u030e\u0001\u0000\u0000\u0000\u1312\u1313\u0003!"+ - "\u0010\u0000\u1313\u1314\u0003#\u0011\u0000\u1314\u1315\u0003\u000b\u0005"+ - "\u0000\u1315\u1316\u0003)\u0014\u0000\u1316\u1317\u0003\u000f\u0007\u0000"+ - "\u1317\u1318\u0003\u0007\u0003\u0000\u1318\u1319\u0003-\u0016\u0000\u1319"+ - "\u131a\u0003\u000f\u0007\u0000\u131a\u131b\u0003/\u0017\u0000\u131b\u131c"+ - "\u0003+\u0015\u0000\u131c\u131d\u0003\u000f\u0007\u0000\u131d\u131e\u0003"+ - ")\u0014\u0000\u131e\u0310\u0001\u0000\u0000\u0000\u131f\u1320\u0003!\u0010"+ - "\u0000\u1320\u1321\u0003#\u0011\u0000\u1321\u1322\u0003!\u0010\u0000\u1322"+ - "\u1323\u0003\u000f\u0007\u0000\u1323\u0312\u0001\u0000\u0000\u0000\u1324"+ - "\u1325\u0003!\u0010\u0000\u1325\u1326\u0003#\u0011\u0000\u1326\u1327\u0003"+ - ")\u0014\u0000\u1327\u1328\u0003\u001f\u000f\u0000\u1328\u1329\u0003\u0007"+ - "\u0003\u0000\u1329\u132a\u0003\u001d\u000e\u0000\u132a\u132b\u0003\u0017"+ - "\u000b\u0000\u132b\u132c\u00039\u001c\u0000\u132c\u132d\u0003\u000f\u0007"+ - "\u0000\u132d\u0314\u0001\u0000\u0000\u0000\u132e\u132f\u0003!\u0010\u0000"+ - "\u132f\u1330\u0003#\u0011\u0000\u1330\u1331\u0003)\u0014\u0000\u1331\u1332"+ - "\u0003\u001f\u000f\u0000\u1332\u1333\u0003\u0007\u0003\u0000\u1333\u1334"+ - "\u0003\u001d\u000e\u0000\u1334\u1335\u0003\u0017\u000b\u0000\u1335\u1336"+ - "\u00039\u001c\u0000\u1336\u1337\u0003\u000f\u0007\u0000\u1337\u1338\u0003"+ - "\r\u0006\u0000\u1338\u0316\u0001\u0000\u0000\u0000\u1339\u133a\u0003!"+ - "\u0010\u0000\u133a\u133b\u0003#\u0011\u0000\u133b\u133c\u0003-\u0016\u0000"+ - "\u133c\u0318\u0001\u0000\u0000\u0000\u133d\u133e\u0003!\u0010\u0000\u133e"+ - "\u133f\u0003#\u0011\u0000\u133f\u1340\u0003-\u0016\u0000\u1340\u1341\u0003"+ - "\u0015\n\u0000\u1341\u1342\u0003\u0017\u000b\u0000\u1342\u1343\u0003!"+ - "\u0010\u0000\u1343\u1344\u0003\u0013\t\u0000\u1344\u031a\u0001\u0000\u0000"+ - "\u0000\u1345\u1346\u0003!\u0010\u0000\u1346\u1347\u0003#\u0011\u0000\u1347"+ - "\u1348\u0003-\u0016\u0000\u1348\u1349\u0003\u0017\u000b\u0000\u1349\u134a"+ - "\u0003\u0011\b\u0000\u134a\u134b\u00037\u001b\u0000\u134b\u031c\u0001"+ - "\u0000\u0000\u0000\u134c\u134d\u0003!\u0010\u0000\u134d\u134e\u0003#\u0011"+ - "\u0000\u134e\u134f\u0003-\u0016\u0000\u134f\u1350\u0003!\u0010\u0000\u1350"+ - "\u1351\u0003/\u0017\u0000\u1351\u1352\u0003\u001d\u000e\u0000\u1352\u1353"+ - "\u0003\u001d\u000e\u0000\u1353\u031e\u0001\u0000\u0000\u0000\u1354\u1355"+ - "\u0003!\u0010\u0000\u1355\u1356\u0003#\u0011\u0000\u1356\u1357\u00033"+ - "\u0019\u0000\u1357\u1358\u0003\u0007\u0003\u0000\u1358\u1359\u0003\u0017"+ - "\u000b\u0000\u1359\u135a\u0003-\u0016\u0000\u135a\u0320\u0001\u0000\u0000"+ - "\u0000\u135b\u135c\u0003!\u0010\u0000\u135c\u135d\u0003/\u0017\u0000\u135d"+ - "\u135e\u0003\u001d\u000e\u0000\u135e\u135f\u0003\u001d\u000e\u0000\u135f"+ - "\u0322\u0001\u0000\u0000\u0000\u1360\u1361\u0003!\u0010\u0000\u1361\u1362"+ - "\u0003/\u0017\u0000\u1362\u1363\u0003\u001d\u000e\u0000\u1363\u1364\u0003"+ - "\u001d\u000e\u0000\u1364\u1365\u0003\u0007\u0003\u0000\u1365\u1366\u0003"+ - "\t\u0004\u0000\u1366\u1367\u0003\u001d\u000e\u0000\u1367\u1368\u0003\u000f"+ - "\u0007\u0000\u1368\u0324\u0001\u0000\u0000\u0000\u1369\u136a\u0003!\u0010"+ - "\u0000\u136a\u136b\u0003/\u0017\u0000\u136b\u136c\u0003\u001d\u000e\u0000"+ - "\u136c\u136d\u0003\u001d\u000e\u0000\u136d\u136e\u0003\u0017\u000b\u0000"+ - "\u136e\u136f\u0003\u0011\b\u0000\u136f\u0326\u0001\u0000\u0000\u0000\u1370"+ - "\u1371\u0003!\u0010\u0000\u1371\u1372\u0003/\u0017\u0000\u1372\u1373\u0003"+ - "\u001d\u000e\u0000\u1373\u1374\u0003\u001d\u000e\u0000\u1374\u1375\u0003"+ - "+\u0015\u0000\u1375\u0328\u0001\u0000\u0000\u0000\u1376\u1377\u0003!\u0010"+ - "\u0000\u1377\u1378\u0003/\u0017\u0000\u1378\u1379\u0003\u001f\u000f\u0000"+ - "\u1379\u137a\u0003\t\u0004\u0000\u137a\u137b\u0003\u000f\u0007\u0000\u137b"+ - "\u137c\u0003)\u0014\u0000\u137c\u032a\u0001\u0000\u0000\u0000\u137d\u137e"+ - "\u0003!\u0010\u0000\u137e\u137f\u0003/\u0017\u0000\u137f\u1380\u0003\u001f"+ - "\u000f\u0000\u1380\u1381\u0003\u000f\u0007\u0000\u1381\u1382\u0003)\u0014"+ - "\u0000\u1382\u1383\u0003\u0017\u000b\u0000\u1383\u1384\u0003\u000b\u0005"+ - "\u0000\u1384\u032c\u0001\u0000\u0000\u0000\u1385\u1386\u0003#\u0011\u0000"+ - "\u1386\u1387\u0003\t\u0004\u0000\u1387\u1388\u0003\u0019\f\u0000\u1388"+ - "\u1389\u0003\u000f\u0007\u0000\u1389\u138a\u0003\u000b\u0005\u0000\u138a"+ - "\u138b\u0003-\u0016\u0000\u138b\u032e\u0001\u0000\u0000\u0000\u138c\u138d"+ - "\u0003#\u0011\u0000\u138d\u138e\u0003\u000b\u0005\u0000\u138e\u138f\u0003"+ - "-\u0016\u0000\u138f\u1390\u0003\u000f\u0007\u0000\u1390\u1391\u0003-\u0016"+ - "\u0000\u1391\u1392\u0005_\u0000\u0000\u1392\u1393\u0003\u001d\u000e\u0000"+ - "\u1393\u1394\u0003\u000f\u0007\u0000\u1394\u1395\u0003!\u0010\u0000\u1395"+ - "\u1396\u0003\u0013\t\u0000\u1396\u1397\u0003-\u0016\u0000\u1397\u1398"+ - "\u0003\u0015\n\u0000\u1398\u0330\u0001\u0000\u0000\u0000\u1399\u139a\u0003"+ - "#\u0011\u0000\u139a\u139b\u0003\u000b\u0005\u0000\u139b\u139c\u0003-\u0016"+ - "\u0000\u139c\u139d\u0003\u000f\u0007\u0000\u139d\u139e\u0003-\u0016\u0000"+ - "\u139e\u139f\u0003+\u0015\u0000\u139f\u0332\u0001\u0000\u0000\u0000\u13a0"+ - "\u13a1\u0003#\u0011\u0000\u13a1\u13a2\u0003\u0011\b\u0000\u13a2\u0334"+ - "\u0001\u0000\u0000\u0000\u13a3\u13a4\u0003#\u0011\u0000\u13a4\u13a5\u0003"+ - "\u0011\b\u0000\u13a5\u13a6\u0003\u0011\b\u0000\u13a6\u0336\u0001\u0000"+ - "\u0000\u0000\u13a7\u13a8\u0003#\u0011\u0000\u13a8\u13a9\u0003\u0011\b"+ - "\u0000\u13a9\u13aa\u0003\u0011\b\u0000\u13aa\u13ab\u0003+\u0015\u0000"+ - "\u13ab\u13ac\u0003\u000f\u0007\u0000\u13ac\u13ad\u0003-\u0016\u0000\u13ad"+ - "\u0338\u0001\u0000\u0000\u0000\u13ae\u13af\u0003#\u0011\u0000\u13af\u13b0"+ - "\u0003\u0017\u000b\u0000\u13b0\u13b1\u0003\r\u0006\u0000\u13b1\u13b2\u0003"+ - "+\u0015\u0000\u13b2\u033a\u0001\u0000\u0000\u0000\u13b3\u13b4\u0003#\u0011"+ - "\u0000\u13b4\u13b5\u0003\u001d\u000e\u0000\u13b5\u13b6\u0003\r\u0006\u0000"+ - "\u13b6\u033c\u0001\u0000\u0000\u0000\u13b7\u13b8\u0003#\u0011\u0000\u13b8"+ - "\u13b9\u0003!\u0010\u0000\u13b9\u033e\u0001\u0000\u0000\u0000\u13ba\u13bb"+ - "\u0003#\u0011\u0000\u13bb\u13bc\u0003!\u0010\u0000\u13bc\u13bd\u0003\u001d"+ - "\u000e\u0000\u13bd\u13be\u00037\u001b\u0000\u13be\u0340\u0001\u0000\u0000"+ - "\u0000\u13bf\u13c0\u0003#\u0011\u0000\u13c0\u13c1\u0003%\u0012\u0000\u13c1"+ - "\u13c2\u0003\u000f\u0007\u0000\u13c2\u13c3\u0003!\u0010\u0000\u13c3\u0342"+ - "\u0001\u0000\u0000\u0000\u13c4\u13c5\u0003#\u0011\u0000\u13c5\u13c6\u0003"+ - "%\u0012\u0000\u13c6\u13c7\u0003\u000f\u0007\u0000\u13c7\u13c8\u0003)\u0014"+ - "\u0000\u13c8\u13c9\u0003\u0007\u0003\u0000\u13c9\u13ca\u0003-\u0016\u0000"+ - "\u13ca\u13cb\u0003\u0017\u000b\u0000\u13cb\u13cc\u0003#\u0011\u0000\u13cc"+ - "\u13cd\u0003!\u0010\u0000\u13cd\u0344\u0001\u0000\u0000\u0000\u13ce\u13cf"+ - "\u0003#\u0011\u0000\u13cf\u13d0\u0003%\u0012\u0000\u13d0\u13d1\u0003\u000f"+ - "\u0007\u0000\u13d1\u13d2\u0003)\u0014\u0000\u13d2\u13d3\u0003\u0007\u0003"+ - "\u0000\u13d3\u13d4\u0003-\u0016\u0000\u13d4\u13d5\u0003#\u0011\u0000\u13d5"+ - "\u13d6\u0003)\u0014\u0000\u13d6\u0346\u0001\u0000\u0000\u0000\u13d7\u13d8"+ - "\u0003#\u0011\u0000\u13d8\u13d9\u0003%\u0012\u0000\u13d9\u13da\u0003-"+ - "\u0016\u0000\u13da\u13db\u0003\u0017\u000b\u0000\u13db\u13dc\u0003#\u0011"+ - "\u0000\u13dc\u13dd\u0003!\u0010\u0000\u13dd\u0348\u0001\u0000\u0000\u0000"+ - "\u13de\u13df\u0003#\u0011\u0000\u13df\u13e0\u0003%\u0012\u0000\u13e0\u13e1"+ - "\u0003-\u0016\u0000\u13e1\u13e2\u0003\u0017\u000b\u0000\u13e2\u13e3\u0003"+ - "#\u0011\u0000\u13e3\u13e4\u0003!\u0010\u0000\u13e4\u13e5\u0003+\u0015"+ - "\u0000\u13e5\u034a\u0001\u0000\u0000\u0000\u13e6\u13e7\u0003#\u0011\u0000"+ - "\u13e7\u13e8\u0003)\u0014\u0000\u13e8\u034c\u0001\u0000\u0000\u0000\u13e9"+ - "\u13ea\u0003#\u0011\u0000\u13ea\u13eb\u0003)\u0014\u0000\u13eb\u13ec\u0003"+ - "\r\u0006\u0000\u13ec\u13ed\u0003\u000f\u0007\u0000\u13ed\u13ee\u0003)"+ - "\u0014\u0000\u13ee\u034e\u0001\u0000\u0000\u0000\u13ef\u13f0\u0003#\u0011"+ - "\u0000\u13f0\u13f1\u0003)\u0014\u0000\u13f1\u13f2\u0003\r\u0006\u0000"+ - "\u13f2\u13f3\u0003\u000f\u0007\u0000\u13f3\u13f4\u0003)\u0014\u0000\u13f4"+ - "\u13f5\u0003\u0017\u000b\u0000\u13f5\u13f6\u0003!\u0010\u0000\u13f6\u13f7"+ - "\u0003\u0013\t\u0000\u13f7\u0350\u0001\u0000\u0000\u0000\u13f8\u13f9\u0003"+ - "#\u0011\u0000\u13f9\u13fa\u0003)\u0014\u0000\u13fa\u13fb\u0003\r\u0006"+ - "\u0000\u13fb\u13fc\u0003\u0017\u000b\u0000\u13fc\u13fd\u0003!\u0010\u0000"+ - "\u13fd\u13fe\u0003\u0007\u0003\u0000\u13fe\u13ff\u0003\u001d\u000e\u0000"+ - "\u13ff\u1400\u0003\u0017\u000b\u0000\u1400\u1401\u0003-\u0016\u0000\u1401"+ - "\u1402\u00037\u001b\u0000\u1402\u0352\u0001\u0000\u0000\u0000\u1403\u1404"+ - "\u0003#\u0011\u0000\u1404\u1405\u0003-\u0016\u0000\u1405\u1406\u0003\u0015"+ - "\n\u0000\u1406\u1407\u0003\u000f\u0007\u0000\u1407\u1408\u0003)\u0014"+ - "\u0000\u1408\u1409\u0003+\u0015\u0000\u1409\u0354\u0001\u0000\u0000\u0000"+ - "\u140a\u140b\u0003#\u0011\u0000\u140b\u140c\u0003/\u0017\u0000\u140c\u140d"+ - "\u0003-\u0016\u0000\u140d\u0356\u0001\u0000\u0000\u0000\u140e\u140f\u0003"+ - "#\u0011\u0000\u140f\u1410\u0003/\u0017\u0000\u1410\u1411\u0003-\u0016"+ - "\u0000\u1411\u1412\u0003\u000f\u0007\u0000\u1412\u1413\u0003)\u0014\u0000"+ - "\u1413\u0358\u0001\u0000\u0000\u0000\u1414\u1415\u0003#\u0011\u0000\u1415"+ - "\u1416\u0003/\u0017\u0000\u1416\u1417\u0003-\u0016\u0000\u1417\u1418\u0003"+ - "%\u0012\u0000\u1418\u1419\u0003/\u0017\u0000\u1419\u141a\u0003-\u0016"+ - "\u0000\u141a\u035a\u0001\u0000\u0000\u0000\u141b\u141c\u0003#\u0011\u0000"+ - "\u141c\u141d\u00031\u0018\u0000\u141d\u141e\u0003\u000f\u0007\u0000\u141e"+ - "\u141f\u0003)\u0014\u0000\u141f\u035c\u0001\u0000\u0000\u0000\u1420\u1421"+ - "\u0003#\u0011\u0000\u1421\u1422\u00031\u0018\u0000\u1422\u1423\u0003\u000f"+ - "\u0007\u0000\u1423\u1424\u0003)\u0014\u0000\u1424\u1425\u0003\u001d\u000e"+ - "\u0000\u1425\u1426\u0003\u0007\u0003\u0000\u1426\u1427\u0003%\u0012\u0000"+ - "\u1427\u1428\u0003+\u0015\u0000\u1428\u035e\u0001\u0000\u0000\u0000\u1429"+ - "\u142a\u0003#\u0011\u0000\u142a\u142b\u00031\u0018\u0000\u142b\u142c\u0003"+ - "\u000f\u0007\u0000\u142c\u142d\u0003)\u0014\u0000\u142d\u142e\u0003\u001d"+ - "\u000e\u0000\u142e\u142f\u0003\u0007\u0003\u0000\u142f\u1430\u00037\u001b"+ - "\u0000\u1430\u0360\u0001\u0000\u0000\u0000\u1431\u1432\u0003#\u0011\u0000"+ - "\u1432\u1433\u00031\u0018\u0000\u1433\u1434\u0003\u000f\u0007\u0000\u1434"+ - "\u1435\u0003)\u0014\u0000\u1435\u1436\u0003)\u0014\u0000\u1436\u1437\u0003"+ - "\u0017\u000b\u0000\u1437\u1438\u0003\r\u0006\u0000\u1438\u1439\u0003\u0017"+ - "\u000b\u0000\u1439\u143a\u0003!\u0010\u0000\u143a\u143b\u0003\u0013\t"+ - "\u0000\u143b\u0362\u0001\u0000\u0000\u0000\u143c\u143d\u0003#\u0011\u0000"+ - "\u143d\u143e\u00033\u0019\u0000\u143e\u143f\u0003!\u0010\u0000\u143f\u1440"+ - "\u0003\u000f\u0007\u0000\u1440\u1441\u0003)\u0014\u0000\u1441\u0364\u0001"+ - "\u0000\u0000\u0000\u1442\u1443\u0003%\u0012\u0000\u1443\u1444\u0003\u0007"+ - "\u0003\u0000\u1444\u1445\u0003\r\u0006\u0000\u1445\u0366\u0001\u0000\u0000"+ - "\u0000\u1446\u1447\u0003%\u0012\u0000\u1447\u1448\u0003\u0007\u0003\u0000"+ - "\u1448\u1449\u0003)\u0014\u0000\u1449\u144a\u0003\u0007\u0003\u0000\u144a"+ - "\u144b\u0003\u001f\u000f\u0000\u144b\u144c\u0003\u000f\u0007\u0000\u144c"+ - "\u144d\u0003-\u0016\u0000\u144d\u144e\u0003\u000f\u0007\u0000\u144e\u144f"+ - "\u0003)\u0014\u0000\u144f\u0368\u0001\u0000\u0000\u0000\u1450\u1451\u0003"+ - "%\u0012\u0000\u1451\u1452\u0003\u0007\u0003\u0000\u1452\u1453\u0003)\u0014"+ - "\u0000\u1453\u1454\u0003\u0007\u0003\u0000\u1454\u1455\u0003\u001f\u000f"+ - "\u0000\u1455\u1456\u0003\u000f\u0007\u0000\u1456\u1457\u0003-\u0016\u0000"+ - "\u1457\u1458\u0003\u000f\u0007\u0000\u1458\u1459\u0003)\u0014\u0000\u1459"+ - "\u145a\u0005_\u0000\u0000\u145a\u145b\u0003\u001f\u000f\u0000\u145b\u145c"+ - "\u0003#\u0011\u0000\u145c\u145d\u0003\r\u0006\u0000\u145d\u145e\u0003"+ - "\u000f\u0007\u0000\u145e\u036a\u0001\u0000\u0000\u0000\u145f\u1460\u0003"+ - "%\u0012\u0000\u1460\u1461\u0003\u0007\u0003\u0000\u1461\u1462\u0003)\u0014"+ - "\u0000\u1462\u1463\u0003\u0007\u0003\u0000\u1463\u1464\u0003\u001f\u000f"+ - "\u0000\u1464\u1465\u0003\u000f\u0007\u0000\u1465\u1466\u0003-\u0016\u0000"+ - "\u1466\u1467\u0003\u000f\u0007\u0000\u1467\u1468\u0003)\u0014\u0000\u1468"+ - "\u1469\u0005_\u0000\u0000\u1469\u146a\u0003!\u0010\u0000\u146a\u146b\u0003"+ - "\u0007\u0003\u0000\u146b\u146c\u0003\u001f\u000f\u0000\u146c\u146d\u0003"+ - "\u000f\u0007\u0000\u146d\u036c\u0001\u0000\u0000\u0000\u146e\u146f\u0003"+ - "%\u0012\u0000\u146f\u1470\u0003\u0007\u0003\u0000\u1470\u1471\u0003)\u0014"+ - "\u0000\u1471\u1472\u0003\u0007\u0003\u0000\u1472\u1473\u0003\u001f\u000f"+ - "\u0000\u1473\u1474\u0003\u000f\u0007\u0000\u1474\u1475\u0003-\u0016\u0000"+ - "\u1475\u1476\u0003\u000f\u0007\u0000\u1476\u1477\u0003)\u0014\u0000\u1477"+ - "\u1478\u0005_\u0000\u0000\u1478\u1479\u0003#\u0011\u0000\u1479\u147a\u0003"+ - ")\u0014\u0000\u147a\u147b\u0003\r\u0006\u0000\u147b\u147c\u0003\u0017"+ - "\u000b\u0000\u147c\u147d\u0003!\u0010\u0000\u147d\u147e\u0003\u0007\u0003"+ - "\u0000\u147e\u147f\u0003\u001d\u000e\u0000\u147f\u1480\u0005_\u0000\u0000"+ - "\u1480\u1481\u0003%\u0012\u0000\u1481\u1482\u0003#\u0011\u0000\u1482\u1483"+ - "\u0003+\u0015\u0000\u1483\u1484\u0003\u0017\u000b\u0000\u1484\u1485\u0003"+ - "-\u0016\u0000\u1485\u1486\u0003\u0017\u000b\u0000\u1486\u1487\u0003#\u0011"+ - "\u0000\u1487\u1488\u0003!\u0010\u0000\u1488\u036e\u0001\u0000\u0000\u0000"+ - "\u1489\u148a\u0003%\u0012\u0000\u148a\u148b\u0003\u0007\u0003\u0000\u148b"+ - "\u148c\u0003)\u0014\u0000\u148c\u148d\u0003\u0007\u0003\u0000\u148d\u148e"+ - "\u0003\u001f\u000f\u0000\u148e\u148f\u0003\u000f\u0007\u0000\u148f\u1490"+ - "\u0003-\u0016\u0000\u1490\u1491\u0003\u000f\u0007\u0000\u1491\u1492\u0003"+ - ")\u0014\u0000\u1492\u1493\u0005_\u0000\u0000\u1493\u1494\u0003+\u0015"+ - "\u0000\u1494\u1495\u0003%\u0012\u0000\u1495\u1496\u0003\u000f\u0007\u0000"+ - "\u1496\u1497\u0003\u000b\u0005\u0000\u1497\u1498\u0003\u0017\u000b\u0000"+ - "\u1498\u1499\u0003\u0011\b\u0000\u1499\u149a\u0003\u0017\u000b\u0000\u149a"+ - "\u149b\u0003\u000b\u0005\u0000\u149b\u149c\u0005_\u0000\u0000\u149c\u149d"+ - "\u0003\u000b\u0005\u0000\u149d\u149e\u0003\u0007\u0003\u0000\u149e\u149f"+ - "\u0003-\u0016\u0000\u149f\u14a0\u0003\u0007\u0003\u0000\u14a0\u14a1\u0003"+ - "\u001d\u000e\u0000\u14a1\u14a2\u0003#\u0011\u0000\u14a2\u14a3\u0003\u0013"+ - "\t\u0000\u14a3\u0370\u0001\u0000\u0000\u0000\u14a4\u14a5\u0003%\u0012"+ - "\u0000\u14a5\u14a6\u0003\u0007\u0003\u0000\u14a6\u14a7\u0003)\u0014\u0000"+ - "\u14a7\u14a8\u0003\u0007\u0003\u0000\u14a8\u14a9\u0003\u001f\u000f\u0000"+ - "\u14a9\u14aa\u0003\u000f\u0007\u0000\u14aa\u14ab\u0003-\u0016\u0000\u14ab"+ - "\u14ac\u0003\u000f\u0007\u0000\u14ac\u14ad\u0003)\u0014\u0000\u14ad\u14ae"+ - "\u0005_\u0000\u0000\u14ae\u14af\u0003+\u0015\u0000\u14af\u14b0\u0003%"+ - "\u0012\u0000\u14b0\u14b1\u0003\u000f\u0007\u0000\u14b1\u14b2\u0003\u000b"+ - "\u0005\u0000\u14b2\u14b3\u0003\u0017\u000b\u0000\u14b3\u14b4\u0003\u0011"+ - "\b\u0000\u14b4\u14b5\u0003\u0017\u000b\u0000\u14b5\u14b6\u0003\u000b\u0005"+ - "\u0000\u14b6\u14b7\u0005_\u0000\u0000\u14b7\u14b8\u0003!\u0010\u0000\u14b8"+ - "\u14b9\u0003\u0007\u0003\u0000\u14b9\u14ba\u0003\u001f\u000f\u0000\u14ba"+ - "\u14bb\u0003\u000f\u0007\u0000\u14bb\u0372\u0001\u0000\u0000\u0000\u14bc"+ - "\u14bd\u0003%\u0012\u0000\u14bd\u14be\u0003\u0007\u0003\u0000\u14be\u14bf"+ - "\u0003)\u0014\u0000\u14bf\u14c0\u0003\u0007\u0003\u0000\u14c0\u14c1\u0003"+ - "\u001f\u000f\u0000\u14c1\u14c2\u0003\u000f\u0007\u0000\u14c2\u14c3\u0003"+ - "-\u0016\u0000\u14c3\u14c4\u0003\u000f\u0007\u0000\u14c4\u14c5\u0003)\u0014"+ - "\u0000\u14c5\u14c6\u0005_\u0000\u0000\u14c6\u14c7\u0003+\u0015\u0000\u14c7"+ - "\u14c8\u0003%\u0012\u0000\u14c8\u14c9\u0003\u000f\u0007\u0000\u14c9\u14ca"+ - "\u0003\u000b\u0005\u0000\u14ca\u14cb\u0003\u0017\u000b\u0000\u14cb\u14cc"+ - "\u0003\u0011\b\u0000\u14cc\u14cd\u0003\u0017\u000b\u0000\u14cd\u14ce\u0003"+ - "\u000b\u0005\u0000\u14ce\u14cf\u0005_\u0000\u0000\u14cf\u14d0\u0003+\u0015"+ - "\u0000\u14d0\u14d1\u0003\u000b\u0005\u0000\u14d1\u14d2\u0003\u0015\n\u0000"+ - "\u14d2\u14d3\u0003\u000f\u0007\u0000\u14d3\u14d4\u0003\u001f\u000f\u0000"+ - "\u14d4\u14d5\u0003\u0007\u0003\u0000\u14d5\u0374\u0001\u0000\u0000\u0000"+ - "\u14d6\u14d7\u0003%\u0012\u0000\u14d7\u14d8\u0003\u0007\u0003\u0000\u14d8"+ - "\u14d9\u0003)\u0014\u0000\u14d9\u14da\u0003\u0007\u0003\u0000\u14da\u14db"+ - "\u0003\u001f\u000f\u0000\u14db\u14dc\u0003\u000f\u0007\u0000\u14dc\u14dd"+ - "\u0003-\u0016\u0000\u14dd\u14de\u0003\u000f\u0007\u0000\u14de\u14df\u0003"+ - ")\u0014\u0000\u14df\u14e0\u0003+\u0015\u0000\u14e0\u0376\u0001\u0000\u0000"+ - "\u0000\u14e1\u14e2\u0003%\u0012\u0000\u14e2\u14e3\u0003\u0007\u0003\u0000"+ - "\u14e3\u14e4\u0003)\u0014\u0000\u14e4\u14e5\u0003+\u0015\u0000\u14e5\u14e6"+ - "\u0003\u000f\u0007\u0000\u14e6\u14e7\u0003)\u0014\u0000\u14e7\u0378\u0001"+ - "\u0000\u0000\u0000\u14e8\u14e9\u0003%\u0012\u0000\u14e9\u14ea\u0003\u0007"+ - "\u0003\u0000\u14ea\u14eb\u0003)\u0014\u0000\u14eb\u14ec\u0003-\u0016\u0000"+ - "\u14ec\u14ed\u0003\u0017\u000b\u0000\u14ed\u14ee\u0003\u0007\u0003\u0000"+ - "\u14ee\u14ef\u0003\u001d\u000e\u0000\u14ef\u037a\u0001\u0000\u0000\u0000"+ - "\u14f0\u14f1\u0003%\u0012\u0000\u14f1\u14f2\u0003\u0007\u0003\u0000\u14f2"+ - "\u14f3\u0003)\u0014\u0000\u14f3\u14f4\u0003-\u0016\u0000\u14f4\u14f5\u0003"+ - "\u0017\u000b\u0000\u14f5\u14f6\u0003-\u0016\u0000\u14f6\u14f7\u0003\u0017"+ - "\u000b\u0000\u14f7\u14f8\u0003#\u0011\u0000\u14f8\u14f9\u0003!\u0010\u0000"+ - "\u14f9\u037c\u0001\u0000\u0000\u0000\u14fa\u14fb\u0003%\u0012\u0000\u14fb"+ - "\u14fc\u0003\u0007\u0003\u0000\u14fc\u14fd\u0003+\u0015\u0000\u14fd\u14fe"+ - "\u0003\u000b\u0005\u0000\u14fe\u14ff\u0003\u0007\u0003\u0000\u14ff\u1500"+ - "\u0003\u001d\u000e\u0000\u1500\u037e\u0001\u0000\u0000\u0000\u1501\u1502"+ - "\u0003%\u0012\u0000\u1502\u1503\u0003\u0007\u0003\u0000\u1503\u1504\u0003"+ - "+\u0015\u0000\u1504\u1505\u0003+\u0015\u0000\u1505\u1506\u00033\u0019"+ - "\u0000\u1506\u1507\u0003#\u0011\u0000\u1507\u1508\u0003)\u0014\u0000\u1508"+ - "\u1509\u0003\r\u0006\u0000\u1509\u0380\u0001\u0000\u0000\u0000\u150a\u150b"+ - "\u0003%\u0012\u0000\u150b\u150c\u0003\u0007\u0003\u0000\u150c\u150d\u0003"+ - "-\u0016\u0000\u150d\u150e\u0003\u0015\n\u0000\u150e\u0382\u0001\u0000"+ - "\u0000\u0000\u150f\u1510\u0003%\u0012\u0000\u1510\u1511\u0003\u000f\u0007"+ - "\u0000\u1511\u1512\u0003)\u0014\u0000\u1512\u1513\u0003\u000b\u0005\u0000"+ - "\u1513\u1514\u0003\u000f\u0007\u0000\u1514\u1515\u0003!\u0010\u0000\u1515"+ - "\u1516\u0003-\u0016\u0000\u1516\u1517\u0005_\u0000\u0000\u1517\u1518\u0003"+ - ")\u0014\u0000\u1518\u1519\u0003\u0007\u0003\u0000\u1519\u151a\u0003!\u0010"+ - "\u0000\u151a\u151b\u0003\u001b\r\u0000\u151b\u0384\u0001\u0000\u0000\u0000"+ - "\u151c\u151d\u0003%\u0012\u0000\u151d\u151e\u0003\u000f\u0007\u0000\u151e"+ - "\u151f\u0003)\u0014\u0000\u151f\u1520\u0003\u000b\u0005\u0000\u1520\u1521"+ - "\u0003\u000f\u0007\u0000\u1521\u1522\u0003!\u0010\u0000\u1522\u1523\u0003"+ - "-\u0016\u0000\u1523\u1524\u0003\u0017\u000b\u0000\u1524\u1525\u0003\u001d"+ - "\u000e\u0000\u1525\u1526\u0003\u000f\u0007\u0000\u1526\u1527\u0005_\u0000"+ - "\u0000\u1527\u1528\u0003\u000b\u0005\u0000\u1528\u1529\u0003#\u0011\u0000"+ - "\u1529\u152a\u0003!\u0010\u0000\u152a\u152b\u0003-\u0016\u0000\u152b\u0386"+ - "\u0001\u0000\u0000\u0000\u152c\u152d\u0003%\u0012\u0000\u152d\u152e\u0003"+ - "\u000f\u0007\u0000\u152e\u152f\u0003)\u0014\u0000\u152f\u1530\u0003\u000b"+ - "\u0005\u0000\u1530\u1531\u0003\u000f\u0007\u0000\u1531\u1532\u0003!\u0010"+ - "\u0000\u1532\u1533\u0003-\u0016\u0000\u1533\u1534\u0003\u0017\u000b\u0000"+ - "\u1534\u1535\u0003\u001d\u000e\u0000\u1535\u1536\u0003\u000f\u0007\u0000"+ - "\u1536\u1537\u0005_\u0000\u0000\u1537\u1538\u0003\r\u0006\u0000\u1538"+ - "\u1539\u0003\u0017\u000b\u0000\u1539\u153a\u0003+\u0015\u0000\u153a\u153b"+ - "\u0003\u000b\u0005\u0000\u153b\u0388\u0001\u0000\u0000\u0000\u153c\u153d"+ - "\u0003%\u0012\u0000\u153d\u153e\u0003\u001d\u000e\u0000\u153e\u153f\u0003"+ - "\u0007\u0003\u0000\u153f\u1540\u0003\u000b\u0005\u0000\u1540\u1541\u0003"+ - "\u0017\u000b\u0000\u1541\u1542\u0003!\u0010\u0000\u1542\u1543\u0003\u0013"+ - "\t\u0000\u1543\u038a\u0001\u0000\u0000\u0000\u1544\u1545\u0003%\u0012"+ - "\u0000\u1545\u1546\u0003\u001d\u000e\u0000\u1546\u1547\u0003\u0007\u0003"+ - "\u0000\u1547\u1548\u0003\u0017\u000b\u0000\u1548\u1549\u0003!\u0010\u0000"+ - "\u1549\u038c\u0001\u0000\u0000\u0000\u154a\u154b\u0003%\u0012\u0000\u154b"+ - "\u154c\u0003\u001d\u000e\u0000\u154c\u154d\u0003\u0007\u0003\u0000\u154d"+ - "\u154e\u0003!\u0010\u0000\u154e\u154f\u0003+\u0015\u0000\u154f\u038e\u0001"+ - "\u0000\u0000\u0000\u1550\u1551\u0003%\u0012\u0000\u1551\u1552\u0003\u001d"+ - "\u000e\u0000\u1552\u1553\u0003\u0017\u000b\u0000\u1553\u0390\u0001\u0000"+ - "\u0000\u0000\u1554\u1555\u0003%\u0012\u0000\u1555\u1556\u0003#\u0011\u0000"+ - "\u1556\u1557\u0003+\u0015\u0000\u1557\u1558\u0003\u0017\u000b\u0000\u1558"+ - "\u1559\u0003-\u0016\u0000\u1559\u155a\u0003\u0017\u000b\u0000\u155a\u155b"+ - "\u0003#\u0011\u0000\u155b\u155c\u0003!\u0010\u0000\u155c\u0392\u0001\u0000"+ - "\u0000\u0000\u155d\u155e\u0003%\u0012\u0000\u155e\u155f\u0003#\u0011\u0000"+ - "\u155f\u1560\u0003+\u0015\u0000\u1560\u1561\u0003-\u0016\u0000\u1561\u1562"+ - "\u0003\u0011\b\u0000\u1562\u1563\u0003\u0017\u000b\u0000\u1563\u1564\u0003"+ - "5\u001a\u0000\u1564\u0394\u0001\u0000\u0000\u0000\u1565\u1566\u0003%\u0012"+ - "\u0000\u1566\u1567\u0003#\u0011\u0000\u1567\u1568\u00033\u0019\u0000\u1568"+ - "\u1569\u0003\u000f\u0007\u0000\u1569\u156a\u0003)\u0014\u0000\u156a\u0396"+ - "\u0001\u0000\u0000\u0000\u156b\u156c\u0003%\u0012\u0000\u156c\u156d\u0003"+ - ")\u0014\u0000\u156d\u156e\u0003\u000f\u0007\u0000\u156e\u156f\u0003\u000b"+ - "\u0005\u0000\u156f\u1570\u0003\u000f\u0007\u0000\u1570\u1571\u0003\r\u0006"+ - "\u0000\u1571\u1572\u0003\u0017\u000b\u0000\u1572\u1573\u0003!\u0010\u0000"+ - "\u1573\u1574\u0003\u0013\t\u0000\u1574\u0398\u0001\u0000\u0000\u0000\u1575"+ - "\u1576\u0003%\u0012\u0000\u1576\u1577\u0003)\u0014\u0000\u1577\u1578\u0003"+ - "\u000f\u0007\u0000\u1578\u1579\u0003\u000b\u0005\u0000\u1579\u157a\u0003"+ - "\u0017\u000b\u0000\u157a\u157b\u0003+\u0015\u0000\u157b\u157c\u0003\u0017"+ - "\u000b\u0000\u157c\u157d\u0003#\u0011\u0000\u157d\u157e\u0003!\u0010\u0000"+ - "\u157e\u039a\u0001\u0000\u0000\u0000\u157f\u1580\u0003%\u0012\u0000\u1580"+ - "\u1581\u0003)\u0014\u0000\u1581\u1582\u0003\u000f\u0007\u0000\u1582\u1583"+ - "\u0003\u0011\b\u0000\u1583\u1584\u0003\u0017\u000b\u0000\u1584\u1585\u0003"+ - "5\u001a\u0000\u1585\u039c\u0001\u0000\u0000\u0000\u1586\u1587\u0003%\u0012"+ - "\u0000\u1587\u1588\u0003)\u0014\u0000\u1588\u1589\u0003\u000f\u0007\u0000"+ - "\u1589\u158a\u0003#\u0011\u0000\u158a\u158b\u0003)\u0014\u0000\u158b\u158c"+ - "\u0003\r\u0006\u0000\u158c\u158d\u0003\u000f\u0007\u0000\u158d\u158e\u0003"+ - ")\u0014\u0000\u158e\u039e\u0001\u0000\u0000\u0000\u158f\u1590\u0003%\u0012"+ - "\u0000\u1590\u1591\u0003)\u0014\u0000\u1591\u1592\u0003\u000f\u0007\u0000"+ - "\u1592\u1593\u0003%\u0012\u0000\u1593\u1594\u0003\u0007\u0003\u0000\u1594"+ - "\u1595\u0003)\u0014\u0000\u1595\u1596\u0003\u000f\u0007\u0000\u1596\u03a0"+ - "\u0001\u0000\u0000\u0000\u1597\u1598\u0003%\u0012\u0000\u1598\u1599\u0003"+ - ")\u0014\u0000\u1599\u159a\u0003\u000f\u0007\u0000\u159a\u159b\u0003%\u0012"+ - "\u0000\u159b\u159c\u0003\u0007\u0003\u0000\u159c\u159d\u0003)\u0014\u0000"+ - "\u159d\u159e\u0003\u000f\u0007\u0000\u159e\u159f\u0003\r\u0006\u0000\u159f"+ - "\u03a2\u0001\u0000\u0000\u0000\u15a0\u15a1\u0003%\u0012\u0000\u15a1\u15a2"+ - "\u0003)\u0014\u0000\u15a2\u15a3\u0003\u000f\u0007\u0000\u15a3\u15a4\u0003"+ - "+\u0015\u0000\u15a4\u15a5\u0003\u000f\u0007\u0000\u15a5\u15a6\u0003)\u0014"+ - "\u0000\u15a6\u15a7\u00031\u0018\u0000\u15a7\u15a8\u0003\u000f\u0007\u0000"+ - "\u15a8\u03a4\u0001\u0000\u0000\u0000\u15a9\u15aa\u0003%\u0012\u0000\u15aa"+ - "\u15ab\u0003)\u0014\u0000\u15ab\u15ac\u0003\u0017\u000b\u0000\u15ac\u15ad"+ - "\u0003\u001f\u000f\u0000\u15ad\u15ae\u0003\u0007\u0003\u0000\u15ae\u15af"+ - "\u0003)\u0014\u0000\u15af\u15b0\u00037\u001b\u0000\u15b0\u03a6\u0001\u0000"+ - "\u0000\u0000\u15b1\u15b2\u0003%\u0012\u0000\u15b2\u15b3\u0003)\u0014\u0000"+ - "\u15b3\u15b4\u0003\u0017\u000b\u0000\u15b4\u15b5\u0003#\u0011\u0000\u15b5"+ - "\u15b6\u0003)\u0014\u0000\u15b6\u03a8\u0001\u0000\u0000\u0000\u15b7\u15b8"+ - "\u0003%\u0012\u0000\u15b8\u15b9\u0003)\u0014\u0000\u15b9\u15ba\u0003\u0017"+ - "\u000b\u0000\u15ba\u15bb\u00031\u0018\u0000\u15bb\u15bc\u0003\u0017\u000b"+ - "\u0000\u15bc\u15bd\u0003\u001d\u000e\u0000\u15bd\u15be\u0003\u000f\u0007"+ - "\u0000\u15be\u15bf\u0003\u0013\t\u0000\u15bf\u15c0\u0003\u000f\u0007\u0000"+ - "\u15c0\u15c1\u0003+\u0015\u0000\u15c1\u03aa\u0001\u0000\u0000\u0000\u15c2"+ - "\u15c3\u0003%\u0012\u0000\u15c3\u15c4\u0003)\u0014\u0000\u15c4\u15c5\u0003"+ - "#\u0011\u0000\u15c5\u15c6\u0003\u000b\u0005\u0000\u15c6\u15c7\u0003\u000f"+ - "\u0007\u0000\u15c7\u15c8\u0003\r\u0006\u0000\u15c8\u15c9\u0003/\u0017"+ - "\u0000\u15c9\u15ca\u0003)\u0014\u0000\u15ca\u15cb\u0003\u0007\u0003\u0000"+ - "\u15cb\u15cc\u0003\u001d\u000e\u0000\u15cc\u03ac\u0001\u0000\u0000\u0000"+ - "\u15cd\u15ce\u0003%\u0012\u0000\u15ce\u15cf\u0003)\u0014\u0000\u15cf\u15d0"+ - "\u0003#\u0011\u0000\u15d0\u15d1\u0003\u000b\u0005\u0000\u15d1\u15d2\u0003"+ - "\u000f\u0007\u0000\u15d2\u15d3\u0003\r\u0006\u0000\u15d3\u15d4\u0003/"+ - "\u0017\u0000\u15d4\u15d5\u0003)\u0014\u0000\u15d5\u15d6\u0003\u000f\u0007"+ - "\u0000\u15d6\u03ae\u0001\u0000\u0000\u0000\u15d7\u15d8\u0003%\u0012\u0000"+ - "\u15d8\u15d9\u0003/\u0017\u0000\u15d9\u15da\u0003\t\u0004\u0000\u15da"+ - "\u15db\u0003\u001d\u000e\u0000\u15db\u15dc\u0003\u0017\u000b\u0000\u15dc"+ - "\u15dd\u0003\u000b\u0005\u0000\u15dd\u03b0\u0001\u0000\u0000\u0000\u15de"+ - "\u15df\u0003%\u0012\u0000\u15df\u15e0\u0003/\u0017\u0000\u15e0\u15e1\u0003"+ - "\t\u0004\u0000\u15e1\u15e2\u0003\u001d\u000e\u0000\u15e2\u15e3\u0003\u0017"+ - "\u000b\u0000\u15e3\u15e4\u0003\u000b\u0005\u0000\u15e4\u15e5\u0003\u0007"+ - "\u0003\u0000\u15e5\u15e6\u0003-\u0016\u0000\u15e6\u15e7\u0003\u0017\u000b"+ - "\u0000\u15e7\u15e8\u0003#\u0011\u0000\u15e8\u15e9\u0003!\u0010\u0000\u15e9"+ - "\u03b2\u0001\u0000\u0000\u0000\u15ea\u15eb\u0003\'\u0013\u0000\u15eb\u15ec"+ - "\u0003/\u0017\u0000\u15ec\u15ed\u0003#\u0011\u0000\u15ed\u15ee\u0003-"+ - "\u0016\u0000\u15ee\u15ef\u0003\u000f\u0007\u0000\u15ef\u03b4\u0001\u0000"+ - "\u0000\u0000\u15f0\u15f1\u0003)\u0014\u0000\u15f1\u15f2\u0003\u0007\u0003"+ - "\u0000\u15f2\u15f3\u0003!\u0010\u0000\u15f3\u15f4\u0003\u0013\t\u0000"+ - "\u15f4\u15f5\u0003\u000f\u0007\u0000\u15f5\u03b6\u0001\u0000\u0000\u0000"+ - "\u15f6\u15f7\u0003)\u0014\u0000\u15f7\u15f8\u0003\u0007\u0003\u0000\u15f8"+ - "\u15f9\u0003!\u0010\u0000\u15f9\u15fa\u0003\u001b\r\u0000\u15fa\u03b8"+ - "\u0001\u0000\u0000\u0000\u15fb\u15fc\u0003)\u0014\u0000\u15fc\u15fd\u0003"+ - "\u000f\u0007\u0000\u15fd\u15fe\u0003\u0007\u0003\u0000\u15fe\u15ff\u0003"+ - "\r\u0006\u0000\u15ff\u03ba\u0001\u0000\u0000\u0000\u1600\u1601\u0003)"+ - "\u0014\u0000\u1601\u1602\u0003\u000f\u0007\u0000\u1602\u1603\u0003\u0007"+ - "\u0003\u0000\u1603\u1604\u0003\r\u0006\u0000\u1604\u1605\u0003+\u0015"+ - "\u0000\u1605\u03bc\u0001\u0000\u0000\u0000\u1606\u1607\u0003)\u0014\u0000"+ - "\u1607\u1608\u0003\u000f\u0007\u0000\u1608\u1609\u0003\u0007\u0003\u0000"+ - "\u1609\u160a\u0003\u001d\u000e\u0000\u160a\u03be\u0001\u0000\u0000\u0000"+ - "\u160b\u160c\u0003)\u0014\u0000\u160c\u160d\u0003\u000f\u0007\u0000\u160d"+ - "\u160e\u0003\u0007\u0003\u0000\u160e\u160f\u0003+\u0015\u0000\u160f\u1610"+ - "\u0003+\u0015\u0000\u1610\u1611\u0003\u0017\u000b\u0000\u1611\u1612\u0003"+ - "\u0013\t\u0000\u1612\u1613\u0003!\u0010\u0000\u1613\u03c0\u0001\u0000"+ - "\u0000\u0000\u1614\u1615\u0003)\u0014\u0000\u1615\u1616\u0003\u000f\u0007"+ - "\u0000\u1616\u1617\u0003\u000b\u0005\u0000\u1617\u1618\u0003\u0015\n\u0000"+ - "\u1618\u1619\u0003\u000f\u0007\u0000\u1619\u161a\u0003\u000b\u0005\u0000"+ - "\u161a\u161b\u0003\u001b\r\u0000\u161b\u03c2\u0001\u0000\u0000\u0000\u161c"+ - "\u161d\u0003)\u0014\u0000\u161d\u161e\u0003\u000f\u0007\u0000\u161e\u161f"+ - "\u0003\u000b\u0005\u0000\u161f\u1620\u0003/\u0017\u0000\u1620\u1621\u0003"+ - ")\u0014\u0000\u1621\u1622\u0003+\u0015\u0000\u1622\u1623\u0003\u0017\u000b"+ - "\u0000\u1623\u1624\u00031\u0018\u0000\u1624\u1625\u0003\u000f\u0007\u0000"+ - "\u1625\u03c4\u0001\u0000\u0000\u0000\u1626\u1627\u0003)\u0014\u0000\u1627"+ - "\u1628\u0003\u000f\u0007\u0000\u1628\u1629\u0003\u0011\b\u0000\u1629\u03c6"+ - "\u0001\u0000\u0000\u0000\u162a\u162b\u0003)\u0014\u0000\u162b\u162c\u0003"+ - "\u000f\u0007\u0000\u162c\u162d\u0003\u0011\b\u0000\u162d\u162e\u0003\u000f"+ - "\u0007\u0000\u162e\u162f\u0003)\u0014\u0000\u162f\u1630\u0003\u000f\u0007"+ - "\u0000\u1630\u1631\u0003!\u0010\u0000\u1631\u1632\u0003\u000b\u0005\u0000"+ - "\u1632\u1633\u0003\u000f\u0007\u0000\u1633\u1634\u0003+\u0015\u0000\u1634"+ - "\u03c8\u0001\u0000\u0000\u0000\u1635\u1636\u0003)\u0014\u0000\u1636\u1637"+ - "\u0003\u000f\u0007\u0000\u1637\u1638\u0003\u0011\b\u0000\u1638\u1639\u0003"+ - "\u000f\u0007\u0000\u1639\u163a\u0003)\u0014\u0000\u163a\u163b\u0003\u000f"+ - "\u0007\u0000\u163b\u163c\u0003!\u0010\u0000\u163c\u163d\u0003\u000b\u0005"+ - "\u0000\u163d\u163e\u0003\u0017\u000b\u0000\u163e\u163f\u0003!\u0010\u0000"+ - "\u163f\u1640\u0003\u0013\t\u0000\u1640\u03ca\u0001\u0000\u0000\u0000\u1641"+ - "\u1642\u0003)\u0014\u0000\u1642\u1643\u0003\u000f\u0007\u0000\u1643\u1644"+ - "\u0003\u0011\b\u0000\u1644\u1645\u0003)\u0014\u0000\u1645\u1646\u0003"+ - "\u000f\u0007\u0000\u1646\u1647\u0003+\u0015\u0000\u1647\u1648\u0003\u0015"+ - "\n\u0000\u1648\u03cc\u0001\u0000\u0000\u0000\u1649\u164a\u0003)\u0014"+ - "\u0000\u164a\u164b\u0003\u000f\u0007\u0000\u164b\u164c\u0003\u0013\t\u0000"+ - "\u164c\u164d\u0003)\u0014\u0000\u164d\u164e\u0005_\u0000\u0000\u164e\u164f"+ - "\u0003\u0007\u0003\u0000\u164f\u1650\u00031\u0018\u0000\u1650\u1651\u0003"+ - "\u0013\t\u0000\u1651\u1652\u00035\u001a\u0000\u1652\u03ce\u0001\u0000"+ - "\u0000\u0000\u1653\u1654\u0003)\u0014\u0000\u1654\u1655\u0003\u000f\u0007"+ - "\u0000\u1655\u1656\u0003\u0013\t\u0000\u1656\u1657\u0003)\u0014\u0000"+ - "\u1657\u1658\u0005_\u0000\u0000\u1658\u1659\u0003\u0007\u0003\u0000\u1659"+ - "\u165a\u00031\u0018\u0000\u165a\u165b\u0003\u0013\t\u0000\u165b\u165c"+ - "\u00037\u001b\u0000\u165c\u03d0\u0001\u0000\u0000\u0000\u165d\u165e\u0003"+ - ")\u0014\u0000\u165e\u165f\u0003\u000f\u0007\u0000\u165f\u1660\u0003\u0013"+ - "\t\u0000\u1660\u1661\u0003)\u0014\u0000\u1661\u1662\u0005_\u0000\u0000"+ - "\u1662\u1663\u0003\u000b\u0005\u0000\u1663\u1664\u0003#\u0011\u0000\u1664"+ - "\u1665\u0003/\u0017\u0000\u1665\u1666\u0003!\u0010\u0000\u1666\u1667\u0003"+ - "-\u0016\u0000\u1667\u03d2\u0001\u0000\u0000\u0000\u1668\u1669\u0003)\u0014"+ - "\u0000\u1669\u166a\u0003\u000f\u0007\u0000\u166a\u166b\u0003\u0013\t\u0000"+ - "\u166b\u166c\u0003)\u0014\u0000\u166c\u166d\u0005_\u0000\u0000\u166d\u166e"+ - "\u0003\u0017\u000b\u0000\u166e\u166f\u0003!\u0010\u0000\u166f\u1670\u0003"+ - "-\u0016\u0000\u1670\u1671\u0003\u000f\u0007\u0000\u1671\u1672\u0003)\u0014"+ - "\u0000\u1672\u1673\u0003\u000b\u0005\u0000\u1673\u1674\u0003\u000f\u0007"+ - "\u0000\u1674\u1675\u0003%\u0012\u0000\u1675\u1676\u0003-\u0016\u0000\u1676"+ - "\u03d4\u0001\u0000\u0000\u0000\u1677\u1678\u0003)\u0014\u0000\u1678\u1679"+ - "\u0003\u000f\u0007\u0000\u1679\u167a\u0003\u0013\t\u0000\u167a\u167b\u0003"+ - ")\u0014\u0000\u167b\u167c\u0005_\u0000\u0000\u167c\u167d\u0003)\u0014"+ - "\u0000\u167d\u167e\u00052\u0000\u0000\u167e\u03d6\u0001\u0000\u0000\u0000"+ - "\u167f\u1680\u0003)\u0014\u0000\u1680\u1681\u0003\u000f\u0007\u0000\u1681"+ - "\u1682\u0003\u0013\t\u0000\u1682\u1683\u0003)\u0014\u0000\u1683\u1684"+ - "\u0005_\u0000\u0000\u1684\u1685\u0003+\u0015\u0000\u1685\u1686\u0003\u001d"+ - "\u000e\u0000\u1686\u1687\u0003#\u0011\u0000\u1687\u1688\u0003%\u0012\u0000"+ - "\u1688\u1689\u0003\u000f\u0007\u0000\u1689\u03d8\u0001\u0000\u0000\u0000"+ - "\u168a\u168b\u0003)\u0014\u0000\u168b\u168c\u0003\u000f\u0007\u0000\u168c"+ - "\u168d\u0003\u0013\t\u0000\u168d\u168e\u0003)\u0014\u0000\u168e\u168f"+ - "\u0005_\u0000\u0000\u168f\u1690\u0003+\u0015\u0000\u1690\u1691\u00035"+ - "\u001a\u0000\u1691\u1692\u00035\u001a\u0000\u1692\u03da\u0001\u0000\u0000"+ - "\u0000\u1693\u1694\u0003)\u0014\u0000\u1694\u1695\u0003\u000f\u0007\u0000"+ - "\u1695\u1696\u0003\u0013\t\u0000\u1696\u1697\u0003)\u0014\u0000\u1697"+ - "\u1698\u0005_\u0000\u0000\u1698\u1699\u0003+\u0015\u0000\u1699\u169a\u0003"+ - "5\u001a\u0000\u169a\u169b\u00037\u001b\u0000\u169b\u03dc\u0001\u0000\u0000"+ - "\u0000\u169c\u169d\u0003)\u0014\u0000\u169d\u169e\u0003\u000f\u0007\u0000"+ - "\u169e\u169f\u0003\u0013\t\u0000\u169f\u16a0\u0003)\u0014\u0000\u16a0"+ - "\u16a1\u0005_\u0000\u0000\u16a1\u16a2\u0003+\u0015\u0000\u16a2\u16a3\u0003"+ - "7\u001b\u0000\u16a3\u16a4\u00037\u001b\u0000\u16a4\u03de\u0001\u0000\u0000"+ - "\u0000\u16a5\u16a6\u0003)\u0014\u0000\u16a6\u16a7\u0003\u000f\u0007\u0000"+ - "\u16a7\u16a8\u0003\u0017\u000b\u0000\u16a8\u16a9\u0003!\u0010\u0000\u16a9"+ - "\u16aa\u0003\r\u0006\u0000\u16aa\u16ab\u0003\u000f\u0007\u0000\u16ab\u16ac"+ - "\u00035\u001a\u0000\u16ac\u03e0\u0001\u0000\u0000\u0000\u16ad\u16ae\u0003"+ - ")\u0014\u0000\u16ae\u16af\u0003\u000f\u0007\u0000\u16af\u16b0\u0003\u001d"+ - "\u000e\u0000\u16b0\u16b1\u0003\u0007\u0003\u0000\u16b1\u16b2\u0003-\u0016"+ - "\u0000\u16b2\u16b3\u0003\u0017\u000b\u0000\u16b3\u16b4\u00031\u0018\u0000"+ - "\u16b4\u16b5\u0003\u000f\u0007\u0000\u16b5\u03e2\u0001\u0000\u0000\u0000"+ - "\u16b6\u16b7\u0003)\u0014\u0000\u16b7\u16b8\u0003\u000f\u0007\u0000\u16b8"+ - "\u16b9\u0003\u001d\u000e\u0000\u16b9\u16ba\u0003\u000f\u0007\u0000\u16ba"+ - "\u16bb\u0003\u0007\u0003\u0000\u16bb\u16bc\u0003+\u0015\u0000\u16bc\u16bd"+ - "\u0003\u000f\u0007\u0000\u16bd\u03e4\u0001\u0000\u0000\u0000\u16be\u16bf"+ - "\u0003)\u0014\u0000\u16bf\u16c0\u0003\u000f\u0007\u0000\u16c0\u16c1\u0003"+ - "!\u0010\u0000\u16c1\u16c2\u0003\u0007\u0003\u0000\u16c2\u16c3\u0003\u001f"+ - "\u000f\u0000\u16c3\u16c4\u0003\u000f\u0007\u0000\u16c4\u03e6\u0001\u0000"+ - "\u0000\u0000\u16c5\u16c6\u0003)\u0014\u0000\u16c6\u16c7\u0003\u000f\u0007"+ - "\u0000\u16c7\u16c8\u0003%\u0012\u0000\u16c8\u16c9\u0003\u000f\u0007\u0000"+ - "\u16c9\u16ca\u0003\u0007\u0003\u0000\u16ca\u16cb\u0003-\u0016\u0000\u16cb"+ - "\u16cc\u0003\u0007\u0003\u0000\u16cc\u16cd\u0003\t\u0004\u0000\u16cd\u16ce"+ - "\u0003\u001d\u000e\u0000\u16ce\u16cf\u0003\u000f\u0007\u0000\u16cf\u03e8"+ - "\u0001\u0000\u0000\u0000\u16d0\u16d1\u0003)\u0014\u0000\u16d1\u16d2\u0003"+ - "\u000f\u0007\u0000\u16d2\u16d3\u0003%\u0012\u0000\u16d3\u16d4\u0003\u001d"+ - "\u000e\u0000\u16d4\u16d5\u0003\u0007\u0003\u0000\u16d5\u16d6\u0003\u000b"+ - "\u0005\u0000\u16d6\u16d7\u0003\u000f\u0007\u0000\u16d7\u03ea\u0001\u0000"+ - "\u0000\u0000\u16d8\u16d9\u0003)\u0014\u0000\u16d9\u16da\u0003\u000f\u0007"+ - "\u0000\u16da\u16db\u0003%\u0012\u0000\u16db\u16dc\u0003\u001d\u000e\u0000"+ - "\u16dc\u16dd\u0003\u0017\u000b\u0000\u16dd\u16de\u0003\u000b\u0005\u0000"+ - "\u16de\u16df\u0003\u0007\u0003\u0000\u16df\u03ec\u0001\u0000\u0000\u0000"+ - "\u16e0\u16e1\u0003)\u0014\u0000\u16e1\u16e2\u0003\u000f\u0007\u0000\u16e2"+ - "\u16e3\u0003+\u0015\u0000\u16e3\u16e4\u0003\u000f\u0007\u0000\u16e4\u16e5"+ - "\u0003-\u0016\u0000\u16e5\u03ee\u0001\u0000\u0000\u0000\u16e6\u16e7\u0003"+ - ")\u0014\u0000\u16e7\u16e8\u0003\u000f\u0007\u0000\u16e8\u16e9\u0003+\u0015"+ - "\u0000\u16e9\u16ea\u0003-\u0016\u0000\u16ea\u16eb\u0003\u0007\u0003\u0000"+ - "\u16eb\u16ec\u0003)\u0014\u0000\u16ec\u16ed\u0003-\u0016\u0000\u16ed\u03f0"+ - "\u0001\u0000\u0000\u0000\u16ee\u16ef\u0003)\u0014\u0000\u16ef\u16f0\u0003"+ - "\u000f\u0007\u0000\u16f0\u16f1\u0003+\u0015\u0000\u16f1\u16f2\u0003-\u0016"+ - "\u0000\u16f2\u16f3\u0003)\u0014\u0000\u16f3\u16f4\u0003\u0017\u000b\u0000"+ - "\u16f4\u16f5\u0003\u000b\u0005\u0000\u16f5\u16f6\u0003-\u0016\u0000\u16f6"+ - "\u03f2\u0001\u0000\u0000\u0000\u16f7\u16f8\u0003)\u0014\u0000\u16f8\u16f9"+ - "\u0003\u000f\u0007\u0000\u16f9\u16fa\u0003+\u0015\u0000\u16fa\u16fb\u0003"+ - "/\u0017\u0000\u16fb\u16fc\u0003\u001d\u000e\u0000\u16fc\u16fd\u0003-\u0016"+ - "\u0000\u16fd\u03f4\u0001\u0000\u0000\u0000\u16fe\u16ff\u0003)\u0014\u0000"+ - "\u16ff\u1700\u0003\u000f\u0007\u0000\u1700\u1701\u0003-\u0016\u0000\u1701"+ - "\u1702\u0003/\u0017\u0000\u1702\u1703\u0003)\u0014\u0000\u1703\u1704\u0003"+ - "!\u0010\u0000\u1704\u03f6\u0001\u0000\u0000\u0000\u1705\u1706\u0003)\u0014"+ - "\u0000\u1706\u1707\u0003\u000f\u0007\u0000\u1707\u1708\u0003-\u0016\u0000"+ - "\u1708\u1709\u0003/\u0017\u0000\u1709\u170a\u0003)\u0014\u0000\u170a\u170b"+ - "\u0003!\u0010\u0000\u170b\u170c\u0003\u000f\u0007\u0000\u170c\u170d\u0003"+ - "\r\u0006\u0000\u170d\u170e\u0005_\u0000\u0000\u170e\u170f\u0003\u000b"+ - "\u0005\u0000\u170f\u1710\u0003\u0007\u0003\u0000\u1710\u1711\u0003)\u0014"+ - "\u0000\u1711\u1712\u0003\r\u0006\u0000\u1712\u1713\u0003\u0017\u000b\u0000"+ - "\u1713\u1714\u0003!\u0010\u0000\u1714\u1715\u0003\u0007\u0003\u0000\u1715"+ - "\u1716\u0003\u001d\u000e\u0000\u1716\u1717\u0003\u0017\u000b\u0000\u1717"+ - "\u1718\u0003-\u0016\u0000\u1718\u1719\u00037\u001b\u0000\u1719\u03f8\u0001"+ - "\u0000\u0000\u0000\u171a\u171b\u0003)\u0014\u0000\u171b\u171c\u0003\u000f"+ - "\u0007\u0000\u171c\u171d\u0003-\u0016\u0000\u171d\u171e\u0003/\u0017\u0000"+ - "\u171e\u171f\u0003)\u0014\u0000\u171f\u1720\u0003!\u0010\u0000\u1720\u1721"+ - "\u0003\u000f\u0007\u0000\u1721\u1722\u0003\r\u0006\u0000\u1722\u1723\u0005"+ - "_\u0000\u0000\u1723\u1724\u0003\u001d\u000e\u0000\u1724\u1725\u0003\u000f"+ - "\u0007\u0000\u1725\u1726\u0003!\u0010\u0000\u1726\u1727\u0003\u0013\t"+ - "\u0000\u1727\u1728\u0003-\u0016\u0000\u1728\u1729\u0003\u0015\n\u0000"+ - "\u1729\u03fa\u0001\u0000\u0000\u0000\u172a\u172b\u0003)\u0014\u0000\u172b"+ - "\u172c\u0003\u000f\u0007\u0000\u172c\u172d\u0003-\u0016\u0000\u172d\u172e"+ - "\u0003/\u0017\u0000\u172e\u172f\u0003)\u0014\u0000\u172f\u1730\u0003!"+ - "\u0010\u0000\u1730\u1731\u0003\u000f\u0007\u0000\u1731\u1732\u0003\r\u0006"+ - "\u0000\u1732\u1733\u0005_\u0000\u0000\u1733\u1734\u0003#\u0011\u0000\u1734"+ - "\u1735\u0003\u000b\u0005\u0000\u1735\u1736\u0003-\u0016\u0000\u1736\u1737"+ - "\u0003\u000f\u0007\u0000\u1737\u1738\u0003-\u0016\u0000\u1738\u1739\u0005"+ - "_\u0000\u0000\u1739\u173a\u0003\u001d\u000e\u0000\u173a\u173b\u0003\u000f"+ - "\u0007\u0000\u173b\u173c\u0003!\u0010\u0000\u173c\u173d\u0003\u0013\t"+ - "\u0000\u173d\u173e\u0003-\u0016\u0000\u173e\u173f\u0003\u0015\n\u0000"+ - "\u173f\u03fc\u0001\u0000\u0000\u0000\u1740\u1741\u0003)\u0014\u0000\u1741"+ - "\u1742\u0003\u000f\u0007\u0000\u1742\u1743\u0003-\u0016\u0000\u1743\u1744"+ - "\u0003/\u0017\u0000\u1744\u1745\u0003)\u0014\u0000\u1745\u1746\u0003!"+ - "\u0010\u0000\u1746\u1747\u0003\u000f\u0007\u0000\u1747\u1748\u0003\r\u0006"+ - "\u0000\u1748\u1749\u0005_\u0000\u0000\u1749\u174a\u0003+\u0015\u0000\u174a"+ - "\u174b\u0003\'\u0013\u0000\u174b\u174c\u0003\u001d\u000e\u0000\u174c\u174d"+ - "\u0003+\u0015\u0000\u174d\u174e\u0003-\u0016\u0000\u174e\u174f\u0003\u0007"+ - "\u0003\u0000\u174f\u1750\u0003-\u0016\u0000\u1750\u1751\u0003\u000f\u0007"+ - "\u0000\u1751\u03fe\u0001\u0000\u0000\u0000\u1752\u1753\u0003)\u0014\u0000"+ - "\u1753\u1754\u0003\u000f\u0007\u0000\u1754\u1755\u0003-\u0016\u0000\u1755"+ - "\u1756\u0003/\u0017\u0000\u1756\u1757\u0003)\u0014\u0000\u1757\u1758\u0003"+ - "!\u0010\u0000\u1758\u1759\u0003\u0017\u000b\u0000\u1759\u175a\u0003!\u0010"+ - "\u0000\u175a\u175b\u0003\u0013\t\u0000\u175b\u0400\u0001\u0000\u0000\u0000"+ - "\u175c\u175d\u0003)\u0014\u0000\u175d\u175e\u0003\u000f\u0007\u0000\u175e"+ - "\u175f\u0003-\u0016\u0000\u175f\u1760\u0003/\u0017\u0000\u1760\u1761\u0003"+ - ")\u0014\u0000\u1761\u1762\u0003!\u0010\u0000\u1762\u1763\u0003+\u0015"+ - "\u0000\u1763\u0402\u0001\u0000\u0000\u0000\u1764\u1765\u0003)\u0014\u0000"+ - "\u1765\u1766\u0003\u000f\u0007\u0000\u1766\u1767\u00031\u0018\u0000\u1767"+ - "\u1768\u0003#\u0011\u0000\u1768\u1769\u0003\u001b\r\u0000\u1769\u176a"+ - "\u0003\u000f\u0007\u0000\u176a\u0404\u0001\u0000\u0000\u0000\u176b\u176c"+ - "\u0003)\u0014\u0000\u176c\u176d\u0003\u0017\u000b\u0000\u176d\u176e\u0003"+ - "\u0013\t\u0000\u176e\u176f\u0003\u0015\n\u0000\u176f\u1770\u0003-\u0016"+ - "\u0000\u1770\u0406\u0001\u0000\u0000\u0000\u1771\u1772\u0003)\u0014\u0000"+ - "\u1772\u1773\u0003#\u0011\u0000\u1773\u1774\u0003\u001d\u000e\u0000\u1774"+ - "\u1775\u0003\u000f\u0007\u0000\u1775\u0408\u0001\u0000\u0000\u0000\u1776"+ - "\u1777\u0003)\u0014\u0000\u1777\u1778\u0003#\u0011\u0000\u1778\u1779\u0003"+ - "\u001d\u000e\u0000\u1779\u177a\u0003\u001d\u000e\u0000\u177a\u177b\u0003"+ - "\t\u0004\u0000\u177b\u177c\u0003\u0007\u0003\u0000\u177c\u177d\u0003\u000b"+ - "\u0005\u0000\u177d\u177e\u0003\u001b\r\u0000\u177e\u040a\u0001\u0000\u0000"+ - "\u0000\u177f\u1780\u0003)\u0014\u0000\u1780\u1781\u0003#\u0011\u0000\u1781"+ - "\u1782\u0003\u001d\u000e\u0000\u1782\u1783\u0003\u001d\u000e\u0000\u1783"+ - "\u1784\u0003/\u0017\u0000\u1784\u1785\u0003%\u0012\u0000\u1785\u040c\u0001"+ - "\u0000\u0000\u0000\u1786\u1787\u0003)\u0014\u0000\u1787\u1788\u0003#\u0011"+ - "\u0000\u1788\u1789\u0003/\u0017\u0000\u1789\u178a\u0003-\u0016\u0000\u178a"+ - "\u178b\u0003\u0017\u000b\u0000\u178b\u178c\u0003!\u0010\u0000\u178c\u178d"+ - "\u0003\u000f\u0007\u0000\u178d\u040e\u0001\u0000\u0000\u0000\u178e\u178f"+ - "\u0003)\u0014\u0000\u178f\u1790\u0003#\u0011\u0000\u1790\u1791\u0003/"+ - "\u0017\u0000\u1791\u1792\u0003-\u0016\u0000\u1792\u1793\u0003\u0017\u000b"+ - "\u0000\u1793\u1794\u0003!\u0010\u0000\u1794\u1795\u0003\u000f\u0007\u0000"+ - "\u1795\u1796\u0005_\u0000\u0000\u1796\u1797\u0003\u000b\u0005\u0000\u1797"+ - "\u1798\u0003\u0007\u0003\u0000\u1798\u1799\u0003-\u0016\u0000\u1799\u179a"+ - "\u0003\u0007\u0003\u0000\u179a\u179b\u0003\u001d\u000e\u0000\u179b\u179c"+ - "\u0003#\u0011\u0000\u179c\u179d\u0003\u0013\t\u0000\u179d\u0410\u0001"+ - "\u0000\u0000\u0000\u179e\u179f\u0003)\u0014\u0000\u179f\u17a0\u0003#\u0011"+ - "\u0000\u17a0\u17a1\u0003/\u0017\u0000\u17a1\u17a2\u0003-\u0016\u0000\u17a2"+ - "\u17a3\u0003\u0017\u000b\u0000\u17a3\u17a4\u0003!\u0010\u0000\u17a4\u17a5"+ - "\u0003\u000f\u0007\u0000\u17a5\u17a6\u0005_\u0000\u0000\u17a6\u17a7\u0003"+ - "!\u0010\u0000\u17a7\u17a8\u0003\u0007\u0003\u0000\u17a8\u17a9\u0003\u001f"+ - "\u000f\u0000\u17a9\u17aa\u0003\u000f\u0007\u0000\u17aa\u0412\u0001\u0000"+ - "\u0000\u0000\u17ab\u17ac\u0003)\u0014\u0000\u17ac\u17ad\u0003#\u0011\u0000"+ - "\u17ad\u17ae\u0003/\u0017\u0000\u17ae\u17af\u0003-\u0016\u0000\u17af\u17b0"+ - "\u0003\u0017\u000b\u0000\u17b0\u17b1\u0003!\u0010\u0000\u17b1\u17b2\u0003"+ - "\u000f\u0007\u0000\u17b2\u17b3\u0005_\u0000\u0000\u17b3\u17b4\u0003+\u0015"+ - "\u0000\u17b4\u17b5\u0003\u000b\u0005\u0000\u17b5\u17b6\u0003\u0015\n\u0000"+ - "\u17b6\u17b7\u0003\u000f\u0007\u0000\u17b7\u17b8\u0003\u001f\u000f\u0000"+ - "\u17b8\u17b9\u0003\u0007\u0003\u0000\u17b9\u0414\u0001\u0000\u0000\u0000"+ - "\u17ba\u17bb\u0003)\u0014\u0000\u17bb\u17bc\u0003#\u0011\u0000\u17bc\u17bd"+ - "\u00033\u0019\u0000\u17bd\u0416\u0001\u0000\u0000\u0000\u17be\u17bf\u0003"+ - ")\u0014\u0000\u17bf\u17c0\u0003#\u0011\u0000\u17c0\u17c1\u00033\u0019"+ - "\u0000\u17c1\u17c2\u0005_\u0000\u0000\u17c2\u17c3\u0003\u000b\u0005\u0000"+ - "\u17c3\u17c4\u0003#\u0011\u0000\u17c4\u17c5\u0003/\u0017\u0000\u17c5\u17c6"+ - "\u0003!\u0010\u0000\u17c6\u17c7\u0003-\u0016\u0000\u17c7\u0418\u0001\u0000"+ - "\u0000\u0000\u17c8\u17c9\u0003)\u0014\u0000\u17c9\u17ca\u0003#\u0011\u0000"+ - "\u17ca\u17cb\u00033\u0019\u0000\u17cb\u17cc\u0005_\u0000\u0000\u17cc\u17cd"+ - "\u0003!\u0010\u0000\u17cd\u17ce\u0003/\u0017\u0000\u17ce\u17cf\u0003\u001f"+ - "\u000f\u0000\u17cf\u17d0\u0003\t\u0004\u0000\u17d0\u17d1\u0003\u000f\u0007"+ - "\u0000\u17d1\u17d2\u0003)\u0014\u0000\u17d2\u041a\u0001\u0000\u0000\u0000"+ - "\u17d3\u17d4\u0003)\u0014\u0000\u17d4\u17d5\u0003#\u0011\u0000\u17d5\u17d6"+ - "\u00033\u0019\u0000\u17d6\u17d7\u0003+\u0015\u0000\u17d7\u041c\u0001\u0000"+ - "\u0000\u0000\u17d8\u17d9\u0003)\u0014\u0000\u17d9\u17da\u0003/\u0017\u0000"+ - "\u17da\u17db\u0003\u001d\u000e\u0000\u17db\u17dc\u0003\u000f\u0007\u0000"+ - "\u17dc\u041e\u0001\u0000\u0000\u0000\u17dd\u17de\u0003+\u0015\u0000\u17de"+ - "\u17df\u0003\u0007\u0003\u0000\u17df\u17e0\u00031\u0018\u0000\u17e0\u17e1"+ - "\u0003\u000f\u0007\u0000\u17e1\u17e2\u0003%\u0012\u0000\u17e2\u17e3\u0003"+ - "#\u0011\u0000\u17e3\u17e4\u0003\u0017\u000b\u0000\u17e4\u17e5\u0003!\u0010"+ - "\u0000\u17e5\u17e6\u0003-\u0016\u0000\u17e6\u0420\u0001\u0000\u0000\u0000"+ - "\u17e7\u17e8\u0003+\u0015\u0000\u17e8\u17e9\u0003\u000b\u0005\u0000\u17e9"+ - "\u17ea\u0003\u0007\u0003\u0000\u17ea\u17eb\u0003\u001d\u000e\u0000\u17eb"+ - "\u17ec\u0003\u000f\u0007\u0000\u17ec\u0422\u0001\u0000\u0000\u0000\u17ed"+ - "\u17ee\u0003+\u0015\u0000\u17ee\u17ef\u0003\u000b\u0005\u0000\u17ef\u17f0"+ - "\u0003\u0015\n\u0000\u17f0\u17f1\u0003\u000f\u0007\u0000\u17f1\u17f2\u0003"+ - "\u001f\u000f\u0000\u17f2\u17f3\u0003\u0007\u0003\u0000\u17f3\u0424\u0001"+ - "\u0000\u0000\u0000\u17f4\u17f5\u0003+\u0015\u0000\u17f5\u17f6\u0003\u000b"+ - "\u0005\u0000\u17f6\u17f7\u0003\u0015\n\u0000\u17f7\u17f8\u0003\u000f\u0007"+ - "\u0000\u17f8\u17f9\u0003\u001f\u000f\u0000\u17f9\u17fa\u0003\u0007\u0003"+ - "\u0000\u17fa\u17fb\u0005_\u0000\u0000\u17fb\u17fc\u0003!\u0010\u0000\u17fc"+ - "\u17fd\u0003\u0007\u0003\u0000\u17fd\u17fe\u0003\u001f\u000f\u0000\u17fe"+ - "\u17ff\u0003\u000f\u0007\u0000\u17ff\u0426\u0001\u0000\u0000\u0000\u1800"+ - "\u1801\u0003+\u0015\u0000\u1801\u1802\u0003\u000b\u0005\u0000\u1802\u1803"+ - "\u0003#\u0011\u0000\u1803\u1804\u0003%\u0012\u0000\u1804\u1805\u0003\u000f"+ - "\u0007\u0000\u1805\u0428\u0001\u0000\u0000\u0000\u1806\u1807\u0003+\u0015"+ - "\u0000\u1807\u1808\u0003\u000b\u0005\u0000\u1808\u1809\u0003#\u0011\u0000"+ - "\u1809\u180a\u0003%\u0012\u0000\u180a\u180b\u0003\u000f\u0007\u0000\u180b"+ - "\u180c\u0005_\u0000\u0000\u180c\u180d\u0003\u000b\u0005\u0000\u180d\u180e"+ - "\u0003\u0007\u0003\u0000\u180e\u180f\u0003-\u0016\u0000\u180f\u1810\u0003"+ - "\u0007\u0003\u0000\u1810\u1811\u0003\u001d\u000e\u0000\u1811\u1812\u0003"+ - "#\u0011\u0000\u1812\u1813\u0003\u0013\t\u0000\u1813\u042a\u0001\u0000"+ - "\u0000\u0000\u1814\u1815\u0003+\u0015\u0000\u1815\u1816\u0003\u000b\u0005"+ - "\u0000\u1816\u1817\u0003#\u0011\u0000\u1817\u1818\u0003%\u0012\u0000\u1818"+ - "\u1819\u0003\u000f\u0007\u0000\u1819\u181a\u0005_\u0000\u0000\u181a\u181b"+ - "\u0003!\u0010\u0000\u181b\u181c\u0003\u0007\u0003\u0000\u181c\u181d\u0003"+ - "\u001f\u000f\u0000\u181d\u181e\u0003\u000f\u0007\u0000\u181e\u042c\u0001"+ - "\u0000\u0000\u0000\u181f\u1820\u0003+\u0015\u0000\u1820\u1821\u0003\u000b"+ - "\u0005\u0000\u1821\u1822\u0003#\u0011\u0000\u1822\u1823\u0003%\u0012\u0000"+ - "\u1823\u1824\u0003\u000f\u0007\u0000\u1824\u1825\u0005_\u0000\u0000\u1825"+ - "\u1826\u0003+\u0015\u0000\u1826\u1827\u0003\u000b\u0005\u0000\u1827\u1828"+ - "\u0003\u0015\n\u0000\u1828\u1829\u0003\u000f\u0007\u0000\u1829\u182a\u0003"+ - "\u001f\u000f\u0000\u182a\u182b\u0003\u0007\u0003\u0000\u182b\u042e\u0001"+ - "\u0000\u0000\u0000\u182c\u182d\u0003+\u0015\u0000\u182d\u182e\u0003\u000b"+ - "\u0005\u0000\u182e\u182f\u0003)\u0014\u0000\u182f\u1830\u0003#\u0011\u0000"+ - "\u1830\u1831\u0003\u001d\u000e\u0000\u1831\u1832\u0003\u001d\u000e\u0000"+ - "\u1832\u0430\u0001\u0000\u0000\u0000\u1833\u1834\u0003+\u0015\u0000\u1834"+ - "\u1835\u0003\u000f\u0007\u0000\u1835\u1836\u0003\u0007\u0003\u0000\u1836"+ - "\u1837\u0003)\u0014\u0000\u1837\u1838\u0003\u000b\u0005\u0000\u1838\u1839"+ - "\u0003\u0015\n\u0000\u1839\u0432\u0001\u0000\u0000\u0000\u183a\u183b\u0003"+ - "+\u0015\u0000\u183b\u183c\u0003\u000f\u0007\u0000\u183c\u183d\u0003\u000b"+ - "\u0005\u0000\u183d\u183e\u0003#\u0011\u0000\u183e\u183f\u0003!\u0010\u0000"+ - "\u183f\u1840\u0003\r\u0006\u0000\u1840\u0434\u0001\u0000\u0000\u0000\u1841"+ - "\u1842\u0003+\u0015\u0000\u1842\u1843\u0003\u000f\u0007\u0000\u1843\u1844"+ - "\u0003\u000b\u0005\u0000\u1844\u1845\u0003-\u0016\u0000\u1845\u1846\u0003"+ - "\u0017\u000b\u0000\u1846\u1847\u0003#\u0011\u0000\u1847\u1848\u0003!\u0010"+ - "\u0000\u1848\u0436\u0001\u0000\u0000\u0000\u1849\u184a\u0003+\u0015\u0000"+ - "\u184a\u184b\u0003\u000f\u0007\u0000\u184b\u184c\u0003\u000b\u0005\u0000"+ - "\u184c\u184d\u0003/\u0017\u0000\u184d\u184e\u0003)\u0014\u0000\u184e\u184f"+ - "\u0003\u0017\u000b\u0000\u184f\u1850\u0003-\u0016\u0000\u1850\u1851\u0003"+ - "7\u001b\u0000\u1851\u0438\u0001\u0000\u0000\u0000\u1852\u1853\u0003+\u0015"+ - "\u0000\u1853\u1854\u0003\u000f\u0007\u0000\u1854\u1855\u0003\u001d\u000e"+ - "\u0000\u1855\u1856\u0003\u000f\u0007\u0000\u1856\u1857\u0003\u000b\u0005"+ - "\u0000\u1857\u1858\u0003-\u0016\u0000\u1858\u043a\u0001\u0000\u0000\u0000"+ - "\u1859\u185a\u0003+\u0015\u0000\u185a\u185b\u0003\u000f\u0007\u0000\u185b"+ - "\u185c\u0003\u001d\u000e\u0000\u185c\u185d\u0003\u0011\b\u0000\u185d\u043c"+ - "\u0001\u0000\u0000\u0000\u185e\u185f\u0003+\u0015\u0000\u185f\u1860\u0003"+ - "\u000f\u0007\u0000\u1860\u1861\u0003!\u0010\u0000\u1861\u1862\u0003+\u0015"+ - "\u0000\u1862\u1863\u0003\u0017\u000b\u0000\u1863\u1864\u0003-\u0016\u0000"+ - "\u1864\u1865\u0003\u0017\u000b\u0000\u1865\u1866\u00031\u0018\u0000\u1866"+ - "\u1867\u0003\u000f\u0007\u0000\u1867\u043e\u0001\u0000\u0000\u0000\u1868"+ - "\u1869\u0003+\u0015\u0000\u1869\u186a\u0003\u000f\u0007\u0000\u186a\u186b"+ - "\u0003\'\u0013\u0000\u186b\u186c\u0003/\u0017\u0000\u186c\u186d\u0003"+ - "\u000f\u0007\u0000\u186d\u186e\u0003!\u0010\u0000\u186e\u186f\u0003\u000b"+ - "\u0005\u0000\u186f\u1870\u0003\u000f\u0007\u0000\u1870\u0440\u0001\u0000"+ - "\u0000\u0000\u1871\u1872\u0003+\u0015\u0000\u1872\u1873\u0003\u000f\u0007"+ - "\u0000\u1873\u1874\u0003\'\u0013\u0000\u1874\u1875\u0003/\u0017\u0000"+ - "\u1875\u1876\u0003\u000f\u0007\u0000\u1876\u1877\u0003!\u0010\u0000\u1877"+ - "\u1878\u0003\u000b\u0005\u0000\u1878\u1879\u0003\u000f\u0007\u0000\u1879"+ - "\u187a\u0003+\u0015\u0000\u187a\u0442\u0001\u0000\u0000\u0000\u187b\u187c"+ - "\u0003+\u0015\u0000\u187c\u187d\u0003\u000f\u0007\u0000\u187d\u187e\u0003"+ - ")\u0014\u0000\u187e\u187f\u0003\u0017\u000b\u0000\u187f\u1880\u0003\u0007"+ - "\u0003\u0000\u1880\u1881\u0003\u001d\u000e\u0000\u1881\u1882\u0003\u0017"+ - "\u000b\u0000\u1882\u1883\u00039\u001c\u0000\u1883\u1884\u0003\u0007\u0003"+ - "\u0000\u1884\u1885\u0003\t\u0004\u0000\u1885\u1886\u0003\u001d\u000e\u0000"+ - "\u1886\u1887\u0003\u000f\u0007\u0000\u1887\u0444\u0001\u0000\u0000\u0000"+ - "\u1888\u1889\u0003+\u0015\u0000\u1889\u188a\u0003\u000f\u0007\u0000\u188a"+ - "\u188b\u0003)\u0014\u0000\u188b\u188c\u00031\u0018\u0000\u188c\u188d\u0003"+ - "\u000f\u0007\u0000\u188d\u188e\u0003)\u0014\u0000\u188e\u188f\u0005_\u0000"+ - "\u0000\u188f\u1890\u0003!\u0010\u0000\u1890\u1891\u0003\u0007\u0003\u0000"+ - "\u1891\u1892\u0003\u001f\u000f\u0000\u1892\u1893\u0003\u000f\u0007\u0000"+ - "\u1893\u0446\u0001\u0000\u0000\u0000\u1894\u1895\u0003+\u0015\u0000\u1895"+ - "\u1896\u0003\u000f\u0007\u0000\u1896\u1897\u0003+\u0015\u0000\u1897\u1898"+ - "\u0003+\u0015\u0000\u1898\u1899\u0003\u0017\u000b\u0000\u1899\u189a\u0003"+ - "#\u0011\u0000\u189a\u189b\u0003!\u0010\u0000\u189b\u0448\u0001\u0000\u0000"+ - "\u0000\u189c\u189d\u0003+\u0015\u0000\u189d\u189e\u0003\u000f\u0007\u0000"+ - "\u189e\u189f\u0003+\u0015\u0000\u189f\u18a0\u0003+\u0015\u0000\u18a0\u18a1"+ - "\u0003\u0017\u000b\u0000\u18a1\u18a2\u0003#\u0011\u0000\u18a2\u18a3\u0003"+ - "!\u0010\u0000\u18a3\u18a4\u0005_\u0000\u0000\u18a4\u18a5\u0003/\u0017"+ - "\u0000\u18a5\u18a6\u0003+\u0015\u0000\u18a6\u18a7\u0003\u000f\u0007\u0000"+ - "\u18a7\u18a8\u0003)\u0014\u0000\u18a8\u044a\u0001\u0000\u0000\u0000\u18a9"+ - "\u18aa\u0003+\u0015\u0000\u18aa\u18ab\u0003\u000f\u0007\u0000\u18ab\u18ac"+ - "\u0003-\u0016\u0000\u18ac\u044c\u0001\u0000\u0000\u0000\u18ad\u18ae\u0003"+ - "+\u0015\u0000\u18ae\u18af\u0003\u000f\u0007\u0000\u18af\u18b0\u0003-\u0016"+ - "\u0000\u18b0\u18b1\u0003#\u0011\u0000\u18b1\u18b2\u0003\u0011\b\u0000"+ - "\u18b2\u044e\u0001\u0000\u0000\u0000\u18b3\u18b4\u0003+\u0015\u0000\u18b4"+ - "\u18b5\u0003\u000f\u0007\u0000\u18b5\u18b6\u0003-\u0016\u0000\u18b6\u18b7"+ - "\u0003+\u0015\u0000\u18b7\u0450\u0001\u0000\u0000\u0000\u18b8\u18b9\u0003"+ - "+\u0015\u0000\u18b9\u18ba\u0003\u0015\n\u0000\u18ba\u18bb\u0003\u0007"+ - "\u0003\u0000\u18bb\u18bc\u0003)\u0014\u0000\u18bc\u18bd\u0003\u000f\u0007"+ - "\u0000\u18bd\u0452\u0001\u0000\u0000\u0000\u18be\u18bf\u0003+\u0015\u0000"+ - "\u18bf\u18c0\u0003\u0015\n\u0000\u18c0\u18c1\u0003#\u0011\u0000\u18c1"+ - "\u18c2\u00033\u0019\u0000\u18c2\u0454\u0001\u0000\u0000\u0000\u18c3\u18c4"+ - "\u0003+\u0015\u0000\u18c4\u18c5\u0003\u0017\u000b\u0000\u18c5\u18c6\u0003"+ - "\u001f\u000f\u0000\u18c6\u18c7\u0003\u0017\u000b\u0000\u18c7\u18c8\u0003"+ - "\u001d\u000e\u0000\u18c8\u18c9\u0003\u0007\u0003\u0000\u18c9\u18ca\u0003"+ - ")\u0014\u0000\u18ca\u0456\u0001\u0000\u0000\u0000\u18cb\u18cc\u0003+\u0015"+ - "\u0000\u18cc\u18cd\u0003\u0017\u000b\u0000\u18cd\u18ce\u0003\u001f\u000f"+ - "\u0000\u18ce\u18cf\u0003%\u0012\u0000\u18cf\u18d0\u0003\u001d\u000e\u0000"+ - "\u18d0\u18d1\u0003\u000f\u0007\u0000\u18d1\u0458\u0001\u0000\u0000\u0000"+ - "\u18d2\u18d3\u0003+\u0015\u0000\u18d3\u18d4\u0003\u0017\u000b\u0000\u18d4"+ - "\u18d5\u00039\u001c\u0000\u18d5\u18d6\u0003\u000f\u0007\u0000\u18d6\u045a"+ - "\u0001\u0000\u0000\u0000\u18d7\u18d8\u0003+\u0015\u0000\u18d8\u18d9\u0003"+ - "\u001b\r\u0000\u18d9\u18da\u0003\u0017\u000b\u0000\u18da\u18db\u0003%"+ - "\u0012\u0000\u18db\u045c\u0001\u0000\u0000\u0000\u18dc\u18dd\u0003+\u0015"+ - "\u0000\u18dd\u18de\u0003\u001f\u000f\u0000\u18de\u18df\u0003\u0007\u0003"+ - "\u0000\u18df\u18e0\u0003\u001d\u000e\u0000\u18e0\u18e1\u0003\u001d\u000e"+ - "\u0000\u18e1\u18e2\u0003\u0017\u000b\u0000\u18e2\u18e3\u0003!\u0010\u0000"+ - "\u18e3\u18e4\u0003-\u0016\u0000\u18e4\u045e\u0001\u0000\u0000\u0000\u18e5"+ - "\u18e6\u0003+\u0015\u0000\u18e6\u18e7\u0003!\u0010\u0000\u18e7\u18e8\u0003"+ - "\u0007\u0003\u0000\u18e8\u18e9\u0003%\u0012\u0000\u18e9\u18ea\u0003+\u0015"+ - "\u0000\u18ea\u18eb\u0003\u0015\n\u0000\u18eb\u18ec\u0003#\u0011\u0000"+ - "\u18ec\u18ed\u0003-\u0016\u0000\u18ed\u0460\u0001\u0000\u0000\u0000\u18ee"+ - "\u18ef\u0003+\u0015\u0000\u18ef\u18f0\u0003#\u0011\u0000\u18f0\u18f1\u0003"+ - "\u001f\u000f\u0000\u18f1\u18f2\u0003\u000f\u0007\u0000\u18f2\u0462\u0001"+ - "\u0000\u0000\u0000\u18f3\u18f4\u0003+\u0015\u0000\u18f4\u18f5\u0003#\u0011"+ - "\u0000\u18f5\u18f6\u0003/\u0017\u0000\u18f6\u18f7\u0003)\u0014\u0000\u18f7"+ - "\u18f8\u0003\u000b\u0005\u0000\u18f8\u18f9\u0003\u000f\u0007\u0000\u18f9"+ - "\u0464\u0001\u0000\u0000\u0000\u18fa\u18fb\u0003+\u0015\u0000\u18fb\u18fc"+ - "\u0003%\u0012\u0000\u18fc\u18fd\u0003\u0007\u0003\u0000\u18fd\u18fe\u0003"+ - "\u000b\u0005\u0000\u18fe\u18ff\u0003\u000f\u0007\u0000\u18ff\u0466\u0001"+ - "\u0000\u0000\u0000\u1900\u1901\u0003+\u0015\u0000\u1901\u1902\u0003%\u0012"+ - "\u0000\u1902\u1903\u0003\u000f\u0007\u0000\u1903\u1904\u0003\u000b\u0005"+ - "\u0000\u1904\u1905\u0003\u0017\u000b\u0000\u1905\u1906\u0003\u0011\b\u0000"+ - "\u1906\u1907\u0003\u0017\u000b\u0000\u1907\u1908\u0003\u000b\u0005\u0000"+ - "\u1908\u0468\u0001\u0000\u0000\u0000\u1909\u190a\u0003+\u0015\u0000\u190a"+ - "\u190b\u0003%\u0012\u0000\u190b\u190c\u0003\u000f\u0007\u0000\u190c\u190d"+ - "\u0003\u000b\u0005\u0000\u190d\u190e\u0003\u0017\u000b\u0000\u190e\u190f"+ - "\u0003\u0011\b\u0000\u190f\u1910\u0003\u0017\u000b\u0000\u1910\u1911\u0003"+ - "\u000b\u0005\u0000\u1911\u1912\u0005_\u0000\u0000\u1912\u1913\u0003!\u0010"+ - "\u0000\u1913\u1914\u0003\u0007\u0003\u0000\u1914\u1915\u0003\u001f\u000f"+ - "\u0000\u1915\u1916\u0003\u000f\u0007\u0000\u1916\u046a\u0001\u0000\u0000"+ - "\u0000\u1917\u1918\u0003+\u0015\u0000\u1918\u1919\u0003%\u0012\u0000\u1919"+ - "\u191a\u0003\u000f\u0007\u0000\u191a\u191b\u0003\u000b\u0005\u0000\u191b"+ - "\u191c\u0003\u0017\u000b\u0000\u191c\u191d\u0003\u0011\b\u0000\u191d\u191e"+ - "\u0003\u0017\u000b\u0000\u191e\u191f\u0003\u000b\u0005\u0000\u191f\u1920"+ - "\u0003-\u0016\u0000\u1920\u1921\u00037\u001b\u0000\u1921\u1922\u0003%"+ - "\u0012\u0000\u1922\u1923\u0003\u000f\u0007\u0000\u1923\u046c\u0001\u0000"+ - "\u0000\u0000\u1924\u1925\u0003+\u0015\u0000\u1925\u1926\u0003\'\u0013"+ - "\u0000\u1926\u1927\u0003\u001d\u000e\u0000\u1927\u046e\u0001\u0000\u0000"+ - "\u0000\u1928\u1929\u0003+\u0015\u0000\u1929\u192a\u0003\'\u0013\u0000"+ - "\u192a\u192b\u0003\u001d\u000e\u0000\u192b\u192c\u0003\u000b\u0005\u0000"+ - "\u192c\u192d\u0003#\u0011\u0000\u192d\u192e\u0003\r\u0006\u0000\u192e"+ - "\u192f\u0003\u000f\u0007\u0000\u192f\u0470\u0001\u0000\u0000\u0000\u1930"+ - "\u1931\u0003+\u0015\u0000\u1931\u1932\u0003\'\u0013\u0000\u1932\u1933"+ - "\u0003\u001d\u000e\u0000\u1933\u1934\u0003\u000f\u0007\u0000\u1934\u1935"+ - "\u0003)\u0014\u0000\u1935\u1936\u0003)\u0014\u0000\u1936\u1937\u0003#"+ - "\u0011\u0000\u1937\u1938\u0003)\u0014\u0000\u1938\u0472\u0001\u0000\u0000"+ - "\u0000\u1939\u193a\u0003+\u0015\u0000\u193a\u193b\u0003\'\u0013\u0000"+ - "\u193b\u193c\u0003\u001d\u000e\u0000\u193c\u193d\u0003\u000f\u0007\u0000"+ - "\u193d\u193e\u00035\u001a\u0000\u193e\u193f\u0003\u000b\u0005\u0000\u193f"+ - "\u1940\u0003\u000f\u0007\u0000\u1940\u1941\u0003%\u0012\u0000\u1941\u1942"+ - "\u0003-\u0016\u0000\u1942\u1943\u0003\u0017\u000b\u0000\u1943\u1944\u0003"+ - "#\u0011\u0000\u1944\u1945\u0003!\u0010\u0000\u1945\u0474\u0001\u0000\u0000"+ - "\u0000\u1946\u1947\u0003+\u0015\u0000\u1947\u1948\u0003\'\u0013\u0000"+ - "\u1948\u1949\u0003\u001d\u000e\u0000\u1949\u194a\u0003+\u0015\u0000\u194a"+ - "\u194b\u0003-\u0016\u0000\u194b\u194c\u0003\u0007\u0003\u0000\u194c\u194d"+ - "\u0003-\u0016\u0000\u194d\u194e\u0003\u000f\u0007\u0000\u194e\u0476\u0001"+ - "\u0000\u0000\u0000\u194f\u1950\u0003+\u0015\u0000\u1950\u1951\u0003\'"+ - "\u0013\u0000\u1951\u1952\u0003\u001d\u000e\u0000\u1952\u1953\u00033\u0019"+ - "\u0000\u1953\u1954\u0003\u0007\u0003\u0000\u1954\u1955\u0003)\u0014\u0000"+ - "\u1955\u1956\u0003!\u0010\u0000\u1956\u1957\u0003\u0017\u000b\u0000\u1957"+ - "\u1958\u0003!\u0010\u0000\u1958\u1959\u0003\u0013\t\u0000\u1959\u0478"+ - "\u0001\u0000\u0000\u0000\u195a\u195b\u0003+\u0015\u0000\u195b\u195c\u0003"+ - "\'\u0013\u0000\u195c\u195d\u0003)\u0014\u0000\u195d\u195e\u0003-\u0016"+ - "\u0000\u195e\u047a\u0001\u0000\u0000\u0000\u195f\u1960\u0003+\u0015\u0000"+ - "\u1960\u1961\u0003-\u0016\u0000\u1961\u1962\u0003\u0007\u0003\u0000\u1962"+ - "\u1963\u0003\t\u0004\u0000\u1963\u1964\u0003\u001d\u000e\u0000\u1964\u1965"+ - "\u0003\u000f\u0007\u0000\u1965\u047c\u0001\u0000\u0000\u0000\u1966\u1967"+ - "\u0003+\u0015\u0000\u1967\u1968\u0003-\u0016\u0000\u1968\u1969\u0003\u0007"+ - "\u0003\u0000\u1969\u196a\u0003)\u0014\u0000\u196a\u196b\u0003-\u0016\u0000"+ - "\u196b\u047e\u0001\u0000\u0000\u0000\u196c\u196d\u0003+\u0015\u0000\u196d"+ - "\u196e\u0003-\u0016\u0000\u196e\u196f\u0003\u0007\u0003\u0000\u196f\u1970"+ - "\u0003-\u0016\u0000\u1970\u1971\u0003\u000f\u0007\u0000\u1971\u0480\u0001"+ - "\u0000\u0000\u0000\u1972\u1973\u0003+\u0015\u0000\u1973\u1974\u0003-\u0016"+ - "\u0000\u1974\u1975\u0003\u0007\u0003\u0000\u1975\u1976\u0003-\u0016\u0000"+ - "\u1976\u1977\u0003\u000f\u0007\u0000\u1977\u1978\u0003\u001f\u000f\u0000"+ - "\u1978\u1979\u0003\u000f\u0007\u0000\u1979\u197a\u0003!\u0010\u0000\u197a"+ - "\u197b\u0003-\u0016\u0000\u197b\u0482\u0001\u0000\u0000\u0000\u197c\u197d"+ - "\u0003+\u0015\u0000\u197d\u197e\u0003-\u0016\u0000\u197e\u197f\u0003\u0007"+ - "\u0003\u0000\u197f\u1980\u0003-\u0016\u0000\u1980\u1981\u0003\u0017\u000b"+ - "\u0000\u1981\u1982\u0003\u000b\u0005\u0000\u1982\u0484\u0001\u0000\u0000"+ - "\u0000\u1983\u1984\u0003+\u0015\u0000\u1984\u1985\u0003-\u0016\u0000\u1985"+ - "\u1986\u0003\u0007\u0003\u0000\u1986\u1987\u0003-\u0016\u0000\u1987\u1988"+ - "\u0003\u0017\u000b\u0000\u1988\u1989\u0003+\u0015\u0000\u1989\u198a\u0003"+ - "-\u0016\u0000\u198a\u198b\u0003\u0017\u000b\u0000\u198b\u198c\u0003\u000b"+ - "\u0005\u0000\u198c\u198d\u0003+\u0015\u0000\u198d\u0486\u0001\u0000\u0000"+ - "\u0000\u198e\u198f\u0003+\u0015\u0000\u198f\u1990\u0003-\u0016\u0000\u1990"+ - "\u1991\u0003\r\u0006\u0000\u1991\u1992\u0003\r\u0006\u0000\u1992\u1993"+ - "\u0003\u000f\u0007\u0000\u1993\u1994\u00031\u0018\u0000\u1994\u1995\u0005"+ - "_\u0000\u0000\u1995\u1996\u0003%\u0012\u0000\u1996\u1997\u0003#\u0011"+ - "\u0000\u1997\u1998\u0003%\u0012\u0000\u1998\u0488\u0001\u0000\u0000\u0000"+ - "\u1999\u199a\u0003+\u0015\u0000\u199a\u199b\u0003-\u0016\u0000\u199b\u199c"+ - "\u0003\r\u0006\u0000\u199c\u199d\u0003\r\u0006\u0000\u199d\u199e\u0003"+ - "\u000f\u0007\u0000\u199e\u199f\u00031\u0018\u0000\u199f\u19a0\u0005_\u0000"+ - "\u0000\u19a0\u19a1\u0003+\u0015\u0000\u19a1\u19a2\u0003\u0007\u0003\u0000"+ - "\u19a2\u19a3\u0003\u001f\u000f\u0000\u19a3\u19a4\u0003%\u0012\u0000\u19a4"+ - "\u048a\u0001\u0000\u0000\u0000\u19a5\u19a6\u0003+\u0015\u0000\u19a6\u19a7"+ - "\u0003-\u0016\u0000\u19a7\u19a8\u0003\r\u0006\u0000\u19a8\u19a9\u0003"+ - "\u0017\u000b\u0000\u19a9\u19aa\u0003!\u0010\u0000\u19aa\u048c\u0001\u0000"+ - "\u0000\u0000\u19ab\u19ac\u0003+\u0015\u0000\u19ac\u19ad\u0003-\u0016\u0000"+ - "\u19ad\u19ae\u0003\r\u0006\u0000\u19ae\u19af\u0003#\u0011\u0000\u19af"+ - "\u19b0\u0003/\u0017\u0000\u19b0\u19b1\u0003-\u0016\u0000\u19b1\u048e\u0001"+ - "\u0000\u0000\u0000\u19b2\u19b3\u0003+\u0015\u0000\u19b3\u19b4\u0003-\u0016"+ - "\u0000\u19b4\u19b5\u0003#\u0011\u0000\u19b5\u19b6\u0003)\u0014\u0000\u19b6"+ - "\u19b7\u0003\u0007\u0003\u0000\u19b7\u19b8\u0003\u0013\t\u0000\u19b8\u19b9"+ - "\u0003\u000f\u0007\u0000\u19b9\u0490\u0001\u0000\u0000\u0000\u19ba\u19bb"+ - "\u0003+\u0015\u0000\u19bb\u19bc\u0003-\u0016\u0000\u19bc\u19bd\u0003)"+ - "\u0014\u0000\u19bd\u19be\u0003\u0017\u000b\u0000\u19be\u19bf\u0003\u000b"+ - "\u0005\u0000\u19bf\u19c0\u0003-\u0016\u0000\u19c0\u0492\u0001\u0000\u0000"+ - "\u0000\u19c1\u19c2\u0003+\u0015\u0000\u19c2\u19c3\u0003-\u0016\u0000\u19c3"+ - "\u19c4\u0003)\u0014\u0000\u19c4\u19c5\u0003/\u0017\u0000\u19c5\u19c6\u0003"+ - "\u000b\u0005\u0000\u19c6\u19c7\u0003-\u0016\u0000\u19c7\u19c8\u0003/\u0017"+ - "\u0000\u19c8\u19c9\u0003)\u0014\u0000\u19c9\u19ca\u0003\u000f\u0007\u0000"+ - "\u19ca\u0494\u0001\u0000\u0000\u0000\u19cb\u19cc\u0003+\u0015\u0000\u19cc"+ - "\u19cd\u0003-\u0016\u0000\u19cd\u19ce\u00037\u001b\u0000\u19ce\u19cf\u0003"+ - "\u001d\u000e\u0000\u19cf\u19d0\u0003\u000f\u0007\u0000\u19d0\u0496\u0001"+ - "\u0000\u0000\u0000\u19d1\u19d2\u0003+\u0015\u0000\u19d2\u19d3\u0003/\u0017"+ - "\u0000\u19d3\u19d4\u0003\t\u0004\u0000\u19d4\u19d5\u0003\u000b\u0005\u0000"+ - "\u19d5\u19d6\u0003\u001d\u000e\u0000\u19d6\u19d7\u0003\u0007\u0003\u0000"+ - "\u19d7\u19d8\u0003+\u0015\u0000\u19d8\u19d9\u0003+\u0015\u0000\u19d9\u19da"+ - "\u0005_\u0000\u0000\u19da\u19db\u0003#\u0011\u0000\u19db\u19dc\u0003)"+ - "\u0014\u0000\u19dc\u19dd\u0003\u0017\u000b\u0000\u19dd\u19de\u0003\u0013"+ - "\t\u0000\u19de\u19df\u0003\u0017\u000b\u0000\u19df\u19e0\u0003!\u0010"+ - "\u0000\u19e0\u0498\u0001\u0000\u0000\u0000\u19e1\u19e2\u0003+\u0015\u0000"+ - "\u19e2\u19e3\u0003/\u0017\u0000\u19e3\u19e4\u0003\t\u0004\u0000\u19e4"+ - "\u19e5\u0003\u001d\u000e\u0000\u19e5\u19e6\u0003\u0017\u000b\u0000\u19e6"+ - "\u19e7\u0003+\u0015\u0000\u19e7\u19e8\u0003-\u0016\u0000\u19e8\u049a\u0001"+ - "\u0000\u0000\u0000\u19e9\u19ea\u0003+\u0015\u0000\u19ea\u19eb\u0003/\u0017"+ - "\u0000\u19eb\u19ec\u0003\t\u0004\u0000\u19ec\u19ed\u0003\u001f\u000f\u0000"+ - "\u19ed\u19ee\u0003/\u0017\u0000\u19ee\u19ef\u0003\u001d\u000e\u0000\u19ef"+ - "\u19f0\u0003-\u0016\u0000\u19f0\u19f1\u0003\u0017\u000b\u0000\u19f1\u19f2"+ - "\u0003+\u0015\u0000\u19f2\u19f3\u0003\u000f\u0007\u0000\u19f3\u19f4\u0003"+ - "-\u0016\u0000\u19f4\u049c\u0001\u0000\u0000\u0000\u19f5\u19f6\u0003+\u0015"+ - "\u0000\u19f6\u19f7\u0003/\u0017\u0000\u19f7\u19f8\u0003\t\u0004\u0000"+ - "\u19f8\u19f9\u0003+\u0015\u0000\u19f9\u19fa\u0003\u000b\u0005\u0000\u19fa"+ - "\u19fb\u0003)\u0014\u0000\u19fb\u19fc\u0003\u0017\u000b\u0000\u19fc\u19fd"+ - "\u0003%\u0012\u0000\u19fd\u19fe\u0003-\u0016\u0000\u19fe\u19ff\u0003\u0017"+ - "\u000b\u0000\u19ff\u1a00\u0003#\u0011\u0000\u1a00\u1a01\u0003!\u0010\u0000"+ - "\u1a01\u049e\u0001\u0000\u0000\u0000\u1a02\u1a03\u0003+\u0015\u0000\u1a03"+ - "\u1a04\u0003/\u0017\u0000\u1a04\u1a05\u0003\t\u0004\u0000\u1a05\u1a06"+ - "\u0003+\u0015\u0000\u1a06\u1a07\u0003-\u0016\u0000\u1a07\u1a08\u0003)"+ - "\u0014\u0000\u1a08\u1a09\u0003\u0017\u000b\u0000\u1a09\u1a0a\u0003!\u0010"+ - "\u0000\u1a0a\u1a0b\u0003\u0013\t\u0000\u1a0b\u04a0\u0001\u0000\u0000\u0000"+ - "\u1a0c\u1a0d\u0003+\u0015\u0000\u1a0d\u1a0e\u0003/\u0017\u0000\u1a0e\u1a0f"+ - "\u0003\u001f\u000f\u0000\u1a0f\u04a2\u0001\u0000\u0000\u0000\u1a10\u1a11"+ - "\u0003+\u0015\u0000\u1a11\u1a12\u00037\u001b\u0000\u1a12\u1a13\u0003\u001f"+ - "\u000f\u0000\u1a13\u1a14\u0003\u001f\u000f\u0000\u1a14\u1a15\u0003\u000f"+ - "\u0007\u0000\u1a15\u1a16\u0003-\u0016\u0000\u1a16\u1a17\u0003)\u0014\u0000"+ - "\u1a17\u1a18\u0003\u0017\u000b\u0000\u1a18\u1a19\u0003\u000b\u0005\u0000"+ - "\u1a19\u04a4\u0001\u0000\u0000\u0000\u1a1a\u1a1b\u0003+\u0015\u0000\u1a1b"+ - "\u1a1c\u00037\u001b\u0000\u1a1c\u1a1d\u0003+\u0015\u0000\u1a1d\u1a1e\u0003"+ - "\u0017\u000b\u0000\u1a1e\u1a1f\u0003\r\u0006\u0000\u1a1f\u04a6\u0001\u0000"+ - "\u0000\u0000\u1a20\u1a21\u0003+\u0015\u0000\u1a21\u1a22\u00037\u001b\u0000"+ - "\u1a22\u1a23\u0003+\u0015\u0000\u1a23\u1a24\u0003-\u0016\u0000\u1a24\u1a25"+ - "\u0003\u000f\u0007\u0000\u1a25\u1a26\u0003\u001f\u000f\u0000\u1a26\u04a8"+ - "\u0001\u0000\u0000\u0000\u1a27\u1a28\u0003+\u0015\u0000\u1a28\u1a29\u0003"+ - "7\u001b\u0000\u1a29\u1a2a\u0003+\u0015\u0000\u1a2a\u1a2b\u0003-\u0016"+ - "\u0000\u1a2b\u1a2c\u0003\u000f\u0007\u0000\u1a2c\u1a2d\u0003\u001f\u000f"+ - "\u0000\u1a2d\u1a2e\u0005_\u0000\u0000\u1a2e\u1a2f\u0003/\u0017\u0000\u1a2f"+ - "\u1a30\u0003+\u0015\u0000\u1a30\u1a31\u0003\u000f\u0007\u0000\u1a31\u1a32"+ - "\u0003)\u0014\u0000\u1a32\u04aa\u0001\u0000\u0000\u0000\u1a33\u1a34\u0003"+ - "-\u0016\u0000\u1a34\u1a35\u0003\u0007\u0003\u0000\u1a35\u1a36\u0003\t"+ - "\u0004\u0000\u1a36\u1a37\u0003\u001d\u000e\u0000\u1a37\u1a38\u0003\u000f"+ - "\u0007\u0000\u1a38\u04ac\u0001\u0000\u0000\u0000\u1a39\u1a3a\u0003-\u0016"+ - "\u0000\u1a3a\u1a3b\u0003\u0007\u0003\u0000\u1a3b\u1a3c\u0003\t\u0004\u0000"+ - "\u1a3c\u1a3d\u0003\u001d\u000e\u0000\u1a3d\u1a3e\u0003\u000f\u0007\u0000"+ - "\u1a3e\u1a3f\u0005_\u0000\u0000\u1a3f\u1a40\u0003!\u0010\u0000\u1a40\u1a41"+ - "\u0003\u0007\u0003\u0000\u1a41\u1a42\u0003\u001f\u000f\u0000\u1a42\u1a43"+ - "\u0003\u000f\u0007\u0000\u1a43\u04ae\u0001\u0000\u0000\u0000\u1a44\u1a45"+ - "\u0003-\u0016\u0000\u1a45\u1a46\u0003\u0007\u0003\u0000\u1a46\u1a47\u0003"+ - "\t\u0004\u0000\u1a47\u1a48\u0003\u001d\u000e\u0000\u1a48\u1a49\u0003\u000f"+ - "\u0007\u0000\u1a49\u1a4a\u0003+\u0015\u0000\u1a4a\u1a4b\u0003\u0007\u0003"+ - "\u0000\u1a4b\u1a4c\u0003\u001f\u000f\u0000\u1a4c\u1a4d\u0003%\u0012\u0000"+ - "\u1a4d\u1a4e\u0003\u001d\u000e\u0000\u1a4e\u1a4f\u0003\u000f\u0007\u0000"+ - "\u1a4f\u04b0\u0001\u0000\u0000\u0000\u1a50\u1a51\u0003-\u0016\u0000\u1a51"+ - "\u1a52\u0003\u0007\u0003\u0000\u1a52\u1a53\u0003\t\u0004\u0000\u1a53\u1a54"+ - "\u0003\u001d\u000e\u0000\u1a54\u1a55\u0003\u000f\u0007\u0000\u1a55\u1a56"+ - "\u0003+\u0015\u0000\u1a56\u1a57\u0003%\u0012\u0000\u1a57\u1a58\u0003\u0007"+ - "\u0003\u0000\u1a58\u1a59\u0003\u000b\u0005\u0000\u1a59\u1a5a\u0003\u000f"+ - "\u0007\u0000\u1a5a\u04b2\u0001\u0000\u0000\u0000\u1a5b\u1a5c\u0003-\u0016"+ - "\u0000\u1a5c\u1a5d\u0003\u000f\u0007\u0000\u1a5d\u1a5e\u0003\u001f\u000f"+ - "\u0000\u1a5e\u1a5f\u0003%\u0012\u0000\u1a5f\u04b4\u0001\u0000\u0000\u0000"+ - "\u1a60\u1a61\u0003-\u0016\u0000\u1a61\u1a62\u0003\u000f\u0007\u0000\u1a62"+ - "\u1a63\u0003\u001f\u000f\u0000\u1a63\u1a64\u0003%\u0012\u0000\u1a64\u1a65"+ - "\u0003\u001d\u000e\u0000\u1a65\u1a66\u0003\u0007\u0003\u0000\u1a66\u1a67"+ - "\u0003-\u0016\u0000\u1a67\u1a68\u0003\u000f\u0007\u0000\u1a68\u04b6\u0001"+ - "\u0000\u0000\u0000\u1a69\u1a6a\u0003-\u0016\u0000\u1a6a\u1a6b\u0003\u000f"+ - "\u0007\u0000\u1a6b\u1a6c\u0003\u001f\u000f\u0000\u1a6c\u1a6d\u0003%\u0012"+ - "\u0000\u1a6d\u1a6e\u0003#\u0011\u0000\u1a6e\u1a6f\u0003)\u0014\u0000\u1a6f"+ - "\u1a70\u0003\u0007\u0003\u0000\u1a70\u1a71\u0003)\u0014\u0000\u1a71\u1a72"+ - "\u00037\u001b\u0000\u1a72\u04b8\u0001\u0000\u0000\u0000\u1a73\u1a74\u0003"+ - "-\u0016\u0000\u1a74\u1a75\u0003\u000f\u0007\u0000\u1a75\u1a76\u0003)\u0014"+ - "\u0000\u1a76\u1a77\u0003\u001f\u000f\u0000\u1a77\u1a78\u0003\u0017\u000b"+ - "\u0000\u1a78\u1a79\u0003!\u0010\u0000\u1a79\u1a7a\u0003\u0007\u0003\u0000"+ - "\u1a7a\u1a7b\u0003-\u0016\u0000\u1a7b\u1a7c\u0003\u000f\u0007\u0000\u1a7c"+ - "\u04ba\u0001\u0000\u0000\u0000\u1a7d\u1a7e\u0003-\u0016\u0000\u1a7e\u1a7f"+ - "\u0003\u0015\n\u0000\u1a7f\u1a80\u0003\u0007\u0003\u0000\u1a80\u1a81\u0003"+ - "!\u0010\u0000\u1a81\u04bc\u0001\u0000\u0000\u0000\u1a82\u1a83\u0003-\u0016"+ - "\u0000\u1a83\u1a84\u0003\u0015\n\u0000\u1a84\u1a85\u0003\u000f\u0007\u0000"+ - "\u1a85\u1a86\u0003!\u0010\u0000\u1a86\u04be\u0001\u0000\u0000\u0000\u1a87"+ - "\u1a88\u0003-\u0016\u0000\u1a88\u1a89\u0003\u0017\u000b\u0000\u1a89\u1a8a"+ - "\u0003\u000f\u0007\u0000\u1a8a\u1a8b\u0003+\u0015\u0000\u1a8b\u04c0\u0001"+ - "\u0000\u0000\u0000\u1a8c\u1a8d\u0003-\u0016\u0000\u1a8d\u1a8e\u0003\u0017"+ - "\u000b\u0000\u1a8e\u1a8f\u0003\u001f\u000f\u0000\u1a8f\u1a90\u0003\u000f"+ - "\u0007\u0000\u1a90\u04c2\u0001\u0000\u0000\u0000\u1a91\u1a92\u0003-\u0016"+ - "\u0000\u1a92\u1a93\u0003\u0017\u000b\u0000\u1a93\u1a94\u0003\u001f\u000f"+ - "\u0000\u1a94\u1a95\u0003\u000f\u0007\u0000\u1a95\u1a96\u0003+\u0015\u0000"+ - "\u1a96\u1a97\u0003-\u0016\u0000\u1a97\u1a98\u0003\u0007\u0003\u0000\u1a98"+ - "\u1a99\u0003\u001f\u000f\u0000\u1a99\u1a9a\u0003%\u0012\u0000\u1a9a\u04c4"+ - "\u0001\u0000\u0000\u0000\u1a9b\u1a9c\u0003-\u0016\u0000\u1a9c\u1a9d\u0003"+ - "\u0017\u000b\u0000\u1a9d\u1a9e\u0003\u001f\u000f\u0000\u1a9e\u1a9f\u0003"+ - "\u000f\u0007\u0000\u1a9f\u1aa0\u00039\u001c\u0000\u1aa0\u1aa1\u0003#\u0011"+ - "\u0000\u1aa1\u1aa2\u0003!\u0010\u0000\u1aa2\u1aa3\u0003\u000f\u0007\u0000"+ - "\u1aa3\u1aa4\u0005_\u0000\u0000\u1aa4\u1aa5\u0003\u0015\n\u0000\u1aa5"+ - "\u1aa6\u0003#\u0011\u0000\u1aa6\u1aa7\u0003/\u0017\u0000\u1aa7\u1aa8\u0003"+ - ")\u0014\u0000\u1aa8\u04c6\u0001\u0000\u0000\u0000\u1aa9\u1aaa\u0003-\u0016"+ - "\u0000\u1aaa\u1aab\u0003\u0017\u000b\u0000\u1aab\u1aac\u0003\u001f\u000f"+ - "\u0000\u1aac\u1aad\u0003\u000f\u0007\u0000\u1aad\u1aae\u00039\u001c\u0000"+ - "\u1aae\u1aaf\u0003#\u0011\u0000\u1aaf\u1ab0\u0003!\u0010\u0000\u1ab0\u1ab1"+ - "\u0003\u000f\u0007\u0000\u1ab1\u1ab2\u0005_\u0000\u0000\u1ab2\u1ab3\u0003"+ - "\u001f\u000f\u0000\u1ab3\u1ab4\u0003\u0017\u000b\u0000\u1ab4\u1ab5\u0003"+ - "!\u0010\u0000\u1ab5\u1ab6\u0003/\u0017\u0000\u1ab6\u1ab7\u0003-\u0016"+ - "\u0000\u1ab7\u1ab8\u0003\u000f\u0007\u0000\u1ab8\u04c8\u0001\u0000\u0000"+ - "\u0000\u1ab9\u1aba\u0003-\u0016\u0000\u1aba\u1abb\u0003\u0017\u000b\u0000"+ - "\u1abb\u1abc\u0003\u001f\u000f\u0000\u1abc\u1abd\u0003\u0017\u000b\u0000"+ - "\u1abd\u1abe\u0003!\u0010\u0000\u1abe\u1abf\u0003\u0013\t\u0000\u1abf"+ - "\u04ca\u0001\u0000\u0000\u0000\u1ac0\u1ac1\u0003-\u0016\u0000\u1ac1\u1ac2"+ - "\u0003#\u0011\u0000\u1ac2\u04cc\u0001\u0000\u0000\u0000\u1ac3\u1ac4\u0003"+ - "-\u0016\u0000\u1ac4\u1ac5\u0003#\u0011\u0000\u1ac5\u1ac6\u0003\u0007\u0003"+ - "\u0000\u1ac6\u1ac7\u0003+\u0015\u0000\u1ac7\u1ac8\u0003-\u0016\u0000\u1ac8"+ - "\u04ce\u0001\u0000\u0000\u0000\u1ac9\u1aca\u0003-\u0016\u0000\u1aca\u1acb"+ - "\u0003#\u0011\u0000\u1acb\u1acc\u0003%\u0012\u0000\u1acc\u1acd\u0005_"+ - "\u0000\u0000\u1acd\u1ace\u0003\u001d\u000e\u0000\u1ace\u1acf\u0003\u000f"+ - "\u0007\u0000\u1acf\u1ad0\u00031\u0018\u0000\u1ad0\u1ad1\u0003\u000f\u0007"+ - "\u0000\u1ad1\u1ad2\u0003\u001d\u000e\u0000\u1ad2\u1ad3\u0005_\u0000\u0000"+ - "\u1ad3\u1ad4\u0003\u000b\u0005\u0000\u1ad4\u1ad5\u0003#\u0011\u0000\u1ad5"+ - "\u1ad6\u0003/\u0017\u0000\u1ad6\u1ad7\u0003!\u0010\u0000\u1ad7\u1ad8\u0003"+ - "-\u0016\u0000\u1ad8\u04d0\u0001\u0000\u0000\u0000\u1ad9\u1ada\u0003-\u0016"+ - "\u0000\u1ada\u1adb\u0003)\u0014\u0000\u1adb\u1adc\u0003\u0007\u0003\u0000"+ - "\u1adc\u1add\u0003\u0017\u000b\u0000\u1add\u1ade\u0003\u001d\u000e\u0000"+ - "\u1ade\u1adf\u0003\u0017\u000b\u0000\u1adf\u1ae0\u0003!\u0010\u0000\u1ae0"+ - "\u1ae1\u0003\u0013\t\u0000\u1ae1\u04d2\u0001\u0000\u0000\u0000\u1ae2\u1ae3"+ - "\u0003-\u0016\u0000\u1ae3\u1ae4\u0003)\u0014\u0000\u1ae4\u1ae5\u0003\u0007"+ - "\u0003\u0000\u1ae5\u1ae6\u0003!\u0010\u0000\u1ae6\u1ae7\u0003+\u0015\u0000"+ - "\u1ae7\u1ae8\u0003\u0007\u0003\u0000\u1ae8\u1ae9\u0003\u000b\u0005\u0000"+ - "\u1ae9\u1aea\u0003-\u0016\u0000\u1aea\u1aeb\u0003\u0017\u000b\u0000\u1aeb"+ - "\u1aec\u0003#\u0011\u0000\u1aec\u1aed\u0003!\u0010\u0000\u1aed\u04d4\u0001"+ - "\u0000\u0000\u0000\u1aee\u1aef\u0003-\u0016\u0000\u1aef\u1af0\u0003)\u0014"+ - "\u0000\u1af0\u1af1\u0003\u0007\u0003\u0000\u1af1\u1af2\u0003!\u0010\u0000"+ - "\u1af2\u1af3\u0003+\u0015\u0000\u1af3\u1af4\u0003\u0007\u0003\u0000\u1af4"+ - "\u1af5\u0003\u000b\u0005\u0000\u1af5\u1af6\u0003-\u0016\u0000\u1af6\u1af7"+ - "\u0003\u0017\u000b\u0000\u1af7\u1af8\u0003#\u0011\u0000\u1af8\u1af9\u0003"+ - "!\u0010\u0000\u1af9\u1afa\u0005_\u0000\u0000\u1afa\u1afb\u0003\u0007\u0003"+ - "\u0000\u1afb\u1afc\u0003\u000b\u0005\u0000\u1afc\u1afd\u0003-\u0016\u0000"+ - "\u1afd\u1afe\u0003\u0017\u000b\u0000\u1afe\u1aff\u00031\u0018\u0000\u1aff"+ - "\u1b00\u0003\u000f\u0007\u0000\u1b00\u04d6\u0001\u0000\u0000\u0000\u1b01"+ - "\u1b02\u0003-\u0016\u0000\u1b02\u1b03\u0003)\u0014\u0000\u1b03\u1b04\u0003"+ - "\u0007\u0003\u0000\u1b04\u1b05\u0003!\u0010\u0000\u1b05\u1b06\u0003+\u0015"+ - "\u0000\u1b06\u1b07\u0003\u0007\u0003\u0000\u1b07\u1b08\u0003\u000b\u0005"+ - "\u0000\u1b08\u1b09\u0003-\u0016\u0000\u1b09\u1b0a\u0003\u0017\u000b\u0000"+ - "\u1b0a\u1b0b\u0003#\u0011\u0000\u1b0b\u1b0c\u0003!\u0010\u0000\u1b0c\u1b0d"+ - "\u0003+\u0015\u0000\u1b0d\u1b0e\u0005_\u0000\u0000\u1b0e\u1b0f\u0003\u000b"+ - "\u0005\u0000\u1b0f\u1b10\u0003#\u0011\u0000\u1b10\u1b11\u0003\u001f\u000f"+ - "\u0000\u1b11\u1b12\u0003\u001f\u000f\u0000\u1b12\u1b13\u0003\u0017\u000b"+ - "\u0000\u1b13\u1b14\u0003-\u0016\u0000\u1b14\u1b15\u0003-\u0016\u0000\u1b15"+ - "\u1b16\u0003\u000f\u0007\u0000\u1b16\u1b17\u0003\r\u0006\u0000\u1b17\u04d8"+ - "\u0001\u0000\u0000\u0000\u1b18\u1b19\u0003-\u0016\u0000\u1b19\u1b1a\u0003"+ - ")\u0014\u0000\u1b1a\u1b1b\u0003\u0007\u0003\u0000\u1b1b\u1b1c\u0003!\u0010"+ - "\u0000\u1b1c\u1b1d\u0003+\u0015\u0000\u1b1d\u1b1e\u0003\u0007\u0003\u0000"+ - "\u1b1e\u1b1f\u0003\u000b\u0005\u0000\u1b1f\u1b20\u0003-\u0016\u0000\u1b20"+ - "\u1b21\u0003\u0017\u000b\u0000\u1b21\u1b22\u0003#\u0011\u0000\u1b22\u1b23"+ - "\u0003!\u0010\u0000\u1b23\u1b24\u0003+\u0015\u0000\u1b24\u1b25\u0005_"+ - "\u0000\u0000\u1b25\u1b26\u0003)\u0014\u0000\u1b26\u1b27\u0003#\u0011\u0000"+ - "\u1b27\u1b28\u0003\u001d\u000e\u0000\u1b28\u1b29\u0003\u001d\u000e\u0000"+ - "\u1b29\u1b2a\u0003\u000f\u0007\u0000\u1b2a\u1b2b\u0003\r\u0006\u0000\u1b2b"+ - "\u1b2c\u0005_\u0000\u0000\u1b2c\u1b2d\u0003\t\u0004\u0000\u1b2d\u1b2e"+ - "\u0003\u0007\u0003\u0000\u1b2e\u1b2f\u0003\u000b\u0005\u0000\u1b2f\u1b30"+ - "\u0003\u001b\r\u0000\u1b30\u04da\u0001\u0000\u0000\u0000\u1b31\u1b32\u0003"+ - "-\u0016\u0000\u1b32\u1b33\u0003)\u0014\u0000\u1b33\u1b34\u0003\u0007\u0003"+ - "\u0000\u1b34\u1b35\u0003!\u0010\u0000\u1b35\u1b36\u0003+\u0015\u0000\u1b36"+ - "\u1b37\u0003\u0011\b\u0000\u1b37\u1b38\u0003#\u0011\u0000\u1b38\u1b39"+ - "\u0003)\u0014\u0000\u1b39\u1b3a\u0003\u001f\u000f\u0000\u1b3a\u04dc\u0001"+ - "\u0000\u0000\u0000\u1b3b\u1b3c\u0003-\u0016\u0000\u1b3c\u1b3d\u0003)\u0014"+ - "\u0000\u1b3d\u1b3e\u0003\u0007\u0003\u0000\u1b3e\u1b3f\u0003!\u0010\u0000"+ - "\u1b3f\u1b40\u0003+\u0015\u0000\u1b40\u1b41\u0003\u0011\b\u0000\u1b41"+ - "\u1b42\u0003#\u0011\u0000\u1b42\u1b43\u0003)\u0014\u0000\u1b43\u1b44\u0003"+ - "\u001f\u000f\u0000\u1b44\u1b45\u0003+\u0015\u0000\u1b45\u04de\u0001\u0000"+ - "\u0000\u0000\u1b46\u1b47\u0003-\u0016\u0000\u1b47\u1b48\u0003)\u0014\u0000"+ - "\u1b48\u1b49\u0003\u0007\u0003\u0000\u1b49\u1b4a\u0003!\u0010\u0000\u1b4a"+ - "\u1b4b\u0003+\u0015\u0000\u1b4b\u1b4c\u0003\u001d\u000e\u0000\u1b4c\u1b4d"+ - "\u0003\u0007\u0003\u0000\u1b4d\u1b4e\u0003-\u0016\u0000\u1b4e\u1b4f\u0003"+ - "\u000f\u0007\u0000\u1b4f\u04e0\u0001\u0000\u0000\u0000\u1b50\u1b51\u0003"+ - "-\u0016\u0000\u1b51\u1b52\u0003)\u0014\u0000\u1b52\u1b53\u0003\u0007\u0003"+ - "\u0000\u1b53\u1b54\u0003!\u0010\u0000\u1b54\u1b55\u0003+\u0015\u0000\u1b55"+ - "\u1b56\u0003\u001d\u000e\u0000\u1b56\u1b57\u0003\u0007\u0003\u0000\u1b57"+ - "\u1b58\u0003-\u0016\u0000\u1b58\u1b59\u0003\u0017\u000b\u0000\u1b59\u1b5a"+ - "\u0003#\u0011\u0000\u1b5a\u1b5b\u0003!\u0010\u0000\u1b5b\u04e2\u0001\u0000"+ - "\u0000\u0000\u1b5c\u1b5d\u0003-\u0016\u0000\u1b5d\u1b5e\u0003)\u0014\u0000"+ - "\u1b5e\u1b5f\u0003\u000f\u0007\u0000\u1b5f\u1b60\u0003\u0007\u0003\u0000"+ - "\u1b60\u1b61\u0003-\u0016\u0000\u1b61\u04e4\u0001\u0000\u0000\u0000\u1b62"+ - "\u1b63\u0003-\u0016\u0000\u1b63\u1b64\u0003)\u0014\u0000\u1b64\u1b65\u0003"+ - "\u0017\u000b\u0000\u1b65\u1b66\u0003\u0013\t\u0000\u1b66\u1b67\u0003\u0013"+ - "\t\u0000\u1b67\u1b68\u0003\u000f\u0007\u0000\u1b68\u1b69\u0003)\u0014"+ - "\u0000\u1b69\u04e6\u0001\u0000\u0000\u0000\u1b6a\u1b6b\u0003-\u0016\u0000"+ - "\u1b6b\u1b6c\u0003)\u0014\u0000\u1b6c\u1b6d\u0003\u0017\u000b\u0000\u1b6d"+ - "\u1b6e\u0003\u0013\t\u0000\u1b6e\u1b6f\u0003\u0013\t\u0000\u1b6f\u1b70"+ - "\u0003\u000f\u0007\u0000\u1b70\u1b71\u0003)\u0014\u0000\u1b71\u1b72\u0005"+ - "_\u0000\u0000\u1b72\u1b73\u0003\u000b\u0005\u0000\u1b73\u1b74\u0003\u0007"+ - "\u0003\u0000\u1b74\u1b75\u0003-\u0016\u0000\u1b75\u1b76\u0003\u0007\u0003"+ - "\u0000\u1b76\u1b77\u0003\u001d\u000e\u0000\u1b77\u1b78\u0003#\u0011\u0000"+ - "\u1b78\u1b79\u0003\u0013\t\u0000\u1b79\u04e8\u0001\u0000\u0000\u0000\u1b7a"+ - "\u1b7b\u0003-\u0016\u0000\u1b7b\u1b7c\u0003)\u0014\u0000\u1b7c\u1b7d\u0003"+ - "\u0017\u000b\u0000\u1b7d\u1b7e\u0003\u0013\t\u0000\u1b7e\u1b7f\u0003\u0013"+ - "\t\u0000\u1b7f\u1b80\u0003\u000f\u0007\u0000\u1b80\u1b81\u0003)\u0014"+ - "\u0000\u1b81\u1b82\u0005_\u0000\u0000\u1b82\u1b83\u0003!\u0010\u0000\u1b83"+ - "\u1b84\u0003\u0007\u0003\u0000\u1b84\u1b85\u0003\u001f\u000f\u0000\u1b85"+ - "\u1b86\u0003\u000f\u0007\u0000\u1b86\u04ea\u0001\u0000\u0000\u0000\u1b87"+ - "\u1b88\u0003-\u0016\u0000\u1b88\u1b89\u0003)\u0014\u0000\u1b89\u1b8a\u0003"+ - "\u0017\u000b\u0000\u1b8a\u1b8b\u0003\u0013\t\u0000\u1b8b\u1b8c\u0003\u0013"+ - "\t\u0000\u1b8c\u1b8d\u0003\u000f\u0007\u0000\u1b8d\u1b8e\u0003)\u0014"+ - "\u0000\u1b8e\u1b8f\u0005_\u0000\u0000\u1b8f\u1b90\u0003+\u0015\u0000\u1b90"+ - "\u1b91\u0003\u000b\u0005\u0000\u1b91\u1b92\u0003\u0015\n\u0000\u1b92\u1b93"+ - "\u0003\u000f\u0007\u0000\u1b93\u1b94\u0003\u001f\u000f\u0000\u1b94\u1b95"+ - "\u0003\u0007\u0003\u0000\u1b95\u04ec\u0001\u0000\u0000\u0000\u1b96\u1b97"+ - "\u0003-\u0016\u0000\u1b97\u1b98\u0003)\u0014\u0000\u1b98\u1b99\u0003\u0017"+ - "\u000b\u0000\u1b99\u1b9a\u0003\u001f\u000f\u0000\u1b9a\u04ee\u0001\u0000"+ - "\u0000\u0000\u1b9b\u1b9c\u0003-\u0016\u0000\u1b9c\u1b9d\u0003)\u0014\u0000"+ - "\u1b9d\u1b9e\u0003/\u0017\u0000\u1b9e\u1b9f\u0003\u000f\u0007\u0000\u1b9f"+ - "\u04f0\u0001\u0000\u0000\u0000\u1ba0\u1ba1\u0003-\u0016\u0000\u1ba1\u1ba2"+ - "\u0003)\u0014\u0000\u1ba2\u1ba3\u0003/\u0017\u0000\u1ba3\u1ba4\u0003!"+ - "\u0010\u0000\u1ba4\u1ba5\u0003\u000b\u0005\u0000\u1ba5\u1ba6\u0003\u0007"+ - "\u0003\u0000\u1ba6\u1ba7\u0003-\u0016\u0000\u1ba7\u1ba8\u0003\u000f\u0007"+ - "\u0000\u1ba8\u04f2\u0001\u0000\u0000\u0000\u1ba9\u1baa\u0003-\u0016\u0000"+ - "\u1baa\u1bab\u0003)\u0014\u0000\u1bab\u1bac\u0003/\u0017\u0000\u1bac\u1bad"+ - "\u0003+\u0015\u0000\u1bad\u1bae\u0003-\u0016\u0000\u1bae\u1baf\u0003\u000f"+ - "\u0007\u0000\u1baf\u1bb0\u0003\r\u0006\u0000\u1bb0\u04f4\u0001\u0000\u0000"+ - "\u0000\u1bb1\u1bb2\u0003-\u0016\u0000\u1bb2\u1bb3\u00037\u001b\u0000\u1bb3"+ - "\u1bb4\u0003%\u0012\u0000\u1bb4\u1bb5\u0003\u000f\u0007\u0000\u1bb5\u04f6"+ - "\u0001\u0000\u0000\u0000\u1bb6\u1bb7\u0003/\u0017\u0000\u1bb7\u1bb8\u0003"+ - "\u000f\u0007\u0000\u1bb8\u1bb9\u0003+\u0015\u0000\u1bb9\u1bba\u0003\u000b"+ - "\u0005\u0000\u1bba\u1bbb\u0003\u0007\u0003\u0000\u1bbb\u1bbc\u0003%\u0012"+ - "\u0000\u1bbc\u1bbd\u0003\u000f\u0007\u0000\u1bbd\u04f8\u0001\u0000\u0000"+ - "\u0000\u1bbe\u1bbf\u0003/\u0017\u0000\u1bbf\u1bc0\u0003!\u0010\u0000\u1bc0"+ - "\u1bc1\u0003\t\u0004\u0000\u1bc1\u1bc2\u0003#\u0011\u0000\u1bc2\u1bc3"+ - "\u0003/\u0017\u0000\u1bc3\u1bc4\u0003!\u0010\u0000\u1bc4\u1bc5\u0003\r"+ - "\u0006\u0000\u1bc5\u1bc6\u0003\u000f\u0007\u0000\u1bc6\u1bc7\u0003\r\u0006"+ - "\u0000\u1bc7\u04fa\u0001\u0000\u0000\u0000\u1bc8\u1bc9\u0003/\u0017\u0000"+ - "\u1bc9\u1bca\u0003!\u0010\u0000\u1bca\u1bcb\u0003\u000b\u0005\u0000\u1bcb"+ - "\u1bcc\u0003#\u0011\u0000\u1bcc\u1bcd\u0003\u001f\u000f\u0000\u1bcd\u1bce"+ - "\u0003\u001f\u000f\u0000\u1bce\u1bcf\u0003\u0017\u000b\u0000\u1bcf\u1bd0"+ - "\u0003-\u0016\u0000\u1bd0\u1bd1\u0003-\u0016\u0000\u1bd1\u1bd2\u0003\u000f"+ - "\u0007\u0000\u1bd2\u1bd3\u0003\r\u0006\u0000\u1bd3\u04fc\u0001\u0000\u0000"+ - "\u0000\u1bd4\u1bd5\u0003/\u0017\u0000\u1bd5\u1bd6\u0003!\u0010\u0000\u1bd6"+ - "\u1bd7\u0003\r\u0006\u0000\u1bd7\u1bd8\u0003\u000f\u0007\u0000\u1bd8\u1bd9"+ - "\u0003)\u0014\u0000\u1bd9\u04fe\u0001\u0000\u0000\u0000\u1bda\u1bdb\u0003"+ - "/\u0017\u0000\u1bdb\u1bdc\u0003!\u0010\u0000\u1bdc\u1bdd\u0003\u000f\u0007"+ - "\u0000\u1bdd\u1bde\u0003!\u0010\u0000\u1bde\u1bdf\u0003\u000b\u0005\u0000"+ - "\u1bdf\u1be0\u0003)\u0014\u0000\u1be0\u1be1\u00037\u001b\u0000\u1be1\u1be2"+ - "\u0003%\u0012\u0000\u1be2\u1be3\u0003-\u0016\u0000\u1be3\u1be4\u0003\u000f"+ - "\u0007\u0000\u1be4\u1be5\u0003\r\u0006\u0000\u1be5\u0500\u0001\u0000\u0000"+ - "\u0000\u1be6\u1be7\u0003/\u0017\u0000\u1be7\u1be8\u0003!\u0010\u0000\u1be8"+ - "\u1be9\u0003\u0017\u000b\u0000\u1be9\u1bea\u0003#\u0011\u0000\u1bea\u1beb"+ - "\u0003!\u0010\u0000\u1beb\u0502\u0001\u0000\u0000\u0000\u1bec\u1bed\u0003"+ - "/\u0017\u0000\u1bed\u1bee\u0003!\u0010\u0000\u1bee\u1bef\u0003\u0017\u000b"+ - "\u0000\u1bef\u1bf0\u0003\'\u0013\u0000\u1bf0\u1bf1\u0003/\u0017\u0000"+ - "\u1bf1\u1bf2\u0003\u000f\u0007\u0000\u1bf2\u0504\u0001\u0000\u0000\u0000"+ - "\u1bf3\u1bf4\u0003/\u0017\u0000\u1bf4\u1bf5\u0003!\u0010\u0000\u1bf5\u1bf6"+ - "\u0003\u001b\r\u0000\u1bf6\u1bf7\u0003!\u0010\u0000\u1bf7\u1bf8\u0003"+ - "#\u0011\u0000\u1bf8\u1bf9\u00033\u0019\u0000\u1bf9\u1bfa\u0003!\u0010"+ - "\u0000\u1bfa\u0506\u0001\u0000\u0000\u0000\u1bfb\u1bfc\u0003/\u0017\u0000"+ - "\u1bfc\u1bfd\u0003!\u0010\u0000\u1bfd\u1bfe\u0003\u001d\u000e\u0000\u1bfe"+ - "\u1bff\u0003\u0017\u000b\u0000\u1bff\u1c00\u0003+\u0015\u0000\u1c00\u1c01"+ - "\u0003-\u0016\u0000\u1c01\u1c02\u0003\u000f\u0007\u0000\u1c02\u1c03\u0003"+ - "!\u0010\u0000\u1c03\u0508\u0001\u0000\u0000\u0000\u1c04\u1c05\u0003/\u0017"+ - "\u0000\u1c05\u1c06\u0003!\u0010\u0000\u1c06\u1c07\u0003!\u0010\u0000\u1c07"+ - "\u1c08\u0003\u0007\u0003\u0000\u1c08\u1c09\u0003\u001f\u000f\u0000\u1c09"+ - "\u1c0a\u0003\u000f\u0007\u0000\u1c0a\u1c0b\u0003\r\u0006\u0000\u1c0b\u050a"+ - "\u0001\u0000\u0000\u0000\u1c0c\u1c0d\u0003/\u0017\u0000\u1c0d\u1c0e\u0003"+ - "!\u0010\u0000\u1c0e\u1c0f\u0003!\u0010\u0000\u1c0f\u1c10\u0003\u000f\u0007"+ - "\u0000\u1c10\u1c11\u0003+\u0015\u0000\u1c11\u1c12\u0003-\u0016\u0000\u1c12"+ - "\u050c\u0001\u0000\u0000\u0000\u1c13\u1c14\u0003/\u0017\u0000\u1c14\u1c15"+ - "\u0003!\u0010\u0000\u1c15\u1c16\u0003-\u0016\u0000\u1c16\u1c17\u0003\u0017"+ - "\u000b\u0000\u1c17\u1c18\u0003\u001d\u000e\u0000\u1c18\u050e\u0001\u0000"+ - "\u0000\u0000\u1c19\u1c1a\u0003/\u0017\u0000\u1c1a\u1c1b\u0003%\u0012\u0000"+ - "\u1c1b\u1c1c\u0003\r\u0006\u0000\u1c1c\u1c1d\u0003\u0007\u0003\u0000\u1c1d"+ - "\u1c1e\u0003-\u0016\u0000\u1c1e\u1c1f\u0003\u000f\u0007\u0000\u1c1f\u0510"+ - "\u0001\u0000\u0000\u0000\u1c20\u1c21\u0003/\u0017\u0000\u1c21\u1c22\u0003"+ - "%\u0012\u0000\u1c22\u1c23\u0003%\u0012\u0000\u1c23\u1c24\u0003\u000f\u0007"+ - "\u0000\u1c24\u1c25\u0003)\u0014\u0000\u1c25\u0512\u0001\u0000\u0000\u0000"+ - "\u1c26\u1c27\u0003/\u0017\u0000\u1c27\u1c28\u0003+\u0015\u0000\u1c28\u1c29"+ - "\u0003\u0007\u0003\u0000\u1c29\u1c2a\u0003\u0013\t\u0000\u1c2a\u1c2b\u0003"+ - "\u000f\u0007\u0000\u1c2b\u0514\u0001\u0000\u0000\u0000\u1c2c\u1c2d\u0003"+ - "/\u0017\u0000\u1c2d\u1c2e\u0003+\u0015\u0000\u1c2e\u1c2f\u0003\u000f\u0007"+ - "\u0000\u1c2f\u1c30\u0003)\u0014\u0000\u1c30\u0516\u0001\u0000\u0000\u0000"+ - "\u1c31\u1c32\u0003/\u0017\u0000\u1c32\u1c33\u0003+\u0015\u0000\u1c33\u1c34"+ - "\u0003\u000f\u0007\u0000\u1c34\u1c35\u0003)\u0014\u0000\u1c35\u1c36\u0005"+ - "_\u0000\u0000\u1c36\u1c37\u0003\r\u0006\u0000\u1c37\u1c38\u0003\u000f"+ - "\u0007\u0000\u1c38\u1c39\u0003\u0011\b\u0000\u1c39\u1c3a\u0003\u0017\u000b"+ - "\u0000\u1c3a\u1c3b\u0003!\u0010\u0000\u1c3b\u1c3c\u0003\u000f\u0007\u0000"+ - "\u1c3c\u1c3d\u0003\r\u0006\u0000\u1c3d\u1c3e\u0005_\u0000\u0000\u1c3e"+ - "\u1c3f\u0003-\u0016\u0000\u1c3f\u1c40\u00037\u001b\u0000\u1c40\u1c41\u0003"+ - "%\u0012\u0000\u1c41\u1c42\u0003\u000f\u0007\u0000\u1c42\u1c43\u0005_\u0000"+ - "\u0000\u1c43\u1c44\u0003\u000b\u0005\u0000\u1c44\u1c45\u0003\u0007\u0003"+ - "\u0000\u1c45\u1c46\u0003-\u0016\u0000\u1c46\u1c47\u0003\u0007\u0003\u0000"+ - "\u1c47\u1c48\u0003\u001d\u000e\u0000\u1c48\u1c49\u0003#\u0011\u0000\u1c49"+ - "\u1c4a\u0003\u0013\t\u0000\u1c4a\u0518\u0001\u0000\u0000\u0000\u1c4b\u1c4c"+ - "\u0003/\u0017\u0000\u1c4c\u1c4d\u0003+\u0015\u0000\u1c4d\u1c4e\u0003\u000f"+ - "\u0007\u0000\u1c4e\u1c4f\u0003)\u0014\u0000\u1c4f\u1c50\u0005_\u0000\u0000"+ - "\u1c50\u1c51\u0003\r\u0006\u0000\u1c51\u1c52\u0003\u000f\u0007\u0000\u1c52"+ - "\u1c53\u0003\u0011\b\u0000\u1c53\u1c54\u0003\u0017\u000b\u0000\u1c54\u1c55"+ - "\u0003!\u0010\u0000\u1c55\u1c56\u0003\u000f\u0007\u0000\u1c56\u1c57\u0003"+ - "\r\u0006\u0000\u1c57\u1c58\u0005_\u0000\u0000\u1c58\u1c59\u0003-\u0016"+ - "\u0000\u1c59\u1c5a\u00037\u001b\u0000\u1c5a\u1c5b\u0003%\u0012\u0000\u1c5b"+ - "\u1c5c\u0003\u000f\u0007\u0000\u1c5c\u1c5d\u0005_\u0000\u0000\u1c5d\u1c5e"+ - "\u0003\u000b\u0005\u0000\u1c5e\u1c5f\u0003#\u0011\u0000\u1c5f\u1c60\u0003"+ - "\r\u0006\u0000\u1c60\u1c61\u0003\u000f\u0007\u0000\u1c61\u051a\u0001\u0000"+ - "\u0000\u0000\u1c62\u1c63\u0003/\u0017\u0000\u1c63\u1c64\u0003+\u0015\u0000"+ - "\u1c64\u1c65\u0003\u000f\u0007\u0000\u1c65\u1c66\u0003)\u0014\u0000\u1c66"+ - "\u1c67\u0005_\u0000\u0000\u1c67\u1c68\u0003\r\u0006\u0000\u1c68\u1c69"+ - "\u0003\u000f\u0007\u0000\u1c69\u1c6a\u0003\u0011\b\u0000\u1c6a\u1c6b\u0003"+ - "\u0017\u000b\u0000\u1c6b\u1c6c\u0003!\u0010\u0000\u1c6c\u1c6d\u0003\u000f"+ - "\u0007\u0000\u1c6d\u1c6e\u0003\r\u0006\u0000\u1c6e\u1c6f\u0005_\u0000"+ - "\u0000\u1c6f\u1c70\u0003-\u0016\u0000\u1c70\u1c71\u00037\u001b\u0000\u1c71"+ - "\u1c72\u0003%\u0012\u0000\u1c72\u1c73\u0003\u000f\u0007\u0000\u1c73\u1c74"+ - "\u0005_\u0000\u0000\u1c74\u1c75\u0003!\u0010\u0000\u1c75\u1c76\u0003\u0007"+ - "\u0003\u0000\u1c76\u1c77\u0003\u001f\u000f\u0000\u1c77\u1c78\u0003\u000f"+ - "\u0007\u0000\u1c78\u051c\u0001\u0000\u0000\u0000\u1c79\u1c7a\u0003/\u0017"+ - "\u0000\u1c7a\u1c7b\u0003+\u0015\u0000\u1c7b\u1c7c\u0003\u000f\u0007\u0000"+ - "\u1c7c\u1c7d\u0003)\u0014\u0000\u1c7d\u1c7e\u0005_\u0000\u0000\u1c7e\u1c7f"+ - "\u0003\r\u0006\u0000\u1c7f\u1c80\u0003\u000f\u0007\u0000\u1c80\u1c81\u0003"+ - "\u0011\b\u0000\u1c81\u1c82\u0003\u0017\u000b\u0000\u1c82\u1c83\u0003!"+ - "\u0010\u0000\u1c83\u1c84\u0003\u000f\u0007\u0000\u1c84\u1c85\u0003\r\u0006"+ - "\u0000\u1c85\u1c86\u0005_\u0000\u0000\u1c86\u1c87\u0003-\u0016\u0000\u1c87"+ - "\u1c88\u00037\u001b\u0000\u1c88\u1c89\u0003%\u0012\u0000\u1c89\u1c8a\u0003"+ - "\u000f\u0007\u0000\u1c8a\u1c8b\u0005_\u0000\u0000\u1c8b\u1c8c\u0003+\u0015"+ - "\u0000\u1c8c\u1c8d\u0003\u000b\u0005\u0000\u1c8d\u1c8e\u0003\u0015\n\u0000"+ - "\u1c8e\u1c8f\u0003\u000f\u0007\u0000\u1c8f\u1c90\u0003\u001f\u000f\u0000"+ - "\u1c90\u1c91\u0003\u0007\u0003\u0000\u1c91\u051e\u0001\u0000\u0000\u0000"+ - "\u1c92\u1c93\u0003/\u0017\u0000\u1c93\u1c94\u0003+\u0015\u0000\u1c94\u1c95"+ - "\u0003\u0017\u000b\u0000\u1c95\u1c96\u0003!\u0010\u0000\u1c96\u1c97\u0003"+ - "\u0013\t\u0000\u1c97\u0520\u0001\u0000\u0000\u0000\u1c98\u1c99\u00031"+ - "\u0018\u0000\u1c99\u1c9a\u0003\u0007\u0003\u0000\u1c9a\u1c9b\u0003\u000b"+ - "\u0005\u0000\u1c9b\u1c9c\u0003/\u0017\u0000\u1c9c\u1c9d\u0003/\u0017\u0000"+ - "\u1c9d\u1c9e\u0003\u001f\u000f\u0000\u1c9e\u0522\u0001\u0000\u0000\u0000"+ - "\u1c9f\u1ca0\u00031\u0018\u0000\u1ca0\u1ca1\u0003\u0007\u0003\u0000\u1ca1"+ - "\u1ca2\u0003\u001d\u000e\u0000\u1ca2\u1ca3\u0003\u0017\u000b\u0000\u1ca3"+ - "\u1ca4\u0003\r\u0006\u0000\u1ca4\u0524\u0001\u0000\u0000\u0000\u1ca5\u1ca6"+ - "\u00031\u0018\u0000\u1ca6\u1ca7\u0003\u0007\u0003\u0000\u1ca7\u1ca8\u0003"+ - "\u001d\u000e\u0000\u1ca8\u1ca9\u0003\u0017\u000b\u0000\u1ca9\u1caa\u0003"+ - "\r\u0006\u0000\u1caa\u1cab\u0003\u0007\u0003\u0000\u1cab\u1cac\u0003-"+ - "\u0016\u0000\u1cac\u1cad\u0003\u000f\u0007\u0000\u1cad\u0526\u0001\u0000"+ - "\u0000\u0000\u1cae\u1caf\u00031\u0018\u0000\u1caf\u1cb0\u0003\u0007\u0003"+ - "\u0000\u1cb0\u1cb1\u0003\u001d\u000e\u0000\u1cb1\u1cb2\u0003\u0017\u000b"+ - "\u0000\u1cb2\u1cb3\u0003\r\u0006\u0000\u1cb3\u1cb4\u0003\u0007\u0003\u0000"+ - "\u1cb4\u1cb5\u0003-\u0016\u0000\u1cb5\u1cb6\u0003#\u0011\u0000\u1cb6\u1cb7"+ - "\u0003)\u0014\u0000\u1cb7\u0528\u0001\u0000\u0000\u0000\u1cb8\u1cb9\u0003"+ - "1\u0018\u0000\u1cb9\u1cba\u0003\u0007\u0003\u0000\u1cba\u1cbb\u0003\u001d"+ - "\u000e\u0000\u1cbb\u1cbc\u0003/\u0017\u0000\u1cbc\u1cbd\u0003\u000f\u0007"+ - "\u0000\u1cbd\u052a\u0001\u0000\u0000\u0000\u1cbe\u1cbf\u00031\u0018\u0000"+ - "\u1cbf\u1cc0\u0003\u0007\u0003\u0000\u1cc0\u1cc1\u0003\u001d\u000e\u0000"+ - "\u1cc1\u1cc2\u0003/\u0017\u0000\u1cc2\u1cc3\u0003\u000f\u0007\u0000\u1cc3"+ - "\u1cc4\u0003+\u0015\u0000\u1cc4\u052c\u0001\u0000\u0000\u0000\u1cc5\u1cc6"+ - "\u00031\u0018\u0000\u1cc6\u1cc7\u0003\u0007\u0003\u0000\u1cc7\u1cc8\u0003"+ - ")\u0014\u0000\u1cc8\u1cc9\u0005_\u0000\u0000\u1cc9\u1cca\u0003%\u0012"+ - "\u0000\u1cca\u1ccb\u0003#\u0011\u0000\u1ccb\u1ccc\u0003%\u0012\u0000\u1ccc"+ - "\u052e\u0001\u0000\u0000\u0000\u1ccd\u1cce\u00031\u0018\u0000\u1cce\u1ccf"+ - "\u0003\u0007\u0003\u0000\u1ccf\u1cd0\u0003)\u0014\u0000\u1cd0\u1cd1\u0005"+ - "_\u0000\u0000\u1cd1\u1cd2\u0003+\u0015\u0000\u1cd2\u1cd3\u0003\u0007\u0003"+ - "\u0000\u1cd3\u1cd4\u0003\u001f\u000f\u0000\u1cd4\u1cd5\u0003%\u0012\u0000"+ - "\u1cd5\u0530\u0001\u0000\u0000\u0000\u1cd6\u1cd7\u00031\u0018\u0000\u1cd7"+ - "\u1cd8\u0003\u0007\u0003\u0000\u1cd8\u1cd9\u0003)\u0014\u0000\u1cd9\u1cda"+ - "\u0003\u000b\u0005\u0000\u1cda\u1cdb\u0003\u0015\n\u0000\u1cdb\u1cdc\u0003"+ - "\u0007\u0003\u0000\u1cdc\u1cdd\u0003)\u0014\u0000\u1cdd\u0532\u0001\u0000"+ - "\u0000\u0000\u1cde\u1cdf\u00031\u0018\u0000\u1cdf\u1ce0\u0003\u0007\u0003"+ - "\u0000\u1ce0\u1ce1\u0003)\u0014\u0000\u1ce1\u1ce2\u0003\u0017\u000b\u0000"+ - "\u1ce2\u1ce3\u0003\u0007\u0003\u0000\u1ce3\u1ce4\u0003\t\u0004\u0000\u1ce4"+ - "\u1ce5\u0003\u001d\u000e\u0000\u1ce5\u1ce6\u0003\u000f\u0007\u0000\u1ce6"+ - "\u0534\u0001\u0000\u0000\u0000\u1ce7\u1ce8\u00031\u0018\u0000\u1ce8\u1ce9"+ - "\u0003\u0007\u0003\u0000\u1ce9\u1cea\u0003)\u0014\u0000\u1cea\u1ceb\u0003"+ - "\u0017\u000b\u0000\u1ceb\u1cec\u0003\u0007\u0003\u0000\u1cec\u1ced\u0003"+ - "\r\u0006\u0000\u1ced\u1cee\u0003\u0017\u000b\u0000\u1cee\u1cef\u0003\u000b"+ - "\u0005\u0000\u1cef\u0536\u0001\u0000\u0000\u0000\u1cf0\u1cf1\u00031\u0018"+ - "\u0000\u1cf1\u1cf2\u0003\u0007\u0003\u0000\u1cf2\u1cf3\u0003)\u0014\u0000"+ - "\u1cf3\u1cf4\u00037\u001b\u0000\u1cf4\u1cf5\u0003\u0017\u000b\u0000\u1cf5"+ - "\u1cf6\u0003!\u0010\u0000\u1cf6\u1cf7\u0003\u0013\t\u0000\u1cf7\u0538"+ - "\u0001\u0000\u0000\u0000\u1cf8\u1cf9\u00031\u0018\u0000\u1cf9\u1cfa\u0003"+ - "\u000f\u0007\u0000\u1cfa\u1cfb\u0003)\u0014\u0000\u1cfb\u1cfc\u0003\t"+ - "\u0004\u0000\u1cfc\u1cfd\u0003#\u0011\u0000\u1cfd\u1cfe\u0003+\u0015\u0000"+ - "\u1cfe\u1cff\u0003\u000f\u0007\u0000\u1cff\u053a\u0001\u0000\u0000\u0000"+ - "\u1d00\u1d01\u00031\u0018\u0000\u1d01\u1d02\u0003\u0017\u000b\u0000\u1d02"+ - "\u1d03\u0003\u000f\u0007\u0000\u1d03\u1d04\u00033\u0019\u0000\u1d04\u053c"+ - "\u0001\u0000\u0000\u0000\u1d05\u1d06\u00031\u0018\u0000\u1d06\u1d07\u0003"+ - "#\u0011\u0000\u1d07\u1d08\u0003\u001d\u000e\u0000\u1d08\u1d09\u0003\u0007"+ - "\u0003\u0000\u1d09\u1d0a\u0003-\u0016\u0000\u1d0a\u1d0b\u0003\u0017\u000b"+ - "\u0000\u1d0b\u1d0c\u0003\u001d\u000e\u0000\u1d0c\u1d0d\u0003\u000f\u0007"+ - "\u0000\u1d0d\u053e\u0001\u0000\u0000\u0000\u1d0e\u1d0f\u00033\u0019\u0000"+ - "\u1d0f\u1d10\u0003\u0015\n\u0000\u1d10\u1d11\u0003\u000f\u0007\u0000\u1d11"+ - "\u1d12\u0003!\u0010\u0000\u1d12\u0540\u0001\u0000\u0000\u0000\u1d13\u1d14"+ - "\u00033\u0019\u0000\u1d14\u1d15\u0003\u0015\n\u0000\u1d15\u1d16\u0003"+ - "\u000f\u0007\u0000\u1d16\u1d17\u0003!\u0010\u0000\u1d17\u1d18\u0003\u000f"+ - "\u0007\u0000\u1d18\u1d19\u00031\u0018\u0000\u1d19\u1d1a\u0003\u000f\u0007"+ - "\u0000\u1d1a\u1d1b\u0003)\u0014\u0000\u1d1b\u0542\u0001\u0000\u0000\u0000"+ - "\u1d1c\u1d1d\u00033\u0019\u0000\u1d1d\u1d1e\u0003\u0015\n\u0000\u1d1e"+ - "\u1d1f\u0003\u000f\u0007\u0000\u1d1f\u1d20\u0003)\u0014\u0000\u1d20\u1d21"+ - "\u0003\u000f\u0007\u0000\u1d21\u0544\u0001\u0000\u0000\u0000\u1d22\u1d23"+ - "\u00033\u0019\u0000\u1d23\u1d24\u0003\u0017\u000b\u0000\u1d24\u1d25\u0003"+ - "\r\u0006\u0000\u1d25\u1d26\u0003-\u0016\u0000\u1d26\u1d27\u0003\u0015"+ - "\n\u0000\u1d27\u1d28\u0005_\u0000\u0000\u1d28\u1d29\u0003\t\u0004\u0000"+ - "\u1d29\u1d2a\u0003/\u0017\u0000\u1d2a\u1d2b\u0003\u000b\u0005\u0000\u1d2b"+ - "\u1d2c\u0003\u001b\r\u0000\u1d2c\u1d2d\u0003\u000f\u0007\u0000\u1d2d\u1d2e"+ - "\u0003-\u0016\u0000\u1d2e\u0546\u0001\u0000\u0000\u0000\u1d2f\u1d30\u0003"+ - "3\u0019\u0000\u1d30\u1d31\u0003\u0017\u000b\u0000\u1d31\u1d32\u0003!\u0010"+ - "\u0000\u1d32\u1d33\u0003\r\u0006\u0000\u1d33\u1d34\u0003#\u0011\u0000"+ - "\u1d34\u1d35\u00033\u0019\u0000\u1d35\u0548\u0001\u0000\u0000\u0000\u1d36"+ - "\u1d37\u00033\u0019\u0000\u1d37\u1d38\u0003\u0017\u000b\u0000\u1d38\u1d39"+ - "\u0003-\u0016\u0000\u1d39\u1d3a\u0003\u0015\n\u0000\u1d3a\u054a\u0001"+ - "\u0000\u0000\u0000\u1d3b\u1d3c\u00033\u0019\u0000\u1d3c\u1d3d\u0003\u0017"+ - "\u000b\u0000\u1d3d\u1d3e\u0003-\u0016\u0000\u1d3e\u1d3f\u0003\u0015\n"+ - "\u0000\u1d3f\u1d40\u0003\u0017\u000b\u0000\u1d40\u1d41\u0003!\u0010\u0000"+ - "\u1d41\u054c\u0001\u0000\u0000\u0000\u1d42\u1d43\u00033\u0019\u0000\u1d43"+ - "\u1d44\u0003\u0017\u000b\u0000\u1d44\u1d45\u0003-\u0016\u0000\u1d45\u1d46"+ - "\u0003\u0015\n\u0000\u1d46\u1d47\u0003#\u0011\u0000\u1d47\u1d48\u0003"+ - "/\u0017\u0000\u1d48\u1d49\u0003-\u0016\u0000\u1d49\u054e\u0001\u0000\u0000"+ - "\u0000\u1d4a\u1d4b\u00033\u0019\u0000\u1d4b\u1d4c\u0003#\u0011\u0000\u1d4c"+ - "\u1d4d\u0003)\u0014\u0000\u1d4d\u1d4e\u0003\u001b\r\u0000\u1d4e\u0550"+ - "\u0001\u0000\u0000\u0000\u1d4f\u1d50\u00033\u0019\u0000\u1d50\u1d51\u0003"+ - ")\u0014\u0000\u1d51\u1d52\u0003\u0017\u000b\u0000\u1d52\u1d53\u0003-\u0016"+ - "\u0000\u1d53\u1d54\u0003\u000f\u0007\u0000\u1d54\u0552\u0001\u0000\u0000"+ - "\u0000\u1d55\u1d56\u00037\u001b\u0000\u1d56\u1d57\u0003\u0007\u0003\u0000"+ - "\u1d57\u1d58\u0003\u001f\u000f\u0000\u1d58\u1d59\u0003\u001d\u000e\u0000"+ - "\u1d59\u0554\u0001\u0000\u0000\u0000\u1d5a\u1d5b\u00037\u001b\u0000\u1d5b"+ - "\u1d5c\u0003\u000f\u0007\u0000\u1d5c\u1d5d\u0003\u0007\u0003\u0000\u1d5d"+ - "\u1d5e\u0003)\u0014\u0000\u1d5e\u0556\u0001\u0000\u0000\u0000\u1d5f\u1d60"+ - "\u00037\u001b\u0000\u1d60\u1d61\u0003\u000f\u0007\u0000\u1d61\u1d62\u0003"+ - "+\u0015\u0000\u1d62\u0558\u0001\u0000\u0000\u0000\u1d63\u1d64\u00039\u001c"+ - "\u0000\u1d64\u1d65\u0003#\u0011\u0000\u1d65\u1d66\u0003!\u0010\u0000\u1d66"+ - "\u1d67\u0003\u000f\u0007\u0000\u1d67\u055a\u0001\u0000\u0000\u0000\u1d68"+ - "\u1d69\u0003+\u0015\u0000\u1d69\u1d6a\u0003/\u0017\u0000\u1d6a\u1d6b\u0003"+ - "%\u0012\u0000\u1d6b\u1d6c\u0003\u000f\u0007\u0000\u1d6c\u1d6d\u0003)\u0014"+ - "\u0000\u1d6d\u1d6e\u0003/\u0017\u0000\u1d6e\u1d6f\u0003+\u0015\u0000\u1d6f"+ - "\u1d70\u0003\u000f\u0007\u0000\u1d70\u1d71\u0003)\u0014\u0000\u1d71\u055c"+ - "\u0001\u0000\u0000\u0000\u1d72\u1d73\u0003!\u0010\u0000\u1d73\u1d74\u0003"+ - "#\u0011\u0000\u1d74\u1d75\u0003+\u0015\u0000\u1d75\u1d76\u0003/\u0017"+ - "\u0000\u1d76\u1d77\u0003%\u0012\u0000\u1d77\u1d78\u0003\u000f\u0007\u0000"+ - "\u1d78\u1d79\u0003)\u0014\u0000\u1d79\u1d7a\u0003/\u0017\u0000\u1d7a\u1d7b"+ - "\u0003+\u0015\u0000\u1d7b\u1d7c\u0003\u000f\u0007\u0000\u1d7c\u1d7d\u0003"+ - ")\u0014\u0000\u1d7d\u055e\u0001\u0000\u0000\u0000\u1d7e\u1d7f\u0003\u000b"+ - "\u0005\u0000\u1d7f\u1d80\u0003)\u0014\u0000\u1d80\u1d81\u0003\u000f\u0007"+ - "\u0000\u1d81\u1d82\u0003\u0007\u0003\u0000\u1d82\u1d83\u0003-\u0016\u0000"+ - "\u1d83\u1d84\u0003\u000f\u0007\u0000\u1d84\u1d85\u0003)\u0014\u0000\u1d85"+ - "\u1d86\u0003#\u0011\u0000\u1d86\u1d87\u0003\u001d\u000e\u0000\u1d87\u1d88"+ - "\u0003\u000f\u0007\u0000\u1d88\u0560\u0001\u0000\u0000\u0000\u1d89\u1d8a"+ - "\u0003!\u0010\u0000\u1d8a\u1d8b\u0003#\u0011\u0000\u1d8b\u1d8c\u0003\u000b"+ - "\u0005\u0000\u1d8c\u1d8d\u0003)\u0014\u0000\u1d8d\u1d8e\u0003\u000f\u0007"+ - "\u0000\u1d8e\u1d8f\u0003\u0007\u0003\u0000\u1d8f\u1d90\u0003-\u0016\u0000"+ - "\u1d90\u1d91\u0003\u000f\u0007\u0000\u1d91\u1d92\u0003)\u0014\u0000\u1d92"+ - "\u1d93\u0003#\u0011\u0000\u1d93\u1d94\u0003\u001d\u000e\u0000\u1d94\u1d95"+ - "\u0003\u000f\u0007\u0000\u1d95\u0562\u0001\u0000\u0000\u0000\u1d96\u1d97"+ - "\u0003\u0017\u000b\u0000\u1d97\u1d98\u0003!\u0010\u0000\u1d98\u1d99\u0003"+ - "\u0015\n\u0000\u1d99\u1d9a\u0003\u000f\u0007\u0000\u1d9a\u1d9b\u0003)"+ - "\u0014\u0000\u1d9b\u1d9c\u0003\u0017\u000b\u0000\u1d9c\u1d9d\u0003-\u0016"+ - "\u0000\u1d9d\u0564\u0001\u0000\u0000\u0000\u1d9e\u1d9f\u0003!\u0010\u0000"+ - "\u1d9f\u1da0\u0003#\u0011\u0000\u1da0\u1da1\u0003\u0017\u000b\u0000\u1da1"+ - "\u1da2\u0003!\u0010\u0000\u1da2\u1da3\u0003\u0015\n\u0000\u1da3\u1da4"+ - "\u0003\u000f\u0007\u0000\u1da4\u1da5\u0003)\u0014\u0000\u1da5\u1da6\u0003"+ - "\u0017\u000b\u0000\u1da6\u1da7\u0003-\u0016\u0000\u1da7\u0566\u0001\u0000"+ - "\u0000\u0000\u1da8\u1da9\u0003\u001d\u000e\u0000\u1da9\u1daa\u0003#\u0011"+ - "\u0000\u1daa\u1dab\u0003\u0013\t\u0000\u1dab\u1dac\u0003\u0017\u000b\u0000"+ - "\u1dac\u1dad\u0003!\u0010\u0000\u1dad\u0568\u0001\u0000\u0000\u0000\u1dae"+ - "\u1daf\u0003!\u0010\u0000\u1daf\u1db0\u0003#\u0011\u0000\u1db0\u1db1\u0003"+ - "\u001d\u000e\u0000\u1db1\u1db2\u0003#\u0011\u0000\u1db2\u1db3\u0003\u0013"+ - "\t\u0000\u1db3\u1db4\u0003\u0017\u000b\u0000\u1db4\u1db5\u0003!\u0010"+ - "\u0000\u1db5\u056a\u0001\u0000\u0000\u0000\u1db6\u1db7\u0003)\u0014\u0000"+ - "\u1db7\u1db8\u0003\u000f\u0007\u0000\u1db8\u1db9\u0003%\u0012\u0000\u1db9"+ - "\u1dba\u0003\u001d\u000e\u0000\u1dba\u1dbb\u0003\u0017\u000b\u0000\u1dbb"+ - "\u1dbc\u0003\u000b\u0005\u0000\u1dbc\u1dbd\u0003\u0007\u0003\u0000\u1dbd"+ - "\u1dbe\u0003-\u0016\u0000\u1dbe\u1dbf\u0003\u0017\u000b\u0000\u1dbf\u1dc0"+ - "\u0003#\u0011\u0000\u1dc0\u1dc1\u0003!\u0010\u0000\u1dc1\u056c\u0001\u0000"+ - "\u0000\u0000\u1dc2\u1dc3\u0003!\u0010\u0000\u1dc3\u1dc4\u0003#\u0011\u0000"+ - "\u1dc4\u1dc5\u0003)\u0014\u0000\u1dc5\u1dc6\u0003\u000f\u0007\u0000\u1dc6"+ - "\u1dc7\u0003%\u0012\u0000\u1dc7\u1dc8\u0003\u001d\u000e\u0000\u1dc8\u1dc9"+ - "\u0003\u0017\u000b\u0000\u1dc9\u1dca\u0003\u000b\u0005\u0000\u1dca\u1dcb"+ - "\u0003\u0007\u0003\u0000\u1dcb\u1dcc\u0003-\u0016\u0000\u1dcc\u1dcd\u0003"+ - "\u0017\u000b\u0000\u1dcd\u1dce\u0003#\u0011\u0000\u1dce\u1dcf\u0003!\u0010"+ - "\u0000\u1dcf\u056e\u0001\u0000\u0000\u0000\u1dd0\u1dd1\u0003\t\u0004\u0000"+ - "\u1dd1\u1dd2\u00037\u001b\u0000\u1dd2\u1dd3\u0003%\u0012\u0000\u1dd3\u1dd4"+ - "\u0003\u0007\u0003\u0000\u1dd4\u1dd5\u0003+\u0015\u0000\u1dd5\u1dd6\u0003"+ - "+\u0015\u0000\u1dd6\u1dd7\u0003)\u0014\u0000\u1dd7\u1dd8\u0003\u001d\u000e"+ - "\u0000\u1dd8\u1dd9\u0003+\u0015\u0000\u1dd9\u0570\u0001\u0000\u0000\u0000"+ - "\u1dda\u1ddb\u0003!\u0010\u0000\u1ddb\u1ddc\u0003#\u0011\u0000\u1ddc\u1ddd"+ - "\u0003\t\u0004\u0000\u1ddd\u1dde\u00037\u001b\u0000\u1dde\u1ddf\u0003"+ - "%\u0012\u0000\u1ddf\u1de0\u0003\u0007\u0003\u0000\u1de0\u1de1\u0003+\u0015"+ - "\u0000\u1de1\u1de2\u0003+\u0015\u0000\u1de2\u1de3\u0003)\u0014\u0000\u1de3"+ - "\u1de4\u0003\u001d\u000e\u0000\u1de4\u1de5\u0003+\u0015\u0000\u1de5\u0572"+ - "\u0001\u0000\u0000\u0000\u1de6\u1de7\u0003+\u0015\u0000\u1de7\u1de8\u0003"+ - "\u0011\b\u0000\u1de8\u1de9\u0003/\u0017\u0000\u1de9\u1dea\u0003!\u0010"+ - "\u0000\u1dea\u1deb\u0003\u000b\u0005\u0000\u1deb\u0574\u0001\u0000\u0000"+ - "\u0000\u1dec\u1ded\u0003+\u0015\u0000\u1ded\u1dee\u0003-\u0016\u0000\u1dee"+ - "\u1def\u00037\u001b\u0000\u1def\u1df0\u0003%\u0012\u0000\u1df0\u1df1\u0003"+ - "\u000f\u0007\u0000\u1df1\u0576\u0001\u0000\u0000\u0000\u1df2\u1df3\u0003"+ - "+\u0015\u0000\u1df3\u1df4\u0003+\u0015\u0000\u1df4\u1df5\u0003%\u0012"+ - "\u0000\u1df5\u1df6\u0003\u0007\u0003\u0000\u1df6\u1df7\u0003\u000b\u0005"+ - "\u0000\u1df7\u1df8\u0003\u000f\u0007\u0000\u1df8\u0578\u0001\u0000\u0000"+ - "\u0000\u1df9\u1dfa\u0003\u0011\b\u0000\u1dfa\u1dfb\u0003\u0017\u000b\u0000"+ - "\u1dfb\u1dfc\u0003!\u0010\u0000\u1dfc\u1dfd\u0003\u0007\u0003\u0000\u1dfd"+ - "\u1dfe\u0003\u001d\u000e\u0000\u1dfe\u1dff\u0003\u0011\b\u0000\u1dff\u1e00"+ - "\u0003/\u0017\u0000\u1e00\u1e01\u0003!\u0010\u0000\u1e01\u1e02\u0003\u000b"+ - "\u0005\u0000\u1e02\u057a\u0001\u0000\u0000\u0000\u1e03\u1e04\u0003\u0011"+ - "\b\u0000\u1e04\u1e05\u0003\u0017\u000b\u0000\u1e05\u1e06\u0003!\u0010"+ - "\u0000\u1e06\u1e07\u0003\u0007\u0003\u0000\u1e07\u1e08\u0003\u001d\u000e"+ - "\u0000\u1e08\u1e09\u0003\u0011\b\u0000\u1e09\u1e0a\u0003/\u0017\u0000"+ - "\u1e0a\u1e0b\u0003!\u0010\u0000\u1e0b\u1e0c\u0003\u000b\u0005\u0000\u1e0c"+ - "\u1e0d\u0005_\u0000\u0000\u1e0d\u1e0e\u0003\u000f\u0007\u0000\u1e0e\u1e0f"+ - "\u00035\u001a\u0000\u1e0f\u1e10\u0003-\u0016\u0000\u1e10\u1e11\u0003)"+ - "\u0014\u0000\u1e11\u1e12\u0003\u0007\u0003\u0000\u1e12\u057c\u0001\u0000"+ - "\u0000\u0000\u1e13\u1e14\u0003\u000b\u0005\u0000\u1e14\u1e15\u0003#\u0011"+ - "\u0000\u1e15\u1e16\u0003\u001f\u000f\u0000\u1e16\u1e17\u0003\t\u0004\u0000"+ - "\u1e17\u1e18\u0003\u0017\u000b\u0000\u1e18\u1e19\u0003!\u0010\u0000\u1e19"+ - "\u1e1a\u0003\u000f\u0007\u0000\u1e1a\u1e1b\u0003\u0011\b\u0000\u1e1b\u1e1c"+ - "\u0003/\u0017\u0000\u1e1c\u1e1d\u0003!\u0010\u0000\u1e1d\u1e1e\u0003\u000b"+ - "\u0005\u0000\u1e1e\u057e\u0001\u0000\u0000\u0000\u1e1f\u1e20\u0003+\u0015"+ - "\u0000\u1e20\u1e21\u0003\u000f\u0007\u0000\u1e21\u1e22\u0003)\u0014"; + "\u000b\u0000\u0fee\u0fef\u0003!\u0010\u0000\u0fef\u0ff0\u0003\u0013\t"+ + "\u0000\u0ff0\u0238\u0001\u0000\u0000\u0000\u0ff1\u0ff2\u0003\u0015\n\u0000"+ + "\u0ff2\u0ff3\u0003\u0017\u000b\u0000\u0ff3\u0ff4\u0003\u000f\u0007\u0000"+ + "\u0ff4\u0ff5\u0003)\u0014\u0000\u0ff5\u0ff6\u0003\u0007\u0003\u0000\u0ff6"+ + "\u0ff7\u0003)\u0014\u0000\u0ff7\u0ff8\u0003\u000b\u0005\u0000\u0ff8\u0ff9"+ + "\u0003\u0015\n\u0000\u0ff9\u0ffa\u00037\u001b\u0000\u0ffa\u023a\u0001"+ + "\u0000\u0000\u0000\u0ffb\u0ffc\u0003\u0015\n\u0000\u0ffc\u0ffd\u0003#"+ + "\u0011\u0000\u0ffd\u0ffe\u0003\u001d\u000e\u0000\u0ffe\u0fff\u0003\r\u0006"+ + "\u0000\u0fff\u023c\u0001\u0000\u0000\u0000\u1000\u1001\u0003\u0015\n\u0000"+ + "\u1001\u1002\u0003#\u0011\u0000\u1002\u1003\u0003+\u0015\u0000\u1003\u1004"+ + "\u0003-\u0016\u0000\u1004\u023e\u0001\u0000\u0000\u0000\u1005\u1006\u0003"+ + "\u0015\n\u0000\u1006\u1007\u0003#\u0011\u0000\u1007\u1008\u0003/\u0017"+ + "\u0000\u1008\u1009\u0003)\u0014\u0000\u1009\u0240\u0001\u0000\u0000\u0000"+ + "\u100a\u100b\u0003\u0017\u000b\u0000\u100b\u100c\u0003\r\u0006\u0000\u100c"+ + "\u100d\u0003\u000f\u0007\u0000\u100d\u100e\u0003!\u0010\u0000\u100e\u100f"+ + "\u0003-\u0016\u0000\u100f\u1010\u0003\u0017\u000b\u0000\u1010\u1011\u0003"+ + "-\u0016\u0000\u1011\u1012\u00037\u001b\u0000\u1012\u0242\u0001\u0000\u0000"+ + "\u0000\u1013\u1014\u0003\u0017\u000b\u0000\u1014\u1015\u0003\u0013\t\u0000"+ + "\u1015\u1016\u0003!\u0010\u0000\u1016\u1017\u0003#\u0011\u0000\u1017\u1018"+ + "\u0003)\u0014\u0000\u1018\u1019\u0003\u000f\u0007\u0000\u1019\u0244\u0001"+ + "\u0000\u0000\u0000\u101a\u101b\u0003\u0017\u000b\u0000\u101b\u101c\u0003"+ + "\u001d\u000e\u0000\u101c\u101d\u0003\u0017\u000b\u0000\u101d\u101e\u0003"+ + "\u001b\r\u0000\u101e\u101f\u0003\u000f\u0007\u0000\u101f\u0246\u0001\u0000"+ + "\u0000\u0000\u1020\u1021\u0003\u0017\u000b\u0000\u1021\u1022\u0003\u001f"+ + "\u000f\u0000\u1022\u1023\u0003\u001f\u000f\u0000\u1023\u1024\u0003\u000f"+ + "\u0007\u0000\u1024\u1025\u0003\r\u0006\u0000\u1025\u1026\u0003\u0017\u000b"+ + "\u0000\u1026\u1027\u0003\u0007\u0003\u0000\u1027\u1028\u0003-\u0016\u0000"+ + "\u1028\u1029\u0003\u000f\u0007\u0000\u1029\u0248\u0001\u0000\u0000\u0000"+ + "\u102a\u102b\u0003\u0017\u000b\u0000\u102b\u102c\u0003\u001f\u000f\u0000"+ + "\u102c\u102d\u0003\u001f\u000f\u0000\u102d\u102e\u0003/\u0017\u0000\u102e"+ + "\u102f\u0003-\u0016\u0000\u102f\u1030\u0003\u0007\u0003\u0000\u1030\u1031"+ + "\u0003\t\u0004\u0000\u1031\u1032\u0003\u001d\u000e\u0000\u1032\u1033\u0003"+ + "\u000f\u0007\u0000\u1033\u024a\u0001\u0000\u0000\u0000\u1034\u1035\u0003"+ + "\u0017\u000b\u0000\u1035\u1036\u0003\u001f\u000f\u0000\u1036\u1037\u0003"+ + "%\u0012\u0000\u1037\u1038\u0003\u001d\u000e\u0000\u1038\u1039\u0003\u000f"+ + "\u0007\u0000\u1039\u103a\u0003\u001f\u000f\u0000\u103a\u103b\u0003\u000f"+ + "\u0007\u0000\u103b\u103c\u0003!\u0010\u0000\u103c\u103d\u0003-\u0016\u0000"+ + "\u103d\u103e\u0003\u0007\u0003\u0000\u103e\u103f\u0003-\u0016\u0000\u103f"+ + "\u1040\u0003\u0017\u000b\u0000\u1040\u1041\u0003#\u0011\u0000\u1041\u1042"+ + "\u0003!\u0010\u0000\u1042\u024c\u0001\u0000\u0000\u0000\u1043\u1044\u0003"+ + "\u0017\u000b\u0000\u1044\u1045\u0003\u001f\u000f\u0000\u1045\u1046\u0003"+ + "%\u0012\u0000\u1046\u1047\u0003\u001d\u000e\u0000\u1047\u1048\u0003\u0017"+ + "\u000b\u0000\u1048\u1049\u0003\u000b\u0005\u0000\u1049\u104a\u0003\u0017"+ + "\u000b\u0000\u104a\u104b\u0003-\u0016\u0000\u104b\u024e\u0001\u0000\u0000"+ + "\u0000\u104c\u104d\u0003\u0017\u000b\u0000\u104d\u104e\u0003!\u0010\u0000"+ + "\u104e\u0250\u0001\u0000\u0000\u0000\u104f\u1050\u0003\u0017\u000b\u0000"+ + "\u1050\u1051\u0003!\u0010\u0000\u1051\u1052\u0003\u000b\u0005\u0000\u1052"+ + "\u1053\u0003\u001d\u000e\u0000\u1053\u1054\u0003/\u0017\u0000\u1054\u1055"+ + "\u0003\r\u0006\u0000\u1055\u1056\u0003\u0017\u000b\u0000\u1056\u1057\u0003"+ + "!\u0010\u0000\u1057\u1058\u0003\u0013\t\u0000\u1058\u0252\u0001\u0000"+ + "\u0000\u0000\u1059\u105a\u0003\u0017\u000b\u0000\u105a\u105b\u0003!\u0010"+ + "\u0000\u105b\u105c\u0003\u000b\u0005\u0000\u105c\u105d\u0003)\u0014\u0000"+ + "\u105d\u105e\u0003\u000f\u0007\u0000\u105e\u105f\u0003\u001f\u000f\u0000"+ + "\u105f\u1060\u0003\u000f\u0007\u0000\u1060\u1061\u0003!\u0010\u0000\u1061"+ + "\u1062\u0003-\u0016\u0000\u1062\u0254\u0001\u0000\u0000\u0000\u1063\u1064"+ + "\u0003\u0017\u000b\u0000\u1064\u1065\u0003!\u0010\u0000\u1065\u1066\u0003"+ + "\r\u0006\u0000\u1066\u1067\u0003\u000f\u0007\u0000\u1067\u1068\u00035"+ + "\u001a\u0000\u1068\u0256\u0001\u0000\u0000\u0000\u1069\u106a\u0003\u0017"+ + "\u000b\u0000\u106a\u106b\u0003!\u0010\u0000\u106b\u106c\u0003\r\u0006"+ + "\u0000\u106c\u106d\u0003\u0017\u000b\u0000\u106d\u106e\u0003\u000b\u0005"+ + "\u0000\u106e\u106f\u0003\u0007\u0003\u0000\u106f\u1070\u0003-\u0016\u0000"+ + "\u1070\u1071\u0003#\u0011\u0000\u1071\u1072\u0003)\u0014\u0000\u1072\u0258"+ + "\u0001\u0000\u0000\u0000\u1073\u1074\u0003\u0017\u000b\u0000\u1074\u1075"+ + "\u0003!\u0010\u0000\u1075\u1076\u0003\u0011\b\u0000\u1076\u1077\u0003"+ + "\u0017\u000b\u0000\u1077\u1078\u00035\u001a\u0000\u1078\u025a\u0001\u0000"+ + "\u0000\u0000\u1079\u107a\u0003\u0017\u000b\u0000\u107a\u107b\u0003!\u0010"+ + "\u0000\u107b\u107c\u0003\u0015\n\u0000\u107c\u107d\u0003\u000f\u0007\u0000"+ + "\u107d\u107e\u0003)\u0014\u0000\u107e\u107f\u0003\u0017\u000b\u0000\u107f"+ + "\u1080\u0003-\u0016\u0000\u1080\u1081\u0003+\u0015\u0000\u1081\u025c\u0001"+ + "\u0000\u0000\u0000\u1082\u1083\u0003\u0017\u000b\u0000\u1083\u1084\u0003"+ + "!\u0010\u0000\u1084\u1085\u0003\u0017\u000b\u0000\u1085\u1086\u0003-\u0016"+ + "\u0000\u1086\u1087\u0003\u0017\u000b\u0000\u1087\u1088\u0003\u0007\u0003"+ + "\u0000\u1088\u1089\u0003\u001d\u000e\u0000\u1089\u108a\u0003\u0017\u000b"+ + "\u0000\u108a\u108b\u00039\u001c\u0000\u108b\u108c\u0003\u000f\u0007\u0000"+ + "\u108c\u025e\u0001\u0000\u0000\u0000\u108d\u108e\u0003\u0017\u000b\u0000"+ + "\u108e\u108f\u0003!\u0010\u0000\u108f\u1090\u0003\u0017\u000b\u0000\u1090"+ + "\u1091\u0003-\u0016\u0000\u1091\u1092\u0003\u0017\u000b\u0000\u1092\u1093"+ + "\u0003\u0007\u0003\u0000\u1093\u1094\u0003\u001d\u000e\u0000\u1094\u1095"+ + "\u0003\u001d\u000e\u0000\u1095\u1096\u00037\u001b\u0000\u1096\u0260\u0001"+ + "\u0000\u0000\u0000\u1097\u1098\u0003\u0017\u000b\u0000\u1098\u1099\u0003"+ + "!\u0010\u0000\u1099\u109a\u0003!\u0010\u0000\u109a\u109b\u0003\u000f\u0007"+ + "\u0000\u109b\u109c\u0003)\u0014\u0000\u109c\u0262\u0001\u0000\u0000\u0000"+ + "\u109d\u109e\u0003\u0017\u000b\u0000\u109e\u109f\u0003!\u0010\u0000\u109f"+ + "\u10a0\u0003#\u0011\u0000\u10a0\u10a1\u0003/\u0017\u0000\u10a1\u10a2\u0003"+ + "-\u0016\u0000\u10a2\u0264\u0001\u0000\u0000\u0000\u10a3\u10a4\u0003\u0017"+ + "\u000b\u0000\u10a4\u10a5\u0003!\u0010\u0000\u10a5\u10a6\u0003%\u0012\u0000"+ + "\u10a6\u10a7\u0003/\u0017\u0000\u10a7\u10a8\u0003-\u0016\u0000\u10a8\u0266"+ + "\u0001\u0000\u0000\u0000\u10a9\u10aa\u0003\u0017\u000b\u0000\u10aa\u10ab"+ + "\u0003!\u0010\u0000\u10ab\u10ac\u0003+\u0015\u0000\u10ac\u10ad\u0003\u000f"+ + "\u0007\u0000\u10ad\u10ae\u0003!\u0010\u0000\u10ae\u10af\u0003+\u0015\u0000"+ + "\u10af\u10b0\u0003\u0017\u000b\u0000\u10b0\u10b1\u0003-\u0016\u0000\u10b1"+ + "\u10b2\u0003\u0017\u000b\u0000\u10b2\u10b3\u00031\u0018\u0000\u10b3\u10b4"+ + "\u0003\u000f\u0007\u0000\u10b4\u0268\u0001\u0000\u0000\u0000\u10b5\u10b6"+ + "\u0003\u0017\u000b\u0000\u10b6\u10b7\u0003!\u0010\u0000\u10b7\u10b8\u0003"+ + "+\u0015\u0000\u10b8\u10b9\u0003\u000f\u0007\u0000\u10b9\u10ba\u0003)\u0014"+ + "\u0000\u10ba\u10bb\u0003-\u0016\u0000\u10bb\u026a\u0001\u0000\u0000\u0000"+ + "\u10bc\u10bd\u0003\u0017\u000b\u0000\u10bd\u10be\u0003!\u0010\u0000\u10be"+ + "\u10bf\u0003+\u0015\u0000\u10bf\u10c0\u0003-\u0016\u0000\u10c0\u10c1\u0003"+ + "\u0007\u0003\u0000\u10c1\u10c2\u0003!\u0010\u0000\u10c2\u10c3\u0003\u000b"+ + "\u0005\u0000\u10c3\u10c4\u0003\u000f\u0007\u0000\u10c4\u026c\u0001\u0000"+ + "\u0000\u0000\u10c5\u10c6\u0003\u0017\u000b\u0000\u10c6\u10c7\u0003!\u0010"+ + "\u0000\u10c7\u10c8\u0003+\u0015\u0000\u10c8\u10c9\u0003-\u0016\u0000\u10c9"+ + "\u10ca\u0003\u0007\u0003\u0000\u10ca\u10cb\u0003!\u0010\u0000\u10cb\u10cc"+ + "\u0003-\u0016\u0000\u10cc\u10cd\u0003\u0017\u000b\u0000\u10cd\u10ce\u0003"+ + "\u0007\u0003\u0000\u10ce\u10cf\u0003\t\u0004\u0000\u10cf\u10d0\u0003\u001d"+ + "\u000e\u0000\u10d0\u10d1\u0003\u000f\u0007\u0000\u10d1\u026e\u0001\u0000"+ + "\u0000\u0000\u10d2\u10d3\u0003\u0017\u000b\u0000\u10d3\u10d4\u0003!\u0010"+ + "\u0000\u10d4\u10d5\u0003+\u0015\u0000\u10d5\u10d6\u0003-\u0016\u0000\u10d6"+ + "\u10d7\u0003\u000f\u0007\u0000\u10d7\u10d8\u0003\u0007\u0003\u0000\u10d8"+ + "\u10d9\u0003\r\u0006\u0000\u10d9\u0270\u0001\u0000\u0000\u0000\u10da\u10db"+ + "\u0003\u0017\u000b\u0000\u10db\u10dc\u0003!\u0010\u0000\u10dc\u10dd\u0003"+ + "-\u0016\u0000\u10dd\u0272\u0001\u0000\u0000\u0000\u10de\u10df\u0003\u0017"+ + "\u000b\u0000\u10df\u10e0\u0003!\u0010\u0000\u10e0\u10e1\u0003-\u0016\u0000"+ + "\u10e1\u10e2\u0003\u000f\u0007\u0000\u10e2\u10e3\u0003\u0013\t\u0000\u10e3"+ + "\u10e4\u0003\u000f\u0007\u0000\u10e4\u10e5\u0003)\u0014\u0000\u10e5\u0274"+ + "\u0001\u0000\u0000\u0000\u10e6\u10e7\u0003\u0017\u000b\u0000\u10e7\u10e8"+ + "\u0003!\u0010\u0000\u10e8\u10e9\u0003-\u0016\u0000\u10e9\u10ea\u0003\u000f"+ + "\u0007\u0000\u10ea\u10eb\u0003)\u0014\u0000\u10eb\u10ec\u0003+\u0015\u0000"+ + "\u10ec\u10ed\u0003\u000f\u0007\u0000\u10ed\u10ee\u0003\u000b\u0005\u0000"+ + "\u10ee\u10ef\u0003-\u0016\u0000\u10ef\u0276\u0001\u0000\u0000\u0000\u10f0"+ + "\u10f1\u0003\u0017\u000b\u0000\u10f1\u10f2\u0003!\u0010\u0000\u10f2\u10f3"+ + "\u0003-\u0016\u0000\u10f3\u10f4\u0003\u000f\u0007\u0000\u10f4\u10f5\u0003"+ + ")\u0014\u0000\u10f5\u10f6\u0003+\u0015\u0000\u10f6\u10f7\u0003\u000f\u0007"+ + "\u0000\u10f7\u10f8\u0003\u000b\u0005\u0000\u10f8\u10f9\u0003-\u0016\u0000"+ + "\u10f9\u10fa\u0003\u0017\u000b\u0000\u10fa\u10fb\u0003#\u0011\u0000\u10fb"+ + "\u10fc\u0003!\u0010\u0000\u10fc\u0278\u0001\u0000\u0000\u0000\u10fd\u10fe"+ + "\u0003\u0017\u000b\u0000\u10fe\u10ff\u0003!\u0010\u0000\u10ff\u1100\u0003"+ + "-\u0016\u0000\u1100\u1101\u0003\u000f\u0007\u0000\u1101\u1102\u0003)\u0014"+ + "\u0000\u1102\u1103\u00031\u0018\u0000\u1103\u1104\u0003\u0007\u0003\u0000"+ + "\u1104\u1105\u0003\u001d\u000e\u0000\u1105\u027a\u0001\u0000\u0000\u0000"+ + "\u1106\u1107\u0003\u0017\u000b\u0000\u1107\u1108\u0003!\u0010\u0000\u1108"+ + "\u1109\u0003-\u0016\u0000\u1109\u110a\u0003#\u0011\u0000\u110a\u027c\u0001"+ + "\u0000\u0000\u0000\u110b\u110c\u0003\u0017\u000b\u0000\u110c\u110d\u0003"+ + "!\u0010\u0000\u110d\u110e\u00031\u0018\u0000\u110e\u110f\u0003#\u0011"+ + "\u0000\u110f\u1110\u0003\u001b\r\u0000\u1110\u1111\u0003\u000f\u0007\u0000"+ + "\u1111\u1112\u0003)\u0014\u0000\u1112\u027e\u0001\u0000\u0000\u0000\u1113"+ + "\u1114\u0003\u0017\u000b\u0000\u1114\u1115\u0003+\u0015\u0000\u1115\u0280"+ + "\u0001\u0000\u0000\u0000\u1116\u1117\u0003\u0017\u000b\u0000\u1117\u1118"+ + "\u0003+\u0015\u0000\u1118\u1119\u0003#\u0011\u0000\u1119\u111a\u0003\u001d"+ + "\u000e\u0000\u111a\u111b\u0003\u0007\u0003\u0000\u111b\u111c\u0003-\u0016"+ + "\u0000\u111c\u111d\u0003\u0017\u000b\u0000\u111d\u111e\u0003#\u0011\u0000"+ + "\u111e\u111f\u0003!\u0010\u0000\u111f\u0282\u0001\u0000\u0000\u0000\u1120"+ + "\u1121\u0003\u0017\u000b\u0000\u1121\u1122\u0003-\u0016\u0000\u1122\u1123"+ + "\u0003\u000f\u0007\u0000\u1123\u1124\u0003)\u0014\u0000\u1124\u1125\u0003"+ + "\u0007\u0003\u0000\u1125\u1126\u0003-\u0016\u0000\u1126\u1127\u0003\u000f"+ + "\u0007\u0000\u1127\u0284\u0001\u0000\u0000\u0000\u1128\u1129\u0003\u0019"+ + "\f\u0000\u1129\u112a\u0003#\u0011\u0000\u112a\u112b\u0003\u0017\u000b"+ + "\u0000\u112b\u112c\u0003!\u0010\u0000\u112c\u0286\u0001\u0000\u0000\u0000"+ + "\u112d\u112e\u0003\u001b\r\u0000\u112e\u0288\u0001\u0000\u0000\u0000\u112f"+ + "\u1130\u0003\u001b\r\u0000\u1130\u1131\u0003\u000f\u0007\u0000\u1131\u1132"+ + "\u00037\u001b\u0000\u1132\u028a\u0001\u0000\u0000\u0000\u1133\u1134\u0003"+ + "\u001b\r\u0000\u1134\u1135\u0003\u000f\u0007\u0000\u1135\u1136\u00037"+ + "\u001b\u0000\u1136\u1137\u0005_\u0000\u0000\u1137\u1138\u0003\u001f\u000f"+ + "\u0000\u1138\u1139\u0003\u000f\u0007\u0000\u1139\u113a\u0003\u001f\u000f"+ + "\u0000\u113a\u113b\u0003\t\u0004\u0000\u113b\u113c\u0003\u000f\u0007\u0000"+ + "\u113c\u113d\u0003)\u0014\u0000\u113d\u028c\u0001\u0000\u0000\u0000\u113e"+ + "\u113f\u0003\u001b\r\u0000\u113f\u1140\u0003\u000f\u0007\u0000\u1140\u1141"+ + "\u00037\u001b\u0000\u1141\u1142\u0005_\u0000\u0000\u1142\u1143\u0003-"+ + "\u0016\u0000\u1143\u1144\u00037\u001b\u0000\u1144\u1145\u0003%\u0012\u0000"+ + "\u1145\u1146\u0003\u000f\u0007\u0000\u1146\u028e\u0001\u0000\u0000\u0000"+ + "\u1147\u1148\u0003\u001d\u000e\u0000\u1148\u1149\u0003\u0007\u0003\u0000"+ + "\u1149\u114a\u0003\t\u0004\u0000\u114a\u114b\u0003\u000f\u0007\u0000\u114b"+ + "\u114c\u0003\u001d\u000e\u0000\u114c\u0290\u0001\u0000\u0000\u0000\u114d"+ + "\u114e\u0003\u001d\u000e\u0000\u114e\u114f\u0003\u0007\u0003\u0000\u114f"+ + "\u1150\u0003!\u0010\u0000\u1150\u1151\u0003\u000b\u0005\u0000\u1151\u1152"+ + "\u0003#\u0011\u0000\u1152\u1153\u0003\u001f\u000f\u0000\u1153\u1154\u0003"+ + "%\u0012\u0000\u1154\u1155\u0003\u0017\u000b\u0000\u1155\u1156\u0003\u001d"+ + "\u000e\u0000\u1156\u1157\u0003\u000f\u0007\u0000\u1157\u1158\u0003)\u0014"+ + "\u0000\u1158\u0292\u0001\u0000\u0000\u0000\u1159\u115a\u0003\u001d\u000e"+ + "\u0000\u115a\u115b\u0003\u0007\u0003\u0000\u115b\u115c\u0003!\u0010\u0000"+ + "\u115c\u115d\u0003\u0013\t\u0000\u115d\u115e\u0003/\u0017\u0000\u115e"+ + "\u115f\u0003\u0007\u0003\u0000\u115f\u1160\u0003\u0013\t\u0000\u1160\u1161"+ + "\u0003\u000f\u0007\u0000\u1161\u0294\u0001\u0000\u0000\u0000\u1162\u1163"+ + "\u0003\u001d\u000e\u0000\u1163\u1164\u0003\u0007\u0003\u0000\u1164\u1165"+ + "\u0003)\u0014\u0000\u1165\u1166\u0003\u0013\t\u0000\u1166\u1167\u0003"+ + "\u000f\u0007\u0000\u1167\u0296\u0001\u0000\u0000\u0000\u1168\u1169\u0003"+ + "\u001d\u000e\u0000\u1169\u116a\u0003\u0007\u0003\u0000\u116a\u116b\u0003"+ + "+\u0015\u0000\u116b\u116c\u0003-\u0016\u0000\u116c\u0298\u0001\u0000\u0000"+ + "\u0000\u116d\u116e\u0003\u001d\u000e\u0000\u116e\u116f\u0003\u0007\u0003"+ + "\u0000\u116f\u1170\u0003-\u0016\u0000\u1170\u1171\u0003\u000f\u0007\u0000"+ + "\u1171\u1172\u0003)\u0014\u0000\u1172\u1173\u0003\u0007\u0003\u0000\u1173"+ + "\u1174\u0003\u001d\u000e\u0000\u1174\u029a\u0001\u0000\u0000\u0000\u1175"+ + "\u1176\u0003\u001d\u000e\u0000\u1176\u1177\u0003\u000f\u0007\u0000\u1177"+ + "\u1178\u0003\u0007\u0003\u0000\u1178\u1179\u0003\r\u0006\u0000\u1179\u117a"+ + "\u0003\u0017\u000b\u0000\u117a\u117b\u0003!\u0010\u0000\u117b\u117c\u0003"+ + "\u0013\t\u0000\u117c\u029c\u0001\u0000\u0000\u0000\u117d\u117e\u0003\u001d"+ + "\u000e\u0000\u117e\u117f\u0003\u000f\u0007\u0000\u117f\u1180\u0003\u0007"+ + "\u0003\u0000\u1180\u1181\u0003+\u0015\u0000\u1181\u1182\u0003-\u0016\u0000"+ + "\u1182\u029e\u0001\u0000\u0000\u0000\u1183\u1184\u0003\u001d\u000e\u0000"+ + "\u1184\u1185\u0003\u000f\u0007\u0000\u1185\u1186\u0003\u0011\b\u0000\u1186"+ + "\u1187\u0003-\u0016\u0000\u1187\u02a0\u0001\u0000\u0000\u0000\u1188\u1189"+ + "\u0003\u001d\u000e\u0000\u1189\u118a\u0003\u000f\u0007\u0000\u118a\u118b"+ + "\u0003!\u0010\u0000\u118b\u118c\u0003\u0013\t\u0000\u118c\u118d\u0003"+ + "-\u0016\u0000\u118d\u118e\u0003\u0015\n\u0000\u118e\u02a2\u0001\u0000"+ + "\u0000\u0000\u118f\u1190\u0003\u001d\u000e\u0000\u1190\u1191\u0003\u000f"+ + "\u0007\u0000\u1191\u1192\u0003+\u0015\u0000\u1192\u1193\u0003+\u0015\u0000"+ + "\u1193\u02a4\u0001\u0000\u0000\u0000\u1194\u1195\u0003\u001d\u000e\u0000"+ + "\u1195\u1196\u0003\u000f\u0007\u0000\u1196\u1197\u00031\u0018\u0000\u1197"+ + "\u1198\u0003\u000f\u0007\u0000\u1198\u1199\u0003\u001d\u000e\u0000\u1199"+ + "\u02a6\u0001\u0000\u0000\u0000\u119a\u119b\u0003\u001d\u000e\u0000\u119b"+ + "\u119c\u0003\u0017\u000b\u0000\u119c\u119d\u0003\u001b\r\u0000\u119d\u119e"+ + "\u0003\u000f\u0007\u0000\u119e\u02a8\u0001\u0000\u0000\u0000\u119f\u11a0"+ + "\u0003\u001d\u000e\u0000\u11a0\u11a1\u0003\u0017\u000b\u0000\u11a1\u11a2"+ + "\u0003\u001f\u000f\u0000\u11a2\u11a3\u0003\u0017\u000b\u0000\u11a3\u11a4"+ + "\u0003-\u0016\u0000\u11a4\u02aa\u0001\u0000\u0000\u0000\u11a5\u11a6\u0003"+ + "\u001d\u000e\u0000\u11a6\u11a7\u0003\u0017\u000b\u0000\u11a7\u11a8\u0003"+ + "+\u0015\u0000\u11a8\u11a9\u0003-\u0016\u0000\u11a9\u11aa\u0003\u000f\u0007"+ + "\u0000\u11aa\u11ab\u0003!\u0010\u0000\u11ab\u02ac\u0001\u0000\u0000\u0000"+ + "\u11ac\u11ad\u0003\u001d\u000e\u0000\u11ad\u11ae\u0003!\u0010\u0000\u11ae"+ + "\u02ae\u0001\u0000\u0000\u0000\u11af\u11b0\u0003\u001d\u000e\u0000\u11b0"+ + "\u11b1\u0003#\u0011\u0000\u11b1\u11b2\u0003\u0007\u0003\u0000\u11b2\u11b3"+ + "\u0003\r\u0006\u0000\u11b3\u02b0\u0001\u0000\u0000\u0000\u11b4\u11b5\u0003"+ + "\u001d\u000e\u0000\u11b5\u11b6\u0003#\u0011\u0000\u11b6\u11b7\u0003\u000b"+ + "\u0005\u0000\u11b7\u11b8\u0003\u0007\u0003\u0000\u11b8\u11b9\u0003\u001d"+ + "\u000e\u0000\u11b9\u02b2\u0001\u0000\u0000\u0000\u11ba\u11bb\u0003\u001d"+ + "\u000e\u0000\u11bb\u11bc\u0003#\u0011\u0000\u11bc\u11bd\u0003\u000b\u0005"+ + "\u0000\u11bd\u11be\u0003\u0007\u0003\u0000\u11be\u11bf\u0003\u001d\u000e"+ + "\u0000\u11bf\u11c0\u0003-\u0016\u0000\u11c0\u11c1\u0003\u0017\u000b\u0000"+ + "\u11c1\u11c2\u0003\u001f\u000f\u0000\u11c2\u11c3\u0003\u000f\u0007\u0000"+ + "\u11c3\u02b4\u0001\u0000\u0000\u0000\u11c4\u11c5\u0003\u001d\u000e\u0000"+ + "\u11c5\u11c6\u0003#\u0011\u0000\u11c6\u11c7\u0003\u000b\u0005\u0000\u11c7"+ + "\u11c8\u0003\u0007\u0003\u0000\u11c8\u11c9\u0003\u001d\u000e\u0000\u11c9"+ + "\u11ca\u0003-\u0016\u0000\u11ca\u11cb\u0003\u0017\u000b\u0000\u11cb\u11cc"+ + "\u0003\u001f\u000f\u0000\u11cc\u11cd\u0003\u000f\u0007\u0000\u11cd\u11ce"+ + "\u0003+\u0015\u0000\u11ce\u11cf\u0003-\u0016\u0000\u11cf\u11d0\u0003\u0007"+ + "\u0003\u0000\u11d0\u11d1\u0003\u001f\u000f\u0000\u11d1\u11d2\u0003%\u0012"+ + "\u0000\u11d2\u02b6\u0001\u0000\u0000\u0000\u11d3\u11d4\u0003\u001d\u000e"+ + "\u0000\u11d4\u11d5\u0003#\u0011\u0000\u11d5\u11d6\u0003\u000b\u0005\u0000"+ + "\u11d6\u11d7\u0003\u0007\u0003\u0000\u11d7\u11d8\u0003-\u0016\u0000\u11d8"+ + "\u11d9\u0003\u0017\u000b\u0000\u11d9\u11da\u0003#\u0011\u0000\u11da\u11db"+ + "\u0003!\u0010\u0000\u11db\u02b8\u0001\u0000\u0000\u0000\u11dc\u11dd\u0003"+ + "\u001d\u000e\u0000\u11dd\u11de\u0003#\u0011\u0000\u11de\u11df\u0003\u000b"+ + "\u0005\u0000\u11df\u11e0\u0003\u0007\u0003\u0000\u11e0\u11e1\u0003-\u0016"+ + "\u0000\u11e1\u11e2\u0003#\u0011\u0000\u11e2\u11e3\u0003)\u0014\u0000\u11e3"+ + "\u02ba\u0001\u0000\u0000\u0000\u11e4\u11e5\u0003\u001d\u000e\u0000\u11e5"+ + "\u11e6\u0003#\u0011\u0000\u11e6\u11e7\u0003\u000b\u0005\u0000\u11e7\u11e8"+ + "\u0003\u001b\r\u0000\u11e8\u02bc\u0001\u0000\u0000\u0000\u11e9\u11ea\u0003"+ + "\u001d\u000e\u0000\u11ea\u11eb\u0003#\u0011\u0000\u11eb\u11ec\u0003\u000b"+ + "\u0005\u0000\u11ec\u11ed\u0003\u001b\r\u0000\u11ed\u11ee\u0003\u000f\u0007"+ + "\u0000\u11ee\u11ef\u0003\r\u0006\u0000\u11ef\u02be\u0001\u0000\u0000\u0000"+ + "\u11f0\u11f1\u0003\u001d\u000e\u0000\u11f1\u11f2\u0003#\u0011\u0000\u11f2"+ + "\u11f3\u00033\u0019\u0000\u11f3\u11f4\u0003\u000f\u0007\u0000\u11f4\u11f5"+ + "\u0003)\u0014\u0000\u11f5\u02c0\u0001\u0000\u0000\u0000\u11f6\u11f7\u0003"+ + "\u001f\u000f\u0000\u11f7\u02c2\u0001\u0000\u0000\u0000\u11f8\u11f9\u0003"+ + "\u001f\u000f\u0000\u11f9\u11fa\u0003\u0007\u0003\u0000\u11fa\u11fb\u0003"+ + "\u0017\u000b\u0000\u11fb\u11fc\u0003!\u0010\u0000\u11fc\u02c4\u0001\u0000"+ + "\u0000\u0000\u11fd\u11fe\u0003\u001f\u000f\u0000\u11fe\u11ff\u0003\u0007"+ + "\u0003\u0000\u11ff\u1200\u0003%\u0012\u0000\u1200\u02c6\u0001\u0000\u0000"+ + "\u0000\u1201\u1202\u0003\u001f\u000f\u0000\u1202\u1203\u0003\u0007\u0003"+ + "\u0000\u1203\u1204\u0003%\u0012\u0000\u1204\u1205\u0003%\u0012\u0000\u1205"+ + "\u1206\u0003\u0017\u000b\u0000\u1206\u1207\u0003!\u0010\u0000\u1207\u1208"+ + "\u0003\u0013\t\u0000\u1208\u02c8\u0001\u0000\u0000\u0000\u1209\u120a\u0003"+ + "\u001f\u000f\u0000\u120a\u120b\u0003\u0007\u0003\u0000\u120b\u120c\u0003"+ + "-\u0016\u0000\u120c\u120d\u0003\u000b\u0005\u0000\u120d\u120e\u0003\u0015"+ + "\n\u0000\u120e\u02ca\u0001\u0000\u0000\u0000\u120f\u1210\u0003\u001f\u000f"+ + "\u0000\u1210\u1211\u0003\u0007\u0003\u0000\u1211\u1212\u0003-\u0016\u0000"+ + "\u1212\u1213\u0003\u000b\u0005\u0000\u1213\u1214\u0003\u0015\n\u0000\u1214"+ + "\u1215\u0005_\u0000\u0000\u1215\u1216\u0003+\u0015\u0000\u1216\u1217\u0003"+ + "\u0017\u000b\u0000\u1217\u1218\u0003\u001f\u000f\u0000\u1218\u1219\u0003"+ + "%\u0012\u0000\u1219\u121a\u0003\u001d\u000e\u0000\u121a\u121b\u0003\u000f"+ + "\u0007\u0000\u121b\u02cc\u0001\u0000\u0000\u0000\u121c\u121d\u0003\u001f"+ + "\u000f\u0000\u121d\u121e\u0003\u0007\u0003\u0000\u121e\u121f\u0003-\u0016"+ + "\u0000\u121f\u1220\u0003\u000b\u0005\u0000\u1220\u1221\u0003\u0015\n\u0000"+ + "\u1221\u1222\u0003\u000f\u0007\u0000\u1222\u1223\u0003\r\u0006\u0000\u1223"+ + "\u02ce\u0001\u0000\u0000\u0000\u1224\u1225\u0003\u001f\u000f\u0000\u1225"+ + "\u1226\u0003\u0007\u0003\u0000\u1226\u1227\u00035\u001a\u0000\u1227\u02d0"+ + "\u0001\u0000\u0000\u0000\u1228\u1229\u0003\u001f\u000f\u0000\u1229\u122a"+ + "\u0003\u0007\u0003\u0000\u122a\u122b\u00035\u001a\u0000\u122b\u122c\u0003"+ + "1\u0018\u0000\u122c\u122d\u0003\u0007\u0003\u0000\u122d\u122e\u0003\u001d"+ + "\u000e\u0000\u122e\u122f\u0003/\u0017\u0000\u122f\u1230\u0003\u000f\u0007"+ + "\u0000\u1230\u02d2\u0001\u0000\u0000\u0000\u1231\u1232\u0003\u001f\u000f"+ + "\u0000\u1232\u1233\u0003\u000f\u0007\u0000\u1233\u1234\u0003\u001f\u000f"+ + "\u0000\u1234\u1235\u0003\t\u0004\u0000\u1235\u1236\u0003\u000f\u0007\u0000"+ + "\u1236\u1237\u0003)\u0014\u0000\u1237\u02d4\u0001\u0000\u0000\u0000\u1238"+ + "\u1239\u0003\u001f\u000f\u0000\u1239\u123a\u0003\u000f\u0007\u0000\u123a"+ + "\u123b\u0003)\u0014\u0000\u123b\u123c\u0003\u0013\t\u0000\u123c\u123d"+ + "\u0003\u000f\u0007\u0000\u123d\u02d6\u0001\u0000\u0000\u0000\u123e\u123f"+ + "\u0003\u001f\u000f\u0000\u123f\u1240\u0003\u000f\u0007\u0000\u1240\u1241"+ + "\u0003+\u0015\u0000\u1241\u1242\u0003+\u0015\u0000\u1242\u1243\u0003\u0007"+ + "\u0003\u0000\u1243\u1244\u0003\u0013\t\u0000\u1244\u1245\u0003\u000f\u0007"+ + "\u0000\u1245\u1246\u0005_\u0000\u0000\u1246\u1247\u0003\u001d\u000e\u0000"+ + "\u1247\u1248\u0003\u000f\u0007\u0000\u1248\u1249\u0003!\u0010\u0000\u1249"+ + "\u124a\u0003\u0013\t\u0000\u124a\u124b\u0003-\u0016\u0000\u124b\u124c"+ + "\u0003\u0015\n\u0000\u124c\u02d8\u0001\u0000\u0000\u0000\u124d\u124e\u0003"+ + "\u001f\u000f\u0000\u124e\u124f\u0003\u000f\u0007\u0000\u124f\u1250\u0003"+ + "+\u0015\u0000\u1250\u1251\u0003+\u0015\u0000\u1251\u1252\u0003\u0007\u0003"+ + "\u0000\u1252\u1253\u0003\u0013\t\u0000\u1253\u1254\u0003\u000f\u0007\u0000"+ + "\u1254\u1255\u0005_\u0000\u0000\u1255\u1256\u0003#\u0011\u0000\u1256\u1257"+ + "\u0003\u000b\u0005\u0000\u1257\u1258\u0003-\u0016\u0000\u1258\u1259\u0003"+ + "\u000f\u0007\u0000\u1259\u125a\u0003-\u0016\u0000\u125a\u125b\u0005_\u0000"+ + "\u0000\u125b\u125c\u0003\u001d\u000e\u0000\u125c\u125d\u0003\u000f\u0007"+ + "\u0000\u125d\u125e\u0003!\u0010\u0000\u125e\u125f\u0003\u0013\t\u0000"+ + "\u125f\u1260\u0003-\u0016\u0000\u1260\u1261\u0003\u0015\n\u0000\u1261"+ + "\u02da\u0001\u0000\u0000\u0000\u1262\u1263\u0003\u001f\u000f\u0000\u1263"+ + "\u1264\u0003\u000f\u0007\u0000\u1264\u1265\u0003+\u0015\u0000\u1265\u1266"+ + "\u0003+\u0015\u0000\u1266\u1267\u0003\u0007\u0003\u0000\u1267\u1268\u0003"+ + "\u0013\t\u0000\u1268\u1269\u0003\u000f\u0007\u0000\u1269\u126a\u0005_"+ + "\u0000\u0000\u126a\u126b\u0003-\u0016\u0000\u126b\u126c\u0003\u000f\u0007"+ + "\u0000\u126c\u126d\u00035\u001a\u0000\u126d\u126e\u0003-\u0016\u0000\u126e"+ + "\u02dc\u0001\u0000\u0000\u0000\u126f\u1270\u0003\u001f\u000f\u0000\u1270"+ + "\u1271\u0003\u000f\u0007\u0000\u1271\u1272\u0003-\u0016\u0000\u1272\u1273"+ + "\u0003\u0015\n\u0000\u1273\u1274\u0003#\u0011\u0000\u1274\u1275\u0003"+ + "\r\u0006\u0000\u1275\u02de\u0001\u0000\u0000\u0000\u1276\u1277\u0003\u001f"+ + "\u000f\u0000\u1277\u1278\u0003\u0017\u000b\u0000\u1278\u1279\u0003!\u0010"+ + "\u0000\u1279\u02e0\u0001\u0000\u0000\u0000\u127a\u127b\u0003\u001f\u000f"+ + "\u0000\u127b\u127c\u0003\u0017\u000b\u0000\u127c\u127d\u0003!\u0010\u0000"+ + "\u127d\u127e\u0003/\u0017\u0000\u127e\u127f\u0003-\u0016\u0000\u127f\u1280"+ + "\u0003\u000f\u0007\u0000\u1280\u02e2\u0001\u0000\u0000\u0000\u1281\u1282"+ + "\u0003\u001f\u000f\u0000\u1282\u1283\u0003\u0017\u000b\u0000\u1283\u1284"+ + "\u0003!\u0010\u0000\u1284\u1285\u00031\u0018\u0000\u1285\u1286\u0003\u0007"+ + "\u0003\u0000\u1286\u1287\u0003\u001d\u000e\u0000\u1287\u1288\u0003/\u0017"+ + "\u0000\u1288\u1289\u0003\u000f\u0007\u0000\u1289\u02e4\u0001\u0000\u0000"+ + "\u0000\u128a\u128b\u0003\u001f\u000f\u0000\u128b\u128c\u0003#\u0011\u0000"+ + "\u128c\u128d\u0003\r\u0006\u0000\u128d\u02e6\u0001\u0000\u0000\u0000\u128e"+ + "\u128f\u0003\u001f\u000f\u0000\u128f\u1290\u0003#\u0011\u0000\u1290\u1291"+ + "\u0003\r\u0006\u0000\u1291\u1292\u0003\u000f\u0007\u0000\u1292\u02e8\u0001"+ + "\u0000\u0000\u0000\u1293\u1294\u0003\u001f\u000f\u0000\u1294\u1295\u0003"+ + "#\u0011\u0000\u1295\u1296\u0003\r\u0006\u0000\u1296\u1297\u0003\u0017"+ + "\u000b\u0000\u1297\u1298\u0003\u0011\b\u0000\u1298\u1299\u0003\u0017\u000b"+ + "\u0000\u1299\u129a\u0003\u000f\u0007\u0000\u129a\u129b\u0003+\u0015\u0000"+ + "\u129b\u02ea\u0001\u0000\u0000\u0000\u129c\u129d\u0003\u001f\u000f\u0000"+ + "\u129d\u129e\u0003#\u0011\u0000\u129e\u129f\u0003\r\u0006\u0000\u129f"+ + "\u12a0\u0003\u0017\u000b\u0000\u12a0\u12a1\u0003\u0011\b\u0000\u12a1\u12a2"+ + "\u00037\u001b\u0000\u12a2\u02ec\u0001\u0000\u0000\u0000\u12a3\u12a4\u0003"+ + "\u001f\u000f\u0000\u12a4\u12a5\u0003#\u0011\u0000\u12a5\u12a6\u0003\r"+ + "\u0006\u0000\u12a6\u12a7\u0003/\u0017\u0000\u12a7\u12a8\u0003\u001d\u000e"+ + "\u0000\u12a8\u12a9\u0003\u000f\u0007\u0000\u12a9\u02ee\u0001\u0000\u0000"+ + "\u0000\u12aa\u12ab\u0003\u001f\u000f\u0000\u12ab\u12ac\u0003#\u0011\u0000"+ + "\u12ac\u12ad\u0003!\u0010\u0000\u12ad\u12ae\u0003-\u0016\u0000\u12ae\u12af"+ + "\u0003\u0015\n\u0000\u12af\u02f0\u0001\u0000\u0000\u0000\u12b0\u12b1\u0003"+ + "\u001f\u000f\u0000\u12b1\u12b2\u0003#\u0011\u0000\u12b2\u12b3\u0003)\u0014"+ + "\u0000\u12b3\u12b4\u0003\u000f\u0007\u0000\u12b4\u02f2\u0001\u0000\u0000"+ + "\u0000\u12b5\u12b6\u0003\u001f\u000f\u0000\u12b6\u12b7\u0003#\u0011\u0000"+ + "\u12b7\u12b8\u00031\u0018\u0000\u12b8\u12b9\u0003\u000f\u0007\u0000\u12b9"+ + "\u02f4\u0001\u0000\u0000\u0000\u12ba\u12bb\u0003\u001f\u000f\u0000\u12bb"+ + "\u12bc\u0003/\u0017\u0000\u12bc\u12bd\u0003\u001d\u000e\u0000\u12bd\u12be"+ + "\u0003-\u0016\u0000\u12be\u12bf\u0003\u0017\u000b\u0000\u12bf\u12c0\u0003"+ + "+\u0015\u0000\u12c0\u12c1\u0003\u000f\u0007\u0000\u12c1\u12c2\u0003-\u0016"+ + "\u0000\u12c2\u02f6\u0001\u0000\u0000\u0000\u12c3\u12c4\u0003\u001f\u000f"+ + "\u0000\u12c4\u12c5\u0003/\u0017\u0000\u12c5\u12c6\u0003\u001f\u000f\u0000"+ + "\u12c6\u12c7\u0003%\u0012\u0000\u12c7\u12c8\u0003+\u0015\u0000\u12c8\u02f8"+ + "\u0001\u0000\u0000\u0000\u12c9\u12ca\u0003!\u0010\u0000\u12ca\u12cb\u0003"+ + "\u0007\u0003\u0000\u12cb\u12cc\u0003\u001f\u000f\u0000\u12cc\u12cd\u0003"+ + "\u000f\u0007\u0000\u12cd\u02fa\u0001\u0000\u0000\u0000\u12ce\u12cf\u0003"+ + "!\u0010\u0000\u12cf\u12d0\u0003\u0007\u0003\u0000\u12d0\u12d1\u0003\u001f"+ + "\u000f\u0000\u12d1\u12d2\u0003\u000f\u0007\u0000\u12d2\u12d3\u0003+\u0015"+ + "\u0000\u12d3\u02fc\u0001\u0000\u0000\u0000\u12d4\u12d5\u0003!\u0010\u0000"+ + "\u12d5\u12d6\u0003\u0007\u0003\u0000\u12d6\u12d7\u0003-\u0016\u0000\u12d7"+ + "\u12d8\u0003\u0017\u000b\u0000\u12d8\u12d9\u0003#\u0011\u0000\u12d9\u12da"+ + "\u0003!\u0010\u0000\u12da\u12db\u0003\u0007\u0003\u0000\u12db\u12dc\u0003"+ + "\u001d\u000e\u0000\u12dc\u02fe\u0001\u0000\u0000\u0000\u12dd\u12de\u0003"+ + "!\u0010\u0000\u12de\u12df\u0003\u0007\u0003\u0000\u12df\u12e0\u0003-\u0016"+ + "\u0000\u12e0\u12e1\u0003/\u0017\u0000\u12e1\u12e2\u0003)\u0014\u0000\u12e2"+ + "\u12e3\u0003\u0007\u0003\u0000\u12e3\u12e4\u0003\u001d\u000e\u0000\u12e4"+ + "\u0300\u0001\u0000\u0000\u0000\u12e5\u12e6\u0003!\u0010\u0000\u12e6\u12e7"+ + "\u0003\u000b\u0005\u0000\u12e7\u12e8\u0003\u0015\n\u0000\u12e8\u12e9\u0003"+ + "\u0007\u0003\u0000\u12e9\u12ea\u0003)\u0014\u0000\u12ea\u0302\u0001\u0000"+ + "\u0000\u0000\u12eb\u12ec\u0003!\u0010\u0000\u12ec\u12ed\u0003\u000b\u0005"+ + "\u0000\u12ed\u12ee\u0003\u001d\u000e\u0000\u12ee\u12ef\u0003#\u0011\u0000"+ + "\u12ef\u12f0\u0003\t\u0004\u0000\u12f0\u0304\u0001\u0000\u0000\u0000\u12f1"+ + "\u12f2\u0003!\u0010\u0000\u12f2\u12f3\u0003\u000f\u0007\u0000\u12f3\u12f4"+ + "\u0003+\u0015\u0000\u12f4\u12f5\u0003-\u0016\u0000\u12f5\u12f6\u0003\u0017"+ + "\u000b\u0000\u12f6\u12f7\u0003!\u0010\u0000\u12f7\u12f8\u0003\u0013\t"+ + "\u0000\u12f8\u0306\u0001\u0000\u0000\u0000\u12f9\u12fa\u0003!\u0010\u0000"+ + "\u12fa\u12fb\u0003\u000f\u0007\u0000\u12fb\u12fc\u00033\u0019\u0000\u12fc"+ + "\u0308\u0001\u0000\u0000\u0000\u12fd\u12fe\u0003!\u0010\u0000\u12fe\u12ff"+ + "\u0003\u000f\u0007\u0000\u12ff\u1300\u00035\u001a\u0000\u1300\u1301\u0003"+ + "-\u0016\u0000\u1301\u030a\u0001\u0000\u0000\u0000\u1302\u1303\u0003!\u0010"+ + "\u0000\u1303\u1304\u0003#\u0011\u0000\u1304\u030c\u0001\u0000\u0000\u0000"+ + "\u1305\u1306\u0003!\u0010\u0000\u1306\u1307\u0003#\u0011\u0000\u1307\u1308"+ + "\u0003\u000b\u0005\u0000\u1308\u1309\u0003)\u0014\u0000\u1309\u130a\u0003"+ + "\u000f\u0007\u0000\u130a\u130b\u0003\u0007\u0003\u0000\u130b\u130c\u0003"+ + "-\u0016\u0000\u130c\u130d\u0003\u000f\u0007\u0000\u130d\u130e\u0003\r"+ + "\u0006\u0000\u130e\u130f\u0003\t\u0004\u0000\u130f\u030e\u0001\u0000\u0000"+ + "\u0000\u1310\u1311\u0003!\u0010\u0000\u1311\u1312\u0003#\u0011\u0000\u1312"+ + "\u1313\u0003\u000b\u0005\u0000\u1313\u1314\u0003)\u0014\u0000\u1314\u1315"+ + "\u0003\u000f\u0007\u0000\u1315\u1316\u0003\u0007\u0003\u0000\u1316\u1317"+ + "\u0003-\u0016\u0000\u1317\u1318\u0003\u000f\u0007\u0000\u1318\u1319\u0003"+ + "/\u0017\u0000\u1319\u131a\u0003+\u0015\u0000\u131a\u131b\u0003\u000f\u0007"+ + "\u0000\u131b\u131c\u0003)\u0014\u0000\u131c\u0310\u0001\u0000\u0000\u0000"+ + "\u131d\u131e\u0003!\u0010\u0000\u131e\u131f\u0003#\u0011\u0000\u131f\u1320"+ + "\u0003!\u0010\u0000\u1320\u1321\u0003\u000f\u0007\u0000\u1321\u0312\u0001"+ + "\u0000\u0000\u0000\u1322\u1323\u0003!\u0010\u0000\u1323\u1324\u0003#\u0011"+ + "\u0000\u1324\u1325\u0003)\u0014\u0000\u1325\u1326\u0003\u001f\u000f\u0000"+ + "\u1326\u1327\u0003\u0007\u0003\u0000\u1327\u1328\u0003\u001d\u000e\u0000"+ + "\u1328\u1329\u0003\u0017\u000b\u0000\u1329\u132a\u00039\u001c\u0000\u132a"+ + "\u132b\u0003\u000f\u0007\u0000\u132b\u0314\u0001\u0000\u0000\u0000\u132c"+ + "\u132d\u0003!\u0010\u0000\u132d\u132e\u0003#\u0011\u0000\u132e\u132f\u0003"+ + ")\u0014\u0000\u132f\u1330\u0003\u001f\u000f\u0000\u1330\u1331\u0003\u0007"+ + "\u0003\u0000\u1331\u1332\u0003\u001d\u000e\u0000\u1332\u1333\u0003\u0017"+ + "\u000b\u0000\u1333\u1334\u00039\u001c\u0000\u1334\u1335\u0003\u000f\u0007"+ + "\u0000\u1335\u1336\u0003\r\u0006\u0000\u1336\u0316\u0001\u0000\u0000\u0000"+ + "\u1337\u1338\u0003!\u0010\u0000\u1338\u1339\u0003#\u0011\u0000\u1339\u133a"+ + "\u0003-\u0016\u0000\u133a\u0318\u0001\u0000\u0000\u0000\u133b\u133c\u0003"+ + "!\u0010\u0000\u133c\u133d\u0003#\u0011\u0000\u133d\u133e\u0003-\u0016"+ + "\u0000\u133e\u133f\u0003\u0015\n\u0000\u133f\u1340\u0003\u0017\u000b\u0000"+ + "\u1340\u1341\u0003!\u0010\u0000\u1341\u1342\u0003\u0013\t\u0000\u1342"+ + "\u031a\u0001\u0000\u0000\u0000\u1343\u1344\u0003!\u0010\u0000\u1344\u1345"+ + "\u0003#\u0011\u0000\u1345\u1346\u0003-\u0016\u0000\u1346\u1347\u0003\u0017"+ + "\u000b\u0000\u1347\u1348\u0003\u0011\b\u0000\u1348\u1349\u00037\u001b"+ + "\u0000\u1349\u031c\u0001\u0000\u0000\u0000\u134a\u134b\u0003!\u0010\u0000"+ + "\u134b\u134c\u0003#\u0011\u0000\u134c\u134d\u0003-\u0016\u0000\u134d\u134e"+ + "\u0003!\u0010\u0000\u134e\u134f\u0003/\u0017\u0000\u134f\u1350\u0003\u001d"+ + "\u000e\u0000\u1350\u1351\u0003\u001d\u000e\u0000\u1351\u031e\u0001\u0000"+ + "\u0000\u0000\u1352\u1353\u0003!\u0010\u0000\u1353\u1354\u0003#\u0011\u0000"+ + "\u1354\u1355\u00033\u0019\u0000\u1355\u1356\u0003\u0007\u0003\u0000\u1356"+ + "\u1357\u0003\u0017\u000b\u0000\u1357\u1358\u0003-\u0016\u0000\u1358\u0320"+ + "\u0001\u0000\u0000\u0000\u1359\u135a\u0003!\u0010\u0000\u135a\u135b\u0003"+ + "/\u0017\u0000\u135b\u135c\u0003\u001d\u000e\u0000\u135c\u135d\u0003\u001d"+ + "\u000e\u0000\u135d\u0322\u0001\u0000\u0000\u0000\u135e\u135f\u0003!\u0010"+ + "\u0000\u135f\u1360\u0003/\u0017\u0000\u1360\u1361\u0003\u001d\u000e\u0000"+ + "\u1361\u1362\u0003\u001d\u000e\u0000\u1362\u1363\u0003\u0007\u0003\u0000"+ + "\u1363\u1364\u0003\t\u0004\u0000\u1364\u1365\u0003\u001d\u000e\u0000\u1365"+ + "\u1366\u0003\u000f\u0007\u0000\u1366\u0324\u0001\u0000\u0000\u0000\u1367"+ + "\u1368\u0003!\u0010\u0000\u1368\u1369\u0003/\u0017\u0000\u1369\u136a\u0003"+ + "\u001d\u000e\u0000\u136a\u136b\u0003\u001d\u000e\u0000\u136b\u136c\u0003"+ + "\u0017\u000b\u0000\u136c\u136d\u0003\u0011\b\u0000\u136d\u0326\u0001\u0000"+ + "\u0000\u0000\u136e\u136f\u0003!\u0010\u0000\u136f\u1370\u0003/\u0017\u0000"+ + "\u1370\u1371\u0003\u001d\u000e\u0000\u1371\u1372\u0003\u001d\u000e\u0000"+ + "\u1372\u1373\u0003+\u0015\u0000\u1373\u0328\u0001\u0000\u0000\u0000\u1374"+ + "\u1375\u0003!\u0010\u0000\u1375\u1376\u0003/\u0017\u0000\u1376\u1377\u0003"+ + "\u001f\u000f\u0000\u1377\u1378\u0003\t\u0004\u0000\u1378\u1379\u0003\u000f"+ + "\u0007\u0000\u1379\u137a\u0003)\u0014\u0000\u137a\u032a\u0001\u0000\u0000"+ + "\u0000\u137b\u137c\u0003!\u0010\u0000\u137c\u137d\u0003/\u0017\u0000\u137d"+ + "\u137e\u0003\u001f\u000f\u0000\u137e\u137f\u0003\u000f\u0007\u0000\u137f"+ + "\u1380\u0003)\u0014\u0000\u1380\u1381\u0003\u0017\u000b\u0000\u1381\u1382"+ + "\u0003\u000b\u0005\u0000\u1382\u032c\u0001\u0000\u0000\u0000\u1383\u1384"+ + "\u0003#\u0011\u0000\u1384\u1385\u0003\t\u0004\u0000\u1385\u1386\u0003"+ + "\u0019\f\u0000\u1386\u1387\u0003\u000f\u0007\u0000\u1387\u1388\u0003\u000b"+ + "\u0005\u0000\u1388\u1389\u0003-\u0016\u0000\u1389\u032e\u0001\u0000\u0000"+ + "\u0000\u138a\u138b\u0003#\u0011\u0000\u138b\u138c\u0003\u000b\u0005\u0000"+ + "\u138c\u138d\u0003-\u0016\u0000\u138d\u138e\u0003\u000f\u0007\u0000\u138e"+ + "\u138f\u0003-\u0016\u0000\u138f\u1390\u0005_\u0000\u0000\u1390\u1391\u0003"+ + "\u001d\u000e\u0000\u1391\u1392\u0003\u000f\u0007\u0000\u1392\u1393\u0003"+ + "!\u0010\u0000\u1393\u1394\u0003\u0013\t\u0000\u1394\u1395\u0003-\u0016"+ + "\u0000\u1395\u1396\u0003\u0015\n\u0000\u1396\u0330\u0001\u0000\u0000\u0000"+ + "\u1397\u1398\u0003#\u0011\u0000\u1398\u1399\u0003\u000b\u0005\u0000\u1399"+ + "\u139a\u0003-\u0016\u0000\u139a\u139b\u0003\u000f\u0007\u0000\u139b\u139c"+ + "\u0003-\u0016\u0000\u139c\u139d\u0003+\u0015\u0000\u139d\u0332\u0001\u0000"+ + "\u0000\u0000\u139e\u139f\u0003#\u0011\u0000\u139f\u13a0\u0003\u0011\b"+ + "\u0000\u13a0\u0334\u0001\u0000\u0000\u0000\u13a1\u13a2\u0003#\u0011\u0000"+ + "\u13a2\u13a3\u0003\u0011\b\u0000\u13a3\u13a4\u0003\u0011\b\u0000\u13a4"+ + "\u0336\u0001\u0000\u0000\u0000\u13a5\u13a6\u0003#\u0011\u0000\u13a6\u13a7"+ + "\u0003\u0011\b\u0000\u13a7\u13a8\u0003\u0011\b\u0000\u13a8\u13a9\u0003"+ + "+\u0015\u0000\u13a9\u13aa\u0003\u000f\u0007\u0000\u13aa\u13ab\u0003-\u0016"+ + "\u0000\u13ab\u0338\u0001\u0000\u0000\u0000\u13ac\u13ad\u0003#\u0011\u0000"+ + "\u13ad\u13ae\u0003\u0017\u000b\u0000\u13ae\u13af\u0003\r\u0006\u0000\u13af"+ + "\u13b0\u0003+\u0015\u0000\u13b0\u033a\u0001\u0000\u0000\u0000\u13b1\u13b2"+ + "\u0003#\u0011\u0000\u13b2\u13b3\u0003\u001d\u000e\u0000\u13b3\u13b4\u0003"+ + "\r\u0006\u0000\u13b4\u033c\u0001\u0000\u0000\u0000\u13b5\u13b6\u0003#"+ + "\u0011\u0000\u13b6\u13b7\u0003!\u0010\u0000\u13b7\u033e\u0001\u0000\u0000"+ + "\u0000\u13b8\u13b9\u0003#\u0011\u0000\u13b9\u13ba\u0003!\u0010\u0000\u13ba"+ + "\u13bb\u0003\u001d\u000e\u0000\u13bb\u13bc\u00037\u001b\u0000\u13bc\u0340"+ + "\u0001\u0000\u0000\u0000\u13bd\u13be\u0003#\u0011\u0000\u13be\u13bf\u0003"+ + "%\u0012\u0000\u13bf\u13c0\u0003\u000f\u0007\u0000\u13c0\u13c1\u0003!\u0010"+ + "\u0000\u13c1\u0342\u0001\u0000\u0000\u0000\u13c2\u13c3\u0003#\u0011\u0000"+ + "\u13c3\u13c4\u0003%\u0012\u0000\u13c4\u13c5\u0003\u000f\u0007\u0000\u13c5"+ + "\u13c6\u0003)\u0014\u0000\u13c6\u13c7\u0003\u0007\u0003\u0000\u13c7\u13c8"+ + "\u0003-\u0016\u0000\u13c8\u13c9\u0003\u0017\u000b\u0000\u13c9\u13ca\u0003"+ + "#\u0011\u0000\u13ca\u13cb\u0003!\u0010\u0000\u13cb\u0344\u0001\u0000\u0000"+ + "\u0000\u13cc\u13cd\u0003#\u0011\u0000\u13cd\u13ce\u0003%\u0012\u0000\u13ce"+ + "\u13cf\u0003\u000f\u0007\u0000\u13cf\u13d0\u0003)\u0014\u0000\u13d0\u13d1"+ + "\u0003\u0007\u0003\u0000\u13d1\u13d2\u0003-\u0016\u0000\u13d2\u13d3\u0003"+ + "#\u0011\u0000\u13d3\u13d4\u0003)\u0014\u0000\u13d4\u0346\u0001\u0000\u0000"+ + "\u0000\u13d5\u13d6\u0003#\u0011\u0000\u13d6\u13d7\u0003%\u0012\u0000\u13d7"+ + "\u13d8\u0003-\u0016\u0000\u13d8\u13d9\u0003\u0017\u000b\u0000\u13d9\u13da"+ + "\u0003#\u0011\u0000\u13da\u13db\u0003!\u0010\u0000\u13db\u0348\u0001\u0000"+ + "\u0000\u0000\u13dc\u13dd\u0003#\u0011\u0000\u13dd\u13de\u0003%\u0012\u0000"+ + "\u13de\u13df\u0003-\u0016\u0000\u13df\u13e0\u0003\u0017\u000b\u0000\u13e0"+ + "\u13e1\u0003#\u0011\u0000\u13e1\u13e2\u0003!\u0010\u0000\u13e2\u13e3\u0003"+ + "+\u0015\u0000\u13e3\u034a\u0001\u0000\u0000\u0000\u13e4\u13e5\u0003#\u0011"+ + "\u0000\u13e5\u13e6\u0003)\u0014\u0000\u13e6\u034c\u0001\u0000\u0000\u0000"+ + "\u13e7\u13e8\u0003#\u0011\u0000\u13e8\u13e9\u0003)\u0014\u0000\u13e9\u13ea"+ + "\u0003\r\u0006\u0000\u13ea\u13eb\u0003\u000f\u0007\u0000\u13eb\u13ec\u0003"+ + ")\u0014\u0000\u13ec\u034e\u0001\u0000\u0000\u0000\u13ed\u13ee\u0003#\u0011"+ + "\u0000\u13ee\u13ef\u0003)\u0014\u0000\u13ef\u13f0\u0003\r\u0006\u0000"+ + "\u13f0\u13f1\u0003\u000f\u0007\u0000\u13f1\u13f2\u0003)\u0014\u0000\u13f2"+ + "\u13f3\u0003\u0017\u000b\u0000\u13f3\u13f4\u0003!\u0010\u0000\u13f4\u13f5"+ + "\u0003\u0013\t\u0000\u13f5\u0350\u0001\u0000\u0000\u0000\u13f6\u13f7\u0003"+ + "#\u0011\u0000\u13f7\u13f8\u0003)\u0014\u0000\u13f8\u13f9\u0003\r\u0006"+ + "\u0000\u13f9\u13fa\u0003\u0017\u000b\u0000\u13fa\u13fb\u0003!\u0010\u0000"+ + "\u13fb\u13fc\u0003\u0007\u0003\u0000\u13fc\u13fd\u0003\u001d\u000e\u0000"+ + "\u13fd\u13fe\u0003\u0017\u000b\u0000\u13fe\u13ff\u0003-\u0016\u0000\u13ff"+ + "\u1400\u00037\u001b\u0000\u1400\u0352\u0001\u0000\u0000\u0000\u1401\u1402"+ + "\u0003#\u0011\u0000\u1402\u1403\u0003-\u0016\u0000\u1403\u1404\u0003\u0015"+ + "\n\u0000\u1404\u1405\u0003\u000f\u0007\u0000\u1405\u1406\u0003)\u0014"+ + "\u0000\u1406\u1407\u0003+\u0015\u0000\u1407\u0354\u0001\u0000\u0000\u0000"+ + "\u1408\u1409\u0003#\u0011\u0000\u1409\u140a\u0003/\u0017\u0000\u140a\u140b"+ + "\u0003-\u0016\u0000\u140b\u0356\u0001\u0000\u0000\u0000\u140c\u140d\u0003"+ + "#\u0011\u0000\u140d\u140e\u0003/\u0017\u0000\u140e\u140f\u0003-\u0016"+ + "\u0000\u140f\u1410\u0003\u000f\u0007\u0000\u1410\u1411\u0003)\u0014\u0000"+ + "\u1411\u0358\u0001\u0000\u0000\u0000\u1412\u1413\u0003#\u0011\u0000\u1413"+ + "\u1414\u0003/\u0017\u0000\u1414\u1415\u0003-\u0016\u0000\u1415\u1416\u0003"+ + "%\u0012\u0000\u1416\u1417\u0003/\u0017\u0000\u1417\u1418\u0003-\u0016"+ + "\u0000\u1418\u035a\u0001\u0000\u0000\u0000\u1419\u141a\u0003#\u0011\u0000"+ + "\u141a\u141b\u00031\u0018\u0000\u141b\u141c\u0003\u000f\u0007\u0000\u141c"+ + "\u141d\u0003)\u0014\u0000\u141d\u035c\u0001\u0000\u0000\u0000\u141e\u141f"+ + "\u0003#\u0011\u0000\u141f\u1420\u00031\u0018\u0000\u1420\u1421\u0003\u000f"+ + "\u0007\u0000\u1421\u1422\u0003)\u0014\u0000\u1422\u1423\u0003\u001d\u000e"+ + "\u0000\u1423\u1424\u0003\u0007\u0003\u0000\u1424\u1425\u0003%\u0012\u0000"+ + "\u1425\u1426\u0003+\u0015\u0000\u1426\u035e\u0001\u0000\u0000\u0000\u1427"+ + "\u1428\u0003#\u0011\u0000\u1428\u1429\u00031\u0018\u0000\u1429\u142a\u0003"+ + "\u000f\u0007\u0000\u142a\u142b\u0003)\u0014\u0000\u142b\u142c\u0003\u001d"+ + "\u000e\u0000\u142c\u142d\u0003\u0007\u0003\u0000\u142d\u142e\u00037\u001b"+ + "\u0000\u142e\u0360\u0001\u0000\u0000\u0000\u142f\u1430\u0003#\u0011\u0000"+ + "\u1430\u1431\u00031\u0018\u0000\u1431\u1432\u0003\u000f\u0007\u0000\u1432"+ + "\u1433\u0003)\u0014\u0000\u1433\u1434\u0003)\u0014\u0000\u1434\u1435\u0003"+ + "\u0017\u000b\u0000\u1435\u1436\u0003\r\u0006\u0000\u1436\u1437\u0003\u0017"+ + "\u000b\u0000\u1437\u1438\u0003!\u0010\u0000\u1438\u1439\u0003\u0013\t"+ + "\u0000\u1439\u0362\u0001\u0000\u0000\u0000\u143a\u143b\u0003#\u0011\u0000"+ + "\u143b\u143c\u00033\u0019\u0000\u143c\u143d\u0003!\u0010\u0000\u143d\u143e"+ + "\u0003\u000f\u0007\u0000\u143e\u143f\u0003)\u0014\u0000\u143f\u0364\u0001"+ + "\u0000\u0000\u0000\u1440\u1441\u0003%\u0012\u0000\u1441\u1442\u0003\u0007"+ + "\u0003\u0000\u1442\u1443\u0003\r\u0006\u0000\u1443\u0366\u0001\u0000\u0000"+ + "\u0000\u1444\u1445\u0003%\u0012\u0000\u1445\u1446\u0003\u0007\u0003\u0000"+ + "\u1446\u1447\u0003)\u0014\u0000\u1447\u1448\u0003\u0007\u0003\u0000\u1448"+ + "\u1449\u0003\u001f\u000f\u0000\u1449\u144a\u0003\u000f\u0007\u0000\u144a"+ + "\u144b\u0003-\u0016\u0000\u144b\u144c\u0003\u000f\u0007\u0000\u144c\u144d"+ + "\u0003)\u0014\u0000\u144d\u0368\u0001\u0000\u0000\u0000\u144e\u144f\u0003"+ + "%\u0012\u0000\u144f\u1450\u0003\u0007\u0003\u0000\u1450\u1451\u0003)\u0014"+ + "\u0000\u1451\u1452\u0003\u0007\u0003\u0000\u1452\u1453\u0003\u001f\u000f"+ + "\u0000\u1453\u1454\u0003\u000f\u0007\u0000\u1454\u1455\u0003-\u0016\u0000"+ + "\u1455\u1456\u0003\u000f\u0007\u0000\u1456\u1457\u0003)\u0014\u0000\u1457"+ + "\u1458\u0005_\u0000\u0000\u1458\u1459\u0003\u001f\u000f\u0000\u1459\u145a"+ + "\u0003#\u0011\u0000\u145a\u145b\u0003\r\u0006\u0000\u145b\u145c\u0003"+ + "\u000f\u0007\u0000\u145c\u036a\u0001\u0000\u0000\u0000\u145d\u145e\u0003"+ + "%\u0012\u0000\u145e\u145f\u0003\u0007\u0003\u0000\u145f\u1460\u0003)\u0014"+ + "\u0000\u1460\u1461\u0003\u0007\u0003\u0000\u1461\u1462\u0003\u001f\u000f"+ + "\u0000\u1462\u1463\u0003\u000f\u0007\u0000\u1463\u1464\u0003-\u0016\u0000"+ + "\u1464\u1465\u0003\u000f\u0007\u0000\u1465\u1466\u0003)\u0014\u0000\u1466"+ + "\u1467\u0005_\u0000\u0000\u1467\u1468\u0003!\u0010\u0000\u1468\u1469\u0003"+ + "\u0007\u0003\u0000\u1469\u146a\u0003\u001f\u000f\u0000\u146a\u146b\u0003"+ + "\u000f\u0007\u0000\u146b\u036c\u0001\u0000\u0000\u0000\u146c\u146d\u0003"+ + "%\u0012\u0000\u146d\u146e\u0003\u0007\u0003\u0000\u146e\u146f\u0003)\u0014"+ + "\u0000\u146f\u1470\u0003\u0007\u0003\u0000\u1470\u1471\u0003\u001f\u000f"+ + "\u0000\u1471\u1472\u0003\u000f\u0007\u0000\u1472\u1473\u0003-\u0016\u0000"+ + "\u1473\u1474\u0003\u000f\u0007\u0000\u1474\u1475\u0003)\u0014\u0000\u1475"+ + "\u1476\u0005_\u0000\u0000\u1476\u1477\u0003#\u0011\u0000\u1477\u1478\u0003"+ + ")\u0014\u0000\u1478\u1479\u0003\r\u0006\u0000\u1479\u147a\u0003\u0017"+ + "\u000b\u0000\u147a\u147b\u0003!\u0010\u0000\u147b\u147c\u0003\u0007\u0003"+ + "\u0000\u147c\u147d\u0003\u001d\u000e\u0000\u147d\u147e\u0005_\u0000\u0000"+ + "\u147e\u147f\u0003%\u0012\u0000\u147f\u1480\u0003#\u0011\u0000\u1480\u1481"+ + "\u0003+\u0015\u0000\u1481\u1482\u0003\u0017\u000b\u0000\u1482\u1483\u0003"+ + "-\u0016\u0000\u1483\u1484\u0003\u0017\u000b\u0000\u1484\u1485\u0003#\u0011"+ + "\u0000\u1485\u1486\u0003!\u0010\u0000\u1486\u036e\u0001\u0000\u0000\u0000"+ + "\u1487\u1488\u0003%\u0012\u0000\u1488\u1489\u0003\u0007\u0003\u0000\u1489"+ + "\u148a\u0003)\u0014\u0000\u148a\u148b\u0003\u0007\u0003\u0000\u148b\u148c"+ + "\u0003\u001f\u000f\u0000\u148c\u148d\u0003\u000f\u0007\u0000\u148d\u148e"+ + "\u0003-\u0016\u0000\u148e\u148f\u0003\u000f\u0007\u0000\u148f\u1490\u0003"+ + ")\u0014\u0000\u1490\u1491\u0005_\u0000\u0000\u1491\u1492\u0003+\u0015"+ + "\u0000\u1492\u1493\u0003%\u0012\u0000\u1493\u1494\u0003\u000f\u0007\u0000"+ + "\u1494\u1495\u0003\u000b\u0005\u0000\u1495\u1496\u0003\u0017\u000b\u0000"+ + "\u1496\u1497\u0003\u0011\b\u0000\u1497\u1498\u0003\u0017\u000b\u0000\u1498"+ + "\u1499\u0003\u000b\u0005\u0000\u1499\u149a\u0005_\u0000\u0000\u149a\u149b"+ + "\u0003\u000b\u0005\u0000\u149b\u149c\u0003\u0007\u0003\u0000\u149c\u149d"+ + "\u0003-\u0016\u0000\u149d\u149e\u0003\u0007\u0003\u0000\u149e\u149f\u0003"+ + "\u001d\u000e\u0000\u149f\u14a0\u0003#\u0011\u0000\u14a0\u14a1\u0003\u0013"+ + "\t\u0000\u14a1\u0370\u0001\u0000\u0000\u0000\u14a2\u14a3\u0003%\u0012"+ + "\u0000\u14a3\u14a4\u0003\u0007\u0003\u0000\u14a4\u14a5\u0003)\u0014\u0000"+ + "\u14a5\u14a6\u0003\u0007\u0003\u0000\u14a6\u14a7\u0003\u001f\u000f\u0000"+ + "\u14a7\u14a8\u0003\u000f\u0007\u0000\u14a8\u14a9\u0003-\u0016\u0000\u14a9"+ + "\u14aa\u0003\u000f\u0007\u0000\u14aa\u14ab\u0003)\u0014\u0000\u14ab\u14ac"+ + "\u0005_\u0000\u0000\u14ac\u14ad\u0003+\u0015\u0000\u14ad\u14ae\u0003%"+ + "\u0012\u0000\u14ae\u14af\u0003\u000f\u0007\u0000\u14af\u14b0\u0003\u000b"+ + "\u0005\u0000\u14b0\u14b1\u0003\u0017\u000b\u0000\u14b1\u14b2\u0003\u0011"+ + "\b\u0000\u14b2\u14b3\u0003\u0017\u000b\u0000\u14b3\u14b4\u0003\u000b\u0005"+ + "\u0000\u14b4\u14b5\u0005_\u0000\u0000\u14b5\u14b6\u0003!\u0010\u0000\u14b6"+ + "\u14b7\u0003\u0007\u0003\u0000\u14b7\u14b8\u0003\u001f\u000f\u0000\u14b8"+ + "\u14b9\u0003\u000f\u0007\u0000\u14b9\u0372\u0001\u0000\u0000\u0000\u14ba"+ + "\u14bb\u0003%\u0012\u0000\u14bb\u14bc\u0003\u0007\u0003\u0000\u14bc\u14bd"+ + "\u0003)\u0014\u0000\u14bd\u14be\u0003\u0007\u0003\u0000\u14be\u14bf\u0003"+ + "\u001f\u000f\u0000\u14bf\u14c0\u0003\u000f\u0007\u0000\u14c0\u14c1\u0003"+ + "-\u0016\u0000\u14c1\u14c2\u0003\u000f\u0007\u0000\u14c2\u14c3\u0003)\u0014"+ + "\u0000\u14c3\u14c4\u0005_\u0000\u0000\u14c4\u14c5\u0003+\u0015\u0000\u14c5"+ + "\u14c6\u0003%\u0012\u0000\u14c6\u14c7\u0003\u000f\u0007\u0000\u14c7\u14c8"+ + "\u0003\u000b\u0005\u0000\u14c8\u14c9\u0003\u0017\u000b\u0000\u14c9\u14ca"+ + "\u0003\u0011\b\u0000\u14ca\u14cb\u0003\u0017\u000b\u0000\u14cb\u14cc\u0003"+ + "\u000b\u0005\u0000\u14cc\u14cd\u0005_\u0000\u0000\u14cd\u14ce\u0003+\u0015"+ + "\u0000\u14ce\u14cf\u0003\u000b\u0005\u0000\u14cf\u14d0\u0003\u0015\n\u0000"+ + "\u14d0\u14d1\u0003\u000f\u0007\u0000\u14d1\u14d2\u0003\u001f\u000f\u0000"+ + "\u14d2\u14d3\u0003\u0007\u0003\u0000\u14d3\u0374\u0001\u0000\u0000\u0000"+ + "\u14d4\u14d5\u0003%\u0012\u0000\u14d5\u14d6\u0003\u0007\u0003\u0000\u14d6"+ + "\u14d7\u0003)\u0014\u0000\u14d7\u14d8\u0003\u0007\u0003\u0000\u14d8\u14d9"+ + "\u0003\u001f\u000f\u0000\u14d9\u14da\u0003\u000f\u0007\u0000\u14da\u14db"+ + "\u0003-\u0016\u0000\u14db\u14dc\u0003\u000f\u0007\u0000\u14dc\u14dd\u0003"+ + ")\u0014\u0000\u14dd\u14de\u0003+\u0015\u0000\u14de\u0376\u0001\u0000\u0000"+ + "\u0000\u14df\u14e0\u0003%\u0012\u0000\u14e0\u14e1\u0003\u0007\u0003\u0000"+ + "\u14e1\u14e2\u0003)\u0014\u0000\u14e2\u14e3\u0003+\u0015\u0000\u14e3\u14e4"+ + "\u0003\u000f\u0007\u0000\u14e4\u14e5\u0003)\u0014\u0000\u14e5\u0378\u0001"+ + "\u0000\u0000\u0000\u14e6\u14e7\u0003%\u0012\u0000\u14e7\u14e8\u0003\u0007"+ + "\u0003\u0000\u14e8\u14e9\u0003)\u0014\u0000\u14e9\u14ea\u0003-\u0016\u0000"+ + "\u14ea\u14eb\u0003\u0017\u000b\u0000\u14eb\u14ec\u0003\u0007\u0003\u0000"+ + "\u14ec\u14ed\u0003\u001d\u000e\u0000\u14ed\u037a\u0001\u0000\u0000\u0000"+ + "\u14ee\u14ef\u0003%\u0012\u0000\u14ef\u14f0\u0003\u0007\u0003\u0000\u14f0"+ + "\u14f1\u0003)\u0014\u0000\u14f1\u14f2\u0003-\u0016\u0000\u14f2\u14f3\u0003"+ + "\u0017\u000b\u0000\u14f3\u14f4\u0003-\u0016\u0000\u14f4\u14f5\u0003\u0017"+ + "\u000b\u0000\u14f5\u14f6\u0003#\u0011\u0000\u14f6\u14f7\u0003!\u0010\u0000"+ + "\u14f7\u037c\u0001\u0000\u0000\u0000\u14f8\u14f9\u0003%\u0012\u0000\u14f9"+ + "\u14fa\u0003\u0007\u0003\u0000\u14fa\u14fb\u0003+\u0015\u0000\u14fb\u14fc"+ + "\u0003\u000b\u0005\u0000\u14fc\u14fd\u0003\u0007\u0003\u0000\u14fd\u14fe"+ + "\u0003\u001d\u000e\u0000\u14fe\u037e\u0001\u0000\u0000\u0000\u14ff\u1500"+ + "\u0003%\u0012\u0000\u1500\u1501\u0003\u0007\u0003\u0000\u1501\u1502\u0003"+ + "+\u0015\u0000\u1502\u1503\u0003+\u0015\u0000\u1503\u1504\u00033\u0019"+ + "\u0000\u1504\u1505\u0003#\u0011\u0000\u1505\u1506\u0003)\u0014\u0000\u1506"+ + "\u1507\u0003\r\u0006\u0000\u1507\u0380\u0001\u0000\u0000\u0000\u1508\u1509"+ + "\u0003%\u0012\u0000\u1509\u150a\u0003\u0007\u0003\u0000\u150a\u150b\u0003"+ + "-\u0016\u0000\u150b\u150c\u0003\u0015\n\u0000\u150c\u0382\u0001\u0000"+ + "\u0000\u0000\u150d\u150e\u0003%\u0012\u0000\u150e\u150f\u0003\u000f\u0007"+ + "\u0000\u150f\u1510\u0003)\u0014\u0000\u1510\u1511\u0003\u000b\u0005\u0000"+ + "\u1511\u1512\u0003\u000f\u0007\u0000\u1512\u1513\u0003!\u0010\u0000\u1513"+ + "\u1514\u0003-\u0016\u0000\u1514\u1515\u0005_\u0000\u0000\u1515\u1516\u0003"+ + ")\u0014\u0000\u1516\u1517\u0003\u0007\u0003\u0000\u1517\u1518\u0003!\u0010"+ + "\u0000\u1518\u1519\u0003\u001b\r\u0000\u1519\u0384\u0001\u0000\u0000\u0000"+ + "\u151a\u151b\u0003%\u0012\u0000\u151b\u151c\u0003\u000f\u0007\u0000\u151c"+ + "\u151d\u0003)\u0014\u0000\u151d\u151e\u0003\u000b\u0005\u0000\u151e\u151f"+ + "\u0003\u000f\u0007\u0000\u151f\u1520\u0003!\u0010\u0000\u1520\u1521\u0003"+ + "-\u0016\u0000\u1521\u1522\u0003\u0017\u000b\u0000\u1522\u1523\u0003\u001d"+ + "\u000e\u0000\u1523\u1524\u0003\u000f\u0007\u0000\u1524\u1525\u0005_\u0000"+ + "\u0000\u1525\u1526\u0003\u000b\u0005\u0000\u1526\u1527\u0003#\u0011\u0000"+ + "\u1527\u1528\u0003!\u0010\u0000\u1528\u1529\u0003-\u0016\u0000\u1529\u0386"+ + "\u0001\u0000\u0000\u0000\u152a\u152b\u0003%\u0012\u0000\u152b\u152c\u0003"+ + "\u000f\u0007\u0000\u152c\u152d\u0003)\u0014\u0000\u152d\u152e\u0003\u000b"+ + "\u0005\u0000\u152e\u152f\u0003\u000f\u0007\u0000\u152f\u1530\u0003!\u0010"+ + "\u0000\u1530\u1531\u0003-\u0016\u0000\u1531\u1532\u0003\u0017\u000b\u0000"+ + "\u1532\u1533\u0003\u001d\u000e\u0000\u1533\u1534\u0003\u000f\u0007\u0000"+ + "\u1534\u1535\u0005_\u0000\u0000\u1535\u1536\u0003\r\u0006\u0000\u1536"+ + "\u1537\u0003\u0017\u000b\u0000\u1537\u1538\u0003+\u0015\u0000\u1538\u1539"+ + "\u0003\u000b\u0005\u0000\u1539\u0388\u0001\u0000\u0000\u0000\u153a\u153b"+ + "\u0003%\u0012\u0000\u153b\u153c\u0003\u001d\u000e\u0000\u153c\u153d\u0003"+ + "\u0007\u0003\u0000\u153d\u153e\u0003\u000b\u0005\u0000\u153e\u153f\u0003"+ + "\u0017\u000b\u0000\u153f\u1540\u0003!\u0010\u0000\u1540\u1541\u0003\u0013"+ + "\t\u0000\u1541\u038a\u0001\u0000\u0000\u0000\u1542\u1543\u0003%\u0012"+ + "\u0000\u1543\u1544\u0003\u001d\u000e\u0000\u1544\u1545\u0003\u0007\u0003"+ + "\u0000\u1545\u1546\u0003\u0017\u000b\u0000\u1546\u1547\u0003!\u0010\u0000"+ + "\u1547\u038c\u0001\u0000\u0000\u0000\u1548\u1549\u0003%\u0012\u0000\u1549"+ + "\u154a\u0003\u001d\u000e\u0000\u154a\u154b\u0003\u0007\u0003\u0000\u154b"+ + "\u154c\u0003!\u0010\u0000\u154c\u154d\u0003+\u0015\u0000\u154d\u038e\u0001"+ + "\u0000\u0000\u0000\u154e\u154f\u0003%\u0012\u0000\u154f\u1550\u0003\u001d"+ + "\u000e\u0000\u1550\u1551\u0003\u0017\u000b\u0000\u1551\u0390\u0001\u0000"+ + "\u0000\u0000\u1552\u1553\u0003%\u0012\u0000\u1553\u1554\u0003#\u0011\u0000"+ + "\u1554\u1555\u0003+\u0015\u0000\u1555\u1556\u0003\u0017\u000b\u0000\u1556"+ + "\u1557\u0003-\u0016\u0000\u1557\u1558\u0003\u0017\u000b\u0000\u1558\u1559"+ + "\u0003#\u0011\u0000\u1559\u155a\u0003!\u0010\u0000\u155a\u0392\u0001\u0000"+ + "\u0000\u0000\u155b\u155c\u0003%\u0012\u0000\u155c\u155d\u0003#\u0011\u0000"+ + "\u155d\u155e\u0003+\u0015\u0000\u155e\u155f\u0003-\u0016\u0000\u155f\u1560"+ + "\u0003\u0011\b\u0000\u1560\u1561\u0003\u0017\u000b\u0000\u1561\u1562\u0003"+ + "5\u001a\u0000\u1562\u0394\u0001\u0000\u0000\u0000\u1563\u1564\u0003%\u0012"+ + "\u0000\u1564\u1565\u0003#\u0011\u0000\u1565\u1566\u00033\u0019\u0000\u1566"+ + "\u1567\u0003\u000f\u0007\u0000\u1567\u1568\u0003)\u0014\u0000\u1568\u0396"+ + "\u0001\u0000\u0000\u0000\u1569\u156a\u0003%\u0012\u0000\u156a\u156b\u0003"+ + ")\u0014\u0000\u156b\u156c\u0003\u000f\u0007\u0000\u156c\u156d\u0003\u000b"+ + "\u0005\u0000\u156d\u156e\u0003\u000f\u0007\u0000\u156e\u156f\u0003\r\u0006"+ + "\u0000\u156f\u1570\u0003\u0017\u000b\u0000\u1570\u1571\u0003!\u0010\u0000"+ + "\u1571\u1572\u0003\u0013\t\u0000\u1572\u0398\u0001\u0000\u0000\u0000\u1573"+ + "\u1574\u0003%\u0012\u0000\u1574\u1575\u0003)\u0014\u0000\u1575\u1576\u0003"+ + "\u000f\u0007\u0000\u1576\u1577\u0003\u000b\u0005\u0000\u1577\u1578\u0003"+ + "\u0017\u000b\u0000\u1578\u1579\u0003+\u0015\u0000\u1579\u157a\u0003\u0017"+ + "\u000b\u0000\u157a\u157b\u0003#\u0011\u0000\u157b\u157c\u0003!\u0010\u0000"+ + "\u157c\u039a\u0001\u0000\u0000\u0000\u157d\u157e\u0003%\u0012\u0000\u157e"+ + "\u157f\u0003)\u0014\u0000\u157f\u1580\u0003\u000f\u0007\u0000\u1580\u1581"+ + "\u0003\u0011\b\u0000\u1581\u1582\u0003\u0017\u000b\u0000\u1582\u1583\u0003"+ + "5\u001a\u0000\u1583\u039c\u0001\u0000\u0000\u0000\u1584\u1585\u0003%\u0012"+ + "\u0000\u1585\u1586\u0003)\u0014\u0000\u1586\u1587\u0003\u000f\u0007\u0000"+ + "\u1587\u1588\u0003#\u0011\u0000\u1588\u1589\u0003)\u0014\u0000\u1589\u158a"+ + "\u0003\r\u0006\u0000\u158a\u158b\u0003\u000f\u0007\u0000\u158b\u158c\u0003"+ + ")\u0014\u0000\u158c\u039e\u0001\u0000\u0000\u0000\u158d\u158e\u0003%\u0012"+ + "\u0000\u158e\u158f\u0003)\u0014\u0000\u158f\u1590\u0003\u000f\u0007\u0000"+ + "\u1590\u1591\u0003%\u0012\u0000\u1591\u1592\u0003\u0007\u0003\u0000\u1592"+ + "\u1593\u0003)\u0014\u0000\u1593\u1594\u0003\u000f\u0007\u0000\u1594\u03a0"+ + "\u0001\u0000\u0000\u0000\u1595\u1596\u0003%\u0012\u0000\u1596\u1597\u0003"+ + ")\u0014\u0000\u1597\u1598\u0003\u000f\u0007\u0000\u1598\u1599\u0003%\u0012"+ + "\u0000\u1599\u159a\u0003\u0007\u0003\u0000\u159a\u159b\u0003)\u0014\u0000"+ + "\u159b\u159c\u0003\u000f\u0007\u0000\u159c\u159d\u0003\r\u0006\u0000\u159d"+ + "\u03a2\u0001\u0000\u0000\u0000\u159e\u159f\u0003%\u0012\u0000\u159f\u15a0"+ + "\u0003)\u0014\u0000\u15a0\u15a1\u0003\u000f\u0007\u0000\u15a1\u15a2\u0003"+ + "+\u0015\u0000\u15a2\u15a3\u0003\u000f\u0007\u0000\u15a3\u15a4\u0003)\u0014"+ + "\u0000\u15a4\u15a5\u00031\u0018\u0000\u15a5\u15a6\u0003\u000f\u0007\u0000"+ + "\u15a6\u03a4\u0001\u0000\u0000\u0000\u15a7\u15a8\u0003%\u0012\u0000\u15a8"+ + "\u15a9\u0003)\u0014\u0000\u15a9\u15aa\u0003\u0017\u000b\u0000\u15aa\u15ab"+ + "\u0003\u001f\u000f\u0000\u15ab\u15ac\u0003\u0007\u0003\u0000\u15ac\u15ad"+ + "\u0003)\u0014\u0000\u15ad\u15ae\u00037\u001b\u0000\u15ae\u03a6\u0001\u0000"+ + "\u0000\u0000\u15af\u15b0\u0003%\u0012\u0000\u15b0\u15b1\u0003)\u0014\u0000"+ + "\u15b1\u15b2\u0003\u0017\u000b\u0000\u15b2\u15b3\u0003#\u0011\u0000\u15b3"+ + "\u15b4\u0003)\u0014\u0000\u15b4\u03a8\u0001\u0000\u0000\u0000\u15b5\u15b6"+ + "\u0003%\u0012\u0000\u15b6\u15b7\u0003)\u0014\u0000\u15b7\u15b8\u0003\u0017"+ + "\u000b\u0000\u15b8\u15b9\u00031\u0018\u0000\u15b9\u15ba\u0003\u0017\u000b"+ + "\u0000\u15ba\u15bb\u0003\u001d\u000e\u0000\u15bb\u15bc\u0003\u000f\u0007"+ + "\u0000\u15bc\u15bd\u0003\u0013\t\u0000\u15bd\u15be\u0003\u000f\u0007\u0000"+ + "\u15be\u15bf\u0003+\u0015\u0000\u15bf\u03aa\u0001\u0000\u0000\u0000\u15c0"+ + "\u15c1\u0003%\u0012\u0000\u15c1\u15c2\u0003)\u0014\u0000\u15c2\u15c3\u0003"+ + "#\u0011\u0000\u15c3\u15c4\u0003\u000b\u0005\u0000\u15c4\u15c5\u0003\u000f"+ + "\u0007\u0000\u15c5\u15c6\u0003\r\u0006\u0000\u15c6\u15c7\u0003/\u0017"+ + "\u0000\u15c7\u15c8\u0003)\u0014\u0000\u15c8\u15c9\u0003\u0007\u0003\u0000"+ + "\u15c9\u15ca\u0003\u001d\u000e\u0000\u15ca\u03ac\u0001\u0000\u0000\u0000"+ + "\u15cb\u15cc\u0003%\u0012\u0000\u15cc\u15cd\u0003)\u0014\u0000\u15cd\u15ce"+ + "\u0003#\u0011\u0000\u15ce\u15cf\u0003\u000b\u0005\u0000\u15cf\u15d0\u0003"+ + "\u000f\u0007\u0000\u15d0\u15d1\u0003\r\u0006\u0000\u15d1\u15d2\u0003/"+ + "\u0017\u0000\u15d2\u15d3\u0003)\u0014\u0000\u15d3\u15d4\u0003\u000f\u0007"+ + "\u0000\u15d4\u03ae\u0001\u0000\u0000\u0000\u15d5\u15d6\u0003%\u0012\u0000"+ + "\u15d6\u15d7\u0003/\u0017\u0000\u15d7\u15d8\u0003\t\u0004\u0000\u15d8"+ + "\u15d9\u0003\u001d\u000e\u0000\u15d9\u15da\u0003\u0017\u000b\u0000\u15da"+ + "\u15db\u0003\u000b\u0005\u0000\u15db\u03b0\u0001\u0000\u0000\u0000\u15dc"+ + "\u15dd\u0003%\u0012\u0000\u15dd\u15de\u0003/\u0017\u0000\u15de\u15df\u0003"+ + "\t\u0004\u0000\u15df\u15e0\u0003\u001d\u000e\u0000\u15e0\u15e1\u0003\u0017"+ + "\u000b\u0000\u15e1\u15e2\u0003\u000b\u0005\u0000\u15e2\u15e3\u0003\u0007"+ + "\u0003\u0000\u15e3\u15e4\u0003-\u0016\u0000\u15e4\u15e5\u0003\u0017\u000b"+ + "\u0000\u15e5\u15e6\u0003#\u0011\u0000\u15e6\u15e7\u0003!\u0010\u0000\u15e7"+ + "\u03b2\u0001\u0000\u0000\u0000\u15e8\u15e9\u0003\'\u0013\u0000\u15e9\u15ea"+ + "\u0003/\u0017\u0000\u15ea\u15eb\u0003#\u0011\u0000\u15eb\u15ec\u0003-"+ + "\u0016\u0000\u15ec\u15ed\u0003\u000f\u0007\u0000\u15ed\u03b4\u0001\u0000"+ + "\u0000\u0000\u15ee\u15ef\u0003)\u0014\u0000\u15ef\u15f0\u0003\u0007\u0003"+ + "\u0000\u15f0\u15f1\u0003!\u0010\u0000\u15f1\u15f2\u0003\u0013\t\u0000"+ + "\u15f2\u15f3\u0003\u000f\u0007\u0000\u15f3\u03b6\u0001\u0000\u0000\u0000"+ + "\u15f4\u15f5\u0003)\u0014\u0000\u15f5\u15f6\u0003\u0007\u0003\u0000\u15f6"+ + "\u15f7\u0003!\u0010\u0000\u15f7\u15f8\u0003\u001b\r\u0000\u15f8\u03b8"+ + "\u0001\u0000\u0000\u0000\u15f9\u15fa\u0003)\u0014\u0000\u15fa\u15fb\u0003"+ + "\u000f\u0007\u0000\u15fb\u15fc\u0003\u0007\u0003\u0000\u15fc\u15fd\u0003"+ + "\r\u0006\u0000\u15fd\u03ba\u0001\u0000\u0000\u0000\u15fe\u15ff\u0003)"+ + "\u0014\u0000\u15ff\u1600\u0003\u000f\u0007\u0000\u1600\u1601\u0003\u0007"+ + "\u0003\u0000\u1601\u1602\u0003\r\u0006\u0000\u1602\u1603\u0003+\u0015"+ + "\u0000\u1603\u03bc\u0001\u0000\u0000\u0000\u1604\u1605\u0003)\u0014\u0000"+ + "\u1605\u1606\u0003\u000f\u0007\u0000\u1606\u1607\u0003\u0007\u0003\u0000"+ + "\u1607\u1608\u0003\u001d\u000e\u0000\u1608\u03be\u0001\u0000\u0000\u0000"+ + "\u1609\u160a\u0003)\u0014\u0000\u160a\u160b\u0003\u000f\u0007\u0000\u160b"+ + "\u160c\u0003\u0007\u0003\u0000\u160c\u160d\u0003+\u0015\u0000\u160d\u160e"+ + "\u0003+\u0015\u0000\u160e\u160f\u0003\u0017\u000b\u0000\u160f\u1610\u0003"+ + "\u0013\t\u0000\u1610\u1611\u0003!\u0010\u0000\u1611\u03c0\u0001\u0000"+ + "\u0000\u0000\u1612\u1613\u0003)\u0014\u0000\u1613\u1614\u0003\u000f\u0007"+ + "\u0000\u1614\u1615\u0003\u000b\u0005\u0000\u1615\u1616\u0003\u0015\n\u0000"+ + "\u1616\u1617\u0003\u000f\u0007\u0000\u1617\u1618\u0003\u000b\u0005\u0000"+ + "\u1618\u1619\u0003\u001b\r\u0000\u1619\u03c2\u0001\u0000\u0000\u0000\u161a"+ + "\u161b\u0003)\u0014\u0000\u161b\u161c\u0003\u000f\u0007\u0000\u161c\u161d"+ + "\u0003\u000b\u0005\u0000\u161d\u161e\u0003/\u0017\u0000\u161e\u161f\u0003"+ + ")\u0014\u0000\u161f\u1620\u0003+\u0015\u0000\u1620\u1621\u0003\u0017\u000b"+ + "\u0000\u1621\u1622\u00031\u0018\u0000\u1622\u1623\u0003\u000f\u0007\u0000"+ + "\u1623\u03c4\u0001\u0000\u0000\u0000\u1624\u1625\u0003)\u0014\u0000\u1625"+ + "\u1626\u0003\u000f\u0007\u0000\u1626\u1627\u0003\u0011\b\u0000\u1627\u03c6"+ + "\u0001\u0000\u0000\u0000\u1628\u1629\u0003)\u0014\u0000\u1629\u162a\u0003"+ + "\u000f\u0007\u0000\u162a\u162b\u0003\u0011\b\u0000\u162b\u162c\u0003\u000f"+ + "\u0007\u0000\u162c\u162d\u0003)\u0014\u0000\u162d\u162e\u0003\u000f\u0007"+ + "\u0000\u162e\u162f\u0003!\u0010\u0000\u162f\u1630\u0003\u000b\u0005\u0000"+ + "\u1630\u1631\u0003\u000f\u0007\u0000\u1631\u1632\u0003+\u0015\u0000\u1632"+ + "\u03c8\u0001\u0000\u0000\u0000\u1633\u1634\u0003)\u0014\u0000\u1634\u1635"+ + "\u0003\u000f\u0007\u0000\u1635\u1636\u0003\u0011\b\u0000\u1636\u1637\u0003"+ + "\u000f\u0007\u0000\u1637\u1638\u0003)\u0014\u0000\u1638\u1639\u0003\u000f"+ + "\u0007\u0000\u1639\u163a\u0003!\u0010\u0000\u163a\u163b\u0003\u000b\u0005"+ + "\u0000\u163b\u163c\u0003\u0017\u000b\u0000\u163c\u163d\u0003!\u0010\u0000"+ + "\u163d\u163e\u0003\u0013\t\u0000\u163e\u03ca\u0001\u0000\u0000\u0000\u163f"+ + "\u1640\u0003)\u0014\u0000\u1640\u1641\u0003\u000f\u0007\u0000\u1641\u1642"+ + "\u0003\u0011\b\u0000\u1642\u1643\u0003)\u0014\u0000\u1643\u1644\u0003"+ + "\u000f\u0007\u0000\u1644\u1645\u0003+\u0015\u0000\u1645\u1646\u0003\u0015"+ + "\n\u0000\u1646\u03cc\u0001\u0000\u0000\u0000\u1647\u1648\u0003)\u0014"+ + "\u0000\u1648\u1649\u0003\u000f\u0007\u0000\u1649\u164a\u0003\u0013\t\u0000"+ + "\u164a\u164b\u0003)\u0014\u0000\u164b\u164c\u0005_\u0000\u0000\u164c\u164d"+ + "\u0003\u0007\u0003\u0000\u164d\u164e\u00031\u0018\u0000\u164e\u164f\u0003"+ + "\u0013\t\u0000\u164f\u1650\u00035\u001a\u0000\u1650\u03ce\u0001\u0000"+ + "\u0000\u0000\u1651\u1652\u0003)\u0014\u0000\u1652\u1653\u0003\u000f\u0007"+ + "\u0000\u1653\u1654\u0003\u0013\t\u0000\u1654\u1655\u0003)\u0014\u0000"+ + "\u1655\u1656\u0005_\u0000\u0000\u1656\u1657\u0003\u0007\u0003\u0000\u1657"+ + "\u1658\u00031\u0018\u0000\u1658\u1659\u0003\u0013\t\u0000\u1659\u165a"+ + "\u00037\u001b\u0000\u165a\u03d0\u0001\u0000\u0000\u0000\u165b\u165c\u0003"+ + ")\u0014\u0000\u165c\u165d\u0003\u000f\u0007\u0000\u165d\u165e\u0003\u0013"+ + "\t\u0000\u165e\u165f\u0003)\u0014\u0000\u165f\u1660\u0005_\u0000\u0000"+ + "\u1660\u1661\u0003\u000b\u0005\u0000\u1661\u1662\u0003#\u0011\u0000\u1662"+ + "\u1663\u0003/\u0017\u0000\u1663\u1664\u0003!\u0010\u0000\u1664\u1665\u0003"+ + "-\u0016\u0000\u1665\u03d2\u0001\u0000\u0000\u0000\u1666\u1667\u0003)\u0014"+ + "\u0000\u1667\u1668\u0003\u000f\u0007\u0000\u1668\u1669\u0003\u0013\t\u0000"+ + "\u1669\u166a\u0003)\u0014\u0000\u166a\u166b\u0005_\u0000\u0000\u166b\u166c"+ + "\u0003\u0017\u000b\u0000\u166c\u166d\u0003!\u0010\u0000\u166d\u166e\u0003"+ + "-\u0016\u0000\u166e\u166f\u0003\u000f\u0007\u0000\u166f\u1670\u0003)\u0014"+ + "\u0000\u1670\u1671\u0003\u000b\u0005\u0000\u1671\u1672\u0003\u000f\u0007"+ + "\u0000\u1672\u1673\u0003%\u0012\u0000\u1673\u1674\u0003-\u0016\u0000\u1674"+ + "\u03d4\u0001\u0000\u0000\u0000\u1675\u1676\u0003)\u0014\u0000\u1676\u1677"+ + "\u0003\u000f\u0007\u0000\u1677\u1678\u0003\u0013\t\u0000\u1678\u1679\u0003"+ + ")\u0014\u0000\u1679\u167a\u0005_\u0000\u0000\u167a\u167b\u0003)\u0014"+ + "\u0000\u167b\u167c\u00052\u0000\u0000\u167c\u03d6\u0001\u0000\u0000\u0000"+ + "\u167d\u167e\u0003)\u0014\u0000\u167e\u167f\u0003\u000f\u0007\u0000\u167f"+ + "\u1680\u0003\u0013\t\u0000\u1680\u1681\u0003)\u0014\u0000\u1681\u1682"+ + "\u0005_\u0000\u0000\u1682\u1683\u0003+\u0015\u0000\u1683\u1684\u0003\u001d"+ + "\u000e\u0000\u1684\u1685\u0003#\u0011\u0000\u1685\u1686\u0003%\u0012\u0000"+ + "\u1686\u1687\u0003\u000f\u0007\u0000\u1687\u03d8\u0001\u0000\u0000\u0000"+ + "\u1688\u1689\u0003)\u0014\u0000\u1689\u168a\u0003\u000f\u0007\u0000\u168a"+ + "\u168b\u0003\u0013\t\u0000\u168b\u168c\u0003)\u0014\u0000\u168c\u168d"+ + "\u0005_\u0000\u0000\u168d\u168e\u0003+\u0015\u0000\u168e\u168f\u00035"+ + "\u001a\u0000\u168f\u1690\u00035\u001a\u0000\u1690\u03da\u0001\u0000\u0000"+ + "\u0000\u1691\u1692\u0003)\u0014\u0000\u1692\u1693\u0003\u000f\u0007\u0000"+ + "\u1693\u1694\u0003\u0013\t\u0000\u1694\u1695\u0003)\u0014\u0000\u1695"+ + "\u1696\u0005_\u0000\u0000\u1696\u1697\u0003+\u0015\u0000\u1697\u1698\u0003"+ + "5\u001a\u0000\u1698\u1699\u00037\u001b\u0000\u1699\u03dc\u0001\u0000\u0000"+ + "\u0000\u169a\u169b\u0003)\u0014\u0000\u169b\u169c\u0003\u000f\u0007\u0000"+ + "\u169c\u169d\u0003\u0013\t\u0000\u169d\u169e\u0003)\u0014\u0000\u169e"+ + "\u169f\u0005_\u0000\u0000\u169f\u16a0\u0003+\u0015\u0000\u16a0\u16a1\u0003"+ + "7\u001b\u0000\u16a1\u16a2\u00037\u001b\u0000\u16a2\u03de\u0001\u0000\u0000"+ + "\u0000\u16a3\u16a4\u0003)\u0014\u0000\u16a4\u16a5\u0003\u000f\u0007\u0000"+ + "\u16a5\u16a6\u0003\u0017\u000b\u0000\u16a6\u16a7\u0003!\u0010\u0000\u16a7"+ + "\u16a8\u0003\r\u0006\u0000\u16a8\u16a9\u0003\u000f\u0007\u0000\u16a9\u16aa"+ + "\u00035\u001a\u0000\u16aa\u03e0\u0001\u0000\u0000\u0000\u16ab\u16ac\u0003"+ + ")\u0014\u0000\u16ac\u16ad\u0003\u000f\u0007\u0000\u16ad\u16ae\u0003\u001d"+ + "\u000e\u0000\u16ae\u16af\u0003\u0007\u0003\u0000\u16af\u16b0\u0003-\u0016"+ + "\u0000\u16b0\u16b1\u0003\u0017\u000b\u0000\u16b1\u16b2\u00031\u0018\u0000"+ + "\u16b2\u16b3\u0003\u000f\u0007\u0000\u16b3\u03e2\u0001\u0000\u0000\u0000"+ + "\u16b4\u16b5\u0003)\u0014\u0000\u16b5\u16b6\u0003\u000f\u0007\u0000\u16b6"+ + "\u16b7\u0003\u001d\u000e\u0000\u16b7\u16b8\u0003\u000f\u0007\u0000\u16b8"+ + "\u16b9\u0003\u0007\u0003\u0000\u16b9\u16ba\u0003+\u0015\u0000\u16ba\u16bb"+ + "\u0003\u000f\u0007\u0000\u16bb\u03e4\u0001\u0000\u0000\u0000\u16bc\u16bd"+ + "\u0003)\u0014\u0000\u16bd\u16be\u0003\u000f\u0007\u0000\u16be\u16bf\u0003"+ + "!\u0010\u0000\u16bf\u16c0\u0003\u0007\u0003\u0000\u16c0\u16c1\u0003\u001f"+ + "\u000f\u0000\u16c1\u16c2\u0003\u000f\u0007\u0000\u16c2\u03e6\u0001\u0000"+ + "\u0000\u0000\u16c3\u16c4\u0003)\u0014\u0000\u16c4\u16c5\u0003\u000f\u0007"+ + "\u0000\u16c5\u16c6\u0003%\u0012\u0000\u16c6\u16c7\u0003\u000f\u0007\u0000"+ + "\u16c7\u16c8\u0003\u0007\u0003\u0000\u16c8\u16c9\u0003-\u0016\u0000\u16c9"+ + "\u16ca\u0003\u0007\u0003\u0000\u16ca\u16cb\u0003\t\u0004\u0000\u16cb\u16cc"+ + "\u0003\u001d\u000e\u0000\u16cc\u16cd\u0003\u000f\u0007\u0000\u16cd\u03e8"+ + "\u0001\u0000\u0000\u0000\u16ce\u16cf\u0003)\u0014\u0000\u16cf\u16d0\u0003"+ + "\u000f\u0007\u0000\u16d0\u16d1\u0003%\u0012\u0000\u16d1\u16d2\u0003\u001d"+ + "\u000e\u0000\u16d2\u16d3\u0003\u0007\u0003\u0000\u16d3\u16d4\u0003\u000b"+ + "\u0005\u0000\u16d4\u16d5\u0003\u000f\u0007\u0000\u16d5\u03ea\u0001\u0000"+ + "\u0000\u0000\u16d6\u16d7\u0003)\u0014\u0000\u16d7\u16d8\u0003\u000f\u0007"+ + "\u0000\u16d8\u16d9\u0003%\u0012\u0000\u16d9\u16da\u0003\u001d\u000e\u0000"+ + "\u16da\u16db\u0003\u0017\u000b\u0000\u16db\u16dc\u0003\u000b\u0005\u0000"+ + "\u16dc\u16dd\u0003\u0007\u0003\u0000\u16dd\u03ec\u0001\u0000\u0000\u0000"+ + "\u16de\u16df\u0003)\u0014\u0000\u16df\u16e0\u0003\u000f\u0007\u0000\u16e0"+ + "\u16e1\u0003+\u0015\u0000\u16e1\u16e2\u0003\u000f\u0007\u0000\u16e2\u16e3"+ + "\u0003-\u0016\u0000\u16e3\u03ee\u0001\u0000\u0000\u0000\u16e4\u16e5\u0003"+ + ")\u0014\u0000\u16e5\u16e6\u0003\u000f\u0007\u0000\u16e6\u16e7\u0003+\u0015"+ + "\u0000\u16e7\u16e8\u0003-\u0016\u0000\u16e8\u16e9\u0003\u0007\u0003\u0000"+ + "\u16e9\u16ea\u0003)\u0014\u0000\u16ea\u16eb\u0003-\u0016\u0000\u16eb\u03f0"+ + "\u0001\u0000\u0000\u0000\u16ec\u16ed\u0003)\u0014\u0000\u16ed\u16ee\u0003"+ + "\u000f\u0007\u0000\u16ee\u16ef\u0003+\u0015\u0000\u16ef\u16f0\u0003-\u0016"+ + "\u0000\u16f0\u16f1\u0003)\u0014\u0000\u16f1\u16f2\u0003\u0017\u000b\u0000"+ + "\u16f2\u16f3\u0003\u000b\u0005\u0000\u16f3\u16f4\u0003-\u0016\u0000\u16f4"+ + "\u03f2\u0001\u0000\u0000\u0000\u16f5\u16f6\u0003)\u0014\u0000\u16f6\u16f7"+ + "\u0003\u000f\u0007\u0000\u16f7\u16f8\u0003+\u0015\u0000\u16f8\u16f9\u0003"+ + "/\u0017\u0000\u16f9\u16fa\u0003\u001d\u000e\u0000\u16fa\u16fb\u0003-\u0016"+ + "\u0000\u16fb\u03f4\u0001\u0000\u0000\u0000\u16fc\u16fd\u0003)\u0014\u0000"+ + "\u16fd\u16fe\u0003\u000f\u0007\u0000\u16fe\u16ff\u0003-\u0016\u0000\u16ff"+ + "\u1700\u0003/\u0017\u0000\u1700\u1701\u0003)\u0014\u0000\u1701\u1702\u0003"+ + "!\u0010\u0000\u1702\u03f6\u0001\u0000\u0000\u0000\u1703\u1704\u0003)\u0014"+ + "\u0000\u1704\u1705\u0003\u000f\u0007\u0000\u1705\u1706\u0003-\u0016\u0000"+ + "\u1706\u1707\u0003/\u0017\u0000\u1707\u1708\u0003)\u0014\u0000\u1708\u1709"+ + "\u0003!\u0010\u0000\u1709\u170a\u0003\u000f\u0007\u0000\u170a\u170b\u0003"+ + "\r\u0006\u0000\u170b\u170c\u0005_\u0000\u0000\u170c\u170d\u0003\u000b"+ + "\u0005\u0000\u170d\u170e\u0003\u0007\u0003\u0000\u170e\u170f\u0003)\u0014"+ + "\u0000\u170f\u1710\u0003\r\u0006\u0000\u1710\u1711\u0003\u0017\u000b\u0000"+ + "\u1711\u1712\u0003!\u0010\u0000\u1712\u1713\u0003\u0007\u0003\u0000\u1713"+ + "\u1714\u0003\u001d\u000e\u0000\u1714\u1715\u0003\u0017\u000b\u0000\u1715"+ + "\u1716\u0003-\u0016\u0000\u1716\u1717\u00037\u001b\u0000\u1717\u03f8\u0001"+ + "\u0000\u0000\u0000\u1718\u1719\u0003)\u0014\u0000\u1719\u171a\u0003\u000f"+ + "\u0007\u0000\u171a\u171b\u0003-\u0016\u0000\u171b\u171c\u0003/\u0017\u0000"+ + "\u171c\u171d\u0003)\u0014\u0000\u171d\u171e\u0003!\u0010\u0000\u171e\u171f"+ + "\u0003\u000f\u0007\u0000\u171f\u1720\u0003\r\u0006\u0000\u1720\u1721\u0005"+ + "_\u0000\u0000\u1721\u1722\u0003\u001d\u000e\u0000\u1722\u1723\u0003\u000f"+ + "\u0007\u0000\u1723\u1724\u0003!\u0010\u0000\u1724\u1725\u0003\u0013\t"+ + "\u0000\u1725\u1726\u0003-\u0016\u0000\u1726\u1727\u0003\u0015\n\u0000"+ + "\u1727\u03fa\u0001\u0000\u0000\u0000\u1728\u1729\u0003)\u0014\u0000\u1729"+ + "\u172a\u0003\u000f\u0007\u0000\u172a\u172b\u0003-\u0016\u0000\u172b\u172c"+ + "\u0003/\u0017\u0000\u172c\u172d\u0003)\u0014\u0000\u172d\u172e\u0003!"+ + "\u0010\u0000\u172e\u172f\u0003\u000f\u0007\u0000\u172f\u1730\u0003\r\u0006"+ + "\u0000\u1730\u1731\u0005_\u0000\u0000\u1731\u1732\u0003#\u0011\u0000\u1732"+ + "\u1733\u0003\u000b\u0005\u0000\u1733\u1734\u0003-\u0016\u0000\u1734\u1735"+ + "\u0003\u000f\u0007\u0000\u1735\u1736\u0003-\u0016\u0000\u1736\u1737\u0005"+ + "_\u0000\u0000\u1737\u1738\u0003\u001d\u000e\u0000\u1738\u1739\u0003\u000f"+ + "\u0007\u0000\u1739\u173a\u0003!\u0010\u0000\u173a\u173b\u0003\u0013\t"+ + "\u0000\u173b\u173c\u0003-\u0016\u0000\u173c\u173d\u0003\u0015\n\u0000"+ + "\u173d\u03fc\u0001\u0000\u0000\u0000\u173e\u173f\u0003)\u0014\u0000\u173f"+ + "\u1740\u0003\u000f\u0007\u0000\u1740\u1741\u0003-\u0016\u0000\u1741\u1742"+ + "\u0003/\u0017\u0000\u1742\u1743\u0003)\u0014\u0000\u1743\u1744\u0003!"+ + "\u0010\u0000\u1744\u1745\u0003\u000f\u0007\u0000\u1745\u1746\u0003\r\u0006"+ + "\u0000\u1746\u1747\u0005_\u0000\u0000\u1747\u1748\u0003+\u0015\u0000\u1748"+ + "\u1749\u0003\'\u0013\u0000\u1749\u174a\u0003\u001d\u000e\u0000\u174a\u174b"+ + "\u0003+\u0015\u0000\u174b\u174c\u0003-\u0016\u0000\u174c\u174d\u0003\u0007"+ + "\u0003\u0000\u174d\u174e\u0003-\u0016\u0000\u174e\u174f\u0003\u000f\u0007"+ + "\u0000\u174f\u03fe\u0001\u0000\u0000\u0000\u1750\u1751\u0003)\u0014\u0000"+ + "\u1751\u1752\u0003\u000f\u0007\u0000\u1752\u1753\u0003-\u0016\u0000\u1753"+ + "\u1754\u0003/\u0017\u0000\u1754\u1755\u0003)\u0014\u0000\u1755\u1756\u0003"+ + "!\u0010\u0000\u1756\u1757\u0003\u0017\u000b\u0000\u1757\u1758\u0003!\u0010"+ + "\u0000\u1758\u1759\u0003\u0013\t\u0000\u1759\u0400\u0001\u0000\u0000\u0000"+ + "\u175a\u175b\u0003)\u0014\u0000\u175b\u175c\u0003\u000f\u0007\u0000\u175c"+ + "\u175d\u0003-\u0016\u0000\u175d\u175e\u0003/\u0017\u0000\u175e\u175f\u0003"+ + ")\u0014\u0000\u175f\u1760\u0003!\u0010\u0000\u1760\u1761\u0003+\u0015"+ + "\u0000\u1761\u0402\u0001\u0000\u0000\u0000\u1762\u1763\u0003)\u0014\u0000"+ + "\u1763\u1764\u0003\u000f\u0007\u0000\u1764\u1765\u00031\u0018\u0000\u1765"+ + "\u1766\u0003#\u0011\u0000\u1766\u1767\u0003\u001b\r\u0000\u1767\u1768"+ + "\u0003\u000f\u0007\u0000\u1768\u0404\u0001\u0000\u0000\u0000\u1769\u176a"+ + "\u0003)\u0014\u0000\u176a\u176b\u0003\u0017\u000b\u0000\u176b\u176c\u0003"+ + "\u0013\t\u0000\u176c\u176d\u0003\u0015\n\u0000\u176d\u176e\u0003-\u0016"+ + "\u0000\u176e\u0406\u0001\u0000\u0000\u0000\u176f\u1770\u0003)\u0014\u0000"+ + "\u1770\u1771\u0003#\u0011\u0000\u1771\u1772\u0003\u001d\u000e\u0000\u1772"+ + "\u1773\u0003\u000f\u0007\u0000\u1773\u0408\u0001\u0000\u0000\u0000\u1774"+ + "\u1775\u0003)\u0014\u0000\u1775\u1776\u0003#\u0011\u0000\u1776\u1777\u0003"+ + "\u001d\u000e\u0000\u1777\u1778\u0003\u001d\u000e\u0000\u1778\u1779\u0003"+ + "\t\u0004\u0000\u1779\u177a\u0003\u0007\u0003\u0000\u177a\u177b\u0003\u000b"+ + "\u0005\u0000\u177b\u177c\u0003\u001b\r\u0000\u177c\u040a\u0001\u0000\u0000"+ + "\u0000\u177d\u177e\u0003)\u0014\u0000\u177e\u177f\u0003#\u0011\u0000\u177f"+ + "\u1780\u0003\u001d\u000e\u0000\u1780\u1781\u0003\u001d\u000e\u0000\u1781"+ + "\u1782\u0003/\u0017\u0000\u1782\u1783\u0003%\u0012\u0000\u1783\u040c\u0001"+ + "\u0000\u0000\u0000\u1784\u1785\u0003)\u0014\u0000\u1785\u1786\u0003#\u0011"+ + "\u0000\u1786\u1787\u0003/\u0017\u0000\u1787\u1788\u0003-\u0016\u0000\u1788"+ + "\u1789\u0003\u0017\u000b\u0000\u1789\u178a\u0003!\u0010\u0000\u178a\u178b"+ + "\u0003\u000f\u0007\u0000\u178b\u040e\u0001\u0000\u0000\u0000\u178c\u178d"+ + "\u0003)\u0014\u0000\u178d\u178e\u0003#\u0011\u0000\u178e\u178f\u0003/"+ + "\u0017\u0000\u178f\u1790\u0003-\u0016\u0000\u1790\u1791\u0003\u0017\u000b"+ + "\u0000\u1791\u1792\u0003!\u0010\u0000\u1792\u1793\u0003\u000f\u0007\u0000"+ + "\u1793\u1794\u0005_\u0000\u0000\u1794\u1795\u0003\u000b\u0005\u0000\u1795"+ + "\u1796\u0003\u0007\u0003\u0000\u1796\u1797\u0003-\u0016\u0000\u1797\u1798"+ + "\u0003\u0007\u0003\u0000\u1798\u1799\u0003\u001d\u000e\u0000\u1799\u179a"+ + "\u0003#\u0011\u0000\u179a\u179b\u0003\u0013\t\u0000\u179b\u0410\u0001"+ + "\u0000\u0000\u0000\u179c\u179d\u0003)\u0014\u0000\u179d\u179e\u0003#\u0011"+ + "\u0000\u179e\u179f\u0003/\u0017\u0000\u179f\u17a0\u0003-\u0016\u0000\u17a0"+ + "\u17a1\u0003\u0017\u000b\u0000\u17a1\u17a2\u0003!\u0010\u0000\u17a2\u17a3"+ + "\u0003\u000f\u0007\u0000\u17a3\u17a4\u0005_\u0000\u0000\u17a4\u17a5\u0003"+ + "!\u0010\u0000\u17a5\u17a6\u0003\u0007\u0003\u0000\u17a6\u17a7\u0003\u001f"+ + "\u000f\u0000\u17a7\u17a8\u0003\u000f\u0007\u0000\u17a8\u0412\u0001\u0000"+ + "\u0000\u0000\u17a9\u17aa\u0003)\u0014\u0000\u17aa\u17ab\u0003#\u0011\u0000"+ + "\u17ab\u17ac\u0003/\u0017\u0000\u17ac\u17ad\u0003-\u0016\u0000\u17ad\u17ae"+ + "\u0003\u0017\u000b\u0000\u17ae\u17af\u0003!\u0010\u0000\u17af\u17b0\u0003"+ + "\u000f\u0007\u0000\u17b0\u17b1\u0005_\u0000\u0000\u17b1\u17b2\u0003+\u0015"+ + "\u0000\u17b2\u17b3\u0003\u000b\u0005\u0000\u17b3\u17b4\u0003\u0015\n\u0000"+ + "\u17b4\u17b5\u0003\u000f\u0007\u0000\u17b5\u17b6\u0003\u001f\u000f\u0000"+ + "\u17b6\u17b7\u0003\u0007\u0003\u0000\u17b7\u0414\u0001\u0000\u0000\u0000"+ + "\u17b8\u17b9\u0003)\u0014\u0000\u17b9\u17ba\u0003#\u0011\u0000\u17ba\u17bb"+ + "\u00033\u0019\u0000\u17bb\u0416\u0001\u0000\u0000\u0000\u17bc\u17bd\u0003"+ + ")\u0014\u0000\u17bd\u17be\u0003#\u0011\u0000\u17be\u17bf\u00033\u0019"+ + "\u0000\u17bf\u17c0\u0005_\u0000\u0000\u17c0\u17c1\u0003\u000b\u0005\u0000"+ + "\u17c1\u17c2\u0003#\u0011\u0000\u17c2\u17c3\u0003/\u0017\u0000\u17c3\u17c4"+ + "\u0003!\u0010\u0000\u17c4\u17c5\u0003-\u0016\u0000\u17c5\u0418\u0001\u0000"+ + "\u0000\u0000\u17c6\u17c7\u0003)\u0014\u0000\u17c7\u17c8\u0003#\u0011\u0000"+ + "\u17c8\u17c9\u00033\u0019\u0000\u17c9\u17ca\u0005_\u0000\u0000\u17ca\u17cb"+ + "\u0003!\u0010\u0000\u17cb\u17cc\u0003/\u0017\u0000\u17cc\u17cd\u0003\u001f"+ + "\u000f\u0000\u17cd\u17ce\u0003\t\u0004\u0000\u17ce\u17cf\u0003\u000f\u0007"+ + "\u0000\u17cf\u17d0\u0003)\u0014\u0000\u17d0\u041a\u0001\u0000\u0000\u0000"+ + "\u17d1\u17d2\u0003)\u0014\u0000\u17d2\u17d3\u0003#\u0011\u0000\u17d3\u17d4"+ + "\u00033\u0019\u0000\u17d4\u17d5\u0003+\u0015\u0000\u17d5\u041c\u0001\u0000"+ + "\u0000\u0000\u17d6\u17d7\u0003)\u0014\u0000\u17d7\u17d8\u0003/\u0017\u0000"+ + "\u17d8\u17d9\u0003\u001d\u000e\u0000\u17d9\u17da\u0003\u000f\u0007\u0000"+ + "\u17da\u041e\u0001\u0000\u0000\u0000\u17db\u17dc\u0003+\u0015\u0000\u17dc"+ + "\u17dd\u0003\u0007\u0003\u0000\u17dd\u17de\u00031\u0018\u0000\u17de\u17df"+ + "\u0003\u000f\u0007\u0000\u17df\u17e0\u0003%\u0012\u0000\u17e0\u17e1\u0003"+ + "#\u0011\u0000\u17e1\u17e2\u0003\u0017\u000b\u0000\u17e2\u17e3\u0003!\u0010"+ + "\u0000\u17e3\u17e4\u0003-\u0016\u0000\u17e4\u0420\u0001\u0000\u0000\u0000"+ + "\u17e5\u17e6\u0003+\u0015\u0000\u17e6\u17e7\u0003\u000b\u0005\u0000\u17e7"+ + "\u17e8\u0003\u0007\u0003\u0000\u17e8\u17e9\u0003\u001d\u000e\u0000\u17e9"+ + "\u17ea\u0003\u000f\u0007\u0000\u17ea\u0422\u0001\u0000\u0000\u0000\u17eb"+ + "\u17ec\u0003+\u0015\u0000\u17ec\u17ed\u0003\u000b\u0005\u0000\u17ed\u17ee"+ + "\u0003\u0015\n\u0000\u17ee\u17ef\u0003\u000f\u0007\u0000\u17ef\u17f0\u0003"+ + "\u001f\u000f\u0000\u17f0\u17f1\u0003\u0007\u0003\u0000\u17f1\u0424\u0001"+ + "\u0000\u0000\u0000\u17f2\u17f3\u0003+\u0015\u0000\u17f3\u17f4\u0003\u000b"+ + "\u0005\u0000\u17f4\u17f5\u0003\u0015\n\u0000\u17f5\u17f6\u0003\u000f\u0007"+ + "\u0000\u17f6\u17f7\u0003\u001f\u000f\u0000\u17f7\u17f8\u0003\u0007\u0003"+ + "\u0000\u17f8\u17f9\u0005_\u0000\u0000\u17f9\u17fa\u0003!\u0010\u0000\u17fa"+ + "\u17fb\u0003\u0007\u0003\u0000\u17fb\u17fc\u0003\u001f\u000f\u0000\u17fc"+ + "\u17fd\u0003\u000f\u0007\u0000\u17fd\u0426\u0001\u0000\u0000\u0000\u17fe"+ + "\u17ff\u0003+\u0015\u0000\u17ff\u1800\u0003\u000b\u0005\u0000\u1800\u1801"+ + "\u0003#\u0011\u0000\u1801\u1802\u0003%\u0012\u0000\u1802\u1803\u0003\u000f"+ + "\u0007\u0000\u1803\u0428\u0001\u0000\u0000\u0000\u1804\u1805\u0003+\u0015"+ + "\u0000\u1805\u1806\u0003\u000b\u0005\u0000\u1806\u1807\u0003#\u0011\u0000"+ + "\u1807\u1808\u0003%\u0012\u0000\u1808\u1809\u0003\u000f\u0007\u0000\u1809"+ + "\u180a\u0005_\u0000\u0000\u180a\u180b\u0003\u000b\u0005\u0000\u180b\u180c"+ + "\u0003\u0007\u0003\u0000\u180c\u180d\u0003-\u0016\u0000\u180d\u180e\u0003"+ + "\u0007\u0003\u0000\u180e\u180f\u0003\u001d\u000e\u0000\u180f\u1810\u0003"+ + "#\u0011\u0000\u1810\u1811\u0003\u0013\t\u0000\u1811\u042a\u0001\u0000"+ + "\u0000\u0000\u1812\u1813\u0003+\u0015\u0000\u1813\u1814\u0003\u000b\u0005"+ + "\u0000\u1814\u1815\u0003#\u0011\u0000\u1815\u1816\u0003%\u0012\u0000\u1816"+ + "\u1817\u0003\u000f\u0007\u0000\u1817\u1818\u0005_\u0000\u0000\u1818\u1819"+ + "\u0003!\u0010\u0000\u1819\u181a\u0003\u0007\u0003\u0000\u181a\u181b\u0003"+ + "\u001f\u000f\u0000\u181b\u181c\u0003\u000f\u0007\u0000\u181c\u042c\u0001"+ + "\u0000\u0000\u0000\u181d\u181e\u0003+\u0015\u0000\u181e\u181f\u0003\u000b"+ + "\u0005\u0000\u181f\u1820\u0003#\u0011\u0000\u1820\u1821\u0003%\u0012\u0000"+ + "\u1821\u1822\u0003\u000f\u0007\u0000\u1822\u1823\u0005_\u0000\u0000\u1823"+ + "\u1824\u0003+\u0015\u0000\u1824\u1825\u0003\u000b\u0005\u0000\u1825\u1826"+ + "\u0003\u0015\n\u0000\u1826\u1827\u0003\u000f\u0007\u0000\u1827\u1828\u0003"+ + "\u001f\u000f\u0000\u1828\u1829\u0003\u0007\u0003\u0000\u1829\u042e\u0001"+ + "\u0000\u0000\u0000\u182a\u182b\u0003+\u0015\u0000\u182b\u182c\u0003\u000b"+ + "\u0005\u0000\u182c\u182d\u0003)\u0014\u0000\u182d\u182e\u0003#\u0011\u0000"+ + "\u182e\u182f\u0003\u001d\u000e\u0000\u182f\u1830\u0003\u001d\u000e\u0000"+ + "\u1830\u0430\u0001\u0000\u0000\u0000\u1831\u1832\u0003+\u0015\u0000\u1832"+ + "\u1833\u0003\u000f\u0007\u0000\u1833\u1834\u0003\u0007\u0003\u0000\u1834"+ + "\u1835\u0003)\u0014\u0000\u1835\u1836\u0003\u000b\u0005\u0000\u1836\u1837"+ + "\u0003\u0015\n\u0000\u1837\u0432\u0001\u0000\u0000\u0000\u1838\u1839\u0003"+ + "+\u0015\u0000\u1839\u183a\u0003\u000f\u0007\u0000\u183a\u183b\u0003\u000b"+ + "\u0005\u0000\u183b\u183c\u0003#\u0011\u0000\u183c\u183d\u0003!\u0010\u0000"+ + "\u183d\u183e\u0003\r\u0006\u0000\u183e\u0434\u0001\u0000\u0000\u0000\u183f"+ + "\u1840\u0003+\u0015\u0000\u1840\u1841\u0003\u000f\u0007\u0000\u1841\u1842"+ + "\u0003\u000b\u0005\u0000\u1842\u1843\u0003-\u0016\u0000\u1843\u1844\u0003"+ + "\u0017\u000b\u0000\u1844\u1845\u0003#\u0011\u0000\u1845\u1846\u0003!\u0010"+ + "\u0000\u1846\u0436\u0001\u0000\u0000\u0000\u1847\u1848\u0003+\u0015\u0000"+ + "\u1848\u1849\u0003\u000f\u0007\u0000\u1849\u184a\u0003\u000b\u0005\u0000"+ + "\u184a\u184b\u0003/\u0017\u0000\u184b\u184c\u0003)\u0014\u0000\u184c\u184d"+ + "\u0003\u0017\u000b\u0000\u184d\u184e\u0003-\u0016\u0000\u184e\u184f\u0003"+ + "7\u001b\u0000\u184f\u0438\u0001\u0000\u0000\u0000\u1850\u1851\u0003+\u0015"+ + "\u0000\u1851\u1852\u0003\u000f\u0007\u0000\u1852\u1853\u0003\u001d\u000e"+ + "\u0000\u1853\u1854\u0003\u000f\u0007\u0000\u1854\u1855\u0003\u000b\u0005"+ + "\u0000\u1855\u1856\u0003-\u0016\u0000\u1856\u043a\u0001\u0000\u0000\u0000"+ + "\u1857\u1858\u0003+\u0015\u0000\u1858\u1859\u0003\u000f\u0007\u0000\u1859"+ + "\u185a\u0003\u001d\u000e\u0000\u185a\u185b\u0003\u0011\b\u0000\u185b\u043c"+ + "\u0001\u0000\u0000\u0000\u185c\u185d\u0003+\u0015\u0000\u185d\u185e\u0003"+ + "\u000f\u0007\u0000\u185e\u185f\u0003!\u0010\u0000\u185f\u1860\u0003+\u0015"+ + "\u0000\u1860\u1861\u0003\u0017\u000b\u0000\u1861\u1862\u0003-\u0016\u0000"+ + "\u1862\u1863\u0003\u0017\u000b\u0000\u1863\u1864\u00031\u0018\u0000\u1864"+ + "\u1865\u0003\u000f\u0007\u0000\u1865\u043e\u0001\u0000\u0000\u0000\u1866"+ + "\u1867\u0003+\u0015\u0000\u1867\u1868\u0003\u000f\u0007\u0000\u1868\u1869"+ + "\u0003\'\u0013\u0000\u1869\u186a\u0003/\u0017\u0000\u186a\u186b\u0003"+ + "\u000f\u0007\u0000\u186b\u186c\u0003!\u0010\u0000\u186c\u186d\u0003\u000b"+ + "\u0005\u0000\u186d\u186e\u0003\u000f\u0007\u0000\u186e\u0440\u0001\u0000"+ + "\u0000\u0000\u186f\u1870\u0003+\u0015\u0000\u1870\u1871\u0003\u000f\u0007"+ + "\u0000\u1871\u1872\u0003\'\u0013\u0000\u1872\u1873\u0003/\u0017\u0000"+ + "\u1873\u1874\u0003\u000f\u0007\u0000\u1874\u1875\u0003!\u0010\u0000\u1875"+ + "\u1876\u0003\u000b\u0005\u0000\u1876\u1877\u0003\u000f\u0007\u0000\u1877"+ + "\u1878\u0003+\u0015\u0000\u1878\u0442\u0001\u0000\u0000\u0000\u1879\u187a"+ + "\u0003+\u0015\u0000\u187a\u187b\u0003\u000f\u0007\u0000\u187b\u187c\u0003"+ + ")\u0014\u0000\u187c\u187d\u0003\u0017\u000b\u0000\u187d\u187e\u0003\u0007"+ + "\u0003\u0000\u187e\u187f\u0003\u001d\u000e\u0000\u187f\u1880\u0003\u0017"+ + "\u000b\u0000\u1880\u1881\u00039\u001c\u0000\u1881\u1882\u0003\u0007\u0003"+ + "\u0000\u1882\u1883\u0003\t\u0004\u0000\u1883\u1884\u0003\u001d\u000e\u0000"+ + "\u1884\u1885\u0003\u000f\u0007\u0000\u1885\u0444\u0001\u0000\u0000\u0000"+ + "\u1886\u1887\u0003+\u0015\u0000\u1887\u1888\u0003\u000f\u0007\u0000\u1888"+ + "\u1889\u0003)\u0014\u0000\u1889\u188a\u00031\u0018\u0000\u188a\u188b\u0003"+ + "\u000f\u0007\u0000\u188b\u188c\u0003)\u0014\u0000\u188c\u188d\u0005_\u0000"+ + "\u0000\u188d\u188e\u0003!\u0010\u0000\u188e\u188f\u0003\u0007\u0003\u0000"+ + "\u188f\u1890\u0003\u001f\u000f\u0000\u1890\u1891\u0003\u000f\u0007\u0000"+ + "\u1891\u0446\u0001\u0000\u0000\u0000\u1892\u1893\u0003+\u0015\u0000\u1893"+ + "\u1894\u0003\u000f\u0007\u0000\u1894\u1895\u0003+\u0015\u0000\u1895\u1896"+ + "\u0003+\u0015\u0000\u1896\u1897\u0003\u0017\u000b\u0000\u1897\u1898\u0003"+ + "#\u0011\u0000\u1898\u1899\u0003!\u0010\u0000\u1899\u0448\u0001\u0000\u0000"+ + "\u0000\u189a\u189b\u0003+\u0015\u0000\u189b\u189c\u0003\u000f\u0007\u0000"+ + "\u189c\u189d\u0003+\u0015\u0000\u189d\u189e\u0003+\u0015\u0000\u189e\u189f"+ + "\u0003\u0017\u000b\u0000\u189f\u18a0\u0003#\u0011\u0000\u18a0\u18a1\u0003"+ + "!\u0010\u0000\u18a1\u18a2\u0005_\u0000\u0000\u18a2\u18a3\u0003/\u0017"+ + "\u0000\u18a3\u18a4\u0003+\u0015\u0000\u18a4\u18a5\u0003\u000f\u0007\u0000"+ + "\u18a5\u18a6\u0003)\u0014\u0000\u18a6\u044a\u0001\u0000\u0000\u0000\u18a7"+ + "\u18a8\u0003+\u0015\u0000\u18a8\u18a9\u0003\u000f\u0007\u0000\u18a9\u18aa"+ + "\u0003-\u0016\u0000\u18aa\u044c\u0001\u0000\u0000\u0000\u18ab\u18ac\u0003"+ + "+\u0015\u0000\u18ac\u18ad\u0003\u000f\u0007\u0000\u18ad\u18ae\u0003-\u0016"+ + "\u0000\u18ae\u18af\u0003#\u0011\u0000\u18af\u18b0\u0003\u0011\b\u0000"+ + "\u18b0\u044e\u0001\u0000\u0000\u0000\u18b1\u18b2\u0003+\u0015\u0000\u18b2"+ + "\u18b3\u0003\u000f\u0007\u0000\u18b3\u18b4\u0003-\u0016\u0000\u18b4\u18b5"+ + "\u0003+\u0015\u0000\u18b5\u0450\u0001\u0000\u0000\u0000\u18b6\u18b7\u0003"+ + "+\u0015\u0000\u18b7\u18b8\u0003\u0015\n\u0000\u18b8\u18b9\u0003\u0007"+ + "\u0003\u0000\u18b9\u18ba\u0003)\u0014\u0000\u18ba\u18bb\u0003\u000f\u0007"+ + "\u0000\u18bb\u0452\u0001\u0000\u0000\u0000\u18bc\u18bd\u0003+\u0015\u0000"+ + "\u18bd\u18be\u0003\u0015\n\u0000\u18be\u18bf\u0003#\u0011\u0000\u18bf"+ + "\u18c0\u00033\u0019\u0000\u18c0\u0454\u0001\u0000\u0000\u0000\u18c1\u18c2"+ + "\u0003+\u0015\u0000\u18c2\u18c3\u0003\u0017\u000b\u0000\u18c3\u18c4\u0003"+ + "\u001f\u000f\u0000\u18c4\u18c5\u0003\u0017\u000b\u0000\u18c5\u18c6\u0003"+ + "\u001d\u000e\u0000\u18c6\u18c7\u0003\u0007\u0003\u0000\u18c7\u18c8\u0003"+ + ")\u0014\u0000\u18c8\u0456\u0001\u0000\u0000\u0000\u18c9\u18ca\u0003+\u0015"+ + "\u0000\u18ca\u18cb\u0003\u0017\u000b\u0000\u18cb\u18cc\u0003\u001f\u000f"+ + "\u0000\u18cc\u18cd\u0003%\u0012\u0000\u18cd\u18ce\u0003\u001d\u000e\u0000"+ + "\u18ce\u18cf\u0003\u000f\u0007\u0000\u18cf\u0458\u0001\u0000\u0000\u0000"+ + "\u18d0\u18d1\u0003+\u0015\u0000\u18d1\u18d2\u0003\u0017\u000b\u0000\u18d2"+ + "\u18d3\u00039\u001c\u0000\u18d3\u18d4\u0003\u000f\u0007\u0000\u18d4\u045a"+ + "\u0001\u0000\u0000\u0000\u18d5\u18d6\u0003+\u0015\u0000\u18d6\u18d7\u0003"+ + "\u001b\r\u0000\u18d7\u18d8\u0003\u0017\u000b\u0000\u18d8\u18d9\u0003%"+ + "\u0012\u0000\u18d9\u045c\u0001\u0000\u0000\u0000\u18da\u18db\u0003+\u0015"+ + "\u0000\u18db\u18dc\u0003\u001f\u000f\u0000\u18dc\u18dd\u0003\u0007\u0003"+ + "\u0000\u18dd\u18de\u0003\u001d\u000e\u0000\u18de\u18df\u0003\u001d\u000e"+ + "\u0000\u18df\u18e0\u0003\u0017\u000b\u0000\u18e0\u18e1\u0003!\u0010\u0000"+ + "\u18e1\u18e2\u0003-\u0016\u0000\u18e2\u045e\u0001\u0000\u0000\u0000\u18e3"+ + "\u18e4\u0003+\u0015\u0000\u18e4\u18e5\u0003!\u0010\u0000\u18e5\u18e6\u0003"+ + "\u0007\u0003\u0000\u18e6\u18e7\u0003%\u0012\u0000\u18e7\u18e8\u0003+\u0015"+ + "\u0000\u18e8\u18e9\u0003\u0015\n\u0000\u18e9\u18ea\u0003#\u0011\u0000"+ + "\u18ea\u18eb\u0003-\u0016\u0000\u18eb\u0460\u0001\u0000\u0000\u0000\u18ec"+ + "\u18ed\u0003+\u0015\u0000\u18ed\u18ee\u0003#\u0011\u0000\u18ee\u18ef\u0003"+ + "\u001f\u000f\u0000\u18ef\u18f0\u0003\u000f\u0007\u0000\u18f0\u0462\u0001"+ + "\u0000\u0000\u0000\u18f1\u18f2\u0003+\u0015\u0000\u18f2\u18f3\u0003#\u0011"+ + "\u0000\u18f3\u18f4\u0003/\u0017\u0000\u18f4\u18f5\u0003)\u0014\u0000\u18f5"+ + "\u18f6\u0003\u000b\u0005\u0000\u18f6\u18f7\u0003\u000f\u0007\u0000\u18f7"+ + "\u0464\u0001\u0000\u0000\u0000\u18f8\u18f9\u0003+\u0015\u0000\u18f9\u18fa"+ + "\u0003%\u0012\u0000\u18fa\u18fb\u0003\u0007\u0003\u0000\u18fb\u18fc\u0003"+ + "\u000b\u0005\u0000\u18fc\u18fd\u0003\u000f\u0007\u0000\u18fd\u0466\u0001"+ + "\u0000\u0000\u0000\u18fe\u18ff\u0003+\u0015\u0000\u18ff\u1900\u0003%\u0012"+ + "\u0000\u1900\u1901\u0003\u000f\u0007\u0000\u1901\u1902\u0003\u000b\u0005"+ + "\u0000\u1902\u1903\u0003\u0017\u000b\u0000\u1903\u1904\u0003\u0011\b\u0000"+ + "\u1904\u1905\u0003\u0017\u000b\u0000\u1905\u1906\u0003\u000b\u0005\u0000"+ + "\u1906\u0468\u0001\u0000\u0000\u0000\u1907\u1908\u0003+\u0015\u0000\u1908"+ + "\u1909\u0003%\u0012\u0000\u1909\u190a\u0003\u000f\u0007\u0000\u190a\u190b"+ + "\u0003\u000b\u0005\u0000\u190b\u190c\u0003\u0017\u000b\u0000\u190c\u190d"+ + "\u0003\u0011\b\u0000\u190d\u190e\u0003\u0017\u000b\u0000\u190e\u190f\u0003"+ + "\u000b\u0005\u0000\u190f\u1910\u0005_\u0000\u0000\u1910\u1911\u0003!\u0010"+ + "\u0000\u1911\u1912\u0003\u0007\u0003\u0000\u1912\u1913\u0003\u001f\u000f"+ + "\u0000\u1913\u1914\u0003\u000f\u0007\u0000\u1914\u046a\u0001\u0000\u0000"+ + "\u0000\u1915\u1916\u0003+\u0015\u0000\u1916\u1917\u0003%\u0012\u0000\u1917"+ + "\u1918\u0003\u000f\u0007\u0000\u1918\u1919\u0003\u000b\u0005\u0000\u1919"+ + "\u191a\u0003\u0017\u000b\u0000\u191a\u191b\u0003\u0011\b\u0000\u191b\u191c"+ + "\u0003\u0017\u000b\u0000\u191c\u191d\u0003\u000b\u0005\u0000\u191d\u191e"+ + "\u0003-\u0016\u0000\u191e\u191f\u00037\u001b\u0000\u191f\u1920\u0003%"+ + "\u0012\u0000\u1920\u1921\u0003\u000f\u0007\u0000\u1921\u046c\u0001\u0000"+ + "\u0000\u0000\u1922\u1923\u0003+\u0015\u0000\u1923\u1924\u0003\'\u0013"+ + "\u0000\u1924\u1925\u0003\u001d\u000e\u0000\u1925\u046e\u0001\u0000\u0000"+ + "\u0000\u1926\u1927\u0003+\u0015\u0000\u1927\u1928\u0003\'\u0013\u0000"+ + "\u1928\u1929\u0003\u001d\u000e\u0000\u1929\u192a\u0003\u000b\u0005\u0000"+ + "\u192a\u192b\u0003#\u0011\u0000\u192b\u192c\u0003\r\u0006\u0000\u192c"+ + "\u192d\u0003\u000f\u0007\u0000\u192d\u0470\u0001\u0000\u0000\u0000\u192e"+ + "\u192f\u0003+\u0015\u0000\u192f\u1930\u0003\'\u0013\u0000\u1930\u1931"+ + "\u0003\u001d\u000e\u0000\u1931\u1932\u0003\u000f\u0007\u0000\u1932\u1933"+ + "\u0003)\u0014\u0000\u1933\u1934\u0003)\u0014\u0000\u1934\u1935\u0003#"+ + "\u0011\u0000\u1935\u1936\u0003)\u0014\u0000\u1936\u0472\u0001\u0000\u0000"+ + "\u0000\u1937\u1938\u0003+\u0015\u0000\u1938\u1939\u0003\'\u0013\u0000"+ + "\u1939\u193a\u0003\u001d\u000e\u0000\u193a\u193b\u0003\u000f\u0007\u0000"+ + "\u193b\u193c\u00035\u001a\u0000\u193c\u193d\u0003\u000b\u0005\u0000\u193d"+ + "\u193e\u0003\u000f\u0007\u0000\u193e\u193f\u0003%\u0012\u0000\u193f\u1940"+ + "\u0003-\u0016\u0000\u1940\u1941\u0003\u0017\u000b\u0000\u1941\u1942\u0003"+ + "#\u0011\u0000\u1942\u1943\u0003!\u0010\u0000\u1943\u0474\u0001\u0000\u0000"+ + "\u0000\u1944\u1945\u0003+\u0015\u0000\u1945\u1946\u0003\'\u0013\u0000"+ + "\u1946\u1947\u0003\u001d\u000e\u0000\u1947\u1948\u0003+\u0015\u0000\u1948"+ + "\u1949\u0003-\u0016\u0000\u1949\u194a\u0003\u0007\u0003\u0000\u194a\u194b"+ + "\u0003-\u0016\u0000\u194b\u194c\u0003\u000f\u0007\u0000\u194c\u0476\u0001"+ + "\u0000\u0000\u0000\u194d\u194e\u0003+\u0015\u0000\u194e\u194f\u0003\'"+ + "\u0013\u0000\u194f\u1950\u0003\u001d\u000e\u0000\u1950\u1951\u00033\u0019"+ + "\u0000\u1951\u1952\u0003\u0007\u0003\u0000\u1952\u1953\u0003)\u0014\u0000"+ + "\u1953\u1954\u0003!\u0010\u0000\u1954\u1955\u0003\u0017\u000b\u0000\u1955"+ + "\u1956\u0003!\u0010\u0000\u1956\u1957\u0003\u0013\t\u0000\u1957\u0478"+ + "\u0001\u0000\u0000\u0000\u1958\u1959\u0003+\u0015\u0000\u1959\u195a\u0003"+ + "\'\u0013\u0000\u195a\u195b\u0003)\u0014\u0000\u195b\u195c\u0003-\u0016"+ + "\u0000\u195c\u047a\u0001\u0000\u0000\u0000\u195d\u195e\u0003+\u0015\u0000"+ + "\u195e\u195f\u0003-\u0016\u0000\u195f\u1960\u0003\u0007\u0003\u0000\u1960"+ + "\u1961\u0003\t\u0004\u0000\u1961\u1962\u0003\u001d\u000e\u0000\u1962\u1963"+ + "\u0003\u000f\u0007\u0000\u1963\u047c\u0001\u0000\u0000\u0000\u1964\u1965"+ + "\u0003+\u0015\u0000\u1965\u1966\u0003-\u0016\u0000\u1966\u1967\u0003\u0007"+ + "\u0003\u0000\u1967\u1968\u0003)\u0014\u0000\u1968\u1969\u0003-\u0016\u0000"+ + "\u1969\u047e\u0001\u0000\u0000\u0000\u196a\u196b\u0003+\u0015\u0000\u196b"+ + "\u196c\u0003-\u0016\u0000\u196c\u196d\u0003\u0007\u0003\u0000\u196d\u196e"+ + "\u0003-\u0016\u0000\u196e\u196f\u0003\u000f\u0007\u0000\u196f\u0480\u0001"+ + "\u0000\u0000\u0000\u1970\u1971\u0003+\u0015\u0000\u1971\u1972\u0003-\u0016"+ + "\u0000\u1972\u1973\u0003\u0007\u0003\u0000\u1973\u1974\u0003-\u0016\u0000"+ + "\u1974\u1975\u0003\u000f\u0007\u0000\u1975\u1976\u0003\u001f\u000f\u0000"+ + "\u1976\u1977\u0003\u000f\u0007\u0000\u1977\u1978\u0003!\u0010\u0000\u1978"+ + "\u1979\u0003-\u0016\u0000\u1979\u0482\u0001\u0000\u0000\u0000\u197a\u197b"+ + "\u0003+\u0015\u0000\u197b\u197c\u0003-\u0016\u0000\u197c\u197d\u0003\u0007"+ + "\u0003\u0000\u197d\u197e\u0003-\u0016\u0000\u197e\u197f\u0003\u0017\u000b"+ + "\u0000\u197f\u1980\u0003\u000b\u0005\u0000\u1980\u0484\u0001\u0000\u0000"+ + "\u0000\u1981\u1982\u0003+\u0015\u0000\u1982\u1983\u0003-\u0016\u0000\u1983"+ + "\u1984\u0003\u0007\u0003\u0000\u1984\u1985\u0003-\u0016\u0000\u1985\u1986"+ + "\u0003\u0017\u000b\u0000\u1986\u1987\u0003+\u0015\u0000\u1987\u1988\u0003"+ + "-\u0016\u0000\u1988\u1989\u0003\u0017\u000b\u0000\u1989\u198a\u0003\u000b"+ + "\u0005\u0000\u198a\u198b\u0003+\u0015\u0000\u198b\u0486\u0001\u0000\u0000"+ + "\u0000\u198c\u198d\u0003+\u0015\u0000\u198d\u198e\u0003-\u0016\u0000\u198e"+ + "\u198f\u0003\r\u0006\u0000\u198f\u1990\u0003\r\u0006\u0000\u1990\u1991"+ + "\u0003\u000f\u0007\u0000\u1991\u1992\u00031\u0018\u0000\u1992\u1993\u0005"+ + "_\u0000\u0000\u1993\u1994\u0003%\u0012\u0000\u1994\u1995\u0003#\u0011"+ + "\u0000\u1995\u1996\u0003%\u0012\u0000\u1996\u0488\u0001\u0000\u0000\u0000"+ + "\u1997\u1998\u0003+\u0015\u0000\u1998\u1999\u0003-\u0016\u0000\u1999\u199a"+ + "\u0003\r\u0006\u0000\u199a\u199b\u0003\r\u0006\u0000\u199b\u199c\u0003"+ + "\u000f\u0007\u0000\u199c\u199d\u00031\u0018\u0000\u199d\u199e\u0005_\u0000"+ + "\u0000\u199e\u199f\u0003+\u0015\u0000\u199f\u19a0\u0003\u0007\u0003\u0000"+ + "\u19a0\u19a1\u0003\u001f\u000f\u0000\u19a1\u19a2\u0003%\u0012\u0000\u19a2"+ + "\u048a\u0001\u0000\u0000\u0000\u19a3\u19a4\u0003+\u0015\u0000\u19a4\u19a5"+ + "\u0003-\u0016\u0000\u19a5\u19a6\u0003\r\u0006\u0000\u19a6\u19a7\u0003"+ + "\u0017\u000b\u0000\u19a7\u19a8\u0003!\u0010\u0000\u19a8\u048c\u0001\u0000"+ + "\u0000\u0000\u19a9\u19aa\u0003+\u0015\u0000\u19aa\u19ab\u0003-\u0016\u0000"+ + "\u19ab\u19ac\u0003\r\u0006\u0000\u19ac\u19ad\u0003#\u0011\u0000\u19ad"+ + "\u19ae\u0003/\u0017\u0000\u19ae\u19af\u0003-\u0016\u0000\u19af\u048e\u0001"+ + "\u0000\u0000\u0000\u19b0\u19b1\u0003+\u0015\u0000\u19b1\u19b2\u0003-\u0016"+ + "\u0000\u19b2\u19b3\u0003#\u0011\u0000\u19b3\u19b4\u0003)\u0014\u0000\u19b4"+ + "\u19b5\u0003\u0007\u0003\u0000\u19b5\u19b6\u0003\u0013\t\u0000\u19b6\u19b7"+ + "\u0003\u000f\u0007\u0000\u19b7\u0490\u0001\u0000\u0000\u0000\u19b8\u19b9"+ + "\u0003+\u0015\u0000\u19b9\u19ba\u0003-\u0016\u0000\u19ba\u19bb\u0003)"+ + "\u0014\u0000\u19bb\u19bc\u0003\u0017\u000b\u0000\u19bc\u19bd\u0003\u000b"+ + "\u0005\u0000\u19bd\u19be\u0003-\u0016\u0000\u19be\u0492\u0001\u0000\u0000"+ + "\u0000\u19bf\u19c0\u0003+\u0015\u0000\u19c0\u19c1\u0003-\u0016\u0000\u19c1"+ + "\u19c2\u0003)\u0014\u0000\u19c2\u19c3\u0003/\u0017\u0000\u19c3\u19c4\u0003"+ + "\u000b\u0005\u0000\u19c4\u19c5\u0003-\u0016\u0000\u19c5\u19c6\u0003/\u0017"+ + "\u0000\u19c6\u19c7\u0003)\u0014\u0000\u19c7\u19c8\u0003\u000f\u0007\u0000"+ + "\u19c8\u0494\u0001\u0000\u0000\u0000\u19c9\u19ca\u0003+\u0015\u0000\u19ca"+ + "\u19cb\u0003-\u0016\u0000\u19cb\u19cc\u00037\u001b\u0000\u19cc\u19cd\u0003"+ + "\u001d\u000e\u0000\u19cd\u19ce\u0003\u000f\u0007\u0000\u19ce\u0496\u0001"+ + "\u0000\u0000\u0000\u19cf\u19d0\u0003+\u0015\u0000\u19d0\u19d1\u0003/\u0017"+ + "\u0000\u19d1\u19d2\u0003\t\u0004\u0000\u19d2\u19d3\u0003\u000b\u0005\u0000"+ + "\u19d3\u19d4\u0003\u001d\u000e\u0000\u19d4\u19d5\u0003\u0007\u0003\u0000"+ + "\u19d5\u19d6\u0003+\u0015\u0000\u19d6\u19d7\u0003+\u0015\u0000\u19d7\u19d8"+ + "\u0005_\u0000\u0000\u19d8\u19d9\u0003#\u0011\u0000\u19d9\u19da\u0003)"+ + "\u0014\u0000\u19da\u19db\u0003\u0017\u000b\u0000\u19db\u19dc\u0003\u0013"+ + "\t\u0000\u19dc\u19dd\u0003\u0017\u000b\u0000\u19dd\u19de\u0003!\u0010"+ + "\u0000\u19de\u0498\u0001\u0000\u0000\u0000\u19df\u19e0\u0003+\u0015\u0000"+ + "\u19e0\u19e1\u0003/\u0017\u0000\u19e1\u19e2\u0003\t\u0004\u0000\u19e2"+ + "\u19e3\u0003\u001d\u000e\u0000\u19e3\u19e4\u0003\u0017\u000b\u0000\u19e4"+ + "\u19e5\u0003+\u0015\u0000\u19e5\u19e6\u0003-\u0016\u0000\u19e6\u049a\u0001"+ + "\u0000\u0000\u0000\u19e7\u19e8\u0003+\u0015\u0000\u19e8\u19e9\u0003/\u0017"+ + "\u0000\u19e9\u19ea\u0003\t\u0004\u0000\u19ea\u19eb\u0003\u001f\u000f\u0000"+ + "\u19eb\u19ec\u0003/\u0017\u0000\u19ec\u19ed\u0003\u001d\u000e\u0000\u19ed"+ + "\u19ee\u0003-\u0016\u0000\u19ee\u19ef\u0003\u0017\u000b\u0000\u19ef\u19f0"+ + "\u0003+\u0015\u0000\u19f0\u19f1\u0003\u000f\u0007\u0000\u19f1\u19f2\u0003"+ + "-\u0016\u0000\u19f2\u049c\u0001\u0000\u0000\u0000\u19f3\u19f4\u0003+\u0015"+ + "\u0000\u19f4\u19f5\u0003/\u0017\u0000\u19f5\u19f6\u0003\t\u0004\u0000"+ + "\u19f6\u19f7\u0003+\u0015\u0000\u19f7\u19f8\u0003\u000b\u0005\u0000\u19f8"+ + "\u19f9\u0003)\u0014\u0000\u19f9\u19fa\u0003\u0017\u000b\u0000\u19fa\u19fb"+ + "\u0003%\u0012\u0000\u19fb\u19fc\u0003-\u0016\u0000\u19fc\u19fd\u0003\u0017"+ + "\u000b\u0000\u19fd\u19fe\u0003#\u0011\u0000\u19fe\u19ff\u0003!\u0010\u0000"+ + "\u19ff\u049e\u0001\u0000\u0000\u0000\u1a00\u1a01\u0003+\u0015\u0000\u1a01"+ + "\u1a02\u0003/\u0017\u0000\u1a02\u1a03\u0003\t\u0004\u0000\u1a03\u1a04"+ + "\u0003+\u0015\u0000\u1a04\u1a05\u0003-\u0016\u0000\u1a05\u1a06\u0003)"+ + "\u0014\u0000\u1a06\u1a07\u0003\u0017\u000b\u0000\u1a07\u1a08\u0003!\u0010"+ + "\u0000\u1a08\u1a09\u0003\u0013\t\u0000\u1a09\u04a0\u0001\u0000\u0000\u0000"+ + "\u1a0a\u1a0b\u0003+\u0015\u0000\u1a0b\u1a0c\u0003/\u0017\u0000\u1a0c\u1a0d"+ + "\u0003\u001f\u000f\u0000\u1a0d\u04a2\u0001\u0000\u0000\u0000\u1a0e\u1a0f"+ + "\u0003+\u0015\u0000\u1a0f\u1a10\u00037\u001b\u0000\u1a10\u1a11\u0003\u001f"+ + "\u000f\u0000\u1a11\u1a12\u0003\u001f\u000f\u0000\u1a12\u1a13\u0003\u000f"+ + "\u0007\u0000\u1a13\u1a14\u0003-\u0016\u0000\u1a14\u1a15\u0003)\u0014\u0000"+ + "\u1a15\u1a16\u0003\u0017\u000b\u0000\u1a16\u1a17\u0003\u000b\u0005\u0000"+ + "\u1a17\u04a4\u0001\u0000\u0000\u0000\u1a18\u1a19\u0003+\u0015\u0000\u1a19"+ + "\u1a1a\u00037\u001b\u0000\u1a1a\u1a1b\u0003+\u0015\u0000\u1a1b\u1a1c\u0003"+ + "\u0017\u000b\u0000\u1a1c\u1a1d\u0003\r\u0006\u0000\u1a1d\u04a6\u0001\u0000"+ + "\u0000\u0000\u1a1e\u1a1f\u0003+\u0015\u0000\u1a1f\u1a20\u00037\u001b\u0000"+ + "\u1a20\u1a21\u0003+\u0015\u0000\u1a21\u1a22\u0003-\u0016\u0000\u1a22\u1a23"+ + "\u0003\u000f\u0007\u0000\u1a23\u1a24\u0003\u001f\u000f\u0000\u1a24\u04a8"+ + "\u0001\u0000\u0000\u0000\u1a25\u1a26\u0003+\u0015\u0000\u1a26\u1a27\u0003"+ + "7\u001b\u0000\u1a27\u1a28\u0003+\u0015\u0000\u1a28\u1a29\u0003-\u0016"+ + "\u0000\u1a29\u1a2a\u0003\u000f\u0007\u0000\u1a2a\u1a2b\u0003\u001f\u000f"+ + "\u0000\u1a2b\u1a2c\u0005_\u0000\u0000\u1a2c\u1a2d\u0003/\u0017\u0000\u1a2d"+ + "\u1a2e\u0003+\u0015\u0000\u1a2e\u1a2f\u0003\u000f\u0007\u0000\u1a2f\u1a30"+ + "\u0003)\u0014\u0000\u1a30\u04aa\u0001\u0000\u0000\u0000\u1a31\u1a32\u0003"+ + "-\u0016\u0000\u1a32\u1a33\u0003\u0007\u0003\u0000\u1a33\u1a34\u0003\t"+ + "\u0004\u0000\u1a34\u1a35\u0003\u001d\u000e\u0000\u1a35\u1a36\u0003\u000f"+ + "\u0007\u0000\u1a36\u04ac\u0001\u0000\u0000\u0000\u1a37\u1a38\u0003-\u0016"+ + "\u0000\u1a38\u1a39\u0003\u0007\u0003\u0000\u1a39\u1a3a\u0003\t\u0004\u0000"+ + "\u1a3a\u1a3b\u0003\u001d\u000e\u0000\u1a3b\u1a3c\u0003\u000f\u0007\u0000"+ + "\u1a3c\u1a3d\u0005_\u0000\u0000\u1a3d\u1a3e\u0003!\u0010\u0000\u1a3e\u1a3f"+ + "\u0003\u0007\u0003\u0000\u1a3f\u1a40\u0003\u001f\u000f\u0000\u1a40\u1a41"+ + "\u0003\u000f\u0007\u0000\u1a41\u04ae\u0001\u0000\u0000\u0000\u1a42\u1a43"+ + "\u0003-\u0016\u0000\u1a43\u1a44\u0003\u0007\u0003\u0000\u1a44\u1a45\u0003"+ + "\t\u0004\u0000\u1a45\u1a46\u0003\u001d\u000e\u0000\u1a46\u1a47\u0003\u000f"+ + "\u0007\u0000\u1a47\u1a48\u0003+\u0015\u0000\u1a48\u1a49\u0003\u0007\u0003"+ + "\u0000\u1a49\u1a4a\u0003\u001f\u000f\u0000\u1a4a\u1a4b\u0003%\u0012\u0000"+ + "\u1a4b\u1a4c\u0003\u001d\u000e\u0000\u1a4c\u1a4d\u0003\u000f\u0007\u0000"+ + "\u1a4d\u04b0\u0001\u0000\u0000\u0000\u1a4e\u1a4f\u0003-\u0016\u0000\u1a4f"+ + "\u1a50\u0003\u0007\u0003\u0000\u1a50\u1a51\u0003\t\u0004\u0000\u1a51\u1a52"+ + "\u0003\u001d\u000e\u0000\u1a52\u1a53\u0003\u000f\u0007\u0000\u1a53\u1a54"+ + "\u0003+\u0015\u0000\u1a54\u1a55\u0003%\u0012\u0000\u1a55\u1a56\u0003\u0007"+ + "\u0003\u0000\u1a56\u1a57\u0003\u000b\u0005\u0000\u1a57\u1a58\u0003\u000f"+ + "\u0007\u0000\u1a58\u04b2\u0001\u0000\u0000\u0000\u1a59\u1a5a\u0003-\u0016"+ + "\u0000\u1a5a\u1a5b\u0003\u000f\u0007\u0000\u1a5b\u1a5c\u0003\u001f\u000f"+ + "\u0000\u1a5c\u1a5d\u0003%\u0012\u0000\u1a5d\u04b4\u0001\u0000\u0000\u0000"+ + "\u1a5e\u1a5f\u0003-\u0016\u0000\u1a5f\u1a60\u0003\u000f\u0007\u0000\u1a60"+ + "\u1a61\u0003\u001f\u000f\u0000\u1a61\u1a62\u0003%\u0012\u0000\u1a62\u1a63"+ + "\u0003\u001d\u000e\u0000\u1a63\u1a64\u0003\u0007\u0003\u0000\u1a64\u1a65"+ + "\u0003-\u0016\u0000\u1a65\u1a66\u0003\u000f\u0007\u0000\u1a66\u04b6\u0001"+ + "\u0000\u0000\u0000\u1a67\u1a68\u0003-\u0016\u0000\u1a68\u1a69\u0003\u000f"+ + "\u0007\u0000\u1a69\u1a6a\u0003\u001f\u000f\u0000\u1a6a\u1a6b\u0003%\u0012"+ + "\u0000\u1a6b\u1a6c\u0003#\u0011\u0000\u1a6c\u1a6d\u0003)\u0014\u0000\u1a6d"+ + "\u1a6e\u0003\u0007\u0003\u0000\u1a6e\u1a6f\u0003)\u0014\u0000\u1a6f\u1a70"+ + "\u00037\u001b\u0000\u1a70\u04b8\u0001\u0000\u0000\u0000\u1a71\u1a72\u0003"+ + "-\u0016\u0000\u1a72\u1a73\u0003\u000f\u0007\u0000\u1a73\u1a74\u0003)\u0014"+ + "\u0000\u1a74\u1a75\u0003\u001f\u000f\u0000\u1a75\u1a76\u0003\u0017\u000b"+ + "\u0000\u1a76\u1a77\u0003!\u0010\u0000\u1a77\u1a78\u0003\u0007\u0003\u0000"+ + "\u1a78\u1a79\u0003-\u0016\u0000\u1a79\u1a7a\u0003\u000f\u0007\u0000\u1a7a"+ + "\u04ba\u0001\u0000\u0000\u0000\u1a7b\u1a7c\u0003-\u0016\u0000\u1a7c\u1a7d"+ + "\u0003\u0015\n\u0000\u1a7d\u1a7e\u0003\u0007\u0003\u0000\u1a7e\u1a7f\u0003"+ + "!\u0010\u0000\u1a7f\u04bc\u0001\u0000\u0000\u0000\u1a80\u1a81\u0003-\u0016"+ + "\u0000\u1a81\u1a82\u0003\u0015\n\u0000\u1a82\u1a83\u0003\u000f\u0007\u0000"+ + "\u1a83\u1a84\u0003!\u0010\u0000\u1a84\u04be\u0001\u0000\u0000\u0000\u1a85"+ + "\u1a86\u0003-\u0016\u0000\u1a86\u1a87\u0003\u0017\u000b\u0000\u1a87\u1a88"+ + "\u0003\u000f\u0007\u0000\u1a88\u1a89\u0003+\u0015\u0000\u1a89\u04c0\u0001"+ + "\u0000\u0000\u0000\u1a8a\u1a8b\u0003-\u0016\u0000\u1a8b\u1a8c\u0003\u0017"+ + "\u000b\u0000\u1a8c\u1a8d\u0003\u001f\u000f\u0000\u1a8d\u1a8e\u0003\u000f"+ + "\u0007\u0000\u1a8e\u04c2\u0001\u0000\u0000\u0000\u1a8f\u1a90\u0003-\u0016"+ + "\u0000\u1a90\u1a91\u0003\u0017\u000b\u0000\u1a91\u1a92\u0003\u001f\u000f"+ + "\u0000\u1a92\u1a93\u0003\u000f\u0007\u0000\u1a93\u1a94\u0003+\u0015\u0000"+ + "\u1a94\u1a95\u0003-\u0016\u0000\u1a95\u1a96\u0003\u0007\u0003\u0000\u1a96"+ + "\u1a97\u0003\u001f\u000f\u0000\u1a97\u1a98\u0003%\u0012\u0000\u1a98\u04c4"+ + "\u0001\u0000\u0000\u0000\u1a99\u1a9a\u0003-\u0016\u0000\u1a9a\u1a9b\u0003"+ + "\u0017\u000b\u0000\u1a9b\u1a9c\u0003\u001f\u000f\u0000\u1a9c\u1a9d\u0003"+ + "\u000f\u0007\u0000\u1a9d\u1a9e\u00039\u001c\u0000\u1a9e\u1a9f\u0003#\u0011"+ + "\u0000\u1a9f\u1aa0\u0003!\u0010\u0000\u1aa0\u1aa1\u0003\u000f\u0007\u0000"+ + "\u1aa1\u1aa2\u0005_\u0000\u0000\u1aa2\u1aa3\u0003\u0015\n\u0000\u1aa3"+ + "\u1aa4\u0003#\u0011\u0000\u1aa4\u1aa5\u0003/\u0017\u0000\u1aa5\u1aa6\u0003"+ + ")\u0014\u0000\u1aa6\u04c6\u0001\u0000\u0000\u0000\u1aa7\u1aa8\u0003-\u0016"+ + "\u0000\u1aa8\u1aa9\u0003\u0017\u000b\u0000\u1aa9\u1aaa\u0003\u001f\u000f"+ + "\u0000\u1aaa\u1aab\u0003\u000f\u0007\u0000\u1aab\u1aac\u00039\u001c\u0000"+ + "\u1aac\u1aad\u0003#\u0011\u0000\u1aad\u1aae\u0003!\u0010\u0000\u1aae\u1aaf"+ + "\u0003\u000f\u0007\u0000\u1aaf\u1ab0\u0005_\u0000\u0000\u1ab0\u1ab1\u0003"+ + "\u001f\u000f\u0000\u1ab1\u1ab2\u0003\u0017\u000b\u0000\u1ab2\u1ab3\u0003"+ + "!\u0010\u0000\u1ab3\u1ab4\u0003/\u0017\u0000\u1ab4\u1ab5\u0003-\u0016"+ + "\u0000\u1ab5\u1ab6\u0003\u000f\u0007\u0000\u1ab6\u04c8\u0001\u0000\u0000"+ + "\u0000\u1ab7\u1ab8\u0003-\u0016\u0000\u1ab8\u1ab9\u0003\u0017\u000b\u0000"+ + "\u1ab9\u1aba\u0003\u001f\u000f\u0000\u1aba\u1abb\u0003\u0017\u000b\u0000"+ + "\u1abb\u1abc\u0003!\u0010\u0000\u1abc\u1abd\u0003\u0013\t\u0000\u1abd"+ + "\u04ca\u0001\u0000\u0000\u0000\u1abe\u1abf\u0003-\u0016\u0000\u1abf\u1ac0"+ + "\u0003#\u0011\u0000\u1ac0\u04cc\u0001\u0000\u0000\u0000\u1ac1\u1ac2\u0003"+ + "-\u0016\u0000\u1ac2\u1ac3\u0003#\u0011\u0000\u1ac3\u1ac4\u0003\u0007\u0003"+ + "\u0000\u1ac4\u1ac5\u0003+\u0015\u0000\u1ac5\u1ac6\u0003-\u0016\u0000\u1ac6"+ + "\u04ce\u0001\u0000\u0000\u0000\u1ac7\u1ac8\u0003-\u0016\u0000\u1ac8\u1ac9"+ + "\u0003#\u0011\u0000\u1ac9\u1aca\u0003%\u0012\u0000\u1aca\u1acb\u0005_"+ + "\u0000\u0000\u1acb\u1acc\u0003\u001d\u000e\u0000\u1acc\u1acd\u0003\u000f"+ + "\u0007\u0000\u1acd\u1ace\u00031\u0018\u0000\u1ace\u1acf\u0003\u000f\u0007"+ + "\u0000\u1acf\u1ad0\u0003\u001d\u000e\u0000\u1ad0\u1ad1\u0005_\u0000\u0000"+ + "\u1ad1\u1ad2\u0003\u000b\u0005\u0000\u1ad2\u1ad3\u0003#\u0011\u0000\u1ad3"+ + "\u1ad4\u0003/\u0017\u0000\u1ad4\u1ad5\u0003!\u0010\u0000\u1ad5\u1ad6\u0003"+ + "-\u0016\u0000\u1ad6\u04d0\u0001\u0000\u0000\u0000\u1ad7\u1ad8\u0003-\u0016"+ + "\u0000\u1ad8\u1ad9\u0003)\u0014\u0000\u1ad9\u1ada\u0003\u0007\u0003\u0000"+ + "\u1ada\u1adb\u0003\u0017\u000b\u0000\u1adb\u1adc\u0003\u001d\u000e\u0000"+ + "\u1adc\u1add\u0003\u0017\u000b\u0000\u1add\u1ade\u0003!\u0010\u0000\u1ade"+ + "\u1adf\u0003\u0013\t\u0000\u1adf\u04d2\u0001\u0000\u0000\u0000\u1ae0\u1ae1"+ + "\u0003-\u0016\u0000\u1ae1\u1ae2\u0003)\u0014\u0000\u1ae2\u1ae3\u0003\u0007"+ + "\u0003\u0000\u1ae3\u1ae4\u0003!\u0010\u0000\u1ae4\u1ae5\u0003+\u0015\u0000"+ + "\u1ae5\u1ae6\u0003\u0007\u0003\u0000\u1ae6\u1ae7\u0003\u000b\u0005\u0000"+ + "\u1ae7\u1ae8\u0003-\u0016\u0000\u1ae8\u1ae9\u0003\u0017\u000b\u0000\u1ae9"+ + "\u1aea\u0003#\u0011\u0000\u1aea\u1aeb\u0003!\u0010\u0000\u1aeb\u04d4\u0001"+ + "\u0000\u0000\u0000\u1aec\u1aed\u0003-\u0016\u0000\u1aed\u1aee\u0003)\u0014"+ + "\u0000\u1aee\u1aef\u0003\u0007\u0003\u0000\u1aef\u1af0\u0003!\u0010\u0000"+ + "\u1af0\u1af1\u0003+\u0015\u0000\u1af1\u1af2\u0003\u0007\u0003\u0000\u1af2"+ + "\u1af3\u0003\u000b\u0005\u0000\u1af3\u1af4\u0003-\u0016\u0000\u1af4\u1af5"+ + "\u0003\u0017\u000b\u0000\u1af5\u1af6\u0003#\u0011\u0000\u1af6\u1af7\u0003"+ + "!\u0010\u0000\u1af7\u1af8\u0005_\u0000\u0000\u1af8\u1af9\u0003\u0007\u0003"+ + "\u0000\u1af9\u1afa\u0003\u000b\u0005\u0000\u1afa\u1afb\u0003-\u0016\u0000"+ + "\u1afb\u1afc\u0003\u0017\u000b\u0000\u1afc\u1afd\u00031\u0018\u0000\u1afd"+ + "\u1afe\u0003\u000f\u0007\u0000\u1afe\u04d6\u0001\u0000\u0000\u0000\u1aff"+ + "\u1b00\u0003-\u0016\u0000\u1b00\u1b01\u0003)\u0014\u0000\u1b01\u1b02\u0003"+ + "\u0007\u0003\u0000\u1b02\u1b03\u0003!\u0010\u0000\u1b03\u1b04\u0003+\u0015"+ + "\u0000\u1b04\u1b05\u0003\u0007\u0003\u0000\u1b05\u1b06\u0003\u000b\u0005"+ + "\u0000\u1b06\u1b07\u0003-\u0016\u0000\u1b07\u1b08\u0003\u0017\u000b\u0000"+ + "\u1b08\u1b09\u0003#\u0011\u0000\u1b09\u1b0a\u0003!\u0010\u0000\u1b0a\u1b0b"+ + "\u0003+\u0015\u0000\u1b0b\u1b0c\u0005_\u0000\u0000\u1b0c\u1b0d\u0003\u000b"+ + "\u0005\u0000\u1b0d\u1b0e\u0003#\u0011\u0000\u1b0e\u1b0f\u0003\u001f\u000f"+ + "\u0000\u1b0f\u1b10\u0003\u001f\u000f\u0000\u1b10\u1b11\u0003\u0017\u000b"+ + "\u0000\u1b11\u1b12\u0003-\u0016\u0000\u1b12\u1b13\u0003-\u0016\u0000\u1b13"+ + "\u1b14\u0003\u000f\u0007\u0000\u1b14\u1b15\u0003\r\u0006\u0000\u1b15\u04d8"+ + "\u0001\u0000\u0000\u0000\u1b16\u1b17\u0003-\u0016\u0000\u1b17\u1b18\u0003"+ + ")\u0014\u0000\u1b18\u1b19\u0003\u0007\u0003\u0000\u1b19\u1b1a\u0003!\u0010"+ + "\u0000\u1b1a\u1b1b\u0003+\u0015\u0000\u1b1b\u1b1c\u0003\u0007\u0003\u0000"+ + "\u1b1c\u1b1d\u0003\u000b\u0005\u0000\u1b1d\u1b1e\u0003-\u0016\u0000\u1b1e"+ + "\u1b1f\u0003\u0017\u000b\u0000\u1b1f\u1b20\u0003#\u0011\u0000\u1b20\u1b21"+ + "\u0003!\u0010\u0000\u1b21\u1b22\u0003+\u0015\u0000\u1b22\u1b23\u0005_"+ + "\u0000\u0000\u1b23\u1b24\u0003)\u0014\u0000\u1b24\u1b25\u0003#\u0011\u0000"+ + "\u1b25\u1b26\u0003\u001d\u000e\u0000\u1b26\u1b27\u0003\u001d\u000e\u0000"+ + "\u1b27\u1b28\u0003\u000f\u0007\u0000\u1b28\u1b29\u0003\r\u0006\u0000\u1b29"+ + "\u1b2a\u0005_\u0000\u0000\u1b2a\u1b2b\u0003\t\u0004\u0000\u1b2b\u1b2c"+ + "\u0003\u0007\u0003\u0000\u1b2c\u1b2d\u0003\u000b\u0005\u0000\u1b2d\u1b2e"+ + "\u0003\u001b\r\u0000\u1b2e\u04da\u0001\u0000\u0000\u0000\u1b2f\u1b30\u0003"+ + "-\u0016\u0000\u1b30\u1b31\u0003)\u0014\u0000\u1b31\u1b32\u0003\u0007\u0003"+ + "\u0000\u1b32\u1b33\u0003!\u0010\u0000\u1b33\u1b34\u0003+\u0015\u0000\u1b34"+ + "\u1b35\u0003\u0011\b\u0000\u1b35\u1b36\u0003#\u0011\u0000\u1b36\u1b37"+ + "\u0003)\u0014\u0000\u1b37\u1b38\u0003\u001f\u000f\u0000\u1b38\u04dc\u0001"+ + "\u0000\u0000\u0000\u1b39\u1b3a\u0003-\u0016\u0000\u1b3a\u1b3b\u0003)\u0014"+ + "\u0000\u1b3b\u1b3c\u0003\u0007\u0003\u0000\u1b3c\u1b3d\u0003!\u0010\u0000"+ + "\u1b3d\u1b3e\u0003+\u0015\u0000\u1b3e\u1b3f\u0003\u0011\b\u0000\u1b3f"+ + "\u1b40\u0003#\u0011\u0000\u1b40\u1b41\u0003)\u0014\u0000\u1b41\u1b42\u0003"+ + "\u001f\u000f\u0000\u1b42\u1b43\u0003+\u0015\u0000\u1b43\u04de\u0001\u0000"+ + "\u0000\u0000\u1b44\u1b45\u0003-\u0016\u0000\u1b45\u1b46\u0003)\u0014\u0000"+ + "\u1b46\u1b47\u0003\u0007\u0003\u0000\u1b47\u1b48\u0003!\u0010\u0000\u1b48"+ + "\u1b49\u0003+\u0015\u0000\u1b49\u1b4a\u0003\u001d\u000e\u0000\u1b4a\u1b4b"+ + "\u0003\u0007\u0003\u0000\u1b4b\u1b4c\u0003-\u0016\u0000\u1b4c\u1b4d\u0003"+ + "\u000f\u0007\u0000\u1b4d\u04e0\u0001\u0000\u0000\u0000\u1b4e\u1b4f\u0003"+ + "-\u0016\u0000\u1b4f\u1b50\u0003)\u0014\u0000\u1b50\u1b51\u0003\u0007\u0003"+ + "\u0000\u1b51\u1b52\u0003!\u0010\u0000\u1b52\u1b53\u0003+\u0015\u0000\u1b53"+ + "\u1b54\u0003\u001d\u000e\u0000\u1b54\u1b55\u0003\u0007\u0003\u0000\u1b55"+ + "\u1b56\u0003-\u0016\u0000\u1b56\u1b57\u0003\u0017\u000b\u0000\u1b57\u1b58"+ + "\u0003#\u0011\u0000\u1b58\u1b59\u0003!\u0010\u0000\u1b59\u04e2\u0001\u0000"+ + "\u0000\u0000\u1b5a\u1b5b\u0003-\u0016\u0000\u1b5b\u1b5c\u0003)\u0014\u0000"+ + "\u1b5c\u1b5d\u0003\u000f\u0007\u0000\u1b5d\u1b5e\u0003\u0007\u0003\u0000"+ + "\u1b5e\u1b5f\u0003-\u0016\u0000\u1b5f\u04e4\u0001\u0000\u0000\u0000\u1b60"+ + "\u1b61\u0003-\u0016\u0000\u1b61\u1b62\u0003)\u0014\u0000\u1b62\u1b63\u0003"+ + "\u0017\u000b\u0000\u1b63\u1b64\u0003\u0013\t\u0000\u1b64\u1b65\u0003\u0013"+ + "\t\u0000\u1b65\u1b66\u0003\u000f\u0007\u0000\u1b66\u1b67\u0003)\u0014"+ + "\u0000\u1b67\u04e6\u0001\u0000\u0000\u0000\u1b68\u1b69\u0003-\u0016\u0000"+ + "\u1b69\u1b6a\u0003)\u0014\u0000\u1b6a\u1b6b\u0003\u0017\u000b\u0000\u1b6b"+ + "\u1b6c\u0003\u0013\t\u0000\u1b6c\u1b6d\u0003\u0013\t\u0000\u1b6d\u1b6e"+ + "\u0003\u000f\u0007\u0000\u1b6e\u1b6f\u0003)\u0014\u0000\u1b6f\u1b70\u0005"+ + "_\u0000\u0000\u1b70\u1b71\u0003\u000b\u0005\u0000\u1b71\u1b72\u0003\u0007"+ + "\u0003\u0000\u1b72\u1b73\u0003-\u0016\u0000\u1b73\u1b74\u0003\u0007\u0003"+ + "\u0000\u1b74\u1b75\u0003\u001d\u000e\u0000\u1b75\u1b76\u0003#\u0011\u0000"+ + "\u1b76\u1b77\u0003\u0013\t\u0000\u1b77\u04e8\u0001\u0000\u0000\u0000\u1b78"+ + "\u1b79\u0003-\u0016\u0000\u1b79\u1b7a\u0003)\u0014\u0000\u1b7a\u1b7b\u0003"+ + "\u0017\u000b\u0000\u1b7b\u1b7c\u0003\u0013\t\u0000\u1b7c\u1b7d\u0003\u0013"+ + "\t\u0000\u1b7d\u1b7e\u0003\u000f\u0007\u0000\u1b7e\u1b7f\u0003)\u0014"+ + "\u0000\u1b7f\u1b80\u0005_\u0000\u0000\u1b80\u1b81\u0003!\u0010\u0000\u1b81"+ + "\u1b82\u0003\u0007\u0003\u0000\u1b82\u1b83\u0003\u001f\u000f\u0000\u1b83"+ + "\u1b84\u0003\u000f\u0007\u0000\u1b84\u04ea\u0001\u0000\u0000\u0000\u1b85"+ + "\u1b86\u0003-\u0016\u0000\u1b86\u1b87\u0003)\u0014\u0000\u1b87\u1b88\u0003"+ + "\u0017\u000b\u0000\u1b88\u1b89\u0003\u0013\t\u0000\u1b89\u1b8a\u0003\u0013"+ + "\t\u0000\u1b8a\u1b8b\u0003\u000f\u0007\u0000\u1b8b\u1b8c\u0003)\u0014"+ + "\u0000\u1b8c\u1b8d\u0005_\u0000\u0000\u1b8d\u1b8e\u0003+\u0015\u0000\u1b8e"+ + "\u1b8f\u0003\u000b\u0005\u0000\u1b8f\u1b90\u0003\u0015\n\u0000\u1b90\u1b91"+ + "\u0003\u000f\u0007\u0000\u1b91\u1b92\u0003\u001f\u000f\u0000\u1b92\u1b93"+ + "\u0003\u0007\u0003\u0000\u1b93\u04ec\u0001\u0000\u0000\u0000\u1b94\u1b95"+ + "\u0003-\u0016\u0000\u1b95\u1b96\u0003)\u0014\u0000\u1b96\u1b97\u0003\u0017"+ + "\u000b\u0000\u1b97\u1b98\u0003\u001f\u000f\u0000\u1b98\u04ee\u0001\u0000"+ + "\u0000\u0000\u1b99\u1b9a\u0003-\u0016\u0000\u1b9a\u1b9b\u0003)\u0014\u0000"+ + "\u1b9b\u1b9c\u0003/\u0017\u0000\u1b9c\u1b9d\u0003\u000f\u0007\u0000\u1b9d"+ + "\u04f0\u0001\u0000\u0000\u0000\u1b9e\u1b9f\u0003-\u0016\u0000\u1b9f\u1ba0"+ + "\u0003)\u0014\u0000\u1ba0\u1ba1\u0003/\u0017\u0000\u1ba1\u1ba2\u0003!"+ + "\u0010\u0000\u1ba2\u1ba3\u0003\u000b\u0005\u0000\u1ba3\u1ba4\u0003\u0007"+ + "\u0003\u0000\u1ba4\u1ba5\u0003-\u0016\u0000\u1ba5\u1ba6\u0003\u000f\u0007"+ + "\u0000\u1ba6\u04f2\u0001\u0000\u0000\u0000\u1ba7\u1ba8\u0003-\u0016\u0000"+ + "\u1ba8\u1ba9\u0003)\u0014\u0000\u1ba9\u1baa\u0003/\u0017\u0000\u1baa\u1bab"+ + "\u0003+\u0015\u0000\u1bab\u1bac\u0003-\u0016\u0000\u1bac\u1bad\u0003\u000f"+ + "\u0007\u0000\u1bad\u1bae\u0003\r\u0006\u0000\u1bae\u04f4\u0001\u0000\u0000"+ + "\u0000\u1baf\u1bb0\u0003-\u0016\u0000\u1bb0\u1bb1\u00037\u001b\u0000\u1bb1"+ + "\u1bb2\u0003%\u0012\u0000\u1bb2\u1bb3\u0003\u000f\u0007\u0000\u1bb3\u04f6"+ + "\u0001\u0000\u0000\u0000\u1bb4\u1bb5\u0003/\u0017\u0000\u1bb5\u1bb6\u0003"+ + "\u000f\u0007\u0000\u1bb6\u1bb7\u0003+\u0015\u0000\u1bb7\u1bb8\u0003\u000b"+ + "\u0005\u0000\u1bb8\u1bb9\u0003\u0007\u0003\u0000\u1bb9\u1bba\u0003%\u0012"+ + "\u0000\u1bba\u1bbb\u0003\u000f\u0007\u0000\u1bbb\u04f8\u0001\u0000\u0000"+ + "\u0000\u1bbc\u1bbd\u0003/\u0017\u0000\u1bbd\u1bbe\u0003!\u0010\u0000\u1bbe"+ + "\u1bbf\u0003\t\u0004\u0000\u1bbf\u1bc0\u0003#\u0011\u0000\u1bc0\u1bc1"+ + "\u0003/\u0017\u0000\u1bc1\u1bc2\u0003!\u0010\u0000\u1bc2\u1bc3\u0003\r"+ + "\u0006\u0000\u1bc3\u1bc4\u0003\u000f\u0007\u0000\u1bc4\u1bc5\u0003\r\u0006"+ + "\u0000\u1bc5\u04fa\u0001\u0000\u0000\u0000\u1bc6\u1bc7\u0003/\u0017\u0000"+ + "\u1bc7\u1bc8\u0003!\u0010\u0000\u1bc8\u1bc9\u0003\u000b\u0005\u0000\u1bc9"+ + "\u1bca\u0003#\u0011\u0000\u1bca\u1bcb\u0003\u001f\u000f\u0000\u1bcb\u1bcc"+ + "\u0003\u001f\u000f\u0000\u1bcc\u1bcd\u0003\u0017\u000b\u0000\u1bcd\u1bce"+ + "\u0003-\u0016\u0000\u1bce\u1bcf\u0003-\u0016\u0000\u1bcf\u1bd0\u0003\u000f"+ + "\u0007\u0000\u1bd0\u1bd1\u0003\r\u0006\u0000\u1bd1\u04fc\u0001\u0000\u0000"+ + "\u0000\u1bd2\u1bd3\u0003/\u0017\u0000\u1bd3\u1bd4\u0003!\u0010\u0000\u1bd4"+ + "\u1bd5\u0003\r\u0006\u0000\u1bd5\u1bd6\u0003\u000f\u0007\u0000\u1bd6\u1bd7"+ + "\u0003)\u0014\u0000\u1bd7\u04fe\u0001\u0000\u0000\u0000\u1bd8\u1bd9\u0003"+ + "/\u0017\u0000\u1bd9\u1bda\u0003!\u0010\u0000\u1bda\u1bdb\u0003\u000f\u0007"+ + "\u0000\u1bdb\u1bdc\u0003!\u0010\u0000\u1bdc\u1bdd\u0003\u000b\u0005\u0000"+ + "\u1bdd\u1bde\u0003)\u0014\u0000\u1bde\u1bdf\u00037\u001b\u0000\u1bdf\u1be0"+ + "\u0003%\u0012\u0000\u1be0\u1be1\u0003-\u0016\u0000\u1be1\u1be2\u0003\u000f"+ + "\u0007\u0000\u1be2\u1be3\u0003\r\u0006\u0000\u1be3\u0500\u0001\u0000\u0000"+ + "\u0000\u1be4\u1be5\u0003/\u0017\u0000\u1be5\u1be6\u0003!\u0010\u0000\u1be6"+ + "\u1be7\u0003\u0017\u000b\u0000\u1be7\u1be8\u0003#\u0011\u0000\u1be8\u1be9"+ + "\u0003!\u0010\u0000\u1be9\u0502\u0001\u0000\u0000\u0000\u1bea\u1beb\u0003"+ + "/\u0017\u0000\u1beb\u1bec\u0003!\u0010\u0000\u1bec\u1bed\u0003\u0017\u000b"+ + "\u0000\u1bed\u1bee\u0003\'\u0013\u0000\u1bee\u1bef\u0003/\u0017\u0000"+ + "\u1bef\u1bf0\u0003\u000f\u0007\u0000\u1bf0\u0504\u0001\u0000\u0000\u0000"+ + "\u1bf1\u1bf2\u0003/\u0017\u0000\u1bf2\u1bf3\u0003!\u0010\u0000\u1bf3\u1bf4"+ + "\u0003\u001b\r\u0000\u1bf4\u1bf5\u0003!\u0010\u0000\u1bf5\u1bf6\u0003"+ + "#\u0011\u0000\u1bf6\u1bf7\u00033\u0019\u0000\u1bf7\u1bf8\u0003!\u0010"+ + "\u0000\u1bf8\u0506\u0001\u0000\u0000\u0000\u1bf9\u1bfa\u0003/\u0017\u0000"+ + "\u1bfa\u1bfb\u0003!\u0010\u0000\u1bfb\u1bfc\u0003\u001d\u000e\u0000\u1bfc"+ + "\u1bfd\u0003\u0017\u000b\u0000\u1bfd\u1bfe\u0003+\u0015\u0000\u1bfe\u1bff"+ + "\u0003-\u0016\u0000\u1bff\u1c00\u0003\u000f\u0007\u0000\u1c00\u1c01\u0003"+ + "!\u0010\u0000\u1c01\u0508\u0001\u0000\u0000\u0000\u1c02\u1c03\u0003/\u0017"+ + "\u0000\u1c03\u1c04\u0003!\u0010\u0000\u1c04\u1c05\u0003!\u0010\u0000\u1c05"+ + "\u1c06\u0003\u0007\u0003\u0000\u1c06\u1c07\u0003\u001f\u000f\u0000\u1c07"+ + "\u1c08\u0003\u000f\u0007\u0000\u1c08\u1c09\u0003\r\u0006\u0000\u1c09\u050a"+ + "\u0001\u0000\u0000\u0000\u1c0a\u1c0b\u0003/\u0017\u0000\u1c0b\u1c0c\u0003"+ + "!\u0010\u0000\u1c0c\u1c0d\u0003!\u0010\u0000\u1c0d\u1c0e\u0003\u000f\u0007"+ + "\u0000\u1c0e\u1c0f\u0003+\u0015\u0000\u1c0f\u1c10\u0003-\u0016\u0000\u1c10"+ + "\u050c\u0001\u0000\u0000\u0000\u1c11\u1c12\u0003/\u0017\u0000\u1c12\u1c13"+ + "\u0003!\u0010\u0000\u1c13\u1c14\u0003-\u0016\u0000\u1c14\u1c15\u0003\u0017"+ + "\u000b\u0000\u1c15\u1c16\u0003\u001d\u000e\u0000\u1c16\u050e\u0001\u0000"+ + "\u0000\u0000\u1c17\u1c18\u0003/\u0017\u0000\u1c18\u1c19\u0003%\u0012\u0000"+ + "\u1c19\u1c1a\u0003\r\u0006\u0000\u1c1a\u1c1b\u0003\u0007\u0003\u0000\u1c1b"+ + "\u1c1c\u0003-\u0016\u0000\u1c1c\u1c1d\u0003\u000f\u0007\u0000\u1c1d\u0510"+ + "\u0001\u0000\u0000\u0000\u1c1e\u1c1f\u0003/\u0017\u0000\u1c1f\u1c20\u0003"+ + "%\u0012\u0000\u1c20\u1c21\u0003%\u0012\u0000\u1c21\u1c22\u0003\u000f\u0007"+ + "\u0000\u1c22\u1c23\u0003)\u0014\u0000\u1c23\u0512\u0001\u0000\u0000\u0000"+ + "\u1c24\u1c25\u0003/\u0017\u0000\u1c25\u1c26\u0003+\u0015\u0000\u1c26\u1c27"+ + "\u0003\u0007\u0003\u0000\u1c27\u1c28\u0003\u0013\t\u0000\u1c28\u1c29\u0003"+ + "\u000f\u0007\u0000\u1c29\u0514\u0001\u0000\u0000\u0000\u1c2a\u1c2b\u0003"+ + "/\u0017\u0000\u1c2b\u1c2c\u0003+\u0015\u0000\u1c2c\u1c2d\u0003\u000f\u0007"+ + "\u0000\u1c2d\u1c2e\u0003)\u0014\u0000\u1c2e\u0516\u0001\u0000\u0000\u0000"+ + "\u1c2f\u1c30\u0003/\u0017\u0000\u1c30\u1c31\u0003+\u0015\u0000\u1c31\u1c32"+ + "\u0003\u000f\u0007\u0000\u1c32\u1c33\u0003)\u0014\u0000\u1c33\u1c34\u0005"+ + "_\u0000\u0000\u1c34\u1c35\u0003\r\u0006\u0000\u1c35\u1c36\u0003\u000f"+ + "\u0007\u0000\u1c36\u1c37\u0003\u0011\b\u0000\u1c37\u1c38\u0003\u0017\u000b"+ + "\u0000\u1c38\u1c39\u0003!\u0010\u0000\u1c39\u1c3a\u0003\u000f\u0007\u0000"+ + "\u1c3a\u1c3b\u0003\r\u0006\u0000\u1c3b\u1c3c\u0005_\u0000\u0000\u1c3c"+ + "\u1c3d\u0003-\u0016\u0000\u1c3d\u1c3e\u00037\u001b\u0000\u1c3e\u1c3f\u0003"+ + "%\u0012\u0000\u1c3f\u1c40\u0003\u000f\u0007\u0000\u1c40\u1c41\u0005_\u0000"+ + "\u0000\u1c41\u1c42\u0003\u000b\u0005\u0000\u1c42\u1c43\u0003\u0007\u0003"+ + "\u0000\u1c43\u1c44\u0003-\u0016\u0000\u1c44\u1c45\u0003\u0007\u0003\u0000"+ + "\u1c45\u1c46\u0003\u001d\u000e\u0000\u1c46\u1c47\u0003#\u0011\u0000\u1c47"+ + "\u1c48\u0003\u0013\t\u0000\u1c48\u0518\u0001\u0000\u0000\u0000\u1c49\u1c4a"+ + "\u0003/\u0017\u0000\u1c4a\u1c4b\u0003+\u0015\u0000\u1c4b\u1c4c\u0003\u000f"+ + "\u0007\u0000\u1c4c\u1c4d\u0003)\u0014\u0000\u1c4d\u1c4e\u0005_\u0000\u0000"+ + "\u1c4e\u1c4f\u0003\r\u0006\u0000\u1c4f\u1c50\u0003\u000f\u0007\u0000\u1c50"+ + "\u1c51\u0003\u0011\b\u0000\u1c51\u1c52\u0003\u0017\u000b\u0000\u1c52\u1c53"+ + "\u0003!\u0010\u0000\u1c53\u1c54\u0003\u000f\u0007\u0000\u1c54\u1c55\u0003"+ + "\r\u0006\u0000\u1c55\u1c56\u0005_\u0000\u0000\u1c56\u1c57\u0003-\u0016"+ + "\u0000\u1c57\u1c58\u00037\u001b\u0000\u1c58\u1c59\u0003%\u0012\u0000\u1c59"+ + "\u1c5a\u0003\u000f\u0007\u0000\u1c5a\u1c5b\u0005_\u0000\u0000\u1c5b\u1c5c"+ + "\u0003\u000b\u0005\u0000\u1c5c\u1c5d\u0003#\u0011\u0000\u1c5d\u1c5e\u0003"+ + "\r\u0006\u0000\u1c5e\u1c5f\u0003\u000f\u0007\u0000\u1c5f\u051a\u0001\u0000"+ + "\u0000\u0000\u1c60\u1c61\u0003/\u0017\u0000\u1c61\u1c62\u0003+\u0015\u0000"+ + "\u1c62\u1c63\u0003\u000f\u0007\u0000\u1c63\u1c64\u0003)\u0014\u0000\u1c64"+ + "\u1c65\u0005_\u0000\u0000\u1c65\u1c66\u0003\r\u0006\u0000\u1c66\u1c67"+ + "\u0003\u000f\u0007\u0000\u1c67\u1c68\u0003\u0011\b\u0000\u1c68\u1c69\u0003"+ + "\u0017\u000b\u0000\u1c69\u1c6a\u0003!\u0010\u0000\u1c6a\u1c6b\u0003\u000f"+ + "\u0007\u0000\u1c6b\u1c6c\u0003\r\u0006\u0000\u1c6c\u1c6d\u0005_\u0000"+ + "\u0000\u1c6d\u1c6e\u0003-\u0016\u0000\u1c6e\u1c6f\u00037\u001b\u0000\u1c6f"+ + "\u1c70\u0003%\u0012\u0000\u1c70\u1c71\u0003\u000f\u0007\u0000\u1c71\u1c72"+ + "\u0005_\u0000\u0000\u1c72\u1c73\u0003!\u0010\u0000\u1c73\u1c74\u0003\u0007"+ + "\u0003\u0000\u1c74\u1c75\u0003\u001f\u000f\u0000\u1c75\u1c76\u0003\u000f"+ + "\u0007\u0000\u1c76\u051c\u0001\u0000\u0000\u0000\u1c77\u1c78\u0003/\u0017"+ + "\u0000\u1c78\u1c79\u0003+\u0015\u0000\u1c79\u1c7a\u0003\u000f\u0007\u0000"+ + "\u1c7a\u1c7b\u0003)\u0014\u0000\u1c7b\u1c7c\u0005_\u0000\u0000\u1c7c\u1c7d"+ + "\u0003\r\u0006\u0000\u1c7d\u1c7e\u0003\u000f\u0007\u0000\u1c7e\u1c7f\u0003"+ + "\u0011\b\u0000\u1c7f\u1c80\u0003\u0017\u000b\u0000\u1c80\u1c81\u0003!"+ + "\u0010\u0000\u1c81\u1c82\u0003\u000f\u0007\u0000\u1c82\u1c83\u0003\r\u0006"+ + "\u0000\u1c83\u1c84\u0005_\u0000\u0000\u1c84\u1c85\u0003-\u0016\u0000\u1c85"+ + "\u1c86\u00037\u001b\u0000\u1c86\u1c87\u0003%\u0012\u0000\u1c87\u1c88\u0003"+ + "\u000f\u0007\u0000\u1c88\u1c89\u0005_\u0000\u0000\u1c89\u1c8a\u0003+\u0015"+ + "\u0000\u1c8a\u1c8b\u0003\u000b\u0005\u0000\u1c8b\u1c8c\u0003\u0015\n\u0000"+ + "\u1c8c\u1c8d\u0003\u000f\u0007\u0000\u1c8d\u1c8e\u0003\u001f\u000f\u0000"+ + "\u1c8e\u1c8f\u0003\u0007\u0003\u0000\u1c8f\u051e\u0001\u0000\u0000\u0000"+ + "\u1c90\u1c91\u0003/\u0017\u0000\u1c91\u1c92\u0003+\u0015\u0000\u1c92\u1c93"+ + "\u0003\u0017\u000b\u0000\u1c93\u1c94\u0003!\u0010\u0000\u1c94\u1c95\u0003"+ + "\u0013\t\u0000\u1c95\u0520\u0001\u0000\u0000\u0000\u1c96\u1c97\u00031"+ + "\u0018\u0000\u1c97\u1c98\u0003\u0007\u0003\u0000\u1c98\u1c99\u0003\u000b"+ + "\u0005\u0000\u1c99\u1c9a\u0003/\u0017\u0000\u1c9a\u1c9b\u0003/\u0017\u0000"+ + "\u1c9b\u1c9c\u0003\u001f\u000f\u0000\u1c9c\u0522\u0001\u0000\u0000\u0000"+ + "\u1c9d\u1c9e\u00031\u0018\u0000\u1c9e\u1c9f\u0003\u0007\u0003\u0000\u1c9f"+ + "\u1ca0\u0003\u001d\u000e\u0000\u1ca0\u1ca1\u0003\u0017\u000b\u0000\u1ca1"+ + "\u1ca2\u0003\r\u0006\u0000\u1ca2\u0524\u0001\u0000\u0000\u0000\u1ca3\u1ca4"+ + "\u00031\u0018\u0000\u1ca4\u1ca5\u0003\u0007\u0003\u0000\u1ca5\u1ca6\u0003"+ + "\u001d\u000e\u0000\u1ca6\u1ca7\u0003\u0017\u000b\u0000\u1ca7\u1ca8\u0003"+ + "\r\u0006\u0000\u1ca8\u1ca9\u0003\u0007\u0003\u0000\u1ca9\u1caa\u0003-"+ + "\u0016\u0000\u1caa\u1cab\u0003\u000f\u0007\u0000\u1cab\u0526\u0001\u0000"+ + "\u0000\u0000\u1cac\u1cad\u00031\u0018\u0000\u1cad\u1cae\u0003\u0007\u0003"+ + "\u0000\u1cae\u1caf\u0003\u001d\u000e\u0000\u1caf\u1cb0\u0003\u0017\u000b"+ + "\u0000\u1cb0\u1cb1\u0003\r\u0006\u0000\u1cb1\u1cb2\u0003\u0007\u0003\u0000"+ + "\u1cb2\u1cb3\u0003-\u0016\u0000\u1cb3\u1cb4\u0003#\u0011\u0000\u1cb4\u1cb5"+ + "\u0003)\u0014\u0000\u1cb5\u0528\u0001\u0000\u0000\u0000\u1cb6\u1cb7\u0003"+ + "1\u0018\u0000\u1cb7\u1cb8\u0003\u0007\u0003\u0000\u1cb8\u1cb9\u0003\u001d"+ + "\u000e\u0000\u1cb9\u1cba\u0003/\u0017\u0000\u1cba\u1cbb\u0003\u000f\u0007"+ + "\u0000\u1cbb\u052a\u0001\u0000\u0000\u0000\u1cbc\u1cbd\u00031\u0018\u0000"+ + "\u1cbd\u1cbe\u0003\u0007\u0003\u0000\u1cbe\u1cbf\u0003\u001d\u000e\u0000"+ + "\u1cbf\u1cc0\u0003/\u0017\u0000\u1cc0\u1cc1\u0003\u000f\u0007\u0000\u1cc1"+ + "\u1cc2\u0003+\u0015\u0000\u1cc2\u052c\u0001\u0000\u0000\u0000\u1cc3\u1cc4"+ + "\u00031\u0018\u0000\u1cc4\u1cc5\u0003\u0007\u0003\u0000\u1cc5\u1cc6\u0003"+ + ")\u0014\u0000\u1cc6\u1cc7\u0005_\u0000\u0000\u1cc7\u1cc8\u0003%\u0012"+ + "\u0000\u1cc8\u1cc9\u0003#\u0011\u0000\u1cc9\u1cca\u0003%\u0012\u0000\u1cca"+ + "\u052e\u0001\u0000\u0000\u0000\u1ccb\u1ccc\u00031\u0018\u0000\u1ccc\u1ccd"+ + "\u0003\u0007\u0003\u0000\u1ccd\u1cce\u0003)\u0014\u0000\u1cce\u1ccf\u0005"+ + "_\u0000\u0000\u1ccf\u1cd0\u0003+\u0015\u0000\u1cd0\u1cd1\u0003\u0007\u0003"+ + "\u0000\u1cd1\u1cd2\u0003\u001f\u000f\u0000\u1cd2\u1cd3\u0003%\u0012\u0000"+ + "\u1cd3\u0530\u0001\u0000\u0000\u0000\u1cd4\u1cd5\u00031\u0018\u0000\u1cd5"+ + "\u1cd6\u0003\u0007\u0003\u0000\u1cd6\u1cd7\u0003)\u0014\u0000\u1cd7\u1cd8"+ + "\u0003\u000b\u0005\u0000\u1cd8\u1cd9\u0003\u0015\n\u0000\u1cd9\u1cda\u0003"+ + "\u0007\u0003\u0000\u1cda\u1cdb\u0003)\u0014\u0000\u1cdb\u0532\u0001\u0000"+ + "\u0000\u0000\u1cdc\u1cdd\u00031\u0018\u0000\u1cdd\u1cde\u0003\u0007\u0003"+ + "\u0000\u1cde\u1cdf\u0003)\u0014\u0000\u1cdf\u1ce0\u0003\u0017\u000b\u0000"+ + "\u1ce0\u1ce1\u0003\u0007\u0003\u0000\u1ce1\u1ce2\u0003\t\u0004\u0000\u1ce2"+ + "\u1ce3\u0003\u001d\u000e\u0000\u1ce3\u1ce4\u0003\u000f\u0007\u0000\u1ce4"+ + "\u0534\u0001\u0000\u0000\u0000\u1ce5\u1ce6\u00031\u0018\u0000\u1ce6\u1ce7"+ + "\u0003\u0007\u0003\u0000\u1ce7\u1ce8\u0003)\u0014\u0000\u1ce8\u1ce9\u0003"+ + "\u0017\u000b\u0000\u1ce9\u1cea\u0003\u0007\u0003\u0000\u1cea\u1ceb\u0003"+ + "\r\u0006\u0000\u1ceb\u1cec\u0003\u0017\u000b\u0000\u1cec\u1ced\u0003\u000b"+ + "\u0005\u0000\u1ced\u0536\u0001\u0000\u0000\u0000\u1cee\u1cef\u00031\u0018"+ + "\u0000\u1cef\u1cf0\u0003\u0007\u0003\u0000\u1cf0\u1cf1\u0003)\u0014\u0000"+ + "\u1cf1\u1cf2\u00037\u001b\u0000\u1cf2\u1cf3\u0003\u0017\u000b\u0000\u1cf3"+ + "\u1cf4\u0003!\u0010\u0000\u1cf4\u1cf5\u0003\u0013\t\u0000\u1cf5\u0538"+ + "\u0001\u0000\u0000\u0000\u1cf6\u1cf7\u00031\u0018\u0000\u1cf7\u1cf8\u0003"+ + "\u000f\u0007\u0000\u1cf8\u1cf9\u0003)\u0014\u0000\u1cf9\u1cfa\u0003\t"+ + "\u0004\u0000\u1cfa\u1cfb\u0003#\u0011\u0000\u1cfb\u1cfc\u0003+\u0015\u0000"+ + "\u1cfc\u1cfd\u0003\u000f\u0007\u0000\u1cfd\u053a\u0001\u0000\u0000\u0000"+ + "\u1cfe\u1cff\u00031\u0018\u0000\u1cff\u1d00\u0003\u0017\u000b\u0000\u1d00"+ + "\u1d01\u0003\u000f\u0007\u0000\u1d01\u1d02\u00033\u0019\u0000\u1d02\u053c"+ + "\u0001\u0000\u0000\u0000\u1d03\u1d04\u00031\u0018\u0000\u1d04\u1d05\u0003"+ + "#\u0011\u0000\u1d05\u1d06\u0003\u001d\u000e\u0000\u1d06\u1d07\u0003\u0007"+ + "\u0003\u0000\u1d07\u1d08\u0003-\u0016\u0000\u1d08\u1d09\u0003\u0017\u000b"+ + "\u0000\u1d09\u1d0a\u0003\u001d\u000e\u0000\u1d0a\u1d0b\u0003\u000f\u0007"+ + "\u0000\u1d0b\u053e\u0001\u0000\u0000\u0000\u1d0c\u1d0d\u00033\u0019\u0000"+ + "\u1d0d\u1d0e\u0003\u0015\n\u0000\u1d0e\u1d0f\u0003\u000f\u0007\u0000\u1d0f"+ + "\u1d10\u0003!\u0010\u0000\u1d10\u0540\u0001\u0000\u0000\u0000\u1d11\u1d12"+ + "\u00033\u0019\u0000\u1d12\u1d13\u0003\u0015\n\u0000\u1d13\u1d14\u0003"+ + "\u000f\u0007\u0000\u1d14\u1d15\u0003!\u0010\u0000\u1d15\u1d16\u0003\u000f"+ + "\u0007\u0000\u1d16\u1d17\u00031\u0018\u0000\u1d17\u1d18\u0003\u000f\u0007"+ + "\u0000\u1d18\u1d19\u0003)\u0014\u0000\u1d19\u0542\u0001\u0000\u0000\u0000"+ + "\u1d1a\u1d1b\u00033\u0019\u0000\u1d1b\u1d1c\u0003\u0015\n\u0000\u1d1c"+ + "\u1d1d\u0003\u000f\u0007\u0000\u1d1d\u1d1e\u0003)\u0014\u0000\u1d1e\u1d1f"+ + "\u0003\u000f\u0007\u0000\u1d1f\u0544\u0001\u0000\u0000\u0000\u1d20\u1d21"+ + "\u00033\u0019\u0000\u1d21\u1d22\u0003\u0017\u000b\u0000\u1d22\u1d23\u0003"+ + "\r\u0006\u0000\u1d23\u1d24\u0003-\u0016\u0000\u1d24\u1d25\u0003\u0015"+ + "\n\u0000\u1d25\u1d26\u0005_\u0000\u0000\u1d26\u1d27\u0003\t\u0004\u0000"+ + "\u1d27\u1d28\u0003/\u0017\u0000\u1d28\u1d29\u0003\u000b\u0005\u0000\u1d29"+ + "\u1d2a\u0003\u001b\r\u0000\u1d2a\u1d2b\u0003\u000f\u0007\u0000\u1d2b\u1d2c"+ + "\u0003-\u0016\u0000\u1d2c\u0546\u0001\u0000\u0000\u0000\u1d2d\u1d2e\u0003"+ + "3\u0019\u0000\u1d2e\u1d2f\u0003\u0017\u000b\u0000\u1d2f\u1d30\u0003!\u0010"+ + "\u0000\u1d30\u1d31\u0003\r\u0006\u0000\u1d31\u1d32\u0003#\u0011\u0000"+ + "\u1d32\u1d33\u00033\u0019\u0000\u1d33\u0548\u0001\u0000\u0000\u0000\u1d34"+ + "\u1d35\u00033\u0019\u0000\u1d35\u1d36\u0003\u0017\u000b\u0000\u1d36\u1d37"+ + "\u0003-\u0016\u0000\u1d37\u1d38\u0003\u0015\n\u0000\u1d38\u054a\u0001"+ + "\u0000\u0000\u0000\u1d39\u1d3a\u00033\u0019\u0000\u1d3a\u1d3b\u0003\u0017"+ + "\u000b\u0000\u1d3b\u1d3c\u0003-\u0016\u0000\u1d3c\u1d3d\u0003\u0015\n"+ + "\u0000\u1d3d\u1d3e\u0003\u0017\u000b\u0000\u1d3e\u1d3f\u0003!\u0010\u0000"+ + "\u1d3f\u054c\u0001\u0000\u0000\u0000\u1d40\u1d41\u00033\u0019\u0000\u1d41"+ + "\u1d42\u0003\u0017\u000b\u0000\u1d42\u1d43\u0003-\u0016\u0000\u1d43\u1d44"+ + "\u0003\u0015\n\u0000\u1d44\u1d45\u0003#\u0011\u0000\u1d45\u1d46\u0003"+ + "/\u0017\u0000\u1d46\u1d47\u0003-\u0016\u0000\u1d47\u054e\u0001\u0000\u0000"+ + "\u0000\u1d48\u1d49\u00033\u0019\u0000\u1d49\u1d4a\u0003#\u0011\u0000\u1d4a"+ + "\u1d4b\u0003)\u0014\u0000\u1d4b\u1d4c\u0003\u001b\r\u0000\u1d4c\u0550"+ + "\u0001\u0000\u0000\u0000\u1d4d\u1d4e\u00033\u0019\u0000\u1d4e\u1d4f\u0003"+ + ")\u0014\u0000\u1d4f\u1d50\u0003\u0017\u000b\u0000\u1d50\u1d51\u0003-\u0016"+ + "\u0000\u1d51\u1d52\u0003\u000f\u0007\u0000\u1d52\u0552\u0001\u0000\u0000"+ + "\u0000\u1d53\u1d54\u00037\u001b\u0000\u1d54\u1d55\u0003\u0007\u0003\u0000"+ + "\u1d55\u1d56\u0003\u001f\u000f\u0000\u1d56\u1d57\u0003\u001d\u000e\u0000"+ + "\u1d57\u0554\u0001\u0000\u0000\u0000\u1d58\u1d59\u00037\u001b\u0000\u1d59"+ + "\u1d5a\u0003\u000f\u0007\u0000\u1d5a\u1d5b\u0003\u0007\u0003\u0000\u1d5b"+ + "\u1d5c\u0003)\u0014\u0000\u1d5c\u0556\u0001\u0000\u0000\u0000\u1d5d\u1d5e"+ + "\u00037\u001b\u0000\u1d5e\u1d5f\u0003\u000f\u0007\u0000\u1d5f\u1d60\u0003"+ + "+\u0015\u0000\u1d60\u0558\u0001\u0000\u0000\u0000\u1d61\u1d62\u00039\u001c"+ + "\u0000\u1d62\u1d63\u0003#\u0011\u0000\u1d63\u1d64\u0003!\u0010\u0000\u1d64"+ + "\u1d65\u0003\u000f\u0007\u0000\u1d65\u055a\u0001\u0000\u0000\u0000\u1d66"+ + "\u1d67\u0003+\u0015\u0000\u1d67\u1d68\u0003/\u0017\u0000\u1d68\u1d69\u0003"+ + "%\u0012\u0000\u1d69\u1d6a\u0003\u000f\u0007\u0000\u1d6a\u1d6b\u0003)\u0014"+ + "\u0000\u1d6b\u1d6c\u0003/\u0017\u0000\u1d6c\u1d6d\u0003+\u0015\u0000\u1d6d"+ + "\u1d6e\u0003\u000f\u0007\u0000\u1d6e\u1d6f\u0003)\u0014\u0000\u1d6f\u055c"+ + "\u0001\u0000\u0000\u0000\u1d70\u1d71\u0003!\u0010\u0000\u1d71\u1d72\u0003"+ + "#\u0011\u0000\u1d72\u1d73\u0003+\u0015\u0000\u1d73\u1d74\u0003/\u0017"+ + "\u0000\u1d74\u1d75\u0003%\u0012\u0000\u1d75\u1d76\u0003\u000f\u0007\u0000"+ + "\u1d76\u1d77\u0003)\u0014\u0000\u1d77\u1d78\u0003/\u0017\u0000\u1d78\u1d79"+ + "\u0003+\u0015\u0000\u1d79\u1d7a\u0003\u000f\u0007\u0000\u1d7a\u1d7b\u0003"+ + ")\u0014\u0000\u1d7b\u055e\u0001\u0000\u0000\u0000\u1d7c\u1d7d\u0003\u000b"+ + "\u0005\u0000\u1d7d\u1d7e\u0003)\u0014\u0000\u1d7e\u1d7f\u0003\u000f\u0007"+ + "\u0000\u1d7f\u1d80\u0003\u0007\u0003\u0000\u1d80\u1d81\u0003-\u0016\u0000"+ + "\u1d81\u1d82\u0003\u000f\u0007\u0000\u1d82\u1d83\u0003)\u0014\u0000\u1d83"+ + "\u1d84\u0003#\u0011\u0000\u1d84\u1d85\u0003\u001d\u000e\u0000\u1d85\u1d86"+ + "\u0003\u000f\u0007\u0000\u1d86\u0560\u0001\u0000\u0000\u0000\u1d87\u1d88"+ + "\u0003!\u0010\u0000\u1d88\u1d89\u0003#\u0011\u0000\u1d89\u1d8a\u0003\u000b"+ + "\u0005\u0000\u1d8a\u1d8b\u0003)\u0014\u0000\u1d8b\u1d8c\u0003\u000f\u0007"+ + "\u0000\u1d8c\u1d8d\u0003\u0007\u0003\u0000\u1d8d\u1d8e\u0003-\u0016\u0000"+ + "\u1d8e\u1d8f\u0003\u000f\u0007\u0000\u1d8f\u1d90\u0003)\u0014\u0000\u1d90"+ + "\u1d91\u0003#\u0011\u0000\u1d91\u1d92\u0003\u001d\u000e\u0000\u1d92\u1d93"+ + "\u0003\u000f\u0007\u0000\u1d93\u0562\u0001\u0000\u0000\u0000\u1d94\u1d95"+ + "\u0003\u0017\u000b\u0000\u1d95\u1d96\u0003!\u0010\u0000\u1d96\u1d97\u0003"+ + "\u0015\n\u0000\u1d97\u1d98\u0003\u000f\u0007\u0000\u1d98\u1d99\u0003)"+ + "\u0014\u0000\u1d99\u1d9a\u0003\u0017\u000b\u0000\u1d9a\u1d9b\u0003-\u0016"+ + "\u0000\u1d9b\u0564\u0001\u0000\u0000\u0000\u1d9c\u1d9d\u0003!\u0010\u0000"+ + "\u1d9d\u1d9e\u0003#\u0011\u0000\u1d9e\u1d9f\u0003\u0017\u000b\u0000\u1d9f"+ + "\u1da0\u0003!\u0010\u0000\u1da0\u1da1\u0003\u0015\n\u0000\u1da1\u1da2"+ + "\u0003\u000f\u0007\u0000\u1da2\u1da3\u0003)\u0014\u0000\u1da3\u1da4\u0003"+ + "\u0017\u000b\u0000\u1da4\u1da5\u0003-\u0016\u0000\u1da5\u0566\u0001\u0000"+ + "\u0000\u0000\u1da6\u1da7\u0003\u001d\u000e\u0000\u1da7\u1da8\u0003#\u0011"+ + "\u0000\u1da8\u1da9\u0003\u0013\t\u0000\u1da9\u1daa\u0003\u0017\u000b\u0000"+ + "\u1daa\u1dab\u0003!\u0010\u0000\u1dab\u0568\u0001\u0000\u0000\u0000\u1dac"+ + "\u1dad\u0003!\u0010\u0000\u1dad\u1dae\u0003#\u0011\u0000\u1dae\u1daf\u0003"+ + "\u001d\u000e\u0000\u1daf\u1db0\u0003#\u0011\u0000\u1db0\u1db1\u0003\u0013"+ + "\t\u0000\u1db1\u1db2\u0003\u0017\u000b\u0000\u1db2\u1db3\u0003!\u0010"+ + "\u0000\u1db3\u056a\u0001\u0000\u0000\u0000\u1db4\u1db5\u0003)\u0014\u0000"+ + "\u1db5\u1db6\u0003\u000f\u0007\u0000\u1db6\u1db7\u0003%\u0012\u0000\u1db7"+ + "\u1db8\u0003\u001d\u000e\u0000\u1db8\u1db9\u0003\u0017\u000b\u0000\u1db9"+ + "\u1dba\u0003\u000b\u0005\u0000\u1dba\u1dbb\u0003\u0007\u0003\u0000\u1dbb"+ + "\u1dbc\u0003-\u0016\u0000\u1dbc\u1dbd\u0003\u0017\u000b\u0000\u1dbd\u1dbe"+ + "\u0003#\u0011\u0000\u1dbe\u1dbf\u0003!\u0010\u0000\u1dbf\u056c\u0001\u0000"+ + "\u0000\u0000\u1dc0\u1dc1\u0003!\u0010\u0000\u1dc1\u1dc2\u0003#\u0011\u0000"+ + "\u1dc2\u1dc3\u0003)\u0014\u0000\u1dc3\u1dc4\u0003\u000f\u0007\u0000\u1dc4"+ + "\u1dc5\u0003%\u0012\u0000\u1dc5\u1dc6\u0003\u001d\u000e\u0000\u1dc6\u1dc7"+ + "\u0003\u0017\u000b\u0000\u1dc7\u1dc8\u0003\u000b\u0005\u0000\u1dc8\u1dc9"+ + "\u0003\u0007\u0003\u0000\u1dc9\u1dca\u0003-\u0016\u0000\u1dca\u1dcb\u0003"+ + "\u0017\u000b\u0000\u1dcb\u1dcc\u0003#\u0011\u0000\u1dcc\u1dcd\u0003!\u0010"+ + "\u0000\u1dcd\u056e\u0001\u0000\u0000\u0000\u1dce\u1dcf\u0003\t\u0004\u0000"+ + "\u1dcf\u1dd0\u00037\u001b\u0000\u1dd0\u1dd1\u0003%\u0012\u0000\u1dd1\u1dd2"+ + "\u0003\u0007\u0003\u0000\u1dd2\u1dd3\u0003+\u0015\u0000\u1dd3\u1dd4\u0003"+ + "+\u0015\u0000\u1dd4\u1dd5\u0003)\u0014\u0000\u1dd5\u1dd6\u0003\u001d\u000e"+ + "\u0000\u1dd6\u1dd7\u0003+\u0015\u0000\u1dd7\u0570\u0001\u0000\u0000\u0000"+ + "\u1dd8\u1dd9\u0003!\u0010\u0000\u1dd9\u1dda\u0003#\u0011\u0000\u1dda\u1ddb"+ + "\u0003\t\u0004\u0000\u1ddb\u1ddc\u00037\u001b\u0000\u1ddc\u1ddd\u0003"+ + "%\u0012\u0000\u1ddd\u1dde\u0003\u0007\u0003\u0000\u1dde\u1ddf\u0003+\u0015"+ + "\u0000\u1ddf\u1de0\u0003+\u0015\u0000\u1de0\u1de1\u0003)\u0014\u0000\u1de1"+ + "\u1de2\u0003\u001d\u000e\u0000\u1de2\u1de3\u0003+\u0015\u0000\u1de3\u0572"+ + "\u0001\u0000\u0000\u0000\u1de4\u1de5\u0003+\u0015\u0000\u1de5\u1de6\u0003"+ + "\u0011\b\u0000\u1de6\u1de7\u0003/\u0017\u0000\u1de7\u1de8\u0003!\u0010"+ + "\u0000\u1de8\u1de9\u0003\u000b\u0005\u0000\u1de9\u0574\u0001\u0000\u0000"+ + "\u0000\u1dea\u1deb\u0003+\u0015\u0000\u1deb\u1dec\u0003-\u0016\u0000\u1dec"+ + "\u1ded\u00037\u001b\u0000\u1ded\u1dee\u0003%\u0012\u0000\u1dee\u1def\u0003"+ + "\u000f\u0007\u0000\u1def\u0576\u0001\u0000\u0000\u0000\u1df0\u1df1\u0003"+ + "+\u0015\u0000\u1df1\u1df2\u0003+\u0015\u0000\u1df2\u1df3\u0003%\u0012"+ + "\u0000\u1df3\u1df4\u0003\u0007\u0003\u0000\u1df4\u1df5\u0003\u000b\u0005"+ + "\u0000\u1df5\u1df6\u0003\u000f\u0007\u0000\u1df6\u0578\u0001\u0000\u0000"+ + "\u0000\u1df7\u1df8\u0003\u0011\b\u0000\u1df8\u1df9\u0003\u0017\u000b\u0000"+ + "\u1df9\u1dfa\u0003!\u0010\u0000\u1dfa\u1dfb\u0003\u0007\u0003\u0000\u1dfb"+ + "\u1dfc\u0003\u001d\u000e\u0000\u1dfc\u1dfd\u0003\u0011\b\u0000\u1dfd\u1dfe"+ + "\u0003/\u0017\u0000\u1dfe\u1dff\u0003!\u0010\u0000\u1dff\u1e00\u0003\u000b"+ + "\u0005\u0000\u1e00\u057a\u0001\u0000\u0000\u0000\u1e01\u1e02\u0003\u0011"+ + "\b\u0000\u1e02\u1e03\u0003\u0017\u000b\u0000\u1e03\u1e04\u0003!\u0010"+ + "\u0000\u1e04\u1e05\u0003\u0007\u0003\u0000\u1e05\u1e06\u0003\u001d\u000e"+ + "\u0000\u1e06\u1e07\u0003\u0011\b\u0000\u1e07\u1e08\u0003/\u0017\u0000"+ + "\u1e08\u1e09\u0003!\u0010\u0000\u1e09\u1e0a\u0003\u000b\u0005\u0000\u1e0a"+ + "\u1e0b\u0005_\u0000\u0000\u1e0b\u1e0c\u0003\u000f\u0007\u0000\u1e0c\u1e0d"+ + "\u00035\u001a\u0000\u1e0d\u1e0e\u0003-\u0016\u0000\u1e0e\u1e0f\u0003)"+ + "\u0014\u0000\u1e0f\u1e10\u0003\u0007\u0003\u0000\u1e10\u057c\u0001\u0000"+ + "\u0000\u0000\u1e11\u1e12\u0003\u000b\u0005\u0000\u1e12\u1e13\u0003#\u0011"+ + "\u0000\u1e13\u1e14\u0003\u001f\u000f\u0000\u1e14\u1e15\u0003\t\u0004\u0000"+ + "\u1e15\u1e16\u0003\u0017\u000b\u0000\u1e16\u1e17\u0003!\u0010\u0000\u1e17"+ + "\u1e18\u0003\u000f\u0007\u0000\u1e18\u1e19\u0003\u0011\b\u0000\u1e19\u1e1a"+ + "\u0003/\u0017\u0000\u1e1a\u1e1b\u0003!\u0010\u0000\u1e1b\u1e1c\u0003\u000b"+ + "\u0005\u0000\u1e1c\u057e\u0001\u0000\u0000\u0000\u1e1d\u1e1e\u0003+\u0015"+ + "\u0000\u1e1e\u1e1f\u0003\u000f\u0007\u0000\u1e1f\u1e20\u0003)\u0014\u0000"+ + "\u1e20\u1e21\u0003\u0017\u000b\u0000\u1e21\u1e22\u0003\u0007\u0003\u0000"+ + "\u1e22\u1e23\u0003\u001d\u000e\u0000\u1e23\u1e24\u0003\u0011\b\u0000\u1e24"+ + "\u1e25\u0003/\u0017\u0000\u1e25\u1e26\u0003!\u0010\u0000\u1e26\u1e27\u0003"; private static final String _serializedATNSegment3 = - "\u0000\u1e22\u1e23\u0003\u0017\u000b\u0000\u1e23\u1e24\u0003\u0007\u0003"+ - "\u0000\u1e24\u1e25\u0003\u001d\u000e\u0000\u1e25\u1e26\u0003\u0011\b\u0000"+ - "\u1e26\u1e27\u0003/\u0017\u0000\u1e27\u1e28\u0003!\u0010\u0000\u1e28\u1e29"+ - "\u0003\u000b\u0005\u0000\u1e29\u0580\u0001\u0000\u0000\u0000\u1e2a\u1e2b"+ - "\u0003\r\u0006\u0000\u1e2b\u1e2c\u0003\u000f\u0007\u0000\u1e2c\u1e2d\u0003"+ - "+\u0015\u0000\u1e2d\u1e2e\u0003\u000f\u0007\u0000\u1e2e\u1e2f\u0003)\u0014"+ - "\u0000\u1e2f\u1e30\u0003\u0017\u000b\u0000\u1e30\u1e31\u0003\u0007\u0003"+ - "\u0000\u1e31\u1e32\u0003\u001d\u000e\u0000\u1e32\u1e33\u0003\u0011\b\u0000"+ - "\u1e33\u1e34\u0003/\u0017\u0000\u1e34\u1e35\u0003!\u0010\u0000\u1e35\u1e36"+ - "\u0003\u000b\u0005\u0000\u1e36\u0582\u0001\u0000\u0000\u0000\u1e37\u1e38"+ - "\u0003\u0017\u000b\u0000\u1e38\u1e39\u0003!\u0010\u0000\u1e39\u1e3a\u0003"+ - "\u0017\u000b\u0000\u1e3a\u1e3b\u0003-\u0016\u0000\u1e3b\u1e3c\u0003\u000b"+ - "\u0005\u0000\u1e3c\u1e3d\u0003#\u0011\u0000\u1e3d\u1e3e\u0003!\u0010\u0000"+ - "\u1e3e\u1e3f\u0003\r\u0006\u0000\u1e3f\u0584\u0001\u0000\u0000\u0000\u1e40"+ - "\u1e41\u0003\u001f\u000f\u0000\u1e41\u1e42\u0003+\u0015\u0000\u1e42\u1e43"+ - "\u0003\u0011\b\u0000\u1e43\u1e44\u0003/\u0017\u0000\u1e44\u1e45\u0003"+ - "!\u0010\u0000\u1e45\u1e46\u0003\u000b\u0005\u0000\u1e46\u0586\u0001\u0000"+ - "\u0000\u0000\u1e47\u1e48\u0003\u001f\u000f\u0000\u1e48\u1e49\u0003\u0017"+ - "\u000b\u0000\u1e49\u1e4a\u0003!\u0010\u0000\u1e4a\u1e4b\u00031\u0018\u0000"+ - "\u1e4b\u1e4c\u0003\u0011\b\u0000\u1e4c\u1e4d\u0003/\u0017\u0000\u1e4d"+ - "\u1e4e\u0003!\u0010\u0000\u1e4e\u1e4f\u0003\u000b\u0005\u0000\u1e4f\u0588"+ - "\u0001\u0000\u0000\u0000\u1e50\u1e51\u0003\u001f\u000f\u0000\u1e51\u1e52"+ - "\u0003+\u0015\u0000\u1e52\u1e53\u0003-\u0016\u0000\u1e53\u1e54\u00037"+ - "\u001b\u0000\u1e54\u1e55\u0003%\u0012\u0000\u1e55\u1e56\u0003\u000f\u0007"+ - "\u0000\u1e56\u058a\u0001\u0000\u0000\u0000\u1e57\u1e58\u0003\u001f\u000f"+ - "\u0000\u1e58\u1e59\u0003+\u0015\u0000\u1e59\u1e5a\u0003+\u0015\u0000\u1e5a"+ - "\u1e5b\u0003%\u0012\u0000\u1e5b\u1e5c\u0003\u0007\u0003\u0000\u1e5c\u1e5d"+ - "\u0003\u000b\u0005\u0000\u1e5d\u1e5e\u0003\u000f\u0007\u0000\u1e5e\u058c"+ - "\u0001\u0000\u0000\u0000\u1e5f\u1e60\u0003\u001f\u000f\u0000\u1e60\u1e61"+ - "\u0003\u0011\b\u0000\u1e61\u1e62\u0003\u0017\u000b\u0000\u1e62\u1e63\u0003"+ - "!\u0010\u0000\u1e63\u1e64\u0003\u0007\u0003\u0000\u1e64\u1e65\u0003\u001d"+ - "\u000e\u0000\u1e65\u1e66\u0003\u0011\b\u0000\u1e66\u1e67\u0003/\u0017"+ - "\u0000\u1e67\u1e68\u0003!\u0010\u0000\u1e68\u1e69\u0003\u000b\u0005\u0000"+ - "\u1e69\u058e\u0001\u0000\u0000\u0000\u1e6a\u1e6b\u0003\u001f\u000f\u0000"+ - "\u1e6b\u1e6c\u0003\u0011\b\u0000\u1e6c\u1e6d\u0003\u0017\u000b\u0000\u1e6d"+ - "\u1e6e\u0003!\u0010\u0000\u1e6e\u1e6f\u0003\u0007\u0003\u0000\u1e6f\u1e70"+ - "\u0003\u001d\u000e\u0000\u1e70\u1e71\u0003\u0011\b\u0000\u1e71\u1e72\u0003"+ - "/\u0017\u0000\u1e72\u1e73\u0003!\u0010\u0000\u1e73\u1e74\u0003\u000b\u0005"+ - "\u0000\u1e74\u1e75\u0005_\u0000\u0000\u1e75\u1e76\u0003\u000f\u0007\u0000"+ - "\u1e76\u1e77\u00035\u001a\u0000\u1e77\u1e78\u0003-\u0016\u0000\u1e78\u1e79"+ - "\u0003)\u0014\u0000\u1e79\u1e7a\u0003\u0007\u0003\u0000\u1e7a\u0590\u0001"+ - "\u0000\u0000\u0000\u1e7b\u1e7c\u0003\u001f\u000f\u0000\u1e7c\u1e7d\u0003"+ - "\u0017\u000b\u0000\u1e7d\u1e7e\u0003!\u0010\u0000\u1e7e\u1e7f\u0003\u0017"+ - "\u000b\u0000\u1e7f\u1e80\u0003-\u0016\u0000\u1e80\u1e81\u0003\u000b\u0005"+ - "\u0000\u1e81\u1e82\u0003#\u0011\u0000\u1e82\u1e83\u0003!\u0010\u0000\u1e83"+ - "\u1e84\u0003\r\u0006\u0000\u1e84\u0592\u0001\u0000\u0000\u0000\u1e85\u1e86"+ - "\u0003+\u0015\u0000\u1e86\u1e87\u0003#\u0011\u0000\u1e87\u1e88\u0003)"+ - "\u0014\u0000\u1e88\u1e89\u0003-\u0016\u0000\u1e89\u1e8a\u0003#\u0011\u0000"+ - "\u1e8a\u1e8b\u0003%\u0012\u0000\u1e8b\u0594\u0001\u0000\u0000\u0000\u1e8c"+ - "\u1e8d\u0003%\u0012\u0000\u1e8d\u1e8e\u0003\u0007\u0003\u0000\u1e8e\u1e8f"+ - "\u0003)\u0014\u0000\u1e8f\u1e90\u0003\u0007\u0003\u0000\u1e90\u1e91\u0003"+ - "\u001d\u000e\u0000\u1e91\u1e92\u0003\u001d\u000e\u0000\u1e92\u1e93\u0003"+ - "\u000f\u0007\u0000\u1e93\u1e94\u0003\u001d\u000e\u0000\u1e94\u0596\u0001"+ - "\u0000\u0000\u0000\u1e95\u1e96\u0003\u0015\n\u0000\u1e96\u1e97\u00037"+ - "\u001b\u0000\u1e97\u1e98\u0003%\u0012\u0000\u1e98\u1e99\u0003#\u0011\u0000"+ - "\u1e99\u1e9a\u0003-\u0016\u0000\u1e9a\u1e9b\u0003\u0015\n\u0000\u1e9b"+ - "\u1e9c\u0003\u000f\u0007\u0000\u1e9c\u1e9d\u0003-\u0016\u0000\u1e9d\u1e9e"+ - "\u0003\u0017\u000b\u0000\u1e9e\u1e9f\u0003\u000b\u0005\u0000\u1e9f\u1ea0"+ - "\u0003\u0007\u0003\u0000\u1ea0\u1ea1\u0003\u001d\u000e\u0000\u1ea1\u0598"+ - "\u0001\u0000\u0000\u0000\u1ea2\u1ea3\u0003+\u0015\u0000\u1ea3\u1ea4\u0003"+ - "\u0007\u0003\u0000\u1ea4\u1ea5\u0003\u0011\b\u0000\u1ea5\u1ea6\u0003\u000f"+ - "\u0007\u0000\u1ea6\u059a\u0001\u0000\u0000\u0000\u1ea7\u1ea8\u0003)\u0014"+ - "\u0000\u1ea8\u1ea9\u0003\u000f\u0007\u0000\u1ea9\u1eaa\u0003+\u0015\u0000"+ - "\u1eaa\u1eab\u0003-\u0016\u0000\u1eab\u1eac\u0003)\u0014\u0000\u1eac\u1ead"+ - "\u0003\u0017\u000b\u0000\u1ead\u1eae\u0003\u000b\u0005\u0000\u1eae\u1eaf"+ - "\u0003-\u0016\u0000\u1eaf\u1eb0\u0003\u000f\u0007\u0000\u1eb0\u1eb1\u0003"+ - "\r\u0006\u0000\u1eb1\u059c\u0001\u0000\u0000\u0000\u1eb2\u1eb3\u0003/"+ - "\u0017\u0000\u1eb3\u1eb4\u0003!\u0010\u0000\u1eb4\u1eb5\u0003+\u0015\u0000"+ - "\u1eb5\u1eb6\u0003\u0007\u0003\u0000\u1eb6\u1eb7\u0003\u0011\b\u0000\u1eb7"+ - "\u1eb8\u0003\u000f\u0007\u0000\u1eb8\u059e\u0001\u0000\u0000\u0000\u1eb9"+ - "\u1eba\u0003\t\u0004\u0000\u1eba\u1ebb\u0003\u0007\u0003\u0000\u1ebb\u1ebc"+ - "\u0003+\u0015\u0000\u1ebc\u1ebd\u0003\u000f\u0007\u0000\u1ebd\u1ebe\u0003"+ - "-\u0016\u0000\u1ebe\u1ebf\u00037\u001b\u0000\u1ebf\u1ec0\u0003%\u0012"+ - "\u0000\u1ec0\u1ec1\u0003\u000f\u0007\u0000\u1ec1\u05a0\u0001\u0000\u0000"+ - "\u0000\u1ec2\u1ec3\u0003\u0017\u000b\u0000\u1ec3\u1ec4\u0003\u0011\b\u0000"+ - "\u1ec4\u05a2\u0001\u0000\u0000\u0000\u1ec5\u1ec6\u0003\u001d\u000e\u0000"+ - "\u1ec6\u1ec7\u0003#\u0011\u0000\u1ec7\u1ec8\u0003\u000b\u0005\u0000\u1ec8"+ - "\u1ec9\u0003\u0007\u0003\u0000\u1ec9\u1eca\u0003\u001d\u000e\u0000\u1eca"+ - "\u1ecb\u0003\u000f\u0007\u0000\u1ecb\u05a4\u0001\u0000\u0000\u0000\u1ecc"+ - "\u1ecd\u0003\u001d\u000e\u0000\u1ecd\u1ece\u0003\u000b\u0005\u0000\u1ece"+ - "\u1ecf\u0005_\u0000\u0000\u1ecf\u1ed0\u0003\u000b\u0005\u0000\u1ed0\u1ed1"+ - "\u0003#\u0011\u0000\u1ed1\u1ed2\u0003\u001d\u000e\u0000\u1ed2\u1ed3\u0003"+ - "\u001d\u000e\u0000\u1ed3\u1ed4\u0003\u0007\u0003\u0000\u1ed4\u1ed5\u0003"+ - "-\u0016\u0000\u1ed5\u1ed6\u0003\u000f\u0007\u0000\u1ed6\u05a6\u0001\u0000"+ - "\u0000\u0000\u1ed7\u1ed8\u0003\u001d\u000e\u0000\u1ed8\u1ed9\u0003\u000b"+ - "\u0005\u0000\u1ed9\u1eda\u0005_\u0000\u0000\u1eda\u1edb\u0003\u000b\u0005"+ - "\u0000\u1edb\u1edc\u0003-\u0016\u0000\u1edc\u1edd\u00037\u001b\u0000\u1edd"+ - "\u1ede\u0003%\u0012\u0000\u1ede\u1edf\u0003\u000f\u0007\u0000\u1edf\u05a8"+ - "\u0001\u0000\u0000\u0000\u1ee0\u1ee1\u0003%\u0012\u0000\u1ee1\u1ee2\u0003"+ - ")\u0014\u0000\u1ee2\u1ee3\u0003#\u0011\u0000\u1ee3\u1ee4\u00031\u0018"+ - "\u0000\u1ee4\u1ee5\u0003\u0017\u000b\u0000\u1ee5\u1ee6\u0003\r\u0006\u0000"+ - "\u1ee6\u1ee7\u0003\u000f\u0007\u0000\u1ee7\u1ee8\u0003)\u0014\u0000\u1ee8"+ - "\u05aa\u0001\u0000\u0000\u0000\u1ee9\u1eea\u00031\u0018\u0000\u1eea\u1eeb"+ - "\u0003\u000f\u0007\u0000\u1eeb\u1eec\u0003)\u0014\u0000\u1eec\u1eed\u0003"+ - "+\u0015\u0000\u1eed\u1eee\u0003\u0017\u000b\u0000\u1eee\u1eef\u0003#\u0011"+ - "\u0000\u1eef\u1ef0\u0003!\u0010\u0000\u1ef0\u05ac\u0001\u0000\u0000\u0000"+ - "\u1ef1\u1ef2\u0003\u0007\u0003\u0000\u1ef2\u1ef3\u0003\u001d\u000e\u0000"+ - "\u1ef3\u1ef4\u0003\u001d\u000e\u0000\u1ef4\u1ef5\u0003#\u0011\u0000\u1ef5"+ - "\u1ef6\u00033\u0019\u0000\u1ef6\u1ef7\u0005_\u0000\u0000\u1ef7\u1ef8\u0003"+ - "\u000b\u0005\u0000\u1ef8\u1ef9\u0003#\u0011\u0000\u1ef9\u1efa\u0003!\u0010"+ - "\u0000\u1efa\u1efb\u0003!\u0010\u0000\u1efb\u1efc\u0003\u000f\u0007\u0000"+ - "\u1efc\u1efd\u0003\u000b\u0005\u0000\u1efd\u1efe\u0003-\u0016\u0000\u1efe"+ - "\u1eff\u0003\u0017\u000b\u0000\u1eff\u1f00\u0003#\u0011\u0000\u1f00\u1f01"+ - "\u0003!\u0010\u0000\u1f01\u1f02\u0003+\u0015\u0000\u1f02\u05ae\u0001\u0000"+ - "\u0000\u0000\u1f03\u1f04\u0003\u0017\u000b\u0000\u1f04\u1f05\u0003+\u0015"+ - "\u0000\u1f05\u1f06\u0005_\u0000\u0000\u1f06\u1f07\u0003-\u0016\u0000\u1f07"+ - "\u1f08\u0003\u000f\u0007\u0000\u1f08\u1f09\u0003\u001f\u000f\u0000\u1f09"+ - "\u1f0a\u0003%\u0012\u0000\u1f0a\u1f0b\u0003\u001d\u000e\u0000\u1f0b\u1f0c"+ - "\u0003\u0007\u0003\u0000\u1f0c\u1f0d\u0003-\u0016\u0000\u1f0d\u1f0e\u0003"+ - "\u000f\u0007\u0000\u1f0e\u05b0\u0001\u0000\u0000\u0000\u1f0f\u1f10\u0003"+ - "\u000f\u0007\u0000\u1f10\u1f11\u00031\u0018\u0000\u1f11\u1f12\u0003\u000f"+ - "\u0007\u0000\u1f12\u1f13\u0003!\u0010\u0000\u1f13\u1f14\u0003-\u0016\u0000"+ - "\u1f14\u05b2\u0001\u0000\u0000\u0000\u1f15\u1f16\u00033\u0019\u0000\u1f16"+ - "\u1f17\u0003)\u0014\u0000\u1f17\u1f18\u0003\u0007\u0003\u0000\u1f18\u1f19"+ - "\u0003%\u0012\u0000\u1f19\u1f1a\u0003%\u0012\u0000\u1f1a\u1f1b\u0003\u000f"+ - "\u0007\u0000\u1f1b\u1f1c\u0003)\u0014\u0000\u1f1c\u05b4\u0001\u0000\u0000"+ - "\u0000\u1f1d\u1f1e\u0003+\u0015\u0000\u1f1e\u1f1f\u0003\u000f\u0007\u0000"+ - "\u1f1f\u1f20\u0003)\u0014\u0000\u1f20\u1f21\u00031\u0018\u0000\u1f21\u1f22"+ - "\u0003\u000f\u0007\u0000\u1f22\u1f23\u0003)\u0014\u0000\u1f23\u05b6\u0001"+ - "\u0000\u0000\u0000\u1f24\u1f25\u0003\t\u0004\u0000\u1f25\u1f26\u0003-"+ - "\u0016\u0000\u1f26\u1f27\u0003)\u0014\u0000\u1f27\u1f28\u0003\u000f\u0007"+ - "\u0000\u1f28\u1f29\u0003\u000f\u0007\u0000\u1f29\u05b8\u0001\u0000\u0000"+ - "\u0000\u1f2a\u1f2b\u0003\u0015\n\u0000\u1f2b\u1f2c\u0003\u0007\u0003\u0000"+ - "\u1f2c\u1f2d\u0003+\u0015\u0000\u1f2d\u1f2e\u0003\u0015\n\u0000\u1f2e"+ - "\u05ba\u0001\u0000\u0000\u0000\u1f2f\u1f30\u0003\u0013\t\u0000\u1f30\u1f31"+ - "\u0003\u0017\u000b\u0000\u1f31\u1f32\u0003+\u0015\u0000\u1f32\u1f33\u0003"+ - "-\u0016\u0000\u1f33\u05bc\u0001\u0000\u0000\u0000\u1f34\u1f35\u0003+\u0015"+ - "\u0000\u1f35\u1f36\u0003%\u0012\u0000\u1f36\u1f37\u0003\u0013\t\u0000"+ - "\u1f37\u1f38\u0003\u0017\u000b\u0000\u1f38\u1f39\u0003+\u0015\u0000\u1f39"+ - "\u1f3a\u0003-\u0016\u0000\u1f3a\u05be\u0001\u0000\u0000\u0000\u1f3b\u1f3c"+ - "\u0003\u0013\t\u0000\u1f3c\u1f3d\u0003\u0017\u000b\u0000\u1f3d\u1f3e\u0003"+ - "!\u0010\u0000\u1f3e\u05c0\u0001\u0000\u0000\u0000\u1f3f\u1f40\u0003\t"+ - "\u0004\u0000\u1f40\u1f41\u0003)\u0014\u0000\u1f41\u1f42\u0003\u0017\u000b"+ - "\u0000\u1f42\u1f43\u0003!\u0010\u0000\u1f43\u05c2\u0001\u0000\u0000\u0000"+ - "\u1f44\u1f45\u0003\u000b\u0005\u0000\u1f45\u1f46\u0003#\u0011\u0000\u1f46"+ - "\u1f47\u0003!\u0010\u0000\u1f47\u1f48\u0003\u000b\u0005\u0000\u1f48\u1f49"+ - "\u0003/\u0017\u0000\u1f49\u1f4a\u0003)\u0014\u0000\u1f4a\u1f4b\u0003)"+ - "\u0014\u0000\u1f4b\u1f4c\u0003\u000f\u0007\u0000\u1f4c\u1f4d\u0003!\u0010"+ - "\u0000\u1f4d\u1f4e\u0003-\u0016\u0000\u1f4e\u1f4f\u0003\u001d\u000e\u0000"+ - "\u1f4f\u1f50\u00037\u001b\u0000\u1f50\u05c4\u0001\u0000\u0000\u0000\u1f51"+ - "\u1f52\u0003\u0017\u000b\u0000\u1f52\u1f53\u0003!\u0010\u0000\u1f53\u1f54"+ - "\u0003\u001d\u000e\u0000\u1f54\u1f55\u0003\u0017\u000b\u0000\u1f55\u1f56"+ - "\u0003!\u0010\u0000\u1f56\u1f57\u0003\u000f\u0007\u0000\u1f57\u05c6\u0001"+ - "\u0000\u0000\u0000\u1f58\u1f59\u0003\u001f\u000f\u0000\u1f59\u1f5a\u0003"+ - "\u0007\u0003\u0000\u1f5a\u1f5b\u0003-\u0016\u0000\u1f5b\u1f5c\u0003\u000f"+ - "\u0007\u0000\u1f5c\u1f5d\u0003)\u0014\u0000\u1f5d\u1f5e\u0003\u0017\u000b"+ - "\u0000\u1f5e\u1f5f\u0003\u0007\u0003\u0000\u1f5f\u1f60\u0003\u001d\u000e"+ - "\u0000\u1f60\u1f61\u0003\u0017\u000b\u0000\u1f61\u1f62\u00039\u001c\u0000"+ - "\u1f62\u1f63\u0003\u000f\u0007\u0000\u1f63\u1f64\u0003\r\u0006\u0000\u1f64"+ - "\u05c8\u0001\u0000\u0000\u0000\u1f65\u1f66\u0003\u001d\u000e\u0000\u1f66"+ - "\u1f67\u0003\u000f\u0007\u0000\u1f67\u1f68\u0003\u0011\b\u0000\u1f68\u1f69"+ - "\u0003-\u0016\u0000\u1f69\u1f6a\u0003\u0007\u0003\u0000\u1f6a\u1f6b\u0003"+ - ")\u0014\u0000\u1f6b\u1f6c\u0003\u0013\t\u0000\u1f6c\u05ca\u0001\u0000"+ - "\u0000\u0000\u1f6d\u1f6e\u0003)\u0014\u0000\u1f6e\u1f6f\u0003\u0017\u000b"+ - "\u0000\u1f6f\u1f70\u0003\u0013\t\u0000\u1f70\u1f71\u0003\u0015\n\u0000"+ - "\u1f71\u1f72\u0003-\u0016\u0000\u1f72\u1f73\u0003\u0007\u0003\u0000\u1f73"+ - "\u1f74\u0003)\u0014\u0000\u1f74\u1f75\u0003\u0013\t\u0000\u1f75\u05cc"+ - "\u0001\u0000\u0000\u0000\u1f76\u1f77\u0003\u000b\u0005\u0000\u1f77\u1f78"+ - "\u0003#\u0011\u0000\u1f78\u1f79\u0003\u001f\u000f\u0000\u1f79\u1f7a\u0003"+ - "\u001f\u000f\u0000\u1f7a\u1f7b\u0003/\u0017\u0000\u1f7b\u1f7c\u0003-\u0016"+ - "\u0000\u1f7c\u1f7d\u0003\u0007\u0003\u0000\u1f7d\u1f7e\u0003-\u0016\u0000"+ - "\u1f7e\u1f7f\u0003#\u0011\u0000\u1f7f\u1f80\u0003)\u0014\u0000\u1f80\u05ce"+ - "\u0001\u0000\u0000\u0000\u1f81\u1f82\u0003!\u0010\u0000\u1f82\u1f83\u0003"+ - "\u000f\u0007\u0000\u1f83\u1f84\u0003\u0013\t\u0000\u1f84\u1f85\u0003\u0007"+ - "\u0003\u0000\u1f85\u1f86\u0003-\u0016\u0000\u1f86\u1f87\u0003#\u0011\u0000"+ - "\u1f87\u1f88\u0003)\u0014\u0000\u1f88\u05d0\u0001\u0000\u0000\u0000\u1f89"+ - "\u1f8a\u0003\u0015\n\u0000\u1f8a\u1f8b\u0003\u0007\u0003\u0000\u1f8b\u1f8c"+ - "\u0003+\u0015\u0000\u1f8c\u1f8d\u0003\u0015\n\u0000\u1f8d\u1f8e\u0003"+ - "\u000f\u0007\u0000\u1f8e\u1f8f\u0003+\u0015\u0000\u1f8f\u05d2\u0001\u0000"+ - "\u0000\u0000\u1f90\u1f91\u0003\u001f\u000f\u0000\u1f91\u1f92\u0003\u000f"+ - "\u0007\u0000\u1f92\u1f93\u0003)\u0014\u0000\u1f93\u1f94\u0003\u0013\t"+ - "\u0000\u1f94\u1f95\u0003\u000f\u0007\u0000\u1f95\u1f96\u0003+\u0015\u0000"+ - "\u1f96\u05d4\u0001\u0000\u0000\u0000\u1f97\u1f98\u0003\u0011\b\u0000\u1f98"+ - "\u1f99\u0003\u0007\u0003\u0000\u1f99\u1f9a\u0003\u001f\u000f\u0000\u1f9a"+ - "\u1f9b\u0003\u0017\u000b\u0000\u1f9b\u1f9c\u0003\u001d\u000e\u0000\u1f9c"+ - "\u1f9d\u00037\u001b\u0000\u1f9d\u05d6\u0001\u0000\u0000\u0000\u1f9e\u1f9f"+ - "\u0003%\u0012\u0000\u1f9f\u1fa0\u0003#\u0011\u0000\u1fa0\u1fa1\u0003\u001d"+ - "\u000e\u0000\u1fa1\u1fa2\u0003\u0017\u000b\u0000\u1fa2\u1fa3\u0003\u000b"+ - "\u0005\u0000\u1fa3\u1fa4\u00037\u001b\u0000\u1fa4\u05d8\u0001\u0000\u0000"+ - "\u0000\u1fa5\u1fa6\u0003#\u0011\u0000\u1fa6\u1fa7\u00033\u0019\u0000\u1fa7"+ - "\u1fa8\u0003!\u0010\u0000\u1fa8\u1fa9\u0003\u000f\u0007\u0000\u1fa9\u1faa"+ - "\u0003\r\u0006\u0000\u1faa\u05da\u0001\u0000\u0000\u0000\u1fab\u1fac\u0003"+ - "\u0007\u0003\u0000\u1fac\u1fad\u0003\t\u0004\u0000\u1fad\u1fae\u0003+"+ - "\u0015\u0000\u1fae\u1faf\u0003-\u0016\u0000\u1faf\u1fb0\u0003\u0017\u000b"+ - "\u0000\u1fb0\u1fb1\u0003\u001f\u000f\u0000\u1fb1\u1fb2\u0003\u000f\u0007"+ - "\u0000\u1fb2\u05dc\u0001\u0000\u0000\u0000\u1fb3\u1fb4\u0003\t\u0004\u0000"+ - "\u1fb4\u1fb5\u0003\u0017\u000b\u0000\u1fb5\u1fb6\u0003\u0013\t\u0000\u1fb6"+ - "\u1fb7\u0003+\u0015\u0000\u1fb7\u1fb8\u0003\u000f\u0007\u0000\u1fb8\u1fb9"+ - "\u0003)\u0014\u0000\u1fb9\u1fba\u0003\u0017\u000b\u0000\u1fba\u1fbb\u0003"+ - "\u0007\u0003\u0000\u1fbb\u1fbc\u0003\u001d\u000e\u0000\u1fbc\u05de\u0001"+ - "\u0000\u0000\u0000\u1fbd\u1fbe\u0003\t\u0004\u0000\u1fbe\u1fbf\u0003\u0017"+ - "\u000b\u0000\u1fbf\u1fc0\u0003-\u0016\u0000\u1fc0\u1fc1\u0005 \u0000\u0000"+ - "\u1fc1\u1fc2\u00031\u0018\u0000\u1fc2\u1fc3\u0003\u0007\u0003\u0000\u1fc3"+ - "\u1fc4\u0003)\u0014\u0000\u1fc4\u1fc5\u00037\u001b\u0000\u1fc5\u1fc6\u0003"+ - "\u0017\u000b\u0000\u1fc6\u1fc7\u0003!\u0010\u0000\u1fc7\u1fc8\u0003\u0013"+ - "\t\u0000\u1fc8\u05e0\u0001\u0000\u0000\u0000\u1fc9\u1fca\u0003\t\u0004"+ - "\u0000\u1fca\u1fcb\u0003#\u0011\u0000\u1fcb\u1fcc\u0003#\u0011\u0000\u1fcc"+ - "\u1fcd\u0003\u001d\u000e\u0000\u1fcd\u05e2\u0001\u0000\u0000\u0000\u1fce"+ - "\u1fcf\u0003\t\u0004\u0000\u1fcf\u1fd0\u0003#\u0011\u0000\u1fd0\u1fd1"+ - "\u00035\u001a\u0000\u1fd1\u05e4\u0001\u0000\u0000\u0000\u1fd2\u1fd3\u0003"+ - "\t\u0004\u0000\u1fd3\u1fd4\u00037\u001b\u0000\u1fd4\u1fd5\u0003-\u0016"+ - "\u0000\u1fd5\u1fd6\u0003\u000f\u0007\u0000\u1fd6\u1fd7\u0003\u0007\u0003"+ - "\u0000\u1fd7\u05e6\u0001\u0000\u0000\u0000\u1fd8\u1fd9\u0003\u000b\u0005"+ - "\u0000\u1fd9\u1fda\u0003\u0015\n\u0000\u1fda\u1fdb\u0003\u0007\u0003\u0000"+ - "\u1fdb\u1fdc\u0003)\u0014\u0000\u1fdc\u1fdd\u0003\u0007\u0003\u0000\u1fdd"+ - "\u1fde\u0003\u000b\u0005\u0000\u1fde\u1fdf\u0003-\u0016\u0000\u1fdf\u1fe0"+ - "\u0003\u000f\u0007\u0000\u1fe0\u1fe1\u0003)\u0014\u0000\u1fe1\u1fe2\u0005"+ - " \u0000\u0000\u1fe2\u1fe3\u00031\u0018\u0000\u1fe3\u1fe4\u0003\u0007\u0003"+ - "\u0000\u1fe4\u1fe5\u0003)\u0014\u0000\u1fe5\u1fe6\u00037\u001b\u0000\u1fe6"+ - "\u1fe7\u0003\u0017\u000b\u0000\u1fe7\u1fe8\u0003!\u0010\u0000\u1fe8\u1fe9"+ - "\u0003\u0013\t\u0000\u1fe9\u05e8\u0001\u0000\u0000\u0000\u1fea\u1feb\u0003"+ - "\u000b\u0005\u0000\u1feb\u1fec\u0003\u0017\u000b\u0000\u1fec\u1fed\u0003"+ - "\r\u0006\u0000\u1fed\u1fee\u0003)\u0014\u0000\u1fee\u05ea\u0001\u0000"+ - "\u0000\u0000\u1fef\u1ff0\u0003\u000b\u0005\u0000\u1ff0\u1ff1\u0003\u0017"+ - "\u000b\u0000\u1ff1\u1ff2\u0003)\u0014\u0000\u1ff2\u1ff3\u0003\u000b\u0005"+ - "\u0000\u1ff3\u1ff4\u0003\u001d\u000e\u0000\u1ff4\u1ff5\u0003\u000f\u0007"+ - "\u0000\u1ff5\u05ec\u0001\u0000\u0000\u0000\u1ff6\u1ff7\u0003\u0011\b\u0000"+ - "\u1ff7\u1ff8\u0003\u001d\u000e\u0000\u1ff8\u1ff9\u0003#\u0011\u0000\u1ff9"+ - "\u1ffa\u0003\u0007\u0003\u0000\u1ffa\u1ffb\u0003-\u0016\u0000\u1ffb\u1ffc"+ - "\u00054\u0000\u0000\u1ffc\u05ee\u0001\u0000\u0000\u0000\u1ffd\u1ffe\u0003"+ - "\u0011\b\u0000\u1ffe\u1fff\u0003\u001d\u000e\u0000\u1fff\u2000\u0003#"+ - "\u0011\u0000\u2000\u2001\u0003\u0007\u0003\u0000\u2001\u2002\u0003-\u0016"+ - "\u0000\u2002\u2003\u00058\u0000\u0000\u2003\u05f0\u0001\u0000\u0000\u0000"+ - "\u2004\u2005\u0003\u0017\u000b\u0000\u2005\u2006\u0003!\u0010\u0000\u2006"+ - "\u2007\u0003\u000f\u0007\u0000\u2007\u2008\u0003-\u0016\u0000\u2008\u05f2"+ - "\u0001\u0000\u0000\u0000\u2009\u200a\u0003\u0017\u000b\u0000\u200a\u200b"+ - "\u0003!\u0010\u0000\u200b\u200c\u0003-\u0016\u0000\u200c\u200d\u00052"+ - "\u0000\u0000\u200d\u05f4\u0001\u0000\u0000\u0000\u200e\u200f\u0003\u0017"+ - "\u000b\u0000\u200f\u2010\u0003!\u0010\u0000\u2010\u2011\u0003-\u0016\u0000"+ - "\u2011\u2012\u00054\u0000\u0000\u2012\u05f6\u0001\u0000\u0000\u0000\u2013"+ - "\u2014\u0003\u0017\u000b\u0000\u2014\u2015\u0003!\u0010\u0000\u2015\u2016"+ - "\u0003-\u0016\u0000\u2016\u2017\u00058\u0000\u0000\u2017\u05f8\u0001\u0000"+ - "\u0000\u0000\u2018\u2019\u0003\u0019\f\u0000\u2019\u201a\u0003+\u0015"+ - "\u0000\u201a\u201b\u0003#\u0011\u0000\u201b\u201c\u0003!\u0010\u0000\u201c"+ - "\u05fa\u0001\u0000\u0000\u0000\u201d\u201e\u0003\u0019\f\u0000\u201e\u201f"+ - "\u0003+\u0015\u0000\u201f\u2020\u0003#\u0011\u0000\u2020\u2021\u0003!"+ - "\u0010\u0000\u2021\u2022\u0003\t\u0004\u0000\u2022\u05fc\u0001\u0000\u0000"+ - "\u0000\u2023\u2024\u0003\u001d\u000e\u0000\u2024\u2025\u0003\u0017\u000b"+ - "\u0000\u2025\u2026\u0003!\u0010\u0000\u2026\u2027\u0003\u000f\u0007\u0000"+ - "\u2027\u05fe\u0001\u0000\u0000\u0000\u2028\u2029\u0003\u001d\u000e\u0000"+ - "\u2029\u202a\u0003+\u0015\u0000\u202a\u202b\u0003\u000f\u0007\u0000\u202b"+ - "\u202c\u0003\u0013\t\u0000\u202c\u0600\u0001\u0000\u0000\u0000\u202d\u202e"+ - "\u0003\u001f\u000f\u0000\u202e\u202f\u0003\u0007\u0003\u0000\u202f\u2030"+ - "\u0003\u000b\u0005\u0000\u2030\u2031\u0003\u0007\u0003\u0000\u2031\u2032"+ - "\u0003\r\u0006\u0000\u2032\u2033\u0003\r\u0006\u0000\u2033\u2034\u0003"+ - ")\u0014\u0000\u2034\u0602\u0001\u0000\u0000\u0000\u2035\u2036\u0003\u001f"+ - "\u000f\u0000\u2036\u2037\u0003\u0007\u0003\u0000\u2037\u2038\u0003\u000b"+ - "\u0005\u0000\u2038\u2039\u0003\u0007\u0003\u0000\u2039\u203a\u0003\r\u0006"+ - "\u0000\u203a\u203b\u0003\r\u0006\u0000\u203b\u203c\u0003)\u0014\u0000"+ - "\u203c\u203d\u00058\u0000\u0000\u203d\u0604\u0001\u0000\u0000\u0000\u203e"+ - "\u203f\u0003\u001f\u000f\u0000\u203f\u2040\u0003#\u0011\u0000\u2040\u2041"+ - "\u0003!\u0010\u0000\u2041\u2042\u0003\u000f\u0007\u0000\u2042\u2043\u0003"+ - "7\u001b\u0000\u2043\u0606\u0001\u0000\u0000\u0000\u2044\u2045\u0003%\u0012"+ - "\u0000\u2045\u2046\u0003\u0013\t\u0000\u2046\u2047\u0005_\u0000\u0000"+ - "\u2047\u2048\u0003\u001d\u000e\u0000\u2048\u2049\u0003+\u0015\u0000\u2049"+ - "\u204a\u0003!\u0010\u0000\u204a\u0608\u0001\u0000\u0000\u0000\u204b\u204c"+ - "\u0003%\u0012\u0000\u204c\u204d\u0003#\u0011\u0000\u204d\u204e\u0003\u0017"+ - "\u000b\u0000\u204e\u204f\u0003!\u0010\u0000\u204f\u2050\u0003-\u0016\u0000"+ - "\u2050\u060a\u0001\u0000\u0000\u0000\u2051\u2052\u0003%\u0012\u0000\u2052"+ - "\u2053\u0003#\u0011\u0000\u2053\u2054\u0003\u001d\u000e\u0000\u2054\u2055"+ - "\u00037\u001b\u0000\u2055\u2056\u0003\u0013\t\u0000\u2056\u2057\u0003"+ - "#\u0011\u0000\u2057\u2058\u0003!\u0010\u0000\u2058\u060c\u0001\u0000\u0000"+ - "\u0000\u2059\u205a\u0003)\u0014\u0000\u205a\u205b\u0003\u000f\u0007\u0000"+ - "\u205b\u205c\u0003\u001d\u000e\u0000\u205c\u205d\u0003-\u0016\u0000\u205d"+ - "\u205e\u0003\u0017\u000b\u0000\u205e\u205f\u0003\u001f\u000f\u0000\u205f"+ - "\u2060\u0003\u000f\u0007\u0000\u2060\u060e\u0001\u0000\u0000\u0000\u2061"+ - "\u2062\u0003+\u0015\u0000\u2062\u2063\u0003\u000f\u0007\u0000\u2063\u2064"+ - "\u0003)\u0014\u0000\u2064\u2065\u0003\u0017\u000b\u0000\u2065\u2066\u0003"+ - "\u0007\u0003\u0000\u2066\u2067\u0003\u001d\u000e\u0000\u2067\u0610\u0001"+ - "\u0000\u0000\u0000\u2068\u2069\u0003+\u0015\u0000\u2069\u206a\u0003\u000f"+ - "\u0007\u0000\u206a\u206b\u0003)\u0014\u0000\u206b\u206c\u0003\u0017\u000b"+ - "\u0000\u206c\u206d\u0003\u0007\u0003\u0000\u206d\u206e\u0003\u001d\u000e"+ - "\u0000\u206e\u206f\u00052\u0000\u0000\u206f\u0612\u0001\u0000\u0000\u0000"+ - "\u2070\u2071\u0003+\u0015\u0000\u2071\u2072\u0003\u000f\u0007\u0000\u2072"+ - "\u2073\u0003)\u0014\u0000\u2073\u2074\u0003\u0017\u000b\u0000\u2074\u2075"+ - "\u0003\u0007\u0003\u0000\u2075\u2076\u0003\u001d\u000e\u0000\u2076\u2077"+ - "\u00054\u0000\u0000\u2077\u0614\u0001\u0000\u0000\u0000\u2078\u2079\u0003"+ - "+\u0015\u0000\u2079\u207a\u0003\u000f\u0007\u0000\u207a\u207b\u0003)\u0014"+ - "\u0000\u207b\u207c\u0003\u0017\u000b\u0000\u207c\u207d\u0003\u0007\u0003"+ - "\u0000\u207d\u207e\u0003\u001d\u000e\u0000\u207e\u207f\u00058\u0000\u0000"+ - "\u207f\u0616\u0001\u0000\u0000\u0000\u2080\u2081\u0003+\u0015\u0000\u2081"+ - "\u2082\u0003\u001f\u000f\u0000\u2082\u2083\u0003\u0007\u0003\u0000\u2083"+ - "\u2084\u0003\u001d\u000e\u0000\u2084\u2085\u0003\u001d\u000e\u0000\u2085"+ - "\u2086\u0003+\u0015\u0000\u2086\u2087\u0003\u000f\u0007\u0000\u2087\u2088"+ - "\u0003)\u0014\u0000\u2088\u2089\u0003\u0017\u000b\u0000\u2089\u208a\u0003"+ - "\u0007\u0003\u0000\u208a\u208b\u0003\u001d\u000e\u0000\u208b\u0618\u0001"+ - "\u0000\u0000\u0000\u208c\u208d\u0003+\u0015\u0000\u208d\u208e\u0003-\u0016"+ - "\u0000\u208e\u208f\u0003+\u0015\u0000\u208f\u2090\u0003-\u0016\u0000\u2090"+ - "\u2091\u0003\u000f\u0007\u0000\u2091\u2092\u0003\u001f\u000f\u0000\u2092"+ - "\u061a\u0001\u0000\u0000\u0000\u2093\u2094\u0003-\u0016\u0000\u2094\u2095"+ - "\u0003\u000f\u0007\u0000\u2095\u2096\u00035\u001a\u0000\u2096\u2097\u0003"+ - "-\u0016\u0000\u2097\u061c\u0001\u0000\u0000\u0000\u2098\u2099\u0003-\u0016"+ - "\u0000\u2099\u209a\u0003\u0017\u000b\u0000\u209a\u209b\u0003\u001f\u000f"+ - "\u0000\u209b\u209c\u0003\u000f\u0007\u0000\u209c\u209d\u0003+\u0015\u0000"+ - "\u209d\u209e\u0003-\u0016\u0000\u209e\u209f\u0003\u0007\u0003\u0000\u209f"+ - "\u20a0\u0003\u001f\u000f\u0000\u20a0\u20a1\u0003%\u0012\u0000\u20a1\u20a2"+ - "\u0003-\u0016\u0000\u20a2\u20a3\u00039\u001c\u0000\u20a3\u061e\u0001\u0000"+ - "\u0000\u0000\u20a4\u20a5\u0003-\u0016\u0000\u20a5\u20a6\u0003\u0017\u000b"+ - "\u0000\u20a6\u20a7\u0003\u001f\u000f\u0000\u20a7\u20a8\u0003\u000f\u0007"+ - "\u0000\u20a8\u20a9\u0003-\u0016\u0000\u20a9\u20aa\u00039\u001c\u0000\u20aa"+ - "\u0620\u0001\u0000\u0000\u0000\u20ab\u20ac\u0003-\u0016\u0000\u20ac\u20ad"+ - "\u0003+\u0015\u0000\u20ad\u20ae\u0003\'\u0013\u0000\u20ae\u20af\u0003"+ - "/\u0017\u0000\u20af\u20b0\u0003\u000f\u0007\u0000\u20b0\u20b1\u0003)\u0014"+ - "\u0000\u20b1\u20b2\u00037\u001b\u0000\u20b2\u0622\u0001\u0000\u0000\u0000"+ - "\u20b3\u20b4\u0003-\u0016\u0000\u20b4\u20b5\u0003+\u0015\u0000\u20b5\u20b6"+ - "\u00031\u0018\u0000\u20b6\u20b7\u0003\u000f\u0007\u0000\u20b7\u20b8\u0003"+ - "\u000b\u0005\u0000\u20b8\u20b9\u0003-\u0016\u0000\u20b9\u20ba\u0003#\u0011"+ - "\u0000\u20ba\u20bb\u0003)\u0014\u0000\u20bb\u0624\u0001\u0000\u0000\u0000"+ - "\u20bc\u20bd\u0003-\u0016\u0000\u20bd\u20be\u00035\u001a\u0000\u20be\u20bf"+ - "\u0003\u0017\u000b\u0000\u20bf\u20c0\u0003\r\u0006\u0000\u20c0\u20c1\u0005"+ - "_\u0000\u0000\u20c1\u20c2\u0003+\u0015\u0000\u20c2\u20c3\u0003!\u0010"+ - "\u0000\u20c3\u20c4\u0003\u0007\u0003\u0000\u20c4\u20c5\u0003%\u0012\u0000"+ - "\u20c5\u20c6\u0003+\u0015\u0000\u20c6\u20c7\u0003\u0015\n\u0000\u20c7"+ - "\u20c8\u0003#\u0011\u0000\u20c8\u20c9\u0003-\u0016\u0000\u20c9\u0626\u0001"+ - "\u0000\u0000\u0000\u20ca\u20cb\u0003/\u0017\u0000\u20cb\u20cc\u0003/\u0017"+ - "\u0000\u20cc\u20cd\u0003\u0017\u000b\u0000\u20cd\u20ce\u0003\r\u0006\u0000"+ - "\u20ce\u0628\u0001\u0000\u0000\u0000\u20cf\u20d0\u00031\u0018\u0000\u20d0"+ - "\u20d1\u0003\u0007\u0003\u0000\u20d1\u20d2\u0003)\u0014\u0000\u20d2\u20d3"+ - "\u0003\t\u0004\u0000\u20d3\u20d4\u0003\u0017\u000b\u0000\u20d4\u20d5\u0003"+ - "-\u0016\u0000\u20d5\u062a\u0001\u0000\u0000\u0000\u20d6\u20d7\u00035\u001a"+ - "\u0000\u20d7\u20d8\u0003\u001f\u000f\u0000\u20d8\u20d9\u0003\u001d\u000e"+ - "\u0000\u20d9\u062c\u0001\u0000\u0000\u0000\u20da\u20db\u0005,\u0000\u0000"+ - "\u20db\u062e\u0001\u0000\u0000\u0000\u20dc\u20dd\u0005:\u0000\u0000\u20dd"+ - "\u0630\u0001\u0000\u0000\u0000\u20de\u20df\u0005:\u0000\u0000\u20df\u20e0"+ - "\u0005:\u0000\u0000\u20e0\u0632\u0001\u0000\u0000\u0000\u20e1\u20e2\u0005"+ - "$\u0000\u0000\u20e2\u0634\u0001\u0000\u0000\u0000\u20e3\u20e4\u0005$\u0000"+ - "\u0000\u20e4\u20e5\u0005$\u0000\u0000\u20e5\u0636\u0001\u0000\u0000\u0000"+ - "\u20e6\u20e7\u0005*\u0000\u0000\u20e7\u0638\u0001\u0000\u0000\u0000\u20e8"+ - "\u20e9\u0005(\u0000\u0000\u20e9\u063a\u0001\u0000\u0000\u0000\u20ea\u20eb"+ - "\u0005)\u0000\u0000\u20eb\u063c\u0001\u0000\u0000\u0000\u20ec\u20ed\u0005"+ - "[\u0000\u0000\u20ed\u063e\u0001\u0000\u0000\u0000\u20ee\u20ef\u0005]\u0000"+ - "\u0000\u20ef\u0640\u0001\u0000\u0000\u0000\u20f0\u20f1\u0003\t\u0004\u0000"+ - "\u20f1\u20f5\u0005\'\u0000\u0000\u20f2\u20f4\u000201\u0000\u20f3\u20f2"+ - "\u0001\u0000\u0000\u0000\u20f4\u20f7\u0001\u0000\u0000\u0000\u20f5\u20f3"+ - "\u0001\u0000\u0000\u0000\u20f5\u20f6\u0001\u0000\u0000\u0000\u20f6\u20f8"+ - "\u0001\u0000\u0000\u0000\u20f7\u20f5\u0001\u0000\u0000\u0000\u20f8\u20f9"+ - "\u0005\'\u0000\u0000\u20f9\u0642\u0001\u0000\u0000\u0000\u20fa\u20fb\u0003"+ - "\u000f\u0007\u0000\u20fb\u20fc\u0003A \u0000\u20fc\u0644\u0001\u0000\u0000"+ - "\u0000\u20fd\u20ff\u0005-\u0000\u0000\u20fe\u20fd\u0001\u0000\u0000\u0000"+ - "\u20fe\u20ff\u0001\u0000\u0000\u0000\u20ff\u2101\u0001\u0000\u0000\u0000"+ - "\u2100\u2102\u0003=\u001e\u0000\u2101\u2100\u0001\u0000\u0000\u0000\u2102"+ - "\u2103\u0001\u0000\u0000\u0000\u2103\u2101\u0001\u0000\u0000\u0000\u2103"+ - "\u2104\u0001\u0000\u0000\u0000\u2104\u2105\u0001\u0000\u0000\u0000\u2105"+ - "\u2107\u0005.\u0000\u0000\u2106\u2108\u0003=\u001e\u0000\u2107\u2106\u0001"+ - "\u0000\u0000\u0000\u2108\u2109\u0001\u0000\u0000\u0000\u2109\u2107\u0001"+ - "\u0000\u0000\u0000\u2109\u210a\u0001\u0000\u0000\u0000\u210a\u2117\u0001"+ - "\u0000\u0000\u0000\u210b\u210f\u0003\u000f\u0007\u0000\u210c\u210e\u0005"+ - "-\u0000\u0000\u210d\u210c\u0001\u0000\u0000\u0000\u210e\u2111\u0001\u0000"+ - "\u0000\u0000\u210f\u210d\u0001\u0000\u0000\u0000\u210f\u2110\u0001\u0000"+ - "\u0000\u0000\u2110\u2113\u0001\u0000\u0000\u0000\u2111\u210f\u0001\u0000"+ - "\u0000\u0000\u2112\u2114\u0003=\u001e\u0000\u2113\u2112\u0001\u0000\u0000"+ - "\u0000\u2114\u2115\u0001\u0000\u0000\u0000\u2115\u2113\u0001\u0000\u0000"+ - "\u0000\u2115\u2116\u0001\u0000\u0000\u0000\u2116\u2118\u0001\u0000\u0000"+ - "\u0000\u2117\u210b\u0001\u0000\u0000\u0000\u2117\u2118\u0001\u0000\u0000"+ - "\u0000\u2118\u0646\u0001\u0000\u0000\u0000\u2119\u211b\u0005-\u0000\u0000"+ - "\u211a\u2119\u0001\u0000\u0000\u0000\u211a\u211b\u0001\u0000\u0000\u0000"+ - "\u211b\u211d\u0001\u0000\u0000\u0000\u211c\u211e\u0003=\u001e\u0000\u211d"+ - "\u211c\u0001\u0000\u0000\u0000\u211e\u211f\u0001\u0000\u0000\u0000\u211f"+ - "\u211d\u0001\u0000\u0000\u0000\u211f\u2120\u0001\u0000\u0000\u0000\u2120"+ - "\u2127\u0001\u0000\u0000\u0000\u2121\u2123\u0003\u000f\u0007\u0000\u2122"+ - "\u2124\u0003=\u001e\u0000\u2123\u2122\u0001\u0000\u0000\u0000\u2124\u2125"+ - "\u0001\u0000\u0000\u0000\u2125\u2123\u0001\u0000\u0000\u0000\u2125\u2126"+ - "\u0001\u0000\u0000\u0000\u2126\u2128\u0001\u0000\u0000\u0000\u2127\u2121"+ - "\u0001\u0000\u0000\u0000\u2127\u2128\u0001\u0000\u0000\u0000\u2128\u0648"+ - "\u0001\u0000\u0000\u0000\u2129\u212a\u0005x\u0000\u0000\u212a\u212b\u0003"+ - "A \u0000\u212b\u064a\u0001\u0000\u0000\u0000\u212c\u212d\u0005.\u0000"+ - "\u0000\u212d\u064c\u0001\u0000\u0000\u0000\u212e\u212f\u0003A \u0000\u212f"+ - "\u064e\u0001\u0000\u0000\u0000\u2130\u2131\u0003?\u001f\u0000\u2131\u0650"+ - "\u0001\u0000\u0000\u0000\u2132\u2136\u0007 \u0000\u0000\u2133\u2135\u0007"+ - "!\u0000\u0000\u2134\u2133\u0001\u0000\u0000\u0000\u2135\u2138\u0001\u0000"+ - "\u0000\u0000\u2136\u2134\u0001\u0000\u0000\u0000\u2136\u2137\u0001\u0000"+ - "\u0000\u0000\u2137\u0652\u0001\u0000\u0000\u0000\u2138\u2136\u0001\u0000"+ - "\u0000\u0000\u2139\u213b\u0005$\u0000\u0000\u213a\u213c\u0003=\u001e\u0000"+ - "\u213b\u213a\u0001\u0000\u0000\u0000\u213c\u213d\u0001\u0000\u0000\u0000"+ - "\u213d\u213b\u0001\u0000\u0000\u0000\u213d\u213e\u0001\u0000\u0000\u0000"+ - "\u213e\u0654\u0001\u0000\u0000\u0000\u213f\u2143\u0007\"\u0000\u0000\u2140"+ - "\u2142\u0007#\u0000\u0000\u2141\u2140\u0001\u0000\u0000\u0000\u2142\u2145"+ - "\u0001\u0000\u0000\u0000\u2143\u2141\u0001\u0000\u0000\u0000\u2143\u2144"+ - "\u0001\u0000\u0000\u0000\u2144\u0656\u0001\u0000\u0000\u0000\u2145\u2143"+ - "\u0001\u0000\u0000\u0000\u2146\u2147\u0005&\u0000\u0000\u2147\u0658\u0001"+ - "\u0000\u0000\u0000\u2148\u2149\u0005&\u0000\u0000\u2149\u214a\u0005&\u0000"+ - "\u0000\u214a\u065a\u0001\u0000\u0000\u0000\u214b\u214c\u0005&\u0000\u0000"+ - "\u214c\u214d\u0005<\u0000\u0000\u214d\u065c\u0001\u0000\u0000\u0000\u214e"+ - "\u214f\u0005@\u0000\u0000\u214f\u2150\u0005@\u0000\u0000\u2150\u065e\u0001"+ - "\u0000\u0000\u0000\u2151\u2152\u0005@\u0000\u0000\u2152\u2153\u0005>\u0000"+ - "\u0000\u2153\u0660\u0001\u0000\u0000\u0000\u2154\u2155\u0005@\u0000\u0000"+ - "\u2155\u0662\u0001\u0000\u0000\u0000\u2156\u2157\u0005!\u0000\u0000\u2157"+ - "\u0664\u0001\u0000\u0000\u0000\u2158\u2159\u0005!\u0000\u0000\u2159\u215a"+ - "\u0005!\u0000\u0000\u215a\u0666\u0001\u0000\u0000\u0000\u215b\u215c\u0005"+ - "!\u0000\u0000\u215c\u215d\u0005=\u0000\u0000\u215d\u0668\u0001\u0000\u0000"+ - "\u0000\u215e\u215f\u0005^\u0000\u0000\u215f\u066a\u0001\u0000\u0000\u0000"+ - "\u2160\u2161\u0005=\u0000\u0000\u2161\u066c\u0001\u0000\u0000\u0000\u2162"+ - "\u2163\u0005=\u0000\u0000\u2163\u2164\u0005>\u0000\u0000\u2164\u066e\u0001"+ - "\u0000\u0000\u0000\u2165\u2166\u0005>\u0000\u0000\u2166\u0670\u0001\u0000"+ - "\u0000\u0000\u2167\u2168\u0005>\u0000\u0000\u2168\u2169\u0005=\u0000\u0000"+ - "\u2169\u0672\u0001\u0000\u0000\u0000\u216a\u216b\u0005>\u0000\u0000\u216b"+ - "\u216c\u0005>\u0000\u0000\u216c\u0674\u0001\u0000\u0000\u0000\u216d\u216e"+ - "\u0005#\u0000\u0000\u216e\u0676\u0001\u0000\u0000\u0000\u216f\u2170\u0005"+ - "#\u0000\u0000\u2170\u2171\u0005=\u0000\u0000\u2171\u0678\u0001\u0000\u0000"+ - "\u0000\u2172\u2173\u0005#\u0000\u0000\u2173\u2174\u0005>\u0000\u0000\u2174"+ - "\u067a\u0001\u0000\u0000\u0000\u2175\u2176\u0005#\u0000\u0000\u2176\u2177"+ - "\u0005>\u0000\u0000\u2177\u2178\u0005>\u0000\u0000\u2178\u067c\u0001\u0000"+ - "\u0000\u0000\u2179\u217a\u0005#\u0000\u0000\u217a\u217b\u0005#\u0000\u0000"+ - "\u217b\u067e\u0001\u0000\u0000\u0000\u217c\u217d\u0005-\u0000\u0000\u217d"+ - "\u217e\u0005>\u0000\u0000\u217e\u0680\u0001\u0000\u0000\u0000\u217f\u2180"+ - "\u0005-\u0000\u0000\u2180\u2181\u0005>\u0000\u0000\u2181\u2182\u0005>"+ - "\u0000\u0000\u2182\u0682\u0001\u0000\u0000\u0000\u2183\u2184\u0005-\u0000"+ - "\u0000\u2184\u2185\u0005|\u0000\u0000\u2185\u2186\u0005-\u0000\u0000\u2186"+ - "\u0684\u0001\u0000\u0000\u0000\u2187\u2188\u0005<\u0000\u0000\u2188\u0686"+ - "\u0001\u0000\u0000\u0000\u2189\u218a\u0005<\u0000\u0000\u218a\u218b\u0005"+ - "=\u0000\u0000\u218b\u0688\u0001\u0000\u0000\u0000\u218c\u218d\u0005<\u0000"+ - "\u0000\u218d\u218e\u0005@\u0000\u0000\u218e\u068a\u0001\u0000\u0000\u0000"+ - "\u218f\u2190\u0005<\u0000\u0000\u2190\u2191\u0005^\u0000\u0000\u2191\u068c"+ - "\u0001\u0000\u0000\u0000\u2192\u2193\u0005<\u0000\u0000\u2193\u2194\u0005"+ - ">\u0000\u0000\u2194\u068e\u0001\u0000\u0000\u0000\u2195\u2196\u0005<\u0000"+ - "\u0000\u2196\u2197\u0005-\u0000\u0000\u2197\u2198\u0005>\u0000\u0000\u2198"+ - "\u0690\u0001\u0000\u0000\u0000\u2199\u219a\u0005<\u0000\u0000\u219a\u219b"+ - "\u0005<\u0000\u0000\u219b\u0692\u0001\u0000\u0000\u0000\u219c\u219d\u0005"+ - "<\u0000\u0000\u219d\u219e\u0005<\u0000\u0000\u219e\u219f\u0005=\u0000"+ - "\u0000\u219f\u0694\u0001\u0000\u0000\u0000\u21a0\u21a1\u0005<\u0000\u0000"+ - "\u21a1\u21a2\u0005?\u0000\u0000\u21a2\u21a3\u0005>\u0000\u0000\u21a3\u0696"+ - "\u0001\u0000\u0000\u0000\u21a4\u21a5\u0005-\u0000\u0000\u21a5\u0698\u0001"+ - "\u0000\u0000\u0000\u21a6\u21a7\u0005%\u0000\u0000\u21a7\u069a\u0001\u0000"+ - "\u0000\u0000\u21a8\u21a9\u0005|\u0000\u0000\u21a9\u069c\u0001\u0000\u0000"+ - "\u0000\u21aa\u21ab\u0005|\u0000\u0000\u21ab\u21ac\u0005|\u0000\u0000\u21ac"+ - "\u069e\u0001\u0000\u0000\u0000\u21ad\u21ae\u0005|\u0000\u0000\u21ae\u21af"+ - "\u0005|\u0000\u0000\u21af\u21b0\u0005/\u0000\u0000\u21b0\u06a0\u0001\u0000"+ - "\u0000\u0000\u21b1\u21b2\u0005|\u0000\u0000\u21b2\u21b3\u0005/\u0000\u0000"+ - "\u21b3\u06a2\u0001\u0000\u0000\u0000\u21b4\u21b5\u0005+\u0000\u0000\u21b5"+ - "\u06a4\u0001\u0000\u0000\u0000\u21b6\u21b7\u0005?\u0000\u0000\u21b7\u06a6"+ - "\u0001\u0000\u0000\u0000\u21b8\u21b9\u0005?\u0000\u0000\u21b9\u21ba\u0005"+ - "&\u0000\u0000\u21ba\u06a8\u0001\u0000\u0000\u0000\u21bb\u21bc\u0005?\u0000"+ - "\u0000\u21bc\u21bd\u0005#\u0000\u0000\u21bd\u06aa\u0001\u0000\u0000\u0000"+ - "\u21be\u21bf\u0005?\u0000\u0000\u21bf\u21c0\u0005-\u0000\u0000\u21c0\u06ac"+ - "\u0001\u0000\u0000\u0000\u21c1\u21c2\u0005?\u0000\u0000\u21c2\u21c3\u0005"+ - "|\u0000\u0000\u21c3\u06ae\u0001\u0000\u0000\u0000\u21c4\u21c5\u0005/\u0000"+ - "\u0000\u21c5\u06b0\u0001\u0000\u0000\u0000\u21c6\u21c7\u0005~\u0000\u0000"+ - "\u21c7\u06b2\u0001\u0000\u0000\u0000\u21c8\u21c9\u0005~\u0000\u0000\u21c9"+ - "\u21ca\u0005=\u0000\u0000\u21ca\u06b4\u0001\u0000\u0000\u0000\u21cb\u21cc"+ - "\u0005~\u0000\u0000\u21cc\u21cd\u0005>\u0000\u0000\u21cd\u21ce\u0005="+ - "\u0000\u0000\u21ce\u21cf\u0005~\u0000\u0000\u21cf\u06b6\u0001\u0000\u0000"+ - "\u0000\u21d0\u21d1\u0005~\u0000\u0000\u21d1\u21d2\u0005>\u0000\u0000\u21d2"+ - "\u21d3\u0005~\u0000\u0000\u21d3\u06b8\u0001\u0000\u0000\u0000\u21d4\u21d5"+ - "\u0005~\u0000\u0000\u21d5\u21d6\u0005<\u0000\u0000\u21d6\u21d7\u0005="+ - "\u0000\u0000\u21d7\u21d8\u0005~\u0000\u0000\u21d8\u06ba\u0001\u0000\u0000"+ - "\u0000\u21d9\u21da\u0005~\u0000\u0000\u21da\u21db\u0005<\u0000\u0000\u21db"+ - "\u21dc\u0005~\u0000\u0000\u21dc\u06bc\u0001\u0000\u0000\u0000\u21dd\u21de"+ - "\u0005~\u0000\u0000\u21de\u21df\u0005*\u0000\u0000\u21df\u06be\u0001\u0000"+ - "\u0000\u0000\u21e0\u21e1\u0005~\u0000\u0000\u21e1\u21e2\u0005~\u0000\u0000"+ - "\u21e2\u06c0\u0001\u0000\u0000\u0000\u21e3\u21e4\u0005;\u0000\u0000\u21e4"+ - "\u06c2\u0001\u0000\u0000\u0000\u0018\u0000\u06c6\u06d0\u06de\u0723\u0725"+ - "\u0730\u0732\u073d\u073f\u20f5\u20fe\u2103\u2109\u210f\u2115\u2117\u211a"+ - "\u211f\u2125\u2127\u2136\u213d\u2143\u0002\u0006\u0000\u0000\u0000\u0001"+ - "\u0000"; + "\u000b\u0005\u0000\u1e27\u0580\u0001\u0000\u0000\u0000\u1e28\u1e29\u0003"+ + "\r\u0006\u0000\u1e29\u1e2a\u0003\u000f\u0007\u0000\u1e2a\u1e2b\u0003+"+ + "\u0015\u0000\u1e2b\u1e2c\u0003\u000f\u0007\u0000\u1e2c\u1e2d\u0003)\u0014"+ + "\u0000\u1e2d\u1e2e\u0003\u0017\u000b\u0000\u1e2e\u1e2f\u0003\u0007\u0003"+ + "\u0000\u1e2f\u1e30\u0003\u001d\u000e\u0000\u1e30\u1e31\u0003\u0011\b\u0000"+ + "\u1e31\u1e32\u0003/\u0017\u0000\u1e32\u1e33\u0003!\u0010\u0000\u1e33\u1e34"+ + "\u0003\u000b\u0005\u0000\u1e34\u0582\u0001\u0000\u0000\u0000\u1e35\u1e36"+ + "\u0003\u0017\u000b\u0000\u1e36\u1e37\u0003!\u0010\u0000\u1e37\u1e38\u0003"+ + "\u0017\u000b\u0000\u1e38\u1e39\u0003-\u0016\u0000\u1e39\u1e3a\u0003\u000b"+ + "\u0005\u0000\u1e3a\u1e3b\u0003#\u0011\u0000\u1e3b\u1e3c\u0003!\u0010\u0000"+ + "\u1e3c\u1e3d\u0003\r\u0006\u0000\u1e3d\u0584\u0001\u0000\u0000\u0000\u1e3e"+ + "\u1e3f\u0003\u001f\u000f\u0000\u1e3f\u1e40\u0003+\u0015\u0000\u1e40\u1e41"+ + "\u0003\u0011\b\u0000\u1e41\u1e42\u0003/\u0017\u0000\u1e42\u1e43\u0003"+ + "!\u0010\u0000\u1e43\u1e44\u0003\u000b\u0005\u0000\u1e44\u0586\u0001\u0000"+ + "\u0000\u0000\u1e45\u1e46\u0003\u001f\u000f\u0000\u1e46\u1e47\u0003\u0017"+ + "\u000b\u0000\u1e47\u1e48\u0003!\u0010\u0000\u1e48\u1e49\u00031\u0018\u0000"+ + "\u1e49\u1e4a\u0003\u0011\b\u0000\u1e4a\u1e4b\u0003/\u0017\u0000\u1e4b"+ + "\u1e4c\u0003!\u0010\u0000\u1e4c\u1e4d\u0003\u000b\u0005\u0000\u1e4d\u0588"+ + "\u0001\u0000\u0000\u0000\u1e4e\u1e4f\u0003\u001f\u000f\u0000\u1e4f\u1e50"+ + "\u0003+\u0015\u0000\u1e50\u1e51\u0003-\u0016\u0000\u1e51\u1e52\u00037"+ + "\u001b\u0000\u1e52\u1e53\u0003%\u0012\u0000\u1e53\u1e54\u0003\u000f\u0007"+ + "\u0000\u1e54\u058a\u0001\u0000\u0000\u0000\u1e55\u1e56\u0003\u001f\u000f"+ + "\u0000\u1e56\u1e57\u0003+\u0015\u0000\u1e57\u1e58\u0003+\u0015\u0000\u1e58"+ + "\u1e59\u0003%\u0012\u0000\u1e59\u1e5a\u0003\u0007\u0003\u0000\u1e5a\u1e5b"+ + "\u0003\u000b\u0005\u0000\u1e5b\u1e5c\u0003\u000f\u0007\u0000\u1e5c\u058c"+ + "\u0001\u0000\u0000\u0000\u1e5d\u1e5e\u0003\u001f\u000f\u0000\u1e5e\u1e5f"+ + "\u0003\u0011\b\u0000\u1e5f\u1e60\u0003\u0017\u000b\u0000\u1e60\u1e61\u0003"+ + "!\u0010\u0000\u1e61\u1e62\u0003\u0007\u0003\u0000\u1e62\u1e63\u0003\u001d"+ + "\u000e\u0000\u1e63\u1e64\u0003\u0011\b\u0000\u1e64\u1e65\u0003/\u0017"+ + "\u0000\u1e65\u1e66\u0003!\u0010\u0000\u1e66\u1e67\u0003\u000b\u0005\u0000"+ + "\u1e67\u058e\u0001\u0000\u0000\u0000\u1e68\u1e69\u0003\u001f\u000f\u0000"+ + "\u1e69\u1e6a\u0003\u0011\b\u0000\u1e6a\u1e6b\u0003\u0017\u000b\u0000\u1e6b"+ + "\u1e6c\u0003!\u0010\u0000\u1e6c\u1e6d\u0003\u0007\u0003\u0000\u1e6d\u1e6e"+ + "\u0003\u001d\u000e\u0000\u1e6e\u1e6f\u0003\u0011\b\u0000\u1e6f\u1e70\u0003"+ + "/\u0017\u0000\u1e70\u1e71\u0003!\u0010\u0000\u1e71\u1e72\u0003\u000b\u0005"+ + "\u0000\u1e72\u1e73\u0005_\u0000\u0000\u1e73\u1e74\u0003\u000f\u0007\u0000"+ + "\u1e74\u1e75\u00035\u001a\u0000\u1e75\u1e76\u0003-\u0016\u0000\u1e76\u1e77"+ + "\u0003)\u0014\u0000\u1e77\u1e78\u0003\u0007\u0003\u0000\u1e78\u0590\u0001"+ + "\u0000\u0000\u0000\u1e79\u1e7a\u0003\u001f\u000f\u0000\u1e7a\u1e7b\u0003"+ + "\u0017\u000b\u0000\u1e7b\u1e7c\u0003!\u0010\u0000\u1e7c\u1e7d\u0003\u0017"+ + "\u000b\u0000\u1e7d\u1e7e\u0003-\u0016\u0000\u1e7e\u1e7f\u0003\u000b\u0005"+ + "\u0000\u1e7f\u1e80\u0003#\u0011\u0000\u1e80\u1e81\u0003!\u0010\u0000\u1e81"+ + "\u1e82\u0003\r\u0006\u0000\u1e82\u0592\u0001\u0000\u0000\u0000\u1e83\u1e84"+ + "\u0003+\u0015\u0000\u1e84\u1e85\u0003#\u0011\u0000\u1e85\u1e86\u0003)"+ + "\u0014\u0000\u1e86\u1e87\u0003-\u0016\u0000\u1e87\u1e88\u0003#\u0011\u0000"+ + "\u1e88\u1e89\u0003%\u0012\u0000\u1e89\u0594\u0001\u0000\u0000\u0000\u1e8a"+ + "\u1e8b\u0003%\u0012\u0000\u1e8b\u1e8c\u0003\u0007\u0003\u0000\u1e8c\u1e8d"+ + "\u0003)\u0014\u0000\u1e8d\u1e8e\u0003\u0007\u0003\u0000\u1e8e\u1e8f\u0003"+ + "\u001d\u000e\u0000\u1e8f\u1e90\u0003\u001d\u000e\u0000\u1e90\u1e91\u0003"+ + "\u000f\u0007\u0000\u1e91\u1e92\u0003\u001d\u000e\u0000\u1e92\u0596\u0001"+ + "\u0000\u0000\u0000\u1e93\u1e94\u0003\u0015\n\u0000\u1e94\u1e95\u00037"+ + "\u001b\u0000\u1e95\u1e96\u0003%\u0012\u0000\u1e96\u1e97\u0003#\u0011\u0000"+ + "\u1e97\u1e98\u0003-\u0016\u0000\u1e98\u1e99\u0003\u0015\n\u0000\u1e99"+ + "\u1e9a\u0003\u000f\u0007\u0000\u1e9a\u1e9b\u0003-\u0016\u0000\u1e9b\u1e9c"+ + "\u0003\u0017\u000b\u0000\u1e9c\u1e9d\u0003\u000b\u0005\u0000\u1e9d\u1e9e"+ + "\u0003\u0007\u0003\u0000\u1e9e\u1e9f\u0003\u001d\u000e\u0000\u1e9f\u0598"+ + "\u0001\u0000\u0000\u0000\u1ea0\u1ea1\u0003+\u0015\u0000\u1ea1\u1ea2\u0003"+ + "\u0007\u0003\u0000\u1ea2\u1ea3\u0003\u0011\b\u0000\u1ea3\u1ea4\u0003\u000f"+ + "\u0007\u0000\u1ea4\u059a\u0001\u0000\u0000\u0000\u1ea5\u1ea6\u0003/\u0017"+ + "\u0000\u1ea6\u1ea7\u0003!\u0010\u0000\u1ea7\u1ea8\u0003+\u0015\u0000\u1ea8"+ + "\u1ea9\u0003\u0007\u0003\u0000\u1ea9\u1eaa\u0003\u0011\b\u0000\u1eaa\u1eab"+ + "\u0003\u000f\u0007\u0000\u1eab\u059c\u0001\u0000\u0000\u0000\u1eac\u1ead"+ + "\u0003\t\u0004\u0000\u1ead\u1eae\u0003\u0007\u0003\u0000\u1eae\u1eaf\u0003"+ + "+\u0015\u0000\u1eaf\u1eb0\u0003\u000f\u0007\u0000\u1eb0\u1eb1\u0003-\u0016"+ + "\u0000\u1eb1\u1eb2\u00037\u001b\u0000\u1eb2\u1eb3\u0003%\u0012\u0000\u1eb3"+ + "\u1eb4\u0003\u000f\u0007\u0000\u1eb4\u059e\u0001\u0000\u0000\u0000\u1eb5"+ + "\u1eb6\u0003\u0017\u000b\u0000\u1eb6\u1eb7\u0003\u0011\b\u0000\u1eb7\u05a0"+ + "\u0001\u0000\u0000\u0000\u1eb8\u1eb9\u0003\u001d\u000e\u0000\u1eb9\u1eba"+ + "\u0003#\u0011\u0000\u1eba\u1ebb\u0003\u000b\u0005\u0000\u1ebb\u1ebc\u0003"+ + "\u0007\u0003\u0000\u1ebc\u1ebd\u0003\u001d\u000e\u0000\u1ebd\u1ebe\u0003"+ + "\u000f\u0007\u0000\u1ebe\u05a2\u0001\u0000\u0000\u0000\u1ebf\u1ec0\u0003"+ + "\u001d\u000e\u0000\u1ec0\u1ec1\u0003\u000b\u0005\u0000\u1ec1\u1ec2\u0005"+ + "_\u0000\u0000\u1ec2\u1ec3\u0003\u000b\u0005\u0000\u1ec3\u1ec4\u0003#\u0011"+ + "\u0000\u1ec4\u1ec5\u0003\u001d\u000e\u0000\u1ec5\u1ec6\u0003\u001d\u000e"+ + "\u0000\u1ec6\u1ec7\u0003\u0007\u0003\u0000\u1ec7\u1ec8\u0003-\u0016\u0000"+ + "\u1ec8\u1ec9\u0003\u000f\u0007\u0000\u1ec9\u05a4\u0001\u0000\u0000\u0000"+ + "\u1eca\u1ecb\u0003\u001d\u000e\u0000\u1ecb\u1ecc\u0003\u000b\u0005\u0000"+ + "\u1ecc\u1ecd\u0005_\u0000\u0000\u1ecd\u1ece\u0003\u000b\u0005\u0000\u1ece"+ + "\u1ecf\u0003-\u0016\u0000\u1ecf\u1ed0\u00037\u001b\u0000\u1ed0\u1ed1\u0003"+ + "%\u0012\u0000\u1ed1\u1ed2\u0003\u000f\u0007\u0000\u1ed2\u05a6\u0001\u0000"+ + "\u0000\u0000\u1ed3\u1ed4\u0003%\u0012\u0000\u1ed4\u1ed5\u0003)\u0014\u0000"+ + "\u1ed5\u1ed6\u0003#\u0011\u0000\u1ed6\u1ed7\u00031\u0018\u0000\u1ed7\u1ed8"+ + "\u0003\u0017\u000b\u0000\u1ed8\u1ed9\u0003\r\u0006\u0000\u1ed9\u1eda\u0003"+ + "\u000f\u0007\u0000\u1eda\u1edb\u0003)\u0014\u0000\u1edb\u05a8\u0001\u0000"+ + "\u0000\u0000\u1edc\u1edd\u00031\u0018\u0000\u1edd\u1ede\u0003\u000f\u0007"+ + "\u0000\u1ede\u1edf\u0003)\u0014\u0000\u1edf\u1ee0\u0003+\u0015\u0000\u1ee0"+ + "\u1ee1\u0003\u0017\u000b\u0000\u1ee1\u1ee2\u0003#\u0011\u0000\u1ee2\u1ee3"+ + "\u0003!\u0010\u0000\u1ee3\u05aa\u0001\u0000\u0000\u0000\u1ee4\u1ee5\u0003"+ + "\u0007\u0003\u0000\u1ee5\u1ee6\u0003\u001d\u000e\u0000\u1ee6\u1ee7\u0003"+ + "\u001d\u000e\u0000\u1ee7\u1ee8\u0003#\u0011\u0000\u1ee8\u1ee9\u00033\u0019"+ + "\u0000\u1ee9\u1eea\u0005_\u0000\u0000\u1eea\u1eeb\u0003\u000b\u0005\u0000"+ + "\u1eeb\u1eec\u0003#\u0011\u0000\u1eec\u1eed\u0003!\u0010\u0000\u1eed\u1eee"+ + "\u0003!\u0010\u0000\u1eee\u1eef\u0003\u000f\u0007\u0000\u1eef\u1ef0\u0003"+ + "\u000b\u0005\u0000\u1ef0\u1ef1\u0003-\u0016\u0000\u1ef1\u1ef2\u0003\u0017"+ + "\u000b\u0000\u1ef2\u1ef3\u0003#\u0011\u0000\u1ef3\u1ef4\u0003!\u0010\u0000"+ + "\u1ef4\u1ef5\u0003+\u0015\u0000\u1ef5\u05ac\u0001\u0000\u0000\u0000\u1ef6"+ + "\u1ef7\u0003\u0017\u000b\u0000\u1ef7\u1ef8\u0003+\u0015\u0000\u1ef8\u1ef9"+ + "\u0005_\u0000\u0000\u1ef9\u1efa\u0003-\u0016\u0000\u1efa\u1efb\u0003\u000f"+ + "\u0007\u0000\u1efb\u1efc\u0003\u001f\u000f\u0000\u1efc\u1efd\u0003%\u0012"+ + "\u0000\u1efd\u1efe\u0003\u001d\u000e\u0000\u1efe\u1eff\u0003\u0007\u0003"+ + "\u0000\u1eff\u1f00\u0003-\u0016\u0000\u1f00\u1f01\u0003\u000f\u0007\u0000"+ + "\u1f01\u05ae\u0001\u0000\u0000\u0000\u1f02\u1f03\u0003\u000f\u0007\u0000"+ + "\u1f03\u1f04\u00031\u0018\u0000\u1f04\u1f05\u0003\u000f\u0007\u0000\u1f05"+ + "\u1f06\u0003!\u0010\u0000\u1f06\u1f07\u0003-\u0016\u0000\u1f07\u05b0\u0001"+ + "\u0000\u0000\u0000\u1f08\u1f09\u00033\u0019\u0000\u1f09\u1f0a\u0003)\u0014"+ + "\u0000\u1f0a\u1f0b\u0003\u0007\u0003\u0000\u1f0b\u1f0c\u0003%\u0012\u0000"+ + "\u1f0c\u1f0d\u0003%\u0012\u0000\u1f0d\u1f0e\u0003\u000f\u0007\u0000\u1f0e"+ + "\u1f0f\u0003)\u0014\u0000\u1f0f\u05b2\u0001\u0000\u0000\u0000\u1f10\u1f11"+ + "\u0003+\u0015\u0000\u1f11\u1f12\u0003\u000f\u0007\u0000\u1f12\u1f13\u0003"+ + ")\u0014\u0000\u1f13\u1f14\u00031\u0018\u0000\u1f14\u1f15\u0003\u000f\u0007"+ + "\u0000\u1f15\u1f16\u0003)\u0014\u0000\u1f16\u05b4\u0001\u0000\u0000\u0000"+ + "\u1f17\u1f18\u0003\t\u0004\u0000\u1f18\u1f19\u0003-\u0016\u0000\u1f19"+ + "\u1f1a\u0003)\u0014\u0000\u1f1a\u1f1b\u0003\u000f\u0007\u0000\u1f1b\u1f1c"+ + "\u0003\u000f\u0007\u0000\u1f1c\u05b6\u0001\u0000\u0000\u0000\u1f1d\u1f1e"+ + "\u0003\u0015\n\u0000\u1f1e\u1f1f\u0003\u0007\u0003\u0000\u1f1f\u1f20\u0003"+ + "+\u0015\u0000\u1f20\u1f21\u0003\u0015\n\u0000\u1f21\u05b8\u0001\u0000"+ + "\u0000\u0000\u1f22\u1f23\u0003\u0013\t\u0000\u1f23\u1f24\u0003\u0017\u000b"+ + "\u0000\u1f24\u1f25\u0003+\u0015\u0000\u1f25\u1f26\u0003-\u0016\u0000\u1f26"+ + "\u05ba\u0001\u0000\u0000\u0000\u1f27\u1f28\u0003+\u0015\u0000\u1f28\u1f29"+ + "\u0003%\u0012\u0000\u1f29\u1f2a\u0003\u0013\t\u0000\u1f2a\u1f2b\u0003"+ + "\u0017\u000b\u0000\u1f2b\u1f2c\u0003+\u0015\u0000\u1f2c\u1f2d\u0003-\u0016"+ + "\u0000\u1f2d\u05bc\u0001\u0000\u0000\u0000\u1f2e\u1f2f\u0003\u0013\t\u0000"+ + "\u1f2f\u1f30\u0003\u0017\u000b\u0000\u1f30\u1f31\u0003!\u0010\u0000\u1f31"+ + "\u05be\u0001\u0000\u0000\u0000\u1f32\u1f33\u0003\t\u0004\u0000\u1f33\u1f34"+ + "\u0003)\u0014\u0000\u1f34\u1f35\u0003\u0017\u000b\u0000\u1f35\u1f36\u0003"+ + "!\u0010\u0000\u1f36\u05c0\u0001\u0000\u0000\u0000\u1f37\u1f38\u0003\u000b"+ + "\u0005\u0000\u1f38\u1f39\u0003#\u0011\u0000\u1f39\u1f3a\u0003!\u0010\u0000"+ + "\u1f3a\u1f3b\u0003\u000b\u0005\u0000\u1f3b\u1f3c\u0003/\u0017\u0000\u1f3c"+ + "\u1f3d\u0003)\u0014\u0000\u1f3d\u1f3e\u0003)\u0014\u0000\u1f3e\u1f3f\u0003"+ + "\u000f\u0007\u0000\u1f3f\u1f40\u0003!\u0010\u0000\u1f40\u1f41\u0003-\u0016"+ + "\u0000\u1f41\u1f42\u0003\u001d\u000e\u0000\u1f42\u1f43\u00037\u001b\u0000"+ + "\u1f43\u05c2\u0001\u0000\u0000\u0000\u1f44\u1f45\u0003\u0017\u000b\u0000"+ + "\u1f45\u1f46\u0003!\u0010\u0000\u1f46\u1f47\u0003\u001d\u000e\u0000\u1f47"+ + "\u1f48\u0003\u0017\u000b\u0000\u1f48\u1f49\u0003!\u0010\u0000\u1f49\u1f4a"+ + "\u0003\u000f\u0007\u0000\u1f4a\u05c4\u0001\u0000\u0000\u0000\u1f4b\u1f4c"+ + "\u0003\u001f\u000f\u0000\u1f4c\u1f4d\u0003\u0007\u0003\u0000\u1f4d\u1f4e"+ + "\u0003-\u0016\u0000\u1f4e\u1f4f\u0003\u000f\u0007\u0000\u1f4f\u1f50\u0003"+ + ")\u0014\u0000\u1f50\u1f51\u0003\u0017\u000b\u0000\u1f51\u1f52\u0003\u0007"+ + "\u0003\u0000\u1f52\u1f53\u0003\u001d\u000e\u0000\u1f53\u1f54\u0003\u0017"+ + "\u000b\u0000\u1f54\u1f55\u00039\u001c\u0000\u1f55\u1f56\u0003\u000f\u0007"+ + "\u0000\u1f56\u1f57\u0003\r\u0006\u0000\u1f57\u05c6\u0001\u0000\u0000\u0000"+ + "\u1f58\u1f59\u0003\u001d\u000e\u0000\u1f59\u1f5a\u0003\u000f\u0007\u0000"+ + "\u1f5a\u1f5b\u0003\u0011\b\u0000\u1f5b\u1f5c\u0003-\u0016\u0000\u1f5c"+ + "\u1f5d\u0003\u0007\u0003\u0000\u1f5d\u1f5e\u0003)\u0014\u0000\u1f5e\u1f5f"+ + "\u0003\u0013\t\u0000\u1f5f\u05c8\u0001\u0000\u0000\u0000\u1f60\u1f61\u0003"+ + ")\u0014\u0000\u1f61\u1f62\u0003\u0017\u000b\u0000\u1f62\u1f63\u0003\u0013"+ + "\t\u0000\u1f63\u1f64\u0003\u0015\n\u0000\u1f64\u1f65\u0003-\u0016\u0000"+ + "\u1f65\u1f66\u0003\u0007\u0003\u0000\u1f66\u1f67\u0003)\u0014\u0000\u1f67"+ + "\u1f68\u0003\u0013\t\u0000\u1f68\u05ca\u0001\u0000\u0000\u0000\u1f69\u1f6a"+ + "\u0003\u000b\u0005\u0000\u1f6a\u1f6b\u0003#\u0011\u0000\u1f6b\u1f6c\u0003"+ + "\u001f\u000f\u0000\u1f6c\u1f6d\u0003\u001f\u000f\u0000\u1f6d\u1f6e\u0003"+ + "/\u0017\u0000\u1f6e\u1f6f\u0003-\u0016\u0000\u1f6f\u1f70\u0003\u0007\u0003"+ + "\u0000\u1f70\u1f71\u0003-\u0016\u0000\u1f71\u1f72\u0003#\u0011\u0000\u1f72"+ + "\u1f73\u0003)\u0014\u0000\u1f73\u05cc\u0001\u0000\u0000\u0000\u1f74\u1f75"+ + "\u0003!\u0010\u0000\u1f75\u1f76\u0003\u000f\u0007\u0000\u1f76\u1f77\u0003"+ + "\u0013\t\u0000\u1f77\u1f78\u0003\u0007\u0003\u0000\u1f78\u1f79\u0003-"+ + "\u0016\u0000\u1f79\u1f7a\u0003#\u0011\u0000\u1f7a\u1f7b\u0003)\u0014\u0000"+ + "\u1f7b\u05ce\u0001\u0000\u0000\u0000\u1f7c\u1f7d\u0003\u0015\n\u0000\u1f7d"+ + "\u1f7e\u0003\u0007\u0003\u0000\u1f7e\u1f7f\u0003+\u0015\u0000\u1f7f\u1f80"+ + "\u0003\u0015\n\u0000\u1f80\u1f81\u0003\u000f\u0007\u0000\u1f81\u1f82\u0003"+ + "+\u0015\u0000\u1f82\u05d0\u0001\u0000\u0000\u0000\u1f83\u1f84\u0003\u001f"+ + "\u000f\u0000\u1f84\u1f85\u0003\u000f\u0007\u0000\u1f85\u1f86\u0003)\u0014"+ + "\u0000\u1f86\u1f87\u0003\u0013\t\u0000\u1f87\u1f88\u0003\u000f\u0007\u0000"+ + "\u1f88\u1f89\u0003+\u0015\u0000\u1f89\u05d2\u0001\u0000\u0000\u0000\u1f8a"+ + "\u1f8b\u0003\u0011\b\u0000\u1f8b\u1f8c\u0003\u0007\u0003\u0000\u1f8c\u1f8d"+ + "\u0003\u001f\u000f\u0000\u1f8d\u1f8e\u0003\u0017\u000b\u0000\u1f8e\u1f8f"+ + "\u0003\u001d\u000e\u0000\u1f8f\u1f90\u00037\u001b\u0000\u1f90\u05d4\u0001"+ + "\u0000\u0000\u0000\u1f91\u1f92\u0003%\u0012\u0000\u1f92\u1f93\u0003#\u0011"+ + "\u0000\u1f93\u1f94\u0003\u001d\u000e\u0000\u1f94\u1f95\u0003\u0017\u000b"+ + "\u0000\u1f95\u1f96\u0003\u000b\u0005\u0000\u1f96\u1f97\u00037\u001b\u0000"+ + "\u1f97\u05d6\u0001\u0000\u0000\u0000\u1f98\u1f99\u0003#\u0011\u0000\u1f99"+ + "\u1f9a\u00033\u0019\u0000\u1f9a\u1f9b\u0003!\u0010\u0000\u1f9b\u1f9c\u0003"+ + "\u000f\u0007\u0000\u1f9c\u1f9d\u0003\r\u0006\u0000\u1f9d\u05d8\u0001\u0000"+ + "\u0000\u0000\u1f9e\u1f9f\u0003\u0007\u0003\u0000\u1f9f\u1fa0\u0003\t\u0004"+ + "\u0000\u1fa0\u1fa1\u0003+\u0015\u0000\u1fa1\u1fa2\u0003-\u0016\u0000\u1fa2"+ + "\u1fa3\u0003\u0017\u000b\u0000\u1fa3\u1fa4\u0003\u001f\u000f\u0000\u1fa4"+ + "\u1fa5\u0003\u000f\u0007\u0000\u1fa5\u05da\u0001\u0000\u0000\u0000\u1fa6"+ + "\u1fa7\u0003\t\u0004\u0000\u1fa7\u1fa8\u0003\u0017\u000b\u0000\u1fa8\u1fa9"+ + "\u0003\u0013\t\u0000\u1fa9\u1faa\u0003+\u0015\u0000\u1faa\u1fab\u0003"+ + "\u000f\u0007\u0000\u1fab\u1fac\u0003)\u0014\u0000\u1fac\u1fad\u0003\u0017"+ + "\u000b\u0000\u1fad\u1fae\u0003\u0007\u0003\u0000\u1fae\u1faf\u0003\u001d"+ + "\u000e\u0000\u1faf\u05dc\u0001\u0000\u0000\u0000\u1fb0\u1fb1\u0003\t\u0004"+ + "\u0000\u1fb1\u1fb2\u0003\u0017\u000b\u0000\u1fb2\u1fb3\u0003-\u0016\u0000"+ + "\u1fb3\u1fb4\u0005 \u0000\u0000\u1fb4\u1fb5\u00031\u0018\u0000\u1fb5\u1fb6"+ + "\u0003\u0007\u0003\u0000\u1fb6\u1fb7\u0003)\u0014\u0000\u1fb7\u1fb8\u0003"+ + "7\u001b\u0000\u1fb8\u1fb9\u0003\u0017\u000b\u0000\u1fb9\u1fba\u0003!\u0010"+ + "\u0000\u1fba\u1fbb\u0003\u0013\t\u0000\u1fbb\u05de\u0001\u0000\u0000\u0000"+ + "\u1fbc\u1fbd\u0003\t\u0004\u0000\u1fbd\u1fbe\u0003#\u0011\u0000\u1fbe"+ + "\u1fbf\u0003#\u0011\u0000\u1fbf\u1fc0\u0003\u001d\u000e\u0000\u1fc0\u05e0"+ + "\u0001\u0000\u0000\u0000\u1fc1\u1fc2\u0003\t\u0004\u0000\u1fc2\u1fc3\u0003"+ + "#\u0011\u0000\u1fc3\u1fc4\u00035\u001a\u0000\u1fc4\u05e2\u0001\u0000\u0000"+ + "\u0000\u1fc5\u1fc6\u0003\t\u0004\u0000\u1fc6\u1fc7\u00037\u001b\u0000"+ + "\u1fc7\u1fc8\u0003-\u0016\u0000\u1fc8\u1fc9\u0003\u000f\u0007\u0000\u1fc9"+ + "\u1fca\u0003\u0007\u0003\u0000\u1fca\u05e4\u0001\u0000\u0000\u0000\u1fcb"+ + "\u1fcc\u0003\u000b\u0005\u0000\u1fcc\u1fcd\u0003\u0015\n\u0000\u1fcd\u1fce"+ + "\u0003\u0007\u0003\u0000\u1fce\u1fcf\u0003)\u0014\u0000\u1fcf\u1fd0\u0003"+ + "\u0007\u0003\u0000\u1fd0\u1fd1\u0003\u000b\u0005\u0000\u1fd1\u1fd2\u0003"+ + "-\u0016\u0000\u1fd2\u1fd3\u0003\u000f\u0007\u0000\u1fd3\u1fd4\u0003)\u0014"+ + "\u0000\u1fd4\u1fd5\u0005 \u0000\u0000\u1fd5\u1fd6\u00031\u0018\u0000\u1fd6"+ + "\u1fd7\u0003\u0007\u0003\u0000\u1fd7\u1fd8\u0003)\u0014\u0000\u1fd8\u1fd9"+ + "\u00037\u001b\u0000\u1fd9\u1fda\u0003\u0017\u000b\u0000\u1fda\u1fdb\u0003"+ + "!\u0010\u0000\u1fdb\u1fdc\u0003\u0013\t\u0000\u1fdc\u05e6\u0001\u0000"+ + "\u0000\u0000\u1fdd\u1fde\u0003\u000b\u0005\u0000\u1fde\u1fdf\u0003\u0017"+ + "\u000b\u0000\u1fdf\u1fe0\u0003\r\u0006\u0000\u1fe0\u1fe1\u0003)\u0014"+ + "\u0000\u1fe1\u05e8\u0001\u0000\u0000\u0000\u1fe2\u1fe3\u0003\u000b\u0005"+ + "\u0000\u1fe3\u1fe4\u0003\u0017\u000b\u0000\u1fe4\u1fe5\u0003)\u0014\u0000"+ + "\u1fe5\u1fe6\u0003\u000b\u0005\u0000\u1fe6\u1fe7\u0003\u001d\u000e\u0000"+ + "\u1fe7\u1fe8\u0003\u000f\u0007\u0000\u1fe8\u05ea\u0001\u0000\u0000\u0000"+ + "\u1fe9\u1fea\u0003\u0011\b\u0000\u1fea\u1feb\u0003\u001d\u000e\u0000\u1feb"+ + "\u1fec\u0003#\u0011\u0000\u1fec\u1fed\u0003\u0007\u0003\u0000\u1fed\u1fee"+ + "\u0003-\u0016\u0000\u1fee\u1fef\u00054\u0000\u0000\u1fef\u05ec\u0001\u0000"+ + "\u0000\u0000\u1ff0\u1ff1\u0003\u0011\b\u0000\u1ff1\u1ff2\u0003\u001d\u000e"+ + "\u0000\u1ff2\u1ff3\u0003#\u0011\u0000\u1ff3\u1ff4\u0003\u0007\u0003\u0000"+ + "\u1ff4\u1ff5\u0003-\u0016\u0000\u1ff5\u1ff6\u00058\u0000\u0000\u1ff6\u05ee"+ + "\u0001\u0000\u0000\u0000\u1ff7\u1ff8\u0003\u0017\u000b\u0000\u1ff8\u1ff9"+ + "\u0003!\u0010\u0000\u1ff9\u1ffa\u0003\u000f\u0007\u0000\u1ffa\u1ffb\u0003"+ + "-\u0016\u0000\u1ffb\u05f0\u0001\u0000\u0000\u0000\u1ffc\u1ffd\u0003\u0017"+ + "\u000b\u0000\u1ffd\u1ffe\u0003!\u0010\u0000\u1ffe\u1fff\u0003-\u0016\u0000"+ + "\u1fff\u2000\u00052\u0000\u0000\u2000\u05f2\u0001\u0000\u0000\u0000\u2001"+ + "\u2002\u0003\u0017\u000b\u0000\u2002\u2003\u0003!\u0010\u0000\u2003\u2004"+ + "\u0003-\u0016\u0000\u2004\u2005\u00054\u0000\u0000\u2005\u05f4\u0001\u0000"+ + "\u0000\u0000\u2006\u2007\u0003\u0017\u000b\u0000\u2007\u2008\u0003!\u0010"+ + "\u0000\u2008\u2009\u0003-\u0016\u0000\u2009\u200a\u00058\u0000\u0000\u200a"+ + "\u05f6\u0001\u0000\u0000\u0000\u200b\u200c\u0003\u0019\f\u0000\u200c\u200d"+ + "\u0003+\u0015\u0000\u200d\u200e\u0003#\u0011\u0000\u200e\u200f\u0003!"+ + "\u0010\u0000\u200f\u05f8\u0001\u0000\u0000\u0000\u2010\u2011\u0003\u0019"+ + "\f\u0000\u2011\u2012\u0003+\u0015\u0000\u2012\u2013\u0003#\u0011\u0000"+ + "\u2013\u2014\u0003!\u0010\u0000\u2014\u2015\u0003\t\u0004\u0000\u2015"+ + "\u05fa\u0001\u0000\u0000\u0000\u2016\u2017\u0003\u001d\u000e\u0000\u2017"+ + "\u2018\u0003\u0017\u000b\u0000\u2018\u2019\u0003!\u0010\u0000\u2019\u201a"+ + "\u0003\u000f\u0007\u0000\u201a\u05fc\u0001\u0000\u0000\u0000\u201b\u201c"+ + "\u0003\u001d\u000e\u0000\u201c\u201d\u0003+\u0015\u0000\u201d\u201e\u0003"+ + "\u000f\u0007\u0000\u201e\u201f\u0003\u0013\t\u0000\u201f\u05fe\u0001\u0000"+ + "\u0000\u0000\u2020\u2021\u0003\u001f\u000f\u0000\u2021\u2022\u0003\u0007"+ + "\u0003\u0000\u2022\u2023\u0003\u000b\u0005\u0000\u2023\u2024\u0003\u0007"+ + "\u0003\u0000\u2024\u2025\u0003\r\u0006\u0000\u2025\u2026\u0003\r\u0006"+ + "\u0000\u2026\u2027\u0003)\u0014\u0000\u2027\u0600\u0001\u0000\u0000\u0000"+ + "\u2028\u2029\u0003\u001f\u000f\u0000\u2029\u202a\u0003\u0007\u0003\u0000"+ + "\u202a\u202b\u0003\u000b\u0005\u0000\u202b\u202c\u0003\u0007\u0003\u0000"+ + "\u202c\u202d\u0003\r\u0006\u0000\u202d\u202e\u0003\r\u0006\u0000\u202e"+ + "\u202f\u0003)\u0014\u0000\u202f\u2030\u00058\u0000\u0000\u2030\u0602\u0001"+ + "\u0000\u0000\u0000\u2031\u2032\u0003\u001f\u000f\u0000\u2032\u2033\u0003"+ + "#\u0011\u0000\u2033\u2034\u0003!\u0010\u0000\u2034\u2035\u0003\u000f\u0007"+ + "\u0000\u2035\u2036\u00037\u001b\u0000\u2036\u0604\u0001\u0000\u0000\u0000"+ + "\u2037\u2038\u0003%\u0012\u0000\u2038\u2039\u0003\u0013\t\u0000\u2039"+ + "\u203a\u0005_\u0000\u0000\u203a\u203b\u0003\u001d\u000e\u0000\u203b\u203c"+ + "\u0003+\u0015\u0000\u203c\u203d\u0003!\u0010\u0000\u203d\u0606\u0001\u0000"+ + "\u0000\u0000\u203e\u203f\u0003%\u0012\u0000\u203f\u2040\u0003#\u0011\u0000"+ + "\u2040\u2041\u0003\u0017\u000b\u0000\u2041\u2042\u0003!\u0010\u0000\u2042"+ + "\u2043\u0003-\u0016\u0000\u2043\u0608\u0001\u0000\u0000\u0000\u2044\u2045"+ + "\u0003%\u0012\u0000\u2045\u2046\u0003#\u0011\u0000\u2046\u2047\u0003\u001d"+ + "\u000e\u0000\u2047\u2048\u00037\u001b\u0000\u2048\u2049\u0003\u0013\t"+ + "\u0000\u2049\u204a\u0003#\u0011\u0000\u204a\u204b\u0003!\u0010\u0000\u204b"+ + "\u060a\u0001\u0000\u0000\u0000\u204c\u204d\u0003)\u0014\u0000\u204d\u204e"+ + "\u0003\u000f\u0007\u0000\u204e\u204f\u0003\u001d\u000e\u0000\u204f\u2050"+ + "\u0003-\u0016\u0000\u2050\u2051\u0003\u0017\u000b\u0000\u2051\u2052\u0003"+ + "\u001f\u000f\u0000\u2052\u2053\u0003\u000f\u0007\u0000\u2053\u060c\u0001"+ + "\u0000\u0000\u0000\u2054\u2055\u0003+\u0015\u0000\u2055\u2056\u0003\u000f"+ + "\u0007\u0000\u2056\u2057\u0003)\u0014\u0000\u2057\u2058\u0003\u0017\u000b"+ + "\u0000\u2058\u2059\u0003\u0007\u0003\u0000\u2059\u205a\u0003\u001d\u000e"+ + "\u0000\u205a\u060e\u0001\u0000\u0000\u0000\u205b\u205c\u0003+\u0015\u0000"+ + "\u205c\u205d\u0003\u000f\u0007\u0000\u205d\u205e\u0003)\u0014\u0000\u205e"+ + "\u205f\u0003\u0017\u000b\u0000\u205f\u2060\u0003\u0007\u0003\u0000\u2060"+ + "\u2061\u0003\u001d\u000e\u0000\u2061\u2062\u00052\u0000\u0000\u2062\u0610"+ + "\u0001\u0000\u0000\u0000\u2063\u2064\u0003+\u0015\u0000\u2064\u2065\u0003"+ + "\u000f\u0007\u0000\u2065\u2066\u0003)\u0014\u0000\u2066\u2067\u0003\u0017"+ + "\u000b\u0000\u2067\u2068\u0003\u0007\u0003\u0000\u2068\u2069\u0003\u001d"+ + "\u000e\u0000\u2069\u206a\u00054\u0000\u0000\u206a\u0612\u0001\u0000\u0000"+ + "\u0000\u206b\u206c\u0003+\u0015\u0000\u206c\u206d\u0003\u000f\u0007\u0000"+ + "\u206d\u206e\u0003)\u0014\u0000\u206e\u206f\u0003\u0017\u000b\u0000\u206f"+ + "\u2070\u0003\u0007\u0003\u0000\u2070\u2071\u0003\u001d\u000e\u0000\u2071"+ + "\u2072\u00058\u0000\u0000\u2072\u0614\u0001\u0000\u0000\u0000\u2073\u2074"+ + "\u0003+\u0015\u0000\u2074\u2075\u0003\u001f\u000f\u0000\u2075\u2076\u0003"+ + "\u0007\u0003\u0000\u2076\u2077\u0003\u001d\u000e\u0000\u2077\u2078\u0003"+ + "\u001d\u000e\u0000\u2078\u2079\u0003+\u0015\u0000\u2079\u207a\u0003\u000f"+ + "\u0007\u0000\u207a\u207b\u0003)\u0014\u0000\u207b\u207c\u0003\u0017\u000b"+ + "\u0000\u207c\u207d\u0003\u0007\u0003\u0000\u207d\u207e\u0003\u001d\u000e"+ + "\u0000\u207e\u0616\u0001\u0000\u0000\u0000\u207f\u2080\u0003+\u0015\u0000"+ + "\u2080\u2081\u0003-\u0016\u0000\u2081\u2082\u0003+\u0015\u0000\u2082\u2083"+ + "\u0003-\u0016\u0000\u2083\u2084\u0003\u000f\u0007\u0000\u2084\u2085\u0003"+ + "\u001f\u000f\u0000\u2085\u0618\u0001\u0000\u0000\u0000\u2086\u2087\u0003"+ + "-\u0016\u0000\u2087\u2088\u0003\u000f\u0007\u0000\u2088\u2089\u00035\u001a"+ + "\u0000\u2089\u208a\u0003-\u0016\u0000\u208a\u061a\u0001\u0000\u0000\u0000"+ + "\u208b\u208c\u0003-\u0016\u0000\u208c\u208d\u0003\u0017\u000b\u0000\u208d"+ + "\u208e\u0003\u001f\u000f\u0000\u208e\u208f\u0003\u000f\u0007\u0000\u208f"+ + "\u2090\u0003+\u0015\u0000\u2090\u2091\u0003-\u0016\u0000\u2091\u2092\u0003"+ + "\u0007\u0003\u0000\u2092\u2093\u0003\u001f\u000f\u0000\u2093\u2094\u0003"+ + "%\u0012\u0000\u2094\u2095\u0003-\u0016\u0000\u2095\u2096\u00039\u001c"+ + "\u0000\u2096\u061c\u0001\u0000\u0000\u0000\u2097\u2098\u0003-\u0016\u0000"+ + "\u2098\u2099\u0003\u0017\u000b\u0000\u2099\u209a\u0003\u001f\u000f\u0000"+ + "\u209a\u209b\u0003\u000f\u0007\u0000\u209b\u209c\u0003-\u0016\u0000\u209c"+ + "\u209d\u00039\u001c\u0000\u209d\u061e\u0001\u0000\u0000\u0000\u209e\u209f"+ + "\u0003-\u0016\u0000\u209f\u20a0\u0003+\u0015\u0000\u20a0\u20a1\u0003\'"+ + "\u0013\u0000\u20a1\u20a2\u0003/\u0017\u0000\u20a2\u20a3\u0003\u000f\u0007"+ + "\u0000\u20a3\u20a4\u0003)\u0014\u0000\u20a4\u20a5\u00037\u001b\u0000\u20a5"+ + "\u0620\u0001\u0000\u0000\u0000\u20a6\u20a7\u0003-\u0016\u0000\u20a7\u20a8"+ + "\u0003+\u0015\u0000\u20a8\u20a9\u00031\u0018\u0000\u20a9\u20aa\u0003\u000f"+ + "\u0007\u0000\u20aa\u20ab\u0003\u000b\u0005\u0000\u20ab\u20ac\u0003-\u0016"+ + "\u0000\u20ac\u20ad\u0003#\u0011\u0000\u20ad\u20ae\u0003)\u0014\u0000\u20ae"+ + "\u0622\u0001\u0000\u0000\u0000\u20af\u20b0\u0003-\u0016\u0000\u20b0\u20b1"+ + "\u00035\u001a\u0000\u20b1\u20b2\u0003\u0017\u000b\u0000\u20b2\u20b3\u0003"+ + "\r\u0006\u0000\u20b3\u20b4\u0005_\u0000\u0000\u20b4\u20b5\u0003+\u0015"+ + "\u0000\u20b5\u20b6\u0003!\u0010\u0000\u20b6\u20b7\u0003\u0007\u0003\u0000"+ + "\u20b7\u20b8\u0003%\u0012\u0000\u20b8\u20b9\u0003+\u0015\u0000\u20b9\u20ba"+ + "\u0003\u0015\n\u0000\u20ba\u20bb\u0003#\u0011\u0000\u20bb\u20bc\u0003"+ + "-\u0016\u0000\u20bc\u0624\u0001\u0000\u0000\u0000\u20bd\u20be\u0003/\u0017"+ + "\u0000\u20be\u20bf\u0003/\u0017\u0000\u20bf\u20c0\u0003\u0017\u000b\u0000"+ + "\u20c0\u20c1\u0003\r\u0006\u0000\u20c1\u0626\u0001\u0000\u0000\u0000\u20c2"+ + "\u20c3\u00031\u0018\u0000\u20c3\u20c4\u0003\u0007\u0003\u0000\u20c4\u20c5"+ + "\u0003)\u0014\u0000\u20c5\u20c6\u0003\t\u0004\u0000\u20c6\u20c7\u0003"+ + "\u0017\u000b\u0000\u20c7\u20c8\u0003-\u0016\u0000\u20c8\u0628\u0001\u0000"+ + "\u0000\u0000\u20c9\u20ca\u00035\u001a\u0000\u20ca\u20cb\u0003\u001f\u000f"+ + "\u0000\u20cb\u20cc\u0003\u001d\u000e\u0000\u20cc\u062a\u0001\u0000\u0000"+ + "\u0000\u20cd\u20ce\u0005,\u0000\u0000\u20ce\u062c\u0001\u0000\u0000\u0000"+ + "\u20cf\u20d0\u0005:\u0000\u0000\u20d0\u062e\u0001\u0000\u0000\u0000\u20d1"+ + "\u20d2\u0005:\u0000\u0000\u20d2\u20d3\u0005:\u0000\u0000\u20d3\u0630\u0001"+ + "\u0000\u0000\u0000\u20d4\u20d5\u0005$\u0000\u0000\u20d5\u0632\u0001\u0000"+ + "\u0000\u0000\u20d6\u20d7\u0005$\u0000\u0000\u20d7\u20d8\u0005$\u0000\u0000"+ + "\u20d8\u0634\u0001\u0000\u0000\u0000\u20d9\u20da\u0005*\u0000\u0000\u20da"+ + "\u0636\u0001\u0000\u0000\u0000\u20db\u20dc\u0005(\u0000\u0000\u20dc\u0638"+ + "\u0001\u0000\u0000\u0000\u20dd\u20de\u0005)\u0000\u0000\u20de\u063a\u0001"+ + "\u0000\u0000\u0000\u20df\u20e0\u0005[\u0000\u0000\u20e0\u063c\u0001\u0000"+ + "\u0000\u0000\u20e1\u20e2\u0005]\u0000\u0000\u20e2\u063e\u0001\u0000\u0000"+ + "\u0000\u20e3\u20e4\u0003\t\u0004\u0000\u20e4\u20e8\u0005\'\u0000\u0000"+ + "\u20e5\u20e7\u000201\u0000\u20e6\u20e5\u0001\u0000\u0000\u0000\u20e7\u20ea"+ + "\u0001\u0000\u0000\u0000\u20e8\u20e6\u0001\u0000\u0000\u0000\u20e8\u20e9"+ + "\u0001\u0000\u0000\u0000\u20e9\u20eb\u0001\u0000\u0000\u0000\u20ea\u20e8"+ + "\u0001\u0000\u0000\u0000\u20eb\u20ec\u0005\'\u0000\u0000\u20ec\u0640\u0001"+ + "\u0000\u0000\u0000\u20ed\u20ee\u0003\u000f\u0007\u0000\u20ee\u20ef\u0003"+ + "A \u0000\u20ef\u0642\u0001\u0000\u0000\u0000\u20f0\u20f2\u0005-\u0000"+ + "\u0000\u20f1\u20f0\u0001\u0000\u0000\u0000\u20f1\u20f2\u0001\u0000\u0000"+ + "\u0000\u20f2\u20f4\u0001\u0000\u0000\u0000\u20f3\u20f5\u0003=\u001e\u0000"+ + "\u20f4\u20f3\u0001\u0000\u0000\u0000\u20f5\u20f6\u0001\u0000\u0000\u0000"+ + "\u20f6\u20f4\u0001\u0000\u0000\u0000\u20f6\u20f7\u0001\u0000\u0000\u0000"+ + "\u20f7\u20f8\u0001\u0000\u0000\u0000\u20f8\u20fa\u0005.\u0000\u0000\u20f9"+ + "\u20fb\u0003=\u001e\u0000\u20fa\u20f9\u0001\u0000\u0000\u0000\u20fb\u20fc"+ + "\u0001\u0000\u0000\u0000\u20fc\u20fa\u0001\u0000\u0000\u0000\u20fc\u20fd"+ + "\u0001\u0000\u0000\u0000\u20fd\u210a\u0001\u0000\u0000\u0000\u20fe\u2102"+ + "\u0003\u000f\u0007\u0000\u20ff\u2101\u0005-\u0000\u0000\u2100\u20ff\u0001"+ + "\u0000\u0000\u0000\u2101\u2104\u0001\u0000\u0000\u0000\u2102\u2100\u0001"+ + "\u0000\u0000\u0000\u2102\u2103\u0001\u0000\u0000\u0000\u2103\u2106\u0001"+ + "\u0000\u0000\u0000\u2104\u2102\u0001\u0000\u0000\u0000\u2105\u2107\u0003"+ + "=\u001e\u0000\u2106\u2105\u0001\u0000\u0000\u0000\u2107\u2108\u0001\u0000"+ + "\u0000\u0000\u2108\u2106\u0001\u0000\u0000\u0000\u2108\u2109\u0001\u0000"+ + "\u0000\u0000\u2109\u210b\u0001\u0000\u0000\u0000\u210a\u20fe\u0001\u0000"+ + "\u0000\u0000\u210a\u210b\u0001\u0000\u0000\u0000\u210b\u0644\u0001\u0000"+ + "\u0000\u0000\u210c\u210e\u0005-\u0000\u0000\u210d\u210c\u0001\u0000\u0000"+ + "\u0000\u210d\u210e\u0001\u0000\u0000\u0000\u210e\u2110\u0001\u0000\u0000"+ + "\u0000\u210f\u2111\u0003=\u001e\u0000\u2110\u210f\u0001\u0000\u0000\u0000"+ + "\u2111\u2112\u0001\u0000\u0000\u0000\u2112\u2110\u0001\u0000\u0000\u0000"+ + "\u2112\u2113\u0001\u0000\u0000\u0000\u2113\u211a\u0001\u0000\u0000\u0000"+ + "\u2114\u2116\u0003\u000f\u0007\u0000\u2115\u2117\u0003=\u001e\u0000\u2116"+ + "\u2115\u0001\u0000\u0000\u0000\u2117\u2118\u0001\u0000\u0000\u0000\u2118"+ + "\u2116\u0001\u0000\u0000\u0000\u2118\u2119\u0001\u0000\u0000\u0000\u2119"+ + "\u211b\u0001\u0000\u0000\u0000\u211a\u2114\u0001\u0000\u0000\u0000\u211a"+ + "\u211b\u0001\u0000\u0000\u0000\u211b\u0646\u0001\u0000\u0000\u0000\u211c"+ + "\u211d\u0005x\u0000\u0000\u211d\u211e\u0003A \u0000\u211e\u0648\u0001"+ + "\u0000\u0000\u0000\u211f\u2120\u0005.\u0000\u0000\u2120\u064a\u0001\u0000"+ + "\u0000\u0000\u2121\u2122\u0003A \u0000\u2122\u064c\u0001\u0000\u0000\u0000"+ + "\u2123\u2124\u0003?\u001f\u0000\u2124\u064e\u0001\u0000\u0000\u0000\u2125"+ + "\u2129\u0007 \u0000\u0000\u2126\u2128\u0007!\u0000\u0000\u2127\u2126\u0001"+ + "\u0000\u0000\u0000\u2128\u212b\u0001\u0000\u0000\u0000\u2129\u2127\u0001"+ + "\u0000\u0000\u0000\u2129\u212a\u0001\u0000\u0000\u0000\u212a\u0650\u0001"+ + "\u0000\u0000\u0000\u212b\u2129\u0001\u0000\u0000\u0000\u212c\u212e\u0005"+ + "$\u0000\u0000\u212d\u212f\u0003=\u001e\u0000\u212e\u212d\u0001\u0000\u0000"+ + "\u0000\u212f\u2130\u0001\u0000\u0000\u0000\u2130\u212e\u0001\u0000\u0000"+ + "\u0000\u2130\u2131\u0001\u0000\u0000\u0000\u2131\u0652\u0001\u0000\u0000"+ + "\u0000\u2132\u2136\u0007\"\u0000\u0000\u2133\u2135\u0007#\u0000\u0000"+ + "\u2134\u2133\u0001\u0000\u0000\u0000\u2135\u2138\u0001\u0000\u0000\u0000"+ + "\u2136\u2134\u0001\u0000\u0000\u0000\u2136\u2137\u0001\u0000\u0000\u0000"+ + "\u2137\u0654\u0001\u0000\u0000\u0000\u2138\u2136\u0001\u0000\u0000\u0000"+ + "\u2139\u213a\u0005&\u0000\u0000\u213a\u0656\u0001\u0000\u0000\u0000\u213b"+ + "\u213c\u0005&\u0000\u0000\u213c\u213d\u0005&\u0000\u0000\u213d\u0658\u0001"+ + "\u0000\u0000\u0000\u213e\u213f\u0005&\u0000\u0000\u213f\u2140\u0005<\u0000"+ + "\u0000\u2140\u065a\u0001\u0000\u0000\u0000\u2141\u2142\u0005@\u0000\u0000"+ + "\u2142\u2143\u0005@\u0000\u0000\u2143\u065c\u0001\u0000\u0000\u0000\u2144"+ + "\u2145\u0005@\u0000\u0000\u2145\u2146\u0005>\u0000\u0000\u2146\u065e\u0001"+ + "\u0000\u0000\u0000\u2147\u2148\u0005@\u0000\u0000\u2148\u0660\u0001\u0000"+ + "\u0000\u0000\u2149\u214a\u0005!\u0000\u0000\u214a\u0662\u0001\u0000\u0000"+ + "\u0000\u214b\u214c\u0005!\u0000\u0000\u214c\u214d\u0005!\u0000\u0000\u214d"+ + "\u0664\u0001\u0000\u0000\u0000\u214e\u214f\u0005!\u0000\u0000\u214f\u2150"+ + "\u0005=\u0000\u0000\u2150\u0666\u0001\u0000\u0000\u0000\u2151\u2152\u0005"+ + "^\u0000\u0000\u2152\u0668\u0001\u0000\u0000\u0000\u2153\u2154\u0005=\u0000"+ + "\u0000\u2154\u066a\u0001\u0000\u0000\u0000\u2155\u2156\u0005=\u0000\u0000"+ + "\u2156\u2157\u0005>\u0000\u0000\u2157\u066c\u0001\u0000\u0000\u0000\u2158"+ + "\u2159\u0005>\u0000\u0000\u2159\u066e\u0001\u0000\u0000\u0000\u215a\u215b"+ + "\u0005>\u0000\u0000\u215b\u215c\u0005=\u0000\u0000\u215c\u0670\u0001\u0000"+ + "\u0000\u0000\u215d\u215e\u0005>\u0000\u0000\u215e\u215f\u0005>\u0000\u0000"+ + "\u215f\u0672\u0001\u0000\u0000\u0000\u2160\u2161\u0005#\u0000\u0000\u2161"+ + "\u0674\u0001\u0000\u0000\u0000\u2162\u2163\u0005#\u0000\u0000\u2163\u2164"+ + "\u0005=\u0000\u0000\u2164\u0676\u0001\u0000\u0000\u0000\u2165\u2166\u0005"+ + "#\u0000\u0000\u2166\u2167\u0005>\u0000\u0000\u2167\u0678\u0001\u0000\u0000"+ + "\u0000\u2168\u2169\u0005#\u0000\u0000\u2169\u216a\u0005>\u0000\u0000\u216a"+ + "\u216b\u0005>\u0000\u0000\u216b\u067a\u0001\u0000\u0000\u0000\u216c\u216d"+ + "\u0005#\u0000\u0000\u216d\u216e\u0005#\u0000\u0000\u216e\u067c\u0001\u0000"+ + "\u0000\u0000\u216f\u2170\u0005-\u0000\u0000\u2170\u2171\u0005>\u0000\u0000"+ + "\u2171\u067e\u0001\u0000\u0000\u0000\u2172\u2173\u0005-\u0000\u0000\u2173"+ + "\u2174\u0005>\u0000\u0000\u2174\u2175\u0005>\u0000\u0000\u2175\u0680\u0001"+ + "\u0000\u0000\u0000\u2176\u2177\u0005-\u0000\u0000\u2177\u2178\u0005|\u0000"+ + "\u0000\u2178\u2179\u0005-\u0000\u0000\u2179\u0682\u0001\u0000\u0000\u0000"+ + "\u217a\u217b\u0005<\u0000\u0000\u217b\u0684\u0001\u0000\u0000\u0000\u217c"+ + "\u217d\u0005<\u0000\u0000\u217d\u217e\u0005=\u0000\u0000\u217e\u0686\u0001"+ + "\u0000\u0000\u0000\u217f\u2180\u0005<\u0000\u0000\u2180\u2181\u0005@\u0000"+ + "\u0000\u2181\u0688\u0001\u0000\u0000\u0000\u2182\u2183\u0005<\u0000\u0000"+ + "\u2183\u2184\u0005^\u0000\u0000\u2184\u068a\u0001\u0000\u0000\u0000\u2185"+ + "\u2186\u0005<\u0000\u0000\u2186\u2187\u0005>\u0000\u0000\u2187\u068c\u0001"+ + "\u0000\u0000\u0000\u2188\u2189\u0005<\u0000\u0000\u2189\u218a\u0005-\u0000"+ + "\u0000\u218a\u218b\u0005>\u0000\u0000\u218b\u068e\u0001\u0000\u0000\u0000"+ + "\u218c\u218d\u0005<\u0000\u0000\u218d\u218e\u0005<\u0000\u0000\u218e\u0690"+ + "\u0001\u0000\u0000\u0000\u218f\u2190\u0005<\u0000\u0000\u2190\u2191\u0005"+ + "<\u0000\u0000\u2191\u2192\u0005=\u0000\u0000\u2192\u0692\u0001\u0000\u0000"+ + "\u0000\u2193\u2194\u0005<\u0000\u0000\u2194\u2195\u0005?\u0000\u0000\u2195"+ + "\u2196\u0005>\u0000\u0000\u2196\u0694\u0001\u0000\u0000\u0000\u2197\u2198"+ + "\u0005-\u0000\u0000\u2198\u0696\u0001\u0000\u0000\u0000\u2199\u219a\u0005"+ + "%\u0000\u0000\u219a\u0698\u0001\u0000\u0000\u0000\u219b\u219c\u0005|\u0000"+ + "\u0000\u219c\u069a\u0001\u0000\u0000\u0000\u219d\u219e\u0005|\u0000\u0000"+ + "\u219e\u219f\u0005|\u0000\u0000\u219f\u069c\u0001\u0000\u0000\u0000\u21a0"+ + "\u21a1\u0005|\u0000\u0000\u21a1\u21a2\u0005|\u0000\u0000\u21a2\u21a3\u0005"+ + "/\u0000\u0000\u21a3\u069e\u0001\u0000\u0000\u0000\u21a4\u21a5\u0005|\u0000"+ + "\u0000\u21a5\u21a6\u0005/\u0000\u0000\u21a6\u06a0\u0001\u0000\u0000\u0000"+ + "\u21a7\u21a8\u0005+\u0000\u0000\u21a8\u06a2\u0001\u0000\u0000\u0000\u21a9"+ + "\u21aa\u0005?\u0000\u0000\u21aa\u06a4\u0001\u0000\u0000\u0000\u21ab\u21ac"+ + "\u0005?\u0000\u0000\u21ac\u21ad\u0005&\u0000\u0000\u21ad\u06a6\u0001\u0000"+ + "\u0000\u0000\u21ae\u21af\u0005?\u0000\u0000\u21af\u21b0\u0005#\u0000\u0000"+ + "\u21b0\u06a8\u0001\u0000\u0000\u0000\u21b1\u21b2\u0005?\u0000\u0000\u21b2"+ + "\u21b3\u0005-\u0000\u0000\u21b3\u06aa\u0001\u0000\u0000\u0000\u21b4\u21b5"+ + "\u0005?\u0000\u0000\u21b5\u21b6\u0005|\u0000\u0000\u21b6\u06ac\u0001\u0000"+ + "\u0000\u0000\u21b7\u21b8\u0005/\u0000\u0000\u21b8\u06ae\u0001\u0000\u0000"+ + "\u0000\u21b9\u21ba\u0005~\u0000\u0000\u21ba\u06b0\u0001\u0000\u0000\u0000"+ + "\u21bb\u21bc\u0005~\u0000\u0000\u21bc\u21bd\u0005=\u0000\u0000\u21bd\u06b2"+ + "\u0001\u0000\u0000\u0000\u21be\u21bf\u0005~\u0000\u0000\u21bf\u21c0\u0005"+ + ">\u0000\u0000\u21c0\u21c1\u0005=\u0000\u0000\u21c1\u21c2\u0005~\u0000"+ + "\u0000\u21c2\u06b4\u0001\u0000\u0000\u0000\u21c3\u21c4\u0005~\u0000\u0000"+ + "\u21c4\u21c5\u0005>\u0000\u0000\u21c5\u21c6\u0005~\u0000\u0000\u21c6\u06b6"+ + "\u0001\u0000\u0000\u0000\u21c7\u21c8\u0005~\u0000\u0000\u21c8\u21c9\u0005"+ + "<\u0000\u0000\u21c9\u21ca\u0005=\u0000\u0000\u21ca\u21cb\u0005~\u0000"+ + "\u0000\u21cb\u06b8\u0001\u0000\u0000\u0000\u21cc\u21cd\u0005~\u0000\u0000"+ + "\u21cd\u21ce\u0005<\u0000\u0000\u21ce\u21cf\u0005~\u0000\u0000\u21cf\u06ba"+ + "\u0001\u0000\u0000\u0000\u21d0\u21d1\u0005~\u0000\u0000\u21d1\u21d2\u0005"+ + "*\u0000\u0000\u21d2\u06bc\u0001\u0000\u0000\u0000\u21d3\u21d4\u0005~\u0000"+ + "\u0000\u21d4\u21d5\u0005~\u0000\u0000\u21d5\u06be\u0001\u0000\u0000\u0000"+ + "\u21d6\u21d7\u0005;\u0000\u0000\u21d7\u06c0\u0001\u0000\u0000\u0000\u0018"+ + "\u0000\u06c4\u06ce\u06dc\u0721\u0723\u072e\u0730\u073b\u073d\u20e8\u20f1"+ + "\u20f6\u20fc\u2102\u2108\u210a\u210d\u2112\u2118\u211a\u2129\u2130\u2136"+ + "\u0002\u0006\u0000\u0000\u0000\u0001\u0000"; public static final String _serializedATN = Utils.join( new String[] { _serializedATNSegment0, diff --git a/gen/PostgreSQLLexer.tokens b/gen/PostgreSQLLexer.tokens index 476cae2..a0956e0 100644 --- a/gen/PostgreSQLLexer.tokens +++ b/gen/PostgreSQLLexer.tokens @@ -176,7 +176,7 @@ DESTRUCTOR=175 DETERMINISTIC=176 DIAGNOSTICS=177 DICTIONARY=178 -DISABLE=179 +DISABLE_P=179 DISABLE_PAGE_SKIPPING=180 DISCARD=181 DISCONNECT=182 @@ -684,216 +684,215 @@ SORTOP=683 PARALLEL=684 HYPOTHETICAL=685 SAFE=686 -RESTRICTED=687 -UNSAFE=688 -BASETYPE=689 -IF=690 -LOCALE=691 -LC_COLLATE=692 -LC_CTYPE=693 -PROVIDER=694 -VERSION=695 -ALLOW_CONNECTIONS=696 -IS_TEMPLATE=697 -EVENT=698 -WRAPPER=699 -SERVER=700 -BTREE=701 -HASH_=702 -GIST=703 -SPGIST=704 -GIN=705 -BRIN=706 -CONCURRENTLY=707 -INLINE=708 -MATERIALIZED=709 -LEFTARG=710 -RIGHTARG=711 -COMMUTATOR=712 -NEGATOR=713 -HASHES=714 -MERGES=715 -FAMILY=716 -POLICY=717 -OWNED=718 -ABSTIME=719 -BIGSERIAL=720 -BIT_VARYING=721 -BOOL=722 -BOX=723 -BYTEA=724 -CHARACTER_VARYING=725 -CIDR=726 -CIRCLE=727 -FLOAT4=728 -FLOAT8=729 -INET=730 -INT2=731 -INT4=732 -INT8=733 -JSON=734 -JSONB=735 -LINE=736 -LSEG=737 -MACADDR=738 -MACADDR8=739 -MONEY=740 -PG_LSN=741 -POINT=742 -POLYGON=743 -RELTIME=744 -SERIAL=745 -SERIAL2=746 -SERIAL4=747 -SERIAL8=748 -SMALLSERIAL=749 -STSTEM=750 -TEXT=751 -TIMESTAMPTZ=752 -TIMETZ=753 -TSQUERY=754 -TSVECTOR=755 -TXID_SNAPSHOT=756 -UUID=757 -VARBIT=758 -XML=759 -COMMA=760 -COLON=761 -COLON_COLON=762 -DOLLAR=763 -DOLLAR_DOLLAR=764 -STAR=765 -OPEN_PAREN=766 -CLOSE_PAREN=767 -OPEN_BRACKET=768 -CLOSE_BRACKET=769 -BIT_STRING=770 -REGEX_STRING=771 -NUMERIC_LITERAL=772 -INTEGER_LITERAL=773 -HEX_INTEGER_LITERAL=774 -DOT=775 -SINGLEQ_STRING_LITERAL=776 -DOUBLEQ_STRING_LITERAL=777 -IDENTIFIER=778 -DOLLAR_DEC=779 -IDENTIFIER_UNICODE=780 -AMP=781 -AMP_AMP=782 -AMP_LT=783 -AT_AT=784 -AT_GT=785 -AT_SIGN=786 -BANG=787 -BANG_BANG=788 -BANG_EQUAL=789 -CARET=790 -EQUAL=791 -EQUAL_GT=792 -GT=793 -GTE=794 -GT_GT=795 -HASH=796 -HASH_EQ=797 -HASH_GT=798 -HASH_GT_GT=799 -HASH_HASH=800 -HYPHEN_GT=801 -HYPHEN_GT_GT=802 -HYPHEN_PIPE_HYPHEN=803 -LT=804 -LTE=805 -LT_AT=806 -LT_CARET=807 -LT_GT=808 -LT_HYPHEN_GT=809 -LT_LT=810 -LT_LT_EQ=811 -LT_QMARK_GT=812 -MINUS=813 -PERCENT=814 -PIPE=815 -PIPE_PIPE=816 -PIPE_PIPE_SLASH=817 -PIPE_SLASH=818 -PLUS=819 -QMARK=820 -QMARK_AMP=821 -QMARK_HASH=822 -QMARK_HYPHEN=823 -QMARK_PIPE=824 -SLASH=825 -TIL=826 -TIL_EQ=827 -TIL_GTE_TIL=828 -TIL_GT_TIL=829 -TIL_LTE_TIL=830 -TIL_LT_TIL=831 -TIL_STAR=832 -TIL_TIL=833 -SEMI=834 -','=760 -':'=761 -'::'=762 -'$'=763 -'$$'=764 -'*'=765 -'('=766 -')'=767 -'['=768 -']'=769 -'.'=775 -'&'=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 +UNSAFE=687 +BASETYPE=688 +IF=689 +LOCALE=690 +LC_COLLATE=691 +LC_CTYPE=692 +PROVIDER=693 +VERSION=694 +ALLOW_CONNECTIONS=695 +IS_TEMPLATE=696 +EVENT=697 +WRAPPER=698 +SERVER=699 +BTREE=700 +HASH_=701 +GIST=702 +SPGIST=703 +GIN=704 +BRIN=705 +CONCURRENTLY=706 +INLINE=707 +MATERIALIZED=708 +LEFTARG=709 +RIGHTARG=710 +COMMUTATOR=711 +NEGATOR=712 +HASHES=713 +MERGES=714 +FAMILY=715 +POLICY=716 +OWNED=717 +ABSTIME=718 +BIGSERIAL=719 +BIT_VARYING=720 +BOOL=721 +BOX=722 +BYTEA=723 +CHARACTER_VARYING=724 +CIDR=725 +CIRCLE=726 +FLOAT4=727 +FLOAT8=728 +INET=729 +INT2=730 +INT4=731 +INT8=732 +JSON=733 +JSONB=734 +LINE=735 +LSEG=736 +MACADDR=737 +MACADDR8=738 +MONEY=739 +PG_LSN=740 +POINT=741 +POLYGON=742 +RELTIME=743 +SERIAL=744 +SERIAL2=745 +SERIAL4=746 +SERIAL8=747 +SMALLSERIAL=748 +STSTEM=749 +TEXT=750 +TIMESTAMPTZ=751 +TIMETZ=752 +TSQUERY=753 +TSVECTOR=754 +TXID_SNAPSHOT=755 +UUID=756 +VARBIT=757 +XML=758 +COMMA=759 +COLON=760 +COLON_COLON=761 +DOLLAR=762 +DOLLAR_DOLLAR=763 +STAR=764 +OPEN_PAREN=765 +CLOSE_PAREN=766 +OPEN_BRACKET=767 +CLOSE_BRACKET=768 +BIT_STRING=769 +REGEX_STRING=770 +NUMERIC_LITERAL=771 +INTEGER_LITERAL=772 +HEX_INTEGER_LITERAL=773 +DOT=774 +SINGLEQ_STRING_LITERAL=775 +DOUBLEQ_STRING_LITERAL=776 +IDENTIFIER=777 +DOLLAR_DEC=778 +IDENTIFIER_UNICODE=779 +AMP=780 +AMP_AMP=781 +AMP_LT=782 +AT_AT=783 +AT_GT=784 +AT_SIGN=785 +BANG=786 +BANG_BANG=787 +BANG_EQUAL=788 +CARET=789 +EQUAL=790 +EQUAL_GT=791 +GT=792 +GTE=793 +GT_GT=794 +HASH=795 +HASH_EQ=796 +HASH_GT=797 +HASH_GT_GT=798 +HASH_HASH=799 +HYPHEN_GT=800 +HYPHEN_GT_GT=801 +HYPHEN_PIPE_HYPHEN=802 +LT=803 +LTE=804 +LT_AT=805 +LT_CARET=806 +LT_GT=807 +LT_HYPHEN_GT=808 +LT_LT=809 +LT_LT_EQ=810 +LT_QMARK_GT=811 +MINUS=812 +PERCENT=813 +PIPE=814 +PIPE_PIPE=815 +PIPE_PIPE_SLASH=816 +PIPE_SLASH=817 +PLUS=818 +QMARK=819 +QMARK_AMP=820 +QMARK_HASH=821 +QMARK_HYPHEN=822 +QMARK_PIPE=823 +SLASH=824 +TIL=825 +TIL_EQ=826 +TIL_GTE_TIL=827 +TIL_GT_TIL=828 +TIL_LTE_TIL=829 +TIL_LT_TIL=830 +TIL_STAR=831 +TIL_TIL=832 +SEMI=833 +','=759 +':'=760 +'::'=761 +'$'=762 +'$$'=763 +'*'=764 +'('=765 +')'=766 +'['=767 +']'=768 +'.'=774 +'&'=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 diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 index 56152c9..9019388 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 @@ -237,7 +237,7 @@ DESTRUCTOR : D E S T R U C T O R; DETERMINISTIC : D E T E R M I N I S T I C; DIAGNOSTICS : D I A G N O S T I C S; DICTIONARY : D I C T I O N A R Y; -DISABLE : D I S A B L E; +DISABLE_P : D I S A B L E; DISABLE_PAGE_SKIPPING : D I S A B L E '_' P A G E '_' S K I P P I N G; DISCARD : D I S C A R D; DISCONNECT : D I S C O N N E C T; @@ -749,7 +749,6 @@ SORTOP : S O R T O P; PARALLEL : P A R A L L E L; HYPOTHETICAL : H Y P O T H E T I C A L; SAFE : S A F E; -RESTRICTED : R E S T R I C T E D; UNSAFE : U N S A F E; BASETYPE : B A S E T Y P E; diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens new file mode 100644 index 0000000..4cd274d --- /dev/null +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens @@ -0,0 +1,898 @@ +WHITESPACE=1 +BLOCK_COMMENT=2 +LINE_COMMENT=3 +A_=4 +ABORT=5 +ABS=6 +ABSOLUTE=7 +ACCESS=8 +ACTION=9 +ADA=10 +ADD=11 +ADMIN=12 +AFTER=13 +AGGREGATE=14 +ALIAS=15 +ALL=16 +ALLOCATE=17 +ALSO=18 +ALTER=19 +ALWAYS=20 +ANALYSE=21 +ANALYZE=22 +AND=23 +ANY=24 +ARE=25 +ARRAY=26 +AS=27 +ASC=28 +ASENSITIVE=29 +ASSERTION=30 +ASSIGNMENT=31 +ASYMMETRIC=32 +AT=33 +ATOMIC=34 +ATTRIBUTE=35 +ATTRIBUTES=36 +AUTHORIZATION=37 +AVG=38 +BACKWARD=39 +BEFORE=40 +BEGIN=41 +BERNOULLI=42 +BETWEEN=43 +BIGINT=44 +BINARY=45 +BIT=46 +BIT_LENGTH=47 +BITVAR=48 +BLOB=49 +BOOLEAN=50 +BOTH=51 +BREADTH=52 +BUFFERS=53 +BY=54 +C_=55 +CACHE=56 +CALL=57 +CALLED=58 +CARDINALITY=59 +CASCADE=60 +CASCADED=61 +CASE=62 +CAST=63 +CATALOG=64 +CATALOG_NAME=65 +CEIL=66 +CEILING=67 +CHAIN=68 +CHAR=69 +CHAR_LENGTH=70 +CHARACTER=71 +CHARACTER_LENGTH=72 +CHARACTER_SET_CATALOG=73 +CHARACTER_SET_NAME=74 +CHARACTER_SET_SCHEMA=75 +CHARACTERISTICS=76 +CHARACTERS=77 +CHECK=78 +CHECKED=79 +CHECKPOINT=80 +CLASS=81 +CLASS_ORIGIN=82 +CLOB=83 +CLOSE=84 +CLUSTER=85 +COALESCE=86 +COBOL=87 +COLLATE=88 +COLLATION=89 +COLLATION_CATALOG=90 +COLLATION_NAME=91 +COLLATION_SCHEMA=92 +COLLECT=93 +COLUMN=94 +COLUMN_NAME=95 +COMMAND_FUNCTION=96 +COMMAND_FUNCTION_CODE=97 +COMMENT=98 +COMMIT=99 +COMMITTED=100 +COMPLETION=101 +CONDITION=102 +CONDITION_NUMBER=103 +CONFIGURATION=104 +CONFLICT=105 +CONNECT=106 +CONNECTION=107 +CONNECTION_NAME=108 +CONSTRAINT=109 +CONSTRAINT_CATALOG=110 +CONSTRAINT_NAME=111 +CONSTRAINT_SCHEMA=112 +CONSTRAINTS=113 +CONSTRUCTOR=114 +CONTAINS=115 +CONTINUE=116 +CONVERSION=117 +CONVERT=118 +COPY=119 +CORR=120 +CORRESPONDING=121 +COSTS=122 +COUNT=123 +COVAR_POP=124 +COVAR_SAMP=125 +CREATE=126 +CREATEDB=127 +CREATEUSER=128 +CROSS=129 +CSV=130 +CUBE=131 +CUME_DIST=132 +CURRENT=133 +CURRENT_DATE=134 +CURRENT_DEFAULT_TRANSFORM_GROUP=135 +CURRENT_PATH=136 +CURRENT_ROLE=137 +CURRENT_TIME=138 +CURRENT_TIMESTAMP=139 +CURRENT_TRANSFORM_GROUP_FOR_TYPE=140 +CURRENT_USER=141 +CURSOR=142 +CURSOR_NAME=143 +CYCLE=144 +DATA=145 +DATABASE=146 +DATE=147 +DATETIME_INTERVAL_CODE=148 +DATETIME_INTERVAL_PRECISION=149 +DAY=150 +DEALLOCATE=151 +DEC=152 +DECIMAL=153 +DECLARE=154 +DEFAULT=155 +DEFAULTS=156 +DEFERABLE=157 +DEFERRABLE=158 +DEFERRED=159 +DEFINED=160 +DEFINER=161 +DEGREE=162 +DELETE=163 +DELIMITER=164 +DELIMITERS=165 +DENSE_RANK=166 +DEPENDS=167 +DEPTH=168 +DEREF=169 +DERIVED=170 +DESC=171 +DESCRIBE=172 +DESCRIPTOR=173 +DESTROY=174 +DESTRUCTOR=175 +DETERMINISTIC=176 +DIAGNOSTICS=177 +DICTIONARY=178 +DISABLE=179 +DISABLE_PAGE_SKIPPING=180 +DISCARD=181 +DISCONNECT=182 +DISPATCH=183 +DISTINCT=184 +DO=185 +DOMAIN=186 +DOUBLE=187 +DROP=188 +DYNAMIC=189 +DYNAMIC_FUNCTION=190 +DYNAMIC_FUNCTION_CODE=191 +EACH=192 +ELEMENT=193 +ELSE=194 +ENABLE=195 +ENCODING=196 +ENCRYPTED=197 +END=198 +END_EXEC=199 +EQUALS=200 +ESCAPE=201 +EVERY=202 +EXCEPT=203 +EXCEPTION=204 +EXCLUDE=205 +EXCLUDING=206 +EXCLUSIVE=207 +EXEC=208 +EXECUTE=209 +EXISTING=210 +EXISTS=211 +EXP=212 +EXPLAIN=213 +EXTENDED=214 +EXTENSION=215 +EXTERNAL=216 +EXTRACT=217 +FALSE=218 +FETCH=219 +FIELDS=220 +FILTER=221 +FINAL=222 +FIRST=223 +FLOAT=224 +FLOOR=225 +FOLLOWING=226 +FOR=227 +FORCE=228 +FOREIGN=229 +FORMAT=230 +FORTRAN=231 +FORWARD=232 +FOUND=233 +FREE=234 +FREEZE=235 +FROM=236 +FULL=237 +FUNCTION=238 +FUSION=239 +G_=240 +GENERAL=241 +GENERATED=242 +GET=243 +GLOBAL=244 +GO=245 +GOTO=246 +GRANT=247 +GRANTED=248 +GREATEST=249 +GROUP=250 +GROUPING=251 +HANDLER=252 +HAVING=253 +HIERARCHY=254 +HOLD=255 +HOST=256 +HOUR=257 +IDENTITY=258 +IGNORE=259 +ILIKE=260 +IMMEDIATE=261 +IMMUTABLE=262 +IMPLEMENTATION=263 +IMPLICIT=264 +IN=265 +INCLUDING=266 +INCREMENT=267 +INDEX=268 +INDICATOR=269 +INFIX=270 +INHERITS=271 +INITIALIZE=272 +INITIALLY=273 +INNER=274 +INOUT=275 +INPUT=276 +INSENSITIVE=277 +INSERT=278 +INSTANCE=279 +INSTANTIABLE=280 +INSTEAD=281 +INT=282 +INTEGER=283 +INTERSECT=284 +INTERSECTION=285 +INTERVAL=286 +INTO=287 +INVOKER=288 +IS=289 +ISOLATION=290 +ITERATE=291 +JOIN=292 +K_=293 +KEY=294 +KEY_MEMBER=295 +KEY_TYPE=296 +LABEL=297 +LANCOMPILER=298 +LANGUAGE=299 +LARGE=300 +LAST=301 +LATERAL=302 +LEADING=303 +LEAST=304 +LEFT=305 +LENGTH=306 +LESS=307 +LEVEL=308 +LIKE=309 +LIMIT=310 +LISTEN=311 +LN=312 +LOAD=313 +LOCAL=314 +LOCALTIME=315 +LOCALTIMESTAMP=316 +LOCATION=317 +LOCATOR=318 +LOCK=319 +LOCKED=320 +LOWER=321 +M_=322 +MAIN=323 +MAP=324 +MAPPING=325 +MATCH=326 +MATCH_SIMPLE=327 +MATCHED=328 +MAX=329 +MAXVALUE=330 +MEMBER=331 +MERGE=332 +MESSAGE_LENGTH=333 +MESSAGE_OCTET_LENGTH=334 +MESSAGE_TEXT=335 +METHOD=336 +MIN=337 +MINUTE=338 +MINVALUE=339 +MOD=340 +MODE=341 +MODIFIES=342 +MODIFY=343 +MODULE=344 +MONTH=345 +MORE_=346 +MOVE=347 +MULTISET=348 +MUMPS=349 +NAME=350 +NAMES=351 +NATIONAL=352 +NATURAL=353 +NCHAR=354 +NCLOB=355 +NESTING=356 +NEW=357 +NEXT=358 +NO=359 +NOCREATEDB=360 +NOCREATEUSER=361 +NONE=362 +NORMALIZE=363 +NORMALIZED=364 +NOT=365 +NOTHING=366 +NOTIFY=367 +NOTNULL=368 +NOWAIT=369 +NULL=370 +NULLABLE=371 +NULLIF=372 +NULLS=373 +NUMBER=374 +NUMERIC=375 +OBJECT=376 +OCTET_LENGTH=377 +OCTETS=378 +OF=379 +OFF=380 +OFFSET=381 +OIDS=382 +OLD=383 +ON=384 +ONLY=385 +OPEN=386 +OPERATION=387 +OPERATOR=388 +OPTION=389 +OPTIONS=390 +OR=391 +ORDER=392 +ORDERING=393 +ORDINALITY=394 +OTHERS=395 +OUT=396 +OUTER=397 +OUTPUT=398 +OVER=399 +OVERLAPS=400 +OVERLAY=401 +OVERRIDING=402 +OWNER=403 +PAD=404 +PARAMETER=405 +PARAMETER_MODE=406 +PARAMETER_NAME=407 +PARAMETER_ORDINAL_POSITION=408 +PARAMETER_SPECIFIC_CATALOG=409 +PARAMETER_SPECIFIC_NAME=410 +PARAMETER_SPECIFIC_SCHEMA=411 +PARAMETERS=412 +PARSER=413 +PARTIAL=414 +PARTITION=415 +PASCAL=416 +PASSWORD=417 +PATH=418 +PERCENT_RANK=419 +PERCENTILE_CONT=420 +PERCENTILE_DISC=421 +PLACING=422 +PLAIN=423 +PLANS=424 +PLI=425 +POSITION=426 +POSTFIX=427 +POWER=428 +PRECEDING=429 +PRECISION=430 +PREFIX=431 +PREORDER=432 +PREPARE=433 +PREPARED=434 +PRESERVE=435 +PRIMARY=436 +PRIOR=437 +PRIVILEGES=438 +PROCEDURAL=439 +PROCEDURE=440 +PUBLIC=441 +PUBLICATION=442 +QUOTE=443 +RANGE=444 +RANK=445 +READ=446 +READS=447 +REAL=448 +REASSIGN=449 +RECHECK=450 +RECURSIVE=451 +REF=452 +REFERENCES=453 +REFERENCING=454 +REFRESH=455 +REGR_AVGX=456 +REGR_AVGY=457 +REGR_COUNT=458 +REGR_INTERCEPT=459 +REGR_R2=460 +REGR_SLOPE=461 +REGR_SXX=462 +REGR_SXY=463 +REGR_SYY=464 +REINDEX=465 +RELATIVE=466 +RELEASE=467 +RENAME=468 +REPEATABLE=469 +REPLACE=470 +REPLICA=471 +RESET=472 +RESTART=473 +RESTRICT=474 +RESULT=475 +RETURN=476 +RETURNED_CARDINALITY=477 +RETURNED_LENGTH=478 +RETURNED_OCTET_LENGTH=479 +RETURNED_SQLSTATE=480 +RETURNING=481 +RETURNS=482 +REVOKE=483 +RIGHT=484 +ROLE=485 +ROLLBACK=486 +ROLLUP=487 +ROUTINE=488 +ROUTINE_CATALOG=489 +ROUTINE_NAME=490 +ROUTINE_SCHEMA=491 +ROW=492 +ROW_COUNT=493 +ROW_NUMBER=494 +ROWS=495 +RULE=496 +SAVEPOINT=497 +SCALE=498 +SCHEMA=499 +SCHEMA_NAME=500 +SCOPE=501 +SCOPE_CATALOG=502 +SCOPE_NAME=503 +SCOPE_SCHEMA=504 +SCROLL=505 +SEARCH=506 +SECOND=507 +SECTION=508 +SECURITY=509 +SELECT=510 +SELF=511 +SENSITIVE=512 +SEQUENCE=513 +SEQUENCES=514 +SERIALIZABLE=515 +SERVER_NAME=516 +SESSION=517 +SESSION_USER=518 +SET=519 +SETOF=520 +SETS=521 +SHARE=522 +SHOW=523 +SIMILAR=524 +SIMPLE=525 +SIZE=526 +SKIP_=527 +SMALLINT=528 +SNAPSHOT=529 +SOME=530 +SOURCE=531 +SPACE=532 +SPECIFIC=533 +SPECIFIC_NAME=534 +SPECIFICTYPE=535 +SQL=536 +SQLCODE=537 +SQLERROR=538 +SQLEXCEPTION=539 +SQLSTATE=540 +SQLWARNING=541 +SQRT=542 +STABLE=543 +START=544 +STATE=545 +STATEMENT=546 +STATIC=547 +STATISTICS=548 +STDDEV_POP=549 +STDDEV_SAMP=550 +STDIN=551 +STDOUT=552 +STORAGE=553 +STRICT=554 +STRUCTURE=555 +STYLE=556 +SUBCLASS_ORIGIN=557 +SUBLIST=558 +SUBMULTISET=559 +SUBSCRIPTION=560 +SUBSTRING=561 +SUM=562 +SYMMETRIC=563 +SYSID=564 +SYSTEM=565 +SYSTEM_USER=566 +TABLE=567 +TABLE_NAME=568 +TABLESAMPLE=569 +TABLESPACE=570 +TEMP=571 +TEMPLATE=572 +TEMPORARY=573 +TERMINATE=574 +THAN=575 +THEN=576 +TIES=577 +TIME=578 +TIMESTAMP=579 +TIMEZONE_HOUR=580 +TIMEZONE_MINUTE=581 +TIMING=582 +TO=583 +TOAST=584 +TOP_LEVEL_COUNT=585 +TRAILING=586 +TRANSACTION=587 +TRANSACTION_ACTIVE=588 +TRANSACTIONS_COMMITTED=589 +TRANSACTIONS_ROLLED_BACK=590 +TRANSFORM=591 +TRANSFORMS=592 +TRANSLATE=593 +TRANSLATION=594 +TREAT=595 +TRIGGER=596 +TRIGGER_CATALOG=597 +TRIGGER_NAME=598 +TRIGGER_SCHEMA=599 +TRIM=600 +TRUE=601 +TRUNCATE=602 +TRUSTED=603 +TYPE=604 +UESCAPE=605 +UNBOUNDED=606 +UNCOMMITTED=607 +UNDER=608 +UNENCRYPTED=609 +UNION=610 +UNIQUE=611 +UNKNOWN=612 +UNLISTEN=613 +UNNAMED=614 +UNNEST=615 +UNTIL=616 +UPDATE=617 +UPPER=618 +USAGE=619 +USER=620 +USER_DEFINED_TYPE_CATALOG=621 +USER_DEFINED_TYPE_CODE=622 +USER_DEFINED_TYPE_NAME=623 +USER_DEFINED_TYPE_SCHEMA=624 +USING=625 +VACUUM=626 +VALID=627 +VALIDATE=628 +VALIDATOR=629 +VALUE=630 +VALUES=631 +VAR_POP=632 +VAR_SAMP=633 +VARCHAR=634 +VARIABLE=635 +VARIADIC=636 +VARYING=637 +VERBOSE=638 +VIEW=639 +VOLATILE=640 +WHEN=641 +WHENEVER=642 +WHERE=643 +WIDTH_BUCKET=644 +WINDOW=645 +WITH=646 +WITHIN=647 +WITHOUT=648 +WORK=649 +WRITE=650 +YAML=651 +YEAR=652 +YES=653 +ZONE=654 +SUPERUSER=655 +NOSUPERUSER=656 +CREATEROLE=657 +NOCREATEROLE=658 +INHERIT=659 +NOINHERIT=660 +LOGIN=661 +NOLOGIN=662 +REPLICATION=663 +NOREPLICATION=664 +BYPASSRLS=665 +NOBYPASSRLS=666 +SFUNC=667 +STYPE=668 +SSPACE=669 +FINALFUNC=670 +FINALFUNC_EXTRA=671 +COMBINEFUNC=672 +SERIALFUNC=673 +DESERIALFUNC=674 +INITCOND=675 +MSFUNC=676 +MINVFUNC=677 +MSTYPE=678 +MSSPACE=679 +MFINALFUNC=680 +MFINALFUNC_EXTRA=681 +MINITCOND=682 +SORTOP=683 +PARALLEL=684 +HYPOTHETICAL=685 +SAFE=686 +UNSAFE=687 +BASETYPE=688 +IF=689 +LOCALE=690 +LC_COLLATE=691 +LC_CTYPE=692 +PROVIDER=693 +VERSION=694 +ALLOW_CONNECTIONS=695 +IS_TEMPLATE=696 +EVENT=697 +WRAPPER=698 +SERVER=699 +BTREE=700 +HASH_=701 +GIST=702 +SPGIST=703 +GIN=704 +BRIN=705 +CONCURRENTLY=706 +INLINE=707 +MATERIALIZED=708 +LEFTARG=709 +RIGHTARG=710 +COMMUTATOR=711 +NEGATOR=712 +HASHES=713 +MERGES=714 +FAMILY=715 +POLICY=716 +OWNED=717 +ABSTIME=718 +BIGSERIAL=719 +BIT_VARYING=720 +BOOL=721 +BOX=722 +BYTEA=723 +CHARACTER_VARYING=724 +CIDR=725 +CIRCLE=726 +FLOAT4=727 +FLOAT8=728 +INET=729 +INT2=730 +INT4=731 +INT8=732 +JSON=733 +JSONB=734 +LINE=735 +LSEG=736 +MACADDR=737 +MACADDR8=738 +MONEY=739 +PG_LSN=740 +POINT=741 +POLYGON=742 +RELTIME=743 +SERIAL=744 +SERIAL2=745 +SERIAL4=746 +SERIAL8=747 +SMALLSERIAL=748 +STSTEM=749 +TEXT=750 +TIMESTAMPTZ=751 +TIMETZ=752 +TSQUERY=753 +TSVECTOR=754 +TXID_SNAPSHOT=755 +UUID=756 +VARBIT=757 +XML=758 +COMMA=759 +COLON=760 +COLON_COLON=761 +DOLLAR=762 +DOLLAR_DOLLAR=763 +STAR=764 +OPEN_PAREN=765 +CLOSE_PAREN=766 +OPEN_BRACKET=767 +CLOSE_BRACKET=768 +BIT_STRING=769 +REGEX_STRING=770 +NUMERIC_LITERAL=771 +INTEGER_LITERAL=772 +HEX_INTEGER_LITERAL=773 +DOT=774 +SINGLEQ_STRING_LITERAL=775 +DOUBLEQ_STRING_LITERAL=776 +IDENTIFIER=777 +DOLLAR_DEC=778 +IDENTIFIER_UNICODE=779 +AMP=780 +AMP_AMP=781 +AMP_LT=782 +AT_AT=783 +AT_GT=784 +AT_SIGN=785 +BANG=786 +BANG_BANG=787 +BANG_EQUAL=788 +CARET=789 +EQUAL=790 +EQUAL_GT=791 +GT=792 +GTE=793 +GT_GT=794 +HASH=795 +HASH_EQ=796 +HASH_GT=797 +HASH_GT_GT=798 +HASH_HASH=799 +HYPHEN_GT=800 +HYPHEN_GT_GT=801 +HYPHEN_PIPE_HYPHEN=802 +LT=803 +LTE=804 +LT_AT=805 +LT_CARET=806 +LT_GT=807 +LT_HYPHEN_GT=808 +LT_LT=809 +LT_LT_EQ=810 +LT_QMARK_GT=811 +MINUS=812 +PERCENT=813 +PIPE=814 +PIPE_PIPE=815 +PIPE_PIPE_SLASH=816 +PIPE_SLASH=817 +PLUS=818 +QMARK=819 +QMARK_AMP=820 +QMARK_HASH=821 +QMARK_HYPHEN=822 +QMARK_PIPE=823 +SLASH=824 +TIL=825 +TIL_EQ=826 +TIL_GTE_TIL=827 +TIL_GT_TIL=828 +TIL_LTE_TIL=829 +TIL_LT_TIL=830 +TIL_STAR=831 +TIL_TIL=832 +SEMI=833 +','=759 +':'=760 +'::'=761 +'$'=762 +'$$'=763 +'*'=764 +'('=765 +')'=766 +'['=767 +']'=768 +'.'=774 +'&'=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 diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 index 0e8258c..311c43e 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 @@ -173,7 +173,7 @@ alter_domain_stmt ; alter_event_trigger_stmt - : ALTER EVENT TRIGGER name=identifier DISABLE + : ALTER EVENT TRIGGER name=identifier DISABLE_P | ALTER EVENT TRIGGER name=identifier ENABLE (REPLICA|ALWAYS)? | ALTER EVENT TRIGGER name=identifier OWNER TO (new_owner=identifier|CURRENT_USER|SESSION_USER) | ALTER EVENT TRIGGER name=identifier RENAME TO new_name=identifier @@ -204,7 +204,7 @@ alter_foreign_table_action | ADD table_constraint (NOT VALID)? | VALIDATE CONSTRAINT constraint_name=todo_fill_in | DROP CONSTRAINT (IF EXISTS)? constraint_name=todo_fill_in (RESTRICT|CASCADE)? - | DISABLE TRIGGER (trigger_name=todo_fill_in|ALL|USER)? + | DISABLE_P TRIGGER (trigger_name=todo_fill_in|ALL|USER)? | ENABLE TRIGGER (trigger_name=todo_fill_in|ALL|USER)? | ENABLE REPLICA TRIGGER trigger_name=todo_fill_in | ENABLE ALWAYS TRIGGER trigger_name=todo_fill_in @@ -346,7 +346,7 @@ alter_subscription_stmt (WITH OPEN_PAREN option_list CLOSE_PAREN)? | ALTER SUBSCRIPTION name=identifier REFRESH PUBLICATION (WITH OPEN_PAREN option_list CLOSE_PAREN)? | ALTER SUBSCRIPTION name=identifier ENABLE - | ALTER SUBSCRIPTION name=identifier DISABLE + | ALTER SUBSCRIPTION name=identifier DISABLE_P | ALTER SUBSCRIPTION name=identifier SET OPEN_PAREN option_list CLOSE_PAREN | ALTER SUBSCRIPTION name=identifier OWNER TO new_owner=role_name | ALTER SUBSCRIPTION name=identifier RENAME TO new_name=identifier @@ -514,7 +514,7 @@ create_aggregate_stmt (COMMA MFINALFUNC_EXTRA)? (COMMA MINITCOND EQUAL identifier)? (COMMA SORTOP EQUAL identifier)? - (COMMA PARALLEL EQUAL (SAFE | RESTRICTED | UNSAFE))? + (COMMA PARALLEL EQUAL (SAFE | UNSAFE))? CLOSE_PAREN) | (CREATE AGGREGATE name_ OPEN_PAREN ((IN | VARIADIC)? name_? data_type_list)? ORDER BY (IN | VARIADIC)? name_? data_type_list CLOSE_PAREN @@ -525,7 +525,7 @@ create_aggregate_stmt (COMMA FINALFUNC EQUAL identifier)? (COMMA FINALFUNC_EXTRA)? (COMMA INITCOND EQUAL expr)? - (COMMA PARALLEL EQUAL (SAFE | RESTRICTED | UNSAFE))? + (COMMA PARALLEL EQUAL (SAFE | UNSAFE))? (COMMA HYPOTHETICAL)? CLOSE_PAREN) | (CREATE AGGREGATE name_ @@ -1876,7 +1876,7 @@ non_reserved_keyword | VALIDATOR | VALUE | VALUES | VARCHAR | VARYING | VAR_POP | VAR_SAMP | VIEW | VOLATILE | WHENEVER | WHITESPACE | WIDTH_BUCKET | WITHIN | WITHOUT | WORK - | WRITE | YEAR | ZONE + | WRITE | YEAR | ZONE | DISABLE_P ; identifier diff --git a/src/main/java/PostgreSQLLexer.tokens b/src/main/java/PostgreSQLLexer.tokens index 476cae2..a0956e0 100644 --- a/src/main/java/PostgreSQLLexer.tokens +++ b/src/main/java/PostgreSQLLexer.tokens @@ -176,7 +176,7 @@ DESTRUCTOR=175 DETERMINISTIC=176 DIAGNOSTICS=177 DICTIONARY=178 -DISABLE=179 +DISABLE_P=179 DISABLE_PAGE_SKIPPING=180 DISCARD=181 DISCONNECT=182 @@ -684,216 +684,215 @@ SORTOP=683 PARALLEL=684 HYPOTHETICAL=685 SAFE=686 -RESTRICTED=687 -UNSAFE=688 -BASETYPE=689 -IF=690 -LOCALE=691 -LC_COLLATE=692 -LC_CTYPE=693 -PROVIDER=694 -VERSION=695 -ALLOW_CONNECTIONS=696 -IS_TEMPLATE=697 -EVENT=698 -WRAPPER=699 -SERVER=700 -BTREE=701 -HASH_=702 -GIST=703 -SPGIST=704 -GIN=705 -BRIN=706 -CONCURRENTLY=707 -INLINE=708 -MATERIALIZED=709 -LEFTARG=710 -RIGHTARG=711 -COMMUTATOR=712 -NEGATOR=713 -HASHES=714 -MERGES=715 -FAMILY=716 -POLICY=717 -OWNED=718 -ABSTIME=719 -BIGSERIAL=720 -BIT_VARYING=721 -BOOL=722 -BOX=723 -BYTEA=724 -CHARACTER_VARYING=725 -CIDR=726 -CIRCLE=727 -FLOAT4=728 -FLOAT8=729 -INET=730 -INT2=731 -INT4=732 -INT8=733 -JSON=734 -JSONB=735 -LINE=736 -LSEG=737 -MACADDR=738 -MACADDR8=739 -MONEY=740 -PG_LSN=741 -POINT=742 -POLYGON=743 -RELTIME=744 -SERIAL=745 -SERIAL2=746 -SERIAL4=747 -SERIAL8=748 -SMALLSERIAL=749 -STSTEM=750 -TEXT=751 -TIMESTAMPTZ=752 -TIMETZ=753 -TSQUERY=754 -TSVECTOR=755 -TXID_SNAPSHOT=756 -UUID=757 -VARBIT=758 -XML=759 -COMMA=760 -COLON=761 -COLON_COLON=762 -DOLLAR=763 -DOLLAR_DOLLAR=764 -STAR=765 -OPEN_PAREN=766 -CLOSE_PAREN=767 -OPEN_BRACKET=768 -CLOSE_BRACKET=769 -BIT_STRING=770 -REGEX_STRING=771 -NUMERIC_LITERAL=772 -INTEGER_LITERAL=773 -HEX_INTEGER_LITERAL=774 -DOT=775 -SINGLEQ_STRING_LITERAL=776 -DOUBLEQ_STRING_LITERAL=777 -IDENTIFIER=778 -DOLLAR_DEC=779 -IDENTIFIER_UNICODE=780 -AMP=781 -AMP_AMP=782 -AMP_LT=783 -AT_AT=784 -AT_GT=785 -AT_SIGN=786 -BANG=787 -BANG_BANG=788 -BANG_EQUAL=789 -CARET=790 -EQUAL=791 -EQUAL_GT=792 -GT=793 -GTE=794 -GT_GT=795 -HASH=796 -HASH_EQ=797 -HASH_GT=798 -HASH_GT_GT=799 -HASH_HASH=800 -HYPHEN_GT=801 -HYPHEN_GT_GT=802 -HYPHEN_PIPE_HYPHEN=803 -LT=804 -LTE=805 -LT_AT=806 -LT_CARET=807 -LT_GT=808 -LT_HYPHEN_GT=809 -LT_LT=810 -LT_LT_EQ=811 -LT_QMARK_GT=812 -MINUS=813 -PERCENT=814 -PIPE=815 -PIPE_PIPE=816 -PIPE_PIPE_SLASH=817 -PIPE_SLASH=818 -PLUS=819 -QMARK=820 -QMARK_AMP=821 -QMARK_HASH=822 -QMARK_HYPHEN=823 -QMARK_PIPE=824 -SLASH=825 -TIL=826 -TIL_EQ=827 -TIL_GTE_TIL=828 -TIL_GT_TIL=829 -TIL_LTE_TIL=830 -TIL_LT_TIL=831 -TIL_STAR=832 -TIL_TIL=833 -SEMI=834 -','=760 -':'=761 -'::'=762 -'$'=763 -'$$'=764 -'*'=765 -'('=766 -')'=767 -'['=768 -']'=769 -'.'=775 -'&'=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 +UNSAFE=687 +BASETYPE=688 +IF=689 +LOCALE=690 +LC_COLLATE=691 +LC_CTYPE=692 +PROVIDER=693 +VERSION=694 +ALLOW_CONNECTIONS=695 +IS_TEMPLATE=696 +EVENT=697 +WRAPPER=698 +SERVER=699 +BTREE=700 +HASH_=701 +GIST=702 +SPGIST=703 +GIN=704 +BRIN=705 +CONCURRENTLY=706 +INLINE=707 +MATERIALIZED=708 +LEFTARG=709 +RIGHTARG=710 +COMMUTATOR=711 +NEGATOR=712 +HASHES=713 +MERGES=714 +FAMILY=715 +POLICY=716 +OWNED=717 +ABSTIME=718 +BIGSERIAL=719 +BIT_VARYING=720 +BOOL=721 +BOX=722 +BYTEA=723 +CHARACTER_VARYING=724 +CIDR=725 +CIRCLE=726 +FLOAT4=727 +FLOAT8=728 +INET=729 +INT2=730 +INT4=731 +INT8=732 +JSON=733 +JSONB=734 +LINE=735 +LSEG=736 +MACADDR=737 +MACADDR8=738 +MONEY=739 +PG_LSN=740 +POINT=741 +POLYGON=742 +RELTIME=743 +SERIAL=744 +SERIAL2=745 +SERIAL4=746 +SERIAL8=747 +SMALLSERIAL=748 +STSTEM=749 +TEXT=750 +TIMESTAMPTZ=751 +TIMETZ=752 +TSQUERY=753 +TSVECTOR=754 +TXID_SNAPSHOT=755 +UUID=756 +VARBIT=757 +XML=758 +COMMA=759 +COLON=760 +COLON_COLON=761 +DOLLAR=762 +DOLLAR_DOLLAR=763 +STAR=764 +OPEN_PAREN=765 +CLOSE_PAREN=766 +OPEN_BRACKET=767 +CLOSE_BRACKET=768 +BIT_STRING=769 +REGEX_STRING=770 +NUMERIC_LITERAL=771 +INTEGER_LITERAL=772 +HEX_INTEGER_LITERAL=773 +DOT=774 +SINGLEQ_STRING_LITERAL=775 +DOUBLEQ_STRING_LITERAL=776 +IDENTIFIER=777 +DOLLAR_DEC=778 +IDENTIFIER_UNICODE=779 +AMP=780 +AMP_AMP=781 +AMP_LT=782 +AT_AT=783 +AT_GT=784 +AT_SIGN=785 +BANG=786 +BANG_BANG=787 +BANG_EQUAL=788 +CARET=789 +EQUAL=790 +EQUAL_GT=791 +GT=792 +GTE=793 +GT_GT=794 +HASH=795 +HASH_EQ=796 +HASH_GT=797 +HASH_GT_GT=798 +HASH_HASH=799 +HYPHEN_GT=800 +HYPHEN_GT_GT=801 +HYPHEN_PIPE_HYPHEN=802 +LT=803 +LTE=804 +LT_AT=805 +LT_CARET=806 +LT_GT=807 +LT_HYPHEN_GT=808 +LT_LT=809 +LT_LT_EQ=810 +LT_QMARK_GT=811 +MINUS=812 +PERCENT=813 +PIPE=814 +PIPE_PIPE=815 +PIPE_PIPE_SLASH=816 +PIPE_SLASH=817 +PLUS=818 +QMARK=819 +QMARK_AMP=820 +QMARK_HASH=821 +QMARK_HYPHEN=822 +QMARK_PIPE=823 +SLASH=824 +TIL=825 +TIL_EQ=826 +TIL_GTE_TIL=827 +TIL_GT_TIL=828 +TIL_LTE_TIL=829 +TIL_LT_TIL=830 +TIL_STAR=831 +TIL_TIL=832 +SEMI=833 +','=759 +':'=760 +'::'=761 +'$'=762 +'$$'=763 +'*'=764 +'('=765 +')'=766 +'['=767 +']'=768 +'.'=774 +'&'=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 diff --git a/src/main/java/PostgreSQLParser.tokens b/src/main/java/PostgreSQLParser.tokens index 26ad625..7e9b6f2 100644 --- a/src/main/java/PostgreSQLParser.tokens +++ b/src/main/java/PostgreSQLParser.tokens @@ -176,7 +176,7 @@ DESTRUCTOR=175 DETERMINISTIC=176 DIAGNOSTICS=177 DICTIONARY=178 -DISABLE=179 +DISABLE_P=179 DISABLE_PAGE_SKIPPING=180 DISCARD=181 DISCONNECT=182 @@ -684,217 +684,216 @@ SORTOP=683 PARALLEL=684 HYPOTHETICAL=685 SAFE=686 -RESTRICTED=687 -UNSAFE=688 -BASETYPE=689 -IF=690 -LOCALE=691 -LC_COLLATE=692 -LC_CTYPE=693 -PROVIDER=694 -VERSION=695 -ALLOW_CONNECTIONS=696 -IS_TEMPLATE=697 -EVENT=698 -WRAPPER=699 -SERVER=700 -BTREE=701 -HASH_=702 -GIST=703 -SPGIST=704 -GIN=705 -BRIN=706 -CONCURRENTLY=707 -INLINE=708 -MATERIALIZED=709 -LEFTARG=710 -RIGHTARG=711 -COMMUTATOR=712 -NEGATOR=713 -HASHES=714 -MERGES=715 -FAMILY=716 -POLICY=717 -OWNED=718 -ABSTIME=719 -BIGSERIAL=720 -BIT_VARYING=721 -BOOL=722 -BOX=723 -BYTEA=724 -CHARACTER_VARYING=725 -CIDR=726 -CIRCLE=727 -FLOAT4=728 -FLOAT8=729 -INET=730 -INT2=731 -INT4=732 -INT8=733 -JSON=734 -JSONB=735 -LINE=736 -LSEG=737 -MACADDR=738 -MACADDR8=739 -MONEY=740 -PG_LSN=741 -POINT=742 -POLYGON=743 -RELTIME=744 -SERIAL=745 -SERIAL2=746 -SERIAL4=747 -SERIAL8=748 -SMALLSERIAL=749 -STSTEM=750 -TEXT=751 -TIMESTAMPTZ=752 -TIMETZ=753 -TSQUERY=754 -TSVECTOR=755 -TXID_SNAPSHOT=756 -UUID=757 -VARBIT=758 -XML=759 -COMMA=760 -COLON=761 -COLON_COLON=762 -DOLLAR=763 -DOLLAR_DOLLAR=764 -STAR=765 -OPEN_PAREN=766 -CLOSE_PAREN=767 -OPEN_BRACKET=768 -CLOSE_BRACKET=769 -BIT_STRING=770 -REGEX_STRING=771 -NUMERIC_LITERAL=772 -INTEGER_LITERAL=773 -HEX_INTEGER_LITERAL=774 -DOT=775 -SINGLEQ_STRING_LITERAL=776 -DOUBLEQ_STRING_LITERAL=777 -IDENTIFIER=778 -DOLLAR_DEC=779 -IDENTIFIER_UNICODE=780 -AMP=781 -AMP_AMP=782 -AMP_LT=783 -AT_AT=784 -AT_GT=785 -AT_SIGN=786 -BANG=787 -BANG_BANG=788 -BANG_EQUAL=789 -CARET=790 -EQUAL=791 -EQUAL_GT=792 -GT=793 -GTE=794 -GT_GT=795 -HASH=796 -HASH_EQ=797 -HASH_GT=798 -HASH_GT_GT=799 -HASH_HASH=800 -HYPHEN_GT=801 -HYPHEN_GT_GT=802 -HYPHEN_PIPE_HYPHEN=803 -LT=804 -LTE=805 -LT_AT=806 -LT_CARET=807 -LT_GT=808 -LT_HYPHEN_GT=809 -LT_LT=810 -LT_LT_EQ=811 -LT_QMARK_GT=812 -MINUS=813 -PERCENT=814 -PIPE=815 -PIPE_PIPE=816 -PIPE_PIPE_SLASH=817 -PIPE_SLASH=818 -PLUS=819 -QMARK=820 -QMARK_AMP=821 -QMARK_HASH=822 -QMARK_HYPHEN=823 -QMARK_PIPE=824 -SLASH=825 -TIL=826 -TIL_EQ=827 -TIL_GTE_TIL=828 -TIL_GT_TIL=829 -TIL_LTE_TIL=830 -TIL_LT_TIL=831 -TIL_STAR=832 -TIL_TIL=833 -SEMI=834 -UNLOGGED=835 -','=760 -':'=761 -'::'=762 -'$'=763 -'$$'=764 -'*'=765 -'('=766 -')'=767 -'['=768 -']'=769 -'.'=775 -'&'=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 +UNSAFE=687 +BASETYPE=688 +IF=689 +LOCALE=690 +LC_COLLATE=691 +LC_CTYPE=692 +PROVIDER=693 +VERSION=694 +ALLOW_CONNECTIONS=695 +IS_TEMPLATE=696 +EVENT=697 +WRAPPER=698 +SERVER=699 +BTREE=700 +HASH_=701 +GIST=702 +SPGIST=703 +GIN=704 +BRIN=705 +CONCURRENTLY=706 +INLINE=707 +MATERIALIZED=708 +LEFTARG=709 +RIGHTARG=710 +COMMUTATOR=711 +NEGATOR=712 +HASHES=713 +MERGES=714 +FAMILY=715 +POLICY=716 +OWNED=717 +ABSTIME=718 +BIGSERIAL=719 +BIT_VARYING=720 +BOOL=721 +BOX=722 +BYTEA=723 +CHARACTER_VARYING=724 +CIDR=725 +CIRCLE=726 +FLOAT4=727 +FLOAT8=728 +INET=729 +INT2=730 +INT4=731 +INT8=732 +JSON=733 +JSONB=734 +LINE=735 +LSEG=736 +MACADDR=737 +MACADDR8=738 +MONEY=739 +PG_LSN=740 +POINT=741 +POLYGON=742 +RELTIME=743 +SERIAL=744 +SERIAL2=745 +SERIAL4=746 +SERIAL8=747 +SMALLSERIAL=748 +STSTEM=749 +TEXT=750 +TIMESTAMPTZ=751 +TIMETZ=752 +TSQUERY=753 +TSVECTOR=754 +TXID_SNAPSHOT=755 +UUID=756 +VARBIT=757 +XML=758 +COMMA=759 +COLON=760 +COLON_COLON=761 +DOLLAR=762 +DOLLAR_DOLLAR=763 +STAR=764 +OPEN_PAREN=765 +CLOSE_PAREN=766 +OPEN_BRACKET=767 +CLOSE_BRACKET=768 +BIT_STRING=769 +REGEX_STRING=770 +NUMERIC_LITERAL=771 +INTEGER_LITERAL=772 +HEX_INTEGER_LITERAL=773 +DOT=774 +SINGLEQ_STRING_LITERAL=775 +DOUBLEQ_STRING_LITERAL=776 +IDENTIFIER=777 +DOLLAR_DEC=778 +IDENTIFIER_UNICODE=779 +AMP=780 +AMP_AMP=781 +AMP_LT=782 +AT_AT=783 +AT_GT=784 +AT_SIGN=785 +BANG=786 +BANG_BANG=787 +BANG_EQUAL=788 +CARET=789 +EQUAL=790 +EQUAL_GT=791 +GT=792 +GTE=793 +GT_GT=794 +HASH=795 +HASH_EQ=796 +HASH_GT=797 +HASH_GT_GT=798 +HASH_HASH=799 +HYPHEN_GT=800 +HYPHEN_GT_GT=801 +HYPHEN_PIPE_HYPHEN=802 +LT=803 +LTE=804 +LT_AT=805 +LT_CARET=806 +LT_GT=807 +LT_HYPHEN_GT=808 +LT_LT=809 +LT_LT_EQ=810 +LT_QMARK_GT=811 +MINUS=812 +PERCENT=813 +PIPE=814 +PIPE_PIPE=815 +PIPE_PIPE_SLASH=816 +PIPE_SLASH=817 +PLUS=818 +QMARK=819 +QMARK_AMP=820 +QMARK_HASH=821 +QMARK_HYPHEN=822 +QMARK_PIPE=823 +SLASH=824 +TIL=825 +TIL_EQ=826 +TIL_GTE_TIL=827 +TIL_GT_TIL=828 +TIL_LTE_TIL=829 +TIL_LT_TIL=830 +TIL_STAR=831 +TIL_TIL=832 +SEMI=833 +UNLOGGED=834 +','=759 +':'=760 +'::'=761 +'$'=762 +'$$'=763 +'*'=764 +'('=765 +')'=766 +'['=767 +']'=768 +'.'=774 +'&'=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 diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java index 71776b0..5227110 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.java @@ -1,4087 +1,4063 @@ // Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.g4 by ANTLR 4.7 package com.github.bigdata.sql.antlr4.pg; - +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.ATN; -import org.antlr.v4.runtime.atn.ATNDeserializer; -import org.antlr.v4.runtime.atn.LexerATNSimulator; -import org.antlr.v4.runtime.atn.PredictionContextCache; +import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.Utils; +import org.antlr.v4.runtime.misc.*; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class PostgreSQLLexer extends Lexer { - static { - RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); - } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - WHITESPACE = 1, BLOCK_COMMENT = 2, LINE_COMMENT = 3, A_ = 4, ABORT = 5, ABS = 6, ABSOLUTE = 7, - ACCESS = 8, ACTION = 9, ADA = 10, ADD = 11, ADMIN = 12, AFTER = 13, AGGREGATE = 14, - ALIAS = 15, ALL = 16, ALLOCATE = 17, ALSO = 18, ALTER = 19, ALWAYS = 20, ANALYSE = 21, - ANALYZE = 22, AND = 23, ANY = 24, ARE = 25, ARRAY = 26, AS = 27, ASC = 28, ASENSITIVE = 29, - ASSERTION = 30, ASSIGNMENT = 31, ASYMMETRIC = 32, AT = 33, ATOMIC = 34, ATTRIBUTE = 35, - ATTRIBUTES = 36, AUTHORIZATION = 37, AVG = 38, BACKWARD = 39, BEFORE = 40, BEGIN = 41, - BERNOULLI = 42, BETWEEN = 43, BIGINT = 44, BINARY = 45, BIT = 46, BIT_LENGTH = 47, - BITVAR = 48, BLOB = 49, BOOLEAN = 50, BOTH = 51, BREADTH = 52, BUFFERS = 53, BY = 54, - C_ = 55, CACHE = 56, CALL = 57, CALLED = 58, CARDINALITY = 59, CASCADE = 60, CASCADED = 61, - CASE = 62, CAST = 63, CATALOG = 64, CATALOG_NAME = 65, CEIL = 66, CEILING = 67, CHAIN = 68, - CHAR = 69, CHAR_LENGTH = 70, CHARACTER = 71, CHARACTER_LENGTH = 72, CHARACTER_SET_CATALOG = 73, - CHARACTER_SET_NAME = 74, CHARACTER_SET_SCHEMA = 75, CHARACTERISTICS = 76, CHARACTERS = 77, - CHECK = 78, CHECKED = 79, CHECKPOINT = 80, CLASS = 81, CLASS_ORIGIN = 82, CLOB = 83, - CLOSE = 84, CLUSTER = 85, COALESCE = 86, COBOL = 87, COLLATE = 88, COLLATION = 89, - COLLATION_CATALOG = 90, COLLATION_NAME = 91, COLLATION_SCHEMA = 92, COLLECT = 93, - COLUMN = 94, COLUMN_NAME = 95, COMMAND_FUNCTION = 96, COMMAND_FUNCTION_CODE = 97, - COMMENT = 98, COMMIT = 99, COMMITTED = 100, COMPLETION = 101, CONDITION = 102, CONDITION_NUMBER = 103, - CONFIGURATION = 104, CONFLICT = 105, CONNECT = 106, CONNECTION = 107, CONNECTION_NAME = 108, - CONSTRAINT = 109, CONSTRAINT_CATALOG = 110, CONSTRAINT_NAME = 111, CONSTRAINT_SCHEMA = 112, - CONSTRAINTS = 113, CONSTRUCTOR = 114, CONTAINS = 115, CONTINUE = 116, CONVERSION = 117, - CONVERT = 118, COPY = 119, CORR = 120, CORRESPONDING = 121, COSTS = 122, COUNT = 123, - COVAR_POP = 124, COVAR_SAMP = 125, CREATE = 126, CREATEDB = 127, CREATEUSER = 128, - CROSS = 129, CSV = 130, CUBE = 131, CUME_DIST = 132, CURRENT = 133, CURRENT_DATE = 134, - CURRENT_DEFAULT_TRANSFORM_GROUP = 135, CURRENT_PATH = 136, CURRENT_ROLE = 137, - CURRENT_TIME = 138, CURRENT_TIMESTAMP = 139, CURRENT_TRANSFORM_GROUP_FOR_TYPE = 140, - CURRENT_USER = 141, CURSOR = 142, CURSOR_NAME = 143, CYCLE = 144, DATA = 145, DATABASE = 146, - DATE = 147, DATETIME_INTERVAL_CODE = 148, DATETIME_INTERVAL_PRECISION = 149, - DAY = 150, DEALLOCATE = 151, DEC = 152, DECIMAL = 153, DECLARE = 154, DEFAULT = 155, - DEFAULTS = 156, DEFERABLE = 157, DEFERRABLE = 158, DEFERRED = 159, DEFINED = 160, - DEFINER = 161, DEGREE = 162, DELETE = 163, DELIMITER = 164, DELIMITERS = 165, DENSE_RANK = 166, - DEPENDS = 167, DEPTH = 168, DEREF = 169, DERIVED = 170, DESC = 171, DESCRIBE = 172, - DESCRIPTOR = 173, DESTROY = 174, DESTRUCTOR = 175, DETERMINISTIC = 176, DIAGNOSTICS = 177, - DICTIONARY = 178, DISABLE = 179, DISABLE_PAGE_SKIPPING = 180, DISCARD = 181, DISCONNECT = 182, - DISPATCH = 183, DISTINCT = 184, DO = 185, DOMAIN = 186, DOUBLE = 187, DROP = 188, - DYNAMIC = 189, DYNAMIC_FUNCTION = 190, DYNAMIC_FUNCTION_CODE = 191, EACH = 192, - ELEMENT = 193, ELSE = 194, ENABLE = 195, ENCODING = 196, ENCRYPTED = 197, END = 198, - END_EXEC = 199, EQUALS = 200, ESCAPE = 201, EVERY = 202, EXCEPT = 203, EXCEPTION = 204, - EXCLUDE = 205, EXCLUDING = 206, EXCLUSIVE = 207, EXEC = 208, EXECUTE = 209, EXISTING = 210, - EXISTS = 211, EXP = 212, EXPLAIN = 213, EXTENDED = 214, EXTENSION = 215, EXTERNAL = 216, - EXTRACT = 217, FALSE = 218, FETCH = 219, FIELDS = 220, FILTER = 221, FINAL = 222, - FIRST = 223, FLOAT = 224, FLOOR = 225, FOLLOWING = 226, FOR = 227, FORCE = 228, FOREIGN = 229, - FORMAT = 230, FORTRAN = 231, FORWARD = 232, FOUND = 233, FREE = 234, FREEZE = 235, - FROM = 236, FULL = 237, FUNCTION = 238, FUSION = 239, G_ = 240, GENERAL = 241, GENERATED = 242, - GET = 243, GLOBAL = 244, GO = 245, GOTO = 246, GRANT = 247, GRANTED = 248, GREATEST = 249, - GROUP = 250, GROUPING = 251, HANDLER = 252, HAVING = 253, HIERARCHY = 254, HOLD = 255, - HOST = 256, HOUR = 257, IDENTITY = 258, IGNORE = 259, ILIKE = 260, IMMEDIATE = 261, - IMMUTABLE = 262, IMPLEMENTATION = 263, IMPLICIT = 264, IN = 265, INCLUDING = 266, - INCREMENT = 267, INDEX = 268, INDICATOR = 269, INFIX = 270, INHERITS = 271, INITIALIZE = 272, - INITIALLY = 273, INNER = 274, INOUT = 275, INPUT = 276, INSENSITIVE = 277, INSERT = 278, - INSTANCE = 279, INSTANTIABLE = 280, INSTEAD = 281, INT = 282, INTEGER = 283, INTERSECT = 284, - INTERSECTION = 285, INTERVAL = 286, INTO = 287, INVOKER = 288, IS = 289, ISOLATION = 290, - ITERATE = 291, JOIN = 292, K_ = 293, KEY = 294, KEY_MEMBER = 295, KEY_TYPE = 296, - LABEL = 297, LANCOMPILER = 298, LANGUAGE = 299, LARGE = 300, LAST = 301, LATERAL = 302, - LEADING = 303, LEAST = 304, LEFT = 305, LENGTH = 306, LESS = 307, LEVEL = 308, LIKE = 309, - LIMIT = 310, LISTEN = 311, LN = 312, LOAD = 313, LOCAL = 314, LOCALTIME = 315, LOCALTIMESTAMP = 316, - LOCATION = 317, LOCATOR = 318, LOCK = 319, LOCKED = 320, LOWER = 321, M_ = 322, MAIN = 323, - MAP = 324, MAPPING = 325, MATCH = 326, MATCH_SIMPLE = 327, MATCHED = 328, MAX = 329, - MAXVALUE = 330, MEMBER = 331, MERGE = 332, MESSAGE_LENGTH = 333, MESSAGE_OCTET_LENGTH = 334, - MESSAGE_TEXT = 335, METHOD = 336, MIN = 337, MINUTE = 338, MINVALUE = 339, MOD = 340, - MODE = 341, MODIFIES = 342, MODIFY = 343, MODULE = 344, MONTH = 345, MORE_ = 346, - MOVE = 347, MULTISET = 348, MUMPS = 349, NAME = 350, NAMES = 351, NATIONAL = 352, - NATURAL = 353, NCHAR = 354, NCLOB = 355, NESTING = 356, NEW = 357, NEXT = 358, NO = 359, - NOCREATEDB = 360, NOCREATEUSER = 361, NONE = 362, NORMALIZE = 363, NORMALIZED = 364, - NOT = 365, NOTHING = 366, NOTIFY = 367, NOTNULL = 368, NOWAIT = 369, NULL = 370, NULLABLE = 371, - NULLIF = 372, NULLS = 373, NUMBER = 374, NUMERIC = 375, OBJECT = 376, OCTET_LENGTH = 377, - OCTETS = 378, OF = 379, OFF = 380, OFFSET = 381, OIDS = 382, OLD = 383, ON = 384, ONLY = 385, - OPEN = 386, OPERATION = 387, OPERATOR = 388, OPTION = 389, OPTIONS = 390, OR = 391, - ORDER = 392, ORDERING = 393, ORDINALITY = 394, OTHERS = 395, OUT = 396, OUTER = 397, - OUTPUT = 398, OVER = 399, OVERLAPS = 400, OVERLAY = 401, OVERRIDING = 402, OWNER = 403, - PAD = 404, PARAMETER = 405, PARAMETER_MODE = 406, PARAMETER_NAME = 407, PARAMETER_ORDINAL_POSITION = 408, - PARAMETER_SPECIFIC_CATALOG = 409, PARAMETER_SPECIFIC_NAME = 410, PARAMETER_SPECIFIC_SCHEMA = 411, - PARAMETERS = 412, PARSER = 413, PARTIAL = 414, PARTITION = 415, PASCAL = 416, PASSWORD = 417, - PATH = 418, PERCENT_RANK = 419, PERCENTILE_CONT = 420, PERCENTILE_DISC = 421, - PLACING = 422, PLAIN = 423, PLANS = 424, PLI = 425, POSITION = 426, POSTFIX = 427, - POWER = 428, PRECEDING = 429, PRECISION = 430, PREFIX = 431, PREORDER = 432, PREPARE = 433, - PREPARED = 434, PRESERVE = 435, PRIMARY = 436, PRIOR = 437, PRIVILEGES = 438, PROCEDURAL = 439, - PROCEDURE = 440, PUBLIC = 441, PUBLICATION = 442, QUOTE = 443, RANGE = 444, RANK = 445, - READ = 446, READS = 447, REAL = 448, REASSIGN = 449, RECHECK = 450, RECURSIVE = 451, - REF = 452, REFERENCES = 453, REFERENCING = 454, REFRESH = 455, REGR_AVGX = 456, - REGR_AVGY = 457, REGR_COUNT = 458, REGR_INTERCEPT = 459, REGR_R2 = 460, REGR_SLOPE = 461, - REGR_SXX = 462, REGR_SXY = 463, REGR_SYY = 464, REINDEX = 465, RELATIVE = 466, RELEASE = 467, - RENAME = 468, REPEATABLE = 469, REPLACE = 470, REPLICA = 471, RESET = 472, RESTART = 473, - RESTRICT = 474, RESULT = 475, RETURN = 476, RETURNED_CARDINALITY = 477, RETURNED_LENGTH = 478, - RETURNED_OCTET_LENGTH = 479, RETURNED_SQLSTATE = 480, RETURNING = 481, RETURNS = 482, - REVOKE = 483, RIGHT = 484, ROLE = 485, ROLLBACK = 486, ROLLUP = 487, ROUTINE = 488, - ROUTINE_CATALOG = 489, ROUTINE_NAME = 490, ROUTINE_SCHEMA = 491, ROW = 492, ROW_COUNT = 493, - ROW_NUMBER = 494, ROWS = 495, RULE = 496, SAVEPOINT = 497, SCALE = 498, SCHEMA = 499, - SCHEMA_NAME = 500, SCOPE = 501, SCOPE_CATALOG = 502, SCOPE_NAME = 503, SCOPE_SCHEMA = 504, - SCROLL = 505, SEARCH = 506, SECOND = 507, SECTION = 508, SECURITY = 509, SELECT = 510, - SELF = 511, SENSITIVE = 512, SEQUENCE = 513, SEQUENCES = 514, SERIALIZABLE = 515, - SERVER_NAME = 516, SESSION = 517, SESSION_USER = 518, SET = 519, SETOF = 520, SETS = 521, - SHARE = 522, SHOW = 523, SIMILAR = 524, SIMPLE = 525, SIZE = 526, SKIP_ = 527, SMALLINT = 528, - SNAPSHOT = 529, SOME = 530, SOURCE = 531, SPACE = 532, SPECIFIC = 533, SPECIFIC_NAME = 534, - SPECIFICTYPE = 535, SQL = 536, SQLCODE = 537, SQLERROR = 538, SQLEXCEPTION = 539, - SQLSTATE = 540, SQLWARNING = 541, SQRT = 542, STABLE = 543, START = 544, STATE = 545, - STATEMENT = 546, STATIC = 547, STATISTICS = 548, STDDEV_POP = 549, STDDEV_SAMP = 550, - STDIN = 551, STDOUT = 552, STORAGE = 553, STRICT = 554, STRUCTURE = 555, STYLE = 556, - SUBCLASS_ORIGIN = 557, SUBLIST = 558, SUBMULTISET = 559, SUBSCRIPTION = 560, SUBSTRING = 561, - SUM = 562, SYMMETRIC = 563, SYSID = 564, SYSTEM = 565, SYSTEM_USER = 566, TABLE = 567, - TABLE_NAME = 568, TABLESAMPLE = 569, TABLESPACE = 570, TEMP = 571, TEMPLATE = 572, - TEMPORARY = 573, TERMINATE = 574, THAN = 575, THEN = 576, TIES = 577, TIME = 578, - TIMESTAMP = 579, TIMEZONE_HOUR = 580, TIMEZONE_MINUTE = 581, TIMING = 582, TO = 583, - TOAST = 584, TOP_LEVEL_COUNT = 585, TRAILING = 586, TRANSACTION = 587, TRANSACTION_ACTIVE = 588, - TRANSACTIONS_COMMITTED = 589, TRANSACTIONS_ROLLED_BACK = 590, TRANSFORM = 591, - TRANSFORMS = 592, TRANSLATE = 593, TRANSLATION = 594, TREAT = 595, TRIGGER = 596, - TRIGGER_CATALOG = 597, TRIGGER_NAME = 598, TRIGGER_SCHEMA = 599, TRIM = 600, TRUE = 601, - TRUNCATE = 602, TRUSTED = 603, TYPE = 604, UESCAPE = 605, UNBOUNDED = 606, UNCOMMITTED = 607, - UNDER = 608, UNENCRYPTED = 609, UNION = 610, UNIQUE = 611, UNKNOWN = 612, UNLISTEN = 613, - UNNAMED = 614, UNNEST = 615, UNTIL = 616, UPDATE = 617, UPPER = 618, USAGE = 619, - USER = 620, USER_DEFINED_TYPE_CATALOG = 621, USER_DEFINED_TYPE_CODE = 622, USER_DEFINED_TYPE_NAME = 623, - USER_DEFINED_TYPE_SCHEMA = 624, USING = 625, VACUUM = 626, VALID = 627, VALIDATE = 628, - VALIDATOR = 629, VALUE = 630, VALUES = 631, VAR_POP = 632, VAR_SAMP = 633, VARCHAR = 634, - VARIABLE = 635, VARIADIC = 636, VARYING = 637, VERBOSE = 638, VIEW = 639, VOLATILE = 640, - WHEN = 641, WHENEVER = 642, WHERE = 643, WIDTH_BUCKET = 644, WINDOW = 645, WITH = 646, - WITHIN = 647, WITHOUT = 648, WORK = 649, WRITE = 650, YAML = 651, YEAR = 652, YES = 653, - ZONE = 654, SUPERUSER = 655, NOSUPERUSER = 656, CREATEROLE = 657, NOCREATEROLE = 658, - INHERIT = 659, NOINHERIT = 660, LOGIN = 661, NOLOGIN = 662, REPLICATION = 663, NOREPLICATION = 664, - BYPASSRLS = 665, NOBYPASSRLS = 666, SFUNC = 667, STYPE = 668, SSPACE = 669, FINALFUNC = 670, - FINALFUNC_EXTRA = 671, COMBINEFUNC = 672, SERIALFUNC = 673, DESERIALFUNC = 674, - INITCOND = 675, MSFUNC = 676, MINVFUNC = 677, MSTYPE = 678, MSSPACE = 679, MFINALFUNC = 680, - MFINALFUNC_EXTRA = 681, MINITCOND = 682, SORTOP = 683, PARALLEL = 684, HYPOTHETICAL = 685, - SAFE = 686, RESTRICTED = 687, UNSAFE = 688, BASETYPE = 689, IF = 690, LOCALE = 691, - LC_COLLATE = 692, LC_CTYPE = 693, PROVIDER = 694, VERSION = 695, ALLOW_CONNECTIONS = 696, - IS_TEMPLATE = 697, EVENT = 698, WRAPPER = 699, SERVER = 700, BTREE = 701, HASH_ = 702, - GIST = 703, SPGIST = 704, GIN = 705, BRIN = 706, CONCURRENTLY = 707, INLINE = 708, - MATERIALIZED = 709, LEFTARG = 710, RIGHTARG = 711, COMMUTATOR = 712, NEGATOR = 713, - HASHES = 714, MERGES = 715, FAMILY = 716, POLICY = 717, OWNED = 718, ABSTIME = 719, - BIGSERIAL = 720, BIT_VARYING = 721, BOOL = 722, BOX = 723, BYTEA = 724, CHARACTER_VARYING = 725, - CIDR = 726, CIRCLE = 727, FLOAT4 = 728, FLOAT8 = 729, INET = 730, INT2 = 731, INT4 = 732, - INT8 = 733, JSON = 734, JSONB = 735, LINE = 736, LSEG = 737, MACADDR = 738, MACADDR8 = 739, - MONEY = 740, PG_LSN = 741, POINT = 742, POLYGON = 743, RELTIME = 744, SERIAL = 745, - SERIAL2 = 746, SERIAL4 = 747, SERIAL8 = 748, SMALLSERIAL = 749, STSTEM = 750, TEXT = 751, - TIMESTAMPTZ = 752, TIMETZ = 753, TSQUERY = 754, TSVECTOR = 755, TXID_SNAPSHOT = 756, - UUID = 757, VARBIT = 758, XML = 759, COMMA = 760, COLON = 761, COLON_COLON = 762, - DOLLAR = 763, DOLLAR_DOLLAR = 764, STAR = 765, OPEN_PAREN = 766, CLOSE_PAREN = 767, - OPEN_BRACKET = 768, CLOSE_BRACKET = 769, BIT_STRING = 770, REGEX_STRING = 771, - NUMERIC_LITERAL = 772, INTEGER_LITERAL = 773, HEX_INTEGER_LITERAL = 774, DOT = 775, - SINGLEQ_STRING_LITERAL = 776, DOUBLEQ_STRING_LITERAL = 777, IDENTIFIER = 778, - DOLLAR_DEC = 779, IDENTIFIER_UNICODE = 780, AMP = 781, AMP_AMP = 782, AMP_LT = 783, - AT_AT = 784, AT_GT = 785, AT_SIGN = 786, BANG = 787, BANG_BANG = 788, BANG_EQUAL = 789, - CARET = 790, EQUAL = 791, EQUAL_GT = 792, GT = 793, GTE = 794, GT_GT = 795, HASH = 796, - HASH_EQ = 797, HASH_GT = 798, HASH_GT_GT = 799, HASH_HASH = 800, HYPHEN_GT = 801, - HYPHEN_GT_GT = 802, HYPHEN_PIPE_HYPHEN = 803, LT = 804, LTE = 805, LT_AT = 806, - LT_CARET = 807, LT_GT = 808, LT_HYPHEN_GT = 809, LT_LT = 810, LT_LT_EQ = 811, LT_QMARK_GT = 812, - MINUS = 813, PERCENT = 814, PIPE = 815, PIPE_PIPE = 816, PIPE_PIPE_SLASH = 817, - PIPE_SLASH = 818, PLUS = 819, QMARK = 820, QMARK_AMP = 821, QMARK_HASH = 822, QMARK_HYPHEN = 823, - QMARK_PIPE = 824, SLASH = 825, TIL = 826, TIL_EQ = 827, TIL_GTE_TIL = 828, TIL_GT_TIL = 829, - TIL_LTE_TIL = 830, TIL_LT_TIL = 831, TIL_STAR = 832, TIL_TIL = 833, SEMI = 834; - public static String[] channelNames = { - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }; - - public static String[] modeNames = { - "DEFAULT_MODE" - }; + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } - public static final String[] ruleNames = { - "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A", "B", "C", "D", "E", - "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", - "T", "U", "V", "W", "X", "Y", "Z", "HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", - "SQUOTA_STRING", "BQUOTA_STRING", "A_", "ABORT", "ABS", "ABSOLUTE", "ACCESS", - "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", - "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", - "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", - "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", "AUTHORIZATION", - "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", "BIGINT", - "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", "BOTH", "BREADTH", - "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", "CASCADE", - "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", "CEILING", - "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", "CHARACTER_SET_CATALOG", - "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CHARACTERISTICS", "CHARACTERS", - "CHECK", "CHECKED", "CHECKPOINT", "CLASS", "CLASS_ORIGIN", "CLOB", "CLOSE", - "CLUSTER", "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLLATION_CATALOG", - "COLLATION_NAME", "COLLATION_SCHEMA", "COLLECT", "COLUMN", "COLUMN_NAME", - "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMENT", "COMMIT", "COMMITTED", - "COMPLETION", "CONDITION", "CONDITION_NUMBER", "CONFIGURATION", "CONFLICT", - "CONNECT", "CONNECTION", "CONNECTION_NAME", "CONSTRAINT", "CONSTRAINT_CATALOG", - "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRAINTS", "CONSTRUCTOR", - "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", "COPY", "CORR", "CORRESPONDING", - "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CREATEDB", "CREATEUSER", - "CROSS", "CSV", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", - "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", - "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", - "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", - "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", - "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", - "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", - "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", - "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", - "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", - "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", - "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", - "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", - "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", - "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", - "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", - "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", - "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", - "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", - "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", - "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", - "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", - "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", - "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", - "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", - "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", - "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", - "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", - "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", - "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", - "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", - "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", - "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", - "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", - "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", - "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", - "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", - "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", - "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", - "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", - "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", - "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", - "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", - "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", - "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", - "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", - "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", - "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", - "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", - "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", - "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", - "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", - "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", - "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", - "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", - "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", - "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", - "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", - "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", - "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", - "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", - "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", - "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", - "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", - "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", - "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", - "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", - "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", - "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", - "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", - "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", - "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", - "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", - "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", - "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", - "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", - "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", - "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", - "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", - "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", - "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", - "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", - "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", - "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", - "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", - "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", - "HYPOTHETICAL", "SAFE", "RESTRICTED", "UNSAFE", "BASETYPE", "IF", "LOCALE", - "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", - "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", - "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", - "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", - "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", - "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", - "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", - "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", - "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", - "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", - "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", - "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", - "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", - "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", - "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", - "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", - "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", - "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", - "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", - "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", - "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", - "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" - }; + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + WHITESPACE=1, BLOCK_COMMENT=2, LINE_COMMENT=3, A_=4, ABORT=5, ABS=6, ABSOLUTE=7, + ACCESS=8, ACTION=9, ADA=10, ADD=11, ADMIN=12, AFTER=13, AGGREGATE=14, + ALIAS=15, ALL=16, ALLOCATE=17, ALSO=18, ALTER=19, ALWAYS=20, ANALYSE=21, + ANALYZE=22, AND=23, ANY=24, ARE=25, ARRAY=26, AS=27, ASC=28, ASENSITIVE=29, + ASSERTION=30, ASSIGNMENT=31, ASYMMETRIC=32, AT=33, ATOMIC=34, ATTRIBUTE=35, + ATTRIBUTES=36, AUTHORIZATION=37, AVG=38, BACKWARD=39, BEFORE=40, BEGIN=41, + BERNOULLI=42, BETWEEN=43, BIGINT=44, BINARY=45, BIT=46, BIT_LENGTH=47, + BITVAR=48, BLOB=49, BOOLEAN=50, BOTH=51, BREADTH=52, BUFFERS=53, BY=54, + C_=55, CACHE=56, CALL=57, CALLED=58, CARDINALITY=59, CASCADE=60, CASCADED=61, + CASE=62, CAST=63, CATALOG=64, CATALOG_NAME=65, CEIL=66, CEILING=67, CHAIN=68, + CHAR=69, CHAR_LENGTH=70, CHARACTER=71, CHARACTER_LENGTH=72, CHARACTER_SET_CATALOG=73, + CHARACTER_SET_NAME=74, CHARACTER_SET_SCHEMA=75, CHARACTERISTICS=76, CHARACTERS=77, + CHECK=78, CHECKED=79, CHECKPOINT=80, CLASS=81, CLASS_ORIGIN=82, CLOB=83, + CLOSE=84, CLUSTER=85, COALESCE=86, COBOL=87, COLLATE=88, COLLATION=89, + COLLATION_CATALOG=90, COLLATION_NAME=91, COLLATION_SCHEMA=92, COLLECT=93, + COLUMN=94, COLUMN_NAME=95, COMMAND_FUNCTION=96, COMMAND_FUNCTION_CODE=97, + COMMENT=98, COMMIT=99, COMMITTED=100, COMPLETION=101, CONDITION=102, CONDITION_NUMBER=103, + CONFIGURATION=104, CONFLICT=105, CONNECT=106, CONNECTION=107, CONNECTION_NAME=108, + CONSTRAINT=109, CONSTRAINT_CATALOG=110, CONSTRAINT_NAME=111, CONSTRAINT_SCHEMA=112, + CONSTRAINTS=113, CONSTRUCTOR=114, CONTAINS=115, CONTINUE=116, CONVERSION=117, + CONVERT=118, COPY=119, CORR=120, CORRESPONDING=121, COSTS=122, COUNT=123, + COVAR_POP=124, COVAR_SAMP=125, CREATE=126, CREATEDB=127, CREATEUSER=128, + CROSS=129, CSV=130, CUBE=131, CUME_DIST=132, CURRENT=133, CURRENT_DATE=134, + CURRENT_DEFAULT_TRANSFORM_GROUP=135, CURRENT_PATH=136, CURRENT_ROLE=137, + CURRENT_TIME=138, CURRENT_TIMESTAMP=139, CURRENT_TRANSFORM_GROUP_FOR_TYPE=140, + CURRENT_USER=141, CURSOR=142, CURSOR_NAME=143, CYCLE=144, DATA=145, DATABASE=146, + DATE=147, DATETIME_INTERVAL_CODE=148, DATETIME_INTERVAL_PRECISION=149, + DAY=150, DEALLOCATE=151, DEC=152, DECIMAL=153, DECLARE=154, DEFAULT=155, + DEFAULTS=156, DEFERABLE=157, DEFERRABLE=158, DEFERRED=159, DEFINED=160, + DEFINER=161, DEGREE=162, DELETE=163, DELIMITER=164, DELIMITERS=165, DENSE_RANK=166, + DEPENDS=167, DEPTH=168, DEREF=169, DERIVED=170, DESC=171, DESCRIBE=172, + DESCRIPTOR=173, DESTROY=174, DESTRUCTOR=175, DETERMINISTIC=176, DIAGNOSTICS=177, + DICTIONARY=178, DISABLE_P=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, + DISCONNECT=182, DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, + DROP=188, DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, + EACH=192, ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, + END=198, END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, + EXCEPTION=204, EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, + EXISTING=210, EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, + EXTERNAL=216, EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, + FINAL=222, FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, + FOREIGN=229, FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, + FREEZE=235, FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, + GENERATED=242, GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, + GREATEST=249, GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, + HOLD=255, HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, + IMMUTABLE=262, IMPLEMENTATION=263, IMPLICIT=264, IN=265, INCLUDING=266, + INCREMENT=267, INDEX=268, INDICATOR=269, INFIX=270, INHERITS=271, INITIALIZE=272, + INITIALLY=273, INNER=274, INOUT=275, INPUT=276, INSENSITIVE=277, INSERT=278, + INSTANCE=279, INSTANTIABLE=280, INSTEAD=281, INT=282, INTEGER=283, INTERSECT=284, + INTERSECTION=285, INTERVAL=286, INTO=287, INVOKER=288, IS=289, ISOLATION=290, + ITERATE=291, JOIN=292, K_=293, KEY=294, KEY_MEMBER=295, KEY_TYPE=296, + LABEL=297, LANCOMPILER=298, LANGUAGE=299, LARGE=300, LAST=301, LATERAL=302, + LEADING=303, LEAST=304, LEFT=305, LENGTH=306, LESS=307, LEVEL=308, LIKE=309, + LIMIT=310, LISTEN=311, LN=312, LOAD=313, LOCAL=314, LOCALTIME=315, LOCALTIMESTAMP=316, + LOCATION=317, LOCATOR=318, LOCK=319, LOCKED=320, LOWER=321, M_=322, MAIN=323, + MAP=324, MAPPING=325, MATCH=326, MATCH_SIMPLE=327, MATCHED=328, MAX=329, + MAXVALUE=330, MEMBER=331, MERGE=332, MESSAGE_LENGTH=333, MESSAGE_OCTET_LENGTH=334, + MESSAGE_TEXT=335, METHOD=336, MIN=337, MINUTE=338, MINVALUE=339, MOD=340, + MODE=341, MODIFIES=342, MODIFY=343, MODULE=344, MONTH=345, MORE_=346, + MOVE=347, MULTISET=348, MUMPS=349, NAME=350, NAMES=351, NATIONAL=352, + NATURAL=353, NCHAR=354, NCLOB=355, NESTING=356, NEW=357, NEXT=358, NO=359, + NOCREATEDB=360, NOCREATEUSER=361, NONE=362, NORMALIZE=363, NORMALIZED=364, + NOT=365, NOTHING=366, NOTIFY=367, NOTNULL=368, NOWAIT=369, NULL=370, NULLABLE=371, + NULLIF=372, NULLS=373, NUMBER=374, NUMERIC=375, OBJECT=376, OCTET_LENGTH=377, + OCTETS=378, OF=379, OFF=380, OFFSET=381, OIDS=382, OLD=383, ON=384, ONLY=385, + OPEN=386, OPERATION=387, OPERATOR=388, OPTION=389, OPTIONS=390, OR=391, + ORDER=392, ORDERING=393, ORDINALITY=394, OTHERS=395, OUT=396, OUTER=397, + OUTPUT=398, OVER=399, OVERLAPS=400, OVERLAY=401, OVERRIDING=402, OWNER=403, + PAD=404, PARAMETER=405, PARAMETER_MODE=406, PARAMETER_NAME=407, PARAMETER_ORDINAL_POSITION=408, + PARAMETER_SPECIFIC_CATALOG=409, PARAMETER_SPECIFIC_NAME=410, PARAMETER_SPECIFIC_SCHEMA=411, + PARAMETERS=412, PARSER=413, PARTIAL=414, PARTITION=415, PASCAL=416, PASSWORD=417, + PATH=418, PERCENT_RANK=419, PERCENTILE_CONT=420, PERCENTILE_DISC=421, + PLACING=422, PLAIN=423, PLANS=424, PLI=425, POSITION=426, POSTFIX=427, + POWER=428, PRECEDING=429, PRECISION=430, PREFIX=431, PREORDER=432, PREPARE=433, + PREPARED=434, PRESERVE=435, PRIMARY=436, PRIOR=437, PRIVILEGES=438, PROCEDURAL=439, + PROCEDURE=440, PUBLIC=441, PUBLICATION=442, QUOTE=443, RANGE=444, RANK=445, + READ=446, READS=447, REAL=448, REASSIGN=449, RECHECK=450, RECURSIVE=451, + REF=452, REFERENCES=453, REFERENCING=454, REFRESH=455, REGR_AVGX=456, + REGR_AVGY=457, REGR_COUNT=458, REGR_INTERCEPT=459, REGR_R2=460, REGR_SLOPE=461, + REGR_SXX=462, REGR_SXY=463, REGR_SYY=464, REINDEX=465, RELATIVE=466, RELEASE=467, + RENAME=468, REPEATABLE=469, REPLACE=470, REPLICA=471, RESET=472, RESTART=473, + RESTRICT=474, RESULT=475, RETURN=476, RETURNED_CARDINALITY=477, RETURNED_LENGTH=478, + RETURNED_OCTET_LENGTH=479, RETURNED_SQLSTATE=480, RETURNING=481, RETURNS=482, + REVOKE=483, RIGHT=484, ROLE=485, ROLLBACK=486, ROLLUP=487, ROUTINE=488, + ROUTINE_CATALOG=489, ROUTINE_NAME=490, ROUTINE_SCHEMA=491, ROW=492, ROW_COUNT=493, + ROW_NUMBER=494, ROWS=495, RULE=496, SAVEPOINT=497, SCALE=498, SCHEMA=499, + SCHEMA_NAME=500, SCOPE=501, SCOPE_CATALOG=502, SCOPE_NAME=503, SCOPE_SCHEMA=504, + SCROLL=505, SEARCH=506, SECOND=507, SECTION=508, SECURITY=509, SELECT=510, + SELF=511, SENSITIVE=512, SEQUENCE=513, SEQUENCES=514, SERIALIZABLE=515, + SERVER_NAME=516, SESSION=517, SESSION_USER=518, SET=519, SETOF=520, SETS=521, + SHARE=522, SHOW=523, SIMILAR=524, SIMPLE=525, SIZE=526, SKIP_=527, SMALLINT=528, + SNAPSHOT=529, SOME=530, SOURCE=531, SPACE=532, SPECIFIC=533, SPECIFIC_NAME=534, + SPECIFICTYPE=535, SQL=536, SQLCODE=537, SQLERROR=538, SQLEXCEPTION=539, + SQLSTATE=540, SQLWARNING=541, SQRT=542, STABLE=543, START=544, STATE=545, + STATEMENT=546, STATIC=547, STATISTICS=548, STDDEV_POP=549, STDDEV_SAMP=550, + STDIN=551, STDOUT=552, STORAGE=553, STRICT=554, STRUCTURE=555, STYLE=556, + SUBCLASS_ORIGIN=557, SUBLIST=558, SUBMULTISET=559, SUBSCRIPTION=560, SUBSTRING=561, + SUM=562, SYMMETRIC=563, SYSID=564, SYSTEM=565, SYSTEM_USER=566, TABLE=567, + TABLE_NAME=568, TABLESAMPLE=569, TABLESPACE=570, TEMP=571, TEMPLATE=572, + TEMPORARY=573, TERMINATE=574, THAN=575, THEN=576, TIES=577, TIME=578, + TIMESTAMP=579, TIMEZONE_HOUR=580, TIMEZONE_MINUTE=581, TIMING=582, TO=583, + TOAST=584, TOP_LEVEL_COUNT=585, TRAILING=586, TRANSACTION=587, TRANSACTION_ACTIVE=588, + TRANSACTIONS_COMMITTED=589, TRANSACTIONS_ROLLED_BACK=590, TRANSFORM=591, + TRANSFORMS=592, TRANSLATE=593, TRANSLATION=594, TREAT=595, TRIGGER=596, + TRIGGER_CATALOG=597, TRIGGER_NAME=598, TRIGGER_SCHEMA=599, TRIM=600, TRUE=601, + TRUNCATE=602, TRUSTED=603, TYPE=604, UESCAPE=605, UNBOUNDED=606, UNCOMMITTED=607, + UNDER=608, UNENCRYPTED=609, UNION=610, UNIQUE=611, UNKNOWN=612, UNLISTEN=613, + UNNAMED=614, UNNEST=615, UNTIL=616, UPDATE=617, UPPER=618, USAGE=619, + USER=620, USER_DEFINED_TYPE_CATALOG=621, USER_DEFINED_TYPE_CODE=622, USER_DEFINED_TYPE_NAME=623, + USER_DEFINED_TYPE_SCHEMA=624, USING=625, VACUUM=626, VALID=627, VALIDATE=628, + VALIDATOR=629, VALUE=630, VALUES=631, VAR_POP=632, VAR_SAMP=633, VARCHAR=634, + VARIABLE=635, VARIADIC=636, VARYING=637, VERBOSE=638, VIEW=639, VOLATILE=640, + WHEN=641, WHENEVER=642, WHERE=643, WIDTH_BUCKET=644, WINDOW=645, WITH=646, + WITHIN=647, WITHOUT=648, WORK=649, WRITE=650, YAML=651, YEAR=652, YES=653, + ZONE=654, SUPERUSER=655, NOSUPERUSER=656, CREATEROLE=657, NOCREATEROLE=658, + INHERIT=659, NOINHERIT=660, LOGIN=661, NOLOGIN=662, REPLICATION=663, NOREPLICATION=664, + BYPASSRLS=665, NOBYPASSRLS=666, SFUNC=667, STYPE=668, SSPACE=669, FINALFUNC=670, + FINALFUNC_EXTRA=671, COMBINEFUNC=672, SERIALFUNC=673, DESERIALFUNC=674, + INITCOND=675, MSFUNC=676, MINVFUNC=677, MSTYPE=678, MSSPACE=679, MFINALFUNC=680, + MFINALFUNC_EXTRA=681, MINITCOND=682, SORTOP=683, PARALLEL=684, HYPOTHETICAL=685, + SAFE=686, UNSAFE=687, BASETYPE=688, IF=689, LOCALE=690, LC_COLLATE=691, + LC_CTYPE=692, PROVIDER=693, VERSION=694, ALLOW_CONNECTIONS=695, IS_TEMPLATE=696, + EVENT=697, WRAPPER=698, SERVER=699, BTREE=700, HASH_=701, GIST=702, SPGIST=703, + GIN=704, BRIN=705, CONCURRENTLY=706, INLINE=707, MATERIALIZED=708, LEFTARG=709, + RIGHTARG=710, COMMUTATOR=711, NEGATOR=712, HASHES=713, MERGES=714, FAMILY=715, + POLICY=716, OWNED=717, ABSTIME=718, BIGSERIAL=719, BIT_VARYING=720, BOOL=721, + BOX=722, BYTEA=723, CHARACTER_VARYING=724, CIDR=725, CIRCLE=726, FLOAT4=727, + FLOAT8=728, INET=729, INT2=730, INT4=731, INT8=732, JSON=733, JSONB=734, + LINE=735, LSEG=736, MACADDR=737, MACADDR8=738, MONEY=739, PG_LSN=740, + POINT=741, POLYGON=742, RELTIME=743, SERIAL=744, SERIAL2=745, SERIAL4=746, + SERIAL8=747, SMALLSERIAL=748, STSTEM=749, TEXT=750, TIMESTAMPTZ=751, TIMETZ=752, + TSQUERY=753, TSVECTOR=754, TXID_SNAPSHOT=755, UUID=756, VARBIT=757, XML=758, + COMMA=759, COLON=760, COLON_COLON=761, DOLLAR=762, DOLLAR_DOLLAR=763, + STAR=764, OPEN_PAREN=765, CLOSE_PAREN=766, OPEN_BRACKET=767, CLOSE_BRACKET=768, + BIT_STRING=769, REGEX_STRING=770, NUMERIC_LITERAL=771, INTEGER_LITERAL=772, + HEX_INTEGER_LITERAL=773, DOT=774, SINGLEQ_STRING_LITERAL=775, DOUBLEQ_STRING_LITERAL=776, + IDENTIFIER=777, DOLLAR_DEC=778, IDENTIFIER_UNICODE=779, AMP=780, AMP_AMP=781, + AMP_LT=782, AT_AT=783, AT_GT=784, AT_SIGN=785, BANG=786, BANG_BANG=787, + BANG_EQUAL=788, CARET=789, EQUAL=790, EQUAL_GT=791, GT=792, GTE=793, GT_GT=794, + HASH=795, HASH_EQ=796, HASH_GT=797, HASH_GT_GT=798, HASH_HASH=799, HYPHEN_GT=800, + HYPHEN_GT_GT=801, HYPHEN_PIPE_HYPHEN=802, LT=803, LTE=804, LT_AT=805, + LT_CARET=806, LT_GT=807, LT_HYPHEN_GT=808, LT_LT=809, LT_LT_EQ=810, LT_QMARK_GT=811, + MINUS=812, PERCENT=813, PIPE=814, PIPE_PIPE=815, PIPE_PIPE_SLASH=816, + PIPE_SLASH=817, PLUS=818, QMARK=819, QMARK_AMP=820, QMARK_HASH=821, QMARK_HYPHEN=822, + QMARK_PIPE=823, SLASH=824, TIL=825, TIL_EQ=826, TIL_GTE_TIL=827, TIL_GT_TIL=828, + TIL_LTE_TIL=829, TIL_LT_TIL=830, TIL_STAR=831, TIL_TIL=832, SEMI=833; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; - private static final String[] _LITERAL_NAMES = { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", - "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, - null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", - "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", - "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", - "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", - "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", - "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", - "';'" - }; - private static final String[] _SYMBOLIC_NAMES = { - null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", - "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", - "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", - "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", - "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", - "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", - "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", - "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", - "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", - "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", - "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", - "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", - "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", - "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", - "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", - "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", - "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", - "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", - "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", - "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", - "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", - "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", - "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", - "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", - "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", - "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", - "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", - "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", - "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", - "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", - "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", - "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", - "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", - "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", - "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", - "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", - "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", - "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", - "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", - "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", - "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", - "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", - "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", - "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", - "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", - "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", - "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", - "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", - "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", - "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", - "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", - "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", - "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", - "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", - "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", - "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", - "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", - "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", - "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", - "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", - "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", - "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", - "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", - "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", - "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", - "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", - "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", - "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", - "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", - "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", - "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", - "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", - "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", - "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", - "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", - "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", - "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", - "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", - "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", - "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", - "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", - "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", - "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", - "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", - "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", - "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", - "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", - "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", - "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", - "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", - "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", - "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", - "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", - "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", - "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", - "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", - "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", - "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", - "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", - "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", - "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", - "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", - "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", - "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", - "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", - "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", - "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", - "HYPOTHETICAL", "SAFE", "RESTRICTED", "UNSAFE", "BASETYPE", "IF", "LOCALE", - "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", - "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", - "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", - "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", - "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", - "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", - "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", - "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", - "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", - "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", - "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", - "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", - "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", - "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", - "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", - "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", - "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", - "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", - "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", - "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", - "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", - "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" - }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + public static String[] modeNames = { + "DEFAULT_MODE" + }; - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; + public static final String[] ruleNames = { + "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A", "B", "C", "D", "E", + "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", + "T", "U", "V", "W", "X", "Y", "Z", "HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", + "SQUOTA_STRING", "BQUOTA_STRING", "A_", "ABORT", "ABS", "ABSOLUTE", "ACCESS", + "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", + "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", + "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", + "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", "AUTHORIZATION", + "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", "BIGINT", + "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", "BOTH", "BREADTH", + "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", "CASCADE", + "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", "CEILING", + "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", "CHARACTER_SET_CATALOG", + "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CHARACTERISTICS", "CHARACTERS", + "CHECK", "CHECKED", "CHECKPOINT", "CLASS", "CLASS_ORIGIN", "CLOB", "CLOSE", + "CLUSTER", "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLLATION_CATALOG", + "COLLATION_NAME", "COLLATION_SCHEMA", "COLLECT", "COLUMN", "COLUMN_NAME", + "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMENT", "COMMIT", "COMMITTED", + "COMPLETION", "CONDITION", "CONDITION_NUMBER", "CONFIGURATION", "CONFLICT", + "CONNECT", "CONNECTION", "CONNECTION_NAME", "CONSTRAINT", "CONSTRAINT_CATALOG", + "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", "COPY", "CORR", "CORRESPONDING", + "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CREATEDB", "CREATEUSER", + "CROSS", "CSV", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", + "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", + "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", + "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", + "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", + "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", + "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", + "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", + "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", + "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", + "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", + "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", + "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", + "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", + "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", + "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", + "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", + "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", + "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", + "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", + "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", + "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", + "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", + "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", + "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", + "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", + "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", + "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", + "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", + "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", + "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", + "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", + "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", + "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", + "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", + "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", + "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", + "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", + "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", + "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", + "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", + "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", + "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", + "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", + "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", + "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", + "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", + "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", + "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", + "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", + "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", + "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", + "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", + "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", + "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", + "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", + "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", + "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", + "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", + "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", + "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", + "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", + "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", + "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", + "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", + "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", + "HYPOTHETICAL", "SAFE", "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", + "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", + "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", "SPGIST", "GIN", + "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", "RIGHTARG", + "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", "OWNED", + "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", + "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", "INT4", "INT8", + "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", "MONEY", "PG_LSN", + "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", + "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", + "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", + "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", + "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", + "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", + "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", + "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", + "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", + "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", + "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", + "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", + "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", + "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", "TIL_LTE_TIL", + "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } + private static final String[] _LITERAL_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", "')'", + "'['", "']'", null, null, null, null, null, "'.'", null, null, null, null, + null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", "'!!'", "'!='", + "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", "'#>'", "'#>>'", + "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", "'<^'", "'<>'", + "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", "'||'", "'||/'", + "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", "'/'", "'~'", "'~='", + "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", "';'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", + "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", + "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", + "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", + "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", + "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", + "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", + "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", + "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", + "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", + "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", + "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", + "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", + "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", + "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", + "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", + "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", + "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", + "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", + "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", + "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", + "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", + "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", + "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", + "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", + "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", + "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", + "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", + "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", + "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", + "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", + "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", + "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", + "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", + "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", + "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", + "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", + "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", + "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", + "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", + "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", + "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", + "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", + "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", + "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", + "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", + "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", + "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", + "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", + "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", + "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", + "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", + "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", + "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", + "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", + "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", + "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", + "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", + "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", + "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", + "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", + "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", + "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", + "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", + "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", + "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", + "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", + "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", + "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", + "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", + "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", + "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", + "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", + "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", + "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", + "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", + "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", + "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", + "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", + "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", + "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", + "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", + "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", + "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", + "HYPOTHETICAL", "SAFE", "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", + "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", + "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", "SPGIST", "GIN", + "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", "RIGHTARG", + "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", "OWNED", + "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", + "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", "INT4", "INT8", + "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", "MONEY", "PG_LSN", + "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", + "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", + "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", + "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", + "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", + "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", + "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", + "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", + "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", + "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", + "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", + "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", + "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", + "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", "TIL_LTE_TIL", + "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } - @Override + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } - public Vocabulary getVocabulary() { - return VOCABULARY; - } + @Override + public Vocabulary getVocabulary() { + return VOCABULARY; + } - public PostgreSQLLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache); - } - @Override - public String getGrammarFileName() { - return "PostgreSQLLexer.g4"; - } + public PostgreSQLLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } - @Override - public String[] getRuleNames() { - return ruleNames; - } + @Override + public String getGrammarFileName() { return "PostgreSQLLexer.g4"; } - @Override - public String getSerializedATN() { - return _serializedATN; - } + @Override + public String[] getRuleNames() { return ruleNames; } - @Override - public String[] getChannelNames() { - return channelNames; - } + @Override + public String getSerializedATN() { return _serializedATN; } - @Override - public String[] getModeNames() { - return modeNames; - } + @Override + public String[] getChannelNames() { return channelNames; } - @Override - public ATN getATN() { - return _ATN; - } + @Override + public String[] getModeNames() { return modeNames; } - private static final int _serializedATNSegments = 4; - private static final String _serializedATNSegment0 = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u0344\u21e7\b\1\4" + - "\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n" + - "\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22" + - "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31" + - "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t" + - " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t" + - "+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64" + - "\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t" + - "=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4" + - "I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\t" + - "T\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_" + - "\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k" + - "\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv" + - "\4w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t" + - "\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084" + - "\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089" + - "\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d" + - "\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092" + - "\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096" + - "\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b" + - "\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f" + - "\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4" + - "\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8" + - "\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad" + - "\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1" + - "\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6" + - "\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba" + - "\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf" + - "\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3" + - "\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8" + - "\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc" + - "\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1" + - "\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5" + - "\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da" + - "\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de" + - "\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3" + - "\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7" + - "\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec" + - "\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0" + - "\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5" + - "\t\u00f5\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9" + - "\4\u00fa\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe" + - "\t\u00fe\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102" + - "\4\u0103\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107" + - "\t\u0107\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\4\u010b\t\u010b" + - "\4\u010c\t\u010c\4\u010d\t\u010d\4\u010e\t\u010e\4\u010f\t\u010f\4\u0110" + - "\t\u0110\4\u0111\t\u0111\4\u0112\t\u0112\4\u0113\t\u0113\4\u0114\t\u0114" + - "\4\u0115\t\u0115\4\u0116\t\u0116\4\u0117\t\u0117\4\u0118\t\u0118\4\u0119" + - "\t\u0119\4\u011a\t\u011a\4\u011b\t\u011b\4\u011c\t\u011c\4\u011d\t\u011d" + - "\4\u011e\t\u011e\4\u011f\t\u011f\4\u0120\t\u0120\4\u0121\t\u0121\4\u0122" + - "\t\u0122\4\u0123\t\u0123\4\u0124\t\u0124\4\u0125\t\u0125\4\u0126\t\u0126" + - "\4\u0127\t\u0127\4\u0128\t\u0128\4\u0129\t\u0129\4\u012a\t\u012a\4\u012b" + - "\t\u012b\4\u012c\t\u012c\4\u012d\t\u012d\4\u012e\t\u012e\4\u012f\t\u012f" + - "\4\u0130\t\u0130\4\u0131\t\u0131\4\u0132\t\u0132\4\u0133\t\u0133\4\u0134" + - "\t\u0134\4\u0135\t\u0135\4\u0136\t\u0136\4\u0137\t\u0137\4\u0138\t\u0138" + - "\4\u0139\t\u0139\4\u013a\t\u013a\4\u013b\t\u013b\4\u013c\t\u013c\4\u013d" + - "\t\u013d\4\u013e\t\u013e\4\u013f\t\u013f\4\u0140\t\u0140\4\u0141\t\u0141" + - "\4\u0142\t\u0142\4\u0143\t\u0143\4\u0144\t\u0144\4\u0145\t\u0145\4\u0146" + - "\t\u0146\4\u0147\t\u0147\4\u0148\t\u0148\4\u0149\t\u0149\4\u014a\t\u014a" + - "\4\u014b\t\u014b\4\u014c\t\u014c\4\u014d\t\u014d\4\u014e\t\u014e\4\u014f" + - "\t\u014f\4\u0150\t\u0150\4\u0151\t\u0151\4\u0152\t\u0152\4\u0153\t\u0153" + - "\4\u0154\t\u0154\4\u0155\t\u0155\4\u0156\t\u0156\4\u0157\t\u0157\4\u0158" + - "\t\u0158\4\u0159\t\u0159\4\u015a\t\u015a\4\u015b\t\u015b\4\u015c\t\u015c" + - "\4\u015d\t\u015d\4\u015e\t\u015e\4\u015f\t\u015f\4\u0160\t\u0160\4\u0161" + - "\t\u0161\4\u0162\t\u0162\4\u0163\t\u0163\4\u0164\t\u0164\4\u0165\t\u0165" + - "\4\u0166\t\u0166\4\u0167\t\u0167\4\u0168\t\u0168\4\u0169\t\u0169\4\u016a" + - "\t\u016a\4\u016b\t\u016b\4\u016c\t\u016c\4\u016d\t\u016d\4\u016e\t\u016e" + - "\4\u016f\t\u016f\4\u0170\t\u0170\4\u0171\t\u0171\4\u0172\t\u0172\4\u0173" + - "\t\u0173\4\u0174\t\u0174\4\u0175\t\u0175\4\u0176\t\u0176\4\u0177\t\u0177" + - "\4\u0178\t\u0178\4\u0179\t\u0179\4\u017a\t\u017a\4\u017b\t\u017b\4\u017c" + - "\t\u017c\4\u017d\t\u017d\4\u017e\t\u017e\4\u017f\t\u017f\4\u0180\t\u0180" + - "\4\u0181\t\u0181\4\u0182\t\u0182\4\u0183\t\u0183\4\u0184\t\u0184\4\u0185" + - "\t\u0185\4\u0186\t\u0186\4\u0187\t\u0187\4\u0188\t\u0188\4\u0189\t\u0189" + - "\4\u018a\t\u018a\4\u018b\t\u018b\4\u018c\t\u018c\4\u018d\t\u018d\4\u018e" + - "\t\u018e\4\u018f\t\u018f\4\u0190\t\u0190\4\u0191\t\u0191\4\u0192\t\u0192" + - "\4\u0193\t\u0193\4\u0194\t\u0194\4\u0195\t\u0195\4\u0196\t\u0196\4\u0197" + - "\t\u0197\4\u0198\t\u0198\4\u0199\t\u0199\4\u019a\t\u019a\4\u019b\t\u019b" + - "\4\u019c\t\u019c\4\u019d\t\u019d\4\u019e\t\u019e\4\u019f\t\u019f\4\u01a0" + - "\t\u01a0\4\u01a1\t\u01a1\4\u01a2\t\u01a2\4\u01a3\t\u01a3\4\u01a4\t\u01a4" + - "\4\u01a5\t\u01a5\4\u01a6\t\u01a6\4\u01a7\t\u01a7\4\u01a8\t\u01a8\4\u01a9" + - "\t\u01a9\4\u01aa\t\u01aa\4\u01ab\t\u01ab\4\u01ac\t\u01ac\4\u01ad\t\u01ad" + - "\4\u01ae\t\u01ae\4\u01af\t\u01af\4\u01b0\t\u01b0\4\u01b1\t\u01b1\4\u01b2" + - "\t\u01b2\4\u01b3\t\u01b3\4\u01b4\t\u01b4\4\u01b5\t\u01b5\4\u01b6\t\u01b6" + - "\4\u01b7\t\u01b7\4\u01b8\t\u01b8\4\u01b9\t\u01b9\4\u01ba\t\u01ba\4\u01bb" + - "\t\u01bb\4\u01bc\t\u01bc\4\u01bd\t\u01bd\4\u01be\t\u01be\4\u01bf\t\u01bf" + - "\4\u01c0\t\u01c0\4\u01c1\t\u01c1\4\u01c2\t\u01c2\4\u01c3\t\u01c3\4\u01c4" + - "\t\u01c4\4\u01c5\t\u01c5\4\u01c6\t\u01c6\4\u01c7\t\u01c7\4\u01c8\t\u01c8" + - "\4\u01c9\t\u01c9\4\u01ca\t\u01ca\4\u01cb\t\u01cb\4\u01cc\t\u01cc\4\u01cd" + - "\t\u01cd\4\u01ce\t\u01ce\4\u01cf\t\u01cf\4\u01d0\t\u01d0\4\u01d1\t\u01d1" + - "\4\u01d2\t\u01d2\4\u01d3\t\u01d3\4\u01d4\t\u01d4\4\u01d5\t\u01d5\4\u01d6" + - "\t\u01d6\4\u01d7\t\u01d7\4\u01d8\t\u01d8\4\u01d9\t\u01d9\4\u01da\t\u01da" + - "\4\u01db\t\u01db\4\u01dc\t\u01dc\4\u01dd\t\u01dd\4\u01de\t\u01de\4\u01df" + - "\t\u01df\4\u01e0\t\u01e0\4\u01e1\t\u01e1\4\u01e2\t\u01e2\4\u01e3\t\u01e3" + - "\4\u01e4\t\u01e4\4\u01e5\t\u01e5\4\u01e6\t\u01e6\4\u01e7\t\u01e7\4\u01e8" + - "\t\u01e8\4\u01e9\t\u01e9\4\u01ea\t\u01ea\4\u01eb\t\u01eb\4\u01ec\t\u01ec" + - "\4\u01ed\t\u01ed\4\u01ee\t\u01ee\4\u01ef\t\u01ef\4\u01f0\t\u01f0\4\u01f1" + - "\t\u01f1\4\u01f2\t\u01f2\4\u01f3\t\u01f3\4\u01f4\t\u01f4\4\u01f5\t\u01f5" + - "\4\u01f6\t\u01f6\4\u01f7\t\u01f7\4\u01f8\t\u01f8\4\u01f9\t\u01f9\4\u01fa" + - "\t\u01fa\4\u01fb\t\u01fb\4\u01fc\t\u01fc\4\u01fd\t\u01fd\4\u01fe\t\u01fe" + - "\4\u01ff\t\u01ff\4\u0200\t\u0200\4\u0201\t\u0201\4\u0202\t\u0202\4\u0203" + - "\t\u0203\4\u0204\t\u0204\4\u0205\t\u0205\4\u0206\t\u0206\4\u0207\t\u0207" + - "\4\u0208\t\u0208\4\u0209\t\u0209\4\u020a\t\u020a\4\u020b\t\u020b\4\u020c" + - "\t\u020c\4\u020d\t\u020d\4\u020e\t\u020e\4\u020f\t\u020f\4\u0210\t\u0210" + - "\4\u0211\t\u0211\4\u0212\t\u0212\4\u0213\t\u0213\4\u0214\t\u0214\4\u0215" + - "\t\u0215\4\u0216\t\u0216\4\u0217\t\u0217\4\u0218\t\u0218\4\u0219\t\u0219" + - "\4\u021a\t\u021a\4\u021b\t\u021b\4\u021c\t\u021c\4\u021d\t\u021d\4\u021e" + - "\t\u021e\4\u021f\t\u021f\4\u0220\t\u0220\4\u0221\t\u0221\4\u0222\t\u0222" + - "\4\u0223\t\u0223\4\u0224\t\u0224\4\u0225\t\u0225\4\u0226\t\u0226\4\u0227" + - "\t\u0227\4\u0228\t\u0228\4\u0229\t\u0229\4\u022a\t\u022a\4\u022b\t\u022b" + - "\4\u022c\t\u022c\4\u022d\t\u022d\4\u022e\t\u022e\4\u022f\t\u022f\4\u0230" + - "\t\u0230\4\u0231\t\u0231\4\u0232\t\u0232\4\u0233\t\u0233\4\u0234\t\u0234" + - "\4\u0235\t\u0235\4\u0236\t\u0236\4\u0237\t\u0237\4\u0238\t\u0238\4\u0239" + - "\t\u0239\4\u023a\t\u023a\4\u023b\t\u023b\4\u023c\t\u023c\4\u023d\t\u023d" + - "\4\u023e\t\u023e\4\u023f\t\u023f\4\u0240\t\u0240\4\u0241\t\u0241\4\u0242" + - "\t\u0242\4\u0243\t\u0243\4\u0244\t\u0244\4\u0245\t\u0245\4\u0246\t\u0246" + - "\4\u0247\t\u0247\4\u0248\t\u0248\4\u0249\t\u0249\4\u024a\t\u024a\4\u024b" + - "\t\u024b\4\u024c\t\u024c\4\u024d\t\u024d\4\u024e\t\u024e\4\u024f\t\u024f" + - "\4\u0250\t\u0250\4\u0251\t\u0251\4\u0252\t\u0252\4\u0253\t\u0253\4\u0254" + - "\t\u0254\4\u0255\t\u0255\4\u0256\t\u0256\4\u0257\t\u0257\4\u0258\t\u0258" + - "\4\u0259\t\u0259\4\u025a\t\u025a\4\u025b\t\u025b\4\u025c\t\u025c\4\u025d" + - "\t\u025d\4\u025e\t\u025e\4\u025f\t\u025f\4\u0260\t\u0260\4\u0261\t\u0261" + - "\4\u0262\t\u0262\4\u0263\t\u0263\4\u0264\t\u0264\4\u0265\t\u0265\4\u0266" + - "\t\u0266\4\u0267\t\u0267\4\u0268\t\u0268\4\u0269\t\u0269\4\u026a\t\u026a" + - "\4\u026b\t\u026b\4\u026c\t\u026c\4\u026d\t\u026d\4\u026e\t\u026e\4\u026f" + - "\t\u026f\4\u0270\t\u0270\4\u0271\t\u0271\4\u0272\t\u0272\4\u0273\t\u0273" + - "\4\u0274\t\u0274\4\u0275\t\u0275\4\u0276\t\u0276\4\u0277\t\u0277\4\u0278" + - "\t\u0278\4\u0279\t\u0279\4\u027a\t\u027a\4\u027b\t\u027b\4\u027c\t\u027c" + - "\4\u027d\t\u027d\4\u027e\t\u027e\4\u027f\t\u027f\4\u0280\t\u0280\4\u0281" + - "\t\u0281\4\u0282\t\u0282\4\u0283\t\u0283\4\u0284\t\u0284\4\u0285\t\u0285" + - "\4\u0286\t\u0286\4\u0287\t\u0287\4\u0288\t\u0288\4\u0289\t\u0289\4\u028a" + - "\t\u028a\4\u028b\t\u028b\4\u028c\t\u028c\4\u028d\t\u028d\4\u028e\t\u028e" + - "\4\u028f\t\u028f\4\u0290\t\u0290\4\u0291\t\u0291\4\u0292\t\u0292\4\u0293" + - "\t\u0293\4\u0294\t\u0294\4\u0295\t\u0295\4\u0296\t\u0296\4\u0297\t\u0297" + - "\4\u0298\t\u0298\4\u0299\t\u0299\4\u029a\t\u029a\4\u029b\t\u029b\4\u029c" + - "\t\u029c\4\u029d\t\u029d\4\u029e\t\u029e\4\u029f\t\u029f\4\u02a0\t\u02a0" + - "\4\u02a1\t\u02a1\4\u02a2\t\u02a2\4\u02a3\t\u02a3\4\u02a4\t\u02a4\4\u02a5" + - "\t\u02a5\4\u02a6\t\u02a6\4\u02a7\t\u02a7\4\u02a8\t\u02a8\4\u02a9\t\u02a9" + - "\4\u02aa\t\u02aa\4\u02ab\t\u02ab\4\u02ac\t\u02ac\4\u02ad\t\u02ad\4\u02ae" + - "\t\u02ae\4\u02af\t\u02af\4\u02b0\t\u02b0\4\u02b1\t\u02b1\4\u02b2\t\u02b2" + - "\4\u02b3\t\u02b3\4\u02b4\t\u02b4\4\u02b5\t\u02b5\4\u02b6\t\u02b6\4\u02b7" + - "\t\u02b7\4\u02b8\t\u02b8\4\u02b9\t\u02b9\4\u02ba\t\u02ba\4\u02bb\t\u02bb" + - "\4\u02bc\t\u02bc\4\u02bd\t\u02bd\4\u02be\t\u02be\4\u02bf\t\u02bf\4\u02c0" + - "\t\u02c0\4\u02c1\t\u02c1\4\u02c2\t\u02c2\4\u02c3\t\u02c3\4\u02c4\t\u02c4" + - "\4\u02c5\t\u02c5\4\u02c6\t\u02c6\4\u02c7\t\u02c7\4\u02c8\t\u02c8\4\u02c9" + - "\t\u02c9\4\u02ca\t\u02ca\4\u02cb\t\u02cb\4\u02cc\t\u02cc\4\u02cd\t\u02cd" + - "\4\u02ce\t\u02ce\4\u02cf\t\u02cf\4\u02d0\t\u02d0\4\u02d1\t\u02d1\4\u02d2" + - "\t\u02d2\4\u02d3\t\u02d3\4\u02d4\t\u02d4\4\u02d5\t\u02d5\4\u02d6\t\u02d6" + - "\4\u02d7\t\u02d7\4\u02d8\t\u02d8\4\u02d9\t\u02d9\4\u02da\t\u02da\4\u02db" + - "\t\u02db\4\u02dc\t\u02dc\4\u02dd\t\u02dd\4\u02de\t\u02de\4\u02df\t\u02df" + - "\4\u02e0\t\u02e0\4\u02e1\t\u02e1\4\u02e2\t\u02e2\4\u02e3\t\u02e3\4\u02e4" + - "\t\u02e4\4\u02e5\t\u02e5\4\u02e6\t\u02e6\4\u02e7\t\u02e7\4\u02e8\t\u02e8" + - "\4\u02e9\t\u02e9\4\u02ea\t\u02ea\4\u02eb\t\u02eb\4\u02ec\t\u02ec\4\u02ed" + - "\t\u02ed\4\u02ee\t\u02ee\4\u02ef\t\u02ef\4\u02f0\t\u02f0\4\u02f1\t\u02f1" + - "\4\u02f2\t\u02f2\4\u02f3\t\u02f3\4\u02f4\t\u02f4\4\u02f5\t\u02f5\4\u02f6" + - "\t\u02f6\4\u02f7\t\u02f7\4\u02f8\t\u02f8\4\u02f9\t\u02f9\4\u02fa\t\u02fa" + - "\4\u02fb\t\u02fb\4\u02fc\t\u02fc\4\u02fd\t\u02fd\4\u02fe\t\u02fe\4\u02ff" + - "\t\u02ff\4\u0300\t\u0300\4\u0301\t\u0301\4\u0302\t\u0302\4\u0303\t\u0303" + - "\4\u0304\t\u0304\4\u0305\t\u0305\4\u0306\t\u0306\4\u0307\t\u0307\4\u0308" + - "\t\u0308\4\u0309\t\u0309\4\u030a\t\u030a\4\u030b\t\u030b\4\u030c\t\u030c" + - "\4\u030d\t\u030d\4\u030e\t\u030e\4\u030f\t\u030f\4\u0310\t\u0310\4\u0311" + - "\t\u0311\4\u0312\t\u0312\4\u0313\t\u0313\4\u0314\t\u0314\4\u0315\t\u0315" + - "\4\u0316\t\u0316\4\u0317\t\u0317\4\u0318\t\u0318\4\u0319\t\u0319\4\u031a" + - "\t\u031a\4\u031b\t\u031b\4\u031c\t\u031c\4\u031d\t\u031d\4\u031e\t\u031e" + - "\4\u031f\t\u031f\4\u0320\t\u0320\4\u0321\t\u0321\4\u0322\t\u0322\4\u0323" + - "\t\u0323\4\u0324\t\u0324\4\u0325\t\u0325\4\u0326\t\u0326\4\u0327\t\u0327" + - "\4\u0328\t\u0328\4\u0329\t\u0329\4\u032a\t\u032a\4\u032b\t\u032b\4\u032c" + - "\t\u032c\4\u032d\t\u032d\4\u032e\t\u032e\4\u032f\t\u032f\4\u0330\t\u0330" + - "\4\u0331\t\u0331\4\u0332\t\u0332\4\u0333\t\u0333\4\u0334\t\u0334\4\u0335" + - "\t\u0335\4\u0336\t\u0336\4\u0337\t\u0337\4\u0338\t\u0338\4\u0339\t\u0339" + - "\4\u033a\t\u033a\4\u033b\t\u033b\4\u033c\t\u033c\4\u033d\t\u033d\4\u033e" + - "\t\u033e\4\u033f\t\u033f\4\u0340\t\u0340\4\u0341\t\u0341\4\u0342\t\u0342" + - "\4\u0343\t\u0343\4\u0344\t\u0344\4\u0345\t\u0345\4\u0346\t\u0346\4\u0347" + - "\t\u0347\4\u0348\t\u0348\4\u0349\t\u0349\4\u034a\t\u034a\4\u034b\t\u034b" + - "\4\u034c\t\u034c\4\u034d\t\u034d\4\u034e\t\u034e\4\u034f\t\u034f\4\u0350" + - "\t\u0350\4\u0351\t\u0351\4\u0352\t\u0352\4\u0353\t\u0353\4\u0354\t\u0354" + - "\4\u0355\t\u0355\4\u0356\t\u0356\4\u0357\t\u0357\4\u0358\t\u0358\4\u0359" + - "\t\u0359\4\u035a\t\u035a\4\u035b\t\u035b\4\u035c\t\u035c\4\u035d\t\u035d" + - "\4\u035e\t\u035e\4\u035f\t\u035f\4\u0360\t\u0360\4\u0361\t\u0361\4\u0362" + - "\t\u0362\3\2\6\2\u06c7\n\2\r\2\16\2\u06c8\3\2\3\2\3\3\3\3\3\3\3\3\7\3" + - "\u06d1\n\3\f\3\16\3\u06d4\13\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\7\4" + - "\u06df\n\4\f\4\16\4\u06e2\13\4\3\4\3\4\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7" + - "\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\17\3\17" + - "\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\3\24\3\24\3\25\3\25\3\26\3\26" + - "\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35" + - "\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3!\3!\3!\3!\7!\u0726\n!\f!\16!\u0729" + - "\13!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\7\"\u0733\n\"\f\"\16\"\u0736\13\"\3" + - "\"\3\"\3#\3#\3#\3#\3#\3#\7#\u0740\n#\f#\16#\u0743\13#\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)\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.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3" + - "/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61" + - "\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64" + - "\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66" + - "\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3\67\38\38\38\38\39\39\3" + - "9\39\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>\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@\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3C\3" + - "C\3C\3C\3C\3C\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3E\3E\3E\3" + - "E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3" + - "G\3H\3H\3H\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3J\3J\3J\3J\3" + - "J\3K\3K\3K\3K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3" + - "N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3P\3Q\3" + - "Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3" + - "T\3T\3U\3U\3U\3U\3U\3U\3U\3U\3V\3V\3V\3W\3W\3X\3X\3X\3X\3X\3X\3Y\3Y\3" + - "Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\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^\3^\3^\3^\3" + - "_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3" + - "a\3a\3a\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3d\3e\3" + - "e\3e\3e\3e\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3g\3g\3" + - "g\3g\3g\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3" + - "i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3j\3j\3j\3j\3" + - "j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3k\3k\3k\3" + - "k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3" + - "l\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3n\3" + - "o\3o\3o\3o\3o\3o\3o\3o\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3q\3q\3q\3q\3" + - "q\3q\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3s\3s\3s\3s\3s\3t\3t\3t\3" + - "t\3t\3t\3u\3u\3u\3u\3u\3u\3u\3u\3v\3v\3v\3v\3v\3v\3v\3v\3v\3w\3w\3w\3" + - "w\3w\3w\3x\3x\3x\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3y\3y\3y\3y\3y\3z\3z\3" + - "z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\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" + - "|\3|\3}\3}\3}\3}\3}\3}\3}\3}\3~\3~\3~\3~\3~\3~\3~\3\177\3\177\3\177\3" + - "\177\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3" + - "\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080" + - "\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081" + - "\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081" + - "\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081" + - "\3\u0081\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082" + - "\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084" + - "\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085" + - "\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085" + - "\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086" + - "\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087" + - "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087" + - "\3\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088" + - "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089" + - "\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a" + - "\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b" + - "\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c" + - "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c" + - "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d" + - "\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e" + - "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e" + - "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f" + - "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f" + - "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090" + - "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090" + - "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091" + - "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091" + - "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092" + - "\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093" + - "\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094" + - "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095" + - "\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0096" + - "\3\u0096\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097" + - "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099" + - "\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099" + - "\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b" + - "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c" + - "\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d" + - "\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e" + - "\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f\3\u009f" + - "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\3\u00a0" + - "\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a1\3\u00a1" + - "\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3" + - "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4" + - "\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5" + - "\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6" + - "\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a7" + - "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7" + - "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7" + - "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7" + - "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8" + - "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9" + - "\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9" + - "\3\u00a9\3\u00a9\3\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa" + - "\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab" + - "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab" + - "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac" + - "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac" + - "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac" + - "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac" + - "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + - "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae" + - "\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af" + - "\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af" + - "\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3\u00b1" + - "\3\u00b1\3\u00b1\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2" + - "\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4" + - "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4" + - "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4" + - "\3\u00b4\3\u00b4\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5" + - "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5" + - "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5" + - "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b7" + - "\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7" + - "\3\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9" + - "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba" + - "\3\u00ba\3\u00ba\3\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb" + - "\3\u00bb\3\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc" + - "\3\u00bc\3\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd" + - "\3\u00bd\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be" + - "\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf" + - "\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0" + - "\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1" + - "\3\u00c1\3\u00c1\3\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2" + - "\3\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c4" + - "\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4" + - "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5" + - "\3\u00c5\3\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6" + - "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7" + - "\3\u00c7\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8" + - "\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00ca\3\u00ca\3\u00ca" + - "\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb\3\u00cb\3\u00cb" + - "\3\u00cb\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc" + - "\3\u00cc\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd" + - "\3\u00cd\3\u00cd\3\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce" + - "\3\u00ce\3\u00ce\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf" + - "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0" + - "\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0" + - "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1" + - "\3\u00d1\3\u00d1\3\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2" + - "\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3" + - "\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4" + - "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4" + - "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d5" + - "\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d6\3\u00d6" + - "\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6" + - "\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7" + - "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8" + - "\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00dc" + - "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd" + - "\3\u00dd\3\u00dd\3\u00dd\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de" + - "\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de" + - "\3\u00de\3\u00de\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df" + - "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df" + - "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00e0\3\u00e0\3\u00e0" + - "\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1" + - "\3\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e3\3\u00e3\3\u00e3" + - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4" + - "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5" + - "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + - "\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7" + - "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e9\3\u00e9" + - "\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00ea\3\u00ea\3\u00ea\3\u00ea" + - "\3\u00ea\3\u00ea\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb" + - "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec" + - "\3\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed" + - "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee" + - "\3\u00ee\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef" + - "\3\u00ef\3\u00ef\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f1\3\u00f1" + - "\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f2\3\u00f2\3\u00f2" + - "\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f3\3\u00f3\3\u00f3" + - "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f5" + - "\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f6\3\u00f6" + - "\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f7\3\u00f7" + - "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f8" + - "\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f9" + - "\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00fa\3\u00fa" + - "\3\u00fa\3\u00fa\3\u00fa\3\u00fa\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb" + - "\3\u00fb\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fd" + - "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fe\3\u00fe\3\u00fe" + - "\3\u00fe\3\u00fe\3\u00fe\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff" + - "\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0101\3\u0101\3\u0101" + - "\3\u0101\3\u0101\3\u0101\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102" + - "\3\u0102\3\u0102\3\u0102\3\u0102\3\u0103\3\u0103\3\u0103\3\u0103\3\u0104" + - "\3\u0104\3\u0104\3\u0104\3\u0104\3\u0104\3\u0105\3\u0105\3\u0105\3\u0105" + - "\3\u0105\3\u0105\3\u0105\3\u0105\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106" + - "\3\u0106\3\u0106\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107" + - "\3\u0107\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108" + - "\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u0109\3\u010a\3\u010a\3\u010a" + - "\3\u010a\3\u010a\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b" + - "\3\u010c\3\u010c\3\u010c\3\u010c\3\u010c\3\u010d\3\u010d\3\u010d\3\u010d" + - "\3\u010d\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e" + - "\3\u010e\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u0110" + - "\3\u0110\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111" + - "\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112" + - "\3\u0112\3\u0113\3\u0113\3\u0113\3\u0113\3\u0114\3\u0114\3\u0114\3\u0114" + - "\3\u0114\3\u0114\3\u0114\3\u0115\3\u0115\3\u0115\3\u0116\3\u0116\3\u0116" + - "\3\u0116\3\u0116\3\u0117\3\u0117\3\u0117\3\u0117\3\u0117\3\u0117\3\u0118" + - "\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0119\3\u0119" + - "\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u011a\3\u011a" + - "\3\u011a\3\u011a\3\u011a\3\u011a\3\u011b\3\u011b\3\u011b\3\u011b\3\u011b" + - "\3\u011b\3\u011b\3\u011b\3\u011b\3\u011c\3\u011c\3\u011c\3\u011c\3\u011c" + - "\3\u011c\3\u011c\3\u011c\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d" + - "\3\u011d\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e" + - "\3\u011e\3\u011e\3\u011f\3\u011f\3\u011f\3\u011f\3\u011f\3\u0120\3\u0120" + - "\3\u0120\3\u0120\3\u0120\3\u0121\3\u0121\3\u0121\3\u0121\3\u0121\3\u0122" + - "\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0123" + - "\3\u0123\3\u0123\3\u0123\3\u0123\3\u0123\3\u0123\3\u0124\3\u0124\3\u0124" + - "\3\u0124\3\u0124\3\u0124\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125" + - "\3\u0125\3\u0125\3\u0125\3\u0125\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126" + - "\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126\3\u0127\3\u0127\3\u0127\3\u0127" + - "\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127" + - "\3\u0127\3\u0127\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128" + - "\3\u0128\3\u0128\3\u0129\3\u0129\3\u0129\3\u012a\3\u012a\3\u012a\3\u012a" + - "\3\u012a\3\u012a\3\u012a\3\u012a\3\u012a\3\u012a\3\u012b\3\u012b\3\u012b" + - "\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012c\3\u012c" + - "\3\u012c\3\u012c\3\u012c\3\u012c\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d" + - "\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d\3\u012e\3\u012e\3\u012e\3\u012e" + - "\3\u012e\3\u012e\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f" + - "\3\u012f\3\u012f\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130" + - "\3\u0130\3\u0130\3\u0130\3\u0130\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131" + - "\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131\3\u0132\3\u0132\3\u0132\3\u0132" + - "\3\u0132\3\u0132\3\u0133\3\u0133\3\u0133\3\u0133\3\u0133\3\u0133\3\u0134" + - "\3\u0134\3\u0134\3\u0134\3\u0134\3\u0134\3\u0135\3\u0135\3\u0135\3\u0135" + - "\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0136" + - "\3\u0136\3\u0136\3\u0136\3\u0136\3\u0136\3\u0136\3\u0137\3\u0137\3\u0137" + - "\3\u0137\3\u0137\3\u0137\3\u0137\3\u0137\3\u0137\3\u0138\3\u0138\3\u0138" + - "\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138" + - "\3\u0138\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139" + - "\3\u013a\3\u013a\3\u013a\3\u013a\3\u013b\3\u013b\3\u013b\3\u013b\3\u013b" + - "\3\u013b\3\u013b\3\u013b\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c" + - "\3\u013c\3\u013c\3\u013c\3\u013c\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d" + - "\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013e" + - "\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013f" + - "\3\u013f\3\u013f\3\u013f\3\u013f\3\u0140\3\u0140\3\u0140\3\u0140\3\u0140" + - "\3\u0140\3\u0140\3\u0140\3\u0141\3\u0141\3\u0141\3\u0142\3\u0142\3\u0142" + - "\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0143\3\u0143" + - "\3\u0143\3\u0143\3\u0143\3\u0143\3\u0143\3\u0143\3\u0144\3\u0144\3\u0144" + - "\3\u0144\3\u0144\3\u0145\3\u0145\3\u0146\3\u0146\3\u0146\3\u0146\3\u0147" + - "\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147" + - "\3\u0147\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148" + - "\3\u0148\3\u0149\3\u0149\3\u0149\3\u0149\3\u0149\3\u0149\3\u014a\3\u014a" + - "\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a" + - "\3\u014a\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b" + - "\3\u014b\3\u014c\3\u014c\3\u014c\3\u014c\3\u014c\3\u014c\3\u014d\3\u014d" + - "\3\u014d\3\u014d\3\u014d\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e" + - "\3\u014e\3\u014e\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f" + - "\3\u014f\3\u0150\3\u0150\3\u0150\3\u0150\3\u0150\3\u0150\3\u0151\3\u0151" + - "\3\u0151\3\u0151\3\u0151\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152" + - "\3\u0152\3\u0153\3\u0153\3\u0153\3\u0153\3\u0153\3\u0154\3\u0154\3\u0154" + - "\3\u0154\3\u0154\3\u0154\3\u0155\3\u0155\3\u0155\3\u0155\3\u0155\3\u0156" + - "\3\u0156\3\u0156\3\u0156\3\u0156\3\u0156\3\u0157\3\u0157\3\u0157\3\u0157" + - "\3\u0157\3\u0157\3\u0157\3\u0158\3\u0158\3\u0158\3\u0159\3\u0159\3\u0159" + - "\3\u0159\3\u0159\3\u015a\3\u015a\3\u015a\3\u015a\3\u015a\3\u015a\3\u015b" + - "\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b" + - "\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c" + - "\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015d\3\u015d\3\u015d" + - "\3\u015d\3\u015d\3\u015d\3\u015d\3\u015d\3\u015d\3\u015e\3\u015e\3\u015e" + - "\3\u015e\3\u015e\3\u015e\3\u015e\3\u015e\3\u015f\3\u015f\3\u015f\3\u015f" + - "\3\u015f\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0161" + - "\3\u0161\3\u0161\3\u0161\3\u0161\3\u0161\3\u0162\3\u0162\3\u0163\3\u0163" + - "\3\u0163\3\u0163\3\u0163\3\u0164\3\u0164\3\u0164\3\u0164\3\u0165\3\u0165" + - "\3\u0165\3\u0165\3\u0165\3\u0165\3\u0165\3\u0165\3\u0166\3\u0166\3\u0166" + - "\3\u0166\3\u0166\3\u0166\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167" + - "\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0168\3\u0168" + - "\3\u0168\3\u0168\3\u0168\3\u0168\3\u0168\3\u0168\3\u0169\3\u0169\3\u0169" + - "\3\u0169\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a" + - "\3\u016a\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016c" + - "\3\u016c\3\u016c\3\u016c\3\u016c\3\u016c\3\u016d\3\u016d\3\u016d\3\u016d" + - "\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d" + - "\3\u016d\3\u016d\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e" + - "\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e" + - "\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016f\3\u016f\3\u016f\3\u016f" + - "\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f" + - "\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0171\3\u0171" + - "\3\u0171\3\u0171\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172" + - "\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173" + - "\3\u0174\3\u0174\3\u0174\3\u0174\3\u0175\3\u0175\3\u0175\3\u0175\3\u0175" + - "\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176" + - "\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0178\3\u0178" + - "\3\u0178\3\u0178\3\u0178\3\u0178\3\u0178\3\u0179\3\u0179\3\u0179\3\u0179" + - "\3\u0179\3\u0179\3\u017a\3\u017a\3\u017a\3\u017a\3\u017a\3\u017b\3\u017b" + - "\3\u017b\3\u017b\3\u017b\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c" + - "\3\u017c\3\u017c\3\u017c\3\u017d\3\u017d\3\u017d\3\u017d\3\u017d\3\u017d" + - "\3\u017e\3\u017e\3\u017e\3\u017e\3\u017e\3\u017f\3\u017f\3\u017f\3\u017f" + - "\3\u017f\3\u017f\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180" + - "\3\u0180\3\u0180\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181" + - "\3\u0181\3\u0182\3\u0182\3\u0182\3\u0182\3\u0182\3\u0182\3\u0183\3\u0183" + - "\3\u0183\3\u0183\3\u0183\3\u0183\3\u0184\3\u0184\3\u0184\3\u0184\3\u0184" + - "\3\u0184\3\u0184\3\u0184\3\u0185\3\u0185\3\u0185\3\u0185\3\u0186\3\u0186" + - "\3\u0186\3\u0186\3\u0186\3\u0187\3\u0187\3\u0187\3\u0188\3\u0188\3\u0188" + - "\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0189" + - "\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189" + - "\3\u0189\3\u0189\3\u0189\3\u018a\3\u018a\3\u018a\3\u018a\3\u018a\3\u018b" + - "\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b" + - "\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c" + - "\3\u018c\3\u018c\3\u018d\3\u018d\3\u018d\3\u018d\3\u018e\3\u018e\3\u018e" + - "\3\u018e\3\u018e\3\u018e\3\u018e\3\u018e\3\u018f\3\u018f\3\u018f\3\u018f" + - "\3\u018f\3\u018f\3\u018f\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190" + - "\3\u0190\3\u0190\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191" + - "\3\u0192\3\u0192\3\u0192\3\u0192\3\u0192\3\u0193\3\u0193\3\u0193\3\u0193" + - "\3\u0193\3\u0193\3\u0193\3\u0193\3\u0193\3\u0194\3\u0194\3\u0194\3\u0194" + - "\3\u0194\3\u0194\3\u0194\3\u0195\3\u0195\3\u0195\3\u0195\3\u0195\3\u0195" + - "\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0197\3\u0197" + - "\3\u0197\3\u0197\3\u0197\3\u0197\3\u0197\3\u0197\3\u0198\3\u0198\3\u0198" + - "\3\u0198\3\u0198\3\u0198\3\u0198\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199" + - "\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u019a" + - "\3\u019a\3\u019a\3\u019a\3\u019a\3\u019a\3\u019a\3\u019b\3\u019b\3\u019b" + - "\3\u019c\3\u019c\3\u019c\3\u019c\3\u019d\3\u019d\3\u019d\3\u019d\3\u019d" + - "\3\u019d\3\u019d\3\u019e\3\u019e\3\u019e\3\u019e\3\u019e\3\u019f\3\u019f" + - "\3\u019f\3\u019f\3\u01a0\3\u01a0\3\u01a0\3\u01a1\3\u01a1\3\u01a1\3\u01a1" + - "\3\u01a1\3\u01a2\3\u01a2\3\u01a2\3\u01a2\3\u01a2\3\u01a3\3\u01a3\3\u01a3" + - "\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a4\3\u01a4" + - "\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a5\3\u01a5" + - "\3\u01a5\3\u01a5\3\u01a5\3\u01a5\3\u01a5\3\u01a6\3\u01a6\3\u01a6\3\u01a6" + - "\3\u01a6\3\u01a6\3\u01a6\3\u01a6\3\u01a7\3\u01a7\3\u01a7\3\u01a8\3\u01a8" + - "\3\u01a8\3\u01a8\3\u01a8\3\u01a8\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01a9" + - "\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa" + - "\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01ab\3\u01ab\3\u01ab" + - "\3\u01ab\3\u01ab\3\u01ab\3\u01ab\3\u01ac\3\u01ac\3\u01ac\3\u01ac\3\u01ad" + - "\3\u01ad\3\u01ad\3\u01ad\3\u01ad\3\u01ad\3\u01ae\3\u01ae\3\u01ae\3\u01ae" + - "\3\u01ae\3\u01ae\3\u01ae\3\u01af\3\u01af\3\u01af\3\u01af\3\u01af\3\u01b0" + - "\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b1" + - "\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b2\3\u01b2" + - "\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2" + - "\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b4\3\u01b4\3\u01b4" + - "\3\u01b4\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5" + - "\3\u01b5\3\u01b5\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6" + - "\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b7" + - "\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7" + - "\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b8\3\u01b8\3\u01b8\3\u01b8" + - "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8" + - "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8" + - "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b9\3\u01b9\3\u01b9\3\u01b9" + - "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9" + - "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9" + - "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01ba\3\u01ba\3\u01ba\3\u01ba" + - "\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba" + - "\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba" + - "\3\u01ba\3\u01ba\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb" + - "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb" + - "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb" + - "\3\u01bb\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc" + - "\3\u01bc\3\u01bc\3\u01bc\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd" + - "\3\u01bd\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be" + - "\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf" + - "\3\u01bf\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c1" + - "\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c2" + - "\3\u01c2\3\u01c2\3\u01c2\3\u01c2\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3" + - "\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c4" + - "\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4" + - "\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c5\3\u01c5\3\u01c5" + - "\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5" + - "\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c6\3\u01c6\3\u01c6\3\u01c6\3\u01c6" + - "\3\u01c6\3\u01c6\3\u01c6\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c7" + - "\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c9\3\u01c9\3\u01c9" + - "\3\u01c9\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca" + - "\3\u01ca\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb" + - "\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cd\3\u01cd\3\u01cd" + - "\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01ce\3\u01ce" + - "\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01cf" + - "\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01d0\3\u01d0\3\u01d0" + - "\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d1\3\u01d1\3\u01d1" + - "\3\u01d1\3\u01d1\3\u01d1\3\u01d1\3\u01d1\3\u01d2\3\u01d2\3\u01d2\3\u01d2" + - "\3\u01d2\3\u01d2\3\u01d2\3\u01d2\3\u01d2\3\u01d3\3\u01d3\3\u01d3\3\u01d3" + - "\3\u01d3\3\u01d3\3\u01d3\3\u01d3\3\u01d3\3\u01d4\3\u01d4\3\u01d4\3\u01d4" + - "\3\u01d4\3\u01d4\3\u01d4\3\u01d4\3\u01d5\3\u01d5\3\u01d5\3\u01d5\3\u01d5" + - "\3\u01d5\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6" + - "\3\u01d6\3\u01d6\3\u01d6\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7" + - "\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d8\3\u01d8\3\u01d8\3\u01d8" + - "\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d9\3\u01d9\3\u01d9" + - "\3\u01d9\3\u01d9\3\u01d9\3\u01d9\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da" + - "\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01db\3\u01db" + - "\3\u01db\3\u01db\3\u01db\3\u01db\3\u01dc\3\u01dc\3\u01dc\3\u01dc\3\u01dc" + - "\3\u01dc\3\u01dd\3\u01dd\3\u01dd\3\u01dd\3\u01dd\3\u01de\3\u01de\3\u01de" + - "\3\u01de\3\u01de\3\u01df\3\u01df\3\u01df\3\u01df\3\u01df\3\u01df\3\u01e0" + - "\3\u01e0\3\u01e0\3\u01e0\3\u01e0\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e1" + - "\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e2\3\u01e2\3\u01e2\3\u01e2\3\u01e2" + - "\3\u01e2\3\u01e2\3\u01e2\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3" + - "\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e4\3\u01e4\3\u01e4\3\u01e4\3\u01e5" + - "\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5" + - "\3\u01e5\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6" + - "\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e7\3\u01e7\3\u01e7\3\u01e7\3\u01e7" + - "\3\u01e7\3\u01e7\3\u01e7\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8" + - "\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9" + - "\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01ea\3\u01ea\3\u01ea\3\u01ea" + - "\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01eb\3\u01eb" + - "\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb" + - "\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01ec\3\u01ec\3\u01ec\3\u01ec\3\u01ec" + - "\3\u01ec\3\u01ec\3\u01ec\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed" + - "\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ee\3\u01ee\3\u01ee\3\u01ee" + - "\3\u01ee\3\u01ee\3\u01ee\3\u01ee\3\u01ee\3\u01ef\3\u01ef\3\u01ef\3\u01ef" + - "\3\u01ef\3\u01ef\3\u01ef\3\u01ef\3\u01ef\3\u01f0\3\u01f0\3\u01f0\3\u01f0" + - "\3\u01f0\3\u01f0\3\u01f0\3\u01f0\3\u01f0\3\u01f1\3\u01f1\3\u01f1\3\u01f1" + - "\3\u01f1\3\u01f1\3\u01f1\3\u01f1\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f2" + - "\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f3\3\u01f3\3\u01f3\3\u01f3\3\u01f3" + - "\3\u01f3\3\u01f3\3\u01f3\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4" + - "\3\u01f4\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5" + - "\3\u01f5\3\u01f5\3\u01f5\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6" + - "\3\u01f6\3\u01f6\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7" + - "\3\u01f7\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f9\3\u01f9" + - "\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01fa\3\u01fa\3\u01fa" + - "\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fb\3\u01fb\3\u01fb" + - "\3\u01fb\3\u01fb\3\u01fb\3\u01fb\3\u01fc\3\u01fc\3\u01fc\3\u01fc\3\u01fc" + - "\3\u01fc\3\u01fc\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd" + - "\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd" + - "\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fe\3\u01fe\3\u01fe\3\u01fe" + - "\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe" + - "\3\u01fe\3\u01fe\3\u01fe\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff" + - "\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff" + - "\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u0200\3\u0200" + - "\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200" + - "\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0201\3\u0201" + - "\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0202" + - "\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0203\3\u0203" + - "\3\u0203\3\u0203\3\u0203\3\u0203\3\u0203\3\u0204\3\u0204\3\u0204\3\u0204" + - "\3\u0204\3\u0204\3\u0205\3\u0205\3\u0205\3\u0205\3\u0205\3\u0206\3\u0206" + - "\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0207\3\u0207" + - "\3\u0207\3\u0207\3\u0207\3\u0207\3\u0207\3\u0208\3\u0208\3\u0208\3\u0208" + - "\3\u0208\3\u0208\3\u0208\3\u0208\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209" + - "\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209" + - "\3\u0209\3\u0209\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a" + - "\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020b\3\u020b\3\u020b" + - "\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b" + - "\3\u020b\3\u020b\3\u020b\3\u020c\3\u020c\3\u020c\3\u020c\3\u020d\3\u020d" + - "\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020e" + - "\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e" + - "\3\u020e\3\u020f\3\u020f\3\u020f\3\u020f\3\u020f\3\u0210\3\u0210\3\u0210" + - "\3\u0210\3\u0210\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211" + - "\3\u0211\3\u0211\3\u0211\3\u0212\3\u0212\3\u0212\3\u0212\3\u0212\3\u0212" + - "\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0214\3\u0214" + - "\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214" + - "\3\u0214\3\u0215\3\u0215\3\u0215\3\u0215\3\u0215\3\u0215\3\u0216\3\u0216" + - "\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216" + - "\3\u0216\3\u0216\3\u0216\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217" + - "\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0218\3\u0218\3\u0218\3\u0218" + - "\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218" + - "\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u021a\3\u021a" + - "\3\u021a\3\u021a\3\u021a\3\u021a\3\u021a\3\u021b\3\u021b\3\u021b\3\u021b" + - "\3\u021b\3\u021b\3\u021b\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c" + - "\3\u021c\3\u021c\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d" + - "\3\u021d\3\u021d\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e" + - "\3\u021f\3\u021f\3\u021f\3\u021f\3\u021f\3\u0220\3\u0220\3\u0220\3\u0220" + - "\3\u0220\3\u0220\3\u0220\3\u0220\3\u0220\3\u0220\3\u0221\3\u0221\3\u0221" + - "\3\u0221\3\u0221\3\u0221\3\u0221\3\u0221\3\u0221\3\u0222\3\u0222\3\u0222" + - "\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0223\3\u0223" + - "\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223" + - "\3\u0223\3\u0223\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224" + - "\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0225\3\u0225\3\u0225\3\u0225" + - "\3\u0225\3\u0225\3\u0225\3\u0225\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226" + - "\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0227" + - "\3\u0227\3\u0227\3\u0227\3\u0228\3\u0228\3\u0228\3\u0228\3\u0228\3\u0228" + - "\3\u0229\3\u0229\3\u0229\3\u0229\3\u0229\3\u022a\3\u022a\3\u022a\3\u022a" + - "\3\u022a\3\u022a\3\u022b\3\u022b\3\u022b\3\u022b\3\u022b\3\u022c\3\u022c" + - "\3\u022c\3\u022c\3\u022c\3\u022c\3\u022c\3\u022c\3\u022d\3\u022d\3\u022d" + - "\3\u022d\3\u022d\3\u022d\3\u022d\3\u022e\3\u022e\3\u022e\3\u022e\3\u022e" + - "\3\u022f\3\u022f\3\u022f\3\u022f\3\u022f\3\u0230\3\u0230\3\u0230\3\u0230" + - "\3\u0230\3\u0230\3\u0230\3\u0230\3\u0230\3\u0231\3\u0231\3\u0231\3\u0231" + - "\3\u0231\3\u0231\3\u0231\3\u0231\3\u0231\3\u0232\3\u0232\3\u0232\3\u0232" + - "\3\u0232\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0234" + - "\3\u0234\3\u0234\3\u0234\3\u0234\3\u0234\3\u0235\3\u0235\3\u0235\3\u0235" + - "\3\u0235\3\u0235\3\u0235\3\u0235\3\u0235\3\u0236\3\u0236\3\u0236\3\u0236" + - "\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236" + - "\3\u0236\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237" + - "\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0238\3\u0238\3\u0238\3\u0238" + - "\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u023a" + - "\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023b" + - "\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b" + - "\3\u023b\3\u023b\3\u023b\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c" + - "\3\u023c\3\u023c\3\u023c\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d" + - "\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023e\3\u023e\3\u023e\3\u023e" + - "\3\u023e\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u0240" + - "\3\u0240\3\u0240\3\u0240\3\u0240\3\u0240\3\u0241\3\u0241\3\u0241\3\u0241" + - "\3\u0241\3\u0241\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242" + - "\3\u0242\3\u0242\3\u0242\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243" + - "\3\u0243\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244" + - "\3\u0244\3\u0244\3\u0244\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245" + - "\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0246\3\u0246\3\u0246\3\u0246" + - "\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0247" + - "\3\u0247\3\u0247\3\u0247\3\u0247\3\u0247\3\u0248\3\u0248\3\u0248\3\u0248" + - "\3\u0248\3\u0248\3\u0248\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249" + - "\3\u0249\3\u0249\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a" + - "\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b" + - "\3\u024b\3\u024c\3\u024c\3\u024c\3\u024c\3\u024c\3\u024c\3\u024d\3\u024d" + - "\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d" + - "\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024e\3\u024e\3\u024e\3\u024e" + - "\3\u024e\3\u024e\3\u024e\3\u024e\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f" + - "\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u0250\3\u0250" + - "\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250" + - "\3\u0250\3\u0250\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251" + - "\3\u0251\3\u0251\3\u0251\3\u0252\3\u0252\3\u0252\3\u0252\3\u0253\3\u0253" + - "\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0254" + - "\3\u0254\3\u0254\3\u0254\3\u0254\3\u0254\3\u0255\3\u0255\3\u0255\3\u0255" + - "\3\u0255\3\u0255\3\u0255\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256" + - "\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0257\3\u0257\3\u0257" + - "\3\u0257\3\u0257\3\u0257\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258" + - "\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0259\3\u0259\3\u0259\3\u0259" + - "\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u025a" + - "\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a" + - "\3\u025a\3\u025b\3\u025b\3\u025b\3\u025b\3\u025b\3\u025c\3\u025c\3\u025c" + - "\3\u025c\3\u025c\3\u025c\3\u025c\3\u025c\3\u025c\3\u025d\3\u025d\3\u025d" + - "\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025e\3\u025e" + - "\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025f" + - "\3\u025f\3\u025f\3\u025f\3\u025f\3\u0260\3\u0260\3\u0260\3\u0260\3\u0260" + - "\3\u0261\3\u0261\3\u0261\3\u0261\3\u0261\3\u0262\3\u0262\3\u0262\3\u0262" + - "\3\u0262\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263" + - "\3\u0263\3\u0263\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264" + - "\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0265\3\u0265" + - "\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265" + - "\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0266\3\u0266\3\u0266\3\u0266" + - "\3\u0266\3\u0266\3\u0266\3\u0267\3\u0267\3\u0267\3\u0268\3\u0268\3\u0268" + - "\3\u0268\3\u0268\3\u0268\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269" + - "\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269" + - "\3\u0269\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a" + - "\3\u026a\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b" + - "\3\u026b\3\u026b\3\u026b\3\u026b\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c" + - "\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c" + - "\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026d\3\u026d\3\u026d\3\u026d" + - "\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d" + - "\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d" + - "\3\u026d\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e" + - "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e" + - "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026f" + - "\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f" + - "\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270" + - "\3\u0270\3\u0270\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271" + - "\3\u0271\3\u0271\3\u0271\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272" + - "\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0273\3\u0273\3\u0273" + - "\3\u0273\3\u0273\3\u0273\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274" + - "\3\u0274\3\u0274\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275" + - "\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275" + - "\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276" + - "\3\u0276\3\u0276\3\u0276\3\u0276\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277" + - "\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277" + - "\3\u0277\3\u0278\3\u0278\3\u0278\3\u0278\3\u0278\3\u0279\3\u0279\3\u0279" + - "\3\u0279\3\u0279\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a" + - "\3\u027a\3\u027a\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b" + - "\3\u027b\3\u027c\3\u027c\3\u027c\3\u027c\3\u027c\3\u027d\3\u027d\3\u027d" + - "\3\u027d\3\u027d\3\u027d\3\u027d\3\u027d\3\u027e\3\u027e\3\u027e\3\u027e" + - "\3\u027e\3\u027e\3\u027e\3\u027e\3\u027e\3\u027e\3\u027f\3\u027f\3\u027f" + - "\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f" + - "\3\u0280\3\u0280\3\u0280\3\u0280\3\u0280\3\u0280\3\u0281\3\u0281\3\u0281" + - "\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281" + - "\3\u0282\3\u0282\3\u0282\3\u0282\3\u0282\3\u0282\3\u0283\3\u0283\3\u0283" + - "\3\u0283\3\u0283\3\u0283\3\u0283\3\u0284\3\u0284\3\u0284\3\u0284\3\u0284" + - "\3\u0284\3\u0284\3\u0284\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285" + - "\3\u0285\3\u0285\3\u0285\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286" + - "\3\u0286\3\u0286\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287" + - "\3\u0288\3\u0288\3\u0288\3\u0288\3\u0288\3\u0288\3\u0289\3\u0289\3\u0289" + - "\3\u0289\3\u0289\3\u0289\3\u0289\3\u028a\3\u028a\3\u028a\3\u028a\3\u028a" + - "\3\u028a\3\u028b\3\u028b\3\u028b\3\u028b\3\u028b\3\u028b\3\u028c\3\u028c" + - "\3\u028c\3\u028c\3\u028c\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d" + - "\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d" + - "\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d" + - "\3\u028d\3\u028d\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e" + - "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e" + - "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028f\3\u028f" + - "\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f" + - "\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f" + - "\3\u028f\3\u028f\3\u028f\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290" + - "\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290" + - "\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290" + - "\3\u0290\3\u0291\3\u0291\3\u0291\3\u0291\3\u0291\3\u0291\3\u0292\3\u0292" + - "\3\u0292\3\u0292\3\u0292\3\u0292\3\u0292\3\u0293\3\u0293\3\u0293\3\u0293" + - "\3\u0293\3\u0293\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294" + - "\3\u0294\3\u0294\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295" + - "\3\u0295\3\u0295\3\u0295\3\u0296\3\u0296\3\u0296\3\u0296\3\u0296\3\u0296" + - "\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0298\3\u0298" + - "\3\u0298\3\u0298\3\u0298\3\u0298\3\u0298\3\u0298\3\u0299\3\u0299\3\u0299" + - "\3\u0299\3\u0299\3\u0299\3\u0299\3\u0299\3\u0299\3\u029a\3\u029a\3\u029a" + - "\3\u029a\3\u029a\3\u029a\3\u029a\3\u029a\3\u029b\3\u029b\3\u029b\3\u029b" + - "\3\u029b\3\u029b\3\u029b\3\u029b\3\u029b\3\u029c\3\u029c\3\u029c\3\u029c" + - "\3\u029c\3\u029c\3\u029c\3\u029c\3\u029c\3\u029d\3\u029d\3\u029d\3\u029d" + - "\3\u029d\3\u029d\3\u029d\3\u029d\3\u029e\3\u029e\3\u029e\3\u029e\3\u029e" + - "\3\u029e\3\u029e\3\u029e\3\u029f\3\u029f\3\u029f\3\u029f\3\u029f\3\u02a0" + - "\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a1" + - "\3\u02a1\3\u02a1\3\u02a1\3\u02a1\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a2" + - "\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a3\3\u02a3\3\u02a3\3\u02a3\3\u02a3" + - "\3\u02a3\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4" + - "\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a5\3\u02a5\3\u02a5\3\u02a5" + - "\3\u02a5\3\u02a5\3\u02a5\3\u02a6\3\u02a6\3\u02a6\3\u02a6\3\u02a6\3\u02a7" + - "\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a8\3\u02a8\3\u02a8" + - "\3\u02a8\3\u02a8\3\u02a8\3\u02a8\3\u02a8\3\u02a9\3\u02a9\3\u02a9\3\u02a9" + - "\3\u02a9\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02ab\3\u02ab" + - "\3\u02ab\3\u02ab\3\u02ab\3\u02ac\3\u02ac\3\u02ac\3\u02ac\3\u02ac\3\u02ad" + - "\3\u02ad\3\u02ad\3\u02ad\3\u02ae\3\u02ae\3\u02ae\3\u02ae\3\u02ae\3\u02af" + - "\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af" + - "\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0" + - "\3\u02b0\3\u02b0\3\u02b0\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1" + - "\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b2\3\u02b2\3\u02b2\3\u02b2" + - "\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2" + - "\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b4" + - "\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4" + - "\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b6\3\u02b6\3\u02b6" + - "\3\u02b6\3\u02b6\3\u02b6\3\u02b6\3\u02b6\3\u02b7\3\u02b7\3\u02b7\3\u02b7" + - "\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b8" + - "\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8" + - "\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9" + - "\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02ba\3\u02ba\3\u02ba\3\u02ba" + - "\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02bb" + - "\3\u02bb\3\u02bb\3\u02bb\3\u02bb\3\u02bb\3\u02bc\3\u02bc\3\u02bc\3\u02bc" + - "\3\u02bc\3\u02bc\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd" + - "\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be" + - "\3\u02be\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf" + - "\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02c0" + - "\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0" + - "\3\u02c0\3\u02c0\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1" + - "\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2" + - "\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c3" + - "\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c4" + - "\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c5\3\u02c5\3\u02c5" + - "\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c6\3\u02c6\3\u02c6" + - "\3\u02c6\3\u02c6\3\u02c6\3\u02c6\3\u02c7\3\u02c7\3\u02c7\3\u02c7\3\u02c7" + - "\3\u02c7\3\u02c7\3\u02c7\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8" + - "\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c9\3\u02c9\3\u02c9\3\u02c9" + - "\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9" + - "\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca" + - "\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02cb\3\u02cb\3\u02cb\3\u02cb" + - "\3\u02cb\3\u02cb\3\u02cb\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc" + - "\3\u02cc\3\u02cc\3\u02cc\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd" + - "\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02ce\3\u02ce" + - "\3\u02ce\3\u02ce\3\u02ce\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf" + - "\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02d0\3\u02d0\3\u02d0\3\u02d0" + - "\3\u02d0\3\u02d0\3\u02d0\3\u02d1\3\u02d1\3\u02d1\3\u02d1\3\u02d1\3\u02d1" + - "\3\u02d1\3\u02d1\3\u02d1\3\u02d2\3\u02d2\3\u02d2\3\u02d3\3\u02d3\3\u02d3" + - "\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4" + - "\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d5\3\u02d5\3\u02d5" + - "\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d6\3\u02d6\3\u02d6" + - "\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d7\3\u02d7\3\u02d7" + - "\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d8\3\u02d8\3\u02d8\3\u02d8" + - "\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8" + - "\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d9\3\u02d9\3\u02d9\3\u02d9" + - "\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02da" + - "\3\u02da\3\u02da\3\u02da\3\u02da\3\u02da\3\u02db\3\u02db\3\u02db\3\u02db" + - "\3\u02db\3\u02db\3\u02db\3\u02db\3\u02dc\3\u02dc\3\u02dc\3\u02dc\3\u02dc" + - "\3\u02dc\3\u02dc\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02de" + - "\3\u02de\3\u02de\3\u02de\3\u02de\3\u02df\3\u02df\3\u02df\3\u02df\3\u02df" + - "\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e1\3\u02e1" + - "\3\u02e1\3\u02e1\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e3\3\u02e3" + - "\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3" + - "\3\u02e3\3\u02e3\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4" + - "\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5" + - "\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e6" + - "\3\u02e6\3\u02e6\3\u02e6\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7" + - "\3\u02e7\3\u02e7\3\u02e7\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8" + - "\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e9\3\u02e9\3\u02e9\3\u02e9" + - "\3\u02e9\3\u02e9\3\u02e9\3\u02e9\3\u02ea\3\u02ea\3\u02ea\3\u02ea\3\u02ea" + - "\3\u02ea\3\u02ea\3\u02eb\3\u02eb\3\u02eb\3\u02eb\3\u02eb\3\u02eb\3\u02eb" + - "\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ed\3\u02ed" + - "\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ee\3\u02ee\3\u02ee\3\u02ee" + - "\3\u02ee\3\u02ee\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef" + - "\3\u02ef\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0" + - "\3\u02f0\3\u02f0\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1" + - "\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f2\3\u02f2\3\u02f2\3\u02f2" + - "\3\u02f2\3\u02f3\3\u02f3\3\u02f3\3\u02f3\3\u02f4\3\u02f4\3\u02f4\3\u02f4" + - "\3\u02f4\3\u02f4\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5" + - "\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5\3\u02f5" + - "\3\u02f5\3\u02f5\3\u02f6\3\u02f6\3\u02f6\3\u02f6\3\u02f6\3\u02f7\3\u02f7" + - "\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f8\3\u02f8\3\u02f8\3\u02f8" + - "\3\u02f8\3\u02f8\3\u02f8\3\u02f9\3\u02f9\3\u02f9\3\u02f9\3\u02f9\3\u02f9" + - "\3\u02f9\3\u02fa\3\u02fa\3\u02fa\3\u02fa\3\u02fa\3\u02fb\3\u02fb\3\u02fb" + - "\3\u02fb\3\u02fb\3\u02fc\3\u02fc\3\u02fc\3\u02fc\3\u02fc\3\u02fd\3\u02fd" + - "\3\u02fd\3\u02fd\3\u02fd\3\u02fe\3\u02fe\3\u02fe\3\u02fe\3\u02fe\3\u02ff" + - "\3\u02ff\3\u02ff\3\u02ff\3\u02ff\3\u02ff\3\u0300\3\u0300\3\u0300\3\u0300" + - "\3\u0300\3\u0301\3\u0301\3\u0301\3\u0301\3\u0301\3\u0302\3\u0302\3\u0302" + - "\3\u0302\3\u0302\3\u0302\3\u0302\3\u0302\3\u0303\3\u0303\3\u0303\3\u0303" + - "\3\u0303\3\u0303\3\u0303\3\u0303\3\u0303\3\u0304\3\u0304\3\u0304\3\u0304" + - "\3\u0304\3\u0304\3\u0305\3\u0305\3\u0305\3\u0305\3\u0305\3\u0305\3\u0305" + - "\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306\3\u0307\3\u0307\3\u0307" + - "\3\u0307\3\u0307\3\u0307\3\u0307\3\u0307\3\u0308\3\u0308\3\u0308\3\u0308" + - "\3\u0308\3\u0308\3\u0308\3\u0308\3\u0309\3\u0309\3\u0309\3\u0309\3\u0309" + - "\3\u0309\3\u0309\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a" + - "\3\u030a\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b\3\u030b" + - "\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030d" + - "\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d" + - "\3\u030d\3\u030d\3\u030e\3\u030e\3\u030e\3\u030e\3\u030e\3\u030e\3\u030e" + - "\3\u030f\3\u030f\3\u030f\3\u030f\3\u030f\3\u0310\3\u0310\3\u0310\3\u0310" + - "\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310\3\u0311" + - "\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311\3\u0312\3\u0312\3\u0312" + - "\3\u0312\3\u0312\3\u0312\3\u0312\3\u0312\3\u0313\3\u0313\3\u0313\3\u0313" + - "\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0314\3\u0314\3\u0314\3\u0314" + - "\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314\3\u0314" + - "\3\u0314\3\u0315\3\u0315\3\u0315\3\u0315\3\u0315\3\u0316\3\u0316\3\u0316" + - "\3\u0316\3\u0316\3\u0316\3\u0316\3\u0317\3\u0317\3\u0317\3\u0317\3\u0318" + - "\3\u0318\3\u0319\3\u0319\3\u031a\3\u031a\3\u031a\3\u031b\3\u031b\3\u031c" + - "\3\u031c\3\u031c\3\u031d\3\u031d\3\u031e\3\u031e\3\u031f\3\u031f\3\u0320" + - "\3\u0320\3\u0321\3\u0321\3\u0322\3\u0322\3\u0322\7\u0322\u20f6\n\u0322" + - "\f\u0322\16\u0322\u20f9\13\u0322\3\u0322\3\u0322\3\u0323\3\u0323\3\u0323" + - "\3\u0324\5\u0324\u2101\n\u0324\3\u0324\6\u0324\u2104\n\u0324\r\u0324\16" + - "\u0324\u2105\3\u0324\3\u0324\6\u0324\u210a\n\u0324\r\u0324\16\u0324\u210b" + - "\3\u0324\3\u0324\7\u0324\u2110\n\u0324\f\u0324\16\u0324\u2113\13\u0324" + - "\3\u0324\6\u0324\u2116\n\u0324\r\u0324\16\u0324\u2117\5\u0324\u211a\n" + - "\u0324\3\u0325\5\u0325\u211d\n\u0325\3\u0325\6\u0325\u2120\n\u0325\r\u0325" + - "\16\u0325\u2121\3\u0325\3\u0325\6\u0325\u2126\n\u0325\r\u0325\16\u0325" + - "\u2127\5\u0325\u212a\n\u0325\3\u0326\3\u0326\3\u0326\3\u0327\3\u0327\3" + - "\u0328\3\u0328\3\u0329\3\u0329\3\u032a\3\u032a\7\u032a\u2137\n\u032a\f" + - "\u032a\16\u032a\u213a\13\u032a\3\u032b\3\u032b\6\u032b\u213e\n\u032b\r" + - "\u032b\16\u032b\u213f\3\u032c\3\u032c\7\u032c\u2144\n\u032c\f\u032c\16" + - "\u032c\u2147\13\u032c\3\u032d\3\u032d\3\u032e\3\u032e\3\u032e\3\u032f" + - "\3\u032f\3\u032f\3\u0330\3\u0330\3\u0330\3\u0331\3\u0331\3\u0331\3\u0332" + - "\3\u0332\3\u0333\3\u0333\3\u0334\3\u0334\3\u0334\3\u0335\3\u0335\3\u0335" + - "\3\u0336\3\u0336\3\u0337\3\u0337\3\u0338\3\u0338\3\u0338\3\u0339\3\u0339" + - "\3\u033a\3\u033a\3\u033a\3\u033b\3\u033b\3\u033b\3\u033c\3\u033c\3\u033d" + - "\3\u033d\3\u033d\3\u033e\3\u033e\3\u033e\3\u033f\3\u033f\3\u033f\3\u033f" + - "\3\u0340\3\u0340\3\u0340\3\u0341\3\u0341\3\u0341\3\u0342\3\u0342\3\u0342" + - "\3\u0342\3\u0343\3\u0343\3\u0343\3\u0343\3\u0344\3\u0344\3\u0345\3\u0345" + - "\3\u0345\3\u0346\3\u0346\3\u0346\3\u0347\3\u0347\3\u0347\3\u0348\3\u0348" + - "\3\u0348\3\u0349\3\u0349\3\u0349\3\u0349\3\u034a\3\u034a\3\u034a\3\u034b" + - "\3\u034b\3\u034b\3\u034b\3\u034c\3\u034c\3\u034c\3\u034c\3\u034d\3\u034d" + - "\3\u034e\3\u034e\3\u034f\3\u034f\3\u0350\3\u0350\3\u0350\3\u0351\3\u0351" + - "\3\u0351\3\u0351\3\u0352\3\u0352\3\u0352\3\u0353\3\u0353\3\u0354\3\u0354" + - "\3\u0355\3\u0355\3\u0355\3\u0356\3\u0356\3\u0356\3\u0357\3\u0357\3\u0357" + - "\3\u0358\3\u0358\3\u0358\3\u0359\3\u0359\3\u035a\3\u035a\3\u035b\3\u035b" + - "\3\u035b\3\u035c\3\u035c\3\u035c\3\u035c\3\u035c\3\u035d\3\u035d\3\u035d" + - "\3\u035d\3\u035e\3\u035e\3\u035e\3\u035e\3\u035e\3\u035f\3\u035f\3\u035f" + - "\3\u035f\3\u0360\3\u0360\3\u0360\3\u0361\3\u0361\3\u0361\3\u0362\3\u0362" + - "\4\u06d2\u06e0\2\u0363\3\3\5\4\7\5\t\2\13\2\r\2\17\2\21\2\23\2\25\2\27" + - "\2\31\2\33\2\35\2\37\2!\2#\2%\2\'\2)\2+\2-\2/\2\61\2\63\2\65\2\67\29\2" + - ";\2=\2?\2A\2C\2E\2G\6I\7K\bM\tO\nQ\13S\fU\rW\16Y\17[\20]\21_\22a\23c\24" + - "e\25g\26i\27k\30m\31o\32q\33s\34u\35w\36y\37{ }!\177\"\u0081#\u0083$\u0085" + - "%\u0087&\u0089\'\u008b(\u008d)\u008f*\u0091+\u0093,\u0095-\u0097.\u0099" + - "/\u009b\60\u009d\61\u009f\62\u00a1\63\u00a3\64\u00a5\65\u00a7\66\u00a9" + - "\67\u00ab8\u00ad9\u00af:\u00b1;\u00b3<\u00b5=\u00b7>\u00b9?\u00bb@\u00bd" + - "A\u00bfB\u00c1C\u00c3D\u00c5E\u00c7F\u00c9G\u00cbH\u00cdI\u00cfJ\u00d1" + - "K\u00d3L\u00d5M\u00d7N\u00d9O\u00dbP\u00ddQ\u00dfR\u00e1S\u00e3T\u00e5" + - "U\u00e7V\u00e9W\u00ebX\u00edY\u00efZ\u00f1[\u00f3\\\u00f5]\u00f7^\u00f9" + - "_\u00fb`\u00fda\u00ffb\u0101c\u0103d\u0105e\u0107f\u0109g\u010bh\u010d" + - "i\u010fj\u0111k\u0113l\u0115m\u0117n\u0119o\u011bp\u011dq\u011fr\u0121" + - "s\u0123t\u0125u\u0127v\u0129w\u012bx\u012dy\u012fz\u0131{\u0133|\u0135" + - "}\u0137~\u0139\177\u013b\u0080\u013d\u0081\u013f\u0082\u0141\u0083\u0143" + - "\u0084\u0145\u0085\u0147\u0086\u0149\u0087\u014b\u0088\u014d\u0089\u014f" + - "\u008a\u0151\u008b\u0153\u008c\u0155\u008d\u0157\u008e\u0159\u008f\u015b" + - "\u0090\u015d\u0091\u015f\u0092\u0161\u0093\u0163\u0094\u0165\u0095\u0167" + - "\u0096\u0169\u0097\u016b\u0098\u016d\u0099\u016f\u009a\u0171\u009b\u0173" + - "\u009c\u0175\u009d\u0177\u009e\u0179\u009f\u017b\u00a0\u017d\u00a1\u017f" + - "\u00a2\u0181\u00a3\u0183\u00a4\u0185\u00a5\u0187\u00a6\u0189\u00a7\u018b" + - "\u00a8\u018d\u00a9\u018f\u00aa\u0191\u00ab\u0193\u00ac\u0195\u00ad\u0197" + - "\u00ae\u0199\u00af\u019b\u00b0\u019d\u00b1\u019f\u00b2\u01a1\u00b3\u01a3" + - "\u00b4\u01a5\u00b5\u01a7\u00b6\u01a9\u00b7\u01ab\u00b8\u01ad\u00b9\u01af" + - "\u00ba\u01b1\u00bb\u01b3\u00bc\u01b5\u00bd\u01b7\u00be\u01b9\u00bf\u01bb" + - "\u00c0\u01bd\u00c1\u01bf\u00c2\u01c1\u00c3\u01c3\u00c4\u01c5\u00c5\u01c7" + - "\u00c6\u01c9\u00c7\u01cb\u00c8\u01cd\u00c9\u01cf\u00ca\u01d1\u00cb\u01d3" + - "\u00cc\u01d5\u00cd\u01d7\u00ce\u01d9\u00cf\u01db\u00d0\u01dd\u00d1\u01df" + - "\u00d2\u01e1\u00d3\u01e3\u00d4\u01e5\u00d5\u01e7\u00d6\u01e9\u00d7\u01eb" + - "\u00d8\u01ed\u00d9\u01ef\u00da\u01f1\u00db\u01f3\u00dc\u01f5\u00dd\u01f7" + - "\u00de\u01f9\u00df\u01fb\u00e0\u01fd\u00e1\u01ff\u00e2\u0201\u00e3\u0203" + - "\u00e4\u0205\u00e5\u0207\u00e6\u0209\u00e7\u020b\u00e8\u020d\u00e9\u020f" + - "\u00ea\u0211\u00eb\u0213\u00ec\u0215\u00ed\u0217\u00ee\u0219\u00ef\u021b" + - "\u00f0\u021d\u00f1\u021f\u00f2\u0221\u00f3\u0223\u00f4\u0225\u00f5\u0227" + - "\u00f6\u0229\u00f7\u022b\u00f8\u022d\u00f9\u022f\u00fa\u0231\u00fb\u0233" + - "\u00fc\u0235\u00fd\u0237\u00fe\u0239\u00ff\u023b\u0100\u023d\u0101\u023f" + - "\u0102\u0241\u0103\u0243\u0104\u0245\u0105\u0247\u0106\u0249\u0107\u024b" + - "\u0108\u024d\u0109\u024f\u010a\u0251\u010b\u0253\u010c\u0255\u010d\u0257" + - "\u010e\u0259\u010f\u025b\u0110\u025d\u0111\u025f\u0112\u0261\u0113\u0263" + - "\u0114\u0265\u0115\u0267\u0116\u0269\u0117\u026b\u0118\u026d\u0119\u026f" + - "\u011a\u0271\u011b\u0273\u011c\u0275\u011d\u0277\u011e\u0279\u011f\u027b" + - "\u0120\u027d\u0121\u027f\u0122\u0281\u0123\u0283\u0124\u0285\u0125\u0287" + - "\u0126\u0289\u0127\u028b\u0128\u028d\u0129\u028f\u012a\u0291\u012b\u0293" + - "\u012c\u0295\u012d\u0297\u012e\u0299\u012f\u029b\u0130\u029d\u0131\u029f" + - "\u0132\u02a1\u0133\u02a3\u0134\u02a5\u0135\u02a7\u0136\u02a9\u0137\u02ab" + - "\u0138\u02ad\u0139\u02af\u013a\u02b1\u013b\u02b3\u013c\u02b5\u013d\u02b7" + - "\u013e\u02b9\u013f\u02bb\u0140\u02bd\u0141\u02bf\u0142\u02c1\u0143\u02c3" + - "\u0144\u02c5\u0145\u02c7\u0146\u02c9\u0147\u02cb\u0148\u02cd\u0149\u02cf" + - "\u014a\u02d1\u014b\u02d3\u014c\u02d5\u014d\u02d7\u014e\u02d9\u014f\u02db" + - "\u0150\u02dd\u0151\u02df\u0152\u02e1\u0153\u02e3\u0154\u02e5\u0155\u02e7" + - "\u0156\u02e9\u0157\u02eb\u0158\u02ed\u0159\u02ef\u015a\u02f1\u015b\u02f3" + - "\u015c\u02f5\u015d\u02f7\u015e\u02f9\u015f\u02fb\u0160\u02fd\u0161\u02ff" + - "\u0162\u0301\u0163\u0303\u0164\u0305\u0165\u0307\u0166\u0309\u0167\u030b" + - "\u0168\u030d\u0169\u030f\u016a\u0311\u016b\u0313\u016c\u0315\u016d\u0317" + - "\u016e\u0319\u016f\u031b\u0170\u031d\u0171\u031f\u0172\u0321\u0173\u0323" + - "\u0174\u0325\u0175\u0327\u0176\u0329\u0177\u032b\u0178\u032d\u0179\u032f" + - "\u017a\u0331\u017b\u0333\u017c\u0335\u017d\u0337\u017e\u0339\u017f\u033b" + - "\u0180\u033d\u0181\u033f\u0182\u0341\u0183\u0343\u0184\u0345\u0185\u0347" + - "\u0186\u0349\u0187\u034b\u0188\u034d\u0189\u034f\u018a\u0351\u018b\u0353" + - "\u018c\u0355\u018d\u0357\u018e\u0359\u018f\u035b\u0190\u035d\u0191\u035f" + - "\u0192\u0361\u0193\u0363\u0194\u0365\u0195\u0367\u0196\u0369\u0197\u036b" + - "\u0198\u036d\u0199\u036f\u019a\u0371\u019b\u0373\u019c\u0375\u019d\u0377" + - "\u019e\u0379\u019f\u037b\u01a0\u037d\u01a1\u037f\u01a2\u0381\u01a3\u0383" + - "\u01a4\u0385\u01a5\u0387\u01a6\u0389\u01a7\u038b\u01a8\u038d\u01a9\u038f" + - "\u01aa\u0391\u01ab\u0393\u01ac\u0395\u01ad\u0397\u01ae\u0399\u01af\u039b" + - "\u01b0\u039d\u01b1\u039f\u01b2\u03a1\u01b3\u03a3\u01b4\u03a5\u01b5\u03a7" + - "\u01b6\u03a9\u01b7\u03ab\u01b8\u03ad\u01b9\u03af\u01ba\u03b1\u01bb\u03b3" + - "\u01bc\u03b5\u01bd\u03b7\u01be\u03b9\u01bf\u03bb\u01c0\u03bd\u01c1\u03bf" + - "\u01c2\u03c1\u01c3\u03c3\u01c4\u03c5\u01c5\u03c7\u01c6\u03c9\u01c7\u03cb" + - "\u01c8\u03cd\u01c9\u03cf\u01ca\u03d1\u01cb\u03d3\u01cc\u03d5\u01cd\u03d7" + - "\u01ce\u03d9\u01cf\u03db\u01d0\u03dd\u01d1\u03df\u01d2\u03e1\u01d3\u03e3" + - "\u01d4\u03e5\u01d5\u03e7\u01d6\u03e9\u01d7\u03eb\u01d8\u03ed\u01d9\u03ef" + - "\u01da\u03f1\u01db\u03f3\u01dc\u03f5\u01dd\u03f7\u01de\u03f9\u01df\u03fb" + - "\u01e0\u03fd\u01e1\u03ff\u01e2\u0401\u01e3\u0403\u01e4\u0405\u01e5\u0407" + - "\u01e6\u0409\u01e7\u040b\u01e8\u040d\u01e9\u040f\u01ea\u0411\u01eb\u0413" + - "\u01ec\u0415\u01ed\u0417\u01ee\u0419\u01ef\u041b\u01f0\u041d\u01f1\u041f" + - "\u01f2\u0421\u01f3\u0423\u01f4\u0425\u01f5\u0427\u01f6\u0429\u01f7\u042b" + - "\u01f8\u042d\u01f9\u042f\u01fa\u0431\u01fb\u0433\u01fc\u0435\u01fd\u0437" + - "\u01fe\u0439\u01ff\u043b\u0200\u043d\u0201\u043f\u0202\u0441\u0203\u0443" + - "\u0204\u0445\u0205\u0447\u0206\u0449\u0207\u044b\u0208\u044d\u0209\u044f" + - "\u020a\u0451\u020b\u0453\u020c\u0455\u020d\u0457\u020e\u0459\u020f\u045b" + - "\u0210\u045d\u0211\u045f\u0212\u0461\u0213\u0463\u0214\u0465\u0215\u0467" + - "\u0216\u0469\u0217\u046b\u0218\u046d\u0219\u046f\u021a\u0471\u021b\u0473" + - "\u021c\u0475\u021d\u0477\u021e\u0479\u021f\u047b\u0220\u047d\u0221\u047f" + - "\u0222\u0481\u0223\u0483\u0224\u0485\u0225\u0487\u0226\u0489\u0227\u048b" + - "\u0228\u048d\u0229\u048f\u022a\u0491\u022b\u0493\u022c\u0495\u022d\u0497" + - "\u022e\u0499\u022f\u049b\u0230\u049d\u0231\u049f\u0232\u04a1\u0233\u04a3" + - "\u0234\u04a5\u0235\u04a7\u0236\u04a9\u0237\u04ab\u0238\u04ad\u0239\u04af" + - "\u023a\u04b1\u023b\u04b3\u023c\u04b5\u023d\u04b7\u023e\u04b9\u023f\u04bb" + - "\u0240\u04bd\u0241\u04bf\u0242\u04c1\u0243\u04c3\u0244\u04c5\u0245\u04c7" + - "\u0246\u04c9\u0247\u04cb\u0248\u04cd\u0249\u04cf\u024a\u04d1\u024b\u04d3" + - "\u024c\u04d5\u024d\u04d7\u024e\u04d9\u024f\u04db\u0250\u04dd\u0251\u04df" + - "\u0252\u04e1\u0253\u04e3\u0254\u04e5\u0255\u04e7\u0256\u04e9\u0257\u04eb" + - "\u0258\u04ed\u0259\u04ef\u025a\u04f1\u025b\u04f3\u025c\u04f5\u025d\u04f7" + - "\u025e\u04f9\u025f\u04fb\u0260\u04fd\u0261\u04ff\u0262\u0501\u0263\u0503" + - "\u0264\u0505\u0265\u0507\u0266\u0509\u0267\u050b\u0268\u050d\u0269\u050f" + - "\u026a\u0511\u026b\u0513\u026c\u0515\u026d\u0517\u026e\u0519\u026f\u051b" + - "\u0270\u051d\u0271\u051f\u0272\u0521\u0273\u0523\u0274\u0525\u0275\u0527" + - "\u0276\u0529\u0277\u052b\u0278\u052d\u0279\u052f\u027a\u0531\u027b\u0533" + - "\u027c\u0535\u027d\u0537\u027e\u0539\u027f\u053b\u0280\u053d\u0281\u053f" + - "\u0282\u0541\u0283\u0543\u0284\u0545\u0285\u0547\u0286\u0549\u0287\u054b" + - "\u0288\u054d\u0289\u054f\u028a\u0551\u028b\u0553\u028c\u0555\u028d\u0557" + - "\u028e\u0559\u028f\u055b\u0290\u055d\u0291\u055f\u0292\u0561\u0293\u0563" + - "\u0294\u0565\u0295\u0567\u0296\u0569\u0297\u056b\u0298\u056d\u0299\u056f" + - "\u029a\u0571\u029b\u0573\u029c\u0575\u029d\u0577\u029e\u0579\u029f\u057b" + - "\u02a0\u057d\u02a1\u057f\u02a2\u0581\u02a3\u0583\u02a4\u0585\u02a5\u0587" + - "\u02a6\u0589\u02a7\u058b\u02a8\u058d\u02a9\u058f\u02aa\u0591\u02ab\u0593" + - "\u02ac\u0595\u02ad\u0597\u02ae\u0599\u02af\u059b\u02b0\u059d\u02b1\u059f" + - "\u02b2\u05a1\u02b3\u05a3\u02b4\u05a5\u02b5\u05a7\u02b6\u05a9\u02b7\u05ab" + - "\u02b8\u05ad\u02b9\u05af\u02ba\u05b1\u02bb\u05b3\u02bc\u05b5\u02bd\u05b7" + - "\u02be\u05b9\u02bf\u05bb\u02c0\u05bd\u02c1\u05bf\u02c2\u05c1\u02c3\u05c3" + - "\u02c4\u05c5\u02c5\u05c7\u02c6\u05c9\u02c7\u05cb\u02c8\u05cd\u02c9\u05cf" + - "\u02ca\u05d1\u02cb\u05d3\u02cc\u05d5\u02cd\u05d7\u02ce\u05d9\u02cf\u05db" + - "\u02d0\u05dd\u02d1\u05df\u02d2\u05e1\u02d3\u05e3\u02d4\u05e5\u02d5\u05e7" + - "\u02d6\u05e9\u02d7\u05eb\u02d8\u05ed\u02d9\u05ef\u02da\u05f1\u02db\u05f3" + - "\u02dc\u05f5\u02dd\u05f7\u02de\u05f9\u02df\u05fb\u02e0\u05fd\u02e1\u05ff" + - "\u02e2\u0601\u02e3\u0603\u02e4\u0605\u02e5\u0607\u02e6\u0609\u02e7\u060b" + - "\u02e8\u060d\u02e9\u060f\u02ea\u0611\u02eb\u0613\u02ec\u0615\u02ed\u0617" + - "\u02ee\u0619\u02ef\u061b\u02f0\u061d\u02f1\u061f\u02f2\u0621\u02f3\u0623" + - "\u02f4\u0625\u02f5\u0627\u02f6\u0629\u02f7\u062b\u02f8\u062d\u02f9\u062f" + - "\u02fa\u0631\u02fb\u0633\u02fc\u0635\u02fd\u0637\u02fe\u0639\u02ff\u063b" + - "\u0300\u063d\u0301\u063f\u0302\u0641\u0303\u0643\u0304\u0645\u0305\u0647" + - "\u0306\u0649\u0307\u064b\u0308\u064d\u0309\u064f\u030a\u0651\u030b\u0653" + - "\u030c\u0655\u030d\u0657\u030e\u0659\u030f\u065b\u0310\u065d\u0311\u065f" + - "\u0312\u0661\u0313\u0663\u0314\u0665\u0315\u0667\u0316\u0669\u0317\u066b" + - "\u0318\u066d\u0319\u066f\u031a\u0671\u031b\u0673\u031c\u0675\u031d\u0677" + - "\u031e\u0679\u031f\u067b\u0320\u067d\u0321\u067f\u0322\u0681\u0323\u0683" + - "\u0324\u0685\u0325\u0687\u0326\u0689\u0327\u068b\u0328\u068d\u0329\u068f" + - "\u032a\u0691\u032b\u0693\u032c\u0695\u032d\u0697\u032e\u0699\u032f\u069b" + - "\u0330\u069d\u0331\u069f\u0332\u06a1\u0333\u06a3\u0334\u06a5\u0335\u06a7" + - "\u0336\u06a9\u0337\u06ab\u0338\u06ad\u0339\u06af\u033a\u06b1\u033b\u06b3" + - "\u033c\u06b5\u033d\u06b7\u033e\u06b9\u033f\u06bb\u0340\u06bd\u0341\u06bf" + - "\u0342\u06c1\u0343\u06c3\u0344\3\2&\5\2\13\f\17\17\"\"\4\2CCcc\4\2DDd" + - "d\4\2EEee\4\2FFff\4\2GGgg\4\2HHhh\4\2IIii\4\2JJjj\4\2KKkk\4\2LLll\4\2" + - "MMmm\4\2NNnn\4\2OOoo\4\2PPpp\4\2QQqq\4\2RRrr\4\2SSss\4\2TTtt\4\2UUuu\4" + - "\2VVvv\4\2WWww\4\2XXxx\4\2YYyy\4\2ZZzz\4\2[[{{\4\2\\\\||\4\2\62;CH\3\2" + - "\62;\4\2$$^^\4\2))^^\4\2^^bb\5\2C\\aac|\7\2&&\62;C\\aac|\6\2C\\aac|\u00a3" + - "\1\b\2&&\62;C\\aac|\u00a3\1\2\u21e1\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2" + - "\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2" + - "S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3" + - "\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2" + - "\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2" + - "y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083" + - "\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2" + - "\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095" + - "\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2" + - "\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7" + - "\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2" + - "\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9" + - "\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2" + - "\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb" + - "\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2" + - "\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd" + - "\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2" + - "\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef" + - "\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2" + - "\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101" + - "\3\2\2\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2" + - "\2\2\u010b\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113" + - "\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2" + - "\2\2\u011d\3\2\2\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125" + - "\3\2\2\2\2\u0127\3\2\2\2\2\u0129\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2" + - "\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\2\u0135\3\2\2\2\2\u0137" + - "\3\2\2\2\2\u0139\3\2\2\2\2\u013b\3\2\2\2\2\u013d\3\2\2\2\2\u013f\3\2\2" + - "\2\2\u0141\3\2\2\2\2\u0143\3\2\2\2\2\u0145\3\2\2\2\2\u0147\3\2\2\2\2\u0149" + - "\3\2\2\2\2\u014b\3\2\2\2\2\u014d\3\2\2\2\2\u014f\3\2\2\2\2\u0151\3\2\2" + - "\2\2\u0153\3\2\2\2\2\u0155\3\2\2\2\2\u0157\3\2\2\2\2\u0159\3\2\2\2\2\u015b" + - "\3\2\2\2\2\u015d\3\2\2\2\2\u015f\3\2\2\2\2\u0161\3\2\2\2\2\u0163\3\2\2" + - "\2\2\u0165\3\2\2\2\2\u0167\3\2\2\2\2\u0169\3\2\2\2\2\u016b\3\2\2\2\2\u016d" + - "\3\2\2\2\2\u016f\3\2\2\2\2\u0171\3\2\2\2\2\u0173\3\2\2\2\2\u0175\3\2\2" + - "\2\2\u0177\3\2\2\2\2\u0179\3\2\2\2\2\u017b\3\2\2\2\2\u017d\3\2\2\2\2\u017f" + - "\3\2\2\2\2\u0181\3\2\2\2\2\u0183\3\2\2\2\2\u0185\3\2\2\2\2\u0187\3\2\2" + - "\2\2\u0189\3\2\2\2\2\u018b\3\2\2\2\2\u018d\3\2\2\2\2\u018f\3\2\2\2\2\u0191" + - "\3\2\2\2\2\u0193\3\2\2\2\2\u0195\3\2\2\2\2\u0197\3\2\2\2\2\u0199\3\2\2" + - "\2\2\u019b\3\2\2\2\2\u019d\3\2\2\2\2\u019f\3\2\2\2\2\u01a1\3\2\2\2\2\u01a3" + - "\3\2\2\2\2\u01a5\3\2\2\2\2\u01a7\3\2\2\2\2\u01a9\3\2\2\2\2\u01ab\3\2\2" + - "\2\2\u01ad\3\2\2\2\2\u01af\3\2\2\2\2\u01b1\3\2\2\2\2\u01b3\3\2\2\2\2\u01b5" + - "\3\2\2\2\2\u01b7\3\2\2\2\2\u01b9\3\2\2\2\2\u01bb\3\2\2\2\2\u01bd\3\2\2" + - "\2\2\u01bf\3\2\2\2\2\u01c1\3\2\2\2\2\u01c3\3\2\2\2\2\u01c5\3\2\2\2\2\u01c7" + - "\3\2\2\2\2\u01c9\3\2\2\2\2\u01cb\3\2\2\2\2\u01cd\3\2\2\2\2\u01cf\3\2\2" + - "\2\2\u01d1\3\2\2\2\2\u01d3\3\2\2\2\2\u01d5\3\2\2\2\2\u01d7\3\2\2\2\2\u01d9" + - "\3\2\2\2\2\u01db\3\2\2\2\2\u01dd\3\2\2\2\2\u01df\3\2\2\2\2\u01e1\3\2\2" + - "\2\2\u01e3\3\2\2\2\2\u01e5\3\2\2\2\2\u01e7\3\2\2\2\2\u01e9\3\2\2\2\2\u01eb" + - "\3\2\2\2\2\u01ed\3\2\2\2\2\u01ef\3\2\2\2\2\u01f1\3\2\2\2\2\u01f3\3\2\2" + - "\2\2\u01f5\3\2\2\2\2\u01f7\3\2\2\2\2\u01f9\3\2\2\2\2\u01fb\3\2\2\2\2\u01fd" + - "\3\2\2\2\2\u01ff\3\2\2\2\2\u0201\3\2\2\2\2\u0203\3\2\2\2\2\u0205\3\2\2" + - "\2\2\u0207\3\2\2\2\2\u0209\3\2\2\2\2\u020b\3\2\2\2\2\u020d\3\2\2\2\2\u020f" + - "\3\2\2\2\2\u0211\3\2\2\2\2\u0213\3\2\2\2\2\u0215\3\2\2\2\2\u0217\3\2\2" + - "\2\2\u0219\3\2\2\2\2\u021b\3\2\2\2\2\u021d\3\2\2\2\2\u021f\3\2\2\2\2\u0221" + - "\3\2\2\2\2\u0223\3\2\2\2\2\u0225\3\2\2\2\2\u0227\3\2\2\2\2\u0229\3\2\2" + - "\2\2\u022b\3\2\2\2\2\u022d\3\2\2\2\2\u022f\3\2\2\2\2\u0231\3\2\2\2\2\u0233" + - "\3\2\2\2\2\u0235\3\2\2\2\2\u0237\3\2\2\2\2\u0239\3\2\2\2\2\u023b\3\2\2" + - "\2\2\u023d\3\2\2\2\2\u023f\3\2\2\2\2\u0241\3\2\2\2\2\u0243\3\2\2\2\2\u0245" + - "\3\2\2\2\2\u0247\3\2\2\2\2\u0249\3\2\2\2\2\u024b\3\2\2\2\2\u024d\3\2\2" + - "\2\2\u024f\3\2\2\2\2\u0251\3\2\2\2\2\u0253\3\2\2\2\2\u0255\3\2\2\2\2\u0257" + - "\3\2\2\2\2\u0259\3\2\2\2\2\u025b\3\2\2\2\2\u025d\3\2\2\2\2\u025f\3\2\2" + - "\2\2\u0261\3\2\2\2\2\u0263\3\2\2\2\2\u0265\3\2\2\2\2\u0267\3\2\2\2\2\u0269" + - "\3\2\2\2\2\u026b\3\2\2\2\2\u026d\3\2\2\2\2\u026f\3\2\2\2\2\u0271\3\2\2" + - "\2\2\u0273\3\2\2\2\2\u0275\3\2\2\2\2\u0277\3\2\2\2\2\u0279\3\2\2\2\2\u027b" + - "\3\2\2\2\2\u027d\3\2\2\2\2\u027f\3\2\2\2\2\u0281\3\2\2\2\2\u0283\3\2\2" + - "\2\2\u0285\3\2\2\2\2\u0287\3\2\2\2\2\u0289\3\2\2\2\2\u028b\3\2\2\2\2\u028d" + - "\3\2\2\2\2\u028f\3\2\2\2\2\u0291\3\2\2\2\2\u0293\3\2\2\2\2\u0295\3\2\2" + - "\2\2\u0297\3\2\2\2\2\u0299\3\2\2\2\2\u029b\3\2\2\2\2\u029d\3\2\2\2\2\u029f" + - "\3\2\2\2\2\u02a1\3\2\2\2\2\u02a3\3\2\2\2\2\u02a5\3\2\2\2\2\u02a7\3\2\2" + - "\2\2\u02a9\3\2\2\2\2\u02ab\3\2\2\2\2\u02ad\3\2\2\2\2\u02af\3\2\2\2\2\u02b1" + - "\3\2\2\2\2\u02b3\3\2\2\2\2\u02b5\3\2\2\2\2\u02b7\3\2\2\2\2\u02b9\3\2\2" + - "\2\2\u02bb\3\2\2\2\2\u02bd\3\2\2\2\2\u02bf\3\2\2\2\2\u02c1\3\2\2\2\2\u02c3" + - "\3\2\2\2\2\u02c5\3\2\2\2\2\u02c7\3\2\2\2\2\u02c9\3\2\2\2\2\u02cb\3\2\2" + - "\2\2\u02cd\3\2\2\2\2\u02cf\3\2\2\2\2\u02d1\3\2\2\2\2\u02d3\3\2\2\2\2\u02d5" + - "\3\2\2\2\2\u02d7\3\2\2\2\2\u02d9\3\2\2\2\2\u02db\3\2\2\2\2\u02dd\3\2\2" + - "\2\2\u02df\3\2\2\2\2\u02e1\3\2\2\2\2\u02e3\3\2\2\2\2\u02e5\3\2\2\2\2\u02e7" + - "\3\2\2\2\2\u02e9\3\2\2\2\2\u02eb\3\2\2\2\2\u02ed\3\2\2\2\2\u02ef\3\2\2" + - "\2\2\u02f1\3\2\2\2\2\u02f3\3\2\2\2\2\u02f5\3\2\2\2\2\u02f7\3\2\2\2\2\u02f9" + - "\3\2\2\2\2\u02fb\3\2\2\2\2\u02fd\3\2\2\2\2\u02ff\3\2\2\2\2\u0301\3\2\2" + - "\2\2\u0303\3\2\2\2\2\u0305\3\2\2\2\2\u0307\3\2\2\2\2\u0309\3\2\2\2\2\u030b" + - "\3\2\2\2\2\u030d\3\2\2\2\2\u030f\3\2\2\2\2\u0311\3\2\2\2\2\u0313\3\2\2" + - "\2\2\u0315\3\2\2\2\2\u0317\3\2\2\2\2\u0319\3\2\2\2\2\u031b\3\2\2\2\2\u031d" + - "\3\2\2\2\2\u031f\3\2\2\2\2\u0321\3\2\2\2\2\u0323\3\2\2\2\2\u0325\3\2\2" + - "\2\2\u0327\3\2\2\2\2\u0329\3\2\2\2\2\u032b\3\2\2\2\2\u032d\3\2\2\2\2\u032f" + - "\3\2\2\2\2\u0331\3\2\2\2\2\u0333\3\2\2\2\2\u0335\3\2\2\2\2\u0337\3\2\2" + - "\2\2\u0339\3\2\2\2\2\u033b\3\2\2\2\2\u033d\3\2\2\2\2\u033f\3\2\2\2\2\u0341" + - "\3\2\2\2\2\u0343\3\2\2\2\2\u0345\3\2\2\2\2\u0347\3\2\2\2\2\u0349\3\2\2" + - "\2\2\u034b\3\2\2\2\2\u034d\3\2\2\2\2\u034f\3\2\2\2\2\u0351\3\2\2\2\2\u0353" + - "\3\2\2\2\2\u0355\3\2\2\2\2\u0357\3\2\2\2\2\u0359\3\2\2\2\2\u035b\3\2\2" + - "\2\2\u035d\3\2\2\2\2\u035f\3\2\2\2\2\u0361\3\2\2\2\2\u0363\3\2\2\2\2\u0365" + - "\3\2\2\2\2\u0367\3\2\2\2\2\u0369\3\2\2\2\2\u036b\3\2\2\2\2\u036d\3\2\2" + - "\2\2\u036f\3\2\2\2\2\u0371\3\2\2\2\2\u0373\3\2\2\2\2\u0375\3\2\2\2\2"; - private static final String _serializedATNSegment1 = - "\u0377\3\2\2\2\2\u0379\3\2\2\2\2\u037b\3\2\2\2\2\u037d\3\2\2\2\2\u037f" + - "\3\2\2\2\2\u0381\3\2\2\2\2\u0383\3\2\2\2\2\u0385\3\2\2\2\2\u0387\3\2\2" + - "\2\2\u0389\3\2\2\2\2\u038b\3\2\2\2\2\u038d\3\2\2\2\2\u038f\3\2\2\2\2\u0391" + - "\3\2\2\2\2\u0393\3\2\2\2\2\u0395\3\2\2\2\2\u0397\3\2\2\2\2\u0399\3\2\2" + - "\2\2\u039b\3\2\2\2\2\u039d\3\2\2\2\2\u039f\3\2\2\2\2\u03a1\3\2\2\2\2\u03a3" + - "\3\2\2\2\2\u03a5\3\2\2\2\2\u03a7\3\2\2\2\2\u03a9\3\2\2\2\2\u03ab\3\2\2" + - "\2\2\u03ad\3\2\2\2\2\u03af\3\2\2\2\2\u03b1\3\2\2\2\2\u03b3\3\2\2\2\2\u03b5" + - "\3\2\2\2\2\u03b7\3\2\2\2\2\u03b9\3\2\2\2\2\u03bb\3\2\2\2\2\u03bd\3\2\2" + - "\2\2\u03bf\3\2\2\2\2\u03c1\3\2\2\2\2\u03c3\3\2\2\2\2\u03c5\3\2\2\2\2\u03c7" + - "\3\2\2\2\2\u03c9\3\2\2\2\2\u03cb\3\2\2\2\2\u03cd\3\2\2\2\2\u03cf\3\2\2" + - "\2\2\u03d1\3\2\2\2\2\u03d3\3\2\2\2\2\u03d5\3\2\2\2\2\u03d7\3\2\2\2\2\u03d9" + - "\3\2\2\2\2\u03db\3\2\2\2\2\u03dd\3\2\2\2\2\u03df\3\2\2\2\2\u03e1\3\2\2" + - "\2\2\u03e3\3\2\2\2\2\u03e5\3\2\2\2\2\u03e7\3\2\2\2\2\u03e9\3\2\2\2\2\u03eb" + - "\3\2\2\2\2\u03ed\3\2\2\2\2\u03ef\3\2\2\2\2\u03f1\3\2\2\2\2\u03f3\3\2\2" + - "\2\2\u03f5\3\2\2\2\2\u03f7\3\2\2\2\2\u03f9\3\2\2\2\2\u03fb\3\2\2\2\2\u03fd" + - "\3\2\2\2\2\u03ff\3\2\2\2\2\u0401\3\2\2\2\2\u0403\3\2\2\2\2\u0405\3\2\2" + - "\2\2\u0407\3\2\2\2\2\u0409\3\2\2\2\2\u040b\3\2\2\2\2\u040d\3\2\2\2\2\u040f" + - "\3\2\2\2\2\u0411\3\2\2\2\2\u0413\3\2\2\2\2\u0415\3\2\2\2\2\u0417\3\2\2" + - "\2\2\u0419\3\2\2\2\2\u041b\3\2\2\2\2\u041d\3\2\2\2\2\u041f\3\2\2\2\2\u0421" + - "\3\2\2\2\2\u0423\3\2\2\2\2\u0425\3\2\2\2\2\u0427\3\2\2\2\2\u0429\3\2\2" + - "\2\2\u042b\3\2\2\2\2\u042d\3\2\2\2\2\u042f\3\2\2\2\2\u0431\3\2\2\2\2\u0433" + - "\3\2\2\2\2\u0435\3\2\2\2\2\u0437\3\2\2\2\2\u0439\3\2\2\2\2\u043b\3\2\2" + - "\2\2\u043d\3\2\2\2\2\u043f\3\2\2\2\2\u0441\3\2\2\2\2\u0443\3\2\2\2\2\u0445" + - "\3\2\2\2\2\u0447\3\2\2\2\2\u0449\3\2\2\2\2\u044b\3\2\2\2\2\u044d\3\2\2" + - "\2\2\u044f\3\2\2\2\2\u0451\3\2\2\2\2\u0453\3\2\2\2\2\u0455\3\2\2\2\2\u0457" + - "\3\2\2\2\2\u0459\3\2\2\2\2\u045b\3\2\2\2\2\u045d\3\2\2\2\2\u045f\3\2\2" + - "\2\2\u0461\3\2\2\2\2\u0463\3\2\2\2\2\u0465\3\2\2\2\2\u0467\3\2\2\2\2\u0469" + - "\3\2\2\2\2\u046b\3\2\2\2\2\u046d\3\2\2\2\2\u046f\3\2\2\2\2\u0471\3\2\2" + - "\2\2\u0473\3\2\2\2\2\u0475\3\2\2\2\2\u0477\3\2\2\2\2\u0479\3\2\2\2\2\u047b" + - "\3\2\2\2\2\u047d\3\2\2\2\2\u047f\3\2\2\2\2\u0481\3\2\2\2\2\u0483\3\2\2" + - "\2\2\u0485\3\2\2\2\2\u0487\3\2\2\2\2\u0489\3\2\2\2\2\u048b\3\2\2\2\2\u048d" + - "\3\2\2\2\2\u048f\3\2\2\2\2\u0491\3\2\2\2\2\u0493\3\2\2\2\2\u0495\3\2\2" + - "\2\2\u0497\3\2\2\2\2\u0499\3\2\2\2\2\u049b\3\2\2\2\2\u049d\3\2\2\2\2\u049f" + - "\3\2\2\2\2\u04a1\3\2\2\2\2\u04a3\3\2\2\2\2\u04a5\3\2\2\2\2\u04a7\3\2\2" + - "\2\2\u04a9\3\2\2\2\2\u04ab\3\2\2\2\2\u04ad\3\2\2\2\2\u04af\3\2\2\2\2\u04b1" + - "\3\2\2\2\2\u04b3\3\2\2\2\2\u04b5\3\2\2\2\2\u04b7\3\2\2\2\2\u04b9\3\2\2" + - "\2\2\u04bb\3\2\2\2\2\u04bd\3\2\2\2\2\u04bf\3\2\2\2\2\u04c1\3\2\2\2\2\u04c3" + - "\3\2\2\2\2\u04c5\3\2\2\2\2\u04c7\3\2\2\2\2\u04c9\3\2\2\2\2\u04cb\3\2\2" + - "\2\2\u04cd\3\2\2\2\2\u04cf\3\2\2\2\2\u04d1\3\2\2\2\2\u04d3\3\2\2\2\2\u04d5" + - "\3\2\2\2\2\u04d7\3\2\2\2\2\u04d9\3\2\2\2\2\u04db\3\2\2\2\2\u04dd\3\2\2" + - "\2\2\u04df\3\2\2\2\2\u04e1\3\2\2\2\2\u04e3\3\2\2\2\2\u04e5\3\2\2\2\2\u04e7" + - "\3\2\2\2\2\u04e9\3\2\2\2\2\u04eb\3\2\2\2\2\u04ed\3\2\2\2\2\u04ef\3\2\2" + - "\2\2\u04f1\3\2\2\2\2\u04f3\3\2\2\2\2\u04f5\3\2\2\2\2\u04f7\3\2\2\2\2\u04f9" + - "\3\2\2\2\2\u04fb\3\2\2\2\2\u04fd\3\2\2\2\2\u04ff\3\2\2\2\2\u0501\3\2\2" + - "\2\2\u0503\3\2\2\2\2\u0505\3\2\2\2\2\u0507\3\2\2\2\2\u0509\3\2\2\2\2\u050b" + - "\3\2\2\2\2\u050d\3\2\2\2\2\u050f\3\2\2\2\2\u0511\3\2\2\2\2\u0513\3\2\2" + - "\2\2\u0515\3\2\2\2\2\u0517\3\2\2\2\2\u0519\3\2\2\2\2\u051b\3\2\2\2\2\u051d" + - "\3\2\2\2\2\u051f\3\2\2\2\2\u0521\3\2\2\2\2\u0523\3\2\2\2\2\u0525\3\2\2" + - "\2\2\u0527\3\2\2\2\2\u0529\3\2\2\2\2\u052b\3\2\2\2\2\u052d\3\2\2\2\2\u052f" + - "\3\2\2\2\2\u0531\3\2\2\2\2\u0533\3\2\2\2\2\u0535\3\2\2\2\2\u0537\3\2\2" + - "\2\2\u0539\3\2\2\2\2\u053b\3\2\2\2\2\u053d\3\2\2\2\2\u053f\3\2\2\2\2\u0541" + - "\3\2\2\2\2\u0543\3\2\2\2\2\u0545\3\2\2\2\2\u0547\3\2\2\2\2\u0549\3\2\2" + - "\2\2\u054b\3\2\2\2\2\u054d\3\2\2\2\2\u054f\3\2\2\2\2\u0551\3\2\2\2\2\u0553" + - "\3\2\2\2\2\u0555\3\2\2\2\2\u0557\3\2\2\2\2\u0559\3\2\2\2\2\u055b\3\2\2" + - "\2\2\u055d\3\2\2\2\2\u055f\3\2\2\2\2\u0561\3\2\2\2\2\u0563\3\2\2\2\2\u0565" + - "\3\2\2\2\2\u0567\3\2\2\2\2\u0569\3\2\2\2\2\u056b\3\2\2\2\2\u056d\3\2\2" + - "\2\2\u056f\3\2\2\2\2\u0571\3\2\2\2\2\u0573\3\2\2\2\2\u0575\3\2\2\2\2\u0577" + - "\3\2\2\2\2\u0579\3\2\2\2\2\u057b\3\2\2\2\2\u057d\3\2\2\2\2\u057f\3\2\2" + - "\2\2\u0581\3\2\2\2\2\u0583\3\2\2\2\2\u0585\3\2\2\2\2\u0587\3\2\2\2\2\u0589" + - "\3\2\2\2\2\u058b\3\2\2\2\2\u058d\3\2\2\2\2\u058f\3\2\2\2\2\u0591\3\2\2" + - "\2\2\u0593\3\2\2\2\2\u0595\3\2\2\2\2\u0597\3\2\2\2\2\u0599\3\2\2\2\2\u059b" + - "\3\2\2\2\2\u059d\3\2\2\2\2\u059f\3\2\2\2\2\u05a1\3\2\2\2\2\u05a3\3\2\2" + - "\2\2\u05a5\3\2\2\2\2\u05a7\3\2\2\2\2\u05a9\3\2\2\2\2\u05ab\3\2\2\2\2\u05ad" + - "\3\2\2\2\2\u05af\3\2\2\2\2\u05b1\3\2\2\2\2\u05b3\3\2\2\2\2\u05b5\3\2\2" + - "\2\2\u05b7\3\2\2\2\2\u05b9\3\2\2\2\2\u05bb\3\2\2\2\2\u05bd\3\2\2\2\2\u05bf" + - "\3\2\2\2\2\u05c1\3\2\2\2\2\u05c3\3\2\2\2\2\u05c5\3\2\2\2\2\u05c7\3\2\2" + - "\2\2\u05c9\3\2\2\2\2\u05cb\3\2\2\2\2\u05cd\3\2\2\2\2\u05cf\3\2\2\2\2\u05d1" + - "\3\2\2\2\2\u05d3\3\2\2\2\2\u05d5\3\2\2\2\2\u05d7\3\2\2\2\2\u05d9\3\2\2" + - "\2\2\u05db\3\2\2\2\2\u05dd\3\2\2\2\2\u05df\3\2\2\2\2\u05e1\3\2\2\2\2\u05e3" + - "\3\2\2\2\2\u05e5\3\2\2\2\2\u05e7\3\2\2\2\2\u05e9\3\2\2\2\2\u05eb\3\2\2" + - "\2\2\u05ed\3\2\2\2\2\u05ef\3\2\2\2\2\u05f1\3\2\2\2\2\u05f3\3\2\2\2\2\u05f5" + - "\3\2\2\2\2\u05f7\3\2\2\2\2\u05f9\3\2\2\2\2\u05fb\3\2\2\2\2\u05fd\3\2\2" + - "\2\2\u05ff\3\2\2\2\2\u0601\3\2\2\2\2\u0603\3\2\2\2\2\u0605\3\2\2\2\2\u0607" + - "\3\2\2\2\2\u0609\3\2\2\2\2\u060b\3\2\2\2\2\u060d\3\2\2\2\2\u060f\3\2\2" + - "\2\2\u0611\3\2\2\2\2\u0613\3\2\2\2\2\u0615\3\2\2\2\2\u0617\3\2\2\2\2\u0619" + - "\3\2\2\2\2\u061b\3\2\2\2\2\u061d\3\2\2\2\2\u061f\3\2\2\2\2\u0621\3\2\2" + - "\2\2\u0623\3\2\2\2\2\u0625\3\2\2\2\2\u0627\3\2\2\2\2\u0629\3\2\2\2\2\u062b" + - "\3\2\2\2\2\u062d\3\2\2\2\2\u062f\3\2\2\2\2\u0631\3\2\2\2\2\u0633\3\2\2" + - "\2\2\u0635\3\2\2\2\2\u0637\3\2\2\2\2\u0639\3\2\2\2\2\u063b\3\2\2\2\2\u063d" + - "\3\2\2\2\2\u063f\3\2\2\2\2\u0641\3\2\2\2\2\u0643\3\2\2\2\2\u0645\3\2\2" + - "\2\2\u0647\3\2\2\2\2\u0649\3\2\2\2\2\u064b\3\2\2\2\2\u064d\3\2\2\2\2\u064f" + - "\3\2\2\2\2\u0651\3\2\2\2\2\u0653\3\2\2\2\2\u0655\3\2\2\2\2\u0657\3\2\2" + - "\2\2\u0659\3\2\2\2\2\u065b\3\2\2\2\2\u065d\3\2\2\2\2\u065f\3\2\2\2\2\u0661" + - "\3\2\2\2\2\u0663\3\2\2\2\2\u0665\3\2\2\2\2\u0667\3\2\2\2\2\u0669\3\2\2" + - "\2\2\u066b\3\2\2\2\2\u066d\3\2\2\2\2\u066f\3\2\2\2\2\u0671\3\2\2\2\2\u0673" + - "\3\2\2\2\2\u0675\3\2\2\2\2\u0677\3\2\2\2\2\u0679\3\2\2\2\2\u067b\3\2\2" + - "\2\2\u067d\3\2\2\2\2\u067f\3\2\2\2\2\u0681\3\2\2\2\2\u0683\3\2\2\2\2\u0685" + - "\3\2\2\2\2\u0687\3\2\2\2\2\u0689\3\2\2\2\2\u068b\3\2\2\2\2\u068d\3\2\2" + - "\2\2\u068f\3\2\2\2\2\u0691\3\2\2\2\2\u0693\3\2\2\2\2\u0695\3\2\2\2\2\u0697" + - "\3\2\2\2\2\u0699\3\2\2\2\2\u069b\3\2\2\2\2\u069d\3\2\2\2\2\u069f\3\2\2" + - "\2\2\u06a1\3\2\2\2\2\u06a3\3\2\2\2\2\u06a5\3\2\2\2\2\u06a7\3\2\2\2\2\u06a9" + - "\3\2\2\2\2\u06ab\3\2\2\2\2\u06ad\3\2\2\2\2\u06af\3\2\2\2\2\u06b1\3\2\2" + - "\2\2\u06b3\3\2\2\2\2\u06b5\3\2\2\2\2\u06b7\3\2\2\2\2\u06b9\3\2\2\2\2\u06bb" + - "\3\2\2\2\2\u06bd\3\2\2\2\2\u06bf\3\2\2\2\2\u06c1\3\2\2\2\2\u06c3\3\2\2" + - "\2\3\u06c6\3\2\2\2\5\u06cc\3\2\2\2\7\u06da\3\2\2\2\t\u06e7\3\2\2\2\13" + - "\u06e9\3\2\2\2\r\u06eb\3\2\2\2\17\u06ed\3\2\2\2\21\u06ef\3\2\2\2\23\u06f1" + - "\3\2\2\2\25\u06f3\3\2\2\2\27\u06f5\3\2\2\2\31\u06f7\3\2\2\2\33\u06f9\3" + - "\2\2\2\35\u06fb\3\2\2\2\37\u06fd\3\2\2\2!\u06ff\3\2\2\2#\u0701\3\2\2\2" + - "%\u0703\3\2\2\2\'\u0705\3\2\2\2)\u0707\3\2\2\2+\u0709\3\2\2\2-\u070b\3" + - "\2\2\2/\u070d\3\2\2\2\61\u070f\3\2\2\2\63\u0711\3\2\2\2\65\u0713\3\2\2" + - "\2\67\u0715\3\2\2\29\u0717\3\2\2\2;\u0719\3\2\2\2=\u071b\3\2\2\2?\u071d" + - "\3\2\2\2A\u071f\3\2\2\2C\u072c\3\2\2\2E\u0739\3\2\2\2G\u0746\3\2\2\2I" + - "\u0748\3\2\2\2K\u074e\3\2\2\2M\u0752\3\2\2\2O\u075b\3\2\2\2Q\u0762\3\2" + - "\2\2S\u0769\3\2\2\2U\u076d\3\2\2\2W\u0771\3\2\2\2Y\u0777\3\2\2\2[\u077d" + - "\3\2\2\2]\u0787\3\2\2\2_\u078d\3\2\2\2a\u0791\3\2\2\2c\u079a\3\2\2\2e" + - "\u079f\3\2\2\2g\u07a5\3\2\2\2i\u07ac\3\2\2\2k\u07b4\3\2\2\2m\u07bc\3\2" + - "\2\2o\u07c0\3\2\2\2q\u07c4\3\2\2\2s\u07c8\3\2\2\2u\u07ce\3\2\2\2w\u07d1" + - "\3\2\2\2y\u07d5\3\2\2\2{\u07e0\3\2\2\2}\u07ea\3\2\2\2\177\u07f5\3\2\2" + - "\2\u0081\u0800\3\2\2\2\u0083\u0803\3\2\2\2\u0085\u080a\3\2\2\2\u0087\u0814" + - "\3\2\2\2\u0089\u081f\3\2\2\2\u008b\u082d\3\2\2\2\u008d\u0831\3\2\2\2\u008f" + - "\u083a\3\2\2\2\u0091\u0841\3\2\2\2\u0093\u0847\3\2\2\2\u0095\u0851\3\2" + - "\2\2\u0097\u0859\3\2\2\2\u0099\u0860\3\2\2\2\u009b\u0867\3\2\2\2\u009d" + - "\u086b\3\2\2\2\u009f\u0876\3\2\2\2\u00a1\u087d\3\2\2\2\u00a3\u0882\3\2" + - "\2\2\u00a5\u088a\3\2\2\2\u00a7\u088f\3\2\2\2\u00a9\u0897\3\2\2\2\u00ab" + - "\u089f\3\2\2\2\u00ad\u08a2\3\2\2\2\u00af\u08a4\3\2\2\2\u00b1\u08aa\3\2" + - "\2\2\u00b3\u08af\3\2\2\2\u00b5\u08b6\3\2\2\2\u00b7\u08c2\3\2\2\2\u00b9" + - "\u08ca\3\2\2\2\u00bb\u08d3\3\2\2\2\u00bd\u08d8\3\2\2\2\u00bf\u08dd\3\2" + - "\2\2\u00c1\u08e5\3\2\2\2\u00c3\u08f2\3\2\2\2\u00c5\u08f7\3\2\2\2\u00c7" + - "\u08ff\3\2\2\2\u00c9\u0905\3\2\2\2\u00cb\u090a\3\2\2\2\u00cd\u0916\3\2" + - "\2\2\u00cf\u0920\3\2\2\2\u00d1\u0931\3\2\2\2\u00d3\u0947\3\2\2\2\u00d5" + - "\u095a\3\2\2\2\u00d7\u096f\3\2\2\2\u00d9\u097f\3\2\2\2\u00db\u098a\3\2" + - "\2\2\u00dd\u0990\3\2\2\2\u00df\u0998\3\2\2\2\u00e1\u09a3\3\2\2\2\u00e3" + - "\u09a9\3\2\2\2\u00e5\u09b6\3\2\2\2\u00e7\u09bb\3\2\2\2\u00e9\u09c1\3\2" + - "\2\2\u00eb\u09c9\3\2\2\2\u00ed\u09d2\3\2\2\2\u00ef\u09d8\3\2\2\2\u00f1" + - "\u09e0\3\2\2\2\u00f3\u09ea\3\2\2\2\u00f5\u09fc\3\2\2\2\u00f7\u0a0b\3\2" + - "\2\2\u00f9\u0a1c\3\2\2\2\u00fb\u0a24\3\2\2\2\u00fd\u0a2b\3\2\2\2\u00ff" + - "\u0a37\3\2\2\2\u0101\u0a48\3\2\2\2\u0103\u0a5e\3\2\2\2\u0105\u0a66\3\2" + - "\2\2\u0107\u0a6d\3\2\2\2\u0109\u0a77\3\2\2\2\u010b\u0a82\3\2\2\2\u010d" + - "\u0a8c\3\2\2\2\u010f\u0a9d\3\2\2\2\u0111\u0aab\3\2\2\2\u0113\u0ab4\3\2" + - "\2\2\u0115\u0abc\3\2\2\2\u0117\u0ac7\3\2\2\2\u0119\u0ad7\3\2\2\2\u011b" + - "\u0ae2\3\2\2\2\u011d\u0af5\3\2\2\2\u011f\u0b05\3\2\2\2\u0121\u0b17\3\2" + - "\2\2\u0123\u0b23\3\2\2\2\u0125\u0b2f\3\2\2\2\u0127\u0b38\3\2\2\2\u0129" + - "\u0b41\3\2\2\2\u012b\u0b4c\3\2\2\2\u012d\u0b54\3\2\2\2\u012f\u0b59\3\2" + - "\2\2\u0131\u0b5e\3\2\2\2\u0133\u0b6c\3\2\2\2\u0135\u0b72\3\2\2\2\u0137" + - "\u0b78\3\2\2\2\u0139\u0b82\3\2\2\2\u013b\u0b8d\3\2\2\2\u013d\u0b94\3\2" + - "\2\2\u013f\u0b9d\3\2\2\2\u0141\u0ba8\3\2\2\2\u0143\u0bae\3\2\2\2\u0145" + - "\u0bb2\3\2\2\2\u0147\u0bb7\3\2\2\2\u0149\u0bc1\3\2\2\2\u014b\u0bc9\3\2" + - "\2\2\u014d\u0bd6\3\2\2\2\u014f\u0bf6\3\2\2\2\u0151\u0c03\3\2\2\2\u0153" + - "\u0c10\3\2\2\2\u0155\u0c1d\3\2\2\2\u0157\u0c2f\3\2\2\2\u0159\u0c50\3\2" + - "\2\2\u015b\u0c5d\3\2\2\2\u015d\u0c64\3\2\2\2\u015f\u0c70\3\2\2\2\u0161" + - "\u0c76\3\2\2\2\u0163\u0c7b\3\2\2\2\u0165\u0c84\3\2\2\2\u0167\u0c89\3\2" + - "\2\2\u0169\u0ca0\3\2\2\2\u016b\u0cbc\3\2\2\2\u016d\u0cc0\3\2\2\2\u016f" + - "\u0ccb\3\2\2\2\u0171\u0ccf\3\2\2\2\u0173\u0cd7\3\2\2\2\u0175\u0cdf\3\2" + - "\2\2\u0177\u0ce7\3\2\2\2\u0179\u0cf0\3\2\2\2\u017b\u0cfa\3\2\2\2\u017d" + - "\u0d05\3\2\2\2\u017f\u0d0e\3\2\2\2\u0181\u0d16\3\2\2\2\u0183\u0d1e\3\2" + - "\2\2\u0185\u0d25\3\2\2\2\u0187\u0d2c\3\2\2\2\u0189\u0d36\3\2\2\2\u018b" + - "\u0d41\3\2\2\2\u018d\u0d4c\3\2\2\2\u018f\u0d54\3\2\2\2\u0191\u0d5a\3\2" + - "\2\2\u0193\u0d60\3\2\2\2\u0195\u0d68\3\2\2\2\u0197\u0d6d\3\2\2\2\u0199" + - "\u0d76\3\2\2\2\u019b\u0d81\3\2\2\2\u019d\u0d89\3\2\2\2\u019f\u0d94\3\2" + - "\2\2\u01a1\u0da2\3\2\2\2\u01a3\u0dae\3\2\2\2\u01a5\u0db9\3\2\2\2\u01a7" + - "\u0dc1\3\2\2\2\u01a9\u0dd7\3\2\2\2\u01ab\u0ddf\3\2\2\2\u01ad\u0dea\3\2" + - "\2\2\u01af\u0df3\3\2\2\2\u01b1\u0dfc\3\2\2\2\u01b3\u0dff\3\2\2\2\u01b5" + - "\u0e06\3\2\2\2\u01b7\u0e0d\3\2\2\2\u01b9\u0e12\3\2\2\2\u01bb\u0e1a\3\2" + - "\2\2\u01bd\u0e2b\3\2\2\2\u01bf\u0e41\3\2\2\2\u01c1\u0e46\3\2\2\2\u01c3" + - "\u0e4e\3\2\2\2\u01c5\u0e53\3\2\2\2\u01c7\u0e5a\3\2\2\2\u01c9\u0e63\3\2" + - "\2\2\u01cb\u0e6d\3\2\2\2\u01cd\u0e71\3\2\2\2\u01cf\u0e7a\3\2\2\2\u01d1" + - "\u0e81\3\2\2\2\u01d3\u0e88\3\2\2\2\u01d5\u0e8e\3\2\2\2\u01d7\u0e95\3\2" + - "\2\2\u01d9\u0e9f\3\2\2\2\u01db\u0ea7\3\2\2\2\u01dd\u0eb1\3\2\2\2\u01df" + - "\u0ebb\3\2\2\2\u01e1\u0ec0\3\2\2\2\u01e3\u0ec8\3\2\2\2\u01e5\u0ed1\3\2" + - "\2\2\u01e7\u0ed8\3\2\2\2\u01e9\u0edc\3\2\2\2\u01eb\u0ee4\3\2\2\2\u01ed" + - "\u0eed\3\2\2\2\u01ef\u0ef7\3\2\2\2\u01f1\u0f00\3\2\2\2\u01f3\u0f08\3\2" + - "\2\2\u01f5\u0f0e\3\2\2\2\u01f7\u0f14\3\2\2\2\u01f9\u0f1b\3\2\2\2\u01fb" + - "\u0f22\3\2\2\2\u01fd\u0f28\3\2\2\2\u01ff\u0f2e\3\2\2\2\u0201\u0f34\3\2" + - "\2\2\u0203\u0f3a\3\2\2\2\u0205\u0f44\3\2\2\2\u0207\u0f48\3\2\2\2\u0209" + - "\u0f4e\3\2\2\2\u020b\u0f56\3\2\2\2\u020d\u0f5d\3\2\2\2\u020f\u0f65\3\2" + - "\2\2\u0211\u0f6d\3\2\2\2\u0213\u0f73\3\2\2\2\u0215\u0f78\3\2\2\2\u0217" + - "\u0f7f\3\2\2\2\u0219\u0f84\3\2\2\2\u021b\u0f89\3\2\2\2\u021d\u0f92\3\2" + - "\2\2\u021f\u0f99\3\2\2\2\u0221\u0f9b\3\2\2\2\u0223\u0fa3\3\2\2\2\u0225" + - "\u0fad\3\2\2\2\u0227\u0fb1\3\2\2\2\u0229\u0fb8\3\2\2\2\u022b\u0fbb\3\2" + - "\2\2\u022d\u0fc0\3\2\2\2\u022f\u0fc6\3\2\2\2\u0231\u0fce\3\2\2\2\u0233" + - "\u0fd7\3\2\2\2\u0235\u0fdd\3\2\2\2\u0237\u0fe6\3\2\2\2\u0239\u0fee\3\2" + - "\2\2\u023b\u0ff5\3\2\2\2\u023d\u0fff\3\2\2\2\u023f\u1004\3\2\2\2\u0241" + - "\u1009\3\2\2\2\u0243\u100e\3\2\2\2\u0245\u1017\3\2\2\2\u0247\u101e\3\2" + - "\2\2\u0249\u1024\3\2\2\2\u024b\u102e\3\2\2\2\u024d\u1038\3\2\2\2\u024f" + - "\u1047\3\2\2\2\u0251\u1050\3\2\2\2\u0253\u1053\3\2\2\2\u0255\u105d\3\2" + - "\2\2\u0257\u1067\3\2\2\2\u0259\u106d\3\2\2\2\u025b\u1077\3\2\2\2\u025d" + - "\u107d\3\2\2\2\u025f\u1086\3\2\2\2\u0261\u1091\3\2\2\2\u0263\u109b\3\2" + - "\2\2\u0265\u10a1\3\2\2\2\u0267\u10a7\3\2\2\2\u0269\u10ad\3\2\2\2\u026b" + - "\u10b9\3\2\2\2\u026d\u10c0\3\2\2\2\u026f\u10c9\3\2\2\2\u0271\u10d6\3\2" + - "\2\2\u0273\u10de\3\2\2\2\u0275\u10e2\3\2\2\2\u0277\u10ea\3\2\2\2\u0279" + - "\u10f4\3\2\2\2\u027b\u1101\3\2\2\2\u027d\u110a\3\2\2\2\u027f\u110f\3\2" + - "\2\2\u0281\u1117\3\2\2\2\u0283\u111a\3\2\2\2\u0285\u1124\3\2\2\2\u0287" + - "\u112c\3\2\2\2\u0289\u1131\3\2\2\2\u028b\u1133\3\2\2\2\u028d\u1137\3\2" + - "\2\2\u028f\u1142\3\2\2\2\u0291\u114b\3\2\2\2\u0293\u1151\3\2\2\2\u0295" + - "\u115d\3\2\2\2\u0297\u1166\3\2\2\2\u0299\u116c\3\2\2\2\u029b\u1171\3\2" + - "\2\2\u029d\u1179\3\2\2\2\u029f\u1181\3\2\2\2\u02a1\u1187\3\2\2\2\u02a3" + - "\u118c\3\2\2\2\u02a5\u1193\3\2\2\2\u02a7\u1198\3\2\2\2\u02a9\u119e\3\2" + - "\2\2\u02ab\u11a3\3\2\2\2\u02ad\u11a9\3\2\2\2\u02af\u11b0\3\2\2\2\u02b1" + - "\u11b3\3\2\2\2\u02b3\u11b8\3\2\2\2\u02b5\u11be\3\2\2\2\u02b7\u11c8\3\2" + - "\2\2\u02b9\u11d7\3\2\2\2\u02bb\u11e0\3\2\2\2\u02bd\u11e8\3\2\2\2\u02bf" + - "\u11ed\3\2\2\2\u02c1\u11f4\3\2\2\2\u02c3\u11fa\3\2\2\2\u02c5\u11fc\3\2" + - "\2\2\u02c7\u1201\3\2\2\2\u02c9\u1205\3\2\2\2\u02cb\u120d\3\2\2\2\u02cd" + - "\u1213\3\2\2\2\u02cf\u1220\3\2\2\2\u02d1\u1228\3\2\2\2\u02d3\u122c\3\2" + - "\2\2\u02d5\u1235\3\2\2\2\u02d7\u123c\3\2\2\2\u02d9\u1242\3\2\2\2\u02db" + - "\u1251\3\2\2\2\u02dd\u1266\3\2\2\2\u02df\u1273\3\2\2\2\u02e1\u127a\3\2" + - "\2\2\u02e3\u127e\3\2\2\2\u02e5\u1285\3\2\2\2\u02e7\u128e\3\2\2\2\u02e9" + - "\u1292\3\2\2\2\u02eb\u1297\3\2\2\2\u02ed\u12a0\3\2\2\2\u02ef\u12a7\3\2" + - "\2\2\u02f1\u12ae\3\2\2\2\u02f3\u12b4\3\2\2\2\u02f5\u12b9\3\2\2\2\u02f7" + - "\u12be\3\2\2\2\u02f9\u12c7\3\2\2\2\u02fb\u12cd\3\2\2\2\u02fd\u12d2\3\2" + - "\2\2\u02ff\u12d8\3\2\2\2\u0301\u12e1\3\2\2\2\u0303\u12e9\3\2\2\2\u0305" + - "\u12ef\3\2\2\2\u0307\u12f5\3\2\2\2\u0309\u12fd\3\2\2\2\u030b\u1301\3\2" + - "\2\2\u030d\u1306\3\2\2\2\u030f\u1309\3\2\2\2\u0311\u1314\3\2\2\2\u0313" + - "\u1321\3\2\2\2\u0315\u1326\3\2\2\2\u0317\u1330\3\2\2\2\u0319\u133b\3\2" + - "\2\2\u031b\u133f\3\2\2\2\u031d\u1347\3\2\2\2\u031f\u134e\3\2\2\2\u0321" + - "\u1356\3\2\2\2\u0323\u135d\3\2\2\2\u0325\u1362\3\2\2\2\u0327\u136b\3\2" + - "\2\2\u0329\u1372\3\2\2\2\u032b\u1378\3\2\2\2\u032d\u137f\3\2\2\2\u032f" + - "\u1387\3\2\2\2\u0331\u138e\3\2\2\2\u0333\u139b\3\2\2\2\u0335\u13a2\3\2" + - "\2\2\u0337\u13a5\3\2\2\2\u0339\u13a9\3\2\2\2\u033b\u13b0\3\2\2\2\u033d" + - "\u13b5\3\2\2\2\u033f\u13b9\3\2\2\2\u0341\u13bc\3\2\2\2\u0343\u13c1\3\2" + - "\2\2\u0345\u13c6\3\2\2\2\u0347\u13d0\3\2\2\2\u0349\u13d9\3\2\2\2\u034b" + - "\u13e0\3\2\2\2\u034d\u13e8\3\2\2\2\u034f\u13eb\3\2\2\2\u0351\u13f1\3\2" + - "\2\2\u0353\u13fa\3\2\2\2\u0355\u1405\3\2\2\2\u0357\u140c\3\2\2\2\u0359" + - "\u1410\3\2\2\2\u035b\u1416\3\2\2\2\u035d\u141d\3\2\2\2\u035f\u1422\3\2" + - "\2\2\u0361\u142b\3\2\2\2\u0363\u1433\3\2\2\2\u0365\u143e\3\2\2\2\u0367" + - "\u1444\3\2\2\2\u0369\u1448\3\2\2\2\u036b\u1452\3\2\2\2\u036d\u1461\3\2" + - "\2\2\u036f\u1470\3\2\2\2\u0371\u148b\3\2\2\2\u0373\u14a6\3\2\2\2\u0375" + - "\u14be\3\2\2\2\u0377\u14d8\3\2\2\2\u0379\u14e3\3\2\2\2\u037b\u14ea\3\2" + - "\2\2\u037d\u14f2\3\2\2\2\u037f\u14fc\3\2\2\2\u0381\u1503\3\2\2\2\u0383" + - "\u150c\3\2\2\2\u0385\u1511\3\2\2\2\u0387\u151e\3\2\2\2\u0389\u152e\3\2" + - "\2\2\u038b\u153e\3\2\2\2\u038d\u1546\3\2\2\2\u038f\u154c\3\2\2\2\u0391" + - "\u1552\3\2\2\2\u0393\u1556\3\2\2\2\u0395\u155f\3\2\2\2\u0397\u1567\3\2" + - "\2\2\u0399\u156d\3\2\2\2\u039b\u1577\3\2\2\2\u039d\u1581\3\2\2\2\u039f" + - "\u1588\3\2\2\2\u03a1\u1591\3\2\2\2\u03a3\u1599\3\2\2\2\u03a5\u15a2\3\2" + - "\2\2\u03a7\u15ab\3\2\2\2\u03a9\u15b3\3\2\2\2\u03ab\u15b9\3\2\2\2\u03ad" + - "\u15c4\3\2\2\2\u03af\u15cf\3\2\2\2\u03b1\u15d9\3\2\2\2\u03b3\u15e0\3\2" + - "\2\2\u03b5\u15ec\3\2\2\2\u03b7\u15f2\3\2\2\2\u03b9\u15f8\3\2\2\2\u03bb" + - "\u15fd\3\2\2\2\u03bd\u1602\3\2\2\2\u03bf\u1608\3\2\2\2\u03c1\u160d\3\2" + - "\2\2\u03c3\u1616\3\2\2\2\u03c5\u161e\3\2\2\2\u03c7\u1628\3\2\2\2\u03c9" + - "\u162c\3\2\2\2\u03cb\u1637\3\2\2\2\u03cd\u1643\3\2\2\2\u03cf\u164b\3\2" + - "\2\2\u03d1\u1655\3\2\2\2\u03d3\u165f\3\2\2\2\u03d5\u166a\3\2\2\2\u03d7" + - "\u1679\3\2\2\2\u03d9\u1681\3\2\2\2\u03db\u168c\3\2\2\2\u03dd\u1695\3\2" + - "\2\2\u03df\u169e\3\2\2\2\u03e1\u16a7\3\2\2\2\u03e3\u16af\3\2\2\2\u03e5" + - "\u16b8\3\2\2\2\u03e7\u16c0\3\2\2\2\u03e9\u16c7\3\2\2\2\u03eb\u16d2\3\2" + - "\2\2\u03ed\u16da\3\2\2\2\u03ef\u16e2\3\2\2\2\u03f1\u16e8\3\2\2\2\u03f3" + - "\u16f0\3\2\2\2\u03f5\u16f9\3\2\2\2\u03f7\u1700\3\2\2\2\u03f9\u1707\3\2" + - "\2\2\u03fb\u171c\3\2\2\2\u03fd\u172c\3\2\2\2\u03ff\u1742\3\2\2\2\u0401" + - "\u1754\3\2\2\2\u0403\u175e\3\2\2\2\u0405\u1766\3\2\2\2\u0407\u176d\3\2" + - "\2\2\u0409\u1773\3\2\2\2\u040b\u1778\3\2\2\2\u040d\u1781\3\2\2\2\u040f" + - "\u1788\3\2\2\2\u0411\u1790\3\2\2\2\u0413\u17a0\3\2\2\2\u0415\u17ad\3\2" + - "\2\2\u0417\u17bc\3\2\2\2\u0419\u17c0\3\2\2\2\u041b\u17ca\3\2\2\2\u041d" + - "\u17d5\3\2\2\2\u041f\u17da\3\2\2\2\u0421\u17df\3\2\2\2\u0423\u17e9\3\2" + - "\2\2\u0425\u17ef\3\2\2\2\u0427\u17f6\3\2\2\2\u0429\u1802\3\2\2\2\u042b" + - "\u1808\3\2\2\2\u042d\u1816\3\2\2\2\u042f\u1821\3\2\2\2\u0431\u182e\3\2" + - "\2\2\u0433\u1835\3\2\2\2\u0435\u183c\3\2\2\2\u0437\u1843\3\2\2\2\u0439" + - "\u184b\3\2\2\2\u043b\u1854\3\2\2\2\u043d\u185b\3\2\2\2\u043f\u1860\3\2" + - "\2\2\u0441\u186a\3\2\2\2\u0443\u1873\3\2\2\2\u0445\u187d\3\2\2\2\u0447" + - "\u188a\3\2\2\2\u0449\u1896\3\2\2\2\u044b\u189e\3\2\2\2\u044d\u18ab\3\2" + - "\2\2\u044f\u18af\3\2\2\2\u0451\u18b5\3\2\2\2\u0453\u18ba\3\2\2\2\u0455" + - "\u18c0\3\2\2\2\u0457\u18c5\3\2\2\2\u0459\u18cd\3\2\2\2\u045b\u18d4\3\2" + - "\2\2\u045d\u18d9\3\2\2\2\u045f\u18de\3\2\2\2\u0461\u18e7\3\2\2\2\u0463" + - "\u18f0\3\2\2\2\u0465\u18f5\3\2\2\2\u0467\u18fc\3\2\2\2\u0469\u1902\3\2" + - "\2\2\u046b\u190b\3\2\2\2\u046d\u1919\3\2\2\2\u046f\u1926\3\2\2\2\u0471" + - "\u192a\3\2\2\2\u0473\u1932\3\2\2\2\u0475\u193b\3\2\2\2\u0477\u1948\3\2" + - "\2\2\u0479\u1951\3\2\2\2\u047b\u195c\3\2\2\2\u047d\u1961\3\2\2\2\u047f" + - "\u1968\3\2\2\2\u0481\u196e\3\2\2\2\u0483\u1974\3\2\2\2\u0485\u197e\3\2" + - "\2\2\u0487\u1985\3\2\2\2\u0489\u1990\3\2\2\2\u048b\u199b\3\2\2\2\u048d" + - "\u19a7\3\2\2\2\u048f\u19ad\3\2\2\2\u0491\u19b4\3\2\2\2\u0493\u19bc\3\2" + - "\2\2\u0495\u19c3\3\2\2\2\u0497\u19cd\3\2\2\2\u0499\u19d3\3\2\2\2\u049b" + - "\u19e3\3\2\2\2\u049d\u19eb\3\2\2\2\u049f\u19f7\3\2\2\2\u04a1\u1a04\3\2" + - "\2\2\u04a3\u1a0e\3\2\2\2\u04a5\u1a12\3\2\2\2\u04a7\u1a1c\3\2\2\2\u04a9" + - "\u1a22\3\2\2\2\u04ab\u1a29\3\2\2\2\u04ad\u1a35\3\2\2\2\u04af\u1a3b\3\2" + - "\2\2\u04b1\u1a46\3\2\2\2\u04b3\u1a52\3\2\2\2\u04b5\u1a5d\3\2\2\2\u04b7" + - "\u1a62\3\2\2\2\u04b9\u1a6b\3\2\2\2\u04bb\u1a75\3\2\2\2\u04bd\u1a7f\3\2" + - "\2\2\u04bf\u1a84\3\2\2\2\u04c1\u1a89\3\2\2\2\u04c3\u1a8e\3\2\2\2\u04c5" + - "\u1a93\3\2\2\2\u04c7\u1a9d\3\2\2\2\u04c9\u1aab\3\2\2\2\u04cb\u1abb\3\2" + - "\2\2\u04cd\u1ac2\3\2\2\2\u04cf\u1ac5\3\2\2\2\u04d1\u1acb\3\2\2\2\u04d3" + - "\u1adb\3\2\2\2\u04d5\u1ae4\3\2\2\2\u04d7\u1af0\3\2\2\2\u04d9\u1b03\3\2" + - "\2\2\u04db\u1b1a\3\2\2\2\u04dd\u1b33\3\2\2\2\u04df\u1b3d\3\2\2\2\u04e1" + - "\u1b48\3\2\2\2\u04e3\u1b52\3\2\2\2\u04e5\u1b5e\3\2\2\2\u04e7\u1b64\3\2" + - "\2\2\u04e9\u1b6c\3\2\2\2\u04eb\u1b7c\3\2\2\2\u04ed\u1b89\3\2\2\2\u04ef" + - "\u1b98\3\2\2\2\u04f1\u1b9d\3\2\2\2\u04f3\u1ba2\3\2\2\2\u04f5\u1bab\3\2" + - "\2\2\u04f7\u1bb3\3\2\2\2\u04f9\u1bb8\3\2\2\2\u04fb\u1bc0\3\2\2\2\u04fd" + - "\u1bca\3\2\2\2\u04ff\u1bd6\3\2\2\2\u0501\u1bdc\3\2\2\2\u0503\u1be8\3\2" + - "\2\2\u0505\u1bee\3\2\2\2\u0507\u1bf5\3\2\2\2\u0509\u1bfd\3\2\2\2\u050b" + - "\u1c06\3\2\2\2\u050d\u1c0e\3\2\2\2\u050f\u1c15\3\2\2\2\u0511\u1c1b\3\2" + - "\2\2\u0513\u1c22\3\2\2\2\u0515\u1c28\3\2\2\2\u0517\u1c2e\3\2\2\2\u0519" + - "\u1c33\3\2\2\2\u051b\u1c4d\3\2\2\2\u051d\u1c64\3\2\2\2\u051f\u1c7b\3\2" + - "\2\2\u0521\u1c94\3\2\2\2\u0523\u1c9a\3\2\2\2\u0525\u1ca1\3\2\2\2\u0527" + - "\u1ca7\3\2\2\2\u0529\u1cb0\3\2\2\2\u052b\u1cba\3\2\2\2\u052d\u1cc0\3\2" + - "\2\2\u052f\u1cc7\3\2\2\2\u0531\u1ccf\3\2\2\2\u0533\u1cd8\3\2\2\2\u0535" + - "\u1ce0\3\2\2\2\u0537\u1ce9\3\2\2\2\u0539\u1cf2\3\2\2\2\u053b\u1cfa\3\2" + - "\2\2\u053d\u1d02\3\2\2\2\u053f\u1d07\3\2\2\2\u0541\u1d10\3\2\2\2\u0543" + - "\u1d15\3\2\2\2\u0545\u1d1e\3\2\2\2\u0547\u1d24\3\2\2\2\u0549\u1d31\3\2" + - "\2\2\u054b\u1d38\3\2\2\2\u054d\u1d3d\3\2\2\2\u054f\u1d44\3\2\2\2\u0551" + - "\u1d4c\3\2\2\2\u0553\u1d51\3\2\2\2\u0555\u1d57\3\2\2\2\u0557\u1d5c\3\2" + - "\2\2\u0559\u1d61\3\2\2\2\u055b\u1d65\3\2\2\2\u055d\u1d6a\3\2\2\2\u055f" + - "\u1d74\3\2\2\2\u0561\u1d80\3\2\2\2\u0563\u1d8b\3\2\2\2\u0565\u1d98\3\2" + - "\2\2\u0567\u1da0\3\2\2\2\u0569\u1daa\3\2\2\2\u056b\u1db0\3\2\2\2\u056d" + - "\u1db8\3\2\2\2\u056f\u1dc4\3\2\2\2\u0571\u1dd2\3\2\2\2\u0573\u1ddc\3\2" + - "\2\2\u0575\u1de8\3\2\2\2\u0577\u1dee\3\2\2\2\u0579\u1df4\3\2\2\2\u057b" + - "\u1dfb\3\2\2\2\u057d\u1e05\3\2\2\2\u057f\u1e15\3\2\2\2\u0581\u1e21\3\2" + - "\2\2\u0583\u1e2c\3\2\2\2\u0585\u1e39\3\2\2\2\u0587\u1e42\3\2\2\2\u0589" + - "\u1e49\3\2\2\2\u058b\u1e52\3\2\2\2\u058d\u1e59\3\2\2\2\u058f\u1e61\3\2" + - "\2\2\u0591\u1e6c\3\2\2\2\u0593\u1e7d\3\2\2\2\u0595\u1e87\3\2\2\2\u0597" + - "\u1e8e\3\2\2\2\u0599\u1e97\3\2\2\2\u059b\u1ea4\3\2\2\2\u059d\u1ea9\3\2" + - "\2\2\u059f\u1eb4\3\2\2\2\u05a1\u1ebb\3\2\2\2\u05a3\u1ec4\3\2\2\2\u05a5" + - "\u1ec7\3\2\2\2\u05a7\u1ece\3\2\2\2\u05a9\u1ed9\3\2\2\2\u05ab\u1ee2\3\2" + - "\2\2\u05ad\u1eeb\3\2\2\2\u05af\u1ef3\3\2\2\2\u05b1\u1f05\3\2\2\2\u05b3" + - "\u1f11\3\2\2\2\u05b5\u1f17\3\2\2\2\u05b7\u1f1f\3\2\2\2\u05b9\u1f26\3\2" + - "\2\2\u05bb\u1f2c\3\2\2\2\u05bd\u1f31\3\2\2\2\u05bf\u1f36\3\2\2\2\u05c1" + - "\u1f3d\3\2\2\2\u05c3\u1f41\3\2\2\2\u05c5\u1f46\3\2\2\2\u05c7\u1f53\3\2" + - "\2\2\u05c9\u1f5a\3\2\2\2\u05cb\u1f67\3\2\2\2\u05cd\u1f6f\3\2\2\2\u05cf" + - "\u1f78\3\2\2\2\u05d1\u1f83\3\2\2\2\u05d3\u1f8b\3\2\2\2\u05d5\u1f92\3\2" + - "\2\2\u05d7\u1f99\3\2\2\2\u05d9\u1fa0\3\2\2\2\u05db\u1fa7\3\2\2\2\u05dd" + - "\u1fad\3\2\2\2\u05df\u1fb5\3\2\2\2\u05e1\u1fbf\3\2\2\2\u05e3\u1fcb\3\2" + - "\2\2\u05e5\u1fd0\3\2\2\2\u05e7\u1fd4\3\2\2\2\u05e9\u1fda\3\2\2\2\u05eb" + - "\u1fec\3\2\2\2\u05ed\u1ff1\3\2\2\2\u05ef\u1ff8\3\2\2\2\u05f1\u1fff\3\2" + - "\2\2\u05f3\u2006\3\2\2\2\u05f5\u200b\3\2\2\2\u05f7\u2010\3\2\2\2\u05f9" + - "\u2015\3\2\2\2\u05fb\u201a\3\2\2\2\u05fd\u201f\3\2\2\2\u05ff\u2025\3\2" + - "\2\2\u0601\u202a\3\2\2\2\u0603\u202f\3\2\2\2\u0605\u2037\3\2\2\2\u0607" + - "\u2040\3\2\2\2\u0609\u2046\3\2\2\2\u060b\u204d\3\2\2\2\u060d\u2053\3\2" + - "\2\2\u060f\u205b\3\2\2\2\u0611\u2063\3\2\2\2\u0613\u206a\3\2\2\2\u0615" + - "\u2072\3\2\2\2\u0617\u207a\3\2\2\2\u0619\u2082\3\2\2\2\u061b\u208e\3\2" + - "\2\2\u061d\u2095\3\2\2\2\u061f\u209a\3\2\2\2\u0621\u20a6\3\2\2\2\u0623" + - "\u20ad\3\2\2\2\u0625\u20b5\3\2\2\2\u0627\u20be\3\2\2\2\u0629\u20cc\3\2" + - "\2\2\u062b\u20d1\3\2\2\2\u062d\u20d8\3\2\2\2\u062f\u20dc\3\2\2\2\u0631" + - "\u20de\3\2\2\2\u0633\u20e0\3\2\2\2\u0635\u20e3\3\2\2\2\u0637\u20e5\3\2" + - "\2\2\u0639\u20e8\3\2\2\2\u063b\u20ea\3\2\2\2\u063d\u20ec\3\2\2\2\u063f" + - "\u20ee\3\2\2\2\u0641\u20f0\3\2\2\2\u0643\u20f2\3\2\2\2\u0645\u20fc\3\2" + - "\2\2\u0647\u2100\3\2\2\2\u0649\u211c\3\2\2\2\u064b\u212b\3\2\2\2\u064d" + - "\u212e\3\2\2\2\u064f\u2130\3\2\2\2\u0651\u2132\3\2\2\2\u0653\u2134\3\2" + - "\2\2\u0655\u213b\3\2\2\2\u0657\u2141\3\2\2\2\u0659\u2148\3\2\2\2\u065b" + - "\u214a\3\2\2\2\u065d\u214d\3\2\2\2\u065f\u2150\3\2\2\2\u0661\u2153\3\2" + - "\2\2\u0663\u2156\3\2\2\2\u0665\u2158\3\2\2\2\u0667\u215a\3\2\2\2\u0669" + - "\u215d\3\2\2\2\u066b\u2160\3\2\2\2\u066d\u2162\3\2\2\2\u066f\u2164\3\2" + - "\2\2\u0671\u2167\3\2\2\2\u0673\u2169\3\2\2\2\u0675\u216c\3\2\2\2\u0677" + - "\u216f\3\2\2\2\u0679\u2171\3\2\2\2\u067b\u2174\3\2\2\2\u067d\u2177\3\2" + - "\2\2\u067f\u217b\3\2\2\2\u0681\u217e\3\2\2\2\u0683\u2181\3\2\2\2\u0685" + - "\u2185\3\2\2\2\u0687\u2189\3\2\2\2\u0689\u218b\3\2\2\2\u068b\u218e\3\2" + - "\2\2\u068d\u2191\3\2\2\2\u068f\u2194\3\2\2\2\u0691\u2197\3\2\2\2\u0693" + - "\u219b\3\2\2\2\u0695\u219e\3\2\2\2\u0697\u21a2\3\2\2\2\u0699\u21a6\3\2" + - "\2\2\u069b\u21a8\3\2\2\2\u069d\u21aa\3\2\2\2\u069f\u21ac\3\2\2\2\u06a1" + - "\u21af\3\2\2\2\u06a3\u21b3\3\2\2\2\u06a5\u21b6\3\2\2\2\u06a7\u21b8\3\2" + - "\2\2\u06a9\u21ba\3\2\2\2\u06ab\u21bd\3\2\2\2\u06ad\u21c0\3\2\2\2\u06af" + - "\u21c3\3\2\2\2\u06b1\u21c6\3\2\2\2\u06b3\u21c8\3\2\2\2\u06b5\u21ca\3\2" + - "\2\2\u06b7\u21cd\3\2\2\2\u06b9\u21d2\3\2\2\2\u06bb\u21d6\3\2\2\2\u06bd" + - "\u21db\3\2\2\2\u06bf\u21df\3\2\2\2\u06c1\u21e2\3\2\2\2\u06c3\u21e5\3\2" + - "\2\2\u06c5\u06c7\t\2\2\2\u06c6\u06c5\3\2\2\2\u06c7\u06c8\3\2\2\2\u06c8" + - "\u06c6\3\2\2\2\u06c8\u06c9\3\2\2\2\u06c9\u06ca\3\2\2\2\u06ca\u06cb\b\2" + - "\2\2\u06cb\4\3\2\2\2\u06cc\u06cd\7\61\2\2\u06cd\u06ce\7,\2\2\u06ce\u06d2" + - "\3\2\2\2\u06cf\u06d1\13\2\2\2\u06d0\u06cf\3\2\2\2\u06d1\u06d4\3\2\2\2" + - "\u06d2\u06d3\3\2\2\2\u06d2\u06d0\3\2\2\2\u06d3\u06d5\3\2\2\2\u06d4\u06d2" + - "\3\2\2\2\u06d5\u06d6\7,\2\2\u06d6\u06d7\7\61\2\2\u06d7\u06d8\3\2\2\2\u06d8" + - "\u06d9\b\3\3\2\u06d9\6\3\2\2\2\u06da\u06db\7/\2\2\u06db\u06dc\7/\2\2\u06dc" + - "\u06e0\3\2\2\2\u06dd\u06df\13\2\2\2\u06de\u06dd\3\2\2\2\u06df\u06e2\3" + - "\2\2\2\u06e0\u06e1\3\2\2\2\u06e0\u06de\3\2\2\2\u06e1\u06e3\3\2\2\2\u06e2" + - "\u06e0\3\2\2\2\u06e3\u06e4\7\f\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\b\4" + - "\3\2\u06e6\b\3\2\2\2\u06e7\u06e8\t\3\2\2\u06e8\n\3\2\2\2\u06e9\u06ea\t" + - "\4\2\2\u06ea\f\3\2\2\2\u06eb\u06ec\t\5\2\2\u06ec\16\3\2\2\2\u06ed\u06ee" + - "\t\6\2\2\u06ee\20\3\2\2\2\u06ef\u06f0\t\7\2\2\u06f0\22\3\2\2\2\u06f1\u06f2" + - "\t\b\2\2\u06f2\24\3\2\2\2\u06f3\u06f4\t\t\2\2\u06f4\26\3\2\2\2\u06f5\u06f6" + - "\t\n\2\2\u06f6\30\3\2\2\2\u06f7\u06f8\t\13\2\2\u06f8\32\3\2\2\2\u06f9" + - "\u06fa\t\f\2\2\u06fa\34\3\2\2\2\u06fb\u06fc\t\r\2\2\u06fc\36\3\2\2\2\u06fd" + - "\u06fe\t\16\2\2\u06fe \3\2\2\2\u06ff\u0700\t\17\2\2\u0700\"\3\2\2\2\u0701" + - "\u0702\t\20\2\2\u0702$\3\2\2\2\u0703\u0704\t\21\2\2\u0704&\3\2\2\2\u0705" + - "\u0706\t\22\2\2\u0706(\3\2\2\2\u0707\u0708\t\23\2\2\u0708*\3\2\2\2\u0709" + - "\u070a\t\24\2\2\u070a,\3\2\2\2\u070b\u070c\t\25\2\2\u070c.\3\2\2\2\u070d" + - "\u070e\t\26\2\2\u070e\60\3\2\2\2\u070f\u0710\t\27\2\2\u0710\62\3\2\2\2" + - "\u0711\u0712\t\30\2\2\u0712\64\3\2\2\2\u0713\u0714\t\31\2\2\u0714\66\3" + - "\2\2\2\u0715\u0716\t\32\2\2\u07168\3\2\2\2\u0717\u0718\t\33\2\2\u0718" + - ":\3\2\2\2\u0719\u071a\t\34\2\2\u071a<\3\2\2\2\u071b\u071c\t\35\2\2\u071c" + - ">\3\2\2\2\u071d\u071e\t\36\2\2\u071e@\3\2\2\2\u071f\u0727\7$\2\2\u0720" + - "\u0721\7^\2\2\u0721\u0726\13\2\2\2\u0722\u0723\7$\2\2\u0723\u0726\7$\2" + - "\2\u0724\u0726\n\37\2\2\u0725\u0720\3\2\2\2\u0725\u0722\3\2\2\2\u0725" + - "\u0724\3\2\2\2\u0726\u0729\3\2\2\2\u0727\u0725\3\2\2\2\u0727\u0728\3\2" + - "\2\2\u0728\u072a\3\2\2\2\u0729\u0727\3\2\2\2\u072a\u072b\7$\2\2\u072b" + - "B\3\2\2\2\u072c\u0734\7)\2\2\u072d\u072e\7^\2\2\u072e\u0733\13\2\2\2\u072f" + - "\u0730\7)\2\2\u0730\u0733\7)\2\2\u0731\u0733\n \2\2\u0732\u072d\3\2\2" + - "\2\u0732\u072f\3\2\2\2\u0732\u0731\3\2\2\2\u0733\u0736\3\2\2\2\u0734\u0732" + - "\3\2\2\2\u0734\u0735\3\2\2\2\u0735\u0737\3\2\2\2\u0736\u0734\3\2\2\2\u0737" + - "\u0738\7)\2\2\u0738D\3\2\2\2\u0739\u0741\7b\2\2\u073a\u073b\7^\2\2\u073b" + - "\u0740\13\2\2\2\u073c\u073d\7b\2\2\u073d\u0740\7b\2\2\u073e\u0740\n!\2" + - "\2\u073f\u073a\3\2\2\2\u073f\u073c\3\2\2\2\u073f\u073e\3\2\2\2\u0740\u0743" + - "\3\2\2\2\u0741\u073f\3\2\2\2\u0741\u0742\3\2\2\2\u0742\u0744\3\2\2\2\u0743" + - "\u0741\3\2\2\2\u0744\u0745\7b\2\2\u0745F\3\2\2\2\u0746\u0747\5\t\5\2\u0747" + - "H\3\2\2\2\u0748\u0749\5\t\5\2\u0749\u074a\5\13\6\2\u074a\u074b\5%\23\2" + - "\u074b\u074c\5+\26\2\u074c\u074d\5/\30\2\u074dJ\3\2\2\2\u074e\u074f\5" + - "\t\5\2\u074f\u0750\5\13\6\2\u0750\u0751\5-\27\2\u0751L\3\2\2\2\u0752\u0753" + - "\5\t\5\2\u0753\u0754\5\13\6\2\u0754\u0755\5-\27\2\u0755\u0756\5%\23\2" + - "\u0756\u0757\5\37\20\2\u0757\u0758\5\61\31\2\u0758\u0759\5/\30\2\u0759" + - "\u075a\5\21\t\2\u075aN\3\2\2\2\u075b\u075c\5\t\5\2\u075c\u075d\5\r\7\2" + - "\u075d\u075e\5\r\7\2\u075e\u075f\5\21\t\2\u075f\u0760\5-\27\2\u0760\u0761" + - "\5-\27\2\u0761P\3\2\2\2\u0762\u0763\5\t\5\2\u0763\u0764\5\r\7\2\u0764" + - "\u0765\5/\30\2\u0765\u0766\5\31\r\2\u0766\u0767\5%\23\2\u0767\u0768\5" + - "#\22\2\u0768R\3\2\2\2\u0769\u076a\5\t\5\2\u076a\u076b\5\17\b\2\u076b\u076c" + - "\5\t\5\2\u076cT\3\2\2\2\u076d\u076e\5\t\5\2\u076e\u076f\5\17\b\2\u076f" + - "\u0770\5\17\b\2\u0770V\3\2\2\2\u0771\u0772\5\t\5\2\u0772\u0773\5\17\b" + - "\2\u0773\u0774\5!\21\2\u0774\u0775\5\31\r\2\u0775\u0776\5#\22\2\u0776" + - "X\3\2\2\2\u0777\u0778\5\t\5\2\u0778\u0779\5\23\n\2\u0779\u077a\5/\30\2" + - "\u077a\u077b\5\21\t\2\u077b\u077c\5+\26\2\u077cZ\3\2\2\2\u077d\u077e\5" + - "\t\5\2\u077e\u077f\5\25\13\2\u077f\u0780\5\25\13\2\u0780\u0781\5+\26\2" + - "\u0781\u0782\5\21\t\2\u0782\u0783\5\25\13\2\u0783\u0784\5\t\5\2\u0784" + - "\u0785\5/\30\2\u0785\u0786\5\21\t\2\u0786\\\3\2\2\2\u0787\u0788\5\t\5" + - "\2\u0788\u0789\5\37\20\2\u0789\u078a\5\31\r\2\u078a\u078b\5\t\5\2\u078b" + - "\u078c\5-\27\2\u078c^\3\2\2\2\u078d\u078e\5\t\5\2\u078e\u078f\5\37\20" + - "\2\u078f\u0790\5\37\20\2\u0790`\3\2\2\2\u0791\u0792\5\t\5\2\u0792\u0793" + - "\5\37\20\2\u0793\u0794\5\37\20\2\u0794\u0795\5%\23\2\u0795\u0796\5\r\7" + - "\2\u0796\u0797\5\t\5\2\u0797\u0798\5/\30\2\u0798\u0799\5\21\t\2\u0799" + - "b\3\2\2\2\u079a\u079b\5\t\5\2\u079b\u079c\5\37\20\2\u079c\u079d\5-\27" + - "\2\u079d\u079e\5%\23\2\u079ed\3\2\2\2\u079f\u07a0\5\t\5\2\u07a0\u07a1" + - "\5\37\20\2\u07a1\u07a2\5/\30\2\u07a2\u07a3\5\21\t\2\u07a3\u07a4\5+\26" + - "\2\u07a4f\3\2\2\2\u07a5\u07a6\5\t\5\2\u07a6\u07a7\5\37\20\2\u07a7\u07a8" + - "\5\65\33\2\u07a8\u07a9\5\t\5\2\u07a9\u07aa\59\35\2\u07aa\u07ab\5-\27\2" + - "\u07abh\3\2\2\2\u07ac\u07ad\5\t\5\2\u07ad\u07ae\5#\22\2\u07ae\u07af\5" + - "\t\5\2\u07af\u07b0\5\37\20\2\u07b0\u07b1\59\35\2\u07b1\u07b2\5-\27\2\u07b2" + - "\u07b3\5\21\t\2\u07b3j\3\2\2\2\u07b4\u07b5\5\t\5\2\u07b5\u07b6\5#\22\2" + - "\u07b6\u07b7\5\t\5\2\u07b7\u07b8\5\37\20\2\u07b8\u07b9\59\35\2\u07b9\u07ba" + - "\5;\36\2\u07ba\u07bb\5\21\t\2\u07bbl\3\2\2\2\u07bc\u07bd\5\t\5\2\u07bd" + - "\u07be\5#\22\2\u07be\u07bf\5\17\b\2\u07bfn\3\2\2\2\u07c0\u07c1\5\t\5\2" + - "\u07c1\u07c2\5#\22\2\u07c2\u07c3\59\35\2\u07c3p\3\2\2\2\u07c4\u07c5\5" + - "\t\5\2\u07c5\u07c6\5+\26\2\u07c6\u07c7\5\21\t\2\u07c7r\3\2\2\2\u07c8\u07c9" + - "\5\t\5\2\u07c9\u07ca\5+\26\2\u07ca\u07cb\5+\26\2\u07cb\u07cc\5\t\5\2\u07cc" + - "\u07cd\59\35\2\u07cdt\3\2\2\2\u07ce\u07cf\5\t\5\2\u07cf\u07d0\5-\27\2" + - "\u07d0v\3\2\2\2\u07d1\u07d2\5\t\5\2\u07d2\u07d3\5-\27\2\u07d3\u07d4\5" + - "\r\7\2\u07d4x\3\2\2\2\u07d5\u07d6\5\t\5\2\u07d6\u07d7\5-\27\2\u07d7\u07d8" + - "\5\21\t\2\u07d8\u07d9\5#\22\2\u07d9\u07da\5-\27\2\u07da\u07db\5\31\r\2" + - "\u07db\u07dc\5/\30\2\u07dc\u07dd\5\31\r\2\u07dd\u07de\5\63\32\2\u07de" + - "\u07df\5\21\t\2\u07dfz\3\2\2\2\u07e0\u07e1\5\t\5\2\u07e1\u07e2\5-\27\2" + - "\u07e2\u07e3\5-\27\2\u07e3\u07e4\5\21\t\2\u07e4\u07e5\5+\26\2\u07e5\u07e6" + - "\5/\30\2\u07e6\u07e7\5\31\r\2\u07e7\u07e8\5%\23\2\u07e8\u07e9\5#\22\2" + - "\u07e9|\3\2\2\2\u07ea\u07eb\5\t\5\2\u07eb\u07ec\5-\27\2\u07ec\u07ed\5" + - "-\27\2\u07ed\u07ee\5\31\r\2\u07ee\u07ef\5\25\13\2\u07ef\u07f0\5#\22\2" + - "\u07f0\u07f1\5!\21\2\u07f1\u07f2\5\21\t\2\u07f2\u07f3\5#\22\2\u07f3\u07f4" + - "\5/\30\2\u07f4~\3\2\2\2\u07f5\u07f6\5\t\5\2\u07f6\u07f7\5-\27\2\u07f7" + - "\u07f8\59\35\2\u07f8\u07f9\5!\21\2\u07f9\u07fa\5!\21\2\u07fa\u07fb\5\21" + - "\t\2\u07fb\u07fc\5/\30\2\u07fc\u07fd\5+\26\2\u07fd\u07fe\5\31\r\2\u07fe" + - "\u07ff\5\r\7\2\u07ff\u0080\3\2\2\2\u0800\u0801\5\t\5\2\u0801\u0802\5/" + - "\30\2\u0802\u0082\3\2\2\2\u0803\u0804\5\t\5\2\u0804\u0805\5/\30\2\u0805" + - "\u0806\5%\23\2\u0806\u0807\5!\21\2\u0807\u0808\5\31\r\2\u0808\u0809\5" + - "\r\7\2\u0809\u0084\3\2\2\2\u080a\u080b\5\t\5\2\u080b\u080c\5/\30\2\u080c" + - "\u080d\5/\30\2\u080d\u080e\5+\26\2\u080e\u080f\5\31\r\2\u080f\u0810\5" + - "\13\6\2\u0810\u0811\5\61\31\2\u0811\u0812\5/\30\2\u0812\u0813\5\21\t\2" + - "\u0813\u0086\3\2\2\2\u0814\u0815\5\t\5\2\u0815\u0816\5/\30\2\u0816\u0817" + - "\5/\30\2\u0817\u0818\5+\26\2\u0818\u0819\5\31\r\2\u0819\u081a\5\13\6\2" + - "\u081a\u081b\5\61\31\2\u081b\u081c\5/\30\2\u081c\u081d\5\21\t\2\u081d" + - "\u081e\5-\27\2\u081e\u0088\3\2\2\2\u081f\u0820\5\t\5\2\u0820\u0821\5\61" + - "\31\2\u0821\u0822\5/\30\2\u0822\u0823\5\27\f\2\u0823\u0824\5%\23\2\u0824" + - "\u0825\5+\26\2\u0825\u0826\5\31\r\2\u0826\u0827\5;\36\2\u0827\u0828\5" + - "\t\5\2\u0828\u0829\5/\30\2\u0829\u082a\5\31\r\2\u082a\u082b\5%\23\2\u082b" + - "\u082c\5#\22\2\u082c\u008a\3\2\2\2\u082d\u082e\5\t\5\2\u082e\u082f\5\63" + - "\32\2\u082f\u0830\5\25\13\2\u0830\u008c\3\2\2\2\u0831\u0832\5\13\6\2\u0832" + - "\u0833\5\t\5\2\u0833\u0834\5\r\7\2\u0834\u0835\5\35\17\2\u0835\u0836\5" + - "\65\33\2\u0836\u0837\5\t\5\2\u0837\u0838\5+\26\2\u0838\u0839\5\17\b\2" + - "\u0839\u008e\3\2\2\2\u083a\u083b\5\13\6\2\u083b\u083c\5\21\t\2\u083c\u083d" + - "\5\23\n\2\u083d\u083e\5%\23\2\u083e\u083f\5+\26\2\u083f\u0840\5\21\t\2" + - "\u0840\u0090\3\2\2\2\u0841\u0842\5\13\6\2\u0842\u0843\5\21\t\2\u0843\u0844" + - "\5\25\13\2\u0844\u0845\5\31\r\2\u0845\u0846\5#\22\2\u0846\u0092\3\2\2" + - "\2\u0847\u0848\5\13\6\2\u0848\u0849\5\21\t\2\u0849\u084a\5+\26\2\u084a" + - "\u084b\5#\22\2\u084b\u084c\5%\23\2\u084c\u084d\5\61\31\2\u084d\u084e\5" + - "\37\20\2\u084e\u084f\5\37\20\2\u084f\u0850\5\31\r\2\u0850\u0094\3\2\2" + - "\2\u0851\u0852\5\13\6\2\u0852\u0853\5\21\t\2\u0853\u0854\5/\30\2\u0854" + - "\u0855\5\65\33\2\u0855\u0856\5\21\t\2\u0856\u0857\5\21\t\2\u0857\u0858" + - "\5#\22\2\u0858\u0096\3\2\2\2\u0859\u085a\5\13\6\2\u085a\u085b\5\31\r\2" + - "\u085b\u085c\5\25\13\2\u085c\u085d\5\31\r\2\u085d\u085e\5#\22\2\u085e" + - "\u085f\5/\30\2\u085f\u0098\3\2\2\2\u0860\u0861\5\13\6\2\u0861\u0862\5" + - "\31\r\2\u0862\u0863\5#\22\2\u0863\u0864\5\t\5\2\u0864\u0865\5+\26\2\u0865" + - "\u0866\59\35\2\u0866\u009a\3\2\2\2\u0867\u0868\5\13\6\2\u0868\u0869\5" + - "\31\r\2\u0869\u086a\5/\30\2\u086a\u009c\3\2\2\2\u086b\u086c\5\13\6\2\u086c" + - "\u086d\5\31\r\2\u086d\u086e\5/\30\2\u086e\u086f\7a\2\2\u086f\u0870\5\37" + - "\20\2\u0870\u0871\5\21\t\2\u0871\u0872\5#\22\2\u0872\u0873\5\25\13\2\u0873" + - "\u0874\5/\30\2\u0874\u0875\5\27\f\2\u0875\u009e\3\2\2\2\u0876\u0877\5" + - "\13\6\2\u0877\u0878\5\31\r\2\u0878\u0879\5/\30\2\u0879\u087a\5\63\32\2" + - "\u087a\u087b\5\t\5\2\u087b\u087c\5+\26\2\u087c\u00a0\3\2\2\2\u087d\u087e" + - "\5\13\6\2\u087e\u087f\5\37\20\2\u087f\u0880\5%\23\2\u0880\u0881\5\13\6" + - "\2\u0881\u00a2\3\2\2\2\u0882\u0883\5\13\6\2\u0883\u0884\5%\23\2\u0884" + - "\u0885\5%\23\2\u0885\u0886\5\37\20\2\u0886\u0887\5\21\t\2\u0887\u0888" + - "\5\t\5\2\u0888\u0889\5#\22\2\u0889\u00a4\3\2\2\2\u088a\u088b\5\13\6\2" + - "\u088b\u088c\5%\23\2\u088c\u088d\5/\30\2\u088d\u088e\5\27\f\2\u088e\u00a6" + - "\3\2\2\2\u088f\u0890\5\13\6\2\u0890\u0891\5+\26\2\u0891\u0892\5\21\t\2" + - "\u0892\u0893\5\t\5\2\u0893\u0894\5\17\b\2\u0894\u0895\5/\30\2\u0895\u0896" + - "\5\27\f\2\u0896\u00a8\3\2\2\2\u0897\u0898\5\13\6\2\u0898\u0899\5\61\31" + - "\2\u0899\u089a\5\23\n\2\u089a\u089b\5\23\n\2\u089b\u089c\5\21\t\2\u089c" + - "\u089d\5+\26\2\u089d\u089e\5-\27\2\u089e\u00aa\3\2\2\2\u089f\u08a0\5\13" + - "\6\2\u08a0\u08a1\59\35\2\u08a1\u00ac\3\2\2\2\u08a2\u08a3\5\r\7\2\u08a3" + - "\u00ae\3\2\2\2\u08a4\u08a5\5\r\7\2\u08a5\u08a6\5\t\5\2\u08a6\u08a7\5\r" + - "\7\2\u08a7\u08a8\5\27\f\2\u08a8\u08a9\5\21\t\2\u08a9\u00b0\3\2\2\2\u08aa" + - "\u08ab\5\r\7\2\u08ab\u08ac\5\t\5\2\u08ac\u08ad\5\37\20\2\u08ad\u08ae\5" + - "\37\20\2\u08ae\u00b2\3\2\2\2\u08af\u08b0\5\r\7\2\u08b0\u08b1\5\t\5\2\u08b1" + - "\u08b2\5\37\20\2\u08b2\u08b3\5\37\20\2\u08b3\u08b4\5\21\t\2\u08b4\u08b5" + - "\5\17\b\2\u08b5\u00b4\3\2\2\2\u08b6\u08b7\5\r\7\2\u08b7\u08b8\5\t\5\2" + - "\u08b8\u08b9\5+\26\2\u08b9\u08ba\5\17\b\2\u08ba\u08bb\5\31\r\2\u08bb\u08bc" + - "\5#\22\2\u08bc\u08bd\5\t\5\2\u08bd\u08be\5\37\20\2\u08be\u08bf\5\31\r" + - "\2\u08bf\u08c0\5/\30\2\u08c0\u08c1\59\35\2\u08c1\u00b6\3\2\2\2\u08c2\u08c3" + - "\5\r\7\2\u08c3\u08c4\5\t\5\2\u08c4\u08c5\5-\27\2\u08c5\u08c6\5\r\7\2\u08c6" + - "\u08c7\5\t\5\2\u08c7\u08c8\5\17\b\2\u08c8\u08c9\5\21\t\2\u08c9\u00b8\3" + - "\2\2\2\u08ca\u08cb\5\r\7\2\u08cb\u08cc\5\t\5\2\u08cc\u08cd\5-\27\2\u08cd" + - "\u08ce\5\r\7\2\u08ce\u08cf\5\t\5\2\u08cf\u08d0\5\17\b\2\u08d0\u08d1\5" + - "\21\t\2\u08d1\u08d2\5\17\b\2\u08d2\u00ba\3\2\2\2\u08d3\u08d4\5\r\7\2\u08d4" + - "\u08d5\5\t\5\2\u08d5\u08d6\5-\27\2\u08d6\u08d7\5\21\t\2\u08d7\u00bc\3" + - "\2\2\2\u08d8\u08d9\5\r\7\2\u08d9\u08da\5\t\5\2\u08da\u08db\5-\27\2\u08db" + - "\u08dc\5/\30\2\u08dc\u00be\3\2\2\2\u08dd\u08de\5\r\7\2\u08de\u08df\5\t" + - "\5\2\u08df\u08e0\5/\30\2\u08e0\u08e1\5\t\5\2\u08e1\u08e2\5\37\20\2\u08e2" + - "\u08e3\5%\23\2\u08e3\u08e4\5\25\13\2\u08e4\u00c0\3\2\2\2\u08e5\u08e6\5" + - "\r\7\2\u08e6\u08e7\5\t\5\2\u08e7\u08e8\5/\30\2\u08e8\u08e9\5\t\5\2\u08e9" + - "\u08ea\5\37\20\2\u08ea\u08eb\5%\23\2\u08eb\u08ec\5\25\13\2\u08ec\u08ed" + - "\7a\2\2\u08ed\u08ee\5#\22\2\u08ee\u08ef\5\t\5\2\u08ef\u08f0\5!\21\2\u08f0" + - "\u08f1\5\21\t\2\u08f1\u00c2\3\2\2\2\u08f2\u08f3\5\r\7\2\u08f3\u08f4\5" + - "\21\t\2\u08f4\u08f5\5\31\r\2\u08f5\u08f6\5\37\20\2\u08f6\u00c4\3\2\2\2" + - "\u08f7\u08f8\5\r\7\2\u08f8\u08f9\5\21\t\2\u08f9\u08fa\5\31\r\2\u08fa\u08fb" + - "\5\37\20\2\u08fb\u08fc\5\31\r\2\u08fc\u08fd\5#\22\2\u08fd\u08fe\5\25\13" + - "\2\u08fe\u00c6\3\2\2\2\u08ff\u0900\5\r\7\2\u0900\u0901\5\27\f\2\u0901" + - "\u0902\5\t\5\2\u0902\u0903\5\31\r\2\u0903\u0904\5#\22\2\u0904\u00c8\3" + - "\2\2\2\u0905\u0906\5\r\7\2\u0906\u0907\5\27\f\2\u0907\u0908\5\t\5\2\u0908" + - "\u0909\5+\26\2\u0909\u00ca\3\2\2\2\u090a\u090b\5\r\7\2\u090b\u090c\5\27" + - "\f\2\u090c\u090d\5\t\5\2\u090d\u090e\5+\26\2\u090e\u090f\7a\2\2\u090f" + - "\u0910\5\37\20\2\u0910\u0911\5\21\t\2\u0911\u0912\5#\22\2\u0912\u0913" + - "\5\25\13\2\u0913\u0914\5/\30\2\u0914\u0915\5\27\f\2\u0915\u00cc\3\2\2" + - "\2\u0916\u0917\5\r\7\2\u0917\u0918\5\27\f\2\u0918\u0919\5\t\5\2\u0919" + - "\u091a\5+\26\2\u091a\u091b\5\t\5\2\u091b\u091c\5\r\7\2\u091c\u091d\5/" + - "\30\2\u091d\u091e\5\21\t\2\u091e\u091f\5+\26\2\u091f\u00ce\3\2\2\2\u0920" + - "\u0921\5\r\7\2\u0921\u0922\5\27\f\2\u0922\u0923\5\t\5\2\u0923\u0924\5" + - "+\26\2\u0924\u0925\5\t\5\2\u0925\u0926\5\r\7\2\u0926\u0927\5/\30\2\u0927" + - "\u0928\5\21\t\2\u0928\u0929\5+\26\2\u0929\u092a\7a\2\2\u092a\u092b\5\37" + - "\20\2\u092b\u092c\5\21\t\2\u092c\u092d\5#\22\2\u092d\u092e\5\25\13\2\u092e" + - "\u092f\5/\30\2\u092f\u0930\5\27\f\2\u0930\u00d0\3\2\2\2\u0931\u0932\5" + - "\r\7\2\u0932\u0933\5\27\f\2\u0933\u0934\5\t\5\2\u0934\u0935\5+\26\2\u0935" + - "\u0936\5\t\5\2\u0936\u0937\5\r\7\2\u0937\u0938\5/\30\2\u0938\u0939\5\21" + - "\t\2\u0939\u093a\5+\26\2\u093a\u093b\7a\2\2\u093b\u093c\5-\27\2\u093c" + - "\u093d\5\21\t\2\u093d\u093e\5/\30\2\u093e\u093f\7a\2\2\u093f\u0940\5\r" + - "\7\2\u0940\u0941\5\t\5\2\u0941\u0942\5/\30\2\u0942\u0943\5\t\5\2\u0943" + - "\u0944\5\37\20\2\u0944\u0945\5%\23\2\u0945\u0946\5\25\13\2\u0946\u00d2" + - "\3\2\2\2\u0947\u0948\5\r\7\2\u0948\u0949\5\27\f\2\u0949\u094a\5\t\5\2" + - "\u094a\u094b\5+\26\2\u094b\u094c\5\t\5\2\u094c\u094d\5\r\7\2\u094d\u094e" + - "\5/\30\2\u094e\u094f\5\21\t\2\u094f\u0950\5+\26\2\u0950\u0951\7a\2\2\u0951" + - "\u0952\5-\27\2\u0952\u0953\5\21\t\2\u0953\u0954\5/\30\2\u0954\u0955\7" + - "a\2\2\u0955\u0956\5#\22\2\u0956\u0957\5\t\5\2\u0957\u0958\5!\21\2\u0958" + - "\u0959\5\21\t\2\u0959\u00d4\3\2\2\2\u095a\u095b\5\r\7\2\u095b\u095c\5" + - "\27\f\2\u095c\u095d\5\t\5\2\u095d\u095e\5+\26\2\u095e\u095f\5\t\5\2\u095f" + - "\u0960\5\r\7\2\u0960\u0961\5/\30\2\u0961\u0962\5\21\t\2\u0962\u0963\5" + - "+\26\2\u0963\u0964\7a\2\2\u0964\u0965\5-\27\2\u0965\u0966\5\21\t\2\u0966" + - "\u0967\5/\30\2\u0967\u0968\7a\2\2\u0968\u0969\5-\27\2\u0969\u096a\5\r" + - "\7\2\u096a\u096b\5\27\f\2\u096b\u096c\5\21\t\2\u096c\u096d\5!\21\2\u096d" + - "\u096e\5\t\5\2\u096e\u00d6\3\2\2\2\u096f\u0970\5\r\7\2\u0970\u0971\5\27" + - "\f\2\u0971\u0972\5\t\5\2\u0972\u0973\5+\26\2\u0973\u0974\5\t\5\2\u0974" + - "\u0975\5\r\7\2\u0975\u0976\5/\30\2\u0976\u0977\5\21\t\2\u0977\u0978\5" + - "+\26\2\u0978\u0979\5\31\r\2\u0979\u097a\5-\27\2\u097a\u097b\5/\30\2\u097b" + - "\u097c\5\31\r\2\u097c\u097d\5\r\7\2\u097d\u097e\5-\27\2\u097e\u00d8\3" + - "\2\2\2\u097f\u0980\5\r\7\2\u0980\u0981\5\27\f\2\u0981\u0982\5\t\5\2\u0982" + - "\u0983\5+\26\2\u0983\u0984\5\t\5\2\u0984\u0985\5\r\7\2\u0985\u0986\5/" + - "\30\2\u0986\u0987\5\21\t\2\u0987\u0988\5+\26\2\u0988\u0989\5-\27\2\u0989" + - "\u00da\3\2\2\2\u098a\u098b\5\r\7\2\u098b\u098c\5\27\f\2\u098c\u098d\5" + - "\21\t\2\u098d\u098e\5\r\7\2\u098e\u098f\5\35\17\2\u098f\u00dc\3\2\2\2" + - "\u0990\u0991\5\r\7\2\u0991\u0992\5\27\f\2\u0992\u0993\5\21\t\2\u0993\u0994" + - "\5\r\7\2\u0994\u0995\5\35\17\2\u0995\u0996\5\21\t\2\u0996\u0997\5\17\b" + - "\2\u0997\u00de\3\2\2\2\u0998\u0999\5\r\7\2\u0999\u099a\5\27\f\2\u099a" + - "\u099b\5\21\t\2\u099b\u099c\5\r\7\2\u099c\u099d\5\35\17\2\u099d\u099e" + - "\5\'\24\2\u099e\u099f\5%\23\2\u099f\u09a0\5\31\r\2\u09a0\u09a1\5#\22\2" + - "\u09a1\u09a2\5/\30\2\u09a2\u00e0\3\2\2\2\u09a3\u09a4\5\r\7\2\u09a4\u09a5" + - "\5\37\20\2\u09a5\u09a6\5\t\5\2\u09a6\u09a7\5-\27\2\u09a7\u09a8\5-\27\2" + - "\u09a8\u00e2\3\2\2\2\u09a9\u09aa\5\r\7\2\u09aa\u09ab\5\37\20\2\u09ab\u09ac" + - "\5\t\5\2\u09ac\u09ad\5-\27\2\u09ad\u09ae\5-\27\2\u09ae\u09af\7a\2\2\u09af" + - "\u09b0\5%\23\2\u09b0\u09b1\5+\26\2\u09b1\u09b2\5\31\r\2\u09b2\u09b3\5" + - "\25\13\2\u09b3\u09b4\5\31\r\2\u09b4\u09b5\5#\22\2\u09b5\u00e4\3\2\2\2" + - "\u09b6\u09b7\5\r\7\2\u09b7\u09b8\5\37\20\2\u09b8\u09b9\5%\23\2\u09b9\u09ba" + - "\5\13\6\2\u09ba\u00e6\3\2\2\2\u09bb\u09bc\5\r\7\2\u09bc\u09bd\5\37\20" + - "\2\u09bd\u09be\5%\23\2\u09be\u09bf\5-\27\2\u09bf\u09c0\5\21\t\2\u09c0" + - "\u00e8\3\2\2\2\u09c1\u09c2\5\r\7\2\u09c2\u09c3\5\37\20\2\u09c3\u09c4\5" + - "\61\31\2\u09c4\u09c5\5-\27\2\u09c5\u09c6\5/\30\2\u09c6\u09c7\5\21\t\2" + - "\u09c7\u09c8\5+\26\2\u09c8\u00ea\3\2\2\2\u09c9\u09ca\5\r\7\2\u09ca\u09cb" + - "\5%\23\2\u09cb\u09cc\5\t\5\2\u09cc\u09cd\5\37\20\2\u09cd\u09ce\5\21\t" + - "\2\u09ce\u09cf\5-\27\2\u09cf\u09d0\5\r\7\2\u09d0\u09d1\5\21\t\2\u09d1" + - "\u00ec\3\2\2\2\u09d2\u09d3\5\r\7\2\u09d3\u09d4\5%\23\2\u09d4\u09d5\5\13" + - "\6\2\u09d5\u09d6\5%\23\2\u09d6\u09d7\5\37\20\2\u09d7\u00ee\3\2\2\2\u09d8" + - "\u09d9\5\r\7\2\u09d9\u09da\5%\23\2\u09da\u09db\5\37\20\2\u09db\u09dc\5" + - "\37\20\2\u09dc\u09dd\5\t\5\2\u09dd\u09de\5/\30\2\u09de\u09df\5\21\t\2" + - "\u09df\u00f0\3\2\2\2\u09e0\u09e1\5\r\7\2\u09e1\u09e2\5%\23\2\u09e2\u09e3" + - "\5\37\20\2\u09e3\u09e4\5\37\20\2\u09e4\u09e5\5\t\5\2\u09e5\u09e6\5/\30" + - "\2\u09e6\u09e7\5\31\r\2\u09e7\u09e8\5%\23\2\u09e8\u09e9\5#\22\2\u09e9" + - "\u00f2\3\2\2\2\u09ea\u09eb\5\r\7\2\u09eb\u09ec\5%\23\2\u09ec\u09ed\5\37" + - "\20\2\u09ed\u09ee\5\37\20\2\u09ee\u09ef\5\t\5\2\u09ef\u09f0\5/\30\2\u09f0" + - "\u09f1\5\31\r\2\u09f1\u09f2\5%\23\2\u09f2\u09f3\5#\22\2\u09f3\u09f4\7" + - "a\2\2\u09f4\u09f5\5\r\7\2\u09f5\u09f6\5\t\5\2\u09f6\u09f7\5/\30\2\u09f7" + - "\u09f8\5\t\5\2\u09f8\u09f9\5\37\20\2\u09f9\u09fa\5%\23\2\u09fa\u09fb\5" + - "\25\13\2\u09fb\u00f4\3\2\2\2\u09fc\u09fd\5\r\7\2\u09fd\u09fe\5%\23\2\u09fe" + - "\u09ff\5\37\20\2\u09ff\u0a00\5\37\20\2\u0a00\u0a01\5\t\5\2\u0a01\u0a02" + - "\5/\30\2\u0a02\u0a03\5\31\r\2\u0a03\u0a04\5%\23\2\u0a04\u0a05\5#\22\2" + - "\u0a05\u0a06\7a\2\2\u0a06\u0a07\5#\22\2\u0a07\u0a08\5\t\5\2\u0a08\u0a09" + - "\5!\21\2\u0a09\u0a0a\5\21\t\2\u0a0a\u00f6\3\2\2\2\u0a0b\u0a0c\5\r\7\2" + - "\u0a0c\u0a0d\5%\23\2\u0a0d\u0a0e\5\37\20\2\u0a0e\u0a0f\5\37\20\2\u0a0f" + - "\u0a10\5\t\5\2\u0a10\u0a11\5/\30\2\u0a11\u0a12\5\31\r\2\u0a12\u0a13\5" + - "%\23\2\u0a13\u0a14\5#\22\2\u0a14\u0a15\7a\2\2\u0a15\u0a16\5-\27\2\u0a16" + - "\u0a17\5\r\7\2\u0a17\u0a18\5\27\f\2\u0a18\u0a19\5\21\t\2\u0a19\u0a1a\5" + - "!\21\2\u0a1a\u0a1b\5\t\5\2\u0a1b\u00f8\3\2\2\2\u0a1c\u0a1d\5\r\7\2\u0a1d" + - "\u0a1e\5%\23\2\u0a1e\u0a1f\5\37\20\2\u0a1f\u0a20\5\37\20\2\u0a20\u0a21" + - "\5\21\t\2\u0a21\u0a22\5\r\7\2\u0a22\u0a23\5/\30\2\u0a23\u00fa\3\2\2\2" + - "\u0a24\u0a25\5\r\7\2\u0a25\u0a26\5%\23\2\u0a26\u0a27\5\37\20\2\u0a27\u0a28" + - "\5\61\31\2\u0a28\u0a29\5!\21\2\u0a29\u0a2a\5#\22\2\u0a2a\u00fc\3\2\2\2" + - "\u0a2b\u0a2c\5\r\7\2\u0a2c\u0a2d\5%\23\2\u0a2d\u0a2e\5\37\20\2\u0a2e\u0a2f" + - "\5\61\31\2\u0a2f\u0a30\5!\21\2\u0a30\u0a31\5#\22\2\u0a31\u0a32\7a\2\2" + - "\u0a32\u0a33\5#\22\2\u0a33\u0a34\5\t\5\2\u0a34\u0a35\5!\21\2\u0a35\u0a36" + - "\5\21\t\2\u0a36\u00fe\3\2\2\2\u0a37\u0a38\5\r\7\2\u0a38\u0a39\5%\23\2" + - "\u0a39\u0a3a\5!\21\2\u0a3a\u0a3b\5!\21\2\u0a3b\u0a3c\5\t\5\2\u0a3c\u0a3d" + - "\5#\22\2\u0a3d\u0a3e\5\17\b\2\u0a3e\u0a3f\7a\2\2\u0a3f\u0a40\5\23\n\2" + - "\u0a40\u0a41\5\61\31\2\u0a41\u0a42\5#\22\2\u0a42\u0a43\5\r\7\2\u0a43\u0a44" + - "\5/\30\2\u0a44\u0a45\5\31\r\2\u0a45\u0a46\5%\23\2\u0a46\u0a47\5#\22\2" + - "\u0a47\u0100\3\2\2\2\u0a48\u0a49\5\r\7\2\u0a49\u0a4a\5%\23\2\u0a4a\u0a4b" + - "\5!\21\2\u0a4b\u0a4c\5!\21\2\u0a4c\u0a4d\5\t\5\2\u0a4d\u0a4e\5#\22\2\u0a4e" + - "\u0a4f\5\17\b\2\u0a4f\u0a50\7a\2\2\u0a50\u0a51\5\23\n\2\u0a51\u0a52\5" + - "\61\31\2\u0a52\u0a53\5#\22\2\u0a53\u0a54\5\r\7\2\u0a54\u0a55\5/\30\2\u0a55" + - "\u0a56\5\31\r\2\u0a56\u0a57\5%\23\2\u0a57\u0a58\5#\22\2\u0a58\u0a59\7" + - "a\2\2\u0a59\u0a5a\5\r\7\2\u0a5a\u0a5b\5%\23\2\u0a5b\u0a5c\5\17\b\2\u0a5c" + - "\u0a5d\5\21\t\2\u0a5d\u0102\3\2\2\2\u0a5e\u0a5f\5\r\7\2\u0a5f\u0a60\5" + - "%\23\2\u0a60\u0a61\5!\21\2\u0a61\u0a62\5!\21\2\u0a62\u0a63\5\21\t\2\u0a63" + - "\u0a64\5#\22\2\u0a64\u0a65\5/\30\2\u0a65\u0104\3\2\2\2\u0a66\u0a67\5\r" + - "\7\2\u0a67\u0a68\5%\23\2\u0a68\u0a69\5!\21\2\u0a69\u0a6a\5!\21\2\u0a6a" + - "\u0a6b\5\31\r\2\u0a6b\u0a6c\5/\30\2\u0a6c\u0106\3\2\2\2\u0a6d\u0a6e\5" + - "\r\7\2\u0a6e\u0a6f\5%\23\2\u0a6f\u0a70\5!\21\2\u0a70\u0a71\5!\21\2\u0a71" + - "\u0a72\5\31\r\2\u0a72\u0a73\5/\30\2\u0a73\u0a74\5/\30\2\u0a74\u0a75\5" + - "\21\t\2\u0a75\u0a76\5\17\b\2\u0a76\u0108\3\2\2\2\u0a77\u0a78\5\r\7\2\u0a78" + - "\u0a79\5%\23\2\u0a79\u0a7a\5!\21\2\u0a7a\u0a7b\5\'\24\2\u0a7b\u0a7c\5" + - "\37\20\2\u0a7c\u0a7d\5\21\t\2\u0a7d\u0a7e\5/\30\2\u0a7e\u0a7f\5\31\r\2" + - "\u0a7f\u0a80\5%\23\2\u0a80\u0a81\5#\22\2\u0a81\u010a\3\2\2\2\u0a82\u0a83" + - "\5\r\7\2\u0a83\u0a84\5%\23\2\u0a84\u0a85\5#\22\2\u0a85\u0a86\5\17\b\2" + - "\u0a86\u0a87\5\31\r\2\u0a87\u0a88\5/\30\2\u0a88\u0a89\5\31\r\2\u0a89\u0a8a" + - "\5%\23\2\u0a8a\u0a8b\5#\22\2\u0a8b\u010c\3\2\2\2\u0a8c\u0a8d\5\r\7\2\u0a8d" + - "\u0a8e\5%\23\2\u0a8e\u0a8f\5#\22\2\u0a8f\u0a90\5\17\b\2\u0a90\u0a91\5" + - "\31\r\2\u0a91\u0a92\5/\30\2\u0a92\u0a93\5\31\r\2\u0a93\u0a94\5%\23\2\u0a94" + - "\u0a95\5#\22\2\u0a95\u0a96\7a\2\2\u0a96\u0a97\5#\22\2\u0a97\u0a98\5\61" + - "\31\2\u0a98\u0a99\5!\21\2\u0a99\u0a9a\5\13\6\2\u0a9a\u0a9b\5\21\t\2\u0a9b" + - "\u0a9c\5+\26\2\u0a9c\u010e\3\2\2\2\u0a9d\u0a9e\5\r\7\2\u0a9e\u0a9f\5%" + - "\23\2\u0a9f\u0aa0\5#\22\2\u0aa0\u0aa1\5\23\n\2\u0aa1\u0aa2\5\31\r\2\u0aa2" + - "\u0aa3\5\25\13\2\u0aa3\u0aa4\5\61\31\2\u0aa4\u0aa5\5+\26\2\u0aa5\u0aa6" + - "\5\t\5\2\u0aa6\u0aa7\5/\30\2\u0aa7\u0aa8\5\31\r\2\u0aa8\u0aa9\5%\23\2" + - "\u0aa9\u0aaa\5#\22\2\u0aaa\u0110\3\2\2\2\u0aab\u0aac\5\r\7\2\u0aac\u0aad" + - "\5%\23\2\u0aad\u0aae\5#\22\2\u0aae\u0aaf\5\23\n\2\u0aaf\u0ab0\5\37\20" + - "\2\u0ab0\u0ab1\5\31\r\2\u0ab1\u0ab2\5\r\7\2\u0ab2\u0ab3\5/\30\2\u0ab3" + - "\u0112\3\2\2\2\u0ab4\u0ab5\5\r\7\2\u0ab5\u0ab6\5%\23\2\u0ab6\u0ab7\5#" + - "\22\2\u0ab7\u0ab8\5#\22\2\u0ab8\u0ab9\5\21\t\2\u0ab9\u0aba\5\r\7\2\u0aba" + - "\u0abb\5/\30\2\u0abb\u0114\3\2\2\2\u0abc\u0abd\5\r\7\2\u0abd\u0abe\5%" + - "\23\2\u0abe\u0abf\5#\22\2\u0abf\u0ac0\5#\22\2\u0ac0\u0ac1\5\21\t\2\u0ac1" + - "\u0ac2\5\r\7\2\u0ac2\u0ac3\5/\30\2\u0ac3\u0ac4\5\31\r\2\u0ac4\u0ac5\5" + - "%\23\2\u0ac5\u0ac6\5#\22\2\u0ac6\u0116\3\2\2\2\u0ac7\u0ac8\5\r\7\2\u0ac8" + - "\u0ac9\5%\23\2\u0ac9\u0aca\5#\22\2\u0aca\u0acb\5#\22\2\u0acb\u0acc\5\21" + - "\t\2\u0acc\u0acd\5\r\7\2\u0acd\u0ace\5/\30\2\u0ace\u0acf\5\31\r\2\u0acf" + - "\u0ad0\5%\23\2\u0ad0\u0ad1\5#\22\2\u0ad1\u0ad2\7a\2\2\u0ad2\u0ad3\5#\22" + - "\2\u0ad3\u0ad4\5\t\5\2\u0ad4\u0ad5\5!\21\2\u0ad5\u0ad6\5\21\t\2\u0ad6" + - "\u0118\3\2\2\2\u0ad7\u0ad8\5\r\7\2\u0ad8\u0ad9\5%\23\2\u0ad9\u0ada\5#" + - "\22\2\u0ada\u0adb\5-\27\2\u0adb\u0adc\5/\30\2\u0adc\u0add\5+\26\2\u0add" + - "\u0ade\5\t\5\2\u0ade\u0adf\5\31\r\2\u0adf\u0ae0\5#\22\2\u0ae0\u0ae1\5" + - "/\30\2\u0ae1\u011a\3\2\2\2\u0ae2\u0ae3\5\r\7\2\u0ae3\u0ae4\5%\23\2\u0ae4" + - "\u0ae5\5#\22\2\u0ae5\u0ae6\5-\27\2\u0ae6\u0ae7\5/\30\2\u0ae7\u0ae8\5+" + - "\26\2\u0ae8\u0ae9\5\t\5\2\u0ae9\u0aea\5\31\r\2\u0aea\u0aeb\5#\22\2\u0aeb" + - "\u0aec\5/\30\2\u0aec\u0aed\7a\2\2\u0aed\u0aee\5\r\7\2\u0aee\u0aef\5\t" + - "\5\2\u0aef\u0af0\5/\30\2\u0af0\u0af1\5\t\5\2\u0af1\u0af2\5\37\20\2\u0af2" + - "\u0af3\5%\23\2\u0af3\u0af4\5\25\13\2\u0af4\u011c\3\2\2\2\u0af5\u0af6\5" + - "\r\7\2\u0af6\u0af7\5%\23\2\u0af7\u0af8\5#\22\2\u0af8\u0af9\5-\27\2\u0af9" + - "\u0afa\5/\30\2\u0afa\u0afb\5+\26\2\u0afb\u0afc\5\t\5\2\u0afc\u0afd\5\31" + - "\r\2\u0afd\u0afe\5#\22\2\u0afe\u0aff\5/\30\2\u0aff\u0b00\7a\2\2\u0b00" + - "\u0b01\5#\22\2\u0b01\u0b02\5\t\5\2\u0b02\u0b03\5!\21\2\u0b03\u0b04\5\21" + - "\t\2\u0b04\u011e\3\2\2\2\u0b05\u0b06\5\r\7\2\u0b06\u0b07\5%\23\2\u0b07" + - "\u0b08\5#\22\2\u0b08\u0b09\5-\27\2\u0b09\u0b0a\5/\30\2\u0b0a\u0b0b\5+" + - "\26\2\u0b0b\u0b0c\5\t\5\2\u0b0c\u0b0d\5\31\r\2\u0b0d\u0b0e\5#\22\2\u0b0e" + - "\u0b0f\5/\30\2\u0b0f\u0b10\7a\2\2\u0b10\u0b11\5-\27\2\u0b11\u0b12\5\r" + - "\7\2\u0b12\u0b13\5\27\f\2\u0b13\u0b14\5\21\t\2\u0b14\u0b15\5!\21\2\u0b15" + - "\u0b16\5\t\5\2\u0b16\u0120\3\2\2\2\u0b17\u0b18\5\r\7\2\u0b18\u0b19\5%" + - "\23\2\u0b19\u0b1a\5#\22\2\u0b1a\u0b1b\5-\27\2\u0b1b\u0b1c\5/\30\2\u0b1c" + - "\u0b1d\5+\26\2\u0b1d\u0b1e\5\t\5\2\u0b1e\u0b1f\5\31\r\2\u0b1f\u0b20\5" + - "#\22\2\u0b20\u0b21\5/\30\2\u0b21\u0b22\5-\27\2\u0b22\u0122\3\2\2\2\u0b23" + - "\u0b24\5\r\7\2\u0b24\u0b25\5%\23\2\u0b25\u0b26\5#\22\2\u0b26\u0b27\5-" + - "\27\2\u0b27\u0b28\5/\30\2\u0b28\u0b29\5+\26\2\u0b29\u0b2a\5\61\31\2\u0b2a" + - "\u0b2b\5\r\7\2\u0b2b\u0b2c\5/\30\2\u0b2c\u0b2d\5%\23\2\u0b2d\u0b2e\5+" + - "\26\2\u0b2e\u0124\3\2\2\2\u0b2f\u0b30\5\r\7\2\u0b30\u0b31\5%\23\2\u0b31" + - "\u0b32\5#\22\2\u0b32\u0b33\5/\30\2\u0b33\u0b34\5\t\5\2\u0b34\u0b35\5\31" + - "\r\2\u0b35\u0b36\5#\22\2\u0b36\u0b37\5-\27\2\u0b37\u0126\3\2\2\2\u0b38" + - "\u0b39\5\r\7\2\u0b39\u0b3a\5%\23\2\u0b3a\u0b3b\5#\22\2\u0b3b\u0b3c\5/" + - "\30\2\u0b3c\u0b3d\5\31\r\2\u0b3d\u0b3e\5#\22\2\u0b3e\u0b3f\5\61\31\2\u0b3f" + - "\u0b40\5\21\t\2\u0b40\u0128\3\2\2\2\u0b41\u0b42\5\r\7\2\u0b42\u0b43\5" + - "%\23\2\u0b43\u0b44\5#\22\2\u0b44\u0b45\5\63\32\2\u0b45\u0b46\5\21\t\2" + - "\u0b46\u0b47\5+\26\2\u0b47\u0b48\5-\27\2\u0b48\u0b49\5\31\r\2\u0b49\u0b4a" + - "\5%\23\2\u0b4a\u0b4b\5#\22\2\u0b4b\u012a\3\2\2\2\u0b4c\u0b4d\5\r\7\2\u0b4d" + - "\u0b4e\5%\23\2\u0b4e\u0b4f\5#\22\2\u0b4f\u0b50\5\63\32\2\u0b50\u0b51\5" + - "\21\t\2\u0b51\u0b52\5+\26\2\u0b52\u0b53\5/\30\2\u0b53\u012c\3\2\2\2\u0b54" + - "\u0b55\5\r\7\2\u0b55\u0b56\5%\23\2\u0b56\u0b57\5\'\24\2\u0b57\u0b58\5" + - "9\35\2\u0b58\u012e\3\2\2\2\u0b59\u0b5a\5\r\7\2\u0b5a\u0b5b\5%\23\2\u0b5b" + - "\u0b5c\5+\26\2\u0b5c\u0b5d\5+\26\2\u0b5d\u0130\3\2\2\2\u0b5e\u0b5f\5\r" + - "\7\2\u0b5f\u0b60\5%\23\2\u0b60\u0b61\5+\26\2\u0b61\u0b62\5+\26\2\u0b62" + - "\u0b63\5\21\t\2\u0b63\u0b64\5-\27\2\u0b64\u0b65\5\'\24\2\u0b65\u0b66\5" + - "%\23\2\u0b66\u0b67\5#\22\2\u0b67\u0b68\5\17\b\2\u0b68\u0b69\5\31\r\2\u0b69" + - "\u0b6a\5#\22\2\u0b6a\u0b6b\5\25\13\2\u0b6b\u0132\3\2\2\2\u0b6c\u0b6d\5" + - "\r\7\2\u0b6d\u0b6e\5%\23\2\u0b6e\u0b6f\5-\27\2\u0b6f\u0b70\5/\30\2\u0b70" + - "\u0b71\5-\27\2\u0b71\u0134\3\2\2\2\u0b72\u0b73\5\r\7\2\u0b73\u0b74\5%" + - "\23\2\u0b74\u0b75\5\61\31\2\u0b75\u0b76\5#\22\2\u0b76\u0b77\5/\30\2\u0b77" + - "\u0136\3\2\2\2\u0b78\u0b79\5\r\7\2\u0b79\u0b7a\5%\23\2\u0b7a\u0b7b\5\63" + - "\32\2\u0b7b\u0b7c\5\t\5\2\u0b7c\u0b7d\5+\26\2\u0b7d\u0b7e\7a\2\2\u0b7e" + - "\u0b7f\5\'\24\2\u0b7f\u0b80\5%\23\2\u0b80\u0b81\5\'\24\2\u0b81\u0138\3" + - "\2\2\2\u0b82\u0b83\5\r\7\2\u0b83\u0b84\5%\23\2\u0b84\u0b85\5\63\32\2\u0b85" + - "\u0b86\5\t\5\2\u0b86\u0b87\5+\26\2\u0b87\u0b88\7a\2\2\u0b88\u0b89\5-\27" + - "\2\u0b89\u0b8a\5\t\5\2\u0b8a\u0b8b\5!\21\2\u0b8b\u0b8c\5\'\24\2\u0b8c" + - "\u013a\3\2\2\2\u0b8d\u0b8e\5\r\7\2\u0b8e\u0b8f\5+\26\2\u0b8f\u0b90\5\21" + - "\t\2\u0b90\u0b91\5\t\5\2\u0b91\u0b92\5/\30\2\u0b92\u0b93\5\21\t\2\u0b93" + - "\u013c\3\2\2\2\u0b94\u0b95\5\r\7\2\u0b95\u0b96\5+\26\2\u0b96\u0b97\5\21" + - "\t\2\u0b97\u0b98\5\t\5\2\u0b98\u0b99\5/\30\2\u0b99\u0b9a\5\21\t\2\u0b9a" + - "\u0b9b\5\17\b\2\u0b9b\u0b9c\5\13\6\2\u0b9c\u013e\3\2\2\2\u0b9d\u0b9e\5" + - "\r\7\2\u0b9e\u0b9f\5+\26\2\u0b9f\u0ba0\5\21\t\2\u0ba0\u0ba1\5\t\5\2\u0ba1" + - "\u0ba2\5/\30\2\u0ba2\u0ba3\5\21\t\2\u0ba3\u0ba4\5\61\31\2\u0ba4\u0ba5" + - "\5-\27\2\u0ba5\u0ba6\5\21\t\2\u0ba6\u0ba7\5+\26\2\u0ba7\u0140\3\2\2\2" + - "\u0ba8\u0ba9\5\r\7\2\u0ba9\u0baa\5+\26\2\u0baa\u0bab\5%\23\2\u0bab\u0bac" + - "\5-\27\2\u0bac\u0bad\5-\27\2\u0bad\u0142\3\2\2\2\u0bae\u0baf\5\r\7\2\u0baf" + - "\u0bb0\5-\27\2\u0bb0\u0bb1\5\63\32\2\u0bb1\u0144\3\2\2\2\u0bb2\u0bb3\5" + - "\r\7\2\u0bb3\u0bb4\5\61\31\2\u0bb4\u0bb5\5\13\6\2\u0bb5\u0bb6\5\21\t\2" + - "\u0bb6\u0146\3\2\2\2\u0bb7\u0bb8\5\r\7\2\u0bb8\u0bb9\5\61\31\2\u0bb9\u0bba" + - "\5!\21\2\u0bba\u0bbb\5\21\t\2\u0bbb\u0bbc\7a\2\2\u0bbc\u0bbd\5\17\b\2" + - "\u0bbd\u0bbe\5\31\r\2\u0bbe\u0bbf\5-\27\2\u0bbf\u0bc0\5/\30\2\u0bc0\u0148" + - "\3\2\2\2\u0bc1\u0bc2\5\r\7\2\u0bc2\u0bc3\5\61\31\2\u0bc3\u0bc4\5+\26\2" + - "\u0bc4\u0bc5\5+\26\2\u0bc5\u0bc6\5\21\t\2\u0bc6\u0bc7\5#\22\2\u0bc7\u0bc8" + - "\5/\30\2\u0bc8\u014a\3\2\2\2\u0bc9\u0bca\5\r\7\2\u0bca\u0bcb\5\61\31\2" + - "\u0bcb\u0bcc\5+\26\2\u0bcc\u0bcd\5+\26\2\u0bcd\u0bce\5\21\t\2\u0bce\u0bcf" + - "\5#\22\2\u0bcf\u0bd0\5/\30\2\u0bd0\u0bd1\7a\2\2\u0bd1\u0bd2\5\17\b\2\u0bd2" + - "\u0bd3\5\t\5\2\u0bd3\u0bd4\5/\30\2\u0bd4\u0bd5\5\21\t\2\u0bd5\u014c\3" + - "\2\2\2\u0bd6\u0bd7\5\r\7\2\u0bd7\u0bd8\5\61\31\2\u0bd8\u0bd9\5+\26\2\u0bd9" + - "\u0bda\5+\26\2\u0bda\u0bdb\5\21\t\2\u0bdb\u0bdc\5#\22\2\u0bdc\u0bdd\5" + - "/\30\2\u0bdd\u0bde\7a\2\2\u0bde\u0bdf\5\17\b\2\u0bdf\u0be0\5\21\t\2\u0be0" + - "\u0be1\5\23\n\2\u0be1\u0be2\5\t\5\2\u0be2\u0be3\5\61\31\2\u0be3\u0be4" + - "\5\37\20\2\u0be4\u0be5\5/\30\2\u0be5\u0be6\7a\2\2\u0be6\u0be7\5/\30\2" + - "\u0be7\u0be8\5+\26\2\u0be8\u0be9\5\t\5\2\u0be9\u0bea\5#\22\2\u0bea\u0beb" + - "\5-\27\2\u0beb\u0bec\5\23\n\2\u0bec\u0bed\5%\23\2\u0bed\u0bee\5+\26\2" + - "\u0bee\u0bef\5!\21\2\u0bef\u0bf0\7a\2\2\u0bf0\u0bf1\5\25\13\2\u0bf1\u0bf2" + - "\5+\26\2\u0bf2\u0bf3\5%\23\2\u0bf3\u0bf4\5\61\31\2\u0bf4\u0bf5\5\'\24" + - "\2\u0bf5\u014e\3\2\2\2\u0bf6\u0bf7\5\r\7\2\u0bf7\u0bf8\5\61\31\2\u0bf8" + - "\u0bf9\5+\26\2\u0bf9\u0bfa\5+\26\2\u0bfa\u0bfb\5\21\t\2\u0bfb\u0bfc\5" + - "#\22\2\u0bfc\u0bfd\5/\30\2\u0bfd\u0bfe\7a\2\2\u0bfe\u0bff\5\'\24\2\u0bff" + - "\u0c00\5\t\5\2\u0c00\u0c01\5/\30\2\u0c01\u0c02\5\27\f\2\u0c02\u0150\3" + - "\2\2\2\u0c03\u0c04\5\r\7\2\u0c04\u0c05\5\61\31\2\u0c05\u0c06\5+\26\2\u0c06" + - "\u0c07\5+\26\2\u0c07\u0c08\5\21\t\2\u0c08\u0c09\5#\22\2\u0c09\u0c0a\5" + - "/\30\2\u0c0a\u0c0b\7a\2\2\u0c0b\u0c0c\5+\26\2\u0c0c\u0c0d\5%\23\2\u0c0d" + - "\u0c0e\5\37\20\2\u0c0e\u0c0f\5\21\t\2\u0c0f\u0152\3\2\2\2\u0c10\u0c11" + - "\5\r\7\2\u0c11\u0c12\5\61\31\2\u0c12\u0c13\5+\26\2\u0c13\u0c14\5+\26\2" + - "\u0c14\u0c15\5\21\t\2\u0c15\u0c16\5#\22\2\u0c16\u0c17\5/\30\2\u0c17\u0c18" + - "\7a\2\2\u0c18\u0c19\5/\30\2\u0c19\u0c1a\5\31\r\2\u0c1a\u0c1b\5!\21\2\u0c1b" + - "\u0c1c\5\21\t\2\u0c1c\u0154\3\2\2\2\u0c1d\u0c1e\5\r\7\2\u0c1e\u0c1f\5" + - "\61\31\2\u0c1f\u0c20\5+\26\2\u0c20\u0c21\5+\26\2\u0c21\u0c22\5\21\t\2" + - "\u0c22\u0c23\5#\22\2\u0c23\u0c24\5/\30\2\u0c24\u0c25\7a\2\2\u0c25\u0c26" + - "\5/\30\2\u0c26\u0c27\5\31\r\2\u0c27\u0c28\5!\21\2\u0c28\u0c29\5\21\t\2" + - "\u0c29\u0c2a\5-\27\2\u0c2a\u0c2b\5/\30\2\u0c2b\u0c2c\5\t\5\2\u0c2c\u0c2d" + - "\5!\21\2\u0c2d\u0c2e\5\'\24\2\u0c2e\u0156\3\2\2\2\u0c2f\u0c30\5\r\7\2" + - "\u0c30\u0c31\5\61\31\2\u0c31\u0c32\5+\26\2\u0c32\u0c33\5+\26\2\u0c33\u0c34" + - "\5\21\t\2\u0c34\u0c35\5#\22\2\u0c35\u0c36\5/\30\2\u0c36\u0c37\7a\2\2\u0c37" + - "\u0c38\5/\30\2\u0c38\u0c39\5+\26\2\u0c39\u0c3a\5\t\5\2\u0c3a\u0c3b\5#" + - "\22\2\u0c3b\u0c3c\5-\27\2\u0c3c\u0c3d\5\23\n\2\u0c3d\u0c3e\5%\23\2\u0c3e" + - "\u0c3f\5+\26\2\u0c3f\u0c40\5!\21\2\u0c40\u0c41\7a\2\2\u0c41\u0c42\5\25" + - "\13\2\u0c42\u0c43\5+\26\2\u0c43\u0c44\5%\23\2\u0c44\u0c45\5\61\31\2\u0c45" + - "\u0c46\5\'\24\2\u0c46\u0c47\7a\2\2\u0c47\u0c48\5\23\n\2\u0c48\u0c49\5" + - "%\23\2\u0c49\u0c4a\5+\26\2\u0c4a\u0c4b\7a\2\2\u0c4b\u0c4c\5/\30\2\u0c4c" + - "\u0c4d\59\35\2\u0c4d\u0c4e\5\'\24\2\u0c4e\u0c4f\5\21\t\2\u0c4f\u0158\3" + - "\2\2\2\u0c50\u0c51\5\r\7\2\u0c51\u0c52\5\61\31\2\u0c52\u0c53\5+\26\2\u0c53" + - "\u0c54\5+\26\2\u0c54\u0c55\5\21\t\2\u0c55\u0c56\5#\22\2\u0c56\u0c57\5" + - "/\30\2\u0c57\u0c58\7a\2\2\u0c58\u0c59\5\61\31\2\u0c59\u0c5a\5-\27\2\u0c5a" + - "\u0c5b\5\21\t\2\u0c5b\u0c5c\5+\26\2\u0c5c\u015a\3\2\2\2\u0c5d\u0c5e\5" + - "\r\7\2\u0c5e\u0c5f\5\61\31\2\u0c5f\u0c60\5+\26\2\u0c60\u0c61\5-\27\2\u0c61" + - "\u0c62\5%\23\2\u0c62\u0c63\5+\26\2\u0c63\u015c\3\2\2\2\u0c64\u0c65\5\r" + - "\7\2\u0c65\u0c66\5\61\31\2\u0c66\u0c67\5+\26\2\u0c67\u0c68\5-\27\2\u0c68" + - "\u0c69\5%\23\2\u0c69\u0c6a\5+\26\2\u0c6a\u0c6b\7a\2\2\u0c6b\u0c6c\5#\22" + - "\2\u0c6c\u0c6d\5\t\5\2\u0c6d\u0c6e\5!\21\2\u0c6e\u0c6f\5\21\t\2\u0c6f" + - "\u015e\3\2\2\2\u0c70\u0c71\5\r\7\2\u0c71\u0c72\59\35\2\u0c72\u0c73\5\r" + - "\7\2\u0c73\u0c74\5\37\20\2\u0c74\u0c75\5\21\t\2\u0c75\u0160\3\2\2\2\u0c76" + - "\u0c77\5\17\b\2\u0c77\u0c78\5\t\5\2\u0c78\u0c79\5/\30\2\u0c79\u0c7a\5" + - "\t\5\2\u0c7a\u0162\3\2\2\2\u0c7b\u0c7c\5\17\b\2\u0c7c\u0c7d\5\t\5\2\u0c7d" + - "\u0c7e\5/\30\2\u0c7e\u0c7f\5\t\5\2\u0c7f\u0c80\5\13\6\2\u0c80\u0c81\5" + - "\t\5\2\u0c81\u0c82\5-\27\2\u0c82\u0c83\5\21\t\2\u0c83\u0164\3\2\2\2\u0c84" + - "\u0c85\5\17\b\2\u0c85\u0c86\5\t\5\2\u0c86\u0c87\5/\30\2\u0c87\u0c88\5" + - "\21\t\2\u0c88\u0166\3\2\2\2\u0c89\u0c8a\5\17\b\2\u0c8a\u0c8b\5\t\5\2\u0c8b" + - "\u0c8c\5/\30\2\u0c8c\u0c8d\5\21\t\2\u0c8d\u0c8e\5/\30\2\u0c8e\u0c8f\5" + - "\31\r\2\u0c8f\u0c90\5!\21\2\u0c90\u0c91\5\21\t\2\u0c91\u0c92\7a\2\2\u0c92" + - "\u0c93\5\31\r\2\u0c93\u0c94\5#\22\2\u0c94\u0c95\5/\30\2\u0c95\u0c96\5" + - "\21\t\2\u0c96\u0c97\5+\26\2\u0c97\u0c98\5\63\32\2\u0c98\u0c99\5\t\5\2" + - "\u0c99\u0c9a\5\37\20\2\u0c9a\u0c9b\7a\2\2\u0c9b\u0c9c\5\r\7\2\u0c9c\u0c9d" + - "\5%\23\2\u0c9d\u0c9e\5\17\b\2\u0c9e\u0c9f\5\21\t\2\u0c9f\u0168\3\2\2\2" + - "\u0ca0\u0ca1\5\17\b\2\u0ca1\u0ca2\5\t\5\2\u0ca2\u0ca3\5/\30\2\u0ca3\u0ca4" + - "\5\21\t\2\u0ca4\u0ca5\5/\30\2\u0ca5\u0ca6\5\31\r\2\u0ca6\u0ca7\5!\21\2" + - "\u0ca7\u0ca8\5\21\t\2\u0ca8\u0ca9\7a\2\2\u0ca9\u0caa\5\31\r\2\u0caa\u0cab" + - "\5#\22\2\u0cab\u0cac\5/\30\2\u0cac\u0cad\5\21\t\2\u0cad\u0cae\5+\26\2" + - "\u0cae\u0caf\5\63\32\2\u0caf\u0cb0\5\t\5\2\u0cb0\u0cb1\5\37\20\2\u0cb1" + - "\u0cb2\7a\2\2\u0cb2\u0cb3\5\'\24\2\u0cb3\u0cb4\5+\26\2\u0cb4\u0cb5\5\21" + - "\t\2\u0cb5\u0cb6\5\r\7\2\u0cb6\u0cb7\5\31\r\2\u0cb7\u0cb8\5-\27\2\u0cb8" + - "\u0cb9\5\31\r\2\u0cb9\u0cba\5%\23\2\u0cba\u0cbb\5#\22\2\u0cbb\u016a\3" + - "\2\2\2\u0cbc\u0cbd\5\17\b\2\u0cbd\u0cbe\5\t\5\2\u0cbe\u0cbf\59\35\2\u0cbf" + - "\u016c\3\2\2\2\u0cc0\u0cc1\5\17\b\2\u0cc1\u0cc2\5\21\t\2\u0cc2\u0cc3\5" + - "\t\5\2\u0cc3\u0cc4\5\37\20\2\u0cc4\u0cc5\5\37\20\2\u0cc5\u0cc6\5%\23\2" + - "\u0cc6\u0cc7\5\r\7\2\u0cc7\u0cc8\5\t\5\2\u0cc8\u0cc9\5/\30\2\u0cc9\u0cca" + - "\5\21\t\2\u0cca\u016e\3\2\2\2\u0ccb\u0ccc\5\17\b\2\u0ccc\u0ccd\5\21\t" + - "\2\u0ccd\u0cce\5\r\7\2\u0cce\u0170\3\2\2\2\u0ccf\u0cd0\5\17\b\2\u0cd0" + - "\u0cd1\5\21\t\2\u0cd1\u0cd2\5\r\7\2\u0cd2\u0cd3\5\31\r\2\u0cd3\u0cd4\5" + - "!\21\2\u0cd4\u0cd5\5\t\5\2\u0cd5\u0cd6\5\37\20\2\u0cd6\u0172\3\2\2\2\u0cd7" + - "\u0cd8\5\17\b\2\u0cd8\u0cd9\5\21\t\2\u0cd9\u0cda\5\r\7\2\u0cda\u0cdb\5" + - "\37\20\2\u0cdb\u0cdc\5\t\5\2\u0cdc\u0cdd\5+\26\2\u0cdd\u0cde\5\21\t\2" + - "\u0cde\u0174\3\2\2\2\u0cdf\u0ce0\5\17\b\2\u0ce0\u0ce1\5\21\t\2\u0ce1\u0ce2" + - "\5\23\n\2\u0ce2\u0ce3\5\t\5\2\u0ce3\u0ce4\5\61\31\2\u0ce4\u0ce5\5\37\20" + - "\2\u0ce5\u0ce6\5/\30\2\u0ce6\u0176\3\2\2\2\u0ce7\u0ce8\5\17\b\2\u0ce8" + - "\u0ce9\5\21\t\2\u0ce9\u0cea\5\23\n\2\u0cea\u0ceb\5\t\5\2\u0ceb\u0cec\5" + - "\61\31\2\u0cec\u0ced\5\37\20\2\u0ced\u0cee\5/\30\2\u0cee\u0cef\5-\27\2" + - "\u0cef\u0178\3\2\2\2\u0cf0\u0cf1\5\17\b\2\u0cf1\u0cf2\5\21\t\2\u0cf2\u0cf3" + - "\5\23\n\2\u0cf3\u0cf4\5\21\t\2\u0cf4\u0cf5\5+\26\2\u0cf5\u0cf6\5\t\5\2" + - "\u0cf6\u0cf7\5\13\6\2\u0cf7\u0cf8\5\37\20\2\u0cf8\u0cf9\5\21\t\2\u0cf9" + - "\u017a\3\2\2\2\u0cfa\u0cfb\5\17\b\2\u0cfb\u0cfc\5\21\t\2\u0cfc\u0cfd\5" + - "\23\n\2\u0cfd\u0cfe\5\21\t\2\u0cfe\u0cff\5+\26\2\u0cff\u0d00\5+\26\2\u0d00" + - "\u0d01\5\t\5\2\u0d01\u0d02\5\13\6\2\u0d02\u0d03\5\37\20\2\u0d03\u0d04" + - "\5\21\t\2\u0d04\u017c\3\2\2\2\u0d05\u0d06\5\17\b\2\u0d06\u0d07\5\21\t" + - "\2\u0d07\u0d08\5\23\n\2\u0d08\u0d09\5\21\t\2\u0d09\u0d0a\5+\26\2\u0d0a" + - "\u0d0b\5+\26\2\u0d0b\u0d0c\5\21\t\2\u0d0c\u0d0d\5\17\b\2\u0d0d\u017e\3" + - "\2\2\2\u0d0e\u0d0f\5\17\b\2\u0d0f\u0d10\5\21\t\2\u0d10\u0d11\5\23\n\2" + - "\u0d11\u0d12\5\31\r\2\u0d12\u0d13\5#\22\2\u0d13\u0d14\5\21\t\2\u0d14\u0d15" + - "\5\17\b\2\u0d15\u0180\3\2\2\2\u0d16\u0d17\5\17\b\2\u0d17\u0d18\5\21\t" + - "\2\u0d18\u0d19\5\23\n\2\u0d19\u0d1a\5\31\r\2\u0d1a\u0d1b\5#\22\2\u0d1b" + - "\u0d1c\5\21\t\2\u0d1c\u0d1d\5+\26\2\u0d1d\u0182\3\2\2\2\u0d1e\u0d1f\5" + - "\17\b\2\u0d1f\u0d20\5\21\t\2\u0d20\u0d21\5\25\13\2\u0d21\u0d22\5+\26\2" + - "\u0d22\u0d23\5\21\t\2\u0d23\u0d24\5\21\t\2\u0d24\u0184\3\2\2\2\u0d25\u0d26" + - "\5\17\b\2\u0d26\u0d27\5\21\t\2\u0d27\u0d28\5\37\20\2\u0d28\u0d29\5\21" + - "\t\2\u0d29\u0d2a\5/\30\2\u0d2a\u0d2b\5\21\t\2\u0d2b\u0186\3\2\2\2\u0d2c" + - "\u0d2d\5\17\b\2\u0d2d\u0d2e\5\21\t\2\u0d2e\u0d2f\5\37\20\2\u0d2f\u0d30" + - "\5\31\r\2\u0d30\u0d31\5!\21\2\u0d31\u0d32\5\31\r\2\u0d32\u0d33\5/\30\2" + - "\u0d33\u0d34\5\21\t\2\u0d34\u0d35\5+\26\2\u0d35\u0188\3\2\2\2\u0d36\u0d37" + - "\5\17\b\2\u0d37\u0d38\5\21\t\2\u0d38\u0d39\5\37\20\2\u0d39\u0d3a\5\31" + - "\r\2\u0d3a\u0d3b\5!\21\2\u0d3b\u0d3c\5\31\r\2\u0d3c\u0d3d\5/\30\2\u0d3d" + - "\u0d3e\5\21\t\2\u0d3e\u0d3f\5+\26\2\u0d3f\u0d40\5-\27\2\u0d40\u018a\3" + - "\2\2\2\u0d41\u0d42\5\17\b\2\u0d42\u0d43\5\21\t\2\u0d43\u0d44\5#\22\2\u0d44" + - "\u0d45\5-\27\2\u0d45\u0d46\5\21\t\2\u0d46\u0d47\7a\2\2\u0d47\u0d48\5+" + - "\26\2\u0d48\u0d49\5\t\5\2\u0d49\u0d4a\5#\22\2\u0d4a\u0d4b\5\35\17\2\u0d4b" + - "\u018c\3\2\2\2\u0d4c\u0d4d\5\17\b\2\u0d4d\u0d4e\5\21\t\2\u0d4e\u0d4f\5" + - "\'\24\2\u0d4f\u0d50\5\21\t\2\u0d50\u0d51\5#\22\2\u0d51\u0d52\5\17\b\2" + - "\u0d52\u0d53\5-\27\2\u0d53\u018e\3\2\2\2\u0d54\u0d55\5\17\b\2\u0d55\u0d56" + - "\5\21\t\2\u0d56\u0d57\5\'\24\2\u0d57\u0d58\5/\30\2\u0d58\u0d59\5\27\f" + - "\2\u0d59\u0190\3\2\2\2\u0d5a\u0d5b\5\17\b\2\u0d5b\u0d5c\5\21\t\2\u0d5c" + - "\u0d5d\5+\26\2\u0d5d\u0d5e\5\21\t\2\u0d5e\u0d5f\5\23\n\2\u0d5f\u0192\3" + - "\2\2\2\u0d60\u0d61\5\17\b\2\u0d61\u0d62\5\21\t\2\u0d62\u0d63\5+\26\2\u0d63" + - "\u0d64\5\31\r\2\u0d64\u0d65\5\63\32\2\u0d65\u0d66\5\21\t\2\u0d66\u0d67" + - "\5\17\b\2\u0d67\u0194\3\2\2\2\u0d68\u0d69\5\17\b\2\u0d69\u0d6a\5\21\t" + - "\2\u0d6a\u0d6b\5-\27\2\u0d6b\u0d6c\5\r\7\2\u0d6c\u0196\3\2\2\2\u0d6d\u0d6e" + - "\5\17\b\2\u0d6e\u0d6f\5\21\t\2\u0d6f\u0d70\5-\27\2\u0d70\u0d71\5\r\7\2" + - "\u0d71\u0d72\5+\26\2\u0d72\u0d73\5\31\r\2\u0d73\u0d74\5\13\6\2\u0d74\u0d75" + - "\5\21\t\2\u0d75\u0198\3\2\2\2\u0d76\u0d77\5\17\b\2\u0d77\u0d78\5\21\t" + - "\2\u0d78\u0d79\5-\27\2\u0d79\u0d7a\5\r\7\2\u0d7a\u0d7b\5+\26\2\u0d7b\u0d7c" + - "\5\31\r\2\u0d7c\u0d7d\5\'\24\2\u0d7d\u0d7e\5/\30\2\u0d7e\u0d7f\5%\23\2" + - "\u0d7f\u0d80\5+\26\2\u0d80\u019a\3\2\2\2\u0d81\u0d82\5\17\b\2\u0d82\u0d83" + - "\5\21\t\2\u0d83\u0d84\5-\27\2\u0d84\u0d85\5/\30\2\u0d85\u0d86\5+\26\2" + - "\u0d86\u0d87\5%\23\2\u0d87\u0d88\59\35\2\u0d88\u019c\3\2\2\2\u0d89\u0d8a" + - "\5\17\b\2\u0d8a\u0d8b\5\21\t\2\u0d8b\u0d8c\5-\27\2\u0d8c\u0d8d\5/\30\2" + - "\u0d8d\u0d8e\5+\26\2\u0d8e\u0d8f\5\61\31\2\u0d8f\u0d90\5\r\7\2\u0d90\u0d91" + - "\5/\30\2\u0d91\u0d92\5%\23\2\u0d92\u0d93\5+\26\2\u0d93\u019e\3\2\2\2\u0d94" + - "\u0d95\5\17\b\2\u0d95\u0d96\5\21\t\2\u0d96\u0d97\5/\30\2\u0d97\u0d98\5" + - "\21\t\2\u0d98\u0d99\5+\26\2\u0d99\u0d9a\5!\21\2\u0d9a\u0d9b\5\31\r\2\u0d9b" + - "\u0d9c\5#\22\2\u0d9c\u0d9d\5\31\r\2\u0d9d\u0d9e\5-\27\2\u0d9e\u0d9f\5" + - "/\30\2\u0d9f\u0da0\5\31\r\2\u0da0\u0da1\5\r\7\2\u0da1\u01a0\3\2\2\2\u0da2" + - "\u0da3\5\17\b\2\u0da3\u0da4\5\31\r\2\u0da4\u0da5\5\t\5\2\u0da5\u0da6\5" + - "\25\13\2\u0da6\u0da7\5#\22\2\u0da7\u0da8\5%\23\2\u0da8\u0da9\5-\27\2\u0da9" + - "\u0daa\5/\30\2\u0daa\u0dab\5\31\r\2\u0dab\u0dac\5\r\7\2\u0dac\u0dad\5" + - "-\27\2\u0dad\u01a2\3\2\2\2\u0dae\u0daf\5\17\b\2\u0daf\u0db0\5\31\r\2\u0db0" + - "\u0db1\5\r\7\2\u0db1\u0db2\5/\30\2\u0db2\u0db3\5\31\r\2\u0db3\u0db4\5" + - "%\23\2\u0db4\u0db5\5#\22\2\u0db5\u0db6\5\t\5\2\u0db6\u0db7\5+\26\2\u0db7" + - "\u0db8\59\35\2\u0db8\u01a4\3\2\2\2\u0db9\u0dba\5\17\b\2\u0dba\u0dbb\5" + - "\31\r\2\u0dbb\u0dbc\5-\27\2\u0dbc\u0dbd\5\t\5\2\u0dbd\u0dbe\5\13\6\2\u0dbe" + - "\u0dbf\5\37\20\2\u0dbf\u0dc0\5\21\t\2\u0dc0\u01a6\3\2\2\2\u0dc1\u0dc2" + - "\5\17\b\2\u0dc2\u0dc3\5\31\r\2\u0dc3\u0dc4\5-\27\2\u0dc4\u0dc5\5\t\5\2" + - "\u0dc5\u0dc6\5\13\6\2\u0dc6\u0dc7\5\37\20\2\u0dc7\u0dc8\5\21\t\2\u0dc8" + - "\u0dc9\7a\2\2\u0dc9\u0dca\5\'\24\2\u0dca\u0dcb\5\t\5\2\u0dcb\u0dcc\5\25" + - "\13\2\u0dcc\u0dcd\5\21\t\2\u0dcd\u0dce\7a\2\2\u0dce\u0dcf\5-\27\2\u0dcf" + - "\u0dd0\5\35\17\2\u0dd0\u0dd1\5\31\r\2\u0dd1\u0dd2\5\'\24\2\u0dd2\u0dd3" + - "\5\'\24\2\u0dd3\u0dd4\5\31\r\2\u0dd4\u0dd5\5#\22\2\u0dd5\u0dd6\5\25\13" + - "\2\u0dd6\u01a8\3\2\2\2\u0dd7\u0dd8\5\17\b\2\u0dd8\u0dd9\5\31\r\2\u0dd9" + - "\u0dda\5-\27\2\u0dda\u0ddb\5\r\7\2\u0ddb\u0ddc\5\t\5\2\u0ddc\u0ddd\5+" + - "\26\2\u0ddd\u0dde\5\17\b\2\u0dde\u01aa\3\2\2\2\u0ddf\u0de0\5\17\b\2\u0de0" + - "\u0de1\5\31\r\2\u0de1\u0de2\5-\27\2\u0de2\u0de3\5\r\7\2\u0de3\u0de4\5" + - "%\23\2\u0de4\u0de5\5#\22\2\u0de5\u0de6\5#\22\2\u0de6\u0de7\5\21\t\2\u0de7" + - "\u0de8\5\r\7\2\u0de8\u0de9\5/\30\2\u0de9\u01ac\3\2\2\2\u0dea\u0deb\5\17" + - "\b\2\u0deb\u0dec\5\31\r\2\u0dec\u0ded\5-\27\2\u0ded\u0dee\5\'\24\2\u0dee" + - "\u0def\5\t\5\2\u0def\u0df0\5/\30\2\u0df0\u0df1\5\r\7\2\u0df1\u0df2\5\27" + - "\f\2\u0df2\u01ae\3\2\2\2\u0df3\u0df4\5\17\b\2\u0df4\u0df5\5\31\r\2\u0df5" + - "\u0df6\5-\27\2\u0df6\u0df7\5/\30\2\u0df7\u0df8\5\31\r\2\u0df8\u0df9\5" + - "#\22\2\u0df9\u0dfa\5\r\7\2\u0dfa\u0dfb\5/\30\2\u0dfb\u01b0\3\2\2\2\u0dfc" + - "\u0dfd\5\17\b\2\u0dfd\u0dfe\5%\23\2\u0dfe\u01b2\3\2\2\2\u0dff\u0e00\5" + - "\17\b\2\u0e00\u0e01\5%\23\2\u0e01\u0e02\5!\21\2\u0e02\u0e03\5\t\5\2\u0e03" + - "\u0e04\5\31\r\2\u0e04\u0e05\5#\22\2\u0e05\u01b4\3\2\2\2\u0e06\u0e07\5" + - "\17\b\2\u0e07\u0e08\5%\23\2\u0e08\u0e09\5\61\31\2\u0e09\u0e0a\5\13\6\2" + - "\u0e0a\u0e0b\5\37\20\2\u0e0b\u0e0c\5\21\t\2\u0e0c\u01b6\3\2\2\2\u0e0d" + - "\u0e0e\5\17\b\2\u0e0e\u0e0f\5+\26\2\u0e0f\u0e10\5%\23\2\u0e10\u0e11\5" + - "\'\24\2\u0e11\u01b8\3\2\2\2\u0e12\u0e13\5\17\b\2\u0e13\u0e14\59\35\2\u0e14" + - "\u0e15\5#\22\2\u0e15\u0e16\5\t\5\2\u0e16\u0e17\5!\21\2\u0e17\u0e18\5\31" + - "\r\2\u0e18\u0e19\5\r\7\2\u0e19\u01ba\3\2\2\2\u0e1a\u0e1b\5\17\b\2\u0e1b" + - "\u0e1c\59\35\2\u0e1c\u0e1d\5#\22\2\u0e1d\u0e1e\5\t\5\2\u0e1e\u0e1f\5!" + - "\21\2\u0e1f\u0e20\5\31\r\2\u0e20\u0e21\5\r\7\2\u0e21\u0e22\7a\2\2\u0e22" + - "\u0e23\5\23\n\2\u0e23\u0e24\5\61\31\2\u0e24\u0e25\5#\22\2\u0e25\u0e26" + - "\5\r\7\2\u0e26\u0e27\5/\30\2\u0e27\u0e28\5\31\r\2\u0e28\u0e29\5%\23\2" + - "\u0e29\u0e2a\5#\22\2\u0e2a\u01bc\3\2\2\2\u0e2b\u0e2c\5\17\b\2\u0e2c\u0e2d" + - "\59\35\2\u0e2d\u0e2e\5#\22\2\u0e2e\u0e2f\5\t\5\2\u0e2f\u0e30\5!\21\2\u0e30" + - "\u0e31\5\31\r\2\u0e31\u0e32\5\r\7\2\u0e32\u0e33\7a\2\2\u0e33\u0e34\5\23" + - "\n\2\u0e34\u0e35\5\61\31\2\u0e35\u0e36\5#\22\2\u0e36\u0e37\5\r\7\2\u0e37" + - "\u0e38\5/\30\2\u0e38\u0e39\5\31\r\2\u0e39\u0e3a\5%\23\2\u0e3a\u0e3b\5" + - "#\22\2\u0e3b\u0e3c\7a\2\2\u0e3c\u0e3d\5\r\7\2\u0e3d\u0e3e\5%\23\2\u0e3e" + - "\u0e3f\5\17\b\2\u0e3f\u0e40\5\21\t\2\u0e40\u01be\3\2\2\2\u0e41\u0e42\5" + - "\21\t\2\u0e42\u0e43\5\t\5\2\u0e43\u0e44\5\r\7\2\u0e44\u0e45\5\27\f\2\u0e45" + - "\u01c0\3\2\2\2\u0e46\u0e47\5\21\t\2\u0e47\u0e48\5\37\20\2\u0e48\u0e49" + - "\5\21\t\2\u0e49\u0e4a\5!\21\2\u0e4a\u0e4b\5\21\t\2\u0e4b\u0e4c\5#\22\2" + - "\u0e4c\u0e4d\5/\30\2\u0e4d\u01c2\3\2\2\2\u0e4e\u0e4f\5\21\t\2\u0e4f\u0e50" + - "\5\37\20\2\u0e50\u0e51\5-\27\2\u0e51\u0e52\5\21\t\2\u0e52\u01c4\3\2\2" + - "\2\u0e53\u0e54\5\21\t\2\u0e54\u0e55\5#\22\2\u0e55\u0e56\5\t\5\2\u0e56" + - "\u0e57\5\13\6\2\u0e57\u0e58\5\37\20\2\u0e58\u0e59\5\21\t\2\u0e59\u01c6" + - "\3\2\2\2\u0e5a\u0e5b\5\21\t\2\u0e5b\u0e5c\5#\22\2\u0e5c\u0e5d\5\r\7\2" + - "\u0e5d\u0e5e\5%\23\2\u0e5e\u0e5f\5\17\b\2\u0e5f\u0e60\5\31\r\2\u0e60\u0e61" + - "\5#\22\2\u0e61\u0e62\5\25\13\2\u0e62\u01c8\3\2\2\2\u0e63\u0e64\5\21\t" + - "\2\u0e64\u0e65\5#\22\2\u0e65\u0e66\5\r\7\2\u0e66\u0e67\5+\26\2\u0e67\u0e68" + - "\59\35\2\u0e68\u0e69\5\'\24\2\u0e69\u0e6a\5/\30\2\u0e6a\u0e6b\5\21\t\2" + - "\u0e6b\u0e6c\5\17\b\2\u0e6c\u01ca\3\2\2\2\u0e6d\u0e6e\5\21\t\2\u0e6e\u0e6f" + - "\5#\22\2\u0e6f\u0e70\5\17\b\2\u0e70\u01cc\3\2\2\2\u0e71\u0e72\5\21\t\2" + - "\u0e72\u0e73\5#\22\2\u0e73\u0e74\5\17\b\2\u0e74\u0e75\7/\2\2\u0e75\u0e76" + - "\5\21\t\2\u0e76\u0e77\5\67\34\2\u0e77\u0e78\5\21\t\2\u0e78\u0e79\5\r\7" + - "\2\u0e79\u01ce\3\2\2\2\u0e7a\u0e7b\5\21\t\2\u0e7b\u0e7c\5)\25\2\u0e7c" + - "\u0e7d\5\61\31\2\u0e7d\u0e7e\5\t\5\2\u0e7e\u0e7f\5\37\20\2\u0e7f\u0e80" + - "\5-\27\2\u0e80\u01d0\3\2\2\2\u0e81\u0e82\5\21\t\2\u0e82\u0e83\5-\27\2" + - "\u0e83\u0e84\5\r\7\2\u0e84\u0e85\5\t\5\2\u0e85\u0e86\5\'\24\2\u0e86\u0e87" + - "\5\21\t\2\u0e87\u01d2\3\2\2\2\u0e88\u0e89\5\21\t\2\u0e89\u0e8a\5\63\32" + - "\2\u0e8a\u0e8b\5\21\t\2\u0e8b\u0e8c\5+\26\2\u0e8c\u0e8d\59\35\2\u0e8d" + - "\u01d4\3\2\2\2\u0e8e\u0e8f\5\21\t\2\u0e8f\u0e90\5\67\34\2\u0e90\u0e91" + - "\5\r\7\2\u0e91\u0e92\5\21\t\2\u0e92\u0e93\5\'\24\2\u0e93\u0e94\5/\30\2" + - "\u0e94\u01d6\3\2\2\2\u0e95\u0e96\5\21\t\2\u0e96\u0e97\5\67\34\2\u0e97" + - "\u0e98\5\r\7\2\u0e98\u0e99\5\21\t\2\u0e99\u0e9a\5\'\24\2\u0e9a\u0e9b\5" + - "/\30\2\u0e9b\u0e9c\5\31\r\2\u0e9c\u0e9d\5%\23\2\u0e9d\u0e9e\5#\22\2\u0e9e" + - "\u01d8\3\2\2\2\u0e9f\u0ea0\5\21\t\2\u0ea0\u0ea1\5\67\34\2\u0ea1\u0ea2" + - "\5\r\7\2\u0ea2\u0ea3\5\37\20\2\u0ea3\u0ea4\5\61\31\2\u0ea4\u0ea5\5\17" + - "\b\2\u0ea5\u0ea6\5\21\t\2\u0ea6\u01da\3\2\2\2\u0ea7\u0ea8\5\21\t\2\u0ea8" + - "\u0ea9\5\67\34\2\u0ea9\u0eaa\5\r\7\2\u0eaa\u0eab\5\37\20\2\u0eab\u0eac" + - "\5\61\31\2\u0eac\u0ead\5\17\b\2\u0ead\u0eae\5\31\r\2\u0eae\u0eaf\5#\22" + - "\2\u0eaf\u0eb0\5\25\13\2\u0eb0\u01dc\3\2\2\2\u0eb1\u0eb2\5\21\t\2\u0eb2" + - "\u0eb3\5\67\34\2\u0eb3\u0eb4\5\r\7\2\u0eb4\u0eb5\5\37\20\2\u0eb5\u0eb6" + - "\5\61\31\2\u0eb6\u0eb7\5-\27\2\u0eb7\u0eb8\5\31\r\2\u0eb8\u0eb9\5\63\32" + - "\2\u0eb9\u0eba\5\21\t\2\u0eba\u01de\3\2\2\2\u0ebb\u0ebc\5\21\t\2\u0ebc" + - "\u0ebd\5\67\34\2\u0ebd\u0ebe\5\21\t\2\u0ebe\u0ebf\5\r\7\2\u0ebf\u01e0" + - "\3\2\2\2\u0ec0\u0ec1\5\21\t\2\u0ec1\u0ec2\5\67\34\2\u0ec2\u0ec3\5\21\t" + - "\2\u0ec3\u0ec4\5\r\7\2\u0ec4\u0ec5\5\61\31\2\u0ec5\u0ec6\5/\30\2\u0ec6" + - "\u0ec7\5\21\t\2\u0ec7\u01e2\3\2\2\2\u0ec8\u0ec9\5\21\t\2\u0ec9\u0eca\5" + - "\67\34\2\u0eca\u0ecb\5\31\r\2\u0ecb\u0ecc\5-\27\2\u0ecc\u0ecd\5/\30\2" + - "\u0ecd\u0ece\5\31\r\2\u0ece\u0ecf\5#\22\2\u0ecf\u0ed0\5\25\13\2\u0ed0" + - "\u01e4\3\2\2\2\u0ed1\u0ed2\5\21\t\2\u0ed2\u0ed3\5\67\34\2\u0ed3\u0ed4" + - "\5\31\r\2\u0ed4\u0ed5\5-\27\2\u0ed5\u0ed6\5/\30\2\u0ed6\u0ed7\5-\27\2" + - "\u0ed7\u01e6\3\2\2\2\u0ed8\u0ed9\5\21\t\2\u0ed9\u0eda\5\67\34\2\u0eda" + - "\u0edb\5\'\24\2\u0edb\u01e8\3\2\2\2\u0edc\u0edd\5\21\t\2\u0edd\u0ede\5" + - "\67\34\2\u0ede\u0edf\5\'\24\2\u0edf\u0ee0\5\37\20\2\u0ee0\u0ee1\5\t\5" + - "\2\u0ee1\u0ee2\5\31\r\2\u0ee2\u0ee3\5#\22\2\u0ee3\u01ea\3\2\2\2\u0ee4" + - "\u0ee5\5\21\t\2\u0ee5\u0ee6\5\67\34\2\u0ee6\u0ee7\5/\30\2\u0ee7\u0ee8" + - "\5\21\t\2\u0ee8\u0ee9\5#\22\2\u0ee9\u0eea\5\17\b\2\u0eea\u0eeb\5\21\t" + - "\2\u0eeb\u0eec\5\17\b\2\u0eec\u01ec\3\2\2\2\u0eed\u0eee\5\21\t\2\u0eee" + - "\u0eef\5\67\34\2\u0eef\u0ef0\5/\30\2\u0ef0\u0ef1\5\21\t\2\u0ef1\u0ef2" + - "\5#\22\2\u0ef2\u0ef3\5-\27\2\u0ef3\u0ef4\5\31\r\2\u0ef4\u0ef5\5%\23\2" + - "\u0ef5\u0ef6\5#\22\2\u0ef6\u01ee\3\2\2\2\u0ef7\u0ef8\5\21\t\2\u0ef8\u0ef9" + - "\5\67\34\2\u0ef9\u0efa\5/\30\2\u0efa\u0efb\5\21\t\2\u0efb\u0efc\5+\26" + - "\2\u0efc\u0efd\5#\22\2\u0efd\u0efe\5\t\5\2\u0efe\u0eff\5\37\20\2\u0eff" + - "\u01f0\3\2\2\2\u0f00\u0f01\5\21\t\2\u0f01\u0f02\5\67\34\2\u0f02\u0f03" + - "\5/\30\2\u0f03\u0f04\5+\26\2\u0f04\u0f05\5\t\5\2\u0f05\u0f06\5\r\7\2\u0f06" + - "\u0f07\5/\30\2\u0f07\u01f2\3\2\2\2\u0f08\u0f09\5\23\n\2\u0f09\u0f0a\5" + - "\t\5\2\u0f0a\u0f0b\5\37\20\2\u0f0b\u0f0c\5-\27\2\u0f0c\u0f0d\5\21\t\2" + - "\u0f0d\u01f4\3\2\2\2\u0f0e\u0f0f\5\23\n\2\u0f0f\u0f10\5\21\t\2\u0f10\u0f11" + - "\5/\30\2\u0f11\u0f12\5\r\7\2\u0f12\u0f13\5\27\f\2\u0f13\u01f6\3\2\2\2" + - "\u0f14\u0f15\5\23\n\2\u0f15\u0f16\5\31\r\2\u0f16\u0f17\5\21\t\2\u0f17" + - "\u0f18\5\37\20\2\u0f18\u0f19\5\17\b\2\u0f19\u0f1a\5-\27\2\u0f1a\u01f8" + - "\3\2\2\2\u0f1b\u0f1c\5\23\n\2\u0f1c\u0f1d\5\31\r\2\u0f1d\u0f1e\5\37\20" + - "\2\u0f1e\u0f1f\5/\30\2\u0f1f\u0f20\5\21\t\2\u0f20\u0f21\5+\26\2\u0f21" + - "\u01fa\3\2\2\2\u0f22\u0f23\5\23\n\2\u0f23\u0f24\5\31\r\2\u0f24\u0f25\5" + - "#\22\2\u0f25\u0f26\5\t\5\2\u0f26\u0f27\5\37\20\2\u0f27\u01fc\3\2\2\2\u0f28" + - "\u0f29\5\23\n\2\u0f29\u0f2a\5\31\r\2\u0f2a\u0f2b\5+\26\2\u0f2b\u0f2c\5" + - "-\27\2\u0f2c\u0f2d\5/\30\2\u0f2d\u01fe\3\2\2\2\u0f2e\u0f2f\5\23\n\2\u0f2f" + - "\u0f30\5\37\20\2\u0f30\u0f31\5%\23\2\u0f31\u0f32\5\t\5\2\u0f32\u0f33\5" + - "/\30\2\u0f33\u0200\3\2\2\2\u0f34\u0f35\5\23\n\2\u0f35\u0f36\5\37\20\2" + - "\u0f36\u0f37\5%\23\2\u0f37\u0f38\5%\23\2\u0f38\u0f39\5+\26\2\u0f39\u0202" + - "\3\2\2\2\u0f3a\u0f3b\5\23\n\2\u0f3b\u0f3c\5%\23\2\u0f3c\u0f3d\5\37\20" + - "\2\u0f3d\u0f3e\5\37\20\2\u0f3e\u0f3f\5%\23\2\u0f3f\u0f40\5\65\33\2\u0f40" + - "\u0f41\5\31\r\2\u0f41\u0f42\5#\22\2\u0f42\u0f43\5\25\13\2\u0f43\u0204" + - "\3\2\2\2\u0f44\u0f45\5\23\n\2\u0f45\u0f46\5%\23\2\u0f46\u0f47\5+\26\2" + - "\u0f47\u0206\3\2\2\2\u0f48\u0f49\5\23\n\2\u0f49\u0f4a\5%\23\2\u0f4a\u0f4b" + - "\5+\26\2\u0f4b\u0f4c\5\r\7\2\u0f4c\u0f4d\5\21\t\2\u0f4d\u0208\3\2\2\2" + - "\u0f4e\u0f4f\5\23\n\2\u0f4f\u0f50\5%\23\2\u0f50\u0f51\5+\26\2\u0f51\u0f52" + - "\5\21\t\2\u0f52\u0f53\5\31\r\2\u0f53\u0f54\5\25\13\2\u0f54\u0f55\5#\22" + - "\2\u0f55\u020a\3\2\2\2\u0f56\u0f57\5\23\n\2\u0f57\u0f58\5%\23\2\u0f58" + - "\u0f59\5+\26\2\u0f59\u0f5a\5!\21\2\u0f5a\u0f5b\5\t\5\2\u0f5b\u0f5c\5/" + - "\30\2\u0f5c\u020c\3\2\2\2\u0f5d\u0f5e\5\23\n\2\u0f5e\u0f5f\5%\23\2\u0f5f" + - "\u0f60\5+\26\2\u0f60\u0f61\5/\30\2\u0f61\u0f62\5+\26\2\u0f62\u0f63\5\t" + - "\5\2\u0f63\u0f64\5#\22\2\u0f64\u020e\3\2\2\2\u0f65\u0f66\5\23\n\2\u0f66" + - "\u0f67\5%\23\2\u0f67\u0f68\5+\26\2\u0f68\u0f69\5\65\33\2\u0f69\u0f6a\5" + - "\t\5\2\u0f6a\u0f6b\5+\26\2\u0f6b\u0f6c\5\17\b\2\u0f6c\u0210\3\2\2\2\u0f6d" + - "\u0f6e\5\23\n\2\u0f6e\u0f6f\5%\23\2\u0f6f\u0f70\5\61\31\2\u0f70\u0f71" + - "\5#\22\2\u0f71\u0f72\5\17\b\2\u0f72\u0212\3\2\2\2\u0f73\u0f74\5\23\n\2" + - "\u0f74\u0f75\5+\26\2\u0f75\u0f76\5\21\t\2\u0f76\u0f77\5\21\t\2\u0f77\u0214" + - "\3\2\2\2\u0f78\u0f79\5\23\n\2\u0f79\u0f7a\5+\26\2\u0f7a\u0f7b\5\21\t\2" + - "\u0f7b\u0f7c\5\21\t\2\u0f7c\u0f7d\5;\36\2\u0f7d\u0f7e\5\21\t\2\u0f7e\u0216" + - "\3\2\2\2\u0f7f\u0f80\5\23\n\2\u0f80\u0f81\5+\26\2\u0f81\u0f82\5%\23\2" + - "\u0f82\u0f83\5!\21\2\u0f83\u0218\3\2\2\2\u0f84\u0f85\5\23\n\2\u0f85\u0f86" + - "\5\61\31\2\u0f86\u0f87\5\37\20\2\u0f87\u0f88\5\37\20\2\u0f88\u021a\3\2" + - "\2\2\u0f89\u0f8a\5\23\n\2\u0f8a\u0f8b\5\61\31\2\u0f8b\u0f8c\5#\22\2\u0f8c" + - "\u0f8d\5\r\7\2\u0f8d\u0f8e\5/\30\2\u0f8e\u0f8f\5\31\r\2\u0f8f\u0f90\5" + - "%\23\2\u0f90\u0f91\5#\22\2\u0f91\u021c\3\2\2\2\u0f92\u0f93\5\23\n\2\u0f93" + - "\u0f94\5\61\31\2\u0f94\u0f95\5-\27\2\u0f95\u0f96\5\31\r\2\u0f96\u0f97" + - "\5%\23\2\u0f97\u0f98\5#\22\2\u0f98\u021e\3\2\2\2\u0f99\u0f9a\5\25\13\2" + - "\u0f9a\u0220\3\2\2\2\u0f9b\u0f9c\5\25\13\2\u0f9c\u0f9d\5\21\t\2\u0f9d" + - "\u0f9e\5#\22\2\u0f9e\u0f9f\5\21\t\2\u0f9f\u0fa0\5+\26\2\u0fa0\u0fa1\5" + - "\t\5\2\u0fa1\u0fa2\5\37\20\2\u0fa2\u0222\3\2\2\2\u0fa3\u0fa4\5\25\13\2" + - "\u0fa4\u0fa5\5\21\t\2\u0fa5\u0fa6\5#\22\2\u0fa6\u0fa7\5\21\t\2\u0fa7\u0fa8" + - "\5+\26\2\u0fa8\u0fa9\5\t\5\2\u0fa9\u0faa\5/\30\2\u0faa\u0fab\5\21\t\2" + - "\u0fab\u0fac\5\17\b\2\u0fac\u0224\3\2\2\2\u0fad\u0fae\5\25\13\2\u0fae" + - "\u0faf\5\21\t\2\u0faf\u0fb0\5/\30\2\u0fb0\u0226\3\2\2\2\u0fb1\u0fb2\5" + - "\25\13\2\u0fb2\u0fb3\5\37\20\2\u0fb3\u0fb4\5%\23\2\u0fb4\u0fb5\5\13\6" + - "\2\u0fb5\u0fb6\5\t\5\2\u0fb6\u0fb7\5\37\20\2\u0fb7\u0228\3\2\2\2\u0fb8" + - "\u0fb9\5\25\13\2\u0fb9\u0fba\5%\23\2\u0fba\u022a\3\2\2\2\u0fbb\u0fbc\5" + - "\25\13\2\u0fbc\u0fbd\5%\23\2\u0fbd\u0fbe\5/\30\2\u0fbe\u0fbf\5%\23\2\u0fbf" + - "\u022c\3\2\2\2\u0fc0\u0fc1\5\25\13\2\u0fc1\u0fc2\5+\26\2\u0fc2\u0fc3\5" + - "\t\5\2\u0fc3\u0fc4\5#\22\2\u0fc4\u0fc5\5/\30\2\u0fc5\u022e\3\2\2\2\u0fc6" + - "\u0fc7\5\25\13\2\u0fc7\u0fc8\5+\26\2\u0fc8\u0fc9\5\t\5\2\u0fc9\u0fca\5" + - "#\22\2\u0fca\u0fcb\5/\30\2\u0fcb\u0fcc\5\21\t\2\u0fcc\u0fcd\5\17\b\2\u0fcd" + - "\u0230\3\2\2\2\u0fce\u0fcf\5\25\13\2\u0fcf\u0fd0\5+\26\2\u0fd0\u0fd1\5" + - "\21\t\2\u0fd1\u0fd2\5\t\5\2\u0fd2\u0fd3\5/\30\2\u0fd3\u0fd4\5\21\t\2\u0fd4" + - "\u0fd5\5-\27\2\u0fd5\u0fd6\5/\30\2\u0fd6\u0232\3\2\2\2\u0fd7\u0fd8\5\25" + - "\13\2\u0fd8\u0fd9\5+\26\2\u0fd9\u0fda\5%\23\2\u0fda\u0fdb\5\61\31\2\u0fdb" + - "\u0fdc\5\'\24\2\u0fdc\u0234\3\2\2\2\u0fdd\u0fde\5\25\13\2\u0fde\u0fdf" + - "\5+\26\2\u0fdf\u0fe0\5%\23\2\u0fe0\u0fe1\5\61\31\2\u0fe1\u0fe2\5\'\24" + - "\2\u0fe2\u0fe3\5\31\r\2\u0fe3\u0fe4\5#\22\2\u0fe4\u0fe5\5\25\13\2\u0fe5" + - "\u0236\3\2\2\2\u0fe6\u0fe7\5\27\f\2\u0fe7\u0fe8\5\t\5\2\u0fe8\u0fe9\5" + - "#\22\2\u0fe9\u0fea\5\17\b\2"; - private static final String _serializedATNSegment2 = - "\u0fea\u0feb\5\37\20\2\u0feb\u0fec\5\21\t\2\u0fec\u0fed\5+\26\2\u0fed" + - "\u0238\3\2\2\2\u0fee\u0fef\5\27\f\2\u0fef\u0ff0\5\t\5\2\u0ff0\u0ff1\5" + - "\63\32\2\u0ff1\u0ff2\5\31\r\2\u0ff2\u0ff3\5#\22\2\u0ff3\u0ff4\5\25\13" + - "\2\u0ff4\u023a\3\2\2\2\u0ff5\u0ff6\5\27\f\2\u0ff6\u0ff7\5\31\r\2\u0ff7" + - "\u0ff8\5\21\t\2\u0ff8\u0ff9\5+\26\2\u0ff9\u0ffa\5\t\5\2\u0ffa\u0ffb\5" + - "+\26\2\u0ffb\u0ffc\5\r\7\2\u0ffc\u0ffd\5\27\f\2\u0ffd\u0ffe\59\35\2\u0ffe" + - "\u023c\3\2\2\2\u0fff\u1000\5\27\f\2\u1000\u1001\5%\23\2\u1001\u1002\5" + - "\37\20\2\u1002\u1003\5\17\b\2\u1003\u023e\3\2\2\2\u1004\u1005\5\27\f\2" + - "\u1005\u1006\5%\23\2\u1006\u1007\5-\27\2\u1007\u1008\5/\30\2\u1008\u0240" + - "\3\2\2\2\u1009\u100a\5\27\f\2\u100a\u100b\5%\23\2\u100b\u100c\5\61\31" + - "\2\u100c\u100d\5+\26\2\u100d\u0242\3\2\2\2\u100e\u100f\5\31\r\2\u100f" + - "\u1010\5\17\b\2\u1010\u1011\5\21\t\2\u1011\u1012\5#\22\2\u1012\u1013\5" + - "/\30\2\u1013\u1014\5\31\r\2\u1014\u1015\5/\30\2\u1015\u1016\59\35\2\u1016" + - "\u0244\3\2\2\2\u1017\u1018\5\31\r\2\u1018\u1019\5\25\13\2\u1019\u101a" + - "\5#\22\2\u101a\u101b\5%\23\2\u101b\u101c\5+\26\2\u101c\u101d\5\21\t\2" + - "\u101d\u0246\3\2\2\2\u101e\u101f\5\31\r\2\u101f\u1020\5\37\20\2\u1020" + - "\u1021\5\31\r\2\u1021\u1022\5\35\17\2\u1022\u1023\5\21\t\2\u1023\u0248" + - "\3\2\2\2\u1024\u1025\5\31\r\2\u1025\u1026\5!\21\2\u1026\u1027\5!\21\2" + - "\u1027\u1028\5\21\t\2\u1028\u1029\5\17\b\2\u1029\u102a\5\31\r\2\u102a" + - "\u102b\5\t\5\2\u102b\u102c\5/\30\2\u102c\u102d\5\21\t\2\u102d\u024a\3" + - "\2\2\2\u102e\u102f\5\31\r\2\u102f\u1030\5!\21\2\u1030\u1031\5!\21\2\u1031" + - "\u1032\5\61\31\2\u1032\u1033\5/\30\2\u1033\u1034\5\t\5\2\u1034\u1035\5" + - "\13\6\2\u1035\u1036\5\37\20\2\u1036\u1037\5\21\t\2\u1037\u024c\3\2\2\2" + - "\u1038\u1039\5\31\r\2\u1039\u103a\5!\21\2\u103a\u103b\5\'\24\2\u103b\u103c" + - "\5\37\20\2\u103c\u103d\5\21\t\2\u103d\u103e\5!\21\2\u103e\u103f\5\21\t" + - "\2\u103f\u1040\5#\22\2\u1040\u1041\5/\30\2\u1041\u1042\5\t\5\2\u1042\u1043" + - "\5/\30\2\u1043\u1044\5\31\r\2\u1044\u1045\5%\23\2\u1045\u1046\5#\22\2" + - "\u1046\u024e\3\2\2\2\u1047\u1048\5\31\r\2\u1048\u1049\5!\21\2\u1049\u104a" + - "\5\'\24\2\u104a\u104b\5\37\20\2\u104b\u104c\5\31\r\2\u104c\u104d\5\r\7" + - "\2\u104d\u104e\5\31\r\2\u104e\u104f\5/\30\2\u104f\u0250\3\2\2\2\u1050" + - "\u1051\5\31\r\2\u1051\u1052\5#\22\2\u1052\u0252\3\2\2\2\u1053\u1054\5" + - "\31\r\2\u1054\u1055\5#\22\2\u1055\u1056\5\r\7\2\u1056\u1057\5\37\20\2" + - "\u1057\u1058\5\61\31\2\u1058\u1059\5\17\b\2\u1059\u105a\5\31\r\2\u105a" + - "\u105b\5#\22\2\u105b\u105c\5\25\13\2\u105c\u0254\3\2\2\2\u105d\u105e\5" + - "\31\r\2\u105e\u105f\5#\22\2\u105f\u1060\5\r\7\2\u1060\u1061\5+\26\2\u1061" + - "\u1062\5\21\t\2\u1062\u1063\5!\21\2\u1063\u1064\5\21\t\2\u1064\u1065\5" + - "#\22\2\u1065\u1066\5/\30\2\u1066\u0256\3\2\2\2\u1067\u1068\5\31\r\2\u1068" + - "\u1069\5#\22\2\u1069\u106a\5\17\b\2\u106a\u106b\5\21\t\2\u106b\u106c\5" + - "\67\34\2\u106c\u0258\3\2\2\2\u106d\u106e\5\31\r\2\u106e\u106f\5#\22\2" + - "\u106f\u1070\5\17\b\2\u1070\u1071\5\31\r\2\u1071\u1072\5\r\7\2\u1072\u1073" + - "\5\t\5\2\u1073\u1074\5/\30\2\u1074\u1075\5%\23\2\u1075\u1076\5+\26\2\u1076" + - "\u025a\3\2\2\2\u1077\u1078\5\31\r\2\u1078\u1079\5#\22\2\u1079\u107a\5" + - "\23\n\2\u107a\u107b\5\31\r\2\u107b\u107c\5\67\34\2\u107c\u025c\3\2\2\2" + - "\u107d\u107e\5\31\r\2\u107e\u107f\5#\22\2\u107f\u1080\5\27\f\2\u1080\u1081" + - "\5\21\t\2\u1081\u1082\5+\26\2\u1082\u1083\5\31\r\2\u1083\u1084\5/\30\2" + - "\u1084\u1085\5-\27\2\u1085\u025e\3\2\2\2\u1086\u1087\5\31\r\2\u1087\u1088" + - "\5#\22\2\u1088\u1089\5\31\r\2\u1089\u108a\5/\30\2\u108a\u108b\5\31\r\2" + - "\u108b\u108c\5\t\5\2\u108c\u108d\5\37\20\2\u108d\u108e\5\31\r\2\u108e" + - "\u108f\5;\36\2\u108f\u1090\5\21\t\2\u1090\u0260\3\2\2\2\u1091\u1092\5" + - "\31\r\2\u1092\u1093\5#\22\2\u1093\u1094\5\31\r\2\u1094\u1095\5/\30\2\u1095" + - "\u1096\5\31\r\2\u1096\u1097\5\t\5\2\u1097\u1098\5\37\20\2\u1098\u1099" + - "\5\37\20\2\u1099\u109a\59\35\2\u109a\u0262\3\2\2\2\u109b\u109c\5\31\r" + - "\2\u109c\u109d\5#\22\2\u109d\u109e\5#\22\2\u109e\u109f\5\21\t\2\u109f" + - "\u10a0\5+\26\2\u10a0\u0264\3\2\2\2\u10a1\u10a2\5\31\r\2\u10a2\u10a3\5" + - "#\22\2\u10a3\u10a4\5%\23\2\u10a4\u10a5\5\61\31\2\u10a5\u10a6\5/\30\2\u10a6" + - "\u0266\3\2\2\2\u10a7\u10a8\5\31\r\2\u10a8\u10a9\5#\22\2\u10a9\u10aa\5" + - "\'\24\2\u10aa\u10ab\5\61\31\2\u10ab\u10ac\5/\30\2\u10ac\u0268\3\2\2\2" + - "\u10ad\u10ae\5\31\r\2\u10ae\u10af\5#\22\2\u10af\u10b0\5-\27\2\u10b0\u10b1" + - "\5\21\t\2\u10b1\u10b2\5#\22\2\u10b2\u10b3\5-\27\2\u10b3\u10b4\5\31\r\2" + - "\u10b4\u10b5\5/\30\2\u10b5\u10b6\5\31\r\2\u10b6\u10b7\5\63\32\2\u10b7" + - "\u10b8\5\21\t\2\u10b8\u026a\3\2\2\2\u10b9\u10ba\5\31\r\2\u10ba\u10bb\5" + - "#\22\2\u10bb\u10bc\5-\27\2\u10bc\u10bd\5\21\t\2\u10bd\u10be\5+\26\2\u10be" + - "\u10bf\5/\30\2\u10bf\u026c\3\2\2\2\u10c0\u10c1\5\31\r\2\u10c1\u10c2\5" + - "#\22\2\u10c2\u10c3\5-\27\2\u10c3\u10c4\5/\30\2\u10c4\u10c5\5\t\5\2\u10c5" + - "\u10c6\5#\22\2\u10c6\u10c7\5\r\7\2\u10c7\u10c8\5\21\t\2\u10c8\u026e\3" + - "\2\2\2\u10c9\u10ca\5\31\r\2\u10ca\u10cb\5#\22\2\u10cb\u10cc\5-\27\2\u10cc" + - "\u10cd\5/\30\2\u10cd\u10ce\5\t\5\2\u10ce\u10cf\5#\22\2\u10cf\u10d0\5/" + - "\30\2\u10d0\u10d1\5\31\r\2\u10d1\u10d2\5\t\5\2\u10d2\u10d3\5\13\6\2\u10d3" + - "\u10d4\5\37\20\2\u10d4\u10d5\5\21\t\2\u10d5\u0270\3\2\2\2\u10d6\u10d7" + - "\5\31\r\2\u10d7\u10d8\5#\22\2\u10d8\u10d9\5-\27\2\u10d9\u10da\5/\30\2" + - "\u10da\u10db\5\21\t\2\u10db\u10dc\5\t\5\2\u10dc\u10dd\5\17\b\2\u10dd\u0272" + - "\3\2\2\2\u10de\u10df\5\31\r\2\u10df\u10e0\5#\22\2\u10e0\u10e1\5/\30\2" + - "\u10e1\u0274\3\2\2\2\u10e2\u10e3\5\31\r\2\u10e3\u10e4\5#\22\2\u10e4\u10e5" + - "\5/\30\2\u10e5\u10e6\5\21\t\2\u10e6\u10e7\5\25\13\2\u10e7\u10e8\5\21\t" + - "\2\u10e8\u10e9\5+\26\2\u10e9\u0276\3\2\2\2\u10ea\u10eb\5\31\r\2\u10eb" + - "\u10ec\5#\22\2\u10ec\u10ed\5/\30\2\u10ed\u10ee\5\21\t\2\u10ee\u10ef\5" + - "+\26\2\u10ef\u10f0\5-\27\2\u10f0\u10f1\5\21\t\2\u10f1\u10f2\5\r\7\2\u10f2" + - "\u10f3\5/\30\2\u10f3\u0278\3\2\2\2\u10f4\u10f5\5\31\r\2\u10f5\u10f6\5" + - "#\22\2\u10f6\u10f7\5/\30\2\u10f7\u10f8\5\21\t\2\u10f8\u10f9\5+\26\2\u10f9" + - "\u10fa\5-\27\2\u10fa\u10fb\5\21\t\2\u10fb\u10fc\5\r\7\2\u10fc\u10fd\5" + - "/\30\2\u10fd\u10fe\5\31\r\2\u10fe\u10ff\5%\23\2\u10ff\u1100\5#\22\2\u1100" + - "\u027a\3\2\2\2\u1101\u1102\5\31\r\2\u1102\u1103\5#\22\2\u1103\u1104\5" + - "/\30\2\u1104\u1105\5\21\t\2\u1105\u1106\5+\26\2\u1106\u1107\5\63\32\2" + - "\u1107\u1108\5\t\5\2\u1108\u1109\5\37\20\2\u1109\u027c\3\2\2\2\u110a\u110b" + - "\5\31\r\2\u110b\u110c\5#\22\2\u110c\u110d\5/\30\2\u110d\u110e\5%\23\2" + - "\u110e\u027e\3\2\2\2\u110f\u1110\5\31\r\2\u1110\u1111\5#\22\2\u1111\u1112" + - "\5\63\32\2\u1112\u1113\5%\23\2\u1113\u1114\5\35\17\2\u1114\u1115\5\21" + - "\t\2\u1115\u1116\5+\26\2\u1116\u0280\3\2\2\2\u1117\u1118\5\31\r\2\u1118" + - "\u1119\5-\27\2\u1119\u0282\3\2\2\2\u111a\u111b\5\31\r\2\u111b\u111c\5" + - "-\27\2\u111c\u111d\5%\23\2\u111d\u111e\5\37\20\2\u111e\u111f\5\t\5\2\u111f" + - "\u1120\5/\30\2\u1120\u1121\5\31\r\2\u1121\u1122\5%\23\2\u1122\u1123\5" + - "#\22\2\u1123\u0284\3\2\2\2\u1124\u1125\5\31\r\2\u1125\u1126\5/\30\2\u1126" + - "\u1127\5\21\t\2\u1127\u1128\5+\26\2\u1128\u1129\5\t\5\2\u1129\u112a\5" + - "/\30\2\u112a\u112b\5\21\t\2\u112b\u0286\3\2\2\2\u112c\u112d\5\33\16\2" + - "\u112d\u112e\5%\23\2\u112e\u112f\5\31\r\2\u112f\u1130\5#\22\2\u1130\u0288" + - "\3\2\2\2\u1131\u1132\5\35\17\2\u1132\u028a\3\2\2\2\u1133\u1134\5\35\17" + - "\2\u1134\u1135\5\21\t\2\u1135\u1136\59\35\2\u1136\u028c\3\2\2\2\u1137" + - "\u1138\5\35\17\2\u1138\u1139\5\21\t\2\u1139\u113a\59\35\2\u113a\u113b" + - "\7a\2\2\u113b\u113c\5!\21\2\u113c\u113d\5\21\t\2\u113d\u113e\5!\21\2\u113e" + - "\u113f\5\13\6\2\u113f\u1140\5\21\t\2\u1140\u1141\5+\26\2\u1141\u028e\3" + - "\2\2\2\u1142\u1143\5\35\17\2\u1143\u1144\5\21\t\2\u1144\u1145\59\35\2" + - "\u1145\u1146\7a\2\2\u1146\u1147\5/\30\2\u1147\u1148\59\35\2\u1148\u1149" + - "\5\'\24\2\u1149\u114a\5\21\t\2\u114a\u0290\3\2\2\2\u114b\u114c\5\37\20" + - "\2\u114c\u114d\5\t\5\2\u114d\u114e\5\13\6\2\u114e\u114f\5\21\t\2\u114f" + - "\u1150\5\37\20\2\u1150\u0292\3\2\2\2\u1151\u1152\5\37\20\2\u1152\u1153" + - "\5\t\5\2\u1153\u1154\5#\22\2\u1154\u1155\5\r\7\2\u1155\u1156\5%\23\2\u1156" + - "\u1157\5!\21\2\u1157\u1158\5\'\24\2\u1158\u1159\5\31\r\2\u1159\u115a\5" + - "\37\20\2\u115a\u115b\5\21\t\2\u115b\u115c\5+\26\2\u115c\u0294\3\2\2\2" + - "\u115d\u115e\5\37\20\2\u115e\u115f\5\t\5\2\u115f\u1160\5#\22\2\u1160\u1161" + - "\5\25\13\2\u1161\u1162\5\61\31\2\u1162\u1163\5\t\5\2\u1163\u1164\5\25" + - "\13\2\u1164\u1165\5\21\t\2\u1165\u0296\3\2\2\2\u1166\u1167\5\37\20\2\u1167" + - "\u1168\5\t\5\2\u1168\u1169\5+\26\2\u1169\u116a\5\25\13\2\u116a\u116b\5" + - "\21\t\2\u116b\u0298\3\2\2\2\u116c\u116d\5\37\20\2\u116d\u116e\5\t\5\2" + - "\u116e\u116f\5-\27\2\u116f\u1170\5/\30\2\u1170\u029a\3\2\2\2\u1171\u1172" + - "\5\37\20\2\u1172\u1173\5\t\5\2\u1173\u1174\5/\30\2\u1174\u1175\5\21\t" + - "\2\u1175\u1176\5+\26\2\u1176\u1177\5\t\5\2\u1177\u1178\5\37\20\2\u1178" + - "\u029c\3\2\2\2\u1179\u117a\5\37\20\2\u117a\u117b\5\21\t\2\u117b\u117c" + - "\5\t\5\2\u117c\u117d\5\17\b\2\u117d\u117e\5\31\r\2\u117e\u117f\5#\22\2" + - "\u117f\u1180\5\25\13\2\u1180\u029e\3\2\2\2\u1181\u1182\5\37\20\2\u1182" + - "\u1183\5\21\t\2\u1183\u1184\5\t\5\2\u1184\u1185\5-\27\2\u1185\u1186\5" + - "/\30\2\u1186\u02a0\3\2\2\2\u1187\u1188\5\37\20\2\u1188\u1189\5\21\t\2" + - "\u1189\u118a\5\23\n\2\u118a\u118b\5/\30\2\u118b\u02a2\3\2\2\2\u118c\u118d" + - "\5\37\20\2\u118d\u118e\5\21\t\2\u118e\u118f\5#\22\2\u118f\u1190\5\25\13" + - "\2\u1190\u1191\5/\30\2\u1191\u1192\5\27\f\2\u1192\u02a4\3\2\2\2\u1193" + - "\u1194\5\37\20\2\u1194\u1195\5\21\t\2\u1195\u1196\5-\27\2\u1196\u1197" + - "\5-\27\2\u1197\u02a6\3\2\2\2\u1198\u1199\5\37\20\2\u1199\u119a\5\21\t" + - "\2\u119a\u119b\5\63\32\2\u119b\u119c\5\21\t\2\u119c\u119d\5\37\20\2\u119d" + - "\u02a8\3\2\2\2\u119e\u119f\5\37\20\2\u119f\u11a0\5\31\r\2\u11a0\u11a1" + - "\5\35\17\2\u11a1\u11a2\5\21\t\2\u11a2\u02aa\3\2\2\2\u11a3\u11a4\5\37\20" + - "\2\u11a4\u11a5\5\31\r\2\u11a5\u11a6\5!\21\2\u11a6\u11a7\5\31\r\2\u11a7" + - "\u11a8\5/\30\2\u11a8\u02ac\3\2\2\2\u11a9\u11aa\5\37\20\2\u11aa\u11ab\5" + - "\31\r\2\u11ab\u11ac\5-\27\2\u11ac\u11ad\5/\30\2\u11ad\u11ae\5\21\t\2\u11ae" + - "\u11af\5#\22\2\u11af\u02ae\3\2\2\2\u11b0\u11b1\5\37\20\2\u11b1\u11b2\5" + - "#\22\2\u11b2\u02b0\3\2\2\2\u11b3\u11b4\5\37\20\2\u11b4\u11b5\5%\23\2\u11b5" + - "\u11b6\5\t\5\2\u11b6\u11b7\5\17\b\2\u11b7\u02b2\3\2\2\2\u11b8\u11b9\5" + - "\37\20\2\u11b9\u11ba\5%\23\2\u11ba\u11bb\5\r\7\2\u11bb\u11bc\5\t\5\2\u11bc" + - "\u11bd\5\37\20\2\u11bd\u02b4\3\2\2\2\u11be\u11bf\5\37\20\2\u11bf\u11c0" + - "\5%\23\2\u11c0\u11c1\5\r\7\2\u11c1\u11c2\5\t\5\2\u11c2\u11c3\5\37\20\2" + - "\u11c3\u11c4\5/\30\2\u11c4\u11c5\5\31\r\2\u11c5\u11c6\5!\21\2\u11c6\u11c7" + - "\5\21\t\2\u11c7\u02b6\3\2\2\2\u11c8\u11c9\5\37\20\2\u11c9\u11ca\5%\23" + - "\2\u11ca\u11cb\5\r\7\2\u11cb\u11cc\5\t\5\2\u11cc\u11cd\5\37\20\2\u11cd" + - "\u11ce\5/\30\2\u11ce\u11cf\5\31\r\2\u11cf\u11d0\5!\21\2\u11d0\u11d1\5" + - "\21\t\2\u11d1\u11d2\5-\27\2\u11d2\u11d3\5/\30\2\u11d3\u11d4\5\t\5\2\u11d4" + - "\u11d5\5!\21\2\u11d5\u11d6\5\'\24\2\u11d6\u02b8\3\2\2\2\u11d7\u11d8\5" + - "\37\20\2\u11d8\u11d9\5%\23\2\u11d9\u11da\5\r\7\2\u11da\u11db\5\t\5\2\u11db" + - "\u11dc\5/\30\2\u11dc\u11dd\5\31\r\2\u11dd\u11de\5%\23\2\u11de\u11df\5" + - "#\22\2\u11df\u02ba\3\2\2\2\u11e0\u11e1\5\37\20\2\u11e1\u11e2\5%\23\2\u11e2" + - "\u11e3\5\r\7\2\u11e3\u11e4\5\t\5\2\u11e4\u11e5\5/\30\2\u11e5\u11e6\5%" + - "\23\2\u11e6\u11e7\5+\26\2\u11e7\u02bc\3\2\2\2\u11e8\u11e9\5\37\20\2\u11e9" + - "\u11ea\5%\23\2\u11ea\u11eb\5\r\7\2\u11eb\u11ec\5\35\17\2\u11ec\u02be\3" + - "\2\2\2\u11ed\u11ee\5\37\20\2\u11ee\u11ef\5%\23\2\u11ef\u11f0\5\r\7\2\u11f0" + - "\u11f1\5\35\17\2\u11f1\u11f2\5\21\t\2\u11f2\u11f3\5\17\b\2\u11f3\u02c0" + - "\3\2\2\2\u11f4\u11f5\5\37\20\2\u11f5\u11f6\5%\23\2\u11f6\u11f7\5\65\33" + - "\2\u11f7\u11f8\5\21\t\2\u11f8\u11f9\5+\26\2\u11f9\u02c2\3\2\2\2\u11fa" + - "\u11fb\5!\21\2\u11fb\u02c4\3\2\2\2\u11fc\u11fd\5!\21\2\u11fd\u11fe\5\t" + - "\5\2\u11fe\u11ff\5\31\r\2\u11ff\u1200\5#\22\2\u1200\u02c6\3\2\2\2\u1201" + - "\u1202\5!\21\2\u1202\u1203\5\t\5\2\u1203\u1204\5\'\24\2\u1204\u02c8\3" + - "\2\2\2\u1205\u1206\5!\21\2\u1206\u1207\5\t\5\2\u1207\u1208\5\'\24\2\u1208" + - "\u1209\5\'\24\2\u1209\u120a\5\31\r\2\u120a\u120b\5#\22\2\u120b\u120c\5" + - "\25\13\2\u120c\u02ca\3\2\2\2\u120d\u120e\5!\21\2\u120e\u120f\5\t\5\2\u120f" + - "\u1210\5/\30\2\u1210\u1211\5\r\7\2\u1211\u1212\5\27\f\2\u1212\u02cc\3" + - "\2\2\2\u1213\u1214\5!\21\2\u1214\u1215\5\t\5\2\u1215\u1216\5/\30\2\u1216" + - "\u1217\5\r\7\2\u1217\u1218\5\27\f\2\u1218\u1219\7a\2\2\u1219\u121a\5-" + - "\27\2\u121a\u121b\5\31\r\2\u121b\u121c\5!\21\2\u121c\u121d\5\'\24\2\u121d" + - "\u121e\5\37\20\2\u121e\u121f\5\21\t\2\u121f\u02ce\3\2\2\2\u1220\u1221" + - "\5!\21\2\u1221\u1222\5\t\5\2\u1222\u1223\5/\30\2\u1223\u1224\5\r\7\2\u1224" + - "\u1225\5\27\f\2\u1225\u1226\5\21\t\2\u1226\u1227\5\17\b\2\u1227\u02d0" + - "\3\2\2\2\u1228\u1229\5!\21\2\u1229\u122a\5\t\5\2\u122a\u122b\5\67\34\2" + - "\u122b\u02d2\3\2\2\2\u122c\u122d\5!\21\2\u122d\u122e\5\t\5\2\u122e\u122f" + - "\5\67\34\2\u122f\u1230\5\63\32\2\u1230\u1231\5\t\5\2\u1231\u1232\5\37" + - "\20\2\u1232\u1233\5\61\31\2\u1233\u1234\5\21\t\2\u1234\u02d4\3\2\2\2\u1235" + - "\u1236\5!\21\2\u1236\u1237\5\21\t\2\u1237\u1238\5!\21\2\u1238\u1239\5" + - "\13\6\2\u1239\u123a\5\21\t\2\u123a\u123b\5+\26\2\u123b\u02d6\3\2\2\2\u123c" + - "\u123d\5!\21\2\u123d\u123e\5\21\t\2\u123e\u123f\5+\26\2\u123f\u1240\5" + - "\25\13\2\u1240\u1241\5\21\t\2\u1241\u02d8\3\2\2\2\u1242\u1243\5!\21\2" + - "\u1243\u1244\5\21\t\2\u1244\u1245\5-\27\2\u1245\u1246\5-\27\2\u1246\u1247" + - "\5\t\5\2\u1247\u1248\5\25\13\2\u1248\u1249\5\21\t\2\u1249\u124a\7a\2\2" + - "\u124a\u124b\5\37\20\2\u124b\u124c\5\21\t\2\u124c\u124d\5#\22\2\u124d" + - "\u124e\5\25\13\2\u124e\u124f\5/\30\2\u124f\u1250\5\27\f\2\u1250\u02da" + - "\3\2\2\2\u1251\u1252\5!\21\2\u1252\u1253\5\21\t\2\u1253\u1254\5-\27\2" + - "\u1254\u1255\5-\27\2\u1255\u1256\5\t\5\2\u1256\u1257\5\25\13\2\u1257\u1258" + - "\5\21\t\2\u1258\u1259\7a\2\2\u1259\u125a\5%\23\2\u125a\u125b\5\r\7\2\u125b" + - "\u125c\5/\30\2\u125c\u125d\5\21\t\2\u125d\u125e\5/\30\2\u125e\u125f\7" + - "a\2\2\u125f\u1260\5\37\20\2\u1260\u1261\5\21\t\2\u1261\u1262\5#\22\2\u1262" + - "\u1263\5\25\13\2\u1263\u1264\5/\30\2\u1264\u1265\5\27\f\2\u1265\u02dc" + - "\3\2\2\2\u1266\u1267\5!\21\2\u1267\u1268\5\21\t\2\u1268\u1269\5-\27\2" + - "\u1269\u126a\5-\27\2\u126a\u126b\5\t\5\2\u126b\u126c\5\25\13\2\u126c\u126d" + - "\5\21\t\2\u126d\u126e\7a\2\2\u126e\u126f\5/\30\2\u126f\u1270\5\21\t\2" + - "\u1270\u1271\5\67\34\2\u1271\u1272\5/\30\2\u1272\u02de\3\2\2\2\u1273\u1274" + - "\5!\21\2\u1274\u1275\5\21\t\2\u1275\u1276\5/\30\2\u1276\u1277\5\27\f\2" + - "\u1277\u1278\5%\23\2\u1278\u1279\5\17\b\2\u1279\u02e0\3\2\2\2\u127a\u127b" + - "\5!\21\2\u127b\u127c\5\31\r\2\u127c\u127d\5#\22\2\u127d\u02e2\3\2\2\2" + - "\u127e\u127f\5!\21\2\u127f\u1280\5\31\r\2\u1280\u1281\5#\22\2\u1281\u1282" + - "\5\61\31\2\u1282\u1283\5/\30\2\u1283\u1284\5\21\t\2\u1284\u02e4\3\2\2" + - "\2\u1285\u1286\5!\21\2\u1286\u1287\5\31\r\2\u1287\u1288\5#\22\2\u1288" + - "\u1289\5\63\32\2\u1289\u128a\5\t\5\2\u128a\u128b\5\37\20\2\u128b\u128c" + - "\5\61\31\2\u128c\u128d\5\21\t\2\u128d\u02e6\3\2\2\2\u128e\u128f\5!\21" + - "\2\u128f\u1290\5%\23\2\u1290\u1291\5\17\b\2\u1291\u02e8\3\2\2\2\u1292" + - "\u1293\5!\21\2\u1293\u1294\5%\23\2\u1294\u1295\5\17\b\2\u1295\u1296\5" + - "\21\t\2\u1296\u02ea\3\2\2\2\u1297\u1298\5!\21\2\u1298\u1299\5%\23\2\u1299" + - "\u129a\5\17\b\2\u129a\u129b\5\31\r\2\u129b\u129c\5\23\n\2\u129c\u129d" + - "\5\31\r\2\u129d\u129e\5\21\t\2\u129e\u129f\5-\27\2\u129f\u02ec\3\2\2\2" + - "\u12a0\u12a1\5!\21\2\u12a1\u12a2\5%\23\2\u12a2\u12a3\5\17\b\2\u12a3\u12a4" + - "\5\31\r\2\u12a4\u12a5\5\23\n\2\u12a5\u12a6\59\35\2\u12a6\u02ee\3\2\2\2" + - "\u12a7\u12a8\5!\21\2\u12a8\u12a9\5%\23\2\u12a9\u12aa\5\17\b\2\u12aa\u12ab" + - "\5\61\31\2\u12ab\u12ac\5\37\20\2\u12ac\u12ad\5\21\t\2\u12ad\u02f0\3\2" + - "\2\2\u12ae\u12af\5!\21\2\u12af\u12b0\5%\23\2\u12b0\u12b1\5#\22\2\u12b1" + - "\u12b2\5/\30\2\u12b2\u12b3\5\27\f\2\u12b3\u02f2\3\2\2\2\u12b4\u12b5\5" + - "!\21\2\u12b5\u12b6\5%\23\2\u12b6\u12b7\5+\26\2\u12b7\u12b8\5\21\t\2\u12b8" + - "\u02f4\3\2\2\2\u12b9\u12ba\5!\21\2\u12ba\u12bb\5%\23\2\u12bb\u12bc\5\63" + - "\32\2\u12bc\u12bd\5\21\t\2\u12bd\u02f6\3\2\2\2\u12be\u12bf\5!\21\2\u12bf" + - "\u12c0\5\61\31\2\u12c0\u12c1\5\37\20\2\u12c1\u12c2\5/\30\2\u12c2\u12c3" + - "\5\31\r\2\u12c3\u12c4\5-\27\2\u12c4\u12c5\5\21\t\2\u12c5\u12c6\5/\30\2" + - "\u12c6\u02f8\3\2\2\2\u12c7\u12c8\5!\21\2\u12c8\u12c9\5\61\31\2\u12c9\u12ca" + - "\5!\21\2\u12ca\u12cb\5\'\24\2\u12cb\u12cc\5-\27\2\u12cc\u02fa\3\2\2\2" + - "\u12cd\u12ce\5#\22\2\u12ce\u12cf\5\t\5\2\u12cf\u12d0\5!\21\2\u12d0\u12d1" + - "\5\21\t\2\u12d1\u02fc\3\2\2\2\u12d2\u12d3\5#\22\2\u12d3\u12d4\5\t\5\2" + - "\u12d4\u12d5\5!\21\2\u12d5\u12d6\5\21\t\2\u12d6\u12d7\5-\27\2\u12d7\u02fe" + - "\3\2\2\2\u12d8\u12d9\5#\22\2\u12d9\u12da\5\t\5\2\u12da\u12db\5/\30\2\u12db" + - "\u12dc\5\31\r\2\u12dc\u12dd\5%\23\2\u12dd\u12de\5#\22\2\u12de\u12df\5" + - "\t\5\2\u12df\u12e0\5\37\20\2\u12e0\u0300\3\2\2\2\u12e1\u12e2\5#\22\2\u12e2" + - "\u12e3\5\t\5\2\u12e3\u12e4\5/\30\2\u12e4\u12e5\5\61\31\2\u12e5\u12e6\5" + - "+\26\2\u12e6\u12e7\5\t\5\2\u12e7\u12e8\5\37\20\2\u12e8\u0302\3\2\2\2\u12e9" + - "\u12ea\5#\22\2\u12ea\u12eb\5\r\7\2\u12eb\u12ec\5\27\f\2\u12ec\u12ed\5" + - "\t\5\2\u12ed\u12ee\5+\26\2\u12ee\u0304\3\2\2\2\u12ef\u12f0\5#\22\2\u12f0" + - "\u12f1\5\r\7\2\u12f1\u12f2\5\37\20\2\u12f2\u12f3\5%\23\2\u12f3\u12f4\5" + - "\13\6\2\u12f4\u0306\3\2\2\2\u12f5\u12f6\5#\22\2\u12f6\u12f7\5\21\t\2\u12f7" + - "\u12f8\5-\27\2\u12f8\u12f9\5/\30\2\u12f9\u12fa\5\31\r\2\u12fa\u12fb\5" + - "#\22\2\u12fb\u12fc\5\25\13\2\u12fc\u0308\3\2\2\2\u12fd\u12fe\5#\22\2\u12fe" + - "\u12ff\5\21\t\2\u12ff\u1300\5\65\33\2\u1300\u030a\3\2\2\2\u1301\u1302" + - "\5#\22\2\u1302\u1303\5\21\t\2\u1303\u1304\5\67\34\2\u1304\u1305\5/\30" + - "\2\u1305\u030c\3\2\2\2\u1306\u1307\5#\22\2\u1307\u1308\5%\23\2\u1308\u030e" + - "\3\2\2\2\u1309\u130a\5#\22\2\u130a\u130b\5%\23\2\u130b\u130c\5\r\7\2\u130c" + - "\u130d\5+\26\2\u130d\u130e\5\21\t\2\u130e\u130f\5\t\5\2\u130f\u1310\5" + - "/\30\2\u1310\u1311\5\21\t\2\u1311\u1312\5\17\b\2\u1312\u1313\5\13\6\2" + - "\u1313\u0310\3\2\2\2\u1314\u1315\5#\22\2\u1315\u1316\5%\23\2\u1316\u1317" + - "\5\r\7\2\u1317\u1318\5+\26\2\u1318\u1319\5\21\t\2\u1319\u131a\5\t\5\2" + - "\u131a\u131b\5/\30\2\u131b\u131c\5\21\t\2\u131c\u131d\5\61\31\2\u131d" + - "\u131e\5-\27\2\u131e\u131f\5\21\t\2\u131f\u1320\5+\26\2\u1320\u0312\3" + - "\2\2\2\u1321\u1322\5#\22\2\u1322\u1323\5%\23\2\u1323\u1324\5#\22\2\u1324" + - "\u1325\5\21\t\2\u1325\u0314\3\2\2\2\u1326\u1327\5#\22\2\u1327\u1328\5" + - "%\23\2\u1328\u1329\5+\26\2\u1329\u132a\5!\21\2\u132a\u132b\5\t\5\2\u132b" + - "\u132c\5\37\20\2\u132c\u132d\5\31\r\2\u132d\u132e\5;\36\2\u132e\u132f" + - "\5\21\t\2\u132f\u0316\3\2\2\2\u1330\u1331\5#\22\2\u1331\u1332\5%\23\2" + - "\u1332\u1333\5+\26\2\u1333\u1334\5!\21\2\u1334\u1335\5\t\5\2\u1335\u1336" + - "\5\37\20\2\u1336\u1337\5\31\r\2\u1337\u1338\5;\36\2\u1338\u1339\5\21\t" + - "\2\u1339\u133a\5\17\b\2\u133a\u0318\3\2\2\2\u133b\u133c\5#\22\2\u133c" + - "\u133d\5%\23\2\u133d\u133e\5/\30\2\u133e\u031a\3\2\2\2\u133f\u1340\5#" + - "\22\2\u1340\u1341\5%\23\2\u1341\u1342\5/\30\2\u1342\u1343\5\27\f\2\u1343" + - "\u1344\5\31\r\2\u1344\u1345\5#\22\2\u1345\u1346\5\25\13\2\u1346\u031c" + - "\3\2\2\2\u1347\u1348\5#\22\2\u1348\u1349\5%\23\2\u1349\u134a\5/\30\2\u134a" + - "\u134b\5\31\r\2\u134b\u134c\5\23\n\2\u134c\u134d\59\35\2\u134d\u031e\3" + - "\2\2\2\u134e\u134f\5#\22\2\u134f\u1350\5%\23\2\u1350\u1351\5/\30\2\u1351" + - "\u1352\5#\22\2\u1352\u1353\5\61\31\2\u1353\u1354\5\37\20\2\u1354\u1355" + - "\5\37\20\2\u1355\u0320\3\2\2\2\u1356\u1357\5#\22\2\u1357\u1358\5%\23\2" + - "\u1358\u1359\5\65\33\2\u1359\u135a\5\t\5\2\u135a\u135b\5\31\r\2\u135b" + - "\u135c\5/\30\2\u135c\u0322\3\2\2\2\u135d\u135e\5#\22\2\u135e\u135f\5\61" + - "\31\2\u135f\u1360\5\37\20\2\u1360\u1361\5\37\20\2\u1361\u0324\3\2\2\2" + - "\u1362\u1363\5#\22\2\u1363\u1364\5\61\31\2\u1364\u1365\5\37\20\2\u1365" + - "\u1366\5\37\20\2\u1366\u1367\5\t\5\2\u1367\u1368\5\13\6\2\u1368\u1369" + - "\5\37\20\2\u1369\u136a\5\21\t\2\u136a\u0326\3\2\2\2\u136b\u136c\5#\22" + - "\2\u136c\u136d\5\61\31\2\u136d\u136e\5\37\20\2\u136e\u136f\5\37\20\2\u136f" + - "\u1370\5\31\r\2\u1370\u1371\5\23\n\2\u1371\u0328\3\2\2\2\u1372\u1373\5" + - "#\22\2\u1373\u1374\5\61\31\2\u1374\u1375\5\37\20\2\u1375\u1376\5\37\20" + - "\2\u1376\u1377\5-\27\2\u1377\u032a\3\2\2\2\u1378\u1379\5#\22\2\u1379\u137a" + - "\5\61\31\2\u137a\u137b\5!\21\2\u137b\u137c\5\13\6\2\u137c\u137d\5\21\t" + - "\2\u137d\u137e\5+\26\2\u137e\u032c\3\2\2\2\u137f\u1380\5#\22\2\u1380\u1381" + - "\5\61\31\2\u1381\u1382\5!\21\2\u1382\u1383\5\21\t\2\u1383\u1384\5+\26" + - "\2\u1384\u1385\5\31\r\2\u1385\u1386\5\r\7\2\u1386\u032e\3\2\2\2\u1387" + - "\u1388\5%\23\2\u1388\u1389\5\13\6\2\u1389\u138a\5\33\16\2\u138a\u138b" + - "\5\21\t\2\u138b\u138c\5\r\7\2\u138c\u138d\5/\30\2\u138d\u0330\3\2\2\2" + - "\u138e\u138f\5%\23\2\u138f\u1390\5\r\7\2\u1390\u1391\5/\30\2\u1391\u1392" + - "\5\21\t\2\u1392\u1393\5/\30\2\u1393\u1394\7a\2\2\u1394\u1395\5\37\20\2" + - "\u1395\u1396\5\21\t\2\u1396\u1397\5#\22\2\u1397\u1398\5\25\13\2\u1398" + - "\u1399\5/\30\2\u1399\u139a\5\27\f\2\u139a\u0332\3\2\2\2\u139b\u139c\5" + - "%\23\2\u139c\u139d\5\r\7\2\u139d\u139e\5/\30\2\u139e\u139f\5\21\t\2\u139f" + - "\u13a0\5/\30\2\u13a0\u13a1\5-\27\2\u13a1\u0334\3\2\2\2\u13a2\u13a3\5%" + - "\23\2\u13a3\u13a4\5\23\n\2\u13a4\u0336\3\2\2\2\u13a5\u13a6\5%\23\2\u13a6" + - "\u13a7\5\23\n\2\u13a7\u13a8\5\23\n\2\u13a8\u0338\3\2\2\2\u13a9\u13aa\5" + - "%\23\2\u13aa\u13ab\5\23\n\2\u13ab\u13ac\5\23\n\2\u13ac\u13ad\5-\27\2\u13ad" + - "\u13ae\5\21\t\2\u13ae\u13af\5/\30\2\u13af\u033a\3\2\2\2\u13b0\u13b1\5" + - "%\23\2\u13b1\u13b2\5\31\r\2\u13b2\u13b3\5\17\b\2\u13b3\u13b4\5-\27\2\u13b4" + - "\u033c\3\2\2\2\u13b5\u13b6\5%\23\2\u13b6\u13b7\5\37\20\2\u13b7\u13b8\5" + - "\17\b\2\u13b8\u033e\3\2\2\2\u13b9\u13ba\5%\23\2\u13ba\u13bb\5#\22\2\u13bb" + - "\u0340\3\2\2\2\u13bc\u13bd\5%\23\2\u13bd\u13be\5#\22\2\u13be\u13bf\5\37" + - "\20\2\u13bf\u13c0\59\35\2\u13c0\u0342\3\2\2\2\u13c1\u13c2\5%\23\2\u13c2" + - "\u13c3\5\'\24\2\u13c3\u13c4\5\21\t\2\u13c4\u13c5\5#\22\2\u13c5\u0344\3" + - "\2\2\2\u13c6\u13c7\5%\23\2\u13c7\u13c8\5\'\24\2\u13c8\u13c9\5\21\t\2\u13c9" + - "\u13ca\5+\26\2\u13ca\u13cb\5\t\5\2\u13cb\u13cc\5/\30\2\u13cc\u13cd\5\31" + - "\r\2\u13cd\u13ce\5%\23\2\u13ce\u13cf\5#\22\2\u13cf\u0346\3\2\2\2\u13d0" + - "\u13d1\5%\23\2\u13d1\u13d2\5\'\24\2\u13d2\u13d3\5\21\t\2\u13d3\u13d4\5" + - "+\26\2\u13d4\u13d5\5\t\5\2\u13d5\u13d6\5/\30\2\u13d6\u13d7\5%\23\2\u13d7" + - "\u13d8\5+\26\2\u13d8\u0348\3\2\2\2\u13d9\u13da\5%\23\2\u13da\u13db\5\'" + - "\24\2\u13db\u13dc\5/\30\2\u13dc\u13dd\5\31\r\2\u13dd\u13de\5%\23\2\u13de" + - "\u13df\5#\22\2\u13df\u034a\3\2\2\2\u13e0\u13e1\5%\23\2\u13e1\u13e2\5\'" + - "\24\2\u13e2\u13e3\5/\30\2\u13e3\u13e4\5\31\r\2\u13e4\u13e5\5%\23\2\u13e5" + - "\u13e6\5#\22\2\u13e6\u13e7\5-\27\2\u13e7\u034c\3\2\2\2\u13e8\u13e9\5%" + - "\23\2\u13e9\u13ea\5+\26\2\u13ea\u034e\3\2\2\2\u13eb\u13ec\5%\23\2\u13ec" + - "\u13ed\5+\26\2\u13ed\u13ee\5\17\b\2\u13ee\u13ef\5\21\t\2\u13ef\u13f0\5" + - "+\26\2\u13f0\u0350\3\2\2\2\u13f1\u13f2\5%\23\2\u13f2\u13f3\5+\26\2\u13f3" + - "\u13f4\5\17\b\2\u13f4\u13f5\5\21\t\2\u13f5\u13f6\5+\26\2\u13f6\u13f7\5" + - "\31\r\2\u13f7\u13f8\5#\22\2\u13f8\u13f9\5\25\13\2\u13f9\u0352\3\2\2\2" + - "\u13fa\u13fb\5%\23\2\u13fb\u13fc\5+\26\2\u13fc\u13fd\5\17\b\2\u13fd\u13fe" + - "\5\31\r\2\u13fe\u13ff\5#\22\2\u13ff\u1400\5\t\5\2\u1400\u1401\5\37\20" + - "\2\u1401\u1402\5\31\r\2\u1402\u1403\5/\30\2\u1403\u1404\59\35\2\u1404" + - "\u0354\3\2\2\2\u1405\u1406\5%\23\2\u1406\u1407\5/\30\2\u1407\u1408\5\27" + - "\f\2\u1408\u1409\5\21\t\2\u1409\u140a\5+\26\2\u140a\u140b\5-\27\2\u140b" + - "\u0356\3\2\2\2\u140c\u140d\5%\23\2\u140d\u140e\5\61\31\2\u140e\u140f\5" + - "/\30\2\u140f\u0358\3\2\2\2\u1410\u1411\5%\23\2\u1411\u1412\5\61\31\2\u1412" + - "\u1413\5/\30\2\u1413\u1414\5\21\t\2\u1414\u1415\5+\26\2\u1415\u035a\3" + - "\2\2\2\u1416\u1417\5%\23\2\u1417\u1418\5\61\31\2\u1418\u1419\5/\30\2\u1419" + - "\u141a\5\'\24\2\u141a\u141b\5\61\31\2\u141b\u141c\5/\30\2\u141c\u035c" + - "\3\2\2\2\u141d\u141e\5%\23\2\u141e\u141f\5\63\32\2\u141f\u1420\5\21\t" + - "\2\u1420\u1421\5+\26\2\u1421\u035e\3\2\2\2\u1422\u1423\5%\23\2\u1423\u1424" + - "\5\63\32\2\u1424\u1425\5\21\t\2\u1425\u1426\5+\26\2\u1426\u1427\5\37\20" + - "\2\u1427\u1428\5\t\5\2\u1428\u1429\5\'\24\2\u1429\u142a\5-\27\2\u142a" + - "\u0360\3\2\2\2\u142b\u142c\5%\23\2\u142c\u142d\5\63\32\2\u142d\u142e\5" + - "\21\t\2\u142e\u142f\5+\26\2\u142f\u1430\5\37\20\2\u1430\u1431\5\t\5\2" + - "\u1431\u1432\59\35\2\u1432\u0362\3\2\2\2\u1433\u1434\5%\23\2\u1434\u1435" + - "\5\63\32\2\u1435\u1436\5\21\t\2\u1436\u1437\5+\26\2\u1437\u1438\5+\26" + - "\2\u1438\u1439\5\31\r\2\u1439\u143a\5\17\b\2\u143a\u143b\5\31\r\2\u143b" + - "\u143c\5#\22\2\u143c\u143d\5\25\13\2\u143d\u0364\3\2\2\2\u143e\u143f\5" + - "%\23\2\u143f\u1440\5\65\33\2\u1440\u1441\5#\22\2\u1441\u1442\5\21\t\2" + - "\u1442\u1443\5+\26\2\u1443\u0366\3\2\2\2\u1444\u1445\5\'\24\2\u1445\u1446" + - "\5\t\5\2\u1446\u1447\5\17\b\2\u1447\u0368\3\2\2\2\u1448\u1449\5\'\24\2" + - "\u1449\u144a\5\t\5\2\u144a\u144b\5+\26\2\u144b\u144c\5\t\5\2\u144c\u144d" + - "\5!\21\2\u144d\u144e\5\21\t\2\u144e\u144f\5/\30\2\u144f\u1450\5\21\t\2" + - "\u1450\u1451\5+\26\2\u1451\u036a\3\2\2\2\u1452\u1453\5\'\24\2\u1453\u1454" + - "\5\t\5\2\u1454\u1455\5+\26\2\u1455\u1456\5\t\5\2\u1456\u1457\5!\21\2\u1457" + - "\u1458\5\21\t\2\u1458\u1459\5/\30\2\u1459\u145a\5\21\t\2\u145a\u145b\5" + - "+\26\2\u145b\u145c\7a\2\2\u145c\u145d\5!\21\2\u145d\u145e\5%\23\2\u145e" + - "\u145f\5\17\b\2\u145f\u1460\5\21\t\2\u1460\u036c\3\2\2\2\u1461\u1462\5" + - "\'\24\2\u1462\u1463\5\t\5\2\u1463\u1464\5+\26\2\u1464\u1465\5\t\5\2\u1465" + - "\u1466\5!\21\2\u1466\u1467\5\21\t\2\u1467\u1468\5/\30\2\u1468\u1469\5" + - "\21\t\2\u1469\u146a\5+\26\2\u146a\u146b\7a\2\2\u146b\u146c\5#\22\2\u146c" + - "\u146d\5\t\5\2\u146d\u146e\5!\21\2\u146e\u146f\5\21\t\2\u146f\u036e\3" + - "\2\2\2\u1470\u1471\5\'\24\2\u1471\u1472\5\t\5\2\u1472\u1473\5+\26\2\u1473" + - "\u1474\5\t\5\2\u1474\u1475\5!\21\2\u1475\u1476\5\21\t\2\u1476\u1477\5" + - "/\30\2\u1477\u1478\5\21\t\2\u1478\u1479\5+\26\2\u1479\u147a\7a\2\2\u147a" + - "\u147b\5%\23\2\u147b\u147c\5+\26\2\u147c\u147d\5\17\b\2\u147d\u147e\5" + - "\31\r\2\u147e\u147f\5#\22\2\u147f\u1480\5\t\5\2\u1480\u1481\5\37\20\2" + - "\u1481\u1482\7a\2\2\u1482\u1483\5\'\24\2\u1483\u1484\5%\23\2\u1484\u1485" + - "\5-\27\2\u1485\u1486\5\31\r\2\u1486\u1487\5/\30\2\u1487\u1488\5\31\r\2" + - "\u1488\u1489\5%\23\2\u1489\u148a\5#\22\2\u148a\u0370\3\2\2\2\u148b\u148c" + - "\5\'\24\2\u148c\u148d\5\t\5\2\u148d\u148e\5+\26\2\u148e\u148f\5\t\5\2" + - "\u148f\u1490\5!\21\2\u1490\u1491\5\21\t\2\u1491\u1492\5/\30\2\u1492\u1493" + - "\5\21\t\2\u1493\u1494\5+\26\2\u1494\u1495\7a\2\2\u1495\u1496\5-\27\2\u1496" + - "\u1497\5\'\24\2\u1497\u1498\5\21\t\2\u1498\u1499\5\r\7\2\u1499\u149a\5" + - "\31\r\2\u149a\u149b\5\23\n\2\u149b\u149c\5\31\r\2\u149c\u149d\5\r\7\2" + - "\u149d\u149e\7a\2\2\u149e\u149f\5\r\7\2\u149f\u14a0\5\t\5\2\u14a0\u14a1" + - "\5/\30\2\u14a1\u14a2\5\t\5\2\u14a2\u14a3\5\37\20\2\u14a3\u14a4\5%\23\2" + - "\u14a4\u14a5\5\25\13\2\u14a5\u0372\3\2\2\2\u14a6\u14a7\5\'\24\2\u14a7" + - "\u14a8\5\t\5\2\u14a8\u14a9\5+\26\2\u14a9\u14aa\5\t\5\2\u14aa\u14ab\5!" + - "\21\2\u14ab\u14ac\5\21\t\2\u14ac\u14ad\5/\30\2\u14ad\u14ae\5\21\t\2\u14ae" + - "\u14af\5+\26\2\u14af\u14b0\7a\2\2\u14b0\u14b1\5-\27\2\u14b1\u14b2\5\'" + - "\24\2\u14b2\u14b3\5\21\t\2\u14b3\u14b4\5\r\7\2\u14b4\u14b5\5\31\r\2\u14b5" + - "\u14b6\5\23\n\2\u14b6\u14b7\5\31\r\2\u14b7\u14b8\5\r\7\2\u14b8\u14b9\7" + - "a\2\2\u14b9\u14ba\5#\22\2\u14ba\u14bb\5\t\5\2\u14bb\u14bc\5!\21\2\u14bc" + - "\u14bd\5\21\t\2\u14bd\u0374\3\2\2\2\u14be\u14bf\5\'\24\2\u14bf\u14c0\5" + - "\t\5\2\u14c0\u14c1\5+\26\2\u14c1\u14c2\5\t\5\2\u14c2\u14c3\5!\21\2\u14c3" + - "\u14c4\5\21\t\2\u14c4\u14c5\5/\30\2\u14c5\u14c6\5\21\t\2\u14c6\u14c7\5" + - "+\26\2\u14c7\u14c8\7a\2\2\u14c8\u14c9\5-\27\2\u14c9\u14ca\5\'\24\2\u14ca" + - "\u14cb\5\21\t\2\u14cb\u14cc\5\r\7\2\u14cc\u14cd\5\31\r\2\u14cd\u14ce\5" + - "\23\n\2\u14ce\u14cf\5\31\r\2\u14cf\u14d0\5\r\7\2\u14d0\u14d1\7a\2\2\u14d1" + - "\u14d2\5-\27\2\u14d2\u14d3\5\r\7\2\u14d3\u14d4\5\27\f\2\u14d4\u14d5\5" + - "\21\t\2\u14d5\u14d6\5!\21\2\u14d6\u14d7\5\t\5\2\u14d7\u0376\3\2\2\2\u14d8" + - "\u14d9\5\'\24\2\u14d9\u14da\5\t\5\2\u14da\u14db\5+\26\2\u14db\u14dc\5" + - "\t\5\2\u14dc\u14dd\5!\21\2\u14dd\u14de\5\21\t\2\u14de\u14df\5/\30\2\u14df" + - "\u14e0\5\21\t\2\u14e0\u14e1\5+\26\2\u14e1\u14e2\5-\27\2\u14e2\u0378\3" + - "\2\2\2\u14e3\u14e4\5\'\24\2\u14e4\u14e5\5\t\5\2\u14e5\u14e6\5+\26\2\u14e6" + - "\u14e7\5-\27\2\u14e7\u14e8\5\21\t\2\u14e8\u14e9\5+\26\2\u14e9\u037a\3" + - "\2\2\2\u14ea\u14eb\5\'\24\2\u14eb\u14ec\5\t\5\2\u14ec\u14ed\5+\26\2\u14ed" + - "\u14ee\5/\30\2\u14ee\u14ef\5\31\r\2\u14ef\u14f0\5\t\5\2\u14f0\u14f1\5" + - "\37\20\2\u14f1\u037c\3\2\2\2\u14f2\u14f3\5\'\24\2\u14f3\u14f4\5\t\5\2" + - "\u14f4\u14f5\5+\26\2\u14f5\u14f6\5/\30\2\u14f6\u14f7\5\31\r\2\u14f7\u14f8" + - "\5/\30\2\u14f8\u14f9\5\31\r\2\u14f9\u14fa\5%\23\2\u14fa\u14fb\5#\22\2" + - "\u14fb\u037e\3\2\2\2\u14fc\u14fd\5\'\24\2\u14fd\u14fe\5\t\5\2\u14fe\u14ff" + - "\5-\27\2\u14ff\u1500\5\r\7\2\u1500\u1501\5\t\5\2\u1501\u1502\5\37\20\2" + - "\u1502\u0380\3\2\2\2\u1503\u1504\5\'\24\2\u1504\u1505\5\t\5\2\u1505\u1506" + - "\5-\27\2\u1506\u1507\5-\27\2\u1507\u1508\5\65\33\2\u1508\u1509\5%\23\2" + - "\u1509\u150a\5+\26\2\u150a\u150b\5\17\b\2\u150b\u0382\3\2\2\2\u150c\u150d" + - "\5\'\24\2\u150d\u150e\5\t\5\2\u150e\u150f\5/\30\2\u150f\u1510\5\27\f\2" + - "\u1510\u0384\3\2\2\2\u1511\u1512\5\'\24\2\u1512\u1513\5\21\t\2\u1513\u1514" + - "\5+\26\2\u1514\u1515\5\r\7\2\u1515\u1516\5\21\t\2\u1516\u1517\5#\22\2" + - "\u1517\u1518\5/\30\2\u1518\u1519\7a\2\2\u1519\u151a\5+\26\2\u151a\u151b" + - "\5\t\5\2\u151b\u151c\5#\22\2\u151c\u151d\5\35\17\2\u151d\u0386\3\2\2\2" + - "\u151e\u151f\5\'\24\2\u151f\u1520\5\21\t\2\u1520\u1521\5+\26\2\u1521\u1522" + - "\5\r\7\2\u1522\u1523\5\21\t\2\u1523\u1524\5#\22\2\u1524\u1525\5/\30\2" + - "\u1525\u1526\5\31\r\2\u1526\u1527\5\37\20\2\u1527\u1528\5\21\t\2\u1528" + - "\u1529\7a\2\2\u1529\u152a\5\r\7\2\u152a\u152b\5%\23\2\u152b\u152c\5#\22" + - "\2\u152c\u152d\5/\30\2\u152d\u0388\3\2\2\2\u152e\u152f\5\'\24\2\u152f" + - "\u1530\5\21\t\2\u1530\u1531\5+\26\2\u1531\u1532\5\r\7\2\u1532\u1533\5" + - "\21\t\2\u1533\u1534\5#\22\2\u1534\u1535\5/\30\2\u1535\u1536\5\31\r\2\u1536" + - "\u1537\5\37\20\2\u1537\u1538\5\21\t\2\u1538\u1539\7a\2\2\u1539\u153a\5" + - "\17\b\2\u153a\u153b\5\31\r\2\u153b\u153c\5-\27\2\u153c\u153d\5\r\7\2\u153d" + - "\u038a\3\2\2\2\u153e\u153f\5\'\24\2\u153f\u1540\5\37\20\2\u1540\u1541" + - "\5\t\5\2\u1541\u1542\5\r\7\2\u1542\u1543\5\31\r\2\u1543\u1544\5#\22\2" + - "\u1544\u1545\5\25\13\2\u1545\u038c\3\2\2\2\u1546\u1547\5\'\24\2\u1547" + - "\u1548\5\37\20\2\u1548\u1549\5\t\5\2\u1549\u154a\5\31\r\2\u154a\u154b" + - "\5#\22\2\u154b\u038e\3\2\2\2\u154c\u154d\5\'\24\2\u154d\u154e\5\37\20" + - "\2\u154e\u154f\5\t\5\2\u154f\u1550\5#\22\2\u1550\u1551\5-\27\2\u1551\u0390" + - "\3\2\2\2\u1552\u1553\5\'\24\2\u1553\u1554\5\37\20\2\u1554\u1555\5\31\r" + - "\2\u1555\u0392\3\2\2\2\u1556\u1557\5\'\24\2\u1557\u1558\5%\23\2\u1558" + - "\u1559\5-\27\2\u1559\u155a\5\31\r\2\u155a\u155b\5/\30\2\u155b\u155c\5" + - "\31\r\2\u155c\u155d\5%\23\2\u155d\u155e\5#\22\2\u155e\u0394\3\2\2\2\u155f" + - "\u1560\5\'\24\2\u1560\u1561\5%\23\2\u1561\u1562\5-\27\2\u1562\u1563\5" + - "/\30\2\u1563\u1564\5\23\n\2\u1564\u1565\5\31\r\2\u1565\u1566\5\67\34\2" + - "\u1566\u0396\3\2\2\2\u1567\u1568\5\'\24\2\u1568\u1569\5%\23\2\u1569\u156a" + - "\5\65\33\2\u156a\u156b\5\21\t\2\u156b\u156c\5+\26\2\u156c\u0398\3\2\2" + - "\2\u156d\u156e\5\'\24\2\u156e\u156f\5+\26\2\u156f\u1570\5\21\t\2\u1570" + - "\u1571\5\r\7\2\u1571\u1572\5\21\t\2\u1572\u1573\5\17\b\2\u1573\u1574\5" + - "\31\r\2\u1574\u1575\5#\22\2\u1575\u1576\5\25\13\2\u1576\u039a\3\2\2\2" + - "\u1577\u1578\5\'\24\2\u1578\u1579\5+\26\2\u1579\u157a\5\21\t\2\u157a\u157b" + - "\5\r\7\2\u157b\u157c\5\31\r\2\u157c\u157d\5-\27\2\u157d\u157e\5\31\r\2" + - "\u157e\u157f\5%\23\2\u157f\u1580\5#\22\2\u1580\u039c\3\2\2\2\u1581\u1582" + - "\5\'\24\2\u1582\u1583\5+\26\2\u1583\u1584\5\21\t\2\u1584\u1585\5\23\n" + - "\2\u1585\u1586\5\31\r\2\u1586\u1587\5\67\34\2\u1587\u039e\3\2\2\2\u1588" + - "\u1589\5\'\24\2\u1589\u158a\5+\26\2\u158a\u158b\5\21\t\2\u158b\u158c\5" + - "%\23\2\u158c\u158d\5+\26\2\u158d\u158e\5\17\b\2\u158e\u158f\5\21\t\2\u158f" + - "\u1590\5+\26\2\u1590\u03a0\3\2\2\2\u1591\u1592\5\'\24\2\u1592\u1593\5" + - "+\26\2\u1593\u1594\5\21\t\2\u1594\u1595\5\'\24\2\u1595\u1596\5\t\5\2\u1596" + - "\u1597\5+\26\2\u1597\u1598\5\21\t\2\u1598\u03a2\3\2\2\2\u1599\u159a\5" + - "\'\24\2\u159a\u159b\5+\26\2\u159b\u159c\5\21\t\2\u159c\u159d\5\'\24\2" + - "\u159d\u159e\5\t\5\2\u159e\u159f\5+\26\2\u159f\u15a0\5\21\t\2\u15a0\u15a1" + - "\5\17\b\2\u15a1\u03a4\3\2\2\2\u15a2\u15a3\5\'\24\2\u15a3\u15a4\5+\26\2" + - "\u15a4\u15a5\5\21\t\2\u15a5\u15a6\5-\27\2\u15a6\u15a7\5\21\t\2\u15a7\u15a8" + - "\5+\26\2\u15a8\u15a9\5\63\32\2\u15a9\u15aa\5\21\t\2\u15aa\u03a6\3\2\2" + - "\2\u15ab\u15ac\5\'\24\2\u15ac\u15ad\5+\26\2\u15ad\u15ae\5\31\r\2\u15ae" + - "\u15af\5!\21\2\u15af\u15b0\5\t\5\2\u15b0\u15b1\5+\26\2\u15b1\u15b2\59" + - "\35\2\u15b2\u03a8\3\2\2\2\u15b3\u15b4\5\'\24\2\u15b4\u15b5\5+\26\2\u15b5" + - "\u15b6\5\31\r\2\u15b6\u15b7\5%\23\2\u15b7\u15b8\5+\26\2\u15b8\u03aa\3" + - "\2\2\2\u15b9\u15ba\5\'\24\2\u15ba\u15bb\5+\26\2\u15bb\u15bc\5\31\r\2\u15bc" + - "\u15bd\5\63\32\2\u15bd\u15be\5\31\r\2\u15be\u15bf\5\37\20\2\u15bf\u15c0" + - "\5\21\t\2\u15c0\u15c1\5\25\13\2\u15c1\u15c2\5\21\t\2\u15c2\u15c3\5-\27" + - "\2\u15c3\u03ac\3\2\2\2\u15c4\u15c5\5\'\24\2\u15c5\u15c6\5+\26\2\u15c6" + - "\u15c7\5%\23\2\u15c7\u15c8\5\r\7\2\u15c8\u15c9\5\21\t\2\u15c9\u15ca\5" + - "\17\b\2\u15ca\u15cb\5\61\31\2\u15cb\u15cc\5+\26\2\u15cc\u15cd\5\t\5\2" + - "\u15cd\u15ce\5\37\20\2\u15ce\u03ae\3\2\2\2\u15cf\u15d0\5\'\24\2\u15d0" + - "\u15d1\5+\26\2\u15d1\u15d2\5%\23\2\u15d2\u15d3\5\r\7\2\u15d3\u15d4\5\21" + - "\t\2\u15d4\u15d5\5\17\b\2\u15d5\u15d6\5\61\31\2\u15d6\u15d7\5+\26\2\u15d7" + - "\u15d8\5\21\t\2\u15d8\u03b0\3\2\2\2\u15d9\u15da\5\'\24\2\u15da\u15db\5" + - "\61\31\2\u15db\u15dc\5\13\6\2\u15dc\u15dd\5\37\20\2\u15dd\u15de\5\31\r" + - "\2\u15de\u15df\5\r\7\2\u15df\u03b2\3\2\2\2\u15e0\u15e1\5\'\24\2\u15e1" + - "\u15e2\5\61\31\2\u15e2\u15e3\5\13\6\2\u15e3\u15e4\5\37\20\2\u15e4\u15e5" + - "\5\31\r\2\u15e5\u15e6\5\r\7\2\u15e6\u15e7\5\t\5\2\u15e7\u15e8\5/\30\2" + - "\u15e8\u15e9\5\31\r\2\u15e9\u15ea\5%\23\2\u15ea\u15eb\5#\22\2\u15eb\u03b4" + - "\3\2\2\2\u15ec\u15ed\5)\25\2\u15ed\u15ee\5\61\31\2\u15ee\u15ef\5%\23\2" + - "\u15ef\u15f0\5/\30\2\u15f0\u15f1\5\21\t\2\u15f1\u03b6\3\2\2\2\u15f2\u15f3" + - "\5+\26\2\u15f3\u15f4\5\t\5\2\u15f4\u15f5\5#\22\2\u15f5\u15f6\5\25\13\2" + - "\u15f6\u15f7\5\21\t\2\u15f7\u03b8\3\2\2\2\u15f8\u15f9\5+\26\2\u15f9\u15fa" + - "\5\t\5\2\u15fa\u15fb\5#\22\2\u15fb\u15fc\5\35\17\2\u15fc\u03ba\3\2\2\2" + - "\u15fd\u15fe\5+\26\2\u15fe\u15ff\5\21\t\2\u15ff\u1600\5\t\5\2\u1600\u1601" + - "\5\17\b\2\u1601\u03bc\3\2\2\2\u1602\u1603\5+\26\2\u1603\u1604\5\21\t\2" + - "\u1604\u1605\5\t\5\2\u1605\u1606\5\17\b\2\u1606\u1607\5-\27\2\u1607\u03be" + - "\3\2\2\2\u1608\u1609\5+\26\2\u1609\u160a\5\21\t\2\u160a\u160b\5\t\5\2" + - "\u160b\u160c\5\37\20\2\u160c\u03c0\3\2\2\2\u160d\u160e\5+\26\2\u160e\u160f" + - "\5\21\t\2\u160f\u1610\5\t\5\2\u1610\u1611\5-\27\2\u1611\u1612\5-\27\2" + - "\u1612\u1613\5\31\r\2\u1613\u1614\5\25\13\2\u1614\u1615\5#\22\2\u1615" + - "\u03c2\3\2\2\2\u1616\u1617\5+\26\2\u1617\u1618\5\21\t\2\u1618\u1619\5" + - "\r\7\2\u1619\u161a\5\27\f\2\u161a\u161b\5\21\t\2\u161b\u161c\5\r\7\2\u161c" + - "\u161d\5\35\17\2\u161d\u03c4\3\2\2\2\u161e\u161f\5+\26\2\u161f\u1620\5" + - "\21\t\2\u1620\u1621\5\r\7\2\u1621\u1622\5\61\31\2\u1622\u1623\5+\26\2" + - "\u1623\u1624\5-\27\2\u1624\u1625\5\31\r\2\u1625\u1626\5\63\32\2\u1626" + - "\u1627\5\21\t\2\u1627\u03c6\3\2\2\2\u1628\u1629\5+\26\2\u1629\u162a\5" + - "\21\t\2\u162a\u162b\5\23\n\2\u162b\u03c8\3\2\2\2\u162c\u162d\5+\26\2\u162d" + - "\u162e\5\21\t\2\u162e\u162f\5\23\n\2\u162f\u1630\5\21\t\2\u1630\u1631" + - "\5+\26\2\u1631\u1632\5\21\t\2\u1632\u1633\5#\22\2\u1633\u1634\5\r\7\2" + - "\u1634\u1635\5\21\t\2\u1635\u1636\5-\27\2\u1636\u03ca\3\2\2\2\u1637\u1638" + - "\5+\26\2\u1638\u1639\5\21\t\2\u1639\u163a\5\23\n\2\u163a\u163b\5\21\t" + - "\2\u163b\u163c\5+\26\2\u163c\u163d\5\21\t\2\u163d\u163e\5#\22\2\u163e" + - "\u163f\5\r\7\2\u163f\u1640\5\31\r\2\u1640\u1641\5#\22\2\u1641\u1642\5" + - "\25\13\2\u1642\u03cc\3\2\2\2\u1643\u1644\5+\26\2\u1644\u1645\5\21\t\2" + - "\u1645\u1646\5\23\n\2\u1646\u1647\5+\26\2\u1647\u1648\5\21\t\2\u1648\u1649" + - "\5-\27\2\u1649\u164a\5\27\f\2\u164a\u03ce\3\2\2\2\u164b\u164c\5+\26\2" + - "\u164c\u164d\5\21\t\2\u164d\u164e\5\25\13\2\u164e\u164f\5+\26\2\u164f" + - "\u1650\7a\2\2\u1650\u1651\5\t\5\2\u1651\u1652\5\63\32\2\u1652\u1653\5" + - "\25\13\2\u1653\u1654\5\67\34\2\u1654\u03d0\3\2\2\2\u1655\u1656\5+\26\2" + - "\u1656\u1657\5\21\t\2\u1657\u1658\5\25\13\2\u1658\u1659\5+\26\2\u1659" + - "\u165a\7a\2\2\u165a\u165b\5\t\5\2\u165b\u165c\5\63\32\2\u165c\u165d\5" + - "\25\13\2\u165d\u165e\59\35\2\u165e\u03d2\3\2\2\2\u165f\u1660\5+\26\2\u1660" + - "\u1661\5\21\t\2\u1661\u1662\5\25\13\2\u1662\u1663\5+\26\2\u1663\u1664" + - "\7a\2\2\u1664\u1665\5\r\7\2\u1665\u1666\5%\23\2\u1666\u1667\5\61\31\2" + - "\u1667\u1668\5#\22\2\u1668\u1669\5/\30\2\u1669\u03d4\3\2\2\2\u166a\u166b" + - "\5+\26\2\u166b\u166c\5\21\t\2\u166c\u166d\5\25\13\2\u166d\u166e\5+\26" + - "\2\u166e\u166f\7a\2\2\u166f\u1670\5\31\r\2\u1670\u1671\5#\22\2\u1671\u1672" + - "\5/\30\2\u1672\u1673\5\21\t\2\u1673\u1674\5+\26\2\u1674\u1675\5\r\7\2" + - "\u1675\u1676\5\21\t\2\u1676\u1677\5\'\24\2\u1677\u1678\5/\30\2\u1678\u03d6" + - "\3\2\2\2\u1679\u167a\5+\26\2\u167a\u167b\5\21\t\2\u167b\u167c\5\25\13" + - "\2\u167c\u167d\5+\26\2\u167d\u167e\7a\2\2\u167e\u167f\5+\26\2\u167f\u1680" + - "\7\64\2\2\u1680\u03d8\3\2\2\2\u1681\u1682\5+\26\2\u1682\u1683\5\21\t\2" + - "\u1683\u1684\5\25\13\2\u1684\u1685\5+\26\2\u1685\u1686\7a\2\2\u1686\u1687" + - "\5-\27\2\u1687\u1688\5\37\20\2\u1688\u1689\5%\23\2\u1689\u168a\5\'\24" + - "\2\u168a\u168b\5\21\t\2\u168b\u03da\3\2\2\2\u168c\u168d\5+\26\2\u168d" + - "\u168e\5\21\t\2\u168e\u168f\5\25\13\2\u168f\u1690\5+\26\2\u1690\u1691" + - "\7a\2\2\u1691\u1692\5-\27\2\u1692\u1693\5\67\34\2\u1693\u1694\5\67\34" + - "\2\u1694\u03dc\3\2\2\2\u1695\u1696\5+\26\2\u1696\u1697\5\21\t\2\u1697" + - "\u1698\5\25\13\2\u1698\u1699\5+\26\2\u1699\u169a\7a\2\2\u169a\u169b\5" + - "-\27\2\u169b\u169c\5\67\34\2\u169c\u169d\59\35\2\u169d\u03de\3\2\2\2\u169e" + - "\u169f\5+\26\2\u169f\u16a0\5\21\t\2\u16a0\u16a1\5\25\13\2\u16a1\u16a2" + - "\5+\26\2\u16a2\u16a3\7a\2\2\u16a3\u16a4\5-\27\2\u16a4\u16a5\59\35\2\u16a5" + - "\u16a6\59\35\2\u16a6\u03e0\3\2\2\2\u16a7\u16a8\5+\26\2\u16a8\u16a9\5\21" + - "\t\2\u16a9\u16aa\5\31\r\2\u16aa\u16ab\5#\22\2\u16ab\u16ac\5\17\b\2\u16ac" + - "\u16ad\5\21\t\2\u16ad\u16ae\5\67\34\2\u16ae\u03e2\3\2\2\2\u16af\u16b0" + - "\5+\26\2\u16b0\u16b1\5\21\t\2\u16b1\u16b2\5\37\20\2\u16b2\u16b3\5\t\5" + - "\2\u16b3\u16b4\5/\30\2\u16b4\u16b5\5\31\r\2\u16b5\u16b6\5\63\32\2\u16b6" + - "\u16b7\5\21\t\2\u16b7\u03e4\3\2\2\2\u16b8\u16b9\5+\26\2\u16b9\u16ba\5" + - "\21\t\2\u16ba\u16bb\5\37\20\2\u16bb\u16bc\5\21\t\2\u16bc\u16bd\5\t\5\2" + - "\u16bd\u16be\5-\27\2\u16be\u16bf\5\21\t\2\u16bf\u03e6\3\2\2\2\u16c0\u16c1" + - "\5+\26\2\u16c1\u16c2\5\21\t\2\u16c2\u16c3\5#\22\2\u16c3\u16c4\5\t\5\2" + - "\u16c4\u16c5\5!\21\2\u16c5\u16c6\5\21\t\2\u16c6\u03e8\3\2\2\2\u16c7\u16c8" + - "\5+\26\2\u16c8\u16c9\5\21\t\2\u16c9\u16ca\5\'\24\2\u16ca\u16cb\5\21\t" + - "\2\u16cb\u16cc\5\t\5\2\u16cc\u16cd\5/\30\2\u16cd\u16ce\5\t\5\2\u16ce\u16cf" + - "\5\13\6\2\u16cf\u16d0\5\37\20\2\u16d0\u16d1\5\21\t\2\u16d1\u03ea\3\2\2" + - "\2\u16d2\u16d3\5+\26\2\u16d3\u16d4\5\21\t\2\u16d4\u16d5\5\'\24\2\u16d5" + - "\u16d6\5\37\20\2\u16d6\u16d7\5\t\5\2\u16d7\u16d8\5\r\7\2\u16d8\u16d9\5" + - "\21\t\2\u16d9\u03ec\3\2\2\2\u16da\u16db\5+\26\2\u16db\u16dc\5\21\t\2\u16dc" + - "\u16dd\5\'\24\2\u16dd\u16de\5\37\20\2\u16de\u16df\5\31\r\2\u16df\u16e0" + - "\5\r\7\2\u16e0\u16e1\5\t\5\2\u16e1\u03ee\3\2\2\2\u16e2\u16e3\5+\26\2\u16e3" + - "\u16e4\5\21\t\2\u16e4\u16e5\5-\27\2\u16e5\u16e6\5\21\t\2\u16e6\u16e7\5" + - "/\30\2\u16e7\u03f0\3\2\2\2\u16e8\u16e9\5+\26\2\u16e9\u16ea\5\21\t\2\u16ea" + - "\u16eb\5-\27\2\u16eb\u16ec\5/\30\2\u16ec\u16ed\5\t\5\2\u16ed\u16ee\5+" + - "\26\2\u16ee\u16ef\5/\30\2\u16ef\u03f2\3\2\2\2\u16f0\u16f1\5+\26\2\u16f1" + - "\u16f2\5\21\t\2\u16f2\u16f3\5-\27\2\u16f3\u16f4\5/\30\2\u16f4\u16f5\5" + - "+\26\2\u16f5\u16f6\5\31\r\2\u16f6\u16f7\5\r\7\2\u16f7\u16f8\5/\30\2\u16f8" + - "\u03f4\3\2\2\2\u16f9\u16fa\5+\26\2\u16fa\u16fb\5\21\t\2\u16fb\u16fc\5" + - "-\27\2\u16fc\u16fd\5\61\31\2\u16fd\u16fe\5\37\20\2\u16fe\u16ff\5/\30\2" + - "\u16ff\u03f6\3\2\2\2\u1700\u1701\5+\26\2\u1701\u1702\5\21\t\2\u1702\u1703" + - "\5/\30\2\u1703\u1704\5\61\31\2\u1704\u1705\5+\26\2\u1705\u1706\5#\22\2" + - "\u1706\u03f8\3\2\2\2\u1707\u1708\5+\26\2\u1708\u1709\5\21\t\2\u1709\u170a" + - "\5/\30\2\u170a\u170b\5\61\31\2\u170b\u170c\5+\26\2\u170c\u170d\5#\22\2" + - "\u170d\u170e\5\21\t\2\u170e\u170f\5\17\b\2\u170f\u1710\7a\2\2\u1710\u1711" + - "\5\r\7\2\u1711\u1712\5\t\5\2\u1712\u1713\5+\26\2\u1713\u1714\5\17\b\2" + - "\u1714\u1715\5\31\r\2\u1715\u1716\5#\22\2\u1716\u1717\5\t\5\2\u1717\u1718" + - "\5\37\20\2\u1718\u1719\5\31\r\2\u1719\u171a\5/\30\2\u171a\u171b\59\35" + - "\2\u171b\u03fa\3\2\2\2\u171c\u171d\5+\26\2\u171d\u171e\5\21\t\2\u171e" + - "\u171f\5/\30\2\u171f\u1720\5\61\31\2\u1720\u1721\5+\26\2\u1721\u1722\5" + - "#\22\2\u1722\u1723\5\21\t\2\u1723\u1724\5\17\b\2\u1724\u1725\7a\2\2\u1725" + - "\u1726\5\37\20\2\u1726\u1727\5\21\t\2\u1727\u1728\5#\22\2\u1728\u1729" + - "\5\25\13\2\u1729\u172a\5/\30\2\u172a\u172b\5\27\f\2\u172b\u03fc\3\2\2" + - "\2\u172c\u172d\5+\26\2\u172d\u172e\5\21\t\2\u172e\u172f\5/\30\2\u172f" + - "\u1730\5\61\31\2\u1730\u1731\5+\26\2\u1731\u1732\5#\22\2\u1732\u1733\5" + - "\21\t\2\u1733\u1734\5\17\b\2\u1734\u1735\7a\2\2\u1735\u1736\5%\23\2\u1736" + - "\u1737\5\r\7\2\u1737\u1738\5/\30\2\u1738\u1739\5\21\t\2\u1739\u173a\5" + - "/\30\2\u173a\u173b\7a\2\2\u173b\u173c\5\37\20\2\u173c\u173d\5\21\t\2\u173d" + - "\u173e\5#\22\2\u173e\u173f\5\25\13\2\u173f\u1740\5/\30\2\u1740\u1741\5" + - "\27\f\2\u1741\u03fe\3\2\2\2\u1742\u1743\5+\26\2\u1743\u1744\5\21\t\2\u1744" + - "\u1745\5/\30\2\u1745\u1746\5\61\31\2\u1746\u1747\5+\26\2\u1747\u1748\5" + - "#\22\2\u1748\u1749\5\21\t\2\u1749\u174a\5\17\b\2\u174a\u174b\7a\2\2\u174b" + - "\u174c\5-\27\2\u174c\u174d\5)\25\2\u174d\u174e\5\37\20\2\u174e\u174f\5" + - "-\27\2\u174f\u1750\5/\30\2\u1750\u1751\5\t\5\2\u1751\u1752\5/\30\2\u1752" + - "\u1753\5\21\t\2\u1753\u0400\3\2\2\2\u1754\u1755\5+\26\2\u1755\u1756\5" + - "\21\t\2\u1756\u1757\5/\30\2\u1757\u1758\5\61\31\2\u1758\u1759\5+\26\2" + - "\u1759\u175a\5#\22\2\u175a\u175b\5\31\r\2\u175b\u175c\5#\22\2\u175c\u175d" + - "\5\25\13\2\u175d\u0402\3\2\2\2\u175e\u175f\5+\26\2\u175f\u1760\5\21\t" + - "\2\u1760\u1761\5/\30\2\u1761\u1762\5\61\31\2\u1762\u1763\5+\26\2\u1763" + - "\u1764\5#\22\2\u1764\u1765\5-\27\2\u1765\u0404\3\2\2\2\u1766\u1767\5+" + - "\26\2\u1767\u1768\5\21\t\2\u1768\u1769\5\63\32\2\u1769\u176a\5%\23\2\u176a" + - "\u176b\5\35\17\2\u176b\u176c\5\21\t\2\u176c\u0406\3\2\2\2\u176d\u176e" + - "\5+\26\2\u176e\u176f\5\31\r\2\u176f\u1770\5\25\13\2\u1770\u1771\5\27\f" + - "\2\u1771\u1772\5/\30\2\u1772\u0408\3\2\2\2\u1773\u1774\5+\26\2\u1774\u1775" + - "\5%\23\2\u1775\u1776\5\37\20\2\u1776\u1777\5\21\t\2\u1777\u040a\3\2\2" + - "\2\u1778\u1779\5+\26\2\u1779\u177a\5%\23\2\u177a\u177b\5\37\20\2\u177b" + - "\u177c\5\37\20\2\u177c\u177d\5\13\6\2\u177d\u177e\5\t\5\2\u177e\u177f" + - "\5\r\7\2\u177f\u1780\5\35\17\2\u1780\u040c\3\2\2\2\u1781\u1782\5+\26\2" + - "\u1782\u1783\5%\23\2\u1783\u1784\5\37\20\2\u1784\u1785\5\37\20\2\u1785" + - "\u1786\5\61\31\2\u1786\u1787\5\'\24\2\u1787\u040e\3\2\2\2\u1788\u1789" + - "\5+\26\2\u1789\u178a\5%\23\2\u178a\u178b\5\61\31\2\u178b\u178c\5/\30\2" + - "\u178c\u178d\5\31\r\2\u178d\u178e\5#\22\2\u178e\u178f\5\21\t\2\u178f\u0410" + - "\3\2\2\2\u1790\u1791\5+\26\2\u1791\u1792\5%\23\2\u1792\u1793\5\61\31\2" + - "\u1793\u1794\5/\30\2\u1794\u1795\5\31\r\2\u1795\u1796\5#\22\2\u1796\u1797" + - "\5\21\t\2\u1797\u1798\7a\2\2\u1798\u1799\5\r\7\2\u1799\u179a\5\t\5\2\u179a" + - "\u179b\5/\30\2\u179b\u179c\5\t\5\2\u179c\u179d\5\37\20\2\u179d\u179e\5" + - "%\23\2\u179e\u179f\5\25\13\2\u179f\u0412\3\2\2\2\u17a0\u17a1\5+\26\2\u17a1" + - "\u17a2\5%\23\2\u17a2\u17a3\5\61\31\2\u17a3\u17a4\5/\30\2\u17a4\u17a5\5" + - "\31\r\2\u17a5\u17a6\5#\22\2\u17a6\u17a7\5\21\t\2\u17a7\u17a8\7a\2\2\u17a8" + - "\u17a9\5#\22\2\u17a9\u17aa\5\t\5\2\u17aa\u17ab\5!\21\2\u17ab\u17ac\5\21" + - "\t\2\u17ac\u0414\3\2\2\2\u17ad\u17ae\5+\26\2\u17ae\u17af\5%\23\2\u17af" + - "\u17b0\5\61\31\2\u17b0\u17b1\5/\30\2\u17b1\u17b2\5\31\r\2\u17b2\u17b3" + - "\5#\22\2\u17b3\u17b4\5\21\t\2\u17b4\u17b5\7a\2\2\u17b5\u17b6\5-\27\2\u17b6" + - "\u17b7\5\r\7\2\u17b7\u17b8\5\27\f\2\u17b8\u17b9\5\21\t\2\u17b9\u17ba\5" + - "!\21\2\u17ba\u17bb\5\t\5\2\u17bb\u0416\3\2\2\2\u17bc\u17bd\5+\26\2\u17bd" + - "\u17be\5%\23\2\u17be\u17bf\5\65\33\2\u17bf\u0418\3\2\2\2\u17c0\u17c1\5" + - "+\26\2\u17c1\u17c2\5%\23\2\u17c2\u17c3\5\65\33\2\u17c3\u17c4\7a\2\2\u17c4" + - "\u17c5\5\r\7\2\u17c5\u17c6\5%\23\2\u17c6\u17c7\5\61\31\2\u17c7\u17c8\5" + - "#\22\2\u17c8\u17c9\5/\30\2\u17c9\u041a\3\2\2\2\u17ca\u17cb\5+\26\2\u17cb" + - "\u17cc\5%\23\2\u17cc\u17cd\5\65\33\2\u17cd\u17ce\7a\2\2\u17ce\u17cf\5" + - "#\22\2\u17cf\u17d0\5\61\31\2\u17d0\u17d1\5!\21\2\u17d1\u17d2\5\13\6\2" + - "\u17d2\u17d3\5\21\t\2\u17d3\u17d4\5+\26\2\u17d4\u041c\3\2\2\2\u17d5\u17d6" + - "\5+\26\2\u17d6\u17d7\5%\23\2\u17d7\u17d8\5\65\33\2\u17d8\u17d9\5-\27\2" + - "\u17d9\u041e\3\2\2\2\u17da\u17db\5+\26\2\u17db\u17dc\5\61\31\2\u17dc\u17dd" + - "\5\37\20\2\u17dd\u17de\5\21\t\2\u17de\u0420\3\2\2\2\u17df\u17e0\5-\27" + - "\2\u17e0\u17e1\5\t\5\2\u17e1\u17e2\5\63\32\2\u17e2\u17e3\5\21\t\2\u17e3" + - "\u17e4\5\'\24\2\u17e4\u17e5\5%\23\2\u17e5\u17e6\5\31\r\2\u17e6\u17e7\5" + - "#\22\2\u17e7\u17e8\5/\30\2\u17e8\u0422\3\2\2\2\u17e9\u17ea\5-\27\2\u17ea" + - "\u17eb\5\r\7\2\u17eb\u17ec\5\t\5\2\u17ec\u17ed\5\37\20\2\u17ed\u17ee\5" + - "\21\t\2\u17ee\u0424\3\2\2\2\u17ef\u17f0\5-\27\2\u17f0\u17f1\5\r\7\2\u17f1" + - "\u17f2\5\27\f\2\u17f2\u17f3\5\21\t\2\u17f3\u17f4\5!\21\2\u17f4\u17f5\5" + - "\t\5\2\u17f5\u0426\3\2\2\2\u17f6\u17f7\5-\27\2\u17f7\u17f8\5\r\7\2\u17f8" + - "\u17f9\5\27\f\2\u17f9\u17fa\5\21\t\2\u17fa\u17fb\5!\21\2\u17fb\u17fc\5" + - "\t\5\2\u17fc\u17fd\7a\2\2\u17fd\u17fe\5#\22\2\u17fe\u17ff\5\t\5\2\u17ff" + - "\u1800\5!\21\2\u1800\u1801\5\21\t\2\u1801\u0428\3\2\2\2\u1802\u1803\5" + - "-\27\2\u1803\u1804\5\r\7\2\u1804\u1805\5%\23\2\u1805\u1806\5\'\24\2\u1806" + - "\u1807\5\21\t\2\u1807\u042a\3\2\2\2\u1808\u1809\5-\27\2\u1809\u180a\5" + - "\r\7\2\u180a\u180b\5%\23\2\u180b\u180c\5\'\24\2\u180c\u180d\5\21\t\2\u180d" + - "\u180e\7a\2\2\u180e\u180f\5\r\7\2\u180f\u1810\5\t\5\2\u1810\u1811\5/\30" + - "\2\u1811\u1812\5\t\5\2\u1812\u1813\5\37\20\2\u1813\u1814\5%\23\2\u1814" + - "\u1815\5\25\13\2\u1815\u042c\3\2\2\2\u1816\u1817\5-\27\2\u1817\u1818\5" + - "\r\7\2\u1818\u1819\5%\23\2\u1819\u181a\5\'\24\2\u181a\u181b\5\21\t\2\u181b" + - "\u181c\7a\2\2\u181c\u181d\5#\22\2\u181d\u181e\5\t\5\2\u181e\u181f\5!\21" + - "\2\u181f\u1820\5\21\t\2\u1820\u042e\3\2\2\2\u1821\u1822\5-\27\2\u1822" + - "\u1823\5\r\7\2\u1823\u1824\5%\23\2\u1824\u1825\5\'\24\2\u1825\u1826\5" + - "\21\t\2\u1826\u1827\7a\2\2\u1827\u1828\5-\27\2\u1828\u1829\5\r\7\2\u1829" + - "\u182a\5\27\f\2\u182a\u182b\5\21\t\2\u182b\u182c\5!\21\2\u182c\u182d\5" + - "\t\5\2\u182d\u0430\3\2\2\2\u182e\u182f\5-\27\2\u182f\u1830\5\r\7\2\u1830" + - "\u1831\5+\26\2\u1831\u1832\5%\23\2\u1832\u1833\5\37\20\2\u1833\u1834\5" + - "\37\20\2\u1834\u0432\3\2\2\2\u1835\u1836\5-\27\2\u1836\u1837\5\21\t\2" + - "\u1837\u1838\5\t\5\2\u1838\u1839\5+\26\2\u1839\u183a\5\r\7\2\u183a\u183b" + - "\5\27\f\2\u183b\u0434\3\2\2\2\u183c\u183d\5-\27\2\u183d\u183e\5\21\t\2" + - "\u183e\u183f\5\r\7\2\u183f\u1840\5%\23\2\u1840\u1841\5#\22\2\u1841\u1842" + - "\5\17\b\2\u1842\u0436\3\2\2\2\u1843\u1844\5-\27\2\u1844\u1845\5\21\t\2" + - "\u1845\u1846\5\r\7\2\u1846\u1847\5/\30\2\u1847\u1848\5\31\r\2\u1848\u1849" + - "\5%\23\2\u1849\u184a\5#\22\2\u184a\u0438\3\2\2\2\u184b\u184c\5-\27\2\u184c" + - "\u184d\5\21\t\2\u184d\u184e\5\r\7\2\u184e\u184f\5\61\31\2\u184f\u1850" + - "\5+\26\2\u1850\u1851\5\31\r\2\u1851\u1852\5/\30\2\u1852\u1853\59\35\2" + - "\u1853\u043a\3\2\2\2\u1854\u1855\5-\27\2\u1855\u1856\5\21\t\2\u1856\u1857" + - "\5\37\20\2\u1857\u1858\5\21\t\2\u1858\u1859\5\r\7\2\u1859\u185a\5/\30" + - "\2\u185a\u043c\3\2\2\2\u185b\u185c\5-\27\2\u185c\u185d\5\21\t\2\u185d" + - "\u185e\5\37\20\2\u185e\u185f\5\23\n\2\u185f\u043e\3\2\2\2\u1860\u1861" + - "\5-\27\2\u1861\u1862\5\21\t\2\u1862\u1863\5#\22\2\u1863\u1864\5-\27\2" + - "\u1864\u1865\5\31\r\2\u1865\u1866\5/\30\2\u1866\u1867\5\31\r\2\u1867\u1868" + - "\5\63\32\2\u1868\u1869\5\21\t\2\u1869\u0440\3\2\2\2\u186a\u186b\5-\27" + - "\2\u186b\u186c\5\21\t\2\u186c\u186d\5)\25\2\u186d\u186e\5\61\31\2\u186e" + - "\u186f\5\21\t\2\u186f\u1870\5#\22\2\u1870\u1871\5\r\7\2\u1871\u1872\5" + - "\21\t\2\u1872\u0442\3\2\2\2\u1873\u1874\5-\27\2\u1874\u1875\5\21\t\2\u1875" + - "\u1876\5)\25\2\u1876\u1877\5\61\31\2\u1877\u1878\5\21\t\2\u1878\u1879" + - "\5#\22\2\u1879\u187a\5\r\7\2\u187a\u187b\5\21\t\2\u187b\u187c\5-\27\2" + - "\u187c\u0444\3\2\2\2\u187d\u187e\5-\27\2\u187e\u187f\5\21\t\2\u187f\u1880" + - "\5+\26\2\u1880\u1881\5\31\r\2\u1881\u1882\5\t\5\2\u1882\u1883\5\37\20" + - "\2\u1883\u1884\5\31\r\2\u1884\u1885\5;\36\2\u1885\u1886\5\t\5\2\u1886" + - "\u1887\5\13\6\2\u1887\u1888\5\37\20\2\u1888\u1889\5\21\t\2\u1889\u0446" + - "\3\2\2\2\u188a\u188b\5-\27\2\u188b\u188c\5\21\t\2\u188c\u188d\5+\26\2" + - "\u188d\u188e\5\63\32\2\u188e\u188f\5\21\t\2\u188f\u1890\5+\26\2\u1890" + - "\u1891\7a\2\2\u1891\u1892\5#\22\2\u1892\u1893\5\t\5\2\u1893\u1894\5!\21" + - "\2\u1894\u1895\5\21\t\2\u1895\u0448\3\2\2\2\u1896\u1897\5-\27\2\u1897" + - "\u1898\5\21\t\2\u1898\u1899\5-\27\2\u1899\u189a\5-\27\2\u189a\u189b\5" + - "\31\r\2\u189b\u189c\5%\23\2\u189c\u189d\5#\22\2\u189d\u044a\3\2\2\2\u189e" + - "\u189f\5-\27\2\u189f\u18a0\5\21\t\2\u18a0\u18a1\5-\27\2\u18a1\u18a2\5" + - "-\27\2\u18a2\u18a3\5\31\r\2\u18a3\u18a4\5%\23\2\u18a4\u18a5\5#\22\2\u18a5" + - "\u18a6\7a\2\2\u18a6\u18a7\5\61\31\2\u18a7\u18a8\5-\27\2\u18a8\u18a9\5" + - "\21\t\2\u18a9\u18aa\5+\26\2\u18aa\u044c\3\2\2\2\u18ab\u18ac\5-\27\2\u18ac" + - "\u18ad\5\21\t\2\u18ad\u18ae\5/\30\2\u18ae\u044e\3\2\2\2\u18af\u18b0\5" + - "-\27\2\u18b0\u18b1\5\21\t\2\u18b1\u18b2\5/\30\2\u18b2\u18b3\5%\23\2\u18b3" + - "\u18b4\5\23\n\2\u18b4\u0450\3\2\2\2\u18b5\u18b6\5-\27\2\u18b6\u18b7\5" + - "\21\t\2\u18b7\u18b8\5/\30\2\u18b8\u18b9\5-\27\2\u18b9\u0452\3\2\2\2\u18ba" + - "\u18bb\5-\27\2\u18bb\u18bc\5\27\f\2\u18bc\u18bd\5\t\5\2\u18bd\u18be\5" + - "+\26\2\u18be\u18bf\5\21\t\2\u18bf\u0454\3\2\2\2\u18c0\u18c1\5-\27\2\u18c1" + - "\u18c2\5\27\f\2\u18c2\u18c3\5%\23\2\u18c3\u18c4\5\65\33\2\u18c4\u0456" + - "\3\2\2\2\u18c5\u18c6\5-\27\2\u18c6\u18c7\5\31\r\2\u18c7\u18c8\5!\21\2" + - "\u18c8\u18c9\5\31\r\2\u18c9\u18ca\5\37\20\2\u18ca\u18cb\5\t\5\2\u18cb" + - "\u18cc\5+\26\2\u18cc\u0458\3\2\2\2\u18cd\u18ce\5-\27\2\u18ce\u18cf\5\31" + - "\r\2\u18cf\u18d0\5!\21\2\u18d0\u18d1\5\'\24\2\u18d1\u18d2\5\37\20\2\u18d2" + - "\u18d3\5\21\t\2\u18d3\u045a\3\2\2\2\u18d4\u18d5\5-\27\2\u18d5\u18d6\5" + - "\31\r\2\u18d6\u18d7\5;\36\2\u18d7\u18d8\5\21\t\2\u18d8\u045c\3\2\2\2\u18d9" + - "\u18da\5-\27\2\u18da\u18db\5\35\17\2\u18db\u18dc\5\31\r\2\u18dc\u18dd" + - "\5\'\24\2\u18dd\u045e\3\2\2\2\u18de\u18df\5-\27\2\u18df\u18e0\5!\21\2" + - "\u18e0\u18e1\5\t\5\2\u18e1\u18e2\5\37\20\2\u18e2\u18e3\5\37\20\2\u18e3" + - "\u18e4\5\31\r\2\u18e4\u18e5\5#\22\2\u18e5\u18e6\5/\30\2\u18e6\u0460\3" + - "\2\2\2\u18e7\u18e8\5-\27\2\u18e8\u18e9\5#\22\2\u18e9\u18ea\5\t\5\2\u18ea" + - "\u18eb\5\'\24\2\u18eb\u18ec\5-\27\2\u18ec\u18ed\5\27\f\2\u18ed\u18ee\5" + - "%\23\2\u18ee\u18ef\5/\30\2\u18ef\u0462\3\2\2\2\u18f0\u18f1\5-\27\2\u18f1" + - "\u18f2\5%\23\2\u18f2\u18f3\5!\21\2\u18f3\u18f4\5\21\t\2\u18f4\u0464\3" + - "\2\2\2\u18f5\u18f6\5-\27\2\u18f6\u18f7\5%\23\2\u18f7\u18f8\5\61\31\2\u18f8" + - "\u18f9\5+\26\2\u18f9\u18fa\5\r\7\2\u18fa\u18fb\5\21\t\2\u18fb\u0466\3" + - "\2\2\2\u18fc\u18fd\5-\27\2\u18fd\u18fe\5\'\24\2\u18fe\u18ff\5\t\5\2\u18ff" + - "\u1900\5\r\7\2\u1900\u1901\5\21\t\2\u1901\u0468\3\2\2\2\u1902\u1903\5" + - "-\27\2\u1903\u1904\5\'\24\2\u1904\u1905\5\21\t\2\u1905\u1906\5\r\7\2\u1906" + - "\u1907\5\31\r\2\u1907\u1908\5\23\n\2\u1908\u1909\5\31\r\2\u1909\u190a" + - "\5\r\7\2\u190a\u046a\3\2\2\2\u190b\u190c\5-\27\2\u190c\u190d\5\'\24\2" + - "\u190d\u190e\5\21\t\2\u190e\u190f\5\r\7\2\u190f\u1910\5\31\r\2\u1910\u1911" + - "\5\23\n\2\u1911\u1912\5\31\r\2\u1912\u1913\5\r\7\2\u1913\u1914\7a\2\2" + - "\u1914\u1915\5#\22\2\u1915\u1916\5\t\5\2\u1916\u1917\5!\21\2\u1917\u1918" + - "\5\21\t\2\u1918\u046c\3\2\2\2\u1919\u191a\5-\27\2\u191a\u191b\5\'\24\2" + - "\u191b\u191c\5\21\t\2\u191c\u191d\5\r\7\2\u191d\u191e\5\31\r\2\u191e\u191f" + - "\5\23\n\2\u191f\u1920\5\31\r\2\u1920\u1921\5\r\7\2\u1921\u1922\5/\30\2" + - "\u1922\u1923\59\35\2\u1923\u1924\5\'\24\2\u1924\u1925\5\21\t\2\u1925\u046e" + - "\3\2\2\2\u1926\u1927\5-\27\2\u1927\u1928\5)\25\2\u1928\u1929\5\37\20\2" + - "\u1929\u0470\3\2\2\2\u192a\u192b\5-\27\2\u192b\u192c\5)\25\2\u192c\u192d" + - "\5\37\20\2\u192d\u192e\5\r\7\2\u192e\u192f\5%\23\2\u192f\u1930\5\17\b" + - "\2\u1930\u1931\5\21\t\2\u1931\u0472\3\2\2\2\u1932\u1933\5-\27\2\u1933" + - "\u1934\5)\25\2\u1934\u1935\5\37\20\2\u1935\u1936\5\21\t\2\u1936\u1937" + - "\5+\26\2\u1937\u1938\5+\26\2\u1938\u1939\5%\23\2\u1939\u193a\5+\26\2\u193a" + - "\u0474\3\2\2\2\u193b\u193c\5-\27\2\u193c\u193d\5)\25\2\u193d\u193e\5\37" + - "\20\2\u193e\u193f\5\21\t\2\u193f\u1940\5\67\34\2\u1940\u1941\5\r\7\2\u1941" + - "\u1942\5\21\t\2\u1942\u1943\5\'\24\2\u1943\u1944\5/\30\2\u1944\u1945\5" + - "\31\r\2\u1945\u1946\5%\23\2\u1946\u1947\5#\22\2\u1947\u0476\3\2\2\2\u1948" + - "\u1949\5-\27\2\u1949\u194a\5)\25\2\u194a\u194b\5\37\20\2\u194b\u194c\5" + - "-\27\2\u194c\u194d\5/\30\2\u194d\u194e\5\t\5\2\u194e\u194f\5/\30\2\u194f" + - "\u1950\5\21\t\2\u1950\u0478\3\2\2\2\u1951\u1952\5-\27\2\u1952\u1953\5" + - ")\25\2\u1953\u1954\5\37\20\2\u1954\u1955\5\65\33\2\u1955\u1956\5\t\5\2" + - "\u1956\u1957\5+\26\2\u1957\u1958\5#\22\2\u1958\u1959\5\31\r\2\u1959\u195a" + - "\5#\22\2\u195a\u195b\5\25\13\2\u195b\u047a\3\2\2\2\u195c\u195d\5-\27\2" + - "\u195d\u195e\5)\25\2\u195e\u195f\5+\26\2\u195f\u1960\5/\30\2\u1960\u047c" + - "\3\2\2\2\u1961\u1962\5-\27\2\u1962\u1963\5/\30\2\u1963\u1964\5\t\5\2\u1964" + - "\u1965\5\13\6\2\u1965\u1966\5\37\20\2\u1966\u1967\5\21\t\2\u1967\u047e" + - "\3\2\2\2\u1968\u1969\5-\27\2\u1969\u196a\5/\30\2\u196a\u196b\5\t\5\2\u196b" + - "\u196c\5+\26\2\u196c\u196d\5/\30\2\u196d\u0480\3\2\2\2\u196e\u196f\5-" + - "\27\2\u196f\u1970\5/\30\2\u1970\u1971\5\t\5\2\u1971\u1972\5/\30\2\u1972" + - "\u1973\5\21\t\2\u1973\u0482\3\2\2\2\u1974\u1975\5-\27\2\u1975\u1976\5" + - "/\30\2\u1976\u1977\5\t\5\2\u1977\u1978\5/\30\2\u1978\u1979\5\21\t\2\u1979" + - "\u197a\5!\21\2\u197a\u197b\5\21\t\2\u197b\u197c\5#\22\2\u197c\u197d\5" + - "/\30\2\u197d\u0484\3\2\2\2\u197e\u197f\5-\27\2\u197f\u1980\5/\30\2\u1980" + - "\u1981\5\t\5\2\u1981\u1982\5/\30\2\u1982\u1983\5\31\r\2\u1983\u1984\5" + - "\r\7\2\u1984\u0486\3\2\2\2\u1985\u1986\5-\27\2\u1986\u1987\5/\30\2\u1987" + - "\u1988\5\t\5\2\u1988\u1989\5/\30\2\u1989\u198a\5\31\r\2\u198a\u198b\5" + - "-\27\2\u198b\u198c\5/\30\2\u198c\u198d\5\31\r\2\u198d\u198e\5\r\7\2\u198e" + - "\u198f\5-\27\2\u198f\u0488\3\2\2\2\u1990\u1991\5-\27\2\u1991\u1992\5/" + - "\30\2\u1992\u1993\5\17\b\2\u1993\u1994\5\17\b\2\u1994\u1995\5\21\t\2\u1995" + - "\u1996\5\63\32\2\u1996\u1997\7a\2\2\u1997\u1998\5\'\24\2\u1998\u1999\5" + - "%\23\2\u1999\u199a\5\'\24\2\u199a\u048a\3\2\2\2\u199b\u199c\5-\27\2\u199c" + - "\u199d\5/\30\2\u199d\u199e\5\17\b\2\u199e\u199f\5\17\b\2\u199f\u19a0\5" + - "\21\t\2\u19a0\u19a1\5\63\32\2\u19a1\u19a2\7a\2\2\u19a2\u19a3\5-\27\2\u19a3" + - "\u19a4\5\t\5\2\u19a4\u19a5\5!\21\2\u19a5\u19a6\5\'\24\2\u19a6\u048c\3" + - "\2\2\2\u19a7\u19a8\5-\27\2\u19a8\u19a9\5/\30\2\u19a9\u19aa\5\17\b\2\u19aa" + - "\u19ab\5\31\r\2\u19ab\u19ac\5#\22\2\u19ac\u048e\3\2\2\2\u19ad\u19ae\5" + - "-\27\2\u19ae\u19af\5/\30\2\u19af\u19b0\5\17\b\2\u19b0\u19b1\5%\23\2\u19b1" + - "\u19b2\5\61\31\2\u19b2\u19b3\5/\30\2\u19b3\u0490\3\2\2\2\u19b4\u19b5\5" + - "-\27\2\u19b5\u19b6\5/\30\2\u19b6\u19b7\5%\23\2\u19b7\u19b8\5+\26\2\u19b8" + - "\u19b9\5\t\5\2\u19b9\u19ba\5\25\13\2\u19ba\u19bb\5\21\t\2\u19bb\u0492" + - "\3\2\2\2\u19bc\u19bd\5-\27\2\u19bd\u19be\5/\30\2\u19be\u19bf\5+\26\2\u19bf" + - "\u19c0\5\31\r\2\u19c0\u19c1\5\r\7\2\u19c1\u19c2\5/\30\2\u19c2\u0494\3" + - "\2\2\2\u19c3\u19c4\5-\27\2\u19c4\u19c5\5/\30\2\u19c5\u19c6\5+\26\2\u19c6" + - "\u19c7\5\61\31\2\u19c7\u19c8\5\r\7\2\u19c8\u19c9\5/\30\2\u19c9\u19ca\5" + - "\61\31\2\u19ca\u19cb\5+\26\2\u19cb\u19cc\5\21\t\2\u19cc\u0496\3\2\2\2" + - "\u19cd\u19ce\5-\27\2\u19ce\u19cf\5/\30\2\u19cf\u19d0\59\35\2\u19d0\u19d1" + - "\5\37\20\2\u19d1\u19d2\5\21\t\2\u19d2\u0498\3\2\2\2\u19d3\u19d4\5-\27" + - "\2\u19d4\u19d5\5\61\31\2\u19d5\u19d6\5\13\6\2\u19d6\u19d7\5\r\7\2\u19d7" + - "\u19d8\5\37\20\2\u19d8\u19d9\5\t\5\2\u19d9\u19da\5-\27\2\u19da\u19db\5" + - "-\27\2\u19db\u19dc\7a\2\2\u19dc\u19dd\5%\23\2\u19dd\u19de\5+\26\2\u19de" + - "\u19df\5\31\r\2\u19df\u19e0\5\25\13\2\u19e0\u19e1\5\31\r\2\u19e1\u19e2" + - "\5#\22\2\u19e2\u049a\3\2\2\2\u19e3\u19e4\5-\27\2\u19e4\u19e5\5\61\31\2" + - "\u19e5\u19e6\5\13\6\2\u19e6\u19e7\5\37\20\2\u19e7\u19e8\5\31\r\2\u19e8" + - "\u19e9\5-\27\2\u19e9\u19ea\5/\30\2\u19ea\u049c\3\2\2\2\u19eb\u19ec\5-" + - "\27\2\u19ec\u19ed\5\61\31\2\u19ed\u19ee\5\13\6\2\u19ee\u19ef\5!\21\2\u19ef" + - "\u19f0\5\61\31\2\u19f0\u19f1\5\37\20\2\u19f1\u19f2\5/\30\2\u19f2\u19f3" + - "\5\31\r\2\u19f3\u19f4\5-\27\2\u19f4\u19f5\5\21\t\2\u19f5\u19f6\5/\30\2" + - "\u19f6\u049e\3\2\2\2\u19f7\u19f8\5-\27\2\u19f8\u19f9\5\61\31\2\u19f9\u19fa" + - "\5\13\6\2\u19fa\u19fb\5-\27\2\u19fb\u19fc\5\r\7\2\u19fc\u19fd\5+\26\2" + - "\u19fd\u19fe\5\31\r\2\u19fe\u19ff\5\'\24\2\u19ff\u1a00\5/\30\2\u1a00\u1a01" + - "\5\31\r\2\u1a01\u1a02\5%\23\2\u1a02\u1a03\5#\22\2\u1a03\u04a0\3\2\2\2" + - "\u1a04\u1a05\5-\27\2\u1a05\u1a06\5\61\31\2\u1a06\u1a07\5\13\6\2\u1a07" + - "\u1a08\5-\27\2\u1a08\u1a09\5/\30\2\u1a09\u1a0a\5+\26\2\u1a0a\u1a0b\5\31" + - "\r\2\u1a0b\u1a0c\5#\22\2\u1a0c\u1a0d\5\25\13\2\u1a0d\u04a2\3\2\2\2\u1a0e" + - "\u1a0f\5-\27\2\u1a0f\u1a10\5\61\31\2\u1a10\u1a11\5!\21\2\u1a11\u04a4\3" + - "\2\2\2\u1a12\u1a13\5-\27\2\u1a13\u1a14\59\35\2\u1a14\u1a15\5!\21\2\u1a15" + - "\u1a16\5!\21\2\u1a16\u1a17\5\21\t\2\u1a17\u1a18\5/\30\2\u1a18\u1a19\5" + - "+\26\2\u1a19\u1a1a\5\31\r\2\u1a1a\u1a1b\5\r\7\2\u1a1b\u04a6\3\2\2\2\u1a1c" + - "\u1a1d\5-\27\2\u1a1d\u1a1e\59\35\2\u1a1e\u1a1f\5-\27\2\u1a1f\u1a20\5\31" + - "\r\2\u1a20\u1a21\5\17\b\2\u1a21\u04a8\3\2\2\2\u1a22\u1a23\5-\27\2\u1a23" + - "\u1a24\59\35\2\u1a24\u1a25\5-\27\2\u1a25\u1a26\5/\30\2\u1a26\u1a27\5\21" + - "\t\2\u1a27\u1a28\5!\21\2\u1a28\u04aa\3\2\2\2\u1a29\u1a2a\5-\27\2\u1a2a" + - "\u1a2b\59\35\2\u1a2b\u1a2c\5-\27\2\u1a2c\u1a2d\5/\30\2\u1a2d\u1a2e\5\21" + - "\t\2\u1a2e\u1a2f\5!\21\2\u1a2f\u1a30\7a\2\2\u1a30\u1a31\5\61\31\2\u1a31" + - "\u1a32\5-\27\2\u1a32\u1a33\5\21\t\2\u1a33\u1a34\5+\26\2\u1a34\u04ac\3" + - "\2\2\2\u1a35\u1a36\5/\30\2\u1a36\u1a37\5\t\5\2\u1a37\u1a38\5\13\6\2\u1a38" + - "\u1a39\5\37\20\2\u1a39\u1a3a\5\21\t\2\u1a3a\u04ae\3\2\2\2\u1a3b\u1a3c" + - "\5/\30\2\u1a3c\u1a3d\5\t\5\2\u1a3d\u1a3e\5\13\6\2\u1a3e\u1a3f\5\37\20" + - "\2\u1a3f\u1a40\5\21\t\2\u1a40\u1a41\7a\2\2\u1a41\u1a42\5#\22\2\u1a42\u1a43" + - "\5\t\5\2\u1a43\u1a44\5!\21\2\u1a44\u1a45\5\21\t\2\u1a45\u04b0\3\2\2\2" + - "\u1a46\u1a47\5/\30\2\u1a47\u1a48\5\t\5\2\u1a48\u1a49\5\13\6\2\u1a49\u1a4a" + - "\5\37\20\2\u1a4a\u1a4b\5\21\t\2\u1a4b\u1a4c\5-\27\2\u1a4c\u1a4d\5\t\5" + - "\2\u1a4d\u1a4e\5!\21\2\u1a4e\u1a4f\5\'\24\2\u1a4f\u1a50\5\37\20\2\u1a50" + - "\u1a51\5\21\t\2\u1a51\u04b2\3\2\2\2\u1a52\u1a53\5/\30\2\u1a53\u1a54\5" + - "\t\5\2\u1a54\u1a55\5\13\6\2\u1a55\u1a56\5\37\20\2\u1a56\u1a57\5\21\t\2" + - "\u1a57\u1a58\5-\27\2\u1a58\u1a59\5\'\24\2\u1a59\u1a5a\5\t\5\2\u1a5a\u1a5b" + - "\5\r\7\2\u1a5b\u1a5c\5\21\t\2\u1a5c\u04b4\3\2\2\2\u1a5d\u1a5e\5/\30\2" + - "\u1a5e\u1a5f\5\21\t\2\u1a5f\u1a60\5!\21\2\u1a60\u1a61\5\'\24\2\u1a61\u04b6" + - "\3\2\2\2\u1a62\u1a63\5/\30\2\u1a63\u1a64\5\21\t\2\u1a64\u1a65\5!\21\2" + - "\u1a65\u1a66\5\'\24\2\u1a66\u1a67\5\37\20\2\u1a67\u1a68\5\t\5\2\u1a68" + - "\u1a69\5/\30\2\u1a69\u1a6a\5\21\t\2\u1a6a\u04b8\3\2\2\2\u1a6b\u1a6c\5" + - "/\30\2\u1a6c\u1a6d\5\21\t\2\u1a6d\u1a6e\5!\21\2\u1a6e\u1a6f\5\'\24\2\u1a6f" + - "\u1a70\5%\23\2\u1a70\u1a71\5+\26\2\u1a71\u1a72\5\t\5\2\u1a72\u1a73\5+" + - "\26\2\u1a73\u1a74\59\35\2\u1a74\u04ba\3\2\2\2\u1a75\u1a76\5/\30\2\u1a76" + - "\u1a77\5\21\t\2\u1a77\u1a78\5+\26\2\u1a78\u1a79\5!\21\2\u1a79\u1a7a\5" + - "\31\r\2\u1a7a\u1a7b\5#\22\2\u1a7b\u1a7c\5\t\5\2\u1a7c\u1a7d\5/\30\2\u1a7d" + - "\u1a7e\5\21\t\2\u1a7e\u04bc\3\2\2\2\u1a7f\u1a80\5/\30\2\u1a80\u1a81\5" + - "\27\f\2\u1a81\u1a82\5\t\5\2\u1a82\u1a83\5#\22\2\u1a83\u04be\3\2\2\2\u1a84" + - "\u1a85\5/\30\2\u1a85\u1a86\5\27\f\2\u1a86\u1a87\5\21\t\2\u1a87\u1a88\5" + - "#\22\2\u1a88\u04c0\3\2\2\2\u1a89\u1a8a\5/\30\2\u1a8a\u1a8b\5\31\r\2\u1a8b" + - "\u1a8c\5\21\t\2\u1a8c\u1a8d\5-\27\2\u1a8d\u04c2\3\2\2\2\u1a8e\u1a8f\5" + - "/\30\2\u1a8f\u1a90\5\31\r\2\u1a90\u1a91\5!\21\2\u1a91\u1a92\5\21\t\2\u1a92" + - "\u04c4\3\2\2\2\u1a93\u1a94\5/\30\2\u1a94\u1a95\5\31\r\2\u1a95\u1a96\5" + - "!\21\2\u1a96\u1a97\5\21\t\2\u1a97\u1a98\5-\27\2\u1a98\u1a99\5/\30\2\u1a99" + - "\u1a9a\5\t\5\2\u1a9a\u1a9b\5!\21\2\u1a9b\u1a9c\5\'\24\2\u1a9c\u04c6\3" + - "\2\2\2\u1a9d\u1a9e\5/\30\2\u1a9e\u1a9f\5\31\r\2\u1a9f\u1aa0\5!\21\2\u1aa0" + - "\u1aa1\5\21\t\2\u1aa1\u1aa2\5;\36\2\u1aa2\u1aa3\5%\23\2\u1aa3\u1aa4\5" + - "#\22\2\u1aa4\u1aa5\5\21\t\2\u1aa5\u1aa6\7a\2\2\u1aa6\u1aa7\5\27\f\2\u1aa7" + - "\u1aa8\5%\23\2\u1aa8\u1aa9\5\61\31\2\u1aa9\u1aaa\5+\26\2\u1aaa\u04c8\3" + - "\2\2\2\u1aab\u1aac\5/\30\2\u1aac\u1aad\5\31\r\2\u1aad\u1aae\5!\21\2\u1aae" + - "\u1aaf\5\21\t\2\u1aaf\u1ab0\5;\36\2\u1ab0\u1ab1\5%\23\2\u1ab1\u1ab2\5" + - "#\22\2\u1ab2\u1ab3\5\21\t\2\u1ab3\u1ab4\7a\2\2\u1ab4\u1ab5\5!\21\2\u1ab5" + - "\u1ab6\5\31\r\2\u1ab6\u1ab7\5#\22\2\u1ab7\u1ab8\5\61\31\2\u1ab8\u1ab9" + - "\5/\30\2\u1ab9\u1aba\5\21\t\2\u1aba\u04ca\3\2\2\2\u1abb\u1abc\5/\30\2" + - "\u1abc\u1abd\5\31\r\2\u1abd\u1abe\5!\21\2\u1abe\u1abf\5\31\r\2\u1abf\u1ac0" + - "\5#\22\2\u1ac0\u1ac1\5\25\13\2\u1ac1\u04cc\3\2\2\2\u1ac2\u1ac3\5/\30\2" + - "\u1ac3\u1ac4\5%\23\2\u1ac4\u04ce\3\2\2\2\u1ac5\u1ac6\5/\30\2\u1ac6\u1ac7" + - "\5%\23\2\u1ac7\u1ac8\5\t\5\2\u1ac8\u1ac9\5-\27\2\u1ac9\u1aca\5/\30\2\u1aca" + - "\u04d0\3\2\2\2\u1acb\u1acc\5/\30\2\u1acc\u1acd\5%\23\2\u1acd\u1ace\5\'" + - "\24\2\u1ace\u1acf\7a\2\2\u1acf\u1ad0\5\37\20\2\u1ad0\u1ad1\5\21\t\2\u1ad1" + - "\u1ad2\5\63\32\2\u1ad2\u1ad3\5\21\t\2\u1ad3\u1ad4\5\37\20\2\u1ad4\u1ad5" + - "\7a\2\2\u1ad5\u1ad6\5\r\7\2\u1ad6\u1ad7\5%\23\2\u1ad7\u1ad8\5\61\31\2" + - "\u1ad8\u1ad9\5#\22\2\u1ad9\u1ada\5/\30\2\u1ada\u04d2\3\2\2\2\u1adb\u1adc" + - "\5/\30\2\u1adc\u1add\5+\26\2\u1add\u1ade\5\t\5\2\u1ade\u1adf\5\31\r\2" + - "\u1adf\u1ae0\5\37\20\2\u1ae0\u1ae1\5\31\r\2\u1ae1\u1ae2\5#\22\2\u1ae2" + - "\u1ae3\5\25\13\2\u1ae3\u04d4\3\2\2\2\u1ae4\u1ae5\5/\30\2\u1ae5\u1ae6\5" + - "+\26\2\u1ae6\u1ae7\5\t\5\2\u1ae7\u1ae8\5#\22\2\u1ae8\u1ae9\5-\27\2\u1ae9" + - "\u1aea\5\t\5\2\u1aea\u1aeb\5\r\7\2\u1aeb\u1aec\5/\30\2\u1aec\u1aed\5\31" + - "\r\2\u1aed\u1aee\5%\23\2\u1aee\u1aef\5#\22\2\u1aef\u04d6\3\2\2\2\u1af0" + - "\u1af1\5/\30\2\u1af1\u1af2\5+\26\2\u1af2\u1af3\5\t\5\2\u1af3\u1af4\5#" + - "\22\2\u1af4\u1af5\5-\27\2\u1af5\u1af6\5\t\5\2\u1af6\u1af7\5\r\7\2\u1af7" + - "\u1af8\5/\30\2\u1af8\u1af9\5\31\r\2\u1af9\u1afa\5%\23\2\u1afa\u1afb\5" + - "#\22\2\u1afb\u1afc\7a\2\2\u1afc\u1afd\5\t\5\2\u1afd\u1afe\5\r\7\2\u1afe" + - "\u1aff\5/\30\2\u1aff\u1b00\5\31\r\2\u1b00\u1b01\5\63\32\2\u1b01\u1b02" + - "\5\21\t\2\u1b02\u04d8\3\2\2\2\u1b03\u1b04\5/\30\2\u1b04\u1b05\5+\26\2" + - "\u1b05\u1b06\5\t\5\2\u1b06\u1b07\5#\22\2\u1b07\u1b08\5-\27\2\u1b08\u1b09" + - "\5\t\5\2\u1b09\u1b0a\5\r\7\2\u1b0a\u1b0b\5/\30\2\u1b0b\u1b0c\5\31\r\2" + - "\u1b0c\u1b0d\5%\23\2\u1b0d\u1b0e\5#\22\2\u1b0e\u1b0f\5-\27\2\u1b0f\u1b10" + - "\7a\2\2\u1b10\u1b11\5\r\7\2\u1b11\u1b12\5%\23\2\u1b12\u1b13\5!\21\2\u1b13" + - "\u1b14\5!\21\2\u1b14\u1b15\5\31\r\2\u1b15\u1b16\5/\30\2\u1b16\u1b17\5" + - "/\30\2\u1b17\u1b18\5\21\t\2\u1b18\u1b19\5\17\b\2\u1b19\u04da\3\2\2\2\u1b1a" + - "\u1b1b\5/\30\2\u1b1b\u1b1c\5+\26\2\u1b1c\u1b1d\5\t\5\2\u1b1d\u1b1e\5#" + - "\22\2\u1b1e\u1b1f\5-\27\2\u1b1f\u1b20\5\t\5\2\u1b20\u1b21\5\r\7\2\u1b21" + - "\u1b22\5/\30\2\u1b22\u1b23\5\31\r\2\u1b23\u1b24\5%\23\2\u1b24\u1b25\5" + - "#\22\2\u1b25\u1b26\5-\27\2\u1b26\u1b27\7a\2\2\u1b27\u1b28\5+\26\2\u1b28" + - "\u1b29\5%\23\2\u1b29\u1b2a\5\37\20\2\u1b2a\u1b2b\5\37\20\2\u1b2b\u1b2c" + - "\5\21\t\2\u1b2c\u1b2d\5\17\b\2\u1b2d\u1b2e\7a\2\2\u1b2e\u1b2f\5\13\6\2" + - "\u1b2f\u1b30\5\t\5\2\u1b30\u1b31\5\r\7\2\u1b31\u1b32\5\35\17\2\u1b32\u04dc" + - "\3\2\2\2\u1b33\u1b34\5/\30\2\u1b34\u1b35\5+\26\2\u1b35\u1b36\5\t\5\2\u1b36" + - "\u1b37\5#\22\2\u1b37\u1b38\5-\27\2\u1b38\u1b39\5\23\n\2\u1b39\u1b3a\5" + - "%\23\2\u1b3a\u1b3b\5+\26\2\u1b3b\u1b3c\5!\21\2\u1b3c\u04de\3\2\2\2\u1b3d" + - "\u1b3e\5/\30\2\u1b3e\u1b3f\5+\26\2\u1b3f\u1b40\5\t\5\2\u1b40\u1b41\5#" + - "\22\2\u1b41\u1b42\5-\27\2\u1b42\u1b43\5\23\n\2\u1b43\u1b44\5%\23\2\u1b44" + - "\u1b45\5+\26\2\u1b45\u1b46\5!\21\2\u1b46\u1b47\5-\27\2\u1b47\u04e0\3\2" + - "\2\2\u1b48\u1b49\5/\30\2\u1b49\u1b4a\5+\26\2\u1b4a\u1b4b\5\t\5\2\u1b4b" + - "\u1b4c\5#\22\2\u1b4c\u1b4d\5-\27\2\u1b4d\u1b4e\5\37\20\2\u1b4e\u1b4f\5" + - "\t\5\2\u1b4f\u1b50\5/\30\2\u1b50\u1b51\5\21\t\2\u1b51\u04e2\3\2\2\2\u1b52" + - "\u1b53\5/\30\2\u1b53\u1b54\5+\26\2\u1b54\u1b55\5\t\5\2\u1b55\u1b56\5#" + - "\22\2\u1b56\u1b57\5-\27\2\u1b57\u1b58\5\37\20\2\u1b58\u1b59\5\t\5\2\u1b59" + - "\u1b5a\5/\30\2\u1b5a\u1b5b\5\31\r\2\u1b5b\u1b5c\5%\23\2\u1b5c\u1b5d\5" + - "#\22\2\u1b5d\u04e4\3\2\2\2\u1b5e\u1b5f\5/\30\2\u1b5f\u1b60\5+\26\2\u1b60" + - "\u1b61\5\21\t\2\u1b61\u1b62\5\t\5\2\u1b62\u1b63\5/\30\2\u1b63\u04e6\3" + - "\2\2\2\u1b64\u1b65\5/\30\2\u1b65\u1b66\5+\26\2\u1b66\u1b67\5\31\r\2\u1b67" + - "\u1b68\5\25\13\2\u1b68\u1b69\5\25\13\2\u1b69\u1b6a\5\21\t\2\u1b6a\u1b6b" + - "\5+\26\2\u1b6b\u04e8\3\2\2\2\u1b6c\u1b6d\5/\30\2\u1b6d\u1b6e\5+\26\2\u1b6e" + - "\u1b6f\5\31\r\2\u1b6f\u1b70\5\25\13\2\u1b70\u1b71\5\25\13\2\u1b71\u1b72" + - "\5\21\t\2\u1b72\u1b73\5+\26\2\u1b73\u1b74\7a\2\2\u1b74\u1b75\5\r\7\2\u1b75" + - "\u1b76\5\t\5\2\u1b76\u1b77\5/\30\2\u1b77\u1b78\5\t\5\2\u1b78\u1b79\5\37" + - "\20\2\u1b79\u1b7a\5%\23\2\u1b7a\u1b7b\5\25\13\2\u1b7b\u04ea\3\2\2\2\u1b7c" + - "\u1b7d\5/\30\2\u1b7d\u1b7e\5+\26\2\u1b7e\u1b7f\5\31\r\2\u1b7f\u1b80\5" + - "\25\13\2\u1b80\u1b81\5\25\13\2\u1b81\u1b82\5\21\t\2\u1b82\u1b83\5+\26" + - "\2\u1b83\u1b84\7a\2\2\u1b84\u1b85\5#\22\2\u1b85\u1b86\5\t\5\2\u1b86\u1b87" + - "\5!\21\2\u1b87\u1b88\5\21\t\2\u1b88\u04ec\3\2\2\2\u1b89\u1b8a\5/\30\2" + - "\u1b8a\u1b8b\5+\26\2\u1b8b\u1b8c\5\31\r\2\u1b8c\u1b8d\5\25\13\2\u1b8d" + - "\u1b8e\5\25\13\2\u1b8e\u1b8f\5\21\t\2\u1b8f\u1b90\5+\26\2\u1b90\u1b91" + - "\7a\2\2\u1b91\u1b92\5-\27\2\u1b92\u1b93\5\r\7\2\u1b93\u1b94\5\27\f\2\u1b94" + - "\u1b95\5\21\t\2\u1b95\u1b96\5!\21\2\u1b96\u1b97\5\t\5\2\u1b97\u04ee\3" + - "\2\2\2\u1b98\u1b99\5/\30\2\u1b99\u1b9a\5+\26\2\u1b9a\u1b9b\5\31\r\2\u1b9b" + - "\u1b9c\5!\21\2\u1b9c\u04f0\3\2\2\2\u1b9d\u1b9e\5/\30\2\u1b9e\u1b9f\5+" + - "\26\2\u1b9f\u1ba0\5\61\31\2\u1ba0\u1ba1\5\21\t\2\u1ba1\u04f2\3\2\2\2\u1ba2" + - "\u1ba3\5/\30\2\u1ba3\u1ba4\5+\26\2\u1ba4\u1ba5\5\61\31\2\u1ba5\u1ba6\5" + - "#\22\2\u1ba6\u1ba7\5\r\7\2\u1ba7\u1ba8\5\t\5\2\u1ba8\u1ba9\5/\30\2\u1ba9" + - "\u1baa\5\21\t\2\u1baa\u04f4\3\2\2\2\u1bab\u1bac\5/\30\2\u1bac\u1bad\5" + - "+\26\2\u1bad\u1bae\5\61\31\2\u1bae\u1baf\5-\27\2\u1baf\u1bb0\5/\30\2\u1bb0" + - "\u1bb1\5\21\t\2\u1bb1\u1bb2\5\17\b\2\u1bb2\u04f6\3\2\2\2\u1bb3\u1bb4\5" + - "/\30\2\u1bb4\u1bb5\59\35\2\u1bb5\u1bb6\5\'\24\2\u1bb6\u1bb7\5\21\t\2\u1bb7" + - "\u04f8\3\2\2\2\u1bb8\u1bb9\5\61\31\2\u1bb9\u1bba\5\21\t\2\u1bba\u1bbb" + - "\5-\27\2\u1bbb\u1bbc\5\r\7\2\u1bbc\u1bbd\5\t\5\2\u1bbd\u1bbe\5\'\24\2" + - "\u1bbe\u1bbf\5\21\t\2\u1bbf\u04fa\3\2\2\2\u1bc0\u1bc1\5\61\31\2\u1bc1" + - "\u1bc2\5#\22\2\u1bc2\u1bc3\5\13\6\2\u1bc3\u1bc4\5%\23\2\u1bc4\u1bc5\5" + - "\61\31\2\u1bc5\u1bc6\5#\22\2\u1bc6\u1bc7\5\17\b\2\u1bc7\u1bc8\5\21\t\2" + - "\u1bc8\u1bc9\5\17\b\2\u1bc9\u04fc\3\2\2\2\u1bca\u1bcb\5\61\31\2\u1bcb" + - "\u1bcc\5#\22\2\u1bcc\u1bcd\5\r\7\2\u1bcd\u1bce\5%\23\2\u1bce\u1bcf\5!" + - "\21\2\u1bcf\u1bd0\5!\21\2\u1bd0\u1bd1\5\31\r\2\u1bd1\u1bd2\5/\30\2\u1bd2" + - "\u1bd3\5/\30\2\u1bd3\u1bd4\5\21\t\2\u1bd4\u1bd5\5\17\b\2\u1bd5\u04fe\3" + - "\2\2\2\u1bd6\u1bd7\5\61\31\2\u1bd7\u1bd8\5#\22\2\u1bd8\u1bd9\5\17\b\2" + - "\u1bd9\u1bda\5\21\t\2\u1bda\u1bdb\5+\26\2\u1bdb\u0500\3\2\2\2\u1bdc\u1bdd" + - "\5\61\31\2\u1bdd\u1bde\5#\22\2\u1bde\u1bdf\5\21\t\2\u1bdf\u1be0\5#\22" + - "\2\u1be0\u1be1\5\r\7\2\u1be1\u1be2\5+\26\2\u1be2\u1be3\59\35\2\u1be3\u1be4" + - "\5\'\24\2\u1be4\u1be5\5/\30\2\u1be5\u1be6\5\21\t\2\u1be6\u1be7\5\17\b" + - "\2\u1be7\u0502\3\2\2\2\u1be8\u1be9\5\61\31\2\u1be9\u1bea\5#\22\2\u1bea" + - "\u1beb\5\31\r\2\u1beb\u1bec\5%\23\2\u1bec\u1bed\5#\22\2\u1bed\u0504\3" + - "\2\2\2\u1bee\u1bef\5\61\31\2\u1bef\u1bf0\5#\22\2\u1bf0\u1bf1\5\31\r\2" + - "\u1bf1\u1bf2\5)\25\2\u1bf2\u1bf3\5\61\31\2\u1bf3\u1bf4\5\21\t\2\u1bf4" + - "\u0506\3\2\2\2\u1bf5\u1bf6\5\61\31\2\u1bf6\u1bf7\5#\22\2\u1bf7\u1bf8\5" + - "\35\17\2\u1bf8\u1bf9\5#\22\2\u1bf9\u1bfa\5%\23\2\u1bfa\u1bfb\5\65\33\2" + - "\u1bfb\u1bfc\5#\22\2\u1bfc\u0508\3\2\2\2\u1bfd\u1bfe\5\61\31\2\u1bfe\u1bff" + - "\5#\22\2\u1bff\u1c00\5\37\20\2\u1c00\u1c01\5\31\r\2\u1c01\u1c02\5-\27" + - "\2\u1c02\u1c03\5/\30\2\u1c03\u1c04\5\21\t\2\u1c04\u1c05\5#\22\2\u1c05" + - "\u050a\3\2\2\2\u1c06\u1c07\5\61\31\2\u1c07\u1c08\5#\22\2\u1c08\u1c09\5" + - "#\22\2\u1c09\u1c0a\5\t\5\2\u1c0a\u1c0b\5!\21\2\u1c0b\u1c0c\5\21\t\2\u1c0c" + - "\u1c0d\5\17\b\2\u1c0d\u050c\3\2\2\2\u1c0e\u1c0f\5\61\31\2\u1c0f\u1c10" + - "\5#\22\2\u1c10\u1c11\5#\22\2\u1c11\u1c12\5\21\t\2\u1c12\u1c13\5-\27\2" + - "\u1c13\u1c14\5/\30\2\u1c14\u050e\3\2\2\2\u1c15\u1c16\5\61\31\2\u1c16\u1c17" + - "\5#\22\2\u1c17\u1c18\5/\30\2\u1c18\u1c19\5\31\r\2\u1c19\u1c1a\5\37\20" + - "\2\u1c1a\u0510\3\2\2\2\u1c1b\u1c1c\5\61\31\2\u1c1c\u1c1d\5\'\24\2\u1c1d" + - "\u1c1e\5\17\b\2\u1c1e\u1c1f\5\t\5\2\u1c1f\u1c20\5/\30\2\u1c20\u1c21\5" + - "\21\t\2\u1c21\u0512\3\2\2\2\u1c22\u1c23\5\61\31\2\u1c23\u1c24\5\'\24\2" + - "\u1c24\u1c25\5\'\24\2\u1c25\u1c26\5\21\t\2\u1c26\u1c27\5+\26\2\u1c27\u0514" + - "\3\2\2\2\u1c28\u1c29\5\61\31\2\u1c29\u1c2a\5-\27\2\u1c2a\u1c2b\5\t\5\2" + - "\u1c2b\u1c2c\5\25\13\2\u1c2c\u1c2d\5\21\t\2\u1c2d\u0516\3\2\2\2\u1c2e" + - "\u1c2f\5\61\31\2\u1c2f\u1c30\5-\27\2\u1c30\u1c31\5\21\t\2\u1c31\u1c32" + - "\5+\26\2\u1c32\u0518\3\2\2\2\u1c33\u1c34\5\61\31\2\u1c34\u1c35\5-\27\2" + - "\u1c35\u1c36\5\21\t\2\u1c36\u1c37\5+\26\2\u1c37\u1c38\7a\2\2\u1c38\u1c39" + - "\5\17\b\2\u1c39\u1c3a\5\21\t\2\u1c3a\u1c3b\5\23\n\2\u1c3b\u1c3c\5\31\r" + - "\2\u1c3c\u1c3d\5#\22\2\u1c3d\u1c3e\5\21\t\2\u1c3e\u1c3f\5\17\b\2\u1c3f" + - "\u1c40\7a\2\2\u1c40\u1c41\5/\30\2\u1c41\u1c42\59\35\2\u1c42\u1c43\5\'" + - "\24\2\u1c43\u1c44\5\21\t\2\u1c44\u1c45\7a\2\2\u1c45\u1c46\5\r\7\2\u1c46" + - "\u1c47\5\t\5\2\u1c47\u1c48\5/\30\2\u1c48\u1c49\5\t\5\2\u1c49\u1c4a\5\37" + - "\20\2\u1c4a\u1c4b\5%\23\2\u1c4b\u1c4c\5\25\13\2\u1c4c\u051a\3\2\2\2\u1c4d" + - "\u1c4e\5\61\31\2\u1c4e\u1c4f\5-\27\2\u1c4f\u1c50\5\21\t\2\u1c50\u1c51" + - "\5+\26\2\u1c51\u1c52\7a\2\2\u1c52\u1c53\5\17\b\2\u1c53\u1c54\5\21\t\2" + - "\u1c54\u1c55\5\23\n\2\u1c55\u1c56\5\31\r\2\u1c56\u1c57\5#\22\2\u1c57\u1c58" + - "\5\21\t\2\u1c58\u1c59\5\17\b\2\u1c59\u1c5a\7a\2\2\u1c5a\u1c5b\5/\30\2" + - "\u1c5b\u1c5c\59\35\2\u1c5c\u1c5d\5\'\24\2\u1c5d\u1c5e\5\21\t\2\u1c5e\u1c5f" + - "\7a\2\2\u1c5f\u1c60\5\r\7\2\u1c60\u1c61\5%\23\2\u1c61\u1c62\5\17\b\2\u1c62" + - "\u1c63\5\21\t\2\u1c63\u051c\3\2\2\2\u1c64\u1c65\5\61\31\2\u1c65\u1c66" + - "\5-\27\2\u1c66\u1c67\5\21\t\2\u1c67\u1c68\5+\26\2\u1c68\u1c69\7a\2\2\u1c69" + - "\u1c6a\5\17\b\2\u1c6a\u1c6b\5\21\t\2\u1c6b\u1c6c\5\23\n\2\u1c6c\u1c6d" + - "\5\31\r\2\u1c6d\u1c6e\5#\22\2\u1c6e\u1c6f\5\21\t\2\u1c6f\u1c70\5\17\b" + - "\2\u1c70\u1c71\7a\2\2\u1c71\u1c72\5/\30\2\u1c72\u1c73\59\35\2\u1c73\u1c74" + - "\5\'\24\2\u1c74\u1c75\5\21\t\2\u1c75\u1c76\7a\2\2\u1c76\u1c77\5#\22\2" + - "\u1c77\u1c78\5\t\5\2\u1c78\u1c79\5!\21\2\u1c79\u1c7a\5\21\t\2\u1c7a\u051e" + - "\3\2\2\2\u1c7b\u1c7c\5\61\31\2\u1c7c\u1c7d\5-\27\2\u1c7d\u1c7e\5\21\t" + - "\2\u1c7e\u1c7f\5+\26\2\u1c7f\u1c80\7a\2\2\u1c80\u1c81\5\17\b\2\u1c81\u1c82" + - "\5\21\t\2\u1c82\u1c83\5\23\n\2\u1c83\u1c84\5\31\r\2\u1c84\u1c85\5#\22" + - "\2\u1c85\u1c86\5\21\t\2\u1c86\u1c87\5\17\b\2\u1c87\u1c88\7a\2\2\u1c88" + - "\u1c89\5/\30\2\u1c89\u1c8a\59\35\2\u1c8a\u1c8b\5\'\24\2\u1c8b\u1c8c\5" + - "\21\t\2\u1c8c\u1c8d\7a\2\2\u1c8d\u1c8e\5-\27\2\u1c8e\u1c8f\5\r\7\2\u1c8f" + - "\u1c90\5\27\f\2\u1c90\u1c91\5\21\t\2\u1c91\u1c92\5!\21\2\u1c92\u1c93\5" + - "\t\5\2\u1c93\u0520\3\2\2\2\u1c94\u1c95\5\61\31\2\u1c95\u1c96\5-\27\2\u1c96" + - "\u1c97\5\31\r\2\u1c97\u1c98\5#\22\2\u1c98\u1c99\5\25\13\2\u1c99\u0522" + - "\3\2\2\2\u1c9a\u1c9b\5\63\32\2\u1c9b\u1c9c\5\t\5\2\u1c9c\u1c9d\5\r\7\2" + - "\u1c9d\u1c9e\5\61\31\2\u1c9e\u1c9f\5\61\31\2\u1c9f\u1ca0\5!\21\2\u1ca0" + - "\u0524\3\2\2\2\u1ca1\u1ca2\5\63\32\2\u1ca2\u1ca3\5\t\5\2\u1ca3\u1ca4\5" + - "\37\20\2\u1ca4\u1ca5\5\31\r\2\u1ca5\u1ca6\5\17\b\2\u1ca6\u0526\3\2\2\2" + - "\u1ca7\u1ca8\5\63\32\2\u1ca8\u1ca9\5\t\5\2\u1ca9\u1caa\5\37\20\2\u1caa" + - "\u1cab\5\31\r\2\u1cab\u1cac\5\17\b\2\u1cac\u1cad\5\t\5\2\u1cad\u1cae\5" + - "/\30\2\u1cae\u1caf\5\21\t\2\u1caf\u0528\3\2\2\2\u1cb0\u1cb1\5\63\32\2" + - "\u1cb1\u1cb2\5\t\5\2\u1cb2\u1cb3\5\37\20\2\u1cb3\u1cb4\5\31\r\2\u1cb4" + - "\u1cb5\5\17\b\2\u1cb5\u1cb6\5\t\5\2\u1cb6\u1cb7\5/\30\2\u1cb7\u1cb8\5" + - "%\23\2\u1cb8\u1cb9\5+\26\2\u1cb9\u052a\3\2\2\2\u1cba\u1cbb\5\63\32\2\u1cbb" + - "\u1cbc\5\t\5\2\u1cbc\u1cbd\5\37\20\2\u1cbd\u1cbe\5\61\31\2\u1cbe\u1cbf" + - "\5\21\t\2\u1cbf\u052c\3\2\2\2\u1cc0\u1cc1\5\63\32\2\u1cc1\u1cc2\5\t\5" + - "\2\u1cc2\u1cc3\5\37\20\2\u1cc3\u1cc4\5\61\31\2\u1cc4\u1cc5\5\21\t\2\u1cc5" + - "\u1cc6\5-\27\2\u1cc6\u052e\3\2\2\2\u1cc7\u1cc8\5\63\32\2\u1cc8\u1cc9\5" + - "\t\5\2\u1cc9\u1cca\5+\26\2\u1cca\u1ccb\7a\2\2\u1ccb\u1ccc\5\'\24\2\u1ccc" + - "\u1ccd\5%\23\2\u1ccd\u1cce\5\'\24\2\u1cce\u0530\3\2\2\2\u1ccf\u1cd0\5" + - "\63\32\2\u1cd0\u1cd1\5\t\5\2\u1cd1\u1cd2\5+\26\2\u1cd2\u1cd3\7a\2\2\u1cd3" + - "\u1cd4\5-\27\2\u1cd4\u1cd5\5\t\5\2\u1cd5\u1cd6\5!\21\2\u1cd6\u1cd7\5\'" + - "\24\2\u1cd7\u0532\3\2\2\2\u1cd8\u1cd9\5\63\32\2\u1cd9\u1cda\5\t\5\2\u1cda" + - "\u1cdb\5+\26\2\u1cdb\u1cdc\5\r\7\2\u1cdc\u1cdd\5\27\f\2\u1cdd\u1cde\5" + - "\t\5\2\u1cde\u1cdf\5+\26\2\u1cdf\u0534\3\2\2\2\u1ce0\u1ce1\5\63\32\2\u1ce1" + - "\u1ce2\5\t\5\2\u1ce2\u1ce3\5+\26\2\u1ce3\u1ce4\5\31\r\2\u1ce4\u1ce5\5" + - "\t\5\2\u1ce5\u1ce6\5\13\6\2\u1ce6\u1ce7\5\37\20\2\u1ce7\u1ce8\5\21\t\2" + - "\u1ce8\u0536\3\2\2\2\u1ce9\u1cea\5\63\32\2\u1cea\u1ceb\5\t\5\2\u1ceb\u1cec" + - "\5+\26\2\u1cec\u1ced\5\31\r\2\u1ced\u1cee\5\t\5\2\u1cee\u1cef\5\17\b\2" + - "\u1cef\u1cf0\5\31\r\2\u1cf0\u1cf1\5\r\7\2\u1cf1\u0538\3\2\2\2\u1cf2\u1cf3" + - "\5\63\32\2\u1cf3\u1cf4\5\t\5\2\u1cf4\u1cf5\5+\26\2\u1cf5\u1cf6\59\35\2" + - "\u1cf6\u1cf7\5\31\r\2\u1cf7\u1cf8\5#\22\2\u1cf8\u1cf9\5\25\13\2\u1cf9" + - "\u053a\3\2\2\2\u1cfa\u1cfb\5\63\32\2\u1cfb\u1cfc\5\21\t\2\u1cfc\u1cfd" + - "\5+\26\2\u1cfd\u1cfe\5\13\6\2\u1cfe\u1cff\5%\23\2\u1cff\u1d00\5-\27\2" + - "\u1d00\u1d01\5\21\t\2\u1d01\u053c\3\2\2\2\u1d02\u1d03\5\63\32\2\u1d03" + - "\u1d04\5\31\r\2\u1d04\u1d05\5\21\t\2\u1d05\u1d06\5\65\33\2\u1d06\u053e" + - "\3\2\2\2\u1d07\u1d08\5\63\32\2\u1d08\u1d09\5%\23\2\u1d09\u1d0a\5\37\20" + - "\2\u1d0a\u1d0b\5\t\5\2\u1d0b\u1d0c\5/\30\2\u1d0c\u1d0d\5\31\r\2\u1d0d" + - "\u1d0e\5\37\20\2\u1d0e\u1d0f\5\21\t\2\u1d0f\u0540\3\2\2\2\u1d10\u1d11" + - "\5\65\33\2\u1d11\u1d12\5\27\f\2\u1d12\u1d13\5\21\t\2\u1d13\u1d14\5#\22" + - "\2\u1d14\u0542\3\2\2\2\u1d15\u1d16\5\65\33\2\u1d16\u1d17\5\27\f\2\u1d17" + - "\u1d18\5\21\t\2\u1d18\u1d19\5#\22\2\u1d19\u1d1a\5\21\t\2\u1d1a\u1d1b\5" + - "\63\32\2\u1d1b\u1d1c\5\21\t\2\u1d1c\u1d1d\5+\26\2\u1d1d\u0544\3\2\2\2" + - "\u1d1e\u1d1f\5\65\33\2\u1d1f\u1d20\5\27\f\2\u1d20\u1d21\5\21\t\2\u1d21" + - "\u1d22\5+\26\2\u1d22\u1d23\5\21\t\2\u1d23\u0546\3\2\2\2\u1d24\u1d25\5" + - "\65\33\2\u1d25\u1d26\5\31\r\2\u1d26\u1d27\5\17\b\2\u1d27\u1d28\5/\30\2" + - "\u1d28\u1d29\5\27\f\2\u1d29\u1d2a\7a\2\2\u1d2a\u1d2b\5\13\6\2\u1d2b\u1d2c" + - "\5\61\31\2\u1d2c\u1d2d\5\r\7\2\u1d2d\u1d2e\5\35\17\2\u1d2e\u1d2f\5\21" + - "\t\2\u1d2f\u1d30\5/\30\2\u1d30\u0548\3\2\2\2\u1d31\u1d32\5\65\33\2\u1d32" + - "\u1d33\5\31\r\2\u1d33\u1d34\5#\22\2\u1d34\u1d35\5\17\b\2\u1d35\u1d36\5" + - "%\23\2\u1d36\u1d37\5\65\33\2\u1d37\u054a\3\2\2\2\u1d38\u1d39\5\65\33\2" + - "\u1d39\u1d3a\5\31\r\2\u1d3a\u1d3b\5/\30\2\u1d3b\u1d3c\5\27\f\2\u1d3c\u054c" + - "\3\2\2\2\u1d3d\u1d3e\5\65\33\2\u1d3e\u1d3f\5\31\r\2\u1d3f\u1d40\5/\30" + - "\2\u1d40\u1d41\5\27\f\2\u1d41\u1d42\5\31\r\2\u1d42\u1d43\5#\22\2\u1d43" + - "\u054e\3\2\2\2\u1d44\u1d45\5\65\33\2\u1d45\u1d46\5\31\r\2\u1d46\u1d47" + - "\5/\30\2\u1d47\u1d48\5\27\f\2\u1d48\u1d49\5%\23\2\u1d49\u1d4a\5\61\31" + - "\2\u1d4a\u1d4b\5/\30\2\u1d4b\u0550\3\2\2\2\u1d4c\u1d4d\5\65\33\2\u1d4d" + - "\u1d4e\5%\23\2\u1d4e\u1d4f\5+\26\2\u1d4f\u1d50\5\35\17\2\u1d50\u0552\3" + - "\2\2\2\u1d51\u1d52\5\65\33\2\u1d52\u1d53\5+\26\2\u1d53\u1d54\5\31\r\2" + - "\u1d54\u1d55\5/\30\2\u1d55\u1d56\5\21\t\2\u1d56\u0554\3\2\2\2\u1d57\u1d58" + - "\59\35\2\u1d58\u1d59\5\t\5\2\u1d59\u1d5a\5!\21\2\u1d5a\u1d5b\5\37\20\2" + - "\u1d5b\u0556\3\2\2\2\u1d5c\u1d5d\59\35\2\u1d5d\u1d5e\5\21\t\2\u1d5e\u1d5f" + - "\5\t\5\2\u1d5f\u1d60\5+\26\2\u1d60\u0558\3\2\2\2\u1d61\u1d62\59\35\2\u1d62" + - "\u1d63\5\21\t\2\u1d63\u1d64\5-\27\2\u1d64\u055a\3\2\2\2\u1d65\u1d66\5" + - ";\36\2\u1d66\u1d67\5%\23\2\u1d67\u1d68\5#\22\2\u1d68\u1d69\5\21\t\2\u1d69" + - "\u055c\3\2\2\2\u1d6a\u1d6b\5-\27\2\u1d6b\u1d6c\5\61\31\2\u1d6c\u1d6d\5" + - "\'\24\2\u1d6d\u1d6e\5\21\t\2\u1d6e\u1d6f\5+\26\2\u1d6f\u1d70\5\61\31\2" + - "\u1d70\u1d71\5-\27\2\u1d71\u1d72\5\21\t\2\u1d72\u1d73\5+\26\2\u1d73\u055e" + - "\3\2\2\2\u1d74\u1d75\5#\22\2\u1d75\u1d76\5%\23\2\u1d76\u1d77\5-\27\2\u1d77" + - "\u1d78\5\61\31\2\u1d78\u1d79\5\'\24\2\u1d79\u1d7a\5\21\t\2\u1d7a\u1d7b" + - "\5+\26\2\u1d7b\u1d7c\5\61\31\2\u1d7c\u1d7d\5-\27\2\u1d7d\u1d7e\5\21\t" + - "\2\u1d7e\u1d7f\5+\26\2\u1d7f\u0560\3\2\2\2\u1d80\u1d81\5\r\7\2\u1d81\u1d82" + - "\5+\26\2\u1d82\u1d83\5\21\t\2\u1d83\u1d84\5\t\5\2\u1d84\u1d85\5/\30\2" + - "\u1d85\u1d86\5\21\t\2\u1d86\u1d87\5+\26\2\u1d87\u1d88\5%\23\2\u1d88\u1d89" + - "\5\37\20\2\u1d89\u1d8a\5\21\t\2\u1d8a\u0562\3\2\2\2\u1d8b\u1d8c\5#\22" + - "\2\u1d8c\u1d8d\5%\23\2\u1d8d\u1d8e\5\r\7\2\u1d8e\u1d8f\5+\26\2\u1d8f\u1d90" + - "\5\21\t\2\u1d90\u1d91\5\t\5\2\u1d91\u1d92\5/\30\2\u1d92\u1d93\5\21\t\2" + - "\u1d93\u1d94\5+\26\2\u1d94\u1d95\5%\23\2\u1d95\u1d96\5\37\20\2\u1d96\u1d97" + - "\5\21\t\2\u1d97\u0564\3\2\2\2\u1d98\u1d99\5\31\r\2\u1d99\u1d9a\5#\22\2" + - "\u1d9a\u1d9b\5\27\f\2\u1d9b\u1d9c\5\21\t\2\u1d9c\u1d9d\5+\26\2\u1d9d\u1d9e" + - "\5\31\r\2\u1d9e\u1d9f\5/\30\2\u1d9f\u0566\3\2\2\2\u1da0\u1da1\5#\22\2" + - "\u1da1\u1da2\5%\23\2\u1da2\u1da3\5\31\r\2\u1da3\u1da4\5#\22\2\u1da4\u1da5" + - "\5\27\f\2\u1da5\u1da6\5\21\t\2\u1da6\u1da7\5+\26\2\u1da7\u1da8\5\31\r" + - "\2\u1da8\u1da9\5/\30\2\u1da9\u0568\3\2\2\2\u1daa\u1dab\5\37\20\2\u1dab" + - "\u1dac\5%\23\2\u1dac\u1dad\5\25\13\2\u1dad\u1dae\5\31\r\2\u1dae\u1daf" + - "\5#\22\2\u1daf\u056a\3\2\2\2\u1db0\u1db1\5#\22\2\u1db1\u1db2\5%\23\2\u1db2" + - "\u1db3\5\37\20\2\u1db3\u1db4\5%\23\2\u1db4\u1db5\5\25\13\2\u1db5\u1db6" + - "\5\31\r\2\u1db6\u1db7\5#\22\2\u1db7\u056c\3\2\2\2\u1db8\u1db9\5+\26\2" + - "\u1db9\u1dba\5\21\t\2\u1dba\u1dbb\5\'\24\2\u1dbb\u1dbc\5\37\20\2\u1dbc" + - "\u1dbd\5\31\r\2\u1dbd\u1dbe\5\r\7\2\u1dbe\u1dbf\5\t\5\2\u1dbf\u1dc0\5" + - "/\30\2\u1dc0\u1dc1\5\31\r\2\u1dc1\u1dc2\5%\23\2\u1dc2\u1dc3\5#\22\2\u1dc3" + - "\u056e\3\2\2\2\u1dc4\u1dc5\5#\22\2\u1dc5\u1dc6\5%\23\2\u1dc6\u1dc7\5+" + - "\26\2\u1dc7\u1dc8\5\21\t\2\u1dc8\u1dc9\5\'\24\2\u1dc9\u1dca\5\37\20\2" + - "\u1dca\u1dcb\5\31\r\2\u1dcb\u1dcc\5\r\7\2\u1dcc\u1dcd\5\t\5\2\u1dcd\u1dce" + - "\5/\30\2\u1dce\u1dcf\5\31\r\2\u1dcf\u1dd0\5%\23\2\u1dd0\u1dd1\5#\22\2" + - "\u1dd1\u0570\3\2\2\2\u1dd2\u1dd3\5\13\6\2\u1dd3\u1dd4\59\35\2\u1dd4\u1dd5" + - "\5\'\24\2\u1dd5\u1dd6\5\t\5\2\u1dd6\u1dd7\5-\27\2\u1dd7\u1dd8\5-\27\2" + - "\u1dd8\u1dd9\5+\26\2\u1dd9\u1dda\5\37\20\2\u1dda\u1ddb\5-\27\2\u1ddb\u0572" + - "\3\2\2\2\u1ddc\u1ddd\5#\22\2\u1ddd\u1dde\5%\23\2\u1dde\u1ddf\5\13\6\2" + - "\u1ddf\u1de0\59\35\2\u1de0\u1de1\5\'\24\2\u1de1\u1de2\5\t\5\2\u1de2\u1de3" + - "\5-\27\2\u1de3\u1de4\5-\27\2\u1de4\u1de5\5+\26\2\u1de5\u1de6\5\37\20\2" + - "\u1de6\u1de7\5-\27\2\u1de7\u0574\3\2\2\2\u1de8\u1de9\5-\27\2\u1de9\u1dea" + - "\5\23\n\2\u1dea\u1deb\5\61\31\2\u1deb\u1dec\5#\22\2\u1dec\u1ded\5\r\7" + - "\2\u1ded\u0576\3\2\2\2\u1dee\u1def\5-\27\2\u1def\u1df0\5/\30\2\u1df0\u1df1" + - "\59\35\2\u1df1\u1df2\5\'\24\2\u1df2\u1df3\5\21\t\2\u1df3\u0578\3\2\2\2" + - "\u1df4\u1df5\5-\27\2\u1df5\u1df6\5-\27\2\u1df6\u1df7\5\'\24\2\u1df7\u1df8" + - "\5\t\5\2\u1df8\u1df9\5\r\7\2\u1df9\u1dfa\5\21\t\2\u1dfa\u057a\3\2\2\2" + - "\u1dfb\u1dfc\5\23\n\2\u1dfc\u1dfd\5\31\r\2\u1dfd\u1dfe\5#\22\2\u1dfe\u1dff" + - "\5\t\5\2\u1dff\u1e00\5\37\20\2\u1e00\u1e01\5\23\n\2\u1e01\u1e02\5\61\31" + - "\2\u1e02\u1e03\5#\22\2\u1e03\u1e04\5\r\7\2\u1e04\u057c\3\2\2\2\u1e05\u1e06" + - "\5\23\n\2\u1e06\u1e07\5\31\r\2\u1e07\u1e08\5#\22\2\u1e08\u1e09\5\t\5\2" + - "\u1e09\u1e0a\5\37\20\2\u1e0a\u1e0b\5\23\n\2\u1e0b\u1e0c\5\61\31\2\u1e0c" + - "\u1e0d\5#\22\2\u1e0d\u1e0e\5\r\7\2\u1e0e\u1e0f\7a\2\2\u1e0f\u1e10\5\21" + - "\t\2\u1e10\u1e11\5\67\34\2\u1e11\u1e12\5/\30\2\u1e12\u1e13\5+\26\2\u1e13" + - "\u1e14\5\t\5\2\u1e14\u057e\3\2\2\2\u1e15\u1e16\5\r\7\2\u1e16\u1e17\5%" + - "\23\2\u1e17\u1e18\5!\21\2\u1e18\u1e19\5\13\6\2\u1e19\u1e1a\5\31\r\2\u1e1a" + - "\u1e1b\5#\22\2\u1e1b\u1e1c\5\21\t\2\u1e1c\u1e1d\5\23\n\2\u1e1d\u1e1e\5" + - "\61\31\2\u1e1e\u1e1f\5#\22\2\u1e1f\u1e20\5\r\7\2\u1e20\u0580\3\2\2\2\u1e21" + - "\u1e22\5-\27\2\u1e22\u1e23\5\21\t"; - private static final String _serializedATNSegment3 = - "\2\u1e23\u1e24\5+\26\2\u1e24\u1e25\5\31\r\2\u1e25\u1e26\5\t\5\2\u1e26" + - "\u1e27\5\37\20\2\u1e27\u1e28\5\23\n\2\u1e28\u1e29\5\61\31\2\u1e29\u1e2a" + - "\5#\22\2\u1e2a\u1e2b\5\r\7\2\u1e2b\u0582\3\2\2\2\u1e2c\u1e2d\5\17\b\2" + - "\u1e2d\u1e2e\5\21\t\2\u1e2e\u1e2f\5-\27\2\u1e2f\u1e30\5\21\t\2\u1e30\u1e31" + - "\5+\26\2\u1e31\u1e32\5\31\r\2\u1e32\u1e33\5\t\5\2\u1e33\u1e34\5\37\20" + - "\2\u1e34\u1e35\5\23\n\2\u1e35\u1e36\5\61\31\2\u1e36\u1e37\5#\22\2\u1e37" + - "\u1e38\5\r\7\2\u1e38\u0584\3\2\2\2\u1e39\u1e3a\5\31\r\2\u1e3a\u1e3b\5" + - "#\22\2\u1e3b\u1e3c\5\31\r\2\u1e3c\u1e3d\5/\30\2\u1e3d\u1e3e\5\r\7\2\u1e3e" + - "\u1e3f\5%\23\2\u1e3f\u1e40\5#\22\2\u1e40\u1e41\5\17\b\2\u1e41\u0586\3" + - "\2\2\2\u1e42\u1e43\5!\21\2\u1e43\u1e44\5-\27\2\u1e44\u1e45\5\23\n\2\u1e45" + - "\u1e46\5\61\31\2\u1e46\u1e47\5#\22\2\u1e47\u1e48\5\r\7\2\u1e48\u0588\3" + - "\2\2\2\u1e49\u1e4a\5!\21\2\u1e4a\u1e4b\5\31\r\2\u1e4b\u1e4c\5#\22\2\u1e4c" + - "\u1e4d\5\63\32\2\u1e4d\u1e4e\5\23\n\2\u1e4e\u1e4f\5\61\31\2\u1e4f\u1e50" + - "\5#\22\2\u1e50\u1e51\5\r\7\2\u1e51\u058a\3\2\2\2\u1e52\u1e53\5!\21\2\u1e53" + - "\u1e54\5-\27\2\u1e54\u1e55\5/\30\2\u1e55\u1e56\59\35\2\u1e56\u1e57\5\'" + - "\24\2\u1e57\u1e58\5\21\t\2\u1e58\u058c\3\2\2\2\u1e59\u1e5a\5!\21\2\u1e5a" + - "\u1e5b\5-\27\2\u1e5b\u1e5c\5-\27\2\u1e5c\u1e5d\5\'\24\2\u1e5d\u1e5e\5" + - "\t\5\2\u1e5e\u1e5f\5\r\7\2\u1e5f\u1e60\5\21\t\2\u1e60\u058e\3\2\2\2\u1e61" + - "\u1e62\5!\21\2\u1e62\u1e63\5\23\n\2\u1e63\u1e64\5\31\r\2\u1e64\u1e65\5" + - "#\22\2\u1e65\u1e66\5\t\5\2\u1e66\u1e67\5\37\20\2\u1e67\u1e68\5\23\n\2" + - "\u1e68\u1e69\5\61\31\2\u1e69\u1e6a\5#\22\2\u1e6a\u1e6b\5\r\7\2\u1e6b\u0590" + - "\3\2\2\2\u1e6c\u1e6d\5!\21\2\u1e6d\u1e6e\5\23\n\2\u1e6e\u1e6f\5\31\r\2" + - "\u1e6f\u1e70\5#\22\2\u1e70\u1e71\5\t\5\2\u1e71\u1e72\5\37\20\2\u1e72\u1e73" + - "\5\23\n\2\u1e73\u1e74\5\61\31\2\u1e74\u1e75\5#\22\2\u1e75\u1e76\5\r\7" + - "\2\u1e76\u1e77\7a\2\2\u1e77\u1e78\5\21\t\2\u1e78\u1e79\5\67\34\2\u1e79" + - "\u1e7a\5/\30\2\u1e7a\u1e7b\5+\26\2\u1e7b\u1e7c\5\t\5\2\u1e7c\u0592\3\2" + - "\2\2\u1e7d\u1e7e\5!\21\2\u1e7e\u1e7f\5\31\r\2\u1e7f\u1e80\5#\22\2\u1e80" + - "\u1e81\5\31\r\2\u1e81\u1e82\5/\30\2\u1e82\u1e83\5\r\7\2\u1e83\u1e84\5" + - "%\23\2\u1e84\u1e85\5#\22\2\u1e85\u1e86\5\17\b\2\u1e86\u0594\3\2\2\2\u1e87" + - "\u1e88\5-\27\2\u1e88\u1e89\5%\23\2\u1e89\u1e8a\5+\26\2\u1e8a\u1e8b\5/" + - "\30\2\u1e8b\u1e8c\5%\23\2\u1e8c\u1e8d\5\'\24\2\u1e8d\u0596\3\2\2\2\u1e8e" + - "\u1e8f\5\'\24\2\u1e8f\u1e90\5\t\5\2\u1e90\u1e91\5+\26\2\u1e91\u1e92\5" + - "\t\5\2\u1e92\u1e93\5\37\20\2\u1e93\u1e94\5\37\20\2\u1e94\u1e95\5\21\t" + - "\2\u1e95\u1e96\5\37\20\2\u1e96\u0598\3\2\2\2\u1e97\u1e98\5\27\f\2\u1e98" + - "\u1e99\59\35\2\u1e99\u1e9a\5\'\24\2\u1e9a\u1e9b\5%\23\2\u1e9b\u1e9c\5" + - "/\30\2\u1e9c\u1e9d\5\27\f\2\u1e9d\u1e9e\5\21\t\2\u1e9e\u1e9f\5/\30\2\u1e9f" + - "\u1ea0\5\31\r\2\u1ea0\u1ea1\5\r\7\2\u1ea1\u1ea2\5\t\5\2\u1ea2\u1ea3\5" + - "\37\20\2\u1ea3\u059a\3\2\2\2\u1ea4\u1ea5\5-\27\2\u1ea5\u1ea6\5\t\5\2\u1ea6" + - "\u1ea7\5\23\n\2\u1ea7\u1ea8\5\21\t\2\u1ea8\u059c\3\2\2\2\u1ea9\u1eaa\5" + - "+\26\2\u1eaa\u1eab\5\21\t\2\u1eab\u1eac\5-\27\2\u1eac\u1ead\5/\30\2\u1ead" + - "\u1eae\5+\26\2\u1eae\u1eaf\5\31\r\2\u1eaf\u1eb0\5\r\7\2\u1eb0\u1eb1\5" + - "/\30\2\u1eb1\u1eb2\5\21\t\2\u1eb2\u1eb3\5\17\b\2\u1eb3\u059e\3\2\2\2\u1eb4" + - "\u1eb5\5\61\31\2\u1eb5\u1eb6\5#\22\2\u1eb6\u1eb7\5-\27\2\u1eb7\u1eb8\5" + - "\t\5\2\u1eb8\u1eb9\5\23\n\2\u1eb9\u1eba\5\21\t\2\u1eba\u05a0\3\2\2\2\u1ebb" + - "\u1ebc\5\13\6\2\u1ebc\u1ebd\5\t\5\2\u1ebd\u1ebe\5-\27\2\u1ebe\u1ebf\5" + - "\21\t\2\u1ebf\u1ec0\5/\30\2\u1ec0\u1ec1\59\35\2\u1ec1\u1ec2\5\'\24\2\u1ec2" + - "\u1ec3\5\21\t\2\u1ec3\u05a2\3\2\2\2\u1ec4\u1ec5\5\31\r\2\u1ec5\u1ec6\5" + - "\23\n\2\u1ec6\u05a4\3\2\2\2\u1ec7\u1ec8\5\37\20\2\u1ec8\u1ec9\5%\23\2" + - "\u1ec9\u1eca\5\r\7\2\u1eca\u1ecb\5\t\5\2\u1ecb\u1ecc\5\37\20\2\u1ecc\u1ecd" + - "\5\21\t\2\u1ecd\u05a6\3\2\2\2\u1ece\u1ecf\5\37\20\2\u1ecf\u1ed0\5\r\7" + - "\2\u1ed0\u1ed1\7a\2\2\u1ed1\u1ed2\5\r\7\2\u1ed2\u1ed3\5%\23\2\u1ed3\u1ed4" + - "\5\37\20\2\u1ed4\u1ed5\5\37\20\2\u1ed5\u1ed6\5\t\5\2\u1ed6\u1ed7\5/\30" + - "\2\u1ed7\u1ed8\5\21\t\2\u1ed8\u05a8\3\2\2\2\u1ed9\u1eda\5\37\20\2\u1eda" + - "\u1edb\5\r\7\2\u1edb\u1edc\7a\2\2\u1edc\u1edd\5\r\7\2\u1edd\u1ede\5/\30" + - "\2\u1ede\u1edf\59\35\2\u1edf\u1ee0\5\'\24\2\u1ee0\u1ee1\5\21\t\2\u1ee1" + - "\u05aa\3\2\2\2\u1ee2\u1ee3\5\'\24\2\u1ee3\u1ee4\5+\26\2\u1ee4\u1ee5\5" + - "%\23\2\u1ee5\u1ee6\5\63\32\2\u1ee6\u1ee7\5\31\r\2\u1ee7\u1ee8\5\17\b\2" + - "\u1ee8\u1ee9\5\21\t\2\u1ee9\u1eea\5+\26\2\u1eea\u05ac\3\2\2\2\u1eeb\u1eec" + - "\5\63\32\2\u1eec\u1eed\5\21\t\2\u1eed\u1eee\5+\26\2\u1eee\u1eef\5-\27" + - "\2\u1eef\u1ef0\5\31\r\2\u1ef0\u1ef1\5%\23\2\u1ef1\u1ef2\5#\22\2\u1ef2" + - "\u05ae\3\2\2\2\u1ef3\u1ef4\5\t\5\2\u1ef4\u1ef5\5\37\20\2\u1ef5\u1ef6\5" + - "\37\20\2\u1ef6\u1ef7\5%\23\2\u1ef7\u1ef8\5\65\33\2\u1ef8\u1ef9\7a\2\2" + - "\u1ef9\u1efa\5\r\7\2\u1efa\u1efb\5%\23\2\u1efb\u1efc\5#\22\2\u1efc\u1efd" + - "\5#\22\2\u1efd\u1efe\5\21\t\2\u1efe\u1eff\5\r\7\2\u1eff\u1f00\5/\30\2" + - "\u1f00\u1f01\5\31\r\2\u1f01\u1f02\5%\23\2\u1f02\u1f03\5#\22\2\u1f03\u1f04" + - "\5-\27\2\u1f04\u05b0\3\2\2\2\u1f05\u1f06\5\31\r\2\u1f06\u1f07\5-\27\2" + - "\u1f07\u1f08\7a\2\2\u1f08\u1f09\5/\30\2\u1f09\u1f0a\5\21\t\2\u1f0a\u1f0b" + - "\5!\21\2\u1f0b\u1f0c\5\'\24\2\u1f0c\u1f0d\5\37\20\2\u1f0d\u1f0e\5\t\5" + - "\2\u1f0e\u1f0f\5/\30\2\u1f0f\u1f10\5\21\t\2\u1f10\u05b2\3\2\2\2\u1f11" + - "\u1f12\5\21\t\2\u1f12\u1f13\5\63\32\2\u1f13\u1f14\5\21\t\2\u1f14\u1f15" + - "\5#\22\2\u1f15\u1f16\5/\30\2\u1f16\u05b4\3\2\2\2\u1f17\u1f18\5\65\33\2" + - "\u1f18\u1f19\5+\26\2\u1f19\u1f1a\5\t\5\2\u1f1a\u1f1b\5\'\24\2\u1f1b\u1f1c" + - "\5\'\24\2\u1f1c\u1f1d\5\21\t\2\u1f1d\u1f1e\5+\26\2\u1f1e\u05b6\3\2\2\2" + - "\u1f1f\u1f20\5-\27\2\u1f20\u1f21\5\21\t\2\u1f21\u1f22\5+\26\2\u1f22\u1f23" + - "\5\63\32\2\u1f23\u1f24\5\21\t\2\u1f24\u1f25\5+\26\2\u1f25\u05b8\3\2\2" + - "\2\u1f26\u1f27\5\13\6\2\u1f27\u1f28\5/\30\2\u1f28\u1f29\5+\26\2\u1f29" + - "\u1f2a\5\21\t\2\u1f2a\u1f2b\5\21\t\2\u1f2b\u05ba\3\2\2\2\u1f2c\u1f2d\5" + - "\27\f\2\u1f2d\u1f2e\5\t\5\2\u1f2e\u1f2f\5-\27\2\u1f2f\u1f30\5\27\f\2\u1f30" + - "\u05bc\3\2\2\2\u1f31\u1f32\5\25\13\2\u1f32\u1f33\5\31\r\2\u1f33\u1f34" + - "\5-\27\2\u1f34\u1f35\5/\30\2\u1f35\u05be\3\2\2\2\u1f36\u1f37\5-\27\2\u1f37" + - "\u1f38\5\'\24\2\u1f38\u1f39\5\25\13\2\u1f39\u1f3a\5\31\r\2\u1f3a\u1f3b" + - "\5-\27\2\u1f3b\u1f3c\5/\30\2\u1f3c\u05c0\3\2\2\2\u1f3d\u1f3e\5\25\13\2" + - "\u1f3e\u1f3f\5\31\r\2\u1f3f\u1f40\5#\22\2\u1f40\u05c2\3\2\2\2\u1f41\u1f42" + - "\5\13\6\2\u1f42\u1f43\5+\26\2\u1f43\u1f44\5\31\r\2\u1f44\u1f45\5#\22\2" + - "\u1f45\u05c4\3\2\2\2\u1f46\u1f47\5\r\7\2\u1f47\u1f48\5%\23\2\u1f48\u1f49" + - "\5#\22\2\u1f49\u1f4a\5\r\7\2\u1f4a\u1f4b\5\61\31\2\u1f4b\u1f4c\5+\26\2" + - "\u1f4c\u1f4d\5+\26\2\u1f4d\u1f4e\5\21\t\2\u1f4e\u1f4f\5#\22\2\u1f4f\u1f50" + - "\5/\30\2\u1f50\u1f51\5\37\20\2\u1f51\u1f52\59\35\2\u1f52\u05c6\3\2\2\2" + - "\u1f53\u1f54\5\31\r\2\u1f54\u1f55\5#\22\2\u1f55\u1f56\5\37\20\2\u1f56" + - "\u1f57\5\31\r\2\u1f57\u1f58\5#\22\2\u1f58\u1f59\5\21\t\2\u1f59\u05c8\3" + - "\2\2\2\u1f5a\u1f5b\5!\21\2\u1f5b\u1f5c\5\t\5\2\u1f5c\u1f5d\5/\30\2\u1f5d" + - "\u1f5e\5\21\t\2\u1f5e\u1f5f\5+\26\2\u1f5f\u1f60\5\31\r\2\u1f60\u1f61\5" + - "\t\5\2\u1f61\u1f62\5\37\20\2\u1f62\u1f63\5\31\r\2\u1f63\u1f64\5;\36\2" + - "\u1f64\u1f65\5\21\t\2\u1f65\u1f66\5\17\b\2\u1f66\u05ca\3\2\2\2\u1f67\u1f68" + - "\5\37\20\2\u1f68\u1f69\5\21\t\2\u1f69\u1f6a\5\23\n\2\u1f6a\u1f6b\5/\30" + - "\2\u1f6b\u1f6c\5\t\5\2\u1f6c\u1f6d\5+\26\2\u1f6d\u1f6e\5\25\13\2\u1f6e" + - "\u05cc\3\2\2\2\u1f6f\u1f70\5+\26\2\u1f70\u1f71\5\31\r\2\u1f71\u1f72\5" + - "\25\13\2\u1f72\u1f73\5\27\f\2\u1f73\u1f74\5/\30\2\u1f74\u1f75\5\t\5\2" + - "\u1f75\u1f76\5+\26\2\u1f76\u1f77\5\25\13\2\u1f77\u05ce\3\2\2\2\u1f78\u1f79" + - "\5\r\7\2\u1f79\u1f7a\5%\23\2\u1f7a\u1f7b\5!\21\2\u1f7b\u1f7c\5!\21\2\u1f7c" + - "\u1f7d\5\61\31\2\u1f7d\u1f7e\5/\30\2\u1f7e\u1f7f\5\t\5\2\u1f7f\u1f80\5" + - "/\30\2\u1f80\u1f81\5%\23\2\u1f81\u1f82\5+\26\2\u1f82\u05d0\3\2\2\2\u1f83" + - "\u1f84\5#\22\2\u1f84\u1f85\5\21\t\2\u1f85\u1f86\5\25\13\2\u1f86\u1f87" + - "\5\t\5\2\u1f87\u1f88\5/\30\2\u1f88\u1f89\5%\23\2\u1f89\u1f8a\5+\26\2\u1f8a" + - "\u05d2\3\2\2\2\u1f8b\u1f8c\5\27\f\2\u1f8c\u1f8d\5\t\5\2\u1f8d\u1f8e\5" + - "-\27\2\u1f8e\u1f8f\5\27\f\2\u1f8f\u1f90\5\21\t\2\u1f90\u1f91\5-\27\2\u1f91" + - "\u05d4\3\2\2\2\u1f92\u1f93\5!\21\2\u1f93\u1f94\5\21\t\2\u1f94\u1f95\5" + - "+\26\2\u1f95\u1f96\5\25\13\2\u1f96\u1f97\5\21\t\2\u1f97\u1f98\5-\27\2" + - "\u1f98\u05d6\3\2\2\2\u1f99\u1f9a\5\23\n\2\u1f9a\u1f9b\5\t\5\2\u1f9b\u1f9c" + - "\5!\21\2\u1f9c\u1f9d\5\31\r\2\u1f9d\u1f9e\5\37\20\2\u1f9e\u1f9f\59\35" + - "\2\u1f9f\u05d8\3\2\2\2\u1fa0\u1fa1\5\'\24\2\u1fa1\u1fa2\5%\23\2\u1fa2" + - "\u1fa3\5\37\20\2\u1fa3\u1fa4\5\31\r\2\u1fa4\u1fa5\5\r\7\2\u1fa5\u1fa6" + - "\59\35\2\u1fa6\u05da\3\2\2\2\u1fa7\u1fa8\5%\23\2\u1fa8\u1fa9\5\65\33\2" + - "\u1fa9\u1faa\5#\22\2\u1faa\u1fab\5\21\t\2\u1fab\u1fac\5\17\b\2\u1fac\u05dc" + - "\3\2\2\2\u1fad\u1fae\5\t\5\2\u1fae\u1faf\5\13\6\2\u1faf\u1fb0\5-\27\2" + - "\u1fb0\u1fb1\5/\30\2\u1fb1\u1fb2\5\31\r\2\u1fb2\u1fb3\5!\21\2\u1fb3\u1fb4" + - "\5\21\t\2\u1fb4\u05de\3\2\2\2\u1fb5\u1fb6\5\13\6\2\u1fb6\u1fb7\5\31\r" + - "\2\u1fb7\u1fb8\5\25\13\2\u1fb8\u1fb9\5-\27\2\u1fb9\u1fba\5\21\t\2\u1fba" + - "\u1fbb\5+\26\2\u1fbb\u1fbc\5\31\r\2\u1fbc\u1fbd\5\t\5\2\u1fbd\u1fbe\5" + - "\37\20\2\u1fbe\u05e0\3\2\2\2\u1fbf\u1fc0\5\13\6\2\u1fc0\u1fc1\5\31\r\2" + - "\u1fc1\u1fc2\5/\30\2\u1fc2\u1fc3\7\"\2\2\u1fc3\u1fc4\5\63\32\2\u1fc4\u1fc5" + - "\5\t\5\2\u1fc5\u1fc6\5+\26\2\u1fc6\u1fc7\59\35\2\u1fc7\u1fc8\5\31\r\2" + - "\u1fc8\u1fc9\5#\22\2\u1fc9\u1fca\5\25\13\2\u1fca\u05e2\3\2\2\2\u1fcb\u1fcc" + - "\5\13\6\2\u1fcc\u1fcd\5%\23\2\u1fcd\u1fce\5%\23\2\u1fce\u1fcf\5\37\20" + - "\2\u1fcf\u05e4\3\2\2\2\u1fd0\u1fd1\5\13\6\2\u1fd1\u1fd2\5%\23\2\u1fd2" + - "\u1fd3\5\67\34\2\u1fd3\u05e6\3\2\2\2\u1fd4\u1fd5\5\13\6\2\u1fd5\u1fd6" + - "\59\35\2\u1fd6\u1fd7\5/\30\2\u1fd7\u1fd8\5\21\t\2\u1fd8\u1fd9\5\t\5\2" + - "\u1fd9\u05e8\3\2\2\2\u1fda\u1fdb\5\r\7\2\u1fdb\u1fdc\5\27\f\2\u1fdc\u1fdd" + - "\5\t\5\2\u1fdd\u1fde\5+\26\2\u1fde\u1fdf\5\t\5\2\u1fdf\u1fe0\5\r\7\2\u1fe0" + - "\u1fe1\5/\30\2\u1fe1\u1fe2\5\21\t\2\u1fe2\u1fe3\5+\26\2\u1fe3\u1fe4\7" + - "\"\2\2\u1fe4\u1fe5\5\63\32\2\u1fe5\u1fe6\5\t\5\2\u1fe6\u1fe7\5+\26\2\u1fe7" + - "\u1fe8\59\35\2\u1fe8\u1fe9\5\31\r\2\u1fe9\u1fea\5#\22\2\u1fea\u1feb\5" + - "\25\13\2\u1feb\u05ea\3\2\2\2\u1fec\u1fed\5\r\7\2\u1fed\u1fee\5\31\r\2" + - "\u1fee\u1fef\5\17\b\2\u1fef\u1ff0\5+\26\2\u1ff0\u05ec\3\2\2\2\u1ff1\u1ff2" + - "\5\r\7\2\u1ff2\u1ff3\5\31\r\2\u1ff3\u1ff4\5+\26\2\u1ff4\u1ff5\5\r\7\2" + - "\u1ff5\u1ff6\5\37\20\2\u1ff6\u1ff7\5\21\t\2\u1ff7\u05ee\3\2\2\2\u1ff8" + - "\u1ff9\5\23\n\2\u1ff9\u1ffa\5\37\20\2\u1ffa\u1ffb\5%\23\2\u1ffb\u1ffc" + - "\5\t\5\2\u1ffc\u1ffd\5/\30\2\u1ffd\u1ffe\7\66\2\2\u1ffe\u05f0\3\2\2\2" + - "\u1fff\u2000\5\23\n\2\u2000\u2001\5\37\20\2\u2001\u2002\5%\23\2\u2002" + - "\u2003\5\t\5\2\u2003\u2004\5/\30\2\u2004\u2005\7:\2\2\u2005\u05f2\3\2" + - "\2\2\u2006\u2007\5\31\r\2\u2007\u2008\5#\22\2\u2008\u2009\5\21\t\2\u2009" + - "\u200a\5/\30\2\u200a\u05f4\3\2\2\2\u200b\u200c\5\31\r\2\u200c\u200d\5" + - "#\22\2\u200d\u200e\5/\30\2\u200e\u200f\7\64\2\2\u200f\u05f6\3\2\2\2\u2010" + - "\u2011\5\31\r\2\u2011\u2012\5#\22\2\u2012\u2013\5/\30\2\u2013\u2014\7" + - "\66\2\2\u2014\u05f8\3\2\2\2\u2015\u2016\5\31\r\2\u2016\u2017\5#\22\2\u2017" + - "\u2018\5/\30\2\u2018\u2019\7:\2\2\u2019\u05fa\3\2\2\2\u201a\u201b\5\33" + - "\16\2\u201b\u201c\5-\27\2\u201c\u201d\5%\23\2\u201d\u201e\5#\22\2\u201e" + - "\u05fc\3\2\2\2\u201f\u2020\5\33\16\2\u2020\u2021\5-\27\2\u2021\u2022\5" + - "%\23\2\u2022\u2023\5#\22\2\u2023\u2024\5\13\6\2\u2024\u05fe\3\2\2\2\u2025" + - "\u2026\5\37\20\2\u2026\u2027\5\31\r\2\u2027\u2028\5#\22\2\u2028\u2029" + - "\5\21\t\2\u2029\u0600\3\2\2\2\u202a\u202b\5\37\20\2\u202b\u202c\5-\27" + - "\2\u202c\u202d\5\21\t\2\u202d\u202e\5\25\13\2\u202e\u0602\3\2\2\2\u202f" + - "\u2030\5!\21\2\u2030\u2031\5\t\5\2\u2031\u2032\5\r\7\2\u2032\u2033\5\t" + - "\5\2\u2033\u2034\5\17\b\2\u2034\u2035\5\17\b\2\u2035\u2036\5+\26\2\u2036" + - "\u0604\3\2\2\2\u2037\u2038\5!\21\2\u2038\u2039\5\t\5\2\u2039\u203a\5\r" + - "\7\2\u203a\u203b\5\t\5\2\u203b\u203c\5\17\b\2\u203c\u203d\5\17\b\2\u203d" + - "\u203e\5+\26\2\u203e\u203f\7:\2\2\u203f\u0606\3\2\2\2\u2040\u2041\5!\21" + - "\2\u2041\u2042\5%\23\2\u2042\u2043\5#\22\2\u2043\u2044\5\21\t\2\u2044" + - "\u2045\59\35\2\u2045\u0608\3\2\2\2\u2046\u2047\5\'\24\2\u2047\u2048\5" + - "\25\13\2\u2048\u2049\7a\2\2\u2049\u204a\5\37\20\2\u204a\u204b\5-\27\2" + - "\u204b\u204c\5#\22\2\u204c\u060a\3\2\2\2\u204d\u204e\5\'\24\2\u204e\u204f" + - "\5%\23\2\u204f\u2050\5\31\r\2\u2050\u2051\5#\22\2\u2051\u2052\5/\30\2" + - "\u2052\u060c\3\2\2\2\u2053\u2054\5\'\24\2\u2054\u2055\5%\23\2\u2055\u2056" + - "\5\37\20\2\u2056\u2057\59\35\2\u2057\u2058\5\25\13\2\u2058\u2059\5%\23" + - "\2\u2059\u205a\5#\22\2\u205a\u060e\3\2\2\2\u205b\u205c\5+\26\2\u205c\u205d" + - "\5\21\t\2\u205d\u205e\5\37\20\2\u205e\u205f\5/\30\2\u205f\u2060\5\31\r" + - "\2\u2060\u2061\5!\21\2\u2061\u2062\5\21\t\2\u2062\u0610\3\2\2\2\u2063" + - "\u2064\5-\27\2\u2064\u2065\5\21\t\2\u2065\u2066\5+\26\2\u2066\u2067\5" + - "\31\r\2\u2067\u2068\5\t\5\2\u2068\u2069\5\37\20\2\u2069\u0612\3\2\2\2" + - "\u206a\u206b\5-\27\2\u206b\u206c\5\21\t\2\u206c\u206d\5+\26\2\u206d\u206e" + - "\5\31\r\2\u206e\u206f\5\t\5\2\u206f\u2070\5\37\20\2\u2070\u2071\7\64\2" + - "\2\u2071\u0614\3\2\2\2\u2072\u2073\5-\27\2\u2073\u2074\5\21\t\2\u2074" + - "\u2075\5+\26\2\u2075\u2076\5\31\r\2\u2076\u2077\5\t\5\2\u2077\u2078\5" + - "\37\20\2\u2078\u2079\7\66\2\2\u2079\u0616\3\2\2\2\u207a\u207b\5-\27\2" + - "\u207b\u207c\5\21\t\2\u207c\u207d\5+\26\2\u207d\u207e\5\31\r\2\u207e\u207f" + - "\5\t\5\2\u207f\u2080\5\37\20\2\u2080\u2081\7:\2\2\u2081\u0618\3\2\2\2" + - "\u2082\u2083\5-\27\2\u2083\u2084\5!\21\2\u2084\u2085\5\t\5\2\u2085\u2086" + - "\5\37\20\2\u2086\u2087\5\37\20\2\u2087\u2088\5-\27\2\u2088\u2089\5\21" + - "\t\2\u2089\u208a\5+\26\2\u208a\u208b\5\31\r\2\u208b\u208c\5\t\5\2\u208c" + - "\u208d\5\37\20\2\u208d\u061a\3\2\2\2\u208e\u208f\5-\27\2\u208f\u2090\5" + - "/\30\2\u2090\u2091\5-\27\2\u2091\u2092\5/\30\2\u2092\u2093\5\21\t\2\u2093" + - "\u2094\5!\21\2\u2094\u061c\3\2\2\2\u2095\u2096\5/\30\2\u2096\u2097\5\21" + - "\t\2\u2097\u2098\5\67\34\2\u2098\u2099\5/\30\2\u2099\u061e\3\2\2\2\u209a" + - "\u209b\5/\30\2\u209b\u209c\5\31\r\2\u209c\u209d\5!\21\2\u209d\u209e\5" + - "\21\t\2\u209e\u209f\5-\27\2\u209f\u20a0\5/\30\2\u20a0\u20a1\5\t\5\2\u20a1" + - "\u20a2\5!\21\2\u20a2\u20a3\5\'\24\2\u20a3\u20a4\5/\30\2\u20a4\u20a5\5" + - ";\36\2\u20a5\u0620\3\2\2\2\u20a6\u20a7\5/\30\2\u20a7\u20a8\5\31\r\2\u20a8" + - "\u20a9\5!\21\2\u20a9\u20aa\5\21\t\2\u20aa\u20ab\5/\30\2\u20ab\u20ac\5" + - ";\36\2\u20ac\u0622\3\2\2\2\u20ad\u20ae\5/\30\2\u20ae\u20af\5-\27\2\u20af" + - "\u20b0\5)\25\2\u20b0\u20b1\5\61\31\2\u20b1\u20b2\5\21\t\2\u20b2\u20b3" + - "\5+\26\2\u20b3\u20b4\59\35\2\u20b4\u0624\3\2\2\2\u20b5\u20b6\5/\30\2\u20b6" + - "\u20b7\5-\27\2\u20b7\u20b8\5\63\32\2\u20b8\u20b9\5\21\t\2\u20b9\u20ba" + - "\5\r\7\2\u20ba\u20bb\5/\30\2\u20bb\u20bc\5%\23\2\u20bc\u20bd\5+\26\2\u20bd" + - "\u0626\3\2\2\2\u20be\u20bf\5/\30\2\u20bf\u20c0\5\67\34\2\u20c0\u20c1\5" + - "\31\r\2\u20c1\u20c2\5\17\b\2\u20c2\u20c3\7a\2\2\u20c3\u20c4\5-\27\2\u20c4" + - "\u20c5\5#\22\2\u20c5\u20c6\5\t\5\2\u20c6\u20c7\5\'\24\2\u20c7\u20c8\5" + - "-\27\2\u20c8\u20c9\5\27\f\2\u20c9\u20ca\5%\23\2\u20ca\u20cb\5/\30\2\u20cb" + - "\u0628\3\2\2\2\u20cc\u20cd\5\61\31\2\u20cd\u20ce\5\61\31\2\u20ce\u20cf" + - "\5\31\r\2\u20cf\u20d0\5\17\b\2\u20d0\u062a\3\2\2\2\u20d1\u20d2\5\63\32" + - "\2\u20d2\u20d3\5\t\5\2\u20d3\u20d4\5+\26\2\u20d4\u20d5\5\13\6\2\u20d5" + - "\u20d6\5\31\r\2\u20d6\u20d7\5/\30\2\u20d7\u062c\3\2\2\2\u20d8\u20d9\5" + - "\67\34\2\u20d9\u20da\5!\21\2\u20da\u20db\5\37\20\2\u20db\u062e\3\2\2\2" + - "\u20dc\u20dd\7.\2\2\u20dd\u0630\3\2\2\2\u20de\u20df\7<\2\2\u20df\u0632" + - "\3\2\2\2\u20e0\u20e1\7<\2\2\u20e1\u20e2\7<\2\2\u20e2\u0634\3\2\2\2\u20e3" + - "\u20e4\7&\2\2\u20e4\u0636\3\2\2\2\u20e5\u20e6\7&\2\2\u20e6\u20e7\7&\2" + - "\2\u20e7\u0638\3\2\2\2\u20e8\u20e9\7,\2\2\u20e9\u063a\3\2\2\2\u20ea\u20eb" + - "\7*\2\2\u20eb\u063c\3\2\2\2\u20ec\u20ed\7+\2\2\u20ed\u063e\3\2\2\2\u20ee" + - "\u20ef\7]\2\2\u20ef\u0640\3\2\2\2\u20f0\u20f1\7_\2\2\u20f1\u0642\3\2\2" + - "\2\u20f2\u20f3\5\13\6\2\u20f3\u20f7\7)\2\2\u20f4\u20f6\4\62\63\2\u20f5" + - "\u20f4\3\2\2\2\u20f6\u20f9\3\2\2\2\u20f7\u20f5\3\2\2\2\u20f7\u20f8\3\2" + - "\2\2\u20f8\u20fa\3\2\2\2\u20f9\u20f7\3\2\2\2\u20fa\u20fb\7)\2\2\u20fb" + - "\u0644\3\2\2\2\u20fc\u20fd\5\21\t\2\u20fd\u20fe\5C\"\2\u20fe\u0646\3\2" + - "\2\2\u20ff\u2101\7/\2\2\u2100\u20ff\3\2\2\2\u2100\u2101\3\2\2\2\u2101" + - "\u2103\3\2\2\2\u2102\u2104\5? \2\u2103\u2102\3\2\2\2\u2104\u2105\3\2\2" + - "\2\u2105\u2103\3\2\2\2\u2105\u2106\3\2\2\2\u2106\u2107\3\2\2\2\u2107\u2109" + - "\7\60\2\2\u2108\u210a\5? \2\u2109\u2108\3\2\2\2\u210a\u210b\3\2\2\2\u210b" + - "\u2109\3\2\2\2\u210b\u210c\3\2\2\2\u210c\u2119\3\2\2\2\u210d\u2111\5\21" + - "\t\2\u210e\u2110\7/\2\2\u210f\u210e\3\2\2\2\u2110\u2113\3\2\2\2\u2111" + - "\u210f\3\2\2\2\u2111\u2112\3\2\2\2\u2112\u2115\3\2\2\2\u2113\u2111\3\2" + - "\2\2\u2114\u2116\5? \2\u2115\u2114\3\2\2\2\u2116\u2117\3\2\2\2\u2117\u2115" + - "\3\2\2\2\u2117\u2118\3\2\2\2\u2118\u211a\3\2\2\2\u2119\u210d\3\2\2\2\u2119" + - "\u211a\3\2\2\2\u211a\u0648\3\2\2\2\u211b\u211d\7/\2\2\u211c\u211b\3\2" + - "\2\2\u211c\u211d\3\2\2\2\u211d\u211f\3\2\2\2\u211e\u2120\5? \2\u211f\u211e" + - "\3\2\2\2\u2120\u2121\3\2\2\2\u2121\u211f\3\2\2\2\u2121\u2122\3\2\2\2\u2122" + - "\u2129\3\2\2\2\u2123\u2125\5\21\t\2\u2124\u2126\5? \2\u2125\u2124\3\2" + - "\2\2\u2126\u2127\3\2\2\2\u2127\u2125\3\2\2\2\u2127\u2128\3\2\2\2\u2128" + - "\u212a\3\2\2\2\u2129\u2123\3\2\2\2\u2129\u212a\3\2\2\2\u212a\u064a\3\2" + - "\2\2\u212b\u212c\7z\2\2\u212c\u212d\5C\"\2\u212d\u064c\3\2\2\2\u212e\u212f" + - "\7\60\2\2\u212f\u064e\3\2\2\2\u2130\u2131\5C\"\2\u2131\u0650\3\2\2\2\u2132" + - "\u2133\5A!\2\u2133\u0652\3\2\2\2\u2134\u2138\t\"\2\2\u2135\u2137\t#\2" + - "\2\u2136\u2135\3\2\2\2\u2137\u213a\3\2\2\2\u2138\u2136\3\2\2\2\u2138\u2139" + - "\3\2\2\2\u2139\u0654\3\2\2\2\u213a\u2138\3\2\2\2\u213b\u213d\7&\2\2\u213c" + - "\u213e\5? \2\u213d\u213c\3\2\2\2\u213e\u213f\3\2\2\2\u213f\u213d\3\2\2" + - "\2\u213f\u2140\3\2\2\2\u2140\u0656\3\2\2\2\u2141\u2145\t$\2\2\u2142\u2144" + - "\t%\2\2\u2143\u2142\3\2\2\2\u2144\u2147\3\2\2\2\u2145\u2143\3\2\2\2\u2145" + - "\u2146\3\2\2\2\u2146\u0658\3\2\2\2\u2147\u2145\3\2\2\2\u2148\u2149\7(" + - "\2\2\u2149\u065a\3\2\2\2\u214a\u214b\7(\2\2\u214b\u214c\7(\2\2\u214c\u065c" + - "\3\2\2\2\u214d\u214e\7(\2\2\u214e\u214f\7>\2\2\u214f\u065e\3\2\2\2\u2150" + - "\u2151\7B\2\2\u2151\u2152\7B\2\2\u2152\u0660\3\2\2\2\u2153\u2154\7B\2" + - "\2\u2154\u2155\7@\2\2\u2155\u0662\3\2\2\2\u2156\u2157\7B\2\2\u2157\u0664" + - "\3\2\2\2\u2158\u2159\7#\2\2\u2159\u0666\3\2\2\2\u215a\u215b\7#\2\2\u215b" + - "\u215c\7#\2\2\u215c\u0668\3\2\2\2\u215d\u215e\7#\2\2\u215e\u215f\7?\2" + - "\2\u215f\u066a\3\2\2\2\u2160\u2161\7`\2\2\u2161\u066c\3\2\2\2\u2162\u2163" + - "\7?\2\2\u2163\u066e\3\2\2\2\u2164\u2165\7?\2\2\u2165\u2166\7@\2\2\u2166" + - "\u0670\3\2\2\2\u2167\u2168\7@\2\2\u2168\u0672\3\2\2\2\u2169\u216a\7@\2" + - "\2\u216a\u216b\7?\2\2\u216b\u0674\3\2\2\2\u216c\u216d\7@\2\2\u216d\u216e" + - "\7@\2\2\u216e\u0676\3\2\2\2\u216f\u2170\7%\2\2\u2170\u0678\3\2\2\2\u2171" + - "\u2172\7%\2\2\u2172\u2173\7?\2\2\u2173\u067a\3\2\2\2\u2174\u2175\7%\2" + - "\2\u2175\u2176\7@\2\2\u2176\u067c\3\2\2\2\u2177\u2178\7%\2\2\u2178\u2179" + - "\7@\2\2\u2179\u217a\7@\2\2\u217a\u067e\3\2\2\2\u217b\u217c\7%\2\2\u217c" + - "\u217d\7%\2\2\u217d\u0680\3\2\2\2\u217e\u217f\7/\2\2\u217f\u2180\7@\2" + - "\2\u2180\u0682\3\2\2\2\u2181\u2182\7/\2\2\u2182\u2183\7@\2\2\u2183\u2184" + - "\7@\2\2\u2184\u0684\3\2\2\2\u2185\u2186\7/\2\2\u2186\u2187\7~\2\2\u2187" + - "\u2188\7/\2\2\u2188\u0686\3\2\2\2\u2189\u218a\7>\2\2\u218a\u0688\3\2\2" + - "\2\u218b\u218c\7>\2\2\u218c\u218d\7?\2\2\u218d\u068a\3\2\2\2\u218e\u218f" + - "\7>\2\2\u218f\u2190\7B\2\2\u2190\u068c\3\2\2\2\u2191\u2192\7>\2\2\u2192" + - "\u2193\7`\2\2\u2193\u068e\3\2\2\2\u2194\u2195\7>\2\2\u2195\u2196\7@\2" + - "\2\u2196\u0690\3\2\2\2\u2197\u2198\7>\2\2\u2198\u2199\7/\2\2\u2199\u219a" + - "\7@\2\2\u219a\u0692\3\2\2\2\u219b\u219c\7>\2\2\u219c\u219d\7>\2\2\u219d" + - "\u0694\3\2\2\2\u219e\u219f\7>\2\2\u219f\u21a0\7>\2\2\u21a0\u21a1\7?\2" + - "\2\u21a1\u0696\3\2\2\2\u21a2\u21a3\7>\2\2\u21a3\u21a4\7A\2\2\u21a4\u21a5" + - "\7@\2\2\u21a5\u0698\3\2\2\2\u21a6\u21a7\7/\2\2\u21a7\u069a\3\2\2\2\u21a8" + - "\u21a9\7\'\2\2\u21a9\u069c\3\2\2\2\u21aa\u21ab\7~\2\2\u21ab\u069e\3\2" + - "\2\2\u21ac\u21ad\7~\2\2\u21ad\u21ae\7~\2\2\u21ae\u06a0\3\2\2\2\u21af\u21b0" + - "\7~\2\2\u21b0\u21b1\7~\2\2\u21b1\u21b2\7\61\2\2\u21b2\u06a2\3\2\2\2\u21b3" + - "\u21b4\7~\2\2\u21b4\u21b5\7\61\2\2\u21b5\u06a4\3\2\2\2\u21b6\u21b7\7-" + - "\2\2\u21b7\u06a6\3\2\2\2\u21b8\u21b9\7A\2\2\u21b9\u06a8\3\2\2\2\u21ba" + - "\u21bb\7A\2\2\u21bb\u21bc\7(\2\2\u21bc\u06aa\3\2\2\2\u21bd\u21be\7A\2" + - "\2\u21be\u21bf\7%\2\2\u21bf\u06ac\3\2\2\2\u21c0\u21c1\7A\2\2\u21c1\u21c2" + - "\7/\2\2\u21c2\u06ae\3\2\2\2\u21c3\u21c4\7A\2\2\u21c4\u21c5\7~\2\2\u21c5" + - "\u06b0\3\2\2\2\u21c6\u21c7\7\61\2\2\u21c7\u06b2\3\2\2\2\u21c8\u21c9\7" + - "\u0080\2\2\u21c9\u06b4\3\2\2\2\u21ca\u21cb\7\u0080\2\2\u21cb\u21cc\7?" + - "\2\2\u21cc\u06b6\3\2\2\2\u21cd\u21ce\7\u0080\2\2\u21ce\u21cf\7@\2\2\u21cf" + - "\u21d0\7?\2\2\u21d0\u21d1\7\u0080\2\2\u21d1\u06b8\3\2\2\2\u21d2\u21d3" + - "\7\u0080\2\2\u21d3\u21d4\7@\2\2\u21d4\u21d5\7\u0080\2\2\u21d5\u06ba\3" + - "\2\2\2\u21d6\u21d7\7\u0080\2\2\u21d7\u21d8\7>\2\2\u21d8\u21d9\7?\2\2\u21d9" + - "\u21da\7\u0080\2\2\u21da\u06bc\3\2\2\2\u21db\u21dc\7\u0080\2\2\u21dc\u21dd" + - "\7>\2\2\u21dd\u21de\7\u0080\2\2\u21de\u06be\3\2\2\2\u21df\u21e0\7\u0080" + - "\2\2\u21e0\u21e1\7,\2\2\u21e1\u06c0\3\2\2\2\u21e2\u21e3\7\u0080\2\2\u21e3" + - "\u21e4\7\u0080\2\2\u21e4\u06c2\3\2\2\2\u21e5\u21e6\7=\2\2\u21e6\u06c4" + - "\3\2\2\2\32\2\u06c8\u06d2\u06e0\u0725\u0727\u0732\u0734\u073f\u0741\u20f7" + - "\u2100\u2105\u210b\u2111\u2117\u2119\u211c\u2121\u2127\u2129\u2138\u213f" + - "\u2145\4\b\2\2\2\3\2"; - public static final String _serializedATN = Utils.join( - new String[]{ - _serializedATNSegment0, - _serializedATNSegment1, - _serializedATNSegment2, - _serializedATNSegment3 - }, - "" - ); - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + @Override + public ATN getATN() { return _ATN; } - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } + private static final int _serializedATNSegments = 4; + private static final String _serializedATNSegment0 = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u0343\u21da\b\1\4"+ + "\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n"+ + "\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+ + "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"+ + "\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t"+ + " \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t"+ + "+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64"+ + "\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t"+ + "=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4"+ + "I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\t"+ + "T\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_"+ + "\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k"+ + "\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv"+ + "\4w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t"+ + "\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084"+ + "\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089"+ + "\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d"+ + "\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092"+ + "\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096"+ + "\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b"+ + "\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f"+ + "\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4"+ + "\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8"+ + "\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad"+ + "\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1"+ + "\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6"+ + "\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba"+ + "\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf"+ + "\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3"+ + "\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8"+ + "\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc"+ + "\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1"+ + "\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5"+ + "\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da"+ + "\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de"+ + "\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3"+ + "\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7"+ + "\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec"+ + "\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0"+ + "\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5"+ + "\t\u00f5\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9"+ + "\4\u00fa\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe"+ + "\t\u00fe\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102"+ + "\4\u0103\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107"+ + "\t\u0107\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\4\u010b\t\u010b"+ + "\4\u010c\t\u010c\4\u010d\t\u010d\4\u010e\t\u010e\4\u010f\t\u010f\4\u0110"+ + "\t\u0110\4\u0111\t\u0111\4\u0112\t\u0112\4\u0113\t\u0113\4\u0114\t\u0114"+ + "\4\u0115\t\u0115\4\u0116\t\u0116\4\u0117\t\u0117\4\u0118\t\u0118\4\u0119"+ + "\t\u0119\4\u011a\t\u011a\4\u011b\t\u011b\4\u011c\t\u011c\4\u011d\t\u011d"+ + "\4\u011e\t\u011e\4\u011f\t\u011f\4\u0120\t\u0120\4\u0121\t\u0121\4\u0122"+ + "\t\u0122\4\u0123\t\u0123\4\u0124\t\u0124\4\u0125\t\u0125\4\u0126\t\u0126"+ + "\4\u0127\t\u0127\4\u0128\t\u0128\4\u0129\t\u0129\4\u012a\t\u012a\4\u012b"+ + "\t\u012b\4\u012c\t\u012c\4\u012d\t\u012d\4\u012e\t\u012e\4\u012f\t\u012f"+ + "\4\u0130\t\u0130\4\u0131\t\u0131\4\u0132\t\u0132\4\u0133\t\u0133\4\u0134"+ + "\t\u0134\4\u0135\t\u0135\4\u0136\t\u0136\4\u0137\t\u0137\4\u0138\t\u0138"+ + "\4\u0139\t\u0139\4\u013a\t\u013a\4\u013b\t\u013b\4\u013c\t\u013c\4\u013d"+ + "\t\u013d\4\u013e\t\u013e\4\u013f\t\u013f\4\u0140\t\u0140\4\u0141\t\u0141"+ + "\4\u0142\t\u0142\4\u0143\t\u0143\4\u0144\t\u0144\4\u0145\t\u0145\4\u0146"+ + "\t\u0146\4\u0147\t\u0147\4\u0148\t\u0148\4\u0149\t\u0149\4\u014a\t\u014a"+ + "\4\u014b\t\u014b\4\u014c\t\u014c\4\u014d\t\u014d\4\u014e\t\u014e\4\u014f"+ + "\t\u014f\4\u0150\t\u0150\4\u0151\t\u0151\4\u0152\t\u0152\4\u0153\t\u0153"+ + "\4\u0154\t\u0154\4\u0155\t\u0155\4\u0156\t\u0156\4\u0157\t\u0157\4\u0158"+ + "\t\u0158\4\u0159\t\u0159\4\u015a\t\u015a\4\u015b\t\u015b\4\u015c\t\u015c"+ + "\4\u015d\t\u015d\4\u015e\t\u015e\4\u015f\t\u015f\4\u0160\t\u0160\4\u0161"+ + "\t\u0161\4\u0162\t\u0162\4\u0163\t\u0163\4\u0164\t\u0164\4\u0165\t\u0165"+ + "\4\u0166\t\u0166\4\u0167\t\u0167\4\u0168\t\u0168\4\u0169\t\u0169\4\u016a"+ + "\t\u016a\4\u016b\t\u016b\4\u016c\t\u016c\4\u016d\t\u016d\4\u016e\t\u016e"+ + "\4\u016f\t\u016f\4\u0170\t\u0170\4\u0171\t\u0171\4\u0172\t\u0172\4\u0173"+ + "\t\u0173\4\u0174\t\u0174\4\u0175\t\u0175\4\u0176\t\u0176\4\u0177\t\u0177"+ + "\4\u0178\t\u0178\4\u0179\t\u0179\4\u017a\t\u017a\4\u017b\t\u017b\4\u017c"+ + "\t\u017c\4\u017d\t\u017d\4\u017e\t\u017e\4\u017f\t\u017f\4\u0180\t\u0180"+ + "\4\u0181\t\u0181\4\u0182\t\u0182\4\u0183\t\u0183\4\u0184\t\u0184\4\u0185"+ + "\t\u0185\4\u0186\t\u0186\4\u0187\t\u0187\4\u0188\t\u0188\4\u0189\t\u0189"+ + "\4\u018a\t\u018a\4\u018b\t\u018b\4\u018c\t\u018c\4\u018d\t\u018d\4\u018e"+ + "\t\u018e\4\u018f\t\u018f\4\u0190\t\u0190\4\u0191\t\u0191\4\u0192\t\u0192"+ + "\4\u0193\t\u0193\4\u0194\t\u0194\4\u0195\t\u0195\4\u0196\t\u0196\4\u0197"+ + "\t\u0197\4\u0198\t\u0198\4\u0199\t\u0199\4\u019a\t\u019a\4\u019b\t\u019b"+ + "\4\u019c\t\u019c\4\u019d\t\u019d\4\u019e\t\u019e\4\u019f\t\u019f\4\u01a0"+ + "\t\u01a0\4\u01a1\t\u01a1\4\u01a2\t\u01a2\4\u01a3\t\u01a3\4\u01a4\t\u01a4"+ + "\4\u01a5\t\u01a5\4\u01a6\t\u01a6\4\u01a7\t\u01a7\4\u01a8\t\u01a8\4\u01a9"+ + "\t\u01a9\4\u01aa\t\u01aa\4\u01ab\t\u01ab\4\u01ac\t\u01ac\4\u01ad\t\u01ad"+ + "\4\u01ae\t\u01ae\4\u01af\t\u01af\4\u01b0\t\u01b0\4\u01b1\t\u01b1\4\u01b2"+ + "\t\u01b2\4\u01b3\t\u01b3\4\u01b4\t\u01b4\4\u01b5\t\u01b5\4\u01b6\t\u01b6"+ + "\4\u01b7\t\u01b7\4\u01b8\t\u01b8\4\u01b9\t\u01b9\4\u01ba\t\u01ba\4\u01bb"+ + "\t\u01bb\4\u01bc\t\u01bc\4\u01bd\t\u01bd\4\u01be\t\u01be\4\u01bf\t\u01bf"+ + "\4\u01c0\t\u01c0\4\u01c1\t\u01c1\4\u01c2\t\u01c2\4\u01c3\t\u01c3\4\u01c4"+ + "\t\u01c4\4\u01c5\t\u01c5\4\u01c6\t\u01c6\4\u01c7\t\u01c7\4\u01c8\t\u01c8"+ + "\4\u01c9\t\u01c9\4\u01ca\t\u01ca\4\u01cb\t\u01cb\4\u01cc\t\u01cc\4\u01cd"+ + "\t\u01cd\4\u01ce\t\u01ce\4\u01cf\t\u01cf\4\u01d0\t\u01d0\4\u01d1\t\u01d1"+ + "\4\u01d2\t\u01d2\4\u01d3\t\u01d3\4\u01d4\t\u01d4\4\u01d5\t\u01d5\4\u01d6"+ + "\t\u01d6\4\u01d7\t\u01d7\4\u01d8\t\u01d8\4\u01d9\t\u01d9\4\u01da\t\u01da"+ + "\4\u01db\t\u01db\4\u01dc\t\u01dc\4\u01dd\t\u01dd\4\u01de\t\u01de\4\u01df"+ + "\t\u01df\4\u01e0\t\u01e0\4\u01e1\t\u01e1\4\u01e2\t\u01e2\4\u01e3\t\u01e3"+ + "\4\u01e4\t\u01e4\4\u01e5\t\u01e5\4\u01e6\t\u01e6\4\u01e7\t\u01e7\4\u01e8"+ + "\t\u01e8\4\u01e9\t\u01e9\4\u01ea\t\u01ea\4\u01eb\t\u01eb\4\u01ec\t\u01ec"+ + "\4\u01ed\t\u01ed\4\u01ee\t\u01ee\4\u01ef\t\u01ef\4\u01f0\t\u01f0\4\u01f1"+ + "\t\u01f1\4\u01f2\t\u01f2\4\u01f3\t\u01f3\4\u01f4\t\u01f4\4\u01f5\t\u01f5"+ + "\4\u01f6\t\u01f6\4\u01f7\t\u01f7\4\u01f8\t\u01f8\4\u01f9\t\u01f9\4\u01fa"+ + "\t\u01fa\4\u01fb\t\u01fb\4\u01fc\t\u01fc\4\u01fd\t\u01fd\4\u01fe\t\u01fe"+ + "\4\u01ff\t\u01ff\4\u0200\t\u0200\4\u0201\t\u0201\4\u0202\t\u0202\4\u0203"+ + "\t\u0203\4\u0204\t\u0204\4\u0205\t\u0205\4\u0206\t\u0206\4\u0207\t\u0207"+ + "\4\u0208\t\u0208\4\u0209\t\u0209\4\u020a\t\u020a\4\u020b\t\u020b\4\u020c"+ + "\t\u020c\4\u020d\t\u020d\4\u020e\t\u020e\4\u020f\t\u020f\4\u0210\t\u0210"+ + "\4\u0211\t\u0211\4\u0212\t\u0212\4\u0213\t\u0213\4\u0214\t\u0214\4\u0215"+ + "\t\u0215\4\u0216\t\u0216\4\u0217\t\u0217\4\u0218\t\u0218\4\u0219\t\u0219"+ + "\4\u021a\t\u021a\4\u021b\t\u021b\4\u021c\t\u021c\4\u021d\t\u021d\4\u021e"+ + "\t\u021e\4\u021f\t\u021f\4\u0220\t\u0220\4\u0221\t\u0221\4\u0222\t\u0222"+ + "\4\u0223\t\u0223\4\u0224\t\u0224\4\u0225\t\u0225\4\u0226\t\u0226\4\u0227"+ + "\t\u0227\4\u0228\t\u0228\4\u0229\t\u0229\4\u022a\t\u022a\4\u022b\t\u022b"+ + "\4\u022c\t\u022c\4\u022d\t\u022d\4\u022e\t\u022e\4\u022f\t\u022f\4\u0230"+ + "\t\u0230\4\u0231\t\u0231\4\u0232\t\u0232\4\u0233\t\u0233\4\u0234\t\u0234"+ + "\4\u0235\t\u0235\4\u0236\t\u0236\4\u0237\t\u0237\4\u0238\t\u0238\4\u0239"+ + "\t\u0239\4\u023a\t\u023a\4\u023b\t\u023b\4\u023c\t\u023c\4\u023d\t\u023d"+ + "\4\u023e\t\u023e\4\u023f\t\u023f\4\u0240\t\u0240\4\u0241\t\u0241\4\u0242"+ + "\t\u0242\4\u0243\t\u0243\4\u0244\t\u0244\4\u0245\t\u0245\4\u0246\t\u0246"+ + "\4\u0247\t\u0247\4\u0248\t\u0248\4\u0249\t\u0249\4\u024a\t\u024a\4\u024b"+ + "\t\u024b\4\u024c\t\u024c\4\u024d\t\u024d\4\u024e\t\u024e\4\u024f\t\u024f"+ + "\4\u0250\t\u0250\4\u0251\t\u0251\4\u0252\t\u0252\4\u0253\t\u0253\4\u0254"+ + "\t\u0254\4\u0255\t\u0255\4\u0256\t\u0256\4\u0257\t\u0257\4\u0258\t\u0258"+ + "\4\u0259\t\u0259\4\u025a\t\u025a\4\u025b\t\u025b\4\u025c\t\u025c\4\u025d"+ + "\t\u025d\4\u025e\t\u025e\4\u025f\t\u025f\4\u0260\t\u0260\4\u0261\t\u0261"+ + "\4\u0262\t\u0262\4\u0263\t\u0263\4\u0264\t\u0264\4\u0265\t\u0265\4\u0266"+ + "\t\u0266\4\u0267\t\u0267\4\u0268\t\u0268\4\u0269\t\u0269\4\u026a\t\u026a"+ + "\4\u026b\t\u026b\4\u026c\t\u026c\4\u026d\t\u026d\4\u026e\t\u026e\4\u026f"+ + "\t\u026f\4\u0270\t\u0270\4\u0271\t\u0271\4\u0272\t\u0272\4\u0273\t\u0273"+ + "\4\u0274\t\u0274\4\u0275\t\u0275\4\u0276\t\u0276\4\u0277\t\u0277\4\u0278"+ + "\t\u0278\4\u0279\t\u0279\4\u027a\t\u027a\4\u027b\t\u027b\4\u027c\t\u027c"+ + "\4\u027d\t\u027d\4\u027e\t\u027e\4\u027f\t\u027f\4\u0280\t\u0280\4\u0281"+ + "\t\u0281\4\u0282\t\u0282\4\u0283\t\u0283\4\u0284\t\u0284\4\u0285\t\u0285"+ + "\4\u0286\t\u0286\4\u0287\t\u0287\4\u0288\t\u0288\4\u0289\t\u0289\4\u028a"+ + "\t\u028a\4\u028b\t\u028b\4\u028c\t\u028c\4\u028d\t\u028d\4\u028e\t\u028e"+ + "\4\u028f\t\u028f\4\u0290\t\u0290\4\u0291\t\u0291\4\u0292\t\u0292\4\u0293"+ + "\t\u0293\4\u0294\t\u0294\4\u0295\t\u0295\4\u0296\t\u0296\4\u0297\t\u0297"+ + "\4\u0298\t\u0298\4\u0299\t\u0299\4\u029a\t\u029a\4\u029b\t\u029b\4\u029c"+ + "\t\u029c\4\u029d\t\u029d\4\u029e\t\u029e\4\u029f\t\u029f\4\u02a0\t\u02a0"+ + "\4\u02a1\t\u02a1\4\u02a2\t\u02a2\4\u02a3\t\u02a3\4\u02a4\t\u02a4\4\u02a5"+ + "\t\u02a5\4\u02a6\t\u02a6\4\u02a7\t\u02a7\4\u02a8\t\u02a8\4\u02a9\t\u02a9"+ + "\4\u02aa\t\u02aa\4\u02ab\t\u02ab\4\u02ac\t\u02ac\4\u02ad\t\u02ad\4\u02ae"+ + "\t\u02ae\4\u02af\t\u02af\4\u02b0\t\u02b0\4\u02b1\t\u02b1\4\u02b2\t\u02b2"+ + "\4\u02b3\t\u02b3\4\u02b4\t\u02b4\4\u02b5\t\u02b5\4\u02b6\t\u02b6\4\u02b7"+ + "\t\u02b7\4\u02b8\t\u02b8\4\u02b9\t\u02b9\4\u02ba\t\u02ba\4\u02bb\t\u02bb"+ + "\4\u02bc\t\u02bc\4\u02bd\t\u02bd\4\u02be\t\u02be\4\u02bf\t\u02bf\4\u02c0"+ + "\t\u02c0\4\u02c1\t\u02c1\4\u02c2\t\u02c2\4\u02c3\t\u02c3\4\u02c4\t\u02c4"+ + "\4\u02c5\t\u02c5\4\u02c6\t\u02c6\4\u02c7\t\u02c7\4\u02c8\t\u02c8\4\u02c9"+ + "\t\u02c9\4\u02ca\t\u02ca\4\u02cb\t\u02cb\4\u02cc\t\u02cc\4\u02cd\t\u02cd"+ + "\4\u02ce\t\u02ce\4\u02cf\t\u02cf\4\u02d0\t\u02d0\4\u02d1\t\u02d1\4\u02d2"+ + "\t\u02d2\4\u02d3\t\u02d3\4\u02d4\t\u02d4\4\u02d5\t\u02d5\4\u02d6\t\u02d6"+ + "\4\u02d7\t\u02d7\4\u02d8\t\u02d8\4\u02d9\t\u02d9\4\u02da\t\u02da\4\u02db"+ + "\t\u02db\4\u02dc\t\u02dc\4\u02dd\t\u02dd\4\u02de\t\u02de\4\u02df\t\u02df"+ + "\4\u02e0\t\u02e0\4\u02e1\t\u02e1\4\u02e2\t\u02e2\4\u02e3\t\u02e3\4\u02e4"+ + "\t\u02e4\4\u02e5\t\u02e5\4\u02e6\t\u02e6\4\u02e7\t\u02e7\4\u02e8\t\u02e8"+ + "\4\u02e9\t\u02e9\4\u02ea\t\u02ea\4\u02eb\t\u02eb\4\u02ec\t\u02ec\4\u02ed"+ + "\t\u02ed\4\u02ee\t\u02ee\4\u02ef\t\u02ef\4\u02f0\t\u02f0\4\u02f1\t\u02f1"+ + "\4\u02f2\t\u02f2\4\u02f3\t\u02f3\4\u02f4\t\u02f4\4\u02f5\t\u02f5\4\u02f6"+ + "\t\u02f6\4\u02f7\t\u02f7\4\u02f8\t\u02f8\4\u02f9\t\u02f9\4\u02fa\t\u02fa"+ + "\4\u02fb\t\u02fb\4\u02fc\t\u02fc\4\u02fd\t\u02fd\4\u02fe\t\u02fe\4\u02ff"+ + "\t\u02ff\4\u0300\t\u0300\4\u0301\t\u0301\4\u0302\t\u0302\4\u0303\t\u0303"+ + "\4\u0304\t\u0304\4\u0305\t\u0305\4\u0306\t\u0306\4\u0307\t\u0307\4\u0308"+ + "\t\u0308\4\u0309\t\u0309\4\u030a\t\u030a\4\u030b\t\u030b\4\u030c\t\u030c"+ + "\4\u030d\t\u030d\4\u030e\t\u030e\4\u030f\t\u030f\4\u0310\t\u0310\4\u0311"+ + "\t\u0311\4\u0312\t\u0312\4\u0313\t\u0313\4\u0314\t\u0314\4\u0315\t\u0315"+ + "\4\u0316\t\u0316\4\u0317\t\u0317\4\u0318\t\u0318\4\u0319\t\u0319\4\u031a"+ + "\t\u031a\4\u031b\t\u031b\4\u031c\t\u031c\4\u031d\t\u031d\4\u031e\t\u031e"+ + "\4\u031f\t\u031f\4\u0320\t\u0320\4\u0321\t\u0321\4\u0322\t\u0322\4\u0323"+ + "\t\u0323\4\u0324\t\u0324\4\u0325\t\u0325\4\u0326\t\u0326\4\u0327\t\u0327"+ + "\4\u0328\t\u0328\4\u0329\t\u0329\4\u032a\t\u032a\4\u032b\t\u032b\4\u032c"+ + "\t\u032c\4\u032d\t\u032d\4\u032e\t\u032e\4\u032f\t\u032f\4\u0330\t\u0330"+ + "\4\u0331\t\u0331\4\u0332\t\u0332\4\u0333\t\u0333\4\u0334\t\u0334\4\u0335"+ + "\t\u0335\4\u0336\t\u0336\4\u0337\t\u0337\4\u0338\t\u0338\4\u0339\t\u0339"+ + "\4\u033a\t\u033a\4\u033b\t\u033b\4\u033c\t\u033c\4\u033d\t\u033d\4\u033e"+ + "\t\u033e\4\u033f\t\u033f\4\u0340\t\u0340\4\u0341\t\u0341\4\u0342\t\u0342"+ + "\4\u0343\t\u0343\4\u0344\t\u0344\4\u0345\t\u0345\4\u0346\t\u0346\4\u0347"+ + "\t\u0347\4\u0348\t\u0348\4\u0349\t\u0349\4\u034a\t\u034a\4\u034b\t\u034b"+ + "\4\u034c\t\u034c\4\u034d\t\u034d\4\u034e\t\u034e\4\u034f\t\u034f\4\u0350"+ + "\t\u0350\4\u0351\t\u0351\4\u0352\t\u0352\4\u0353\t\u0353\4\u0354\t\u0354"+ + "\4\u0355\t\u0355\4\u0356\t\u0356\4\u0357\t\u0357\4\u0358\t\u0358\4\u0359"+ + "\t\u0359\4\u035a\t\u035a\4\u035b\t\u035b\4\u035c\t\u035c\4\u035d\t\u035d"+ + "\4\u035e\t\u035e\4\u035f\t\u035f\4\u0360\t\u0360\4\u0361\t\u0361\3\2\6"+ + "\2\u06c5\n\2\r\2\16\2\u06c6\3\2\3\2\3\3\3\3\3\3\3\3\7\3\u06cf\n\3\f\3"+ + "\16\3\u06d2\13\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\7\4\u06dd\n\4\f\4"+ + "\16\4\u06e0\13\4\3\4\3\4\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3"+ + "\t\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21"+ + "\3\21\3\22\3\22\3\23\3\23\3\24\3\24\3\25\3\25\3\26\3\26\3\27\3\27\3\30"+ + "\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37"+ + "\3\37\3 \3 \3!\3!\3!\3!\3!\3!\7!\u0724\n!\f!\16!\u0727\13!\3!\3!\3\"\3"+ + "\"\3\"\3\"\3\"\3\"\7\"\u0731\n\"\f\"\16\"\u0734\13\"\3\"\3\"\3#\3#\3#"+ + "\3#\3#\3#\7#\u073e\n#\f#\16#\u0741\13#\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"+ + ")\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.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3\60\3\60\3"+ + "\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3"+ + "\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\64\3"+ + "\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\66\3"+ + "\66\3\66\3\66\3\67\3\67\3\67\3\67\38\38\38\38\39\39\39\39\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>\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@\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3C\3C\3C\3C\3C\3C\3C"+ + "\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3E\3E\3E\3E\3E\3E\3E\3E\3E"+ + "\3E\3E\3E\3E\3E\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G\3H\3H\3H\3H\3H"+ + "\3H\3H\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3K\3K\3K\3K\3K"+ + "\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3O\3O"+ + "\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3R\3R"+ + "\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3T\3U\3U\3U\3U"+ + "\3U\3U\3U\3U\3V\3V\3V\3W\3W\3X\3X\3X\3X\3X\3X\3Y\3Y\3Y\3Y\3Y\3Z\3Z\3Z"+ + "\3Z\3Z\3Z\3Z\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^\3^\3^\3^\3_\3_\3_\3_\3_\3"+ + "`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3b\3b\3"+ + "b\3b\3b\3c\3c\3c\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3f\3"+ + "f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3h\3h\3"+ + "h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3i\3i\3i\3i\3i\3"+ + "i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3j\3j\3j\3j\3j\3j\3j\3j\3j\3"+ + "j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3"+ + "k\3k\3k\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3"+ + "l\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3n\3o\3o\3o\3o\3o\3"+ + "o\3o\3o\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3q\3q\3q\3q\3q\3q\3r\3r\3r\3"+ + "r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3t\3u\3u\3"+ + "u\3u\3u\3u\3u\3u\3v\3v\3v\3v\3v\3v\3v\3v\3v\3w\3w\3w\3w\3w\3w\3x\3x\3"+ + "x\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3y\3y\3y\3y\3y\3z\3z\3z\3z\3z\3z\3z\3"+ + "z\3z\3z\3z\3z\3z\3z\3z\3z\3z\3z\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|\3|\3}\3}\3}\3"+ + "}\3}\3}\3}\3}\3~\3~\3~\3~\3~\3~\3~\3\177\3\177\3\177\3\177\3\177\3\177"+ + "\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3\u0080\3\u0080\3"+ + "\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080"+ + "\3\u0080\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081"+ + "\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081"+ + "\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0082"+ + "\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0083\3\u0083"+ + "\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084\3\u0084"+ + "\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085\3\u0085\3\u0085"+ + "\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0086"+ + "\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086"+ + "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087"+ + "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0088"+ + "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088"+ + "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089"+ + "\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a"+ + "\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b"+ + "\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c\3\u008c"+ + "\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c"+ + "\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d"+ + "\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e\3\u008e"+ + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ + "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f"+ + "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+ + "\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090"+ + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090"+ + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091"+ + "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0092\3\u0092"+ + "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092"+ + "\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093"+ + "\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094"+ + "\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095"+ + "\3\u0095\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ + "\3\u0096\3\u0096\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0098\3\u0098"+ + "\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099"+ + "\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u009a"+ + "\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b\3\u009b"+ + "\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c"+ + "\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d"+ + "\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e\3\u009e"+ + "\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f"+ + "\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0"+ + "\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1"+ + "\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3\3\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4"+ + "\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5"+ + "\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6"+ + "\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7"+ + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7"+ + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7"+ + "\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7"+ + "\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8"+ + "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\3\u00a9"+ + "\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ + "\3\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa"+ + "\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ + "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ + "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+ + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+ + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+ + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+ + "\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\3\u00ae\3\u00ae"+ + "\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af"+ + "\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00b0\3\u00b0"+ + "\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1"+ + "\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2"+ + "\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ + "\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b7\3\u00b7\3\u00b7"+ + "\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b8"+ + "\3\u00b8\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ + "\3\u00b9\3\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd"+ + "\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be"+ + "\3\u00be\3\u00be\3\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\3\u00bf\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0"+ + "\3\u00c0\3\u00c0\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c5\3\u00c5"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+ + "\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9"+ + "\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca"+ + "\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cc"+ + "\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ + "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf"+ + "\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0"+ + "\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d0\3\u00d1\3\u00d1"+ + "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1"+ + "\3\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2"+ + "\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3"+ + "\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4"+ + "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4"+ + "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d5\3\u00d5\3\u00d5"+ + "\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d6\3\u00d6\3\u00d6\3\u00d6"+ + "\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d7\3\u00d7"+ + "\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d8\3\u00d8"+ + "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d9\3\u00d9"+ + "\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00db"+ + "\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00dc\3\u00dc\3\u00dc"+ + "\3\u00dc\3\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd"+ + "\3\u00dd\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de"+ + "\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de"+ + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df"+ + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df"+ + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0"+ + "\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e2"+ + "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ + "\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ + "\3\u00e5\3\u00e5\3\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e7\3\u00e7"+ + "\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8"+ + "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9"+ + "\3\u00e9\3\u00e9\3\u00e9\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea"+ + "\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00ec\3\u00ec"+ + "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ed"+ + "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ee\3\u00ee"+ + "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f1"+ + "\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2"+ + "\3\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3"+ + "\3\u00f3\3\u00f3\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f5\3\u00f5\3\u00f5"+ + "\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f6\3\u00f6\3\u00f6\3\u00f6"+ + "\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f7\3\u00f7\3\u00f7\3\u00f7"+ + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f8\3\u00f8\3\u00f8"+ + "\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f9\3\u00f9\3\u00f9"+ + "\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00f9\3\u00fa\3\u00fa\3\u00fa\3\u00fa"+ + "\3\u00fa\3\u00fa\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fc\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fe\3\u00fe\3\u00fe\3\u00fe\3\u00fe"+ + "\3\u00fe\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u00ff\3\u0100\3\u0100"+ + "\3\u0100\3\u0100\3\u0100\3\u0100\3\u0101\3\u0101\3\u0101\3\u0101\3\u0101"+ + "\3\u0101\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102\3\u0102"+ + "\3\u0102\3\u0102\3\u0103\3\u0103\3\u0103\3\u0103\3\u0104\3\u0104\3\u0104"+ + "\3\u0104\3\u0104\3\u0104\3\u0105\3\u0105\3\u0105\3\u0105\3\u0105\3\u0105"+ + "\3\u0105\3\u0105\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106\3\u0106"+ + "\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0107\3\u0108"+ + "\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0108\3\u0109\3\u0109"+ + "\3\u0109\3\u0109\3\u0109\3\u0109\3\u010a\3\u010a\3\u010a\3\u010a\3\u010a"+ + "\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010b\3\u010c\3\u010c"+ + "\3\u010c\3\u010c\3\u010c\3\u010d\3\u010d\3\u010d\3\u010d\3\u010d\3\u010e"+ + "\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010e\3\u010f"+ + "\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u010f\3\u0110\3\u0110\3\u0111"+ + "\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0111\3\u0112\3\u0112"+ + "\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0112\3\u0113"+ + "\3\u0113\3\u0113\3\u0113\3\u0114\3\u0114\3\u0114\3\u0114\3\u0114\3\u0114"+ + "\3\u0114\3\u0115\3\u0115\3\u0115\3\u0116\3\u0116\3\u0116\3\u0116\3\u0116"+ + "\3\u0117\3\u0117\3\u0117\3\u0117\3\u0117\3\u0117\3\u0118\3\u0118\3\u0118"+ + "\3\u0118\3\u0118\3\u0118\3\u0118\3\u0118\3\u0119\3\u0119\3\u0119\3\u0119"+ + "\3\u0119\3\u0119\3\u0119\3\u0119\3\u0119\3\u011a\3\u011a\3\u011a\3\u011a"+ + "\3\u011a\3\u011a\3\u011b\3\u011b\3\u011b\3\u011b\3\u011b\3\u011b\3\u011b"+ + "\3\u011b\3\u011b\3\u011c\3\u011c\3\u011c\3\u011c\3\u011c\3\u011c\3\u011c"+ + "\3\u011c\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d\3\u011d\3\u011e"+ + "\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e\3\u011e"+ + "\3\u011f\3\u011f\3\u011f\3\u011f\3\u011f\3\u0120\3\u0120\3\u0120\3\u0120"+ + "\3\u0120\3\u0121\3\u0121\3\u0121\3\u0121\3\u0121\3\u0122\3\u0122\3\u0122"+ + "\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0122\3\u0123\3\u0123\3\u0123"+ + "\3\u0123\3\u0123\3\u0123\3\u0123\3\u0124\3\u0124\3\u0124\3\u0124\3\u0124"+ + "\3\u0124\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125\3\u0125"+ + "\3\u0125\3\u0125\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126\3\u0126"+ + "\3\u0126\3\u0126\3\u0126\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127"+ + "\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127\3\u0127"+ + "\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128\3\u0128"+ + "\3\u0129\3\u0129\3\u0129\3\u012a\3\u012a\3\u012a\3\u012a\3\u012a\3\u012a"+ + "\3\u012a\3\u012a\3\u012a\3\u012a\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b"+ + "\3\u012b\3\u012b\3\u012b\3\u012b\3\u012b\3\u012c\3\u012c\3\u012c\3\u012c"+ + "\3\u012c\3\u012c\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d\3\u012d"+ + "\3\u012d\3\u012d\3\u012d\3\u012e\3\u012e\3\u012e\3\u012e\3\u012e\3\u012e"+ + "\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f\3\u012f"+ + "\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130\3\u0130"+ + "\3\u0130\3\u0130\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131\3\u0131"+ + "\3\u0131\3\u0131\3\u0131\3\u0132\3\u0132\3\u0132\3\u0132\3\u0132\3\u0132"+ + "\3\u0133\3\u0133\3\u0133\3\u0133\3\u0133\3\u0133\3\u0134\3\u0134\3\u0134"+ + "\3\u0134\3\u0134\3\u0134\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135"+ + "\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0135\3\u0136\3\u0136\3\u0136"+ + "\3\u0136\3\u0136\3\u0136\3\u0136\3\u0137\3\u0137\3\u0137\3\u0137\3\u0137"+ + "\3\u0137\3\u0137\3\u0137\3\u0137\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138"+ + "\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0138\3\u0139"+ + "\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u0139\3\u013a\3\u013a"+ + "\3\u013a\3\u013a\3\u013b\3\u013b\3\u013b\3\u013b\3\u013b\3\u013b\3\u013b"+ + "\3\u013b\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c\3\u013c"+ + "\3\u013c\3\u013c\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d"+ + "\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013d\3\u013e\3\u013e\3\u013e"+ + "\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013e\3\u013f\3\u013f\3\u013f"+ + "\3\u013f\3\u013f\3\u0140\3\u0140\3\u0140\3\u0140\3\u0140\3\u0140\3\u0140"+ + "\3\u0140\3\u0141\3\u0141\3\u0141\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142"+ + "\3\u0142\3\u0142\3\u0142\3\u0142\3\u0142\3\u0143\3\u0143\3\u0143\3\u0143"+ + "\3\u0143\3\u0143\3\u0143\3\u0143\3\u0144\3\u0144\3\u0144\3\u0144\3\u0144"+ + "\3\u0145\3\u0145\3\u0146\3\u0146\3\u0146\3\u0146\3\u0147\3\u0147\3\u0147"+ + "\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0147\3\u0148"+ + "\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0148\3\u0149"+ + "\3\u0149\3\u0149\3\u0149\3\u0149\3\u0149\3\u014a\3\u014a\3\u014a\3\u014a"+ + "\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014a\3\u014b"+ + "\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014b\3\u014c"+ + "\3\u014c\3\u014c\3\u014c\3\u014c\3\u014c\3\u014d\3\u014d\3\u014d\3\u014d"+ + "\3\u014d\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e\3\u014e"+ + "\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u014f\3\u0150"+ + "\3\u0150\3\u0150\3\u0150\3\u0150\3\u0150\3\u0151\3\u0151\3\u0151\3\u0151"+ + "\3\u0151\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152\3\u0152\3\u0153"+ + "\3\u0153\3\u0153\3\u0153\3\u0153\3\u0154\3\u0154\3\u0154\3\u0154\3\u0154"+ + "\3\u0154\3\u0155\3\u0155\3\u0155\3\u0155\3\u0155\3\u0156\3\u0156\3\u0156"+ + "\3\u0156\3\u0156\3\u0156\3\u0157\3\u0157\3\u0157\3\u0157\3\u0157\3\u0157"+ + "\3\u0157\3\u0158\3\u0158\3\u0158\3\u0159\3\u0159\3\u0159\3\u0159\3\u0159"+ + "\3\u015a\3\u015a\3\u015a\3\u015a\3\u015a\3\u015a\3\u015b\3\u015b\3\u015b"+ + "\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015b\3\u015c\3\u015c"+ + "\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c\3\u015c"+ + "\3\u015c\3\u015c\3\u015c\3\u015c\3\u015d\3\u015d\3\u015d\3\u015d\3\u015d"+ + "\3\u015d\3\u015d\3\u015d\3\u015d\3\u015e\3\u015e\3\u015e\3\u015e\3\u015e"+ + "\3\u015e\3\u015e\3\u015e\3\u015f\3\u015f\3\u015f\3\u015f\3\u015f\3\u0160"+ + "\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0160\3\u0161\3\u0161\3\u0161"+ + "\3\u0161\3\u0161\3\u0161\3\u0162\3\u0162\3\u0163\3\u0163\3\u0163\3\u0163"+ + "\3\u0163\3\u0164\3\u0164\3\u0164\3\u0164\3\u0165\3\u0165\3\u0165\3\u0165"+ + "\3\u0165\3\u0165\3\u0165\3\u0165\3\u0166\3\u0166\3\u0166\3\u0166\3\u0166"+ + "\3\u0166\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167"+ + "\3\u0167\3\u0167\3\u0167\3\u0167\3\u0167\3\u0168\3\u0168\3\u0168\3\u0168"+ + "\3\u0168\3\u0168\3\u0168\3\u0168\3\u0169\3\u0169\3\u0169\3\u0169\3\u016a"+ + "\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016a\3\u016b"+ + "\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016b\3\u016c\3\u016c\3\u016c"+ + "\3\u016c\3\u016c\3\u016c\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d"+ + "\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d\3\u016d"+ + "\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e"+ + "\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e\3\u016e"+ + "\3\u016e\3\u016e\3\u016e\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f"+ + "\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u016f\3\u0170\3\u0170"+ + "\3\u0170\3\u0170\3\u0170\3\u0170\3\u0170\3\u0171\3\u0171\3\u0171\3\u0171"+ + "\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0172\3\u0173\3\u0173"+ + "\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0173\3\u0174\3\u0174"+ + "\3\u0174\3\u0174\3\u0175\3\u0175\3\u0175\3\u0175\3\u0175\3\u0176\3\u0176"+ + "\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0176\3\u0177\3\u0177"+ + "\3\u0177\3\u0177\3\u0177\3\u0177\3\u0177\3\u0178\3\u0178\3\u0178\3\u0178"+ + "\3\u0178\3\u0178\3\u0178\3\u0179\3\u0179\3\u0179\3\u0179\3\u0179\3\u0179"+ + "\3\u017a\3\u017a\3\u017a\3\u017a\3\u017a\3\u017b\3\u017b\3\u017b\3\u017b"+ + "\3\u017b\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c\3\u017c"+ + "\3\u017c\3\u017d\3\u017d\3\u017d\3\u017d\3\u017d\3\u017d\3\u017e\3\u017e"+ + "\3\u017e\3\u017e\3\u017e\3\u017f\3\u017f\3\u017f\3\u017f\3\u017f\3\u017f"+ + "\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180\3\u0180"+ + "\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0181\3\u0182"+ + "\3\u0182\3\u0182\3\u0182\3\u0182\3\u0182\3\u0183\3\u0183\3\u0183\3\u0183"+ + "\3\u0183\3\u0183\3\u0184\3\u0184\3\u0184\3\u0184\3\u0184\3\u0184\3\u0184"+ + "\3\u0184\3\u0185\3\u0185\3\u0185\3\u0185\3\u0186\3\u0186\3\u0186\3\u0186"+ + "\3\u0186\3\u0187\3\u0187\3\u0187\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188"+ + "\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0188\3\u0189\3\u0189\3\u0189"+ + "\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189\3\u0189"+ + "\3\u0189\3\u018a\3\u018a\3\u018a\3\u018a\3\u018a\3\u018b\3\u018b\3\u018b"+ + "\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018b\3\u018c\3\u018c"+ + "\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c\3\u018c"+ + "\3\u018d\3\u018d\3\u018d\3\u018d\3\u018e\3\u018e\3\u018e\3\u018e\3\u018e"+ + "\3\u018e\3\u018e\3\u018e\3\u018f\3\u018f\3\u018f\3\u018f\3\u018f\3\u018f"+ + "\3\u018f\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190\3\u0190"+ + "\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0191\3\u0192\3\u0192"+ + "\3\u0192\3\u0192\3\u0192\3\u0193\3\u0193\3\u0193\3\u0193\3\u0193\3\u0193"+ + "\3\u0193\3\u0193\3\u0193\3\u0194\3\u0194\3\u0194\3\u0194\3\u0194\3\u0194"+ + "\3\u0194\3\u0195\3\u0195\3\u0195\3\u0195\3\u0195\3\u0195\3\u0196\3\u0196"+ + "\3\u0196\3\u0196\3\u0196\3\u0196\3\u0196\3\u0197\3\u0197\3\u0197\3\u0197"+ + "\3\u0197\3\u0197\3\u0197\3\u0197\3\u0198\3\u0198\3\u0198\3\u0198\3\u0198"+ + "\3\u0198\3\u0198\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199"+ + "\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u0199\3\u019a\3\u019a\3\u019a"+ + "\3\u019a\3\u019a\3\u019a\3\u019a\3\u019b\3\u019b\3\u019b\3\u019c\3\u019c"+ + "\3\u019c\3\u019c\3\u019d\3\u019d\3\u019d\3\u019d\3\u019d\3\u019d\3\u019d"+ + "\3\u019e\3\u019e\3\u019e\3\u019e\3\u019e\3\u019f\3\u019f\3\u019f\3\u019f"+ + "\3\u01a0\3\u01a0\3\u01a0\3\u01a1\3\u01a1\3\u01a1\3\u01a1\3\u01a1\3\u01a2"+ + "\3\u01a2\3\u01a2\3\u01a2\3\u01a2\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3"+ + "\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a3\3\u01a4\3\u01a4\3\u01a4\3\u01a4"+ + "\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a4\3\u01a5\3\u01a5\3\u01a5\3\u01a5"+ + "\3\u01a5\3\u01a5\3\u01a5\3\u01a6\3\u01a6\3\u01a6\3\u01a6\3\u01a6\3\u01a6"+ + "\3\u01a6\3\u01a6\3\u01a7\3\u01a7\3\u01a7\3\u01a8\3\u01a8\3\u01a8\3\u01a8"+ + "\3\u01a8\3\u01a8\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01a9\3\u01a9"+ + "\3\u01a9\3\u01a9\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01aa"+ + "\3\u01aa\3\u01aa\3\u01aa\3\u01aa\3\u01ab\3\u01ab\3\u01ab\3\u01ab\3\u01ab"+ + "\3\u01ab\3\u01ab\3\u01ac\3\u01ac\3\u01ac\3\u01ac\3\u01ad\3\u01ad\3\u01ad"+ + "\3\u01ad\3\u01ad\3\u01ad\3\u01ae\3\u01ae\3\u01ae\3\u01ae\3\u01ae\3\u01ae"+ + "\3\u01ae\3\u01af\3\u01af\3\u01af\3\u01af\3\u01af\3\u01b0\3\u01b0\3\u01b0"+ + "\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b0\3\u01b1\3\u01b1\3\u01b1"+ + "\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b1\3\u01b2\3\u01b2\3\u01b2\3\u01b2"+ + "\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b2\3\u01b3\3\u01b3"+ + "\3\u01b3\3\u01b3\3\u01b3\3\u01b3\3\u01b4\3\u01b4\3\u01b4\3\u01b4\3\u01b5"+ + "\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5\3\u01b5"+ + "\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6"+ + "\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b6\3\u01b7\3\u01b7\3\u01b7"+ + "\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7\3\u01b7"+ + "\3\u01b7\3\u01b7\3\u01b7\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8"+ + "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8"+ + "\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8\3\u01b8"+ + "\3\u01b8\3\u01b8\3\u01b8\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9"+ + "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9"+ + "\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9\3\u01b9"+ + "\3\u01b9\3\u01b9\3\u01b9\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba"+ + "\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba"+ + "\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba\3\u01ba"+ + "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb"+ + "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb"+ + "\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bb\3\u01bc"+ + "\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc\3\u01bc"+ + "\3\u01bc\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01bd\3\u01be"+ + "\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01be\3\u01bf\3\u01bf"+ + "\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01bf\3\u01c0"+ + "\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c0\3\u01c1\3\u01c1\3\u01c1"+ + "\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c1\3\u01c2\3\u01c2\3\u01c2"+ + "\3\u01c2\3\u01c2\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3"+ + "\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c3\3\u01c4\3\u01c4\3\u01c4"+ + "\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c4"+ + "\3\u01c4\3\u01c4\3\u01c4\3\u01c4\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5"+ + "\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5\3\u01c5"+ + "\3\u01c5\3\u01c5\3\u01c6\3\u01c6\3\u01c6\3\u01c6\3\u01c6\3\u01c6\3\u01c6"+ + "\3\u01c6\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c7\3\u01c8\3\u01c8"+ + "\3\u01c8\3\u01c8\3\u01c8\3\u01c8\3\u01c9\3\u01c9\3\u01c9\3\u01c9\3\u01ca"+ + "\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01ca\3\u01cb"+ + "\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cb\3\u01cc\3\u01cc"+ + "\3\u01cc\3\u01cc\3\u01cc\3\u01cc\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd"+ + "\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01cd\3\u01ce\3\u01ce\3\u01ce\3\u01ce"+ + "\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01ce\3\u01cf\3\u01cf\3\u01cf"+ + "\3\u01cf\3\u01cf\3\u01cf\3\u01cf\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d0"+ + "\3\u01d0\3\u01d0\3\u01d0\3\u01d0\3\u01d1\3\u01d1\3\u01d1\3\u01d1\3\u01d1"+ + "\3\u01d1\3\u01d1\3\u01d1\3\u01d2\3\u01d2\3\u01d2\3\u01d2\3\u01d2\3\u01d2"+ + "\3\u01d2\3\u01d2\3\u01d2\3\u01d3\3\u01d3\3\u01d3\3\u01d3\3\u01d3\3\u01d3"+ + "\3\u01d3\3\u01d3\3\u01d3\3\u01d4\3\u01d4\3\u01d4\3\u01d4\3\u01d4\3\u01d4"+ + "\3\u01d4\3\u01d4\3\u01d5\3\u01d5\3\u01d5\3\u01d5\3\u01d5\3\u01d5\3\u01d6"+ + "\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6\3\u01d6"+ + "\3\u01d6\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7\3\u01d7"+ + "\3\u01d7\3\u01d7\3\u01d7\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d8"+ + "\3\u01d8\3\u01d8\3\u01d8\3\u01d8\3\u01d9\3\u01d9\3\u01d9\3\u01d9\3\u01d9"+ + "\3\u01d9\3\u01d9\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da"+ + "\3\u01da\3\u01da\3\u01da\3\u01da\3\u01da\3\u01db\3\u01db\3\u01db\3\u01db"+ + "\3\u01db\3\u01db\3\u01dc\3\u01dc\3\u01dc\3\u01dc\3\u01dc\3\u01dc\3\u01dd"+ + "\3\u01dd\3\u01dd\3\u01dd\3\u01dd\3\u01de\3\u01de\3\u01de\3\u01de\3\u01de"+ + "\3\u01df\3\u01df\3\u01df\3\u01df\3\u01df\3\u01df\3\u01e0\3\u01e0\3\u01e0"+ + "\3\u01e0\3\u01e0\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e1\3\u01e1"+ + "\3\u01e1\3\u01e1\3\u01e2\3\u01e2\3\u01e2\3\u01e2\3\u01e2\3\u01e2\3\u01e2"+ + "\3\u01e2\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3\3\u01e3"+ + "\3\u01e3\3\u01e3\3\u01e4\3\u01e4\3\u01e4\3\u01e4\3\u01e5\3\u01e5\3\u01e5"+ + "\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e5\3\u01e6"+ + "\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6\3\u01e6"+ + "\3\u01e6\3\u01e6\3\u01e7\3\u01e7\3\u01e7\3\u01e7\3\u01e7\3\u01e7\3\u01e7"+ + "\3\u01e7\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8\3\u01e8"+ + "\3\u01e8\3\u01e8\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9\3\u01e9"+ + "\3\u01e9\3\u01e9\3\u01e9\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea"+ + "\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01ea\3\u01eb\3\u01eb\3\u01eb\3\u01eb"+ + "\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb\3\u01eb"+ + "\3\u01eb\3\u01eb\3\u01ec\3\u01ec\3\u01ec\3\u01ec\3\u01ec\3\u01ec\3\u01ec"+ + "\3\u01ec\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed\3\u01ed"+ + "\3\u01ed\3\u01ed\3\u01ed\3\u01ee\3\u01ee\3\u01ee\3\u01ee\3\u01ee\3\u01ee"+ + "\3\u01ee\3\u01ee\3\u01ee\3\u01ef\3\u01ef\3\u01ef\3\u01ef\3\u01ef\3\u01ef"+ + "\3\u01ef\3\u01ef\3\u01ef\3\u01f0\3\u01f0\3\u01f0\3\u01f0\3\u01f0\3\u01f0"+ + "\3\u01f0\3\u01f0\3\u01f0\3\u01f1\3\u01f1\3\u01f1\3\u01f1\3\u01f1\3\u01f1"+ + "\3\u01f1\3\u01f1\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f2\3\u01f2"+ + "\3\u01f2\3\u01f2\3\u01f3\3\u01f3\3\u01f3\3\u01f3\3\u01f3\3\u01f3\3\u01f3"+ + "\3\u01f3\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f4\3\u01f5"+ + "\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5\3\u01f5"+ + "\3\u01f5\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6\3\u01f6"+ + "\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f7\3\u01f8"+ + "\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f8\3\u01f9\3\u01f9\3\u01f9\3\u01f9"+ + "\3\u01f9\3\u01f9\3\u01f9\3\u01f9\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fa"+ + "\3\u01fa\3\u01fa\3\u01fa\3\u01fa\3\u01fb\3\u01fb\3\u01fb\3\u01fb\3\u01fb"+ + "\3\u01fb\3\u01fb\3\u01fc\3\u01fc\3\u01fc\3\u01fc\3\u01fc\3\u01fc\3\u01fc"+ + "\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd"+ + "\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd\3\u01fd"+ + "\3\u01fd\3\u01fd\3\u01fd\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe"+ + "\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe\3\u01fe"+ + "\3\u01fe\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff"+ + "\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff"+ + "\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u01ff\3\u0200\3\u0200\3\u0200\3\u0200"+ + "\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200"+ + "\3\u0200\3\u0200\3\u0200\3\u0200\3\u0200\3\u0201\3\u0201\3\u0201\3\u0201"+ + "\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0201\3\u0202\3\u0202\3\u0202"+ + "\3\u0202\3\u0202\3\u0202\3\u0202\3\u0202\3\u0203\3\u0203\3\u0203\3\u0203"+ + "\3\u0203\3\u0203\3\u0203\3\u0204\3\u0204\3\u0204\3\u0204\3\u0204\3\u0204"+ + "\3\u0205\3\u0205\3\u0205\3\u0205\3\u0205\3\u0206\3\u0206\3\u0206\3\u0206"+ + "\3\u0206\3\u0206\3\u0206\3\u0206\3\u0206\3\u0207\3\u0207\3\u0207\3\u0207"+ + "\3\u0207\3\u0207\3\u0207\3\u0208\3\u0208\3\u0208\3\u0208\3\u0208\3\u0208"+ + "\3\u0208\3\u0208\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209"+ + "\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209\3\u0209"+ + "\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a\3\u020a"+ + "\3\u020a\3\u020a\3\u020a\3\u020a\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b"+ + "\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b\3\u020b"+ + "\3\u020b\3\u020c\3\u020c\3\u020c\3\u020c\3\u020d\3\u020d\3\u020d\3\u020d"+ + "\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020d\3\u020e\3\u020e\3\u020e"+ + "\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020e\3\u020f"+ + "\3\u020f\3\u020f\3\u020f\3\u020f\3\u0210\3\u0210\3\u0210\3\u0210\3\u0210"+ + "\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211\3\u0211"+ + "\3\u0211\3\u0212\3\u0212\3\u0212\3\u0212\3\u0212\3\u0212\3\u0213\3\u0213"+ + "\3\u0213\3\u0213\3\u0213\3\u0213\3\u0213\3\u0214\3\u0214\3\u0214\3\u0214"+ + "\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0214\3\u0215"+ + "\3\u0215\3\u0215\3\u0215\3\u0215\3\u0215\3\u0216\3\u0216\3\u0216\3\u0216"+ + "\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216\3\u0216"+ + "\3\u0216\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217\3\u0217"+ + "\3\u0217\3\u0217\3\u0217\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218"+ + "\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0218\3\u0219\3\u0219"+ + "\3\u0219\3\u0219\3\u0219\3\u0219\3\u0219\3\u021a\3\u021a\3\u021a\3\u021a"+ + "\3\u021a\3\u021a\3\u021a\3\u021b\3\u021b\3\u021b\3\u021b\3\u021b\3\u021b"+ + "\3\u021b\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c\3\u021c"+ + "\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d\3\u021d"+ + "\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021e\3\u021f\3\u021f"+ + "\3\u021f\3\u021f\3\u021f\3\u0220\3\u0220\3\u0220\3\u0220\3\u0220\3\u0220"+ + "\3\u0220\3\u0220\3\u0220\3\u0220\3\u0221\3\u0221\3\u0221\3\u0221\3\u0221"+ + "\3\u0221\3\u0221\3\u0221\3\u0221\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222"+ + "\3\u0222\3\u0222\3\u0222\3\u0222\3\u0222\3\u0223\3\u0223\3\u0223\3\u0223"+ + "\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223\3\u0223"+ + "\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224\3\u0224"+ + "\3\u0224\3\u0224\3\u0224\3\u0225\3\u0225\3\u0225\3\u0225\3\u0225\3\u0225"+ + "\3\u0225\3\u0225\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226"+ + "\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0226\3\u0227\3\u0227\3\u0227"+ + "\3\u0227\3\u0228\3\u0228\3\u0228\3\u0228\3\u0228\3\u0228\3\u0229\3\u0229"+ + "\3\u0229\3\u0229\3\u0229\3\u022a\3\u022a\3\u022a\3\u022a\3\u022a\3\u022a"+ + "\3\u022b\3\u022b\3\u022b\3\u022b\3\u022b\3\u022c\3\u022c\3\u022c\3\u022c"+ + "\3\u022c\3\u022c\3\u022c\3\u022c\3\u022d\3\u022d\3\u022d\3\u022d\3\u022d"+ + "\3\u022d\3\u022d\3\u022e\3\u022e\3\u022e\3\u022e\3\u022e\3\u022f\3\u022f"+ + "\3\u022f\3\u022f\3\u022f\3\u0230\3\u0230\3\u0230\3\u0230\3\u0230\3\u0230"+ + "\3\u0230\3\u0230\3\u0230\3\u0231\3\u0231\3\u0231\3\u0231\3\u0231\3\u0231"+ + "\3\u0231\3\u0231\3\u0231\3\u0232\3\u0232\3\u0232\3\u0232\3\u0232\3\u0233"+ + "\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0233\3\u0234\3\u0234\3\u0234"+ + "\3\u0234\3\u0234\3\u0234\3\u0235\3\u0235\3\u0235\3\u0235\3\u0235\3\u0235"+ + "\3\u0235\3\u0235\3\u0235\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236"+ + "\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0236\3\u0237"+ + "\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237\3\u0237"+ + "\3\u0237\3\u0237\3\u0237\3\u0238\3\u0238\3\u0238\3\u0238\3\u0239\3\u0239"+ + "\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u0239\3\u023a\3\u023a\3\u023a"+ + "\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023a\3\u023b\3\u023b\3\u023b"+ + "\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b\3\u023b"+ + "\3\u023b\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c\3\u023c"+ + "\3\u023c\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d\3\u023d"+ + "\3\u023d\3\u023d\3\u023d\3\u023e\3\u023e\3\u023e\3\u023e\3\u023e\3\u023f"+ + "\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u023f\3\u0240\3\u0240\3\u0240"+ + "\3\u0240\3\u0240\3\u0240\3\u0241\3\u0241\3\u0241\3\u0241\3\u0241\3\u0241"+ + "\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242\3\u0242"+ + "\3\u0242\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243\3\u0243\3\u0244"+ + "\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244\3\u0244"+ + "\3\u0244\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245\3\u0245"+ + "\3\u0245\3\u0245\3\u0245\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246"+ + "\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0246\3\u0247\3\u0247\3\u0247"+ + "\3\u0247\3\u0247\3\u0247\3\u0248\3\u0248\3\u0248\3\u0248\3\u0248\3\u0248"+ + "\3\u0248\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249\3\u0249"+ + "\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024a\3\u024b\3\u024b"+ + "\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024b\3\u024c"+ + "\3\u024c\3\u024c\3\u024c\3\u024c\3\u024c\3\u024d\3\u024d\3\u024d\3\u024d"+ + "\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d\3\u024d"+ + "\3\u024d\3\u024d\3\u024d\3\u024e\3\u024e\3\u024e\3\u024e\3\u024e\3\u024e"+ + "\3\u024e\3\u024e\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f"+ + "\3\u024f\3\u024f\3\u024f\3\u024f\3\u024f\3\u0250\3\u0250\3\u0250\3\u0250"+ + "\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250\3\u0250"+ + "\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251\3\u0251"+ + "\3\u0251\3\u0252\3\u0252\3\u0252\3\u0252\3\u0253\3\u0253\3\u0253\3\u0253"+ + "\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0253\3\u0254\3\u0254\3\u0254"+ + "\3\u0254\3\u0254\3\u0254\3\u0255\3\u0255\3\u0255\3\u0255\3\u0255\3\u0255"+ + "\3\u0255\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256\3\u0256"+ + "\3\u0256\3\u0256\3\u0256\3\u0256\3\u0257\3\u0257\3\u0257\3\u0257\3\u0257"+ + "\3\u0257\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258\3\u0258"+ + "\3\u0258\3\u0258\3\u0258\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259"+ + "\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u0259\3\u025a\3\u025a\3\u025a"+ + "\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025a\3\u025b"+ + "\3\u025b\3\u025b\3\u025b\3\u025b\3\u025c\3\u025c\3\u025c\3\u025c\3\u025c"+ + "\3\u025c\3\u025c\3\u025c\3\u025c\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d"+ + "\3\u025d\3\u025d\3\u025d\3\u025d\3\u025d\3\u025e\3\u025e\3\u025e\3\u025e"+ + "\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025e\3\u025f\3\u025f\3\u025f"+ + "\3\u025f\3\u025f\3\u0260\3\u0260\3\u0260\3\u0260\3\u0260\3\u0261\3\u0261"+ + "\3\u0261\3\u0261\3\u0261\3\u0262\3\u0262\3\u0262\3\u0262\3\u0262\3\u0263"+ + "\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263\3\u0263"+ + "\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264"+ + "\3\u0264\3\u0264\3\u0264\3\u0264\3\u0264\3\u0265\3\u0265\3\u0265\3\u0265"+ + "\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265\3\u0265"+ + "\3\u0265\3\u0265\3\u0265\3\u0266\3\u0266\3\u0266\3\u0266\3\u0266\3\u0266"+ + "\3\u0266\3\u0267\3\u0267\3\u0267\3\u0268\3\u0268\3\u0268\3\u0268\3\u0268"+ + "\3\u0268\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269"+ + "\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u0269\3\u026a"+ + "\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026a\3\u026b"+ + "\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b\3\u026b"+ + "\3\u026b\3\u026b\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c"+ + "\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c\3\u026c"+ + "\3\u026c\3\u026c\3\u026c\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d"+ + "\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d"+ + "\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026d\3\u026e"+ + "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e"+ + "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e"+ + "\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026e\3\u026f\3\u026f\3\u026f"+ + "\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u026f\3\u0270\3\u0270"+ + "\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270\3\u0270"+ + "\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271\3\u0271"+ + "\3\u0271\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272\3\u0272"+ + "\3\u0272\3\u0272\3\u0272\3\u0272\3\u0273\3\u0273\3\u0273\3\u0273\3\u0273"+ + "\3\u0273\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274\3\u0274"+ + "\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275"+ + "\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0275\3\u0276\3\u0276"+ + "\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276\3\u0276"+ + "\3\u0276\3\u0276\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277"+ + "\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0277\3\u0278"+ + "\3\u0278\3\u0278\3\u0278\3\u0278\3\u0279\3\u0279\3\u0279\3\u0279\3\u0279"+ + "\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a\3\u027a"+ + "\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027b\3\u027c"+ + "\3\u027c\3\u027c\3\u027c\3\u027c\3\u027d\3\u027d\3\u027d\3\u027d\3\u027d"+ + "\3\u027d\3\u027d\3\u027d\3\u027e\3\u027e\3\u027e\3\u027e\3\u027e\3\u027e"+ + "\3\u027e\3\u027e\3\u027e\3\u027e\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f"+ + "\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u027f\3\u0280\3\u0280"+ + "\3\u0280\3\u0280\3\u0280\3\u0280\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281"+ + "\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0281\3\u0282\3\u0282"+ + "\3\u0282\3\u0282\3\u0282\3\u0282\3\u0283\3\u0283\3\u0283\3\u0283\3\u0283"+ + "\3\u0283\3\u0283\3\u0284\3\u0284\3\u0284\3\u0284\3\u0284\3\u0284\3\u0284"+ + "\3\u0284\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285\3\u0285"+ + "\3\u0285\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286\3\u0286"+ + "\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0287\3\u0288\3\u0288"+ + "\3\u0288\3\u0288\3\u0288\3\u0288\3\u0289\3\u0289\3\u0289\3\u0289\3\u0289"+ + "\3\u0289\3\u0289\3\u028a\3\u028a\3\u028a\3\u028a\3\u028a\3\u028a\3\u028b"+ + "\3\u028b\3\u028b\3\u028b\3\u028b\3\u028b\3\u028c\3\u028c\3\u028c\3\u028c"+ + "\3\u028c\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d"+ + "\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d"+ + "\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d\3\u028d"+ + "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e"+ + "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e"+ + "\3\u028e\3\u028e\3\u028e\3\u028e\3\u028e\3\u028f\3\u028f\3\u028f\3\u028f"+ + "\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f"+ + "\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f\3\u028f"+ + "\3\u028f\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290"+ + "\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290"+ + "\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0290\3\u0291"+ + "\3\u0291\3\u0291\3\u0291\3\u0291\3\u0291\3\u0292\3\u0292\3\u0292\3\u0292"+ + "\3\u0292\3\u0292\3\u0292\3\u0293\3\u0293\3\u0293\3\u0293\3\u0293\3\u0293"+ + "\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294\3\u0294"+ + "\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295\3\u0295"+ + "\3\u0295\3\u0296\3\u0296\3\u0296\3\u0296\3\u0296\3\u0296\3\u0297\3\u0297"+ + "\3\u0297\3\u0297\3\u0297\3\u0297\3\u0297\3\u0298\3\u0298\3\u0298\3\u0298"+ + "\3\u0298\3\u0298\3\u0298\3\u0298\3\u0299\3\u0299\3\u0299\3\u0299\3\u0299"+ + "\3\u0299\3\u0299\3\u0299\3\u0299\3\u029a\3\u029a\3\u029a\3\u029a\3\u029a"+ + "\3\u029a\3\u029a\3\u029a\3\u029b\3\u029b\3\u029b\3\u029b\3\u029b\3\u029b"+ + "\3\u029b\3\u029b\3\u029b\3\u029c\3\u029c\3\u029c\3\u029c\3\u029c\3\u029c"+ + "\3\u029c\3\u029c\3\u029c\3\u029d\3\u029d\3\u029d\3\u029d\3\u029d\3\u029d"+ + "\3\u029d\3\u029d\3\u029e\3\u029e\3\u029e\3\u029e\3\u029e\3\u029e\3\u029e"+ + "\3\u029e\3\u029f\3\u029f\3\u029f\3\u029f\3\u029f\3\u02a0\3\u02a0\3\u02a0"+ + "\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a0\3\u02a1\3\u02a1\3\u02a1"+ + "\3\u02a1\3\u02a1\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a2\3\u02a2"+ + "\3\u02a2\3\u02a2\3\u02a3\3\u02a3\3\u02a3\3\u02a3\3\u02a3\3\u02a3\3\u02a4"+ + "\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4\3\u02a4"+ + "\3\u02a4\3\u02a4\3\u02a4\3\u02a5\3\u02a5\3\u02a5\3\u02a5\3\u02a5\3\u02a5"+ + "\3\u02a5\3\u02a6\3\u02a6\3\u02a6\3\u02a6\3\u02a6\3\u02a7\3\u02a7\3\u02a7"+ + "\3\u02a7\3\u02a7\3\u02a7\3\u02a7\3\u02a8\3\u02a8\3\u02a8\3\u02a8\3\u02a8"+ + "\3\u02a8\3\u02a8\3\u02a8\3\u02a9\3\u02a9\3\u02a9\3\u02a9\3\u02a9\3\u02aa"+ + "\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02aa\3\u02ab\3\u02ab\3\u02ab\3\u02ab"+ + "\3\u02ab\3\u02ac\3\u02ac\3\u02ac\3\u02ac\3\u02ac\3\u02ad\3\u02ad\3\u02ad"+ + "\3\u02ad\3\u02ae\3\u02ae\3\u02ae\3\u02ae\3\u02ae\3\u02af\3\u02af\3\u02af"+ + "\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02af\3\u02b0\3\u02b0"+ + "\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0\3\u02b0"+ + "\3\u02b0\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1\3\u02b1"+ + "\3\u02b1\3\u02b1\3\u02b1\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2"+ + "\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b2\3\u02b3\3\u02b3"+ + "\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b3\3\u02b4\3\u02b4\3\u02b4"+ + "\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b4\3\u02b5\3\u02b5"+ + "\3\u02b5\3\u02b5\3\u02b5\3\u02b5\3\u02b6\3\u02b6\3\u02b6\3\u02b6\3\u02b6"+ + "\3\u02b6\3\u02b6\3\u02b6\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7"+ + "\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b7\3\u02b8\3\u02b8\3\u02b8"+ + "\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8\3\u02b8"+ + "\3\u02b8\3\u02b8\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9\3\u02b9"+ + "\3\u02b9\3\u02b9\3\u02b9\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba"+ + "\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02ba\3\u02bb\3\u02bb\3\u02bb"+ + "\3\u02bb\3\u02bb\3\u02bb\3\u02bc\3\u02bc\3\u02bc\3\u02bc\3\u02bc\3\u02bc"+ + "\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02bd\3\u02be\3\u02be"+ + "\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02be\3\u02bf"+ + "\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf"+ + "\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02bf\3\u02c0\3\u02c0\3\u02c0"+ + "\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0\3\u02c0"+ + "\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1\3\u02c1"+ + "\3\u02c1\3\u02c1\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2"+ + "\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c2\3\u02c3\3\u02c3\3\u02c3"+ + "\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c3\3\u02c4\3\u02c4\3\u02c4"+ + "\3\u02c4\3\u02c4\3\u02c4\3\u02c4\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c5"+ + "\3\u02c5\3\u02c5\3\u02c5\3\u02c5\3\u02c6\3\u02c6\3\u02c6\3\u02c6\3\u02c6"+ + "\3\u02c6\3\u02c6\3\u02c7\3\u02c7\3\u02c7\3\u02c7\3\u02c7\3\u02c7\3\u02c7"+ + "\3\u02c7\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8\3\u02c8"+ + "\3\u02c8\3\u02c8\3\u02c8\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9"+ + "\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9\3\u02c9"+ + "\3\u02c9\3\u02c9\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca\3\u02ca"+ + "\3\u02ca\3\u02ca\3\u02ca\3\u02cb\3\u02cb\3\u02cb\3\u02cb\3\u02cb\3\u02cb"+ + "\3\u02cb\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc\3\u02cc"+ + "\3\u02cc\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd"+ + "\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02cd\3\u02ce\3\u02ce\3\u02ce\3\u02ce"+ + "\3\u02ce\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02cf\3\u02d0"+ + "\3\u02d0\3\u02d0\3\u02d0\3\u02d0\3\u02d0\3\u02d0\3\u02d0\3\u02d0\3\u02d1"+ + "\3\u02d1\3\u02d1\3\u02d2\3\u02d2\3\u02d2\3\u02d2\3\u02d2\3\u02d2\3\u02d2"+ + "\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d3\3\u02d3"+ + "\3\u02d3\3\u02d3\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4\3\u02d4"+ + "\3\u02d4\3\u02d4\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5\3\u02d5"+ + "\3\u02d5\3\u02d5\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6\3\u02d6"+ + "\3\u02d6\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7"+ + "\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7\3\u02d7"+ + "\3\u02d7\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d8"+ + "\3\u02d8\3\u02d8\3\u02d8\3\u02d8\3\u02d9\3\u02d9\3\u02d9\3\u02d9\3\u02d9"+ + "\3\u02d9\3\u02da\3\u02da\3\u02da\3\u02da\3\u02da\3\u02da\3\u02da\3\u02da"+ + "\3\u02db\3\u02db\3\u02db\3\u02db\3\u02db\3\u02db\3\u02db\3\u02dc\3\u02dc"+ + "\3\u02dc\3\u02dc\3\u02dc\3\u02dc\3\u02dd\3\u02dd\3\u02dd\3\u02dd\3\u02dd"+ + "\3\u02de\3\u02de\3\u02de\3\u02de\3\u02de\3\u02df\3\u02df\3\u02df\3\u02df"+ + "\3\u02df\3\u02df\3\u02df\3\u02e0\3\u02e0\3\u02e0\3\u02e0\3\u02e1\3\u02e1"+ + "\3\u02e1\3\u02e1\3\u02e1\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2"+ + "\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e2\3\u02e3\3\u02e3"+ + "\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e3\3\u02e4\3\u02e4\3\u02e4\3\u02e4"+ + "\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4\3\u02e4"+ + "\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e5\3\u02e6"+ + "\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e6\3\u02e7"+ + "\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7\3\u02e7"+ + "\3\u02e7\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8\3\u02e8"+ + "\3\u02e9\3\u02e9\3\u02e9\3\u02e9\3\u02e9\3\u02e9\3\u02e9\3\u02ea\3\u02ea"+ + "\3\u02ea\3\u02ea\3\u02ea\3\u02ea\3\u02ea\3\u02eb\3\u02eb\3\u02eb\3\u02eb"+ + "\3\u02eb\3\u02eb\3\u02eb\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec\3\u02ec"+ + "\3\u02ec\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ed\3\u02ee\3\u02ee"+ + "\3\u02ee\3\u02ee\3\u02ee\3\u02ee\3\u02ee\3\u02ee\3\u02ef\3\u02ef\3\u02ef"+ + "\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02ef\3\u02f0\3\u02f0"+ + "\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0\3\u02f0"+ + "\3\u02f0\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f1\3\u02f2\3\u02f2\3\u02f2"+ + "\3\u02f2\3\u02f3\3\u02f3\3\u02f3\3\u02f3\3\u02f3\3\u02f3\3\u02f4\3\u02f4"+ + "\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4"+ + "\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f4\3\u02f5\3\u02f5"+ + "\3\u02f5\3\u02f5\3\u02f5\3\u02f6\3\u02f6\3\u02f6\3\u02f6\3\u02f6\3\u02f6"+ + "\3\u02f6\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f7\3\u02f8"+ + "\3\u02f8\3\u02f8\3\u02f8\3\u02f8\3\u02f8\3\u02f8\3\u02f9\3\u02f9\3\u02f9"+ + "\3\u02f9\3\u02f9\3\u02fa\3\u02fa\3\u02fa\3\u02fa\3\u02fa\3\u02fb\3\u02fb"+ + "\3\u02fb\3\u02fb\3\u02fb\3\u02fc\3\u02fc\3\u02fc\3\u02fc\3\u02fc\3\u02fd"+ + "\3\u02fd\3\u02fd\3\u02fd\3\u02fd\3\u02fe\3\u02fe\3\u02fe\3\u02fe\3\u02fe"+ + "\3\u02fe\3\u02ff\3\u02ff\3\u02ff\3\u02ff\3\u02ff\3\u0300\3\u0300\3\u0300"+ + "\3\u0300\3\u0300\3\u0301\3\u0301\3\u0301\3\u0301\3\u0301\3\u0301\3\u0301"+ + "\3\u0301\3\u0302\3\u0302\3\u0302\3\u0302\3\u0302\3\u0302\3\u0302\3\u0302"+ + "\3\u0302\3\u0303\3\u0303\3\u0303\3\u0303\3\u0303\3\u0303\3\u0304\3\u0304"+ + "\3\u0304\3\u0304\3\u0304\3\u0304\3\u0304\3\u0305\3\u0305\3\u0305\3\u0305"+ + "\3\u0305\3\u0305\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306\3\u0306"+ + "\3\u0306\3\u0307\3\u0307\3\u0307\3\u0307\3\u0307\3\u0307\3\u0307\3\u0307"+ + "\3\u0308\3\u0308\3\u0308\3\u0308\3\u0308\3\u0308\3\u0308\3\u0309\3\u0309"+ + "\3\u0309\3\u0309\3\u0309\3\u0309\3\u0309\3\u0309\3\u030a\3\u030a\3\u030a"+ + "\3\u030a\3\u030a\3\u030a\3\u030a\3\u030a\3\u030b\3\u030b\3\u030b\3\u030b"+ + "\3\u030b\3\u030b\3\u030b\3\u030b\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c"+ + "\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030c\3\u030d\3\u030d"+ + "\3\u030d\3\u030d\3\u030d\3\u030d\3\u030d\3\u030e\3\u030e\3\u030e\3\u030e"+ + "\3\u030e\3\u030f\3\u030f\3\u030f\3\u030f\3\u030f\3\u030f\3\u030f\3\u030f"+ + "\3\u030f\3\u030f\3\u030f\3\u030f\3\u0310\3\u0310\3\u0310\3\u0310\3\u0310"+ + "\3\u0310\3\u0310\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311\3\u0311"+ + "\3\u0311\3\u0312\3\u0312\3\u0312\3\u0312\3\u0312\3\u0312\3\u0312\3\u0312"+ + "\3\u0312\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313"+ + "\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0313\3\u0314\3\u0314\3\u0314"+ + "\3\u0314\3\u0314\3\u0315\3\u0315\3\u0315\3\u0315\3\u0315\3\u0315\3\u0315"+ + "\3\u0316\3\u0316\3\u0316\3\u0316\3\u0317\3\u0317\3\u0318\3\u0318\3\u0319"+ + "\3\u0319\3\u0319\3\u031a\3\u031a\3\u031b\3\u031b\3\u031b\3\u031c\3\u031c"+ + "\3\u031d\3\u031d\3\u031e\3\u031e\3\u031f\3\u031f\3\u0320\3\u0320\3\u0321"+ + "\3\u0321\3\u0321\7\u0321\u20e9\n\u0321\f\u0321\16\u0321\u20ec\13\u0321"+ + "\3\u0321\3\u0321\3\u0322\3\u0322\3\u0322\3\u0323\5\u0323\u20f4\n\u0323"+ + "\3\u0323\6\u0323\u20f7\n\u0323\r\u0323\16\u0323\u20f8\3\u0323\3\u0323"+ + "\6\u0323\u20fd\n\u0323\r\u0323\16\u0323\u20fe\3\u0323\3\u0323\7\u0323"+ + "\u2103\n\u0323\f\u0323\16\u0323\u2106\13\u0323\3\u0323\6\u0323\u2109\n"+ + "\u0323\r\u0323\16\u0323\u210a\5\u0323\u210d\n\u0323\3\u0324\5\u0324\u2110"+ + "\n\u0324\3\u0324\6\u0324\u2113\n\u0324\r\u0324\16\u0324\u2114\3\u0324"+ + "\3\u0324\6\u0324\u2119\n\u0324\r\u0324\16\u0324\u211a\5\u0324\u211d\n"+ + "\u0324\3\u0325\3\u0325\3\u0325\3\u0326\3\u0326\3\u0327\3\u0327\3\u0328"+ + "\3\u0328\3\u0329\3\u0329\7\u0329\u212a\n\u0329\f\u0329\16\u0329\u212d"+ + "\13\u0329\3\u032a\3\u032a\6\u032a\u2131\n\u032a\r\u032a\16\u032a\u2132"+ + "\3\u032b\3\u032b\7\u032b\u2137\n\u032b\f\u032b\16\u032b\u213a\13\u032b"+ + "\3\u032c\3\u032c\3\u032d\3\u032d\3\u032d\3\u032e\3\u032e\3\u032e\3\u032f"+ + "\3\u032f\3\u032f\3\u0330\3\u0330\3\u0330\3\u0331\3\u0331\3\u0332\3\u0332"+ + "\3\u0333\3\u0333\3\u0333\3\u0334\3\u0334\3\u0334\3\u0335\3\u0335\3\u0336"+ + "\3\u0336\3\u0337\3\u0337\3\u0337\3\u0338\3\u0338\3\u0339\3\u0339\3\u0339"+ + "\3\u033a\3\u033a\3\u033a\3\u033b\3\u033b\3\u033c\3\u033c\3\u033c\3\u033d"+ + "\3\u033d\3\u033d\3\u033e\3\u033e\3\u033e\3\u033e\3\u033f\3\u033f\3\u033f"+ + "\3\u0340\3\u0340\3\u0340\3\u0341\3\u0341\3\u0341\3\u0341\3\u0342\3\u0342"+ + "\3\u0342\3\u0342\3\u0343\3\u0343\3\u0344\3\u0344\3\u0344\3\u0345\3\u0345"+ + "\3\u0345\3\u0346\3\u0346\3\u0346\3\u0347\3\u0347\3\u0347\3\u0348\3\u0348"+ + "\3\u0348\3\u0348\3\u0349\3\u0349\3\u0349\3\u034a\3\u034a\3\u034a\3\u034a"+ + "\3\u034b\3\u034b\3\u034b\3\u034b\3\u034c\3\u034c\3\u034d\3\u034d\3\u034e"+ + "\3\u034e\3\u034f\3\u034f\3\u034f\3\u0350\3\u0350\3\u0350\3\u0350\3\u0351"+ + "\3\u0351\3\u0351\3\u0352\3\u0352\3\u0353\3\u0353\3\u0354\3\u0354\3\u0354"+ + "\3\u0355\3\u0355\3\u0355\3\u0356\3\u0356\3\u0356\3\u0357\3\u0357\3\u0357"+ + "\3\u0358\3\u0358\3\u0359\3\u0359\3\u035a\3\u035a\3\u035a\3\u035b\3\u035b"+ + "\3\u035b\3\u035b\3\u035b\3\u035c\3\u035c\3\u035c\3\u035c\3\u035d\3\u035d"+ + "\3\u035d\3\u035d\3\u035d\3\u035e\3\u035e\3\u035e\3\u035e\3\u035f\3\u035f"+ + "\3\u035f\3\u0360\3\u0360\3\u0360\3\u0361\3\u0361\4\u06d0\u06de\2\u0362"+ + "\3\3\5\4\7\5\t\2\13\2\r\2\17\2\21\2\23\2\25\2\27\2\31\2\33\2\35\2\37\2"+ + "!\2#\2%\2\'\2)\2+\2-\2/\2\61\2\63\2\65\2\67\29\2;\2=\2?\2A\2C\2E\2G\6"+ + "I\7K\bM\tO\nQ\13S\fU\rW\16Y\17[\20]\21_\22a\23c\24e\25g\26i\27k\30m\31"+ + "o\32q\33s\34u\35w\36y\37{ }!\177\"\u0081#\u0083$\u0085%\u0087&\u0089\'"+ + "\u008b(\u008d)\u008f*\u0091+\u0093,\u0095-\u0097.\u0099/\u009b\60\u009d"+ + "\61\u009f\62\u00a1\63\u00a3\64\u00a5\65\u00a7\66\u00a9\67\u00ab8\u00ad"+ + "9\u00af:\u00b1;\u00b3<\u00b5=\u00b7>\u00b9?\u00bb@\u00bdA\u00bfB\u00c1"+ + "C\u00c3D\u00c5E\u00c7F\u00c9G\u00cbH\u00cdI\u00cfJ\u00d1K\u00d3L\u00d5"+ + "M\u00d7N\u00d9O\u00dbP\u00ddQ\u00dfR\u00e1S\u00e3T\u00e5U\u00e7V\u00e9"+ + "W\u00ebX\u00edY\u00efZ\u00f1[\u00f3\\\u00f5]\u00f7^\u00f9_\u00fb`\u00fd"+ + "a\u00ffb\u0101c\u0103d\u0105e\u0107f\u0109g\u010bh\u010di\u010fj\u0111"+ + "k\u0113l\u0115m\u0117n\u0119o\u011bp\u011dq\u011fr\u0121s\u0123t\u0125"+ + "u\u0127v\u0129w\u012bx\u012dy\u012fz\u0131{\u0133|\u0135}\u0137~\u0139"+ + "\177\u013b\u0080\u013d\u0081\u013f\u0082\u0141\u0083\u0143\u0084\u0145"+ + "\u0085\u0147\u0086\u0149\u0087\u014b\u0088\u014d\u0089\u014f\u008a\u0151"+ + "\u008b\u0153\u008c\u0155\u008d\u0157\u008e\u0159\u008f\u015b\u0090\u015d"+ + "\u0091\u015f\u0092\u0161\u0093\u0163\u0094\u0165\u0095\u0167\u0096\u0169"+ + "\u0097\u016b\u0098\u016d\u0099\u016f\u009a\u0171\u009b\u0173\u009c\u0175"+ + "\u009d\u0177\u009e\u0179\u009f\u017b\u00a0\u017d\u00a1\u017f\u00a2\u0181"+ + "\u00a3\u0183\u00a4\u0185\u00a5\u0187\u00a6\u0189\u00a7\u018b\u00a8\u018d"+ + "\u00a9\u018f\u00aa\u0191\u00ab\u0193\u00ac\u0195\u00ad\u0197\u00ae\u0199"+ + "\u00af\u019b\u00b0\u019d\u00b1\u019f\u00b2\u01a1\u00b3\u01a3\u00b4\u01a5"+ + "\u00b5\u01a7\u00b6\u01a9\u00b7\u01ab\u00b8\u01ad\u00b9\u01af\u00ba\u01b1"+ + "\u00bb\u01b3\u00bc\u01b5\u00bd\u01b7\u00be\u01b9\u00bf\u01bb\u00c0\u01bd"+ + "\u00c1\u01bf\u00c2\u01c1\u00c3\u01c3\u00c4\u01c5\u00c5\u01c7\u00c6\u01c9"+ + "\u00c7\u01cb\u00c8\u01cd\u00c9\u01cf\u00ca\u01d1\u00cb\u01d3\u00cc\u01d5"+ + "\u00cd\u01d7\u00ce\u01d9\u00cf\u01db\u00d0\u01dd\u00d1\u01df\u00d2\u01e1"+ + "\u00d3\u01e3\u00d4\u01e5\u00d5\u01e7\u00d6\u01e9\u00d7\u01eb\u00d8\u01ed"+ + "\u00d9\u01ef\u00da\u01f1\u00db\u01f3\u00dc\u01f5\u00dd\u01f7\u00de\u01f9"+ + "\u00df\u01fb\u00e0\u01fd\u00e1\u01ff\u00e2\u0201\u00e3\u0203\u00e4\u0205"+ + "\u00e5\u0207\u00e6\u0209\u00e7\u020b\u00e8\u020d\u00e9\u020f\u00ea\u0211"+ + "\u00eb\u0213\u00ec\u0215\u00ed\u0217\u00ee\u0219\u00ef\u021b\u00f0\u021d"+ + "\u00f1\u021f\u00f2\u0221\u00f3\u0223\u00f4\u0225\u00f5\u0227\u00f6\u0229"+ + "\u00f7\u022b\u00f8\u022d\u00f9\u022f\u00fa\u0231\u00fb\u0233\u00fc\u0235"+ + "\u00fd\u0237\u00fe\u0239\u00ff\u023b\u0100\u023d\u0101\u023f\u0102\u0241"+ + "\u0103\u0243\u0104\u0245\u0105\u0247\u0106\u0249\u0107\u024b\u0108\u024d"+ + "\u0109\u024f\u010a\u0251\u010b\u0253\u010c\u0255\u010d\u0257\u010e\u0259"+ + "\u010f\u025b\u0110\u025d\u0111\u025f\u0112\u0261\u0113\u0263\u0114\u0265"+ + "\u0115\u0267\u0116\u0269\u0117\u026b\u0118\u026d\u0119\u026f\u011a\u0271"+ + "\u011b\u0273\u011c\u0275\u011d\u0277\u011e\u0279\u011f\u027b\u0120\u027d"+ + "\u0121\u027f\u0122\u0281\u0123\u0283\u0124\u0285\u0125\u0287\u0126\u0289"+ + "\u0127\u028b\u0128\u028d\u0129\u028f\u012a\u0291\u012b\u0293\u012c\u0295"+ + "\u012d\u0297\u012e\u0299\u012f\u029b\u0130\u029d\u0131\u029f\u0132\u02a1"+ + "\u0133\u02a3\u0134\u02a5\u0135\u02a7\u0136\u02a9\u0137\u02ab\u0138\u02ad"+ + "\u0139\u02af\u013a\u02b1\u013b\u02b3\u013c\u02b5\u013d\u02b7\u013e\u02b9"+ + "\u013f\u02bb\u0140\u02bd\u0141\u02bf\u0142\u02c1\u0143\u02c3\u0144\u02c5"+ + "\u0145\u02c7\u0146\u02c9\u0147\u02cb\u0148\u02cd\u0149\u02cf\u014a\u02d1"+ + "\u014b\u02d3\u014c\u02d5\u014d\u02d7\u014e\u02d9\u014f\u02db\u0150\u02dd"+ + "\u0151\u02df\u0152\u02e1\u0153\u02e3\u0154\u02e5\u0155\u02e7\u0156\u02e9"+ + "\u0157\u02eb\u0158\u02ed\u0159\u02ef\u015a\u02f1\u015b\u02f3\u015c\u02f5"+ + "\u015d\u02f7\u015e\u02f9\u015f\u02fb\u0160\u02fd\u0161\u02ff\u0162\u0301"+ + "\u0163\u0303\u0164\u0305\u0165\u0307\u0166\u0309\u0167\u030b\u0168\u030d"+ + "\u0169\u030f\u016a\u0311\u016b\u0313\u016c\u0315\u016d\u0317\u016e\u0319"+ + "\u016f\u031b\u0170\u031d\u0171\u031f\u0172\u0321\u0173\u0323\u0174\u0325"+ + "\u0175\u0327\u0176\u0329\u0177\u032b\u0178\u032d\u0179\u032f\u017a\u0331"+ + "\u017b\u0333\u017c\u0335\u017d\u0337\u017e\u0339\u017f\u033b\u0180\u033d"+ + "\u0181\u033f\u0182\u0341\u0183\u0343\u0184\u0345\u0185\u0347\u0186\u0349"+ + "\u0187\u034b\u0188\u034d\u0189\u034f\u018a\u0351\u018b\u0353\u018c\u0355"+ + "\u018d\u0357\u018e\u0359\u018f\u035b\u0190\u035d\u0191\u035f\u0192\u0361"+ + "\u0193\u0363\u0194\u0365\u0195\u0367\u0196\u0369\u0197\u036b\u0198\u036d"+ + "\u0199\u036f\u019a\u0371\u019b\u0373\u019c\u0375\u019d\u0377\u019e\u0379"+ + "\u019f\u037b\u01a0\u037d\u01a1\u037f\u01a2\u0381\u01a3\u0383\u01a4\u0385"+ + "\u01a5\u0387\u01a6\u0389\u01a7\u038b\u01a8\u038d\u01a9\u038f\u01aa\u0391"+ + "\u01ab\u0393\u01ac\u0395\u01ad\u0397\u01ae\u0399\u01af\u039b\u01b0\u039d"+ + "\u01b1\u039f\u01b2\u03a1\u01b3\u03a3\u01b4\u03a5\u01b5\u03a7\u01b6\u03a9"+ + "\u01b7\u03ab\u01b8\u03ad\u01b9\u03af\u01ba\u03b1\u01bb\u03b3\u01bc\u03b5"+ + "\u01bd\u03b7\u01be\u03b9\u01bf\u03bb\u01c0\u03bd\u01c1\u03bf\u01c2\u03c1"+ + "\u01c3\u03c3\u01c4\u03c5\u01c5\u03c7\u01c6\u03c9\u01c7\u03cb\u01c8\u03cd"+ + "\u01c9\u03cf\u01ca\u03d1\u01cb\u03d3\u01cc\u03d5\u01cd\u03d7\u01ce\u03d9"+ + "\u01cf\u03db\u01d0\u03dd\u01d1\u03df\u01d2\u03e1\u01d3\u03e3\u01d4\u03e5"+ + "\u01d5\u03e7\u01d6\u03e9\u01d7\u03eb\u01d8\u03ed\u01d9\u03ef\u01da\u03f1"+ + "\u01db\u03f3\u01dc\u03f5\u01dd\u03f7\u01de\u03f9\u01df\u03fb\u01e0\u03fd"+ + "\u01e1\u03ff\u01e2\u0401\u01e3\u0403\u01e4\u0405\u01e5\u0407\u01e6\u0409"+ + "\u01e7\u040b\u01e8\u040d\u01e9\u040f\u01ea\u0411\u01eb\u0413\u01ec\u0415"+ + "\u01ed\u0417\u01ee\u0419\u01ef\u041b\u01f0\u041d\u01f1\u041f\u01f2\u0421"+ + "\u01f3\u0423\u01f4\u0425\u01f5\u0427\u01f6\u0429\u01f7\u042b\u01f8\u042d"+ + "\u01f9\u042f\u01fa\u0431\u01fb\u0433\u01fc\u0435\u01fd\u0437\u01fe\u0439"+ + "\u01ff\u043b\u0200\u043d\u0201\u043f\u0202\u0441\u0203\u0443\u0204\u0445"+ + "\u0205\u0447\u0206\u0449\u0207\u044b\u0208\u044d\u0209\u044f\u020a\u0451"+ + "\u020b\u0453\u020c\u0455\u020d\u0457\u020e\u0459\u020f\u045b\u0210\u045d"+ + "\u0211\u045f\u0212\u0461\u0213\u0463\u0214\u0465\u0215\u0467\u0216\u0469"+ + "\u0217\u046b\u0218\u046d\u0219\u046f\u021a\u0471\u021b\u0473\u021c\u0475"+ + "\u021d\u0477\u021e\u0479\u021f\u047b\u0220\u047d\u0221\u047f\u0222\u0481"+ + "\u0223\u0483\u0224\u0485\u0225\u0487\u0226\u0489\u0227\u048b\u0228\u048d"+ + "\u0229\u048f\u022a\u0491\u022b\u0493\u022c\u0495\u022d\u0497\u022e\u0499"+ + "\u022f\u049b\u0230\u049d\u0231\u049f\u0232\u04a1\u0233\u04a3\u0234\u04a5"+ + "\u0235\u04a7\u0236\u04a9\u0237\u04ab\u0238\u04ad\u0239\u04af\u023a\u04b1"+ + "\u023b\u04b3\u023c\u04b5\u023d\u04b7\u023e\u04b9\u023f\u04bb\u0240\u04bd"+ + "\u0241\u04bf\u0242\u04c1\u0243\u04c3\u0244\u04c5\u0245\u04c7\u0246\u04c9"+ + "\u0247\u04cb\u0248\u04cd\u0249\u04cf\u024a\u04d1\u024b\u04d3\u024c\u04d5"+ + "\u024d\u04d7\u024e\u04d9\u024f\u04db\u0250\u04dd\u0251\u04df\u0252\u04e1"+ + "\u0253\u04e3\u0254\u04e5\u0255\u04e7\u0256\u04e9\u0257\u04eb\u0258\u04ed"+ + "\u0259\u04ef\u025a\u04f1\u025b\u04f3\u025c\u04f5\u025d\u04f7\u025e\u04f9"+ + "\u025f\u04fb\u0260\u04fd\u0261\u04ff\u0262\u0501\u0263\u0503\u0264\u0505"+ + "\u0265\u0507\u0266\u0509\u0267\u050b\u0268\u050d\u0269\u050f\u026a\u0511"+ + "\u026b\u0513\u026c\u0515\u026d\u0517\u026e\u0519\u026f\u051b\u0270\u051d"+ + "\u0271\u051f\u0272\u0521\u0273\u0523\u0274\u0525\u0275\u0527\u0276\u0529"+ + "\u0277\u052b\u0278\u052d\u0279\u052f\u027a\u0531\u027b\u0533\u027c\u0535"+ + "\u027d\u0537\u027e\u0539\u027f\u053b\u0280\u053d\u0281\u053f\u0282\u0541"+ + "\u0283\u0543\u0284\u0545\u0285\u0547\u0286\u0549\u0287\u054b\u0288\u054d"+ + "\u0289\u054f\u028a\u0551\u028b\u0553\u028c\u0555\u028d\u0557\u028e\u0559"+ + "\u028f\u055b\u0290\u055d\u0291\u055f\u0292\u0561\u0293\u0563\u0294\u0565"+ + "\u0295\u0567\u0296\u0569\u0297\u056b\u0298\u056d\u0299\u056f\u029a\u0571"+ + "\u029b\u0573\u029c\u0575\u029d\u0577\u029e\u0579\u029f\u057b\u02a0\u057d"+ + "\u02a1\u057f\u02a2\u0581\u02a3\u0583\u02a4\u0585\u02a5\u0587\u02a6\u0589"+ + "\u02a7\u058b\u02a8\u058d\u02a9\u058f\u02aa\u0591\u02ab\u0593\u02ac\u0595"+ + "\u02ad\u0597\u02ae\u0599\u02af\u059b\u02b0\u059d\u02b1\u059f\u02b2\u05a1"+ + "\u02b3\u05a3\u02b4\u05a5\u02b5\u05a7\u02b6\u05a9\u02b7\u05ab\u02b8\u05ad"+ + "\u02b9\u05af\u02ba\u05b1\u02bb\u05b3\u02bc\u05b5\u02bd\u05b7\u02be\u05b9"+ + "\u02bf\u05bb\u02c0\u05bd\u02c1\u05bf\u02c2\u05c1\u02c3\u05c3\u02c4\u05c5"+ + "\u02c5\u05c7\u02c6\u05c9\u02c7\u05cb\u02c8\u05cd\u02c9\u05cf\u02ca\u05d1"+ + "\u02cb\u05d3\u02cc\u05d5\u02cd\u05d7\u02ce\u05d9\u02cf\u05db\u02d0\u05dd"+ + "\u02d1\u05df\u02d2\u05e1\u02d3\u05e3\u02d4\u05e5\u02d5\u05e7\u02d6\u05e9"+ + "\u02d7\u05eb\u02d8\u05ed\u02d9\u05ef\u02da\u05f1\u02db\u05f3\u02dc\u05f5"+ + "\u02dd\u05f7\u02de\u05f9\u02df\u05fb\u02e0\u05fd\u02e1\u05ff\u02e2\u0601"+ + "\u02e3\u0603\u02e4\u0605\u02e5\u0607\u02e6\u0609\u02e7\u060b\u02e8\u060d"+ + "\u02e9\u060f\u02ea\u0611\u02eb\u0613\u02ec\u0615\u02ed\u0617\u02ee\u0619"+ + "\u02ef\u061b\u02f0\u061d\u02f1\u061f\u02f2\u0621\u02f3\u0623\u02f4\u0625"+ + "\u02f5\u0627\u02f6\u0629\u02f7\u062b\u02f8\u062d\u02f9\u062f\u02fa\u0631"+ + "\u02fb\u0633\u02fc\u0635\u02fd\u0637\u02fe\u0639\u02ff\u063b\u0300\u063d"+ + "\u0301\u063f\u0302\u0641\u0303\u0643\u0304\u0645\u0305\u0647\u0306\u0649"+ + "\u0307\u064b\u0308\u064d\u0309\u064f\u030a\u0651\u030b\u0653\u030c\u0655"+ + "\u030d\u0657\u030e\u0659\u030f\u065b\u0310\u065d\u0311\u065f\u0312\u0661"+ + "\u0313\u0663\u0314\u0665\u0315\u0667\u0316\u0669\u0317\u066b\u0318\u066d"+ + "\u0319\u066f\u031a\u0671\u031b\u0673\u031c\u0675\u031d\u0677\u031e\u0679"+ + "\u031f\u067b\u0320\u067d\u0321\u067f\u0322\u0681\u0323\u0683\u0324\u0685"+ + "\u0325\u0687\u0326\u0689\u0327\u068b\u0328\u068d\u0329\u068f\u032a\u0691"+ + "\u032b\u0693\u032c\u0695\u032d\u0697\u032e\u0699\u032f\u069b\u0330\u069d"+ + "\u0331\u069f\u0332\u06a1\u0333\u06a3\u0334\u06a5\u0335\u06a7\u0336\u06a9"+ + "\u0337\u06ab\u0338\u06ad\u0339\u06af\u033a\u06b1\u033b\u06b3\u033c\u06b5"+ + "\u033d\u06b7\u033e\u06b9\u033f\u06bb\u0340\u06bd\u0341\u06bf\u0342\u06c1"+ + "\u0343\3\2&\5\2\13\f\17\17\"\"\4\2CCcc\4\2DDdd\4\2EEee\4\2FFff\4\2GGg"+ + "g\4\2HHhh\4\2IIii\4\2JJjj\4\2KKkk\4\2LLll\4\2MMmm\4\2NNnn\4\2OOoo\4\2"+ + "PPpp\4\2QQqq\4\2RRrr\4\2SSss\4\2TTtt\4\2UUuu\4\2VVvv\4\2WWww\4\2XXxx\4"+ + "\2YYyy\4\2ZZzz\4\2[[{{\4\2\\\\||\4\2\62;CH\3\2\62;\4\2$$^^\4\2))^^\4\2"+ + "^^bb\5\2C\\aac|\7\2&&\62;C\\aac|\6\2C\\aac|\u00a3\1\b\2&&\62;C\\aac|\u00a3"+ + "\1\2\u21d4\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2"+ + "K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3"+ + "\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2"+ + "\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2"+ + "q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3"+ + "\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2"+ + "\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f"+ + "\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2"+ + "\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1"+ + "\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2"+ + "\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3"+ + "\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2"+ + "\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5"+ + "\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2"+ + "\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7"+ + "\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df\3\2\2"+ + "\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7\3\2\2\2\2\u00e9"+ + "\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2\2\2\u00f1\3\2\2"+ + "\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb"+ + "\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2\2\2\u0103\3\2\2"+ + "\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b\3\2\2\2\2\u010d"+ + "\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2\2\2\u0115\3\2\2"+ + "\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d\3\2\2\2\2\u011f"+ + "\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127\3\2\2"+ + "\2\2\u0129\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2\2\2\u012f\3\2\2\2\2\u0131"+ + "\3\2\2\2\2\u0133\3\2\2\2\2\u0135\3\2\2\2\2\u0137\3\2\2\2\2\u0139\3\2\2"+ + "\2\2\u013b\3\2\2\2\2\u013d\3\2\2\2\2\u013f\3\2\2\2\2\u0141\3\2\2\2\2\u0143"+ + "\3\2\2\2\2\u0145\3\2\2\2\2\u0147\3\2\2\2\2\u0149\3\2\2\2\2\u014b\3\2\2"+ + "\2\2\u014d\3\2\2\2\2\u014f\3\2\2\2\2\u0151\3\2\2\2\2\u0153\3\2\2\2\2\u0155"+ + "\3\2\2\2\2\u0157\3\2\2\2\2\u0159\3\2\2\2\2\u015b\3\2\2\2\2\u015d\3\2\2"+ + "\2\2\u015f\3\2\2\2\2\u0161\3\2\2\2\2\u0163\3\2\2\2\2\u0165\3\2\2\2\2\u0167"+ + "\3\2\2\2\2\u0169\3\2\2\2\2\u016b\3\2\2\2\2\u016d\3\2\2\2\2\u016f\3\2\2"+ + "\2\2\u0171\3\2\2\2\2\u0173\3\2\2\2\2\u0175\3\2\2\2\2\u0177\3\2\2\2\2\u0179"+ + "\3\2\2\2\2\u017b\3\2\2\2\2\u017d\3\2\2\2\2\u017f\3\2\2\2\2\u0181\3\2\2"+ + "\2\2\u0183\3\2\2\2\2\u0185\3\2\2\2\2\u0187\3\2\2\2\2\u0189\3\2\2\2\2\u018b"+ + "\3\2\2\2\2\u018d\3\2\2\2\2\u018f\3\2\2\2\2\u0191\3\2\2\2\2\u0193\3\2\2"+ + "\2\2\u0195\3\2\2\2\2\u0197\3\2\2\2\2\u0199\3\2\2\2\2\u019b\3\2\2\2\2\u019d"+ + "\3\2\2\2\2\u019f\3\2\2\2\2\u01a1\3\2\2\2\2\u01a3\3\2\2\2\2\u01a5\3\2\2"+ + "\2\2\u01a7\3\2\2\2\2\u01a9\3\2\2\2\2\u01ab\3\2\2\2\2\u01ad\3\2\2\2\2\u01af"+ + "\3\2\2\2\2\u01b1\3\2\2\2\2\u01b3\3\2\2\2\2\u01b5\3\2\2\2\2\u01b7\3\2\2"+ + "\2\2\u01b9\3\2\2\2\2\u01bb\3\2\2\2\2\u01bd\3\2\2\2\2\u01bf\3\2\2\2\2\u01c1"+ + "\3\2\2\2\2\u01c3\3\2\2\2\2\u01c5\3\2\2\2\2\u01c7\3\2\2\2\2\u01c9\3\2\2"+ + "\2\2\u01cb\3\2\2\2\2\u01cd\3\2\2\2\2\u01cf\3\2\2\2\2\u01d1\3\2\2\2\2\u01d3"+ + "\3\2\2\2\2\u01d5\3\2\2\2\2\u01d7\3\2\2\2\2\u01d9\3\2\2\2\2\u01db\3\2\2"+ + "\2\2\u01dd\3\2\2\2\2\u01df\3\2\2\2\2\u01e1\3\2\2\2\2\u01e3\3\2\2\2\2\u01e5"+ + "\3\2\2\2\2\u01e7\3\2\2\2\2\u01e9\3\2\2\2\2\u01eb\3\2\2\2\2\u01ed\3\2\2"+ + "\2\2\u01ef\3\2\2\2\2\u01f1\3\2\2\2\2\u01f3\3\2\2\2\2\u01f5\3\2\2\2\2\u01f7"+ + "\3\2\2\2\2\u01f9\3\2\2\2\2\u01fb\3\2\2\2\2\u01fd\3\2\2\2\2\u01ff\3\2\2"+ + "\2\2\u0201\3\2\2\2\2\u0203\3\2\2\2\2\u0205\3\2\2\2\2\u0207\3\2\2\2\2\u0209"+ + "\3\2\2\2\2\u020b\3\2\2\2\2\u020d\3\2\2\2\2\u020f\3\2\2\2\2\u0211\3\2\2"+ + "\2\2\u0213\3\2\2\2\2\u0215\3\2\2\2\2\u0217\3\2\2\2\2\u0219\3\2\2\2\2\u021b"+ + "\3\2\2\2\2\u021d\3\2\2\2\2\u021f\3\2\2\2\2\u0221\3\2\2\2\2\u0223\3\2\2"+ + "\2\2\u0225\3\2\2\2\2\u0227\3\2\2\2\2\u0229\3\2\2\2\2\u022b\3\2\2\2\2\u022d"+ + "\3\2\2\2\2\u022f\3\2\2\2\2\u0231\3\2\2\2\2\u0233\3\2\2\2\2\u0235\3\2\2"+ + "\2\2\u0237\3\2\2\2\2\u0239\3\2\2\2\2\u023b\3\2\2\2\2\u023d\3\2\2\2\2\u023f"+ + "\3\2\2\2\2\u0241\3\2\2\2\2\u0243\3\2\2\2\2\u0245\3\2\2\2\2\u0247\3\2\2"+ + "\2\2\u0249\3\2\2\2\2\u024b\3\2\2\2\2\u024d\3\2\2\2\2\u024f\3\2\2\2\2\u0251"+ + "\3\2\2\2\2\u0253\3\2\2\2\2\u0255\3\2\2\2\2\u0257\3\2\2\2\2\u0259\3\2\2"+ + "\2\2\u025b\3\2\2\2\2\u025d\3\2\2\2\2\u025f\3\2\2\2\2\u0261\3\2\2\2\2\u0263"+ + "\3\2\2\2\2\u0265\3\2\2\2\2\u0267\3\2\2\2\2\u0269\3\2\2\2\2\u026b\3\2\2"+ + "\2\2\u026d\3\2\2\2\2\u026f\3\2\2\2\2\u0271\3\2\2\2\2\u0273\3\2\2\2\2\u0275"+ + "\3\2\2\2\2\u0277\3\2\2\2\2\u0279\3\2\2\2\2\u027b\3\2\2\2\2\u027d\3\2\2"+ + "\2\2\u027f\3\2\2\2\2\u0281\3\2\2\2\2\u0283\3\2\2\2\2\u0285\3\2\2\2\2\u0287"+ + "\3\2\2\2\2\u0289\3\2\2\2\2\u028b\3\2\2\2\2\u028d\3\2\2\2\2\u028f\3\2\2"+ + "\2\2\u0291\3\2\2\2\2\u0293\3\2\2\2\2\u0295\3\2\2\2\2\u0297\3\2\2\2\2\u0299"+ + "\3\2\2\2\2\u029b\3\2\2\2\2\u029d\3\2\2\2\2\u029f\3\2\2\2\2\u02a1\3\2\2"+ + "\2\2\u02a3\3\2\2\2\2\u02a5\3\2\2\2\2\u02a7\3\2\2\2\2\u02a9\3\2\2\2\2\u02ab"+ + "\3\2\2\2\2\u02ad\3\2\2\2\2\u02af\3\2\2\2\2\u02b1\3\2\2\2\2\u02b3\3\2\2"+ + "\2\2\u02b5\3\2\2\2\2\u02b7\3\2\2\2\2\u02b9\3\2\2\2\2\u02bb\3\2\2\2\2\u02bd"+ + "\3\2\2\2\2\u02bf\3\2\2\2\2\u02c1\3\2\2\2\2\u02c3\3\2\2\2\2\u02c5\3\2\2"+ + "\2\2\u02c7\3\2\2\2\2\u02c9\3\2\2\2\2\u02cb\3\2\2\2\2\u02cd\3\2\2\2\2\u02cf"+ + "\3\2\2\2\2\u02d1\3\2\2\2\2\u02d3\3\2\2\2\2\u02d5\3\2\2\2\2\u02d7\3\2\2"+ + "\2\2\u02d9\3\2\2\2\2\u02db\3\2\2\2\2\u02dd\3\2\2\2\2\u02df\3\2\2\2\2\u02e1"+ + "\3\2\2\2\2\u02e3\3\2\2\2\2\u02e5\3\2\2\2\2\u02e7\3\2\2\2\2\u02e9\3\2\2"+ + "\2\2\u02eb\3\2\2\2\2\u02ed\3\2\2\2\2\u02ef\3\2\2\2\2\u02f1\3\2\2\2\2\u02f3"+ + "\3\2\2\2\2\u02f5\3\2\2\2\2\u02f7\3\2\2\2\2\u02f9\3\2\2\2\2\u02fb\3\2\2"+ + "\2\2\u02fd\3\2\2\2\2\u02ff\3\2\2\2\2\u0301\3\2\2\2\2\u0303\3\2\2\2\2\u0305"+ + "\3\2\2\2\2\u0307\3\2\2\2\2\u0309\3\2\2\2\2\u030b\3\2\2\2\2\u030d\3\2\2"+ + "\2\2\u030f\3\2\2\2\2\u0311\3\2\2\2\2\u0313\3\2\2\2\2\u0315\3\2\2\2\2\u0317"+ + "\3\2\2\2\2\u0319\3\2\2\2\2\u031b\3\2\2\2\2\u031d\3\2\2\2\2\u031f\3\2\2"+ + "\2\2\u0321\3\2\2\2\2\u0323\3\2\2\2\2\u0325\3\2\2\2\2\u0327\3\2\2\2\2\u0329"+ + "\3\2\2\2\2\u032b\3\2\2\2\2\u032d\3\2\2\2\2\u032f\3\2\2\2\2\u0331\3\2\2"+ + "\2\2\u0333\3\2\2\2\2\u0335\3\2\2\2\2\u0337\3\2\2\2\2\u0339\3\2\2\2\2\u033b"+ + "\3\2\2\2\2\u033d\3\2\2\2\2\u033f\3\2\2\2\2\u0341\3\2\2\2\2\u0343\3\2\2"+ + "\2\2\u0345\3\2\2\2\2\u0347\3\2\2\2\2\u0349\3\2\2\2\2\u034b\3\2\2\2\2\u034d"+ + "\3\2\2\2\2\u034f\3\2\2\2\2\u0351\3\2\2\2\2\u0353\3\2\2\2\2\u0355\3\2\2"+ + "\2\2\u0357\3\2\2\2\2\u0359\3\2\2\2\2\u035b\3\2\2\2\2\u035d\3\2\2\2\2\u035f"+ + "\3\2\2\2\2\u0361\3\2\2\2\2\u0363\3\2\2\2\2\u0365\3\2\2\2\2\u0367\3\2\2"+ + "\2\2\u0369\3\2\2\2\2\u036b\3\2\2\2\2\u036d\3\2\2\2\2\u036f\3\2\2\2\2\u0371"+ + "\3\2\2\2\2\u0373\3\2\2\2\2\u0375\3\2\2\2\2\u0377\3\2\2\2\2\u0379\3\2\2"+ + "\2\2\u037b\3\2\2\2\2\u037d\3\2\2\2\2\u037f\3\2\2"; + private static final String _serializedATNSegment1 = + "\2\2\u0381\3\2\2\2\2\u0383\3\2\2\2\2\u0385\3\2\2\2\2\u0387\3\2\2\2\2\u0389"+ + "\3\2\2\2\2\u038b\3\2\2\2\2\u038d\3\2\2\2\2\u038f\3\2\2\2\2\u0391\3\2\2"+ + "\2\2\u0393\3\2\2\2\2\u0395\3\2\2\2\2\u0397\3\2\2\2\2\u0399\3\2\2\2\2\u039b"+ + "\3\2\2\2\2\u039d\3\2\2\2\2\u039f\3\2\2\2\2\u03a1\3\2\2\2\2\u03a3\3\2\2"+ + "\2\2\u03a5\3\2\2\2\2\u03a7\3\2\2\2\2\u03a9\3\2\2\2\2\u03ab\3\2\2\2\2\u03ad"+ + "\3\2\2\2\2\u03af\3\2\2\2\2\u03b1\3\2\2\2\2\u03b3\3\2\2\2\2\u03b5\3\2\2"+ + "\2\2\u03b7\3\2\2\2\2\u03b9\3\2\2\2\2\u03bb\3\2\2\2\2\u03bd\3\2\2\2\2\u03bf"+ + "\3\2\2\2\2\u03c1\3\2\2\2\2\u03c3\3\2\2\2\2\u03c5\3\2\2\2\2\u03c7\3\2\2"+ + "\2\2\u03c9\3\2\2\2\2\u03cb\3\2\2\2\2\u03cd\3\2\2\2\2\u03cf\3\2\2\2\2\u03d1"+ + "\3\2\2\2\2\u03d3\3\2\2\2\2\u03d5\3\2\2\2\2\u03d7\3\2\2\2\2\u03d9\3\2\2"+ + "\2\2\u03db\3\2\2\2\2\u03dd\3\2\2\2\2\u03df\3\2\2\2\2\u03e1\3\2\2\2\2\u03e3"+ + "\3\2\2\2\2\u03e5\3\2\2\2\2\u03e7\3\2\2\2\2\u03e9\3\2\2\2\2\u03eb\3\2\2"+ + "\2\2\u03ed\3\2\2\2\2\u03ef\3\2\2\2\2\u03f1\3\2\2\2\2\u03f3\3\2\2\2\2\u03f5"+ + "\3\2\2\2\2\u03f7\3\2\2\2\2\u03f9\3\2\2\2\2\u03fb\3\2\2\2\2\u03fd\3\2\2"+ + "\2\2\u03ff\3\2\2\2\2\u0401\3\2\2\2\2\u0403\3\2\2\2\2\u0405\3\2\2\2\2\u0407"+ + "\3\2\2\2\2\u0409\3\2\2\2\2\u040b\3\2\2\2\2\u040d\3\2\2\2\2\u040f\3\2\2"+ + "\2\2\u0411\3\2\2\2\2\u0413\3\2\2\2\2\u0415\3\2\2\2\2\u0417\3\2\2\2\2\u0419"+ + "\3\2\2\2\2\u041b\3\2\2\2\2\u041d\3\2\2\2\2\u041f\3\2\2\2\2\u0421\3\2\2"+ + "\2\2\u0423\3\2\2\2\2\u0425\3\2\2\2\2\u0427\3\2\2\2\2\u0429\3\2\2\2\2\u042b"+ + "\3\2\2\2\2\u042d\3\2\2\2\2\u042f\3\2\2\2\2\u0431\3\2\2\2\2\u0433\3\2\2"+ + "\2\2\u0435\3\2\2\2\2\u0437\3\2\2\2\2\u0439\3\2\2\2\2\u043b\3\2\2\2\2\u043d"+ + "\3\2\2\2\2\u043f\3\2\2\2\2\u0441\3\2\2\2\2\u0443\3\2\2\2\2\u0445\3\2\2"+ + "\2\2\u0447\3\2\2\2\2\u0449\3\2\2\2\2\u044b\3\2\2\2\2\u044d\3\2\2\2\2\u044f"+ + "\3\2\2\2\2\u0451\3\2\2\2\2\u0453\3\2\2\2\2\u0455\3\2\2\2\2\u0457\3\2\2"+ + "\2\2\u0459\3\2\2\2\2\u045b\3\2\2\2\2\u045d\3\2\2\2\2\u045f\3\2\2\2\2\u0461"+ + "\3\2\2\2\2\u0463\3\2\2\2\2\u0465\3\2\2\2\2\u0467\3\2\2\2\2\u0469\3\2\2"+ + "\2\2\u046b\3\2\2\2\2\u046d\3\2\2\2\2\u046f\3\2\2\2\2\u0471\3\2\2\2\2\u0473"+ + "\3\2\2\2\2\u0475\3\2\2\2\2\u0477\3\2\2\2\2\u0479\3\2\2\2\2\u047b\3\2\2"+ + "\2\2\u047d\3\2\2\2\2\u047f\3\2\2\2\2\u0481\3\2\2\2\2\u0483\3\2\2\2\2\u0485"+ + "\3\2\2\2\2\u0487\3\2\2\2\2\u0489\3\2\2\2\2\u048b\3\2\2\2\2\u048d\3\2\2"+ + "\2\2\u048f\3\2\2\2\2\u0491\3\2\2\2\2\u0493\3\2\2\2\2\u0495\3\2\2\2\2\u0497"+ + "\3\2\2\2\2\u0499\3\2\2\2\2\u049b\3\2\2\2\2\u049d\3\2\2\2\2\u049f\3\2\2"+ + "\2\2\u04a1\3\2\2\2\2\u04a3\3\2\2\2\2\u04a5\3\2\2\2\2\u04a7\3\2\2\2\2\u04a9"+ + "\3\2\2\2\2\u04ab\3\2\2\2\2\u04ad\3\2\2\2\2\u04af\3\2\2\2\2\u04b1\3\2\2"+ + "\2\2\u04b3\3\2\2\2\2\u04b5\3\2\2\2\2\u04b7\3\2\2\2\2\u04b9\3\2\2\2\2\u04bb"+ + "\3\2\2\2\2\u04bd\3\2\2\2\2\u04bf\3\2\2\2\2\u04c1\3\2\2\2\2\u04c3\3\2\2"+ + "\2\2\u04c5\3\2\2\2\2\u04c7\3\2\2\2\2\u04c9\3\2\2\2\2\u04cb\3\2\2\2\2\u04cd"+ + "\3\2\2\2\2\u04cf\3\2\2\2\2\u04d1\3\2\2\2\2\u04d3\3\2\2\2\2\u04d5\3\2\2"+ + "\2\2\u04d7\3\2\2\2\2\u04d9\3\2\2\2\2\u04db\3\2\2\2\2\u04dd\3\2\2\2\2\u04df"+ + "\3\2\2\2\2\u04e1\3\2\2\2\2\u04e3\3\2\2\2\2\u04e5\3\2\2\2\2\u04e7\3\2\2"+ + "\2\2\u04e9\3\2\2\2\2\u04eb\3\2\2\2\2\u04ed\3\2\2\2\2\u04ef\3\2\2\2\2\u04f1"+ + "\3\2\2\2\2\u04f3\3\2\2\2\2\u04f5\3\2\2\2\2\u04f7\3\2\2\2\2\u04f9\3\2\2"+ + "\2\2\u04fb\3\2\2\2\2\u04fd\3\2\2\2\2\u04ff\3\2\2\2\2\u0501\3\2\2\2\2\u0503"+ + "\3\2\2\2\2\u0505\3\2\2\2\2\u0507\3\2\2\2\2\u0509\3\2\2\2\2\u050b\3\2\2"+ + "\2\2\u050d\3\2\2\2\2\u050f\3\2\2\2\2\u0511\3\2\2\2\2\u0513\3\2\2\2\2\u0515"+ + "\3\2\2\2\2\u0517\3\2\2\2\2\u0519\3\2\2\2\2\u051b\3\2\2\2\2\u051d\3\2\2"+ + "\2\2\u051f\3\2\2\2\2\u0521\3\2\2\2\2\u0523\3\2\2\2\2\u0525\3\2\2\2\2\u0527"+ + "\3\2\2\2\2\u0529\3\2\2\2\2\u052b\3\2\2\2\2\u052d\3\2\2\2\2\u052f\3\2\2"+ + "\2\2\u0531\3\2\2\2\2\u0533\3\2\2\2\2\u0535\3\2\2\2\2\u0537\3\2\2\2\2\u0539"+ + "\3\2\2\2\2\u053b\3\2\2\2\2\u053d\3\2\2\2\2\u053f\3\2\2\2\2\u0541\3\2\2"+ + "\2\2\u0543\3\2\2\2\2\u0545\3\2\2\2\2\u0547\3\2\2\2\2\u0549\3\2\2\2\2\u054b"+ + "\3\2\2\2\2\u054d\3\2\2\2\2\u054f\3\2\2\2\2\u0551\3\2\2\2\2\u0553\3\2\2"+ + "\2\2\u0555\3\2\2\2\2\u0557\3\2\2\2\2\u0559\3\2\2\2\2\u055b\3\2\2\2\2\u055d"+ + "\3\2\2\2\2\u055f\3\2\2\2\2\u0561\3\2\2\2\2\u0563\3\2\2\2\2\u0565\3\2\2"+ + "\2\2\u0567\3\2\2\2\2\u0569\3\2\2\2\2\u056b\3\2\2\2\2\u056d\3\2\2\2\2\u056f"+ + "\3\2\2\2\2\u0571\3\2\2\2\2\u0573\3\2\2\2\2\u0575\3\2\2\2\2\u0577\3\2\2"+ + "\2\2\u0579\3\2\2\2\2\u057b\3\2\2\2\2\u057d\3\2\2\2\2\u057f\3\2\2\2\2\u0581"+ + "\3\2\2\2\2\u0583\3\2\2\2\2\u0585\3\2\2\2\2\u0587\3\2\2\2\2\u0589\3\2\2"+ + "\2\2\u058b\3\2\2\2\2\u058d\3\2\2\2\2\u058f\3\2\2\2\2\u0591\3\2\2\2\2\u0593"+ + "\3\2\2\2\2\u0595\3\2\2\2\2\u0597\3\2\2\2\2\u0599\3\2\2\2\2\u059b\3\2\2"+ + "\2\2\u059d\3\2\2\2\2\u059f\3\2\2\2\2\u05a1\3\2\2\2\2\u05a3\3\2\2\2\2\u05a5"+ + "\3\2\2\2\2\u05a7\3\2\2\2\2\u05a9\3\2\2\2\2\u05ab\3\2\2\2\2\u05ad\3\2\2"+ + "\2\2\u05af\3\2\2\2\2\u05b1\3\2\2\2\2\u05b3\3\2\2\2\2\u05b5\3\2\2\2\2\u05b7"+ + "\3\2\2\2\2\u05b9\3\2\2\2\2\u05bb\3\2\2\2\2\u05bd\3\2\2\2\2\u05bf\3\2\2"+ + "\2\2\u05c1\3\2\2\2\2\u05c3\3\2\2\2\2\u05c5\3\2\2\2\2\u05c7\3\2\2\2\2\u05c9"+ + "\3\2\2\2\2\u05cb\3\2\2\2\2\u05cd\3\2\2\2\2\u05cf\3\2\2\2\2\u05d1\3\2\2"+ + "\2\2\u05d3\3\2\2\2\2\u05d5\3\2\2\2\2\u05d7\3\2\2\2\2\u05d9\3\2\2\2\2\u05db"+ + "\3\2\2\2\2\u05dd\3\2\2\2\2\u05df\3\2\2\2\2\u05e1\3\2\2\2\2\u05e3\3\2\2"+ + "\2\2\u05e5\3\2\2\2\2\u05e7\3\2\2\2\2\u05e9\3\2\2\2\2\u05eb\3\2\2\2\2\u05ed"+ + "\3\2\2\2\2\u05ef\3\2\2\2\2\u05f1\3\2\2\2\2\u05f3\3\2\2\2\2\u05f5\3\2\2"+ + "\2\2\u05f7\3\2\2\2\2\u05f9\3\2\2\2\2\u05fb\3\2\2\2\2\u05fd\3\2\2\2\2\u05ff"+ + "\3\2\2\2\2\u0601\3\2\2\2\2\u0603\3\2\2\2\2\u0605\3\2\2\2\2\u0607\3\2\2"+ + "\2\2\u0609\3\2\2\2\2\u060b\3\2\2\2\2\u060d\3\2\2\2\2\u060f\3\2\2\2\2\u0611"+ + "\3\2\2\2\2\u0613\3\2\2\2\2\u0615\3\2\2\2\2\u0617\3\2\2\2\2\u0619\3\2\2"+ + "\2\2\u061b\3\2\2\2\2\u061d\3\2\2\2\2\u061f\3\2\2\2\2\u0621\3\2\2\2\2\u0623"+ + "\3\2\2\2\2\u0625\3\2\2\2\2\u0627\3\2\2\2\2\u0629\3\2\2\2\2\u062b\3\2\2"+ + "\2\2\u062d\3\2\2\2\2\u062f\3\2\2\2\2\u0631\3\2\2\2\2\u0633\3\2\2\2\2\u0635"+ + "\3\2\2\2\2\u0637\3\2\2\2\2\u0639\3\2\2\2\2\u063b\3\2\2\2\2\u063d\3\2\2"+ + "\2\2\u063f\3\2\2\2\2\u0641\3\2\2\2\2\u0643\3\2\2\2\2\u0645\3\2\2\2\2\u0647"+ + "\3\2\2\2\2\u0649\3\2\2\2\2\u064b\3\2\2\2\2\u064d\3\2\2\2\2\u064f\3\2\2"+ + "\2\2\u0651\3\2\2\2\2\u0653\3\2\2\2\2\u0655\3\2\2\2\2\u0657\3\2\2\2\2\u0659"+ + "\3\2\2\2\2\u065b\3\2\2\2\2\u065d\3\2\2\2\2\u065f\3\2\2\2\2\u0661\3\2\2"+ + "\2\2\u0663\3\2\2\2\2\u0665\3\2\2\2\2\u0667\3\2\2\2\2\u0669\3\2\2\2\2\u066b"+ + "\3\2\2\2\2\u066d\3\2\2\2\2\u066f\3\2\2\2\2\u0671\3\2\2\2\2\u0673\3\2\2"+ + "\2\2\u0675\3\2\2\2\2\u0677\3\2\2\2\2\u0679\3\2\2\2\2\u067b\3\2\2\2\2\u067d"+ + "\3\2\2\2\2\u067f\3\2\2\2\2\u0681\3\2\2\2\2\u0683\3\2\2\2\2\u0685\3\2\2"+ + "\2\2\u0687\3\2\2\2\2\u0689\3\2\2\2\2\u068b\3\2\2\2\2\u068d\3\2\2\2\2\u068f"+ + "\3\2\2\2\2\u0691\3\2\2\2\2\u0693\3\2\2\2\2\u0695\3\2\2\2\2\u0697\3\2\2"+ + "\2\2\u0699\3\2\2\2\2\u069b\3\2\2\2\2\u069d\3\2\2\2\2\u069f\3\2\2\2\2\u06a1"+ + "\3\2\2\2\2\u06a3\3\2\2\2\2\u06a5\3\2\2\2\2\u06a7\3\2\2\2\2\u06a9\3\2\2"+ + "\2\2\u06ab\3\2\2\2\2\u06ad\3\2\2\2\2\u06af\3\2\2\2\2\u06b1\3\2\2\2\2\u06b3"+ + "\3\2\2\2\2\u06b5\3\2\2\2\2\u06b7\3\2\2\2\2\u06b9\3\2\2\2\2\u06bb\3\2\2"+ + "\2\2\u06bd\3\2\2\2\2\u06bf\3\2\2\2\2\u06c1\3\2\2\2\3\u06c4\3\2\2\2\5\u06ca"+ + "\3\2\2\2\7\u06d8\3\2\2\2\t\u06e5\3\2\2\2\13\u06e7\3\2\2\2\r\u06e9\3\2"+ + "\2\2\17\u06eb\3\2\2\2\21\u06ed\3\2\2\2\23\u06ef\3\2\2\2\25\u06f1\3\2\2"+ + "\2\27\u06f3\3\2\2\2\31\u06f5\3\2\2\2\33\u06f7\3\2\2\2\35\u06f9\3\2\2\2"+ + "\37\u06fb\3\2\2\2!\u06fd\3\2\2\2#\u06ff\3\2\2\2%\u0701\3\2\2\2\'\u0703"+ + "\3\2\2\2)\u0705\3\2\2\2+\u0707\3\2\2\2-\u0709\3\2\2\2/\u070b\3\2\2\2\61"+ + "\u070d\3\2\2\2\63\u070f\3\2\2\2\65\u0711\3\2\2\2\67\u0713\3\2\2\29\u0715"+ + "\3\2\2\2;\u0717\3\2\2\2=\u0719\3\2\2\2?\u071b\3\2\2\2A\u071d\3\2\2\2C"+ + "\u072a\3\2\2\2E\u0737\3\2\2\2G\u0744\3\2\2\2I\u0746\3\2\2\2K\u074c\3\2"+ + "\2\2M\u0750\3\2\2\2O\u0759\3\2\2\2Q\u0760\3\2\2\2S\u0767\3\2\2\2U\u076b"+ + "\3\2\2\2W\u076f\3\2\2\2Y\u0775\3\2\2\2[\u077b\3\2\2\2]\u0785\3\2\2\2_"+ + "\u078b\3\2\2\2a\u078f\3\2\2\2c\u0798\3\2\2\2e\u079d\3\2\2\2g\u07a3\3\2"+ + "\2\2i\u07aa\3\2\2\2k\u07b2\3\2\2\2m\u07ba\3\2\2\2o\u07be\3\2\2\2q\u07c2"+ + "\3\2\2\2s\u07c6\3\2\2\2u\u07cc\3\2\2\2w\u07cf\3\2\2\2y\u07d3\3\2\2\2{"+ + "\u07de\3\2\2\2}\u07e8\3\2\2\2\177\u07f3\3\2\2\2\u0081\u07fe\3\2\2\2\u0083"+ + "\u0801\3\2\2\2\u0085\u0808\3\2\2\2\u0087\u0812\3\2\2\2\u0089\u081d\3\2"+ + "\2\2\u008b\u082b\3\2\2\2\u008d\u082f\3\2\2\2\u008f\u0838\3\2\2\2\u0091"+ + "\u083f\3\2\2\2\u0093\u0845\3\2\2\2\u0095\u084f\3\2\2\2\u0097\u0857\3\2"+ + "\2\2\u0099\u085e\3\2\2\2\u009b\u0865\3\2\2\2\u009d\u0869\3\2\2\2\u009f"+ + "\u0874\3\2\2\2\u00a1\u087b\3\2\2\2\u00a3\u0880\3\2\2\2\u00a5\u0888\3\2"+ + "\2\2\u00a7\u088d\3\2\2\2\u00a9\u0895\3\2\2\2\u00ab\u089d\3\2\2\2\u00ad"+ + "\u08a0\3\2\2\2\u00af\u08a2\3\2\2\2\u00b1\u08a8\3\2\2\2\u00b3\u08ad\3\2"+ + "\2\2\u00b5\u08b4\3\2\2\2\u00b7\u08c0\3\2\2\2\u00b9\u08c8\3\2\2\2\u00bb"+ + "\u08d1\3\2\2\2\u00bd\u08d6\3\2\2\2\u00bf\u08db\3\2\2\2\u00c1\u08e3\3\2"+ + "\2\2\u00c3\u08f0\3\2\2\2\u00c5\u08f5\3\2\2\2\u00c7\u08fd\3\2\2\2\u00c9"+ + "\u0903\3\2\2\2\u00cb\u0908\3\2\2\2\u00cd\u0914\3\2\2\2\u00cf\u091e\3\2"+ + "\2\2\u00d1\u092f\3\2\2\2\u00d3\u0945\3\2\2\2\u00d5\u0958\3\2\2\2\u00d7"+ + "\u096d\3\2\2\2\u00d9\u097d\3\2\2\2\u00db\u0988\3\2\2\2\u00dd\u098e\3\2"+ + "\2\2\u00df\u0996\3\2\2\2\u00e1\u09a1\3\2\2\2\u00e3\u09a7\3\2\2\2\u00e5"+ + "\u09b4\3\2\2\2\u00e7\u09b9\3\2\2\2\u00e9\u09bf\3\2\2\2\u00eb\u09c7\3\2"+ + "\2\2\u00ed\u09d0\3\2\2\2\u00ef\u09d6\3\2\2\2\u00f1\u09de\3\2\2\2\u00f3"+ + "\u09e8\3\2\2\2\u00f5\u09fa\3\2\2\2\u00f7\u0a09\3\2\2\2\u00f9\u0a1a\3\2"+ + "\2\2\u00fb\u0a22\3\2\2\2\u00fd\u0a29\3\2\2\2\u00ff\u0a35\3\2\2\2\u0101"+ + "\u0a46\3\2\2\2\u0103\u0a5c\3\2\2\2\u0105\u0a64\3\2\2\2\u0107\u0a6b\3\2"+ + "\2\2\u0109\u0a75\3\2\2\2\u010b\u0a80\3\2\2\2\u010d\u0a8a\3\2\2\2\u010f"+ + "\u0a9b\3\2\2\2\u0111\u0aa9\3\2\2\2\u0113\u0ab2\3\2\2\2\u0115\u0aba\3\2"+ + "\2\2\u0117\u0ac5\3\2\2\2\u0119\u0ad5\3\2\2\2\u011b\u0ae0\3\2\2\2\u011d"+ + "\u0af3\3\2\2\2\u011f\u0b03\3\2\2\2\u0121\u0b15\3\2\2\2\u0123\u0b21\3\2"+ + "\2\2\u0125\u0b2d\3\2\2\2\u0127\u0b36\3\2\2\2\u0129\u0b3f\3\2\2\2\u012b"+ + "\u0b4a\3\2\2\2\u012d\u0b52\3\2\2\2\u012f\u0b57\3\2\2\2\u0131\u0b5c\3\2"+ + "\2\2\u0133\u0b6a\3\2\2\2\u0135\u0b70\3\2\2\2\u0137\u0b76\3\2\2\2\u0139"+ + "\u0b80\3\2\2\2\u013b\u0b8b\3\2\2\2\u013d\u0b92\3\2\2\2\u013f\u0b9b\3\2"+ + "\2\2\u0141\u0ba6\3\2\2\2\u0143\u0bac\3\2\2\2\u0145\u0bb0\3\2\2\2\u0147"+ + "\u0bb5\3\2\2\2\u0149\u0bbf\3\2\2\2\u014b\u0bc7\3\2\2\2\u014d\u0bd4\3\2"+ + "\2\2\u014f\u0bf4\3\2\2\2\u0151\u0c01\3\2\2\2\u0153\u0c0e\3\2\2\2\u0155"+ + "\u0c1b\3\2\2\2\u0157\u0c2d\3\2\2\2\u0159\u0c4e\3\2\2\2\u015b\u0c5b\3\2"+ + "\2\2\u015d\u0c62\3\2\2\2\u015f\u0c6e\3\2\2\2\u0161\u0c74\3\2\2\2\u0163"+ + "\u0c79\3\2\2\2\u0165\u0c82\3\2\2\2\u0167\u0c87\3\2\2\2\u0169\u0c9e\3\2"+ + "\2\2\u016b\u0cba\3\2\2\2\u016d\u0cbe\3\2\2\2\u016f\u0cc9\3\2\2\2\u0171"+ + "\u0ccd\3\2\2\2\u0173\u0cd5\3\2\2\2\u0175\u0cdd\3\2\2\2\u0177\u0ce5\3\2"+ + "\2\2\u0179\u0cee\3\2\2\2\u017b\u0cf8\3\2\2\2\u017d\u0d03\3\2\2\2\u017f"+ + "\u0d0c\3\2\2\2\u0181\u0d14\3\2\2\2\u0183\u0d1c\3\2\2\2\u0185\u0d23\3\2"+ + "\2\2\u0187\u0d2a\3\2\2\2\u0189\u0d34\3\2\2\2\u018b\u0d3f\3\2\2\2\u018d"+ + "\u0d4a\3\2\2\2\u018f\u0d52\3\2\2\2\u0191\u0d58\3\2\2\2\u0193\u0d5e\3\2"+ + "\2\2\u0195\u0d66\3\2\2\2\u0197\u0d6b\3\2\2\2\u0199\u0d74\3\2\2\2\u019b"+ + "\u0d7f\3\2\2\2\u019d\u0d87\3\2\2\2\u019f\u0d92\3\2\2\2\u01a1\u0da0\3\2"+ + "\2\2\u01a3\u0dac\3\2\2\2\u01a5\u0db7\3\2\2\2\u01a7\u0dbf\3\2\2\2\u01a9"+ + "\u0dd5\3\2\2\2\u01ab\u0ddd\3\2\2\2\u01ad\u0de8\3\2\2\2\u01af\u0df1\3\2"+ + "\2\2\u01b1\u0dfa\3\2\2\2\u01b3\u0dfd\3\2\2\2\u01b5\u0e04\3\2\2\2\u01b7"+ + "\u0e0b\3\2\2\2\u01b9\u0e10\3\2\2\2\u01bb\u0e18\3\2\2\2\u01bd\u0e29\3\2"+ + "\2\2\u01bf\u0e3f\3\2\2\2\u01c1\u0e44\3\2\2\2\u01c3\u0e4c\3\2\2\2\u01c5"+ + "\u0e51\3\2\2\2\u01c7\u0e58\3\2\2\2\u01c9\u0e61\3\2\2\2\u01cb\u0e6b\3\2"+ + "\2\2\u01cd\u0e6f\3\2\2\2\u01cf\u0e78\3\2\2\2\u01d1\u0e7f\3\2\2\2\u01d3"+ + "\u0e86\3\2\2\2\u01d5\u0e8c\3\2\2\2\u01d7\u0e93\3\2\2\2\u01d9\u0e9d\3\2"+ + "\2\2\u01db\u0ea5\3\2\2\2\u01dd\u0eaf\3\2\2\2\u01df\u0eb9\3\2\2\2\u01e1"+ + "\u0ebe\3\2\2\2\u01e3\u0ec6\3\2\2\2\u01e5\u0ecf\3\2\2\2\u01e7\u0ed6\3\2"+ + "\2\2\u01e9\u0eda\3\2\2\2\u01eb\u0ee2\3\2\2\2\u01ed\u0eeb\3\2\2\2\u01ef"+ + "\u0ef5\3\2\2\2\u01f1\u0efe\3\2\2\2\u01f3\u0f06\3\2\2\2\u01f5\u0f0c\3\2"+ + "\2\2\u01f7\u0f12\3\2\2\2\u01f9\u0f19\3\2\2\2\u01fb\u0f20\3\2\2\2\u01fd"+ + "\u0f26\3\2\2\2\u01ff\u0f2c\3\2\2\2\u0201\u0f32\3\2\2\2\u0203\u0f38\3\2"+ + "\2\2\u0205\u0f42\3\2\2\2\u0207\u0f46\3\2\2\2\u0209\u0f4c\3\2\2\2\u020b"+ + "\u0f54\3\2\2\2\u020d\u0f5b\3\2\2\2\u020f\u0f63\3\2\2\2\u0211\u0f6b\3\2"+ + "\2\2\u0213\u0f71\3\2\2\2\u0215\u0f76\3\2\2\2\u0217\u0f7d\3\2\2\2\u0219"+ + "\u0f82\3\2\2\2\u021b\u0f87\3\2\2\2\u021d\u0f90\3\2\2\2\u021f\u0f97\3\2"+ + "\2\2\u0221\u0f99\3\2\2\2\u0223\u0fa1\3\2\2\2\u0225\u0fab\3\2\2\2\u0227"+ + "\u0faf\3\2\2\2\u0229\u0fb6\3\2\2\2\u022b\u0fb9\3\2\2\2\u022d\u0fbe\3\2"+ + "\2\2\u022f\u0fc4\3\2\2\2\u0231\u0fcc\3\2\2\2\u0233\u0fd5\3\2\2\2\u0235"+ + "\u0fdb\3\2\2\2\u0237\u0fe4\3\2\2\2\u0239\u0fec\3\2\2\2\u023b\u0ff3\3\2"+ + "\2\2\u023d\u0ffd\3\2\2\2\u023f\u1002\3\2\2\2\u0241\u1007\3\2\2\2\u0243"+ + "\u100c\3\2\2\2\u0245\u1015\3\2\2\2\u0247\u101c\3\2\2\2\u0249\u1022\3\2"+ + "\2\2\u024b\u102c\3\2\2\2\u024d\u1036\3\2\2\2\u024f\u1045\3\2\2\2\u0251"+ + "\u104e\3\2\2\2\u0253\u1051\3\2\2\2\u0255\u105b\3\2\2\2\u0257\u1065\3\2"+ + "\2\2\u0259\u106b\3\2\2\2\u025b\u1075\3\2\2\2\u025d\u107b\3\2\2\2\u025f"+ + "\u1084\3\2\2\2\u0261\u108f\3\2\2\2\u0263\u1099\3\2\2\2\u0265\u109f\3\2"+ + "\2\2\u0267\u10a5\3\2\2\2\u0269\u10ab\3\2\2\2\u026b\u10b7\3\2\2\2\u026d"+ + "\u10be\3\2\2\2\u026f\u10c7\3\2\2\2\u0271\u10d4\3\2\2\2\u0273\u10dc\3\2"+ + "\2\2\u0275\u10e0\3\2\2\2\u0277\u10e8\3\2\2\2\u0279\u10f2\3\2\2\2\u027b"+ + "\u10ff\3\2\2\2\u027d\u1108\3\2\2\2\u027f\u110d\3\2\2\2\u0281\u1115\3\2"+ + "\2\2\u0283\u1118\3\2\2\2\u0285\u1122\3\2\2\2\u0287\u112a\3\2\2\2\u0289"+ + "\u112f\3\2\2\2\u028b\u1131\3\2\2\2\u028d\u1135\3\2\2\2\u028f\u1140\3\2"+ + "\2\2\u0291\u1149\3\2\2\2\u0293\u114f\3\2\2\2\u0295\u115b\3\2\2\2\u0297"+ + "\u1164\3\2\2\2\u0299\u116a\3\2\2\2\u029b\u116f\3\2\2\2\u029d\u1177\3\2"+ + "\2\2\u029f\u117f\3\2\2\2\u02a1\u1185\3\2\2\2\u02a3\u118a\3\2\2\2\u02a5"+ + "\u1191\3\2\2\2\u02a7\u1196\3\2\2\2\u02a9\u119c\3\2\2\2\u02ab\u11a1\3\2"+ + "\2\2\u02ad\u11a7\3\2\2\2\u02af\u11ae\3\2\2\2\u02b1\u11b1\3\2\2\2\u02b3"+ + "\u11b6\3\2\2\2\u02b5\u11bc\3\2\2\2\u02b7\u11c6\3\2\2\2\u02b9\u11d5\3\2"+ + "\2\2\u02bb\u11de\3\2\2\2\u02bd\u11e6\3\2\2\2\u02bf\u11eb\3\2\2\2\u02c1"+ + "\u11f2\3\2\2\2\u02c3\u11f8\3\2\2\2\u02c5\u11fa\3\2\2\2\u02c7\u11ff\3\2"+ + "\2\2\u02c9\u1203\3\2\2\2\u02cb\u120b\3\2\2\2\u02cd\u1211\3\2\2\2\u02cf"+ + "\u121e\3\2\2\2\u02d1\u1226\3\2\2\2\u02d3\u122a\3\2\2\2\u02d5\u1233\3\2"+ + "\2\2\u02d7\u123a\3\2\2\2\u02d9\u1240\3\2\2\2\u02db\u124f\3\2\2\2\u02dd"+ + "\u1264\3\2\2\2\u02df\u1271\3\2\2\2\u02e1\u1278\3\2\2\2\u02e3\u127c\3\2"+ + "\2\2\u02e5\u1283\3\2\2\2\u02e7\u128c\3\2\2\2\u02e9\u1290\3\2\2\2\u02eb"+ + "\u1295\3\2\2\2\u02ed\u129e\3\2\2\2\u02ef\u12a5\3\2\2\2\u02f1\u12ac\3\2"+ + "\2\2\u02f3\u12b2\3\2\2\2\u02f5\u12b7\3\2\2\2\u02f7\u12bc\3\2\2\2\u02f9"+ + "\u12c5\3\2\2\2\u02fb\u12cb\3\2\2\2\u02fd\u12d0\3\2\2\2\u02ff\u12d6\3\2"+ + "\2\2\u0301\u12df\3\2\2\2\u0303\u12e7\3\2\2\2\u0305\u12ed\3\2\2\2\u0307"+ + "\u12f3\3\2\2\2\u0309\u12fb\3\2\2\2\u030b\u12ff\3\2\2\2\u030d\u1304\3\2"+ + "\2\2\u030f\u1307\3\2\2\2\u0311\u1312\3\2\2\2\u0313\u131f\3\2\2\2\u0315"+ + "\u1324\3\2\2\2\u0317\u132e\3\2\2\2\u0319\u1339\3\2\2\2\u031b\u133d\3\2"+ + "\2\2\u031d\u1345\3\2\2\2\u031f\u134c\3\2\2\2\u0321\u1354\3\2\2\2\u0323"+ + "\u135b\3\2\2\2\u0325\u1360\3\2\2\2\u0327\u1369\3\2\2\2\u0329\u1370\3\2"+ + "\2\2\u032b\u1376\3\2\2\2\u032d\u137d\3\2\2\2\u032f\u1385\3\2\2\2\u0331"+ + "\u138c\3\2\2\2\u0333\u1399\3\2\2\2\u0335\u13a0\3\2\2\2\u0337\u13a3\3\2"+ + "\2\2\u0339\u13a7\3\2\2\2\u033b\u13ae\3\2\2\2\u033d\u13b3\3\2\2\2\u033f"+ + "\u13b7\3\2\2\2\u0341\u13ba\3\2\2\2\u0343\u13bf\3\2\2\2\u0345\u13c4\3\2"+ + "\2\2\u0347\u13ce\3\2\2\2\u0349\u13d7\3\2\2\2\u034b\u13de\3\2\2\2\u034d"+ + "\u13e6\3\2\2\2\u034f\u13e9\3\2\2\2\u0351\u13ef\3\2\2\2\u0353\u13f8\3\2"+ + "\2\2\u0355\u1403\3\2\2\2\u0357\u140a\3\2\2\2\u0359\u140e\3\2\2\2\u035b"+ + "\u1414\3\2\2\2\u035d\u141b\3\2\2\2\u035f\u1420\3\2\2\2\u0361\u1429\3\2"+ + "\2\2\u0363\u1431\3\2\2\2\u0365\u143c\3\2\2\2\u0367\u1442\3\2\2\2\u0369"+ + "\u1446\3\2\2\2\u036b\u1450\3\2\2\2\u036d\u145f\3\2\2\2\u036f\u146e\3\2"+ + "\2\2\u0371\u1489\3\2\2\2\u0373\u14a4\3\2\2\2\u0375\u14bc\3\2\2\2\u0377"+ + "\u14d6\3\2\2\2\u0379\u14e1\3\2\2\2\u037b\u14e8\3\2\2\2\u037d\u14f0\3\2"+ + "\2\2\u037f\u14fa\3\2\2\2\u0381\u1501\3\2\2\2\u0383\u150a\3\2\2\2\u0385"+ + "\u150f\3\2\2\2\u0387\u151c\3\2\2\2\u0389\u152c\3\2\2\2\u038b\u153c\3\2"+ + "\2\2\u038d\u1544\3\2\2\2\u038f\u154a\3\2\2\2\u0391\u1550\3\2\2\2\u0393"+ + "\u1554\3\2\2\2\u0395\u155d\3\2\2\2\u0397\u1565\3\2\2\2\u0399\u156b\3\2"+ + "\2\2\u039b\u1575\3\2\2\2\u039d\u157f\3\2\2\2\u039f\u1586\3\2\2\2\u03a1"+ + "\u158f\3\2\2\2\u03a3\u1597\3\2\2\2\u03a5\u15a0\3\2\2\2\u03a7\u15a9\3\2"+ + "\2\2\u03a9\u15b1\3\2\2\2\u03ab\u15b7\3\2\2\2\u03ad\u15c2\3\2\2\2\u03af"+ + "\u15cd\3\2\2\2\u03b1\u15d7\3\2\2\2\u03b3\u15de\3\2\2\2\u03b5\u15ea\3\2"+ + "\2\2\u03b7\u15f0\3\2\2\2\u03b9\u15f6\3\2\2\2\u03bb\u15fb\3\2\2\2\u03bd"+ + "\u1600\3\2\2\2\u03bf\u1606\3\2\2\2\u03c1\u160b\3\2\2\2\u03c3\u1614\3\2"+ + "\2\2\u03c5\u161c\3\2\2\2\u03c7\u1626\3\2\2\2\u03c9\u162a\3\2\2\2\u03cb"+ + "\u1635\3\2\2\2\u03cd\u1641\3\2\2\2\u03cf\u1649\3\2\2\2\u03d1\u1653\3\2"+ + "\2\2\u03d3\u165d\3\2\2\2\u03d5\u1668\3\2\2\2\u03d7\u1677\3\2\2\2\u03d9"+ + "\u167f\3\2\2\2\u03db\u168a\3\2\2\2\u03dd\u1693\3\2\2\2\u03df\u169c\3\2"+ + "\2\2\u03e1\u16a5\3\2\2\2\u03e3\u16ad\3\2\2\2\u03e5\u16b6\3\2\2\2\u03e7"+ + "\u16be\3\2\2\2\u03e9\u16c5\3\2\2\2\u03eb\u16d0\3\2\2\2\u03ed\u16d8\3\2"+ + "\2\2\u03ef\u16e0\3\2\2\2\u03f1\u16e6\3\2\2\2\u03f3\u16ee\3\2\2\2\u03f5"+ + "\u16f7\3\2\2\2\u03f7\u16fe\3\2\2\2\u03f9\u1705\3\2\2\2\u03fb\u171a\3\2"+ + "\2\2\u03fd\u172a\3\2\2\2\u03ff\u1740\3\2\2\2\u0401\u1752\3\2\2\2\u0403"+ + "\u175c\3\2\2\2\u0405\u1764\3\2\2\2\u0407\u176b\3\2\2\2\u0409\u1771\3\2"+ + "\2\2\u040b\u1776\3\2\2\2\u040d\u177f\3\2\2\2\u040f\u1786\3\2\2\2\u0411"+ + "\u178e\3\2\2\2\u0413\u179e\3\2\2\2\u0415\u17ab\3\2\2\2\u0417\u17ba\3\2"+ + "\2\2\u0419\u17be\3\2\2\2\u041b\u17c8\3\2\2\2\u041d\u17d3\3\2\2\2\u041f"+ + "\u17d8\3\2\2\2\u0421\u17dd\3\2\2\2\u0423\u17e7\3\2\2\2\u0425\u17ed\3\2"+ + "\2\2\u0427\u17f4\3\2\2\2\u0429\u1800\3\2\2\2\u042b\u1806\3\2\2\2\u042d"+ + "\u1814\3\2\2\2\u042f\u181f\3\2\2\2\u0431\u182c\3\2\2\2\u0433\u1833\3\2"+ + "\2\2\u0435\u183a\3\2\2\2\u0437\u1841\3\2\2\2\u0439\u1849\3\2\2\2\u043b"+ + "\u1852\3\2\2\2\u043d\u1859\3\2\2\2\u043f\u185e\3\2\2\2\u0441\u1868\3\2"+ + "\2\2\u0443\u1871\3\2\2\2\u0445\u187b\3\2\2\2\u0447\u1888\3\2\2\2\u0449"+ + "\u1894\3\2\2\2\u044b\u189c\3\2\2\2\u044d\u18a9\3\2\2\2\u044f\u18ad\3\2"+ + "\2\2\u0451\u18b3\3\2\2\2\u0453\u18b8\3\2\2\2\u0455\u18be\3\2\2\2\u0457"+ + "\u18c3\3\2\2\2\u0459\u18cb\3\2\2\2\u045b\u18d2\3\2\2\2\u045d\u18d7\3\2"+ + "\2\2\u045f\u18dc\3\2\2\2\u0461\u18e5\3\2\2\2\u0463\u18ee\3\2\2\2\u0465"+ + "\u18f3\3\2\2\2\u0467\u18fa\3\2\2\2\u0469\u1900\3\2\2\2\u046b\u1909\3\2"+ + "\2\2\u046d\u1917\3\2\2\2\u046f\u1924\3\2\2\2\u0471\u1928\3\2\2\2\u0473"+ + "\u1930\3\2\2\2\u0475\u1939\3\2\2\2\u0477\u1946\3\2\2\2\u0479\u194f\3\2"+ + "\2\2\u047b\u195a\3\2\2\2\u047d\u195f\3\2\2\2\u047f\u1966\3\2\2\2\u0481"+ + "\u196c\3\2\2\2\u0483\u1972\3\2\2\2\u0485\u197c\3\2\2\2\u0487\u1983\3\2"+ + "\2\2\u0489\u198e\3\2\2\2\u048b\u1999\3\2\2\2\u048d\u19a5\3\2\2\2\u048f"+ + "\u19ab\3\2\2\2\u0491\u19b2\3\2\2\2\u0493\u19ba\3\2\2\2\u0495\u19c1\3\2"+ + "\2\2\u0497\u19cb\3\2\2\2\u0499\u19d1\3\2\2\2\u049b\u19e1\3\2\2\2\u049d"+ + "\u19e9\3\2\2\2\u049f\u19f5\3\2\2\2\u04a1\u1a02\3\2\2\2\u04a3\u1a0c\3\2"+ + "\2\2\u04a5\u1a10\3\2\2\2\u04a7\u1a1a\3\2\2\2\u04a9\u1a20\3\2\2\2\u04ab"+ + "\u1a27\3\2\2\2\u04ad\u1a33\3\2\2\2\u04af\u1a39\3\2\2\2\u04b1\u1a44\3\2"+ + "\2\2\u04b3\u1a50\3\2\2\2\u04b5\u1a5b\3\2\2\2\u04b7\u1a60\3\2\2\2\u04b9"+ + "\u1a69\3\2\2\2\u04bb\u1a73\3\2\2\2\u04bd\u1a7d\3\2\2\2\u04bf\u1a82\3\2"+ + "\2\2\u04c1\u1a87\3\2\2\2\u04c3\u1a8c\3\2\2\2\u04c5\u1a91\3\2\2\2\u04c7"+ + "\u1a9b\3\2\2\2\u04c9\u1aa9\3\2\2\2\u04cb\u1ab9\3\2\2\2\u04cd\u1ac0\3\2"+ + "\2\2\u04cf\u1ac3\3\2\2\2\u04d1\u1ac9\3\2\2\2\u04d3\u1ad9\3\2\2\2\u04d5"+ + "\u1ae2\3\2\2\2\u04d7\u1aee\3\2\2\2\u04d9\u1b01\3\2\2\2\u04db\u1b18\3\2"+ + "\2\2\u04dd\u1b31\3\2\2\2\u04df\u1b3b\3\2\2\2\u04e1\u1b46\3\2\2\2\u04e3"+ + "\u1b50\3\2\2\2\u04e5\u1b5c\3\2\2\2\u04e7\u1b62\3\2\2\2\u04e9\u1b6a\3\2"+ + "\2\2\u04eb\u1b7a\3\2\2\2\u04ed\u1b87\3\2\2\2\u04ef\u1b96\3\2\2\2\u04f1"+ + "\u1b9b\3\2\2\2\u04f3\u1ba0\3\2\2\2\u04f5\u1ba9\3\2\2\2\u04f7\u1bb1\3\2"+ + "\2\2\u04f9\u1bb6\3\2\2\2\u04fb\u1bbe\3\2\2\2\u04fd\u1bc8\3\2\2\2\u04ff"+ + "\u1bd4\3\2\2\2\u0501\u1bda\3\2\2\2\u0503\u1be6\3\2\2\2\u0505\u1bec\3\2"+ + "\2\2\u0507\u1bf3\3\2\2\2\u0509\u1bfb\3\2\2\2\u050b\u1c04\3\2\2\2\u050d"+ + "\u1c0c\3\2\2\2\u050f\u1c13\3\2\2\2\u0511\u1c19\3\2\2\2\u0513\u1c20\3\2"+ + "\2\2\u0515\u1c26\3\2\2\2\u0517\u1c2c\3\2\2\2\u0519\u1c31\3\2\2\2\u051b"+ + "\u1c4b\3\2\2\2\u051d\u1c62\3\2\2\2\u051f\u1c79\3\2\2\2\u0521\u1c92\3\2"+ + "\2\2\u0523\u1c98\3\2\2\2\u0525\u1c9f\3\2\2\2\u0527\u1ca5\3\2\2\2\u0529"+ + "\u1cae\3\2\2\2\u052b\u1cb8\3\2\2\2\u052d\u1cbe\3\2\2\2\u052f\u1cc5\3\2"+ + "\2\2\u0531\u1ccd\3\2\2\2\u0533\u1cd6\3\2\2\2\u0535\u1cde\3\2\2\2\u0537"+ + "\u1ce7\3\2\2\2\u0539\u1cf0\3\2\2\2\u053b\u1cf8\3\2\2\2\u053d\u1d00\3\2"+ + "\2\2\u053f\u1d05\3\2\2\2\u0541\u1d0e\3\2\2\2\u0543\u1d13\3\2\2\2\u0545"+ + "\u1d1c\3\2\2\2\u0547\u1d22\3\2\2\2\u0549\u1d2f\3\2\2\2\u054b\u1d36\3\2"+ + "\2\2\u054d\u1d3b\3\2\2\2\u054f\u1d42\3\2\2\2\u0551\u1d4a\3\2\2\2\u0553"+ + "\u1d4f\3\2\2\2\u0555\u1d55\3\2\2\2\u0557\u1d5a\3\2\2\2\u0559\u1d5f\3\2"+ + "\2\2\u055b\u1d63\3\2\2\2\u055d\u1d68\3\2\2\2\u055f\u1d72\3\2\2\2\u0561"+ + "\u1d7e\3\2\2\2\u0563\u1d89\3\2\2\2\u0565\u1d96\3\2\2\2\u0567\u1d9e\3\2"+ + "\2\2\u0569\u1da8\3\2\2\2\u056b\u1dae\3\2\2\2\u056d\u1db6\3\2\2\2\u056f"+ + "\u1dc2\3\2\2\2\u0571\u1dd0\3\2\2\2\u0573\u1dda\3\2\2\2\u0575\u1de6\3\2"+ + "\2\2\u0577\u1dec\3\2\2\2\u0579\u1df2\3\2\2\2\u057b\u1df9\3\2\2\2\u057d"+ + "\u1e03\3\2\2\2\u057f\u1e13\3\2\2\2\u0581\u1e1f\3\2\2\2\u0583\u1e2a\3\2"+ + "\2\2\u0585\u1e37\3\2\2\2\u0587\u1e40\3\2\2\2\u0589\u1e47\3\2\2\2\u058b"+ + "\u1e50\3\2\2\2\u058d\u1e57\3\2\2\2\u058f\u1e5f\3\2\2\2\u0591\u1e6a\3\2"+ + "\2\2\u0593\u1e7b\3\2\2\2\u0595\u1e85\3\2\2\2\u0597\u1e8c\3\2\2\2\u0599"+ + "\u1e95\3\2\2\2\u059b\u1ea2\3\2\2\2\u059d\u1ea7\3\2\2\2\u059f\u1eae\3\2"+ + "\2\2\u05a1\u1eb7\3\2\2\2\u05a3\u1eba\3\2\2\2\u05a5\u1ec1\3\2\2\2\u05a7"+ + "\u1ecc\3\2\2\2\u05a9\u1ed5\3\2\2\2\u05ab\u1ede\3\2\2\2\u05ad\u1ee6\3\2"+ + "\2\2\u05af\u1ef8\3\2\2\2\u05b1\u1f04\3\2\2\2\u05b3\u1f0a\3\2\2\2\u05b5"+ + "\u1f12\3\2\2\2\u05b7\u1f19\3\2\2\2\u05b9\u1f1f\3\2\2\2\u05bb\u1f24\3\2"+ + "\2\2\u05bd\u1f29\3\2\2\2\u05bf\u1f30\3\2\2\2\u05c1\u1f34\3\2\2\2\u05c3"+ + "\u1f39\3\2\2\2\u05c5\u1f46\3\2\2\2\u05c7\u1f4d\3\2\2\2\u05c9\u1f5a\3\2"+ + "\2\2\u05cb\u1f62\3\2\2\2\u05cd\u1f6b\3\2\2\2\u05cf\u1f76\3\2\2\2\u05d1"+ + "\u1f7e\3\2\2\2\u05d3\u1f85\3\2\2\2\u05d5\u1f8c\3\2\2\2\u05d7\u1f93\3\2"+ + "\2\2\u05d9\u1f9a\3\2\2\2\u05db\u1fa0\3\2\2\2\u05dd\u1fa8\3\2\2\2\u05df"+ + "\u1fb2\3\2\2\2\u05e1\u1fbe\3\2\2\2\u05e3\u1fc3\3\2\2\2\u05e5\u1fc7\3\2"+ + "\2\2\u05e7\u1fcd\3\2\2\2\u05e9\u1fdf\3\2\2\2\u05eb\u1fe4\3\2\2\2\u05ed"+ + "\u1feb\3\2\2\2\u05ef\u1ff2\3\2\2\2\u05f1\u1ff9\3\2\2\2\u05f3\u1ffe\3\2"+ + "\2\2\u05f5\u2003\3\2\2\2\u05f7\u2008\3\2\2\2\u05f9\u200d\3\2\2\2\u05fb"+ + "\u2012\3\2\2\2\u05fd\u2018\3\2\2\2\u05ff\u201d\3\2\2\2\u0601\u2022\3\2"+ + "\2\2\u0603\u202a\3\2\2\2\u0605\u2033\3\2\2\2\u0607\u2039\3\2\2\2\u0609"+ + "\u2040\3\2\2\2\u060b\u2046\3\2\2\2\u060d\u204e\3\2\2\2\u060f\u2056\3\2"+ + "\2\2\u0611\u205d\3\2\2\2\u0613\u2065\3\2\2\2\u0615\u206d\3\2\2\2\u0617"+ + "\u2075\3\2\2\2\u0619\u2081\3\2\2\2\u061b\u2088\3\2\2\2\u061d\u208d\3\2"+ + "\2\2\u061f\u2099\3\2\2\2\u0621\u20a0\3\2\2\2\u0623\u20a8\3\2\2\2\u0625"+ + "\u20b1\3\2\2\2\u0627\u20bf\3\2\2\2\u0629\u20c4\3\2\2\2\u062b\u20cb\3\2"+ + "\2\2\u062d\u20cf\3\2\2\2\u062f\u20d1\3\2\2\2\u0631\u20d3\3\2\2\2\u0633"+ + "\u20d6\3\2\2\2\u0635\u20d8\3\2\2\2\u0637\u20db\3\2\2\2\u0639\u20dd\3\2"+ + "\2\2\u063b\u20df\3\2\2\2\u063d\u20e1\3\2\2\2\u063f\u20e3\3\2\2\2\u0641"+ + "\u20e5\3\2\2\2\u0643\u20ef\3\2\2\2\u0645\u20f3\3\2\2\2\u0647\u210f\3\2"+ + "\2\2\u0649\u211e\3\2\2\2\u064b\u2121\3\2\2\2\u064d\u2123\3\2\2\2\u064f"+ + "\u2125\3\2\2\2\u0651\u2127\3\2\2\2\u0653\u212e\3\2\2\2\u0655\u2134\3\2"+ + "\2\2\u0657\u213b\3\2\2\2\u0659\u213d\3\2\2\2\u065b\u2140\3\2\2\2\u065d"+ + "\u2143\3\2\2\2\u065f\u2146\3\2\2\2\u0661\u2149\3\2\2\2\u0663\u214b\3\2"+ + "\2\2\u0665\u214d\3\2\2\2\u0667\u2150\3\2\2\2\u0669\u2153\3\2\2\2\u066b"+ + "\u2155\3\2\2\2\u066d\u2157\3\2\2\2\u066f\u215a\3\2\2\2\u0671\u215c\3\2"+ + "\2\2\u0673\u215f\3\2\2\2\u0675\u2162\3\2\2\2\u0677\u2164\3\2\2\2\u0679"+ + "\u2167\3\2\2\2\u067b\u216a\3\2\2\2\u067d\u216e\3\2\2\2\u067f\u2171\3\2"+ + "\2\2\u0681\u2174\3\2\2\2\u0683\u2178\3\2\2\2\u0685\u217c\3\2\2\2\u0687"+ + "\u217e\3\2\2\2\u0689\u2181\3\2\2\2\u068b\u2184\3\2\2\2\u068d\u2187\3\2"+ + "\2\2\u068f\u218a\3\2\2\2\u0691\u218e\3\2\2\2\u0693\u2191\3\2\2\2\u0695"+ + "\u2195\3\2\2\2\u0697\u2199\3\2\2\2\u0699\u219b\3\2\2\2\u069b\u219d\3\2"+ + "\2\2\u069d\u219f\3\2\2\2\u069f\u21a2\3\2\2\2\u06a1\u21a6\3\2\2\2\u06a3"+ + "\u21a9\3\2\2\2\u06a5\u21ab\3\2\2\2\u06a7\u21ad\3\2\2\2\u06a9\u21b0\3\2"+ + "\2\2\u06ab\u21b3\3\2\2\2\u06ad\u21b6\3\2\2\2\u06af\u21b9\3\2\2\2\u06b1"+ + "\u21bb\3\2\2\2\u06b3\u21bd\3\2\2\2\u06b5\u21c0\3\2\2\2\u06b7\u21c5\3\2"+ + "\2\2\u06b9\u21c9\3\2\2\2\u06bb\u21ce\3\2\2\2\u06bd\u21d2\3\2\2\2\u06bf"+ + "\u21d5\3\2\2\2\u06c1\u21d8\3\2\2\2\u06c3\u06c5\t\2\2\2\u06c4\u06c3\3\2"+ + "\2\2\u06c5\u06c6\3\2\2\2\u06c6\u06c4\3\2\2\2\u06c6\u06c7\3\2\2\2\u06c7"+ + "\u06c8\3\2\2\2\u06c8\u06c9\b\2\2\2\u06c9\4\3\2\2\2\u06ca\u06cb\7\61\2"+ + "\2\u06cb\u06cc\7,\2\2\u06cc\u06d0\3\2\2\2\u06cd\u06cf\13\2\2\2\u06ce\u06cd"+ + "\3\2\2\2\u06cf\u06d2\3\2\2\2\u06d0\u06d1\3\2\2\2\u06d0\u06ce\3\2\2\2\u06d1"+ + "\u06d3\3\2\2\2\u06d2\u06d0\3\2\2\2\u06d3\u06d4\7,\2\2\u06d4\u06d5\7\61"+ + "\2\2\u06d5\u06d6\3\2\2\2\u06d6\u06d7\b\3\3\2\u06d7\6\3\2\2\2\u06d8\u06d9"+ + "\7/\2\2\u06d9\u06da\7/\2\2\u06da\u06de\3\2\2\2\u06db\u06dd\13\2\2\2\u06dc"+ + "\u06db\3\2\2\2\u06dd\u06e0\3\2\2\2\u06de\u06df\3\2\2\2\u06de\u06dc\3\2"+ + "\2\2\u06df\u06e1\3\2\2\2\u06e0\u06de\3\2\2\2\u06e1\u06e2\7\f\2\2\u06e2"+ + "\u06e3\3\2\2\2\u06e3\u06e4\b\4\3\2\u06e4\b\3\2\2\2\u06e5\u06e6\t\3\2\2"+ + "\u06e6\n\3\2\2\2\u06e7\u06e8\t\4\2\2\u06e8\f\3\2\2\2\u06e9\u06ea\t\5\2"+ + "\2\u06ea\16\3\2\2\2\u06eb\u06ec\t\6\2\2\u06ec\20\3\2\2\2\u06ed\u06ee\t"+ + "\7\2\2\u06ee\22\3\2\2\2\u06ef\u06f0\t\b\2\2\u06f0\24\3\2\2\2\u06f1\u06f2"+ + "\t\t\2\2\u06f2\26\3\2\2\2\u06f3\u06f4\t\n\2\2\u06f4\30\3\2\2\2\u06f5\u06f6"+ + "\t\13\2\2\u06f6\32\3\2\2\2\u06f7\u06f8\t\f\2\2\u06f8\34\3\2\2\2\u06f9"+ + "\u06fa\t\r\2\2\u06fa\36\3\2\2\2\u06fb\u06fc\t\16\2\2\u06fc \3\2\2\2\u06fd"+ + "\u06fe\t\17\2\2\u06fe\"\3\2\2\2\u06ff\u0700\t\20\2\2\u0700$\3\2\2\2\u0701"+ + "\u0702\t\21\2\2\u0702&\3\2\2\2\u0703\u0704\t\22\2\2\u0704(\3\2\2\2\u0705"+ + "\u0706\t\23\2\2\u0706*\3\2\2\2\u0707\u0708\t\24\2\2\u0708,\3\2\2\2\u0709"+ + "\u070a\t\25\2\2\u070a.\3\2\2\2\u070b\u070c\t\26\2\2\u070c\60\3\2\2\2\u070d"+ + "\u070e\t\27\2\2\u070e\62\3\2\2\2\u070f\u0710\t\30\2\2\u0710\64\3\2\2\2"+ + "\u0711\u0712\t\31\2\2\u0712\66\3\2\2\2\u0713\u0714\t\32\2\2\u07148\3\2"+ + "\2\2\u0715\u0716\t\33\2\2\u0716:\3\2\2\2\u0717\u0718\t\34\2\2\u0718<\3"+ + "\2\2\2\u0719\u071a\t\35\2\2\u071a>\3\2\2\2\u071b\u071c\t\36\2\2\u071c"+ + "@\3\2\2\2\u071d\u0725\7$\2\2\u071e\u071f\7^\2\2\u071f\u0724\13\2\2\2\u0720"+ + "\u0721\7$\2\2\u0721\u0724\7$\2\2\u0722\u0724\n\37\2\2\u0723\u071e\3\2"+ + "\2\2\u0723\u0720\3\2\2\2\u0723\u0722\3\2\2\2\u0724\u0727\3\2\2\2\u0725"+ + "\u0723\3\2\2\2\u0725\u0726\3\2\2\2\u0726\u0728\3\2\2\2\u0727\u0725\3\2"+ + "\2\2\u0728\u0729\7$\2\2\u0729B\3\2\2\2\u072a\u0732\7)\2\2\u072b\u072c"+ + "\7^\2\2\u072c\u0731\13\2\2\2\u072d\u072e\7)\2\2\u072e\u0731\7)\2\2\u072f"+ + "\u0731\n \2\2\u0730\u072b\3\2\2\2\u0730\u072d\3\2\2\2\u0730\u072f\3\2"+ + "\2\2\u0731\u0734\3\2\2\2\u0732\u0730\3\2\2\2\u0732\u0733\3\2\2\2\u0733"+ + "\u0735\3\2\2\2\u0734\u0732\3\2\2\2\u0735\u0736\7)\2\2\u0736D\3\2\2\2\u0737"+ + "\u073f\7b\2\2\u0738\u0739\7^\2\2\u0739\u073e\13\2\2\2\u073a\u073b\7b\2"+ + "\2\u073b\u073e\7b\2\2\u073c\u073e\n!\2\2\u073d\u0738\3\2\2\2\u073d\u073a"+ + "\3\2\2\2\u073d\u073c\3\2\2\2\u073e\u0741\3\2\2\2\u073f\u073d\3\2\2\2\u073f"+ + "\u0740\3\2\2\2\u0740\u0742\3\2\2\2\u0741\u073f\3\2\2\2\u0742\u0743\7b"+ + "\2\2\u0743F\3\2\2\2\u0744\u0745\5\t\5\2\u0745H\3\2\2\2\u0746\u0747\5\t"+ + "\5\2\u0747\u0748\5\13\6\2\u0748\u0749\5%\23\2\u0749\u074a\5+\26\2\u074a"+ + "\u074b\5/\30\2\u074bJ\3\2\2\2\u074c\u074d\5\t\5\2\u074d\u074e\5\13\6\2"+ + "\u074e\u074f\5-\27\2\u074fL\3\2\2\2\u0750\u0751\5\t\5\2\u0751\u0752\5"+ + "\13\6\2\u0752\u0753\5-\27\2\u0753\u0754\5%\23\2\u0754\u0755\5\37\20\2"+ + "\u0755\u0756\5\61\31\2\u0756\u0757\5/\30\2\u0757\u0758\5\21\t\2\u0758"+ + "N\3\2\2\2\u0759\u075a\5\t\5\2\u075a\u075b\5\r\7\2\u075b\u075c\5\r\7\2"+ + "\u075c\u075d\5\21\t\2\u075d\u075e\5-\27\2\u075e\u075f\5-\27\2\u075fP\3"+ + "\2\2\2\u0760\u0761\5\t\5\2\u0761\u0762\5\r\7\2\u0762\u0763\5/\30\2\u0763"+ + "\u0764\5\31\r\2\u0764\u0765\5%\23\2\u0765\u0766\5#\22\2\u0766R\3\2\2\2"+ + "\u0767\u0768\5\t\5\2\u0768\u0769\5\17\b\2\u0769\u076a\5\t\5\2\u076aT\3"+ + "\2\2\2\u076b\u076c\5\t\5\2\u076c\u076d\5\17\b\2\u076d\u076e\5\17\b\2\u076e"+ + "V\3\2\2\2\u076f\u0770\5\t\5\2\u0770\u0771\5\17\b\2\u0771\u0772\5!\21\2"+ + "\u0772\u0773\5\31\r\2\u0773\u0774\5#\22\2\u0774X\3\2\2\2\u0775\u0776\5"+ + "\t\5\2\u0776\u0777\5\23\n\2\u0777\u0778\5/\30\2\u0778\u0779\5\21\t\2\u0779"+ + "\u077a\5+\26\2\u077aZ\3\2\2\2\u077b\u077c\5\t\5\2\u077c\u077d\5\25\13"+ + "\2\u077d\u077e\5\25\13\2\u077e\u077f\5+\26\2\u077f\u0780\5\21\t\2\u0780"+ + "\u0781\5\25\13\2\u0781\u0782\5\t\5\2\u0782\u0783\5/\30\2\u0783\u0784\5"+ + "\21\t\2\u0784\\\3\2\2\2\u0785\u0786\5\t\5\2\u0786\u0787\5\37\20\2\u0787"+ + "\u0788\5\31\r\2\u0788\u0789\5\t\5\2\u0789\u078a\5-\27\2\u078a^\3\2\2\2"+ + "\u078b\u078c\5\t\5\2\u078c\u078d\5\37\20\2\u078d\u078e\5\37\20\2\u078e"+ + "`\3\2\2\2\u078f\u0790\5\t\5\2\u0790\u0791\5\37\20\2\u0791\u0792\5\37\20"+ + "\2\u0792\u0793\5%\23\2\u0793\u0794\5\r\7\2\u0794\u0795\5\t\5\2\u0795\u0796"+ + "\5/\30\2\u0796\u0797\5\21\t\2\u0797b\3\2\2\2\u0798\u0799\5\t\5\2\u0799"+ + "\u079a\5\37\20\2\u079a\u079b\5-\27\2\u079b\u079c\5%\23\2\u079cd\3\2\2"+ + "\2\u079d\u079e\5\t\5\2\u079e\u079f\5\37\20\2\u079f\u07a0\5/\30\2\u07a0"+ + "\u07a1\5\21\t\2\u07a1\u07a2\5+\26\2\u07a2f\3\2\2\2\u07a3\u07a4\5\t\5\2"+ + "\u07a4\u07a5\5\37\20\2\u07a5\u07a6\5\65\33\2\u07a6\u07a7\5\t\5\2\u07a7"+ + "\u07a8\59\35\2\u07a8\u07a9\5-\27\2\u07a9h\3\2\2\2\u07aa\u07ab\5\t\5\2"+ + "\u07ab\u07ac\5#\22\2\u07ac\u07ad\5\t\5\2\u07ad\u07ae\5\37\20\2\u07ae\u07af"+ + "\59\35\2\u07af\u07b0\5-\27\2\u07b0\u07b1\5\21\t\2\u07b1j\3\2\2\2\u07b2"+ + "\u07b3\5\t\5\2\u07b3\u07b4\5#\22\2\u07b4\u07b5\5\t\5\2\u07b5\u07b6\5\37"+ + "\20\2\u07b6\u07b7\59\35\2\u07b7\u07b8\5;\36\2\u07b8\u07b9\5\21\t\2\u07b9"+ + "l\3\2\2\2\u07ba\u07bb\5\t\5\2\u07bb\u07bc\5#\22\2\u07bc\u07bd\5\17\b\2"+ + "\u07bdn\3\2\2\2\u07be\u07bf\5\t\5\2\u07bf\u07c0\5#\22\2\u07c0\u07c1\5"+ + "9\35\2\u07c1p\3\2\2\2\u07c2\u07c3\5\t\5\2\u07c3\u07c4\5+\26\2\u07c4\u07c5"+ + "\5\21\t\2\u07c5r\3\2\2\2\u07c6\u07c7\5\t\5\2\u07c7\u07c8\5+\26\2\u07c8"+ + "\u07c9\5+\26\2\u07c9\u07ca\5\t\5\2\u07ca\u07cb\59\35\2\u07cbt\3\2\2\2"+ + "\u07cc\u07cd\5\t\5\2\u07cd\u07ce\5-\27\2\u07cev\3\2\2\2\u07cf\u07d0\5"+ + "\t\5\2\u07d0\u07d1\5-\27\2\u07d1\u07d2\5\r\7\2\u07d2x\3\2\2\2\u07d3\u07d4"+ + "\5\t\5\2\u07d4\u07d5\5-\27\2\u07d5\u07d6\5\21\t\2\u07d6\u07d7\5#\22\2"+ + "\u07d7\u07d8\5-\27\2\u07d8\u07d9\5\31\r\2\u07d9\u07da\5/\30\2\u07da\u07db"+ + "\5\31\r\2\u07db\u07dc\5\63\32\2\u07dc\u07dd\5\21\t\2\u07ddz\3\2\2\2\u07de"+ + "\u07df\5\t\5\2\u07df\u07e0\5-\27\2\u07e0\u07e1\5-\27\2\u07e1\u07e2\5\21"+ + "\t\2\u07e2\u07e3\5+\26\2\u07e3\u07e4\5/\30\2\u07e4\u07e5\5\31\r\2\u07e5"+ + "\u07e6\5%\23\2\u07e6\u07e7\5#\22\2\u07e7|\3\2\2\2\u07e8\u07e9\5\t\5\2"+ + "\u07e9\u07ea\5-\27\2\u07ea\u07eb\5-\27\2\u07eb\u07ec\5\31\r\2\u07ec\u07ed"+ + "\5\25\13\2\u07ed\u07ee\5#\22\2\u07ee\u07ef\5!\21\2\u07ef\u07f0\5\21\t"+ + "\2\u07f0\u07f1\5#\22\2\u07f1\u07f2\5/\30\2\u07f2~\3\2\2\2\u07f3\u07f4"+ + "\5\t\5\2\u07f4\u07f5\5-\27\2\u07f5\u07f6\59\35\2\u07f6\u07f7\5!\21\2\u07f7"+ + "\u07f8\5!\21\2\u07f8\u07f9\5\21\t\2\u07f9\u07fa\5/\30\2\u07fa\u07fb\5"+ + "+\26\2\u07fb\u07fc\5\31\r\2\u07fc\u07fd\5\r\7\2\u07fd\u0080\3\2\2\2\u07fe"+ + "\u07ff\5\t\5\2\u07ff\u0800\5/\30\2\u0800\u0082\3\2\2\2\u0801\u0802\5\t"+ + "\5\2\u0802\u0803\5/\30\2\u0803\u0804\5%\23\2\u0804\u0805\5!\21\2\u0805"+ + "\u0806\5\31\r\2\u0806\u0807\5\r\7\2\u0807\u0084\3\2\2\2\u0808\u0809\5"+ + "\t\5\2\u0809\u080a\5/\30\2\u080a\u080b\5/\30\2\u080b\u080c\5+\26\2\u080c"+ + "\u080d\5\31\r\2\u080d\u080e\5\13\6\2\u080e\u080f\5\61\31\2\u080f\u0810"+ + "\5/\30\2\u0810\u0811\5\21\t\2\u0811\u0086\3\2\2\2\u0812\u0813\5\t\5\2"+ + "\u0813\u0814\5/\30\2\u0814\u0815\5/\30\2\u0815\u0816\5+\26\2\u0816\u0817"+ + "\5\31\r\2\u0817\u0818\5\13\6\2\u0818\u0819\5\61\31\2\u0819\u081a\5/\30"+ + "\2\u081a\u081b\5\21\t\2\u081b\u081c\5-\27\2\u081c\u0088\3\2\2\2\u081d"+ + "\u081e\5\t\5\2\u081e\u081f\5\61\31\2\u081f\u0820\5/\30\2\u0820\u0821\5"+ + "\27\f\2\u0821\u0822\5%\23\2\u0822\u0823\5+\26\2\u0823\u0824\5\31\r\2\u0824"+ + "\u0825\5;\36\2\u0825\u0826\5\t\5\2\u0826\u0827\5/\30\2\u0827\u0828\5\31"+ + "\r\2\u0828\u0829\5%\23\2\u0829\u082a\5#\22\2\u082a\u008a\3\2\2\2\u082b"+ + "\u082c\5\t\5\2\u082c\u082d\5\63\32\2\u082d\u082e\5\25\13\2\u082e\u008c"+ + "\3\2\2\2\u082f\u0830\5\13\6\2\u0830\u0831\5\t\5\2\u0831\u0832\5\r\7\2"+ + "\u0832\u0833\5\35\17\2\u0833\u0834\5\65\33\2\u0834\u0835\5\t\5\2\u0835"+ + "\u0836\5+\26\2\u0836\u0837\5\17\b\2\u0837\u008e\3\2\2\2\u0838\u0839\5"+ + "\13\6\2\u0839\u083a\5\21\t\2\u083a\u083b\5\23\n\2\u083b\u083c\5%\23\2"+ + "\u083c\u083d\5+\26\2\u083d\u083e\5\21\t\2\u083e\u0090\3\2\2\2\u083f\u0840"+ + "\5\13\6\2\u0840\u0841\5\21\t\2\u0841\u0842\5\25\13\2\u0842\u0843\5\31"+ + "\r\2\u0843\u0844\5#\22\2\u0844\u0092\3\2\2\2\u0845\u0846\5\13\6\2\u0846"+ + "\u0847\5\21\t\2\u0847\u0848\5+\26\2\u0848\u0849\5#\22\2\u0849\u084a\5"+ + "%\23\2\u084a\u084b\5\61\31\2\u084b\u084c\5\37\20\2\u084c\u084d\5\37\20"+ + "\2\u084d\u084e\5\31\r\2\u084e\u0094\3\2\2\2\u084f\u0850\5\13\6\2\u0850"+ + "\u0851\5\21\t\2\u0851\u0852\5/\30\2\u0852\u0853\5\65\33\2\u0853\u0854"+ + "\5\21\t\2\u0854\u0855\5\21\t\2\u0855\u0856\5#\22\2\u0856\u0096\3\2\2\2"+ + "\u0857\u0858\5\13\6\2\u0858\u0859\5\31\r\2\u0859\u085a\5\25\13\2\u085a"+ + "\u085b\5\31\r\2\u085b\u085c\5#\22\2\u085c\u085d\5/\30\2\u085d\u0098\3"+ + "\2\2\2\u085e\u085f\5\13\6\2\u085f\u0860\5\31\r\2\u0860\u0861\5#\22\2\u0861"+ + "\u0862\5\t\5\2\u0862\u0863\5+\26\2\u0863\u0864\59\35\2\u0864\u009a\3\2"+ + "\2\2\u0865\u0866\5\13\6\2\u0866\u0867\5\31\r\2\u0867\u0868\5/\30\2\u0868"+ + "\u009c\3\2\2\2\u0869\u086a\5\13\6\2\u086a\u086b\5\31\r\2\u086b\u086c\5"+ + "/\30\2\u086c\u086d\7a\2\2\u086d\u086e\5\37\20\2\u086e\u086f\5\21\t\2\u086f"+ + "\u0870\5#\22\2\u0870\u0871\5\25\13\2\u0871\u0872\5/\30\2\u0872\u0873\5"+ + "\27\f\2\u0873\u009e\3\2\2\2\u0874\u0875\5\13\6\2\u0875\u0876\5\31\r\2"+ + "\u0876\u0877\5/\30\2\u0877\u0878\5\63\32\2\u0878\u0879\5\t\5\2\u0879\u087a"+ + "\5+\26\2\u087a\u00a0\3\2\2\2\u087b\u087c\5\13\6\2\u087c\u087d\5\37\20"+ + "\2\u087d\u087e\5%\23\2\u087e\u087f\5\13\6\2\u087f\u00a2\3\2\2\2\u0880"+ + "\u0881\5\13\6\2\u0881\u0882\5%\23\2\u0882\u0883\5%\23\2\u0883\u0884\5"+ + "\37\20\2\u0884\u0885\5\21\t\2\u0885\u0886\5\t\5\2\u0886\u0887\5#\22\2"+ + "\u0887\u00a4\3\2\2\2\u0888\u0889\5\13\6\2\u0889\u088a\5%\23\2\u088a\u088b"+ + "\5/\30\2\u088b\u088c\5\27\f\2\u088c\u00a6\3\2\2\2\u088d\u088e\5\13\6\2"+ + "\u088e\u088f\5+\26\2\u088f\u0890\5\21\t\2\u0890\u0891\5\t\5\2\u0891\u0892"+ + "\5\17\b\2\u0892\u0893\5/\30\2\u0893\u0894\5\27\f\2\u0894\u00a8\3\2\2\2"+ + "\u0895\u0896\5\13\6\2\u0896\u0897\5\61\31\2\u0897\u0898\5\23\n\2\u0898"+ + "\u0899\5\23\n\2\u0899\u089a\5\21\t\2\u089a\u089b\5+\26\2\u089b\u089c\5"+ + "-\27\2\u089c\u00aa\3\2\2\2\u089d\u089e\5\13\6\2\u089e\u089f\59\35\2\u089f"+ + "\u00ac\3\2\2\2\u08a0\u08a1\5\r\7\2\u08a1\u00ae\3\2\2\2\u08a2\u08a3\5\r"+ + "\7\2\u08a3\u08a4\5\t\5\2\u08a4\u08a5\5\r\7\2\u08a5\u08a6\5\27\f\2\u08a6"+ + "\u08a7\5\21\t\2\u08a7\u00b0\3\2\2\2\u08a8\u08a9\5\r\7\2\u08a9\u08aa\5"+ + "\t\5\2\u08aa\u08ab\5\37\20\2\u08ab\u08ac\5\37\20\2\u08ac\u00b2\3\2\2\2"+ + "\u08ad\u08ae\5\r\7\2\u08ae\u08af\5\t\5\2\u08af\u08b0\5\37\20\2\u08b0\u08b1"+ + "\5\37\20\2\u08b1\u08b2\5\21\t\2\u08b2\u08b3\5\17\b\2\u08b3\u00b4\3\2\2"+ + "\2\u08b4\u08b5\5\r\7\2\u08b5\u08b6\5\t\5\2\u08b6\u08b7\5+\26\2\u08b7\u08b8"+ + "\5\17\b\2\u08b8\u08b9\5\31\r\2\u08b9\u08ba\5#\22\2\u08ba\u08bb\5\t\5\2"+ + "\u08bb\u08bc\5\37\20\2\u08bc\u08bd\5\31\r\2\u08bd\u08be\5/\30\2\u08be"+ + "\u08bf\59\35\2\u08bf\u00b6\3\2\2\2\u08c0\u08c1\5\r\7\2\u08c1\u08c2\5\t"+ + "\5\2\u08c2\u08c3\5-\27\2\u08c3\u08c4\5\r\7\2\u08c4\u08c5\5\t\5\2\u08c5"+ + "\u08c6\5\17\b\2\u08c6\u08c7\5\21\t\2\u08c7\u00b8\3\2\2\2\u08c8\u08c9\5"+ + "\r\7\2\u08c9\u08ca\5\t\5\2\u08ca\u08cb\5-\27\2\u08cb\u08cc\5\r\7\2\u08cc"+ + "\u08cd\5\t\5\2\u08cd\u08ce\5\17\b\2\u08ce\u08cf\5\21\t\2\u08cf\u08d0\5"+ + "\17\b\2\u08d0\u00ba\3\2\2\2\u08d1\u08d2\5\r\7\2\u08d2\u08d3\5\t\5\2\u08d3"+ + "\u08d4\5-\27\2\u08d4\u08d5\5\21\t\2\u08d5\u00bc\3\2\2\2\u08d6\u08d7\5"+ + "\r\7\2\u08d7\u08d8\5\t\5\2\u08d8\u08d9\5-\27\2\u08d9\u08da\5/\30\2\u08da"+ + "\u00be\3\2\2\2\u08db\u08dc\5\r\7\2\u08dc\u08dd\5\t\5\2\u08dd\u08de\5/"+ + "\30\2\u08de\u08df\5\t\5\2\u08df\u08e0\5\37\20\2\u08e0\u08e1\5%\23\2\u08e1"+ + "\u08e2\5\25\13\2\u08e2\u00c0\3\2\2\2\u08e3\u08e4\5\r\7\2\u08e4\u08e5\5"+ + "\t\5\2\u08e5\u08e6\5/\30\2\u08e6\u08e7\5\t\5\2\u08e7\u08e8\5\37\20\2\u08e8"+ + "\u08e9\5%\23\2\u08e9\u08ea\5\25\13\2\u08ea\u08eb\7a\2\2\u08eb\u08ec\5"+ + "#\22\2\u08ec\u08ed\5\t\5\2\u08ed\u08ee\5!\21\2\u08ee\u08ef\5\21\t\2\u08ef"+ + "\u00c2\3\2\2\2\u08f0\u08f1\5\r\7\2\u08f1\u08f2\5\21\t\2\u08f2\u08f3\5"+ + "\31\r\2\u08f3\u08f4\5\37\20\2\u08f4\u00c4\3\2\2\2\u08f5\u08f6\5\r\7\2"+ + "\u08f6\u08f7\5\21\t\2\u08f7\u08f8\5\31\r\2\u08f8\u08f9\5\37\20\2\u08f9"+ + "\u08fa\5\31\r\2\u08fa\u08fb\5#\22\2\u08fb\u08fc\5\25\13\2\u08fc\u00c6"+ + "\3\2\2\2\u08fd\u08fe\5\r\7\2\u08fe\u08ff\5\27\f\2\u08ff\u0900\5\t\5\2"+ + "\u0900\u0901\5\31\r\2\u0901\u0902\5#\22\2\u0902\u00c8\3\2\2\2\u0903\u0904"+ + "\5\r\7\2\u0904\u0905\5\27\f\2\u0905\u0906\5\t\5\2\u0906\u0907\5+\26\2"+ + "\u0907\u00ca\3\2\2\2\u0908\u0909\5\r\7\2\u0909\u090a\5\27\f\2\u090a\u090b"+ + "\5\t\5\2\u090b\u090c\5+\26\2\u090c\u090d\7a\2\2\u090d\u090e\5\37\20\2"+ + "\u090e\u090f\5\21\t\2\u090f\u0910\5#\22\2\u0910\u0911\5\25\13\2\u0911"+ + "\u0912\5/\30\2\u0912\u0913\5\27\f\2\u0913\u00cc\3\2\2\2\u0914\u0915\5"+ + "\r\7\2\u0915\u0916\5\27\f\2\u0916\u0917\5\t\5\2\u0917\u0918\5+\26\2\u0918"+ + "\u0919\5\t\5\2\u0919\u091a\5\r\7\2\u091a\u091b\5/\30\2\u091b\u091c\5\21"+ + "\t\2\u091c\u091d\5+\26\2\u091d\u00ce\3\2\2\2\u091e\u091f\5\r\7\2\u091f"+ + "\u0920\5\27\f\2\u0920\u0921\5\t\5\2\u0921\u0922\5+\26\2\u0922\u0923\5"+ + "\t\5\2\u0923\u0924\5\r\7\2\u0924\u0925\5/\30\2\u0925\u0926\5\21\t\2\u0926"+ + "\u0927\5+\26\2\u0927\u0928\7a\2\2\u0928\u0929\5\37\20\2\u0929\u092a\5"+ + "\21\t\2\u092a\u092b\5#\22\2\u092b\u092c\5\25\13\2\u092c\u092d\5/\30\2"+ + "\u092d\u092e\5\27\f\2\u092e\u00d0\3\2\2\2\u092f\u0930\5\r\7\2\u0930\u0931"+ + "\5\27\f\2\u0931\u0932\5\t\5\2\u0932\u0933\5+\26\2\u0933\u0934\5\t\5\2"+ + "\u0934\u0935\5\r\7\2\u0935\u0936\5/\30\2\u0936\u0937\5\21\t\2\u0937\u0938"+ + "\5+\26\2\u0938\u0939\7a\2\2\u0939\u093a\5-\27\2\u093a\u093b\5\21\t\2\u093b"+ + "\u093c\5/\30\2\u093c\u093d\7a\2\2\u093d\u093e\5\r\7\2\u093e\u093f\5\t"+ + "\5\2\u093f\u0940\5/\30\2\u0940\u0941\5\t\5\2\u0941\u0942\5\37\20\2\u0942"+ + "\u0943\5%\23\2\u0943\u0944\5\25\13\2\u0944\u00d2\3\2\2\2\u0945\u0946\5"+ + "\r\7\2\u0946\u0947\5\27\f\2\u0947\u0948\5\t\5\2\u0948\u0949\5+\26\2\u0949"+ + "\u094a\5\t\5\2\u094a\u094b\5\r\7\2\u094b\u094c\5/\30\2\u094c\u094d\5\21"+ + "\t\2\u094d\u094e\5+\26\2\u094e\u094f\7a\2\2\u094f\u0950\5-\27\2\u0950"+ + "\u0951\5\21\t\2\u0951\u0952\5/\30\2\u0952\u0953\7a\2\2\u0953\u0954\5#"+ + "\22\2\u0954\u0955\5\t\5\2\u0955\u0956\5!\21\2\u0956\u0957\5\21\t\2\u0957"+ + "\u00d4\3\2\2\2\u0958\u0959\5\r\7\2\u0959\u095a\5\27\f\2\u095a\u095b\5"+ + "\t\5\2\u095b\u095c\5+\26\2\u095c\u095d\5\t\5\2\u095d\u095e\5\r\7\2\u095e"+ + "\u095f\5/\30\2\u095f\u0960\5\21\t\2\u0960\u0961\5+\26\2\u0961\u0962\7"+ + "a\2\2\u0962\u0963\5-\27\2\u0963\u0964\5\21\t\2\u0964\u0965\5/\30\2\u0965"+ + "\u0966\7a\2\2\u0966\u0967\5-\27\2\u0967\u0968\5\r\7\2\u0968\u0969\5\27"+ + "\f\2\u0969\u096a\5\21\t\2\u096a\u096b\5!\21\2\u096b\u096c\5\t\5\2\u096c"+ + "\u00d6\3\2\2\2\u096d\u096e\5\r\7\2\u096e\u096f\5\27\f\2\u096f\u0970\5"+ + "\t\5\2\u0970\u0971\5+\26\2\u0971\u0972\5\t\5\2\u0972\u0973\5\r\7\2\u0973"+ + "\u0974\5/\30\2\u0974\u0975\5\21\t\2\u0975\u0976\5+\26\2\u0976\u0977\5"+ + "\31\r\2\u0977\u0978\5-\27\2\u0978\u0979\5/\30\2\u0979\u097a\5\31\r\2\u097a"+ + "\u097b\5\r\7\2\u097b\u097c\5-\27\2\u097c\u00d8\3\2\2\2\u097d\u097e\5\r"+ + "\7\2\u097e\u097f\5\27\f\2\u097f\u0980\5\t\5\2\u0980\u0981\5+\26\2\u0981"+ + "\u0982\5\t\5\2\u0982\u0983\5\r\7\2\u0983\u0984\5/\30\2\u0984\u0985\5\21"+ + "\t\2\u0985\u0986\5+\26\2\u0986\u0987\5-\27\2\u0987\u00da\3\2\2\2\u0988"+ + "\u0989\5\r\7\2\u0989\u098a\5\27\f\2\u098a\u098b\5\21\t\2\u098b\u098c\5"+ + "\r\7\2\u098c\u098d\5\35\17\2\u098d\u00dc\3\2\2\2\u098e\u098f\5\r\7\2\u098f"+ + "\u0990\5\27\f\2\u0990\u0991\5\21\t\2\u0991\u0992\5\r\7\2\u0992\u0993\5"+ + "\35\17\2\u0993\u0994\5\21\t\2\u0994\u0995\5\17\b\2\u0995\u00de\3\2\2\2"+ + "\u0996\u0997\5\r\7\2\u0997\u0998\5\27\f\2\u0998\u0999\5\21\t\2\u0999\u099a"+ + "\5\r\7\2\u099a\u099b\5\35\17\2\u099b\u099c\5\'\24\2\u099c\u099d\5%\23"+ + "\2\u099d\u099e\5\31\r\2\u099e\u099f\5#\22\2\u099f\u09a0\5/\30\2\u09a0"+ + "\u00e0\3\2\2\2\u09a1\u09a2\5\r\7\2\u09a2\u09a3\5\37\20\2\u09a3\u09a4\5"+ + "\t\5\2\u09a4\u09a5\5-\27\2\u09a5\u09a6\5-\27\2\u09a6\u00e2\3\2\2\2\u09a7"+ + "\u09a8\5\r\7\2\u09a8\u09a9\5\37\20\2\u09a9\u09aa\5\t\5\2\u09aa\u09ab\5"+ + "-\27\2\u09ab\u09ac\5-\27\2\u09ac\u09ad\7a\2\2\u09ad\u09ae\5%\23\2\u09ae"+ + "\u09af\5+\26\2\u09af\u09b0\5\31\r\2\u09b0\u09b1\5\25\13\2\u09b1\u09b2"+ + "\5\31\r\2\u09b2\u09b3\5#\22\2\u09b3\u00e4\3\2\2\2\u09b4\u09b5\5\r\7\2"+ + "\u09b5\u09b6\5\37\20\2\u09b6\u09b7\5%\23\2\u09b7\u09b8\5\13\6\2\u09b8"+ + "\u00e6\3\2\2\2\u09b9\u09ba\5\r\7\2\u09ba\u09bb\5\37\20\2\u09bb\u09bc\5"+ + "%\23\2\u09bc\u09bd\5-\27\2\u09bd\u09be\5\21\t\2\u09be\u00e8\3\2\2\2\u09bf"+ + "\u09c0\5\r\7\2\u09c0\u09c1\5\37\20\2\u09c1\u09c2\5\61\31\2\u09c2\u09c3"+ + "\5-\27\2\u09c3\u09c4\5/\30\2\u09c4\u09c5\5\21\t\2\u09c5\u09c6\5+\26\2"+ + "\u09c6\u00ea\3\2\2\2\u09c7\u09c8\5\r\7\2\u09c8\u09c9\5%\23\2\u09c9\u09ca"+ + "\5\t\5\2\u09ca\u09cb\5\37\20\2\u09cb\u09cc\5\21\t\2\u09cc\u09cd\5-\27"+ + "\2\u09cd\u09ce\5\r\7\2\u09ce\u09cf\5\21\t\2\u09cf\u00ec\3\2\2\2\u09d0"+ + "\u09d1\5\r\7\2\u09d1\u09d2\5%\23\2\u09d2\u09d3\5\13\6\2\u09d3\u09d4\5"+ + "%\23\2\u09d4\u09d5\5\37\20\2\u09d5\u00ee\3\2\2\2\u09d6\u09d7\5\r\7\2\u09d7"+ + "\u09d8\5%\23\2\u09d8\u09d9\5\37\20\2\u09d9\u09da\5\37\20\2\u09da\u09db"+ + "\5\t\5\2\u09db\u09dc\5/\30\2\u09dc\u09dd\5\21\t\2\u09dd\u00f0\3\2\2\2"+ + "\u09de\u09df\5\r\7\2\u09df\u09e0\5%\23\2\u09e0\u09e1\5\37\20\2\u09e1\u09e2"+ + "\5\37\20\2\u09e2\u09e3\5\t\5\2\u09e3\u09e4\5/\30\2\u09e4\u09e5\5\31\r"+ + "\2\u09e5\u09e6\5%\23\2\u09e6\u09e7\5#\22\2\u09e7\u00f2\3\2\2\2\u09e8\u09e9"+ + "\5\r\7\2\u09e9\u09ea\5%\23\2\u09ea\u09eb\5\37\20\2\u09eb\u09ec\5\37\20"+ + "\2\u09ec\u09ed\5\t\5\2\u09ed\u09ee\5/\30\2\u09ee\u09ef\5\31\r\2\u09ef"+ + "\u09f0\5%\23\2\u09f0\u09f1\5#\22\2\u09f1\u09f2\7a\2\2\u09f2\u09f3\5\r"+ + "\7\2\u09f3\u09f4\5\t\5\2\u09f4\u09f5\5/\30\2\u09f5\u09f6\5\t\5\2\u09f6"+ + "\u09f7\5\37\20\2\u09f7\u09f8\5%\23\2\u09f8\u09f9\5\25\13\2\u09f9\u00f4"+ + "\3\2\2\2\u09fa\u09fb\5\r\7\2\u09fb\u09fc\5%\23\2\u09fc\u09fd\5\37\20\2"+ + "\u09fd\u09fe\5\37\20\2\u09fe\u09ff\5\t\5\2\u09ff\u0a00\5/\30\2\u0a00\u0a01"+ + "\5\31\r\2\u0a01\u0a02\5%\23\2\u0a02\u0a03\5#\22\2\u0a03\u0a04\7a\2\2\u0a04"+ + "\u0a05\5#\22\2\u0a05\u0a06\5\t\5\2\u0a06\u0a07\5!\21\2\u0a07\u0a08\5\21"+ + "\t\2\u0a08\u00f6\3\2\2\2\u0a09\u0a0a\5\r\7\2\u0a0a\u0a0b\5%\23\2\u0a0b"+ + "\u0a0c\5\37\20\2\u0a0c\u0a0d\5\37\20\2\u0a0d\u0a0e\5\t\5\2\u0a0e\u0a0f"+ + "\5/\30\2\u0a0f\u0a10\5\31\r\2\u0a10\u0a11\5%\23\2\u0a11\u0a12\5#\22\2"+ + "\u0a12\u0a13\7a\2\2\u0a13\u0a14\5-\27\2\u0a14\u0a15\5\r\7\2\u0a15\u0a16"+ + "\5\27\f\2\u0a16\u0a17\5\21\t\2\u0a17\u0a18\5!\21\2\u0a18\u0a19\5\t\5\2"+ + "\u0a19\u00f8\3\2\2\2\u0a1a\u0a1b\5\r\7\2\u0a1b\u0a1c\5%\23\2\u0a1c\u0a1d"+ + "\5\37\20\2\u0a1d\u0a1e\5\37\20\2\u0a1e\u0a1f\5\21\t\2\u0a1f\u0a20\5\r"+ + "\7\2\u0a20\u0a21\5/\30\2\u0a21\u00fa\3\2\2\2\u0a22\u0a23\5\r\7\2\u0a23"+ + "\u0a24\5%\23\2\u0a24\u0a25\5\37\20\2\u0a25\u0a26\5\61\31\2\u0a26\u0a27"+ + "\5!\21\2\u0a27\u0a28\5#\22\2\u0a28\u00fc\3\2\2\2\u0a29\u0a2a\5\r\7\2\u0a2a"+ + "\u0a2b\5%\23\2\u0a2b\u0a2c\5\37\20\2\u0a2c\u0a2d\5\61\31\2\u0a2d\u0a2e"+ + "\5!\21\2\u0a2e\u0a2f\5#\22\2\u0a2f\u0a30\7a\2\2\u0a30\u0a31\5#\22\2\u0a31"+ + "\u0a32\5\t\5\2\u0a32\u0a33\5!\21\2\u0a33\u0a34\5\21\t\2\u0a34\u00fe\3"+ + "\2\2\2\u0a35\u0a36\5\r\7\2\u0a36\u0a37\5%\23\2\u0a37\u0a38\5!\21\2\u0a38"+ + "\u0a39\5!\21\2\u0a39\u0a3a\5\t\5\2\u0a3a\u0a3b\5#\22\2\u0a3b\u0a3c\5\17"+ + "\b\2\u0a3c\u0a3d\7a\2\2\u0a3d\u0a3e\5\23\n\2\u0a3e\u0a3f\5\61\31\2\u0a3f"+ + "\u0a40\5#\22\2\u0a40\u0a41\5\r\7\2\u0a41\u0a42\5/\30\2\u0a42\u0a43\5\31"+ + "\r\2\u0a43\u0a44\5%\23\2\u0a44\u0a45\5#\22\2\u0a45\u0100\3\2\2\2\u0a46"+ + "\u0a47\5\r\7\2\u0a47\u0a48\5%\23\2\u0a48\u0a49\5!\21\2\u0a49\u0a4a\5!"+ + "\21\2\u0a4a\u0a4b\5\t\5\2\u0a4b\u0a4c\5#\22\2\u0a4c\u0a4d\5\17\b\2\u0a4d"+ + "\u0a4e\7a\2\2\u0a4e\u0a4f\5\23\n\2\u0a4f\u0a50\5\61\31\2\u0a50\u0a51\5"+ + "#\22\2\u0a51\u0a52\5\r\7\2\u0a52\u0a53\5/\30\2\u0a53\u0a54\5\31\r\2\u0a54"+ + "\u0a55\5%\23\2\u0a55\u0a56\5#\22\2\u0a56\u0a57\7a\2\2\u0a57\u0a58\5\r"+ + "\7\2\u0a58\u0a59\5%\23\2\u0a59\u0a5a\5\17\b\2\u0a5a\u0a5b\5\21\t\2\u0a5b"+ + "\u0102\3\2\2\2\u0a5c\u0a5d\5\r\7\2\u0a5d\u0a5e\5%\23\2\u0a5e\u0a5f\5!"+ + "\21\2\u0a5f\u0a60\5!\21\2\u0a60\u0a61\5\21\t\2\u0a61\u0a62\5#\22\2\u0a62"+ + "\u0a63\5/\30\2\u0a63\u0104\3\2\2\2\u0a64\u0a65\5\r\7\2\u0a65\u0a66\5%"+ + "\23\2\u0a66\u0a67\5!\21\2\u0a67\u0a68\5!\21\2\u0a68\u0a69\5\31\r\2\u0a69"+ + "\u0a6a\5/\30\2\u0a6a\u0106\3\2\2\2\u0a6b\u0a6c\5\r\7\2\u0a6c\u0a6d\5%"+ + "\23\2\u0a6d\u0a6e\5!\21\2\u0a6e\u0a6f\5!\21\2\u0a6f\u0a70\5\31\r\2\u0a70"+ + "\u0a71\5/\30\2\u0a71\u0a72\5/\30\2\u0a72\u0a73\5\21\t\2\u0a73\u0a74\5"+ + "\17\b\2\u0a74\u0108\3\2\2\2\u0a75\u0a76\5\r\7\2\u0a76\u0a77\5%\23\2\u0a77"+ + "\u0a78\5!\21\2\u0a78\u0a79\5\'\24\2\u0a79\u0a7a\5\37\20\2\u0a7a\u0a7b"+ + "\5\21\t\2\u0a7b\u0a7c\5/\30\2\u0a7c\u0a7d\5\31\r\2\u0a7d\u0a7e\5%\23\2"+ + "\u0a7e\u0a7f\5#\22\2\u0a7f\u010a\3\2\2\2\u0a80\u0a81\5\r\7\2\u0a81\u0a82"+ + "\5%\23\2\u0a82\u0a83\5#\22\2\u0a83\u0a84\5\17\b\2\u0a84\u0a85\5\31\r\2"+ + "\u0a85\u0a86\5/\30\2\u0a86\u0a87\5\31\r\2\u0a87\u0a88\5%\23\2\u0a88\u0a89"+ + "\5#\22\2\u0a89\u010c\3\2\2\2\u0a8a\u0a8b\5\r\7\2\u0a8b\u0a8c\5%\23\2\u0a8c"+ + "\u0a8d\5#\22\2\u0a8d\u0a8e\5\17\b\2\u0a8e\u0a8f\5\31\r\2\u0a8f\u0a90\5"+ + "/\30\2\u0a90\u0a91\5\31\r\2\u0a91\u0a92\5%\23\2\u0a92\u0a93\5#\22\2\u0a93"+ + "\u0a94\7a\2\2\u0a94\u0a95\5#\22\2\u0a95\u0a96\5\61\31\2\u0a96\u0a97\5"+ + "!\21\2\u0a97\u0a98\5\13\6\2\u0a98\u0a99\5\21\t\2\u0a99\u0a9a\5+\26\2\u0a9a"+ + "\u010e\3\2\2\2\u0a9b\u0a9c\5\r\7\2\u0a9c\u0a9d\5%\23\2\u0a9d\u0a9e\5#"+ + "\22\2\u0a9e\u0a9f\5\23\n\2\u0a9f\u0aa0\5\31\r\2\u0aa0\u0aa1\5\25\13\2"+ + "\u0aa1\u0aa2\5\61\31\2\u0aa2\u0aa3\5+\26\2\u0aa3\u0aa4\5\t\5\2\u0aa4\u0aa5"+ + "\5/\30\2\u0aa5\u0aa6\5\31\r\2\u0aa6\u0aa7\5%\23\2\u0aa7\u0aa8\5#\22\2"+ + "\u0aa8\u0110\3\2\2\2\u0aa9\u0aaa\5\r\7\2\u0aaa\u0aab\5%\23\2\u0aab\u0aac"+ + "\5#\22\2\u0aac\u0aad\5\23\n\2\u0aad\u0aae\5\37\20\2\u0aae\u0aaf\5\31\r"+ + "\2\u0aaf\u0ab0\5\r\7\2\u0ab0\u0ab1\5/\30\2\u0ab1\u0112\3\2\2\2\u0ab2\u0ab3"+ + "\5\r\7\2\u0ab3\u0ab4\5%\23\2\u0ab4\u0ab5\5#\22\2\u0ab5\u0ab6\5#\22\2\u0ab6"+ + "\u0ab7\5\21\t\2\u0ab7\u0ab8\5\r\7\2\u0ab8\u0ab9\5/\30\2\u0ab9\u0114\3"+ + "\2\2\2\u0aba\u0abb\5\r\7\2\u0abb\u0abc\5%\23\2\u0abc\u0abd\5#\22\2\u0abd"+ + "\u0abe\5#\22\2\u0abe\u0abf\5\21\t\2\u0abf\u0ac0\5\r\7\2\u0ac0\u0ac1\5"+ + "/\30\2\u0ac1\u0ac2\5\31\r\2\u0ac2\u0ac3\5%\23\2\u0ac3\u0ac4\5#\22\2\u0ac4"+ + "\u0116\3\2\2\2\u0ac5\u0ac6\5\r\7\2\u0ac6\u0ac7\5%\23\2\u0ac7\u0ac8\5#"+ + "\22\2\u0ac8\u0ac9\5#\22\2\u0ac9\u0aca\5\21\t\2\u0aca\u0acb\5\r\7\2\u0acb"+ + "\u0acc\5/\30\2\u0acc\u0acd\5\31\r\2\u0acd\u0ace\5%\23\2\u0ace\u0acf\5"+ + "#\22\2\u0acf\u0ad0\7a\2\2\u0ad0\u0ad1\5#\22\2\u0ad1\u0ad2\5\t\5\2\u0ad2"+ + "\u0ad3\5!\21\2\u0ad3\u0ad4\5\21\t\2\u0ad4\u0118\3\2\2\2\u0ad5\u0ad6\5"+ + "\r\7\2\u0ad6\u0ad7\5%\23\2\u0ad7\u0ad8\5#\22\2\u0ad8\u0ad9\5-\27\2\u0ad9"+ + "\u0ada\5/\30\2\u0ada\u0adb\5+\26\2\u0adb\u0adc\5\t\5\2\u0adc\u0add\5\31"+ + "\r\2\u0add\u0ade\5#\22\2\u0ade\u0adf\5/\30\2\u0adf\u011a\3\2\2\2\u0ae0"+ + "\u0ae1\5\r\7\2\u0ae1\u0ae2\5%\23\2\u0ae2\u0ae3\5#\22\2\u0ae3\u0ae4\5-"+ + "\27\2\u0ae4\u0ae5\5/\30\2\u0ae5\u0ae6\5+\26\2\u0ae6\u0ae7\5\t\5\2\u0ae7"+ + "\u0ae8\5\31\r\2\u0ae8\u0ae9\5#\22\2\u0ae9\u0aea\5/\30\2\u0aea\u0aeb\7"+ + "a\2\2\u0aeb\u0aec\5\r\7\2\u0aec\u0aed\5\t\5\2\u0aed\u0aee\5/\30\2\u0aee"+ + "\u0aef\5\t\5\2\u0aef\u0af0\5\37\20\2\u0af0\u0af1\5%\23\2\u0af1\u0af2\5"+ + "\25\13\2\u0af2\u011c\3\2\2\2\u0af3\u0af4\5\r\7\2\u0af4\u0af5\5%\23\2\u0af5"+ + "\u0af6\5#\22\2\u0af6\u0af7\5-\27\2\u0af7\u0af8\5/\30\2\u0af8\u0af9\5+"+ + "\26\2\u0af9\u0afa\5\t\5\2\u0afa\u0afb\5\31\r\2\u0afb\u0afc\5#\22\2\u0afc"+ + "\u0afd\5/\30\2\u0afd\u0afe\7a\2\2\u0afe\u0aff\5#\22\2\u0aff\u0b00\5\t"+ + "\5\2\u0b00\u0b01\5!\21\2\u0b01\u0b02\5\21\t\2\u0b02\u011e\3\2\2\2\u0b03"+ + "\u0b04\5\r\7\2\u0b04\u0b05\5%\23\2\u0b05\u0b06\5#\22\2\u0b06\u0b07\5-"+ + "\27\2\u0b07\u0b08\5/\30\2\u0b08\u0b09\5+\26\2\u0b09\u0b0a\5\t\5\2\u0b0a"+ + "\u0b0b\5\31\r\2\u0b0b\u0b0c\5#\22\2\u0b0c\u0b0d\5/\30\2\u0b0d\u0b0e\7"+ + "a\2\2\u0b0e\u0b0f\5-\27\2\u0b0f\u0b10\5\r\7\2\u0b10\u0b11\5\27\f\2\u0b11"+ + "\u0b12\5\21\t\2\u0b12\u0b13\5!\21\2\u0b13\u0b14\5\t\5\2\u0b14\u0120\3"+ + "\2\2\2\u0b15\u0b16\5\r\7\2\u0b16\u0b17\5%\23\2\u0b17\u0b18\5#\22\2\u0b18"+ + "\u0b19\5-\27\2\u0b19\u0b1a\5/\30\2\u0b1a\u0b1b\5+\26\2\u0b1b\u0b1c\5\t"+ + "\5\2\u0b1c\u0b1d\5\31\r\2\u0b1d\u0b1e\5#\22\2\u0b1e\u0b1f\5/\30\2\u0b1f"+ + "\u0b20\5-\27\2\u0b20\u0122\3\2\2\2\u0b21\u0b22\5\r\7\2\u0b22\u0b23\5%"+ + "\23\2\u0b23\u0b24\5#\22\2\u0b24\u0b25\5-\27\2\u0b25\u0b26\5/\30\2\u0b26"+ + "\u0b27\5+\26\2\u0b27\u0b28\5\61\31\2\u0b28\u0b29\5\r\7\2\u0b29\u0b2a\5"+ + "/\30\2\u0b2a\u0b2b\5%\23\2\u0b2b\u0b2c\5+\26\2\u0b2c\u0124\3\2\2\2\u0b2d"+ + "\u0b2e\5\r\7\2\u0b2e\u0b2f\5%\23\2\u0b2f\u0b30\5#\22\2\u0b30\u0b31\5/"+ + "\30\2\u0b31\u0b32\5\t\5\2\u0b32\u0b33\5\31\r\2\u0b33\u0b34\5#\22\2\u0b34"+ + "\u0b35\5-\27\2\u0b35\u0126\3\2\2\2\u0b36\u0b37\5\r\7\2\u0b37\u0b38\5%"+ + "\23\2\u0b38\u0b39\5#\22\2\u0b39\u0b3a\5/\30\2\u0b3a\u0b3b\5\31\r\2\u0b3b"+ + "\u0b3c\5#\22\2\u0b3c\u0b3d\5\61\31\2\u0b3d\u0b3e\5\21\t\2\u0b3e\u0128"+ + "\3\2\2\2\u0b3f\u0b40\5\r\7\2\u0b40\u0b41\5%\23\2\u0b41\u0b42\5#\22\2\u0b42"+ + "\u0b43\5\63\32\2\u0b43\u0b44\5\21\t\2\u0b44\u0b45\5+\26\2\u0b45\u0b46"+ + "\5-\27\2\u0b46\u0b47\5\31\r\2\u0b47\u0b48\5%\23\2\u0b48\u0b49\5#\22\2"+ + "\u0b49\u012a\3\2\2\2\u0b4a\u0b4b\5\r\7\2\u0b4b\u0b4c\5%\23\2\u0b4c\u0b4d"+ + "\5#\22\2\u0b4d\u0b4e\5\63\32\2\u0b4e\u0b4f\5\21\t\2\u0b4f\u0b50\5+\26"+ + "\2\u0b50\u0b51\5/\30\2\u0b51\u012c\3\2\2\2\u0b52\u0b53\5\r\7\2\u0b53\u0b54"+ + "\5%\23\2\u0b54\u0b55\5\'\24\2\u0b55\u0b56\59\35\2\u0b56\u012e\3\2\2\2"+ + "\u0b57\u0b58\5\r\7\2\u0b58\u0b59\5%\23\2\u0b59\u0b5a\5+\26\2\u0b5a\u0b5b"+ + "\5+\26\2\u0b5b\u0130\3\2\2\2\u0b5c\u0b5d\5\r\7\2\u0b5d\u0b5e\5%\23\2\u0b5e"+ + "\u0b5f\5+\26\2\u0b5f\u0b60\5+\26\2\u0b60\u0b61\5\21\t\2\u0b61\u0b62\5"+ + "-\27\2\u0b62\u0b63\5\'\24\2\u0b63\u0b64\5%\23\2\u0b64\u0b65\5#\22\2\u0b65"+ + "\u0b66\5\17\b\2\u0b66\u0b67\5\31\r\2\u0b67\u0b68\5#\22\2\u0b68\u0b69\5"+ + "\25\13\2\u0b69\u0132\3\2\2\2\u0b6a\u0b6b\5\r\7\2\u0b6b\u0b6c\5%\23\2\u0b6c"+ + "\u0b6d\5-\27\2\u0b6d\u0b6e\5/\30\2\u0b6e\u0b6f\5-\27\2\u0b6f\u0134\3\2"+ + "\2\2\u0b70\u0b71\5\r\7\2\u0b71\u0b72\5%\23\2\u0b72\u0b73\5\61\31\2\u0b73"+ + "\u0b74\5#\22\2\u0b74\u0b75\5/\30\2\u0b75\u0136\3\2\2\2\u0b76\u0b77\5\r"+ + "\7\2\u0b77\u0b78\5%\23\2\u0b78\u0b79\5\63\32\2\u0b79\u0b7a\5\t\5\2\u0b7a"+ + "\u0b7b\5+\26\2\u0b7b\u0b7c\7a\2\2\u0b7c\u0b7d\5\'\24\2\u0b7d\u0b7e\5%"+ + "\23\2\u0b7e\u0b7f\5\'\24\2\u0b7f\u0138\3\2\2\2\u0b80\u0b81\5\r\7\2\u0b81"+ + "\u0b82\5%\23\2\u0b82\u0b83\5\63\32\2\u0b83\u0b84\5\t\5\2\u0b84\u0b85\5"+ + "+\26\2\u0b85\u0b86\7a\2\2\u0b86\u0b87\5-\27\2\u0b87\u0b88\5\t\5\2\u0b88"+ + "\u0b89\5!\21\2\u0b89\u0b8a\5\'\24\2\u0b8a\u013a\3\2\2\2\u0b8b\u0b8c\5"+ + "\r\7\2\u0b8c\u0b8d\5+\26\2\u0b8d\u0b8e\5\21\t\2\u0b8e\u0b8f\5\t\5\2\u0b8f"+ + "\u0b90\5/\30\2\u0b90\u0b91\5\21\t\2\u0b91\u013c\3\2\2\2\u0b92\u0b93\5"+ + "\r\7\2\u0b93\u0b94\5+\26\2\u0b94\u0b95\5\21\t\2\u0b95\u0b96\5\t\5\2\u0b96"+ + "\u0b97\5/\30\2\u0b97\u0b98\5\21\t\2\u0b98\u0b99\5\17\b\2\u0b99\u0b9a\5"+ + "\13\6\2\u0b9a\u013e\3\2\2\2\u0b9b\u0b9c\5\r\7\2\u0b9c\u0b9d\5+\26\2\u0b9d"+ + "\u0b9e\5\21\t\2\u0b9e\u0b9f\5\t\5\2\u0b9f\u0ba0\5/\30\2\u0ba0\u0ba1\5"+ + "\21\t\2\u0ba1\u0ba2\5\61\31\2\u0ba2\u0ba3\5-\27\2\u0ba3\u0ba4\5\21\t\2"+ + "\u0ba4\u0ba5\5+\26\2\u0ba5\u0140\3\2\2\2\u0ba6\u0ba7\5\r\7\2\u0ba7\u0ba8"+ + "\5+\26\2\u0ba8\u0ba9\5%\23\2\u0ba9\u0baa\5-\27\2\u0baa\u0bab\5-\27\2\u0bab"+ + "\u0142\3\2\2\2\u0bac\u0bad\5\r\7\2\u0bad\u0bae\5-\27\2\u0bae\u0baf\5\63"+ + "\32\2\u0baf\u0144\3\2\2\2\u0bb0\u0bb1\5\r\7\2\u0bb1\u0bb2\5\61\31\2\u0bb2"+ + "\u0bb3\5\13\6\2\u0bb3\u0bb4\5\21\t\2\u0bb4\u0146\3\2\2\2\u0bb5\u0bb6\5"+ + "\r\7\2\u0bb6\u0bb7\5\61\31\2\u0bb7\u0bb8\5!\21\2\u0bb8\u0bb9\5\21\t\2"+ + "\u0bb9\u0bba\7a\2\2\u0bba\u0bbb\5\17\b\2\u0bbb\u0bbc\5\31\r\2\u0bbc\u0bbd"+ + "\5-\27\2\u0bbd\u0bbe\5/\30\2\u0bbe\u0148\3\2\2\2\u0bbf\u0bc0\5\r\7\2\u0bc0"+ + "\u0bc1\5\61\31\2\u0bc1\u0bc2\5+\26\2\u0bc2\u0bc3\5+\26\2\u0bc3\u0bc4\5"+ + "\21\t\2\u0bc4\u0bc5\5#\22\2\u0bc5\u0bc6\5/\30\2\u0bc6\u014a\3\2\2\2\u0bc7"+ + "\u0bc8\5\r\7\2\u0bc8\u0bc9\5\61\31\2\u0bc9\u0bca\5+\26\2\u0bca\u0bcb\5"+ + "+\26\2\u0bcb\u0bcc\5\21\t\2\u0bcc\u0bcd\5#\22\2\u0bcd\u0bce\5/\30\2\u0bce"+ + "\u0bcf\7a\2\2\u0bcf\u0bd0\5\17\b\2\u0bd0\u0bd1\5\t\5\2\u0bd1\u0bd2\5/"+ + "\30\2\u0bd2\u0bd3\5\21\t\2\u0bd3\u014c\3\2\2\2\u0bd4\u0bd5\5\r\7\2\u0bd5"+ + "\u0bd6\5\61\31\2\u0bd6\u0bd7\5+\26\2\u0bd7\u0bd8\5+\26\2\u0bd8\u0bd9\5"+ + "\21\t\2\u0bd9\u0bda\5#\22\2\u0bda\u0bdb\5/\30\2\u0bdb\u0bdc\7a\2\2\u0bdc"+ + "\u0bdd\5\17\b\2\u0bdd\u0bde\5\21\t\2\u0bde\u0bdf\5\23\n\2\u0bdf\u0be0"+ + "\5\t\5\2\u0be0\u0be1\5\61\31\2\u0be1\u0be2\5\37\20\2\u0be2\u0be3\5/\30"+ + "\2\u0be3\u0be4\7a\2\2\u0be4\u0be5\5/\30\2\u0be5\u0be6\5+\26\2\u0be6\u0be7"+ + "\5\t\5\2\u0be7\u0be8\5#\22\2\u0be8\u0be9\5-\27\2\u0be9\u0bea\5\23\n\2"+ + "\u0bea\u0beb\5%\23\2\u0beb\u0bec\5+\26\2\u0bec\u0bed\5!\21\2\u0bed\u0bee"+ + "\7a\2\2\u0bee\u0bef\5\25\13\2\u0bef\u0bf0\5+\26\2\u0bf0\u0bf1\5%\23\2"+ + "\u0bf1\u0bf2\5\61\31\2\u0bf2\u0bf3\5\'\24\2\u0bf3\u014e\3\2\2\2\u0bf4"+ + "\u0bf5\5\r\7\2\u0bf5\u0bf6\5\61\31\2\u0bf6\u0bf7\5+\26\2\u0bf7\u0bf8\5"+ + "+\26\2\u0bf8\u0bf9\5\21\t\2\u0bf9\u0bfa\5#\22\2\u0bfa\u0bfb\5/\30\2\u0bfb"+ + "\u0bfc\7a\2\2\u0bfc\u0bfd\5\'\24\2\u0bfd\u0bfe\5\t\5\2\u0bfe\u0bff\5/"+ + "\30\2\u0bff\u0c00\5\27\f\2\u0c00\u0150\3\2\2\2\u0c01\u0c02\5\r\7\2\u0c02"+ + "\u0c03\5\61\31\2\u0c03\u0c04\5+\26\2\u0c04\u0c05\5+\26\2\u0c05\u0c06\5"+ + "\21\t\2\u0c06\u0c07\5#\22\2\u0c07\u0c08\5/\30\2\u0c08\u0c09\7a\2\2\u0c09"+ + "\u0c0a\5+\26\2\u0c0a\u0c0b\5%\23\2\u0c0b\u0c0c\5\37\20\2\u0c0c\u0c0d\5"+ + "\21\t\2\u0c0d\u0152\3\2\2\2\u0c0e\u0c0f\5\r\7\2\u0c0f\u0c10\5\61\31\2"+ + "\u0c10\u0c11\5+\26\2\u0c11\u0c12\5+\26\2\u0c12\u0c13\5\21\t\2\u0c13\u0c14"+ + "\5#\22\2\u0c14\u0c15\5/\30\2\u0c15\u0c16\7a\2\2\u0c16\u0c17\5/\30\2\u0c17"+ + "\u0c18\5\31\r\2\u0c18\u0c19\5!\21\2\u0c19\u0c1a\5\21\t\2\u0c1a\u0154\3"+ + "\2\2\2\u0c1b\u0c1c\5\r\7\2\u0c1c\u0c1d\5\61\31\2\u0c1d\u0c1e\5+\26\2\u0c1e"+ + "\u0c1f\5+\26\2\u0c1f\u0c20\5\21\t\2\u0c20\u0c21\5#\22\2\u0c21\u0c22\5"+ + "/\30\2\u0c22\u0c23\7a\2\2\u0c23\u0c24\5/\30\2\u0c24\u0c25\5\31\r\2\u0c25"+ + "\u0c26\5!\21\2\u0c26\u0c27\5\21\t\2\u0c27\u0c28\5-\27\2\u0c28\u0c29\5"+ + "/\30\2\u0c29\u0c2a\5\t\5\2\u0c2a\u0c2b\5!\21\2\u0c2b\u0c2c\5\'\24\2\u0c2c"+ + "\u0156\3\2\2\2\u0c2d\u0c2e\5\r\7\2\u0c2e\u0c2f\5\61\31\2\u0c2f\u0c30\5"+ + "+\26\2\u0c30\u0c31\5+\26\2\u0c31\u0c32\5\21\t\2\u0c32\u0c33\5#\22\2\u0c33"+ + "\u0c34\5/\30\2\u0c34\u0c35\7a\2\2\u0c35\u0c36\5/\30\2\u0c36\u0c37\5+\26"+ + "\2\u0c37\u0c38\5\t\5\2\u0c38\u0c39\5#\22\2\u0c39\u0c3a\5-\27\2\u0c3a\u0c3b"+ + "\5\23\n\2\u0c3b\u0c3c\5%\23\2\u0c3c\u0c3d\5+\26\2\u0c3d\u0c3e\5!\21\2"+ + "\u0c3e\u0c3f\7a\2\2\u0c3f\u0c40\5\25\13\2\u0c40\u0c41\5+\26\2\u0c41\u0c42"+ + "\5%\23\2\u0c42\u0c43\5\61\31\2\u0c43\u0c44\5\'\24\2\u0c44\u0c45\7a\2\2"+ + "\u0c45\u0c46\5\23\n\2\u0c46\u0c47\5%\23\2\u0c47\u0c48\5+\26\2\u0c48\u0c49"+ + "\7a\2\2\u0c49\u0c4a\5/\30\2\u0c4a\u0c4b\59\35\2\u0c4b\u0c4c\5\'\24\2\u0c4c"+ + "\u0c4d\5\21\t\2\u0c4d\u0158\3\2\2\2\u0c4e\u0c4f\5\r\7\2\u0c4f\u0c50\5"+ + "\61\31\2\u0c50\u0c51\5+\26\2\u0c51\u0c52\5+\26\2\u0c52\u0c53\5\21\t\2"+ + "\u0c53\u0c54\5#\22\2\u0c54\u0c55\5/\30\2\u0c55\u0c56\7a\2\2\u0c56\u0c57"+ + "\5\61\31\2\u0c57\u0c58\5-\27\2\u0c58\u0c59\5\21\t\2\u0c59\u0c5a\5+\26"+ + "\2\u0c5a\u015a\3\2\2\2\u0c5b\u0c5c\5\r\7\2\u0c5c\u0c5d\5\61\31\2\u0c5d"+ + "\u0c5e\5+\26\2\u0c5e\u0c5f\5-\27\2\u0c5f\u0c60\5%\23\2\u0c60\u0c61\5+"+ + "\26\2\u0c61\u015c\3\2\2\2\u0c62\u0c63\5\r\7\2\u0c63\u0c64\5\61\31\2\u0c64"+ + "\u0c65\5+\26\2\u0c65\u0c66\5-\27\2\u0c66\u0c67\5%\23\2\u0c67\u0c68\5+"+ + "\26\2\u0c68\u0c69\7a\2\2\u0c69\u0c6a\5#\22\2\u0c6a\u0c6b\5\t\5\2\u0c6b"+ + "\u0c6c\5!\21\2\u0c6c\u0c6d\5\21\t\2\u0c6d\u015e\3\2\2\2\u0c6e\u0c6f\5"+ + "\r\7\2\u0c6f\u0c70\59\35\2\u0c70\u0c71\5\r\7\2\u0c71\u0c72\5\37\20\2\u0c72"+ + "\u0c73\5\21\t\2\u0c73\u0160\3\2\2\2\u0c74\u0c75\5\17\b\2\u0c75\u0c76\5"+ + "\t\5\2\u0c76\u0c77\5/\30\2\u0c77\u0c78\5\t\5\2\u0c78\u0162\3\2\2\2\u0c79"+ + "\u0c7a\5\17\b\2\u0c7a\u0c7b\5\t\5\2\u0c7b\u0c7c\5/\30\2\u0c7c\u0c7d\5"+ + "\t\5\2\u0c7d\u0c7e\5\13\6\2\u0c7e\u0c7f\5\t\5\2\u0c7f\u0c80\5-\27\2\u0c80"+ + "\u0c81\5\21\t\2\u0c81\u0164\3\2\2\2\u0c82\u0c83\5\17\b\2\u0c83\u0c84\5"+ + "\t\5\2\u0c84\u0c85\5/\30\2\u0c85\u0c86\5\21\t\2\u0c86\u0166\3\2\2\2\u0c87"+ + "\u0c88\5\17\b\2\u0c88\u0c89\5\t\5\2\u0c89\u0c8a\5/\30\2\u0c8a\u0c8b\5"+ + "\21\t\2\u0c8b\u0c8c\5/\30\2\u0c8c\u0c8d\5\31\r\2\u0c8d\u0c8e\5!\21\2\u0c8e"+ + "\u0c8f\5\21\t\2\u0c8f\u0c90\7a\2\2\u0c90\u0c91\5\31\r\2\u0c91\u0c92\5"+ + "#\22\2\u0c92\u0c93\5/\30\2\u0c93\u0c94\5\21\t\2\u0c94\u0c95\5+\26\2\u0c95"+ + "\u0c96\5\63\32\2\u0c96\u0c97\5\t\5\2\u0c97\u0c98\5\37\20\2\u0c98\u0c99"+ + "\7a\2\2\u0c99\u0c9a\5\r\7\2\u0c9a\u0c9b\5%\23\2\u0c9b\u0c9c\5\17\b\2\u0c9c"+ + "\u0c9d\5\21\t\2\u0c9d\u0168\3\2\2\2\u0c9e\u0c9f\5\17\b\2\u0c9f\u0ca0\5"+ + "\t\5\2\u0ca0\u0ca1\5/\30\2\u0ca1\u0ca2\5\21\t\2\u0ca2\u0ca3\5/\30\2\u0ca3"+ + "\u0ca4\5\31\r\2\u0ca4\u0ca5\5!\21\2\u0ca5\u0ca6\5\21\t\2\u0ca6\u0ca7\7"+ + "a\2\2\u0ca7\u0ca8\5\31\r\2\u0ca8\u0ca9\5#\22\2\u0ca9\u0caa\5/\30\2\u0caa"+ + "\u0cab\5\21\t\2\u0cab\u0cac\5+\26\2\u0cac\u0cad\5\63\32\2\u0cad\u0cae"+ + "\5\t\5\2\u0cae\u0caf\5\37\20\2\u0caf\u0cb0\7a\2\2\u0cb0\u0cb1\5\'\24\2"+ + "\u0cb1\u0cb2\5+\26\2\u0cb2\u0cb3\5\21\t\2\u0cb3\u0cb4\5\r\7\2\u0cb4\u0cb5"+ + "\5\31\r\2\u0cb5\u0cb6\5-\27\2\u0cb6\u0cb7\5\31\r\2\u0cb7\u0cb8\5%\23\2"+ + "\u0cb8\u0cb9\5#\22\2\u0cb9\u016a\3\2\2\2\u0cba\u0cbb\5\17\b\2\u0cbb\u0cbc"+ + "\5\t\5\2\u0cbc\u0cbd\59\35\2\u0cbd\u016c\3\2\2\2\u0cbe\u0cbf\5\17\b\2"+ + "\u0cbf\u0cc0\5\21\t\2\u0cc0\u0cc1\5\t\5\2\u0cc1\u0cc2\5\37\20\2\u0cc2"+ + "\u0cc3\5\37\20\2\u0cc3\u0cc4\5%\23\2\u0cc4\u0cc5\5\r\7\2\u0cc5\u0cc6\5"+ + "\t\5\2\u0cc6\u0cc7\5/\30\2\u0cc7\u0cc8\5\21\t\2\u0cc8\u016e\3\2\2\2\u0cc9"+ + "\u0cca\5\17\b\2\u0cca\u0ccb\5\21\t\2\u0ccb\u0ccc\5\r\7\2\u0ccc\u0170\3"+ + "\2\2\2\u0ccd\u0cce\5\17\b\2\u0cce\u0ccf\5\21\t\2\u0ccf\u0cd0\5\r\7\2\u0cd0"+ + "\u0cd1\5\31\r\2\u0cd1\u0cd2\5!\21\2\u0cd2\u0cd3\5\t\5\2\u0cd3\u0cd4\5"+ + "\37\20\2\u0cd4\u0172\3\2\2\2\u0cd5\u0cd6\5\17\b\2\u0cd6\u0cd7\5\21\t\2"+ + "\u0cd7\u0cd8\5\r\7\2\u0cd8\u0cd9\5\37\20\2\u0cd9\u0cda\5\t\5\2\u0cda\u0cdb"+ + "\5+\26\2\u0cdb\u0cdc\5\21\t\2\u0cdc\u0174\3\2\2\2\u0cdd\u0cde\5\17\b\2"+ + "\u0cde\u0cdf\5\21\t\2\u0cdf\u0ce0\5\23\n\2\u0ce0\u0ce1\5\t\5\2\u0ce1\u0ce2"+ + "\5\61\31\2\u0ce2\u0ce3\5\37\20\2\u0ce3\u0ce4\5/\30\2\u0ce4\u0176\3\2\2"+ + "\2\u0ce5\u0ce6\5\17\b\2\u0ce6\u0ce7\5\21\t\2\u0ce7\u0ce8\5\23\n\2\u0ce8"+ + "\u0ce9\5\t\5\2\u0ce9\u0cea\5\61\31\2\u0cea\u0ceb\5\37\20\2\u0ceb\u0cec"+ + "\5/\30\2\u0cec\u0ced\5-\27\2\u0ced\u0178\3\2\2\2\u0cee\u0cef\5\17\b\2"+ + "\u0cef\u0cf0\5\21\t\2\u0cf0\u0cf1\5\23\n\2\u0cf1\u0cf2\5\21\t\2\u0cf2"+ + "\u0cf3\5+\26\2\u0cf3\u0cf4\5\t\5\2\u0cf4\u0cf5\5\13\6\2\u0cf5\u0cf6\5"+ + "\37\20\2\u0cf6\u0cf7\5\21\t\2\u0cf7\u017a\3\2\2\2\u0cf8\u0cf9\5\17\b\2"+ + "\u0cf9\u0cfa\5\21\t\2\u0cfa\u0cfb\5\23\n\2\u0cfb\u0cfc\5\21\t\2\u0cfc"+ + "\u0cfd\5+\26\2\u0cfd\u0cfe\5+\26\2\u0cfe\u0cff\5\t\5\2\u0cff\u0d00\5\13"+ + "\6\2\u0d00\u0d01\5\37\20\2\u0d01\u0d02\5\21\t\2\u0d02\u017c\3\2\2\2\u0d03"+ + "\u0d04\5\17\b\2\u0d04\u0d05\5\21\t\2\u0d05\u0d06\5\23\n\2\u0d06\u0d07"+ + "\5\21\t\2\u0d07\u0d08\5+\26\2\u0d08\u0d09\5+\26\2\u0d09\u0d0a\5\21\t\2"+ + "\u0d0a\u0d0b\5\17\b\2\u0d0b\u017e\3\2\2\2\u0d0c\u0d0d\5\17\b\2\u0d0d\u0d0e"+ + "\5\21\t\2\u0d0e\u0d0f\5\23\n\2\u0d0f\u0d10\5\31\r\2\u0d10\u0d11\5#\22"+ + "\2\u0d11\u0d12\5\21\t\2\u0d12\u0d13\5\17\b\2\u0d13\u0180\3\2\2\2\u0d14"+ + "\u0d15\5\17\b\2\u0d15\u0d16\5\21\t\2\u0d16\u0d17\5\23\n\2\u0d17\u0d18"+ + "\5\31\r\2\u0d18\u0d19\5#\22\2\u0d19\u0d1a\5\21\t\2\u0d1a\u0d1b\5+\26\2"+ + "\u0d1b\u0182\3\2\2\2\u0d1c\u0d1d\5\17\b\2\u0d1d\u0d1e\5\21\t\2\u0d1e\u0d1f"+ + "\5\25\13\2\u0d1f\u0d20\5+\26\2\u0d20\u0d21\5\21\t\2\u0d21\u0d22\5\21\t"+ + "\2\u0d22\u0184\3\2\2\2\u0d23\u0d24\5\17\b\2\u0d24\u0d25\5\21\t\2\u0d25"+ + "\u0d26\5\37\20\2\u0d26\u0d27\5\21\t\2\u0d27\u0d28\5/\30\2\u0d28\u0d29"+ + "\5\21\t\2\u0d29\u0186\3\2\2\2\u0d2a\u0d2b\5\17\b\2\u0d2b\u0d2c\5\21\t"+ + "\2\u0d2c\u0d2d\5\37\20\2\u0d2d\u0d2e\5\31\r\2\u0d2e\u0d2f\5!\21\2\u0d2f"+ + "\u0d30\5\31\r\2\u0d30\u0d31\5/\30\2\u0d31\u0d32\5\21\t\2\u0d32\u0d33\5"+ + "+\26\2\u0d33\u0188\3\2\2\2\u0d34\u0d35\5\17\b\2\u0d35\u0d36\5\21\t\2\u0d36"+ + "\u0d37\5\37\20\2\u0d37\u0d38\5\31\r\2\u0d38\u0d39\5!\21\2\u0d39\u0d3a"+ + "\5\31\r\2\u0d3a\u0d3b\5/\30\2\u0d3b\u0d3c\5\21\t\2\u0d3c\u0d3d\5+\26\2"+ + "\u0d3d\u0d3e\5-\27\2\u0d3e\u018a\3\2\2\2\u0d3f\u0d40\5\17\b\2\u0d40\u0d41"+ + "\5\21\t\2\u0d41\u0d42\5#\22\2\u0d42\u0d43\5-\27\2\u0d43\u0d44\5\21\t\2"+ + "\u0d44\u0d45\7a\2\2\u0d45\u0d46\5+\26\2\u0d46\u0d47\5\t\5\2\u0d47\u0d48"+ + "\5#\22\2\u0d48\u0d49\5\35\17\2\u0d49\u018c\3\2\2\2\u0d4a\u0d4b\5\17\b"+ + "\2\u0d4b\u0d4c\5\21\t\2\u0d4c\u0d4d\5\'\24\2\u0d4d\u0d4e\5\21\t\2\u0d4e"+ + "\u0d4f\5#\22\2\u0d4f\u0d50\5\17\b\2\u0d50\u0d51\5-\27\2\u0d51\u018e\3"+ + "\2\2\2\u0d52\u0d53\5\17\b\2\u0d53\u0d54\5\21\t\2\u0d54\u0d55\5\'\24\2"+ + "\u0d55\u0d56\5/\30\2\u0d56\u0d57\5\27\f\2\u0d57\u0190\3\2\2\2\u0d58\u0d59"+ + "\5\17\b\2\u0d59\u0d5a\5\21\t\2\u0d5a\u0d5b\5+\26\2\u0d5b\u0d5c\5\21\t"+ + "\2\u0d5c\u0d5d\5\23\n\2\u0d5d\u0192\3\2\2\2\u0d5e\u0d5f\5\17\b\2\u0d5f"+ + "\u0d60\5\21\t\2\u0d60\u0d61\5+\26\2\u0d61\u0d62\5\31\r\2\u0d62\u0d63\5"+ + "\63\32\2\u0d63\u0d64\5\21\t\2\u0d64\u0d65\5\17\b\2\u0d65\u0194\3\2\2\2"+ + "\u0d66\u0d67\5\17\b\2\u0d67\u0d68\5\21\t\2\u0d68\u0d69\5-\27\2\u0d69\u0d6a"+ + "\5\r\7\2\u0d6a\u0196\3\2\2\2\u0d6b\u0d6c\5\17\b\2\u0d6c\u0d6d\5\21\t\2"+ + "\u0d6d\u0d6e\5-\27\2\u0d6e\u0d6f\5\r\7\2\u0d6f\u0d70\5+\26\2\u0d70\u0d71"+ + "\5\31\r\2\u0d71\u0d72\5\13\6\2\u0d72\u0d73\5\21\t\2\u0d73\u0198\3\2\2"+ + "\2\u0d74\u0d75\5\17\b\2\u0d75\u0d76\5\21\t\2\u0d76\u0d77\5-\27\2\u0d77"+ + "\u0d78\5\r\7\2\u0d78\u0d79\5+\26\2\u0d79\u0d7a\5\31\r\2\u0d7a\u0d7b\5"+ + "\'\24\2\u0d7b\u0d7c\5/\30\2\u0d7c\u0d7d\5%\23\2\u0d7d\u0d7e\5+\26\2\u0d7e"+ + "\u019a\3\2\2\2\u0d7f\u0d80\5\17\b\2\u0d80\u0d81\5\21\t\2\u0d81\u0d82\5"+ + "-\27\2\u0d82\u0d83\5/\30\2\u0d83\u0d84\5+\26\2\u0d84\u0d85\5%\23\2\u0d85"+ + "\u0d86\59\35\2\u0d86\u019c\3\2\2\2\u0d87\u0d88\5\17\b\2\u0d88\u0d89\5"+ + "\21\t\2\u0d89\u0d8a\5-\27\2\u0d8a\u0d8b\5/\30\2\u0d8b\u0d8c\5+\26\2\u0d8c"+ + "\u0d8d\5\61\31\2\u0d8d\u0d8e\5\r\7\2\u0d8e\u0d8f\5/\30\2\u0d8f\u0d90\5"+ + "%\23\2\u0d90\u0d91\5+\26\2\u0d91\u019e\3\2\2\2\u0d92\u0d93\5\17\b\2\u0d93"+ + "\u0d94\5\21\t\2\u0d94\u0d95\5/\30\2\u0d95\u0d96\5\21\t\2\u0d96\u0d97\5"+ + "+\26\2\u0d97\u0d98\5!\21\2\u0d98\u0d99\5\31\r\2\u0d99\u0d9a\5#\22\2\u0d9a"+ + "\u0d9b\5\31\r\2\u0d9b\u0d9c\5-\27\2\u0d9c\u0d9d\5/\30\2\u0d9d\u0d9e\5"+ + "\31\r\2\u0d9e\u0d9f\5\r\7\2\u0d9f\u01a0\3\2\2\2\u0da0\u0da1\5\17\b\2\u0da1"+ + "\u0da2\5\31\r\2\u0da2\u0da3\5\t\5\2\u0da3\u0da4\5\25\13\2\u0da4\u0da5"+ + "\5#\22\2\u0da5\u0da6\5%\23\2\u0da6\u0da7\5-\27\2\u0da7\u0da8\5/\30\2\u0da8"+ + "\u0da9\5\31\r\2\u0da9\u0daa\5\r\7\2\u0daa\u0dab\5-\27\2\u0dab\u01a2\3"+ + "\2\2\2\u0dac\u0dad\5\17\b\2\u0dad\u0dae\5\31\r\2\u0dae\u0daf\5\r\7\2\u0daf"+ + "\u0db0\5/\30\2\u0db0\u0db1\5\31\r\2\u0db1\u0db2\5%\23\2\u0db2\u0db3\5"+ + "#\22\2\u0db3\u0db4\5\t\5\2\u0db4\u0db5\5+\26\2\u0db5\u0db6\59\35\2\u0db6"+ + "\u01a4\3\2\2\2\u0db7\u0db8\5\17\b\2\u0db8\u0db9\5\31\r\2\u0db9\u0dba\5"+ + "-\27\2\u0dba\u0dbb\5\t\5\2\u0dbb\u0dbc\5\13\6\2\u0dbc\u0dbd\5\37\20\2"+ + "\u0dbd\u0dbe\5\21\t\2\u0dbe\u01a6\3\2\2\2\u0dbf\u0dc0\5\17\b\2\u0dc0\u0dc1"+ + "\5\31\r\2\u0dc1\u0dc2\5-\27\2\u0dc2\u0dc3\5\t\5\2\u0dc3\u0dc4\5\13\6\2"+ + "\u0dc4\u0dc5\5\37\20\2\u0dc5\u0dc6\5\21\t\2\u0dc6\u0dc7\7a\2\2\u0dc7\u0dc8"+ + "\5\'\24\2\u0dc8\u0dc9\5\t\5\2\u0dc9\u0dca\5\25\13\2\u0dca\u0dcb\5\21\t"+ + "\2\u0dcb\u0dcc\7a\2\2\u0dcc\u0dcd\5-\27\2\u0dcd\u0dce\5\35\17\2\u0dce"+ + "\u0dcf\5\31\r\2\u0dcf\u0dd0\5\'\24\2\u0dd0\u0dd1\5\'\24\2\u0dd1\u0dd2"+ + "\5\31\r\2\u0dd2\u0dd3\5#\22\2\u0dd3\u0dd4\5\25\13\2\u0dd4\u01a8\3\2\2"+ + "\2\u0dd5\u0dd6\5\17\b\2\u0dd6\u0dd7\5\31\r\2\u0dd7\u0dd8\5-\27\2\u0dd8"+ + "\u0dd9\5\r\7\2\u0dd9\u0dda\5\t\5\2\u0dda\u0ddb\5+\26\2\u0ddb\u0ddc\5\17"+ + "\b\2\u0ddc\u01aa\3\2\2\2\u0ddd\u0dde\5\17\b\2\u0dde\u0ddf\5\31\r\2\u0ddf"+ + "\u0de0\5-\27\2\u0de0\u0de1\5\r\7\2\u0de1\u0de2\5%\23\2\u0de2\u0de3\5#"+ + "\22\2\u0de3\u0de4\5#\22\2\u0de4\u0de5\5\21\t\2\u0de5\u0de6\5\r\7\2\u0de6"+ + "\u0de7\5/\30\2\u0de7\u01ac\3\2\2\2\u0de8\u0de9\5\17\b\2\u0de9\u0dea\5"+ + "\31\r\2\u0dea\u0deb\5-\27\2\u0deb\u0dec\5\'\24\2\u0dec\u0ded\5\t\5\2\u0ded"+ + "\u0dee\5/\30\2\u0dee\u0def\5\r\7\2\u0def\u0df0\5\27\f\2\u0df0\u01ae\3"+ + "\2\2\2\u0df1\u0df2\5\17\b\2\u0df2\u0df3\5\31\r\2\u0df3\u0df4\5-\27\2\u0df4"+ + "\u0df5\5/\30\2\u0df5\u0df6\5\31\r\2\u0df6\u0df7\5#\22\2\u0df7\u0df8\5"+ + "\r\7\2\u0df8\u0df9\5/\30\2\u0df9\u01b0\3\2\2\2\u0dfa\u0dfb\5\17\b\2\u0dfb"+ + "\u0dfc\5%\23\2\u0dfc\u01b2\3\2\2\2\u0dfd\u0dfe\5\17\b\2\u0dfe\u0dff\5"+ + "%\23\2\u0dff\u0e00\5!\21\2\u0e00\u0e01\5\t\5\2\u0e01\u0e02\5\31\r\2\u0e02"+ + "\u0e03\5#\22\2\u0e03\u01b4\3\2\2\2\u0e04\u0e05\5\17\b\2\u0e05\u0e06\5"+ + "%\23\2\u0e06\u0e07\5\61\31\2\u0e07\u0e08\5\13\6\2\u0e08\u0e09\5\37\20"+ + "\2\u0e09\u0e0a\5\21\t\2\u0e0a\u01b6\3\2\2\2\u0e0b\u0e0c\5\17\b\2\u0e0c"+ + "\u0e0d\5+\26\2\u0e0d\u0e0e\5%\23\2\u0e0e\u0e0f\5\'\24\2\u0e0f\u01b8\3"+ + "\2\2\2\u0e10\u0e11\5\17\b\2\u0e11\u0e12\59\35\2\u0e12\u0e13\5#\22\2\u0e13"+ + "\u0e14\5\t\5\2\u0e14\u0e15\5!\21\2\u0e15\u0e16\5\31\r\2\u0e16\u0e17\5"+ + "\r\7\2\u0e17\u01ba\3\2\2\2\u0e18\u0e19\5\17\b\2\u0e19\u0e1a\59\35\2\u0e1a"+ + "\u0e1b\5#\22\2\u0e1b\u0e1c\5\t\5\2\u0e1c\u0e1d\5!\21\2\u0e1d\u0e1e\5\31"+ + "\r\2\u0e1e\u0e1f\5\r\7\2\u0e1f\u0e20\7a\2\2\u0e20\u0e21\5\23\n\2\u0e21"+ + "\u0e22\5\61\31\2\u0e22\u0e23\5#\22\2\u0e23\u0e24\5\r\7\2\u0e24\u0e25\5"+ + "/\30\2\u0e25\u0e26\5\31\r\2\u0e26\u0e27\5%\23\2\u0e27\u0e28\5#\22\2\u0e28"+ + "\u01bc\3\2\2\2\u0e29\u0e2a\5\17\b\2\u0e2a\u0e2b\59\35\2\u0e2b\u0e2c\5"+ + "#\22\2\u0e2c\u0e2d\5\t\5\2\u0e2d\u0e2e\5!\21\2\u0e2e\u0e2f\5\31\r\2\u0e2f"+ + "\u0e30\5\r\7\2\u0e30\u0e31\7a\2\2\u0e31\u0e32\5\23\n\2\u0e32\u0e33\5\61"+ + "\31\2\u0e33\u0e34\5#\22\2\u0e34\u0e35\5\r\7\2\u0e35\u0e36\5/\30\2\u0e36"+ + "\u0e37\5\31\r\2\u0e37\u0e38\5%\23\2\u0e38\u0e39\5#\22\2\u0e39\u0e3a\7"+ + "a\2\2\u0e3a\u0e3b\5\r\7\2\u0e3b\u0e3c\5%\23\2\u0e3c\u0e3d\5\17\b\2\u0e3d"+ + "\u0e3e\5\21\t\2\u0e3e\u01be\3\2\2\2\u0e3f\u0e40\5\21\t\2\u0e40\u0e41\5"+ + "\t\5\2\u0e41\u0e42\5\r\7\2\u0e42\u0e43\5\27\f\2\u0e43\u01c0\3\2\2\2\u0e44"+ + "\u0e45\5\21\t\2\u0e45\u0e46\5\37\20\2\u0e46\u0e47\5\21\t\2\u0e47\u0e48"+ + "\5!\21\2\u0e48\u0e49\5\21\t\2\u0e49\u0e4a\5#\22\2\u0e4a\u0e4b\5/\30\2"+ + "\u0e4b\u01c2\3\2\2\2\u0e4c\u0e4d\5\21\t\2\u0e4d\u0e4e\5\37\20\2\u0e4e"+ + "\u0e4f\5-\27\2\u0e4f\u0e50\5\21\t\2\u0e50\u01c4\3\2\2\2\u0e51\u0e52\5"+ + "\21\t\2\u0e52\u0e53\5#\22\2\u0e53\u0e54\5\t\5\2\u0e54\u0e55\5\13\6\2\u0e55"+ + "\u0e56\5\37\20\2\u0e56\u0e57\5\21\t\2\u0e57\u01c6\3\2\2\2\u0e58\u0e59"+ + "\5\21\t\2\u0e59\u0e5a\5#\22\2\u0e5a\u0e5b\5\r\7\2\u0e5b\u0e5c\5%\23\2"+ + "\u0e5c\u0e5d\5\17\b\2\u0e5d\u0e5e\5\31\r\2\u0e5e\u0e5f\5#\22\2\u0e5f\u0e60"+ + "\5\25\13\2\u0e60\u01c8\3\2\2\2\u0e61\u0e62\5\21\t\2\u0e62\u0e63\5#\22"+ + "\2\u0e63\u0e64\5\r\7\2\u0e64\u0e65\5+\26\2\u0e65\u0e66\59\35\2\u0e66\u0e67"+ + "\5\'\24\2\u0e67\u0e68\5/\30\2\u0e68\u0e69\5\21\t\2\u0e69\u0e6a\5\17\b"+ + "\2\u0e6a\u01ca\3\2\2\2\u0e6b\u0e6c\5\21\t\2\u0e6c\u0e6d\5#\22\2\u0e6d"+ + "\u0e6e\5\17\b\2\u0e6e\u01cc\3\2\2\2\u0e6f\u0e70\5\21\t\2\u0e70\u0e71\5"+ + "#\22\2\u0e71\u0e72\5\17\b\2\u0e72\u0e73\7/\2\2\u0e73\u0e74\5\21\t\2\u0e74"+ + "\u0e75\5\67\34\2\u0e75\u0e76\5\21\t\2\u0e76\u0e77\5\r\7\2\u0e77\u01ce"+ + "\3\2\2\2\u0e78\u0e79\5\21\t\2\u0e79\u0e7a\5)\25\2\u0e7a\u0e7b\5\61\31"+ + "\2\u0e7b\u0e7c\5\t\5\2\u0e7c\u0e7d\5\37\20\2\u0e7d\u0e7e\5-\27\2\u0e7e"+ + "\u01d0\3\2\2\2\u0e7f\u0e80\5\21\t\2\u0e80\u0e81\5-\27\2\u0e81\u0e82\5"+ + "\r\7\2\u0e82\u0e83\5\t\5\2\u0e83\u0e84\5\'\24\2\u0e84\u0e85\5\21\t\2\u0e85"+ + "\u01d2\3\2\2\2\u0e86\u0e87\5\21\t\2\u0e87\u0e88\5\63\32\2\u0e88\u0e89"+ + "\5\21\t\2\u0e89\u0e8a\5+\26\2\u0e8a\u0e8b\59\35\2\u0e8b\u01d4\3\2\2\2"+ + "\u0e8c\u0e8d\5\21\t\2\u0e8d\u0e8e\5\67\34\2\u0e8e\u0e8f\5\r\7\2\u0e8f"+ + "\u0e90\5\21\t\2\u0e90\u0e91\5\'\24\2\u0e91\u0e92\5/\30\2\u0e92\u01d6\3"+ + "\2\2\2\u0e93\u0e94\5\21\t\2\u0e94\u0e95\5\67\34\2\u0e95\u0e96\5\r\7\2"+ + "\u0e96\u0e97\5\21\t\2\u0e97\u0e98\5\'\24\2\u0e98\u0e99\5/\30\2\u0e99\u0e9a"+ + "\5\31\r\2\u0e9a\u0e9b\5%\23\2\u0e9b\u0e9c\5#\22\2\u0e9c\u01d8\3\2\2\2"+ + "\u0e9d\u0e9e\5\21\t\2\u0e9e\u0e9f\5\67\34\2\u0e9f\u0ea0\5\r\7\2\u0ea0"+ + "\u0ea1\5\37\20\2\u0ea1\u0ea2\5\61\31\2\u0ea2\u0ea3\5\17\b\2\u0ea3\u0ea4"+ + "\5\21\t\2\u0ea4\u01da\3\2\2\2\u0ea5\u0ea6\5\21\t\2\u0ea6\u0ea7\5\67\34"+ + "\2\u0ea7\u0ea8\5\r\7\2\u0ea8\u0ea9\5\37\20\2\u0ea9\u0eaa\5\61\31\2\u0eaa"+ + "\u0eab\5\17\b\2\u0eab\u0eac\5\31\r\2\u0eac\u0ead\5#\22\2\u0ead\u0eae\5"+ + "\25\13\2\u0eae\u01dc\3\2\2\2\u0eaf\u0eb0\5\21\t\2\u0eb0\u0eb1\5\67\34"+ + "\2\u0eb1\u0eb2\5\r\7\2\u0eb2\u0eb3\5\37\20\2\u0eb3\u0eb4\5\61\31\2\u0eb4"+ + "\u0eb5\5-\27\2\u0eb5\u0eb6\5\31\r\2\u0eb6\u0eb7\5\63\32\2\u0eb7\u0eb8"+ + "\5\21\t\2\u0eb8\u01de\3\2\2\2\u0eb9\u0eba\5\21\t\2\u0eba\u0ebb\5\67\34"+ + "\2\u0ebb\u0ebc\5\21\t\2\u0ebc\u0ebd\5\r\7\2\u0ebd\u01e0\3\2\2\2\u0ebe"+ + "\u0ebf\5\21\t\2\u0ebf\u0ec0\5\67\34\2\u0ec0\u0ec1\5\21\t\2\u0ec1\u0ec2"+ + "\5\r\7\2\u0ec2\u0ec3\5\61\31\2\u0ec3\u0ec4\5/\30\2\u0ec4\u0ec5\5\21\t"+ + "\2\u0ec5\u01e2\3\2\2\2\u0ec6\u0ec7\5\21\t\2\u0ec7\u0ec8\5\67\34\2\u0ec8"+ + "\u0ec9\5\31\r\2\u0ec9\u0eca\5-\27\2\u0eca\u0ecb\5/\30\2\u0ecb\u0ecc\5"+ + "\31\r\2\u0ecc\u0ecd\5#\22\2\u0ecd\u0ece\5\25\13\2\u0ece\u01e4\3\2\2\2"+ + "\u0ecf\u0ed0\5\21\t\2\u0ed0\u0ed1\5\67\34\2\u0ed1\u0ed2\5\31\r\2\u0ed2"+ + "\u0ed3\5-\27\2\u0ed3\u0ed4\5/\30\2\u0ed4\u0ed5\5-\27\2\u0ed5\u01e6\3\2"+ + "\2\2\u0ed6\u0ed7\5\21\t\2\u0ed7\u0ed8\5\67\34\2\u0ed8\u0ed9\5\'\24\2\u0ed9"+ + "\u01e8\3\2\2\2\u0eda\u0edb\5\21\t\2\u0edb\u0edc\5\67\34\2\u0edc\u0edd"+ + "\5\'\24\2\u0edd\u0ede\5\37\20\2\u0ede\u0edf\5\t\5\2\u0edf\u0ee0\5\31\r"+ + "\2\u0ee0\u0ee1\5#\22\2\u0ee1\u01ea\3\2\2\2\u0ee2\u0ee3\5\21\t\2\u0ee3"+ + "\u0ee4\5\67\34\2\u0ee4\u0ee5\5/\30\2\u0ee5\u0ee6\5\21\t\2\u0ee6\u0ee7"+ + "\5#\22\2\u0ee7\u0ee8\5\17\b\2\u0ee8\u0ee9\5\21\t\2\u0ee9\u0eea\5\17\b"+ + "\2\u0eea\u01ec\3\2\2\2\u0eeb\u0eec\5\21\t\2\u0eec\u0eed\5\67\34\2\u0eed"+ + "\u0eee\5/\30\2\u0eee\u0eef\5\21\t\2\u0eef\u0ef0\5#\22\2\u0ef0\u0ef1\5"+ + "-\27\2\u0ef1\u0ef2\5\31\r\2\u0ef2\u0ef3\5%\23\2\u0ef3\u0ef4\5#\22\2\u0ef4"+ + "\u01ee\3\2\2\2\u0ef5\u0ef6\5\21\t\2\u0ef6\u0ef7\5\67\34\2\u0ef7\u0ef8"+ + "\5/\30\2\u0ef8\u0ef9\5\21\t\2\u0ef9\u0efa\5+\26\2\u0efa\u0efb\5#\22\2"+ + "\u0efb\u0efc\5\t\5\2\u0efc\u0efd\5\37\20\2\u0efd\u01f0\3\2\2\2\u0efe\u0eff"+ + "\5\21\t\2\u0eff\u0f00\5\67\34\2\u0f00\u0f01\5/\30\2\u0f01\u0f02\5+\26"+ + "\2\u0f02\u0f03\5\t\5\2\u0f03\u0f04\5\r\7\2\u0f04\u0f05\5/\30\2\u0f05\u01f2"+ + "\3\2\2\2\u0f06\u0f07\5\23\n\2\u0f07\u0f08\5\t\5\2\u0f08\u0f09\5\37\20"+ + "\2\u0f09\u0f0a\5-\27\2\u0f0a\u0f0b\5\21\t\2\u0f0b\u01f4\3\2\2\2\u0f0c"+ + "\u0f0d\5\23\n\2\u0f0d\u0f0e\5\21\t\2\u0f0e\u0f0f\5/\30\2\u0f0f\u0f10\5"+ + "\r\7\2\u0f10\u0f11\5\27\f\2\u0f11\u01f6\3\2\2\2\u0f12\u0f13\5\23\n\2\u0f13"+ + "\u0f14\5\31\r\2\u0f14\u0f15\5\21\t\2\u0f15\u0f16\5\37\20\2\u0f16\u0f17"+ + "\5\17\b\2\u0f17\u0f18\5-\27\2\u0f18\u01f8\3\2\2\2\u0f19\u0f1a\5\23\n\2"+ + "\u0f1a\u0f1b\5\31\r\2\u0f1b\u0f1c\5\37\20\2\u0f1c\u0f1d\5/\30\2\u0f1d"+ + "\u0f1e\5\21\t\2\u0f1e\u0f1f\5+\26\2\u0f1f\u01fa\3\2\2\2\u0f20\u0f21\5"+ + "\23\n\2\u0f21\u0f22\5\31\r\2\u0f22\u0f23\5#\22\2\u0f23\u0f24\5\t\5\2\u0f24"+ + "\u0f25\5\37\20\2\u0f25\u01fc\3\2\2\2\u0f26\u0f27\5\23\n\2\u0f27\u0f28"+ + "\5\31\r\2\u0f28\u0f29\5+\26\2\u0f29\u0f2a\5-\27\2\u0f2a\u0f2b\5/\30\2"+ + "\u0f2b\u01fe\3\2\2\2\u0f2c\u0f2d\5\23\n\2\u0f2d\u0f2e\5\37\20\2\u0f2e"+ + "\u0f2f\5%\23\2\u0f2f\u0f30\5\t\5\2\u0f30\u0f31\5/\30\2\u0f31\u0200\3\2"+ + "\2\2\u0f32\u0f33\5\23\n\2\u0f33\u0f34\5\37\20\2\u0f34\u0f35\5%\23\2\u0f35"+ + "\u0f36\5%\23\2\u0f36\u0f37\5+\26\2\u0f37\u0202\3\2\2\2\u0f38\u0f39\5\23"+ + "\n\2\u0f39\u0f3a\5%\23\2\u0f3a\u0f3b\5\37\20\2\u0f3b\u0f3c\5\37\20\2\u0f3c"+ + "\u0f3d\5%\23\2\u0f3d\u0f3e\5\65\33\2\u0f3e\u0f3f\5\31\r\2\u0f3f\u0f40"+ + "\5#\22\2\u0f40\u0f41\5\25\13\2\u0f41\u0204\3\2\2\2\u0f42\u0f43\5\23\n"+ + "\2\u0f43\u0f44\5%\23\2\u0f44\u0f45\5+\26\2\u0f45\u0206\3\2\2\2\u0f46\u0f47"+ + "\5\23\n\2\u0f47\u0f48\5%\23\2\u0f48\u0f49\5+\26\2\u0f49\u0f4a\5\r\7\2"+ + "\u0f4a\u0f4b\5\21\t\2\u0f4b\u0208\3\2\2\2\u0f4c\u0f4d\5\23\n\2\u0f4d\u0f4e"+ + "\5%\23\2\u0f4e\u0f4f\5+\26\2\u0f4f\u0f50\5\21\t\2\u0f50\u0f51\5\31\r\2"+ + "\u0f51\u0f52\5\25\13\2\u0f52\u0f53\5#\22\2\u0f53\u020a\3\2\2\2\u0f54\u0f55"+ + "\5\23\n\2\u0f55\u0f56\5%\23\2\u0f56\u0f57\5+\26\2\u0f57\u0f58\5!\21\2"+ + "\u0f58\u0f59\5\t\5\2\u0f59\u0f5a\5/\30\2\u0f5a\u020c\3\2\2\2\u0f5b\u0f5c"+ + "\5\23\n\2\u0f5c\u0f5d\5%\23\2\u0f5d\u0f5e\5+\26\2\u0f5e\u0f5f\5/\30\2"+ + "\u0f5f\u0f60\5+\26\2\u0f60\u0f61\5\t\5\2\u0f61\u0f62\5#\22\2\u0f62\u020e"+ + "\3\2\2\2\u0f63\u0f64\5\23\n\2\u0f64\u0f65\5%\23\2\u0f65\u0f66\5+\26\2"+ + "\u0f66\u0f67\5\65\33\2\u0f67\u0f68\5\t\5\2\u0f68\u0f69\5+\26\2\u0f69\u0f6a"+ + "\5\17\b\2\u0f6a\u0210\3\2\2\2\u0f6b\u0f6c\5\23\n\2\u0f6c\u0f6d\5%\23\2"+ + "\u0f6d\u0f6e\5\61\31\2\u0f6e\u0f6f\5#\22\2\u0f6f\u0f70\5\17\b\2\u0f70"+ + "\u0212\3\2\2\2\u0f71\u0f72\5\23\n\2\u0f72\u0f73\5+\26\2\u0f73\u0f74\5"+ + "\21\t\2\u0f74\u0f75\5\21\t\2\u0f75\u0214\3\2\2\2\u0f76\u0f77\5\23\n\2"+ + "\u0f77\u0f78\5+\26\2\u0f78\u0f79\5\21\t\2\u0f79\u0f7a\5\21\t\2\u0f7a\u0f7b"+ + "\5;\36\2\u0f7b\u0f7c\5\21\t\2\u0f7c\u0216\3\2\2\2\u0f7d\u0f7e\5\23\n\2"+ + "\u0f7e\u0f7f\5+\26\2\u0f7f\u0f80\5%\23\2\u0f80\u0f81\5!\21\2\u0f81\u0218"+ + "\3\2\2\2\u0f82\u0f83\5\23\n\2\u0f83\u0f84\5\61\31\2\u0f84\u0f85\5\37\20"+ + "\2\u0f85\u0f86\5\37\20\2\u0f86\u021a\3\2\2\2\u0f87\u0f88\5\23\n\2\u0f88"+ + "\u0f89\5\61\31\2\u0f89\u0f8a\5#\22\2\u0f8a\u0f8b\5\r\7\2\u0f8b\u0f8c\5"+ + "/\30\2\u0f8c\u0f8d\5\31\r\2\u0f8d\u0f8e\5%\23\2\u0f8e\u0f8f\5#\22\2\u0f8f"+ + "\u021c\3\2\2\2\u0f90\u0f91\5\23\n\2\u0f91\u0f92\5\61\31\2\u0f92\u0f93"+ + "\5-\27\2\u0f93\u0f94\5\31\r\2\u0f94\u0f95\5%\23\2\u0f95\u0f96\5#\22\2"+ + "\u0f96\u021e\3\2\2\2\u0f97\u0f98\5\25\13\2\u0f98\u0220\3\2\2\2\u0f99\u0f9a"+ + "\5\25\13\2\u0f9a\u0f9b\5\21\t\2\u0f9b\u0f9c\5#\22\2\u0f9c\u0f9d\5\21\t"+ + "\2\u0f9d\u0f9e\5+\26\2\u0f9e\u0f9f\5\t\5\2\u0f9f\u0fa0\5\37\20\2\u0fa0"+ + "\u0222\3\2\2\2\u0fa1\u0fa2\5\25\13\2\u0fa2\u0fa3\5\21\t\2\u0fa3\u0fa4"+ + "\5#\22\2\u0fa4\u0fa5\5\21\t\2\u0fa5\u0fa6\5+\26\2\u0fa6\u0fa7\5\t\5\2"+ + "\u0fa7\u0fa8\5/\30\2\u0fa8\u0fa9\5\21\t\2\u0fa9\u0faa\5\17\b\2\u0faa\u0224"+ + "\3\2\2\2\u0fab\u0fac\5\25\13\2\u0fac\u0fad\5\21\t\2\u0fad\u0fae\5/\30"+ + "\2\u0fae\u0226\3\2\2\2\u0faf\u0fb0\5\25\13\2\u0fb0\u0fb1\5\37\20\2\u0fb1"+ + "\u0fb2\5%\23\2\u0fb2\u0fb3\5\13\6\2\u0fb3\u0fb4\5\t\5\2\u0fb4\u0fb5\5"+ + "\37\20\2\u0fb5\u0228\3\2\2\2\u0fb6\u0fb7\5\25\13\2\u0fb7\u0fb8\5%\23\2"+ + "\u0fb8\u022a\3\2\2\2\u0fb9\u0fba\5\25\13\2\u0fba\u0fbb\5%\23\2\u0fbb\u0fbc"+ + "\5/\30\2\u0fbc\u0fbd\5%\23\2\u0fbd\u022c\3\2\2\2\u0fbe\u0fbf\5\25\13\2"+ + "\u0fbf\u0fc0\5+\26\2\u0fc0\u0fc1\5\t\5\2\u0fc1\u0fc2\5#\22\2\u0fc2\u0fc3"+ + "\5/\30\2\u0fc3\u022e\3\2\2\2\u0fc4\u0fc5\5\25\13\2\u0fc5\u0fc6\5+\26\2"+ + "\u0fc6\u0fc7\5\t\5\2\u0fc7\u0fc8\5#\22\2\u0fc8\u0fc9\5/\30\2\u0fc9\u0fca"+ + "\5\21\t\2\u0fca\u0fcb\5\17\b\2\u0fcb\u0230\3\2\2\2\u0fcc\u0fcd\5\25\13"+ + "\2\u0fcd\u0fce\5+\26\2\u0fce\u0fcf\5\21\t\2\u0fcf\u0fd0\5\t\5\2\u0fd0"+ + "\u0fd1\5/\30\2\u0fd1\u0fd2\5\21\t\2\u0fd2\u0fd3\5-\27\2\u0fd3\u0fd4\5"+ + "/\30\2\u0fd4\u0232\3\2\2\2\u0fd5\u0fd6\5\25\13\2\u0fd6\u0fd7\5+\26\2\u0fd7"+ + "\u0fd8\5%\23\2\u0fd8\u0fd9\5\61\31\2\u0fd9\u0fda\5\'\24\2\u0fda\u0234"+ + "\3\2\2\2\u0fdb\u0fdc\5\25\13\2\u0fdc\u0fdd\5+\26\2\u0fdd\u0fde\5%\23\2"+ + "\u0fde\u0fdf\5\61\31\2\u0fdf\u0fe0\5\'\24\2\u0fe0\u0fe1\5\31\r\2\u0fe1"+ + "\u0fe2\5#\22\2\u0fe2\u0fe3\5\25\13\2\u0fe3\u0236\3\2\2\2\u0fe4\u0fe5\5"+ + "\27\f\2\u0fe5\u0fe6\5\t\5\2\u0fe6\u0fe7\5#\22\2\u0fe7\u0fe8\5\17\b\2\u0fe8"+ + "\u0fe9\5\37\20\2\u0fe9\u0fea\5\21\t\2\u0fea\u0feb\5+\26\2\u0feb\u0238"+ + "\3\2\2\2\u0fec\u0fed\5\27\f\2\u0fed\u0fee\5\t\5\2\u0fee\u0fef\5\63"; + private static final String _serializedATNSegment2 = + "\32\2\u0fef\u0ff0\5\31\r\2\u0ff0\u0ff1\5#\22\2\u0ff1\u0ff2\5\25\13\2\u0ff2"+ + "\u023a\3\2\2\2\u0ff3\u0ff4\5\27\f\2\u0ff4\u0ff5\5\31\r\2\u0ff5\u0ff6\5"+ + "\21\t\2\u0ff6\u0ff7\5+\26\2\u0ff7\u0ff8\5\t\5\2\u0ff8\u0ff9\5+\26\2\u0ff9"+ + "\u0ffa\5\r\7\2\u0ffa\u0ffb\5\27\f\2\u0ffb\u0ffc\59\35\2\u0ffc\u023c\3"+ + "\2\2\2\u0ffd\u0ffe\5\27\f\2\u0ffe\u0fff\5%\23\2\u0fff\u1000\5\37\20\2"+ + "\u1000\u1001\5\17\b\2\u1001\u023e\3\2\2\2\u1002\u1003\5\27\f\2\u1003\u1004"+ + "\5%\23\2\u1004\u1005\5-\27\2\u1005\u1006\5/\30\2\u1006\u0240\3\2\2\2\u1007"+ + "\u1008\5\27\f\2\u1008\u1009\5%\23\2\u1009\u100a\5\61\31\2\u100a\u100b"+ + "\5+\26\2\u100b\u0242\3\2\2\2\u100c\u100d\5\31\r\2\u100d\u100e\5\17\b\2"+ + "\u100e\u100f\5\21\t\2\u100f\u1010\5#\22\2\u1010\u1011\5/\30\2\u1011\u1012"+ + "\5\31\r\2\u1012\u1013\5/\30\2\u1013\u1014\59\35\2\u1014\u0244\3\2\2\2"+ + "\u1015\u1016\5\31\r\2\u1016\u1017\5\25\13\2\u1017\u1018\5#\22\2\u1018"+ + "\u1019\5%\23\2\u1019\u101a\5+\26\2\u101a\u101b\5\21\t\2\u101b\u0246\3"+ + "\2\2\2\u101c\u101d\5\31\r\2\u101d\u101e\5\37\20\2\u101e\u101f\5\31\r\2"+ + "\u101f\u1020\5\35\17\2\u1020\u1021\5\21\t\2\u1021\u0248\3\2\2\2\u1022"+ + "\u1023\5\31\r\2\u1023\u1024\5!\21\2\u1024\u1025\5!\21\2\u1025\u1026\5"+ + "\21\t\2\u1026\u1027\5\17\b\2\u1027\u1028\5\31\r\2\u1028\u1029\5\t\5\2"+ + "\u1029\u102a\5/\30\2\u102a\u102b\5\21\t\2\u102b\u024a\3\2\2\2\u102c\u102d"+ + "\5\31\r\2\u102d\u102e\5!\21\2\u102e\u102f\5!\21\2\u102f\u1030\5\61\31"+ + "\2\u1030\u1031\5/\30\2\u1031\u1032\5\t\5\2\u1032\u1033\5\13\6\2\u1033"+ + "\u1034\5\37\20\2\u1034\u1035\5\21\t\2\u1035\u024c\3\2\2\2\u1036\u1037"+ + "\5\31\r\2\u1037\u1038\5!\21\2\u1038\u1039\5\'\24\2\u1039\u103a\5\37\20"+ + "\2\u103a\u103b\5\21\t\2\u103b\u103c\5!\21\2\u103c\u103d\5\21\t\2\u103d"+ + "\u103e\5#\22\2\u103e\u103f\5/\30\2\u103f\u1040\5\t\5\2\u1040\u1041\5/"+ + "\30\2\u1041\u1042\5\31\r\2\u1042\u1043\5%\23\2\u1043\u1044\5#\22\2\u1044"+ + "\u024e\3\2\2\2\u1045\u1046\5\31\r\2\u1046\u1047\5!\21\2\u1047\u1048\5"+ + "\'\24\2\u1048\u1049\5\37\20\2\u1049\u104a\5\31\r\2\u104a\u104b\5\r\7\2"+ + "\u104b\u104c\5\31\r\2\u104c\u104d\5/\30\2\u104d\u0250\3\2\2\2\u104e\u104f"+ + "\5\31\r\2\u104f\u1050\5#\22\2\u1050\u0252\3\2\2\2\u1051\u1052\5\31\r\2"+ + "\u1052\u1053\5#\22\2\u1053\u1054\5\r\7\2\u1054\u1055\5\37\20\2\u1055\u1056"+ + "\5\61\31\2\u1056\u1057\5\17\b\2\u1057\u1058\5\31\r\2\u1058\u1059\5#\22"+ + "\2\u1059\u105a\5\25\13\2\u105a\u0254\3\2\2\2\u105b\u105c\5\31\r\2\u105c"+ + "\u105d\5#\22\2\u105d\u105e\5\r\7\2\u105e\u105f\5+\26\2\u105f\u1060\5\21"+ + "\t\2\u1060\u1061\5!\21\2\u1061\u1062\5\21\t\2\u1062\u1063\5#\22\2\u1063"+ + "\u1064\5/\30\2\u1064\u0256\3\2\2\2\u1065\u1066\5\31\r\2\u1066\u1067\5"+ + "#\22\2\u1067\u1068\5\17\b\2\u1068\u1069\5\21\t\2\u1069\u106a\5\67\34\2"+ + "\u106a\u0258\3\2\2\2\u106b\u106c\5\31\r\2\u106c\u106d\5#\22\2\u106d\u106e"+ + "\5\17\b\2\u106e\u106f\5\31\r\2\u106f\u1070\5\r\7\2\u1070\u1071\5\t\5\2"+ + "\u1071\u1072\5/\30\2\u1072\u1073\5%\23\2\u1073\u1074\5+\26\2\u1074\u025a"+ + "\3\2\2\2\u1075\u1076\5\31\r\2\u1076\u1077\5#\22\2\u1077\u1078\5\23\n\2"+ + "\u1078\u1079\5\31\r\2\u1079\u107a\5\67\34\2\u107a\u025c\3\2\2\2\u107b"+ + "\u107c\5\31\r\2\u107c\u107d\5#\22\2\u107d\u107e\5\27\f\2\u107e\u107f\5"+ + "\21\t\2\u107f\u1080\5+\26\2\u1080\u1081\5\31\r\2\u1081\u1082\5/\30\2\u1082"+ + "\u1083\5-\27\2\u1083\u025e\3\2\2\2\u1084\u1085\5\31\r\2\u1085\u1086\5"+ + "#\22\2\u1086\u1087\5\31\r\2\u1087\u1088\5/\30\2\u1088\u1089\5\31\r\2\u1089"+ + "\u108a\5\t\5\2\u108a\u108b\5\37\20\2\u108b\u108c\5\31\r\2\u108c\u108d"+ + "\5;\36\2\u108d\u108e\5\21\t\2\u108e\u0260\3\2\2\2\u108f\u1090\5\31\r\2"+ + "\u1090\u1091\5#\22\2\u1091\u1092\5\31\r\2\u1092\u1093\5/\30\2\u1093\u1094"+ + "\5\31\r\2\u1094\u1095\5\t\5\2\u1095\u1096\5\37\20\2\u1096\u1097\5\37\20"+ + "\2\u1097\u1098\59\35\2\u1098\u0262\3\2\2\2\u1099\u109a\5\31\r\2\u109a"+ + "\u109b\5#\22\2\u109b\u109c\5#\22\2\u109c\u109d\5\21\t\2\u109d\u109e\5"+ + "+\26\2\u109e\u0264\3\2\2\2\u109f\u10a0\5\31\r\2\u10a0\u10a1\5#\22\2\u10a1"+ + "\u10a2\5%\23\2\u10a2\u10a3\5\61\31\2\u10a3\u10a4\5/\30\2\u10a4\u0266\3"+ + "\2\2\2\u10a5\u10a6\5\31\r\2\u10a6\u10a7\5#\22\2\u10a7\u10a8\5\'\24\2\u10a8"+ + "\u10a9\5\61\31\2\u10a9\u10aa\5/\30\2\u10aa\u0268\3\2\2\2\u10ab\u10ac\5"+ + "\31\r\2\u10ac\u10ad\5#\22\2\u10ad\u10ae\5-\27\2\u10ae\u10af\5\21\t\2\u10af"+ + "\u10b0\5#\22\2\u10b0\u10b1\5-\27\2\u10b1\u10b2\5\31\r\2\u10b2\u10b3\5"+ + "/\30\2\u10b3\u10b4\5\31\r\2\u10b4\u10b5\5\63\32\2\u10b5\u10b6\5\21\t\2"+ + "\u10b6\u026a\3\2\2\2\u10b7\u10b8\5\31\r\2\u10b8\u10b9\5#\22\2\u10b9\u10ba"+ + "\5-\27\2\u10ba\u10bb\5\21\t\2\u10bb\u10bc\5+\26\2\u10bc\u10bd\5/\30\2"+ + "\u10bd\u026c\3\2\2\2\u10be\u10bf\5\31\r\2\u10bf\u10c0\5#\22\2\u10c0\u10c1"+ + "\5-\27\2\u10c1\u10c2\5/\30\2\u10c2\u10c3\5\t\5\2\u10c3\u10c4\5#\22\2\u10c4"+ + "\u10c5\5\r\7\2\u10c5\u10c6\5\21\t\2\u10c6\u026e\3\2\2\2\u10c7\u10c8\5"+ + "\31\r\2\u10c8\u10c9\5#\22\2\u10c9\u10ca\5-\27\2\u10ca\u10cb\5/\30\2\u10cb"+ + "\u10cc\5\t\5\2\u10cc\u10cd\5#\22\2\u10cd\u10ce\5/\30\2\u10ce\u10cf\5\31"+ + "\r\2\u10cf\u10d0\5\t\5\2\u10d0\u10d1\5\13\6\2\u10d1\u10d2\5\37\20\2\u10d2"+ + "\u10d3\5\21\t\2\u10d3\u0270\3\2\2\2\u10d4\u10d5\5\31\r\2\u10d5\u10d6\5"+ + "#\22\2\u10d6\u10d7\5-\27\2\u10d7\u10d8\5/\30\2\u10d8\u10d9\5\21\t\2\u10d9"+ + "\u10da\5\t\5\2\u10da\u10db\5\17\b\2\u10db\u0272\3\2\2\2\u10dc\u10dd\5"+ + "\31\r\2\u10dd\u10de\5#\22\2\u10de\u10df\5/\30\2\u10df\u0274\3\2\2\2\u10e0"+ + "\u10e1\5\31\r\2\u10e1\u10e2\5#\22\2\u10e2\u10e3\5/\30\2\u10e3\u10e4\5"+ + "\21\t\2\u10e4\u10e5\5\25\13\2\u10e5\u10e6\5\21\t\2\u10e6\u10e7\5+\26\2"+ + "\u10e7\u0276\3\2\2\2\u10e8\u10e9\5\31\r\2\u10e9\u10ea\5#\22\2\u10ea\u10eb"+ + "\5/\30\2\u10eb\u10ec\5\21\t\2\u10ec\u10ed\5+\26\2\u10ed\u10ee\5-\27\2"+ + "\u10ee\u10ef\5\21\t\2\u10ef\u10f0\5\r\7\2\u10f0\u10f1\5/\30\2\u10f1\u0278"+ + "\3\2\2\2\u10f2\u10f3\5\31\r\2\u10f3\u10f4\5#\22\2\u10f4\u10f5\5/\30\2"+ + "\u10f5\u10f6\5\21\t\2\u10f6\u10f7\5+\26\2\u10f7\u10f8\5-\27\2\u10f8\u10f9"+ + "\5\21\t\2\u10f9\u10fa\5\r\7\2\u10fa\u10fb\5/\30\2\u10fb\u10fc\5\31\r\2"+ + "\u10fc\u10fd\5%\23\2\u10fd\u10fe\5#\22\2\u10fe\u027a\3\2\2\2\u10ff\u1100"+ + "\5\31\r\2\u1100\u1101\5#\22\2\u1101\u1102\5/\30\2\u1102\u1103\5\21\t\2"+ + "\u1103\u1104\5+\26\2\u1104\u1105\5\63\32\2\u1105\u1106\5\t\5\2\u1106\u1107"+ + "\5\37\20\2\u1107\u027c\3\2\2\2\u1108\u1109\5\31\r\2\u1109\u110a\5#\22"+ + "\2\u110a\u110b\5/\30\2\u110b\u110c\5%\23\2\u110c\u027e\3\2\2\2\u110d\u110e"+ + "\5\31\r\2\u110e\u110f\5#\22\2\u110f\u1110\5\63\32\2\u1110\u1111\5%\23"+ + "\2\u1111\u1112\5\35\17\2\u1112\u1113\5\21\t\2\u1113\u1114\5+\26\2\u1114"+ + "\u0280\3\2\2\2\u1115\u1116\5\31\r\2\u1116\u1117\5-\27\2\u1117\u0282\3"+ + "\2\2\2\u1118\u1119\5\31\r\2\u1119\u111a\5-\27\2\u111a\u111b\5%\23\2\u111b"+ + "\u111c\5\37\20\2\u111c\u111d\5\t\5\2\u111d\u111e\5/\30\2\u111e\u111f\5"+ + "\31\r\2\u111f\u1120\5%\23\2\u1120\u1121\5#\22\2\u1121\u0284\3\2\2\2\u1122"+ + "\u1123\5\31\r\2\u1123\u1124\5/\30\2\u1124\u1125\5\21\t\2\u1125\u1126\5"+ + "+\26\2\u1126\u1127\5\t\5\2\u1127\u1128\5/\30\2\u1128\u1129\5\21\t\2\u1129"+ + "\u0286\3\2\2\2\u112a\u112b\5\33\16\2\u112b\u112c\5%\23\2\u112c\u112d\5"+ + "\31\r\2\u112d\u112e\5#\22\2\u112e\u0288\3\2\2\2\u112f\u1130\5\35\17\2"+ + "\u1130\u028a\3\2\2\2\u1131\u1132\5\35\17\2\u1132\u1133\5\21\t\2\u1133"+ + "\u1134\59\35\2\u1134\u028c\3\2\2\2\u1135\u1136\5\35\17\2\u1136\u1137\5"+ + "\21\t\2\u1137\u1138\59\35\2\u1138\u1139\7a\2\2\u1139\u113a\5!\21\2\u113a"+ + "\u113b\5\21\t\2\u113b\u113c\5!\21\2\u113c\u113d\5\13\6\2\u113d\u113e\5"+ + "\21\t\2\u113e\u113f\5+\26\2\u113f\u028e\3\2\2\2\u1140\u1141\5\35\17\2"+ + "\u1141\u1142\5\21\t\2\u1142\u1143\59\35\2\u1143\u1144\7a\2\2\u1144\u1145"+ + "\5/\30\2\u1145\u1146\59\35\2\u1146\u1147\5\'\24\2\u1147\u1148\5\21\t\2"+ + "\u1148\u0290\3\2\2\2\u1149\u114a\5\37\20\2\u114a\u114b\5\t\5\2\u114b\u114c"+ + "\5\13\6\2\u114c\u114d\5\21\t\2\u114d\u114e\5\37\20\2\u114e\u0292\3\2\2"+ + "\2\u114f\u1150\5\37\20\2\u1150\u1151\5\t\5\2\u1151\u1152\5#\22\2\u1152"+ + "\u1153\5\r\7\2\u1153\u1154\5%\23\2\u1154\u1155\5!\21\2\u1155\u1156\5\'"+ + "\24\2\u1156\u1157\5\31\r\2\u1157\u1158\5\37\20\2\u1158\u1159\5\21\t\2"+ + "\u1159\u115a\5+\26\2\u115a\u0294\3\2\2\2\u115b\u115c\5\37\20\2\u115c\u115d"+ + "\5\t\5\2\u115d\u115e\5#\22\2\u115e\u115f\5\25\13\2\u115f\u1160\5\61\31"+ + "\2\u1160\u1161\5\t\5\2\u1161\u1162\5\25\13\2\u1162\u1163\5\21\t\2\u1163"+ + "\u0296\3\2\2\2\u1164\u1165\5\37\20\2\u1165\u1166\5\t\5\2\u1166\u1167\5"+ + "+\26\2\u1167\u1168\5\25\13\2\u1168\u1169\5\21\t\2\u1169\u0298\3\2\2\2"+ + "\u116a\u116b\5\37\20\2\u116b\u116c\5\t\5\2\u116c\u116d\5-\27\2\u116d\u116e"+ + "\5/\30\2\u116e\u029a\3\2\2\2\u116f\u1170\5\37\20\2\u1170\u1171\5\t\5\2"+ + "\u1171\u1172\5/\30\2\u1172\u1173\5\21\t\2\u1173\u1174\5+\26\2\u1174\u1175"+ + "\5\t\5\2\u1175\u1176\5\37\20\2\u1176\u029c\3\2\2\2\u1177\u1178\5\37\20"+ + "\2\u1178\u1179\5\21\t\2\u1179\u117a\5\t\5\2\u117a\u117b\5\17\b\2\u117b"+ + "\u117c\5\31\r\2\u117c\u117d\5#\22\2\u117d\u117e\5\25\13\2\u117e\u029e"+ + "\3\2\2\2\u117f\u1180\5\37\20\2\u1180\u1181\5\21\t\2\u1181\u1182\5\t\5"+ + "\2\u1182\u1183\5-\27\2\u1183\u1184\5/\30\2\u1184\u02a0\3\2\2\2\u1185\u1186"+ + "\5\37\20\2\u1186\u1187\5\21\t\2\u1187\u1188\5\23\n\2\u1188\u1189\5/\30"+ + "\2\u1189\u02a2\3\2\2\2\u118a\u118b\5\37\20\2\u118b\u118c\5\21\t\2\u118c"+ + "\u118d\5#\22\2\u118d\u118e\5\25\13\2\u118e\u118f\5/\30\2\u118f\u1190\5"+ + "\27\f\2\u1190\u02a4\3\2\2\2\u1191\u1192\5\37\20\2\u1192\u1193\5\21\t\2"+ + "\u1193\u1194\5-\27\2\u1194\u1195\5-\27\2\u1195\u02a6\3\2\2\2\u1196\u1197"+ + "\5\37\20\2\u1197\u1198\5\21\t\2\u1198\u1199\5\63\32\2\u1199\u119a\5\21"+ + "\t\2\u119a\u119b\5\37\20\2\u119b\u02a8\3\2\2\2\u119c\u119d\5\37\20\2\u119d"+ + "\u119e\5\31\r\2\u119e\u119f\5\35\17\2\u119f\u11a0\5\21\t\2\u11a0\u02aa"+ + "\3\2\2\2\u11a1\u11a2\5\37\20\2\u11a2\u11a3\5\31\r\2\u11a3\u11a4\5!\21"+ + "\2\u11a4\u11a5\5\31\r\2\u11a5\u11a6\5/\30\2\u11a6\u02ac\3\2\2\2\u11a7"+ + "\u11a8\5\37\20\2\u11a8\u11a9\5\31\r\2\u11a9\u11aa\5-\27\2\u11aa\u11ab"+ + "\5/\30\2\u11ab\u11ac\5\21\t\2\u11ac\u11ad\5#\22\2\u11ad\u02ae\3\2\2\2"+ + "\u11ae\u11af\5\37\20\2\u11af\u11b0\5#\22\2\u11b0\u02b0\3\2\2\2\u11b1\u11b2"+ + "\5\37\20\2\u11b2\u11b3\5%\23\2\u11b3\u11b4\5\t\5\2\u11b4\u11b5\5\17\b"+ + "\2\u11b5\u02b2\3\2\2\2\u11b6\u11b7\5\37\20\2\u11b7\u11b8\5%\23\2\u11b8"+ + "\u11b9\5\r\7\2\u11b9\u11ba\5\t\5\2\u11ba\u11bb\5\37\20\2\u11bb\u02b4\3"+ + "\2\2\2\u11bc\u11bd\5\37\20\2\u11bd\u11be\5%\23\2\u11be\u11bf\5\r\7\2\u11bf"+ + "\u11c0\5\t\5\2\u11c0\u11c1\5\37\20\2\u11c1\u11c2\5/\30\2\u11c2\u11c3\5"+ + "\31\r\2\u11c3\u11c4\5!\21\2\u11c4\u11c5\5\21\t\2\u11c5\u02b6\3\2\2\2\u11c6"+ + "\u11c7\5\37\20\2\u11c7\u11c8\5%\23\2\u11c8\u11c9\5\r\7\2\u11c9\u11ca\5"+ + "\t\5\2\u11ca\u11cb\5\37\20\2\u11cb\u11cc\5/\30\2\u11cc\u11cd\5\31\r\2"+ + "\u11cd\u11ce\5!\21\2\u11ce\u11cf\5\21\t\2\u11cf\u11d0\5-\27\2\u11d0\u11d1"+ + "\5/\30\2\u11d1\u11d2\5\t\5\2\u11d2\u11d3\5!\21\2\u11d3\u11d4\5\'\24\2"+ + "\u11d4\u02b8\3\2\2\2\u11d5\u11d6\5\37\20\2\u11d6\u11d7\5%\23\2\u11d7\u11d8"+ + "\5\r\7\2\u11d8\u11d9\5\t\5\2\u11d9\u11da\5/\30\2\u11da\u11db\5\31\r\2"+ + "\u11db\u11dc\5%\23\2\u11dc\u11dd\5#\22\2\u11dd\u02ba\3\2\2\2\u11de\u11df"+ + "\5\37\20\2\u11df\u11e0\5%\23\2\u11e0\u11e1\5\r\7\2\u11e1\u11e2\5\t\5\2"+ + "\u11e2\u11e3\5/\30\2\u11e3\u11e4\5%\23\2\u11e4\u11e5\5+\26\2\u11e5\u02bc"+ + "\3\2\2\2\u11e6\u11e7\5\37\20\2\u11e7\u11e8\5%\23\2\u11e8\u11e9\5\r\7\2"+ + "\u11e9\u11ea\5\35\17\2\u11ea\u02be\3\2\2\2\u11eb\u11ec\5\37\20\2\u11ec"+ + "\u11ed\5%\23\2\u11ed\u11ee\5\r\7\2\u11ee\u11ef\5\35\17\2\u11ef\u11f0\5"+ + "\21\t\2\u11f0\u11f1\5\17\b\2\u11f1\u02c0\3\2\2\2\u11f2\u11f3\5\37\20\2"+ + "\u11f3\u11f4\5%\23\2\u11f4\u11f5\5\65\33\2\u11f5\u11f6\5\21\t\2\u11f6"+ + "\u11f7\5+\26\2\u11f7\u02c2\3\2\2\2\u11f8\u11f9\5!\21\2\u11f9\u02c4\3\2"+ + "\2\2\u11fa\u11fb\5!\21\2\u11fb\u11fc\5\t\5\2\u11fc\u11fd\5\31\r\2\u11fd"+ + "\u11fe\5#\22\2\u11fe\u02c6\3\2\2\2\u11ff\u1200\5!\21\2\u1200\u1201\5\t"+ + "\5\2\u1201\u1202\5\'\24\2\u1202\u02c8\3\2\2\2\u1203\u1204\5!\21\2\u1204"+ + "\u1205\5\t\5\2\u1205\u1206\5\'\24\2\u1206\u1207\5\'\24\2\u1207\u1208\5"+ + "\31\r\2\u1208\u1209\5#\22\2\u1209\u120a\5\25\13\2\u120a\u02ca\3\2\2\2"+ + "\u120b\u120c\5!\21\2\u120c\u120d\5\t\5\2\u120d\u120e\5/\30\2\u120e\u120f"+ + "\5\r\7\2\u120f\u1210\5\27\f\2\u1210\u02cc\3\2\2\2\u1211\u1212\5!\21\2"+ + "\u1212\u1213\5\t\5\2\u1213\u1214\5/\30\2\u1214\u1215\5\r\7\2\u1215\u1216"+ + "\5\27\f\2\u1216\u1217\7a\2\2\u1217\u1218\5-\27\2\u1218\u1219\5\31\r\2"+ + "\u1219\u121a\5!\21\2\u121a\u121b\5\'\24\2\u121b\u121c\5\37\20\2\u121c"+ + "\u121d\5\21\t\2\u121d\u02ce\3\2\2\2\u121e\u121f\5!\21\2\u121f\u1220\5"+ + "\t\5\2\u1220\u1221\5/\30\2\u1221\u1222\5\r\7\2\u1222\u1223\5\27\f\2\u1223"+ + "\u1224\5\21\t\2\u1224\u1225\5\17\b\2\u1225\u02d0\3\2\2\2\u1226\u1227\5"+ + "!\21\2\u1227\u1228\5\t\5\2\u1228\u1229\5\67\34\2\u1229\u02d2\3\2\2\2\u122a"+ + "\u122b\5!\21\2\u122b\u122c\5\t\5\2\u122c\u122d\5\67\34\2\u122d\u122e\5"+ + "\63\32\2\u122e\u122f\5\t\5\2\u122f\u1230\5\37\20\2\u1230\u1231\5\61\31"+ + "\2\u1231\u1232\5\21\t\2\u1232\u02d4\3\2\2\2\u1233\u1234\5!\21\2\u1234"+ + "\u1235\5\21\t\2\u1235\u1236\5!\21\2\u1236\u1237\5\13\6\2\u1237\u1238\5"+ + "\21\t\2\u1238\u1239\5+\26\2\u1239\u02d6\3\2\2\2\u123a\u123b\5!\21\2\u123b"+ + "\u123c\5\21\t\2\u123c\u123d\5+\26\2\u123d\u123e\5\25\13\2\u123e\u123f"+ + "\5\21\t\2\u123f\u02d8\3\2\2\2\u1240\u1241\5!\21\2\u1241\u1242\5\21\t\2"+ + "\u1242\u1243\5-\27\2\u1243\u1244\5-\27\2\u1244\u1245\5\t\5\2\u1245\u1246"+ + "\5\25\13\2\u1246\u1247\5\21\t\2\u1247\u1248\7a\2\2\u1248\u1249\5\37\20"+ + "\2\u1249\u124a\5\21\t\2\u124a\u124b\5#\22\2\u124b\u124c\5\25\13\2\u124c"+ + "\u124d\5/\30\2\u124d\u124e\5\27\f\2\u124e\u02da\3\2\2\2\u124f\u1250\5"+ + "!\21\2\u1250\u1251\5\21\t\2\u1251\u1252\5-\27\2\u1252\u1253\5-\27\2\u1253"+ + "\u1254\5\t\5\2\u1254\u1255\5\25\13\2\u1255\u1256\5\21\t\2\u1256\u1257"+ + "\7a\2\2\u1257\u1258\5%\23\2\u1258\u1259\5\r\7\2\u1259\u125a\5/\30\2\u125a"+ + "\u125b\5\21\t\2\u125b\u125c\5/\30\2\u125c\u125d\7a\2\2\u125d\u125e\5\37"+ + "\20\2\u125e\u125f\5\21\t\2\u125f\u1260\5#\22\2\u1260\u1261\5\25\13\2\u1261"+ + "\u1262\5/\30\2\u1262\u1263\5\27\f\2\u1263\u02dc\3\2\2\2\u1264\u1265\5"+ + "!\21\2\u1265\u1266\5\21\t\2\u1266\u1267\5-\27\2\u1267\u1268\5-\27\2\u1268"+ + "\u1269\5\t\5\2\u1269\u126a\5\25\13\2\u126a\u126b\5\21\t\2\u126b\u126c"+ + "\7a\2\2\u126c\u126d\5/\30\2\u126d\u126e\5\21\t\2\u126e\u126f\5\67\34\2"+ + "\u126f\u1270\5/\30\2\u1270\u02de\3\2\2\2\u1271\u1272\5!\21\2\u1272\u1273"+ + "\5\21\t\2\u1273\u1274\5/\30\2\u1274\u1275\5\27\f\2\u1275\u1276\5%\23\2"+ + "\u1276\u1277\5\17\b\2\u1277\u02e0\3\2\2\2\u1278\u1279\5!\21\2\u1279\u127a"+ + "\5\31\r\2\u127a\u127b\5#\22\2\u127b\u02e2\3\2\2\2\u127c\u127d\5!\21\2"+ + "\u127d\u127e\5\31\r\2\u127e\u127f\5#\22\2\u127f\u1280\5\61\31\2\u1280"+ + "\u1281\5/\30\2\u1281\u1282\5\21\t\2\u1282\u02e4\3\2\2\2\u1283\u1284\5"+ + "!\21\2\u1284\u1285\5\31\r\2\u1285\u1286\5#\22\2\u1286\u1287\5\63\32\2"+ + "\u1287\u1288\5\t\5\2\u1288\u1289\5\37\20\2\u1289\u128a\5\61\31\2\u128a"+ + "\u128b\5\21\t\2\u128b\u02e6\3\2\2\2\u128c\u128d\5!\21\2\u128d\u128e\5"+ + "%\23\2\u128e\u128f\5\17\b\2\u128f\u02e8\3\2\2\2\u1290\u1291\5!\21\2\u1291"+ + "\u1292\5%\23\2\u1292\u1293\5\17\b\2\u1293\u1294\5\21\t\2\u1294\u02ea\3"+ + "\2\2\2\u1295\u1296\5!\21\2\u1296\u1297\5%\23\2\u1297\u1298\5\17\b\2\u1298"+ + "\u1299\5\31\r\2\u1299\u129a\5\23\n\2\u129a\u129b\5\31\r\2\u129b\u129c"+ + "\5\21\t\2\u129c\u129d\5-\27\2\u129d\u02ec\3\2\2\2\u129e\u129f\5!\21\2"+ + "\u129f\u12a0\5%\23\2\u12a0\u12a1\5\17\b\2\u12a1\u12a2\5\31\r\2\u12a2\u12a3"+ + "\5\23\n\2\u12a3\u12a4\59\35\2\u12a4\u02ee\3\2\2\2\u12a5\u12a6\5!\21\2"+ + "\u12a6\u12a7\5%\23\2\u12a7\u12a8\5\17\b\2\u12a8\u12a9\5\61\31\2\u12a9"+ + "\u12aa\5\37\20\2\u12aa\u12ab\5\21\t\2\u12ab\u02f0\3\2\2\2\u12ac\u12ad"+ + "\5!\21\2\u12ad\u12ae\5%\23\2\u12ae\u12af\5#\22\2\u12af\u12b0\5/\30\2\u12b0"+ + "\u12b1\5\27\f\2\u12b1\u02f2\3\2\2\2\u12b2\u12b3\5!\21\2\u12b3\u12b4\5"+ + "%\23\2\u12b4\u12b5\5+\26\2\u12b5\u12b6\5\21\t\2\u12b6\u02f4\3\2\2\2\u12b7"+ + "\u12b8\5!\21\2\u12b8\u12b9\5%\23\2\u12b9\u12ba\5\63\32\2\u12ba\u12bb\5"+ + "\21\t\2\u12bb\u02f6\3\2\2\2\u12bc\u12bd\5!\21\2\u12bd\u12be\5\61\31\2"+ + "\u12be\u12bf\5\37\20\2\u12bf\u12c0\5/\30\2\u12c0\u12c1\5\31\r\2\u12c1"+ + "\u12c2\5-\27\2\u12c2\u12c3\5\21\t\2\u12c3\u12c4\5/\30\2\u12c4\u02f8\3"+ + "\2\2\2\u12c5\u12c6\5!\21\2\u12c6\u12c7\5\61\31\2\u12c7\u12c8\5!\21\2\u12c8"+ + "\u12c9\5\'\24\2\u12c9\u12ca\5-\27\2\u12ca\u02fa\3\2\2\2\u12cb\u12cc\5"+ + "#\22\2\u12cc\u12cd\5\t\5\2\u12cd\u12ce\5!\21\2\u12ce\u12cf\5\21\t\2\u12cf"+ + "\u02fc\3\2\2\2\u12d0\u12d1\5#\22\2\u12d1\u12d2\5\t\5\2\u12d2\u12d3\5!"+ + "\21\2\u12d3\u12d4\5\21\t\2\u12d4\u12d5\5-\27\2\u12d5\u02fe\3\2\2\2\u12d6"+ + "\u12d7\5#\22\2\u12d7\u12d8\5\t\5\2\u12d8\u12d9\5/\30\2\u12d9\u12da\5\31"+ + "\r\2\u12da\u12db\5%\23\2\u12db\u12dc\5#\22\2\u12dc\u12dd\5\t\5\2\u12dd"+ + "\u12de\5\37\20\2\u12de\u0300\3\2\2\2\u12df\u12e0\5#\22\2\u12e0\u12e1\5"+ + "\t\5\2\u12e1\u12e2\5/\30\2\u12e2\u12e3\5\61\31\2\u12e3\u12e4\5+\26\2\u12e4"+ + "\u12e5\5\t\5\2\u12e5\u12e6\5\37\20\2\u12e6\u0302\3\2\2\2\u12e7\u12e8\5"+ + "#\22\2\u12e8\u12e9\5\r\7\2\u12e9\u12ea\5\27\f\2\u12ea\u12eb\5\t\5\2\u12eb"+ + "\u12ec\5+\26\2\u12ec\u0304\3\2\2\2\u12ed\u12ee\5#\22\2\u12ee\u12ef\5\r"+ + "\7\2\u12ef\u12f0\5\37\20\2\u12f0\u12f1\5%\23\2\u12f1\u12f2\5\13\6\2\u12f2"+ + "\u0306\3\2\2\2\u12f3\u12f4\5#\22\2\u12f4\u12f5\5\21\t\2\u12f5\u12f6\5"+ + "-\27\2\u12f6\u12f7\5/\30\2\u12f7\u12f8\5\31\r\2\u12f8\u12f9\5#\22\2\u12f9"+ + "\u12fa\5\25\13\2\u12fa\u0308\3\2\2\2\u12fb\u12fc\5#\22\2\u12fc\u12fd\5"+ + "\21\t\2\u12fd\u12fe\5\65\33\2\u12fe\u030a\3\2\2\2\u12ff\u1300\5#\22\2"+ + "\u1300\u1301\5\21\t\2\u1301\u1302\5\67\34\2\u1302\u1303\5/\30\2\u1303"+ + "\u030c\3\2\2\2\u1304\u1305\5#\22\2\u1305\u1306\5%\23\2\u1306\u030e\3\2"+ + "\2\2\u1307\u1308\5#\22\2\u1308\u1309\5%\23\2\u1309\u130a\5\r\7\2\u130a"+ + "\u130b\5+\26\2\u130b\u130c\5\21\t\2\u130c\u130d\5\t\5\2\u130d\u130e\5"+ + "/\30\2\u130e\u130f\5\21\t\2\u130f\u1310\5\17\b\2\u1310\u1311\5\13\6\2"+ + "\u1311\u0310\3\2\2\2\u1312\u1313\5#\22\2\u1313\u1314\5%\23\2\u1314\u1315"+ + "\5\r\7\2\u1315\u1316\5+\26\2\u1316\u1317\5\21\t\2\u1317\u1318\5\t\5\2"+ + "\u1318\u1319\5/\30\2\u1319\u131a\5\21\t\2\u131a\u131b\5\61\31\2\u131b"+ + "\u131c\5-\27\2\u131c\u131d\5\21\t\2\u131d\u131e\5+\26\2\u131e\u0312\3"+ + "\2\2\2\u131f\u1320\5#\22\2\u1320\u1321\5%\23\2\u1321\u1322\5#\22\2\u1322"+ + "\u1323\5\21\t\2\u1323\u0314\3\2\2\2\u1324\u1325\5#\22\2\u1325\u1326\5"+ + "%\23\2\u1326\u1327\5+\26\2\u1327\u1328\5!\21\2\u1328\u1329\5\t\5\2\u1329"+ + "\u132a\5\37\20\2\u132a\u132b\5\31\r\2\u132b\u132c\5;\36\2\u132c\u132d"+ + "\5\21\t\2\u132d\u0316\3\2\2\2\u132e\u132f\5#\22\2\u132f\u1330\5%\23\2"+ + "\u1330\u1331\5+\26\2\u1331\u1332\5!\21\2\u1332\u1333\5\t\5\2\u1333\u1334"+ + "\5\37\20\2\u1334\u1335\5\31\r\2\u1335\u1336\5;\36\2\u1336\u1337\5\21\t"+ + "\2\u1337\u1338\5\17\b\2\u1338\u0318\3\2\2\2\u1339\u133a\5#\22\2\u133a"+ + "\u133b\5%\23\2\u133b\u133c\5/\30\2\u133c\u031a\3\2\2\2\u133d\u133e\5#"+ + "\22\2\u133e\u133f\5%\23\2\u133f\u1340\5/\30\2\u1340\u1341\5\27\f\2\u1341"+ + "\u1342\5\31\r\2\u1342\u1343\5#\22\2\u1343\u1344\5\25\13\2\u1344\u031c"+ + "\3\2\2\2\u1345\u1346\5#\22\2\u1346\u1347\5%\23\2\u1347\u1348\5/\30\2\u1348"+ + "\u1349\5\31\r\2\u1349\u134a\5\23\n\2\u134a\u134b\59\35\2\u134b\u031e\3"+ + "\2\2\2\u134c\u134d\5#\22\2\u134d\u134e\5%\23\2\u134e\u134f\5/\30\2\u134f"+ + "\u1350\5#\22\2\u1350\u1351\5\61\31\2\u1351\u1352\5\37\20\2\u1352\u1353"+ + "\5\37\20\2\u1353\u0320\3\2\2\2\u1354\u1355\5#\22\2\u1355\u1356\5%\23\2"+ + "\u1356\u1357\5\65\33\2\u1357\u1358\5\t\5\2\u1358\u1359\5\31\r\2\u1359"+ + "\u135a\5/\30\2\u135a\u0322\3\2\2\2\u135b\u135c\5#\22\2\u135c\u135d\5\61"+ + "\31\2\u135d\u135e\5\37\20\2\u135e\u135f\5\37\20\2\u135f\u0324\3\2\2\2"+ + "\u1360\u1361\5#\22\2\u1361\u1362\5\61\31\2\u1362\u1363\5\37\20\2\u1363"+ + "\u1364\5\37\20\2\u1364\u1365\5\t\5\2\u1365\u1366\5\13\6\2\u1366\u1367"+ + "\5\37\20\2\u1367\u1368\5\21\t\2\u1368\u0326\3\2\2\2\u1369\u136a\5#\22"+ + "\2\u136a\u136b\5\61\31\2\u136b\u136c\5\37\20\2\u136c\u136d\5\37\20\2\u136d"+ + "\u136e\5\31\r\2\u136e\u136f\5\23\n\2\u136f\u0328\3\2\2\2\u1370\u1371\5"+ + "#\22\2\u1371\u1372\5\61\31\2\u1372\u1373\5\37\20\2\u1373\u1374\5\37\20"+ + "\2\u1374\u1375\5-\27\2\u1375\u032a\3\2\2\2\u1376\u1377\5#\22\2\u1377\u1378"+ + "\5\61\31\2\u1378\u1379\5!\21\2\u1379\u137a\5\13\6\2\u137a\u137b\5\21\t"+ + "\2\u137b\u137c\5+\26\2\u137c\u032c\3\2\2\2\u137d\u137e\5#\22\2\u137e\u137f"+ + "\5\61\31\2\u137f\u1380\5!\21\2\u1380\u1381\5\21\t\2\u1381\u1382\5+\26"+ + "\2\u1382\u1383\5\31\r\2\u1383\u1384\5\r\7\2\u1384\u032e\3\2\2\2\u1385"+ + "\u1386\5%\23\2\u1386\u1387\5\13\6\2\u1387\u1388\5\33\16\2\u1388\u1389"+ + "\5\21\t\2\u1389\u138a\5\r\7\2\u138a\u138b\5/\30\2\u138b\u0330\3\2\2\2"+ + "\u138c\u138d\5%\23\2\u138d\u138e\5\r\7\2\u138e\u138f\5/\30\2\u138f\u1390"+ + "\5\21\t\2\u1390\u1391\5/\30\2\u1391\u1392\7a\2\2\u1392\u1393\5\37\20\2"+ + "\u1393\u1394\5\21\t\2\u1394\u1395\5#\22\2\u1395\u1396\5\25\13\2\u1396"+ + "\u1397\5/\30\2\u1397\u1398\5\27\f\2\u1398\u0332\3\2\2\2\u1399\u139a\5"+ + "%\23\2\u139a\u139b\5\r\7\2\u139b\u139c\5/\30\2\u139c\u139d\5\21\t\2\u139d"+ + "\u139e\5/\30\2\u139e\u139f\5-\27\2\u139f\u0334\3\2\2\2\u13a0\u13a1\5%"+ + "\23\2\u13a1\u13a2\5\23\n\2\u13a2\u0336\3\2\2\2\u13a3\u13a4\5%\23\2\u13a4"+ + "\u13a5\5\23\n\2\u13a5\u13a6\5\23\n\2\u13a6\u0338\3\2\2\2\u13a7\u13a8\5"+ + "%\23\2\u13a8\u13a9\5\23\n\2\u13a9\u13aa\5\23\n\2\u13aa\u13ab\5-\27\2\u13ab"+ + "\u13ac\5\21\t\2\u13ac\u13ad\5/\30\2\u13ad\u033a\3\2\2\2\u13ae\u13af\5"+ + "%\23\2\u13af\u13b0\5\31\r\2\u13b0\u13b1\5\17\b\2\u13b1\u13b2\5-\27\2\u13b2"+ + "\u033c\3\2\2\2\u13b3\u13b4\5%\23\2\u13b4\u13b5\5\37\20\2\u13b5\u13b6\5"+ + "\17\b\2\u13b6\u033e\3\2\2\2\u13b7\u13b8\5%\23\2\u13b8\u13b9\5#\22\2\u13b9"+ + "\u0340\3\2\2\2\u13ba\u13bb\5%\23\2\u13bb\u13bc\5#\22\2\u13bc\u13bd\5\37"+ + "\20\2\u13bd\u13be\59\35\2\u13be\u0342\3\2\2\2\u13bf\u13c0\5%\23\2\u13c0"+ + "\u13c1\5\'\24\2\u13c1\u13c2\5\21\t\2\u13c2\u13c3\5#\22\2\u13c3\u0344\3"+ + "\2\2\2\u13c4\u13c5\5%\23\2\u13c5\u13c6\5\'\24\2\u13c6\u13c7\5\21\t\2\u13c7"+ + "\u13c8\5+\26\2\u13c8\u13c9\5\t\5\2\u13c9\u13ca\5/\30\2\u13ca\u13cb\5\31"+ + "\r\2\u13cb\u13cc\5%\23\2\u13cc\u13cd\5#\22\2\u13cd\u0346\3\2\2\2\u13ce"+ + "\u13cf\5%\23\2\u13cf\u13d0\5\'\24\2\u13d0\u13d1\5\21\t\2\u13d1\u13d2\5"+ + "+\26\2\u13d2\u13d3\5\t\5\2\u13d3\u13d4\5/\30\2\u13d4\u13d5\5%\23\2\u13d5"+ + "\u13d6\5+\26\2\u13d6\u0348\3\2\2\2\u13d7\u13d8\5%\23\2\u13d8\u13d9\5\'"+ + "\24\2\u13d9\u13da\5/\30\2\u13da\u13db\5\31\r\2\u13db\u13dc\5%\23\2\u13dc"+ + "\u13dd\5#\22\2\u13dd\u034a\3\2\2\2\u13de\u13df\5%\23\2\u13df\u13e0\5\'"+ + "\24\2\u13e0\u13e1\5/\30\2\u13e1\u13e2\5\31\r\2\u13e2\u13e3\5%\23\2\u13e3"+ + "\u13e4\5#\22\2\u13e4\u13e5\5-\27\2\u13e5\u034c\3\2\2\2\u13e6\u13e7\5%"+ + "\23\2\u13e7\u13e8\5+\26\2\u13e8\u034e\3\2\2\2\u13e9\u13ea\5%\23\2\u13ea"+ + "\u13eb\5+\26\2\u13eb\u13ec\5\17\b\2\u13ec\u13ed\5\21\t\2\u13ed\u13ee\5"+ + "+\26\2\u13ee\u0350\3\2\2\2\u13ef\u13f0\5%\23\2\u13f0\u13f1\5+\26\2\u13f1"+ + "\u13f2\5\17\b\2\u13f2\u13f3\5\21\t\2\u13f3\u13f4\5+\26\2\u13f4\u13f5\5"+ + "\31\r\2\u13f5\u13f6\5#\22\2\u13f6\u13f7\5\25\13\2\u13f7\u0352\3\2\2\2"+ + "\u13f8\u13f9\5%\23\2\u13f9\u13fa\5+\26\2\u13fa\u13fb\5\17\b\2\u13fb\u13fc"+ + "\5\31\r\2\u13fc\u13fd\5#\22\2\u13fd\u13fe\5\t\5\2\u13fe\u13ff\5\37\20"+ + "\2\u13ff\u1400\5\31\r\2\u1400\u1401\5/\30\2\u1401\u1402\59\35\2\u1402"+ + "\u0354\3\2\2\2\u1403\u1404\5%\23\2\u1404\u1405\5/\30\2\u1405\u1406\5\27"+ + "\f\2\u1406\u1407\5\21\t\2\u1407\u1408\5+\26\2\u1408\u1409\5-\27\2\u1409"+ + "\u0356\3\2\2\2\u140a\u140b\5%\23\2\u140b\u140c\5\61\31\2\u140c\u140d\5"+ + "/\30\2\u140d\u0358\3\2\2\2\u140e\u140f\5%\23\2\u140f\u1410\5\61\31\2\u1410"+ + "\u1411\5/\30\2\u1411\u1412\5\21\t\2\u1412\u1413\5+\26\2\u1413\u035a\3"+ + "\2\2\2\u1414\u1415\5%\23\2\u1415\u1416\5\61\31\2\u1416\u1417\5/\30\2\u1417"+ + "\u1418\5\'\24\2\u1418\u1419\5\61\31\2\u1419\u141a\5/\30\2\u141a\u035c"+ + "\3\2\2\2\u141b\u141c\5%\23\2\u141c\u141d\5\63\32\2\u141d\u141e\5\21\t"+ + "\2\u141e\u141f\5+\26\2\u141f\u035e\3\2\2\2\u1420\u1421\5%\23\2\u1421\u1422"+ + "\5\63\32\2\u1422\u1423\5\21\t\2\u1423\u1424\5+\26\2\u1424\u1425\5\37\20"+ + "\2\u1425\u1426\5\t\5\2\u1426\u1427\5\'\24\2\u1427\u1428\5-\27\2\u1428"+ + "\u0360\3\2\2\2\u1429\u142a\5%\23\2\u142a\u142b\5\63\32\2\u142b\u142c\5"+ + "\21\t\2\u142c\u142d\5+\26\2\u142d\u142e\5\37\20\2\u142e\u142f\5\t\5\2"+ + "\u142f\u1430\59\35\2\u1430\u0362\3\2\2\2\u1431\u1432\5%\23\2\u1432\u1433"+ + "\5\63\32\2\u1433\u1434\5\21\t\2\u1434\u1435\5+\26\2\u1435\u1436\5+\26"+ + "\2\u1436\u1437\5\31\r\2\u1437\u1438\5\17\b\2\u1438\u1439\5\31\r\2\u1439"+ + "\u143a\5#\22\2\u143a\u143b\5\25\13\2\u143b\u0364\3\2\2\2\u143c\u143d\5"+ + "%\23\2\u143d\u143e\5\65\33\2\u143e\u143f\5#\22\2\u143f\u1440\5\21\t\2"+ + "\u1440\u1441\5+\26\2\u1441\u0366\3\2\2\2\u1442\u1443\5\'\24\2\u1443\u1444"+ + "\5\t\5\2\u1444\u1445\5\17\b\2\u1445\u0368\3\2\2\2\u1446\u1447\5\'\24\2"+ + "\u1447\u1448\5\t\5\2\u1448\u1449\5+\26\2\u1449\u144a\5\t\5\2\u144a\u144b"+ + "\5!\21\2\u144b\u144c\5\21\t\2\u144c\u144d\5/\30\2\u144d\u144e\5\21\t\2"+ + "\u144e\u144f\5+\26\2\u144f\u036a\3\2\2\2\u1450\u1451\5\'\24\2\u1451\u1452"+ + "\5\t\5\2\u1452\u1453\5+\26\2\u1453\u1454\5\t\5\2\u1454\u1455\5!\21\2\u1455"+ + "\u1456\5\21\t\2\u1456\u1457\5/\30\2\u1457\u1458\5\21\t\2\u1458\u1459\5"+ + "+\26\2\u1459\u145a\7a\2\2\u145a\u145b\5!\21\2\u145b\u145c\5%\23\2\u145c"+ + "\u145d\5\17\b\2\u145d\u145e\5\21\t\2\u145e\u036c\3\2\2\2\u145f\u1460\5"+ + "\'\24\2\u1460\u1461\5\t\5\2\u1461\u1462\5+\26\2\u1462\u1463\5\t\5\2\u1463"+ + "\u1464\5!\21\2\u1464\u1465\5\21\t\2\u1465\u1466\5/\30\2\u1466\u1467\5"+ + "\21\t\2\u1467\u1468\5+\26\2\u1468\u1469\7a\2\2\u1469\u146a\5#\22\2\u146a"+ + "\u146b\5\t\5\2\u146b\u146c\5!\21\2\u146c\u146d\5\21\t\2\u146d\u036e\3"+ + "\2\2\2\u146e\u146f\5\'\24\2\u146f\u1470\5\t\5\2\u1470\u1471\5+\26\2\u1471"+ + "\u1472\5\t\5\2\u1472\u1473\5!\21\2\u1473\u1474\5\21\t\2\u1474\u1475\5"+ + "/\30\2\u1475\u1476\5\21\t\2\u1476\u1477\5+\26\2\u1477\u1478\7a\2\2\u1478"+ + "\u1479\5%\23\2\u1479\u147a\5+\26\2\u147a\u147b\5\17\b\2\u147b\u147c\5"+ + "\31\r\2\u147c\u147d\5#\22\2\u147d\u147e\5\t\5\2\u147e\u147f\5\37\20\2"+ + "\u147f\u1480\7a\2\2\u1480\u1481\5\'\24\2\u1481\u1482\5%\23\2\u1482\u1483"+ + "\5-\27\2\u1483\u1484\5\31\r\2\u1484\u1485\5/\30\2\u1485\u1486\5\31\r\2"+ + "\u1486\u1487\5%\23\2\u1487\u1488\5#\22\2\u1488\u0370\3\2\2\2\u1489\u148a"+ + "\5\'\24\2\u148a\u148b\5\t\5\2\u148b\u148c\5+\26\2\u148c\u148d\5\t\5\2"+ + "\u148d\u148e\5!\21\2\u148e\u148f\5\21\t\2\u148f\u1490\5/\30\2\u1490\u1491"+ + "\5\21\t\2\u1491\u1492\5+\26\2\u1492\u1493\7a\2\2\u1493\u1494\5-\27\2\u1494"+ + "\u1495\5\'\24\2\u1495\u1496\5\21\t\2\u1496\u1497\5\r\7\2\u1497\u1498\5"+ + "\31\r\2\u1498\u1499\5\23\n\2\u1499\u149a\5\31\r\2\u149a\u149b\5\r\7\2"+ + "\u149b\u149c\7a\2\2\u149c\u149d\5\r\7\2\u149d\u149e\5\t\5\2\u149e\u149f"+ + "\5/\30\2\u149f\u14a0\5\t\5\2\u14a0\u14a1\5\37\20\2\u14a1\u14a2\5%\23\2"+ + "\u14a2\u14a3\5\25\13\2\u14a3\u0372\3\2\2\2\u14a4\u14a5\5\'\24\2\u14a5"+ + "\u14a6\5\t\5\2\u14a6\u14a7\5+\26\2\u14a7\u14a8\5\t\5\2\u14a8\u14a9\5!"+ + "\21\2\u14a9\u14aa\5\21\t\2\u14aa\u14ab\5/\30\2\u14ab\u14ac\5\21\t\2\u14ac"+ + "\u14ad\5+\26\2\u14ad\u14ae\7a\2\2\u14ae\u14af\5-\27\2\u14af\u14b0\5\'"+ + "\24\2\u14b0\u14b1\5\21\t\2\u14b1\u14b2\5\r\7\2\u14b2\u14b3\5\31\r\2\u14b3"+ + "\u14b4\5\23\n\2\u14b4\u14b5\5\31\r\2\u14b5\u14b6\5\r\7\2\u14b6\u14b7\7"+ + "a\2\2\u14b7\u14b8\5#\22\2\u14b8\u14b9\5\t\5\2\u14b9\u14ba\5!\21\2\u14ba"+ + "\u14bb\5\21\t\2\u14bb\u0374\3\2\2\2\u14bc\u14bd\5\'\24\2\u14bd\u14be\5"+ + "\t\5\2\u14be\u14bf\5+\26\2\u14bf\u14c0\5\t\5\2\u14c0\u14c1\5!\21\2\u14c1"+ + "\u14c2\5\21\t\2\u14c2\u14c3\5/\30\2\u14c3\u14c4\5\21\t\2\u14c4\u14c5\5"+ + "+\26\2\u14c5\u14c6\7a\2\2\u14c6\u14c7\5-\27\2\u14c7\u14c8\5\'\24\2\u14c8"+ + "\u14c9\5\21\t\2\u14c9\u14ca\5\r\7\2\u14ca\u14cb\5\31\r\2\u14cb\u14cc\5"+ + "\23\n\2\u14cc\u14cd\5\31\r\2\u14cd\u14ce\5\r\7\2\u14ce\u14cf\7a\2\2\u14cf"+ + "\u14d0\5-\27\2\u14d0\u14d1\5\r\7\2\u14d1\u14d2\5\27\f\2\u14d2\u14d3\5"+ + "\21\t\2\u14d3\u14d4\5!\21\2\u14d4\u14d5\5\t\5\2\u14d5\u0376\3\2\2\2\u14d6"+ + "\u14d7\5\'\24\2\u14d7\u14d8\5\t\5\2\u14d8\u14d9\5+\26\2\u14d9\u14da\5"+ + "\t\5\2\u14da\u14db\5!\21\2\u14db\u14dc\5\21\t\2\u14dc\u14dd\5/\30\2\u14dd"+ + "\u14de\5\21\t\2\u14de\u14df\5+\26\2\u14df\u14e0\5-\27\2\u14e0\u0378\3"+ + "\2\2\2\u14e1\u14e2\5\'\24\2\u14e2\u14e3\5\t\5\2\u14e3\u14e4\5+\26\2\u14e4"+ + "\u14e5\5-\27\2\u14e5\u14e6\5\21\t\2\u14e6\u14e7\5+\26\2\u14e7\u037a\3"+ + "\2\2\2\u14e8\u14e9\5\'\24\2\u14e9\u14ea\5\t\5\2\u14ea\u14eb\5+\26\2\u14eb"+ + "\u14ec\5/\30\2\u14ec\u14ed\5\31\r\2\u14ed\u14ee\5\t\5\2\u14ee\u14ef\5"+ + "\37\20\2\u14ef\u037c\3\2\2\2\u14f0\u14f1\5\'\24\2\u14f1\u14f2\5\t\5\2"+ + "\u14f2\u14f3\5+\26\2\u14f3\u14f4\5/\30\2\u14f4\u14f5\5\31\r\2\u14f5\u14f6"+ + "\5/\30\2\u14f6\u14f7\5\31\r\2\u14f7\u14f8\5%\23\2\u14f8\u14f9\5#\22\2"+ + "\u14f9\u037e\3\2\2\2\u14fa\u14fb\5\'\24\2\u14fb\u14fc\5\t\5\2\u14fc\u14fd"+ + "\5-\27\2\u14fd\u14fe\5\r\7\2\u14fe\u14ff\5\t\5\2\u14ff\u1500\5\37\20\2"+ + "\u1500\u0380\3\2\2\2\u1501\u1502\5\'\24\2\u1502\u1503\5\t\5\2\u1503\u1504"+ + "\5-\27\2\u1504\u1505\5-\27\2\u1505\u1506\5\65\33\2\u1506\u1507\5%\23\2"+ + "\u1507\u1508\5+\26\2\u1508\u1509\5\17\b\2\u1509\u0382\3\2\2\2\u150a\u150b"+ + "\5\'\24\2\u150b\u150c\5\t\5\2\u150c\u150d\5/\30\2\u150d\u150e\5\27\f\2"+ + "\u150e\u0384\3\2\2\2\u150f\u1510\5\'\24\2\u1510\u1511\5\21\t\2\u1511\u1512"+ + "\5+\26\2\u1512\u1513\5\r\7\2\u1513\u1514\5\21\t\2\u1514\u1515\5#\22\2"+ + "\u1515\u1516\5/\30\2\u1516\u1517\7a\2\2\u1517\u1518\5+\26\2\u1518\u1519"+ + "\5\t\5\2\u1519\u151a\5#\22\2\u151a\u151b\5\35\17\2\u151b\u0386\3\2\2\2"+ + "\u151c\u151d\5\'\24\2\u151d\u151e\5\21\t\2\u151e\u151f\5+\26\2\u151f\u1520"+ + "\5\r\7\2\u1520\u1521\5\21\t\2\u1521\u1522\5#\22\2\u1522\u1523\5/\30\2"+ + "\u1523\u1524\5\31\r\2\u1524\u1525\5\37\20\2\u1525\u1526\5\21\t\2\u1526"+ + "\u1527\7a\2\2\u1527\u1528\5\r\7\2\u1528\u1529\5%\23\2\u1529\u152a\5#\22"+ + "\2\u152a\u152b\5/\30\2\u152b\u0388\3\2\2\2\u152c\u152d\5\'\24\2\u152d"+ + "\u152e\5\21\t\2\u152e\u152f\5+\26\2\u152f\u1530\5\r\7\2\u1530\u1531\5"+ + "\21\t\2\u1531\u1532\5#\22\2\u1532\u1533\5/\30\2\u1533\u1534\5\31\r\2\u1534"+ + "\u1535\5\37\20\2\u1535\u1536\5\21\t\2\u1536\u1537\7a\2\2\u1537\u1538\5"+ + "\17\b\2\u1538\u1539\5\31\r\2\u1539\u153a\5-\27\2\u153a\u153b\5\r\7\2\u153b"+ + "\u038a\3\2\2\2\u153c\u153d\5\'\24\2\u153d\u153e\5\37\20\2\u153e\u153f"+ + "\5\t\5\2\u153f\u1540\5\r\7\2\u1540\u1541\5\31\r\2\u1541\u1542\5#\22\2"+ + "\u1542\u1543\5\25\13\2\u1543\u038c\3\2\2\2\u1544\u1545\5\'\24\2\u1545"+ + "\u1546\5\37\20\2\u1546\u1547\5\t\5\2\u1547\u1548\5\31\r\2\u1548\u1549"+ + "\5#\22\2\u1549\u038e\3\2\2\2\u154a\u154b\5\'\24\2\u154b\u154c\5\37\20"+ + "\2\u154c\u154d\5\t\5\2\u154d\u154e\5#\22\2\u154e\u154f\5-\27\2\u154f\u0390"+ + "\3\2\2\2\u1550\u1551\5\'\24\2\u1551\u1552\5\37\20\2\u1552\u1553\5\31\r"+ + "\2\u1553\u0392\3\2\2\2\u1554\u1555\5\'\24\2\u1555\u1556\5%\23\2\u1556"+ + "\u1557\5-\27\2\u1557\u1558\5\31\r\2\u1558\u1559\5/\30\2\u1559\u155a\5"+ + "\31\r\2\u155a\u155b\5%\23\2\u155b\u155c\5#\22\2\u155c\u0394\3\2\2\2\u155d"+ + "\u155e\5\'\24\2\u155e\u155f\5%\23\2\u155f\u1560\5-\27\2\u1560\u1561\5"+ + "/\30\2\u1561\u1562\5\23\n\2\u1562\u1563\5\31\r\2\u1563\u1564\5\67\34\2"+ + "\u1564\u0396\3\2\2\2\u1565\u1566\5\'\24\2\u1566\u1567\5%\23\2\u1567\u1568"+ + "\5\65\33\2\u1568\u1569\5\21\t\2\u1569\u156a\5+\26\2\u156a\u0398\3\2\2"+ + "\2\u156b\u156c\5\'\24\2\u156c\u156d\5+\26\2\u156d\u156e\5\21\t\2\u156e"+ + "\u156f\5\r\7\2\u156f\u1570\5\21\t\2\u1570\u1571\5\17\b\2\u1571\u1572\5"+ + "\31\r\2\u1572\u1573\5#\22\2\u1573\u1574\5\25\13\2\u1574\u039a\3\2\2\2"+ + "\u1575\u1576\5\'\24\2\u1576\u1577\5+\26\2\u1577\u1578\5\21\t\2\u1578\u1579"+ + "\5\r\7\2\u1579\u157a\5\31\r\2\u157a\u157b\5-\27\2\u157b\u157c\5\31\r\2"+ + "\u157c\u157d\5%\23\2\u157d\u157e\5#\22\2\u157e\u039c\3\2\2\2\u157f\u1580"+ + "\5\'\24\2\u1580\u1581\5+\26\2\u1581\u1582\5\21\t\2\u1582\u1583\5\23\n"+ + "\2\u1583\u1584\5\31\r\2\u1584\u1585\5\67\34\2\u1585\u039e\3\2\2\2\u1586"+ + "\u1587\5\'\24\2\u1587\u1588\5+\26\2\u1588\u1589\5\21\t\2\u1589\u158a\5"+ + "%\23\2\u158a\u158b\5+\26\2\u158b\u158c\5\17\b\2\u158c\u158d\5\21\t\2\u158d"+ + "\u158e\5+\26\2\u158e\u03a0\3\2\2\2\u158f\u1590\5\'\24\2\u1590\u1591\5"+ + "+\26\2\u1591\u1592\5\21\t\2\u1592\u1593\5\'\24\2\u1593\u1594\5\t\5\2\u1594"+ + "\u1595\5+\26\2\u1595\u1596\5\21\t\2\u1596\u03a2\3\2\2\2\u1597\u1598\5"+ + "\'\24\2\u1598\u1599\5+\26\2\u1599\u159a\5\21\t\2\u159a\u159b\5\'\24\2"+ + "\u159b\u159c\5\t\5\2\u159c\u159d\5+\26\2\u159d\u159e\5\21\t\2\u159e\u159f"+ + "\5\17\b\2\u159f\u03a4\3\2\2\2\u15a0\u15a1\5\'\24\2\u15a1\u15a2\5+\26\2"+ + "\u15a2\u15a3\5\21\t\2\u15a3\u15a4\5-\27\2\u15a4\u15a5\5\21\t\2\u15a5\u15a6"+ + "\5+\26\2\u15a6\u15a7\5\63\32\2\u15a7\u15a8\5\21\t\2\u15a8\u03a6\3\2\2"+ + "\2\u15a9\u15aa\5\'\24\2\u15aa\u15ab\5+\26\2\u15ab\u15ac\5\31\r\2\u15ac"+ + "\u15ad\5!\21\2\u15ad\u15ae\5\t\5\2\u15ae\u15af\5+\26\2\u15af\u15b0\59"+ + "\35\2\u15b0\u03a8\3\2\2\2\u15b1\u15b2\5\'\24\2\u15b2\u15b3\5+\26\2\u15b3"+ + "\u15b4\5\31\r\2\u15b4\u15b5\5%\23\2\u15b5\u15b6\5+\26\2\u15b6\u03aa\3"+ + "\2\2\2\u15b7\u15b8\5\'\24\2\u15b8\u15b9\5+\26\2\u15b9\u15ba\5\31\r\2\u15ba"+ + "\u15bb\5\63\32\2\u15bb\u15bc\5\31\r\2\u15bc\u15bd\5\37\20\2\u15bd\u15be"+ + "\5\21\t\2\u15be\u15bf\5\25\13\2\u15bf\u15c0\5\21\t\2\u15c0\u15c1\5-\27"+ + "\2\u15c1\u03ac\3\2\2\2\u15c2\u15c3\5\'\24\2\u15c3\u15c4\5+\26\2\u15c4"+ + "\u15c5\5%\23\2\u15c5\u15c6\5\r\7\2\u15c6\u15c7\5\21\t\2\u15c7\u15c8\5"+ + "\17\b\2\u15c8\u15c9\5\61\31\2\u15c9\u15ca\5+\26\2\u15ca\u15cb\5\t\5\2"+ + "\u15cb\u15cc\5\37\20\2\u15cc\u03ae\3\2\2\2\u15cd\u15ce\5\'\24\2\u15ce"+ + "\u15cf\5+\26\2\u15cf\u15d0\5%\23\2\u15d0\u15d1\5\r\7\2\u15d1\u15d2\5\21"+ + "\t\2\u15d2\u15d3\5\17\b\2\u15d3\u15d4\5\61\31\2\u15d4\u15d5\5+\26\2\u15d5"+ + "\u15d6\5\21\t\2\u15d6\u03b0\3\2\2\2\u15d7\u15d8\5\'\24\2\u15d8\u15d9\5"+ + "\61\31\2\u15d9\u15da\5\13\6\2\u15da\u15db\5\37\20\2\u15db\u15dc\5\31\r"+ + "\2\u15dc\u15dd\5\r\7\2\u15dd\u03b2\3\2\2\2\u15de\u15df\5\'\24\2\u15df"+ + "\u15e0\5\61\31\2\u15e0\u15e1\5\13\6\2\u15e1\u15e2\5\37\20\2\u15e2\u15e3"+ + "\5\31\r\2\u15e3\u15e4\5\r\7\2\u15e4\u15e5\5\t\5\2\u15e5\u15e6\5/\30\2"+ + "\u15e6\u15e7\5\31\r\2\u15e7\u15e8\5%\23\2\u15e8\u15e9\5#\22\2\u15e9\u03b4"+ + "\3\2\2\2\u15ea\u15eb\5)\25\2\u15eb\u15ec\5\61\31\2\u15ec\u15ed\5%\23\2"+ + "\u15ed\u15ee\5/\30\2\u15ee\u15ef\5\21\t\2\u15ef\u03b6\3\2\2\2\u15f0\u15f1"+ + "\5+\26\2\u15f1\u15f2\5\t\5\2\u15f2\u15f3\5#\22\2\u15f3\u15f4\5\25\13\2"+ + "\u15f4\u15f5\5\21\t\2\u15f5\u03b8\3\2\2\2\u15f6\u15f7\5+\26\2\u15f7\u15f8"+ + "\5\t\5\2\u15f8\u15f9\5#\22\2\u15f9\u15fa\5\35\17\2\u15fa\u03ba\3\2\2\2"+ + "\u15fb\u15fc\5+\26\2\u15fc\u15fd\5\21\t\2\u15fd\u15fe\5\t\5\2\u15fe\u15ff"+ + "\5\17\b\2\u15ff\u03bc\3\2\2\2\u1600\u1601\5+\26\2\u1601\u1602\5\21\t\2"+ + "\u1602\u1603\5\t\5\2\u1603\u1604\5\17\b\2\u1604\u1605\5-\27\2\u1605\u03be"+ + "\3\2\2\2\u1606\u1607\5+\26\2\u1607\u1608\5\21\t\2\u1608\u1609\5\t\5\2"+ + "\u1609\u160a\5\37\20\2\u160a\u03c0\3\2\2\2\u160b\u160c\5+\26\2\u160c\u160d"+ + "\5\21\t\2\u160d\u160e\5\t\5\2\u160e\u160f\5-\27\2\u160f\u1610\5-\27\2"+ + "\u1610\u1611\5\31\r\2\u1611\u1612\5\25\13\2\u1612\u1613\5#\22\2\u1613"+ + "\u03c2\3\2\2\2\u1614\u1615\5+\26\2\u1615\u1616\5\21\t\2\u1616\u1617\5"+ + "\r\7\2\u1617\u1618\5\27\f\2\u1618\u1619\5\21\t\2\u1619\u161a\5\r\7\2\u161a"+ + "\u161b\5\35\17\2\u161b\u03c4\3\2\2\2\u161c\u161d\5+\26\2\u161d\u161e\5"+ + "\21\t\2\u161e\u161f\5\r\7\2\u161f\u1620\5\61\31\2\u1620\u1621\5+\26\2"+ + "\u1621\u1622\5-\27\2\u1622\u1623\5\31\r\2\u1623\u1624\5\63\32\2\u1624"+ + "\u1625\5\21\t\2\u1625\u03c6\3\2\2\2\u1626\u1627\5+\26\2\u1627\u1628\5"+ + "\21\t\2\u1628\u1629\5\23\n\2\u1629\u03c8\3\2\2\2\u162a\u162b\5+\26\2\u162b"+ + "\u162c\5\21\t\2\u162c\u162d\5\23\n\2\u162d\u162e\5\21\t\2\u162e\u162f"+ + "\5+\26\2\u162f\u1630\5\21\t\2\u1630\u1631\5#\22\2\u1631\u1632\5\r\7\2"+ + "\u1632\u1633\5\21\t\2\u1633\u1634\5-\27\2\u1634\u03ca\3\2\2\2\u1635\u1636"+ + "\5+\26\2\u1636\u1637\5\21\t\2\u1637\u1638\5\23\n\2\u1638\u1639\5\21\t"+ + "\2\u1639\u163a\5+\26\2\u163a\u163b\5\21\t\2\u163b\u163c\5#\22\2\u163c"+ + "\u163d\5\r\7\2\u163d\u163e\5\31\r\2\u163e\u163f\5#\22\2\u163f\u1640\5"+ + "\25\13\2\u1640\u03cc\3\2\2\2\u1641\u1642\5+\26\2\u1642\u1643\5\21\t\2"+ + "\u1643\u1644\5\23\n\2\u1644\u1645\5+\26\2\u1645\u1646\5\21\t\2\u1646\u1647"+ + "\5-\27\2\u1647\u1648\5\27\f\2\u1648\u03ce\3\2\2\2\u1649\u164a\5+\26\2"+ + "\u164a\u164b\5\21\t\2\u164b\u164c\5\25\13\2\u164c\u164d\5+\26\2\u164d"+ + "\u164e\7a\2\2\u164e\u164f\5\t\5\2\u164f\u1650\5\63\32\2\u1650\u1651\5"+ + "\25\13\2\u1651\u1652\5\67\34\2\u1652\u03d0\3\2\2\2\u1653\u1654\5+\26\2"+ + "\u1654\u1655\5\21\t\2\u1655\u1656\5\25\13\2\u1656\u1657\5+\26\2\u1657"+ + "\u1658\7a\2\2\u1658\u1659\5\t\5\2\u1659\u165a\5\63\32\2\u165a\u165b\5"+ + "\25\13\2\u165b\u165c\59\35\2\u165c\u03d2\3\2\2\2\u165d\u165e\5+\26\2\u165e"+ + "\u165f\5\21\t\2\u165f\u1660\5\25\13\2\u1660\u1661\5+\26\2\u1661\u1662"+ + "\7a\2\2\u1662\u1663\5\r\7\2\u1663\u1664\5%\23\2\u1664\u1665\5\61\31\2"+ + "\u1665\u1666\5#\22\2\u1666\u1667\5/\30\2\u1667\u03d4\3\2\2\2\u1668\u1669"+ + "\5+\26\2\u1669\u166a\5\21\t\2\u166a\u166b\5\25\13\2\u166b\u166c\5+\26"+ + "\2\u166c\u166d\7a\2\2\u166d\u166e\5\31\r\2\u166e\u166f\5#\22\2\u166f\u1670"+ + "\5/\30\2\u1670\u1671\5\21\t\2\u1671\u1672\5+\26\2\u1672\u1673\5\r\7\2"+ + "\u1673\u1674\5\21\t\2\u1674\u1675\5\'\24\2\u1675\u1676\5/\30\2\u1676\u03d6"+ + "\3\2\2\2\u1677\u1678\5+\26\2\u1678\u1679\5\21\t\2\u1679\u167a\5\25\13"+ + "\2\u167a\u167b\5+\26\2\u167b\u167c\7a\2\2\u167c\u167d\5+\26\2\u167d\u167e"+ + "\7\64\2\2\u167e\u03d8\3\2\2\2\u167f\u1680\5+\26\2\u1680\u1681\5\21\t\2"+ + "\u1681\u1682\5\25\13\2\u1682\u1683\5+\26\2\u1683\u1684\7a\2\2\u1684\u1685"+ + "\5-\27\2\u1685\u1686\5\37\20\2\u1686\u1687\5%\23\2\u1687\u1688\5\'\24"+ + "\2\u1688\u1689\5\21\t\2\u1689\u03da\3\2\2\2\u168a\u168b\5+\26\2\u168b"+ + "\u168c\5\21\t\2\u168c\u168d\5\25\13\2\u168d\u168e\5+\26\2\u168e\u168f"+ + "\7a\2\2\u168f\u1690\5-\27\2\u1690\u1691\5\67\34\2\u1691\u1692\5\67\34"+ + "\2\u1692\u03dc\3\2\2\2\u1693\u1694\5+\26\2\u1694\u1695\5\21\t\2\u1695"+ + "\u1696\5\25\13\2\u1696\u1697\5+\26\2\u1697\u1698\7a\2\2\u1698\u1699\5"+ + "-\27\2\u1699\u169a\5\67\34\2\u169a\u169b\59\35\2\u169b\u03de\3\2\2\2\u169c"+ + "\u169d\5+\26\2\u169d\u169e\5\21\t\2\u169e\u169f\5\25\13\2\u169f\u16a0"+ + "\5+\26\2\u16a0\u16a1\7a\2\2\u16a1\u16a2\5-\27\2\u16a2\u16a3\59\35\2\u16a3"+ + "\u16a4\59\35\2\u16a4\u03e0\3\2\2\2\u16a5\u16a6\5+\26\2\u16a6\u16a7\5\21"+ + "\t\2\u16a7\u16a8\5\31\r\2\u16a8\u16a9\5#\22\2\u16a9\u16aa\5\17\b\2\u16aa"+ + "\u16ab\5\21\t\2\u16ab\u16ac\5\67\34\2\u16ac\u03e2\3\2\2\2\u16ad\u16ae"+ + "\5+\26\2\u16ae\u16af\5\21\t\2\u16af\u16b0\5\37\20\2\u16b0\u16b1\5\t\5"+ + "\2\u16b1\u16b2\5/\30\2\u16b2\u16b3\5\31\r\2\u16b3\u16b4\5\63\32\2\u16b4"+ + "\u16b5\5\21\t\2\u16b5\u03e4\3\2\2\2\u16b6\u16b7\5+\26\2\u16b7\u16b8\5"+ + "\21\t\2\u16b8\u16b9\5\37\20\2\u16b9\u16ba\5\21\t\2\u16ba\u16bb\5\t\5\2"+ + "\u16bb\u16bc\5-\27\2\u16bc\u16bd\5\21\t\2\u16bd\u03e6\3\2\2\2\u16be\u16bf"+ + "\5+\26\2\u16bf\u16c0\5\21\t\2\u16c0\u16c1\5#\22\2\u16c1\u16c2\5\t\5\2"+ + "\u16c2\u16c3\5!\21\2\u16c3\u16c4\5\21\t\2\u16c4\u03e8\3\2\2\2\u16c5\u16c6"+ + "\5+\26\2\u16c6\u16c7\5\21\t\2\u16c7\u16c8\5\'\24\2\u16c8\u16c9\5\21\t"+ + "\2\u16c9\u16ca\5\t\5\2\u16ca\u16cb\5/\30\2\u16cb\u16cc\5\t\5\2\u16cc\u16cd"+ + "\5\13\6\2\u16cd\u16ce\5\37\20\2\u16ce\u16cf\5\21\t\2\u16cf\u03ea\3\2\2"+ + "\2\u16d0\u16d1\5+\26\2\u16d1\u16d2\5\21\t\2\u16d2\u16d3\5\'\24\2\u16d3"+ + "\u16d4\5\37\20\2\u16d4\u16d5\5\t\5\2\u16d5\u16d6\5\r\7\2\u16d6\u16d7\5"+ + "\21\t\2\u16d7\u03ec\3\2\2\2\u16d8\u16d9\5+\26\2\u16d9\u16da\5\21\t\2\u16da"+ + "\u16db\5\'\24\2\u16db\u16dc\5\37\20\2\u16dc\u16dd\5\31\r\2\u16dd\u16de"+ + "\5\r\7\2\u16de\u16df\5\t\5\2\u16df\u03ee\3\2\2\2\u16e0\u16e1\5+\26\2\u16e1"+ + "\u16e2\5\21\t\2\u16e2\u16e3\5-\27\2\u16e3\u16e4\5\21\t\2\u16e4\u16e5\5"+ + "/\30\2\u16e5\u03f0\3\2\2\2\u16e6\u16e7\5+\26\2\u16e7\u16e8\5\21\t\2\u16e8"+ + "\u16e9\5-\27\2\u16e9\u16ea\5/\30\2\u16ea\u16eb\5\t\5\2\u16eb\u16ec\5+"+ + "\26\2\u16ec\u16ed\5/\30\2\u16ed\u03f2\3\2\2\2\u16ee\u16ef\5+\26\2\u16ef"+ + "\u16f0\5\21\t\2\u16f0\u16f1\5-\27\2\u16f1\u16f2\5/\30\2\u16f2\u16f3\5"+ + "+\26\2\u16f3\u16f4\5\31\r\2\u16f4\u16f5\5\r\7\2\u16f5\u16f6\5/\30\2\u16f6"+ + "\u03f4\3\2\2\2\u16f7\u16f8\5+\26\2\u16f8\u16f9\5\21\t\2\u16f9\u16fa\5"+ + "-\27\2\u16fa\u16fb\5\61\31\2\u16fb\u16fc\5\37\20\2\u16fc\u16fd\5/\30\2"+ + "\u16fd\u03f6\3\2\2\2\u16fe\u16ff\5+\26\2\u16ff\u1700\5\21\t\2\u1700\u1701"+ + "\5/\30\2\u1701\u1702\5\61\31\2\u1702\u1703\5+\26\2\u1703\u1704\5#\22\2"+ + "\u1704\u03f8\3\2\2\2\u1705\u1706\5+\26\2\u1706\u1707\5\21\t\2\u1707\u1708"+ + "\5/\30\2\u1708\u1709\5\61\31\2\u1709\u170a\5+\26\2\u170a\u170b\5#\22\2"+ + "\u170b\u170c\5\21\t\2\u170c\u170d\5\17\b\2\u170d\u170e\7a\2\2\u170e\u170f"+ + "\5\r\7\2\u170f\u1710\5\t\5\2\u1710\u1711\5+\26\2\u1711\u1712\5\17\b\2"+ + "\u1712\u1713\5\31\r\2\u1713\u1714\5#\22\2\u1714\u1715\5\t\5\2\u1715\u1716"+ + "\5\37\20\2\u1716\u1717\5\31\r\2\u1717\u1718\5/\30\2\u1718\u1719\59\35"+ + "\2\u1719\u03fa\3\2\2\2\u171a\u171b\5+\26\2\u171b\u171c\5\21\t\2\u171c"+ + "\u171d\5/\30\2\u171d\u171e\5\61\31\2\u171e\u171f\5+\26\2\u171f\u1720\5"+ + "#\22\2\u1720\u1721\5\21\t\2\u1721\u1722\5\17\b\2\u1722\u1723\7a\2\2\u1723"+ + "\u1724\5\37\20\2\u1724\u1725\5\21\t\2\u1725\u1726\5#\22\2\u1726\u1727"+ + "\5\25\13\2\u1727\u1728\5/\30\2\u1728\u1729\5\27\f\2\u1729\u03fc\3\2\2"+ + "\2\u172a\u172b\5+\26\2\u172b\u172c\5\21\t\2\u172c\u172d\5/\30\2\u172d"+ + "\u172e\5\61\31\2\u172e\u172f\5+\26\2\u172f\u1730\5#\22\2\u1730\u1731\5"+ + "\21\t\2\u1731\u1732\5\17\b\2\u1732\u1733\7a\2\2\u1733\u1734\5%\23\2\u1734"+ + "\u1735\5\r\7\2\u1735\u1736\5/\30\2\u1736\u1737\5\21\t\2\u1737\u1738\5"+ + "/\30\2\u1738\u1739\7a\2\2\u1739\u173a\5\37\20\2\u173a\u173b\5\21\t\2\u173b"+ + "\u173c\5#\22\2\u173c\u173d\5\25\13\2\u173d\u173e\5/\30\2\u173e\u173f\5"+ + "\27\f\2\u173f\u03fe\3\2\2\2\u1740\u1741\5+\26\2\u1741\u1742\5\21\t\2\u1742"+ + "\u1743\5/\30\2\u1743\u1744\5\61\31\2\u1744\u1745\5+\26\2\u1745\u1746\5"+ + "#\22\2\u1746\u1747\5\21\t\2\u1747\u1748\5\17\b\2\u1748\u1749\7a\2\2\u1749"+ + "\u174a\5-\27\2\u174a\u174b\5)\25\2\u174b\u174c\5\37\20\2\u174c\u174d\5"+ + "-\27\2\u174d\u174e\5/\30\2\u174e\u174f\5\t\5\2\u174f\u1750\5/\30\2\u1750"+ + "\u1751\5\21\t\2\u1751\u0400\3\2\2\2\u1752\u1753\5+\26\2\u1753\u1754\5"+ + "\21\t\2\u1754\u1755\5/\30\2\u1755\u1756\5\61\31\2\u1756\u1757\5+\26\2"+ + "\u1757\u1758\5#\22\2\u1758\u1759\5\31\r\2\u1759\u175a\5#\22\2\u175a\u175b"+ + "\5\25\13\2\u175b\u0402\3\2\2\2\u175c\u175d\5+\26\2\u175d\u175e\5\21\t"+ + "\2\u175e\u175f\5/\30\2\u175f\u1760\5\61\31\2\u1760\u1761\5+\26\2\u1761"+ + "\u1762\5#\22\2\u1762\u1763\5-\27\2\u1763\u0404\3\2\2\2\u1764\u1765\5+"+ + "\26\2\u1765\u1766\5\21\t\2\u1766\u1767\5\63\32\2\u1767\u1768\5%\23\2\u1768"+ + "\u1769\5\35\17\2\u1769\u176a\5\21\t\2\u176a\u0406\3\2\2\2\u176b\u176c"+ + "\5+\26\2\u176c\u176d\5\31\r\2\u176d\u176e\5\25\13\2\u176e\u176f\5\27\f"+ + "\2\u176f\u1770\5/\30\2\u1770\u0408\3\2\2\2\u1771\u1772\5+\26\2\u1772\u1773"+ + "\5%\23\2\u1773\u1774\5\37\20\2\u1774\u1775\5\21\t\2\u1775\u040a\3\2\2"+ + "\2\u1776\u1777\5+\26\2\u1777\u1778\5%\23\2\u1778\u1779\5\37\20\2\u1779"+ + "\u177a\5\37\20\2\u177a\u177b\5\13\6\2\u177b\u177c\5\t\5\2\u177c\u177d"+ + "\5\r\7\2\u177d\u177e\5\35\17\2\u177e\u040c\3\2\2\2\u177f\u1780\5+\26\2"+ + "\u1780\u1781\5%\23\2\u1781\u1782\5\37\20\2\u1782\u1783\5\37\20\2\u1783"+ + "\u1784\5\61\31\2\u1784\u1785\5\'\24\2\u1785\u040e\3\2\2\2\u1786\u1787"+ + "\5+\26\2\u1787\u1788\5%\23\2\u1788\u1789\5\61\31\2\u1789\u178a\5/\30\2"+ + "\u178a\u178b\5\31\r\2\u178b\u178c\5#\22\2\u178c\u178d\5\21\t\2\u178d\u0410"+ + "\3\2\2\2\u178e\u178f\5+\26\2\u178f\u1790\5%\23\2\u1790\u1791\5\61\31\2"+ + "\u1791\u1792\5/\30\2\u1792\u1793\5\31\r\2\u1793\u1794\5#\22\2\u1794\u1795"+ + "\5\21\t\2\u1795\u1796\7a\2\2\u1796\u1797\5\r\7\2\u1797\u1798\5\t\5\2\u1798"+ + "\u1799\5/\30\2\u1799\u179a\5\t\5\2\u179a\u179b\5\37\20\2\u179b\u179c\5"+ + "%\23\2\u179c\u179d\5\25\13\2\u179d\u0412\3\2\2\2\u179e\u179f\5+\26\2\u179f"+ + "\u17a0\5%\23\2\u17a0\u17a1\5\61\31\2\u17a1\u17a2\5/\30\2\u17a2\u17a3\5"+ + "\31\r\2\u17a3\u17a4\5#\22\2\u17a4\u17a5\5\21\t\2\u17a5\u17a6\7a\2\2\u17a6"+ + "\u17a7\5#\22\2\u17a7\u17a8\5\t\5\2\u17a8\u17a9\5!\21\2\u17a9\u17aa\5\21"+ + "\t\2\u17aa\u0414\3\2\2\2\u17ab\u17ac\5+\26\2\u17ac\u17ad\5%\23\2\u17ad"+ + "\u17ae\5\61\31\2\u17ae\u17af\5/\30\2\u17af\u17b0\5\31\r\2\u17b0\u17b1"+ + "\5#\22\2\u17b1\u17b2\5\21\t\2\u17b2\u17b3\7a\2\2\u17b3\u17b4\5-\27\2\u17b4"+ + "\u17b5\5\r\7\2\u17b5\u17b6\5\27\f\2\u17b6\u17b7\5\21\t\2\u17b7\u17b8\5"+ + "!\21\2\u17b8\u17b9\5\t\5\2\u17b9\u0416\3\2\2\2\u17ba\u17bb\5+\26\2\u17bb"+ + "\u17bc\5%\23\2\u17bc\u17bd\5\65\33\2\u17bd\u0418\3\2\2\2\u17be\u17bf\5"+ + "+\26\2\u17bf\u17c0\5%\23\2\u17c0\u17c1\5\65\33\2\u17c1\u17c2\7a\2\2\u17c2"+ + "\u17c3\5\r\7\2\u17c3\u17c4\5%\23\2\u17c4\u17c5\5\61\31\2\u17c5\u17c6\5"+ + "#\22\2\u17c6\u17c7\5/\30\2\u17c7\u041a\3\2\2\2\u17c8\u17c9\5+\26\2\u17c9"+ + "\u17ca\5%\23\2\u17ca\u17cb\5\65\33\2\u17cb\u17cc\7a\2\2\u17cc\u17cd\5"+ + "#\22\2\u17cd\u17ce\5\61\31\2\u17ce\u17cf\5!\21\2\u17cf\u17d0\5\13\6\2"+ + "\u17d0\u17d1\5\21\t\2\u17d1\u17d2\5+\26\2\u17d2\u041c\3\2\2\2\u17d3\u17d4"+ + "\5+\26\2\u17d4\u17d5\5%\23\2\u17d5\u17d6\5\65\33\2\u17d6\u17d7\5-\27\2"+ + "\u17d7\u041e\3\2\2\2\u17d8\u17d9\5+\26\2\u17d9\u17da\5\61\31\2\u17da\u17db"+ + "\5\37\20\2\u17db\u17dc\5\21\t\2\u17dc\u0420\3\2\2\2\u17dd\u17de\5-\27"+ + "\2\u17de\u17df\5\t\5\2\u17df\u17e0\5\63\32\2\u17e0\u17e1\5\21\t\2\u17e1"+ + "\u17e2\5\'\24\2\u17e2\u17e3\5%\23\2\u17e3\u17e4\5\31\r\2\u17e4\u17e5\5"+ + "#\22\2\u17e5\u17e6\5/\30\2\u17e6\u0422\3\2\2\2\u17e7\u17e8\5-\27\2\u17e8"+ + "\u17e9\5\r\7\2\u17e9\u17ea\5\t\5\2\u17ea\u17eb\5\37\20\2\u17eb\u17ec\5"+ + "\21\t\2\u17ec\u0424\3\2\2\2\u17ed\u17ee\5-\27\2\u17ee\u17ef\5\r\7\2\u17ef"+ + "\u17f0\5\27\f\2\u17f0\u17f1\5\21\t\2\u17f1\u17f2\5!\21\2\u17f2\u17f3\5"+ + "\t\5\2\u17f3\u0426\3\2\2\2\u17f4\u17f5\5-\27\2\u17f5\u17f6\5\r\7\2\u17f6"+ + "\u17f7\5\27\f\2\u17f7\u17f8\5\21\t\2\u17f8\u17f9\5!\21\2\u17f9\u17fa\5"+ + "\t\5\2\u17fa\u17fb\7a\2\2\u17fb\u17fc\5#\22\2\u17fc\u17fd\5\t\5\2\u17fd"+ + "\u17fe\5!\21\2\u17fe\u17ff\5\21\t\2\u17ff\u0428\3\2\2\2\u1800\u1801\5"+ + "-\27\2\u1801\u1802\5\r\7\2\u1802\u1803\5%\23\2\u1803\u1804\5\'\24\2\u1804"+ + "\u1805\5\21\t\2\u1805\u042a\3\2\2\2\u1806\u1807\5-\27\2\u1807\u1808\5"+ + "\r\7\2\u1808\u1809\5%\23\2\u1809\u180a\5\'\24\2\u180a\u180b\5\21\t\2\u180b"+ + "\u180c\7a\2\2\u180c\u180d\5\r\7\2\u180d\u180e\5\t\5\2\u180e\u180f\5/\30"+ + "\2\u180f\u1810\5\t\5\2\u1810\u1811\5\37\20\2\u1811\u1812\5%\23\2\u1812"+ + "\u1813\5\25\13\2\u1813\u042c\3\2\2\2\u1814\u1815\5-\27\2\u1815\u1816\5"+ + "\r\7\2\u1816\u1817\5%\23\2\u1817\u1818\5\'\24\2\u1818\u1819\5\21\t\2\u1819"+ + "\u181a\7a\2\2\u181a\u181b\5#\22\2\u181b\u181c\5\t\5\2\u181c\u181d\5!\21"+ + "\2\u181d\u181e\5\21\t\2\u181e\u042e\3\2\2\2\u181f\u1820\5-\27\2\u1820"+ + "\u1821\5\r\7\2\u1821\u1822\5%\23\2\u1822\u1823\5\'\24\2\u1823\u1824\5"+ + "\21\t\2\u1824\u1825\7a\2\2\u1825\u1826\5-\27\2\u1826\u1827\5\r\7\2\u1827"+ + "\u1828\5\27\f\2\u1828\u1829\5\21\t\2\u1829\u182a\5!\21\2\u182a\u182b\5"+ + "\t\5\2\u182b\u0430\3\2\2\2\u182c\u182d\5-\27\2\u182d\u182e\5\r\7\2\u182e"+ + "\u182f\5+\26\2\u182f\u1830\5%\23\2\u1830\u1831\5\37\20\2\u1831\u1832\5"+ + "\37\20\2\u1832\u0432\3\2\2\2\u1833\u1834\5-\27\2\u1834\u1835\5\21\t\2"+ + "\u1835\u1836\5\t\5\2\u1836\u1837\5+\26\2\u1837\u1838\5\r\7\2\u1838\u1839"+ + "\5\27\f\2\u1839\u0434\3\2\2\2\u183a\u183b\5-\27\2\u183b\u183c\5\21\t\2"+ + "\u183c\u183d\5\r\7\2\u183d\u183e\5%\23\2\u183e\u183f\5#\22\2\u183f\u1840"+ + "\5\17\b\2\u1840\u0436\3\2\2\2\u1841\u1842\5-\27\2\u1842\u1843\5\21\t\2"+ + "\u1843\u1844\5\r\7\2\u1844\u1845\5/\30\2\u1845\u1846\5\31\r\2\u1846\u1847"+ + "\5%\23\2\u1847\u1848\5#\22\2\u1848\u0438\3\2\2\2\u1849\u184a\5-\27\2\u184a"+ + "\u184b\5\21\t\2\u184b\u184c\5\r\7\2\u184c\u184d\5\61\31\2\u184d\u184e"+ + "\5+\26\2\u184e\u184f\5\31\r\2\u184f\u1850\5/\30\2\u1850\u1851\59\35\2"+ + "\u1851\u043a\3\2\2\2\u1852\u1853\5-\27\2\u1853\u1854\5\21\t\2\u1854\u1855"+ + "\5\37\20\2\u1855\u1856\5\21\t\2\u1856\u1857\5\r\7\2\u1857\u1858\5/\30"+ + "\2\u1858\u043c\3\2\2\2\u1859\u185a\5-\27\2\u185a\u185b\5\21\t\2\u185b"+ + "\u185c\5\37\20\2\u185c\u185d\5\23\n\2\u185d\u043e\3\2\2\2\u185e\u185f"+ + "\5-\27\2\u185f\u1860\5\21\t\2\u1860\u1861\5#\22\2\u1861\u1862\5-\27\2"+ + "\u1862\u1863\5\31\r\2\u1863\u1864\5/\30\2\u1864\u1865\5\31\r\2\u1865\u1866"+ + "\5\63\32\2\u1866\u1867\5\21\t\2\u1867\u0440\3\2\2\2\u1868\u1869\5-\27"+ + "\2\u1869\u186a\5\21\t\2\u186a\u186b\5)\25\2\u186b\u186c\5\61\31\2\u186c"+ + "\u186d\5\21\t\2\u186d\u186e\5#\22\2\u186e\u186f\5\r\7\2\u186f\u1870\5"+ + "\21\t\2\u1870\u0442\3\2\2\2\u1871\u1872\5-\27\2\u1872\u1873\5\21\t\2\u1873"+ + "\u1874\5)\25\2\u1874\u1875\5\61\31\2\u1875\u1876\5\21\t\2\u1876\u1877"+ + "\5#\22\2\u1877\u1878\5\r\7\2\u1878\u1879\5\21\t\2\u1879\u187a\5-\27\2"+ + "\u187a\u0444\3\2\2\2\u187b\u187c\5-\27\2\u187c\u187d\5\21\t\2\u187d\u187e"+ + "\5+\26\2\u187e\u187f\5\31\r\2\u187f\u1880\5\t\5\2\u1880\u1881\5\37\20"+ + "\2\u1881\u1882\5\31\r\2\u1882\u1883\5;\36\2\u1883\u1884\5\t\5\2\u1884"+ + "\u1885\5\13\6\2\u1885\u1886\5\37\20\2\u1886\u1887\5\21\t\2\u1887\u0446"+ + "\3\2\2\2\u1888\u1889\5-\27\2\u1889\u188a\5\21\t\2\u188a\u188b\5+\26\2"+ + "\u188b\u188c\5\63\32\2\u188c\u188d\5\21\t\2\u188d\u188e\5+\26\2\u188e"+ + "\u188f\7a\2\2\u188f\u1890\5#\22\2\u1890\u1891\5\t\5\2\u1891\u1892\5!\21"+ + "\2\u1892\u1893\5\21\t\2\u1893\u0448\3\2\2\2\u1894\u1895\5-\27\2\u1895"+ + "\u1896\5\21\t\2\u1896\u1897\5-\27\2\u1897\u1898\5-\27\2\u1898\u1899\5"+ + "\31\r\2\u1899\u189a\5%\23\2\u189a\u189b\5#\22\2\u189b\u044a\3\2\2\2\u189c"+ + "\u189d\5-\27\2\u189d\u189e\5\21\t\2\u189e\u189f\5-\27\2\u189f\u18a0\5"+ + "-\27\2\u18a0\u18a1\5\31\r\2\u18a1\u18a2\5%\23\2\u18a2\u18a3\5#\22\2\u18a3"+ + "\u18a4\7a\2\2\u18a4\u18a5\5\61\31\2\u18a5\u18a6\5-\27\2\u18a6\u18a7\5"+ + "\21\t\2\u18a7\u18a8\5+\26\2\u18a8\u044c\3\2\2\2\u18a9\u18aa\5-\27\2\u18aa"+ + "\u18ab\5\21\t\2\u18ab\u18ac\5/\30\2\u18ac\u044e\3\2\2\2\u18ad\u18ae\5"+ + "-\27\2\u18ae\u18af\5\21\t\2\u18af\u18b0\5/\30\2\u18b0\u18b1\5%\23\2\u18b1"+ + "\u18b2\5\23\n\2\u18b2\u0450\3\2\2\2\u18b3\u18b4\5-\27\2\u18b4\u18b5\5"+ + "\21\t\2\u18b5\u18b6\5/\30\2\u18b6\u18b7\5-\27\2\u18b7\u0452\3\2\2\2\u18b8"+ + "\u18b9\5-\27\2\u18b9\u18ba\5\27\f\2\u18ba\u18bb\5\t\5\2\u18bb\u18bc\5"+ + "+\26\2\u18bc\u18bd\5\21\t\2\u18bd\u0454\3\2\2\2\u18be\u18bf\5-\27\2\u18bf"+ + "\u18c0\5\27\f\2\u18c0\u18c1\5%\23\2\u18c1\u18c2\5\65\33\2\u18c2\u0456"+ + "\3\2\2\2\u18c3\u18c4\5-\27\2\u18c4\u18c5\5\31\r\2\u18c5\u18c6\5!\21\2"+ + "\u18c6\u18c7\5\31\r\2\u18c7\u18c8\5\37\20\2\u18c8\u18c9\5\t\5\2\u18c9"+ + "\u18ca\5+\26\2\u18ca\u0458\3\2\2\2\u18cb\u18cc\5-\27\2\u18cc\u18cd\5\31"+ + "\r\2\u18cd\u18ce\5!\21\2\u18ce\u18cf\5\'\24\2\u18cf\u18d0\5\37\20\2\u18d0"+ + "\u18d1\5\21\t\2\u18d1\u045a\3\2\2\2\u18d2\u18d3\5-\27\2\u18d3\u18d4\5"+ + "\31\r\2\u18d4\u18d5\5;\36\2\u18d5\u18d6\5\21\t\2\u18d6\u045c\3\2\2\2\u18d7"+ + "\u18d8\5-\27\2\u18d8\u18d9\5\35\17\2\u18d9\u18da\5\31\r\2\u18da\u18db"+ + "\5\'\24\2\u18db\u045e\3\2\2\2\u18dc\u18dd\5-\27\2\u18dd\u18de\5!\21\2"+ + "\u18de\u18df\5\t\5\2\u18df\u18e0\5\37\20\2\u18e0\u18e1\5\37\20\2\u18e1"+ + "\u18e2\5\31\r\2\u18e2\u18e3\5#\22\2\u18e3\u18e4\5/\30\2\u18e4\u0460\3"+ + "\2\2\2\u18e5\u18e6\5-\27\2\u18e6\u18e7\5#\22\2\u18e7\u18e8\5\t\5\2\u18e8"+ + "\u18e9\5\'\24\2\u18e9\u18ea\5-\27\2\u18ea\u18eb\5\27\f\2\u18eb\u18ec\5"+ + "%\23\2\u18ec\u18ed\5/\30\2\u18ed\u0462\3\2\2\2\u18ee\u18ef\5-\27\2\u18ef"+ + "\u18f0\5%\23\2\u18f0\u18f1\5!\21\2\u18f1\u18f2\5\21\t\2\u18f2\u0464\3"+ + "\2\2\2\u18f3\u18f4\5-\27\2\u18f4\u18f5\5%\23\2\u18f5\u18f6\5\61\31\2\u18f6"+ + "\u18f7\5+\26\2\u18f7\u18f8\5\r\7\2\u18f8\u18f9\5\21\t\2\u18f9\u0466\3"+ + "\2\2\2\u18fa\u18fb\5-\27\2\u18fb\u18fc\5\'\24\2\u18fc\u18fd\5\t\5\2\u18fd"+ + "\u18fe\5\r\7\2\u18fe\u18ff\5\21\t\2\u18ff\u0468\3\2\2\2\u1900\u1901\5"+ + "-\27\2\u1901\u1902\5\'\24\2\u1902\u1903\5\21\t\2\u1903\u1904\5\r\7\2\u1904"+ + "\u1905\5\31\r\2\u1905\u1906\5\23\n\2\u1906\u1907\5\31\r\2\u1907\u1908"+ + "\5\r\7\2\u1908\u046a\3\2\2\2\u1909\u190a\5-\27\2\u190a\u190b\5\'\24\2"+ + "\u190b\u190c\5\21\t\2\u190c\u190d\5\r\7\2\u190d\u190e\5\31\r\2\u190e\u190f"+ + "\5\23\n\2\u190f\u1910\5\31\r\2\u1910\u1911\5\r\7\2\u1911\u1912\7a\2\2"+ + "\u1912\u1913\5#\22\2\u1913\u1914\5\t\5\2\u1914\u1915\5!\21\2\u1915\u1916"+ + "\5\21\t\2\u1916\u046c\3\2\2\2\u1917\u1918\5-\27\2\u1918\u1919\5\'\24\2"+ + "\u1919\u191a\5\21\t\2\u191a\u191b\5\r\7\2\u191b\u191c\5\31\r\2\u191c\u191d"+ + "\5\23\n\2\u191d\u191e\5\31\r\2\u191e\u191f\5\r\7\2\u191f\u1920\5/\30\2"+ + "\u1920\u1921\59\35\2\u1921\u1922\5\'\24\2\u1922\u1923\5\21\t\2\u1923\u046e"+ + "\3\2\2\2\u1924\u1925\5-\27\2\u1925\u1926\5)\25\2\u1926\u1927\5\37\20\2"+ + "\u1927\u0470\3\2\2\2\u1928\u1929\5-\27\2\u1929\u192a\5)\25\2\u192a\u192b"+ + "\5\37\20\2\u192b\u192c\5\r\7\2\u192c\u192d\5%\23\2\u192d\u192e\5\17\b"+ + "\2\u192e\u192f\5\21\t\2\u192f\u0472\3\2\2\2\u1930\u1931\5-\27\2\u1931"+ + "\u1932\5)\25\2\u1932\u1933\5\37\20\2\u1933\u1934\5\21\t\2\u1934\u1935"+ + "\5+\26\2\u1935\u1936\5+\26\2\u1936\u1937\5%\23\2\u1937\u1938\5+\26\2\u1938"+ + "\u0474\3\2\2\2\u1939\u193a\5-\27\2\u193a\u193b\5)\25\2\u193b\u193c\5\37"+ + "\20\2\u193c\u193d\5\21\t\2\u193d\u193e\5\67\34\2\u193e\u193f\5\r\7\2\u193f"+ + "\u1940\5\21\t\2\u1940\u1941\5\'\24\2\u1941\u1942\5/\30\2\u1942\u1943\5"+ + "\31\r\2\u1943\u1944\5%\23\2\u1944\u1945\5#\22\2\u1945\u0476\3\2\2\2\u1946"+ + "\u1947\5-\27\2\u1947\u1948\5)\25\2\u1948\u1949\5\37\20\2\u1949\u194a\5"+ + "-\27\2\u194a\u194b\5/\30\2\u194b\u194c\5\t\5\2\u194c\u194d\5/\30\2\u194d"+ + "\u194e\5\21\t\2\u194e\u0478\3\2\2\2\u194f\u1950\5-\27\2\u1950\u1951\5"+ + ")\25\2\u1951\u1952\5\37\20\2\u1952\u1953\5\65\33\2\u1953\u1954\5\t\5\2"+ + "\u1954\u1955\5+\26\2\u1955\u1956\5#\22\2\u1956\u1957\5\31\r\2\u1957\u1958"+ + "\5#\22\2\u1958\u1959\5\25\13\2\u1959\u047a\3\2\2\2\u195a\u195b\5-\27\2"+ + "\u195b\u195c\5)\25\2\u195c\u195d\5+\26\2\u195d\u195e\5/\30\2\u195e\u047c"+ + "\3\2\2\2\u195f\u1960\5-\27\2\u1960\u1961\5/\30\2\u1961\u1962\5\t\5\2\u1962"+ + "\u1963\5\13\6\2\u1963\u1964\5\37\20\2\u1964\u1965\5\21\t\2\u1965\u047e"+ + "\3\2\2\2\u1966\u1967\5-\27\2\u1967\u1968\5/\30\2\u1968\u1969\5\t\5\2\u1969"+ + "\u196a\5+\26\2\u196a\u196b\5/\30\2\u196b\u0480\3\2\2\2\u196c\u196d\5-"+ + "\27\2\u196d\u196e\5/\30\2\u196e\u196f\5\t\5\2\u196f\u1970\5/\30\2\u1970"+ + "\u1971\5\21\t\2\u1971\u0482\3\2\2\2\u1972\u1973\5-\27\2\u1973\u1974\5"+ + "/\30\2\u1974\u1975\5\t\5\2\u1975\u1976\5/\30\2\u1976\u1977\5\21\t\2\u1977"+ + "\u1978\5!\21\2\u1978\u1979\5\21\t\2\u1979\u197a\5#\22\2\u197a\u197b\5"+ + "/\30\2\u197b\u0484\3\2\2\2\u197c\u197d\5-\27\2\u197d\u197e\5/\30\2\u197e"+ + "\u197f\5\t\5\2\u197f\u1980\5/\30\2\u1980\u1981\5\31\r\2\u1981\u1982\5"+ + "\r\7\2\u1982\u0486\3\2\2\2\u1983\u1984\5-\27\2\u1984\u1985\5/\30\2\u1985"+ + "\u1986\5\t\5\2\u1986\u1987\5/\30\2\u1987\u1988\5\31\r\2\u1988\u1989\5"+ + "-\27\2\u1989\u198a\5/\30\2\u198a\u198b\5\31\r\2\u198b\u198c\5\r\7\2\u198c"+ + "\u198d\5-\27\2\u198d\u0488\3\2\2\2\u198e\u198f\5-\27\2\u198f\u1990\5/"+ + "\30\2\u1990\u1991\5\17\b\2\u1991\u1992\5\17\b\2\u1992\u1993\5\21\t\2\u1993"+ + "\u1994\5\63\32\2\u1994\u1995\7a\2\2\u1995\u1996\5\'\24\2\u1996\u1997\5"+ + "%\23\2\u1997\u1998\5\'\24\2\u1998\u048a\3\2\2\2\u1999\u199a\5-\27\2\u199a"+ + "\u199b\5/\30\2\u199b\u199c\5\17\b\2\u199c\u199d\5\17\b\2\u199d\u199e\5"+ + "\21\t\2\u199e\u199f\5\63\32\2\u199f\u19a0\7a\2\2\u19a0\u19a1\5-\27\2\u19a1"+ + "\u19a2\5\t\5\2\u19a2\u19a3\5!\21\2\u19a3\u19a4\5\'\24\2\u19a4\u048c\3"+ + "\2\2\2\u19a5\u19a6\5-\27\2\u19a6\u19a7\5/\30\2\u19a7\u19a8\5\17\b\2\u19a8"+ + "\u19a9\5\31\r\2\u19a9\u19aa\5#\22\2\u19aa\u048e\3\2\2\2\u19ab\u19ac\5"+ + "-\27\2\u19ac\u19ad\5/\30\2\u19ad\u19ae\5\17\b\2\u19ae\u19af\5%\23\2\u19af"+ + "\u19b0\5\61\31\2\u19b0\u19b1\5/\30\2\u19b1\u0490\3\2\2\2\u19b2\u19b3\5"+ + "-\27\2\u19b3\u19b4\5/\30\2\u19b4\u19b5\5%\23\2\u19b5\u19b6\5+\26\2\u19b6"+ + "\u19b7\5\t\5\2\u19b7\u19b8\5\25\13\2\u19b8\u19b9\5\21\t\2\u19b9\u0492"+ + "\3\2\2\2\u19ba\u19bb\5-\27\2\u19bb\u19bc\5/\30\2\u19bc\u19bd\5+\26\2\u19bd"+ + "\u19be\5\31\r\2\u19be\u19bf\5\r\7\2\u19bf\u19c0\5/\30\2\u19c0\u0494\3"+ + "\2\2\2\u19c1\u19c2\5-\27\2\u19c2\u19c3\5/\30\2\u19c3\u19c4\5+\26\2\u19c4"+ + "\u19c5\5\61\31\2\u19c5\u19c6\5\r\7\2\u19c6\u19c7\5/\30\2\u19c7\u19c8\5"+ + "\61\31\2\u19c8\u19c9\5+\26\2\u19c9\u19ca\5\21\t\2\u19ca\u0496\3\2\2\2"+ + "\u19cb\u19cc\5-\27\2\u19cc\u19cd\5/\30\2\u19cd\u19ce\59\35\2\u19ce\u19cf"+ + "\5\37\20\2\u19cf\u19d0\5\21\t\2\u19d0\u0498\3\2\2\2\u19d1\u19d2\5-\27"+ + "\2\u19d2\u19d3\5\61\31\2\u19d3\u19d4\5\13\6\2\u19d4\u19d5\5\r\7\2\u19d5"+ + "\u19d6\5\37\20\2\u19d6\u19d7\5\t\5\2\u19d7\u19d8\5-\27\2\u19d8\u19d9\5"+ + "-\27\2\u19d9\u19da\7a\2\2\u19da\u19db\5%\23\2\u19db\u19dc\5+\26\2\u19dc"+ + "\u19dd\5\31\r\2\u19dd\u19de\5\25\13\2\u19de\u19df\5\31\r\2\u19df\u19e0"+ + "\5#\22\2\u19e0\u049a\3\2\2\2\u19e1\u19e2\5-\27\2\u19e2\u19e3\5\61\31\2"+ + "\u19e3\u19e4\5\13\6\2\u19e4\u19e5\5\37\20\2\u19e5\u19e6\5\31\r\2\u19e6"+ + "\u19e7\5-\27\2\u19e7\u19e8\5/\30\2\u19e8\u049c\3\2\2\2\u19e9\u19ea\5-"+ + "\27\2\u19ea\u19eb\5\61\31\2\u19eb\u19ec\5\13\6\2\u19ec\u19ed\5!\21\2\u19ed"+ + "\u19ee\5\61\31\2\u19ee\u19ef\5\37\20\2\u19ef\u19f0\5/\30\2\u19f0\u19f1"+ + "\5\31\r\2\u19f1\u19f2\5-\27\2\u19f2\u19f3\5\21\t\2\u19f3\u19f4\5/\30\2"+ + "\u19f4\u049e\3\2\2\2\u19f5\u19f6\5-\27\2\u19f6\u19f7\5\61\31\2\u19f7\u19f8"+ + "\5\13\6\2\u19f8\u19f9\5-\27\2\u19f9\u19fa\5\r\7\2\u19fa\u19fb\5+\26\2"+ + "\u19fb\u19fc\5\31\r\2\u19fc\u19fd\5\'\24\2\u19fd\u19fe\5/\30\2\u19fe\u19ff"+ + "\5\31\r\2\u19ff\u1a00\5%\23\2\u1a00\u1a01\5#\22\2\u1a01\u04a0\3\2\2\2"+ + "\u1a02\u1a03\5-\27\2\u1a03\u1a04\5\61\31\2\u1a04\u1a05\5\13\6\2\u1a05"+ + "\u1a06\5-\27\2\u1a06\u1a07\5/\30\2\u1a07\u1a08\5+\26\2\u1a08\u1a09\5\31"+ + "\r\2\u1a09\u1a0a\5#\22\2\u1a0a\u1a0b\5\25\13\2\u1a0b\u04a2\3\2\2\2\u1a0c"+ + "\u1a0d\5-\27\2\u1a0d\u1a0e\5\61\31\2\u1a0e\u1a0f\5!\21\2\u1a0f\u04a4\3"+ + "\2\2\2\u1a10\u1a11\5-\27\2\u1a11\u1a12\59\35\2\u1a12\u1a13\5!\21\2\u1a13"+ + "\u1a14\5!\21\2\u1a14\u1a15\5\21\t\2\u1a15\u1a16\5/\30\2\u1a16\u1a17\5"+ + "+\26\2\u1a17\u1a18\5\31\r\2\u1a18\u1a19\5\r\7\2\u1a19\u04a6\3\2\2\2\u1a1a"+ + "\u1a1b\5-\27\2\u1a1b\u1a1c\59\35\2\u1a1c\u1a1d\5-\27\2\u1a1d\u1a1e\5\31"+ + "\r\2\u1a1e\u1a1f\5\17\b\2\u1a1f\u04a8\3\2\2\2\u1a20\u1a21\5-\27\2\u1a21"+ + "\u1a22\59\35\2\u1a22\u1a23\5-\27\2\u1a23\u1a24\5/\30\2\u1a24\u1a25\5\21"+ + "\t\2\u1a25\u1a26\5!\21\2\u1a26\u04aa\3\2\2\2\u1a27\u1a28\5-\27\2\u1a28"+ + "\u1a29\59\35\2\u1a29\u1a2a\5-\27\2\u1a2a\u1a2b\5/\30\2\u1a2b\u1a2c\5\21"+ + "\t\2\u1a2c\u1a2d\5!\21\2\u1a2d\u1a2e\7a\2\2\u1a2e\u1a2f\5\61\31\2\u1a2f"+ + "\u1a30\5-\27\2\u1a30\u1a31\5\21\t\2\u1a31\u1a32\5+\26\2\u1a32\u04ac\3"+ + "\2\2\2\u1a33\u1a34\5/\30\2\u1a34\u1a35\5\t\5\2\u1a35\u1a36\5\13\6\2\u1a36"+ + "\u1a37\5\37\20\2\u1a37\u1a38\5\21\t\2\u1a38\u04ae\3\2\2\2\u1a39\u1a3a"+ + "\5/\30\2\u1a3a\u1a3b\5\t\5\2\u1a3b\u1a3c\5\13\6\2\u1a3c\u1a3d\5\37\20"+ + "\2\u1a3d\u1a3e\5\21\t\2\u1a3e\u1a3f\7a\2\2\u1a3f\u1a40\5#\22\2\u1a40\u1a41"+ + "\5\t\5\2\u1a41\u1a42\5!\21\2\u1a42\u1a43\5\21\t\2\u1a43\u04b0\3\2\2\2"+ + "\u1a44\u1a45\5/\30\2\u1a45\u1a46\5\t\5\2\u1a46\u1a47\5\13\6\2\u1a47\u1a48"+ + "\5\37\20\2\u1a48\u1a49\5\21\t\2\u1a49\u1a4a\5-\27\2\u1a4a\u1a4b\5\t\5"+ + "\2\u1a4b\u1a4c\5!\21\2\u1a4c\u1a4d\5\'\24\2\u1a4d\u1a4e\5\37\20\2\u1a4e"+ + "\u1a4f\5\21\t\2\u1a4f\u04b2\3\2\2\2\u1a50\u1a51\5/\30\2\u1a51\u1a52\5"+ + "\t\5\2\u1a52\u1a53\5\13\6\2\u1a53\u1a54\5\37\20\2\u1a54\u1a55\5\21\t\2"+ + "\u1a55\u1a56\5-\27\2\u1a56\u1a57\5\'\24\2\u1a57\u1a58\5\t\5\2\u1a58\u1a59"+ + "\5\r\7\2\u1a59\u1a5a\5\21\t\2\u1a5a\u04b4\3\2\2\2\u1a5b\u1a5c\5/\30\2"+ + "\u1a5c\u1a5d\5\21\t\2\u1a5d\u1a5e\5!\21\2\u1a5e\u1a5f\5\'\24\2\u1a5f\u04b6"+ + "\3\2\2\2\u1a60\u1a61\5/\30\2\u1a61\u1a62\5\21\t\2\u1a62\u1a63\5!\21\2"+ + "\u1a63\u1a64\5\'\24\2\u1a64\u1a65\5\37\20\2\u1a65\u1a66\5\t\5\2\u1a66"+ + "\u1a67\5/\30\2\u1a67\u1a68\5\21\t\2\u1a68\u04b8\3\2\2\2\u1a69\u1a6a\5"+ + "/\30\2\u1a6a\u1a6b\5\21\t\2\u1a6b\u1a6c\5!\21\2\u1a6c\u1a6d\5\'\24\2\u1a6d"+ + "\u1a6e\5%\23\2\u1a6e\u1a6f\5+\26\2\u1a6f\u1a70\5\t\5\2\u1a70\u1a71\5+"+ + "\26\2\u1a71\u1a72\59\35\2\u1a72\u04ba\3\2\2\2\u1a73\u1a74\5/\30\2\u1a74"+ + "\u1a75\5\21\t\2\u1a75\u1a76\5+\26\2\u1a76\u1a77\5!\21\2\u1a77\u1a78\5"+ + "\31\r\2\u1a78\u1a79\5#\22\2\u1a79\u1a7a\5\t\5\2\u1a7a\u1a7b\5/\30\2\u1a7b"+ + "\u1a7c\5\21\t\2\u1a7c\u04bc\3\2\2\2\u1a7d\u1a7e\5/\30\2\u1a7e\u1a7f\5"+ + "\27\f\2\u1a7f\u1a80\5\t\5\2\u1a80\u1a81\5#\22\2\u1a81\u04be\3\2\2\2\u1a82"+ + "\u1a83\5/\30\2\u1a83\u1a84\5\27\f\2\u1a84\u1a85\5\21\t\2\u1a85\u1a86\5"+ + "#\22\2\u1a86\u04c0\3\2\2\2\u1a87\u1a88\5/\30\2\u1a88\u1a89\5\31\r\2\u1a89"+ + "\u1a8a\5\21\t\2\u1a8a\u1a8b\5-\27\2\u1a8b\u04c2\3\2\2\2\u1a8c\u1a8d\5"+ + "/\30\2\u1a8d\u1a8e\5\31\r\2\u1a8e\u1a8f\5!\21\2\u1a8f\u1a90\5\21\t\2\u1a90"+ + "\u04c4\3\2\2\2\u1a91\u1a92\5/\30\2\u1a92\u1a93\5\31\r\2\u1a93\u1a94\5"+ + "!\21\2\u1a94\u1a95\5\21\t\2\u1a95\u1a96\5-\27\2\u1a96\u1a97\5/\30\2\u1a97"+ + "\u1a98\5\t\5\2\u1a98\u1a99\5!\21\2\u1a99\u1a9a\5\'\24\2\u1a9a\u04c6\3"+ + "\2\2\2\u1a9b\u1a9c\5/\30\2\u1a9c\u1a9d\5\31\r\2\u1a9d\u1a9e\5!\21\2\u1a9e"+ + "\u1a9f\5\21\t\2\u1a9f\u1aa0\5;\36\2\u1aa0\u1aa1\5%\23\2\u1aa1\u1aa2\5"+ + "#\22\2\u1aa2\u1aa3\5\21\t\2\u1aa3\u1aa4\7a\2\2\u1aa4\u1aa5\5\27\f\2\u1aa5"+ + "\u1aa6\5%\23\2\u1aa6\u1aa7\5\61\31\2\u1aa7\u1aa8\5+\26\2\u1aa8\u04c8\3"+ + "\2\2\2\u1aa9\u1aaa\5/\30\2\u1aaa\u1aab\5\31\r\2\u1aab\u1aac\5!\21\2\u1aac"+ + "\u1aad\5\21\t\2\u1aad\u1aae\5;\36\2\u1aae\u1aaf\5%\23\2\u1aaf\u1ab0\5"+ + "#\22\2\u1ab0\u1ab1\5\21\t\2\u1ab1\u1ab2\7a\2\2\u1ab2\u1ab3\5!\21\2\u1ab3"+ + "\u1ab4\5\31\r\2\u1ab4\u1ab5\5#\22\2\u1ab5\u1ab6\5\61\31\2\u1ab6\u1ab7"+ + "\5/\30\2\u1ab7\u1ab8\5\21\t\2\u1ab8\u04ca\3\2\2\2\u1ab9\u1aba\5/\30\2"+ + "\u1aba\u1abb\5\31\r\2\u1abb\u1abc\5!\21\2\u1abc\u1abd\5\31\r\2\u1abd\u1abe"+ + "\5#\22\2\u1abe\u1abf\5\25\13\2\u1abf\u04cc\3\2\2\2\u1ac0\u1ac1\5/\30\2"+ + "\u1ac1\u1ac2\5%\23\2\u1ac2\u04ce\3\2\2\2\u1ac3\u1ac4\5/\30\2\u1ac4\u1ac5"+ + "\5%\23\2\u1ac5\u1ac6\5\t\5\2\u1ac6\u1ac7\5-\27\2\u1ac7\u1ac8\5/\30\2\u1ac8"+ + "\u04d0\3\2\2\2\u1ac9\u1aca\5/\30\2\u1aca\u1acb\5%\23\2\u1acb\u1acc\5\'"+ + "\24\2\u1acc\u1acd\7a\2\2\u1acd\u1ace\5\37\20\2\u1ace\u1acf\5\21\t\2\u1acf"+ + "\u1ad0\5\63\32\2\u1ad0\u1ad1\5\21\t\2\u1ad1\u1ad2\5\37\20\2\u1ad2\u1ad3"+ + "\7a\2\2\u1ad3\u1ad4\5\r\7\2\u1ad4\u1ad5\5%\23\2\u1ad5\u1ad6\5\61\31\2"+ + "\u1ad6\u1ad7\5#\22\2\u1ad7\u1ad8\5/\30\2\u1ad8\u04d2\3\2\2\2\u1ad9\u1ada"+ + "\5/\30\2\u1ada\u1adb\5+\26\2\u1adb\u1adc\5\t\5\2\u1adc\u1add\5\31\r\2"+ + "\u1add\u1ade\5\37\20\2\u1ade\u1adf\5\31\r\2\u1adf\u1ae0\5#\22\2\u1ae0"+ + "\u1ae1\5\25\13\2\u1ae1\u04d4\3\2\2\2\u1ae2\u1ae3\5/\30\2\u1ae3\u1ae4\5"+ + "+\26\2\u1ae4\u1ae5\5\t\5\2\u1ae5\u1ae6\5#\22\2\u1ae6\u1ae7\5-\27\2\u1ae7"+ + "\u1ae8\5\t\5\2\u1ae8\u1ae9\5\r\7\2\u1ae9\u1aea\5/\30\2\u1aea\u1aeb\5\31"+ + "\r\2\u1aeb\u1aec\5%\23\2\u1aec\u1aed\5#\22\2\u1aed\u04d6\3\2\2\2\u1aee"+ + "\u1aef\5/\30\2\u1aef\u1af0\5+\26\2\u1af0\u1af1\5\t\5\2\u1af1\u1af2\5#"+ + "\22\2\u1af2\u1af3\5-\27\2\u1af3\u1af4\5\t\5\2\u1af4\u1af5\5\r\7\2\u1af5"+ + "\u1af6\5/\30\2\u1af6\u1af7\5\31\r\2\u1af7\u1af8\5%\23\2\u1af8\u1af9\5"+ + "#\22\2\u1af9\u1afa\7a\2\2\u1afa\u1afb\5\t\5\2\u1afb\u1afc\5\r\7\2\u1afc"+ + "\u1afd\5/\30\2\u1afd\u1afe\5\31\r\2\u1afe\u1aff\5\63\32\2\u1aff\u1b00"+ + "\5\21\t\2\u1b00\u04d8\3\2\2\2\u1b01\u1b02\5/\30\2\u1b02\u1b03\5+\26\2"+ + "\u1b03\u1b04\5\t\5\2\u1b04\u1b05\5#\22\2\u1b05\u1b06\5-\27\2\u1b06\u1b07"+ + "\5\t\5\2\u1b07\u1b08\5\r\7\2\u1b08\u1b09\5/\30\2\u1b09\u1b0a\5\31\r\2"+ + "\u1b0a\u1b0b\5%\23\2\u1b0b\u1b0c\5#\22\2\u1b0c\u1b0d\5-\27\2\u1b0d\u1b0e"+ + "\7a\2\2\u1b0e\u1b0f\5\r\7\2\u1b0f\u1b10\5%\23\2\u1b10\u1b11\5!\21\2\u1b11"+ + "\u1b12\5!\21\2\u1b12\u1b13\5\31\r\2\u1b13\u1b14\5/\30\2\u1b14\u1b15\5"+ + "/\30\2\u1b15\u1b16\5\21\t\2\u1b16\u1b17\5\17\b\2\u1b17\u04da\3\2\2\2\u1b18"+ + "\u1b19\5/\30\2\u1b19\u1b1a\5+\26\2\u1b1a\u1b1b\5\t\5\2\u1b1b\u1b1c\5#"+ + "\22\2\u1b1c\u1b1d\5-\27\2\u1b1d\u1b1e\5\t\5\2\u1b1e\u1b1f\5\r\7\2\u1b1f"+ + "\u1b20\5/\30\2\u1b20\u1b21\5\31\r\2\u1b21\u1b22\5%\23\2\u1b22\u1b23\5"+ + "#\22\2\u1b23\u1b24\5-\27\2\u1b24\u1b25\7a\2\2\u1b25\u1b26\5+\26\2\u1b26"+ + "\u1b27\5%\23\2\u1b27\u1b28\5\37\20\2\u1b28\u1b29\5\37\20\2\u1b29\u1b2a"+ + "\5\21\t\2\u1b2a\u1b2b\5\17\b\2\u1b2b\u1b2c\7a\2\2\u1b2c\u1b2d\5\13\6\2"+ + "\u1b2d\u1b2e\5\t\5\2\u1b2e\u1b2f\5\r\7\2\u1b2f\u1b30\5\35\17\2\u1b30\u04dc"+ + "\3\2\2\2\u1b31\u1b32\5/\30\2\u1b32\u1b33\5+\26\2\u1b33\u1b34\5\t\5\2\u1b34"+ + "\u1b35\5#\22\2\u1b35\u1b36\5-\27\2\u1b36\u1b37\5\23\n\2\u1b37\u1b38\5"+ + "%\23\2\u1b38\u1b39\5+\26\2\u1b39\u1b3a\5!\21\2\u1b3a\u04de\3\2\2\2\u1b3b"+ + "\u1b3c\5/\30\2\u1b3c\u1b3d\5+\26\2\u1b3d\u1b3e\5\t\5\2\u1b3e\u1b3f\5#"+ + "\22\2\u1b3f\u1b40\5-\27\2\u1b40\u1b41\5\23\n\2\u1b41\u1b42\5%\23\2\u1b42"+ + "\u1b43\5+\26\2\u1b43\u1b44\5!\21\2\u1b44\u1b45\5-\27\2\u1b45\u04e0\3\2"+ + "\2\2\u1b46\u1b47\5/\30\2\u1b47\u1b48\5+\26\2\u1b48\u1b49\5\t\5\2\u1b49"+ + "\u1b4a\5#\22\2\u1b4a\u1b4b\5-\27\2\u1b4b\u1b4c\5\37\20\2\u1b4c\u1b4d\5"+ + "\t\5\2\u1b4d\u1b4e\5/\30\2\u1b4e\u1b4f\5\21\t\2\u1b4f\u04e2\3\2\2\2\u1b50"+ + "\u1b51\5/\30\2\u1b51\u1b52\5+\26\2\u1b52\u1b53\5\t\5\2\u1b53\u1b54\5#"+ + "\22\2\u1b54\u1b55\5-\27\2\u1b55\u1b56\5\37\20\2\u1b56\u1b57\5\t\5\2\u1b57"+ + "\u1b58\5/\30\2\u1b58\u1b59\5\31\r\2\u1b59\u1b5a\5%\23\2\u1b5a\u1b5b\5"+ + "#\22\2\u1b5b\u04e4\3\2\2\2\u1b5c\u1b5d\5/\30\2\u1b5d\u1b5e\5+\26\2\u1b5e"+ + "\u1b5f\5\21\t\2\u1b5f\u1b60\5\t\5\2\u1b60\u1b61\5/\30\2\u1b61\u04e6\3"+ + "\2\2\2\u1b62\u1b63\5/\30\2\u1b63\u1b64\5+\26\2\u1b64\u1b65\5\31\r\2\u1b65"+ + "\u1b66\5\25\13\2\u1b66\u1b67\5\25\13\2\u1b67\u1b68\5\21\t\2\u1b68\u1b69"+ + "\5+\26\2\u1b69\u04e8\3\2\2\2\u1b6a\u1b6b\5/\30\2\u1b6b\u1b6c\5+\26\2\u1b6c"+ + "\u1b6d\5\31\r\2\u1b6d\u1b6e\5\25\13\2\u1b6e\u1b6f\5\25\13\2\u1b6f\u1b70"+ + "\5\21\t\2\u1b70\u1b71\5+\26\2\u1b71\u1b72\7a\2\2\u1b72\u1b73\5\r\7\2\u1b73"+ + "\u1b74\5\t\5\2\u1b74\u1b75\5/\30\2\u1b75\u1b76\5\t\5\2\u1b76\u1b77\5\37"+ + "\20\2\u1b77\u1b78\5%\23\2\u1b78\u1b79\5\25\13\2\u1b79\u04ea\3\2\2\2\u1b7a"+ + "\u1b7b\5/\30\2\u1b7b\u1b7c\5+\26\2\u1b7c\u1b7d\5\31\r\2\u1b7d\u1b7e\5"+ + "\25\13\2\u1b7e\u1b7f\5\25\13\2\u1b7f\u1b80\5\21\t\2\u1b80\u1b81\5+\26"+ + "\2\u1b81\u1b82\7a\2\2\u1b82\u1b83\5#\22\2\u1b83\u1b84\5\t\5\2\u1b84\u1b85"+ + "\5!\21\2\u1b85\u1b86\5\21\t\2\u1b86\u04ec\3\2\2\2\u1b87\u1b88\5/\30\2"+ + "\u1b88\u1b89\5+\26\2\u1b89\u1b8a\5\31\r\2\u1b8a\u1b8b\5\25\13\2\u1b8b"+ + "\u1b8c\5\25\13\2\u1b8c\u1b8d\5\21\t\2\u1b8d\u1b8e\5+\26\2\u1b8e\u1b8f"+ + "\7a\2\2\u1b8f\u1b90\5-\27\2\u1b90\u1b91\5\r\7\2\u1b91\u1b92\5\27\f\2\u1b92"+ + "\u1b93\5\21\t\2\u1b93\u1b94\5!\21\2\u1b94\u1b95\5\t\5\2\u1b95\u04ee\3"+ + "\2\2\2\u1b96\u1b97\5/\30\2\u1b97\u1b98\5+\26\2\u1b98\u1b99\5\31\r\2\u1b99"+ + "\u1b9a\5!\21\2\u1b9a\u04f0\3\2\2\2\u1b9b\u1b9c\5/\30\2\u1b9c\u1b9d\5+"+ + "\26\2\u1b9d\u1b9e\5\61\31\2\u1b9e\u1b9f\5\21\t\2\u1b9f\u04f2\3\2\2\2\u1ba0"+ + "\u1ba1\5/\30\2\u1ba1\u1ba2\5+\26\2\u1ba2\u1ba3\5\61\31\2\u1ba3\u1ba4\5"+ + "#\22\2\u1ba4\u1ba5\5\r\7\2\u1ba5\u1ba6\5\t\5\2\u1ba6\u1ba7\5/\30\2\u1ba7"+ + "\u1ba8\5\21\t\2\u1ba8\u04f4\3\2\2\2\u1ba9\u1baa\5/\30\2\u1baa\u1bab\5"+ + "+\26\2\u1bab\u1bac\5\61\31\2\u1bac\u1bad\5-\27\2\u1bad\u1bae\5/\30\2\u1bae"+ + "\u1baf\5\21\t\2\u1baf\u1bb0\5\17\b\2\u1bb0\u04f6\3\2\2\2\u1bb1\u1bb2\5"+ + "/\30\2\u1bb2\u1bb3\59\35\2\u1bb3\u1bb4\5\'\24\2\u1bb4\u1bb5\5\21\t\2\u1bb5"+ + "\u04f8\3\2\2\2\u1bb6\u1bb7\5\61\31\2\u1bb7\u1bb8\5\21\t\2\u1bb8\u1bb9"+ + "\5-\27\2\u1bb9\u1bba\5\r\7\2\u1bba\u1bbb\5\t\5\2\u1bbb\u1bbc\5\'\24\2"+ + "\u1bbc\u1bbd\5\21\t\2\u1bbd\u04fa\3\2\2\2\u1bbe\u1bbf\5\61\31\2\u1bbf"+ + "\u1bc0\5#\22\2\u1bc0\u1bc1\5\13\6\2\u1bc1\u1bc2\5%\23\2\u1bc2\u1bc3\5"+ + "\61\31\2\u1bc3\u1bc4\5#\22\2\u1bc4\u1bc5\5\17\b\2\u1bc5\u1bc6\5\21\t\2"+ + "\u1bc6\u1bc7\5\17\b\2\u1bc7\u04fc\3\2\2\2\u1bc8\u1bc9\5\61\31\2\u1bc9"+ + "\u1bca\5#\22\2\u1bca\u1bcb\5\r\7\2\u1bcb\u1bcc\5%\23\2\u1bcc\u1bcd\5!"+ + "\21\2\u1bcd\u1bce\5!\21\2\u1bce\u1bcf\5\31\r\2\u1bcf\u1bd0\5/\30\2\u1bd0"+ + "\u1bd1\5/\30\2\u1bd1\u1bd2\5\21\t\2\u1bd2\u1bd3\5\17\b\2\u1bd3\u04fe\3"+ + "\2\2\2\u1bd4\u1bd5\5\61\31\2\u1bd5\u1bd6\5#\22\2\u1bd6\u1bd7\5\17\b\2"+ + "\u1bd7\u1bd8\5\21\t\2\u1bd8\u1bd9\5+\26\2\u1bd9\u0500\3\2\2\2\u1bda\u1bdb"+ + "\5\61\31\2\u1bdb\u1bdc\5#\22\2\u1bdc\u1bdd\5\21\t\2\u1bdd\u1bde\5#\22"+ + "\2\u1bde\u1bdf\5\r\7\2\u1bdf\u1be0\5+\26\2\u1be0\u1be1\59\35\2\u1be1\u1be2"+ + "\5\'\24\2\u1be2\u1be3\5/\30\2\u1be3\u1be4\5\21\t\2\u1be4\u1be5\5\17\b"+ + "\2\u1be5\u0502\3\2\2\2\u1be6\u1be7\5\61\31\2\u1be7\u1be8\5#\22\2\u1be8"+ + "\u1be9\5\31\r\2\u1be9\u1bea\5%\23\2\u1bea\u1beb\5#\22\2\u1beb\u0504\3"+ + "\2\2\2\u1bec\u1bed\5\61\31\2\u1bed\u1bee\5#\22\2\u1bee\u1bef\5\31\r\2"+ + "\u1bef\u1bf0\5)\25\2\u1bf0\u1bf1\5\61\31\2\u1bf1\u1bf2\5\21\t\2\u1bf2"+ + "\u0506\3\2\2\2\u1bf3\u1bf4\5\61\31\2\u1bf4\u1bf5\5#\22\2\u1bf5\u1bf6\5"+ + "\35\17\2\u1bf6\u1bf7\5#\22\2\u1bf7\u1bf8\5%\23\2\u1bf8\u1bf9\5\65\33\2"+ + "\u1bf9\u1bfa\5#\22\2\u1bfa\u0508\3\2\2\2\u1bfb\u1bfc\5\61\31\2\u1bfc\u1bfd"+ + "\5#\22\2\u1bfd\u1bfe\5\37\20\2\u1bfe\u1bff\5\31\r\2\u1bff\u1c00\5-\27"+ + "\2\u1c00\u1c01\5/\30\2\u1c01\u1c02\5\21\t\2\u1c02\u1c03\5#\22\2\u1c03"+ + "\u050a\3\2\2\2\u1c04\u1c05\5\61\31\2\u1c05\u1c06\5#\22\2\u1c06\u1c07\5"+ + "#\22\2\u1c07\u1c08\5\t\5\2\u1c08\u1c09\5!\21\2\u1c09\u1c0a\5\21\t\2\u1c0a"+ + "\u1c0b\5\17\b\2\u1c0b\u050c\3\2\2\2\u1c0c\u1c0d\5\61\31\2\u1c0d\u1c0e"+ + "\5#\22\2\u1c0e\u1c0f\5#\22\2\u1c0f\u1c10\5\21\t\2\u1c10\u1c11\5-\27\2"+ + "\u1c11\u1c12\5/\30\2\u1c12\u050e\3\2\2\2\u1c13\u1c14\5\61\31\2\u1c14\u1c15"+ + "\5#\22\2\u1c15\u1c16\5/\30\2\u1c16\u1c17\5\31\r\2\u1c17\u1c18\5\37\20"+ + "\2\u1c18\u0510\3\2\2\2\u1c19\u1c1a\5\61\31\2\u1c1a\u1c1b\5\'\24\2\u1c1b"+ + "\u1c1c\5\17\b\2\u1c1c\u1c1d\5\t\5\2\u1c1d\u1c1e\5/\30\2\u1c1e\u1c1f\5"+ + "\21\t\2\u1c1f\u0512\3\2\2\2\u1c20\u1c21\5\61\31\2\u1c21\u1c22\5\'\24\2"+ + "\u1c22\u1c23\5\'\24\2\u1c23\u1c24\5\21\t\2\u1c24\u1c25\5+\26\2\u1c25\u0514"+ + "\3\2\2\2\u1c26\u1c27\5\61\31\2\u1c27\u1c28\5-\27\2\u1c28\u1c29\5\t\5\2"+ + "\u1c29\u1c2a\5\25\13\2\u1c2a\u1c2b\5\21\t\2\u1c2b\u0516\3\2\2\2\u1c2c"+ + "\u1c2d\5\61\31\2\u1c2d\u1c2e\5-\27\2\u1c2e\u1c2f\5\21\t\2\u1c2f\u1c30"+ + "\5+\26\2\u1c30\u0518\3\2\2\2\u1c31\u1c32\5\61\31\2\u1c32\u1c33\5-\27\2"+ + "\u1c33\u1c34\5\21\t\2\u1c34\u1c35\5+\26\2\u1c35\u1c36\7a\2\2\u1c36\u1c37"+ + "\5\17\b\2\u1c37\u1c38\5\21\t\2\u1c38\u1c39\5\23\n\2\u1c39\u1c3a\5\31\r"+ + "\2\u1c3a\u1c3b\5#\22\2\u1c3b\u1c3c\5\21\t\2\u1c3c\u1c3d\5\17\b\2\u1c3d"+ + "\u1c3e\7a\2\2\u1c3e\u1c3f\5/\30\2\u1c3f\u1c40\59\35\2\u1c40\u1c41\5\'"+ + "\24\2\u1c41\u1c42\5\21\t\2\u1c42\u1c43\7a\2\2\u1c43\u1c44\5\r\7\2\u1c44"+ + "\u1c45\5\t\5\2\u1c45\u1c46\5/\30\2\u1c46\u1c47\5\t\5\2\u1c47\u1c48\5\37"+ + "\20\2\u1c48\u1c49\5%\23\2\u1c49\u1c4a\5\25\13\2\u1c4a\u051a\3\2\2\2\u1c4b"+ + "\u1c4c\5\61\31\2\u1c4c\u1c4d\5-\27\2\u1c4d\u1c4e\5\21\t\2\u1c4e\u1c4f"+ + "\5+\26\2\u1c4f\u1c50\7a\2\2\u1c50\u1c51\5\17\b\2\u1c51\u1c52\5\21\t\2"+ + "\u1c52\u1c53\5\23\n\2\u1c53\u1c54\5\31\r\2\u1c54\u1c55\5#\22\2\u1c55\u1c56"+ + "\5\21\t\2\u1c56\u1c57\5\17\b\2\u1c57\u1c58\7a\2\2\u1c58\u1c59\5/\30\2"+ + "\u1c59\u1c5a\59\35\2\u1c5a\u1c5b\5\'\24\2\u1c5b\u1c5c\5\21\t\2\u1c5c\u1c5d"+ + "\7a\2\2\u1c5d\u1c5e\5\r\7\2\u1c5e\u1c5f\5%\23\2\u1c5f\u1c60\5\17\b\2\u1c60"+ + "\u1c61\5\21\t\2\u1c61\u051c\3\2\2\2\u1c62\u1c63\5\61\31\2\u1c63\u1c64"+ + "\5-\27\2\u1c64\u1c65\5\21\t\2\u1c65\u1c66\5+\26\2\u1c66\u1c67\7a\2\2\u1c67"+ + "\u1c68\5\17\b\2\u1c68\u1c69\5\21\t\2\u1c69\u1c6a\5\23\n\2\u1c6a\u1c6b"+ + "\5\31\r\2\u1c6b\u1c6c\5#\22\2\u1c6c\u1c6d\5\21\t\2\u1c6d\u1c6e\5\17\b"+ + "\2\u1c6e\u1c6f\7a\2\2\u1c6f\u1c70\5/\30\2\u1c70\u1c71\59\35\2\u1c71\u1c72"+ + "\5\'\24\2\u1c72\u1c73\5\21\t\2\u1c73\u1c74\7a\2\2\u1c74\u1c75\5#\22\2"+ + "\u1c75\u1c76\5\t\5\2\u1c76\u1c77\5!\21\2\u1c77\u1c78\5\21\t\2\u1c78\u051e"+ + "\3\2\2\2\u1c79\u1c7a\5\61\31\2\u1c7a\u1c7b\5-\27\2\u1c7b\u1c7c\5\21\t"+ + "\2\u1c7c\u1c7d\5+\26\2\u1c7d\u1c7e\7a\2\2\u1c7e\u1c7f\5\17\b\2\u1c7f\u1c80"+ + "\5\21\t\2\u1c80\u1c81\5\23\n\2\u1c81\u1c82\5\31\r\2\u1c82\u1c83\5#\22"+ + "\2\u1c83\u1c84\5\21\t\2\u1c84\u1c85\5\17\b\2\u1c85\u1c86\7a\2\2\u1c86"+ + "\u1c87\5/\30\2\u1c87\u1c88\59\35\2\u1c88\u1c89\5\'\24\2\u1c89\u1c8a\5"+ + "\21\t\2\u1c8a\u1c8b\7a\2\2\u1c8b\u1c8c\5-\27\2\u1c8c\u1c8d\5\r\7\2\u1c8d"+ + "\u1c8e\5\27\f\2\u1c8e\u1c8f\5\21\t\2\u1c8f\u1c90\5!\21\2\u1c90\u1c91\5"+ + "\t\5\2\u1c91\u0520\3\2\2\2\u1c92\u1c93\5\61\31\2\u1c93\u1c94\5-\27\2\u1c94"+ + "\u1c95\5\31\r\2\u1c95\u1c96\5#\22\2\u1c96\u1c97\5\25\13\2\u1c97\u0522"+ + "\3\2\2\2\u1c98\u1c99\5\63\32\2\u1c99\u1c9a\5\t\5\2\u1c9a\u1c9b\5\r\7\2"+ + "\u1c9b\u1c9c\5\61\31\2\u1c9c\u1c9d\5\61\31\2\u1c9d\u1c9e\5!\21\2\u1c9e"+ + "\u0524\3\2\2\2\u1c9f\u1ca0\5\63\32\2\u1ca0\u1ca1\5\t\5\2\u1ca1\u1ca2\5"+ + "\37\20\2\u1ca2\u1ca3\5\31\r\2\u1ca3\u1ca4\5\17\b\2\u1ca4\u0526\3\2\2\2"+ + "\u1ca5\u1ca6\5\63\32\2\u1ca6\u1ca7\5\t\5\2\u1ca7\u1ca8\5\37\20\2\u1ca8"+ + "\u1ca9\5\31\r\2\u1ca9\u1caa\5\17\b\2\u1caa\u1cab\5\t\5\2\u1cab\u1cac\5"+ + "/\30\2\u1cac\u1cad\5\21\t\2\u1cad\u0528\3\2\2\2\u1cae\u1caf\5\63\32\2"+ + "\u1caf\u1cb0\5\t\5\2\u1cb0\u1cb1\5\37\20\2\u1cb1\u1cb2\5\31\r\2\u1cb2"+ + "\u1cb3\5\17\b\2\u1cb3\u1cb4\5\t\5\2\u1cb4\u1cb5\5/\30\2\u1cb5\u1cb6\5"+ + "%\23\2\u1cb6\u1cb7\5+\26\2\u1cb7\u052a\3\2\2\2\u1cb8\u1cb9\5\63\32\2\u1cb9"+ + "\u1cba\5\t\5\2\u1cba\u1cbb\5\37\20\2\u1cbb\u1cbc\5\61\31\2\u1cbc\u1cbd"+ + "\5\21\t\2\u1cbd\u052c\3\2\2\2\u1cbe\u1cbf\5\63\32\2\u1cbf\u1cc0\5\t\5"+ + "\2\u1cc0\u1cc1\5\37\20\2\u1cc1\u1cc2\5\61\31\2\u1cc2\u1cc3\5\21\t\2\u1cc3"+ + "\u1cc4\5-\27\2\u1cc4\u052e\3\2\2\2\u1cc5\u1cc6\5\63\32\2\u1cc6\u1cc7\5"+ + "\t\5\2\u1cc7\u1cc8\5+\26\2\u1cc8\u1cc9\7a\2\2\u1cc9\u1cca\5\'\24\2\u1cca"+ + "\u1ccb\5%\23\2\u1ccb\u1ccc\5\'\24\2\u1ccc\u0530\3\2\2\2\u1ccd\u1cce\5"+ + "\63\32\2\u1cce\u1ccf\5\t\5\2\u1ccf\u1cd0\5+\26\2\u1cd0\u1cd1\7a\2\2\u1cd1"+ + "\u1cd2\5-\27\2\u1cd2\u1cd3\5\t\5\2\u1cd3\u1cd4\5!\21\2\u1cd4\u1cd5\5\'"+ + "\24\2\u1cd5\u0532\3\2\2\2\u1cd6\u1cd7\5\63\32\2\u1cd7\u1cd8\5\t\5\2\u1cd8"+ + "\u1cd9\5+\26\2\u1cd9\u1cda\5\r\7\2\u1cda\u1cdb\5\27\f\2\u1cdb\u1cdc\5"+ + "\t\5\2\u1cdc\u1cdd\5+\26\2\u1cdd\u0534\3\2\2\2\u1cde\u1cdf\5\63\32\2\u1cdf"+ + "\u1ce0\5\t\5\2\u1ce0\u1ce1\5+\26\2\u1ce1\u1ce2\5\31\r\2\u1ce2\u1ce3\5"+ + "\t\5\2\u1ce3\u1ce4\5\13\6\2\u1ce4\u1ce5\5\37\20\2\u1ce5\u1ce6\5\21\t\2"+ + "\u1ce6\u0536\3\2\2\2\u1ce7\u1ce8\5\63\32\2\u1ce8\u1ce9\5\t\5\2\u1ce9\u1cea"+ + "\5+\26\2\u1cea\u1ceb\5\31\r\2\u1ceb\u1cec\5\t\5\2\u1cec\u1ced\5\17\b\2"+ + "\u1ced\u1cee\5\31\r\2\u1cee\u1cef\5\r\7\2\u1cef\u0538\3\2\2\2\u1cf0\u1cf1"+ + "\5\63\32\2\u1cf1\u1cf2\5\t\5\2\u1cf2\u1cf3\5+\26\2\u1cf3\u1cf4\59\35\2"+ + "\u1cf4\u1cf5\5\31\r\2\u1cf5\u1cf6\5#\22\2\u1cf6\u1cf7\5\25\13\2\u1cf7"+ + "\u053a\3\2\2\2\u1cf8\u1cf9\5\63\32\2\u1cf9\u1cfa\5\21\t\2\u1cfa\u1cfb"+ + "\5+\26\2\u1cfb\u1cfc\5\13\6\2\u1cfc\u1cfd\5%\23\2\u1cfd\u1cfe\5-\27\2"+ + "\u1cfe\u1cff\5\21\t\2\u1cff\u053c\3\2\2\2\u1d00\u1d01\5\63\32\2\u1d01"+ + "\u1d02\5\31\r\2\u1d02\u1d03\5\21\t\2\u1d03\u1d04\5\65\33\2\u1d04\u053e"+ + "\3\2\2\2\u1d05\u1d06\5\63\32\2\u1d06\u1d07\5%\23\2\u1d07\u1d08\5\37\20"+ + "\2\u1d08\u1d09\5\t\5\2\u1d09\u1d0a\5/\30\2\u1d0a\u1d0b\5\31\r\2\u1d0b"+ + "\u1d0c\5\37\20\2\u1d0c\u1d0d\5\21\t\2\u1d0d\u0540\3\2\2\2\u1d0e\u1d0f"+ + "\5\65\33\2\u1d0f\u1d10\5\27\f\2\u1d10\u1d11\5\21\t\2\u1d11\u1d12\5#\22"+ + "\2\u1d12\u0542\3\2\2\2\u1d13\u1d14\5\65\33\2\u1d14\u1d15\5\27\f\2\u1d15"+ + "\u1d16\5\21\t\2\u1d16\u1d17\5#\22\2\u1d17\u1d18\5\21\t\2\u1d18\u1d19\5"+ + "\63\32\2\u1d19\u1d1a\5\21\t\2\u1d1a\u1d1b\5+\26\2\u1d1b\u0544\3\2\2\2"+ + "\u1d1c\u1d1d\5\65\33\2\u1d1d\u1d1e\5\27\f\2\u1d1e\u1d1f\5\21\t\2\u1d1f"+ + "\u1d20\5+\26\2\u1d20\u1d21\5\21\t\2\u1d21\u0546\3\2\2\2\u1d22\u1d23\5"+ + "\65\33\2\u1d23\u1d24\5\31\r\2\u1d24\u1d25\5\17\b\2\u1d25\u1d26\5/\30\2"+ + "\u1d26\u1d27\5\27\f\2\u1d27\u1d28\7a\2\2\u1d28\u1d29\5\13\6\2\u1d29\u1d2a"+ + "\5\61\31\2\u1d2a\u1d2b\5\r\7\2\u1d2b\u1d2c\5\35\17\2\u1d2c\u1d2d\5\21"+ + "\t\2\u1d2d\u1d2e\5/\30\2\u1d2e\u0548\3\2\2\2\u1d2f\u1d30\5\65\33\2\u1d30"+ + "\u1d31\5\31\r\2\u1d31\u1d32\5#\22\2\u1d32\u1d33\5\17\b\2\u1d33\u1d34\5"+ + "%\23\2\u1d34\u1d35\5\65\33\2\u1d35\u054a\3\2\2\2\u1d36\u1d37\5\65\33\2"+ + "\u1d37\u1d38\5\31\r\2\u1d38\u1d39\5/\30\2\u1d39\u1d3a\5\27\f\2\u1d3a\u054c"+ + "\3\2\2\2\u1d3b\u1d3c\5\65\33\2\u1d3c\u1d3d\5\31\r\2\u1d3d\u1d3e\5/\30"+ + "\2\u1d3e\u1d3f\5\27\f\2\u1d3f\u1d40\5\31\r\2\u1d40\u1d41\5#\22\2\u1d41"+ + "\u054e\3\2\2\2\u1d42\u1d43\5\65\33\2\u1d43\u1d44\5\31\r\2\u1d44\u1d45"+ + "\5/\30\2\u1d45\u1d46\5\27\f\2\u1d46\u1d47\5%\23\2\u1d47\u1d48\5\61\31"+ + "\2\u1d48\u1d49\5/\30\2\u1d49\u0550\3\2\2\2\u1d4a\u1d4b\5\65\33\2\u1d4b"+ + "\u1d4c\5%\23\2\u1d4c\u1d4d\5+\26\2\u1d4d\u1d4e\5\35\17\2\u1d4e\u0552\3"+ + "\2\2\2\u1d4f\u1d50\5\65\33\2\u1d50\u1d51\5+\26\2\u1d51\u1d52\5\31\r\2"+ + "\u1d52\u1d53\5/\30\2\u1d53\u1d54\5\21\t\2\u1d54\u0554\3\2\2\2\u1d55\u1d56"+ + "\59\35\2\u1d56\u1d57\5\t\5\2\u1d57\u1d58\5!\21\2\u1d58\u1d59\5\37\20\2"+ + "\u1d59\u0556\3\2\2\2\u1d5a\u1d5b\59\35\2\u1d5b\u1d5c\5\21\t\2\u1d5c\u1d5d"+ + "\5\t\5\2\u1d5d\u1d5e\5+\26\2\u1d5e\u0558\3\2\2\2\u1d5f\u1d60\59\35\2\u1d60"+ + "\u1d61\5\21\t\2\u1d61\u1d62\5-\27\2\u1d62\u055a\3\2\2\2\u1d63\u1d64\5"+ + ";\36\2\u1d64\u1d65\5%\23\2\u1d65\u1d66\5#\22\2\u1d66\u1d67\5\21\t\2\u1d67"+ + "\u055c\3\2\2\2\u1d68\u1d69\5-\27\2\u1d69\u1d6a\5\61\31\2\u1d6a\u1d6b\5"+ + "\'\24\2\u1d6b\u1d6c\5\21\t\2\u1d6c\u1d6d\5+\26\2\u1d6d\u1d6e\5\61\31\2"+ + "\u1d6e\u1d6f\5-\27\2\u1d6f\u1d70\5\21\t\2\u1d70\u1d71\5+\26\2\u1d71\u055e"+ + "\3\2\2\2\u1d72\u1d73\5#\22\2\u1d73\u1d74\5%\23\2\u1d74\u1d75\5-\27\2\u1d75"+ + "\u1d76\5\61\31\2\u1d76\u1d77\5\'\24\2\u1d77\u1d78\5\21\t\2\u1d78\u1d79"+ + "\5+\26\2\u1d79\u1d7a\5\61\31\2\u1d7a\u1d7b\5-\27\2\u1d7b\u1d7c\5\21\t"+ + "\2\u1d7c\u1d7d\5+\26\2\u1d7d\u0560\3\2\2\2\u1d7e\u1d7f\5\r\7\2\u1d7f\u1d80"+ + "\5+\26\2\u1d80\u1d81\5\21\t\2\u1d81\u1d82\5\t\5\2\u1d82\u1d83\5/\30\2"+ + "\u1d83\u1d84\5\21\t\2\u1d84\u1d85\5+\26\2\u1d85\u1d86\5%\23\2\u1d86\u1d87"+ + "\5\37\20\2\u1d87\u1d88\5\21\t\2\u1d88\u0562\3\2\2\2\u1d89\u1d8a\5#\22"+ + "\2\u1d8a\u1d8b\5%\23\2\u1d8b\u1d8c\5\r\7\2\u1d8c\u1d8d\5+\26\2\u1d8d\u1d8e"+ + "\5\21\t\2\u1d8e\u1d8f\5\t\5\2\u1d8f\u1d90\5/\30\2\u1d90\u1d91\5\21\t\2"+ + "\u1d91\u1d92\5+\26\2\u1d92\u1d93\5%\23\2\u1d93\u1d94\5\37\20\2\u1d94\u1d95"+ + "\5\21\t\2\u1d95\u0564\3\2\2\2\u1d96\u1d97\5\31\r\2\u1d97\u1d98\5#\22\2"+ + "\u1d98\u1d99\5\27\f\2\u1d99\u1d9a\5\21\t\2\u1d9a\u1d9b\5+\26\2\u1d9b\u1d9c"+ + "\5\31\r\2\u1d9c\u1d9d\5/\30\2\u1d9d\u0566\3\2\2\2\u1d9e\u1d9f\5#\22\2"+ + "\u1d9f\u1da0\5%\23\2\u1da0\u1da1\5\31\r\2\u1da1\u1da2\5#\22\2\u1da2\u1da3"+ + "\5\27\f\2\u1da3\u1da4\5\21\t\2\u1da4\u1da5\5+\26\2\u1da5\u1da6\5\31\r"+ + "\2\u1da6\u1da7\5/\30\2\u1da7\u0568\3\2\2\2\u1da8\u1da9\5\37\20\2\u1da9"+ + "\u1daa\5%\23\2\u1daa\u1dab\5\25\13\2\u1dab\u1dac\5\31\r\2\u1dac\u1dad"+ + "\5#\22\2\u1dad\u056a\3\2\2\2\u1dae\u1daf\5#\22\2\u1daf\u1db0\5%\23\2\u1db0"+ + "\u1db1\5\37\20\2\u1db1\u1db2\5%\23\2\u1db2\u1db3\5\25\13\2\u1db3\u1db4"+ + "\5\31\r\2\u1db4\u1db5\5#\22\2\u1db5\u056c\3\2\2\2\u1db6\u1db7\5+\26\2"+ + "\u1db7\u1db8\5\21\t\2\u1db8\u1db9\5\'\24\2\u1db9\u1dba\5\37\20\2\u1dba"+ + "\u1dbb\5\31\r\2\u1dbb\u1dbc\5\r\7\2\u1dbc\u1dbd\5\t\5\2\u1dbd\u1dbe\5"+ + "/\30\2\u1dbe\u1dbf\5\31\r\2\u1dbf\u1dc0\5%\23\2\u1dc0\u1dc1\5#\22\2\u1dc1"+ + "\u056e\3\2\2\2\u1dc2\u1dc3\5#\22\2\u1dc3\u1dc4\5%\23\2\u1dc4\u1dc5\5+"+ + "\26\2\u1dc5\u1dc6\5\21\t\2\u1dc6\u1dc7\5\'\24\2\u1dc7\u1dc8\5\37\20\2"+ + "\u1dc8\u1dc9\5\31\r\2\u1dc9\u1dca\5\r\7\2\u1dca\u1dcb\5\t\5\2\u1dcb\u1dcc"+ + "\5/\30\2\u1dcc\u1dcd\5\31\r\2\u1dcd\u1dce\5%\23\2\u1dce\u1dcf\5#\22\2"+ + "\u1dcf\u0570\3\2\2\2\u1dd0\u1dd1\5\13\6\2\u1dd1\u1dd2\59\35\2\u1dd2\u1dd3"+ + "\5\'\24\2\u1dd3\u1dd4\5\t\5\2\u1dd4\u1dd5\5-\27\2\u1dd5\u1dd6\5-\27\2"+ + "\u1dd6\u1dd7\5+\26\2\u1dd7\u1dd8\5\37\20\2\u1dd8\u1dd9\5-\27\2\u1dd9\u0572"+ + "\3\2\2\2\u1dda\u1ddb\5#\22\2\u1ddb\u1ddc\5%\23\2\u1ddc\u1ddd\5\13\6\2"+ + "\u1ddd\u1dde\59\35\2\u1dde\u1ddf\5\'\24\2\u1ddf\u1de0\5\t\5\2\u1de0\u1de1"+ + "\5-\27\2\u1de1\u1de2\5-\27\2\u1de2\u1de3\5+\26\2\u1de3\u1de4\5\37\20\2"+ + "\u1de4\u1de5\5-\27\2\u1de5\u0574\3\2\2\2\u1de6\u1de7\5-\27\2\u1de7\u1de8"+ + "\5\23\n\2\u1de8\u1de9\5\61\31\2\u1de9\u1dea\5#\22\2\u1dea\u1deb\5\r\7"+ + "\2\u1deb\u0576\3\2\2\2\u1dec\u1ded\5-\27\2\u1ded\u1dee\5/\30\2\u1dee\u1def"+ + "\59\35\2\u1def\u1df0\5\'\24\2\u1df0\u1df1\5\21\t\2\u1df1\u0578\3\2\2\2"+ + "\u1df2\u1df3\5-\27\2\u1df3\u1df4\5-\27\2\u1df4\u1df5\5\'\24\2\u1df5\u1df6"+ + "\5\t\5\2\u1df6\u1df7\5\r\7\2\u1df7\u1df8\5\21\t\2\u1df8\u057a\3\2\2\2"+ + "\u1df9\u1dfa\5\23\n\2\u1dfa\u1dfb\5\31\r\2\u1dfb\u1dfc\5#\22\2\u1dfc\u1dfd"+ + "\5\t\5\2\u1dfd\u1dfe\5\37\20\2\u1dfe\u1dff\5\23\n\2\u1dff\u1e00\5\61\31"+ + "\2\u1e00\u1e01\5#\22\2\u1e01\u1e02\5\r\7\2\u1e02\u057c\3\2\2\2\u1e03\u1e04"+ + "\5\23\n\2\u1e04\u1e05\5\31\r\2\u1e05\u1e06\5#\22\2\u1e06\u1e07\5\t\5\2"+ + "\u1e07\u1e08\5\37\20\2\u1e08\u1e09\5\23\n\2\u1e09\u1e0a\5\61\31\2\u1e0a"+ + "\u1e0b\5#\22\2\u1e0b\u1e0c\5\r\7\2\u1e0c\u1e0d\7a\2\2\u1e0d\u1e0e\5\21"+ + "\t\2\u1e0e\u1e0f\5\67\34\2\u1e0f\u1e10\5/\30\2\u1e10\u1e11\5+\26\2\u1e11"+ + "\u1e12\5\t\5\2\u1e12\u057e\3\2\2\2\u1e13\u1e14\5\r\7\2\u1e14\u1e15\5%"+ + "\23\2\u1e15\u1e16\5!\21\2\u1e16\u1e17\5\13\6\2\u1e17\u1e18\5\31\r\2\u1e18"+ + "\u1e19\5#\22\2\u1e19\u1e1a\5\21\t\2\u1e1a\u1e1b\5\23\n\2\u1e1b\u1e1c\5"+ + "\61\31\2\u1e1c\u1e1d\5#\22\2\u1e1d\u1e1e\5\r\7\2\u1e1e\u0580\3\2\2\2\u1e1f"+ + "\u1e20\5-\27\2\u1e20\u1e21\5\21\t\2\u1e21\u1e22\5+\26\2\u1e22\u1e23\5"+ + "\31\r\2\u1e23\u1e24\5\t\5\2\u1e24\u1e25\5\37\20\2\u1e25\u1e26\5\23\n\2"+ + "\u1e26\u1e27\5\61\31\2\u1e27\u1e28\5"; + private static final String _serializedATNSegment3 = + "#\22\2\u1e28\u1e29\5\r\7\2\u1e29\u0582\3\2\2\2\u1e2a\u1e2b\5\17\b\2\u1e2b"+ + "\u1e2c\5\21\t\2\u1e2c\u1e2d\5-\27\2\u1e2d\u1e2e\5\21\t\2\u1e2e\u1e2f\5"+ + "+\26\2\u1e2f\u1e30\5\31\r\2\u1e30\u1e31\5\t\5\2\u1e31\u1e32\5\37\20\2"+ + "\u1e32\u1e33\5\23\n\2\u1e33\u1e34\5\61\31\2\u1e34\u1e35\5#\22\2\u1e35"+ + "\u1e36\5\r\7\2\u1e36\u0584\3\2\2\2\u1e37\u1e38\5\31\r\2\u1e38\u1e39\5"+ + "#\22\2\u1e39\u1e3a\5\31\r\2\u1e3a\u1e3b\5/\30\2\u1e3b\u1e3c\5\r\7\2\u1e3c"+ + "\u1e3d\5%\23\2\u1e3d\u1e3e\5#\22\2\u1e3e\u1e3f\5\17\b\2\u1e3f\u0586\3"+ + "\2\2\2\u1e40\u1e41\5!\21\2\u1e41\u1e42\5-\27\2\u1e42\u1e43\5\23\n\2\u1e43"+ + "\u1e44\5\61\31\2\u1e44\u1e45\5#\22\2\u1e45\u1e46\5\r\7\2\u1e46\u0588\3"+ + "\2\2\2\u1e47\u1e48\5!\21\2\u1e48\u1e49\5\31\r\2\u1e49\u1e4a\5#\22\2\u1e4a"+ + "\u1e4b\5\63\32\2\u1e4b\u1e4c\5\23\n\2\u1e4c\u1e4d\5\61\31\2\u1e4d\u1e4e"+ + "\5#\22\2\u1e4e\u1e4f\5\r\7\2\u1e4f\u058a\3\2\2\2\u1e50\u1e51\5!\21\2\u1e51"+ + "\u1e52\5-\27\2\u1e52\u1e53\5/\30\2\u1e53\u1e54\59\35\2\u1e54\u1e55\5\'"+ + "\24\2\u1e55\u1e56\5\21\t\2\u1e56\u058c\3\2\2\2\u1e57\u1e58\5!\21\2\u1e58"+ + "\u1e59\5-\27\2\u1e59\u1e5a\5-\27\2\u1e5a\u1e5b\5\'\24\2\u1e5b\u1e5c\5"+ + "\t\5\2\u1e5c\u1e5d\5\r\7\2\u1e5d\u1e5e\5\21\t\2\u1e5e\u058e\3\2\2\2\u1e5f"+ + "\u1e60\5!\21\2\u1e60\u1e61\5\23\n\2\u1e61\u1e62\5\31\r\2\u1e62\u1e63\5"+ + "#\22\2\u1e63\u1e64\5\t\5\2\u1e64\u1e65\5\37\20\2\u1e65\u1e66\5\23\n\2"+ + "\u1e66\u1e67\5\61\31\2\u1e67\u1e68\5#\22\2\u1e68\u1e69\5\r\7\2\u1e69\u0590"+ + "\3\2\2\2\u1e6a\u1e6b\5!\21\2\u1e6b\u1e6c\5\23\n\2\u1e6c\u1e6d\5\31\r\2"+ + "\u1e6d\u1e6e\5#\22\2\u1e6e\u1e6f\5\t\5\2\u1e6f\u1e70\5\37\20\2\u1e70\u1e71"+ + "\5\23\n\2\u1e71\u1e72\5\61\31\2\u1e72\u1e73\5#\22\2\u1e73\u1e74\5\r\7"+ + "\2\u1e74\u1e75\7a\2\2\u1e75\u1e76\5\21\t\2\u1e76\u1e77\5\67\34\2\u1e77"+ + "\u1e78\5/\30\2\u1e78\u1e79\5+\26\2\u1e79\u1e7a\5\t\5\2\u1e7a\u0592\3\2"+ + "\2\2\u1e7b\u1e7c\5!\21\2\u1e7c\u1e7d\5\31\r\2\u1e7d\u1e7e\5#\22\2\u1e7e"+ + "\u1e7f\5\31\r\2\u1e7f\u1e80\5/\30\2\u1e80\u1e81\5\r\7\2\u1e81\u1e82\5"+ + "%\23\2\u1e82\u1e83\5#\22\2\u1e83\u1e84\5\17\b\2\u1e84\u0594\3\2\2\2\u1e85"+ + "\u1e86\5-\27\2\u1e86\u1e87\5%\23\2\u1e87\u1e88\5+\26\2\u1e88\u1e89\5/"+ + "\30\2\u1e89\u1e8a\5%\23\2\u1e8a\u1e8b\5\'\24\2\u1e8b\u0596\3\2\2\2\u1e8c"+ + "\u1e8d\5\'\24\2\u1e8d\u1e8e\5\t\5\2\u1e8e\u1e8f\5+\26\2\u1e8f\u1e90\5"+ + "\t\5\2\u1e90\u1e91\5\37\20\2\u1e91\u1e92\5\37\20\2\u1e92\u1e93\5\21\t"+ + "\2\u1e93\u1e94\5\37\20\2\u1e94\u0598\3\2\2\2\u1e95\u1e96\5\27\f\2\u1e96"+ + "\u1e97\59\35\2\u1e97\u1e98\5\'\24\2\u1e98\u1e99\5%\23\2\u1e99\u1e9a\5"+ + "/\30\2\u1e9a\u1e9b\5\27\f\2\u1e9b\u1e9c\5\21\t\2\u1e9c\u1e9d\5/\30\2\u1e9d"+ + "\u1e9e\5\31\r\2\u1e9e\u1e9f\5\r\7\2\u1e9f\u1ea0\5\t\5\2\u1ea0\u1ea1\5"+ + "\37\20\2\u1ea1\u059a\3\2\2\2\u1ea2\u1ea3\5-\27\2\u1ea3\u1ea4\5\t\5\2\u1ea4"+ + "\u1ea5\5\23\n\2\u1ea5\u1ea6\5\21\t\2\u1ea6\u059c\3\2\2\2\u1ea7\u1ea8\5"+ + "\61\31\2\u1ea8\u1ea9\5#\22\2\u1ea9\u1eaa\5-\27\2\u1eaa\u1eab\5\t\5\2\u1eab"+ + "\u1eac\5\23\n\2\u1eac\u1ead\5\21\t\2\u1ead\u059e\3\2\2\2\u1eae\u1eaf\5"+ + "\13\6\2\u1eaf\u1eb0\5\t\5\2\u1eb0\u1eb1\5-\27\2\u1eb1\u1eb2\5\21\t\2\u1eb2"+ + "\u1eb3\5/\30\2\u1eb3\u1eb4\59\35\2\u1eb4\u1eb5\5\'\24\2\u1eb5\u1eb6\5"+ + "\21\t\2\u1eb6\u05a0\3\2\2\2\u1eb7\u1eb8\5\31\r\2\u1eb8\u1eb9\5\23\n\2"+ + "\u1eb9\u05a2\3\2\2\2\u1eba\u1ebb\5\37\20\2\u1ebb\u1ebc\5%\23\2\u1ebc\u1ebd"+ + "\5\r\7\2\u1ebd\u1ebe\5\t\5\2\u1ebe\u1ebf\5\37\20\2\u1ebf\u1ec0\5\21\t"+ + "\2\u1ec0\u05a4\3\2\2\2\u1ec1\u1ec2\5\37\20\2\u1ec2\u1ec3\5\r\7\2\u1ec3"+ + "\u1ec4\7a\2\2\u1ec4\u1ec5\5\r\7\2\u1ec5\u1ec6\5%\23\2\u1ec6\u1ec7\5\37"+ + "\20\2\u1ec7\u1ec8\5\37\20\2\u1ec8\u1ec9\5\t\5\2\u1ec9\u1eca\5/\30\2\u1eca"+ + "\u1ecb\5\21\t\2\u1ecb\u05a6\3\2\2\2\u1ecc\u1ecd\5\37\20\2\u1ecd\u1ece"+ + "\5\r\7\2\u1ece\u1ecf\7a\2\2\u1ecf\u1ed0\5\r\7\2\u1ed0\u1ed1\5/\30\2\u1ed1"+ + "\u1ed2\59\35\2\u1ed2\u1ed3\5\'\24\2\u1ed3\u1ed4\5\21\t\2\u1ed4\u05a8\3"+ + "\2\2\2\u1ed5\u1ed6\5\'\24\2\u1ed6\u1ed7\5+\26\2\u1ed7\u1ed8\5%\23\2\u1ed8"+ + "\u1ed9\5\63\32\2\u1ed9\u1eda\5\31\r\2\u1eda\u1edb\5\17\b\2\u1edb\u1edc"+ + "\5\21\t\2\u1edc\u1edd\5+\26\2\u1edd\u05aa\3\2\2\2\u1ede\u1edf\5\63\32"+ + "\2\u1edf\u1ee0\5\21\t\2\u1ee0\u1ee1\5+\26\2\u1ee1\u1ee2\5-\27\2\u1ee2"+ + "\u1ee3\5\31\r\2\u1ee3\u1ee4\5%\23\2\u1ee4\u1ee5\5#\22\2\u1ee5\u05ac\3"+ + "\2\2\2\u1ee6\u1ee7\5\t\5\2\u1ee7\u1ee8\5\37\20\2\u1ee8\u1ee9\5\37\20\2"+ + "\u1ee9\u1eea\5%\23\2\u1eea\u1eeb\5\65\33\2\u1eeb\u1eec\7a\2\2\u1eec\u1eed"+ + "\5\r\7\2\u1eed\u1eee\5%\23\2\u1eee\u1eef\5#\22\2\u1eef\u1ef0\5#\22\2\u1ef0"+ + "\u1ef1\5\21\t\2\u1ef1\u1ef2\5\r\7\2\u1ef2\u1ef3\5/\30\2\u1ef3\u1ef4\5"+ + "\31\r\2\u1ef4\u1ef5\5%\23\2\u1ef5\u1ef6\5#\22\2\u1ef6\u1ef7\5-\27\2\u1ef7"+ + "\u05ae\3\2\2\2\u1ef8\u1ef9\5\31\r\2\u1ef9\u1efa\5-\27\2\u1efa\u1efb\7"+ + "a\2\2\u1efb\u1efc\5/\30\2\u1efc\u1efd\5\21\t\2\u1efd\u1efe\5!\21\2\u1efe"+ + "\u1eff\5\'\24\2\u1eff\u1f00\5\37\20\2\u1f00\u1f01\5\t\5\2\u1f01\u1f02"+ + "\5/\30\2\u1f02\u1f03\5\21\t\2\u1f03\u05b0\3\2\2\2\u1f04\u1f05\5\21\t\2"+ + "\u1f05\u1f06\5\63\32\2\u1f06\u1f07\5\21\t\2\u1f07\u1f08\5#\22\2\u1f08"+ + "\u1f09\5/\30\2\u1f09\u05b2\3\2\2\2\u1f0a\u1f0b\5\65\33\2\u1f0b\u1f0c\5"+ + "+\26\2\u1f0c\u1f0d\5\t\5\2\u1f0d\u1f0e\5\'\24\2\u1f0e\u1f0f\5\'\24\2\u1f0f"+ + "\u1f10\5\21\t\2\u1f10\u1f11\5+\26\2\u1f11\u05b4\3\2\2\2\u1f12\u1f13\5"+ + "-\27\2\u1f13\u1f14\5\21\t\2\u1f14\u1f15\5+\26\2\u1f15\u1f16\5\63\32\2"+ + "\u1f16\u1f17\5\21\t\2\u1f17\u1f18\5+\26\2\u1f18\u05b6\3\2\2\2\u1f19\u1f1a"+ + "\5\13\6\2\u1f1a\u1f1b\5/\30\2\u1f1b\u1f1c\5+\26\2\u1f1c\u1f1d\5\21\t\2"+ + "\u1f1d\u1f1e\5\21\t\2\u1f1e\u05b8\3\2\2\2\u1f1f\u1f20\5\27\f\2\u1f20\u1f21"+ + "\5\t\5\2\u1f21\u1f22\5-\27\2\u1f22\u1f23\5\27\f\2\u1f23\u05ba\3\2\2\2"+ + "\u1f24\u1f25\5\25\13\2\u1f25\u1f26\5\31\r\2\u1f26\u1f27\5-\27\2\u1f27"+ + "\u1f28\5/\30\2\u1f28\u05bc\3\2\2\2\u1f29\u1f2a\5-\27\2\u1f2a\u1f2b\5\'"+ + "\24\2\u1f2b\u1f2c\5\25\13\2\u1f2c\u1f2d\5\31\r\2\u1f2d\u1f2e\5-\27\2\u1f2e"+ + "\u1f2f\5/\30\2\u1f2f\u05be\3\2\2\2\u1f30\u1f31\5\25\13\2\u1f31\u1f32\5"+ + "\31\r\2\u1f32\u1f33\5#\22\2\u1f33\u05c0\3\2\2\2\u1f34\u1f35\5\13\6\2\u1f35"+ + "\u1f36\5+\26\2\u1f36\u1f37\5\31\r\2\u1f37\u1f38\5#\22\2\u1f38\u05c2\3"+ + "\2\2\2\u1f39\u1f3a\5\r\7\2\u1f3a\u1f3b\5%\23\2\u1f3b\u1f3c\5#\22\2\u1f3c"+ + "\u1f3d\5\r\7\2\u1f3d\u1f3e\5\61\31\2\u1f3e\u1f3f\5+\26\2\u1f3f\u1f40\5"+ + "+\26\2\u1f40\u1f41\5\21\t\2\u1f41\u1f42\5#\22\2\u1f42\u1f43\5/\30\2\u1f43"+ + "\u1f44\5\37\20\2\u1f44\u1f45\59\35\2\u1f45\u05c4\3\2\2\2\u1f46\u1f47\5"+ + "\31\r\2\u1f47\u1f48\5#\22\2\u1f48\u1f49\5\37\20\2\u1f49\u1f4a\5\31\r\2"+ + "\u1f4a\u1f4b\5#\22\2\u1f4b\u1f4c\5\21\t\2\u1f4c\u05c6\3\2\2\2\u1f4d\u1f4e"+ + "\5!\21\2\u1f4e\u1f4f\5\t\5\2\u1f4f\u1f50\5/\30\2\u1f50\u1f51\5\21\t\2"+ + "\u1f51\u1f52\5+\26\2\u1f52\u1f53\5\31\r\2\u1f53\u1f54\5\t\5\2\u1f54\u1f55"+ + "\5\37\20\2\u1f55\u1f56\5\31\r\2\u1f56\u1f57\5;\36\2\u1f57\u1f58\5\21\t"+ + "\2\u1f58\u1f59\5\17\b\2\u1f59\u05c8\3\2\2\2\u1f5a\u1f5b\5\37\20\2\u1f5b"+ + "\u1f5c\5\21\t\2\u1f5c\u1f5d\5\23\n\2\u1f5d\u1f5e\5/\30\2\u1f5e\u1f5f\5"+ + "\t\5\2\u1f5f\u1f60\5+\26\2\u1f60\u1f61\5\25\13\2\u1f61\u05ca\3\2\2\2\u1f62"+ + "\u1f63\5+\26\2\u1f63\u1f64\5\31\r\2\u1f64\u1f65\5\25\13\2\u1f65\u1f66"+ + "\5\27\f\2\u1f66\u1f67\5/\30\2\u1f67\u1f68\5\t\5\2\u1f68\u1f69\5+\26\2"+ + "\u1f69\u1f6a\5\25\13\2\u1f6a\u05cc\3\2\2\2\u1f6b\u1f6c\5\r\7\2\u1f6c\u1f6d"+ + "\5%\23\2\u1f6d\u1f6e\5!\21\2\u1f6e\u1f6f\5!\21\2\u1f6f\u1f70\5\61\31\2"+ + "\u1f70\u1f71\5/\30\2\u1f71\u1f72\5\t\5\2\u1f72\u1f73\5/\30\2\u1f73\u1f74"+ + "\5%\23\2\u1f74\u1f75\5+\26\2\u1f75\u05ce\3\2\2\2\u1f76\u1f77\5#\22\2\u1f77"+ + "\u1f78\5\21\t\2\u1f78\u1f79\5\25\13\2\u1f79\u1f7a\5\t\5\2\u1f7a\u1f7b"+ + "\5/\30\2\u1f7b\u1f7c\5%\23\2\u1f7c\u1f7d\5+\26\2\u1f7d\u05d0\3\2\2\2\u1f7e"+ + "\u1f7f\5\27\f\2\u1f7f\u1f80\5\t\5\2\u1f80\u1f81\5-\27\2\u1f81\u1f82\5"+ + "\27\f\2\u1f82\u1f83\5\21\t\2\u1f83\u1f84\5-\27\2\u1f84\u05d2\3\2\2\2\u1f85"+ + "\u1f86\5!\21\2\u1f86\u1f87\5\21\t\2\u1f87\u1f88\5+\26\2\u1f88\u1f89\5"+ + "\25\13\2\u1f89\u1f8a\5\21\t\2\u1f8a\u1f8b\5-\27\2\u1f8b\u05d4\3\2\2\2"+ + "\u1f8c\u1f8d\5\23\n\2\u1f8d\u1f8e\5\t\5\2\u1f8e\u1f8f\5!\21\2\u1f8f\u1f90"+ + "\5\31\r\2\u1f90\u1f91\5\37\20\2\u1f91\u1f92\59\35\2\u1f92\u05d6\3\2\2"+ + "\2\u1f93\u1f94\5\'\24\2\u1f94\u1f95\5%\23\2\u1f95\u1f96\5\37\20\2\u1f96"+ + "\u1f97\5\31\r\2\u1f97\u1f98\5\r\7\2\u1f98\u1f99\59\35\2\u1f99\u05d8\3"+ + "\2\2\2\u1f9a\u1f9b\5%\23\2\u1f9b\u1f9c\5\65\33\2\u1f9c\u1f9d\5#\22\2\u1f9d"+ + "\u1f9e\5\21\t\2\u1f9e\u1f9f\5\17\b\2\u1f9f\u05da\3\2\2\2\u1fa0\u1fa1\5"+ + "\t\5\2\u1fa1\u1fa2\5\13\6\2\u1fa2\u1fa3\5-\27\2\u1fa3\u1fa4\5/\30\2\u1fa4"+ + "\u1fa5\5\31\r\2\u1fa5\u1fa6\5!\21\2\u1fa6\u1fa7\5\21\t\2\u1fa7\u05dc\3"+ + "\2\2\2\u1fa8\u1fa9\5\13\6\2\u1fa9\u1faa\5\31\r\2\u1faa\u1fab\5\25\13\2"+ + "\u1fab\u1fac\5-\27\2\u1fac\u1fad\5\21\t\2\u1fad\u1fae\5+\26\2\u1fae\u1faf"+ + "\5\31\r\2\u1faf\u1fb0\5\t\5\2\u1fb0\u1fb1\5\37\20\2\u1fb1\u05de\3\2\2"+ + "\2\u1fb2\u1fb3\5\13\6\2\u1fb3\u1fb4\5\31\r\2\u1fb4\u1fb5\5/\30\2\u1fb5"+ + "\u1fb6\7\"\2\2\u1fb6\u1fb7\5\63\32\2\u1fb7\u1fb8\5\t\5\2\u1fb8\u1fb9\5"+ + "+\26\2\u1fb9\u1fba\59\35\2\u1fba\u1fbb\5\31\r\2\u1fbb\u1fbc\5#\22\2\u1fbc"+ + "\u1fbd\5\25\13\2\u1fbd\u05e0\3\2\2\2\u1fbe\u1fbf\5\13\6\2\u1fbf\u1fc0"+ + "\5%\23\2\u1fc0\u1fc1\5%\23\2\u1fc1\u1fc2\5\37\20\2\u1fc2\u05e2\3\2\2\2"+ + "\u1fc3\u1fc4\5\13\6\2\u1fc4\u1fc5\5%\23\2\u1fc5\u1fc6\5\67\34\2\u1fc6"+ + "\u05e4\3\2\2\2\u1fc7\u1fc8\5\13\6\2\u1fc8\u1fc9\59\35\2\u1fc9\u1fca\5"+ + "/\30\2\u1fca\u1fcb\5\21\t\2\u1fcb\u1fcc\5\t\5\2\u1fcc\u05e6\3\2\2\2\u1fcd"+ + "\u1fce\5\r\7\2\u1fce\u1fcf\5\27\f\2\u1fcf\u1fd0\5\t\5\2\u1fd0\u1fd1\5"+ + "+\26\2\u1fd1\u1fd2\5\t\5\2\u1fd2\u1fd3\5\r\7\2\u1fd3\u1fd4\5/\30\2\u1fd4"+ + "\u1fd5\5\21\t\2\u1fd5\u1fd6\5+\26\2\u1fd6\u1fd7\7\"\2\2\u1fd7\u1fd8\5"+ + "\63\32\2\u1fd8\u1fd9\5\t\5\2\u1fd9\u1fda\5+\26\2\u1fda\u1fdb\59\35\2\u1fdb"+ + "\u1fdc\5\31\r\2\u1fdc\u1fdd\5#\22\2\u1fdd\u1fde\5\25\13\2\u1fde\u05e8"+ + "\3\2\2\2\u1fdf\u1fe0\5\r\7\2\u1fe0\u1fe1\5\31\r\2\u1fe1\u1fe2\5\17\b\2"+ + "\u1fe2\u1fe3\5+\26\2\u1fe3\u05ea\3\2\2\2\u1fe4\u1fe5\5\r\7\2\u1fe5\u1fe6"+ + "\5\31\r\2\u1fe6\u1fe7\5+\26\2\u1fe7\u1fe8\5\r\7\2\u1fe8\u1fe9\5\37\20"+ + "\2\u1fe9\u1fea\5\21\t\2\u1fea\u05ec\3\2\2\2\u1feb\u1fec\5\23\n\2\u1fec"+ + "\u1fed\5\37\20\2\u1fed\u1fee\5%\23\2\u1fee\u1fef\5\t\5\2\u1fef\u1ff0\5"+ + "/\30\2\u1ff0\u1ff1\7\66\2\2\u1ff1\u05ee\3\2\2\2\u1ff2\u1ff3\5\23\n\2\u1ff3"+ + "\u1ff4\5\37\20\2\u1ff4\u1ff5\5%\23\2\u1ff5\u1ff6\5\t\5\2\u1ff6\u1ff7\5"+ + "/\30\2\u1ff7\u1ff8\7:\2\2\u1ff8\u05f0\3\2\2\2\u1ff9\u1ffa\5\31\r\2\u1ffa"+ + "\u1ffb\5#\22\2\u1ffb\u1ffc\5\21\t\2\u1ffc\u1ffd\5/\30\2\u1ffd\u05f2\3"+ + "\2\2\2\u1ffe\u1fff\5\31\r\2\u1fff\u2000\5#\22\2\u2000\u2001\5/\30\2\u2001"+ + "\u2002\7\64\2\2\u2002\u05f4\3\2\2\2\u2003\u2004\5\31\r\2\u2004\u2005\5"+ + "#\22\2\u2005\u2006\5/\30\2\u2006\u2007\7\66\2\2\u2007\u05f6\3\2\2\2\u2008"+ + "\u2009\5\31\r\2\u2009\u200a\5#\22\2\u200a\u200b\5/\30\2\u200b\u200c\7"+ + ":\2\2\u200c\u05f8\3\2\2\2\u200d\u200e\5\33\16\2\u200e\u200f\5-\27\2\u200f"+ + "\u2010\5%\23\2\u2010\u2011\5#\22\2\u2011\u05fa\3\2\2\2\u2012\u2013\5\33"+ + "\16\2\u2013\u2014\5-\27\2\u2014\u2015\5%\23\2\u2015\u2016\5#\22\2\u2016"+ + "\u2017\5\13\6\2\u2017\u05fc\3\2\2\2\u2018\u2019\5\37\20\2\u2019\u201a"+ + "\5\31\r\2\u201a\u201b\5#\22\2\u201b\u201c\5\21\t\2\u201c\u05fe\3\2\2\2"+ + "\u201d\u201e\5\37\20\2\u201e\u201f\5-\27\2\u201f\u2020\5\21\t\2\u2020"+ + "\u2021\5\25\13\2\u2021\u0600\3\2\2\2\u2022\u2023\5!\21\2\u2023\u2024\5"+ + "\t\5\2\u2024\u2025\5\r\7\2\u2025\u2026\5\t\5\2\u2026\u2027\5\17\b\2\u2027"+ + "\u2028\5\17\b\2\u2028\u2029\5+\26\2\u2029\u0602\3\2\2\2\u202a\u202b\5"+ + "!\21\2\u202b\u202c\5\t\5\2\u202c\u202d\5\r\7\2\u202d\u202e\5\t\5\2\u202e"+ + "\u202f\5\17\b\2\u202f\u2030\5\17\b\2\u2030\u2031\5+\26\2\u2031\u2032\7"+ + ":\2\2\u2032\u0604\3\2\2\2\u2033\u2034\5!\21\2\u2034\u2035\5%\23\2\u2035"+ + "\u2036\5#\22\2\u2036\u2037\5\21\t\2\u2037\u2038\59\35\2\u2038\u0606\3"+ + "\2\2\2\u2039\u203a\5\'\24\2\u203a\u203b\5\25\13\2\u203b\u203c\7a\2\2\u203c"+ + "\u203d\5\37\20\2\u203d\u203e\5-\27\2\u203e\u203f\5#\22\2\u203f\u0608\3"+ + "\2\2\2\u2040\u2041\5\'\24\2\u2041\u2042\5%\23\2\u2042\u2043\5\31\r\2\u2043"+ + "\u2044\5#\22\2\u2044\u2045\5/\30\2\u2045\u060a\3\2\2\2\u2046\u2047\5\'"+ + "\24\2\u2047\u2048\5%\23\2\u2048\u2049\5\37\20\2\u2049\u204a\59\35\2\u204a"+ + "\u204b\5\25\13\2\u204b\u204c\5%\23\2\u204c\u204d\5#\22\2\u204d\u060c\3"+ + "\2\2\2\u204e\u204f\5+\26\2\u204f\u2050\5\21\t\2\u2050\u2051\5\37\20\2"+ + "\u2051\u2052\5/\30\2\u2052\u2053\5\31\r\2\u2053\u2054\5!\21\2\u2054\u2055"+ + "\5\21\t\2\u2055\u060e\3\2\2\2\u2056\u2057\5-\27\2\u2057\u2058\5\21\t\2"+ + "\u2058\u2059\5+\26\2\u2059\u205a\5\31\r\2\u205a\u205b\5\t\5\2\u205b\u205c"+ + "\5\37\20\2\u205c\u0610\3\2\2\2\u205d\u205e\5-\27\2\u205e\u205f\5\21\t"+ + "\2\u205f\u2060\5+\26\2\u2060\u2061\5\31\r\2\u2061\u2062\5\t\5\2\u2062"+ + "\u2063\5\37\20\2\u2063\u2064\7\64\2\2\u2064\u0612\3\2\2\2\u2065\u2066"+ + "\5-\27\2\u2066\u2067\5\21\t\2\u2067\u2068\5+\26\2\u2068\u2069\5\31\r\2"+ + "\u2069\u206a\5\t\5\2\u206a\u206b\5\37\20\2\u206b\u206c\7\66\2\2\u206c"+ + "\u0614\3\2\2\2\u206d\u206e\5-\27\2\u206e\u206f\5\21\t\2\u206f\u2070\5"+ + "+\26\2\u2070\u2071\5\31\r\2\u2071\u2072\5\t\5\2\u2072\u2073\5\37\20\2"+ + "\u2073\u2074\7:\2\2\u2074\u0616\3\2\2\2\u2075\u2076\5-\27\2\u2076\u2077"+ + "\5!\21\2\u2077\u2078\5\t\5\2\u2078\u2079\5\37\20\2\u2079\u207a\5\37\20"+ + "\2\u207a\u207b\5-\27\2\u207b\u207c\5\21\t\2\u207c\u207d\5+\26\2\u207d"+ + "\u207e\5\31\r\2\u207e\u207f\5\t\5\2\u207f\u2080\5\37\20\2\u2080\u0618"+ + "\3\2\2\2\u2081\u2082\5-\27\2\u2082\u2083\5/\30\2\u2083\u2084\5-\27\2\u2084"+ + "\u2085\5/\30\2\u2085\u2086\5\21\t\2\u2086\u2087\5!\21\2\u2087\u061a\3"+ + "\2\2\2\u2088\u2089\5/\30\2\u2089\u208a\5\21\t\2\u208a\u208b\5\67\34\2"+ + "\u208b\u208c\5/\30\2\u208c\u061c\3\2\2\2\u208d\u208e\5/\30\2\u208e\u208f"+ + "\5\31\r\2\u208f\u2090\5!\21\2\u2090\u2091\5\21\t\2\u2091\u2092\5-\27\2"+ + "\u2092\u2093\5/\30\2\u2093\u2094\5\t\5\2\u2094\u2095\5!\21\2\u2095\u2096"+ + "\5\'\24\2\u2096\u2097\5/\30\2\u2097\u2098\5;\36\2\u2098\u061e\3\2\2\2"+ + "\u2099\u209a\5/\30\2\u209a\u209b\5\31\r\2\u209b\u209c\5!\21\2\u209c\u209d"+ + "\5\21\t\2\u209d\u209e\5/\30\2\u209e\u209f\5;\36\2\u209f\u0620\3\2\2\2"+ + "\u20a0\u20a1\5/\30\2\u20a1\u20a2\5-\27\2\u20a2\u20a3\5)\25\2\u20a3\u20a4"+ + "\5\61\31\2\u20a4\u20a5\5\21\t\2\u20a5\u20a6\5+\26\2\u20a6\u20a7\59\35"+ + "\2\u20a7\u0622\3\2\2\2\u20a8\u20a9\5/\30\2\u20a9\u20aa\5-\27\2\u20aa\u20ab"+ + "\5\63\32\2\u20ab\u20ac\5\21\t\2\u20ac\u20ad\5\r\7\2\u20ad\u20ae\5/\30"+ + "\2\u20ae\u20af\5%\23\2\u20af\u20b0\5+\26\2\u20b0\u0624\3\2\2\2\u20b1\u20b2"+ + "\5/\30\2\u20b2\u20b3\5\67\34\2\u20b3\u20b4\5\31\r\2\u20b4\u20b5\5\17\b"+ + "\2\u20b5\u20b6\7a\2\2\u20b6\u20b7\5-\27\2\u20b7\u20b8\5#\22\2\u20b8\u20b9"+ + "\5\t\5\2\u20b9\u20ba\5\'\24\2\u20ba\u20bb\5-\27\2\u20bb\u20bc\5\27\f\2"+ + "\u20bc\u20bd\5%\23\2\u20bd\u20be\5/\30\2\u20be\u0626\3\2\2\2\u20bf\u20c0"+ + "\5\61\31\2\u20c0\u20c1\5\61\31\2\u20c1\u20c2\5\31\r\2\u20c2\u20c3\5\17"+ + "\b\2\u20c3\u0628\3\2\2\2\u20c4\u20c5\5\63\32\2\u20c5\u20c6\5\t\5\2\u20c6"+ + "\u20c7\5+\26\2\u20c7\u20c8\5\13\6\2\u20c8\u20c9\5\31\r\2\u20c9\u20ca\5"+ + "/\30\2\u20ca\u062a\3\2\2\2\u20cb\u20cc\5\67\34\2\u20cc\u20cd\5!\21\2\u20cd"+ + "\u20ce\5\37\20\2\u20ce\u062c\3\2\2\2\u20cf\u20d0\7.\2\2\u20d0\u062e\3"+ + "\2\2\2\u20d1\u20d2\7<\2\2\u20d2\u0630\3\2\2\2\u20d3\u20d4\7<\2\2\u20d4"+ + "\u20d5\7<\2\2\u20d5\u0632\3\2\2\2\u20d6\u20d7\7&\2\2\u20d7\u0634\3\2\2"+ + "\2\u20d8\u20d9\7&\2\2\u20d9\u20da\7&\2\2\u20da\u0636\3\2\2\2\u20db\u20dc"+ + "\7,\2\2\u20dc\u0638\3\2\2\2\u20dd\u20de\7*\2\2\u20de\u063a\3\2\2\2\u20df"+ + "\u20e0\7+\2\2\u20e0\u063c\3\2\2\2\u20e1\u20e2\7]\2\2\u20e2\u063e\3\2\2"+ + "\2\u20e3\u20e4\7_\2\2\u20e4\u0640\3\2\2\2\u20e5\u20e6\5\13\6\2\u20e6\u20ea"+ + "\7)\2\2\u20e7\u20e9\4\62\63\2\u20e8\u20e7\3\2\2\2\u20e9\u20ec\3\2\2\2"+ + "\u20ea\u20e8\3\2\2\2\u20ea\u20eb\3\2\2\2\u20eb\u20ed\3\2\2\2\u20ec\u20ea"+ + "\3\2\2\2\u20ed\u20ee\7)\2\2\u20ee\u0642\3\2\2\2\u20ef\u20f0\5\21\t\2\u20f0"+ + "\u20f1\5C\"\2\u20f1\u0644\3\2\2\2\u20f2\u20f4\7/\2\2\u20f3\u20f2\3\2\2"+ + "\2\u20f3\u20f4\3\2\2\2\u20f4\u20f6\3\2\2\2\u20f5\u20f7\5? \2\u20f6\u20f5"+ + "\3\2\2\2\u20f7\u20f8\3\2\2\2\u20f8\u20f6\3\2\2\2\u20f8\u20f9\3\2\2\2\u20f9"+ + "\u20fa\3\2\2\2\u20fa\u20fc\7\60\2\2\u20fb\u20fd\5? \2\u20fc\u20fb\3\2"+ + "\2\2\u20fd\u20fe\3\2\2\2\u20fe\u20fc\3\2\2\2\u20fe\u20ff\3\2\2\2\u20ff"+ + "\u210c\3\2\2\2\u2100\u2104\5\21\t\2\u2101\u2103\7/\2\2\u2102\u2101\3\2"+ + "\2\2\u2103\u2106\3\2\2\2\u2104\u2102\3\2\2\2\u2104\u2105\3\2\2\2\u2105"+ + "\u2108\3\2\2\2\u2106\u2104\3\2\2\2\u2107\u2109\5? \2\u2108\u2107\3\2\2"+ + "\2\u2109\u210a\3\2\2\2\u210a\u2108\3\2\2\2\u210a\u210b\3\2\2\2\u210b\u210d"+ + "\3\2\2\2\u210c\u2100\3\2\2\2\u210c\u210d\3\2\2\2\u210d\u0646\3\2\2\2\u210e"+ + "\u2110\7/\2\2\u210f\u210e\3\2\2\2\u210f\u2110\3\2\2\2\u2110\u2112\3\2"+ + "\2\2\u2111\u2113\5? \2\u2112\u2111\3\2\2\2\u2113\u2114\3\2\2\2\u2114\u2112"+ + "\3\2\2\2\u2114\u2115\3\2\2\2\u2115\u211c\3\2\2\2\u2116\u2118\5\21\t\2"+ + "\u2117\u2119\5? \2\u2118\u2117\3\2\2\2\u2119\u211a\3\2\2\2\u211a\u2118"+ + "\3\2\2\2\u211a\u211b\3\2\2\2\u211b\u211d\3\2\2\2\u211c\u2116\3\2\2\2\u211c"+ + "\u211d\3\2\2\2\u211d\u0648\3\2\2\2\u211e\u211f\7z\2\2\u211f\u2120\5C\""+ + "\2\u2120\u064a\3\2\2\2\u2121\u2122\7\60\2\2\u2122\u064c\3\2\2\2\u2123"+ + "\u2124\5C\"\2\u2124\u064e\3\2\2\2\u2125\u2126\5A!\2\u2126\u0650\3\2\2"+ + "\2\u2127\u212b\t\"\2\2\u2128\u212a\t#\2\2\u2129\u2128\3\2\2\2\u212a\u212d"+ + "\3\2\2\2\u212b\u2129\3\2\2\2\u212b\u212c\3\2\2\2\u212c\u0652\3\2\2\2\u212d"+ + "\u212b\3\2\2\2\u212e\u2130\7&\2\2\u212f\u2131\5? \2\u2130\u212f\3\2\2"+ + "\2\u2131\u2132\3\2\2\2\u2132\u2130\3\2\2\2\u2132\u2133\3\2\2\2\u2133\u0654"+ + "\3\2\2\2\u2134\u2138\t$\2\2\u2135\u2137\t%\2\2\u2136\u2135\3\2\2\2\u2137"+ + "\u213a\3\2\2\2\u2138\u2136\3\2\2\2\u2138\u2139\3\2\2\2\u2139\u0656\3\2"+ + "\2\2\u213a\u2138\3\2\2\2\u213b\u213c\7(\2\2\u213c\u0658\3\2\2\2\u213d"+ + "\u213e\7(\2\2\u213e\u213f\7(\2\2\u213f\u065a\3\2\2\2\u2140\u2141\7(\2"+ + "\2\u2141\u2142\7>\2\2\u2142\u065c\3\2\2\2\u2143\u2144\7B\2\2\u2144\u2145"+ + "\7B\2\2\u2145\u065e\3\2\2\2\u2146\u2147\7B\2\2\u2147\u2148\7@\2\2\u2148"+ + "\u0660\3\2\2\2\u2149\u214a\7B\2\2\u214a\u0662\3\2\2\2\u214b\u214c\7#\2"+ + "\2\u214c\u0664\3\2\2\2\u214d\u214e\7#\2\2\u214e\u214f\7#\2\2\u214f\u0666"+ + "\3\2\2\2\u2150\u2151\7#\2\2\u2151\u2152\7?\2\2\u2152\u0668\3\2\2\2\u2153"+ + "\u2154\7`\2\2\u2154\u066a\3\2\2\2\u2155\u2156\7?\2\2\u2156\u066c\3\2\2"+ + "\2\u2157\u2158\7?\2\2\u2158\u2159\7@\2\2\u2159\u066e\3\2\2\2\u215a\u215b"+ + "\7@\2\2\u215b\u0670\3\2\2\2\u215c\u215d\7@\2\2\u215d\u215e\7?\2\2\u215e"+ + "\u0672\3\2\2\2\u215f\u2160\7@\2\2\u2160\u2161\7@\2\2\u2161\u0674\3\2\2"+ + "\2\u2162\u2163\7%\2\2\u2163\u0676\3\2\2\2\u2164\u2165\7%\2\2\u2165\u2166"+ + "\7?\2\2\u2166\u0678\3\2\2\2\u2167\u2168\7%\2\2\u2168\u2169\7@\2\2\u2169"+ + "\u067a\3\2\2\2\u216a\u216b\7%\2\2\u216b\u216c\7@\2\2\u216c\u216d\7@\2"+ + "\2\u216d\u067c\3\2\2\2\u216e\u216f\7%\2\2\u216f\u2170\7%\2\2\u2170\u067e"+ + "\3\2\2\2\u2171\u2172\7/\2\2\u2172\u2173\7@\2\2\u2173\u0680\3\2\2\2\u2174"+ + "\u2175\7/\2\2\u2175\u2176\7@\2\2\u2176\u2177\7@\2\2\u2177\u0682\3\2\2"+ + "\2\u2178\u2179\7/\2\2\u2179\u217a\7~\2\2\u217a\u217b\7/\2\2\u217b\u0684"+ + "\3\2\2\2\u217c\u217d\7>\2\2\u217d\u0686\3\2\2\2\u217e\u217f\7>\2\2\u217f"+ + "\u2180\7?\2\2\u2180\u0688\3\2\2\2\u2181\u2182\7>\2\2\u2182\u2183\7B\2"+ + "\2\u2183\u068a\3\2\2\2\u2184\u2185\7>\2\2\u2185\u2186\7`\2\2\u2186\u068c"+ + "\3\2\2\2\u2187\u2188\7>\2\2\u2188\u2189\7@\2\2\u2189\u068e\3\2\2\2\u218a"+ + "\u218b\7>\2\2\u218b\u218c\7/\2\2\u218c\u218d\7@\2\2\u218d\u0690\3\2\2"+ + "\2\u218e\u218f\7>\2\2\u218f\u2190\7>\2\2\u2190\u0692\3\2\2\2\u2191\u2192"+ + "\7>\2\2\u2192\u2193\7>\2\2\u2193\u2194\7?\2\2\u2194\u0694\3\2\2\2\u2195"+ + "\u2196\7>\2\2\u2196\u2197\7A\2\2\u2197\u2198\7@\2\2\u2198\u0696\3\2\2"+ + "\2\u2199\u219a\7/\2\2\u219a\u0698\3\2\2\2\u219b\u219c\7\'\2\2\u219c\u069a"+ + "\3\2\2\2\u219d\u219e\7~\2\2\u219e\u069c\3\2\2\2\u219f\u21a0\7~\2\2\u21a0"+ + "\u21a1\7~\2\2\u21a1\u069e\3\2\2\2\u21a2\u21a3\7~\2\2\u21a3\u21a4\7~\2"+ + "\2\u21a4\u21a5\7\61\2\2\u21a5\u06a0\3\2\2\2\u21a6\u21a7\7~\2\2\u21a7\u21a8"+ + "\7\61\2\2\u21a8\u06a2\3\2\2\2\u21a9\u21aa\7-\2\2\u21aa\u06a4\3\2\2\2\u21ab"+ + "\u21ac\7A\2\2\u21ac\u06a6\3\2\2\2\u21ad\u21ae\7A\2\2\u21ae\u21af\7(\2"+ + "\2\u21af\u06a8\3\2\2\2\u21b0\u21b1\7A\2\2\u21b1\u21b2\7%\2\2\u21b2\u06aa"+ + "\3\2\2\2\u21b3\u21b4\7A\2\2\u21b4\u21b5\7/\2\2\u21b5\u06ac\3\2\2\2\u21b6"+ + "\u21b7\7A\2\2\u21b7\u21b8\7~\2\2\u21b8\u06ae\3\2\2\2\u21b9\u21ba\7\61"+ + "\2\2\u21ba\u06b0\3\2\2\2\u21bb\u21bc\7\u0080\2\2\u21bc\u06b2\3\2\2\2\u21bd"+ + "\u21be\7\u0080\2\2\u21be\u21bf\7?\2\2\u21bf\u06b4\3\2\2\2\u21c0\u21c1"+ + "\7\u0080\2\2\u21c1\u21c2\7@\2\2\u21c2\u21c3\7?\2\2\u21c3\u21c4\7\u0080"+ + "\2\2\u21c4\u06b6\3\2\2\2\u21c5\u21c6\7\u0080\2\2\u21c6\u21c7\7@\2\2\u21c7"+ + "\u21c8\7\u0080\2\2\u21c8\u06b8\3\2\2\2\u21c9\u21ca\7\u0080\2\2\u21ca\u21cb"+ + "\7>\2\2\u21cb\u21cc\7?\2\2\u21cc\u21cd\7\u0080\2\2\u21cd\u06ba\3\2\2\2"+ + "\u21ce\u21cf\7\u0080\2\2\u21cf\u21d0\7>\2\2\u21d0\u21d1\7\u0080\2\2\u21d1"+ + "\u06bc\3\2\2\2\u21d2\u21d3\7\u0080\2\2\u21d3\u21d4\7,\2\2\u21d4\u06be"+ + "\3\2\2\2\u21d5\u21d6\7\u0080\2\2\u21d6\u21d7\7\u0080\2\2\u21d7\u06c0\3"+ + "\2\2\2\u21d8\u21d9\7=\2\2\u21d9\u06c2\3\2\2\2\32\2\u06c6\u06d0\u06de\u0723"+ + "\u0725\u0730\u0732\u073d\u073f\u20ea\u20f3\u20f8\u20fe\u2104\u210a\u210c"+ + "\u210f\u2114\u211a\u211c\u212b\u2132\u2138\4\b\2\2\2\3\2"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2, + _serializedATNSegment3 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } } \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java index 85dad9c..d7c69d8 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java @@ -1,58927 +1,50018 @@ // Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 package com.github.bigdata.sql.antlr4.pg; - -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.ATN; -import org.antlr.v4.runtime.atn.ATNDeserializer; -import org.antlr.v4.runtime.atn.ParserATNSimulator; -import org.antlr.v4.runtime.atn.PredictionContextCache; +import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.Utils; -import org.antlr.v4.runtime.tree.ParseTreeListener; -import org.antlr.v4.runtime.tree.ParseTreeVisitor; -import org.antlr.v4.runtime.tree.TerminalNode; - +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class PostgreSQLParser extends Parser { - static { - RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); - } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - WHITESPACE = 1, BLOCK_COMMENT = 2, LINE_COMMENT = 3, A_ = 4, ABORT = 5, ABS = 6, ABSOLUTE = 7, - ACCESS = 8, ACTION = 9, ADA = 10, ADD = 11, ADMIN = 12, AFTER = 13, AGGREGATE = 14, - ALIAS = 15, ALL = 16, ALLOCATE = 17, ALSO = 18, ALTER = 19, ALWAYS = 20, ANALYSE = 21, - ANALYZE = 22, AND = 23, ANY = 24, ARE = 25, ARRAY = 26, AS = 27, ASC = 28, ASENSITIVE = 29, - ASSERTION = 30, ASSIGNMENT = 31, ASYMMETRIC = 32, AT = 33, ATOMIC = 34, ATTRIBUTE = 35, - ATTRIBUTES = 36, AUTHORIZATION = 37, AVG = 38, BACKWARD = 39, BEFORE = 40, BEGIN = 41, - BERNOULLI = 42, BETWEEN = 43, BIGINT = 44, BINARY = 45, BIT = 46, BIT_LENGTH = 47, - BITVAR = 48, BLOB = 49, BOOLEAN = 50, BOTH = 51, BREADTH = 52, BUFFERS = 53, BY = 54, - C_ = 55, CACHE = 56, CALL = 57, CALLED = 58, CARDINALITY = 59, CASCADE = 60, CASCADED = 61, - CASE = 62, CAST = 63, CATALOG = 64, CATALOG_NAME = 65, CEIL = 66, CEILING = 67, CHAIN = 68, - CHAR = 69, CHAR_LENGTH = 70, CHARACTER = 71, CHARACTER_LENGTH = 72, CHARACTER_SET_CATALOG = 73, - CHARACTER_SET_NAME = 74, CHARACTER_SET_SCHEMA = 75, CHARACTERISTICS = 76, CHARACTERS = 77, - CHECK = 78, CHECKED = 79, CHECKPOINT = 80, CLASS = 81, CLASS_ORIGIN = 82, CLOB = 83, - CLOSE = 84, CLUSTER = 85, COALESCE = 86, COBOL = 87, COLLATE = 88, COLLATION = 89, - COLLATION_CATALOG = 90, COLLATION_NAME = 91, COLLATION_SCHEMA = 92, COLLECT = 93, - COLUMN = 94, COLUMN_NAME = 95, COMMAND_FUNCTION = 96, COMMAND_FUNCTION_CODE = 97, - COMMENT = 98, COMMIT = 99, COMMITTED = 100, COMPLETION = 101, CONDITION = 102, CONDITION_NUMBER = 103, - CONFIGURATION = 104, CONFLICT = 105, CONNECT = 106, CONNECTION = 107, CONNECTION_NAME = 108, - CONSTRAINT = 109, CONSTRAINT_CATALOG = 110, CONSTRAINT_NAME = 111, CONSTRAINT_SCHEMA = 112, - CONSTRAINTS = 113, CONSTRUCTOR = 114, CONTAINS = 115, CONTINUE = 116, CONVERSION = 117, - CONVERT = 118, COPY = 119, CORR = 120, CORRESPONDING = 121, COSTS = 122, COUNT = 123, - COVAR_POP = 124, COVAR_SAMP = 125, CREATE = 126, CREATEDB = 127, CREATEUSER = 128, - CROSS = 129, CSV = 130, CUBE = 131, CUME_DIST = 132, CURRENT = 133, CURRENT_DATE = 134, - CURRENT_DEFAULT_TRANSFORM_GROUP = 135, CURRENT_PATH = 136, CURRENT_ROLE = 137, - CURRENT_TIME = 138, CURRENT_TIMESTAMP = 139, CURRENT_TRANSFORM_GROUP_FOR_TYPE = 140, - CURRENT_USER = 141, CURSOR = 142, CURSOR_NAME = 143, CYCLE = 144, DATA = 145, DATABASE = 146, - DATE = 147, DATETIME_INTERVAL_CODE = 148, DATETIME_INTERVAL_PRECISION = 149, - DAY = 150, DEALLOCATE = 151, DEC = 152, DECIMAL = 153, DECLARE = 154, DEFAULT = 155, - DEFAULTS = 156, DEFERABLE = 157, DEFERRABLE = 158, DEFERRED = 159, DEFINED = 160, - DEFINER = 161, DEGREE = 162, DELETE = 163, DELIMITER = 164, DELIMITERS = 165, DENSE_RANK = 166, - DEPENDS = 167, DEPTH = 168, DEREF = 169, DERIVED = 170, DESC = 171, DESCRIBE = 172, - DESCRIPTOR = 173, DESTROY = 174, DESTRUCTOR = 175, DETERMINISTIC = 176, DIAGNOSTICS = 177, - DICTIONARY = 178, DISABLE = 179, DISABLE_PAGE_SKIPPING = 180, DISCARD = 181, DISCONNECT = 182, - DISPATCH = 183, DISTINCT = 184, DO = 185, DOMAIN = 186, DOUBLE = 187, DROP = 188, - DYNAMIC = 189, DYNAMIC_FUNCTION = 190, DYNAMIC_FUNCTION_CODE = 191, EACH = 192, - ELEMENT = 193, ELSE = 194, ENABLE = 195, ENCODING = 196, ENCRYPTED = 197, END = 198, - END_EXEC = 199, EQUALS = 200, ESCAPE = 201, EVERY = 202, EXCEPT = 203, EXCEPTION = 204, - EXCLUDE = 205, EXCLUDING = 206, EXCLUSIVE = 207, EXEC = 208, EXECUTE = 209, EXISTING = 210, - EXISTS = 211, EXP = 212, EXPLAIN = 213, EXTENDED = 214, EXTENSION = 215, EXTERNAL = 216, - EXTRACT = 217, FALSE = 218, FETCH = 219, FIELDS = 220, FILTER = 221, FINAL = 222, - FIRST = 223, FLOAT = 224, FLOOR = 225, FOLLOWING = 226, FOR = 227, FORCE = 228, FOREIGN = 229, - FORMAT = 230, FORTRAN = 231, FORWARD = 232, FOUND = 233, FREE = 234, FREEZE = 235, - FROM = 236, FULL = 237, FUNCTION = 238, FUSION = 239, G_ = 240, GENERAL = 241, GENERATED = 242, - GET = 243, GLOBAL = 244, GO = 245, GOTO = 246, GRANT = 247, GRANTED = 248, GREATEST = 249, - GROUP = 250, GROUPING = 251, HANDLER = 252, HAVING = 253, HIERARCHY = 254, HOLD = 255, - HOST = 256, HOUR = 257, IDENTITY = 258, IGNORE = 259, ILIKE = 260, IMMEDIATE = 261, - IMMUTABLE = 262, IMPLEMENTATION = 263, IMPLICIT = 264, IN = 265, INCLUDING = 266, - INCREMENT = 267, INDEX = 268, INDICATOR = 269, INFIX = 270, INHERITS = 271, INITIALIZE = 272, - INITIALLY = 273, INNER = 274, INOUT = 275, INPUT = 276, INSENSITIVE = 277, INSERT = 278, - INSTANCE = 279, INSTANTIABLE = 280, INSTEAD = 281, INT = 282, INTEGER = 283, INTERSECT = 284, - INTERSECTION = 285, INTERVAL = 286, INTO = 287, INVOKER = 288, IS = 289, ISOLATION = 290, - ITERATE = 291, JOIN = 292, K_ = 293, KEY = 294, KEY_MEMBER = 295, KEY_TYPE = 296, - LABEL = 297, LANCOMPILER = 298, LANGUAGE = 299, LARGE = 300, LAST = 301, LATERAL = 302, - LEADING = 303, LEAST = 304, LEFT = 305, LENGTH = 306, LESS = 307, LEVEL = 308, LIKE = 309, - LIMIT = 310, LISTEN = 311, LN = 312, LOAD = 313, LOCAL = 314, LOCALTIME = 315, LOCALTIMESTAMP = 316, - LOCATION = 317, LOCATOR = 318, LOCK = 319, LOCKED = 320, LOWER = 321, M_ = 322, MAIN = 323, - MAP = 324, MAPPING = 325, MATCH = 326, MATCH_SIMPLE = 327, MATCHED = 328, MAX = 329, - MAXVALUE = 330, MEMBER = 331, MERGE = 332, MESSAGE_LENGTH = 333, MESSAGE_OCTET_LENGTH = 334, - MESSAGE_TEXT = 335, METHOD = 336, MIN = 337, MINUTE = 338, MINVALUE = 339, MOD = 340, - MODE = 341, MODIFIES = 342, MODIFY = 343, MODULE = 344, MONTH = 345, MORE_ = 346, - MOVE = 347, MULTISET = 348, MUMPS = 349, NAME = 350, NAMES = 351, NATIONAL = 352, - NATURAL = 353, NCHAR = 354, NCLOB = 355, NESTING = 356, NEW = 357, NEXT = 358, NO = 359, - NOCREATEDB = 360, NOCREATEUSER = 361, NONE = 362, NORMALIZE = 363, NORMALIZED = 364, - NOT = 365, NOTHING = 366, NOTIFY = 367, NOTNULL = 368, NOWAIT = 369, NULL = 370, NULLABLE = 371, - NULLIF = 372, NULLS = 373, NUMBER = 374, NUMERIC = 375, OBJECT = 376, OCTET_LENGTH = 377, - OCTETS = 378, OF = 379, OFF = 380, OFFSET = 381, OIDS = 382, OLD = 383, ON = 384, ONLY = 385, - OPEN = 386, OPERATION = 387, OPERATOR = 388, OPTION = 389, OPTIONS = 390, OR = 391, - ORDER = 392, ORDERING = 393, ORDINALITY = 394, OTHERS = 395, OUT = 396, OUTER = 397, - OUTPUT = 398, OVER = 399, OVERLAPS = 400, OVERLAY = 401, OVERRIDING = 402, OWNER = 403, - PAD = 404, PARAMETER = 405, PARAMETER_MODE = 406, PARAMETER_NAME = 407, PARAMETER_ORDINAL_POSITION = 408, - PARAMETER_SPECIFIC_CATALOG = 409, PARAMETER_SPECIFIC_NAME = 410, PARAMETER_SPECIFIC_SCHEMA = 411, - PARAMETERS = 412, PARSER = 413, PARTIAL = 414, PARTITION = 415, PASCAL = 416, PASSWORD = 417, - PATH = 418, PERCENT_RANK = 419, PERCENTILE_CONT = 420, PERCENTILE_DISC = 421, - PLACING = 422, PLAIN = 423, PLANS = 424, PLI = 425, POSITION = 426, POSTFIX = 427, - POWER = 428, PRECEDING = 429, PRECISION = 430, PREFIX = 431, PREORDER = 432, PREPARE = 433, - PREPARED = 434, PRESERVE = 435, PRIMARY = 436, PRIOR = 437, PRIVILEGES = 438, PROCEDURAL = 439, - PROCEDURE = 440, PUBLIC = 441, PUBLICATION = 442, QUOTE = 443, RANGE = 444, RANK = 445, - READ = 446, READS = 447, REAL = 448, REASSIGN = 449, RECHECK = 450, RECURSIVE = 451, - REF = 452, REFERENCES = 453, REFERENCING = 454, REFRESH = 455, REGR_AVGX = 456, - REGR_AVGY = 457, REGR_COUNT = 458, REGR_INTERCEPT = 459, REGR_R2 = 460, REGR_SLOPE = 461, - REGR_SXX = 462, REGR_SXY = 463, REGR_SYY = 464, REINDEX = 465, RELATIVE = 466, RELEASE = 467, - RENAME = 468, REPEATABLE = 469, REPLACE = 470, REPLICA = 471, RESET = 472, RESTART = 473, - RESTRICT = 474, RESULT = 475, RETURN = 476, RETURNED_CARDINALITY = 477, RETURNED_LENGTH = 478, - RETURNED_OCTET_LENGTH = 479, RETURNED_SQLSTATE = 480, RETURNING = 481, RETURNS = 482, - REVOKE = 483, RIGHT = 484, ROLE = 485, ROLLBACK = 486, ROLLUP = 487, ROUTINE = 488, - ROUTINE_CATALOG = 489, ROUTINE_NAME = 490, ROUTINE_SCHEMA = 491, ROW = 492, ROW_COUNT = 493, - ROW_NUMBER = 494, ROWS = 495, RULE = 496, SAVEPOINT = 497, SCALE = 498, SCHEMA = 499, - SCHEMA_NAME = 500, SCOPE = 501, SCOPE_CATALOG = 502, SCOPE_NAME = 503, SCOPE_SCHEMA = 504, - SCROLL = 505, SEARCH = 506, SECOND = 507, SECTION = 508, SECURITY = 509, SELECT = 510, - SELF = 511, SENSITIVE = 512, SEQUENCE = 513, SEQUENCES = 514, SERIALIZABLE = 515, - SERVER_NAME = 516, SESSION = 517, SESSION_USER = 518, SET = 519, SETOF = 520, SETS = 521, - SHARE = 522, SHOW = 523, SIMILAR = 524, SIMPLE = 525, SIZE = 526, SKIP_ = 527, SMALLINT = 528, - SNAPSHOT = 529, SOME = 530, SOURCE = 531, SPACE = 532, SPECIFIC = 533, SPECIFIC_NAME = 534, - SPECIFICTYPE = 535, SQL = 536, SQLCODE = 537, SQLERROR = 538, SQLEXCEPTION = 539, - SQLSTATE = 540, SQLWARNING = 541, SQRT = 542, STABLE = 543, START = 544, STATE = 545, - STATEMENT = 546, STATIC = 547, STATISTICS = 548, STDDEV_POP = 549, STDDEV_SAMP = 550, - STDIN = 551, STDOUT = 552, STORAGE = 553, STRICT = 554, STRUCTURE = 555, STYLE = 556, - SUBCLASS_ORIGIN = 557, SUBLIST = 558, SUBMULTISET = 559, SUBSCRIPTION = 560, SUBSTRING = 561, - SUM = 562, SYMMETRIC = 563, SYSID = 564, SYSTEM = 565, SYSTEM_USER = 566, TABLE = 567, - TABLE_NAME = 568, TABLESAMPLE = 569, TABLESPACE = 570, TEMP = 571, TEMPLATE = 572, - TEMPORARY = 573, TERMINATE = 574, THAN = 575, THEN = 576, TIES = 577, TIME = 578, - TIMESTAMP = 579, TIMEZONE_HOUR = 580, TIMEZONE_MINUTE = 581, TIMING = 582, TO = 583, - TOAST = 584, TOP_LEVEL_COUNT = 585, TRAILING = 586, TRANSACTION = 587, TRANSACTION_ACTIVE = 588, - TRANSACTIONS_COMMITTED = 589, TRANSACTIONS_ROLLED_BACK = 590, TRANSFORM = 591, - TRANSFORMS = 592, TRANSLATE = 593, TRANSLATION = 594, TREAT = 595, TRIGGER = 596, - TRIGGER_CATALOG = 597, TRIGGER_NAME = 598, TRIGGER_SCHEMA = 599, TRIM = 600, TRUE = 601, - TRUNCATE = 602, TRUSTED = 603, TYPE = 604, UESCAPE = 605, UNBOUNDED = 606, UNCOMMITTED = 607, - UNDER = 608, UNENCRYPTED = 609, UNION = 610, UNIQUE = 611, UNKNOWN = 612, UNLISTEN = 613, - UNNAMED = 614, UNNEST = 615, UNTIL = 616, UPDATE = 617, UPPER = 618, USAGE = 619, - USER = 620, USER_DEFINED_TYPE_CATALOG = 621, USER_DEFINED_TYPE_CODE = 622, USER_DEFINED_TYPE_NAME = 623, - USER_DEFINED_TYPE_SCHEMA = 624, USING = 625, VACUUM = 626, VALID = 627, VALIDATE = 628, - VALIDATOR = 629, VALUE = 630, VALUES = 631, VAR_POP = 632, VAR_SAMP = 633, VARCHAR = 634, - VARIABLE = 635, VARIADIC = 636, VARYING = 637, VERBOSE = 638, VIEW = 639, VOLATILE = 640, - WHEN = 641, WHENEVER = 642, WHERE = 643, WIDTH_BUCKET = 644, WINDOW = 645, WITH = 646, - WITHIN = 647, WITHOUT = 648, WORK = 649, WRITE = 650, YAML = 651, YEAR = 652, YES = 653, - ZONE = 654, SUPERUSER = 655, NOSUPERUSER = 656, CREATEROLE = 657, NOCREATEROLE = 658, - INHERIT = 659, NOINHERIT = 660, LOGIN = 661, NOLOGIN = 662, REPLICATION = 663, NOREPLICATION = 664, - BYPASSRLS = 665, NOBYPASSRLS = 666, SFUNC = 667, STYPE = 668, SSPACE = 669, FINALFUNC = 670, - FINALFUNC_EXTRA = 671, COMBINEFUNC = 672, SERIALFUNC = 673, DESERIALFUNC = 674, - INITCOND = 675, MSFUNC = 676, MINVFUNC = 677, MSTYPE = 678, MSSPACE = 679, MFINALFUNC = 680, - MFINALFUNC_EXTRA = 681, MINITCOND = 682, SORTOP = 683, PARALLEL = 684, HYPOTHETICAL = 685, - SAFE = 686, RESTRICTED = 687, UNSAFE = 688, BASETYPE = 689, IF = 690, LOCALE = 691, - LC_COLLATE = 692, LC_CTYPE = 693, PROVIDER = 694, VERSION = 695, ALLOW_CONNECTIONS = 696, - IS_TEMPLATE = 697, EVENT = 698, WRAPPER = 699, SERVER = 700, BTREE = 701, HASH_ = 702, - GIST = 703, SPGIST = 704, GIN = 705, BRIN = 706, CONCURRENTLY = 707, INLINE = 708, - MATERIALIZED = 709, LEFTARG = 710, RIGHTARG = 711, COMMUTATOR = 712, NEGATOR = 713, - HASHES = 714, MERGES = 715, FAMILY = 716, POLICY = 717, OWNED = 718, ABSTIME = 719, - BIGSERIAL = 720, BIT_VARYING = 721, BOOL = 722, BOX = 723, BYTEA = 724, CHARACTER_VARYING = 725, - CIDR = 726, CIRCLE = 727, FLOAT4 = 728, FLOAT8 = 729, INET = 730, INT2 = 731, INT4 = 732, - INT8 = 733, JSON = 734, JSONB = 735, LINE = 736, LSEG = 737, MACADDR = 738, MACADDR8 = 739, - MONEY = 740, PG_LSN = 741, POINT = 742, POLYGON = 743, RELTIME = 744, SERIAL = 745, - SERIAL2 = 746, SERIAL4 = 747, SERIAL8 = 748, SMALLSERIAL = 749, STSTEM = 750, TEXT = 751, - TIMESTAMPTZ = 752, TIMETZ = 753, TSQUERY = 754, TSVECTOR = 755, TXID_SNAPSHOT = 756, - UUID = 757, VARBIT = 758, XML = 759, COMMA = 760, COLON = 761, COLON_COLON = 762, - DOLLAR = 763, DOLLAR_DOLLAR = 764, STAR = 765, OPEN_PAREN = 766, CLOSE_PAREN = 767, - OPEN_BRACKET = 768, CLOSE_BRACKET = 769, BIT_STRING = 770, REGEX_STRING = 771, - NUMERIC_LITERAL = 772, INTEGER_LITERAL = 773, HEX_INTEGER_LITERAL = 774, DOT = 775, - SINGLEQ_STRING_LITERAL = 776, DOUBLEQ_STRING_LITERAL = 777, IDENTIFIER = 778, - DOLLAR_DEC = 779, IDENTIFIER_UNICODE = 780, AMP = 781, AMP_AMP = 782, AMP_LT = 783, - AT_AT = 784, AT_GT = 785, AT_SIGN = 786, BANG = 787, BANG_BANG = 788, BANG_EQUAL = 789, - CARET = 790, EQUAL = 791, EQUAL_GT = 792, GT = 793, GTE = 794, GT_GT = 795, HASH = 796, - HASH_EQ = 797, HASH_GT = 798, HASH_GT_GT = 799, HASH_HASH = 800, HYPHEN_GT = 801, - HYPHEN_GT_GT = 802, HYPHEN_PIPE_HYPHEN = 803, LT = 804, LTE = 805, LT_AT = 806, - LT_CARET = 807, LT_GT = 808, LT_HYPHEN_GT = 809, LT_LT = 810, LT_LT_EQ = 811, LT_QMARK_GT = 812, - MINUS = 813, PERCENT = 814, PIPE = 815, PIPE_PIPE = 816, PIPE_PIPE_SLASH = 817, - PIPE_SLASH = 818, PLUS = 819, QMARK = 820, QMARK_AMP = 821, QMARK_HASH = 822, QMARK_HYPHEN = 823, - QMARK_PIPE = 824, SLASH = 825, TIL = 826, TIL_EQ = 827, TIL_GTE_TIL = 828, TIL_GT_TIL = 829, - TIL_LTE_TIL = 830, TIL_LT_TIL = 831, TIL_STAR = 832, TIL_TIL = 833, SEMI = 834, - UNLOGGED = 835; - public static final int - RULE_root = 0, RULE_stmt = 1, RULE_abort_stmt = 2, RULE_alter_stmt = 3, - RULE_alter_aggregate_stmt = 4, RULE_alter_collation_stmt = 5, RULE_alter_conversion_stmt = 6, - RULE_alter_database_stmt = 7, RULE_alter_default_privileges_stmt = 8, - RULE_alter_domain_stmt = 9, RULE_alter_event_trigger_stmt = 10, RULE_alter_extension_stmt = 11, - RULE_alter_foreign_data_wrapper_stmt = 12, RULE_alter_foreign_table_action = 13, - RULE_alter_foreign_table_action_list = 14, RULE_alter_foreign_table_stmt = 15, - RULE_alter_function_stmt = 16, RULE_alter_group_stmt = 17, RULE_alter_index_stmt = 18, - RULE_alter_language_stmt = 19, RULE_alter_large_object_stmt = 20, RULE_alter_materialize_view_stmt = 21, - RULE_alter_operator_stmt = 22, RULE_alter_operator_class_stmt = 23, RULE_alter_operator_family_stmt = 24, - RULE_alter_policy_stmt = 25, RULE_alter_publication_stmt = 26, RULE_alter_role_options = 27, - RULE_alter_role_stmt = 28, RULE_alter_rule_stmt = 29, RULE_alter_schema_stmt = 30, - RULE_alter_sequence_stmt = 31, RULE_alter_server_options_list = 32, RULE_alter_server_stmt = 33, - RULE_alter_statistics_stmt = 34, RULE_alter_subscription_stmt = 35, RULE_alter_system_stmt = 36, - RULE_alter_table_stmt = 37, RULE_alter_tablespace_stmt = 38, RULE_alter_text_search_config_stmt = 39, - RULE_alter_text_search_dict_stmt = 40, RULE_alter_text_search_parser_stmt = 41, - RULE_alter_text_search_template_stmt = 42, RULE_alter_trigger_stmt = 43, - RULE_alter_type_stmt = 44, RULE_alter_user_stmt = 45, RULE_alter_user_mapping_stmt = 46, - RULE_alter_view_stmt = 47, RULE_analyze_stmt = 48, RULE_close_stmt = 49, - RULE_cluster_stmt = 50, RULE_comment_stmt = 51, RULE_commit_stmt = 52, - RULE_commit_prepared_stmt = 53, RULE_copy_stmt = 54, RULE_create_stmt = 55, - RULE_create_access_method_stmt = 56, RULE_create_aggregate_stmt = 57, - RULE_create_cast_stmt = 58, RULE_create_collation_opt = 59, RULE_create_collation_opt_list = 60, - RULE_create_collation_stmt = 61, RULE_create_conversion_stmt = 62, RULE_create_database_stmt = 63, - RULE_domain_constraint = 64, RULE_create_domain_stmt = 65, RULE_create_event_trigger_cond = 66, - RULE_create_event_trigger_stmt = 67, RULE_create_foreign_data_options = 68, - RULE_create_foreign_data_stmt = 69, RULE_create_foreign_table_stmt = 70, - RULE_create_function_stmt = 71, RULE_create_group_stmt = 72, RULE_create_index_stmt = 73, - RULE_create_language_stmt = 74, RULE_create_materialized_view_stmt = 75, - RULE_create_operator_stmt = 76, RULE_create_operator_class_opt = 77, RULE_create_operator_class_stmt = 78, - RULE_create_operator_family_stmt = 79, RULE_create_policy_stmt = 80, RULE_create_role_stmt = 81, - RULE_create_rule_event = 82, RULE_create_rule_stmt = 83, RULE_create_schema_stmt = 84, - RULE_create_sequence_stmt = 85, RULE_create_server_stmt = 86, RULE_create_statistics_stmt = 87, - RULE_create_subscription_stmt = 88, RULE_create_table_stmt = 89, RULE_create_table_as_stmt = 90, - RULE_create_tablespace_stmt = 91, RULE_create_text_search_config_stmt = 92, - RULE_create_text_search_dict_stmt = 93, RULE_create_text_search_parser_stmt = 94, - RULE_create_text_search_template_stmt = 95, RULE_create_transform_stmt = 96, - RULE_create_trigger_stmt = 97, RULE_create_type_stmt = 98, RULE_create_user_stmt = 99, - RULE_create_user_mapping_stmt = 100, RULE_create_view_stmt = 101, RULE_deallocate_stmt = 102, - RULE_declare_stmt = 103, RULE_delete_stmt = 104, RULE_discard_stmt = 105, - RULE_drop_stmt = 106, RULE_drop_access_method_stmt = 107, RULE_drop_aggregate_stmt = 108, - RULE_drop_cast_stmt = 109, RULE_drop_collation_stmt = 110, RULE_drop_conversion_stmt = 111, - RULE_drop_database_stmt = 112, RULE_drop_domain_stmt = 113, RULE_drop_event_trigger_stmt = 114, - RULE_drop_extension_stmt = 115, RULE_drop_foreign_data_wrapper_stmt = 116, - RULE_drop_foreign_table_stmt = 117, RULE_drop_function_stmt = 118, RULE_drop_group_stmt = 119, - RULE_drop_index_stmt = 120, RULE_drop_language_stmt = 121, RULE_drop_materialized_view_stmt = 122, - RULE_drop_operator_stmt = 123, RULE_drop_operator_class_stmt = 124, RULE_drop_operator_family_stmt = 125, - RULE_drop_owned_stmt = 126, RULE_drop_policy_stmt = 127, RULE_drop_publication_stmt = 128, - RULE_drop_role_stmt = 129, RULE_drop_rule_stmt = 130, RULE_drop_schema_stmt = 131, - RULE_drop_sequence_stmt = 132, RULE_drop_server_stmt = 133, RULE_drop_statistics_stmt = 134, - RULE_drop_subscription_stmt = 135, RULE_drop_table_stmt = 136, RULE_drop_tablespace_stmt = 137, - RULE_drop_text_search_config_stmt = 138, RULE_drop_text_search_dict_stmt = 139, - RULE_drop_text_search_parser_stmt = 140, RULE_drop_text_search_template_stmt = 141, - RULE_drop_transform_stmt = 142, RULE_drop_trigger_stmt = 143, RULE_drop_type_stmt = 144, - RULE_drop_user_stmt = 145, RULE_drop_user_mapping_stmt = 146, RULE_drop_view_stmt = 147, - RULE_execute_stmt = 148, RULE_explain_stmt = 149, RULE_fetch_stmt = 150, - RULE_grant_stmt = 151, RULE_import_foreign_schema_stmt = 152, RULE_insert_stmt = 153, - RULE_listen_stmt = 154, RULE_load_stmt = 155, RULE_lock_stmt = 156, RULE_move_stmt = 157, - RULE_notify_stmt = 158, RULE_prepare_stmt = 159, RULE_prepare_transaction_stmt = 160, - RULE_reassign_owned_stmt = 161, RULE_refresh_materialized_view_stmt = 162, - RULE_reindex_stmt = 163, RULE_release_savepoint_stmt = 164, RULE_reset_stmt = 165, - RULE_revoke_stmt = 166, RULE_rollback_stmt = 167, RULE_rollback_prepared_stmt = 168, - RULE_rollback_to_savepoint_stmt = 169, RULE_savepoint_stmt = 170, RULE_security_label_stmt = 171, - RULE_select_stmt = 172, RULE_select_into_stmt = 173, RULE_with_clause = 174, - RULE_with_expr = 175, RULE_set_stmt = 176, RULE_set_constraints_stmt = 177, - RULE_set_role_stmt = 178, RULE_set_session_authorization_stmt = 179, RULE_transaction_mode = 180, - RULE_transaction_mode_list = 181, RULE_set_transaction_stmt = 182, RULE_show_stmt = 183, - RULE_truncate_stmt = 184, RULE_unlisten_stmt = 185, RULE_update_stmt = 186, - RULE_vacuum_opt = 187, RULE_vacuum_opt_list = 188, RULE_vacuum_stmt = 189, - RULE_values_stmt = 190, RULE_selector_clause = 191, RULE_from_clause = 192, - RULE_where_clause = 193, RULE_group_by_clause = 194, RULE_grouping_elem = 195, - RULE_grouping_elem_list = 196, RULE_having_clause = 197, RULE_column_list = 198, - RULE_explain_parameter = 199, RULE_frame = 200, RULE_frame_start = 201, - RULE_frame_end = 202, RULE_frame_clause = 203, RULE_window_definition = 204, - RULE_window_clause = 205, RULE_combine_clause = 206, RULE_order_by_clause = 207, - RULE_order_by_item = 208, RULE_limit_clause = 209, RULE_offset_clause = 210, - RULE_fetch_clause = 211, RULE_for_clause = 212, RULE_updater_clause = 213, - RULE_updater_expr = 214, RULE_returning_clause = 215, RULE_expr = 216, - RULE_bool_expr = 217, RULE_case_expr = 218, RULE_expr_list = 219, RULE_expr_list_list = 220, - RULE_func_sig_arg = 221, RULE_func_sig_arg_list = 222, RULE_func_sig = 223, - RULE_func_sig_list = 224, RULE_type_name = 225, RULE_timezone = 226, RULE_oper = 227, - RULE_aggregate = 228, RULE_name_ = 229, RULE_name_list = 230, RULE_identifier_list = 231, - RULE_option_expr = 232, RULE_option_list = 233, RULE_table_name_ = 234, - RULE_data_type = 235, RULE_data_type_list = 236, RULE_index_method = 237, - RULE_func_name = 238, RULE_func_call = 239, RULE_array_cons_expr = 240, - RULE_from_item = 241, RULE_with_column_alias = 242, RULE_join_type = 243, - RULE_join_clause = 244, RULE_predicate = 245, RULE_aggregate_signature = 246, - RULE_column_constraint = 247, RULE_column_constraints = 248, RULE_index_parameters = 249, - RULE_exclude_element = 250, RULE_table_constraint = 251, RULE_role_name = 252, - RULE_role_name_list = 253, RULE_param_value = 254, RULE_non_reserved_keyword = 255, - RULE_identifier = 256, RULE_todo_fill_in = 257, RULE_todo_implement = 258, - RULE_correlation_name = 259, RULE_column_name = 260, RULE_alias = 261, - RULE_column_alias = 262, RULE_column_definition = 263, RULE_window_name = 264; - public static final String[] ruleNames = { - "root", "stmt", "abort_stmt", "alter_stmt", "alter_aggregate_stmt", "alter_collation_stmt", - "alter_conversion_stmt", "alter_database_stmt", "alter_default_privileges_stmt", - "alter_domain_stmt", "alter_event_trigger_stmt", "alter_extension_stmt", - "alter_foreign_data_wrapper_stmt", "alter_foreign_table_action", "alter_foreign_table_action_list", - "alter_foreign_table_stmt", "alter_function_stmt", "alter_group_stmt", - "alter_index_stmt", "alter_language_stmt", "alter_large_object_stmt", - "alter_materialize_view_stmt", "alter_operator_stmt", "alter_operator_class_stmt", - "alter_operator_family_stmt", "alter_policy_stmt", "alter_publication_stmt", - "alter_role_options", "alter_role_stmt", "alter_rule_stmt", "alter_schema_stmt", - "alter_sequence_stmt", "alter_server_options_list", "alter_server_stmt", - "alter_statistics_stmt", "alter_subscription_stmt", "alter_system_stmt", - "alter_table_stmt", "alter_tablespace_stmt", "alter_text_search_config_stmt", - "alter_text_search_dict_stmt", "alter_text_search_parser_stmt", "alter_text_search_template_stmt", - "alter_trigger_stmt", "alter_type_stmt", "alter_user_stmt", "alter_user_mapping_stmt", - "alter_view_stmt", "analyze_stmt", "close_stmt", "cluster_stmt", "comment_stmt", - "commit_stmt", "commit_prepared_stmt", "copy_stmt", "create_stmt", "create_access_method_stmt", - "create_aggregate_stmt", "create_cast_stmt", "create_collation_opt", "create_collation_opt_list", - "create_collation_stmt", "create_conversion_stmt", "create_database_stmt", - "domain_constraint", "create_domain_stmt", "create_event_trigger_cond", - "create_event_trigger_stmt", "create_foreign_data_options", "create_foreign_data_stmt", - "create_foreign_table_stmt", "create_function_stmt", "create_group_stmt", - "create_index_stmt", "create_language_stmt", "create_materialized_view_stmt", - "create_operator_stmt", "create_operator_class_opt", "create_operator_class_stmt", - "create_operator_family_stmt", "create_policy_stmt", "create_role_stmt", - "create_rule_event", "create_rule_stmt", "create_schema_stmt", "create_sequence_stmt", - "create_server_stmt", "create_statistics_stmt", "create_subscription_stmt", - "create_table_stmt", "create_table_as_stmt", "create_tablespace_stmt", - "create_text_search_config_stmt", "create_text_search_dict_stmt", "create_text_search_parser_stmt", - "create_text_search_template_stmt", "create_transform_stmt", "create_trigger_stmt", - "create_type_stmt", "create_user_stmt", "create_user_mapping_stmt", "create_view_stmt", - "deallocate_stmt", "declare_stmt", "delete_stmt", "discard_stmt", "drop_stmt", - "drop_access_method_stmt", "drop_aggregate_stmt", "drop_cast_stmt", "drop_collation_stmt", - "drop_conversion_stmt", "drop_database_stmt", "drop_domain_stmt", "drop_event_trigger_stmt", - "drop_extension_stmt", "drop_foreign_data_wrapper_stmt", "drop_foreign_table_stmt", - "drop_function_stmt", "drop_group_stmt", "drop_index_stmt", "drop_language_stmt", - "drop_materialized_view_stmt", "drop_operator_stmt", "drop_operator_class_stmt", - "drop_operator_family_stmt", "drop_owned_stmt", "drop_policy_stmt", "drop_publication_stmt", - "drop_role_stmt", "drop_rule_stmt", "drop_schema_stmt", "drop_sequence_stmt", - "drop_server_stmt", "drop_statistics_stmt", "drop_subscription_stmt", - "drop_table_stmt", "drop_tablespace_stmt", "drop_text_search_config_stmt", - "drop_text_search_dict_stmt", "drop_text_search_parser_stmt", "drop_text_search_template_stmt", - "drop_transform_stmt", "drop_trigger_stmt", "drop_type_stmt", "drop_user_stmt", - "drop_user_mapping_stmt", "drop_view_stmt", "execute_stmt", "explain_stmt", - "fetch_stmt", "grant_stmt", "import_foreign_schema_stmt", "insert_stmt", - "listen_stmt", "load_stmt", "lock_stmt", "move_stmt", "notify_stmt", "prepare_stmt", - "prepare_transaction_stmt", "reassign_owned_stmt", "refresh_materialized_view_stmt", - "reindex_stmt", "release_savepoint_stmt", "reset_stmt", "revoke_stmt", - "rollback_stmt", "rollback_prepared_stmt", "rollback_to_savepoint_stmt", - "savepoint_stmt", "security_label_stmt", "select_stmt", "select_into_stmt", - "with_clause", "with_expr", "set_stmt", "set_constraints_stmt", "set_role_stmt", - "set_session_authorization_stmt", "transaction_mode", "transaction_mode_list", - "set_transaction_stmt", "show_stmt", "truncate_stmt", "unlisten_stmt", - "update_stmt", "vacuum_opt", "vacuum_opt_list", "vacuum_stmt", "values_stmt", - "selector_clause", "from_clause", "where_clause", "group_by_clause", "grouping_elem", - "grouping_elem_list", "having_clause", "column_list", "explain_parameter", - "frame", "frame_start", "frame_end", "frame_clause", "window_definition", - "window_clause", "combine_clause", "order_by_clause", "order_by_item", - "limit_clause", "offset_clause", "fetch_clause", "for_clause", "updater_clause", - "updater_expr", "returning_clause", "expr", "bool_expr", "case_expr", - "expr_list", "expr_list_list", "func_sig_arg", "func_sig_arg_list", "func_sig", - "func_sig_list", "type_name", "timezone", "oper", "aggregate", "name_", - "name_list", "identifier_list", "option_expr", "option_list", "table_name_", - "data_type", "data_type_list", "index_method", "func_name", "func_call", - "array_cons_expr", "from_item", "with_column_alias", "join_type", "join_clause", - "predicate", "aggregate_signature", "column_constraint", "column_constraints", - "index_parameters", "exclude_element", "table_constraint", "role_name", - "role_name_list", "param_value", "non_reserved_keyword", "identifier", - "todo_fill_in", "todo_implement", "correlation_name", "column_name", "alias", - "column_alias", "column_definition", "window_name" - }; - - private static final String[] _LITERAL_NAMES = { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", - "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, - null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", - "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", - "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", - "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", - "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", - "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", - "';'" - }; - private static final String[] _SYMBOLIC_NAMES = { - null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", - "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", - "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", - "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", - "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", - "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", - "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", - "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", - "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", - "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", - "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", - "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", - "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", - "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", - "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", - "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", - "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", - "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", - "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", - "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", - "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", - "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", - "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", - "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", - "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", - "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", - "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", - "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", - "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", - "DICTIONARY", "DISABLE", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", - "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", - "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", - "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", - "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", - "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", - "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", - "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", - "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", - "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", - "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", - "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", - "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", - "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", - "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", - "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", - "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", - "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", - "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", - "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", - "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", - "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", - "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", - "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", - "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", - "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", - "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", - "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", - "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", - "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", - "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", - "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", - "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", - "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", - "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", - "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", - "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", - "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", - "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", - "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", - "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", - "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", - "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", - "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", - "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", - "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", - "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", - "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", - "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", - "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", - "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", - "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", - "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", - "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", - "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", - "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", - "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", - "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", - "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", - "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", - "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", - "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", - "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", - "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", - "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", - "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", - "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", - "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", - "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", - "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", - "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", - "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", - "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", - "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", - "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", - "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", - "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", - "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", - "HYPOTHETICAL", "SAFE", "RESTRICTED", "UNSAFE", "BASETYPE", "IF", "LOCALE", - "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", - "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", - "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", - "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", - "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", - "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", - "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", - "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", - "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", - "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", - "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", - "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", - "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", - "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", - "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", - "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", - "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", - "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", - "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", - "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", - "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", - "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI", - "UNLOGGED" - }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - @Override - public String getGrammarFileName() { - return "PostgreSQLParser.g4"; - } - - @Override - public String[] getRuleNames() { - return ruleNames; - } - - @Override - public String getSerializedATN() { - return _serializedATN; - } - - @Override - public ATN getATN() { - return _ATN; - } - - public PostgreSQLParser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache); - } - - public static class RootContext extends ParserRuleContext { - public List stmt() { - return getRuleContexts(StmtContext.class); - } - - public StmtContext stmt(int i) { - return getRuleContext(StmtContext.class, i); - } - - public TerminalNode EOF() { - return getToken(PostgreSQLParser.EOF, 0); - } - - public List SEMI() { - return getTokens(PostgreSQLParser.SEMI); - } - - public TerminalNode SEMI(int i) { - return getToken(PostgreSQLParser.SEMI, i); - } - - public RootContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_root; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterRoot(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitRoot(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRoot(this); - else return visitor.visitChildren(this); - } - } - - public final RootContext root() throws RecognitionException { - RootContext _localctx = new RootContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_root); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(530); - stmt(); - setState(539); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == SEMI) { - { - setState(533); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(531); - match(SEMI); - setState(532); - stmt(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(535); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 0, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - setState(537); - match(SEMI); - } - } - - setState(541); - match(EOF); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class StmtContext extends ParserRuleContext { - public Abort_stmtContext abort_stmt() { - return getRuleContext(Abort_stmtContext.class, 0); - } - - public Alter_stmtContext alter_stmt() { - return getRuleContext(Alter_stmtContext.class, 0); - } - - public Analyze_stmtContext analyze_stmt() { - return getRuleContext(Analyze_stmtContext.class, 0); - } - - public Create_stmtContext create_stmt() { - return getRuleContext(Create_stmtContext.class, 0); - } - - public Close_stmtContext close_stmt() { - return getRuleContext(Close_stmtContext.class, 0); - } - - public Cluster_stmtContext cluster_stmt() { - return getRuleContext(Cluster_stmtContext.class, 0); - } - - public Comment_stmtContext comment_stmt() { - return getRuleContext(Comment_stmtContext.class, 0); - } - - public Commit_stmtContext commit_stmt() { - return getRuleContext(Commit_stmtContext.class, 0); - } - - public Commit_prepared_stmtContext commit_prepared_stmt() { - return getRuleContext(Commit_prepared_stmtContext.class, 0); - } - - public Copy_stmtContext copy_stmt() { - return getRuleContext(Copy_stmtContext.class, 0); - } - - public Deallocate_stmtContext deallocate_stmt() { - return getRuleContext(Deallocate_stmtContext.class, 0); - } - - public Declare_stmtContext declare_stmt() { - return getRuleContext(Declare_stmtContext.class, 0); - } - - public Delete_stmtContext delete_stmt() { - return getRuleContext(Delete_stmtContext.class, 0); - } - - public Discard_stmtContext discard_stmt() { - return getRuleContext(Discard_stmtContext.class, 0); - } - - public Drop_stmtContext drop_stmt() { - return getRuleContext(Drop_stmtContext.class, 0); - } - - public Execute_stmtContext execute_stmt() { - return getRuleContext(Execute_stmtContext.class, 0); - } - - public Explain_stmtContext explain_stmt() { - return getRuleContext(Explain_stmtContext.class, 0); - } - - public Fetch_stmtContext fetch_stmt() { - return getRuleContext(Fetch_stmtContext.class, 0); - } - - public Grant_stmtContext grant_stmt() { - return getRuleContext(Grant_stmtContext.class, 0); - } - - public Import_foreign_schema_stmtContext import_foreign_schema_stmt() { - return getRuleContext(Import_foreign_schema_stmtContext.class, 0); - } - - public Insert_stmtContext insert_stmt() { - return getRuleContext(Insert_stmtContext.class, 0); - } - - public Listen_stmtContext listen_stmt() { - return getRuleContext(Listen_stmtContext.class, 0); - } - - public Load_stmtContext load_stmt() { - return getRuleContext(Load_stmtContext.class, 0); - } - - public Lock_stmtContext lock_stmt() { - return getRuleContext(Lock_stmtContext.class, 0); - } - - public Move_stmtContext move_stmt() { - return getRuleContext(Move_stmtContext.class, 0); - } - - public Notify_stmtContext notify_stmt() { - return getRuleContext(Notify_stmtContext.class, 0); - } - - public Prepare_stmtContext prepare_stmt() { - return getRuleContext(Prepare_stmtContext.class, 0); - } - - public Prepare_transaction_stmtContext prepare_transaction_stmt() { - return getRuleContext(Prepare_transaction_stmtContext.class, 0); - } - - public Reassign_owned_stmtContext reassign_owned_stmt() { - return getRuleContext(Reassign_owned_stmtContext.class, 0); - } - - public Refresh_materialized_view_stmtContext refresh_materialized_view_stmt() { - return getRuleContext(Refresh_materialized_view_stmtContext.class, 0); - } - - public Reindex_stmtContext reindex_stmt() { - return getRuleContext(Reindex_stmtContext.class, 0); - } - - public Release_savepoint_stmtContext release_savepoint_stmt() { - return getRuleContext(Release_savepoint_stmtContext.class, 0); - } - - public Reset_stmtContext reset_stmt() { - return getRuleContext(Reset_stmtContext.class, 0); - } - - public Revoke_stmtContext revoke_stmt() { - return getRuleContext(Revoke_stmtContext.class, 0); - } - - public Rollback_stmtContext rollback_stmt() { - return getRuleContext(Rollback_stmtContext.class, 0); - } - - public Rollback_prepared_stmtContext rollback_prepared_stmt() { - return getRuleContext(Rollback_prepared_stmtContext.class, 0); - } - - public Rollback_to_savepoint_stmtContext rollback_to_savepoint_stmt() { - return getRuleContext(Rollback_to_savepoint_stmtContext.class, 0); - } - - public Savepoint_stmtContext savepoint_stmt() { - return getRuleContext(Savepoint_stmtContext.class, 0); - } - - public Security_label_stmtContext security_label_stmt() { - return getRuleContext(Security_label_stmtContext.class, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Select_into_stmtContext select_into_stmt() { - return getRuleContext(Select_into_stmtContext.class, 0); - } - - public Set_stmtContext set_stmt() { - return getRuleContext(Set_stmtContext.class, 0); - } - - public Set_constraints_stmtContext set_constraints_stmt() { - return getRuleContext(Set_constraints_stmtContext.class, 0); - } - - public Set_role_stmtContext set_role_stmt() { - return getRuleContext(Set_role_stmtContext.class, 0); - } - - public Set_session_authorization_stmtContext set_session_authorization_stmt() { - return getRuleContext(Set_session_authorization_stmtContext.class, 0); - } - - public Set_transaction_stmtContext set_transaction_stmt() { - return getRuleContext(Set_transaction_stmtContext.class, 0); - } - - public Show_stmtContext show_stmt() { - return getRuleContext(Show_stmtContext.class, 0); - } - - public Truncate_stmtContext truncate_stmt() { - return getRuleContext(Truncate_stmtContext.class, 0); - } - - public Unlisten_stmtContext unlisten_stmt() { - return getRuleContext(Unlisten_stmtContext.class, 0); - } - - public Update_stmtContext update_stmt() { - return getRuleContext(Update_stmtContext.class, 0); - } - - public Vacuum_stmtContext vacuum_stmt() { - return getRuleContext(Vacuum_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public StmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterStmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitStmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitStmt(this); - else return visitor.visitChildren(this); - } - } - - public final StmtContext stmt() throws RecognitionException { - StmtContext _localctx = new StmtContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(595); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 2, _ctx)) { - case 1: { - setState(543); - abort_stmt(); - } - break; - case 2: { - setState(544); - alter_stmt(); - } - break; - case 3: { - setState(545); - analyze_stmt(); - } - break; - case 4: { - setState(546); - create_stmt(); - } - break; - case 5: { - setState(547); - close_stmt(); - } - break; - case 6: { - setState(548); - cluster_stmt(); - } - break; - case 7: { - setState(549); - comment_stmt(); - } - break; - case 8: { - setState(550); - commit_stmt(); - } - break; - case 9: { - setState(551); - commit_prepared_stmt(); - } - break; - case 10: { - setState(552); - copy_stmt(); - } - break; - case 11: { - setState(553); - deallocate_stmt(); - } - break; - case 12: { - setState(554); - declare_stmt(); - } - break; - case 13: { - setState(555); - delete_stmt(); - } - break; - case 14: { - setState(556); - discard_stmt(); - } - break; - case 15: { - setState(557); - drop_stmt(); - } - break; - case 16: { - setState(558); - execute_stmt(); - } - break; - case 17: { - setState(559); - explain_stmt(); - } - break; - case 18: { - setState(560); - fetch_stmt(); - } - break; - case 19: { - setState(561); - grant_stmt(); - } - break; - case 20: { - setState(562); - import_foreign_schema_stmt(); - } - break; - case 21: { - setState(563); - insert_stmt(); - } - break; - case 22: { - setState(564); - listen_stmt(); - } - break; - case 23: { - setState(565); - load_stmt(); - } - break; - case 24: { - setState(566); - lock_stmt(); - } - break; - case 25: { - setState(567); - move_stmt(); - } - break; - case 26: { - setState(568); - notify_stmt(); - } - break; - case 27: { - setState(569); - prepare_stmt(); - } - break; - case 28: { - setState(570); - prepare_transaction_stmt(); - } - break; - case 29: { - setState(571); - reassign_owned_stmt(); - } - break; - case 30: { - setState(572); - refresh_materialized_view_stmt(); - } - break; - case 31: { - setState(573); - reindex_stmt(); - } - break; - case 32: { - setState(574); - release_savepoint_stmt(); - } - break; - case 33: { - setState(575); - reset_stmt(); - } - break; - case 34: { - setState(576); - revoke_stmt(); - } - break; - case 35: { - setState(577); - rollback_stmt(); - } - break; - case 36: { - setState(578); - rollback_prepared_stmt(); - } - break; - case 37: { - setState(579); - rollback_to_savepoint_stmt(); - } - break; - case 38: { - setState(580); - savepoint_stmt(); - } - break; - case 39: { - setState(581); - security_label_stmt(); - } - break; - case 40: { - setState(582); - select_stmt(); - } - break; - case 41: { - setState(583); - select_into_stmt(); - } - break; - case 42: { - setState(584); - set_stmt(); - } - break; - case 43: { - setState(585); - set_constraints_stmt(); - } - break; - case 44: { - setState(586); - set_role_stmt(); - } - break; - case 45: { - setState(587); - set_session_authorization_stmt(); - } - break; - case 46: { - setState(588); - set_transaction_stmt(); - } - break; - case 47: { - setState(589); - show_stmt(); - } - break; - case 48: { - setState(590); - truncate_stmt(); - } - break; - case 49: { - setState(591); - unlisten_stmt(); - } - break; - case 50: { - setState(592); - update_stmt(); - } - break; - case 51: { - setState(593); - vacuum_stmt(); - } - break; - case 52: { - setState(594); - values_stmt(); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Abort_stmtContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Abort_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_abort_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAbort_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAbort_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAbort_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Abort_stmtContext abort_stmt() throws RecognitionException { - Abort_stmtContext _localctx = new Abort_stmtContext(_ctx, getState()); - enterRule(_localctx, 4, RULE_abort_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(597); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_stmtContext extends ParserRuleContext { - public Alter_aggregate_stmtContext alter_aggregate_stmt() { - return getRuleContext(Alter_aggregate_stmtContext.class, 0); - } - - public Alter_collation_stmtContext alter_collation_stmt() { - return getRuleContext(Alter_collation_stmtContext.class, 0); - } - - public Alter_conversion_stmtContext alter_conversion_stmt() { - return getRuleContext(Alter_conversion_stmtContext.class, 0); - } - - public Alter_database_stmtContext alter_database_stmt() { - return getRuleContext(Alter_database_stmtContext.class, 0); - } - - public Alter_default_privileges_stmtContext alter_default_privileges_stmt() { - return getRuleContext(Alter_default_privileges_stmtContext.class, 0); - } - - public Alter_domain_stmtContext alter_domain_stmt() { - return getRuleContext(Alter_domain_stmtContext.class, 0); - } - - public Alter_event_trigger_stmtContext alter_event_trigger_stmt() { - return getRuleContext(Alter_event_trigger_stmtContext.class, 0); - } - - public Alter_extension_stmtContext alter_extension_stmt() { - return getRuleContext(Alter_extension_stmtContext.class, 0); - } - - public Alter_foreign_data_wrapper_stmtContext alter_foreign_data_wrapper_stmt() { - return getRuleContext(Alter_foreign_data_wrapper_stmtContext.class, 0); - } - - public Alter_foreign_table_stmtContext alter_foreign_table_stmt() { - return getRuleContext(Alter_foreign_table_stmtContext.class, 0); - } - - public Alter_function_stmtContext alter_function_stmt() { - return getRuleContext(Alter_function_stmtContext.class, 0); - } - - public Alter_group_stmtContext alter_group_stmt() { - return getRuleContext(Alter_group_stmtContext.class, 0); - } - - public Alter_index_stmtContext alter_index_stmt() { - return getRuleContext(Alter_index_stmtContext.class, 0); - } - - public Alter_language_stmtContext alter_language_stmt() { - return getRuleContext(Alter_language_stmtContext.class, 0); - } - - public Alter_large_object_stmtContext alter_large_object_stmt() { - return getRuleContext(Alter_large_object_stmtContext.class, 0); - } - - public Alter_materialize_view_stmtContext alter_materialize_view_stmt() { - return getRuleContext(Alter_materialize_view_stmtContext.class, 0); - } - - public Alter_operator_stmtContext alter_operator_stmt() { - return getRuleContext(Alter_operator_stmtContext.class, 0); - } - - public Alter_operator_class_stmtContext alter_operator_class_stmt() { - return getRuleContext(Alter_operator_class_stmtContext.class, 0); - } - - public Alter_operator_family_stmtContext alter_operator_family_stmt() { - return getRuleContext(Alter_operator_family_stmtContext.class, 0); - } - - public Alter_policy_stmtContext alter_policy_stmt() { - return getRuleContext(Alter_policy_stmtContext.class, 0); - } - - public Alter_publication_stmtContext alter_publication_stmt() { - return getRuleContext(Alter_publication_stmtContext.class, 0); - } - - public Alter_role_stmtContext alter_role_stmt() { - return getRuleContext(Alter_role_stmtContext.class, 0); - } - - public Alter_rule_stmtContext alter_rule_stmt() { - return getRuleContext(Alter_rule_stmtContext.class, 0); - } - - public Alter_schema_stmtContext alter_schema_stmt() { - return getRuleContext(Alter_schema_stmtContext.class, 0); - } - - public Alter_sequence_stmtContext alter_sequence_stmt() { - return getRuleContext(Alter_sequence_stmtContext.class, 0); - } - - public Alter_server_stmtContext alter_server_stmt() { - return getRuleContext(Alter_server_stmtContext.class, 0); - } - - public Alter_statistics_stmtContext alter_statistics_stmt() { - return getRuleContext(Alter_statistics_stmtContext.class, 0); - } - - public Alter_subscription_stmtContext alter_subscription_stmt() { - return getRuleContext(Alter_subscription_stmtContext.class, 0); - } - - public Alter_system_stmtContext alter_system_stmt() { - return getRuleContext(Alter_system_stmtContext.class, 0); - } - - public Alter_table_stmtContext alter_table_stmt() { - return getRuleContext(Alter_table_stmtContext.class, 0); - } - - public Alter_tablespace_stmtContext alter_tablespace_stmt() { - return getRuleContext(Alter_tablespace_stmtContext.class, 0); - } - - public Alter_text_search_config_stmtContext alter_text_search_config_stmt() { - return getRuleContext(Alter_text_search_config_stmtContext.class, 0); - } - - public Alter_text_search_dict_stmtContext alter_text_search_dict_stmt() { - return getRuleContext(Alter_text_search_dict_stmtContext.class, 0); - } - - public Alter_text_search_parser_stmtContext alter_text_search_parser_stmt() { - return getRuleContext(Alter_text_search_parser_stmtContext.class, 0); - } - - public Alter_text_search_template_stmtContext alter_text_search_template_stmt() { - return getRuleContext(Alter_text_search_template_stmtContext.class, 0); - } - - public Alter_trigger_stmtContext alter_trigger_stmt() { - return getRuleContext(Alter_trigger_stmtContext.class, 0); - } - - public Alter_type_stmtContext alter_type_stmt() { - return getRuleContext(Alter_type_stmtContext.class, 0); - } - - public Alter_user_stmtContext alter_user_stmt() { - return getRuleContext(Alter_user_stmtContext.class, 0); - } - - public Alter_user_mapping_stmtContext alter_user_mapping_stmt() { - return getRuleContext(Alter_user_mapping_stmtContext.class, 0); - } - - public Alter_view_stmtContext alter_view_stmt() { - return getRuleContext(Alter_view_stmtContext.class, 0); - } - - public Alter_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_stmtContext alter_stmt() throws RecognitionException { - Alter_stmtContext _localctx = new Alter_stmtContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_alter_stmt); - try { - setState(639); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 3, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(599); - alter_aggregate_stmt(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(600); - alter_collation_stmt(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(601); - alter_conversion_stmt(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(602); - alter_database_stmt(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(603); - alter_default_privileges_stmt(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(604); - alter_domain_stmt(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(605); - alter_event_trigger_stmt(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(606); - alter_extension_stmt(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(607); - alter_foreign_data_wrapper_stmt(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(608); - alter_foreign_table_stmt(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(609); - alter_function_stmt(); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(610); - alter_group_stmt(); - } - break; - case 13: - enterOuterAlt(_localctx, 13); - { - setState(611); - alter_index_stmt(); - } - break; - case 14: - enterOuterAlt(_localctx, 14); - { - setState(612); - alter_language_stmt(); - } - break; - case 15: - enterOuterAlt(_localctx, 15); - { - setState(613); - alter_large_object_stmt(); - } - break; - case 16: - enterOuterAlt(_localctx, 16); - { - setState(614); - alter_materialize_view_stmt(); - } - break; - case 17: - enterOuterAlt(_localctx, 17); - { - setState(615); - alter_operator_stmt(); - } - break; - case 18: - enterOuterAlt(_localctx, 18); - { - setState(616); - alter_operator_class_stmt(); - } - break; - case 19: - enterOuterAlt(_localctx, 19); - { - setState(617); - alter_operator_family_stmt(); - } - break; - case 20: - enterOuterAlt(_localctx, 20); - { - setState(618); - alter_policy_stmt(); - } - break; - case 21: - enterOuterAlt(_localctx, 21); - { - setState(619); - alter_publication_stmt(); - } - break; - case 22: - enterOuterAlt(_localctx, 22); - { - setState(620); - alter_role_stmt(); - } - break; - case 23: - enterOuterAlt(_localctx, 23); - { - setState(621); - alter_rule_stmt(); - } - break; - case 24: - enterOuterAlt(_localctx, 24); - { - setState(622); - alter_schema_stmt(); - } - break; - case 25: - enterOuterAlt(_localctx, 25); - { - setState(623); - alter_sequence_stmt(); - } - break; - case 26: - enterOuterAlt(_localctx, 26); - { - setState(624); - alter_server_stmt(); - } - break; - case 27: - enterOuterAlt(_localctx, 27); - { - setState(625); - alter_statistics_stmt(); - } - break; - case 28: - enterOuterAlt(_localctx, 28); - { - setState(626); - alter_subscription_stmt(); - } - break; - case 29: - enterOuterAlt(_localctx, 29); - { - setState(627); - alter_system_stmt(); - } - break; - case 30: - enterOuterAlt(_localctx, 30); - { - setState(628); - alter_table_stmt(); - } - break; - case 31: - enterOuterAlt(_localctx, 31); - { - setState(629); - alter_tablespace_stmt(); - } - break; - case 32: - enterOuterAlt(_localctx, 32); - { - setState(630); - alter_text_search_config_stmt(); - } - break; - case 33: - enterOuterAlt(_localctx, 33); - { - setState(631); - alter_text_search_dict_stmt(); - } - break; - case 34: - enterOuterAlt(_localctx, 34); - { - setState(632); - alter_text_search_parser_stmt(); - } - break; - case 35: - enterOuterAlt(_localctx, 35); - { - setState(633); - alter_text_search_template_stmt(); - } - break; - case 36: - enterOuterAlt(_localctx, 36); - { - setState(634); - alter_trigger_stmt(); - } - break; - case 37: - enterOuterAlt(_localctx, 37); - { - setState(635); - alter_type_stmt(); - } - break; - case 38: - enterOuterAlt(_localctx, 38); - { - setState(636); - alter_user_stmt(); - } - break; - case 39: - enterOuterAlt(_localctx, 39); - { - setState(637); - alter_user_mapping_stmt(); - } - break; - case 40: - enterOuterAlt(_localctx, 40); - { - setState(638); - alter_view_stmt(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_aggregate_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public Role_nameContext new_owner; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode AGGREGATE() { - return getToken(PostgreSQLParser.AGGREGATE, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Aggregate_signatureContext aggregate_signature() { - return getRuleContext(Aggregate_signatureContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_aggregate_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_aggregate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_aggregate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_aggregate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_aggregate_stmtContext alter_aggregate_stmt() throws RecognitionException { - Alter_aggregate_stmtContext _localctx = new Alter_aggregate_stmtContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_alter_aggregate_stmt); - try { - setState(671); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 4, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(641); - match(ALTER); - setState(642); - match(AGGREGATE); - setState(643); - ((Alter_aggregate_stmtContext) _localctx).name = identifier(0); - setState(644); - match(OPEN_PAREN); - setState(645); - aggregate_signature(); - setState(646); - match(CLOSE_PAREN); - setState(647); - match(RENAME); - setState(648); - match(TO); - setState(649); - ((Alter_aggregate_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(651); - match(ALTER); - setState(652); - match(AGGREGATE); - setState(653); - ((Alter_aggregate_stmtContext) _localctx).name = identifier(0); - setState(654); - match(OPEN_PAREN); - setState(655); - aggregate_signature(); - setState(656); - match(CLOSE_PAREN); - setState(657); - match(OWNER); - setState(658); - match(TO); - setState(659); - ((Alter_aggregate_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(661); - match(ALTER); - setState(662); - match(AGGREGATE); - setState(663); - ((Alter_aggregate_stmtContext) _localctx).name = identifier(0); - setState(664); - match(OPEN_PAREN); - setState(665); - aggregate_signature(); - setState(666); - match(CLOSE_PAREN); - setState(667); - match(SET); - setState(668); - match(SCHEMA); - setState(669); - ((Alter_aggregate_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_collation_stmtContext extends ParserRuleContext { - public Name_Context name; - public IdentifierContext new_name; - public Role_nameContext new_owner; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode COLLATION() { - return getToken(PostgreSQLParser.COLLATION, 0); - } - - public TerminalNode REFRESH() { - return getToken(PostgreSQLParser.REFRESH, 0); - } - - public TerminalNode VERSION() { - return getToken(PostgreSQLParser.VERSION, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_collation_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_collation_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_collation_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_collation_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_collation_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_collation_stmtContext alter_collation_stmt() throws RecognitionException { - Alter_collation_stmtContext _localctx = new Alter_collation_stmtContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_alter_collation_stmt); - try { - setState(700); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 5, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(673); - match(ALTER); - setState(674); - match(COLLATION); - setState(675); - ((Alter_collation_stmtContext) _localctx).name = name_(); - setState(676); - match(REFRESH); - setState(677); - match(VERSION); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(679); - match(ALTER); - setState(680); - match(COLLATION); - setState(681); - ((Alter_collation_stmtContext) _localctx).name = name_(); - setState(682); - match(RENAME); - setState(683); - match(TO); - setState(684); - ((Alter_collation_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(686); - match(ALTER); - setState(687); - match(COLLATION); - setState(688); - ((Alter_collation_stmtContext) _localctx).name = name_(); - setState(689); - match(OWNER); - setState(690); - match(TO); - setState(691); - ((Alter_collation_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(693); - match(ALTER); - setState(694); - match(COLLATION); - setState(695); - ((Alter_collation_stmtContext) _localctx).name = name_(); - setState(696); - match(SET); - setState(697); - match(SCHEMA); - setState(698); - ((Alter_collation_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_conversion_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public Role_nameContext new_owner; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode CONVERSION() { - return getToken(PostgreSQLParser.CONVERSION, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_conversion_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_conversion_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_conversion_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_conversion_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_conversion_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_conversion_stmtContext alter_conversion_stmt() throws RecognitionException { - Alter_conversion_stmtContext _localctx = new Alter_conversion_stmtContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_alter_conversion_stmt); - try { - setState(723); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 6, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(702); - match(ALTER); - setState(703); - match(CONVERSION); - setState(704); - ((Alter_conversion_stmtContext) _localctx).name = identifier(0); - setState(705); - match(RENAME); - setState(706); - match(TO); - setState(707); - ((Alter_conversion_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(709); - match(ALTER); - setState(710); - match(CONVERSION); - setState(711); - ((Alter_conversion_stmtContext) _localctx).name = identifier(0); - setState(712); - match(OWNER); - setState(713); - match(TO); - setState(714); - ((Alter_conversion_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(716); - match(ALTER); - setState(717); - match(CONVERSION); - setState(718); - ((Alter_conversion_stmtContext) _localctx).name = identifier(0); - setState(719); - match(SET); - setState(720); - match(SCHEMA); - setState(721); - ((Alter_conversion_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_database_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_database_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_database_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_database_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_database_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_database_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_database_stmtContext alter_database_stmt() throws RecognitionException { - Alter_database_stmtContext _localctx = new Alter_database_stmtContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_alter_database_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(725); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_default_privileges_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_default_privileges_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_default_privileges_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_default_privileges_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_default_privileges_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_default_privileges_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_default_privileges_stmtContext alter_default_privileges_stmt() throws RecognitionException { - Alter_default_privileges_stmtContext _localctx = new Alter_default_privileges_stmtContext(_ctx, getState()); - enterRule(_localctx, 16, RULE_alter_default_privileges_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(727); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_domain_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext constraint_name; - public IdentifierContext new_constraint_name; - public Role_nameContext new_owner; - public IdentifierContext new_name; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode DOMAIN() { - return getToken(PostgreSQLParser.DOMAIN, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode NULL() { - return getToken(PostgreSQLParser.NULL, 0); - } - - public TerminalNode ADD() { - return getToken(PostgreSQLParser.ADD, 0); - } - - public Domain_constraintContext domain_constraint() { - return getRuleContext(Domain_constraintContext.class, 0); - } - - public TerminalNode VALID() { - return getToken(PostgreSQLParser.VALID, 0); - } - - public TerminalNode CONSTRAINT() { - return getToken(PostgreSQLParser.CONSTRAINT, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode VALIDATE() { - return getToken(PostgreSQLParser.VALIDATE, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_domain_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_domain_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_domain_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_domain_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_domain_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_domain_stmtContext alter_domain_stmt() throws RecognitionException { - Alter_domain_stmtContext _localctx = new Alter_domain_stmtContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_alter_domain_stmt); - int _la; - try { - setState(805); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 11, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(729); - match(ALTER); - setState(730); - match(DOMAIN); - setState(731); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(737); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SET: { - setState(732); - match(SET); - setState(733); - match(DEFAULT); - setState(734); - expr(0); - } - break; - case DROP: { - setState(735); - match(DROP); - setState(736); - match(DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(739); - match(ALTER); - setState(740); - match(DOMAIN); - setState(741); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(742); - _la = _input.LA(1); - if (!(_la == DROP || _la == SET)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(743); - match(NOT); - setState(744); - match(NULL); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(746); - match(ALTER); - setState(747); - match(DOMAIN); - setState(748); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(749); - match(ADD); - setState(750); - domain_constraint(); - setState(753); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(751); - match(NOT); - setState(752); - match(VALID); - } - } - - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(755); - match(ALTER); - setState(756); - match(DOMAIN); - setState(757); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(758); - match(DROP); - setState(759); - match(CONSTRAINT); - setState(762); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(760); - match(IF); - setState(761); - match(EXISTS); - } - } - - setState(764); - ((Alter_domain_stmtContext) _localctx).constraint_name = identifier(0); - setState(766); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(765); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(768); - match(ALTER); - setState(769); - match(DOMAIN); - setState(770); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(771); - match(RENAME); - setState(772); - match(CONSTRAINT); - setState(773); - ((Alter_domain_stmtContext) _localctx).constraint_name = identifier(0); - setState(774); - match(TO); - setState(775); - ((Alter_domain_stmtContext) _localctx).new_constraint_name = identifier(0); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(777); - match(ALTER); - setState(778); - match(DOMAIN); - setState(779); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(780); - match(VALIDATE); - setState(781); - match(CONSTRAINT); - setState(782); - ((Alter_domain_stmtContext) _localctx).constraint_name = identifier(0); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(784); - match(ALTER); - setState(785); - match(DOMAIN); - setState(786); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(787); - match(OWNER); - setState(788); - match(TO); - setState(789); - ((Alter_domain_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(791); - match(ALTER); - setState(792); - match(DOMAIN); - setState(793); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(794); - match(RENAME); - setState(795); - match(TO); - setState(796); - ((Alter_domain_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(798); - match(ALTER); - setState(799); - match(DOMAIN); - setState(800); - ((Alter_domain_stmtContext) _localctx).name = identifier(0); - setState(801); - match(SET); - setState(802); - match(SCHEMA); - setState(803); - ((Alter_domain_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_event_trigger_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_owner; - public IdentifierContext new_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode EVENT() { - return getToken(PostgreSQLParser.EVENT, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public TerminalNode DISABLE() { - return getToken(PostgreSQLParser.DISABLE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode ENABLE() { - return getToken(PostgreSQLParser.ENABLE, 0); - } - - public TerminalNode REPLICA() { - return getToken(PostgreSQLParser.REPLICA, 0); - } - - public TerminalNode ALWAYS() { - return getToken(PostgreSQLParser.ALWAYS, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public Alter_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_event_trigger_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_event_trigger_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_event_trigger_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_event_trigger_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws RecognitionException { - Alter_event_trigger_stmtContext _localctx = new Alter_event_trigger_stmtContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_alter_event_trigger_stmt); - int _la; - try { - setState(840); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 14, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(807); - match(ALTER); - setState(808); - match(EVENT); - setState(809); - match(TRIGGER); - setState(810); - ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); - setState(811); - match(DISABLE); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(813); - match(ALTER); - setState(814); - match(EVENT); - setState(815); - match(TRIGGER); - setState(816); - ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); - setState(817); - match(ENABLE); - setState(819); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ALWAYS || _la == REPLICA) { - { - setState(818); - _la = _input.LA(1); - if (!(_la == ALWAYS || _la == REPLICA)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(821); - match(ALTER); - setState(822); - match(EVENT); - setState(823); - match(TRIGGER); - setState(824); - ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); - setState(825); - match(OWNER); - setState(826); - match(TO); - setState(830); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(827); - ((Alter_event_trigger_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(828); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(829); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(832); - match(ALTER); - setState(833); - match(EVENT); - setState(834); - match(TRIGGER); - setState(835); - ((Alter_event_trigger_stmtContext) _localctx).name = identifier(0); - setState(836); - match(RENAME); - setState(837); - match(TO); - setState(838); - ((Alter_event_trigger_stmtContext) _localctx).new_name = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_extension_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_version; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode EXTENSION() { - return getToken(PostgreSQLParser.EXTENSION, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_extension_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_extension_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_extension_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_extension_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_extension_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_extension_stmtContext alter_extension_stmt() throws RecognitionException { - Alter_extension_stmtContext _localctx = new Alter_extension_stmtContext(_ctx, getState()); - enterRule(_localctx, 22, RULE_alter_extension_stmt); - int _la; - try { - setState(857); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 16, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(842); - match(ALTER); - setState(843); - match(EXTENSION); - setState(844); - ((Alter_extension_stmtContext) _localctx).name = identifier(0); - setState(845); - match(UPDATE); - setState(848); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TO) { - { - setState(846); - match(TO); - setState(847); - ((Alter_extension_stmtContext) _localctx).new_version = identifier(0); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(850); - match(ALTER); - setState(851); - match(EXTENSION); - setState(852); - ((Alter_extension_stmtContext) _localctx).name = identifier(0); - setState(853); - match(SET); - setState(854); - match(SCHEMA); - setState(855); - ((Alter_extension_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_foreign_data_wrapper_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_foreign_data_wrapper_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_foreign_data_wrapper_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_foreign_data_wrapper_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_foreign_data_wrapper_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_data_wrapper_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_foreign_data_wrapper_stmtContext alter_foreign_data_wrapper_stmt() throws RecognitionException { - Alter_foreign_data_wrapper_stmtContext _localctx = new Alter_foreign_data_wrapper_stmtContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_alter_foreign_data_wrapper_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(859); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_foreign_table_actionContext extends ParserRuleContext { - public Column_nameContext column_name_; - public Data_typeContext data_type_; - public IdentifierContext collation; - public Column_constraintsContext column_constraints_; - public Option_listContext attribute_values; - public Identifier_listContext attributes; - public Todo_fill_inContext constraint_name; - public Todo_fill_inContext trigger_name; - public IdentifierContext parent_table; - public Role_nameContext new_owner; - - public TerminalNode ADD() { - return getToken(PostgreSQLParser.ADD, 0); - } - - public Column_nameContext column_name() { - return getRuleContext(Column_nameContext.class, 0); - } - - public Data_typeContext data_type() { - return getRuleContext(Data_typeContext.class, 0); - } - - public TerminalNode COLUMN() { - return getToken(PostgreSQLParser.COLUMN, 0); - } - - public TerminalNode COLLATE() { - return getToken(PostgreSQLParser.COLLATE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Column_constraintsContext column_constraints() { - return getRuleContext(Column_constraintsContext.class, 0); - } - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode TYPE() { - return getToken(PostgreSQLParser.TYPE, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode DATA() { - return getToken(PostgreSQLParser.DATA, 0); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode NULL() { - return getToken(PostgreSQLParser.NULL, 0); - } - - public TerminalNode STATISTICS() { - return getToken(PostgreSQLParser.STATISTICS, 0); - } - - public TerminalNode INTEGER() { - return getToken(PostgreSQLParser.INTEGER, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode STORAGE() { - return getToken(PostgreSQLParser.STORAGE, 0); - } - - public TerminalNode PLAIN() { - return getToken(PostgreSQLParser.PLAIN, 0); - } - - public TerminalNode EXTERNAL() { - return getToken(PostgreSQLParser.EXTERNAL, 0); - } - - public TerminalNode EXTENDED() { - return getToken(PostgreSQLParser.EXTENDED, 0); - } - - public TerminalNode MAIN() { - return getToken(PostgreSQLParser.MAIN, 0); - } - - public TerminalNode OPTIONS() { - return getToken(PostgreSQLParser.OPTIONS, 0); - } - - public Table_constraintContext table_constraint() { - return getRuleContext(Table_constraintContext.class, 0); - } - - public TerminalNode VALID() { - return getToken(PostgreSQLParser.VALID, 0); - } - - public TerminalNode VALIDATE() { - return getToken(PostgreSQLParser.VALIDATE, 0); - } - - public TerminalNode CONSTRAINT() { - return getToken(PostgreSQLParser.CONSTRAINT, 0); - } - - public Todo_fill_inContext todo_fill_in() { - return getRuleContext(Todo_fill_inContext.class, 0); - } - - public TerminalNode DISABLE() { - return getToken(PostgreSQLParser.DISABLE, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode USER() { - return getToken(PostgreSQLParser.USER, 0); - } - - public TerminalNode ENABLE() { - return getToken(PostgreSQLParser.ENABLE, 0); - } - - public TerminalNode REPLICA() { - return getToken(PostgreSQLParser.REPLICA, 0); - } - - public TerminalNode ALWAYS() { - return getToken(PostgreSQLParser.ALWAYS, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode OIDS() { - return getToken(PostgreSQLParser.OIDS, 0); - } - - public TerminalNode WITHOUT() { - return getToken(PostgreSQLParser.WITHOUT, 0); - } - - public TerminalNode INHERIT() { - return getToken(PostgreSQLParser.INHERIT, 0); - } - - public TerminalNode NO() { - return getToken(PostgreSQLParser.NO, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public Alter_foreign_table_actionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_foreign_table_action; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_foreign_table_action(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_foreign_table_action(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_table_action(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_foreign_table_actionContext alter_foreign_table_action() throws RecognitionException { - Alter_foreign_table_actionContext _localctx = new Alter_foreign_table_actionContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_alter_foreign_table_action); - int _la; - try { - setState(1033); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 41, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(861); - match(ADD); - setState(863); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(862); - match(COLUMN); - } - } - - setState(865); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(866); - ((Alter_foreign_table_actionContext) _localctx).data_type_ = data_type(); - setState(869); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLLATE) { - { - setState(867); - match(COLLATE); - setState(868); - ((Alter_foreign_table_actionContext) _localctx).collation = identifier(0); - } - } - - setState(872); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(871); - ((Alter_foreign_table_actionContext) _localctx).column_constraints_ = column_constraints(); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(874); - match(DROP); - setState(876); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(875); - match(COLUMN); - } - } - - setState(880); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(878); - match(IF); - setState(879); - match(EXISTS); - } - } - - setState(882); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(884); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(883); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(886); - match(ALTER); - setState(888); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(887); - match(COLUMN); - } - } - - setState(890); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(893); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == SET) { - { - setState(891); - match(SET); - setState(892); - match(DATA); - } - } - - setState(895); - match(TYPE); - setState(896); - ((Alter_foreign_table_actionContext) _localctx).data_type_ = data_type(); - setState(899); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLLATE) { - { - setState(897); - match(COLLATE); - setState(898); - ((Alter_foreign_table_actionContext) _localctx).collation = identifier(0); - } - } - - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(901); - match(ALTER); - setState(903); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(902); - match(COLUMN); - } - } - - setState(905); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(906); - match(SET); - setState(907); - match(DEFAULT); - setState(908); - expr(0); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(910); - match(ALTER); - setState(912); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(911); - match(COLUMN); - } - } - - setState(914); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(915); - match(DROP); - setState(916); - match(DEFAULT); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(918); - match(ALTER); - setState(920); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(919); - match(COLUMN); - } - } - - setState(922); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(923); - _la = _input.LA(1); - if (!(_la == DROP || _la == SET)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(924); - match(NOT); - setState(925); - match(NULL); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(927); - match(ALTER); - setState(929); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(928); - match(COLUMN); - } - } - - setState(931); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(932); - match(SET); - setState(933); - match(STATISTICS); - setState(934); - match(INTEGER); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(936); - match(ALTER); - setState(938); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(937); - match(COLUMN); - } - } - - setState(940); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(941); - match(SET); - setState(942); - match(OPEN_PAREN); - setState(943); - ((Alter_foreign_table_actionContext) _localctx).attribute_values = option_list(); - setState(944); - match(CLOSE_PAREN); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(946); - match(ALTER); - setState(948); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(947); - match(COLUMN); - } - } - - setState(950); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(951); - match(RESET); - setState(952); - match(OPEN_PAREN); - setState(953); - ((Alter_foreign_table_actionContext) _localctx).attributes = identifier_list(); - setState(954); - match(CLOSE_PAREN); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(956); - match(ALTER); - setState(958); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(957); - match(COLUMN); - } - } - - setState(960); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(961); - match(SET); - setState(962); - match(STORAGE); - setState(963); - _la = _input.LA(1); - if (!(_la == EXTENDED || _la == EXTERNAL || _la == MAIN || _la == PLAIN)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(965); - match(ALTER); - setState(967); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(966); - match(COLUMN); - } - } - - setState(969); - ((Alter_foreign_table_actionContext) _localctx).column_name_ = column_name(); - setState(970); - match(OPTIONS); - { - setState(972); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ADD || _la == DROP || _la == SET) { - { - setState(971); - _la = _input.LA(1); - if (!(_la == ADD || _la == DROP || _la == SET)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(974); - match(ADD); - setState(975); - table_constraint(); - setState(978); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(976); - match(NOT); - setState(977); - match(VALID); - } - } - - } - break; - case 13: - enterOuterAlt(_localctx, 13); - { - setState(980); - match(VALIDATE); - setState(981); - match(CONSTRAINT); - setState(982); - ((Alter_foreign_table_actionContext) _localctx).constraint_name = todo_fill_in(); - } - break; - case 14: - enterOuterAlt(_localctx, 14); - { - setState(983); - match(DROP); - setState(984); - match(CONSTRAINT); - setState(987); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 36, _ctx)) { - case 1: { - setState(985); - match(IF); - setState(986); - match(EXISTS); - } - break; - } - setState(989); - ((Alter_foreign_table_actionContext) _localctx).constraint_name = todo_fill_in(); - setState(991); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(990); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - case 15: - enterOuterAlt(_localctx, 15); - { - setState(993); - match(DISABLE); - setState(994); - match(TRIGGER); - setState(998); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 38, _ctx)) { - case 1: { - setState(995); - ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); - } - break; - case 2: { - setState(996); - match(ALL); - } - break; - case 3: { - setState(997); - match(USER); - } - break; - } - } - break; - case 16: - enterOuterAlt(_localctx, 16); - { - setState(1000); - match(ENABLE); - setState(1001); - match(TRIGGER); - setState(1005); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 39, _ctx)) { - case 1: { - setState(1002); - ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); - } - break; - case 2: { - setState(1003); - match(ALL); - } - break; - case 3: { - setState(1004); - match(USER); - } - break; - } - } - break; - case 17: - enterOuterAlt(_localctx, 17); - { - setState(1007); - match(ENABLE); - setState(1008); - match(REPLICA); - setState(1009); - match(TRIGGER); - setState(1010); - ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); - } - break; - case 18: - enterOuterAlt(_localctx, 18); - { - setState(1011); - match(ENABLE); - setState(1012); - match(ALWAYS); - setState(1013); - match(TRIGGER); - setState(1014); - ((Alter_foreign_table_actionContext) _localctx).trigger_name = todo_fill_in(); - } - break; - case 19: - enterOuterAlt(_localctx, 19); - { - setState(1015); - match(SET); - setState(1016); - match(WITH); - setState(1017); - match(OIDS); - } - break; - case 20: - enterOuterAlt(_localctx, 20); - { - setState(1018); - match(SET); - setState(1019); - match(WITHOUT); - setState(1020); - match(OIDS); - } - break; - case 21: - enterOuterAlt(_localctx, 21); - { - setState(1021); - match(INHERIT); - setState(1022); - ((Alter_foreign_table_actionContext) _localctx).parent_table = identifier(0); - } - break; - case 22: - enterOuterAlt(_localctx, 22); - { - setState(1023); - match(NO); - setState(1024); - match(INHERIT); - setState(1025); - ((Alter_foreign_table_actionContext) _localctx).parent_table = identifier(0); - } - break; - case 23: - enterOuterAlt(_localctx, 23); - { - setState(1026); - match(OWNER); - setState(1027); - match(TO); - setState(1028); - ((Alter_foreign_table_actionContext) _localctx).new_owner = role_name(); - } - break; - case 24: - enterOuterAlt(_localctx, 24); - { - setState(1029); - match(OPTIONS); - { - setState(1031); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ADD || _la == DROP || _la == SET) { - { - setState(1030); - _la = _input.LA(1); - if (!(_la == ADD || _la == DROP || _la == SET)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_foreign_table_action_listContext extends ParserRuleContext { - public List alter_foreign_table_action() { - return getRuleContexts(Alter_foreign_table_actionContext.class); - } - - public Alter_foreign_table_actionContext alter_foreign_table_action(int i) { - return getRuleContext(Alter_foreign_table_actionContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Alter_foreign_table_action_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_foreign_table_action_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_foreign_table_action_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_foreign_table_action_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_table_action_list(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_foreign_table_action_listContext alter_foreign_table_action_list() throws RecognitionException { - Alter_foreign_table_action_listContext _localctx = new Alter_foreign_table_action_listContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_alter_foreign_table_action_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1035); - alter_foreign_table_action(); - setState(1040); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(1036); - match(COMMA); - setState(1037); - alter_foreign_table_action(); - } - } - setState(1042); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_foreign_table_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public Alter_foreign_table_action_listContext actions; - public Column_nameContext column_name_; - public IdentifierContext new_column_name; - public IdentifierContext new_name; - public IdentifierContext new_schama; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public Alter_foreign_table_action_listContext alter_foreign_table_action_list() { - return getRuleContext(Alter_foreign_table_action_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public Column_nameContext column_name() { - return getRuleContext(Column_nameContext.class, 0); - } - - public TerminalNode COLUMN() { - return getToken(PostgreSQLParser.COLUMN, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_foreign_table_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_foreign_table_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_foreign_table_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_foreign_table_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_foreign_table_stmtContext alter_foreign_table_stmt() throws RecognitionException { - Alter_foreign_table_stmtContext _localctx = new Alter_foreign_table_stmtContext(_ctx, getState()); - enterRule(_localctx, 30, RULE_alter_foreign_table_stmt); - int _la; - try { - setState(1105); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 52, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1043); - match(ALTER); - setState(1044); - match(FOREIGN); - setState(1045); - match(TABLE); - setState(1048); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1046); - match(IF); - setState(1047); - match(EXISTS); - } - } - - setState(1051); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(1050); - match(ONLY); - } - } - - setState(1053); - ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); - setState(1055); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(1054); - match(STAR); - } - } - - setState(1057); - ((Alter_foreign_table_stmtContext) _localctx).actions = alter_foreign_table_action_list(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1059); - match(ALTER); - setState(1060); - match(FOREIGN); - setState(1061); - match(TABLE); - setState(1064); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1062); - match(IF); - setState(1063); - match(EXISTS); - } - } - - setState(1067); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(1066); - match(ONLY); - } - } - - setState(1069); - ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); - setState(1071); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(1070); - match(STAR); - } - } - - setState(1073); - match(RENAME); - setState(1075); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLUMN) { - { - setState(1074); - match(COLUMN); - } - } - - setState(1077); - ((Alter_foreign_table_stmtContext) _localctx).column_name_ = column_name(); - setState(1078); - match(TO); - setState(1079); - ((Alter_foreign_table_stmtContext) _localctx).new_column_name = identifier(0); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1081); - match(ALTER); - setState(1082); - match(FOREIGN); - setState(1083); - match(TABLE); - setState(1086); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1084); - match(IF); - setState(1085); - match(EXISTS); - } - } - - setState(1088); - ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); - setState(1089); - match(RENAME); - setState(1090); - match(TO); - setState(1091); - ((Alter_foreign_table_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1093); - match(ALTER); - setState(1094); - match(FOREIGN); - setState(1095); - match(TABLE); - setState(1098); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1096); - match(IF); - setState(1097); - match(EXISTS); - } - } - - setState(1100); - ((Alter_foreign_table_stmtContext) _localctx).name = identifier(0); - setState(1101); - match(SET); - setState(1102); - match(SCHEMA); - setState(1103); - ((Alter_foreign_table_stmtContext) _localctx).new_schama = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_function_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_function_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_function_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_function_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_function_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_function_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_function_stmtContext alter_function_stmt() throws RecognitionException { - Alter_function_stmtContext _localctx = new Alter_function_stmtContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_alter_function_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1107); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_group_stmtContext extends ParserRuleContext { - public Role_nameContext role; - public Identifier_listContext users; - public IdentifierContext group_name; - public IdentifierContext new_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode GROUP() { - return getToken(PostgreSQLParser.GROUP, 0); - } - - public TerminalNode ADD() { - return getToken(PostgreSQLParser.ADD, 0); - } - - public TerminalNode USER() { - return getToken(PostgreSQLParser.USER, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public Alter_group_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_group_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_group_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_group_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_group_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_group_stmtContext alter_group_stmt() throws RecognitionException { - Alter_group_stmtContext _localctx = new Alter_group_stmtContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_alter_group_stmt); - try { - setState(1130); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 53, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1109); - match(ALTER); - setState(1110); - match(GROUP); - setState(1111); - ((Alter_group_stmtContext) _localctx).role = role_name(); - setState(1112); - match(ADD); - setState(1113); - match(USER); - setState(1114); - ((Alter_group_stmtContext) _localctx).users = identifier_list(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1116); - match(ALTER); - setState(1117); - match(GROUP); - setState(1118); - ((Alter_group_stmtContext) _localctx).role = role_name(); - setState(1119); - match(DROP); - setState(1120); - match(USER); - setState(1121); - ((Alter_group_stmtContext) _localctx).users = identifier_list(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1123); - match(ALTER); - setState(1124); - match(GROUP); - setState(1125); - ((Alter_group_stmtContext) _localctx).group_name = identifier(0); - setState(1126); - match(RENAME); - setState(1127); - match(TO); - setState(1128); - ((Alter_group_stmtContext) _localctx).new_name = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_index_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public IdentifierContext tablespace_name; - public IdentifierContext extension_name; - public Identifier_listContext roles; - public IdentifierContext new_tablespace; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public List TABLESPACE() { - return getTokens(PostgreSQLParser.TABLESPACE); - } - - public TerminalNode TABLESPACE(int i) { - return getToken(PostgreSQLParser.TABLESPACE, i); - } - - public TerminalNode DEPENDS() { - return getToken(PostgreSQLParser.DEPENDS, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode EXTENSION() { - return getToken(PostgreSQLParser.EXTENSION, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public TerminalNode OWNED() { - return getToken(PostgreSQLParser.OWNED, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public TerminalNode NOWAIT() { - return getToken(PostgreSQLParser.NOWAIT, 0); - } - - public Alter_index_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_index_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_index_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_index_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_index_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_index_stmtContext alter_index_stmt() throws RecognitionException { - Alter_index_stmtContext _localctx = new Alter_index_stmtContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_alter_index_stmt); - int _la; - try { - setState(1202); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 60, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1132); - match(ALTER); - setState(1133); - match(INDEX); - setState(1136); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1134); - match(IF); - setState(1135); - match(EXISTS); - } - } - - setState(1138); - ((Alter_index_stmtContext) _localctx).name = identifier(0); - setState(1139); - match(RENAME); - setState(1140); - match(TO); - setState(1141); - ((Alter_index_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1143); - match(ALTER); - setState(1144); - match(INDEX); - setState(1147); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1145); - match(IF); - setState(1146); - match(EXISTS); - } - } - - setState(1149); - ((Alter_index_stmtContext) _localctx).name = identifier(0); - setState(1150); - match(SET); - setState(1151); - match(TABLESPACE); - setState(1152); - ((Alter_index_stmtContext) _localctx).tablespace_name = identifier(0); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1154); - match(ALTER); - setState(1155); - match(INDEX); - setState(1156); - ((Alter_index_stmtContext) _localctx).name = identifier(0); - setState(1157); - match(DEPENDS); - setState(1158); - match(ON); - setState(1159); - match(EXTENSION); - setState(1160); - ((Alter_index_stmtContext) _localctx).extension_name = identifier(0); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1162); - match(ALTER); - setState(1163); - match(INDEX); - setState(1166); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1164); - match(IF); - setState(1165); - match(EXISTS); - } - } - - setState(1168); - ((Alter_index_stmtContext) _localctx).name = identifier(0); - setState(1169); - match(SET); - setState(1170); - match(OPEN_PAREN); - setState(1171); - option_list(); - setState(1172); - match(CLOSE_PAREN); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1174); - match(ALTER); - setState(1175); - match(INDEX); - setState(1178); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1176); - match(IF); - setState(1177); - match(EXISTS); - } - } - - setState(1180); - match(RESET); - setState(1181); - match(OPEN_PAREN); - setState(1182); - identifier_list(); - setState(1183); - match(CLOSE_PAREN); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1185); - match(ALTER); - setState(1186); - match(INDEX); - setState(1187); - match(ALL); - setState(1188); - match(IN); - setState(1189); - match(TABLESPACE); - setState(1190); - ((Alter_index_stmtContext) _localctx).name = identifier(0); - setState(1194); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OWNED) { - { - setState(1191); - match(OWNED); - setState(1192); - match(BY); - setState(1193); - ((Alter_index_stmtContext) _localctx).roles = identifier_list(); - } - } - - setState(1196); - match(SET); - setState(1197); - match(TABLESPACE); - setState(1198); - ((Alter_index_stmtContext) _localctx).new_tablespace = identifier(0); - setState(1200); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOWAIT) { - { - setState(1199); - match(NOWAIT); - } - } - - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_language_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public IdentifierContext new_owner; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode LANGUAGE() { - return getToken(PostgreSQLParser.LANGUAGE, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode PROCEDURAL() { - return getToken(PostgreSQLParser.PROCEDURAL, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public Alter_language_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_language_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_language_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_language_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_language_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_language_stmtContext alter_language_stmt() throws RecognitionException { - Alter_language_stmtContext _localctx = new Alter_language_stmtContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_alter_language_stmt); - int _la; - try { - setState(1227); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 64, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1204); - match(ALTER); - setState(1206); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == PROCEDURAL) { - { - setState(1205); - match(PROCEDURAL); - } - } - - setState(1208); - match(LANGUAGE); - setState(1209); - ((Alter_language_stmtContext) _localctx).name = identifier(0); - setState(1210); - match(RENAME); - setState(1211); - match(TO); - setState(1212); - ((Alter_language_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1214); - match(ALTER); - setState(1216); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == PROCEDURAL) { - { - setState(1215); - match(PROCEDURAL); - } - } - - setState(1218); - match(LANGUAGE); - setState(1219); - ((Alter_language_stmtContext) _localctx).name = identifier(0); - setState(1220); - match(OWNER); - setState(1221); - match(TO); - setState(1225); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1222); - ((Alter_language_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(1223); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(1224); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_large_object_stmtContext extends ParserRuleContext { - public Token large_object_oid; - public IdentifierContext new_owner; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode LARGE() { - return getToken(PostgreSQLParser.LARGE, 0); - } - - public TerminalNode OBJECT() { - return getToken(PostgreSQLParser.OBJECT, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Alter_large_object_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_large_object_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_large_object_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_large_object_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_large_object_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_large_object_stmtContext alter_large_object_stmt() throws RecognitionException { - Alter_large_object_stmtContext _localctx = new Alter_large_object_stmtContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_alter_large_object_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1229); - match(ALTER); - setState(1230); - match(LARGE); - setState(1231); - match(OBJECT); - setState(1232); - ((Alter_large_object_stmtContext) _localctx).large_object_oid = match(INTEGER_LITERAL); - setState(1233); - match(OWNER); - setState(1234); - match(TO); - setState(1238); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1235); - ((Alter_large_object_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(1236); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(1237); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_materialize_view_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_materialize_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_materialize_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_materialize_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_materialize_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_materialize_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_materialize_view_stmtContext alter_materialize_view_stmt() throws RecognitionException { - Alter_materialize_view_stmtContext _localctx = new Alter_materialize_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_alter_materialize_view_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1240); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_operator_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_operator_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_operator_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_operator_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_operator_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_operator_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_operator_stmtContext alter_operator_stmt() throws RecognitionException { - Alter_operator_stmtContext _localctx = new Alter_operator_stmtContext(_ctx, getState()); - enterRule(_localctx, 44, RULE_alter_operator_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1242); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_operator_class_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public IdentifierContext new_owner; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode CLASS() { - return getToken(PostgreSQLParser.CLASS, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_operator_class_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_operator_class_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_operator_class_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_operator_class_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws RecognitionException { - Alter_operator_class_stmtContext _localctx = new Alter_operator_class_stmtContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_alter_operator_class_stmt); - try { - setState(1277); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 67, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1244); - match(ALTER); - setState(1245); - match(OPERATOR); - setState(1246); - match(CLASS); - setState(1247); - ((Alter_operator_class_stmtContext) _localctx).name = identifier(0); - setState(1248); - match(USING); - setState(1249); - index_method(); - setState(1250); - match(RENAME); - setState(1251); - match(TO); - setState(1252); - ((Alter_operator_class_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1254); - match(ALTER); - setState(1255); - match(OPERATOR); - setState(1256); - match(CLASS); - setState(1257); - ((Alter_operator_class_stmtContext) _localctx).name = identifier(0); - setState(1258); - match(USING); - setState(1259); - index_method(); - setState(1260); - match(OWNER); - setState(1261); - match(TO); - setState(1265); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1262); - ((Alter_operator_class_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(1263); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(1264); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1267); - match(ALTER); - setState(1268); - match(OPERATOR); - setState(1269); - match(CLASS); - setState(1270); - ((Alter_operator_class_stmtContext) _localctx).name = identifier(0); - setState(1271); - match(USING); - setState(1272); - index_method(); - setState(1273); - match(SET); - setState(1274); - match(SCHEMA); - setState(1275); - ((Alter_operator_class_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_operator_family_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_operator_family_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_operator_family_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_operator_family_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_operator_family_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_operator_family_stmtContext alter_operator_family_stmt() throws RecognitionException { - Alter_operator_family_stmtContext _localctx = new Alter_operator_family_stmtContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_alter_operator_family_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1279); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_policy_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext table_name; - public IdentifierContext new_name; - public Role_name_listContext roles; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode POLICY() { - return getToken(PostgreSQLParser.POLICY, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public List predicate() { - return getRuleContexts(PredicateContext.class); - } - - public PredicateContext predicate(int i) { - return getRuleContext(PredicateContext.class, i); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode CHECK() { - return getToken(PostgreSQLParser.CHECK, 0); - } - - public Role_name_listContext role_name_list() { - return getRuleContext(Role_name_listContext.class, 0); - } - - public Alter_policy_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_policy_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_policy_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_policy_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_policy_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_policy_stmtContext alter_policy_stmt() throws RecognitionException { - Alter_policy_stmtContext _localctx = new Alter_policy_stmtContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_alter_policy_stmt); - int _la; - try { - setState(1308); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 71, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1281); - match(ALTER); - setState(1282); - match(POLICY); - setState(1283); - ((Alter_policy_stmtContext) _localctx).name = identifier(0); - setState(1284); - match(ON); - setState(1285); - ((Alter_policy_stmtContext) _localctx).table_name = identifier(0); - setState(1286); - match(RENAME); - setState(1287); - match(TO); - setState(1288); - ((Alter_policy_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1290); - match(ALTER); - setState(1291); - match(POLICY); - setState(1292); - ((Alter_policy_stmtContext) _localctx).name = identifier(0); - setState(1293); - match(ON); - setState(1294); - ((Alter_policy_stmtContext) _localctx).table_name = identifier(0); - setState(1297); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TO) { - { - setState(1295); - match(TO); - setState(1296); - ((Alter_policy_stmtContext) _localctx).roles = role_name_list(); - } - } - - setState(1301); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == USING) { - { - setState(1299); - match(USING); - setState(1300); - predicate(0); - } - } - - setState(1306); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(1303); - match(WITH); - setState(1304); - match(CHECK); - setState(1305); - predicate(0); - } - } - - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_publication_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public Identifier_listContext table_names; - public Role_nameContext new_owner; - public Name_Context new_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode PUBLICATION() { - return getToken(PostgreSQLParser.PUBLICATION, 0); - } - - public TerminalNode ADD() { - return getToken(PostgreSQLParser.ADD, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Alter_publication_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_publication_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_publication_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_publication_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_publication_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_publication_stmtContext alter_publication_stmt() throws RecognitionException { - Alter_publication_stmtContext _localctx = new Alter_publication_stmtContext(_ctx, getState()); - enterRule(_localctx, 52, RULE_alter_publication_stmt); - int _la; - try { - setState(1362); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 75, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1310); - match(ALTER); - setState(1311); - match(PUBLICATION); - setState(1312); - ((Alter_publication_stmtContext) _localctx).name = identifier(0); - setState(1313); - match(ADD); - setState(1314); - match(TABLE); - setState(1316); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(1315); - match(ONLY); - } - } - - setState(1318); - ((Alter_publication_stmtContext) _localctx).table_names = identifier_list(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1320); - match(ALTER); - setState(1321); - match(PUBLICATION); - setState(1322); - ((Alter_publication_stmtContext) _localctx).name = identifier(0); - setState(1323); - match(SET); - setState(1324); - match(TABLE); - setState(1326); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(1325); - match(ONLY); - } - } - - setState(1328); - ((Alter_publication_stmtContext) _localctx).table_names = identifier_list(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1330); - match(ALTER); - setState(1331); - match(PUBLICATION); - setState(1332); - ((Alter_publication_stmtContext) _localctx).name = identifier(0); - setState(1333); - match(DROP); - setState(1334); - match(TABLE); - setState(1336); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(1335); - match(ONLY); - } - } - - setState(1338); - ((Alter_publication_stmtContext) _localctx).table_names = identifier_list(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1340); - match(ALTER); - setState(1341); - match(PUBLICATION); - setState(1342); - ((Alter_publication_stmtContext) _localctx).name = identifier(0); - setState(1343); - match(SET); - setState(1344); - match(OPEN_PAREN); - setState(1345); - option_list(); - setState(1346); - match(CLOSE_PAREN); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1348); - match(ALTER); - setState(1349); - match(PUBLICATION); - setState(1350); - ((Alter_publication_stmtContext) _localctx).name = identifier(0); - setState(1351); - match(OWNER); - setState(1352); - match(TO); - setState(1353); - ((Alter_publication_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1355); - match(ALTER); - setState(1356); - match(PUBLICATION); - setState(1357); - ((Alter_publication_stmtContext) _localctx).name = identifier(0); - setState(1358); - match(RENAME); - setState(1359); - match(TO); - setState(1360); - ((Alter_publication_stmtContext) _localctx).new_name = name_(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_role_optionsContext extends ParserRuleContext { - public Token connlimit; - - public TerminalNode SUPERUSER() { - return getToken(PostgreSQLParser.SUPERUSER, 0); - } - - public TerminalNode NOSUPERUSER() { - return getToken(PostgreSQLParser.NOSUPERUSER, 0); - } - - public TerminalNode CREATEDB() { - return getToken(PostgreSQLParser.CREATEDB, 0); - } - - public TerminalNode NOCREATEDB() { - return getToken(PostgreSQLParser.NOCREATEDB, 0); - } - - public TerminalNode CREATEROLE() { - return getToken(PostgreSQLParser.CREATEROLE, 0); - } - - public TerminalNode NOCREATEROLE() { - return getToken(PostgreSQLParser.NOCREATEROLE, 0); - } - - public TerminalNode INHERIT() { - return getToken(PostgreSQLParser.INHERIT, 0); - } - - public TerminalNode NOINHERIT() { - return getToken(PostgreSQLParser.NOINHERIT, 0); - } - - public TerminalNode LOGIN() { - return getToken(PostgreSQLParser.LOGIN, 0); - } - - public TerminalNode NOLOGIN() { - return getToken(PostgreSQLParser.NOLOGIN, 0); - } - - public TerminalNode REPLICATION() { - return getToken(PostgreSQLParser.REPLICATION, 0); - } - - public TerminalNode NOREPLICATION() { - return getToken(PostgreSQLParser.NOREPLICATION, 0); - } - - public TerminalNode BYPASSRLS() { - return getToken(PostgreSQLParser.BYPASSRLS, 0); - } - - public TerminalNode NOBYPASSRLS() { - return getToken(PostgreSQLParser.NOBYPASSRLS, 0); - } - - public TerminalNode CONNECTION() { - return getToken(PostgreSQLParser.CONNECTION, 0); - } - - public TerminalNode LIMIT() { - return getToken(PostgreSQLParser.LIMIT, 0); - } - - public TerminalNode INTEGER() { - return getToken(PostgreSQLParser.INTEGER, 0); - } - - public TerminalNode PASSWORD() { - return getToken(PostgreSQLParser.PASSWORD, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode ENCRYPTED() { - return getToken(PostgreSQLParser.ENCRYPTED, 0); - } - - public TerminalNode VALID() { - return getToken(PostgreSQLParser.VALID, 0); - } - - public TerminalNode UNTIL() { - return getToken(PostgreSQLParser.UNTIL, 0); - } - - public Alter_role_optionsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_role_options; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_role_options(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_role_options(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_role_options(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_role_optionsContext alter_role_options() throws RecognitionException { - Alter_role_optionsContext _localctx = new Alter_role_optionsContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_alter_role_options); - int _la; - try { - setState(1389); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SUPERUSER: - enterOuterAlt(_localctx, 1); - { - setState(1364); - match(SUPERUSER); - } - break; - case NOSUPERUSER: - enterOuterAlt(_localctx, 2); - { - setState(1365); - match(NOSUPERUSER); - } - break; - case CREATEDB: - enterOuterAlt(_localctx, 3); - { - setState(1366); - match(CREATEDB); - } - break; - case NOCREATEDB: - enterOuterAlt(_localctx, 4); - { - setState(1367); - match(NOCREATEDB); - } - break; - case CREATEROLE: - enterOuterAlt(_localctx, 5); - { - setState(1368); - match(CREATEROLE); - } - break; - case NOCREATEROLE: - enterOuterAlt(_localctx, 6); - { - setState(1369); - match(NOCREATEROLE); - } - break; - case INHERIT: - enterOuterAlt(_localctx, 7); - { - setState(1370); - match(INHERIT); - } - break; - case NOINHERIT: - enterOuterAlt(_localctx, 8); - { - setState(1371); - match(NOINHERIT); - } - break; - case LOGIN: - enterOuterAlt(_localctx, 9); - { - setState(1372); - match(LOGIN); - } - break; - case NOLOGIN: - enterOuterAlt(_localctx, 10); - { - setState(1373); - match(NOLOGIN); - } - break; - case REPLICATION: - enterOuterAlt(_localctx, 11); - { - setState(1374); - match(REPLICATION); - } - break; - case NOREPLICATION: - enterOuterAlt(_localctx, 12); - { - setState(1375); - match(NOREPLICATION); - } - break; - case BYPASSRLS: - enterOuterAlt(_localctx, 13); - { - setState(1376); - match(BYPASSRLS); - } - break; - case NOBYPASSRLS: - enterOuterAlt(_localctx, 14); - { - setState(1377); - match(NOBYPASSRLS); - } - break; - case CONNECTION: - enterOuterAlt(_localctx, 15); - { - setState(1378); - match(CONNECTION); - setState(1379); - match(LIMIT); - setState(1380); - ((Alter_role_optionsContext) _localctx).connlimit = match(INTEGER); - } - break; - case ENCRYPTED: - case PASSWORD: - enterOuterAlt(_localctx, 16); - { - setState(1382); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ENCRYPTED) { - { - setState(1381); - match(ENCRYPTED); - } - } - - setState(1384); - match(PASSWORD); - setState(1385); - match(SINGLEQ_STRING_LITERAL); - } - break; - case VALID: - enterOuterAlt(_localctx, 17); - { - setState(1386); - match(VALID); - setState(1387); - match(UNTIL); - setState(1388); - match(SINGLEQ_STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_role_stmtContext extends ParserRuleContext { - public Role_nameContext role; - public Alter_role_optionsContext options; - public Name_Context name; - public Name_Context new_name; - public Name_Context database_name; - public IdentifierContext configuration_parameter; - public Param_valueContext value; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode ROLE() { - return getToken(PostgreSQLParser.ROLE, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public List alter_role_options() { - return getRuleContexts(Alter_role_optionsContext.class); - } - - public Alter_role_optionsContext alter_role_options(int i) { - return getRuleContext(Alter_role_optionsContext.class, i); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public List ALL() { - return getTokens(PostgreSQLParser.ALL); - } - - public TerminalNode ALL(int i) { - return getToken(PostgreSQLParser.ALL, i); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public TerminalNode DATABASE() { - return getToken(PostgreSQLParser.DATABASE, 0); - } - - public Param_valueContext param_value() { - return getRuleContext(Param_valueContext.class, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public TerminalNode CURRENT() { - return getToken(PostgreSQLParser.CURRENT, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public Alter_role_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_role_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_role_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_role_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_role_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_role_stmtContext alter_role_stmt() throws RecognitionException { - Alter_role_stmtContext _localctx = new Alter_role_stmtContext(_ctx, getState()); - enterRule(_localctx, 56, RULE_alter_role_stmt); - int _la; - try { - setState(1469); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 89, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1391); - match(ALTER); - setState(1392); - match(ROLE); - setState(1393); - ((Alter_role_stmtContext) _localctx).role = role_name(); - setState(1395); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(1394); - match(WITH); - } - } - - setState(1398); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(1397); - ((Alter_role_stmtContext) _localctx).options = alter_role_options(); - } - } - setState(1400); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == CONNECTION || _la == CREATEDB || _la == ENCRYPTED || _la == NOCREATEDB || _la == PASSWORD || ((((_la - 627)) & ~0x3f) == 0 && ((1L << (_la - 627)) & ((1L << (VALID - 627)) | (1L << (SUPERUSER - 627)) | (1L << (NOSUPERUSER - 627)) | (1L << (CREATEROLE - 627)) | (1L << (NOCREATEROLE - 627)) | (1L << (INHERIT - 627)) | (1L << (NOINHERIT - 627)) | (1L << (LOGIN - 627)) | (1L << (NOLOGIN - 627)) | (1L << (REPLICATION - 627)) | (1L << (NOREPLICATION - 627)) | (1L << (BYPASSRLS - 627)) | (1L << (NOBYPASSRLS - 627)))) != 0)); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1402); - match(ALTER); - setState(1403); - match(ROLE); - setState(1404); - ((Alter_role_stmtContext) _localctx).name = name_(); - setState(1405); - match(RENAME); - setState(1406); - match(TO); - setState(1407); - ((Alter_role_stmtContext) _localctx).new_name = name_(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1409); - match(ALTER); - setState(1410); - match(ROLE); - setState(1413); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURRENT_USER: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SESSION_USER: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1411); - ((Alter_role_stmtContext) _localctx).role = role_name(); - } - break; - case ALL: { - setState(1412); - match(ALL); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1418); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN) { - { - setState(1415); - match(IN); - setState(1416); - match(DATABASE); - setState(1417); - ((Alter_role_stmtContext) _localctx).database_name = name_(); - } - } - - setState(1420); - match(SET); - setState(1421); - ((Alter_role_stmtContext) _localctx).configuration_parameter = identifier(0); - setState(1422); - _la = _input.LA(1); - if (!(_la == TO || _la == EQUAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1425); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FALSE: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case ON: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case YES: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case NUMERIC_LITERAL: - case INTEGER_LITERAL: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1423); - ((Alter_role_stmtContext) _localctx).value = param_value(); - } - break; - case DEFAULT: { - setState(1424); - match(DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1427); - match(ALTER); - setState(1428); - match(ROLE); - setState(1431); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURRENT_USER: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SESSION_USER: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1429); - ((Alter_role_stmtContext) _localctx).role = role_name(); - } - break; - case ALL: { - setState(1430); - match(ALL); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1436); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN) { - { - setState(1433); - match(IN); - setState(1434); - match(DATABASE); - setState(1435); - ((Alter_role_stmtContext) _localctx).database_name = name_(); - } - } - - setState(1438); - match(SET); - setState(1439); - ((Alter_role_stmtContext) _localctx).configuration_parameter = identifier(0); - setState(1440); - match(FROM); - setState(1441); - match(CURRENT); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1443); - match(ALTER); - setState(1444); - match(ROLE); - setState(1447); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURRENT_USER: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SESSION_USER: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1445); - ((Alter_role_stmtContext) _localctx).role = role_name(); - } - break; - case ALL: { - setState(1446); - match(ALL); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1452); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN) { - { - setState(1449); - match(IN); - setState(1450); - match(DATABASE); - setState(1451); - ((Alter_role_stmtContext) _localctx).database_name = name_(); - } - } - - setState(1454); - match(RESET); - setState(1455); - ((Alter_role_stmtContext) _localctx).configuration_parameter = identifier(0); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1456); - match(ALTER); - setState(1457); - match(ROLE); - setState(1460); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURRENT_USER: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SESSION_USER: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1458); - ((Alter_role_stmtContext) _localctx).role = role_name(); - } - break; - case ALL: { - setState(1459); - match(ALL); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1465); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN) { - { - setState(1462); - match(IN); - setState(1463); - match(DATABASE); - setState(1464); - ((Alter_role_stmtContext) _localctx).database_name = name_(); - } - } - - setState(1467); - match(RESET); - setState(1468); - match(ALL); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_rule_stmtContext extends ParserRuleContext { - public Name_Context name; - public IdentifierContext table_name; - public Name_Context new_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode RULE() { - return getToken(PostgreSQLParser.RULE, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Alter_rule_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_rule_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_rule_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_rule_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_rule_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_rule_stmtContext alter_rule_stmt() throws RecognitionException { - Alter_rule_stmtContext _localctx = new Alter_rule_stmtContext(_ctx, getState()); - enterRule(_localctx, 58, RULE_alter_rule_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1471); - match(ALTER); - setState(1472); - match(RULE); - setState(1473); - ((Alter_rule_stmtContext) _localctx).name = name_(); - setState(1474); - match(ON); - setState(1475); - ((Alter_rule_stmtContext) _localctx).table_name = identifier(0); - setState(1476); - match(RENAME); - setState(1477); - match(TO); - setState(1478); - ((Alter_rule_stmtContext) _localctx).new_name = name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_schema_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public IdentifierContext new_owner; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public Alter_schema_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_schema_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_schema_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_schema_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_schema_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionException { - Alter_schema_stmtContext _localctx = new Alter_schema_stmtContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_alter_schema_stmt); - try { - setState(1497); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 91, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1480); - match(ALTER); - setState(1481); - match(SCHEMA); - setState(1482); - ((Alter_schema_stmtContext) _localctx).name = identifier(0); - setState(1483); - match(RENAME); - setState(1484); - match(TO); - setState(1485); - ((Alter_schema_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1487); - match(ALTER); - setState(1488); - match(SCHEMA); - setState(1489); - ((Alter_schema_stmtContext) _localctx).name = identifier(0); - setState(1490); - match(OWNER); - setState(1491); - match(TO); - setState(1495); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1492); - ((Alter_schema_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(1493); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(1494); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_sequence_stmtContext extends ParserRuleContext { - public Name_Context name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode SEQUENCE() { - return getToken(PostgreSQLParser.SEQUENCE, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Alter_sequence_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_sequence_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_sequence_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_sequence_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_sequence_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_sequence_stmtContext alter_sequence_stmt() throws RecognitionException { - Alter_sequence_stmtContext _localctx = new Alter_sequence_stmtContext(_ctx, getState()); - enterRule(_localctx, 62, RULE_alter_sequence_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1499); - match(ALTER); - setState(1500); - match(SEQUENCE); - setState(1503); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1501); - match(IF); - setState(1502); - match(EXISTS); - } - } - - setState(1505); - ((Alter_sequence_stmtContext) _localctx).name = name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_server_options_listContext extends ParserRuleContext { - public IdentifierContext option; - public Param_valueContext value; - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public List ADD() { - return getTokens(PostgreSQLParser.ADD); - } - - public TerminalNode ADD(int i) { - return getToken(PostgreSQLParser.ADD, i); - } - - public List SET() { - return getTokens(PostgreSQLParser.SET); - } - - public TerminalNode SET(int i) { - return getToken(PostgreSQLParser.SET, i); - } - - public List DROP() { - return getTokens(PostgreSQLParser.DROP); - } - - public TerminalNode DROP(int i) { - return getToken(PostgreSQLParser.DROP, i); - } - - public List param_value() { - return getRuleContexts(Param_valueContext.class); - } - - public Param_valueContext param_value(int i) { - return getRuleContext(Param_valueContext.class, i); - } - - public Alter_server_options_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_server_options_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_server_options_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_server_options_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_server_options_list(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_server_options_listContext alter_server_options_list() throws RecognitionException { - Alter_server_options_listContext _localctx = new Alter_server_options_listContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_alter_server_options_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - { - setState(1508); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 93, _ctx)) { - case 1: { - setState(1507); - _la = _input.LA(1); - if (!(_la == ADD || _la == DROP || _la == SET)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(1510); - ((Alter_server_options_listContext) _localctx).option = identifier(0); - setState(1512); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(1511); - ((Alter_server_options_listContext) _localctx).value = param_value(); - } - } - - } - setState(1524); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(1514); - match(COMMA); - setState(1516); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 95, _ctx)) { - case 1: { - setState(1515); - _la = _input.LA(1); - if (!(_la == ADD || _la == DROP || _la == SET)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(1518); - ((Alter_server_options_listContext) _localctx).option = identifier(0); - setState(1520); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(1519); - ((Alter_server_options_listContext) _localctx).value = param_value(); - } - } - - } - } - setState(1526); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_server_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public Role_nameContext new_owner; - public Name_Context new_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode SERVER() { - return getToken(PostgreSQLParser.SERVER, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode VERSION() { - return getToken(PostgreSQLParser.VERSION, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode OPTIONS() { - return getToken(PostgreSQLParser.OPTIONS, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Alter_server_options_listContext alter_server_options_list() { - return getRuleContext(Alter_server_options_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Alter_server_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_server_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_server_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_server_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_server_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_server_stmtContext alter_server_stmt() throws RecognitionException { - Alter_server_stmtContext _localctx = new Alter_server_stmtContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_alter_server_stmt); - int _la; - try { - setState(1557); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 100, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1527); - match(ALTER); - setState(1528); - match(SERVER); - setState(1529); - ((Alter_server_stmtContext) _localctx).name = identifier(0); - setState(1541); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 99, _ctx)) { - case 1: { - { - setState(1530); - match(VERSION); - setState(1531); - match(SINGLEQ_STRING_LITERAL); - } - } - break; - case 2: { - { - setState(1534); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == VERSION) { - { - setState(1532); - match(VERSION); - setState(1533); - match(SINGLEQ_STRING_LITERAL); - } - } - - { - setState(1536); - match(OPTIONS); - setState(1537); - match(OPEN_PAREN); - setState(1538); - alter_server_options_list(); - setState(1539); - match(CLOSE_PAREN); - } - } - } - break; - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1543); - match(ALTER); - setState(1544); - match(SERVER); - setState(1545); - ((Alter_server_stmtContext) _localctx).name = identifier(0); - setState(1546); - match(OWNER); - setState(1547); - match(TO); - setState(1548); - ((Alter_server_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1550); - match(ALTER); - setState(1551); - match(SERVER); - setState(1552); - ((Alter_server_stmtContext) _localctx).name = identifier(0); - setState(1553); - match(RENAME); - setState(1554); - match(TO); - setState(1555); - ((Alter_server_stmtContext) _localctx).new_name = name_(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_statistics_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_owner; - public IdentifierContext new_name; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode STATISTICS() { - return getToken(PostgreSQLParser.STATISTICS, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_statistics_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_statistics_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_statistics_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_statistics_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_statistics_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_statistics_stmtContext alter_statistics_stmt() throws RecognitionException { - Alter_statistics_stmtContext _localctx = new Alter_statistics_stmtContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_alter_statistics_stmt); - try { - setState(1583); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 102, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1559); - match(ALTER); - setState(1560); - match(STATISTICS); - setState(1561); - ((Alter_statistics_stmtContext) _localctx).name = identifier(0); - setState(1562); - match(OWNER); - setState(1563); - match(TO); - setState(1567); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1564); - ((Alter_statistics_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(1565); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(1566); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1569); - match(ALTER); - setState(1570); - match(STATISTICS); - setState(1571); - ((Alter_statistics_stmtContext) _localctx).name = identifier(0); - setState(1572); - match(RENAME); - setState(1573); - match(TO); - setState(1574); - ((Alter_statistics_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1576); - match(ALTER); - setState(1577); - match(STATISTICS); - setState(1578); - ((Alter_statistics_stmtContext) _localctx).name = identifier(0); - setState(1579); - match(SET); - setState(1580); - match(SCHEMA); - setState(1581); - ((Alter_statistics_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_subscription_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public Param_valueContext conninfo; - public Name_listContext publication_name; - public Role_nameContext new_owner; - public IdentifierContext new_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode SUBSCRIPTION() { - return getToken(PostgreSQLParser.SUBSCRIPTION, 0); - } - - public TerminalNode CONNECTION() { - return getToken(PostgreSQLParser.CONNECTION, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public Param_valueContext param_value() { - return getRuleContext(Param_valueContext.class, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode PUBLICATION() { - return getToken(PostgreSQLParser.PUBLICATION, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode REFRESH() { - return getToken(PostgreSQLParser.REFRESH, 0); - } - - public TerminalNode ENABLE() { - return getToken(PostgreSQLParser.ENABLE, 0); - } - - public TerminalNode DISABLE() { - return getToken(PostgreSQLParser.DISABLE, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public Alter_subscription_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_subscription_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_subscription_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_subscription_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_subscription_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_subscription_stmtContext alter_subscription_stmt() throws RecognitionException { - Alter_subscription_stmtContext _localctx = new Alter_subscription_stmtContext(_ctx, getState()); - enterRule(_localctx, 70, RULE_alter_subscription_stmt); - int _la; - try { - setState(1648); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 105, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1585); - match(ALTER); - setState(1586); - match(SUBSCRIPTION); - setState(1587); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1588); - match(CONNECTION); - setState(1589); - ((Alter_subscription_stmtContext) _localctx).conninfo = param_value(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1591); - match(ALTER); - setState(1592); - match(SUBSCRIPTION); - setState(1593); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1594); - match(SET); - setState(1595); - match(PUBLICATION); - setState(1596); - ((Alter_subscription_stmtContext) _localctx).publication_name = name_list(); - setState(1602); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(1597); - match(WITH); - setState(1598); - match(OPEN_PAREN); - setState(1599); - option_list(); - setState(1600); - match(CLOSE_PAREN); - } - } - - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1604); - match(ALTER); - setState(1605); - match(SUBSCRIPTION); - setState(1606); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1607); - match(REFRESH); - setState(1608); - match(PUBLICATION); - setState(1614); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(1609); - match(WITH); - setState(1610); - match(OPEN_PAREN); - setState(1611); - option_list(); - setState(1612); - match(CLOSE_PAREN); - } - } - - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1616); - match(ALTER); - setState(1617); - match(SUBSCRIPTION); - setState(1618); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1619); - match(ENABLE); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1621); - match(ALTER); - setState(1622); - match(SUBSCRIPTION); - setState(1623); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1624); - match(DISABLE); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1626); - match(ALTER); - setState(1627); - match(SUBSCRIPTION); - setState(1628); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1629); - match(SET); - setState(1630); - match(OPEN_PAREN); - setState(1631); - option_list(); - setState(1632); - match(CLOSE_PAREN); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1634); - match(ALTER); - setState(1635); - match(SUBSCRIPTION); - setState(1636); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1637); - match(OWNER); - setState(1638); - match(TO); - setState(1639); - ((Alter_subscription_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1641); - match(ALTER); - setState(1642); - match(SUBSCRIPTION); - setState(1643); - ((Alter_subscription_stmtContext) _localctx).name = identifier(0); - setState(1644); - match(RENAME); - setState(1645); - match(TO); - setState(1646); - ((Alter_subscription_stmtContext) _localctx).new_name = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_system_stmtContext extends ParserRuleContext { - public Token param; - public Param_valueContext value; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode SYSTEM() { - return getToken(PostgreSQLParser.SYSTEM, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode IDENTIFIER() { - return getToken(PostgreSQLParser.IDENTIFIER, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public Param_valueContext param_value() { - return getRuleContext(Param_valueContext.class, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public Alter_system_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_system_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_system_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_system_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_system_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_system_stmtContext alter_system_stmt() throws RecognitionException { - Alter_system_stmtContext _localctx = new Alter_system_stmtContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_alter_system_stmt); - int _la; - try { - setState(1664); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 106, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1650); - match(ALTER); - setState(1651); - match(SYSTEM); - setState(1652); - match(SET); - setState(1653); - ((Alter_system_stmtContext) _localctx).param = match(IDENTIFIER); - setState(1654); - _la = _input.LA(1); - if (!(_la == TO || _la == EQUAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1655); - ((Alter_system_stmtContext) _localctx).value = param_value(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1656); - match(ALTER); - setState(1657); - match(SYSTEM); - setState(1658); - match(RESET); - setState(1659); - ((Alter_system_stmtContext) _localctx).param = match(IDENTIFIER); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1660); - match(ALTER); - setState(1661); - match(SYSTEM); - setState(1662); - match(RESET); - setState(1663); - match(ALL); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_table_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_table_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_table_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_table_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_table_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_table_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_table_stmtContext alter_table_stmt() throws RecognitionException { - Alter_table_stmtContext _localctx = new Alter_table_stmtContext(_ctx, getState()); - enterRule(_localctx, 74, RULE_alter_table_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1666); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_tablespace_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public IdentifierContext new_owner; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public Alter_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_tablespace_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_tablespace_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_tablespace_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_tablespace_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws RecognitionException { - Alter_tablespace_stmtContext _localctx = new Alter_tablespace_stmtContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_alter_tablespace_stmt); - try { - setState(1701); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 108, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1668); - match(ALTER); - setState(1669); - match(TABLESPACE); - setState(1670); - ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); - setState(1671); - match(RENAME); - setState(1672); - match(TO); - setState(1673); - ((Alter_tablespace_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1675); - match(ALTER); - setState(1676); - match(TABLESPACE); - setState(1677); - ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); - setState(1678); - match(OWNER); - setState(1679); - match(TO); - setState(1683); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(1680); - ((Alter_tablespace_stmtContext) _localctx).new_owner = identifier(0); - } - break; - case CURRENT_USER: { - setState(1681); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(1682); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1685); - match(ALTER); - setState(1686); - match(TABLESPACE); - setState(1687); - ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); - setState(1688); - match(SET); - setState(1689); - match(OPEN_PAREN); - setState(1690); - option_list(); - setState(1691); - match(CLOSE_PAREN); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1693); - match(ALTER); - setState(1694); - match(TABLESPACE); - setState(1695); - ((Alter_tablespace_stmtContext) _localctx).name = identifier(0); - setState(1696); - match(RESET); - setState(1697); - match(OPEN_PAREN); - setState(1698); - identifier_list(); - setState(1699); - match(CLOSE_PAREN); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_text_search_config_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public Identifier_listContext token_types; - public Identifier_listContext dictionary_names; - public IdentifierContext old_dictionary; - public IdentifierContext new_dictionary; - public IdentifierContext new_name; - public Role_nameContext new_owner; - public IdentifierContext new_schema; - - public List ALTER() { - return getTokens(PostgreSQLParser.ALTER); - } - - public TerminalNode ALTER(int i) { - return getToken(PostgreSQLParser.ALTER, i); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode CONFIGURATION() { - return getToken(PostgreSQLParser.CONFIGURATION, 0); - } - - public TerminalNode ADD() { - return getToken(PostgreSQLParser.ADD, 0); - } - - public TerminalNode MAPPING() { - return getToken(PostgreSQLParser.MAPPING, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List identifier_list() { - return getRuleContexts(Identifier_listContext.class); - } - - public Identifier_listContext identifier_list(int i) { - return getRuleContext(Identifier_listContext.class, i); - } - - public TerminalNode REPLACE() { - return getToken(PostgreSQLParser.REPLACE, 0); - } - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_text_search_config_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_text_search_config_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_text_search_config_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_config_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_text_search_config_stmtContext alter_text_search_config_stmt() throws RecognitionException { - Alter_text_search_config_stmtContext _localctx = new Alter_text_search_config_stmtContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_alter_text_search_config_stmt); - int _la; - try { - setState(1794); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 110, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1703); - match(ALTER); - setState(1704); - match(TEXT); - setState(1705); - match(SEARCH); - setState(1706); - match(CONFIGURATION); - setState(1707); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1708); - match(ADD); - setState(1709); - match(MAPPING); - setState(1710); - match(FOR); - setState(1711); - ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); - setState(1712); - match(WITH); - setState(1713); - ((Alter_text_search_config_stmtContext) _localctx).dictionary_names = identifier_list(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1715); - match(ALTER); - setState(1716); - match(TEXT); - setState(1717); - match(SEARCH); - setState(1718); - match(CONFIGURATION); - setState(1719); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1720); - match(ALTER); - setState(1721); - match(MAPPING); - setState(1722); - match(FOR); - setState(1723); - ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); - setState(1724); - match(WITH); - setState(1725); - ((Alter_text_search_config_stmtContext) _localctx).dictionary_names = identifier_list(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1727); - match(ALTER); - setState(1728); - match(TEXT); - setState(1729); - match(SEARCH); - setState(1730); - match(CONFIGURATION); - setState(1731); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1732); - match(ALTER); - setState(1733); - match(MAPPING); - setState(1734); - match(REPLACE); - setState(1735); - ((Alter_text_search_config_stmtContext) _localctx).old_dictionary = identifier(0); - setState(1736); - match(WITH); - setState(1737); - ((Alter_text_search_config_stmtContext) _localctx).new_dictionary = identifier(0); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1739); - match(ALTER); - setState(1740); - match(TEXT); - setState(1741); - match(SEARCH); - setState(1742); - match(CONFIGURATION); - setState(1743); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1744); - match(ALTER); - setState(1745); - match(MAPPING); - setState(1746); - match(FOR); - setState(1747); - ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); - setState(1748); - match(REPLACE); - setState(1749); - ((Alter_text_search_config_stmtContext) _localctx).old_dictionary = identifier(0); - setState(1750); - match(WITH); - setState(1751); - ((Alter_text_search_config_stmtContext) _localctx).new_dictionary = identifier(0); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1753); - match(ALTER); - setState(1754); - match(TEXT); - setState(1755); - match(SEARCH); - setState(1756); - match(CONFIGURATION); - setState(1757); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1758); - match(DROP); - setState(1759); - match(MAPPING); - setState(1762); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(1760); - match(IF); - setState(1761); - match(EXISTS); - } - } - - setState(1764); - match(FOR); - setState(1765); - ((Alter_text_search_config_stmtContext) _localctx).token_types = identifier_list(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1767); - match(ALTER); - setState(1768); - match(TEXT); - setState(1769); - match(SEARCH); - setState(1770); - match(CONFIGURATION); - setState(1771); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1772); - match(RENAME); - setState(1773); - match(TO); - setState(1774); - ((Alter_text_search_config_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1776); - match(ALTER); - setState(1777); - match(TEXT); - setState(1778); - match(SEARCH); - setState(1779); - match(CONFIGURATION); - setState(1780); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1781); - match(OWNER); - setState(1782); - match(TO); - setState(1783); - ((Alter_text_search_config_stmtContext) _localctx).new_owner = role_name(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1785); - match(ALTER); - setState(1786); - match(TEXT); - setState(1787); - match(SEARCH); - setState(1788); - match(CONFIGURATION); - setState(1789); - ((Alter_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(1790); - match(SET); - setState(1791); - match(SCHEMA); - setState(1792); - ((Alter_text_search_config_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_text_search_dict_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_text_search_dict_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_text_search_dict_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_text_search_dict_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_dict_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_text_search_dict_stmtContext alter_text_search_dict_stmt() throws RecognitionException { - Alter_text_search_dict_stmtContext _localctx = new Alter_text_search_dict_stmtContext(_ctx, getState()); - enterRule(_localctx, 80, RULE_alter_text_search_dict_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1796); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_text_search_parser_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_text_search_parser_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_text_search_parser_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_text_search_parser_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_parser_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_text_search_parser_stmtContext alter_text_search_parser_stmt() throws RecognitionException { - Alter_text_search_parser_stmtContext _localctx = new Alter_text_search_parser_stmtContext(_ctx, getState()); - enterRule(_localctx, 82, RULE_alter_text_search_parser_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1798); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_text_search_template_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext new_name; - public IdentifierContext new_schema; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode TEMPLATE() { - return getToken(PostgreSQLParser.TEMPLATE, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Alter_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_text_search_template_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_text_search_template_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_text_search_template_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_text_search_template_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_text_search_template_stmtContext alter_text_search_template_stmt() throws RecognitionException { - Alter_text_search_template_stmtContext _localctx = new Alter_text_search_template_stmtContext(_ctx, getState()); - enterRule(_localctx, 84, RULE_alter_text_search_template_stmt); - try { - setState(1818); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 111, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1800); - match(ALTER); - setState(1801); - match(TEXT); - setState(1802); - match(SEARCH); - setState(1803); - match(TEMPLATE); - setState(1804); - ((Alter_text_search_template_stmtContext) _localctx).name = identifier(0); - setState(1805); - match(RENAME); - setState(1806); - match(TO); - setState(1807); - ((Alter_text_search_template_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1809); - match(ALTER); - setState(1810); - match(TEXT); - setState(1811); - match(SEARCH); - setState(1812); - match(TEMPLATE); - setState(1813); - ((Alter_text_search_template_stmtContext) _localctx).name = identifier(0); - setState(1814); - match(SET); - setState(1815); - match(SCHEMA); - setState(1816); - ((Alter_text_search_template_stmtContext) _localctx).new_schema = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_trigger_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext table_name; - public IdentifierContext new_name; - public IdentifierContext extension_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public List ON() { - return getTokens(PostgreSQLParser.ON); - } - - public TerminalNode ON(int i) { - return getToken(PostgreSQLParser.ON, i); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode DEPENDS() { - return getToken(PostgreSQLParser.DEPENDS, 0); - } - - public TerminalNode EXTENSION() { - return getToken(PostgreSQLParser.EXTENSION, 0); - } - - public Alter_trigger_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_trigger_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_trigger_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_trigger_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_trigger_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_trigger_stmtContext alter_trigger_stmt() throws RecognitionException { - Alter_trigger_stmtContext _localctx = new Alter_trigger_stmtContext(_ctx, getState()); - enterRule(_localctx, 86, RULE_alter_trigger_stmt); - try { - setState(1839); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 112, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1820); - match(ALTER); - setState(1821); - match(TRIGGER); - setState(1822); - ((Alter_trigger_stmtContext) _localctx).name = identifier(0); - setState(1823); - match(ON); - setState(1824); - ((Alter_trigger_stmtContext) _localctx).table_name = identifier(0); - setState(1825); - match(RENAME); - setState(1826); - match(TO); - setState(1827); - ((Alter_trigger_stmtContext) _localctx).new_name = identifier(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1829); - match(ALTER); - setState(1830); - match(TRIGGER); - setState(1831); - ((Alter_trigger_stmtContext) _localctx).name = identifier(0); - setState(1832); - match(ON); - setState(1833); - ((Alter_trigger_stmtContext) _localctx).table_name = identifier(0); - setState(1834); - match(DEPENDS); - setState(1835); - match(ON); - setState(1836); - match(EXTENSION); - setState(1837); - ((Alter_trigger_stmtContext) _localctx).extension_name = identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_type_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_type_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_type_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_type_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_type_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_type_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_type_stmtContext alter_type_stmt() throws RecognitionException { - Alter_type_stmtContext _localctx = new Alter_type_stmtContext(_ctx, getState()); - enterRule(_localctx, 88, RULE_alter_type_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1841); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_user_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_user_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_user_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_user_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_user_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_user_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_user_stmtContext alter_user_stmt() throws RecognitionException { - Alter_user_stmtContext _localctx = new Alter_user_stmtContext(_ctx, getState()); - enterRule(_localctx, 90, RULE_alter_user_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1843); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_user_mapping_stmtContext extends ParserRuleContext { - public Role_nameContext user; - public IdentifierContext server_name; - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode USER() { - return getToken(PostgreSQLParser.USER, 0); - } - - public TerminalNode MAPPING() { - return getToken(PostgreSQLParser.MAPPING, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode SERVER() { - return getToken(PostgreSQLParser.SERVER, 0); - } - - public TerminalNode OPTIONS() { - return getToken(PostgreSQLParser.OPTIONS, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Alter_server_options_listContext alter_server_options_list() { - return getRuleContext(Alter_server_options_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Alter_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_user_mapping_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_user_mapping_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_user_mapping_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_user_mapping_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_user_mapping_stmtContext alter_user_mapping_stmt() throws RecognitionException { - Alter_user_mapping_stmtContext _localctx = new Alter_user_mapping_stmtContext(_ctx, getState()); - enterRule(_localctx, 92, RULE_alter_user_mapping_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1845); - match(ALTER); - setState(1846); - match(USER); - setState(1847); - match(MAPPING); - setState(1848); - match(FOR); - setState(1849); - ((Alter_user_mapping_stmtContext) _localctx).user = role_name(); - setState(1850); - match(SERVER); - setState(1851); - ((Alter_user_mapping_stmtContext) _localctx).server_name = identifier(0); - setState(1852); - match(OPTIONS); - { - setState(1853); - match(OPEN_PAREN); - setState(1854); - alter_server_options_list(); - setState(1855); - match(CLOSE_PAREN); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Alter_view_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Alter_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alter_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAlter_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAlter_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlter_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Alter_view_stmtContext alter_view_stmt() throws RecognitionException { - Alter_view_stmtContext _localctx = new Alter_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 94, RULE_alter_view_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1857); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Analyze_stmtContext extends ParserRuleContext { - public TerminalNode ANALYZE() { - return getToken(PostgreSQLParser.ANALYZE, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public TerminalNode VERBOSE() { - return getToken(PostgreSQLParser.VERBOSE, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Analyze_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_analyze_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAnalyze_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAnalyze_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAnalyze_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Analyze_stmtContext analyze_stmt() throws RecognitionException { - Analyze_stmtContext _localctx = new Analyze_stmtContext(_ctx, getState()); - enterRule(_localctx, 96, RULE_analyze_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1859); - match(ANALYZE); - setState(1861); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == VERBOSE) { - { - setState(1860); - match(VERBOSE); - } - } - - setState(1863); - table_name_(); - setState(1868); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(1864); - match(OPEN_PAREN); - setState(1865); - name_list(); - setState(1866); - match(CLOSE_PAREN); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Close_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Close_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_close_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterClose_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitClose_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitClose_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Close_stmtContext close_stmt() throws RecognitionException { - Close_stmtContext _localctx = new Close_stmtContext(_ctx, getState()); - enterRule(_localctx, 98, RULE_close_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1870); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Cluster_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Cluster_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_cluster_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCluster_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCluster_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCluster_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Cluster_stmtContext cluster_stmt() throws RecognitionException { - Cluster_stmtContext _localctx = new Cluster_stmtContext(_ctx, getState()); - enterRule(_localctx, 100, RULE_cluster_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1872); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Comment_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Comment_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_comment_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterComment_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitComment_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitComment_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Comment_stmtContext comment_stmt() throws RecognitionException { - Comment_stmtContext _localctx = new Comment_stmtContext(_ctx, getState()); - enterRule(_localctx, 102, RULE_comment_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1874); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Commit_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Commit_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_commit_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCommit_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCommit_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCommit_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Commit_stmtContext commit_stmt() throws RecognitionException { - Commit_stmtContext _localctx = new Commit_stmtContext(_ctx, getState()); - enterRule(_localctx, 104, RULE_commit_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1876); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Commit_prepared_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Commit_prepared_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_commit_prepared_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCommit_prepared_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCommit_prepared_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCommit_prepared_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Commit_prepared_stmtContext commit_prepared_stmt() throws RecognitionException { - Commit_prepared_stmtContext _localctx = new Commit_prepared_stmtContext(_ctx, getState()); - enterRule(_localctx, 106, RULE_commit_prepared_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1878); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Copy_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Copy_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_copy_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCopy_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitCopy_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCopy_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Copy_stmtContext copy_stmt() throws RecognitionException { - Copy_stmtContext _localctx = new Copy_stmtContext(_ctx, getState()); - enterRule(_localctx, 108, RULE_copy_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1880); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_stmtContext extends ParserRuleContext { - public Create_access_method_stmtContext create_access_method_stmt() { - return getRuleContext(Create_access_method_stmtContext.class, 0); - } - - public Create_aggregate_stmtContext create_aggregate_stmt() { - return getRuleContext(Create_aggregate_stmtContext.class, 0); - } - - public Create_cast_stmtContext create_cast_stmt() { - return getRuleContext(Create_cast_stmtContext.class, 0); - } - - public Create_collation_stmtContext create_collation_stmt() { - return getRuleContext(Create_collation_stmtContext.class, 0); - } - - public Create_conversion_stmtContext create_conversion_stmt() { - return getRuleContext(Create_conversion_stmtContext.class, 0); - } - - public Create_database_stmtContext create_database_stmt() { - return getRuleContext(Create_database_stmtContext.class, 0); - } - - public Create_domain_stmtContext create_domain_stmt() { - return getRuleContext(Create_domain_stmtContext.class, 0); - } - - public Create_event_trigger_stmtContext create_event_trigger_stmt() { - return getRuleContext(Create_event_trigger_stmtContext.class, 0); - } - - public Create_foreign_data_stmtContext create_foreign_data_stmt() { - return getRuleContext(Create_foreign_data_stmtContext.class, 0); - } - - public Create_foreign_table_stmtContext create_foreign_table_stmt() { - return getRuleContext(Create_foreign_table_stmtContext.class, 0); - } - - public Create_function_stmtContext create_function_stmt() { - return getRuleContext(Create_function_stmtContext.class, 0); - } - - public Create_group_stmtContext create_group_stmt() { - return getRuleContext(Create_group_stmtContext.class, 0); - } - - public Create_index_stmtContext create_index_stmt() { - return getRuleContext(Create_index_stmtContext.class, 0); - } - - public Create_language_stmtContext create_language_stmt() { - return getRuleContext(Create_language_stmtContext.class, 0); - } - - public Create_materialized_view_stmtContext create_materialized_view_stmt() { - return getRuleContext(Create_materialized_view_stmtContext.class, 0); - } - - public Create_operator_stmtContext create_operator_stmt() { - return getRuleContext(Create_operator_stmtContext.class, 0); - } - - public Create_operator_class_stmtContext create_operator_class_stmt() { - return getRuleContext(Create_operator_class_stmtContext.class, 0); - } - - public Create_operator_family_stmtContext create_operator_family_stmt() { - return getRuleContext(Create_operator_family_stmtContext.class, 0); - } - - public Create_policy_stmtContext create_policy_stmt() { - return getRuleContext(Create_policy_stmtContext.class, 0); - } - - public Create_role_stmtContext create_role_stmt() { - return getRuleContext(Create_role_stmtContext.class, 0); - } - - public Create_rule_stmtContext create_rule_stmt() { - return getRuleContext(Create_rule_stmtContext.class, 0); - } - - public Create_schema_stmtContext create_schema_stmt() { - return getRuleContext(Create_schema_stmtContext.class, 0); - } - - public Create_sequence_stmtContext create_sequence_stmt() { - return getRuleContext(Create_sequence_stmtContext.class, 0); - } - - public Create_server_stmtContext create_server_stmt() { - return getRuleContext(Create_server_stmtContext.class, 0); - } - - public Create_statistics_stmtContext create_statistics_stmt() { - return getRuleContext(Create_statistics_stmtContext.class, 0); - } - - public Create_subscription_stmtContext create_subscription_stmt() { - return getRuleContext(Create_subscription_stmtContext.class, 0); - } - - public Create_table_stmtContext create_table_stmt() { - return getRuleContext(Create_table_stmtContext.class, 0); - } - - public Create_table_as_stmtContext create_table_as_stmt() { - return getRuleContext(Create_table_as_stmtContext.class, 0); - } - - public Create_tablespace_stmtContext create_tablespace_stmt() { - return getRuleContext(Create_tablespace_stmtContext.class, 0); - } - - public Create_text_search_config_stmtContext create_text_search_config_stmt() { - return getRuleContext(Create_text_search_config_stmtContext.class, 0); - } - - public Create_text_search_dict_stmtContext create_text_search_dict_stmt() { - return getRuleContext(Create_text_search_dict_stmtContext.class, 0); - } - - public Create_text_search_parser_stmtContext create_text_search_parser_stmt() { - return getRuleContext(Create_text_search_parser_stmtContext.class, 0); - } - - public Create_text_search_template_stmtContext create_text_search_template_stmt() { - return getRuleContext(Create_text_search_template_stmtContext.class, 0); - } - - public Create_transform_stmtContext create_transform_stmt() { - return getRuleContext(Create_transform_stmtContext.class, 0); - } - - public Create_trigger_stmtContext create_trigger_stmt() { - return getRuleContext(Create_trigger_stmtContext.class, 0); - } - - public Create_type_stmtContext create_type_stmt() { - return getRuleContext(Create_type_stmtContext.class, 0); - } - - public Create_user_stmtContext create_user_stmt() { - return getRuleContext(Create_user_stmtContext.class, 0); - } - - public Create_user_mapping_stmtContext create_user_mapping_stmt() { - return getRuleContext(Create_user_mapping_stmtContext.class, 0); - } - - public Create_view_stmtContext create_view_stmt() { - return getRuleContext(Create_view_stmtContext.class, 0); - } - - public Create_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_stmtContext create_stmt() throws RecognitionException { - Create_stmtContext _localctx = new Create_stmtContext(_ctx, getState()); - enterRule(_localctx, 110, RULE_create_stmt); - try { - setState(1921); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 115, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1882); - create_access_method_stmt(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1883); - create_aggregate_stmt(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1884); - create_cast_stmt(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1885); - create_collation_stmt(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1886); - create_conversion_stmt(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1887); - create_database_stmt(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1888); - create_domain_stmt(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1889); - create_event_trigger_stmt(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(1890); - create_foreign_data_stmt(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(1891); - create_foreign_table_stmt(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(1892); - create_function_stmt(); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(1893); - create_group_stmt(); - } - break; - case 13: - enterOuterAlt(_localctx, 13); - { - setState(1894); - create_index_stmt(); - } - break; - case 14: - enterOuterAlt(_localctx, 14); - { - setState(1895); - create_language_stmt(); - } - break; - case 15: - enterOuterAlt(_localctx, 15); - { - setState(1896); - create_materialized_view_stmt(); - } - break; - case 16: - enterOuterAlt(_localctx, 16); - { - setState(1897); - create_operator_stmt(); - } - break; - case 17: - enterOuterAlt(_localctx, 17); - { - setState(1898); - create_operator_class_stmt(); - } - break; - case 18: - enterOuterAlt(_localctx, 18); - { - setState(1899); - create_operator_family_stmt(); - } - break; - case 19: - enterOuterAlt(_localctx, 19); - { - setState(1900); - create_policy_stmt(); - } - break; - case 20: - enterOuterAlt(_localctx, 20); - { - setState(1901); - create_role_stmt(); - } - break; - case 21: - enterOuterAlt(_localctx, 21); - { - setState(1902); - create_rule_stmt(); - } - break; - case 22: - enterOuterAlt(_localctx, 22); - { - setState(1903); - create_schema_stmt(); - } - break; - case 23: - enterOuterAlt(_localctx, 23); - { - setState(1904); - create_sequence_stmt(); - } - break; - case 24: - enterOuterAlt(_localctx, 24); - { - setState(1905); - create_server_stmt(); - } - break; - case 25: - enterOuterAlt(_localctx, 25); - { - setState(1906); - create_statistics_stmt(); - } - break; - case 26: - enterOuterAlt(_localctx, 26); - { - setState(1907); - create_subscription_stmt(); - } - break; - case 27: - enterOuterAlt(_localctx, 27); - { - setState(1908); - create_table_stmt(); - } - break; - case 28: - enterOuterAlt(_localctx, 28); - { - setState(1909); - create_table_as_stmt(); - } - break; - case 29: - enterOuterAlt(_localctx, 29); - { - setState(1910); - create_tablespace_stmt(); - } - break; - case 30: - enterOuterAlt(_localctx, 30); - { - setState(1911); - create_text_search_config_stmt(); - } - break; - case 31: - enterOuterAlt(_localctx, 31); - { - setState(1912); - create_text_search_dict_stmt(); - } - break; - case 32: - enterOuterAlt(_localctx, 32); - { - setState(1913); - create_text_search_parser_stmt(); - } - break; - case 33: - enterOuterAlt(_localctx, 33); - { - setState(1914); - create_text_search_template_stmt(); - } - break; - case 34: - enterOuterAlt(_localctx, 34); - { - setState(1915); - create_transform_stmt(); - } - break; - case 35: - enterOuterAlt(_localctx, 35); - { - setState(1916); - create_trigger_stmt(); - } - break; - case 36: - enterOuterAlt(_localctx, 36); - { - setState(1917); - create_type_stmt(); - } - break; - case 37: - enterOuterAlt(_localctx, 37); - { - setState(1918); - create_user_stmt(); - } - break; - case 38: - enterOuterAlt(_localctx, 38); - { - setState(1919); - create_user_mapping_stmt(); - } - break; - case 39: - enterOuterAlt(_localctx, 39); - { - setState(1920); - create_view_stmt(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_access_method_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode ACCESS() { - return getToken(PostgreSQLParser.ACCESS, 0); - } - - public TerminalNode METHOD() { - return getToken(PostgreSQLParser.METHOD, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public TerminalNode TYPE() { - return getToken(PostgreSQLParser.TYPE, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public TerminalNode HANDLER() { - return getToken(PostgreSQLParser.HANDLER, 0); - } - - public Create_access_method_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_access_method_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_access_method_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_access_method_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_access_method_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_access_method_stmtContext create_access_method_stmt() throws RecognitionException { - Create_access_method_stmtContext _localctx = new Create_access_method_stmtContext(_ctx, getState()); - enterRule(_localctx, 112, RULE_create_access_method_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(1923); - match(CREATE); - setState(1924); - match(ACCESS); - setState(1925); - match(METHOD); - setState(1926); - name_(); - setState(1927); - match(TYPE); - setState(1928); - match(INDEX); - setState(1929); - match(HANDLER); - setState(1930); - name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_aggregate_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode AGGREGATE() { - return getToken(PostgreSQLParser.AGGREGATE, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List data_type_list() { - return getRuleContexts(Data_type_listContext.class); - } - - public Data_type_listContext data_type_list(int i) { - return getRuleContext(Data_type_listContext.class, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode SFUNC() { - return getToken(PostgreSQLParser.SFUNC, 0); - } - - public List EQUAL() { - return getTokens(PostgreSQLParser.EQUAL); - } - - public TerminalNode EQUAL(int i) { - return getToken(PostgreSQLParser.EQUAL, i); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public TerminalNode STYPE() { - return getToken(PostgreSQLParser.STYPE, 0); - } - - public TerminalNode SSPACE() { - return getToken(PostgreSQLParser.SSPACE, 0); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public TerminalNode FINALFUNC() { - return getToken(PostgreSQLParser.FINALFUNC, 0); - } - - public TerminalNode FINALFUNC_EXTRA() { - return getToken(PostgreSQLParser.FINALFUNC_EXTRA, 0); - } - - public TerminalNode COMBINEFUNC() { - return getToken(PostgreSQLParser.COMBINEFUNC, 0); - } - - public TerminalNode SERIALFUNC() { - return getToken(PostgreSQLParser.SERIALFUNC, 0); - } - - public TerminalNode DESERIALFUNC() { - return getToken(PostgreSQLParser.DESERIALFUNC, 0); - } - - public TerminalNode INITCOND() { - return getToken(PostgreSQLParser.INITCOND, 0); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode MSFUNC() { - return getToken(PostgreSQLParser.MSFUNC, 0); - } - - public TerminalNode MINVFUNC() { - return getToken(PostgreSQLParser.MINVFUNC, 0); - } - - public TerminalNode MSTYPE() { - return getToken(PostgreSQLParser.MSTYPE, 0); - } - - public TerminalNode MSSPACE() { - return getToken(PostgreSQLParser.MSSPACE, 0); - } - - public TerminalNode MFINALFUNC() { - return getToken(PostgreSQLParser.MFINALFUNC, 0); - } - - public TerminalNode MFINALFUNC_EXTRA() { - return getToken(PostgreSQLParser.MFINALFUNC_EXTRA, 0); - } - - public TerminalNode MINITCOND() { - return getToken(PostgreSQLParser.MINITCOND, 0); - } - - public TerminalNode SORTOP() { - return getToken(PostgreSQLParser.SORTOP, 0); - } - - public TerminalNode PARALLEL() { - return getToken(PostgreSQLParser.PARALLEL, 0); - } - - public List IN() { - return getTokens(PostgreSQLParser.IN); - } - - public TerminalNode IN(int i) { - return getToken(PostgreSQLParser.IN, i); - } - - public List VARIADIC() { - return getTokens(PostgreSQLParser.VARIADIC); - } - - public TerminalNode VARIADIC(int i) { - return getToken(PostgreSQLParser.VARIADIC, i); - } - - public TerminalNode SAFE() { - return getToken(PostgreSQLParser.SAFE, 0); - } - - public TerminalNode RESTRICTED() { - return getToken(PostgreSQLParser.RESTRICTED, 0); - } - - public TerminalNode UNSAFE() { - return getToken(PostgreSQLParser.UNSAFE, 0); - } - - public TerminalNode ORDER() { - return getToken(PostgreSQLParser.ORDER, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public TerminalNode HYPOTHETICAL() { - return getToken(PostgreSQLParser.HYPOTHETICAL, 0); - } - - public TerminalNode BASETYPE() { - return getToken(PostgreSQLParser.BASETYPE, 0); - } - - public Data_typeContext data_type() { - return getRuleContext(Data_typeContext.class, 0); - } - - public Create_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_aggregate_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_aggregate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_aggregate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_aggregate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_aggregate_stmtContext create_aggregate_stmt() throws RecognitionException { - Create_aggregate_stmtContext _localctx = new Create_aggregate_stmtContext(_ctx, getState()); - enterRule(_localctx, 114, RULE_create_aggregate_stmt); - int _la; - try { - setState(2214); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 160, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - { - setState(1932); - match(CREATE); - setState(1933); - match(AGGREGATE); - setState(1934); - name_(); - setState(1935); - match(OPEN_PAREN); - setState(1937); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN || _la == VARIADIC) { - { - setState(1936); - _la = _input.LA(1); - if (!(_la == IN || _la == VARIADIC)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(1940); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 117, _ctx)) { - case 1: { - setState(1939); - name_(); - } - break; - } - setState(1942); - data_type_list(); - setState(1943); - match(CLOSE_PAREN); - setState(1944); - match(OPEN_PAREN); - setState(1945); - match(SFUNC); - setState(1946); - match(EQUAL); - setState(1947); - identifier(0); - setState(1948); - match(COMMA); - setState(1949); - match(STYPE); - setState(1950); - match(EQUAL); - setState(1951); - identifier(0); - setState(1956); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 118, _ctx)) { - case 1: { - setState(1952); - match(COMMA); - setState(1953); - match(SSPACE); - setState(1954); - match(EQUAL); - setState(1955); - match(INTEGER_LITERAL); - } - break; - } - setState(1962); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 119, _ctx)) { - case 1: { - setState(1958); - match(COMMA); - setState(1959); - match(FINALFUNC); - setState(1960); - match(EQUAL); - setState(1961); - identifier(0); - } - break; - } - setState(1966); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 120, _ctx)) { - case 1: { - setState(1964); - match(COMMA); - setState(1965); - match(FINALFUNC_EXTRA); - } - break; - } - setState(1972); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 121, _ctx)) { - case 1: { - setState(1968); - match(COMMA); - setState(1969); - match(COMBINEFUNC); - setState(1970); - match(EQUAL); - setState(1971); - identifier(0); - } - break; - } - setState(1978); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 122, _ctx)) { - case 1: { - setState(1974); - match(COMMA); - setState(1975); - match(SERIALFUNC); - setState(1976); - match(EQUAL); - setState(1977); - identifier(0); - } - break; - } - setState(1984); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 123, _ctx)) { - case 1: { - setState(1980); - match(COMMA); - setState(1981); - match(DESERIALFUNC); - setState(1982); - match(EQUAL); - setState(1983); - identifier(0); - } - break; - } - setState(1990); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 124, _ctx)) { - case 1: { - setState(1986); - match(COMMA); - setState(1987); - match(INITCOND); - setState(1988); - match(EQUAL); - setState(1989); - expr(0); - } - break; - } - setState(1996); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 125, _ctx)) { - case 1: { - setState(1992); - match(COMMA); - setState(1993); - match(MSFUNC); - setState(1994); - match(EQUAL); - setState(1995); - identifier(0); - } - break; - } - setState(2002); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 126, _ctx)) { - case 1: { - setState(1998); - match(COMMA); - setState(1999); - match(MINVFUNC); - setState(2000); - match(EQUAL); - setState(2001); - identifier(0); - } - break; - } - setState(2008); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 127, _ctx)) { - case 1: { - setState(2004); - match(COMMA); - setState(2005); - match(MSTYPE); - setState(2006); - match(EQUAL); - setState(2007); - identifier(0); - } - break; - } - setState(2014); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 128, _ctx)) { - case 1: { - setState(2010); - match(COMMA); - setState(2011); - match(MSSPACE); - setState(2012); - match(EQUAL); - setState(2013); - match(INTEGER_LITERAL); - } - break; - } - setState(2020); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 129, _ctx)) { - case 1: { - setState(2016); - match(COMMA); - setState(2017); - match(MFINALFUNC); - setState(2018); - match(EQUAL); - setState(2019); - identifier(0); - } - break; - } - setState(2024); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 130, _ctx)) { - case 1: { - setState(2022); - match(COMMA); - setState(2023); - match(MFINALFUNC_EXTRA); - } - break; - } - setState(2030); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 131, _ctx)) { - case 1: { - setState(2026); - match(COMMA); - setState(2027); - match(MINITCOND); - setState(2028); - match(EQUAL); - setState(2029); - identifier(0); - } - break; - } - setState(2036); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 132, _ctx)) { - case 1: { - setState(2032); - match(COMMA); - setState(2033); - match(SORTOP); - setState(2034); - match(EQUAL); - setState(2035); - identifier(0); - } - break; - } - setState(2042); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(2038); - match(COMMA); - setState(2039); - match(PARALLEL); - setState(2040); - match(EQUAL); - setState(2041); - _la = _input.LA(1); - if (!(((((_la - 686)) & ~0x3f) == 0 && ((1L << (_la - 686)) & ((1L << (SAFE - 686)) | (1L << (RESTRICTED - 686)) | (1L << (UNSAFE - 686)))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(2044); - match(CLOSE_PAREN); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - { - setState(2046); - match(CREATE); - setState(2047); - match(AGGREGATE); - setState(2048); - name_(); - setState(2049); - match(OPEN_PAREN); - setState(2057); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(2051); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN || _la == VARIADIC) { - { - setState(2050); - _la = _input.LA(1); - if (!(_la == IN || _la == VARIADIC)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(2054); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 135, _ctx)) { - case 1: { - setState(2053); - name_(); - } - break; - } - setState(2056); - data_type_list(); - } - } - - setState(2059); - match(ORDER); - setState(2060); - match(BY); - setState(2062); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN || _la == VARIADIC) { - { - setState(2061); - _la = _input.LA(1); - if (!(_la == IN || _la == VARIADIC)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(2065); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 138, _ctx)) { - case 1: { - setState(2064); - name_(); - } - break; - } - setState(2067); - data_type_list(); - setState(2068); - match(CLOSE_PAREN); - setState(2069); - match(OPEN_PAREN); - setState(2070); - match(SFUNC); - setState(2071); - match(EQUAL); - setState(2072); - identifier(0); - setState(2073); - match(COMMA); - setState(2074); - match(STYPE); - setState(2075); - match(EQUAL); - setState(2076); - identifier(0); - setState(2081); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 139, _ctx)) { - case 1: { - setState(2077); - match(COMMA); - setState(2078); - match(SSPACE); - setState(2079); - match(EQUAL); - setState(2080); - match(INTEGER_LITERAL); - } - break; - } - setState(2087); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 140, _ctx)) { - case 1: { - setState(2083); - match(COMMA); - setState(2084); - match(FINALFUNC); - setState(2085); - match(EQUAL); - setState(2086); - identifier(0); - } - break; - } - setState(2091); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 141, _ctx)) { - case 1: { - setState(2089); - match(COMMA); - setState(2090); - match(FINALFUNC_EXTRA); - } - break; - } - setState(2097); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 142, _ctx)) { - case 1: { - setState(2093); - match(COMMA); - setState(2094); - match(INITCOND); - setState(2095); - match(EQUAL); - setState(2096); - expr(0); - } - break; - } - setState(2103); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 143, _ctx)) { - case 1: { - setState(2099); - match(COMMA); - setState(2100); - match(PARALLEL); - setState(2101); - match(EQUAL); - setState(2102); - _la = _input.LA(1); - if (!(((((_la - 686)) & ~0x3f) == 0 && ((1L << (_la - 686)) & ((1L << (SAFE - 686)) | (1L << (RESTRICTED - 686)) | (1L << (UNSAFE - 686)))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(2107); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(2105); - match(COMMA); - setState(2106); - match(HYPOTHETICAL); - } - } - - setState(2109); - match(CLOSE_PAREN); - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - { - setState(2111); - match(CREATE); - setState(2112); - match(AGGREGATE); - setState(2113); - name_(); - setState(2114); - match(OPEN_PAREN); - setState(2115); - match(BASETYPE); - setState(2116); - match(EQUAL); - setState(2117); - data_type(); - setState(2118); - match(COMMA); - setState(2119); - match(SFUNC); - setState(2120); - match(EQUAL); - setState(2121); - identifier(0); - setState(2122); - match(COMMA); - setState(2123); - match(STYPE); - setState(2124); - match(EQUAL); - setState(2125); - identifier(0); - setState(2130); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 145, _ctx)) { - case 1: { - setState(2126); - match(COMMA); - setState(2127); - match(SSPACE); - setState(2128); - match(EQUAL); - setState(2129); - match(INTEGER_LITERAL); - } - break; - } - setState(2136); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 146, _ctx)) { - case 1: { - setState(2132); - match(COMMA); - setState(2133); - match(FINALFUNC); - setState(2134); - match(EQUAL); - setState(2135); - identifier(0); - } - break; - } - setState(2140); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 147, _ctx)) { - case 1: { - setState(2138); - match(COMMA); - setState(2139); - match(FINALFUNC_EXTRA); - } - break; - } - setState(2146); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 148, _ctx)) { - case 1: { - setState(2142); - match(COMMA); - setState(2143); - match(COMBINEFUNC); - setState(2144); - match(EQUAL); - setState(2145); - identifier(0); - } - break; - } - setState(2152); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 149, _ctx)) { - case 1: { - setState(2148); - match(COMMA); - setState(2149); - match(SERIALFUNC); - setState(2150); - match(EQUAL); - setState(2151); - identifier(0); - } - break; - } - setState(2158); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 150, _ctx)) { - case 1: { - setState(2154); - match(COMMA); - setState(2155); - match(DESERIALFUNC); - setState(2156); - match(EQUAL); - setState(2157); - identifier(0); - } - break; - } - setState(2164); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 151, _ctx)) { - case 1: { - setState(2160); - match(COMMA); - setState(2161); - match(INITCOND); - setState(2162); - match(EQUAL); - setState(2163); - expr(0); - } - break; - } - setState(2170); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 152, _ctx)) { - case 1: { - setState(2166); - match(COMMA); - setState(2167); - match(MSFUNC); - setState(2168); - match(EQUAL); - setState(2169); - identifier(0); - } - break; - } - setState(2176); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 153, _ctx)) { - case 1: { - setState(2172); - match(COMMA); - setState(2173); - match(MINVFUNC); - setState(2174); - match(EQUAL); - setState(2175); - identifier(0); - } - break; - } - setState(2182); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 154, _ctx)) { - case 1: { - setState(2178); - match(COMMA); - setState(2179); - match(MSTYPE); - setState(2180); - match(EQUAL); - setState(2181); - identifier(0); - } - break; - } - setState(2188); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 155, _ctx)) { - case 1: { - setState(2184); - match(COMMA); - setState(2185); - match(MSSPACE); - setState(2186); - match(EQUAL); - setState(2187); - match(INTEGER_LITERAL); - } - break; - } - setState(2194); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 156, _ctx)) { - case 1: { - setState(2190); - match(COMMA); - setState(2191); - match(MFINALFUNC); - setState(2192); - match(EQUAL); - setState(2193); - identifier(0); - } - break; - } - setState(2198); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 157, _ctx)) { - case 1: { - setState(2196); - match(COMMA); - setState(2197); - match(MFINALFUNC_EXTRA); - } - break; - } - setState(2204); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 158, _ctx)) { - case 1: { - setState(2200); - match(COMMA); - setState(2201); - match(MINITCOND); - setState(2202); - match(EQUAL); - setState(2203); - identifier(0); - } - break; - } - setState(2210); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(2206); - match(COMMA); - setState(2207); - match(SORTOP); - setState(2208); - match(EQUAL); - setState(2209); - identifier(0); - } - } - - setState(2212); - match(CLOSE_PAREN); - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_cast_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode CAST() { - return getToken(PostgreSQLParser.CAST, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List data_type() { - return getRuleContexts(Data_typeContext.class); - } - - public Data_typeContext data_type(int i) { - return getRuleContext(Data_typeContext.class, i); - } - - public List AS() { - return getTokens(PostgreSQLParser.AS); - } - - public TerminalNode AS(int i) { - return getToken(PostgreSQLParser.AS, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode ASSIGNMENT() { - return getToken(PostgreSQLParser.ASSIGNMENT, 0); - } - - public TerminalNode IMPLICIT() { - return getToken(PostgreSQLParser.IMPLICIT, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode FUNCTION() { - return getToken(PostgreSQLParser.FUNCTION, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode WITHOUT() { - return getToken(PostgreSQLParser.WITHOUT, 0); - } - - public TerminalNode INOUT() { - return getToken(PostgreSQLParser.INOUT, 0); - } - - public Data_type_listContext data_type_list() { - return getRuleContext(Data_type_listContext.class, 0); - } - - public Create_cast_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_cast_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_cast_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_cast_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_cast_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_cast_stmtContext create_cast_stmt() throws RecognitionException { - Create_cast_stmtContext _localctx = new Create_cast_stmtContext(_ctx, getState()); - enterRule(_localctx, 116, RULE_create_cast_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2216); - match(CREATE); - setState(2217); - match(CAST); - setState(2218); - match(OPEN_PAREN); - setState(2219); - data_type(); - setState(2220); - match(AS); - setState(2221); - data_type(); - setState(2222); - match(CLOSE_PAREN); - setState(2236); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 162, _ctx)) { - case 1: { - { - setState(2223); - match(WITH); - setState(2224); - match(FUNCTION); - setState(2225); - identifier(0); - setState(2230); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(2226); - match(OPEN_PAREN); - setState(2227); - data_type_list(); - setState(2228); - match(CLOSE_PAREN); - } - } - - } - } - break; - case 2: { - { - setState(2232); - match(WITHOUT); - setState(2233); - match(FUNCTION); - } - } - break; - case 3: { - { - setState(2234); - match(WITH); - setState(2235); - match(INOUT); - } - } - break; - } - setState(2242); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 163, _ctx)) { - case 1: { - setState(2238); - match(AS); - setState(2239); - match(ASSIGNMENT); - } - break; - case 2: { - setState(2240); - match(AS); - setState(2241); - match(IMPLICIT); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_collation_optContext extends ParserRuleContext { - public TerminalNode LOCALE() { - return getToken(PostgreSQLParser.LOCALE, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode LC_COLLATE() { - return getToken(PostgreSQLParser.LC_COLLATE, 0); - } - - public TerminalNode LC_CTYPE() { - return getToken(PostgreSQLParser.LC_CTYPE, 0); - } - - public TerminalNode PROVIDER() { - return getToken(PostgreSQLParser.PROVIDER, 0); - } - - public TerminalNode VERSION() { - return getToken(PostgreSQLParser.VERSION, 0); - } - - public TerminalNode DOUBLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); - } - - public Create_collation_optContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_collation_opt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_collation_opt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_collation_opt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_collation_opt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_collation_optContext create_collation_opt() throws RecognitionException { - Create_collation_optContext _localctx = new Create_collation_optContext(_ctx, getState()); - enterRule(_localctx, 118, RULE_create_collation_opt); - try { - setState(2262); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LOCALE: - enterOuterAlt(_localctx, 1); - { - setState(2244); - match(LOCALE); - setState(2245); - match(EQUAL); - setState(2246); - expr(0); - } - break; - case LC_COLLATE: - enterOuterAlt(_localctx, 2); - { - setState(2247); - match(LC_COLLATE); - setState(2248); - match(EQUAL); - setState(2249); - expr(0); - } - break; - case LC_CTYPE: - enterOuterAlt(_localctx, 3); - { - setState(2250); - match(LC_CTYPE); - setState(2251); - match(EQUAL); - setState(2252); - expr(0); - } - break; - case PROVIDER: - enterOuterAlt(_localctx, 4); - { - setState(2253); - match(PROVIDER); - setState(2254); - match(EQUAL); - setState(2255); - expr(0); - } - break; - case VERSION: - enterOuterAlt(_localctx, 5); - { - setState(2256); - match(VERSION); - setState(2257); - match(EQUAL); - setState(2258); - expr(0); - } - break; - case DOUBLEQ_STRING_LITERAL: - enterOuterAlt(_localctx, 6); - { - setState(2259); - match(DOUBLEQ_STRING_LITERAL); - setState(2260); - match(EQUAL); - setState(2261); - expr(0); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_collation_opt_listContext extends ParserRuleContext { - public List create_collation_opt() { - return getRuleContexts(Create_collation_optContext.class); - } - - public Create_collation_optContext create_collation_opt(int i) { - return getRuleContext(Create_collation_optContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Create_collation_opt_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_collation_opt_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_collation_opt_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_collation_opt_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_collation_opt_list(this); - else return visitor.visitChildren(this); - } - } - - public final Create_collation_opt_listContext create_collation_opt_list() throws RecognitionException { - Create_collation_opt_listContext _localctx = new Create_collation_opt_listContext(_ctx, getState()); - enterRule(_localctx, 120, RULE_create_collation_opt_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2264); - create_collation_opt(); - setState(2269); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(2265); - match(COMMA); - setState(2266); - create_collation_opt(); - } - } - setState(2271); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_collation_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode COLLATION() { - return getToken(PostgreSQLParser.COLLATION, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Create_collation_opt_listContext create_collation_opt_list() { - return getRuleContext(Create_collation_opt_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public Create_collation_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_collation_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_collation_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_collation_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_collation_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_collation_stmtContext create_collation_stmt() throws RecognitionException { - Create_collation_stmtContext _localctx = new Create_collation_stmtContext(_ctx, getState()); - enterRule(_localctx, 122, RULE_create_collation_stmt); - int _la; - try { - setState(2295); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 168, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - { - setState(2272); - match(CREATE); - setState(2273); - match(COLLATION); - setState(2277); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(2274); - match(IF); - setState(2275); - match(NOT); - setState(2276); - match(EXISTS); - } - } - - setState(2279); - name_(); - setState(2280); - match(OPEN_PAREN); - setState(2281); - create_collation_opt_list(); - setState(2282); - match(CLOSE_PAREN); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - { - setState(2284); - match(CREATE); - setState(2285); - match(COLLATION); - setState(2289); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(2286); - match(IF); - setState(2287); - match(NOT); - setState(2288); - match(EXISTS); - } - } - - setState(2291); - name_(); - setState(2292); - match(FROM); - setState(2293); - name_(); - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_conversion_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode CONVERSION() { - return getToken(PostgreSQLParser.CONVERSION, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public List SINGLEQ_STRING_LITERAL() { - return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); - } - - public TerminalNode SINGLEQ_STRING_LITERAL(int i) { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public Create_conversion_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_conversion_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_conversion_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_conversion_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_conversion_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_conversion_stmtContext create_conversion_stmt() throws RecognitionException { - Create_conversion_stmtContext _localctx = new Create_conversion_stmtContext(_ctx, getState()); - enterRule(_localctx, 124, RULE_create_conversion_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2297); - match(CREATE); - setState(2299); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == DEFAULT) { - { - setState(2298); - match(DEFAULT); - } - } - - setState(2301); - match(CONVERSION); - setState(2302); - identifier(0); - setState(2303); - match(FOR); - setState(2304); - match(SINGLEQ_STRING_LITERAL); - setState(2305); - match(TO); - setState(2306); - match(SINGLEQ_STRING_LITERAL); - setState(2307); - match(FROM); - setState(2308); - name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_database_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode DATABASE() { - return getToken(PostgreSQLParser.DATABASE, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public List EQUAL() { - return getTokens(PostgreSQLParser.EQUAL); - } - - public TerminalNode EQUAL(int i) { - return getToken(PostgreSQLParser.EQUAL, i); - } - - public TerminalNode TEMPLATE() { - return getToken(PostgreSQLParser.TEMPLATE, 0); - } - - public TerminalNode ENCODING() { - return getToken(PostgreSQLParser.ENCODING, 0); - } - - public TerminalNode LC_COLLATE() { - return getToken(PostgreSQLParser.LC_COLLATE, 0); - } - - public TerminalNode LC_CTYPE() { - return getToken(PostgreSQLParser.LC_CTYPE, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public TerminalNode ALLOW_CONNECTIONS() { - return getToken(PostgreSQLParser.ALLOW_CONNECTIONS, 0); - } - - public TerminalNode CONNECTION() { - return getToken(PostgreSQLParser.CONNECTION, 0); - } - - public TerminalNode LIMIT() { - return getToken(PostgreSQLParser.LIMIT, 0); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public TerminalNode IS_TEMPLATE() { - return getToken(PostgreSQLParser.IS_TEMPLATE, 0); - } - - public Create_database_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_database_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_database_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_database_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_database_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_database_stmtContext create_database_stmt() throws RecognitionException { - Create_database_stmtContext _localctx = new Create_database_stmtContext(_ctx, getState()); - enterRule(_localctx, 126, RULE_create_database_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2310); - match(CREATE); - setState(2311); - match(DATABASE); - setState(2312); - name_(); - { - setState(2314); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2313); - match(WITH); - } - } - - setState(2319); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OWNER) { - { - setState(2316); - match(OWNER); - setState(2317); - match(EQUAL); - setState(2318); - name_(); - } - } - - setState(2324); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TEMPLATE) { - { - setState(2321); - match(TEMPLATE); - setState(2322); - match(EQUAL); - setState(2323); - name_(); - } - } - - setState(2329); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ENCODING) { - { - setState(2326); - match(ENCODING); - setState(2327); - match(EQUAL); - setState(2328); - name_(); - } - } - - setState(2334); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LC_COLLATE) { - { - setState(2331); - match(LC_COLLATE); - setState(2332); - match(EQUAL); - setState(2333); - name_(); - } - } - - setState(2339); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LC_CTYPE) { - { - setState(2336); - match(LC_CTYPE); - setState(2337); - match(EQUAL); - setState(2338); - name_(); - } - } - - setState(2344); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TABLESPACE) { - { - setState(2341); - match(TABLESPACE); - setState(2342); - match(EQUAL); - setState(2343); - name_(); - } - } - - setState(2349); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ALLOW_CONNECTIONS) { - { - setState(2346); - match(ALLOW_CONNECTIONS); - setState(2347); - match(EQUAL); - setState(2348); - name_(); - } - } - - setState(2355); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CONNECTION) { - { - setState(2351); - match(CONNECTION); - setState(2352); - match(LIMIT); - setState(2353); - match(EQUAL); - setState(2354); - match(INTEGER_LITERAL); - } - } - - setState(2360); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IS_TEMPLATE) { - { - setState(2357); - match(IS_TEMPLATE); - setState(2358); - match(EQUAL); - setState(2359); - match(INTEGER_LITERAL); - } - } - - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Domain_constraintContext extends ParserRuleContext { - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode NULL() { - return getToken(PostgreSQLParser.NULL, 0); - } - - public TerminalNode CHECK() { - return getToken(PostgreSQLParser.CHECK, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode CONSTRAINT() { - return getToken(PostgreSQLParser.CONSTRAINT, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Domain_constraintContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_domain_constraint; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDomain_constraint(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDomain_constraint(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDomain_constraint(this); - else return visitor.visitChildren(this); - } - } - - public final Domain_constraintContext domain_constraint() throws RecognitionException { - Domain_constraintContext _localctx = new Domain_constraintContext(_ctx, getState()); - enterRule(_localctx, 128, RULE_domain_constraint); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2364); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CONSTRAINT) { - { - setState(2362); - match(CONSTRAINT); - setState(2363); - name_(); - } - } - - setState(2374); - _errHandler.sync(this); - switch (_input.LA(1)) { - case NOT: { - setState(2366); - match(NOT); - setState(2367); - match(NULL); - } - break; - case NULL: { - setState(2368); - match(NULL); - } - break; - case CHECK: { - setState(2369); - match(CHECK); - setState(2370); - match(OPEN_PAREN); - setState(2371); - expr(0); - setState(2372); - match(CLOSE_PAREN); - } - break; - default: - throw new NoViableAltException(this); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_domain_stmtContext extends ParserRuleContext { - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode DOMAIN() { - return getToken(PostgreSQLParser.DOMAIN, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public Data_typeContext data_type() { - return getRuleContext(Data_typeContext.class, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List domain_constraint() { - return getRuleContexts(Domain_constraintContext.class); - } - - public Domain_constraintContext domain_constraint(int i) { - return getRuleContext(Domain_constraintContext.class, i); - } - - public List COLLATE() { - return getTokens(PostgreSQLParser.COLLATE); - } - - public TerminalNode COLLATE(int i) { - return getToken(PostgreSQLParser.COLLATE, i); - } - - public List DEFAULT() { - return getTokens(PostgreSQLParser.DEFAULT); - } - - public TerminalNode DEFAULT(int i) { - return getToken(PostgreSQLParser.DEFAULT, i); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public Create_domain_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_domain_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_domain_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_domain_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_domain_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_domain_stmtContext create_domain_stmt() throws RecognitionException { - Create_domain_stmtContext _localctx = new Create_domain_stmtContext(_ctx, getState()); - enterRule(_localctx, 130, RULE_create_domain_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2376); - match(CREATE); - setState(2377); - match(DOMAIN); - setState(2378); - name_(); - setState(2380); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(2379); - match(AS); - } - } - - setState(2382); - data_type(); - setState(2390); - _errHandler.sync(this); - _la = _input.LA(1); - while (((((_la - 78)) & ~0x3f) == 0 && ((1L << (_la - 78)) & ((1L << (CHECK - 78)) | (1L << (COLLATE - 78)) | (1L << (CONSTRAINT - 78)))) != 0) || _la == DEFAULT || _la == NOT || _la == NULL) { - { - setState(2388); - _errHandler.sync(this); - switch (_input.LA(1)) { - case COLLATE: { - { - setState(2383); - match(COLLATE); - setState(2384); - name_(); - } - } - break; - case DEFAULT: { - { - setState(2385); - match(DEFAULT); - setState(2386); - expr(0); - } - } - break; - case CHECK: - case CONSTRAINT: - case NOT: - case NULL: { - setState(2387); - domain_constraint(); - } - break; - default: - throw new NoViableAltException(this); - } - } - setState(2392); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_event_trigger_condContext extends ParserRuleContext { - public IdentifierContext filter_stmt; - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List SINGLEQ_STRING_LITERAL() { - return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); - } - - public TerminalNode SINGLEQ_STRING_LITERAL(int i) { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public List AND() { - return getTokens(PostgreSQLParser.AND); - } - - public TerminalNode AND(int i) { - return getToken(PostgreSQLParser.AND, i); - } - - public List create_event_trigger_cond() { - return getRuleContexts(Create_event_trigger_condContext.class); - } - - public Create_event_trigger_condContext create_event_trigger_cond(int i) { - return getRuleContext(Create_event_trigger_condContext.class, i); - } - - public Create_event_trigger_condContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_event_trigger_cond; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_event_trigger_cond(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_event_trigger_cond(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_event_trigger_cond(this); - else return visitor.visitChildren(this); - } - } - - public final Create_event_trigger_condContext create_event_trigger_cond() throws RecognitionException { - Create_event_trigger_condContext _localctx = new Create_event_trigger_condContext(_ctx, getState()); - enterRule(_localctx, 132, RULE_create_event_trigger_cond); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2393); - ((Create_event_trigger_condContext) _localctx).filter_stmt = identifier(0); - setState(2394); - match(IN); - setState(2395); - match(OPEN_PAREN); - setState(2396); - match(SINGLEQ_STRING_LITERAL); - setState(2401); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(2397); - match(COMMA); - setState(2398); - match(SINGLEQ_STRING_LITERAL); - } - } - setState(2403); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2404); - match(CLOSE_PAREN); - setState(2409); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 186, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(2405); - match(AND); - setState(2406); - create_event_trigger_cond(); - } - } - } - setState(2411); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 186, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_event_trigger_stmtContext extends ParserRuleContext { - public IdentifierContext trigger; - public IdentifierContext event; - public IdentifierContext fn_name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode EVENT() { - return getToken(PostgreSQLParser.EVENT, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode EXECUTE() { - return getToken(PostgreSQLParser.EXECUTE, 0); - } - - public TerminalNode PROCEDURE() { - return getToken(PostgreSQLParser.PROCEDURE, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode WHEN() { - return getToken(PostgreSQLParser.WHEN, 0); - } - - public Create_event_trigger_condContext create_event_trigger_cond() { - return getRuleContext(Create_event_trigger_condContext.class, 0); - } - - public Create_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_event_trigger_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_event_trigger_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_event_trigger_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_event_trigger_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_event_trigger_stmtContext create_event_trigger_stmt() throws RecognitionException { - Create_event_trigger_stmtContext _localctx = new Create_event_trigger_stmtContext(_ctx, getState()); - enterRule(_localctx, 134, RULE_create_event_trigger_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2412); - match(CREATE); - setState(2413); - match(EVENT); - setState(2414); - match(TRIGGER); - setState(2415); - ((Create_event_trigger_stmtContext) _localctx).trigger = identifier(0); - setState(2416); - match(ON); - setState(2417); - ((Create_event_trigger_stmtContext) _localctx).event = identifier(0); - setState(2420); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WHEN) { - { - setState(2418); - match(WHEN); - setState(2419); - create_event_trigger_cond(); - } - } - - setState(2422); - match(EXECUTE); - setState(2423); - match(PROCEDURE); - setState(2424); - ((Create_event_trigger_stmtContext) _localctx).fn_name = identifier(0); - setState(2425); - match(OPEN_PAREN); - setState(2426); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_foreign_data_optionsContext extends ParserRuleContext { - public Name_Context opt; - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public List create_foreign_data_options() { - return getRuleContexts(Create_foreign_data_optionsContext.class); - } - - public Create_foreign_data_optionsContext create_foreign_data_options(int i) { - return getRuleContext(Create_foreign_data_optionsContext.class, i); - } - - public Create_foreign_data_optionsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_foreign_data_options; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_foreign_data_options(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_foreign_data_options(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_foreign_data_options(this); - else return visitor.visitChildren(this); - } - } - - public final Create_foreign_data_optionsContext create_foreign_data_options() throws RecognitionException { - Create_foreign_data_optionsContext _localctx = new Create_foreign_data_optionsContext(_ctx, getState()); - enterRule(_localctx, 136, RULE_create_foreign_data_options); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2428); - ((Create_foreign_data_optionsContext) _localctx).opt = name_(); - setState(2429); - match(SINGLEQ_STRING_LITERAL); - setState(2434); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 188, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(2430); - match(COMMA); - setState(2431); - create_foreign_data_options(); - } - } - } - setState(2436); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 188, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_foreign_data_stmtContext extends ParserRuleContext { - public IdentifierContext wrapper; - public IdentifierContext handler; - public IdentifierContext validator; - public Create_foreign_data_optionsContext opts; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode DATA() { - return getToken(PostgreSQLParser.DATA, 0); - } - - public TerminalNode WRAPPER() { - return getToken(PostgreSQLParser.WRAPPER, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List HANDLER() { - return getTokens(PostgreSQLParser.HANDLER); - } - - public TerminalNode HANDLER(int i) { - return getToken(PostgreSQLParser.HANDLER, i); - } - - public List NO() { - return getTokens(PostgreSQLParser.NO); - } - - public TerminalNode NO(int i) { - return getToken(PostgreSQLParser.NO, i); - } - - public TerminalNode VALIDATOR() { - return getToken(PostgreSQLParser.VALIDATOR, 0); - } - - public TerminalNode OPTIONS() { - return getToken(PostgreSQLParser.OPTIONS, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Create_foreign_data_optionsContext create_foreign_data_options() { - return getRuleContext(Create_foreign_data_optionsContext.class, 0); - } - - public Create_foreign_data_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_foreign_data_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_foreign_data_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_foreign_data_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_foreign_data_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_foreign_data_stmtContext create_foreign_data_stmt() throws RecognitionException { - Create_foreign_data_stmtContext _localctx = new Create_foreign_data_stmtContext(_ctx, getState()); - enterRule(_localctx, 138, RULE_create_foreign_data_stmt); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2437); - match(CREATE); - setState(2438); - match(FOREIGN); - setState(2439); - match(DATA); - setState(2440); - match(WRAPPER); - setState(2441); - ((Create_foreign_data_stmtContext) _localctx).wrapper = identifier(0); - setState(2448); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 190, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - setState(2446); - _errHandler.sync(this); - switch (_input.LA(1)) { - case HANDLER: { - setState(2442); - match(HANDLER); - setState(2443); - ((Create_foreign_data_stmtContext) _localctx).handler = identifier(0); - } - break; - case NO: { - setState(2444); - match(NO); - setState(2445); - match(HANDLER); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - setState(2450); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 190, _ctx); - } - setState(2455); - _errHandler.sync(this); - switch (_input.LA(1)) { - case VALIDATOR: { - setState(2451); - match(VALIDATOR); - setState(2452); - ((Create_foreign_data_stmtContext) _localctx).validator = identifier(0); - } - break; - case NO: { - setState(2453); - match(NO); - setState(2454); - match(VALIDATOR); - } - break; - case EOF: - case OPTIONS: - case CLOSE_PAREN: - case SEMI: - break; - default: - break; - } - setState(2462); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPTIONS) { - { - setState(2457); - match(OPTIONS); - setState(2458); - match(OPEN_PAREN); - setState(2459); - ((Create_foreign_data_stmtContext) _localctx).opts = create_foreign_data_options(); - setState(2460); - match(CLOSE_PAREN); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_foreign_table_stmtContext extends ParserRuleContext { - public IdentifierContext table_name_TODO; - public IdentifierContext column_name_TODO; - public IdentifierContext column_type; - public Create_foreign_data_optionsContext opts; - public Name_Context server_name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode SERVER() { - return getToken(PostgreSQLParser.SERVER, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public List OPTIONS() { - return getTokens(PostgreSQLParser.OPTIONS); - } - - public TerminalNode OPTIONS(int i) { - return getToken(PostgreSQLParser.OPTIONS, i); - } - - public TerminalNode COLLATE() { - return getToken(PostgreSQLParser.COLLATE, 0); - } - - public Create_collation_optContext create_collation_opt() { - return getRuleContext(Create_collation_optContext.class, 0); - } - - public TerminalNode INHERITS() { - return getToken(PostgreSQLParser.INHERITS, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public List create_foreign_data_options() { - return getRuleContexts(Create_foreign_data_optionsContext.class); - } - - public Create_foreign_data_optionsContext create_foreign_data_options(int i) { - return getRuleContext(Create_foreign_data_optionsContext.class, i); - } - - public Create_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_foreign_table_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_foreign_table_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_foreign_table_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_foreign_table_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_foreign_table_stmtContext create_foreign_table_stmt() throws RecognitionException { - Create_foreign_table_stmtContext _localctx = new Create_foreign_table_stmtContext(_ctx, getState()); - enterRule(_localctx, 140, RULE_create_foreign_table_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2464); - match(CREATE); - setState(2465); - match(FOREIGN); - setState(2466); - match(TABLE); - setState(2470); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(2467); - match(IF); - setState(2468); - match(NOT); - setState(2469); - match(EXISTS); - } - } - - setState(2472); - ((Create_foreign_table_stmtContext) _localctx).table_name_TODO = identifier(0); - setState(2473); - match(OPEN_PAREN); - setState(2474); - ((Create_foreign_table_stmtContext) _localctx).column_name_TODO = identifier(0); - setState(2475); - ((Create_foreign_table_stmtContext) _localctx).column_type = identifier(0); - setState(2481); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPTIONS) { - { - setState(2476); - match(OPTIONS); - setState(2477); - match(OPEN_PAREN); - setState(2478); - ((Create_foreign_table_stmtContext) _localctx).opts = create_foreign_data_options(); - setState(2479); - match(CLOSE_PAREN); - } - } - - setState(2485); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COLLATE) { - { - setState(2483); - match(COLLATE); - setState(2484); - create_collation_opt(); - } - } - - setState(2487); - match(CLOSE_PAREN); - setState(2490); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INHERITS) { - { - setState(2488); - match(INHERITS); - setState(2489); - name_list(); - } - } - - setState(2492); - match(SERVER); - setState(2493); - ((Create_foreign_table_stmtContext) _localctx).server_name = name_(); - setState(2499); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPTIONS) { - { - setState(2494); - match(OPTIONS); - setState(2495); - match(OPEN_PAREN); - setState(2496); - ((Create_foreign_table_stmtContext) _localctx).opts = create_foreign_data_options(); - setState(2497); - match(CLOSE_PAREN); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_function_stmtContext extends ParserRuleContext { - public Name_Context fn_name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode FUNCTION() { - return getToken(PostgreSQLParser.FUNCTION, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public TerminalNode REPLACE() { - return getToken(PostgreSQLParser.REPLACE, 0); - } - - public Create_function_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_function_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_function_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_function_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_function_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_function_stmtContext create_function_stmt() throws RecognitionException { - Create_function_stmtContext _localctx = new Create_function_stmtContext(_ctx, getState()); - enterRule(_localctx, 142, RULE_create_function_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2501); - match(CREATE); - setState(2504); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OR) { - { - setState(2502); - match(OR); - setState(2503); - match(REPLACE); - } - } - - setState(2506); - match(FUNCTION); - setState(2507); - ((Create_function_stmtContext) _localctx).fn_name = name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_group_stmtContext extends ParserRuleContext { - public IdentifierContext group; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public List GROUP() { - return getTokens(PostgreSQLParser.GROUP); - } - - public TerminalNode GROUP(int i) { - return getToken(PostgreSQLParser.GROUP, i); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public List SUPERUSER() { - return getTokens(PostgreSQLParser.SUPERUSER); - } - - public TerminalNode SUPERUSER(int i) { - return getToken(PostgreSQLParser.SUPERUSER, i); - } - - public List NOSUPERUSER() { - return getTokens(PostgreSQLParser.NOSUPERUSER); - } - - public TerminalNode NOSUPERUSER(int i) { - return getToken(PostgreSQLParser.NOSUPERUSER, i); - } - - public List CREATEDB() { - return getTokens(PostgreSQLParser.CREATEDB); - } - - public TerminalNode CREATEDB(int i) { - return getToken(PostgreSQLParser.CREATEDB, i); - } - - public List NOCREATEDB() { - return getTokens(PostgreSQLParser.NOCREATEDB); - } - - public TerminalNode NOCREATEDB(int i) { - return getToken(PostgreSQLParser.NOCREATEDB, i); - } - - public List CREATEROLE() { - return getTokens(PostgreSQLParser.CREATEROLE); - } - - public TerminalNode CREATEROLE(int i) { - return getToken(PostgreSQLParser.CREATEROLE, i); - } - - public List NOCREATEROLE() { - return getTokens(PostgreSQLParser.NOCREATEROLE); - } - - public TerminalNode NOCREATEROLE(int i) { - return getToken(PostgreSQLParser.NOCREATEROLE, i); - } - - public List CREATEUSER() { - return getTokens(PostgreSQLParser.CREATEUSER); - } - - public TerminalNode CREATEUSER(int i) { - return getToken(PostgreSQLParser.CREATEUSER, i); - } - - public List NOCREATEUSER() { - return getTokens(PostgreSQLParser.NOCREATEUSER); - } - - public TerminalNode NOCREATEUSER(int i) { - return getToken(PostgreSQLParser.NOCREATEUSER, i); - } - - public List INHERIT() { - return getTokens(PostgreSQLParser.INHERIT); - } - - public TerminalNode INHERIT(int i) { - return getToken(PostgreSQLParser.INHERIT, i); - } - - public List NOINHERIT() { - return getTokens(PostgreSQLParser.NOINHERIT); - } - - public TerminalNode NOINHERIT(int i) { - return getToken(PostgreSQLParser.NOINHERIT, i); - } - - public List LOGIN() { - return getTokens(PostgreSQLParser.LOGIN); - } - - public TerminalNode LOGIN(int i) { - return getToken(PostgreSQLParser.LOGIN, i); - } - - public List NOLOGIN() { - return getTokens(PostgreSQLParser.NOLOGIN); - } - - public TerminalNode NOLOGIN(int i) { - return getToken(PostgreSQLParser.NOLOGIN, i); - } - - public List PASSWORD() { - return getTokens(PostgreSQLParser.PASSWORD); - } - - public TerminalNode PASSWORD(int i) { - return getToken(PostgreSQLParser.PASSWORD, i); - } - - public List VALID() { - return getTokens(PostgreSQLParser.VALID); - } - - public TerminalNode VALID(int i) { - return getToken(PostgreSQLParser.VALID, i); - } - - public List UNTIL() { - return getTokens(PostgreSQLParser.UNTIL); - } - - public TerminalNode UNTIL(int i) { - return getToken(PostgreSQLParser.UNTIL, i); - } - - public List SINGLEQ_STRING_LITERAL() { - return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); - } - - public TerminalNode SINGLEQ_STRING_LITERAL(int i) { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); - } - - public List IN() { - return getTokens(PostgreSQLParser.IN); - } - - public TerminalNode IN(int i) { - return getToken(PostgreSQLParser.IN, i); - } - - public List ROLE() { - return getTokens(PostgreSQLParser.ROLE); - } - - public TerminalNode ROLE(int i) { - return getToken(PostgreSQLParser.ROLE, i); - } - - public List name_list() { - return getRuleContexts(Name_listContext.class); - } - - public Name_listContext name_list(int i) { - return getRuleContext(Name_listContext.class, i); - } - - public List ADMIN() { - return getTokens(PostgreSQLParser.ADMIN); - } - - public TerminalNode ADMIN(int i) { - return getToken(PostgreSQLParser.ADMIN, i); - } - - public List USER() { - return getTokens(PostgreSQLParser.USER); - } - - public TerminalNode USER(int i) { - return getToken(PostgreSQLParser.USER, i); - } - - public List SYSID() { - return getTokens(PostgreSQLParser.SYSID); - } - - public TerminalNode SYSID(int i) { - return getToken(PostgreSQLParser.SYSID, i); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public List NULL() { - return getTokens(PostgreSQLParser.NULL); - } - - public TerminalNode NULL(int i) { - return getToken(PostgreSQLParser.NULL, i); - } - - public List ENCRYPTED() { - return getTokens(PostgreSQLParser.ENCRYPTED); - } - - public TerminalNode ENCRYPTED(int i) { - return getToken(PostgreSQLParser.ENCRYPTED, i); - } - - public List UNENCRYPTED() { - return getTokens(PostgreSQLParser.UNENCRYPTED); - } - - public TerminalNode UNENCRYPTED(int i) { - return getToken(PostgreSQLParser.UNENCRYPTED, i); - } - - public Create_group_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_group_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_group_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_group_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_group_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_group_stmtContext create_group_stmt() throws RecognitionException { - Create_group_stmtContext _localctx = new Create_group_stmtContext(_ctx, getState()); - enterRule(_localctx, 144, RULE_create_group_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2509); - match(CREATE); - setState(2510); - match(GROUP); - setState(2511); - ((Create_group_stmtContext) _localctx).group = identifier(0); - setState(2553); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ADMIN || _la == CREATEDB || _la == CREATEUSER || _la == ENCRYPTED || _la == IN || ((((_la - 360)) & ~0x3f) == 0 && ((1L << (_la - 360)) & ((1L << (NOCREATEDB - 360)) | (1L << (NOCREATEUSER - 360)) | (1L << (PASSWORD - 360)))) != 0) || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (UNENCRYPTED - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 646)) & ~0x3f) == 0 && ((1L << (_la - 646)) & ((1L << (WITH - 646)) | (1L << (SUPERUSER - 646)) | (1L << (NOSUPERUSER - 646)) | (1L << (CREATEROLE - 646)) | (1L << (NOCREATEROLE - 646)) | (1L << (INHERIT - 646)) | (1L << (NOINHERIT - 646)) | (1L << (LOGIN - 646)) | (1L << (NOLOGIN - 646)))) != 0)) { - { - setState(2513); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2512); - match(WITH); - } - } - - setState(2549); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - setState(2549); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 201, _ctx)) { - case 1: { - setState(2515); - match(SUPERUSER); - } - break; - case 2: { - setState(2516); - match(NOSUPERUSER); - } - break; - case 3: { - setState(2517); - match(CREATEDB); - } - break; - case 4: { - setState(2518); - match(NOCREATEDB); - } - break; - case 5: { - setState(2519); - match(CREATEROLE); - } - break; - case 6: { - setState(2520); - match(NOCREATEROLE); - } - break; - case 7: { - setState(2521); - match(CREATEUSER); - } - break; - case 8: { - setState(2522); - match(NOCREATEUSER); - } - break; - case 9: { - setState(2523); - match(INHERIT); - } - break; - case 10: { - setState(2524); - match(NOINHERIT); - } - break; - case 11: { - setState(2525); - match(LOGIN); - } - break; - case 12: { - setState(2526); - match(NOLOGIN); - } - break; - case 13: { - setState(2528); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ENCRYPTED || _la == UNENCRYPTED) { - { - setState(2527); - _la = _input.LA(1); - if (!(_la == ENCRYPTED || _la == UNENCRYPTED)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(2530); - match(PASSWORD); - setState(2531); - _la = _input.LA(1); - if (!(_la == NULL || _la == SINGLEQ_STRING_LITERAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - case 14: { - setState(2532); - match(VALID); - setState(2533); - match(UNTIL); - setState(2534); - match(SINGLEQ_STRING_LITERAL); - } - break; - case 15: { - setState(2535); - match(IN); - setState(2536); - match(ROLE); - setState(2537); - name_list(); - } - break; - case 16: { - setState(2538); - match(IN); - setState(2539); - match(GROUP); - setState(2540); - name_list(); - } - break; - case 17: { - setState(2541); - match(ROLE); - setState(2542); - name_list(); - } - break; - case 18: { - setState(2543); - match(ADMIN); - setState(2544); - name_list(); - } - break; - case 19: { - setState(2545); - match(USER); - setState(2546); - name_list(); - } - break; - case 20: { - setState(2547); - match(SYSID); - setState(2548); - match(INTEGER_LITERAL); - } - break; - } - } - setState(2551); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == ADMIN || _la == CREATEDB || _la == CREATEUSER || _la == ENCRYPTED || _la == IN || ((((_la - 360)) & ~0x3f) == 0 && ((1L << (_la - 360)) & ((1L << (NOCREATEDB - 360)) | (1L << (NOCREATEUSER - 360)) | (1L << (PASSWORD - 360)))) != 0) || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (UNENCRYPTED - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 655)) & ~0x3f) == 0 && ((1L << (_la - 655)) & ((1L << (SUPERUSER - 655)) | (1L << (NOSUPERUSER - 655)) | (1L << (CREATEROLE - 655)) | (1L << (NOCREATEROLE - 655)) | (1L << (INHERIT - 655)) | (1L << (NOINHERIT - 655)) | (1L << (LOGIN - 655)) | (1L << (NOLOGIN - 655)))) != 0)); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_index_stmtContext extends ParserRuleContext { - public IdentifierContext index_name; - public IdentifierContext tableName; - public IdentifierContext tablespace_name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode UNIQUE() { - return getToken(PostgreSQLParser.UNIQUE, 0); - } - - public TerminalNode CONCURRENTLY() { - return getToken(PostgreSQLParser.CONCURRENTLY, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public PredicateContext predicate() { - return getRuleContext(PredicateContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Create_index_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_index_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_index_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_index_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_index_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_index_stmtContext create_index_stmt() throws RecognitionException { - Create_index_stmtContext _localctx = new Create_index_stmtContext(_ctx, getState()); - enterRule(_localctx, 146, RULE_create_index_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2555); - match(CREATE); - setState(2557); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == UNIQUE) { - { - setState(2556); - match(UNIQUE); - } - } - - setState(2559); - match(INDEX); - setState(2561); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CONCURRENTLY) { - { - setState(2560); - match(CONCURRENTLY); - } - } - - setState(2569); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)) | (1L << (IF - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(2566); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(2563); - match(IF); - setState(2564); - match(NOT); - setState(2565); - match(EXISTS); - } - } - - setState(2568); - ((Create_index_stmtContext) _localctx).index_name = identifier(0); - } - } - - setState(2571); - match(ON); - setState(2572); - ((Create_index_stmtContext) _localctx).tableName = identifier(0); - setState(2575); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == USING) { - { - setState(2573); - match(USING); - setState(2574); - index_method(); - } - } - - setState(2579); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TABLESPACE) { - { - setState(2577); - match(TABLESPACE); - setState(2578); - ((Create_index_stmtContext) _localctx).tablespace_name = identifier(0); - } - } - - setState(2583); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WHERE) { - { - setState(2581); - match(WHERE); - setState(2582); - predicate(0); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_language_stmtContext extends ParserRuleContext { - public IdentifierContext language_name; - public IdentifierContext call_handler; - public IdentifierContext inline_handler; - public IdentifierContext valfunction; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode LANGUAGE() { - return getToken(PostgreSQLParser.LANGUAGE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public TerminalNode REPLACE() { - return getToken(PostgreSQLParser.REPLACE, 0); - } - - public TerminalNode PROCEDURAL() { - return getToken(PostgreSQLParser.PROCEDURAL, 0); - } - - public TerminalNode HANDLER() { - return getToken(PostgreSQLParser.HANDLER, 0); - } - - public TerminalNode TRUSTED() { - return getToken(PostgreSQLParser.TRUSTED, 0); - } - - public TerminalNode INLINE() { - return getToken(PostgreSQLParser.INLINE, 0); - } - - public TerminalNode VALIDATOR() { - return getToken(PostgreSQLParser.VALIDATOR, 0); - } - - public Create_language_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_language_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_language_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_language_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_language_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_language_stmtContext create_language_stmt() throws RecognitionException { - Create_language_stmtContext _localctx = new Create_language_stmtContext(_ctx, getState()); - enterRule(_localctx, 148, RULE_create_language_stmt); - int _la; - try { - setState(2618); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 218, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - { - setState(2585); - match(CREATE); - setState(2588); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OR) { - { - setState(2586); - match(OR); - setState(2587); - match(REPLACE); - } - } - - setState(2591); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == PROCEDURAL) { - { - setState(2590); - match(PROCEDURAL); - } - } - - setState(2593); - match(LANGUAGE); - setState(2594); - ((Create_language_stmtContext) _localctx).language_name = identifier(0); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - { - setState(2595); - match(CREATE); - setState(2598); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OR) { - { - setState(2596); - match(OR); - setState(2597); - match(REPLACE); - } - } - - setState(2601); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TRUSTED) { - { - setState(2600); - match(TRUSTED); - } - } - - setState(2604); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == PROCEDURAL) { - { - setState(2603); - match(PROCEDURAL); - } - } - - setState(2606); - match(LANGUAGE); - setState(2607); - ((Create_language_stmtContext) _localctx).language_name = identifier(0); - setState(2608); - match(HANDLER); - setState(2609); - ((Create_language_stmtContext) _localctx).call_handler = identifier(0); - setState(2612); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INLINE) { - { - setState(2610); - match(INLINE); - setState(2611); - ((Create_language_stmtContext) _localctx).inline_handler = identifier(0); - } - } - - setState(2616); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == VALIDATOR) { - { - setState(2614); - match(VALIDATOR); - setState(2615); - ((Create_language_stmtContext) _localctx).valfunction = identifier(0); - } - } - - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_materialized_view_stmtContext extends ParserRuleContext { - public IdentifierContext tableName; - public Identifier_listContext columns; - public IdentifierContext tablespace_name; - public Select_stmtContext query; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode MATERIALIZED() { - return getToken(PostgreSQLParser.MATERIALIZED, 0); - } - - public TerminalNode VIEW() { - return getToken(PostgreSQLParser.VIEW, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List WITH() { - return getTokens(PostgreSQLParser.WITH); - } - - public TerminalNode WITH(int i) { - return getToken(PostgreSQLParser.WITH, i); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public TerminalNode DATA() { - return getToken(PostgreSQLParser.DATA, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode NO() { - return getToken(PostgreSQLParser.NO, 0); - } - - public Create_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_materialized_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_materialized_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_materialized_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_materialized_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_materialized_view_stmtContext create_materialized_view_stmt() throws RecognitionException { - Create_materialized_view_stmtContext _localctx = new Create_materialized_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 150, RULE_create_materialized_view_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2620); - match(CREATE); - setState(2621); - match(MATERIALIZED); - setState(2622); - match(VIEW); - setState(2626); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(2623); - match(IF); - setState(2624); - match(NOT); - setState(2625); - match(EXISTS); - } - } - - setState(2628); - ((Create_materialized_view_stmtContext) _localctx).tableName = identifier(0); - setState(2633); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(2629); - match(OPEN_PAREN); - setState(2630); - ((Create_materialized_view_stmtContext) _localctx).columns = identifier_list(); - setState(2631); - match(CLOSE_PAREN); - } - } - - setState(2636); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2635); - match(WITH); - } - } - - setState(2640); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TABLESPACE) { - { - setState(2638); - match(TABLESPACE); - setState(2639); - ((Create_materialized_view_stmtContext) _localctx).tablespace_name = identifier(0); - } - } - - setState(2642); - match(AS); - setState(2643); - ((Create_materialized_view_stmtContext) _localctx).query = select_stmt(); - setState(2649); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2644); - match(WITH); - setState(2646); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NO) { - { - setState(2645); - match(NO); - } - } - - setState(2648); - match(DATA); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_operator_stmtContext extends ParserRuleContext { - public IdentifierContext opName; - public IdentifierContext function_name; - public Name_Context left_type; - public Name_Context right_type; - public Name_Context com_op; - public Name_Context neg_op; - public Name_Context res_proc; - public Name_Context join_proc; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode PROCEDURE() { - return getToken(PostgreSQLParser.PROCEDURE, 0); - } - - public List EQUAL() { - return getTokens(PostgreSQLParser.EQUAL); - } - - public TerminalNode EQUAL(int i) { - return getToken(PostgreSQLParser.EQUAL, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public TerminalNode LEFTARG() { - return getToken(PostgreSQLParser.LEFTARG, 0); - } - - public TerminalNode RIGHTARG() { - return getToken(PostgreSQLParser.RIGHTARG, 0); - } - - public TerminalNode COMMUTATOR() { - return getToken(PostgreSQLParser.COMMUTATOR, 0); - } - - public TerminalNode NEGATOR() { - return getToken(PostgreSQLParser.NEGATOR, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public TerminalNode JOIN() { - return getToken(PostgreSQLParser.JOIN, 0); - } - - public TerminalNode HASHES() { - return getToken(PostgreSQLParser.HASHES, 0); - } - - public TerminalNode MERGES() { - return getToken(PostgreSQLParser.MERGES, 0); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public Create_operator_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_operator_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_operator_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_operator_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_operator_stmtContext create_operator_stmt() throws RecognitionException { - Create_operator_stmtContext _localctx = new Create_operator_stmtContext(_ctx, getState()); - enterRule(_localctx, 152, RULE_create_operator_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2651); - match(CREATE); - setState(2652); - match(OPERATOR); - setState(2653); - ((Create_operator_stmtContext) _localctx).opName = identifier(0); - setState(2654); - match(OPEN_PAREN); - setState(2655); - match(PROCEDURE); - setState(2656); - match(EQUAL); - setState(2657); - ((Create_operator_stmtContext) _localctx).function_name = identifier(0); - setState(2662); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 225, _ctx)) { - case 1: { - setState(2658); - match(COMMA); - setState(2659); - match(LEFTARG); - setState(2660); - match(EQUAL); - setState(2661); - ((Create_operator_stmtContext) _localctx).left_type = name_(); - } - break; - } - setState(2668); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 226, _ctx)) { - case 1: { - setState(2664); - match(COMMA); - setState(2665); - match(RIGHTARG); - setState(2666); - match(EQUAL); - setState(2667); - ((Create_operator_stmtContext) _localctx).right_type = name_(); - } - break; - } - setState(2674); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 227, _ctx)) { - case 1: { - setState(2670); - match(COMMA); - setState(2671); - match(COMMUTATOR); - setState(2672); - match(EQUAL); - setState(2673); - ((Create_operator_stmtContext) _localctx).com_op = name_(); - } - break; - } - setState(2680); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 228, _ctx)) { - case 1: { - setState(2676); - match(COMMA); - setState(2677); - match(NEGATOR); - setState(2678); - match(EQUAL); - setState(2679); - ((Create_operator_stmtContext) _localctx).neg_op = name_(); - } - break; - } - setState(2686); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 229, _ctx)) { - case 1: { - setState(2682); - match(COMMA); - setState(2683); - match(RESTRICT); - setState(2684); - match(EQUAL); - setState(2685); - ((Create_operator_stmtContext) _localctx).res_proc = name_(); - } - break; - } - setState(2692); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 230, _ctx)) { - case 1: { - setState(2688); - match(COMMA); - setState(2689); - match(JOIN); - setState(2690); - match(EQUAL); - setState(2691); - ((Create_operator_stmtContext) _localctx).join_proc = name_(); - } - break; - } - setState(2696); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 231, _ctx)) { - case 1: { - setState(2694); - match(COMMA); - setState(2695); - match(HASHES); - } - break; - } - setState(2700); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(2698); - match(COMMA); - setState(2699); - match(MERGES); - } - } - - setState(2702); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_operator_class_optContext extends ParserRuleContext { - public Token strategy_number; - public IdentifierContext opName; - public Token support_number; - public IdentifierContext func_name_; - public IdentifierContext storage_type; - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public TerminalNode COMMA() { - return getToken(PostgreSQLParser.COMMA, 0); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode FUNCTION() { - return getToken(PostgreSQLParser.FUNCTION, 0); - } - - public Data_type_listContext data_type_list() { - return getRuleContext(Data_type_listContext.class, 0); - } - - public TerminalNode STORAGE() { - return getToken(PostgreSQLParser.STORAGE, 0); - } - - public Create_operator_class_optContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_operator_class_opt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_operator_class_opt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_operator_class_opt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_class_opt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_operator_class_optContext create_operator_class_opt() throws RecognitionException { - Create_operator_class_optContext _localctx = new Create_operator_class_optContext(_ctx, getState()); - enterRule(_localctx, 154, RULE_create_operator_class_opt); - int _la; - try { - setState(2734); - _errHandler.sync(this); - switch (_input.LA(1)) { - case OPERATOR: - enterOuterAlt(_localctx, 1); - { - { - setState(2704); - match(OPERATOR); - setState(2705); - ((Create_operator_class_optContext) _localctx).strategy_number = match(INTEGER_LITERAL); - setState(2706); - ((Create_operator_class_optContext) _localctx).opName = identifier(0); - setState(2713); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(2707); - match(OPEN_PAREN); - setState(2708); - identifier(0); - setState(2709); - match(COMMA); - setState(2710); - identifier(0); - setState(2711); - match(CLOSE_PAREN); - } - } - - } - } - break; - case FUNCTION: - enterOuterAlt(_localctx, 2); - { - { - setState(2715); - match(FUNCTION); - setState(2716); - ((Create_operator_class_optContext) _localctx).support_number = match(INTEGER_LITERAL); - setState(2725); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(2717); - match(OPEN_PAREN); - setState(2718); - identifier(0); - setState(2721); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(2719); - match(COMMA); - setState(2720); - identifier(0); - } - } - - setState(2723); - match(CLOSE_PAREN); - } - } - - setState(2727); - ((Create_operator_class_optContext) _localctx).func_name_ = identifier(0); - setState(2728); - match(OPEN_PAREN); - setState(2729); - data_type_list(); - setState(2730); - match(CLOSE_PAREN); - } - } - break; - case STORAGE: - enterOuterAlt(_localctx, 3); - { - { - setState(2732); - match(STORAGE); - setState(2733); - ((Create_operator_class_optContext) _localctx).storage_type = identifier(0); - } - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_operator_class_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext op_type; - public IdentifierContext family_name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode CLASS() { - return getToken(PostgreSQLParser.CLASS, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode TYPE() { - return getToken(PostgreSQLParser.TYPE, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List create_operator_class_opt() { - return getRuleContexts(Create_operator_class_optContext.class); - } - - public Create_operator_class_optContext create_operator_class_opt(int i) { - return getRuleContext(Create_operator_class_optContext.class, i); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public TerminalNode FAMILY() { - return getToken(PostgreSQLParser.FAMILY, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Create_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_operator_class_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_operator_class_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_operator_class_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_class_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_operator_class_stmtContext create_operator_class_stmt() throws RecognitionException { - Create_operator_class_stmtContext _localctx = new Create_operator_class_stmtContext(_ctx, getState()); - enterRule(_localctx, 156, RULE_create_operator_class_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2736); - match(CREATE); - setState(2737); - match(OPERATOR); - setState(2738); - match(CLASS); - setState(2739); - ((Create_operator_class_stmtContext) _localctx).name = identifier(0); - setState(2741); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == DEFAULT) { - { - setState(2740); - match(DEFAULT); - } - } - - setState(2743); - match(FOR); - setState(2744); - match(TYPE); - setState(2745); - ((Create_operator_class_stmtContext) _localctx).op_type = identifier(0); - setState(2746); - match(USING); - setState(2747); - index_method(); - setState(2750); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FAMILY) { - { - setState(2748); - match(FAMILY); - setState(2749); - ((Create_operator_class_stmtContext) _localctx).family_name = identifier(0); - } - } - - setState(2752); - match(AS); - setState(2753); - create_operator_class_opt(); - setState(2758); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(2754); - match(COMMA); - setState(2755); - create_operator_class_opt(); - } - } - setState(2760); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_operator_family_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode FAMILY() { - return getToken(PostgreSQLParser.FAMILY, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Create_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_operator_family_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_operator_family_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_operator_family_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_operator_family_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_operator_family_stmtContext create_operator_family_stmt() throws RecognitionException { - Create_operator_family_stmtContext _localctx = new Create_operator_family_stmtContext(_ctx, getState()); - enterRule(_localctx, 158, RULE_create_operator_family_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2761); - match(CREATE); - setState(2762); - match(OPERATOR); - setState(2763); - match(FAMILY); - setState(2764); - ((Create_operator_family_stmtContext) _localctx).name = identifier(0); - setState(2765); - match(USING); - setState(2766); - index_method(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_policy_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext tableName; - public Role_nameContext role; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode POLICY() { - return getToken(PostgreSQLParser.POLICY, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List predicate() { - return getRuleContexts(PredicateContext.class); - } - - public PredicateContext predicate(int i) { - return getRuleContext(PredicateContext.class, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode CHECK() { - return getToken(PostgreSQLParser.CHECK, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode SELECT() { - return getToken(PostgreSQLParser.SELECT, 0); - } - - public TerminalNode INSERT() { - return getToken(PostgreSQLParser.INSERT, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public TerminalNode DELETE() { - return getToken(PostgreSQLParser.DELETE, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public Create_policy_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_policy_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_policy_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_policy_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_policy_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_policy_stmtContext create_policy_stmt() throws RecognitionException { - Create_policy_stmtContext _localctx = new Create_policy_stmtContext(_ctx, getState()); - enterRule(_localctx, 160, RULE_create_policy_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2768); - match(CREATE); - setState(2769); - match(POLICY); - setState(2770); - ((Create_policy_stmtContext) _localctx).name = identifier(0); - setState(2771); - match(ON); - setState(2772); - ((Create_policy_stmtContext) _localctx).tableName = identifier(0); - setState(2775); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FOR) { - { - setState(2773); - match(FOR); - setState(2774); - _la = _input.LA(1); - if (!(_la == ALL || _la == DELETE || _la == INSERT || _la == SELECT || _la == UPDATE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(2779); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TO) { - { - setState(2777); - match(TO); - setState(2778); - ((Create_policy_stmtContext) _localctx).role = role_name(); - } - } - - setState(2786); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == USING) { - { - setState(2781); - match(USING); - setState(2782); - match(OPEN_PAREN); - setState(2783); - predicate(0); - setState(2784); - match(CLOSE_PAREN); - } - } - - setState(2794); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2788); - match(WITH); - setState(2789); - match(CHECK); - setState(2790); - match(OPEN_PAREN); - setState(2791); - predicate(0); - setState(2792); - match(CLOSE_PAREN); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_role_stmtContext extends ParserRuleContext { - public Role_nameContext role; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public List ROLE() { - return getTokens(PostgreSQLParser.ROLE); - } - - public TerminalNode ROLE(int i) { - return getToken(PostgreSQLParser.ROLE, i); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public List SUPERUSER() { - return getTokens(PostgreSQLParser.SUPERUSER); - } - - public TerminalNode SUPERUSER(int i) { - return getToken(PostgreSQLParser.SUPERUSER, i); - } - - public List NOSUPERUSER() { - return getTokens(PostgreSQLParser.NOSUPERUSER); - } - - public TerminalNode NOSUPERUSER(int i) { - return getToken(PostgreSQLParser.NOSUPERUSER, i); - } - - public List CREATEDB() { - return getTokens(PostgreSQLParser.CREATEDB); - } - - public TerminalNode CREATEDB(int i) { - return getToken(PostgreSQLParser.CREATEDB, i); - } - - public List NOCREATEDB() { - return getTokens(PostgreSQLParser.NOCREATEDB); - } - - public TerminalNode NOCREATEDB(int i) { - return getToken(PostgreSQLParser.NOCREATEDB, i); - } - - public List CREATEROLE() { - return getTokens(PostgreSQLParser.CREATEROLE); - } - - public TerminalNode CREATEROLE(int i) { - return getToken(PostgreSQLParser.CREATEROLE, i); - } - - public List NOCREATEROLE() { - return getTokens(PostgreSQLParser.NOCREATEROLE); - } - - public TerminalNode NOCREATEROLE(int i) { - return getToken(PostgreSQLParser.NOCREATEROLE, i); - } - - public List INHERIT() { - return getTokens(PostgreSQLParser.INHERIT); - } - - public TerminalNode INHERIT(int i) { - return getToken(PostgreSQLParser.INHERIT, i); - } - - public List NOINHERIT() { - return getTokens(PostgreSQLParser.NOINHERIT); - } - - public TerminalNode NOINHERIT(int i) { - return getToken(PostgreSQLParser.NOINHERIT, i); - } - - public List LOGIN() { - return getTokens(PostgreSQLParser.LOGIN); - } - - public TerminalNode LOGIN(int i) { - return getToken(PostgreSQLParser.LOGIN, i); - } - - public List NOLOGIN() { - return getTokens(PostgreSQLParser.NOLOGIN); - } - - public TerminalNode NOLOGIN(int i) { - return getToken(PostgreSQLParser.NOLOGIN, i); - } - - public List REPLICATION() { - return getTokens(PostgreSQLParser.REPLICATION); - } - - public TerminalNode REPLICATION(int i) { - return getToken(PostgreSQLParser.REPLICATION, i); - } - - public List NOREPLICATION() { - return getTokens(PostgreSQLParser.NOREPLICATION); - } - - public TerminalNode NOREPLICATION(int i) { - return getToken(PostgreSQLParser.NOREPLICATION, i); - } - - public List BYPASSRLS() { - return getTokens(PostgreSQLParser.BYPASSRLS); - } - - public TerminalNode BYPASSRLS(int i) { - return getToken(PostgreSQLParser.BYPASSRLS, i); - } - - public List NOBYPASSRLS() { - return getTokens(PostgreSQLParser.NOBYPASSRLS); - } - - public TerminalNode NOBYPASSRLS(int i) { - return getToken(PostgreSQLParser.NOBYPASSRLS, i); - } - - public List CONNECTION() { - return getTokens(PostgreSQLParser.CONNECTION); - } - - public TerminalNode CONNECTION(int i) { - return getToken(PostgreSQLParser.CONNECTION, i); - } - - public List LIMIT() { - return getTokens(PostgreSQLParser.LIMIT); - } - - public TerminalNode LIMIT(int i) { - return getToken(PostgreSQLParser.LIMIT, i); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public List PASSWORD() { - return getTokens(PostgreSQLParser.PASSWORD); - } - - public TerminalNode PASSWORD(int i) { - return getToken(PostgreSQLParser.PASSWORD, i); - } - - public List VALID() { - return getTokens(PostgreSQLParser.VALID); - } - - public TerminalNode VALID(int i) { - return getToken(PostgreSQLParser.VALID, i); - } - - public List UNTIL() { - return getTokens(PostgreSQLParser.UNTIL); - } - - public TerminalNode UNTIL(int i) { - return getToken(PostgreSQLParser.UNTIL, i); - } - - public List SINGLEQ_STRING_LITERAL() { - return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); - } - - public TerminalNode SINGLEQ_STRING_LITERAL(int i) { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); - } - - public List IN() { - return getTokens(PostgreSQLParser.IN); - } - - public TerminalNode IN(int i) { - return getToken(PostgreSQLParser.IN, i); - } - - public List name_list() { - return getRuleContexts(Name_listContext.class); - } - - public Name_listContext name_list(int i) { - return getRuleContext(Name_listContext.class, i); - } - - public List GROUP() { - return getTokens(PostgreSQLParser.GROUP); - } - - public TerminalNode GROUP(int i) { - return getToken(PostgreSQLParser.GROUP, i); - } - - public List ADMIN() { - return getTokens(PostgreSQLParser.ADMIN); - } - - public TerminalNode ADMIN(int i) { - return getToken(PostgreSQLParser.ADMIN, i); - } - - public List USER() { - return getTokens(PostgreSQLParser.USER); - } - - public TerminalNode USER(int i) { - return getToken(PostgreSQLParser.USER, i); - } - - public List SYSID() { - return getTokens(PostgreSQLParser.SYSID); - } - - public TerminalNode SYSID(int i) { - return getToken(PostgreSQLParser.SYSID, i); - } - - public List NULL() { - return getTokens(PostgreSQLParser.NULL); - } - - public TerminalNode NULL(int i) { - return getToken(PostgreSQLParser.NULL, i); - } - - public List ENCRYPTED() { - return getTokens(PostgreSQLParser.ENCRYPTED); - } - - public TerminalNode ENCRYPTED(int i) { - return getToken(PostgreSQLParser.ENCRYPTED, i); - } - - public Create_role_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_role_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_role_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_role_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_role_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_role_stmtContext create_role_stmt() throws RecognitionException { - Create_role_stmtContext _localctx = new Create_role_stmtContext(_ctx, getState()); - enterRule(_localctx, 162, RULE_create_role_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2796); - match(CREATE); - setState(2797); - match(ROLE); - setState(2798); - ((Create_role_stmtContext) _localctx).role = role_name(); - setState(2845); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ADMIN || _la == CONNECTION || _la == CREATEDB || _la == ENCRYPTED || _la == IN || _la == NOCREATEDB || _la == PASSWORD || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 646)) & ~0x3f) == 0 && ((1L << (_la - 646)) & ((1L << (WITH - 646)) | (1L << (SUPERUSER - 646)) | (1L << (NOSUPERUSER - 646)) | (1L << (CREATEROLE - 646)) | (1L << (NOCREATEROLE - 646)) | (1L << (INHERIT - 646)) | (1L << (NOINHERIT - 646)) | (1L << (LOGIN - 646)) | (1L << (NOLOGIN - 646)) | (1L << (REPLICATION - 646)) | (1L << (NOREPLICATION - 646)) | (1L << (BYPASSRLS - 646)) | (1L << (NOBYPASSRLS - 646)))) != 0)) { - { - setState(2800); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2799); - match(WITH); - } - } - - setState(2841); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - setState(2841); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 246, _ctx)) { - case 1: { - setState(2802); - match(SUPERUSER); - } - break; - case 2: { - setState(2803); - match(NOSUPERUSER); - } - break; - case 3: { - setState(2804); - match(CREATEDB); - } - break; - case 4: { - setState(2805); - match(NOCREATEDB); - } - break; - case 5: { - setState(2806); - match(CREATEROLE); - } - break; - case 6: { - setState(2807); - match(NOCREATEROLE); - } - break; - case 7: { - setState(2808); - match(INHERIT); - } - break; - case 8: { - setState(2809); - match(NOINHERIT); - } - break; - case 9: { - setState(2810); - match(LOGIN); - } - break; - case 10: { - setState(2811); - match(NOLOGIN); - } - break; - case 11: { - setState(2812); - match(REPLICATION); - } - break; - case 12: { - setState(2813); - match(NOREPLICATION); - } - break; - case 13: { - setState(2814); - match(BYPASSRLS); - } - break; - case 14: { - setState(2815); - match(NOBYPASSRLS); - } - break; - case 15: { - setState(2816); - match(CONNECTION); - setState(2817); - match(LIMIT); - setState(2818); - match(INTEGER_LITERAL); - } - break; - case 16: { - setState(2820); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ENCRYPTED) { - { - setState(2819); - match(ENCRYPTED); - } - } - - setState(2822); - match(PASSWORD); - setState(2823); - _la = _input.LA(1); - if (!(_la == NULL || _la == SINGLEQ_STRING_LITERAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - case 17: { - setState(2824); - match(VALID); - setState(2825); - match(UNTIL); - setState(2826); - match(SINGLEQ_STRING_LITERAL); - } - break; - case 18: { - setState(2827); - match(IN); - setState(2828); - match(ROLE); - setState(2829); - name_list(); - } - break; - case 19: { - setState(2830); - match(IN); - setState(2831); - match(GROUP); - setState(2832); - name_list(); - } - break; - case 20: { - setState(2833); - match(ROLE); - setState(2834); - name_list(); - } - break; - case 21: { - setState(2835); - match(ADMIN); - setState(2836); - name_list(); - } - break; - case 22: { - setState(2837); - match(USER); - setState(2838); - name_list(); - } - break; - case 23: { - setState(2839); - match(SYSID); - setState(2840); - match(INTEGER_LITERAL); - } - break; - } - } - setState(2843); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == ADMIN || _la == CONNECTION || _la == CREATEDB || _la == ENCRYPTED || _la == IN || _la == NOCREATEDB || _la == PASSWORD || _la == ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 655)) & ~0x3f) == 0 && ((1L << (_la - 655)) & ((1L << (SUPERUSER - 655)) | (1L << (NOSUPERUSER - 655)) | (1L << (CREATEROLE - 655)) | (1L << (NOCREATEROLE - 655)) | (1L << (INHERIT - 655)) | (1L << (NOINHERIT - 655)) | (1L << (LOGIN - 655)) | (1L << (NOLOGIN - 655)) | (1L << (REPLICATION - 655)) | (1L << (NOREPLICATION - 655)) | (1L << (BYPASSRLS - 655)) | (1L << (NOBYPASSRLS - 655)))) != 0)); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_rule_eventContext extends ParserRuleContext { - public TerminalNode SELECT() { - return getToken(PostgreSQLParser.SELECT, 0); - } - - public TerminalNode INSERT() { - return getToken(PostgreSQLParser.INSERT, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public TerminalNode DELETE() { - return getToken(PostgreSQLParser.DELETE, 0); - } - - public Create_rule_eventContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_rule_event; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_rule_event(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_rule_event(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_rule_event(this); - else return visitor.visitChildren(this); - } - } - - public final Create_rule_eventContext create_rule_event() throws RecognitionException { - Create_rule_eventContext _localctx = new Create_rule_eventContext(_ctx, getState()); - enterRule(_localctx, 164, RULE_create_rule_event); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2847); - _la = _input.LA(1); - if (!(_la == DELETE || _la == INSERT || _la == SELECT || _la == UPDATE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_rule_stmtContext extends ParserRuleContext { - public Name_Context name; - public Create_rule_eventContext event; - public IdentifierContext tableName; - public IdentifierContext command; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode RULE() { - return getToken(PostgreSQLParser.RULE, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode DO() { - return getToken(PostgreSQLParser.DO, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Create_rule_eventContext create_rule_event() { - return getRuleContext(Create_rule_eventContext.class, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode NOTHING() { - return getToken(PostgreSQLParser.NOTHING, 0); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public TerminalNode REPLACE() { - return getToken(PostgreSQLParser.REPLACE, 0); - } - - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public PredicateContext predicate() { - return getRuleContext(PredicateContext.class, 0); - } - - public TerminalNode ALSO() { - return getToken(PostgreSQLParser.ALSO, 0); - } - - public TerminalNode INSTEAD() { - return getToken(PostgreSQLParser.INSTEAD, 0); - } - - public Create_rule_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_rule_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_rule_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_rule_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_rule_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_rule_stmtContext create_rule_stmt() throws RecognitionException { - Create_rule_stmtContext _localctx = new Create_rule_stmtContext(_ctx, getState()); - enterRule(_localctx, 166, RULE_create_rule_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2849); - match(CREATE); - setState(2852); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OR) { - { - setState(2850); - match(OR); - setState(2851); - match(REPLACE); - } - } - - setState(2854); - match(RULE); - setState(2855); - ((Create_rule_stmtContext) _localctx).name = name_(); - setState(2856); - match(AS); - setState(2857); - match(ON); - setState(2858); - ((Create_rule_stmtContext) _localctx).event = create_rule_event(); - setState(2859); - match(TO); - setState(2860); - ((Create_rule_stmtContext) _localctx).tableName = identifier(0); - setState(2863); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WHERE) { - { - setState(2861); - match(WHERE); - setState(2862); - predicate(0); - } - } - - setState(2865); - match(DO); - setState(2867); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 251, _ctx)) { - case 1: { - setState(2866); - _la = _input.LA(1); - if (!(_la == ALSO || _la == INSTEAD)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(2871); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 252, _ctx)) { - case 1: { - setState(2869); - match(NOTHING); - } - break; - case 2: { - setState(2870); - ((Create_rule_stmtContext) _localctx).command = identifier(0); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_schema_stmtContext extends ParserRuleContext { - public IdentifierContext schema_name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode AUTHORIZATION() { - return getToken(PostgreSQLParser.AUTHORIZATION, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public Todo_fill_inContext todo_fill_in() { - return getRuleContext(Todo_fill_inContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Create_schema_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_schema_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_schema_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_schema_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_schema_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_schema_stmtContext create_schema_stmt() throws RecognitionException { - Create_schema_stmtContext _localctx = new Create_schema_stmtContext(_ctx, getState()); - enterRule(_localctx, 168, RULE_create_schema_stmt); - int _la; - try { - setState(2907); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 257, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - { - setState(2873); - match(CREATE); - setState(2874); - match(SCHEMA); - setState(2875); - ((Create_schema_stmtContext) _localctx).schema_name = identifier(0); - setState(2878); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 253, _ctx)) { - case 1: { - setState(2876); - match(AUTHORIZATION); - setState(2877); - role_name(); - } - break; - } - setState(2881); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 254, _ctx)) { - case 1: { - setState(2880); - todo_fill_in(); - } - break; - } - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - { - setState(2883); - match(CREATE); - setState(2884); - match(SCHEMA); - setState(2885); - match(AUTHORIZATION); - setState(2886); - role_name(); - setState(2888); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 255, _ctx)) { - case 1: { - setState(2887); - todo_fill_in(); - } - break; - } - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - { - setState(2890); - match(CREATE); - setState(2891); - match(SCHEMA); - setState(2892); - match(IF); - setState(2893); - match(NOT); - setState(2894); - match(EXISTS); - setState(2895); - ((Create_schema_stmtContext) _localctx).schema_name = identifier(0); - setState(2898); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AUTHORIZATION) { - { - setState(2896); - match(AUTHORIZATION); - setState(2897); - role_name(); - } - } - - } - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - { - setState(2900); - match(CREATE); - setState(2901); - match(SCHEMA); - setState(2902); - match(IF); - setState(2903); - match(NOT); - setState(2904); - match(EXISTS); - setState(2905); - match(AUTHORIZATION); - setState(2906); - role_name(); - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_sequence_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public Token increment; - public Token minvalue; - public Token maxvalue; - public Token start; - public Token cache; - public IdentifierContext table_name; - public IdentifierContext column_name_; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode SEQUENCE() { - return getToken(PostgreSQLParser.SEQUENCE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode INCREMENT() { - return getToken(PostgreSQLParser.INCREMENT, 0); - } - - public TerminalNode MINVALUE() { - return getToken(PostgreSQLParser.MINVALUE, 0); - } - - public List NO() { - return getTokens(PostgreSQLParser.NO); - } - - public TerminalNode NO(int i) { - return getToken(PostgreSQLParser.NO, i); - } - - public TerminalNode MAXVALUE() { - return getToken(PostgreSQLParser.MAXVALUE, 0); - } - - public TerminalNode START() { - return getToken(PostgreSQLParser.START, 0); - } - - public TerminalNode CACHE() { - return getToken(PostgreSQLParser.CACHE, 0); - } - - public TerminalNode CYCLE() { - return getToken(PostgreSQLParser.CYCLE, 0); - } - - public TerminalNode OWNED() { - return getToken(PostgreSQLParser.OWNED, 0); - } - - public List BY() { - return getTokens(PostgreSQLParser.BY); - } - - public TerminalNode BY(int i) { - return getToken(PostgreSQLParser.BY, i); - } - - public TerminalNode TEMPORARY() { - return getToken(PostgreSQLParser.TEMPORARY, 0); - } - - public TerminalNode TEMP() { - return getToken(PostgreSQLParser.TEMP, 0); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public TerminalNode NONE() { - return getToken(PostgreSQLParser.NONE, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode DOT() { - return getToken(PostgreSQLParser.DOT, 0); - } - - public Create_sequence_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_sequence_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_sequence_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_sequence_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_sequence_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_sequence_stmtContext create_sequence_stmt() throws RecognitionException { - Create_sequence_stmtContext _localctx = new Create_sequence_stmtContext(_ctx, getState()); - enterRule(_localctx, 170, RULE_create_sequence_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2909); - match(CREATE); - setState(2911); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TEMP || _la == TEMPORARY) { - { - setState(2910); - _la = _input.LA(1); - if (!(_la == TEMP || _la == TEMPORARY)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(2913); - match(SEQUENCE); - setState(2917); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(2914); - match(IF); - setState(2915); - match(NOT); - setState(2916); - match(EXISTS); - } - } - - setState(2919); - ((Create_sequence_stmtContext) _localctx).name = identifier(0); - setState(2925); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INCREMENT) { - { - setState(2920); - match(INCREMENT); - setState(2922); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == BY) { - { - setState(2921); - match(BY); - } - } - - setState(2924); - ((Create_sequence_stmtContext) _localctx).increment = match(INTEGER_LITERAL); - } - } - - setState(2931); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 262, _ctx)) { - case 1: { - setState(2927); - match(MINVALUE); - setState(2928); - ((Create_sequence_stmtContext) _localctx).minvalue = match(INTEGER_LITERAL); - } - break; - case 2: { - setState(2929); - match(NO); - setState(2930); - match(MINVALUE); - } - break; - } - setState(2937); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 263, _ctx)) { - case 1: { - setState(2933); - match(MAXVALUE); - setState(2934); - ((Create_sequence_stmtContext) _localctx).maxvalue = match(INTEGER_LITERAL); - } - break; - case 2: { - setState(2935); - match(NO); - setState(2936); - match(MAXVALUE); - } - break; - } - setState(2944); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == START) { - { - setState(2939); - match(START); - setState(2941); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(2940); - match(WITH); - } - } - - setState(2943); - ((Create_sequence_stmtContext) _localctx).start = match(INTEGER_LITERAL); - } - } - - setState(2948); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CACHE) { - { - setState(2946); - match(CACHE); - setState(2947); - ((Create_sequence_stmtContext) _localctx).cache = match(INTEGER_LITERAL); - } - } - - setState(2954); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CYCLE || _la == NO) { - { - setState(2951); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NO) { - { - setState(2950); - match(NO); - } - } - - setState(2953); - match(CYCLE); - } - } - - setState(2965); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OWNED) { - { - setState(2956); - match(OWNED); - setState(2957); - match(BY); - setState(2963); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 269, _ctx)) { - case 1: { - { - setState(2958); - ((Create_sequence_stmtContext) _localctx).table_name = identifier(0); - setState(2959); - match(DOT); - setState(2960); - ((Create_sequence_stmtContext) _localctx).column_name_ = identifier(0); - } - } - break; - case 2: { - setState(2962); - match(NONE); - } - break; - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_server_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_server_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_server_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_server_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_server_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_server_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_server_stmtContext create_server_stmt() throws RecognitionException { - Create_server_stmtContext _localctx = new Create_server_stmtContext(_ctx, getState()); - enterRule(_localctx, 172, RULE_create_server_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2967); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_statistics_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_statistics_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_statistics_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_statistics_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_statistics_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_statistics_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_statistics_stmtContext create_statistics_stmt() throws RecognitionException { - Create_statistics_stmtContext _localctx = new Create_statistics_stmtContext(_ctx, getState()); - enterRule(_localctx, 174, RULE_create_statistics_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2969); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_subscription_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_subscription_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_subscription_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_subscription_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_subscription_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_subscription_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_subscription_stmtContext create_subscription_stmt() throws RecognitionException { - Create_subscription_stmtContext _localctx = new Create_subscription_stmtContext(_ctx, getState()); - enterRule(_localctx, 176, RULE_create_subscription_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2971); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_table_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_table_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_table_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_table_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_table_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_table_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_table_stmtContext create_table_stmt() throws RecognitionException { - Create_table_stmtContext _localctx = new Create_table_stmtContext(_ctx, getState()); - enterRule(_localctx, 178, RULE_create_table_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2973); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_table_as_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_table_as_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_table_as_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_table_as_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_table_as_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_table_as_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_table_as_stmtContext create_table_as_stmt() throws RecognitionException { - Create_table_as_stmtContext _localctx = new Create_table_as_stmtContext(_ctx, getState()); - enterRule(_localctx, 180, RULE_create_table_as_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2975); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_tablespace_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_tablespace_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_tablespace_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_tablespace_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_tablespace_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_tablespace_stmtContext create_tablespace_stmt() throws RecognitionException { - Create_tablespace_stmtContext _localctx = new Create_tablespace_stmtContext(_ctx, getState()); - enterRule(_localctx, 182, RULE_create_tablespace_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2977); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_text_search_config_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_text_search_config_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_text_search_config_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_text_search_config_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_config_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_text_search_config_stmtContext create_text_search_config_stmt() throws RecognitionException { - Create_text_search_config_stmtContext _localctx = new Create_text_search_config_stmtContext(_ctx, getState()); - enterRule(_localctx, 184, RULE_create_text_search_config_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2979); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_text_search_dict_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_text_search_dict_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_text_search_dict_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_text_search_dict_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_dict_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_text_search_dict_stmtContext create_text_search_dict_stmt() throws RecognitionException { - Create_text_search_dict_stmtContext _localctx = new Create_text_search_dict_stmtContext(_ctx, getState()); - enterRule(_localctx, 186, RULE_create_text_search_dict_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2981); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_text_search_parser_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_text_search_parser_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_text_search_parser_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_text_search_parser_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_parser_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_text_search_parser_stmtContext create_text_search_parser_stmt() throws RecognitionException { - Create_text_search_parser_stmtContext _localctx = new Create_text_search_parser_stmtContext(_ctx, getState()); - enterRule(_localctx, 188, RULE_create_text_search_parser_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2983); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_text_search_template_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_text_search_template_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_text_search_template_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_text_search_template_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_text_search_template_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_text_search_template_stmtContext create_text_search_template_stmt() throws RecognitionException { - Create_text_search_template_stmtContext _localctx = new Create_text_search_template_stmtContext(_ctx, getState()); - enterRule(_localctx, 190, RULE_create_text_search_template_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2985); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_transform_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_transform_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_transform_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_transform_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_transform_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_transform_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_transform_stmtContext create_transform_stmt() throws RecognitionException { - Create_transform_stmtContext _localctx = new Create_transform_stmtContext(_ctx, getState()); - enterRule(_localctx, 192, RULE_create_transform_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2987); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_trigger_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_trigger_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_trigger_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_trigger_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_trigger_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_trigger_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_trigger_stmtContext create_trigger_stmt() throws RecognitionException { - Create_trigger_stmtContext _localctx = new Create_trigger_stmtContext(_ctx, getState()); - enterRule(_localctx, 194, RULE_create_trigger_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2989); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_type_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_type_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_type_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_type_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_type_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_type_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_type_stmtContext create_type_stmt() throws RecognitionException { - Create_type_stmtContext _localctx = new Create_type_stmtContext(_ctx, getState()); - enterRule(_localctx, 196, RULE_create_type_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2991); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_user_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_user_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_user_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_user_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_user_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_user_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_user_stmtContext create_user_stmt() throws RecognitionException { - Create_user_stmtContext _localctx = new Create_user_stmtContext(_ctx, getState()); - enterRule(_localctx, 198, RULE_create_user_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2993); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_user_mapping_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Create_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_user_mapping_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_user_mapping_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_user_mapping_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_user_mapping_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_user_mapping_stmtContext create_user_mapping_stmt() throws RecognitionException { - Create_user_mapping_stmtContext _localctx = new Create_user_mapping_stmtContext(_ctx, getState()); - enterRule(_localctx, 200, RULE_create_user_mapping_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(2995); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Create_view_stmtContext extends ParserRuleContext { - public Name_Context name; - - public TerminalNode CREATE() { - return getToken(PostgreSQLParser.CREATE, 0); - } - - public TerminalNode VIEW() { - return getToken(PostgreSQLParser.VIEW, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public TerminalNode REPLACE() { - return getToken(PostgreSQLParser.REPLACE, 0); - } - - public TerminalNode RECURSIVE() { - return getToken(PostgreSQLParser.RECURSIVE, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public List WITH() { - return getTokens(PostgreSQLParser.WITH); - } - - public TerminalNode WITH(int i) { - return getToken(PostgreSQLParser.WITH, i); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode CHECK() { - return getToken(PostgreSQLParser.CHECK, 0); - } - - public TerminalNode OPTION() { - return getToken(PostgreSQLParser.OPTION, 0); - } - - public TerminalNode TEMP() { - return getToken(PostgreSQLParser.TEMP, 0); - } - - public TerminalNode TEMPORARY() { - return getToken(PostgreSQLParser.TEMPORARY, 0); - } - - public TerminalNode CASCADED() { - return getToken(PostgreSQLParser.CASCADED, 0); - } - - public TerminalNode LOCAL() { - return getToken(PostgreSQLParser.LOCAL, 0); - } - - public Create_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_create_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCreate_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCreate_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCreate_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Create_view_stmtContext create_view_stmt() throws RecognitionException { - Create_view_stmtContext _localctx = new Create_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 202, RULE_create_view_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2997); - match(CREATE); - setState(3000); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OR) { - { - setState(2998); - match(OR); - setState(2999); - match(REPLACE); - } - } - - setState(3003); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TEMP || _la == TEMPORARY) { - { - setState(3002); - _la = _input.LA(1); - if (!(_la == TEMP || _la == TEMPORARY)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(3006); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == RECURSIVE) { - { - setState(3005); - match(RECURSIVE); - } - } - - setState(3008); - match(VIEW); - setState(3009); - ((Create_view_stmtContext) _localctx).name = name_(); - setState(3014); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(3010); - match(OPEN_PAREN); - setState(3011); - name_list(); - setState(3012); - match(CLOSE_PAREN); - } - } - - setState(3021); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(3016); - match(WITH); - setState(3017); - match(OPEN_PAREN); - setState(3018); - option_list(); - setState(3019); - match(CLOSE_PAREN); - } - } - - setState(3023); - match(AS); - setState(3026); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 276, _ctx)) { - case 1: { - setState(3024); - select_stmt(); - } - break; - case 2: { - setState(3025); - values_stmt(); - } - break; - } - setState(3034); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(3028); - match(WITH); - setState(3030); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADED || _la == LOCAL) { - { - setState(3029); - _la = _input.LA(1); - if (!(_la == CASCADED || _la == LOCAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(3032); - match(CHECK); - setState(3033); - match(OPTION); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Deallocate_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Deallocate_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_deallocate_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDeallocate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDeallocate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDeallocate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Deallocate_stmtContext deallocate_stmt() throws RecognitionException { - Deallocate_stmtContext _localctx = new Deallocate_stmtContext(_ctx, getState()); - enterRule(_localctx, 204, RULE_deallocate_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3036); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Declare_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Declare_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_declare_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDeclare_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDeclare_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDeclare_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Declare_stmtContext declare_stmt() throws RecognitionException { - Declare_stmtContext _localctx = new Declare_stmtContext(_ctx, getState()); - enterRule(_localctx, 206, RULE_declare_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3038); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Delete_stmtContext extends ParserRuleContext { - public IdentifierContext cursor_name_; - - public TerminalNode DELETE() { - return getToken(PostgreSQLParser.DELETE, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public With_clauseContext with_clause() { - return getRuleContext(With_clauseContext.class, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public AliasContext alias() { - return getRuleContext(AliasContext.class, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public Where_clauseContext where_clause() { - return getRuleContext(Where_clauseContext.class, 0); - } - - public Returning_clauseContext returning_clause() { - return getRuleContext(Returning_clauseContext.class, 0); - } - - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public TerminalNode CURRENT() { - return getToken(PostgreSQLParser.CURRENT, 0); - } - - public TerminalNode OF() { - return getToken(PostgreSQLParser.OF, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Delete_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_delete_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDelete_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDelete_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDelete_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Delete_stmtContext delete_stmt() throws RecognitionException { - Delete_stmtContext _localctx = new Delete_stmtContext(_ctx, getState()); - enterRule(_localctx, 208, RULE_delete_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3041); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(3040); - with_clause(); - } - } - - setState(3043); - match(DELETE); - setState(3044); - match(FROM); - setState(3046); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(3045); - match(ONLY); - } - } - - setState(3048); - table_name_(); - setState(3050); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(3049); - match(STAR); - } - } - - setState(3056); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(3053); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(3052); - match(AS); - } - } - - setState(3055); - alias(); - } - } - - setState(3060); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == USING) { - { - setState(3058); - match(USING); - setState(3059); - identifier_list(); - } - } - - setState(3067); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 285, _ctx)) { - case 1: { - setState(3062); - where_clause(); - } - break; - case 2: { - { - setState(3063); - match(WHERE); - setState(3064); - match(CURRENT); - setState(3065); - match(OF); - setState(3066); - ((Delete_stmtContext) _localctx).cursor_name_ = identifier(0); - } - } - break; - } - setState(3070); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == RETURNING) { - { - setState(3069); - returning_clause(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Discard_stmtContext extends ParserRuleContext { - public TerminalNode DISCARD() { - return getToken(PostgreSQLParser.DISCARD, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode PLANS() { - return getToken(PostgreSQLParser.PLANS, 0); - } - - public TerminalNode SEQUENCES() { - return getToken(PostgreSQLParser.SEQUENCES, 0); - } - - public TerminalNode TEMPORARY() { - return getToken(PostgreSQLParser.TEMPORARY, 0); - } - - public TerminalNode TEMP() { - return getToken(PostgreSQLParser.TEMP, 0); - } - - public Discard_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_discard_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDiscard_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDiscard_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDiscard_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Discard_stmtContext discard_stmt() throws RecognitionException { - Discard_stmtContext _localctx = new Discard_stmtContext(_ctx, getState()); - enterRule(_localctx, 210, RULE_discard_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3072); - match(DISCARD); - setState(3073); - _la = _input.LA(1); - if (!(_la == ALL || _la == PLANS || ((((_la - 514)) & ~0x3f) == 0 && ((1L << (_la - 514)) & ((1L << (SEQUENCES - 514)) | (1L << (TEMP - 514)) | (1L << (TEMPORARY - 514)))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_stmtContext extends ParserRuleContext { - public Drop_access_method_stmtContext drop_access_method_stmt() { - return getRuleContext(Drop_access_method_stmtContext.class, 0); - } - - public Drop_aggregate_stmtContext drop_aggregate_stmt() { - return getRuleContext(Drop_aggregate_stmtContext.class, 0); - } - - public Drop_cast_stmtContext drop_cast_stmt() { - return getRuleContext(Drop_cast_stmtContext.class, 0); - } - - public Drop_collation_stmtContext drop_collation_stmt() { - return getRuleContext(Drop_collation_stmtContext.class, 0); - } - - public Drop_conversion_stmtContext drop_conversion_stmt() { - return getRuleContext(Drop_conversion_stmtContext.class, 0); - } - - public Drop_database_stmtContext drop_database_stmt() { - return getRuleContext(Drop_database_stmtContext.class, 0); - } - - public Drop_domain_stmtContext drop_domain_stmt() { - return getRuleContext(Drop_domain_stmtContext.class, 0); - } - - public Drop_event_trigger_stmtContext drop_event_trigger_stmt() { - return getRuleContext(Drop_event_trigger_stmtContext.class, 0); - } - - public Drop_extension_stmtContext drop_extension_stmt() { - return getRuleContext(Drop_extension_stmtContext.class, 0); - } - - public Drop_foreign_data_wrapper_stmtContext drop_foreign_data_wrapper_stmt() { - return getRuleContext(Drop_foreign_data_wrapper_stmtContext.class, 0); - } - - public Drop_foreign_table_stmtContext drop_foreign_table_stmt() { - return getRuleContext(Drop_foreign_table_stmtContext.class, 0); - } - - public Drop_function_stmtContext drop_function_stmt() { - return getRuleContext(Drop_function_stmtContext.class, 0); - } - - public Drop_group_stmtContext drop_group_stmt() { - return getRuleContext(Drop_group_stmtContext.class, 0); - } - - public Drop_index_stmtContext drop_index_stmt() { - return getRuleContext(Drop_index_stmtContext.class, 0); - } - - public Drop_language_stmtContext drop_language_stmt() { - return getRuleContext(Drop_language_stmtContext.class, 0); - } - - public Drop_materialized_view_stmtContext drop_materialized_view_stmt() { - return getRuleContext(Drop_materialized_view_stmtContext.class, 0); - } - - public Drop_operator_stmtContext drop_operator_stmt() { - return getRuleContext(Drop_operator_stmtContext.class, 0); - } - - public Drop_operator_class_stmtContext drop_operator_class_stmt() { - return getRuleContext(Drop_operator_class_stmtContext.class, 0); - } - - public Drop_operator_family_stmtContext drop_operator_family_stmt() { - return getRuleContext(Drop_operator_family_stmtContext.class, 0); - } - - public Drop_owned_stmtContext drop_owned_stmt() { - return getRuleContext(Drop_owned_stmtContext.class, 0); - } - - public Drop_policy_stmtContext drop_policy_stmt() { - return getRuleContext(Drop_policy_stmtContext.class, 0); - } - - public Drop_publication_stmtContext drop_publication_stmt() { - return getRuleContext(Drop_publication_stmtContext.class, 0); - } - - public Drop_role_stmtContext drop_role_stmt() { - return getRuleContext(Drop_role_stmtContext.class, 0); - } - - public Drop_rule_stmtContext drop_rule_stmt() { - return getRuleContext(Drop_rule_stmtContext.class, 0); - } - - public Drop_schema_stmtContext drop_schema_stmt() { - return getRuleContext(Drop_schema_stmtContext.class, 0); - } - - public Drop_sequence_stmtContext drop_sequence_stmt() { - return getRuleContext(Drop_sequence_stmtContext.class, 0); - } - - public Drop_server_stmtContext drop_server_stmt() { - return getRuleContext(Drop_server_stmtContext.class, 0); - } - - public Drop_statistics_stmtContext drop_statistics_stmt() { - return getRuleContext(Drop_statistics_stmtContext.class, 0); - } - - public Drop_subscription_stmtContext drop_subscription_stmt() { - return getRuleContext(Drop_subscription_stmtContext.class, 0); - } - - public Drop_table_stmtContext drop_table_stmt() { - return getRuleContext(Drop_table_stmtContext.class, 0); - } - - public Drop_tablespace_stmtContext drop_tablespace_stmt() { - return getRuleContext(Drop_tablespace_stmtContext.class, 0); - } - - public Drop_text_search_config_stmtContext drop_text_search_config_stmt() { - return getRuleContext(Drop_text_search_config_stmtContext.class, 0); - } - - public Drop_text_search_dict_stmtContext drop_text_search_dict_stmt() { - return getRuleContext(Drop_text_search_dict_stmtContext.class, 0); - } - - public Drop_text_search_parser_stmtContext drop_text_search_parser_stmt() { - return getRuleContext(Drop_text_search_parser_stmtContext.class, 0); - } - - public Drop_text_search_template_stmtContext drop_text_search_template_stmt() { - return getRuleContext(Drop_text_search_template_stmtContext.class, 0); - } - - public Drop_transform_stmtContext drop_transform_stmt() { - return getRuleContext(Drop_transform_stmtContext.class, 0); - } - - public Drop_trigger_stmtContext drop_trigger_stmt() { - return getRuleContext(Drop_trigger_stmtContext.class, 0); - } - - public Drop_type_stmtContext drop_type_stmt() { - return getRuleContext(Drop_type_stmtContext.class, 0); - } - - public Drop_user_stmtContext drop_user_stmt() { - return getRuleContext(Drop_user_stmtContext.class, 0); - } - - public Drop_user_mapping_stmtContext drop_user_mapping_stmt() { - return getRuleContext(Drop_user_mapping_stmtContext.class, 0); - } - - public Drop_view_stmtContext drop_view_stmt() { - return getRuleContext(Drop_view_stmtContext.class, 0); - } - - public Drop_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitDrop_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_stmtContext drop_stmt() throws RecognitionException { - Drop_stmtContext _localctx = new Drop_stmtContext(_ctx, getState()); - enterRule(_localctx, 212, RULE_drop_stmt); - try { - setState(3116); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 287, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(3075); - drop_access_method_stmt(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(3076); - drop_aggregate_stmt(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(3077); - drop_cast_stmt(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(3078); - drop_collation_stmt(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(3079); - drop_conversion_stmt(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(3080); - drop_database_stmt(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(3081); - drop_domain_stmt(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(3082); - drop_event_trigger_stmt(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(3083); - drop_extension_stmt(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(3084); - drop_foreign_data_wrapper_stmt(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(3085); - drop_foreign_table_stmt(); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(3086); - drop_function_stmt(); - } - break; - case 13: - enterOuterAlt(_localctx, 13); - { - setState(3087); - drop_group_stmt(); - } - break; - case 14: - enterOuterAlt(_localctx, 14); - { - setState(3088); - drop_index_stmt(); - } - break; - case 15: - enterOuterAlt(_localctx, 15); - { - setState(3089); - drop_language_stmt(); - } - break; - case 16: - enterOuterAlt(_localctx, 16); - { - setState(3090); - drop_materialized_view_stmt(); - } - break; - case 17: - enterOuterAlt(_localctx, 17); - { - setState(3091); - drop_operator_stmt(); - } - break; - case 18: - enterOuterAlt(_localctx, 18); - { - setState(3092); - drop_operator_class_stmt(); - } - break; - case 19: - enterOuterAlt(_localctx, 19); - { - setState(3093); - drop_operator_family_stmt(); - } - break; - case 20: - enterOuterAlt(_localctx, 20); - { - setState(3094); - drop_owned_stmt(); - } - break; - case 21: - enterOuterAlt(_localctx, 21); - { - setState(3095); - drop_policy_stmt(); - } - break; - case 22: - enterOuterAlt(_localctx, 22); - { - setState(3096); - drop_publication_stmt(); - } - break; - case 23: - enterOuterAlt(_localctx, 23); - { - setState(3097); - drop_role_stmt(); - } - break; - case 24: - enterOuterAlt(_localctx, 24); - { - setState(3098); - drop_rule_stmt(); - } - break; - case 25: - enterOuterAlt(_localctx, 25); - { - setState(3099); - drop_schema_stmt(); - } - break; - case 26: - enterOuterAlt(_localctx, 26); - { - setState(3100); - drop_sequence_stmt(); - } - break; - case 27: - enterOuterAlt(_localctx, 27); - { - setState(3101); - drop_server_stmt(); - } - break; - case 28: - enterOuterAlt(_localctx, 28); - { - setState(3102); - drop_statistics_stmt(); - } - break; - case 29: - enterOuterAlt(_localctx, 29); - { - setState(3103); - drop_subscription_stmt(); - } - break; - case 30: - enterOuterAlt(_localctx, 30); - { - setState(3104); - drop_table_stmt(); - } - break; - case 31: - enterOuterAlt(_localctx, 31); - { - setState(3105); - drop_tablespace_stmt(); - } - break; - case 32: - enterOuterAlt(_localctx, 32); - { - setState(3106); - drop_text_search_config_stmt(); - } - break; - case 33: - enterOuterAlt(_localctx, 33); - { - setState(3107); - drop_text_search_dict_stmt(); - } - break; - case 34: - enterOuterAlt(_localctx, 34); - { - setState(3108); - drop_text_search_parser_stmt(); - } - break; - case 35: - enterOuterAlt(_localctx, 35); - { - setState(3109); - drop_text_search_template_stmt(); - } - break; - case 36: - enterOuterAlt(_localctx, 36); - { - setState(3110); - drop_transform_stmt(); - } - break; - case 37: - enterOuterAlt(_localctx, 37); - { - setState(3111); - drop_trigger_stmt(); - } - break; - case 38: - enterOuterAlt(_localctx, 38); - { - setState(3112); - drop_type_stmt(); - } - break; - case 39: - enterOuterAlt(_localctx, 39); - { - setState(3113); - drop_user_stmt(); - } - break; - case 40: - enterOuterAlt(_localctx, 40); - { - setState(3114); - drop_user_mapping_stmt(); - } - break; - case 41: - enterOuterAlt(_localctx, 41); - { - setState(3115); - drop_view_stmt(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_access_method_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode ACCESS() { - return getToken(PostgreSQLParser.ACCESS, 0); - } - - public TerminalNode METHOD() { - return getToken(PostgreSQLParser.METHOD, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_access_method_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_access_method_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_access_method_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_access_method_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_access_method_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_access_method_stmtContext drop_access_method_stmt() throws RecognitionException { - Drop_access_method_stmtContext _localctx = new Drop_access_method_stmtContext(_ctx, getState()); - enterRule(_localctx, 214, RULE_drop_access_method_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3118); - match(DROP); - setState(3119); - match(ACCESS); - setState(3120); - match(METHOD); - setState(3123); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3121); - match(IF); - setState(3122); - match(EXISTS); - } - } - - setState(3125); - ((Drop_access_method_stmtContext) _localctx).name = identifier(0); - setState(3127); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3126); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_aggregate_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode AGGREGATE() { - return getToken(PostgreSQLParser.AGGREGATE, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Aggregate_signatureContext aggregate_signature() { - return getRuleContext(Aggregate_signatureContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_aggregate_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_aggregate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_aggregate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_aggregate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_aggregate_stmtContext drop_aggregate_stmt() throws RecognitionException { - Drop_aggregate_stmtContext _localctx = new Drop_aggregate_stmtContext(_ctx, getState()); - enterRule(_localctx, 216, RULE_drop_aggregate_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3129); - match(DROP); - setState(3130); - match(AGGREGATE); - setState(3133); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3131); - match(IF); - setState(3132); - match(EXISTS); - } - } - - setState(3135); - ((Drop_aggregate_stmtContext) _localctx).name = identifier(0); - setState(3136); - match(OPEN_PAREN); - setState(3137); - aggregate_signature(); - setState(3138); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_cast_stmtContext extends ParserRuleContext { - public Data_typeContext source_type; - public IdentifierContext target_type; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode CAST() { - return getToken(PostgreSQLParser.CAST, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Data_typeContext data_type() { - return getRuleContext(Data_typeContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_cast_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_cast_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_cast_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_cast_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_cast_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_cast_stmtContext drop_cast_stmt() throws RecognitionException { - Drop_cast_stmtContext _localctx = new Drop_cast_stmtContext(_ctx, getState()); - enterRule(_localctx, 218, RULE_drop_cast_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3140); - match(DROP); - setState(3141); - match(CAST); - setState(3144); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3142); - match(IF); - setState(3143); - match(EXISTS); - } - } - - setState(3146); - match(OPEN_PAREN); - setState(3147); - ((Drop_cast_stmtContext) _localctx).source_type = data_type(); - setState(3148); - match(AS); - setState(3149); - ((Drop_cast_stmtContext) _localctx).target_type = identifier(0); - setState(3150); - match(CLOSE_PAREN); - setState(3152); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3151); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_collation_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode COLLATION() { - return getToken(PostgreSQLParser.COLLATION, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_collation_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_collation_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_collation_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_collation_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_collation_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_collation_stmtContext drop_collation_stmt() throws RecognitionException { - Drop_collation_stmtContext _localctx = new Drop_collation_stmtContext(_ctx, getState()); - enterRule(_localctx, 220, RULE_drop_collation_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3154); - match(DROP); - setState(3155); - match(COLLATION); - setState(3158); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3156); - match(IF); - setState(3157); - match(EXISTS); - } - } - - setState(3160); - ((Drop_collation_stmtContext) _localctx).names = identifier_list(); - setState(3162); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3161); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_conversion_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode CONVERSION() { - return getToken(PostgreSQLParser.CONVERSION, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_conversion_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_conversion_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_conversion_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_conversion_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_conversion_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_conversion_stmtContext drop_conversion_stmt() throws RecognitionException { - Drop_conversion_stmtContext _localctx = new Drop_conversion_stmtContext(_ctx, getState()); - enterRule(_localctx, 222, RULE_drop_conversion_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3164); - match(DROP); - setState(3165); - match(CONVERSION); - setState(3168); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3166); - match(IF); - setState(3167); - match(EXISTS); - } - } - - setState(3170); - ((Drop_conversion_stmtContext) _localctx).name = identifier(0); - setState(3172); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3171); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_database_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode DATABASE() { - return getToken(PostgreSQLParser.DATABASE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_database_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_database_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_database_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_database_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_database_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_database_stmtContext drop_database_stmt() throws RecognitionException { - Drop_database_stmtContext _localctx = new Drop_database_stmtContext(_ctx, getState()); - enterRule(_localctx, 224, RULE_drop_database_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3174); - match(DROP); - setState(3175); - match(DATABASE); - setState(3178); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3176); - match(IF); - setState(3177); - match(EXISTS); - } - } - - setState(3180); - ((Drop_database_stmtContext) _localctx).name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_domain_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode DOMAIN() { - return getToken(PostgreSQLParser.DOMAIN, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_domain_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_domain_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_domain_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_domain_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_domain_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_domain_stmtContext drop_domain_stmt() throws RecognitionException { - Drop_domain_stmtContext _localctx = new Drop_domain_stmtContext(_ctx, getState()); - enterRule(_localctx, 226, RULE_drop_domain_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3182); - match(DROP); - setState(3183); - match(DOMAIN); - setState(3186); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3184); - match(IF); - setState(3185); - match(EXISTS); - } - } - - setState(3188); - ((Drop_domain_stmtContext) _localctx).names = identifier_list(); - setState(3190); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3189); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_event_trigger_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode EVENT() { - return getToken(PostgreSQLParser.EVENT, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_event_trigger_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_event_trigger_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_event_trigger_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_event_trigger_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_event_trigger_stmtContext drop_event_trigger_stmt() throws RecognitionException { - Drop_event_trigger_stmtContext _localctx = new Drop_event_trigger_stmtContext(_ctx, getState()); - enterRule(_localctx, 228, RULE_drop_event_trigger_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3192); - match(DROP); - setState(3193); - match(EVENT); - setState(3194); - match(TRIGGER); - setState(3197); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3195); - match(IF); - setState(3196); - match(EXISTS); - } - } - - setState(3199); - ((Drop_event_trigger_stmtContext) _localctx).name = identifier(0); - setState(3201); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3200); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_extension_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode EXTENSION() { - return getToken(PostgreSQLParser.EXTENSION, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_extension_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_extension_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_extension_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_extension_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_extension_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_extension_stmtContext drop_extension_stmt() throws RecognitionException { - Drop_extension_stmtContext _localctx = new Drop_extension_stmtContext(_ctx, getState()); - enterRule(_localctx, 230, RULE_drop_extension_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3203); - match(DROP); - setState(3204); - match(EXTENSION); - setState(3207); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3205); - match(IF); - setState(3206); - match(EXISTS); - } - } - - setState(3209); - ((Drop_extension_stmtContext) _localctx).names = identifier_list(); - setState(3211); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3210); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_foreign_data_wrapper_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode DATA() { - return getToken(PostgreSQLParser.DATA, 0); - } - - public TerminalNode WRAPPER() { - return getToken(PostgreSQLParser.WRAPPER, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_foreign_data_wrapper_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_foreign_data_wrapper_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_foreign_data_wrapper_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_foreign_data_wrapper_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_foreign_data_wrapper_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_foreign_data_wrapper_stmtContext drop_foreign_data_wrapper_stmt() throws RecognitionException { - Drop_foreign_data_wrapper_stmtContext _localctx = new Drop_foreign_data_wrapper_stmtContext(_ctx, getState()); - enterRule(_localctx, 232, RULE_drop_foreign_data_wrapper_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3213); - match(DROP); - setState(3214); - match(FOREIGN); - setState(3215); - match(DATA); - setState(3216); - match(WRAPPER); - setState(3219); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3217); - match(IF); - setState(3218); - match(EXISTS); - } - } - - setState(3221); - ((Drop_foreign_data_wrapper_stmtContext) _localctx).names = identifier_list(); - setState(3223); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3222); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_foreign_table_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_foreign_table_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_foreign_table_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_foreign_table_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_foreign_table_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_foreign_table_stmtContext drop_foreign_table_stmt() throws RecognitionException { - Drop_foreign_table_stmtContext _localctx = new Drop_foreign_table_stmtContext(_ctx, getState()); - enterRule(_localctx, 234, RULE_drop_foreign_table_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3225); - match(DROP); - setState(3226); - match(FOREIGN); - setState(3227); - match(TABLE); - setState(3230); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3228); - match(IF); - setState(3229); - match(EXISTS); - } - } - - setState(3232); - ((Drop_foreign_table_stmtContext) _localctx).names = identifier_list(); - setState(3234); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3233); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_function_stmtContext extends ParserRuleContext { - public Func_sig_listContext functions; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode FUNCTION() { - return getToken(PostgreSQLParser.FUNCTION, 0); - } - - public Func_sig_listContext func_sig_list() { - return getRuleContext(Func_sig_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_function_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_function_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_function_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_function_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_function_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_function_stmtContext drop_function_stmt() throws RecognitionException { - Drop_function_stmtContext _localctx = new Drop_function_stmtContext(_ctx, getState()); - enterRule(_localctx, 236, RULE_drop_function_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3236); - match(DROP); - setState(3237); - match(FUNCTION); - setState(3240); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3238); - match(IF); - setState(3239); - match(EXISTS); - } - } - - setState(3242); - ((Drop_function_stmtContext) _localctx).functions = func_sig_list(); - setState(3244); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3243); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_group_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode GROUP() { - return getToken(PostgreSQLParser.GROUP, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_group_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_group_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_group_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_group_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_group_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_group_stmtContext drop_group_stmt() throws RecognitionException { - Drop_group_stmtContext _localctx = new Drop_group_stmtContext(_ctx, getState()); - enterRule(_localctx, 238, RULE_drop_group_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3246); - match(DROP); - setState(3247); - match(GROUP); - setState(3250); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3248); - match(IF); - setState(3249); - match(EXISTS); - } - } - - setState(3252); - ((Drop_group_stmtContext) _localctx).names = identifier_list(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_index_stmtContext extends ParserRuleContext { - public Name_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public TerminalNode CONCURRENTLY() { - return getToken(PostgreSQLParser.CONCURRENTLY, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_index_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_index_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_index_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_index_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_index_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_index_stmtContext drop_index_stmt() throws RecognitionException { - Drop_index_stmtContext _localctx = new Drop_index_stmtContext(_ctx, getState()); - enterRule(_localctx, 240, RULE_drop_index_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3254); - match(DROP); - setState(3255); - match(INDEX); - setState(3257); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CONCURRENTLY) { - { - setState(3256); - match(CONCURRENTLY); - } - } - - setState(3261); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3259); - match(IF); - setState(3260); - match(EXISTS); - } - } - - setState(3263); - ((Drop_index_stmtContext) _localctx).names = name_list(); - setState(3265); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3264); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_language_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode LANGUAGE() { - return getToken(PostgreSQLParser.LANGUAGE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode PROCEDURAL() { - return getToken(PostgreSQLParser.PROCEDURAL, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_language_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_language_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_language_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_language_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_language_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_language_stmtContext drop_language_stmt() throws RecognitionException { - Drop_language_stmtContext _localctx = new Drop_language_stmtContext(_ctx, getState()); - enterRule(_localctx, 242, RULE_drop_language_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3267); - match(DROP); - setState(3269); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == PROCEDURAL) { - { - setState(3268); - match(PROCEDURAL); - } - } - - setState(3271); - match(LANGUAGE); - setState(3274); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3272); - match(IF); - setState(3273); - match(EXISTS); - } - } - - setState(3276); - ((Drop_language_stmtContext) _localctx).name = identifier(0); - setState(3278); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3277); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_materialized_view_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode MATERIALIZED() { - return getToken(PostgreSQLParser.MATERIALIZED, 0); - } - - public TerminalNode VIEW() { - return getToken(PostgreSQLParser.VIEW, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_materialized_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_materialized_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_materialized_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_materialized_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_materialized_view_stmtContext drop_materialized_view_stmt() throws RecognitionException { - Drop_materialized_view_stmtContext _localctx = new Drop_materialized_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 244, RULE_drop_materialized_view_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3280); - match(DROP); - setState(3281); - match(MATERIALIZED); - setState(3282); - match(VIEW); - setState(3285); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3283); - match(IF); - setState(3284); - match(EXISTS); - } - } - - setState(3287); - ((Drop_materialized_view_stmtContext) _localctx).names = identifier_list(); - setState(3289); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3288); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_operator_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Drop_operator_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_operator_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_operator_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_operator_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_operator_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_operator_stmtContext drop_operator_stmt() throws RecognitionException { - Drop_operator_stmtContext _localctx = new Drop_operator_stmtContext(_ctx, getState()); - enterRule(_localctx, 246, RULE_drop_operator_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3291); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_operator_class_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode CLASS() { - return getToken(PostgreSQLParser.CLASS, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_operator_class_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_operator_class_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_operator_class_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_operator_class_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_operator_class_stmtContext drop_operator_class_stmt() throws RecognitionException { - Drop_operator_class_stmtContext _localctx = new Drop_operator_class_stmtContext(_ctx, getState()); - enterRule(_localctx, 248, RULE_drop_operator_class_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3293); - match(DROP); - setState(3294); - match(OPERATOR); - setState(3295); - match(CLASS); - setState(3298); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3296); - match(IF); - setState(3297); - match(EXISTS); - } - } - - setState(3300); - ((Drop_operator_class_stmtContext) _localctx).name = identifier(0); - setState(3301); - match(USING); - setState(3302); - index_method(); - setState(3304); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3303); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_operator_family_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode FAMILY() { - return getToken(PostgreSQLParser.FAMILY, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_operator_family_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_operator_family_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_operator_family_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_operator_family_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_operator_family_stmtContext drop_operator_family_stmt() throws RecognitionException { - Drop_operator_family_stmtContext _localctx = new Drop_operator_family_stmtContext(_ctx, getState()); - enterRule(_localctx, 250, RULE_drop_operator_family_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3306); - match(DROP); - setState(3307); - match(OPERATOR); - setState(3308); - match(FAMILY); - setState(3311); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3309); - match(IF); - setState(3310); - match(EXISTS); - } - } - - setState(3313); - ((Drop_operator_family_stmtContext) _localctx).name = identifier(0); - setState(3314); - match(USING); - setState(3315); - index_method(); - setState(3317); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3316); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_owned_stmtContext extends ParserRuleContext { - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode OWNED() { - return getToken(PostgreSQLParser.OWNED, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public Role_name_listContext role_name_list() { - return getRuleContext(Role_name_listContext.class, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_owned_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_owned_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_owned_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_owned_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_owned_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_owned_stmtContext drop_owned_stmt() throws RecognitionException { - Drop_owned_stmtContext _localctx = new Drop_owned_stmtContext(_ctx, getState()); - enterRule(_localctx, 252, RULE_drop_owned_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3319); - match(DROP); - setState(3320); - match(OWNED); - setState(3321); - match(BY); - setState(3322); - role_name_list(); - setState(3324); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3323); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_policy_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext table_name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode POLICY() { - return getToken(PostgreSQLParser.POLICY, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_policy_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_policy_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_policy_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_policy_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_policy_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_policy_stmtContext drop_policy_stmt() throws RecognitionException { - Drop_policy_stmtContext _localctx = new Drop_policy_stmtContext(_ctx, getState()); - enterRule(_localctx, 254, RULE_drop_policy_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3326); - match(DROP); - setState(3327); - match(POLICY); - setState(3330); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3328); - match(IF); - setState(3329); - match(EXISTS); - } - } - - setState(3332); - ((Drop_policy_stmtContext) _localctx).name = identifier(0); - setState(3333); - match(ON); - setState(3334); - ((Drop_policy_stmtContext) _localctx).table_name = identifier(0); - setState(3336); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3335); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_publication_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode PUBLICATION() { - return getToken(PostgreSQLParser.PUBLICATION, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_publication_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_publication_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_publication_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_publication_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_publication_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_publication_stmtContext drop_publication_stmt() throws RecognitionException { - Drop_publication_stmtContext _localctx = new Drop_publication_stmtContext(_ctx, getState()); - enterRule(_localctx, 256, RULE_drop_publication_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3338); - match(DROP); - setState(3339); - match(PUBLICATION); - setState(3342); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3340); - match(IF); - setState(3341); - match(EXISTS); - } - } - - setState(3344); - ((Drop_publication_stmtContext) _localctx).names = identifier_list(); - setState(3346); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3345); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_role_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode ROLE() { - return getToken(PostgreSQLParser.ROLE, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_role_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_role_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_role_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_role_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_role_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_role_stmtContext drop_role_stmt() throws RecognitionException { - Drop_role_stmtContext _localctx = new Drop_role_stmtContext(_ctx, getState()); - enterRule(_localctx, 258, RULE_drop_role_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3348); - match(DROP); - setState(3349); - match(ROLE); - setState(3352); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3350); - match(IF); - setState(3351); - match(EXISTS); - } - } - - setState(3354); - ((Drop_role_stmtContext) _localctx).names = identifier_list(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_rule_stmtContext extends ParserRuleContext { - public Name_Context name; - public IdentifierContext table_name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode RULE() { - return getToken(PostgreSQLParser.RULE, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_rule_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_rule_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_rule_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_rule_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_rule_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_rule_stmtContext drop_rule_stmt() throws RecognitionException { - Drop_rule_stmtContext _localctx = new Drop_rule_stmtContext(_ctx, getState()); - enterRule(_localctx, 260, RULE_drop_rule_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3356); - match(DROP); - setState(3357); - match(RULE); - setState(3360); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3358); - match(IF); - setState(3359); - match(EXISTS); - } - } - - setState(3362); - ((Drop_rule_stmtContext) _localctx).name = name_(); - setState(3363); - match(ON); - setState(3364); - ((Drop_rule_stmtContext) _localctx).table_name = identifier(0); - setState(3366); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3365); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_schema_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_schema_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_schema_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_schema_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_schema_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_schema_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_schema_stmtContext drop_schema_stmt() throws RecognitionException { - Drop_schema_stmtContext _localctx = new Drop_schema_stmtContext(_ctx, getState()); - enterRule(_localctx, 262, RULE_drop_schema_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3368); - match(DROP); - setState(3369); - match(SCHEMA); - setState(3372); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3370); - match(IF); - setState(3371); - match(EXISTS); - } - } - - setState(3374); - ((Drop_schema_stmtContext) _localctx).names = identifier_list(); - setState(3376); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3375); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_sequence_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode SEQUENCE() { - return getToken(PostgreSQLParser.SEQUENCE, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_sequence_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_sequence_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_sequence_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_sequence_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_sequence_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_sequence_stmtContext drop_sequence_stmt() throws RecognitionException { - Drop_sequence_stmtContext _localctx = new Drop_sequence_stmtContext(_ctx, getState()); - enterRule(_localctx, 264, RULE_drop_sequence_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3378); - match(DROP); - setState(3379); - match(SEQUENCE); - setState(3382); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3380); - match(IF); - setState(3381); - match(EXISTS); - } - } - - setState(3384); - ((Drop_sequence_stmtContext) _localctx).names = identifier_list(); - setState(3386); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3385); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_server_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode SERVER() { - return getToken(PostgreSQLParser.SERVER, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_server_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_server_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_server_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_server_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_server_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_server_stmtContext drop_server_stmt() throws RecognitionException { - Drop_server_stmtContext _localctx = new Drop_server_stmtContext(_ctx, getState()); - enterRule(_localctx, 266, RULE_drop_server_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3388); - match(DROP); - setState(3389); - match(SERVER); - setState(3392); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3390); - match(IF); - setState(3391); - match(EXISTS); - } - } - - setState(3394); - ((Drop_server_stmtContext) _localctx).names = identifier_list(); - setState(3396); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3395); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_statistics_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode STATISTICS() { - return getToken(PostgreSQLParser.STATISTICS, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_statistics_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_statistics_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_statistics_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_statistics_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_statistics_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_statistics_stmtContext drop_statistics_stmt() throws RecognitionException { - Drop_statistics_stmtContext _localctx = new Drop_statistics_stmtContext(_ctx, getState()); - enterRule(_localctx, 268, RULE_drop_statistics_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3398); - match(DROP); - setState(3399); - match(STATISTICS); - setState(3402); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3400); - match(IF); - setState(3401); - match(EXISTS); - } - } - - setState(3404); - ((Drop_statistics_stmtContext) _localctx).names = identifier_list(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_subscription_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode SUBSCRIPTION() { - return getToken(PostgreSQLParser.SUBSCRIPTION, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_subscription_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_subscription_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_subscription_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_subscription_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_subscription_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_subscription_stmtContext drop_subscription_stmt() throws RecognitionException { - Drop_subscription_stmtContext _localctx = new Drop_subscription_stmtContext(_ctx, getState()); - enterRule(_localctx, 270, RULE_drop_subscription_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3406); - match(DROP); - setState(3407); - match(SUBSCRIPTION); - setState(3410); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3408); - match(IF); - setState(3409); - match(EXISTS); - } - } - - setState(3412); - ((Drop_subscription_stmtContext) _localctx).name = identifier(0); - setState(3414); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3413); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_table_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_table_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_table_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_table_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_table_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_table_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_table_stmtContext drop_table_stmt() throws RecognitionException { - Drop_table_stmtContext _localctx = new Drop_table_stmtContext(_ctx, getState()); - enterRule(_localctx, 272, RULE_drop_table_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3416); - match(DROP); - setState(3417); - match(TABLE); - setState(3420); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3418); - match(IF); - setState(3419); - match(EXISTS); - } - } - - setState(3422); - ((Drop_table_stmtContext) _localctx).names = identifier_list(); - setState(3424); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3423); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_tablespace_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_tablespace_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_tablespace_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_tablespace_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_tablespace_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_tablespace_stmtContext drop_tablespace_stmt() throws RecognitionException { - Drop_tablespace_stmtContext _localctx = new Drop_tablespace_stmtContext(_ctx, getState()); - enterRule(_localctx, 274, RULE_drop_tablespace_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3426); - match(DROP); - setState(3427); - match(TABLESPACE); - setState(3430); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3428); - match(IF); - setState(3429); - match(EXISTS); - } - } - - setState(3432); - ((Drop_tablespace_stmtContext) _localctx).name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_text_search_config_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode CONFIGURATION() { - return getToken(PostgreSQLParser.CONFIGURATION, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_text_search_config_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_text_search_config_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_text_search_config_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_config_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_text_search_config_stmtContext drop_text_search_config_stmt() throws RecognitionException { - Drop_text_search_config_stmtContext _localctx = new Drop_text_search_config_stmtContext(_ctx, getState()); - enterRule(_localctx, 276, RULE_drop_text_search_config_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3434); - match(DROP); - setState(3435); - match(TEXT); - setState(3436); - match(SEARCH); - setState(3437); - match(CONFIGURATION); - setState(3440); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3438); - match(IF); - setState(3439); - match(EXISTS); - } - } - - setState(3442); - ((Drop_text_search_config_stmtContext) _localctx).name = identifier(0); - setState(3444); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3443); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_text_search_dict_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode DICTIONARY() { - return getToken(PostgreSQLParser.DICTIONARY, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_text_search_dict_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_text_search_dict_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_text_search_dict_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_dict_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_text_search_dict_stmtContext drop_text_search_dict_stmt() throws RecognitionException { - Drop_text_search_dict_stmtContext _localctx = new Drop_text_search_dict_stmtContext(_ctx, getState()); - enterRule(_localctx, 278, RULE_drop_text_search_dict_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3446); - match(DROP); - setState(3447); - match(TEXT); - setState(3448); - match(SEARCH); - setState(3449); - match(DICTIONARY); - setState(3452); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3450); - match(IF); - setState(3451); - match(EXISTS); - } - } - - setState(3454); - ((Drop_text_search_dict_stmtContext) _localctx).name = identifier(0); - setState(3456); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3455); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_text_search_parser_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode PARSER() { - return getToken(PostgreSQLParser.PARSER, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_text_search_parser_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_text_search_parser_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_text_search_parser_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_parser_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_text_search_parser_stmtContext drop_text_search_parser_stmt() throws RecognitionException { - Drop_text_search_parser_stmtContext _localctx = new Drop_text_search_parser_stmtContext(_ctx, getState()); - enterRule(_localctx, 280, RULE_drop_text_search_parser_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3458); - match(DROP); - setState(3459); - match(TEXT); - setState(3460); - match(SEARCH); - setState(3461); - match(PARSER); - setState(3464); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3462); - match(IF); - setState(3463); - match(EXISTS); - } - } - - setState(3466); - ((Drop_text_search_parser_stmtContext) _localctx).name = identifier(0); - setState(3468); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3467); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_text_search_template_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode TEMPLATE() { - return getToken(PostgreSQLParser.TEMPLATE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_text_search_template_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_text_search_template_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_text_search_template_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_text_search_template_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_text_search_template_stmtContext drop_text_search_template_stmt() throws RecognitionException { - Drop_text_search_template_stmtContext _localctx = new Drop_text_search_template_stmtContext(_ctx, getState()); - enterRule(_localctx, 282, RULE_drop_text_search_template_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3470); - match(DROP); - setState(3471); - match(TEXT); - setState(3472); - match(SEARCH); - setState(3473); - match(TEMPLATE); - setState(3476); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3474); - match(IF); - setState(3475); - match(EXISTS); - } - } - - setState(3478); - ((Drop_text_search_template_stmtContext) _localctx).name = identifier(0); - setState(3480); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3479); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_transform_stmtContext extends ParserRuleContext { - public IdentifierContext type_name_; - public IdentifierContext lang_name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TRANSFORM() { - return getToken(PostgreSQLParser.TRANSFORM, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode LANGUAGE() { - return getToken(PostgreSQLParser.LANGUAGE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_transform_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_transform_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_transform_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_transform_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_transform_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_transform_stmtContext drop_transform_stmt() throws RecognitionException { - Drop_transform_stmtContext _localctx = new Drop_transform_stmtContext(_ctx, getState()); - enterRule(_localctx, 284, RULE_drop_transform_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3482); - match(DROP); - setState(3483); - match(TRANSFORM); - setState(3486); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3484); - match(IF); - setState(3485); - match(EXISTS); - } - } - - setState(3488); - match(FOR); - setState(3489); - ((Drop_transform_stmtContext) _localctx).type_name_ = identifier(0); - setState(3490); - match(LANGUAGE); - setState(3491); - ((Drop_transform_stmtContext) _localctx).lang_name = identifier(0); - setState(3492); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_trigger_stmtContext extends ParserRuleContext { - public IdentifierContext name; - public IdentifierContext table_name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_trigger_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_trigger_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_trigger_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_trigger_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_trigger_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_trigger_stmtContext drop_trigger_stmt() throws RecognitionException { - Drop_trigger_stmtContext _localctx = new Drop_trigger_stmtContext(_ctx, getState()); - enterRule(_localctx, 286, RULE_drop_trigger_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3494); - match(DROP); - setState(3495); - match(TRIGGER); - setState(3498); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3496); - match(IF); - setState(3497); - match(EXISTS); - } - } - - setState(3500); - ((Drop_trigger_stmtContext) _localctx).name = identifier(0); - setState(3501); - match(ON); - setState(3502); - ((Drop_trigger_stmtContext) _localctx).table_name = identifier(0); - setState(3504); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3503); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_type_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode TYPE() { - return getToken(PostgreSQLParser.TYPE, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_type_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_type_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_type_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_type_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_type_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_type_stmtContext drop_type_stmt() throws RecognitionException { - Drop_type_stmtContext _localctx = new Drop_type_stmtContext(_ctx, getState()); - enterRule(_localctx, 288, RULE_drop_type_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3506); - match(DROP); - setState(3507); - match(TYPE); - setState(3510); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3508); - match(IF); - setState(3509); - match(EXISTS); - } - } - - setState(3512); - ((Drop_type_stmtContext) _localctx).names = identifier_list(); - setState(3514); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3513); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_user_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode USER() { - return getToken(PostgreSQLParser.USER, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Drop_user_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_user_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_user_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_user_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_user_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_user_stmtContext drop_user_stmt() throws RecognitionException { - Drop_user_stmtContext _localctx = new Drop_user_stmtContext(_ctx, getState()); - enterRule(_localctx, 290, RULE_drop_user_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3516); - match(DROP); - setState(3517); - match(USER); - setState(3520); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3518); - match(IF); - setState(3519); - match(EXISTS); - } - } - - setState(3522); - ((Drop_user_stmtContext) _localctx).names = identifier_list(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_user_mapping_stmtContext extends ParserRuleContext { - public Name_Context user_name; - public IdentifierContext server_name; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public List USER() { - return getTokens(PostgreSQLParser.USER); - } - - public TerminalNode USER(int i) { - return getToken(PostgreSQLParser.USER, i); - } - - public TerminalNode MAPPING() { - return getToken(PostgreSQLParser.MAPPING, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode SERVER() { - return getToken(PostgreSQLParser.SERVER, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public TerminalNode PUBLIC() { - return getToken(PostgreSQLParser.PUBLIC, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Drop_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_user_mapping_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_user_mapping_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_user_mapping_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_user_mapping_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_user_mapping_stmtContext drop_user_mapping_stmt() throws RecognitionException { - Drop_user_mapping_stmtContext _localctx = new Drop_user_mapping_stmtContext(_ctx, getState()); - enterRule(_localctx, 292, RULE_drop_user_mapping_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3524); - match(DROP); - setState(3525); - match(USER); - setState(3526); - match(MAPPING); - setState(3529); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3527); - match(IF); - setState(3528); - match(EXISTS); - } - } - - setState(3531); - match(FOR); - setState(3537); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 358, _ctx)) { - case 1: { - setState(3532); - ((Drop_user_mapping_stmtContext) _localctx).user_name = name_(); - } - break; - case 2: { - setState(3533); - match(USER); - } - break; - case 3: { - setState(3534); - match(CURRENT_USER); - } - break; - case 4: { - setState(3535); - match(SESSION_USER); - } - break; - case 5: { - setState(3536); - match(PUBLIC); - } - break; - } - setState(3539); - match(SERVER); - setState(3540); - ((Drop_user_mapping_stmtContext) _localctx).server_name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Drop_view_stmtContext extends ParserRuleContext { - public Identifier_listContext names; - - public TerminalNode DROP() { - return getToken(PostgreSQLParser.DROP, 0); - } - - public TerminalNode VIEW() { - return getToken(PostgreSQLParser.VIEW, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IF() { - return getToken(PostgreSQLParser.IF, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Drop_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_drop_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterDrop_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitDrop_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitDrop_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Drop_view_stmtContext drop_view_stmt() throws RecognitionException { - Drop_view_stmtContext _localctx = new Drop_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 294, RULE_drop_view_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3542); - match(DROP); - setState(3543); - match(VIEW); - setState(3546); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IF) { - { - setState(3544); - match(IF); - setState(3545); - match(EXISTS); - } - } - - setState(3548); - ((Drop_view_stmtContext) _localctx).names = identifier_list(); - setState(3550); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(3549); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Execute_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode EXECUTE() { - return getToken(PostgreSQLParser.EXECUTE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Expr_listContext expr_list() { - return getRuleContext(Expr_listContext.class, 0); - } - - public Execute_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_execute_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterExecute_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitExecute_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExecute_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Execute_stmtContext execute_stmt() throws RecognitionException { - Execute_stmtContext _localctx = new Execute_stmtContext(_ctx, getState()); - enterRule(_localctx, 296, RULE_execute_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3552); - match(EXECUTE); - setState(3553); - ((Execute_stmtContext) _localctx).name = identifier(0); - setState(3555); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(3554); - expr_list(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Explain_stmtContext extends ParserRuleContext { - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Insert_stmtContext insert_stmt() { - return getRuleContext(Insert_stmtContext.class, 0); - } - - public Update_stmtContext update_stmt() { - return getRuleContext(Update_stmtContext.class, 0); - } - - public Delete_stmtContext delete_stmt() { - return getRuleContext(Delete_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public Execute_stmtContext execute_stmt() { - return getRuleContext(Execute_stmtContext.class, 0); - } - - public Declare_stmtContext declare_stmt() { - return getRuleContext(Declare_stmtContext.class, 0); - } - - public Create_table_as_stmtContext create_table_as_stmt() { - return getRuleContext(Create_table_as_stmtContext.class, 0); - } - - public Create_materialized_view_stmtContext create_materialized_view_stmt() { - return getRuleContext(Create_materialized_view_stmtContext.class, 0); - } - - public TerminalNode EXPLAIN() { - return getToken(PostgreSQLParser.EXPLAIN, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List explain_parameter() { - return getRuleContexts(Explain_parameterContext.class); - } - - public Explain_parameterContext explain_parameter(int i) { - return getRuleContext(Explain_parameterContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode ANALYZE() { - return getToken(PostgreSQLParser.ANALYZE, 0); - } - - public TerminalNode VERBOSE() { - return getToken(PostgreSQLParser.VERBOSE, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Explain_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_explain_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterExplain_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitExplain_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExplain_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Explain_stmtContext explain_stmt() throws RecognitionException { - Explain_stmtContext _localctx = new Explain_stmtContext(_ctx, getState()); - enterRule(_localctx, 298, RULE_explain_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3576); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 365, _ctx)) { - case 1: { - { - setState(3557); - match(EXPLAIN); - setState(3559); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ANALYZE) { - { - setState(3558); - match(ANALYZE); - } - } - - setState(3562); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == VERBOSE) { - { - setState(3561); - match(VERBOSE); - } - } - - } - } - break; - case 2: { - { - setState(3564); - match(EXPLAIN); - setState(3565); - match(OPEN_PAREN); - setState(3566); - explain_parameter(); - setState(3571); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(3567); - match(COMMA); - setState(3568); - explain_parameter(); - } - } - setState(3573); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(3574); - match(CLOSE_PAREN); - } - } - break; - } - setState(3587); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 366, _ctx)) { - case 1: { - setState(3578); - select_stmt(); - } - break; - case 2: { - setState(3579); - insert_stmt(); - } - break; - case 3: { - setState(3580); - update_stmt(); - } - break; - case 4: { - setState(3581); - delete_stmt(); - } - break; - case 5: { - setState(3582); - values_stmt(); - } - break; - case 6: { - setState(3583); - execute_stmt(); - } - break; - case 7: { - setState(3584); - declare_stmt(); - } - break; - case 8: { - setState(3585); - create_table_as_stmt(); - } - break; - case 9: { - setState(3586); - create_materialized_view_stmt(); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Fetch_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFetch_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFetch_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFetch_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Fetch_stmtContext fetch_stmt() throws RecognitionException { - Fetch_stmtContext _localctx = new Fetch_stmtContext(_ctx, getState()); - enterRule(_localctx, 300, RULE_fetch_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3589); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Grant_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Grant_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_grant_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterGrant_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitGrant_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitGrant_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Grant_stmtContext grant_stmt() throws RecognitionException { - Grant_stmtContext _localctx = new Grant_stmtContext(_ctx, getState()); - enterRule(_localctx, 302, RULE_grant_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3591); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Import_foreign_schema_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Import_foreign_schema_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_import_foreign_schema_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterImport_foreign_schema_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitImport_foreign_schema_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitImport_foreign_schema_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Import_foreign_schema_stmtContext import_foreign_schema_stmt() throws RecognitionException { - Import_foreign_schema_stmtContext _localctx = new Import_foreign_schema_stmtContext(_ctx, getState()); - enterRule(_localctx, 304, RULE_import_foreign_schema_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3593); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Insert_stmtContext extends ParserRuleContext { - public IdentifierContext alias_; - - public TerminalNode INSERT() { - return getToken(PostgreSQLParser.INSERT, 0); - } - - public TerminalNode INTO() { - return getToken(PostgreSQLParser.INTO, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public TerminalNode VALUES() { - return getToken(PostgreSQLParser.VALUES, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public With_clauseContext with_clause() { - return getRuleContext(With_clauseContext.class, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode OVERRIDING() { - return getToken(PostgreSQLParser.OVERRIDING, 0); - } - - public TerminalNode VALUE() { - return getToken(PostgreSQLParser.VALUE, 0); - } - - public List ON() { - return getTokens(PostgreSQLParser.ON); - } - - public TerminalNode ON(int i) { - return getToken(PostgreSQLParser.ON, i); - } - - public TerminalNode CONFLICT() { - return getToken(PostgreSQLParser.CONFLICT, 0); - } - - public Returning_clauseContext returning_clause() { - return getRuleContext(Returning_clauseContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public List column_name() { - return getRuleContexts(Column_nameContext.class); - } - - public Column_nameContext column_name(int i) { - return getRuleContext(Column_nameContext.class, i); - } - - public TerminalNode CONSTRAINT() { - return getToken(PostgreSQLParser.CONSTRAINT, 0); - } - - public List where_clause() { - return getRuleContexts(Where_clauseContext.class); - } - - public Where_clauseContext where_clause(int i) { - return getRuleContext(Where_clauseContext.class, i); - } - - public TerminalNode SYSTEM() { - return getToken(PostgreSQLParser.SYSTEM, 0); - } - - public TerminalNode USER() { - return getToken(PostgreSQLParser.USER, 0); - } - - public TerminalNode DO() { - return getToken(PostgreSQLParser.DO, 0); - } - - public TerminalNode NOTHING() { - return getToken(PostgreSQLParser.NOTHING, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public Updater_clauseContext updater_clause() { - return getRuleContext(Updater_clauseContext.class, 0); - } - - public Insert_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_insert_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterInsert_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitInsert_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitInsert_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Insert_stmtContext insert_stmt() throws RecognitionException { - Insert_stmtContext _localctx = new Insert_stmtContext(_ctx, getState()); - enterRule(_localctx, 306, RULE_insert_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3596); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(3595); - with_clause(); - } - } - - setState(3598); - match(INSERT); - setState(3599); - match(INTO); - setState(3600); - table_name_(); - setState(3603); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(3601); - match(AS); - setState(3602); - ((Insert_stmtContext) _localctx).alias_ = identifier(0); - } - } - - setState(3609); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 369, _ctx)) { - case 1: { - setState(3605); - match(OPEN_PAREN); - setState(3606); - name_list(); - setState(3607); - match(CLOSE_PAREN); - } - break; - } - setState(3616); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OVERRIDING) { - { - setState(3611); - match(OVERRIDING); - setState(3613); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == SYSTEM || _la == USER) { - { - setState(3612); - _la = _input.LA(1); - if (!(_la == SYSTEM || _la == USER)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(3615); - match(VALUE); - } - } - - setState(3622); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 372, _ctx)) { - case 1: { - setState(3618); - match(DEFAULT); - setState(3619); - match(VALUES); - } - break; - case 2: { - setState(3620); - select_stmt(); - } - break; - case 3: { - setState(3621); - values_stmt(); - } - break; - } - setState(3651); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ON) { - { - setState(3624); - match(ON); - setState(3625); - match(CONFLICT); - setState(3630); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(3626); - match(OPEN_PAREN); - setState(3627); - column_name(); - setState(3628); - match(CLOSE_PAREN); - } - } - - setState(3635); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ON) { - { - setState(3632); - match(ON); - setState(3633); - match(CONSTRAINT); - setState(3634); - column_name(); - } - } - - setState(3638); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WHERE) { - { - setState(3637); - where_clause(); - } - } - - setState(3649); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 377, _ctx)) { - case 1: { - { - setState(3640); - match(DO); - setState(3641); - match(NOTHING); - } - } - break; - case 2: { - { - setState(3642); - match(DO); - setState(3643); - match(UPDATE); - setState(3644); - match(SET); - setState(3645); - updater_clause(); - setState(3647); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WHERE) { - { - setState(3646); - where_clause(); - } - } - - } - } - break; - } - } - } - - setState(3654); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == RETURNING) { - { - setState(3653); - returning_clause(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Listen_stmtContext extends ParserRuleContext { - public IdentifierContext channel; - - public TerminalNode LISTEN() { - return getToken(PostgreSQLParser.LISTEN, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Listen_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_listen_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterListen_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitListen_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitListen_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Listen_stmtContext listen_stmt() throws RecognitionException { - Listen_stmtContext _localctx = new Listen_stmtContext(_ctx, getState()); - enterRule(_localctx, 308, RULE_listen_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3656); - match(LISTEN); - setState(3657); - ((Listen_stmtContext) _localctx).channel = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Load_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Load_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_load_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterLoad_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitLoad_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitLoad_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Load_stmtContext load_stmt() throws RecognitionException { - Load_stmtContext _localctx = new Load_stmtContext(_ctx, getState()); - enterRule(_localctx, 310, RULE_load_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3659); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Lock_stmtContext extends ParserRuleContext { - public Name_Context name; - - public TerminalNode LOCK() { - return getToken(PostgreSQLParser.LOCK, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public TerminalNode MODE() { - return getToken(PostgreSQLParser.MODE, 0); - } - - public TerminalNode NOWAIT() { - return getToken(PostgreSQLParser.NOWAIT, 0); - } - - public TerminalNode ACCESS() { - return getToken(PostgreSQLParser.ACCESS, 0); - } - - public TerminalNode SHARE() { - return getToken(PostgreSQLParser.SHARE, 0); - } - - public TerminalNode ROW() { - return getToken(PostgreSQLParser.ROW, 0); - } - - public TerminalNode EXCLUSIVE() { - return getToken(PostgreSQLParser.EXCLUSIVE, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public Lock_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_lock_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterLock_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitLock_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitLock_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Lock_stmtContext lock_stmt() throws RecognitionException { - Lock_stmtContext _localctx = new Lock_stmtContext(_ctx, getState()); - enterRule(_localctx, 312, RULE_lock_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3661); - match(LOCK); - setState(3663); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TABLE) { - { - setState(3662); - match(TABLE); - } - } - - setState(3666); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(3665); - match(ONLY); - } - } - - setState(3668); - ((Lock_stmtContext) _localctx).name = name_(); - setState(3670); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(3669); - match(STAR); - } - } - - setState(3692); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN) { - { - setState(3672); - match(IN); - setState(3689); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 383, _ctx)) { - case 1: { - setState(3673); - match(ACCESS); - setState(3674); - match(SHARE); - } - break; - case 2: { - setState(3675); - match(ROW); - setState(3676); - match(SHARE); - } - break; - case 3: { - setState(3677); - match(ROW); - setState(3678); - match(EXCLUSIVE); - } - break; - case 4: { - setState(3679); - match(SHARE); - setState(3680); - match(UPDATE); - setState(3681); - match(EXCLUSIVE); - } - break; - case 5: { - setState(3682); - match(SHARE); - } - break; - case 6: { - setState(3683); - match(SHARE); - setState(3684); - match(ROW); - setState(3685); - match(EXCLUSIVE); - } - break; - case 7: { - setState(3686); - match(EXCLUSIVE); - } - break; - case 8: { - setState(3687); - match(ACCESS); - setState(3688); - match(EXCLUSIVE); - } - break; - } - setState(3691); - match(MODE); - } - } - - setState(3695); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOWAIT) { - { - setState(3694); - match(NOWAIT); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Move_stmtContext extends ParserRuleContext { - public Name_Context cursor_name; - - public TerminalNode MOVE() { - return getToken(PostgreSQLParser.MOVE, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode NEXT() { - return getToken(PostgreSQLParser.NEXT, 0); - } - - public TerminalNode PRIOR() { - return getToken(PostgreSQLParser.PRIOR, 0); - } - - public TerminalNode FIRST() { - return getToken(PostgreSQLParser.FIRST, 0); - } - - public TerminalNode LAST() { - return getToken(PostgreSQLParser.LAST, 0); - } - - public TerminalNode ABSOLUTE() { - return getToken(PostgreSQLParser.ABSOLUTE, 0); - } - - public TerminalNode INTEGER() { - return getToken(PostgreSQLParser.INTEGER, 0); - } - - public TerminalNode RELATIVE() { - return getToken(PostgreSQLParser.RELATIVE, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode FORWARD() { - return getToken(PostgreSQLParser.FORWARD, 0); - } - - public TerminalNode BACKWARD() { - return getToken(PostgreSQLParser.BACKWARD, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public Move_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_move_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterMove_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitMove_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitMove_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Move_stmtContext move_stmt() throws RecognitionException { - Move_stmtContext _localctx = new Move_stmtContext(_ctx, getState()); - enterRule(_localctx, 314, RULE_move_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3697); - match(MOVE); - setState(3721); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 390, _ctx)) { - case 1: { - setState(3716); - _errHandler.sync(this); - switch (_input.LA(1)) { - case NEXT: { - setState(3698); - match(NEXT); - } - break; - case PRIOR: { - setState(3699); - match(PRIOR); - } - break; - case FIRST: { - setState(3700); - match(FIRST); - } - break; - case LAST: { - setState(3701); - match(LAST); - } - break; - case ABSOLUTE: { - setState(3702); - match(ABSOLUTE); - setState(3703); - match(INTEGER); - } - break; - case RELATIVE: { - setState(3704); - match(RELATIVE); - setState(3705); - match(INTEGER_LITERAL); - } - break; - case INTEGER_LITERAL: { - setState(3706); - match(INTEGER_LITERAL); - } - break; - case ALL: { - setState(3707); - match(ALL); - } - break; - case FORWARD: { - setState(3708); - match(FORWARD); - setState(3710); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ALL || _la == INTEGER_LITERAL) { - { - setState(3709); - _la = _input.LA(1); - if (!(_la == ALL || _la == INTEGER_LITERAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - case BACKWARD: { - setState(3712); - match(BACKWARD); - setState(3714); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ALL || _la == INTEGER_LITERAL) { - { - setState(3713); - _la = _input.LA(1); - if (!(_la == ALL || _la == INTEGER_LITERAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - setState(3719); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FROM || _la == IN) { - { - setState(3718); - _la = _input.LA(1); - if (!(_la == FROM || _la == IN)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - break; - } - setState(3723); - ((Move_stmtContext) _localctx).cursor_name = name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Notify_stmtContext extends ParserRuleContext { - public Name_Context channel; - public Token payload; - - public TerminalNode NOTIFY() { - return getToken(PostgreSQLParser.NOTIFY, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode COMMA() { - return getToken(PostgreSQLParser.COMMA, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public Notify_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_notify_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterNotify_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitNotify_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitNotify_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Notify_stmtContext notify_stmt() throws RecognitionException { - Notify_stmtContext _localctx = new Notify_stmtContext(_ctx, getState()); - enterRule(_localctx, 316, RULE_notify_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3725); - match(NOTIFY); - setState(3726); - ((Notify_stmtContext) _localctx).channel = name_(); - setState(3729); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(3727); - match(COMMA); - setState(3728); - ((Notify_stmtContext) _localctx).payload = match(SINGLEQ_STRING_LITERAL); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Prepare_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode PREPARE() { - return getToken(PostgreSQLParser.PREPARE, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Insert_stmtContext insert_stmt() { - return getRuleContext(Insert_stmtContext.class, 0); - } - - public Update_stmtContext update_stmt() { - return getRuleContext(Update_stmtContext.class, 0); - } - - public Delete_stmtContext delete_stmt() { - return getRuleContext(Delete_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Data_type_listContext data_type_list() { - return getRuleContext(Data_type_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Prepare_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_prepare_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterPrepare_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitPrepare_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitPrepare_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Prepare_stmtContext prepare_stmt() throws RecognitionException { - Prepare_stmtContext _localctx = new Prepare_stmtContext(_ctx, getState()); - enterRule(_localctx, 318, RULE_prepare_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3731); - match(PREPARE); - setState(3732); - ((Prepare_stmtContext) _localctx).name = identifier(0); - setState(3737); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(3733); - match(OPEN_PAREN); - setState(3734); - data_type_list(); - setState(3735); - match(CLOSE_PAREN); - } - } - - setState(3739); - match(AS); - setState(3745); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 393, _ctx)) { - case 1: { - setState(3740); - select_stmt(); - } - break; - case 2: { - setState(3741); - insert_stmt(); - } - break; - case 3: { - setState(3742); - update_stmt(); - } - break; - case 4: { - setState(3743); - delete_stmt(); - } - break; - case 5: { - setState(3744); - values_stmt(); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Prepare_transaction_stmtContext extends ParserRuleContext { - public Name_Context name; - - public TerminalNode PREPARE() { - return getToken(PostgreSQLParser.PREPARE, 0); - } - - public TerminalNode TRANSACTION() { - return getToken(PostgreSQLParser.TRANSACTION, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public Prepare_transaction_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_prepare_transaction_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterPrepare_transaction_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitPrepare_transaction_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitPrepare_transaction_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Prepare_transaction_stmtContext prepare_transaction_stmt() throws RecognitionException { - Prepare_transaction_stmtContext _localctx = new Prepare_transaction_stmtContext(_ctx, getState()); - enterRule(_localctx, 320, RULE_prepare_transaction_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3747); - match(PREPARE); - setState(3748); - match(TRANSACTION); - setState(3749); - ((Prepare_transaction_stmtContext) _localctx).name = name_(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Reassign_owned_stmtContext extends ParserRuleContext { - public TerminalNode REASSIGN() { - return getToken(PostgreSQLParser.REASSIGN, 0); - } - - public TerminalNode OWNED() { - return getToken(PostgreSQLParser.OWNED, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List CURRENT_USER() { - return getTokens(PostgreSQLParser.CURRENT_USER); - } - - public TerminalNode CURRENT_USER(int i) { - return getToken(PostgreSQLParser.CURRENT_USER, i); - } - - public List SESSION_USER() { - return getTokens(PostgreSQLParser.SESSION_USER); - } - - public TerminalNode SESSION_USER(int i) { - return getToken(PostgreSQLParser.SESSION_USER, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Reassign_owned_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_reassign_owned_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterReassign_owned_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitReassign_owned_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitReassign_owned_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Reassign_owned_stmtContext reassign_owned_stmt() throws RecognitionException { - Reassign_owned_stmtContext _localctx = new Reassign_owned_stmtContext(_ctx, getState()); - enterRule(_localctx, 322, RULE_reassign_owned_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3751); - match(REASSIGN); - setState(3752); - match(OWNED); - setState(3753); - match(BY); - { - setState(3757); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(3754); - identifier(0); - } - break; - case CURRENT_USER: { - setState(3755); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(3756); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - setState(3767); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(3759); - match(COMMA); - setState(3763); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(3760); - identifier(0); - } - break; - case CURRENT_USER: { - setState(3761); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(3762); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - setState(3769); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - setState(3770); - match(TO); - setState(3774); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(3771); - identifier(0); - } - break; - case CURRENT_USER: { - setState(3772); - match(CURRENT_USER); - } - break; - case SESSION_USER: { - setState(3773); - match(SESSION_USER); - } - break; - default: - throw new NoViableAltException(this); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Refresh_materialized_view_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Refresh_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_refresh_materialized_view_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRefresh_materialized_view_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRefresh_materialized_view_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRefresh_materialized_view_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Refresh_materialized_view_stmtContext refresh_materialized_view_stmt() throws RecognitionException { - Refresh_materialized_view_stmtContext _localctx = new Refresh_materialized_view_stmtContext(_ctx, getState()); - enterRule(_localctx, 324, RULE_refresh_materialized_view_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3776); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Reindex_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode REINDEX() { - return getToken(PostgreSQLParser.REINDEX, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public TerminalNode DATABASE() { - return getToken(PostgreSQLParser.DATABASE, 0); - } - - public TerminalNode SYSTEM() { - return getToken(PostgreSQLParser.SYSTEM, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode VERBOSE() { - return getToken(PostgreSQLParser.VERBOSE, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Reindex_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_reindex_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterReindex_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitReindex_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitReindex_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Reindex_stmtContext reindex_stmt() throws RecognitionException { - Reindex_stmtContext _localctx = new Reindex_stmtContext(_ctx, getState()); - enterRule(_localctx, 326, RULE_reindex_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3778); - match(REINDEX); - setState(3782); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(3779); - match(OPEN_PAREN); - setState(3780); - match(VERBOSE); - setState(3781); - match(CLOSE_PAREN); - } - } - - setState(3784); - _la = _input.LA(1); - if (!(_la == DATABASE || _la == INDEX || _la == SCHEMA || _la == SYSTEM || _la == TABLE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(3785); - ((Reindex_stmtContext) _localctx).name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Release_savepoint_stmtContext extends ParserRuleContext { - public IdentifierContext savepoint_name; - - public TerminalNode RELEASE() { - return getToken(PostgreSQLParser.RELEASE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode SAVEPOINT() { - return getToken(PostgreSQLParser.SAVEPOINT, 0); - } - - public Release_savepoint_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_release_savepoint_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRelease_savepoint_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRelease_savepoint_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRelease_savepoint_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Release_savepoint_stmtContext release_savepoint_stmt() throws RecognitionException { - Release_savepoint_stmtContext _localctx = new Release_savepoint_stmtContext(_ctx, getState()); - enterRule(_localctx, 328, RULE_release_savepoint_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3787); - match(RELEASE); - setState(3789); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 399, _ctx)) { - case 1: { - setState(3788); - match(SAVEPOINT); - } - break; - } - setState(3791); - ((Release_savepoint_stmtContext) _localctx).savepoint_name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Reset_stmtContext extends ParserRuleContext { - public IdentifierContext configuration_parameter; - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Reset_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_reset_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterReset_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitReset_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitReset_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Reset_stmtContext reset_stmt() throws RecognitionException { - Reset_stmtContext _localctx = new Reset_stmtContext(_ctx, getState()); - enterRule(_localctx, 330, RULE_reset_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3793); - match(RESET); - setState(3796); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(3794); - ((Reset_stmtContext) _localctx).configuration_parameter = identifier(0); - } - break; - case ALL: { - setState(3795); - match(ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Revoke_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Revoke_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_revoke_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRevoke_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRevoke_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRevoke_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Revoke_stmtContext revoke_stmt() throws RecognitionException { - Revoke_stmtContext _localctx = new Revoke_stmtContext(_ctx, getState()); - enterRule(_localctx, 332, RULE_revoke_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3798); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Rollback_stmtContext extends ParserRuleContext { - public TerminalNode ROLLBACK() { - return getToken(PostgreSQLParser.ROLLBACK, 0); - } - - public TerminalNode WORK() { - return getToken(PostgreSQLParser.WORK, 0); - } - - public TerminalNode TRANSACTION() { - return getToken(PostgreSQLParser.TRANSACTION, 0); - } - - public Rollback_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_rollback_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRollback_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRollback_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRollback_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Rollback_stmtContext rollback_stmt() throws RecognitionException { - Rollback_stmtContext _localctx = new Rollback_stmtContext(_ctx, getState()); - enterRule(_localctx, 334, RULE_rollback_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3800); - match(ROLLBACK); - setState(3802); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TRANSACTION || _la == WORK) { - { - setState(3801); - _la = _input.LA(1); - if (!(_la == TRANSACTION || _la == WORK)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Rollback_prepared_stmtContext extends ParserRuleContext { - public Token transaction_id; - - public TerminalNode ROLLBACK() { - return getToken(PostgreSQLParser.ROLLBACK, 0); - } - - public TerminalNode PREPARED() { - return getToken(PostgreSQLParser.PREPARED, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public Rollback_prepared_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_rollback_prepared_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRollback_prepared_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRollback_prepared_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRollback_prepared_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Rollback_prepared_stmtContext rollback_prepared_stmt() throws RecognitionException { - Rollback_prepared_stmtContext _localctx = new Rollback_prepared_stmtContext(_ctx, getState()); - enterRule(_localctx, 336, RULE_rollback_prepared_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3804); - match(ROLLBACK); - setState(3805); - match(PREPARED); - setState(3806); - ((Rollback_prepared_stmtContext) _localctx).transaction_id = match(INTEGER_LITERAL); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Rollback_to_savepoint_stmtContext extends ParserRuleContext { - public IdentifierContext savepoint_name; - - public TerminalNode ROLLBACK() { - return getToken(PostgreSQLParser.ROLLBACK, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode SAVEPOINT() { - return getToken(PostgreSQLParser.SAVEPOINT, 0); - } - - public TerminalNode WORK() { - return getToken(PostgreSQLParser.WORK, 0); - } - - public TerminalNode TRANSACTION() { - return getToken(PostgreSQLParser.TRANSACTION, 0); - } - - public Rollback_to_savepoint_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_rollback_to_savepoint_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRollback_to_savepoint_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRollback_to_savepoint_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRollback_to_savepoint_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Rollback_to_savepoint_stmtContext rollback_to_savepoint_stmt() throws RecognitionException { - Rollback_to_savepoint_stmtContext _localctx = new Rollback_to_savepoint_stmtContext(_ctx, getState()); - enterRule(_localctx, 338, RULE_rollback_to_savepoint_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3808); - match(ROLLBACK); - setState(3810); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TRANSACTION || _la == WORK) { - { - setState(3809); - _la = _input.LA(1); - if (!(_la == TRANSACTION || _la == WORK)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(3812); - match(TO); - setState(3814); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 403, _ctx)) { - case 1: { - setState(3813); - match(SAVEPOINT); - } - break; - } - setState(3816); - ((Rollback_to_savepoint_stmtContext) _localctx).savepoint_name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Savepoint_stmtContext extends ParserRuleContext { - public IdentifierContext savepoint_name; - - public TerminalNode SAVEPOINT() { - return getToken(PostgreSQLParser.SAVEPOINT, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Savepoint_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_savepoint_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSavepoint_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSavepoint_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSavepoint_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Savepoint_stmtContext savepoint_stmt() throws RecognitionException { - Savepoint_stmtContext _localctx = new Savepoint_stmtContext(_ctx, getState()); - enterRule(_localctx, 340, RULE_savepoint_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(3818); - match(SAVEPOINT); - setState(3819); - ((Savepoint_stmtContext) _localctx).savepoint_name = identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Security_label_stmtContext extends ParserRuleContext { - public Name_Context provider; - public IdentifierContext object_name; - public IdentifierContext table_name; - public Column_nameContext column_name_; - public IdentifierContext aggregate_name; - public IdentifierContext function_name; - public Token large_object_oid; - public Token label; - - public TerminalNode SECURITY() { - return getToken(PostgreSQLParser.SECURITY, 0); - } - - public TerminalNode LABEL() { - return getToken(PostgreSQLParser.LABEL, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode IS() { - return getToken(PostgreSQLParser.IS, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public TerminalNode COLUMN() { - return getToken(PostgreSQLParser.COLUMN, 0); - } - - public TerminalNode DOT() { - return getToken(PostgreSQLParser.DOT, 0); - } - - public TerminalNode AGGREGATE() { - return getToken(PostgreSQLParser.AGGREGATE, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Aggregate_signatureContext aggregate_signature() { - return getRuleContext(Aggregate_signatureContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode DATABASE() { - return getToken(PostgreSQLParser.DATABASE, 0); - } - - public TerminalNode DOMAIN() { - return getToken(PostgreSQLParser.DOMAIN, 0); - } - - public TerminalNode EVENT() { - return getToken(PostgreSQLParser.EVENT, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode FUNCTION() { - return getToken(PostgreSQLParser.FUNCTION, 0); - } - - public Func_sigContext func_sig() { - return getRuleContext(Func_sigContext.class, 0); - } - - public TerminalNode LARGE() { - return getToken(PostgreSQLParser.LARGE, 0); - } - - public TerminalNode OBJECT() { - return getToken(PostgreSQLParser.OBJECT, 0); - } - - public TerminalNode MATERIALIZED() { - return getToken(PostgreSQLParser.MATERIALIZED, 0); - } - - public TerminalNode VIEW() { - return getToken(PostgreSQLParser.VIEW, 0); - } - - public TerminalNode LANGUAGE() { - return getToken(PostgreSQLParser.LANGUAGE, 0); - } - - public TerminalNode PUBLICATION() { - return getToken(PostgreSQLParser.PUBLICATION, 0); - } - - public TerminalNode ROLE() { - return getToken(PostgreSQLParser.ROLE, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public TerminalNode SEQUENCE() { - return getToken(PostgreSQLParser.SEQUENCE, 0); - } - - public TerminalNode SUBSCRIPTION() { - return getToken(PostgreSQLParser.SUBSCRIPTION, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public TerminalNode TYPE() { - return getToken(PostgreSQLParser.TYPE, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Column_nameContext column_name() { - return getRuleContext(Column_nameContext.class, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode PROCEDURAL() { - return getToken(PostgreSQLParser.PROCEDURAL, 0); - } - - public Security_label_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_security_label_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSecurity_label_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSecurity_label_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSecurity_label_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Security_label_stmtContext security_label_stmt() throws RecognitionException { - Security_label_stmtContext _localctx = new Security_label_stmtContext(_ctx, getState()); - enterRule(_localctx, 342, RULE_security_label_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(3821); - match(SECURITY); - setState(3822); - match(LABEL); - setState(3825); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FOR) { - { - setState(3823); - match(FOR); - setState(3824); - ((Security_label_stmtContext) _localctx).provider = name_(); - } - } - - setState(3827); - match(ON); - setState(3882); - _errHandler.sync(this); - switch (_input.LA(1)) { - case TABLE: { - setState(3828); - match(TABLE); - setState(3829); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case COLUMN: { - setState(3830); - match(COLUMN); - setState(3831); - ((Security_label_stmtContext) _localctx).table_name = identifier(0); - setState(3832); - match(DOT); - setState(3833); - ((Security_label_stmtContext) _localctx).column_name_ = column_name(); - } - break; - case AGGREGATE: { - setState(3835); - match(AGGREGATE); - setState(3836); - ((Security_label_stmtContext) _localctx).aggregate_name = identifier(0); - setState(3837); - match(OPEN_PAREN); - setState(3838); - aggregate_signature(); - setState(3839); - match(CLOSE_PAREN); - } - break; - case DATABASE: { - setState(3841); - match(DATABASE); - setState(3842); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case DOMAIN: { - setState(3843); - match(DOMAIN); - setState(3844); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case EVENT: { - setState(3845); - match(EVENT); - setState(3846); - match(TRIGGER); - setState(3847); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case FOREIGN: { - setState(3848); - match(FOREIGN); - setState(3849); - match(TABLE); - setState(3850); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case FUNCTION: { - setState(3851); - match(FUNCTION); - setState(3852); - ((Security_label_stmtContext) _localctx).function_name = identifier(0); - setState(3853); - func_sig(); - } - break; - case LARGE: { - setState(3855); - match(LARGE); - setState(3856); - match(OBJECT); - setState(3857); - ((Security_label_stmtContext) _localctx).large_object_oid = match(INTEGER_LITERAL); - } - break; - case MATERIALIZED: { - setState(3858); - match(MATERIALIZED); - setState(3859); - match(VIEW); - setState(3860); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case LANGUAGE: - case PROCEDURAL: { - setState(3862); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == PROCEDURAL) { - { - setState(3861); - match(PROCEDURAL); - } - } - - setState(3864); - match(LANGUAGE); - setState(3865); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case PUBLICATION: { - setState(3866); - match(PUBLICATION); - setState(3867); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case ROLE: { - setState(3868); - match(ROLE); - setState(3869); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case SCHEMA: { - setState(3870); - match(SCHEMA); - setState(3871); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case SEQUENCE: { - setState(3872); - match(SEQUENCE); - setState(3873); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case SUBSCRIPTION: { - setState(3874); - match(SUBSCRIPTION); - setState(3875); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case TABLESPACE: { - setState(3876); - match(TABLESPACE); - setState(3877); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case TYPE: { - setState(3878); - match(TYPE); - setState(3879); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - case VIEW: { - setState(3880); - match(VIEW); - setState(3881); - ((Security_label_stmtContext) _localctx).object_name = identifier(0); - } - break; - default: - throw new NoViableAltException(this); - } - setState(3884); - match(IS); - setState(3885); - ((Security_label_stmtContext) _localctx).label = match(SINGLEQ_STRING_LITERAL); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Select_stmtContext extends ParserRuleContext { - public With_clauseContext with_clause() { - return getRuleContext(With_clauseContext.class, 0); - } - - public Where_clauseContext where_clause() { - return getRuleContext(Where_clauseContext.class, 0); - } - - public Group_by_clauseContext group_by_clause() { - return getRuleContext(Group_by_clauseContext.class, 0); - } - - public Having_clauseContext having_clause() { - return getRuleContext(Having_clauseContext.class, 0); - } - - public Window_clauseContext window_clause() { - return getRuleContext(Window_clauseContext.class, 0); - } - - public List combine_clause() { - return getRuleContexts(Combine_clauseContext.class); - } - - public Combine_clauseContext combine_clause(int i) { - return getRuleContext(Combine_clauseContext.class, i); - } - - public Order_by_clauseContext order_by_clause() { - return getRuleContext(Order_by_clauseContext.class, 0); - } - - public Limit_clauseContext limit_clause() { - return getRuleContext(Limit_clauseContext.class, 0); - } - - public Offset_clauseContext offset_clause() { - return getRuleContext(Offset_clauseContext.class, 0); - } - - public Fetch_clauseContext fetch_clause() { - return getRuleContext(Fetch_clauseContext.class, 0); - } - - public For_clauseContext for_clause() { - return getRuleContext(For_clauseContext.class, 0); - } - - public TerminalNode SELECT() { - return getToken(PostgreSQLParser.SELECT, 0); - } - - public Selector_clauseContext selector_clause() { - return getRuleContext(Selector_clauseContext.class, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public From_clauseContext from_clause() { - return getRuleContext(From_clauseContext.class, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public Select_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_select_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSelect_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSelect_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSelect_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Select_stmtContext select_stmt() throws RecognitionException { - Select_stmtContext _localctx = new Select_stmtContext(_ctx, getState()); - enterRule(_localctx, 344, RULE_select_stmt); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(3888); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(3887); - with_clause(); - } - } - - setState(3916); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SELECT: { - { - setState(3890); - match(SELECT); - setState(3891); - selector_clause(); - setState(3893); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 408, _ctx)) { - case 1: { - setState(3892); - from_clause(); - } - break; - } - } - } - break; - case TABLE: { - { - setState(3895); - match(TABLE); - setState(3897); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(3896); - match(ONLY); - } - } - - setState(3899); - table_name_(); - setState(3901); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 410, _ctx)) { - case 1: { - setState(3900); - match(STAR); - } - break; - } - } - } - break; - case OPEN_PAREN: { - { - setState(3904); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(3903); - match(OPEN_PAREN); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(3906); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 411, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - setState(3908); - select_stmt(); - setState(3910); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(3909); - match(CLOSE_PAREN); - } - } - setState(3912); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == CLOSE_PAREN); - setState(3914); - combine_clause(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(3919); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 414, _ctx)) { - case 1: { - setState(3918); - where_clause(); - } - break; - } - setState(3922); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 415, _ctx)) { - case 1: { - setState(3921); - group_by_clause(); - } - break; - } - setState(3925); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 416, _ctx)) { - case 1: { - setState(3924); - having_clause(); - } - break; - } - setState(3928); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 417, _ctx)) { - case 1: { - setState(3927); - window_clause(); - } - break; - } - setState(3931); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 418, _ctx)) { - case 1: { - setState(3930); - combine_clause(); - } - break; - } - setState(3934); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 419, _ctx)) { - case 1: { - setState(3933); - order_by_clause(); - } - break; - } - setState(3937); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 420, _ctx)) { - case 1: { - setState(3936); - limit_clause(); - } - break; - } - setState(3940); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 421, _ctx)) { - case 1: { - setState(3939); - offset_clause(); - } - break; - } - setState(3943); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 422, _ctx)) { - case 1: { - setState(3942); - fetch_clause(); - } - break; - } - setState(3946); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 423, _ctx)) { - case 1: { - setState(3945); - for_clause(); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Select_into_stmtContext extends ParserRuleContext { - public Table_name_Context new_table; - - public With_clauseContext with_clause() { - return getRuleContext(With_clauseContext.class, 0); - } - - public Where_clauseContext where_clause() { - return getRuleContext(Where_clauseContext.class, 0); - } - - public Group_by_clauseContext group_by_clause() { - return getRuleContext(Group_by_clauseContext.class, 0); - } - - public Having_clauseContext having_clause() { - return getRuleContext(Having_clauseContext.class, 0); - } - - public Window_clauseContext window_clause() { - return getRuleContext(Window_clauseContext.class, 0); - } - - public List combine_clause() { - return getRuleContexts(Combine_clauseContext.class); - } - - public Combine_clauseContext combine_clause(int i) { - return getRuleContext(Combine_clauseContext.class, i); - } - - public Order_by_clauseContext order_by_clause() { - return getRuleContext(Order_by_clauseContext.class, 0); - } - - public Limit_clauseContext limit_clause() { - return getRuleContext(Limit_clauseContext.class, 0); - } - - public Offset_clauseContext offset_clause() { - return getRuleContext(Offset_clauseContext.class, 0); - } - - public Fetch_clauseContext fetch_clause() { - return getRuleContext(Fetch_clauseContext.class, 0); - } - - public For_clauseContext for_clause() { - return getRuleContext(For_clauseContext.class, 0); - } - - public TerminalNode SELECT() { - return getToken(PostgreSQLParser.SELECT, 0); - } - - public Selector_clauseContext selector_clause() { - return getRuleContext(Selector_clauseContext.class, 0); - } - - public TerminalNode INTO() { - return getToken(PostgreSQLParser.INTO, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public From_clauseContext from_clause() { - return getRuleContext(From_clauseContext.class, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode TEMPORARY() { - return getToken(PostgreSQLParser.TEMPORARY, 0); - } - - public TerminalNode TEMP() { - return getToken(PostgreSQLParser.TEMP, 0); - } - - public TerminalNode UNLOGGED() { - return getToken(PostgreSQLParser.UNLOGGED, 0); - } - - public Select_into_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_select_into_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSelect_into_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSelect_into_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSelect_into_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Select_into_stmtContext select_into_stmt() throws RecognitionException { - Select_into_stmtContext _localctx = new Select_into_stmtContext(_ctx, getState()); - enterRule(_localctx, 346, RULE_select_into_stmt); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(3949); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(3948); - with_clause(); - } - } - - setState(3985); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SELECT: { - { - setState(3951); - match(SELECT); - setState(3952); - selector_clause(); - setState(3953); - match(INTO); - setState(3955); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 425, _ctx)) { - case 1: { - setState(3954); - _la = _input.LA(1); - if (!(_la == TEMP || _la == TEMPORARY || _la == UNLOGGED)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(3958); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TABLE) { - { - setState(3957); - match(TABLE); - } - } - - setState(3960); - ((Select_into_stmtContext) _localctx).new_table = table_name_(); - setState(3962); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FROM) { - { - setState(3961); - from_clause(); - } - } - - } - } - break; - case TABLE: { - { - setState(3964); - match(TABLE); - setState(3966); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(3965); - match(ONLY); - } - } - - setState(3968); - table_name_(); - setState(3970); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(3969); - match(STAR); - } - } - - } - } - break; - case OPEN_PAREN: { - { - setState(3973); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(3972); - match(OPEN_PAREN); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(3975); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 430, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - setState(3977); - select_stmt(); - setState(3979); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(3978); - match(CLOSE_PAREN); - } - } - setState(3981); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == CLOSE_PAREN); - setState(3983); - combine_clause(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(3988); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WHERE) { - { - setState(3987); - where_clause(); - } - } - - setState(3991); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == GROUP) { - { - setState(3990); - group_by_clause(); - } - } - - setState(3994); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == HAVING) { - { - setState(3993); - having_clause(); - } - } - - setState(3997); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WINDOW) { - { - setState(3996); - window_clause(); - } - } - - setState(4000); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == EXCEPT || _la == INTERSECT || _la == UNION) { - { - setState(3999); - combine_clause(); - } - } - - setState(4003); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ORDER) { - { - setState(4002); - order_by_clause(); - } - } - - setState(4006); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LIMIT) { - { - setState(4005); - limit_clause(); - } - } - - setState(4009); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OFFSET) { - { - setState(4008); - offset_clause(); - } - } - - setState(4012); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FETCH) { - { - setState(4011); - fetch_clause(); - } - } - - setState(4015); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FOR) { - { - setState(4014); - for_clause(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class With_clauseContext extends ParserRuleContext { - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public List with_expr() { - return getRuleContexts(With_exprContext.class); - } - - public With_exprContext with_expr(int i) { - return getRuleContext(With_exprContext.class, i); - } - - public TerminalNode RECURSIVE() { - return getToken(PostgreSQLParser.RECURSIVE, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public With_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_with_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWith_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitWith_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWith_clause(this); - else return visitor.visitChildren(this); - } - } - - public final With_clauseContext with_clause() throws RecognitionException { - With_clauseContext _localctx = new With_clauseContext(_ctx, getState()); - enterRule(_localctx, 348, RULE_with_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4017); - match(WITH); - setState(4019); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 443, _ctx)) { - case 1: { - setState(4018); - match(RECURSIVE); - } - break; - } - setState(4021); - with_expr(); - setState(4026); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4022); - match(COMMA); - setState(4023); - with_expr(); - } - } - setState(4028); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class With_exprContext extends ParserRuleContext { - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Insert_stmtContext insert_stmt() { - return getRuleContext(Insert_stmtContext.class, 0); - } - - public Delete_stmtContext delete_stmt() { - return getRuleContext(Delete_stmtContext.class, 0); - } - - public Update_stmtContext update_stmt() { - return getRuleContext(Update_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public With_exprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_with_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWith_expr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitWith_expr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWith_expr(this); - else return visitor.visitChildren(this); - } - } - - public final With_exprContext with_expr() throws RecognitionException { - With_exprContext _localctx = new With_exprContext(_ctx, getState()); - enterRule(_localctx, 350, RULE_with_expr); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4029); - table_name_(); - setState(4034); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(4030); - match(OPEN_PAREN); - setState(4031); - name_list(); - setState(4032); - match(CLOSE_PAREN); - } - } - - setState(4036); - match(AS); - setState(4037); - match(OPEN_PAREN); - setState(4043); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 446, _ctx)) { - case 1: { - setState(4038); - select_stmt(); - } - break; - case 2: { - setState(4039); - insert_stmt(); - } - break; - case 3: { - setState(4040); - delete_stmt(); - } - break; - case 4: { - setState(4041); - update_stmt(); - } - break; - case 5: { - setState(4042); - values_stmt(); - } - break; - } - setState(4045); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Set_stmtContext extends ParserRuleContext { - public IdentifierContext configuration_parameter; - public Param_valueContext value; - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode TO() { - return getToken(PostgreSQLParser.TO, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public Param_valueContext param_value() { - return getRuleContext(Param_valueContext.class, 0); - } - - public TerminalNode SESSION() { - return getToken(PostgreSQLParser.SESSION, 0); - } - - public List LOCAL() { - return getTokens(PostgreSQLParser.LOCAL); - } - - public TerminalNode LOCAL(int i) { - return getToken(PostgreSQLParser.LOCAL, i); - } - - public TerminalNode TIME() { - return getToken(PostgreSQLParser.TIME, 0); - } - - public TerminalNode ZONE() { - return getToken(PostgreSQLParser.ZONE, 0); - } - - public TimezoneContext timezone() { - return getRuleContext(TimezoneContext.class, 0); - } - - public Set_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_set_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterSet_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitSet_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSet_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Set_stmtContext set_stmt() throws RecognitionException { - Set_stmtContext _localctx = new Set_stmtContext(_ctx, getState()); - enterRule(_localctx, 352, RULE_set_stmt); - int _la; - try { - setState(4068); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 451, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4047); - match(SET); - setState(4049); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 447, _ctx)) { - case 1: { - setState(4048); - _la = _input.LA(1); - if (!(_la == LOCAL || _la == SESSION)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(4051); - ((Set_stmtContext) _localctx).configuration_parameter = identifier(0); - setState(4052); - _la = _input.LA(1); - if (!(_la == TO || _la == EQUAL)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4055); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FALSE: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case ON: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case YES: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case NUMERIC_LITERAL: - case INTEGER_LITERAL: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(4053); - ((Set_stmtContext) _localctx).value = param_value(); - } - break; - case DEFAULT: { - setState(4054); - match(DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4057); - match(SET); - setState(4059); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LOCAL || _la == SESSION) { - { - setState(4058); - _la = _input.LA(1); - if (!(_la == LOCAL || _la == SESSION)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(4061); - match(TIME); - setState(4062); - match(ZONE); - setState(4066); - _errHandler.sync(this); - switch (_input.LA(1)) { - case NUMERIC_LITERAL: - case INTEGER_LITERAL: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: { - setState(4063); - timezone(); - } - break; - case LOCAL: { - setState(4064); - match(LOCAL); - } - break; - case DEFAULT: { - setState(4065); - match(DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Set_constraints_stmtContext extends ParserRuleContext { - public Identifier_listContext constraints; - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode CONSTRAINTS() { - return getToken(PostgreSQLParser.CONSTRAINTS, 0); - } - - public TerminalNode DEFERRED() { - return getToken(PostgreSQLParser.DEFERRED, 0); - } - - public TerminalNode IMMEDIATE() { - return getToken(PostgreSQLParser.IMMEDIATE, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public Set_constraints_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_set_constraints_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSet_constraints_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSet_constraints_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSet_constraints_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Set_constraints_stmtContext set_constraints_stmt() throws RecognitionException { - Set_constraints_stmtContext _localctx = new Set_constraints_stmtContext(_ctx, getState()); - enterRule(_localctx, 354, RULE_set_constraints_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4070); - match(SET); - setState(4071); - match(CONSTRAINTS); - setState(4074); - _errHandler.sync(this); - switch (_input.LA(1)) { - case ALL: { - setState(4072); - match(ALL); - } - break; - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(4073); - ((Set_constraints_stmtContext) _localctx).constraints = identifier_list(); - } - break; - default: - throw new NoViableAltException(this); - } - setState(4076); - _la = _input.LA(1); - if (!(_la == DEFERRED || _la == IMMEDIATE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Set_role_stmtContext extends ParserRuleContext { - public Role_nameContext role_name_; - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode ROLE() { - return getToken(PostgreSQLParser.ROLE, 0); - } - - public TerminalNode NONE() { - return getToken(PostgreSQLParser.NONE, 0); - } - - public Role_nameContext role_name() { - return getRuleContext(Role_nameContext.class, 0); - } - - public TerminalNode SESSION() { - return getToken(PostgreSQLParser.SESSION, 0); - } - - public TerminalNode LOCAL() { - return getToken(PostgreSQLParser.LOCAL, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public Set_role_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_set_role_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSet_role_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSet_role_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSet_role_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Set_role_stmtContext set_role_stmt() throws RecognitionException { - Set_role_stmtContext _localctx = new Set_role_stmtContext(_ctx, getState()); - enterRule(_localctx, 356, RULE_set_role_stmt); - int _la; - try { - setState(4089); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SET: - enterOuterAlt(_localctx, 1); - { - setState(4078); - match(SET); - setState(4080); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LOCAL || _la == SESSION) { - { - setState(4079); - _la = _input.LA(1); - if (!(_la == LOCAL || _la == SESSION)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(4082); - match(ROLE); - setState(4085); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 454, _ctx)) { - case 1: { - setState(4083); - ((Set_role_stmtContext) _localctx).role_name_ = role_name(); - } - break; - case 2: { - setState(4084); - match(NONE); - } - break; - } - } - break; - case RESET: - enterOuterAlt(_localctx, 2); - { - setState(4087); - match(RESET); - setState(4088); - match(ROLE); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Set_session_authorization_stmtContext extends ParserRuleContext { - public Todo_implementContext todo_implement() { - return getRuleContext(Todo_implementContext.class, 0); - } - - public Set_session_authorization_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_set_session_authorization_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSet_session_authorization_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSet_session_authorization_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSet_session_authorization_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Set_session_authorization_stmtContext set_session_authorization_stmt() throws RecognitionException { - Set_session_authorization_stmtContext _localctx = new Set_session_authorization_stmtContext(_ctx, getState()); - enterRule(_localctx, 358, RULE_set_session_authorization_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(4091); - todo_implement(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Transaction_modeContext extends ParserRuleContext { - public TerminalNode ISOLATION() { - return getToken(PostgreSQLParser.ISOLATION, 0); - } - - public TerminalNode LEVEL() { - return getToken(PostgreSQLParser.LEVEL, 0); - } - - public TerminalNode SERIALIZABLE() { - return getToken(PostgreSQLParser.SERIALIZABLE, 0); - } - - public TerminalNode REPEATABLE() { - return getToken(PostgreSQLParser.REPEATABLE, 0); - } - - public TerminalNode READ() { - return getToken(PostgreSQLParser.READ, 0); - } - - public TerminalNode COMMITTED() { - return getToken(PostgreSQLParser.COMMITTED, 0); - } - - public TerminalNode UNCOMMITTED() { - return getToken(PostgreSQLParser.UNCOMMITTED, 0); - } - - public TerminalNode WRITE() { - return getToken(PostgreSQLParser.WRITE, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode DEFERRABLE() { - return getToken(PostgreSQLParser.DEFERRABLE, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public Transaction_modeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_transaction_mode; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTransaction_mode(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTransaction_mode(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTransaction_mode(this); - else return visitor.visitChildren(this); - } - } - - public final Transaction_modeContext transaction_mode() throws RecognitionException { - Transaction_modeContext _localctx = new Transaction_modeContext(_ctx, getState()); - enterRule(_localctx, 360, RULE_transaction_mode); - int _la; - try { - setState(4112); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 458, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4093); - match(ISOLATION); - setState(4094); - match(LEVEL); - setState(4102); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 456, _ctx)) { - case 1: { - setState(4095); - match(SERIALIZABLE); - } - break; - case 2: { - setState(4096); - match(REPEATABLE); - setState(4097); - match(READ); - } - break; - case 3: { - setState(4098); - match(READ); - setState(4099); - match(COMMITTED); - } - break; - case 4: { - setState(4100); - match(READ); - setState(4101); - match(UNCOMMITTED); - } - break; - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4104); - match(READ); - setState(4105); - match(WRITE); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(4106); - match(READ); - setState(4107); - match(ONLY); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(4109); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(4108); - match(NOT); - } - } - - setState(4111); - match(DEFERRABLE); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Transaction_mode_listContext extends ParserRuleContext { - public List transaction_mode() { - return getRuleContexts(Transaction_modeContext.class); - } - - public Transaction_modeContext transaction_mode(int i) { - return getRuleContext(Transaction_modeContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Transaction_mode_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_transaction_mode_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTransaction_mode_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTransaction_mode_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTransaction_mode_list(this); - else return visitor.visitChildren(this); - } - } - - public final Transaction_mode_listContext transaction_mode_list() throws RecognitionException { - Transaction_mode_listContext _localctx = new Transaction_mode_listContext(_ctx, getState()); - enterRule(_localctx, 362, RULE_transaction_mode_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4114); - transaction_mode(); - setState(4119); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4115); - match(COMMA); - setState(4116); - transaction_mode(); - } - } - setState(4121); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Set_transaction_stmtContext extends ParserRuleContext { - public Token snapshot_id; - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode TRANSACTION() { - return getToken(PostgreSQLParser.TRANSACTION, 0); - } - - public Transaction_mode_listContext transaction_mode_list() { - return getRuleContext(Transaction_mode_listContext.class, 0); - } - - public TerminalNode SNAPSHOT() { - return getToken(PostgreSQLParser.SNAPSHOT, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode SESSION() { - return getToken(PostgreSQLParser.SESSION, 0); - } - - public TerminalNode CHARACTERISTICS() { - return getToken(PostgreSQLParser.CHARACTERISTICS, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public Set_transaction_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_set_transaction_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSet_transaction_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSet_transaction_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSet_transaction_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Set_transaction_stmtContext set_transaction_stmt() throws RecognitionException { - Set_transaction_stmtContext _localctx = new Set_transaction_stmtContext(_ctx, getState()); - enterRule(_localctx, 364, RULE_set_transaction_stmt); - try { - setState(4135); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 460, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4122); - match(SET); - setState(4123); - match(TRANSACTION); - setState(4124); - transaction_mode_list(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4125); - match(SET); - setState(4126); - match(TRANSACTION); - setState(4127); - match(SNAPSHOT); - setState(4128); - ((Set_transaction_stmtContext) _localctx).snapshot_id = match(SINGLEQ_STRING_LITERAL); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(4129); - match(SET); - setState(4130); - match(SESSION); - setState(4131); - match(CHARACTERISTICS); - setState(4132); - match(AS); - setState(4133); - match(TRANSACTION); - setState(4134); - transaction_mode_list(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Show_stmtContext extends ParserRuleContext { - public IdentifierContext name; - - public TerminalNode SHOW() { - return getToken(PostgreSQLParser.SHOW, 0); - } - - public TerminalNode TIME() { - return getToken(PostgreSQLParser.TIME, 0); - } - - public TerminalNode ZONE() { - return getToken(PostgreSQLParser.ZONE, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Show_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_show_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterShow_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitShow_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitShow_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Show_stmtContext show_stmt() throws RecognitionException { - Show_stmtContext _localctx = new Show_stmtContext(_ctx, getState()); - enterRule(_localctx, 366, RULE_show_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(4137); - match(SHOW); - setState(4142); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 461, _ctx)) { - case 1: { - setState(4138); - ((Show_stmtContext) _localctx).name = identifier(0); - } - break; - case 2: { - setState(4139); - match(TIME); - setState(4140); - match(ZONE); - } - break; - case 3: { - setState(4141); - match(ALL); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Truncate_stmtContext extends ParserRuleContext { - public TerminalNode TRUNCATE() { - return getToken(PostgreSQLParser.TRUNCATE, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public TerminalNode TABLE() { - return getToken(PostgreSQLParser.TABLE, 0); - } - - public List ONLY() { - return getTokens(PostgreSQLParser.ONLY); - } - - public TerminalNode ONLY(int i) { - return getToken(PostgreSQLParser.ONLY, i); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public TerminalNode COMMA() { - return getToken(PostgreSQLParser.COMMA, 0); - } - - public Identifier_listContext identifier_list() { - return getRuleContext(Identifier_listContext.class, 0); - } - - public TerminalNode IDENTITY() { - return getToken(PostgreSQLParser.IDENTITY, 0); - } - - public TerminalNode RESTART() { - return getToken(PostgreSQLParser.RESTART, 0); - } - - public TerminalNode CONTINUE() { - return getToken(PostgreSQLParser.CONTINUE, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public Truncate_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_truncate_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTruncate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTruncate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTruncate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Truncate_stmtContext truncate_stmt() throws RecognitionException { - Truncate_stmtContext _localctx = new Truncate_stmtContext(_ctx, getState()); - enterRule(_localctx, 368, RULE_truncate_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4144); - match(TRUNCATE); - setState(4146); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == TABLE) { - { - setState(4145); - match(TABLE); - } - } - - setState(4149); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(4148); - match(ONLY); - } - } - - setState(4151); - table_name_(); - setState(4153); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(4152); - match(STAR); - } - } - - setState(4160); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(4155); - match(COMMA); - setState(4157); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(4156); - match(ONLY); - } - } - - setState(4159); - identifier_list(); - } - } - - setState(4164); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CONTINUE || _la == RESTART) { - { - setState(4162); - _la = _input.LA(1); - if (!(_la == CONTINUE || _la == RESTART)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4163); - match(IDENTITY); - } - } - - setState(4167); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CASCADE || _la == RESTRICT) { - { - setState(4166); - _la = _input.LA(1); - if (!(_la == CASCADE || _la == RESTRICT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Unlisten_stmtContext extends ParserRuleContext { - public IdentifierContext channel; - - public TerminalNode UNLISTEN() { - return getToken(PostgreSQLParser.UNLISTEN, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Unlisten_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_unlisten_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterUnlisten_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitUnlisten_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitUnlisten_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { - Unlisten_stmtContext _localctx = new Unlisten_stmtContext(_ctx, getState()); - enterRule(_localctx, 370, RULE_unlisten_stmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(4169); - match(UNLISTEN); - setState(4172); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(4170); - ((Unlisten_stmtContext) _localctx).channel = identifier(0); - } - break; - case STAR: { - setState(4171); - match(STAR); - } - break; - default: - throw new NoViableAltException(this); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Update_stmtContext extends ParserRuleContext { - public IdentifierContext alias_; - public IdentifierContext cursor_name_; - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public Updater_clauseContext updater_clause() { - return getRuleContext(Updater_clauseContext.class, 0); - } - - public With_clauseContext with_clause() { - return getRuleContext(With_clauseContext.class, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public From_clauseContext from_clause() { - return getRuleContext(From_clauseContext.class, 0); - } - - public Where_clauseContext where_clause() { - return getRuleContext(Where_clauseContext.class, 0); - } - - public Returning_clauseContext returning_clause() { - return getRuleContext(Returning_clauseContext.class, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public TerminalNode CURRENT() { - return getToken(PostgreSQLParser.CURRENT, 0); - } - - public TerminalNode OF() { - return getToken(PostgreSQLParser.OF, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public Update_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_update_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterUpdate_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitUpdate_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitUpdate_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Update_stmtContext update_stmt() throws RecognitionException { - Update_stmtContext _localctx = new Update_stmtContext(_ctx, getState()); - enterRule(_localctx, 372, RULE_update_stmt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4175); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(4174); - with_clause(); - } - } - - setState(4177); - match(UPDATE); - setState(4179); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(4178); - match(ONLY); - } - } - - setState(4181); - table_name_(); - setState(4183); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == STAR) { - { - setState(4182); - match(STAR); - } - } - - setState(4189); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 474, _ctx)) { - case 1: { - setState(4186); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(4185); - match(AS); - } - } - - setState(4188); - ((Update_stmtContext) _localctx).alias_ = identifier(0); - } - break; - } - setState(4191); - match(SET); - setState(4192); - updater_clause(); - setState(4194); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FROM) { - { - setState(4193); - from_clause(); - } - } - - setState(4201); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 476, _ctx)) { - case 1: { - setState(4196); - where_clause(); - } - break; - case 2: { - { - setState(4197); - match(WHERE); - setState(4198); - match(CURRENT); - setState(4199); - match(OF); - setState(4200); - ((Update_stmtContext) _localctx).cursor_name_ = identifier(0); - } - } - break; - } - setState(4204); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == RETURNING) { - { - setState(4203); - returning_clause(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Vacuum_optContext extends ParserRuleContext { - public TerminalNode FULL() { - return getToken(PostgreSQLParser.FULL, 0); - } - - public TerminalNode FREEZE() { - return getToken(PostgreSQLParser.FREEZE, 0); - } - - public TerminalNode VERBOSE() { - return getToken(PostgreSQLParser.VERBOSE, 0); - } - - public TerminalNode ANALYZE() { - return getToken(PostgreSQLParser.ANALYZE, 0); - } - - public TerminalNode DISABLE_PAGE_SKIPPING() { - return getToken(PostgreSQLParser.DISABLE_PAGE_SKIPPING, 0); - } - - public Vacuum_optContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_vacuum_opt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterVacuum_opt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitVacuum_opt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitVacuum_opt(this); - else return visitor.visitChildren(this); - } - } - - public final Vacuum_optContext vacuum_opt() throws RecognitionException { - Vacuum_optContext _localctx = new Vacuum_optContext(_ctx, getState()); - enterRule(_localctx, 374, RULE_vacuum_opt); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4206); - _la = _input.LA(1); - if (!(_la == ANALYZE || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DISABLE_PAGE_SKIPPING - 180)) | (1L << (FREEZE - 180)) | (1L << (FULL - 180)))) != 0) || _la == VERBOSE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Vacuum_opt_listContext extends ParserRuleContext { - public List vacuum_opt() { - return getRuleContexts(Vacuum_optContext.class); - } - - public Vacuum_optContext vacuum_opt(int i) { - return getRuleContext(Vacuum_optContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Vacuum_opt_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_vacuum_opt_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterVacuum_opt_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitVacuum_opt_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitVacuum_opt_list(this); - else return visitor.visitChildren(this); - } - } - - public final Vacuum_opt_listContext vacuum_opt_list() throws RecognitionException { - Vacuum_opt_listContext _localctx = new Vacuum_opt_listContext(_ctx, getState()); - enterRule(_localctx, 376, RULE_vacuum_opt_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4208); - vacuum_opt(); - setState(4213); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4209); - match(COMMA); - setState(4210); - vacuum_opt(); - } - } - setState(4215); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Vacuum_stmtContext extends ParserRuleContext { - public Table_name_Context table_name; - - public TerminalNode VACUUM() { - return getToken(PostgreSQLParser.VACUUM, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public Vacuum_opt_listContext vacuum_opt_list() { - return getRuleContext(Vacuum_opt_listContext.class, 0); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public Column_listContext column_list() { - return getRuleContext(Column_listContext.class, 0); - } - - public TerminalNode FULL() { - return getToken(PostgreSQLParser.FULL, 0); - } - - public TerminalNode FREEZE() { - return getToken(PostgreSQLParser.FREEZE, 0); - } - - public TerminalNode VERBOSE() { - return getToken(PostgreSQLParser.VERBOSE, 0); - } - - public TerminalNode ANALYZE() { - return getToken(PostgreSQLParser.ANALYZE, 0); - } - - public Vacuum_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_vacuum_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterVacuum_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitVacuum_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitVacuum_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { - Vacuum_stmtContext _localctx = new Vacuum_stmtContext(_ctx, getState()); - enterRule(_localctx, 378, RULE_vacuum_stmt); - int _la; - try { - setState(4263); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 490, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4216); - match(VACUUM); - setState(4221); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(4217); - match(OPEN_PAREN); - setState(4218); - vacuum_opt_list(); - setState(4219); - match(CLOSE_PAREN); - } - } - - { - setState(4223); - ((Vacuum_stmtContext) _localctx).table_name = table_name_(); - setState(4228); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(4224); - match(OPEN_PAREN); - setState(4225); - column_list(); - setState(4226); - match(CLOSE_PAREN); - } - } - - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4230); - match(VACUUM); - setState(4232); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FULL) { - { - setState(4231); - match(FULL); - } - } - - setState(4235); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FREEZE) { - { - setState(4234); - match(FREEZE); - } - } - - setState(4238); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == VERBOSE) { - { - setState(4237); - match(VERBOSE); - } - } - - setState(4241); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(4240); - ((Vacuum_stmtContext) _localctx).table_name = table_name_(); - } - } - - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(4243); - match(VACUUM); - setState(4245); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FULL) { - { - setState(4244); - match(FULL); - } - } - - setState(4248); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FREEZE) { - { - setState(4247); - match(FREEZE); - } - } - - setState(4251); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == VERBOSE) { - { - setState(4250); - match(VERBOSE); - } - } - - setState(4253); - match(ANALYZE); - setState(4261); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(4254); - ((Vacuum_stmtContext) _localctx).table_name = table_name_(); - setState(4259); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(4255); - match(OPEN_PAREN); - setState(4256); - column_list(); - setState(4257); - match(CLOSE_PAREN); - } - } - - } - } - - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Values_stmtContext extends ParserRuleContext { - public With_clauseContext with_clause() { - return getRuleContext(With_clauseContext.class, 0); - } - - public Order_by_clauseContext order_by_clause() { - return getRuleContext(Order_by_clauseContext.class, 0); - } - - public List combine_clause() { - return getRuleContexts(Combine_clauseContext.class); - } - - public Combine_clauseContext combine_clause(int i) { - return getRuleContext(Combine_clauseContext.class, i); - } - - public Limit_clauseContext limit_clause() { - return getRuleContext(Limit_clauseContext.class, 0); - } - - public Offset_clauseContext offset_clause() { - return getRuleContext(Offset_clauseContext.class, 0); - } - - public Fetch_clauseContext fetch_clause() { - return getRuleContext(Fetch_clauseContext.class, 0); - } - - public TerminalNode VALUES() { - return getToken(PostgreSQLParser.VALUES, 0); - } - - public Expr_list_listContext expr_list_list() { - return getRuleContext(Expr_list_listContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public Values_stmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_values_stmt; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterValues_stmt(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitValues_stmt(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitValues_stmt(this); - else return visitor.visitChildren(this); - } - } - - public final Values_stmtContext values_stmt() throws RecognitionException { - Values_stmtContext _localctx = new Values_stmtContext(_ctx, getState()); - enterRule(_localctx, 380, RULE_values_stmt); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4266); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(4265); - with_clause(); - } - } - - setState(4283); - _errHandler.sync(this); - switch (_input.LA(1)) { - case VALUES: { - { - setState(4268); - match(VALUES); - setState(4269); - expr_list_list(); - } - } - break; - case OPEN_PAREN: { - { - setState(4271); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(4270); - match(OPEN_PAREN); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(4273); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 492, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - setState(4275); - values_stmt(); - setState(4277); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(4276); - match(CLOSE_PAREN); - } - } - setState(4279); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == CLOSE_PAREN); - setState(4281); - combine_clause(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(4286); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 495, _ctx)) { - case 1: { - setState(4285); - order_by_clause(); - } - break; - } - setState(4289); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 496, _ctx)) { - case 1: { - setState(4288); - combine_clause(); - } - break; - } - setState(4292); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 497, _ctx)) { - case 1: { - setState(4291); - limit_clause(); - } - break; - } - setState(4295); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 498, _ctx)) { - case 1: { - setState(4294); - offset_clause(); - } - break; - } - setState(4298); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 499, _ctx)) { - case 1: { - setState(4297); - fetch_clause(); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Selector_clauseContext extends ParserRuleContext { - public Column_listContext column_list() { - return getRuleContext(Column_listContext.class, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode DISTINCT() { - return getToken(PostgreSQLParser.DISTINCT, 0); - } - - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public Expr_listContext expr_list() { - return getRuleContext(Expr_listContext.class, 0); - } - - public Selector_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_selector_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterSelector_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitSelector_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitSelector_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Selector_clauseContext selector_clause() throws RecognitionException { - Selector_clauseContext _localctx = new Selector_clauseContext(_ctx, getState()); - enterRule(_localctx, 382, RULE_selector_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4306); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 501, _ctx)) { - case 1: { - setState(4300); - match(ALL); - } - break; - case 2: { - { - setState(4301); - match(DISTINCT); - setState(4304); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ON) { - { - setState(4302); - match(ON); - setState(4303); - expr_list(); - } - } - - } - } - break; - } - setState(4308); - column_list(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class From_clauseContext extends ParserRuleContext { - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public List from_item() { - return getRuleContexts(From_itemContext.class); - } - - public From_itemContext from_item(int i) { - return getRuleContext(From_itemContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public From_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_from_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFrom_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFrom_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFrom_clause(this); - else return visitor.visitChildren(this); - } - } - - public final From_clauseContext from_clause() throws RecognitionException { - From_clauseContext _localctx = new From_clauseContext(_ctx, getState()); - enterRule(_localctx, 384, RULE_from_clause); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4310); - match(FROM); - setState(4311); - from_item(0); - setState(4316); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 502, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4312); - match(COMMA); - setState(4313); - from_item(0); - } - } - } - setState(4318); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 502, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Where_clauseContext extends ParserRuleContext { - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public PredicateContext predicate() { - return getRuleContext(PredicateContext.class, 0); - } - - public Where_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_where_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWhere_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitWhere_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWhere_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Where_clauseContext where_clause() throws RecognitionException { - Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState()); - enterRule(_localctx, 386, RULE_where_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(4319); - match(WHERE); - setState(4320); - predicate(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Group_by_clauseContext extends ParserRuleContext { - public TerminalNode GROUP() { - return getToken(PostgreSQLParser.GROUP, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public List grouping_elem() { - return getRuleContexts(Grouping_elemContext.class); - } - - public Grouping_elemContext grouping_elem(int i) { - return getRuleContext(Grouping_elemContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Group_by_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_group_by_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterGroup_by_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitGroup_by_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitGroup_by_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Group_by_clauseContext group_by_clause() throws RecognitionException { - Group_by_clauseContext _localctx = new Group_by_clauseContext(_ctx, getState()); - enterRule(_localctx, 388, RULE_group_by_clause); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4322); - match(GROUP); - setState(4323); - match(BY); - setState(4324); - grouping_elem(); - setState(4329); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 503, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4325); - match(COMMA); - setState(4326); - grouping_elem(); - } - } - } - setState(4331); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 503, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Grouping_elemContext extends ParserRuleContext { - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public List expr_list() { - return getRuleContexts(Expr_listContext.class); - } - - public Expr_listContext expr_list(int i) { - return getRuleContext(Expr_listContext.class, i); - } - - public TerminalNode ROLLUP() { - return getToken(PostgreSQLParser.ROLLUP, 0); - } - - public TerminalNode CUBE() { - return getToken(PostgreSQLParser.CUBE, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public TerminalNode GROUPING() { - return getToken(PostgreSQLParser.GROUPING, 0); - } - - public TerminalNode SETS() { - return getToken(PostgreSQLParser.SETS, 0); - } - - public Grouping_elem_listContext grouping_elem_list() { - return getRuleContext(Grouping_elem_listContext.class, 0); - } - - public Grouping_elemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_grouping_elem; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterGrouping_elem(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitGrouping_elem(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitGrouping_elem(this); - else return visitor.visitChildren(this); - } - } - - public final Grouping_elemContext grouping_elem() throws RecognitionException { - Grouping_elemContext _localctx = new Grouping_elemContext(_ctx, getState()); - enterRule(_localctx, 390, RULE_grouping_elem); - int _la; - try { - setState(4357); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 507, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4332); - match(OPEN_PAREN); - setState(4333); - match(CLOSE_PAREN); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4334); - expr(0); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(4335); - expr_list(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(4336); - _la = _input.LA(1); - if (!(_la == CUBE || _la == ROLLUP)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4337); - match(OPEN_PAREN); - setState(4340); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 504, _ctx)) { - case 1: { - setState(4338); - expr(0); - } - break; - case 2: { - setState(4339); - expr_list(); - } - break; - } - setState(4349); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4342); - match(COMMA); - setState(4345); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 505, _ctx)) { - case 1: { - setState(4343); - expr(0); - } - break; - case 2: { - setState(4344); - expr_list(); - } - break; - } - } - } - setState(4351); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(4352); - match(CLOSE_PAREN); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(4354); - match(GROUPING); - setState(4355); - match(SETS); - setState(4356); - grouping_elem_list(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Grouping_elem_listContext extends ParserRuleContext { - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List grouping_elem() { - return getRuleContexts(Grouping_elemContext.class); - } - - public Grouping_elemContext grouping_elem(int i) { - return getRuleContext(Grouping_elemContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Grouping_elem_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_grouping_elem_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterGrouping_elem_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitGrouping_elem_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitGrouping_elem_list(this); - else return visitor.visitChildren(this); - } - } - - public final Grouping_elem_listContext grouping_elem_list() throws RecognitionException { - Grouping_elem_listContext _localctx = new Grouping_elem_listContext(_ctx, getState()); - enterRule(_localctx, 392, RULE_grouping_elem_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4359); - match(OPEN_PAREN); - setState(4360); - grouping_elem(); - setState(4365); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4361); - match(COMMA); - setState(4362); - grouping_elem(); - } - } - setState(4367); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(4368); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Having_clauseContext extends ParserRuleContext { - public TerminalNode HAVING() { - return getToken(PostgreSQLParser.HAVING, 0); - } - - public List predicate() { - return getRuleContexts(PredicateContext.class); - } - - public PredicateContext predicate(int i) { - return getRuleContext(PredicateContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Having_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_having_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterHaving_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitHaving_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitHaving_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Having_clauseContext having_clause() throws RecognitionException { - Having_clauseContext _localctx = new Having_clauseContext(_ctx, getState()); - enterRule(_localctx, 394, RULE_having_clause); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4370); - match(HAVING); - setState(4371); - predicate(0); - setState(4376); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 509, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4372); - match(COMMA); - setState(4373); - predicate(0); - } - } - } - setState(4378); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 509, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Column_listContext extends ParserRuleContext { - public ExprContext column_name_; - public Name_Context output_name; - - public List STAR() { - return getTokens(PostgreSQLParser.STAR); - } - - public TerminalNode STAR(int i) { - return getToken(PostgreSQLParser.STAR, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public List AS() { - return getTokens(PostgreSQLParser.AS); - } - - public TerminalNode AS(int i) { - return getToken(PostgreSQLParser.AS, i); - } - - public Column_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_column_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterColumn_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitColumn_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitColumn_list(this); - else return visitor.visitChildren(this); - } - } - - public final Column_listContext column_list() throws RecognitionException { - Column_listContext _localctx = new Column_listContext(_ctx, getState()); - enterRule(_localctx, 396, RULE_column_list); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4387); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALL: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ARRAY: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CASE: - case CAST: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DATE: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_ROLE: - case CURRENT_TIME: - case CURRENT_TIMESTAMP: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURRENT_USER: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULT: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FALSE: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOT: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULL: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITH: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOLLAR: - case DOLLAR_DOLLAR: - case OPEN_PAREN: - case BIT_STRING: - case REGEX_STRING: - case NUMERIC_LITERAL: - case INTEGER_LITERAL: - case HEX_INTEGER_LITERAL: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case DOLLAR_DEC: - case IDENTIFIER_UNICODE: - case AT_SIGN: - case BANG_BANG: - case MINUS: - case PLUS: - case QMARK_HYPHEN: - case TIL: { - { - setState(4379); - ((Column_listContext) _localctx).column_name_ = expr(0); - setState(4384); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 511, _ctx)) { - case 1: { - setState(4381); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(4380); - match(AS); - } - } - - setState(4383); - ((Column_listContext) _localctx).output_name = name_(); - } - break; - } - } - } - break; - case STAR: { - setState(4386); - match(STAR); - } - break; - default: - throw new NoViableAltException(this); - } - setState(4402); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 516, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4389); - match(COMMA); - setState(4398); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALL: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ARRAY: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CASE: - case CAST: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DATE: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_ROLE: - case CURRENT_TIME: - case CURRENT_TIMESTAMP: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURRENT_USER: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULT: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FALSE: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOT: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULL: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITH: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOLLAR: - case DOLLAR_DOLLAR: - case OPEN_PAREN: - case BIT_STRING: - case REGEX_STRING: - case NUMERIC_LITERAL: - case INTEGER_LITERAL: - case HEX_INTEGER_LITERAL: - case SINGLEQ_STRING_LITERAL: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case DOLLAR_DEC: - case IDENTIFIER_UNICODE: - case AT_SIGN: - case BANG_BANG: - case MINUS: - case PLUS: - case QMARK_HYPHEN: - case TIL: { - { - setState(4390); - ((Column_listContext) _localctx).column_name_ = expr(0); - setState(4395); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 514, _ctx)) { - case 1: { - setState(4392); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(4391); - match(AS); - } - } - - setState(4394); - ((Column_listContext) _localctx).output_name = name_(); - } - break; - } - } - } - break; - case STAR: { - setState(4397); - match(STAR); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - } - setState(4404); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 516, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Explain_parameterContext extends ParserRuleContext { - public TerminalNode ANALYZE() { - return getToken(PostgreSQLParser.ANALYZE, 0); - } - - public TerminalNode VERBOSE() { - return getToken(PostgreSQLParser.VERBOSE, 0); - } - - public TerminalNode COSTS() { - return getToken(PostgreSQLParser.COSTS, 0); - } - - public TerminalNode BUFFERS() { - return getToken(PostgreSQLParser.BUFFERS, 0); - } - - public TerminalNode TIMING() { - return getToken(PostgreSQLParser.TIMING, 0); - } - - public Param_valueContext param_value() { - return getRuleContext(Param_valueContext.class, 0); - } - - public TerminalNode FORMAT() { - return getToken(PostgreSQLParser.FORMAT, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode XML() { - return getToken(PostgreSQLParser.XML, 0); - } - - public TerminalNode JSON() { - return getToken(PostgreSQLParser.JSON, 0); - } - - public TerminalNode YAML() { - return getToken(PostgreSQLParser.YAML, 0); - } - - public Explain_parameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_explain_parameter; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterExplain_parameter(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitExplain_parameter(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExplain_parameter(this); - else return visitor.visitChildren(this); - } - } - - public final Explain_parameterContext explain_parameter() throws RecognitionException { - Explain_parameterContext _localctx = new Explain_parameterContext(_ctx, getState()); - enterRule(_localctx, 398, RULE_explain_parameter); - int _la; - try { - setState(4411); - _errHandler.sync(this); - switch (_input.LA(1)) { - case ANALYZE: - case BUFFERS: - case COSTS: - case TIMING: - case VERBOSE: - enterOuterAlt(_localctx, 1); - { - setState(4405); - _la = _input.LA(1); - if (!(_la == ANALYZE || _la == BUFFERS || _la == COSTS || _la == TIMING || _la == VERBOSE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4407); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(4406); - param_value(); - } - } - - } - break; - case FORMAT: - enterOuterAlt(_localctx, 2); - { - setState(4409); - match(FORMAT); - setState(4410); - _la = _input.LA(1); - if (!(_la == YAML || ((((_la - 734)) & ~0x3f) == 0 && ((1L << (_la - 734)) & ((1L << (JSON - 734)) | (1L << (TEXT - 734)) | (1L << (XML - 734)))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class FrameContext extends ParserRuleContext { - public TerminalNode UNBOUNDED() { - return getToken(PostgreSQLParser.UNBOUNDED, 0); - } - - public TerminalNode PRECEDING() { - return getToken(PostgreSQLParser.PRECEDING, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode CURRENT() { - return getToken(PostgreSQLParser.CURRENT, 0); - } - - public TerminalNode ROW() { - return getToken(PostgreSQLParser.ROW, 0); - } - - public TerminalNode FOLLOWING() { - return getToken(PostgreSQLParser.FOLLOWING, 0); - } - - public FrameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_frame; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterFrame(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFrame(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFrame(this); - else return visitor.visitChildren(this); - } - } - - public final FrameContext frame() throws RecognitionException { - FrameContext _localctx = new FrameContext(_ctx, getState()); - enterRule(_localctx, 400, RULE_frame); - try { - setState(4423); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 519, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4413); - match(UNBOUNDED); - setState(4414); - match(PRECEDING); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4415); - match(INTEGER_LITERAL); - setState(4416); - match(PRECEDING); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(4417); - match(CURRENT); - setState(4418); - match(ROW); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(4419); - match(INTEGER_LITERAL); - setState(4420); - match(FOLLOWING); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(4421); - match(UNBOUNDED); - setState(4422); - match(FOLLOWING); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Frame_startContext extends ParserRuleContext { - public FrameContext frame() { - return getRuleContext(FrameContext.class, 0); - } - - public Frame_startContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_frame_start; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFrame_start(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFrame_start(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFrame_start(this); - else return visitor.visitChildren(this); - } - } - - public final Frame_startContext frame_start() throws RecognitionException { - Frame_startContext _localctx = new Frame_startContext(_ctx, getState()); - enterRule(_localctx, 402, RULE_frame_start); - try { - enterOuterAlt(_localctx, 1); - { - setState(4425); - frame(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Frame_endContext extends ParserRuleContext { - public FrameContext frame() { - return getRuleContext(FrameContext.class, 0); - } - - public Frame_endContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_frame_end; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFrame_end(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFrame_end(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFrame_end(this); - else return visitor.visitChildren(this); - } - } - - public final Frame_endContext frame_end() throws RecognitionException { - Frame_endContext _localctx = new Frame_endContext(_ctx, getState()); - enterRule(_localctx, 404, RULE_frame_end); - try { - enterOuterAlt(_localctx, 1); - { - setState(4427); - frame(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Frame_clauseContext extends ParserRuleContext { - public Frame_startContext frame_start() { - return getRuleContext(Frame_startContext.class, 0); - } - - public TerminalNode RANGE() { - return getToken(PostgreSQLParser.RANGE, 0); - } - - public TerminalNode ROWS() { - return getToken(PostgreSQLParser.ROWS, 0); - } - - public TerminalNode BETWEEN() { - return getToken(PostgreSQLParser.BETWEEN, 0); - } - - public TerminalNode AND() { - return getToken(PostgreSQLParser.AND, 0); - } - - public Frame_endContext frame_end() { - return getRuleContext(Frame_endContext.class, 0); - } - - public Frame_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_frame_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFrame_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFrame_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFrame_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Frame_clauseContext frame_clause() throws RecognitionException { - Frame_clauseContext _localctx = new Frame_clauseContext(_ctx, getState()); - enterRule(_localctx, 406, RULE_frame_clause); - int _la; - try { - setState(4437); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 520, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4429); - _la = _input.LA(1); - if (!(_la == RANGE || _la == ROWS)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4430); - frame_start(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4431); - _la = _input.LA(1); - if (!(_la == RANGE || _la == ROWS)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4432); - match(BETWEEN); - setState(4433); - frame_start(); - setState(4434); - match(AND); - setState(4435); - frame_end(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Window_definitionContext extends ParserRuleContext { - public Window_nameContext window_name() { - return getRuleContext(Window_nameContext.class, 0); - } - - public TerminalNode PARTITION() { - return getToken(PostgreSQLParser.PARTITION, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Order_by_clauseContext order_by_clause() { - return getRuleContext(Order_by_clauseContext.class, 0); - } - - public Window_definitionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_window_definition; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWindow_definition(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitWindow_definition(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWindow_definition(this); - else return visitor.visitChildren(this); - } - } - - public final Window_definitionContext window_definition() throws RecognitionException { - Window_definitionContext _localctx = new Window_definitionContext(_ctx, getState()); - enterRule(_localctx, 408, RULE_window_definition); - int _la; - try { - setState(4451); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 522, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4439); - window_name(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4440); - match(PARTITION); - setState(4441); - match(BY); - setState(4442); - expr(0); - setState(4447); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4443); - match(COMMA); - setState(4444); - expr(0); - } - } - setState(4449); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(4450); - order_by_clause(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Window_clauseContext extends ParserRuleContext { - public TerminalNode WINDOW() { - return getToken(PostgreSQLParser.WINDOW, 0); - } - - public Window_nameContext window_name() { - return getRuleContext(Window_nameContext.class, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Window_definitionContext window_definition() { - return getRuleContext(Window_definitionContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Window_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_window_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWindow_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitWindow_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWindow_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Window_clauseContext window_clause() throws RecognitionException { - Window_clauseContext _localctx = new Window_clauseContext(_ctx, getState()); - enterRule(_localctx, 410, RULE_window_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(4453); - match(WINDOW); - setState(4454); - window_name(); - setState(4455); - match(AS); - setState(4456); - match(OPEN_PAREN); - setState(4457); - window_definition(); - setState(4458); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Combine_clauseContext extends ParserRuleContext { - public TerminalNode UNION() { - return getToken(PostgreSQLParser.UNION, 0); - } - - public TerminalNode INTERSECT() { - return getToken(PostgreSQLParser.INTERSECT, 0); - } - - public TerminalNode EXCEPT() { - return getToken(PostgreSQLParser.EXCEPT, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public Combine_clauseContext combine_clause() { - return getRuleContext(Combine_clauseContext.class, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode DISTINCT() { - return getToken(PostgreSQLParser.DISTINCT, 0); - } - - public Combine_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_combine_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCombine_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCombine_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCombine_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Combine_clauseContext combine_clause() throws RecognitionException { - Combine_clauseContext _localctx = new Combine_clauseContext(_ctx, getState()); - enterRule(_localctx, 412, RULE_combine_clause); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4460); - _la = _input.LA(1); - if (!(_la == EXCEPT || _la == INTERSECT || _la == UNION)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4462); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ALL || _la == DISTINCT) { - { - setState(4461); - _la = _input.LA(1); - if (!(_la == ALL || _la == DISTINCT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(4467); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 524, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4464); - match(OPEN_PAREN); - } - } - } - setState(4469); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 524, _ctx); - } - setState(4472); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 525, _ctx)) { - case 1: { - setState(4470); - select_stmt(); - } - break; - case 2: { - setState(4471); - values_stmt(); - } - break; - } - setState(4477); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 526, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4474); - match(CLOSE_PAREN); - } - } - } - setState(4479); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 526, _ctx); - } - setState(4481); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 527, _ctx)) { - case 1: { - setState(4480); - combine_clause(); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Order_by_clauseContext extends ParserRuleContext { - public TerminalNode ORDER() { - return getToken(PostgreSQLParser.ORDER, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public List order_by_item() { - return getRuleContexts(Order_by_itemContext.class); - } - - public Order_by_itemContext order_by_item(int i) { - return getRuleContext(Order_by_itemContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Order_by_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_order_by_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterOrder_by_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitOrder_by_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitOrder_by_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Order_by_clauseContext order_by_clause() throws RecognitionException { - Order_by_clauseContext _localctx = new Order_by_clauseContext(_ctx, getState()); - enterRule(_localctx, 414, RULE_order_by_clause); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4483); - match(ORDER); - setState(4484); - match(BY); - setState(4485); - order_by_item(); - setState(4490); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 528, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4486); - match(COMMA); - setState(4487); - order_by_item(); - } - } - } - setState(4492); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 528, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Order_by_itemContext extends ParserRuleContext { - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public TerminalNode DOUBLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); - } - - public TerminalNode ASC() { - return getToken(PostgreSQLParser.ASC, 0); - } - - public TerminalNode DESC() { - return getToken(PostgreSQLParser.DESC, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public List NULLS() { - return getTokens(PostgreSQLParser.NULLS); - } - - public TerminalNode NULLS(int i) { - return getToken(PostgreSQLParser.NULLS, i); - } - - public List FIRST() { - return getTokens(PostgreSQLParser.FIRST); - } - - public TerminalNode FIRST(int i) { - return getToken(PostgreSQLParser.FIRST, i); - } - - public List LAST() { - return getTokens(PostgreSQLParser.LAST); - } - - public TerminalNode LAST(int i) { - return getToken(PostgreSQLParser.LAST, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Order_by_itemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_order_by_item; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterOrder_by_item(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitOrder_by_item(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitOrder_by_item(this); - else return visitor.visitChildren(this); - } - } - - public final Order_by_itemContext order_by_item() throws RecognitionException { - Order_by_itemContext _localctx = new Order_by_itemContext(_ctx, getState()); - enterRule(_localctx, 416, RULE_order_by_item); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4495); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 529, _ctx)) { - case 1: { - setState(4493); - expr(0); - } - break; - case 2: { - setState(4494); - match(DOUBLEQ_STRING_LITERAL); - } - break; - } - setState(4501); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 530, _ctx)) { - case 1: { - setState(4497); - match(ASC); - } - break; - case 2: { - setState(4498); - match(DESC); - } - break; - case 3: { - setState(4499); - match(USING); - setState(4500); - expr(0); - } - break; - } - setState(4514); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 532, _ctx)) { - case 1: { - { - setState(4503); - match(NULLS); - setState(4504); - _la = _input.LA(1); - if (!(_la == FIRST || _la == LAST)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - setState(4511); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 531, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4506); - match(COMMA); - { - setState(4507); - match(NULLS); - setState(4508); - _la = _input.LA(1); - if (!(_la == FIRST || _la == LAST)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - } - } - setState(4513); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 531, _ctx); - } - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Limit_clauseContext extends ParserRuleContext { - public TerminalNode LIMIT() { - return getToken(PostgreSQLParser.LIMIT, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public Func_callContext func_call() { - return getRuleContext(Func_callContext.class, 0); - } - - public Limit_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_limit_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterLimit_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitLimit_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitLimit_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Limit_clauseContext limit_clause() throws RecognitionException { - Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState()); - enterRule(_localctx, 418, RULE_limit_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(4516); - match(LIMIT); - setState(4520); - _errHandler.sync(this); - switch (_input.LA(1)) { - case INTEGER_LITERAL: { - setState(4517); - match(INTEGER_LITERAL); - } - break; - case ALL: { - setState(4518); - match(ALL); - } - break; - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(4519); - func_call(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Offset_clauseContext extends ParserRuleContext { - public TerminalNode OFFSET() { - return getToken(PostgreSQLParser.OFFSET, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode ROW() { - return getToken(PostgreSQLParser.ROW, 0); - } - - public TerminalNode ROWS() { - return getToken(PostgreSQLParser.ROWS, 0); - } - - public Offset_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_offset_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterOffset_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitOffset_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitOffset_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Offset_clauseContext offset_clause() throws RecognitionException { - Offset_clauseContext _localctx = new Offset_clauseContext(_ctx, getState()); - enterRule(_localctx, 420, RULE_offset_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4522); - match(OFFSET); - setState(4523); - match(INTEGER_LITERAL); - setState(4525); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 534, _ctx)) { - case 1: { - setState(4524); - _la = _input.LA(1); - if (!(_la == ROW || _la == ROWS)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_clauseContext extends ParserRuleContext { - public TerminalNode FETCH() { - return getToken(PostgreSQLParser.FETCH, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode FIRST() { - return getToken(PostgreSQLParser.FIRST, 0); - } - - public TerminalNode NEXT() { - return getToken(PostgreSQLParser.NEXT, 0); - } - - public TerminalNode ROW() { - return getToken(PostgreSQLParser.ROW, 0); - } - - public TerminalNode ROWS() { - return getToken(PostgreSQLParser.ROWS, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public Fetch_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFetch_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFetch_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFetch_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Fetch_clauseContext fetch_clause() throws RecognitionException { - Fetch_clauseContext _localctx = new Fetch_clauseContext(_ctx, getState()); - enterRule(_localctx, 422, RULE_fetch_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4527); - match(FETCH); - setState(4528); - _la = _input.LA(1); - if (!(_la == FIRST || _la == NEXT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4530); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INTEGER_LITERAL) { - { - setState(4529); - match(INTEGER_LITERAL); - } - } - - setState(4532); - _la = _input.LA(1); - if (!(_la == ROW || _la == ROWS)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4533); - match(ONLY); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class For_clauseContext extends ParserRuleContext { - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public TerminalNode NO() { - return getToken(PostgreSQLParser.NO, 0); - } - - public TerminalNode KEY() { - return getToken(PostgreSQLParser.KEY, 0); - } - - public TerminalNode SHARE() { - return getToken(PostgreSQLParser.SHARE, 0); - } - - public TerminalNode OF() { - return getToken(PostgreSQLParser.OF, 0); - } - - public List table_name_() { - return getRuleContexts(Table_name_Context.class); - } - - public Table_name_Context table_name_(int i) { - return getRuleContext(Table_name_Context.class, i); - } - - public List NOWAIT() { - return getTokens(PostgreSQLParser.NOWAIT); - } - - public TerminalNode NOWAIT(int i) { - return getToken(PostgreSQLParser.NOWAIT, i); - } - - public List SKIP_() { - return getTokens(PostgreSQLParser.SKIP_); - } - - public TerminalNode SKIP_(int i) { - return getToken(PostgreSQLParser.SKIP_, i); - } - - public List LOCKED() { - return getTokens(PostgreSQLParser.LOCKED); - } - - public TerminalNode LOCKED(int i) { - return getToken(PostgreSQLParser.LOCKED, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public For_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_for_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFor_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFor_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFor_clause(this); - else return visitor.visitChildren(this); - } - } - - public final For_clauseContext for_clause() throws RecognitionException { - For_clauseContext _localctx = new For_clauseContext(_ctx, getState()); - enterRule(_localctx, 424, RULE_for_clause); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4535); - match(FOR); - setState(4543); - _errHandler.sync(this); - switch (_input.LA(1)) { - case UPDATE: { - setState(4536); - match(UPDATE); - } - break; - case NO: { - setState(4537); - match(NO); - setState(4538); - match(KEY); - setState(4539); - match(UPDATE); - } - break; - case SHARE: { - setState(4540); - match(SHARE); - } - break; - case KEY: { - setState(4541); - match(KEY); - setState(4542); - match(SHARE); - } - break; - default: - throw new NoViableAltException(this); - } - setState(4554); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 538, _ctx)) { - case 1: { - setState(4545); - match(OF); - setState(4546); - table_name_(); - setState(4551); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 537, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4547); - match(COMMA); - setState(4548); - table_name_(); - } - } - } - setState(4553); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 537, _ctx); - } - } - break; - } - setState(4561); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 540, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - setState(4559); - _errHandler.sync(this); - switch (_input.LA(1)) { - case NOWAIT: { - setState(4556); - match(NOWAIT); - } - break; - case SKIP_: { - setState(4557); - match(SKIP_); - setState(4558); - match(LOCKED); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - setState(4563); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 540, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Updater_clauseContext extends ParserRuleContext { - public List updater_expr() { - return getRuleContexts(Updater_exprContext.class); - } - - public Updater_exprContext updater_expr(int i) { - return getRuleContext(Updater_exprContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Updater_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_updater_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterUpdater_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitUpdater_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitUpdater_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Updater_clauseContext updater_clause() throws RecognitionException { - Updater_clauseContext _localctx = new Updater_clauseContext(_ctx, getState()); - enterRule(_localctx, 426, RULE_updater_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4564); - updater_expr(); - setState(4569); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4565); - match(COMMA); - setState(4566); - updater_expr(); - } - } - setState(4571); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Updater_exprContext extends ParserRuleContext { - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public Expr_listContext expr_list() { - return getRuleContext(Expr_listContext.class, 0); - } - - public Updater_exprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_updater_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterUpdater_expr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitUpdater_expr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitUpdater_expr(this); - else return visitor.visitChildren(this); - } - } - - public final Updater_exprContext updater_expr() throws RecognitionException { - Updater_exprContext _localctx = new Updater_exprContext(_ctx, getState()); - enterRule(_localctx, 428, RULE_updater_expr); - try { - setState(4581); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 543, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4572); - expr(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - { - setState(4573); - match(OPEN_PAREN); - setState(4574); - name_list(); - setState(4575); - match(CLOSE_PAREN); - setState(4576); - match(EQUAL); - setState(4579); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 542, _ctx)) { - case 1: { - setState(4577); - expr(0); - } - break; - case 2: { - setState(4578); - expr_list(); - } - break; - } - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Returning_clauseContext extends ParserRuleContext { - public TerminalNode RETURNING() { - return getToken(PostgreSQLParser.RETURNING, 0); - } - - public Column_listContext column_list() { - return getRuleContext(Column_listContext.class, 0); - } - - public Returning_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_returning_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterReturning_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitReturning_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitReturning_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Returning_clauseContext returning_clause() throws RecognitionException { - Returning_clauseContext _localctx = new Returning_clauseContext(_ctx, getState()); - enterRule(_localctx, 430, RULE_returning_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(4583); - match(RETURNING); - setState(4584); - column_list(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class ExprContext extends ParserRuleContext { - public Token op; - - public TerminalNode NULL() { - return getToken(PostgreSQLParser.NULL, 0); - } - - public TerminalNode CURRENT_DATE() { - return getToken(PostgreSQLParser.CURRENT_DATE, 0); - } - - public TerminalNode CURRENT_ROLE() { - return getToken(PostgreSQLParser.CURRENT_ROLE, 0); - } - - public TerminalNode CURRENT_TIME() { - return getToken(PostgreSQLParser.CURRENT_TIME, 0); - } - - public TerminalNode CURRENT_TIMESTAMP() { - return getToken(PostgreSQLParser.CURRENT_TIMESTAMP, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode DEFAULT() { - return getToken(PostgreSQLParser.DEFAULT, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode HEX_INTEGER_LITERAL() { - return getToken(PostgreSQLParser.HEX_INTEGER_LITERAL, 0); - } - - public TerminalNode NUMERIC_LITERAL() { - return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode BIT_STRING() { - return getToken(PostgreSQLParser.BIT_STRING, 0); - } - - public TerminalNode REGEX_STRING() { - return getToken(PostgreSQLParser.REGEX_STRING, 0); - } - - public List DOLLAR_DOLLAR() { - return getTokens(PostgreSQLParser.DOLLAR_DOLLAR); - } - - public TerminalNode DOLLAR_DOLLAR(int i) { - return getToken(PostgreSQLParser.DOLLAR_DOLLAR, i); - } - - public List DOLLAR() { - return getTokens(PostgreSQLParser.DOLLAR); - } - - public TerminalNode DOLLAR(int i) { - return getToken(PostgreSQLParser.DOLLAR, i); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public Bool_exprContext bool_expr() { - return getRuleContext(Bool_exprContext.class, 0); - } - - public Values_stmtContext values_stmt() { - return getRuleContext(Values_stmtContext.class, 0); - } - - public Expr_listContext expr_list() { - return getRuleContext(Expr_listContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Type_nameContext type_name() { - return getRuleContext(Type_nameContext.class, 0); - } - - public TerminalNode BANG_BANG() { - return getToken(PostgreSQLParser.BANG_BANG, 0); - } - - public TerminalNode AT_SIGN() { - return getToken(PostgreSQLParser.AT_SIGN, 0); - } - - public TerminalNode PLUS() { - return getToken(PostgreSQLParser.PLUS, 0); - } - - public TerminalNode MINUS() { - return getToken(PostgreSQLParser.MINUS, 0); - } - - public TerminalNode TIL() { - return getToken(PostgreSQLParser.TIL, 0); - } - - public TerminalNode QMARK_HYPHEN() { - return getToken(PostgreSQLParser.QMARK_HYPHEN, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public Func_callContext func_call() { - return getRuleContext(Func_callContext.class, 0); - } - - public TerminalNode CAST() { - return getToken(PostgreSQLParser.CAST, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List data_type() { - return getRuleContexts(Data_typeContext.class); - } - - public Data_typeContext data_type(int i) { - return getRuleContext(Data_typeContext.class, i); - } - - public Correlation_nameContext correlation_name() { - return getRuleContext(Correlation_nameContext.class, 0); - } - - public TerminalNode DOT() { - return getToken(PostgreSQLParser.DOT, 0); - } - - public Column_nameContext column_name() { - return getRuleContext(Column_nameContext.class, 0); - } - - public Case_exprContext case_expr() { - return getRuleContext(Case_exprContext.class, 0); - } - - public AggregateContext aggregate() { - return getRuleContext(AggregateContext.class, 0); - } - - public Array_cons_exprContext array_cons_expr() { - return getRuleContext(Array_cons_exprContext.class, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode DOLLAR_DEC() { - return getToken(PostgreSQLParser.DOLLAR_DEC, 0); - } - - public Select_stmtContext select_stmt() { - return getRuleContext(Select_stmtContext.class, 0); - } - - public TerminalNode CARET() { - return getToken(PostgreSQLParser.CARET, 0); - } - - public TerminalNode PIPE_SLASH() { - return getToken(PostgreSQLParser.PIPE_SLASH, 0); - } - - public TerminalNode PIPE_PIPE_SLASH() { - return getToken(PostgreSQLParser.PIPE_PIPE_SLASH, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public TerminalNode SLASH() { - return getToken(PostgreSQLParser.SLASH, 0); - } - - public TerminalNode PERCENT() { - return getToken(PostgreSQLParser.PERCENT, 0); - } - - public TerminalNode AMP() { - return getToken(PostgreSQLParser.AMP, 0); - } - - public TerminalNode PIPE() { - return getToken(PostgreSQLParser.PIPE, 0); - } - - public TerminalNode HASH() { - return getToken(PostgreSQLParser.HASH, 0); - } - - public TerminalNode LT_LT() { - return getToken(PostgreSQLParser.LT_LT, 0); - } - - public TerminalNode LT_LT_EQ() { - return getToken(PostgreSQLParser.LT_LT_EQ, 0); - } - - public TerminalNode GT_GT() { - return getToken(PostgreSQLParser.GT_GT, 0); - } - - public TerminalNode AT_AT() { - return getToken(PostgreSQLParser.AT_AT, 0); - } - - public TerminalNode LT_HYPHEN_GT() { - return getToken(PostgreSQLParser.LT_HYPHEN_GT, 0); - } - - public TerminalNode AT_GT() { - return getToken(PostgreSQLParser.AT_GT, 0); - } - - public TerminalNode LT_AT() { - return getToken(PostgreSQLParser.LT_AT, 0); - } - - public TerminalNode TIL_EQ() { - return getToken(PostgreSQLParser.TIL_EQ, 0); - } - - public TerminalNode TIL_STAR() { - return getToken(PostgreSQLParser.TIL_STAR, 0); - } - - public TerminalNode TIL_TIL() { - return getToken(PostgreSQLParser.TIL_TIL, 0); - } - - public TerminalNode TIL_LT_TIL() { - return getToken(PostgreSQLParser.TIL_LT_TIL, 0); - } - - public TerminalNode TIL_GT_TIL() { - return getToken(PostgreSQLParser.TIL_GT_TIL, 0); - } - - public TerminalNode TIL_LTE_TIL() { - return getToken(PostgreSQLParser.TIL_LTE_TIL, 0); - } - - public TerminalNode TIL_GTE_TIL() { - return getToken(PostgreSQLParser.TIL_GTE_TIL, 0); - } - - public TerminalNode LT_QMARK_GT() { - return getToken(PostgreSQLParser.LT_QMARK_GT, 0); - } - - public TerminalNode HYPHEN_GT() { - return getToken(PostgreSQLParser.HYPHEN_GT, 0); - } - - public TerminalNode HYPHEN_GT_GT() { - return getToken(PostgreSQLParser.HYPHEN_GT_GT, 0); - } - - public TerminalNode HASH_HASH() { - return getToken(PostgreSQLParser.HASH_HASH, 0); - } - - public TerminalNode HASH_GT() { - return getToken(PostgreSQLParser.HASH_GT, 0); - } - - public TerminalNode HASH_GT_GT() { - return getToken(PostgreSQLParser.HASH_GT_GT, 0); - } - - public TerminalNode QMARK() { - return getToken(PostgreSQLParser.QMARK, 0); - } - - public TerminalNode QMARK_PIPE() { - return getToken(PostgreSQLParser.QMARK_PIPE, 0); - } - - public TerminalNode QMARK_AMP() { - return getToken(PostgreSQLParser.QMARK_AMP, 0); - } - - public TerminalNode QMARK_HASH() { - return getToken(PostgreSQLParser.QMARK_HASH, 0); - } - - public TerminalNode LT_CARET() { - return getToken(PostgreSQLParser.LT_CARET, 0); - } - - public TerminalNode AMP_LT() { - return getToken(PostgreSQLParser.AMP_LT, 0); - } - - public TerminalNode HYPHEN_PIPE_HYPHEN() { - return getToken(PostgreSQLParser.HYPHEN_PIPE_HYPHEN, 0); - } - - public TerminalNode HASH_EQ() { - return getToken(PostgreSQLParser.HASH_EQ, 0); - } - - public TerminalNode AMP_AMP() { - return getToken(PostgreSQLParser.AMP_AMP, 0); - } - - public TerminalNode PIPE_PIPE() { - return getToken(PostgreSQLParser.PIPE_PIPE, 0); - } - - public TerminalNode EQUAL_GT() { - return getToken(PostgreSQLParser.EQUAL_GT, 0); - } - - public TerminalNode AND() { - return getToken(PostgreSQLParser.AND, 0); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public TerminalNode LIKE() { - return getToken(PostgreSQLParser.LIKE, 0); - } - - public TerminalNode BETWEEN() { - return getToken(PostgreSQLParser.BETWEEN, 0); - } - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public TerminalNode LT() { - return getToken(PostgreSQLParser.LT, 0); - } - - public TerminalNode GT() { - return getToken(PostgreSQLParser.GT, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public TerminalNode LTE() { - return getToken(PostgreSQLParser.LTE, 0); - } - - public TerminalNode GTE() { - return getToken(PostgreSQLParser.GTE, 0); - } - - public TerminalNode LT_GT() { - return getToken(PostgreSQLParser.LT_GT, 0); - } - - public TerminalNode BANG_EQUAL() { - return getToken(PostgreSQLParser.BANG_EQUAL, 0); - } - - public TerminalNode IS() { - return getToken(PostgreSQLParser.IS, 0); - } - - public TerminalNode DISTINCT() { - return getToken(PostgreSQLParser.DISTINCT, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public List OPEN_BRACKET() { - return getTokens(PostgreSQLParser.OPEN_BRACKET); - } - - public TerminalNode OPEN_BRACKET(int i) { - return getToken(PostgreSQLParser.OPEN_BRACKET, i); - } - - public List CLOSE_BRACKET() { - return getTokens(PostgreSQLParser.CLOSE_BRACKET); - } - - public TerminalNode CLOSE_BRACKET(int i) { - return getToken(PostgreSQLParser.CLOSE_BRACKET, i); - } - - public TerminalNode BANG() { - return getToken(PostgreSQLParser.BANG, 0); - } - - public List COLON() { - return getTokens(PostgreSQLParser.COLON); - } - - public TerminalNode COLON(int i) { - return getToken(PostgreSQLParser.COLON, i); - } - - public List COLON_COLON() { - return getTokens(PostgreSQLParser.COLON_COLON); - } - - public TerminalNode COLON_COLON(int i) { - return getToken(PostgreSQLParser.COLON_COLON, i); - } - - public TerminalNode OF() { - return getToken(PostgreSQLParser.OF, 0); - } - - public TerminalNode AT() { - return getToken(PostgreSQLParser.AT, 0); - } - - public TerminalNode TIME() { - return getToken(PostgreSQLParser.TIME, 0); - } - - public TerminalNode ZONE() { - return getToken(PostgreSQLParser.ZONE, 0); - } - - public ExprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterExpr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitExpr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExpr(this); - else return visitor.visitChildren(this); - } - } - - public final ExprContext expr() throws RecognitionException { - return expr(0); - } - - private ExprContext expr(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ExprContext _localctx = new ExprContext(_ctx, _parentState); - ExprContext _prevctx = _localctx; - int _startState = 432; - enterRecursionRule(_localctx, 432, RULE_expr, _p); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4660); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 546, _ctx)) { - case 1: { - setState(4587); - match(NULL); - } - break; - case 2: { - setState(4588); - match(CURRENT_DATE); - } - break; - case 3: { - setState(4589); - match(CURRENT_ROLE); - } - break; - case 4: { - setState(4590); - match(CURRENT_TIME); - } - break; - case 5: { - setState(4591); - match(CURRENT_TIMESTAMP); - } - break; - case 6: { - setState(4592); - match(CURRENT_USER); - } - break; - case 7: { - setState(4593); - match(DEFAULT); - } - break; - case 8: { - setState(4594); - match(INTEGER_LITERAL); - } - break; - case 9: { - setState(4595); - match(HEX_INTEGER_LITERAL); - } - break; - case 10: { - setState(4596); - match(NUMERIC_LITERAL); - } - break; - case 11: { - setState(4597); - match(SINGLEQ_STRING_LITERAL); - } - break; - case 12: { - setState(4598); - match(BIT_STRING); - } - break; - case 13: { - setState(4599); - match(REGEX_STRING); - } - break; - case 14: { - setState(4600); - match(DOLLAR_DOLLAR); - setState(4602); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(4601); - _la = _input.LA(1); - if (_la <= 0 || (_la == DOLLAR)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(4604); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 544, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - setState(4606); - match(DOLLAR_DOLLAR); - } - break; - case 15: { - setState(4607); - match(DOLLAR); - setState(4608); - identifier(0); - setState(4610); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(4609); - _la = _input.LA(1); - if (_la <= 0 || (_la == DOLLAR)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - setState(4612); - _errHandler.sync(this); - _la = _input.LA(1); - } while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << BLOCK_COMMENT) | (1L << LINE_COMMENT) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANALYSE) | (1L << ANALYZE) | (1L << AND) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << AS) | (1L << ASC) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << ASYMMETRIC) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AUTHORIZATION) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BINARY) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BITVAR) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BOTH) | (1L << BREADTH) | (1L << BUFFERS) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECK - 64)) | (1L << (CHECKED - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATE - 64)) | (1L << (COLLATION - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (COMPLETION - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONFIGURATION - 64)) | (1L << (CONFLICT - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COSTS - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)) | (1L << (CREATE - 64)) | (1L << (CREATEDB - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CREATEUSER - 128)) | (1L << (CROSS - 128)) | (1L << (CSV - 128)) | (1L << (CUBE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 128)) | (1L << (CURRENT_PATH - 128)) | (1L << (CURRENT_ROLE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (CYCLE - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME_INTERVAL_CODE - 128)) | (1L << (DATETIME_INTERVAL_PRECISION - 128)) | (1L << (DAY - 128)) | (1L << (DEALLOCATE - 128)) | (1L << (DEC - 128)) | (1L << (DECIMAL - 128)) | (1L << (DECLARE - 128)) | (1L << (DEFAULT - 128)) | (1L << (DEFAULTS - 128)) | (1L << (DEFERABLE - 128)) | (1L << (DEFERRABLE - 128)) | (1L << (DEFERRED - 128)) | (1L << (DEFINED - 128)) | (1L << (DEFINER - 128)) | (1L << (DEGREE - 128)) | (1L << (DELETE - 128)) | (1L << (DELIMITER - 128)) | (1L << (DELIMITERS - 128)) | (1L << (DENSE_RANK - 128)) | (1L << (DEPENDS - 128)) | (1L << (DEPTH - 128)) | (1L << (DEREF - 128)) | (1L << (DERIVED - 128)) | (1L << (DESC - 128)) | (1L << (DESCRIBE - 128)) | (1L << (DESCRIPTOR - 128)) | (1L << (DESTROY - 128)) | (1L << (DESTRUCTOR - 128)) | (1L << (DETERMINISTIC - 128)) | (1L << (DIAGNOSTICS - 128)) | (1L << (DICTIONARY - 128)) | (1L << (DISABLE - 128)) | (1L << (DISABLE_PAGE_SKIPPING - 128)) | (1L << (DISCARD - 128)) | (1L << (DISCONNECT - 128)) | (1L << (DISPATCH - 128)) | (1L << (DISTINCT - 128)) | (1L << (DO - 128)) | (1L << (DOMAIN - 128)) | (1L << (DOUBLE - 128)) | (1L << (DROP - 128)) | (1L << (DYNAMIC - 128)) | (1L << (DYNAMIC_FUNCTION - 128)) | (1L << (DYNAMIC_FUNCTION_CODE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (EACH - 192)) | (1L << (ELEMENT - 192)) | (1L << (ELSE - 192)) | (1L << (ENABLE - 192)) | (1L << (ENCODING - 192)) | (1L << (ENCRYPTED - 192)) | (1L << (END - 192)) | (1L << (END_EXEC - 192)) | (1L << (EQUALS - 192)) | (1L << (ESCAPE - 192)) | (1L << (EVERY - 192)) | (1L << (EXCEPT - 192)) | (1L << (EXCEPTION - 192)) | (1L << (EXCLUDE - 192)) | (1L << (EXCLUDING - 192)) | (1L << (EXCLUSIVE - 192)) | (1L << (EXEC - 192)) | (1L << (EXECUTE - 192)) | (1L << (EXISTING - 192)) | (1L << (EXISTS - 192)) | (1L << (EXP - 192)) | (1L << (EXPLAIN - 192)) | (1L << (EXTENDED - 192)) | (1L << (EXTENSION - 192)) | (1L << (EXTERNAL - 192)) | (1L << (EXTRACT - 192)) | (1L << (FALSE - 192)) | (1L << (FETCH - 192)) | (1L << (FIELDS - 192)) | (1L << (FILTER - 192)) | (1L << (FINAL - 192)) | (1L << (FIRST - 192)) | (1L << (FLOAT - 192)) | (1L << (FLOOR - 192)) | (1L << (FOLLOWING - 192)) | (1L << (FOR - 192)) | (1L << (FORCE - 192)) | (1L << (FOREIGN - 192)) | (1L << (FORMAT - 192)) | (1L << (FORTRAN - 192)) | (1L << (FORWARD - 192)) | (1L << (FOUND - 192)) | (1L << (FREE - 192)) | (1L << (FREEZE - 192)) | (1L << (FROM - 192)) | (1L << (FULL - 192)) | (1L << (FUNCTION - 192)) | (1L << (FUSION - 192)) | (1L << (G_ - 192)) | (1L << (GENERAL - 192)) | (1L << (GENERATED - 192)) | (1L << (GET - 192)) | (1L << (GLOBAL - 192)) | (1L << (GO - 192)) | (1L << (GOTO - 192)) | (1L << (GRANT - 192)) | (1L << (GRANTED - 192)) | (1L << (GREATEST - 192)) | (1L << (GROUP - 192)) | (1L << (GROUPING - 192)) | (1L << (HANDLER - 192)) | (1L << (HAVING - 192)) | (1L << (HIERARCHY - 192)) | (1L << (HOLD - 192)))) != 0) || ((((_la - 256)) & ~0x3f) == 0 && ((1L << (_la - 256)) & ((1L << (HOST - 256)) | (1L << (HOUR - 256)) | (1L << (IDENTITY - 256)) | (1L << (IGNORE - 256)) | (1L << (ILIKE - 256)) | (1L << (IMMEDIATE - 256)) | (1L << (IMMUTABLE - 256)) | (1L << (IMPLEMENTATION - 256)) | (1L << (IMPLICIT - 256)) | (1L << (IN - 256)) | (1L << (INCLUDING - 256)) | (1L << (INCREMENT - 256)) | (1L << (INDEX - 256)) | (1L << (INDICATOR - 256)) | (1L << (INFIX - 256)) | (1L << (INHERITS - 256)) | (1L << (INITIALIZE - 256)) | (1L << (INITIALLY - 256)) | (1L << (INNER - 256)) | (1L << (INOUT - 256)) | (1L << (INPUT - 256)) | (1L << (INSENSITIVE - 256)) | (1L << (INSERT - 256)) | (1L << (INSTANCE - 256)) | (1L << (INSTANTIABLE - 256)) | (1L << (INSTEAD - 256)) | (1L << (INT - 256)) | (1L << (INTEGER - 256)) | (1L << (INTERSECT - 256)) | (1L << (INTERSECTION - 256)) | (1L << (INTERVAL - 256)) | (1L << (INTO - 256)) | (1L << (INVOKER - 256)) | (1L << (IS - 256)) | (1L << (ISOLATION - 256)) | (1L << (ITERATE - 256)) | (1L << (JOIN - 256)) | (1L << (K_ - 256)) | (1L << (KEY - 256)) | (1L << (KEY_MEMBER - 256)) | (1L << (KEY_TYPE - 256)) | (1L << (LABEL - 256)) | (1L << (LANCOMPILER - 256)) | (1L << (LANGUAGE - 256)) | (1L << (LARGE - 256)) | (1L << (LAST - 256)) | (1L << (LATERAL - 256)) | (1L << (LEADING - 256)) | (1L << (LEAST - 256)) | (1L << (LEFT - 256)) | (1L << (LENGTH - 256)) | (1L << (LESS - 256)) | (1L << (LEVEL - 256)) | (1L << (LIKE - 256)) | (1L << (LIMIT - 256)) | (1L << (LISTEN - 256)) | (1L << (LN - 256)) | (1L << (LOAD - 256)) | (1L << (LOCAL - 256)) | (1L << (LOCALTIME - 256)) | (1L << (LOCALTIMESTAMP - 256)) | (1L << (LOCATION - 256)) | (1L << (LOCATOR - 256)) | (1L << (LOCK - 256)))) != 0) || ((((_la - 320)) & ~0x3f) == 0 && ((1L << (_la - 320)) & ((1L << (LOCKED - 320)) | (1L << (LOWER - 320)) | (1L << (M_ - 320)) | (1L << (MAIN - 320)) | (1L << (MAP - 320)) | (1L << (MAPPING - 320)) | (1L << (MATCH - 320)) | (1L << (MATCH_SIMPLE - 320)) | (1L << (MATCHED - 320)) | (1L << (MAX - 320)) | (1L << (MAXVALUE - 320)) | (1L << (MEMBER - 320)) | (1L << (MERGE - 320)) | (1L << (MESSAGE_LENGTH - 320)) | (1L << (MESSAGE_OCTET_LENGTH - 320)) | (1L << (MESSAGE_TEXT - 320)) | (1L << (METHOD - 320)) | (1L << (MIN - 320)) | (1L << (MINUTE - 320)) | (1L << (MINVALUE - 320)) | (1L << (MOD - 320)) | (1L << (MODE - 320)) | (1L << (MODIFIES - 320)) | (1L << (MODIFY - 320)) | (1L << (MODULE - 320)) | (1L << (MONTH - 320)) | (1L << (MORE_ - 320)) | (1L << (MOVE - 320)) | (1L << (MULTISET - 320)) | (1L << (MUMPS - 320)) | (1L << (NAME - 320)) | (1L << (NAMES - 320)) | (1L << (NATIONAL - 320)) | (1L << (NATURAL - 320)) | (1L << (NCHAR - 320)) | (1L << (NCLOB - 320)) | (1L << (NESTING - 320)) | (1L << (NEW - 320)) | (1L << (NEXT - 320)) | (1L << (NO - 320)) | (1L << (NOCREATEDB - 320)) | (1L << (NOCREATEUSER - 320)) | (1L << (NONE - 320)) | (1L << (NORMALIZE - 320)) | (1L << (NORMALIZED - 320)) | (1L << (NOT - 320)) | (1L << (NOTHING - 320)) | (1L << (NOTIFY - 320)) | (1L << (NOTNULL - 320)) | (1L << (NOWAIT - 320)) | (1L << (NULL - 320)) | (1L << (NULLABLE - 320)) | (1L << (NULLIF - 320)) | (1L << (NULLS - 320)) | (1L << (NUMBER - 320)) | (1L << (NUMERIC - 320)) | (1L << (OBJECT - 320)) | (1L << (OCTET_LENGTH - 320)) | (1L << (OCTETS - 320)) | (1L << (OF - 320)) | (1L << (OFF - 320)) | (1L << (OFFSET - 320)) | (1L << (OIDS - 320)) | (1L << (OLD - 320)))) != 0) || ((((_la - 384)) & ~0x3f) == 0 && ((1L << (_la - 384)) & ((1L << (ON - 384)) | (1L << (ONLY - 384)) | (1L << (OPEN - 384)) | (1L << (OPERATION - 384)) | (1L << (OPERATOR - 384)) | (1L << (OPTION - 384)) | (1L << (OPTIONS - 384)) | (1L << (OR - 384)) | (1L << (ORDER - 384)) | (1L << (ORDERING - 384)) | (1L << (ORDINALITY - 384)) | (1L << (OTHERS - 384)) | (1L << (OUT - 384)) | (1L << (OUTER - 384)) | (1L << (OUTPUT - 384)) | (1L << (OVER - 384)) | (1L << (OVERLAPS - 384)) | (1L << (OVERLAY - 384)) | (1L << (OVERRIDING - 384)) | (1L << (OWNER - 384)) | (1L << (PAD - 384)) | (1L << (PARAMETER - 384)) | (1L << (PARAMETER_MODE - 384)) | (1L << (PARAMETER_NAME - 384)) | (1L << (PARAMETER_ORDINAL_POSITION - 384)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 384)) | (1L << (PARAMETER_SPECIFIC_NAME - 384)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 384)) | (1L << (PARAMETERS - 384)) | (1L << (PARSER - 384)) | (1L << (PARTIAL - 384)) | (1L << (PARTITION - 384)) | (1L << (PASCAL - 384)) | (1L << (PASSWORD - 384)) | (1L << (PATH - 384)) | (1L << (PERCENT_RANK - 384)) | (1L << (PERCENTILE_CONT - 384)) | (1L << (PERCENTILE_DISC - 384)) | (1L << (PLACING - 384)) | (1L << (PLAIN - 384)) | (1L << (PLANS - 384)) | (1L << (PLI - 384)) | (1L << (POSITION - 384)) | (1L << (POSTFIX - 384)) | (1L << (POWER - 384)) | (1L << (PRECEDING - 384)) | (1L << (PRECISION - 384)) | (1L << (PREFIX - 384)) | (1L << (PREORDER - 384)) | (1L << (PREPARE - 384)) | (1L << (PREPARED - 384)) | (1L << (PRESERVE - 384)) | (1L << (PRIMARY - 384)) | (1L << (PRIOR - 384)) | (1L << (PRIVILEGES - 384)) | (1L << (PROCEDURAL - 384)) | (1L << (PROCEDURE - 384)) | (1L << (PUBLIC - 384)) | (1L << (PUBLICATION - 384)) | (1L << (QUOTE - 384)) | (1L << (RANGE - 384)) | (1L << (RANK - 384)) | (1L << (READ - 384)) | (1L << (READS - 384)))) != 0) || ((((_la - 448)) & ~0x3f) == 0 && ((1L << (_la - 448)) & ((1L << (REAL - 448)) | (1L << (REASSIGN - 448)) | (1L << (RECHECK - 448)) | (1L << (RECURSIVE - 448)) | (1L << (REF - 448)) | (1L << (REFERENCES - 448)) | (1L << (REFERENCING - 448)) | (1L << (REFRESH - 448)) | (1L << (REGR_AVGX - 448)) | (1L << (REGR_AVGY - 448)) | (1L << (REGR_COUNT - 448)) | (1L << (REGR_INTERCEPT - 448)) | (1L << (REGR_R2 - 448)) | (1L << (REGR_SLOPE - 448)) | (1L << (REGR_SXX - 448)) | (1L << (REGR_SXY - 448)) | (1L << (REGR_SYY - 448)) | (1L << (REINDEX - 448)) | (1L << (RELATIVE - 448)) | (1L << (RELEASE - 448)) | (1L << (RENAME - 448)) | (1L << (REPEATABLE - 448)) | (1L << (REPLACE - 448)) | (1L << (REPLICA - 448)) | (1L << (RESET - 448)) | (1L << (RESTART - 448)) | (1L << (RESTRICT - 448)) | (1L << (RESULT - 448)) | (1L << (RETURN - 448)) | (1L << (RETURNED_CARDINALITY - 448)) | (1L << (RETURNED_LENGTH - 448)) | (1L << (RETURNED_OCTET_LENGTH - 448)) | (1L << (RETURNED_SQLSTATE - 448)) | (1L << (RETURNING - 448)) | (1L << (RETURNS - 448)) | (1L << (REVOKE - 448)) | (1L << (RIGHT - 448)) | (1L << (ROLE - 448)) | (1L << (ROLLBACK - 448)) | (1L << (ROLLUP - 448)) | (1L << (ROUTINE - 448)) | (1L << (ROUTINE_CATALOG - 448)) | (1L << (ROUTINE_NAME - 448)) | (1L << (ROUTINE_SCHEMA - 448)) | (1L << (ROW - 448)) | (1L << (ROW_COUNT - 448)) | (1L << (ROW_NUMBER - 448)) | (1L << (ROWS - 448)) | (1L << (RULE - 448)) | (1L << (SAVEPOINT - 448)) | (1L << (SCALE - 448)) | (1L << (SCHEMA - 448)) | (1L << (SCHEMA_NAME - 448)) | (1L << (SCOPE - 448)) | (1L << (SCOPE_CATALOG - 448)) | (1L << (SCOPE_NAME - 448)) | (1L << (SCOPE_SCHEMA - 448)) | (1L << (SCROLL - 448)) | (1L << (SEARCH - 448)) | (1L << (SECOND - 448)) | (1L << (SECTION - 448)) | (1L << (SECURITY - 448)) | (1L << (SELECT - 448)) | (1L << (SELF - 448)))) != 0) || ((((_la - 512)) & ~0x3f) == 0 && ((1L << (_la - 512)) & ((1L << (SENSITIVE - 512)) | (1L << (SEQUENCE - 512)) | (1L << (SEQUENCES - 512)) | (1L << (SERIALIZABLE - 512)) | (1L << (SERVER_NAME - 512)) | (1L << (SESSION - 512)) | (1L << (SESSION_USER - 512)) | (1L << (SET - 512)) | (1L << (SETOF - 512)) | (1L << (SETS - 512)) | (1L << (SHARE - 512)) | (1L << (SHOW - 512)) | (1L << (SIMILAR - 512)) | (1L << (SIMPLE - 512)) | (1L << (SIZE - 512)) | (1L << (SKIP_ - 512)) | (1L << (SMALLINT - 512)) | (1L << (SNAPSHOT - 512)) | (1L << (SOME - 512)) | (1L << (SOURCE - 512)) | (1L << (SPACE - 512)) | (1L << (SPECIFIC - 512)) | (1L << (SPECIFIC_NAME - 512)) | (1L << (SPECIFICTYPE - 512)) | (1L << (SQL - 512)) | (1L << (SQLCODE - 512)) | (1L << (SQLERROR - 512)) | (1L << (SQLEXCEPTION - 512)) | (1L << (SQLSTATE - 512)) | (1L << (SQLWARNING - 512)) | (1L << (SQRT - 512)) | (1L << (STABLE - 512)) | (1L << (START - 512)) | (1L << (STATE - 512)) | (1L << (STATEMENT - 512)) | (1L << (STATIC - 512)) | (1L << (STATISTICS - 512)) | (1L << (STDDEV_POP - 512)) | (1L << (STDDEV_SAMP - 512)) | (1L << (STDIN - 512)) | (1L << (STDOUT - 512)) | (1L << (STORAGE - 512)) | (1L << (STRICT - 512)) | (1L << (STRUCTURE - 512)) | (1L << (STYLE - 512)) | (1L << (SUBCLASS_ORIGIN - 512)) | (1L << (SUBLIST - 512)) | (1L << (SUBMULTISET - 512)) | (1L << (SUBSCRIPTION - 512)) | (1L << (SUBSTRING - 512)) | (1L << (SUM - 512)) | (1L << (SYMMETRIC - 512)) | (1L << (SYSID - 512)) | (1L << (SYSTEM - 512)) | (1L << (SYSTEM_USER - 512)) | (1L << (TABLE - 512)) | (1L << (TABLE_NAME - 512)) | (1L << (TABLESAMPLE - 512)) | (1L << (TABLESPACE - 512)) | (1L << (TEMP - 512)) | (1L << (TEMPLATE - 512)) | (1L << (TEMPORARY - 512)) | (1L << (TERMINATE - 512)) | (1L << (THAN - 512)))) != 0) || ((((_la - 576)) & ~0x3f) == 0 && ((1L << (_la - 576)) & ((1L << (THEN - 576)) | (1L << (TIES - 576)) | (1L << (TIME - 576)) | (1L << (TIMESTAMP - 576)) | (1L << (TIMEZONE_HOUR - 576)) | (1L << (TIMEZONE_MINUTE - 576)) | (1L << (TIMING - 576)) | (1L << (TO - 576)) | (1L << (TOAST - 576)) | (1L << (TOP_LEVEL_COUNT - 576)) | (1L << (TRAILING - 576)) | (1L << (TRANSACTION - 576)) | (1L << (TRANSACTION_ACTIVE - 576)) | (1L << (TRANSACTIONS_COMMITTED - 576)) | (1L << (TRANSACTIONS_ROLLED_BACK - 576)) | (1L << (TRANSFORM - 576)) | (1L << (TRANSFORMS - 576)) | (1L << (TRANSLATE - 576)) | (1L << (TRANSLATION - 576)) | (1L << (TREAT - 576)) | (1L << (TRIGGER - 576)) | (1L << (TRIGGER_CATALOG - 576)) | (1L << (TRIGGER_NAME - 576)) | (1L << (TRIGGER_SCHEMA - 576)) | (1L << (TRIM - 576)) | (1L << (TRUE - 576)) | (1L << (TRUNCATE - 576)) | (1L << (TRUSTED - 576)) | (1L << (TYPE - 576)) | (1L << (UESCAPE - 576)) | (1L << (UNBOUNDED - 576)) | (1L << (UNCOMMITTED - 576)) | (1L << (UNDER - 576)) | (1L << (UNENCRYPTED - 576)) | (1L << (UNION - 576)) | (1L << (UNIQUE - 576)) | (1L << (UNKNOWN - 576)) | (1L << (UNLISTEN - 576)) | (1L << (UNNAMED - 576)) | (1L << (UNNEST - 576)) | (1L << (UNTIL - 576)) | (1L << (UPDATE - 576)) | (1L << (UPPER - 576)) | (1L << (USAGE - 576)) | (1L << (USER - 576)) | (1L << (USER_DEFINED_TYPE_CATALOG - 576)) | (1L << (USER_DEFINED_TYPE_CODE - 576)) | (1L << (USER_DEFINED_TYPE_NAME - 576)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 576)) | (1L << (USING - 576)) | (1L << (VACUUM - 576)) | (1L << (VALID - 576)) | (1L << (VALIDATE - 576)) | (1L << (VALIDATOR - 576)) | (1L << (VALUE - 576)) | (1L << (VALUES - 576)) | (1L << (VAR_POP - 576)) | (1L << (VAR_SAMP - 576)) | (1L << (VARCHAR - 576)) | (1L << (VARIABLE - 576)) | (1L << (VARIADIC - 576)) | (1L << (VARYING - 576)) | (1L << (VERBOSE - 576)) | (1L << (VIEW - 576)))) != 0) || ((((_la - 640)) & ~0x3f) == 0 && ((1L << (_la - 640)) & ((1L << (VOLATILE - 640)) | (1L << (WHEN - 640)) | (1L << (WHENEVER - 640)) | (1L << (WHERE - 640)) | (1L << (WIDTH_BUCKET - 640)) | (1L << (WINDOW - 640)) | (1L << (WITH - 640)) | (1L << (WITHIN - 640)) | (1L << (WITHOUT - 640)) | (1L << (WORK - 640)) | (1L << (WRITE - 640)) | (1L << (YAML - 640)) | (1L << (YEAR - 640)) | (1L << (YES - 640)) | (1L << (ZONE - 640)) | (1L << (SUPERUSER - 640)) | (1L << (NOSUPERUSER - 640)) | (1L << (CREATEROLE - 640)) | (1L << (NOCREATEROLE - 640)) | (1L << (INHERIT - 640)) | (1L << (NOINHERIT - 640)) | (1L << (LOGIN - 640)) | (1L << (NOLOGIN - 640)) | (1L << (REPLICATION - 640)) | (1L << (NOREPLICATION - 640)) | (1L << (BYPASSRLS - 640)) | (1L << (NOBYPASSRLS - 640)) | (1L << (SFUNC - 640)) | (1L << (STYPE - 640)) | (1L << (SSPACE - 640)) | (1L << (FINALFUNC - 640)) | (1L << (FINALFUNC_EXTRA - 640)) | (1L << (COMBINEFUNC - 640)) | (1L << (SERIALFUNC - 640)) | (1L << (DESERIALFUNC - 640)) | (1L << (INITCOND - 640)) | (1L << (MSFUNC - 640)) | (1L << (MINVFUNC - 640)) | (1L << (MSTYPE - 640)) | (1L << (MSSPACE - 640)) | (1L << (MFINALFUNC - 640)) | (1L << (MFINALFUNC_EXTRA - 640)) | (1L << (MINITCOND - 640)) | (1L << (SORTOP - 640)) | (1L << (PARALLEL - 640)) | (1L << (HYPOTHETICAL - 640)) | (1L << (SAFE - 640)) | (1L << (RESTRICTED - 640)) | (1L << (UNSAFE - 640)) | (1L << (BASETYPE - 640)) | (1L << (IF - 640)) | (1L << (LOCALE - 640)) | (1L << (LC_COLLATE - 640)) | (1L << (LC_CTYPE - 640)) | (1L << (PROVIDER - 640)) | (1L << (VERSION - 640)) | (1L << (ALLOW_CONNECTIONS - 640)) | (1L << (IS_TEMPLATE - 640)) | (1L << (EVENT - 640)) | (1L << (WRAPPER - 640)) | (1L << (SERVER - 640)) | (1L << (BTREE - 640)) | (1L << (HASH_ - 640)) | (1L << (GIST - 640)))) != 0) || ((((_la - 704)) & ~0x3f) == 0 && ((1L << (_la - 704)) & ((1L << (SPGIST - 704)) | (1L << (GIN - 704)) | (1L << (BRIN - 704)) | (1L << (CONCURRENTLY - 704)) | (1L << (INLINE - 704)) | (1L << (MATERIALIZED - 704)) | (1L << (LEFTARG - 704)) | (1L << (RIGHTARG - 704)) | (1L << (COMMUTATOR - 704)) | (1L << (NEGATOR - 704)) | (1L << (HASHES - 704)) | (1L << (MERGES - 704)) | (1L << (FAMILY - 704)) | (1L << (POLICY - 704)) | (1L << (OWNED - 704)) | (1L << (ABSTIME - 704)) | (1L << (BIGSERIAL - 704)) | (1L << (BIT_VARYING - 704)) | (1L << (BOOL - 704)) | (1L << (BOX - 704)) | (1L << (BYTEA - 704)) | (1L << (CHARACTER_VARYING - 704)) | (1L << (CIDR - 704)) | (1L << (CIRCLE - 704)) | (1L << (FLOAT4 - 704)) | (1L << (FLOAT8 - 704)) | (1L << (INET - 704)) | (1L << (INT2 - 704)) | (1L << (INT4 - 704)) | (1L << (INT8 - 704)) | (1L << (JSON - 704)) | (1L << (JSONB - 704)) | (1L << (LINE - 704)) | (1L << (LSEG - 704)) | (1L << (MACADDR - 704)) | (1L << (MACADDR8 - 704)) | (1L << (MONEY - 704)) | (1L << (PG_LSN - 704)) | (1L << (POINT - 704)) | (1L << (POLYGON - 704)) | (1L << (RELTIME - 704)) | (1L << (SERIAL - 704)) | (1L << (SERIAL2 - 704)) | (1L << (SERIAL4 - 704)) | (1L << (SERIAL8 - 704)) | (1L << (SMALLSERIAL - 704)) | (1L << (STSTEM - 704)) | (1L << (TEXT - 704)) | (1L << (TIMESTAMPTZ - 704)) | (1L << (TIMETZ - 704)) | (1L << (TSQUERY - 704)) | (1L << (TSVECTOR - 704)) | (1L << (TXID_SNAPSHOT - 704)) | (1L << (UUID - 704)) | (1L << (VARBIT - 704)) | (1L << (XML - 704)) | (1L << (COMMA - 704)) | (1L << (COLON - 704)) | (1L << (COLON_COLON - 704)) | (1L << (DOLLAR_DOLLAR - 704)) | (1L << (STAR - 704)) | (1L << (OPEN_PAREN - 704)) | (1L << (CLOSE_PAREN - 704)))) != 0) || ((((_la - 768)) & ~0x3f) == 0 && ((1L << (_la - 768)) & ((1L << (OPEN_BRACKET - 768)) | (1L << (CLOSE_BRACKET - 768)) | (1L << (BIT_STRING - 768)) | (1L << (REGEX_STRING - 768)) | (1L << (NUMERIC_LITERAL - 768)) | (1L << (INTEGER_LITERAL - 768)) | (1L << (HEX_INTEGER_LITERAL - 768)) | (1L << (DOT - 768)) | (1L << (SINGLEQ_STRING_LITERAL - 768)) | (1L << (DOUBLEQ_STRING_LITERAL - 768)) | (1L << (IDENTIFIER - 768)) | (1L << (DOLLAR_DEC - 768)) | (1L << (IDENTIFIER_UNICODE - 768)) | (1L << (AMP - 768)) | (1L << (AMP_AMP - 768)) | (1L << (AMP_LT - 768)) | (1L << (AT_AT - 768)) | (1L << (AT_GT - 768)) | (1L << (AT_SIGN - 768)) | (1L << (BANG - 768)) | (1L << (BANG_BANG - 768)) | (1L << (BANG_EQUAL - 768)) | (1L << (CARET - 768)) | (1L << (EQUAL - 768)) | (1L << (EQUAL_GT - 768)) | (1L << (GT - 768)) | (1L << (GTE - 768)) | (1L << (GT_GT - 768)) | (1L << (HASH - 768)) | (1L << (HASH_EQ - 768)) | (1L << (HASH_GT - 768)) | (1L << (HASH_GT_GT - 768)) | (1L << (HASH_HASH - 768)) | (1L << (HYPHEN_GT - 768)) | (1L << (HYPHEN_GT_GT - 768)) | (1L << (HYPHEN_PIPE_HYPHEN - 768)) | (1L << (LT - 768)) | (1L << (LTE - 768)) | (1L << (LT_AT - 768)) | (1L << (LT_CARET - 768)) | (1L << (LT_GT - 768)) | (1L << (LT_HYPHEN_GT - 768)) | (1L << (LT_LT - 768)) | (1L << (LT_LT_EQ - 768)) | (1L << (LT_QMARK_GT - 768)) | (1L << (MINUS - 768)) | (1L << (PERCENT - 768)) | (1L << (PIPE - 768)) | (1L << (PIPE_PIPE - 768)) | (1L << (PIPE_PIPE_SLASH - 768)) | (1L << (PIPE_SLASH - 768)) | (1L << (PLUS - 768)) | (1L << (QMARK - 768)) | (1L << (QMARK_AMP - 768)) | (1L << (QMARK_HASH - 768)) | (1L << (QMARK_HYPHEN - 768)) | (1L << (QMARK_PIPE - 768)) | (1L << (SLASH - 768)) | (1L << (TIL - 768)) | (1L << (TIL_EQ - 768)) | (1L << (TIL_GTE_TIL - 768)) | (1L << (TIL_GT_TIL - 768)) | (1L << (TIL_LTE_TIL - 768)) | (1L << (TIL_LT_TIL - 768)))) != 0) || ((((_la - 832)) & ~0x3f) == 0 && ((1L << (_la - 832)) & ((1L << (TIL_STAR - 832)) | (1L << (TIL_TIL - 832)) | (1L << (SEMI - 832)) | (1L << (UNLOGGED - 832)))) != 0)); - setState(4614); - match(DOLLAR); - setState(4615); - identifier(0); - setState(4616); - match(DOLLAR); - } - break; - case 16: { - setState(4618); - bool_expr(0); - } - break; - case 17: { - setState(4619); - values_stmt(); - } - break; - case 18: { - setState(4620); - expr_list(); - } - break; - case 19: { - setState(4621); - match(OPEN_PAREN); - setState(4622); - expr(0); - setState(4623); - match(CLOSE_PAREN); - } - break; - case 20: { - setState(4625); - type_name(); - setState(4626); - match(SINGLEQ_STRING_LITERAL); - } - break; - case 21: { - setState(4628); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)))) != 0))) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4629); - expr(30); - } - break; - case 22: { - setState(4630); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(_la == QMARK_HYPHEN || _la == TIL)) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4631); - expr(29); - } - break; - case 23: { - setState(4632); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(_la == ALL || _la == NOT)) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4633); - expr(17); - } - break; - case 24: { - setState(4634); - func_call(); - } - break; - case 25: { - setState(4635); - identifier(0); - } - break; - case 26: { - setState(4636); - match(CAST); - setState(4637); - match(OPEN_PAREN); - setState(4638); - expr(0); - setState(4639); - match(AS); - setState(4640); - data_type(); - setState(4641); - match(CLOSE_PAREN); - } - break; - case 27: { - setState(4643); - correlation_name(); - setState(4644); - match(DOT); - setState(4645); - column_name(); - } - break; - case 28: { - setState(4647); - case_expr(); - } - break; - case 29: { - setState(4648); - data_type(); - setState(4649); - expr(9); - } - break; - case 30: { - setState(4651); - aggregate(); - } - break; - case 31: { - setState(4652); - array_cons_expr(); - } - break; - case 32: { - setState(4653); - match(EXISTS); - setState(4654); - expr(3); - } - break; - case 33: { - setState(4655); - match(DOLLAR_DEC); - } - break; - case 34: { - setState(4656); - match(OPEN_PAREN); - setState(4657); - select_stmt(); - setState(4658); - match(CLOSE_PAREN); - } - break; - } - _ctx.stop = _input.LT(-1); - setState(4761); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 557, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - if (_parseListeners != null) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(4759); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 556, _ctx)) { - case 1: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4662); - if (!(precpred(_ctx, 27))) - throw new FailedPredicateException(this, "precpred(_ctx, 27)"); - setState(4663); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(((((_la - 790)) & ~0x3f) == 0 && ((1L << (_la - 790)) & ((1L << (CARET - 790)) | (1L << (PIPE_PIPE_SLASH - 790)) | (1L << (PIPE_SLASH - 790)))) != 0))) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4664); - expr(28); - } - break; - case 2: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4665); - if (!(precpred(_ctx, 26))) - throw new FailedPredicateException(this, "precpred(_ctx, 26)"); - setState(4666); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(((((_la - 765)) & ~0x3f) == 0 && ((1L << (_la - 765)) & ((1L << (STAR - 765)) | (1L << (PERCENT - 765)) | (1L << (SLASH - 765)))) != 0))) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4667); - expr(27); - } - break; - case 3: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4668); - if (!(precpred(_ctx, 25))) - throw new FailedPredicateException(this, "precpred(_ctx, 25)"); - setState(4669); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(_la == MINUS || _la == PLUS)) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4670); - expr(26); - } - break; - case 4: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4671); - if (!(precpred(_ctx, 24))) - throw new FailedPredicateException(this, "precpred(_ctx, 24)"); - setState(4672); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(_la == AND || _la == NOT || _la == OR || ((((_la - 781)) & ~0x3f) == 0 && ((1L << (_la - 781)) & ((1L << (AMP - 781)) | (1L << (AMP_AMP - 781)) | (1L << (AMP_LT - 781)) | (1L << (AT_AT - 781)) | (1L << (AT_GT - 781)) | (1L << (EQUAL_GT - 781)) | (1L << (GT_GT - 781)) | (1L << (HASH - 781)) | (1L << (HASH_EQ - 781)) | (1L << (HASH_GT - 781)) | (1L << (HASH_GT_GT - 781)) | (1L << (HASH_HASH - 781)) | (1L << (HYPHEN_GT - 781)) | (1L << (HYPHEN_GT_GT - 781)) | (1L << (HYPHEN_PIPE_HYPHEN - 781)) | (1L << (LT_AT - 781)) | (1L << (LT_CARET - 781)) | (1L << (LT_HYPHEN_GT - 781)) | (1L << (LT_LT - 781)) | (1L << (LT_LT_EQ - 781)) | (1L << (LT_QMARK_GT - 781)) | (1L << (PIPE - 781)) | (1L << (PIPE_PIPE - 781)) | (1L << (QMARK - 781)) | (1L << (QMARK_AMP - 781)) | (1L << (QMARK_HASH - 781)) | (1L << (QMARK_PIPE - 781)) | (1L << (TIL - 781)) | (1L << (TIL_EQ - 781)) | (1L << (TIL_GTE_TIL - 781)) | (1L << (TIL_GT_TIL - 781)) | (1L << (TIL_LTE_TIL - 781)) | (1L << (TIL_LT_TIL - 781)) | (1L << (TIL_STAR - 781)) | (1L << (TIL_TIL - 781)))) != 0))) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4673); - expr(25); - } - break; - case 5: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4674); - if (!(precpred(_ctx, 23))) - throw new FailedPredicateException(this, "precpred(_ctx, 23)"); - setState(4678); - _errHandler.sync(this); - switch (_input.LA(1)) { - case NOT: { - setState(4675); - match(NOT); - setState(4676); - match(LIKE); - } - break; - case LIKE: { - setState(4677); - match(LIKE); - } - break; - default: - throw new NoViableAltException(this); - } - setState(4680); - expr(24); - } - break; - case 6: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4681); - if (!(precpred(_ctx, 22))) - throw new FailedPredicateException(this, "precpred(_ctx, 22)"); - setState(4683); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(4682); - match(NOT); - } - } - - setState(4685); - match(BETWEEN); - setState(4686); - expr(0); - setState(4687); - match(AND); - setState(4688); - expr(23); - } - break; - case 7: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4690); - if (!(precpred(_ctx, 21))) - throw new FailedPredicateException(this, "precpred(_ctx, 21)"); - setState(4691); - match(IN); - setState(4692); - expr(22); - } - break; - case 8: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4693); - if (!(precpred(_ctx, 20))) - throw new FailedPredicateException(this, "precpred(_ctx, 20)"); - setState(4694); - ((ExprContext) _localctx).op = _input.LT(1); - _la = _input.LA(1); - if (!(((((_la - 789)) & ~0x3f) == 0 && ((1L << (_la - 789)) & ((1L << (BANG_EQUAL - 789)) | (1L << (EQUAL - 789)) | (1L << (GT - 789)) | (1L << (GTE - 789)) | (1L << (LT - 789)) | (1L << (LTE - 789)) | (1L << (LT_GT - 789)))) != 0))) { - ((ExprContext) _localctx).op = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4695); - expr(21); - } - break; - case 9: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4696); - if (!(precpred(_ctx, 18))) - throw new FailedPredicateException(this, "precpred(_ctx, 18)"); - setState(4697); - match(IS); - setState(4699); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(4698); - match(NOT); - } - } - - setState(4701); - match(DISTINCT); - setState(4702); - match(FROM); - setState(4703); - expr(19); - } - break; - case 10: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4704); - if (!(precpred(_ctx, 33))) - throw new FailedPredicateException(this, "precpred(_ctx, 33)"); - setState(4705); - match(OPEN_BRACKET); - setState(4706); - expr(0); - setState(4707); - match(CLOSE_BRACKET); - } - break; - case 11: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4709); - if (!(precpred(_ctx, 28))) - throw new FailedPredicateException(this, "precpred(_ctx, 28)"); - setState(4710); - ((ExprContext) _localctx).op = match(BANG); - } - break; - case 12: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4711); - if (!(precpred(_ctx, 19))) - throw new FailedPredicateException(this, "precpred(_ctx, 19)"); - setState(4712); - ((ExprContext) _localctx).op = match(IS); - setState(4717); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 550, _ctx)) { - case 1: { - setState(4713); - bool_expr(0); - } - break; - case 2: { - setState(4714); - match(NULL); - } - break; - case 3: { - setState(4715); - match(NOT); - setState(4716); - match(NULL); - } - break; - } - } - break; - case 13: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4719); - if (!(precpred(_ctx, 11))) - throw new FailedPredicateException(this, "precpred(_ctx, 11)"); - setState(4729); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(4720); - match(OPEN_BRACKET); - setState(4722); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { - { - setState(4721); - expr(0); - } - } - - setState(4724); - match(COLON); - setState(4726); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { - { - setState(4725); - expr(0); - } - } - - setState(4728); - match(CLOSE_BRACKET); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(4731); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 553, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - } - break; - case 14: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4733); - if (!(precpred(_ctx, 10))) - throw new FailedPredicateException(this, "precpred(_ctx, 10)"); - setState(4736); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: { - { - setState(4734); - match(COLON_COLON); - setState(4735); - data_type(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(4738); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 554, _ctx); - } while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER); - } - break; - case 15: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4740); - if (!(precpred(_ctx, 8))) - throw new FailedPredicateException(this, "precpred(_ctx, 8)"); - setState(4741); - match(IS); - setState(4742); - match(OF); - setState(4743); - match(OPEN_PAREN); - setState(4744); - data_type(); - setState(4745); - match(CLOSE_PAREN); - } - break; - case 16: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4747); - if (!(precpred(_ctx, 7))) - throw new FailedPredicateException(this, "precpred(_ctx, 7)"); - setState(4748); - match(DOT); - setState(4751); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(4749); - identifier(0); - } - break; - case STAR: { - setState(4750); - match(STAR); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 17: { - _localctx = new ExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(4753); - if (!(precpred(_ctx, 4))) - throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - { - setState(4754); - match(AT); - setState(4755); - match(TIME); - setState(4756); - match(ZONE); - } - setState(4758); - match(SINGLEQ_STRING_LITERAL); - } - break; - } - } - } - setState(4763); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 557, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class Bool_exprContext extends ParserRuleContext { - public TerminalNode TRUE() { - return getToken(PostgreSQLParser.TRUE, 0); - } - - public TerminalNode FALSE() { - return getToken(PostgreSQLParser.FALSE, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public List bool_expr() { - return getRuleContexts(Bool_exprContext.class); - } - - public Bool_exprContext bool_expr(int i) { - return getRuleContext(Bool_exprContext.class, i); - } - - public TerminalNode AND() { - return getToken(PostgreSQLParser.AND, 0); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public Bool_exprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_bool_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterBool_expr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitBool_expr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitBool_expr(this); - else return visitor.visitChildren(this); - } - } - - public final Bool_exprContext bool_expr() throws RecognitionException { - return bool_expr(0); - } - - private Bool_exprContext bool_expr(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - Bool_exprContext _localctx = new Bool_exprContext(_ctx, _parentState); - Bool_exprContext _prevctx = _localctx; - int _startState = 434; - enterRecursionRule(_localctx, 434, RULE_bool_expr, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4769); - _errHandler.sync(this); - switch (_input.LA(1)) { - case TRUE: { - setState(4765); - match(TRUE); - } - break; - case FALSE: { - setState(4766); - match(FALSE); - } - break; - case NOT: { - setState(4767); - match(NOT); - setState(4768); - bool_expr(3); - } - break; - default: - throw new NoViableAltException(this); - } - _ctx.stop = _input.LT(-1); - setState(4779); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 560, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - if (_parseListeners != null) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(4777); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 559, _ctx)) { - case 1: { - _localctx = new Bool_exprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_bool_expr); - setState(4771); - if (!(precpred(_ctx, 2))) - throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(4772); - match(AND); - setState(4773); - bool_expr(3); - } - break; - case 2: { - _localctx = new Bool_exprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_bool_expr); - setState(4774); - if (!(precpred(_ctx, 1))) - throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(4775); - match(OR); - setState(4776); - bool_expr(2); - } - break; - } - } - } - setState(4781); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 560, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class Case_exprContext extends ParserRuleContext { - public TerminalNode CASE() { - return getToken(PostgreSQLParser.CASE, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public TerminalNode END() { - return getToken(PostgreSQLParser.END, 0); - } - - public List WHEN() { - return getTokens(PostgreSQLParser.WHEN); - } - - public TerminalNode WHEN(int i) { - return getToken(PostgreSQLParser.WHEN, i); - } - - public List THEN() { - return getTokens(PostgreSQLParser.THEN); - } - - public TerminalNode THEN(int i) { - return getToken(PostgreSQLParser.THEN, i); - } - - public TerminalNode ELSE() { - return getToken(PostgreSQLParser.ELSE, 0); - } - - public List predicate() { - return getRuleContexts(PredicateContext.class); - } - - public PredicateContext predicate(int i) { - return getRuleContext(PredicateContext.class, i); - } - - public Case_exprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_case_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCase_expr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitCase_expr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCase_expr(this); - else return visitor.visitChildren(this); - } - } - - public final Case_exprContext case_expr() throws RecognitionException { - Case_exprContext _localctx = new Case_exprContext(_ctx, getState()); - enterRule(_localctx, 436, RULE_case_expr); - int _la; - try { - setState(4815); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 565, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(4782); - match(CASE); - setState(4783); - expr(0); - setState(4789); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(4784); - match(WHEN); - setState(4785); - expr(0); - setState(4786); - match(THEN); - setState(4787); - expr(0); - } - } - setState(4791); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == WHEN); - setState(4795); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ELSE) { - { - setState(4793); - match(ELSE); - setState(4794); - expr(0); - } - } - - setState(4797); - match(END); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(4799); - match(CASE); - setState(4805); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(4800); - match(WHEN); - setState(4801); - predicate(0); - setState(4802); - match(THEN); - setState(4803); - expr(0); - } - } - setState(4807); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == WHEN); - setState(4811); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ELSE) { - { - setState(4809); - match(ELSE); - setState(4810); - expr(0); - } - } - - setState(4813); - match(END); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Expr_listContext extends ParserRuleContext { - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Expr_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_expr_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterExpr_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitExpr_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExpr_list(this); - else return visitor.visitChildren(this); - } - } - - public final Expr_listContext expr_list() throws RecognitionException { - Expr_listContext _localctx = new Expr_listContext(_ctx, getState()); - enterRule(_localctx, 438, RULE_expr_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4817); - match(OPEN_PAREN); - setState(4818); - expr(0); - setState(4823); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4819); - match(COMMA); - setState(4820); - expr(0); - } - } - setState(4825); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(4826); - match(CLOSE_PAREN); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Expr_list_listContext extends ParserRuleContext { - public List expr_list() { - return getRuleContexts(Expr_listContext.class); - } - - public Expr_listContext expr_list(int i) { - return getRuleContext(Expr_listContext.class, i); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Expr_list_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_expr_list_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterExpr_list_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitExpr_list_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExpr_list_list(this); - else return visitor.visitChildren(this); - } - } - - public final Expr_list_listContext expr_list_list() throws RecognitionException { - Expr_list_listContext _localctx = new Expr_list_listContext(_ctx, getState()); - enterRule(_localctx, 440, RULE_expr_list_list); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(4829); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 567, _ctx)) { - case 1: { - setState(4828); - match(OPEN_PAREN); - } - break; - } - setState(4831); - expr_list(); - setState(4836); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 568, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(4832); - match(COMMA); - setState(4833); - expr_list(); - } - } - } - setState(4838); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 568, _ctx); - } - setState(4840); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 569, _ctx)) { - case 1: { - setState(4839); - match(CLOSE_PAREN); - } - break; - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Func_sig_argContext extends ParserRuleContext { - public Token argmode; - public IdentifierContext argname; - public Data_typeContext argtype; - - public Data_typeContext data_type() { - return getRuleContext(Data_typeContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode IN() { - return getToken(PostgreSQLParser.IN, 0); - } - - public TerminalNode OUT() { - return getToken(PostgreSQLParser.OUT, 0); - } - - public TerminalNode INOUT() { - return getToken(PostgreSQLParser.INOUT, 0); - } - - public TerminalNode VARIADIC() { - return getToken(PostgreSQLParser.VARIADIC, 0); - } - - public Func_sig_argContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_func_sig_arg; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFunc_sig_arg(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFunc_sig_arg(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFunc_sig_arg(this); - else return visitor.visitChildren(this); - } - } - - public final Func_sig_argContext func_sig_arg() throws RecognitionException { - Func_sig_argContext _localctx = new Func_sig_argContext(_ctx, getState()); - enterRule(_localctx, 442, RULE_func_sig_arg); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4849); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0)) { - { - setState(4843); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 570, _ctx)) { - case 1: { - setState(4842); - ((Func_sig_argContext) _localctx).argmode = _input.LT(1); - _la = _input.LA(1); - if (!(_la == IN || _la == INOUT || _la == OUT || _la == VARIADIC)) { - ((Func_sig_argContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(4846); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 571, _ctx)) { - case 1: { - setState(4845); - ((Func_sig_argContext) _localctx).argname = identifier(0); - } - break; - } - setState(4848); - ((Func_sig_argContext) _localctx).argtype = data_type(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Func_sig_arg_listContext extends ParserRuleContext { - public List func_sig_arg() { - return getRuleContexts(Func_sig_argContext.class); - } - - public Func_sig_argContext func_sig_arg(int i) { - return getRuleContext(Func_sig_argContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Func_sig_arg_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_func_sig_arg_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFunc_sig_arg_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFunc_sig_arg_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFunc_sig_arg_list(this); - else return visitor.visitChildren(this); - } - } - - public final Func_sig_arg_listContext func_sig_arg_list() throws RecognitionException { - Func_sig_arg_listContext _localctx = new Func_sig_arg_listContext(_ctx, getState()); - enterRule(_localctx, 444, RULE_func_sig_arg_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4851); - func_sig_arg(); - setState(4856); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4852); - match(COMMA); - setState(4853); - func_sig_arg(); - } - } - setState(4858); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Func_sigContext extends ParserRuleContext { - public IdentifierContext name; - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Func_sig_arg_listContext func_sig_arg_list() { - return getRuleContext(Func_sig_arg_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public Func_sigContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_func_sig; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterFunc_sig(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFunc_sig(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFunc_sig(this); - else return visitor.visitChildren(this); - } - } - - public final Func_sigContext func_sig() throws RecognitionException { - Func_sigContext _localctx = new Func_sigContext(_ctx, getState()); - enterRule(_localctx, 446, RULE_func_sig); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4859); - ((Func_sigContext) _localctx).name = identifier(0); - setState(4864); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OPEN_PAREN) { - { - setState(4860); - match(OPEN_PAREN); - setState(4861); - func_sig_arg_list(); - setState(4862); - match(CLOSE_PAREN); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Func_sig_listContext extends ParserRuleContext { - public List func_sig() { - return getRuleContexts(Func_sigContext.class); - } - - public Func_sigContext func_sig(int i) { - return getRuleContext(Func_sigContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Func_sig_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_func_sig_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFunc_sig_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitFunc_sig_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFunc_sig_list(this); - else return visitor.visitChildren(this); - } - } - - public final Func_sig_listContext func_sig_list() throws RecognitionException { - Func_sig_listContext _localctx = new Func_sig_listContext(_ctx, getState()); - enterRule(_localctx, 448, RULE_func_sig_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(4866); - func_sig(); - setState(4871); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(4867); - match(COMMA); - setState(4868); - func_sig(); - } - } - setState(4873); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Type_nameContext extends ParserRuleContext { - public TerminalNode ABSTIME() { - return getToken(PostgreSQLParser.ABSTIME, 0); - } - - public TerminalNode RELTIME() { - return getToken(PostgreSQLParser.RELTIME, 0); - } - - public TerminalNode BIGINT() { - return getToken(PostgreSQLParser.BIGINT, 0); - } - - public TerminalNode BIGSERIAL() { - return getToken(PostgreSQLParser.BIGSERIAL, 0); - } - - public TerminalNode BIT() { - return getToken(PostgreSQLParser.BIT, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode BIT_VARYING() { - return getToken(PostgreSQLParser.BIT_VARYING, 0); - } - - public TerminalNode BOOL() { - return getToken(PostgreSQLParser.BOOL, 0); - } - - public TerminalNode BOOLEAN() { - return getToken(PostgreSQLParser.BOOLEAN, 0); - } - - public TerminalNode BOX() { - return getToken(PostgreSQLParser.BOX, 0); - } - - public TerminalNode BYTEA() { - return getToken(PostgreSQLParser.BYTEA, 0); - } - - public TerminalNode CHAR() { - return getToken(PostgreSQLParser.CHAR, 0); - } - - public TerminalNode CHARACTER() { - return getToken(PostgreSQLParser.CHARACTER, 0); - } - - public TerminalNode CHARACTER_VARYING() { - return getToken(PostgreSQLParser.CHARACTER_VARYING, 0); - } - - public TerminalNode CIDR() { - return getToken(PostgreSQLParser.CIDR, 0); - } - - public TerminalNode CIRCLE() { - return getToken(PostgreSQLParser.CIRCLE, 0); - } - - public TerminalNode DATE() { - return getToken(PostgreSQLParser.DATE, 0); - } - - public TerminalNode DECIMAL() { - return getToken(PostgreSQLParser.DECIMAL, 0); - } - - public TerminalNode COMMA() { - return getToken(PostgreSQLParser.COMMA, 0); - } - - public TerminalNode DOUBLE() { - return getToken(PostgreSQLParser.DOUBLE, 0); - } - - public TerminalNode PRECISION() { - return getToken(PostgreSQLParser.PRECISION, 0); - } - - public TerminalNode FLOAT4() { - return getToken(PostgreSQLParser.FLOAT4, 0); - } - - public TerminalNode FLOAT8() { - return getToken(PostgreSQLParser.FLOAT8, 0); - } - - public TerminalNode INET() { - return getToken(PostgreSQLParser.INET, 0); - } - - public TerminalNode INT() { - return getToken(PostgreSQLParser.INT, 0); - } - - public TerminalNode INT4() { - return getToken(PostgreSQLParser.INT4, 0); - } - - public TerminalNode INT2() { - return getToken(PostgreSQLParser.INT2, 0); - } - - public TerminalNode INT8() { - return getToken(PostgreSQLParser.INT8, 0); - } - - public TerminalNode INTEGER() { - return getToken(PostgreSQLParser.INTEGER, 0); - } - - public TerminalNode INTERVAL() { - return getToken(PostgreSQLParser.INTERVAL, 0); - } - - public TerminalNode FIELDS() { - return getToken(PostgreSQLParser.FIELDS, 0); - } - - public TerminalNode JSON() { - return getToken(PostgreSQLParser.JSON, 0); - } - - public TerminalNode JSONB() { - return getToken(PostgreSQLParser.JSONB, 0); - } - - public TerminalNode LINE() { - return getToken(PostgreSQLParser.LINE, 0); - } - - public TerminalNode LSEG() { - return getToken(PostgreSQLParser.LSEG, 0); - } - - public TerminalNode MACADDR() { - return getToken(PostgreSQLParser.MACADDR, 0); - } - - public TerminalNode MACADDR8() { - return getToken(PostgreSQLParser.MACADDR8, 0); - } - - public TerminalNode MONEY() { - return getToken(PostgreSQLParser.MONEY, 0); - } - - public TerminalNode NUMERIC() { - return getToken(PostgreSQLParser.NUMERIC, 0); - } - - public TerminalNode PATH() { - return getToken(PostgreSQLParser.PATH, 0); - } - - public TerminalNode PG_LSN() { - return getToken(PostgreSQLParser.PG_LSN, 0); - } - - public TerminalNode POINT() { - return getToken(PostgreSQLParser.POINT, 0); - } - - public TerminalNode POLYGON() { - return getToken(PostgreSQLParser.POLYGON, 0); - } - - public TerminalNode REAL() { - return getToken(PostgreSQLParser.REAL, 0); - } - - public TerminalNode SERIAL() { - return getToken(PostgreSQLParser.SERIAL, 0); - } - - public TerminalNode SERIAL2() { - return getToken(PostgreSQLParser.SERIAL2, 0); - } - - public TerminalNode SERIAL4() { - return getToken(PostgreSQLParser.SERIAL4, 0); - } - - public TerminalNode SERIAL8() { - return getToken(PostgreSQLParser.SERIAL8, 0); - } - - public TerminalNode SMALLINT() { - return getToken(PostgreSQLParser.SMALLINT, 0); - } - - public TerminalNode SMALLSERIAL() { - return getToken(PostgreSQLParser.SMALLSERIAL, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public List TIME() { - return getTokens(PostgreSQLParser.TIME); - } - - public TerminalNode TIME(int i) { - return getToken(PostgreSQLParser.TIME, i); - } - - public TerminalNode ZONE() { - return getToken(PostgreSQLParser.ZONE, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode WITHOUT() { - return getToken(PostgreSQLParser.WITHOUT, 0); - } - - public TerminalNode TIMESTAMP() { - return getToken(PostgreSQLParser.TIMESTAMP, 0); - } - - public TerminalNode TIMETZ() { - return getToken(PostgreSQLParser.TIMETZ, 0); - } - - public TerminalNode TIMESTAMPTZ() { - return getToken(PostgreSQLParser.TIMESTAMPTZ, 0); - } - - public TerminalNode TSQUERY() { - return getToken(PostgreSQLParser.TSQUERY, 0); - } - - public TerminalNode TSVECTOR() { - return getToken(PostgreSQLParser.TSVECTOR, 0); - } - - public TerminalNode TXID_SNAPSHOT() { - return getToken(PostgreSQLParser.TXID_SNAPSHOT, 0); - } - - public TerminalNode UUID() { - return getToken(PostgreSQLParser.UUID, 0); - } - - public TerminalNode VARBIT() { - return getToken(PostgreSQLParser.VARBIT, 0); - } - - public TerminalNode VARCHAR() { - return getToken(PostgreSQLParser.VARCHAR, 0); - } - - public TerminalNode XML() { - return getToken(PostgreSQLParser.XML, 0); - } - - public Type_nameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_type_name; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterType_name(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitType_name(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitType_name(this); - else return visitor.visitChildren(this); - } - } - - public final Type_nameContext type_name() throws RecognitionException { - Type_nameContext _localctx = new Type_nameContext(_ctx, getState()); - enterRule(_localctx, 450, RULE_type_name); - int _la; - try { - setState(5018); - _errHandler.sync(this); - switch (_input.LA(1)) { - case ABSTIME: - enterOuterAlt(_localctx, 1); - { - setState(4874); - match(ABSTIME); - } - break; - case RELTIME: - enterOuterAlt(_localctx, 2); - { - setState(4875); - match(RELTIME); - } - break; - case BIGINT: - enterOuterAlt(_localctx, 3); - { - setState(4876); - match(BIGINT); - } - break; - case BIGSERIAL: - enterOuterAlt(_localctx, 4); - { - setState(4877); - match(BIGSERIAL); - } - break; - case BIT: - enterOuterAlt(_localctx, 5); - { - setState(4878); - match(BIT); - setState(4882); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 576, _ctx)) { - case 1: { - setState(4879); - match(OPEN_PAREN); - setState(4880); - match(INTEGER_LITERAL); - setState(4881); - match(CLOSE_PAREN); - } - break; - } - } - break; - case BIT_VARYING: - enterOuterAlt(_localctx, 6); - { - setState(4884); - match(BIT_VARYING); - setState(4888); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 577, _ctx)) { - case 1: { - setState(4885); - match(OPEN_PAREN); - setState(4886); - match(INTEGER_LITERAL); - setState(4887); - match(CLOSE_PAREN); - } - break; - } - } - break; - case BOOL: - enterOuterAlt(_localctx, 7); - { - setState(4890); - match(BOOL); - } - break; - case BOOLEAN: - enterOuterAlt(_localctx, 8); - { - setState(4891); - match(BOOLEAN); - } - break; - case BOX: - enterOuterAlt(_localctx, 9); - { - setState(4892); - match(BOX); - } - break; - case BYTEA: - enterOuterAlt(_localctx, 10); - { - setState(4893); - match(BYTEA); - } - break; - case CHAR: - enterOuterAlt(_localctx, 11); - { - setState(4894); - match(CHAR); - setState(4898); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 578, _ctx)) { - case 1: { - setState(4895); - match(OPEN_PAREN); - setState(4896); - match(INTEGER_LITERAL); - setState(4897); - match(CLOSE_PAREN); - } - break; - } - } - break; - case CHARACTER: - enterOuterAlt(_localctx, 12); - { - setState(4900); - match(CHARACTER); - setState(4904); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 579, _ctx)) { - case 1: { - setState(4901); - match(OPEN_PAREN); - setState(4902); - match(INTEGER_LITERAL); - setState(4903); - match(CLOSE_PAREN); - } - break; - } - } - break; - case CHARACTER_VARYING: - enterOuterAlt(_localctx, 13); - { - setState(4906); - match(CHARACTER_VARYING); - setState(4910); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 580, _ctx)) { - case 1: { - setState(4907); - match(OPEN_PAREN); - setState(4908); - match(INTEGER_LITERAL); - setState(4909); - match(CLOSE_PAREN); - } - break; - } - } - break; - case CIDR: - enterOuterAlt(_localctx, 14); - { - setState(4912); - match(CIDR); - } - break; - case CIRCLE: - enterOuterAlt(_localctx, 15); - { - setState(4913); - match(CIRCLE); - } - break; - case DATE: - enterOuterAlt(_localctx, 16); - { - setState(4914); - match(DATE); - } - break; - case DECIMAL: - enterOuterAlt(_localctx, 17); - { - setState(4915); - match(DECIMAL); - setState(4921); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 581, _ctx)) { - case 1: { - setState(4916); - match(OPEN_PAREN); - setState(4917); - match(INTEGER_LITERAL); - setState(4918); - match(COMMA); - setState(4919); - match(INTEGER_LITERAL); - setState(4920); - match(CLOSE_PAREN); - } - break; - } - } - break; - case DOUBLE: - enterOuterAlt(_localctx, 18); - { - setState(4923); - match(DOUBLE); - setState(4924); - match(PRECISION); - } - break; - case FLOAT4: - enterOuterAlt(_localctx, 19); - { - setState(4925); - match(FLOAT4); - } - break; - case FLOAT8: - enterOuterAlt(_localctx, 20); - { - setState(4926); - match(FLOAT8); - } - break; - case INET: - enterOuterAlt(_localctx, 21); - { - setState(4927); - match(INET); - } - break; - case INT: - enterOuterAlt(_localctx, 22); - { - setState(4928); - match(INT); - } - break; - case INT4: - enterOuterAlt(_localctx, 23); - { - setState(4929); - match(INT4); - } - break; - case INT2: - enterOuterAlt(_localctx, 24); - { - setState(4930); - match(INT2); - } - break; - case INT8: - enterOuterAlt(_localctx, 25); - { - setState(4931); - match(INT8); - } - break; - case INTEGER: - enterOuterAlt(_localctx, 26); - { - setState(4932); - match(INTEGER); - } - break; - case INTERVAL: - enterOuterAlt(_localctx, 27); - { - setState(4933); - match(INTERVAL); - setState(4935); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 582, _ctx)) { - case 1: { - setState(4934); - match(FIELDS); - } - break; - } - setState(4938); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 583, _ctx)) { - case 1: { - setState(4937); - match(INTEGER_LITERAL); - } - break; - } - } - break; - case JSON: - enterOuterAlt(_localctx, 28); - { - setState(4940); - match(JSON); - } - break; - case JSONB: - enterOuterAlt(_localctx, 29); - { - setState(4941); - match(JSONB); - } - break; - case LINE: - enterOuterAlt(_localctx, 30); - { - setState(4942); - match(LINE); - } - break; - case LSEG: - enterOuterAlt(_localctx, 31); - { - setState(4943); - match(LSEG); - } - break; - case MACADDR: - enterOuterAlt(_localctx, 32); - { - setState(4944); - match(MACADDR); - } - break; - case MACADDR8: - enterOuterAlt(_localctx, 33); - { - setState(4945); - match(MACADDR8); - } - break; - case MONEY: - enterOuterAlt(_localctx, 34); - { - setState(4946); - match(MONEY); - } - break; - case NUMERIC: - enterOuterAlt(_localctx, 35); - { - setState(4947); - match(NUMERIC); - setState(4953); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 584, _ctx)) { - case 1: { - setState(4948); - match(OPEN_PAREN); - setState(4949); - match(INTEGER_LITERAL); - setState(4950); - match(COMMA); - setState(4951); - match(INTEGER_LITERAL); - setState(4952); - match(CLOSE_PAREN); - } - break; - } - } - break; - case PATH: - enterOuterAlt(_localctx, 36); - { - setState(4955); - match(PATH); - } - break; - case PG_LSN: - enterOuterAlt(_localctx, 37); - { - setState(4956); - match(PG_LSN); - } - break; - case POINT: - enterOuterAlt(_localctx, 38); - { - setState(4957); - match(POINT); - } - break; - case POLYGON: - enterOuterAlt(_localctx, 39); - { - setState(4958); - match(POLYGON); - } - break; - case REAL: - enterOuterAlt(_localctx, 40); - { - setState(4959); - match(REAL); - } - break; - case SERIAL: - enterOuterAlt(_localctx, 41); - { - setState(4960); - match(SERIAL); - } - break; - case SERIAL2: - enterOuterAlt(_localctx, 42); - { - setState(4961); - match(SERIAL2); - } - break; - case SERIAL4: - enterOuterAlt(_localctx, 43); - { - setState(4962); - match(SERIAL4); - } - break; - case SERIAL8: - enterOuterAlt(_localctx, 44); - { - setState(4963); - match(SERIAL8); - } - break; - case SMALLINT: - enterOuterAlt(_localctx, 45); - { - setState(4964); - match(SMALLINT); - } - break; - case SMALLSERIAL: - enterOuterAlt(_localctx, 46); - { - setState(4965); - match(SMALLSERIAL); - } - break; - case TEXT: - enterOuterAlt(_localctx, 47); - { - setState(4966); - match(TEXT); - } - break; - case TIME: - enterOuterAlt(_localctx, 48); - { - setState(4967); - match(TIME); - setState(4971); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 585, _ctx)) { - case 1: { - setState(4968); - match(OPEN_PAREN); - setState(4969); - match(INTEGER_LITERAL); - setState(4970); - match(CLOSE_PAREN); - } - break; - } - setState(4976); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 586, _ctx)) { - case 1: { - setState(4973); - _la = _input.LA(1); - if (!(_la == WITH || _la == WITHOUT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4974); - match(TIME); - setState(4975); - match(ZONE); - } - break; - } - } - break; - case TIMESTAMP: - enterOuterAlt(_localctx, 49); - { - setState(4978); - match(TIMESTAMP); - setState(4982); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 587, _ctx)) { - case 1: { - setState(4979); - match(OPEN_PAREN); - setState(4980); - match(INTEGER_LITERAL); - setState(4981); - match(CLOSE_PAREN); - } - break; - } - setState(4987); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 588, _ctx)) { - case 1: { - setState(4984); - _la = _input.LA(1); - if (!(_la == WITH || _la == WITHOUT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(4985); - match(TIME); - setState(4986); - match(ZONE); - } - break; - } - } - break; - case TIMETZ: - enterOuterAlt(_localctx, 50); - { - setState(4989); - match(TIMETZ); - setState(4993); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 589, _ctx)) { - case 1: { - setState(4990); - match(OPEN_PAREN); - setState(4991); - match(INTEGER_LITERAL); - setState(4992); - match(CLOSE_PAREN); - } - break; - } - } - break; - case TIMESTAMPTZ: - enterOuterAlt(_localctx, 51); - { - setState(4995); - match(TIMESTAMPTZ); - setState(4999); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 590, _ctx)) { - case 1: { - setState(4996); - match(OPEN_PAREN); - setState(4997); - match(INTEGER_LITERAL); - setState(4998); - match(CLOSE_PAREN); - } - break; - } - } - break; - case TSQUERY: - enterOuterAlt(_localctx, 52); - { - setState(5001); - match(TSQUERY); - } - break; - case TSVECTOR: - enterOuterAlt(_localctx, 53); - { - setState(5002); - match(TSVECTOR); - } - break; - case TXID_SNAPSHOT: - enterOuterAlt(_localctx, 54); - { - setState(5003); - match(TXID_SNAPSHOT); - } - break; - case UUID: - enterOuterAlt(_localctx, 55); - { - setState(5004); - match(UUID); - } - break; - case VARBIT: - enterOuterAlt(_localctx, 56); - { - setState(5005); - match(VARBIT); - setState(5009); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 591, _ctx)) { - case 1: { - setState(5006); - match(OPEN_PAREN); - setState(5007); - match(INTEGER_LITERAL); - setState(5008); - match(CLOSE_PAREN); - } - break; - } - } - break; - case VARCHAR: - enterOuterAlt(_localctx, 57); - { - setState(5011); - match(VARCHAR); - setState(5015); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 592, _ctx)) { - case 1: { - setState(5012); - match(OPEN_PAREN); - setState(5013); - match(INTEGER_LITERAL); - setState(5014); - match(CLOSE_PAREN); - } - break; - } - } - break; - case XML: - enterOuterAlt(_localctx, 58); - { - setState(5017); - match(XML); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class TimezoneContext extends ParserRuleContext { - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode DOUBLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public TerminalNode NUMERIC_LITERAL() { - return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); - } - - public TimezoneContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_timezone; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterTimezone(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitTimezone(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTimezone(this); - else return visitor.visitChildren(this); - } - } - - public final TimezoneContext timezone() throws RecognitionException { - TimezoneContext _localctx = new TimezoneContext(_ctx, getState()); - enterRule(_localctx, 452, RULE_timezone); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5020); - _la = _input.LA(1); - if (!(((((_la - 772)) & ~0x3f) == 0 && ((1L << (_la - 772)) & ((1L << (NUMERIC_LITERAL - 772)) | (1L << (INTEGER_LITERAL - 772)) | (1L << (SINGLEQ_STRING_LITERAL - 772)) | (1L << (DOUBLEQ_STRING_LITERAL - 772)))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class OperContext extends ParserRuleContext { - public TerminalNode IS() { - return getToken(PostgreSQLParser.IS, 0); - } - - public TerminalNode OF() { - return getToken(PostgreSQLParser.OF, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public OperContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_oper; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterOper(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitOper(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitOper(this); - else return visitor.visitChildren(this); - } - } - - public final OperContext oper() throws RecognitionException { - OperContext _localctx = new OperContext(_ctx, getState()); - enterRule(_localctx, 454, RULE_oper); - try { - setState(5026); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 594, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5023); - match(IS); - setState(5024); - match(OF); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(5025); - match(ALL); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class AggregateContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Order_by_clauseContext order_by_clause() { - return getRuleContext(Order_by_clauseContext.class, 0); - } - - public TerminalNode FILTER() { - return getToken(PostgreSQLParser.FILTER, 0); - } - - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public Where_clauseContext where_clause() { - return getRuleContext(Where_clauseContext.class, 0); - } - - public TerminalNode ALL() { - return getToken(PostgreSQLParser.ALL, 0); - } - - public TerminalNode DISTINCT() { - return getToken(PostgreSQLParser.DISTINCT, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public TerminalNode WITHIN() { - return getToken(PostgreSQLParser.WITHIN, 0); - } - - public TerminalNode GROUP() { - return getToken(PostgreSQLParser.GROUP, 0); - } - - public AggregateContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_aggregate; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAggregate(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitAggregate(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAggregate(this); - else return visitor.visitChildren(this); - } - } - - public final AggregateContext aggregate() throws RecognitionException { - AggregateContext _localctx = new AggregateContext(_ctx, getState()); - enterRule(_localctx, 456, RULE_aggregate); - int _la; - try { - setState(5091); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 603, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(5028); - identifier(0); - setState(5029); - match(OPEN_PAREN); - setState(5031); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 595, _ctx)) { - case 1: { - setState(5030); - _la = _input.LA(1); - if (!(_la == ALL || _la == DISTINCT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - } - setState(5033); - expr(0); - setState(5038); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5034); - match(COMMA); - setState(5035); - expr(0); - } - } - setState(5040); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(5042); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ORDER) { - { - setState(5041); - order_by_clause(); - } - } - - setState(5044); - match(CLOSE_PAREN); - setState(5051); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 598, _ctx)) { - case 1: { - setState(5045); - match(FILTER); - setState(5046); - match(OPEN_PAREN); - setState(5047); - match(WHERE); - setState(5048); - where_clause(); - setState(5049); - match(CLOSE_PAREN); - } - break; - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5053); - identifier(0); - setState(5054); - match(OPEN_PAREN); - setState(5055); - match(STAR); - setState(5056); - match(CLOSE_PAREN); - setState(5063); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 599, _ctx)) { - case 1: { - setState(5057); - match(FILTER); - setState(5058); - match(OPEN_PAREN); - setState(5059); - match(WHERE); - setState(5060); - where_clause(); - setState(5061); - match(CLOSE_PAREN); - } - break; - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(5065); - identifier(0); - setState(5066); - match(OPEN_PAREN); - setState(5075); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { - { - setState(5067); - expr(0); - setState(5072); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5068); - match(COMMA); - setState(5069); - expr(0); - } - } - setState(5074); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - - setState(5077); - match(CLOSE_PAREN); - setState(5078); - match(WITHIN); - setState(5079); - match(GROUP); - setState(5080); - match(OPEN_PAREN); - setState(5081); - order_by_clause(); - setState(5082); - match(CLOSE_PAREN); - setState(5089); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 602, _ctx)) { - case 1: { - setState(5083); - match(FILTER); - setState(5084); - match(OPEN_PAREN); - setState(5085); - match(WHERE); - setState(5086); - where_clause(); - setState(5087); - match(CLOSE_PAREN); - } - break; - } - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Name_Context extends ParserRuleContext { - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Name_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_name_; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterName_(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitName_(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitName_(this); - else return visitor.visitChildren(this); - } - } - - public final Name_Context name_() throws RecognitionException { - Name_Context _localctx = new Name_Context(_ctx, getState()); - enterRule(_localctx, 458, RULE_name_); - try { - setState(5095); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SINGLEQ_STRING_LITERAL: - enterOuterAlt(_localctx, 1); - { - setState(5093); - match(SINGLEQ_STRING_LITERAL); - } - break; - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: - enterOuterAlt(_localctx, 2); - { - setState(5094); - identifier(0); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Name_listContext extends ParserRuleContext { - public List name_() { - return getRuleContexts(Name_Context.class); - } - - public Name_Context name_(int i) { - return getRuleContext(Name_Context.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Name_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_name_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterName_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitName_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitName_list(this); - else return visitor.visitChildren(this); - } - } - - public final Name_listContext name_list() throws RecognitionException { - Name_listContext _localctx = new Name_listContext(_ctx, getState()); - enterRule(_localctx, 460, RULE_name_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5097); - name_(); - setState(5102); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5098); - match(COMMA); - setState(5099); - name_(); - } - } - setState(5104); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Identifier_listContext extends ParserRuleContext { - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Identifier_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_identifier_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterIdentifier_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitIdentifier_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitIdentifier_list(this); - else return visitor.visitChildren(this); - } - } - - public final Identifier_listContext identifier_list() throws RecognitionException { - Identifier_listContext _localctx = new Identifier_listContext(_ctx, getState()); - enterRule(_localctx, 462, RULE_identifier_list); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(5105); - identifier(0); - setState(5110); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 606, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(5106); - match(COMMA); - setState(5107); - identifier(0); - } - } - } - setState(5112); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 606, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Option_exprContext extends ParserRuleContext { - public IdentifierContext option_name; - public Param_valueContext value; - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public TerminalNode EQUAL() { - return getToken(PostgreSQLParser.EQUAL, 0); - } - - public Param_valueContext param_value() { - return getRuleContext(Param_valueContext.class, 0); - } - - public Option_exprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_option_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterOption_expr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitOption_expr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitOption_expr(this); - else return visitor.visitChildren(this); - } - } - - public final Option_exprContext option_expr() throws RecognitionException { - Option_exprContext _localctx = new Option_exprContext(_ctx, getState()); - enterRule(_localctx, 464, RULE_option_expr); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5113); - ((Option_exprContext) _localctx).option_name = identifier(0); - setState(5116); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == EQUAL) { - { - setState(5114); - match(EQUAL); - setState(5115); - ((Option_exprContext) _localctx).value = param_value(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Option_listContext extends ParserRuleContext { - public List option_expr() { - return getRuleContexts(Option_exprContext.class); - } - - public Option_exprContext option_expr(int i) { - return getRuleContext(Option_exprContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Option_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_option_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterOption_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitOption_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitOption_list(this); - else return visitor.visitChildren(this); - } - } - - public final Option_listContext option_list() throws RecognitionException { - Option_listContext _localctx = new Option_listContext(_ctx, getState()); - enterRule(_localctx, 466, RULE_option_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5118); - option_expr(); - setState(5123); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5119); - match(COMMA); - setState(5120); - option_expr(); - } - } - setState(5125); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Table_name_Context extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Table_name_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_table_name_; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTable_name_(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTable_name_(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTable_name_(this); - else return visitor.visitChildren(this); - } - } - - public final Table_name_Context table_name_() throws RecognitionException { - Table_name_Context _localctx = new Table_name_Context(_ctx, getState()); - enterRule(_localctx, 468, RULE_table_name_); - try { - enterOuterAlt(_localctx, 1); - { - setState(5126); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Data_typeContext extends ParserRuleContext { - public Type_nameContext type_name() { - return getRuleContext(Type_nameContext.class, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public List OPEN_BRACKET() { - return getTokens(PostgreSQLParser.OPEN_BRACKET); - } - - public TerminalNode OPEN_BRACKET(int i) { - return getToken(PostgreSQLParser.OPEN_BRACKET, i); - } - - public List CLOSE_BRACKET() { - return getTokens(PostgreSQLParser.CLOSE_BRACKET); - } - - public TerminalNode CLOSE_BRACKET(int i) { - return getToken(PostgreSQLParser.CLOSE_BRACKET, i); - } - - public List INTEGER_LITERAL() { - return getTokens(PostgreSQLParser.INTEGER_LITERAL); - } - - public TerminalNode INTEGER_LITERAL(int i) { - return getToken(PostgreSQLParser.INTEGER_LITERAL, i); - } - - public Data_typeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_data_type; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterData_type(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitData_type(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitData_type(this); - else return visitor.visitChildren(this); - } - } - - public final Data_typeContext data_type() throws RecognitionException { - Data_typeContext _localctx = new Data_typeContext(_ctx, getState()); - enterRule(_localctx, 470, RULE_data_type); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(5130); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 609, _ctx)) { - case 1: { - setState(5128); - type_name(); - } - break; - case 2: { - setState(5129); - identifier(0); - } - break; - } - setState(5139); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 611, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(5132); - match(OPEN_BRACKET); - setState(5134); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INTEGER_LITERAL) { - { - setState(5133); - match(INTEGER_LITERAL); - } - } - - setState(5136); - match(CLOSE_BRACKET); - } - } - } - setState(5141); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 611, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Data_type_listContext extends ParserRuleContext { - public List data_type() { - return getRuleContexts(Data_typeContext.class); - } - - public Data_typeContext data_type(int i) { - return getRuleContext(Data_typeContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Data_type_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_data_type_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterData_type_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitData_type_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitData_type_list(this); - else return visitor.visitChildren(this); - } - } - - public final Data_type_listContext data_type_list() throws RecognitionException { - Data_type_listContext _localctx = new Data_type_listContext(_ctx, getState()); - enterRule(_localctx, 472, RULE_data_type_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5142); - data_type(); - setState(5147); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5143); - match(COMMA); - setState(5144); - data_type(); - } - } - setState(5149); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Index_methodContext extends ParserRuleContext { - public Token builtin; - public IdentifierContext unknown; - - public TerminalNode BTREE() { - return getToken(PostgreSQLParser.BTREE, 0); - } - - public TerminalNode HASH_() { - return getToken(PostgreSQLParser.HASH_, 0); - } - - public TerminalNode GIST() { - return getToken(PostgreSQLParser.GIST, 0); - } - - public TerminalNode SPGIST() { - return getToken(PostgreSQLParser.SPGIST, 0); - } - - public TerminalNode GIN() { - return getToken(PostgreSQLParser.GIN, 0); - } - - public TerminalNode BRIN() { - return getToken(PostgreSQLParser.BRIN, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Index_methodContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_index_method; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterIndex_method(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitIndex_method(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitIndex_method(this); - else return visitor.visitChildren(this); - } - } - - public final Index_methodContext index_method() throws RecognitionException { - Index_methodContext _localctx = new Index_methodContext(_ctx, getState()); - enterRule(_localctx, 474, RULE_index_method); - int _la; - try { - setState(5152); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BTREE: - case HASH_: - case GIST: - case SPGIST: - case GIN: - case BRIN: - enterOuterAlt(_localctx, 1); - { - setState(5150); - ((Index_methodContext) _localctx).builtin = _input.LT(1); - _la = _input.LA(1); - if (!(((((_la - 701)) & ~0x3f) == 0 && ((1L << (_la - 701)) & ((1L << (BTREE - 701)) | (1L << (HASH_ - 701)) | (1L << (GIST - 701)) | (1L << (SPGIST - 701)) | (1L << (GIN - 701)) | (1L << (BRIN - 701)))) != 0))) { - ((Index_methodContext) _localctx).builtin = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - break; - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: - enterOuterAlt(_localctx, 2); - { - setState(5151); - ((Index_methodContext) _localctx).unknown = identifier(0); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Func_nameContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Func_nameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_func_name; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFunc_name(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFunc_name(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFunc_name(this); - else return visitor.visitChildren(this); - } - } - - public final Func_nameContext func_name() throws RecognitionException { - Func_nameContext _localctx = new Func_nameContext(_ctx, getState()); - enterRule(_localctx, 476, RULE_func_name); - try { - enterOuterAlt(_localctx, 1); - { - setState(5154); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Func_callContext extends ParserRuleContext { - public Func_nameContext func_name() { - return getRuleContext(Func_nameContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public TerminalNode VARIADIC() { - return getToken(PostgreSQLParser.VARIADIC, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Todo_fill_inContext todo_fill_in() { - return getRuleContext(Todo_fill_inContext.class, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public TerminalNode FOR() { - return getToken(PostgreSQLParser.FOR, 0); - } - - public Func_callContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_func_call; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFunc_call(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFunc_call(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFunc_call(this); - else return visitor.visitChildren(this); - } - } - - public final Func_callContext func_call() throws RecognitionException { - Func_callContext _localctx = new Func_callContext(_ctx, getState()); - enterRule(_localctx, 478, RULE_func_call); - int _la; - try { - int _alt; - setState(5192); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 618, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(5156); - func_name(); - setState(5157); - match(OPEN_PAREN); - setState(5158); - match(VARIADIC); - setState(5159); - expr(0); - setState(5160); - match(CLOSE_PAREN); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5162); - func_name(); - setState(5163); - match(OPEN_PAREN); - setState(5177); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { - { - setState(5164); - expr(0); - setState(5169); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 614, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(5165); - match(COMMA); - setState(5166); - expr(0); - } - } - } - setState(5171); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 614, _ctx); - } - setState(5175); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == COMMA) { - { - setState(5172); - match(COMMA); - setState(5173); - match(VARIADIC); - setState(5174); - expr(0); - } - } - - } - } - - setState(5179); - match(CLOSE_PAREN); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(5181); - func_name(); - setState(5182); - match(OPEN_PAREN); - setState(5183); - todo_fill_in(); - setState(5184); - match(FROM); - setState(5185); - expr(0); - setState(5188); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == FOR) { - { - setState(5186); - match(FOR); - setState(5187); - expr(0); - } - } - - setState(5190); - match(CLOSE_PAREN); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Array_cons_exprContext extends ParserRuleContext { - public TerminalNode ARRAY() { - return getToken(PostgreSQLParser.ARRAY, 0); - } - - public TerminalNode OPEN_BRACKET() { - return getToken(PostgreSQLParser.OPEN_BRACKET, 0); - } - - public TerminalNode CLOSE_BRACKET() { - return getToken(PostgreSQLParser.CLOSE_BRACKET, 0); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Array_cons_exprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_array_cons_expr; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterArray_cons_expr(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitArray_cons_expr(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitArray_cons_expr(this); - else return visitor.visitChildren(this); - } - } - - public final Array_cons_exprContext array_cons_expr() throws RecognitionException { - Array_cons_exprContext _localctx = new Array_cons_exprContext(_ctx, getState()); - enterRule(_localctx, 480, RULE_array_cons_expr); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5194); - match(ARRAY); - setState(5195); - match(OPEN_BRACKET); - setState(5204); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 719)) & ~0x3f) == 0 && ((1L << (_la - 719)) & ((1L << (ABSTIME - 719)) | (1L << (BIGSERIAL - 719)) | (1L << (BIT_VARYING - 719)) | (1L << (BOOL - 719)) | (1L << (BOX - 719)) | (1L << (BYTEA - 719)) | (1L << (CHARACTER_VARYING - 719)) | (1L << (CIDR - 719)) | (1L << (CIRCLE - 719)) | (1L << (FLOAT4 - 719)) | (1L << (FLOAT8 - 719)) | (1L << (INET - 719)) | (1L << (INT2 - 719)) | (1L << (INT4 - 719)) | (1L << (INT8 - 719)) | (1L << (JSON - 719)) | (1L << (JSONB - 719)) | (1L << (LINE - 719)) | (1L << (LSEG - 719)) | (1L << (MACADDR - 719)) | (1L << (MACADDR8 - 719)) | (1L << (MONEY - 719)) | (1L << (PG_LSN - 719)) | (1L << (POINT - 719)) | (1L << (POLYGON - 719)) | (1L << (RELTIME - 719)) | (1L << (SERIAL - 719)) | (1L << (SERIAL2 - 719)) | (1L << (SERIAL4 - 719)) | (1L << (SERIAL8 - 719)) | (1L << (SMALLSERIAL - 719)) | (1L << (TEXT - 719)) | (1L << (TIMESTAMPTZ - 719)) | (1L << (TIMETZ - 719)) | (1L << (TSQUERY - 719)) | (1L << (TSVECTOR - 719)) | (1L << (TXID_SNAPSHOT - 719)) | (1L << (UUID - 719)) | (1L << (VARBIT - 719)) | (1L << (XML - 719)) | (1L << (DOLLAR - 719)) | (1L << (DOLLAR_DOLLAR - 719)) | (1L << (OPEN_PAREN - 719)) | (1L << (BIT_STRING - 719)) | (1L << (REGEX_STRING - 719)) | (1L << (NUMERIC_LITERAL - 719)) | (1L << (INTEGER_LITERAL - 719)) | (1L << (HEX_INTEGER_LITERAL - 719)) | (1L << (SINGLEQ_STRING_LITERAL - 719)) | (1L << (DOUBLEQ_STRING_LITERAL - 719)) | (1L << (IDENTIFIER - 719)) | (1L << (DOLLAR_DEC - 719)) | (1L << (IDENTIFIER_UNICODE - 719)))) != 0) || ((((_la - 786)) & ~0x3f) == 0 && ((1L << (_la - 786)) & ((1L << (AT_SIGN - 786)) | (1L << (BANG_BANG - 786)) | (1L << (MINUS - 786)) | (1L << (PLUS - 786)) | (1L << (QMARK_HYPHEN - 786)) | (1L << (TIL - 786)))) != 0)) { - { - setState(5196); - expr(0); - setState(5201); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5197); - match(COMMA); - setState(5198); - expr(0); - } - } - setState(5203); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - - setState(5206); - match(CLOSE_BRACKET); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class From_itemContext extends ParserRuleContext { - public Table_name_Context table_name_() { - return getRuleContext(Table_name_Context.class, 0); - } - - public TerminalNode ONLY() { - return getToken(PostgreSQLParser.ONLY, 0); - } - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public With_column_aliasContext with_column_alias() { - return getRuleContext(With_column_aliasContext.class, 0); - } - - public TerminalNode TABLESAMPLE() { - return getToken(PostgreSQLParser.TABLESAMPLE, 0); - } - - public List todo_fill_in() { - return getRuleContexts(Todo_fill_inContext.class); - } - - public Todo_fill_inContext todo_fill_in(int i) { - return getRuleContext(Todo_fill_inContext.class, i); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public TerminalNode REPEATABLE() { - return getToken(PostgreSQLParser.REPEATABLE, 0); - } - - public StmtContext stmt() { - return getRuleContext(StmtContext.class, 0); - } - - public AliasContext alias() { - return getRuleContext(AliasContext.class, 0); - } - - public TerminalNode LATERAL() { - return getToken(PostgreSQLParser.LATERAL, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List column_alias() { - return getRuleContexts(Column_aliasContext.class); - } - - public Column_aliasContext column_alias(int i) { - return getRuleContext(Column_aliasContext.class, i); - } - - public Func_callContext func_call() { - return getRuleContext(Func_callContext.class, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode ORDINALITY() { - return getToken(PostgreSQLParser.ORDINALITY, 0); - } - - public List column_definition() { - return getRuleContexts(Column_definitionContext.class); - } - - public Column_definitionContext column_definition(int i) { - return getRuleContext(Column_definitionContext.class, i); - } - - public TerminalNode ROWS() { - return getToken(PostgreSQLParser.ROWS, 0); - } - - public TerminalNode FROM() { - return getToken(PostgreSQLParser.FROM, 0); - } - - public List from_item() { - return getRuleContexts(From_itemContext.class); - } - - public From_itemContext from_item(int i) { - return getRuleContext(From_itemContext.class, i); - } - - public Join_typeContext join_type() { - return getRuleContext(Join_typeContext.class, 0); - } - - public TerminalNode NATURAL() { - return getToken(PostgreSQLParser.NATURAL, 0); - } - - public Join_clauseContext join_clause() { - return getRuleContext(Join_clauseContext.class, 0); - } - - public From_itemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_from_item; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterFrom_item(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitFrom_item(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitFrom_item(this); - else return visitor.visitChildren(this); - } - } - - public final From_itemContext from_item() throws RecognitionException { - return from_item(0); - } - - private From_itemContext from_item(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - From_itemContext _localctx = new From_itemContext(_ctx, _parentState); - From_itemContext _prevctx = _localctx; - int _startState = 482; - enterRecursionRule(_localctx, 482, RULE_from_item, _p); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(5314); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 639, _ctx)) { - case 1: { - setState(5210); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ONLY) { - { - setState(5209); - match(ONLY); - } - } - - setState(5212); - table_name_(); - setState(5214); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 622, _ctx)) { - case 1: { - setState(5213); - match(STAR); - } - break; - } - setState(5217); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 623, _ctx)) { - case 1: { - setState(5216); - with_column_alias(); - } - break; - } - setState(5238); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 626, _ctx)) { - case 1: { - setState(5219); - match(TABLESAMPLE); - setState(5220); - todo_fill_in(); - setState(5221); - match(OPEN_PAREN); - setState(5222); - expr(0); - setState(5227); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5223); - match(COMMA); - setState(5224); - expr(0); - } - } - setState(5229); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(5230); - match(CLOSE_PAREN); - setState(5236); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 625, _ctx)) { - case 1: { - setState(5231); - match(REPEATABLE); - setState(5232); - match(OPEN_PAREN); - setState(5233); - todo_fill_in(); - setState(5234); - match(CLOSE_PAREN); - } - break; - } - } - break; - } - } - break; - case 2: { - setState(5241); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LATERAL) { - { - setState(5240); - match(LATERAL); - } - } - - setState(5243); - match(OPEN_PAREN); - setState(5244); - stmt(); - setState(5245); - match(CLOSE_PAREN); - setState(5247); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(5246); - match(AS); - } - } - - setState(5249); - alias(); - setState(5261); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 630, _ctx)) { - case 1: { - setState(5250); - match(OPEN_PAREN); - setState(5251); - column_alias(); - setState(5256); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5252); - match(COMMA); - setState(5253); - column_alias(); - } - } - setState(5258); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(5259); - match(CLOSE_PAREN); - } - break; - } - } - break; - case 3: { - setState(5264); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LATERAL) { - { - setState(5263); - match(LATERAL); - } - } - - setState(5266); - func_call(); - setState(5269); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 632, _ctx)) { - case 1: { - setState(5267); - match(WITH); - setState(5268); - match(ORDINALITY); - } - break; - } - setState(5272); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 633, _ctx)) { - case 1: { - setState(5271); - with_column_alias(); - } - break; - } - } - break; - case 4: { - setState(5275); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LATERAL) { - { - setState(5274); - match(LATERAL); - } - } - - setState(5277); - func_call(); - setState(5278); - match(AS); - setState(5279); - match(OPEN_PAREN); - setState(5280); - column_definition(); - setState(5285); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5281); - match(COMMA); - setState(5282); - column_definition(); - } - } - setState(5287); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(5288); - match(CLOSE_PAREN); - } - break; - case 5: { - setState(5291); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == LATERAL) { - { - setState(5290); - match(LATERAL); - } - } - - setState(5293); - match(ROWS); - setState(5294); - match(FROM); - setState(5295); - match(OPEN_PAREN); - setState(5296); - func_call(); - setState(5297); - match(CLOSE_PAREN); - setState(5310); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(5298); - match(AS); - setState(5299); - match(OPEN_PAREN); - setState(5300); - column_definition(); - setState(5305); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5301); - match(COMMA); - setState(5302); - column_definition(); - } - } - setState(5307); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(5308); - match(CLOSE_PAREN); - } - } - - setState(5312); - match(CLOSE_PAREN); - } - break; - } - _ctx.stop = _input.LT(-1); - setState(5333); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 644, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - if (_parseListeners != null) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new From_itemContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_from_item); - setState(5316); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(5318); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NATURAL) { - { - setState(5317); - match(NATURAL); - } - } - - setState(5320); - join_type(); - setState(5322); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 641, _ctx)) { - case 1: { - setState(5321); - match(OPEN_PAREN); - } - break; - } - setState(5324); - from_item(0); - setState(5326); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 642, _ctx)) { - case 1: { - setState(5325); - join_clause(); - } - break; - } - setState(5329); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 643, _ctx)) { - case 1: { - setState(5328); - match(CLOSE_PAREN); - } - break; - } - } - } - } - setState(5335); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 644, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class With_column_aliasContext extends ParserRuleContext { - public AliasContext alias() { - return getRuleContext(AliasContext.class, 0); - } - - public TerminalNode AS() { - return getToken(PostgreSQLParser.AS, 0); - } - - public List column_alias() { - return getRuleContexts(Column_aliasContext.class); - } - - public Column_aliasContext column_alias(int i) { - return getRuleContext(Column_aliasContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Name_listContext name_list() { - return getRuleContext(Name_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public With_column_aliasContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_with_column_alias; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWith_column_alias(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitWith_column_alias(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWith_column_alias(this); - else return visitor.visitChildren(this); - } - } - - public final With_column_aliasContext with_column_alias() throws RecognitionException { - With_column_aliasContext _localctx = new With_column_aliasContext(_ctx, getState()); - enterRule(_localctx, 484, RULE_with_column_alias); - int _la; - try { - int _alt; - setState(5358); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 649, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(5337); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(5336); - match(AS); - } - } - - setState(5339); - alias(); - setState(5348); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 647, _ctx)) { - case 1: { - setState(5340); - column_alias(); - setState(5345); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 646, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - { - { - setState(5341); - match(COMMA); - setState(5342); - column_alias(); - } - } - } - setState(5347); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 646, _ctx); - } - } - break; - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5351); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == AS) { - { - setState(5350); - match(AS); - } - } - - setState(5353); - alias(); - setState(5354); - match(OPEN_PAREN); - setState(5355); - name_list(); - setState(5356); - match(CLOSE_PAREN); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Join_typeContext extends ParserRuleContext { - public TerminalNode JOIN() { - return getToken(PostgreSQLParser.JOIN, 0); - } - - public TerminalNode INNER() { - return getToken(PostgreSQLParser.INNER, 0); - } - - public TerminalNode LEFT() { - return getToken(PostgreSQLParser.LEFT, 0); - } - - public TerminalNode OUTER() { - return getToken(PostgreSQLParser.OUTER, 0); - } - - public TerminalNode RIGHT() { - return getToken(PostgreSQLParser.RIGHT, 0); - } - - public TerminalNode FULL() { - return getToken(PostgreSQLParser.FULL, 0); - } - - public TerminalNode CROSS() { - return getToken(PostgreSQLParser.CROSS, 0); - } - - public Join_typeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_join_type; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterJoin_type(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitJoin_type(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitJoin_type(this); - else return visitor.visitChildren(this); - } - } - - public final Join_typeContext join_type() throws RecognitionException { - Join_typeContext _localctx = new Join_typeContext(_ctx, getState()); - enterRule(_localctx, 486, RULE_join_type); - int _la; - try { - setState(5381); - _errHandler.sync(this); - switch (_input.LA(1)) { - case INNER: - case JOIN: - enterOuterAlt(_localctx, 1); - { - setState(5361); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INNER) { - { - setState(5360); - match(INNER); - } - } - - setState(5363); - match(JOIN); - } - break; - case LEFT: - enterOuterAlt(_localctx, 2); - { - setState(5364); - match(LEFT); - setState(5366); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OUTER) { - { - setState(5365); - match(OUTER); - } - } - - setState(5368); - match(JOIN); - } - break; - case RIGHT: - enterOuterAlt(_localctx, 3); - { - setState(5369); - match(RIGHT); - setState(5371); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OUTER) { - { - setState(5370); - match(OUTER); - } - } - - setState(5373); - match(JOIN); - } - break; - case FULL: - enterOuterAlt(_localctx, 4); - { - setState(5374); - match(FULL); - setState(5376); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == OUTER) { - { - setState(5375); - match(OUTER); - } - } - - setState(5378); - match(JOIN); - } - break; - case CROSS: - enterOuterAlt(_localctx, 5); - { - setState(5379); - match(CROSS); - setState(5380); - match(JOIN); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Join_clauseContext extends ParserRuleContext { - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public PredicateContext predicate() { - return getRuleContext(PredicateContext.class, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List column_name() { - return getRuleContexts(Column_nameContext.class); - } - - public Column_nameContext column_name(int i) { - return getRuleContext(Column_nameContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Join_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_join_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterJoin_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitJoin_clause(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitJoin_clause(this); - else return visitor.visitChildren(this); - } - } - - public final Join_clauseContext join_clause() throws RecognitionException { - Join_clauseContext _localctx = new Join_clauseContext(_ctx, getState()); - enterRule(_localctx, 488, RULE_join_clause); - int _la; - try { - setState(5397); - _errHandler.sync(this); - switch (_input.LA(1)) { - case ON: - enterOuterAlt(_localctx, 1); - { - setState(5383); - match(ON); - setState(5384); - predicate(0); - } - break; - case USING: - enterOuterAlt(_localctx, 2); - { - setState(5385); - match(USING); - setState(5386); - match(OPEN_PAREN); - setState(5387); - column_name(); - setState(5392); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5388); - match(COMMA); - setState(5389); - column_name(); - } - } - setState(5394); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(5395); - match(CLOSE_PAREN); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class PredicateContext extends ParserRuleContext { - public List expr() { - return getRuleContexts(ExprContext.class); - } - - public ExprContext expr(int i) { - return getRuleContext(ExprContext.class, i); - } - - public OperContext oper() { - return getRuleContext(OperContext.class, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public List predicate() { - return getRuleContexts(PredicateContext.class); - } - - public PredicateContext predicate(int i) { - return getRuleContext(PredicateContext.class, i); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode AND() { - return getToken(PostgreSQLParser.AND, 0); - } - - public TerminalNode OR() { - return getToken(PostgreSQLParser.OR, 0); - } - - public PredicateContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_predicate; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterPredicate(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitPredicate(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitPredicate(this); - else return visitor.visitChildren(this); - } - } - - public final PredicateContext predicate() throws RecognitionException { - return predicate(0); - } - - private PredicateContext predicate(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - PredicateContext _localctx = new PredicateContext(_ctx, _parentState); - PredicateContext _prevctx = _localctx; - int _startState = 490; - enterRecursionRule(_localctx, 490, RULE_predicate, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(5411); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 657, _ctx)) { - case 1: { - setState(5400); - expr(0); - } - break; - case 2: { - setState(5401); - expr(0); - setState(5402); - oper(); - setState(5403); - expr(0); - } - break; - case 3: { - setState(5405); - match(OPEN_PAREN); - setState(5406); - predicate(0); - setState(5407); - match(CLOSE_PAREN); - } - break; - case 4: { - setState(5409); - match(NOT); - setState(5410); - predicate(1); - } - break; - } - _ctx.stop = _input.LT(-1); - setState(5421); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 659, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - if (_parseListeners != null) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(5419); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 658, _ctx)) { - case 1: { - _localctx = new PredicateContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_predicate); - setState(5413); - if (!(precpred(_ctx, 3))) - throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(5414); - match(AND); - setState(5415); - predicate(4); - } - break; - case 2: { - _localctx = new PredicateContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_predicate); - setState(5416); - if (!(precpred(_ctx, 2))) - throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(5417); - match(OR); - setState(5418); - predicate(3); - } - break; - } - } - } - setState(5423); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 659, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class Aggregate_signatureContext extends ParserRuleContext { - public Token argmode; - public IdentifierContext argname; - public Data_type_listContext argtype; - - public TerminalNode STAR() { - return getToken(PostgreSQLParser.STAR, 0); - } - - public List data_type_list() { - return getRuleContexts(Data_type_listContext.class); - } - - public Data_type_listContext data_type_list(int i) { - return getRuleContext(Data_type_listContext.class, i); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public List IN() { - return getTokens(PostgreSQLParser.IN); - } - - public TerminalNode IN(int i) { - return getToken(PostgreSQLParser.IN, i); - } - - public List VARIADIC() { - return getTokens(PostgreSQLParser.VARIADIC); - } - - public TerminalNode VARIADIC(int i) { - return getToken(PostgreSQLParser.VARIADIC, i); - } - - public TerminalNode ORDER() { - return getToken(PostgreSQLParser.ORDER, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public Aggregate_signatureContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_aggregate_signature; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterAggregate_signature(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitAggregate_signature(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAggregate_signature(this); - else return visitor.visitChildren(this); - } - } - - public final Aggregate_signatureContext aggregate_signature() throws RecognitionException { - Aggregate_signatureContext _localctx = new Aggregate_signatureContext(_ctx, getState()); - enterRule(_localctx, 492, RULE_aggregate_signature); - int _la; - try { - setState(5450); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 666, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(5424); - match(STAR); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5426); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN || _la == VARIADIC) { - { - setState(5425); - ((Aggregate_signatureContext) _localctx).argmode = _input.LT(1); - _la = _input.LA(1); - if (!(_la == IN || _la == VARIADIC)) { - ((Aggregate_signatureContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(5429); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 661, _ctx)) { - case 1: { - setState(5428); - ((Aggregate_signatureContext) _localctx).argname = identifier(0); - } - break; - } - setState(5431); - ((Aggregate_signatureContext) _localctx).argtype = data_type_list(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - { - setState(5433); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN || _la == VARIADIC) { - { - setState(5432); - ((Aggregate_signatureContext) _localctx).argmode = _input.LT(1); - _la = _input.LA(1); - if (!(_la == IN || _la == VARIADIC)) { - ((Aggregate_signatureContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(5436); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 663, _ctx)) { - case 1: { - setState(5435); - ((Aggregate_signatureContext) _localctx).argname = identifier(0); - } - break; - } - setState(5438); - ((Aggregate_signatureContext) _localctx).argtype = data_type_list(); - } - setState(5440); - match(ORDER); - setState(5441); - match(BY); - setState(5443); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == IN || _la == VARIADIC) { - { - setState(5442); - ((Aggregate_signatureContext) _localctx).argmode = _input.LT(1); - _la = _input.LA(1); - if (!(_la == IN || _la == VARIADIC)) { - ((Aggregate_signatureContext) _localctx).argmode = (Token) _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(5446); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 665, _ctx)) { - case 1: { - setState(5445); - ((Aggregate_signatureContext) _localctx).argname = identifier(0); - } - break; - } - setState(5448); - ((Aggregate_signatureContext) _localctx).argtype = data_type_list(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Column_constraintContext extends ParserRuleContext { - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode NULL() { - return getToken(PostgreSQLParser.NULL, 0); - } - - public Column_constraintContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_column_constraint; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterColumn_constraint(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitColumn_constraint(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitColumn_constraint(this); - else return visitor.visitChildren(this); - } - } - - public final Column_constraintContext column_constraint() throws RecognitionException { - Column_constraintContext _localctx = new Column_constraintContext(_ctx, getState()); - enterRule(_localctx, 494, RULE_column_constraint); - try { - enterOuterAlt(_localctx, 1); - { - setState(5452); - match(NOT); - setState(5453); - match(NULL); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Column_constraintsContext extends ParserRuleContext { - public List column_constraint() { - return getRuleContexts(Column_constraintContext.class); - } - - public Column_constraintContext column_constraint(int i) { - return getRuleContext(Column_constraintContext.class, i); - } - - public Column_constraintsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_column_constraints; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterColumn_constraints(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitColumn_constraints(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitColumn_constraints(this); - else return visitor.visitChildren(this); - } - } - - public final Column_constraintsContext column_constraints() throws RecognitionException { - Column_constraintsContext _localctx = new Column_constraintsContext(_ctx, getState()); - enterRule(_localctx, 496, RULE_column_constraints); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5456); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(5455); - column_constraint(); - } - } - setState(5458); - _errHandler.sync(this); - _la = _input.LA(1); - } while (_la == NOT); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Index_parametersContext extends ParserRuleContext { - public IdentifierContext tablespace; - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public Option_listContext option_list() { - return getRuleContext(Option_listContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Index_parametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_index_parameters; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterIndex_parameters(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitIndex_parameters(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitIndex_parameters(this); - else return visitor.visitChildren(this); - } - } - - public final Index_parametersContext index_parameters() throws RecognitionException { - Index_parametersContext _localctx = new Index_parametersContext(_ctx, getState()); - enterRule(_localctx, 498, RULE_index_parameters); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5465); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == WITH) { - { - setState(5460); - match(WITH); - setState(5461); - match(OPEN_PAREN); - setState(5462); - option_list(); - setState(5463); - match(CLOSE_PAREN); - } - } - - setState(5471); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == USING) { - { - setState(5467); - match(USING); - setState(5468); - match(INDEX); - setState(5469); - match(TABLESPACE); - setState(5470); - ((Index_parametersContext) _localctx).tablespace = identifier(0); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Exclude_elementContext extends ParserRuleContext { - public IdentifierContext column_name_; - public IdentifierContext opclass; - - public TerminalNode OPEN_PAREN() { - return getToken(PostgreSQLParser.OPEN_PAREN, 0); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public TerminalNode CLOSE_PAREN() { - return getToken(PostgreSQLParser.CLOSE_PAREN, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode NULLS() { - return getToken(PostgreSQLParser.NULLS, 0); - } - - public TerminalNode ASC() { - return getToken(PostgreSQLParser.ASC, 0); - } - - public TerminalNode DESC() { - return getToken(PostgreSQLParser.DESC, 0); - } - - public TerminalNode FIRST() { - return getToken(PostgreSQLParser.FIRST, 0); - } - - public TerminalNode LAST() { - return getToken(PostgreSQLParser.LAST, 0); - } - - public Exclude_elementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_exclude_element; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterExclude_element(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitExclude_element(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitExclude_element(this); - else return visitor.visitChildren(this); - } - } - - public final Exclude_elementContext exclude_element() throws RecognitionException { - Exclude_elementContext _localctx = new Exclude_elementContext(_ctx, getState()); - enterRule(_localctx, 500, RULE_exclude_element); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5478); - _errHandler.sync(this); - switch (_input.LA(1)) { - case WHITESPACE: - case A_: - case ABORT: - case ABS: - case ABSOLUTE: - case ACCESS: - case ACTION: - case ADA: - case ADD: - case ADMIN: - case AFTER: - case AGGREGATE: - case ALLOCATE: - case ALSO: - case ALTER: - case ALWAYS: - case ANY: - case ARE: - case ASENSITIVE: - case ASSERTION: - case ASSIGNMENT: - case AT: - case ATOMIC: - case ATTRIBUTE: - case ATTRIBUTES: - case AVG: - case BACKWARD: - case BEFORE: - case BEGIN: - case BERNOULLI: - case BETWEEN: - case BIGINT: - case BIT: - case BIT_LENGTH: - case BLOB: - case BOOLEAN: - case BREADTH: - case BY: - case C_: - case CACHE: - case CALL: - case CALLED: - case CARDINALITY: - case CASCADE: - case CASCADED: - case CATALOG: - case CATALOG_NAME: - case CEIL: - case CEILING: - case CHAIN: - case CHAR: - case CHAR_LENGTH: - case CHARACTER: - case CHARACTER_LENGTH: - case CHARACTER_SET_CATALOG: - case CHARACTER_SET_NAME: - case CHARACTER_SET_SCHEMA: - case CHARACTERISTICS: - case CHARACTERS: - case CHECKPOINT: - case CLASS: - case CLASS_ORIGIN: - case CLOB: - case CLOSE: - case CLUSTER: - case COALESCE: - case COBOL: - case COLLATION_CATALOG: - case COLLATION_NAME: - case COLLATION_SCHEMA: - case COLLECT: - case COLUMN_NAME: - case COMMAND_FUNCTION: - case COMMAND_FUNCTION_CODE: - case COMMENT: - case COMMIT: - case COMMITTED: - case CONDITION: - case CONDITION_NUMBER: - case CONNECT: - case CONNECTION: - case CONNECTION_NAME: - case CONSTRAINT_CATALOG: - case CONSTRAINT_NAME: - case CONSTRAINT_SCHEMA: - case CONSTRAINTS: - case CONSTRUCTOR: - case CONTAINS: - case CONTINUE: - case CONVERSION: - case CONVERT: - case COPY: - case CORR: - case CORRESPONDING: - case COUNT: - case COVAR_POP: - case COVAR_SAMP: - case CSV: - case CUBE: - case CUME_DIST: - case CURRENT: - case CURRENT_DEFAULT_TRANSFORM_GROUP: - case CURRENT_PATH: - case CURRENT_TRANSFORM_GROUP_FOR_TYPE: - case CURSOR: - case CURSOR_NAME: - case CYCLE: - case DATA: - case DATABASE: - case DATE: - case DATETIME_INTERVAL_CODE: - case DATETIME_INTERVAL_PRECISION: - case DAY: - case DEALLOCATE: - case DEC: - case DECIMAL: - case DECLARE: - case DEFAULTS: - case DEFERRED: - case DEFINED: - case DEFINER: - case DEGREE: - case DELETE: - case DELIMITER: - case DELIMITERS: - case DENSE_RANK: - case DEPTH: - case DEREF: - case DERIVED: - case DESCRIBE: - case DESCRIPTOR: - case DETERMINISTIC: - case DIAGNOSTICS: - case DICTIONARY: - case DISCONNECT: - case DISPATCH: - case DOMAIN: - case DOUBLE: - case DYNAMIC: - case DYNAMIC_FUNCTION: - case DYNAMIC_FUNCTION_CODE: - case EACH: - case ELEMENT: - case ENCODING: - case ENCRYPTED: - case END: - case EQUALS: - case ESCAPE: - case EVERY: - case EXCEPTION: - case EXCLUDE: - case EXCLUDING: - case EXCLUSIVE: - case EXEC: - case EXECUTE: - case EXISTS: - case EXP: - case EXPLAIN: - case EXTENSION: - case EXTERNAL: - case EXTRACT: - case FILTER: - case FINAL: - case FIRST: - case FLOAT: - case FLOOR: - case FOLLOWING: - case FORCE: - case FORMAT: - case FORTRAN: - case FORWARD: - case FOUND: - case FREE: - case FUNCTION: - case FUSION: - case G_: - case GENERAL: - case GENERATED: - case GET: - case GLOBAL: - case GO: - case GOTO: - case GRANTED: - case GREATEST: - case GROUPING: - case HANDLER: - case HIERARCHY: - case HOLD: - case HOST: - case HOUR: - case IDENTITY: - case IGNORE: - case IMMEDIATE: - case IMMUTABLE: - case IMPLEMENTATION: - case IMPLICIT: - case INCLUDING: - case INCREMENT: - case INDEX: - case INDICATOR: - case INHERITS: - case INOUT: - case INPUT: - case INSENSITIVE: - case INSERT: - case INSTANCE: - case INSTANTIABLE: - case INSTEAD: - case INT: - case INTEGER: - case INTERSECTION: - case INTERVAL: - case INVOKER: - case ISOLATION: - case K_: - case KEY: - case KEY_MEMBER: - case KEY_TYPE: - case LANGUAGE: - case LARGE: - case LAST: - case LEAST: - case LEFT: - case LENGTH: - case LEVEL: - case LISTEN: - case LN: - case LOAD: - case LOCAL: - case LOCATION: - case LOCATOR: - case LOCK: - case LOCKED: - case LOWER: - case M_: - case MAP: - case MATCH: - case MATCHED: - case MAX: - case MAXVALUE: - case MEMBER: - case MERGE: - case MESSAGE_LENGTH: - case MESSAGE_OCTET_LENGTH: - case MESSAGE_TEXT: - case METHOD: - case MIN: - case MINUTE: - case MINVALUE: - case MOD: - case MODE: - case MODIFIES: - case MODULE: - case MONTH: - case MORE_: - case MOVE: - case MULTISET: - case MUMPS: - case NAME: - case NAMES: - case NATIONAL: - case NCHAR: - case NCLOB: - case NESTING: - case NEW: - case NEXT: - case NO: - case NONE: - case NORMALIZE: - case NORMALIZED: - case NOTHING: - case NOTIFY: - case NOWAIT: - case NULLABLE: - case NULLIF: - case NULLS: - case NUMBER: - case NUMERIC: - case OBJECT: - case OCTET_LENGTH: - case OCTETS: - case OF: - case OFF: - case OIDS: - case OLD: - case OPEN: - case OPERATOR: - case OPTION: - case OPTIONS: - case ORDERING: - case ORDINALITY: - case OTHERS: - case OUT: - case OUTPUT: - case OVER: - case OVERLAY: - case OVERRIDING: - case OWNER: - case PAD: - case PARAMETER: - case PARAMETER_MODE: - case PARAMETER_NAME: - case PARAMETER_ORDINAL_POSITION: - case PARAMETER_SPECIFIC_CATALOG: - case PARAMETER_SPECIFIC_NAME: - case PARAMETER_SPECIFIC_SCHEMA: - case PARTIAL: - case PARTITION: - case PASCAL: - case PASSWORD: - case PATH: - case PERCENT_RANK: - case PERCENTILE_CONT: - case PERCENTILE_DISC: - case PLAIN: - case PLI: - case POSITION: - case POWER: - case PRECEDING: - case PRECISION: - case PREPARE: - case PRESERVE: - case PRIOR: - case PRIVILEGES: - case PROCEDURAL: - case PROCEDURE: - case PUBLIC: - case QUOTE: - case RANGE: - case RANK: - case READ: - case READS: - case REAL: - case RECHECK: - case RECURSIVE: - case REF: - case REFERENCING: - case REFRESH: - case REGR_AVGX: - case REGR_AVGY: - case REGR_COUNT: - case REGR_INTERCEPT: - case REGR_SLOPE: - case REGR_SXX: - case REGR_SXY: - case REGR_SYY: - case REINDEX: - case RELATIVE: - case RELEASE: - case RENAME: - case REPEATABLE: - case REPLACE: - case RESET: - case RESTART: - case RESTRICT: - case RESULT: - case RETURN: - case RETURNED_CARDINALITY: - case RETURNED_LENGTH: - case RETURNED_OCTET_LENGTH: - case RETURNED_SQLSTATE: - case RETURNS: - case REVOKE: - case RIGHT: - case ROLE: - case ROLLBACK: - case ROLLUP: - case ROUTINE: - case ROUTINE_CATALOG: - case ROUTINE_NAME: - case ROUTINE_SCHEMA: - case ROW: - case ROW_COUNT: - case ROW_NUMBER: - case ROWS: - case RULE: - case SAVEPOINT: - case SCALE: - case SCHEMA: - case SCHEMA_NAME: - case SCOPE: - case SCOPE_CATALOG: - case SCOPE_NAME: - case SCOPE_SCHEMA: - case SCROLL: - case SEARCH: - case SECOND: - case SECTION: - case SECURITY: - case SELF: - case SENSITIVE: - case SEQUENCE: - case SEQUENCES: - case SERIALIZABLE: - case SERVER_NAME: - case SESSION: - case SET: - case SETOF: - case SETS: - case SHARE: - case SHOW: - case SIMPLE: - case SIZE: - case SMALLINT: - case SOME: - case SOURCE: - case SPACE: - case SPECIFIC: - case SPECIFIC_NAME: - case SPECIFICTYPE: - case SQL: - case SQLCODE: - case SQLERROR: - case SQLEXCEPTION: - case SQLSTATE: - case SQLWARNING: - case SQRT: - case STABLE: - case START: - case STATE: - case STATEMENT: - case STATIC: - case STATISTICS: - case STDDEV_POP: - case STDDEV_SAMP: - case STDIN: - case STDOUT: - case STORAGE: - case STRICT: - case STRUCTURE: - case STYLE: - case SUBCLASS_ORIGIN: - case SUBMULTISET: - case SUBSTRING: - case SUM: - case SYSID: - case SYSTEM: - case SYSTEM_USER: - case TABLE_NAME: - case TABLESPACE: - case TEMP: - case TEMPLATE: - case TEMPORARY: - case TIES: - case TIME: - case TIMESTAMP: - case TIMEZONE_HOUR: - case TIMEZONE_MINUTE: - case TOP_LEVEL_COUNT: - case TRANSACTION: - case TRANSACTION_ACTIVE: - case TRANSACTIONS_COMMITTED: - case TRANSACTIONS_ROLLED_BACK: - case TRANSFORM: - case TRANSFORMS: - case TRANSLATE: - case TRANSLATION: - case TREAT: - case TRIGGER: - case TRIGGER_CATALOG: - case TRIGGER_NAME: - case TRIGGER_SCHEMA: - case TRIM: - case TRUE: - case TRUNCATE: - case TRUSTED: - case TYPE: - case UESCAPE: - case UNBOUNDED: - case UNCOMMITTED: - case UNDER: - case UNENCRYPTED: - case UNKNOWN: - case UNLISTEN: - case UNNAMED: - case UNNEST: - case UNTIL: - case UPDATE: - case UPPER: - case USAGE: - case USER_DEFINED_TYPE_CATALOG: - case USER_DEFINED_TYPE_CODE: - case USER_DEFINED_TYPE_NAME: - case USER_DEFINED_TYPE_SCHEMA: - case VACUUM: - case VALID: - case VALIDATOR: - case VALUE: - case VALUES: - case VAR_POP: - case VAR_SAMP: - case VARCHAR: - case VARYING: - case VIEW: - case VOLATILE: - case WHENEVER: - case WIDTH_BUCKET: - case WITHIN: - case WITHOUT: - case WORK: - case WRITE: - case YEAR: - case ZONE: - case ABSTIME: - case BIGSERIAL: - case BIT_VARYING: - case BOOL: - case BOX: - case BYTEA: - case CHARACTER_VARYING: - case CIDR: - case CIRCLE: - case FLOAT4: - case FLOAT8: - case INET: - case INT2: - case INT4: - case INT8: - case JSON: - case JSONB: - case LINE: - case LSEG: - case MACADDR: - case MACADDR8: - case MONEY: - case PG_LSN: - case POINT: - case POLYGON: - case RELTIME: - case SERIAL: - case SERIAL2: - case SERIAL4: - case SERIAL8: - case SMALLSERIAL: - case TEXT: - case TIMESTAMPTZ: - case TIMETZ: - case TSQUERY: - case TSVECTOR: - case TXID_SNAPSHOT: - case UUID: - case VARBIT: - case XML: - case DOUBLEQ_STRING_LITERAL: - case IDENTIFIER: - case IDENTIFIER_UNICODE: { - setState(5473); - ((Exclude_elementContext) _localctx).column_name_ = identifier(0); - } - break; - case OPEN_PAREN: { - setState(5474); - match(OPEN_PAREN); - setState(5475); - expr(0); - setState(5476); - match(CLOSE_PAREN); - } - break; - default: - throw new NoViableAltException(this); - } - setState(5481); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 671, _ctx)) { - case 1: { - setState(5480); - ((Exclude_elementContext) _localctx).opclass = identifier(0); - } - break; - } - setState(5484); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ASC || _la == DESC) { - { - setState(5483); - _la = _input.LA(1); - if (!(_la == ASC || _la == DESC)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - setState(5488); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NULLS) { - { - setState(5486); - match(NULLS); - setState(5487); - _la = _input.LA(1); - if (!(_la == FIRST || _la == LAST)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Table_constraintContext extends ParserRuleContext { - public Name_Context constraint_name; - public Identifier_listContext columns; - public Identifier_listContext operators; - public IdentifierContext reftable; - public IdentifierContext action; - - public TerminalNode CONSTRAINT() { - return getToken(PostgreSQLParser.CONSTRAINT, 0); - } - - public TerminalNode DEFERABLE() { - return getToken(PostgreSQLParser.DEFERABLE, 0); - } - - public TerminalNode INITIALLY() { - return getToken(PostgreSQLParser.INITIALLY, 0); - } - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode CHECK() { - return getToken(PostgreSQLParser.CHECK, 0); - } - - public List OPEN_PAREN() { - return getTokens(PostgreSQLParser.OPEN_PAREN); - } - - public TerminalNode OPEN_PAREN(int i) { - return getToken(PostgreSQLParser.OPEN_PAREN, i); - } - - public ExprContext expr() { - return getRuleContext(ExprContext.class, 0); - } - - public List CLOSE_PAREN() { - return getTokens(PostgreSQLParser.CLOSE_PAREN); - } - - public TerminalNode CLOSE_PAREN(int i) { - return getToken(PostgreSQLParser.CLOSE_PAREN, i); - } - - public TerminalNode UNIQUE() { - return getToken(PostgreSQLParser.UNIQUE, 0); - } - - public TerminalNode PRIMARY() { - return getToken(PostgreSQLParser.PRIMARY, 0); - } - - public TerminalNode KEY() { - return getToken(PostgreSQLParser.KEY, 0); - } - - public Index_parametersContext index_parameters() { - return getRuleContext(Index_parametersContext.class, 0); - } - - public TerminalNode FOREIGN() { - return getToken(PostgreSQLParser.FOREIGN, 0); - } - - public TerminalNode REFERENCES() { - return getToken(PostgreSQLParser.REFERENCES, 0); - } - - public TerminalNode DEFERRED() { - return getToken(PostgreSQLParser.DEFERRED, 0); - } - - public TerminalNode IMMEDIATE() { - return getToken(PostgreSQLParser.IMMEDIATE, 0); - } - - public List identifier_list() { - return getRuleContexts(Identifier_listContext.class); - } - - public Identifier_listContext identifier_list(int i) { - return getRuleContext(Identifier_listContext.class, i); - } - - public TerminalNode EXCLUDE() { - return getToken(PostgreSQLParser.EXCLUDE, 0); - } - - public Exclude_elementContext exclude_element() { - return getRuleContext(Exclude_elementContext.class, 0); - } - - public TerminalNode WITH() { - return getToken(PostgreSQLParser.WITH, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode NOT() { - return getToken(PostgreSQLParser.NOT, 0); - } - - public TerminalNode NO() { - return getToken(PostgreSQLParser.NO, 0); - } - - public TerminalNode INHERIT() { - return getToken(PostgreSQLParser.INHERIT, 0); - } - - public TerminalNode WHERE() { - return getToken(PostgreSQLParser.WHERE, 0); - } - - public PredicateContext predicate() { - return getRuleContext(PredicateContext.class, 0); - } - - public TerminalNode MATCH() { - return getToken(PostgreSQLParser.MATCH, 0); - } - - public TerminalNode FULL() { - return getToken(PostgreSQLParser.FULL, 0); - } - - public TerminalNode PARTIAL() { - return getToken(PostgreSQLParser.PARTIAL, 0); - } - - public TerminalNode MATCH_SIMPLE() { - return getToken(PostgreSQLParser.MATCH_SIMPLE, 0); - } - - public List ON() { - return getTokens(PostgreSQLParser.ON); - } - - public TerminalNode ON(int i) { - return getToken(PostgreSQLParser.ON, i); - } - - public TerminalNode DELETE() { - return getToken(PostgreSQLParser.DELETE, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public TerminalNode USING() { - return getToken(PostgreSQLParser.USING, 0); - } - - public Index_methodContext index_method() { - return getRuleContext(Index_methodContext.class, 0); - } - - public Table_constraintContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_table_constraint; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTable_constraint(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTable_constraint(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTable_constraint(this); - else return visitor.visitChildren(this); - } - } - - public final Table_constraintContext table_constraint() throws RecognitionException { - Table_constraintContext _localctx = new Table_constraintContext(_ctx, getState()); - enterRule(_localctx, 502, RULE_table_constraint); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5492); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == CONSTRAINT) { - { - setState(5490); - match(CONSTRAINT); - setState(5491); - ((Table_constraintContext) _localctx).constraint_name = name_(); - } - } - - setState(5559); - _errHandler.sync(this); - switch (_input.LA(1)) { - case CHECK: { - { - setState(5494); - match(CHECK); - setState(5495); - match(OPEN_PAREN); - setState(5496); - expr(0); - setState(5497); - match(CLOSE_PAREN); - setState(5500); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NO) { - { - setState(5498); - match(NO); - setState(5499); - match(INHERIT); - } - } - - } - } - break; - case UNIQUE: { - { - setState(5502); - match(UNIQUE); - setState(5503); - match(OPEN_PAREN); - setState(5504); - ((Table_constraintContext) _localctx).columns = identifier_list(); - setState(5505); - match(CLOSE_PAREN); - } - } - break; - case PRIMARY: { - { - setState(5507); - match(PRIMARY); - setState(5508); - match(KEY); - setState(5509); - match(OPEN_PAREN); - setState(5510); - ((Table_constraintContext) _localctx).columns = identifier_list(); - setState(5511); - match(CLOSE_PAREN); - setState(5512); - index_parameters(); - } - } - break; - case EOF: - case DEFERABLE: - case EXCLUDE: - case INITIALLY: - case NOT: - case COMMA: - case CLOSE_PAREN: - case SEMI: { - setState(5530); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == EXCLUDE) { - { - setState(5514); - match(EXCLUDE); - setState(5517); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == USING) { - { - setState(5515); - match(USING); - setState(5516); - index_method(); - } - } - - setState(5519); - match(OPEN_PAREN); - setState(5520); - exclude_element(); - setState(5521); - match(WITH); - setState(5522); - ((Table_constraintContext) _localctx).operators = identifier_list(); - setState(5523); - match(CLOSE_PAREN); - setState(5524); - index_parameters(); - { - setState(5525); - match(WHERE); - setState(5526); - match(OPEN_PAREN); - setState(5527); - predicate(0); - setState(5528); - match(CLOSE_PAREN); - } - } - } - - } - break; - case FOREIGN: { - { - setState(5532); - match(FOREIGN); - setState(5533); - match(KEY); - setState(5534); - match(OPEN_PAREN); - setState(5535); - ((Table_constraintContext) _localctx).columns = identifier_list(); - setState(5536); - match(CLOSE_PAREN); - setState(5537); - match(REFERENCES); - setState(5538); - ((Table_constraintContext) _localctx).reftable = identifier(0); - setState(5540); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 678, _ctx)) { - case 1: { - setState(5539); - ((Table_constraintContext) _localctx).columns = identifier_list(); - } - break; - } - setState(5547); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 679, _ctx)) { - case 1: { - setState(5542); - match(MATCH); - setState(5543); - match(FULL); - } - break; - case 2: { - setState(5544); - match(MATCH); - setState(5545); - match(PARTIAL); - } - break; - case 3: { - setState(5546); - match(MATCH_SIMPLE); - } - break; - } - setState(5552); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 680, _ctx)) { - case 1: { - setState(5549); - match(ON); - setState(5550); - match(DELETE); - setState(5551); - ((Table_constraintContext) _localctx).action = identifier(0); - } - break; - } - setState(5557); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == ON) { - { - setState(5554); - match(ON); - setState(5555); - match(UPDATE); - setState(5556); - ((Table_constraintContext) _localctx).action = identifier(0); - } - } - - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(5565); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 684, _ctx)) { - case 1: { - setState(5562); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == NOT) { - { - setState(5561); - match(NOT); - } - } - - setState(5564); - match(DEFERABLE); - } - break; - } - setState(5569); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == INITIALLY) { - { - setState(5567); - match(INITIALLY); - setState(5568); - _la = _input.LA(1); - if (!(_la == DEFERRED || _la == IMMEDIATE)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Role_nameContext extends ParserRuleContext { - public Name_Context name; - - public Name_Context name_() { - return getRuleContext(Name_Context.class, 0); - } - - public TerminalNode CURRENT_USER() { - return getToken(PostgreSQLParser.CURRENT_USER, 0); - } - - public TerminalNode SESSION_USER() { - return getToken(PostgreSQLParser.SESSION_USER, 0); - } - - public TerminalNode PUBLIC() { - return getToken(PostgreSQLParser.PUBLIC, 0); - } - - public Role_nameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_role_name; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRole_name(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitRole_name(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRole_name(this); - else return visitor.visitChildren(this); - } - } - - public final Role_nameContext role_name() throws RecognitionException { - Role_nameContext _localctx = new Role_nameContext(_ctx, getState()); - enterRule(_localctx, 504, RULE_role_name); - try { - setState(5575); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 686, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(5571); - ((Role_nameContext) _localctx).name = name_(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5572); - match(CURRENT_USER); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(5573); - match(SESSION_USER); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(5574); - match(PUBLIC); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Role_name_listContext extends ParserRuleContext { - public List role_name() { - return getRuleContexts(Role_nameContext.class); - } - - public Role_nameContext role_name(int i) { - return getRuleContext(Role_nameContext.class, i); - } - - public List COMMA() { - return getTokens(PostgreSQLParser.COMMA); - } - - public TerminalNode COMMA(int i) { - return getToken(PostgreSQLParser.COMMA, i); - } - - public Role_name_listContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_role_name_list; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterRole_name_list(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitRole_name_list(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitRole_name_list(this); - else return visitor.visitChildren(this); - } - } - - public final Role_name_listContext role_name_list() throws RecognitionException { - Role_name_listContext _localctx = new Role_name_listContext(_ctx, getState()); - enterRule(_localctx, 506, RULE_role_name_list); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5577); - role_name(); - setState(5582); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == COMMA) { - { - { - setState(5578); - match(COMMA); - setState(5579); - role_name(); - } - } - setState(5584); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Param_valueContext extends ParserRuleContext { - public TerminalNode ON() { - return getToken(PostgreSQLParser.ON, 0); - } - - public TerminalNode OFF() { - return getToken(PostgreSQLParser.OFF, 0); - } - - public TerminalNode TRUE() { - return getToken(PostgreSQLParser.TRUE, 0); - } - - public TerminalNode FALSE() { - return getToken(PostgreSQLParser.FALSE, 0); - } - - public TerminalNode YES() { - return getToken(PostgreSQLParser.YES, 0); - } - - public TerminalNode NO() { - return getToken(PostgreSQLParser.NO, 0); - } - - public TerminalNode NONE() { - return getToken(PostgreSQLParser.NONE, 0); - } - - public TerminalNode SINGLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); - } - - public TerminalNode NUMERIC_LITERAL() { - return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); - } - - public TerminalNode INTEGER_LITERAL() { - return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); - } - - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Param_valueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_param_value; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterParam_value(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitParam_value(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitParam_value(this); - else return visitor.visitChildren(this); - } - } - - public final Param_valueContext param_value() throws RecognitionException { - Param_valueContext _localctx = new Param_valueContext(_ctx, getState()); - enterRule(_localctx, 508, RULE_param_value); - try { - setState(5596); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 688, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(5585); - match(ON); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(5586); - match(OFF); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(5587); - match(TRUE); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(5588); - match(FALSE); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(5589); - match(YES); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(5590); - match(NO); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(5591); - match(NONE); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(5592); - match(SINGLEQ_STRING_LITERAL); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(5593); - match(NUMERIC_LITERAL); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(5594); - match(INTEGER_LITERAL); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(5595); - identifier(0); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Non_reserved_keywordContext extends ParserRuleContext { - public TerminalNode A_() { - return getToken(PostgreSQLParser.A_, 0); - } - - public TerminalNode ABORT() { - return getToken(PostgreSQLParser.ABORT, 0); - } - - public TerminalNode ABS() { - return getToken(PostgreSQLParser.ABS, 0); - } - - public TerminalNode ABSOLUTE() { - return getToken(PostgreSQLParser.ABSOLUTE, 0); - } - - public TerminalNode ACCESS() { - return getToken(PostgreSQLParser.ACCESS, 0); - } - - public TerminalNode ACTION() { - return getToken(PostgreSQLParser.ACTION, 0); - } - - public TerminalNode ADA() { - return getToken(PostgreSQLParser.ADA, 0); - } - - public TerminalNode ADD() { - return getToken(PostgreSQLParser.ADD, 0); - } - - public TerminalNode ADMIN() { - return getToken(PostgreSQLParser.ADMIN, 0); - } - - public TerminalNode AFTER() { - return getToken(PostgreSQLParser.AFTER, 0); - } - - public TerminalNode AGGREGATE() { - return getToken(PostgreSQLParser.AGGREGATE, 0); - } - - public TerminalNode ALLOCATE() { - return getToken(PostgreSQLParser.ALLOCATE, 0); - } - - public TerminalNode ALSO() { - return getToken(PostgreSQLParser.ALSO, 0); - } - - public TerminalNode ALTER() { - return getToken(PostgreSQLParser.ALTER, 0); - } - - public TerminalNode ALWAYS() { - return getToken(PostgreSQLParser.ALWAYS, 0); - } - - public TerminalNode ANY() { - return getToken(PostgreSQLParser.ANY, 0); - } - - public TerminalNode ARE() { - return getToken(PostgreSQLParser.ARE, 0); - } - - public TerminalNode ASENSITIVE() { - return getToken(PostgreSQLParser.ASENSITIVE, 0); - } - - public TerminalNode ASSERTION() { - return getToken(PostgreSQLParser.ASSERTION, 0); - } - - public TerminalNode ASSIGNMENT() { - return getToken(PostgreSQLParser.ASSIGNMENT, 0); - } - - public TerminalNode AT() { - return getToken(PostgreSQLParser.AT, 0); - } - - public TerminalNode ATOMIC() { - return getToken(PostgreSQLParser.ATOMIC, 0); - } - - public TerminalNode ATTRIBUTE() { - return getToken(PostgreSQLParser.ATTRIBUTE, 0); - } - - public TerminalNode ATTRIBUTES() { - return getToken(PostgreSQLParser.ATTRIBUTES, 0); - } - - public TerminalNode AVG() { - return getToken(PostgreSQLParser.AVG, 0); - } - - public TerminalNode BACKWARD() { - return getToken(PostgreSQLParser.BACKWARD, 0); - } - - public TerminalNode BEFORE() { - return getToken(PostgreSQLParser.BEFORE, 0); - } - - public TerminalNode BEGIN() { - return getToken(PostgreSQLParser.BEGIN, 0); - } - - public TerminalNode BERNOULLI() { - return getToken(PostgreSQLParser.BERNOULLI, 0); - } - - public TerminalNode BETWEEN() { - return getToken(PostgreSQLParser.BETWEEN, 0); - } - - public TerminalNode BIGINT() { - return getToken(PostgreSQLParser.BIGINT, 0); - } - - public TerminalNode BIT() { - return getToken(PostgreSQLParser.BIT, 0); - } - - public TerminalNode BIT_LENGTH() { - return getToken(PostgreSQLParser.BIT_LENGTH, 0); - } - - public TerminalNode BLOB() { - return getToken(PostgreSQLParser.BLOB, 0); - } - - public TerminalNode BOOLEAN() { - return getToken(PostgreSQLParser.BOOLEAN, 0); - } - - public TerminalNode BREADTH() { - return getToken(PostgreSQLParser.BREADTH, 0); - } - - public TerminalNode BY() { - return getToken(PostgreSQLParser.BY, 0); - } - - public TerminalNode C_() { - return getToken(PostgreSQLParser.C_, 0); - } - - public TerminalNode CACHE() { - return getToken(PostgreSQLParser.CACHE, 0); - } - - public TerminalNode CALL() { - return getToken(PostgreSQLParser.CALL, 0); - } - - public TerminalNode CALLED() { - return getToken(PostgreSQLParser.CALLED, 0); - } - - public TerminalNode CARDINALITY() { - return getToken(PostgreSQLParser.CARDINALITY, 0); - } - - public TerminalNode CASCADE() { - return getToken(PostgreSQLParser.CASCADE, 0); - } - - public TerminalNode CASCADED() { - return getToken(PostgreSQLParser.CASCADED, 0); - } - - public TerminalNode CATALOG() { - return getToken(PostgreSQLParser.CATALOG, 0); - } - - public TerminalNode CATALOG_NAME() { - return getToken(PostgreSQLParser.CATALOG_NAME, 0); - } - - public TerminalNode CEIL() { - return getToken(PostgreSQLParser.CEIL, 0); - } - - public TerminalNode CEILING() { - return getToken(PostgreSQLParser.CEILING, 0); - } - - public TerminalNode CHAIN() { - return getToken(PostgreSQLParser.CHAIN, 0); - } - - public TerminalNode CHAR() { - return getToken(PostgreSQLParser.CHAR, 0); - } - - public TerminalNode CHARACTER() { - return getToken(PostgreSQLParser.CHARACTER, 0); - } - - public TerminalNode CHARACTERISTICS() { - return getToken(PostgreSQLParser.CHARACTERISTICS, 0); - } - - public TerminalNode CHARACTERS() { - return getToken(PostgreSQLParser.CHARACTERS, 0); - } - - public TerminalNode CHARACTER_LENGTH() { - return getToken(PostgreSQLParser.CHARACTER_LENGTH, 0); - } - - public TerminalNode CHARACTER_SET_CATALOG() { - return getToken(PostgreSQLParser.CHARACTER_SET_CATALOG, 0); - } - - public TerminalNode CHARACTER_SET_NAME() { - return getToken(PostgreSQLParser.CHARACTER_SET_NAME, 0); - } - - public TerminalNode CHARACTER_SET_SCHEMA() { - return getToken(PostgreSQLParser.CHARACTER_SET_SCHEMA, 0); - } - - public TerminalNode CHAR_LENGTH() { - return getToken(PostgreSQLParser.CHAR_LENGTH, 0); - } - - public TerminalNode CHECKPOINT() { - return getToken(PostgreSQLParser.CHECKPOINT, 0); - } - - public TerminalNode CLASS() { - return getToken(PostgreSQLParser.CLASS, 0); - } - - public TerminalNode CLASS_ORIGIN() { - return getToken(PostgreSQLParser.CLASS_ORIGIN, 0); - } - - public TerminalNode CLOB() { - return getToken(PostgreSQLParser.CLOB, 0); - } - - public TerminalNode CLOSE() { - return getToken(PostgreSQLParser.CLOSE, 0); - } - - public TerminalNode CLUSTER() { - return getToken(PostgreSQLParser.CLUSTER, 0); - } - - public TerminalNode COALESCE() { - return getToken(PostgreSQLParser.COALESCE, 0); - } - - public TerminalNode COBOL() { - return getToken(PostgreSQLParser.COBOL, 0); - } - - public TerminalNode COLLATION_CATALOG() { - return getToken(PostgreSQLParser.COLLATION_CATALOG, 0); - } - - public TerminalNode COLLATION_NAME() { - return getToken(PostgreSQLParser.COLLATION_NAME, 0); - } - - public TerminalNode COLLATION_SCHEMA() { - return getToken(PostgreSQLParser.COLLATION_SCHEMA, 0); - } - - public TerminalNode COLLECT() { - return getToken(PostgreSQLParser.COLLECT, 0); - } - - public TerminalNode COLUMN_NAME() { - return getToken(PostgreSQLParser.COLUMN_NAME, 0); - } - - public TerminalNode COMMAND_FUNCTION() { - return getToken(PostgreSQLParser.COMMAND_FUNCTION, 0); - } - - public TerminalNode COMMAND_FUNCTION_CODE() { - return getToken(PostgreSQLParser.COMMAND_FUNCTION_CODE, 0); - } - - public TerminalNode COMMENT() { - return getToken(PostgreSQLParser.COMMENT, 0); - } - - public TerminalNode COMMIT() { - return getToken(PostgreSQLParser.COMMIT, 0); - } - - public TerminalNode COMMITTED() { - return getToken(PostgreSQLParser.COMMITTED, 0); - } - - public TerminalNode CONDITION() { - return getToken(PostgreSQLParser.CONDITION, 0); - } - - public TerminalNode CONDITION_NUMBER() { - return getToken(PostgreSQLParser.CONDITION_NUMBER, 0); - } - - public TerminalNode CONNECT() { - return getToken(PostgreSQLParser.CONNECT, 0); - } - - public TerminalNode CONNECTION() { - return getToken(PostgreSQLParser.CONNECTION, 0); - } - - public TerminalNode CONNECTION_NAME() { - return getToken(PostgreSQLParser.CONNECTION_NAME, 0); - } - - public TerminalNode CONSTRAINTS() { - return getToken(PostgreSQLParser.CONSTRAINTS, 0); - } - - public TerminalNode CONSTRAINT_CATALOG() { - return getToken(PostgreSQLParser.CONSTRAINT_CATALOG, 0); - } - - public TerminalNode CONSTRAINT_NAME() { - return getToken(PostgreSQLParser.CONSTRAINT_NAME, 0); - } - - public TerminalNode CONSTRAINT_SCHEMA() { - return getToken(PostgreSQLParser.CONSTRAINT_SCHEMA, 0); - } - - public TerminalNode CONSTRUCTOR() { - return getToken(PostgreSQLParser.CONSTRUCTOR, 0); - } - - public TerminalNode CONTAINS() { - return getToken(PostgreSQLParser.CONTAINS, 0); - } - - public TerminalNode CONTINUE() { - return getToken(PostgreSQLParser.CONTINUE, 0); - } - - public TerminalNode CONVERSION() { - return getToken(PostgreSQLParser.CONVERSION, 0); - } - - public TerminalNode CONVERT() { - return getToken(PostgreSQLParser.CONVERT, 0); - } - - public TerminalNode COPY() { - return getToken(PostgreSQLParser.COPY, 0); - } - - public TerminalNode CORR() { - return getToken(PostgreSQLParser.CORR, 0); - } - - public TerminalNode CORRESPONDING() { - return getToken(PostgreSQLParser.CORRESPONDING, 0); - } - - public TerminalNode COUNT() { - return getToken(PostgreSQLParser.COUNT, 0); - } - - public TerminalNode COVAR_POP() { - return getToken(PostgreSQLParser.COVAR_POP, 0); - } - - public TerminalNode COVAR_SAMP() { - return getToken(PostgreSQLParser.COVAR_SAMP, 0); - } - - public TerminalNode CSV() { - return getToken(PostgreSQLParser.CSV, 0); - } - - public TerminalNode CUBE() { - return getToken(PostgreSQLParser.CUBE, 0); - } - - public TerminalNode CUME_DIST() { - return getToken(PostgreSQLParser.CUME_DIST, 0); - } - - public TerminalNode CURRENT() { - return getToken(PostgreSQLParser.CURRENT, 0); - } - - public TerminalNode CURRENT_DEFAULT_TRANSFORM_GROUP() { - return getToken(PostgreSQLParser.CURRENT_DEFAULT_TRANSFORM_GROUP, 0); - } - - public TerminalNode CURRENT_PATH() { - return getToken(PostgreSQLParser.CURRENT_PATH, 0); - } - - public TerminalNode CURRENT_TRANSFORM_GROUP_FOR_TYPE() { - return getToken(PostgreSQLParser.CURRENT_TRANSFORM_GROUP_FOR_TYPE, 0); - } - - public TerminalNode CURSOR() { - return getToken(PostgreSQLParser.CURSOR, 0); - } - - public TerminalNode CURSOR_NAME() { - return getToken(PostgreSQLParser.CURSOR_NAME, 0); - } - - public TerminalNode CYCLE() { - return getToken(PostgreSQLParser.CYCLE, 0); - } - - public TerminalNode DATA() { - return getToken(PostgreSQLParser.DATA, 0); - } - - public TerminalNode DATABASE() { - return getToken(PostgreSQLParser.DATABASE, 0); - } - - public TerminalNode DATE() { - return getToken(PostgreSQLParser.DATE, 0); - } - - public TerminalNode DATETIME_INTERVAL_CODE() { - return getToken(PostgreSQLParser.DATETIME_INTERVAL_CODE, 0); - } - - public TerminalNode DATETIME_INTERVAL_PRECISION() { - return getToken(PostgreSQLParser.DATETIME_INTERVAL_PRECISION, 0); - } - - public TerminalNode DAY() { - return getToken(PostgreSQLParser.DAY, 0); - } - - public TerminalNode DEALLOCATE() { - return getToken(PostgreSQLParser.DEALLOCATE, 0); - } - - public TerminalNode DEC() { - return getToken(PostgreSQLParser.DEC, 0); - } - - public TerminalNode DECIMAL() { - return getToken(PostgreSQLParser.DECIMAL, 0); - } - - public TerminalNode DECLARE() { - return getToken(PostgreSQLParser.DECLARE, 0); - } - - public TerminalNode DEFAULTS() { - return getToken(PostgreSQLParser.DEFAULTS, 0); - } - - public TerminalNode DEFERRED() { - return getToken(PostgreSQLParser.DEFERRED, 0); - } - - public TerminalNode DEFINED() { - return getToken(PostgreSQLParser.DEFINED, 0); - } - - public TerminalNode DEFINER() { - return getToken(PostgreSQLParser.DEFINER, 0); - } - - public TerminalNode DEGREE() { - return getToken(PostgreSQLParser.DEGREE, 0); - } - - public TerminalNode DELETE() { - return getToken(PostgreSQLParser.DELETE, 0); - } - - public TerminalNode DELIMITER() { - return getToken(PostgreSQLParser.DELIMITER, 0); - } - - public TerminalNode DELIMITERS() { - return getToken(PostgreSQLParser.DELIMITERS, 0); - } - - public TerminalNode DENSE_RANK() { - return getToken(PostgreSQLParser.DENSE_RANK, 0); - } - - public TerminalNode DEPTH() { - return getToken(PostgreSQLParser.DEPTH, 0); - } - - public TerminalNode DEREF() { - return getToken(PostgreSQLParser.DEREF, 0); - } - - public TerminalNode DERIVED() { - return getToken(PostgreSQLParser.DERIVED, 0); - } - - public TerminalNode DESCRIBE() { - return getToken(PostgreSQLParser.DESCRIBE, 0); - } - - public TerminalNode DESCRIPTOR() { - return getToken(PostgreSQLParser.DESCRIPTOR, 0); - } - - public TerminalNode DETERMINISTIC() { - return getToken(PostgreSQLParser.DETERMINISTIC, 0); - } - - public TerminalNode DIAGNOSTICS() { - return getToken(PostgreSQLParser.DIAGNOSTICS, 0); - } - - public TerminalNode DICTIONARY() { - return getToken(PostgreSQLParser.DICTIONARY, 0); - } - - public TerminalNode DISCONNECT() { - return getToken(PostgreSQLParser.DISCONNECT, 0); - } - - public TerminalNode DISPATCH() { - return getToken(PostgreSQLParser.DISPATCH, 0); - } - - public TerminalNode DOMAIN() { - return getToken(PostgreSQLParser.DOMAIN, 0); - } - - public TerminalNode DOUBLE() { - return getToken(PostgreSQLParser.DOUBLE, 0); - } - - public TerminalNode DYNAMIC() { - return getToken(PostgreSQLParser.DYNAMIC, 0); - } - - public TerminalNode DYNAMIC_FUNCTION() { - return getToken(PostgreSQLParser.DYNAMIC_FUNCTION, 0); - } - - public TerminalNode DYNAMIC_FUNCTION_CODE() { - return getToken(PostgreSQLParser.DYNAMIC_FUNCTION_CODE, 0); - } - - public TerminalNode EACH() { - return getToken(PostgreSQLParser.EACH, 0); - } - - public TerminalNode ELEMENT() { - return getToken(PostgreSQLParser.ELEMENT, 0); - } - - public TerminalNode ENCODING() { - return getToken(PostgreSQLParser.ENCODING, 0); - } - - public TerminalNode ENCRYPTED() { - return getToken(PostgreSQLParser.ENCRYPTED, 0); - } - - public TerminalNode END() { - return getToken(PostgreSQLParser.END, 0); - } - - public TerminalNode EQUALS() { - return getToken(PostgreSQLParser.EQUALS, 0); - } - - public TerminalNode ESCAPE() { - return getToken(PostgreSQLParser.ESCAPE, 0); - } - - public TerminalNode EVERY() { - return getToken(PostgreSQLParser.EVERY, 0); - } - - public TerminalNode EXCEPTION() { - return getToken(PostgreSQLParser.EXCEPTION, 0); - } - - public TerminalNode EXCLUDE() { - return getToken(PostgreSQLParser.EXCLUDE, 0); - } - - public TerminalNode EXCLUDING() { - return getToken(PostgreSQLParser.EXCLUDING, 0); - } - - public TerminalNode EXCLUSIVE() { - return getToken(PostgreSQLParser.EXCLUSIVE, 0); - } - - public TerminalNode EXEC() { - return getToken(PostgreSQLParser.EXEC, 0); - } - - public TerminalNode EXECUTE() { - return getToken(PostgreSQLParser.EXECUTE, 0); - } - - public TerminalNode EXISTS() { - return getToken(PostgreSQLParser.EXISTS, 0); - } - - public TerminalNode EXP() { - return getToken(PostgreSQLParser.EXP, 0); - } - - public TerminalNode EXPLAIN() { - return getToken(PostgreSQLParser.EXPLAIN, 0); - } - - public TerminalNode EXTENSION() { - return getToken(PostgreSQLParser.EXTENSION, 0); - } - - public TerminalNode EXTERNAL() { - return getToken(PostgreSQLParser.EXTERNAL, 0); - } - - public TerminalNode EXTRACT() { - return getToken(PostgreSQLParser.EXTRACT, 0); - } - - public TerminalNode FILTER() { - return getToken(PostgreSQLParser.FILTER, 0); - } - - public TerminalNode FINAL() { - return getToken(PostgreSQLParser.FINAL, 0); - } - - public TerminalNode FIRST() { - return getToken(PostgreSQLParser.FIRST, 0); - } - - public TerminalNode FLOAT() { - return getToken(PostgreSQLParser.FLOAT, 0); - } - - public TerminalNode FLOOR() { - return getToken(PostgreSQLParser.FLOOR, 0); - } - - public TerminalNode FOLLOWING() { - return getToken(PostgreSQLParser.FOLLOWING, 0); - } - - public TerminalNode FORCE() { - return getToken(PostgreSQLParser.FORCE, 0); - } - - public TerminalNode FORMAT() { - return getToken(PostgreSQLParser.FORMAT, 0); - } - - public TerminalNode FORTRAN() { - return getToken(PostgreSQLParser.FORTRAN, 0); - } - - public TerminalNode FORWARD() { - return getToken(PostgreSQLParser.FORWARD, 0); - } - - public TerminalNode FOUND() { - return getToken(PostgreSQLParser.FOUND, 0); - } - - public TerminalNode FREE() { - return getToken(PostgreSQLParser.FREE, 0); - } - - public TerminalNode FUNCTION() { - return getToken(PostgreSQLParser.FUNCTION, 0); - } - - public TerminalNode FUSION() { - return getToken(PostgreSQLParser.FUSION, 0); - } - - public TerminalNode G_() { - return getToken(PostgreSQLParser.G_, 0); - } - - public TerminalNode GENERAL() { - return getToken(PostgreSQLParser.GENERAL, 0); - } - - public TerminalNode GENERATED() { - return getToken(PostgreSQLParser.GENERATED, 0); - } - - public TerminalNode GET() { - return getToken(PostgreSQLParser.GET, 0); - } - - public TerminalNode GLOBAL() { - return getToken(PostgreSQLParser.GLOBAL, 0); - } - - public TerminalNode GO() { - return getToken(PostgreSQLParser.GO, 0); - } - - public TerminalNode GOTO() { - return getToken(PostgreSQLParser.GOTO, 0); - } - - public TerminalNode GREATEST() { - return getToken(PostgreSQLParser.GREATEST, 0); - } - - public TerminalNode GRANTED() { - return getToken(PostgreSQLParser.GRANTED, 0); - } - - public TerminalNode GROUPING() { - return getToken(PostgreSQLParser.GROUPING, 0); - } - - public TerminalNode HANDLER() { - return getToken(PostgreSQLParser.HANDLER, 0); - } - - public TerminalNode HIERARCHY() { - return getToken(PostgreSQLParser.HIERARCHY, 0); - } - - public TerminalNode HOLD() { - return getToken(PostgreSQLParser.HOLD, 0); - } - - public TerminalNode HOST() { - return getToken(PostgreSQLParser.HOST, 0); - } - - public TerminalNode HOUR() { - return getToken(PostgreSQLParser.HOUR, 0); - } - - public TerminalNode IDENTITY() { - return getToken(PostgreSQLParser.IDENTITY, 0); - } - - public TerminalNode IGNORE() { - return getToken(PostgreSQLParser.IGNORE, 0); - } - - public TerminalNode IMMEDIATE() { - return getToken(PostgreSQLParser.IMMEDIATE, 0); - } - - public TerminalNode IMMUTABLE() { - return getToken(PostgreSQLParser.IMMUTABLE, 0); - } - - public TerminalNode IMPLEMENTATION() { - return getToken(PostgreSQLParser.IMPLEMENTATION, 0); - } - - public TerminalNode IMPLICIT() { - return getToken(PostgreSQLParser.IMPLICIT, 0); - } - - public TerminalNode INCLUDING() { - return getToken(PostgreSQLParser.INCLUDING, 0); - } - - public TerminalNode INCREMENT() { - return getToken(PostgreSQLParser.INCREMENT, 0); - } - - public TerminalNode INDEX() { - return getToken(PostgreSQLParser.INDEX, 0); - } - - public TerminalNode INDICATOR() { - return getToken(PostgreSQLParser.INDICATOR, 0); - } - - public TerminalNode INHERITS() { - return getToken(PostgreSQLParser.INHERITS, 0); - } - - public TerminalNode INOUT() { - return getToken(PostgreSQLParser.INOUT, 0); - } - - public TerminalNode INPUT() { - return getToken(PostgreSQLParser.INPUT, 0); - } - - public TerminalNode INSENSITIVE() { - return getToken(PostgreSQLParser.INSENSITIVE, 0); - } - - public TerminalNode INSERT() { - return getToken(PostgreSQLParser.INSERT, 0); - } - - public TerminalNode INSTANCE() { - return getToken(PostgreSQLParser.INSTANCE, 0); - } - - public TerminalNode INSTANTIABLE() { - return getToken(PostgreSQLParser.INSTANTIABLE, 0); - } - - public TerminalNode INSTEAD() { - return getToken(PostgreSQLParser.INSTEAD, 0); - } - - public TerminalNode INT() { - return getToken(PostgreSQLParser.INT, 0); - } - - public TerminalNode INTEGER() { - return getToken(PostgreSQLParser.INTEGER, 0); - } - - public TerminalNode INTERSECTION() { - return getToken(PostgreSQLParser.INTERSECTION, 0); - } - - public TerminalNode INTERVAL() { - return getToken(PostgreSQLParser.INTERVAL, 0); - } - - public TerminalNode INVOKER() { - return getToken(PostgreSQLParser.INVOKER, 0); - } - - public TerminalNode ISOLATION() { - return getToken(PostgreSQLParser.ISOLATION, 0); - } - - public TerminalNode K_() { - return getToken(PostgreSQLParser.K_, 0); - } - - public TerminalNode KEY() { - return getToken(PostgreSQLParser.KEY, 0); - } - - public TerminalNode KEY_MEMBER() { - return getToken(PostgreSQLParser.KEY_MEMBER, 0); - } - - public TerminalNode KEY_TYPE() { - return getToken(PostgreSQLParser.KEY_TYPE, 0); - } - - public TerminalNode LANGUAGE() { - return getToken(PostgreSQLParser.LANGUAGE, 0); - } - - public TerminalNode LARGE() { - return getToken(PostgreSQLParser.LARGE, 0); - } - - public TerminalNode LAST() { - return getToken(PostgreSQLParser.LAST, 0); - } - - public TerminalNode LEAST() { - return getToken(PostgreSQLParser.LEAST, 0); - } - - public TerminalNode LEFT() { - return getToken(PostgreSQLParser.LEFT, 0); - } - - public TerminalNode LENGTH() { - return getToken(PostgreSQLParser.LENGTH, 0); - } - - public TerminalNode LEVEL() { - return getToken(PostgreSQLParser.LEVEL, 0); - } - - public TerminalNode LISTEN() { - return getToken(PostgreSQLParser.LISTEN, 0); - } - - public TerminalNode LN() { - return getToken(PostgreSQLParser.LN, 0); - } - - public TerminalNode LOAD() { - return getToken(PostgreSQLParser.LOAD, 0); - } - - public TerminalNode LOCAL() { - return getToken(PostgreSQLParser.LOCAL, 0); - } - - public TerminalNode LOCATION() { - return getToken(PostgreSQLParser.LOCATION, 0); - } - - public TerminalNode LOCATOR() { - return getToken(PostgreSQLParser.LOCATOR, 0); - } - - public TerminalNode LOCK() { - return getToken(PostgreSQLParser.LOCK, 0); - } - - public TerminalNode LOCKED() { - return getToken(PostgreSQLParser.LOCKED, 0); - } - - public TerminalNode LOWER() { - return getToken(PostgreSQLParser.LOWER, 0); - } - - public TerminalNode M_() { - return getToken(PostgreSQLParser.M_, 0); - } - - public TerminalNode MAP() { - return getToken(PostgreSQLParser.MAP, 0); - } - - public TerminalNode MATCH() { - return getToken(PostgreSQLParser.MATCH, 0); - } - - public TerminalNode MATCHED() { - return getToken(PostgreSQLParser.MATCHED, 0); - } - - public TerminalNode MAX() { - return getToken(PostgreSQLParser.MAX, 0); - } - - public TerminalNode MAXVALUE() { - return getToken(PostgreSQLParser.MAXVALUE, 0); - } - - public TerminalNode MEMBER() { - return getToken(PostgreSQLParser.MEMBER, 0); - } - - public TerminalNode MERGE() { - return getToken(PostgreSQLParser.MERGE, 0); - } - - public TerminalNode MESSAGE_LENGTH() { - return getToken(PostgreSQLParser.MESSAGE_LENGTH, 0); - } - - public TerminalNode MESSAGE_OCTET_LENGTH() { - return getToken(PostgreSQLParser.MESSAGE_OCTET_LENGTH, 0); - } - - public TerminalNode MESSAGE_TEXT() { - return getToken(PostgreSQLParser.MESSAGE_TEXT, 0); - } - - public TerminalNode METHOD() { - return getToken(PostgreSQLParser.METHOD, 0); - } - - public TerminalNode MIN() { - return getToken(PostgreSQLParser.MIN, 0); - } - - public TerminalNode MINUTE() { - return getToken(PostgreSQLParser.MINUTE, 0); - } - - public TerminalNode MINVALUE() { - return getToken(PostgreSQLParser.MINVALUE, 0); - } - - public TerminalNode MOD() { - return getToken(PostgreSQLParser.MOD, 0); - } - - public TerminalNode MODE() { - return getToken(PostgreSQLParser.MODE, 0); - } - - public TerminalNode MODIFIES() { - return getToken(PostgreSQLParser.MODIFIES, 0); - } - - public TerminalNode MODULE() { - return getToken(PostgreSQLParser.MODULE, 0); - } - - public TerminalNode MONTH() { - return getToken(PostgreSQLParser.MONTH, 0); - } - - public TerminalNode MORE_() { - return getToken(PostgreSQLParser.MORE_, 0); - } - - public TerminalNode MOVE() { - return getToken(PostgreSQLParser.MOVE, 0); - } - - public TerminalNode MULTISET() { - return getToken(PostgreSQLParser.MULTISET, 0); - } - - public TerminalNode MUMPS() { - return getToken(PostgreSQLParser.MUMPS, 0); - } - - public TerminalNode NAME() { - return getToken(PostgreSQLParser.NAME, 0); - } - - public TerminalNode NAMES() { - return getToken(PostgreSQLParser.NAMES, 0); - } - - public TerminalNode NATIONAL() { - return getToken(PostgreSQLParser.NATIONAL, 0); - } - - public TerminalNode NCHAR() { - return getToken(PostgreSQLParser.NCHAR, 0); - } - - public TerminalNode NCLOB() { - return getToken(PostgreSQLParser.NCLOB, 0); - } - - public TerminalNode NESTING() { - return getToken(PostgreSQLParser.NESTING, 0); - } - - public TerminalNode NEW() { - return getToken(PostgreSQLParser.NEW, 0); - } - - public TerminalNode NEXT() { - return getToken(PostgreSQLParser.NEXT, 0); - } - - public TerminalNode NO() { - return getToken(PostgreSQLParser.NO, 0); - } - - public TerminalNode NONE() { - return getToken(PostgreSQLParser.NONE, 0); - } - - public TerminalNode NORMALIZE() { - return getToken(PostgreSQLParser.NORMALIZE, 0); - } - - public TerminalNode NORMALIZED() { - return getToken(PostgreSQLParser.NORMALIZED, 0); - } - - public TerminalNode NOTHING() { - return getToken(PostgreSQLParser.NOTHING, 0); - } - - public TerminalNode NOTIFY() { - return getToken(PostgreSQLParser.NOTIFY, 0); - } - - public TerminalNode NOWAIT() { - return getToken(PostgreSQLParser.NOWAIT, 0); - } - - public TerminalNode NULLABLE() { - return getToken(PostgreSQLParser.NULLABLE, 0); - } - - public TerminalNode NULLIF() { - return getToken(PostgreSQLParser.NULLIF, 0); - } - - public TerminalNode NULLS() { - return getToken(PostgreSQLParser.NULLS, 0); - } - - public TerminalNode NUMBER() { - return getToken(PostgreSQLParser.NUMBER, 0); - } - - public TerminalNode NUMERIC() { - return getToken(PostgreSQLParser.NUMERIC, 0); - } - - public TerminalNode OBJECT() { - return getToken(PostgreSQLParser.OBJECT, 0); - } - - public TerminalNode OCTETS() { - return getToken(PostgreSQLParser.OCTETS, 0); - } - - public TerminalNode OCTET_LENGTH() { - return getToken(PostgreSQLParser.OCTET_LENGTH, 0); - } - - public TerminalNode OF() { - return getToken(PostgreSQLParser.OF, 0); - } - - public TerminalNode OFF() { - return getToken(PostgreSQLParser.OFF, 0); - } - - public TerminalNode OIDS() { - return getToken(PostgreSQLParser.OIDS, 0); - } - - public TerminalNode OLD() { - return getToken(PostgreSQLParser.OLD, 0); - } - - public TerminalNode OPEN() { - return getToken(PostgreSQLParser.OPEN, 0); - } - - public TerminalNode OPERATOR() { - return getToken(PostgreSQLParser.OPERATOR, 0); - } - - public TerminalNode OPTION() { - return getToken(PostgreSQLParser.OPTION, 0); - } - - public TerminalNode OPTIONS() { - return getToken(PostgreSQLParser.OPTIONS, 0); - } - - public TerminalNode ORDERING() { - return getToken(PostgreSQLParser.ORDERING, 0); - } - - public TerminalNode ORDINALITY() { - return getToken(PostgreSQLParser.ORDINALITY, 0); - } - - public TerminalNode OTHERS() { - return getToken(PostgreSQLParser.OTHERS, 0); - } - - public TerminalNode OUT() { - return getToken(PostgreSQLParser.OUT, 0); - } - - public TerminalNode OUTPUT() { - return getToken(PostgreSQLParser.OUTPUT, 0); - } - - public TerminalNode OVER() { - return getToken(PostgreSQLParser.OVER, 0); - } - - public TerminalNode OVERLAY() { - return getToken(PostgreSQLParser.OVERLAY, 0); - } - - public TerminalNode OVERRIDING() { - return getToken(PostgreSQLParser.OVERRIDING, 0); - } - - public TerminalNode OWNER() { - return getToken(PostgreSQLParser.OWNER, 0); - } - - public TerminalNode PAD() { - return getToken(PostgreSQLParser.PAD, 0); - } - - public TerminalNode PARAMETER() { - return getToken(PostgreSQLParser.PARAMETER, 0); - } - - public TerminalNode PARAMETER_MODE() { - return getToken(PostgreSQLParser.PARAMETER_MODE, 0); - } - - public TerminalNode PARAMETER_NAME() { - return getToken(PostgreSQLParser.PARAMETER_NAME, 0); - } - - public TerminalNode PARAMETER_ORDINAL_POSITION() { - return getToken(PostgreSQLParser.PARAMETER_ORDINAL_POSITION, 0); - } - - public TerminalNode PARAMETER_SPECIFIC_CATALOG() { - return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_CATALOG, 0); - } - - public TerminalNode PARAMETER_SPECIFIC_NAME() { - return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_NAME, 0); - } - - public TerminalNode PARAMETER_SPECIFIC_SCHEMA() { - return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_SCHEMA, 0); - } - - public TerminalNode PARTIAL() { - return getToken(PostgreSQLParser.PARTIAL, 0); - } - - public TerminalNode PARTITION() { - return getToken(PostgreSQLParser.PARTITION, 0); - } - - public TerminalNode PASCAL() { - return getToken(PostgreSQLParser.PASCAL, 0); - } - - public TerminalNode PASSWORD() { - return getToken(PostgreSQLParser.PASSWORD, 0); - } - - public TerminalNode PATH() { - return getToken(PostgreSQLParser.PATH, 0); - } - - public TerminalNode PERCENTILE_CONT() { - return getToken(PostgreSQLParser.PERCENTILE_CONT, 0); - } - - public TerminalNode PERCENTILE_DISC() { - return getToken(PostgreSQLParser.PERCENTILE_DISC, 0); - } - - public TerminalNode PERCENT_RANK() { - return getToken(PostgreSQLParser.PERCENT_RANK, 0); - } - - public TerminalNode PLAIN() { - return getToken(PostgreSQLParser.PLAIN, 0); - } - - public TerminalNode PLI() { - return getToken(PostgreSQLParser.PLI, 0); - } - - public TerminalNode POSITION() { - return getToken(PostgreSQLParser.POSITION, 0); - } - - public TerminalNode POWER() { - return getToken(PostgreSQLParser.POWER, 0); - } - - public TerminalNode PRECEDING() { - return getToken(PostgreSQLParser.PRECEDING, 0); - } - - public TerminalNode PRECISION() { - return getToken(PostgreSQLParser.PRECISION, 0); - } - - public TerminalNode PREPARE() { - return getToken(PostgreSQLParser.PREPARE, 0); - } - - public TerminalNode PRESERVE() { - return getToken(PostgreSQLParser.PRESERVE, 0); - } - - public TerminalNode PRIOR() { - return getToken(PostgreSQLParser.PRIOR, 0); - } - - public TerminalNode PRIVILEGES() { - return getToken(PostgreSQLParser.PRIVILEGES, 0); - } - - public TerminalNode PROCEDURAL() { - return getToken(PostgreSQLParser.PROCEDURAL, 0); - } - - public TerminalNode PROCEDURE() { - return getToken(PostgreSQLParser.PROCEDURE, 0); - } - - public TerminalNode PUBLIC() { - return getToken(PostgreSQLParser.PUBLIC, 0); - } - - public TerminalNode QUOTE() { - return getToken(PostgreSQLParser.QUOTE, 0); - } - - public TerminalNode RANGE() { - return getToken(PostgreSQLParser.RANGE, 0); - } - - public TerminalNode RANK() { - return getToken(PostgreSQLParser.RANK, 0); - } - - public TerminalNode READ() { - return getToken(PostgreSQLParser.READ, 0); - } - - public TerminalNode READS() { - return getToken(PostgreSQLParser.READS, 0); - } - - public TerminalNode REAL() { - return getToken(PostgreSQLParser.REAL, 0); - } - - public TerminalNode RECHECK() { - return getToken(PostgreSQLParser.RECHECK, 0); - } - - public TerminalNode RECURSIVE() { - return getToken(PostgreSQLParser.RECURSIVE, 0); - } - - public TerminalNode REF() { - return getToken(PostgreSQLParser.REF, 0); - } - - public TerminalNode REFERENCING() { - return getToken(PostgreSQLParser.REFERENCING, 0); - } - - public TerminalNode REFRESH() { - return getToken(PostgreSQLParser.REFRESH, 0); - } - - public TerminalNode REGR_AVGX() { - return getToken(PostgreSQLParser.REGR_AVGX, 0); - } - - public TerminalNode REGR_AVGY() { - return getToken(PostgreSQLParser.REGR_AVGY, 0); - } - - public TerminalNode REGR_COUNT() { - return getToken(PostgreSQLParser.REGR_COUNT, 0); - } - - public TerminalNode REGR_INTERCEPT() { - return getToken(PostgreSQLParser.REGR_INTERCEPT, 0); - } - - public TerminalNode REGR_SLOPE() { - return getToken(PostgreSQLParser.REGR_SLOPE, 0); - } - - public TerminalNode REGR_SXX() { - return getToken(PostgreSQLParser.REGR_SXX, 0); - } - - public TerminalNode REGR_SXY() { - return getToken(PostgreSQLParser.REGR_SXY, 0); - } - - public TerminalNode REGR_SYY() { - return getToken(PostgreSQLParser.REGR_SYY, 0); - } - - public TerminalNode REINDEX() { - return getToken(PostgreSQLParser.REINDEX, 0); - } - - public TerminalNode RELATIVE() { - return getToken(PostgreSQLParser.RELATIVE, 0); - } - - public TerminalNode RELEASE() { - return getToken(PostgreSQLParser.RELEASE, 0); - } - - public TerminalNode RENAME() { - return getToken(PostgreSQLParser.RENAME, 0); - } - - public TerminalNode REPEATABLE() { - return getToken(PostgreSQLParser.REPEATABLE, 0); - } - - public TerminalNode REPLACE() { - return getToken(PostgreSQLParser.REPLACE, 0); - } - - public TerminalNode RESET() { - return getToken(PostgreSQLParser.RESET, 0); - } - - public TerminalNode RESTART() { - return getToken(PostgreSQLParser.RESTART, 0); - } - - public TerminalNode RESTRICT() { - return getToken(PostgreSQLParser.RESTRICT, 0); - } - - public TerminalNode RESULT() { - return getToken(PostgreSQLParser.RESULT, 0); - } - - public TerminalNode RETURN() { - return getToken(PostgreSQLParser.RETURN, 0); - } - - public TerminalNode RETURNED_CARDINALITY() { - return getToken(PostgreSQLParser.RETURNED_CARDINALITY, 0); - } - - public TerminalNode RETURNED_LENGTH() { - return getToken(PostgreSQLParser.RETURNED_LENGTH, 0); - } - - public TerminalNode RETURNED_OCTET_LENGTH() { - return getToken(PostgreSQLParser.RETURNED_OCTET_LENGTH, 0); - } - - public TerminalNode RETURNED_SQLSTATE() { - return getToken(PostgreSQLParser.RETURNED_SQLSTATE, 0); - } - - public TerminalNode RETURNS() { - return getToken(PostgreSQLParser.RETURNS, 0); - } - - public TerminalNode REVOKE() { - return getToken(PostgreSQLParser.REVOKE, 0); - } - - public TerminalNode RIGHT() { - return getToken(PostgreSQLParser.RIGHT, 0); - } - - public TerminalNode ROLE() { - return getToken(PostgreSQLParser.ROLE, 0); - } - - public TerminalNode ROLLBACK() { - return getToken(PostgreSQLParser.ROLLBACK, 0); - } - - public TerminalNode ROLLUP() { - return getToken(PostgreSQLParser.ROLLUP, 0); - } - - public TerminalNode ROUTINE() { - return getToken(PostgreSQLParser.ROUTINE, 0); - } - - public TerminalNode ROUTINE_CATALOG() { - return getToken(PostgreSQLParser.ROUTINE_CATALOG, 0); - } - - public TerminalNode ROUTINE_NAME() { - return getToken(PostgreSQLParser.ROUTINE_NAME, 0); - } - - public TerminalNode ROUTINE_SCHEMA() { - return getToken(PostgreSQLParser.ROUTINE_SCHEMA, 0); - } - - public TerminalNode ROW() { - return getToken(PostgreSQLParser.ROW, 0); - } - - public TerminalNode ROWS() { - return getToken(PostgreSQLParser.ROWS, 0); - } - - public TerminalNode ROW_COUNT() { - return getToken(PostgreSQLParser.ROW_COUNT, 0); - } - - public TerminalNode ROW_NUMBER() { - return getToken(PostgreSQLParser.ROW_NUMBER, 0); - } - - public TerminalNode RULE() { - return getToken(PostgreSQLParser.RULE, 0); - } - - public TerminalNode SAVEPOINT() { - return getToken(PostgreSQLParser.SAVEPOINT, 0); - } - - public TerminalNode SCALE() { - return getToken(PostgreSQLParser.SCALE, 0); - } - - public TerminalNode SCHEMA() { - return getToken(PostgreSQLParser.SCHEMA, 0); - } - - public TerminalNode SCHEMA_NAME() { - return getToken(PostgreSQLParser.SCHEMA_NAME, 0); - } - - public TerminalNode SCOPE() { - return getToken(PostgreSQLParser.SCOPE, 0); - } - - public TerminalNode SCOPE_CATALOG() { - return getToken(PostgreSQLParser.SCOPE_CATALOG, 0); - } - - public TerminalNode SCOPE_NAME() { - return getToken(PostgreSQLParser.SCOPE_NAME, 0); - } - - public TerminalNode SCOPE_SCHEMA() { - return getToken(PostgreSQLParser.SCOPE_SCHEMA, 0); - } - - public TerminalNode SCROLL() { - return getToken(PostgreSQLParser.SCROLL, 0); - } - - public TerminalNode SEARCH() { - return getToken(PostgreSQLParser.SEARCH, 0); - } - - public TerminalNode SECOND() { - return getToken(PostgreSQLParser.SECOND, 0); - } - - public TerminalNode SECTION() { - return getToken(PostgreSQLParser.SECTION, 0); - } - - public TerminalNode SECURITY() { - return getToken(PostgreSQLParser.SECURITY, 0); - } - - public TerminalNode SELF() { - return getToken(PostgreSQLParser.SELF, 0); - } - - public TerminalNode SENSITIVE() { - return getToken(PostgreSQLParser.SENSITIVE, 0); - } - - public TerminalNode SEQUENCE() { - return getToken(PostgreSQLParser.SEQUENCE, 0); - } - - public TerminalNode SEQUENCES() { - return getToken(PostgreSQLParser.SEQUENCES, 0); - } - - public TerminalNode SERIALIZABLE() { - return getToken(PostgreSQLParser.SERIALIZABLE, 0); - } - - public TerminalNode SERVER_NAME() { - return getToken(PostgreSQLParser.SERVER_NAME, 0); - } - - public TerminalNode SESSION() { - return getToken(PostgreSQLParser.SESSION, 0); - } - - public TerminalNode SET() { - return getToken(PostgreSQLParser.SET, 0); - } - - public TerminalNode SETOF() { - return getToken(PostgreSQLParser.SETOF, 0); - } - - public TerminalNode SETS() { - return getToken(PostgreSQLParser.SETS, 0); - } - - public TerminalNode SHARE() { - return getToken(PostgreSQLParser.SHARE, 0); - } - - public TerminalNode SHOW() { - return getToken(PostgreSQLParser.SHOW, 0); - } - - public TerminalNode SIMPLE() { - return getToken(PostgreSQLParser.SIMPLE, 0); - } - - public TerminalNode SIZE() { - return getToken(PostgreSQLParser.SIZE, 0); - } - - public TerminalNode SMALLINT() { - return getToken(PostgreSQLParser.SMALLINT, 0); - } - - public TerminalNode SOME() { - return getToken(PostgreSQLParser.SOME, 0); - } - - public TerminalNode SOURCE() { - return getToken(PostgreSQLParser.SOURCE, 0); - } - - public TerminalNode SPACE() { - return getToken(PostgreSQLParser.SPACE, 0); - } - - public TerminalNode SPECIFIC() { - return getToken(PostgreSQLParser.SPECIFIC, 0); - } - - public TerminalNode SPECIFICTYPE() { - return getToken(PostgreSQLParser.SPECIFICTYPE, 0); - } - - public TerminalNode SPECIFIC_NAME() { - return getToken(PostgreSQLParser.SPECIFIC_NAME, 0); - } - - public TerminalNode SQL() { - return getToken(PostgreSQLParser.SQL, 0); - } - - public TerminalNode SQLCODE() { - return getToken(PostgreSQLParser.SQLCODE, 0); - } - - public TerminalNode SQLERROR() { - return getToken(PostgreSQLParser.SQLERROR, 0); - } - - public TerminalNode SQLEXCEPTION() { - return getToken(PostgreSQLParser.SQLEXCEPTION, 0); - } - - public TerminalNode SQLSTATE() { - return getToken(PostgreSQLParser.SQLSTATE, 0); - } - - public TerminalNode SQLWARNING() { - return getToken(PostgreSQLParser.SQLWARNING, 0); - } - - public TerminalNode SQRT() { - return getToken(PostgreSQLParser.SQRT, 0); - } - - public TerminalNode STABLE() { - return getToken(PostgreSQLParser.STABLE, 0); - } - - public TerminalNode START() { - return getToken(PostgreSQLParser.START, 0); - } - - public TerminalNode STATE() { - return getToken(PostgreSQLParser.STATE, 0); - } - - public TerminalNode STATEMENT() { - return getToken(PostgreSQLParser.STATEMENT, 0); - } - - public TerminalNode STATIC() { - return getToken(PostgreSQLParser.STATIC, 0); - } - - public TerminalNode STATISTICS() { - return getToken(PostgreSQLParser.STATISTICS, 0); - } - - public TerminalNode STDDEV_POP() { - return getToken(PostgreSQLParser.STDDEV_POP, 0); - } - - public TerminalNode STDDEV_SAMP() { - return getToken(PostgreSQLParser.STDDEV_SAMP, 0); - } - - public TerminalNode STDIN() { - return getToken(PostgreSQLParser.STDIN, 0); - } - - public TerminalNode STDOUT() { - return getToken(PostgreSQLParser.STDOUT, 0); - } - - public TerminalNode STORAGE() { - return getToken(PostgreSQLParser.STORAGE, 0); - } - - public TerminalNode STRICT() { - return getToken(PostgreSQLParser.STRICT, 0); - } - - public TerminalNode STRUCTURE() { - return getToken(PostgreSQLParser.STRUCTURE, 0); - } - - public TerminalNode STYLE() { - return getToken(PostgreSQLParser.STYLE, 0); - } - - public TerminalNode SUBCLASS_ORIGIN() { - return getToken(PostgreSQLParser.SUBCLASS_ORIGIN, 0); - } - - public TerminalNode SUBMULTISET() { - return getToken(PostgreSQLParser.SUBMULTISET, 0); - } - - public TerminalNode SUBSTRING() { - return getToken(PostgreSQLParser.SUBSTRING, 0); - } - - public TerminalNode SUM() { - return getToken(PostgreSQLParser.SUM, 0); - } - - public TerminalNode SYSID() { - return getToken(PostgreSQLParser.SYSID, 0); - } - - public TerminalNode SYSTEM() { - return getToken(PostgreSQLParser.SYSTEM, 0); - } - - public TerminalNode SYSTEM_USER() { - return getToken(PostgreSQLParser.SYSTEM_USER, 0); - } - - public TerminalNode TABLESPACE() { - return getToken(PostgreSQLParser.TABLESPACE, 0); - } - - public TerminalNode TABLE_NAME() { - return getToken(PostgreSQLParser.TABLE_NAME, 0); - } - - public TerminalNode TEMP() { - return getToken(PostgreSQLParser.TEMP, 0); - } - - public TerminalNode TEMPLATE() { - return getToken(PostgreSQLParser.TEMPLATE, 0); - } - - public TerminalNode TEMPORARY() { - return getToken(PostgreSQLParser.TEMPORARY, 0); - } - - public TerminalNode TEXT() { - return getToken(PostgreSQLParser.TEXT, 0); - } - - public TerminalNode TIES() { - return getToken(PostgreSQLParser.TIES, 0); - } - - public TerminalNode TIME() { - return getToken(PostgreSQLParser.TIME, 0); - } - - public TerminalNode TIMESTAMP() { - return getToken(PostgreSQLParser.TIMESTAMP, 0); - } - - public TerminalNode TIMEZONE_HOUR() { - return getToken(PostgreSQLParser.TIMEZONE_HOUR, 0); - } - - public TerminalNode TIMEZONE_MINUTE() { - return getToken(PostgreSQLParser.TIMEZONE_MINUTE, 0); - } - - public TerminalNode TOP_LEVEL_COUNT() { - return getToken(PostgreSQLParser.TOP_LEVEL_COUNT, 0); - } - - public TerminalNode TRANSACTION() { - return getToken(PostgreSQLParser.TRANSACTION, 0); - } - - public TerminalNode TRANSACTIONS_COMMITTED() { - return getToken(PostgreSQLParser.TRANSACTIONS_COMMITTED, 0); - } - - public TerminalNode TRANSACTIONS_ROLLED_BACK() { - return getToken(PostgreSQLParser.TRANSACTIONS_ROLLED_BACK, 0); - } - - public TerminalNode TRANSACTION_ACTIVE() { - return getToken(PostgreSQLParser.TRANSACTION_ACTIVE, 0); - } - - public TerminalNode TRANSFORM() { - return getToken(PostgreSQLParser.TRANSFORM, 0); - } - - public TerminalNode TRANSFORMS() { - return getToken(PostgreSQLParser.TRANSFORMS, 0); - } - - public TerminalNode TRANSLATE() { - return getToken(PostgreSQLParser.TRANSLATE, 0); - } - - public TerminalNode TRANSLATION() { - return getToken(PostgreSQLParser.TRANSLATION, 0); - } - - public TerminalNode TREAT() { - return getToken(PostgreSQLParser.TREAT, 0); - } - - public TerminalNode TRIGGER() { - return getToken(PostgreSQLParser.TRIGGER, 0); - } - - public TerminalNode TRIGGER_CATALOG() { - return getToken(PostgreSQLParser.TRIGGER_CATALOG, 0); - } - - public TerminalNode TRIGGER_NAME() { - return getToken(PostgreSQLParser.TRIGGER_NAME, 0); - } - - public TerminalNode TRIGGER_SCHEMA() { - return getToken(PostgreSQLParser.TRIGGER_SCHEMA, 0); - } - - public TerminalNode TRIM() { - return getToken(PostgreSQLParser.TRIM, 0); - } - - public TerminalNode TRUE() { - return getToken(PostgreSQLParser.TRUE, 0); - } - - public TerminalNode TRUNCATE() { - return getToken(PostgreSQLParser.TRUNCATE, 0); - } - - public TerminalNode TRUSTED() { - return getToken(PostgreSQLParser.TRUSTED, 0); - } - - public TerminalNode TYPE() { - return getToken(PostgreSQLParser.TYPE, 0); - } - - public TerminalNode UESCAPE() { - return getToken(PostgreSQLParser.UESCAPE, 0); - } - - public TerminalNode UNBOUNDED() { - return getToken(PostgreSQLParser.UNBOUNDED, 0); - } - - public TerminalNode UNCOMMITTED() { - return getToken(PostgreSQLParser.UNCOMMITTED, 0); - } - - public TerminalNode UNDER() { - return getToken(PostgreSQLParser.UNDER, 0); - } - - public TerminalNode UNENCRYPTED() { - return getToken(PostgreSQLParser.UNENCRYPTED, 0); - } - - public TerminalNode UNKNOWN() { - return getToken(PostgreSQLParser.UNKNOWN, 0); - } - - public TerminalNode UNLISTEN() { - return getToken(PostgreSQLParser.UNLISTEN, 0); - } - - public TerminalNode UNNAMED() { - return getToken(PostgreSQLParser.UNNAMED, 0); - } - - public TerminalNode UNNEST() { - return getToken(PostgreSQLParser.UNNEST, 0); - } - - public TerminalNode UNTIL() { - return getToken(PostgreSQLParser.UNTIL, 0); - } - - public TerminalNode UPDATE() { - return getToken(PostgreSQLParser.UPDATE, 0); - } - - public TerminalNode UPPER() { - return getToken(PostgreSQLParser.UPPER, 0); - } - - public TerminalNode USAGE() { - return getToken(PostgreSQLParser.USAGE, 0); - } - - public TerminalNode USER_DEFINED_TYPE_CATALOG() { - return getToken(PostgreSQLParser.USER_DEFINED_TYPE_CATALOG, 0); - } - - public TerminalNode USER_DEFINED_TYPE_CODE() { - return getToken(PostgreSQLParser.USER_DEFINED_TYPE_CODE, 0); - } - - public TerminalNode USER_DEFINED_TYPE_NAME() { - return getToken(PostgreSQLParser.USER_DEFINED_TYPE_NAME, 0); - } - - public TerminalNode USER_DEFINED_TYPE_SCHEMA() { - return getToken(PostgreSQLParser.USER_DEFINED_TYPE_SCHEMA, 0); - } - - public TerminalNode VACUUM() { - return getToken(PostgreSQLParser.VACUUM, 0); - } - - public TerminalNode VALID() { - return getToken(PostgreSQLParser.VALID, 0); - } - - public TerminalNode VALIDATOR() { - return getToken(PostgreSQLParser.VALIDATOR, 0); - } - - public TerminalNode VALUE() { - return getToken(PostgreSQLParser.VALUE, 0); - } - - public TerminalNode VALUES() { - return getToken(PostgreSQLParser.VALUES, 0); - } - - public TerminalNode VARCHAR() { - return getToken(PostgreSQLParser.VARCHAR, 0); - } - - public TerminalNode VARYING() { - return getToken(PostgreSQLParser.VARYING, 0); - } - - public TerminalNode VAR_POP() { - return getToken(PostgreSQLParser.VAR_POP, 0); - } - - public TerminalNode VAR_SAMP() { - return getToken(PostgreSQLParser.VAR_SAMP, 0); - } - - public TerminalNode VIEW() { - return getToken(PostgreSQLParser.VIEW, 0); - } - - public TerminalNode VOLATILE() { - return getToken(PostgreSQLParser.VOLATILE, 0); - } - - public TerminalNode WHENEVER() { - return getToken(PostgreSQLParser.WHENEVER, 0); - } - - public TerminalNode WHITESPACE() { - return getToken(PostgreSQLParser.WHITESPACE, 0); - } - - public TerminalNode WIDTH_BUCKET() { - return getToken(PostgreSQLParser.WIDTH_BUCKET, 0); - } - - public TerminalNode WITHIN() { - return getToken(PostgreSQLParser.WITHIN, 0); - } - - public TerminalNode WITHOUT() { - return getToken(PostgreSQLParser.WITHOUT, 0); - } - - public TerminalNode WORK() { - return getToken(PostgreSQLParser.WORK, 0); - } - - public TerminalNode WRITE() { - return getToken(PostgreSQLParser.WRITE, 0); - } - - public TerminalNode YEAR() { - return getToken(PostgreSQLParser.YEAR, 0); - } - - public TerminalNode ZONE() { - return getToken(PostgreSQLParser.ZONE, 0); - } - - public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_non_reserved_keyword; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterNon_reserved_keyword(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitNon_reserved_keyword(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitNon_reserved_keyword(this); - else return visitor.visitChildren(this); - } - } - - public final Non_reserved_keywordContext non_reserved_keyword() throws RecognitionException { - Non_reserved_keywordContext _localctx = new Non_reserved_keywordContext(_ctx, getState()); - enterRule(_localctx, 510, RULE_non_reserved_keyword); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(5598); - _la = _input.LA(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || _la == TEXT)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class IdentifierContext extends ParserRuleContext { - public Non_reserved_keywordContext non_reserved_keyword() { - return getRuleContext(Non_reserved_keywordContext.class, 0); - } - - public TerminalNode DOUBLEQ_STRING_LITERAL() { - return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); - } - - public TerminalNode IDENTIFIER() { - return getToken(PostgreSQLParser.IDENTIFIER, 0); - } - - public Type_nameContext type_name() { - return getRuleContext(Type_nameContext.class, 0); - } - - public TerminalNode IDENTIFIER_UNICODE() { - return getToken(PostgreSQLParser.IDENTIFIER_UNICODE, 0); - } - - public List identifier() { - return getRuleContexts(IdentifierContext.class); - } - - public IdentifierContext identifier(int i) { - return getRuleContext(IdentifierContext.class, i); - } - - public TerminalNode DOT() { - return getToken(PostgreSQLParser.DOT, 0); - } - - public IdentifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_identifier; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterIdentifier(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitIdentifier(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitIdentifier(this); - else return visitor.visitChildren(this); - } - } - - public final IdentifierContext identifier() throws RecognitionException { - return identifier(0); - } - - private IdentifierContext identifier(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - IdentifierContext _localctx = new IdentifierContext(_ctx, _parentState); - IdentifierContext _prevctx = _localctx; - int _startState = 512; - enterRecursionRule(_localctx, 512, RULE_identifier, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(5606); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 689, _ctx)) { - case 1: { - setState(5601); - non_reserved_keyword(); - } - break; - case 2: { - setState(5602); - match(DOUBLEQ_STRING_LITERAL); - } - break; - case 3: { - setState(5603); - match(IDENTIFIER); - } - break; - case 4: { - setState(5604); - type_name(); - } - break; - case 5: { - setState(5605); - match(IDENTIFIER_UNICODE); - } - break; - } - _ctx.stop = _input.LT(-1); - setState(5613); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 690, _ctx); - while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) { - if (_alt == 1) { - if (_parseListeners != null) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new IdentifierContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_identifier); - setState(5608); - if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(5609); - match(DOT); - setState(5610); - identifier(4); - } - } - } - setState(5615); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input, 690, _ctx); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class Todo_fill_inContext extends ParserRuleContext { - public Todo_fill_inContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_todo_fill_in; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTodo_fill_in(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTodo_fill_in(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTodo_fill_in(this); - else return visitor.visitChildren(this); - } - } - - public final Todo_fill_inContext todo_fill_in() throws RecognitionException { - Todo_fill_inContext _localctx = new Todo_fill_inContext(_ctx, getState()); - enterRule(_localctx, 514, RULE_todo_fill_in); - try { - enterOuterAlt(_localctx, 1); - { - setState(5616); - matchWildcard(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Todo_implementContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Todo_implementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_todo_implement; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterTodo_implement(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitTodo_implement(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitTodo_implement(this); - else return visitor.visitChildren(this); - } - } - - public final Todo_implementContext todo_implement() throws RecognitionException { - Todo_implementContext _localctx = new Todo_implementContext(_ctx, getState()); - enterRule(_localctx, 516, RULE_todo_implement); - try { - enterOuterAlt(_localctx, 1); - { - setState(5618); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Correlation_nameContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Correlation_nameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_correlation_name; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterCorrelation_name(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitCorrelation_name(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitCorrelation_name(this); - else return visitor.visitChildren(this); - } - } - - public final Correlation_nameContext correlation_name() throws RecognitionException { - Correlation_nameContext _localctx = new Correlation_nameContext(_ctx, getState()); - enterRule(_localctx, 518, RULE_correlation_name); - try { - enterOuterAlt(_localctx, 1); - { - setState(5620); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Column_nameContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Column_nameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_column_name; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterColumn_name(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitColumn_name(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitColumn_name(this); - else return visitor.visitChildren(this); - } - } - - public final Column_nameContext column_name() throws RecognitionException { - Column_nameContext _localctx = new Column_nameContext(_ctx, getState()); - enterRule(_localctx, 520, RULE_column_name); - try { - enterOuterAlt(_localctx, 1); - { - setState(5622); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class AliasContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public AliasContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_alias; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).enterAlias(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) ((PostgreSQLParserListener) listener).exitAlias(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitAlias(this); - else return visitor.visitChildren(this); - } - } - - public final AliasContext alias() throws RecognitionException { - AliasContext _localctx = new AliasContext(_ctx, getState()); - enterRule(_localctx, 522, RULE_alias); - try { - enterOuterAlt(_localctx, 1); - { - setState(5624); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Column_aliasContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Column_aliasContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_column_alias; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterColumn_alias(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitColumn_alias(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitColumn_alias(this); - else return visitor.visitChildren(this); - } - } - - public final Column_aliasContext column_alias() throws RecognitionException { - Column_aliasContext _localctx = new Column_aliasContext(_ctx, getState()); - enterRule(_localctx, 524, RULE_column_alias); - try { - enterOuterAlt(_localctx, 1); - { - setState(5626); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Column_definitionContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Column_definitionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_column_definition; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterColumn_definition(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitColumn_definition(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitColumn_definition(this); - else return visitor.visitChildren(this); - } - } - - public final Column_definitionContext column_definition() throws RecognitionException { - Column_definitionContext _localctx = new Column_definitionContext(_ctx, getState()); - enterRule(_localctx, 526, RULE_column_definition); - try { - enterOuterAlt(_localctx, 1); - { - setState(5628); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Window_nameContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class, 0); - } - - public Window_nameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_window_name; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).enterWindow_name(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof PostgreSQLParserListener) - ((PostgreSQLParserListener) listener).exitWindow_name(this); - } - - @Override - public T accept(ParseTreeVisitor visitor) { - if (visitor instanceof PostgreSQLParserVisitor) - return ((PostgreSQLParserVisitor) visitor).visitWindow_name(this); - else return visitor.visitChildren(this); - } - } - - public final Window_nameContext window_name() throws RecognitionException { - Window_nameContext _localctx = new Window_nameContext(_ctx, getState()); - enterRule(_localctx, 528, RULE_window_name); - try { - enterOuterAlt(_localctx, 1); - { - setState(5630); - identifier(0); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 216: - return expr_sempred((ExprContext) _localctx, predIndex); - case 217: - return bool_expr_sempred((Bool_exprContext) _localctx, predIndex); - case 241: - return from_item_sempred((From_itemContext) _localctx, predIndex); - case 245: - return predicate_sempred((PredicateContext) _localctx, predIndex); - case 256: - return identifier_sempred((IdentifierContext) _localctx, predIndex); - } - return true; - } - - private boolean expr_sempred(ExprContext _localctx, int predIndex) { - switch (predIndex) { - case 0: - return precpred(_ctx, 27); - case 1: - return precpred(_ctx, 26); - case 2: - return precpred(_ctx, 25); - case 3: - return precpred(_ctx, 24); - case 4: - return precpred(_ctx, 23); - case 5: - return precpred(_ctx, 22); - case 6: - return precpred(_ctx, 21); - case 7: - return precpred(_ctx, 20); - case 8: - return precpred(_ctx, 18); - case 9: - return precpred(_ctx, 33); - case 10: - return precpred(_ctx, 28); - case 11: - return precpred(_ctx, 19); - case 12: - return precpred(_ctx, 11); - case 13: - return precpred(_ctx, 10); - case 14: - return precpred(_ctx, 8); - case 15: - return precpred(_ctx, 7); - case 16: - return precpred(_ctx, 4); - } - return true; - } - - private boolean bool_expr_sempred(Bool_exprContext _localctx, int predIndex) { - switch (predIndex) { - case 17: - return precpred(_ctx, 2); - case 18: - return precpred(_ctx, 1); - } - return true; - } - - private boolean from_item_sempred(From_itemContext _localctx, int predIndex) { - switch (predIndex) { - case 19: - return precpred(_ctx, 1); - } - return true; - } - - private boolean predicate_sempred(PredicateContext _localctx, int predIndex) { - switch (predIndex) { - case 20: - return precpred(_ctx, 3); - case 21: - return precpred(_ctx, 2); - } - return true; - } - - private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { - switch (predIndex) { - case 22: - return precpred(_ctx, 3); - } - return true; - } - - private static final int _serializedATNSegments = 3; - private static final String _serializedATNSegment0 = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u0345\u1603\4\2\t" + - "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13" + - "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22" + - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31" + - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!" + - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4" + - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t" + - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t=" + - "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I" + - "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT" + - "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4" + - "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t" + - "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4" + - "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080" + - "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085" + - "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089" + - "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e" + - "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092" + - "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097" + - "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b" + - "\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0" + - "\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4\t\u00a4" + - "\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8\4\u00a9" + - "\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad" + - "\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1\4\u00b2" + - "\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6\t\u00b6" + - "\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb" + - "\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf" + - "\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3\4\u00c4" + - "\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8\t\u00c8" + - "\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd" + - "\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1\t\u00d1" + - "\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5\4\u00d6" + - "\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da" + - "\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df" + - "\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3\t\u00e3" + - "\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7\4\u00e8" + - "\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec" + - "\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0\4\u00f1" + - "\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5\t\u00f5" + - "\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9\4\u00fa" + - "\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe\t\u00fe" + - "\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102\4\u0103" + - "\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107\t\u0107" + - "\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\3\2\3\2\3\2\6\2\u0218" + - "\n\2\r\2\16\2\u0219\3\2\3\2\5\2\u021e\n\2\3\2\3\2\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\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\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\3\3\3\3\3\3\3\3\3\3\3\5\3\u0256\n\3\3\4\3\4" + - "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3" + - "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5" + - "\3\5\3\5\3\5\3\5\3\5\5\5\u0282\n\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6" + - "\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3" + - "\6\3\6\3\6\3\6\5\6\u02a2\n\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3" + - "\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\5\7" + - "\u02bf\n\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b" + - "\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u02d6\n\b\3\t\3\t\3\n\3\n\3\13\3\13\3\13" + - "\3\13\3\13\3\13\3\13\3\13\5\13\u02e4\n\13\3\13\3\13\3\13\3\13\3\13\3\13" + - "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u02f4\n\13\3\13\3\13\3\13" + - "\3\13\3\13\3\13\3\13\5\13\u02fd\n\13\3\13\3\13\5\13\u0301\n\13\3\13\3" + - "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3" + - "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3" + - "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u0328\n\13\3\f\3\f\3\f\3\f" + - "\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u0336\n\f\3\f\3\f\3\f\3\f\3\f\3\f" + - "\3\f\3\f\3\f\5\f\u0341\n\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u034b\n" + - "\f\3\r\3\r\3\r\3\r\3\r\3\r\5\r\u0353\n\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\5" + - "\r\u035c\n\r\3\16\3\16\3\17\3\17\5\17\u0362\n\17\3\17\3\17\3\17\3\17\5" + - "\17\u0368\n\17\3\17\5\17\u036b\n\17\3\17\3\17\5\17\u036f\n\17\3\17\3\17" + - "\5\17\u0373\n\17\3\17\3\17\5\17\u0377\n\17\3\17\3\17\5\17\u037b\n\17\3" + - "\17\3\17\3\17\5\17\u0380\n\17\3\17\3\17\3\17\3\17\5\17\u0386\n\17\3\17" + - "\3\17\5\17\u038a\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u0393\n" + - "\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u039b\n\17\3\17\3\17\3\17\3\17" + - "\3\17\3\17\3\17\5\17\u03a4\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17" + - "\u03ad\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u03b7\n\17\3" + - "\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u03c1\n\17\3\17\3\17\3\17" + - "\3\17\3\17\3\17\3\17\5\17\u03ca\n\17\3\17\3\17\3\17\5\17\u03cf\n\17\3" + - "\17\3\17\3\17\3\17\5\17\u03d5\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17" + - "\5\17\u03de\n\17\3\17\3\17\5\17\u03e2\n\17\3\17\3\17\3\17\3\17\3\17\5" + - "\17\u03e9\n\17\3\17\3\17\3\17\3\17\3\17\5\17\u03f0\n\17\3\17\3\17\3\17" + - "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17" + - "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u040a\n\17\5\17\u040c\n\17\3" + - "\20\3\20\3\20\7\20\u0411\n\20\f\20\16\20\u0414\13\20\3\21\3\21\3\21\3" + - "\21\3\21\5\21\u041b\n\21\3\21\5\21\u041e\n\21\3\21\3\21\5\21\u0422\n\21" + - "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\5\21\u042b\n\21\3\21\5\21\u042e\n" + - "\21\3\21\3\21\5\21\u0432\n\21\3\21\3\21\5\21\u0436\n\21\3\21\3\21\3\21" + - "\3\21\3\21\3\21\3\21\3\21\3\21\5\21\u0441\n\21\3\21\3\21\3\21\3\21\3\21" + - "\3\21\3\21\3\21\3\21\3\21\5\21\u044d\n\21\3\21\3\21\3\21\3\21\3\21\5\21" + - "\u0454\n\21\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23" + - "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\5\23\u046d\n\23" + - "\3\24\3\24\3\24\3\24\5\24\u0473\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24" + - "\3\24\3\24\5\24\u047e\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24" + - "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u0491\n\24\3\24\3\24\3\24" + - "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u049d\n\24\3\24\3\24\3\24\3\24" + - "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u04ad\n\24\3\24" + - "\3\24\3\24\3\24\5\24\u04b3\n\24\5\24\u04b5\n\24\3\25\3\25\5\25\u04b9\n" + - "\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u04c3\n\25\3\25\3\25" + - "\3\25\3\25\3\25\3\25\3\25\5\25\u04cc\n\25\5\25\u04ce\n\25\3\26\3\26\3" + - "\26\3\26\3\26\3\26\3\26\3\26\3\26\5\26\u04d9\n\26\3\27\3\27\3\30\3\30" + - "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31" + - "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u04f4\n\31\3\31\3\31\3\31\3\31" + - "\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0500\n\31\3\32\3\32\3\33\3\33\3\33" + - "\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\5\33" + - "\u0514\n\33\3\33\3\33\5\33\u0518\n\33\3\33\3\33\3\33\5\33\u051d\n\33\5" + - "\33\u051f\n\33\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0527\n\34\3\34\3\34" + - "\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0531\n\34\3\34\3\34\3\34\3\34\3\34" + - "\3\34\3\34\3\34\5\34\u053b\n\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34" + - "\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34" + - "\3\34\3\34\5\34\u0555\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35" + - "\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u0569\n\35\3\35\3\35" + - "\3\35\3\35\3\35\5\35\u0570\n\35\3\36\3\36\3\36\3\36\5\36\u0576\n\36\3" + - "\36\6\36\u0579\n\36\r\36\16\36\u057a\3\36\3\36\3\36\3\36\3\36\3\36\3\36" + - "\3\36\3\36\3\36\3\36\5\36\u0588\n\36\3\36\3\36\3\36\5\36\u058d\n\36\3" + - "\36\3\36\3\36\3\36\3\36\5\36\u0594\n\36\3\36\3\36\3\36\3\36\5\36\u059a" + - "\n\36\3\36\3\36\3\36\5\36\u059f\n\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36" + - "\3\36\3\36\5\36\u05aa\n\36\3\36\3\36\3\36\5\36\u05af\n\36\3\36\3\36\3" + - "\36\3\36\3\36\3\36\5\36\u05b7\n\36\3\36\3\36\3\36\5\36\u05bc\n\36\3\36" + - "\3\36\5\36\u05c0\n\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 " + - "\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u05da\n \5 \u05dc\n \3!" + - "\3!\3!\3!\5!\u05e2\n!\3!\3!\3\"\5\"\u05e7\n\"\3\"\3\"\5\"\u05eb\n\"\3" + - "\"\3\"\5\"\u05ef\n\"\3\"\3\"\5\"\u05f3\n\"\7\"\u05f5\n\"\f\"\16\"\u05f8" + - "\13\"\3#\3#\3#\3#\3#\3#\3#\5#\u0601\n#\3#\3#\3#\3#\3#\5#\u0608\n#\3#\3" + - "#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\5#\u0618\n#\3$\3$\3$\3$\3$\3$\3" + - "$\3$\5$\u0622\n$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0632\n" + - "$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0645\n%\3%\3" + - "%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0651\n%\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%\3%\5%\u0673" + - "\n%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\5&\u0683\n&\3\'\3\'\3(\3" + - "(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\5(\u0696\n(\3(\3(\3(\3(\3(\3" + - "(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\5(\u06a8\n(\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)\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)\5)\u06e5\n)\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)\5)\u0705\n)\3*\3*\3+\3" + - "+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\5,\u071d\n,\3" + - "-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\5-\u0732\n-\3" + - ".\3.\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60" + - "\3\61\3\61\3\62\3\62\5\62\u0748\n\62\3\62\3\62\3\62\3\62\3\62\5\62\u074f" + - "\n\62\3\63\3\63\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3" + - "9\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\3" + - "9\39\39\39\39\39\39\39\39\39\39\39\39\39\59\u0784\n9\3:\3:\3:\3:\3:\3" + - ":\3:\3:\3:\3;\3;\3;\3;\3;\5;\u0794\n;\3;\5;\u0797\n;\3;\3;\3;\3;\3;\3" + - ";\3;\3;\3;\3;\3;\3;\3;\3;\5;\u07a7\n;\3;\3;\3;\3;\5;\u07ad\n;\3;\3;\5" + - ";\u07b1\n;\3;\3;\3;\3;\5;\u07b7\n;\3;\3;\3;\3;\5;\u07bd\n;\3;\3;\3;\3" + - ";\5;\u07c3\n;\3;\3;\3;\3;\5;\u07c9\n;\3;\3;\3;\3;\5;\u07cf\n;\3;\3;\3" + - ";\3;\5;\u07d5\n;\3;\3;\3;\3;\5;\u07db\n;\3;\3;\3;\3;\5;\u07e1\n;\3;\3" + - ";\3;\3;\5;\u07e7\n;\3;\3;\5;\u07eb\n;\3;\3;\3;\3;\5;\u07f1\n;\3;\3;\3" + - ";\3;\5;\u07f7\n;\3;\3;\3;\3;\5;\u07fd\n;\3;\3;\3;\3;\3;\3;\3;\5;\u0806" + - "\n;\3;\5;\u0809\n;\3;\5;\u080c\n;\3;\3;\3;\5;\u0811\n;\3;\5;\u0814\n;" + - "\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\5;\u0824\n;\3;\3;\3;\3;\5;" + - "\u082a\n;\3;\3;\5;\u082e\n;\3;\3;\3;\3;\5;\u0834\n;\3;\3;\3;\3;\5;\u083a" + - "\n;\3;\3;\5;\u083e\n;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;" + - "\3;\3;\3;\3;\3;\5;\u0855\n;\3;\3;\3;\3;\5;\u085b\n;\3;\3;\5;\u085f\n;" + - "\3;\3;\3;\3;\5;\u0865\n;\3;\3;\3;\3;\5;\u086b\n;\3;\3;\3;\3;\5;\u0871" + - "\n;\3;\3;\3;\3;\5;\u0877\n;\3;\3;\3;\3;\5;\u087d\n;\3;\3;\3;\3;\5;\u0883" + - "\n;\3;\3;\3;\3;\5;\u0889\n;\3;\3;\3;\3;\5;\u088f\n;\3;\3;\3;\3;\5;\u0895" + - "\n;\3;\3;\5;\u0899\n;\3;\3;\3;\3;\5;\u089f\n;\3;\3;\3;\3;\5;\u08a5\n;" + - "\3;\3;\5;\u08a9\n;\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\5<\u08b9" + - "\n<\3<\3<\3<\3<\5<\u08bf\n<\3<\3<\3<\3<\5<\u08c5\n<\3=\3=\3=\3=\3=\3=" + - "\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\5=\u08d9\n=\3>\3>\3>\7>\u08de\n>" + - "\f>\16>\u08e1\13>\3?\3?\3?\3?\3?\5?\u08e8\n?\3?\3?\3?\3?\3?\3?\3?\3?\3" + - "?\3?\5?\u08f4\n?\3?\3?\3?\3?\5?\u08fa\n?\3@\3@\5@\u08fe\n@\3@\3@\3@\3" + - "@\3@\3@\3@\3@\3@\3A\3A\3A\3A\5A\u090d\nA\3A\3A\3A\5A\u0912\nA\3A\3A\3" + - "A\5A\u0917\nA\3A\3A\3A\5A\u091c\nA\3A\3A\3A\5A\u0921\nA\3A\3A\3A\5A\u0926" + - "\nA\3A\3A\3A\5A\u092b\nA\3A\3A\3A\5A\u0930\nA\3A\3A\3A\3A\5A\u0936\nA" + - "\3A\3A\3A\5A\u093b\nA\3B\3B\5B\u093f\nB\3B\3B\3B\3B\3B\3B\3B\3B\5B\u0949" + - "\nB\3C\3C\3C\3C\5C\u094f\nC\3C\3C\3C\3C\3C\3C\7C\u0957\nC\fC\16C\u095a" + - "\13C\3D\3D\3D\3D\3D\3D\7D\u0962\nD\fD\16D\u0965\13D\3D\3D\3D\7D\u096a" + - "\nD\fD\16D\u096d\13D\3E\3E\3E\3E\3E\3E\3E\3E\5E\u0977\nE\3E\3E\3E\3E\3" + - "E\3E\3F\3F\3F\3F\7F\u0983\nF\fF\16F\u0986\13F\3G\3G\3G\3G\3G\3G\3G\3G" + - "\3G\7G\u0991\nG\fG\16G\u0994\13G\3G\3G\3G\3G\5G\u099a\nG\3G\3G\3G\3G\3" + - "G\5G\u09a1\nG\3H\3H\3H\3H\3H\3H\5H\u09a9\nH\3H\3H\3H\3H\3H\3H\3H\3H\3" + - "H\5H\u09b4\nH\3H\3H\5H\u09b8\nH\3H\3H\3H\5H\u09bd\nH\3H\3H\3H\3H\3H\3" + - "H\3H\5H\u09c6\nH\3I\3I\3I\5I\u09cb\nI\3I\3I\3I\3J\3J\3J\3J\5J\u09d4\n" + - "J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\5J\u09e3\nJ\3J\3J\3J\3J\3J\3" + - "J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\6J\u09f8\nJ\rJ\16J\u09f9\5J\u09fc" + - "\nJ\3K\3K\5K\u0a00\nK\3K\3K\5K\u0a04\nK\3K\3K\3K\5K\u0a09\nK\3K\5K\u0a0c" + - "\nK\3K\3K\3K\3K\5K\u0a12\nK\3K\3K\5K\u0a16\nK\3K\3K\5K\u0a1a\nK\3L\3L" + - "\3L\5L\u0a1f\nL\3L\5L\u0a22\nL\3L\3L\3L\3L\3L\5L\u0a29\nL\3L\5L\u0a2c" + - "\nL\3L\5L\u0a2f\nL\3L\3L\3L\3L\3L\3L\5L\u0a37\nL\3L\3L\5L\u0a3b\nL\5L" + - "\u0a3d\nL\3M\3M\3M\3M\3M\3M\5M\u0a45\nM\3M\3M\3M\3M\3M\5M\u0a4c\nM\3M" + - "\5M\u0a4f\nM\3M\3M\5M\u0a53\nM\3M\3M\3M\3M\5M\u0a59\nM\3M\5M\u0a5c\nM" + - "\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\5N\u0a69\nN\3N\3N\3N\3N\5N\u0a6f\nN" + - "\3N\3N\3N\3N\5N\u0a75\nN\3N\3N\3N\3N\5N\u0a7b\nN\3N\3N\3N\3N\5N\u0a81" + - "\nN\3N\3N\3N\3N\5N\u0a87\nN\3N\3N\5N\u0a8b\nN\3N\3N\5N\u0a8f\nN\3N\3N" + - "\3O\3O\3O\3O\3O\3O\3O\3O\3O\5O\u0a9c\nO\3O\3O\3O\3O\3O\3O\5O\u0aa4\nO" + - "\3O\3O\5O\u0aa8\nO\3O\3O\3O\3O\3O\3O\3O\5O\u0ab1\nO\3P\3P\3P\3P\3P\5P" + - "\u0ab8\nP\3P\3P\3P\3P\3P\3P\3P\5P\u0ac1\nP\3P\3P\3P\3P\7P\u0ac7\nP\fP" + - "\16P\u0aca\13P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\5R\u0ada\nR\3" + - "R\3R\5R\u0ade\nR\3R\3R\3R\3R\3R\5R\u0ae5\nR\3R\3R\3R\3R\3R\3R\5R\u0aed" + - "\nR\3S\3S\3S\3S\5S\u0af3\nS\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S" + - "\3S\3S\3S\3S\5S\u0b07\nS\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S" + - "\3S\3S\3S\3S\6S\u0b1c\nS\rS\16S\u0b1d\5S\u0b20\nS\3T\3T\3U\3U\3U\5U\u0b27" + - "\nU\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0b32\nU\3U\3U\5U\u0b36\nU\3U\3U\5U" + - "\u0b3a\nU\3V\3V\3V\3V\3V\5V\u0b41\nV\3V\5V\u0b44\nV\3V\3V\3V\3V\3V\5V" + - "\u0b4b\nV\3V\3V\3V\3V\3V\3V\3V\3V\5V\u0b55\nV\3V\3V\3V\3V\3V\3V\3V\5V" + - "\u0b5e\nV\3W\3W\5W\u0b62\nW\3W\3W\3W\3W\5W\u0b68\nW\3W\3W\3W\5W\u0b6d" + - "\nW\3W\5W\u0b70\nW\3W\3W\3W\3W\5W\u0b76\nW\3W\3W\3W\3W\5W\u0b7c\nW\3W" + - "\3W\5W\u0b80\nW\3W\5W\u0b83\nW\3W\3W\5W\u0b87\nW\3W\5W\u0b8a\nW\3W\5W" + - "\u0b8d\nW\3W\3W\3W\3W\3W\3W\3W\5W\u0b96\nW\5W\u0b98\nW\3X\3X\3Y\3Y\3Z" + - "\3Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3_\3_\3`\3`\3a\3a\3b\3b\3c\3c\3d\3d\3e\3" + - "e\3f\3f\3g\3g\3g\5g\u0bbb\ng\3g\5g\u0bbe\ng\3g\5g\u0bc1\ng\3g\3g\3g\3" + - "g\3g\3g\5g\u0bc9\ng\3g\3g\3g\3g\3g\5g\u0bd0\ng\3g\3g\3g\5g\u0bd5\ng\3" + - "g\3g\5g\u0bd9\ng\3g\3g\5g\u0bdd\ng\3h\3h\3i\3i\3j\5j\u0be4\nj\3j\3j\3" + - "j\5j\u0be9\nj\3j\3j\5j\u0bed\nj\3j\5j\u0bf0\nj\3j\5j\u0bf3\nj\3j\3j\5" + - "j\u0bf7\nj\3j\3j\3j\3j\3j\5j\u0bfe\nj\3j\5j\u0c01\nj\3k\3k\3k\3l\3l\3" + - "l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3" + - "l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\5l\u0c2f\nl\3m\3m\3m\3" + - "m\3m\5m\u0c36\nm\3m\3m\5m\u0c3a\nm\3n\3n\3n\3n\5n\u0c40\nn\3n\3n\3n\3" + - "n\3n\3o\3o\3o\3o\5o\u0c4b\no\3o\3o\3o\3o\3o\3o\5o\u0c53\no\3p\3p\3p\3" + - "p\5p\u0c59\np\3p\3p\5p\u0c5d\np\3q\3q\3q\3q\5q\u0c63\nq\3q\3q\5q\u0c67" + - "\nq\3r\3r\3r\3r\5r\u0c6d\nr\3r\3r\3s\3s\3s\3s\5s\u0c75\ns\3s\3s\5s\u0c79" + - "\ns\3t\3t\3t\3t\3t\5t\u0c80\nt\3t\3t\5t\u0c84\nt\3u\3u\3u\3u\5u\u0c8a" + - "\nu\3u\3u\5u\u0c8e\nu\3v\3v\3v\3v\3v\3v\5v\u0c96\nv\3v\3v\5v\u0c9a\nv" + - "\3w\3w\3w\3w\3w\5w\u0ca1\nw\3w\3w\5w\u0ca5\nw\3x\3x\3x\3x\5x\u0cab\nx" + - "\3x\3x\5x\u0caf\nx\3y\3y\3y\3y\5y\u0cb5\ny\3y\3y\3z\3z\3z\5z\u0cbc\nz" + - "\3z\3z\5z\u0cc0\nz\3z\3z\5z\u0cc4\nz\3{\3{\5{\u0cc8\n{\3{\3{\3{\5{\u0ccd" + - "\n{\3{\3{\5{\u0cd1\n{\3|\3|\3|\3|\3|\5|\u0cd8\n|\3|\3|\5|\u0cdc\n|\3}" + - "\3}\3~\3~\3~\3~\3~\5~\u0ce5\n~\3~\3~\3~\3~\5~\u0ceb\n~\3\177\3\177\3\177" + - "\3\177\3\177\5\177\u0cf2\n\177\3\177\3\177\3\177\3\177\5\177\u0cf8\n\177" + - "\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\5\u0080\u0cff\n\u0080\3\u0081" + - "\3\u0081\3\u0081\3\u0081\5\u0081\u0d05\n\u0081\3\u0081\3\u0081\3\u0081" + - "\3\u0081\5\u0081\u0d0b\n\u0081\3\u0082\3\u0082\3\u0082\3\u0082\5\u0082" + - "\u0d11\n\u0082\3\u0082\3\u0082\5\u0082\u0d15\n\u0082\3\u0083\3\u0083\3" + - "\u0083\3\u0083\5\u0083\u0d1b\n\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3" + - "\u0084\3\u0084\5\u0084\u0d23\n\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5" + - "\u0084\u0d29\n\u0084\3\u0085\3\u0085\3\u0085\3\u0085\5\u0085\u0d2f\n\u0085" + - "\3\u0085\3\u0085\5\u0085\u0d33\n\u0085\3\u0086\3\u0086\3\u0086\3\u0086" + - "\5\u0086\u0d39\n\u0086\3\u0086\3\u0086\5\u0086\u0d3d\n\u0086\3\u0087\3" + - "\u0087\3\u0087\3\u0087\5\u0087\u0d43\n\u0087\3\u0087\3\u0087\5\u0087\u0d47" + - "\n\u0087\3\u0088\3\u0088\3\u0088\3\u0088\5\u0088\u0d4d\n\u0088\3\u0088" + - "\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\5\u0089\u0d55\n\u0089\3\u0089" + - "\3\u0089\5\u0089\u0d59\n\u0089\3\u008a\3\u008a\3\u008a\3\u008a\5\u008a" + - "\u0d5f\n\u008a\3\u008a\3\u008a\5\u008a\u0d63\n\u008a\3\u008b\3\u008b\3" + - "\u008b\3\u008b\5\u008b\u0d69\n\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3" + - "\u008c\3\u008c\3\u008c\3\u008c\5\u008c\u0d73\n\u008c\3\u008c\3\u008c\5" + - "\u008c\u0d77\n\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\5" + - "\u008d\u0d7f\n\u008d\3\u008d\3\u008d\5\u008d\u0d83\n\u008d\3\u008e\3\u008e" + - "\3\u008e\3\u008e\3\u008e\3\u008e\5\u008e\u0d8b\n\u008e\3\u008e\3\u008e" + - "\5\u008e\u0d8f\n\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f" + - "\5\u008f\u0d97\n\u008f\3\u008f\3\u008f\5\u008f\u0d9b\n\u008f\3\u0090\3" + - "\u0090\3\u0090\3\u0090\5\u0090\u0da1\n\u0090\3\u0090\3\u0090\3\u0090\3" + - "\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u0dad\n" + - "\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u0db3\n\u0091\3\u0092\3" + - "\u0092\3\u0092\3\u0092\5\u0092\u0db9\n\u0092\3\u0092\3\u0092\5\u0092\u0dbd" + - "\n\u0092\3\u0093\3\u0093\3\u0093\3\u0093\5\u0093\u0dc3\n\u0093\3\u0093" + - "\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\5\u0094\u0dcc\n\u0094" + - "\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\5\u0094\u0dd4\n\u0094" + - "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095\u0ddd" + - "\n\u0095\3\u0095\3\u0095\5\u0095\u0de1\n\u0095\3\u0096\3\u0096\3\u0096" + - "\5\u0096\u0de6\n\u0096\3\u0097\3\u0097\5\u0097\u0dea\n\u0097\3\u0097\5" + - "\u0097\u0ded\n\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\7\u0097\u0df4" + - "\n\u0097\f\u0097\16\u0097\u0df7\13\u0097\3\u0097\3\u0097\5\u0097\u0dfb" + - "\n\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097" + - "\3\u0097\5\u0097\u0e06\n\u0097\3\u0098\3\u0098\3\u0099\3\u0099\3\u009a" + - "\3\u009a\3\u009b\5\u009b\u0e0f\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b" + - "\3\u009b\5\u009b\u0e16\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b" + - "\u0e1c\n\u009b\3\u009b\3\u009b\5\u009b\u0e20\n\u009b\3\u009b\5\u009b\u0e23" + - "\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e29\n\u009b\3\u009b" + - "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e31\n\u009b\3\u009b" + - "\3\u009b\3\u009b\5\u009b\u0e36\n\u009b\3\u009b\5\u009b\u0e39\n\u009b\3" + - "\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e42\n" + - "\u009b\5\u009b\u0e44\n\u009b\5\u009b\u0e46\n\u009b\3\u009b\5\u009b\u0e49" + - "\n\u009b\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009e\3\u009e\5\u009e" + - "\u0e52\n\u009e\3\u009e\5\u009e\u0e55\n\u009e\3\u009e\3\u009e\5\u009e\u0e59" + - "\n\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e" + - "\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e" + - "\5\u009e\u0e6c\n\u009e\3\u009e\5\u009e\u0e6f\n\u009e\3\u009e\5\u009e\u0e72" + - "\n\u009e\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f" + - "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\5\u009f\u0e81\n\u009f\3\u009f" + - "\3\u009f\5\u009f\u0e85\n\u009f\5\u009f\u0e87\n\u009f\3\u009f\5\u009f\u0e8a" + - "\n\u009f\5\u009f\u0e8c\n\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0" + - "\3\u00a0\5\u00a0\u0e94\n\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1" + - "\3\u00a1\5\u00a1\u0e9c\n\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1" + - "\3\u00a1\5\u00a1\u0ea4\n\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3" + - "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\5\u00a3\u0eb0\n\u00a3\3\u00a3" + - "\3\u00a3\3\u00a3\3\u00a3\5\u00a3\u0eb6\n\u00a3\7\u00a3\u0eb8\n\u00a3\f" + - "\u00a3\16\u00a3\u0ebb\13\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\5\u00a3" + - "\u0ec1\n\u00a3\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5\5\u00a5" + - "\u0ec9\n\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6\u0ed0\n" + - "\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\5\u00a7\u0ed7\n\u00a7\3" + - "\u00a8\3\u00a8\3\u00a9\3\u00a9\5\u00a9\u0edd\n\u00a9\3\u00aa\3\u00aa\3" + - "\u00aa\3\u00aa\3\u00ab\3\u00ab\5\u00ab\u0ee5\n\u00ab\3\u00ab\3\u00ab\5" + - "\u00ab\u0ee9\n\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3" + - "\u00ad\3\u00ad\3\u00ad\5\u00ad\u0ef4\n\u00ad\3\u00ad\3\u00ad\3\u00ad\3" + - "\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + - "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + - "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + - "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad\u0f19\n\u00ad\3\u00ad" + - "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad" + - "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad" + - "\u0f2d\n\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\5\u00ae\u0f33\n\u00ae\3" + - "\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f38\n\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f3c" + - "\n\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f40\n\u00ae\3\u00ae\6\u00ae\u0f43\n" + - "\u00ae\r\u00ae\16\u00ae\u0f44\3\u00ae\3\u00ae\6\u00ae\u0f49\n\u00ae\r" + - "\u00ae\16\u00ae\u0f4a\3\u00ae\3\u00ae\5\u00ae\u0f4f\n\u00ae\3\u00ae\5" + - "\u00ae\u0f52\n\u00ae\3\u00ae\5\u00ae\u0f55\n\u00ae\3\u00ae\5\u00ae\u0f58" + - "\n\u00ae\3\u00ae\5\u00ae\u0f5b\n\u00ae\3\u00ae\5\u00ae\u0f5e\n\u00ae\3" + - "\u00ae\5\u00ae\u0f61\n\u00ae\3\u00ae\5\u00ae\u0f64\n\u00ae\3\u00ae\5\u00ae" + - "\u0f67\n\u00ae\3\u00ae\5\u00ae\u0f6a\n\u00ae\3\u00ae\5\u00ae\u0f6d\n\u00ae" + - "\3\u00af\5\u00af\u0f70\n\u00af\3\u00af\3\u00af\3\u00af\3\u00af\5\u00af" + - "\u0f76\n\u00af\3\u00af\5\u00af\u0f79\n\u00af\3\u00af\3\u00af\5\u00af\u0f7d" + - "\n\u00af\3\u00af\3\u00af\5\u00af\u0f81\n\u00af\3\u00af\3\u00af\5\u00af" + - "\u0f85\n\u00af\3\u00af\6\u00af\u0f88\n\u00af\r\u00af\16\u00af\u0f89\3" + - "\u00af\3\u00af\6\u00af\u0f8e\n\u00af\r\u00af\16\u00af\u0f8f\3\u00af\3" + - "\u00af\5\u00af\u0f94\n\u00af\3\u00af\5\u00af\u0f97\n\u00af\3\u00af\5\u00af" + - "\u0f9a\n\u00af\3\u00af\5\u00af\u0f9d\n\u00af\3\u00af\5\u00af\u0fa0\n\u00af" + - "\3\u00af\5\u00af\u0fa3\n\u00af\3\u00af\5\u00af\u0fa6\n\u00af\3\u00af\5" + - "\u00af\u0fa9\n\u00af\3\u00af\5\u00af\u0fac\n\u00af\3\u00af\5\u00af\u0faf" + - "\n\u00af\3\u00af\5\u00af\u0fb2\n\u00af\3\u00b0\3\u00b0\5\u00b0\u0fb6\n" + - "\u00b0\3\u00b0\3\u00b0\3\u00b0\7\u00b0\u0fbb\n\u00b0\f\u00b0\16\u00b0" + - "\u0fbe\13\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1\u0fc5" + - "\n\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1" + - "\u0fce\n\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\5\u00b2\u0fd4\n\u00b2\3" + - "\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0fda\n\u00b2\3\u00b2\3\u00b2\5" + - "\u00b2\u0fde\n\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0fe5" + - "\n\u00b2\5\u00b2\u0fe7\n\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\5\u00b3" + - "\u0fed\n\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4\5\u00b4\u0ff3\n\u00b4\3" + - "\u00b4\3\u00b4\3\u00b4\5\u00b4\u0ff8\n\u00b4\3\u00b4\3\u00b4\5\u00b4\u0ffc" + - "\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6" + - "\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u1009\n\u00b6\3\u00b6\3\u00b6\3\u00b6" + - "\3\u00b6\3\u00b6\5\u00b6\u1010\n\u00b6\3\u00b6\5\u00b6\u1013\n\u00b6\3" + - "\u00b7\3\u00b7\3\u00b7\7\u00b7\u1018\n\u00b7\f\u00b7\16\u00b7\u101b\13" + - "\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8" + - "\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\5\u00b8\u102a\n\u00b8\3\u00b9" + - "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u1031\n\u00b9\3\u00ba\3\u00ba" + - "\5\u00ba\u1035\n\u00ba\3\u00ba\5\u00ba\u1038\n\u00ba\3\u00ba\3\u00ba\5" + - "\u00ba\u103c\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u1040\n\u00ba\3\u00ba\5\u00ba" + - "\u1043\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u1047\n\u00ba\3\u00ba\5\u00ba\u104a" + - "\n\u00ba\3\u00bb\3\u00bb\3\u00bb\5\u00bb\u104f\n\u00bb\3\u00bc\5\u00bc" + - "\u1052\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u1056\n\u00bc\3\u00bc\3\u00bc\5" + - "\u00bc\u105a\n\u00bc\3\u00bc\5\u00bc\u105d\n\u00bc\3\u00bc\5\u00bc\u1060" + - "\n\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u1065\n\u00bc\3\u00bc\3\u00bc" + - "\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u106c\n\u00bc\3\u00bc\5\u00bc\u106f\n" + - "\u00bc\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\7\u00be\u1076\n\u00be\f" + - "\u00be\16\u00be\u1079\13\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf" + - "\5\u00bf\u1080\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\5\u00bf" + - "\u1087\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u108b\n\u00bf\3\u00bf\5\u00bf\u108e" + - "\n\u00bf\3\u00bf\5\u00bf\u1091\n\u00bf\3\u00bf\5\u00bf\u1094\n\u00bf\3" + - "\u00bf\3\u00bf\5\u00bf\u1098\n\u00bf\3\u00bf\5\u00bf\u109b\n\u00bf\3\u00bf" + - "\5\u00bf\u109e\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf" + - "\5\u00bf\u10a6\n\u00bf\5\u00bf\u10a8\n\u00bf\5\u00bf\u10aa\n\u00bf\3\u00c0" + - "\5\u00c0\u10ad\n\u00c0\3\u00c0\3\u00c0\3\u00c0\6\u00c0\u10b2\n\u00c0\r" + - "\u00c0\16\u00c0\u10b3\3\u00c0\3\u00c0\6\u00c0\u10b8\n\u00c0\r\u00c0\16" + - "\u00c0\u10b9\3\u00c0\3\u00c0\5\u00c0\u10be\n\u00c0\3\u00c0\5\u00c0\u10c1" + - "\n\u00c0\3\u00c0\5\u00c0\u10c4\n\u00c0\3\u00c0\5\u00c0\u10c7\n\u00c0\3" + - "\u00c0\5\u00c0\u10ca\n\u00c0\3\u00c0\5\u00c0\u10cd\n\u00c0\3\u00c1\3\u00c1" + - "\3\u00c1\3\u00c1\5\u00c1\u10d3\n\u00c1\5\u00c1\u10d5\n\u00c1\3\u00c1\3" + - "\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\7\u00c2\u10dd\n\u00c2\f\u00c2\16" + - "\u00c2\u10e0\13\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4" + - "\3\u00c4\3\u00c4\7\u00c4\u10ea\n\u00c4\f\u00c4\16\u00c4\u10ed\13\u00c4" + - "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\5\u00c5" + - "\u10f7\n\u00c5\3\u00c5\3\u00c5\3\u00c5\5\u00c5\u10fc\n\u00c5\7\u00c5\u10fe" + - "\n\u00c5\f\u00c5\16\u00c5\u1101\13\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5" + - "\3\u00c5\5\u00c5\u1108\n\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6" + - "\u110e\n\u00c6\f\u00c6\16\u00c6\u1111\13\u00c6\3\u00c6\3\u00c6\3\u00c7" + - "\3\u00c7\3\u00c7\3\u00c7\7\u00c7\u1119\n\u00c7\f\u00c7\16\u00c7\u111c" + - "\13\u00c7\3\u00c8\3\u00c8\5\u00c8\u1120\n\u00c8\3\u00c8\5\u00c8\u1123" + - "\n\u00c8\3\u00c8\5\u00c8\u1126\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8" + - "\u112b\n\u00c8\3\u00c8\5\u00c8\u112e\n\u00c8\3\u00c8\5\u00c8\u1131\n\u00c8" + - "\7\u00c8\u1133\n\u00c8\f\u00c8\16\u00c8\u1136\13\u00c8\3\u00c9\3\u00c9" + - "\5\u00c9\u113a\n\u00c9\3\u00c9\3\u00c9\5\u00c9\u113e\n\u00c9\3\u00ca\3" + - "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca" + - "\5\u00ca\u114a\n\u00ca\3\u00cb\3\u00cb\3\u00cc\3\u00cc\3\u00cd\3\u00cd" + - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u1158\n\u00cd" + - "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\7\u00ce\u1160\n\u00ce" + - "\f\u00ce\16\u00ce\u1163\13\u00ce\3\u00ce\5\u00ce\u1166\n\u00ce\3\u00cf" + - "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\5\u00d0" + - "\u1171\n\u00d0\3\u00d0\7\u00d0\u1174\n\u00d0\f\u00d0\16\u00d0\u1177\13" + - "\u00d0\3\u00d0\3\u00d0\5\u00d0\u117b\n\u00d0\3\u00d0\7\u00d0\u117e\n\u00d0" + - "\f\u00d0\16\u00d0\u1181\13\u00d0\3\u00d0\5\u00d0\u1184\n\u00d0\3\u00d1" + - "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\7\u00d1\u118b\n\u00d1\f\u00d1\16\u00d1" + - "\u118e\13\u00d1\3\u00d2\3\u00d2\5\u00d2\u1192\n\u00d2\3\u00d2\3\u00d2" + - "\3\u00d2\3\u00d2\5\u00d2\u1198\n\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2" + - "\3\u00d2\3\u00d2\7\u00d2\u11a0\n\u00d2\f\u00d2\16\u00d2\u11a3\13\u00d2" + - "\5\u00d2\u11a5\n\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u11ab\n" + - "\u00d3\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u11b0\n\u00d4\3\u00d5\3\u00d5\3" + - "\u00d5\5\u00d5\u11b5\n\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d6\3\u00d6\3" + - "\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\5\u00d6\u11c2\n\u00d6\3" + - "\u00d6\3\u00d6\3\u00d6\3\u00d6\7\u00d6\u11c8\n\u00d6\f\u00d6\16\u00d6" + - "\u11cb\13\u00d6\5\u00d6\u11cd\n\u00d6\3\u00d6\3\u00d6\3\u00d6\7\u00d6" + - "\u11d2\n\u00d6\f\u00d6\16\u00d6\u11d5\13\u00d6\3\u00d7\3\u00d7\3\u00d7" + - "\7\u00d7\u11da\n\u00d7\f\u00d7\16\u00d7\u11dd\13\u00d7\3\u00d8\3\u00d8" + - "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\5\u00d8\u11e6\n\u00d8\5\u00d8" + - "\u11e8\n\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\6\u00da\u11fd\n\u00da\r\u00da\16\u00da\u11fe" + - "\3\u00da\3\u00da\3\u00da\3\u00da\6\u00da\u1205\n\u00da\r\u00da\16\u00da" + - "\u1206\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\5\u00da\u1237\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\5\u00da\u1249\n\u00da\3\u00da\3\u00da\3\u00da" + - "\5\u00da\u124e\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da" + - "\u125e\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\5\u00da\u1270\n\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u1275\n\u00da\3" + - "\u00da\3\u00da\5\u00da\u1279\n\u00da\3\u00da\6\u00da\u127c\n\u00da\r\u00da" + - "\16\u00da\u127d\3\u00da\3\u00da\3\u00da\6\u00da\u1283\n\u00da\r\u00da" + - "\16\u00da\u1284\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u1292\n\u00da\3\u00da\3\u00da" + - "\3\u00da\3\u00da\3\u00da\3\u00da\7\u00da\u129a\n\u00da\f\u00da\16\u00da" + - "\u129d\13\u00da\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u12a4" + - "\n\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\7\u00db\u12ac" + - "\n\u00db\f\u00db\16\u00db\u12af\13\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc" + - "\3\u00dc\3\u00dc\3\u00dc\6\u00dc\u12b8\n\u00dc\r\u00dc\16\u00dc\u12b9" + - "\3\u00dc\3\u00dc\5\u00dc\u12be\n\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc" + - "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\6\u00dc\u12c8\n\u00dc\r\u00dc\16\u00dc" + - "\u12c9\3\u00dc\3\u00dc\5\u00dc\u12ce\n\u00dc\3\u00dc\3\u00dc\5\u00dc\u12d2" + - "\n\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\7\u00dd\u12d8\n\u00dd\f\u00dd" + - "\16\u00dd\u12db\13\u00dd\3\u00dd\3\u00dd\3\u00de\5\u00de\u12e0\n\u00de" + - "\3\u00de\3\u00de\3\u00de\7\u00de\u12e5\n\u00de\f\u00de\16\u00de\u12e8" + - "\13\u00de\3\u00de\5\u00de\u12eb\n\u00de\3\u00df\5\u00df\u12ee\n\u00df" + - "\3\u00df\5\u00df\u12f1\n\u00df\3\u00df\5\u00df\u12f4\n\u00df\3\u00e0\3" + - "\u00e0\3\u00e0\7\u00e0\u12f9\n\u00e0\f\u00e0\16\u00e0\u12fc\13\u00e0\3" + - "\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\5\u00e1\u1303\n\u00e1\3\u00e2\3" + - "\u00e2\3\u00e2\7\u00e2\u1308\n\u00e2\f\u00e2\16\u00e2\u130b\13\u00e2\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3" + - "\u1315\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u131b\n\u00e3\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3" + - "\u1325\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u132b\n\u00e3\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1331\n\u00e3\3\u00e3\3\u00e3\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u133c\n" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3" + - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u134a\n\u00e3\3\u00e3\5\u00e3" + - "\u134d\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3" + - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u135c\n\u00e3" + - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3" + - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u136e" + - "\n\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1373\n\u00e3\3\u00e3\3\u00e3" + - "\3\u00e3\3\u00e3\5\u00e3\u1379\n\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3" + - "\u137e\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1384\n\u00e3\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u138a\n\u00e3\3\u00e3\3\u00e3\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1394\n\u00e3\3" + - "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u139a\n\u00e3\3\u00e3\5\u00e3\u139d" + - "\n\u00e3\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\5\u00e5\u13a5" + - "\n\u00e5\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u13aa\n\u00e6\3\u00e6\3\u00e6" + - "\3\u00e6\7\u00e6\u13af\n\u00e6\f\u00e6\16\u00e6\u13b2\13\u00e6\3\u00e6" + - "\5\u00e6\u13b5\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + - "\3\u00e6\5\u00e6\u13be\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + - "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u13ca\n\u00e6\3\u00e6" + - "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\7\u00e6\u13d1\n\u00e6\f\u00e6\16\u00e6" + - "\u13d4\13\u00e6\5\u00e6\u13d6\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6" + - "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6" + - "\u13e4\n\u00e6\5\u00e6\u13e6\n\u00e6\3\u00e7\3\u00e7\5\u00e7\u13ea\n\u00e7" + - "\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u13ef\n\u00e8\f\u00e8\16\u00e8\u13f2" + - "\13\u00e8\3\u00e9\3\u00e9\3\u00e9\7\u00e9\u13f7\n\u00e9\f\u00e9\16\u00e9" + - "\u13fa\13\u00e9\3\u00ea\3\u00ea\3\u00ea\5\u00ea\u13ff\n\u00ea\3\u00eb" + - "\3\u00eb\3\u00eb\7\u00eb\u1404\n\u00eb\f\u00eb\16\u00eb\u1407\13\u00eb" + - "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\5\u00ed\u140d\n\u00ed\3\u00ed\3\u00ed" + - "\5\u00ed\u1411\n\u00ed\3\u00ed\7\u00ed\u1414\n\u00ed\f\u00ed\16\u00ed" + - "\u1417\13\u00ed\3\u00ee\3\u00ee\3\u00ee\7\u00ee\u141c\n\u00ee\f\u00ee" + - "\16\u00ee\u141f\13\u00ee\3\u00ef\3\u00ef\5\u00ef\u1423\n\u00ef\3\u00f0" + - "\3\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1" + - "\3\u00f1\3\u00f1\3\u00f1\7\u00f1\u1432\n\u00f1\f\u00f1\16\u00f1\u1435" + - "\13\u00f1\3\u00f1\3\u00f1\3\u00f1\5\u00f1\u143a\n\u00f1\5\u00f1\u143c" + - "\n\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1" + - "\3\u00f1\5\u00f1\u1447\n\u00f1\3\u00f1\3\u00f1\5\u00f1\u144b\n\u00f1\3" + - "\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\7\u00f2\u1452\n\u00f2\f\u00f2\16" + - "\u00f2\u1455\13\u00f2\5\u00f2\u1457\n\u00f2\3\u00f2\3\u00f2\3\u00f3\3" + - "\u00f3\5\u00f3\u145d\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u1461\n\u00f3\3\u00f3" + - "\5\u00f3\u1464\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3" + - "\7\u00f3\u146c\n\u00f3\f\u00f3\16\u00f3\u146f\13\u00f3\3\u00f3\3\u00f3" + - "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u1477\n\u00f3\5\u00f3\u1479\n" + - "\u00f3\3\u00f3\5\u00f3\u147c\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\5" + - "\u00f3\u1482\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u1489" + - "\n\u00f3\f\u00f3\16\u00f3\u148c\13\u00f3\3\u00f3\3\u00f3\5\u00f3\u1490" + - "\n\u00f3\3\u00f3\5\u00f3\u1493\n\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3" + - "\u1498\n\u00f3\3\u00f3\5\u00f3\u149b\n\u00f3\3\u00f3\5\u00f3\u149e\n\u00f3" + - "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u14a6\n\u00f3" + - "\f\u00f3\16\u00f3\u14a9\13\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u14ae" + - "\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3" + - "\3\u00f3\3\u00f3\7\u00f3\u14ba\n\u00f3\f\u00f3\16\u00f3\u14bd\13\u00f3" + - "\3\u00f3\3\u00f3\5\u00f3\u14c1\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14c5\n" + - "\u00f3\3\u00f3\3\u00f3\5\u00f3\u14c9\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14cd" + - "\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14d1\n\u00f3\3\u00f3\5\u00f3\u14d4\n" + - "\u00f3\7\u00f3\u14d6\n\u00f3\f\u00f3\16\u00f3\u14d9\13\u00f3\3\u00f4\5" + - "\u00f4\u14dc\n\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\7\u00f4\u14e2\n\u00f4" + - "\f\u00f4\16\u00f4\u14e5\13\u00f4\5\u00f4\u14e7\n\u00f4\3\u00f4\5\u00f4" + - "\u14ea\n\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\5\u00f4\u14f1\n" + - "\u00f4\3\u00f5\5\u00f5\u14f4\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u14f9" + - "\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u14fe\n\u00f5\3\u00f5\3\u00f5" + - "\3\u00f5\5\u00f5\u1503\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u1508\n" + - "\u00f5\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\7\u00f6" + - "\u1511\n\u00f6\f\u00f6\16\u00f6\u1514\13\u00f6\3\u00f6\3\u00f6\5\u00f6" + - "\u1518\n\u00f6\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7" + - "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\5\u00f7\u1526\n\u00f7\3\u00f7" + - "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\7\u00f7\u152e\n\u00f7\f\u00f7" + - "\16\u00f7\u1531\13\u00f7\3\u00f8\3\u00f8\5\u00f8\u1535\n\u00f8\3\u00f8" + - "\5\u00f8\u1538\n\u00f8\3\u00f8\3\u00f8\5\u00f8\u153c\n\u00f8\3\u00f8\5" + - "\u00f8\u153f\n\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\5\u00f8\u1546" + - "\n\u00f8\3\u00f8\5\u00f8\u1549\n\u00f8\3\u00f8\3\u00f8\5\u00f8\u154d\n" + - "\u00f8\3\u00f9\3\u00f9\3\u00f9\3\u00fa\6\u00fa\u1553\n\u00fa\r\u00fa\16" + - "\u00fa\u1554\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u155c\n\u00fb" + - "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u1562\n\u00fb\3\u00fc\3\u00fc" + - "\3\u00fc\3\u00fc\3\u00fc\5\u00fc\u1569\n\u00fc\3\u00fc\5\u00fc\u156c\n" + - "\u00fc\3\u00fc\5\u00fc\u156f\n\u00fc\3\u00fc\3\u00fc\5\u00fc\u1573\n\u00fc" + - "\3\u00fd\3\u00fd\5\u00fd\u1577\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + - "\3\u00fd\3\u00fd\5\u00fd\u157f\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + - "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + - "\3\u00fd\3\u00fd\5\u00fd\u1590\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + - "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd\u159d" + - "\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd" + - "\5\u00fd\u15a7\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd" + - "\u15ae\n\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd\u15b3\n\u00fd\3\u00fd\3" + - "\u00fd\3\u00fd\5\u00fd\u15b8\n\u00fd\5\u00fd\u15ba\n\u00fd\3\u00fd\5\u00fd" + - "\u15bd\n\u00fd\3\u00fd\5\u00fd\u15c0\n\u00fd\3\u00fd\3\u00fd\5\u00fd\u15c4" + - "\n\u00fd\3\u00fe\3\u00fe\3\u00fe\3\u00fe\5\u00fe\u15ca\n\u00fe\3\u00ff" + - "\3\u00ff\3\u00ff\7\u00ff\u15cf\n\u00ff\f\u00ff\16\u00ff\u15d2\13\u00ff" + - "\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100" + - "\3\u0100\3\u0100\5\u0100\u15df\n\u0100\3\u0101\3\u0101\3\u0102\3\u0102" + - "\3\u0102\3\u0102\3\u0102\3\u0102\5\u0102\u15e9\n\u0102\3\u0102\3\u0102" + - "\3\u0102\7\u0102\u15ee\n\u0102\f\u0102\16\u0102\u15f1\13\u0102\3\u0103" + - "\3\u0103\3\u0104\3\u0104\3\u0105\3\u0105\3\u0106\3\u0106\3\u0107\3\u0107" + - "\3\u0108\3\u0108\3\u0109\3\u0109\3\u010a\3\u010a\3\u010a\2\7\u01b2\u01b4" + - "\u01e4\u01ec\u0202\u010b\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(" + - "*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084" + - "\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c" + - "\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4" + - "\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc" + - "\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4" + - "\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc" + - "\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114" + - "\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c" + - "\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144" + - "\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c" + - "\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174" + - "\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c" + - "\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4" + - "\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc" + - "\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4" + - "\u01d6\u01d8\u01da\u01dc\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec" + - "\u01ee\u01f0\u01f2\u01f4\u01f6\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204" + - "\u0206\u0208\u020a\u020c\u020e\u0210\u0212\2\64\4\2\u00be\u00be\u0209" + - "\u0209\4\2>>\u01dc\u01dc\4\2\26\26\u01d9\u01d9\6\2\u00d8\u00d8\u00da\u00da" + - "\u0145\u0145\u01a9\u01a9\5\2\r\r\u00be\u00be\u0209\u0209\4\2\u0249\u0249" + - "\u0319\u0319\4\2\u010b\u010b\u027e\u027e\3\2\u02b0\u02b2\4\2\u00c7\u00c7" + - "\u0263\u0263\4\2\u0174\u0174\u030a\u030a\7\2\22\22\u00a5\u00a5\u0118\u0118" + - "\u0200\u0200\u026b\u026b\6\2\u00a5\u00a5\u0118\u0118\u0200\u0200\u026b" + - "\u026b\4\2\24\24\u011b\u011b\4\2\u023d\u023d\u023f\u023f\4\2??\u013c\u013c" + - "\7\2\22\22\u01aa\u01aa\u0204\u0204\u023d\u023d\u023f\u023f\4\2\u0237\u0237" + - "\u026e\u026e\4\2\22\22\u0307\u0307\4\2\u00ee\u00ee\u010b\u010b\7\2\u0094" + - "\u0094\u010e\u010e\u01f5\u01f5\u0237\u0237\u0239\u0239\4\2\u024d\u024d" + - "\u028b\u028b\5\2\u023d\u023d\u023f\u023f\u0345\u0345\4\2\u013c\u013c\u0207" + - "\u0207\4\2\u00a1\u00a1\u0107\u0107\4\2vv\u01db\u01db\7\2\30\30\u00b6\u00b6" + - "\u00ed\u00ed\u00ef\u00ef\u0280\u0280\4\2\u0085\u0085\u01e9\u01e9\7\2\30" + - "\30\67\67||\u0248\u0248\u0280\u0280\6\2\u028d\u028d\u02e0\u02e0\u02f1" + - "\u02f1\u02f9\u02f9\4\2\u01be\u01be\u01f1\u01f1\5\2\u00cd\u00cd\u011e\u011e" + - "\u0264\u0264\4\2\22\22\u00ba\u00ba\4\2\u00e1\u00e1\u012f\u012f\4\2\u01ee" + - "\u01ee\u01f1\u01f1\4\2\u00e1\u00e1\u0168\u0168\3\2\u02fd\u02fd\6\2\u0314" + - "\u0314\u0316\u0316\u032f\u032f\u0335\u0335\4\2\u0339\u0339\u033c\u033c" + - "\4\2\22\22\u016f\u016f\4\2\u0318\u0318\u0333\u0334\5\2\u02ff\u02ff\u0330" + - "\u0330\u033b\u033b\4\2\u032f\u032f\u0335\u0335\16\2\31\31\u016f\u016f" + - "\u0189\u0189\u030f\u0313\u031a\u031a\u031d\u0325\u0328\u0329\u032b\u032e" + - "\u0331\u0332\u0336\u0338\u033a\u033a\u033c\u0343\7\2\u0317\u0317\u0319" + - "\u0319\u031b\u031c\u0326\u0327\u032a\u032a\6\2\u010b\u010b\u0115\u0115" + - "\u018e\u018e\u027e\u027e\4\2\u0288\u0288\u028a\u028a\4\2\u0306\u0307\u030a" + - "\u030b\3\2\u02bf\u02c4\4\2\36\36\u00ad\u00ado\2\3\3\6\20\23\26\32\33\37" + - "!#&(.\60\61\63\64\66\668?BORY\\_afhilnp{}\177\u0084\u0087\u0089\u008a" + - "\u008e\u008e\u0090\u009c\u009e\u009e\u00a1\u00a8\u00aa\u00ac\u00ae\u00af" + - "\u00b2\u00b4\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c6\u00c8\u00ca\u00cc" + - "\u00ce\u00d3\u00d5\u00d7\u00d9\u00db\u00df\u00e4\u00e6\u00e6\u00e8\u00ec" + - "\u00f0\u00f8\u00fa\u00fb\u00fd\u00fe\u0100\u0105\u0107\u010a\u010c\u010f" + - "\u0111\u0111\u0115\u011d\u011f\u0120\u0122\u0122\u0124\u0124\u0127\u012a" + - "\u012d\u012f\u0132\u0134\u0136\u0136\u0139\u013c\u013f\u0144\u0146\u0146" + - "\u0148\u0148\u014a\u0158\u015a\u0162\u0164\u0169\u016c\u016e\u0170\u0171" + - "\u0173\u0173\u0175\u017e\u0180\u0181\u0184\u0184\u0186\u0188\u018b\u018e" + - "\u0190\u0191\u0193\u019d\u01a0\u01a7\u01a9\u01a9\u01ab\u01ac\u01ae\u01b0" + - "\u01b3\u01b3\u01b5\u01b5\u01b7\u01bb\u01bd\u01c2\u01c4\u01c6\u01c8\u01cd" + - "\u01cf\u01d8\u01da\u01e2\u01e4\u01ff\u0201\u0207\u0209\u020d\u020f\u0210" + - "\u0212\u0212\u0214\u022f\u0231\u0231\u0233\u0234\u0236\u0238\u023a\u023a" + - "\u023c\u023f\u0243\u0247\u024b\u024b\u024d\u0263\u0266\u026d\u026f\u0272" + - "\u0274\u0275\u0277\u027c\u027f\u027f\u0281\u0282\u0284\u0284\u0286\u0286" + - "\u0289\u028c\u028e\u028e\u0290\u0290\u02f1\u02f1\2\u19b8\2\u0214\3\2\2" + - "\2\4\u0255\3\2\2\2\6\u0257\3\2\2\2\b\u0281\3\2\2\2\n\u02a1\3\2\2\2\f\u02be" + - "\3\2\2\2\16\u02d5\3\2\2\2\20\u02d7\3\2\2\2\22\u02d9\3\2\2\2\24\u0327\3" + - "\2\2\2\26\u034a\3\2\2\2\30\u035b\3\2\2\2\32\u035d\3\2\2\2\34\u040b\3\2" + - "\2\2\36\u040d\3\2\2\2 \u0453\3\2\2\2\"\u0455\3\2\2\2$\u046c\3\2\2\2&\u04b4" + - "\3\2\2\2(\u04cd\3\2\2\2*\u04cf\3\2\2\2,\u04da\3\2\2\2.\u04dc\3\2\2\2\60" + - "\u04ff\3\2\2\2\62\u0501\3\2\2\2\64\u051e\3\2\2\2\66\u0554\3\2\2\28\u056f" + - "\3\2\2\2:\u05bf\3\2\2\2<\u05c1\3\2\2\2>\u05db\3\2\2\2@\u05dd\3\2\2\2B" + - "\u05e6\3\2\2\2D\u0617\3\2\2\2F\u0631\3\2\2\2H\u0672\3\2\2\2J\u0682\3\2" + - "\2\2L\u0684\3\2\2\2N\u06a7\3\2\2\2P\u0704\3\2\2\2R\u0706\3\2\2\2T\u0708" + - "\3\2\2\2V\u071c\3\2\2\2X\u0731\3\2\2\2Z\u0733\3\2\2\2\\\u0735\3\2\2\2" + - "^\u0737\3\2\2\2`\u0743\3\2\2\2b\u0745\3\2\2\2d\u0750\3\2\2\2f\u0752\3" + - "\2\2\2h\u0754\3\2\2\2j\u0756\3\2\2\2l\u0758\3\2\2\2n\u075a\3\2\2\2p\u0783" + - "\3\2\2\2r\u0785\3\2\2\2t\u08a8\3\2\2\2v\u08aa\3\2\2\2x\u08d8\3\2\2\2z" + - "\u08da\3\2\2\2|\u08f9\3\2\2\2~\u08fb\3\2\2\2\u0080\u0908\3\2\2\2\u0082" + - "\u093e\3\2\2\2\u0084\u094a\3\2\2\2\u0086\u095b\3\2\2\2\u0088\u096e\3\2" + - "\2\2\u008a\u097e\3\2\2\2\u008c\u0987\3\2\2\2\u008e\u09a2\3\2\2\2\u0090" + - "\u09c7\3\2\2\2\u0092\u09cf\3\2\2\2\u0094\u09fd\3\2\2\2\u0096\u0a3c\3\2" + - "\2\2\u0098\u0a3e\3\2\2\2\u009a\u0a5d\3\2\2\2\u009c\u0ab0\3\2\2\2\u009e" + - "\u0ab2\3\2\2\2\u00a0\u0acb\3\2\2\2\u00a2\u0ad2\3\2\2\2\u00a4\u0aee\3\2" + - "\2\2\u00a6\u0b21\3\2\2\2\u00a8\u0b23\3\2\2\2\u00aa\u0b5d\3\2\2\2\u00ac" + - "\u0b5f\3\2\2\2\u00ae\u0b99\3\2\2\2\u00b0\u0b9b\3\2\2\2\u00b2\u0b9d\3\2" + - "\2\2\u00b4\u0b9f\3\2\2\2\u00b6\u0ba1\3\2\2\2\u00b8\u0ba3\3\2\2\2\u00ba" + - "\u0ba5\3\2\2\2\u00bc\u0ba7\3\2\2\2\u00be\u0ba9\3\2\2\2\u00c0\u0bab\3\2" + - "\2\2\u00c2\u0bad\3\2\2\2\u00c4\u0baf\3\2\2\2\u00c6\u0bb1\3\2\2\2\u00c8" + - "\u0bb3\3\2\2\2\u00ca\u0bb5\3\2\2\2\u00cc\u0bb7\3\2\2\2\u00ce\u0bde\3\2" + - "\2\2\u00d0\u0be0\3\2\2\2\u00d2\u0be3\3\2\2\2\u00d4\u0c02\3\2\2\2\u00d6" + - "\u0c2e\3\2\2\2\u00d8\u0c30\3\2\2\2\u00da\u0c3b\3\2\2\2\u00dc\u0c46\3\2" + - "\2\2\u00de\u0c54\3\2\2\2\u00e0\u0c5e\3\2\2\2\u00e2\u0c68\3\2\2\2\u00e4" + - "\u0c70\3\2\2\2\u00e6\u0c7a\3\2\2\2\u00e8\u0c85\3\2\2\2\u00ea\u0c8f\3\2" + - "\2\2\u00ec\u0c9b\3\2\2\2\u00ee\u0ca6\3\2\2\2\u00f0\u0cb0\3\2\2\2\u00f2" + - "\u0cb8\3\2\2\2\u00f4\u0cc5\3\2\2\2\u00f6\u0cd2\3\2\2\2\u00f8\u0cdd\3\2" + - "\2\2\u00fa\u0cdf\3\2\2\2\u00fc\u0cec\3\2\2\2\u00fe\u0cf9\3\2\2\2\u0100" + - "\u0d00\3\2\2\2\u0102\u0d0c\3\2\2\2\u0104\u0d16\3\2\2\2\u0106\u0d1e\3\2" + - "\2\2\u0108\u0d2a\3\2\2\2\u010a\u0d34\3\2\2\2\u010c\u0d3e\3\2\2\2\u010e" + - "\u0d48\3\2\2\2\u0110\u0d50\3\2\2\2\u0112\u0d5a\3\2\2\2\u0114\u0d64\3\2" + - "\2\2\u0116\u0d6c\3\2\2\2\u0118\u0d78\3\2\2\2\u011a\u0d84\3\2\2\2\u011c" + - "\u0d90\3\2\2\2\u011e\u0d9c\3\2\2\2\u0120\u0da8\3\2\2\2\u0122\u0db4\3\2" + - "\2\2\u0124\u0dbe\3\2\2\2\u0126\u0dc6\3\2\2\2\u0128\u0dd8\3\2\2\2\u012a" + - "\u0de2\3\2\2\2\u012c\u0dfa\3\2\2\2\u012e\u0e07\3\2\2\2\u0130\u0e09\3\2" + - "\2\2\u0132\u0e0b\3\2\2\2\u0134\u0e0e\3\2\2\2\u0136\u0e4a\3\2\2\2\u0138" + - "\u0e4d\3\2\2\2\u013a\u0e4f\3\2\2\2\u013c\u0e73\3\2\2\2\u013e\u0e8f\3\2" + - "\2\2\u0140\u0e95\3\2\2\2\u0142\u0ea5\3\2\2\2\u0144\u0ea9\3\2\2\2\u0146" + - "\u0ec2\3\2\2\2\u0148\u0ec4\3\2\2\2\u014a\u0ecd\3\2\2\2\u014c\u0ed3\3\2" + - "\2\2\u014e\u0ed8\3\2\2\2\u0150\u0eda\3\2\2\2\u0152\u0ede\3\2\2\2\u0154" + - "\u0ee2\3\2\2\2\u0156\u0eec\3\2\2\2\u0158\u0eef\3\2\2\2\u015a\u0f32\3\2" + - "\2\2\u015c\u0f6f\3\2\2\2\u015e\u0fb3\3\2\2\2\u0160\u0fbf\3\2\2\2\u0162" + - "\u0fe6\3\2\2\2\u0164\u0fe8\3\2\2\2\u0166\u0ffb\3\2\2\2\u0168\u0ffd\3\2" + - "\2\2\u016a\u1012\3\2\2\2\u016c\u1014\3\2\2\2\u016e\u1029\3\2\2\2\u0170" + - "\u102b\3\2\2\2\u0172\u1032\3\2\2\2\u0174\u104b\3\2\2\2\u0176\u1051\3\2" + - "\2\2\u0178\u1070\3\2\2\2\u017a\u1072\3\2\2\2\u017c\u10a9\3\2\2\2\u017e" + - "\u10ac\3\2\2\2\u0180\u10d4\3\2\2\2\u0182\u10d8\3\2\2\2\u0184\u10e1\3\2" + - "\2\2\u0186\u10e4\3\2\2\2\u0188\u1107\3\2\2\2\u018a\u1109\3\2\2\2\u018c" + - "\u1114\3\2\2\2\u018e\u1125\3\2\2\2\u0190\u113d\3\2\2\2\u0192\u1149\3\2" + - "\2\2\u0194\u114b\3\2\2\2\u0196\u114d\3\2\2\2\u0198\u1157\3\2\2\2\u019a" + - "\u1165\3\2\2\2\u019c\u1167\3\2\2\2\u019e\u116e\3\2\2\2\u01a0\u1185\3\2" + - "\2\2\u01a2\u1191\3\2\2\2\u01a4\u11a6\3\2\2\2\u01a6\u11ac\3\2\2\2\u01a8" + - "\u11b1\3\2\2\2\u01aa\u11b9\3\2\2\2\u01ac\u11d6\3\2\2\2\u01ae\u11e7\3\2" + - "\2\2\u01b0\u11e9\3\2\2\2\u01b2\u1236\3\2\2\2\u01b4\u12a3\3\2\2\2\u01b6" + - "\u12d1\3\2\2\2\u01b8\u12d3\3\2\2\2\u01ba\u12df\3\2\2\2\u01bc\u12f3\3\2" + - "\2\2\u01be\u12f5\3\2\2\2\u01c0\u12fd\3\2\2\2\u01c2\u1304\3\2\2\2\u01c4" + - "\u139c\3\2\2\2\u01c6\u139e\3\2\2\2\u01c8\u13a4\3\2\2\2\u01ca\u13e5\3\2" + - "\2\2\u01cc\u13e9\3\2\2\2\u01ce\u13eb\3\2\2\2\u01d0\u13f3\3\2\2\2\u01d2" + - "\u13fb\3\2\2\2\u01d4\u1400\3\2\2\2\u01d6\u1408\3\2\2\2\u01d8\u140c\3\2" + - "\2\2\u01da\u1418\3\2\2\2\u01dc\u1422\3\2\2\2\u01de\u1424\3\2\2\2\u01e0" + - "\u144a\3\2\2\2\u01e2\u144c\3\2\2\2\u01e4\u14c4\3\2\2\2\u01e6\u14f0\3\2" + - "\2\2\u01e8\u1507\3\2\2\2\u01ea\u1517\3\2\2\2\u01ec\u1525\3\2\2\2\u01ee" + - "\u154c\3\2\2\2\u01f0\u154e\3\2\2\2\u01f2\u1552\3\2\2\2\u01f4\u155b\3\2" + - "\2\2\u01f6\u1568\3\2\2\2\u01f8\u1576\3\2\2\2\u01fa\u15c9\3\2\2\2\u01fc" + - "\u15cb\3\2\2\2\u01fe\u15de\3\2\2\2\u0200\u15e0\3\2\2\2\u0202\u15e8\3\2" + - "\2\2\u0204\u15f2\3\2\2\2\u0206\u15f4\3\2\2\2\u0208\u15f6\3\2\2\2\u020a" + - "\u15f8\3\2\2\2\u020c\u15fa\3\2\2\2\u020e\u15fc\3\2\2\2\u0210\u15fe\3\2" + - "\2\2\u0212\u1600\3\2\2\2\u0214\u021d\5\4\3\2\u0215\u0216\7\u0344\2\2\u0216" + - "\u0218\5\4\3\2\u0217\u0215\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u0217\3\2" + - "\2\2\u0219\u021a\3\2\2\2\u021a\u021b\3\2\2\2\u021b\u021c\7\u0344\2\2\u021c" + - "\u021e\3\2\2\2\u021d\u0217\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u021f\3\2" + - "\2\2\u021f\u0220\7\2\2\3\u0220\3\3\2\2\2\u0221\u0256\5\6\4\2\u0222\u0256" + - "\5\b\5\2\u0223\u0256\5b\62\2\u0224\u0256\5p9\2\u0225\u0256\5d\63\2\u0226" + - "\u0256\5f\64\2\u0227\u0256\5h\65\2\u0228\u0256\5j\66\2\u0229\u0256\5l" + - "\67\2\u022a\u0256\5n8\2\u022b\u0256\5\u00ceh\2\u022c\u0256\5\u00d0i\2" + - "\u022d\u0256\5\u00d2j\2\u022e\u0256\5\u00d4k\2\u022f\u0256\5\u00d6l\2" + - "\u0230\u0256\5\u012a\u0096\2\u0231\u0256\5\u012c\u0097\2\u0232\u0256\5" + - "\u012e\u0098\2\u0233\u0256\5\u0130\u0099\2\u0234\u0256\5\u0132\u009a\2" + - "\u0235\u0256\5\u0134\u009b\2\u0236\u0256\5\u0136\u009c\2\u0237\u0256\5" + - "\u0138\u009d\2\u0238\u0256\5\u013a\u009e\2\u0239\u0256\5\u013c\u009f\2" + - "\u023a\u0256\5\u013e\u00a0\2\u023b\u0256\5\u0140\u00a1\2\u023c\u0256\5" + - "\u0142\u00a2\2\u023d\u0256\5\u0144\u00a3\2\u023e\u0256\5\u0146\u00a4\2" + - "\u023f\u0256\5\u0148\u00a5\2\u0240\u0256\5\u014a\u00a6\2\u0241\u0256\5" + - "\u014c\u00a7\2\u0242\u0256\5\u014e\u00a8\2\u0243\u0256\5\u0150\u00a9\2" + - "\u0244\u0256\5\u0152\u00aa\2\u0245\u0256\5\u0154\u00ab\2\u0246\u0256\5" + - "\u0156\u00ac\2\u0247\u0256\5\u0158\u00ad\2\u0248\u0256\5\u015a\u00ae\2" + - "\u0249\u0256\5\u015c\u00af\2\u024a\u0256\5\u0162\u00b2\2\u024b\u0256\5" + - "\u0164\u00b3\2\u024c\u0256\5\u0166\u00b4\2\u024d\u0256\5\u0168\u00b5\2" + - "\u024e\u0256\5\u016e\u00b8\2\u024f\u0256\5\u0170\u00b9\2\u0250\u0256\5" + - "\u0172\u00ba\2\u0251\u0256\5\u0174\u00bb\2\u0252\u0256\5\u0176\u00bc\2" + - "\u0253\u0256\5\u017c\u00bf\2\u0254\u0256\5\u017e\u00c0\2\u0255\u0221\3" + - "\2\2\2\u0255\u0222\3\2\2\2\u0255\u0223\3\2\2\2\u0255\u0224\3\2\2\2\u0255" + - "\u0225\3\2\2\2\u0255\u0226\3\2\2\2\u0255\u0227\3\2\2\2\u0255\u0228\3\2" + - "\2\2\u0255\u0229\3\2\2\2\u0255\u022a\3\2\2\2\u0255\u022b\3\2\2\2\u0255" + - "\u022c\3\2\2\2\u0255\u022d\3\2\2\2\u0255\u022e\3\2\2\2\u0255\u022f\3\2" + - "\2\2\u0255\u0230\3\2\2\2\u0255\u0231\3\2\2\2\u0255\u0232\3\2\2\2\u0255" + - "\u0233\3\2\2\2\u0255\u0234\3\2\2\2\u0255\u0235\3\2\2\2\u0255\u0236\3\2" + - "\2\2\u0255\u0237\3\2\2\2\u0255\u0238\3\2\2\2\u0255\u0239\3\2\2\2\u0255" + - "\u023a\3\2\2\2\u0255\u023b\3\2\2\2\u0255\u023c\3\2\2\2\u0255\u023d\3\2" + - "\2\2\u0255\u023e\3\2\2\2\u0255\u023f\3\2\2\2\u0255\u0240\3\2\2\2\u0255" + - "\u0241\3\2\2\2\u0255\u0242\3\2\2\2\u0255\u0243\3\2\2\2\u0255\u0244\3\2" + - "\2\2\u0255\u0245\3\2\2\2\u0255\u0246\3\2\2\2\u0255\u0247\3\2\2\2\u0255" + - "\u0248\3\2\2\2\u0255\u0249\3\2\2\2\u0255\u024a\3\2\2\2\u0255\u024b\3\2" + - "\2\2\u0255\u024c\3\2\2\2\u0255\u024d\3\2\2\2\u0255\u024e\3\2\2\2\u0255" + - "\u024f\3\2\2\2\u0255\u0250\3\2\2\2\u0255\u0251\3\2\2\2\u0255\u0252\3\2" + - "\2\2\u0255\u0253\3\2\2\2\u0255\u0254\3\2\2\2\u0256\5\3\2\2\2\u0257\u0258" + - "\5\u0202\u0102\2\u0258\7\3\2\2\2\u0259\u0282\5\n\6\2\u025a\u0282\5\f\7" + - "\2\u025b\u0282\5\16\b\2\u025c\u0282\5\20\t\2\u025d\u0282\5\22\n\2\u025e" + - "\u0282\5\24\13\2\u025f\u0282\5\26\f\2\u0260\u0282\5\30\r\2\u0261\u0282" + - "\5\32\16\2\u0262\u0282\5 \21\2\u0263\u0282\5\"\22\2\u0264\u0282\5$\23" + - "\2\u0265\u0282\5&\24\2\u0266\u0282\5(\25\2\u0267\u0282\5*\26\2\u0268\u0282" + - "\5,\27\2\u0269\u0282\5.\30\2\u026a\u0282\5\60\31\2\u026b\u0282\5\62\32" + - "\2\u026c\u0282\5\64\33\2\u026d\u0282\5\66\34\2\u026e\u0282\5:\36\2\u026f" + - "\u0282\5<\37\2\u0270\u0282\5> \2\u0271\u0282\5@!\2\u0272\u0282\5D#\2\u0273" + - "\u0282\5F$\2\u0274\u0282\5H%\2\u0275\u0282\5J&\2\u0276\u0282\5L\'\2\u0277" + - "\u0282\5N(\2\u0278\u0282\5P)\2\u0279\u0282\5R*\2\u027a\u0282\5T+\2\u027b" + - "\u0282\5V,\2\u027c\u0282\5X-\2\u027d\u0282\5Z.\2\u027e\u0282\5\\/\2\u027f" + - "\u0282\5^\60\2\u0280\u0282\5`\61\2\u0281\u0259\3\2\2\2\u0281\u025a\3\2" + - "\2\2\u0281\u025b\3\2\2\2\u0281\u025c\3\2\2\2\u0281\u025d\3\2\2\2\u0281" + - "\u025e\3\2\2\2\u0281\u025f\3\2\2\2\u0281\u0260\3\2\2\2\u0281\u0261\3\2" + - "\2\2\u0281\u0262\3\2\2\2\u0281\u0263\3\2\2\2\u0281\u0264\3\2\2\2\u0281" + - "\u0265\3\2\2\2\u0281\u0266\3\2\2\2\u0281\u0267\3\2\2\2\u0281\u0268\3\2" + - "\2\2\u0281\u0269\3\2\2\2\u0281\u026a\3\2\2\2\u0281\u026b\3\2\2\2\u0281" + - "\u026c\3\2\2\2\u0281\u026d\3\2\2\2\u0281\u026e\3\2\2\2\u0281\u026f\3\2" + - "\2\2\u0281\u0270\3\2\2\2\u0281\u0271\3\2\2\2\u0281\u0272\3\2\2\2\u0281" + - "\u0273\3\2\2\2\u0281\u0274\3\2\2\2\u0281\u0275\3\2\2\2\u0281\u0276\3\2" + - "\2\2\u0281\u0277\3\2\2\2\u0281\u0278\3\2\2\2\u0281\u0279\3\2\2\2\u0281" + - "\u027a\3\2\2\2\u0281\u027b\3\2\2\2\u0281\u027c\3\2\2\2\u0281\u027d\3\2" + - "\2\2\u0281\u027e\3\2\2\2\u0281\u027f\3\2\2\2\u0281\u0280\3\2\2\2\u0282" + - "\t\3\2\2\2\u0283\u0284\7\25\2\2\u0284\u0285\7\20\2\2\u0285\u0286\5\u0202" + - "\u0102\2\u0286\u0287\7\u0300\2\2\u0287\u0288\5\u01ee\u00f8\2\u0288\u0289" + - "\7\u0301\2\2\u0289\u028a\7\u01d6\2\2\u028a\u028b\7\u0249\2\2\u028b\u028c" + - "\5\u0202\u0102\2\u028c\u02a2\3\2\2\2\u028d\u028e\7\25\2\2\u028e\u028f" + - "\7\20\2\2\u028f\u0290\5\u0202\u0102\2\u0290\u0291\7\u0300\2\2\u0291\u0292" + - "\5\u01ee\u00f8\2\u0292\u0293\7\u0301\2\2\u0293\u0294\7\u0195\2\2\u0294" + - "\u0295\7\u0249\2\2\u0295\u0296\5\u01fa\u00fe\2\u0296\u02a2\3\2\2\2\u0297" + - "\u0298\7\25\2\2\u0298\u0299\7\20\2\2\u0299\u029a\5\u0202\u0102\2\u029a" + - "\u029b\7\u0300\2\2\u029b\u029c\5\u01ee\u00f8\2\u029c\u029d\7\u0301\2\2" + - "\u029d\u029e\7\u0209\2\2\u029e\u029f\7\u01f5\2\2\u029f\u02a0\5\u0202\u0102" + - "\2\u02a0\u02a2\3\2\2\2\u02a1\u0283\3\2\2\2\u02a1\u028d\3\2\2\2\u02a1\u0297" + - "\3\2\2\2\u02a2\13\3\2\2\2\u02a3\u02a4\7\25\2\2\u02a4\u02a5\7[\2\2\u02a5" + - "\u02a6\5\u01cc\u00e7\2\u02a6\u02a7\7\u01c9\2\2\u02a7\u02a8\7\u02b9\2\2" + - "\u02a8\u02bf\3\2\2\2\u02a9\u02aa\7\25\2\2\u02aa\u02ab\7[\2\2\u02ab\u02ac" + - "\5\u01cc\u00e7\2\u02ac\u02ad\7\u01d6\2\2\u02ad\u02ae\7\u0249\2\2\u02ae" + - "\u02af\5\u0202\u0102\2\u02af\u02bf\3\2\2\2\u02b0\u02b1\7\25\2\2\u02b1" + - "\u02b2\7[\2\2\u02b2\u02b3\5\u01cc\u00e7\2\u02b3\u02b4\7\u0195\2\2\u02b4" + - "\u02b5\7\u0249\2\2\u02b5\u02b6\5\u01fa\u00fe\2\u02b6\u02bf\3\2\2\2\u02b7" + - "\u02b8\7\25\2\2\u02b8\u02b9\7[\2\2\u02b9\u02ba\5\u01cc\u00e7\2\u02ba\u02bb" + - "\7\u0209\2\2\u02bb\u02bc\7\u01f5\2\2\u02bc\u02bd\5\u0202\u0102\2\u02bd" + - "\u02bf\3\2\2\2\u02be\u02a3\3\2\2\2\u02be\u02a9\3\2\2\2\u02be\u02b0\3\2" + - "\2\2\u02be\u02b7\3\2\2\2\u02bf\r\3\2\2\2\u02c0\u02c1\7\25\2\2\u02c1\u02c2" + - "\7w\2\2\u02c2\u02c3\5\u0202\u0102\2\u02c3\u02c4\7\u01d6\2\2\u02c4\u02c5" + - "\7\u0249\2\2\u02c5\u02c6\5\u0202\u0102\2\u02c6\u02d6\3\2\2\2\u02c7\u02c8" + - "\7\25\2\2\u02c8\u02c9\7w\2\2\u02c9\u02ca\5\u0202\u0102\2\u02ca\u02cb\7" + - "\u0195\2\2\u02cb\u02cc\7\u0249\2\2\u02cc\u02cd\5\u01fa\u00fe\2\u02cd\u02d6" + - "\3\2\2\2\u02ce\u02cf\7\25\2\2\u02cf\u02d0\7w\2\2\u02d0\u02d1\5\u0202\u0102" + - "\2\u02d1\u02d2\7\u0209\2\2\u02d2\u02d3\7\u01f5\2\2\u02d3\u02d4\5\u0202" + - "\u0102\2\u02d4\u02d6\3\2\2\2\u02d5\u02c0\3\2\2\2\u02d5\u02c7\3\2\2\2\u02d5" + - "\u02ce\3\2\2\2\u02d6\17\3\2\2\2\u02d7\u02d8\5\u0206\u0104\2\u02d8\21\3" + - "\2\2\2\u02d9\u02da\5\u0206\u0104\2\u02da\23\3\2\2\2\u02db\u02dc\7\25\2" + - "\2\u02dc\u02dd\7\u00bc\2\2\u02dd\u02e3\5\u0202\u0102\2\u02de\u02df\7\u0209" + - "\2\2\u02df\u02e0\7\u009d\2\2\u02e0\u02e4\5\u01b2\u00da\2\u02e1\u02e2\7" + - "\u00be\2\2\u02e2\u02e4\7\u009d\2\2\u02e3\u02de\3\2\2\2\u02e3\u02e1\3\2" + - "\2\2\u02e4\u0328\3\2\2\2\u02e5\u02e6\7\25\2\2\u02e6\u02e7\7\u00bc\2\2" + - "\u02e7\u02e8\5\u0202\u0102\2\u02e8\u02e9\t\2\2\2\u02e9\u02ea\7\u016f\2" + - "\2\u02ea\u02eb\7\u0174\2\2\u02eb\u0328\3\2\2\2\u02ec\u02ed\7\25\2\2\u02ed" + - "\u02ee\7\u00bc\2\2\u02ee\u02ef\5\u0202\u0102\2\u02ef\u02f0\7\r\2\2\u02f0" + - "\u02f3\5\u0082B\2\u02f1\u02f2\7\u016f\2\2\u02f2\u02f4\7\u0275\2\2\u02f3" + - "\u02f1\3\2\2\2\u02f3\u02f4\3\2\2\2\u02f4\u0328\3\2\2\2\u02f5\u02f6\7\25" + - "\2\2\u02f6\u02f7\7\u00bc\2\2\u02f7\u02f8\5\u0202\u0102\2\u02f8\u02f9\7" + - "\u00be\2\2\u02f9\u02fc\7o\2\2\u02fa\u02fb\7\u02b4\2\2\u02fb\u02fd\7\u00d5" + - "\2\2\u02fc\u02fa\3\2\2\2\u02fc\u02fd\3\2\2\2\u02fd\u02fe\3\2\2\2\u02fe" + - "\u0300\5\u0202\u0102\2\u02ff\u0301\t\3\2\2\u0300\u02ff\3\2\2\2\u0300\u0301" + - "\3\2\2\2\u0301\u0328\3\2\2\2\u0302\u0303\7\25\2\2\u0303\u0304\7\u00bc" + - "\2\2\u0304\u0305\5\u0202\u0102\2\u0305\u0306\7\u01d6\2\2\u0306\u0307\7" + - "o\2\2\u0307\u0308\5\u0202\u0102\2\u0308\u0309\7\u0249\2\2\u0309\u030a" + - "\5\u0202\u0102\2\u030a\u0328\3\2\2\2\u030b\u030c\7\25\2\2\u030c\u030d" + - "\7\u00bc\2\2\u030d\u030e\5\u0202\u0102\2\u030e\u030f\7\u0276\2\2\u030f" + - "\u0310\7o\2\2\u0310\u0311\5\u0202\u0102\2\u0311\u0328\3\2\2\2\u0312\u0313" + - "\7\25\2\2\u0313\u0314\7\u00bc\2\2\u0314\u0315\5\u0202\u0102\2\u0315\u0316" + - "\7\u0195\2\2\u0316\u0317\7\u0249\2\2\u0317\u0318\5\u01fa\u00fe\2\u0318" + - "\u0328\3\2\2\2\u0319\u031a\7\25\2\2\u031a\u031b\7\u00bc\2\2\u031b\u031c" + - "\5\u0202\u0102\2\u031c\u031d\7\u01d6\2\2\u031d\u031e\7\u0249\2\2\u031e" + - "\u031f\5\u0202\u0102\2\u031f\u0328\3\2\2\2\u0320\u0321\7\25\2\2\u0321" + - "\u0322\7\u00bc\2\2\u0322\u0323\5\u0202\u0102\2\u0323\u0324\7\u0209\2\2" + - "\u0324\u0325\7\u01f5\2\2\u0325\u0326\5\u0202\u0102\2\u0326\u0328\3\2\2" + - "\2\u0327\u02db\3\2\2\2\u0327\u02e5\3\2\2\2\u0327\u02ec\3\2\2\2\u0327\u02f5" + - "\3\2\2\2\u0327\u0302\3\2\2\2\u0327\u030b\3\2\2\2\u0327\u0312\3\2\2\2\u0327" + - "\u0319\3\2\2\2\u0327\u0320\3\2\2\2\u0328\25\3\2\2\2\u0329\u032a\7\25\2" + - "\2\u032a\u032b\7\u02bc\2\2\u032b\u032c\7\u0256\2\2\u032c\u032d\5\u0202" + - "\u0102\2\u032d\u032e\7\u00b5\2\2\u032e\u034b\3\2\2\2\u032f\u0330\7\25" + - "\2\2\u0330\u0331\7\u02bc\2\2\u0331\u0332\7\u0256\2\2\u0332\u0333\5\u0202" + - "\u0102\2\u0333\u0335\7\u00c5\2\2\u0334\u0336\t\4\2\2\u0335\u0334\3\2\2" + - "\2\u0335\u0336\3\2\2\2\u0336\u034b\3\2\2\2\u0337\u0338\7\25\2\2\u0338" + - "\u0339\7\u02bc\2\2\u0339\u033a\7\u0256\2\2\u033a\u033b\5\u0202\u0102\2" + - "\u033b\u033c\7\u0195\2\2\u033c\u0340\7\u0249\2\2\u033d\u0341\5\u0202\u0102" + - "\2\u033e\u0341\7\u008f\2\2\u033f\u0341\7\u0208\2\2\u0340\u033d\3\2\2\2" + - "\u0340\u033e\3\2\2\2\u0340\u033f\3\2\2\2\u0341\u034b\3\2\2\2\u0342\u0343" + - "\7\25\2\2\u0343\u0344\7\u02bc\2\2\u0344\u0345\7\u0256\2\2\u0345\u0346" + - "\5\u0202\u0102\2\u0346\u0347\7\u01d6\2\2\u0347\u0348\7\u0249\2\2\u0348" + - "\u0349\5\u0202\u0102\2\u0349\u034b\3\2\2\2\u034a\u0329\3\2\2\2\u034a\u032f" + - "\3\2\2\2\u034a\u0337\3\2\2\2\u034a\u0342\3\2\2\2\u034b\27\3\2\2\2\u034c" + - "\u034d\7\25\2\2\u034d\u034e\7\u00d9\2\2\u034e\u034f\5\u0202\u0102\2\u034f" + - "\u0352\7\u026b\2\2\u0350\u0351\7\u0249\2\2\u0351\u0353\5\u0202\u0102\2" + - "\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353\u035c\3\2\2\2\u0354\u0355" + - "\7\25\2\2\u0355\u0356\7\u00d9\2\2\u0356\u0357\5\u0202\u0102\2\u0357\u0358" + - "\7\u0209\2\2\u0358\u0359\7\u01f5\2\2\u0359\u035a\5\u0202\u0102\2\u035a" + - "\u035c\3\2\2\2\u035b\u034c\3\2\2\2\u035b\u0354\3\2\2\2\u035c\31\3\2\2" + - "\2\u035d\u035e\5\u0206\u0104\2\u035e\33\3\2\2\2\u035f\u0361\7\r\2\2\u0360" + - "\u0362\7`\2\2\u0361\u0360\3\2\2\2\u0361\u0362\3\2\2\2\u0362\u0363\3\2" + - "\2\2\u0363\u0364\5\u020a\u0106\2\u0364\u0367\5\u01d8\u00ed\2\u0365\u0366" + - "\7Z\2\2\u0366\u0368\5\u0202\u0102\2\u0367\u0365\3\2\2\2\u0367\u0368\3" + - "\2\2\2\u0368\u036a\3\2\2\2\u0369\u036b\5\u01f2\u00fa\2\u036a\u0369\3\2" + - "\2\2\u036a\u036b\3\2\2\2\u036b\u040c\3\2\2\2\u036c\u036e\7\u00be\2\2\u036d" + - "\u036f\7`\2\2\u036e\u036d\3\2\2\2\u036e\u036f\3\2\2\2\u036f\u0372\3\2" + - "\2\2\u0370\u0371\7\u02b4\2\2\u0371\u0373\7\u00d5\2\2\u0372\u0370\3\2\2" + - "\2\u0372\u0373\3\2\2\2\u0373\u0374\3\2\2\2\u0374\u0376\5\u020a\u0106\2" + - "\u0375\u0377\t\3\2\2\u0376\u0375\3\2\2\2\u0376\u0377\3\2\2\2\u0377\u040c" + - "\3\2\2\2\u0378\u037a\7\25\2\2\u0379\u037b\7`\2\2\u037a\u0379\3\2\2\2\u037a" + - "\u037b\3\2\2\2\u037b\u037c\3\2\2\2\u037c\u037f\5\u020a\u0106\2\u037d\u037e" + - "\7\u0209\2\2\u037e\u0380\7\u0093\2\2\u037f\u037d\3\2\2\2\u037f\u0380\3" + - "\2\2\2\u0380\u0381\3\2\2\2\u0381\u0382\7\u025e\2\2\u0382\u0385\5\u01d8" + - "\u00ed\2\u0383\u0384\7Z\2\2\u0384\u0386\5\u0202\u0102\2\u0385\u0383\3" + - "\2\2\2\u0385\u0386\3\2\2\2\u0386\u040c\3\2\2\2\u0387\u0389\7\25\2\2\u0388" + - "\u038a\7`\2\2\u0389\u0388\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u038b\3\2" + - "\2\2\u038b\u038c\5\u020a\u0106\2\u038c\u038d\7\u0209\2\2\u038d\u038e\7" + - "\u009d\2\2\u038e\u038f\5\u01b2\u00da\2\u038f\u040c\3\2\2\2\u0390\u0392" + - "\7\25\2\2\u0391\u0393\7`\2\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2\2\2\u0393" + - "\u0394\3\2\2\2\u0394\u0395\5\u020a\u0106\2\u0395\u0396\7\u00be\2\2\u0396" + - "\u0397\7\u009d\2\2\u0397\u040c\3\2\2\2\u0398\u039a\7\25\2\2\u0399\u039b" + - "\7`\2\2\u039a\u0399\3\2\2\2\u039a\u039b\3\2\2\2\u039b\u039c\3\2\2\2\u039c" + - "\u039d\5\u020a\u0106\2\u039d\u039e\t\2\2\2\u039e\u039f\7\u016f\2\2\u039f" + - "\u03a0\7\u0174\2\2\u03a0\u040c\3\2\2\2\u03a1\u03a3\7\25\2\2\u03a2\u03a4" + - "\7`\2\2\u03a3\u03a2\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\3\2\2\2\u03a5" + - "\u03a6\5\u020a\u0106\2\u03a6\u03a7\7\u0209\2\2\u03a7\u03a8\7\u0226\2\2" + - "\u03a8\u03a9\7\u011d\2\2\u03a9\u040c\3\2\2\2\u03aa\u03ac\7\25\2\2\u03ab" + - "\u03ad\7`\2\2\u03ac\u03ab\3\2\2\2\u03ac\u03ad\3\2\2\2\u03ad\u03ae\3\2" + - "\2\2\u03ae\u03af\5\u020a\u0106\2\u03af\u03b0\7\u0209\2\2\u03b0\u03b1\7" + - "\u0300\2\2\u03b1\u03b2\5\u01d4\u00eb\2\u03b2\u03b3\7\u0301\2\2\u03b3\u040c" + - "\3\2\2\2\u03b4\u03b6\7\25\2\2\u03b5\u03b7\7`\2\2\u03b6\u03b5\3\2\2\2\u03b6" + - "\u03b7\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\5\u020a\u0106\2\u03b9\u03ba" + - "\7\u01da\2\2\u03ba\u03bb\7\u0300\2\2\u03bb\u03bc\5\u01d0\u00e9\2\u03bc" + - "\u03bd\7\u0301\2\2\u03bd\u040c\3\2\2\2\u03be\u03c0\7\25\2\2\u03bf\u03c1" + - "\7`\2\2\u03c0\u03bf\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2" + - "\u03c3\5\u020a\u0106\2\u03c3\u03c4\7\u0209\2\2\u03c4\u03c5\7\u022b\2\2" + - "\u03c5\u03c6\t\5\2\2\u03c6\u040c\3\2\2\2\u03c7\u03c9\7\25\2\2\u03c8\u03ca" + - "\7`\2\2\u03c9\u03c8\3\2\2\2\u03c9\u03ca\3\2\2\2\u03ca\u03cb\3\2\2\2\u03cb" + - "\u03cc\5\u020a\u0106\2\u03cc\u03ce\7\u0188\2\2\u03cd\u03cf\t\6\2\2\u03ce" + - "\u03cd\3\2\2\2\u03ce\u03cf\3\2\2\2\u03cf\u040c\3\2\2\2\u03d0\u03d1\7\r" + - "\2\2\u03d1\u03d4\5\u01f8\u00fd\2\u03d2\u03d3\7\u016f\2\2\u03d3\u03d5\7" + - "\u0275\2\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u040c\3\2\2\2" + - "\u03d6\u03d7\7\u0276\2\2\u03d7\u03d8\7o\2\2\u03d8\u040c\5\u0204\u0103" + - "\2\u03d9\u03da\7\u00be\2\2\u03da\u03dd\7o\2\2\u03db\u03dc\7\u02b4\2\2" + - "\u03dc\u03de\7\u00d5\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3\2\2\2\u03de" + - "\u03df\3\2\2\2\u03df\u03e1\5\u0204\u0103\2\u03e0\u03e2\t\3\2\2\u03e1\u03e0" + - "\3\2\2\2\u03e1\u03e2\3\2\2\2\u03e2\u040c\3\2\2\2\u03e3\u03e4\7\u00b5\2" + - "\2\u03e4\u03e8\7\u0256\2\2\u03e5\u03e9\5\u0204\u0103\2\u03e6\u03e9\7\22" + - "\2\2\u03e7\u03e9\7\u026e\2\2\u03e8\u03e5\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e8" + - "\u03e7\3\2\2\2\u03e8\u03e9\3\2\2\2\u03e9\u040c\3\2\2\2\u03ea\u03eb\7\u00c5" + - "\2\2\u03eb\u03ef\7\u0256\2\2\u03ec\u03f0\5\u0204\u0103\2\u03ed\u03f0\7" + - "\22\2\2\u03ee\u03f0\7\u026e\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2" + - "\2\u03ef\u03ee\3\2\2\2\u03ef\u03f0\3\2\2\2\u03f0\u040c\3\2\2\2\u03f1\u03f2" + - "\7\u00c5\2\2\u03f2\u03f3\7\u01d9\2\2\u03f3\u03f4\7\u0256\2\2\u03f4\u040c" + - "\5\u0204\u0103\2\u03f5\u03f6\7\u00c5\2\2\u03f6\u03f7\7\26\2\2\u03f7\u03f8" + - "\7\u0256\2\2\u03f8\u040c\5\u0204\u0103\2\u03f9\u03fa\7\u0209\2\2\u03fa" + - "\u03fb\7\u0288\2\2\u03fb\u040c\7\u0180\2\2\u03fc\u03fd\7\u0209\2\2\u03fd" + - "\u03fe\7\u028a\2\2\u03fe\u040c\7\u0180\2\2\u03ff\u0400\7\u0295\2\2\u0400" + - "\u040c\5\u0202\u0102\2\u0401\u0402\7\u0169\2\2\u0402\u0403\7\u0295\2\2" + - "\u0403\u040c\5\u0202\u0102\2\u0404\u0405\7\u0195\2\2\u0405\u0406\7\u0249" + - "\2\2\u0406\u040c\5\u01fa\u00fe\2\u0407\u0409\7\u0188\2\2\u0408\u040a\t" + - "\6\2\2\u0409\u0408\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040c\3\2\2\2\u040b" + - "\u035f\3\2\2\2\u040b\u036c\3\2\2\2\u040b\u0378\3\2\2\2\u040b\u0387\3\2" + - "\2\2\u040b\u0390\3\2\2\2\u040b\u0398\3\2\2\2\u040b\u03a1\3\2\2\2\u040b" + - "\u03aa\3\2\2\2\u040b\u03b4\3\2\2\2\u040b\u03be\3\2\2\2\u040b\u03c7\3\2" + - "\2\2\u040b\u03d0\3\2\2\2\u040b\u03d6\3\2\2\2\u040b\u03d9\3\2\2\2\u040b" + - "\u03e3\3\2\2\2\u040b\u03ea\3\2\2\2\u040b\u03f1\3\2\2\2\u040b\u03f5\3\2" + - "\2\2\u040b\u03f9\3\2\2\2\u040b\u03fc\3\2\2\2\u040b\u03ff\3\2\2\2\u040b" + - "\u0401\3\2\2\2\u040b\u0404\3\2\2\2\u040b\u0407\3\2\2\2\u040c\35\3\2\2" + - "\2\u040d\u0412\5\34\17\2\u040e\u040f\7\u02fa\2\2\u040f\u0411\5\34\17\2" + - "\u0410\u040e\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0410\3\2\2\2\u0412\u0413" + - "\3\2\2\2\u0413\37\3\2\2\2\u0414\u0412\3\2\2\2\u0415\u0416\7\25\2\2\u0416" + - "\u0417\7\u00e7\2\2\u0417\u041a\7\u0239\2\2\u0418\u0419\7\u02b4\2\2\u0419" + - "\u041b\7\u00d5\2\2\u041a\u0418\3\2\2\2\u041a\u041b\3\2\2\2\u041b\u041d" + - "\3\2\2\2\u041c\u041e\7\u0183\2\2\u041d\u041c\3\2\2\2\u041d\u041e\3\2\2" + - "\2\u041e\u041f\3\2\2\2\u041f\u0421\5\u0202\u0102\2\u0420\u0422\7\u02ff" + - "\2\2\u0421\u0420\3\2\2\2\u0421\u0422\3\2\2\2\u0422\u0423\3\2\2\2\u0423" + - "\u0424\5\36\20\2\u0424\u0454\3\2\2\2\u0425\u0426\7\25\2\2\u0426\u0427" + - "\7\u00e7\2\2\u0427\u042a\7\u0239\2\2\u0428\u0429\7\u02b4\2\2\u0429\u042b" + - "\7\u00d5\2\2\u042a\u0428\3\2\2\2\u042a\u042b\3\2\2\2\u042b\u042d\3\2\2" + - "\2\u042c\u042e\7\u0183\2\2\u042d\u042c\3\2\2\2\u042d\u042e\3\2\2\2\u042e" + - "\u042f\3\2\2\2\u042f\u0431\5\u0202\u0102\2\u0430\u0432\7\u02ff\2\2\u0431" + - "\u0430\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u0435\7\u01d6" + - "\2\2\u0434\u0436\7`\2\2\u0435\u0434\3\2\2\2\u0435\u0436\3\2\2\2\u0436" + - "\u0437\3\2\2\2\u0437\u0438\5\u020a\u0106\2\u0438\u0439\7\u0249\2\2\u0439" + - "\u043a\5\u0202\u0102\2\u043a\u0454\3\2\2\2\u043b\u043c\7\25\2\2\u043c" + - "\u043d\7\u00e7\2\2\u043d\u0440\7\u0239\2\2\u043e\u043f\7\u02b4\2\2\u043f" + - "\u0441\7\u00d5\2\2\u0440\u043e\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442" + - "\3\2\2\2\u0442\u0443\5\u0202\u0102\2\u0443\u0444\7\u01d6\2\2\u0444\u0445" + - "\7\u0249\2\2\u0445\u0446\5\u0202\u0102\2\u0446\u0454\3\2\2\2\u0447\u0448" + - "\7\25\2\2\u0448\u0449\7\u00e7\2\2\u0449\u044c\7\u0239\2\2\u044a\u044b" + - "\7\u02b4\2\2\u044b\u044d\7\u00d5\2\2\u044c\u044a\3\2\2\2\u044c\u044d\3" + - "\2\2\2\u044d\u044e\3\2\2\2\u044e\u044f\5\u0202\u0102\2\u044f\u0450\7\u0209" + - "\2\2\u0450\u0451\7\u01f5\2\2\u0451\u0452\5\u0202\u0102\2\u0452\u0454\3" + - "\2\2\2\u0453\u0415\3\2\2\2\u0453\u0425\3\2\2\2\u0453\u043b\3\2\2\2\u0453" + - "\u0447\3\2\2\2\u0454!\3\2\2\2\u0455\u0456\5\u0206\u0104\2\u0456#\3\2\2" + - "\2\u0457\u0458\7\25\2\2\u0458\u0459\7\u00fc\2\2\u0459\u045a\5\u01fa\u00fe" + - "\2\u045a\u045b\7\r\2\2\u045b\u045c\7\u026e\2\2\u045c\u045d\5\u01d0\u00e9" + - "\2\u045d\u046d\3\2\2\2\u045e\u045f\7\25\2\2\u045f\u0460\7\u00fc\2\2\u0460" + - "\u0461\5\u01fa\u00fe\2\u0461\u0462\7\u00be\2\2\u0462\u0463\7\u026e\2\2" + - "\u0463\u0464\5\u01d0\u00e9\2\u0464\u046d\3\2\2\2\u0465\u0466\7\25\2\2" + - "\u0466\u0467\7\u00fc\2\2\u0467\u0468\5\u0202\u0102\2\u0468\u0469\7\u01d6" + - "\2\2\u0469\u046a\7\u0249\2\2\u046a\u046b\5\u0202\u0102\2\u046b\u046d\3" + - "\2\2\2\u046c\u0457\3\2\2\2\u046c\u045e\3\2\2\2\u046c\u0465\3\2\2\2\u046d" + - "%\3\2\2\2\u046e\u046f\7\25\2\2\u046f\u0472\7\u010e\2\2\u0470\u0471\7\u02b4" + - "\2\2\u0471\u0473\7\u00d5\2\2\u0472\u0470\3\2\2\2\u0472\u0473\3\2\2\2\u0473" + - "\u0474\3\2\2\2\u0474\u0475\5\u0202\u0102\2\u0475\u0476\7\u01d6\2\2\u0476" + - "\u0477\7\u0249\2\2\u0477\u0478\5\u0202\u0102\2\u0478\u04b5\3\2\2\2\u0479" + - "\u047a\7\25\2\2\u047a\u047d\7\u010e\2\2\u047b\u047c\7\u02b4\2\2\u047c" + - "\u047e\7\u00d5\2\2\u047d\u047b\3\2\2\2\u047d\u047e\3\2\2\2\u047e\u047f" + - "\3\2\2\2\u047f\u0480\5\u0202\u0102\2\u0480\u0481\7\u0209\2\2\u0481\u0482" + - "\7\u023c\2\2\u0482\u0483\5\u0202\u0102\2\u0483\u04b5\3\2\2\2\u0484\u0485" + - "\7\25\2\2\u0485\u0486\7\u010e\2\2\u0486\u0487\5\u0202\u0102\2\u0487\u0488" + - "\7\u00a9\2\2\u0488\u0489\7\u0182\2\2\u0489\u048a\7\u00d9\2\2\u048a\u048b" + - "\5\u0202\u0102\2\u048b\u04b5\3\2\2\2\u048c\u048d\7\25\2\2\u048d\u0490" + - "\7\u010e\2\2\u048e\u048f\7\u02b4\2\2\u048f\u0491\7\u00d5\2\2\u0490\u048e" + - "\3\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\5\u0202\u0102" + - "\2\u0493\u0494\7\u0209\2\2\u0494\u0495\7\u0300\2\2\u0495\u0496\5\u01d4" + - "\u00eb\2\u0496\u0497\7\u0301\2\2\u0497\u04b5\3\2\2\2\u0498\u0499\7\25" + - "\2\2\u0499\u049c\7\u010e\2\2\u049a\u049b\7\u02b4\2\2\u049b\u049d\7\u00d5" + - "\2\2\u049c\u049a\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2\2\u049e" + - "\u049f\7\u01da\2\2\u049f\u04a0\7\u0300\2\2\u04a0\u04a1\5\u01d0\u00e9\2" + - "\u04a1\u04a2\7\u0301\2\2\u04a2\u04b5\3\2\2\2\u04a3\u04a4\7\25\2\2\u04a4" + - "\u04a5\7\u010e\2\2\u04a5\u04a6\7\22\2\2\u04a6\u04a7\7\u010b\2\2\u04a7" + - "\u04a8\7\u023c\2\2\u04a8\u04ac\5\u0202\u0102\2\u04a9\u04aa\7\u02d0\2\2" + - "\u04aa\u04ab\78\2\2\u04ab\u04ad\5\u01d0\u00e9\2\u04ac\u04a9\3\2\2\2\u04ac" + - "\u04ad\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae\u04af\7\u0209\2\2\u04af\u04b0" + - "\7\u023c\2\2\u04b0\u04b2\5\u0202\u0102\2\u04b1\u04b3\7\u0173\2\2\u04b2" + - "\u04b1\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b5\3\2\2\2\u04b4\u046e\3\2" + - "\2\2\u04b4\u0479\3\2\2\2\u04b4\u0484\3\2\2\2\u04b4\u048c\3\2\2\2\u04b4" + - "\u0498\3\2\2\2\u04b4\u04a3\3\2\2\2\u04b5\'\3\2\2\2\u04b6\u04b8\7\25\2" + - "\2\u04b7\u04b9\7\u01b9\2\2\u04b8\u04b7\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9" + - "\u04ba\3\2\2\2\u04ba\u04bb\7\u012d\2\2\u04bb\u04bc\5\u0202\u0102\2\u04bc" + - "\u04bd\7\u01d6\2\2\u04bd\u04be\7\u0249\2\2\u04be\u04bf\5\u0202\u0102\2" + - "\u04bf\u04ce\3\2\2\2\u04c0\u04c2\7\25\2\2\u04c1\u04c3\7\u01b9\2\2\u04c2" + - "\u04c1\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4\u04c5\7\u012d" + - "\2\2\u04c5\u04c6\5\u0202\u0102\2\u04c6\u04c7\7\u0195\2\2\u04c7\u04cb\7" + - "\u0249\2\2\u04c8\u04cc\5\u0202\u0102\2\u04c9\u04cc\7\u008f\2\2\u04ca\u04cc" + - "\7\u0208\2\2\u04cb\u04c8\3\2\2\2\u04cb\u04c9\3\2\2\2\u04cb\u04ca\3\2\2" + - "\2\u04cc\u04ce\3\2\2\2\u04cd\u04b6\3\2\2\2\u04cd\u04c0\3\2\2\2\u04ce)" + - "\3\2\2\2\u04cf\u04d0\7\25\2\2\u04d0\u04d1\7\u012e\2\2\u04d1\u04d2\7\u017a" + - "\2\2\u04d2\u04d3\7\u0307\2\2\u04d3\u04d4\7\u0195\2\2\u04d4\u04d8\7\u0249" + - "\2\2\u04d5\u04d9\5\u0202\u0102\2\u04d6\u04d9\7\u008f\2\2\u04d7\u04d9\7" + - "\u0208\2\2\u04d8\u04d5\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8\u04d7\3\2\2\2" + - "\u04d9+\3\2\2\2\u04da\u04db\5\u0206\u0104\2\u04db-\3\2\2\2\u04dc\u04dd" + - "\5\u0206\u0104\2\u04dd/\3\2\2\2\u04de\u04df\7\25\2\2\u04df\u04e0\7\u0186" + - "\2\2\u04e0\u04e1\7S\2\2\u04e1\u04e2\5\u0202\u0102\2\u04e2\u04e3\7\u0273" + - "\2\2\u04e3\u04e4\5\u01dc\u00ef\2\u04e4\u04e5\7\u01d6\2\2\u04e5\u04e6\7" + - "\u0249\2\2\u04e6\u04e7\5\u0202\u0102\2\u04e7\u0500\3\2\2\2\u04e8\u04e9" + - "\7\25\2\2\u04e9\u04ea\7\u0186\2\2\u04ea\u04eb\7S\2\2\u04eb\u04ec\5\u0202" + - "\u0102\2\u04ec\u04ed\7\u0273\2\2\u04ed\u04ee\5\u01dc\u00ef\2\u04ee\u04ef" + - "\7\u0195\2\2\u04ef\u04f3\7\u0249\2\2\u04f0\u04f4\5\u0202\u0102\2\u04f1" + - "\u04f4\7\u008f\2\2\u04f2\u04f4\7\u0208\2\2\u04f3\u04f0\3\2\2\2\u04f3\u04f1" + - "\3\2\2\2\u04f3\u04f2\3\2\2\2\u04f4\u0500\3\2\2\2\u04f5\u04f6\7\25\2\2" + - "\u04f6\u04f7\7\u0186\2\2\u04f7\u04f8\7S\2\2\u04f8\u04f9\5\u0202\u0102" + - "\2\u04f9\u04fa\7\u0273\2\2\u04fa\u04fb\5\u01dc\u00ef\2\u04fb\u04fc\7\u0209" + - "\2\2\u04fc\u04fd\7\u01f5\2\2\u04fd\u04fe\5\u0202\u0102\2\u04fe\u0500\3" + - "\2\2\2\u04ff\u04de\3\2\2\2\u04ff\u04e8\3\2\2\2\u04ff\u04f5\3\2\2\2\u0500" + - "\61\3\2\2\2\u0501\u0502\5\u0206\u0104\2\u0502\63\3\2\2\2\u0503\u0504\7" + - "\25\2\2\u0504\u0505\7\u02cf\2\2\u0505\u0506\5\u0202\u0102\2\u0506\u0507" + - "\7\u0182\2\2\u0507\u0508\5\u0202\u0102\2\u0508\u0509\7\u01d6\2\2\u0509" + - "\u050a\7\u0249\2\2\u050a\u050b\5\u0202\u0102\2\u050b\u051f\3\2\2\2\u050c" + - "\u050d\7\25\2\2\u050d\u050e\7\u02cf\2\2\u050e\u050f\5\u0202\u0102\2\u050f" + - "\u0510\7\u0182\2\2\u0510\u0513\5\u0202\u0102\2\u0511\u0512\7\u0249\2\2" + - "\u0512\u0514\5\u01fc\u00ff\2\u0513\u0511\3\2\2\2\u0513\u0514\3\2\2\2\u0514" + - "\u0517\3\2\2\2\u0515\u0516\7\u0273\2\2\u0516\u0518\5\u01ec\u00f7\2\u0517" + - "\u0515\3\2\2\2\u0517\u0518\3\2\2\2\u0518\u051c\3\2\2\2\u0519\u051a\7\u0288" + - "\2\2\u051a\u051b\7P\2\2\u051b\u051d\5\u01ec\u00f7\2\u051c\u0519\3\2\2" + - "\2\u051c\u051d\3\2\2\2\u051d\u051f\3\2\2\2\u051e\u0503\3\2\2\2\u051e\u050c" + - "\3\2\2\2\u051f\65\3\2\2\2\u0520\u0521\7\25\2\2\u0521\u0522\7\u01bc\2\2" + - "\u0522\u0523\5\u0202\u0102\2\u0523\u0524\7\r\2\2\u0524\u0526\7\u0239\2" + - "\2\u0525\u0527\7\u0183\2\2\u0526\u0525\3\2\2\2\u0526\u0527\3\2\2\2\u0527" + - "\u0528\3\2\2\2\u0528\u0529\5\u01d0\u00e9\2\u0529\u0555\3\2\2\2\u052a\u052b" + - "\7\25\2\2\u052b\u052c\7\u01bc\2\2\u052c\u052d\5\u0202\u0102\2\u052d\u052e" + - "\7\u0209\2\2\u052e\u0530\7\u0239\2\2\u052f\u0531\7\u0183\2\2\u0530\u052f" + - "\3\2\2\2\u0530\u0531\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0533\5\u01d0\u00e9" + - "\2\u0533\u0555\3\2\2\2\u0534\u0535\7\25\2\2\u0535\u0536\7\u01bc\2\2\u0536" + - "\u0537\5\u0202\u0102\2\u0537\u0538\7\u00be\2\2\u0538\u053a\7\u0239\2\2" + - "\u0539\u053b\7\u0183\2\2\u053a\u0539\3\2\2\2\u053a\u053b\3\2\2\2\u053b" + - "\u053c\3\2\2\2\u053c\u053d\5\u01d0\u00e9\2\u053d\u0555\3\2\2\2\u053e\u053f" + - "\7\25\2\2\u053f\u0540\7\u01bc\2\2\u0540\u0541\5\u0202\u0102\2\u0541\u0542" + - "\7\u0209\2\2\u0542\u0543\7\u0300\2\2\u0543\u0544\5\u01d4\u00eb\2\u0544" + - "\u0545\7\u0301\2\2\u0545\u0555\3\2\2\2\u0546\u0547\7\25\2\2\u0547\u0548" + - "\7\u01bc\2\2\u0548\u0549\5\u0202\u0102\2\u0549\u054a\7\u0195\2\2\u054a" + - "\u054b\7\u0249\2\2\u054b\u054c\5\u01fa\u00fe\2\u054c\u0555\3\2\2\2\u054d" + - "\u054e\7\25\2\2\u054e\u054f\7\u01bc\2\2\u054f\u0550\5\u0202\u0102\2\u0550" + - "\u0551\7\u01d6\2\2\u0551\u0552\7\u0249\2\2\u0552\u0553\5\u01cc\u00e7\2" + - "\u0553\u0555\3\2\2\2\u0554\u0520\3\2\2\2\u0554\u052a\3\2\2\2\u0554\u0534" + - "\3\2\2\2\u0554\u053e\3\2\2\2\u0554\u0546\3\2\2\2\u0554\u054d\3\2\2\2\u0555" + - "\67\3\2\2\2\u0556\u0570\7\u0291\2\2\u0557\u0570\7\u0292\2\2\u0558\u0570" + - "\7\u0081\2\2\u0559\u0570\7\u016a\2\2\u055a\u0570\7\u0293\2\2\u055b\u0570" + - "\7\u0294\2\2\u055c\u0570\7\u0295\2\2\u055d\u0570\7\u0296\2\2\u055e\u0570" + - "\7\u0297\2\2\u055f\u0570\7\u0298\2\2\u0560\u0570\7\u0299\2\2\u0561\u0570" + - "\7\u029a\2\2\u0562\u0570\7\u029b\2\2\u0563\u0570\7\u029c\2\2\u0564\u0565" + - "\7m\2\2\u0565\u0566\7\u0138\2\2\u0566\u0570\7\u011d\2\2\u0567\u0569\7" + - "\u00c7\2\2\u0568\u0567\3\2\2\2\u0568\u0569\3\2\2\2\u0569\u056a\3\2\2\2" + - "\u056a\u056b\7\u01a3\2\2\u056b\u0570\7\u030a\2\2\u056c\u056d\7\u0275\2" + - "\2\u056d\u056e\7\u026a\2\2\u056e\u0570\7\u030a\2\2\u056f\u0556\3\2\2\2" + - "\u056f\u0557\3\2\2\2\u056f\u0558\3\2\2\2\u056f\u0559\3\2\2\2\u056f\u055a" + - "\3\2\2\2\u056f\u055b\3\2\2\2\u056f\u055c\3\2\2\2\u056f\u055d\3\2\2\2\u056f" + - "\u055e\3\2\2\2\u056f\u055f\3\2\2\2\u056f\u0560\3\2\2\2\u056f\u0561\3\2" + - "\2\2\u056f\u0562\3\2\2\2\u056f\u0563\3\2\2\2\u056f\u0564\3\2\2\2\u056f" + - "\u0568\3\2\2\2\u056f\u056c\3\2\2\2\u05709\3\2\2\2\u0571\u0572\7\25\2\2" + - "\u0572\u0573\7\u01e7\2\2\u0573\u0575\5\u01fa\u00fe\2\u0574\u0576\7\u0288" + - "\2\2\u0575\u0574\3\2\2\2\u0575\u0576\3\2\2\2\u0576\u0578\3\2\2\2\u0577" + - "\u0579\58\35\2\u0578\u0577\3\2\2\2\u0579\u057a\3\2\2\2\u057a\u0578\3\2" + - "\2\2\u057a\u057b\3\2\2\2\u057b\u05c0\3\2\2\2\u057c\u057d\7\25\2\2\u057d" + - "\u057e\7\u01e7\2\2\u057e\u057f\5\u01cc\u00e7\2\u057f\u0580\7\u01d6\2\2" + - "\u0580\u0581\7\u0249\2\2\u0581\u0582\5\u01cc\u00e7\2\u0582\u05c0\3\2\2" + - "\2\u0583\u0584\7\25\2\2\u0584\u0587\7\u01e7\2\2\u0585\u0588\5\u01fa\u00fe" + - "\2\u0586\u0588\7\22\2\2\u0587\u0585\3\2\2\2\u0587\u0586\3\2\2\2\u0588" + - "\u058c\3\2\2\2\u0589\u058a\7\u010b\2\2\u058a\u058b\7\u0094\2\2\u058b\u058d" + - "\5\u01cc\u00e7\2\u058c\u0589\3\2\2\2\u058c\u058d\3\2\2\2\u058d\u058e\3" + - "\2\2\2\u058e\u058f\7\u0209\2\2\u058f\u0590\5\u0202\u0102\2\u0590\u0593" + - "\t\7\2\2\u0591\u0594\5\u01fe\u0100\2\u0592\u0594\7\u009d\2\2\u0593\u0591" + - "\3\2\2\2\u0593\u0592\3\2\2\2\u0594\u05c0\3\2\2\2\u0595\u0596\7\25\2\2" + - "\u0596\u0599\7\u01e7\2\2\u0597\u059a\5\u01fa\u00fe\2\u0598\u059a\7\22" + - "\2\2\u0599\u0597\3\2\2\2\u0599\u0598\3\2\2\2\u059a\u059e\3\2\2\2\u059b" + - "\u059c\7\u010b\2\2\u059c\u059d\7\u0094\2\2\u059d\u059f\5\u01cc\u00e7\2" + - "\u059e\u059b\3\2\2\2\u059e\u059f\3\2\2\2\u059f\u05a0\3\2\2\2\u05a0\u05a1" + - "\7\u0209\2\2\u05a1\u05a2\5\u0202\u0102\2\u05a2\u05a3\7\u00ee\2\2\u05a3" + - "\u05a4\7\u0087\2\2\u05a4\u05c0\3\2\2\2\u05a5\u05a6\7\25\2\2\u05a6\u05a9" + - "\7\u01e7\2\2\u05a7\u05aa\5\u01fa\u00fe\2\u05a8\u05aa\7\22\2\2\u05a9\u05a7" + - "\3\2\2\2\u05a9\u05a8\3\2\2\2\u05aa\u05ae\3\2\2\2\u05ab\u05ac\7\u010b\2" + - "\2\u05ac\u05ad\7\u0094\2\2\u05ad\u05af\5\u01cc\u00e7\2\u05ae\u05ab\3\2" + - "\2\2\u05ae\u05af\3\2\2\2\u05af\u05b0\3\2\2\2\u05b0\u05b1\7\u01da\2\2\u05b1" + - "\u05c0\5\u0202\u0102\2\u05b2\u05b3\7\25\2\2\u05b3\u05b6\7\u01e7\2\2\u05b4" + - "\u05b7\5\u01fa\u00fe\2\u05b5\u05b7\7\22\2\2\u05b6\u05b4\3\2\2\2\u05b6" + - "\u05b5\3\2\2\2\u05b7\u05bb\3\2\2\2\u05b8\u05b9\7\u010b\2\2\u05b9\u05ba" + - "\7\u0094\2\2\u05ba\u05bc\5\u01cc\u00e7\2\u05bb\u05b8\3\2\2\2\u05bb\u05bc" + - "\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05be\7\u01da\2\2\u05be\u05c0\7\22" + - "\2\2\u05bf\u0571\3\2\2\2\u05bf\u057c\3\2\2\2\u05bf\u0583\3\2\2\2\u05bf" + - "\u0595\3\2\2\2\u05bf\u05a5\3\2\2\2\u05bf\u05b2\3\2\2\2\u05c0;\3\2\2\2" + - "\u05c1\u05c2\7\25\2\2\u05c2\u05c3\7\u01f2\2\2\u05c3\u05c4\5\u01cc\u00e7" + - "\2\u05c4\u05c5\7\u0182\2\2\u05c5\u05c6\5\u0202\u0102\2\u05c6\u05c7\7\u01d6" + - "\2\2\u05c7\u05c8\7\u0249\2\2\u05c8\u05c9\5\u01cc\u00e7\2\u05c9=\3\2\2" + - "\2\u05ca\u05cb\7\25\2\2\u05cb\u05cc\7\u01f5\2\2\u05cc\u05cd\5\u0202\u0102" + - "\2\u05cd\u05ce\7\u01d6\2\2\u05ce\u05cf\7\u0249\2\2\u05cf\u05d0\5\u0202" + - "\u0102\2\u05d0\u05dc\3\2\2\2\u05d1\u05d2\7\25\2\2\u05d2\u05d3\7\u01f5" + - "\2\2\u05d3\u05d4\5\u0202\u0102\2\u05d4\u05d5\7\u0195\2\2\u05d5\u05d9\7" + - "\u0249\2\2\u05d6\u05da\5\u0202\u0102\2\u05d7\u05da\7\u008f\2\2\u05d8\u05da" + - "\7\u0208\2\2\u05d9\u05d6\3\2\2\2\u05d9\u05d7\3\2\2\2\u05d9\u05d8\3\2\2" + - "\2\u05da\u05dc\3\2\2\2\u05db\u05ca\3\2\2\2\u05db\u05d1\3\2\2\2\u05dc?" + - "\3\2\2\2\u05dd\u05de\7\25\2\2\u05de\u05e1\7\u0203\2"; - private static final String _serializedATNSegment1 = - "\2\u05df\u05e0\7\u02b4\2\2\u05e0\u05e2\7\u00d5\2\2\u05e1\u05df\3\2\2\2" + - "\u05e1\u05e2\3\2\2\2\u05e2\u05e3\3\2\2\2\u05e3\u05e4\5\u01cc\u00e7\2\u05e4" + - "A\3\2\2\2\u05e5\u05e7\t\6\2\2\u05e6\u05e5\3\2\2\2\u05e6\u05e7\3\2\2\2" + - "\u05e7\u05e8\3\2\2\2\u05e8\u05ea\5\u0202\u0102\2\u05e9\u05eb\5\u01fe\u0100" + - "\2\u05ea\u05e9\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05f6\3\2\2\2\u05ec\u05ee" + - "\7\u02fa\2\2\u05ed\u05ef\t\6\2\2\u05ee\u05ed\3\2\2\2\u05ee\u05ef\3\2\2" + - "\2\u05ef\u05f0\3\2\2\2\u05f0\u05f2\5\u0202\u0102\2\u05f1\u05f3\5\u01fe" + - "\u0100\2\u05f2\u05f1\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3\u05f5\3\2\2\2\u05f4" + - "\u05ec\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6\u05f4\3\2\2\2\u05f6\u05f7\3\2" + - "\2\2\u05f7C\3\2\2\2\u05f8\u05f6\3\2\2\2\u05f9\u05fa\7\25\2\2\u05fa\u05fb" + - "\7\u02be\2\2\u05fb\u0607\5\u0202\u0102\2\u05fc\u05fd\7\u02b9\2\2\u05fd" + - "\u0608\7\u030a\2\2\u05fe\u05ff\7\u02b9\2\2\u05ff\u0601\7\u030a\2\2\u0600" + - "\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601\u0602\3\2\2\2\u0602\u0603\7\u0188" + - "\2\2\u0603\u0604\7\u0300\2\2\u0604\u0605\5B\"\2\u0605\u0606\7\u0301\2" + - "\2\u0606\u0608\3\2\2\2\u0607\u05fc\3\2\2\2\u0607\u0600\3\2\2\2\u0608\u0618" + - "\3\2\2\2\u0609\u060a\7\25\2\2\u060a\u060b\7\u02be\2\2\u060b\u060c\5\u0202" + - "\u0102\2\u060c\u060d\7\u0195\2\2\u060d\u060e\7\u0249\2\2\u060e\u060f\5" + - "\u01fa\u00fe\2\u060f\u0618\3\2\2\2\u0610\u0611\7\25\2\2\u0611\u0612\7" + - "\u02be\2\2\u0612\u0613\5\u0202\u0102\2\u0613\u0614\7\u01d6\2\2\u0614\u0615" + - "\7\u0249\2\2\u0615\u0616\5\u01cc\u00e7\2\u0616\u0618\3\2\2\2\u0617\u05f9" + - "\3\2\2\2\u0617\u0609\3\2\2\2\u0617\u0610\3\2\2\2\u0618E\3\2\2\2\u0619" + - "\u061a\7\25\2\2\u061a\u061b\7\u0226\2\2\u061b\u061c\5\u0202\u0102\2\u061c" + - "\u061d\7\u0195\2\2\u061d\u0621\7\u0249\2\2\u061e\u0622\5\u0202\u0102\2" + - "\u061f\u0622\7\u008f\2\2\u0620\u0622\7\u0208\2\2\u0621\u061e\3\2\2\2\u0621" + - "\u061f\3\2\2\2\u0621\u0620\3\2\2\2\u0622\u0632\3\2\2\2\u0623\u0624\7\25" + - "\2\2\u0624\u0625\7\u0226\2\2\u0625\u0626\5\u0202\u0102\2\u0626\u0627\7" + - "\u01d6\2\2\u0627\u0628\7\u0249\2\2\u0628\u0629\5\u0202\u0102\2\u0629\u0632" + - "\3\2\2\2\u062a\u062b\7\25\2\2\u062b\u062c\7\u0226\2\2\u062c\u062d\5\u0202" + - "\u0102\2\u062d\u062e\7\u0209\2\2\u062e\u062f\7\u01f5\2\2\u062f\u0630\5" + - "\u0202\u0102\2\u0630\u0632\3\2\2\2\u0631\u0619\3\2\2\2\u0631\u0623\3\2" + - "\2\2\u0631\u062a\3\2\2\2\u0632G\3\2\2\2\u0633\u0634\7\25\2\2\u0634\u0635" + - "\7\u0232\2\2\u0635\u0636\5\u0202\u0102\2\u0636\u0637\7m\2\2\u0637\u0638" + - "\5\u01fe\u0100\2\u0638\u0673\3\2\2\2\u0639\u063a\7\25\2\2\u063a\u063b" + - "\7\u0232\2\2\u063b\u063c\5\u0202\u0102\2\u063c\u063d\7\u0209\2\2\u063d" + - "\u063e\7\u01bc\2\2\u063e\u0644\5\u01ce\u00e8\2\u063f\u0640\7\u0288\2\2" + - "\u0640\u0641\7\u0300\2\2\u0641\u0642\5\u01d4\u00eb\2\u0642\u0643\7\u0301" + - "\2\2\u0643\u0645\3\2\2\2\u0644\u063f\3\2\2\2\u0644\u0645\3\2\2\2\u0645" + - "\u0673\3\2\2\2\u0646\u0647\7\25\2\2\u0647\u0648\7\u0232\2\2\u0648\u0649" + - "\5\u0202\u0102\2\u0649\u064a\7\u01c9\2\2\u064a\u0650\7\u01bc\2\2\u064b" + - "\u064c\7\u0288\2\2\u064c\u064d\7\u0300\2\2\u064d\u064e\5\u01d4\u00eb\2" + - "\u064e\u064f\7\u0301\2\2\u064f\u0651\3\2\2\2\u0650\u064b\3\2\2\2\u0650" + - "\u0651\3\2\2\2\u0651\u0673\3\2\2\2\u0652\u0653\7\25\2\2\u0653\u0654\7" + - "\u0232\2\2\u0654\u0655\5\u0202\u0102\2\u0655\u0656\7\u00c5\2\2\u0656\u0673" + - "\3\2\2\2\u0657\u0658\7\25\2\2\u0658\u0659\7\u0232\2\2\u0659\u065a\5\u0202" + - "\u0102\2\u065a\u065b\7\u00b5\2\2\u065b\u0673\3\2\2\2\u065c\u065d\7\25" + - "\2\2\u065d\u065e\7\u0232\2\2\u065e\u065f\5\u0202\u0102\2\u065f\u0660\7" + - "\u0209\2\2\u0660\u0661\7\u0300\2\2\u0661\u0662\5\u01d4\u00eb\2\u0662\u0663" + - "\7\u0301\2\2\u0663\u0673\3\2\2\2\u0664\u0665\7\25\2\2\u0665\u0666\7\u0232" + - "\2\2\u0666\u0667\5\u0202\u0102\2\u0667\u0668\7\u0195\2\2\u0668\u0669\7" + - "\u0249\2\2\u0669\u066a\5\u01fa\u00fe\2\u066a\u0673\3\2\2\2\u066b\u066c" + - "\7\25\2\2\u066c\u066d\7\u0232\2\2\u066d\u066e\5\u0202\u0102\2\u066e\u066f" + - "\7\u01d6\2\2\u066f\u0670\7\u0249\2\2\u0670\u0671\5\u0202\u0102\2\u0671" + - "\u0673\3\2\2\2\u0672\u0633\3\2\2\2\u0672\u0639\3\2\2\2\u0672\u0646\3\2" + - "\2\2\u0672\u0652\3\2\2\2\u0672\u0657\3\2\2\2\u0672\u065c\3\2\2\2\u0672" + - "\u0664\3\2\2\2\u0672\u066b\3\2\2\2\u0673I\3\2\2\2\u0674\u0675\7\25\2\2" + - "\u0675\u0676\7\u0237\2\2\u0676\u0677\7\u0209\2\2\u0677\u0678\7\u030c\2" + - "\2\u0678\u0679\t\7\2\2\u0679\u0683\5\u01fe\u0100\2\u067a\u067b\7\25\2" + - "\2\u067b\u067c\7\u0237\2\2\u067c\u067d\7\u01da\2\2\u067d\u0683\7\u030c" + - "\2\2\u067e\u067f\7\25\2\2\u067f\u0680\7\u0237\2\2\u0680\u0681\7\u01da" + - "\2\2\u0681\u0683\7\22\2\2\u0682\u0674\3\2\2\2\u0682\u067a\3\2\2\2\u0682" + - "\u067e\3\2\2\2\u0683K\3\2\2\2\u0684\u0685\5\u0206\u0104\2\u0685M\3\2\2" + - "\2\u0686\u0687\7\25\2\2\u0687\u0688\7\u023c\2\2\u0688\u0689\5\u0202\u0102" + - "\2\u0689\u068a\7\u01d6\2\2\u068a\u068b\7\u0249\2\2\u068b\u068c\5\u0202" + - "\u0102\2\u068c\u06a8\3\2\2\2\u068d\u068e\7\25\2\2\u068e\u068f\7\u023c" + - "\2\2\u068f\u0690\5\u0202\u0102\2\u0690\u0691\7\u0195\2\2\u0691\u0695\7" + - "\u0249\2\2\u0692\u0696\5\u0202\u0102\2\u0693\u0696\7\u008f\2\2\u0694\u0696" + - "\7\u0208\2\2\u0695\u0692\3\2\2\2\u0695\u0693\3\2\2\2\u0695\u0694\3\2\2" + - "\2\u0696\u06a8\3\2\2\2\u0697\u0698\7\25\2\2\u0698\u0699\7\u023c\2\2\u0699" + - "\u069a\5\u0202\u0102\2\u069a\u069b\7\u0209\2\2\u069b\u069c\7\u0300\2\2" + - "\u069c\u069d\5\u01d4\u00eb\2\u069d\u069e\7\u0301\2\2\u069e\u06a8\3\2\2" + - "\2\u069f\u06a0\7\25\2\2\u06a0\u06a1\7\u023c\2\2\u06a1\u06a2\5\u0202\u0102" + - "\2\u06a2\u06a3\7\u01da\2\2\u06a3\u06a4\7\u0300\2\2\u06a4\u06a5\5\u01d0" + - "\u00e9\2\u06a5\u06a6\7\u0301\2\2\u06a6\u06a8\3\2\2\2\u06a7\u0686\3\2\2" + - "\2\u06a7\u068d\3\2\2\2\u06a7\u0697\3\2\2\2\u06a7\u069f\3\2\2\2\u06a8O" + - "\3\2\2\2\u06a9\u06aa\7\25\2\2\u06aa\u06ab\7\u02f1\2\2\u06ab\u06ac\7\u01fc" + - "\2\2\u06ac\u06ad\7j\2\2\u06ad\u06ae\5\u0202\u0102\2\u06ae\u06af\7\r\2" + - "\2\u06af\u06b0\7\u0147\2\2\u06b0\u06b1\7\u00e5\2\2\u06b1\u06b2\5\u01d0" + - "\u00e9\2\u06b2\u06b3\7\u0288\2\2\u06b3\u06b4\5\u01d0\u00e9\2\u06b4\u0705" + - "\3\2\2\2\u06b5\u06b6\7\25\2\2\u06b6\u06b7\7\u02f1\2\2\u06b7\u06b8\7\u01fc" + - "\2\2\u06b8\u06b9\7j\2\2\u06b9\u06ba\5\u0202\u0102\2\u06ba\u06bb\7\25\2" + - "\2\u06bb\u06bc\7\u0147\2\2\u06bc\u06bd\7\u00e5\2\2\u06bd\u06be\5\u01d0" + - "\u00e9\2\u06be\u06bf\7\u0288\2\2\u06bf\u06c0\5\u01d0\u00e9\2\u06c0\u0705" + - "\3\2\2\2\u06c1\u06c2\7\25\2\2\u06c2\u06c3\7\u02f1\2\2\u06c3\u06c4\7\u01fc" + - "\2\2\u06c4\u06c5\7j\2\2\u06c5\u06c6\5\u0202\u0102\2\u06c6\u06c7\7\25\2" + - "\2\u06c7\u06c8\7\u0147\2\2\u06c8\u06c9\7\u01d8\2\2\u06c9\u06ca\5\u0202" + - "\u0102\2\u06ca\u06cb\7\u0288\2\2\u06cb\u06cc\5\u0202\u0102\2\u06cc\u0705" + - "\3\2\2\2\u06cd\u06ce\7\25\2\2\u06ce\u06cf\7\u02f1\2\2\u06cf\u06d0\7\u01fc" + - "\2\2\u06d0\u06d1\7j\2\2\u06d1\u06d2\5\u0202\u0102\2\u06d2\u06d3\7\25\2" + - "\2\u06d3\u06d4\7\u0147\2\2\u06d4\u06d5\7\u00e5\2\2\u06d5\u06d6\5\u01d0" + - "\u00e9\2\u06d6\u06d7\7\u01d8\2\2\u06d7\u06d8\5\u0202\u0102\2\u06d8\u06d9" + - "\7\u0288\2\2\u06d9\u06da\5\u0202\u0102\2\u06da\u0705\3\2\2\2\u06db\u06dc" + - "\7\25\2\2\u06dc\u06dd\7\u02f1\2\2\u06dd\u06de\7\u01fc\2\2\u06de\u06df" + - "\7j\2\2\u06df\u06e0\5\u0202\u0102\2\u06e0\u06e1\7\u00be\2\2\u06e1\u06e4" + - "\7\u0147\2\2\u06e2\u06e3\7\u02b4\2\2\u06e3\u06e5\7\u00d5\2\2\u06e4\u06e2" + - "\3\2\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\3\2\2\2\u06e6\u06e7\7\u00e5\2" + - "\2\u06e7\u06e8\5\u01d0\u00e9\2\u06e8\u0705\3\2\2\2\u06e9\u06ea\7\25\2" + - "\2\u06ea\u06eb\7\u02f1\2\2\u06eb\u06ec\7\u01fc\2\2\u06ec\u06ed\7j\2\2" + - "\u06ed\u06ee\5\u0202\u0102\2\u06ee\u06ef\7\u01d6\2\2\u06ef\u06f0\7\u0249" + - "\2\2\u06f0\u06f1\5\u0202\u0102\2\u06f1\u0705\3\2\2\2\u06f2\u06f3\7\25" + - "\2\2\u06f3\u06f4\7\u02f1\2\2\u06f4\u06f5\7\u01fc\2\2\u06f5\u06f6\7j\2" + - "\2\u06f6\u06f7\5\u0202\u0102\2\u06f7\u06f8\7\u0195\2\2\u06f8\u06f9\7\u0249" + - "\2\2\u06f9\u06fa\5\u01fa\u00fe\2\u06fa\u0705\3\2\2\2\u06fb\u06fc\7\25" + - "\2\2\u06fc\u06fd\7\u02f1\2\2\u06fd\u06fe\7\u01fc\2\2\u06fe\u06ff\7j\2" + - "\2\u06ff\u0700\5\u0202\u0102\2\u0700\u0701\7\u0209\2\2\u0701\u0702\7\u01f5" + - "\2\2\u0702\u0703\5\u0202\u0102\2\u0703\u0705\3\2\2\2\u0704\u06a9\3\2\2" + - "\2\u0704\u06b5\3\2\2\2\u0704\u06c1\3\2\2\2\u0704\u06cd\3\2\2\2\u0704\u06db" + - "\3\2\2\2\u0704\u06e9\3\2\2\2\u0704\u06f2\3\2\2\2\u0704\u06fb\3\2\2\2\u0705" + - "Q\3\2\2\2\u0706\u0707\5\u0206\u0104\2\u0707S\3\2\2\2\u0708\u0709\5\u0206" + - "\u0104\2\u0709U\3\2\2\2\u070a\u070b\7\25\2\2\u070b\u070c\7\u02f1\2\2\u070c" + - "\u070d\7\u01fc\2\2\u070d\u070e\7\u023e\2\2\u070e\u070f\5\u0202\u0102\2" + - "\u070f\u0710\7\u01d6\2\2\u0710\u0711\7\u0249\2\2\u0711\u0712\5\u0202\u0102" + - "\2\u0712\u071d\3\2\2\2\u0713\u0714\7\25\2\2\u0714\u0715\7\u02f1\2\2\u0715" + - "\u0716\7\u01fc\2\2\u0716\u0717\7\u023e\2\2\u0717\u0718\5\u0202\u0102\2" + - "\u0718\u0719\7\u0209\2\2\u0719\u071a\7\u01f5\2\2\u071a\u071b\5\u0202\u0102" + - "\2\u071b\u071d\3\2\2\2\u071c\u070a\3\2\2\2\u071c\u0713\3\2\2\2\u071dW" + - "\3\2\2\2\u071e\u071f\7\25\2\2\u071f\u0720\7\u0256\2\2\u0720\u0721\5\u0202" + - "\u0102\2\u0721\u0722\7\u0182\2\2\u0722\u0723\5\u0202\u0102\2\u0723\u0724" + - "\7\u01d6\2\2\u0724\u0725\7\u0249\2\2\u0725\u0726\5\u0202\u0102\2\u0726" + - "\u0732\3\2\2\2\u0727\u0728\7\25\2\2\u0728\u0729\7\u0256\2\2\u0729\u072a" + - "\5\u0202\u0102\2\u072a\u072b\7\u0182\2\2\u072b\u072c\5\u0202\u0102\2\u072c" + - "\u072d\7\u00a9\2\2\u072d\u072e\7\u0182\2\2\u072e\u072f\7\u00d9\2\2\u072f" + - "\u0730\5\u0202\u0102\2\u0730\u0732\3\2\2\2\u0731\u071e\3\2\2\2\u0731\u0727" + - "\3\2\2\2\u0732Y\3\2\2\2\u0733\u0734\5\u0206\u0104\2\u0734[\3\2\2\2\u0735" + - "\u0736\5\u0206\u0104\2\u0736]\3\2\2\2\u0737\u0738\7\25\2\2\u0738\u0739" + - "\7\u026e\2\2\u0739\u073a\7\u0147\2\2\u073a\u073b\7\u00e5\2\2\u073b\u073c" + - "\5\u01fa\u00fe\2\u073c\u073d\7\u02be\2\2\u073d\u073e\5\u0202\u0102\2\u073e" + - "\u073f\7\u0188\2\2\u073f\u0740\7\u0300\2\2\u0740\u0741\5B\"\2\u0741\u0742" + - "\7\u0301\2\2\u0742_\3\2\2\2\u0743\u0744\5\u0206\u0104\2\u0744a\3\2\2\2" + - "\u0745\u0747\7\30\2\2\u0746\u0748\7\u0280\2\2\u0747\u0746\3\2\2\2\u0747" + - "\u0748\3\2\2\2\u0748\u0749\3\2\2\2\u0749\u074e\5\u01d6\u00ec\2\u074a\u074b" + - "\7\u0300\2\2\u074b\u074c\5\u01ce\u00e8\2\u074c\u074d\7\u0301\2\2\u074d" + - "\u074f\3\2\2\2\u074e\u074a\3\2\2\2\u074e\u074f\3\2\2\2\u074fc\3\2\2\2" + - "\u0750\u0751\5\u0206\u0104\2\u0751e\3\2\2\2\u0752\u0753\5\u0206\u0104" + - "\2\u0753g\3\2\2\2\u0754\u0755\5\u0206\u0104\2\u0755i\3\2\2\2\u0756\u0757" + - "\5\u0206\u0104\2\u0757k\3\2\2\2\u0758\u0759\5\u0206\u0104\2\u0759m\3\2" + - "\2\2\u075a\u075b\5\u0206\u0104\2\u075bo\3\2\2\2\u075c\u0784\5r:\2\u075d" + - "\u0784\5t;\2\u075e\u0784\5v<\2\u075f\u0784\5|?\2\u0760\u0784\5~@\2\u0761" + - "\u0784\5\u0080A\2\u0762\u0784\5\u0084C\2\u0763\u0784\5\u0088E\2\u0764" + - "\u0784\5\u008cG\2\u0765\u0784\5\u008eH\2\u0766\u0784\5\u0090I\2\u0767" + - "\u0784\5\u0092J\2\u0768\u0784\5\u0094K\2\u0769\u0784\5\u0096L\2\u076a" + - "\u0784\5\u0098M\2\u076b\u0784\5\u009aN\2\u076c\u0784\5\u009eP\2\u076d" + - "\u0784\5\u00a0Q\2\u076e\u0784\5\u00a2R\2\u076f\u0784\5\u00a4S\2\u0770" + - "\u0784\5\u00a8U\2\u0771\u0784\5\u00aaV\2\u0772\u0784\5\u00acW\2\u0773" + - "\u0784\5\u00aeX\2\u0774\u0784\5\u00b0Y\2\u0775\u0784\5\u00b2Z\2\u0776" + - "\u0784\5\u00b4[\2\u0777\u0784\5\u00b6\\\2\u0778\u0784\5\u00b8]\2\u0779" + - "\u0784\5\u00ba^\2\u077a\u0784\5\u00bc_\2\u077b\u0784\5\u00be`\2\u077c" + - "\u0784\5\u00c0a\2\u077d\u0784\5\u00c2b\2\u077e\u0784\5\u00c4c\2\u077f" + - "\u0784\5\u00c6d\2\u0780\u0784\5\u00c8e\2\u0781\u0784\5\u00caf\2\u0782" + - "\u0784\5\u00ccg\2\u0783\u075c\3\2\2\2\u0783\u075d\3\2\2\2\u0783\u075e" + - "\3\2\2\2\u0783\u075f\3\2\2\2\u0783\u0760\3\2\2\2\u0783\u0761\3\2\2\2\u0783" + - "\u0762\3\2\2\2\u0783\u0763\3\2\2\2\u0783\u0764\3\2\2\2\u0783\u0765\3\2" + - "\2\2\u0783\u0766\3\2\2\2\u0783\u0767\3\2\2\2\u0783\u0768\3\2\2\2\u0783" + - "\u0769\3\2\2\2\u0783\u076a\3\2\2\2\u0783\u076b\3\2\2\2\u0783\u076c\3\2" + - "\2\2\u0783\u076d\3\2\2\2\u0783\u076e\3\2\2\2\u0783\u076f\3\2\2\2\u0783" + - "\u0770\3\2\2\2\u0783\u0771\3\2\2\2\u0783\u0772\3\2\2\2\u0783\u0773\3\2" + - "\2\2\u0783\u0774\3\2\2\2\u0783\u0775\3\2\2\2\u0783\u0776\3\2\2\2\u0783" + - "\u0777\3\2\2\2\u0783\u0778\3\2\2\2\u0783\u0779\3\2\2\2\u0783\u077a\3\2" + - "\2\2\u0783\u077b\3\2\2\2\u0783\u077c\3\2\2\2\u0783\u077d\3\2\2\2\u0783" + - "\u077e\3\2\2\2\u0783\u077f\3\2\2\2\u0783\u0780\3\2\2\2\u0783\u0781\3\2" + - "\2\2\u0783\u0782\3\2\2\2\u0784q\3\2\2\2\u0785\u0786\7\u0080\2\2\u0786" + - "\u0787\7\n\2\2\u0787\u0788\7\u0152\2\2\u0788\u0789\5\u01cc\u00e7\2\u0789" + - "\u078a\7\u025e\2\2\u078a\u078b\7\u010e\2\2\u078b\u078c\7\u00fe\2\2\u078c" + - "\u078d\5\u01cc\u00e7\2\u078ds\3\2\2\2\u078e\u078f\7\u0080\2\2\u078f\u0790" + - "\7\20\2\2\u0790\u0791\5\u01cc\u00e7\2\u0791\u0793\7\u0300\2\2\u0792\u0794" + - "\t\b\2\2\u0793\u0792\3\2\2\2\u0793\u0794\3\2\2\2\u0794\u0796\3\2\2\2\u0795" + - "\u0797\5\u01cc\u00e7\2\u0796\u0795\3\2\2\2\u0796\u0797\3\2\2\2\u0797\u0798" + - "\3\2\2\2\u0798\u0799\5\u01da\u00ee\2\u0799\u079a\7\u0301\2\2\u079a\u079b" + - "\7\u0300\2\2\u079b\u079c\7\u029d\2\2\u079c\u079d\7\u0319\2\2\u079d\u079e" + - "\5\u0202\u0102\2\u079e\u079f\7\u02fa\2\2\u079f\u07a0\7\u029e\2\2\u07a0" + - "\u07a1\7\u0319\2\2\u07a1\u07a6\5\u0202\u0102\2\u07a2\u07a3\7\u02fa\2\2" + - "\u07a3\u07a4\7\u029f\2\2\u07a4\u07a5\7\u0319\2\2\u07a5\u07a7\7\u0307\2" + - "\2\u07a6\u07a2\3\2\2\2\u07a6\u07a7\3\2\2\2\u07a7\u07ac\3\2\2\2\u07a8\u07a9" + - "\7\u02fa\2\2\u07a9\u07aa\7\u02a0\2\2\u07aa\u07ab\7\u0319\2\2\u07ab\u07ad" + - "\5\u0202\u0102\2\u07ac\u07a8\3\2\2\2\u07ac\u07ad\3\2\2\2\u07ad\u07b0\3" + - "\2\2\2\u07ae\u07af\7\u02fa\2\2\u07af\u07b1\7\u02a1\2\2\u07b0\u07ae\3\2" + - "\2\2\u07b0\u07b1\3\2\2\2\u07b1\u07b6\3\2\2\2\u07b2\u07b3\7\u02fa\2\2\u07b3" + - "\u07b4\7\u02a2\2\2\u07b4\u07b5\7\u0319\2\2\u07b5\u07b7\5\u0202\u0102\2" + - "\u07b6\u07b2\3\2\2\2\u07b6\u07b7\3\2\2\2\u07b7\u07bc\3\2\2\2\u07b8\u07b9" + - "\7\u02fa\2\2\u07b9\u07ba\7\u02a3\2\2\u07ba\u07bb\7\u0319\2\2\u07bb\u07bd" + - "\5\u0202\u0102\2\u07bc\u07b8\3\2\2\2\u07bc\u07bd\3\2\2\2\u07bd\u07c2\3" + - "\2\2\2\u07be\u07bf\7\u02fa\2\2\u07bf\u07c0\7\u02a4\2\2\u07c0\u07c1\7\u0319" + - "\2\2\u07c1\u07c3\5\u0202\u0102\2\u07c2\u07be\3\2\2\2\u07c2\u07c3\3\2\2" + - "\2\u07c3\u07c8\3\2\2\2\u07c4\u07c5\7\u02fa\2\2\u07c5\u07c6\7\u02a5\2\2" + - "\u07c6\u07c7\7\u0319\2\2\u07c7\u07c9\5\u01b2\u00da\2\u07c8\u07c4\3\2\2" + - "\2\u07c8\u07c9\3\2\2\2\u07c9\u07ce\3\2\2\2\u07ca\u07cb\7\u02fa\2\2\u07cb" + - "\u07cc\7\u02a6\2\2\u07cc\u07cd\7\u0319\2\2\u07cd\u07cf\5\u0202\u0102\2" + - "\u07ce\u07ca\3\2\2\2\u07ce\u07cf\3\2\2\2\u07cf\u07d4\3\2\2\2\u07d0\u07d1" + - "\7\u02fa\2\2\u07d1\u07d2\7\u02a7\2\2\u07d2\u07d3\7\u0319\2\2\u07d3\u07d5" + - "\5\u0202\u0102\2\u07d4\u07d0\3\2\2\2\u07d4\u07d5\3\2\2\2\u07d5\u07da\3" + - "\2\2\2\u07d6\u07d7\7\u02fa\2\2\u07d7\u07d8\7\u02a8\2\2\u07d8\u07d9\7\u0319" + - "\2\2\u07d9\u07db\5\u0202\u0102\2\u07da\u07d6\3\2\2\2\u07da\u07db\3\2\2" + - "\2\u07db\u07e0\3\2\2\2\u07dc\u07dd\7\u02fa\2\2\u07dd\u07de\7\u02a9\2\2" + - "\u07de\u07df\7\u0319\2\2\u07df\u07e1\7\u0307\2\2\u07e0\u07dc\3\2\2\2\u07e0" + - "\u07e1\3\2\2\2\u07e1\u07e6\3\2\2\2\u07e2\u07e3\7\u02fa\2\2\u07e3\u07e4" + - "\7\u02aa\2\2\u07e4\u07e5\7\u0319\2\2\u07e5\u07e7\5\u0202\u0102\2\u07e6" + - "\u07e2\3\2\2\2\u07e6\u07e7\3\2\2\2\u07e7\u07ea\3\2\2\2\u07e8\u07e9\7\u02fa" + - "\2\2\u07e9\u07eb\7\u02ab\2\2\u07ea\u07e8\3\2\2\2\u07ea\u07eb\3\2\2\2\u07eb" + - "\u07f0\3\2\2\2\u07ec\u07ed\7\u02fa\2\2\u07ed\u07ee\7\u02ac\2\2\u07ee\u07ef" + - "\7\u0319\2\2\u07ef\u07f1\5\u0202\u0102\2\u07f0\u07ec\3\2\2\2\u07f0\u07f1" + - "\3\2\2\2\u07f1\u07f6\3\2\2\2\u07f2\u07f3\7\u02fa\2\2\u07f3\u07f4\7\u02ad" + - "\2\2\u07f4\u07f5\7\u0319\2\2\u07f5\u07f7\5\u0202\u0102\2\u07f6\u07f2\3" + - "\2\2\2\u07f6\u07f7\3\2\2\2\u07f7\u07fc\3\2\2\2\u07f8\u07f9\7\u02fa\2\2" + - "\u07f9\u07fa\7\u02ae\2\2\u07fa\u07fb\7\u0319\2\2\u07fb\u07fd\t\t\2\2\u07fc" + - "\u07f8\3\2\2\2\u07fc\u07fd\3\2\2\2\u07fd\u07fe\3\2\2\2\u07fe\u07ff\7\u0301" + - "\2\2\u07ff\u08a9\3\2\2\2\u0800\u0801\7\u0080\2\2\u0801\u0802\7\20\2\2" + - "\u0802\u0803\5\u01cc\u00e7\2\u0803\u080b\7\u0300\2\2\u0804\u0806\t\b\2" + - "\2\u0805\u0804\3\2\2\2\u0805\u0806\3\2\2\2\u0806\u0808\3\2\2\2\u0807\u0809" + - "\5\u01cc\u00e7\2\u0808\u0807\3\2\2\2\u0808\u0809\3\2\2\2\u0809\u080a\3" + - "\2\2\2\u080a\u080c\5\u01da\u00ee\2\u080b\u0805\3\2\2\2\u080b\u080c\3\2" + - "\2\2\u080c\u080d\3\2\2\2\u080d\u080e\7\u018a\2\2\u080e\u0810\78\2\2\u080f" + - "\u0811\t\b\2\2\u0810\u080f\3\2\2\2\u0810\u0811\3\2\2\2\u0811\u0813\3\2" + - "\2\2\u0812\u0814\5\u01cc\u00e7\2\u0813\u0812\3\2\2\2\u0813\u0814\3\2\2" + - "\2\u0814\u0815\3\2\2\2\u0815\u0816\5\u01da\u00ee\2\u0816\u0817\7\u0301" + - "\2\2\u0817\u0818\7\u0300\2\2\u0818\u0819\7\u029d\2\2\u0819\u081a\7\u0319" + - "\2\2\u081a\u081b\5\u0202\u0102\2\u081b\u081c\7\u02fa\2\2\u081c\u081d\7" + - "\u029e\2\2\u081d\u081e\7\u0319\2\2\u081e\u0823\5\u0202\u0102\2\u081f\u0820" + - "\7\u02fa\2\2\u0820\u0821\7\u029f\2\2\u0821\u0822\7\u0319\2\2\u0822\u0824" + - "\7\u0307\2\2\u0823\u081f\3\2\2\2\u0823\u0824\3\2\2\2\u0824\u0829\3\2\2" + - "\2\u0825\u0826\7\u02fa\2\2\u0826\u0827\7\u02a0\2\2\u0827\u0828\7\u0319" + - "\2\2\u0828\u082a\5\u0202\u0102\2\u0829\u0825\3\2\2\2\u0829\u082a\3\2\2" + - "\2\u082a\u082d\3\2\2\2\u082b\u082c\7\u02fa\2\2\u082c\u082e\7\u02a1\2\2" + - "\u082d\u082b\3\2\2\2\u082d\u082e\3\2\2\2\u082e\u0833\3\2\2\2\u082f\u0830" + - "\7\u02fa\2\2\u0830\u0831\7\u02a5\2\2\u0831\u0832\7\u0319\2\2\u0832\u0834" + - "\5\u01b2\u00da\2\u0833\u082f\3\2\2\2\u0833\u0834\3\2\2\2\u0834\u0839\3" + - "\2\2\2\u0835\u0836\7\u02fa\2\2\u0836\u0837\7\u02ae\2\2\u0837\u0838\7\u0319" + - "\2\2\u0838\u083a\t\t\2\2\u0839\u0835\3\2\2\2\u0839\u083a\3\2\2\2\u083a" + - "\u083d\3\2\2\2\u083b\u083c\7\u02fa\2\2\u083c\u083e\7\u02af\2\2\u083d\u083b" + - "\3\2\2\2\u083d\u083e\3\2\2\2\u083e\u083f\3\2\2\2\u083f\u0840\7\u0301\2" + - "\2\u0840\u08a9\3\2\2\2\u0841\u0842\7\u0080\2\2\u0842\u0843\7\20\2\2\u0843" + - "\u0844\5\u01cc\u00e7\2\u0844\u0845\7\u0300\2\2\u0845\u0846\7\u02b3\2\2" + - "\u0846\u0847\7\u0319\2\2\u0847\u0848\5\u01d8\u00ed\2\u0848\u0849\7\u02fa" + - "\2\2\u0849\u084a\7\u029d\2\2\u084a\u084b\7\u0319\2\2\u084b\u084c\5\u0202" + - "\u0102\2\u084c\u084d\7\u02fa\2\2\u084d\u084e\7\u029e\2\2\u084e\u084f\7" + - "\u0319\2\2\u084f\u0854\5\u0202\u0102\2\u0850\u0851\7\u02fa\2\2\u0851\u0852" + - "\7\u029f\2\2\u0852\u0853\7\u0319\2\2\u0853\u0855\7\u0307\2\2\u0854\u0850" + - "\3\2\2\2\u0854\u0855\3\2\2\2\u0855\u085a\3\2\2\2\u0856\u0857\7\u02fa\2" + - "\2\u0857\u0858\7\u02a0\2\2\u0858\u0859\7\u0319\2\2\u0859\u085b\5\u0202" + - "\u0102\2\u085a\u0856\3\2\2\2\u085a\u085b\3\2\2\2\u085b\u085e\3\2\2\2\u085c" + - "\u085d\7\u02fa\2\2\u085d\u085f\7\u02a1\2\2\u085e\u085c\3\2\2\2\u085e\u085f" + - "\3\2\2\2\u085f\u0864\3\2\2\2\u0860\u0861\7\u02fa\2\2\u0861\u0862\7\u02a2" + - "\2\2\u0862\u0863\7\u0319\2\2\u0863\u0865\5\u0202\u0102\2\u0864\u0860\3" + - "\2\2\2\u0864\u0865\3\2\2\2\u0865\u086a\3\2\2\2\u0866\u0867\7\u02fa\2\2" + - "\u0867\u0868\7\u02a3\2\2\u0868\u0869\7\u0319\2\2\u0869\u086b\5\u0202\u0102" + - "\2\u086a\u0866\3\2\2\2\u086a\u086b\3\2\2\2\u086b\u0870\3\2\2\2\u086c\u086d" + - "\7\u02fa\2\2\u086d\u086e\7\u02a4\2\2\u086e\u086f\7\u0319\2\2\u086f\u0871" + - "\5\u0202\u0102\2\u0870\u086c\3\2\2\2\u0870\u0871\3\2\2\2\u0871\u0876\3" + - "\2\2\2\u0872\u0873\7\u02fa\2\2\u0873\u0874\7\u02a5\2\2\u0874\u0875\7\u0319" + - "\2\2\u0875\u0877\5\u01b2\u00da\2\u0876\u0872\3\2\2\2\u0876\u0877\3\2\2" + - "\2\u0877\u087c\3\2\2\2\u0878\u0879\7\u02fa\2\2\u0879\u087a\7\u02a6\2\2" + - "\u087a\u087b\7\u0319\2\2\u087b\u087d\5\u0202\u0102\2\u087c\u0878\3\2\2" + - "\2\u087c\u087d\3\2\2\2\u087d\u0882\3\2\2\2\u087e\u087f\7\u02fa\2\2\u087f" + - "\u0880\7\u02a7\2\2\u0880\u0881\7\u0319\2\2\u0881\u0883\5\u0202\u0102\2" + - "\u0882\u087e\3\2\2\2\u0882\u0883\3\2\2\2\u0883\u0888\3\2\2\2\u0884\u0885" + - "\7\u02fa\2\2\u0885\u0886\7\u02a8\2\2\u0886\u0887\7\u0319\2\2\u0887\u0889" + - "\5\u0202\u0102\2\u0888\u0884\3\2\2\2\u0888\u0889\3\2\2\2\u0889\u088e\3" + - "\2\2\2\u088a\u088b\7\u02fa\2\2\u088b\u088c\7\u02a9\2\2\u088c\u088d\7\u0319" + - "\2\2\u088d\u088f\7\u0307\2\2\u088e\u088a\3\2\2\2\u088e\u088f\3\2\2\2\u088f" + - "\u0894\3\2\2\2\u0890\u0891\7\u02fa\2\2\u0891\u0892\7\u02aa\2\2\u0892\u0893" + - "\7\u0319\2\2\u0893\u0895\5\u0202\u0102\2\u0894\u0890\3\2\2\2\u0894\u0895" + - "\3\2\2\2\u0895\u0898\3\2\2\2\u0896\u0897\7\u02fa\2\2\u0897\u0899\7\u02ab" + - "\2\2\u0898\u0896\3\2\2\2\u0898\u0899\3\2\2\2\u0899\u089e\3\2\2\2\u089a" + - "\u089b\7\u02fa\2\2\u089b\u089c\7\u02ac\2\2\u089c\u089d\7\u0319\2\2\u089d" + - "\u089f\5\u0202\u0102\2\u089e\u089a\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a4" + - "\3\2\2\2\u08a0\u08a1\7\u02fa\2\2\u08a1\u08a2\7\u02ad\2\2\u08a2\u08a3\7" + - "\u0319\2\2\u08a3\u08a5\5\u0202\u0102\2\u08a4\u08a0\3\2\2\2\u08a4\u08a5" + - "\3\2\2\2\u08a5\u08a6\3\2\2\2\u08a6\u08a7\7\u0301\2\2\u08a7\u08a9\3\2\2" + - "\2\u08a8\u078e\3\2\2\2\u08a8\u0800\3\2\2\2\u08a8\u0841\3\2\2\2\u08a9u" + - "\3\2\2\2\u08aa\u08ab\7\u0080\2\2\u08ab\u08ac\7A\2\2\u08ac\u08ad\7\u0300" + - "\2\2\u08ad\u08ae\5\u01d8\u00ed\2\u08ae\u08af\7\35\2\2\u08af\u08b0\5\u01d8" + - "\u00ed\2\u08b0\u08be\7\u0301\2\2\u08b1\u08b2\7\u0288\2\2\u08b2\u08b3\7" + - "\u00f0\2\2\u08b3\u08b8\5\u0202\u0102\2\u08b4\u08b5\7\u0300\2\2\u08b5\u08b6" + - "\5\u01da\u00ee\2\u08b6\u08b7\7\u0301\2\2\u08b7\u08b9\3\2\2\2\u08b8\u08b4" + - "\3\2\2\2\u08b8\u08b9\3\2\2\2\u08b9\u08bf\3\2\2\2\u08ba\u08bb\7\u028a\2" + - "\2\u08bb\u08bf\7\u00f0\2\2\u08bc\u08bd\7\u0288\2\2\u08bd\u08bf\7\u0115" + - "\2\2\u08be\u08b1\3\2\2\2\u08be\u08ba\3\2\2\2\u08be\u08bc\3\2\2\2\u08bf" + - "\u08c4\3\2\2\2\u08c0\u08c1\7\35\2\2\u08c1\u08c5\7!\2\2\u08c2\u08c3\7\35" + - "\2\2\u08c3\u08c5\7\u010a\2\2\u08c4\u08c0\3\2\2\2\u08c4\u08c2\3\2\2\2\u08c4" + - "\u08c5\3\2\2\2\u08c5w\3\2\2\2\u08c6\u08c7\7\u02b5\2\2\u08c7\u08c8\7\u0319" + - "\2\2\u08c8\u08d9\5\u01b2\u00da\2\u08c9\u08ca\7\u02b6\2\2\u08ca\u08cb\7" + - "\u0319\2\2\u08cb\u08d9\5\u01b2\u00da\2\u08cc\u08cd\7\u02b7\2\2\u08cd\u08ce" + - "\7\u0319\2\2\u08ce\u08d9\5\u01b2\u00da\2\u08cf\u08d0\7\u02b8\2\2\u08d0" + - "\u08d1\7\u0319\2\2\u08d1\u08d9\5\u01b2\u00da\2\u08d2\u08d3\7\u02b9\2\2" + - "\u08d3\u08d4\7\u0319\2\2\u08d4\u08d9\5\u01b2\u00da\2\u08d5\u08d6\7\u030b" + - "\2\2\u08d6\u08d7\7\u0319\2\2\u08d7\u08d9\5\u01b2\u00da\2\u08d8\u08c6\3" + - "\2\2\2\u08d8\u08c9\3\2\2\2\u08d8\u08cc\3\2\2\2\u08d8\u08cf\3\2\2\2\u08d8" + - "\u08d2\3\2\2\2\u08d8\u08d5\3\2\2\2\u08d9y\3\2\2\2\u08da\u08df\5x=\2\u08db" + - "\u08dc\7\u02fa\2\2\u08dc\u08de\5x=\2\u08dd\u08db\3\2\2\2\u08de\u08e1\3" + - "\2\2\2\u08df\u08dd\3\2\2\2\u08df\u08e0\3\2\2\2\u08e0{\3\2\2\2\u08e1\u08df" + - "\3\2\2\2\u08e2\u08e3\7\u0080\2\2\u08e3\u08e7\7[\2\2\u08e4\u08e5\7\u02b4" + - "\2\2\u08e5\u08e6\7\u016f\2\2\u08e6\u08e8\7\u00d5\2\2\u08e7\u08e4\3\2\2" + - "\2\u08e7\u08e8\3\2\2\2\u08e8\u08e9\3\2\2\2\u08e9\u08ea\5\u01cc\u00e7\2" + - "\u08ea\u08eb\7\u0300\2\2\u08eb\u08ec\5z>\2\u08ec\u08ed\7\u0301\2\2\u08ed" + - "\u08fa\3\2\2\2\u08ee\u08ef\7\u0080\2\2\u08ef\u08f3\7[\2\2\u08f0\u08f1" + - "\7\u02b4\2\2\u08f1\u08f2\7\u016f\2\2\u08f2\u08f4\7\u00d5\2\2\u08f3\u08f0" + - "\3\2\2\2\u08f3\u08f4\3\2\2\2\u08f4\u08f5\3\2\2\2\u08f5\u08f6\5\u01cc\u00e7" + - "\2\u08f6\u08f7\7\u00ee\2\2\u08f7\u08f8\5\u01cc\u00e7\2\u08f8\u08fa\3\2" + - "\2\2\u08f9\u08e2\3\2\2\2\u08f9\u08ee\3\2\2\2\u08fa}\3\2\2\2\u08fb\u08fd" + - "\7\u0080\2\2\u08fc\u08fe\7\u009d\2\2\u08fd\u08fc\3\2\2\2\u08fd\u08fe\3" + - "\2\2\2\u08fe\u08ff\3\2\2\2\u08ff\u0900\7w\2\2\u0900\u0901\5\u0202\u0102" + - "\2\u0901\u0902\7\u00e5\2\2\u0902\u0903\7\u030a\2\2\u0903\u0904\7\u0249" + - "\2\2\u0904\u0905\7\u030a\2\2\u0905\u0906\7\u00ee\2\2\u0906\u0907\5\u01cc" + - "\u00e7\2\u0907\177\3\2\2\2\u0908\u0909\7\u0080\2\2\u0909\u090a\7\u0094" + - "\2\2\u090a\u090c\5\u01cc\u00e7\2\u090b\u090d\7\u0288\2\2\u090c\u090b\3" + - "\2\2\2\u090c\u090d\3\2\2\2\u090d\u0911\3\2\2\2\u090e\u090f\7\u0195\2\2" + - "\u090f\u0910\7\u0319\2\2\u0910\u0912\5\u01cc\u00e7\2\u0911\u090e\3\2\2" + - "\2\u0911\u0912\3\2\2\2\u0912\u0916\3\2\2\2\u0913\u0914\7\u023e\2\2\u0914" + - "\u0915\7\u0319\2\2\u0915\u0917\5\u01cc\u00e7\2\u0916\u0913\3\2\2\2\u0916" + - "\u0917\3\2\2\2\u0917\u091b\3\2\2\2\u0918\u0919\7\u00c6\2\2\u0919\u091a" + - "\7\u0319\2\2\u091a\u091c\5\u01cc\u00e7\2\u091b\u0918\3\2\2\2\u091b\u091c" + - "\3\2\2\2\u091c\u0920\3\2\2\2\u091d\u091e\7\u02b6\2\2\u091e\u091f\7\u0319" + - "\2\2\u091f\u0921\5\u01cc\u00e7\2\u0920\u091d\3\2\2\2\u0920\u0921\3\2\2" + - "\2\u0921\u0925\3\2\2\2\u0922\u0923\7\u02b7\2\2\u0923\u0924\7\u0319\2\2" + - "\u0924\u0926\5\u01cc\u00e7\2\u0925\u0922\3\2\2\2\u0925\u0926\3\2\2\2\u0926" + - "\u092a\3\2\2\2\u0927\u0928\7\u023c\2\2\u0928\u0929\7\u0319\2\2\u0929\u092b" + - "\5\u01cc\u00e7\2\u092a\u0927\3\2\2\2\u092a\u092b\3\2\2\2\u092b\u092f\3" + - "\2\2\2\u092c\u092d\7\u02ba\2\2\u092d\u092e\7\u0319\2\2\u092e\u0930\5\u01cc" + - "\u00e7\2\u092f\u092c\3\2\2\2\u092f\u0930\3\2\2\2\u0930\u0935\3\2\2\2\u0931" + - "\u0932\7m\2\2\u0932\u0933\7\u0138\2\2\u0933\u0934\7\u0319\2\2\u0934\u0936" + - "\7\u0307\2\2\u0935\u0931\3\2\2\2\u0935\u0936\3\2\2\2\u0936\u093a\3\2\2" + - "\2\u0937\u0938\7\u02bb\2\2\u0938\u0939\7\u0319\2\2\u0939\u093b\7\u0307" + - "\2\2\u093a\u0937\3\2\2\2\u093a\u093b\3\2\2\2\u093b\u0081\3\2\2\2\u093c" + - "\u093d\7o\2\2\u093d\u093f\5\u01cc\u00e7\2\u093e\u093c\3\2\2\2\u093e\u093f" + - "\3\2\2\2\u093f\u0948\3\2\2\2\u0940\u0941\7\u016f\2\2\u0941\u0949\7\u0174" + - "\2\2\u0942\u0949\7\u0174\2\2\u0943\u0944\7P\2\2\u0944\u0945\7\u0300\2" + - "\2\u0945\u0946\5\u01b2\u00da\2\u0946\u0947\7\u0301\2\2\u0947\u0949\3\2" + - "\2\2\u0948\u0940\3\2\2\2\u0948\u0942\3\2\2\2\u0948\u0943\3\2\2\2\u0949" + - "\u0083\3\2\2\2\u094a\u094b\7\u0080\2\2\u094b\u094c\7\u00bc\2\2\u094c\u094e" + - "\5\u01cc\u00e7\2\u094d\u094f\7\35\2\2\u094e\u094d\3\2\2\2\u094e\u094f" + - "\3\2\2\2\u094f\u0950\3\2\2\2\u0950\u0958\5\u01d8\u00ed\2\u0951\u0952\7" + - "Z\2\2\u0952\u0957\5\u01cc\u00e7\2\u0953\u0954\7\u009d\2\2\u0954\u0957" + - "\5\u01b2\u00da\2\u0955\u0957\5\u0082B\2\u0956\u0951\3\2\2\2\u0956\u0953" + - "\3\2\2\2\u0956\u0955\3\2\2\2\u0957\u095a\3\2\2\2\u0958\u0956\3\2\2\2\u0958" + - "\u0959\3\2\2\2\u0959\u0085\3\2\2\2\u095a\u0958\3\2\2\2\u095b\u095c\5\u0202" + - "\u0102\2\u095c\u095d\7\u010b\2\2\u095d\u095e\7\u0300\2\2\u095e\u0963\7" + - "\u030a\2\2\u095f\u0960\7\u02fa\2\2\u0960\u0962\7\u030a\2\2\u0961\u095f" + - "\3\2\2\2\u0962\u0965\3\2\2\2\u0963\u0961\3\2\2\2\u0963\u0964\3\2\2\2\u0964" + - "\u0966\3\2\2\2\u0965\u0963\3\2\2\2\u0966\u096b\7\u0301\2\2\u0967\u0968" + - "\7\31\2\2\u0968\u096a\5\u0086D\2\u0969\u0967\3\2\2\2\u096a\u096d\3\2\2" + - "\2\u096b\u0969\3\2\2\2\u096b\u096c\3\2\2\2\u096c\u0087\3\2\2\2\u096d\u096b" + - "\3\2\2\2\u096e\u096f\7\u0080\2\2\u096f\u0970\7\u02bc\2\2\u0970\u0971\7" + - "\u0256\2\2\u0971\u0972\5\u0202\u0102\2\u0972\u0973\7\u0182\2\2\u0973\u0976" + - "\5\u0202\u0102\2\u0974\u0975\7\u0283\2\2\u0975\u0977\5\u0086D\2\u0976" + - "\u0974\3\2\2\2\u0976\u0977\3\2\2\2\u0977\u0978\3\2\2\2\u0978\u0979\7\u00d3" + - "\2\2\u0979\u097a\7\u01ba\2\2\u097a\u097b\5\u0202\u0102\2\u097b\u097c\7" + - "\u0300\2\2\u097c\u097d\7\u0301\2\2\u097d\u0089\3\2\2\2\u097e\u097f\5\u01cc" + - "\u00e7\2\u097f\u0984\7\u030a\2\2\u0980\u0981\7\u02fa\2\2\u0981\u0983\5" + - "\u008aF\2\u0982\u0980\3\2\2\2\u0983\u0986\3\2\2\2\u0984\u0982\3\2\2\2" + - "\u0984\u0985\3\2\2\2\u0985\u008b\3\2\2\2\u0986\u0984\3\2\2\2\u0987\u0988" + - "\7\u0080\2\2\u0988\u0989\7\u00e7\2\2\u0989\u098a\7\u0093\2\2\u098a\u098b" + - "\7\u02bd\2\2\u098b\u0992\5\u0202\u0102\2\u098c\u098d\7\u00fe\2\2\u098d" + - "\u0991\5\u0202\u0102\2\u098e\u098f\7\u0169\2\2\u098f\u0991\7\u00fe\2\2" + - "\u0990\u098c\3\2\2\2\u0990\u098e\3\2\2\2\u0991\u0994\3\2\2\2\u0992\u0990" + - "\3\2\2\2\u0992\u0993\3\2\2\2\u0993\u0999\3\2\2\2\u0994\u0992\3\2\2\2\u0995" + - "\u0996\7\u0277\2\2\u0996\u099a\5\u0202\u0102\2\u0997\u0998\7\u0169\2\2" + - "\u0998\u099a\7\u0277\2\2\u0999\u0995\3\2\2\2\u0999\u0997\3\2\2\2\u0999" + - "\u099a\3\2\2\2\u099a\u09a0\3\2\2\2\u099b\u099c\7\u0188\2\2\u099c\u099d" + - "\7\u0300\2\2\u099d\u099e\5\u008aF\2\u099e\u099f\7\u0301\2\2\u099f\u09a1" + - "\3\2\2\2\u09a0\u099b\3\2\2\2\u09a0\u09a1\3\2\2\2\u09a1\u008d\3\2\2\2\u09a2" + - "\u09a3\7\u0080\2\2\u09a3\u09a4\7\u00e7\2\2\u09a4\u09a8\7\u0239\2\2\u09a5" + - "\u09a6\7\u02b4\2\2\u09a6\u09a7\7\u016f\2\2\u09a7\u09a9\7\u00d5\2\2\u09a8" + - "\u09a5\3\2\2\2\u09a8\u09a9\3\2\2\2\u09a9\u09aa\3\2\2\2\u09aa\u09ab\5\u0202" + - "\u0102\2\u09ab\u09ac\7\u0300\2\2\u09ac\u09ad\5\u0202\u0102\2\u09ad\u09b3" + - "\5\u0202\u0102\2\u09ae\u09af\7\u0188\2\2\u09af\u09b0\7\u0300\2\2\u09b0" + - "\u09b1\5\u008aF\2\u09b1\u09b2\7\u0301\2\2\u09b2\u09b4\3\2\2\2\u09b3\u09ae" + - "\3\2\2\2\u09b3\u09b4\3\2\2\2\u09b4\u09b7\3\2\2\2\u09b5\u09b6\7Z\2\2\u09b6" + - "\u09b8\5x=\2\u09b7\u09b5\3\2\2\2\u09b7\u09b8\3\2\2\2\u09b8\u09b9\3\2\2" + - "\2\u09b9\u09bc\7\u0301\2\2\u09ba\u09bb\7\u0111\2\2\u09bb\u09bd\5\u01ce" + - "\u00e8\2\u09bc\u09ba\3\2\2\2\u09bc\u09bd\3\2\2\2\u09bd\u09be\3\2\2\2\u09be" + - "\u09bf\7\u02be\2\2\u09bf\u09c5\5\u01cc\u00e7\2\u09c0\u09c1\7\u0188\2\2" + - "\u09c1\u09c2\7\u0300\2\2\u09c2\u09c3\5\u008aF\2\u09c3\u09c4\7\u0301\2" + - "\2\u09c4\u09c6\3\2\2\2\u09c5\u09c0\3\2\2\2\u09c5\u09c6\3\2\2\2\u09c6\u008f" + - "\3\2\2\2\u09c7\u09ca\7\u0080\2\2\u09c8\u09c9\7\u0189\2\2\u09c9\u09cb\7" + - "\u01d8\2\2\u09ca\u09c8\3\2\2\2\u09ca\u09cb\3\2\2\2\u09cb\u09cc\3\2\2\2" + - "\u09cc\u09cd\7\u00f0\2\2\u09cd\u09ce\5\u01cc\u00e7\2\u09ce\u0091\3\2\2" + - "\2\u09cf\u09d0\7\u0080\2\2\u09d0\u09d1\7\u00fc\2\2\u09d1\u09fb\5\u0202" + - "\u0102\2\u09d2\u09d4\7\u0288\2\2\u09d3\u09d2\3\2\2\2\u09d3\u09d4\3\2\2" + - "\2\u09d4\u09f7\3\2\2\2\u09d5\u09f8\7\u0291\2\2\u09d6\u09f8\7\u0292\2\2" + - "\u09d7\u09f8\7\u0081\2\2\u09d8\u09f8\7\u016a\2\2\u09d9\u09f8\7\u0293\2" + - "\2\u09da\u09f8\7\u0294\2\2\u09db\u09f8\7\u0082\2\2\u09dc\u09f8\7\u016b" + - "\2\2\u09dd\u09f8\7\u0295\2\2\u09de\u09f8\7\u0296\2\2\u09df\u09f8\7\u0297" + - "\2\2\u09e0\u09f8\7\u0298\2\2\u09e1\u09e3\t\n\2\2\u09e2\u09e1\3\2\2\2\u09e2" + - "\u09e3\3\2\2\2\u09e3\u09e4\3\2\2\2\u09e4\u09e5\7\u01a3\2\2\u09e5\u09f8" + - "\t\13\2\2\u09e6\u09e7\7\u0275\2\2\u09e7\u09e8\7\u026a\2\2\u09e8\u09f8" + - "\7\u030a\2\2\u09e9\u09ea\7\u010b\2\2\u09ea\u09eb\7\u01e7\2\2\u09eb\u09f8" + - "\5\u01ce\u00e8\2\u09ec\u09ed\7\u010b\2\2\u09ed\u09ee\7\u00fc\2\2\u09ee" + - "\u09f8\5\u01ce\u00e8\2\u09ef\u09f0\7\u01e7\2\2\u09f0\u09f8\5\u01ce\u00e8" + - "\2\u09f1\u09f2\7\16\2\2\u09f2\u09f8\5\u01ce\u00e8\2\u09f3\u09f4\7\u026e" + - "\2\2\u09f4\u09f8\5\u01ce\u00e8\2\u09f5\u09f6\7\u0236\2\2\u09f6\u09f8\7" + - "\u0307\2\2\u09f7\u09d5\3\2\2\2\u09f7\u09d6\3\2\2\2\u09f7\u09d7\3\2\2\2" + - "\u09f7\u09d8\3\2\2\2\u09f7\u09d9\3\2\2\2\u09f7\u09da\3\2\2\2\u09f7\u09db" + - "\3\2\2\2\u09f7\u09dc\3\2\2\2\u09f7\u09dd\3\2\2\2\u09f7\u09de\3\2\2\2\u09f7" + - "\u09df\3\2\2\2\u09f7\u09e0\3\2\2\2\u09f7\u09e2\3\2\2\2\u09f7\u09e6\3\2" + - "\2\2\u09f7\u09e9\3\2\2\2\u09f7\u09ec\3\2\2\2\u09f7\u09ef\3\2\2\2\u09f7" + - "\u09f1\3\2\2\2\u09f7\u09f3\3\2\2\2\u09f7\u09f5\3\2\2\2\u09f8\u09f9\3\2" + - "\2\2\u09f9\u09f7\3\2\2\2\u09f9\u09fa\3\2\2\2\u09fa\u09fc\3\2\2\2\u09fb" + - "\u09d3\3\2\2\2\u09fb\u09fc\3\2\2\2\u09fc\u0093\3\2\2\2\u09fd\u09ff\7\u0080" + - "\2\2\u09fe\u0a00\7\u0265\2\2\u09ff\u09fe\3\2\2\2\u09ff\u0a00\3\2\2\2\u0a00" + - "\u0a01\3\2\2\2\u0a01\u0a03\7\u010e\2\2\u0a02\u0a04\7\u02c5\2\2\u0a03\u0a02" + - "\3\2\2\2\u0a03\u0a04\3\2\2\2\u0a04\u0a0b\3\2\2\2\u0a05\u0a06\7\u02b4\2" + - "\2\u0a06\u0a07\7\u016f\2\2\u0a07\u0a09\7\u00d5\2\2\u0a08\u0a05\3\2\2\2" + - "\u0a08\u0a09\3\2\2\2\u0a09\u0a0a\3\2\2\2\u0a0a\u0a0c\5\u0202\u0102\2\u0a0b" + - "\u0a08\3\2\2\2\u0a0b\u0a0c\3\2\2\2\u0a0c\u0a0d\3\2\2\2\u0a0d\u0a0e\7\u0182" + - "\2\2\u0a0e\u0a11\5\u0202\u0102\2\u0a0f\u0a10\7\u0273\2\2\u0a10\u0a12\5" + - "\u01dc\u00ef\2\u0a11\u0a0f\3\2\2\2\u0a11\u0a12\3\2\2\2\u0a12\u0a15\3\2" + - "\2\2\u0a13\u0a14\7\u023c\2\2\u0a14\u0a16\5\u0202\u0102\2\u0a15\u0a13\3" + - "\2\2\2\u0a15\u0a16\3\2\2\2\u0a16\u0a19\3\2\2\2\u0a17\u0a18\7\u0285\2\2" + - "\u0a18\u0a1a\5\u01ec\u00f7\2\u0a19\u0a17\3\2\2\2\u0a19\u0a1a\3\2\2\2\u0a1a" + - "\u0095\3\2\2\2\u0a1b\u0a1e\7\u0080\2\2\u0a1c\u0a1d\7\u0189\2\2\u0a1d\u0a1f" + - "\7\u01d8\2\2\u0a1e\u0a1c\3\2\2\2\u0a1e\u0a1f\3\2\2\2\u0a1f\u0a21\3\2\2" + - "\2\u0a20\u0a22\7\u01b9\2\2\u0a21\u0a20\3\2\2\2\u0a21\u0a22\3\2\2\2\u0a22" + - "\u0a23\3\2\2\2\u0a23\u0a24\7\u012d\2\2\u0a24\u0a3d\5\u0202\u0102\2\u0a25" + - "\u0a28\7\u0080\2\2\u0a26\u0a27\7\u0189\2\2\u0a27\u0a29\7\u01d8\2\2\u0a28" + - "\u0a26\3\2\2\2\u0a28\u0a29\3\2\2\2\u0a29\u0a2b\3\2\2\2\u0a2a\u0a2c\7\u025d" + - "\2\2\u0a2b\u0a2a\3\2\2\2\u0a2b\u0a2c\3\2\2\2\u0a2c\u0a2e\3\2\2\2\u0a2d" + - "\u0a2f\7\u01b9\2\2\u0a2e\u0a2d\3\2\2\2\u0a2e\u0a2f\3\2\2\2\u0a2f\u0a30" + - "\3\2\2\2\u0a30\u0a31\7\u012d\2\2\u0a31\u0a32\5\u0202\u0102\2\u0a32\u0a33" + - "\7\u00fe\2\2\u0a33\u0a36\5\u0202\u0102\2\u0a34\u0a35\7\u02c6\2\2\u0a35" + - "\u0a37\5\u0202\u0102\2\u0a36\u0a34\3\2\2\2\u0a36\u0a37\3\2\2\2\u0a37\u0a3a" + - "\3\2\2\2\u0a38\u0a39\7\u0277\2\2\u0a39\u0a3b\5\u0202\u0102\2\u0a3a\u0a38" + - "\3\2\2\2\u0a3a\u0a3b\3\2\2\2\u0a3b\u0a3d\3\2\2\2\u0a3c\u0a1b\3\2\2\2\u0a3c" + - "\u0a25\3\2\2\2\u0a3d\u0097\3\2\2\2\u0a3e\u0a3f\7\u0080\2\2\u0a3f\u0a40" + - "\7\u02c7\2\2\u0a40\u0a44\7\u0281\2\2\u0a41\u0a42\7\u02b4\2\2\u0a42\u0a43" + - "\7\u016f\2\2\u0a43\u0a45\7\u00d5\2\2\u0a44\u0a41\3\2\2\2\u0a44\u0a45\3" + - "\2\2\2\u0a45\u0a46\3\2\2\2\u0a46\u0a4b\5\u0202\u0102\2\u0a47\u0a48\7\u0300" + - "\2\2\u0a48\u0a49\5\u01d0\u00e9\2\u0a49\u0a4a\7\u0301\2\2\u0a4a\u0a4c\3" + - "\2\2\2\u0a4b\u0a47\3\2\2\2\u0a4b\u0a4c\3\2\2\2\u0a4c\u0a4e\3\2\2\2\u0a4d" + - "\u0a4f\7\u0288\2\2\u0a4e\u0a4d\3\2\2\2\u0a4e\u0a4f\3\2\2\2\u0a4f\u0a52" + - "\3\2\2\2\u0a50\u0a51\7\u023c\2\2\u0a51\u0a53\5\u0202\u0102\2\u0a52\u0a50" + - "\3\2\2\2\u0a52\u0a53\3\2\2\2\u0a53\u0a54\3\2\2\2\u0a54\u0a55\7\35\2\2" + - "\u0a55\u0a5b\5\u015a\u00ae\2\u0a56\u0a58\7\u0288\2\2\u0a57\u0a59\7\u0169" + - "\2\2\u0a58\u0a57\3\2\2\2\u0a58\u0a59\3\2\2\2\u0a59\u0a5a\3\2\2\2\u0a5a" + - "\u0a5c\7\u0093\2\2\u0a5b\u0a56\3\2\2\2\u0a5b\u0a5c\3\2\2\2\u0a5c\u0099" + - "\3\2\2\2\u0a5d\u0a5e\7\u0080\2\2\u0a5e\u0a5f\7\u0186\2\2\u0a5f\u0a60\5" + - "\u0202\u0102\2\u0a60\u0a61\7\u0300\2\2\u0a61\u0a62\7\u01ba\2\2\u0a62\u0a63" + - "\7\u0319\2\2\u0a63\u0a68\5\u0202\u0102\2\u0a64\u0a65\7\u02fa\2\2\u0a65" + - "\u0a66\7\u02c8\2\2\u0a66\u0a67\7\u0319\2\2\u0a67\u0a69\5\u01cc\u00e7\2" + - "\u0a68\u0a64\3\2\2\2\u0a68\u0a69\3\2\2\2\u0a69\u0a6e\3\2\2\2\u0a6a\u0a6b" + - "\7\u02fa\2\2\u0a6b\u0a6c\7\u02c9\2\2\u0a6c\u0a6d\7\u0319\2\2\u0a6d\u0a6f" + - "\5\u01cc\u00e7\2\u0a6e\u0a6a\3\2\2\2\u0a6e\u0a6f\3\2\2\2\u0a6f\u0a74\3" + - "\2\2\2\u0a70\u0a71\7\u02fa\2\2\u0a71\u0a72\7\u02ca\2\2\u0a72\u0a73\7\u0319" + - "\2\2\u0a73\u0a75\5\u01cc\u00e7\2\u0a74\u0a70\3\2\2\2\u0a74\u0a75\3\2\2" + - "\2\u0a75\u0a7a\3\2\2\2\u0a76\u0a77\7\u02fa\2\2\u0a77\u0a78\7\u02cb\2\2" + - "\u0a78\u0a79\7\u0319\2\2\u0a79\u0a7b\5\u01cc\u00e7\2\u0a7a\u0a76\3\2\2" + - "\2\u0a7a\u0a7b\3\2\2\2\u0a7b\u0a80\3\2\2\2\u0a7c\u0a7d\7\u02fa\2\2\u0a7d" + - "\u0a7e\7\u01dc\2\2\u0a7e\u0a7f\7\u0319\2\2\u0a7f\u0a81\5\u01cc\u00e7\2" + - "\u0a80\u0a7c\3\2\2\2\u0a80\u0a81\3\2\2\2\u0a81\u0a86\3\2\2\2\u0a82\u0a83" + - "\7\u02fa\2\2\u0a83\u0a84\7\u0126\2\2\u0a84\u0a85\7\u0319\2\2\u0a85\u0a87" + - "\5\u01cc\u00e7\2\u0a86\u0a82\3\2\2\2\u0a86\u0a87\3\2\2\2\u0a87\u0a8a\3" + - "\2\2\2\u0a88\u0a89\7\u02fa\2\2\u0a89\u0a8b\7\u02cc\2\2\u0a8a\u0a88\3\2" + - "\2\2\u0a8a\u0a8b\3\2\2\2\u0a8b\u0a8e\3\2\2\2\u0a8c\u0a8d\7\u02fa\2\2\u0a8d" + - "\u0a8f\7\u02cd\2\2\u0a8e\u0a8c\3\2\2\2\u0a8e\u0a8f\3\2\2\2\u0a8f\u0a90" + - "\3\2\2\2\u0a90\u0a91\7\u0301\2\2\u0a91\u009b\3\2\2\2\u0a92\u0a93\7\u0186" + - "\2\2\u0a93\u0a94\7\u0307\2\2\u0a94\u0a9b\5\u0202\u0102\2\u0a95\u0a96\7" + - "\u0300\2\2\u0a96\u0a97\5\u0202\u0102\2\u0a97\u0a98\7\u02fa\2\2\u0a98\u0a99" + - "\5\u0202\u0102\2\u0a99\u0a9a\7\u0301\2\2\u0a9a\u0a9c\3\2\2\2\u0a9b\u0a95" + - "\3\2\2\2\u0a9b\u0a9c\3\2\2\2\u0a9c\u0ab1\3\2\2\2\u0a9d\u0a9e\7\u00f0\2" + - "\2\u0a9e\u0aa7\7\u0307\2\2\u0a9f\u0aa0\7\u0300\2\2\u0aa0\u0aa3\5\u0202" + - "\u0102\2\u0aa1\u0aa2\7\u02fa\2\2\u0aa2\u0aa4\5\u0202\u0102\2\u0aa3\u0aa1" + - "\3\2\2\2\u0aa3\u0aa4\3\2\2\2\u0aa4\u0aa5\3\2\2\2\u0aa5\u0aa6\7\u0301\2" + - "\2\u0aa6\u0aa8\3\2\2\2\u0aa7\u0a9f\3\2\2\2\u0aa7\u0aa8\3\2\2\2\u0aa8\u0aa9" + - "\3\2\2\2\u0aa9\u0aaa\5\u0202\u0102\2\u0aaa\u0aab\7\u0300\2\2\u0aab\u0aac" + - "\5\u01da\u00ee\2\u0aac\u0aad\7\u0301\2\2\u0aad\u0ab1\3\2\2\2\u0aae\u0aaf" + - "\7\u022b\2\2\u0aaf\u0ab1\5\u0202\u0102\2\u0ab0\u0a92\3\2\2\2\u0ab0\u0a9d" + - "\3\2\2\2\u0ab0\u0aae\3\2\2\2\u0ab1\u009d\3\2\2\2\u0ab2\u0ab3\7\u0080\2" + - "\2\u0ab3\u0ab4\7\u0186\2\2\u0ab4\u0ab5\7S\2\2\u0ab5\u0ab7\5\u0202\u0102" + - "\2\u0ab6\u0ab8\7\u009d\2\2\u0ab7\u0ab6\3\2\2\2\u0ab7\u0ab8\3\2\2\2\u0ab8" + - "\u0ab9\3\2\2\2\u0ab9\u0aba\7\u00e5\2\2\u0aba\u0abb\7\u025e\2\2\u0abb\u0abc" + - "\5\u0202\u0102\2\u0abc\u0abd\7\u0273\2\2\u0abd\u0ac0\5\u01dc\u00ef\2\u0abe" + - "\u0abf\7\u02ce\2\2\u0abf\u0ac1\5\u0202\u0102\2\u0ac0\u0abe\3\2\2\2\u0ac0" + - "\u0ac1\3\2\2\2\u0ac1\u0ac2\3\2\2\2\u0ac2\u0ac3\7\35\2\2\u0ac3\u0ac8\5" + - "\u009cO\2\u0ac4\u0ac5\7\u02fa\2\2\u0ac5\u0ac7\5\u009cO\2\u0ac6\u0ac4\3" + - "\2\2\2\u0ac7\u0aca\3\2\2\2\u0ac8\u0ac6\3\2\2\2\u0ac8\u0ac9\3\2\2\2\u0ac9" + - "\u009f\3\2\2\2\u0aca\u0ac8\3\2\2\2\u0acb\u0acc\7\u0080\2\2\u0acc\u0acd" + - "\7\u0186\2\2\u0acd\u0ace\7\u02ce\2\2\u0ace\u0acf\5\u0202\u0102\2\u0acf" + - "\u0ad0\7\u0273\2\2\u0ad0\u0ad1\5\u01dc\u00ef\2\u0ad1\u00a1\3\2\2\2\u0ad2" + - "\u0ad3\7\u0080\2\2\u0ad3\u0ad4\7\u02cf\2\2\u0ad4\u0ad5\5\u0202\u0102\2" + - "\u0ad5\u0ad6\7\u0182\2\2\u0ad6\u0ad9\5\u0202\u0102\2\u0ad7\u0ad8\7\u00e5" + - "\2\2\u0ad8\u0ada\t\f\2\2\u0ad9\u0ad7\3\2\2\2\u0ad9\u0ada\3\2\2\2\u0ada" + - "\u0add\3\2\2\2\u0adb\u0adc\7\u0249\2\2\u0adc\u0ade\5\u01fa\u00fe\2\u0add" + - "\u0adb\3\2\2\2\u0add\u0ade\3\2\2\2\u0ade\u0ae4\3\2\2\2\u0adf\u0ae0\7\u0273" + - "\2\2\u0ae0\u0ae1\7\u0300\2\2\u0ae1\u0ae2\5\u01ec\u00f7\2\u0ae2\u0ae3\7" + - "\u0301\2\2\u0ae3\u0ae5\3\2\2\2\u0ae4\u0adf\3\2\2\2\u0ae4\u0ae5\3\2\2\2" + - "\u0ae5\u0aec\3\2\2\2\u0ae6\u0ae7\7\u0288\2\2\u0ae7\u0ae8\7P\2\2\u0ae8" + - "\u0ae9\7\u0300\2\2\u0ae9\u0aea\5\u01ec\u00f7\2\u0aea\u0aeb\7\u0301\2\2" + - "\u0aeb\u0aed\3\2\2\2\u0aec\u0ae6\3\2\2\2\u0aec\u0aed\3\2\2\2\u0aed\u00a3" + - "\3\2\2\2\u0aee\u0aef\7\u0080\2\2\u0aef\u0af0\7\u01e7\2\2\u0af0\u0b1f\5" + - "\u01fa\u00fe\2\u0af1\u0af3\7\u0288\2\2\u0af2\u0af1\3\2\2\2\u0af2\u0af3" + - "\3\2\2\2\u0af3\u0b1b\3\2\2\2\u0af4\u0b1c\7\u0291\2\2\u0af5\u0b1c\7\u0292" + - "\2\2\u0af6\u0b1c\7\u0081\2\2\u0af7\u0b1c\7\u016a\2\2\u0af8\u0b1c\7\u0293" + - "\2\2\u0af9\u0b1c\7\u0294\2\2\u0afa\u0b1c\7\u0295\2\2\u0afb\u0b1c\7\u0296" + - "\2\2\u0afc\u0b1c\7\u0297\2\2\u0afd\u0b1c\7\u0298\2\2\u0afe\u0b1c\7\u0299" + - "\2\2\u0aff\u0b1c\7\u029a\2\2\u0b00\u0b1c\7\u029b\2\2\u0b01\u0b1c\7\u029c" + - "\2\2\u0b02\u0b03\7m\2\2\u0b03\u0b04\7\u0138\2\2\u0b04\u0b1c\7\u0307\2" + - "\2\u0b05\u0b07\7\u00c7\2\2\u0b06\u0b05\3\2\2\2\u0b06\u0b07\3\2\2\2\u0b07" + - "\u0b08\3\2\2\2\u0b08\u0b09\7\u01a3\2\2\u0b09\u0b1c\t\13\2\2\u0b0a\u0b0b" + - "\7\u0275\2\2\u0b0b\u0b0c\7\u026a\2\2\u0b0c\u0b1c\7\u030a\2\2\u0b0d\u0b0e" + - "\7\u010b\2\2\u0b0e\u0b0f\7\u01e7\2\2\u0b0f\u0b1c\5\u01ce\u00e8\2\u0b10" + - "\u0b11\7\u010b\2\2\u0b11\u0b12\7\u00fc\2\2\u0b12\u0b1c\5\u01ce\u00e8\2" + - "\u0b13\u0b14\7\u01e7\2\2\u0b14\u0b1c\5\u01ce\u00e8\2\u0b15\u0b16\7\16" + - "\2\2\u0b16\u0b1c\5\u01ce\u00e8\2\u0b17\u0b18\7\u026e\2\2\u0b18\u0b1c\5" + - "\u01ce\u00e8\2\u0b19\u0b1a\7\u0236\2\2\u0b1a\u0b1c\7\u0307\2\2\u0b1b\u0af4" + - "\3\2\2\2\u0b1b\u0af5\3\2\2\2\u0b1b\u0af6\3\2\2\2\u0b1b\u0af7\3\2\2\2\u0b1b" + - "\u0af8\3\2\2\2\u0b1b\u0af9\3\2\2\2\u0b1b\u0afa\3\2\2\2\u0b1b\u0afb\3\2" + - "\2\2\u0b1b\u0afc\3\2\2\2\u0b1b\u0afd\3\2\2\2\u0b1b\u0afe\3\2\2\2\u0b1b" + - "\u0aff\3\2\2\2\u0b1b\u0b00\3\2\2\2\u0b1b\u0b01\3\2\2\2\u0b1b\u0b02\3\2" + - "\2\2\u0b1b\u0b06\3\2\2\2\u0b1b\u0b0a\3\2\2\2\u0b1b\u0b0d\3\2\2\2\u0b1b" + - "\u0b10\3\2\2\2\u0b1b\u0b13\3\2\2\2\u0b1b\u0b15\3\2\2\2\u0b1b\u0b17\3\2" + - "\2\2\u0b1b\u0b19\3\2\2\2\u0b1c\u0b1d\3\2\2\2\u0b1d\u0b1b\3\2\2\2\u0b1d" + - "\u0b1e\3\2\2\2\u0b1e\u0b20\3\2\2\2\u0b1f\u0af2\3\2\2\2\u0b1f\u0b20\3\2" + - "\2\2\u0b20\u00a5\3\2\2\2\u0b21\u0b22\t\r\2\2\u0b22\u00a7\3\2\2\2\u0b23" + - "\u0b26\7\u0080\2\2\u0b24\u0b25\7\u0189\2\2\u0b25\u0b27\7\u01d8\2\2\u0b26" + - "\u0b24\3\2\2\2\u0b26\u0b27\3\2\2\2\u0b27\u0b28\3\2\2\2\u0b28\u0b29\7\u01f2" + - "\2\2\u0b29\u0b2a\5\u01cc\u00e7\2\u0b2a\u0b2b\7\35\2\2\u0b2b\u0b2c\7\u0182" + - "\2\2\u0b2c\u0b2d\5\u00a6T\2\u0b2d\u0b2e\7\u0249\2\2\u0b2e\u0b31\5\u0202" + - "\u0102\2\u0b2f\u0b30\7\u0285\2\2\u0b30\u0b32\5\u01ec\u00f7\2\u0b31\u0b2f" + - "\3\2\2\2\u0b31\u0b32\3\2\2\2\u0b32\u0b33\3\2\2\2\u0b33\u0b35\7\u00bb\2" + - "\2\u0b34\u0b36\t\16\2\2\u0b35\u0b34\3\2\2\2\u0b35\u0b36\3\2\2\2\u0b36" + - "\u0b39\3\2\2\2\u0b37\u0b3a\7\u0170\2\2\u0b38\u0b3a\5\u0202\u0102\2\u0b39" + - "\u0b37\3\2\2\2\u0b39\u0b38\3\2\2\2\u0b3a\u00a9\3\2\2\2\u0b3b\u0b3c\7\u0080" + - "\2\2\u0b3c\u0b3d\7\u01f5\2\2\u0b3d\u0b40\5\u0202\u0102\2\u0b3e\u0b3f\7" + - "\'\2\2\u0b3f\u0b41\5\u01fa\u00fe\2\u0b40\u0b3e\3\2\2\2\u0b40\u0b41\3\2" + - "\2\2\u0b41\u0b43\3\2\2\2\u0b42\u0b44\5\u0204\u0103\2\u0b43\u0b42\3\2\2" + - "\2\u0b43\u0b44\3\2\2\2\u0b44\u0b5e\3\2\2\2\u0b45\u0b46\7\u0080\2\2\u0b46" + - "\u0b47\7\u01f5\2\2\u0b47\u0b48\7\'\2\2\u0b48\u0b4a\5\u01fa\u00fe\2\u0b49" + - "\u0b4b\5\u0204\u0103\2\u0b4a\u0b49\3\2\2\2\u0b4a\u0b4b\3\2\2\2\u0b4b\u0b5e" + - "\3\2\2\2\u0b4c\u0b4d\7\u0080\2\2\u0b4d\u0b4e\7\u01f5\2\2\u0b4e\u0b4f\7" + - "\u02b4\2\2\u0b4f\u0b50\7\u016f\2\2\u0b50\u0b51\7\u00d5\2\2\u0b51\u0b54" + - "\5\u0202\u0102\2\u0b52\u0b53\7\'\2\2\u0b53\u0b55\5\u01fa\u00fe\2\u0b54" + - "\u0b52\3\2\2\2\u0b54\u0b55\3\2\2\2\u0b55\u0b5e\3\2\2\2\u0b56\u0b57\7\u0080" + - "\2\2\u0b57\u0b58\7\u01f5\2\2\u0b58\u0b59\7\u02b4\2\2\u0b59\u0b5a\7\u016f" + - "\2\2\u0b5a\u0b5b\7\u00d5\2\2\u0b5b\u0b5c\7\'\2\2\u0b5c\u0b5e\5\u01fa\u00fe" + - "\2\u0b5d\u0b3b\3\2\2\2\u0b5d\u0b45\3\2\2\2\u0b5d\u0b4c\3\2\2\2\u0b5d\u0b56" + - "\3\2\2\2\u0b5e\u00ab\3\2\2\2\u0b5f\u0b61\7\u0080\2\2\u0b60\u0b62\t\17" + - "\2\2\u0b61\u0b60\3\2\2\2\u0b61\u0b62\3\2\2\2\u0b62\u0b63\3\2\2\2\u0b63" + - "\u0b67\7\u0203\2\2\u0b64\u0b65\7\u02b4\2\2\u0b65\u0b66\7\u016f\2\2\u0b66" + - "\u0b68\7\u00d5\2\2\u0b67\u0b64\3\2\2\2\u0b67\u0b68\3\2\2\2\u0b68\u0b69" + - "\3\2\2\2\u0b69\u0b6f\5\u0202\u0102\2\u0b6a\u0b6c\7\u010d\2\2\u0b6b\u0b6d" + - "\78\2\2\u0b6c\u0b6b\3\2\2\2\u0b6c\u0b6d\3\2\2\2\u0b6d\u0b6e\3\2\2\2\u0b6e" + - "\u0b70\7\u0307\2\2\u0b6f\u0b6a\3\2\2\2\u0b6f\u0b70\3\2\2\2\u0b70\u0b75" + - "\3\2\2\2\u0b71\u0b72\7\u0155\2\2\u0b72\u0b76\7\u0307\2\2\u0b73\u0b74\7" + - "\u0169\2\2\u0b74\u0b76\7\u0155\2\2\u0b75\u0b71\3\2\2\2\u0b75\u0b73\3\2" + - "\2\2\u0b75\u0b76\3\2\2\2\u0b76\u0b7b\3\2\2\2\u0b77\u0b78\7\u014c\2\2\u0b78" + - "\u0b7c\7\u0307\2\2\u0b79\u0b7a\7\u0169\2\2\u0b7a\u0b7c\7\u014c\2\2\u0b7b" + - "\u0b77\3\2\2\2\u0b7b\u0b79\3\2\2\2\u0b7b\u0b7c\3\2\2\2\u0b7c\u0b82\3\2" + - "\2\2\u0b7d\u0b7f\7\u0222\2\2\u0b7e\u0b80\7\u0288\2\2\u0b7f\u0b7e\3\2\2" + - "\2\u0b7f\u0b80\3\2\2\2\u0b80\u0b81\3\2\2\2\u0b81\u0b83\7\u0307\2\2\u0b82" + - "\u0b7d\3\2\2\2\u0b82\u0b83\3\2\2\2\u0b83\u0b86\3\2\2\2\u0b84\u0b85\7:" + - "\2\2\u0b85\u0b87\7\u0307\2\2\u0b86\u0b84\3\2\2\2\u0b86\u0b87\3\2\2\2\u0b87" + - "\u0b8c\3\2\2\2\u0b88\u0b8a\7\u0169\2\2\u0b89\u0b88\3\2\2\2\u0b89\u0b8a" + - "\3\2\2\2\u0b8a\u0b8b\3\2\2\2\u0b8b\u0b8d\7\u0092\2\2\u0b8c\u0b89\3\2\2" + - "\2\u0b8c\u0b8d\3\2\2\2\u0b8d\u0b97\3\2\2\2\u0b8e\u0b8f\7\u02d0\2\2\u0b8f" + - "\u0b95\78\2\2\u0b90\u0b91\5\u0202\u0102\2\u0b91\u0b92\7\u0309\2\2\u0b92" + - "\u0b93\5\u0202\u0102\2\u0b93\u0b96\3\2\2\2\u0b94\u0b96\7\u016c\2\2\u0b95" + - "\u0b90\3\2\2\2\u0b95\u0b94\3\2\2\2\u0b96\u0b98\3\2\2\2\u0b97\u0b8e\3\2" + - "\2\2\u0b97\u0b98\3\2\2\2\u0b98\u00ad\3\2\2\2\u0b99\u0b9a\5\u0206\u0104" + - "\2\u0b9a\u00af\3\2\2\2\u0b9b\u0b9c\5\u0206\u0104\2\u0b9c\u00b1\3\2\2\2" + - "\u0b9d\u0b9e\5\u0206\u0104\2\u0b9e\u00b3\3\2\2\2\u0b9f\u0ba0\5\u0206\u0104" + - "\2\u0ba0\u00b5\3\2\2\2\u0ba1\u0ba2\5\u0206\u0104\2\u0ba2\u00b7\3\2\2\2" + - "\u0ba3\u0ba4\5\u0206\u0104\2\u0ba4\u00b9\3\2\2\2\u0ba5\u0ba6\5\u0206\u0104" + - "\2\u0ba6\u00bb\3\2\2\2\u0ba7\u0ba8\5\u0206\u0104\2\u0ba8\u00bd\3\2\2\2" + - "\u0ba9\u0baa\5\u0206\u0104\2\u0baa\u00bf\3\2\2\2\u0bab\u0bac\5\u0206\u0104" + - "\2\u0bac\u00c1\3\2\2\2\u0bad\u0bae\5\u0206\u0104\2\u0bae\u00c3\3\2\2\2" + - "\u0baf\u0bb0\5\u0206\u0104\2\u0bb0\u00c5\3\2\2\2\u0bb1\u0bb2\5\u0206\u0104" + - "\2\u0bb2\u00c7\3\2\2\2\u0bb3\u0bb4\5\u0206\u0104\2\u0bb4\u00c9\3\2\2\2" + - "\u0bb5\u0bb6\5\u0206\u0104\2\u0bb6\u00cb\3\2\2\2\u0bb7\u0bba\7\u0080\2" + - "\2\u0bb8\u0bb9\7\u0189\2\2\u0bb9\u0bbb\7\u01d8\2\2\u0bba\u0bb8\3\2\2\2" + - "\u0bba\u0bbb\3\2\2\2\u0bbb\u0bbd\3\2\2\2\u0bbc\u0bbe\t\17\2\2\u0bbd\u0bbc" + - "\3\2\2\2\u0bbd\u0bbe\3\2\2\2\u0bbe\u0bc0\3\2\2\2\u0bbf\u0bc1\7\u01c5\2" + - "\2\u0bc0\u0bbf\3\2\2\2\u0bc0\u0bc1\3\2\2\2\u0bc1\u0bc2\3\2\2\2\u0bc2\u0bc3" + - "\7\u0281\2\2\u0bc3\u0bc8\5\u01cc\u00e7\2\u0bc4\u0bc5\7\u0300\2\2\u0bc5" + - "\u0bc6\5\u01ce\u00e8\2\u0bc6\u0bc7\7\u0301\2\2\u0bc7\u0bc9\3\2\2\2\u0bc8" + - "\u0bc4\3\2\2\2\u0bc8\u0bc9\3\2\2\2\u0bc9\u0bcf\3\2\2\2\u0bca\u0bcb\7\u0288" + - "\2\2\u0bcb\u0bcc\7\u0300\2\2\u0bcc\u0bcd\5\u01d4\u00eb\2\u0bcd\u0bce\7" + - "\u0301\2\2\u0bce\u0bd0\3\2\2\2\u0bcf\u0bca\3\2\2\2\u0bcf\u0bd0\3\2\2\2" + - "\u0bd0\u0bd1\3\2\2\2\u0bd1\u0bd4\7\35\2\2\u0bd2\u0bd5\5\u015a\u00ae\2" + - "\u0bd3\u0bd5\5\u017e\u00c0\2\u0bd4\u0bd2\3\2\2\2\u0bd4\u0bd3\3\2\2\2\u0bd5" + - "\u0bdc\3\2\2\2\u0bd6\u0bd8\7\u0288\2\2\u0bd7\u0bd9\t\20\2\2\u0bd8\u0bd7" + - "\3\2\2\2\u0bd8\u0bd9\3\2\2\2\u0bd9\u0bda\3\2\2\2\u0bda\u0bdb\7P\2\2\u0bdb" + - "\u0bdd\7\u0187\2\2\u0bdc\u0bd6\3\2\2\2\u0bdc\u0bdd\3\2\2\2\u0bdd\u00cd" + - "\3\2\2\2\u0bde\u0bdf\5\u0206\u0104\2\u0bdf\u00cf\3\2\2\2\u0be0\u0be1\5" + - "\u0206\u0104\2\u0be1\u00d1\3\2\2\2\u0be2\u0be4\5\u015e\u00b0\2\u0be3\u0be2" + - "\3\2\2\2\u0be3\u0be4\3\2\2\2\u0be4\u0be5\3\2\2\2\u0be5\u0be6\7\u00a5\2" + - "\2\u0be6\u0be8\7\u00ee\2\2\u0be7\u0be9\7\u0183\2\2\u0be8\u0be7\3\2\2\2" + - "\u0be8\u0be9\3\2\2\2\u0be9\u0bea\3\2\2\2\u0bea\u0bec\5\u01d6\u00ec\2\u0beb" + - "\u0bed\7\u02ff\2\2\u0bec\u0beb\3\2\2\2\u0bec\u0bed\3\2\2\2\u0bed\u0bf2" + - "\3\2\2\2\u0bee\u0bf0\7\35\2\2\u0bef\u0bee\3\2\2\2\u0bef\u0bf0\3\2\2\2" + - "\u0bf0\u0bf1\3\2\2\2\u0bf1\u0bf3\5\u020c\u0107\2\u0bf2\u0bef\3\2\2\2\u0bf2" + - "\u0bf3\3\2\2\2\u0bf3\u0bf6\3\2\2\2\u0bf4\u0bf5\7\u0273\2\2\u0bf5\u0bf7" + - "\5\u01d0\u00e9\2\u0bf6\u0bf4\3\2\2\2\u0bf6\u0bf7\3\2\2\2\u0bf7\u0bfd\3" + - "\2\2\2\u0bf8\u0bfe\5\u0184\u00c3\2\u0bf9\u0bfa\7\u0285\2\2\u0bfa\u0bfb" + - "\7\u0087\2\2\u0bfb\u0bfc\7\u017d\2\2\u0bfc\u0bfe\5\u0202\u0102\2\u0bfd" + - "\u0bf8\3\2\2\2\u0bfd\u0bf9\3\2\2\2\u0bfd\u0bfe\3\2\2\2\u0bfe\u0c00\3\2" + - "\2\2\u0bff\u0c01\5\u01b0\u00d9\2\u0c00\u0bff\3\2\2\2\u0c00\u0c01\3\2\2" + - "\2\u0c01\u00d3\3\2\2\2\u0c02\u0c03\7\u00b7\2\2\u0c03\u0c04\t\21\2\2\u0c04" + - "\u00d5\3\2\2\2\u0c05\u0c2f\5\u00d8m\2\u0c06\u0c2f\5\u00dan\2\u0c07\u0c2f" + - "\5\u00dco\2\u0c08\u0c2f\5\u00dep\2\u0c09\u0c2f\5\u00e0q\2\u0c0a\u0c2f" + - "\5\u00e2r\2\u0c0b\u0c2f\5\u00e4s\2\u0c0c\u0c2f\5\u00e6t\2\u0c0d\u0c2f" + - "\5\u00e8u\2\u0c0e\u0c2f\5\u00eav\2\u0c0f\u0c2f\5\u00ecw\2\u0c10\u0c2f" + - "\5\u00eex\2\u0c11\u0c2f\5\u00f0y\2\u0c12\u0c2f\5\u00f2z\2\u0c13\u0c2f" + - "\5\u00f4{\2\u0c14\u0c2f\5\u00f6|\2\u0c15\u0c2f\5\u00f8}\2\u0c16\u0c2f" + - "\5\u00fa~\2\u0c17\u0c2f\5\u00fc\177\2\u0c18\u0c2f\5\u00fe\u0080\2\u0c19" + - "\u0c2f\5\u0100\u0081\2\u0c1a\u0c2f\5\u0102\u0082\2\u0c1b\u0c2f\5\u0104" + - "\u0083\2\u0c1c\u0c2f\5\u0106\u0084\2\u0c1d\u0c2f\5\u0108\u0085\2\u0c1e" + - "\u0c2f\5\u010a\u0086\2\u0c1f\u0c2f\5\u010c\u0087\2\u0c20\u0c2f\5\u010e" + - "\u0088\2\u0c21\u0c2f\5\u0110\u0089\2\u0c22\u0c2f\5\u0112\u008a\2\u0c23" + - "\u0c2f\5\u0114\u008b\2\u0c24\u0c2f\5\u0116\u008c\2\u0c25\u0c2f\5\u0118" + - "\u008d\2\u0c26\u0c2f\5\u011a\u008e\2\u0c27\u0c2f\5\u011c\u008f\2\u0c28" + - "\u0c2f\5\u011e\u0090\2\u0c29\u0c2f\5\u0120\u0091\2\u0c2a\u0c2f\5\u0122" + - "\u0092\2\u0c2b\u0c2f\5\u0124\u0093\2\u0c2c\u0c2f\5\u0126\u0094\2\u0c2d" + - "\u0c2f\5\u0128\u0095\2\u0c2e\u0c05\3\2\2\2\u0c2e\u0c06\3\2\2\2\u0c2e\u0c07" + - "\3\2\2\2\u0c2e\u0c08\3\2\2\2\u0c2e\u0c09\3\2\2\2\u0c2e\u0c0a\3\2\2\2\u0c2e" + - "\u0c0b\3\2\2\2\u0c2e\u0c0c\3\2\2\2\u0c2e\u0c0d\3\2\2\2\u0c2e\u0c0e\3\2" + - "\2\2\u0c2e\u0c0f\3\2\2\2\u0c2e\u0c10\3\2\2\2\u0c2e\u0c11\3\2\2\2\u0c2e" + - "\u0c12\3\2\2\2\u0c2e\u0c13\3\2\2\2\u0c2e\u0c14\3\2\2\2\u0c2e\u0c15\3\2" + - "\2\2\u0c2e\u0c16\3\2\2\2\u0c2e\u0c17\3\2\2\2\u0c2e\u0c18\3\2\2\2\u0c2e" + - "\u0c19\3\2\2\2\u0c2e\u0c1a\3\2\2\2\u0c2e\u0c1b\3\2\2\2\u0c2e\u0c1c\3\2" + - "\2\2\u0c2e\u0c1d\3\2\2\2\u0c2e\u0c1e\3\2\2\2\u0c2e\u0c1f\3\2\2\2\u0c2e" + - "\u0c20\3\2\2\2\u0c2e\u0c21\3\2\2\2\u0c2e\u0c22\3\2\2\2\u0c2e\u0c23\3\2" + - "\2\2\u0c2e\u0c24\3\2\2\2\u0c2e\u0c25\3\2\2\2\u0c2e\u0c26\3\2\2\2\u0c2e" + - "\u0c27\3\2\2\2\u0c2e\u0c28\3\2\2\2\u0c2e\u0c29\3\2\2\2\u0c2e\u0c2a\3\2" + - "\2\2\u0c2e\u0c2b\3\2\2\2\u0c2e\u0c2c\3\2\2\2\u0c2e\u0c2d\3\2\2\2\u0c2f" + - "\u00d7\3\2\2\2\u0c30\u0c31\7\u00be\2\2\u0c31\u0c32\7\n\2\2\u0c32\u0c35" + - "\7\u0152\2\2\u0c33\u0c34\7\u02b4\2\2\u0c34\u0c36\7\u00d5\2\2\u0c35\u0c33" + - "\3\2\2\2\u0c35\u0c36\3\2\2\2\u0c36\u0c37\3\2\2\2\u0c37\u0c39\5\u0202\u0102" + - "\2\u0c38\u0c3a\t\3\2\2\u0c39\u0c38\3\2\2\2\u0c39\u0c3a\3\2\2\2\u0c3a\u00d9" + - "\3\2\2\2\u0c3b\u0c3c\7\u00be\2\2\u0c3c\u0c3f\7\20\2\2\u0c3d\u0c3e\7\u02b4" + - "\2\2\u0c3e\u0c40\7\u00d5\2\2\u0c3f\u0c3d\3\2\2\2\u0c3f\u0c40\3\2\2\2\u0c40" + - "\u0c41\3\2\2\2\u0c41\u0c42\5\u0202\u0102\2\u0c42\u0c43\7\u0300\2\2\u0c43" + - "\u0c44\5\u01ee\u00f8\2\u0c44\u0c45\7\u0301\2\2\u0c45\u00db\3\2\2\2\u0c46" + - "\u0c47\7\u00be\2\2\u0c47\u0c4a\7A\2\2\u0c48\u0c49\7\u02b4\2\2\u0c49\u0c4b" + - "\7\u00d5\2\2\u0c4a\u0c48\3\2\2\2\u0c4a\u0c4b\3\2\2\2\u0c4b\u0c4c\3\2\2" + - "\2\u0c4c\u0c4d\7\u0300\2\2\u0c4d\u0c4e\5\u01d8\u00ed\2\u0c4e\u0c4f\7\35" + - "\2\2\u0c4f\u0c50\5\u0202\u0102\2\u0c50\u0c52\7\u0301\2\2\u0c51\u0c53\t" + - "\3\2\2\u0c52\u0c51\3\2\2\2\u0c52\u0c53\3\2\2\2\u0c53\u00dd\3\2\2\2\u0c54" + - "\u0c55\7\u00be\2\2\u0c55\u0c58\7[\2\2\u0c56\u0c57\7\u02b4\2\2\u0c57\u0c59" + - "\7\u00d5\2\2\u0c58\u0c56\3\2\2\2\u0c58\u0c59\3\2\2\2\u0c59\u0c5a\3\2\2" + - "\2\u0c5a\u0c5c\5\u01d0\u00e9\2\u0c5b\u0c5d\t\3\2\2\u0c5c\u0c5b\3\2\2\2" + - "\u0c5c\u0c5d\3\2\2\2\u0c5d\u00df\3\2\2\2\u0c5e\u0c5f\7\u00be\2\2\u0c5f" + - "\u0c62\7w\2\2\u0c60\u0c61\7\u02b4\2\2\u0c61\u0c63\7\u00d5\2\2\u0c62\u0c60" + - "\3\2\2\2\u0c62\u0c63\3\2\2\2\u0c63\u0c64\3\2\2\2\u0c64\u0c66\5\u0202\u0102" + - "\2\u0c65\u0c67\t\3\2\2\u0c66\u0c65\3\2\2\2\u0c66\u0c67\3\2\2\2\u0c67\u00e1" + - "\3\2\2\2\u0c68\u0c69\7\u00be\2\2\u0c69\u0c6c\7\u0094\2\2\u0c6a\u0c6b\7" + - "\u02b4\2\2\u0c6b\u0c6d\7\u00d5\2\2\u0c6c\u0c6a\3\2\2\2\u0c6c\u0c6d\3\2" + - "\2\2\u0c6d\u0c6e\3\2\2\2\u0c6e\u0c6f\5\u0202\u0102\2\u0c6f\u00e3\3\2\2" + - "\2\u0c70\u0c71\7\u00be\2\2\u0c71\u0c74\7\u00bc\2\2\u0c72\u0c73\7\u02b4" + - "\2\2\u0c73\u0c75\7\u00d5\2\2\u0c74\u0c72\3\2\2\2\u0c74\u0c75\3\2\2\2\u0c75" + - "\u0c76\3\2\2\2\u0c76\u0c78\5\u01d0\u00e9\2\u0c77\u0c79\t\3\2\2\u0c78\u0c77" + - "\3\2\2\2\u0c78\u0c79\3\2\2\2\u0c79\u00e5\3\2\2\2\u0c7a\u0c7b\7\u00be\2" + - "\2\u0c7b\u0c7c\7\u02bc\2\2\u0c7c\u0c7f\7\u0256\2\2\u0c7d\u0c7e\7\u02b4" + - "\2\2\u0c7e\u0c80\7\u00d5\2\2\u0c7f\u0c7d\3\2\2\2\u0c7f\u0c80\3\2\2\2\u0c80" + - "\u0c81\3\2\2\2\u0c81\u0c83\5\u0202\u0102\2\u0c82\u0c84\t\3\2\2\u0c83\u0c82" + - "\3\2\2\2\u0c83\u0c84\3\2\2\2\u0c84\u00e7\3\2\2\2\u0c85\u0c86\7\u00be\2" + - "\2\u0c86\u0c89\7\u00d9\2\2\u0c87\u0c88\7\u02b4\2\2\u0c88\u0c8a\7\u00d5" + - "\2\2\u0c89\u0c87\3\2\2\2\u0c89\u0c8a\3\2\2\2\u0c8a\u0c8b\3\2\2\2\u0c8b" + - "\u0c8d\5\u01d0\u00e9\2\u0c8c\u0c8e\t\3\2\2\u0c8d\u0c8c\3\2\2\2\u0c8d\u0c8e" + - "\3\2\2\2\u0c8e\u00e9\3\2\2\2\u0c8f\u0c90\7\u00be\2\2\u0c90\u0c91\7\u00e7" + - "\2\2\u0c91\u0c92\7\u0093\2\2\u0c92\u0c95\7\u02bd\2\2\u0c93\u0c94\7\u02b4" + - "\2\2\u0c94\u0c96\7\u00d5\2\2\u0c95\u0c93\3\2\2\2\u0c95\u0c96\3\2\2\2\u0c96" + - "\u0c97\3\2\2\2\u0c97\u0c99\5\u01d0\u00e9\2\u0c98\u0c9a\t\3\2\2\u0c99\u0c98" + - "\3\2\2\2\u0c99\u0c9a\3\2\2\2\u0c9a\u00eb\3\2\2\2\u0c9b\u0c9c\7\u00be\2" + - "\2\u0c9c\u0c9d\7\u00e7\2\2\u0c9d\u0ca0\7\u0239\2\2\u0c9e\u0c9f\7\u02b4" + - "\2\2\u0c9f\u0ca1\7\u00d5\2\2\u0ca0\u0c9e\3\2\2\2\u0ca0\u0ca1\3\2\2\2\u0ca1" + - "\u0ca2\3\2\2\2\u0ca2\u0ca4\5\u01d0\u00e9\2\u0ca3\u0ca5\t\3\2\2\u0ca4\u0ca3" + - "\3\2\2\2\u0ca4\u0ca5\3\2\2\2\u0ca5\u00ed\3\2\2\2\u0ca6\u0ca7\7\u00be\2" + - "\2\u0ca7\u0caa\7\u00f0\2\2\u0ca8\u0ca9\7\u02b4\2\2\u0ca9\u0cab\7\u00d5" + - "\2\2\u0caa\u0ca8\3\2\2\2\u0caa\u0cab\3\2\2\2\u0cab\u0cac\3\2\2\2\u0cac" + - "\u0cae\5\u01c2\u00e2\2\u0cad\u0caf\t\3\2\2\u0cae\u0cad\3\2\2\2\u0cae\u0caf" + - "\3\2\2\2\u0caf\u00ef\3\2\2\2\u0cb0\u0cb1\7\u00be\2\2\u0cb1\u0cb4\7\u00fc" + - "\2\2\u0cb2\u0cb3\7\u02b4\2\2\u0cb3\u0cb5\7\u00d5\2\2\u0cb4\u0cb2\3\2\2" + - "\2\u0cb4\u0cb5\3\2\2\2\u0cb5\u0cb6\3\2\2\2\u0cb6\u0cb7\5\u01d0\u00e9\2" + - "\u0cb7\u00f1\3\2\2\2\u0cb8\u0cb9\7\u00be\2\2\u0cb9\u0cbb\7\u010e\2\2\u0cba" + - "\u0cbc\7\u02c5\2\2\u0cbb\u0cba\3\2\2\2\u0cbb\u0cbc\3\2\2\2\u0cbc\u0cbf" + - "\3\2\2\2\u0cbd\u0cbe\7\u02b4\2\2\u0cbe\u0cc0\7\u00d5\2\2\u0cbf\u0cbd\3" + - "\2\2\2\u0cbf\u0cc0\3\2\2\2\u0cc0\u0cc1\3\2\2\2\u0cc1\u0cc3\5\u01ce\u00e8" + - "\2\u0cc2\u0cc4\t\3\2\2\u0cc3\u0cc2\3\2\2\2\u0cc3\u0cc4\3\2\2\2\u0cc4\u00f3" + - "\3\2\2\2\u0cc5\u0cc7\7\u00be\2\2\u0cc6\u0cc8\7\u01b9\2\2\u0cc7\u0cc6\3" + - "\2\2\2\u0cc7\u0cc8\3\2\2\2\u0cc8\u0cc9\3\2\2\2\u0cc9\u0ccc\7\u012d\2\2" + - "\u0cca\u0ccb\7\u02b4\2\2\u0ccb\u0ccd\7\u00d5\2\2\u0ccc\u0cca\3\2\2\2\u0ccc" + - "\u0ccd\3\2\2\2\u0ccd\u0cce\3\2\2\2\u0cce\u0cd0\5\u0202\u0102\2\u0ccf\u0cd1" + - "\t\3\2\2\u0cd0\u0ccf\3\2\2\2\u0cd0\u0cd1\3\2\2\2\u0cd1\u00f5\3\2\2\2\u0cd2" + - "\u0cd3\7\u00be\2\2\u0cd3\u0cd4\7\u02c7\2\2\u0cd4\u0cd7\7\u0281\2\2\u0cd5" + - "\u0cd6\7\u02b4\2\2\u0cd6\u0cd8\7\u00d5\2\2\u0cd7\u0cd5\3\2\2\2\u0cd7\u0cd8" + - "\3\2\2\2\u0cd8\u0cd9\3\2\2\2\u0cd9\u0cdb\5\u01d0\u00e9\2\u0cda\u0cdc\t" + - "\3\2\2\u0cdb\u0cda\3\2\2\2\u0cdb\u0cdc\3\2\2\2\u0cdc\u00f7\3\2\2\2\u0cdd" + - "\u0cde\5\u0206\u0104\2\u0cde\u00f9\3\2\2\2\u0cdf\u0ce0\7\u00be\2\2\u0ce0" + - "\u0ce1\7\u0186\2\2\u0ce1\u0ce4\7S\2\2\u0ce2\u0ce3\7\u02b4\2\2\u0ce3\u0ce5" + - "\7\u00d5\2\2\u0ce4\u0ce2\3\2\2\2\u0ce4\u0ce5\3\2\2\2\u0ce5\u0ce6\3\2\2" + - "\2\u0ce6\u0ce7\5\u0202\u0102\2\u0ce7\u0ce8\7\u0273\2\2\u0ce8\u0cea\5\u01dc" + - "\u00ef\2\u0ce9\u0ceb\t\3\2\2\u0cea\u0ce9\3\2\2\2\u0cea\u0ceb\3\2\2\2\u0ceb" + - "\u00fb\3\2\2\2\u0cec\u0ced\7\u00be\2\2\u0ced\u0cee\7\u0186\2\2\u0cee\u0cf1" + - "\7\u02ce\2\2\u0cef\u0cf0\7\u02b4\2\2\u0cf0\u0cf2\7\u00d5\2\2\u0cf1\u0cef" + - "\3\2\2\2\u0cf1\u0cf2\3\2\2\2\u0cf2\u0cf3\3\2\2\2\u0cf3\u0cf4\5\u0202\u0102" + - "\2\u0cf4\u0cf5\7\u0273\2\2\u0cf5\u0cf7\5\u01dc\u00ef\2\u0cf6\u0cf8\t\3" + - "\2\2\u0cf7\u0cf6\3\2\2\2\u0cf7\u0cf8\3\2\2\2\u0cf8\u00fd\3\2\2\2\u0cf9" + - "\u0cfa\7\u00be\2\2\u0cfa\u0cfb\7\u02d0\2\2\u0cfb\u0cfc\78\2\2\u0cfc\u0cfe" + - "\5\u01fc\u00ff\2\u0cfd\u0cff\t\3\2\2\u0cfe\u0cfd\3\2\2\2\u0cfe\u0cff\3" + - "\2\2\2\u0cff\u00ff\3\2\2\2\u0d00\u0d01\7\u00be\2\2\u0d01\u0d04\7\u02cf" + - "\2\2\u0d02\u0d03\7\u02b4\2\2\u0d03\u0d05\7\u00d5\2\2\u0d04\u0d02\3\2\2" + - "\2\u0d04\u0d05\3\2\2\2\u0d05\u0d06\3\2\2\2\u0d06\u0d07\5\u0202\u0102\2" + - "\u0d07\u0d08\7\u0182\2\2\u0d08\u0d0a\5\u0202\u0102\2\u0d09\u0d0b\t\3\2" + - "\2\u0d0a\u0d09\3\2\2\2\u0d0a\u0d0b\3\2\2\2\u0d0b\u0101\3\2\2\2\u0d0c\u0d0d" + - "\7\u00be\2\2\u0d0d\u0d10\7\u01bc\2\2\u0d0e\u0d0f\7\u02b4\2\2\u0d0f\u0d11" + - "\7\u00d5\2\2\u0d10\u0d0e\3\2\2\2\u0d10\u0d11\3\2\2\2\u0d11\u0d12\3\2\2" + - "\2\u0d12\u0d14\5\u01d0\u00e9\2\u0d13\u0d15\t\3\2\2\u0d14\u0d13\3\2\2\2" + - "\u0d14\u0d15\3\2\2\2\u0d15\u0103\3\2\2\2\u0d16\u0d17\7\u00be\2\2\u0d17" + - "\u0d1a\7\u01e7\2\2\u0d18\u0d19\7\u02b4\2\2\u0d19\u0d1b\7\u00d5\2\2\u0d1a" + - "\u0d18\3\2\2\2\u0d1a\u0d1b\3\2\2\2\u0d1b\u0d1c\3\2\2\2\u0d1c\u0d1d\5\u01d0" + - "\u00e9\2\u0d1d\u0105\3\2\2\2\u0d1e\u0d1f\7\u00be\2\2\u0d1f\u0d22\7\u01f2" + - "\2\2\u0d20\u0d21\7\u02b4\2\2\u0d21\u0d23\7\u00d5\2\2\u0d22\u0d20\3\2\2" + - "\2\u0d22\u0d23\3\2\2\2\u0d23\u0d24\3\2\2\2\u0d24\u0d25\5\u01cc\u00e7\2" + - "\u0d25\u0d26\7\u0182\2\2\u0d26\u0d28\5\u0202\u0102\2\u0d27\u0d29\t\3\2" + - "\2\u0d28\u0d27\3\2\2\2\u0d28\u0d29\3\2\2\2\u0d29\u0107\3\2\2\2\u0d2a\u0d2b" + - "\7\u00be\2\2\u0d2b\u0d2e\7\u01f5\2\2\u0d2c\u0d2d\7\u02b4\2\2\u0d2d\u0d2f" + - "\7\u00d5\2\2\u0d2e\u0d2c\3\2\2\2\u0d2e\u0d2f\3\2\2\2\u0d2f\u0d30\3\2\2" + - "\2\u0d30\u0d32\5\u01d0\u00e9\2\u0d31\u0d33\t\3\2\2\u0d32\u0d31\3\2\2\2" + - "\u0d32\u0d33\3\2\2\2\u0d33\u0109\3\2\2\2\u0d34\u0d35\7\u00be\2\2\u0d35" + - "\u0d38\7\u0203\2\2\u0d36\u0d37\7\u02b4\2\2\u0d37\u0d39\7\u00d5\2\2\u0d38" + - "\u0d36\3\2\2\2\u0d38\u0d39\3\2\2\2\u0d39\u0d3a\3\2\2\2\u0d3a\u0d3c\5\u01d0" + - "\u00e9\2\u0d3b\u0d3d\t\3\2\2\u0d3c\u0d3b\3\2\2\2\u0d3c\u0d3d\3\2\2\2\u0d3d" + - "\u010b\3\2\2\2\u0d3e\u0d3f\7\u00be\2\2\u0d3f\u0d42\7\u02be\2\2\u0d40\u0d41" + - "\7\u02b4\2\2\u0d41\u0d43\7\u00d5\2\2\u0d42\u0d40\3\2\2\2\u0d42\u0d43\3" + - "\2\2\2\u0d43\u0d44\3\2\2\2\u0d44\u0d46\5\u01d0\u00e9\2\u0d45\u0d47\t\3" + - "\2\2\u0d46\u0d45\3\2\2\2\u0d46\u0d47\3\2\2\2\u0d47\u010d\3\2\2\2\u0d48" + - "\u0d49\7\u00be\2\2\u0d49\u0d4c\7\u0226\2\2\u0d4a\u0d4b\7\u02b4\2\2\u0d4b" + - "\u0d4d\7\u00d5\2\2\u0d4c\u0d4a\3\2\2\2\u0d4c\u0d4d\3\2\2\2\u0d4d\u0d4e" + - "\3\2\2\2\u0d4e\u0d4f\5\u01d0\u00e9\2\u0d4f\u010f\3\2\2\2\u0d50\u0d51\7" + - "\u00be\2\2\u0d51\u0d54\7\u0232\2\2\u0d52\u0d53\7\u02b4\2\2\u0d53\u0d55" + - "\7\u00d5\2\2\u0d54\u0d52\3\2\2\2\u0d54\u0d55\3\2\2\2\u0d55\u0d56\3\2\2" + - "\2\u0d56\u0d58\5\u0202\u0102\2\u0d57\u0d59\t\3\2\2\u0d58\u0d57\3\2\2\2" + - "\u0d58\u0d59\3\2\2\2\u0d59\u0111\3\2\2\2\u0d5a\u0d5b\7\u00be\2\2\u0d5b" + - "\u0d5e\7\u0239\2\2\u0d5c\u0d5d\7\u02b4\2\2\u0d5d\u0d5f\7\u00d5\2\2\u0d5e" + - "\u0d5c\3\2\2\2\u0d5e\u0d5f\3\2\2\2\u0d5f\u0d60\3\2\2\2\u0d60\u0d62\5\u01d0" + - "\u00e9\2\u0d61\u0d63\t\3\2\2\u0d62\u0d61\3\2\2\2\u0d62\u0d63\3\2\2\2\u0d63" + - "\u0113\3\2\2\2\u0d64\u0d65\7\u00be\2\2\u0d65\u0d68\7\u023c\2\2\u0d66\u0d67" + - "\7\u02b4\2\2\u0d67\u0d69\7\u00d5\2\2\u0d68\u0d66\3\2\2\2\u0d68\u0d69\3" + - "\2\2\2\u0d69\u0d6a\3\2\2\2\u0d6a\u0d6b\5\u0202\u0102\2\u0d6b\u0115\3\2" + - "\2\2\u0d6c\u0d6d\7\u00be\2\2\u0d6d\u0d6e\7\u02f1\2\2\u0d6e\u0d6f\7\u01fc" + - "\2\2\u0d6f\u0d72\7j\2\2\u0d70\u0d71\7\u02b4\2\2\u0d71\u0d73\7\u00d5\2" + - "\2\u0d72\u0d70\3\2\2\2\u0d72\u0d73\3\2\2\2\u0d73\u0d74\3\2\2\2\u0d74\u0d76" + - "\5\u0202\u0102\2\u0d75\u0d77\t\3\2\2\u0d76\u0d75\3\2\2\2\u0d76\u0d77\3" + - "\2\2\2\u0d77\u0117\3\2\2\2\u0d78\u0d79\7\u00be\2\2\u0d79\u0d7a\7\u02f1" + - "\2\2\u0d7a\u0d7b\7\u01fc\2\2\u0d7b\u0d7e\7\u00b4\2\2\u0d7c\u0d7d\7\u02b4" + - "\2\2\u0d7d\u0d7f\7\u00d5\2\2\u0d7e\u0d7c\3\2\2\2\u0d7e\u0d7f\3\2\2\2\u0d7f" + - "\u0d80\3\2\2\2\u0d80\u0d82\5\u0202\u0102\2\u0d81\u0d83\t\3\2\2\u0d82\u0d81" + - "\3\2\2\2\u0d82\u0d83\3\2\2\2\u0d83\u0119\3\2\2\2\u0d84\u0d85\7\u00be\2" + - "\2\u0d85\u0d86\7\u02f1\2\2\u0d86\u0d87\7\u01fc\2\2\u0d87\u0d8a\7\u019f" + - "\2\2\u0d88\u0d89\7\u02b4\2\2\u0d89\u0d8b\7\u00d5\2\2\u0d8a\u0d88\3\2\2" + - "\2\u0d8a\u0d8b\3\2\2\2\u0d8b\u0d8c\3\2\2\2\u0d8c\u0d8e\5\u0202\u0102\2" + - "\u0d8d\u0d8f\t\3\2\2\u0d8e\u0d8d\3\2\2\2\u0d8e\u0d8f\3\2\2\2\u0d8f\u011b" + - "\3\2\2\2\u0d90\u0d91\7\u00be\2\2\u0d91\u0d92\7\u02f1\2\2\u0d92\u0d93\7" + - "\u01fc\2\2\u0d93\u0d96\7\u023e\2\2\u0d94\u0d95\7\u02b4\2\2\u0d95\u0d97" + - "\7\u00d5\2\2\u0d96\u0d94\3\2\2\2\u0d96\u0d97\3\2\2\2\u0d97\u0d98\3\2\2" + - "\2\u0d98\u0d9a\5\u0202\u0102\2\u0d99\u0d9b\t\3\2\2\u0d9a\u0d99\3\2\2\2" + - "\u0d9a\u0d9b\3\2\2\2\u0d9b\u011d\3\2\2\2\u0d9c\u0d9d\7\u00be\2\2\u0d9d" + - "\u0da0\7\u0251\2\2\u0d9e\u0d9f\7\u02b4\2\2\u0d9f\u0da1\7\u00d5\2\2\u0da0" + - "\u0d9e\3\2\2\2\u0da0\u0da1\3\2\2\2\u0da1\u0da2\3\2\2\2\u0da2\u0da3\7\u00e5" + - "\2\2\u0da3\u0da4\5\u0202\u0102\2\u0da4\u0da5\7\u012d\2\2\u0da5\u0da6\5" + - "\u0202\u0102\2\u0da6\u0da7\t\3\2\2\u0da7\u011f\3\2\2\2\u0da8\u0da9\7\u00be" + - "\2\2\u0da9\u0dac\7\u0256\2\2\u0daa\u0dab\7\u02b4\2\2\u0dab\u0dad\7\u00d5" + - "\2\2\u0dac\u0daa\3\2\2\2\u0dac\u0dad\3\2\2\2\u0dad\u0dae\3\2\2\2\u0dae" + - "\u0daf\5\u0202\u0102\2\u0daf\u0db0\7\u0182\2\2\u0db0\u0db2\5\u0202\u0102" + - "\2\u0db1\u0db3\t\3\2\2\u0db2\u0db1\3\2\2\2\u0db2\u0db3\3\2\2\2\u0db3\u0121" + - "\3\2\2\2\u0db4\u0db5\7\u00be\2\2\u0db5\u0db8\7\u025e\2\2\u0db6\u0db7\7" + - "\u02b4\2\2\u0db7\u0db9\7\u00d5\2\2\u0db8\u0db6\3\2\2\2\u0db8\u0db9\3\2" + - "\2\2\u0db9\u0dba\3\2\2\2\u0dba\u0dbc\5\u01d0\u00e9\2\u0dbb\u0dbd\t\3\2" + - "\2\u0dbc\u0dbb\3\2\2\2\u0dbc\u0dbd\3\2\2\2\u0dbd\u0123\3\2\2\2\u0dbe\u0dbf" + - "\7\u00be\2\2\u0dbf\u0dc2\7\u026e\2\2\u0dc0\u0dc1\7\u02b4\2\2\u0dc1\u0dc3" + - "\7\u00d5\2\2\u0dc2\u0dc0\3\2\2\2\u0dc2\u0dc3\3\2\2\2\u0dc3\u0dc4\3\2\2" + - "\2\u0dc4\u0dc5\5\u01d0\u00e9\2\u0dc5\u0125\3\2\2\2\u0dc6\u0dc7\7\u00be" + - "\2\2\u0dc7\u0dc8\7\u026e\2\2\u0dc8\u0dcb\7\u0147\2\2\u0dc9\u0dca\7\u02b4" + - "\2\2\u0dca\u0dcc\7\u00d5\2\2\u0dcb\u0dc9\3\2\2\2\u0dcb\u0dcc\3\2\2\2\u0dcc" + - "\u0dcd\3\2\2\2\u0dcd\u0dd3\7\u00e5\2\2\u0dce\u0dd4\5\u01cc\u00e7\2\u0dcf" + - "\u0dd4\7\u026e\2\2\u0dd0\u0dd4\7\u008f\2\2\u0dd1\u0dd4\7\u0208\2\2\u0dd2" + - "\u0dd4\7\u01bb\2\2\u0dd3\u0dce\3\2\2\2\u0dd3\u0dcf\3\2\2\2\u0dd3\u0dd0" + - "\3\2\2\2\u0dd3\u0dd1\3\2\2\2\u0dd3\u0dd2\3\2\2\2\u0dd4\u0dd5\3\2\2\2\u0dd5" + - "\u0dd6\7\u02be\2\2\u0dd6\u0dd7\5\u0202\u0102\2\u0dd7\u0127\3\2\2\2\u0dd8" + - "\u0dd9\7\u00be\2\2\u0dd9\u0ddc\7\u0281\2\2\u0dda\u0ddb\7\u02b4\2\2\u0ddb" + - "\u0ddd\7\u00d5\2\2\u0ddc\u0dda\3\2\2\2\u0ddc\u0ddd\3\2\2\2\u0ddd\u0dde" + - "\3\2\2\2\u0dde\u0de0\5\u01d0\u00e9\2\u0ddf\u0de1\t\3\2\2\u0de0\u0ddf\3" + - "\2\2\2\u0de0\u0de1\3\2\2\2\u0de1\u0129\3\2\2\2\u0de2\u0de3\7\u00d3\2\2" + - "\u0de3\u0de5\5\u0202\u0102\2\u0de4\u0de6\5\u01b8\u00dd\2\u0de5\u0de4\3" + - "\2\2\2\u0de5\u0de6\3\2\2\2\u0de6\u012b\3\2\2\2\u0de7\u0de9\7\u00d7\2\2" + - "\u0de8\u0dea\7\30\2\2\u0de9\u0de8\3\2\2\2\u0de9\u0dea\3\2\2\2\u0dea\u0dec" + - "\3\2\2\2\u0deb\u0ded\7\u0280\2\2\u0dec\u0deb\3\2\2\2\u0dec\u0ded\3\2\2" + - "\2\u0ded\u0dfb\3\2\2\2\u0dee\u0def\7\u00d7\2\2\u0def\u0df0\7\u0300\2\2" + - "\u0df0\u0df5\5\u0190\u00c9\2\u0df1\u0df2\7\u02fa\2\2\u0df2\u0df4\5\u0190" + - "\u00c9\2\u0df3\u0df1\3\2\2\2\u0df4\u0df7\3\2\2\2\u0df5\u0df3\3\2\2\2\u0df5" + - "\u0df6\3\2\2\2\u0df6\u0df8\3\2\2\2\u0df7\u0df5\3\2\2\2\u0df8\u0df9\7\u0301" + - "\2\2\u0df9\u0dfb\3\2\2\2\u0dfa\u0de7\3\2\2\2\u0dfa\u0dee\3\2\2\2\u0dfb" + - "\u0e05\3\2\2\2\u0dfc\u0e06\5\u015a\u00ae\2\u0dfd\u0e06\5\u0134\u009b\2" + - "\u0dfe\u0e06\5\u0176\u00bc\2\u0dff\u0e06\5\u00d2j\2\u0e00\u0e06\5\u017e" + - "\u00c0\2\u0e01\u0e06\5\u012a\u0096\2\u0e02\u0e06\5\u00d0i\2\u0e03\u0e06" + - "\5\u00b6\\\2\u0e04\u0e06\5\u0098M\2\u0e05\u0dfc\3\2\2\2\u0e05\u0dfd\3" + - "\2\2\2\u0e05\u0dfe\3\2\2\2\u0e05\u0dff\3\2\2\2\u0e05\u0e00\3\2\2\2\u0e05" + - "\u0e01\3\2\2\2\u0e05\u0e02\3\2\2\2\u0e05\u0e03\3\2\2\2\u0e05\u0e04\3\2" + - "\2\2\u0e06\u012d\3\2\2\2\u0e07\u0e08\5\u0206\u0104\2\u0e08\u012f\3\2\2" + - "\2\u0e09\u0e0a\5\u0206\u0104\2\u0e0a\u0131\3\2\2\2\u0e0b\u0e0c\5\u0206" + - "\u0104\2\u0e0c\u0133\3\2\2\2\u0e0d\u0e0f\5\u015e\u00b0\2\u0e0e\u0e0d\3" + - "\2\2\2\u0e0e\u0e0f\3\2\2\2\u0e0f\u0e10\3\2\2\2\u0e10\u0e11\7\u0118\2\2" + - "\u0e11\u0e12\7\u0121\2\2\u0e12\u0e15\5\u01d6\u00ec\2\u0e13\u0e14\7\35" + - "\2\2\u0e14\u0e16\5\u0202\u0102\2\u0e15\u0e13\3\2\2\2\u0e15\u0e16\3\2\2" + - "\2\u0e16\u0e1b\3\2\2\2\u0e17\u0e18\7\u0300\2\2\u0e18\u0e19\5\u01ce\u00e8" + - "\2\u0e19\u0e1a\7\u0301\2\2\u0e1a\u0e1c\3\2\2\2\u0e1b\u0e17\3\2\2\2\u0e1b" + - "\u0e1c\3\2\2\2\u0e1c\u0e22\3\2\2\2\u0e1d\u0e1f\7\u0194\2\2\u0e1e\u0e20" + - "\t\22\2\2\u0e1f\u0e1e\3\2\2\2\u0e1f\u0e20\3\2\2\2\u0e20\u0e21\3\2\2\2" + - "\u0e21\u0e23\7\u0278\2\2\u0e22\u0e1d\3\2\2\2\u0e22\u0e23\3\2\2\2\u0e23" + - "\u0e28\3\2\2\2\u0e24\u0e25\7\u009d\2\2\u0e25\u0e29\7\u0279\2\2\u0e26\u0e29" + - "\5\u015a\u00ae\2\u0e27\u0e29\5\u017e\u00c0\2\u0e28\u0e24\3\2\2\2\u0e28" + - "\u0e26\3\2\2\2\u0e28\u0e27\3\2\2\2\u0e29\u0e45\3\2\2\2\u0e2a\u0e2b\7\u0182" + - "\2\2\u0e2b\u0e30\7k\2\2\u0e2c\u0e2d\7\u0300\2\2\u0e2d\u0e2e\5\u020a\u0106" + - "\2\u0e2e\u0e2f\7\u0301\2\2\u0e2f\u0e31\3\2\2\2\u0e30\u0e2c\3\2\2\2\u0e30" + - "\u0e31\3\2\2\2\u0e31\u0e35\3\2\2\2\u0e32\u0e33\7\u0182\2\2\u0e33\u0e34" + - "\7o\2\2\u0e34\u0e36\5\u020a\u0106\2\u0e35\u0e32\3\2\2\2\u0e35\u0e36\3" + - "\2\2\2\u0e36\u0e38\3\2\2\2\u0e37\u0e39\5\u0184\u00c3\2\u0e38\u0e37\3\2" + - "\2\2\u0e38\u0e39\3\2\2\2\u0e39\u0e43\3\2\2\2\u0e3a\u0e3b\7\u00bb\2\2\u0e3b" + - "\u0e44\7\u0170\2\2\u0e3c\u0e3d\7\u00bb\2\2\u0e3d\u0e3e\7\u026b\2\2\u0e3e" + - "\u0e3f\7\u0209\2\2\u0e3f\u0e41\5\u01ac\u00d7\2\u0e40\u0e42\5\u0184\u00c3" + - "\2\u0e41\u0e40\3\2\2\2\u0e41\u0e42\3\2\2\2\u0e42\u0e44\3\2\2\2\u0e43\u0e3a" + - "\3\2\2\2\u0e43\u0e3c\3\2\2\2\u0e44\u0e46\3\2\2\2\u0e45\u0e2a\3\2\2\2\u0e45" + - "\u0e46\3\2\2\2\u0e46\u0e48\3\2\2\2\u0e47\u0e49\5\u01b0\u00d9\2\u0e48\u0e47" + - "\3\2\2\2\u0e48\u0e49\3\2\2\2\u0e49\u0135\3\2\2\2\u0e4a\u0e4b\7\u0139\2" + - "\2\u0e4b\u0e4c\5\u0202\u0102\2\u0e4c\u0137\3\2\2\2\u0e4d\u0e4e\5\u0206" + - "\u0104\2\u0e4e\u0139\3\2\2\2\u0e4f\u0e51\7\u0141\2\2\u0e50\u0e52\7\u0239" + - "\2\2\u0e51\u0e50\3\2\2\2\u0e51\u0e52\3\2\2\2\u0e52\u0e54\3\2\2\2\u0e53" + - "\u0e55\7\u0183\2\2\u0e54\u0e53\3\2\2\2\u0e54\u0e55\3\2\2\2\u0e55\u0e56" + - "\3\2\2\2\u0e56\u0e58\5\u01cc\u00e7\2\u0e57\u0e59\7\u02ff\2\2\u0e58\u0e57" + - "\3\2\2\2\u0e58\u0e59\3\2\2\2\u0e59\u0e6e\3\2\2\2\u0e5a\u0e6b\7\u010b\2" + - "\2\u0e5b\u0e5c\7\n\2\2\u0e5c\u0e6c\7\u020c\2\2\u0e5d\u0e5e\7\u01ee\2\2" + - "\u0e5e\u0e6c\7\u020c\2\2\u0e5f\u0e60\7\u01ee\2\2\u0e60\u0e6c\7\u00d1\2" + - "\2\u0e61\u0e62\7\u020c\2\2\u0e62\u0e63\7\u026b\2\2\u0e63\u0e6c\7\u00d1" + - "\2\2\u0e64\u0e6c\7\u020c\2\2\u0e65\u0e66\7\u020c\2\2\u0e66\u0e67\7\u01ee" + - "\2\2\u0e67\u0e6c\7\u00d1\2\2\u0e68\u0e6c\7\u00d1\2\2\u0e69\u0e6a\7\n\2" + - "\2\u0e6a\u0e6c\7\u00d1\2\2\u0e6b\u0e5b\3\2\2\2\u0e6b\u0e5d\3\2\2\2\u0e6b" + - "\u0e5f\3\2\2\2\u0e6b\u0e61\3\2\2\2\u0e6b\u0e64\3\2\2\2\u0e6b\u0e65\3\2" + - "\2\2\u0e6b\u0e68\3\2\2\2\u0e6b\u0e69\3\2\2\2\u0e6c\u0e6d\3\2\2\2\u0e6d" + - "\u0e6f\7\u0157\2\2\u0e6e\u0e5a\3\2\2\2\u0e6e\u0e6f\3\2\2\2\u0e6f\u0e71" + - "\3\2\2\2\u0e70\u0e72\7\u0173\2\2\u0e71\u0e70\3\2\2\2\u0e71\u0e72\3\2\2" + - "\2\u0e72\u013b\3\2\2\2\u0e73\u0e8b\7\u015d\2\2\u0e74\u0e87\7\u0168\2\2" + - "\u0e75\u0e87\7\u01b7\2\2\u0e76\u0e87\7\u00e1\2\2\u0e77\u0e87\7\u012f\2" + - "\2\u0e78\u0e79\7\t\2\2\u0e79\u0e87\7\u011d\2\2\u0e7a\u0e7b\7\u01d4\2\2" + - "\u0e7b\u0e87\7\u0307\2\2\u0e7c\u0e87\7\u0307\2\2\u0e7d\u0e87\7\22\2\2" + - "\u0e7e\u0e80\7\u00ea\2\2\u0e7f\u0e81\t\23\2\2\u0e80\u0e7f\3\2\2\2\u0e80" + - "\u0e81\3\2\2\2\u0e81\u0e87\3\2\2\2\u0e82\u0e84\7)\2\2\u0e83\u0e85\t\23" + - "\2\2\u0e84\u0e83\3\2\2\2\u0e84\u0e85\3\2\2\2\u0e85\u0e87\3\2\2\2\u0e86" + - "\u0e74\3\2\2\2\u0e86\u0e75\3\2\2\2\u0e86\u0e76\3\2\2\2\u0e86\u0e77\3\2" + - "\2\2\u0e86\u0e78\3\2\2\2\u0e86\u0e7a\3\2\2\2\u0e86\u0e7c\3\2\2\2\u0e86" + - "\u0e7d\3\2\2\2\u0e86\u0e7e\3\2\2\2\u0e86\u0e82\3\2\2\2\u0e87\u0e89\3\2" + - "\2\2\u0e88\u0e8a\t\24\2\2\u0e89\u0e88\3\2\2\2\u0e89\u0e8a\3\2\2\2\u0e8a" + - "\u0e8c\3\2\2\2\u0e8b\u0e86\3\2\2\2\u0e8b\u0e8c\3\2\2\2\u0e8c\u0e8d\3\2" + - "\2\2\u0e8d\u0e8e\5\u01cc\u00e7\2\u0e8e\u013d\3\2\2\2\u0e8f\u0e90\7\u0171" + - "\2\2\u0e90\u0e93\5\u01cc\u00e7\2\u0e91\u0e92\7\u02fa\2\2\u0e92\u0e94\7" + - "\u030a\2\2\u0e93\u0e91\3\2\2\2\u0e93\u0e94\3\2\2\2\u0e94\u013f\3\2\2\2" + - "\u0e95\u0e96\7\u01b3\2\2\u0e96\u0e9b\5\u0202\u0102\2\u0e97\u0e98\7\u0300" + - "\2\2\u0e98\u0e99\5\u01da\u00ee\2\u0e99\u0e9a\7\u0301\2\2\u0e9a\u0e9c\3" + - "\2\2\2\u0e9b\u0e97\3\2\2\2\u0e9b\u0e9c\3\2\2\2\u0e9c\u0e9d\3\2\2\2\u0e9d" + - "\u0ea3\7\35\2\2\u0e9e\u0ea4\5\u015a\u00ae\2\u0e9f\u0ea4\5\u0134\u009b" + - "\2\u0ea0\u0ea4\5\u0176\u00bc\2\u0ea1\u0ea4\5\u00d2j\2\u0ea2\u0ea4\5\u017e" + - "\u00c0\2\u0ea3\u0e9e\3\2\2\2\u0ea3\u0e9f\3\2\2\2\u0ea3\u0ea0\3\2\2\2\u0ea3" + - "\u0ea1\3\2\2\2\u0ea3\u0ea2\3\2\2\2\u0ea4\u0141\3\2\2\2\u0ea5\u0ea6\7\u01b3" + - "\2\2\u0ea6\u0ea7\7\u024d\2\2\u0ea7\u0ea8\5\u01cc\u00e7\2\u0ea8\u0143\3" + - "\2\2\2\u0ea9\u0eaa\7\u01c3\2\2\u0eaa\u0eab\7\u02d0\2\2\u0eab\u0eaf\78" + - "\2\2\u0eac\u0eb0\5\u0202\u0102\2\u0ead\u0eb0\7\u008f\2\2\u0eae\u0eb0\7" + - "\u0208\2\2\u0eaf\u0eac\3\2\2\2\u0eaf\u0ead\3\2\2\2\u0eaf\u0eae\3\2\2\2" + - "\u0eb0\u0eb9\3\2\2\2\u0eb1\u0eb5\7\u02fa\2\2\u0eb2\u0eb6\5\u0202\u0102" + - "\2\u0eb3\u0eb6\7\u008f\2\2\u0eb4\u0eb6\7\u0208\2\2\u0eb5\u0eb2\3\2\2\2" + - "\u0eb5\u0eb3\3\2\2\2\u0eb5\u0eb4\3\2\2\2\u0eb6\u0eb8\3\2\2\2\u0eb7\u0eb1" + - "\3\2\2\2\u0eb8\u0ebb\3\2\2\2\u0eb9\u0eb7\3\2\2\2\u0eb9\u0eba\3\2\2\2\u0eba" + - "\u0ebc\3\2\2\2\u0ebb\u0eb9\3\2\2\2\u0ebc\u0ec0\7\u0249\2\2\u0ebd\u0ec1" + - "\5\u0202\u0102\2\u0ebe\u0ec1\7\u008f\2\2\u0ebf\u0ec1\7\u0208\2\2\u0ec0" + - "\u0ebd\3\2\2\2\u0ec0\u0ebe\3\2\2\2\u0ec0\u0ebf\3\2\2\2\u0ec1\u0145\3\2" + - "\2\2\u0ec2\u0ec3\5\u0206\u0104\2\u0ec3\u0147\3\2\2\2\u0ec4\u0ec8\7\u01d3" + - "\2\2\u0ec5\u0ec6\7\u0300\2\2\u0ec6\u0ec7\7\u0280\2\2\u0ec7\u0ec9\7\u0301" + - "\2\2\u0ec8\u0ec5\3\2\2\2\u0ec8\u0ec9\3\2\2\2\u0ec9\u0eca\3\2\2\2\u0eca" + - "\u0ecb\t\25\2\2\u0ecb\u0ecc\5\u0202\u0102\2\u0ecc\u0149\3\2\2\2\u0ecd" + - "\u0ecf\7\u01d5\2\2\u0ece\u0ed0\7\u01f3\2\2\u0ecf\u0ece\3\2\2\2\u0ecf\u0ed0" + - "\3\2\2\2\u0ed0\u0ed1\3\2\2\2\u0ed1\u0ed2\5\u0202\u0102\2\u0ed2\u014b\3" + - "\2\2\2\u0ed3\u0ed6\7\u01da\2\2\u0ed4\u0ed7\5\u0202\u0102\2\u0ed5\u0ed7" + - "\7\22\2\2\u0ed6\u0ed4\3\2\2\2\u0ed6\u0ed5\3\2\2\2\u0ed7\u014d\3\2\2\2" + - "\u0ed8\u0ed9\5\u0206\u0104\2\u0ed9\u014f\3\2\2\2\u0eda\u0edc\7\u01e8\2" + - "\2\u0edb\u0edd\t\26\2\2\u0edc\u0edb\3\2\2\2\u0edc\u0edd\3\2\2\2\u0edd" + - "\u0151\3\2\2\2\u0ede\u0edf\7\u01e8\2\2\u0edf\u0ee0\7\u01b4\2\2\u0ee0\u0ee1" + - "\7\u0307\2\2\u0ee1\u0153\3\2\2\2\u0ee2\u0ee4\7\u01e8\2\2\u0ee3\u0ee5\t" + - "\26\2\2\u0ee4\u0ee3\3\2\2\2\u0ee4\u0ee5\3\2\2\2\u0ee5\u0ee6\3\2\2\2\u0ee6" + - "\u0ee8\7\u0249\2\2\u0ee7\u0ee9\7\u01f3\2\2\u0ee8\u0ee7\3\2\2\2\u0ee8\u0ee9" + - "\3\2\2\2\u0ee9\u0eea\3\2\2\2\u0eea\u0eeb\5\u0202\u0102\2\u0eeb\u0155\3" + - "\2\2\2\u0eec\u0eed\7\u01f3\2\2\u0eed\u0eee\5\u0202\u0102\2\u0eee\u0157" + - "\3\2\2\2\u0eef\u0ef0\7\u01ff\2\2\u0ef0\u0ef3\7\u012b\2\2\u0ef1\u0ef2\7" + - "\u00e5\2\2\u0ef2\u0ef4\5\u01cc\u00e7\2\u0ef3\u0ef1\3\2\2\2\u0ef3\u0ef4" + - "\3\2\2\2\u0ef4\u0ef5\3\2\2\2\u0ef5\u0f2c\7\u0182\2\2\u0ef6\u0ef7\7\u0239" + - "\2\2\u0ef7\u0f2d\5\u0202\u0102\2\u0ef8\u0ef9\7`\2\2\u0ef9\u0efa\5\u0202" + - "\u0102\2\u0efa\u0efb\7\u0309\2\2\u0efb\u0efc\5\u020a\u0106\2\u0efc\u0f2d" + - "\3\2\2\2\u0efd\u0efe\7\20\2\2\u0efe\u0eff\5\u0202\u0102\2\u0eff\u0f00" + - "\7\u0300\2\2\u0f00\u0f01\5\u01ee\u00f8\2\u0f01\u0f02\7\u0301\2\2\u0f02" + - "\u0f2d\3\2\2\2\u0f03\u0f04\7\u0094\2\2\u0f04\u0f2d\5\u0202\u0102\2\u0f05" + - "\u0f06\7\u00bc\2\2\u0f06\u0f2d\5\u0202\u0102\2\u0f07\u0f08\7\u02bc\2\2" + - "\u0f08\u0f09\7\u0256\2\2\u0f09\u0f2d\5\u0202\u0102\2\u0f0a\u0f0b\7\u00e7" + - "\2\2\u0f0b\u0f0c\7\u0239\2\2\u0f0c\u0f2d\5\u0202\u0102\2\u0f0d\u0f0e\7" + - "\u00f0\2\2\u0f0e\u0f0f\5\u0202\u0102\2\u0f0f\u0f10\5\u01c0\u00e1\2\u0f10" + - "\u0f2d\3\2\2\2\u0f11\u0f12\7\u012e\2\2\u0f12\u0f13\7\u017a\2\2\u0f13\u0f2d" + - "\7\u0307\2\2\u0f14\u0f15\7\u02c7\2\2\u0f15\u0f16\7\u0281\2\2\u0f16\u0f2d" + - "\5\u0202\u0102\2\u0f17\u0f19\7\u01b9\2\2\u0f18\u0f17\3\2\2\2\u0f18\u0f19" + - "\3\2\2\2\u0f19\u0f1a\3\2\2\2\u0f1a\u0f1b\7\u012d\2\2\u0f1b\u0f2d\5\u0202" + - "\u0102\2\u0f1c\u0f1d\7\u01bc\2\2\u0f1d\u0f2d\5\u0202\u0102\2\u0f1e\u0f1f" + - "\7\u01e7\2\2\u0f1f\u0f2d\5\u0202\u0102\2\u0f20\u0f21\7\u01f5\2\2\u0f21" + - "\u0f2d\5\u0202\u0102\2\u0f22\u0f23\7\u0203\2\2\u0f23\u0f2d\5\u0202\u0102" + - "\2\u0f24\u0f25\7\u0232\2\2\u0f25\u0f2d\5\u0202\u0102\2\u0f26\u0f27\7\u023c" + - "\2\2\u0f27\u0f2d\5\u0202\u0102\2\u0f28\u0f29\7\u025e\2\2\u0f29\u0f2d\5" + - "\u0202\u0102\2\u0f2a\u0f2b\7\u0281\2\2\u0f2b\u0f2d\5\u0202\u0102\2\u0f2c" + - "\u0ef6\3\2\2\2\u0f2c\u0ef8\3\2\2\2\u0f2c\u0efd\3\2\2\2\u0f2c\u0f03\3\2" + - "\2\2\u0f2c\u0f05\3\2\2\2\u0f2c\u0f07\3\2\2\2\u0f2c\u0f0a\3\2\2\2\u0f2c" + - "\u0f0d\3\2\2\2\u0f2c\u0f11\3\2\2\2\u0f2c\u0f14\3\2\2\2\u0f2c\u0f18\3\2" + - "\2\2\u0f2c\u0f1c\3\2\2\2\u0f2c\u0f1e\3\2\2\2\u0f2c\u0f20\3\2\2\2\u0f2c" + - "\u0f22\3\2\2\2\u0f2c\u0f24\3\2\2\2\u0f2c\u0f26\3\2\2\2\u0f2c\u0f28\3\2" + - "\2\2\u0f2c\u0f2a\3\2\2\2\u0f2d\u0f2e\3\2\2\2\u0f2e\u0f2f\7\u0123\2\2\u0f2f" + - "\u0f30\7\u030a\2\2\u0f30\u0159\3\2\2\2\u0f31\u0f33\5\u015e\u00b0\2\u0f32" + - "\u0f31\3\2\2\2\u0f32\u0f33\3\2\2\2\u0f33\u0f4e\3\2\2\2\u0f34\u0f35\7\u0200" + - "\2\2\u0f35\u0f37\5\u0180\u00c1\2\u0f36\u0f38\5\u0182\u00c2\2\u0f37\u0f36" + - "\3\2\2\2\u0f37\u0f38\3\2\2\2\u0f38\u0f4f\3\2\2\2\u0f39\u0f3b\7\u0239\2" + - "\2\u0f3a\u0f3c\7\u0183\2\2\u0f3b\u0f3a\3\2\2\2\u0f3b\u0f3c\3\2\2\2\u0f3c" + - "\u0f3d\3\2\2\2\u0f3d\u0f3f\5\u01d6\u00ec\2\u0f3e\u0f40\7\u02ff\2\2\u0f3f" + - "\u0f3e\3\2\2\2\u0f3f\u0f40\3\2\2\2\u0f40\u0f4f\3\2\2\2\u0f41\u0f43\7\u0300" + - "\2\2\u0f42\u0f41\3\2\2\2\u0f43\u0f44\3\2\2\2\u0f44\u0f42\3\2\2\2\u0f44" + - "\u0f45\3\2\2\2\u0f45\u0f46\3\2\2\2\u0f46\u0f48\5\u015a\u00ae\2\u0f47\u0f49" + - "\7\u0301\2\2\u0f48\u0f47\3\2\2\2\u0f49\u0f4a\3\2\2\2\u0f4a\u0f48\3\2\2" + - "\2\u0f4a\u0f4b\3\2\2\2\u0f4b\u0f4c\3\2\2\2\u0f4c\u0f4d\5\u019e\u00d0\2" + - "\u0f4d\u0f4f\3\2\2\2\u0f4e\u0f34\3\2\2\2\u0f4e\u0f39\3\2\2\2\u0f4e\u0f42" + - "\3\2\2\2\u0f4f\u0f51\3\2\2\2\u0f50\u0f52\5\u0184\u00c3\2\u0f51\u0f50\3" + - "\2\2\2\u0f51\u0f52\3\2\2\2\u0f52\u0f54\3\2\2\2\u0f53\u0f55\5\u0186\u00c4" + - "\2\u0f54\u0f53\3\2\2\2\u0f54\u0f55\3\2\2\2\u0f55\u0f57\3\2\2\2\u0f56\u0f58" + - "\5\u018c\u00c7\2\u0f57\u0f56\3\2\2\2\u0f57\u0f58\3\2\2\2\u0f58\u0f5a\3" + - "\2\2\2\u0f59\u0f5b\5\u019c\u00cf\2\u0f5a\u0f59\3\2\2\2\u0f5a\u0f5b\3\2" + - "\2\2\u0f5b\u0f5d\3\2\2\2\u0f5c\u0f5e\5\u019e\u00d0\2\u0f5d\u0f5c\3\2\2" + - "\2\u0f5d\u0f5e\3\2\2\2\u0f5e\u0f60\3\2\2\2\u0f5f\u0f61\5\u01a0\u00d1\2" + - "\u0f60\u0f5f\3\2\2\2\u0f60\u0f61\3\2\2\2\u0f61\u0f63\3\2\2\2\u0f62\u0f64" + - "\5\u01a4\u00d3\2\u0f63\u0f62\3\2\2\2\u0f63\u0f64\3\2\2\2\u0f64\u0f66\3" + - "\2\2\2\u0f65\u0f67\5\u01a6\u00d4\2\u0f66\u0f65\3\2\2\2\u0f66\u0f67\3\2" + - "\2\2\u0f67\u0f69\3\2\2\2\u0f68\u0f6a\5\u01a8\u00d5\2\u0f69\u0f68\3\2\2" + - "\2\u0f69\u0f6a\3\2\2\2\u0f6a\u0f6c\3\2\2\2\u0f6b\u0f6d\5\u01aa\u00d6\2" + - "\u0f6c\u0f6b\3\2\2\2\u0f6c\u0f6d\3\2\2\2\u0f6d\u015b\3\2\2\2\u0f6e\u0f70" + - "\5\u015e\u00b0\2\u0f6f\u0f6e\3\2\2\2\u0f6f\u0f70\3\2\2\2\u0f70\u0f93\3" + - "\2\2\2\u0f71\u0f72\7\u0200\2\2\u0f72\u0f73\5\u0180\u00c1\2\u0f73\u0f75" + - "\7\u0121\2\2\u0f74\u0f76\t\27\2\2\u0f75\u0f74\3\2\2\2\u0f75\u0f76\3\2" + - "\2\2\u0f76\u0f78\3\2\2\2\u0f77\u0f79\7\u0239\2\2\u0f78\u0f77\3\2\2\2\u0f78" + - "\u0f79\3\2\2\2\u0f79\u0f7a\3\2\2\2\u0f7a\u0f7c\5\u01d6\u00ec\2\u0f7b\u0f7d" + - "\5\u0182\u00c2\2\u0f7c\u0f7b\3\2\2\2\u0f7c\u0f7d\3\2\2\2\u0f7d\u0f94\3" + - "\2\2\2\u0f7e\u0f80\7\u0239\2\2\u0f7f\u0f81\7\u0183\2\2\u0f80\u0f7f\3\2" + - "\2\2\u0f80\u0f81\3\2\2\2\u0f81\u0f82\3\2\2\2\u0f82\u0f84\5\u01d6\u00ec" + - "\2\u0f83\u0f85\7\u02ff\2\2\u0f84\u0f83\3\2\2\2\u0f84\u0f85\3\2\2\2\u0f85" + - "\u0f94\3\2\2\2\u0f86\u0f88\7\u0300\2\2\u0f87\u0f86\3\2\2\2\u0f88\u0f89" + - "\3\2\2\2\u0f89\u0f87\3\2\2\2\u0f89\u0f8a\3\2\2\2\u0f8a\u0f8b\3\2\2\2\u0f8b" + - "\u0f8d\5\u015a\u00ae\2\u0f8c\u0f8e\7\u0301\2\2\u0f8d\u0f8c\3\2\2\2\u0f8e" + - "\u0f8f\3\2\2\2\u0f8f\u0f8d\3\2\2\2\u0f8f\u0f90\3\2\2\2\u0f90\u0f91\3\2" + - "\2\2\u0f91\u0f92\5\u019e\u00d0\2\u0f92\u0f94\3\2\2\2\u0f93\u0f71\3\2\2" + - "\2\u0f93\u0f7e\3\2\2\2\u0f93\u0f87\3\2\2\2\u0f94\u0f96\3\2\2\2\u0f95\u0f97" + - "\5\u0184\u00c3\2\u0f96\u0f95\3\2\2\2\u0f96\u0f97\3\2\2\2\u0f97\u0f99\3" + - "\2\2\2\u0f98\u0f9a\5\u0186\u00c4\2\u0f99\u0f98\3\2\2\2\u0f99\u0f9a\3\2" + - "\2\2\u0f9a\u0f9c\3\2\2\2\u0f9b\u0f9d\5\u018c\u00c7\2\u0f9c\u0f9b\3\2\2" + - "\2\u0f9c\u0f9d\3\2\2\2\u0f9d\u0f9f\3\2\2\2\u0f9e\u0fa0\5\u019c\u00cf\2" + - "\u0f9f\u0f9e\3\2\2\2\u0f9f\u0fa0\3\2\2\2\u0fa0\u0fa2\3\2\2\2\u0fa1\u0fa3" + - "\5\u019e\u00d0\2\u0fa2\u0fa1\3\2\2\2\u0fa2\u0fa3\3\2\2\2\u0fa3\u0fa5\3" + - "\2\2\2\u0fa4\u0fa6\5\u01a0\u00d1\2\u0fa5\u0fa4\3\2\2\2\u0fa5\u0fa6\3\2" + - "\2\2\u0fa6\u0fa8\3\2\2\2\u0fa7\u0fa9\5\u01a4\u00d3\2\u0fa8\u0fa7\3\2\2" + - "\2\u0fa8\u0fa9\3\2\2\2\u0fa9\u0fab\3\2\2\2\u0faa\u0fac\5\u01a6\u00d4\2" + - "\u0fab\u0faa\3\2\2\2\u0fab\u0fac\3\2\2\2\u0fac\u0fae\3\2\2\2\u0fad\u0faf" + - "\5\u01a8\u00d5\2\u0fae\u0fad\3\2\2\2\u0fae\u0faf\3\2\2\2\u0faf\u0fb1\3" + - "\2\2\2\u0fb0\u0fb2\5\u01aa\u00d6\2\u0fb1\u0fb0\3\2\2\2\u0fb1\u0fb2\3\2" + - "\2\2\u0fb2\u015d\3\2\2\2\u0fb3\u0fb5\7\u0288\2\2\u0fb4\u0fb6\7\u01c5\2" + - "\2\u0fb5\u0fb4\3\2\2\2\u0fb5\u0fb6\3\2\2\2\u0fb6\u0fb7\3\2\2\2\u0fb7\u0fbc" + - "\5\u0160\u00b1\2\u0fb8\u0fb9\7\u02fa\2\2\u0fb9\u0fbb\5\u0160\u00b1\2\u0fba" + - "\u0fb8\3\2\2\2\u0fbb\u0fbe\3\2\2\2\u0fbc\u0fba\3\2\2\2\u0fbc\u0fbd\3\2" + - "\2\2\u0fbd\u015f\3\2\2\2\u0fbe\u0fbc\3\2\2\2\u0fbf\u0fc4\5\u01d6\u00ec" + - "\2\u0fc0\u0fc1\7\u0300\2\2\u0fc1\u0fc2\5\u01ce\u00e8\2\u0fc2\u0fc3\7\u0301" + - "\2\2\u0fc3\u0fc5\3\2\2\2\u0fc4\u0fc0\3\2\2\2\u0fc4\u0fc5\3\2\2\2\u0fc5" + - "\u0fc6\3\2\2\2\u0fc6\u0fc7\7\35\2\2\u0fc7\u0fcd\7\u0300\2\2\u0fc8\u0fce" + - "\5\u015a\u00ae\2\u0fc9\u0fce\5\u0134\u009b\2\u0fca\u0fce\5\u00d2j\2\u0fcb" + - "\u0fce\5\u0176\u00bc\2\u0fcc\u0fce\5\u017e\u00c0\2\u0fcd\u0fc8\3\2\2\2" + - "\u0fcd\u0fc9\3\2\2\2\u0fcd\u0fca\3\2\2\2\u0fcd\u0fcb\3\2\2\2\u0fcd\u0fcc" + - "\3\2\2\2\u0fce\u0fcf\3\2\2\2\u0fcf\u0fd0\7\u0301\2\2\u0fd0\u0161\3\2\2" + - "\2\u0fd1\u0fd3\7\u0209\2\2\u0fd2\u0fd4\t\30\2\2\u0fd3\u0fd2\3\2\2\2\u0fd3" + - "\u0fd4\3\2\2\2\u0fd4\u0fd5\3\2\2\2\u0fd5\u0fd6\5\u0202\u0102\2\u0fd6\u0fd9" + - "\t\7\2\2\u0fd7\u0fda\5\u01fe\u0100\2\u0fd8\u0fda\7\u009d\2\2\u0fd9\u0fd7" + - "\3\2\2\2\u0fd9\u0fd8\3\2\2\2\u0fda\u0fe7\3\2\2\2\u0fdb\u0fdd\7\u0209\2" + - "\2\u0fdc\u0fde\t\30\2\2\u0fdd\u0fdc\3\2\2\2\u0fdd\u0fde\3\2\2\2\u0fde" + - "\u0fdf\3\2\2\2\u0fdf\u0fe0\7\u0244\2\2\u0fe0\u0fe4\7\u0290\2\2\u0fe1\u0fe5" + - "\5\u01c6\u00e4\2\u0fe2\u0fe5\7\u013c\2\2\u0fe3\u0fe5\7\u009d\2\2\u0fe4" + - "\u0fe1\3\2\2\2\u0fe4\u0fe2\3\2\2\2\u0fe4\u0fe3\3\2\2\2\u0fe5\u0fe7\3\2" + - "\2\2\u0fe6\u0fd1\3\2\2\2\u0fe6\u0fdb\3\2\2\2\u0fe7\u0163\3\2\2\2\u0fe8" + - "\u0fe9\7\u0209\2\2\u0fe9\u0fec\7s\2\2\u0fea\u0fed\7\22\2\2\u0feb\u0fed" + - "\5\u01d0\u00e9\2\u0fec\u0fea\3\2\2\2\u0fec\u0feb\3\2\2\2\u0fed\u0fee\3" + - "\2\2\2\u0fee\u0fef\t\31\2\2\u0fef\u0165\3\2\2\2\u0ff0\u0ff2\7\u0209\2" + - "\2\u0ff1\u0ff3\t\30\2\2\u0ff2\u0ff1\3\2\2\2\u0ff2\u0ff3\3\2\2\2\u0ff3" + - "\u0ff4\3\2\2\2\u0ff4\u0ff7\7\u01e7\2\2\u0ff5\u0ff8\5\u01fa\u00fe\2\u0ff6" + - "\u0ff8\7\u016c\2\2\u0ff7\u0ff5\3\2\2\2\u0ff7\u0ff6\3\2\2\2\u0ff8\u0ffc" + - "\3\2\2\2\u0ff9\u0ffa\7\u01da\2\2\u0ffa\u0ffc\7\u01e7\2\2\u0ffb\u0ff0\3" + - "\2\2\2\u0ffb\u0ff9\3\2\2\2\u0ffc\u0167\3\2\2\2\u0ffd\u0ffe\5\u0206\u0104" + - "\2\u0ffe\u0169\3\2\2\2\u0fff\u1000\7\u0124\2\2\u1000\u1008\7\u0136\2\2" + - "\u1001\u1009\7\u0205\2\2\u1002\u1003\7\u01d7\2\2\u1003\u1009\7\u01c0\2" + - "\2\u1004\u1005\7\u01c0\2\2\u1005\u1009\7f\2\2\u1006\u1007\7\u01c0\2\2" + - "\u1007\u1009\7\u0261\2\2\u1008\u1001\3\2\2\2\u1008\u1002\3\2\2\2\u1008" + - "\u1004\3\2\2\2\u1008\u1006\3\2\2\2\u1009\u1013\3\2\2\2\u100a\u100b\7\u01c0" + - "\2\2\u100b\u1013\7\u028c\2\2\u100c\u100d\7\u01c0\2\2\u100d\u1013\7\u0183" + - "\2\2\u100e\u1010\7\u016f\2\2\u100f\u100e\3\2\2\2\u100f\u1010\3\2\2\2\u1010" + - "\u1011\3\2\2\2\u1011\u1013\7\u00a0\2\2\u1012\u0fff\3\2\2\2\u1012\u100a" + - "\3\2\2\2\u1012\u100c\3\2\2\2\u1012\u100f\3\2\2\2\u1013\u016b\3\2\2\2\u1014" + - "\u1019\5\u016a\u00b6\2\u1015\u1016\7\u02fa\2\2\u1016\u1018\5\u016a\u00b6" + - "\2\u1017\u1015\3\2\2\2\u1018\u101b\3\2\2\2\u1019\u1017\3\2\2\2\u1019\u101a" + - "\3\2\2\2\u101a\u016d\3\2\2\2\u101b\u1019\3\2\2\2\u101c\u101d\7\u0209\2" + - "\2\u101d\u101e\7\u024d\2\2\u101e\u102a\5\u016c\u00b7\2\u101f\u1020\7\u0209" + - "\2\2\u1020\u1021\7\u024d\2\2\u1021\u1022\7\u0213\2\2\u1022\u102a\7\u030a" + - "\2\2\u1023\u1024\7\u0209\2\2\u1024\u1025\7\u0207\2\2\u1025\u1026\7N\2" + - "\2\u1026\u1027\7\35\2\2\u1027\u1028\7\u024d\2\2\u1028\u102a\5\u016c\u00b7" + - "\2\u1029\u101c\3\2\2\2\u1029\u101f\3\2\2\2\u1029\u1023\3\2\2\2\u102a\u016f" + - "\3\2\2\2\u102b\u1030\7\u020d\2\2\u102c\u1031\5\u0202\u0102\2\u102d\u102e" + - "\7\u0244\2\2\u102e\u1031\7\u0290\2\2\u102f\u1031\7\22\2\2\u1030\u102c" + - "\3\2\2\2\u1030\u102d\3\2\2\2\u1030\u102f\3\2\2\2\u1031\u0171\3\2\2\2\u1032" + - "\u1034\7\u025c\2\2\u1033\u1035\7\u0239\2\2\u1034\u1033\3\2\2\2\u1034\u1035" + - "\3\2\2\2\u1035\u1037\3\2\2\2\u1036\u1038\7\u0183\2\2\u1037\u1036\3\2\2" + - "\2\u1037\u1038\3\2\2\2\u1038\u1039\3\2\2\2\u1039\u103b\5\u01d6\u00ec\2" + - "\u103a\u103c\7\u02ff\2\2\u103b\u103a\3\2\2\2\u103b\u103c\3\2\2\2\u103c" + - "\u1042\3\2\2\2\u103d\u103f\7\u02fa\2\2\u103e\u1040\7\u0183\2\2\u103f\u103e" + - "\3\2\2\2\u103f\u1040\3\2\2\2\u1040\u1041\3\2\2\2\u1041\u1043\5\u01d0\u00e9" + - "\2\u1042\u103d\3\2\2\2\u1042\u1043\3\2\2\2\u1043\u1046\3\2\2\2\u1044\u1045" + - "\t\32\2\2\u1045\u1047\7\u0104\2\2\u1046\u1044\3\2\2\2\u1046\u1047\3\2" + - "\2\2\u1047\u1049\3\2\2\2\u1048\u104a\t\3\2\2\u1049\u1048\3\2\2\2\u1049" + - "\u104a\3\2\2\2\u104a\u0173\3\2\2\2\u104b\u104e\7\u0267\2\2\u104c\u104f" + - "\5\u0202\u0102\2\u104d\u104f\7\u02ff\2\2\u104e\u104c\3\2\2\2\u104e\u104d" + - "\3\2\2\2\u104f\u0175\3\2\2\2\u1050\u1052\5\u015e\u00b0\2\u1051\u1050\3" + - "\2\2\2\u1051\u1052\3\2\2\2\u1052\u1053\3\2\2\2\u1053\u1055\7\u026b\2\2" + - "\u1054\u1056\7\u0183\2\2\u1055\u1054\3\2\2\2\u1055\u1056\3\2\2\2\u1056" + - "\u1057\3\2\2\2\u1057\u1059\5\u01d6\u00ec\2\u1058\u105a\7\u02ff\2\2\u1059" + - "\u1058\3\2\2\2\u1059\u105a\3\2\2\2\u105a\u105f\3\2\2\2\u105b\u105d\7\35" + - "\2\2\u105c\u105b\3\2\2\2\u105c\u105d\3\2\2\2\u105d\u105e\3\2\2\2\u105e" + - "\u1060\5\u0202\u0102\2\u105f\u105c\3\2\2\2\u105f\u1060\3\2\2\2\u1060\u1061" + - "\3\2\2\2\u1061\u1062\7\u0209\2\2\u1062\u1064\5\u01ac\u00d7\2\u1063\u1065" + - "\5\u0182\u00c2\2\u1064\u1063\3\2\2\2\u1064\u1065\3\2\2\2\u1065\u106b\3" + - "\2\2\2\u1066\u106c\5\u0184\u00c3\2\u1067\u1068\7\u0285\2\2\u1068\u1069" + - "\7\u0087\2\2\u1069\u106a\7\u017d\2\2\u106a\u106c\5\u0202\u0102\2\u106b" + - "\u1066\3\2\2\2\u106b\u1067\3\2\2\2\u106b\u106c\3\2\2\2\u106c\u106e\3\2" + - "\2\2\u106d\u106f\5\u01b0\u00d9\2\u106e\u106d\3\2\2\2\u106e\u106f\3\2\2" + - "\2\u106f\u0177\3\2\2\2\u1070\u1071\t\33\2\2\u1071\u0179\3\2\2\2\u1072" + - "\u1077\5\u0178\u00bd\2\u1073\u1074\7\u02fa\2\2\u1074\u1076\5\u0178\u00bd" + - "\2\u1075\u1073\3\2\2\2\u1076\u1079\3\2\2\2\u1077\u1075\3\2\2\2\u1077\u1078" + - "\3\2\2\2\u1078\u017b\3\2\2\2\u1079\u1077\3\2\2\2\u107a\u107f\7\u0274\2" + - "\2\u107b\u107c\7\u0300\2\2\u107c\u107d\5\u017a\u00be\2\u107d\u107e\7\u0301" + - "\2\2\u107e\u1080\3\2\2\2\u107f\u107b\3\2\2\2\u107f\u1080\3\2\2\2\u1080" + - "\u1081\3\2\2\2\u1081\u1086\5\u01d6\u00ec\2\u1082\u1083\7\u0300\2\2\u1083" + - "\u1084\5\u018e\u00c8\2\u1084\u1085\7\u0301\2\2\u1085\u1087\3\2\2\2\u1086" + - "\u1082\3\2\2\2\u1086\u1087\3\2\2\2\u1087\u10aa\3\2\2\2\u1088\u108a\7\u0274" + - "\2\2\u1089\u108b\7\u00ef\2\2\u108a\u1089\3\2\2\2\u108a\u108b\3\2\2\2\u108b" + - "\u108d\3\2\2\2\u108c\u108e\7\u00ed\2\2\u108d\u108c\3\2\2\2\u108d\u108e" + - "\3\2\2\2\u108e\u1090\3\2\2\2\u108f\u1091\7\u0280\2\2\u1090\u108f\3\2\2" + - "\2\u1090\u1091\3\2\2\2\u1091\u1093\3\2\2\2\u1092\u1094\5\u01d6\u00ec\2" + - "\u1093\u1092\3\2\2\2\u1093\u1094\3\2\2\2\u1094\u10aa\3\2\2\2\u1095\u1097" + - "\7\u0274\2\2\u1096\u1098\7\u00ef\2\2\u1097\u1096\3\2\2\2\u1097\u1098\3" + - "\2\2\2\u1098\u109a\3\2\2\2\u1099\u109b\7\u00ed\2\2\u109a\u1099\3\2\2\2" + - "\u109a\u109b\3\2\2\2\u109b\u109d\3\2\2\2\u109c\u109e\7\u0280\2\2\u109d" + - "\u109c\3\2\2\2\u109d\u109e\3\2\2\2\u109e\u109f\3\2\2\2\u109f\u10a7\7\30" + - "\2\2\u10a0\u10a5\5\u01d6\u00ec\2\u10a1\u10a2\7\u0300\2\2\u10a2\u10a3\5" + - "\u018e\u00c8\2\u10a3\u10a4\7\u0301\2\2\u10a4\u10a6\3\2\2\2\u10a5\u10a1" + - "\3\2\2\2\u10a5\u10a6\3\2\2\2\u10a6\u10a8\3\2\2\2\u10a7\u10a0\3\2\2\2\u10a7" + - "\u10a8\3\2\2\2\u10a8\u10aa\3\2\2\2\u10a9\u107a\3\2\2\2\u10a9\u1088\3\2" + - "\2\2\u10a9\u1095\3\2\2\2\u10aa\u017d\3\2\2\2\u10ab\u10ad\5\u015e\u00b0" + - "\2\u10ac\u10ab\3\2\2\2\u10ac\u10ad\3\2\2\2\u10ad\u10bd\3\2\2\2\u10ae\u10af" + - "\7\u0279\2\2\u10af\u10be\5\u01ba\u00de\2\u10b0\u10b2\7\u0300\2\2\u10b1" + - "\u10b0\3\2\2\2\u10b2\u10b3\3\2\2\2\u10b3\u10b1\3\2\2\2\u10b3\u10b4\3\2" + - "\2\2\u10b4\u10b5\3\2\2\2\u10b5\u10b7\5\u017e\u00c0\2\u10b6\u10b8\7\u0301" + - "\2\2\u10b7\u10b6\3\2\2\2\u10b8\u10b9\3\2\2\2\u10b9\u10b7\3\2\2\2\u10b9" + - "\u10ba\3\2\2\2\u10ba\u10bb\3\2\2\2\u10bb\u10bc\5\u019e\u00d0\2\u10bc\u10be" + - "\3\2\2\2\u10bd\u10ae\3\2\2\2\u10bd\u10b1\3\2\2\2\u10be\u10c0\3\2\2\2\u10bf" + - "\u10c1\5\u01a0\u00d1\2\u10c0\u10bf\3\2\2\2\u10c0\u10c1\3\2\2\2\u10c1\u10c3" + - "\3\2\2\2\u10c2\u10c4\5\u019e\u00d0\2\u10c3\u10c2\3\2\2\2\u10c3\u10c4\3" + - "\2\2\2\u10c4\u10c6\3\2\2\2\u10c5\u10c7\5\u01a4\u00d3\2\u10c6\u10c5\3\2" + - "\2\2\u10c6\u10c7\3\2\2\2\u10c7\u10c9\3\2\2\2\u10c8\u10ca\5\u01a6\u00d4" + - "\2\u10c9\u10c8\3\2\2\2\u10c9\u10ca\3\2\2\2\u10ca\u10cc\3\2\2\2\u10cb\u10cd" + - "\5\u01a8\u00d5\2\u10cc\u10cb\3\2\2\2\u10cc\u10cd\3\2\2\2\u10cd\u017f\3" + - "\2\2\2\u10ce\u10d5\7\22\2\2\u10cf\u10d2\7\u00ba\2\2\u10d0\u10d1\7\u0182" + - "\2\2\u10d1\u10d3\5\u01b8\u00dd\2\u10d2\u10d0\3\2\2\2\u10d2\u10d3\3\2\2" + - "\2\u10d3\u10d5\3\2\2\2\u10d4\u10ce\3\2\2\2\u10d4\u10cf\3\2\2\2\u10d4\u10d5" + - "\3\2\2\2\u10d5\u10d6\3\2\2\2\u10d6\u10d7\5\u018e\u00c8\2\u10d7\u0181\3" + - "\2\2\2\u10d8\u10d9\7\u00ee\2\2\u10d9\u10de\5\u01e4\u00f3\2\u10da\u10db" + - "\7\u02fa\2\2\u10db\u10dd\5\u01e4\u00f3\2\u10dc\u10da\3\2\2\2\u10dd\u10e0" + - "\3\2\2\2\u10de\u10dc\3\2\2\2\u10de\u10df\3\2\2\2\u10df\u0183\3\2\2\2\u10e0" + - "\u10de\3\2\2\2\u10e1\u10e2\7\u0285\2\2\u10e2\u10e3\5\u01ec\u00f7\2\u10e3" + - "\u0185\3\2\2\2\u10e4\u10e5\7\u00fc\2\2\u10e5\u10e6\78\2\2\u10e6\u10eb" + - "\5\u0188\u00c5\2\u10e7\u10e8\7\u02fa\2\2\u10e8\u10ea\5\u0188\u00c5\2\u10e9" + - "\u10e7\3\2\2\2\u10ea\u10ed\3\2\2\2\u10eb\u10e9\3\2\2\2\u10eb\u10ec\3\2" + - "\2\2\u10ec\u0187\3\2\2\2\u10ed\u10eb\3\2\2\2\u10ee\u10ef\7\u0300\2\2\u10ef" + - "\u1108\7\u0301\2\2\u10f0\u1108\5\u01b2\u00da\2\u10f1\u1108\5\u01b8\u00dd" + - "\2\u10f2\u10f3\t\34\2\2\u10f3\u10f6\7\u0300\2\2\u10f4\u10f7\5\u01b2\u00da" + - "\2\u10f5\u10f7\5\u01b8\u00dd\2\u10f6\u10f4\3\2\2\2\u10f6\u10f5\3\2\2\2" + - "\u10f7\u10ff\3\2\2\2\u10f8\u10fb\7\u02fa\2\2\u10f9\u10fc\5\u01b2\u00da" + - "\2\u10fa\u10fc\5\u01b8\u00dd\2\u10fb\u10f9\3\2\2\2\u10fb\u10fa\3\2\2\2" + - "\u10fc\u10fe\3\2\2\2\u10fd\u10f8\3\2\2\2\u10fe\u1101\3\2\2\2\u10ff\u10fd" + - "\3\2\2\2\u10ff\u1100\3\2\2\2\u1100\u1102\3\2\2\2\u1101\u10ff\3\2\2\2\u1102" + - "\u1103\7\u0301\2\2\u1103\u1108\3\2\2\2\u1104\u1105\7\u00fd\2\2\u1105\u1106" + - "\7\u020b\2\2\u1106\u1108\5\u018a\u00c6\2\u1107\u10ee\3\2\2\2\u1107\u10f0" + - "\3\2\2\2\u1107\u10f1\3\2\2\2\u1107\u10f2\3\2\2\2\u1107\u1104\3\2\2\2\u1108" + - "\u0189\3\2\2\2\u1109\u110a\7\u0300\2\2\u110a\u110f\5\u0188\u00c5\2\u110b" + - "\u110c\7\u02fa\2\2\u110c\u110e\5\u0188\u00c5\2\u110d\u110b\3\2\2\2\u110e" + - "\u1111\3\2\2\2\u110f\u110d\3\2\2\2\u110f\u1110\3\2\2\2\u1110\u1112\3\2" + - "\2\2\u1111\u110f\3\2\2\2\u1112\u1113\7\u0301\2\2\u1113\u018b\3\2\2\2\u1114" + - "\u1115\7\u00ff\2\2\u1115\u111a\5\u01ec\u00f7\2\u1116\u1117\7\u02fa\2\2" + - "\u1117\u1119\5\u01ec\u00f7\2\u1118\u1116\3\2\2\2\u1119\u111c\3\2\2\2\u111a" + - "\u1118\3\2\2\2\u111a\u111b\3\2\2\2\u111b\u018d\3\2\2\2\u111c\u111a\3\2" + - "\2\2\u111d\u1122\5\u01b2\u00da\2\u111e\u1120\7\35\2\2\u111f\u111e\3\2" + - "\2\2\u111f\u1120\3\2\2\2\u1120\u1121\3\2\2\2\u1121\u1123\5\u01cc\u00e7" + - "\2\u1122\u111f\3\2\2\2\u1122\u1123\3\2\2\2\u1123\u1126\3\2\2\2\u1124\u1126" + - "\7\u02ff\2\2\u1125\u111d\3\2\2\2\u1125\u1124\3\2\2\2\u1126\u1134\3\2\2" + - "\2\u1127\u1130\7\u02fa\2\2\u1128\u112d\5\u01b2\u00da\2\u1129\u112b\7\35" + - "\2\2\u112a\u1129\3\2\2\2\u112a\u112b\3\2\2\2\u112b\u112c\3\2\2\2\u112c" + - "\u112e\5\u01cc\u00e7\2\u112d\u112a\3\2\2\2\u112d\u112e\3\2\2\2\u112e\u1131" + - "\3\2\2\2\u112f\u1131\7\u02ff\2\2\u1130\u1128\3\2\2\2\u1130\u112f\3\2\2" + - "\2\u1131\u1133\3\2\2\2\u1132\u1127\3\2\2\2\u1133\u1136\3\2\2\2\u1134\u1132" + - "\3\2\2\2\u1134\u1135\3\2\2\2\u1135\u018f\3\2\2\2\u1136\u1134\3\2\2\2\u1137" + - "\u1139\t\35\2\2\u1138\u113a\5\u01fe\u0100\2\u1139\u1138\3\2\2\2\u1139" + - "\u113a\3\2\2\2\u113a\u113e\3\2\2\2\u113b\u113c\7\u00e8\2\2\u113c\u113e" + - "\t\36\2\2\u113d\u1137\3\2\2\2\u113d\u113b\3\2\2\2\u113e\u0191\3\2\2\2" + - "\u113f\u1140\7\u0260\2\2\u1140\u114a\7\u01af\2\2\u1141\u1142\7\u0307\2" + - "\2\u1142\u114a\7\u01af\2\2\u1143\u1144\7\u0087\2\2\u1144\u114a\7\u01ee" + - "\2\2\u1145\u1146\7\u0307\2\2\u1146\u114a\7\u00e4\2\2\u1147\u1148\7\u0260" + - "\2\2\u1148\u114a\7\u00e4\2\2\u1149\u113f\3\2\2\2\u1149\u1141\3\2\2\2\u1149" + - "\u1143\3\2\2\2\u1149\u1145\3\2\2\2\u1149\u1147\3\2\2\2\u114a\u0193\3\2" + - "\2\2\u114b\u114c\5\u0192\u00ca\2\u114c\u0195\3\2\2\2\u114d\u114e\5\u0192" + - "\u00ca\2\u114e\u0197\3\2\2\2\u114f\u1150\t\37\2\2\u1150\u1158\5\u0194" + - "\u00cb\2\u1151\u1152\t\37\2\2\u1152\u1153\7-\2\2\u1153\u1154\5\u0194\u00cb" + - "\2\u1154\u1155\7\31\2\2\u1155\u1156\5\u0196\u00cc\2\u1156\u1158\3\2\2" + - "\2\u1157\u114f\3\2\2\2\u1157\u1151\3\2\2\2\u1158\u0199\3\2\2\2\u1159\u1166" + - "\5\u0212\u010a\2\u115a\u115b\7\u01a1\2\2\u115b\u115c\78\2\2\u115c\u1161" + - "\5\u01b2\u00da\2\u115d\u115e\7\u02fa\2\2\u115e\u1160\5\u01b2\u00da\2\u115f" + - "\u115d\3\2\2\2\u1160\u1163\3\2\2\2\u1161\u115f\3\2\2\2\u1161\u1162\3\2" + - "\2\2\u1162\u1166\3\2\2\2\u1163\u1161\3\2\2\2\u1164\u1166\5\u01a0\u00d1" + - "\2\u1165\u1159\3\2\2\2\u1165\u115a\3\2\2\2\u1165\u1164\3\2\2\2\u1166\u019b" + - "\3\2\2\2\u1167\u1168\7\u0287\2\2\u1168\u1169\5\u0212\u010a\2\u1169\u116a" + - "\7\35\2\2\u116a\u116b\7\u0300\2\2\u116b\u116c\5\u019a\u00ce\2\u116c\u116d" + - "\7\u0301\2\2\u116d\u019d\3\2\2\2\u116e\u1170\t \2\2\u116f\u1171\t!\2\2" + - "\u1170\u116f\3\2\2\2\u1170\u1171\3\2\2\2\u1171\u1175\3\2\2\2\u1172\u1174" + - "\7\u0300\2\2\u1173\u1172\3\2\2\2\u1174\u1177\3\2\2\2\u1175\u1173\3\2\2" + - "\2\u1175\u1176\3\2\2\2\u1176\u117a\3\2\2\2\u1177\u1175\3\2\2\2\u1178\u117b" + - "\5\u015a\u00ae\2\u1179\u117b\5\u017e\u00c0\2\u117a\u1178\3\2\2\2\u117a" + - "\u1179\3\2\2\2\u117b\u117f\3\2\2\2\u117c\u117e\7\u0301\2\2\u117d\u117c" + - "\3\2\2\2\u117e\u1181\3\2\2\2\u117f\u117d\3\2\2\2\u117f\u1180\3\2\2\2\u1180" + - "\u1183\3\2\2\2\u1181\u117f\3\2\2\2\u1182\u1184\5\u019e\u00d0\2\u1183\u1182" + - "\3\2\2\2\u1183\u1184\3\2\2\2\u1184\u019f\3\2\2\2\u1185\u1186\7\u018a\2" + - "\2\u1186\u1187\78\2\2\u1187\u118c\5\u01a2"; - private static final String _serializedATNSegment2 = - "\u00d2\2\u1188\u1189\7\u02fa\2\2\u1189\u118b\5\u01a2\u00d2\2\u118a\u1188" + - "\3\2\2\2\u118b\u118e\3\2\2\2\u118c\u118a\3\2\2\2\u118c\u118d\3\2\2\2\u118d" + - "\u01a1\3\2\2\2\u118e\u118c\3\2\2\2\u118f\u1192\5\u01b2\u00da\2\u1190\u1192" + - "\7\u030b\2\2\u1191\u118f\3\2\2\2\u1191\u1190\3\2\2\2\u1192\u1197\3\2\2" + - "\2\u1193\u1198\7\36\2\2\u1194\u1198\7\u00ad\2\2\u1195\u1196\7\u0273\2" + - "\2\u1196\u1198\5\u01b2\u00da\2\u1197\u1193\3\2\2\2\u1197\u1194\3\2\2\2" + - "\u1197\u1195\3\2\2\2\u1197\u1198\3\2\2\2\u1198\u11a4\3\2\2\2\u1199\u119a" + - "\7\u0177\2\2\u119a\u119b\t\"\2\2\u119b\u11a1\3\2\2\2\u119c\u119d\7\u02fa" + - "\2\2\u119d\u119e\7\u0177\2\2\u119e\u11a0\t\"\2\2\u119f\u119c\3\2\2\2\u11a0" + - "\u11a3\3\2\2\2\u11a1\u119f\3\2\2\2\u11a1\u11a2\3\2\2\2\u11a2\u11a5\3\2" + - "\2\2\u11a3\u11a1\3\2\2\2\u11a4\u1199\3\2\2\2\u11a4\u11a5\3\2\2\2\u11a5" + - "\u01a3\3\2\2\2\u11a6\u11aa\7\u0138\2\2\u11a7\u11ab\7\u0307\2\2\u11a8\u11ab" + - "\7\22\2\2\u11a9\u11ab\5\u01e0\u00f1\2\u11aa\u11a7\3\2\2\2\u11aa\u11a8" + - "\3\2\2\2\u11aa\u11a9\3\2\2\2\u11ab\u01a5\3\2\2\2\u11ac\u11ad\7\u017f\2" + - "\2\u11ad\u11af\7\u0307\2\2\u11ae\u11b0\t#\2\2\u11af\u11ae\3\2\2\2\u11af" + - "\u11b0\3\2\2\2\u11b0\u01a7\3\2\2\2\u11b1\u11b2\7\u00dd\2\2\u11b2\u11b4" + - "\t$\2\2\u11b3\u11b5\7\u0307\2\2\u11b4\u11b3\3\2\2\2\u11b4\u11b5\3\2\2" + - "\2\u11b5\u11b6\3\2\2\2\u11b6\u11b7\t#\2\2\u11b7\u11b8\7\u0183\2\2\u11b8" + - "\u01a9\3\2\2\2\u11b9\u11c1\7\u00e5\2\2\u11ba\u11c2\7\u026b\2\2\u11bb\u11bc" + - "\7\u0169\2\2\u11bc\u11bd\7\u0128\2\2\u11bd\u11c2\7\u026b\2\2\u11be\u11c2" + - "\7\u020c\2\2\u11bf\u11c0\7\u0128\2\2\u11c0\u11c2\7\u020c\2\2\u11c1\u11ba" + - "\3\2\2\2\u11c1\u11bb\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1\u11bf\3\2\2\2\u11c2" + - "\u11cc\3\2\2\2\u11c3\u11c4\7\u017d\2\2\u11c4\u11c9\5\u01d6\u00ec\2\u11c5" + - "\u11c6\7\u02fa\2\2\u11c6\u11c8\5\u01d6\u00ec\2\u11c7\u11c5\3\2\2\2\u11c8" + - "\u11cb\3\2\2\2\u11c9\u11c7\3\2\2\2\u11c9\u11ca\3\2\2\2\u11ca\u11cd\3\2" + - "\2\2\u11cb\u11c9\3\2\2\2\u11cc\u11c3\3\2\2\2\u11cc\u11cd\3\2\2\2\u11cd" + - "\u11d3\3\2\2\2\u11ce\u11d2\7\u0173\2\2\u11cf\u11d0\7\u0211\2\2\u11d0\u11d2" + - "\7\u0142\2\2\u11d1\u11ce\3\2\2\2\u11d1\u11cf\3\2\2\2\u11d2\u11d5\3\2\2" + - "\2\u11d3\u11d1\3\2\2\2\u11d3\u11d4\3\2\2\2\u11d4\u01ab\3\2\2\2\u11d5\u11d3" + - "\3\2\2\2\u11d6\u11db\5\u01ae\u00d8\2\u11d7\u11d8\7\u02fa\2\2\u11d8\u11da" + - "\5\u01ae\u00d8\2\u11d9\u11d7\3\2\2\2\u11da\u11dd\3\2\2\2\u11db\u11d9\3" + - "\2\2\2\u11db\u11dc\3\2\2\2\u11dc\u01ad\3\2\2\2\u11dd\u11db\3\2\2\2\u11de" + - "\u11e8\5\u01b2\u00da\2\u11df\u11e0\7\u0300\2\2\u11e0\u11e1\5\u01ce\u00e8" + - "\2\u11e1\u11e2\7\u0301\2\2\u11e2\u11e5\7\u0319\2\2\u11e3\u11e6\5\u01b2" + - "\u00da\2\u11e4\u11e6\5\u01b8\u00dd\2\u11e5\u11e3\3\2\2\2\u11e5\u11e4\3" + - "\2\2\2\u11e6\u11e8\3\2\2\2\u11e7\u11de\3\2\2\2\u11e7\u11df\3\2\2\2\u11e8" + - "\u01af\3\2\2\2\u11e9\u11ea\7\u01e3\2\2\u11ea\u11eb\5\u018e\u00c8\2\u11eb" + - "\u01b1\3\2\2\2\u11ec\u11ed\b\u00da\1\2\u11ed\u1237\7\u0174\2\2\u11ee\u1237" + - "\7\u0088\2\2\u11ef\u1237\7\u008b\2\2\u11f0\u1237\7\u008c\2\2\u11f1\u1237" + - "\7\u008d\2\2\u11f2\u1237\7\u008f\2\2\u11f3\u1237\7\u009d\2\2\u11f4\u1237" + - "\7\u0307\2\2\u11f5\u1237\7\u0308\2\2\u11f6\u1237\7\u0306\2\2\u11f7\u1237" + - "\7\u030a\2\2\u11f8\u1237\7\u0304\2\2\u11f9\u1237\7\u0305\2\2\u11fa\u11fc" + - "\7\u02fe\2\2\u11fb\u11fd\n%\2\2\u11fc\u11fb\3\2\2\2\u11fd\u11fe\3\2\2" + - "\2\u11fe\u11fc\3\2\2\2\u11fe\u11ff\3\2\2\2\u11ff\u1200\3\2\2\2\u1200\u1237" + - "\7\u02fe\2\2\u1201\u1202\7\u02fd\2\2\u1202\u1204\5\u0202\u0102\2\u1203" + - "\u1205\n%\2\2\u1204\u1203\3\2\2\2\u1205\u1206\3\2\2\2\u1206\u1204\3\2" + - "\2\2\u1206\u1207\3\2\2\2\u1207\u1208\3\2\2\2\u1208\u1209\7\u02fd\2\2\u1209" + - "\u120a\5\u0202\u0102\2\u120a\u120b\7\u02fd\2\2\u120b\u1237\3\2\2\2\u120c" + - "\u1237\5\u01b4\u00db\2\u120d\u1237\5\u017e\u00c0\2\u120e\u1237\5\u01b8" + - "\u00dd\2\u120f\u1210\7\u0300\2\2\u1210\u1211\5\u01b2\u00da\2\u1211\u1212" + - "\7\u0301\2\2\u1212\u1237\3\2\2\2\u1213\u1214\5\u01c4\u00e3\2\u1214\u1215" + - "\7\u030a\2\2\u1215\u1237\3\2\2\2\u1216\u1217\t&\2\2\u1217\u1237\5\u01b2" + - "\u00da \u1218\u1219\t\'\2\2\u1219\u1237\5\u01b2\u00da\37\u121a\u121b\t" + - "(\2\2\u121b\u1237\5\u01b2\u00da\23\u121c\u1237\5\u01e0\u00f1\2\u121d\u1237" + - "\5\u0202\u0102\2\u121e\u121f\7A\2\2\u121f\u1220\7\u0300\2\2\u1220\u1221" + - "\5\u01b2\u00da\2\u1221\u1222\7\35\2\2\u1222\u1223\5\u01d8\u00ed\2\u1223" + - "\u1224\7\u0301\2\2\u1224\u1237\3\2\2\2\u1225\u1226\5\u0208\u0105\2\u1226" + - "\u1227\7\u0309\2\2\u1227\u1228\5\u020a\u0106\2\u1228\u1237\3\2\2\2\u1229" + - "\u1237\5\u01b6\u00dc\2\u122a\u122b\5\u01d8\u00ed\2\u122b\u122c\5\u01b2" + - "\u00da\13\u122c\u1237\3\2\2\2\u122d\u1237\5\u01ca\u00e6\2\u122e\u1237" + - "\5\u01e2\u00f2\2\u122f\u1230\7\u00d5\2\2\u1230\u1237\5\u01b2\u00da\5\u1231" + - "\u1237\7\u030d\2\2\u1232\u1233\7\u0300\2\2\u1233\u1234\5\u015a\u00ae\2" + - "\u1234\u1235\7\u0301\2\2\u1235\u1237\3\2\2\2\u1236\u11ec\3\2\2\2\u1236" + - "\u11ee\3\2\2\2\u1236\u11ef\3\2\2\2\u1236\u11f0\3\2\2\2\u1236\u11f1\3\2" + - "\2\2\u1236\u11f2\3\2\2\2\u1236\u11f3\3\2\2\2\u1236\u11f4\3\2\2\2\u1236" + - "\u11f5\3\2\2\2\u1236\u11f6\3\2\2\2\u1236\u11f7\3\2\2\2\u1236\u11f8\3\2" + - "\2\2\u1236\u11f9\3\2\2\2\u1236\u11fa\3\2\2\2\u1236\u1201\3\2\2\2\u1236" + - "\u120c\3\2\2\2\u1236\u120d\3\2\2\2\u1236\u120e\3\2\2\2\u1236\u120f\3\2" + - "\2\2\u1236\u1213\3\2\2\2\u1236\u1216\3\2\2\2\u1236\u1218\3\2\2\2\u1236" + - "\u121a\3\2\2\2\u1236\u121c\3\2\2\2\u1236\u121d\3\2\2\2\u1236\u121e\3\2" + - "\2\2\u1236\u1225\3\2\2\2\u1236\u1229\3\2\2\2\u1236\u122a\3\2\2\2\u1236" + - "\u122d\3\2\2\2\u1236\u122e\3\2\2\2\u1236\u122f\3\2\2\2\u1236\u1231\3\2" + - "\2\2\u1236\u1232\3\2\2\2\u1237\u129b\3\2\2\2\u1238\u1239\f\35\2\2\u1239" + - "\u123a\t)\2\2\u123a\u129a\5\u01b2\u00da\36\u123b\u123c\f\34\2\2\u123c" + - "\u123d\t*\2\2\u123d\u129a\5\u01b2\u00da\35\u123e\u123f\f\33\2\2\u123f" + - "\u1240\t+\2\2\u1240\u129a\5\u01b2\u00da\34\u1241\u1242\f\32\2\2\u1242" + - "\u1243\t,\2\2\u1243\u129a\5\u01b2\u00da\33\u1244\u1248\f\31\2\2\u1245" + - "\u1246\7\u016f\2\2\u1246\u1249\7\u0137\2\2\u1247\u1249\7\u0137\2\2\u1248" + - "\u1245\3\2\2\2\u1248\u1247\3\2\2\2\u1249\u124a\3\2\2\2\u124a\u129a\5\u01b2" + - "\u00da\32\u124b\u124d\f\30\2\2\u124c\u124e\7\u016f\2\2\u124d\u124c\3\2" + - "\2\2\u124d\u124e\3\2\2\2\u124e\u124f\3\2\2\2\u124f\u1250\7-\2\2\u1250" + - "\u1251\5\u01b2\u00da\2\u1251\u1252\7\31\2\2\u1252\u1253\5\u01b2\u00da" + - "\31\u1253\u129a\3\2\2\2\u1254\u1255\f\27\2\2\u1255\u1256\7\u010b\2\2\u1256" + - "\u129a\5\u01b2\u00da\30\u1257\u1258\f\26\2\2\u1258\u1259\t-\2\2\u1259" + - "\u129a\5\u01b2\u00da\27\u125a\u125b\f\24\2\2\u125b\u125d\7\u0123\2\2\u125c" + - "\u125e\7\u016f\2\2\u125d\u125c\3\2\2\2\u125d\u125e\3\2\2\2\u125e\u125f" + - "\3\2\2\2\u125f\u1260\7\u00ba\2\2\u1260\u1261\7\u00ee\2\2\u1261\u129a\5" + - "\u01b2\u00da\25\u1262\u1263\f#\2\2\u1263\u1264\7\u0302\2\2\u1264\u1265" + - "\5\u01b2\u00da\2\u1265\u1266\7\u0303\2\2\u1266\u129a\3\2\2\2\u1267\u1268" + - "\f\36\2\2\u1268\u129a\7\u0315\2\2\u1269\u126a\f\25\2\2\u126a\u126f\7\u0123" + - "\2\2\u126b\u1270\5\u01b4\u00db\2\u126c\u1270\7\u0174\2\2\u126d\u126e\7" + - "\u016f\2\2\u126e\u1270\7\u0174\2\2\u126f\u126b\3\2\2\2\u126f\u126c\3\2" + - "\2\2\u126f\u126d\3\2\2\2\u1270\u129a\3\2\2\2\u1271\u127b\f\r\2\2\u1272" + - "\u1274\7\u0302\2\2\u1273\u1275\5\u01b2\u00da\2\u1274\u1273\3\2\2\2\u1274" + - "\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278\7\u02fb\2\2\u1277\u1279" + - "\5\u01b2\u00da\2\u1278\u1277\3\2\2\2\u1278\u1279\3\2\2\2\u1279\u127a\3" + - "\2\2\2\u127a\u127c\7\u0303\2\2\u127b\u1272\3\2\2\2\u127c\u127d\3\2\2\2" + - "\u127d\u127b\3\2\2\2\u127d\u127e\3\2\2\2\u127e\u129a\3\2\2\2\u127f\u1282" + - "\f\f\2\2\u1280\u1281\7\u02fc\2\2\u1281\u1283\5\u01d8\u00ed\2\u1282\u1280" + - "\3\2\2\2\u1283\u1284\3\2\2\2\u1284\u1282\3\2\2\2\u1284\u1285\3\2\2\2\u1285" + - "\u129a\3\2\2\2\u1286\u1287\f\n\2\2\u1287\u1288\7\u0123\2\2\u1288\u1289" + - "\7\u017d\2\2\u1289\u128a\7\u0300\2\2\u128a\u128b\5\u01d8\u00ed\2\u128b" + - "\u128c\7\u0301\2\2\u128c\u129a\3\2\2\2\u128d\u128e\f\t\2\2\u128e\u1291" + - "\7\u0309\2\2\u128f\u1292\5\u0202\u0102\2\u1290\u1292\7\u02ff\2\2\u1291" + - "\u128f\3\2\2\2\u1291\u1290\3\2\2\2\u1292\u129a\3\2\2\2\u1293\u1294\f\6" + - "\2\2\u1294\u1295\7#\2\2\u1295\u1296\7\u0244\2\2\u1296\u1297\7\u0290\2" + - "\2\u1297\u1298\3\2\2\2\u1298\u129a\7\u030a\2\2\u1299\u1238\3\2\2\2\u1299" + - "\u123b\3\2\2\2\u1299\u123e\3\2\2\2\u1299\u1241\3\2\2\2\u1299\u1244\3\2" + - "\2\2\u1299\u124b\3\2\2\2\u1299\u1254\3\2\2\2\u1299\u1257\3\2\2\2\u1299" + - "\u125a\3\2\2\2\u1299\u1262\3\2\2\2\u1299\u1267\3\2\2\2\u1299\u1269\3\2" + - "\2\2\u1299\u1271\3\2\2\2\u1299\u127f\3\2\2\2\u1299\u1286\3\2\2\2\u1299" + - "\u128d\3\2\2\2\u1299\u1293\3\2\2\2\u129a\u129d\3\2\2\2\u129b\u1299\3\2" + - "\2\2\u129b\u129c\3\2\2\2\u129c\u01b3\3\2\2\2\u129d\u129b\3\2\2\2\u129e" + - "\u129f\b\u00db\1\2\u129f\u12a4\7\u025b\2\2\u12a0\u12a4\7\u00dc\2\2\u12a1" + - "\u12a2\7\u016f\2\2\u12a2\u12a4\5\u01b4\u00db\5\u12a3\u129e\3\2\2\2\u12a3" + - "\u12a0\3\2\2\2\u12a3\u12a1\3\2\2\2\u12a4\u12ad\3\2\2\2\u12a5\u12a6\f\4" + - "\2\2\u12a6\u12a7\7\31\2\2\u12a7\u12ac\5\u01b4\u00db\5\u12a8\u12a9\f\3" + - "\2\2\u12a9\u12aa\7\u0189\2\2\u12aa\u12ac\5\u01b4\u00db\4\u12ab\u12a5\3" + - "\2\2\2\u12ab\u12a8\3\2\2\2\u12ac\u12af\3\2\2\2\u12ad\u12ab\3\2\2\2\u12ad" + - "\u12ae\3\2\2\2\u12ae\u01b5\3\2\2\2\u12af\u12ad\3\2\2\2\u12b0\u12b1\7@" + - "\2\2\u12b1\u12b7\5\u01b2\u00da\2\u12b2\u12b3\7\u0283\2\2\u12b3\u12b4\5" + - "\u01b2\u00da\2\u12b4\u12b5\7\u0242\2\2\u12b5\u12b6\5\u01b2\u00da\2\u12b6" + - "\u12b8\3\2\2\2\u12b7\u12b2\3\2\2\2\u12b8\u12b9\3\2\2\2\u12b9\u12b7\3\2" + - "\2\2\u12b9\u12ba\3\2\2\2\u12ba\u12bd\3\2\2\2\u12bb\u12bc\7\u00c4\2\2\u12bc" + - "\u12be\5\u01b2\u00da\2\u12bd\u12bb\3\2\2\2\u12bd\u12be\3\2\2\2\u12be\u12bf" + - "\3\2\2\2\u12bf\u12c0\7\u00c8\2\2\u12c0\u12d2\3\2\2\2\u12c1\u12c7\7@\2" + - "\2\u12c2\u12c3\7\u0283\2\2\u12c3\u12c4\5\u01ec\u00f7\2\u12c4\u12c5\7\u0242" + - "\2\2\u12c5\u12c6\5\u01b2\u00da\2\u12c6\u12c8\3\2\2\2\u12c7\u12c2\3\2\2" + - "\2\u12c8\u12c9\3\2\2\2\u12c9\u12c7\3\2\2\2\u12c9\u12ca\3\2\2\2\u12ca\u12cd" + - "\3\2\2\2\u12cb\u12cc\7\u00c4\2\2\u12cc\u12ce\5\u01b2\u00da\2\u12cd\u12cb" + - "\3\2\2\2\u12cd\u12ce\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf\u12d0\7\u00c8\2" + - "\2\u12d0\u12d2\3\2\2\2\u12d1\u12b0\3\2\2\2\u12d1\u12c1\3\2\2\2\u12d2\u01b7" + - "\3\2\2\2\u12d3\u12d4\7\u0300\2\2\u12d4\u12d9\5\u01b2\u00da\2\u12d5\u12d6" + - "\7\u02fa\2\2\u12d6\u12d8\5\u01b2\u00da\2\u12d7\u12d5\3\2\2\2\u12d8\u12db" + - "\3\2\2\2\u12d9\u12d7\3\2\2\2\u12d9\u12da\3\2\2\2\u12da\u12dc\3\2\2\2\u12db" + - "\u12d9\3\2\2\2\u12dc\u12dd\7\u0301\2\2\u12dd\u01b9\3\2\2\2\u12de\u12e0" + - "\7\u0300\2\2\u12df\u12de\3\2\2\2\u12df\u12e0\3\2\2\2\u12e0\u12e1\3\2\2" + - "\2\u12e1\u12e6\5\u01b8\u00dd\2\u12e2\u12e3\7\u02fa\2\2\u12e3\u12e5\5\u01b8" + - "\u00dd\2\u12e4\u12e2\3\2\2\2\u12e5\u12e8\3\2\2\2\u12e6\u12e4\3\2\2\2\u12e6" + - "\u12e7\3\2\2\2\u12e7\u12ea\3\2\2\2\u12e8\u12e6\3\2\2\2\u12e9\u12eb\7\u0301" + - "\2\2\u12ea\u12e9\3\2\2\2\u12ea\u12eb\3\2\2\2\u12eb\u01bb\3\2\2\2\u12ec" + - "\u12ee\t.\2\2\u12ed\u12ec\3\2\2\2\u12ed\u12ee\3\2\2\2\u12ee\u12f0\3\2" + - "\2\2\u12ef\u12f1\5\u0202\u0102\2\u12f0\u12ef\3\2\2\2\u12f0\u12f1\3\2\2" + - "\2\u12f1\u12f2\3\2\2\2\u12f2\u12f4\5\u01d8\u00ed\2\u12f3\u12ed\3\2\2\2" + - "\u12f3\u12f4\3\2\2\2\u12f4\u01bd\3\2\2\2\u12f5\u12fa\5\u01bc\u00df\2\u12f6" + - "\u12f7\7\u02fa\2\2\u12f7\u12f9\5\u01bc\u00df\2\u12f8\u12f6\3\2\2\2\u12f9" + - "\u12fc\3\2\2\2\u12fa\u12f8\3\2\2\2\u12fa\u12fb\3\2\2\2\u12fb\u01bf\3\2" + - "\2\2\u12fc\u12fa\3\2\2\2\u12fd\u1302\5\u0202\u0102\2\u12fe\u12ff\7\u0300" + - "\2\2\u12ff\u1300\5\u01be\u00e0\2\u1300\u1301\7\u0301\2\2\u1301\u1303\3" + - "\2\2\2\u1302\u12fe\3\2\2\2\u1302\u1303\3\2\2\2\u1303\u01c1\3\2\2\2\u1304" + - "\u1309\5\u01c0\u00e1\2\u1305\u1306\7\u02fa\2\2\u1306\u1308\5\u01c0\u00e1" + - "\2\u1307\u1305\3\2\2\2\u1308\u130b\3\2\2\2\u1309\u1307\3\2\2\2\u1309\u130a" + - "\3\2\2\2\u130a\u01c3\3\2\2\2\u130b\u1309\3\2\2\2\u130c\u139d\7\u02d1\2" + - "\2\u130d\u139d\7\u02ea\2\2\u130e\u139d\7.\2\2\u130f\u139d\7\u02d2\2\2" + - "\u1310\u1314\7\60\2\2\u1311\u1312\7\u0300\2\2\u1312\u1313\7\u0307\2\2" + - "\u1313\u1315\7\u0301\2\2\u1314\u1311\3\2\2\2\u1314\u1315\3\2\2\2\u1315" + - "\u139d\3\2\2\2\u1316\u131a\7\u02d3\2\2\u1317\u1318\7\u0300\2\2\u1318\u1319" + - "\7\u0307\2\2\u1319\u131b\7\u0301\2\2\u131a\u1317\3\2\2\2\u131a\u131b\3" + - "\2\2\2\u131b\u139d\3\2\2\2\u131c\u139d\7\u02d4\2\2\u131d\u139d\7\64\2" + - "\2\u131e\u139d\7\u02d5\2\2\u131f\u139d\7\u02d6\2\2\u1320\u1324\7G\2\2" + - "\u1321\u1322\7\u0300\2\2\u1322\u1323\7\u0307\2\2\u1323\u1325\7\u0301\2" + - "\2\u1324\u1321\3\2\2\2\u1324\u1325\3\2\2\2\u1325\u139d\3\2\2\2\u1326\u132a" + - "\7I\2\2\u1327\u1328\7\u0300\2\2\u1328\u1329\7\u0307\2\2\u1329\u132b\7" + - "\u0301\2\2\u132a\u1327\3\2\2\2\u132a\u132b\3\2\2\2\u132b\u139d\3\2\2\2" + - "\u132c\u1330\7\u02d7\2\2\u132d\u132e\7\u0300\2\2\u132e\u132f\7\u0307\2" + - "\2\u132f\u1331\7\u0301\2\2\u1330\u132d\3\2\2\2\u1330\u1331\3\2\2\2\u1331" + - "\u139d\3\2\2\2\u1332\u139d\7\u02d8\2\2\u1333\u139d\7\u02d9\2\2\u1334\u139d" + - "\7\u0095\2\2\u1335\u133b\7\u009b\2\2\u1336\u1337\7\u0300\2\2\u1337\u1338" + - "\7\u0307\2\2\u1338\u1339\7\u02fa\2\2\u1339\u133a\7\u0307\2\2\u133a\u133c" + - "\7\u0301\2\2\u133b\u1336\3\2\2\2\u133b\u133c\3\2\2\2\u133c\u139d\3\2\2" + - "\2\u133d\u133e\7\u00bd\2\2\u133e\u139d\7\u01b0\2\2\u133f\u139d\7\u02da" + - "\2\2\u1340\u139d\7\u02db\2\2\u1341\u139d\7\u02dc\2\2\u1342\u139d\7\u011c" + - "\2\2\u1343\u139d\7\u02de\2\2\u1344\u139d\7\u02dd\2\2\u1345\u139d\7\u02df" + - "\2\2\u1346\u139d\7\u011d\2\2\u1347\u1349\7\u0120\2\2\u1348\u134a\7\u00de" + - "\2\2\u1349\u1348\3\2\2\2\u1349\u134a\3\2\2\2\u134a\u134c\3\2\2\2\u134b" + - "\u134d\7\u0307\2\2\u134c\u134b\3\2\2\2\u134c\u134d\3\2\2\2\u134d\u139d" + - "\3\2\2\2\u134e\u139d\7\u02e0\2\2\u134f\u139d\7\u02e1\2\2\u1350\u139d\7" + - "\u02e2\2\2\u1351\u139d\7\u02e3\2\2\u1352\u139d\7\u02e4\2\2\u1353\u139d" + - "\7\u02e5\2\2\u1354\u139d\7\u02e6\2\2\u1355\u135b\7\u0179\2\2\u1356\u1357" + - "\7\u0300\2\2\u1357\u1358\7\u0307\2\2\u1358\u1359\7\u02fa\2\2\u1359\u135a" + - "\7\u0307\2\2\u135a\u135c\7\u0301\2\2\u135b\u1356\3\2\2\2\u135b\u135c\3" + - "\2\2\2\u135c\u139d\3\2\2\2\u135d\u139d\7\u01a4\2\2\u135e\u139d\7\u02e7" + - "\2\2\u135f\u139d\7\u02e8\2\2\u1360\u139d\7\u02e9\2\2\u1361\u139d\7\u01c2" + - "\2\2\u1362\u139d\7\u02eb\2\2\u1363\u139d\7\u02ec\2\2\u1364\u139d\7\u02ed" + - "\2\2\u1365\u139d\7\u02ee\2\2\u1366\u139d\7\u0212\2\2\u1367\u139d\7\u02ef" + - "\2\2\u1368\u139d\7\u02f1\2\2\u1369\u136d\7\u0244\2\2\u136a\u136b\7\u0300" + - "\2\2\u136b\u136c\7\u0307\2\2\u136c\u136e\7\u0301\2\2\u136d\u136a\3\2\2" + - "\2\u136d\u136e\3\2\2\2\u136e\u1372\3\2\2\2\u136f\u1370\t/\2\2\u1370\u1371" + - "\7\u0244\2\2\u1371\u1373\7\u0290\2\2\u1372\u136f\3\2\2\2\u1372\u1373\3" + - "\2\2\2\u1373\u139d\3\2\2\2\u1374\u1378\7\u0245\2\2\u1375\u1376\7\u0300" + - "\2\2\u1376\u1377\7\u0307\2\2\u1377\u1379\7\u0301\2\2\u1378\u1375\3\2\2" + - "\2\u1378\u1379\3\2\2\2\u1379\u137d\3\2\2\2\u137a\u137b\t/\2\2\u137b\u137c" + - "\7\u0244\2\2\u137c\u137e\7\u0290\2\2\u137d\u137a\3\2\2\2\u137d\u137e\3" + - "\2\2\2\u137e\u139d\3\2\2\2\u137f\u1383\7\u02f3\2\2\u1380\u1381\7\u0300" + - "\2\2\u1381\u1382\7\u0307\2\2\u1382\u1384\7\u0301\2\2\u1383\u1380\3\2\2" + - "\2\u1383\u1384\3\2\2\2\u1384\u139d\3\2\2\2\u1385\u1389\7\u02f2\2\2\u1386" + - "\u1387\7\u0300\2\2\u1387\u1388\7\u0307\2\2\u1388\u138a\7\u0301\2\2\u1389" + - "\u1386\3\2\2\2\u1389\u138a\3\2\2\2\u138a\u139d\3\2\2\2\u138b\u139d\7\u02f4" + - "\2\2\u138c\u139d\7\u02f5\2\2\u138d\u139d\7\u02f6\2\2\u138e\u139d\7\u02f7" + - "\2\2\u138f\u1393\7\u02f8\2\2\u1390\u1391\7\u0300\2\2\u1391\u1392\7\u0307" + - "\2\2\u1392\u1394\7\u0301\2\2\u1393\u1390\3\2\2\2\u1393\u1394\3\2\2\2\u1394" + - "\u139d\3\2\2\2\u1395\u1399\7\u027c\2\2\u1396\u1397\7\u0300\2\2\u1397\u1398" + - "\7\u0307\2\2\u1398\u139a\7\u0301\2\2\u1399\u1396\3\2\2\2\u1399\u139a\3" + - "\2\2\2\u139a\u139d\3\2\2\2\u139b\u139d\7\u02f9\2\2\u139c\u130c\3\2\2\2" + - "\u139c\u130d\3\2\2\2\u139c\u130e\3\2\2\2\u139c\u130f\3\2\2\2\u139c\u1310" + - "\3\2\2\2\u139c\u1316\3\2\2\2\u139c\u131c\3\2\2\2\u139c\u131d\3\2\2\2\u139c" + - "\u131e\3\2\2\2\u139c\u131f\3\2\2\2\u139c\u1320\3\2\2\2\u139c\u1326\3\2" + - "\2\2\u139c\u132c\3\2\2\2\u139c\u1332\3\2\2\2\u139c\u1333\3\2\2\2\u139c" + - "\u1334\3\2\2\2\u139c\u1335\3\2\2\2\u139c\u133d\3\2\2\2\u139c\u133f\3\2" + - "\2\2\u139c\u1340\3\2\2\2\u139c\u1341\3\2\2\2\u139c\u1342\3\2\2\2\u139c" + - "\u1343\3\2\2\2\u139c\u1344\3\2\2\2\u139c\u1345\3\2\2\2\u139c\u1346\3\2" + - "\2\2\u139c\u1347\3\2\2\2\u139c\u134e\3\2\2\2\u139c\u134f\3\2\2\2\u139c" + - "\u1350\3\2\2\2\u139c\u1351\3\2\2\2\u139c\u1352\3\2\2\2\u139c\u1353\3\2" + - "\2\2\u139c\u1354\3\2\2\2\u139c\u1355\3\2\2\2\u139c\u135d\3\2\2\2\u139c" + - "\u135e\3\2\2\2\u139c\u135f\3\2\2\2\u139c\u1360\3\2\2\2\u139c\u1361\3\2" + - "\2\2\u139c\u1362\3\2\2\2\u139c\u1363\3\2\2\2\u139c\u1364\3\2\2\2\u139c" + - "\u1365\3\2\2\2\u139c\u1366\3\2\2\2\u139c\u1367\3\2\2\2\u139c\u1368\3\2" + - "\2\2\u139c\u1369\3\2\2\2\u139c\u1374\3\2\2\2\u139c\u137f\3\2\2\2\u139c" + - "\u1385\3\2\2\2\u139c\u138b\3\2\2\2\u139c\u138c\3\2\2\2\u139c\u138d\3\2" + - "\2\2\u139c\u138e\3\2\2\2\u139c\u138f\3\2\2\2\u139c\u1395\3\2\2\2\u139c" + - "\u139b\3\2\2\2\u139d\u01c5\3\2\2\2\u139e\u139f\t\60\2\2\u139f\u01c7\3" + - "\2\2\2\u13a0\u13a5\3\2\2\2\u13a1\u13a2\7\u0123\2\2\u13a2\u13a5\7\u017d" + - "\2\2\u13a3\u13a5\7\22\2\2\u13a4\u13a0\3\2\2\2\u13a4\u13a1\3\2\2\2\u13a4" + - "\u13a3\3\2\2\2\u13a5\u01c9\3\2\2\2\u13a6\u13a7\5\u0202\u0102\2\u13a7\u13a9" + - "\7\u0300\2\2\u13a8\u13aa\t!\2\2\u13a9\u13a8\3\2\2\2\u13a9\u13aa\3\2\2" + - "\2\u13aa\u13ab\3\2\2\2\u13ab\u13b0\5\u01b2\u00da\2\u13ac\u13ad\7\u02fa" + - "\2\2\u13ad\u13af\5\u01b2\u00da\2\u13ae\u13ac\3\2\2\2\u13af\u13b2\3\2\2" + - "\2\u13b0\u13ae\3\2\2\2\u13b0\u13b1\3\2\2\2\u13b1\u13b4\3\2\2\2\u13b2\u13b0" + - "\3\2\2\2\u13b3\u13b5\5\u01a0\u00d1\2\u13b4\u13b3\3\2\2\2\u13b4\u13b5\3" + - "\2\2\2\u13b5\u13b6\3\2\2\2\u13b6\u13bd\7\u0301\2\2\u13b7\u13b8\7\u00df" + - "\2\2\u13b8\u13b9\7\u0300\2\2\u13b9\u13ba\7\u0285\2\2\u13ba\u13bb\5\u0184" + - "\u00c3\2\u13bb\u13bc\7\u0301\2\2\u13bc\u13be\3\2\2\2\u13bd\u13b7\3\2\2" + - "\2\u13bd\u13be\3\2\2\2\u13be\u13e6\3\2\2\2\u13bf\u13c0\5\u0202\u0102\2" + - "\u13c0\u13c1\7\u0300\2\2\u13c1\u13c2\7\u02ff\2\2\u13c2\u13c9\7\u0301\2" + - "\2\u13c3\u13c4\7\u00df\2\2\u13c4\u13c5\7\u0300\2\2\u13c5\u13c6\7\u0285" + - "\2\2\u13c6\u13c7\5\u0184\u00c3\2\u13c7\u13c8\7\u0301\2\2\u13c8\u13ca\3" + - "\2\2\2\u13c9\u13c3\3\2\2\2\u13c9\u13ca\3\2\2\2\u13ca\u13e6\3\2\2\2\u13cb" + - "\u13cc\5\u0202\u0102\2\u13cc\u13d5\7\u0300\2\2\u13cd\u13d2\5\u01b2\u00da" + - "\2\u13ce\u13cf\7\u02fa\2\2\u13cf\u13d1\5\u01b2\u00da\2\u13d0\u13ce\3\2" + - "\2\2\u13d1\u13d4\3\2\2\2\u13d2\u13d0\3\2\2\2\u13d2\u13d3\3\2\2\2\u13d3" + - "\u13d6\3\2\2\2\u13d4\u13d2\3\2\2\2\u13d5\u13cd\3\2\2\2\u13d5\u13d6\3\2" + - "\2\2\u13d6\u13d7\3\2\2\2\u13d7\u13d8\7\u0301\2\2\u13d8\u13d9\7\u0289\2" + - "\2\u13d9\u13da\7\u00fc\2\2\u13da\u13db\7\u0300\2\2\u13db\u13dc\5\u01a0" + - "\u00d1\2\u13dc\u13e3\7\u0301\2\2\u13dd\u13de\7\u00df\2\2\u13de\u13df\7" + - "\u0300\2\2\u13df\u13e0\7\u0285\2\2\u13e0\u13e1\5\u0184\u00c3\2\u13e1\u13e2" + - "\7\u0301\2\2\u13e2\u13e4\3\2\2\2\u13e3\u13dd\3\2\2\2\u13e3\u13e4\3\2\2" + - "\2\u13e4\u13e6\3\2\2\2\u13e5\u13a6\3\2\2\2\u13e5\u13bf\3\2\2\2\u13e5\u13cb" + - "\3\2\2\2\u13e6\u01cb\3\2\2\2\u13e7\u13ea\7\u030a\2\2\u13e8\u13ea\5\u0202" + - "\u0102\2\u13e9\u13e7\3\2\2\2\u13e9\u13e8\3\2\2\2\u13ea\u01cd\3\2\2\2\u13eb" + - "\u13f0\5\u01cc\u00e7\2\u13ec\u13ed\7\u02fa\2\2\u13ed\u13ef\5\u01cc\u00e7" + - "\2\u13ee\u13ec\3\2\2\2\u13ef\u13f2\3\2\2\2\u13f0\u13ee\3\2\2\2\u13f0\u13f1" + - "\3\2\2\2\u13f1\u01cf\3\2\2\2\u13f2\u13f0\3\2\2\2\u13f3\u13f8\5\u0202\u0102" + - "\2\u13f4\u13f5\7\u02fa\2\2\u13f5\u13f7\5\u0202\u0102\2\u13f6\u13f4\3\2" + - "\2\2\u13f7\u13fa\3\2\2\2\u13f8\u13f6\3\2\2\2\u13f8\u13f9\3\2\2\2\u13f9" + - "\u01d1\3\2\2\2\u13fa\u13f8\3\2\2\2\u13fb\u13fe\5\u0202\u0102\2\u13fc\u13fd" + - "\7\u0319\2\2\u13fd\u13ff\5\u01fe\u0100\2\u13fe\u13fc\3\2\2\2\u13fe\u13ff" + - "\3\2\2\2\u13ff\u01d3\3\2\2\2\u1400\u1405\5\u01d2\u00ea\2\u1401\u1402\7" + - "\u02fa\2\2\u1402\u1404\5\u01d2\u00ea\2\u1403\u1401\3\2\2\2\u1404\u1407" + - "\3\2\2\2\u1405\u1403\3\2\2\2\u1405\u1406\3\2\2\2\u1406\u01d5\3\2\2\2\u1407" + - "\u1405\3\2\2\2\u1408\u1409\5\u0202\u0102\2\u1409\u01d7\3\2\2\2\u140a\u140d" + - "\5\u01c4\u00e3\2\u140b\u140d\5\u0202\u0102\2\u140c\u140a\3\2\2\2\u140c" + - "\u140b\3\2\2\2\u140d\u1415\3\2\2\2\u140e\u1410\7\u0302\2\2\u140f\u1411" + - "\7\u0307\2\2\u1410\u140f\3\2\2\2\u1410\u1411\3\2\2\2\u1411\u1412\3\2\2" + - "\2\u1412\u1414\7\u0303\2\2\u1413\u140e\3\2\2\2\u1414\u1417\3\2\2\2\u1415" + - "\u1413\3\2\2\2\u1415\u1416\3\2\2\2\u1416\u01d9\3\2\2\2\u1417\u1415\3\2" + - "\2\2\u1418\u141d\5\u01d8\u00ed\2\u1419\u141a\7\u02fa\2\2\u141a\u141c\5" + - "\u01d8\u00ed\2\u141b\u1419\3\2\2\2\u141c\u141f\3\2\2\2\u141d\u141b\3\2" + - "\2\2\u141d\u141e\3\2\2\2\u141e\u01db\3\2\2\2\u141f\u141d\3\2\2\2\u1420" + - "\u1423\t\61\2\2\u1421\u1423\5\u0202\u0102\2\u1422\u1420\3\2\2\2\u1422" + - "\u1421\3\2\2\2\u1423\u01dd\3\2\2\2\u1424\u1425\5\u0202\u0102\2\u1425\u01df" + - "\3\2\2\2\u1426\u1427\5\u01de\u00f0\2\u1427\u1428\7\u0300\2\2\u1428\u1429" + - "\7\u027e\2\2\u1429\u142a\5\u01b2\u00da\2\u142a\u142b\7\u0301\2\2\u142b" + - "\u144b\3\2\2\2\u142c\u142d\5\u01de\u00f0\2\u142d\u143b\7\u0300\2\2\u142e" + - "\u1433\5\u01b2\u00da\2\u142f\u1430\7\u02fa\2\2\u1430\u1432\5\u01b2\u00da" + - "\2\u1431\u142f\3\2\2\2\u1432\u1435\3\2\2\2\u1433\u1431\3\2\2\2\u1433\u1434" + - "\3\2\2\2\u1434\u1439\3\2\2\2\u1435\u1433\3\2\2\2\u1436\u1437\7\u02fa\2" + - "\2\u1437\u1438\7\u027e\2\2\u1438\u143a\5\u01b2\u00da\2\u1439\u1436\3\2" + - "\2\2\u1439\u143a\3\2\2\2\u143a\u143c\3\2\2\2\u143b\u142e\3\2\2\2\u143b" + - "\u143c\3\2\2\2\u143c\u143d\3\2\2\2\u143d\u143e\7\u0301\2\2\u143e\u144b" + - "\3\2\2\2\u143f\u1440\5\u01de\u00f0\2\u1440\u1441\7\u0300\2\2\u1441\u1442" + - "\5\u0204\u0103\2\u1442\u1443\7\u00ee\2\2\u1443\u1446\5\u01b2\u00da\2\u1444" + - "\u1445\7\u00e5\2\2\u1445\u1447\5\u01b2\u00da\2\u1446\u1444\3\2\2\2\u1446" + - "\u1447\3\2\2\2\u1447\u1448\3\2\2\2\u1448\u1449\7\u0301\2\2\u1449\u144b" + - "\3\2\2\2\u144a\u1426\3\2\2\2\u144a\u142c\3\2\2\2\u144a\u143f\3\2\2\2\u144b" + - "\u01e1\3\2\2\2\u144c\u144d\7\34\2\2\u144d\u1456\7\u0302\2\2\u144e\u1453" + - "\5\u01b2\u00da\2\u144f\u1450\7\u02fa\2\2\u1450\u1452\5\u01b2\u00da\2\u1451" + - "\u144f\3\2\2\2\u1452\u1455\3\2\2\2\u1453\u1451\3\2\2\2\u1453\u1454\3\2" + - "\2\2\u1454\u1457\3\2\2\2\u1455\u1453\3\2\2\2\u1456\u144e\3\2\2\2\u1456" + - "\u1457\3\2\2\2\u1457\u1458\3\2\2\2\u1458\u1459\7\u0303\2\2\u1459\u01e3" + - "\3\2\2\2\u145a\u145c\b\u00f3\1\2\u145b\u145d\7\u0183\2\2\u145c\u145b\3" + - "\2\2\2\u145c\u145d\3\2\2\2\u145d\u145e\3\2\2\2\u145e\u1460\5\u01d6\u00ec" + - "\2\u145f\u1461\7\u02ff\2\2\u1460\u145f\3\2\2\2\u1460\u1461\3\2\2\2\u1461" + - "\u1463\3\2\2\2\u1462\u1464\5\u01e6\u00f4\2\u1463\u1462\3\2\2\2\u1463\u1464" + - "\3\2\2\2\u1464\u1478\3\2\2\2\u1465\u1466\7\u023b\2\2\u1466\u1467\5\u0204" + - "\u0103\2\u1467\u1468\7\u0300\2\2\u1468\u146d\5\u01b2\u00da\2\u1469\u146a" + - "\7\u02fa\2\2\u146a\u146c\5\u01b2\u00da\2\u146b\u1469\3\2\2\2\u146c\u146f" + - "\3\2\2\2\u146d\u146b\3\2\2\2\u146d\u146e\3\2\2\2\u146e\u1470\3\2\2\2\u146f" + - "\u146d\3\2\2\2\u1470\u1476\7\u0301\2\2\u1471\u1472\7\u01d7\2\2\u1472\u1473" + - "\7\u0300\2\2\u1473\u1474\5\u0204\u0103\2\u1474\u1475\7\u0301\2\2\u1475" + - "\u1477\3\2\2\2\u1476\u1471\3\2\2\2\u1476\u1477\3\2\2\2\u1477\u1479\3\2" + - "\2\2\u1478\u1465\3\2\2\2\u1478\u1479\3\2\2\2\u1479\u14c5\3\2\2\2\u147a" + - "\u147c\7\u0130\2\2\u147b\u147a\3\2\2\2\u147b\u147c\3\2\2\2\u147c\u147d" + - "\3\2\2\2\u147d\u147e\7\u0300\2\2\u147e\u147f\5\4\3\2\u147f\u1481\7\u0301" + - "\2\2\u1480\u1482\7\35\2\2\u1481\u1480\3\2\2\2\u1481\u1482\3\2\2\2\u1482" + - "\u1483\3\2\2\2\u1483\u148f\5\u020c\u0107\2\u1484\u1485\7\u0300\2\2\u1485" + - "\u148a\5\u020e\u0108\2\u1486\u1487\7\u02fa\2\2\u1487\u1489\5\u020e\u0108" + - "\2\u1488\u1486\3\2\2\2\u1489\u148c\3\2\2\2\u148a\u1488\3\2\2\2\u148a\u148b" + - "\3\2\2\2\u148b\u148d\3\2\2\2\u148c\u148a\3\2\2\2\u148d\u148e\7\u0301\2" + - "\2\u148e\u1490\3\2\2\2\u148f\u1484\3\2\2\2\u148f\u1490\3\2\2\2\u1490\u14c5" + - "\3\2\2\2\u1491\u1493\7\u0130\2\2\u1492\u1491\3\2\2\2\u1492\u1493\3\2\2" + - "\2\u1493\u1494\3\2\2\2\u1494\u1497\5\u01e0\u00f1\2\u1495\u1496\7\u0288" + - "\2\2\u1496\u1498\7\u018c\2\2\u1497\u1495\3\2\2\2\u1497\u1498\3\2\2\2\u1498" + - "\u149a\3\2\2\2\u1499\u149b\5\u01e6\u00f4\2\u149a\u1499\3\2\2\2\u149a\u149b" + - "\3\2\2\2\u149b\u14c5\3\2\2\2\u149c\u149e\7\u0130\2\2\u149d\u149c\3\2\2" + - "\2\u149d\u149e\3\2\2\2\u149e\u149f\3\2\2\2\u149f\u14a0\5\u01e0\u00f1\2" + - "\u14a0\u14a1\7\35\2\2\u14a1\u14a2\7\u0300\2\2\u14a2\u14a7\5\u0210\u0109" + - "\2\u14a3\u14a4\7\u02fa\2\2\u14a4\u14a6\5\u0210\u0109\2\u14a5\u14a3\3\2" + - "\2\2\u14a6\u14a9\3\2\2\2\u14a7\u14a5\3\2\2\2\u14a7\u14a8\3\2\2\2\u14a8" + - "\u14aa\3\2\2\2\u14a9\u14a7\3\2\2\2\u14aa\u14ab\7\u0301\2\2\u14ab\u14c5" + - "\3\2\2\2\u14ac\u14ae\7\u0130\2\2\u14ad\u14ac\3\2\2\2\u14ad\u14ae\3\2\2" + - "\2\u14ae\u14af\3\2\2\2\u14af\u14b0\7\u01f1\2\2\u14b0\u14b1\7\u00ee\2\2" + - "\u14b1\u14b2\7\u0300\2\2\u14b2\u14b3\5\u01e0\u00f1\2\u14b3\u14c0\7\u0301" + - "\2\2\u14b4\u14b5\7\35\2\2\u14b5\u14b6\7\u0300\2\2\u14b6\u14bb\5\u0210" + - "\u0109\2\u14b7\u14b8\7\u02fa\2\2\u14b8\u14ba\5\u0210\u0109\2\u14b9\u14b7" + - "\3\2\2\2\u14ba\u14bd\3\2\2\2\u14bb\u14b9\3\2\2\2\u14bb\u14bc\3\2\2\2\u14bc" + - "\u14be\3\2\2\2\u14bd\u14bb\3\2\2\2\u14be\u14bf\7\u0301\2\2\u14bf\u14c1" + - "\3\2\2\2\u14c0\u14b4\3\2\2\2\u14c0\u14c1\3\2\2\2\u14c1\u14c2\3\2\2\2\u14c2" + - "\u14c3\7\u0301\2\2\u14c3\u14c5\3\2\2\2\u14c4\u145a\3\2\2\2\u14c4\u147b" + - "\3\2\2\2\u14c4\u1492\3\2\2\2\u14c4\u149d\3\2\2\2\u14c4\u14ad\3\2\2\2\u14c5" + - "\u14d7\3\2\2\2\u14c6\u14c8\f\3\2\2\u14c7\u14c9\7\u0163\2\2\u14c8\u14c7" + - "\3\2\2\2\u14c8\u14c9\3\2\2\2\u14c9\u14ca\3\2\2\2\u14ca\u14cc\5\u01e8\u00f5" + - "\2\u14cb\u14cd\7\u0300\2\2\u14cc\u14cb\3\2\2\2\u14cc\u14cd\3\2\2\2\u14cd" + - "\u14ce\3\2\2\2\u14ce\u14d0\5\u01e4\u00f3\2\u14cf\u14d1\5\u01ea\u00f6\2" + - "\u14d0\u14cf\3\2\2\2\u14d0\u14d1\3\2\2\2\u14d1\u14d3\3\2\2\2\u14d2\u14d4" + - "\7\u0301\2\2\u14d3\u14d2\3\2\2\2\u14d3\u14d4\3\2\2\2\u14d4\u14d6\3\2\2" + - "\2\u14d5\u14c6\3\2\2\2\u14d6\u14d9\3\2\2\2\u14d7\u14d5\3\2\2\2\u14d7\u14d8" + - "\3\2\2\2\u14d8\u01e5\3\2\2\2\u14d9\u14d7\3\2\2\2\u14da\u14dc\7\35\2\2" + - "\u14db\u14da\3\2\2\2\u14db\u14dc\3\2\2\2\u14dc\u14dd\3\2\2\2\u14dd\u14e6" + - "\5\u020c\u0107\2\u14de\u14e3\5\u020e\u0108\2\u14df\u14e0\7\u02fa\2\2\u14e0" + - "\u14e2\5\u020e\u0108\2\u14e1\u14df\3\2\2\2\u14e2\u14e5\3\2\2\2\u14e3\u14e1" + - "\3\2\2\2\u14e3\u14e4\3\2\2\2\u14e4\u14e7\3\2\2\2\u14e5\u14e3\3\2\2\2\u14e6" + - "\u14de\3\2\2\2\u14e6\u14e7\3\2\2\2\u14e7\u14f1\3\2\2\2\u14e8\u14ea\7\35" + - "\2\2\u14e9\u14e8\3\2\2\2\u14e9\u14ea\3\2\2\2\u14ea\u14eb\3\2\2\2\u14eb" + - "\u14ec\5\u020c\u0107\2\u14ec\u14ed\7\u0300\2\2\u14ed\u14ee\5\u01ce\u00e8" + - "\2\u14ee\u14ef\7\u0301\2\2\u14ef\u14f1\3\2\2\2\u14f0\u14db\3\2\2\2\u14f0" + - "\u14e9\3\2\2\2\u14f1\u01e7\3\2\2\2\u14f2\u14f4\7\u0114\2\2\u14f3\u14f2" + - "\3\2\2\2\u14f3\u14f4\3\2\2\2\u14f4\u14f5\3\2\2\2\u14f5\u1508\7\u0126\2" + - "\2\u14f6\u14f8\7\u0133\2\2\u14f7\u14f9\7\u018f\2\2\u14f8\u14f7\3\2\2\2" + - "\u14f8\u14f9\3\2\2\2\u14f9\u14fa\3\2\2\2\u14fa\u1508\7\u0126\2\2\u14fb" + - "\u14fd\7\u01e6\2\2\u14fc\u14fe\7\u018f\2\2\u14fd\u14fc\3\2\2\2\u14fd\u14fe" + - "\3\2\2\2\u14fe\u14ff\3\2\2\2\u14ff\u1508\7\u0126\2\2\u1500\u1502\7\u00ef" + - "\2\2\u1501\u1503\7\u018f\2\2\u1502\u1501\3\2\2\2\u1502\u1503\3\2\2\2\u1503" + - "\u1504\3\2\2\2\u1504\u1508\7\u0126\2\2\u1505\u1506\7\u0083\2\2\u1506\u1508" + - "\7\u0126\2\2\u1507\u14f3\3\2\2\2\u1507\u14f6\3\2\2\2\u1507\u14fb\3\2\2" + - "\2\u1507\u1500\3\2\2\2\u1507\u1505\3\2\2\2\u1508\u01e9\3\2\2\2\u1509\u150a" + - "\7\u0182\2\2\u150a\u1518\5\u01ec\u00f7\2\u150b\u150c\7\u0273\2\2\u150c" + - "\u150d\7\u0300\2\2\u150d\u1512\5\u020a\u0106\2\u150e\u150f\7\u02fa\2\2" + - "\u150f\u1511\5\u020a\u0106\2\u1510\u150e\3\2\2\2\u1511\u1514\3\2\2\2\u1512" + - "\u1510\3\2\2\2\u1512\u1513\3\2\2\2\u1513\u1515\3\2\2\2\u1514\u1512\3\2" + - "\2\2\u1515\u1516\7\u0301\2\2\u1516\u1518\3\2\2\2\u1517\u1509\3\2\2\2\u1517" + - "\u150b\3\2\2\2\u1518\u01eb\3\2\2\2\u1519\u151a\b\u00f7\1\2\u151a\u1526" + - "\5\u01b2\u00da\2\u151b\u151c\5\u01b2\u00da\2\u151c\u151d\5\u01c8\u00e5" + - "\2\u151d\u151e\5\u01b2\u00da\2\u151e\u1526\3\2\2\2\u151f\u1520\7\u0300" + - "\2\2\u1520\u1521\5\u01ec\u00f7\2\u1521\u1522\7\u0301\2\2\u1522\u1526\3" + - "\2\2\2\u1523\u1524\7\u016f\2\2\u1524\u1526\5\u01ec\u00f7\3\u1525\u1519" + - "\3\2\2\2\u1525\u151b\3\2\2\2\u1525\u151f\3\2\2\2\u1525\u1523\3\2\2\2\u1526" + - "\u152f\3\2\2\2\u1527\u1528\f\5\2\2\u1528\u1529\7\31\2\2\u1529\u152e\5" + - "\u01ec\u00f7\6\u152a\u152b\f\4\2\2\u152b\u152c\7\u0189\2\2\u152c\u152e" + - "\5\u01ec\u00f7\5\u152d\u1527\3\2\2\2\u152d\u152a\3\2\2\2\u152e\u1531\3" + - "\2\2\2\u152f\u152d\3\2\2\2\u152f\u1530\3\2\2\2\u1530\u01ed\3\2\2\2\u1531" + - "\u152f\3\2\2\2\u1532\u154d\7\u02ff\2\2\u1533\u1535\t\b\2\2\u1534\u1533" + - "\3\2\2\2\u1534\u1535\3\2\2\2\u1535\u1537\3\2\2\2\u1536\u1538\5\u0202\u0102" + - "\2\u1537\u1536\3\2\2\2\u1537\u1538\3\2\2\2\u1538\u1539\3\2\2\2\u1539\u154d" + - "\5\u01da\u00ee\2\u153a\u153c\t\b\2\2\u153b\u153a\3\2\2\2\u153b\u153c\3" + - "\2\2\2\u153c\u153e\3\2\2\2\u153d\u153f\5\u0202\u0102\2\u153e\u153d\3\2" + - "\2\2\u153e\u153f\3\2\2\2\u153f\u1540\3\2\2\2\u1540\u1541\5\u01da\u00ee" + - "\2\u1541\u1542\3\2\2\2\u1542\u1543\7\u018a\2\2\u1543\u1545\78\2\2\u1544" + - "\u1546\t\b\2\2\u1545\u1544\3\2\2\2\u1545\u1546\3\2\2\2\u1546\u1548\3\2" + - "\2\2\u1547\u1549\5\u0202\u0102\2\u1548\u1547\3\2\2\2\u1548\u1549\3\2\2" + - "\2\u1549\u154a\3\2\2\2\u154a\u154b\5\u01da\u00ee\2\u154b\u154d\3\2\2\2" + - "\u154c\u1532\3\2\2\2\u154c\u1534\3\2\2\2\u154c\u153b\3\2\2\2\u154d\u01ef" + - "\3\2\2\2\u154e\u154f\7\u016f\2\2\u154f\u1550\7\u0174\2\2\u1550\u01f1\3" + - "\2\2\2\u1551\u1553\5\u01f0\u00f9\2\u1552\u1551\3\2\2\2\u1553\u1554\3\2" + - "\2\2\u1554\u1552\3\2\2\2\u1554\u1555\3\2\2\2\u1555\u01f3\3\2\2\2\u1556" + - "\u1557\7\u0288\2\2\u1557\u1558\7\u0300\2\2\u1558\u1559\5\u01d4\u00eb\2" + - "\u1559\u155a\7\u0301\2\2\u155a\u155c\3\2\2\2\u155b\u1556\3\2\2\2\u155b" + - "\u155c\3\2\2\2\u155c\u1561\3\2\2\2\u155d\u155e\7\u0273\2\2\u155e\u155f" + - "\7\u010e\2\2\u155f\u1560\7\u023c\2\2\u1560\u1562\5\u0202\u0102\2\u1561" + - "\u155d\3\2\2\2\u1561\u1562\3\2\2\2\u1562\u01f5\3\2\2\2\u1563\u1569\5\u0202" + - "\u0102\2\u1564\u1565\7\u0300\2\2\u1565\u1566\5\u01b2\u00da\2\u1566\u1567" + - "\7\u0301\2\2\u1567\u1569\3\2\2\2\u1568\u1563\3\2\2\2\u1568\u1564\3\2\2" + - "\2\u1569\u156b\3\2\2\2\u156a\u156c\5\u0202\u0102\2\u156b\u156a\3\2\2\2" + - "\u156b\u156c\3\2\2\2\u156c\u156e\3\2\2\2\u156d\u156f\t\62\2\2\u156e\u156d" + - "\3\2\2\2\u156e\u156f\3\2\2\2\u156f\u1572\3\2\2\2\u1570\u1571\7\u0177\2" + - "\2\u1571\u1573\t\"\2\2\u1572\u1570\3\2\2\2\u1572\u1573\3\2\2\2\u1573\u01f7" + - "\3\2\2\2\u1574\u1575\7o\2\2\u1575\u1577\5\u01cc\u00e7\2\u1576\u1574\3" + - "\2\2\2\u1576\u1577\3\2\2\2\u1577\u15b9\3\2\2\2\u1578\u1579\7P\2\2\u1579" + - "\u157a\7\u0300\2\2\u157a\u157b\5\u01b2\u00da\2\u157b\u157e\7\u0301\2\2" + - "\u157c\u157d\7\u0169\2\2\u157d\u157f\7\u0295\2\2\u157e\u157c\3\2\2\2\u157e" + - "\u157f\3\2\2\2\u157f\u15ba\3\2\2\2\u1580\u1581\7\u0265\2\2\u1581\u1582" + - "\7\u0300\2\2\u1582\u1583\5\u01d0\u00e9\2\u1583\u1584\7\u0301\2\2\u1584" + - "\u15ba\3\2\2\2\u1585\u1586\7\u01b6\2\2\u1586\u1587\7\u0128\2\2\u1587\u1588" + - "\7\u0300\2\2\u1588\u1589\5\u01d0\u00e9\2\u1589\u158a\7\u0301\2\2\u158a" + - "\u158b\5\u01f4\u00fb\2\u158b\u15ba\3\2\2\2\u158c\u158f\7\u00cf\2\2\u158d" + - "\u158e\7\u0273\2\2\u158e\u1590\5\u01dc\u00ef\2\u158f\u158d\3\2\2\2\u158f" + - "\u1590\3\2\2\2\u1590\u1591\3\2\2\2\u1591\u1592\7\u0300\2\2\u1592\u1593" + - "\5\u01f6\u00fc\2\u1593\u1594\7\u0288\2\2\u1594\u1595\5\u01d0\u00e9\2\u1595" + - "\u1596\7\u0301\2\2\u1596\u1597\5\u01f4\u00fb\2\u1597\u1598\7\u0285\2\2" + - "\u1598\u1599\7\u0300\2\2\u1599\u159a\5\u01ec\u00f7\2\u159a\u159b\7\u0301" + - "\2\2\u159b\u159d\3\2\2\2\u159c\u158c\3\2\2\2\u159c\u159d\3\2\2\2\u159d" + - "\u15ba\3\2\2\2\u159e\u159f\7\u00e7\2\2\u159f\u15a0\7\u0128\2\2\u15a0\u15a1" + - "\7\u0300\2\2\u15a1\u15a2\5\u01d0\u00e9\2\u15a2\u15a3\7\u0301\2\2\u15a3" + - "\u15a4\7\u01c7\2\2\u15a4\u15a6\5\u0202\u0102\2\u15a5\u15a7\5\u01d0\u00e9" + - "\2\u15a6\u15a5\3\2\2\2\u15a6\u15a7\3\2\2\2\u15a7\u15ad\3\2\2\2\u15a8\u15a9" + - "\7\u0148\2\2\u15a9\u15ae\7\u00ef\2\2\u15aa\u15ab\7\u0148\2\2\u15ab\u15ae" + - "\7\u01a0\2\2\u15ac\u15ae\7\u0149\2\2\u15ad\u15a8\3\2\2\2\u15ad\u15aa\3" + - "\2\2\2\u15ad\u15ac\3\2\2\2\u15ad\u15ae\3\2\2\2\u15ae\u15b2\3\2\2\2\u15af" + - "\u15b0\7\u0182\2\2\u15b0\u15b1\7\u00a5\2\2\u15b1\u15b3\5\u0202\u0102\2" + - "\u15b2\u15af\3\2\2\2\u15b2\u15b3\3\2\2\2\u15b3\u15b7\3\2\2\2\u15b4\u15b5" + - "\7\u0182\2\2\u15b5\u15b6\7\u026b\2\2\u15b6\u15b8\5\u0202\u0102\2\u15b7" + - "\u15b4\3\2\2\2\u15b7\u15b8\3\2\2\2\u15b8\u15ba\3\2\2\2\u15b9\u1578\3\2" + - "\2\2\u15b9\u1580\3\2\2\2\u15b9\u1585\3\2\2\2\u15b9\u159c\3\2\2\2\u15b9" + - "\u159e\3\2\2\2\u15ba\u15bf\3\2\2\2\u15bb\u15bd\7\u016f\2\2\u15bc\u15bb" + - "\3\2\2\2\u15bc\u15bd\3\2\2\2\u15bd\u15be\3\2\2\2\u15be\u15c0\7\u009f\2" + - "\2\u15bf\u15bc\3\2\2\2\u15bf\u15c0\3\2\2\2\u15c0\u15c3\3\2\2\2\u15c1\u15c2" + - "\7\u0113\2\2\u15c2\u15c4\t\31\2\2\u15c3\u15c1\3\2\2\2\u15c3\u15c4\3\2" + - "\2\2\u15c4\u01f9\3\2\2\2\u15c5\u15ca\5\u01cc\u00e7\2\u15c6\u15ca\7\u008f" + - "\2\2\u15c7\u15ca\7\u0208\2\2\u15c8\u15ca\7\u01bb\2\2\u15c9\u15c5\3\2\2" + - "\2\u15c9\u15c6\3\2\2\2\u15c9\u15c7\3\2\2\2\u15c9\u15c8\3\2\2\2\u15ca\u01fb" + - "\3\2\2\2\u15cb\u15d0\5\u01fa\u00fe\2\u15cc\u15cd\7\u02fa\2\2\u15cd\u15cf" + - "\5\u01fa\u00fe\2\u15ce\u15cc\3\2\2\2\u15cf\u15d2\3\2\2\2\u15d0\u15ce\3" + - "\2\2\2\u15d0\u15d1\3\2\2\2\u15d1\u01fd\3\2\2\2\u15d2\u15d0\3\2\2\2\u15d3" + - "\u15df\7\u0182\2\2\u15d4\u15df\7\u017e\2\2\u15d5\u15df\7\u025b\2\2\u15d6" + - "\u15df\7\u00dc\2\2\u15d7\u15df\7\u028f\2\2\u15d8\u15df\7\u0169\2\2\u15d9" + - "\u15df\7\u016c\2\2\u15da\u15df\7\u030a\2\2\u15db\u15df\7\u0306\2\2\u15dc" + - "\u15df\7\u0307\2\2\u15dd\u15df\5\u0202\u0102\2\u15de\u15d3\3\2\2\2\u15de" + - "\u15d4\3\2\2\2\u15de\u15d5\3\2\2\2\u15de\u15d6\3\2\2\2\u15de\u15d7\3\2" + - "\2\2\u15de\u15d8\3\2\2\2\u15de\u15d9\3\2\2\2\u15de\u15da\3\2\2\2\u15de" + - "\u15db\3\2\2\2\u15de\u15dc\3\2\2\2\u15de\u15dd\3\2\2\2\u15df\u01ff\3\2" + - "\2\2\u15e0\u15e1\t\63\2\2\u15e1\u0201\3\2\2\2\u15e2\u15e3\b\u0102\1\2" + - "\u15e3\u15e9\5\u0200\u0101\2\u15e4\u15e9\7\u030b\2\2\u15e5\u15e9\7\u030c" + - "\2\2\u15e6\u15e9\5\u01c4\u00e3\2\u15e7\u15e9\7\u030e\2\2\u15e8\u15e2\3" + - "\2\2\2\u15e8\u15e4\3\2\2\2\u15e8\u15e5\3\2\2\2\u15e8\u15e6\3\2\2\2\u15e8" + - "\u15e7\3\2\2\2\u15e9\u15ef\3\2\2\2\u15ea\u15eb\f\5\2\2\u15eb\u15ec\7\u0309" + - "\2\2\u15ec\u15ee\5\u0202\u0102\6\u15ed\u15ea\3\2\2\2\u15ee\u15f1\3\2\2" + - "\2\u15ef\u15ed\3\2\2\2\u15ef\u15f0\3\2\2\2\u15f0\u0203\3\2\2\2\u15f1\u15ef" + - "\3\2\2\2\u15f2\u15f3\13\2\2\2\u15f3\u0205\3\2\2\2\u15f4\u15f5\5\u0202" + - "\u0102\2\u15f5\u0207\3\2\2\2\u15f6\u15f7\5\u0202\u0102\2\u15f7\u0209\3" + - "\2\2\2\u15f8\u15f9\5\u0202\u0102\2\u15f9\u020b\3\2\2\2\u15fa\u15fb\5\u0202" + - "\u0102\2\u15fb\u020d\3\2\2\2\u15fc\u15fd\5\u0202\u0102\2\u15fd\u020f\3" + - "\2\2\2\u15fe\u15ff\5\u0202\u0102\2\u15ff\u0211\3\2\2\2\u1600\u1601\5\u0202" + - "\u0102\2\u1601\u0213\3\2\2\2\u02b5\u0219\u021d\u0255\u0281\u02a1\u02be" + - "\u02d5\u02e3\u02f3\u02fc\u0300\u0327\u0335\u0340\u034a\u0352\u035b\u0361" + - "\u0367\u036a\u036e\u0372\u0376\u037a\u037f\u0385\u0389\u0392\u039a\u03a3" + - "\u03ac\u03b6\u03c0\u03c9\u03ce\u03d4\u03dd\u03e1\u03e8\u03ef\u0409\u040b" + - "\u0412\u041a\u041d\u0421\u042a\u042d\u0431\u0435\u0440\u044c\u0453\u046c" + - "\u0472\u047d\u0490\u049c\u04ac\u04b2\u04b4\u04b8\u04c2\u04cb\u04cd\u04d8" + - "\u04f3\u04ff\u0513\u0517\u051c\u051e\u0526\u0530\u053a\u0554\u0568\u056f" + - "\u0575\u057a\u0587\u058c\u0593\u0599\u059e\u05a9\u05ae\u05b6\u05bb\u05bf" + - "\u05d9\u05db\u05e1\u05e6\u05ea\u05ee\u05f2\u05f6\u0600\u0607\u0617\u0621" + - "\u0631\u0644\u0650\u0672\u0682\u0695\u06a7\u06e4\u0704\u071c\u0731\u0747" + - "\u074e\u0783\u0793\u0796\u07a6\u07ac\u07b0\u07b6\u07bc\u07c2\u07c8\u07ce" + - "\u07d4\u07da\u07e0\u07e6\u07ea\u07f0\u07f6\u07fc\u0805\u0808\u080b\u0810" + - "\u0813\u0823\u0829\u082d\u0833\u0839\u083d\u0854\u085a\u085e\u0864\u086a" + - "\u0870\u0876\u087c\u0882\u0888\u088e\u0894\u0898\u089e\u08a4\u08a8\u08b8" + - "\u08be\u08c4\u08d8\u08df\u08e7\u08f3\u08f9\u08fd\u090c\u0911\u0916\u091b" + - "\u0920\u0925\u092a\u092f\u0935\u093a\u093e\u0948\u094e\u0956\u0958\u0963" + - "\u096b\u0976\u0984\u0990\u0992\u0999\u09a0\u09a8\u09b3\u09b7\u09bc\u09c5" + - "\u09ca\u09d3\u09e2\u09f7\u09f9\u09fb\u09ff\u0a03\u0a08\u0a0b\u0a11\u0a15" + - "\u0a19\u0a1e\u0a21\u0a28\u0a2b\u0a2e\u0a36\u0a3a\u0a3c\u0a44\u0a4b\u0a4e" + - "\u0a52\u0a58\u0a5b\u0a68\u0a6e\u0a74\u0a7a\u0a80\u0a86\u0a8a\u0a8e\u0a9b" + - "\u0aa3\u0aa7\u0ab0\u0ab7\u0ac0\u0ac8\u0ad9\u0add\u0ae4\u0aec\u0af2\u0b06" + - "\u0b1b\u0b1d\u0b1f\u0b26\u0b31\u0b35\u0b39\u0b40\u0b43\u0b4a\u0b54\u0b5d" + - "\u0b61\u0b67\u0b6c\u0b6f\u0b75\u0b7b\u0b7f\u0b82\u0b86\u0b89\u0b8c\u0b95" + - "\u0b97\u0bba\u0bbd\u0bc0\u0bc8\u0bcf\u0bd4\u0bd8\u0bdc\u0be3\u0be8\u0bec" + - "\u0bef\u0bf2\u0bf6\u0bfd\u0c00\u0c2e\u0c35\u0c39\u0c3f\u0c4a\u0c52\u0c58" + - "\u0c5c\u0c62\u0c66\u0c6c\u0c74\u0c78\u0c7f\u0c83\u0c89\u0c8d\u0c95\u0c99" + - "\u0ca0\u0ca4\u0caa\u0cae\u0cb4\u0cbb\u0cbf\u0cc3\u0cc7\u0ccc\u0cd0\u0cd7" + - "\u0cdb\u0ce4\u0cea\u0cf1\u0cf7\u0cfe\u0d04\u0d0a\u0d10\u0d14\u0d1a\u0d22" + - "\u0d28\u0d2e\u0d32\u0d38\u0d3c\u0d42\u0d46\u0d4c\u0d54\u0d58\u0d5e\u0d62" + - "\u0d68\u0d72\u0d76\u0d7e\u0d82\u0d8a\u0d8e\u0d96\u0d9a\u0da0\u0dac\u0db2" + - "\u0db8\u0dbc\u0dc2\u0dcb\u0dd3\u0ddc\u0de0\u0de5\u0de9\u0dec\u0df5\u0dfa" + - "\u0e05\u0e0e\u0e15\u0e1b\u0e1f\u0e22\u0e28\u0e30\u0e35\u0e38\u0e41\u0e43" + - "\u0e45\u0e48\u0e51\u0e54\u0e58\u0e6b\u0e6e\u0e71\u0e80\u0e84\u0e86\u0e89" + - "\u0e8b\u0e93\u0e9b\u0ea3\u0eaf\u0eb5\u0eb9\u0ec0\u0ec8\u0ecf\u0ed6\u0edc" + - "\u0ee4\u0ee8\u0ef3\u0f18\u0f2c\u0f32\u0f37\u0f3b\u0f3f\u0f44\u0f4a\u0f4e" + - "\u0f51\u0f54\u0f57\u0f5a\u0f5d\u0f60\u0f63\u0f66\u0f69\u0f6c\u0f6f\u0f75" + - "\u0f78\u0f7c\u0f80\u0f84\u0f89\u0f8f\u0f93\u0f96\u0f99\u0f9c\u0f9f\u0fa2" + - "\u0fa5\u0fa8\u0fab\u0fae\u0fb1\u0fb5\u0fbc\u0fc4\u0fcd\u0fd3\u0fd9\u0fdd" + - "\u0fe4\u0fe6\u0fec\u0ff2\u0ff7\u0ffb\u1008\u100f\u1012\u1019\u1029\u1030" + - "\u1034\u1037\u103b\u103f\u1042\u1046\u1049\u104e\u1051\u1055\u1059\u105c" + - "\u105f\u1064\u106b\u106e\u1077\u107f\u1086\u108a\u108d\u1090\u1093\u1097" + - "\u109a\u109d\u10a5\u10a7\u10a9\u10ac\u10b3\u10b9\u10bd\u10c0\u10c3\u10c6" + - "\u10c9\u10cc\u10d2\u10d4\u10de\u10eb\u10f6\u10fb\u10ff\u1107\u110f\u111a" + - "\u111f\u1122\u1125\u112a\u112d\u1130\u1134\u1139\u113d\u1149\u1157\u1161" + - "\u1165\u1170\u1175\u117a\u117f\u1183\u118c\u1191\u1197\u11a1\u11a4\u11aa" + - "\u11af\u11b4\u11c1\u11c9\u11cc\u11d1\u11d3\u11db\u11e5\u11e7\u11fe\u1206" + - "\u1236\u1248\u124d\u125d\u126f\u1274\u1278\u127d\u1284\u1291\u1299\u129b" + - "\u12a3\u12ab\u12ad\u12b9\u12bd\u12c9\u12cd\u12d1\u12d9\u12df\u12e6\u12ea" + - "\u12ed\u12f0\u12f3\u12fa\u1302\u1309\u1314\u131a\u1324\u132a\u1330\u133b" + - "\u1349\u134c\u135b\u136d\u1372\u1378\u137d\u1383\u1389\u1393\u1399\u139c" + - "\u13a4\u13a9\u13b0\u13b4\u13bd\u13c9\u13d2\u13d5\u13e3\u13e5\u13e9\u13f0" + - "\u13f8\u13fe\u1405\u140c\u1410\u1415\u141d\u1422\u1433\u1439\u143b\u1446" + - "\u144a\u1453\u1456\u145c\u1460\u1463\u146d\u1476\u1478\u147b\u1481\u148a" + - "\u148f\u1492\u1497\u149a\u149d\u14a7\u14ad\u14bb\u14c0\u14c4\u14c8\u14cc" + - "\u14d0\u14d3\u14d7\u14db\u14e3\u14e6\u14e9\u14f0\u14f3\u14f8\u14fd\u1502" + - "\u1507\u1512\u1517\u1525\u152d\u152f\u1534\u1537\u153b\u153e\u1545\u1548" + - "\u154c\u1554\u155b\u1561\u1568\u156b\u156e\u1572\u1576\u157e\u158f\u159c" + - "\u15a6\u15ad\u15b2\u15b7\u15b9\u15bc\u15bf\u15c3\u15c9\u15d0\u15de\u15e8" + - "\u15ef"; - public static final String _serializedATN = Utils.join( - new String[]{ - _serializedATNSegment0, - _serializedATNSegment1, - _serializedATNSegment2 - }, - "" - ); - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + WHITESPACE=1, BLOCK_COMMENT=2, LINE_COMMENT=3, A_=4, ABORT=5, ABS=6, ABSOLUTE=7, + ACCESS=8, ACTION=9, ADA=10, ADD=11, ADMIN=12, AFTER=13, AGGREGATE=14, + ALIAS=15, ALL=16, ALLOCATE=17, ALSO=18, ALTER=19, ALWAYS=20, ANALYSE=21, + ANALYZE=22, AND=23, ANY=24, ARE=25, ARRAY=26, AS=27, ASC=28, ASENSITIVE=29, + ASSERTION=30, ASSIGNMENT=31, ASYMMETRIC=32, AT=33, ATOMIC=34, ATTRIBUTE=35, + ATTRIBUTES=36, AUTHORIZATION=37, AVG=38, BACKWARD=39, BEFORE=40, BEGIN=41, + BERNOULLI=42, BETWEEN=43, BIGINT=44, BINARY=45, BIT=46, BIT_LENGTH=47, + BITVAR=48, BLOB=49, BOOLEAN=50, BOTH=51, BREADTH=52, BUFFERS=53, BY=54, + C_=55, CACHE=56, CALL=57, CALLED=58, CARDINALITY=59, CASCADE=60, CASCADED=61, + CASE=62, CAST=63, CATALOG=64, CATALOG_NAME=65, CEIL=66, CEILING=67, CHAIN=68, + CHAR=69, CHAR_LENGTH=70, CHARACTER=71, CHARACTER_LENGTH=72, CHARACTER_SET_CATALOG=73, + CHARACTER_SET_NAME=74, CHARACTER_SET_SCHEMA=75, CHARACTERISTICS=76, CHARACTERS=77, + CHECK=78, CHECKED=79, CHECKPOINT=80, CLASS=81, CLASS_ORIGIN=82, CLOB=83, + CLOSE=84, CLUSTER=85, COALESCE=86, COBOL=87, COLLATE=88, COLLATION=89, + COLLATION_CATALOG=90, COLLATION_NAME=91, COLLATION_SCHEMA=92, COLLECT=93, + COLUMN=94, COLUMN_NAME=95, COMMAND_FUNCTION=96, COMMAND_FUNCTION_CODE=97, + COMMENT=98, COMMIT=99, COMMITTED=100, COMPLETION=101, CONDITION=102, CONDITION_NUMBER=103, + CONFIGURATION=104, CONFLICT=105, CONNECT=106, CONNECTION=107, CONNECTION_NAME=108, + CONSTRAINT=109, CONSTRAINT_CATALOG=110, CONSTRAINT_NAME=111, CONSTRAINT_SCHEMA=112, + CONSTRAINTS=113, CONSTRUCTOR=114, CONTAINS=115, CONTINUE=116, CONVERSION=117, + CONVERT=118, COPY=119, CORR=120, CORRESPONDING=121, COSTS=122, COUNT=123, + COVAR_POP=124, COVAR_SAMP=125, CREATE=126, CREATEDB=127, CREATEUSER=128, + CROSS=129, CSV=130, CUBE=131, CUME_DIST=132, CURRENT=133, CURRENT_DATE=134, + CURRENT_DEFAULT_TRANSFORM_GROUP=135, CURRENT_PATH=136, CURRENT_ROLE=137, + CURRENT_TIME=138, CURRENT_TIMESTAMP=139, CURRENT_TRANSFORM_GROUP_FOR_TYPE=140, + CURRENT_USER=141, CURSOR=142, CURSOR_NAME=143, CYCLE=144, DATA=145, DATABASE=146, + DATE=147, DATETIME_INTERVAL_CODE=148, DATETIME_INTERVAL_PRECISION=149, + DAY=150, DEALLOCATE=151, DEC=152, DECIMAL=153, DECLARE=154, DEFAULT=155, + DEFAULTS=156, DEFERABLE=157, DEFERRABLE=158, DEFERRED=159, DEFINED=160, + DEFINER=161, DEGREE=162, DELETE=163, DELIMITER=164, DELIMITERS=165, DENSE_RANK=166, + DEPENDS=167, DEPTH=168, DEREF=169, DERIVED=170, DESC=171, DESCRIBE=172, + DESCRIPTOR=173, DESTROY=174, DESTRUCTOR=175, DETERMINISTIC=176, DIAGNOSTICS=177, + DICTIONARY=178, DISABLE_P=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, + DISCONNECT=182, DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, + DROP=188, DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, + EACH=192, ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, + END=198, END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, + EXCEPTION=204, EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, + EXISTING=210, EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, + EXTERNAL=216, EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, + FINAL=222, FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, + FOREIGN=229, FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, + FREEZE=235, FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, + GENERATED=242, GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, + GREATEST=249, GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, + HOLD=255, HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, + IMMUTABLE=262, IMPLEMENTATION=263, IMPLICIT=264, IN=265, INCLUDING=266, + INCREMENT=267, INDEX=268, INDICATOR=269, INFIX=270, INHERITS=271, INITIALIZE=272, + INITIALLY=273, INNER=274, INOUT=275, INPUT=276, INSENSITIVE=277, INSERT=278, + INSTANCE=279, INSTANTIABLE=280, INSTEAD=281, INT=282, INTEGER=283, INTERSECT=284, + INTERSECTION=285, INTERVAL=286, INTO=287, INVOKER=288, IS=289, ISOLATION=290, + ITERATE=291, JOIN=292, K_=293, KEY=294, KEY_MEMBER=295, KEY_TYPE=296, + LABEL=297, LANCOMPILER=298, LANGUAGE=299, LARGE=300, LAST=301, LATERAL=302, + LEADING=303, LEAST=304, LEFT=305, LENGTH=306, LESS=307, LEVEL=308, LIKE=309, + LIMIT=310, LISTEN=311, LN=312, LOAD=313, LOCAL=314, LOCALTIME=315, LOCALTIMESTAMP=316, + LOCATION=317, LOCATOR=318, LOCK=319, LOCKED=320, LOWER=321, M_=322, MAIN=323, + MAP=324, MAPPING=325, MATCH=326, MATCH_SIMPLE=327, MATCHED=328, MAX=329, + MAXVALUE=330, MEMBER=331, MERGE=332, MESSAGE_LENGTH=333, MESSAGE_OCTET_LENGTH=334, + MESSAGE_TEXT=335, METHOD=336, MIN=337, MINUTE=338, MINVALUE=339, MOD=340, + MODE=341, MODIFIES=342, MODIFY=343, MODULE=344, MONTH=345, MORE_=346, + MOVE=347, MULTISET=348, MUMPS=349, NAME=350, NAMES=351, NATIONAL=352, + NATURAL=353, NCHAR=354, NCLOB=355, NESTING=356, NEW=357, NEXT=358, NO=359, + NOCREATEDB=360, NOCREATEUSER=361, NONE=362, NORMALIZE=363, NORMALIZED=364, + NOT=365, NOTHING=366, NOTIFY=367, NOTNULL=368, NOWAIT=369, NULL=370, NULLABLE=371, + NULLIF=372, NULLS=373, NUMBER=374, NUMERIC=375, OBJECT=376, OCTET_LENGTH=377, + OCTETS=378, OF=379, OFF=380, OFFSET=381, OIDS=382, OLD=383, ON=384, ONLY=385, + OPEN=386, OPERATION=387, OPERATOR=388, OPTION=389, OPTIONS=390, OR=391, + ORDER=392, ORDERING=393, ORDINALITY=394, OTHERS=395, OUT=396, OUTER=397, + OUTPUT=398, OVER=399, OVERLAPS=400, OVERLAY=401, OVERRIDING=402, OWNER=403, + PAD=404, PARAMETER=405, PARAMETER_MODE=406, PARAMETER_NAME=407, PARAMETER_ORDINAL_POSITION=408, + PARAMETER_SPECIFIC_CATALOG=409, PARAMETER_SPECIFIC_NAME=410, PARAMETER_SPECIFIC_SCHEMA=411, + PARAMETERS=412, PARSER=413, PARTIAL=414, PARTITION=415, PASCAL=416, PASSWORD=417, + PATH=418, PERCENT_RANK=419, PERCENTILE_CONT=420, PERCENTILE_DISC=421, + PLACING=422, PLAIN=423, PLANS=424, PLI=425, POSITION=426, POSTFIX=427, + POWER=428, PRECEDING=429, PRECISION=430, PREFIX=431, PREORDER=432, PREPARE=433, + PREPARED=434, PRESERVE=435, PRIMARY=436, PRIOR=437, PRIVILEGES=438, PROCEDURAL=439, + PROCEDURE=440, PUBLIC=441, PUBLICATION=442, QUOTE=443, RANGE=444, RANK=445, + READ=446, READS=447, REAL=448, REASSIGN=449, RECHECK=450, RECURSIVE=451, + REF=452, REFERENCES=453, REFERENCING=454, REFRESH=455, REGR_AVGX=456, + REGR_AVGY=457, REGR_COUNT=458, REGR_INTERCEPT=459, REGR_R2=460, REGR_SLOPE=461, + REGR_SXX=462, REGR_SXY=463, REGR_SYY=464, REINDEX=465, RELATIVE=466, RELEASE=467, + RENAME=468, REPEATABLE=469, REPLACE=470, REPLICA=471, RESET=472, RESTART=473, + RESTRICT=474, RESULT=475, RETURN=476, RETURNED_CARDINALITY=477, RETURNED_LENGTH=478, + RETURNED_OCTET_LENGTH=479, RETURNED_SQLSTATE=480, RETURNING=481, RETURNS=482, + REVOKE=483, RIGHT=484, ROLE=485, ROLLBACK=486, ROLLUP=487, ROUTINE=488, + ROUTINE_CATALOG=489, ROUTINE_NAME=490, ROUTINE_SCHEMA=491, ROW=492, ROW_COUNT=493, + ROW_NUMBER=494, ROWS=495, RULE=496, SAVEPOINT=497, SCALE=498, SCHEMA=499, + SCHEMA_NAME=500, SCOPE=501, SCOPE_CATALOG=502, SCOPE_NAME=503, SCOPE_SCHEMA=504, + SCROLL=505, SEARCH=506, SECOND=507, SECTION=508, SECURITY=509, SELECT=510, + SELF=511, SENSITIVE=512, SEQUENCE=513, SEQUENCES=514, SERIALIZABLE=515, + SERVER_NAME=516, SESSION=517, SESSION_USER=518, SET=519, SETOF=520, SETS=521, + SHARE=522, SHOW=523, SIMILAR=524, SIMPLE=525, SIZE=526, SKIP_=527, SMALLINT=528, + SNAPSHOT=529, SOME=530, SOURCE=531, SPACE=532, SPECIFIC=533, SPECIFIC_NAME=534, + SPECIFICTYPE=535, SQL=536, SQLCODE=537, SQLERROR=538, SQLEXCEPTION=539, + SQLSTATE=540, SQLWARNING=541, SQRT=542, STABLE=543, START=544, STATE=545, + STATEMENT=546, STATIC=547, STATISTICS=548, STDDEV_POP=549, STDDEV_SAMP=550, + STDIN=551, STDOUT=552, STORAGE=553, STRICT=554, STRUCTURE=555, STYLE=556, + SUBCLASS_ORIGIN=557, SUBLIST=558, SUBMULTISET=559, SUBSCRIPTION=560, SUBSTRING=561, + SUM=562, SYMMETRIC=563, SYSID=564, SYSTEM=565, SYSTEM_USER=566, TABLE=567, + TABLE_NAME=568, TABLESAMPLE=569, TABLESPACE=570, TEMP=571, TEMPLATE=572, + TEMPORARY=573, TERMINATE=574, THAN=575, THEN=576, TIES=577, TIME=578, + TIMESTAMP=579, TIMEZONE_HOUR=580, TIMEZONE_MINUTE=581, TIMING=582, TO=583, + TOAST=584, TOP_LEVEL_COUNT=585, TRAILING=586, TRANSACTION=587, TRANSACTION_ACTIVE=588, + TRANSACTIONS_COMMITTED=589, TRANSACTIONS_ROLLED_BACK=590, TRANSFORM=591, + TRANSFORMS=592, TRANSLATE=593, TRANSLATION=594, TREAT=595, TRIGGER=596, + TRIGGER_CATALOG=597, TRIGGER_NAME=598, TRIGGER_SCHEMA=599, TRIM=600, TRUE=601, + TRUNCATE=602, TRUSTED=603, TYPE=604, UESCAPE=605, UNBOUNDED=606, UNCOMMITTED=607, + UNDER=608, UNENCRYPTED=609, UNION=610, UNIQUE=611, UNKNOWN=612, UNLISTEN=613, + UNNAMED=614, UNNEST=615, UNTIL=616, UPDATE=617, UPPER=618, USAGE=619, + USER=620, USER_DEFINED_TYPE_CATALOG=621, USER_DEFINED_TYPE_CODE=622, USER_DEFINED_TYPE_NAME=623, + USER_DEFINED_TYPE_SCHEMA=624, USING=625, VACUUM=626, VALID=627, VALIDATE=628, + VALIDATOR=629, VALUE=630, VALUES=631, VAR_POP=632, VAR_SAMP=633, VARCHAR=634, + VARIABLE=635, VARIADIC=636, VARYING=637, VERBOSE=638, VIEW=639, VOLATILE=640, + WHEN=641, WHENEVER=642, WHERE=643, WIDTH_BUCKET=644, WINDOW=645, WITH=646, + WITHIN=647, WITHOUT=648, WORK=649, WRITE=650, YAML=651, YEAR=652, YES=653, + ZONE=654, SUPERUSER=655, NOSUPERUSER=656, CREATEROLE=657, NOCREATEROLE=658, + INHERIT=659, NOINHERIT=660, LOGIN=661, NOLOGIN=662, REPLICATION=663, NOREPLICATION=664, + BYPASSRLS=665, NOBYPASSRLS=666, SFUNC=667, STYPE=668, SSPACE=669, FINALFUNC=670, + FINALFUNC_EXTRA=671, COMBINEFUNC=672, SERIALFUNC=673, DESERIALFUNC=674, + INITCOND=675, MSFUNC=676, MINVFUNC=677, MSTYPE=678, MSSPACE=679, MFINALFUNC=680, + MFINALFUNC_EXTRA=681, MINITCOND=682, SORTOP=683, PARALLEL=684, HYPOTHETICAL=685, + SAFE=686, UNSAFE=687, BASETYPE=688, IF=689, LOCALE=690, LC_COLLATE=691, + LC_CTYPE=692, PROVIDER=693, VERSION=694, ALLOW_CONNECTIONS=695, IS_TEMPLATE=696, + EVENT=697, WRAPPER=698, SERVER=699, BTREE=700, HASH_=701, GIST=702, SPGIST=703, + GIN=704, BRIN=705, CONCURRENTLY=706, INLINE=707, MATERIALIZED=708, LEFTARG=709, + RIGHTARG=710, COMMUTATOR=711, NEGATOR=712, HASHES=713, MERGES=714, FAMILY=715, + POLICY=716, OWNED=717, ABSTIME=718, BIGSERIAL=719, BIT_VARYING=720, BOOL=721, + BOX=722, BYTEA=723, CHARACTER_VARYING=724, CIDR=725, CIRCLE=726, FLOAT4=727, + FLOAT8=728, INET=729, INT2=730, INT4=731, INT8=732, JSON=733, JSONB=734, + LINE=735, LSEG=736, MACADDR=737, MACADDR8=738, MONEY=739, PG_LSN=740, + POINT=741, POLYGON=742, RELTIME=743, SERIAL=744, SERIAL2=745, SERIAL4=746, + SERIAL8=747, SMALLSERIAL=748, STSTEM=749, TEXT=750, TIMESTAMPTZ=751, TIMETZ=752, + TSQUERY=753, TSVECTOR=754, TXID_SNAPSHOT=755, UUID=756, VARBIT=757, XML=758, + COMMA=759, COLON=760, COLON_COLON=761, DOLLAR=762, DOLLAR_DOLLAR=763, + STAR=764, OPEN_PAREN=765, CLOSE_PAREN=766, OPEN_BRACKET=767, CLOSE_BRACKET=768, + BIT_STRING=769, REGEX_STRING=770, NUMERIC_LITERAL=771, INTEGER_LITERAL=772, + HEX_INTEGER_LITERAL=773, DOT=774, SINGLEQ_STRING_LITERAL=775, DOUBLEQ_STRING_LITERAL=776, + IDENTIFIER=777, DOLLAR_DEC=778, IDENTIFIER_UNICODE=779, AMP=780, AMP_AMP=781, + AMP_LT=782, AT_AT=783, AT_GT=784, AT_SIGN=785, BANG=786, BANG_BANG=787, + BANG_EQUAL=788, CARET=789, EQUAL=790, EQUAL_GT=791, GT=792, GTE=793, GT_GT=794, + HASH=795, HASH_EQ=796, HASH_GT=797, HASH_GT_GT=798, HASH_HASH=799, HYPHEN_GT=800, + HYPHEN_GT_GT=801, HYPHEN_PIPE_HYPHEN=802, LT=803, LTE=804, LT_AT=805, + LT_CARET=806, LT_GT=807, LT_HYPHEN_GT=808, LT_LT=809, LT_LT_EQ=810, LT_QMARK_GT=811, + MINUS=812, PERCENT=813, PIPE=814, PIPE_PIPE=815, PIPE_PIPE_SLASH=816, + PIPE_SLASH=817, PLUS=818, QMARK=819, QMARK_AMP=820, QMARK_HASH=821, QMARK_HYPHEN=822, + QMARK_PIPE=823, SLASH=824, TIL=825, TIL_EQ=826, TIL_GTE_TIL=827, TIL_GT_TIL=828, + TIL_LTE_TIL=829, TIL_LT_TIL=830, TIL_STAR=831, TIL_TIL=832, SEMI=833, + UNLOGGED=834; + public static final int + RULE_root = 0, RULE_stmt = 1, RULE_abort_stmt = 2, RULE_alter_stmt = 3, + RULE_alter_aggregate_stmt = 4, RULE_alter_collation_stmt = 5, RULE_alter_conversion_stmt = 6, + RULE_alter_database_stmt = 7, RULE_alter_default_privileges_stmt = 8, + RULE_alter_domain_stmt = 9, RULE_alter_event_trigger_stmt = 10, RULE_alter_extension_stmt = 11, + RULE_alter_foreign_data_wrapper_stmt = 12, RULE_alter_foreign_table_action = 13, + RULE_alter_foreign_table_action_list = 14, RULE_alter_foreign_table_stmt = 15, + RULE_alter_function_stmt = 16, RULE_alter_group_stmt = 17, RULE_alter_index_stmt = 18, + RULE_alter_language_stmt = 19, RULE_alter_large_object_stmt = 20, RULE_alter_materialize_view_stmt = 21, + RULE_alter_operator_stmt = 22, RULE_alter_operator_class_stmt = 23, RULE_alter_operator_family_stmt = 24, + RULE_alter_policy_stmt = 25, RULE_alter_publication_stmt = 26, RULE_alter_role_options = 27, + RULE_alter_role_stmt = 28, RULE_alter_rule_stmt = 29, RULE_alter_schema_stmt = 30, + RULE_alter_sequence_stmt = 31, RULE_alter_server_options_list = 32, RULE_alter_server_stmt = 33, + RULE_alter_statistics_stmt = 34, RULE_alter_subscription_stmt = 35, RULE_alter_system_stmt = 36, + RULE_alter_table_stmt = 37, RULE_alter_tablespace_stmt = 38, RULE_alter_text_search_config_stmt = 39, + RULE_alter_text_search_dict_stmt = 40, RULE_alter_text_search_parser_stmt = 41, + RULE_alter_text_search_template_stmt = 42, RULE_alter_trigger_stmt = 43, + RULE_alter_type_stmt = 44, RULE_alter_user_stmt = 45, RULE_alter_user_mapping_stmt = 46, + RULE_alter_view_stmt = 47, RULE_analyze_stmt = 48, RULE_close_stmt = 49, + RULE_cluster_stmt = 50, RULE_comment_stmt = 51, RULE_commit_stmt = 52, + RULE_commit_prepared_stmt = 53, RULE_copy_stmt = 54, RULE_create_stmt = 55, + RULE_create_access_method_stmt = 56, RULE_create_aggregate_stmt = 57, + RULE_create_cast_stmt = 58, RULE_create_collation_opt = 59, RULE_create_collation_opt_list = 60, + RULE_create_collation_stmt = 61, RULE_create_conversion_stmt = 62, RULE_create_database_stmt = 63, + RULE_domain_constraint = 64, RULE_create_domain_stmt = 65, RULE_create_event_trigger_cond = 66, + RULE_create_event_trigger_stmt = 67, RULE_create_foreign_data_options = 68, + RULE_create_foreign_data_stmt = 69, RULE_create_foreign_table_stmt = 70, + RULE_create_function_stmt = 71, RULE_create_group_stmt = 72, RULE_create_index_stmt = 73, + RULE_create_language_stmt = 74, RULE_create_materialized_view_stmt = 75, + RULE_create_operator_stmt = 76, RULE_create_operator_class_opt = 77, RULE_create_operator_class_stmt = 78, + RULE_create_operator_family_stmt = 79, RULE_create_policy_stmt = 80, RULE_create_role_stmt = 81, + RULE_create_rule_event = 82, RULE_create_rule_stmt = 83, RULE_create_schema_stmt = 84, + RULE_create_sequence_stmt = 85, RULE_create_server_stmt = 86, RULE_create_statistics_stmt = 87, + RULE_create_subscription_stmt = 88, RULE_create_table_stmt = 89, RULE_create_table_as_stmt = 90, + RULE_create_tablespace_stmt = 91, RULE_create_text_search_config_stmt = 92, + RULE_create_text_search_dict_stmt = 93, RULE_create_text_search_parser_stmt = 94, + RULE_create_text_search_template_stmt = 95, RULE_create_transform_stmt = 96, + RULE_create_trigger_stmt = 97, RULE_create_type_stmt = 98, RULE_create_user_stmt = 99, + RULE_create_user_mapping_stmt = 100, RULE_create_view_stmt = 101, RULE_deallocate_stmt = 102, + RULE_declare_stmt = 103, RULE_delete_stmt = 104, RULE_discard_stmt = 105, + RULE_drop_stmt = 106, RULE_drop_access_method_stmt = 107, RULE_drop_aggregate_stmt = 108, + RULE_drop_cast_stmt = 109, RULE_drop_collation_stmt = 110, RULE_drop_conversion_stmt = 111, + RULE_drop_database_stmt = 112, RULE_drop_domain_stmt = 113, RULE_drop_event_trigger_stmt = 114, + RULE_drop_extension_stmt = 115, RULE_drop_foreign_data_wrapper_stmt = 116, + RULE_drop_foreign_table_stmt = 117, RULE_drop_function_stmt = 118, RULE_drop_group_stmt = 119, + RULE_drop_index_stmt = 120, RULE_drop_language_stmt = 121, RULE_drop_materialized_view_stmt = 122, + RULE_drop_operator_stmt = 123, RULE_drop_operator_class_stmt = 124, RULE_drop_operator_family_stmt = 125, + RULE_drop_owned_stmt = 126, RULE_drop_policy_stmt = 127, RULE_drop_publication_stmt = 128, + RULE_drop_role_stmt = 129, RULE_drop_rule_stmt = 130, RULE_drop_schema_stmt = 131, + RULE_drop_sequence_stmt = 132, RULE_drop_server_stmt = 133, RULE_drop_statistics_stmt = 134, + RULE_drop_subscription_stmt = 135, RULE_drop_table_stmt = 136, RULE_drop_tablespace_stmt = 137, + RULE_drop_text_search_config_stmt = 138, RULE_drop_text_search_dict_stmt = 139, + RULE_drop_text_search_parser_stmt = 140, RULE_drop_text_search_template_stmt = 141, + RULE_drop_transform_stmt = 142, RULE_drop_trigger_stmt = 143, RULE_drop_type_stmt = 144, + RULE_drop_user_stmt = 145, RULE_drop_user_mapping_stmt = 146, RULE_drop_view_stmt = 147, + RULE_execute_stmt = 148, RULE_explain_stmt = 149, RULE_fetch_stmt = 150, + RULE_grant_stmt = 151, RULE_import_foreign_schema_stmt = 152, RULE_insert_stmt = 153, + RULE_listen_stmt = 154, RULE_load_stmt = 155, RULE_lock_stmt = 156, RULE_move_stmt = 157, + RULE_notify_stmt = 158, RULE_prepare_stmt = 159, RULE_prepare_transaction_stmt = 160, + RULE_reassign_owned_stmt = 161, RULE_refresh_materialized_view_stmt = 162, + RULE_reindex_stmt = 163, RULE_release_savepoint_stmt = 164, RULE_reset_stmt = 165, + RULE_revoke_stmt = 166, RULE_rollback_stmt = 167, RULE_rollback_prepared_stmt = 168, + RULE_rollback_to_savepoint_stmt = 169, RULE_savepoint_stmt = 170, RULE_security_label_stmt = 171, + RULE_select_stmt = 172, RULE_select_into_stmt = 173, RULE_with_clause = 174, + RULE_with_expr = 175, RULE_set_stmt = 176, RULE_set_constraints_stmt = 177, + RULE_set_role_stmt = 178, RULE_set_session_authorization_stmt = 179, RULE_transaction_mode = 180, + RULE_transaction_mode_list = 181, RULE_set_transaction_stmt = 182, RULE_show_stmt = 183, + RULE_truncate_stmt = 184, RULE_unlisten_stmt = 185, RULE_update_stmt = 186, + RULE_vacuum_opt = 187, RULE_vacuum_opt_list = 188, RULE_vacuum_stmt = 189, + RULE_values_stmt = 190, RULE_selector_clause = 191, RULE_from_clause = 192, + RULE_where_clause = 193, RULE_group_by_clause = 194, RULE_grouping_elem = 195, + RULE_grouping_elem_list = 196, RULE_having_clause = 197, RULE_column_list = 198, + RULE_explain_parameter = 199, RULE_frame = 200, RULE_frame_start = 201, + RULE_frame_end = 202, RULE_frame_clause = 203, RULE_window_definition = 204, + RULE_window_clause = 205, RULE_combine_clause = 206, RULE_order_by_clause = 207, + RULE_order_by_item = 208, RULE_limit_clause = 209, RULE_offset_clause = 210, + RULE_fetch_clause = 211, RULE_for_clause = 212, RULE_updater_clause = 213, + RULE_updater_expr = 214, RULE_returning_clause = 215, RULE_expr = 216, + RULE_bool_expr = 217, RULE_case_expr = 218, RULE_expr_list = 219, RULE_expr_list_list = 220, + RULE_func_sig_arg = 221, RULE_func_sig_arg_list = 222, RULE_func_sig = 223, + RULE_func_sig_list = 224, RULE_type_name = 225, RULE_timezone = 226, RULE_oper = 227, + RULE_aggregate = 228, RULE_name_ = 229, RULE_name_list = 230, RULE_identifier_list = 231, + RULE_option_expr = 232, RULE_option_list = 233, RULE_table_name_ = 234, + RULE_data_type = 235, RULE_data_type_list = 236, RULE_index_method = 237, + RULE_func_name = 238, RULE_func_call = 239, RULE_array_cons_expr = 240, + RULE_from_item = 241, RULE_with_column_alias = 242, RULE_join_type = 243, + RULE_join_clause = 244, RULE_predicate = 245, RULE_aggregate_signature = 246, + RULE_column_constraint = 247, RULE_column_constraints = 248, RULE_index_parameters = 249, + RULE_exclude_element = 250, RULE_table_constraint = 251, RULE_role_name = 252, + RULE_role_name_list = 253, RULE_param_value = 254, RULE_non_reserved_keyword = 255, + RULE_identifier = 256, RULE_todo_fill_in = 257, RULE_todo_implement = 258, + RULE_correlation_name = 259, RULE_column_name = 260, RULE_alias = 261, + RULE_column_alias = 262, RULE_column_definition = 263, RULE_window_name = 264; + public static final String[] ruleNames = { + "root", "stmt", "abort_stmt", "alter_stmt", "alter_aggregate_stmt", "alter_collation_stmt", + "alter_conversion_stmt", "alter_database_stmt", "alter_default_privileges_stmt", + "alter_domain_stmt", "alter_event_trigger_stmt", "alter_extension_stmt", + "alter_foreign_data_wrapper_stmt", "alter_foreign_table_action", "alter_foreign_table_action_list", + "alter_foreign_table_stmt", "alter_function_stmt", "alter_group_stmt", + "alter_index_stmt", "alter_language_stmt", "alter_large_object_stmt", + "alter_materialize_view_stmt", "alter_operator_stmt", "alter_operator_class_stmt", + "alter_operator_family_stmt", "alter_policy_stmt", "alter_publication_stmt", + "alter_role_options", "alter_role_stmt", "alter_rule_stmt", "alter_schema_stmt", + "alter_sequence_stmt", "alter_server_options_list", "alter_server_stmt", + "alter_statistics_stmt", "alter_subscription_stmt", "alter_system_stmt", + "alter_table_stmt", "alter_tablespace_stmt", "alter_text_search_config_stmt", + "alter_text_search_dict_stmt", "alter_text_search_parser_stmt", "alter_text_search_template_stmt", + "alter_trigger_stmt", "alter_type_stmt", "alter_user_stmt", "alter_user_mapping_stmt", + "alter_view_stmt", "analyze_stmt", "close_stmt", "cluster_stmt", "comment_stmt", + "commit_stmt", "commit_prepared_stmt", "copy_stmt", "create_stmt", "create_access_method_stmt", + "create_aggregate_stmt", "create_cast_stmt", "create_collation_opt", "create_collation_opt_list", + "create_collation_stmt", "create_conversion_stmt", "create_database_stmt", + "domain_constraint", "create_domain_stmt", "create_event_trigger_cond", + "create_event_trigger_stmt", "create_foreign_data_options", "create_foreign_data_stmt", + "create_foreign_table_stmt", "create_function_stmt", "create_group_stmt", + "create_index_stmt", "create_language_stmt", "create_materialized_view_stmt", + "create_operator_stmt", "create_operator_class_opt", "create_operator_class_stmt", + "create_operator_family_stmt", "create_policy_stmt", "create_role_stmt", + "create_rule_event", "create_rule_stmt", "create_schema_stmt", "create_sequence_stmt", + "create_server_stmt", "create_statistics_stmt", "create_subscription_stmt", + "create_table_stmt", "create_table_as_stmt", "create_tablespace_stmt", + "create_text_search_config_stmt", "create_text_search_dict_stmt", "create_text_search_parser_stmt", + "create_text_search_template_stmt", "create_transform_stmt", "create_trigger_stmt", + "create_type_stmt", "create_user_stmt", "create_user_mapping_stmt", "create_view_stmt", + "deallocate_stmt", "declare_stmt", "delete_stmt", "discard_stmt", "drop_stmt", + "drop_access_method_stmt", "drop_aggregate_stmt", "drop_cast_stmt", "drop_collation_stmt", + "drop_conversion_stmt", "drop_database_stmt", "drop_domain_stmt", "drop_event_trigger_stmt", + "drop_extension_stmt", "drop_foreign_data_wrapper_stmt", "drop_foreign_table_stmt", + "drop_function_stmt", "drop_group_stmt", "drop_index_stmt", "drop_language_stmt", + "drop_materialized_view_stmt", "drop_operator_stmt", "drop_operator_class_stmt", + "drop_operator_family_stmt", "drop_owned_stmt", "drop_policy_stmt", "drop_publication_stmt", + "drop_role_stmt", "drop_rule_stmt", "drop_schema_stmt", "drop_sequence_stmt", + "drop_server_stmt", "drop_statistics_stmt", "drop_subscription_stmt", + "drop_table_stmt", "drop_tablespace_stmt", "drop_text_search_config_stmt", + "drop_text_search_dict_stmt", "drop_text_search_parser_stmt", "drop_text_search_template_stmt", + "drop_transform_stmt", "drop_trigger_stmt", "drop_type_stmt", "drop_user_stmt", + "drop_user_mapping_stmt", "drop_view_stmt", "execute_stmt", "explain_stmt", + "fetch_stmt", "grant_stmt", "import_foreign_schema_stmt", "insert_stmt", + "listen_stmt", "load_stmt", "lock_stmt", "move_stmt", "notify_stmt", "prepare_stmt", + "prepare_transaction_stmt", "reassign_owned_stmt", "refresh_materialized_view_stmt", + "reindex_stmt", "release_savepoint_stmt", "reset_stmt", "revoke_stmt", + "rollback_stmt", "rollback_prepared_stmt", "rollback_to_savepoint_stmt", + "savepoint_stmt", "security_label_stmt", "select_stmt", "select_into_stmt", + "with_clause", "with_expr", "set_stmt", "set_constraints_stmt", "set_role_stmt", + "set_session_authorization_stmt", "transaction_mode", "transaction_mode_list", + "set_transaction_stmt", "show_stmt", "truncate_stmt", "unlisten_stmt", + "update_stmt", "vacuum_opt", "vacuum_opt_list", "vacuum_stmt", "values_stmt", + "selector_clause", "from_clause", "where_clause", "group_by_clause", "grouping_elem", + "grouping_elem_list", "having_clause", "column_list", "explain_parameter", + "frame", "frame_start", "frame_end", "frame_clause", "window_definition", + "window_clause", "combine_clause", "order_by_clause", "order_by_item", + "limit_clause", "offset_clause", "fetch_clause", "for_clause", "updater_clause", + "updater_expr", "returning_clause", "expr", "bool_expr", "case_expr", + "expr_list", "expr_list_list", "func_sig_arg", "func_sig_arg_list", "func_sig", + "func_sig_list", "type_name", "timezone", "oper", "aggregate", "name_", + "name_list", "identifier_list", "option_expr", "option_list", "table_name_", + "data_type", "data_type_list", "index_method", "func_name", "func_call", + "array_cons_expr", "from_item", "with_column_alias", "join_type", "join_clause", + "predicate", "aggregate_signature", "column_constraint", "column_constraints", + "index_parameters", "exclude_element", "table_constraint", "role_name", + "role_name_list", "param_value", "non_reserved_keyword", "identifier", + "todo_fill_in", "todo_implement", "correlation_name", "column_name", "alias", + "column_alias", "column_definition", "window_name" + }; + + private static final String[] _LITERAL_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", "')'", + "'['", "']'", null, null, null, null, null, "'.'", null, null, null, null, + null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", "'!!'", "'!='", + "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", "'#>'", "'#>>'", + "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", "'<^'", "'<>'", + "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", "'||'", "'||/'", + "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", "'/'", "'~'", "'~='", + "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", "';'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", + "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", + "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", + "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", + "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", + "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", + "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", + "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", + "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", + "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", + "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", + "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", + "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", + "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", + "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", + "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", + "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", + "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", + "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", + "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", "ENABLE", "ENCODING", + "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", "EVERY", "EXCEPT", + "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", + "EXISTS", "EXP", "EXPLAIN", "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", + "FALSE", "FETCH", "FIELDS", "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", + "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", + "FOUND", "FREE", "FREEZE", "FROM", "FULL", "FUNCTION", "FUSION", "G_", + "GENERAL", "GENERATED", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", + "GREATEST", "GROUP", "GROUPING", "HANDLER", "HAVING", "HIERARCHY", "HOLD", + "HOST", "HOUR", "IDENTITY", "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", + "IMPLEMENTATION", "IMPLICIT", "IN", "INCLUDING", "INCREMENT", "INDEX", + "INDICATOR", "INFIX", "INHERITS", "INITIALIZE", "INITIALLY", "INNER", + "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INSTANCE", "INSTANTIABLE", + "INSTEAD", "INT", "INTEGER", "INTERSECT", "INTERSECTION", "INTERVAL", + "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", "JOIN", "K_", "KEY", + "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", "LANGUAGE", "LARGE", + "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", "LESS", "LEVEL", + "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", + "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", "MAIN", "MAP", + "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", "MAXVALUE", "MEMBER", + "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "METHOD", + "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", "MODIFIES", "MODIFY", "MODULE", + "MONTH", "MORE_", "MOVE", "MULTISET", "MUMPS", "NAME", "NAMES", "NATIONAL", + "NATURAL", "NCHAR", "NCLOB", "NESTING", "NEW", "NEXT", "NO", "NOCREATEDB", + "NOCREATEUSER", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", + "NOTNULL", "NOWAIT", "NULL", "NULLABLE", "NULLIF", "NULLS", "NUMBER", + "NUMERIC", "OBJECT", "OCTET_LENGTH", "OCTETS", "OF", "OFF", "OFFSET", + "OIDS", "OLD", "ON", "ONLY", "OPEN", "OPERATION", "OPERATOR", "OPTION", + "OPTIONS", "OR", "ORDER", "ORDERING", "ORDINALITY", "OTHERS", "OUT", "OUTER", + "OUTPUT", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNER", "PAD", + "PARAMETER", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", + "PARAMETERS", "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", + "PATH", "PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", + "PLAIN", "PLANS", "PLI", "POSITION", "POSTFIX", "POWER", "PRECEDING", + "PRECISION", "PREFIX", "PREORDER", "PREPARE", "PREPARED", "PRESERVE", + "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PUBLIC", + "PUBLICATION", "QUOTE", "RANGE", "RANK", "READ", "READS", "REAL", "REASSIGN", + "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", + "REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", + "REGR_SXX", "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", + "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", + "RESULT", "RETURN", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", + "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", + "ROW", "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", + "SCHEMA", "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", "SESSION", + "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", + "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SPACE", "SPECIFIC", + "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", + "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", "START", "STATE", "STATEMENT", + "STATIC", "STATISTICS", "STDDEV_POP", "STDDEV_SAMP", "STDIN", "STDOUT", + "STORAGE", "STRICT", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "SUBLIST", + "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", "SUM", "SYMMETRIC", "SYSID", + "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", "TABLESAMPLE", "TABLESPACE", + "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", "THAN", "THEN", "TIES", + "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TIMING", "TO", + "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", "TRANSACTION_ACTIVE", + "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSFORM", "TRANSFORMS", + "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIGGER_CATALOG", "TRIGGER_NAME", + "TRIGGER_SCHEMA", "TRIM", "TRUE", "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", + "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", + "UNKNOWN", "UNLISTEN", "UNNAMED", "UNNEST", "UNTIL", "UPDATE", "UPPER", + "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", + "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "USING", "VACUUM", + "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", "VAR_POP", "VAR_SAMP", + "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", "VERBOSE", "VIEW", "VOLATILE", + "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", + "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", "YES", "ZONE", "SUPERUSER", + "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", "INHERIT", "NOINHERIT", "LOGIN", + "NOLOGIN", "REPLICATION", "NOREPLICATION", "BYPASSRLS", "NOBYPASSRLS", + "SFUNC", "STYPE", "SSPACE", "FINALFUNC", "FINALFUNC_EXTRA", "COMBINEFUNC", + "SERIALFUNC", "DESERIALFUNC", "INITCOND", "MSFUNC", "MINVFUNC", "MSTYPE", + "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", "MINITCOND", "SORTOP", "PARALLEL", + "HYPOTHETICAL", "SAFE", "UNSAFE", "BASETYPE", "IF", "LOCALE", "LC_COLLATE", + "LC_CTYPE", "PROVIDER", "VERSION", "ALLOW_CONNECTIONS", "IS_TEMPLATE", + "EVENT", "WRAPPER", "SERVER", "BTREE", "HASH_", "GIST", "SPGIST", "GIN", + "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", "LEFTARG", "RIGHTARG", + "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", "POLICY", "OWNED", + "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", "BYTEA", "CHARACTER_VARYING", + "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", "INT4", "INT8", + "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", "MONEY", "PG_LSN", + "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", "SERIAL4", "SERIAL8", + "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", "TIMETZ", "TSQUERY", "TSVECTOR", + "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", "COMMA", "COLON", "COLON_COLON", + "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", + "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", + "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", + "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", "AMP", "AMP_AMP", "AMP_LT", + "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", + "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", + "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", + "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", + "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", + "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", + "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", "TIL_LTE_TIL", + "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI", "UNLOGGED" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "PostgreSQLParser.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public PostgreSQLParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class RootContext extends ParserRuleContext { + public List stmt() { + return getRuleContexts(StmtContext.class); + } + public StmtContext stmt(int i) { + return getRuleContext(StmtContext.class,i); + } + public TerminalNode EOF() { return getToken(PostgreSQLParser.EOF, 0); } + public List SEMI() { return getTokens(PostgreSQLParser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(PostgreSQLParser.SEMI, i); + } + public RootContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_root; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRoot(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRoot(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRoot(this); + else return visitor.visitChildren(this); + } + } + + public final RootContext root() throws RecognitionException { + RootContext _localctx = new RootContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_root); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(530); + stmt(); + setState(539); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(533); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(531); + match(SEMI); + setState(532); + stmt(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(535); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,0,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(537); + match(SEMI); + } + } + + setState(541); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StmtContext extends ParserRuleContext { + public Abort_stmtContext abort_stmt() { + return getRuleContext(Abort_stmtContext.class,0); + } + public Alter_stmtContext alter_stmt() { + return getRuleContext(Alter_stmtContext.class,0); + } + public Analyze_stmtContext analyze_stmt() { + return getRuleContext(Analyze_stmtContext.class,0); + } + public Create_stmtContext create_stmt() { + return getRuleContext(Create_stmtContext.class,0); + } + public Close_stmtContext close_stmt() { + return getRuleContext(Close_stmtContext.class,0); + } + public Cluster_stmtContext cluster_stmt() { + return getRuleContext(Cluster_stmtContext.class,0); + } + public Comment_stmtContext comment_stmt() { + return getRuleContext(Comment_stmtContext.class,0); + } + public Commit_stmtContext commit_stmt() { + return getRuleContext(Commit_stmtContext.class,0); + } + public Commit_prepared_stmtContext commit_prepared_stmt() { + return getRuleContext(Commit_prepared_stmtContext.class,0); + } + public Copy_stmtContext copy_stmt() { + return getRuleContext(Copy_stmtContext.class,0); + } + public Deallocate_stmtContext deallocate_stmt() { + return getRuleContext(Deallocate_stmtContext.class,0); + } + public Declare_stmtContext declare_stmt() { + return getRuleContext(Declare_stmtContext.class,0); + } + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class,0); + } + public Discard_stmtContext discard_stmt() { + return getRuleContext(Discard_stmtContext.class,0); + } + public Drop_stmtContext drop_stmt() { + return getRuleContext(Drop_stmtContext.class,0); + } + public Execute_stmtContext execute_stmt() { + return getRuleContext(Execute_stmtContext.class,0); + } + public Explain_stmtContext explain_stmt() { + return getRuleContext(Explain_stmtContext.class,0); + } + public Fetch_stmtContext fetch_stmt() { + return getRuleContext(Fetch_stmtContext.class,0); + } + public Grant_stmtContext grant_stmt() { + return getRuleContext(Grant_stmtContext.class,0); + } + public Import_foreign_schema_stmtContext import_foreign_schema_stmt() { + return getRuleContext(Import_foreign_schema_stmtContext.class,0); + } + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class,0); + } + public Listen_stmtContext listen_stmt() { + return getRuleContext(Listen_stmtContext.class,0); + } + public Load_stmtContext load_stmt() { + return getRuleContext(Load_stmtContext.class,0); + } + public Lock_stmtContext lock_stmt() { + return getRuleContext(Lock_stmtContext.class,0); + } + public Move_stmtContext move_stmt() { + return getRuleContext(Move_stmtContext.class,0); + } + public Notify_stmtContext notify_stmt() { + return getRuleContext(Notify_stmtContext.class,0); + } + public Prepare_stmtContext prepare_stmt() { + return getRuleContext(Prepare_stmtContext.class,0); + } + public Prepare_transaction_stmtContext prepare_transaction_stmt() { + return getRuleContext(Prepare_transaction_stmtContext.class,0); + } + public Reassign_owned_stmtContext reassign_owned_stmt() { + return getRuleContext(Reassign_owned_stmtContext.class,0); + } + public Refresh_materialized_view_stmtContext refresh_materialized_view_stmt() { + return getRuleContext(Refresh_materialized_view_stmtContext.class,0); + } + public Reindex_stmtContext reindex_stmt() { + return getRuleContext(Reindex_stmtContext.class,0); + } + public Release_savepoint_stmtContext release_savepoint_stmt() { + return getRuleContext(Release_savepoint_stmtContext.class,0); + } + public Reset_stmtContext reset_stmt() { + return getRuleContext(Reset_stmtContext.class,0); + } + public Revoke_stmtContext revoke_stmt() { + return getRuleContext(Revoke_stmtContext.class,0); + } + public Rollback_stmtContext rollback_stmt() { + return getRuleContext(Rollback_stmtContext.class,0); + } + public Rollback_prepared_stmtContext rollback_prepared_stmt() { + return getRuleContext(Rollback_prepared_stmtContext.class,0); + } + public Rollback_to_savepoint_stmtContext rollback_to_savepoint_stmt() { + return getRuleContext(Rollback_to_savepoint_stmtContext.class,0); + } + public Savepoint_stmtContext savepoint_stmt() { + return getRuleContext(Savepoint_stmtContext.class,0); + } + public Security_label_stmtContext security_label_stmt() { + return getRuleContext(Security_label_stmtContext.class,0); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Select_into_stmtContext select_into_stmt() { + return getRuleContext(Select_into_stmtContext.class,0); + } + public Set_stmtContext set_stmt() { + return getRuleContext(Set_stmtContext.class,0); + } + public Set_constraints_stmtContext set_constraints_stmt() { + return getRuleContext(Set_constraints_stmtContext.class,0); + } + public Set_role_stmtContext set_role_stmt() { + return getRuleContext(Set_role_stmtContext.class,0); + } + public Set_session_authorization_stmtContext set_session_authorization_stmt() { + return getRuleContext(Set_session_authorization_stmtContext.class,0); + } + public Set_transaction_stmtContext set_transaction_stmt() { + return getRuleContext(Set_transaction_stmtContext.class,0); + } + public Show_stmtContext show_stmt() { + return getRuleContext(Show_stmtContext.class,0); + } + public Truncate_stmtContext truncate_stmt() { + return getRuleContext(Truncate_stmtContext.class,0); + } + public Unlisten_stmtContext unlisten_stmt() { + return getRuleContext(Unlisten_stmtContext.class,0); + } + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class,0); + } + public Vacuum_stmtContext vacuum_stmt() { + return getRuleContext(Vacuum_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public StmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitStmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitStmt(this); + else return visitor.visitChildren(this); + } + } + + public final StmtContext stmt() throws RecognitionException { + StmtContext _localctx = new StmtContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(595); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { + case 1: + { + setState(543); + abort_stmt(); + } + break; + case 2: + { + setState(544); + alter_stmt(); + } + break; + case 3: + { + setState(545); + analyze_stmt(); + } + break; + case 4: + { + setState(546); + create_stmt(); + } + break; + case 5: + { + setState(547); + close_stmt(); + } + break; + case 6: + { + setState(548); + cluster_stmt(); + } + break; + case 7: + { + setState(549); + comment_stmt(); + } + break; + case 8: + { + setState(550); + commit_stmt(); + } + break; + case 9: + { + setState(551); + commit_prepared_stmt(); + } + break; + case 10: + { + setState(552); + copy_stmt(); + } + break; + case 11: + { + setState(553); + deallocate_stmt(); + } + break; + case 12: + { + setState(554); + declare_stmt(); + } + break; + case 13: + { + setState(555); + delete_stmt(); + } + break; + case 14: + { + setState(556); + discard_stmt(); + } + break; + case 15: + { + setState(557); + drop_stmt(); + } + break; + case 16: + { + setState(558); + execute_stmt(); + } + break; + case 17: + { + setState(559); + explain_stmt(); + } + break; + case 18: + { + setState(560); + fetch_stmt(); + } + break; + case 19: + { + setState(561); + grant_stmt(); + } + break; + case 20: + { + setState(562); + import_foreign_schema_stmt(); + } + break; + case 21: + { + setState(563); + insert_stmt(); + } + break; + case 22: + { + setState(564); + listen_stmt(); + } + break; + case 23: + { + setState(565); + load_stmt(); + } + break; + case 24: + { + setState(566); + lock_stmt(); + } + break; + case 25: + { + setState(567); + move_stmt(); + } + break; + case 26: + { + setState(568); + notify_stmt(); + } + break; + case 27: + { + setState(569); + prepare_stmt(); + } + break; + case 28: + { + setState(570); + prepare_transaction_stmt(); + } + break; + case 29: + { + setState(571); + reassign_owned_stmt(); + } + break; + case 30: + { + setState(572); + refresh_materialized_view_stmt(); + } + break; + case 31: + { + setState(573); + reindex_stmt(); + } + break; + case 32: + { + setState(574); + release_savepoint_stmt(); + } + break; + case 33: + { + setState(575); + reset_stmt(); + } + break; + case 34: + { + setState(576); + revoke_stmt(); + } + break; + case 35: + { + setState(577); + rollback_stmt(); + } + break; + case 36: + { + setState(578); + rollback_prepared_stmt(); + } + break; + case 37: + { + setState(579); + rollback_to_savepoint_stmt(); + } + break; + case 38: + { + setState(580); + savepoint_stmt(); + } + break; + case 39: + { + setState(581); + security_label_stmt(); + } + break; + case 40: + { + setState(582); + select_stmt(); + } + break; + case 41: + { + setState(583); + select_into_stmt(); + } + break; + case 42: + { + setState(584); + set_stmt(); + } + break; + case 43: + { + setState(585); + set_constraints_stmt(); + } + break; + case 44: + { + setState(586); + set_role_stmt(); + } + break; + case 45: + { + setState(587); + set_session_authorization_stmt(); + } + break; + case 46: + { + setState(588); + set_transaction_stmt(); + } + break; + case 47: + { + setState(589); + show_stmt(); + } + break; + case 48: + { + setState(590); + truncate_stmt(); + } + break; + case 49: + { + setState(591); + unlisten_stmt(); + } + break; + case 50: + { + setState(592); + update_stmt(); + } + break; + case 51: + { + setState(593); + vacuum_stmt(); + } + break; + case 52: + { + setState(594); + values_stmt(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Abort_stmtContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Abort_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_abort_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAbort_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAbort_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAbort_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Abort_stmtContext abort_stmt() throws RecognitionException { + Abort_stmtContext _localctx = new Abort_stmtContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_abort_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(597); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_stmtContext extends ParserRuleContext { + public Alter_aggregate_stmtContext alter_aggregate_stmt() { + return getRuleContext(Alter_aggregate_stmtContext.class,0); + } + public Alter_collation_stmtContext alter_collation_stmt() { + return getRuleContext(Alter_collation_stmtContext.class,0); + } + public Alter_conversion_stmtContext alter_conversion_stmt() { + return getRuleContext(Alter_conversion_stmtContext.class,0); + } + public Alter_database_stmtContext alter_database_stmt() { + return getRuleContext(Alter_database_stmtContext.class,0); + } + public Alter_default_privileges_stmtContext alter_default_privileges_stmt() { + return getRuleContext(Alter_default_privileges_stmtContext.class,0); + } + public Alter_domain_stmtContext alter_domain_stmt() { + return getRuleContext(Alter_domain_stmtContext.class,0); + } + public Alter_event_trigger_stmtContext alter_event_trigger_stmt() { + return getRuleContext(Alter_event_trigger_stmtContext.class,0); + } + public Alter_extension_stmtContext alter_extension_stmt() { + return getRuleContext(Alter_extension_stmtContext.class,0); + } + public Alter_foreign_data_wrapper_stmtContext alter_foreign_data_wrapper_stmt() { + return getRuleContext(Alter_foreign_data_wrapper_stmtContext.class,0); + } + public Alter_foreign_table_stmtContext alter_foreign_table_stmt() { + return getRuleContext(Alter_foreign_table_stmtContext.class,0); + } + public Alter_function_stmtContext alter_function_stmt() { + return getRuleContext(Alter_function_stmtContext.class,0); + } + public Alter_group_stmtContext alter_group_stmt() { + return getRuleContext(Alter_group_stmtContext.class,0); + } + public Alter_index_stmtContext alter_index_stmt() { + return getRuleContext(Alter_index_stmtContext.class,0); + } + public Alter_language_stmtContext alter_language_stmt() { + return getRuleContext(Alter_language_stmtContext.class,0); + } + public Alter_large_object_stmtContext alter_large_object_stmt() { + return getRuleContext(Alter_large_object_stmtContext.class,0); + } + public Alter_materialize_view_stmtContext alter_materialize_view_stmt() { + return getRuleContext(Alter_materialize_view_stmtContext.class,0); + } + public Alter_operator_stmtContext alter_operator_stmt() { + return getRuleContext(Alter_operator_stmtContext.class,0); + } + public Alter_operator_class_stmtContext alter_operator_class_stmt() { + return getRuleContext(Alter_operator_class_stmtContext.class,0); + } + public Alter_operator_family_stmtContext alter_operator_family_stmt() { + return getRuleContext(Alter_operator_family_stmtContext.class,0); + } + public Alter_policy_stmtContext alter_policy_stmt() { + return getRuleContext(Alter_policy_stmtContext.class,0); + } + public Alter_publication_stmtContext alter_publication_stmt() { + return getRuleContext(Alter_publication_stmtContext.class,0); + } + public Alter_role_stmtContext alter_role_stmt() { + return getRuleContext(Alter_role_stmtContext.class,0); + } + public Alter_rule_stmtContext alter_rule_stmt() { + return getRuleContext(Alter_rule_stmtContext.class,0); + } + public Alter_schema_stmtContext alter_schema_stmt() { + return getRuleContext(Alter_schema_stmtContext.class,0); + } + public Alter_sequence_stmtContext alter_sequence_stmt() { + return getRuleContext(Alter_sequence_stmtContext.class,0); + } + public Alter_server_stmtContext alter_server_stmt() { + return getRuleContext(Alter_server_stmtContext.class,0); + } + public Alter_statistics_stmtContext alter_statistics_stmt() { + return getRuleContext(Alter_statistics_stmtContext.class,0); + } + public Alter_subscription_stmtContext alter_subscription_stmt() { + return getRuleContext(Alter_subscription_stmtContext.class,0); + } + public Alter_system_stmtContext alter_system_stmt() { + return getRuleContext(Alter_system_stmtContext.class,0); + } + public Alter_table_stmtContext alter_table_stmt() { + return getRuleContext(Alter_table_stmtContext.class,0); + } + public Alter_tablespace_stmtContext alter_tablespace_stmt() { + return getRuleContext(Alter_tablespace_stmtContext.class,0); + } + public Alter_text_search_config_stmtContext alter_text_search_config_stmt() { + return getRuleContext(Alter_text_search_config_stmtContext.class,0); + } + public Alter_text_search_dict_stmtContext alter_text_search_dict_stmt() { + return getRuleContext(Alter_text_search_dict_stmtContext.class,0); + } + public Alter_text_search_parser_stmtContext alter_text_search_parser_stmt() { + return getRuleContext(Alter_text_search_parser_stmtContext.class,0); + } + public Alter_text_search_template_stmtContext alter_text_search_template_stmt() { + return getRuleContext(Alter_text_search_template_stmtContext.class,0); + } + public Alter_trigger_stmtContext alter_trigger_stmt() { + return getRuleContext(Alter_trigger_stmtContext.class,0); + } + public Alter_type_stmtContext alter_type_stmt() { + return getRuleContext(Alter_type_stmtContext.class,0); + } + public Alter_user_stmtContext alter_user_stmt() { + return getRuleContext(Alter_user_stmtContext.class,0); + } + public Alter_user_mapping_stmtContext alter_user_mapping_stmt() { + return getRuleContext(Alter_user_mapping_stmtContext.class,0); + } + public Alter_view_stmtContext alter_view_stmt() { + return getRuleContext(Alter_view_stmtContext.class,0); + } + public Alter_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_stmtContext alter_stmt() throws RecognitionException { + Alter_stmtContext _localctx = new Alter_stmtContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_alter_stmt); + try { + setState(639); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(599); + alter_aggregate_stmt(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(600); + alter_collation_stmt(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(601); + alter_conversion_stmt(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(602); + alter_database_stmt(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(603); + alter_default_privileges_stmt(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(604); + alter_domain_stmt(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(605); + alter_event_trigger_stmt(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(606); + alter_extension_stmt(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(607); + alter_foreign_data_wrapper_stmt(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(608); + alter_foreign_table_stmt(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(609); + alter_function_stmt(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(610); + alter_group_stmt(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(611); + alter_index_stmt(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(612); + alter_language_stmt(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(613); + alter_large_object_stmt(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(614); + alter_materialize_view_stmt(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(615); + alter_operator_stmt(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(616); + alter_operator_class_stmt(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(617); + alter_operator_family_stmt(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(618); + alter_policy_stmt(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(619); + alter_publication_stmt(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(620); + alter_role_stmt(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(621); + alter_rule_stmt(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(622); + alter_schema_stmt(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(623); + alter_sequence_stmt(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(624); + alter_server_stmt(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(625); + alter_statistics_stmt(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(626); + alter_subscription_stmt(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(627); + alter_system_stmt(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(628); + alter_table_stmt(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(629); + alter_tablespace_stmt(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(630); + alter_text_search_config_stmt(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(631); + alter_text_search_dict_stmt(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(632); + alter_text_search_parser_stmt(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(633); + alter_text_search_template_stmt(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(634); + alter_trigger_stmt(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(635); + alter_type_stmt(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(636); + alter_user_stmt(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(637); + alter_user_mapping_stmt(); + } + break; + case 40: + enterOuterAlt(_localctx, 40); + { + setState(638); + alter_view_stmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_aggregate_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode AGGREGATE() { return getToken(PostgreSQLParser.AGGREGATE, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Aggregate_signatureContext aggregate_signature() { + return getRuleContext(Aggregate_signatureContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_aggregate_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_aggregate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_aggregate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_aggregate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_aggregate_stmtContext alter_aggregate_stmt() throws RecognitionException { + Alter_aggregate_stmtContext _localctx = new Alter_aggregate_stmtContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_alter_aggregate_stmt); + try { + setState(671); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(641); + match(ALTER); + setState(642); + match(AGGREGATE); + setState(643); + ((Alter_aggregate_stmtContext)_localctx).name = identifier(0); + setState(644); + match(OPEN_PAREN); + setState(645); + aggregate_signature(); + setState(646); + match(CLOSE_PAREN); + setState(647); + match(RENAME); + setState(648); + match(TO); + setState(649); + ((Alter_aggregate_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(651); + match(ALTER); + setState(652); + match(AGGREGATE); + setState(653); + ((Alter_aggregate_stmtContext)_localctx).name = identifier(0); + setState(654); + match(OPEN_PAREN); + setState(655); + aggregate_signature(); + setState(656); + match(CLOSE_PAREN); + setState(657); + match(OWNER); + setState(658); + match(TO); + setState(659); + ((Alter_aggregate_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(661); + match(ALTER); + setState(662); + match(AGGREGATE); + setState(663); + ((Alter_aggregate_stmtContext)_localctx).name = identifier(0); + setState(664); + match(OPEN_PAREN); + setState(665); + aggregate_signature(); + setState(666); + match(CLOSE_PAREN); + setState(667); + match(SET); + setState(668); + match(SCHEMA); + setState(669); + ((Alter_aggregate_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_collation_stmtContext extends ParserRuleContext { + public Name_Context name; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode COLLATION() { return getToken(PostgreSQLParser.COLLATION, 0); } + public TerminalNode REFRESH() { return getToken(PostgreSQLParser.REFRESH, 0); } + public TerminalNode VERSION() { return getToken(PostgreSQLParser.VERSION, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_collation_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_collation_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_collation_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_collation_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_collation_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_collation_stmtContext alter_collation_stmt() throws RecognitionException { + Alter_collation_stmtContext _localctx = new Alter_collation_stmtContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_alter_collation_stmt); + try { + setState(700); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(673); + match(ALTER); + setState(674); + match(COLLATION); + setState(675); + ((Alter_collation_stmtContext)_localctx).name = name_(); + setState(676); + match(REFRESH); + setState(677); + match(VERSION); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(679); + match(ALTER); + setState(680); + match(COLLATION); + setState(681); + ((Alter_collation_stmtContext)_localctx).name = name_(); + setState(682); + match(RENAME); + setState(683); + match(TO); + setState(684); + ((Alter_collation_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(686); + match(ALTER); + setState(687); + match(COLLATION); + setState(688); + ((Alter_collation_stmtContext)_localctx).name = name_(); + setState(689); + match(OWNER); + setState(690); + match(TO); + setState(691); + ((Alter_collation_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(693); + match(ALTER); + setState(694); + match(COLLATION); + setState(695); + ((Alter_collation_stmtContext)_localctx).name = name_(); + setState(696); + match(SET); + setState(697); + match(SCHEMA); + setState(698); + ((Alter_collation_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_conversion_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode CONVERSION() { return getToken(PostgreSQLParser.CONVERSION, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_conversion_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_conversion_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_conversion_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_conversion_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_conversion_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_conversion_stmtContext alter_conversion_stmt() throws RecognitionException { + Alter_conversion_stmtContext _localctx = new Alter_conversion_stmtContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_alter_conversion_stmt); + try { + setState(723); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(702); + match(ALTER); + setState(703); + match(CONVERSION); + setState(704); + ((Alter_conversion_stmtContext)_localctx).name = identifier(0); + setState(705); + match(RENAME); + setState(706); + match(TO); + setState(707); + ((Alter_conversion_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(709); + match(ALTER); + setState(710); + match(CONVERSION); + setState(711); + ((Alter_conversion_stmtContext)_localctx).name = identifier(0); + setState(712); + match(OWNER); + setState(713); + match(TO); + setState(714); + ((Alter_conversion_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(716); + match(ALTER); + setState(717); + match(CONVERSION); + setState(718); + ((Alter_conversion_stmtContext)_localctx).name = identifier(0); + setState(719); + match(SET); + setState(720); + match(SCHEMA); + setState(721); + ((Alter_conversion_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_database_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_database_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_database_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_database_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_database_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_database_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_database_stmtContext alter_database_stmt() throws RecognitionException { + Alter_database_stmtContext _localctx = new Alter_database_stmtContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_alter_database_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(725); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_default_privileges_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_default_privileges_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_default_privileges_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_default_privileges_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_default_privileges_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_default_privileges_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_default_privileges_stmtContext alter_default_privileges_stmt() throws RecognitionException { + Alter_default_privileges_stmtContext _localctx = new Alter_default_privileges_stmtContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_alter_default_privileges_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(727); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_domain_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext constraint_name; + public IdentifierContext new_constraint_name; + public Role_nameContext new_owner; + public IdentifierContext new_name; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode DOMAIN() { return getToken(PostgreSQLParser.DOMAIN, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode NULL() { return getToken(PostgreSQLParser.NULL, 0); } + public TerminalNode ADD() { return getToken(PostgreSQLParser.ADD, 0); } + public Domain_constraintContext domain_constraint() { + return getRuleContext(Domain_constraintContext.class,0); + } + public TerminalNode VALID() { return getToken(PostgreSQLParser.VALID, 0); } + public TerminalNode CONSTRAINT() { return getToken(PostgreSQLParser.CONSTRAINT, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode VALIDATE() { return getToken(PostgreSQLParser.VALIDATE, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_domain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_domain_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_domain_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_domain_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_domain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_domain_stmtContext alter_domain_stmt() throws RecognitionException { + Alter_domain_stmtContext _localctx = new Alter_domain_stmtContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_alter_domain_stmt); + int _la; + try { + setState(805); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(729); + match(ALTER); + setState(730); + match(DOMAIN); + setState(731); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(737); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SET: + { + setState(732); + match(SET); + setState(733); + match(DEFAULT); + setState(734); + expr(0); + } + break; + case DROP: + { + setState(735); + match(DROP); + setState(736); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(739); + match(ALTER); + setState(740); + match(DOMAIN); + setState(741); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(742); + _la = _input.LA(1); + if ( !(_la==DROP || _la==SET) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(743); + match(NOT); + setState(744); + match(NULL); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(746); + match(ALTER); + setState(747); + match(DOMAIN); + setState(748); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(749); + match(ADD); + setState(750); + domain_constraint(); + setState(753); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(751); + match(NOT); + setState(752); + match(VALID); + } + } + + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(755); + match(ALTER); + setState(756); + match(DOMAIN); + setState(757); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(758); + match(DROP); + setState(759); + match(CONSTRAINT); + setState(762); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(760); + match(IF); + setState(761); + match(EXISTS); + } + } + + setState(764); + ((Alter_domain_stmtContext)_localctx).constraint_name = identifier(0); + setState(766); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(765); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(768); + match(ALTER); + setState(769); + match(DOMAIN); + setState(770); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(771); + match(RENAME); + setState(772); + match(CONSTRAINT); + setState(773); + ((Alter_domain_stmtContext)_localctx).constraint_name = identifier(0); + setState(774); + match(TO); + setState(775); + ((Alter_domain_stmtContext)_localctx).new_constraint_name = identifier(0); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(777); + match(ALTER); + setState(778); + match(DOMAIN); + setState(779); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(780); + match(VALIDATE); + setState(781); + match(CONSTRAINT); + setState(782); + ((Alter_domain_stmtContext)_localctx).constraint_name = identifier(0); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(784); + match(ALTER); + setState(785); + match(DOMAIN); + setState(786); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(787); + match(OWNER); + setState(788); + match(TO); + setState(789); + ((Alter_domain_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(791); + match(ALTER); + setState(792); + match(DOMAIN); + setState(793); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(794); + match(RENAME); + setState(795); + match(TO); + setState(796); + ((Alter_domain_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(798); + match(ALTER); + setState(799); + match(DOMAIN); + setState(800); + ((Alter_domain_stmtContext)_localctx).name = identifier(0); + setState(801); + match(SET); + setState(802); + match(SCHEMA); + setState(803); + ((Alter_domain_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_event_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_owner; + public IdentifierContext new_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode EVENT() { return getToken(PostgreSQLParser.EVENT, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode ENABLE() { return getToken(PostgreSQLParser.ENABLE, 0); } + public TerminalNode REPLICA() { return getToken(PostgreSQLParser.REPLICA, 0); } + public TerminalNode ALWAYS() { return getToken(PostgreSQLParser.ALWAYS, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public Alter_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_event_trigger_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_event_trigger_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_event_trigger_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_event_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws RecognitionException { + Alter_event_trigger_stmtContext _localctx = new Alter_event_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_alter_event_trigger_stmt); + int _la; + try { + setState(840); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(807); + match(ALTER); + setState(808); + match(EVENT); + setState(809); + match(TRIGGER); + setState(810); + ((Alter_event_trigger_stmtContext)_localctx).name = identifier(0); + setState(811); + match(DISABLE_P); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(813); + match(ALTER); + setState(814); + match(EVENT); + setState(815); + match(TRIGGER); + setState(816); + ((Alter_event_trigger_stmtContext)_localctx).name = identifier(0); + setState(817); + match(ENABLE); + setState(819); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALWAYS || _la==REPLICA) { + { + setState(818); + _la = _input.LA(1); + if ( !(_la==ALWAYS || _la==REPLICA) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(821); + match(ALTER); + setState(822); + match(EVENT); + setState(823); + match(TRIGGER); + setState(824); + ((Alter_event_trigger_stmtContext)_localctx).name = identifier(0); + setState(825); + match(OWNER); + setState(826); + match(TO); + setState(830); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(827); + ((Alter_event_trigger_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(828); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(829); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(832); + match(ALTER); + setState(833); + match(EVENT); + setState(834); + match(TRIGGER); + setState(835); + ((Alter_event_trigger_stmtContext)_localctx).name = identifier(0); + setState(836); + match(RENAME); + setState(837); + match(TO); + setState(838); + ((Alter_event_trigger_stmtContext)_localctx).new_name = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_extension_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_version; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode EXTENSION() { return getToken(PostgreSQLParser.EXTENSION, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_extension_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_extension_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_extension_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_extension_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_extension_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_extension_stmtContext alter_extension_stmt() throws RecognitionException { + Alter_extension_stmtContext _localctx = new Alter_extension_stmtContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_alter_extension_stmt); + int _la; + try { + setState(857); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(842); + match(ALTER); + setState(843); + match(EXTENSION); + setState(844); + ((Alter_extension_stmtContext)_localctx).name = identifier(0); + setState(845); + match(UPDATE); + setState(848); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TO) { + { + setState(846); + match(TO); + setState(847); + ((Alter_extension_stmtContext)_localctx).new_version = identifier(0); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(850); + match(ALTER); + setState(851); + match(EXTENSION); + setState(852); + ((Alter_extension_stmtContext)_localctx).name = identifier(0); + setState(853); + match(SET); + setState(854); + match(SCHEMA); + setState(855); + ((Alter_extension_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_data_wrapper_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_foreign_data_wrapper_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_foreign_data_wrapper_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_foreign_data_wrapper_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_foreign_data_wrapper_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_foreign_data_wrapper_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_data_wrapper_stmtContext alter_foreign_data_wrapper_stmt() throws RecognitionException { + Alter_foreign_data_wrapper_stmtContext _localctx = new Alter_foreign_data_wrapper_stmtContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_alter_foreign_data_wrapper_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(859); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_table_actionContext extends ParserRuleContext { + public Column_nameContext column_name_; + public Data_typeContext data_type_; + public IdentifierContext collation; + public Column_constraintsContext column_constraints_; + public Option_listContext attribute_values; + public Identifier_listContext attributes; + public Todo_fill_inContext constraint_name; + public Todo_fill_inContext trigger_name; + public IdentifierContext parent_table; + public Role_nameContext new_owner; + public TerminalNode ADD() { return getToken(PostgreSQLParser.ADD, 0); } + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class,0); + } + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class,0); + } + public TerminalNode COLUMN() { return getToken(PostgreSQLParser.COLUMN, 0); } + public TerminalNode COLLATE() { return getToken(PostgreSQLParser.COLLATE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Column_constraintsContext column_constraints() { + return getRuleContext(Column_constraintsContext.class,0); + } + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode TYPE() { return getToken(PostgreSQLParser.TYPE, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode DATA() { return getToken(PostgreSQLParser.DATA, 0); } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode NULL() { return getToken(PostgreSQLParser.NULL, 0); } + public TerminalNode STATISTICS() { return getToken(PostgreSQLParser.STATISTICS, 0); } + public TerminalNode INTEGER() { return getToken(PostgreSQLParser.INTEGER, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode STORAGE() { return getToken(PostgreSQLParser.STORAGE, 0); } + public TerminalNode PLAIN() { return getToken(PostgreSQLParser.PLAIN, 0); } + public TerminalNode EXTERNAL() { return getToken(PostgreSQLParser.EXTERNAL, 0); } + public TerminalNode EXTENDED() { return getToken(PostgreSQLParser.EXTENDED, 0); } + public TerminalNode MAIN() { return getToken(PostgreSQLParser.MAIN, 0); } + public TerminalNode OPTIONS() { return getToken(PostgreSQLParser.OPTIONS, 0); } + public Table_constraintContext table_constraint() { + return getRuleContext(Table_constraintContext.class,0); + } + public TerminalNode VALID() { return getToken(PostgreSQLParser.VALID, 0); } + public TerminalNode VALIDATE() { return getToken(PostgreSQLParser.VALIDATE, 0); } + public TerminalNode CONSTRAINT() { return getToken(PostgreSQLParser.CONSTRAINT, 0); } + public Todo_fill_inContext todo_fill_in() { + return getRuleContext(Todo_fill_inContext.class,0); + } + public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode USER() { return getToken(PostgreSQLParser.USER, 0); } + public TerminalNode ENABLE() { return getToken(PostgreSQLParser.ENABLE, 0); } + public TerminalNode REPLICA() { return getToken(PostgreSQLParser.REPLICA, 0); } + public TerminalNode ALWAYS() { return getToken(PostgreSQLParser.ALWAYS, 0); } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode OIDS() { return getToken(PostgreSQLParser.OIDS, 0); } + public TerminalNode WITHOUT() { return getToken(PostgreSQLParser.WITHOUT, 0); } + public TerminalNode INHERIT() { return getToken(PostgreSQLParser.INHERIT, 0); } + public TerminalNode NO() { return getToken(PostgreSQLParser.NO, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public Alter_foreign_table_actionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_foreign_table_action; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_foreign_table_action(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_foreign_table_action(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_foreign_table_action(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_table_actionContext alter_foreign_table_action() throws RecognitionException { + Alter_foreign_table_actionContext _localctx = new Alter_foreign_table_actionContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_alter_foreign_table_action); + int _la; + try { + setState(1033); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(861); + match(ADD); + setState(863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(862); + match(COLUMN); + } + } + + setState(865); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(866); + ((Alter_foreign_table_actionContext)_localctx).data_type_ = data_type(); + setState(869); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLLATE) { + { + setState(867); + match(COLLATE); + setState(868); + ((Alter_foreign_table_actionContext)_localctx).collation = identifier(0); + } + } + + setState(872); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(871); + ((Alter_foreign_table_actionContext)_localctx).column_constraints_ = column_constraints(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(874); + match(DROP); + setState(876); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(875); + match(COLUMN); + } + } + + setState(880); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(878); + match(IF); + setState(879); + match(EXISTS); + } + } + + setState(882); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(884); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(883); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(886); + match(ALTER); + setState(888); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(887); + match(COLUMN); + } + } + + setState(890); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(893); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SET) { + { + setState(891); + match(SET); + setState(892); + match(DATA); + } + } + + setState(895); + match(TYPE); + setState(896); + ((Alter_foreign_table_actionContext)_localctx).data_type_ = data_type(); + setState(899); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLLATE) { + { + setState(897); + match(COLLATE); + setState(898); + ((Alter_foreign_table_actionContext)_localctx).collation = identifier(0); + } + } + + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(901); + match(ALTER); + setState(903); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(902); + match(COLUMN); + } + } + + setState(905); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(906); + match(SET); + setState(907); + match(DEFAULT); + setState(908); + expr(0); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(910); + match(ALTER); + setState(912); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(911); + match(COLUMN); + } + } + + setState(914); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(915); + match(DROP); + setState(916); + match(DEFAULT); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(918); + match(ALTER); + setState(920); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(919); + match(COLUMN); + } + } + + setState(922); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(923); + _la = _input.LA(1); + if ( !(_la==DROP || _la==SET) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(924); + match(NOT); + setState(925); + match(NULL); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(927); + match(ALTER); + setState(929); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(928); + match(COLUMN); + } + } + + setState(931); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(932); + match(SET); + setState(933); + match(STATISTICS); + setState(934); + match(INTEGER); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(936); + match(ALTER); + setState(938); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(937); + match(COLUMN); + } + } + + setState(940); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(941); + match(SET); + setState(942); + match(OPEN_PAREN); + setState(943); + ((Alter_foreign_table_actionContext)_localctx).attribute_values = option_list(); + setState(944); + match(CLOSE_PAREN); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(946); + match(ALTER); + setState(948); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(947); + match(COLUMN); + } + } + + setState(950); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(951); + match(RESET); + setState(952); + match(OPEN_PAREN); + setState(953); + ((Alter_foreign_table_actionContext)_localctx).attributes = identifier_list(); + setState(954); + match(CLOSE_PAREN); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(956); + match(ALTER); + setState(958); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(957); + match(COLUMN); + } + } + + setState(960); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(961); + match(SET); + setState(962); + match(STORAGE); + setState(963); + _la = _input.LA(1); + if ( !(_la==EXTENDED || _la==EXTERNAL || _la==MAIN || _la==PLAIN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(965); + match(ALTER); + setState(967); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(966); + match(COLUMN); + } + } + + setState(969); + ((Alter_foreign_table_actionContext)_localctx).column_name_ = column_name(); + setState(970); + match(OPTIONS); + { + setState(972); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ADD || _la==DROP || _la==SET) { + { + setState(971); + _la = _input.LA(1); + if ( !(_la==ADD || _la==DROP || _la==SET) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(974); + match(ADD); + setState(975); + table_constraint(); + setState(978); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(976); + match(NOT); + setState(977); + match(VALID); + } + } + + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(980); + match(VALIDATE); + setState(981); + match(CONSTRAINT); + setState(982); + ((Alter_foreign_table_actionContext)_localctx).constraint_name = todo_fill_in(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(983); + match(DROP); + setState(984); + match(CONSTRAINT); + setState(987); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { + case 1: + { + setState(985); + match(IF); + setState(986); + match(EXISTS); + } + break; + } + setState(989); + ((Alter_foreign_table_actionContext)_localctx).constraint_name = todo_fill_in(); + setState(991); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(990); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(993); + match(DISABLE_P); + setState(994); + match(TRIGGER); + setState(998); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) { + case 1: + { + setState(995); + ((Alter_foreign_table_actionContext)_localctx).trigger_name = todo_fill_in(); + } + break; + case 2: + { + setState(996); + match(ALL); + } + break; + case 3: + { + setState(997); + match(USER); + } + break; + } + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(1000); + match(ENABLE); + setState(1001); + match(TRIGGER); + setState(1005); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) { + case 1: + { + setState(1002); + ((Alter_foreign_table_actionContext)_localctx).trigger_name = todo_fill_in(); + } + break; + case 2: + { + setState(1003); + match(ALL); + } + break; + case 3: + { + setState(1004); + match(USER); + } + break; + } + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(1007); + match(ENABLE); + setState(1008); + match(REPLICA); + setState(1009); + match(TRIGGER); + setState(1010); + ((Alter_foreign_table_actionContext)_localctx).trigger_name = todo_fill_in(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(1011); + match(ENABLE); + setState(1012); + match(ALWAYS); + setState(1013); + match(TRIGGER); + setState(1014); + ((Alter_foreign_table_actionContext)_localctx).trigger_name = todo_fill_in(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(1015); + match(SET); + setState(1016); + match(WITH); + setState(1017); + match(OIDS); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(1018); + match(SET); + setState(1019); + match(WITHOUT); + setState(1020); + match(OIDS); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(1021); + match(INHERIT); + setState(1022); + ((Alter_foreign_table_actionContext)_localctx).parent_table = identifier(0); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(1023); + match(NO); + setState(1024); + match(INHERIT); + setState(1025); + ((Alter_foreign_table_actionContext)_localctx).parent_table = identifier(0); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(1026); + match(OWNER); + setState(1027); + match(TO); + setState(1028); + ((Alter_foreign_table_actionContext)_localctx).new_owner = role_name(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(1029); + match(OPTIONS); + { + setState(1031); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ADD || _la==DROP || _la==SET) { + { + setState(1030); + _la = _input.LA(1); + if ( !(_la==ADD || _la==DROP || _la==SET) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_table_action_listContext extends ParserRuleContext { + public List alter_foreign_table_action() { + return getRuleContexts(Alter_foreign_table_actionContext.class); + } + public Alter_foreign_table_actionContext alter_foreign_table_action(int i) { + return getRuleContext(Alter_foreign_table_actionContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Alter_foreign_table_action_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_foreign_table_action_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_foreign_table_action_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_foreign_table_action_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_foreign_table_action_list(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_table_action_listContext alter_foreign_table_action_list() throws RecognitionException { + Alter_foreign_table_action_listContext _localctx = new Alter_foreign_table_action_listContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_alter_foreign_table_action_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1035); + alter_foreign_table_action(); + setState(1040); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1036); + match(COMMA); + setState(1037); + alter_foreign_table_action(); + } + } + setState(1042); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_foreign_table_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Alter_foreign_table_action_listContext actions; + public Column_nameContext column_name_; + public IdentifierContext new_column_name; + public IdentifierContext new_name; + public IdentifierContext new_schama; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Alter_foreign_table_action_listContext alter_foreign_table_action_list() { + return getRuleContext(Alter_foreign_table_action_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class,0); + } + public TerminalNode COLUMN() { return getToken(PostgreSQLParser.COLUMN, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_foreign_table_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_foreign_table_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_foreign_table_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_foreign_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_foreign_table_stmtContext alter_foreign_table_stmt() throws RecognitionException { + Alter_foreign_table_stmtContext _localctx = new Alter_foreign_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_alter_foreign_table_stmt); + int _la; + try { + setState(1105); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1043); + match(ALTER); + setState(1044); + match(FOREIGN); + setState(1045); + match(TABLE); + setState(1048); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1046); + match(IF); + setState(1047); + match(EXISTS); + } + } + + setState(1051); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(1050); + match(ONLY); + } + } + + setState(1053); + ((Alter_foreign_table_stmtContext)_localctx).name = identifier(0); + setState(1055); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(1054); + match(STAR); + } + } + + setState(1057); + ((Alter_foreign_table_stmtContext)_localctx).actions = alter_foreign_table_action_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1059); + match(ALTER); + setState(1060); + match(FOREIGN); + setState(1061); + match(TABLE); + setState(1064); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1062); + match(IF); + setState(1063); + match(EXISTS); + } + } + + setState(1067); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(1066); + match(ONLY); + } + } + + setState(1069); + ((Alter_foreign_table_stmtContext)_localctx).name = identifier(0); + setState(1071); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(1070); + match(STAR); + } + } + + setState(1073); + match(RENAME); + setState(1075); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLUMN) { + { + setState(1074); + match(COLUMN); + } + } + + setState(1077); + ((Alter_foreign_table_stmtContext)_localctx).column_name_ = column_name(); + setState(1078); + match(TO); + setState(1079); + ((Alter_foreign_table_stmtContext)_localctx).new_column_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1081); + match(ALTER); + setState(1082); + match(FOREIGN); + setState(1083); + match(TABLE); + setState(1086); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1084); + match(IF); + setState(1085); + match(EXISTS); + } + } + + setState(1088); + ((Alter_foreign_table_stmtContext)_localctx).name = identifier(0); + setState(1089); + match(RENAME); + setState(1090); + match(TO); + setState(1091); + ((Alter_foreign_table_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1093); + match(ALTER); + setState(1094); + match(FOREIGN); + setState(1095); + match(TABLE); + setState(1098); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1096); + match(IF); + setState(1097); + match(EXISTS); + } + } + + setState(1100); + ((Alter_foreign_table_stmtContext)_localctx).name = identifier(0); + setState(1101); + match(SET); + setState(1102); + match(SCHEMA); + setState(1103); + ((Alter_foreign_table_stmtContext)_localctx).new_schama = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_function_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_function_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_function_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_function_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_function_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_function_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_function_stmtContext alter_function_stmt() throws RecognitionException { + Alter_function_stmtContext _localctx = new Alter_function_stmtContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_alter_function_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1107); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_group_stmtContext extends ParserRuleContext { + public Role_nameContext role; + public Identifier_listContext users; + public IdentifierContext group_name; + public IdentifierContext new_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode GROUP() { return getToken(PostgreSQLParser.GROUP, 0); } + public TerminalNode ADD() { return getToken(PostgreSQLParser.ADD, 0); } + public TerminalNode USER() { return getToken(PostgreSQLParser.USER, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Alter_group_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_group_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_group_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_group_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_group_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_group_stmtContext alter_group_stmt() throws RecognitionException { + Alter_group_stmtContext _localctx = new Alter_group_stmtContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_alter_group_stmt); + try { + setState(1130); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1109); + match(ALTER); + setState(1110); + match(GROUP); + setState(1111); + ((Alter_group_stmtContext)_localctx).role = role_name(); + setState(1112); + match(ADD); + setState(1113); + match(USER); + setState(1114); + ((Alter_group_stmtContext)_localctx).users = identifier_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1116); + match(ALTER); + setState(1117); + match(GROUP); + setState(1118); + ((Alter_group_stmtContext)_localctx).role = role_name(); + setState(1119); + match(DROP); + setState(1120); + match(USER); + setState(1121); + ((Alter_group_stmtContext)_localctx).users = identifier_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1123); + match(ALTER); + setState(1124); + match(GROUP); + setState(1125); + ((Alter_group_stmtContext)_localctx).group_name = identifier(0); + setState(1126); + match(RENAME); + setState(1127); + match(TO); + setState(1128); + ((Alter_group_stmtContext)_localctx).new_name = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_index_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext tablespace_name; + public IdentifierContext extension_name; + public Identifier_listContext roles; + public IdentifierContext new_tablespace; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public List TABLESPACE() { return getTokens(PostgreSQLParser.TABLESPACE); } + public TerminalNode TABLESPACE(int i) { + return getToken(PostgreSQLParser.TABLESPACE, i); + } + public TerminalNode DEPENDS() { return getToken(PostgreSQLParser.DEPENDS, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode EXTENSION() { return getToken(PostgreSQLParser.EXTENSION, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public TerminalNode OWNED() { return getToken(PostgreSQLParser.OWNED, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public TerminalNode NOWAIT() { return getToken(PostgreSQLParser.NOWAIT, 0); } + public Alter_index_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_index_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_index_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_index_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_index_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_index_stmtContext alter_index_stmt() throws RecognitionException { + Alter_index_stmtContext _localctx = new Alter_index_stmtContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_alter_index_stmt); + int _la; + try { + setState(1202); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,60,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1132); + match(ALTER); + setState(1133); + match(INDEX); + setState(1136); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1134); + match(IF); + setState(1135); + match(EXISTS); + } + } + + setState(1138); + ((Alter_index_stmtContext)_localctx).name = identifier(0); + setState(1139); + match(RENAME); + setState(1140); + match(TO); + setState(1141); + ((Alter_index_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1143); + match(ALTER); + setState(1144); + match(INDEX); + setState(1147); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1145); + match(IF); + setState(1146); + match(EXISTS); + } + } + + setState(1149); + ((Alter_index_stmtContext)_localctx).name = identifier(0); + setState(1150); + match(SET); + setState(1151); + match(TABLESPACE); + setState(1152); + ((Alter_index_stmtContext)_localctx).tablespace_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1154); + match(ALTER); + setState(1155); + match(INDEX); + setState(1156); + ((Alter_index_stmtContext)_localctx).name = identifier(0); + setState(1157); + match(DEPENDS); + setState(1158); + match(ON); + setState(1159); + match(EXTENSION); + setState(1160); + ((Alter_index_stmtContext)_localctx).extension_name = identifier(0); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1162); + match(ALTER); + setState(1163); + match(INDEX); + setState(1166); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1164); + match(IF); + setState(1165); + match(EXISTS); + } + } + + setState(1168); + ((Alter_index_stmtContext)_localctx).name = identifier(0); + setState(1169); + match(SET); + setState(1170); + match(OPEN_PAREN); + setState(1171); + option_list(); + setState(1172); + match(CLOSE_PAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1174); + match(ALTER); + setState(1175); + match(INDEX); + setState(1178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1176); + match(IF); + setState(1177); + match(EXISTS); + } + } + + setState(1180); + match(RESET); + setState(1181); + match(OPEN_PAREN); + setState(1182); + identifier_list(); + setState(1183); + match(CLOSE_PAREN); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1185); + match(ALTER); + setState(1186); + match(INDEX); + setState(1187); + match(ALL); + setState(1188); + match(IN); + setState(1189); + match(TABLESPACE); + setState(1190); + ((Alter_index_stmtContext)_localctx).name = identifier(0); + setState(1194); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OWNED) { + { + setState(1191); + match(OWNED); + setState(1192); + match(BY); + setState(1193); + ((Alter_index_stmtContext)_localctx).roles = identifier_list(); + } + } + + setState(1196); + match(SET); + setState(1197); + match(TABLESPACE); + setState(1198); + ((Alter_index_stmtContext)_localctx).new_tablespace = identifier(0); + setState(1200); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOWAIT) { + { + setState(1199); + match(NOWAIT); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_language_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode LANGUAGE() { return getToken(PostgreSQLParser.LANGUAGE, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode PROCEDURAL() { return getToken(PostgreSQLParser.PROCEDURAL, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public Alter_language_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_language_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_language_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_language_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_language_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_language_stmtContext alter_language_stmt() throws RecognitionException { + Alter_language_stmtContext _localctx = new Alter_language_stmtContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_alter_language_stmt); + int _la; + try { + setState(1227); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1204); + match(ALTER); + setState(1206); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROCEDURAL) { + { + setState(1205); + match(PROCEDURAL); + } + } + + setState(1208); + match(LANGUAGE); + setState(1209); + ((Alter_language_stmtContext)_localctx).name = identifier(0); + setState(1210); + match(RENAME); + setState(1211); + match(TO); + setState(1212); + ((Alter_language_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1214); + match(ALTER); + setState(1216); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROCEDURAL) { + { + setState(1215); + match(PROCEDURAL); + } + } + + setState(1218); + match(LANGUAGE); + setState(1219); + ((Alter_language_stmtContext)_localctx).name = identifier(0); + setState(1220); + match(OWNER); + setState(1221); + match(TO); + setState(1225); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1222); + ((Alter_language_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(1223); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(1224); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_large_object_stmtContext extends ParserRuleContext { + public Token large_object_oid; + public IdentifierContext new_owner; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode LARGE() { return getToken(PostgreSQLParser.LARGE, 0); } + public TerminalNode OBJECT() { return getToken(PostgreSQLParser.OBJECT, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Alter_large_object_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_large_object_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_large_object_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_large_object_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_large_object_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_large_object_stmtContext alter_large_object_stmt() throws RecognitionException { + Alter_large_object_stmtContext _localctx = new Alter_large_object_stmtContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_alter_large_object_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1229); + match(ALTER); + setState(1230); + match(LARGE); + setState(1231); + match(OBJECT); + setState(1232); + ((Alter_large_object_stmtContext)_localctx).large_object_oid = match(INTEGER_LITERAL); + setState(1233); + match(OWNER); + setState(1234); + match(TO); + setState(1238); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1235); + ((Alter_large_object_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(1236); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(1237); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_materialize_view_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_materialize_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_materialize_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_materialize_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_materialize_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_materialize_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_materialize_view_stmtContext alter_materialize_view_stmt() throws RecognitionException { + Alter_materialize_view_stmtContext _localctx = new Alter_materialize_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_alter_materialize_view_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1240); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_operator_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_operator_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_operator_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_operator_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_operator_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_operator_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_operator_stmtContext alter_operator_stmt() throws RecognitionException { + Alter_operator_stmtContext _localctx = new Alter_operator_stmtContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_alter_operator_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1242); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_operator_class_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode CLASS() { return getToken(PostgreSQLParser.CLASS, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_operator_class_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_operator_class_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_operator_class_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_operator_class_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws RecognitionException { + Alter_operator_class_stmtContext _localctx = new Alter_operator_class_stmtContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_alter_operator_class_stmt); + try { + setState(1277); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,67,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1244); + match(ALTER); + setState(1245); + match(OPERATOR); + setState(1246); + match(CLASS); + setState(1247); + ((Alter_operator_class_stmtContext)_localctx).name = identifier(0); + setState(1248); + match(USING); + setState(1249); + index_method(); + setState(1250); + match(RENAME); + setState(1251); + match(TO); + setState(1252); + ((Alter_operator_class_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1254); + match(ALTER); + setState(1255); + match(OPERATOR); + setState(1256); + match(CLASS); + setState(1257); + ((Alter_operator_class_stmtContext)_localctx).name = identifier(0); + setState(1258); + match(USING); + setState(1259); + index_method(); + setState(1260); + match(OWNER); + setState(1261); + match(TO); + setState(1265); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1262); + ((Alter_operator_class_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(1263); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(1264); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1267); + match(ALTER); + setState(1268); + match(OPERATOR); + setState(1269); + match(CLASS); + setState(1270); + ((Alter_operator_class_stmtContext)_localctx).name = identifier(0); + setState(1271); + match(USING); + setState(1272); + index_method(); + setState(1273); + match(SET); + setState(1274); + match(SCHEMA); + setState(1275); + ((Alter_operator_class_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_operator_family_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_operator_family_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_operator_family_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_operator_family_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_operator_family_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_operator_family_stmtContext alter_operator_family_stmt() throws RecognitionException { + Alter_operator_family_stmtContext _localctx = new Alter_operator_family_stmtContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_alter_operator_family_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1279); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_policy_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + public IdentifierContext new_name; + public Role_name_listContext roles; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode POLICY() { return getToken(PostgreSQLParser.POLICY, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class,i); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode CHECK() { return getToken(PostgreSQLParser.CHECK, 0); } + public Role_name_listContext role_name_list() { + return getRuleContext(Role_name_listContext.class,0); + } + public Alter_policy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_policy_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_policy_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_policy_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_policy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_policy_stmtContext alter_policy_stmt() throws RecognitionException { + Alter_policy_stmtContext _localctx = new Alter_policy_stmtContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_alter_policy_stmt); + int _la; + try { + setState(1308); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1281); + match(ALTER); + setState(1282); + match(POLICY); + setState(1283); + ((Alter_policy_stmtContext)_localctx).name = identifier(0); + setState(1284); + match(ON); + setState(1285); + ((Alter_policy_stmtContext)_localctx).table_name = identifier(0); + setState(1286); + match(RENAME); + setState(1287); + match(TO); + setState(1288); + ((Alter_policy_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1290); + match(ALTER); + setState(1291); + match(POLICY); + setState(1292); + ((Alter_policy_stmtContext)_localctx).name = identifier(0); + setState(1293); + match(ON); + setState(1294); + ((Alter_policy_stmtContext)_localctx).table_name = identifier(0); + setState(1297); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TO) { + { + setState(1295); + match(TO); + setState(1296); + ((Alter_policy_stmtContext)_localctx).roles = role_name_list(); + } + } + + setState(1301); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(1299); + match(USING); + setState(1300); + predicate(0); + } + } + + setState(1306); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(1303); + match(WITH); + setState(1304); + match(CHECK); + setState(1305); + predicate(0); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_publication_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Identifier_listContext table_names; + public Role_nameContext new_owner; + public Name_Context new_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode PUBLICATION() { return getToken(PostgreSQLParser.PUBLICATION, 0); } + public TerminalNode ADD() { return getToken(PostgreSQLParser.ADD, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Alter_publication_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_publication_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_publication_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_publication_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_publication_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_publication_stmtContext alter_publication_stmt() throws RecognitionException { + Alter_publication_stmtContext _localctx = new Alter_publication_stmtContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_alter_publication_stmt); + int _la; + try { + setState(1362); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1310); + match(ALTER); + setState(1311); + match(PUBLICATION); + setState(1312); + ((Alter_publication_stmtContext)_localctx).name = identifier(0); + setState(1313); + match(ADD); + setState(1314); + match(TABLE); + setState(1316); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(1315); + match(ONLY); + } + } + + setState(1318); + ((Alter_publication_stmtContext)_localctx).table_names = identifier_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1320); + match(ALTER); + setState(1321); + match(PUBLICATION); + setState(1322); + ((Alter_publication_stmtContext)_localctx).name = identifier(0); + setState(1323); + match(SET); + setState(1324); + match(TABLE); + setState(1326); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(1325); + match(ONLY); + } + } + + setState(1328); + ((Alter_publication_stmtContext)_localctx).table_names = identifier_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1330); + match(ALTER); + setState(1331); + match(PUBLICATION); + setState(1332); + ((Alter_publication_stmtContext)_localctx).name = identifier(0); + setState(1333); + match(DROP); + setState(1334); + match(TABLE); + setState(1336); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(1335); + match(ONLY); + } + } + + setState(1338); + ((Alter_publication_stmtContext)_localctx).table_names = identifier_list(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1340); + match(ALTER); + setState(1341); + match(PUBLICATION); + setState(1342); + ((Alter_publication_stmtContext)_localctx).name = identifier(0); + setState(1343); + match(SET); + setState(1344); + match(OPEN_PAREN); + setState(1345); + option_list(); + setState(1346); + match(CLOSE_PAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1348); + match(ALTER); + setState(1349); + match(PUBLICATION); + setState(1350); + ((Alter_publication_stmtContext)_localctx).name = identifier(0); + setState(1351); + match(OWNER); + setState(1352); + match(TO); + setState(1353); + ((Alter_publication_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1355); + match(ALTER); + setState(1356); + match(PUBLICATION); + setState(1357); + ((Alter_publication_stmtContext)_localctx).name = identifier(0); + setState(1358); + match(RENAME); + setState(1359); + match(TO); + setState(1360); + ((Alter_publication_stmtContext)_localctx).new_name = name_(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_role_optionsContext extends ParserRuleContext { + public Token connlimit; + public TerminalNode SUPERUSER() { return getToken(PostgreSQLParser.SUPERUSER, 0); } + public TerminalNode NOSUPERUSER() { return getToken(PostgreSQLParser.NOSUPERUSER, 0); } + public TerminalNode CREATEDB() { return getToken(PostgreSQLParser.CREATEDB, 0); } + public TerminalNode NOCREATEDB() { return getToken(PostgreSQLParser.NOCREATEDB, 0); } + public TerminalNode CREATEROLE() { return getToken(PostgreSQLParser.CREATEROLE, 0); } + public TerminalNode NOCREATEROLE() { return getToken(PostgreSQLParser.NOCREATEROLE, 0); } + public TerminalNode INHERIT() { return getToken(PostgreSQLParser.INHERIT, 0); } + public TerminalNode NOINHERIT() { return getToken(PostgreSQLParser.NOINHERIT, 0); } + public TerminalNode LOGIN() { return getToken(PostgreSQLParser.LOGIN, 0); } + public TerminalNode NOLOGIN() { return getToken(PostgreSQLParser.NOLOGIN, 0); } + public TerminalNode REPLICATION() { return getToken(PostgreSQLParser.REPLICATION, 0); } + public TerminalNode NOREPLICATION() { return getToken(PostgreSQLParser.NOREPLICATION, 0); } + public TerminalNode BYPASSRLS() { return getToken(PostgreSQLParser.BYPASSRLS, 0); } + public TerminalNode NOBYPASSRLS() { return getToken(PostgreSQLParser.NOBYPASSRLS, 0); } + public TerminalNode CONNECTION() { return getToken(PostgreSQLParser.CONNECTION, 0); } + public TerminalNode LIMIT() { return getToken(PostgreSQLParser.LIMIT, 0); } + public TerminalNode INTEGER() { return getToken(PostgreSQLParser.INTEGER, 0); } + public TerminalNode PASSWORD() { return getToken(PostgreSQLParser.PASSWORD, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode ENCRYPTED() { return getToken(PostgreSQLParser.ENCRYPTED, 0); } + public TerminalNode VALID() { return getToken(PostgreSQLParser.VALID, 0); } + public TerminalNode UNTIL() { return getToken(PostgreSQLParser.UNTIL, 0); } + public Alter_role_optionsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_role_options; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_role_options(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_role_options(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_role_options(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_role_optionsContext alter_role_options() throws RecognitionException { + Alter_role_optionsContext _localctx = new Alter_role_optionsContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_alter_role_options); + int _la; + try { + setState(1389); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPERUSER: + enterOuterAlt(_localctx, 1); + { + setState(1364); + match(SUPERUSER); + } + break; + case NOSUPERUSER: + enterOuterAlt(_localctx, 2); + { + setState(1365); + match(NOSUPERUSER); + } + break; + case CREATEDB: + enterOuterAlt(_localctx, 3); + { + setState(1366); + match(CREATEDB); + } + break; + case NOCREATEDB: + enterOuterAlt(_localctx, 4); + { + setState(1367); + match(NOCREATEDB); + } + break; + case CREATEROLE: + enterOuterAlt(_localctx, 5); + { + setState(1368); + match(CREATEROLE); + } + break; + case NOCREATEROLE: + enterOuterAlt(_localctx, 6); + { + setState(1369); + match(NOCREATEROLE); + } + break; + case INHERIT: + enterOuterAlt(_localctx, 7); + { + setState(1370); + match(INHERIT); + } + break; + case NOINHERIT: + enterOuterAlt(_localctx, 8); + { + setState(1371); + match(NOINHERIT); + } + break; + case LOGIN: + enterOuterAlt(_localctx, 9); + { + setState(1372); + match(LOGIN); + } + break; + case NOLOGIN: + enterOuterAlt(_localctx, 10); + { + setState(1373); + match(NOLOGIN); + } + break; + case REPLICATION: + enterOuterAlt(_localctx, 11); + { + setState(1374); + match(REPLICATION); + } + break; + case NOREPLICATION: + enterOuterAlt(_localctx, 12); + { + setState(1375); + match(NOREPLICATION); + } + break; + case BYPASSRLS: + enterOuterAlt(_localctx, 13); + { + setState(1376); + match(BYPASSRLS); + } + break; + case NOBYPASSRLS: + enterOuterAlt(_localctx, 14); + { + setState(1377); + match(NOBYPASSRLS); + } + break; + case CONNECTION: + enterOuterAlt(_localctx, 15); + { + setState(1378); + match(CONNECTION); + setState(1379); + match(LIMIT); + setState(1380); + ((Alter_role_optionsContext)_localctx).connlimit = match(INTEGER); + } + break; + case ENCRYPTED: + case PASSWORD: + enterOuterAlt(_localctx, 16); + { + setState(1382); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ENCRYPTED) { + { + setState(1381); + match(ENCRYPTED); + } + } + + setState(1384); + match(PASSWORD); + setState(1385); + match(SINGLEQ_STRING_LITERAL); + } + break; + case VALID: + enterOuterAlt(_localctx, 17); + { + setState(1386); + match(VALID); + setState(1387); + match(UNTIL); + setState(1388); + match(SINGLEQ_STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_role_stmtContext extends ParserRuleContext { + public Role_nameContext role; + public Alter_role_optionsContext options; + public Name_Context name; + public Name_Context new_name; + public Name_Context database_name; + public IdentifierContext configuration_parameter; + public Param_valueContext value; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode ROLE() { return getToken(PostgreSQLParser.ROLE, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public List alter_role_options() { + return getRuleContexts(Alter_role_optionsContext.class); + } + public Alter_role_optionsContext alter_role_options(int i) { + return getRuleContext(Alter_role_optionsContext.class,i); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public List ALL() { return getTokens(PostgreSQLParser.ALL); } + public TerminalNode ALL(int i) { + return getToken(PostgreSQLParser.ALL, i); + } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public TerminalNode DATABASE() { return getToken(PostgreSQLParser.DATABASE, 0); } + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class,0); + } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public TerminalNode CURRENT() { return getToken(PostgreSQLParser.CURRENT, 0); } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public Alter_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_role_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_role_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_role_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_role_stmtContext alter_role_stmt() throws RecognitionException { + Alter_role_stmtContext _localctx = new Alter_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_alter_role_stmt); + int _la; + try { + setState(1469); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1391); + match(ALTER); + setState(1392); + match(ROLE); + setState(1393); + ((Alter_role_stmtContext)_localctx).role = role_name(); + setState(1395); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(1394); + match(WITH); + } + } + + setState(1398); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1397); + ((Alter_role_stmtContext)_localctx).options = alter_role_options(); + } + } + setState(1400); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CONNECTION || _la==CREATEDB || _la==ENCRYPTED || _la==NOCREATEDB || _la==PASSWORD || ((((_la - 627)) & ~0x3f) == 0 && ((1L << (_la - 627)) & ((1L << (VALID - 627)) | (1L << (SUPERUSER - 627)) | (1L << (NOSUPERUSER - 627)) | (1L << (CREATEROLE - 627)) | (1L << (NOCREATEROLE - 627)) | (1L << (INHERIT - 627)) | (1L << (NOINHERIT - 627)) | (1L << (LOGIN - 627)) | (1L << (NOLOGIN - 627)) | (1L << (REPLICATION - 627)) | (1L << (NOREPLICATION - 627)) | (1L << (BYPASSRLS - 627)) | (1L << (NOBYPASSRLS - 627)))) != 0) ); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1402); + match(ALTER); + setState(1403); + match(ROLE); + setState(1404); + ((Alter_role_stmtContext)_localctx).name = name_(); + setState(1405); + match(RENAME); + setState(1406); + match(TO); + setState(1407); + ((Alter_role_stmtContext)_localctx).new_name = name_(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1409); + match(ALTER); + setState(1410); + match(ROLE); + setState(1413); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1411); + ((Alter_role_stmtContext)_localctx).role = role_name(); + } + break; + case ALL: + { + setState(1412); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1418); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN) { + { + setState(1415); + match(IN); + setState(1416); + match(DATABASE); + setState(1417); + ((Alter_role_stmtContext)_localctx).database_name = name_(); + } + } + + setState(1420); + match(SET); + setState(1421); + ((Alter_role_stmtContext)_localctx).configuration_parameter = identifier(0); + setState(1422); + _la = _input.LA(1); + if ( !(_la==TO || _la==EQUAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1425); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case ON: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case YES: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1423); + ((Alter_role_stmtContext)_localctx).value = param_value(); + } + break; + case DEFAULT: + { + setState(1424); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1427); + match(ALTER); + setState(1428); + match(ROLE); + setState(1431); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1429); + ((Alter_role_stmtContext)_localctx).role = role_name(); + } + break; + case ALL: + { + setState(1430); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1436); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN) { + { + setState(1433); + match(IN); + setState(1434); + match(DATABASE); + setState(1435); + ((Alter_role_stmtContext)_localctx).database_name = name_(); + } + } + + setState(1438); + match(SET); + setState(1439); + ((Alter_role_stmtContext)_localctx).configuration_parameter = identifier(0); + setState(1440); + match(FROM); + setState(1441); + match(CURRENT); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1443); + match(ALTER); + setState(1444); + match(ROLE); + setState(1447); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1445); + ((Alter_role_stmtContext)_localctx).role = role_name(); + } + break; + case ALL: + { + setState(1446); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1452); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN) { + { + setState(1449); + match(IN); + setState(1450); + match(DATABASE); + setState(1451); + ((Alter_role_stmtContext)_localctx).database_name = name_(); + } + } + + setState(1454); + match(RESET); + setState(1455); + ((Alter_role_stmtContext)_localctx).configuration_parameter = identifier(0); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1456); + match(ALTER); + setState(1457); + match(ROLE); + setState(1460); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SESSION_USER: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1458); + ((Alter_role_stmtContext)_localctx).role = role_name(); + } + break; + case ALL: + { + setState(1459); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1465); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN) { + { + setState(1462); + match(IN); + setState(1463); + match(DATABASE); + setState(1464); + ((Alter_role_stmtContext)_localctx).database_name = name_(); + } + } + + setState(1467); + match(RESET); + setState(1468); + match(ALL); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_rule_stmtContext extends ParserRuleContext { + public Name_Context name; + public IdentifierContext table_name; + public Name_Context new_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode RULE() { return getToken(PostgreSQLParser.RULE, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Alter_rule_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_rule_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_rule_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_rule_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_rule_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_rule_stmtContext alter_rule_stmt() throws RecognitionException { + Alter_rule_stmtContext _localctx = new Alter_rule_stmtContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_alter_rule_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1471); + match(ALTER); + setState(1472); + match(RULE); + setState(1473); + ((Alter_rule_stmtContext)_localctx).name = name_(); + setState(1474); + match(ON); + setState(1475); + ((Alter_rule_stmtContext)_localctx).table_name = identifier(0); + setState(1476); + match(RENAME); + setState(1477); + match(TO); + setState(1478); + ((Alter_rule_stmtContext)_localctx).new_name = name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_schema_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public Alter_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_schema_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_schema_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_schema_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionException { + Alter_schema_stmtContext _localctx = new Alter_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_alter_schema_stmt); + try { + setState(1497); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1480); + match(ALTER); + setState(1481); + match(SCHEMA); + setState(1482); + ((Alter_schema_stmtContext)_localctx).name = identifier(0); + setState(1483); + match(RENAME); + setState(1484); + match(TO); + setState(1485); + ((Alter_schema_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1487); + match(ALTER); + setState(1488); + match(SCHEMA); + setState(1489); + ((Alter_schema_stmtContext)_localctx).name = identifier(0); + setState(1490); + match(OWNER); + setState(1491); + match(TO); + setState(1495); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1492); + ((Alter_schema_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(1493); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(1494); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_sequence_stmtContext extends ParserRuleContext { + public Name_Context name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode SEQUENCE() { return getToken(PostgreSQLParser.SEQUENCE, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Alter_sequence_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_sequence_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_sequence_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_sequence_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_sequence_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_sequence_stmtContext alter_sequence_stmt() throws RecognitionException { + Alter_sequence_stmtContext _localctx = new Alter_sequence_stmtContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_alter_sequence_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1499); + match(ALTER); + setState(1500); + match(SEQUENCE); + setState(1503); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1501); + match(IF); + setState(1502); + match(EXISTS); + } + } + + setState(1505); + ((Alter_sequence_stmtContext)_localctx).name = name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_server_options_listContext extends ParserRuleContext { + public IdentifierContext option; + public Param_valueContext value; + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public List ADD() { return getTokens(PostgreSQLParser.ADD); } + public TerminalNode ADD(int i) { + return getToken(PostgreSQLParser.ADD, i); + } + public List SET() { return getTokens(PostgreSQLParser.SET); } + public TerminalNode SET(int i) { + return getToken(PostgreSQLParser.SET, i); + } + public List DROP() { return getTokens(PostgreSQLParser.DROP); } + public TerminalNode DROP(int i) { + return getToken(PostgreSQLParser.DROP, i); + } + public List param_value() { + return getRuleContexts(Param_valueContext.class); + } + public Param_valueContext param_value(int i) { + return getRuleContext(Param_valueContext.class,i); + } + public Alter_server_options_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_server_options_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_server_options_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_server_options_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_server_options_list(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_server_options_listContext alter_server_options_list() throws RecognitionException { + Alter_server_options_listContext _localctx = new Alter_server_options_listContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_alter_server_options_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + { + setState(1508); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,93,_ctx) ) { + case 1: + { + setState(1507); + _la = _input.LA(1); + if ( !(_la==ADD || _la==DROP || _la==SET) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(1510); + ((Alter_server_options_listContext)_localctx).option = identifier(0); + setState(1512); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(1511); + ((Alter_server_options_listContext)_localctx).value = param_value(); + } + } + + } + setState(1524); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1514); + match(COMMA); + setState(1516); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,95,_ctx) ) { + case 1: + { + setState(1515); + _la = _input.LA(1); + if ( !(_la==ADD || _la==DROP || _la==SET) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(1518); + ((Alter_server_options_listContext)_localctx).option = identifier(0); + setState(1520); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(1519); + ((Alter_server_options_listContext)_localctx).value = param_value(); + } + } + + } + } + setState(1526); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_server_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Role_nameContext new_owner; + public Name_Context new_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode SERVER() { return getToken(PostgreSQLParser.SERVER, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode VERSION() { return getToken(PostgreSQLParser.VERSION, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode OPTIONS() { return getToken(PostgreSQLParser.OPTIONS, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Alter_server_options_listContext alter_server_options_list() { + return getRuleContext(Alter_server_options_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Alter_server_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_server_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_server_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_server_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_server_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_server_stmtContext alter_server_stmt() throws RecognitionException { + Alter_server_stmtContext _localctx = new Alter_server_stmtContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_alter_server_stmt); + int _la; + try { + setState(1557); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,100,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1527); + match(ALTER); + setState(1528); + match(SERVER); + setState(1529); + ((Alter_server_stmtContext)_localctx).name = identifier(0); + setState(1541); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) { + case 1: + { + { + setState(1530); + match(VERSION); + setState(1531); + match(SINGLEQ_STRING_LITERAL); + } + } + break; + case 2: + { + { + setState(1534); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VERSION) { + { + setState(1532); + match(VERSION); + setState(1533); + match(SINGLEQ_STRING_LITERAL); + } + } + + { + setState(1536); + match(OPTIONS); + setState(1537); + match(OPEN_PAREN); + setState(1538); + alter_server_options_list(); + setState(1539); + match(CLOSE_PAREN); + } + } + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1543); + match(ALTER); + setState(1544); + match(SERVER); + setState(1545); + ((Alter_server_stmtContext)_localctx).name = identifier(0); + setState(1546); + match(OWNER); + setState(1547); + match(TO); + setState(1548); + ((Alter_server_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1550); + match(ALTER); + setState(1551); + match(SERVER); + setState(1552); + ((Alter_server_stmtContext)_localctx).name = identifier(0); + setState(1553); + match(RENAME); + setState(1554); + match(TO); + setState(1555); + ((Alter_server_stmtContext)_localctx).new_name = name_(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_statistics_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_owner; + public IdentifierContext new_name; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode STATISTICS() { return getToken(PostgreSQLParser.STATISTICS, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_statistics_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_statistics_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_statistics_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_statistics_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_statistics_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_statistics_stmtContext alter_statistics_stmt() throws RecognitionException { + Alter_statistics_stmtContext _localctx = new Alter_statistics_stmtContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_alter_statistics_stmt); + try { + setState(1583); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,102,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1559); + match(ALTER); + setState(1560); + match(STATISTICS); + setState(1561); + ((Alter_statistics_stmtContext)_localctx).name = identifier(0); + setState(1562); + match(OWNER); + setState(1563); + match(TO); + setState(1567); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1564); + ((Alter_statistics_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(1565); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(1566); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1569); + match(ALTER); + setState(1570); + match(STATISTICS); + setState(1571); + ((Alter_statistics_stmtContext)_localctx).name = identifier(0); + setState(1572); + match(RENAME); + setState(1573); + match(TO); + setState(1574); + ((Alter_statistics_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1576); + match(ALTER); + setState(1577); + match(STATISTICS); + setState(1578); + ((Alter_statistics_stmtContext)_localctx).name = identifier(0); + setState(1579); + match(SET); + setState(1580); + match(SCHEMA); + setState(1581); + ((Alter_statistics_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_subscription_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Param_valueContext conninfo; + public Name_listContext publication_name; + public Role_nameContext new_owner; + public IdentifierContext new_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode SUBSCRIPTION() { return getToken(PostgreSQLParser.SUBSCRIPTION, 0); } + public TerminalNode CONNECTION() { return getToken(PostgreSQLParser.CONNECTION, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class,0); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode PUBLICATION() { return getToken(PostgreSQLParser.PUBLICATION, 0); } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode REFRESH() { return getToken(PostgreSQLParser.REFRESH, 0); } + public TerminalNode ENABLE() { return getToken(PostgreSQLParser.ENABLE, 0); } + public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public Alter_subscription_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_subscription_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_subscription_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_subscription_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_subscription_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_subscription_stmtContext alter_subscription_stmt() throws RecognitionException { + Alter_subscription_stmtContext _localctx = new Alter_subscription_stmtContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_alter_subscription_stmt); + int _la; + try { + setState(1648); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,105,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1585); + match(ALTER); + setState(1586); + match(SUBSCRIPTION); + setState(1587); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1588); + match(CONNECTION); + setState(1589); + ((Alter_subscription_stmtContext)_localctx).conninfo = param_value(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1591); + match(ALTER); + setState(1592); + match(SUBSCRIPTION); + setState(1593); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1594); + match(SET); + setState(1595); + match(PUBLICATION); + setState(1596); + ((Alter_subscription_stmtContext)_localctx).publication_name = name_list(); + setState(1602); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(1597); + match(WITH); + setState(1598); + match(OPEN_PAREN); + setState(1599); + option_list(); + setState(1600); + match(CLOSE_PAREN); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1604); + match(ALTER); + setState(1605); + match(SUBSCRIPTION); + setState(1606); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1607); + match(REFRESH); + setState(1608); + match(PUBLICATION); + setState(1614); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(1609); + match(WITH); + setState(1610); + match(OPEN_PAREN); + setState(1611); + option_list(); + setState(1612); + match(CLOSE_PAREN); + } + } + + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1616); + match(ALTER); + setState(1617); + match(SUBSCRIPTION); + setState(1618); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1619); + match(ENABLE); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1621); + match(ALTER); + setState(1622); + match(SUBSCRIPTION); + setState(1623); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1624); + match(DISABLE_P); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1626); + match(ALTER); + setState(1627); + match(SUBSCRIPTION); + setState(1628); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1629); + match(SET); + setState(1630); + match(OPEN_PAREN); + setState(1631); + option_list(); + setState(1632); + match(CLOSE_PAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1634); + match(ALTER); + setState(1635); + match(SUBSCRIPTION); + setState(1636); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1637); + match(OWNER); + setState(1638); + match(TO); + setState(1639); + ((Alter_subscription_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1641); + match(ALTER); + setState(1642); + match(SUBSCRIPTION); + setState(1643); + ((Alter_subscription_stmtContext)_localctx).name = identifier(0); + setState(1644); + match(RENAME); + setState(1645); + match(TO); + setState(1646); + ((Alter_subscription_stmtContext)_localctx).new_name = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_system_stmtContext extends ParserRuleContext { + public Token param; + public Param_valueContext value; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode SYSTEM() { return getToken(PostgreSQLParser.SYSTEM, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode IDENTIFIER() { return getToken(PostgreSQLParser.IDENTIFIER, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class,0); + } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public Alter_system_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_system_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_system_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_system_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_system_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_system_stmtContext alter_system_stmt() throws RecognitionException { + Alter_system_stmtContext _localctx = new Alter_system_stmtContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_alter_system_stmt); + int _la; + try { + setState(1664); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,106,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1650); + match(ALTER); + setState(1651); + match(SYSTEM); + setState(1652); + match(SET); + setState(1653); + ((Alter_system_stmtContext)_localctx).param = match(IDENTIFIER); + setState(1654); + _la = _input.LA(1); + if ( !(_la==TO || _la==EQUAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1655); + ((Alter_system_stmtContext)_localctx).value = param_value(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1656); + match(ALTER); + setState(1657); + match(SYSTEM); + setState(1658); + match(RESET); + setState(1659); + ((Alter_system_stmtContext)_localctx).param = match(IDENTIFIER); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1660); + match(ALTER); + setState(1661); + match(SYSTEM); + setState(1662); + match(RESET); + setState(1663); + match(ALL); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_table_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_table_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_table_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_table_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_table_stmtContext alter_table_stmt() throws RecognitionException { + Alter_table_stmtContext _localctx = new Alter_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_alter_table_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1666); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_tablespace_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_owner; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public Alter_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_tablespace_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_tablespace_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_tablespace_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_tablespace_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws RecognitionException { + Alter_tablespace_stmtContext _localctx = new Alter_tablespace_stmtContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_alter_tablespace_stmt); + try { + setState(1701); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,108,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1668); + match(ALTER); + setState(1669); + match(TABLESPACE); + setState(1670); + ((Alter_tablespace_stmtContext)_localctx).name = identifier(0); + setState(1671); + match(RENAME); + setState(1672); + match(TO); + setState(1673); + ((Alter_tablespace_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1675); + match(ALTER); + setState(1676); + match(TABLESPACE); + setState(1677); + ((Alter_tablespace_stmtContext)_localctx).name = identifier(0); + setState(1678); + match(OWNER); + setState(1679); + match(TO); + setState(1683); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(1680); + ((Alter_tablespace_stmtContext)_localctx).new_owner = identifier(0); + } + break; + case CURRENT_USER: + { + setState(1681); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(1682); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1685); + match(ALTER); + setState(1686); + match(TABLESPACE); + setState(1687); + ((Alter_tablespace_stmtContext)_localctx).name = identifier(0); + setState(1688); + match(SET); + setState(1689); + match(OPEN_PAREN); + setState(1690); + option_list(); + setState(1691); + match(CLOSE_PAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1693); + match(ALTER); + setState(1694); + match(TABLESPACE); + setState(1695); + ((Alter_tablespace_stmtContext)_localctx).name = identifier(0); + setState(1696); + match(RESET); + setState(1697); + match(OPEN_PAREN); + setState(1698); + identifier_list(); + setState(1699); + match(CLOSE_PAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_config_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Identifier_listContext token_types; + public Identifier_listContext dictionary_names; + public IdentifierContext old_dictionary; + public IdentifierContext new_dictionary; + public IdentifierContext new_name; + public Role_nameContext new_owner; + public IdentifierContext new_schema; + public List ALTER() { return getTokens(PostgreSQLParser.ALTER); } + public TerminalNode ALTER(int i) { + return getToken(PostgreSQLParser.ALTER, i); + } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode CONFIGURATION() { return getToken(PostgreSQLParser.CONFIGURATION, 0); } + public TerminalNode ADD() { return getToken(PostgreSQLParser.ADD, 0); } + public TerminalNode MAPPING() { return getToken(PostgreSQLParser.MAPPING, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List identifier_list() { + return getRuleContexts(Identifier_listContext.class); + } + public Identifier_listContext identifier_list(int i) { + return getRuleContext(Identifier_listContext.class,i); + } + public TerminalNode REPLACE() { return getToken(PostgreSQLParser.REPLACE, 0); } + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_text_search_config_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_text_search_config_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_text_search_config_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_text_search_config_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_config_stmtContext alter_text_search_config_stmt() throws RecognitionException { + Alter_text_search_config_stmtContext _localctx = new Alter_text_search_config_stmtContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_alter_text_search_config_stmt); + int _la; + try { + setState(1794); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,110,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1703); + match(ALTER); + setState(1704); + match(TEXT); + setState(1705); + match(SEARCH); + setState(1706); + match(CONFIGURATION); + setState(1707); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1708); + match(ADD); + setState(1709); + match(MAPPING); + setState(1710); + match(FOR); + setState(1711); + ((Alter_text_search_config_stmtContext)_localctx).token_types = identifier_list(); + setState(1712); + match(WITH); + setState(1713); + ((Alter_text_search_config_stmtContext)_localctx).dictionary_names = identifier_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1715); + match(ALTER); + setState(1716); + match(TEXT); + setState(1717); + match(SEARCH); + setState(1718); + match(CONFIGURATION); + setState(1719); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1720); + match(ALTER); + setState(1721); + match(MAPPING); + setState(1722); + match(FOR); + setState(1723); + ((Alter_text_search_config_stmtContext)_localctx).token_types = identifier_list(); + setState(1724); + match(WITH); + setState(1725); + ((Alter_text_search_config_stmtContext)_localctx).dictionary_names = identifier_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1727); + match(ALTER); + setState(1728); + match(TEXT); + setState(1729); + match(SEARCH); + setState(1730); + match(CONFIGURATION); + setState(1731); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1732); + match(ALTER); + setState(1733); + match(MAPPING); + setState(1734); + match(REPLACE); + setState(1735); + ((Alter_text_search_config_stmtContext)_localctx).old_dictionary = identifier(0); + setState(1736); + match(WITH); + setState(1737); + ((Alter_text_search_config_stmtContext)_localctx).new_dictionary = identifier(0); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1739); + match(ALTER); + setState(1740); + match(TEXT); + setState(1741); + match(SEARCH); + setState(1742); + match(CONFIGURATION); + setState(1743); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1744); + match(ALTER); + setState(1745); + match(MAPPING); + setState(1746); + match(FOR); + setState(1747); + ((Alter_text_search_config_stmtContext)_localctx).token_types = identifier_list(); + setState(1748); + match(REPLACE); + setState(1749); + ((Alter_text_search_config_stmtContext)_localctx).old_dictionary = identifier(0); + setState(1750); + match(WITH); + setState(1751); + ((Alter_text_search_config_stmtContext)_localctx).new_dictionary = identifier(0); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1753); + match(ALTER); + setState(1754); + match(TEXT); + setState(1755); + match(SEARCH); + setState(1756); + match(CONFIGURATION); + setState(1757); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1758); + match(DROP); + setState(1759); + match(MAPPING); + setState(1762); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1760); + match(IF); + setState(1761); + match(EXISTS); + } + } + + setState(1764); + match(FOR); + setState(1765); + ((Alter_text_search_config_stmtContext)_localctx).token_types = identifier_list(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1767); + match(ALTER); + setState(1768); + match(TEXT); + setState(1769); + match(SEARCH); + setState(1770); + match(CONFIGURATION); + setState(1771); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1772); + match(RENAME); + setState(1773); + match(TO); + setState(1774); + ((Alter_text_search_config_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1776); + match(ALTER); + setState(1777); + match(TEXT); + setState(1778); + match(SEARCH); + setState(1779); + match(CONFIGURATION); + setState(1780); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1781); + match(OWNER); + setState(1782); + match(TO); + setState(1783); + ((Alter_text_search_config_stmtContext)_localctx).new_owner = role_name(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1785); + match(ALTER); + setState(1786); + match(TEXT); + setState(1787); + match(SEARCH); + setState(1788); + match(CONFIGURATION); + setState(1789); + ((Alter_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(1790); + match(SET); + setState(1791); + match(SCHEMA); + setState(1792); + ((Alter_text_search_config_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_dict_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_text_search_dict_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_text_search_dict_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_text_search_dict_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_text_search_dict_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_dict_stmtContext alter_text_search_dict_stmt() throws RecognitionException { + Alter_text_search_dict_stmtContext _localctx = new Alter_text_search_dict_stmtContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_alter_text_search_dict_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1796); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_parser_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_text_search_parser_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_text_search_parser_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_text_search_parser_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_text_search_parser_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_parser_stmtContext alter_text_search_parser_stmt() throws RecognitionException { + Alter_text_search_parser_stmtContext _localctx = new Alter_text_search_parser_stmtContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_alter_text_search_parser_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1798); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_text_search_template_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext new_name; + public IdentifierContext new_schema; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode TEMPLATE() { return getToken(PostgreSQLParser.TEMPLATE, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Alter_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_text_search_template_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_text_search_template_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_text_search_template_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_text_search_template_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_text_search_template_stmtContext alter_text_search_template_stmt() throws RecognitionException { + Alter_text_search_template_stmtContext _localctx = new Alter_text_search_template_stmtContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_alter_text_search_template_stmt); + try { + setState(1818); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1800); + match(ALTER); + setState(1801); + match(TEXT); + setState(1802); + match(SEARCH); + setState(1803); + match(TEMPLATE); + setState(1804); + ((Alter_text_search_template_stmtContext)_localctx).name = identifier(0); + setState(1805); + match(RENAME); + setState(1806); + match(TO); + setState(1807); + ((Alter_text_search_template_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1809); + match(ALTER); + setState(1810); + match(TEXT); + setState(1811); + match(SEARCH); + setState(1812); + match(TEMPLATE); + setState(1813); + ((Alter_text_search_template_stmtContext)_localctx).name = identifier(0); + setState(1814); + match(SET); + setState(1815); + match(SCHEMA); + setState(1816); + ((Alter_text_search_template_stmtContext)_localctx).new_schema = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + public IdentifierContext new_name; + public IdentifierContext extension_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public List ON() { return getTokens(PostgreSQLParser.ON); } + public TerminalNode ON(int i) { + return getToken(PostgreSQLParser.ON, i); + } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode DEPENDS() { return getToken(PostgreSQLParser.DEPENDS, 0); } + public TerminalNode EXTENSION() { return getToken(PostgreSQLParser.EXTENSION, 0); } + public Alter_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_trigger_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_trigger_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_trigger_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_trigger_stmtContext alter_trigger_stmt() throws RecognitionException { + Alter_trigger_stmtContext _localctx = new Alter_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_alter_trigger_stmt); + try { + setState(1839); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,112,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1820); + match(ALTER); + setState(1821); + match(TRIGGER); + setState(1822); + ((Alter_trigger_stmtContext)_localctx).name = identifier(0); + setState(1823); + match(ON); + setState(1824); + ((Alter_trigger_stmtContext)_localctx).table_name = identifier(0); + setState(1825); + match(RENAME); + setState(1826); + match(TO); + setState(1827); + ((Alter_trigger_stmtContext)_localctx).new_name = identifier(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1829); + match(ALTER); + setState(1830); + match(TRIGGER); + setState(1831); + ((Alter_trigger_stmtContext)_localctx).name = identifier(0); + setState(1832); + match(ON); + setState(1833); + ((Alter_trigger_stmtContext)_localctx).table_name = identifier(0); + setState(1834); + match(DEPENDS); + setState(1835); + match(ON); + setState(1836); + match(EXTENSION); + setState(1837); + ((Alter_trigger_stmtContext)_localctx).extension_name = identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_type_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_type_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_type_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_type_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_type_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_type_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_type_stmtContext alter_type_stmt() throws RecognitionException { + Alter_type_stmtContext _localctx = new Alter_type_stmtContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_alter_type_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1841); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_user_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_user_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_user_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_user_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_user_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_user_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_user_stmtContext alter_user_stmt() throws RecognitionException { + Alter_user_stmtContext _localctx = new Alter_user_stmtContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_alter_user_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1843); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_user_mapping_stmtContext extends ParserRuleContext { + public Role_nameContext user; + public IdentifierContext server_name; + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode USER() { return getToken(PostgreSQLParser.USER, 0); } + public TerminalNode MAPPING() { return getToken(PostgreSQLParser.MAPPING, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode SERVER() { return getToken(PostgreSQLParser.SERVER, 0); } + public TerminalNode OPTIONS() { return getToken(PostgreSQLParser.OPTIONS, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Alter_server_options_listContext alter_server_options_list() { + return getRuleContext(Alter_server_options_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Alter_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_user_mapping_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_user_mapping_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_user_mapping_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_user_mapping_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_user_mapping_stmtContext alter_user_mapping_stmt() throws RecognitionException { + Alter_user_mapping_stmtContext _localctx = new Alter_user_mapping_stmtContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_alter_user_mapping_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1845); + match(ALTER); + setState(1846); + match(USER); + setState(1847); + match(MAPPING); + setState(1848); + match(FOR); + setState(1849); + ((Alter_user_mapping_stmtContext)_localctx).user = role_name(); + setState(1850); + match(SERVER); + setState(1851); + ((Alter_user_mapping_stmtContext)_localctx).server_name = identifier(0); + setState(1852); + match(OPTIONS); + { + setState(1853); + match(OPEN_PAREN); + setState(1854); + alter_server_options_list(); + setState(1855); + match(CLOSE_PAREN); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Alter_view_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Alter_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alter_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlter_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlter_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlter_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Alter_view_stmtContext alter_view_stmt() throws RecognitionException { + Alter_view_stmtContext _localctx = new Alter_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_alter_view_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1857); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Analyze_stmtContext extends ParserRuleContext { + public TerminalNode ANALYZE() { return getToken(PostgreSQLParser.ANALYZE, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public TerminalNode VERBOSE() { return getToken(PostgreSQLParser.VERBOSE, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Analyze_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_analyze_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAnalyze_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAnalyze_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAnalyze_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Analyze_stmtContext analyze_stmt() throws RecognitionException { + Analyze_stmtContext _localctx = new Analyze_stmtContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_analyze_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1859); + match(ANALYZE); + setState(1861); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VERBOSE) { + { + setState(1860); + match(VERBOSE); + } + } + + setState(1863); + table_name_(); + setState(1868); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(1864); + match(OPEN_PAREN); + setState(1865); + name_list(); + setState(1866); + match(CLOSE_PAREN); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Close_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Close_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_close_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterClose_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitClose_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitClose_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Close_stmtContext close_stmt() throws RecognitionException { + Close_stmtContext _localctx = new Close_stmtContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_close_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1870); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Cluster_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Cluster_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_cluster_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCluster_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCluster_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCluster_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Cluster_stmtContext cluster_stmt() throws RecognitionException { + Cluster_stmtContext _localctx = new Cluster_stmtContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_cluster_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1872); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Comment_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Comment_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comment_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterComment_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitComment_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitComment_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Comment_stmtContext comment_stmt() throws RecognitionException { + Comment_stmtContext _localctx = new Comment_stmtContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_comment_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1874); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Commit_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Commit_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_commit_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCommit_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCommit_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCommit_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Commit_stmtContext commit_stmt() throws RecognitionException { + Commit_stmtContext _localctx = new Commit_stmtContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_commit_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1876); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Commit_prepared_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Commit_prepared_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_commit_prepared_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCommit_prepared_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCommit_prepared_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCommit_prepared_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Commit_prepared_stmtContext commit_prepared_stmt() throws RecognitionException { + Commit_prepared_stmtContext _localctx = new Commit_prepared_stmtContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_commit_prepared_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1878); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Copy_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Copy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_copy_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCopy_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCopy_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCopy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Copy_stmtContext copy_stmt() throws RecognitionException { + Copy_stmtContext _localctx = new Copy_stmtContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_copy_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1880); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_stmtContext extends ParserRuleContext { + public Create_access_method_stmtContext create_access_method_stmt() { + return getRuleContext(Create_access_method_stmtContext.class,0); + } + public Create_aggregate_stmtContext create_aggregate_stmt() { + return getRuleContext(Create_aggregate_stmtContext.class,0); + } + public Create_cast_stmtContext create_cast_stmt() { + return getRuleContext(Create_cast_stmtContext.class,0); + } + public Create_collation_stmtContext create_collation_stmt() { + return getRuleContext(Create_collation_stmtContext.class,0); + } + public Create_conversion_stmtContext create_conversion_stmt() { + return getRuleContext(Create_conversion_stmtContext.class,0); + } + public Create_database_stmtContext create_database_stmt() { + return getRuleContext(Create_database_stmtContext.class,0); + } + public Create_domain_stmtContext create_domain_stmt() { + return getRuleContext(Create_domain_stmtContext.class,0); + } + public Create_event_trigger_stmtContext create_event_trigger_stmt() { + return getRuleContext(Create_event_trigger_stmtContext.class,0); + } + public Create_foreign_data_stmtContext create_foreign_data_stmt() { + return getRuleContext(Create_foreign_data_stmtContext.class,0); + } + public Create_foreign_table_stmtContext create_foreign_table_stmt() { + return getRuleContext(Create_foreign_table_stmtContext.class,0); + } + public Create_function_stmtContext create_function_stmt() { + return getRuleContext(Create_function_stmtContext.class,0); + } + public Create_group_stmtContext create_group_stmt() { + return getRuleContext(Create_group_stmtContext.class,0); + } + public Create_index_stmtContext create_index_stmt() { + return getRuleContext(Create_index_stmtContext.class,0); + } + public Create_language_stmtContext create_language_stmt() { + return getRuleContext(Create_language_stmtContext.class,0); + } + public Create_materialized_view_stmtContext create_materialized_view_stmt() { + return getRuleContext(Create_materialized_view_stmtContext.class,0); + } + public Create_operator_stmtContext create_operator_stmt() { + return getRuleContext(Create_operator_stmtContext.class,0); + } + public Create_operator_class_stmtContext create_operator_class_stmt() { + return getRuleContext(Create_operator_class_stmtContext.class,0); + } + public Create_operator_family_stmtContext create_operator_family_stmt() { + return getRuleContext(Create_operator_family_stmtContext.class,0); + } + public Create_policy_stmtContext create_policy_stmt() { + return getRuleContext(Create_policy_stmtContext.class,0); + } + public Create_role_stmtContext create_role_stmt() { + return getRuleContext(Create_role_stmtContext.class,0); + } + public Create_rule_stmtContext create_rule_stmt() { + return getRuleContext(Create_rule_stmtContext.class,0); + } + public Create_schema_stmtContext create_schema_stmt() { + return getRuleContext(Create_schema_stmtContext.class,0); + } + public Create_sequence_stmtContext create_sequence_stmt() { + return getRuleContext(Create_sequence_stmtContext.class,0); + } + public Create_server_stmtContext create_server_stmt() { + return getRuleContext(Create_server_stmtContext.class,0); + } + public Create_statistics_stmtContext create_statistics_stmt() { + return getRuleContext(Create_statistics_stmtContext.class,0); + } + public Create_subscription_stmtContext create_subscription_stmt() { + return getRuleContext(Create_subscription_stmtContext.class,0); + } + public Create_table_stmtContext create_table_stmt() { + return getRuleContext(Create_table_stmtContext.class,0); + } + public Create_table_as_stmtContext create_table_as_stmt() { + return getRuleContext(Create_table_as_stmtContext.class,0); + } + public Create_tablespace_stmtContext create_tablespace_stmt() { + return getRuleContext(Create_tablespace_stmtContext.class,0); + } + public Create_text_search_config_stmtContext create_text_search_config_stmt() { + return getRuleContext(Create_text_search_config_stmtContext.class,0); + } + public Create_text_search_dict_stmtContext create_text_search_dict_stmt() { + return getRuleContext(Create_text_search_dict_stmtContext.class,0); + } + public Create_text_search_parser_stmtContext create_text_search_parser_stmt() { + return getRuleContext(Create_text_search_parser_stmtContext.class,0); + } + public Create_text_search_template_stmtContext create_text_search_template_stmt() { + return getRuleContext(Create_text_search_template_stmtContext.class,0); + } + public Create_transform_stmtContext create_transform_stmt() { + return getRuleContext(Create_transform_stmtContext.class,0); + } + public Create_trigger_stmtContext create_trigger_stmt() { + return getRuleContext(Create_trigger_stmtContext.class,0); + } + public Create_type_stmtContext create_type_stmt() { + return getRuleContext(Create_type_stmtContext.class,0); + } + public Create_user_stmtContext create_user_stmt() { + return getRuleContext(Create_user_stmtContext.class,0); + } + public Create_user_mapping_stmtContext create_user_mapping_stmt() { + return getRuleContext(Create_user_mapping_stmtContext.class,0); + } + public Create_view_stmtContext create_view_stmt() { + return getRuleContext(Create_view_stmtContext.class,0); + } + public Create_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_stmtContext create_stmt() throws RecognitionException { + Create_stmtContext _localctx = new Create_stmtContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_create_stmt); + try { + setState(1921); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,115,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1882); + create_access_method_stmt(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1883); + create_aggregate_stmt(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1884); + create_cast_stmt(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1885); + create_collation_stmt(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1886); + create_conversion_stmt(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1887); + create_database_stmt(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1888); + create_domain_stmt(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1889); + create_event_trigger_stmt(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1890); + create_foreign_data_stmt(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1891); + create_foreign_table_stmt(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1892); + create_function_stmt(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(1893); + create_group_stmt(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(1894); + create_index_stmt(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(1895); + create_language_stmt(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(1896); + create_materialized_view_stmt(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(1897); + create_operator_stmt(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(1898); + create_operator_class_stmt(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(1899); + create_operator_family_stmt(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(1900); + create_policy_stmt(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(1901); + create_role_stmt(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(1902); + create_rule_stmt(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(1903); + create_schema_stmt(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(1904); + create_sequence_stmt(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(1905); + create_server_stmt(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(1906); + create_statistics_stmt(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(1907); + create_subscription_stmt(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(1908); + create_table_stmt(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(1909); + create_table_as_stmt(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(1910); + create_tablespace_stmt(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(1911); + create_text_search_config_stmt(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(1912); + create_text_search_dict_stmt(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(1913); + create_text_search_parser_stmt(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(1914); + create_text_search_template_stmt(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(1915); + create_transform_stmt(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(1916); + create_trigger_stmt(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(1917); + create_type_stmt(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(1918); + create_user_stmt(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(1919); + create_user_mapping_stmt(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(1920); + create_view_stmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_access_method_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode ACCESS() { return getToken(PostgreSQLParser.ACCESS, 0); } + public TerminalNode METHOD() { return getToken(PostgreSQLParser.METHOD, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public TerminalNode TYPE() { return getToken(PostgreSQLParser.TYPE, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public TerminalNode HANDLER() { return getToken(PostgreSQLParser.HANDLER, 0); } + public Create_access_method_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_access_method_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_access_method_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_access_method_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_access_method_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_access_method_stmtContext create_access_method_stmt() throws RecognitionException { + Create_access_method_stmtContext _localctx = new Create_access_method_stmtContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_create_access_method_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(1923); + match(CREATE); + setState(1924); + match(ACCESS); + setState(1925); + match(METHOD); + setState(1926); + name_(); + setState(1927); + match(TYPE); + setState(1928); + match(INDEX); + setState(1929); + match(HANDLER); + setState(1930); + name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_aggregate_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode AGGREGATE() { return getToken(PostgreSQLParser.AGGREGATE, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List data_type_list() { + return getRuleContexts(Data_type_listContext.class); + } + public Data_type_listContext data_type_list(int i) { + return getRuleContext(Data_type_listContext.class,i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode SFUNC() { return getToken(PostgreSQLParser.SFUNC, 0); } + public List EQUAL() { return getTokens(PostgreSQLParser.EQUAL); } + public TerminalNode EQUAL(int i) { + return getToken(PostgreSQLParser.EQUAL, i); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public TerminalNode STYPE() { return getToken(PostgreSQLParser.STYPE, 0); } + public TerminalNode SSPACE() { return getToken(PostgreSQLParser.SSPACE, 0); } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public TerminalNode FINALFUNC() { return getToken(PostgreSQLParser.FINALFUNC, 0); } + public TerminalNode FINALFUNC_EXTRA() { return getToken(PostgreSQLParser.FINALFUNC_EXTRA, 0); } + public TerminalNode COMBINEFUNC() { return getToken(PostgreSQLParser.COMBINEFUNC, 0); } + public TerminalNode SERIALFUNC() { return getToken(PostgreSQLParser.SERIALFUNC, 0); } + public TerminalNode DESERIALFUNC() { return getToken(PostgreSQLParser.DESERIALFUNC, 0); } + public TerminalNode INITCOND() { return getToken(PostgreSQLParser.INITCOND, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode MSFUNC() { return getToken(PostgreSQLParser.MSFUNC, 0); } + public TerminalNode MINVFUNC() { return getToken(PostgreSQLParser.MINVFUNC, 0); } + public TerminalNode MSTYPE() { return getToken(PostgreSQLParser.MSTYPE, 0); } + public TerminalNode MSSPACE() { return getToken(PostgreSQLParser.MSSPACE, 0); } + public TerminalNode MFINALFUNC() { return getToken(PostgreSQLParser.MFINALFUNC, 0); } + public TerminalNode MFINALFUNC_EXTRA() { return getToken(PostgreSQLParser.MFINALFUNC_EXTRA, 0); } + public TerminalNode MINITCOND() { return getToken(PostgreSQLParser.MINITCOND, 0); } + public TerminalNode SORTOP() { return getToken(PostgreSQLParser.SORTOP, 0); } + public TerminalNode PARALLEL() { return getToken(PostgreSQLParser.PARALLEL, 0); } + public List IN() { return getTokens(PostgreSQLParser.IN); } + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + public List VARIADIC() { return getTokens(PostgreSQLParser.VARIADIC); } + public TerminalNode VARIADIC(int i) { + return getToken(PostgreSQLParser.VARIADIC, i); + } + public TerminalNode SAFE() { return getToken(PostgreSQLParser.SAFE, 0); } + public TerminalNode UNSAFE() { return getToken(PostgreSQLParser.UNSAFE, 0); } + public TerminalNode ORDER() { return getToken(PostgreSQLParser.ORDER, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public TerminalNode HYPOTHETICAL() { return getToken(PostgreSQLParser.HYPOTHETICAL, 0); } + public TerminalNode BASETYPE() { return getToken(PostgreSQLParser.BASETYPE, 0); } + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class,0); + } + public Create_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_aggregate_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_aggregate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_aggregate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_aggregate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_aggregate_stmtContext create_aggregate_stmt() throws RecognitionException { + Create_aggregate_stmtContext _localctx = new Create_aggregate_stmtContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_create_aggregate_stmt); + int _la; + try { + setState(2214); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,160,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(1932); + match(CREATE); + setState(1933); + match(AGGREGATE); + setState(1934); + name_(); + setState(1935); + match(OPEN_PAREN); + setState(1937); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==VARIADIC) { + { + setState(1936); + _la = _input.LA(1); + if ( !(_la==IN || _la==VARIADIC) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(1940); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) { + case 1: + { + setState(1939); + name_(); + } + break; + } + setState(1942); + data_type_list(); + setState(1943); + match(CLOSE_PAREN); + setState(1944); + match(OPEN_PAREN); + setState(1945); + match(SFUNC); + setState(1946); + match(EQUAL); + setState(1947); + identifier(0); + setState(1948); + match(COMMA); + setState(1949); + match(STYPE); + setState(1950); + match(EQUAL); + setState(1951); + identifier(0); + setState(1956); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,118,_ctx) ) { + case 1: + { + setState(1952); + match(COMMA); + setState(1953); + match(SSPACE); + setState(1954); + match(EQUAL); + setState(1955); + match(INTEGER_LITERAL); + } + break; + } + setState(1962); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) { + case 1: + { + setState(1958); + match(COMMA); + setState(1959); + match(FINALFUNC); + setState(1960); + match(EQUAL); + setState(1961); + identifier(0); + } + break; + } + setState(1966); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) { + case 1: + { + setState(1964); + match(COMMA); + setState(1965); + match(FINALFUNC_EXTRA); + } + break; + } + setState(1972); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,121,_ctx) ) { + case 1: + { + setState(1968); + match(COMMA); + setState(1969); + match(COMBINEFUNC); + setState(1970); + match(EQUAL); + setState(1971); + identifier(0); + } + break; + } + setState(1978); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) { + case 1: + { + setState(1974); + match(COMMA); + setState(1975); + match(SERIALFUNC); + setState(1976); + match(EQUAL); + setState(1977); + identifier(0); + } + break; + } + setState(1984); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) { + case 1: + { + setState(1980); + match(COMMA); + setState(1981); + match(DESERIALFUNC); + setState(1982); + match(EQUAL); + setState(1983); + identifier(0); + } + break; + } + setState(1990); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) { + case 1: + { + setState(1986); + match(COMMA); + setState(1987); + match(INITCOND); + setState(1988); + match(EQUAL); + setState(1989); + expr(0); + } + break; + } + setState(1996); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) { + case 1: + { + setState(1992); + match(COMMA); + setState(1993); + match(MSFUNC); + setState(1994); + match(EQUAL); + setState(1995); + identifier(0); + } + break; + } + setState(2002); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { + case 1: + { + setState(1998); + match(COMMA); + setState(1999); + match(MINVFUNC); + setState(2000); + match(EQUAL); + setState(2001); + identifier(0); + } + break; + } + setState(2008); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,127,_ctx) ) { + case 1: + { + setState(2004); + match(COMMA); + setState(2005); + match(MSTYPE); + setState(2006); + match(EQUAL); + setState(2007); + identifier(0); + } + break; + } + setState(2014); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) { + case 1: + { + setState(2010); + match(COMMA); + setState(2011); + match(MSSPACE); + setState(2012); + match(EQUAL); + setState(2013); + match(INTEGER_LITERAL); + } + break; + } + setState(2020); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,129,_ctx) ) { + case 1: + { + setState(2016); + match(COMMA); + setState(2017); + match(MFINALFUNC); + setState(2018); + match(EQUAL); + setState(2019); + identifier(0); + } + break; + } + setState(2024); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) { + case 1: + { + setState(2022); + match(COMMA); + setState(2023); + match(MFINALFUNC_EXTRA); + } + break; + } + setState(2030); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) { + case 1: + { + setState(2026); + match(COMMA); + setState(2027); + match(MINITCOND); + setState(2028); + match(EQUAL); + setState(2029); + identifier(0); + } + break; + } + setState(2036); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,132,_ctx) ) { + case 1: + { + setState(2032); + match(COMMA); + setState(2033); + match(SORTOP); + setState(2034); + match(EQUAL); + setState(2035); + identifier(0); + } + break; + } + setState(2042); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(2038); + match(COMMA); + setState(2039); + match(PARALLEL); + setState(2040); + match(EQUAL); + setState(2041); + _la = _input.LA(1); + if ( !(_la==SAFE || _la==UNSAFE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2044); + match(CLOSE_PAREN); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2046); + match(CREATE); + setState(2047); + match(AGGREGATE); + setState(2048); + name_(); + setState(2049); + match(OPEN_PAREN); + setState(2057); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(2051); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==VARIADIC) { + { + setState(2050); + _la = _input.LA(1); + if ( !(_la==IN || _la==VARIADIC) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2054); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,135,_ctx) ) { + case 1: + { + setState(2053); + name_(); + } + break; + } + setState(2056); + data_type_list(); + } + } + + setState(2059); + match(ORDER); + setState(2060); + match(BY); + setState(2062); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==VARIADIC) { + { + setState(2061); + _la = _input.LA(1); + if ( !(_la==IN || _la==VARIADIC) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2065); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,138,_ctx) ) { + case 1: + { + setState(2064); + name_(); + } + break; + } + setState(2067); + data_type_list(); + setState(2068); + match(CLOSE_PAREN); + setState(2069); + match(OPEN_PAREN); + setState(2070); + match(SFUNC); + setState(2071); + match(EQUAL); + setState(2072); + identifier(0); + setState(2073); + match(COMMA); + setState(2074); + match(STYPE); + setState(2075); + match(EQUAL); + setState(2076); + identifier(0); + setState(2081); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,139,_ctx) ) { + case 1: + { + setState(2077); + match(COMMA); + setState(2078); + match(SSPACE); + setState(2079); + match(EQUAL); + setState(2080); + match(INTEGER_LITERAL); + } + break; + } + setState(2087); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,140,_ctx) ) { + case 1: + { + setState(2083); + match(COMMA); + setState(2084); + match(FINALFUNC); + setState(2085); + match(EQUAL); + setState(2086); + identifier(0); + } + break; + } + setState(2091); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) { + case 1: + { + setState(2089); + match(COMMA); + setState(2090); + match(FINALFUNC_EXTRA); + } + break; + } + setState(2097); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,142,_ctx) ) { + case 1: + { + setState(2093); + match(COMMA); + setState(2094); + match(INITCOND); + setState(2095); + match(EQUAL); + setState(2096); + expr(0); + } + break; + } + setState(2103); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,143,_ctx) ) { + case 1: + { + setState(2099); + match(COMMA); + setState(2100); + match(PARALLEL); + setState(2101); + match(EQUAL); + setState(2102); + _la = _input.LA(1); + if ( !(_la==SAFE || _la==UNSAFE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(2107); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(2105); + match(COMMA); + setState(2106); + match(HYPOTHETICAL); + } + } + + setState(2109); + match(CLOSE_PAREN); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + { + setState(2111); + match(CREATE); + setState(2112); + match(AGGREGATE); + setState(2113); + name_(); + setState(2114); + match(OPEN_PAREN); + setState(2115); + match(BASETYPE); + setState(2116); + match(EQUAL); + setState(2117); + data_type(); + setState(2118); + match(COMMA); + setState(2119); + match(SFUNC); + setState(2120); + match(EQUAL); + setState(2121); + identifier(0); + setState(2122); + match(COMMA); + setState(2123); + match(STYPE); + setState(2124); + match(EQUAL); + setState(2125); + identifier(0); + setState(2130); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) { + case 1: + { + setState(2126); + match(COMMA); + setState(2127); + match(SSPACE); + setState(2128); + match(EQUAL); + setState(2129); + match(INTEGER_LITERAL); + } + break; + } + setState(2136); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { + case 1: + { + setState(2132); + match(COMMA); + setState(2133); + match(FINALFUNC); + setState(2134); + match(EQUAL); + setState(2135); + identifier(0); + } + break; + } + setState(2140); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) { + case 1: + { + setState(2138); + match(COMMA); + setState(2139); + match(FINALFUNC_EXTRA); + } + break; + } + setState(2146); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,148,_ctx) ) { + case 1: + { + setState(2142); + match(COMMA); + setState(2143); + match(COMBINEFUNC); + setState(2144); + match(EQUAL); + setState(2145); + identifier(0); + } + break; + } + setState(2152); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { + case 1: + { + setState(2148); + match(COMMA); + setState(2149); + match(SERIALFUNC); + setState(2150); + match(EQUAL); + setState(2151); + identifier(0); + } + break; + } + setState(2158); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { + case 1: + { + setState(2154); + match(COMMA); + setState(2155); + match(DESERIALFUNC); + setState(2156); + match(EQUAL); + setState(2157); + identifier(0); + } + break; + } + setState(2164); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,151,_ctx) ) { + case 1: + { + setState(2160); + match(COMMA); + setState(2161); + match(INITCOND); + setState(2162); + match(EQUAL); + setState(2163); + expr(0); + } + break; + } + setState(2170); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,152,_ctx) ) { + case 1: + { + setState(2166); + match(COMMA); + setState(2167); + match(MSFUNC); + setState(2168); + match(EQUAL); + setState(2169); + identifier(0); + } + break; + } + setState(2176); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,153,_ctx) ) { + case 1: + { + setState(2172); + match(COMMA); + setState(2173); + match(MINVFUNC); + setState(2174); + match(EQUAL); + setState(2175); + identifier(0); + } + break; + } + setState(2182); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,154,_ctx) ) { + case 1: + { + setState(2178); + match(COMMA); + setState(2179); + match(MSTYPE); + setState(2180); + match(EQUAL); + setState(2181); + identifier(0); + } + break; + } + setState(2188); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,155,_ctx) ) { + case 1: + { + setState(2184); + match(COMMA); + setState(2185); + match(MSSPACE); + setState(2186); + match(EQUAL); + setState(2187); + match(INTEGER_LITERAL); + } + break; + } + setState(2194); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,156,_ctx) ) { + case 1: + { + setState(2190); + match(COMMA); + setState(2191); + match(MFINALFUNC); + setState(2192); + match(EQUAL); + setState(2193); + identifier(0); + } + break; + } + setState(2198); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,157,_ctx) ) { + case 1: + { + setState(2196); + match(COMMA); + setState(2197); + match(MFINALFUNC_EXTRA); + } + break; + } + setState(2204); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + { + setState(2200); + match(COMMA); + setState(2201); + match(MINITCOND); + setState(2202); + match(EQUAL); + setState(2203); + identifier(0); + } + break; + } + setState(2210); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(2206); + match(COMMA); + setState(2207); + match(SORTOP); + setState(2208); + match(EQUAL); + setState(2209); + identifier(0); + } + } + + setState(2212); + match(CLOSE_PAREN); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_cast_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode CAST() { return getToken(PostgreSQLParser.CAST, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List data_type() { + return getRuleContexts(Data_typeContext.class); + } + public Data_typeContext data_type(int i) { + return getRuleContext(Data_typeContext.class,i); + } + public List AS() { return getTokens(PostgreSQLParser.AS); } + public TerminalNode AS(int i) { + return getToken(PostgreSQLParser.AS, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode ASSIGNMENT() { return getToken(PostgreSQLParser.ASSIGNMENT, 0); } + public TerminalNode IMPLICIT() { return getToken(PostgreSQLParser.IMPLICIT, 0); } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode FUNCTION() { return getToken(PostgreSQLParser.FUNCTION, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode WITHOUT() { return getToken(PostgreSQLParser.WITHOUT, 0); } + public TerminalNode INOUT() { return getToken(PostgreSQLParser.INOUT, 0); } + public Data_type_listContext data_type_list() { + return getRuleContext(Data_type_listContext.class,0); + } + public Create_cast_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_cast_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_cast_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_cast_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_cast_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_cast_stmtContext create_cast_stmt() throws RecognitionException { + Create_cast_stmtContext _localctx = new Create_cast_stmtContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_create_cast_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2216); + match(CREATE); + setState(2217); + match(CAST); + setState(2218); + match(OPEN_PAREN); + setState(2219); + data_type(); + setState(2220); + match(AS); + setState(2221); + data_type(); + setState(2222); + match(CLOSE_PAREN); + setState(2236); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { + case 1: + { + { + setState(2223); + match(WITH); + setState(2224); + match(FUNCTION); + setState(2225); + identifier(0); + setState(2230); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(2226); + match(OPEN_PAREN); + setState(2227); + data_type_list(); + setState(2228); + match(CLOSE_PAREN); + } + } + + } + } + break; + case 2: + { + { + setState(2232); + match(WITHOUT); + setState(2233); + match(FUNCTION); + } + } + break; + case 3: + { + { + setState(2234); + match(WITH); + setState(2235); + match(INOUT); + } + } + break; + } + setState(2242); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + case 1: + { + setState(2238); + match(AS); + setState(2239); + match(ASSIGNMENT); + } + break; + case 2: + { + setState(2240); + match(AS); + setState(2241); + match(IMPLICIT); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_collation_optContext extends ParserRuleContext { + public TerminalNode LOCALE() { return getToken(PostgreSQLParser.LOCALE, 0); } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode LC_COLLATE() { return getToken(PostgreSQLParser.LC_COLLATE, 0); } + public TerminalNode LC_CTYPE() { return getToken(PostgreSQLParser.LC_CTYPE, 0); } + public TerminalNode PROVIDER() { return getToken(PostgreSQLParser.PROVIDER, 0); } + public TerminalNode VERSION() { return getToken(PostgreSQLParser.VERSION, 0); } + public TerminalNode DOUBLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); } + public Create_collation_optContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_collation_opt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_collation_opt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_collation_opt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_collation_opt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_collation_optContext create_collation_opt() throws RecognitionException { + Create_collation_optContext _localctx = new Create_collation_optContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_create_collation_opt); + try { + setState(2262); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LOCALE: + enterOuterAlt(_localctx, 1); + { + setState(2244); + match(LOCALE); + setState(2245); + match(EQUAL); + setState(2246); + expr(0); + } + break; + case LC_COLLATE: + enterOuterAlt(_localctx, 2); + { + setState(2247); + match(LC_COLLATE); + setState(2248); + match(EQUAL); + setState(2249); + expr(0); + } + break; + case LC_CTYPE: + enterOuterAlt(_localctx, 3); + { + setState(2250); + match(LC_CTYPE); + setState(2251); + match(EQUAL); + setState(2252); + expr(0); + } + break; + case PROVIDER: + enterOuterAlt(_localctx, 4); + { + setState(2253); + match(PROVIDER); + setState(2254); + match(EQUAL); + setState(2255); + expr(0); + } + break; + case VERSION: + enterOuterAlt(_localctx, 5); + { + setState(2256); + match(VERSION); + setState(2257); + match(EQUAL); + setState(2258); + expr(0); + } + break; + case DOUBLEQ_STRING_LITERAL: + enterOuterAlt(_localctx, 6); + { + setState(2259); + match(DOUBLEQ_STRING_LITERAL); + setState(2260); + match(EQUAL); + setState(2261); + expr(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_collation_opt_listContext extends ParserRuleContext { + public List create_collation_opt() { + return getRuleContexts(Create_collation_optContext.class); + } + public Create_collation_optContext create_collation_opt(int i) { + return getRuleContext(Create_collation_optContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Create_collation_opt_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_collation_opt_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_collation_opt_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_collation_opt_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_collation_opt_list(this); + else return visitor.visitChildren(this); + } + } + + public final Create_collation_opt_listContext create_collation_opt_list() throws RecognitionException { + Create_collation_opt_listContext _localctx = new Create_collation_opt_listContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_create_collation_opt_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2264); + create_collation_opt(); + setState(2269); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2265); + match(COMMA); + setState(2266); + create_collation_opt(); + } + } + setState(2271); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_collation_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode COLLATION() { return getToken(PostgreSQLParser.COLLATION, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Create_collation_opt_listContext create_collation_opt_list() { + return getRuleContext(Create_collation_opt_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public Create_collation_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_collation_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_collation_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_collation_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_collation_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_collation_stmtContext create_collation_stmt() throws RecognitionException { + Create_collation_stmtContext _localctx = new Create_collation_stmtContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_create_collation_stmt); + int _la; + try { + setState(2295); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(2272); + match(CREATE); + setState(2273); + match(COLLATION); + setState(2277); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(2274); + match(IF); + setState(2275); + match(NOT); + setState(2276); + match(EXISTS); + } + } + + setState(2279); + name_(); + setState(2280); + match(OPEN_PAREN); + setState(2281); + create_collation_opt_list(); + setState(2282); + match(CLOSE_PAREN); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2284); + match(CREATE); + setState(2285); + match(COLLATION); + setState(2289); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(2286); + match(IF); + setState(2287); + match(NOT); + setState(2288); + match(EXISTS); + } + } + + setState(2291); + name_(); + setState(2292); + match(FROM); + setState(2293); + name_(); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_conversion_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode CONVERSION() { return getToken(PostgreSQLParser.CONVERSION, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public List SINGLEQ_STRING_LITERAL() { return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); } + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public Create_conversion_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_conversion_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_conversion_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_conversion_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_conversion_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_conversion_stmtContext create_conversion_stmt() throws RecognitionException { + Create_conversion_stmtContext _localctx = new Create_conversion_stmtContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_create_conversion_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2297); + match(CREATE); + setState(2299); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DEFAULT) { + { + setState(2298); + match(DEFAULT); + } + } + + setState(2301); + match(CONVERSION); + setState(2302); + identifier(0); + setState(2303); + match(FOR); + setState(2304); + match(SINGLEQ_STRING_LITERAL); + setState(2305); + match(TO); + setState(2306); + match(SINGLEQ_STRING_LITERAL); + setState(2307); + match(FROM); + setState(2308); + name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_database_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode DATABASE() { return getToken(PostgreSQLParser.DATABASE, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public List EQUAL() { return getTokens(PostgreSQLParser.EQUAL); } + public TerminalNode EQUAL(int i) { + return getToken(PostgreSQLParser.EQUAL, i); + } + public TerminalNode TEMPLATE() { return getToken(PostgreSQLParser.TEMPLATE, 0); } + public TerminalNode ENCODING() { return getToken(PostgreSQLParser.ENCODING, 0); } + public TerminalNode LC_COLLATE() { return getToken(PostgreSQLParser.LC_COLLATE, 0); } + public TerminalNode LC_CTYPE() { return getToken(PostgreSQLParser.LC_CTYPE, 0); } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public TerminalNode ALLOW_CONNECTIONS() { return getToken(PostgreSQLParser.ALLOW_CONNECTIONS, 0); } + public TerminalNode CONNECTION() { return getToken(PostgreSQLParser.CONNECTION, 0); } + public TerminalNode LIMIT() { return getToken(PostgreSQLParser.LIMIT, 0); } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public TerminalNode IS_TEMPLATE() { return getToken(PostgreSQLParser.IS_TEMPLATE, 0); } + public Create_database_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_database_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_database_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_database_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_database_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_database_stmtContext create_database_stmt() throws RecognitionException { + Create_database_stmtContext _localctx = new Create_database_stmtContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_create_database_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2310); + match(CREATE); + setState(2311); + match(DATABASE); + setState(2312); + name_(); + { + setState(2314); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2313); + match(WITH); + } + } + + setState(2319); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OWNER) { + { + setState(2316); + match(OWNER); + setState(2317); + match(EQUAL); + setState(2318); + name_(); + } + } + + setState(2324); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TEMPLATE) { + { + setState(2321); + match(TEMPLATE); + setState(2322); + match(EQUAL); + setState(2323); + name_(); + } + } + + setState(2329); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ENCODING) { + { + setState(2326); + match(ENCODING); + setState(2327); + match(EQUAL); + setState(2328); + name_(); + } + } + + setState(2334); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LC_COLLATE) { + { + setState(2331); + match(LC_COLLATE); + setState(2332); + match(EQUAL); + setState(2333); + name_(); + } + } + + setState(2339); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LC_CTYPE) { + { + setState(2336); + match(LC_CTYPE); + setState(2337); + match(EQUAL); + setState(2338); + name_(); + } + } + + setState(2344); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLESPACE) { + { + setState(2341); + match(TABLESPACE); + setState(2342); + match(EQUAL); + setState(2343); + name_(); + } + } + + setState(2349); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALLOW_CONNECTIONS) { + { + setState(2346); + match(ALLOW_CONNECTIONS); + setState(2347); + match(EQUAL); + setState(2348); + name_(); + } + } + + setState(2355); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CONNECTION) { + { + setState(2351); + match(CONNECTION); + setState(2352); + match(LIMIT); + setState(2353); + match(EQUAL); + setState(2354); + match(INTEGER_LITERAL); + } + } + + setState(2360); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS_TEMPLATE) { + { + setState(2357); + match(IS_TEMPLATE); + setState(2358); + match(EQUAL); + setState(2359); + match(INTEGER_LITERAL); + } + } + + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Domain_constraintContext extends ParserRuleContext { + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode NULL() { return getToken(PostgreSQLParser.NULL, 0); } + public TerminalNode CHECK() { return getToken(PostgreSQLParser.CHECK, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode CONSTRAINT() { return getToken(PostgreSQLParser.CONSTRAINT, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Domain_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_domain_constraint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDomain_constraint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDomain_constraint(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDomain_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Domain_constraintContext domain_constraint() throws RecognitionException { + Domain_constraintContext _localctx = new Domain_constraintContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_domain_constraint); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2364); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CONSTRAINT) { + { + setState(2362); + match(CONSTRAINT); + setState(2363); + name_(); + } + } + + setState(2374); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NOT: + { + setState(2366); + match(NOT); + setState(2367); + match(NULL); + } + break; + case NULL: + { + setState(2368); + match(NULL); + } + break; + case CHECK: + { + setState(2369); + match(CHECK); + setState(2370); + match(OPEN_PAREN); + setState(2371); + expr(0); + setState(2372); + match(CLOSE_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_domain_stmtContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode DOMAIN() { return getToken(PostgreSQLParser.DOMAIN, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class,0); + } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List domain_constraint() { + return getRuleContexts(Domain_constraintContext.class); + } + public Domain_constraintContext domain_constraint(int i) { + return getRuleContext(Domain_constraintContext.class,i); + } + public List COLLATE() { return getTokens(PostgreSQLParser.COLLATE); } + public TerminalNode COLLATE(int i) { + return getToken(PostgreSQLParser.COLLATE, i); + } + public List DEFAULT() { return getTokens(PostgreSQLParser.DEFAULT); } + public TerminalNode DEFAULT(int i) { + return getToken(PostgreSQLParser.DEFAULT, i); + } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public Create_domain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_domain_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_domain_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_domain_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_domain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_domain_stmtContext create_domain_stmt() throws RecognitionException { + Create_domain_stmtContext _localctx = new Create_domain_stmtContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_create_domain_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2376); + match(CREATE); + setState(2377); + match(DOMAIN); + setState(2378); + name_(); + setState(2380); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(2379); + match(AS); + } + } + + setState(2382); + data_type(); + setState(2390); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 78)) & ~0x3f) == 0 && ((1L << (_la - 78)) & ((1L << (CHECK - 78)) | (1L << (COLLATE - 78)) | (1L << (CONSTRAINT - 78)))) != 0) || _la==DEFAULT || _la==NOT || _la==NULL) { + { + setState(2388); + _errHandler.sync(this); + switch (_input.LA(1)) { + case COLLATE: + { + { + setState(2383); + match(COLLATE); + setState(2384); + name_(); + } + } + break; + case DEFAULT: + { + { + setState(2385); + match(DEFAULT); + setState(2386); + expr(0); + } + } + break; + case CHECK: + case CONSTRAINT: + case NOT: + case NULL: + { + setState(2387); + domain_constraint(); + } + break; + default: + throw new NoViableAltException(this); + } + } + setState(2392); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_event_trigger_condContext extends ParserRuleContext { + public IdentifierContext filter_stmt; + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List SINGLEQ_STRING_LITERAL() { return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); } + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public List AND() { return getTokens(PostgreSQLParser.AND); } + public TerminalNode AND(int i) { + return getToken(PostgreSQLParser.AND, i); + } + public List create_event_trigger_cond() { + return getRuleContexts(Create_event_trigger_condContext.class); + } + public Create_event_trigger_condContext create_event_trigger_cond(int i) { + return getRuleContext(Create_event_trigger_condContext.class,i); + } + public Create_event_trigger_condContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_event_trigger_cond; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_event_trigger_cond(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_event_trigger_cond(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_event_trigger_cond(this); + else return visitor.visitChildren(this); + } + } + + public final Create_event_trigger_condContext create_event_trigger_cond() throws RecognitionException { + Create_event_trigger_condContext _localctx = new Create_event_trigger_condContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_create_event_trigger_cond); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2393); + ((Create_event_trigger_condContext)_localctx).filter_stmt = identifier(0); + setState(2394); + match(IN); + setState(2395); + match(OPEN_PAREN); + setState(2396); + match(SINGLEQ_STRING_LITERAL); + setState(2401); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2397); + match(COMMA); + setState(2398); + match(SINGLEQ_STRING_LITERAL); + } + } + setState(2403); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2404); + match(CLOSE_PAREN); + setState(2409); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,186,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2405); + match(AND); + setState(2406); + create_event_trigger_cond(); + } + } + } + setState(2411); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,186,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_event_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext trigger; + public IdentifierContext event; + public IdentifierContext fn_name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode EVENT() { return getToken(PostgreSQLParser.EVENT, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode EXECUTE() { return getToken(PostgreSQLParser.EXECUTE, 0); } + public TerminalNode PROCEDURE() { return getToken(PostgreSQLParser.PROCEDURE, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode WHEN() { return getToken(PostgreSQLParser.WHEN, 0); } + public Create_event_trigger_condContext create_event_trigger_cond() { + return getRuleContext(Create_event_trigger_condContext.class,0); + } + public Create_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_event_trigger_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_event_trigger_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_event_trigger_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_event_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_event_trigger_stmtContext create_event_trigger_stmt() throws RecognitionException { + Create_event_trigger_stmtContext _localctx = new Create_event_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_create_event_trigger_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2412); + match(CREATE); + setState(2413); + match(EVENT); + setState(2414); + match(TRIGGER); + setState(2415); + ((Create_event_trigger_stmtContext)_localctx).trigger = identifier(0); + setState(2416); + match(ON); + setState(2417); + ((Create_event_trigger_stmtContext)_localctx).event = identifier(0); + setState(2420); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHEN) { + { + setState(2418); + match(WHEN); + setState(2419); + create_event_trigger_cond(); + } + } + + setState(2422); + match(EXECUTE); + setState(2423); + match(PROCEDURE); + setState(2424); + ((Create_event_trigger_stmtContext)_localctx).fn_name = identifier(0); + setState(2425); + match(OPEN_PAREN); + setState(2426); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_foreign_data_optionsContext extends ParserRuleContext { + public Name_Context opt; + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public List create_foreign_data_options() { + return getRuleContexts(Create_foreign_data_optionsContext.class); + } + public Create_foreign_data_optionsContext create_foreign_data_options(int i) { + return getRuleContext(Create_foreign_data_optionsContext.class,i); + } + public Create_foreign_data_optionsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_foreign_data_options; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_foreign_data_options(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_foreign_data_options(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_foreign_data_options(this); + else return visitor.visitChildren(this); + } + } + + public final Create_foreign_data_optionsContext create_foreign_data_options() throws RecognitionException { + Create_foreign_data_optionsContext _localctx = new Create_foreign_data_optionsContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_create_foreign_data_options); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2428); + ((Create_foreign_data_optionsContext)_localctx).opt = name_(); + setState(2429); + match(SINGLEQ_STRING_LITERAL); + setState(2434); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,188,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2430); + match(COMMA); + setState(2431); + create_foreign_data_options(); + } + } + } + setState(2436); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,188,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_foreign_data_stmtContext extends ParserRuleContext { + public IdentifierContext wrapper; + public IdentifierContext handler; + public IdentifierContext validator; + public Create_foreign_data_optionsContext opts; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode DATA() { return getToken(PostgreSQLParser.DATA, 0); } + public TerminalNode WRAPPER() { return getToken(PostgreSQLParser.WRAPPER, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List HANDLER() { return getTokens(PostgreSQLParser.HANDLER); } + public TerminalNode HANDLER(int i) { + return getToken(PostgreSQLParser.HANDLER, i); + } + public List NO() { return getTokens(PostgreSQLParser.NO); } + public TerminalNode NO(int i) { + return getToken(PostgreSQLParser.NO, i); + } + public TerminalNode VALIDATOR() { return getToken(PostgreSQLParser.VALIDATOR, 0); } + public TerminalNode OPTIONS() { return getToken(PostgreSQLParser.OPTIONS, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Create_foreign_data_optionsContext create_foreign_data_options() { + return getRuleContext(Create_foreign_data_optionsContext.class,0); + } + public Create_foreign_data_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_foreign_data_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_foreign_data_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_foreign_data_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_foreign_data_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_foreign_data_stmtContext create_foreign_data_stmt() throws RecognitionException { + Create_foreign_data_stmtContext _localctx = new Create_foreign_data_stmtContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_create_foreign_data_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2437); + match(CREATE); + setState(2438); + match(FOREIGN); + setState(2439); + match(DATA); + setState(2440); + match(WRAPPER); + setState(2441); + ((Create_foreign_data_stmtContext)_localctx).wrapper = identifier(0); + setState(2448); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(2446); + _errHandler.sync(this); + switch (_input.LA(1)) { + case HANDLER: + { + setState(2442); + match(HANDLER); + setState(2443); + ((Create_foreign_data_stmtContext)_localctx).handler = identifier(0); + } + break; + case NO: + { + setState(2444); + match(NO); + setState(2445); + match(HANDLER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(2450); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + } + setState(2455); + _errHandler.sync(this); + switch (_input.LA(1)) { + case VALIDATOR: + { + setState(2451); + match(VALIDATOR); + setState(2452); + ((Create_foreign_data_stmtContext)_localctx).validator = identifier(0); + } + break; + case NO: + { + setState(2453); + match(NO); + setState(2454); + match(VALIDATOR); + } + break; + case EOF: + case OPTIONS: + case CLOSE_PAREN: + case SEMI: + break; + default: + break; + } + setState(2462); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPTIONS) { + { + setState(2457); + match(OPTIONS); + setState(2458); + match(OPEN_PAREN); + setState(2459); + ((Create_foreign_data_stmtContext)_localctx).opts = create_foreign_data_options(); + setState(2460); + match(CLOSE_PAREN); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_foreign_table_stmtContext extends ParserRuleContext { + public IdentifierContext table_name_TODO; + public IdentifierContext column_name_TODO; + public IdentifierContext column_type; + public Create_foreign_data_optionsContext opts; + public Name_Context server_name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode SERVER() { return getToken(PostgreSQLParser.SERVER, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public List OPTIONS() { return getTokens(PostgreSQLParser.OPTIONS); } + public TerminalNode OPTIONS(int i) { + return getToken(PostgreSQLParser.OPTIONS, i); + } + public TerminalNode COLLATE() { return getToken(PostgreSQLParser.COLLATE, 0); } + public Create_collation_optContext create_collation_opt() { + return getRuleContext(Create_collation_optContext.class,0); + } + public TerminalNode INHERITS() { return getToken(PostgreSQLParser.INHERITS, 0); } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public List create_foreign_data_options() { + return getRuleContexts(Create_foreign_data_optionsContext.class); + } + public Create_foreign_data_optionsContext create_foreign_data_options(int i) { + return getRuleContext(Create_foreign_data_optionsContext.class,i); + } + public Create_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_foreign_table_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_foreign_table_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_foreign_table_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_foreign_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_foreign_table_stmtContext create_foreign_table_stmt() throws RecognitionException { + Create_foreign_table_stmtContext _localctx = new Create_foreign_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_create_foreign_table_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2464); + match(CREATE); + setState(2465); + match(FOREIGN); + setState(2466); + match(TABLE); + setState(2470); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(2467); + match(IF); + setState(2468); + match(NOT); + setState(2469); + match(EXISTS); + } + } + + setState(2472); + ((Create_foreign_table_stmtContext)_localctx).table_name_TODO = identifier(0); + setState(2473); + match(OPEN_PAREN); + setState(2474); + ((Create_foreign_table_stmtContext)_localctx).column_name_TODO = identifier(0); + setState(2475); + ((Create_foreign_table_stmtContext)_localctx).column_type = identifier(0); + setState(2481); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPTIONS) { + { + setState(2476); + match(OPTIONS); + setState(2477); + match(OPEN_PAREN); + setState(2478); + ((Create_foreign_table_stmtContext)_localctx).opts = create_foreign_data_options(); + setState(2479); + match(CLOSE_PAREN); + } + } + + setState(2485); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLLATE) { + { + setState(2483); + match(COLLATE); + setState(2484); + create_collation_opt(); + } + } + + setState(2487); + match(CLOSE_PAREN); + setState(2490); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INHERITS) { + { + setState(2488); + match(INHERITS); + setState(2489); + name_list(); + } + } + + setState(2492); + match(SERVER); + setState(2493); + ((Create_foreign_table_stmtContext)_localctx).server_name = name_(); + setState(2499); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPTIONS) { + { + setState(2494); + match(OPTIONS); + setState(2495); + match(OPEN_PAREN); + setState(2496); + ((Create_foreign_table_stmtContext)_localctx).opts = create_foreign_data_options(); + setState(2497); + match(CLOSE_PAREN); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_function_stmtContext extends ParserRuleContext { + public Name_Context fn_name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode FUNCTION() { return getToken(PostgreSQLParser.FUNCTION, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public TerminalNode REPLACE() { return getToken(PostgreSQLParser.REPLACE, 0); } + public Create_function_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_function_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_function_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_function_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_function_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_function_stmtContext create_function_stmt() throws RecognitionException { + Create_function_stmtContext _localctx = new Create_function_stmtContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_create_function_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2501); + match(CREATE); + setState(2504); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(2502); + match(OR); + setState(2503); + match(REPLACE); + } + } + + setState(2506); + match(FUNCTION); + setState(2507); + ((Create_function_stmtContext)_localctx).fn_name = name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_group_stmtContext extends ParserRuleContext { + public IdentifierContext group; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public List GROUP() { return getTokens(PostgreSQLParser.GROUP); } + public TerminalNode GROUP(int i) { + return getToken(PostgreSQLParser.GROUP, i); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public List SUPERUSER() { return getTokens(PostgreSQLParser.SUPERUSER); } + public TerminalNode SUPERUSER(int i) { + return getToken(PostgreSQLParser.SUPERUSER, i); + } + public List NOSUPERUSER() { return getTokens(PostgreSQLParser.NOSUPERUSER); } + public TerminalNode NOSUPERUSER(int i) { + return getToken(PostgreSQLParser.NOSUPERUSER, i); + } + public List CREATEDB() { return getTokens(PostgreSQLParser.CREATEDB); } + public TerminalNode CREATEDB(int i) { + return getToken(PostgreSQLParser.CREATEDB, i); + } + public List NOCREATEDB() { return getTokens(PostgreSQLParser.NOCREATEDB); } + public TerminalNode NOCREATEDB(int i) { + return getToken(PostgreSQLParser.NOCREATEDB, i); + } + public List CREATEROLE() { return getTokens(PostgreSQLParser.CREATEROLE); } + public TerminalNode CREATEROLE(int i) { + return getToken(PostgreSQLParser.CREATEROLE, i); + } + public List NOCREATEROLE() { return getTokens(PostgreSQLParser.NOCREATEROLE); } + public TerminalNode NOCREATEROLE(int i) { + return getToken(PostgreSQLParser.NOCREATEROLE, i); + } + public List CREATEUSER() { return getTokens(PostgreSQLParser.CREATEUSER); } + public TerminalNode CREATEUSER(int i) { + return getToken(PostgreSQLParser.CREATEUSER, i); + } + public List NOCREATEUSER() { return getTokens(PostgreSQLParser.NOCREATEUSER); } + public TerminalNode NOCREATEUSER(int i) { + return getToken(PostgreSQLParser.NOCREATEUSER, i); + } + public List INHERIT() { return getTokens(PostgreSQLParser.INHERIT); } + public TerminalNode INHERIT(int i) { + return getToken(PostgreSQLParser.INHERIT, i); + } + public List NOINHERIT() { return getTokens(PostgreSQLParser.NOINHERIT); } + public TerminalNode NOINHERIT(int i) { + return getToken(PostgreSQLParser.NOINHERIT, i); + } + public List LOGIN() { return getTokens(PostgreSQLParser.LOGIN); } + public TerminalNode LOGIN(int i) { + return getToken(PostgreSQLParser.LOGIN, i); + } + public List NOLOGIN() { return getTokens(PostgreSQLParser.NOLOGIN); } + public TerminalNode NOLOGIN(int i) { + return getToken(PostgreSQLParser.NOLOGIN, i); + } + public List PASSWORD() { return getTokens(PostgreSQLParser.PASSWORD); } + public TerminalNode PASSWORD(int i) { + return getToken(PostgreSQLParser.PASSWORD, i); + } + public List VALID() { return getTokens(PostgreSQLParser.VALID); } + public TerminalNode VALID(int i) { + return getToken(PostgreSQLParser.VALID, i); + } + public List UNTIL() { return getTokens(PostgreSQLParser.UNTIL); } + public TerminalNode UNTIL(int i) { + return getToken(PostgreSQLParser.UNTIL, i); + } + public List SINGLEQ_STRING_LITERAL() { return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); } + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + public List IN() { return getTokens(PostgreSQLParser.IN); } + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + public List ROLE() { return getTokens(PostgreSQLParser.ROLE); } + public TerminalNode ROLE(int i) { + return getToken(PostgreSQLParser.ROLE, i); + } + public List name_list() { + return getRuleContexts(Name_listContext.class); + } + public Name_listContext name_list(int i) { + return getRuleContext(Name_listContext.class,i); + } + public List ADMIN() { return getTokens(PostgreSQLParser.ADMIN); } + public TerminalNode ADMIN(int i) { + return getToken(PostgreSQLParser.ADMIN, i); + } + public List USER() { return getTokens(PostgreSQLParser.USER); } + public TerminalNode USER(int i) { + return getToken(PostgreSQLParser.USER, i); + } + public List SYSID() { return getTokens(PostgreSQLParser.SYSID); } + public TerminalNode SYSID(int i) { + return getToken(PostgreSQLParser.SYSID, i); + } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public List NULL() { return getTokens(PostgreSQLParser.NULL); } + public TerminalNode NULL(int i) { + return getToken(PostgreSQLParser.NULL, i); + } + public List ENCRYPTED() { return getTokens(PostgreSQLParser.ENCRYPTED); } + public TerminalNode ENCRYPTED(int i) { + return getToken(PostgreSQLParser.ENCRYPTED, i); + } + public List UNENCRYPTED() { return getTokens(PostgreSQLParser.UNENCRYPTED); } + public TerminalNode UNENCRYPTED(int i) { + return getToken(PostgreSQLParser.UNENCRYPTED, i); + } + public Create_group_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_group_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_group_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_group_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_group_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_group_stmtContext create_group_stmt() throws RecognitionException { + Create_group_stmtContext _localctx = new Create_group_stmtContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_create_group_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2509); + match(CREATE); + setState(2510); + match(GROUP); + setState(2511); + ((Create_group_stmtContext)_localctx).group = identifier(0); + setState(2553); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ADMIN || _la==CREATEDB || _la==CREATEUSER || _la==ENCRYPTED || _la==IN || ((((_la - 360)) & ~0x3f) == 0 && ((1L << (_la - 360)) & ((1L << (NOCREATEDB - 360)) | (1L << (NOCREATEUSER - 360)) | (1L << (PASSWORD - 360)))) != 0) || _la==ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (UNENCRYPTED - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 646)) & ~0x3f) == 0 && ((1L << (_la - 646)) & ((1L << (WITH - 646)) | (1L << (SUPERUSER - 646)) | (1L << (NOSUPERUSER - 646)) | (1L << (CREATEROLE - 646)) | (1L << (NOCREATEROLE - 646)) | (1L << (INHERIT - 646)) | (1L << (NOINHERIT - 646)) | (1L << (LOGIN - 646)) | (1L << (NOLOGIN - 646)))) != 0)) { + { + setState(2513); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2512); + match(WITH); + } + } + + setState(2549); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + setState(2549); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { + case 1: + { + setState(2515); + match(SUPERUSER); + } + break; + case 2: + { + setState(2516); + match(NOSUPERUSER); + } + break; + case 3: + { + setState(2517); + match(CREATEDB); + } + break; + case 4: + { + setState(2518); + match(NOCREATEDB); + } + break; + case 5: + { + setState(2519); + match(CREATEROLE); + } + break; + case 6: + { + setState(2520); + match(NOCREATEROLE); + } + break; + case 7: + { + setState(2521); + match(CREATEUSER); + } + break; + case 8: + { + setState(2522); + match(NOCREATEUSER); + } + break; + case 9: + { + setState(2523); + match(INHERIT); + } + break; + case 10: + { + setState(2524); + match(NOINHERIT); + } + break; + case 11: + { + setState(2525); + match(LOGIN); + } + break; + case 12: + { + setState(2526); + match(NOLOGIN); + } + break; + case 13: + { + setState(2528); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ENCRYPTED || _la==UNENCRYPTED) { + { + setState(2527); + _la = _input.LA(1); + if ( !(_la==ENCRYPTED || _la==UNENCRYPTED) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2530); + match(PASSWORD); + setState(2531); + _la = _input.LA(1); + if ( !(_la==NULL || _la==SINGLEQ_STRING_LITERAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 14: + { + setState(2532); + match(VALID); + setState(2533); + match(UNTIL); + setState(2534); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 15: + { + setState(2535); + match(IN); + setState(2536); + match(ROLE); + setState(2537); + name_list(); + } + break; + case 16: + { + setState(2538); + match(IN); + setState(2539); + match(GROUP); + setState(2540); + name_list(); + } + break; + case 17: + { + setState(2541); + match(ROLE); + setState(2542); + name_list(); + } + break; + case 18: + { + setState(2543); + match(ADMIN); + setState(2544); + name_list(); + } + break; + case 19: + { + setState(2545); + match(USER); + setState(2546); + name_list(); + } + break; + case 20: + { + setState(2547); + match(SYSID); + setState(2548); + match(INTEGER_LITERAL); + } + break; + } + } + setState(2551); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==ADMIN || _la==CREATEDB || _la==CREATEUSER || _la==ENCRYPTED || _la==IN || ((((_la - 360)) & ~0x3f) == 0 && ((1L << (_la - 360)) & ((1L << (NOCREATEDB - 360)) | (1L << (NOCREATEUSER - 360)) | (1L << (PASSWORD - 360)))) != 0) || _la==ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (UNENCRYPTED - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 655)) & ~0x3f) == 0 && ((1L << (_la - 655)) & ((1L << (SUPERUSER - 655)) | (1L << (NOSUPERUSER - 655)) | (1L << (CREATEROLE - 655)) | (1L << (NOCREATEROLE - 655)) | (1L << (INHERIT - 655)) | (1L << (NOINHERIT - 655)) | (1L << (LOGIN - 655)) | (1L << (NOLOGIN - 655)))) != 0) ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_index_stmtContext extends ParserRuleContext { + public IdentifierContext index_name; + public IdentifierContext tableName; + public IdentifierContext tablespace_name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode UNIQUE() { return getToken(PostgreSQLParser.UNIQUE, 0); } + public TerminalNode CONCURRENTLY() { return getToken(PostgreSQLParser.CONCURRENTLY, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Create_index_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_index_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_index_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_index_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_index_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_index_stmtContext create_index_stmt() throws RecognitionException { + Create_index_stmtContext _localctx = new Create_index_stmtContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_create_index_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2555); + match(CREATE); + setState(2557); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==UNIQUE) { + { + setState(2556); + match(UNIQUE); + } + } + + setState(2559); + match(INDEX); + setState(2561); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CONCURRENTLY) { + { + setState(2560); + match(CONCURRENTLY); + } + } + + setState(2569); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)) | (1L << (IF - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(2566); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(2563); + match(IF); + setState(2564); + match(NOT); + setState(2565); + match(EXISTS); + } + } + + setState(2568); + ((Create_index_stmtContext)_localctx).index_name = identifier(0); + } + } + + setState(2571); + match(ON); + setState(2572); + ((Create_index_stmtContext)_localctx).tableName = identifier(0); + setState(2575); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(2573); + match(USING); + setState(2574); + index_method(); + } + } + + setState(2579); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLESPACE) { + { + setState(2577); + match(TABLESPACE); + setState(2578); + ((Create_index_stmtContext)_localctx).tablespace_name = identifier(0); + } + } + + setState(2583); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2581); + match(WHERE); + setState(2582); + predicate(0); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_language_stmtContext extends ParserRuleContext { + public IdentifierContext language_name; + public IdentifierContext call_handler; + public IdentifierContext inline_handler; + public IdentifierContext valfunction; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode LANGUAGE() { return getToken(PostgreSQLParser.LANGUAGE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public TerminalNode REPLACE() { return getToken(PostgreSQLParser.REPLACE, 0); } + public TerminalNode PROCEDURAL() { return getToken(PostgreSQLParser.PROCEDURAL, 0); } + public TerminalNode HANDLER() { return getToken(PostgreSQLParser.HANDLER, 0); } + public TerminalNode TRUSTED() { return getToken(PostgreSQLParser.TRUSTED, 0); } + public TerminalNode INLINE() { return getToken(PostgreSQLParser.INLINE, 0); } + public TerminalNode VALIDATOR() { return getToken(PostgreSQLParser.VALIDATOR, 0); } + public Create_language_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_language_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_language_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_language_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_language_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_language_stmtContext create_language_stmt() throws RecognitionException { + Create_language_stmtContext _localctx = new Create_language_stmtContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_create_language_stmt); + int _la; + try { + setState(2618); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,218,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(2585); + match(CREATE); + setState(2588); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(2586); + match(OR); + setState(2587); + match(REPLACE); + } + } + + setState(2591); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROCEDURAL) { + { + setState(2590); + match(PROCEDURAL); + } + } + + setState(2593); + match(LANGUAGE); + setState(2594); + ((Create_language_stmtContext)_localctx).language_name = identifier(0); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2595); + match(CREATE); + setState(2598); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(2596); + match(OR); + setState(2597); + match(REPLACE); + } + } + + setState(2601); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TRUSTED) { + { + setState(2600); + match(TRUSTED); + } + } + + setState(2604); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROCEDURAL) { + { + setState(2603); + match(PROCEDURAL); + } + } + + setState(2606); + match(LANGUAGE); + setState(2607); + ((Create_language_stmtContext)_localctx).language_name = identifier(0); + setState(2608); + match(HANDLER); + setState(2609); + ((Create_language_stmtContext)_localctx).call_handler = identifier(0); + setState(2612); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INLINE) { + { + setState(2610); + match(INLINE); + setState(2611); + ((Create_language_stmtContext)_localctx).inline_handler = identifier(0); + } + } + + setState(2616); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VALIDATOR) { + { + setState(2614); + match(VALIDATOR); + setState(2615); + ((Create_language_stmtContext)_localctx).valfunction = identifier(0); + } + } + + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_materialized_view_stmtContext extends ParserRuleContext { + public IdentifierContext tableName; + public Identifier_listContext columns; + public IdentifierContext tablespace_name; + public Select_stmtContext query; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode MATERIALIZED() { return getToken(PostgreSQLParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PostgreSQLParser.VIEW, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List WITH() { return getTokens(PostgreSQLParser.WITH); } + public TerminalNode WITH(int i) { + return getToken(PostgreSQLParser.WITH, i); + } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public TerminalNode DATA() { return getToken(PostgreSQLParser.DATA, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode NO() { return getToken(PostgreSQLParser.NO, 0); } + public Create_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_materialized_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_materialized_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_materialized_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_materialized_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_materialized_view_stmtContext create_materialized_view_stmt() throws RecognitionException { + Create_materialized_view_stmtContext _localctx = new Create_materialized_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_create_materialized_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2620); + match(CREATE); + setState(2621); + match(MATERIALIZED); + setState(2622); + match(VIEW); + setState(2626); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(2623); + match(IF); + setState(2624); + match(NOT); + setState(2625); + match(EXISTS); + } + } + + setState(2628); + ((Create_materialized_view_stmtContext)_localctx).tableName = identifier(0); + setState(2633); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(2629); + match(OPEN_PAREN); + setState(2630); + ((Create_materialized_view_stmtContext)_localctx).columns = identifier_list(); + setState(2631); + match(CLOSE_PAREN); + } + } + + setState(2636); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2635); + match(WITH); + } + } + + setState(2640); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLESPACE) { + { + setState(2638); + match(TABLESPACE); + setState(2639); + ((Create_materialized_view_stmtContext)_localctx).tablespace_name = identifier(0); + } + } + + setState(2642); + match(AS); + setState(2643); + ((Create_materialized_view_stmtContext)_localctx).query = select_stmt(); + setState(2649); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2644); + match(WITH); + setState(2646); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NO) { + { + setState(2645); + match(NO); + } + } + + setState(2648); + match(DATA); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_stmtContext extends ParserRuleContext { + public IdentifierContext opName; + public IdentifierContext function_name; + public Name_Context left_type; + public Name_Context right_type; + public Name_Context com_op; + public Name_Context neg_op; + public Name_Context res_proc; + public Name_Context join_proc; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode PROCEDURE() { return getToken(PostgreSQLParser.PROCEDURE, 0); } + public List EQUAL() { return getTokens(PostgreSQLParser.EQUAL); } + public TerminalNode EQUAL(int i) { + return getToken(PostgreSQLParser.EQUAL, i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public TerminalNode LEFTARG() { return getToken(PostgreSQLParser.LEFTARG, 0); } + public TerminalNode RIGHTARG() { return getToken(PostgreSQLParser.RIGHTARG, 0); } + public TerminalNode COMMUTATOR() { return getToken(PostgreSQLParser.COMMUTATOR, 0); } + public TerminalNode NEGATOR() { return getToken(PostgreSQLParser.NEGATOR, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public TerminalNode JOIN() { return getToken(PostgreSQLParser.JOIN, 0); } + public TerminalNode HASHES() { return getToken(PostgreSQLParser.HASHES, 0); } + public TerminalNode MERGES() { return getToken(PostgreSQLParser.MERGES, 0); } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public Create_operator_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_operator_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_operator_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_operator_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_operator_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_stmtContext create_operator_stmt() throws RecognitionException { + Create_operator_stmtContext _localctx = new Create_operator_stmtContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_create_operator_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2651); + match(CREATE); + setState(2652); + match(OPERATOR); + setState(2653); + ((Create_operator_stmtContext)_localctx).opName = identifier(0); + setState(2654); + match(OPEN_PAREN); + setState(2655); + match(PROCEDURE); + setState(2656); + match(EQUAL); + setState(2657); + ((Create_operator_stmtContext)_localctx).function_name = identifier(0); + setState(2662); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,225,_ctx) ) { + case 1: + { + setState(2658); + match(COMMA); + setState(2659); + match(LEFTARG); + setState(2660); + match(EQUAL); + setState(2661); + ((Create_operator_stmtContext)_localctx).left_type = name_(); + } + break; + } + setState(2668); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { + case 1: + { + setState(2664); + match(COMMA); + setState(2665); + match(RIGHTARG); + setState(2666); + match(EQUAL); + setState(2667); + ((Create_operator_stmtContext)_localctx).right_type = name_(); + } + break; + } + setState(2674); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,227,_ctx) ) { + case 1: + { + setState(2670); + match(COMMA); + setState(2671); + match(COMMUTATOR); + setState(2672); + match(EQUAL); + setState(2673); + ((Create_operator_stmtContext)_localctx).com_op = name_(); + } + break; + } + setState(2680); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,228,_ctx) ) { + case 1: + { + setState(2676); + match(COMMA); + setState(2677); + match(NEGATOR); + setState(2678); + match(EQUAL); + setState(2679); + ((Create_operator_stmtContext)_localctx).neg_op = name_(); + } + break; + } + setState(2686); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,229,_ctx) ) { + case 1: + { + setState(2682); + match(COMMA); + setState(2683); + match(RESTRICT); + setState(2684); + match(EQUAL); + setState(2685); + ((Create_operator_stmtContext)_localctx).res_proc = name_(); + } + break; + } + setState(2692); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { + case 1: + { + setState(2688); + match(COMMA); + setState(2689); + match(JOIN); + setState(2690); + match(EQUAL); + setState(2691); + ((Create_operator_stmtContext)_localctx).join_proc = name_(); + } + break; + } + setState(2696); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { + case 1: + { + setState(2694); + match(COMMA); + setState(2695); + match(HASHES); + } + break; + } + setState(2700); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(2698); + match(COMMA); + setState(2699); + match(MERGES); + } + } + + setState(2702); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_class_optContext extends ParserRuleContext { + public Token strategy_number; + public IdentifierContext opName; + public Token support_number; + public IdentifierContext func_name_; + public IdentifierContext storage_type; + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public TerminalNode COMMA() { return getToken(PostgreSQLParser.COMMA, 0); } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode FUNCTION() { return getToken(PostgreSQLParser.FUNCTION, 0); } + public Data_type_listContext data_type_list() { + return getRuleContext(Data_type_listContext.class,0); + } + public TerminalNode STORAGE() { return getToken(PostgreSQLParser.STORAGE, 0); } + public Create_operator_class_optContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_operator_class_opt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_operator_class_opt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_operator_class_opt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_operator_class_opt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_class_optContext create_operator_class_opt() throws RecognitionException { + Create_operator_class_optContext _localctx = new Create_operator_class_optContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_create_operator_class_opt); + int _la; + try { + setState(2734); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPERATOR: + enterOuterAlt(_localctx, 1); + { + { + setState(2704); + match(OPERATOR); + setState(2705); + ((Create_operator_class_optContext)_localctx).strategy_number = match(INTEGER_LITERAL); + setState(2706); + ((Create_operator_class_optContext)_localctx).opName = identifier(0); + setState(2713); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(2707); + match(OPEN_PAREN); + setState(2708); + identifier(0); + setState(2709); + match(COMMA); + setState(2710); + identifier(0); + setState(2711); + match(CLOSE_PAREN); + } + } + + } + } + break; + case FUNCTION: + enterOuterAlt(_localctx, 2); + { + { + setState(2715); + match(FUNCTION); + setState(2716); + ((Create_operator_class_optContext)_localctx).support_number = match(INTEGER_LITERAL); + setState(2725); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(2717); + match(OPEN_PAREN); + setState(2718); + identifier(0); + setState(2721); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(2719); + match(COMMA); + setState(2720); + identifier(0); + } + } + + setState(2723); + match(CLOSE_PAREN); + } + } + + setState(2727); + ((Create_operator_class_optContext)_localctx).func_name_ = identifier(0); + setState(2728); + match(OPEN_PAREN); + setState(2729); + data_type_list(); + setState(2730); + match(CLOSE_PAREN); + } + } + break; + case STORAGE: + enterOuterAlt(_localctx, 3); + { + { + setState(2732); + match(STORAGE); + setState(2733); + ((Create_operator_class_optContext)_localctx).storage_type = identifier(0); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_class_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext op_type; + public IdentifierContext family_name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode CLASS() { return getToken(PostgreSQLParser.CLASS, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode TYPE() { return getToken(PostgreSQLParser.TYPE, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List create_operator_class_opt() { + return getRuleContexts(Create_operator_class_optContext.class); + } + public Create_operator_class_optContext create_operator_class_opt(int i) { + return getRuleContext(Create_operator_class_optContext.class,i); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public TerminalNode FAMILY() { return getToken(PostgreSQLParser.FAMILY, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Create_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_operator_class_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_operator_class_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_operator_class_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_operator_class_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_class_stmtContext create_operator_class_stmt() throws RecognitionException { + Create_operator_class_stmtContext _localctx = new Create_operator_class_stmtContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_create_operator_class_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2736); + match(CREATE); + setState(2737); + match(OPERATOR); + setState(2738); + match(CLASS); + setState(2739); + ((Create_operator_class_stmtContext)_localctx).name = identifier(0); + setState(2741); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DEFAULT) { + { + setState(2740); + match(DEFAULT); + } + } + + setState(2743); + match(FOR); + setState(2744); + match(TYPE); + setState(2745); + ((Create_operator_class_stmtContext)_localctx).op_type = identifier(0); + setState(2746); + match(USING); + setState(2747); + index_method(); + setState(2750); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FAMILY) { + { + setState(2748); + match(FAMILY); + setState(2749); + ((Create_operator_class_stmtContext)_localctx).family_name = identifier(0); + } + } + + setState(2752); + match(AS); + setState(2753); + create_operator_class_opt(); + setState(2758); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2754); + match(COMMA); + setState(2755); + create_operator_class_opt(); + } + } + setState(2760); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_operator_family_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode FAMILY() { return getToken(PostgreSQLParser.FAMILY, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Create_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_operator_family_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_operator_family_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_operator_family_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_operator_family_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_operator_family_stmtContext create_operator_family_stmt() throws RecognitionException { + Create_operator_family_stmtContext _localctx = new Create_operator_family_stmtContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_create_operator_family_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2761); + match(CREATE); + setState(2762); + match(OPERATOR); + setState(2763); + match(FAMILY); + setState(2764); + ((Create_operator_family_stmtContext)_localctx).name = identifier(0); + setState(2765); + match(USING); + setState(2766); + index_method(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_policy_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext tableName; + public Role_nameContext role; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode POLICY() { return getToken(PostgreSQLParser.POLICY, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class,i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode CHECK() { return getToken(PostgreSQLParser.CHECK, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode SELECT() { return getToken(PostgreSQLParser.SELECT, 0); } + public TerminalNode INSERT() { return getToken(PostgreSQLParser.INSERT, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public TerminalNode DELETE() { return getToken(PostgreSQLParser.DELETE, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public Create_policy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_policy_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_policy_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_policy_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_policy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_policy_stmtContext create_policy_stmt() throws RecognitionException { + Create_policy_stmtContext _localctx = new Create_policy_stmtContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_create_policy_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2768); + match(CREATE); + setState(2769); + match(POLICY); + setState(2770); + ((Create_policy_stmtContext)_localctx).name = identifier(0); + setState(2771); + match(ON); + setState(2772); + ((Create_policy_stmtContext)_localctx).tableName = identifier(0); + setState(2775); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FOR) { + { + setState(2773); + match(FOR); + setState(2774); + _la = _input.LA(1); + if ( !(_la==ALL || _la==DELETE || _la==INSERT || _la==SELECT || _la==UPDATE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2779); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TO) { + { + setState(2777); + match(TO); + setState(2778); + ((Create_policy_stmtContext)_localctx).role = role_name(); + } + } + + setState(2786); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(2781); + match(USING); + setState(2782); + match(OPEN_PAREN); + setState(2783); + predicate(0); + setState(2784); + match(CLOSE_PAREN); + } + } + + setState(2794); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2788); + match(WITH); + setState(2789); + match(CHECK); + setState(2790); + match(OPEN_PAREN); + setState(2791); + predicate(0); + setState(2792); + match(CLOSE_PAREN); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_role_stmtContext extends ParserRuleContext { + public Role_nameContext role; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public List ROLE() { return getTokens(PostgreSQLParser.ROLE); } + public TerminalNode ROLE(int i) { + return getToken(PostgreSQLParser.ROLE, i); + } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public List SUPERUSER() { return getTokens(PostgreSQLParser.SUPERUSER); } + public TerminalNode SUPERUSER(int i) { + return getToken(PostgreSQLParser.SUPERUSER, i); + } + public List NOSUPERUSER() { return getTokens(PostgreSQLParser.NOSUPERUSER); } + public TerminalNode NOSUPERUSER(int i) { + return getToken(PostgreSQLParser.NOSUPERUSER, i); + } + public List CREATEDB() { return getTokens(PostgreSQLParser.CREATEDB); } + public TerminalNode CREATEDB(int i) { + return getToken(PostgreSQLParser.CREATEDB, i); + } + public List NOCREATEDB() { return getTokens(PostgreSQLParser.NOCREATEDB); } + public TerminalNode NOCREATEDB(int i) { + return getToken(PostgreSQLParser.NOCREATEDB, i); + } + public List CREATEROLE() { return getTokens(PostgreSQLParser.CREATEROLE); } + public TerminalNode CREATEROLE(int i) { + return getToken(PostgreSQLParser.CREATEROLE, i); + } + public List NOCREATEROLE() { return getTokens(PostgreSQLParser.NOCREATEROLE); } + public TerminalNode NOCREATEROLE(int i) { + return getToken(PostgreSQLParser.NOCREATEROLE, i); + } + public List INHERIT() { return getTokens(PostgreSQLParser.INHERIT); } + public TerminalNode INHERIT(int i) { + return getToken(PostgreSQLParser.INHERIT, i); + } + public List NOINHERIT() { return getTokens(PostgreSQLParser.NOINHERIT); } + public TerminalNode NOINHERIT(int i) { + return getToken(PostgreSQLParser.NOINHERIT, i); + } + public List LOGIN() { return getTokens(PostgreSQLParser.LOGIN); } + public TerminalNode LOGIN(int i) { + return getToken(PostgreSQLParser.LOGIN, i); + } + public List NOLOGIN() { return getTokens(PostgreSQLParser.NOLOGIN); } + public TerminalNode NOLOGIN(int i) { + return getToken(PostgreSQLParser.NOLOGIN, i); + } + public List REPLICATION() { return getTokens(PostgreSQLParser.REPLICATION); } + public TerminalNode REPLICATION(int i) { + return getToken(PostgreSQLParser.REPLICATION, i); + } + public List NOREPLICATION() { return getTokens(PostgreSQLParser.NOREPLICATION); } + public TerminalNode NOREPLICATION(int i) { + return getToken(PostgreSQLParser.NOREPLICATION, i); + } + public List BYPASSRLS() { return getTokens(PostgreSQLParser.BYPASSRLS); } + public TerminalNode BYPASSRLS(int i) { + return getToken(PostgreSQLParser.BYPASSRLS, i); + } + public List NOBYPASSRLS() { return getTokens(PostgreSQLParser.NOBYPASSRLS); } + public TerminalNode NOBYPASSRLS(int i) { + return getToken(PostgreSQLParser.NOBYPASSRLS, i); + } + public List CONNECTION() { return getTokens(PostgreSQLParser.CONNECTION); } + public TerminalNode CONNECTION(int i) { + return getToken(PostgreSQLParser.CONNECTION, i); + } + public List LIMIT() { return getTokens(PostgreSQLParser.LIMIT); } + public TerminalNode LIMIT(int i) { + return getToken(PostgreSQLParser.LIMIT, i); + } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public List PASSWORD() { return getTokens(PostgreSQLParser.PASSWORD); } + public TerminalNode PASSWORD(int i) { + return getToken(PostgreSQLParser.PASSWORD, i); + } + public List VALID() { return getTokens(PostgreSQLParser.VALID); } + public TerminalNode VALID(int i) { + return getToken(PostgreSQLParser.VALID, i); + } + public List UNTIL() { return getTokens(PostgreSQLParser.UNTIL); } + public TerminalNode UNTIL(int i) { + return getToken(PostgreSQLParser.UNTIL, i); + } + public List SINGLEQ_STRING_LITERAL() { return getTokens(PostgreSQLParser.SINGLEQ_STRING_LITERAL); } + public TerminalNode SINGLEQ_STRING_LITERAL(int i) { + return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, i); + } + public List IN() { return getTokens(PostgreSQLParser.IN); } + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + public List name_list() { + return getRuleContexts(Name_listContext.class); + } + public Name_listContext name_list(int i) { + return getRuleContext(Name_listContext.class,i); + } + public List GROUP() { return getTokens(PostgreSQLParser.GROUP); } + public TerminalNode GROUP(int i) { + return getToken(PostgreSQLParser.GROUP, i); + } + public List ADMIN() { return getTokens(PostgreSQLParser.ADMIN); } + public TerminalNode ADMIN(int i) { + return getToken(PostgreSQLParser.ADMIN, i); + } + public List USER() { return getTokens(PostgreSQLParser.USER); } + public TerminalNode USER(int i) { + return getToken(PostgreSQLParser.USER, i); + } + public List SYSID() { return getTokens(PostgreSQLParser.SYSID); } + public TerminalNode SYSID(int i) { + return getToken(PostgreSQLParser.SYSID, i); + } + public List NULL() { return getTokens(PostgreSQLParser.NULL); } + public TerminalNode NULL(int i) { + return getToken(PostgreSQLParser.NULL, i); + } + public List ENCRYPTED() { return getTokens(PostgreSQLParser.ENCRYPTED); } + public TerminalNode ENCRYPTED(int i) { + return getToken(PostgreSQLParser.ENCRYPTED, i); + } + public Create_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_role_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_role_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_role_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_role_stmtContext create_role_stmt() throws RecognitionException { + Create_role_stmtContext _localctx = new Create_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_create_role_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2796); + match(CREATE); + setState(2797); + match(ROLE); + setState(2798); + ((Create_role_stmtContext)_localctx).role = role_name(); + setState(2845); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ADMIN || _la==CONNECTION || _la==CREATEDB || _la==ENCRYPTED || _la==IN || _la==NOCREATEDB || _la==PASSWORD || _la==ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 646)) & ~0x3f) == 0 && ((1L << (_la - 646)) & ((1L << (WITH - 646)) | (1L << (SUPERUSER - 646)) | (1L << (NOSUPERUSER - 646)) | (1L << (CREATEROLE - 646)) | (1L << (NOCREATEROLE - 646)) | (1L << (INHERIT - 646)) | (1L << (NOINHERIT - 646)) | (1L << (LOGIN - 646)) | (1L << (NOLOGIN - 646)) | (1L << (REPLICATION - 646)) | (1L << (NOREPLICATION - 646)) | (1L << (BYPASSRLS - 646)) | (1L << (NOBYPASSRLS - 646)))) != 0)) { + { + setState(2800); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2799); + match(WITH); + } + } + + setState(2841); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + setState(2841); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { + case 1: + { + setState(2802); + match(SUPERUSER); + } + break; + case 2: + { + setState(2803); + match(NOSUPERUSER); + } + break; + case 3: + { + setState(2804); + match(CREATEDB); + } + break; + case 4: + { + setState(2805); + match(NOCREATEDB); + } + break; + case 5: + { + setState(2806); + match(CREATEROLE); + } + break; + case 6: + { + setState(2807); + match(NOCREATEROLE); + } + break; + case 7: + { + setState(2808); + match(INHERIT); + } + break; + case 8: + { + setState(2809); + match(NOINHERIT); + } + break; + case 9: + { + setState(2810); + match(LOGIN); + } + break; + case 10: + { + setState(2811); + match(NOLOGIN); + } + break; + case 11: + { + setState(2812); + match(REPLICATION); + } + break; + case 12: + { + setState(2813); + match(NOREPLICATION); + } + break; + case 13: + { + setState(2814); + match(BYPASSRLS); + } + break; + case 14: + { + setState(2815); + match(NOBYPASSRLS); + } + break; + case 15: + { + setState(2816); + match(CONNECTION); + setState(2817); + match(LIMIT); + setState(2818); + match(INTEGER_LITERAL); + } + break; + case 16: + { + setState(2820); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ENCRYPTED) { + { + setState(2819); + match(ENCRYPTED); + } + } + + setState(2822); + match(PASSWORD); + setState(2823); + _la = _input.LA(1); + if ( !(_la==NULL || _la==SINGLEQ_STRING_LITERAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 17: + { + setState(2824); + match(VALID); + setState(2825); + match(UNTIL); + setState(2826); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 18: + { + setState(2827); + match(IN); + setState(2828); + match(ROLE); + setState(2829); + name_list(); + } + break; + case 19: + { + setState(2830); + match(IN); + setState(2831); + match(GROUP); + setState(2832); + name_list(); + } + break; + case 20: + { + setState(2833); + match(ROLE); + setState(2834); + name_list(); + } + break; + case 21: + { + setState(2835); + match(ADMIN); + setState(2836); + name_list(); + } + break; + case 22: + { + setState(2837); + match(USER); + setState(2838); + name_list(); + } + break; + case 23: + { + setState(2839); + match(SYSID); + setState(2840); + match(INTEGER_LITERAL); + } + break; + } + } + setState(2843); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==ADMIN || _la==CONNECTION || _la==CREATEDB || _la==ENCRYPTED || _la==IN || _la==NOCREATEDB || _la==PASSWORD || _la==ROLE || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SYSID - 564)) | (1L << (USER - 564)) | (1L << (VALID - 564)))) != 0) || ((((_la - 655)) & ~0x3f) == 0 && ((1L << (_la - 655)) & ((1L << (SUPERUSER - 655)) | (1L << (NOSUPERUSER - 655)) | (1L << (CREATEROLE - 655)) | (1L << (NOCREATEROLE - 655)) | (1L << (INHERIT - 655)) | (1L << (NOINHERIT - 655)) | (1L << (LOGIN - 655)) | (1L << (NOLOGIN - 655)) | (1L << (REPLICATION - 655)) | (1L << (NOREPLICATION - 655)) | (1L << (BYPASSRLS - 655)) | (1L << (NOBYPASSRLS - 655)))) != 0) ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_rule_eventContext extends ParserRuleContext { + public TerminalNode SELECT() { return getToken(PostgreSQLParser.SELECT, 0); } + public TerminalNode INSERT() { return getToken(PostgreSQLParser.INSERT, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public TerminalNode DELETE() { return getToken(PostgreSQLParser.DELETE, 0); } + public Create_rule_eventContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_rule_event; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_rule_event(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_rule_event(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_rule_event(this); + else return visitor.visitChildren(this); + } + } + + public final Create_rule_eventContext create_rule_event() throws RecognitionException { + Create_rule_eventContext _localctx = new Create_rule_eventContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_create_rule_event); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2847); + _la = _input.LA(1); + if ( !(_la==DELETE || _la==INSERT || _la==SELECT || _la==UPDATE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_rule_stmtContext extends ParserRuleContext { + public Name_Context name; + public Create_rule_eventContext event; + public IdentifierContext tableName; + public IdentifierContext command; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode RULE() { return getToken(PostgreSQLParser.RULE, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode DO() { return getToken(PostgreSQLParser.DO, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Create_rule_eventContext create_rule_event() { + return getRuleContext(Create_rule_eventContext.class,0); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode NOTHING() { return getToken(PostgreSQLParser.NOTHING, 0); } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public TerminalNode REPLACE() { return getToken(PostgreSQLParser.REPLACE, 0); } + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public TerminalNode ALSO() { return getToken(PostgreSQLParser.ALSO, 0); } + public TerminalNode INSTEAD() { return getToken(PostgreSQLParser.INSTEAD, 0); } + public Create_rule_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_rule_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_rule_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_rule_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_rule_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_rule_stmtContext create_rule_stmt() throws RecognitionException { + Create_rule_stmtContext _localctx = new Create_rule_stmtContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_create_rule_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2849); + match(CREATE); + setState(2852); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(2850); + match(OR); + setState(2851); + match(REPLACE); + } + } + + setState(2854); + match(RULE); + setState(2855); + ((Create_rule_stmtContext)_localctx).name = name_(); + setState(2856); + match(AS); + setState(2857); + match(ON); + setState(2858); + ((Create_rule_stmtContext)_localctx).event = create_rule_event(); + setState(2859); + match(TO); + setState(2860); + ((Create_rule_stmtContext)_localctx).tableName = identifier(0); + setState(2863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2861); + match(WHERE); + setState(2862); + predicate(0); + } + } + + setState(2865); + match(DO); + setState(2867); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { + case 1: + { + setState(2866); + _la = _input.LA(1); + if ( !(_la==ALSO || _la==INSTEAD) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(2871); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,252,_ctx) ) { + case 1: + { + setState(2869); + match(NOTHING); + } + break; + case 2: + { + setState(2870); + ((Create_rule_stmtContext)_localctx).command = identifier(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_schema_stmtContext extends ParserRuleContext { + public IdentifierContext schema_name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode AUTHORIZATION() { return getToken(PostgreSQLParser.AUTHORIZATION, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public Todo_fill_inContext todo_fill_in() { + return getRuleContext(Todo_fill_inContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Create_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_schema_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_schema_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_schema_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_schema_stmtContext create_schema_stmt() throws RecognitionException { + Create_schema_stmtContext _localctx = new Create_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_create_schema_stmt); + int _la; + try { + setState(2907); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,257,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(2873); + match(CREATE); + setState(2874); + match(SCHEMA); + setState(2875); + ((Create_schema_stmtContext)_localctx).schema_name = identifier(0); + setState(2878); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,253,_ctx) ) { + case 1: + { + setState(2876); + match(AUTHORIZATION); + setState(2877); + role_name(); + } + break; + } + setState(2881); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,254,_ctx) ) { + case 1: + { + setState(2880); + todo_fill_in(); + } + break; + } + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(2883); + match(CREATE); + setState(2884); + match(SCHEMA); + setState(2885); + match(AUTHORIZATION); + setState(2886); + role_name(); + setState(2888); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,255,_ctx) ) { + case 1: + { + setState(2887); + todo_fill_in(); + } + break; + } + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + { + setState(2890); + match(CREATE); + setState(2891); + match(SCHEMA); + setState(2892); + match(IF); + setState(2893); + match(NOT); + setState(2894); + match(EXISTS); + setState(2895); + ((Create_schema_stmtContext)_localctx).schema_name = identifier(0); + setState(2898); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AUTHORIZATION) { + { + setState(2896); + match(AUTHORIZATION); + setState(2897); + role_name(); + } + } + + } + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + { + setState(2900); + match(CREATE); + setState(2901); + match(SCHEMA); + setState(2902); + match(IF); + setState(2903); + match(NOT); + setState(2904); + match(EXISTS); + setState(2905); + match(AUTHORIZATION); + setState(2906); + role_name(); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_sequence_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public Token increment; + public Token minvalue; + public Token maxvalue; + public Token start; + public Token cache; + public IdentifierContext table_name; + public IdentifierContext column_name_; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode SEQUENCE() { return getToken(PostgreSQLParser.SEQUENCE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode INCREMENT() { return getToken(PostgreSQLParser.INCREMENT, 0); } + public TerminalNode MINVALUE() { return getToken(PostgreSQLParser.MINVALUE, 0); } + public List NO() { return getTokens(PostgreSQLParser.NO); } + public TerminalNode NO(int i) { + return getToken(PostgreSQLParser.NO, i); + } + public TerminalNode MAXVALUE() { return getToken(PostgreSQLParser.MAXVALUE, 0); } + public TerminalNode START() { return getToken(PostgreSQLParser.START, 0); } + public TerminalNode CACHE() { return getToken(PostgreSQLParser.CACHE, 0); } + public TerminalNode CYCLE() { return getToken(PostgreSQLParser.CYCLE, 0); } + public TerminalNode OWNED() { return getToken(PostgreSQLParser.OWNED, 0); } + public List BY() { return getTokens(PostgreSQLParser.BY); } + public TerminalNode BY(int i) { + return getToken(PostgreSQLParser.BY, i); + } + public TerminalNode TEMPORARY() { return getToken(PostgreSQLParser.TEMPORARY, 0); } + public TerminalNode TEMP() { return getToken(PostgreSQLParser.TEMP, 0); } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public TerminalNode NONE() { return getToken(PostgreSQLParser.NONE, 0); } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode DOT() { return getToken(PostgreSQLParser.DOT, 0); } + public Create_sequence_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_sequence_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_sequence_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_sequence_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_sequence_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_sequence_stmtContext create_sequence_stmt() throws RecognitionException { + Create_sequence_stmtContext _localctx = new Create_sequence_stmtContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_create_sequence_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2909); + match(CREATE); + setState(2911); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TEMP || _la==TEMPORARY) { + { + setState(2910); + _la = _input.LA(1); + if ( !(_la==TEMP || _la==TEMPORARY) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(2913); + match(SEQUENCE); + setState(2917); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(2914); + match(IF); + setState(2915); + match(NOT); + setState(2916); + match(EXISTS); + } + } + + setState(2919); + ((Create_sequence_stmtContext)_localctx).name = identifier(0); + setState(2925); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INCREMENT) { + { + setState(2920); + match(INCREMENT); + setState(2922); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BY) { + { + setState(2921); + match(BY); + } + } + + setState(2924); + ((Create_sequence_stmtContext)_localctx).increment = match(INTEGER_LITERAL); + } + } + + setState(2931); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,262,_ctx) ) { + case 1: + { + setState(2927); + match(MINVALUE); + setState(2928); + ((Create_sequence_stmtContext)_localctx).minvalue = match(INTEGER_LITERAL); + } + break; + case 2: + { + setState(2929); + match(NO); + setState(2930); + match(MINVALUE); + } + break; + } + setState(2937); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,263,_ctx) ) { + case 1: + { + setState(2933); + match(MAXVALUE); + setState(2934); + ((Create_sequence_stmtContext)_localctx).maxvalue = match(INTEGER_LITERAL); + } + break; + case 2: + { + setState(2935); + match(NO); + setState(2936); + match(MAXVALUE); + } + break; + } + setState(2944); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==START) { + { + setState(2939); + match(START); + setState(2941); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(2940); + match(WITH); + } + } + + setState(2943); + ((Create_sequence_stmtContext)_localctx).start = match(INTEGER_LITERAL); + } + } + + setState(2948); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CACHE) { + { + setState(2946); + match(CACHE); + setState(2947); + ((Create_sequence_stmtContext)_localctx).cache = match(INTEGER_LITERAL); + } + } + + setState(2954); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CYCLE || _la==NO) { + { + setState(2951); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NO) { + { + setState(2950); + match(NO); + } + } + + setState(2953); + match(CYCLE); + } + } + + setState(2965); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OWNED) { + { + setState(2956); + match(OWNED); + setState(2957); + match(BY); + setState(2963); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,269,_ctx) ) { + case 1: + { + { + setState(2958); + ((Create_sequence_stmtContext)_localctx).table_name = identifier(0); + setState(2959); + match(DOT); + setState(2960); + ((Create_sequence_stmtContext)_localctx).column_name_ = identifier(0); + } + } + break; + case 2: + { + setState(2962); + match(NONE); + } + break; + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_server_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_server_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_server_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_server_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_server_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_server_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_server_stmtContext create_server_stmt() throws RecognitionException { + Create_server_stmtContext _localctx = new Create_server_stmtContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_create_server_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2967); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_statistics_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_statistics_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_statistics_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_statistics_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_statistics_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_statistics_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_statistics_stmtContext create_statistics_stmt() throws RecognitionException { + Create_statistics_stmtContext _localctx = new Create_statistics_stmtContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_create_statistics_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2969); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_subscription_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_subscription_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_subscription_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_subscription_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_subscription_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_subscription_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_subscription_stmtContext create_subscription_stmt() throws RecognitionException { + Create_subscription_stmtContext _localctx = new Create_subscription_stmtContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_create_subscription_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2971); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_table_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_table_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_table_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_table_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_table_stmtContext create_table_stmt() throws RecognitionException { + Create_table_stmtContext _localctx = new Create_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_create_table_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2973); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_table_as_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_table_as_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_table_as_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_table_as_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_table_as_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_table_as_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_table_as_stmtContext create_table_as_stmt() throws RecognitionException { + Create_table_as_stmtContext _localctx = new Create_table_as_stmtContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_create_table_as_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2975); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_tablespace_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_tablespace_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_tablespace_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_tablespace_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_tablespace_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_tablespace_stmtContext create_tablespace_stmt() throws RecognitionException { + Create_tablespace_stmtContext _localctx = new Create_tablespace_stmtContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_create_tablespace_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2977); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_config_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_text_search_config_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_text_search_config_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_text_search_config_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_text_search_config_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_config_stmtContext create_text_search_config_stmt() throws RecognitionException { + Create_text_search_config_stmtContext _localctx = new Create_text_search_config_stmtContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_create_text_search_config_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2979); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_dict_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_text_search_dict_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_text_search_dict_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_text_search_dict_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_text_search_dict_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_dict_stmtContext create_text_search_dict_stmt() throws RecognitionException { + Create_text_search_dict_stmtContext _localctx = new Create_text_search_dict_stmtContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_create_text_search_dict_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2981); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_parser_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_text_search_parser_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_text_search_parser_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_text_search_parser_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_text_search_parser_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_parser_stmtContext create_text_search_parser_stmt() throws RecognitionException { + Create_text_search_parser_stmtContext _localctx = new Create_text_search_parser_stmtContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_create_text_search_parser_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2983); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_text_search_template_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_text_search_template_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_text_search_template_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_text_search_template_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_text_search_template_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_text_search_template_stmtContext create_text_search_template_stmt() throws RecognitionException { + Create_text_search_template_stmtContext _localctx = new Create_text_search_template_stmtContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_create_text_search_template_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2985); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_transform_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_transform_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_transform_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_transform_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_transform_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_transform_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_transform_stmtContext create_transform_stmt() throws RecognitionException { + Create_transform_stmtContext _localctx = new Create_transform_stmtContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_create_transform_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2987); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_trigger_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_trigger_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_trigger_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_trigger_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_trigger_stmtContext create_trigger_stmt() throws RecognitionException { + Create_trigger_stmtContext _localctx = new Create_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_create_trigger_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2989); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_type_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_type_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_type_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_type_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_type_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_type_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_type_stmtContext create_type_stmt() throws RecognitionException { + Create_type_stmtContext _localctx = new Create_type_stmtContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_create_type_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2991); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_user_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_user_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_user_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_user_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_user_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_user_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_user_stmtContext create_user_stmt() throws RecognitionException { + Create_user_stmtContext _localctx = new Create_user_stmtContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_create_user_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2993); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_user_mapping_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Create_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_user_mapping_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_user_mapping_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_user_mapping_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_user_mapping_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_user_mapping_stmtContext create_user_mapping_stmt() throws RecognitionException { + Create_user_mapping_stmtContext _localctx = new Create_user_mapping_stmtContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_create_user_mapping_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(2995); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Create_view_stmtContext extends ParserRuleContext { + public Name_Context name; + public TerminalNode CREATE() { return getToken(PostgreSQLParser.CREATE, 0); } + public TerminalNode VIEW() { return getToken(PostgreSQLParser.VIEW, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public TerminalNode REPLACE() { return getToken(PostgreSQLParser.REPLACE, 0); } + public TerminalNode RECURSIVE() { return getToken(PostgreSQLParser.RECURSIVE, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public List WITH() { return getTokens(PostgreSQLParser.WITH); } + public TerminalNode WITH(int i) { + return getToken(PostgreSQLParser.WITH, i); + } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode CHECK() { return getToken(PostgreSQLParser.CHECK, 0); } + public TerminalNode OPTION() { return getToken(PostgreSQLParser.OPTION, 0); } + public TerminalNode TEMP() { return getToken(PostgreSQLParser.TEMP, 0); } + public TerminalNode TEMPORARY() { return getToken(PostgreSQLParser.TEMPORARY, 0); } + public TerminalNode CASCADED() { return getToken(PostgreSQLParser.CASCADED, 0); } + public TerminalNode LOCAL() { return getToken(PostgreSQLParser.LOCAL, 0); } + public Create_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_create_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCreate_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCreate_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCreate_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Create_view_stmtContext create_view_stmt() throws RecognitionException { + Create_view_stmtContext _localctx = new Create_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_create_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2997); + match(CREATE); + setState(3000); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OR) { + { + setState(2998); + match(OR); + setState(2999); + match(REPLACE); + } + } + + setState(3003); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TEMP || _la==TEMPORARY) { + { + setState(3002); + _la = _input.LA(1); + if ( !(_la==TEMP || _la==TEMPORARY) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3006); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RECURSIVE) { + { + setState(3005); + match(RECURSIVE); + } + } + + setState(3008); + match(VIEW); + setState(3009); + ((Create_view_stmtContext)_localctx).name = name_(); + setState(3014); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(3010); + match(OPEN_PAREN); + setState(3011); + name_list(); + setState(3012); + match(CLOSE_PAREN); + } + } + + setState(3021); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(3016); + match(WITH); + setState(3017); + match(OPEN_PAREN); + setState(3018); + option_list(); + setState(3019); + match(CLOSE_PAREN); + } + } + + setState(3023); + match(AS); + setState(3026); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { + case 1: + { + setState(3024); + select_stmt(); + } + break; + case 2: + { + setState(3025); + values_stmt(); + } + break; + } + setState(3034); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(3028); + match(WITH); + setState(3030); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADED || _la==LOCAL) { + { + setState(3029); + _la = _input.LA(1); + if ( !(_la==CASCADED || _la==LOCAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3032); + match(CHECK); + setState(3033); + match(OPTION); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Deallocate_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Deallocate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_deallocate_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDeallocate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDeallocate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDeallocate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Deallocate_stmtContext deallocate_stmt() throws RecognitionException { + Deallocate_stmtContext _localctx = new Deallocate_stmtContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_deallocate_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3036); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Declare_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Declare_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_declare_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDeclare_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDeclare_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDeclare_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Declare_stmtContext declare_stmt() throws RecognitionException { + Declare_stmtContext _localctx = new Declare_stmtContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_declare_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3038); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Delete_stmtContext extends ParserRuleContext { + public IdentifierContext cursor_name_; + public TerminalNode DELETE() { return getToken(PostgreSQLParser.DELETE, 0); } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class,0); + } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public AliasContext alias() { + return getRuleContext(AliasContext.class,0); + } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public Returning_clauseContext returning_clause() { + return getRuleContext(Returning_clauseContext.class,0); + } + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public TerminalNode CURRENT() { return getToken(PostgreSQLParser.CURRENT, 0); } + public TerminalNode OF() { return getToken(PostgreSQLParser.OF, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Delete_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_delete_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDelete_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDelete_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDelete_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Delete_stmtContext delete_stmt() throws RecognitionException { + Delete_stmtContext _localctx = new Delete_stmtContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_delete_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3041); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(3040); + with_clause(); + } + } + + setState(3043); + match(DELETE); + setState(3044); + match(FROM); + setState(3046); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(3045); + match(ONLY); + } + } + + setState(3048); + table_name_(); + setState(3050); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(3049); + match(STAR); + } + } + + setState(3056); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(3053); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(3052); + match(AS); + } + } + + setState(3055); + alias(); + } + } + + setState(3060); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(3058); + match(USING); + setState(3059); + identifier_list(); + } + } + + setState(3067); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,285,_ctx) ) { + case 1: + { + setState(3062); + where_clause(); + } + break; + case 2: + { + { + setState(3063); + match(WHERE); + setState(3064); + match(CURRENT); + setState(3065); + match(OF); + setState(3066); + ((Delete_stmtContext)_localctx).cursor_name_ = identifier(0); + } + } + break; + } + setState(3070); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RETURNING) { + { + setState(3069); + returning_clause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Discard_stmtContext extends ParserRuleContext { + public TerminalNode DISCARD() { return getToken(PostgreSQLParser.DISCARD, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode PLANS() { return getToken(PostgreSQLParser.PLANS, 0); } + public TerminalNode SEQUENCES() { return getToken(PostgreSQLParser.SEQUENCES, 0); } + public TerminalNode TEMPORARY() { return getToken(PostgreSQLParser.TEMPORARY, 0); } + public TerminalNode TEMP() { return getToken(PostgreSQLParser.TEMP, 0); } + public Discard_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_discard_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDiscard_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDiscard_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDiscard_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Discard_stmtContext discard_stmt() throws RecognitionException { + Discard_stmtContext _localctx = new Discard_stmtContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_discard_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3072); + match(DISCARD); + setState(3073); + _la = _input.LA(1); + if ( !(_la==ALL || _la==PLANS || ((((_la - 514)) & ~0x3f) == 0 && ((1L << (_la - 514)) & ((1L << (SEQUENCES - 514)) | (1L << (TEMP - 514)) | (1L << (TEMPORARY - 514)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_stmtContext extends ParserRuleContext { + public Drop_access_method_stmtContext drop_access_method_stmt() { + return getRuleContext(Drop_access_method_stmtContext.class,0); + } + public Drop_aggregate_stmtContext drop_aggregate_stmt() { + return getRuleContext(Drop_aggregate_stmtContext.class,0); + } + public Drop_cast_stmtContext drop_cast_stmt() { + return getRuleContext(Drop_cast_stmtContext.class,0); + } + public Drop_collation_stmtContext drop_collation_stmt() { + return getRuleContext(Drop_collation_stmtContext.class,0); + } + public Drop_conversion_stmtContext drop_conversion_stmt() { + return getRuleContext(Drop_conversion_stmtContext.class,0); + } + public Drop_database_stmtContext drop_database_stmt() { + return getRuleContext(Drop_database_stmtContext.class,0); + } + public Drop_domain_stmtContext drop_domain_stmt() { + return getRuleContext(Drop_domain_stmtContext.class,0); + } + public Drop_event_trigger_stmtContext drop_event_trigger_stmt() { + return getRuleContext(Drop_event_trigger_stmtContext.class,0); + } + public Drop_extension_stmtContext drop_extension_stmt() { + return getRuleContext(Drop_extension_stmtContext.class,0); + } + public Drop_foreign_data_wrapper_stmtContext drop_foreign_data_wrapper_stmt() { + return getRuleContext(Drop_foreign_data_wrapper_stmtContext.class,0); + } + public Drop_foreign_table_stmtContext drop_foreign_table_stmt() { + return getRuleContext(Drop_foreign_table_stmtContext.class,0); + } + public Drop_function_stmtContext drop_function_stmt() { + return getRuleContext(Drop_function_stmtContext.class,0); + } + public Drop_group_stmtContext drop_group_stmt() { + return getRuleContext(Drop_group_stmtContext.class,0); + } + public Drop_index_stmtContext drop_index_stmt() { + return getRuleContext(Drop_index_stmtContext.class,0); + } + public Drop_language_stmtContext drop_language_stmt() { + return getRuleContext(Drop_language_stmtContext.class,0); + } + public Drop_materialized_view_stmtContext drop_materialized_view_stmt() { + return getRuleContext(Drop_materialized_view_stmtContext.class,0); + } + public Drop_operator_stmtContext drop_operator_stmt() { + return getRuleContext(Drop_operator_stmtContext.class,0); + } + public Drop_operator_class_stmtContext drop_operator_class_stmt() { + return getRuleContext(Drop_operator_class_stmtContext.class,0); + } + public Drop_operator_family_stmtContext drop_operator_family_stmt() { + return getRuleContext(Drop_operator_family_stmtContext.class,0); + } + public Drop_owned_stmtContext drop_owned_stmt() { + return getRuleContext(Drop_owned_stmtContext.class,0); + } + public Drop_policy_stmtContext drop_policy_stmt() { + return getRuleContext(Drop_policy_stmtContext.class,0); + } + public Drop_publication_stmtContext drop_publication_stmt() { + return getRuleContext(Drop_publication_stmtContext.class,0); + } + public Drop_role_stmtContext drop_role_stmt() { + return getRuleContext(Drop_role_stmtContext.class,0); + } + public Drop_rule_stmtContext drop_rule_stmt() { + return getRuleContext(Drop_rule_stmtContext.class,0); + } + public Drop_schema_stmtContext drop_schema_stmt() { + return getRuleContext(Drop_schema_stmtContext.class,0); + } + public Drop_sequence_stmtContext drop_sequence_stmt() { + return getRuleContext(Drop_sequence_stmtContext.class,0); + } + public Drop_server_stmtContext drop_server_stmt() { + return getRuleContext(Drop_server_stmtContext.class,0); + } + public Drop_statistics_stmtContext drop_statistics_stmt() { + return getRuleContext(Drop_statistics_stmtContext.class,0); + } + public Drop_subscription_stmtContext drop_subscription_stmt() { + return getRuleContext(Drop_subscription_stmtContext.class,0); + } + public Drop_table_stmtContext drop_table_stmt() { + return getRuleContext(Drop_table_stmtContext.class,0); + } + public Drop_tablespace_stmtContext drop_tablespace_stmt() { + return getRuleContext(Drop_tablespace_stmtContext.class,0); + } + public Drop_text_search_config_stmtContext drop_text_search_config_stmt() { + return getRuleContext(Drop_text_search_config_stmtContext.class,0); + } + public Drop_text_search_dict_stmtContext drop_text_search_dict_stmt() { + return getRuleContext(Drop_text_search_dict_stmtContext.class,0); + } + public Drop_text_search_parser_stmtContext drop_text_search_parser_stmt() { + return getRuleContext(Drop_text_search_parser_stmtContext.class,0); + } + public Drop_text_search_template_stmtContext drop_text_search_template_stmt() { + return getRuleContext(Drop_text_search_template_stmtContext.class,0); + } + public Drop_transform_stmtContext drop_transform_stmt() { + return getRuleContext(Drop_transform_stmtContext.class,0); + } + public Drop_trigger_stmtContext drop_trigger_stmt() { + return getRuleContext(Drop_trigger_stmtContext.class,0); + } + public Drop_type_stmtContext drop_type_stmt() { + return getRuleContext(Drop_type_stmtContext.class,0); + } + public Drop_user_stmtContext drop_user_stmt() { + return getRuleContext(Drop_user_stmtContext.class,0); + } + public Drop_user_mapping_stmtContext drop_user_mapping_stmt() { + return getRuleContext(Drop_user_mapping_stmtContext.class,0); + } + public Drop_view_stmtContext drop_view_stmt() { + return getRuleContext(Drop_view_stmtContext.class,0); + } + public Drop_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_stmtContext drop_stmt() throws RecognitionException { + Drop_stmtContext _localctx = new Drop_stmtContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_drop_stmt); + try { + setState(3116); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,287,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3075); + drop_access_method_stmt(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3076); + drop_aggregate_stmt(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3077); + drop_cast_stmt(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3078); + drop_collation_stmt(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(3079); + drop_conversion_stmt(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(3080); + drop_database_stmt(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(3081); + drop_domain_stmt(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(3082); + drop_event_trigger_stmt(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(3083); + drop_extension_stmt(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(3084); + drop_foreign_data_wrapper_stmt(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(3085); + drop_foreign_table_stmt(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(3086); + drop_function_stmt(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(3087); + drop_group_stmt(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(3088); + drop_index_stmt(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(3089); + drop_language_stmt(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(3090); + drop_materialized_view_stmt(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(3091); + drop_operator_stmt(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(3092); + drop_operator_class_stmt(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(3093); + drop_operator_family_stmt(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(3094); + drop_owned_stmt(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(3095); + drop_policy_stmt(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(3096); + drop_publication_stmt(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(3097); + drop_role_stmt(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(3098); + drop_rule_stmt(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(3099); + drop_schema_stmt(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(3100); + drop_sequence_stmt(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(3101); + drop_server_stmt(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(3102); + drop_statistics_stmt(); + } + break; + case 29: + enterOuterAlt(_localctx, 29); + { + setState(3103); + drop_subscription_stmt(); + } + break; + case 30: + enterOuterAlt(_localctx, 30); + { + setState(3104); + drop_table_stmt(); + } + break; + case 31: + enterOuterAlt(_localctx, 31); + { + setState(3105); + drop_tablespace_stmt(); + } + break; + case 32: + enterOuterAlt(_localctx, 32); + { + setState(3106); + drop_text_search_config_stmt(); + } + break; + case 33: + enterOuterAlt(_localctx, 33); + { + setState(3107); + drop_text_search_dict_stmt(); + } + break; + case 34: + enterOuterAlt(_localctx, 34); + { + setState(3108); + drop_text_search_parser_stmt(); + } + break; + case 35: + enterOuterAlt(_localctx, 35); + { + setState(3109); + drop_text_search_template_stmt(); + } + break; + case 36: + enterOuterAlt(_localctx, 36); + { + setState(3110); + drop_transform_stmt(); + } + break; + case 37: + enterOuterAlt(_localctx, 37); + { + setState(3111); + drop_trigger_stmt(); + } + break; + case 38: + enterOuterAlt(_localctx, 38); + { + setState(3112); + drop_type_stmt(); + } + break; + case 39: + enterOuterAlt(_localctx, 39); + { + setState(3113); + drop_user_stmt(); + } + break; + case 40: + enterOuterAlt(_localctx, 40); + { + setState(3114); + drop_user_mapping_stmt(); + } + break; + case 41: + enterOuterAlt(_localctx, 41); + { + setState(3115); + drop_view_stmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_access_method_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode ACCESS() { return getToken(PostgreSQLParser.ACCESS, 0); } + public TerminalNode METHOD() { return getToken(PostgreSQLParser.METHOD, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_access_method_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_access_method_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_access_method_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_access_method_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_access_method_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_access_method_stmtContext drop_access_method_stmt() throws RecognitionException { + Drop_access_method_stmtContext _localctx = new Drop_access_method_stmtContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_drop_access_method_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3118); + match(DROP); + setState(3119); + match(ACCESS); + setState(3120); + match(METHOD); + setState(3123); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3121); + match(IF); + setState(3122); + match(EXISTS); + } + } + + setState(3125); + ((Drop_access_method_stmtContext)_localctx).name = identifier(0); + setState(3127); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3126); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_aggregate_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode AGGREGATE() { return getToken(PostgreSQLParser.AGGREGATE, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Aggregate_signatureContext aggregate_signature() { + return getRuleContext(Aggregate_signatureContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_aggregate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_aggregate_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_aggregate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_aggregate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_aggregate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_aggregate_stmtContext drop_aggregate_stmt() throws RecognitionException { + Drop_aggregate_stmtContext _localctx = new Drop_aggregate_stmtContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_drop_aggregate_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3129); + match(DROP); + setState(3130); + match(AGGREGATE); + setState(3133); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3131); + match(IF); + setState(3132); + match(EXISTS); + } + } + + setState(3135); + ((Drop_aggregate_stmtContext)_localctx).name = identifier(0); + setState(3136); + match(OPEN_PAREN); + setState(3137); + aggregate_signature(); + setState(3138); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_cast_stmtContext extends ParserRuleContext { + public Data_typeContext source_type; + public IdentifierContext target_type; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode CAST() { return getToken(PostgreSQLParser.CAST, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_cast_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_cast_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_cast_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_cast_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_cast_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_cast_stmtContext drop_cast_stmt() throws RecognitionException { + Drop_cast_stmtContext _localctx = new Drop_cast_stmtContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_drop_cast_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3140); + match(DROP); + setState(3141); + match(CAST); + setState(3144); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3142); + match(IF); + setState(3143); + match(EXISTS); + } + } + + setState(3146); + match(OPEN_PAREN); + setState(3147); + ((Drop_cast_stmtContext)_localctx).source_type = data_type(); + setState(3148); + match(AS); + setState(3149); + ((Drop_cast_stmtContext)_localctx).target_type = identifier(0); + setState(3150); + match(CLOSE_PAREN); + setState(3152); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3151); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_collation_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode COLLATION() { return getToken(PostgreSQLParser.COLLATION, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_collation_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_collation_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_collation_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_collation_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_collation_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_collation_stmtContext drop_collation_stmt() throws RecognitionException { + Drop_collation_stmtContext _localctx = new Drop_collation_stmtContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_drop_collation_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3154); + match(DROP); + setState(3155); + match(COLLATION); + setState(3158); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3156); + match(IF); + setState(3157); + match(EXISTS); + } + } + + setState(3160); + ((Drop_collation_stmtContext)_localctx).names = identifier_list(); + setState(3162); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3161); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_conversion_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode CONVERSION() { return getToken(PostgreSQLParser.CONVERSION, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_conversion_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_conversion_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_conversion_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_conversion_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_conversion_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_conversion_stmtContext drop_conversion_stmt() throws RecognitionException { + Drop_conversion_stmtContext _localctx = new Drop_conversion_stmtContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_drop_conversion_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3164); + match(DROP); + setState(3165); + match(CONVERSION); + setState(3168); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3166); + match(IF); + setState(3167); + match(EXISTS); + } + } + + setState(3170); + ((Drop_conversion_stmtContext)_localctx).name = identifier(0); + setState(3172); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3171); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_database_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode DATABASE() { return getToken(PostgreSQLParser.DATABASE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_database_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_database_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_database_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_database_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_database_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_database_stmtContext drop_database_stmt() throws RecognitionException { + Drop_database_stmtContext _localctx = new Drop_database_stmtContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_drop_database_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3174); + match(DROP); + setState(3175); + match(DATABASE); + setState(3178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3176); + match(IF); + setState(3177); + match(EXISTS); + } + } + + setState(3180); + ((Drop_database_stmtContext)_localctx).name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_domain_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode DOMAIN() { return getToken(PostgreSQLParser.DOMAIN, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_domain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_domain_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_domain_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_domain_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_domain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_domain_stmtContext drop_domain_stmt() throws RecognitionException { + Drop_domain_stmtContext _localctx = new Drop_domain_stmtContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_drop_domain_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3182); + match(DROP); + setState(3183); + match(DOMAIN); + setState(3186); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3184); + match(IF); + setState(3185); + match(EXISTS); + } + } + + setState(3188); + ((Drop_domain_stmtContext)_localctx).names = identifier_list(); + setState(3190); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3189); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_event_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode EVENT() { return getToken(PostgreSQLParser.EVENT, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_event_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_event_trigger_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_event_trigger_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_event_trigger_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_event_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_event_trigger_stmtContext drop_event_trigger_stmt() throws RecognitionException { + Drop_event_trigger_stmtContext _localctx = new Drop_event_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_drop_event_trigger_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3192); + match(DROP); + setState(3193); + match(EVENT); + setState(3194); + match(TRIGGER); + setState(3197); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3195); + match(IF); + setState(3196); + match(EXISTS); + } + } + + setState(3199); + ((Drop_event_trigger_stmtContext)_localctx).name = identifier(0); + setState(3201); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3200); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_extension_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode EXTENSION() { return getToken(PostgreSQLParser.EXTENSION, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_extension_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_extension_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_extension_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_extension_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_extension_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_extension_stmtContext drop_extension_stmt() throws RecognitionException { + Drop_extension_stmtContext _localctx = new Drop_extension_stmtContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_drop_extension_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3203); + match(DROP); + setState(3204); + match(EXTENSION); + setState(3207); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3205); + match(IF); + setState(3206); + match(EXISTS); + } + } + + setState(3209); + ((Drop_extension_stmtContext)_localctx).names = identifier_list(); + setState(3211); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3210); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_foreign_data_wrapper_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode DATA() { return getToken(PostgreSQLParser.DATA, 0); } + public TerminalNode WRAPPER() { return getToken(PostgreSQLParser.WRAPPER, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_foreign_data_wrapper_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_foreign_data_wrapper_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_foreign_data_wrapper_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_foreign_data_wrapper_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_foreign_data_wrapper_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_foreign_data_wrapper_stmtContext drop_foreign_data_wrapper_stmt() throws RecognitionException { + Drop_foreign_data_wrapper_stmtContext _localctx = new Drop_foreign_data_wrapper_stmtContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_drop_foreign_data_wrapper_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3213); + match(DROP); + setState(3214); + match(FOREIGN); + setState(3215); + match(DATA); + setState(3216); + match(WRAPPER); + setState(3219); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3217); + match(IF); + setState(3218); + match(EXISTS); + } + } + + setState(3221); + ((Drop_foreign_data_wrapper_stmtContext)_localctx).names = identifier_list(); + setState(3223); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3222); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_foreign_table_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_foreign_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_foreign_table_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_foreign_table_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_foreign_table_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_foreign_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_foreign_table_stmtContext drop_foreign_table_stmt() throws RecognitionException { + Drop_foreign_table_stmtContext _localctx = new Drop_foreign_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_drop_foreign_table_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3225); + match(DROP); + setState(3226); + match(FOREIGN); + setState(3227); + match(TABLE); + setState(3230); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3228); + match(IF); + setState(3229); + match(EXISTS); + } + } + + setState(3232); + ((Drop_foreign_table_stmtContext)_localctx).names = identifier_list(); + setState(3234); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3233); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_function_stmtContext extends ParserRuleContext { + public Func_sig_listContext functions; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode FUNCTION() { return getToken(PostgreSQLParser.FUNCTION, 0); } + public Func_sig_listContext func_sig_list() { + return getRuleContext(Func_sig_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_function_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_function_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_function_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_function_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_function_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_function_stmtContext drop_function_stmt() throws RecognitionException { + Drop_function_stmtContext _localctx = new Drop_function_stmtContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_drop_function_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3236); + match(DROP); + setState(3237); + match(FUNCTION); + setState(3240); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3238); + match(IF); + setState(3239); + match(EXISTS); + } + } + + setState(3242); + ((Drop_function_stmtContext)_localctx).functions = func_sig_list(); + setState(3244); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3243); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_group_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode GROUP() { return getToken(PostgreSQLParser.GROUP, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_group_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_group_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_group_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_group_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_group_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_group_stmtContext drop_group_stmt() throws RecognitionException { + Drop_group_stmtContext _localctx = new Drop_group_stmtContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_drop_group_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3246); + match(DROP); + setState(3247); + match(GROUP); + setState(3250); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3248); + match(IF); + setState(3249); + match(EXISTS); + } + } + + setState(3252); + ((Drop_group_stmtContext)_localctx).names = identifier_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_index_stmtContext extends ParserRuleContext { + public Name_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public TerminalNode CONCURRENTLY() { return getToken(PostgreSQLParser.CONCURRENTLY, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_index_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_index_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_index_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_index_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_index_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_index_stmtContext drop_index_stmt() throws RecognitionException { + Drop_index_stmtContext _localctx = new Drop_index_stmtContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_drop_index_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3254); + match(DROP); + setState(3255); + match(INDEX); + setState(3257); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CONCURRENTLY) { + { + setState(3256); + match(CONCURRENTLY); + } + } + + setState(3261); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3259); + match(IF); + setState(3260); + match(EXISTS); + } + } + + setState(3263); + ((Drop_index_stmtContext)_localctx).names = name_list(); + setState(3265); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3264); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_language_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode LANGUAGE() { return getToken(PostgreSQLParser.LANGUAGE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode PROCEDURAL() { return getToken(PostgreSQLParser.PROCEDURAL, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_language_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_language_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_language_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_language_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_language_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_language_stmtContext drop_language_stmt() throws RecognitionException { + Drop_language_stmtContext _localctx = new Drop_language_stmtContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_drop_language_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3267); + match(DROP); + setState(3269); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROCEDURAL) { + { + setState(3268); + match(PROCEDURAL); + } + } + + setState(3271); + match(LANGUAGE); + setState(3274); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3272); + match(IF); + setState(3273); + match(EXISTS); + } + } + + setState(3276); + ((Drop_language_stmtContext)_localctx).name = identifier(0); + setState(3278); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3277); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_materialized_view_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode MATERIALIZED() { return getToken(PostgreSQLParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PostgreSQLParser.VIEW, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_materialized_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_materialized_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_materialized_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_materialized_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_materialized_view_stmtContext drop_materialized_view_stmt() throws RecognitionException { + Drop_materialized_view_stmtContext _localctx = new Drop_materialized_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_drop_materialized_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3280); + match(DROP); + setState(3281); + match(MATERIALIZED); + setState(3282); + match(VIEW); + setState(3285); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3283); + match(IF); + setState(3284); + match(EXISTS); + } + } + + setState(3287); + ((Drop_materialized_view_stmtContext)_localctx).names = identifier_list(); + setState(3289); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3288); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_operator_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Drop_operator_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_operator_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_operator_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_operator_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_operator_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_operator_stmtContext drop_operator_stmt() throws RecognitionException { + Drop_operator_stmtContext _localctx = new Drop_operator_stmtContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_drop_operator_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3291); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_operator_class_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode CLASS() { return getToken(PostgreSQLParser.CLASS, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_operator_class_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_operator_class_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_operator_class_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_operator_class_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_operator_class_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_operator_class_stmtContext drop_operator_class_stmt() throws RecognitionException { + Drop_operator_class_stmtContext _localctx = new Drop_operator_class_stmtContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_drop_operator_class_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3293); + match(DROP); + setState(3294); + match(OPERATOR); + setState(3295); + match(CLASS); + setState(3298); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3296); + match(IF); + setState(3297); + match(EXISTS); + } + } + + setState(3300); + ((Drop_operator_class_stmtContext)_localctx).name = identifier(0); + setState(3301); + match(USING); + setState(3302); + index_method(); + setState(3304); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3303); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_operator_family_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode FAMILY() { return getToken(PostgreSQLParser.FAMILY, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_operator_family_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_operator_family_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_operator_family_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_operator_family_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_operator_family_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_operator_family_stmtContext drop_operator_family_stmt() throws RecognitionException { + Drop_operator_family_stmtContext _localctx = new Drop_operator_family_stmtContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_drop_operator_family_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3306); + match(DROP); + setState(3307); + match(OPERATOR); + setState(3308); + match(FAMILY); + setState(3311); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3309); + match(IF); + setState(3310); + match(EXISTS); + } + } + + setState(3313); + ((Drop_operator_family_stmtContext)_localctx).name = identifier(0); + setState(3314); + match(USING); + setState(3315); + index_method(); + setState(3317); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3316); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_owned_stmtContext extends ParserRuleContext { + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode OWNED() { return getToken(PostgreSQLParser.OWNED, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public Role_name_listContext role_name_list() { + return getRuleContext(Role_name_listContext.class,0); + } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_owned_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_owned_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_owned_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_owned_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_owned_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_owned_stmtContext drop_owned_stmt() throws RecognitionException { + Drop_owned_stmtContext _localctx = new Drop_owned_stmtContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_drop_owned_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3319); + match(DROP); + setState(3320); + match(OWNED); + setState(3321); + match(BY); + setState(3322); + role_name_list(); + setState(3324); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3323); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_policy_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode POLICY() { return getToken(PostgreSQLParser.POLICY, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_policy_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_policy_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_policy_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_policy_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_policy_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_policy_stmtContext drop_policy_stmt() throws RecognitionException { + Drop_policy_stmtContext _localctx = new Drop_policy_stmtContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_drop_policy_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3326); + match(DROP); + setState(3327); + match(POLICY); + setState(3330); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3328); + match(IF); + setState(3329); + match(EXISTS); + } + } + + setState(3332); + ((Drop_policy_stmtContext)_localctx).name = identifier(0); + setState(3333); + match(ON); + setState(3334); + ((Drop_policy_stmtContext)_localctx).table_name = identifier(0); + setState(3336); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3335); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_publication_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode PUBLICATION() { return getToken(PostgreSQLParser.PUBLICATION, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_publication_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_publication_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_publication_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_publication_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_publication_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_publication_stmtContext drop_publication_stmt() throws RecognitionException { + Drop_publication_stmtContext _localctx = new Drop_publication_stmtContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_drop_publication_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3338); + match(DROP); + setState(3339); + match(PUBLICATION); + setState(3342); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3340); + match(IF); + setState(3341); + match(EXISTS); + } + } + + setState(3344); + ((Drop_publication_stmtContext)_localctx).names = identifier_list(); + setState(3346); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3345); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_role_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode ROLE() { return getToken(PostgreSQLParser.ROLE, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_role_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_role_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_role_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_role_stmtContext drop_role_stmt() throws RecognitionException { + Drop_role_stmtContext _localctx = new Drop_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_drop_role_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3348); + match(DROP); + setState(3349); + match(ROLE); + setState(3352); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3350); + match(IF); + setState(3351); + match(EXISTS); + } + } + + setState(3354); + ((Drop_role_stmtContext)_localctx).names = identifier_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_rule_stmtContext extends ParserRuleContext { + public Name_Context name; + public IdentifierContext table_name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode RULE() { return getToken(PostgreSQLParser.RULE, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_rule_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_rule_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_rule_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_rule_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_rule_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_rule_stmtContext drop_rule_stmt() throws RecognitionException { + Drop_rule_stmtContext _localctx = new Drop_rule_stmtContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_drop_rule_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3356); + match(DROP); + setState(3357); + match(RULE); + setState(3360); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3358); + match(IF); + setState(3359); + match(EXISTS); + } + } + + setState(3362); + ((Drop_rule_stmtContext)_localctx).name = name_(); + setState(3363); + match(ON); + setState(3364); + ((Drop_rule_stmtContext)_localctx).table_name = identifier(0); + setState(3366); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3365); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_schema_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_schema_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_schema_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_schema_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_schema_stmtContext drop_schema_stmt() throws RecognitionException { + Drop_schema_stmtContext _localctx = new Drop_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_drop_schema_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3368); + match(DROP); + setState(3369); + match(SCHEMA); + setState(3372); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3370); + match(IF); + setState(3371); + match(EXISTS); + } + } + + setState(3374); + ((Drop_schema_stmtContext)_localctx).names = identifier_list(); + setState(3376); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3375); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_sequence_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode SEQUENCE() { return getToken(PostgreSQLParser.SEQUENCE, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_sequence_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_sequence_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_sequence_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_sequence_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_sequence_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_sequence_stmtContext drop_sequence_stmt() throws RecognitionException { + Drop_sequence_stmtContext _localctx = new Drop_sequence_stmtContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_drop_sequence_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3378); + match(DROP); + setState(3379); + match(SEQUENCE); + setState(3382); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3380); + match(IF); + setState(3381); + match(EXISTS); + } + } + + setState(3384); + ((Drop_sequence_stmtContext)_localctx).names = identifier_list(); + setState(3386); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3385); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_server_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode SERVER() { return getToken(PostgreSQLParser.SERVER, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_server_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_server_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_server_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_server_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_server_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_server_stmtContext drop_server_stmt() throws RecognitionException { + Drop_server_stmtContext _localctx = new Drop_server_stmtContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_drop_server_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3388); + match(DROP); + setState(3389); + match(SERVER); + setState(3392); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3390); + match(IF); + setState(3391); + match(EXISTS); + } + } + + setState(3394); + ((Drop_server_stmtContext)_localctx).names = identifier_list(); + setState(3396); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3395); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_statistics_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode STATISTICS() { return getToken(PostgreSQLParser.STATISTICS, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_statistics_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_statistics_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_statistics_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_statistics_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_statistics_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_statistics_stmtContext drop_statistics_stmt() throws RecognitionException { + Drop_statistics_stmtContext _localctx = new Drop_statistics_stmtContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_drop_statistics_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3398); + match(DROP); + setState(3399); + match(STATISTICS); + setState(3402); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3400); + match(IF); + setState(3401); + match(EXISTS); + } + } + + setState(3404); + ((Drop_statistics_stmtContext)_localctx).names = identifier_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_subscription_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode SUBSCRIPTION() { return getToken(PostgreSQLParser.SUBSCRIPTION, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_subscription_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_subscription_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_subscription_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_subscription_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_subscription_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_subscription_stmtContext drop_subscription_stmt() throws RecognitionException { + Drop_subscription_stmtContext _localctx = new Drop_subscription_stmtContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_drop_subscription_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3406); + match(DROP); + setState(3407); + match(SUBSCRIPTION); + setState(3410); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3408); + match(IF); + setState(3409); + match(EXISTS); + } + } + + setState(3412); + ((Drop_subscription_stmtContext)_localctx).name = identifier(0); + setState(3414); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3413); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_table_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_table_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_table_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_table_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_table_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_table_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_table_stmtContext drop_table_stmt() throws RecognitionException { + Drop_table_stmtContext _localctx = new Drop_table_stmtContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_drop_table_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3416); + match(DROP); + setState(3417); + match(TABLE); + setState(3420); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3418); + match(IF); + setState(3419); + match(EXISTS); + } + } + + setState(3422); + ((Drop_table_stmtContext)_localctx).names = identifier_list(); + setState(3424); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3423); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_tablespace_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_tablespace_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_tablespace_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_tablespace_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_tablespace_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_tablespace_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_tablespace_stmtContext drop_tablespace_stmt() throws RecognitionException { + Drop_tablespace_stmtContext _localctx = new Drop_tablespace_stmtContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_drop_tablespace_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3426); + match(DROP); + setState(3427); + match(TABLESPACE); + setState(3430); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3428); + match(IF); + setState(3429); + match(EXISTS); + } + } + + setState(3432); + ((Drop_tablespace_stmtContext)_localctx).name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_config_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode CONFIGURATION() { return getToken(PostgreSQLParser.CONFIGURATION, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_text_search_config_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_text_search_config_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_text_search_config_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_text_search_config_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_text_search_config_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_config_stmtContext drop_text_search_config_stmt() throws RecognitionException { + Drop_text_search_config_stmtContext _localctx = new Drop_text_search_config_stmtContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_drop_text_search_config_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3434); + match(DROP); + setState(3435); + match(TEXT); + setState(3436); + match(SEARCH); + setState(3437); + match(CONFIGURATION); + setState(3440); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3438); + match(IF); + setState(3439); + match(EXISTS); + } + } + + setState(3442); + ((Drop_text_search_config_stmtContext)_localctx).name = identifier(0); + setState(3444); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3443); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_dict_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode DICTIONARY() { return getToken(PostgreSQLParser.DICTIONARY, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_text_search_dict_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_text_search_dict_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_text_search_dict_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_text_search_dict_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_text_search_dict_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_dict_stmtContext drop_text_search_dict_stmt() throws RecognitionException { + Drop_text_search_dict_stmtContext _localctx = new Drop_text_search_dict_stmtContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_drop_text_search_dict_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3446); + match(DROP); + setState(3447); + match(TEXT); + setState(3448); + match(SEARCH); + setState(3449); + match(DICTIONARY); + setState(3452); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3450); + match(IF); + setState(3451); + match(EXISTS); + } + } + + setState(3454); + ((Drop_text_search_dict_stmtContext)_localctx).name = identifier(0); + setState(3456); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3455); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_parser_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode PARSER() { return getToken(PostgreSQLParser.PARSER, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_text_search_parser_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_text_search_parser_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_text_search_parser_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_text_search_parser_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_text_search_parser_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_parser_stmtContext drop_text_search_parser_stmt() throws RecognitionException { + Drop_text_search_parser_stmtContext _localctx = new Drop_text_search_parser_stmtContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_drop_text_search_parser_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3458); + match(DROP); + setState(3459); + match(TEXT); + setState(3460); + match(SEARCH); + setState(3461); + match(PARSER); + setState(3464); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3462); + match(IF); + setState(3463); + match(EXISTS); + } + } + + setState(3466); + ((Drop_text_search_parser_stmtContext)_localctx).name = identifier(0); + setState(3468); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3467); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_text_search_template_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode TEMPLATE() { return getToken(PostgreSQLParser.TEMPLATE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_text_search_template_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_text_search_template_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_text_search_template_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_text_search_template_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_text_search_template_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_text_search_template_stmtContext drop_text_search_template_stmt() throws RecognitionException { + Drop_text_search_template_stmtContext _localctx = new Drop_text_search_template_stmtContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_drop_text_search_template_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3470); + match(DROP); + setState(3471); + match(TEXT); + setState(3472); + match(SEARCH); + setState(3473); + match(TEMPLATE); + setState(3476); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3474); + match(IF); + setState(3475); + match(EXISTS); + } + } + + setState(3478); + ((Drop_text_search_template_stmtContext)_localctx).name = identifier(0); + setState(3480); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3479); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_transform_stmtContext extends ParserRuleContext { + public IdentifierContext type_name_; + public IdentifierContext lang_name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TRANSFORM() { return getToken(PostgreSQLParser.TRANSFORM, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode LANGUAGE() { return getToken(PostgreSQLParser.LANGUAGE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_transform_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_transform_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_transform_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_transform_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_transform_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_transform_stmtContext drop_transform_stmt() throws RecognitionException { + Drop_transform_stmtContext _localctx = new Drop_transform_stmtContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_drop_transform_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3482); + match(DROP); + setState(3483); + match(TRANSFORM); + setState(3486); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3484); + match(IF); + setState(3485); + match(EXISTS); + } + } + + setState(3488); + match(FOR); + setState(3489); + ((Drop_transform_stmtContext)_localctx).type_name_ = identifier(0); + setState(3490); + match(LANGUAGE); + setState(3491); + ((Drop_transform_stmtContext)_localctx).lang_name = identifier(0); + setState(3492); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_trigger_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext table_name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_trigger_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_trigger_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_trigger_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_trigger_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_trigger_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_trigger_stmtContext drop_trigger_stmt() throws RecognitionException { + Drop_trigger_stmtContext _localctx = new Drop_trigger_stmtContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_drop_trigger_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3494); + match(DROP); + setState(3495); + match(TRIGGER); + setState(3498); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3496); + match(IF); + setState(3497); + match(EXISTS); + } + } + + setState(3500); + ((Drop_trigger_stmtContext)_localctx).name = identifier(0); + setState(3501); + match(ON); + setState(3502); + ((Drop_trigger_stmtContext)_localctx).table_name = identifier(0); + setState(3504); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3503); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_type_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode TYPE() { return getToken(PostgreSQLParser.TYPE, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_type_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_type_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_type_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_type_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_type_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_type_stmtContext drop_type_stmt() throws RecognitionException { + Drop_type_stmtContext _localctx = new Drop_type_stmtContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_drop_type_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3506); + match(DROP); + setState(3507); + match(TYPE); + setState(3510); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3508); + match(IF); + setState(3509); + match(EXISTS); + } + } + + setState(3512); + ((Drop_type_stmtContext)_localctx).names = identifier_list(); + setState(3514); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3513); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_user_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode USER() { return getToken(PostgreSQLParser.USER, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Drop_user_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_user_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_user_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_user_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_user_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_user_stmtContext drop_user_stmt() throws RecognitionException { + Drop_user_stmtContext _localctx = new Drop_user_stmtContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_drop_user_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3516); + match(DROP); + setState(3517); + match(USER); + setState(3520); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3518); + match(IF); + setState(3519); + match(EXISTS); + } + } + + setState(3522); + ((Drop_user_stmtContext)_localctx).names = identifier_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_user_mapping_stmtContext extends ParserRuleContext { + public Name_Context user_name; + public IdentifierContext server_name; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public List USER() { return getTokens(PostgreSQLParser.USER); } + public TerminalNode USER(int i) { + return getToken(PostgreSQLParser.USER, i); + } + public TerminalNode MAPPING() { return getToken(PostgreSQLParser.MAPPING, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode SERVER() { return getToken(PostgreSQLParser.SERVER, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public TerminalNode PUBLIC() { return getToken(PostgreSQLParser.PUBLIC, 0); } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Drop_user_mapping_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_user_mapping_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_user_mapping_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_user_mapping_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_user_mapping_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_user_mapping_stmtContext drop_user_mapping_stmt() throws RecognitionException { + Drop_user_mapping_stmtContext _localctx = new Drop_user_mapping_stmtContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_drop_user_mapping_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3524); + match(DROP); + setState(3525); + match(USER); + setState(3526); + match(MAPPING); + setState(3529); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3527); + match(IF); + setState(3528); + match(EXISTS); + } + } + + setState(3531); + match(FOR); + setState(3537); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,358,_ctx) ) { + case 1: + { + setState(3532); + ((Drop_user_mapping_stmtContext)_localctx).user_name = name_(); + } + break; + case 2: + { + setState(3533); + match(USER); + } + break; + case 3: + { + setState(3534); + match(CURRENT_USER); + } + break; + case 4: + { + setState(3535); + match(SESSION_USER); + } + break; + case 5: + { + setState(3536); + match(PUBLIC); + } + break; + } + setState(3539); + match(SERVER); + setState(3540); + ((Drop_user_mapping_stmtContext)_localctx).server_name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Drop_view_stmtContext extends ParserRuleContext { + public Identifier_listContext names; + public TerminalNode DROP() { return getToken(PostgreSQLParser.DROP, 0); } + public TerminalNode VIEW() { return getToken(PostgreSQLParser.VIEW, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IF() { return getToken(PostgreSQLParser.IF, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Drop_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_drop_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterDrop_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitDrop_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitDrop_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Drop_view_stmtContext drop_view_stmt() throws RecognitionException { + Drop_view_stmtContext _localctx = new Drop_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_drop_view_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3542); + match(DROP); + setState(3543); + match(VIEW); + setState(3546); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(3544); + match(IF); + setState(3545); + match(EXISTS); + } + } + + setState(3548); + ((Drop_view_stmtContext)_localctx).names = identifier_list(); + setState(3550); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(3549); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Execute_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode EXECUTE() { return getToken(PostgreSQLParser.EXECUTE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class,0); + } + public Execute_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_execute_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExecute_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExecute_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExecute_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Execute_stmtContext execute_stmt() throws RecognitionException { + Execute_stmtContext _localctx = new Execute_stmtContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_execute_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3552); + match(EXECUTE); + setState(3553); + ((Execute_stmtContext)_localctx).name = identifier(0); + setState(3555); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(3554); + expr_list(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Explain_stmtContext extends ParserRuleContext { + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class,0); + } + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class,0); + } + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public Execute_stmtContext execute_stmt() { + return getRuleContext(Execute_stmtContext.class,0); + } + public Declare_stmtContext declare_stmt() { + return getRuleContext(Declare_stmtContext.class,0); + } + public Create_table_as_stmtContext create_table_as_stmt() { + return getRuleContext(Create_table_as_stmtContext.class,0); + } + public Create_materialized_view_stmtContext create_materialized_view_stmt() { + return getRuleContext(Create_materialized_view_stmtContext.class,0); + } + public TerminalNode EXPLAIN() { return getToken(PostgreSQLParser.EXPLAIN, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List explain_parameter() { + return getRuleContexts(Explain_parameterContext.class); + } + public Explain_parameterContext explain_parameter(int i) { + return getRuleContext(Explain_parameterContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode ANALYZE() { return getToken(PostgreSQLParser.ANALYZE, 0); } + public TerminalNode VERBOSE() { return getToken(PostgreSQLParser.VERBOSE, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Explain_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explain_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExplain_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExplain_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExplain_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Explain_stmtContext explain_stmt() throws RecognitionException { + Explain_stmtContext _localctx = new Explain_stmtContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_explain_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3576); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,365,_ctx) ) { + case 1: + { + { + setState(3557); + match(EXPLAIN); + setState(3559); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ANALYZE) { + { + setState(3558); + match(ANALYZE); + } + } + + setState(3562); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VERBOSE) { + { + setState(3561); + match(VERBOSE); + } + } + + } + } + break; + case 2: + { + { + setState(3564); + match(EXPLAIN); + setState(3565); + match(OPEN_PAREN); + setState(3566); + explain_parameter(); + setState(3571); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(3567); + match(COMMA); + setState(3568); + explain_parameter(); + } + } + setState(3573); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(3574); + match(CLOSE_PAREN); + } + } + break; + } + setState(3587); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,366,_ctx) ) { + case 1: + { + setState(3578); + select_stmt(); + } + break; + case 2: + { + setState(3579); + insert_stmt(); + } + break; + case 3: + { + setState(3580); + update_stmt(); + } + break; + case 4: + { + setState(3581); + delete_stmt(); + } + break; + case 5: + { + setState(3582); + values_stmt(); + } + break; + case 6: + { + setState(3583); + execute_stmt(); + } + break; + case 7: + { + setState(3584); + declare_stmt(); + } + break; + case 8: + { + setState(3585); + create_table_as_stmt(); + } + break; + case 9: + { + setState(3586); + create_materialized_view_stmt(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Fetch_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFetch_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFetch_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFetch_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Fetch_stmtContext fetch_stmt() throws RecognitionException { + Fetch_stmtContext _localctx = new Fetch_stmtContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_fetch_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3589); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Grant_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Grant_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_grant_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterGrant_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitGrant_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitGrant_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Grant_stmtContext grant_stmt() throws RecognitionException { + Grant_stmtContext _localctx = new Grant_stmtContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_grant_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3591); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Import_foreign_schema_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Import_foreign_schema_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_import_foreign_schema_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterImport_foreign_schema_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitImport_foreign_schema_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitImport_foreign_schema_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Import_foreign_schema_stmtContext import_foreign_schema_stmt() throws RecognitionException { + Import_foreign_schema_stmtContext _localctx = new Import_foreign_schema_stmtContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_import_foreign_schema_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3593); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Insert_stmtContext extends ParserRuleContext { + public IdentifierContext alias_; + public TerminalNode INSERT() { return getToken(PostgreSQLParser.INSERT, 0); } + public TerminalNode INTO() { return getToken(PostgreSQLParser.INTO, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public TerminalNode VALUES() { return getToken(PostgreSQLParser.VALUES, 0); } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class,0); + } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode OVERRIDING() { return getToken(PostgreSQLParser.OVERRIDING, 0); } + public TerminalNode VALUE() { return getToken(PostgreSQLParser.VALUE, 0); } + public List ON() { return getTokens(PostgreSQLParser.ON); } + public TerminalNode ON(int i) { + return getToken(PostgreSQLParser.ON, i); + } + public TerminalNode CONFLICT() { return getToken(PostgreSQLParser.CONFLICT, 0); } + public Returning_clauseContext returning_clause() { + return getRuleContext(Returning_clauseContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List column_name() { + return getRuleContexts(Column_nameContext.class); + } + public Column_nameContext column_name(int i) { + return getRuleContext(Column_nameContext.class,i); + } + public TerminalNode CONSTRAINT() { return getToken(PostgreSQLParser.CONSTRAINT, 0); } + public List where_clause() { + return getRuleContexts(Where_clauseContext.class); + } + public Where_clauseContext where_clause(int i) { + return getRuleContext(Where_clauseContext.class,i); + } + public TerminalNode SYSTEM() { return getToken(PostgreSQLParser.SYSTEM, 0); } + public TerminalNode USER() { return getToken(PostgreSQLParser.USER, 0); } + public TerminalNode DO() { return getToken(PostgreSQLParser.DO, 0); } + public TerminalNode NOTHING() { return getToken(PostgreSQLParser.NOTHING, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public Updater_clauseContext updater_clause() { + return getRuleContext(Updater_clauseContext.class,0); + } + public Insert_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insert_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterInsert_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitInsert_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitInsert_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Insert_stmtContext insert_stmt() throws RecognitionException { + Insert_stmtContext _localctx = new Insert_stmtContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_insert_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3596); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(3595); + with_clause(); + } + } + + setState(3598); + match(INSERT); + setState(3599); + match(INTO); + setState(3600); + table_name_(); + setState(3603); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(3601); + match(AS); + setState(3602); + ((Insert_stmtContext)_localctx).alias_ = identifier(0); + } + } + + setState(3609); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,369,_ctx) ) { + case 1: + { + setState(3605); + match(OPEN_PAREN); + setState(3606); + name_list(); + setState(3607); + match(CLOSE_PAREN); + } + break; + } + setState(3616); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OVERRIDING) { + { + setState(3611); + match(OVERRIDING); + setState(3613); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SYSTEM || _la==USER) { + { + setState(3612); + _la = _input.LA(1); + if ( !(_la==SYSTEM || _la==USER) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3615); + match(VALUE); + } + } + + setState(3622); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,372,_ctx) ) { + case 1: + { + setState(3618); + match(DEFAULT); + setState(3619); + match(VALUES); + } + break; + case 2: + { + setState(3620); + select_stmt(); + } + break; + case 3: + { + setState(3621); + values_stmt(); + } + break; + } + setState(3651); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ON) { + { + setState(3624); + match(ON); + setState(3625); + match(CONFLICT); + setState(3630); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(3626); + match(OPEN_PAREN); + setState(3627); + column_name(); + setState(3628); + match(CLOSE_PAREN); + } + } + + setState(3635); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ON) { + { + setState(3632); + match(ON); + setState(3633); + match(CONSTRAINT); + setState(3634); + column_name(); + } + } + + setState(3638); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(3637); + where_clause(); + } + } + + setState(3649); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,377,_ctx) ) { + case 1: + { + { + setState(3640); + match(DO); + setState(3641); + match(NOTHING); + } + } + break; + case 2: + { + { + setState(3642); + match(DO); + setState(3643); + match(UPDATE); + setState(3644); + match(SET); + setState(3645); + updater_clause(); + setState(3647); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(3646); + where_clause(); + } + } + + } + } + break; + } + } + } + + setState(3654); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RETURNING) { + { + setState(3653); + returning_clause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Listen_stmtContext extends ParserRuleContext { + public IdentifierContext channel; + public TerminalNode LISTEN() { return getToken(PostgreSQLParser.LISTEN, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Listen_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listen_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterListen_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitListen_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitListen_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Listen_stmtContext listen_stmt() throws RecognitionException { + Listen_stmtContext _localctx = new Listen_stmtContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_listen_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3656); + match(LISTEN); + setState(3657); + ((Listen_stmtContext)_localctx).channel = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Load_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Load_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_load_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterLoad_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitLoad_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitLoad_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Load_stmtContext load_stmt() throws RecognitionException { + Load_stmtContext _localctx = new Load_stmtContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_load_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3659); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Lock_stmtContext extends ParserRuleContext { + public Name_Context name; + public TerminalNode LOCK() { return getToken(PostgreSQLParser.LOCK, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public TerminalNode MODE() { return getToken(PostgreSQLParser.MODE, 0); } + public TerminalNode NOWAIT() { return getToken(PostgreSQLParser.NOWAIT, 0); } + public TerminalNode ACCESS() { return getToken(PostgreSQLParser.ACCESS, 0); } + public TerminalNode SHARE() { return getToken(PostgreSQLParser.SHARE, 0); } + public TerminalNode ROW() { return getToken(PostgreSQLParser.ROW, 0); } + public TerminalNode EXCLUSIVE() { return getToken(PostgreSQLParser.EXCLUSIVE, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public Lock_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lock_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterLock_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitLock_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitLock_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Lock_stmtContext lock_stmt() throws RecognitionException { + Lock_stmtContext _localctx = new Lock_stmtContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_lock_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3661); + match(LOCK); + setState(3663); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLE) { + { + setState(3662); + match(TABLE); + } + } + + setState(3666); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(3665); + match(ONLY); + } + } + + setState(3668); + ((Lock_stmtContext)_localctx).name = name_(); + setState(3670); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(3669); + match(STAR); + } + } + + setState(3692); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN) { + { + setState(3672); + match(IN); + setState(3689); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,383,_ctx) ) { + case 1: + { + setState(3673); + match(ACCESS); + setState(3674); + match(SHARE); + } + break; + case 2: + { + setState(3675); + match(ROW); + setState(3676); + match(SHARE); + } + break; + case 3: + { + setState(3677); + match(ROW); + setState(3678); + match(EXCLUSIVE); + } + break; + case 4: + { + setState(3679); + match(SHARE); + setState(3680); + match(UPDATE); + setState(3681); + match(EXCLUSIVE); + } + break; + case 5: + { + setState(3682); + match(SHARE); + } + break; + case 6: + { + setState(3683); + match(SHARE); + setState(3684); + match(ROW); + setState(3685); + match(EXCLUSIVE); + } + break; + case 7: + { + setState(3686); + match(EXCLUSIVE); + } + break; + case 8: + { + setState(3687); + match(ACCESS); + setState(3688); + match(EXCLUSIVE); + } + break; + } + setState(3691); + match(MODE); + } + } + + setState(3695); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOWAIT) { + { + setState(3694); + match(NOWAIT); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Move_stmtContext extends ParserRuleContext { + public Name_Context cursor_name; + public TerminalNode MOVE() { return getToken(PostgreSQLParser.MOVE, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode NEXT() { return getToken(PostgreSQLParser.NEXT, 0); } + public TerminalNode PRIOR() { return getToken(PostgreSQLParser.PRIOR, 0); } + public TerminalNode FIRST() { return getToken(PostgreSQLParser.FIRST, 0); } + public TerminalNode LAST() { return getToken(PostgreSQLParser.LAST, 0); } + public TerminalNode ABSOLUTE() { return getToken(PostgreSQLParser.ABSOLUTE, 0); } + public TerminalNode INTEGER() { return getToken(PostgreSQLParser.INTEGER, 0); } + public TerminalNode RELATIVE() { return getToken(PostgreSQLParser.RELATIVE, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode FORWARD() { return getToken(PostgreSQLParser.FORWARD, 0); } + public TerminalNode BACKWARD() { return getToken(PostgreSQLParser.BACKWARD, 0); } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public Move_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_move_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterMove_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitMove_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitMove_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Move_stmtContext move_stmt() throws RecognitionException { + Move_stmtContext _localctx = new Move_stmtContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_move_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3697); + match(MOVE); + setState(3721); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,390,_ctx) ) { + case 1: + { + setState(3716); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NEXT: + { + setState(3698); + match(NEXT); + } + break; + case PRIOR: + { + setState(3699); + match(PRIOR); + } + break; + case FIRST: + { + setState(3700); + match(FIRST); + } + break; + case LAST: + { + setState(3701); + match(LAST); + } + break; + case ABSOLUTE: + { + setState(3702); + match(ABSOLUTE); + setState(3703); + match(INTEGER); + } + break; + case RELATIVE: + { + setState(3704); + match(RELATIVE); + setState(3705); + match(INTEGER_LITERAL); + } + break; + case INTEGER_LITERAL: + { + setState(3706); + match(INTEGER_LITERAL); + } + break; + case ALL: + { + setState(3707); + match(ALL); + } + break; + case FORWARD: + { + setState(3708); + match(FORWARD); + setState(3710); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==INTEGER_LITERAL) { + { + setState(3709); + _la = _input.LA(1); + if ( !(_la==ALL || _la==INTEGER_LITERAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + case BACKWARD: + { + setState(3712); + match(BACKWARD); + setState(3714); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==INTEGER_LITERAL) { + { + setState(3713); + _la = _input.LA(1); + if ( !(_la==ALL || _la==INTEGER_LITERAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + setState(3719); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM || _la==IN) { + { + setState(3718); + _la = _input.LA(1); + if ( !(_la==FROM || _la==IN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + break; + } + setState(3723); + ((Move_stmtContext)_localctx).cursor_name = name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Notify_stmtContext extends ParserRuleContext { + public Name_Context channel; + public Token payload; + public TerminalNode NOTIFY() { return getToken(PostgreSQLParser.NOTIFY, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode COMMA() { return getToken(PostgreSQLParser.COMMA, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public Notify_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_notify_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterNotify_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitNotify_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitNotify_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Notify_stmtContext notify_stmt() throws RecognitionException { + Notify_stmtContext _localctx = new Notify_stmtContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_notify_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3725); + match(NOTIFY); + setState(3726); + ((Notify_stmtContext)_localctx).channel = name_(); + setState(3729); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(3727); + match(COMMA); + setState(3728); + ((Notify_stmtContext)_localctx).payload = match(SINGLEQ_STRING_LITERAL); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Prepare_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode PREPARE() { return getToken(PostgreSQLParser.PREPARE, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class,0); + } + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class,0); + } + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Data_type_listContext data_type_list() { + return getRuleContext(Data_type_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Prepare_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_prepare_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterPrepare_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitPrepare_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitPrepare_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Prepare_stmtContext prepare_stmt() throws RecognitionException { + Prepare_stmtContext _localctx = new Prepare_stmtContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_prepare_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3731); + match(PREPARE); + setState(3732); + ((Prepare_stmtContext)_localctx).name = identifier(0); + setState(3737); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(3733); + match(OPEN_PAREN); + setState(3734); + data_type_list(); + setState(3735); + match(CLOSE_PAREN); + } + } + + setState(3739); + match(AS); + setState(3745); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,393,_ctx) ) { + case 1: + { + setState(3740); + select_stmt(); + } + break; + case 2: + { + setState(3741); + insert_stmt(); + } + break; + case 3: + { + setState(3742); + update_stmt(); + } + break; + case 4: + { + setState(3743); + delete_stmt(); + } + break; + case 5: + { + setState(3744); + values_stmt(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Prepare_transaction_stmtContext extends ParserRuleContext { + public Name_Context name; + public TerminalNode PREPARE() { return getToken(PostgreSQLParser.PREPARE, 0); } + public TerminalNode TRANSACTION() { return getToken(PostgreSQLParser.TRANSACTION, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public Prepare_transaction_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_prepare_transaction_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterPrepare_transaction_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitPrepare_transaction_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitPrepare_transaction_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Prepare_transaction_stmtContext prepare_transaction_stmt() throws RecognitionException { + Prepare_transaction_stmtContext _localctx = new Prepare_transaction_stmtContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_prepare_transaction_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3747); + match(PREPARE); + setState(3748); + match(TRANSACTION); + setState(3749); + ((Prepare_transaction_stmtContext)_localctx).name = name_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Reassign_owned_stmtContext extends ParserRuleContext { + public TerminalNode REASSIGN() { return getToken(PostgreSQLParser.REASSIGN, 0); } + public TerminalNode OWNED() { return getToken(PostgreSQLParser.OWNED, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List CURRENT_USER() { return getTokens(PostgreSQLParser.CURRENT_USER); } + public TerminalNode CURRENT_USER(int i) { + return getToken(PostgreSQLParser.CURRENT_USER, i); + } + public List SESSION_USER() { return getTokens(PostgreSQLParser.SESSION_USER); } + public TerminalNode SESSION_USER(int i) { + return getToken(PostgreSQLParser.SESSION_USER, i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Reassign_owned_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_reassign_owned_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterReassign_owned_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitReassign_owned_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitReassign_owned_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Reassign_owned_stmtContext reassign_owned_stmt() throws RecognitionException { + Reassign_owned_stmtContext _localctx = new Reassign_owned_stmtContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_reassign_owned_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3751); + match(REASSIGN); + setState(3752); + match(OWNED); + setState(3753); + match(BY); + { + setState(3757); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(3754); + identifier(0); + } + break; + case CURRENT_USER: + { + setState(3755); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(3756); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + setState(3767); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(3759); + match(COMMA); + setState(3763); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(3760); + identifier(0); + } + break; + case CURRENT_USER: + { + setState(3761); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(3762); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(3769); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + setState(3770); + match(TO); + setState(3774); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(3771); + identifier(0); + } + break; + case CURRENT_USER: + { + setState(3772); + match(CURRENT_USER); + } + break; + case SESSION_USER: + { + setState(3773); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Refresh_materialized_view_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Refresh_materialized_view_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_refresh_materialized_view_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRefresh_materialized_view_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRefresh_materialized_view_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRefresh_materialized_view_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Refresh_materialized_view_stmtContext refresh_materialized_view_stmt() throws RecognitionException { + Refresh_materialized_view_stmtContext _localctx = new Refresh_materialized_view_stmtContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_refresh_materialized_view_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3776); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Reindex_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode REINDEX() { return getToken(PostgreSQLParser.REINDEX, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public TerminalNode DATABASE() { return getToken(PostgreSQLParser.DATABASE, 0); } + public TerminalNode SYSTEM() { return getToken(PostgreSQLParser.SYSTEM, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode VERBOSE() { return getToken(PostgreSQLParser.VERBOSE, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Reindex_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_reindex_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterReindex_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitReindex_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitReindex_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Reindex_stmtContext reindex_stmt() throws RecognitionException { + Reindex_stmtContext _localctx = new Reindex_stmtContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_reindex_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3778); + match(REINDEX); + setState(3782); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(3779); + match(OPEN_PAREN); + setState(3780); + match(VERBOSE); + setState(3781); + match(CLOSE_PAREN); + } + } + + setState(3784); + _la = _input.LA(1); + if ( !(_la==DATABASE || _la==INDEX || _la==SCHEMA || _la==SYSTEM || _la==TABLE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3785); + ((Reindex_stmtContext)_localctx).name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Release_savepoint_stmtContext extends ParserRuleContext { + public IdentifierContext savepoint_name; + public TerminalNode RELEASE() { return getToken(PostgreSQLParser.RELEASE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode SAVEPOINT() { return getToken(PostgreSQLParser.SAVEPOINT, 0); } + public Release_savepoint_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_release_savepoint_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRelease_savepoint_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRelease_savepoint_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRelease_savepoint_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Release_savepoint_stmtContext release_savepoint_stmt() throws RecognitionException { + Release_savepoint_stmtContext _localctx = new Release_savepoint_stmtContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_release_savepoint_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3787); + match(RELEASE); + setState(3789); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,399,_ctx) ) { + case 1: + { + setState(3788); + match(SAVEPOINT); + } + break; + } + setState(3791); + ((Release_savepoint_stmtContext)_localctx).savepoint_name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Reset_stmtContext extends ParserRuleContext { + public IdentifierContext configuration_parameter; + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Reset_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_reset_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterReset_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitReset_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitReset_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Reset_stmtContext reset_stmt() throws RecognitionException { + Reset_stmtContext _localctx = new Reset_stmtContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_reset_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3793); + match(RESET); + setState(3796); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(3794); + ((Reset_stmtContext)_localctx).configuration_parameter = identifier(0); + } + break; + case ALL: + { + setState(3795); + match(ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Revoke_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Revoke_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_revoke_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRevoke_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRevoke_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRevoke_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Revoke_stmtContext revoke_stmt() throws RecognitionException { + Revoke_stmtContext _localctx = new Revoke_stmtContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_revoke_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3798); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Rollback_stmtContext extends ParserRuleContext { + public TerminalNode ROLLBACK() { return getToken(PostgreSQLParser.ROLLBACK, 0); } + public TerminalNode WORK() { return getToken(PostgreSQLParser.WORK, 0); } + public TerminalNode TRANSACTION() { return getToken(PostgreSQLParser.TRANSACTION, 0); } + public Rollback_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_rollback_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRollback_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRollback_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRollback_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Rollback_stmtContext rollback_stmt() throws RecognitionException { + Rollback_stmtContext _localctx = new Rollback_stmtContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_rollback_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3800); + match(ROLLBACK); + setState(3802); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TRANSACTION || _la==WORK) { + { + setState(3801); + _la = _input.LA(1); + if ( !(_la==TRANSACTION || _la==WORK) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Rollback_prepared_stmtContext extends ParserRuleContext { + public Token transaction_id; + public TerminalNode ROLLBACK() { return getToken(PostgreSQLParser.ROLLBACK, 0); } + public TerminalNode PREPARED() { return getToken(PostgreSQLParser.PREPARED, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public Rollback_prepared_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_rollback_prepared_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRollback_prepared_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRollback_prepared_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRollback_prepared_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Rollback_prepared_stmtContext rollback_prepared_stmt() throws RecognitionException { + Rollback_prepared_stmtContext _localctx = new Rollback_prepared_stmtContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_rollback_prepared_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3804); + match(ROLLBACK); + setState(3805); + match(PREPARED); + setState(3806); + ((Rollback_prepared_stmtContext)_localctx).transaction_id = match(INTEGER_LITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Rollback_to_savepoint_stmtContext extends ParserRuleContext { + public IdentifierContext savepoint_name; + public TerminalNode ROLLBACK() { return getToken(PostgreSQLParser.ROLLBACK, 0); } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode SAVEPOINT() { return getToken(PostgreSQLParser.SAVEPOINT, 0); } + public TerminalNode WORK() { return getToken(PostgreSQLParser.WORK, 0); } + public TerminalNode TRANSACTION() { return getToken(PostgreSQLParser.TRANSACTION, 0); } + public Rollback_to_savepoint_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_rollback_to_savepoint_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRollback_to_savepoint_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRollback_to_savepoint_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRollback_to_savepoint_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Rollback_to_savepoint_stmtContext rollback_to_savepoint_stmt() throws RecognitionException { + Rollback_to_savepoint_stmtContext _localctx = new Rollback_to_savepoint_stmtContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_rollback_to_savepoint_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3808); + match(ROLLBACK); + setState(3810); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TRANSACTION || _la==WORK) { + { + setState(3809); + _la = _input.LA(1); + if ( !(_la==TRANSACTION || _la==WORK) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(3812); + match(TO); + setState(3814); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,403,_ctx) ) { + case 1: + { + setState(3813); + match(SAVEPOINT); + } + break; + } + setState(3816); + ((Rollback_to_savepoint_stmtContext)_localctx).savepoint_name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Savepoint_stmtContext extends ParserRuleContext { + public IdentifierContext savepoint_name; + public TerminalNode SAVEPOINT() { return getToken(PostgreSQLParser.SAVEPOINT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Savepoint_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_savepoint_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSavepoint_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSavepoint_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSavepoint_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Savepoint_stmtContext savepoint_stmt() throws RecognitionException { + Savepoint_stmtContext _localctx = new Savepoint_stmtContext(_ctx, getState()); + enterRule(_localctx, 340, RULE_savepoint_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(3818); + match(SAVEPOINT); + setState(3819); + ((Savepoint_stmtContext)_localctx).savepoint_name = identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Security_label_stmtContext extends ParserRuleContext { + public Name_Context provider; + public IdentifierContext object_name; + public IdentifierContext table_name; + public Column_nameContext column_name_; + public IdentifierContext aggregate_name; + public IdentifierContext function_name; + public Token large_object_oid; + public Token label; + public TerminalNode SECURITY() { return getToken(PostgreSQLParser.SECURITY, 0); } + public TerminalNode LABEL() { return getToken(PostgreSQLParser.LABEL, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode IS() { return getToken(PostgreSQLParser.IS, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public TerminalNode COLUMN() { return getToken(PostgreSQLParser.COLUMN, 0); } + public TerminalNode DOT() { return getToken(PostgreSQLParser.DOT, 0); } + public TerminalNode AGGREGATE() { return getToken(PostgreSQLParser.AGGREGATE, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Aggregate_signatureContext aggregate_signature() { + return getRuleContext(Aggregate_signatureContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode DATABASE() { return getToken(PostgreSQLParser.DATABASE, 0); } + public TerminalNode DOMAIN() { return getToken(PostgreSQLParser.DOMAIN, 0); } + public TerminalNode EVENT() { return getToken(PostgreSQLParser.EVENT, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode FUNCTION() { return getToken(PostgreSQLParser.FUNCTION, 0); } + public Func_sigContext func_sig() { + return getRuleContext(Func_sigContext.class,0); + } + public TerminalNode LARGE() { return getToken(PostgreSQLParser.LARGE, 0); } + public TerminalNode OBJECT() { return getToken(PostgreSQLParser.OBJECT, 0); } + public TerminalNode MATERIALIZED() { return getToken(PostgreSQLParser.MATERIALIZED, 0); } + public TerminalNode VIEW() { return getToken(PostgreSQLParser.VIEW, 0); } + public TerminalNode LANGUAGE() { return getToken(PostgreSQLParser.LANGUAGE, 0); } + public TerminalNode PUBLICATION() { return getToken(PostgreSQLParser.PUBLICATION, 0); } + public TerminalNode ROLE() { return getToken(PostgreSQLParser.ROLE, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public TerminalNode SEQUENCE() { return getToken(PostgreSQLParser.SEQUENCE, 0); } + public TerminalNode SUBSCRIPTION() { return getToken(PostgreSQLParser.SUBSCRIPTION, 0); } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public TerminalNode TYPE() { return getToken(PostgreSQLParser.TYPE, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class,0); + } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode PROCEDURAL() { return getToken(PostgreSQLParser.PROCEDURAL, 0); } + public Security_label_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_security_label_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSecurity_label_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSecurity_label_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSecurity_label_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Security_label_stmtContext security_label_stmt() throws RecognitionException { + Security_label_stmtContext _localctx = new Security_label_stmtContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_security_label_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3821); + match(SECURITY); + setState(3822); + match(LABEL); + setState(3825); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FOR) { + { + setState(3823); + match(FOR); + setState(3824); + ((Security_label_stmtContext)_localctx).provider = name_(); + } + } + + setState(3827); + match(ON); + setState(3882); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TABLE: + { + setState(3828); + match(TABLE); + setState(3829); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case COLUMN: + { + setState(3830); + match(COLUMN); + setState(3831); + ((Security_label_stmtContext)_localctx).table_name = identifier(0); + setState(3832); + match(DOT); + setState(3833); + ((Security_label_stmtContext)_localctx).column_name_ = column_name(); + } + break; + case AGGREGATE: + { + setState(3835); + match(AGGREGATE); + setState(3836); + ((Security_label_stmtContext)_localctx).aggregate_name = identifier(0); + setState(3837); + match(OPEN_PAREN); + setState(3838); + aggregate_signature(); + setState(3839); + match(CLOSE_PAREN); + } + break; + case DATABASE: + { + setState(3841); + match(DATABASE); + setState(3842); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case DOMAIN: + { + setState(3843); + match(DOMAIN); + setState(3844); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case EVENT: + { + setState(3845); + match(EVENT); + setState(3846); + match(TRIGGER); + setState(3847); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case FOREIGN: + { + setState(3848); + match(FOREIGN); + setState(3849); + match(TABLE); + setState(3850); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case FUNCTION: + { + setState(3851); + match(FUNCTION); + setState(3852); + ((Security_label_stmtContext)_localctx).function_name = identifier(0); + setState(3853); + func_sig(); + } + break; + case LARGE: + { + setState(3855); + match(LARGE); + setState(3856); + match(OBJECT); + setState(3857); + ((Security_label_stmtContext)_localctx).large_object_oid = match(INTEGER_LITERAL); + } + break; + case MATERIALIZED: + { + setState(3858); + match(MATERIALIZED); + setState(3859); + match(VIEW); + setState(3860); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case LANGUAGE: + case PROCEDURAL: + { + setState(3862); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROCEDURAL) { + { + setState(3861); + match(PROCEDURAL); + } + } + + setState(3864); + match(LANGUAGE); + setState(3865); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case PUBLICATION: + { + setState(3866); + match(PUBLICATION); + setState(3867); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case ROLE: + { + setState(3868); + match(ROLE); + setState(3869); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case SCHEMA: + { + setState(3870); + match(SCHEMA); + setState(3871); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case SEQUENCE: + { + setState(3872); + match(SEQUENCE); + setState(3873); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case SUBSCRIPTION: + { + setState(3874); + match(SUBSCRIPTION); + setState(3875); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case TABLESPACE: + { + setState(3876); + match(TABLESPACE); + setState(3877); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case TYPE: + { + setState(3878); + match(TYPE); + setState(3879); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + case VIEW: + { + setState(3880); + match(VIEW); + setState(3881); + ((Security_label_stmtContext)_localctx).object_name = identifier(0); + } + break; + default: + throw new NoViableAltException(this); + } + setState(3884); + match(IS); + setState(3885); + ((Security_label_stmtContext)_localctx).label = match(SINGLEQ_STRING_LITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Select_stmtContext extends ParserRuleContext { + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class,0); + } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public Group_by_clauseContext group_by_clause() { + return getRuleContext(Group_by_clauseContext.class,0); + } + public Having_clauseContext having_clause() { + return getRuleContext(Having_clauseContext.class,0); + } + public Window_clauseContext window_clause() { + return getRuleContext(Window_clauseContext.class,0); + } + public List combine_clause() { + return getRuleContexts(Combine_clauseContext.class); + } + public Combine_clauseContext combine_clause(int i) { + return getRuleContext(Combine_clauseContext.class,i); + } + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class,0); + } + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class,0); + } + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class,0); + } + public Fetch_clauseContext fetch_clause() { + return getRuleContext(Fetch_clauseContext.class,0); + } + public For_clauseContext for_clause() { + return getRuleContext(For_clauseContext.class,0); + } + public TerminalNode SELECT() { return getToken(PostgreSQLParser.SELECT, 0); } + public Selector_clauseContext selector_clause() { + return getRuleContext(Selector_clauseContext.class,0); + } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class,0); + } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public Select_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_select_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSelect_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSelect_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSelect_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Select_stmtContext select_stmt() throws RecognitionException { + Select_stmtContext _localctx = new Select_stmtContext(_ctx, getState()); + enterRule(_localctx, 344, RULE_select_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3888); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(3887); + with_clause(); + } + } + + setState(3916); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: + { + { + setState(3890); + match(SELECT); + setState(3891); + selector_clause(); + setState(3893); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,408,_ctx) ) { + case 1: + { + setState(3892); + from_clause(); + } + break; + } + } + } + break; + case TABLE: + { + { + setState(3895); + match(TABLE); + setState(3897); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(3896); + match(ONLY); + } + } + + setState(3899); + table_name_(); + setState(3901); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,410,_ctx) ) { + case 1: + { + setState(3900); + match(STAR); + } + break; + } + } + } + break; + case OPEN_PAREN: + { + { + setState(3904); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(3903); + match(OPEN_PAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3906); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,411,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(3908); + select_stmt(); + setState(3910); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(3909); + match(CLOSE_PAREN); + } + } + setState(3912); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CLOSE_PAREN ); + setState(3914); + combine_clause(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3919); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,414,_ctx) ) { + case 1: + { + setState(3918); + where_clause(); + } + break; + } + setState(3922); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,415,_ctx) ) { + case 1: + { + setState(3921); + group_by_clause(); + } + break; + } + setState(3925); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,416,_ctx) ) { + case 1: + { + setState(3924); + having_clause(); + } + break; + } + setState(3928); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,417,_ctx) ) { + case 1: + { + setState(3927); + window_clause(); + } + break; + } + setState(3931); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,418,_ctx) ) { + case 1: + { + setState(3930); + combine_clause(); + } + break; + } + setState(3934); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,419,_ctx) ) { + case 1: + { + setState(3933); + order_by_clause(); + } + break; + } + setState(3937); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,420,_ctx) ) { + case 1: + { + setState(3936); + limit_clause(); + } + break; + } + setState(3940); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,421,_ctx) ) { + case 1: + { + setState(3939); + offset_clause(); + } + break; + } + setState(3943); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,422,_ctx) ) { + case 1: + { + setState(3942); + fetch_clause(); + } + break; + } + setState(3946); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,423,_ctx) ) { + case 1: + { + setState(3945); + for_clause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Select_into_stmtContext extends ParserRuleContext { + public Table_name_Context new_table; + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class,0); + } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public Group_by_clauseContext group_by_clause() { + return getRuleContext(Group_by_clauseContext.class,0); + } + public Having_clauseContext having_clause() { + return getRuleContext(Having_clauseContext.class,0); + } + public Window_clauseContext window_clause() { + return getRuleContext(Window_clauseContext.class,0); + } + public List combine_clause() { + return getRuleContexts(Combine_clauseContext.class); + } + public Combine_clauseContext combine_clause(int i) { + return getRuleContext(Combine_clauseContext.class,i); + } + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class,0); + } + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class,0); + } + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class,0); + } + public Fetch_clauseContext fetch_clause() { + return getRuleContext(Fetch_clauseContext.class,0); + } + public For_clauseContext for_clause() { + return getRuleContext(For_clauseContext.class,0); + } + public TerminalNode SELECT() { return getToken(PostgreSQLParser.SELECT, 0); } + public Selector_clauseContext selector_clause() { + return getRuleContext(Selector_clauseContext.class,0); + } + public TerminalNode INTO() { return getToken(PostgreSQLParser.INTO, 0); } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class,0); + } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode TEMPORARY() { return getToken(PostgreSQLParser.TEMPORARY, 0); } + public TerminalNode TEMP() { return getToken(PostgreSQLParser.TEMP, 0); } + public TerminalNode UNLOGGED() { return getToken(PostgreSQLParser.UNLOGGED, 0); } + public Select_into_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_select_into_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSelect_into_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSelect_into_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSelect_into_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Select_into_stmtContext select_into_stmt() throws RecognitionException { + Select_into_stmtContext _localctx = new Select_into_stmtContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_select_into_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3949); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(3948); + with_clause(); + } + } + + setState(3985); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: + { + { + setState(3951); + match(SELECT); + setState(3952); + selector_clause(); + setState(3953); + match(INTO); + setState(3955); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,425,_ctx) ) { + case 1: + { + setState(3954); + _la = _input.LA(1); + if ( !(_la==TEMP || _la==TEMPORARY || _la==UNLOGGED) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(3958); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLE) { + { + setState(3957); + match(TABLE); + } + } + + setState(3960); + ((Select_into_stmtContext)_localctx).new_table = table_name_(); + setState(3962); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM) { + { + setState(3961); + from_clause(); + } + } + + } + } + break; + case TABLE: + { + { + setState(3964); + match(TABLE); + setState(3966); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(3965); + match(ONLY); + } + } + + setState(3968); + table_name_(); + setState(3970); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(3969); + match(STAR); + } + } + + } + } + break; + case OPEN_PAREN: + { + { + setState(3973); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(3972); + match(OPEN_PAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3975); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,430,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(3977); + select_stmt(); + setState(3979); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(3978); + match(CLOSE_PAREN); + } + } + setState(3981); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CLOSE_PAREN ); + setState(3983); + combine_clause(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(3988); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(3987); + where_clause(); + } + } + + setState(3991); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GROUP) { + { + setState(3990); + group_by_clause(); + } + } + + setState(3994); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==HAVING) { + { + setState(3993); + having_clause(); + } + } + + setState(3997); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WINDOW) { + { + setState(3996); + window_clause(); + } + } + + setState(4000); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXCEPT || _la==INTERSECT || _la==UNION) { + { + setState(3999); + combine_clause(); + } + } + + setState(4003); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ORDER) { + { + setState(4002); + order_by_clause(); + } + } + + setState(4006); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LIMIT) { + { + setState(4005); + limit_clause(); + } + } + + setState(4009); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OFFSET) { + { + setState(4008); + offset_clause(); + } + } + + setState(4012); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FETCH) { + { + setState(4011); + fetch_clause(); + } + } + + setState(4015); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FOR) { + { + setState(4014); + for_clause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class With_clauseContext extends ParserRuleContext { + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public List with_expr() { + return getRuleContexts(With_exprContext.class); + } + public With_exprContext with_expr(int i) { + return getRuleContext(With_exprContext.class,i); + } + public TerminalNode RECURSIVE() { return getToken(PostgreSQLParser.RECURSIVE, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public With_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_with_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWith_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWith_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWith_clause(this); + else return visitor.visitChildren(this); + } + } + + public final With_clauseContext with_clause() throws RecognitionException { + With_clauseContext _localctx = new With_clauseContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_with_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4017); + match(WITH); + setState(4019); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,443,_ctx) ) { + case 1: + { + setState(4018); + match(RECURSIVE); + } + break; + } + setState(4021); + with_expr(); + setState(4026); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4022); + match(COMMA); + setState(4023); + with_expr(); + } + } + setState(4028); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class With_exprContext extends ParserRuleContext { + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Insert_stmtContext insert_stmt() { + return getRuleContext(Insert_stmtContext.class,0); + } + public Delete_stmtContext delete_stmt() { + return getRuleContext(Delete_stmtContext.class,0); + } + public Update_stmtContext update_stmt() { + return getRuleContext(Update_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public With_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_with_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWith_expr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWith_expr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWith_expr(this); + else return visitor.visitChildren(this); + } + } + + public final With_exprContext with_expr() throws RecognitionException { + With_exprContext _localctx = new With_exprContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_with_expr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4029); + table_name_(); + setState(4034); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(4030); + match(OPEN_PAREN); + setState(4031); + name_list(); + setState(4032); + match(CLOSE_PAREN); + } + } + + setState(4036); + match(AS); + setState(4037); + match(OPEN_PAREN); + setState(4043); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,446,_ctx) ) { + case 1: + { + setState(4038); + select_stmt(); + } + break; + case 2: + { + setState(4039); + insert_stmt(); + } + break; + case 3: + { + setState(4040); + delete_stmt(); + } + break; + case 4: + { + setState(4041); + update_stmt(); + } + break; + case 5: + { + setState(4042); + values_stmt(); + } + break; + } + setState(4045); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Set_stmtContext extends ParserRuleContext { + public IdentifierContext configuration_parameter; + public Param_valueContext value; + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode TO() { return getToken(PostgreSQLParser.TO, 0); } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class,0); + } + public TerminalNode SESSION() { return getToken(PostgreSQLParser.SESSION, 0); } + public List LOCAL() { return getTokens(PostgreSQLParser.LOCAL); } + public TerminalNode LOCAL(int i) { + return getToken(PostgreSQLParser.LOCAL, i); + } + public TerminalNode TIME() { return getToken(PostgreSQLParser.TIME, 0); } + public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } + public TimezoneContext timezone() { + return getRuleContext(TimezoneContext.class,0); + } + public Set_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_set_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSet_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSet_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSet_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_stmtContext set_stmt() throws RecognitionException { + Set_stmtContext _localctx = new Set_stmtContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_set_stmt); + int _la; + try { + setState(4068); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,451,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4047); + match(SET); + setState(4049); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,447,_ctx) ) { + case 1: + { + setState(4048); + _la = _input.LA(1); + if ( !(_la==LOCAL || _la==SESSION) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(4051); + ((Set_stmtContext)_localctx).configuration_parameter = identifier(0); + setState(4052); + _la = _input.LA(1); + if ( !(_la==TO || _la==EQUAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4055); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case ON: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case YES: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(4053); + ((Set_stmtContext)_localctx).value = param_value(); + } + break; + case DEFAULT: + { + setState(4054); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4057); + match(SET); + setState(4059); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LOCAL || _la==SESSION) { + { + setState(4058); + _la = _input.LA(1); + if ( !(_la==LOCAL || _la==SESSION) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(4061); + match(TIME); + setState(4062); + match(ZONE); + setState(4066); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + { + setState(4063); + timezone(); + } + break; + case LOCAL: + { + setState(4064); + match(LOCAL); + } + break; + case DEFAULT: + { + setState(4065); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Set_constraints_stmtContext extends ParserRuleContext { + public Identifier_listContext constraints; + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode CONSTRAINTS() { return getToken(PostgreSQLParser.CONSTRAINTS, 0); } + public TerminalNode DEFERRED() { return getToken(PostgreSQLParser.DEFERRED, 0); } + public TerminalNode IMMEDIATE() { return getToken(PostgreSQLParser.IMMEDIATE, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public Set_constraints_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_set_constraints_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSet_constraints_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSet_constraints_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSet_constraints_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_constraints_stmtContext set_constraints_stmt() throws RecognitionException { + Set_constraints_stmtContext _localctx = new Set_constraints_stmtContext(_ctx, getState()); + enterRule(_localctx, 354, RULE_set_constraints_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4070); + match(SET); + setState(4071); + match(CONSTRAINTS); + setState(4074); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ALL: + { + setState(4072); + match(ALL); + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(4073); + ((Set_constraints_stmtContext)_localctx).constraints = identifier_list(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4076); + _la = _input.LA(1); + if ( !(_la==DEFERRED || _la==IMMEDIATE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Set_role_stmtContext extends ParserRuleContext { + public Role_nameContext role_name_; + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode ROLE() { return getToken(PostgreSQLParser.ROLE, 0); } + public TerminalNode NONE() { return getToken(PostgreSQLParser.NONE, 0); } + public Role_nameContext role_name() { + return getRuleContext(Role_nameContext.class,0); + } + public TerminalNode SESSION() { return getToken(PostgreSQLParser.SESSION, 0); } + public TerminalNode LOCAL() { return getToken(PostgreSQLParser.LOCAL, 0); } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public Set_role_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_set_role_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSet_role_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSet_role_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSet_role_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_role_stmtContext set_role_stmt() throws RecognitionException { + Set_role_stmtContext _localctx = new Set_role_stmtContext(_ctx, getState()); + enterRule(_localctx, 356, RULE_set_role_stmt); + int _la; + try { + setState(4089); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SET: + enterOuterAlt(_localctx, 1); + { + setState(4078); + match(SET); + setState(4080); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LOCAL || _la==SESSION) { + { + setState(4079); + _la = _input.LA(1); + if ( !(_la==LOCAL || _la==SESSION) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(4082); + match(ROLE); + setState(4085); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,454,_ctx) ) { + case 1: + { + setState(4083); + ((Set_role_stmtContext)_localctx).role_name_ = role_name(); + } + break; + case 2: + { + setState(4084); + match(NONE); + } + break; + } + } + break; + case RESET: + enterOuterAlt(_localctx, 2); + { + setState(4087); + match(RESET); + setState(4088); + match(ROLE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Set_session_authorization_stmtContext extends ParserRuleContext { + public Todo_implementContext todo_implement() { + return getRuleContext(Todo_implementContext.class,0); + } + public Set_session_authorization_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_set_session_authorization_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSet_session_authorization_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSet_session_authorization_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSet_session_authorization_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_session_authorization_stmtContext set_session_authorization_stmt() throws RecognitionException { + Set_session_authorization_stmtContext _localctx = new Set_session_authorization_stmtContext(_ctx, getState()); + enterRule(_localctx, 358, RULE_set_session_authorization_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(4091); + todo_implement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Transaction_modeContext extends ParserRuleContext { + public TerminalNode ISOLATION() { return getToken(PostgreSQLParser.ISOLATION, 0); } + public TerminalNode LEVEL() { return getToken(PostgreSQLParser.LEVEL, 0); } + public TerminalNode SERIALIZABLE() { return getToken(PostgreSQLParser.SERIALIZABLE, 0); } + public TerminalNode REPEATABLE() { return getToken(PostgreSQLParser.REPEATABLE, 0); } + public TerminalNode READ() { return getToken(PostgreSQLParser.READ, 0); } + public TerminalNode COMMITTED() { return getToken(PostgreSQLParser.COMMITTED, 0); } + public TerminalNode UNCOMMITTED() { return getToken(PostgreSQLParser.UNCOMMITTED, 0); } + public TerminalNode WRITE() { return getToken(PostgreSQLParser.WRITE, 0); } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode DEFERRABLE() { return getToken(PostgreSQLParser.DEFERRABLE, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public Transaction_modeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transaction_mode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTransaction_mode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTransaction_mode(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTransaction_mode(this); + else return visitor.visitChildren(this); + } + } + + public final Transaction_modeContext transaction_mode() throws RecognitionException { + Transaction_modeContext _localctx = new Transaction_modeContext(_ctx, getState()); + enterRule(_localctx, 360, RULE_transaction_mode); + int _la; + try { + setState(4112); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,458,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4093); + match(ISOLATION); + setState(4094); + match(LEVEL); + setState(4102); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,456,_ctx) ) { + case 1: + { + setState(4095); + match(SERIALIZABLE); + } + break; + case 2: + { + setState(4096); + match(REPEATABLE); + setState(4097); + match(READ); + } + break; + case 3: + { + setState(4098); + match(READ); + setState(4099); + match(COMMITTED); + } + break; + case 4: + { + setState(4100); + match(READ); + setState(4101); + match(UNCOMMITTED); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4104); + match(READ); + setState(4105); + match(WRITE); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4106); + match(READ); + setState(4107); + match(ONLY); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4109); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(4108); + match(NOT); + } + } + + setState(4111); + match(DEFERRABLE); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Transaction_mode_listContext extends ParserRuleContext { + public List transaction_mode() { + return getRuleContexts(Transaction_modeContext.class); + } + public Transaction_modeContext transaction_mode(int i) { + return getRuleContext(Transaction_modeContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Transaction_mode_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transaction_mode_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTransaction_mode_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTransaction_mode_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTransaction_mode_list(this); + else return visitor.visitChildren(this); + } + } + + public final Transaction_mode_listContext transaction_mode_list() throws RecognitionException { + Transaction_mode_listContext _localctx = new Transaction_mode_listContext(_ctx, getState()); + enterRule(_localctx, 362, RULE_transaction_mode_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4114); + transaction_mode(); + setState(4119); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4115); + match(COMMA); + setState(4116); + transaction_mode(); + } + } + setState(4121); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Set_transaction_stmtContext extends ParserRuleContext { + public Token snapshot_id; + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode TRANSACTION() { return getToken(PostgreSQLParser.TRANSACTION, 0); } + public Transaction_mode_listContext transaction_mode_list() { + return getRuleContext(Transaction_mode_listContext.class,0); + } + public TerminalNode SNAPSHOT() { return getToken(PostgreSQLParser.SNAPSHOT, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode SESSION() { return getToken(PostgreSQLParser.SESSION, 0); } + public TerminalNode CHARACTERISTICS() { return getToken(PostgreSQLParser.CHARACTERISTICS, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public Set_transaction_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_set_transaction_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSet_transaction_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSet_transaction_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSet_transaction_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Set_transaction_stmtContext set_transaction_stmt() throws RecognitionException { + Set_transaction_stmtContext _localctx = new Set_transaction_stmtContext(_ctx, getState()); + enterRule(_localctx, 364, RULE_set_transaction_stmt); + try { + setState(4135); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,460,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4122); + match(SET); + setState(4123); + match(TRANSACTION); + setState(4124); + transaction_mode_list(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4125); + match(SET); + setState(4126); + match(TRANSACTION); + setState(4127); + match(SNAPSHOT); + setState(4128); + ((Set_transaction_stmtContext)_localctx).snapshot_id = match(SINGLEQ_STRING_LITERAL); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4129); + match(SET); + setState(4130); + match(SESSION); + setState(4131); + match(CHARACTERISTICS); + setState(4132); + match(AS); + setState(4133); + match(TRANSACTION); + setState(4134); + transaction_mode_list(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Show_stmtContext extends ParserRuleContext { + public IdentifierContext name; + public TerminalNode SHOW() { return getToken(PostgreSQLParser.SHOW, 0); } + public TerminalNode TIME() { return getToken(PostgreSQLParser.TIME, 0); } + public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Show_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_show_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterShow_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitShow_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitShow_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Show_stmtContext show_stmt() throws RecognitionException { + Show_stmtContext _localctx = new Show_stmtContext(_ctx, getState()); + enterRule(_localctx, 366, RULE_show_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(4137); + match(SHOW); + setState(4142); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,461,_ctx) ) { + case 1: + { + setState(4138); + ((Show_stmtContext)_localctx).name = identifier(0); + } + break; + case 2: + { + setState(4139); + match(TIME); + setState(4140); + match(ZONE); + } + break; + case 3: + { + setState(4141); + match(ALL); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Truncate_stmtContext extends ParserRuleContext { + public TerminalNode TRUNCATE() { return getToken(PostgreSQLParser.TRUNCATE, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public TerminalNode TABLE() { return getToken(PostgreSQLParser.TABLE, 0); } + public List ONLY() { return getTokens(PostgreSQLParser.ONLY); } + public TerminalNode ONLY(int i) { + return getToken(PostgreSQLParser.ONLY, i); + } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public TerminalNode COMMA() { return getToken(PostgreSQLParser.COMMA, 0); } + public Identifier_listContext identifier_list() { + return getRuleContext(Identifier_listContext.class,0); + } + public TerminalNode IDENTITY() { return getToken(PostgreSQLParser.IDENTITY, 0); } + public TerminalNode RESTART() { return getToken(PostgreSQLParser.RESTART, 0); } + public TerminalNode CONTINUE() { return getToken(PostgreSQLParser.CONTINUE, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public Truncate_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_truncate_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTruncate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTruncate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTruncate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Truncate_stmtContext truncate_stmt() throws RecognitionException { + Truncate_stmtContext _localctx = new Truncate_stmtContext(_ctx, getState()); + enterRule(_localctx, 368, RULE_truncate_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4144); + match(TRUNCATE); + setState(4146); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TABLE) { + { + setState(4145); + match(TABLE); + } + } + + setState(4149); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(4148); + match(ONLY); + } + } + + setState(4151); + table_name_(); + setState(4153); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(4152); + match(STAR); + } + } + + setState(4160); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(4155); + match(COMMA); + setState(4157); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(4156); + match(ONLY); + } + } + + setState(4159); + identifier_list(); + } + } + + setState(4164); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CONTINUE || _la==RESTART) { + { + setState(4162); + _la = _input.LA(1); + if ( !(_la==CONTINUE || _la==RESTART) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4163); + match(IDENTITY); + } + } + + setState(4167); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CASCADE || _la==RESTRICT) { + { + setState(4166); + _la = _input.LA(1); + if ( !(_la==CASCADE || _la==RESTRICT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Unlisten_stmtContext extends ParserRuleContext { + public IdentifierContext channel; + public TerminalNode UNLISTEN() { return getToken(PostgreSQLParser.UNLISTEN, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Unlisten_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unlisten_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterUnlisten_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitUnlisten_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitUnlisten_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { + Unlisten_stmtContext _localctx = new Unlisten_stmtContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_unlisten_stmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(4169); + match(UNLISTEN); + setState(4172); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(4170); + ((Unlisten_stmtContext)_localctx).channel = identifier(0); + } + break; + case STAR: + { + setState(4171); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Update_stmtContext extends ParserRuleContext { + public IdentifierContext alias_; + public IdentifierContext cursor_name_; + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public Updater_clauseContext updater_clause() { + return getRuleContext(Updater_clauseContext.class,0); + } + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class,0); + } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class,0); + } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public Returning_clauseContext returning_clause() { + return getRuleContext(Returning_clauseContext.class,0); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public TerminalNode CURRENT() { return getToken(PostgreSQLParser.CURRENT, 0); } + public TerminalNode OF() { return getToken(PostgreSQLParser.OF, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public Update_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_update_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterUpdate_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitUpdate_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitUpdate_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Update_stmtContext update_stmt() throws RecognitionException { + Update_stmtContext _localctx = new Update_stmtContext(_ctx, getState()); + enterRule(_localctx, 372, RULE_update_stmt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4175); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(4174); + with_clause(); + } + } + + setState(4177); + match(UPDATE); + setState(4179); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(4178); + match(ONLY); + } + } + + setState(4181); + table_name_(); + setState(4183); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STAR) { + { + setState(4182); + match(STAR); + } + } + + setState(4189); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,474,_ctx) ) { + case 1: + { + setState(4186); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(4185); + match(AS); + } + } + + setState(4188); + ((Update_stmtContext)_localctx).alias_ = identifier(0); + } + break; + } + setState(4191); + match(SET); + setState(4192); + updater_clause(); + setState(4194); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FROM) { + { + setState(4193); + from_clause(); + } + } + + setState(4201); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,476,_ctx) ) { + case 1: + { + setState(4196); + where_clause(); + } + break; + case 2: + { + { + setState(4197); + match(WHERE); + setState(4198); + match(CURRENT); + setState(4199); + match(OF); + setState(4200); + ((Update_stmtContext)_localctx).cursor_name_ = identifier(0); + } + } + break; + } + setState(4204); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RETURNING) { + { + setState(4203); + returning_clause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Vacuum_optContext extends ParserRuleContext { + public TerminalNode FULL() { return getToken(PostgreSQLParser.FULL, 0); } + public TerminalNode FREEZE() { return getToken(PostgreSQLParser.FREEZE, 0); } + public TerminalNode VERBOSE() { return getToken(PostgreSQLParser.VERBOSE, 0); } + public TerminalNode ANALYZE() { return getToken(PostgreSQLParser.ANALYZE, 0); } + public TerminalNode DISABLE_PAGE_SKIPPING() { return getToken(PostgreSQLParser.DISABLE_PAGE_SKIPPING, 0); } + public Vacuum_optContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_vacuum_opt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterVacuum_opt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitVacuum_opt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitVacuum_opt(this); + else return visitor.visitChildren(this); + } + } + + public final Vacuum_optContext vacuum_opt() throws RecognitionException { + Vacuum_optContext _localctx = new Vacuum_optContext(_ctx, getState()); + enterRule(_localctx, 374, RULE_vacuum_opt); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4206); + _la = _input.LA(1); + if ( !(_la==ANALYZE || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DISABLE_PAGE_SKIPPING - 180)) | (1L << (FREEZE - 180)) | (1L << (FULL - 180)))) != 0) || _la==VERBOSE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Vacuum_opt_listContext extends ParserRuleContext { + public List vacuum_opt() { + return getRuleContexts(Vacuum_optContext.class); + } + public Vacuum_optContext vacuum_opt(int i) { + return getRuleContext(Vacuum_optContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Vacuum_opt_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_vacuum_opt_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterVacuum_opt_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitVacuum_opt_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitVacuum_opt_list(this); + else return visitor.visitChildren(this); + } + } + + public final Vacuum_opt_listContext vacuum_opt_list() throws RecognitionException { + Vacuum_opt_listContext _localctx = new Vacuum_opt_listContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_vacuum_opt_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4208); + vacuum_opt(); + setState(4213); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4209); + match(COMMA); + setState(4210); + vacuum_opt(); + } + } + setState(4215); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Vacuum_stmtContext extends ParserRuleContext { + public Table_name_Context table_name; + public TerminalNode VACUUM() { return getToken(PostgreSQLParser.VACUUM, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public Vacuum_opt_listContext vacuum_opt_list() { + return getRuleContext(Vacuum_opt_listContext.class,0); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public Column_listContext column_list() { + return getRuleContext(Column_listContext.class,0); + } + public TerminalNode FULL() { return getToken(PostgreSQLParser.FULL, 0); } + public TerminalNode FREEZE() { return getToken(PostgreSQLParser.FREEZE, 0); } + public TerminalNode VERBOSE() { return getToken(PostgreSQLParser.VERBOSE, 0); } + public TerminalNode ANALYZE() { return getToken(PostgreSQLParser.ANALYZE, 0); } + public Vacuum_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_vacuum_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterVacuum_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitVacuum_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitVacuum_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { + Vacuum_stmtContext _localctx = new Vacuum_stmtContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_vacuum_stmt); + int _la; + try { + setState(4263); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,490,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4216); + match(VACUUM); + setState(4221); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(4217); + match(OPEN_PAREN); + setState(4218); + vacuum_opt_list(); + setState(4219); + match(CLOSE_PAREN); + } + } + + { + setState(4223); + ((Vacuum_stmtContext)_localctx).table_name = table_name_(); + setState(4228); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(4224); + match(OPEN_PAREN); + setState(4225); + column_list(); + setState(4226); + match(CLOSE_PAREN); + } + } + + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4230); + match(VACUUM); + setState(4232); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FULL) { + { + setState(4231); + match(FULL); + } + } + + setState(4235); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FREEZE) { + { + setState(4234); + match(FREEZE); + } + } + + setState(4238); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VERBOSE) { + { + setState(4237); + match(VERBOSE); + } + } + + setState(4241); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(4240); + ((Vacuum_stmtContext)_localctx).table_name = table_name_(); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4243); + match(VACUUM); + setState(4245); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FULL) { + { + setState(4244); + match(FULL); + } + } + + setState(4248); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FREEZE) { + { + setState(4247); + match(FREEZE); + } + } + + setState(4251); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VERBOSE) { + { + setState(4250); + match(VERBOSE); + } + } + + setState(4253); + match(ANALYZE); + setState(4261); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(4254); + ((Vacuum_stmtContext)_localctx).table_name = table_name_(); + setState(4259); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(4255); + match(OPEN_PAREN); + setState(4256); + column_list(); + setState(4257); + match(CLOSE_PAREN); + } + } + + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Values_stmtContext extends ParserRuleContext { + public With_clauseContext with_clause() { + return getRuleContext(With_clauseContext.class,0); + } + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class,0); + } + public List combine_clause() { + return getRuleContexts(Combine_clauseContext.class); + } + public Combine_clauseContext combine_clause(int i) { + return getRuleContext(Combine_clauseContext.class,i); + } + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class,0); + } + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class,0); + } + public Fetch_clauseContext fetch_clause() { + return getRuleContext(Fetch_clauseContext.class,0); + } + public TerminalNode VALUES() { return getToken(PostgreSQLParser.VALUES, 0); } + public Expr_list_listContext expr_list_list() { + return getRuleContext(Expr_list_listContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public Values_stmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_values_stmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterValues_stmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitValues_stmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitValues_stmt(this); + else return visitor.visitChildren(this); + } + } + + public final Values_stmtContext values_stmt() throws RecognitionException { + Values_stmtContext _localctx = new Values_stmtContext(_ctx, getState()); + enterRule(_localctx, 380, RULE_values_stmt); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4266); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(4265); + with_clause(); + } + } + + setState(4283); + _errHandler.sync(this); + switch (_input.LA(1)) { + case VALUES: + { + { + setState(4268); + match(VALUES); + setState(4269); + expr_list_list(); + } + } + break; + case OPEN_PAREN: + { + { + setState(4271); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(4270); + match(OPEN_PAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4273); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,492,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(4275); + values_stmt(); + setState(4277); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4276); + match(CLOSE_PAREN); + } + } + setState(4279); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CLOSE_PAREN ); + setState(4281); + combine_clause(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4286); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,495,_ctx) ) { + case 1: + { + setState(4285); + order_by_clause(); + } + break; + } + setState(4289); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,496,_ctx) ) { + case 1: + { + setState(4288); + combine_clause(); + } + break; + } + setState(4292); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,497,_ctx) ) { + case 1: + { + setState(4291); + limit_clause(); + } + break; + } + setState(4295); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,498,_ctx) ) { + case 1: + { + setState(4294); + offset_clause(); + } + break; + } + setState(4298); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,499,_ctx) ) { + case 1: + { + setState(4297); + fetch_clause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Selector_clauseContext extends ParserRuleContext { + public Column_listContext column_list() { + return getRuleContext(Column_listContext.class,0); + } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode DISTINCT() { return getToken(PostgreSQLParser.DISTINCT, 0); } + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class,0); + } + public Selector_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selector_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterSelector_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitSelector_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitSelector_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Selector_clauseContext selector_clause() throws RecognitionException { + Selector_clauseContext _localctx = new Selector_clauseContext(_ctx, getState()); + enterRule(_localctx, 382, RULE_selector_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4306); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,501,_ctx) ) { + case 1: + { + setState(4300); + match(ALL); + } + break; + case 2: + { + { + setState(4301); + match(DISTINCT); + setState(4304); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ON) { + { + setState(4302); + match(ON); + setState(4303); + expr_list(); + } + } + + } + } + break; + } + setState(4308); + column_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class From_clauseContext extends ParserRuleContext { + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public List from_item() { + return getRuleContexts(From_itemContext.class); + } + public From_itemContext from_item(int i) { + return getRuleContext(From_itemContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public From_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_from_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFrom_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFrom_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFrom_clause(this); + else return visitor.visitChildren(this); + } + } + + public final From_clauseContext from_clause() throws RecognitionException { + From_clauseContext _localctx = new From_clauseContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_from_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4310); + match(FROM); + setState(4311); + from_item(0); + setState(4316); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,502,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4312); + match(COMMA); + setState(4313); + from_item(0); + } + } + } + setState(4318); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,502,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Where_clauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public Where_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_where_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWhere_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWhere_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWhere_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Where_clauseContext where_clause() throws RecognitionException { + Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState()); + enterRule(_localctx, 386, RULE_where_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4319); + match(WHERE); + setState(4320); + predicate(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Group_by_clauseContext extends ParserRuleContext { + public TerminalNode GROUP() { return getToken(PostgreSQLParser.GROUP, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public List grouping_elem() { + return getRuleContexts(Grouping_elemContext.class); + } + public Grouping_elemContext grouping_elem(int i) { + return getRuleContext(Grouping_elemContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Group_by_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_group_by_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterGroup_by_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitGroup_by_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitGroup_by_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Group_by_clauseContext group_by_clause() throws RecognitionException { + Group_by_clauseContext _localctx = new Group_by_clauseContext(_ctx, getState()); + enterRule(_localctx, 388, RULE_group_by_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4322); + match(GROUP); + setState(4323); + match(BY); + setState(4324); + grouping_elem(); + setState(4329); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,503,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4325); + match(COMMA); + setState(4326); + grouping_elem(); + } + } + } + setState(4331); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,503,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Grouping_elemContext extends ParserRuleContext { + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public List expr_list() { + return getRuleContexts(Expr_listContext.class); + } + public Expr_listContext expr_list(int i) { + return getRuleContext(Expr_listContext.class,i); + } + public TerminalNode ROLLUP() { return getToken(PostgreSQLParser.ROLLUP, 0); } + public TerminalNode CUBE() { return getToken(PostgreSQLParser.CUBE, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public TerminalNode GROUPING() { return getToken(PostgreSQLParser.GROUPING, 0); } + public TerminalNode SETS() { return getToken(PostgreSQLParser.SETS, 0); } + public Grouping_elem_listContext grouping_elem_list() { + return getRuleContext(Grouping_elem_listContext.class,0); + } + public Grouping_elemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_grouping_elem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterGrouping_elem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitGrouping_elem(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitGrouping_elem(this); + else return visitor.visitChildren(this); + } + } + + public final Grouping_elemContext grouping_elem() throws RecognitionException { + Grouping_elemContext _localctx = new Grouping_elemContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_grouping_elem); + int _la; + try { + setState(4357); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,507,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4332); + match(OPEN_PAREN); + setState(4333); + match(CLOSE_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4334); + expr(0); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4335); + expr_list(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4336); + _la = _input.LA(1); + if ( !(_la==CUBE || _la==ROLLUP) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4337); + match(OPEN_PAREN); + setState(4340); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,504,_ctx) ) { + case 1: + { + setState(4338); + expr(0); + } + break; + case 2: + { + setState(4339); + expr_list(); + } + break; + } + setState(4349); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4342); + match(COMMA); + setState(4345); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,505,_ctx) ) { + case 1: + { + setState(4343); + expr(0); + } + break; + case 2: + { + setState(4344); + expr_list(); + } + break; + } + } + } + setState(4351); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(4352); + match(CLOSE_PAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(4354); + match(GROUPING); + setState(4355); + match(SETS); + setState(4356); + grouping_elem_list(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Grouping_elem_listContext extends ParserRuleContext { + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List grouping_elem() { + return getRuleContexts(Grouping_elemContext.class); + } + public Grouping_elemContext grouping_elem(int i) { + return getRuleContext(Grouping_elemContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Grouping_elem_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_grouping_elem_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterGrouping_elem_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitGrouping_elem_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitGrouping_elem_list(this); + else return visitor.visitChildren(this); + } + } + + public final Grouping_elem_listContext grouping_elem_list() throws RecognitionException { + Grouping_elem_listContext _localctx = new Grouping_elem_listContext(_ctx, getState()); + enterRule(_localctx, 392, RULE_grouping_elem_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4359); + match(OPEN_PAREN); + setState(4360); + grouping_elem(); + setState(4365); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4361); + match(COMMA); + setState(4362); + grouping_elem(); + } + } + setState(4367); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(4368); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Having_clauseContext extends ParserRuleContext { + public TerminalNode HAVING() { return getToken(PostgreSQLParser.HAVING, 0); } + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Having_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_having_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterHaving_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitHaving_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitHaving_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Having_clauseContext having_clause() throws RecognitionException { + Having_clauseContext _localctx = new Having_clauseContext(_ctx, getState()); + enterRule(_localctx, 394, RULE_having_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4370); + match(HAVING); + setState(4371); + predicate(0); + setState(4376); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,509,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4372); + match(COMMA); + setState(4373); + predicate(0); + } + } + } + setState(4378); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,509,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Column_listContext extends ParserRuleContext { + public ExprContext column_name_; + public Name_Context output_name; + public List STAR() { return getTokens(PostgreSQLParser.STAR); } + public TerminalNode STAR(int i) { + return getToken(PostgreSQLParser.STAR, i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public List AS() { return getTokens(PostgreSQLParser.AS); } + public TerminalNode AS(int i) { + return getToken(PostgreSQLParser.AS, i); + } + public Column_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_column_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterColumn_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitColumn_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitColumn_list(this); + else return visitor.visitChildren(this); + } + } + + public final Column_listContext column_list() throws RecognitionException { + Column_listContext _localctx = new Column_listContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_column_list); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4387); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALL: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ARRAY: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CASE: + case CAST: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DATE: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_ROLE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULT: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOT: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULL: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITH: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOLLAR: + case DOLLAR_DOLLAR: + case OPEN_PAREN: + case BIT_STRING: + case REGEX_STRING: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case DOLLAR_DEC: + case IDENTIFIER_UNICODE: + case AT_SIGN: + case BANG_BANG: + case MINUS: + case PLUS: + case QMARK_HYPHEN: + case TIL: + { + { + setState(4379); + ((Column_listContext)_localctx).column_name_ = expr(0); + setState(4384); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,511,_ctx) ) { + case 1: + { + setState(4381); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(4380); + match(AS); + } + } + + setState(4383); + ((Column_listContext)_localctx).output_name = name_(); + } + break; + } + } + } + break; + case STAR: + { + setState(4386); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4402); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,516,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4389); + match(COMMA); + setState(4398); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALL: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ARRAY: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CASE: + case CAST: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DATE: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_ROLE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURRENT_USER: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULT: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FALSE: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOT: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULL: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITH: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOLLAR: + case DOLLAR_DOLLAR: + case OPEN_PAREN: + case BIT_STRING: + case REGEX_STRING: + case NUMERIC_LITERAL: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case SINGLEQ_STRING_LITERAL: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case DOLLAR_DEC: + case IDENTIFIER_UNICODE: + case AT_SIGN: + case BANG_BANG: + case MINUS: + case PLUS: + case QMARK_HYPHEN: + case TIL: + { + { + setState(4390); + ((Column_listContext)_localctx).column_name_ = expr(0); + setState(4395); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,514,_ctx) ) { + case 1: + { + setState(4392); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(4391); + match(AS); + } + } + + setState(4394); + ((Column_listContext)_localctx).output_name = name_(); + } + break; + } + } + } + break; + case STAR: + { + setState(4397); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + } + setState(4404); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,516,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Explain_parameterContext extends ParserRuleContext { + public TerminalNode ANALYZE() { return getToken(PostgreSQLParser.ANALYZE, 0); } + public TerminalNode VERBOSE() { return getToken(PostgreSQLParser.VERBOSE, 0); } + public TerminalNode COSTS() { return getToken(PostgreSQLParser.COSTS, 0); } + public TerminalNode BUFFERS() { return getToken(PostgreSQLParser.BUFFERS, 0); } + public TerminalNode TIMING() { return getToken(PostgreSQLParser.TIMING, 0); } + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class,0); + } + public TerminalNode FORMAT() { return getToken(PostgreSQLParser.FORMAT, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode XML() { return getToken(PostgreSQLParser.XML, 0); } + public TerminalNode JSON() { return getToken(PostgreSQLParser.JSON, 0); } + public TerminalNode YAML() { return getToken(PostgreSQLParser.YAML, 0); } + public Explain_parameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explain_parameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExplain_parameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExplain_parameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExplain_parameter(this); + else return visitor.visitChildren(this); + } + } + + public final Explain_parameterContext explain_parameter() throws RecognitionException { + Explain_parameterContext _localctx = new Explain_parameterContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_explain_parameter); + int _la; + try { + setState(4411); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ANALYZE: + case BUFFERS: + case COSTS: + case TIMING: + case VERBOSE: + enterOuterAlt(_localctx, 1); + { + setState(4405); + _la = _input.LA(1); + if ( !(_la==ANALYZE || _la==BUFFERS || _la==COSTS || _la==TIMING || _la==VERBOSE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4407); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(4406); + param_value(); + } + } + + } + break; + case FORMAT: + enterOuterAlt(_localctx, 2); + { + setState(4409); + match(FORMAT); + setState(4410); + _la = _input.LA(1); + if ( !(_la==YAML || ((((_la - 733)) & ~0x3f) == 0 && ((1L << (_la - 733)) & ((1L << (JSON - 733)) | (1L << (TEXT - 733)) | (1L << (XML - 733)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FrameContext extends ParserRuleContext { + public TerminalNode UNBOUNDED() { return getToken(PostgreSQLParser.UNBOUNDED, 0); } + public TerminalNode PRECEDING() { return getToken(PostgreSQLParser.PRECEDING, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode CURRENT() { return getToken(PostgreSQLParser.CURRENT, 0); } + public TerminalNode ROW() { return getToken(PostgreSQLParser.ROW, 0); } + public TerminalNode FOLLOWING() { return getToken(PostgreSQLParser.FOLLOWING, 0); } + public FrameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_frame; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFrame(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFrame(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFrame(this); + else return visitor.visitChildren(this); + } + } + + public final FrameContext frame() throws RecognitionException { + FrameContext _localctx = new FrameContext(_ctx, getState()); + enterRule(_localctx, 400, RULE_frame); + try { + setState(4423); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,519,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4413); + match(UNBOUNDED); + setState(4414); + match(PRECEDING); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4415); + match(INTEGER_LITERAL); + setState(4416); + match(PRECEDING); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4417); + match(CURRENT); + setState(4418); + match(ROW); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4419); + match(INTEGER_LITERAL); + setState(4420); + match(FOLLOWING); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(4421); + match(UNBOUNDED); + setState(4422); + match(FOLLOWING); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Frame_startContext extends ParserRuleContext { + public FrameContext frame() { + return getRuleContext(FrameContext.class,0); + } + public Frame_startContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_frame_start; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFrame_start(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFrame_start(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFrame_start(this); + else return visitor.visitChildren(this); + } + } + + public final Frame_startContext frame_start() throws RecognitionException { + Frame_startContext _localctx = new Frame_startContext(_ctx, getState()); + enterRule(_localctx, 402, RULE_frame_start); + try { + enterOuterAlt(_localctx, 1); + { + setState(4425); + frame(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Frame_endContext extends ParserRuleContext { + public FrameContext frame() { + return getRuleContext(FrameContext.class,0); + } + public Frame_endContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_frame_end; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFrame_end(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFrame_end(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFrame_end(this); + else return visitor.visitChildren(this); + } + } + + public final Frame_endContext frame_end() throws RecognitionException { + Frame_endContext _localctx = new Frame_endContext(_ctx, getState()); + enterRule(_localctx, 404, RULE_frame_end); + try { + enterOuterAlt(_localctx, 1); + { + setState(4427); + frame(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Frame_clauseContext extends ParserRuleContext { + public Frame_startContext frame_start() { + return getRuleContext(Frame_startContext.class,0); + } + public TerminalNode RANGE() { return getToken(PostgreSQLParser.RANGE, 0); } + public TerminalNode ROWS() { return getToken(PostgreSQLParser.ROWS, 0); } + public TerminalNode BETWEEN() { return getToken(PostgreSQLParser.BETWEEN, 0); } + public TerminalNode AND() { return getToken(PostgreSQLParser.AND, 0); } + public Frame_endContext frame_end() { + return getRuleContext(Frame_endContext.class,0); + } + public Frame_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_frame_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFrame_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFrame_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFrame_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Frame_clauseContext frame_clause() throws RecognitionException { + Frame_clauseContext _localctx = new Frame_clauseContext(_ctx, getState()); + enterRule(_localctx, 406, RULE_frame_clause); + int _la; + try { + setState(4437); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,520,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4429); + _la = _input.LA(1); + if ( !(_la==RANGE || _la==ROWS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4430); + frame_start(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4431); + _la = _input.LA(1); + if ( !(_la==RANGE || _la==ROWS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4432); + match(BETWEEN); + setState(4433); + frame_start(); + setState(4434); + match(AND); + setState(4435); + frame_end(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Window_definitionContext extends ParserRuleContext { + public Window_nameContext window_name() { + return getRuleContext(Window_nameContext.class,0); + } + public TerminalNode PARTITION() { return getToken(PostgreSQLParser.PARTITION, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class,0); + } + public Window_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_window_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWindow_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWindow_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWindow_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Window_definitionContext window_definition() throws RecognitionException { + Window_definitionContext _localctx = new Window_definitionContext(_ctx, getState()); + enterRule(_localctx, 408, RULE_window_definition); + int _la; + try { + setState(4451); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,522,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4439); + window_name(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4440); + match(PARTITION); + setState(4441); + match(BY); + setState(4442); + expr(0); + setState(4447); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4443); + match(COMMA); + setState(4444); + expr(0); + } + } + setState(4449); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4450); + order_by_clause(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Window_clauseContext extends ParserRuleContext { + public TerminalNode WINDOW() { return getToken(PostgreSQLParser.WINDOW, 0); } + public Window_nameContext window_name() { + return getRuleContext(Window_nameContext.class,0); + } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Window_definitionContext window_definition() { + return getRuleContext(Window_definitionContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Window_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_window_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWindow_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWindow_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWindow_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Window_clauseContext window_clause() throws RecognitionException { + Window_clauseContext _localctx = new Window_clauseContext(_ctx, getState()); + enterRule(_localctx, 410, RULE_window_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4453); + match(WINDOW); + setState(4454); + window_name(); + setState(4455); + match(AS); + setState(4456); + match(OPEN_PAREN); + setState(4457); + window_definition(); + setState(4458); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Combine_clauseContext extends ParserRuleContext { + public TerminalNode UNION() { return getToken(PostgreSQLParser.UNION, 0); } + public TerminalNode INTERSECT() { return getToken(PostgreSQLParser.INTERSECT, 0); } + public TerminalNode EXCEPT() { return getToken(PostgreSQLParser.EXCEPT, 0); } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public Combine_clauseContext combine_clause() { + return getRuleContext(Combine_clauseContext.class,0); + } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode DISTINCT() { return getToken(PostgreSQLParser.DISTINCT, 0); } + public Combine_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_combine_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCombine_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCombine_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCombine_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Combine_clauseContext combine_clause() throws RecognitionException { + Combine_clauseContext _localctx = new Combine_clauseContext(_ctx, getState()); + enterRule(_localctx, 412, RULE_combine_clause); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4460); + _la = _input.LA(1); + if ( !(_la==EXCEPT || _la==INTERSECT || _la==UNION) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4462); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(4461); + _la = _input.LA(1); + if ( !(_la==ALL || _la==DISTINCT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(4467); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,524,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4464); + match(OPEN_PAREN); + } + } + } + setState(4469); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,524,_ctx); + } + setState(4472); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,525,_ctx) ) { + case 1: + { + setState(4470); + select_stmt(); + } + break; + case 2: + { + setState(4471); + values_stmt(); + } + break; + } + setState(4477); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,526,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4474); + match(CLOSE_PAREN); + } + } + } + setState(4479); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,526,_ctx); + } + setState(4481); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,527,_ctx) ) { + case 1: + { + setState(4480); + combine_clause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Order_by_clauseContext extends ParserRuleContext { + public TerminalNode ORDER() { return getToken(PostgreSQLParser.ORDER, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public List order_by_item() { + return getRuleContexts(Order_by_itemContext.class); + } + public Order_by_itemContext order_by_item(int i) { + return getRuleContext(Order_by_itemContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Order_by_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_order_by_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterOrder_by_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitOrder_by_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitOrder_by_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Order_by_clauseContext order_by_clause() throws RecognitionException { + Order_by_clauseContext _localctx = new Order_by_clauseContext(_ctx, getState()); + enterRule(_localctx, 414, RULE_order_by_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4483); + match(ORDER); + setState(4484); + match(BY); + setState(4485); + order_by_item(); + setState(4490); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,528,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4486); + match(COMMA); + setState(4487); + order_by_item(); + } + } + } + setState(4492); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,528,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Order_by_itemContext extends ParserRuleContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode DOUBLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); } + public TerminalNode ASC() { return getToken(PostgreSQLParser.ASC, 0); } + public TerminalNode DESC() { return getToken(PostgreSQLParser.DESC, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public List NULLS() { return getTokens(PostgreSQLParser.NULLS); } + public TerminalNode NULLS(int i) { + return getToken(PostgreSQLParser.NULLS, i); + } + public List FIRST() { return getTokens(PostgreSQLParser.FIRST); } + public TerminalNode FIRST(int i) { + return getToken(PostgreSQLParser.FIRST, i); + } + public List LAST() { return getTokens(PostgreSQLParser.LAST); } + public TerminalNode LAST(int i) { + return getToken(PostgreSQLParser.LAST, i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Order_by_itemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_order_by_item; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterOrder_by_item(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitOrder_by_item(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitOrder_by_item(this); + else return visitor.visitChildren(this); + } + } + + public final Order_by_itemContext order_by_item() throws RecognitionException { + Order_by_itemContext _localctx = new Order_by_itemContext(_ctx, getState()); + enterRule(_localctx, 416, RULE_order_by_item); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4495); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,529,_ctx) ) { + case 1: + { + setState(4493); + expr(0); + } + break; + case 2: + { + setState(4494); + match(DOUBLEQ_STRING_LITERAL); + } + break; + } + setState(4501); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,530,_ctx) ) { + case 1: + { + setState(4497); + match(ASC); + } + break; + case 2: + { + setState(4498); + match(DESC); + } + break; + case 3: + { + setState(4499); + match(USING); + setState(4500); + expr(0); + } + break; + } + setState(4514); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,532,_ctx) ) { + case 1: + { + { + setState(4503); + match(NULLS); + setState(4504); + _la = _input.LA(1); + if ( !(_la==FIRST || _la==LAST) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + setState(4511); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,531,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4506); + match(COMMA); + { + setState(4507); + match(NULLS); + setState(4508); + _la = _input.LA(1); + if ( !(_la==FIRST || _la==LAST) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + } + } + setState(4513); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,531,_ctx); + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Limit_clauseContext extends ParserRuleContext { + public TerminalNode LIMIT() { return getToken(PostgreSQLParser.LIMIT, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public Func_callContext func_call() { + return getRuleContext(Func_callContext.class,0); + } + public Limit_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_limit_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterLimit_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitLimit_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitLimit_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Limit_clauseContext limit_clause() throws RecognitionException { + Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState()); + enterRule(_localctx, 418, RULE_limit_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4516); + match(LIMIT); + setState(4520); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INTEGER_LITERAL: + { + setState(4517); + match(INTEGER_LITERAL); + } + break; + case ALL: + { + setState(4518); + match(ALL); + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(4519); + func_call(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Offset_clauseContext extends ParserRuleContext { + public TerminalNode OFFSET() { return getToken(PostgreSQLParser.OFFSET, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode ROW() { return getToken(PostgreSQLParser.ROW, 0); } + public TerminalNode ROWS() { return getToken(PostgreSQLParser.ROWS, 0); } + public Offset_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_offset_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterOffset_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitOffset_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitOffset_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Offset_clauseContext offset_clause() throws RecognitionException { + Offset_clauseContext _localctx = new Offset_clauseContext(_ctx, getState()); + enterRule(_localctx, 420, RULE_offset_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4522); + match(OFFSET); + setState(4523); + match(INTEGER_LITERAL); + setState(4525); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,534,_ctx) ) { + case 1: + { + setState(4524); + _la = _input.LA(1); + if ( !(_la==ROW || _la==ROWS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_clauseContext extends ParserRuleContext { + public TerminalNode FETCH() { return getToken(PostgreSQLParser.FETCH, 0); } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode FIRST() { return getToken(PostgreSQLParser.FIRST, 0); } + public TerminalNode NEXT() { return getToken(PostgreSQLParser.NEXT, 0); } + public TerminalNode ROW() { return getToken(PostgreSQLParser.ROW, 0); } + public TerminalNode ROWS() { return getToken(PostgreSQLParser.ROWS, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public Fetch_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFetch_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFetch_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFetch_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Fetch_clauseContext fetch_clause() throws RecognitionException { + Fetch_clauseContext _localctx = new Fetch_clauseContext(_ctx, getState()); + enterRule(_localctx, 422, RULE_fetch_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4527); + match(FETCH); + setState(4528); + _la = _input.LA(1); + if ( !(_la==FIRST || _la==NEXT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4530); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTEGER_LITERAL) { + { + setState(4529); + match(INTEGER_LITERAL); + } + } + + setState(4532); + _la = _input.LA(1); + if ( !(_la==ROW || _la==ROWS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4533); + match(ONLY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class For_clauseContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public TerminalNode NO() { return getToken(PostgreSQLParser.NO, 0); } + public TerminalNode KEY() { return getToken(PostgreSQLParser.KEY, 0); } + public TerminalNode SHARE() { return getToken(PostgreSQLParser.SHARE, 0); } + public TerminalNode OF() { return getToken(PostgreSQLParser.OF, 0); } + public List table_name_() { + return getRuleContexts(Table_name_Context.class); + } + public Table_name_Context table_name_(int i) { + return getRuleContext(Table_name_Context.class,i); + } + public List NOWAIT() { return getTokens(PostgreSQLParser.NOWAIT); } + public TerminalNode NOWAIT(int i) { + return getToken(PostgreSQLParser.NOWAIT, i); + } + public List SKIP_() { return getTokens(PostgreSQLParser.SKIP_); } + public TerminalNode SKIP_(int i) { + return getToken(PostgreSQLParser.SKIP_, i); + } + public List LOCKED() { return getTokens(PostgreSQLParser.LOCKED); } + public TerminalNode LOCKED(int i) { + return getToken(PostgreSQLParser.LOCKED, i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public For_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_for_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFor_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFor_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFor_clause(this); + else return visitor.visitChildren(this); + } + } + + public final For_clauseContext for_clause() throws RecognitionException { + For_clauseContext _localctx = new For_clauseContext(_ctx, getState()); + enterRule(_localctx, 424, RULE_for_clause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4535); + match(FOR); + setState(4543); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UPDATE: + { + setState(4536); + match(UPDATE); + } + break; + case NO: + { + setState(4537); + match(NO); + setState(4538); + match(KEY); + setState(4539); + match(UPDATE); + } + break; + case SHARE: + { + setState(4540); + match(SHARE); + } + break; + case KEY: + { + setState(4541); + match(KEY); + setState(4542); + match(SHARE); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4554); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,538,_ctx) ) { + case 1: + { + setState(4545); + match(OF); + setState(4546); + table_name_(); + setState(4551); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,537,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4547); + match(COMMA); + setState(4548); + table_name_(); + } + } + } + setState(4553); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,537,_ctx); + } + } + break; + } + setState(4561); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,540,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(4559); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NOWAIT: + { + setState(4556); + match(NOWAIT); + } + break; + case SKIP_: + { + setState(4557); + match(SKIP_); + setState(4558); + match(LOCKED); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(4563); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,540,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Updater_clauseContext extends ParserRuleContext { + public List updater_expr() { + return getRuleContexts(Updater_exprContext.class); + } + public Updater_exprContext updater_expr(int i) { + return getRuleContext(Updater_exprContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Updater_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_updater_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterUpdater_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitUpdater_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitUpdater_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Updater_clauseContext updater_clause() throws RecognitionException { + Updater_clauseContext _localctx = new Updater_clauseContext(_ctx, getState()); + enterRule(_localctx, 426, RULE_updater_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4564); + updater_expr(); + setState(4569); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4565); + match(COMMA); + setState(4566); + updater_expr(); + } + } + setState(4571); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Updater_exprContext extends ParserRuleContext { + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class,0); + } + public Updater_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_updater_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterUpdater_expr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitUpdater_expr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitUpdater_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Updater_exprContext updater_expr() throws RecognitionException { + Updater_exprContext _localctx = new Updater_exprContext(_ctx, getState()); + enterRule(_localctx, 428, RULE_updater_expr); + try { + setState(4581); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,543,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4572); + expr(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + { + setState(4573); + match(OPEN_PAREN); + setState(4574); + name_list(); + setState(4575); + match(CLOSE_PAREN); + setState(4576); + match(EQUAL); + setState(4579); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,542,_ctx) ) { + case 1: + { + setState(4577); + expr(0); + } + break; + case 2: + { + setState(4578); + expr_list(); + } + break; + } + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Returning_clauseContext extends ParserRuleContext { + public TerminalNode RETURNING() { return getToken(PostgreSQLParser.RETURNING, 0); } + public Column_listContext column_list() { + return getRuleContext(Column_listContext.class,0); + } + public Returning_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returning_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterReturning_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitReturning_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitReturning_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Returning_clauseContext returning_clause() throws RecognitionException { + Returning_clauseContext _localctx = new Returning_clauseContext(_ctx, getState()); + enterRule(_localctx, 430, RULE_returning_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4583); + match(RETURNING); + setState(4584); + column_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExprContext extends ParserRuleContext { + public Token op; + public TerminalNode NULL() { return getToken(PostgreSQLParser.NULL, 0); } + public TerminalNode CURRENT_DATE() { return getToken(PostgreSQLParser.CURRENT_DATE, 0); } + public TerminalNode CURRENT_ROLE() { return getToken(PostgreSQLParser.CURRENT_ROLE, 0); } + public TerminalNode CURRENT_TIME() { return getToken(PostgreSQLParser.CURRENT_TIME, 0); } + public TerminalNode CURRENT_TIMESTAMP() { return getToken(PostgreSQLParser.CURRENT_TIMESTAMP, 0); } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode DEFAULT() { return getToken(PostgreSQLParser.DEFAULT, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode HEX_INTEGER_LITERAL() { return getToken(PostgreSQLParser.HEX_INTEGER_LITERAL, 0); } + public TerminalNode NUMERIC_LITERAL() { return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode BIT_STRING() { return getToken(PostgreSQLParser.BIT_STRING, 0); } + public TerminalNode REGEX_STRING() { return getToken(PostgreSQLParser.REGEX_STRING, 0); } + public List DOLLAR_DOLLAR() { return getTokens(PostgreSQLParser.DOLLAR_DOLLAR); } + public TerminalNode DOLLAR_DOLLAR(int i) { + return getToken(PostgreSQLParser.DOLLAR_DOLLAR, i); + } + public List DOLLAR() { return getTokens(PostgreSQLParser.DOLLAR); } + public TerminalNode DOLLAR(int i) { + return getToken(PostgreSQLParser.DOLLAR, i); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Bool_exprContext bool_expr() { + return getRuleContext(Bool_exprContext.class,0); + } + public Values_stmtContext values_stmt() { + return getRuleContext(Values_stmtContext.class,0); + } + public Expr_listContext expr_list() { + return getRuleContext(Expr_listContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Type_nameContext type_name() { + return getRuleContext(Type_nameContext.class,0); + } + public TerminalNode BANG_BANG() { return getToken(PostgreSQLParser.BANG_BANG, 0); } + public TerminalNode AT_SIGN() { return getToken(PostgreSQLParser.AT_SIGN, 0); } + public TerminalNode PLUS() { return getToken(PostgreSQLParser.PLUS, 0); } + public TerminalNode MINUS() { return getToken(PostgreSQLParser.MINUS, 0); } + public TerminalNode TIL() { return getToken(PostgreSQLParser.TIL, 0); } + public TerminalNode QMARK_HYPHEN() { return getToken(PostgreSQLParser.QMARK_HYPHEN, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public Func_callContext func_call() { + return getRuleContext(Func_callContext.class,0); + } + public TerminalNode CAST() { return getToken(PostgreSQLParser.CAST, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List data_type() { + return getRuleContexts(Data_typeContext.class); + } + public Data_typeContext data_type(int i) { + return getRuleContext(Data_typeContext.class,i); + } + public Correlation_nameContext correlation_name() { + return getRuleContext(Correlation_nameContext.class,0); + } + public TerminalNode DOT() { return getToken(PostgreSQLParser.DOT, 0); } + public Column_nameContext column_name() { + return getRuleContext(Column_nameContext.class,0); + } + public Case_exprContext case_expr() { + return getRuleContext(Case_exprContext.class,0); + } + public AggregateContext aggregate() { + return getRuleContext(AggregateContext.class,0); + } + public Array_cons_exprContext array_cons_expr() { + return getRuleContext(Array_cons_exprContext.class,0); + } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode DOLLAR_DEC() { return getToken(PostgreSQLParser.DOLLAR_DEC, 0); } + public Select_stmtContext select_stmt() { + return getRuleContext(Select_stmtContext.class,0); + } + public TerminalNode CARET() { return getToken(PostgreSQLParser.CARET, 0); } + public TerminalNode PIPE_SLASH() { return getToken(PostgreSQLParser.PIPE_SLASH, 0); } + public TerminalNode PIPE_PIPE_SLASH() { return getToken(PostgreSQLParser.PIPE_PIPE_SLASH, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public TerminalNode SLASH() { return getToken(PostgreSQLParser.SLASH, 0); } + public TerminalNode PERCENT() { return getToken(PostgreSQLParser.PERCENT, 0); } + public TerminalNode AMP() { return getToken(PostgreSQLParser.AMP, 0); } + public TerminalNode PIPE() { return getToken(PostgreSQLParser.PIPE, 0); } + public TerminalNode HASH() { return getToken(PostgreSQLParser.HASH, 0); } + public TerminalNode LT_LT() { return getToken(PostgreSQLParser.LT_LT, 0); } + public TerminalNode LT_LT_EQ() { return getToken(PostgreSQLParser.LT_LT_EQ, 0); } + public TerminalNode GT_GT() { return getToken(PostgreSQLParser.GT_GT, 0); } + public TerminalNode AT_AT() { return getToken(PostgreSQLParser.AT_AT, 0); } + public TerminalNode LT_HYPHEN_GT() { return getToken(PostgreSQLParser.LT_HYPHEN_GT, 0); } + public TerminalNode AT_GT() { return getToken(PostgreSQLParser.AT_GT, 0); } + public TerminalNode LT_AT() { return getToken(PostgreSQLParser.LT_AT, 0); } + public TerminalNode TIL_EQ() { return getToken(PostgreSQLParser.TIL_EQ, 0); } + public TerminalNode TIL_STAR() { return getToken(PostgreSQLParser.TIL_STAR, 0); } + public TerminalNode TIL_TIL() { return getToken(PostgreSQLParser.TIL_TIL, 0); } + public TerminalNode TIL_LT_TIL() { return getToken(PostgreSQLParser.TIL_LT_TIL, 0); } + public TerminalNode TIL_GT_TIL() { return getToken(PostgreSQLParser.TIL_GT_TIL, 0); } + public TerminalNode TIL_LTE_TIL() { return getToken(PostgreSQLParser.TIL_LTE_TIL, 0); } + public TerminalNode TIL_GTE_TIL() { return getToken(PostgreSQLParser.TIL_GTE_TIL, 0); } + public TerminalNode LT_QMARK_GT() { return getToken(PostgreSQLParser.LT_QMARK_GT, 0); } + public TerminalNode HYPHEN_GT() { return getToken(PostgreSQLParser.HYPHEN_GT, 0); } + public TerminalNode HYPHEN_GT_GT() { return getToken(PostgreSQLParser.HYPHEN_GT_GT, 0); } + public TerminalNode HASH_HASH() { return getToken(PostgreSQLParser.HASH_HASH, 0); } + public TerminalNode HASH_GT() { return getToken(PostgreSQLParser.HASH_GT, 0); } + public TerminalNode HASH_GT_GT() { return getToken(PostgreSQLParser.HASH_GT_GT, 0); } + public TerminalNode QMARK() { return getToken(PostgreSQLParser.QMARK, 0); } + public TerminalNode QMARK_PIPE() { return getToken(PostgreSQLParser.QMARK_PIPE, 0); } + public TerminalNode QMARK_AMP() { return getToken(PostgreSQLParser.QMARK_AMP, 0); } + public TerminalNode QMARK_HASH() { return getToken(PostgreSQLParser.QMARK_HASH, 0); } + public TerminalNode LT_CARET() { return getToken(PostgreSQLParser.LT_CARET, 0); } + public TerminalNode AMP_LT() { return getToken(PostgreSQLParser.AMP_LT, 0); } + public TerminalNode HYPHEN_PIPE_HYPHEN() { return getToken(PostgreSQLParser.HYPHEN_PIPE_HYPHEN, 0); } + public TerminalNode HASH_EQ() { return getToken(PostgreSQLParser.HASH_EQ, 0); } + public TerminalNode AMP_AMP() { return getToken(PostgreSQLParser.AMP_AMP, 0); } + public TerminalNode PIPE_PIPE() { return getToken(PostgreSQLParser.PIPE_PIPE, 0); } + public TerminalNode EQUAL_GT() { return getToken(PostgreSQLParser.EQUAL_GT, 0); } + public TerminalNode AND() { return getToken(PostgreSQLParser.AND, 0); } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public TerminalNode LIKE() { return getToken(PostgreSQLParser.LIKE, 0); } + public TerminalNode BETWEEN() { return getToken(PostgreSQLParser.BETWEEN, 0); } + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public TerminalNode LT() { return getToken(PostgreSQLParser.LT, 0); } + public TerminalNode GT() { return getToken(PostgreSQLParser.GT, 0); } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public TerminalNode LTE() { return getToken(PostgreSQLParser.LTE, 0); } + public TerminalNode GTE() { return getToken(PostgreSQLParser.GTE, 0); } + public TerminalNode LT_GT() { return getToken(PostgreSQLParser.LT_GT, 0); } + public TerminalNode BANG_EQUAL() { return getToken(PostgreSQLParser.BANG_EQUAL, 0); } + public TerminalNode IS() { return getToken(PostgreSQLParser.IS, 0); } + public TerminalNode DISTINCT() { return getToken(PostgreSQLParser.DISTINCT, 0); } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public List OPEN_BRACKET() { return getTokens(PostgreSQLParser.OPEN_BRACKET); } + public TerminalNode OPEN_BRACKET(int i) { + return getToken(PostgreSQLParser.OPEN_BRACKET, i); + } + public List CLOSE_BRACKET() { return getTokens(PostgreSQLParser.CLOSE_BRACKET); } + public TerminalNode CLOSE_BRACKET(int i) { + return getToken(PostgreSQLParser.CLOSE_BRACKET, i); + } + public TerminalNode BANG() { return getToken(PostgreSQLParser.BANG, 0); } + public List COLON() { return getTokens(PostgreSQLParser.COLON); } + public TerminalNode COLON(int i) { + return getToken(PostgreSQLParser.COLON, i); + } + public List COLON_COLON() { return getTokens(PostgreSQLParser.COLON_COLON); } + public TerminalNode COLON_COLON(int i) { + return getToken(PostgreSQLParser.COLON_COLON, i); + } + public TerminalNode OF() { return getToken(PostgreSQLParser.OF, 0); } + public TerminalNode AT() { return getToken(PostgreSQLParser.AT, 0); } + public TerminalNode TIME() { return getToken(PostgreSQLParser.TIME, 0); } + public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } + public ExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExpr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExpr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExpr(this); + else return visitor.visitChildren(this); + } + } + + public final ExprContext expr() throws RecognitionException { + return expr(0); + } + + private ExprContext expr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExprContext _localctx = new ExprContext(_ctx, _parentState); + ExprContext _prevctx = _localctx; + int _startState = 432; + enterRecursionRule(_localctx, 432, RULE_expr, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4660); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,546,_ctx) ) { + case 1: + { + setState(4587); + match(NULL); + } + break; + case 2: + { + setState(4588); + match(CURRENT_DATE); + } + break; + case 3: + { + setState(4589); + match(CURRENT_ROLE); + } + break; + case 4: + { + setState(4590); + match(CURRENT_TIME); + } + break; + case 5: + { + setState(4591); + match(CURRENT_TIMESTAMP); + } + break; + case 6: + { + setState(4592); + match(CURRENT_USER); + } + break; + case 7: + { + setState(4593); + match(DEFAULT); + } + break; + case 8: + { + setState(4594); + match(INTEGER_LITERAL); + } + break; + case 9: + { + setState(4595); + match(HEX_INTEGER_LITERAL); + } + break; + case 10: + { + setState(4596); + match(NUMERIC_LITERAL); + } + break; + case 11: + { + setState(4597); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 12: + { + setState(4598); + match(BIT_STRING); + } + break; + case 13: + { + setState(4599); + match(REGEX_STRING); + } + break; + case 14: + { + setState(4600); + match(DOLLAR_DOLLAR); + setState(4602); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(4601); + _la = _input.LA(1); + if ( _la <= 0 || (_la==DOLLAR) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4604); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,544,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(4606); + match(DOLLAR_DOLLAR); + } + break; + case 15: + { + setState(4607); + match(DOLLAR); + setState(4608); + identifier(0); + setState(4610); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4609); + _la = _input.LA(1); + if ( _la <= 0 || (_la==DOLLAR) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + setState(4612); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << BLOCK_COMMENT) | (1L << LINE_COMMENT) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANALYSE) | (1L << ANALYZE) | (1L << AND) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << AS) | (1L << ASC) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << ASYMMETRIC) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AUTHORIZATION) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BINARY) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BITVAR) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BOTH) | (1L << BREADTH) | (1L << BUFFERS) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECK - 64)) | (1L << (CHECKED - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATE - 64)) | (1L << (COLLATION - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (COMPLETION - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONFIGURATION - 64)) | (1L << (CONFLICT - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COSTS - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)) | (1L << (CREATE - 64)) | (1L << (CREATEDB - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CREATEUSER - 128)) | (1L << (CROSS - 128)) | (1L << (CSV - 128)) | (1L << (CUBE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 128)) | (1L << (CURRENT_PATH - 128)) | (1L << (CURRENT_ROLE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (CYCLE - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME_INTERVAL_CODE - 128)) | (1L << (DATETIME_INTERVAL_PRECISION - 128)) | (1L << (DAY - 128)) | (1L << (DEALLOCATE - 128)) | (1L << (DEC - 128)) | (1L << (DECIMAL - 128)) | (1L << (DECLARE - 128)) | (1L << (DEFAULT - 128)) | (1L << (DEFAULTS - 128)) | (1L << (DEFERABLE - 128)) | (1L << (DEFERRABLE - 128)) | (1L << (DEFERRED - 128)) | (1L << (DEFINED - 128)) | (1L << (DEFINER - 128)) | (1L << (DEGREE - 128)) | (1L << (DELETE - 128)) | (1L << (DELIMITER - 128)) | (1L << (DELIMITERS - 128)) | (1L << (DENSE_RANK - 128)) | (1L << (DEPENDS - 128)) | (1L << (DEPTH - 128)) | (1L << (DEREF - 128)) | (1L << (DERIVED - 128)) | (1L << (DESC - 128)) | (1L << (DESCRIBE - 128)) | (1L << (DESCRIPTOR - 128)) | (1L << (DESTROY - 128)) | (1L << (DESTRUCTOR - 128)) | (1L << (DETERMINISTIC - 128)) | (1L << (DIAGNOSTICS - 128)) | (1L << (DICTIONARY - 128)) | (1L << (DISABLE_P - 128)) | (1L << (DISABLE_PAGE_SKIPPING - 128)) | (1L << (DISCARD - 128)) | (1L << (DISCONNECT - 128)) | (1L << (DISPATCH - 128)) | (1L << (DISTINCT - 128)) | (1L << (DO - 128)) | (1L << (DOMAIN - 128)) | (1L << (DOUBLE - 128)) | (1L << (DROP - 128)) | (1L << (DYNAMIC - 128)) | (1L << (DYNAMIC_FUNCTION - 128)) | (1L << (DYNAMIC_FUNCTION_CODE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (EACH - 192)) | (1L << (ELEMENT - 192)) | (1L << (ELSE - 192)) | (1L << (ENABLE - 192)) | (1L << (ENCODING - 192)) | (1L << (ENCRYPTED - 192)) | (1L << (END - 192)) | (1L << (END_EXEC - 192)) | (1L << (EQUALS - 192)) | (1L << (ESCAPE - 192)) | (1L << (EVERY - 192)) | (1L << (EXCEPT - 192)) | (1L << (EXCEPTION - 192)) | (1L << (EXCLUDE - 192)) | (1L << (EXCLUDING - 192)) | (1L << (EXCLUSIVE - 192)) | (1L << (EXEC - 192)) | (1L << (EXECUTE - 192)) | (1L << (EXISTING - 192)) | (1L << (EXISTS - 192)) | (1L << (EXP - 192)) | (1L << (EXPLAIN - 192)) | (1L << (EXTENDED - 192)) | (1L << (EXTENSION - 192)) | (1L << (EXTERNAL - 192)) | (1L << (EXTRACT - 192)) | (1L << (FALSE - 192)) | (1L << (FETCH - 192)) | (1L << (FIELDS - 192)) | (1L << (FILTER - 192)) | (1L << (FINAL - 192)) | (1L << (FIRST - 192)) | (1L << (FLOAT - 192)) | (1L << (FLOOR - 192)) | (1L << (FOLLOWING - 192)) | (1L << (FOR - 192)) | (1L << (FORCE - 192)) | (1L << (FOREIGN - 192)) | (1L << (FORMAT - 192)) | (1L << (FORTRAN - 192)) | (1L << (FORWARD - 192)) | (1L << (FOUND - 192)) | (1L << (FREE - 192)) | (1L << (FREEZE - 192)) | (1L << (FROM - 192)) | (1L << (FULL - 192)) | (1L << (FUNCTION - 192)) | (1L << (FUSION - 192)) | (1L << (G_ - 192)) | (1L << (GENERAL - 192)) | (1L << (GENERATED - 192)) | (1L << (GET - 192)) | (1L << (GLOBAL - 192)) | (1L << (GO - 192)) | (1L << (GOTO - 192)) | (1L << (GRANT - 192)) | (1L << (GRANTED - 192)) | (1L << (GREATEST - 192)) | (1L << (GROUP - 192)) | (1L << (GROUPING - 192)) | (1L << (HANDLER - 192)) | (1L << (HAVING - 192)) | (1L << (HIERARCHY - 192)) | (1L << (HOLD - 192)))) != 0) || ((((_la - 256)) & ~0x3f) == 0 && ((1L << (_la - 256)) & ((1L << (HOST - 256)) | (1L << (HOUR - 256)) | (1L << (IDENTITY - 256)) | (1L << (IGNORE - 256)) | (1L << (ILIKE - 256)) | (1L << (IMMEDIATE - 256)) | (1L << (IMMUTABLE - 256)) | (1L << (IMPLEMENTATION - 256)) | (1L << (IMPLICIT - 256)) | (1L << (IN - 256)) | (1L << (INCLUDING - 256)) | (1L << (INCREMENT - 256)) | (1L << (INDEX - 256)) | (1L << (INDICATOR - 256)) | (1L << (INFIX - 256)) | (1L << (INHERITS - 256)) | (1L << (INITIALIZE - 256)) | (1L << (INITIALLY - 256)) | (1L << (INNER - 256)) | (1L << (INOUT - 256)) | (1L << (INPUT - 256)) | (1L << (INSENSITIVE - 256)) | (1L << (INSERT - 256)) | (1L << (INSTANCE - 256)) | (1L << (INSTANTIABLE - 256)) | (1L << (INSTEAD - 256)) | (1L << (INT - 256)) | (1L << (INTEGER - 256)) | (1L << (INTERSECT - 256)) | (1L << (INTERSECTION - 256)) | (1L << (INTERVAL - 256)) | (1L << (INTO - 256)) | (1L << (INVOKER - 256)) | (1L << (IS - 256)) | (1L << (ISOLATION - 256)) | (1L << (ITERATE - 256)) | (1L << (JOIN - 256)) | (1L << (K_ - 256)) | (1L << (KEY - 256)) | (1L << (KEY_MEMBER - 256)) | (1L << (KEY_TYPE - 256)) | (1L << (LABEL - 256)) | (1L << (LANCOMPILER - 256)) | (1L << (LANGUAGE - 256)) | (1L << (LARGE - 256)) | (1L << (LAST - 256)) | (1L << (LATERAL - 256)) | (1L << (LEADING - 256)) | (1L << (LEAST - 256)) | (1L << (LEFT - 256)) | (1L << (LENGTH - 256)) | (1L << (LESS - 256)) | (1L << (LEVEL - 256)) | (1L << (LIKE - 256)) | (1L << (LIMIT - 256)) | (1L << (LISTEN - 256)) | (1L << (LN - 256)) | (1L << (LOAD - 256)) | (1L << (LOCAL - 256)) | (1L << (LOCALTIME - 256)) | (1L << (LOCALTIMESTAMP - 256)) | (1L << (LOCATION - 256)) | (1L << (LOCATOR - 256)) | (1L << (LOCK - 256)))) != 0) || ((((_la - 320)) & ~0x3f) == 0 && ((1L << (_la - 320)) & ((1L << (LOCKED - 320)) | (1L << (LOWER - 320)) | (1L << (M_ - 320)) | (1L << (MAIN - 320)) | (1L << (MAP - 320)) | (1L << (MAPPING - 320)) | (1L << (MATCH - 320)) | (1L << (MATCH_SIMPLE - 320)) | (1L << (MATCHED - 320)) | (1L << (MAX - 320)) | (1L << (MAXVALUE - 320)) | (1L << (MEMBER - 320)) | (1L << (MERGE - 320)) | (1L << (MESSAGE_LENGTH - 320)) | (1L << (MESSAGE_OCTET_LENGTH - 320)) | (1L << (MESSAGE_TEXT - 320)) | (1L << (METHOD - 320)) | (1L << (MIN - 320)) | (1L << (MINUTE - 320)) | (1L << (MINVALUE - 320)) | (1L << (MOD - 320)) | (1L << (MODE - 320)) | (1L << (MODIFIES - 320)) | (1L << (MODIFY - 320)) | (1L << (MODULE - 320)) | (1L << (MONTH - 320)) | (1L << (MORE_ - 320)) | (1L << (MOVE - 320)) | (1L << (MULTISET - 320)) | (1L << (MUMPS - 320)) | (1L << (NAME - 320)) | (1L << (NAMES - 320)) | (1L << (NATIONAL - 320)) | (1L << (NATURAL - 320)) | (1L << (NCHAR - 320)) | (1L << (NCLOB - 320)) | (1L << (NESTING - 320)) | (1L << (NEW - 320)) | (1L << (NEXT - 320)) | (1L << (NO - 320)) | (1L << (NOCREATEDB - 320)) | (1L << (NOCREATEUSER - 320)) | (1L << (NONE - 320)) | (1L << (NORMALIZE - 320)) | (1L << (NORMALIZED - 320)) | (1L << (NOT - 320)) | (1L << (NOTHING - 320)) | (1L << (NOTIFY - 320)) | (1L << (NOTNULL - 320)) | (1L << (NOWAIT - 320)) | (1L << (NULL - 320)) | (1L << (NULLABLE - 320)) | (1L << (NULLIF - 320)) | (1L << (NULLS - 320)) | (1L << (NUMBER - 320)) | (1L << (NUMERIC - 320)) | (1L << (OBJECT - 320)) | (1L << (OCTET_LENGTH - 320)) | (1L << (OCTETS - 320)) | (1L << (OF - 320)) | (1L << (OFF - 320)) | (1L << (OFFSET - 320)) | (1L << (OIDS - 320)) | (1L << (OLD - 320)))) != 0) || ((((_la - 384)) & ~0x3f) == 0 && ((1L << (_la - 384)) & ((1L << (ON - 384)) | (1L << (ONLY - 384)) | (1L << (OPEN - 384)) | (1L << (OPERATION - 384)) | (1L << (OPERATOR - 384)) | (1L << (OPTION - 384)) | (1L << (OPTIONS - 384)) | (1L << (OR - 384)) | (1L << (ORDER - 384)) | (1L << (ORDERING - 384)) | (1L << (ORDINALITY - 384)) | (1L << (OTHERS - 384)) | (1L << (OUT - 384)) | (1L << (OUTER - 384)) | (1L << (OUTPUT - 384)) | (1L << (OVER - 384)) | (1L << (OVERLAPS - 384)) | (1L << (OVERLAY - 384)) | (1L << (OVERRIDING - 384)) | (1L << (OWNER - 384)) | (1L << (PAD - 384)) | (1L << (PARAMETER - 384)) | (1L << (PARAMETER_MODE - 384)) | (1L << (PARAMETER_NAME - 384)) | (1L << (PARAMETER_ORDINAL_POSITION - 384)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 384)) | (1L << (PARAMETER_SPECIFIC_NAME - 384)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 384)) | (1L << (PARAMETERS - 384)) | (1L << (PARSER - 384)) | (1L << (PARTIAL - 384)) | (1L << (PARTITION - 384)) | (1L << (PASCAL - 384)) | (1L << (PASSWORD - 384)) | (1L << (PATH - 384)) | (1L << (PERCENT_RANK - 384)) | (1L << (PERCENTILE_CONT - 384)) | (1L << (PERCENTILE_DISC - 384)) | (1L << (PLACING - 384)) | (1L << (PLAIN - 384)) | (1L << (PLANS - 384)) | (1L << (PLI - 384)) | (1L << (POSITION - 384)) | (1L << (POSTFIX - 384)) | (1L << (POWER - 384)) | (1L << (PRECEDING - 384)) | (1L << (PRECISION - 384)) | (1L << (PREFIX - 384)) | (1L << (PREORDER - 384)) | (1L << (PREPARE - 384)) | (1L << (PREPARED - 384)) | (1L << (PRESERVE - 384)) | (1L << (PRIMARY - 384)) | (1L << (PRIOR - 384)) | (1L << (PRIVILEGES - 384)) | (1L << (PROCEDURAL - 384)) | (1L << (PROCEDURE - 384)) | (1L << (PUBLIC - 384)) | (1L << (PUBLICATION - 384)) | (1L << (QUOTE - 384)) | (1L << (RANGE - 384)) | (1L << (RANK - 384)) | (1L << (READ - 384)) | (1L << (READS - 384)))) != 0) || ((((_la - 448)) & ~0x3f) == 0 && ((1L << (_la - 448)) & ((1L << (REAL - 448)) | (1L << (REASSIGN - 448)) | (1L << (RECHECK - 448)) | (1L << (RECURSIVE - 448)) | (1L << (REF - 448)) | (1L << (REFERENCES - 448)) | (1L << (REFERENCING - 448)) | (1L << (REFRESH - 448)) | (1L << (REGR_AVGX - 448)) | (1L << (REGR_AVGY - 448)) | (1L << (REGR_COUNT - 448)) | (1L << (REGR_INTERCEPT - 448)) | (1L << (REGR_R2 - 448)) | (1L << (REGR_SLOPE - 448)) | (1L << (REGR_SXX - 448)) | (1L << (REGR_SXY - 448)) | (1L << (REGR_SYY - 448)) | (1L << (REINDEX - 448)) | (1L << (RELATIVE - 448)) | (1L << (RELEASE - 448)) | (1L << (RENAME - 448)) | (1L << (REPEATABLE - 448)) | (1L << (REPLACE - 448)) | (1L << (REPLICA - 448)) | (1L << (RESET - 448)) | (1L << (RESTART - 448)) | (1L << (RESTRICT - 448)) | (1L << (RESULT - 448)) | (1L << (RETURN - 448)) | (1L << (RETURNED_CARDINALITY - 448)) | (1L << (RETURNED_LENGTH - 448)) | (1L << (RETURNED_OCTET_LENGTH - 448)) | (1L << (RETURNED_SQLSTATE - 448)) | (1L << (RETURNING - 448)) | (1L << (RETURNS - 448)) | (1L << (REVOKE - 448)) | (1L << (RIGHT - 448)) | (1L << (ROLE - 448)) | (1L << (ROLLBACK - 448)) | (1L << (ROLLUP - 448)) | (1L << (ROUTINE - 448)) | (1L << (ROUTINE_CATALOG - 448)) | (1L << (ROUTINE_NAME - 448)) | (1L << (ROUTINE_SCHEMA - 448)) | (1L << (ROW - 448)) | (1L << (ROW_COUNT - 448)) | (1L << (ROW_NUMBER - 448)) | (1L << (ROWS - 448)) | (1L << (RULE - 448)) | (1L << (SAVEPOINT - 448)) | (1L << (SCALE - 448)) | (1L << (SCHEMA - 448)) | (1L << (SCHEMA_NAME - 448)) | (1L << (SCOPE - 448)) | (1L << (SCOPE_CATALOG - 448)) | (1L << (SCOPE_NAME - 448)) | (1L << (SCOPE_SCHEMA - 448)) | (1L << (SCROLL - 448)) | (1L << (SEARCH - 448)) | (1L << (SECOND - 448)) | (1L << (SECTION - 448)) | (1L << (SECURITY - 448)) | (1L << (SELECT - 448)) | (1L << (SELF - 448)))) != 0) || ((((_la - 512)) & ~0x3f) == 0 && ((1L << (_la - 512)) & ((1L << (SENSITIVE - 512)) | (1L << (SEQUENCE - 512)) | (1L << (SEQUENCES - 512)) | (1L << (SERIALIZABLE - 512)) | (1L << (SERVER_NAME - 512)) | (1L << (SESSION - 512)) | (1L << (SESSION_USER - 512)) | (1L << (SET - 512)) | (1L << (SETOF - 512)) | (1L << (SETS - 512)) | (1L << (SHARE - 512)) | (1L << (SHOW - 512)) | (1L << (SIMILAR - 512)) | (1L << (SIMPLE - 512)) | (1L << (SIZE - 512)) | (1L << (SKIP_ - 512)) | (1L << (SMALLINT - 512)) | (1L << (SNAPSHOT - 512)) | (1L << (SOME - 512)) | (1L << (SOURCE - 512)) | (1L << (SPACE - 512)) | (1L << (SPECIFIC - 512)) | (1L << (SPECIFIC_NAME - 512)) | (1L << (SPECIFICTYPE - 512)) | (1L << (SQL - 512)) | (1L << (SQLCODE - 512)) | (1L << (SQLERROR - 512)) | (1L << (SQLEXCEPTION - 512)) | (1L << (SQLSTATE - 512)) | (1L << (SQLWARNING - 512)) | (1L << (SQRT - 512)) | (1L << (STABLE - 512)) | (1L << (START - 512)) | (1L << (STATE - 512)) | (1L << (STATEMENT - 512)) | (1L << (STATIC - 512)) | (1L << (STATISTICS - 512)) | (1L << (STDDEV_POP - 512)) | (1L << (STDDEV_SAMP - 512)) | (1L << (STDIN - 512)) | (1L << (STDOUT - 512)) | (1L << (STORAGE - 512)) | (1L << (STRICT - 512)) | (1L << (STRUCTURE - 512)) | (1L << (STYLE - 512)) | (1L << (SUBCLASS_ORIGIN - 512)) | (1L << (SUBLIST - 512)) | (1L << (SUBMULTISET - 512)) | (1L << (SUBSCRIPTION - 512)) | (1L << (SUBSTRING - 512)) | (1L << (SUM - 512)) | (1L << (SYMMETRIC - 512)) | (1L << (SYSID - 512)) | (1L << (SYSTEM - 512)) | (1L << (SYSTEM_USER - 512)) | (1L << (TABLE - 512)) | (1L << (TABLE_NAME - 512)) | (1L << (TABLESAMPLE - 512)) | (1L << (TABLESPACE - 512)) | (1L << (TEMP - 512)) | (1L << (TEMPLATE - 512)) | (1L << (TEMPORARY - 512)) | (1L << (TERMINATE - 512)) | (1L << (THAN - 512)))) != 0) || ((((_la - 576)) & ~0x3f) == 0 && ((1L << (_la - 576)) & ((1L << (THEN - 576)) | (1L << (TIES - 576)) | (1L << (TIME - 576)) | (1L << (TIMESTAMP - 576)) | (1L << (TIMEZONE_HOUR - 576)) | (1L << (TIMEZONE_MINUTE - 576)) | (1L << (TIMING - 576)) | (1L << (TO - 576)) | (1L << (TOAST - 576)) | (1L << (TOP_LEVEL_COUNT - 576)) | (1L << (TRAILING - 576)) | (1L << (TRANSACTION - 576)) | (1L << (TRANSACTION_ACTIVE - 576)) | (1L << (TRANSACTIONS_COMMITTED - 576)) | (1L << (TRANSACTIONS_ROLLED_BACK - 576)) | (1L << (TRANSFORM - 576)) | (1L << (TRANSFORMS - 576)) | (1L << (TRANSLATE - 576)) | (1L << (TRANSLATION - 576)) | (1L << (TREAT - 576)) | (1L << (TRIGGER - 576)) | (1L << (TRIGGER_CATALOG - 576)) | (1L << (TRIGGER_NAME - 576)) | (1L << (TRIGGER_SCHEMA - 576)) | (1L << (TRIM - 576)) | (1L << (TRUE - 576)) | (1L << (TRUNCATE - 576)) | (1L << (TRUSTED - 576)) | (1L << (TYPE - 576)) | (1L << (UESCAPE - 576)) | (1L << (UNBOUNDED - 576)) | (1L << (UNCOMMITTED - 576)) | (1L << (UNDER - 576)) | (1L << (UNENCRYPTED - 576)) | (1L << (UNION - 576)) | (1L << (UNIQUE - 576)) | (1L << (UNKNOWN - 576)) | (1L << (UNLISTEN - 576)) | (1L << (UNNAMED - 576)) | (1L << (UNNEST - 576)) | (1L << (UNTIL - 576)) | (1L << (UPDATE - 576)) | (1L << (UPPER - 576)) | (1L << (USAGE - 576)) | (1L << (USER - 576)) | (1L << (USER_DEFINED_TYPE_CATALOG - 576)) | (1L << (USER_DEFINED_TYPE_CODE - 576)) | (1L << (USER_DEFINED_TYPE_NAME - 576)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 576)) | (1L << (USING - 576)) | (1L << (VACUUM - 576)) | (1L << (VALID - 576)) | (1L << (VALIDATE - 576)) | (1L << (VALIDATOR - 576)) | (1L << (VALUE - 576)) | (1L << (VALUES - 576)) | (1L << (VAR_POP - 576)) | (1L << (VAR_SAMP - 576)) | (1L << (VARCHAR - 576)) | (1L << (VARIABLE - 576)) | (1L << (VARIADIC - 576)) | (1L << (VARYING - 576)) | (1L << (VERBOSE - 576)) | (1L << (VIEW - 576)))) != 0) || ((((_la - 640)) & ~0x3f) == 0 && ((1L << (_la - 640)) & ((1L << (VOLATILE - 640)) | (1L << (WHEN - 640)) | (1L << (WHENEVER - 640)) | (1L << (WHERE - 640)) | (1L << (WIDTH_BUCKET - 640)) | (1L << (WINDOW - 640)) | (1L << (WITH - 640)) | (1L << (WITHIN - 640)) | (1L << (WITHOUT - 640)) | (1L << (WORK - 640)) | (1L << (WRITE - 640)) | (1L << (YAML - 640)) | (1L << (YEAR - 640)) | (1L << (YES - 640)) | (1L << (ZONE - 640)) | (1L << (SUPERUSER - 640)) | (1L << (NOSUPERUSER - 640)) | (1L << (CREATEROLE - 640)) | (1L << (NOCREATEROLE - 640)) | (1L << (INHERIT - 640)) | (1L << (NOINHERIT - 640)) | (1L << (LOGIN - 640)) | (1L << (NOLOGIN - 640)) | (1L << (REPLICATION - 640)) | (1L << (NOREPLICATION - 640)) | (1L << (BYPASSRLS - 640)) | (1L << (NOBYPASSRLS - 640)) | (1L << (SFUNC - 640)) | (1L << (STYPE - 640)) | (1L << (SSPACE - 640)) | (1L << (FINALFUNC - 640)) | (1L << (FINALFUNC_EXTRA - 640)) | (1L << (COMBINEFUNC - 640)) | (1L << (SERIALFUNC - 640)) | (1L << (DESERIALFUNC - 640)) | (1L << (INITCOND - 640)) | (1L << (MSFUNC - 640)) | (1L << (MINVFUNC - 640)) | (1L << (MSTYPE - 640)) | (1L << (MSSPACE - 640)) | (1L << (MFINALFUNC - 640)) | (1L << (MFINALFUNC_EXTRA - 640)) | (1L << (MINITCOND - 640)) | (1L << (SORTOP - 640)) | (1L << (PARALLEL - 640)) | (1L << (HYPOTHETICAL - 640)) | (1L << (SAFE - 640)) | (1L << (UNSAFE - 640)) | (1L << (BASETYPE - 640)) | (1L << (IF - 640)) | (1L << (LOCALE - 640)) | (1L << (LC_COLLATE - 640)) | (1L << (LC_CTYPE - 640)) | (1L << (PROVIDER - 640)) | (1L << (VERSION - 640)) | (1L << (ALLOW_CONNECTIONS - 640)) | (1L << (IS_TEMPLATE - 640)) | (1L << (EVENT - 640)) | (1L << (WRAPPER - 640)) | (1L << (SERVER - 640)) | (1L << (BTREE - 640)) | (1L << (HASH_ - 640)) | (1L << (GIST - 640)) | (1L << (SPGIST - 640)))) != 0) || ((((_la - 704)) & ~0x3f) == 0 && ((1L << (_la - 704)) & ((1L << (GIN - 704)) | (1L << (BRIN - 704)) | (1L << (CONCURRENTLY - 704)) | (1L << (INLINE - 704)) | (1L << (MATERIALIZED - 704)) | (1L << (LEFTARG - 704)) | (1L << (RIGHTARG - 704)) | (1L << (COMMUTATOR - 704)) | (1L << (NEGATOR - 704)) | (1L << (HASHES - 704)) | (1L << (MERGES - 704)) | (1L << (FAMILY - 704)) | (1L << (POLICY - 704)) | (1L << (OWNED - 704)) | (1L << (ABSTIME - 704)) | (1L << (BIGSERIAL - 704)) | (1L << (BIT_VARYING - 704)) | (1L << (BOOL - 704)) | (1L << (BOX - 704)) | (1L << (BYTEA - 704)) | (1L << (CHARACTER_VARYING - 704)) | (1L << (CIDR - 704)) | (1L << (CIRCLE - 704)) | (1L << (FLOAT4 - 704)) | (1L << (FLOAT8 - 704)) | (1L << (INET - 704)) | (1L << (INT2 - 704)) | (1L << (INT4 - 704)) | (1L << (INT8 - 704)) | (1L << (JSON - 704)) | (1L << (JSONB - 704)) | (1L << (LINE - 704)) | (1L << (LSEG - 704)) | (1L << (MACADDR - 704)) | (1L << (MACADDR8 - 704)) | (1L << (MONEY - 704)) | (1L << (PG_LSN - 704)) | (1L << (POINT - 704)) | (1L << (POLYGON - 704)) | (1L << (RELTIME - 704)) | (1L << (SERIAL - 704)) | (1L << (SERIAL2 - 704)) | (1L << (SERIAL4 - 704)) | (1L << (SERIAL8 - 704)) | (1L << (SMALLSERIAL - 704)) | (1L << (STSTEM - 704)) | (1L << (TEXT - 704)) | (1L << (TIMESTAMPTZ - 704)) | (1L << (TIMETZ - 704)) | (1L << (TSQUERY - 704)) | (1L << (TSVECTOR - 704)) | (1L << (TXID_SNAPSHOT - 704)) | (1L << (UUID - 704)) | (1L << (VARBIT - 704)) | (1L << (XML - 704)) | (1L << (COMMA - 704)) | (1L << (COLON - 704)) | (1L << (COLON_COLON - 704)) | (1L << (DOLLAR_DOLLAR - 704)) | (1L << (STAR - 704)) | (1L << (OPEN_PAREN - 704)) | (1L << (CLOSE_PAREN - 704)) | (1L << (OPEN_BRACKET - 704)))) != 0) || ((((_la - 768)) & ~0x3f) == 0 && ((1L << (_la - 768)) & ((1L << (CLOSE_BRACKET - 768)) | (1L << (BIT_STRING - 768)) | (1L << (REGEX_STRING - 768)) | (1L << (NUMERIC_LITERAL - 768)) | (1L << (INTEGER_LITERAL - 768)) | (1L << (HEX_INTEGER_LITERAL - 768)) | (1L << (DOT - 768)) | (1L << (SINGLEQ_STRING_LITERAL - 768)) | (1L << (DOUBLEQ_STRING_LITERAL - 768)) | (1L << (IDENTIFIER - 768)) | (1L << (DOLLAR_DEC - 768)) | (1L << (IDENTIFIER_UNICODE - 768)) | (1L << (AMP - 768)) | (1L << (AMP_AMP - 768)) | (1L << (AMP_LT - 768)) | (1L << (AT_AT - 768)) | (1L << (AT_GT - 768)) | (1L << (AT_SIGN - 768)) | (1L << (BANG - 768)) | (1L << (BANG_BANG - 768)) | (1L << (BANG_EQUAL - 768)) | (1L << (CARET - 768)) | (1L << (EQUAL - 768)) | (1L << (EQUAL_GT - 768)) | (1L << (GT - 768)) | (1L << (GTE - 768)) | (1L << (GT_GT - 768)) | (1L << (HASH - 768)) | (1L << (HASH_EQ - 768)) | (1L << (HASH_GT - 768)) | (1L << (HASH_GT_GT - 768)) | (1L << (HASH_HASH - 768)) | (1L << (HYPHEN_GT - 768)) | (1L << (HYPHEN_GT_GT - 768)) | (1L << (HYPHEN_PIPE_HYPHEN - 768)) | (1L << (LT - 768)) | (1L << (LTE - 768)) | (1L << (LT_AT - 768)) | (1L << (LT_CARET - 768)) | (1L << (LT_GT - 768)) | (1L << (LT_HYPHEN_GT - 768)) | (1L << (LT_LT - 768)) | (1L << (LT_LT_EQ - 768)) | (1L << (LT_QMARK_GT - 768)) | (1L << (MINUS - 768)) | (1L << (PERCENT - 768)) | (1L << (PIPE - 768)) | (1L << (PIPE_PIPE - 768)) | (1L << (PIPE_PIPE_SLASH - 768)) | (1L << (PIPE_SLASH - 768)) | (1L << (PLUS - 768)) | (1L << (QMARK - 768)) | (1L << (QMARK_AMP - 768)) | (1L << (QMARK_HASH - 768)) | (1L << (QMARK_HYPHEN - 768)) | (1L << (QMARK_PIPE - 768)) | (1L << (SLASH - 768)) | (1L << (TIL - 768)) | (1L << (TIL_EQ - 768)) | (1L << (TIL_GTE_TIL - 768)) | (1L << (TIL_GT_TIL - 768)) | (1L << (TIL_LTE_TIL - 768)) | (1L << (TIL_LT_TIL - 768)) | (1L << (TIL_STAR - 768)))) != 0) || ((((_la - 832)) & ~0x3f) == 0 && ((1L << (_la - 832)) & ((1L << (TIL_TIL - 832)) | (1L << (SEMI - 832)) | (1L << (UNLOGGED - 832)))) != 0) ); + setState(4614); + match(DOLLAR); + setState(4615); + identifier(0); + setState(4616); + match(DOLLAR); + } + break; + case 16: + { + setState(4618); + bool_expr(0); + } + break; + case 17: + { + setState(4619); + values_stmt(); + } + break; + case 18: + { + setState(4620); + expr_list(); + } + break; + case 19: + { + setState(4621); + match(OPEN_PAREN); + setState(4622); + expr(0); + setState(4623); + match(CLOSE_PAREN); + } + break; + case 20: + { + setState(4625); + type_name(); + setState(4626); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 21: + { + setState(4628); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)))) != 0)) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4629); + expr(30); + } + break; + case 22: + { + setState(4630); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==QMARK_HYPHEN || _la==TIL) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4631); + expr(29); + } + break; + case 23: + { + setState(4632); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ALL || _la==NOT) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4633); + expr(17); + } + break; + case 24: + { + setState(4634); + func_call(); + } + break; + case 25: + { + setState(4635); + identifier(0); + } + break; + case 26: + { + setState(4636); + match(CAST); + setState(4637); + match(OPEN_PAREN); + setState(4638); + expr(0); + setState(4639); + match(AS); + setState(4640); + data_type(); + setState(4641); + match(CLOSE_PAREN); + } + break; + case 27: + { + setState(4643); + correlation_name(); + setState(4644); + match(DOT); + setState(4645); + column_name(); + } + break; + case 28: + { + setState(4647); + case_expr(); + } + break; + case 29: + { + setState(4648); + data_type(); + setState(4649); + expr(9); + } + break; + case 30: + { + setState(4651); + aggregate(); + } + break; + case 31: + { + setState(4652); + array_cons_expr(); + } + break; + case 32: + { + setState(4653); + match(EXISTS); + setState(4654); + expr(3); + } + break; + case 33: + { + setState(4655); + match(DOLLAR_DEC); + } + break; + case 34: + { + setState(4656); + match(OPEN_PAREN); + setState(4657); + select_stmt(); + setState(4658); + match(CLOSE_PAREN); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(4761); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,557,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(4759); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,556,_ctx) ) { + case 1: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4662); + if (!(precpred(_ctx, 27))) throw new FailedPredicateException(this, "precpred(_ctx, 27)"); + setState(4663); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 789)) & ~0x3f) == 0 && ((1L << (_la - 789)) & ((1L << (CARET - 789)) | (1L << (PIPE_PIPE_SLASH - 789)) | (1L << (PIPE_SLASH - 789)))) != 0)) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4664); + expr(28); + } + break; + case 2: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4665); + if (!(precpred(_ctx, 26))) throw new FailedPredicateException(this, "precpred(_ctx, 26)"); + setState(4666); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 764)) & ~0x3f) == 0 && ((1L << (_la - 764)) & ((1L << (STAR - 764)) | (1L << (PERCENT - 764)) | (1L << (SLASH - 764)))) != 0)) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4667); + expr(27); + } + break; + case 3: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4668); + if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); + setState(4669); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==MINUS || _la==PLUS) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4670); + expr(26); + } + break; + case 4: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4671); + if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)"); + setState(4672); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==AND || _la==NOT || _la==OR || ((((_la - 780)) & ~0x3f) == 0 && ((1L << (_la - 780)) & ((1L << (AMP - 780)) | (1L << (AMP_AMP - 780)) | (1L << (AMP_LT - 780)) | (1L << (AT_AT - 780)) | (1L << (AT_GT - 780)) | (1L << (EQUAL_GT - 780)) | (1L << (GT_GT - 780)) | (1L << (HASH - 780)) | (1L << (HASH_EQ - 780)) | (1L << (HASH_GT - 780)) | (1L << (HASH_GT_GT - 780)) | (1L << (HASH_HASH - 780)) | (1L << (HYPHEN_GT - 780)) | (1L << (HYPHEN_GT_GT - 780)) | (1L << (HYPHEN_PIPE_HYPHEN - 780)) | (1L << (LT_AT - 780)) | (1L << (LT_CARET - 780)) | (1L << (LT_HYPHEN_GT - 780)) | (1L << (LT_LT - 780)) | (1L << (LT_LT_EQ - 780)) | (1L << (LT_QMARK_GT - 780)) | (1L << (PIPE - 780)) | (1L << (PIPE_PIPE - 780)) | (1L << (QMARK - 780)) | (1L << (QMARK_AMP - 780)) | (1L << (QMARK_HASH - 780)) | (1L << (QMARK_PIPE - 780)) | (1L << (TIL - 780)) | (1L << (TIL_EQ - 780)) | (1L << (TIL_GTE_TIL - 780)) | (1L << (TIL_GT_TIL - 780)) | (1L << (TIL_LTE_TIL - 780)) | (1L << (TIL_LT_TIL - 780)) | (1L << (TIL_STAR - 780)) | (1L << (TIL_TIL - 780)))) != 0)) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4673); + expr(25); + } + break; + case 5: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4674); + if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)"); + setState(4678); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NOT: + { + setState(4675); + match(NOT); + setState(4676); + match(LIKE); + } + break; + case LIKE: + { + setState(4677); + match(LIKE); + } + break; + default: + throw new NoViableAltException(this); + } + setState(4680); + expr(24); + } + break; + case 6: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4681); + if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)"); + setState(4683); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(4682); + match(NOT); + } + } + + setState(4685); + match(BETWEEN); + setState(4686); + expr(0); + setState(4687); + match(AND); + setState(4688); + expr(23); + } + break; + case 7: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4690); + if (!(precpred(_ctx, 21))) throw new FailedPredicateException(this, "precpred(_ctx, 21)"); + setState(4691); + match(IN); + setState(4692); + expr(22); + } + break; + case 8: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4693); + if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)"); + setState(4694); + ((ExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 788)) & ~0x3f) == 0 && ((1L << (_la - 788)) & ((1L << (BANG_EQUAL - 788)) | (1L << (EQUAL - 788)) | (1L << (GT - 788)) | (1L << (GTE - 788)) | (1L << (LT - 788)) | (1L << (LTE - 788)) | (1L << (LT_GT - 788)))) != 0)) ) { + ((ExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4695); + expr(21); + } + break; + case 9: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4696); + if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)"); + setState(4697); + match(IS); + setState(4699); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(4698); + match(NOT); + } + } + + setState(4701); + match(DISTINCT); + setState(4702); + match(FROM); + setState(4703); + expr(19); + } + break; + case 10: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4704); + if (!(precpred(_ctx, 33))) throw new FailedPredicateException(this, "precpred(_ctx, 33)"); + setState(4705); + match(OPEN_BRACKET); + setState(4706); + expr(0); + setState(4707); + match(CLOSE_BRACKET); + } + break; + case 11: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4709); + if (!(precpred(_ctx, 28))) throw new FailedPredicateException(this, "precpred(_ctx, 28)"); + setState(4710); + ((ExprContext)_localctx).op = match(BANG); + } + break; + case 12: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4711); + if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); + setState(4712); + ((ExprContext)_localctx).op = match(IS); + setState(4717); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,550,_ctx) ) { + case 1: + { + setState(4713); + bool_expr(0); + } + break; + case 2: + { + setState(4714); + match(NULL); + } + break; + case 3: + { + setState(4715); + match(NOT); + setState(4716); + match(NULL); + } + break; + } + } + break; + case 13: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4719); + if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)"); + setState(4729); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(4720); + match(OPEN_BRACKET); + setState(4722); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + { + setState(4721); + expr(0); + } + } + + setState(4724); + match(COLON); + setState(4726); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + { + setState(4725); + expr(0); + } + } + + setState(4728); + match(CLOSE_BRACKET); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4731); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,553,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + case 14: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4733); + if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); + setState(4736); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(4734); + match(COLON_COLON); + setState(4735); + data_type(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(4738); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,554,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + case 15: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4740); + if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); + setState(4741); + match(IS); + setState(4742); + match(OF); + setState(4743); + match(OPEN_PAREN); + setState(4744); + data_type(); + setState(4745); + match(CLOSE_PAREN); + } + break; + case 16: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4747); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(4748); + match(DOT); + setState(4751); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(4749); + identifier(0); + } + break; + case STAR: + { + setState(4750); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 17: + { + _localctx = new ExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(4753); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + { + setState(4754); + match(AT); + setState(4755); + match(TIME); + setState(4756); + match(ZONE); + } + setState(4758); + match(SINGLEQ_STRING_LITERAL); + } + break; + } + } + } + setState(4763); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,557,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Bool_exprContext extends ParserRuleContext { + public TerminalNode TRUE() { return getToken(PostgreSQLParser.TRUE, 0); } + public TerminalNode FALSE() { return getToken(PostgreSQLParser.FALSE, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public List bool_expr() { + return getRuleContexts(Bool_exprContext.class); + } + public Bool_exprContext bool_expr(int i) { + return getRuleContext(Bool_exprContext.class,i); + } + public TerminalNode AND() { return getToken(PostgreSQLParser.AND, 0); } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public Bool_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bool_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterBool_expr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitBool_expr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitBool_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Bool_exprContext bool_expr() throws RecognitionException { + return bool_expr(0); + } + + private Bool_exprContext bool_expr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + Bool_exprContext _localctx = new Bool_exprContext(_ctx, _parentState); + Bool_exprContext _prevctx = _localctx; + int _startState = 434; + enterRecursionRule(_localctx, 434, RULE_bool_expr, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4769); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TRUE: + { + setState(4765); + match(TRUE); + } + break; + case FALSE: + { + setState(4766); + match(FALSE); + } + break; + case NOT: + { + setState(4767); + match(NOT); + setState(4768); + bool_expr(3); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(4779); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,560,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(4777); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,559,_ctx) ) { + case 1: + { + _localctx = new Bool_exprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_bool_expr); + setState(4771); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(4772); + match(AND); + setState(4773); + bool_expr(3); + } + break; + case 2: + { + _localctx = new Bool_exprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_bool_expr); + setState(4774); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(4775); + match(OR); + setState(4776); + bool_expr(2); + } + break; + } + } + } + setState(4781); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,560,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Case_exprContext extends ParserRuleContext { + public TerminalNode CASE() { return getToken(PostgreSQLParser.CASE, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode END() { return getToken(PostgreSQLParser.END, 0); } + public List WHEN() { return getTokens(PostgreSQLParser.WHEN); } + public TerminalNode WHEN(int i) { + return getToken(PostgreSQLParser.WHEN, i); + } + public List THEN() { return getTokens(PostgreSQLParser.THEN); } + public TerminalNode THEN(int i) { + return getToken(PostgreSQLParser.THEN, i); + } + public TerminalNode ELSE() { return getToken(PostgreSQLParser.ELSE, 0); } + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class,i); + } + public Case_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_case_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCase_expr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCase_expr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCase_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Case_exprContext case_expr() throws RecognitionException { + Case_exprContext _localctx = new Case_exprContext(_ctx, getState()); + enterRule(_localctx, 436, RULE_case_expr); + int _la; + try { + setState(4815); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,565,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4782); + match(CASE); + setState(4783); + expr(0); + setState(4789); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4784); + match(WHEN); + setState(4785); + expr(0); + setState(4786); + match(THEN); + setState(4787); + expr(0); + } + } + setState(4791); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHEN ); + setState(4795); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ELSE) { + { + setState(4793); + match(ELSE); + setState(4794); + expr(0); + } + } + + setState(4797); + match(END); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4799); + match(CASE); + setState(4805); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4800); + match(WHEN); + setState(4801); + predicate(0); + setState(4802); + match(THEN); + setState(4803); + expr(0); + } + } + setState(4807); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHEN ); + setState(4811); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ELSE) { + { + setState(4809); + match(ELSE); + setState(4810); + expr(0); + } + } + + setState(4813); + match(END); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Expr_listContext extends ParserRuleContext { + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Expr_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expr_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExpr_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExpr_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExpr_list(this); + else return visitor.visitChildren(this); + } + } + + public final Expr_listContext expr_list() throws RecognitionException { + Expr_listContext _localctx = new Expr_listContext(_ctx, getState()); + enterRule(_localctx, 438, RULE_expr_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4817); + match(OPEN_PAREN); + setState(4818); + expr(0); + setState(4823); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4819); + match(COMMA); + setState(4820); + expr(0); + } + } + setState(4825); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(4826); + match(CLOSE_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Expr_list_listContext extends ParserRuleContext { + public List expr_list() { + return getRuleContexts(Expr_listContext.class); + } + public Expr_listContext expr_list(int i) { + return getRuleContext(Expr_listContext.class,i); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Expr_list_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expr_list_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExpr_list_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExpr_list_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExpr_list_list(this); + else return visitor.visitChildren(this); + } + } + + public final Expr_list_listContext expr_list_list() throws RecognitionException { + Expr_list_listContext _localctx = new Expr_list_listContext(_ctx, getState()); + enterRule(_localctx, 440, RULE_expr_list_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4829); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,567,_ctx) ) { + case 1: + { + setState(4828); + match(OPEN_PAREN); + } + break; + } + setState(4831); + expr_list(); + setState(4836); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,568,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(4832); + match(COMMA); + setState(4833); + expr_list(); + } + } + } + setState(4838); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,568,_ctx); + } + setState(4840); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,569,_ctx) ) { + case 1: + { + setState(4839); + match(CLOSE_PAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sig_argContext extends ParserRuleContext { + public Token argmode; + public IdentifierContext argname; + public Data_typeContext argtype; + public Data_typeContext data_type() { + return getRuleContext(Data_typeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IN() { return getToken(PostgreSQLParser.IN, 0); } + public TerminalNode OUT() { return getToken(PostgreSQLParser.OUT, 0); } + public TerminalNode INOUT() { return getToken(PostgreSQLParser.INOUT, 0); } + public TerminalNode VARIADIC() { return getToken(PostgreSQLParser.VARIADIC, 0); } + public Func_sig_argContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_func_sig_arg; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFunc_sig_arg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFunc_sig_arg(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFunc_sig_arg(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sig_argContext func_sig_arg() throws RecognitionException { + Func_sig_argContext _localctx = new Func_sig_argContext(_ctx, getState()); + enterRule(_localctx, 442, RULE_func_sig_arg); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4849); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + { + setState(4843); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,570,_ctx) ) { + case 1: + { + setState(4842); + ((Func_sig_argContext)_localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==IN || _la==INOUT || _la==OUT || _la==VARIADIC) ) { + ((Func_sig_argContext)_localctx).argmode = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(4846); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,571,_ctx) ) { + case 1: + { + setState(4845); + ((Func_sig_argContext)_localctx).argname = identifier(0); + } + break; + } + setState(4848); + ((Func_sig_argContext)_localctx).argtype = data_type(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sig_arg_listContext extends ParserRuleContext { + public List func_sig_arg() { + return getRuleContexts(Func_sig_argContext.class); + } + public Func_sig_argContext func_sig_arg(int i) { + return getRuleContext(Func_sig_argContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Func_sig_arg_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_func_sig_arg_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFunc_sig_arg_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFunc_sig_arg_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFunc_sig_arg_list(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sig_arg_listContext func_sig_arg_list() throws RecognitionException { + Func_sig_arg_listContext _localctx = new Func_sig_arg_listContext(_ctx, getState()); + enterRule(_localctx, 444, RULE_func_sig_arg_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4851); + func_sig_arg(); + setState(4856); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4852); + match(COMMA); + setState(4853); + func_sig_arg(); + } + } + setState(4858); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sigContext extends ParserRuleContext { + public IdentifierContext name; + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Func_sig_arg_listContext func_sig_arg_list() { + return getRuleContext(Func_sig_arg_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public Func_sigContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_func_sig; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFunc_sig(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFunc_sig(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFunc_sig(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sigContext func_sig() throws RecognitionException { + Func_sigContext _localctx = new Func_sigContext(_ctx, getState()); + enterRule(_localctx, 446, RULE_func_sig); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4859); + ((Func_sigContext)_localctx).name = identifier(0); + setState(4864); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PAREN) { + { + setState(4860); + match(OPEN_PAREN); + setState(4861); + func_sig_arg_list(); + setState(4862); + match(CLOSE_PAREN); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Func_sig_listContext extends ParserRuleContext { + public List func_sig() { + return getRuleContexts(Func_sigContext.class); + } + public Func_sigContext func_sig(int i) { + return getRuleContext(Func_sigContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Func_sig_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_func_sig_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFunc_sig_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFunc_sig_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFunc_sig_list(this); + else return visitor.visitChildren(this); + } + } + + public final Func_sig_listContext func_sig_list() throws RecognitionException { + Func_sig_listContext _localctx = new Func_sig_listContext(_ctx, getState()); + enterRule(_localctx, 448, RULE_func_sig_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4866); + func_sig(); + setState(4871); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4867); + match(COMMA); + setState(4868); + func_sig(); + } + } + setState(4873); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Type_nameContext extends ParserRuleContext { + public TerminalNode ABSTIME() { return getToken(PostgreSQLParser.ABSTIME, 0); } + public TerminalNode RELTIME() { return getToken(PostgreSQLParser.RELTIME, 0); } + public TerminalNode BIGINT() { return getToken(PostgreSQLParser.BIGINT, 0); } + public TerminalNode BIGSERIAL() { return getToken(PostgreSQLParser.BIGSERIAL, 0); } + public TerminalNode BIT() { return getToken(PostgreSQLParser.BIT, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode BIT_VARYING() { return getToken(PostgreSQLParser.BIT_VARYING, 0); } + public TerminalNode BOOL() { return getToken(PostgreSQLParser.BOOL, 0); } + public TerminalNode BOOLEAN() { return getToken(PostgreSQLParser.BOOLEAN, 0); } + public TerminalNode BOX() { return getToken(PostgreSQLParser.BOX, 0); } + public TerminalNode BYTEA() { return getToken(PostgreSQLParser.BYTEA, 0); } + public TerminalNode CHAR() { return getToken(PostgreSQLParser.CHAR, 0); } + public TerminalNode CHARACTER() { return getToken(PostgreSQLParser.CHARACTER, 0); } + public TerminalNode CHARACTER_VARYING() { return getToken(PostgreSQLParser.CHARACTER_VARYING, 0); } + public TerminalNode CIDR() { return getToken(PostgreSQLParser.CIDR, 0); } + public TerminalNode CIRCLE() { return getToken(PostgreSQLParser.CIRCLE, 0); } + public TerminalNode DATE() { return getToken(PostgreSQLParser.DATE, 0); } + public TerminalNode DECIMAL() { return getToken(PostgreSQLParser.DECIMAL, 0); } + public TerminalNode COMMA() { return getToken(PostgreSQLParser.COMMA, 0); } + public TerminalNode DOUBLE() { return getToken(PostgreSQLParser.DOUBLE, 0); } + public TerminalNode PRECISION() { return getToken(PostgreSQLParser.PRECISION, 0); } + public TerminalNode FLOAT4() { return getToken(PostgreSQLParser.FLOAT4, 0); } + public TerminalNode FLOAT8() { return getToken(PostgreSQLParser.FLOAT8, 0); } + public TerminalNode INET() { return getToken(PostgreSQLParser.INET, 0); } + public TerminalNode INT() { return getToken(PostgreSQLParser.INT, 0); } + public TerminalNode INT4() { return getToken(PostgreSQLParser.INT4, 0); } + public TerminalNode INT2() { return getToken(PostgreSQLParser.INT2, 0); } + public TerminalNode INT8() { return getToken(PostgreSQLParser.INT8, 0); } + public TerminalNode INTEGER() { return getToken(PostgreSQLParser.INTEGER, 0); } + public TerminalNode INTERVAL() { return getToken(PostgreSQLParser.INTERVAL, 0); } + public TerminalNode FIELDS() { return getToken(PostgreSQLParser.FIELDS, 0); } + public TerminalNode JSON() { return getToken(PostgreSQLParser.JSON, 0); } + public TerminalNode JSONB() { return getToken(PostgreSQLParser.JSONB, 0); } + public TerminalNode LINE() { return getToken(PostgreSQLParser.LINE, 0); } + public TerminalNode LSEG() { return getToken(PostgreSQLParser.LSEG, 0); } + public TerminalNode MACADDR() { return getToken(PostgreSQLParser.MACADDR, 0); } + public TerminalNode MACADDR8() { return getToken(PostgreSQLParser.MACADDR8, 0); } + public TerminalNode MONEY() { return getToken(PostgreSQLParser.MONEY, 0); } + public TerminalNode NUMERIC() { return getToken(PostgreSQLParser.NUMERIC, 0); } + public TerminalNode PATH() { return getToken(PostgreSQLParser.PATH, 0); } + public TerminalNode PG_LSN() { return getToken(PostgreSQLParser.PG_LSN, 0); } + public TerminalNode POINT() { return getToken(PostgreSQLParser.POINT, 0); } + public TerminalNode POLYGON() { return getToken(PostgreSQLParser.POLYGON, 0); } + public TerminalNode REAL() { return getToken(PostgreSQLParser.REAL, 0); } + public TerminalNode SERIAL() { return getToken(PostgreSQLParser.SERIAL, 0); } + public TerminalNode SERIAL2() { return getToken(PostgreSQLParser.SERIAL2, 0); } + public TerminalNode SERIAL4() { return getToken(PostgreSQLParser.SERIAL4, 0); } + public TerminalNode SERIAL8() { return getToken(PostgreSQLParser.SERIAL8, 0); } + public TerminalNode SMALLINT() { return getToken(PostgreSQLParser.SMALLINT, 0); } + public TerminalNode SMALLSERIAL() { return getToken(PostgreSQLParser.SMALLSERIAL, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public List TIME() { return getTokens(PostgreSQLParser.TIME); } + public TerminalNode TIME(int i) { + return getToken(PostgreSQLParser.TIME, i); + } + public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode WITHOUT() { return getToken(PostgreSQLParser.WITHOUT, 0); } + public TerminalNode TIMESTAMP() { return getToken(PostgreSQLParser.TIMESTAMP, 0); } + public TerminalNode TIMETZ() { return getToken(PostgreSQLParser.TIMETZ, 0); } + public TerminalNode TIMESTAMPTZ() { return getToken(PostgreSQLParser.TIMESTAMPTZ, 0); } + public TerminalNode TSQUERY() { return getToken(PostgreSQLParser.TSQUERY, 0); } + public TerminalNode TSVECTOR() { return getToken(PostgreSQLParser.TSVECTOR, 0); } + public TerminalNode TXID_SNAPSHOT() { return getToken(PostgreSQLParser.TXID_SNAPSHOT, 0); } + public TerminalNode UUID() { return getToken(PostgreSQLParser.UUID, 0); } + public TerminalNode VARBIT() { return getToken(PostgreSQLParser.VARBIT, 0); } + public TerminalNode VARCHAR() { return getToken(PostgreSQLParser.VARCHAR, 0); } + public TerminalNode XML() { return getToken(PostgreSQLParser.XML, 0); } + public Type_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterType_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitType_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitType_name(this); + else return visitor.visitChildren(this); + } + } + + public final Type_nameContext type_name() throws RecognitionException { + Type_nameContext _localctx = new Type_nameContext(_ctx, getState()); + enterRule(_localctx, 450, RULE_type_name); + int _la; + try { + setState(5018); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTIME: + enterOuterAlt(_localctx, 1); + { + setState(4874); + match(ABSTIME); + } + break; + case RELTIME: + enterOuterAlt(_localctx, 2); + { + setState(4875); + match(RELTIME); + } + break; + case BIGINT: + enterOuterAlt(_localctx, 3); + { + setState(4876); + match(BIGINT); + } + break; + case BIGSERIAL: + enterOuterAlt(_localctx, 4); + { + setState(4877); + match(BIGSERIAL); + } + break; + case BIT: + enterOuterAlt(_localctx, 5); + { + setState(4878); + match(BIT); + setState(4882); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,576,_ctx) ) { + case 1: + { + setState(4879); + match(OPEN_PAREN); + setState(4880); + match(INTEGER_LITERAL); + setState(4881); + match(CLOSE_PAREN); + } + break; + } + } + break; + case BIT_VARYING: + enterOuterAlt(_localctx, 6); + { + setState(4884); + match(BIT_VARYING); + setState(4888); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,577,_ctx) ) { + case 1: + { + setState(4885); + match(OPEN_PAREN); + setState(4886); + match(INTEGER_LITERAL); + setState(4887); + match(CLOSE_PAREN); + } + break; + } + } + break; + case BOOL: + enterOuterAlt(_localctx, 7); + { + setState(4890); + match(BOOL); + } + break; + case BOOLEAN: + enterOuterAlt(_localctx, 8); + { + setState(4891); + match(BOOLEAN); + } + break; + case BOX: + enterOuterAlt(_localctx, 9); + { + setState(4892); + match(BOX); + } + break; + case BYTEA: + enterOuterAlt(_localctx, 10); + { + setState(4893); + match(BYTEA); + } + break; + case CHAR: + enterOuterAlt(_localctx, 11); + { + setState(4894); + match(CHAR); + setState(4898); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,578,_ctx) ) { + case 1: + { + setState(4895); + match(OPEN_PAREN); + setState(4896); + match(INTEGER_LITERAL); + setState(4897); + match(CLOSE_PAREN); + } + break; + } + } + break; + case CHARACTER: + enterOuterAlt(_localctx, 12); + { + setState(4900); + match(CHARACTER); + setState(4904); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,579,_ctx) ) { + case 1: + { + setState(4901); + match(OPEN_PAREN); + setState(4902); + match(INTEGER_LITERAL); + setState(4903); + match(CLOSE_PAREN); + } + break; + } + } + break; + case CHARACTER_VARYING: + enterOuterAlt(_localctx, 13); + { + setState(4906); + match(CHARACTER_VARYING); + setState(4910); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,580,_ctx) ) { + case 1: + { + setState(4907); + match(OPEN_PAREN); + setState(4908); + match(INTEGER_LITERAL); + setState(4909); + match(CLOSE_PAREN); + } + break; + } + } + break; + case CIDR: + enterOuterAlt(_localctx, 14); + { + setState(4912); + match(CIDR); + } + break; + case CIRCLE: + enterOuterAlt(_localctx, 15); + { + setState(4913); + match(CIRCLE); + } + break; + case DATE: + enterOuterAlt(_localctx, 16); + { + setState(4914); + match(DATE); + } + break; + case DECIMAL: + enterOuterAlt(_localctx, 17); + { + setState(4915); + match(DECIMAL); + setState(4921); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,581,_ctx) ) { + case 1: + { + setState(4916); + match(OPEN_PAREN); + setState(4917); + match(INTEGER_LITERAL); + setState(4918); + match(COMMA); + setState(4919); + match(INTEGER_LITERAL); + setState(4920); + match(CLOSE_PAREN); + } + break; + } + } + break; + case DOUBLE: + enterOuterAlt(_localctx, 18); + { + setState(4923); + match(DOUBLE); + setState(4924); + match(PRECISION); + } + break; + case FLOAT4: + enterOuterAlt(_localctx, 19); + { + setState(4925); + match(FLOAT4); + } + break; + case FLOAT8: + enterOuterAlt(_localctx, 20); + { + setState(4926); + match(FLOAT8); + } + break; + case INET: + enterOuterAlt(_localctx, 21); + { + setState(4927); + match(INET); + } + break; + case INT: + enterOuterAlt(_localctx, 22); + { + setState(4928); + match(INT); + } + break; + case INT4: + enterOuterAlt(_localctx, 23); + { + setState(4929); + match(INT4); + } + break; + case INT2: + enterOuterAlt(_localctx, 24); + { + setState(4930); + match(INT2); + } + break; + case INT8: + enterOuterAlt(_localctx, 25); + { + setState(4931); + match(INT8); + } + break; + case INTEGER: + enterOuterAlt(_localctx, 26); + { + setState(4932); + match(INTEGER); + } + break; + case INTERVAL: + enterOuterAlt(_localctx, 27); + { + setState(4933); + match(INTERVAL); + setState(4935); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,582,_ctx) ) { + case 1: + { + setState(4934); + match(FIELDS); + } + break; + } + setState(4938); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,583,_ctx) ) { + case 1: + { + setState(4937); + match(INTEGER_LITERAL); + } + break; + } + } + break; + case JSON: + enterOuterAlt(_localctx, 28); + { + setState(4940); + match(JSON); + } + break; + case JSONB: + enterOuterAlt(_localctx, 29); + { + setState(4941); + match(JSONB); + } + break; + case LINE: + enterOuterAlt(_localctx, 30); + { + setState(4942); + match(LINE); + } + break; + case LSEG: + enterOuterAlt(_localctx, 31); + { + setState(4943); + match(LSEG); + } + break; + case MACADDR: + enterOuterAlt(_localctx, 32); + { + setState(4944); + match(MACADDR); + } + break; + case MACADDR8: + enterOuterAlt(_localctx, 33); + { + setState(4945); + match(MACADDR8); + } + break; + case MONEY: + enterOuterAlt(_localctx, 34); + { + setState(4946); + match(MONEY); + } + break; + case NUMERIC: + enterOuterAlt(_localctx, 35); + { + setState(4947); + match(NUMERIC); + setState(4953); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,584,_ctx) ) { + case 1: + { + setState(4948); + match(OPEN_PAREN); + setState(4949); + match(INTEGER_LITERAL); + setState(4950); + match(COMMA); + setState(4951); + match(INTEGER_LITERAL); + setState(4952); + match(CLOSE_PAREN); + } + break; + } + } + break; + case PATH: + enterOuterAlt(_localctx, 36); + { + setState(4955); + match(PATH); + } + break; + case PG_LSN: + enterOuterAlt(_localctx, 37); + { + setState(4956); + match(PG_LSN); + } + break; + case POINT: + enterOuterAlt(_localctx, 38); + { + setState(4957); + match(POINT); + } + break; + case POLYGON: + enterOuterAlt(_localctx, 39); + { + setState(4958); + match(POLYGON); + } + break; + case REAL: + enterOuterAlt(_localctx, 40); + { + setState(4959); + match(REAL); + } + break; + case SERIAL: + enterOuterAlt(_localctx, 41); + { + setState(4960); + match(SERIAL); + } + break; + case SERIAL2: + enterOuterAlt(_localctx, 42); + { + setState(4961); + match(SERIAL2); + } + break; + case SERIAL4: + enterOuterAlt(_localctx, 43); + { + setState(4962); + match(SERIAL4); + } + break; + case SERIAL8: + enterOuterAlt(_localctx, 44); + { + setState(4963); + match(SERIAL8); + } + break; + case SMALLINT: + enterOuterAlt(_localctx, 45); + { + setState(4964); + match(SMALLINT); + } + break; + case SMALLSERIAL: + enterOuterAlt(_localctx, 46); + { + setState(4965); + match(SMALLSERIAL); + } + break; + case TEXT: + enterOuterAlt(_localctx, 47); + { + setState(4966); + match(TEXT); + } + break; + case TIME: + enterOuterAlt(_localctx, 48); + { + setState(4967); + match(TIME); + setState(4971); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,585,_ctx) ) { + case 1: + { + setState(4968); + match(OPEN_PAREN); + setState(4969); + match(INTEGER_LITERAL); + setState(4970); + match(CLOSE_PAREN); + } + break; + } + setState(4976); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,586,_ctx) ) { + case 1: + { + setState(4973); + _la = _input.LA(1); + if ( !(_la==WITH || _la==WITHOUT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4974); + match(TIME); + setState(4975); + match(ZONE); + } + break; + } + } + break; + case TIMESTAMP: + enterOuterAlt(_localctx, 49); + { + setState(4978); + match(TIMESTAMP); + setState(4982); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,587,_ctx) ) { + case 1: + { + setState(4979); + match(OPEN_PAREN); + setState(4980); + match(INTEGER_LITERAL); + setState(4981); + match(CLOSE_PAREN); + } + break; + } + setState(4987); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,588,_ctx) ) { + case 1: + { + setState(4984); + _la = _input.LA(1); + if ( !(_la==WITH || _la==WITHOUT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4985); + match(TIME); + setState(4986); + match(ZONE); + } + break; + } + } + break; + case TIMETZ: + enterOuterAlt(_localctx, 50); + { + setState(4989); + match(TIMETZ); + setState(4993); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,589,_ctx) ) { + case 1: + { + setState(4990); + match(OPEN_PAREN); + setState(4991); + match(INTEGER_LITERAL); + setState(4992); + match(CLOSE_PAREN); + } + break; + } + } + break; + case TIMESTAMPTZ: + enterOuterAlt(_localctx, 51); + { + setState(4995); + match(TIMESTAMPTZ); + setState(4999); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,590,_ctx) ) { + case 1: + { + setState(4996); + match(OPEN_PAREN); + setState(4997); + match(INTEGER_LITERAL); + setState(4998); + match(CLOSE_PAREN); + } + break; + } + } + break; + case TSQUERY: + enterOuterAlt(_localctx, 52); + { + setState(5001); + match(TSQUERY); + } + break; + case TSVECTOR: + enterOuterAlt(_localctx, 53); + { + setState(5002); + match(TSVECTOR); + } + break; + case TXID_SNAPSHOT: + enterOuterAlt(_localctx, 54); + { + setState(5003); + match(TXID_SNAPSHOT); + } + break; + case UUID: + enterOuterAlt(_localctx, 55); + { + setState(5004); + match(UUID); + } + break; + case VARBIT: + enterOuterAlt(_localctx, 56); + { + setState(5005); + match(VARBIT); + setState(5009); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,591,_ctx) ) { + case 1: + { + setState(5006); + match(OPEN_PAREN); + setState(5007); + match(INTEGER_LITERAL); + setState(5008); + match(CLOSE_PAREN); + } + break; + } + } + break; + case VARCHAR: + enterOuterAlt(_localctx, 57); + { + setState(5011); + match(VARCHAR); + setState(5015); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,592,_ctx) ) { + case 1: + { + setState(5012); + match(OPEN_PAREN); + setState(5013); + match(INTEGER_LITERAL); + setState(5014); + match(CLOSE_PAREN); + } + break; + } + } + break; + case XML: + enterOuterAlt(_localctx, 58); + { + setState(5017); + match(XML); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TimezoneContext extends ParserRuleContext { + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode DOUBLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public TerminalNode NUMERIC_LITERAL() { return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); } + public TimezoneContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timezone; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTimezone(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTimezone(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTimezone(this); + else return visitor.visitChildren(this); + } + } + + public final TimezoneContext timezone() throws RecognitionException { + TimezoneContext _localctx = new TimezoneContext(_ctx, getState()); + enterRule(_localctx, 452, RULE_timezone); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5020); + _la = _input.LA(1); + if ( !(((((_la - 771)) & ~0x3f) == 0 && ((1L << (_la - 771)) & ((1L << (NUMERIC_LITERAL - 771)) | (1L << (INTEGER_LITERAL - 771)) | (1L << (SINGLEQ_STRING_LITERAL - 771)) | (1L << (DOUBLEQ_STRING_LITERAL - 771)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class OperContext extends ParserRuleContext { + public TerminalNode IS() { return getToken(PostgreSQLParser.IS, 0); } + public TerminalNode OF() { return getToken(PostgreSQLParser.OF, 0); } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public OperContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_oper; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterOper(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitOper(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitOper(this); + else return visitor.visitChildren(this); + } + } + + public final OperContext oper() throws RecognitionException { + OperContext _localctx = new OperContext(_ctx, getState()); + enterRule(_localctx, 454, RULE_oper); + try { + setState(5026); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,594,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5023); + match(IS); + setState(5024); + match(OF); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5025); + match(ALL); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AggregateContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Order_by_clauseContext order_by_clause() { + return getRuleContext(Order_by_clauseContext.class,0); + } + public TerminalNode FILTER() { return getToken(PostgreSQLParser.FILTER, 0); } + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public TerminalNode ALL() { return getToken(PostgreSQLParser.ALL, 0); } + public TerminalNode DISTINCT() { return getToken(PostgreSQLParser.DISTINCT, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public TerminalNode WITHIN() { return getToken(PostgreSQLParser.WITHIN, 0); } + public TerminalNode GROUP() { return getToken(PostgreSQLParser.GROUP, 0); } + public AggregateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_aggregate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAggregate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAggregate(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAggregate(this); + else return visitor.visitChildren(this); + } + } + + public final AggregateContext aggregate() throws RecognitionException { + AggregateContext _localctx = new AggregateContext(_ctx, getState()); + enterRule(_localctx, 456, RULE_aggregate); + int _la; + try { + setState(5091); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,603,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5028); + identifier(0); + setState(5029); + match(OPEN_PAREN); + setState(5031); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,595,_ctx) ) { + case 1: + { + setState(5030); + _la = _input.LA(1); + if ( !(_la==ALL || _la==DISTINCT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + setState(5033); + expr(0); + setState(5038); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5034); + match(COMMA); + setState(5035); + expr(0); + } + } + setState(5040); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5042); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ORDER) { + { + setState(5041); + order_by_clause(); + } + } + + setState(5044); + match(CLOSE_PAREN); + setState(5051); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,598,_ctx) ) { + case 1: + { + setState(5045); + match(FILTER); + setState(5046); + match(OPEN_PAREN); + setState(5047); + match(WHERE); + setState(5048); + where_clause(); + setState(5049); + match(CLOSE_PAREN); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5053); + identifier(0); + setState(5054); + match(OPEN_PAREN); + setState(5055); + match(STAR); + setState(5056); + match(CLOSE_PAREN); + setState(5063); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,599,_ctx) ) { + case 1: + { + setState(5057); + match(FILTER); + setState(5058); + match(OPEN_PAREN); + setState(5059); + match(WHERE); + setState(5060); + where_clause(); + setState(5061); + match(CLOSE_PAREN); + } + break; + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5065); + identifier(0); + setState(5066); + match(OPEN_PAREN); + setState(5075); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + { + setState(5067); + expr(0); + setState(5072); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5068); + match(COMMA); + setState(5069); + expr(0); + } + } + setState(5074); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(5077); + match(CLOSE_PAREN); + setState(5078); + match(WITHIN); + setState(5079); + match(GROUP); + setState(5080); + match(OPEN_PAREN); + setState(5081); + order_by_clause(); + setState(5082); + match(CLOSE_PAREN); + setState(5089); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,602,_ctx) ) { + case 1: + { + setState(5083); + match(FILTER); + setState(5084); + match(OPEN_PAREN); + setState(5085); + match(WHERE); + setState(5086); + where_clause(); + setState(5087); + match(CLOSE_PAREN); + } + break; + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Name_Context extends ParserRuleContext { + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Name_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_name_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterName_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitName_(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitName_(this); + else return visitor.visitChildren(this); + } + } + + public final Name_Context name_() throws RecognitionException { + Name_Context _localctx = new Name_Context(_ctx, getState()); + enterRule(_localctx, 458, RULE_name_); + try { + setState(5095); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SINGLEQ_STRING_LITERAL: + enterOuterAlt(_localctx, 1); + { + setState(5093); + match(SINGLEQ_STRING_LITERAL); + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + enterOuterAlt(_localctx, 2); + { + setState(5094); + identifier(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Name_listContext extends ParserRuleContext { + public List name_() { + return getRuleContexts(Name_Context.class); + } + public Name_Context name_(int i) { + return getRuleContext(Name_Context.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Name_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_name_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterName_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitName_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitName_list(this); + else return visitor.visitChildren(this); + } + } + + public final Name_listContext name_list() throws RecognitionException { + Name_listContext _localctx = new Name_listContext(_ctx, getState()); + enterRule(_localctx, 460, RULE_name_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5097); + name_(); + setState(5102); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5098); + match(COMMA); + setState(5099); + name_(); + } + } + setState(5104); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Identifier_listContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Identifier_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterIdentifier_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitIdentifier_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitIdentifier_list(this); + else return visitor.visitChildren(this); + } + } + + public final Identifier_listContext identifier_list() throws RecognitionException { + Identifier_listContext _localctx = new Identifier_listContext(_ctx, getState()); + enterRule(_localctx, 462, RULE_identifier_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5105); + identifier(0); + setState(5110); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,606,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(5106); + match(COMMA); + setState(5107); + identifier(0); + } + } + } + setState(5112); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,606,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Option_exprContext extends ParserRuleContext { + public IdentifierContext option_name; + public Param_valueContext value; + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode EQUAL() { return getToken(PostgreSQLParser.EQUAL, 0); } + public Param_valueContext param_value() { + return getRuleContext(Param_valueContext.class,0); + } + public Option_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_option_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterOption_expr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitOption_expr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitOption_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Option_exprContext option_expr() throws RecognitionException { + Option_exprContext _localctx = new Option_exprContext(_ctx, getState()); + enterRule(_localctx, 464, RULE_option_expr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5113); + ((Option_exprContext)_localctx).option_name = identifier(0); + setState(5116); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EQUAL) { + { + setState(5114); + match(EQUAL); + setState(5115); + ((Option_exprContext)_localctx).value = param_value(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Option_listContext extends ParserRuleContext { + public List option_expr() { + return getRuleContexts(Option_exprContext.class); + } + public Option_exprContext option_expr(int i) { + return getRuleContext(Option_exprContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Option_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_option_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterOption_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitOption_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitOption_list(this); + else return visitor.visitChildren(this); + } + } + + public final Option_listContext option_list() throws RecognitionException { + Option_listContext _localctx = new Option_listContext(_ctx, getState()); + enterRule(_localctx, 466, RULE_option_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5118); + option_expr(); + setState(5123); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5119); + match(COMMA); + setState(5120); + option_expr(); + } + } + setState(5125); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Table_name_Context extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Table_name_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_table_name_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTable_name_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTable_name_(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTable_name_(this); + else return visitor.visitChildren(this); + } + } + + public final Table_name_Context table_name_() throws RecognitionException { + Table_name_Context _localctx = new Table_name_Context(_ctx, getState()); + enterRule(_localctx, 468, RULE_table_name_); + try { + enterOuterAlt(_localctx, 1); + { + setState(5126); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Data_typeContext extends ParserRuleContext { + public Type_nameContext type_name() { + return getRuleContext(Type_nameContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List OPEN_BRACKET() { return getTokens(PostgreSQLParser.OPEN_BRACKET); } + public TerminalNode OPEN_BRACKET(int i) { + return getToken(PostgreSQLParser.OPEN_BRACKET, i); + } + public List CLOSE_BRACKET() { return getTokens(PostgreSQLParser.CLOSE_BRACKET); } + public TerminalNode CLOSE_BRACKET(int i) { + return getToken(PostgreSQLParser.CLOSE_BRACKET, i); + } + public List INTEGER_LITERAL() { return getTokens(PostgreSQLParser.INTEGER_LITERAL); } + public TerminalNode INTEGER_LITERAL(int i) { + return getToken(PostgreSQLParser.INTEGER_LITERAL, i); + } + public Data_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_data_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterData_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitData_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitData_type(this); + else return visitor.visitChildren(this); + } + } + + public final Data_typeContext data_type() throws RecognitionException { + Data_typeContext _localctx = new Data_typeContext(_ctx, getState()); + enterRule(_localctx, 470, RULE_data_type); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5130); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,609,_ctx) ) { + case 1: + { + setState(5128); + type_name(); + } + break; + case 2: + { + setState(5129); + identifier(0); + } + break; + } + setState(5139); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,611,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(5132); + match(OPEN_BRACKET); + setState(5134); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTEGER_LITERAL) { + { + setState(5133); + match(INTEGER_LITERAL); + } + } + + setState(5136); + match(CLOSE_BRACKET); + } + } + } + setState(5141); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,611,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Data_type_listContext extends ParserRuleContext { + public List data_type() { + return getRuleContexts(Data_typeContext.class); + } + public Data_typeContext data_type(int i) { + return getRuleContext(Data_typeContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Data_type_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_data_type_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterData_type_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitData_type_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitData_type_list(this); + else return visitor.visitChildren(this); + } + } + + public final Data_type_listContext data_type_list() throws RecognitionException { + Data_type_listContext _localctx = new Data_type_listContext(_ctx, getState()); + enterRule(_localctx, 472, RULE_data_type_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5142); + data_type(); + setState(5147); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5143); + match(COMMA); + setState(5144); + data_type(); + } + } + setState(5149); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Index_methodContext extends ParserRuleContext { + public Token builtin; + public IdentifierContext unknown; + public TerminalNode BTREE() { return getToken(PostgreSQLParser.BTREE, 0); } + public TerminalNode HASH_() { return getToken(PostgreSQLParser.HASH_, 0); } + public TerminalNode GIST() { return getToken(PostgreSQLParser.GIST, 0); } + public TerminalNode SPGIST() { return getToken(PostgreSQLParser.SPGIST, 0); } + public TerminalNode GIN() { return getToken(PostgreSQLParser.GIN, 0); } + public TerminalNode BRIN() { return getToken(PostgreSQLParser.BRIN, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Index_methodContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_index_method; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterIndex_method(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitIndex_method(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitIndex_method(this); + else return visitor.visitChildren(this); + } + } + + public final Index_methodContext index_method() throws RecognitionException { + Index_methodContext _localctx = new Index_methodContext(_ctx, getState()); + enterRule(_localctx, 474, RULE_index_method); + int _la; + try { + setState(5152); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BTREE: + case HASH_: + case GIST: + case SPGIST: + case GIN: + case BRIN: + enterOuterAlt(_localctx, 1); + { + setState(5150); + ((Index_methodContext)_localctx).builtin = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 700)) & ~0x3f) == 0 && ((1L << (_la - 700)) & ((1L << (BTREE - 700)) | (1L << (HASH_ - 700)) | (1L << (GIST - 700)) | (1L << (SPGIST - 700)) | (1L << (GIN - 700)) | (1L << (BRIN - 700)))) != 0)) ) { + ((Index_methodContext)_localctx).builtin = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + enterOuterAlt(_localctx, 2); + { + setState(5151); + ((Index_methodContext)_localctx).unknown = identifier(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Func_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Func_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_func_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFunc_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFunc_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFunc_name(this); + else return visitor.visitChildren(this); + } + } + + public final Func_nameContext func_name() throws RecognitionException { + Func_nameContext _localctx = new Func_nameContext(_ctx, getState()); + enterRule(_localctx, 476, RULE_func_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5154); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Func_callContext extends ParserRuleContext { + public Func_nameContext func_name() { + return getRuleContext(Func_nameContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public TerminalNode VARIADIC() { return getToken(PostgreSQLParser.VARIADIC, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Todo_fill_inContext todo_fill_in() { + return getRuleContext(Todo_fill_inContext.class,0); + } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public TerminalNode FOR() { return getToken(PostgreSQLParser.FOR, 0); } + public Func_callContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_func_call; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFunc_call(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFunc_call(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFunc_call(this); + else return visitor.visitChildren(this); + } + } + + public final Func_callContext func_call() throws RecognitionException { + Func_callContext _localctx = new Func_callContext(_ctx, getState()); + enterRule(_localctx, 478, RULE_func_call); + int _la; + try { + int _alt; + setState(5192); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,618,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5156); + func_name(); + setState(5157); + match(OPEN_PAREN); + setState(5158); + match(VARIADIC); + setState(5159); + expr(0); + setState(5160); + match(CLOSE_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5162); + func_name(); + setState(5163); + match(OPEN_PAREN); + setState(5177); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + { + setState(5164); + expr(0); + setState(5169); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,614,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(5165); + match(COMMA); + setState(5166); + expr(0); + } + } + } + setState(5171); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,614,_ctx); + } + setState(5175); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(5172); + match(COMMA); + setState(5173); + match(VARIADIC); + setState(5174); + expr(0); + } + } + + } + } + + setState(5179); + match(CLOSE_PAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5181); + func_name(); + setState(5182); + match(OPEN_PAREN); + setState(5183); + todo_fill_in(); + setState(5184); + match(FROM); + setState(5185); + expr(0); + setState(5188); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FOR) { + { + setState(5186); + match(FOR); + setState(5187); + expr(0); + } + } + + setState(5190); + match(CLOSE_PAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Array_cons_exprContext extends ParserRuleContext { + public TerminalNode ARRAY() { return getToken(PostgreSQLParser.ARRAY, 0); } + public TerminalNode OPEN_BRACKET() { return getToken(PostgreSQLParser.OPEN_BRACKET, 0); } + public TerminalNode CLOSE_BRACKET() { return getToken(PostgreSQLParser.CLOSE_BRACKET, 0); } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Array_cons_exprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_array_cons_expr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterArray_cons_expr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitArray_cons_expr(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitArray_cons_expr(this); + else return visitor.visitChildren(this); + } + } + + public final Array_cons_exprContext array_cons_expr() throws RecognitionException { + Array_cons_exprContext _localctx = new Array_cons_exprContext(_ctx, getState()); + enterRule(_localctx, 480, RULE_array_cons_expr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5194); + match(ARRAY); + setState(5195); + match(OPEN_BRACKET); + setState(5204); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + { + setState(5196); + expr(0); + setState(5201); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5197); + match(COMMA); + setState(5198); + expr(0); + } + } + setState(5203); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(5206); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class From_itemContext extends ParserRuleContext { + public Table_name_Context table_name_() { + return getRuleContext(Table_name_Context.class,0); + } + public TerminalNode ONLY() { return getToken(PostgreSQLParser.ONLY, 0); } + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public With_column_aliasContext with_column_alias() { + return getRuleContext(With_column_aliasContext.class,0); + } + public TerminalNode TABLESAMPLE() { return getToken(PostgreSQLParser.TABLESAMPLE, 0); } + public List todo_fill_in() { + return getRuleContexts(Todo_fill_inContext.class); + } + public Todo_fill_inContext todo_fill_in(int i) { + return getRuleContext(Todo_fill_inContext.class,i); + } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public TerminalNode REPEATABLE() { return getToken(PostgreSQLParser.REPEATABLE, 0); } + public StmtContext stmt() { + return getRuleContext(StmtContext.class,0); + } + public AliasContext alias() { + return getRuleContext(AliasContext.class,0); + } + public TerminalNode LATERAL() { return getToken(PostgreSQLParser.LATERAL, 0); } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List column_alias() { + return getRuleContexts(Column_aliasContext.class); + } + public Column_aliasContext column_alias(int i) { + return getRuleContext(Column_aliasContext.class,i); + } + public Func_callContext func_call() { + return getRuleContext(Func_callContext.class,0); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode ORDINALITY() { return getToken(PostgreSQLParser.ORDINALITY, 0); } + public List column_definition() { + return getRuleContexts(Column_definitionContext.class); + } + public Column_definitionContext column_definition(int i) { + return getRuleContext(Column_definitionContext.class,i); + } + public TerminalNode ROWS() { return getToken(PostgreSQLParser.ROWS, 0); } + public TerminalNode FROM() { return getToken(PostgreSQLParser.FROM, 0); } + public List from_item() { + return getRuleContexts(From_itemContext.class); + } + public From_itemContext from_item(int i) { + return getRuleContext(From_itemContext.class,i); + } + public Join_typeContext join_type() { + return getRuleContext(Join_typeContext.class,0); + } + public TerminalNode NATURAL() { return getToken(PostgreSQLParser.NATURAL, 0); } + public Join_clauseContext join_clause() { + return getRuleContext(Join_clauseContext.class,0); + } + public From_itemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_from_item; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterFrom_item(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitFrom_item(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitFrom_item(this); + else return visitor.visitChildren(this); + } + } + + public final From_itemContext from_item() throws RecognitionException { + return from_item(0); + } + + private From_itemContext from_item(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + From_itemContext _localctx = new From_itemContext(_ctx, _parentState); + From_itemContext _prevctx = _localctx; + int _startState = 482; + enterRecursionRule(_localctx, 482, RULE_from_item, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5314); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,639,_ctx) ) { + case 1: + { + setState(5210); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ONLY) { + { + setState(5209); + match(ONLY); + } + } + + setState(5212); + table_name_(); + setState(5214); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,622,_ctx) ) { + case 1: + { + setState(5213); + match(STAR); + } + break; + } + setState(5217); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,623,_ctx) ) { + case 1: + { + setState(5216); + with_column_alias(); + } + break; + } + setState(5238); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,626,_ctx) ) { + case 1: + { + setState(5219); + match(TABLESAMPLE); + setState(5220); + todo_fill_in(); + setState(5221); + match(OPEN_PAREN); + setState(5222); + expr(0); + setState(5227); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5223); + match(COMMA); + setState(5224); + expr(0); + } + } + setState(5229); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5230); + match(CLOSE_PAREN); + setState(5236); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,625,_ctx) ) { + case 1: + { + setState(5231); + match(REPEATABLE); + setState(5232); + match(OPEN_PAREN); + setState(5233); + todo_fill_in(); + setState(5234); + match(CLOSE_PAREN); + } + break; + } + } + break; + } + } + break; + case 2: + { + setState(5241); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LATERAL) { + { + setState(5240); + match(LATERAL); + } + } + + setState(5243); + match(OPEN_PAREN); + setState(5244); + stmt(); + setState(5245); + match(CLOSE_PAREN); + setState(5247); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(5246); + match(AS); + } + } + + setState(5249); + alias(); + setState(5261); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,630,_ctx) ) { + case 1: + { + setState(5250); + match(OPEN_PAREN); + setState(5251); + column_alias(); + setState(5256); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5252); + match(COMMA); + setState(5253); + column_alias(); + } + } + setState(5258); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5259); + match(CLOSE_PAREN); + } + break; + } + } + break; + case 3: + { + setState(5264); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LATERAL) { + { + setState(5263); + match(LATERAL); + } + } + + setState(5266); + func_call(); + setState(5269); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,632,_ctx) ) { + case 1: + { + setState(5267); + match(WITH); + setState(5268); + match(ORDINALITY); + } + break; + } + setState(5272); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,633,_ctx) ) { + case 1: + { + setState(5271); + with_column_alias(); + } + break; + } + } + break; + case 4: + { + setState(5275); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LATERAL) { + { + setState(5274); + match(LATERAL); + } + } + + setState(5277); + func_call(); + setState(5278); + match(AS); + setState(5279); + match(OPEN_PAREN); + setState(5280); + column_definition(); + setState(5285); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5281); + match(COMMA); + setState(5282); + column_definition(); + } + } + setState(5287); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5288); + match(CLOSE_PAREN); + } + break; + case 5: + { + setState(5291); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LATERAL) { + { + setState(5290); + match(LATERAL); + } + } + + setState(5293); + match(ROWS); + setState(5294); + match(FROM); + setState(5295); + match(OPEN_PAREN); + setState(5296); + func_call(); + setState(5297); + match(CLOSE_PAREN); + setState(5310); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(5298); + match(AS); + setState(5299); + match(OPEN_PAREN); + setState(5300); + column_definition(); + setState(5305); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5301); + match(COMMA); + setState(5302); + column_definition(); + } + } + setState(5307); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5308); + match(CLOSE_PAREN); + } + } + + setState(5312); + match(CLOSE_PAREN); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(5333); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,644,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new From_itemContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_from_item); + setState(5316); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(5318); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NATURAL) { + { + setState(5317); + match(NATURAL); + } + } + + setState(5320); + join_type(); + setState(5322); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,641,_ctx) ) { + case 1: + { + setState(5321); + match(OPEN_PAREN); + } + break; + } + setState(5324); + from_item(0); + setState(5326); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,642,_ctx) ) { + case 1: + { + setState(5325); + join_clause(); + } + break; + } + setState(5329); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,643,_ctx) ) { + case 1: + { + setState(5328); + match(CLOSE_PAREN); + } + break; + } + } + } + } + setState(5335); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,644,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class With_column_aliasContext extends ParserRuleContext { + public AliasContext alias() { + return getRuleContext(AliasContext.class,0); + } + public TerminalNode AS() { return getToken(PostgreSQLParser.AS, 0); } + public List column_alias() { + return getRuleContexts(Column_aliasContext.class); + } + public Column_aliasContext column_alias(int i) { + return getRuleContext(Column_aliasContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Name_listContext name_list() { + return getRuleContext(Name_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public With_column_aliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_with_column_alias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWith_column_alias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWith_column_alias(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWith_column_alias(this); + else return visitor.visitChildren(this); + } + } + + public final With_column_aliasContext with_column_alias() throws RecognitionException { + With_column_aliasContext _localctx = new With_column_aliasContext(_ctx, getState()); + enterRule(_localctx, 484, RULE_with_column_alias); + int _la; + try { + int _alt; + setState(5358); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,649,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5337); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(5336); + match(AS); + } + } + + setState(5339); + alias(); + setState(5348); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,647,_ctx) ) { + case 1: + { + setState(5340); + column_alias(); + setState(5345); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,646,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(5341); + match(COMMA); + setState(5342); + column_alias(); + } + } + } + setState(5347); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,646,_ctx); + } + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5351); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(5350); + match(AS); + } + } + + setState(5353); + alias(); + setState(5354); + match(OPEN_PAREN); + setState(5355); + name_list(); + setState(5356); + match(CLOSE_PAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Join_typeContext extends ParserRuleContext { + public TerminalNode JOIN() { return getToken(PostgreSQLParser.JOIN, 0); } + public TerminalNode INNER() { return getToken(PostgreSQLParser.INNER, 0); } + public TerminalNode LEFT() { return getToken(PostgreSQLParser.LEFT, 0); } + public TerminalNode OUTER() { return getToken(PostgreSQLParser.OUTER, 0); } + public TerminalNode RIGHT() { return getToken(PostgreSQLParser.RIGHT, 0); } + public TerminalNode FULL() { return getToken(PostgreSQLParser.FULL, 0); } + public TerminalNode CROSS() { return getToken(PostgreSQLParser.CROSS, 0); } + public Join_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_join_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterJoin_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitJoin_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitJoin_type(this); + else return visitor.visitChildren(this); + } + } + + public final Join_typeContext join_type() throws RecognitionException { + Join_typeContext _localctx = new Join_typeContext(_ctx, getState()); + enterRule(_localctx, 486, RULE_join_type); + int _la; + try { + setState(5381); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INNER: + case JOIN: + enterOuterAlt(_localctx, 1); + { + setState(5361); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INNER) { + { + setState(5360); + match(INNER); + } + } + + setState(5363); + match(JOIN); + } + break; + case LEFT: + enterOuterAlt(_localctx, 2); + { + setState(5364); + match(LEFT); + setState(5366); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUTER) { + { + setState(5365); + match(OUTER); + } + } + + setState(5368); + match(JOIN); + } + break; + case RIGHT: + enterOuterAlt(_localctx, 3); + { + setState(5369); + match(RIGHT); + setState(5371); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUTER) { + { + setState(5370); + match(OUTER); + } + } + + setState(5373); + match(JOIN); + } + break; + case FULL: + enterOuterAlt(_localctx, 4); + { + setState(5374); + match(FULL); + setState(5376); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUTER) { + { + setState(5375); + match(OUTER); + } + } + + setState(5378); + match(JOIN); + } + break; + case CROSS: + enterOuterAlt(_localctx, 5); + { + setState(5379); + match(CROSS); + setState(5380); + match(JOIN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Join_clauseContext extends ParserRuleContext { + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List column_name() { + return getRuleContexts(Column_nameContext.class); + } + public Column_nameContext column_name(int i) { + return getRuleContext(Column_nameContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Join_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_join_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterJoin_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitJoin_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitJoin_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Join_clauseContext join_clause() throws RecognitionException { + Join_clauseContext _localctx = new Join_clauseContext(_ctx, getState()); + enterRule(_localctx, 488, RULE_join_clause); + int _la; + try { + setState(5397); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ON: + enterOuterAlt(_localctx, 1); + { + setState(5383); + match(ON); + setState(5384); + predicate(0); + } + break; + case USING: + enterOuterAlt(_localctx, 2); + { + setState(5385); + match(USING); + setState(5386); + match(OPEN_PAREN); + setState(5387); + column_name(); + setState(5392); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5388); + match(COMMA); + setState(5389); + column_name(); + } + } + setState(5394); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(5395); + match(CLOSE_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PredicateContext extends ParserRuleContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public OperContext oper() { + return getRuleContext(OperContext.class,0); + } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public List predicate() { + return getRuleContexts(PredicateContext.class); + } + public PredicateContext predicate(int i) { + return getRuleContext(PredicateContext.class,i); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode AND() { return getToken(PostgreSQLParser.AND, 0); } + public TerminalNode OR() { return getToken(PostgreSQLParser.OR, 0); } + public PredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_predicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitPredicate(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitPredicate(this); + else return visitor.visitChildren(this); + } + } + + public final PredicateContext predicate() throws RecognitionException { + return predicate(0); + } + + private PredicateContext predicate(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + PredicateContext _localctx = new PredicateContext(_ctx, _parentState); + PredicateContext _prevctx = _localctx; + int _startState = 490; + enterRecursionRule(_localctx, 490, RULE_predicate, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5411); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,657,_ctx) ) { + case 1: + { + setState(5400); + expr(0); + } + break; + case 2: + { + setState(5401); + expr(0); + setState(5402); + oper(); + setState(5403); + expr(0); + } + break; + case 3: + { + setState(5405); + match(OPEN_PAREN); + setState(5406); + predicate(0); + setState(5407); + match(CLOSE_PAREN); + } + break; + case 4: + { + setState(5409); + match(NOT); + setState(5410); + predicate(1); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(5421); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,659,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(5419); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,658,_ctx) ) { + case 1: + { + _localctx = new PredicateContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_predicate); + setState(5413); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(5414); + match(AND); + setState(5415); + predicate(4); + } + break; + case 2: + { + _localctx = new PredicateContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_predicate); + setState(5416); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(5417); + match(OR); + setState(5418); + predicate(3); + } + break; + } + } + } + setState(5423); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,659,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Aggregate_signatureContext extends ParserRuleContext { + public Token argmode; + public IdentifierContext argname; + public Data_type_listContext argtype; + public TerminalNode STAR() { return getToken(PostgreSQLParser.STAR, 0); } + public List data_type_list() { + return getRuleContexts(Data_type_listContext.class); + } + public Data_type_listContext data_type_list(int i) { + return getRuleContext(Data_type_listContext.class,i); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List IN() { return getTokens(PostgreSQLParser.IN); } + public TerminalNode IN(int i) { + return getToken(PostgreSQLParser.IN, i); + } + public List VARIADIC() { return getTokens(PostgreSQLParser.VARIADIC); } + public TerminalNode VARIADIC(int i) { + return getToken(PostgreSQLParser.VARIADIC, i); + } + public TerminalNode ORDER() { return getToken(PostgreSQLParser.ORDER, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public Aggregate_signatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_aggregate_signature; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAggregate_signature(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAggregate_signature(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAggregate_signature(this); + else return visitor.visitChildren(this); + } + } + + public final Aggregate_signatureContext aggregate_signature() throws RecognitionException { + Aggregate_signatureContext _localctx = new Aggregate_signatureContext(_ctx, getState()); + enterRule(_localctx, 492, RULE_aggregate_signature); + int _la; + try { + setState(5450); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,666,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5424); + match(STAR); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5426); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==VARIADIC) { + { + setState(5425); + ((Aggregate_signatureContext)_localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==IN || _la==VARIADIC) ) { + ((Aggregate_signatureContext)_localctx).argmode = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5429); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,661,_ctx) ) { + case 1: + { + setState(5428); + ((Aggregate_signatureContext)_localctx).argname = identifier(0); + } + break; + } + setState(5431); + ((Aggregate_signatureContext)_localctx).argtype = data_type_list(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + { + setState(5433); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==VARIADIC) { + { + setState(5432); + ((Aggregate_signatureContext)_localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==IN || _la==VARIADIC) ) { + ((Aggregate_signatureContext)_localctx).argmode = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5436); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,663,_ctx) ) { + case 1: + { + setState(5435); + ((Aggregate_signatureContext)_localctx).argname = identifier(0); + } + break; + } + setState(5438); + ((Aggregate_signatureContext)_localctx).argtype = data_type_list(); + } + setState(5440); + match(ORDER); + setState(5441); + match(BY); + setState(5443); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==VARIADIC) { + { + setState(5442); + ((Aggregate_signatureContext)_localctx).argmode = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==IN || _la==VARIADIC) ) { + ((Aggregate_signatureContext)_localctx).argmode = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5446); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,665,_ctx) ) { + case 1: + { + setState(5445); + ((Aggregate_signatureContext)_localctx).argname = identifier(0); + } + break; + } + setState(5448); + ((Aggregate_signatureContext)_localctx).argtype = data_type_list(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Column_constraintContext extends ParserRuleContext { + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode NULL() { return getToken(PostgreSQLParser.NULL, 0); } + public Column_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_column_constraint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterColumn_constraint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitColumn_constraint(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitColumn_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Column_constraintContext column_constraint() throws RecognitionException { + Column_constraintContext _localctx = new Column_constraintContext(_ctx, getState()); + enterRule(_localctx, 494, RULE_column_constraint); + try { + enterOuterAlt(_localctx, 1); + { + setState(5452); + match(NOT); + setState(5453); + match(NULL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Column_constraintsContext extends ParserRuleContext { + public List column_constraint() { + return getRuleContexts(Column_constraintContext.class); + } + public Column_constraintContext column_constraint(int i) { + return getRuleContext(Column_constraintContext.class,i); + } + public Column_constraintsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_column_constraints; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterColumn_constraints(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitColumn_constraints(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitColumn_constraints(this); + else return visitor.visitChildren(this); + } + } + + public final Column_constraintsContext column_constraints() throws RecognitionException { + Column_constraintsContext _localctx = new Column_constraintsContext(_ctx, getState()); + enterRule(_localctx, 496, RULE_column_constraints); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5456); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(5455); + column_constraint(); + } + } + setState(5458); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==NOT ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Index_parametersContext extends ParserRuleContext { + public IdentifierContext tablespace; + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public Option_listContext option_list() { + return getRuleContext(Option_listContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Index_parametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_index_parameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterIndex_parameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitIndex_parameters(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitIndex_parameters(this); + else return visitor.visitChildren(this); + } + } + + public final Index_parametersContext index_parameters() throws RecognitionException { + Index_parametersContext _localctx = new Index_parametersContext(_ctx, getState()); + enterRule(_localctx, 498, RULE_index_parameters); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5465); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(5460); + match(WITH); + setState(5461); + match(OPEN_PAREN); + setState(5462); + option_list(); + setState(5463); + match(CLOSE_PAREN); + } + } + + setState(5471); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(5467); + match(USING); + setState(5468); + match(INDEX); + setState(5469); + match(TABLESPACE); + setState(5470); + ((Index_parametersContext)_localctx).tablespace = identifier(0); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Exclude_elementContext extends ParserRuleContext { + public IdentifierContext column_name_; + public IdentifierContext opclass; + public TerminalNode OPEN_PAREN() { return getToken(PostgreSQLParser.OPEN_PAREN, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode CLOSE_PAREN() { return getToken(PostgreSQLParser.CLOSE_PAREN, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode NULLS() { return getToken(PostgreSQLParser.NULLS, 0); } + public TerminalNode ASC() { return getToken(PostgreSQLParser.ASC, 0); } + public TerminalNode DESC() { return getToken(PostgreSQLParser.DESC, 0); } + public TerminalNode FIRST() { return getToken(PostgreSQLParser.FIRST, 0); } + public TerminalNode LAST() { return getToken(PostgreSQLParser.LAST, 0); } + public Exclude_elementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exclude_element; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterExclude_element(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitExclude_element(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitExclude_element(this); + else return visitor.visitChildren(this); + } + } + + public final Exclude_elementContext exclude_element() throws RecognitionException { + Exclude_elementContext _localctx = new Exclude_elementContext(_ctx, getState()); + enterRule(_localctx, 500, RULE_exclude_element); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5478); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHITESPACE: + case A_: + case ABORT: + case ABS: + case ABSOLUTE: + case ACCESS: + case ACTION: + case ADA: + case ADD: + case ADMIN: + case AFTER: + case AGGREGATE: + case ALLOCATE: + case ALSO: + case ALTER: + case ALWAYS: + case ANY: + case ARE: + case ASENSITIVE: + case ASSERTION: + case ASSIGNMENT: + case AT: + case ATOMIC: + case ATTRIBUTE: + case ATTRIBUTES: + case AVG: + case BACKWARD: + case BEFORE: + case BEGIN: + case BERNOULLI: + case BETWEEN: + case BIGINT: + case BIT: + case BIT_LENGTH: + case BLOB: + case BOOLEAN: + case BREADTH: + case BY: + case C_: + case CACHE: + case CALL: + case CALLED: + case CARDINALITY: + case CASCADE: + case CASCADED: + case CATALOG: + case CATALOG_NAME: + case CEIL: + case CEILING: + case CHAIN: + case CHAR: + case CHAR_LENGTH: + case CHARACTER: + case CHARACTER_LENGTH: + case CHARACTER_SET_CATALOG: + case CHARACTER_SET_NAME: + case CHARACTER_SET_SCHEMA: + case CHARACTERISTICS: + case CHARACTERS: + case CHECKPOINT: + case CLASS: + case CLASS_ORIGIN: + case CLOB: + case CLOSE: + case CLUSTER: + case COALESCE: + case COBOL: + case COLLATION_CATALOG: + case COLLATION_NAME: + case COLLATION_SCHEMA: + case COLLECT: + case COLUMN_NAME: + case COMMAND_FUNCTION: + case COMMAND_FUNCTION_CODE: + case COMMENT: + case COMMIT: + case COMMITTED: + case CONDITION: + case CONDITION_NUMBER: + case CONNECT: + case CONNECTION: + case CONNECTION_NAME: + case CONSTRAINT_CATALOG: + case CONSTRAINT_NAME: + case CONSTRAINT_SCHEMA: + case CONSTRAINTS: + case CONSTRUCTOR: + case CONTAINS: + case CONTINUE: + case CONVERSION: + case CONVERT: + case COPY: + case CORR: + case CORRESPONDING: + case COUNT: + case COVAR_POP: + case COVAR_SAMP: + case CSV: + case CUBE: + case CUME_DIST: + case CURRENT: + case CURRENT_DEFAULT_TRANSFORM_GROUP: + case CURRENT_PATH: + case CURRENT_TRANSFORM_GROUP_FOR_TYPE: + case CURSOR: + case CURSOR_NAME: + case CYCLE: + case DATA: + case DATABASE: + case DATE: + case DATETIME_INTERVAL_CODE: + case DATETIME_INTERVAL_PRECISION: + case DAY: + case DEALLOCATE: + case DEC: + case DECIMAL: + case DECLARE: + case DEFAULTS: + case DEFERRED: + case DEFINED: + case DEFINER: + case DEGREE: + case DELETE: + case DELIMITER: + case DELIMITERS: + case DENSE_RANK: + case DEPTH: + case DEREF: + case DERIVED: + case DESCRIBE: + case DESCRIPTOR: + case DETERMINISTIC: + case DIAGNOSTICS: + case DICTIONARY: + case DISABLE_P: + case DISCONNECT: + case DISPATCH: + case DOMAIN: + case DOUBLE: + case DYNAMIC: + case DYNAMIC_FUNCTION: + case DYNAMIC_FUNCTION_CODE: + case EACH: + case ELEMENT: + case ENCODING: + case ENCRYPTED: + case END: + case EQUALS: + case ESCAPE: + case EVERY: + case EXCEPTION: + case EXCLUDE: + case EXCLUDING: + case EXCLUSIVE: + case EXEC: + case EXECUTE: + case EXISTS: + case EXP: + case EXPLAIN: + case EXTENSION: + case EXTERNAL: + case EXTRACT: + case FILTER: + case FINAL: + case FIRST: + case FLOAT: + case FLOOR: + case FOLLOWING: + case FORCE: + case FORMAT: + case FORTRAN: + case FORWARD: + case FOUND: + case FREE: + case FUNCTION: + case FUSION: + case G_: + case GENERAL: + case GENERATED: + case GET: + case GLOBAL: + case GO: + case GOTO: + case GRANTED: + case GREATEST: + case GROUPING: + case HANDLER: + case HIERARCHY: + case HOLD: + case HOST: + case HOUR: + case IDENTITY: + case IGNORE: + case IMMEDIATE: + case IMMUTABLE: + case IMPLEMENTATION: + case IMPLICIT: + case INCLUDING: + case INCREMENT: + case INDEX: + case INDICATOR: + case INHERITS: + case INOUT: + case INPUT: + case INSENSITIVE: + case INSERT: + case INSTANCE: + case INSTANTIABLE: + case INSTEAD: + case INT: + case INTEGER: + case INTERSECTION: + case INTERVAL: + case INVOKER: + case ISOLATION: + case K_: + case KEY: + case KEY_MEMBER: + case KEY_TYPE: + case LANGUAGE: + case LARGE: + case LAST: + case LEAST: + case LEFT: + case LENGTH: + case LEVEL: + case LISTEN: + case LN: + case LOAD: + case LOCAL: + case LOCATION: + case LOCATOR: + case LOCK: + case LOCKED: + case LOWER: + case M_: + case MAP: + case MATCH: + case MATCHED: + case MAX: + case MAXVALUE: + case MEMBER: + case MERGE: + case MESSAGE_LENGTH: + case MESSAGE_OCTET_LENGTH: + case MESSAGE_TEXT: + case METHOD: + case MIN: + case MINUTE: + case MINVALUE: + case MOD: + case MODE: + case MODIFIES: + case MODULE: + case MONTH: + case MORE_: + case MOVE: + case MULTISET: + case MUMPS: + case NAME: + case NAMES: + case NATIONAL: + case NCHAR: + case NCLOB: + case NESTING: + case NEW: + case NEXT: + case NO: + case NONE: + case NORMALIZE: + case NORMALIZED: + case NOTHING: + case NOTIFY: + case NOWAIT: + case NULLABLE: + case NULLIF: + case NULLS: + case NUMBER: + case NUMERIC: + case OBJECT: + case OCTET_LENGTH: + case OCTETS: + case OF: + case OFF: + case OIDS: + case OLD: + case OPEN: + case OPERATOR: + case OPTION: + case OPTIONS: + case ORDERING: + case ORDINALITY: + case OTHERS: + case OUT: + case OUTPUT: + case OVER: + case OVERLAY: + case OVERRIDING: + case OWNER: + case PAD: + case PARAMETER: + case PARAMETER_MODE: + case PARAMETER_NAME: + case PARAMETER_ORDINAL_POSITION: + case PARAMETER_SPECIFIC_CATALOG: + case PARAMETER_SPECIFIC_NAME: + case PARAMETER_SPECIFIC_SCHEMA: + case PARTIAL: + case PARTITION: + case PASCAL: + case PASSWORD: + case PATH: + case PERCENT_RANK: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case PLAIN: + case PLI: + case POSITION: + case POWER: + case PRECEDING: + case PRECISION: + case PREPARE: + case PRESERVE: + case PRIOR: + case PRIVILEGES: + case PROCEDURAL: + case PROCEDURE: + case PUBLIC: + case QUOTE: + case RANGE: + case RANK: + case READ: + case READS: + case REAL: + case RECHECK: + case RECURSIVE: + case REF: + case REFERENCING: + case REFRESH: + case REGR_AVGX: + case REGR_AVGY: + case REGR_COUNT: + case REGR_INTERCEPT: + case REGR_SLOPE: + case REGR_SXX: + case REGR_SXY: + case REGR_SYY: + case REINDEX: + case RELATIVE: + case RELEASE: + case RENAME: + case REPEATABLE: + case REPLACE: + case RESET: + case RESTART: + case RESTRICT: + case RESULT: + case RETURN: + case RETURNED_CARDINALITY: + case RETURNED_LENGTH: + case RETURNED_OCTET_LENGTH: + case RETURNED_SQLSTATE: + case RETURNS: + case REVOKE: + case RIGHT: + case ROLE: + case ROLLBACK: + case ROLLUP: + case ROUTINE: + case ROUTINE_CATALOG: + case ROUTINE_NAME: + case ROUTINE_SCHEMA: + case ROW: + case ROW_COUNT: + case ROW_NUMBER: + case ROWS: + case RULE: + case SAVEPOINT: + case SCALE: + case SCHEMA: + case SCHEMA_NAME: + case SCOPE: + case SCOPE_CATALOG: + case SCOPE_NAME: + case SCOPE_SCHEMA: + case SCROLL: + case SEARCH: + case SECOND: + case SECTION: + case SECURITY: + case SELF: + case SENSITIVE: + case SEQUENCE: + case SEQUENCES: + case SERIALIZABLE: + case SERVER_NAME: + case SESSION: + case SET: + case SETOF: + case SETS: + case SHARE: + case SHOW: + case SIMPLE: + case SIZE: + case SMALLINT: + case SOME: + case SOURCE: + case SPACE: + case SPECIFIC: + case SPECIFIC_NAME: + case SPECIFICTYPE: + case SQL: + case SQLCODE: + case SQLERROR: + case SQLEXCEPTION: + case SQLSTATE: + case SQLWARNING: + case SQRT: + case STABLE: + case START: + case STATE: + case STATEMENT: + case STATIC: + case STATISTICS: + case STDDEV_POP: + case STDDEV_SAMP: + case STDIN: + case STDOUT: + case STORAGE: + case STRICT: + case STRUCTURE: + case STYLE: + case SUBCLASS_ORIGIN: + case SUBMULTISET: + case SUBSTRING: + case SUM: + case SYSID: + case SYSTEM: + case SYSTEM_USER: + case TABLE_NAME: + case TABLESPACE: + case TEMP: + case TEMPLATE: + case TEMPORARY: + case TIES: + case TIME: + case TIMESTAMP: + case TIMEZONE_HOUR: + case TIMEZONE_MINUTE: + case TOP_LEVEL_COUNT: + case TRANSACTION: + case TRANSACTION_ACTIVE: + case TRANSACTIONS_COMMITTED: + case TRANSACTIONS_ROLLED_BACK: + case TRANSFORM: + case TRANSFORMS: + case TRANSLATE: + case TRANSLATION: + case TREAT: + case TRIGGER: + case TRIGGER_CATALOG: + case TRIGGER_NAME: + case TRIGGER_SCHEMA: + case TRIM: + case TRUE: + case TRUNCATE: + case TRUSTED: + case TYPE: + case UESCAPE: + case UNBOUNDED: + case UNCOMMITTED: + case UNDER: + case UNENCRYPTED: + case UNKNOWN: + case UNLISTEN: + case UNNAMED: + case UNNEST: + case UNTIL: + case UPDATE: + case UPPER: + case USAGE: + case USER_DEFINED_TYPE_CATALOG: + case USER_DEFINED_TYPE_CODE: + case USER_DEFINED_TYPE_NAME: + case USER_DEFINED_TYPE_SCHEMA: + case VACUUM: + case VALID: + case VALIDATOR: + case VALUE: + case VALUES: + case VAR_POP: + case VAR_SAMP: + case VARCHAR: + case VARYING: + case VIEW: + case VOLATILE: + case WHENEVER: + case WIDTH_BUCKET: + case WITHIN: + case WITHOUT: + case WORK: + case WRITE: + case YEAR: + case ZONE: + case ABSTIME: + case BIGSERIAL: + case BIT_VARYING: + case BOOL: + case BOX: + case BYTEA: + case CHARACTER_VARYING: + case CIDR: + case CIRCLE: + case FLOAT4: + case FLOAT8: + case INET: + case INT2: + case INT4: + case INT8: + case JSON: + case JSONB: + case LINE: + case LSEG: + case MACADDR: + case MACADDR8: + case MONEY: + case PG_LSN: + case POINT: + case POLYGON: + case RELTIME: + case SERIAL: + case SERIAL2: + case SERIAL4: + case SERIAL8: + case SMALLSERIAL: + case TEXT: + case TIMESTAMPTZ: + case TIMETZ: + case TSQUERY: + case TSVECTOR: + case TXID_SNAPSHOT: + case UUID: + case VARBIT: + case XML: + case DOUBLEQ_STRING_LITERAL: + case IDENTIFIER: + case IDENTIFIER_UNICODE: + { + setState(5473); + ((Exclude_elementContext)_localctx).column_name_ = identifier(0); + } + break; + case OPEN_PAREN: + { + setState(5474); + match(OPEN_PAREN); + setState(5475); + expr(0); + setState(5476); + match(CLOSE_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + setState(5481); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,671,_ctx) ) { + case 1: + { + setState(5480); + ((Exclude_elementContext)_localctx).opclass = identifier(0); + } + break; + } + setState(5484); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASC || _la==DESC) { + { + setState(5483); + _la = _input.LA(1); + if ( !(_la==ASC || _la==DESC) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(5488); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NULLS) { + { + setState(5486); + match(NULLS); + setState(5487); + _la = _input.LA(1); + if ( !(_la==FIRST || _la==LAST) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Table_constraintContext extends ParserRuleContext { + public Name_Context constraint_name; + public Identifier_listContext columns; + public Identifier_listContext operators; + public IdentifierContext reftable; + public IdentifierContext action; + public TerminalNode CONSTRAINT() { return getToken(PostgreSQLParser.CONSTRAINT, 0); } + public TerminalNode DEFERABLE() { return getToken(PostgreSQLParser.DEFERABLE, 0); } + public TerminalNode INITIALLY() { return getToken(PostgreSQLParser.INITIALLY, 0); } + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode CHECK() { return getToken(PostgreSQLParser.CHECK, 0); } + public List OPEN_PAREN() { return getTokens(PostgreSQLParser.OPEN_PAREN); } + public TerminalNode OPEN_PAREN(int i) { + return getToken(PostgreSQLParser.OPEN_PAREN, i); + } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public List CLOSE_PAREN() { return getTokens(PostgreSQLParser.CLOSE_PAREN); } + public TerminalNode CLOSE_PAREN(int i) { + return getToken(PostgreSQLParser.CLOSE_PAREN, i); + } + public TerminalNode UNIQUE() { return getToken(PostgreSQLParser.UNIQUE, 0); } + public TerminalNode PRIMARY() { return getToken(PostgreSQLParser.PRIMARY, 0); } + public TerminalNode KEY() { return getToken(PostgreSQLParser.KEY, 0); } + public Index_parametersContext index_parameters() { + return getRuleContext(Index_parametersContext.class,0); + } + public TerminalNode FOREIGN() { return getToken(PostgreSQLParser.FOREIGN, 0); } + public TerminalNode REFERENCES() { return getToken(PostgreSQLParser.REFERENCES, 0); } + public TerminalNode DEFERRED() { return getToken(PostgreSQLParser.DEFERRED, 0); } + public TerminalNode IMMEDIATE() { return getToken(PostgreSQLParser.IMMEDIATE, 0); } + public List identifier_list() { + return getRuleContexts(Identifier_listContext.class); + } + public Identifier_listContext identifier_list(int i) { + return getRuleContext(Identifier_listContext.class,i); + } + public TerminalNode EXCLUDE() { return getToken(PostgreSQLParser.EXCLUDE, 0); } + public Exclude_elementContext exclude_element() { + return getRuleContext(Exclude_elementContext.class,0); + } + public TerminalNode WITH() { return getToken(PostgreSQLParser.WITH, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode NOT() { return getToken(PostgreSQLParser.NOT, 0); } + public TerminalNode NO() { return getToken(PostgreSQLParser.NO, 0); } + public TerminalNode INHERIT() { return getToken(PostgreSQLParser.INHERIT, 0); } + public TerminalNode WHERE() { return getToken(PostgreSQLParser.WHERE, 0); } + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public TerminalNode MATCH() { return getToken(PostgreSQLParser.MATCH, 0); } + public TerminalNode FULL() { return getToken(PostgreSQLParser.FULL, 0); } + public TerminalNode PARTIAL() { return getToken(PostgreSQLParser.PARTIAL, 0); } + public TerminalNode MATCH_SIMPLE() { return getToken(PostgreSQLParser.MATCH_SIMPLE, 0); } + public List ON() { return getTokens(PostgreSQLParser.ON); } + public TerminalNode ON(int i) { + return getToken(PostgreSQLParser.ON, i); + } + public TerminalNode DELETE() { return getToken(PostgreSQLParser.DELETE, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public TerminalNode USING() { return getToken(PostgreSQLParser.USING, 0); } + public Index_methodContext index_method() { + return getRuleContext(Index_methodContext.class,0); + } + public Table_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_table_constraint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTable_constraint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTable_constraint(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTable_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Table_constraintContext table_constraint() throws RecognitionException { + Table_constraintContext _localctx = new Table_constraintContext(_ctx, getState()); + enterRule(_localctx, 502, RULE_table_constraint); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5492); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CONSTRAINT) { + { + setState(5490); + match(CONSTRAINT); + setState(5491); + ((Table_constraintContext)_localctx).constraint_name = name_(); + } + } + + setState(5559); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CHECK: + { + { + setState(5494); + match(CHECK); + setState(5495); + match(OPEN_PAREN); + setState(5496); + expr(0); + setState(5497); + match(CLOSE_PAREN); + setState(5500); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NO) { + { + setState(5498); + match(NO); + setState(5499); + match(INHERIT); + } + } + + } + } + break; + case UNIQUE: + { + { + setState(5502); + match(UNIQUE); + setState(5503); + match(OPEN_PAREN); + setState(5504); + ((Table_constraintContext)_localctx).columns = identifier_list(); + setState(5505); + match(CLOSE_PAREN); + } + } + break; + case PRIMARY: + { + { + setState(5507); + match(PRIMARY); + setState(5508); + match(KEY); + setState(5509); + match(OPEN_PAREN); + setState(5510); + ((Table_constraintContext)_localctx).columns = identifier_list(); + setState(5511); + match(CLOSE_PAREN); + setState(5512); + index_parameters(); + } + } + break; + case EOF: + case DEFERABLE: + case EXCLUDE: + case INITIALLY: + case NOT: + case COMMA: + case CLOSE_PAREN: + case SEMI: + { + setState(5530); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXCLUDE) { + { + setState(5514); + match(EXCLUDE); + setState(5517); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(5515); + match(USING); + setState(5516); + index_method(); + } + } + + setState(5519); + match(OPEN_PAREN); + setState(5520); + exclude_element(); + setState(5521); + match(WITH); + setState(5522); + ((Table_constraintContext)_localctx).operators = identifier_list(); + setState(5523); + match(CLOSE_PAREN); + setState(5524); + index_parameters(); + { + setState(5525); + match(WHERE); + setState(5526); + match(OPEN_PAREN); + setState(5527); + predicate(0); + setState(5528); + match(CLOSE_PAREN); + } + } + } + + } + break; + case FOREIGN: + { + { + setState(5532); + match(FOREIGN); + setState(5533); + match(KEY); + setState(5534); + match(OPEN_PAREN); + setState(5535); + ((Table_constraintContext)_localctx).columns = identifier_list(); + setState(5536); + match(CLOSE_PAREN); + setState(5537); + match(REFERENCES); + setState(5538); + ((Table_constraintContext)_localctx).reftable = identifier(0); + setState(5540); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,678,_ctx) ) { + case 1: + { + setState(5539); + ((Table_constraintContext)_localctx).columns = identifier_list(); + } + break; + } + setState(5547); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,679,_ctx) ) { + case 1: + { + setState(5542); + match(MATCH); + setState(5543); + match(FULL); + } + break; + case 2: + { + setState(5544); + match(MATCH); + setState(5545); + match(PARTIAL); + } + break; + case 3: + { + setState(5546); + match(MATCH_SIMPLE); + } + break; + } + setState(5552); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,680,_ctx) ) { + case 1: + { + setState(5549); + match(ON); + setState(5550); + match(DELETE); + setState(5551); + ((Table_constraintContext)_localctx).action = identifier(0); + } + break; + } + setState(5557); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ON) { + { + setState(5554); + match(ON); + setState(5555); + match(UPDATE); + setState(5556); + ((Table_constraintContext)_localctx).action = identifier(0); + } + } + + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(5565); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,684,_ctx) ) { + case 1: + { + setState(5562); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(5561); + match(NOT); + } + } + + setState(5564); + match(DEFERABLE); + } + break; + } + setState(5569); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INITIALLY) { + { + setState(5567); + match(INITIALLY); + setState(5568); + _la = _input.LA(1); + if ( !(_la==DEFERRED || _la==IMMEDIATE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Role_nameContext extends ParserRuleContext { + public Name_Context name; + public Name_Context name_() { + return getRuleContext(Name_Context.class,0); + } + public TerminalNode CURRENT_USER() { return getToken(PostgreSQLParser.CURRENT_USER, 0); } + public TerminalNode SESSION_USER() { return getToken(PostgreSQLParser.SESSION_USER, 0); } + public TerminalNode PUBLIC() { return getToken(PostgreSQLParser.PUBLIC, 0); } + public Role_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_role_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRole_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRole_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRole_name(this); + else return visitor.visitChildren(this); + } + } + + public final Role_nameContext role_name() throws RecognitionException { + Role_nameContext _localctx = new Role_nameContext(_ctx, getState()); + enterRule(_localctx, 504, RULE_role_name); + try { + setState(5575); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,686,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5571); + ((Role_nameContext)_localctx).name = name_(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5572); + match(CURRENT_USER); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5573); + match(SESSION_USER); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(5574); + match(PUBLIC); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Role_name_listContext extends ParserRuleContext { + public List role_name() { + return getRuleContexts(Role_nameContext.class); + } + public Role_nameContext role_name(int i) { + return getRuleContext(Role_nameContext.class,i); + } + public List COMMA() { return getTokens(PostgreSQLParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(PostgreSQLParser.COMMA, i); + } + public Role_name_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_role_name_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterRole_name_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitRole_name_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitRole_name_list(this); + else return visitor.visitChildren(this); + } + } + + public final Role_name_listContext role_name_list() throws RecognitionException { + Role_name_listContext _localctx = new Role_name_listContext(_ctx, getState()); + enterRule(_localctx, 506, RULE_role_name_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5577); + role_name(); + setState(5582); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(5578); + match(COMMA); + setState(5579); + role_name(); + } + } + setState(5584); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Param_valueContext extends ParserRuleContext { + public TerminalNode ON() { return getToken(PostgreSQLParser.ON, 0); } + public TerminalNode OFF() { return getToken(PostgreSQLParser.OFF, 0); } + public TerminalNode TRUE() { return getToken(PostgreSQLParser.TRUE, 0); } + public TerminalNode FALSE() { return getToken(PostgreSQLParser.FALSE, 0); } + public TerminalNode YES() { return getToken(PostgreSQLParser.YES, 0); } + public TerminalNode NO() { return getToken(PostgreSQLParser.NO, 0); } + public TerminalNode NONE() { return getToken(PostgreSQLParser.NONE, 0); } + public TerminalNode SINGLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.SINGLEQ_STRING_LITERAL, 0); } + public TerminalNode NUMERIC_LITERAL() { return getToken(PostgreSQLParser.NUMERIC_LITERAL, 0); } + public TerminalNode INTEGER_LITERAL() { return getToken(PostgreSQLParser.INTEGER_LITERAL, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Param_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_param_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterParam_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitParam_value(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitParam_value(this); + else return visitor.visitChildren(this); + } + } + + public final Param_valueContext param_value() throws RecognitionException { + Param_valueContext _localctx = new Param_valueContext(_ctx, getState()); + enterRule(_localctx, 508, RULE_param_value); + try { + setState(5596); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,688,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(5585); + match(ON); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(5586); + match(OFF); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(5587); + match(TRUE); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(5588); + match(FALSE); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(5589); + match(YES); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(5590); + match(NO); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(5591); + match(NONE); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(5592); + match(SINGLEQ_STRING_LITERAL); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(5593); + match(NUMERIC_LITERAL); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(5594); + match(INTEGER_LITERAL); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(5595); + identifier(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Non_reserved_keywordContext extends ParserRuleContext { + public TerminalNode A_() { return getToken(PostgreSQLParser.A_, 0); } + public TerminalNode ABORT() { return getToken(PostgreSQLParser.ABORT, 0); } + public TerminalNode ABS() { return getToken(PostgreSQLParser.ABS, 0); } + public TerminalNode ABSOLUTE() { return getToken(PostgreSQLParser.ABSOLUTE, 0); } + public TerminalNode ACCESS() { return getToken(PostgreSQLParser.ACCESS, 0); } + public TerminalNode ACTION() { return getToken(PostgreSQLParser.ACTION, 0); } + public TerminalNode ADA() { return getToken(PostgreSQLParser.ADA, 0); } + public TerminalNode ADD() { return getToken(PostgreSQLParser.ADD, 0); } + public TerminalNode ADMIN() { return getToken(PostgreSQLParser.ADMIN, 0); } + public TerminalNode AFTER() { return getToken(PostgreSQLParser.AFTER, 0); } + public TerminalNode AGGREGATE() { return getToken(PostgreSQLParser.AGGREGATE, 0); } + public TerminalNode ALLOCATE() { return getToken(PostgreSQLParser.ALLOCATE, 0); } + public TerminalNode ALSO() { return getToken(PostgreSQLParser.ALSO, 0); } + public TerminalNode ALTER() { return getToken(PostgreSQLParser.ALTER, 0); } + public TerminalNode ALWAYS() { return getToken(PostgreSQLParser.ALWAYS, 0); } + public TerminalNode ANY() { return getToken(PostgreSQLParser.ANY, 0); } + public TerminalNode ARE() { return getToken(PostgreSQLParser.ARE, 0); } + public TerminalNode ASENSITIVE() { return getToken(PostgreSQLParser.ASENSITIVE, 0); } + public TerminalNode ASSERTION() { return getToken(PostgreSQLParser.ASSERTION, 0); } + public TerminalNode ASSIGNMENT() { return getToken(PostgreSQLParser.ASSIGNMENT, 0); } + public TerminalNode AT() { return getToken(PostgreSQLParser.AT, 0); } + public TerminalNode ATOMIC() { return getToken(PostgreSQLParser.ATOMIC, 0); } + public TerminalNode ATTRIBUTE() { return getToken(PostgreSQLParser.ATTRIBUTE, 0); } + public TerminalNode ATTRIBUTES() { return getToken(PostgreSQLParser.ATTRIBUTES, 0); } + public TerminalNode AVG() { return getToken(PostgreSQLParser.AVG, 0); } + public TerminalNode BACKWARD() { return getToken(PostgreSQLParser.BACKWARD, 0); } + public TerminalNode BEFORE() { return getToken(PostgreSQLParser.BEFORE, 0); } + public TerminalNode BEGIN() { return getToken(PostgreSQLParser.BEGIN, 0); } + public TerminalNode BERNOULLI() { return getToken(PostgreSQLParser.BERNOULLI, 0); } + public TerminalNode BETWEEN() { return getToken(PostgreSQLParser.BETWEEN, 0); } + public TerminalNode BIGINT() { return getToken(PostgreSQLParser.BIGINT, 0); } + public TerminalNode BIT() { return getToken(PostgreSQLParser.BIT, 0); } + public TerminalNode BIT_LENGTH() { return getToken(PostgreSQLParser.BIT_LENGTH, 0); } + public TerminalNode BLOB() { return getToken(PostgreSQLParser.BLOB, 0); } + public TerminalNode BOOLEAN() { return getToken(PostgreSQLParser.BOOLEAN, 0); } + public TerminalNode BREADTH() { return getToken(PostgreSQLParser.BREADTH, 0); } + public TerminalNode BY() { return getToken(PostgreSQLParser.BY, 0); } + public TerminalNode C_() { return getToken(PostgreSQLParser.C_, 0); } + public TerminalNode CACHE() { return getToken(PostgreSQLParser.CACHE, 0); } + public TerminalNode CALL() { return getToken(PostgreSQLParser.CALL, 0); } + public TerminalNode CALLED() { return getToken(PostgreSQLParser.CALLED, 0); } + public TerminalNode CARDINALITY() { return getToken(PostgreSQLParser.CARDINALITY, 0); } + public TerminalNode CASCADE() { return getToken(PostgreSQLParser.CASCADE, 0); } + public TerminalNode CASCADED() { return getToken(PostgreSQLParser.CASCADED, 0); } + public TerminalNode CATALOG() { return getToken(PostgreSQLParser.CATALOG, 0); } + public TerminalNode CATALOG_NAME() { return getToken(PostgreSQLParser.CATALOG_NAME, 0); } + public TerminalNode CEIL() { return getToken(PostgreSQLParser.CEIL, 0); } + public TerminalNode CEILING() { return getToken(PostgreSQLParser.CEILING, 0); } + public TerminalNode CHAIN() { return getToken(PostgreSQLParser.CHAIN, 0); } + public TerminalNode CHAR() { return getToken(PostgreSQLParser.CHAR, 0); } + public TerminalNode CHARACTER() { return getToken(PostgreSQLParser.CHARACTER, 0); } + public TerminalNode CHARACTERISTICS() { return getToken(PostgreSQLParser.CHARACTERISTICS, 0); } + public TerminalNode CHARACTERS() { return getToken(PostgreSQLParser.CHARACTERS, 0); } + public TerminalNode CHARACTER_LENGTH() { return getToken(PostgreSQLParser.CHARACTER_LENGTH, 0); } + public TerminalNode CHARACTER_SET_CATALOG() { return getToken(PostgreSQLParser.CHARACTER_SET_CATALOG, 0); } + public TerminalNode CHARACTER_SET_NAME() { return getToken(PostgreSQLParser.CHARACTER_SET_NAME, 0); } + public TerminalNode CHARACTER_SET_SCHEMA() { return getToken(PostgreSQLParser.CHARACTER_SET_SCHEMA, 0); } + public TerminalNode CHAR_LENGTH() { return getToken(PostgreSQLParser.CHAR_LENGTH, 0); } + public TerminalNode CHECKPOINT() { return getToken(PostgreSQLParser.CHECKPOINT, 0); } + public TerminalNode CLASS() { return getToken(PostgreSQLParser.CLASS, 0); } + public TerminalNode CLASS_ORIGIN() { return getToken(PostgreSQLParser.CLASS_ORIGIN, 0); } + public TerminalNode CLOB() { return getToken(PostgreSQLParser.CLOB, 0); } + public TerminalNode CLOSE() { return getToken(PostgreSQLParser.CLOSE, 0); } + public TerminalNode CLUSTER() { return getToken(PostgreSQLParser.CLUSTER, 0); } + public TerminalNode COALESCE() { return getToken(PostgreSQLParser.COALESCE, 0); } + public TerminalNode COBOL() { return getToken(PostgreSQLParser.COBOL, 0); } + public TerminalNode COLLATION_CATALOG() { return getToken(PostgreSQLParser.COLLATION_CATALOG, 0); } + public TerminalNode COLLATION_NAME() { return getToken(PostgreSQLParser.COLLATION_NAME, 0); } + public TerminalNode COLLATION_SCHEMA() { return getToken(PostgreSQLParser.COLLATION_SCHEMA, 0); } + public TerminalNode COLLECT() { return getToken(PostgreSQLParser.COLLECT, 0); } + public TerminalNode COLUMN_NAME() { return getToken(PostgreSQLParser.COLUMN_NAME, 0); } + public TerminalNode COMMAND_FUNCTION() { return getToken(PostgreSQLParser.COMMAND_FUNCTION, 0); } + public TerminalNode COMMAND_FUNCTION_CODE() { return getToken(PostgreSQLParser.COMMAND_FUNCTION_CODE, 0); } + public TerminalNode COMMENT() { return getToken(PostgreSQLParser.COMMENT, 0); } + public TerminalNode COMMIT() { return getToken(PostgreSQLParser.COMMIT, 0); } + public TerminalNode COMMITTED() { return getToken(PostgreSQLParser.COMMITTED, 0); } + public TerminalNode CONDITION() { return getToken(PostgreSQLParser.CONDITION, 0); } + public TerminalNode CONDITION_NUMBER() { return getToken(PostgreSQLParser.CONDITION_NUMBER, 0); } + public TerminalNode CONNECT() { return getToken(PostgreSQLParser.CONNECT, 0); } + public TerminalNode CONNECTION() { return getToken(PostgreSQLParser.CONNECTION, 0); } + public TerminalNode CONNECTION_NAME() { return getToken(PostgreSQLParser.CONNECTION_NAME, 0); } + public TerminalNode CONSTRAINTS() { return getToken(PostgreSQLParser.CONSTRAINTS, 0); } + public TerminalNode CONSTRAINT_CATALOG() { return getToken(PostgreSQLParser.CONSTRAINT_CATALOG, 0); } + public TerminalNode CONSTRAINT_NAME() { return getToken(PostgreSQLParser.CONSTRAINT_NAME, 0); } + public TerminalNode CONSTRAINT_SCHEMA() { return getToken(PostgreSQLParser.CONSTRAINT_SCHEMA, 0); } + public TerminalNode CONSTRUCTOR() { return getToken(PostgreSQLParser.CONSTRUCTOR, 0); } + public TerminalNode CONTAINS() { return getToken(PostgreSQLParser.CONTAINS, 0); } + public TerminalNode CONTINUE() { return getToken(PostgreSQLParser.CONTINUE, 0); } + public TerminalNode CONVERSION() { return getToken(PostgreSQLParser.CONVERSION, 0); } + public TerminalNode CONVERT() { return getToken(PostgreSQLParser.CONVERT, 0); } + public TerminalNode COPY() { return getToken(PostgreSQLParser.COPY, 0); } + public TerminalNode CORR() { return getToken(PostgreSQLParser.CORR, 0); } + public TerminalNode CORRESPONDING() { return getToken(PostgreSQLParser.CORRESPONDING, 0); } + public TerminalNode COUNT() { return getToken(PostgreSQLParser.COUNT, 0); } + public TerminalNode COVAR_POP() { return getToken(PostgreSQLParser.COVAR_POP, 0); } + public TerminalNode COVAR_SAMP() { return getToken(PostgreSQLParser.COVAR_SAMP, 0); } + public TerminalNode CSV() { return getToken(PostgreSQLParser.CSV, 0); } + public TerminalNode CUBE() { return getToken(PostgreSQLParser.CUBE, 0); } + public TerminalNode CUME_DIST() { return getToken(PostgreSQLParser.CUME_DIST, 0); } + public TerminalNode CURRENT() { return getToken(PostgreSQLParser.CURRENT, 0); } + public TerminalNode CURRENT_DEFAULT_TRANSFORM_GROUP() { return getToken(PostgreSQLParser.CURRENT_DEFAULT_TRANSFORM_GROUP, 0); } + public TerminalNode CURRENT_PATH() { return getToken(PostgreSQLParser.CURRENT_PATH, 0); } + public TerminalNode CURRENT_TRANSFORM_GROUP_FOR_TYPE() { return getToken(PostgreSQLParser.CURRENT_TRANSFORM_GROUP_FOR_TYPE, 0); } + public TerminalNode CURSOR() { return getToken(PostgreSQLParser.CURSOR, 0); } + public TerminalNode CURSOR_NAME() { return getToken(PostgreSQLParser.CURSOR_NAME, 0); } + public TerminalNode CYCLE() { return getToken(PostgreSQLParser.CYCLE, 0); } + public TerminalNode DATA() { return getToken(PostgreSQLParser.DATA, 0); } + public TerminalNode DATABASE() { return getToken(PostgreSQLParser.DATABASE, 0); } + public TerminalNode DATE() { return getToken(PostgreSQLParser.DATE, 0); } + public TerminalNode DATETIME_INTERVAL_CODE() { return getToken(PostgreSQLParser.DATETIME_INTERVAL_CODE, 0); } + public TerminalNode DATETIME_INTERVAL_PRECISION() { return getToken(PostgreSQLParser.DATETIME_INTERVAL_PRECISION, 0); } + public TerminalNode DAY() { return getToken(PostgreSQLParser.DAY, 0); } + public TerminalNode DEALLOCATE() { return getToken(PostgreSQLParser.DEALLOCATE, 0); } + public TerminalNode DEC() { return getToken(PostgreSQLParser.DEC, 0); } + public TerminalNode DECIMAL() { return getToken(PostgreSQLParser.DECIMAL, 0); } + public TerminalNode DECLARE() { return getToken(PostgreSQLParser.DECLARE, 0); } + public TerminalNode DEFAULTS() { return getToken(PostgreSQLParser.DEFAULTS, 0); } + public TerminalNode DEFERRED() { return getToken(PostgreSQLParser.DEFERRED, 0); } + public TerminalNode DEFINED() { return getToken(PostgreSQLParser.DEFINED, 0); } + public TerminalNode DEFINER() { return getToken(PostgreSQLParser.DEFINER, 0); } + public TerminalNode DEGREE() { return getToken(PostgreSQLParser.DEGREE, 0); } + public TerminalNode DELETE() { return getToken(PostgreSQLParser.DELETE, 0); } + public TerminalNode DELIMITER() { return getToken(PostgreSQLParser.DELIMITER, 0); } + public TerminalNode DELIMITERS() { return getToken(PostgreSQLParser.DELIMITERS, 0); } + public TerminalNode DENSE_RANK() { return getToken(PostgreSQLParser.DENSE_RANK, 0); } + public TerminalNode DEPTH() { return getToken(PostgreSQLParser.DEPTH, 0); } + public TerminalNode DEREF() { return getToken(PostgreSQLParser.DEREF, 0); } + public TerminalNode DERIVED() { return getToken(PostgreSQLParser.DERIVED, 0); } + public TerminalNode DESCRIBE() { return getToken(PostgreSQLParser.DESCRIBE, 0); } + public TerminalNode DESCRIPTOR() { return getToken(PostgreSQLParser.DESCRIPTOR, 0); } + public TerminalNode DETERMINISTIC() { return getToken(PostgreSQLParser.DETERMINISTIC, 0); } + public TerminalNode DIAGNOSTICS() { return getToken(PostgreSQLParser.DIAGNOSTICS, 0); } + public TerminalNode DICTIONARY() { return getToken(PostgreSQLParser.DICTIONARY, 0); } + public TerminalNode DISCONNECT() { return getToken(PostgreSQLParser.DISCONNECT, 0); } + public TerminalNode DISPATCH() { return getToken(PostgreSQLParser.DISPATCH, 0); } + public TerminalNode DOMAIN() { return getToken(PostgreSQLParser.DOMAIN, 0); } + public TerminalNode DOUBLE() { return getToken(PostgreSQLParser.DOUBLE, 0); } + public TerminalNode DYNAMIC() { return getToken(PostgreSQLParser.DYNAMIC, 0); } + public TerminalNode DYNAMIC_FUNCTION() { return getToken(PostgreSQLParser.DYNAMIC_FUNCTION, 0); } + public TerminalNode DYNAMIC_FUNCTION_CODE() { return getToken(PostgreSQLParser.DYNAMIC_FUNCTION_CODE, 0); } + public TerminalNode EACH() { return getToken(PostgreSQLParser.EACH, 0); } + public TerminalNode ELEMENT() { return getToken(PostgreSQLParser.ELEMENT, 0); } + public TerminalNode ENCODING() { return getToken(PostgreSQLParser.ENCODING, 0); } + public TerminalNode ENCRYPTED() { return getToken(PostgreSQLParser.ENCRYPTED, 0); } + public TerminalNode END() { return getToken(PostgreSQLParser.END, 0); } + public TerminalNode EQUALS() { return getToken(PostgreSQLParser.EQUALS, 0); } + public TerminalNode ESCAPE() { return getToken(PostgreSQLParser.ESCAPE, 0); } + public TerminalNode EVERY() { return getToken(PostgreSQLParser.EVERY, 0); } + public TerminalNode EXCEPTION() { return getToken(PostgreSQLParser.EXCEPTION, 0); } + public TerminalNode EXCLUDE() { return getToken(PostgreSQLParser.EXCLUDE, 0); } + public TerminalNode EXCLUDING() { return getToken(PostgreSQLParser.EXCLUDING, 0); } + public TerminalNode EXCLUSIVE() { return getToken(PostgreSQLParser.EXCLUSIVE, 0); } + public TerminalNode EXEC() { return getToken(PostgreSQLParser.EXEC, 0); } + public TerminalNode EXECUTE() { return getToken(PostgreSQLParser.EXECUTE, 0); } + public TerminalNode EXISTS() { return getToken(PostgreSQLParser.EXISTS, 0); } + public TerminalNode EXP() { return getToken(PostgreSQLParser.EXP, 0); } + public TerminalNode EXPLAIN() { return getToken(PostgreSQLParser.EXPLAIN, 0); } + public TerminalNode EXTENSION() { return getToken(PostgreSQLParser.EXTENSION, 0); } + public TerminalNode EXTERNAL() { return getToken(PostgreSQLParser.EXTERNAL, 0); } + public TerminalNode EXTRACT() { return getToken(PostgreSQLParser.EXTRACT, 0); } + public TerminalNode FILTER() { return getToken(PostgreSQLParser.FILTER, 0); } + public TerminalNode FINAL() { return getToken(PostgreSQLParser.FINAL, 0); } + public TerminalNode FIRST() { return getToken(PostgreSQLParser.FIRST, 0); } + public TerminalNode FLOAT() { return getToken(PostgreSQLParser.FLOAT, 0); } + public TerminalNode FLOOR() { return getToken(PostgreSQLParser.FLOOR, 0); } + public TerminalNode FOLLOWING() { return getToken(PostgreSQLParser.FOLLOWING, 0); } + public TerminalNode FORCE() { return getToken(PostgreSQLParser.FORCE, 0); } + public TerminalNode FORMAT() { return getToken(PostgreSQLParser.FORMAT, 0); } + public TerminalNode FORTRAN() { return getToken(PostgreSQLParser.FORTRAN, 0); } + public TerminalNode FORWARD() { return getToken(PostgreSQLParser.FORWARD, 0); } + public TerminalNode FOUND() { return getToken(PostgreSQLParser.FOUND, 0); } + public TerminalNode FREE() { return getToken(PostgreSQLParser.FREE, 0); } + public TerminalNode FUNCTION() { return getToken(PostgreSQLParser.FUNCTION, 0); } + public TerminalNode FUSION() { return getToken(PostgreSQLParser.FUSION, 0); } + public TerminalNode G_() { return getToken(PostgreSQLParser.G_, 0); } + public TerminalNode GENERAL() { return getToken(PostgreSQLParser.GENERAL, 0); } + public TerminalNode GENERATED() { return getToken(PostgreSQLParser.GENERATED, 0); } + public TerminalNode GET() { return getToken(PostgreSQLParser.GET, 0); } + public TerminalNode GLOBAL() { return getToken(PostgreSQLParser.GLOBAL, 0); } + public TerminalNode GO() { return getToken(PostgreSQLParser.GO, 0); } + public TerminalNode GOTO() { return getToken(PostgreSQLParser.GOTO, 0); } + public TerminalNode GREATEST() { return getToken(PostgreSQLParser.GREATEST, 0); } + public TerminalNode GRANTED() { return getToken(PostgreSQLParser.GRANTED, 0); } + public TerminalNode GROUPING() { return getToken(PostgreSQLParser.GROUPING, 0); } + public TerminalNode HANDLER() { return getToken(PostgreSQLParser.HANDLER, 0); } + public TerminalNode HIERARCHY() { return getToken(PostgreSQLParser.HIERARCHY, 0); } + public TerminalNode HOLD() { return getToken(PostgreSQLParser.HOLD, 0); } + public TerminalNode HOST() { return getToken(PostgreSQLParser.HOST, 0); } + public TerminalNode HOUR() { return getToken(PostgreSQLParser.HOUR, 0); } + public TerminalNode IDENTITY() { return getToken(PostgreSQLParser.IDENTITY, 0); } + public TerminalNode IGNORE() { return getToken(PostgreSQLParser.IGNORE, 0); } + public TerminalNode IMMEDIATE() { return getToken(PostgreSQLParser.IMMEDIATE, 0); } + public TerminalNode IMMUTABLE() { return getToken(PostgreSQLParser.IMMUTABLE, 0); } + public TerminalNode IMPLEMENTATION() { return getToken(PostgreSQLParser.IMPLEMENTATION, 0); } + public TerminalNode IMPLICIT() { return getToken(PostgreSQLParser.IMPLICIT, 0); } + public TerminalNode INCLUDING() { return getToken(PostgreSQLParser.INCLUDING, 0); } + public TerminalNode INCREMENT() { return getToken(PostgreSQLParser.INCREMENT, 0); } + public TerminalNode INDEX() { return getToken(PostgreSQLParser.INDEX, 0); } + public TerminalNode INDICATOR() { return getToken(PostgreSQLParser.INDICATOR, 0); } + public TerminalNode INHERITS() { return getToken(PostgreSQLParser.INHERITS, 0); } + public TerminalNode INOUT() { return getToken(PostgreSQLParser.INOUT, 0); } + public TerminalNode INPUT() { return getToken(PostgreSQLParser.INPUT, 0); } + public TerminalNode INSENSITIVE() { return getToken(PostgreSQLParser.INSENSITIVE, 0); } + public TerminalNode INSERT() { return getToken(PostgreSQLParser.INSERT, 0); } + public TerminalNode INSTANCE() { return getToken(PostgreSQLParser.INSTANCE, 0); } + public TerminalNode INSTANTIABLE() { return getToken(PostgreSQLParser.INSTANTIABLE, 0); } + public TerminalNode INSTEAD() { return getToken(PostgreSQLParser.INSTEAD, 0); } + public TerminalNode INT() { return getToken(PostgreSQLParser.INT, 0); } + public TerminalNode INTEGER() { return getToken(PostgreSQLParser.INTEGER, 0); } + public TerminalNode INTERSECTION() { return getToken(PostgreSQLParser.INTERSECTION, 0); } + public TerminalNode INTERVAL() { return getToken(PostgreSQLParser.INTERVAL, 0); } + public TerminalNode INVOKER() { return getToken(PostgreSQLParser.INVOKER, 0); } + public TerminalNode ISOLATION() { return getToken(PostgreSQLParser.ISOLATION, 0); } + public TerminalNode K_() { return getToken(PostgreSQLParser.K_, 0); } + public TerminalNode KEY() { return getToken(PostgreSQLParser.KEY, 0); } + public TerminalNode KEY_MEMBER() { return getToken(PostgreSQLParser.KEY_MEMBER, 0); } + public TerminalNode KEY_TYPE() { return getToken(PostgreSQLParser.KEY_TYPE, 0); } + public TerminalNode LANGUAGE() { return getToken(PostgreSQLParser.LANGUAGE, 0); } + public TerminalNode LARGE() { return getToken(PostgreSQLParser.LARGE, 0); } + public TerminalNode LAST() { return getToken(PostgreSQLParser.LAST, 0); } + public TerminalNode LEAST() { return getToken(PostgreSQLParser.LEAST, 0); } + public TerminalNode LEFT() { return getToken(PostgreSQLParser.LEFT, 0); } + public TerminalNode LENGTH() { return getToken(PostgreSQLParser.LENGTH, 0); } + public TerminalNode LEVEL() { return getToken(PostgreSQLParser.LEVEL, 0); } + public TerminalNode LISTEN() { return getToken(PostgreSQLParser.LISTEN, 0); } + public TerminalNode LN() { return getToken(PostgreSQLParser.LN, 0); } + public TerminalNode LOAD() { return getToken(PostgreSQLParser.LOAD, 0); } + public TerminalNode LOCAL() { return getToken(PostgreSQLParser.LOCAL, 0); } + public TerminalNode LOCATION() { return getToken(PostgreSQLParser.LOCATION, 0); } + public TerminalNode LOCATOR() { return getToken(PostgreSQLParser.LOCATOR, 0); } + public TerminalNode LOCK() { return getToken(PostgreSQLParser.LOCK, 0); } + public TerminalNode LOCKED() { return getToken(PostgreSQLParser.LOCKED, 0); } + public TerminalNode LOWER() { return getToken(PostgreSQLParser.LOWER, 0); } + public TerminalNode M_() { return getToken(PostgreSQLParser.M_, 0); } + public TerminalNode MAP() { return getToken(PostgreSQLParser.MAP, 0); } + public TerminalNode MATCH() { return getToken(PostgreSQLParser.MATCH, 0); } + public TerminalNode MATCHED() { return getToken(PostgreSQLParser.MATCHED, 0); } + public TerminalNode MAX() { return getToken(PostgreSQLParser.MAX, 0); } + public TerminalNode MAXVALUE() { return getToken(PostgreSQLParser.MAXVALUE, 0); } + public TerminalNode MEMBER() { return getToken(PostgreSQLParser.MEMBER, 0); } + public TerminalNode MERGE() { return getToken(PostgreSQLParser.MERGE, 0); } + public TerminalNode MESSAGE_LENGTH() { return getToken(PostgreSQLParser.MESSAGE_LENGTH, 0); } + public TerminalNode MESSAGE_OCTET_LENGTH() { return getToken(PostgreSQLParser.MESSAGE_OCTET_LENGTH, 0); } + public TerminalNode MESSAGE_TEXT() { return getToken(PostgreSQLParser.MESSAGE_TEXT, 0); } + public TerminalNode METHOD() { return getToken(PostgreSQLParser.METHOD, 0); } + public TerminalNode MIN() { return getToken(PostgreSQLParser.MIN, 0); } + public TerminalNode MINUTE() { return getToken(PostgreSQLParser.MINUTE, 0); } + public TerminalNode MINVALUE() { return getToken(PostgreSQLParser.MINVALUE, 0); } + public TerminalNode MOD() { return getToken(PostgreSQLParser.MOD, 0); } + public TerminalNode MODE() { return getToken(PostgreSQLParser.MODE, 0); } + public TerminalNode MODIFIES() { return getToken(PostgreSQLParser.MODIFIES, 0); } + public TerminalNode MODULE() { return getToken(PostgreSQLParser.MODULE, 0); } + public TerminalNode MONTH() { return getToken(PostgreSQLParser.MONTH, 0); } + public TerminalNode MORE_() { return getToken(PostgreSQLParser.MORE_, 0); } + public TerminalNode MOVE() { return getToken(PostgreSQLParser.MOVE, 0); } + public TerminalNode MULTISET() { return getToken(PostgreSQLParser.MULTISET, 0); } + public TerminalNode MUMPS() { return getToken(PostgreSQLParser.MUMPS, 0); } + public TerminalNode NAME() { return getToken(PostgreSQLParser.NAME, 0); } + public TerminalNode NAMES() { return getToken(PostgreSQLParser.NAMES, 0); } + public TerminalNode NATIONAL() { return getToken(PostgreSQLParser.NATIONAL, 0); } + public TerminalNode NCHAR() { return getToken(PostgreSQLParser.NCHAR, 0); } + public TerminalNode NCLOB() { return getToken(PostgreSQLParser.NCLOB, 0); } + public TerminalNode NESTING() { return getToken(PostgreSQLParser.NESTING, 0); } + public TerminalNode NEW() { return getToken(PostgreSQLParser.NEW, 0); } + public TerminalNode NEXT() { return getToken(PostgreSQLParser.NEXT, 0); } + public TerminalNode NO() { return getToken(PostgreSQLParser.NO, 0); } + public TerminalNode NONE() { return getToken(PostgreSQLParser.NONE, 0); } + public TerminalNode NORMALIZE() { return getToken(PostgreSQLParser.NORMALIZE, 0); } + public TerminalNode NORMALIZED() { return getToken(PostgreSQLParser.NORMALIZED, 0); } + public TerminalNode NOTHING() { return getToken(PostgreSQLParser.NOTHING, 0); } + public TerminalNode NOTIFY() { return getToken(PostgreSQLParser.NOTIFY, 0); } + public TerminalNode NOWAIT() { return getToken(PostgreSQLParser.NOWAIT, 0); } + public TerminalNode NULLABLE() { return getToken(PostgreSQLParser.NULLABLE, 0); } + public TerminalNode NULLIF() { return getToken(PostgreSQLParser.NULLIF, 0); } + public TerminalNode NULLS() { return getToken(PostgreSQLParser.NULLS, 0); } + public TerminalNode NUMBER() { return getToken(PostgreSQLParser.NUMBER, 0); } + public TerminalNode NUMERIC() { return getToken(PostgreSQLParser.NUMERIC, 0); } + public TerminalNode OBJECT() { return getToken(PostgreSQLParser.OBJECT, 0); } + public TerminalNode OCTETS() { return getToken(PostgreSQLParser.OCTETS, 0); } + public TerminalNode OCTET_LENGTH() { return getToken(PostgreSQLParser.OCTET_LENGTH, 0); } + public TerminalNode OF() { return getToken(PostgreSQLParser.OF, 0); } + public TerminalNode OFF() { return getToken(PostgreSQLParser.OFF, 0); } + public TerminalNode OIDS() { return getToken(PostgreSQLParser.OIDS, 0); } + public TerminalNode OLD() { return getToken(PostgreSQLParser.OLD, 0); } + public TerminalNode OPEN() { return getToken(PostgreSQLParser.OPEN, 0); } + public TerminalNode OPERATOR() { return getToken(PostgreSQLParser.OPERATOR, 0); } + public TerminalNode OPTION() { return getToken(PostgreSQLParser.OPTION, 0); } + public TerminalNode OPTIONS() { return getToken(PostgreSQLParser.OPTIONS, 0); } + public TerminalNode ORDERING() { return getToken(PostgreSQLParser.ORDERING, 0); } + public TerminalNode ORDINALITY() { return getToken(PostgreSQLParser.ORDINALITY, 0); } + public TerminalNode OTHERS() { return getToken(PostgreSQLParser.OTHERS, 0); } + public TerminalNode OUT() { return getToken(PostgreSQLParser.OUT, 0); } + public TerminalNode OUTPUT() { return getToken(PostgreSQLParser.OUTPUT, 0); } + public TerminalNode OVER() { return getToken(PostgreSQLParser.OVER, 0); } + public TerminalNode OVERLAY() { return getToken(PostgreSQLParser.OVERLAY, 0); } + public TerminalNode OVERRIDING() { return getToken(PostgreSQLParser.OVERRIDING, 0); } + public TerminalNode OWNER() { return getToken(PostgreSQLParser.OWNER, 0); } + public TerminalNode PAD() { return getToken(PostgreSQLParser.PAD, 0); } + public TerminalNode PARAMETER() { return getToken(PostgreSQLParser.PARAMETER, 0); } + public TerminalNode PARAMETER_MODE() { return getToken(PostgreSQLParser.PARAMETER_MODE, 0); } + public TerminalNode PARAMETER_NAME() { return getToken(PostgreSQLParser.PARAMETER_NAME, 0); } + public TerminalNode PARAMETER_ORDINAL_POSITION() { return getToken(PostgreSQLParser.PARAMETER_ORDINAL_POSITION, 0); } + public TerminalNode PARAMETER_SPECIFIC_CATALOG() { return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_CATALOG, 0); } + public TerminalNode PARAMETER_SPECIFIC_NAME() { return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_NAME, 0); } + public TerminalNode PARAMETER_SPECIFIC_SCHEMA() { return getToken(PostgreSQLParser.PARAMETER_SPECIFIC_SCHEMA, 0); } + public TerminalNode PARTIAL() { return getToken(PostgreSQLParser.PARTIAL, 0); } + public TerminalNode PARTITION() { return getToken(PostgreSQLParser.PARTITION, 0); } + public TerminalNode PASCAL() { return getToken(PostgreSQLParser.PASCAL, 0); } + public TerminalNode PASSWORD() { return getToken(PostgreSQLParser.PASSWORD, 0); } + public TerminalNode PATH() { return getToken(PostgreSQLParser.PATH, 0); } + public TerminalNode PERCENTILE_CONT() { return getToken(PostgreSQLParser.PERCENTILE_CONT, 0); } + public TerminalNode PERCENTILE_DISC() { return getToken(PostgreSQLParser.PERCENTILE_DISC, 0); } + public TerminalNode PERCENT_RANK() { return getToken(PostgreSQLParser.PERCENT_RANK, 0); } + public TerminalNode PLAIN() { return getToken(PostgreSQLParser.PLAIN, 0); } + public TerminalNode PLI() { return getToken(PostgreSQLParser.PLI, 0); } + public TerminalNode POSITION() { return getToken(PostgreSQLParser.POSITION, 0); } + public TerminalNode POWER() { return getToken(PostgreSQLParser.POWER, 0); } + public TerminalNode PRECEDING() { return getToken(PostgreSQLParser.PRECEDING, 0); } + public TerminalNode PRECISION() { return getToken(PostgreSQLParser.PRECISION, 0); } + public TerminalNode PREPARE() { return getToken(PostgreSQLParser.PREPARE, 0); } + public TerminalNode PRESERVE() { return getToken(PostgreSQLParser.PRESERVE, 0); } + public TerminalNode PRIOR() { return getToken(PostgreSQLParser.PRIOR, 0); } + public TerminalNode PRIVILEGES() { return getToken(PostgreSQLParser.PRIVILEGES, 0); } + public TerminalNode PROCEDURAL() { return getToken(PostgreSQLParser.PROCEDURAL, 0); } + public TerminalNode PROCEDURE() { return getToken(PostgreSQLParser.PROCEDURE, 0); } + public TerminalNode PUBLIC() { return getToken(PostgreSQLParser.PUBLIC, 0); } + public TerminalNode QUOTE() { return getToken(PostgreSQLParser.QUOTE, 0); } + public TerminalNode RANGE() { return getToken(PostgreSQLParser.RANGE, 0); } + public TerminalNode RANK() { return getToken(PostgreSQLParser.RANK, 0); } + public TerminalNode READ() { return getToken(PostgreSQLParser.READ, 0); } + public TerminalNode READS() { return getToken(PostgreSQLParser.READS, 0); } + public TerminalNode REAL() { return getToken(PostgreSQLParser.REAL, 0); } + public TerminalNode RECHECK() { return getToken(PostgreSQLParser.RECHECK, 0); } + public TerminalNode RECURSIVE() { return getToken(PostgreSQLParser.RECURSIVE, 0); } + public TerminalNode REF() { return getToken(PostgreSQLParser.REF, 0); } + public TerminalNode REFERENCING() { return getToken(PostgreSQLParser.REFERENCING, 0); } + public TerminalNode REFRESH() { return getToken(PostgreSQLParser.REFRESH, 0); } + public TerminalNode REGR_AVGX() { return getToken(PostgreSQLParser.REGR_AVGX, 0); } + public TerminalNode REGR_AVGY() { return getToken(PostgreSQLParser.REGR_AVGY, 0); } + public TerminalNode REGR_COUNT() { return getToken(PostgreSQLParser.REGR_COUNT, 0); } + public TerminalNode REGR_INTERCEPT() { return getToken(PostgreSQLParser.REGR_INTERCEPT, 0); } + public TerminalNode REGR_SLOPE() { return getToken(PostgreSQLParser.REGR_SLOPE, 0); } + public TerminalNode REGR_SXX() { return getToken(PostgreSQLParser.REGR_SXX, 0); } + public TerminalNode REGR_SXY() { return getToken(PostgreSQLParser.REGR_SXY, 0); } + public TerminalNode REGR_SYY() { return getToken(PostgreSQLParser.REGR_SYY, 0); } + public TerminalNode REINDEX() { return getToken(PostgreSQLParser.REINDEX, 0); } + public TerminalNode RELATIVE() { return getToken(PostgreSQLParser.RELATIVE, 0); } + public TerminalNode RELEASE() { return getToken(PostgreSQLParser.RELEASE, 0); } + public TerminalNode RENAME() { return getToken(PostgreSQLParser.RENAME, 0); } + public TerminalNode REPEATABLE() { return getToken(PostgreSQLParser.REPEATABLE, 0); } + public TerminalNode REPLACE() { return getToken(PostgreSQLParser.REPLACE, 0); } + public TerminalNode RESET() { return getToken(PostgreSQLParser.RESET, 0); } + public TerminalNode RESTART() { return getToken(PostgreSQLParser.RESTART, 0); } + public TerminalNode RESTRICT() { return getToken(PostgreSQLParser.RESTRICT, 0); } + public TerminalNode RESULT() { return getToken(PostgreSQLParser.RESULT, 0); } + public TerminalNode RETURN() { return getToken(PostgreSQLParser.RETURN, 0); } + public TerminalNode RETURNED_CARDINALITY() { return getToken(PostgreSQLParser.RETURNED_CARDINALITY, 0); } + public TerminalNode RETURNED_LENGTH() { return getToken(PostgreSQLParser.RETURNED_LENGTH, 0); } + public TerminalNode RETURNED_OCTET_LENGTH() { return getToken(PostgreSQLParser.RETURNED_OCTET_LENGTH, 0); } + public TerminalNode RETURNED_SQLSTATE() { return getToken(PostgreSQLParser.RETURNED_SQLSTATE, 0); } + public TerminalNode RETURNS() { return getToken(PostgreSQLParser.RETURNS, 0); } + public TerminalNode REVOKE() { return getToken(PostgreSQLParser.REVOKE, 0); } + public TerminalNode RIGHT() { return getToken(PostgreSQLParser.RIGHT, 0); } + public TerminalNode ROLE() { return getToken(PostgreSQLParser.ROLE, 0); } + public TerminalNode ROLLBACK() { return getToken(PostgreSQLParser.ROLLBACK, 0); } + public TerminalNode ROLLUP() { return getToken(PostgreSQLParser.ROLLUP, 0); } + public TerminalNode ROUTINE() { return getToken(PostgreSQLParser.ROUTINE, 0); } + public TerminalNode ROUTINE_CATALOG() { return getToken(PostgreSQLParser.ROUTINE_CATALOG, 0); } + public TerminalNode ROUTINE_NAME() { return getToken(PostgreSQLParser.ROUTINE_NAME, 0); } + public TerminalNode ROUTINE_SCHEMA() { return getToken(PostgreSQLParser.ROUTINE_SCHEMA, 0); } + public TerminalNode ROW() { return getToken(PostgreSQLParser.ROW, 0); } + public TerminalNode ROWS() { return getToken(PostgreSQLParser.ROWS, 0); } + public TerminalNode ROW_COUNT() { return getToken(PostgreSQLParser.ROW_COUNT, 0); } + public TerminalNode ROW_NUMBER() { return getToken(PostgreSQLParser.ROW_NUMBER, 0); } + public TerminalNode RULE() { return getToken(PostgreSQLParser.RULE, 0); } + public TerminalNode SAVEPOINT() { return getToken(PostgreSQLParser.SAVEPOINT, 0); } + public TerminalNode SCALE() { return getToken(PostgreSQLParser.SCALE, 0); } + public TerminalNode SCHEMA() { return getToken(PostgreSQLParser.SCHEMA, 0); } + public TerminalNode SCHEMA_NAME() { return getToken(PostgreSQLParser.SCHEMA_NAME, 0); } + public TerminalNode SCOPE() { return getToken(PostgreSQLParser.SCOPE, 0); } + public TerminalNode SCOPE_CATALOG() { return getToken(PostgreSQLParser.SCOPE_CATALOG, 0); } + public TerminalNode SCOPE_NAME() { return getToken(PostgreSQLParser.SCOPE_NAME, 0); } + public TerminalNode SCOPE_SCHEMA() { return getToken(PostgreSQLParser.SCOPE_SCHEMA, 0); } + public TerminalNode SCROLL() { return getToken(PostgreSQLParser.SCROLL, 0); } + public TerminalNode SEARCH() { return getToken(PostgreSQLParser.SEARCH, 0); } + public TerminalNode SECOND() { return getToken(PostgreSQLParser.SECOND, 0); } + public TerminalNode SECTION() { return getToken(PostgreSQLParser.SECTION, 0); } + public TerminalNode SECURITY() { return getToken(PostgreSQLParser.SECURITY, 0); } + public TerminalNode SELF() { return getToken(PostgreSQLParser.SELF, 0); } + public TerminalNode SENSITIVE() { return getToken(PostgreSQLParser.SENSITIVE, 0); } + public TerminalNode SEQUENCE() { return getToken(PostgreSQLParser.SEQUENCE, 0); } + public TerminalNode SEQUENCES() { return getToken(PostgreSQLParser.SEQUENCES, 0); } + public TerminalNode SERIALIZABLE() { return getToken(PostgreSQLParser.SERIALIZABLE, 0); } + public TerminalNode SERVER_NAME() { return getToken(PostgreSQLParser.SERVER_NAME, 0); } + public TerminalNode SESSION() { return getToken(PostgreSQLParser.SESSION, 0); } + public TerminalNode SET() { return getToken(PostgreSQLParser.SET, 0); } + public TerminalNode SETOF() { return getToken(PostgreSQLParser.SETOF, 0); } + public TerminalNode SETS() { return getToken(PostgreSQLParser.SETS, 0); } + public TerminalNode SHARE() { return getToken(PostgreSQLParser.SHARE, 0); } + public TerminalNode SHOW() { return getToken(PostgreSQLParser.SHOW, 0); } + public TerminalNode SIMPLE() { return getToken(PostgreSQLParser.SIMPLE, 0); } + public TerminalNode SIZE() { return getToken(PostgreSQLParser.SIZE, 0); } + public TerminalNode SMALLINT() { return getToken(PostgreSQLParser.SMALLINT, 0); } + public TerminalNode SOME() { return getToken(PostgreSQLParser.SOME, 0); } + public TerminalNode SOURCE() { return getToken(PostgreSQLParser.SOURCE, 0); } + public TerminalNode SPACE() { return getToken(PostgreSQLParser.SPACE, 0); } + public TerminalNode SPECIFIC() { return getToken(PostgreSQLParser.SPECIFIC, 0); } + public TerminalNode SPECIFICTYPE() { return getToken(PostgreSQLParser.SPECIFICTYPE, 0); } + public TerminalNode SPECIFIC_NAME() { return getToken(PostgreSQLParser.SPECIFIC_NAME, 0); } + public TerminalNode SQL() { return getToken(PostgreSQLParser.SQL, 0); } + public TerminalNode SQLCODE() { return getToken(PostgreSQLParser.SQLCODE, 0); } + public TerminalNode SQLERROR() { return getToken(PostgreSQLParser.SQLERROR, 0); } + public TerminalNode SQLEXCEPTION() { return getToken(PostgreSQLParser.SQLEXCEPTION, 0); } + public TerminalNode SQLSTATE() { return getToken(PostgreSQLParser.SQLSTATE, 0); } + public TerminalNode SQLWARNING() { return getToken(PostgreSQLParser.SQLWARNING, 0); } + public TerminalNode SQRT() { return getToken(PostgreSQLParser.SQRT, 0); } + public TerminalNode STABLE() { return getToken(PostgreSQLParser.STABLE, 0); } + public TerminalNode START() { return getToken(PostgreSQLParser.START, 0); } + public TerminalNode STATE() { return getToken(PostgreSQLParser.STATE, 0); } + public TerminalNode STATEMENT() { return getToken(PostgreSQLParser.STATEMENT, 0); } + public TerminalNode STATIC() { return getToken(PostgreSQLParser.STATIC, 0); } + public TerminalNode STATISTICS() { return getToken(PostgreSQLParser.STATISTICS, 0); } + public TerminalNode STDDEV_POP() { return getToken(PostgreSQLParser.STDDEV_POP, 0); } + public TerminalNode STDDEV_SAMP() { return getToken(PostgreSQLParser.STDDEV_SAMP, 0); } + public TerminalNode STDIN() { return getToken(PostgreSQLParser.STDIN, 0); } + public TerminalNode STDOUT() { return getToken(PostgreSQLParser.STDOUT, 0); } + public TerminalNode STORAGE() { return getToken(PostgreSQLParser.STORAGE, 0); } + public TerminalNode STRICT() { return getToken(PostgreSQLParser.STRICT, 0); } + public TerminalNode STRUCTURE() { return getToken(PostgreSQLParser.STRUCTURE, 0); } + public TerminalNode STYLE() { return getToken(PostgreSQLParser.STYLE, 0); } + public TerminalNode SUBCLASS_ORIGIN() { return getToken(PostgreSQLParser.SUBCLASS_ORIGIN, 0); } + public TerminalNode SUBMULTISET() { return getToken(PostgreSQLParser.SUBMULTISET, 0); } + public TerminalNode SUBSTRING() { return getToken(PostgreSQLParser.SUBSTRING, 0); } + public TerminalNode SUM() { return getToken(PostgreSQLParser.SUM, 0); } + public TerminalNode SYSID() { return getToken(PostgreSQLParser.SYSID, 0); } + public TerminalNode SYSTEM() { return getToken(PostgreSQLParser.SYSTEM, 0); } + public TerminalNode SYSTEM_USER() { return getToken(PostgreSQLParser.SYSTEM_USER, 0); } + public TerminalNode TABLESPACE() { return getToken(PostgreSQLParser.TABLESPACE, 0); } + public TerminalNode TABLE_NAME() { return getToken(PostgreSQLParser.TABLE_NAME, 0); } + public TerminalNode TEMP() { return getToken(PostgreSQLParser.TEMP, 0); } + public TerminalNode TEMPLATE() { return getToken(PostgreSQLParser.TEMPLATE, 0); } + public TerminalNode TEMPORARY() { return getToken(PostgreSQLParser.TEMPORARY, 0); } + public TerminalNode TEXT() { return getToken(PostgreSQLParser.TEXT, 0); } + public TerminalNode TIES() { return getToken(PostgreSQLParser.TIES, 0); } + public TerminalNode TIME() { return getToken(PostgreSQLParser.TIME, 0); } + public TerminalNode TIMESTAMP() { return getToken(PostgreSQLParser.TIMESTAMP, 0); } + public TerminalNode TIMEZONE_HOUR() { return getToken(PostgreSQLParser.TIMEZONE_HOUR, 0); } + public TerminalNode TIMEZONE_MINUTE() { return getToken(PostgreSQLParser.TIMEZONE_MINUTE, 0); } + public TerminalNode TOP_LEVEL_COUNT() { return getToken(PostgreSQLParser.TOP_LEVEL_COUNT, 0); } + public TerminalNode TRANSACTION() { return getToken(PostgreSQLParser.TRANSACTION, 0); } + public TerminalNode TRANSACTIONS_COMMITTED() { return getToken(PostgreSQLParser.TRANSACTIONS_COMMITTED, 0); } + public TerminalNode TRANSACTIONS_ROLLED_BACK() { return getToken(PostgreSQLParser.TRANSACTIONS_ROLLED_BACK, 0); } + public TerminalNode TRANSACTION_ACTIVE() { return getToken(PostgreSQLParser.TRANSACTION_ACTIVE, 0); } + public TerminalNode TRANSFORM() { return getToken(PostgreSQLParser.TRANSFORM, 0); } + public TerminalNode TRANSFORMS() { return getToken(PostgreSQLParser.TRANSFORMS, 0); } + public TerminalNode TRANSLATE() { return getToken(PostgreSQLParser.TRANSLATE, 0); } + public TerminalNode TRANSLATION() { return getToken(PostgreSQLParser.TRANSLATION, 0); } + public TerminalNode TREAT() { return getToken(PostgreSQLParser.TREAT, 0); } + public TerminalNode TRIGGER() { return getToken(PostgreSQLParser.TRIGGER, 0); } + public TerminalNode TRIGGER_CATALOG() { return getToken(PostgreSQLParser.TRIGGER_CATALOG, 0); } + public TerminalNode TRIGGER_NAME() { return getToken(PostgreSQLParser.TRIGGER_NAME, 0); } + public TerminalNode TRIGGER_SCHEMA() { return getToken(PostgreSQLParser.TRIGGER_SCHEMA, 0); } + public TerminalNode TRIM() { return getToken(PostgreSQLParser.TRIM, 0); } + public TerminalNode TRUE() { return getToken(PostgreSQLParser.TRUE, 0); } + public TerminalNode TRUNCATE() { return getToken(PostgreSQLParser.TRUNCATE, 0); } + public TerminalNode TRUSTED() { return getToken(PostgreSQLParser.TRUSTED, 0); } + public TerminalNode TYPE() { return getToken(PostgreSQLParser.TYPE, 0); } + public TerminalNode UESCAPE() { return getToken(PostgreSQLParser.UESCAPE, 0); } + public TerminalNode UNBOUNDED() { return getToken(PostgreSQLParser.UNBOUNDED, 0); } + public TerminalNode UNCOMMITTED() { return getToken(PostgreSQLParser.UNCOMMITTED, 0); } + public TerminalNode UNDER() { return getToken(PostgreSQLParser.UNDER, 0); } + public TerminalNode UNENCRYPTED() { return getToken(PostgreSQLParser.UNENCRYPTED, 0); } + public TerminalNode UNKNOWN() { return getToken(PostgreSQLParser.UNKNOWN, 0); } + public TerminalNode UNLISTEN() { return getToken(PostgreSQLParser.UNLISTEN, 0); } + public TerminalNode UNNAMED() { return getToken(PostgreSQLParser.UNNAMED, 0); } + public TerminalNode UNNEST() { return getToken(PostgreSQLParser.UNNEST, 0); } + public TerminalNode UNTIL() { return getToken(PostgreSQLParser.UNTIL, 0); } + public TerminalNode UPDATE() { return getToken(PostgreSQLParser.UPDATE, 0); } + public TerminalNode UPPER() { return getToken(PostgreSQLParser.UPPER, 0); } + public TerminalNode USAGE() { return getToken(PostgreSQLParser.USAGE, 0); } + public TerminalNode USER_DEFINED_TYPE_CATALOG() { return getToken(PostgreSQLParser.USER_DEFINED_TYPE_CATALOG, 0); } + public TerminalNode USER_DEFINED_TYPE_CODE() { return getToken(PostgreSQLParser.USER_DEFINED_TYPE_CODE, 0); } + public TerminalNode USER_DEFINED_TYPE_NAME() { return getToken(PostgreSQLParser.USER_DEFINED_TYPE_NAME, 0); } + public TerminalNode USER_DEFINED_TYPE_SCHEMA() { return getToken(PostgreSQLParser.USER_DEFINED_TYPE_SCHEMA, 0); } + public TerminalNode VACUUM() { return getToken(PostgreSQLParser.VACUUM, 0); } + public TerminalNode VALID() { return getToken(PostgreSQLParser.VALID, 0); } + public TerminalNode VALIDATOR() { return getToken(PostgreSQLParser.VALIDATOR, 0); } + public TerminalNode VALUE() { return getToken(PostgreSQLParser.VALUE, 0); } + public TerminalNode VALUES() { return getToken(PostgreSQLParser.VALUES, 0); } + public TerminalNode VARCHAR() { return getToken(PostgreSQLParser.VARCHAR, 0); } + public TerminalNode VARYING() { return getToken(PostgreSQLParser.VARYING, 0); } + public TerminalNode VAR_POP() { return getToken(PostgreSQLParser.VAR_POP, 0); } + public TerminalNode VAR_SAMP() { return getToken(PostgreSQLParser.VAR_SAMP, 0); } + public TerminalNode VIEW() { return getToken(PostgreSQLParser.VIEW, 0); } + public TerminalNode VOLATILE() { return getToken(PostgreSQLParser.VOLATILE, 0); } + public TerminalNode WHENEVER() { return getToken(PostgreSQLParser.WHENEVER, 0); } + public TerminalNode WHITESPACE() { return getToken(PostgreSQLParser.WHITESPACE, 0); } + public TerminalNode WIDTH_BUCKET() { return getToken(PostgreSQLParser.WIDTH_BUCKET, 0); } + public TerminalNode WITHIN() { return getToken(PostgreSQLParser.WITHIN, 0); } + public TerminalNode WITHOUT() { return getToken(PostgreSQLParser.WITHOUT, 0); } + public TerminalNode WORK() { return getToken(PostgreSQLParser.WORK, 0); } + public TerminalNode WRITE() { return getToken(PostgreSQLParser.WRITE, 0); } + public TerminalNode YEAR() { return getToken(PostgreSQLParser.YEAR, 0); } + public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } + public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } + public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_non_reserved_keyword; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterNon_reserved_keyword(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitNon_reserved_keyword(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitNon_reserved_keyword(this); + else return visitor.visitChildren(this); + } + } + + public final Non_reserved_keywordContext non_reserved_keyword() throws RecognitionException { + Non_reserved_keywordContext _localctx = new Non_reserved_keywordContext(_ctx, getState()); + enterRule(_localctx, 510, RULE_non_reserved_keyword); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(5598); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || _la==TEXT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdentifierContext extends ParserRuleContext { + public Non_reserved_keywordContext non_reserved_keyword() { + return getRuleContext(Non_reserved_keywordContext.class,0); + } + public TerminalNode DOUBLEQ_STRING_LITERAL() { return getToken(PostgreSQLParser.DOUBLEQ_STRING_LITERAL, 0); } + public TerminalNode IDENTIFIER() { return getToken(PostgreSQLParser.IDENTIFIER, 0); } + public Type_nameContext type_name() { + return getRuleContext(Type_nameContext.class,0); + } + public TerminalNode IDENTIFIER_UNICODE() { return getToken(PostgreSQLParser.IDENTIFIER_UNICODE, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode DOT() { return getToken(PostgreSQLParser.DOT, 0); } + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitIdentifier(this); + else return visitor.visitChildren(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + return identifier(0); + } + + private IdentifierContext identifier(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + IdentifierContext _localctx = new IdentifierContext(_ctx, _parentState); + IdentifierContext _prevctx = _localctx; + int _startState = 512; + enterRecursionRule(_localctx, 512, RULE_identifier, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(5606); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,689,_ctx) ) { + case 1: + { + setState(5601); + non_reserved_keyword(); + } + break; + case 2: + { + setState(5602); + match(DOUBLEQ_STRING_LITERAL); + } + break; + case 3: + { + setState(5603); + match(IDENTIFIER); + } + break; + case 4: + { + setState(5604); + type_name(); + } + break; + case 5: + { + setState(5605); + match(IDENTIFIER_UNICODE); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(5613); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,690,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new IdentifierContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_identifier); + setState(5608); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(5609); + match(DOT); + setState(5610); + identifier(4); + } + } + } + setState(5615); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,690,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class Todo_fill_inContext extends ParserRuleContext { + public Todo_fill_inContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_todo_fill_in; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTodo_fill_in(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTodo_fill_in(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTodo_fill_in(this); + else return visitor.visitChildren(this); + } + } + + public final Todo_fill_inContext todo_fill_in() throws RecognitionException { + Todo_fill_inContext _localctx = new Todo_fill_inContext(_ctx, getState()); + enterRule(_localctx, 514, RULE_todo_fill_in); + try { + enterOuterAlt(_localctx, 1); + { + setState(5616); + matchWildcard(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Todo_implementContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Todo_implementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_todo_implement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterTodo_implement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitTodo_implement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitTodo_implement(this); + else return visitor.visitChildren(this); + } + } + + public final Todo_implementContext todo_implement() throws RecognitionException { + Todo_implementContext _localctx = new Todo_implementContext(_ctx, getState()); + enterRule(_localctx, 516, RULE_todo_implement); + try { + enterOuterAlt(_localctx, 1); + { + setState(5618); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Correlation_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Correlation_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_correlation_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterCorrelation_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitCorrelation_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitCorrelation_name(this); + else return visitor.visitChildren(this); + } + } + + public final Correlation_nameContext correlation_name() throws RecognitionException { + Correlation_nameContext _localctx = new Correlation_nameContext(_ctx, getState()); + enterRule(_localctx, 518, RULE_correlation_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5620); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Column_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Column_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_column_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterColumn_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitColumn_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitColumn_name(this); + else return visitor.visitChildren(this); + } + } + + public final Column_nameContext column_name() throws RecognitionException { + Column_nameContext _localctx = new Column_nameContext(_ctx, getState()); + enterRule(_localctx, 520, RULE_column_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5622); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AliasContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public AliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_alias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitAlias(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitAlias(this); + else return visitor.visitChildren(this); + } + } + + public final AliasContext alias() throws RecognitionException { + AliasContext _localctx = new AliasContext(_ctx, getState()); + enterRule(_localctx, 522, RULE_alias); + try { + enterOuterAlt(_localctx, 1); + { + setState(5624); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Column_aliasContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Column_aliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_column_alias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterColumn_alias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitColumn_alias(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitColumn_alias(this); + else return visitor.visitChildren(this); + } + } + + public final Column_aliasContext column_alias() throws RecognitionException { + Column_aliasContext _localctx = new Column_aliasContext(_ctx, getState()); + enterRule(_localctx, 524, RULE_column_alias); + try { + enterOuterAlt(_localctx, 1); + { + setState(5626); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Column_definitionContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Column_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_column_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterColumn_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitColumn_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitColumn_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Column_definitionContext column_definition() throws RecognitionException { + Column_definitionContext _localctx = new Column_definitionContext(_ctx, getState()); + enterRule(_localctx, 526, RULE_column_definition); + try { + enterOuterAlt(_localctx, 1); + { + setState(5628); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Window_nameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Window_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_window_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).enterWindow_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof PostgreSQLParserListener ) ((PostgreSQLParserListener)listener).exitWindow_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof PostgreSQLParserVisitor ) return ((PostgreSQLParserVisitor)visitor).visitWindow_name(this); + else return visitor.visitChildren(this); + } + } + + public final Window_nameContext window_name() throws RecognitionException { + Window_nameContext _localctx = new Window_nameContext(_ctx, getState()); + enterRule(_localctx, 528, RULE_window_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(5630); + identifier(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 216: + return expr_sempred((ExprContext)_localctx, predIndex); + case 217: + return bool_expr_sempred((Bool_exprContext)_localctx, predIndex); + case 241: + return from_item_sempred((From_itemContext)_localctx, predIndex); + case 245: + return predicate_sempred((PredicateContext)_localctx, predIndex); + case 256: + return identifier_sempred((IdentifierContext)_localctx, predIndex); + } + return true; + } + private boolean expr_sempred(ExprContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 27); + case 1: + return precpred(_ctx, 26); + case 2: + return precpred(_ctx, 25); + case 3: + return precpred(_ctx, 24); + case 4: + return precpred(_ctx, 23); + case 5: + return precpred(_ctx, 22); + case 6: + return precpred(_ctx, 21); + case 7: + return precpred(_ctx, 20); + case 8: + return precpred(_ctx, 18); + case 9: + return precpred(_ctx, 33); + case 10: + return precpred(_ctx, 28); + case 11: + return precpred(_ctx, 19); + case 12: + return precpred(_ctx, 11); + case 13: + return precpred(_ctx, 10); + case 14: + return precpred(_ctx, 8); + case 15: + return precpred(_ctx, 7); + case 16: + return precpred(_ctx, 4); + } + return true; + } + private boolean bool_expr_sempred(Bool_exprContext _localctx, int predIndex) { + switch (predIndex) { + case 17: + return precpred(_ctx, 2); + case 18: + return precpred(_ctx, 1); + } + return true; + } + private boolean from_item_sempred(From_itemContext _localctx, int predIndex) { + switch (predIndex) { + case 19: + return precpred(_ctx, 1); + } + return true; + } + private boolean predicate_sempred(PredicateContext _localctx, int predIndex) { + switch (predIndex) { + case 20: + return precpred(_ctx, 3); + case 21: + return precpred(_ctx, 2); + } + return true; + } + private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { + switch (predIndex) { + case 22: + return precpred(_ctx, 3); + } + return true; + } + + private static final int _serializedATNSegments = 3; + private static final String _serializedATNSegment0 = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u0344\u1603\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ + "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ + "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ + "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ + "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ + "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ + "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ + "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ + "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ + "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ + "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ + "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ + "\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0"+ + "\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4\t\u00a4"+ + "\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8\4\u00a9"+ + "\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad"+ + "\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1\4\u00b2"+ + "\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6\t\u00b6"+ + "\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb"+ + "\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf"+ + "\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3\4\u00c4"+ + "\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8\t\u00c8"+ + "\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd"+ + "\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1\t\u00d1"+ + "\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5\4\u00d6"+ + "\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da"+ + "\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df"+ + "\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3\t\u00e3"+ + "\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7\4\u00e8"+ + "\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec"+ + "\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0\4\u00f1"+ + "\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5\t\u00f5"+ + "\4\u00f6\t\u00f6\4\u00f7\t\u00f7\4\u00f8\t\u00f8\4\u00f9\t\u00f9\4\u00fa"+ + "\t\u00fa\4\u00fb\t\u00fb\4\u00fc\t\u00fc\4\u00fd\t\u00fd\4\u00fe\t\u00fe"+ + "\4\u00ff\t\u00ff\4\u0100\t\u0100\4\u0101\t\u0101\4\u0102\t\u0102\4\u0103"+ + "\t\u0103\4\u0104\t\u0104\4\u0105\t\u0105\4\u0106\t\u0106\4\u0107\t\u0107"+ + "\4\u0108\t\u0108\4\u0109\t\u0109\4\u010a\t\u010a\3\2\3\2\3\2\6\2\u0218"+ + "\n\2\r\2\16\2\u0219\3\2\3\2\5\2\u021e\n\2\3\2\3\2\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\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\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\3\3\3\3\3\3\3\3\3\3\3\5\3\u0256\n\3\3\4\3\4"+ + "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5"+ + "\3\5\3\5\3\5\3\5\3\5\5\5\u0282\n\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6"+ + "\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3"+ + "\6\3\6\3\6\3\6\5\6\u02a2\n\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3"+ + "\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\5\7"+ + "\u02bf\n\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+ + "\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u02d6\n\b\3\t\3\t\3\n\3\n\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\3\13\3\13\5\13\u02e4\n\13\3\13\3\13\3\13\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u02f4\n\13\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\3\13\5\13\u02fd\n\13\3\13\3\13\5\13\u0301\n\13\3\13\3"+ + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3"+ + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3"+ + "\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13\u0328\n\13\3\f\3\f\3\f\3\f"+ + "\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u0336\n\f\3\f\3\f\3\f\3\f\3\f\3\f"+ + "\3\f\3\f\3\f\5\f\u0341\n\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u034b\n"+ + "\f\3\r\3\r\3\r\3\r\3\r\3\r\5\r\u0353\n\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\5"+ + "\r\u035c\n\r\3\16\3\16\3\17\3\17\5\17\u0362\n\17\3\17\3\17\3\17\3\17\5"+ + "\17\u0368\n\17\3\17\5\17\u036b\n\17\3\17\3\17\5\17\u036f\n\17\3\17\3\17"+ + "\5\17\u0373\n\17\3\17\3\17\5\17\u0377\n\17\3\17\3\17\5\17\u037b\n\17\3"+ + "\17\3\17\3\17\5\17\u0380\n\17\3\17\3\17\3\17\3\17\5\17\u0386\n\17\3\17"+ + "\3\17\5\17\u038a\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u0393\n"+ + "\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u039b\n\17\3\17\3\17\3\17\3\17"+ + "\3\17\3\17\3\17\5\17\u03a4\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17"+ + "\u03ad\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u03b7\n\17\3"+ + "\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u03c1\n\17\3\17\3\17\3\17"+ + "\3\17\3\17\3\17\3\17\5\17\u03ca\n\17\3\17\3\17\3\17\5\17\u03cf\n\17\3"+ + "\17\3\17\3\17\3\17\5\17\u03d5\n\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+ + "\5\17\u03de\n\17\3\17\3\17\5\17\u03e2\n\17\3\17\3\17\3\17\3\17\3\17\5"+ + "\17\u03e9\n\17\3\17\3\17\3\17\3\17\3\17\5\17\u03f0\n\17\3\17\3\17\3\17"+ + "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+ + "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\5\17\u040a\n\17\5\17\u040c\n\17\3"+ + "\20\3\20\3\20\7\20\u0411\n\20\f\20\16\20\u0414\13\20\3\21\3\21\3\21\3"+ + "\21\3\21\5\21\u041b\n\21\3\21\5\21\u041e\n\21\3\21\3\21\5\21\u0422\n\21"+ + "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\5\21\u042b\n\21\3\21\5\21\u042e\n"+ + "\21\3\21\3\21\5\21\u0432\n\21\3\21\3\21\5\21\u0436\n\21\3\21\3\21\3\21"+ + "\3\21\3\21\3\21\3\21\3\21\3\21\5\21\u0441\n\21\3\21\3\21\3\21\3\21\3\21"+ + "\3\21\3\21\3\21\3\21\3\21\5\21\u044d\n\21\3\21\3\21\3\21\3\21\3\21\5\21"+ + "\u0454\n\21\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\5\23\u046d\n\23"+ + "\3\24\3\24\3\24\3\24\5\24\u0473\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24"+ + "\3\24\3\24\5\24\u047e\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24"+ + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u0491\n\24\3\24\3\24\3\24"+ + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u049d\n\24\3\24\3\24\3\24\3\24"+ + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u04ad\n\24\3\24"+ + "\3\24\3\24\3\24\5\24\u04b3\n\24\5\24\u04b5\n\24\3\25\3\25\5\25\u04b9\n"+ + "\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u04c3\n\25\3\25\3\25"+ + "\3\25\3\25\3\25\3\25\3\25\5\25\u04cc\n\25\5\25\u04ce\n\25\3\26\3\26\3"+ + "\26\3\26\3\26\3\26\3\26\3\26\3\26\5\26\u04d9\n\26\3\27\3\27\3\30\3\30"+ + "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31"+ + "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u04f4\n\31\3\31\3\31\3\31\3\31"+ + "\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0500\n\31\3\32\3\32\3\33\3\33\3\33"+ + "\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\5\33"+ + "\u0514\n\33\3\33\3\33\5\33\u0518\n\33\3\33\3\33\3\33\5\33\u051d\n\33\5"+ + "\33\u051f\n\33\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0527\n\34\3\34\3\34"+ + "\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0531\n\34\3\34\3\34\3\34\3\34\3\34"+ + "\3\34\3\34\3\34\5\34\u053b\n\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34"+ + "\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34"+ + "\3\34\3\34\5\34\u0555\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"+ + "\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u0569\n\35\3\35\3\35"+ + "\3\35\3\35\3\35\5\35\u0570\n\35\3\36\3\36\3\36\3\36\5\36\u0576\n\36\3"+ + "\36\6\36\u0579\n\36\r\36\16\36\u057a\3\36\3\36\3\36\3\36\3\36\3\36\3\36"+ + "\3\36\3\36\3\36\3\36\5\36\u0588\n\36\3\36\3\36\3\36\5\36\u058d\n\36\3"+ + "\36\3\36\3\36\3\36\3\36\5\36\u0594\n\36\3\36\3\36\3\36\3\36\5\36\u059a"+ + "\n\36\3\36\3\36\3\36\5\36\u059f\n\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36"+ + "\3\36\3\36\5\36\u05aa\n\36\3\36\3\36\3\36\5\36\u05af\n\36\3\36\3\36\3"+ + "\36\3\36\3\36\3\36\5\36\u05b7\n\36\3\36\3\36\3\36\5\36\u05bc\n\36\3\36"+ + "\3\36\5\36\u05c0\n\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 "+ + "\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u05da\n \5 \u05dc\n \3!"+ + "\3!\3!\3!\5!\u05e2\n!\3!\3!\3\"\5\"\u05e7\n\"\3\"\3\"\5\"\u05eb\n\"\3"+ + "\"\3\"\5\"\u05ef\n\"\3\"\3\"\5\"\u05f3\n\"\7\"\u05f5\n\"\f\"\16\"\u05f8"+ + "\13\"\3#\3#\3#\3#\3#\3#\3#\5#\u0601\n#\3#\3#\3#\3#\3#\5#\u0608\n#\3#\3"+ + "#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\5#\u0618\n#\3$\3$\3$\3$\3$\3$\3"+ + "$\3$\5$\u0622\n$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0632\n"+ + "$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0645\n%\3%\3"+ + "%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0651\n%\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%\3%\5%\u0673"+ + "\n%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\5&\u0683\n&\3\'\3\'\3(\3"+ + "(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\5(\u0696\n(\3(\3(\3(\3(\3(\3"+ + "(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\5(\u06a8\n(\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)\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)\5)\u06e5\n)\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)\5)\u0705\n)\3*\3*\3+\3"+ + "+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\5,\u071d\n,\3"+ + "-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\5-\u0732\n-\3"+ + ".\3.\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60"+ + "\3\61\3\61\3\62\3\62\5\62\u0748\n\62\3\62\3\62\3\62\3\62\3\62\5\62\u074f"+ + "\n\62\3\63\3\63\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3"+ + "9\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\39\3"+ + "9\39\39\39\39\39\39\39\39\39\39\39\39\39\59\u0784\n9\3:\3:\3:\3:\3:\3"+ + ":\3:\3:\3:\3;\3;\3;\3;\3;\5;\u0794\n;\3;\5;\u0797\n;\3;\3;\3;\3;\3;\3"+ + ";\3;\3;\3;\3;\3;\3;\3;\3;\5;\u07a7\n;\3;\3;\3;\3;\5;\u07ad\n;\3;\3;\5"+ + ";\u07b1\n;\3;\3;\3;\3;\5;\u07b7\n;\3;\3;\3;\3;\5;\u07bd\n;\3;\3;\3;\3"+ + ";\5;\u07c3\n;\3;\3;\3;\3;\5;\u07c9\n;\3;\3;\3;\3;\5;\u07cf\n;\3;\3;\3"+ + ";\3;\5;\u07d5\n;\3;\3;\3;\3;\5;\u07db\n;\3;\3;\3;\3;\5;\u07e1\n;\3;\3"+ + ";\3;\3;\5;\u07e7\n;\3;\3;\5;\u07eb\n;\3;\3;\3;\3;\5;\u07f1\n;\3;\3;\3"+ + ";\3;\5;\u07f7\n;\3;\3;\3;\3;\5;\u07fd\n;\3;\3;\3;\3;\3;\3;\3;\5;\u0806"+ + "\n;\3;\5;\u0809\n;\3;\5;\u080c\n;\3;\3;\3;\5;\u0811\n;\3;\5;\u0814\n;"+ + "\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\5;\u0824\n;\3;\3;\3;\3;\5;"+ + "\u082a\n;\3;\3;\5;\u082e\n;\3;\3;\3;\3;\5;\u0834\n;\3;\3;\3;\3;\5;\u083a"+ + "\n;\3;\3;\5;\u083e\n;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;"+ + "\3;\3;\3;\3;\3;\5;\u0855\n;\3;\3;\3;\3;\5;\u085b\n;\3;\3;\5;\u085f\n;"+ + "\3;\3;\3;\3;\5;\u0865\n;\3;\3;\3;\3;\5;\u086b\n;\3;\3;\3;\3;\5;\u0871"+ + "\n;\3;\3;\3;\3;\5;\u0877\n;\3;\3;\3;\3;\5;\u087d\n;\3;\3;\3;\3;\5;\u0883"+ + "\n;\3;\3;\3;\3;\5;\u0889\n;\3;\3;\3;\3;\5;\u088f\n;\3;\3;\3;\3;\5;\u0895"+ + "\n;\3;\3;\5;\u0899\n;\3;\3;\3;\3;\5;\u089f\n;\3;\3;\3;\3;\5;\u08a5\n;"+ + "\3;\3;\5;\u08a9\n;\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\5<\u08b9"+ + "\n<\3<\3<\3<\3<\5<\u08bf\n<\3<\3<\3<\3<\5<\u08c5\n<\3=\3=\3=\3=\3=\3="+ + "\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\5=\u08d9\n=\3>\3>\3>\7>\u08de\n>"+ + "\f>\16>\u08e1\13>\3?\3?\3?\3?\3?\5?\u08e8\n?\3?\3?\3?\3?\3?\3?\3?\3?\3"+ + "?\3?\5?\u08f4\n?\3?\3?\3?\3?\5?\u08fa\n?\3@\3@\5@\u08fe\n@\3@\3@\3@\3"+ + "@\3@\3@\3@\3@\3@\3A\3A\3A\3A\5A\u090d\nA\3A\3A\3A\5A\u0912\nA\3A\3A\3"+ + "A\5A\u0917\nA\3A\3A\3A\5A\u091c\nA\3A\3A\3A\5A\u0921\nA\3A\3A\3A\5A\u0926"+ + "\nA\3A\3A\3A\5A\u092b\nA\3A\3A\3A\5A\u0930\nA\3A\3A\3A\3A\5A\u0936\nA"+ + "\3A\3A\3A\5A\u093b\nA\3B\3B\5B\u093f\nB\3B\3B\3B\3B\3B\3B\3B\3B\5B\u0949"+ + "\nB\3C\3C\3C\3C\5C\u094f\nC\3C\3C\3C\3C\3C\3C\7C\u0957\nC\fC\16C\u095a"+ + "\13C\3D\3D\3D\3D\3D\3D\7D\u0962\nD\fD\16D\u0965\13D\3D\3D\3D\7D\u096a"+ + "\nD\fD\16D\u096d\13D\3E\3E\3E\3E\3E\3E\3E\3E\5E\u0977\nE\3E\3E\3E\3E\3"+ + "E\3E\3F\3F\3F\3F\7F\u0983\nF\fF\16F\u0986\13F\3G\3G\3G\3G\3G\3G\3G\3G"+ + "\3G\7G\u0991\nG\fG\16G\u0994\13G\3G\3G\3G\3G\5G\u099a\nG\3G\3G\3G\3G\3"+ + "G\5G\u09a1\nG\3H\3H\3H\3H\3H\3H\5H\u09a9\nH\3H\3H\3H\3H\3H\3H\3H\3H\3"+ + "H\5H\u09b4\nH\3H\3H\5H\u09b8\nH\3H\3H\3H\5H\u09bd\nH\3H\3H\3H\3H\3H\3"+ + "H\3H\5H\u09c6\nH\3I\3I\3I\5I\u09cb\nI\3I\3I\3I\3J\3J\3J\3J\5J\u09d4\n"+ + "J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\5J\u09e3\nJ\3J\3J\3J\3J\3J\3"+ + "J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\6J\u09f8\nJ\rJ\16J\u09f9\5J\u09fc"+ + "\nJ\3K\3K\5K\u0a00\nK\3K\3K\5K\u0a04\nK\3K\3K\3K\5K\u0a09\nK\3K\5K\u0a0c"+ + "\nK\3K\3K\3K\3K\5K\u0a12\nK\3K\3K\5K\u0a16\nK\3K\3K\5K\u0a1a\nK\3L\3L"+ + "\3L\5L\u0a1f\nL\3L\5L\u0a22\nL\3L\3L\3L\3L\3L\5L\u0a29\nL\3L\5L\u0a2c"+ + "\nL\3L\5L\u0a2f\nL\3L\3L\3L\3L\3L\3L\5L\u0a37\nL\3L\3L\5L\u0a3b\nL\5L"+ + "\u0a3d\nL\3M\3M\3M\3M\3M\3M\5M\u0a45\nM\3M\3M\3M\3M\3M\5M\u0a4c\nM\3M"+ + "\5M\u0a4f\nM\3M\3M\5M\u0a53\nM\3M\3M\3M\3M\5M\u0a59\nM\3M\5M\u0a5c\nM"+ + "\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\5N\u0a69\nN\3N\3N\3N\3N\5N\u0a6f\nN"+ + "\3N\3N\3N\3N\5N\u0a75\nN\3N\3N\3N\3N\5N\u0a7b\nN\3N\3N\3N\3N\5N\u0a81"+ + "\nN\3N\3N\3N\3N\5N\u0a87\nN\3N\3N\5N\u0a8b\nN\3N\3N\5N\u0a8f\nN\3N\3N"+ + "\3O\3O\3O\3O\3O\3O\3O\3O\3O\5O\u0a9c\nO\3O\3O\3O\3O\3O\3O\5O\u0aa4\nO"+ + "\3O\3O\5O\u0aa8\nO\3O\3O\3O\3O\3O\3O\3O\5O\u0ab1\nO\3P\3P\3P\3P\3P\5P"+ + "\u0ab8\nP\3P\3P\3P\3P\3P\3P\3P\5P\u0ac1\nP\3P\3P\3P\3P\7P\u0ac7\nP\fP"+ + "\16P\u0aca\13P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\5R\u0ada\nR\3"+ + "R\3R\5R\u0ade\nR\3R\3R\3R\3R\3R\5R\u0ae5\nR\3R\3R\3R\3R\3R\3R\5R\u0aed"+ + "\nR\3S\3S\3S\3S\5S\u0af3\nS\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S"+ + "\3S\3S\3S\3S\5S\u0b07\nS\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S"+ + "\3S\3S\3S\3S\6S\u0b1c\nS\rS\16S\u0b1d\5S\u0b20\nS\3T\3T\3U\3U\3U\5U\u0b27"+ + "\nU\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0b32\nU\3U\3U\5U\u0b36\nU\3U\3U\5U"+ + "\u0b3a\nU\3V\3V\3V\3V\3V\5V\u0b41\nV\3V\5V\u0b44\nV\3V\3V\3V\3V\3V\5V"+ + "\u0b4b\nV\3V\3V\3V\3V\3V\3V\3V\3V\5V\u0b55\nV\3V\3V\3V\3V\3V\3V\3V\5V"+ + "\u0b5e\nV\3W\3W\5W\u0b62\nW\3W\3W\3W\3W\5W\u0b68\nW\3W\3W\3W\5W\u0b6d"+ + "\nW\3W\5W\u0b70\nW\3W\3W\3W\3W\5W\u0b76\nW\3W\3W\3W\3W\5W\u0b7c\nW\3W"+ + "\3W\5W\u0b80\nW\3W\5W\u0b83\nW\3W\3W\5W\u0b87\nW\3W\5W\u0b8a\nW\3W\5W"+ + "\u0b8d\nW\3W\3W\3W\3W\3W\3W\3W\5W\u0b96\nW\5W\u0b98\nW\3X\3X\3Y\3Y\3Z"+ + "\3Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3_\3_\3`\3`\3a\3a\3b\3b\3c\3c\3d\3d\3e\3"+ + "e\3f\3f\3g\3g\3g\5g\u0bbb\ng\3g\5g\u0bbe\ng\3g\5g\u0bc1\ng\3g\3g\3g\3"+ + "g\3g\3g\5g\u0bc9\ng\3g\3g\3g\3g\3g\5g\u0bd0\ng\3g\3g\3g\5g\u0bd5\ng\3"+ + "g\3g\5g\u0bd9\ng\3g\3g\5g\u0bdd\ng\3h\3h\3i\3i\3j\5j\u0be4\nj\3j\3j\3"+ + "j\5j\u0be9\nj\3j\3j\5j\u0bed\nj\3j\5j\u0bf0\nj\3j\5j\u0bf3\nj\3j\3j\5"+ + "j\u0bf7\nj\3j\3j\3j\3j\3j\5j\u0bfe\nj\3j\5j\u0c01\nj\3k\3k\3k\3l\3l\3"+ + "l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3"+ + "l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\5l\u0c2f\nl\3m\3m\3m\3"+ + "m\3m\5m\u0c36\nm\3m\3m\5m\u0c3a\nm\3n\3n\3n\3n\5n\u0c40\nn\3n\3n\3n\3"+ + "n\3n\3o\3o\3o\3o\5o\u0c4b\no\3o\3o\3o\3o\3o\3o\5o\u0c53\no\3p\3p\3p\3"+ + "p\5p\u0c59\np\3p\3p\5p\u0c5d\np\3q\3q\3q\3q\5q\u0c63\nq\3q\3q\5q\u0c67"+ + "\nq\3r\3r\3r\3r\5r\u0c6d\nr\3r\3r\3s\3s\3s\3s\5s\u0c75\ns\3s\3s\5s\u0c79"+ + "\ns\3t\3t\3t\3t\3t\5t\u0c80\nt\3t\3t\5t\u0c84\nt\3u\3u\3u\3u\5u\u0c8a"+ + "\nu\3u\3u\5u\u0c8e\nu\3v\3v\3v\3v\3v\3v\5v\u0c96\nv\3v\3v\5v\u0c9a\nv"+ + "\3w\3w\3w\3w\3w\5w\u0ca1\nw\3w\3w\5w\u0ca5\nw\3x\3x\3x\3x\5x\u0cab\nx"+ + "\3x\3x\5x\u0caf\nx\3y\3y\3y\3y\5y\u0cb5\ny\3y\3y\3z\3z\3z\5z\u0cbc\nz"+ + "\3z\3z\5z\u0cc0\nz\3z\3z\5z\u0cc4\nz\3{\3{\5{\u0cc8\n{\3{\3{\3{\5{\u0ccd"+ + "\n{\3{\3{\5{\u0cd1\n{\3|\3|\3|\3|\3|\5|\u0cd8\n|\3|\3|\5|\u0cdc\n|\3}"+ + "\3}\3~\3~\3~\3~\3~\5~\u0ce5\n~\3~\3~\3~\3~\5~\u0ceb\n~\3\177\3\177\3\177"+ + "\3\177\3\177\5\177\u0cf2\n\177\3\177\3\177\3\177\3\177\5\177\u0cf8\n\177"+ + "\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\5\u0080\u0cff\n\u0080\3\u0081"+ + "\3\u0081\3\u0081\3\u0081\5\u0081\u0d05\n\u0081\3\u0081\3\u0081\3\u0081"+ + "\3\u0081\5\u0081\u0d0b\n\u0081\3\u0082\3\u0082\3\u0082\3\u0082\5\u0082"+ + "\u0d11\n\u0082\3\u0082\3\u0082\5\u0082\u0d15\n\u0082\3\u0083\3\u0083\3"+ + "\u0083\3\u0083\5\u0083\u0d1b\n\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3"+ + "\u0084\3\u0084\5\u0084\u0d23\n\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5"+ + "\u0084\u0d29\n\u0084\3\u0085\3\u0085\3\u0085\3\u0085\5\u0085\u0d2f\n\u0085"+ + "\3\u0085\3\u0085\5\u0085\u0d33\n\u0085\3\u0086\3\u0086\3\u0086\3\u0086"+ + "\5\u0086\u0d39\n\u0086\3\u0086\3\u0086\5\u0086\u0d3d\n\u0086\3\u0087\3"+ + "\u0087\3\u0087\3\u0087\5\u0087\u0d43\n\u0087\3\u0087\3\u0087\5\u0087\u0d47"+ + "\n\u0087\3\u0088\3\u0088\3\u0088\3\u0088\5\u0088\u0d4d\n\u0088\3\u0088"+ + "\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\5\u0089\u0d55\n\u0089\3\u0089"+ + "\3\u0089\5\u0089\u0d59\n\u0089\3\u008a\3\u008a\3\u008a\3\u008a\5\u008a"+ + "\u0d5f\n\u008a\3\u008a\3\u008a\5\u008a\u0d63\n\u008a\3\u008b\3\u008b\3"+ + "\u008b\3\u008b\5\u008b\u0d69\n\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3"+ + "\u008c\3\u008c\3\u008c\3\u008c\5\u008c\u0d73\n\u008c\3\u008c\3\u008c\5"+ + "\u008c\u0d77\n\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\5"+ + "\u008d\u0d7f\n\u008d\3\u008d\3\u008d\5\u008d\u0d83\n\u008d\3\u008e\3\u008e"+ + "\3\u008e\3\u008e\3\u008e\3\u008e\5\u008e\u0d8b\n\u008e\3\u008e\3\u008e"+ + "\5\u008e\u0d8f\n\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+ + "\5\u008f\u0d97\n\u008f\3\u008f\3\u008f\5\u008f\u0d9b\n\u008f\3\u0090\3"+ + "\u0090\3\u0090\3\u0090\5\u0090\u0da1\n\u0090\3\u0090\3\u0090\3\u0090\3"+ + "\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u0dad\n"+ + "\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091\u0db3\n\u0091\3\u0092\3"+ + "\u0092\3\u0092\3\u0092\5\u0092\u0db9\n\u0092\3\u0092\3\u0092\5\u0092\u0dbd"+ + "\n\u0092\3\u0093\3\u0093\3\u0093\3\u0093\5\u0093\u0dc3\n\u0093\3\u0093"+ + "\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\5\u0094\u0dcc\n\u0094"+ + "\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\5\u0094\u0dd4\n\u0094"+ + "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095\u0ddd"+ + "\n\u0095\3\u0095\3\u0095\5\u0095\u0de1\n\u0095\3\u0096\3\u0096\3\u0096"+ + "\5\u0096\u0de6\n\u0096\3\u0097\3\u0097\5\u0097\u0dea\n\u0097\3\u0097\5"+ + "\u0097\u0ded\n\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\7\u0097\u0df4"+ + "\n\u0097\f\u0097\16\u0097\u0df7\13\u0097\3\u0097\3\u0097\5\u0097\u0dfb"+ + "\n\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097"+ + "\3\u0097\5\u0097\u0e06\n\u0097\3\u0098\3\u0098\3\u0099\3\u0099\3\u009a"+ + "\3\u009a\3\u009b\5\u009b\u0e0f\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b"+ + "\3\u009b\5\u009b\u0e16\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b"+ + "\u0e1c\n\u009b\3\u009b\3\u009b\5\u009b\u0e20\n\u009b\3\u009b\5\u009b\u0e23"+ + "\n\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e29\n\u009b\3\u009b"+ + "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e31\n\u009b\3\u009b"+ + "\3\u009b\3\u009b\5\u009b\u0e36\n\u009b\3\u009b\5\u009b\u0e39\n\u009b\3"+ + "\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0e42\n"+ + "\u009b\5\u009b\u0e44\n\u009b\5\u009b\u0e46\n\u009b\3\u009b\5\u009b\u0e49"+ + "\n\u009b\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009e\3\u009e\5\u009e"+ + "\u0e52\n\u009e\3\u009e\5\u009e\u0e55\n\u009e\3\u009e\3\u009e\5\u009e\u0e59"+ + "\n\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e"+ + "\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e"+ + "\5\u009e\u0e6c\n\u009e\3\u009e\5\u009e\u0e6f\n\u009e\3\u009e\5\u009e\u0e72"+ + "\n\u009e\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f"+ + "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\5\u009f\u0e81\n\u009f\3\u009f"+ + "\3\u009f\5\u009f\u0e85\n\u009f\5\u009f\u0e87\n\u009f\3\u009f\5\u009f\u0e8a"+ + "\n\u009f\5\u009f\u0e8c\n\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0"+ + "\3\u00a0\5\u00a0\u0e94\n\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1"+ + "\3\u00a1\5\u00a1\u0e9c\n\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1"+ + "\3\u00a1\5\u00a1\u0ea4\n\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\5\u00a3\u0eb0\n\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a3\3\u00a3\5\u00a3\u0eb6\n\u00a3\7\u00a3\u0eb8\n\u00a3\f"+ + "\u00a3\16\u00a3\u0ebb\13\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\5\u00a3"+ + "\u0ec1\n\u00a3\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5\5\u00a5"+ + "\u0ec9\n\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6\u0ed0\n"+ + "\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\5\u00a7\u0ed7\n\u00a7\3"+ + "\u00a8\3\u00a8\3\u00a9\3\u00a9\5\u00a9\u0edd\n\u00a9\3\u00aa\3\u00aa\3"+ + "\u00aa\3\u00aa\3\u00ab\3\u00ab\5\u00ab\u0ee5\n\u00ab\3\u00ab\3\u00ab\5"+ + "\u00ab\u0ee9\n\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3"+ + "\u00ad\3\u00ad\3\u00ad\5\u00ad\u0ef4\n\u00ad\3\u00ad\3\u00ad\3\u00ad\3"+ + "\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad\u0f19\n\u00ad\3\u00ad"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad"+ + "\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad"+ + "\u0f2d\n\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\5\u00ae\u0f33\n\u00ae\3"+ + "\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f38\n\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f3c"+ + "\n\u00ae\3\u00ae\3\u00ae\5\u00ae\u0f40\n\u00ae\3\u00ae\6\u00ae\u0f43\n"+ + "\u00ae\r\u00ae\16\u00ae\u0f44\3\u00ae\3\u00ae\6\u00ae\u0f49\n\u00ae\r"+ + "\u00ae\16\u00ae\u0f4a\3\u00ae\3\u00ae\5\u00ae\u0f4f\n\u00ae\3\u00ae\5"+ + "\u00ae\u0f52\n\u00ae\3\u00ae\5\u00ae\u0f55\n\u00ae\3\u00ae\5\u00ae\u0f58"+ + "\n\u00ae\3\u00ae\5\u00ae\u0f5b\n\u00ae\3\u00ae\5\u00ae\u0f5e\n\u00ae\3"+ + "\u00ae\5\u00ae\u0f61\n\u00ae\3\u00ae\5\u00ae\u0f64\n\u00ae\3\u00ae\5\u00ae"+ + "\u0f67\n\u00ae\3\u00ae\5\u00ae\u0f6a\n\u00ae\3\u00ae\5\u00ae\u0f6d\n\u00ae"+ + "\3\u00af\5\u00af\u0f70\n\u00af\3\u00af\3\u00af\3\u00af\3\u00af\5\u00af"+ + "\u0f76\n\u00af\3\u00af\5\u00af\u0f79\n\u00af\3\u00af\3\u00af\5\u00af\u0f7d"+ + "\n\u00af\3\u00af\3\u00af\5\u00af\u0f81\n\u00af\3\u00af\3\u00af\5\u00af"+ + "\u0f85\n\u00af\3\u00af\6\u00af\u0f88\n\u00af\r\u00af\16\u00af\u0f89\3"+ + "\u00af\3\u00af\6\u00af\u0f8e\n\u00af\r\u00af\16\u00af\u0f8f\3\u00af\3"+ + "\u00af\5\u00af\u0f94\n\u00af\3\u00af\5\u00af\u0f97\n\u00af\3\u00af\5\u00af"+ + "\u0f9a\n\u00af\3\u00af\5\u00af\u0f9d\n\u00af\3\u00af\5\u00af\u0fa0\n\u00af"+ + "\3\u00af\5\u00af\u0fa3\n\u00af\3\u00af\5\u00af\u0fa6\n\u00af\3\u00af\5"+ + "\u00af\u0fa9\n\u00af\3\u00af\5\u00af\u0fac\n\u00af\3\u00af\5\u00af\u0faf"+ + "\n\u00af\3\u00af\5\u00af\u0fb2\n\u00af\3\u00b0\3\u00b0\5\u00b0\u0fb6\n"+ + "\u00b0\3\u00b0\3\u00b0\3\u00b0\7\u00b0\u0fbb\n\u00b0\f\u00b0\16\u00b0"+ + "\u0fbe\13\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1\u0fc5"+ + "\n\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1"+ + "\u0fce\n\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\5\u00b2\u0fd4\n\u00b2\3"+ + "\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0fda\n\u00b2\3\u00b2\3\u00b2\5"+ + "\u00b2\u0fde\n\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0fe5"+ + "\n\u00b2\5\u00b2\u0fe7\n\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\5\u00b3"+ + "\u0fed\n\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4\5\u00b4\u0ff3\n\u00b4\3"+ + "\u00b4\3\u00b4\3\u00b4\5\u00b4\u0ff8\n\u00b4\3\u00b4\3\u00b4\5\u00b4\u0ffc"+ + "\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ + "\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u1009\n\u00b6\3\u00b6\3\u00b6\3\u00b6"+ + "\3\u00b6\3\u00b6\5\u00b6\u1010\n\u00b6\3\u00b6\5\u00b6\u1013\n\u00b6\3"+ + "\u00b7\3\u00b7\3\u00b7\7\u00b7\u1018\n\u00b7\f\u00b7\16\u00b7\u101b\13"+ + "\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8"+ + "\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\5\u00b8\u102a\n\u00b8\3\u00b9"+ + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u1031\n\u00b9\3\u00ba\3\u00ba"+ + "\5\u00ba\u1035\n\u00ba\3\u00ba\5\u00ba\u1038\n\u00ba\3\u00ba\3\u00ba\5"+ + "\u00ba\u103c\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u1040\n\u00ba\3\u00ba\5\u00ba"+ + "\u1043\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u1047\n\u00ba\3\u00ba\5\u00ba\u104a"+ + "\n\u00ba\3\u00bb\3\u00bb\3\u00bb\5\u00bb\u104f\n\u00bb\3\u00bc\5\u00bc"+ + "\u1052\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u1056\n\u00bc\3\u00bc\3\u00bc\5"+ + "\u00bc\u105a\n\u00bc\3\u00bc\5\u00bc\u105d\n\u00bc\3\u00bc\5\u00bc\u1060"+ + "\n\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u1065\n\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u106c\n\u00bc\3\u00bc\5\u00bc\u106f\n"+ + "\u00bc\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\7\u00be\u1076\n\u00be\f"+ + "\u00be\16\u00be\u1079\13\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\5\u00bf\u1080\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\5\u00bf"+ + "\u1087\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u108b\n\u00bf\3\u00bf\5\u00bf\u108e"+ + "\n\u00bf\3\u00bf\5\u00bf\u1091\n\u00bf\3\u00bf\5\u00bf\u1094\n\u00bf\3"+ + "\u00bf\3\u00bf\5\u00bf\u1098\n\u00bf\3\u00bf\5\u00bf\u109b\n\u00bf\3\u00bf"+ + "\5\u00bf\u109e\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\5\u00bf\u10a6\n\u00bf\5\u00bf\u10a8\n\u00bf\5\u00bf\u10aa\n\u00bf\3\u00c0"+ + "\5\u00c0\u10ad\n\u00c0\3\u00c0\3\u00c0\3\u00c0\6\u00c0\u10b2\n\u00c0\r"+ + "\u00c0\16\u00c0\u10b3\3\u00c0\3\u00c0\6\u00c0\u10b8\n\u00c0\r\u00c0\16"+ + "\u00c0\u10b9\3\u00c0\3\u00c0\5\u00c0\u10be\n\u00c0\3\u00c0\5\u00c0\u10c1"+ + "\n\u00c0\3\u00c0\5\u00c0\u10c4\n\u00c0\3\u00c0\5\u00c0\u10c7\n\u00c0\3"+ + "\u00c0\5\u00c0\u10ca\n\u00c0\3\u00c0\5\u00c0\u10cd\n\u00c0\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c1\5\u00c1\u10d3\n\u00c1\5\u00c1\u10d5\n\u00c1\3\u00c1\3"+ + "\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\7\u00c2\u10dd\n\u00c2\f\u00c2\16"+ + "\u00c2\u10e0\13\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c4\3\u00c4\7\u00c4\u10ea\n\u00c4\f\u00c4\16\u00c4\u10ed\13\u00c4"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\5\u00c5"+ + "\u10f7\n\u00c5\3\u00c5\3\u00c5\3\u00c5\5\u00c5\u10fc\n\u00c5\7\u00c5\u10fe"+ + "\n\u00c5\f\u00c5\16\u00c5\u1101\13\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\5\u00c5\u1108\n\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6"+ + "\u110e\n\u00c6\f\u00c6\16\u00c6\u1111\13\u00c6\3\u00c6\3\u00c6\3\u00c7"+ + "\3\u00c7\3\u00c7\3\u00c7\7\u00c7\u1119\n\u00c7\f\u00c7\16\u00c7\u111c"+ + "\13\u00c7\3\u00c8\3\u00c8\5\u00c8\u1120\n\u00c8\3\u00c8\5\u00c8\u1123"+ + "\n\u00c8\3\u00c8\5\u00c8\u1126\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8"+ + "\u112b\n\u00c8\3\u00c8\5\u00c8\u112e\n\u00c8\3\u00c8\5\u00c8\u1131\n\u00c8"+ + "\7\u00c8\u1133\n\u00c8\f\u00c8\16\u00c8\u1136\13\u00c8\3\u00c9\3\u00c9"+ + "\5\u00c9\u113a\n\u00c9\3\u00c9\3\u00c9\5\u00c9\u113e\n\u00c9\3\u00ca\3"+ + "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca"+ + "\5\u00ca\u114a\n\u00ca\3\u00cb\3\u00cb\3\u00cc\3\u00cc\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u1158\n\u00cd"+ + "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\7\u00ce\u1160\n\u00ce"+ + "\f\u00ce\16\u00ce\u1163\13\u00ce\3\u00ce\5\u00ce\u1166\n\u00ce\3\u00cf"+ + "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\5\u00d0"+ + "\u1171\n\u00d0\3\u00d0\7\u00d0\u1174\n\u00d0\f\u00d0\16\u00d0\u1177\13"+ + "\u00d0\3\u00d0\3\u00d0\5\u00d0\u117b\n\u00d0\3\u00d0\7\u00d0\u117e\n\u00d0"+ + "\f\u00d0\16\u00d0\u1181\13\u00d0\3\u00d0\5\u00d0\u1184\n\u00d0\3\u00d1"+ + "\3\u00d1\3\u00d1\3\u00d1\3\u00d1\7\u00d1\u118b\n\u00d1\f\u00d1\16\u00d1"+ + "\u118e\13\u00d1\3\u00d2\3\u00d2\5\u00d2\u1192\n\u00d2\3\u00d2\3\u00d2"+ + "\3\u00d2\3\u00d2\5\u00d2\u1198\n\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d2"+ + "\3\u00d2\3\u00d2\7\u00d2\u11a0\n\u00d2\f\u00d2\16\u00d2\u11a3\13\u00d2"+ + "\5\u00d2\u11a5\n\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u11ab\n"+ + "\u00d3\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u11b0\n\u00d4\3\u00d5\3\u00d5\3"+ + "\u00d5\5\u00d5\u11b5\n\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d6\3\u00d6\3"+ + "\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\5\u00d6\u11c2\n\u00d6\3"+ + "\u00d6\3\u00d6\3\u00d6\3\u00d6\7\u00d6\u11c8\n\u00d6\f\u00d6\16\u00d6"+ + "\u11cb\13\u00d6\5\u00d6\u11cd\n\u00d6\3\u00d6\3\u00d6\3\u00d6\7\u00d6"+ + "\u11d2\n\u00d6\f\u00d6\16\u00d6\u11d5\13\u00d6\3\u00d7\3\u00d7\3\u00d7"+ + "\7\u00d7\u11da\n\u00d7\f\u00d7\16\u00d7\u11dd\13\u00d7\3\u00d8\3\u00d8"+ + "\3\u00d8\3\u00d8\3\u00d8\3\u00d8\3\u00d8\5\u00d8\u11e6\n\u00d8\5\u00d8"+ + "\u11e8\n\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\6\u00da\u11fd\n\u00da\r\u00da\16\u00da\u11fe"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\6\u00da\u1205\n\u00da\r\u00da\16\u00da"+ + "\u1206\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\5\u00da\u1237\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\5\u00da\u1249\n\u00da\3\u00da\3\u00da\3\u00da"+ + "\5\u00da\u124e\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da"+ + "\u125e\n\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\5\u00da\u1270\n\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u1275\n\u00da\3"+ + "\u00da\3\u00da\5\u00da\u1279\n\u00da\3\u00da\6\u00da\u127c\n\u00da\r\u00da"+ + "\16\u00da\u127d\3\u00da\3\u00da\3\u00da\6\u00da\u1283\n\u00da\r\u00da"+ + "\16\u00da\u1284\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u1292\n\u00da\3\u00da\3\u00da"+ + "\3\u00da\3\u00da\3\u00da\3\u00da\7\u00da\u129a\n\u00da\f\u00da\16\u00da"+ + "\u129d\13\u00da\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u12a4"+ + "\n\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\7\u00db\u12ac"+ + "\n\u00db\f\u00db\16\u00db\u12af\13\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc"+ + "\3\u00dc\3\u00dc\3\u00dc\6\u00dc\u12b8\n\u00dc\r\u00dc\16\u00dc\u12b9"+ + "\3\u00dc\3\u00dc\5\u00dc\u12be\n\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc"+ + "\3\u00dc\3\u00dc\3\u00dc\3\u00dc\6\u00dc\u12c8\n\u00dc\r\u00dc\16\u00dc"+ + "\u12c9\3\u00dc\3\u00dc\5\u00dc\u12ce\n\u00dc\3\u00dc\3\u00dc\5\u00dc\u12d2"+ + "\n\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\7\u00dd\u12d8\n\u00dd\f\u00dd"+ + "\16\u00dd\u12db\13\u00dd\3\u00dd\3\u00dd\3\u00de\5\u00de\u12e0\n\u00de"+ + "\3\u00de\3\u00de\3\u00de\7\u00de\u12e5\n\u00de\f\u00de\16\u00de\u12e8"+ + "\13\u00de\3\u00de\5\u00de\u12eb\n\u00de\3\u00df\5\u00df\u12ee\n\u00df"+ + "\3\u00df\5\u00df\u12f1\n\u00df\3\u00df\5\u00df\u12f4\n\u00df\3\u00e0\3"+ + "\u00e0\3\u00e0\7\u00e0\u12f9\n\u00e0\f\u00e0\16\u00e0\u12fc\13\u00e0\3"+ + "\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\5\u00e1\u1303\n\u00e1\3\u00e2\3"+ + "\u00e2\3\u00e2\7\u00e2\u1308\n\u00e2\f\u00e2\16\u00e2\u130b\13\u00e2\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3"+ + "\u1315\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u131b\n\u00e3\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3"+ + "\u1325\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u132b\n\u00e3\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1331\n\u00e3\3\u00e3\3\u00e3\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u133c\n"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u134a\n\u00e3\3\u00e3\5\u00e3"+ + "\u134d\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u135c\n\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u136e"+ + "\n\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1373\n\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\5\u00e3\u1379\n\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3"+ + "\u137e\n\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1384\n\u00e3\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u138a\n\u00e3\3\u00e3\3\u00e3\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u1394\n\u00e3\3"+ + "\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u139a\n\u00e3\3\u00e3\5\u00e3\u139d"+ + "\n\u00e3\3\u00e4\3\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\5\u00e5\u13a5"+ + "\n\u00e5\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u13aa\n\u00e6\3\u00e6\3\u00e6"+ + "\3\u00e6\7\u00e6\u13af\n\u00e6\f\u00e6\16\u00e6\u13b2\13\u00e6\3\u00e6"+ + "\5\u00e6\u13b5\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ + "\3\u00e6\5\u00e6\u13be\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6\u13ca\n\u00e6\3\u00e6"+ + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\7\u00e6\u13d1\n\u00e6\f\u00e6\16\u00e6"+ + "\u13d4\13\u00e6\5\u00e6\u13d6\n\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ + "\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\5\u00e6"+ + "\u13e4\n\u00e6\5\u00e6\u13e6\n\u00e6\3\u00e7\3\u00e7\5\u00e7\u13ea\n\u00e7"+ + "\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u13ef\n\u00e8\f\u00e8\16\u00e8\u13f2"+ + "\13\u00e8\3\u00e9\3\u00e9\3\u00e9\7\u00e9\u13f7\n\u00e9\f\u00e9\16\u00e9"+ + "\u13fa\13\u00e9\3\u00ea\3\u00ea\3\u00ea\5\u00ea\u13ff\n\u00ea\3\u00eb"+ + "\3\u00eb\3\u00eb\7\u00eb\u1404\n\u00eb\f\u00eb\16\u00eb\u1407\13\u00eb"+ + "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\5\u00ed\u140d\n\u00ed\3\u00ed\3\u00ed"+ + "\5\u00ed\u1411\n\u00ed\3\u00ed\7\u00ed\u1414\n\u00ed\f\u00ed\16\u00ed"+ + "\u1417\13\u00ed\3\u00ee\3\u00ee\3\u00ee\7\u00ee\u141c\n\u00ee\f\u00ee"+ + "\16\u00ee\u141f\13\u00ee\3\u00ef\3\u00ef\5\u00ef\u1423\n\u00ef\3\u00f0"+ + "\3\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1"+ + "\3\u00f1\3\u00f1\3\u00f1\7\u00f1\u1432\n\u00f1\f\u00f1\16\u00f1\u1435"+ + "\13\u00f1\3\u00f1\3\u00f1\3\u00f1\5\u00f1\u143a\n\u00f1\5\u00f1\u143c"+ + "\n\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1\3\u00f1"+ + "\3\u00f1\5\u00f1\u1447\n\u00f1\3\u00f1\3\u00f1\5\u00f1\u144b\n\u00f1\3"+ + "\u00f2\3\u00f2\3\u00f2\3\u00f2\3\u00f2\7\u00f2\u1452\n\u00f2\f\u00f2\16"+ + "\u00f2\u1455\13\u00f2\5\u00f2\u1457\n\u00f2\3\u00f2\3\u00f2\3\u00f3\3"+ + "\u00f3\5\u00f3\u145d\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u1461\n\u00f3\3\u00f3"+ + "\5\u00f3\u1464\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3"+ + "\7\u00f3\u146c\n\u00f3\f\u00f3\16\u00f3\u146f\13\u00f3\3\u00f3\3\u00f3"+ + "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u1477\n\u00f3\5\u00f3\u1479\n"+ + "\u00f3\3\u00f3\5\u00f3\u147c\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\5"+ + "\u00f3\u1482\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u1489"+ + "\n\u00f3\f\u00f3\16\u00f3\u148c\13\u00f3\3\u00f3\3\u00f3\5\u00f3\u1490"+ + "\n\u00f3\3\u00f3\5\u00f3\u1493\n\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3"+ + "\u1498\n\u00f3\3\u00f3\5\u00f3\u149b\n\u00f3\3\u00f3\5\u00f3\u149e\n\u00f3"+ + "\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u14a6\n\u00f3"+ + "\f\u00f3\16\u00f3\u14a9\13\u00f3\3\u00f3\3\u00f3\3\u00f3\5\u00f3\u14ae"+ + "\n\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3"+ + "\3\u00f3\3\u00f3\7\u00f3\u14ba\n\u00f3\f\u00f3\16\u00f3\u14bd\13\u00f3"+ + "\3\u00f3\3\u00f3\5\u00f3\u14c1\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14c5\n"+ + "\u00f3\3\u00f3\3\u00f3\5\u00f3\u14c9\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14cd"+ + "\n\u00f3\3\u00f3\3\u00f3\5\u00f3\u14d1\n\u00f3\3\u00f3\5\u00f3\u14d4\n"+ + "\u00f3\7\u00f3\u14d6\n\u00f3\f\u00f3\16\u00f3\u14d9\13\u00f3\3\u00f4\5"+ + "\u00f4\u14dc\n\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\7\u00f4\u14e2\n\u00f4"+ + "\f\u00f4\16\u00f4\u14e5\13\u00f4\5\u00f4\u14e7\n\u00f4\3\u00f4\5\u00f4"+ + "\u14ea\n\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\3\u00f4\5\u00f4\u14f1\n"+ + "\u00f4\3\u00f5\5\u00f5\u14f4\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u14f9"+ + "\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u14fe\n\u00f5\3\u00f5\3\u00f5"+ + "\3\u00f5\5\u00f5\u1503\n\u00f5\3\u00f5\3\u00f5\3\u00f5\5\u00f5\u1508\n"+ + "\u00f5\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\3\u00f6\7\u00f6"+ + "\u1511\n\u00f6\f\u00f6\16\u00f6\u1514\13\u00f6\3\u00f6\3\u00f6\5\u00f6"+ + "\u1518\n\u00f6\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7"+ + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\5\u00f7\u1526\n\u00f7\3\u00f7"+ + "\3\u00f7\3\u00f7\3\u00f7\3\u00f7\3\u00f7\7\u00f7\u152e\n\u00f7\f\u00f7"+ + "\16\u00f7\u1531\13\u00f7\3\u00f8\3\u00f8\5\u00f8\u1535\n\u00f8\3\u00f8"+ + "\5\u00f8\u1538\n\u00f8\3\u00f8\3\u00f8\5\u00f8\u153c\n\u00f8\3\u00f8\5"+ + "\u00f8\u153f\n\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\3\u00f8\5\u00f8\u1546"+ + "\n\u00f8\3\u00f8\5\u00f8\u1549\n\u00f8\3\u00f8\3\u00f8\5\u00f8\u154d\n"+ + "\u00f8\3\u00f9\3\u00f9\3\u00f9\3\u00fa\6\u00fa\u1553\n\u00fa\r\u00fa\16"+ + "\u00fa\u1554\3\u00fb\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u155c\n\u00fb"+ + "\3\u00fb\3\u00fb\3\u00fb\3\u00fb\5\u00fb\u1562\n\u00fb\3\u00fc\3\u00fc"+ + "\3\u00fc\3\u00fc\3\u00fc\5\u00fc\u1569\n\u00fc\3\u00fc\5\u00fc\u156c\n"+ + "\u00fc\3\u00fc\5\u00fc\u156f\n\u00fc\3\u00fc\3\u00fc\5\u00fc\u1573\n\u00fc"+ + "\3\u00fd\3\u00fd\5\u00fd\u1577\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\5\u00fd\u157f\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\5\u00fd\u1590\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd\u159d"+ + "\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd"+ + "\5\u00fd\u15a7\n\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd"+ + "\u15ae\n\u00fd\3\u00fd\3\u00fd\3\u00fd\5\u00fd\u15b3\n\u00fd\3\u00fd\3"+ + "\u00fd\3\u00fd\5\u00fd\u15b8\n\u00fd\5\u00fd\u15ba\n\u00fd\3\u00fd\5\u00fd"+ + "\u15bd\n\u00fd\3\u00fd\5\u00fd\u15c0\n\u00fd\3\u00fd\3\u00fd\5\u00fd\u15c4"+ + "\n\u00fd\3\u00fe\3\u00fe\3\u00fe\3\u00fe\5\u00fe\u15ca\n\u00fe\3\u00ff"+ + "\3\u00ff\3\u00ff\7\u00ff\u15cf\n\u00ff\f\u00ff\16\u00ff\u15d2\13\u00ff"+ + "\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100\3\u0100"+ + "\3\u0100\3\u0100\5\u0100\u15df\n\u0100\3\u0101\3\u0101\3\u0102\3\u0102"+ + "\3\u0102\3\u0102\3\u0102\3\u0102\5\u0102\u15e9\n\u0102\3\u0102\3\u0102"+ + "\3\u0102\7\u0102\u15ee\n\u0102\f\u0102\16\u0102\u15f1\13\u0102\3\u0103"+ + "\3\u0103\3\u0104\3\u0104\3\u0105\3\u0105\3\u0106\3\u0106\3\u0107\3\u0107"+ + "\3\u0108\3\u0108\3\u0109\3\u0109\3\u010a\3\u010a\3\u010a\2\7\u01b2\u01b4"+ + "\u01e4\u01ec\u0202\u010b\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&("+ + "*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084"+ + "\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c"+ + "\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4"+ + "\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc"+ + "\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4"+ + "\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc"+ + "\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114"+ + "\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c"+ + "\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144"+ + "\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c"+ + "\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174"+ + "\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c"+ + "\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4"+ + "\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc"+ + "\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4"+ + "\u01d6\u01d8\u01da\u01dc\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec"+ + "\u01ee\u01f0\u01f2\u01f4\u01f6\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204"+ + "\u0206\u0208\u020a\u020c\u020e\u0210\u0212\2\64\4\2\u00be\u00be\u0209"+ + "\u0209\4\2>>\u01dc\u01dc\4\2\26\26\u01d9\u01d9\6\2\u00d8\u00d8\u00da\u00da"+ + "\u0145\u0145\u01a9\u01a9\5\2\r\r\u00be\u00be\u0209\u0209\4\2\u0249\u0249"+ + "\u0318\u0318\4\2\u010b\u010b\u027e\u027e\3\2\u02b0\u02b1\4\2\u00c7\u00c7"+ + "\u0263\u0263\4\2\u0174\u0174\u0309\u0309\7\2\22\22\u00a5\u00a5\u0118\u0118"+ + "\u0200\u0200\u026b\u026b\6\2\u00a5\u00a5\u0118\u0118\u0200\u0200\u026b"+ + "\u026b\4\2\24\24\u011b\u011b\4\2\u023d\u023d\u023f\u023f\4\2??\u013c\u013c"+ + "\7\2\22\22\u01aa\u01aa\u0204\u0204\u023d\u023d\u023f\u023f\4\2\u0237\u0237"+ + "\u026e\u026e\4\2\22\22\u0306\u0306\4\2\u00ee\u00ee\u010b\u010b\7\2\u0094"+ + "\u0094\u010e\u010e\u01f5\u01f5\u0237\u0237\u0239\u0239\4\2\u024d\u024d"+ + "\u028b\u028b\5\2\u023d\u023d\u023f\u023f\u0344\u0344\4\2\u013c\u013c\u0207"+ + "\u0207\4\2\u00a1\u00a1\u0107\u0107\4\2vv\u01db\u01db\7\2\30\30\u00b6\u00b6"+ + "\u00ed\u00ed\u00ef\u00ef\u0280\u0280\4\2\u0085\u0085\u01e9\u01e9\7\2\30"+ + "\30\67\67||\u0248\u0248\u0280\u0280\6\2\u028d\u028d\u02df\u02df\u02f0"+ + "\u02f0\u02f8\u02f8\4\2\u01be\u01be\u01f1\u01f1\5\2\u00cd\u00cd\u011e\u011e"+ + "\u0264\u0264\4\2\22\22\u00ba\u00ba\4\2\u00e1\u00e1\u012f\u012f\4\2\u01ee"+ + "\u01ee\u01f1\u01f1\4\2\u00e1\u00e1\u0168\u0168\3\2\u02fc\u02fc\6\2\u0313"+ + "\u0313\u0315\u0315\u032e\u032e\u0334\u0334\4\2\u0338\u0338\u033b\u033b"+ + "\4\2\22\22\u016f\u016f\4\2\u0317\u0317\u0332\u0333\5\2\u02fe\u02fe\u032f"+ + "\u032f\u033a\u033a\4\2\u032e\u032e\u0334\u0334\16\2\31\31\u016f\u016f"+ + "\u0189\u0189\u030e\u0312\u0319\u0319\u031c\u0324\u0327\u0328\u032a\u032d"+ + "\u0330\u0331\u0335\u0337\u0339\u0339\u033b\u0342\7\2\u0316\u0316\u0318"+ + "\u0318\u031a\u031b\u0325\u0326\u0329\u0329\6\2\u010b\u010b\u0115\u0115"+ + "\u018e\u018e\u027e\u027e\4\2\u0288\u0288\u028a\u028a\4\2\u0305\u0306\u0309"+ + "\u030a\3\2\u02be\u02c3\4\2\36\36\u00ad\u00ado\2\3\3\6\20\23\26\32\33\37"+ + "!#&(.\60\61\63\64\66\668?BORY\\_afhilnp{}\177\u0084\u0087\u0089\u008a"+ + "\u008e\u008e\u0090\u009c\u009e\u009e\u00a1\u00a8\u00aa\u00ac\u00ae\u00af"+ + "\u00b2\u00b5\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c6\u00c8\u00ca\u00cc"+ + "\u00ce\u00d3\u00d5\u00d7\u00d9\u00db\u00df\u00e4\u00e6\u00e6\u00e8\u00ec"+ + "\u00f0\u00f8\u00fa\u00fb\u00fd\u00fe\u0100\u0105\u0107\u010a\u010c\u010f"+ + "\u0111\u0111\u0115\u011d\u011f\u0120\u0122\u0122\u0124\u0124\u0127\u012a"+ + "\u012d\u012f\u0132\u0134\u0136\u0136\u0139\u013c\u013f\u0144\u0146\u0146"+ + "\u0148\u0148\u014a\u0158\u015a\u0162\u0164\u0169\u016c\u016e\u0170\u0171"+ + "\u0173\u0173\u0175\u017e\u0180\u0181\u0184\u0184\u0186\u0188\u018b\u018e"+ + "\u0190\u0191\u0193\u019d\u01a0\u01a7\u01a9\u01a9\u01ab\u01ac\u01ae\u01b0"+ + "\u01b3\u01b3\u01b5\u01b5\u01b7\u01bb\u01bd\u01c2\u01c4\u01c6\u01c8\u01cd"+ + "\u01cf\u01d8\u01da\u01e2\u01e4\u01ff\u0201\u0207\u0209\u020d\u020f\u0210"+ + "\u0212\u0212\u0214\u022f\u0231\u0231\u0233\u0234\u0236\u0238\u023a\u023a"+ + "\u023c\u023f\u0243\u0247\u024b\u024b\u024d\u0263\u0266\u026d\u026f\u0272"+ + "\u0274\u0275\u0277\u027c\u027f\u027f\u0281\u0282\u0284\u0284\u0286\u0286"+ + "\u0289\u028c\u028e\u028e\u0290\u0290\u02f0\u02f0\2\u19b8\2\u0214\3\2\2"+ + "\2\4\u0255\3\2\2\2\6\u0257\3\2\2\2\b\u0281\3\2\2\2\n\u02a1\3\2\2\2\f\u02be"+ + "\3\2\2\2\16\u02d5\3\2\2\2\20\u02d7\3\2\2\2\22\u02d9\3\2\2\2\24\u0327\3"+ + "\2\2\2\26\u034a\3\2\2\2\30\u035b\3\2\2\2\32\u035d\3\2\2\2\34\u040b\3\2"+ + "\2\2\36\u040d\3\2\2\2 \u0453\3\2\2\2\"\u0455\3\2\2\2$\u046c\3\2\2\2&\u04b4"+ + "\3\2\2\2(\u04cd\3\2\2\2*\u04cf\3\2\2\2,\u04da\3\2\2\2.\u04dc\3\2\2\2\60"+ + "\u04ff\3\2\2\2\62\u0501\3\2\2\2\64\u051e\3\2\2\2\66\u0554\3\2\2\28\u056f"+ + "\3\2\2\2:\u05bf\3\2\2\2<\u05c1\3\2\2\2>\u05db\3\2\2\2@\u05dd\3\2\2\2B"+ + "\u05e6\3\2\2\2D\u0617\3\2\2\2F\u0631\3\2\2\2H\u0672\3\2\2\2J\u0682\3\2"+ + "\2\2L\u0684\3\2\2\2N\u06a7\3\2\2\2P\u0704\3\2\2\2R\u0706\3\2\2\2T\u0708"+ + "\3\2\2\2V\u071c\3\2\2\2X\u0731\3\2\2\2Z\u0733\3\2\2\2\\\u0735\3\2\2\2"+ + "^\u0737\3\2\2\2`\u0743\3\2\2\2b\u0745\3\2\2\2d\u0750\3\2\2\2f\u0752\3"+ + "\2\2\2h\u0754\3\2\2\2j\u0756\3\2\2\2l\u0758\3\2\2\2n\u075a\3\2\2\2p\u0783"+ + "\3\2\2\2r\u0785\3\2\2\2t\u08a8\3\2\2\2v\u08aa\3\2\2\2x\u08d8\3\2\2\2z"+ + "\u08da\3\2\2\2|\u08f9\3\2\2\2~\u08fb\3\2\2\2\u0080\u0908\3\2\2\2\u0082"+ + "\u093e\3\2\2\2\u0084\u094a\3\2\2\2\u0086\u095b\3\2\2\2\u0088\u096e\3\2"+ + "\2\2\u008a\u097e\3\2\2\2\u008c\u0987\3\2\2\2\u008e\u09a2\3\2\2\2\u0090"+ + "\u09c7\3\2\2\2\u0092\u09cf\3\2\2\2\u0094\u09fd\3\2\2\2\u0096\u0a3c\3\2"+ + "\2\2\u0098\u0a3e\3\2\2\2\u009a\u0a5d\3\2\2\2\u009c\u0ab0\3\2\2\2\u009e"+ + "\u0ab2\3\2\2\2\u00a0\u0acb\3\2\2\2\u00a2\u0ad2\3\2\2\2\u00a4\u0aee\3\2"+ + "\2\2\u00a6\u0b21\3\2\2\2\u00a8\u0b23\3\2\2\2\u00aa\u0b5d\3\2\2\2\u00ac"+ + "\u0b5f\3\2\2\2\u00ae\u0b99\3\2\2\2\u00b0\u0b9b\3\2\2\2\u00b2\u0b9d\3\2"+ + "\2\2\u00b4\u0b9f\3\2\2\2\u00b6\u0ba1\3\2\2\2\u00b8\u0ba3\3\2\2\2\u00ba"+ + "\u0ba5\3\2\2\2\u00bc\u0ba7\3\2\2\2\u00be\u0ba9\3\2\2\2\u00c0\u0bab\3\2"+ + "\2\2\u00c2\u0bad\3\2\2\2\u00c4\u0baf\3\2\2\2\u00c6\u0bb1\3\2\2\2\u00c8"+ + "\u0bb3\3\2\2\2\u00ca\u0bb5\3\2\2\2\u00cc\u0bb7\3\2\2\2\u00ce\u0bde\3\2"+ + "\2\2\u00d0\u0be0\3\2\2\2\u00d2\u0be3\3\2\2\2\u00d4\u0c02\3\2\2\2\u00d6"+ + "\u0c2e\3\2\2\2\u00d8\u0c30\3\2\2\2\u00da\u0c3b\3\2\2\2\u00dc\u0c46\3\2"+ + "\2\2\u00de\u0c54\3\2\2\2\u00e0\u0c5e\3\2\2\2\u00e2\u0c68\3\2\2\2\u00e4"+ + "\u0c70\3\2\2\2\u00e6\u0c7a\3\2\2\2\u00e8\u0c85\3\2\2\2\u00ea\u0c8f\3\2"+ + "\2\2\u00ec\u0c9b\3\2\2\2\u00ee\u0ca6\3\2\2\2\u00f0\u0cb0\3\2\2\2\u00f2"+ + "\u0cb8\3\2\2\2\u00f4\u0cc5\3\2\2\2\u00f6\u0cd2\3\2\2\2\u00f8\u0cdd\3\2"+ + "\2\2\u00fa\u0cdf\3\2\2\2\u00fc\u0cec\3\2\2\2\u00fe\u0cf9\3\2\2\2\u0100"+ + "\u0d00\3\2\2\2\u0102\u0d0c\3\2\2\2\u0104\u0d16\3\2\2\2\u0106\u0d1e\3\2"+ + "\2\2\u0108\u0d2a\3\2\2\2\u010a\u0d34\3\2\2\2\u010c\u0d3e\3\2\2\2\u010e"+ + "\u0d48\3\2\2\2\u0110\u0d50\3\2\2\2\u0112\u0d5a\3\2\2\2\u0114\u0d64\3\2"+ + "\2\2\u0116\u0d6c\3\2\2\2\u0118\u0d78\3\2\2\2\u011a\u0d84\3\2\2\2\u011c"+ + "\u0d90\3\2\2\2\u011e\u0d9c\3\2\2\2\u0120\u0da8\3\2\2\2\u0122\u0db4\3\2"+ + "\2\2\u0124\u0dbe\3\2\2\2\u0126\u0dc6\3\2\2\2\u0128\u0dd8\3\2\2\2\u012a"+ + "\u0de2\3\2\2\2\u012c\u0dfa\3\2\2\2\u012e\u0e07\3\2\2\2\u0130\u0e09\3\2"+ + "\2\2\u0132\u0e0b\3\2\2\2\u0134\u0e0e\3\2\2\2\u0136\u0e4a\3\2\2\2\u0138"+ + "\u0e4d\3\2\2\2\u013a\u0e4f\3\2\2\2\u013c\u0e73\3\2\2\2\u013e\u0e8f\3\2"+ + "\2\2\u0140\u0e95\3\2\2\2\u0142\u0ea5\3\2\2\2\u0144\u0ea9\3\2\2\2\u0146"+ + "\u0ec2\3\2\2\2\u0148\u0ec4\3\2\2\2\u014a\u0ecd\3\2\2\2\u014c\u0ed3\3\2"+ + "\2\2\u014e\u0ed8\3\2\2\2\u0150\u0eda\3\2\2\2\u0152\u0ede\3\2\2\2\u0154"+ + "\u0ee2\3\2\2\2\u0156\u0eec\3\2\2\2\u0158\u0eef\3\2\2\2\u015a\u0f32\3\2"+ + "\2\2\u015c\u0f6f\3\2\2\2\u015e\u0fb3\3\2\2\2\u0160\u0fbf\3\2\2\2\u0162"+ + "\u0fe6\3\2\2\2\u0164\u0fe8\3\2\2\2\u0166\u0ffb\3\2\2\2\u0168\u0ffd\3\2"+ + "\2\2\u016a\u1012\3\2\2\2\u016c\u1014\3\2\2\2\u016e\u1029\3\2\2\2\u0170"+ + "\u102b\3\2\2\2\u0172\u1032\3\2\2\2\u0174\u104b\3\2\2\2\u0176\u1051\3\2"+ + "\2\2\u0178\u1070\3\2\2\2\u017a\u1072\3\2\2\2\u017c\u10a9\3\2\2\2\u017e"+ + "\u10ac\3\2\2\2\u0180\u10d4\3\2\2\2\u0182\u10d8\3\2\2\2\u0184\u10e1\3\2"+ + "\2\2\u0186\u10e4\3\2\2\2\u0188\u1107\3\2\2\2\u018a\u1109\3\2\2\2\u018c"+ + "\u1114\3\2\2\2\u018e\u1125\3\2\2\2\u0190\u113d\3\2\2\2\u0192\u1149\3\2"+ + "\2\2\u0194\u114b\3\2\2\2\u0196\u114d\3\2\2\2\u0198\u1157\3\2\2\2\u019a"+ + "\u1165\3\2\2\2\u019c\u1167\3\2\2\2\u019e\u116e\3\2\2\2\u01a0\u1185\3\2"+ + "\2\2\u01a2\u1191\3\2\2\2\u01a4\u11a6\3\2\2\2\u01a6\u11ac\3\2\2\2\u01a8"+ + "\u11b1\3\2\2\2\u01aa\u11b9\3\2\2\2\u01ac\u11d6\3\2\2\2\u01ae\u11e7\3\2"+ + "\2\2\u01b0\u11e9\3\2\2\2\u01b2\u1236\3\2\2\2\u01b4\u12a3\3\2\2\2\u01b6"+ + "\u12d1\3\2\2\2\u01b8\u12d3\3\2\2\2\u01ba\u12df\3\2\2\2\u01bc\u12f3\3\2"+ + "\2\2\u01be\u12f5\3\2\2\2\u01c0\u12fd\3\2\2\2\u01c2\u1304\3\2\2\2\u01c4"+ + "\u139c\3\2\2\2\u01c6\u139e\3\2\2\2\u01c8\u13a4\3\2\2\2\u01ca\u13e5\3\2"+ + "\2\2\u01cc\u13e9\3\2\2\2\u01ce\u13eb\3\2\2\2\u01d0\u13f3\3\2\2\2\u01d2"+ + "\u13fb\3\2\2\2\u01d4\u1400\3\2\2\2\u01d6\u1408\3\2\2\2\u01d8\u140c\3\2"+ + "\2\2\u01da\u1418\3\2\2\2\u01dc\u1422\3\2\2\2\u01de\u1424\3\2\2\2\u01e0"+ + "\u144a\3\2\2\2\u01e2\u144c\3\2\2\2\u01e4\u14c4\3\2\2\2\u01e6\u14f0\3\2"+ + "\2\2\u01e8\u1507\3\2\2\2\u01ea\u1517\3\2\2\2\u01ec\u1525\3\2\2\2\u01ee"+ + "\u154c\3\2\2\2\u01f0\u154e\3\2\2\2\u01f2\u1552\3\2\2\2\u01f4\u155b\3\2"+ + "\2\2\u01f6\u1568\3\2\2\2\u01f8\u1576\3\2\2\2\u01fa\u15c9\3\2\2\2\u01fc"+ + "\u15cb\3\2\2\2\u01fe\u15de\3\2\2\2\u0200\u15e0\3\2\2\2\u0202\u15e8\3\2"+ + "\2\2\u0204\u15f2\3\2\2\2\u0206\u15f4\3\2\2\2\u0208\u15f6\3\2\2\2\u020a"+ + "\u15f8\3\2\2\2\u020c\u15fa\3\2\2\2\u020e\u15fc\3\2\2\2\u0210\u15fe\3\2"+ + "\2\2\u0212\u1600\3\2\2\2\u0214\u021d\5\4\3\2\u0215\u0216\7\u0343\2\2\u0216"+ + "\u0218\5\4\3\2\u0217\u0215\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u0217\3\2"+ + "\2\2\u0219\u021a\3\2\2\2\u021a\u021b\3\2\2\2\u021b\u021c\7\u0343\2\2\u021c"+ + "\u021e\3\2\2\2\u021d\u0217\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u021f\3\2"+ + "\2\2\u021f\u0220\7\2\2\3\u0220\3\3\2\2\2\u0221\u0256\5\6\4\2\u0222\u0256"+ + "\5\b\5\2\u0223\u0256\5b\62\2\u0224\u0256\5p9\2\u0225\u0256\5d\63\2\u0226"+ + "\u0256\5f\64\2\u0227\u0256\5h\65\2\u0228\u0256\5j\66\2\u0229\u0256\5l"+ + "\67\2\u022a\u0256\5n8\2\u022b\u0256\5\u00ceh\2\u022c\u0256\5\u00d0i\2"+ + "\u022d\u0256\5\u00d2j\2\u022e\u0256\5\u00d4k\2\u022f\u0256\5\u00d6l\2"+ + "\u0230\u0256\5\u012a\u0096\2\u0231\u0256\5\u012c\u0097\2\u0232\u0256\5"+ + "\u012e\u0098\2\u0233\u0256\5\u0130\u0099\2\u0234\u0256\5\u0132\u009a\2"+ + "\u0235\u0256\5\u0134\u009b\2\u0236\u0256\5\u0136\u009c\2\u0237\u0256\5"+ + "\u0138\u009d\2\u0238\u0256\5\u013a\u009e\2\u0239\u0256\5\u013c\u009f\2"+ + "\u023a\u0256\5\u013e\u00a0\2\u023b\u0256\5\u0140\u00a1\2\u023c\u0256\5"+ + "\u0142\u00a2\2\u023d\u0256\5\u0144\u00a3\2\u023e\u0256\5\u0146\u00a4\2"+ + "\u023f\u0256\5\u0148\u00a5\2\u0240\u0256\5\u014a\u00a6\2\u0241\u0256\5"+ + "\u014c\u00a7\2\u0242\u0256\5\u014e\u00a8\2\u0243\u0256\5\u0150\u00a9\2"+ + "\u0244\u0256\5\u0152\u00aa\2\u0245\u0256\5\u0154\u00ab\2\u0246\u0256\5"+ + "\u0156\u00ac\2\u0247\u0256\5\u0158\u00ad\2\u0248\u0256\5\u015a\u00ae\2"+ + "\u0249\u0256\5\u015c\u00af\2\u024a\u0256\5\u0162\u00b2\2\u024b\u0256\5"+ + "\u0164\u00b3\2\u024c\u0256\5\u0166\u00b4\2\u024d\u0256\5\u0168\u00b5\2"+ + "\u024e\u0256\5\u016e\u00b8\2\u024f\u0256\5\u0170\u00b9\2\u0250\u0256\5"+ + "\u0172\u00ba\2\u0251\u0256\5\u0174\u00bb\2\u0252\u0256\5\u0176\u00bc\2"+ + "\u0253\u0256\5\u017c\u00bf\2\u0254\u0256\5\u017e\u00c0\2\u0255\u0221\3"+ + "\2\2\2\u0255\u0222\3\2\2\2\u0255\u0223\3\2\2\2\u0255\u0224\3\2\2\2\u0255"+ + "\u0225\3\2\2\2\u0255\u0226\3\2\2\2\u0255\u0227\3\2\2\2\u0255\u0228\3\2"+ + "\2\2\u0255\u0229\3\2\2\2\u0255\u022a\3\2\2\2\u0255\u022b\3\2\2\2\u0255"+ + "\u022c\3\2\2\2\u0255\u022d\3\2\2\2\u0255\u022e\3\2\2\2\u0255\u022f\3\2"+ + "\2\2\u0255\u0230\3\2\2\2\u0255\u0231\3\2\2\2\u0255\u0232\3\2\2\2\u0255"+ + "\u0233\3\2\2\2\u0255\u0234\3\2\2\2\u0255\u0235\3\2\2\2\u0255\u0236\3\2"+ + "\2\2\u0255\u0237\3\2\2\2\u0255\u0238\3\2\2\2\u0255\u0239\3\2\2\2\u0255"+ + "\u023a\3\2\2\2\u0255\u023b\3\2\2\2\u0255\u023c\3\2\2\2\u0255\u023d\3\2"+ + "\2\2\u0255\u023e\3\2\2\2\u0255\u023f\3\2\2\2\u0255\u0240\3\2\2\2\u0255"+ + "\u0241\3\2\2\2\u0255\u0242\3\2\2\2\u0255\u0243\3\2\2\2\u0255\u0244\3\2"+ + "\2\2\u0255\u0245\3\2\2\2\u0255\u0246\3\2\2\2\u0255\u0247\3\2\2\2\u0255"+ + "\u0248\3\2\2\2\u0255\u0249\3\2\2\2\u0255\u024a\3\2\2\2\u0255\u024b\3\2"+ + "\2\2\u0255\u024c\3\2\2\2\u0255\u024d\3\2\2\2\u0255\u024e\3\2\2\2\u0255"+ + "\u024f\3\2\2\2\u0255\u0250\3\2\2\2\u0255\u0251\3\2\2\2\u0255\u0252\3\2"+ + "\2\2\u0255\u0253\3\2\2\2\u0255\u0254\3\2\2\2\u0256\5\3\2\2\2\u0257\u0258"+ + "\5\u0202\u0102\2\u0258\7\3\2\2\2\u0259\u0282\5\n\6\2\u025a\u0282\5\f\7"+ + "\2\u025b\u0282\5\16\b\2\u025c\u0282\5\20\t\2\u025d\u0282\5\22\n\2\u025e"+ + "\u0282\5\24\13\2\u025f\u0282\5\26\f\2\u0260\u0282\5\30\r\2\u0261\u0282"+ + "\5\32\16\2\u0262\u0282\5 \21\2\u0263\u0282\5\"\22\2\u0264\u0282\5$\23"+ + "\2\u0265\u0282\5&\24\2\u0266\u0282\5(\25\2\u0267\u0282\5*\26\2\u0268\u0282"+ + "\5,\27\2\u0269\u0282\5.\30\2\u026a\u0282\5\60\31\2\u026b\u0282\5\62\32"+ + "\2\u026c\u0282\5\64\33\2\u026d\u0282\5\66\34\2\u026e\u0282\5:\36\2\u026f"+ + "\u0282\5<\37\2\u0270\u0282\5> \2\u0271\u0282\5@!\2\u0272\u0282\5D#\2\u0273"+ + "\u0282\5F$\2\u0274\u0282\5H%\2\u0275\u0282\5J&\2\u0276\u0282\5L\'\2\u0277"+ + "\u0282\5N(\2\u0278\u0282\5P)\2\u0279\u0282\5R*\2\u027a\u0282\5T+\2\u027b"+ + "\u0282\5V,\2\u027c\u0282\5X-\2\u027d\u0282\5Z.\2\u027e\u0282\5\\/\2\u027f"+ + "\u0282\5^\60\2\u0280\u0282\5`\61\2\u0281\u0259\3\2\2\2\u0281\u025a\3\2"+ + "\2\2\u0281\u025b\3\2\2\2\u0281\u025c\3\2\2\2\u0281\u025d\3\2\2\2\u0281"+ + "\u025e\3\2\2\2\u0281\u025f\3\2\2\2\u0281\u0260\3\2\2\2\u0281\u0261\3\2"+ + "\2\2\u0281\u0262\3\2\2\2\u0281\u0263\3\2\2\2\u0281\u0264\3\2\2\2\u0281"+ + "\u0265\3\2\2\2\u0281\u0266\3\2\2\2\u0281\u0267\3\2\2\2\u0281\u0268\3\2"+ + "\2\2\u0281\u0269\3\2\2\2\u0281\u026a\3\2\2\2\u0281\u026b\3\2\2\2\u0281"+ + "\u026c\3\2\2\2\u0281\u026d\3\2\2\2\u0281\u026e\3\2\2\2\u0281\u026f\3\2"+ + "\2\2\u0281\u0270\3\2\2\2\u0281\u0271\3\2\2\2\u0281\u0272\3\2\2\2\u0281"+ + "\u0273\3\2\2\2\u0281\u0274\3\2\2\2\u0281\u0275\3\2\2\2\u0281\u0276\3\2"+ + "\2\2\u0281\u0277\3\2\2\2\u0281\u0278\3\2\2\2\u0281\u0279\3\2\2\2\u0281"+ + "\u027a\3\2\2\2\u0281\u027b\3\2\2\2\u0281\u027c\3\2\2\2\u0281\u027d\3\2"+ + "\2\2\u0281\u027e\3\2\2\2\u0281\u027f\3\2\2\2\u0281\u0280\3\2\2\2\u0282"+ + "\t\3\2\2\2\u0283\u0284\7\25\2\2\u0284\u0285\7\20\2\2\u0285\u0286\5\u0202"+ + "\u0102\2\u0286\u0287\7\u02ff\2\2\u0287\u0288\5\u01ee\u00f8\2\u0288\u0289"+ + "\7\u0300\2\2\u0289\u028a\7\u01d6\2\2\u028a\u028b\7\u0249\2\2\u028b\u028c"+ + "\5\u0202\u0102\2\u028c\u02a2\3\2\2\2\u028d\u028e\7\25\2\2\u028e\u028f"+ + "\7\20\2\2\u028f\u0290\5\u0202\u0102\2\u0290\u0291\7\u02ff\2\2\u0291\u0292"+ + "\5\u01ee\u00f8\2\u0292\u0293\7\u0300\2\2\u0293\u0294\7\u0195\2\2\u0294"+ + "\u0295\7\u0249\2\2\u0295\u0296\5\u01fa\u00fe\2\u0296\u02a2\3\2\2\2\u0297"+ + "\u0298\7\25\2\2\u0298\u0299\7\20\2\2\u0299\u029a\5\u0202\u0102\2\u029a"+ + "\u029b\7\u02ff\2\2\u029b\u029c\5\u01ee\u00f8\2\u029c\u029d\7\u0300\2\2"+ + "\u029d\u029e\7\u0209\2\2\u029e\u029f\7\u01f5\2\2\u029f\u02a0\5\u0202\u0102"+ + "\2\u02a0\u02a2\3\2\2\2\u02a1\u0283\3\2\2\2\u02a1\u028d\3\2\2\2\u02a1\u0297"+ + "\3\2\2\2\u02a2\13\3\2\2\2\u02a3\u02a4\7\25\2\2\u02a4\u02a5\7[\2\2\u02a5"+ + "\u02a6\5\u01cc\u00e7\2\u02a6\u02a7\7\u01c9\2\2\u02a7\u02a8\7\u02b8\2\2"+ + "\u02a8\u02bf\3\2\2\2\u02a9\u02aa\7\25\2\2\u02aa\u02ab\7[\2\2\u02ab\u02ac"+ + "\5\u01cc\u00e7\2\u02ac\u02ad\7\u01d6\2\2\u02ad\u02ae\7\u0249\2\2\u02ae"+ + "\u02af\5\u0202\u0102\2\u02af\u02bf\3\2\2\2\u02b0\u02b1\7\25\2\2\u02b1"+ + "\u02b2\7[\2\2\u02b2\u02b3\5\u01cc\u00e7\2\u02b3\u02b4\7\u0195\2\2\u02b4"+ + "\u02b5\7\u0249\2\2\u02b5\u02b6\5\u01fa\u00fe\2\u02b6\u02bf\3\2\2\2\u02b7"+ + "\u02b8\7\25\2\2\u02b8\u02b9\7[\2\2\u02b9\u02ba\5\u01cc\u00e7\2\u02ba\u02bb"+ + "\7\u0209\2\2\u02bb\u02bc\7\u01f5\2\2\u02bc\u02bd\5\u0202\u0102\2\u02bd"+ + "\u02bf\3\2\2\2\u02be\u02a3\3\2\2\2\u02be\u02a9\3\2\2\2\u02be\u02b0\3\2"+ + "\2\2\u02be\u02b7\3\2\2\2\u02bf\r\3\2\2\2\u02c0\u02c1\7\25\2\2\u02c1\u02c2"+ + "\7w\2\2\u02c2\u02c3\5\u0202\u0102\2\u02c3\u02c4\7\u01d6\2\2\u02c4\u02c5"+ + "\7\u0249\2\2\u02c5\u02c6\5\u0202\u0102\2\u02c6\u02d6\3\2\2\2\u02c7\u02c8"+ + "\7\25\2\2\u02c8\u02c9\7w\2\2\u02c9\u02ca\5\u0202\u0102\2\u02ca\u02cb\7"+ + "\u0195\2\2\u02cb\u02cc\7\u0249\2\2\u02cc\u02cd\5\u01fa\u00fe\2\u02cd\u02d6"+ + "\3\2\2\2\u02ce\u02cf\7\25\2\2\u02cf\u02d0\7w\2\2\u02d0\u02d1\5\u0202\u0102"+ + "\2\u02d1\u02d2\7\u0209\2\2\u02d2\u02d3\7\u01f5\2\2\u02d3\u02d4\5\u0202"+ + "\u0102\2\u02d4\u02d6\3\2\2\2\u02d5\u02c0\3\2\2\2\u02d5\u02c7\3\2\2\2\u02d5"+ + "\u02ce\3\2\2\2\u02d6\17\3\2\2\2\u02d7\u02d8\5\u0206\u0104\2\u02d8\21\3"+ + "\2\2\2\u02d9\u02da\5\u0206\u0104\2\u02da\23\3\2\2\2\u02db\u02dc\7\25\2"+ + "\2\u02dc\u02dd\7\u00bc\2\2\u02dd\u02e3\5\u0202\u0102\2\u02de\u02df\7\u0209"+ + "\2\2\u02df\u02e0\7\u009d\2\2\u02e0\u02e4\5\u01b2\u00da\2\u02e1\u02e2\7"+ + "\u00be\2\2\u02e2\u02e4\7\u009d\2\2\u02e3\u02de\3\2\2\2\u02e3\u02e1\3\2"+ + "\2\2\u02e4\u0328\3\2\2\2\u02e5\u02e6\7\25\2\2\u02e6\u02e7\7\u00bc\2\2"+ + "\u02e7\u02e8\5\u0202\u0102\2\u02e8\u02e9\t\2\2\2\u02e9\u02ea\7\u016f\2"+ + "\2\u02ea\u02eb\7\u0174\2\2\u02eb\u0328\3\2\2\2\u02ec\u02ed\7\25\2\2\u02ed"+ + "\u02ee\7\u00bc\2\2\u02ee\u02ef\5\u0202\u0102\2\u02ef\u02f0\7\r\2\2\u02f0"+ + "\u02f3\5\u0082B\2\u02f1\u02f2\7\u016f\2\2\u02f2\u02f4\7\u0275\2\2\u02f3"+ + "\u02f1\3\2\2\2\u02f3\u02f4\3\2\2\2\u02f4\u0328\3\2\2\2\u02f5\u02f6\7\25"+ + "\2\2\u02f6\u02f7\7\u00bc\2\2\u02f7\u02f8\5\u0202\u0102\2\u02f8\u02f9\7"+ + "\u00be\2\2\u02f9\u02fc\7o\2\2\u02fa\u02fb\7\u02b3\2\2\u02fb\u02fd\7\u00d5"+ + "\2\2\u02fc\u02fa\3\2\2\2\u02fc\u02fd\3\2\2\2\u02fd\u02fe\3\2\2\2\u02fe"+ + "\u0300\5\u0202\u0102\2\u02ff\u0301\t\3\2\2\u0300\u02ff\3\2\2\2\u0300\u0301"+ + "\3\2\2\2\u0301\u0328\3\2\2\2\u0302\u0303\7\25\2\2\u0303\u0304\7\u00bc"+ + "\2\2\u0304\u0305\5\u0202\u0102\2\u0305\u0306\7\u01d6\2\2\u0306\u0307\7"+ + "o\2\2\u0307\u0308\5\u0202\u0102\2\u0308\u0309\7\u0249\2\2\u0309\u030a"+ + "\5\u0202\u0102\2\u030a\u0328\3\2\2\2\u030b\u030c\7\25\2\2\u030c\u030d"+ + "\7\u00bc\2\2\u030d\u030e\5\u0202\u0102\2\u030e\u030f\7\u0276\2\2\u030f"+ + "\u0310\7o\2\2\u0310\u0311\5\u0202\u0102\2\u0311\u0328\3\2\2\2\u0312\u0313"+ + "\7\25\2\2\u0313\u0314\7\u00bc\2\2\u0314\u0315\5\u0202\u0102\2\u0315\u0316"+ + "\7\u0195\2\2\u0316\u0317\7\u0249\2\2\u0317\u0318\5\u01fa\u00fe\2\u0318"+ + "\u0328\3\2\2\2\u0319\u031a\7\25\2\2\u031a\u031b\7\u00bc\2\2\u031b\u031c"+ + "\5\u0202\u0102\2\u031c\u031d\7\u01d6\2\2\u031d\u031e\7\u0249\2\2\u031e"+ + "\u031f\5\u0202\u0102\2\u031f\u0328\3\2\2\2\u0320\u0321\7\25\2\2\u0321"+ + "\u0322\7\u00bc\2\2\u0322\u0323\5\u0202\u0102\2\u0323\u0324\7\u0209\2\2"+ + "\u0324\u0325\7\u01f5\2\2\u0325\u0326\5\u0202\u0102\2\u0326\u0328\3\2\2"+ + "\2\u0327\u02db\3\2\2\2\u0327\u02e5\3\2\2\2\u0327\u02ec\3\2\2\2\u0327\u02f5"+ + "\3\2\2\2\u0327\u0302\3\2\2\2\u0327\u030b\3\2\2\2\u0327\u0312\3\2\2\2\u0327"+ + "\u0319\3\2\2\2\u0327\u0320\3\2\2\2\u0328\25\3\2\2\2\u0329\u032a\7\25\2"+ + "\2\u032a\u032b\7\u02bb\2\2\u032b\u032c\7\u0256\2\2\u032c\u032d\5\u0202"+ + "\u0102\2\u032d\u032e\7\u00b5\2\2\u032e\u034b\3\2\2\2\u032f\u0330\7\25"+ + "\2\2\u0330\u0331\7\u02bb\2\2\u0331\u0332\7\u0256\2\2\u0332\u0333\5\u0202"+ + "\u0102\2\u0333\u0335\7\u00c5\2\2\u0334\u0336\t\4\2\2\u0335\u0334\3\2\2"+ + "\2\u0335\u0336\3\2\2\2\u0336\u034b\3\2\2\2\u0337\u0338\7\25\2\2\u0338"+ + "\u0339\7\u02bb\2\2\u0339\u033a\7\u0256\2\2\u033a\u033b\5\u0202\u0102\2"+ + "\u033b\u033c\7\u0195\2\2\u033c\u0340\7\u0249\2\2\u033d\u0341\5\u0202\u0102"+ + "\2\u033e\u0341\7\u008f\2\2\u033f\u0341\7\u0208\2\2\u0340\u033d\3\2\2\2"+ + "\u0340\u033e\3\2\2\2\u0340\u033f\3\2\2\2\u0341\u034b\3\2\2\2\u0342\u0343"+ + "\7\25\2\2\u0343\u0344\7\u02bb\2\2\u0344\u0345\7\u0256\2\2\u0345\u0346"+ + "\5\u0202\u0102\2\u0346\u0347\7\u01d6\2\2\u0347\u0348\7\u0249\2\2\u0348"+ + "\u0349\5\u0202\u0102\2\u0349\u034b\3\2\2\2\u034a\u0329\3\2\2\2\u034a\u032f"+ + "\3\2\2\2\u034a\u0337\3\2\2\2\u034a\u0342\3\2\2\2\u034b\27\3\2\2\2\u034c"+ + "\u034d\7\25\2\2\u034d\u034e\7\u00d9\2\2\u034e\u034f\5\u0202\u0102\2\u034f"+ + "\u0352\7\u026b\2\2\u0350\u0351\7\u0249\2\2\u0351\u0353\5\u0202\u0102\2"+ + "\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353\u035c\3\2\2\2\u0354\u0355"+ + "\7\25\2\2\u0355\u0356\7\u00d9\2\2\u0356\u0357\5\u0202\u0102\2\u0357\u0358"+ + "\7\u0209\2\2\u0358\u0359\7\u01f5\2\2\u0359\u035a\5\u0202\u0102\2\u035a"+ + "\u035c\3\2\2\2\u035b\u034c\3\2\2\2\u035b\u0354\3\2\2\2\u035c\31\3\2\2"+ + "\2\u035d\u035e\5\u0206\u0104\2\u035e\33\3\2\2\2\u035f\u0361\7\r\2\2\u0360"+ + "\u0362\7`\2\2\u0361\u0360\3\2\2\2\u0361\u0362\3\2\2\2\u0362\u0363\3\2"+ + "\2\2\u0363\u0364\5\u020a\u0106\2\u0364\u0367\5\u01d8\u00ed\2\u0365\u0366"+ + "\7Z\2\2\u0366\u0368\5\u0202\u0102\2\u0367\u0365\3\2\2\2\u0367\u0368\3"+ + "\2\2\2\u0368\u036a\3\2\2\2\u0369\u036b\5\u01f2\u00fa\2\u036a\u0369\3\2"+ + "\2\2\u036a\u036b\3\2\2\2\u036b\u040c\3\2\2\2\u036c\u036e\7\u00be\2\2\u036d"+ + "\u036f\7`\2\2\u036e\u036d\3\2\2\2\u036e\u036f\3\2\2\2\u036f\u0372\3\2"+ + "\2\2\u0370\u0371\7\u02b3\2\2\u0371\u0373\7\u00d5\2\2\u0372\u0370\3\2\2"+ + "\2\u0372\u0373\3\2\2\2\u0373\u0374\3\2\2\2\u0374\u0376\5\u020a\u0106\2"+ + "\u0375\u0377\t\3\2\2\u0376\u0375\3\2\2\2\u0376\u0377\3\2\2\2\u0377\u040c"+ + "\3\2\2\2\u0378\u037a\7\25\2\2\u0379\u037b\7`\2\2\u037a\u0379\3\2\2\2\u037a"+ + "\u037b\3\2\2\2\u037b\u037c\3\2\2\2\u037c\u037f\5\u020a\u0106\2\u037d\u037e"+ + "\7\u0209\2\2\u037e\u0380\7\u0093\2\2\u037f\u037d\3\2\2\2\u037f\u0380\3"+ + "\2\2\2\u0380\u0381\3\2\2\2\u0381\u0382\7\u025e\2\2\u0382\u0385\5\u01d8"+ + "\u00ed\2\u0383\u0384\7Z\2\2\u0384\u0386\5\u0202\u0102\2\u0385\u0383\3"+ + "\2\2\2\u0385\u0386\3\2\2\2\u0386\u040c\3\2\2\2\u0387\u0389\7\25\2\2\u0388"+ + "\u038a\7`\2\2\u0389\u0388\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u038b\3\2"+ + "\2\2\u038b\u038c\5\u020a\u0106\2\u038c\u038d\7\u0209\2\2\u038d\u038e\7"+ + "\u009d\2\2\u038e\u038f\5\u01b2\u00da\2\u038f\u040c\3\2\2\2\u0390\u0392"+ + "\7\25\2\2\u0391\u0393\7`\2\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2\2\2\u0393"+ + "\u0394\3\2\2\2\u0394\u0395\5\u020a\u0106\2\u0395\u0396\7\u00be\2\2\u0396"+ + "\u0397\7\u009d\2\2\u0397\u040c\3\2\2\2\u0398\u039a\7\25\2\2\u0399\u039b"+ + "\7`\2\2\u039a\u0399\3\2\2\2\u039a\u039b\3\2\2\2\u039b\u039c\3\2\2\2\u039c"+ + "\u039d\5\u020a\u0106\2\u039d\u039e\t\2\2\2\u039e\u039f\7\u016f\2\2\u039f"+ + "\u03a0\7\u0174\2\2\u03a0\u040c\3\2\2\2\u03a1\u03a3\7\25\2\2\u03a2\u03a4"+ + "\7`\2\2\u03a3\u03a2\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\3\2\2\2\u03a5"+ + "\u03a6\5\u020a\u0106\2\u03a6\u03a7\7\u0209\2\2\u03a7\u03a8\7\u0226\2\2"+ + "\u03a8\u03a9\7\u011d\2\2\u03a9\u040c\3\2\2\2\u03aa\u03ac\7\25\2\2\u03ab"+ + "\u03ad\7`\2\2\u03ac\u03ab\3\2\2\2\u03ac\u03ad\3\2\2\2\u03ad\u03ae\3\2"+ + "\2\2\u03ae\u03af\5\u020a\u0106\2\u03af\u03b0\7\u0209\2\2\u03b0\u03b1\7"+ + "\u02ff\2\2\u03b1\u03b2\5\u01d4\u00eb\2\u03b2\u03b3\7\u0300\2\2\u03b3\u040c"+ + "\3\2\2\2\u03b4\u03b6\7\25\2\2\u03b5\u03b7\7`\2\2\u03b6\u03b5\3\2\2\2\u03b6"+ + "\u03b7\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\5\u020a\u0106\2\u03b9\u03ba"+ + "\7\u01da\2\2\u03ba\u03bb\7\u02ff\2\2\u03bb\u03bc\5\u01d0\u00e9\2\u03bc"+ + "\u03bd\7\u0300\2\2\u03bd\u040c\3\2\2\2\u03be\u03c0\7\25\2\2\u03bf\u03c1"+ + "\7`\2\2\u03c0\u03bf\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2"+ + "\u03c3\5\u020a\u0106\2\u03c3\u03c4\7\u0209\2\2\u03c4\u03c5\7\u022b\2\2"+ + "\u03c5\u03c6\t\5\2\2\u03c6\u040c\3\2\2\2\u03c7\u03c9\7\25\2\2\u03c8\u03ca"+ + "\7`\2\2\u03c9\u03c8\3\2\2\2\u03c9\u03ca\3\2\2\2\u03ca\u03cb\3\2\2\2\u03cb"+ + "\u03cc\5\u020a\u0106\2\u03cc\u03ce\7\u0188\2\2\u03cd\u03cf\t\6\2\2\u03ce"+ + "\u03cd\3\2\2\2\u03ce\u03cf\3\2\2\2\u03cf\u040c\3\2\2\2\u03d0\u03d1\7\r"+ + "\2\2\u03d1\u03d4\5\u01f8\u00fd\2\u03d2\u03d3\7\u016f\2\2\u03d3\u03d5\7"+ + "\u0275\2\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u040c\3\2\2\2"+ + "\u03d6\u03d7\7\u0276\2\2\u03d7\u03d8\7o\2\2\u03d8\u040c\5\u0204\u0103"+ + "\2\u03d9\u03da\7\u00be\2\2\u03da\u03dd\7o\2\2\u03db\u03dc\7\u02b3\2\2"+ + "\u03dc\u03de\7\u00d5\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3\2\2\2\u03de"+ + "\u03df\3\2\2\2\u03df\u03e1\5\u0204\u0103\2\u03e0\u03e2\t\3\2\2\u03e1\u03e0"+ + "\3\2\2\2\u03e1\u03e2\3\2\2\2\u03e2\u040c\3\2\2\2\u03e3\u03e4\7\u00b5\2"+ + "\2\u03e4\u03e8\7\u0256\2\2\u03e5\u03e9\5\u0204\u0103\2\u03e6\u03e9\7\22"+ + "\2\2\u03e7\u03e9\7\u026e\2\2\u03e8\u03e5\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e8"+ + "\u03e7\3\2\2\2\u03e8\u03e9\3\2\2\2\u03e9\u040c\3\2\2\2\u03ea\u03eb\7\u00c5"+ + "\2\2\u03eb\u03ef\7\u0256\2\2\u03ec\u03f0\5\u0204\u0103\2\u03ed\u03f0\7"+ + "\22\2\2\u03ee\u03f0\7\u026e\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2"+ + "\2\u03ef\u03ee\3\2\2\2\u03ef\u03f0\3\2\2\2\u03f0\u040c\3\2\2\2\u03f1\u03f2"+ + "\7\u00c5\2\2\u03f2\u03f3\7\u01d9\2\2\u03f3\u03f4\7\u0256\2\2\u03f4\u040c"+ + "\5\u0204\u0103\2\u03f5\u03f6\7\u00c5\2\2\u03f6\u03f7\7\26\2\2\u03f7\u03f8"+ + "\7\u0256\2\2\u03f8\u040c\5\u0204\u0103\2\u03f9\u03fa\7\u0209\2\2\u03fa"+ + "\u03fb\7\u0288\2\2\u03fb\u040c\7\u0180\2\2\u03fc\u03fd\7\u0209\2\2\u03fd"+ + "\u03fe\7\u028a\2\2\u03fe\u040c\7\u0180\2\2\u03ff\u0400\7\u0295\2\2\u0400"+ + "\u040c\5\u0202\u0102\2\u0401\u0402\7\u0169\2\2\u0402\u0403\7\u0295\2\2"+ + "\u0403\u040c\5\u0202\u0102\2\u0404\u0405\7\u0195\2\2\u0405\u0406\7\u0249"+ + "\2\2\u0406\u040c\5\u01fa\u00fe\2\u0407\u0409\7\u0188\2\2\u0408\u040a\t"+ + "\6\2\2\u0409\u0408\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040c\3\2\2\2\u040b"+ + "\u035f\3\2\2\2\u040b\u036c\3\2\2\2\u040b\u0378\3\2\2\2\u040b\u0387\3\2"+ + "\2\2\u040b\u0390\3\2\2\2\u040b\u0398\3\2\2\2\u040b\u03a1\3\2\2\2\u040b"+ + "\u03aa\3\2\2\2\u040b\u03b4\3\2\2\2\u040b\u03be\3\2\2\2\u040b\u03c7\3\2"+ + "\2\2\u040b\u03d0\3\2\2\2\u040b\u03d6\3\2\2\2\u040b\u03d9\3\2\2\2\u040b"+ + "\u03e3\3\2\2\2\u040b\u03ea\3\2\2\2\u040b\u03f1\3\2\2\2\u040b\u03f5\3\2"+ + "\2\2\u040b\u03f9\3\2\2\2\u040b\u03fc\3\2\2\2\u040b\u03ff\3\2\2\2\u040b"+ + "\u0401\3\2\2\2\u040b\u0404\3\2\2\2\u040b\u0407\3\2\2\2\u040c\35\3\2\2"+ + "\2\u040d\u0412\5\34\17\2\u040e\u040f\7\u02f9\2\2\u040f\u0411\5\34\17\2"+ + "\u0410\u040e\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0410\3\2\2\2\u0412\u0413"+ + "\3\2\2\2\u0413\37\3\2\2\2\u0414\u0412\3\2\2\2\u0415\u0416\7\25\2\2\u0416"+ + "\u0417\7\u00e7\2\2\u0417\u041a\7\u0239\2\2\u0418\u0419\7\u02b3\2\2\u0419"+ + "\u041b\7\u00d5\2\2\u041a\u0418\3\2\2\2\u041a\u041b\3\2\2\2\u041b\u041d"+ + "\3\2\2\2\u041c\u041e\7\u0183\2\2\u041d\u041c\3\2\2\2\u041d\u041e\3\2\2"+ + "\2\u041e\u041f\3\2\2\2\u041f\u0421\5\u0202\u0102\2\u0420\u0422\7\u02fe"+ + "\2\2\u0421\u0420\3\2\2\2\u0421\u0422\3\2\2\2\u0422\u0423\3\2\2\2\u0423"+ + "\u0424\5\36\20\2\u0424\u0454\3\2\2\2\u0425\u0426\7\25\2\2\u0426\u0427"+ + "\7\u00e7\2\2\u0427\u042a\7\u0239\2\2\u0428\u0429\7\u02b3\2\2\u0429\u042b"+ + "\7\u00d5\2\2\u042a\u0428\3\2\2\2\u042a\u042b\3\2\2\2\u042b\u042d\3\2\2"+ + "\2\u042c\u042e\7\u0183\2\2\u042d\u042c\3\2\2\2\u042d\u042e\3\2\2\2\u042e"+ + "\u042f\3\2\2\2\u042f\u0431\5\u0202\u0102\2\u0430\u0432\7\u02fe\2\2\u0431"+ + "\u0430\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u0435\7\u01d6"+ + "\2\2\u0434\u0436\7`\2\2\u0435\u0434\3\2\2\2\u0435\u0436\3\2\2\2\u0436"+ + "\u0437\3\2\2\2\u0437\u0438\5\u020a\u0106\2\u0438\u0439\7\u0249\2\2\u0439"+ + "\u043a\5\u0202\u0102\2\u043a\u0454\3\2\2\2\u043b\u043c\7\25\2\2\u043c"+ + "\u043d\7\u00e7\2\2\u043d\u0440\7\u0239\2\2\u043e\u043f\7\u02b3\2\2\u043f"+ + "\u0441\7\u00d5\2\2\u0440\u043e\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442"+ + "\3\2\2\2\u0442\u0443\5\u0202\u0102\2\u0443\u0444\7\u01d6\2\2\u0444\u0445"+ + "\7\u0249\2\2\u0445\u0446\5\u0202\u0102\2\u0446\u0454\3\2\2\2\u0447\u0448"+ + "\7\25\2\2\u0448\u0449\7\u00e7\2\2\u0449\u044c\7\u0239\2\2\u044a\u044b"+ + "\7\u02b3\2\2\u044b\u044d\7\u00d5\2\2\u044c\u044a\3\2\2\2\u044c\u044d\3"+ + "\2\2\2\u044d\u044e\3\2\2\2\u044e\u044f\5\u0202\u0102\2\u044f\u0450\7\u0209"+ + "\2\2\u0450\u0451\7\u01f5\2\2\u0451\u0452\5\u0202\u0102\2\u0452\u0454\3"+ + "\2\2\2\u0453\u0415\3\2\2\2\u0453\u0425\3\2\2\2\u0453\u043b\3\2\2\2\u0453"+ + "\u0447\3\2\2\2\u0454!\3\2\2\2\u0455\u0456\5\u0206\u0104\2\u0456#\3\2\2"+ + "\2\u0457\u0458\7\25\2\2\u0458\u0459\7\u00fc\2\2\u0459\u045a\5\u01fa\u00fe"+ + "\2\u045a\u045b\7\r\2\2\u045b\u045c\7\u026e\2\2\u045c\u045d\5\u01d0\u00e9"+ + "\2\u045d\u046d\3\2\2\2\u045e\u045f\7\25\2\2\u045f\u0460\7\u00fc\2\2\u0460"+ + "\u0461\5\u01fa\u00fe\2\u0461\u0462\7\u00be\2\2\u0462\u0463\7\u026e\2\2"+ + "\u0463\u0464\5\u01d0\u00e9\2\u0464\u046d\3\2\2\2\u0465\u0466\7\25\2\2"+ + "\u0466\u0467\7\u00fc\2\2\u0467\u0468\5\u0202\u0102\2\u0468\u0469\7\u01d6"+ + "\2\2\u0469\u046a\7\u0249\2\2\u046a\u046b\5\u0202\u0102\2\u046b\u046d\3"+ + "\2\2\2\u046c\u0457\3\2\2\2\u046c\u045e\3\2\2\2\u046c\u0465\3\2\2\2\u046d"+ + "%\3\2\2\2\u046e\u046f\7\25\2\2\u046f\u0472\7\u010e\2\2\u0470\u0471\7\u02b3"+ + "\2\2\u0471\u0473\7\u00d5\2\2\u0472\u0470\3\2\2\2\u0472\u0473\3\2\2\2\u0473"+ + "\u0474\3\2\2\2\u0474\u0475\5\u0202\u0102\2\u0475\u0476\7\u01d6\2\2\u0476"+ + "\u0477\7\u0249\2\2\u0477\u0478\5\u0202\u0102\2\u0478\u04b5\3\2\2\2\u0479"+ + "\u047a\7\25\2\2\u047a\u047d\7\u010e\2\2\u047b\u047c\7\u02b3\2\2\u047c"+ + "\u047e\7\u00d5\2\2\u047d\u047b\3\2\2\2\u047d\u047e\3\2\2\2\u047e\u047f"+ + "\3\2\2\2\u047f\u0480\5\u0202\u0102\2\u0480\u0481\7\u0209\2\2\u0481\u0482"+ + "\7\u023c\2\2\u0482\u0483\5\u0202\u0102\2\u0483\u04b5\3\2\2\2\u0484\u0485"+ + "\7\25\2\2\u0485\u0486\7\u010e\2\2\u0486\u0487\5\u0202\u0102\2\u0487\u0488"+ + "\7\u00a9\2\2\u0488\u0489\7\u0182\2\2\u0489\u048a\7\u00d9\2\2\u048a\u048b"+ + "\5\u0202\u0102\2\u048b\u04b5\3\2\2\2\u048c\u048d\7\25\2\2\u048d\u0490"+ + "\7\u010e\2\2\u048e\u048f\7\u02b3\2\2\u048f\u0491\7\u00d5\2\2\u0490\u048e"+ + "\3\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\5\u0202\u0102"+ + "\2\u0493\u0494\7\u0209\2\2\u0494\u0495\7\u02ff\2\2\u0495\u0496\5\u01d4"+ + "\u00eb\2\u0496\u0497\7\u0300\2\2\u0497\u04b5\3\2\2\2\u0498\u0499\7\25"+ + "\2\2\u0499\u049c\7\u010e\2\2\u049a\u049b\7\u02b3\2\2\u049b\u049d\7\u00d5"+ + "\2\2\u049c\u049a\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2\2\u049e"+ + "\u049f\7\u01da\2\2\u049f\u04a0\7\u02ff\2\2\u04a0\u04a1\5\u01d0\u00e9\2"+ + "\u04a1\u04a2\7\u0300\2\2\u04a2\u04b5\3\2\2\2\u04a3\u04a4\7\25\2\2\u04a4"+ + "\u04a5\7\u010e\2\2\u04a5\u04a6\7\22\2\2\u04a6\u04a7\7\u010b\2\2\u04a7"+ + "\u04a8\7\u023c\2\2\u04a8\u04ac\5\u0202\u0102\2\u04a9\u04aa\7\u02cf\2\2"+ + "\u04aa\u04ab\78\2\2\u04ab\u04ad\5\u01d0\u00e9\2\u04ac\u04a9\3\2\2\2\u04ac"+ + "\u04ad\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae\u04af\7\u0209\2\2\u04af\u04b0"+ + "\7\u023c\2\2\u04b0\u04b2\5\u0202\u0102\2\u04b1\u04b3\7\u0173\2\2\u04b2"+ + "\u04b1\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b5\3\2\2\2\u04b4\u046e\3\2"+ + "\2\2\u04b4\u0479\3\2\2\2\u04b4\u0484\3\2\2\2\u04b4\u048c\3\2\2\2\u04b4"+ + "\u0498\3\2\2\2\u04b4\u04a3\3\2\2\2\u04b5\'\3\2\2\2\u04b6\u04b8\7\25\2"+ + "\2\u04b7\u04b9\7\u01b9\2\2\u04b8\u04b7\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9"+ + "\u04ba\3\2\2\2\u04ba\u04bb\7\u012d\2\2\u04bb\u04bc\5\u0202\u0102\2\u04bc"+ + "\u04bd\7\u01d6\2\2\u04bd\u04be\7\u0249\2\2\u04be\u04bf\5\u0202\u0102\2"+ + "\u04bf\u04ce\3\2\2\2\u04c0\u04c2\7\25\2\2\u04c1\u04c3\7\u01b9\2\2\u04c2"+ + "\u04c1\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4\u04c5\7\u012d"+ + "\2\2\u04c5\u04c6\5\u0202\u0102\2\u04c6\u04c7\7\u0195\2\2\u04c7\u04cb\7"+ + "\u0249\2\2\u04c8\u04cc\5\u0202\u0102\2\u04c9\u04cc\7\u008f\2\2\u04ca\u04cc"+ + "\7\u0208\2\2\u04cb\u04c8\3\2\2\2\u04cb\u04c9\3\2\2\2\u04cb\u04ca\3\2\2"+ + "\2\u04cc\u04ce\3\2\2\2\u04cd\u04b6\3\2\2\2\u04cd\u04c0\3\2\2\2\u04ce)"+ + "\3\2\2\2\u04cf\u04d0\7\25\2\2\u04d0\u04d1\7\u012e\2\2\u04d1\u04d2\7\u017a"+ + "\2\2\u04d2\u04d3\7\u0306\2\2\u04d3\u04d4\7\u0195\2\2\u04d4\u04d8\7\u0249"+ + "\2\2\u04d5\u04d9\5\u0202\u0102\2\u04d6\u04d9\7\u008f\2\2\u04d7\u04d9\7"+ + "\u0208\2\2\u04d8\u04d5\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8\u04d7\3\2\2\2"+ + "\u04d9+\3\2\2\2\u04da\u04db\5\u0206\u0104\2\u04db-\3\2\2\2\u04dc\u04dd"+ + "\5\u0206\u0104\2\u04dd/\3\2\2\2\u04de\u04df\7\25\2\2\u04df\u04e0\7\u0186"+ + "\2\2\u04e0\u04e1\7S\2\2\u04e1\u04e2\5\u0202\u0102\2\u04e2\u04e3\7\u0273"+ + "\2\2\u04e3\u04e4\5\u01dc\u00ef\2\u04e4\u04e5\7\u01d6\2\2\u04e5\u04e6\7"+ + "\u0249\2\2\u04e6\u04e7\5\u0202\u0102\2\u04e7\u0500\3\2\2\2\u04e8\u04e9"+ + "\7\25\2\2\u04e9\u04ea\7\u0186\2\2\u04ea\u04eb\7S\2\2\u04eb\u04ec\5\u0202"+ + "\u0102\2\u04ec\u04ed\7\u0273\2\2\u04ed\u04ee\5\u01dc\u00ef\2\u04ee\u04ef"+ + "\7\u0195\2\2\u04ef\u04f3\7\u0249\2\2\u04f0\u04f4\5\u0202\u0102\2\u04f1"+ + "\u04f4\7\u008f\2\2\u04f2\u04f4\7\u0208\2\2\u04f3\u04f0\3\2\2\2\u04f3\u04f1"+ + "\3\2\2\2\u04f3\u04f2\3\2\2\2\u04f4\u0500\3\2\2\2\u04f5\u04f6\7\25\2\2"+ + "\u04f6\u04f7\7\u0186\2\2\u04f7\u04f8\7S\2\2\u04f8\u04f9\5\u0202\u0102"+ + "\2\u04f9\u04fa\7\u0273\2\2\u04fa\u04fb\5\u01dc\u00ef\2\u04fb\u04fc\7\u0209"+ + "\2\2\u04fc\u04fd\7\u01f5\2\2\u04fd\u04fe\5\u0202\u0102\2\u04fe\u0500\3"+ + "\2\2\2\u04ff\u04de\3\2\2\2\u04ff\u04e8\3\2\2\2\u04ff\u04f5\3\2\2\2\u0500"+ + "\61\3\2\2\2\u0501\u0502\5\u0206\u0104\2\u0502\63\3\2\2\2\u0503\u0504\7"+ + "\25\2\2\u0504\u0505\7\u02ce\2\2\u0505\u0506\5\u0202\u0102\2\u0506\u0507"+ + "\7\u0182\2\2\u0507\u0508\5\u0202\u0102\2\u0508\u0509\7\u01d6\2\2\u0509"+ + "\u050a\7\u0249\2\2\u050a\u050b\5\u0202\u0102\2\u050b\u051f\3\2\2\2\u050c"+ + "\u050d\7\25\2\2\u050d\u050e\7\u02ce\2\2\u050e\u050f\5\u0202\u0102\2\u050f"+ + "\u0510\7\u0182\2\2\u0510\u0513\5\u0202\u0102\2\u0511\u0512\7\u0249\2\2"+ + "\u0512\u0514\5\u01fc\u00ff\2\u0513\u0511\3\2\2\2\u0513\u0514\3\2\2\2\u0514"+ + "\u0517\3\2\2\2\u0515\u0516\7\u0273\2\2\u0516\u0518\5\u01ec\u00f7\2\u0517"+ + "\u0515\3\2\2\2\u0517\u0518\3\2\2\2\u0518\u051c\3\2\2\2\u0519\u051a\7\u0288"+ + "\2\2\u051a\u051b\7P\2\2\u051b\u051d\5\u01ec\u00f7\2\u051c\u0519\3\2\2"+ + "\2\u051c\u051d\3\2\2\2\u051d\u051f\3\2\2\2\u051e\u0503\3\2\2\2\u051e\u050c"+ + "\3\2\2\2\u051f\65\3\2\2\2\u0520\u0521\7\25\2\2\u0521\u0522\7\u01bc\2\2"+ + "\u0522\u0523\5\u0202\u0102\2\u0523\u0524\7\r\2\2\u0524\u0526\7\u0239\2"+ + "\2\u0525\u0527\7\u0183\2\2\u0526\u0525\3\2\2\2\u0526\u0527\3\2\2\2\u0527"+ + "\u0528\3\2\2\2\u0528\u0529\5\u01d0\u00e9\2\u0529\u0555\3\2\2\2\u052a\u052b"+ + "\7\25\2\2\u052b\u052c\7\u01bc\2\2\u052c\u052d\5\u0202\u0102\2\u052d\u052e"+ + "\7\u0209\2\2\u052e\u0530\7\u0239\2\2\u052f\u0531\7\u0183\2\2\u0530\u052f"+ + "\3\2\2\2\u0530\u0531\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0533\5\u01d0\u00e9"+ + "\2\u0533\u0555\3\2\2\2\u0534\u0535\7\25\2\2\u0535\u0536\7\u01bc\2\2\u0536"+ + "\u0537\5\u0202\u0102\2\u0537\u0538\7\u00be\2\2\u0538\u053a\7\u0239\2\2"+ + "\u0539\u053b\7\u0183\2\2\u053a\u0539\3\2\2\2\u053a\u053b\3\2\2\2\u053b"+ + "\u053c\3\2\2\2\u053c\u053d\5\u01d0\u00e9\2\u053d\u0555\3\2\2\2\u053e\u053f"+ + "\7\25\2\2\u053f\u0540\7\u01bc\2\2\u0540\u0541\5\u0202\u0102\2\u0541\u0542"+ + "\7\u0209\2\2\u0542\u0543\7\u02ff\2\2\u0543\u0544\5\u01d4\u00eb\2\u0544"+ + "\u0545\7\u0300\2\2\u0545\u0555\3\2\2\2\u0546\u0547\7\25\2\2\u0547\u0548"+ + "\7\u01bc\2\2\u0548\u0549\5\u0202\u0102\2\u0549\u054a\7\u0195\2\2\u054a"+ + "\u054b\7\u0249\2\2\u054b\u054c\5\u01fa\u00fe\2\u054c\u0555\3\2\2\2\u054d"+ + "\u054e\7\25\2\2\u054e\u054f\7\u01bc\2\2\u054f\u0550\5\u0202\u0102\2\u0550"+ + "\u0551\7\u01d6\2\2\u0551\u0552\7\u0249\2\2\u0552\u0553\5\u01cc\u00e7\2"+ + "\u0553\u0555\3\2\2\2\u0554\u0520\3\2\2\2\u0554\u052a\3\2\2\2\u0554\u0534"+ + "\3\2\2\2\u0554\u053e\3\2\2\2\u0554\u0546\3\2\2\2\u0554\u054d\3\2\2\2\u0555"+ + "\67\3\2\2\2\u0556\u0570\7\u0291\2\2\u0557\u0570\7\u0292\2\2\u0558\u0570"+ + "\7\u0081\2\2\u0559\u0570\7\u016a\2\2\u055a\u0570\7\u0293\2\2\u055b\u0570"+ + "\7\u0294\2\2\u055c\u0570\7\u0295\2\2\u055d\u0570\7\u0296\2\2\u055e\u0570"+ + "\7\u0297\2\2\u055f\u0570\7\u0298\2\2\u0560\u0570\7\u0299\2\2\u0561\u0570"+ + "\7\u029a\2\2\u0562\u0570\7\u029b\2\2\u0563\u0570\7\u029c\2\2\u0564\u0565"+ + "\7m\2\2\u0565\u0566\7\u0138\2\2\u0566\u0570\7\u011d\2\2\u0567\u0569\7"+ + "\u00c7\2\2\u0568\u0567\3\2\2\2\u0568\u0569\3\2\2\2\u0569\u056a\3\2\2\2"+ + "\u056a\u056b\7\u01a3\2\2\u056b\u0570\7\u0309\2\2\u056c\u056d\7\u0275\2"+ + "\2\u056d\u056e\7\u026a\2\2\u056e\u0570\7\u0309\2\2\u056f\u0556\3\2\2\2"+ + "\u056f\u0557\3\2\2\2\u056f\u0558\3\2\2\2\u056f\u0559\3\2\2\2\u056f\u055a"+ + "\3\2\2\2\u056f\u055b\3\2\2\2\u056f\u055c\3\2\2\2\u056f\u055d\3\2\2\2\u056f"+ + "\u055e\3\2\2\2\u056f\u055f\3\2\2\2\u056f\u0560\3\2\2\2\u056f\u0561\3\2"+ + "\2\2\u056f\u0562\3\2\2\2\u056f\u0563\3\2\2\2\u056f\u0564\3\2\2\2\u056f"+ + "\u0568\3\2\2\2\u056f\u056c\3\2\2\2\u05709\3\2\2\2\u0571\u0572\7\25\2\2"+ + "\u0572\u0573\7\u01e7\2\2\u0573\u0575\5\u01fa\u00fe\2\u0574\u0576\7\u0288"+ + "\2\2\u0575\u0574\3\2\2\2\u0575\u0576\3\2\2\2\u0576\u0578\3\2\2\2\u0577"+ + "\u0579\58\35\2\u0578\u0577\3\2\2\2\u0579\u057a\3\2\2\2\u057a\u0578\3\2"+ + "\2\2\u057a\u057b\3\2\2\2\u057b\u05c0\3\2\2\2\u057c\u057d\7\25\2\2\u057d"+ + "\u057e\7\u01e7\2\2\u057e\u057f\5\u01cc\u00e7\2\u057f\u0580\7\u01d6\2\2"+ + "\u0580\u0581\7\u0249\2\2\u0581\u0582\5\u01cc\u00e7\2\u0582\u05c0\3\2\2"+ + "\2\u0583\u0584\7\25\2\2\u0584\u0587\7\u01e7\2\2\u0585\u0588\5\u01fa\u00fe"+ + "\2\u0586\u0588\7\22\2\2\u0587\u0585\3\2\2\2\u0587\u0586\3\2\2\2\u0588"+ + "\u058c\3\2\2\2\u0589\u058a\7\u010b\2\2\u058a\u058b\7\u0094\2\2\u058b\u058d"+ + "\5\u01cc\u00e7\2\u058c\u0589\3\2\2\2\u058c\u058d\3\2\2\2\u058d\u058e\3"+ + "\2\2\2\u058e\u058f\7\u0209\2\2\u058f\u0590\5\u0202\u0102\2\u0590\u0593"+ + "\t\7\2\2\u0591\u0594\5\u01fe\u0100\2\u0592\u0594\7\u009d\2\2\u0593\u0591"+ + "\3\2\2\2\u0593\u0592\3\2\2\2\u0594\u05c0\3\2\2\2\u0595\u0596\7\25\2\2"+ + "\u0596\u0599\7\u01e7\2\2\u0597\u059a\5\u01fa\u00fe\2\u0598\u059a\7\22"+ + "\2\2\u0599\u0597\3\2\2\2\u0599\u0598\3\2\2\2\u059a\u059e\3\2\2\2\u059b"+ + "\u059c\7\u010b\2\2\u059c\u059d\7\u0094\2\2\u059d\u059f\5\u01cc\u00e7\2"+ + "\u059e\u059b\3\2\2\2\u059e\u059f\3\2\2\2\u059f\u05a0\3\2\2\2\u05a0\u05a1"+ + "\7\u0209\2\2\u05a1\u05a2\5\u0202\u0102\2\u05a2\u05a3\7\u00ee\2\2\u05a3"+ + "\u05a4\7\u0087\2\2\u05a4\u05c0\3\2\2\2\u05a5\u05a6\7\25\2\2\u05a6\u05a9"+ + "\7\u01e7\2\2\u05a7\u05aa\5\u01fa\u00fe\2\u05a8\u05aa\7\22\2\2\u05a9\u05a7"+ + "\3\2\2\2\u05a9\u05a8\3\2\2\2\u05aa\u05ae\3\2\2\2\u05ab\u05ac\7\u010b\2"+ + "\2\u05ac\u05ad\7\u0094\2\2\u05ad\u05af\5\u01cc\u00e7\2\u05ae\u05ab\3\2"+ + "\2\2\u05ae\u05af\3\2\2\2\u05af\u05b0\3\2\2\2\u05b0\u05b1\7\u01da\2\2\u05b1"+ + "\u05c0\5\u0202\u0102\2\u05b2\u05b3\7\25\2\2\u05b3\u05b6\7\u01e7\2\2\u05b4"+ + "\u05b7\5\u01fa\u00fe\2\u05b5\u05b7\7\22\2\2\u05b6\u05b4\3\2\2\2\u05b6"+ + "\u05b5\3\2\2\2\u05b7\u05bb\3\2\2\2\u05b8\u05b9\7\u010b\2\2\u05b9\u05ba"+ + "\7\u0094\2\2\u05ba\u05bc\5\u01cc\u00e7\2\u05bb\u05b8\3\2\2\2\u05bb\u05bc"+ + "\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05be\7\u01da\2\2\u05be\u05c0\7\22"+ + "\2\2\u05bf\u0571\3\2\2\2\u05bf\u057c\3\2\2\2\u05bf\u0583\3\2\2\2\u05bf"+ + "\u0595\3\2\2\2\u05bf\u05a5\3\2\2\2\u05bf\u05b2\3\2\2\2\u05c0;\3\2\2\2"+ + "\u05c1\u05c2\7\25\2\2\u05c2\u05c3\7\u01f2\2\2\u05c3\u05c4\5\u01cc\u00e7"+ + "\2\u05c4\u05c5\7\u0182\2\2\u05c5\u05c6\5\u0202\u0102\2\u05c6\u05c7\7\u01d6"+ + "\2\2\u05c7\u05c8\7\u0249\2\2\u05c8\u05c9\5\u01cc\u00e7\2\u05c9=\3\2\2"+ + "\2\u05ca\u05cb\7\25\2\2\u05cb\u05cc\7\u01f5\2\2\u05cc\u05cd\5\u0202\u0102"+ + "\2\u05cd\u05ce\7\u01d6\2\2\u05ce\u05cf\7\u0249\2\2\u05cf\u05d0\5\u0202"+ + "\u0102\2\u05d0\u05dc\3\2\2\2\u05d1\u05d2\7\25\2\2\u05d2\u05d3\7\u01f5"+ + "\2\2\u05d3\u05d4\5\u0202\u0102\2\u05d4\u05d5\7\u0195\2\2\u05d5\u05d9\7"+ + "\u0249\2\2\u05d6\u05da\5\u0202\u0102\2\u05d7\u05da\7\u008f\2\2\u05d8\u05da"+ + "\7\u0208\2\2\u05d9\u05d6\3\2\2\2\u05d9\u05d7\3\2\2\2\u05d9\u05d8\3\2\2"+ + "\2\u05da\u05dc\3\2\2\2\u05db\u05ca\3\2\2\2\u05db\u05d1\3\2\2\2\u05dc?"+ + "\3\2\2\2\u05dd\u05de\7\25\2\2\u05de\u05e1\7\u0203\2"; + private static final String _serializedATNSegment1 = + "\2\u05df\u05e0\7\u02b3\2\2\u05e0\u05e2\7\u00d5\2\2\u05e1\u05df\3\2\2\2"+ + "\u05e1\u05e2\3\2\2\2\u05e2\u05e3\3\2\2\2\u05e3\u05e4\5\u01cc\u00e7\2\u05e4"+ + "A\3\2\2\2\u05e5\u05e7\t\6\2\2\u05e6\u05e5\3\2\2\2\u05e6\u05e7\3\2\2\2"+ + "\u05e7\u05e8\3\2\2\2\u05e8\u05ea\5\u0202\u0102\2\u05e9\u05eb\5\u01fe\u0100"+ + "\2\u05ea\u05e9\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05f6\3\2\2\2\u05ec\u05ee"+ + "\7\u02f9\2\2\u05ed\u05ef\t\6\2\2\u05ee\u05ed\3\2\2\2\u05ee\u05ef\3\2\2"+ + "\2\u05ef\u05f0\3\2\2\2\u05f0\u05f2\5\u0202\u0102\2\u05f1\u05f3\5\u01fe"+ + "\u0100\2\u05f2\u05f1\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3\u05f5\3\2\2\2\u05f4"+ + "\u05ec\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6\u05f4\3\2\2\2\u05f6\u05f7\3\2"+ + "\2\2\u05f7C\3\2\2\2\u05f8\u05f6\3\2\2\2\u05f9\u05fa\7\25\2\2\u05fa\u05fb"+ + "\7\u02bd\2\2\u05fb\u0607\5\u0202\u0102\2\u05fc\u05fd\7\u02b8\2\2\u05fd"+ + "\u0608\7\u0309\2\2\u05fe\u05ff\7\u02b8\2\2\u05ff\u0601\7\u0309\2\2\u0600"+ + "\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601\u0602\3\2\2\2\u0602\u0603\7\u0188"+ + "\2\2\u0603\u0604\7\u02ff\2\2\u0604\u0605\5B\"\2\u0605\u0606\7\u0300\2"+ + "\2\u0606\u0608\3\2\2\2\u0607\u05fc\3\2\2\2\u0607\u0600\3\2\2\2\u0608\u0618"+ + "\3\2\2\2\u0609\u060a\7\25\2\2\u060a\u060b\7\u02bd\2\2\u060b\u060c\5\u0202"+ + "\u0102\2\u060c\u060d\7\u0195\2\2\u060d\u060e\7\u0249\2\2\u060e\u060f\5"+ + "\u01fa\u00fe\2\u060f\u0618\3\2\2\2\u0610\u0611\7\25\2\2\u0611\u0612\7"+ + "\u02bd\2\2\u0612\u0613\5\u0202\u0102\2\u0613\u0614\7\u01d6\2\2\u0614\u0615"+ + "\7\u0249\2\2\u0615\u0616\5\u01cc\u00e7\2\u0616\u0618\3\2\2\2\u0617\u05f9"+ + "\3\2\2\2\u0617\u0609\3\2\2\2\u0617\u0610\3\2\2\2\u0618E\3\2\2\2\u0619"+ + "\u061a\7\25\2\2\u061a\u061b\7\u0226\2\2\u061b\u061c\5\u0202\u0102\2\u061c"+ + "\u061d\7\u0195\2\2\u061d\u0621\7\u0249\2\2\u061e\u0622\5\u0202\u0102\2"+ + "\u061f\u0622\7\u008f\2\2\u0620\u0622\7\u0208\2\2\u0621\u061e\3\2\2\2\u0621"+ + "\u061f\3\2\2\2\u0621\u0620\3\2\2\2\u0622\u0632\3\2\2\2\u0623\u0624\7\25"+ + "\2\2\u0624\u0625\7\u0226\2\2\u0625\u0626\5\u0202\u0102\2\u0626\u0627\7"+ + "\u01d6\2\2\u0627\u0628\7\u0249\2\2\u0628\u0629\5\u0202\u0102\2\u0629\u0632"+ + "\3\2\2\2\u062a\u062b\7\25\2\2\u062b\u062c\7\u0226\2\2\u062c\u062d\5\u0202"+ + "\u0102\2\u062d\u062e\7\u0209\2\2\u062e\u062f\7\u01f5\2\2\u062f\u0630\5"+ + "\u0202\u0102\2\u0630\u0632\3\2\2\2\u0631\u0619\3\2\2\2\u0631\u0623\3\2"+ + "\2\2\u0631\u062a\3\2\2\2\u0632G\3\2\2\2\u0633\u0634\7\25\2\2\u0634\u0635"+ + "\7\u0232\2\2\u0635\u0636\5\u0202\u0102\2\u0636\u0637\7m\2\2\u0637\u0638"+ + "\5\u01fe\u0100\2\u0638\u0673\3\2\2\2\u0639\u063a\7\25\2\2\u063a\u063b"+ + "\7\u0232\2\2\u063b\u063c\5\u0202\u0102\2\u063c\u063d\7\u0209\2\2\u063d"+ + "\u063e\7\u01bc\2\2\u063e\u0644\5\u01ce\u00e8\2\u063f\u0640\7\u0288\2\2"+ + "\u0640\u0641\7\u02ff\2\2\u0641\u0642\5\u01d4\u00eb\2\u0642\u0643\7\u0300"+ + "\2\2\u0643\u0645\3\2\2\2\u0644\u063f\3\2\2\2\u0644\u0645\3\2\2\2\u0645"+ + "\u0673\3\2\2\2\u0646\u0647\7\25\2\2\u0647\u0648\7\u0232\2\2\u0648\u0649"+ + "\5\u0202\u0102\2\u0649\u064a\7\u01c9\2\2\u064a\u0650\7\u01bc\2\2\u064b"+ + "\u064c\7\u0288\2\2\u064c\u064d\7\u02ff\2\2\u064d\u064e\5\u01d4\u00eb\2"+ + "\u064e\u064f\7\u0300\2\2\u064f\u0651\3\2\2\2\u0650\u064b\3\2\2\2\u0650"+ + "\u0651\3\2\2\2\u0651\u0673\3\2\2\2\u0652\u0653\7\25\2\2\u0653\u0654\7"+ + "\u0232\2\2\u0654\u0655\5\u0202\u0102\2\u0655\u0656\7\u00c5\2\2\u0656\u0673"+ + "\3\2\2\2\u0657\u0658\7\25\2\2\u0658\u0659\7\u0232\2\2\u0659\u065a\5\u0202"+ + "\u0102\2\u065a\u065b\7\u00b5\2\2\u065b\u0673\3\2\2\2\u065c\u065d\7\25"+ + "\2\2\u065d\u065e\7\u0232\2\2\u065e\u065f\5\u0202\u0102\2\u065f\u0660\7"+ + "\u0209\2\2\u0660\u0661\7\u02ff\2\2\u0661\u0662\5\u01d4\u00eb\2\u0662\u0663"+ + "\7\u0300\2\2\u0663\u0673\3\2\2\2\u0664\u0665\7\25\2\2\u0665\u0666\7\u0232"+ + "\2\2\u0666\u0667\5\u0202\u0102\2\u0667\u0668\7\u0195\2\2\u0668\u0669\7"+ + "\u0249\2\2\u0669\u066a\5\u01fa\u00fe\2\u066a\u0673\3\2\2\2\u066b\u066c"+ + "\7\25\2\2\u066c\u066d\7\u0232\2\2\u066d\u066e\5\u0202\u0102\2\u066e\u066f"+ + "\7\u01d6\2\2\u066f\u0670\7\u0249\2\2\u0670\u0671\5\u0202\u0102\2\u0671"+ + "\u0673\3\2\2\2\u0672\u0633\3\2\2\2\u0672\u0639\3\2\2\2\u0672\u0646\3\2"+ + "\2\2\u0672\u0652\3\2\2\2\u0672\u0657\3\2\2\2\u0672\u065c\3\2\2\2\u0672"+ + "\u0664\3\2\2\2\u0672\u066b\3\2\2\2\u0673I\3\2\2\2\u0674\u0675\7\25\2\2"+ + "\u0675\u0676\7\u0237\2\2\u0676\u0677\7\u0209\2\2\u0677\u0678\7\u030b\2"+ + "\2\u0678\u0679\t\7\2\2\u0679\u0683\5\u01fe\u0100\2\u067a\u067b\7\25\2"+ + "\2\u067b\u067c\7\u0237\2\2\u067c\u067d\7\u01da\2\2\u067d\u0683\7\u030b"+ + "\2\2\u067e\u067f\7\25\2\2\u067f\u0680\7\u0237\2\2\u0680\u0681\7\u01da"+ + "\2\2\u0681\u0683\7\22\2\2\u0682\u0674\3\2\2\2\u0682\u067a\3\2\2\2\u0682"+ + "\u067e\3\2\2\2\u0683K\3\2\2\2\u0684\u0685\5\u0206\u0104\2\u0685M\3\2\2"+ + "\2\u0686\u0687\7\25\2\2\u0687\u0688\7\u023c\2\2\u0688\u0689\5\u0202\u0102"+ + "\2\u0689\u068a\7\u01d6\2\2\u068a\u068b\7\u0249\2\2\u068b\u068c\5\u0202"+ + "\u0102\2\u068c\u06a8\3\2\2\2\u068d\u068e\7\25\2\2\u068e\u068f\7\u023c"+ + "\2\2\u068f\u0690\5\u0202\u0102\2\u0690\u0691\7\u0195\2\2\u0691\u0695\7"+ + "\u0249\2\2\u0692\u0696\5\u0202\u0102\2\u0693\u0696\7\u008f\2\2\u0694\u0696"+ + "\7\u0208\2\2\u0695\u0692\3\2\2\2\u0695\u0693\3\2\2\2\u0695\u0694\3\2\2"+ + "\2\u0696\u06a8\3\2\2\2\u0697\u0698\7\25\2\2\u0698\u0699\7\u023c\2\2\u0699"+ + "\u069a\5\u0202\u0102\2\u069a\u069b\7\u0209\2\2\u069b\u069c\7\u02ff\2\2"+ + "\u069c\u069d\5\u01d4\u00eb\2\u069d\u069e\7\u0300\2\2\u069e\u06a8\3\2\2"+ + "\2\u069f\u06a0\7\25\2\2\u06a0\u06a1\7\u023c\2\2\u06a1\u06a2\5\u0202\u0102"+ + "\2\u06a2\u06a3\7\u01da\2\2\u06a3\u06a4\7\u02ff\2\2\u06a4\u06a5\5\u01d0"+ + "\u00e9\2\u06a5\u06a6\7\u0300\2\2\u06a6\u06a8\3\2\2\2\u06a7\u0686\3\2\2"+ + "\2\u06a7\u068d\3\2\2\2\u06a7\u0697\3\2\2\2\u06a7\u069f\3\2\2\2\u06a8O"+ + "\3\2\2\2\u06a9\u06aa\7\25\2\2\u06aa\u06ab\7\u02f0\2\2\u06ab\u06ac\7\u01fc"+ + "\2\2\u06ac\u06ad\7j\2\2\u06ad\u06ae\5\u0202\u0102\2\u06ae\u06af\7\r\2"+ + "\2\u06af\u06b0\7\u0147\2\2\u06b0\u06b1\7\u00e5\2\2\u06b1\u06b2\5\u01d0"+ + "\u00e9\2\u06b2\u06b3\7\u0288\2\2\u06b3\u06b4\5\u01d0\u00e9\2\u06b4\u0705"+ + "\3\2\2\2\u06b5\u06b6\7\25\2\2\u06b6\u06b7\7\u02f0\2\2\u06b7\u06b8\7\u01fc"+ + "\2\2\u06b8\u06b9\7j\2\2\u06b9\u06ba\5\u0202\u0102\2\u06ba\u06bb\7\25\2"+ + "\2\u06bb\u06bc\7\u0147\2\2\u06bc\u06bd\7\u00e5\2\2\u06bd\u06be\5\u01d0"+ + "\u00e9\2\u06be\u06bf\7\u0288\2\2\u06bf\u06c0\5\u01d0\u00e9\2\u06c0\u0705"+ + "\3\2\2\2\u06c1\u06c2\7\25\2\2\u06c2\u06c3\7\u02f0\2\2\u06c3\u06c4\7\u01fc"+ + "\2\2\u06c4\u06c5\7j\2\2\u06c5\u06c6\5\u0202\u0102\2\u06c6\u06c7\7\25\2"+ + "\2\u06c7\u06c8\7\u0147\2\2\u06c8\u06c9\7\u01d8\2\2\u06c9\u06ca\5\u0202"+ + "\u0102\2\u06ca\u06cb\7\u0288\2\2\u06cb\u06cc\5\u0202\u0102\2\u06cc\u0705"+ + "\3\2\2\2\u06cd\u06ce\7\25\2\2\u06ce\u06cf\7\u02f0\2\2\u06cf\u06d0\7\u01fc"+ + "\2\2\u06d0\u06d1\7j\2\2\u06d1\u06d2\5\u0202\u0102\2\u06d2\u06d3\7\25\2"+ + "\2\u06d3\u06d4\7\u0147\2\2\u06d4\u06d5\7\u00e5\2\2\u06d5\u06d6\5\u01d0"+ + "\u00e9\2\u06d6\u06d7\7\u01d8\2\2\u06d7\u06d8\5\u0202\u0102\2\u06d8\u06d9"+ + "\7\u0288\2\2\u06d9\u06da\5\u0202\u0102\2\u06da\u0705\3\2\2\2\u06db\u06dc"+ + "\7\25\2\2\u06dc\u06dd\7\u02f0\2\2\u06dd\u06de\7\u01fc\2\2\u06de\u06df"+ + "\7j\2\2\u06df\u06e0\5\u0202\u0102\2\u06e0\u06e1\7\u00be\2\2\u06e1\u06e4"+ + "\7\u0147\2\2\u06e2\u06e3\7\u02b3\2\2\u06e3\u06e5\7\u00d5\2\2\u06e4\u06e2"+ + "\3\2\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\3\2\2\2\u06e6\u06e7\7\u00e5\2"+ + "\2\u06e7\u06e8\5\u01d0\u00e9\2\u06e8\u0705\3\2\2\2\u06e9\u06ea\7\25\2"+ + "\2\u06ea\u06eb\7\u02f0\2\2\u06eb\u06ec\7\u01fc\2\2\u06ec\u06ed\7j\2\2"+ + "\u06ed\u06ee\5\u0202\u0102\2\u06ee\u06ef\7\u01d6\2\2\u06ef\u06f0\7\u0249"+ + "\2\2\u06f0\u06f1\5\u0202\u0102\2\u06f1\u0705\3\2\2\2\u06f2\u06f3\7\25"+ + "\2\2\u06f3\u06f4\7\u02f0\2\2\u06f4\u06f5\7\u01fc\2\2\u06f5\u06f6\7j\2"+ + "\2\u06f6\u06f7\5\u0202\u0102\2\u06f7\u06f8\7\u0195\2\2\u06f8\u06f9\7\u0249"+ + "\2\2\u06f9\u06fa\5\u01fa\u00fe\2\u06fa\u0705\3\2\2\2\u06fb\u06fc\7\25"+ + "\2\2\u06fc\u06fd\7\u02f0\2\2\u06fd\u06fe\7\u01fc\2\2\u06fe\u06ff\7j\2"+ + "\2\u06ff\u0700\5\u0202\u0102\2\u0700\u0701\7\u0209\2\2\u0701\u0702\7\u01f5"+ + "\2\2\u0702\u0703\5\u0202\u0102\2\u0703\u0705\3\2\2\2\u0704\u06a9\3\2\2"+ + "\2\u0704\u06b5\3\2\2\2\u0704\u06c1\3\2\2\2\u0704\u06cd\3\2\2\2\u0704\u06db"+ + "\3\2\2\2\u0704\u06e9\3\2\2\2\u0704\u06f2\3\2\2\2\u0704\u06fb\3\2\2\2\u0705"+ + "Q\3\2\2\2\u0706\u0707\5\u0206\u0104\2\u0707S\3\2\2\2\u0708\u0709\5\u0206"+ + "\u0104\2\u0709U\3\2\2\2\u070a\u070b\7\25\2\2\u070b\u070c\7\u02f0\2\2\u070c"+ + "\u070d\7\u01fc\2\2\u070d\u070e\7\u023e\2\2\u070e\u070f\5\u0202\u0102\2"+ + "\u070f\u0710\7\u01d6\2\2\u0710\u0711\7\u0249\2\2\u0711\u0712\5\u0202\u0102"+ + "\2\u0712\u071d\3\2\2\2\u0713\u0714\7\25\2\2\u0714\u0715\7\u02f0\2\2\u0715"+ + "\u0716\7\u01fc\2\2\u0716\u0717\7\u023e\2\2\u0717\u0718\5\u0202\u0102\2"+ + "\u0718\u0719\7\u0209\2\2\u0719\u071a\7\u01f5\2\2\u071a\u071b\5\u0202\u0102"+ + "\2\u071b\u071d\3\2\2\2\u071c\u070a\3\2\2\2\u071c\u0713\3\2\2\2\u071dW"+ + "\3\2\2\2\u071e\u071f\7\25\2\2\u071f\u0720\7\u0256\2\2\u0720\u0721\5\u0202"+ + "\u0102\2\u0721\u0722\7\u0182\2\2\u0722\u0723\5\u0202\u0102\2\u0723\u0724"+ + "\7\u01d6\2\2\u0724\u0725\7\u0249\2\2\u0725\u0726\5\u0202\u0102\2\u0726"+ + "\u0732\3\2\2\2\u0727\u0728\7\25\2\2\u0728\u0729\7\u0256\2\2\u0729\u072a"+ + "\5\u0202\u0102\2\u072a\u072b\7\u0182\2\2\u072b\u072c\5\u0202\u0102\2\u072c"+ + "\u072d\7\u00a9\2\2\u072d\u072e\7\u0182\2\2\u072e\u072f\7\u00d9\2\2\u072f"+ + "\u0730\5\u0202\u0102\2\u0730\u0732\3\2\2\2\u0731\u071e\3\2\2\2\u0731\u0727"+ + "\3\2\2\2\u0732Y\3\2\2\2\u0733\u0734\5\u0206\u0104\2\u0734[\3\2\2\2\u0735"+ + "\u0736\5\u0206\u0104\2\u0736]\3\2\2\2\u0737\u0738\7\25\2\2\u0738\u0739"+ + "\7\u026e\2\2\u0739\u073a\7\u0147\2\2\u073a\u073b\7\u00e5\2\2\u073b\u073c"+ + "\5\u01fa\u00fe\2\u073c\u073d\7\u02bd\2\2\u073d\u073e\5\u0202\u0102\2\u073e"+ + "\u073f\7\u0188\2\2\u073f\u0740\7\u02ff\2\2\u0740\u0741\5B\"\2\u0741\u0742"+ + "\7\u0300\2\2\u0742_\3\2\2\2\u0743\u0744\5\u0206\u0104\2\u0744a\3\2\2\2"+ + "\u0745\u0747\7\30\2\2\u0746\u0748\7\u0280\2\2\u0747\u0746\3\2\2\2\u0747"+ + "\u0748\3\2\2\2\u0748\u0749\3\2\2\2\u0749\u074e\5\u01d6\u00ec\2\u074a\u074b"+ + "\7\u02ff\2\2\u074b\u074c\5\u01ce\u00e8\2\u074c\u074d\7\u0300\2\2\u074d"+ + "\u074f\3\2\2\2\u074e\u074a\3\2\2\2\u074e\u074f\3\2\2\2\u074fc\3\2\2\2"+ + "\u0750\u0751\5\u0206\u0104\2\u0751e\3\2\2\2\u0752\u0753\5\u0206\u0104"+ + "\2\u0753g\3\2\2\2\u0754\u0755\5\u0206\u0104\2\u0755i\3\2\2\2\u0756\u0757"+ + "\5\u0206\u0104\2\u0757k\3\2\2\2\u0758\u0759\5\u0206\u0104\2\u0759m\3\2"+ + "\2\2\u075a\u075b\5\u0206\u0104\2\u075bo\3\2\2\2\u075c\u0784\5r:\2\u075d"+ + "\u0784\5t;\2\u075e\u0784\5v<\2\u075f\u0784\5|?\2\u0760\u0784\5~@\2\u0761"+ + "\u0784\5\u0080A\2\u0762\u0784\5\u0084C\2\u0763\u0784\5\u0088E\2\u0764"+ + "\u0784\5\u008cG\2\u0765\u0784\5\u008eH\2\u0766\u0784\5\u0090I\2\u0767"+ + "\u0784\5\u0092J\2\u0768\u0784\5\u0094K\2\u0769\u0784\5\u0096L\2\u076a"+ + "\u0784\5\u0098M\2\u076b\u0784\5\u009aN\2\u076c\u0784\5\u009eP\2\u076d"+ + "\u0784\5\u00a0Q\2\u076e\u0784\5\u00a2R\2\u076f\u0784\5\u00a4S\2\u0770"+ + "\u0784\5\u00a8U\2\u0771\u0784\5\u00aaV\2\u0772\u0784\5\u00acW\2\u0773"+ + "\u0784\5\u00aeX\2\u0774\u0784\5\u00b0Y\2\u0775\u0784\5\u00b2Z\2\u0776"+ + "\u0784\5\u00b4[\2\u0777\u0784\5\u00b6\\\2\u0778\u0784\5\u00b8]\2\u0779"+ + "\u0784\5\u00ba^\2\u077a\u0784\5\u00bc_\2\u077b\u0784\5\u00be`\2\u077c"+ + "\u0784\5\u00c0a\2\u077d\u0784\5\u00c2b\2\u077e\u0784\5\u00c4c\2\u077f"+ + "\u0784\5\u00c6d\2\u0780\u0784\5\u00c8e\2\u0781\u0784\5\u00caf\2\u0782"+ + "\u0784\5\u00ccg\2\u0783\u075c\3\2\2\2\u0783\u075d\3\2\2\2\u0783\u075e"+ + "\3\2\2\2\u0783\u075f\3\2\2\2\u0783\u0760\3\2\2\2\u0783\u0761\3\2\2\2\u0783"+ + "\u0762\3\2\2\2\u0783\u0763\3\2\2\2\u0783\u0764\3\2\2\2\u0783\u0765\3\2"+ + "\2\2\u0783\u0766\3\2\2\2\u0783\u0767\3\2\2\2\u0783\u0768\3\2\2\2\u0783"+ + "\u0769\3\2\2\2\u0783\u076a\3\2\2\2\u0783\u076b\3\2\2\2\u0783\u076c\3\2"+ + "\2\2\u0783\u076d\3\2\2\2\u0783\u076e\3\2\2\2\u0783\u076f\3\2\2\2\u0783"+ + "\u0770\3\2\2\2\u0783\u0771\3\2\2\2\u0783\u0772\3\2\2\2\u0783\u0773\3\2"+ + "\2\2\u0783\u0774\3\2\2\2\u0783\u0775\3\2\2\2\u0783\u0776\3\2\2\2\u0783"+ + "\u0777\3\2\2\2\u0783\u0778\3\2\2\2\u0783\u0779\3\2\2\2\u0783\u077a\3\2"+ + "\2\2\u0783\u077b\3\2\2\2\u0783\u077c\3\2\2\2\u0783\u077d\3\2\2\2\u0783"+ + "\u077e\3\2\2\2\u0783\u077f\3\2\2\2\u0783\u0780\3\2\2\2\u0783\u0781\3\2"+ + "\2\2\u0783\u0782\3\2\2\2\u0784q\3\2\2\2\u0785\u0786\7\u0080\2\2\u0786"+ + "\u0787\7\n\2\2\u0787\u0788\7\u0152\2\2\u0788\u0789\5\u01cc\u00e7\2\u0789"+ + "\u078a\7\u025e\2\2\u078a\u078b\7\u010e\2\2\u078b\u078c\7\u00fe\2\2\u078c"+ + "\u078d\5\u01cc\u00e7\2\u078ds\3\2\2\2\u078e\u078f\7\u0080\2\2\u078f\u0790"+ + "\7\20\2\2\u0790\u0791\5\u01cc\u00e7\2\u0791\u0793\7\u02ff\2\2\u0792\u0794"+ + "\t\b\2\2\u0793\u0792\3\2\2\2\u0793\u0794\3\2\2\2\u0794\u0796\3\2\2\2\u0795"+ + "\u0797\5\u01cc\u00e7\2\u0796\u0795\3\2\2\2\u0796\u0797\3\2\2\2\u0797\u0798"+ + "\3\2\2\2\u0798\u0799\5\u01da\u00ee\2\u0799\u079a\7\u0300\2\2\u079a\u079b"+ + "\7\u02ff\2\2\u079b\u079c\7\u029d\2\2\u079c\u079d\7\u0318\2\2\u079d\u079e"+ + "\5\u0202\u0102\2\u079e\u079f\7\u02f9\2\2\u079f\u07a0\7\u029e\2\2\u07a0"+ + "\u07a1\7\u0318\2\2\u07a1\u07a6\5\u0202\u0102\2\u07a2\u07a3\7\u02f9\2\2"+ + "\u07a3\u07a4\7\u029f\2\2\u07a4\u07a5\7\u0318\2\2\u07a5\u07a7\7\u0306\2"+ + "\2\u07a6\u07a2\3\2\2\2\u07a6\u07a7\3\2\2\2\u07a7\u07ac\3\2\2\2\u07a8\u07a9"+ + "\7\u02f9\2\2\u07a9\u07aa\7\u02a0\2\2\u07aa\u07ab\7\u0318\2\2\u07ab\u07ad"+ + "\5\u0202\u0102\2\u07ac\u07a8\3\2\2\2\u07ac\u07ad\3\2\2\2\u07ad\u07b0\3"+ + "\2\2\2\u07ae\u07af\7\u02f9\2\2\u07af\u07b1\7\u02a1\2\2\u07b0\u07ae\3\2"+ + "\2\2\u07b0\u07b1\3\2\2\2\u07b1\u07b6\3\2\2\2\u07b2\u07b3\7\u02f9\2\2\u07b3"+ + "\u07b4\7\u02a2\2\2\u07b4\u07b5\7\u0318\2\2\u07b5\u07b7\5\u0202\u0102\2"+ + "\u07b6\u07b2\3\2\2\2\u07b6\u07b7\3\2\2\2\u07b7\u07bc\3\2\2\2\u07b8\u07b9"+ + "\7\u02f9\2\2\u07b9\u07ba\7\u02a3\2\2\u07ba\u07bb\7\u0318\2\2\u07bb\u07bd"+ + "\5\u0202\u0102\2\u07bc\u07b8\3\2\2\2\u07bc\u07bd\3\2\2\2\u07bd\u07c2\3"+ + "\2\2\2\u07be\u07bf\7\u02f9\2\2\u07bf\u07c0\7\u02a4\2\2\u07c0\u07c1\7\u0318"+ + "\2\2\u07c1\u07c3\5\u0202\u0102\2\u07c2\u07be\3\2\2\2\u07c2\u07c3\3\2\2"+ + "\2\u07c3\u07c8\3\2\2\2\u07c4\u07c5\7\u02f9\2\2\u07c5\u07c6\7\u02a5\2\2"+ + "\u07c6\u07c7\7\u0318\2\2\u07c7\u07c9\5\u01b2\u00da\2\u07c8\u07c4\3\2\2"+ + "\2\u07c8\u07c9\3\2\2\2\u07c9\u07ce\3\2\2\2\u07ca\u07cb\7\u02f9\2\2\u07cb"+ + "\u07cc\7\u02a6\2\2\u07cc\u07cd\7\u0318\2\2\u07cd\u07cf\5\u0202\u0102\2"+ + "\u07ce\u07ca\3\2\2\2\u07ce\u07cf\3\2\2\2\u07cf\u07d4\3\2\2\2\u07d0\u07d1"+ + "\7\u02f9\2\2\u07d1\u07d2\7\u02a7\2\2\u07d2\u07d3\7\u0318\2\2\u07d3\u07d5"+ + "\5\u0202\u0102\2\u07d4\u07d0\3\2\2\2\u07d4\u07d5\3\2\2\2\u07d5\u07da\3"+ + "\2\2\2\u07d6\u07d7\7\u02f9\2\2\u07d7\u07d8\7\u02a8\2\2\u07d8\u07d9\7\u0318"+ + "\2\2\u07d9\u07db\5\u0202\u0102\2\u07da\u07d6\3\2\2\2\u07da\u07db\3\2\2"+ + "\2\u07db\u07e0\3\2\2\2\u07dc\u07dd\7\u02f9\2\2\u07dd\u07de\7\u02a9\2\2"+ + "\u07de\u07df\7\u0318\2\2\u07df\u07e1\7\u0306\2\2\u07e0\u07dc\3\2\2\2\u07e0"+ + "\u07e1\3\2\2\2\u07e1\u07e6\3\2\2\2\u07e2\u07e3\7\u02f9\2\2\u07e3\u07e4"+ + "\7\u02aa\2\2\u07e4\u07e5\7\u0318\2\2\u07e5\u07e7\5\u0202\u0102\2\u07e6"+ + "\u07e2\3\2\2\2\u07e6\u07e7\3\2\2\2\u07e7\u07ea\3\2\2\2\u07e8\u07e9\7\u02f9"+ + "\2\2\u07e9\u07eb\7\u02ab\2\2\u07ea\u07e8\3\2\2\2\u07ea\u07eb\3\2\2\2\u07eb"+ + "\u07f0\3\2\2\2\u07ec\u07ed\7\u02f9\2\2\u07ed\u07ee\7\u02ac\2\2\u07ee\u07ef"+ + "\7\u0318\2\2\u07ef\u07f1\5\u0202\u0102\2\u07f0\u07ec\3\2\2\2\u07f0\u07f1"+ + "\3\2\2\2\u07f1\u07f6\3\2\2\2\u07f2\u07f3\7\u02f9\2\2\u07f3\u07f4\7\u02ad"+ + "\2\2\u07f4\u07f5\7\u0318\2\2\u07f5\u07f7\5\u0202\u0102\2\u07f6\u07f2\3"+ + "\2\2\2\u07f6\u07f7\3\2\2\2\u07f7\u07fc\3\2\2\2\u07f8\u07f9\7\u02f9\2\2"+ + "\u07f9\u07fa\7\u02ae\2\2\u07fa\u07fb\7\u0318\2\2\u07fb\u07fd\t\t\2\2\u07fc"+ + "\u07f8\3\2\2\2\u07fc\u07fd\3\2\2\2\u07fd\u07fe\3\2\2\2\u07fe\u07ff\7\u0300"+ + "\2\2\u07ff\u08a9\3\2\2\2\u0800\u0801\7\u0080\2\2\u0801\u0802\7\20\2\2"+ + "\u0802\u0803\5\u01cc\u00e7\2\u0803\u080b\7\u02ff\2\2\u0804\u0806\t\b\2"+ + "\2\u0805\u0804\3\2\2\2\u0805\u0806\3\2\2\2\u0806\u0808\3\2\2\2\u0807\u0809"+ + "\5\u01cc\u00e7\2\u0808\u0807\3\2\2\2\u0808\u0809\3\2\2\2\u0809\u080a\3"+ + "\2\2\2\u080a\u080c\5\u01da\u00ee\2\u080b\u0805\3\2\2\2\u080b\u080c\3\2"+ + "\2\2\u080c\u080d\3\2\2\2\u080d\u080e\7\u018a\2\2\u080e\u0810\78\2\2\u080f"+ + "\u0811\t\b\2\2\u0810\u080f\3\2\2\2\u0810\u0811\3\2\2\2\u0811\u0813\3\2"+ + "\2\2\u0812\u0814\5\u01cc\u00e7\2\u0813\u0812\3\2\2\2\u0813\u0814\3\2\2"+ + "\2\u0814\u0815\3\2\2\2\u0815\u0816\5\u01da\u00ee\2\u0816\u0817\7\u0300"+ + "\2\2\u0817\u0818\7\u02ff\2\2\u0818\u0819\7\u029d\2\2\u0819\u081a\7\u0318"+ + "\2\2\u081a\u081b\5\u0202\u0102\2\u081b\u081c\7\u02f9\2\2\u081c\u081d\7"+ + "\u029e\2\2\u081d\u081e\7\u0318\2\2\u081e\u0823\5\u0202\u0102\2\u081f\u0820"+ + "\7\u02f9\2\2\u0820\u0821\7\u029f\2\2\u0821\u0822\7\u0318\2\2\u0822\u0824"+ + "\7\u0306\2\2\u0823\u081f\3\2\2\2\u0823\u0824\3\2\2\2\u0824\u0829\3\2\2"+ + "\2\u0825\u0826\7\u02f9\2\2\u0826\u0827\7\u02a0\2\2\u0827\u0828\7\u0318"+ + "\2\2\u0828\u082a\5\u0202\u0102\2\u0829\u0825\3\2\2\2\u0829\u082a\3\2\2"+ + "\2\u082a\u082d\3\2\2\2\u082b\u082c\7\u02f9\2\2\u082c\u082e\7\u02a1\2\2"+ + "\u082d\u082b\3\2\2\2\u082d\u082e\3\2\2\2\u082e\u0833\3\2\2\2\u082f\u0830"+ + "\7\u02f9\2\2\u0830\u0831\7\u02a5\2\2\u0831\u0832\7\u0318\2\2\u0832\u0834"+ + "\5\u01b2\u00da\2\u0833\u082f\3\2\2\2\u0833\u0834\3\2\2\2\u0834\u0839\3"+ + "\2\2\2\u0835\u0836\7\u02f9\2\2\u0836\u0837\7\u02ae\2\2\u0837\u0838\7\u0318"+ + "\2\2\u0838\u083a\t\t\2\2\u0839\u0835\3\2\2\2\u0839\u083a\3\2\2\2\u083a"+ + "\u083d\3\2\2\2\u083b\u083c\7\u02f9\2\2\u083c\u083e\7\u02af\2\2\u083d\u083b"+ + "\3\2\2\2\u083d\u083e\3\2\2\2\u083e\u083f\3\2\2\2\u083f\u0840\7\u0300\2"+ + "\2\u0840\u08a9\3\2\2\2\u0841\u0842\7\u0080\2\2\u0842\u0843\7\20\2\2\u0843"+ + "\u0844\5\u01cc\u00e7\2\u0844\u0845\7\u02ff\2\2\u0845\u0846\7\u02b2\2\2"+ + "\u0846\u0847\7\u0318\2\2\u0847\u0848\5\u01d8\u00ed\2\u0848\u0849\7\u02f9"+ + "\2\2\u0849\u084a\7\u029d\2\2\u084a\u084b\7\u0318\2\2\u084b\u084c\5\u0202"+ + "\u0102\2\u084c\u084d\7\u02f9\2\2\u084d\u084e\7\u029e\2\2\u084e\u084f\7"+ + "\u0318\2\2\u084f\u0854\5\u0202\u0102\2\u0850\u0851\7\u02f9\2\2\u0851\u0852"+ + "\7\u029f\2\2\u0852\u0853\7\u0318\2\2\u0853\u0855\7\u0306\2\2\u0854\u0850"+ + "\3\2\2\2\u0854\u0855\3\2\2\2\u0855\u085a\3\2\2\2\u0856\u0857\7\u02f9\2"+ + "\2\u0857\u0858\7\u02a0\2\2\u0858\u0859\7\u0318\2\2\u0859\u085b\5\u0202"+ + "\u0102\2\u085a\u0856\3\2\2\2\u085a\u085b\3\2\2\2\u085b\u085e\3\2\2\2\u085c"+ + "\u085d\7\u02f9\2\2\u085d\u085f\7\u02a1\2\2\u085e\u085c\3\2\2\2\u085e\u085f"+ + "\3\2\2\2\u085f\u0864\3\2\2\2\u0860\u0861\7\u02f9\2\2\u0861\u0862\7\u02a2"+ + "\2\2\u0862\u0863\7\u0318\2\2\u0863\u0865\5\u0202\u0102\2\u0864\u0860\3"+ + "\2\2\2\u0864\u0865\3\2\2\2\u0865\u086a\3\2\2\2\u0866\u0867\7\u02f9\2\2"+ + "\u0867\u0868\7\u02a3\2\2\u0868\u0869\7\u0318\2\2\u0869\u086b\5\u0202\u0102"+ + "\2\u086a\u0866\3\2\2\2\u086a\u086b\3\2\2\2\u086b\u0870\3\2\2\2\u086c\u086d"+ + "\7\u02f9\2\2\u086d\u086e\7\u02a4\2\2\u086e\u086f\7\u0318\2\2\u086f\u0871"+ + "\5\u0202\u0102\2\u0870\u086c\3\2\2\2\u0870\u0871\3\2\2\2\u0871\u0876\3"+ + "\2\2\2\u0872\u0873\7\u02f9\2\2\u0873\u0874\7\u02a5\2\2\u0874\u0875\7\u0318"+ + "\2\2\u0875\u0877\5\u01b2\u00da\2\u0876\u0872\3\2\2\2\u0876\u0877\3\2\2"+ + "\2\u0877\u087c\3\2\2\2\u0878\u0879\7\u02f9\2\2\u0879\u087a\7\u02a6\2\2"+ + "\u087a\u087b\7\u0318\2\2\u087b\u087d\5\u0202\u0102\2\u087c\u0878\3\2\2"+ + "\2\u087c\u087d\3\2\2\2\u087d\u0882\3\2\2\2\u087e\u087f\7\u02f9\2\2\u087f"+ + "\u0880\7\u02a7\2\2\u0880\u0881\7\u0318\2\2\u0881\u0883\5\u0202\u0102\2"+ + "\u0882\u087e\3\2\2\2\u0882\u0883\3\2\2\2\u0883\u0888\3\2\2\2\u0884\u0885"+ + "\7\u02f9\2\2\u0885\u0886\7\u02a8\2\2\u0886\u0887\7\u0318\2\2\u0887\u0889"+ + "\5\u0202\u0102\2\u0888\u0884\3\2\2\2\u0888\u0889\3\2\2\2\u0889\u088e\3"+ + "\2\2\2\u088a\u088b\7\u02f9\2\2\u088b\u088c\7\u02a9\2\2\u088c\u088d\7\u0318"+ + "\2\2\u088d\u088f\7\u0306\2\2\u088e\u088a\3\2\2\2\u088e\u088f\3\2\2\2\u088f"+ + "\u0894\3\2\2\2\u0890\u0891\7\u02f9\2\2\u0891\u0892\7\u02aa\2\2\u0892\u0893"+ + "\7\u0318\2\2\u0893\u0895\5\u0202\u0102\2\u0894\u0890\3\2\2\2\u0894\u0895"+ + "\3\2\2\2\u0895\u0898\3\2\2\2\u0896\u0897\7\u02f9\2\2\u0897\u0899\7\u02ab"+ + "\2\2\u0898\u0896\3\2\2\2\u0898\u0899\3\2\2\2\u0899\u089e\3\2\2\2\u089a"+ + "\u089b\7\u02f9\2\2\u089b\u089c\7\u02ac\2\2\u089c\u089d\7\u0318\2\2\u089d"+ + "\u089f\5\u0202\u0102\2\u089e\u089a\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a4"+ + "\3\2\2\2\u08a0\u08a1\7\u02f9\2\2\u08a1\u08a2\7\u02ad\2\2\u08a2\u08a3\7"+ + "\u0318\2\2\u08a3\u08a5\5\u0202\u0102\2\u08a4\u08a0\3\2\2\2\u08a4\u08a5"+ + "\3\2\2\2\u08a5\u08a6\3\2\2\2\u08a6\u08a7\7\u0300\2\2\u08a7\u08a9\3\2\2"+ + "\2\u08a8\u078e\3\2\2\2\u08a8\u0800\3\2\2\2\u08a8\u0841\3\2\2\2\u08a9u"+ + "\3\2\2\2\u08aa\u08ab\7\u0080\2\2\u08ab\u08ac\7A\2\2\u08ac\u08ad\7\u02ff"+ + "\2\2\u08ad\u08ae\5\u01d8\u00ed\2\u08ae\u08af\7\35\2\2\u08af\u08b0\5\u01d8"+ + "\u00ed\2\u08b0\u08be\7\u0300\2\2\u08b1\u08b2\7\u0288\2\2\u08b2\u08b3\7"+ + "\u00f0\2\2\u08b3\u08b8\5\u0202\u0102\2\u08b4\u08b5\7\u02ff\2\2\u08b5\u08b6"+ + "\5\u01da\u00ee\2\u08b6\u08b7\7\u0300\2\2\u08b7\u08b9\3\2\2\2\u08b8\u08b4"+ + "\3\2\2\2\u08b8\u08b9\3\2\2\2\u08b9\u08bf\3\2\2\2\u08ba\u08bb\7\u028a\2"+ + "\2\u08bb\u08bf\7\u00f0\2\2\u08bc\u08bd\7\u0288\2\2\u08bd\u08bf\7\u0115"+ + "\2\2\u08be\u08b1\3\2\2\2\u08be\u08ba\3\2\2\2\u08be\u08bc\3\2\2\2\u08bf"+ + "\u08c4\3\2\2\2\u08c0\u08c1\7\35\2\2\u08c1\u08c5\7!\2\2\u08c2\u08c3\7\35"+ + "\2\2\u08c3\u08c5\7\u010a\2\2\u08c4\u08c0\3\2\2\2\u08c4\u08c2\3\2\2\2\u08c4"+ + "\u08c5\3\2\2\2\u08c5w\3\2\2\2\u08c6\u08c7\7\u02b4\2\2\u08c7\u08c8\7\u0318"+ + "\2\2\u08c8\u08d9\5\u01b2\u00da\2\u08c9\u08ca\7\u02b5\2\2\u08ca\u08cb\7"+ + "\u0318\2\2\u08cb\u08d9\5\u01b2\u00da\2\u08cc\u08cd\7\u02b6\2\2\u08cd\u08ce"+ + "\7\u0318\2\2\u08ce\u08d9\5\u01b2\u00da\2\u08cf\u08d0\7\u02b7\2\2\u08d0"+ + "\u08d1\7\u0318\2\2\u08d1\u08d9\5\u01b2\u00da\2\u08d2\u08d3\7\u02b8\2\2"+ + "\u08d3\u08d4\7\u0318\2\2\u08d4\u08d9\5\u01b2\u00da\2\u08d5\u08d6\7\u030a"+ + "\2\2\u08d6\u08d7\7\u0318\2\2\u08d7\u08d9\5\u01b2\u00da\2\u08d8\u08c6\3"+ + "\2\2\2\u08d8\u08c9\3\2\2\2\u08d8\u08cc\3\2\2\2\u08d8\u08cf\3\2\2\2\u08d8"+ + "\u08d2\3\2\2\2\u08d8\u08d5\3\2\2\2\u08d9y\3\2\2\2\u08da\u08df\5x=\2\u08db"+ + "\u08dc\7\u02f9\2\2\u08dc\u08de\5x=\2\u08dd\u08db\3\2\2\2\u08de\u08e1\3"+ + "\2\2\2\u08df\u08dd\3\2\2\2\u08df\u08e0\3\2\2\2\u08e0{\3\2\2\2\u08e1\u08df"+ + "\3\2\2\2\u08e2\u08e3\7\u0080\2\2\u08e3\u08e7\7[\2\2\u08e4\u08e5\7\u02b3"+ + "\2\2\u08e5\u08e6\7\u016f\2\2\u08e6\u08e8\7\u00d5\2\2\u08e7\u08e4\3\2\2"+ + "\2\u08e7\u08e8\3\2\2\2\u08e8\u08e9\3\2\2\2\u08e9\u08ea\5\u01cc\u00e7\2"+ + "\u08ea\u08eb\7\u02ff\2\2\u08eb\u08ec\5z>\2\u08ec\u08ed\7\u0300\2\2\u08ed"+ + "\u08fa\3\2\2\2\u08ee\u08ef\7\u0080\2\2\u08ef\u08f3\7[\2\2\u08f0\u08f1"+ + "\7\u02b3\2\2\u08f1\u08f2\7\u016f\2\2\u08f2\u08f4\7\u00d5\2\2\u08f3\u08f0"+ + "\3\2\2\2\u08f3\u08f4\3\2\2\2\u08f4\u08f5\3\2\2\2\u08f5\u08f6\5\u01cc\u00e7"+ + "\2\u08f6\u08f7\7\u00ee\2\2\u08f7\u08f8\5\u01cc\u00e7\2\u08f8\u08fa\3\2"+ + "\2\2\u08f9\u08e2\3\2\2\2\u08f9\u08ee\3\2\2\2\u08fa}\3\2\2\2\u08fb\u08fd"+ + "\7\u0080\2\2\u08fc\u08fe\7\u009d\2\2\u08fd\u08fc\3\2\2\2\u08fd\u08fe\3"+ + "\2\2\2\u08fe\u08ff\3\2\2\2\u08ff\u0900\7w\2\2\u0900\u0901\5\u0202\u0102"+ + "\2\u0901\u0902\7\u00e5\2\2\u0902\u0903\7\u0309\2\2\u0903\u0904\7\u0249"+ + "\2\2\u0904\u0905\7\u0309\2\2\u0905\u0906\7\u00ee\2\2\u0906\u0907\5\u01cc"+ + "\u00e7\2\u0907\177\3\2\2\2\u0908\u0909\7\u0080\2\2\u0909\u090a\7\u0094"+ + "\2\2\u090a\u090c\5\u01cc\u00e7\2\u090b\u090d\7\u0288\2\2\u090c\u090b\3"+ + "\2\2\2\u090c\u090d\3\2\2\2\u090d\u0911\3\2\2\2\u090e\u090f\7\u0195\2\2"+ + "\u090f\u0910\7\u0318\2\2\u0910\u0912\5\u01cc\u00e7\2\u0911\u090e\3\2\2"+ + "\2\u0911\u0912\3\2\2\2\u0912\u0916\3\2\2\2\u0913\u0914\7\u023e\2\2\u0914"+ + "\u0915\7\u0318\2\2\u0915\u0917\5\u01cc\u00e7\2\u0916\u0913\3\2\2\2\u0916"+ + "\u0917\3\2\2\2\u0917\u091b\3\2\2\2\u0918\u0919\7\u00c6\2\2\u0919\u091a"+ + "\7\u0318\2\2\u091a\u091c\5\u01cc\u00e7\2\u091b\u0918\3\2\2\2\u091b\u091c"+ + "\3\2\2\2\u091c\u0920\3\2\2\2\u091d\u091e\7\u02b5\2\2\u091e\u091f\7\u0318"+ + "\2\2\u091f\u0921\5\u01cc\u00e7\2\u0920\u091d\3\2\2\2\u0920\u0921\3\2\2"+ + "\2\u0921\u0925\3\2\2\2\u0922\u0923\7\u02b6\2\2\u0923\u0924\7\u0318\2\2"+ + "\u0924\u0926\5\u01cc\u00e7\2\u0925\u0922\3\2\2\2\u0925\u0926\3\2\2\2\u0926"+ + "\u092a\3\2\2\2\u0927\u0928\7\u023c\2\2\u0928\u0929\7\u0318\2\2\u0929\u092b"+ + "\5\u01cc\u00e7\2\u092a\u0927\3\2\2\2\u092a\u092b\3\2\2\2\u092b\u092f\3"+ + "\2\2\2\u092c\u092d\7\u02b9\2\2\u092d\u092e\7\u0318\2\2\u092e\u0930\5\u01cc"+ + "\u00e7\2\u092f\u092c\3\2\2\2\u092f\u0930\3\2\2\2\u0930\u0935\3\2\2\2\u0931"+ + "\u0932\7m\2\2\u0932\u0933\7\u0138\2\2\u0933\u0934\7\u0318\2\2\u0934\u0936"+ + "\7\u0306\2\2\u0935\u0931\3\2\2\2\u0935\u0936\3\2\2\2\u0936\u093a\3\2\2"+ + "\2\u0937\u0938\7\u02ba\2\2\u0938\u0939\7\u0318\2\2\u0939\u093b\7\u0306"+ + "\2\2\u093a\u0937\3\2\2\2\u093a\u093b\3\2\2\2\u093b\u0081\3\2\2\2\u093c"+ + "\u093d\7o\2\2\u093d\u093f\5\u01cc\u00e7\2\u093e\u093c\3\2\2\2\u093e\u093f"+ + "\3\2\2\2\u093f\u0948\3\2\2\2\u0940\u0941\7\u016f\2\2\u0941\u0949\7\u0174"+ + "\2\2\u0942\u0949\7\u0174\2\2\u0943\u0944\7P\2\2\u0944\u0945\7\u02ff\2"+ + "\2\u0945\u0946\5\u01b2\u00da\2\u0946\u0947\7\u0300\2\2\u0947\u0949\3\2"+ + "\2\2\u0948\u0940\3\2\2\2\u0948\u0942\3\2\2\2\u0948\u0943\3\2\2\2\u0949"+ + "\u0083\3\2\2\2\u094a\u094b\7\u0080\2\2\u094b\u094c\7\u00bc\2\2\u094c\u094e"+ + "\5\u01cc\u00e7\2\u094d\u094f\7\35\2\2\u094e\u094d\3\2\2\2\u094e\u094f"+ + "\3\2\2\2\u094f\u0950\3\2\2\2\u0950\u0958\5\u01d8\u00ed\2\u0951\u0952\7"+ + "Z\2\2\u0952\u0957\5\u01cc\u00e7\2\u0953\u0954\7\u009d\2\2\u0954\u0957"+ + "\5\u01b2\u00da\2\u0955\u0957\5\u0082B\2\u0956\u0951\3\2\2\2\u0956\u0953"+ + "\3\2\2\2\u0956\u0955\3\2\2\2\u0957\u095a\3\2\2\2\u0958\u0956\3\2\2\2\u0958"+ + "\u0959\3\2\2\2\u0959\u0085\3\2\2\2\u095a\u0958\3\2\2\2\u095b\u095c\5\u0202"+ + "\u0102\2\u095c\u095d\7\u010b\2\2\u095d\u095e\7\u02ff\2\2\u095e\u0963\7"+ + "\u0309\2\2\u095f\u0960\7\u02f9\2\2\u0960\u0962\7\u0309\2\2\u0961\u095f"+ + "\3\2\2\2\u0962\u0965\3\2\2\2\u0963\u0961\3\2\2\2\u0963\u0964\3\2\2\2\u0964"+ + "\u0966\3\2\2\2\u0965\u0963\3\2\2\2\u0966\u096b\7\u0300\2\2\u0967\u0968"+ + "\7\31\2\2\u0968\u096a\5\u0086D\2\u0969\u0967\3\2\2\2\u096a\u096d\3\2\2"+ + "\2\u096b\u0969\3\2\2\2\u096b\u096c\3\2\2\2\u096c\u0087\3\2\2\2\u096d\u096b"+ + "\3\2\2\2\u096e\u096f\7\u0080\2\2\u096f\u0970\7\u02bb\2\2\u0970\u0971\7"+ + "\u0256\2\2\u0971\u0972\5\u0202\u0102\2\u0972\u0973\7\u0182\2\2\u0973\u0976"+ + "\5\u0202\u0102\2\u0974\u0975\7\u0283\2\2\u0975\u0977\5\u0086D\2\u0976"+ + "\u0974\3\2\2\2\u0976\u0977\3\2\2\2\u0977\u0978\3\2\2\2\u0978\u0979\7\u00d3"+ + "\2\2\u0979\u097a\7\u01ba\2\2\u097a\u097b\5\u0202\u0102\2\u097b\u097c\7"+ + "\u02ff\2\2\u097c\u097d\7\u0300\2\2\u097d\u0089\3\2\2\2\u097e\u097f\5\u01cc"+ + "\u00e7\2\u097f\u0984\7\u0309\2\2\u0980\u0981\7\u02f9\2\2\u0981\u0983\5"+ + "\u008aF\2\u0982\u0980\3\2\2\2\u0983\u0986\3\2\2\2\u0984\u0982\3\2\2\2"+ + "\u0984\u0985\3\2\2\2\u0985\u008b\3\2\2\2\u0986\u0984\3\2\2\2\u0987\u0988"+ + "\7\u0080\2\2\u0988\u0989\7\u00e7\2\2\u0989\u098a\7\u0093\2\2\u098a\u098b"+ + "\7\u02bc\2\2\u098b\u0992\5\u0202\u0102\2\u098c\u098d\7\u00fe\2\2\u098d"+ + "\u0991\5\u0202\u0102\2\u098e\u098f\7\u0169\2\2\u098f\u0991\7\u00fe\2\2"+ + "\u0990\u098c\3\2\2\2\u0990\u098e\3\2\2\2\u0991\u0994\3\2\2\2\u0992\u0990"+ + "\3\2\2\2\u0992\u0993\3\2\2\2\u0993\u0999\3\2\2\2\u0994\u0992\3\2\2\2\u0995"+ + "\u0996\7\u0277\2\2\u0996\u099a\5\u0202\u0102\2\u0997\u0998\7\u0169\2\2"+ + "\u0998\u099a\7\u0277\2\2\u0999\u0995\3\2\2\2\u0999\u0997\3\2\2\2\u0999"+ + "\u099a\3\2\2\2\u099a\u09a0\3\2\2\2\u099b\u099c\7\u0188\2\2\u099c\u099d"+ + "\7\u02ff\2\2\u099d\u099e\5\u008aF\2\u099e\u099f\7\u0300\2\2\u099f\u09a1"+ + "\3\2\2\2\u09a0\u099b\3\2\2\2\u09a0\u09a1\3\2\2\2\u09a1\u008d\3\2\2\2\u09a2"+ + "\u09a3\7\u0080\2\2\u09a3\u09a4\7\u00e7\2\2\u09a4\u09a8\7\u0239\2\2\u09a5"+ + "\u09a6\7\u02b3\2\2\u09a6\u09a7\7\u016f\2\2\u09a7\u09a9\7\u00d5\2\2\u09a8"+ + "\u09a5\3\2\2\2\u09a8\u09a9\3\2\2\2\u09a9\u09aa\3\2\2\2\u09aa\u09ab\5\u0202"+ + "\u0102\2\u09ab\u09ac\7\u02ff\2\2\u09ac\u09ad\5\u0202\u0102\2\u09ad\u09b3"+ + "\5\u0202\u0102\2\u09ae\u09af\7\u0188\2\2\u09af\u09b0\7\u02ff\2\2\u09b0"+ + "\u09b1\5\u008aF\2\u09b1\u09b2\7\u0300\2\2\u09b2\u09b4\3\2\2\2\u09b3\u09ae"+ + "\3\2\2\2\u09b3\u09b4\3\2\2\2\u09b4\u09b7\3\2\2\2\u09b5\u09b6\7Z\2\2\u09b6"+ + "\u09b8\5x=\2\u09b7\u09b5\3\2\2\2\u09b7\u09b8\3\2\2\2\u09b8\u09b9\3\2\2"+ + "\2\u09b9\u09bc\7\u0300\2\2\u09ba\u09bb\7\u0111\2\2\u09bb\u09bd\5\u01ce"+ + "\u00e8\2\u09bc\u09ba\3\2\2\2\u09bc\u09bd\3\2\2\2\u09bd\u09be\3\2\2\2\u09be"+ + "\u09bf\7\u02bd\2\2\u09bf\u09c5\5\u01cc\u00e7\2\u09c0\u09c1\7\u0188\2\2"+ + "\u09c1\u09c2\7\u02ff\2\2\u09c2\u09c3\5\u008aF\2\u09c3\u09c4\7\u0300\2"+ + "\2\u09c4\u09c6\3\2\2\2\u09c5\u09c0\3\2\2\2\u09c5\u09c6\3\2\2\2\u09c6\u008f"+ + "\3\2\2\2\u09c7\u09ca\7\u0080\2\2\u09c8\u09c9\7\u0189\2\2\u09c9\u09cb\7"+ + "\u01d8\2\2\u09ca\u09c8\3\2\2\2\u09ca\u09cb\3\2\2\2\u09cb\u09cc\3\2\2\2"+ + "\u09cc\u09cd\7\u00f0\2\2\u09cd\u09ce\5\u01cc\u00e7\2\u09ce\u0091\3\2\2"+ + "\2\u09cf\u09d0\7\u0080\2\2\u09d0\u09d1\7\u00fc\2\2\u09d1\u09fb\5\u0202"+ + "\u0102\2\u09d2\u09d4\7\u0288\2\2\u09d3\u09d2\3\2\2\2\u09d3\u09d4\3\2\2"+ + "\2\u09d4\u09f7\3\2\2\2\u09d5\u09f8\7\u0291\2\2\u09d6\u09f8\7\u0292\2\2"+ + "\u09d7\u09f8\7\u0081\2\2\u09d8\u09f8\7\u016a\2\2\u09d9\u09f8\7\u0293\2"+ + "\2\u09da\u09f8\7\u0294\2\2\u09db\u09f8\7\u0082\2\2\u09dc\u09f8\7\u016b"+ + "\2\2\u09dd\u09f8\7\u0295\2\2\u09de\u09f8\7\u0296\2\2\u09df\u09f8\7\u0297"+ + "\2\2\u09e0\u09f8\7\u0298\2\2\u09e1\u09e3\t\n\2\2\u09e2\u09e1\3\2\2\2\u09e2"+ + "\u09e3\3\2\2\2\u09e3\u09e4\3\2\2\2\u09e4\u09e5\7\u01a3\2\2\u09e5\u09f8"+ + "\t\13\2\2\u09e6\u09e7\7\u0275\2\2\u09e7\u09e8\7\u026a\2\2\u09e8\u09f8"+ + "\7\u0309\2\2\u09e9\u09ea\7\u010b\2\2\u09ea\u09eb\7\u01e7\2\2\u09eb\u09f8"+ + "\5\u01ce\u00e8\2\u09ec\u09ed\7\u010b\2\2\u09ed\u09ee\7\u00fc\2\2\u09ee"+ + "\u09f8\5\u01ce\u00e8\2\u09ef\u09f0\7\u01e7\2\2\u09f0\u09f8\5\u01ce\u00e8"+ + "\2\u09f1\u09f2\7\16\2\2\u09f2\u09f8\5\u01ce\u00e8\2\u09f3\u09f4\7\u026e"+ + "\2\2\u09f4\u09f8\5\u01ce\u00e8\2\u09f5\u09f6\7\u0236\2\2\u09f6\u09f8\7"+ + "\u0306\2\2\u09f7\u09d5\3\2\2\2\u09f7\u09d6\3\2\2\2\u09f7\u09d7\3\2\2\2"+ + "\u09f7\u09d8\3\2\2\2\u09f7\u09d9\3\2\2\2\u09f7\u09da\3\2\2\2\u09f7\u09db"+ + "\3\2\2\2\u09f7\u09dc\3\2\2\2\u09f7\u09dd\3\2\2\2\u09f7\u09de\3\2\2\2\u09f7"+ + "\u09df\3\2\2\2\u09f7\u09e0\3\2\2\2\u09f7\u09e2\3\2\2\2\u09f7\u09e6\3\2"+ + "\2\2\u09f7\u09e9\3\2\2\2\u09f7\u09ec\3\2\2\2\u09f7\u09ef\3\2\2\2\u09f7"+ + "\u09f1\3\2\2\2\u09f7\u09f3\3\2\2\2\u09f7\u09f5\3\2\2\2\u09f8\u09f9\3\2"+ + "\2\2\u09f9\u09f7\3\2\2\2\u09f9\u09fa\3\2\2\2\u09fa\u09fc\3\2\2\2\u09fb"+ + "\u09d3\3\2\2\2\u09fb\u09fc\3\2\2\2\u09fc\u0093\3\2\2\2\u09fd\u09ff\7\u0080"+ + "\2\2\u09fe\u0a00\7\u0265\2\2\u09ff\u09fe\3\2\2\2\u09ff\u0a00\3\2\2\2\u0a00"+ + "\u0a01\3\2\2\2\u0a01\u0a03\7\u010e\2\2\u0a02\u0a04\7\u02c4\2\2\u0a03\u0a02"+ + "\3\2\2\2\u0a03\u0a04\3\2\2\2\u0a04\u0a0b\3\2\2\2\u0a05\u0a06\7\u02b3\2"+ + "\2\u0a06\u0a07\7\u016f\2\2\u0a07\u0a09\7\u00d5\2\2\u0a08\u0a05\3\2\2\2"+ + "\u0a08\u0a09\3\2\2\2\u0a09\u0a0a\3\2\2\2\u0a0a\u0a0c\5\u0202\u0102\2\u0a0b"+ + "\u0a08\3\2\2\2\u0a0b\u0a0c\3\2\2\2\u0a0c\u0a0d\3\2\2\2\u0a0d\u0a0e\7\u0182"+ + "\2\2\u0a0e\u0a11\5\u0202\u0102\2\u0a0f\u0a10\7\u0273\2\2\u0a10\u0a12\5"+ + "\u01dc\u00ef\2\u0a11\u0a0f\3\2\2\2\u0a11\u0a12\3\2\2\2\u0a12\u0a15\3\2"+ + "\2\2\u0a13\u0a14\7\u023c\2\2\u0a14\u0a16\5\u0202\u0102\2\u0a15\u0a13\3"+ + "\2\2\2\u0a15\u0a16\3\2\2\2\u0a16\u0a19\3\2\2\2\u0a17\u0a18\7\u0285\2\2"+ + "\u0a18\u0a1a\5\u01ec\u00f7\2\u0a19\u0a17\3\2\2\2\u0a19\u0a1a\3\2\2\2\u0a1a"+ + "\u0095\3\2\2\2\u0a1b\u0a1e\7\u0080\2\2\u0a1c\u0a1d\7\u0189\2\2\u0a1d\u0a1f"+ + "\7\u01d8\2\2\u0a1e\u0a1c\3\2\2\2\u0a1e\u0a1f\3\2\2\2\u0a1f\u0a21\3\2\2"+ + "\2\u0a20\u0a22\7\u01b9\2\2\u0a21\u0a20\3\2\2\2\u0a21\u0a22\3\2\2\2\u0a22"+ + "\u0a23\3\2\2\2\u0a23\u0a24\7\u012d\2\2\u0a24\u0a3d\5\u0202\u0102\2\u0a25"+ + "\u0a28\7\u0080\2\2\u0a26\u0a27\7\u0189\2\2\u0a27\u0a29\7\u01d8\2\2\u0a28"+ + "\u0a26\3\2\2\2\u0a28\u0a29\3\2\2\2\u0a29\u0a2b\3\2\2\2\u0a2a\u0a2c\7\u025d"+ + "\2\2\u0a2b\u0a2a\3\2\2\2\u0a2b\u0a2c\3\2\2\2\u0a2c\u0a2e\3\2\2\2\u0a2d"+ + "\u0a2f\7\u01b9\2\2\u0a2e\u0a2d\3\2\2\2\u0a2e\u0a2f\3\2\2\2\u0a2f\u0a30"+ + "\3\2\2\2\u0a30\u0a31\7\u012d\2\2\u0a31\u0a32\5\u0202\u0102\2\u0a32\u0a33"+ + "\7\u00fe\2\2\u0a33\u0a36\5\u0202\u0102\2\u0a34\u0a35\7\u02c5\2\2\u0a35"+ + "\u0a37\5\u0202\u0102\2\u0a36\u0a34\3\2\2\2\u0a36\u0a37\3\2\2\2\u0a37\u0a3a"+ + "\3\2\2\2\u0a38\u0a39\7\u0277\2\2\u0a39\u0a3b\5\u0202\u0102\2\u0a3a\u0a38"+ + "\3\2\2\2\u0a3a\u0a3b\3\2\2\2\u0a3b\u0a3d\3\2\2\2\u0a3c\u0a1b\3\2\2\2\u0a3c"+ + "\u0a25\3\2\2\2\u0a3d\u0097\3\2\2\2\u0a3e\u0a3f\7\u0080\2\2\u0a3f\u0a40"+ + "\7\u02c6\2\2\u0a40\u0a44\7\u0281\2\2\u0a41\u0a42\7\u02b3\2\2\u0a42\u0a43"+ + "\7\u016f\2\2\u0a43\u0a45\7\u00d5\2\2\u0a44\u0a41\3\2\2\2\u0a44\u0a45\3"+ + "\2\2\2\u0a45\u0a46\3\2\2\2\u0a46\u0a4b\5\u0202\u0102\2\u0a47\u0a48\7\u02ff"+ + "\2\2\u0a48\u0a49\5\u01d0\u00e9\2\u0a49\u0a4a\7\u0300\2\2\u0a4a\u0a4c\3"+ + "\2\2\2\u0a4b\u0a47\3\2\2\2\u0a4b\u0a4c\3\2\2\2\u0a4c\u0a4e\3\2\2\2\u0a4d"+ + "\u0a4f\7\u0288\2\2\u0a4e\u0a4d\3\2\2\2\u0a4e\u0a4f\3\2\2\2\u0a4f\u0a52"+ + "\3\2\2\2\u0a50\u0a51\7\u023c\2\2\u0a51\u0a53\5\u0202\u0102\2\u0a52\u0a50"+ + "\3\2\2\2\u0a52\u0a53\3\2\2\2\u0a53\u0a54\3\2\2\2\u0a54\u0a55\7\35\2\2"+ + "\u0a55\u0a5b\5\u015a\u00ae\2\u0a56\u0a58\7\u0288\2\2\u0a57\u0a59\7\u0169"+ + "\2\2\u0a58\u0a57\3\2\2\2\u0a58\u0a59\3\2\2\2\u0a59\u0a5a\3\2\2\2\u0a5a"+ + "\u0a5c\7\u0093\2\2\u0a5b\u0a56\3\2\2\2\u0a5b\u0a5c\3\2\2\2\u0a5c\u0099"+ + "\3\2\2\2\u0a5d\u0a5e\7\u0080\2\2\u0a5e\u0a5f\7\u0186\2\2\u0a5f\u0a60\5"+ + "\u0202\u0102\2\u0a60\u0a61\7\u02ff\2\2\u0a61\u0a62\7\u01ba\2\2\u0a62\u0a63"+ + "\7\u0318\2\2\u0a63\u0a68\5\u0202\u0102\2\u0a64\u0a65\7\u02f9\2\2\u0a65"+ + "\u0a66\7\u02c7\2\2\u0a66\u0a67\7\u0318\2\2\u0a67\u0a69\5\u01cc\u00e7\2"+ + "\u0a68\u0a64\3\2\2\2\u0a68\u0a69\3\2\2\2\u0a69\u0a6e\3\2\2\2\u0a6a\u0a6b"+ + "\7\u02f9\2\2\u0a6b\u0a6c\7\u02c8\2\2\u0a6c\u0a6d\7\u0318\2\2\u0a6d\u0a6f"+ + "\5\u01cc\u00e7\2\u0a6e\u0a6a\3\2\2\2\u0a6e\u0a6f\3\2\2\2\u0a6f\u0a74\3"+ + "\2\2\2\u0a70\u0a71\7\u02f9\2\2\u0a71\u0a72\7\u02c9\2\2\u0a72\u0a73\7\u0318"+ + "\2\2\u0a73\u0a75\5\u01cc\u00e7\2\u0a74\u0a70\3\2\2\2\u0a74\u0a75\3\2\2"+ + "\2\u0a75\u0a7a\3\2\2\2\u0a76\u0a77\7\u02f9\2\2\u0a77\u0a78\7\u02ca\2\2"+ + "\u0a78\u0a79\7\u0318\2\2\u0a79\u0a7b\5\u01cc\u00e7\2\u0a7a\u0a76\3\2\2"+ + "\2\u0a7a\u0a7b\3\2\2\2\u0a7b\u0a80\3\2\2\2\u0a7c\u0a7d\7\u02f9\2\2\u0a7d"+ + "\u0a7e\7\u01dc\2\2\u0a7e\u0a7f\7\u0318\2\2\u0a7f\u0a81\5\u01cc\u00e7\2"+ + "\u0a80\u0a7c\3\2\2\2\u0a80\u0a81\3\2\2\2\u0a81\u0a86\3\2\2\2\u0a82\u0a83"+ + "\7\u02f9\2\2\u0a83\u0a84\7\u0126\2\2\u0a84\u0a85\7\u0318\2\2\u0a85\u0a87"+ + "\5\u01cc\u00e7\2\u0a86\u0a82\3\2\2\2\u0a86\u0a87\3\2\2\2\u0a87\u0a8a\3"+ + "\2\2\2\u0a88\u0a89\7\u02f9\2\2\u0a89\u0a8b\7\u02cb\2\2\u0a8a\u0a88\3\2"+ + "\2\2\u0a8a\u0a8b\3\2\2\2\u0a8b\u0a8e\3\2\2\2\u0a8c\u0a8d\7\u02f9\2\2\u0a8d"+ + "\u0a8f\7\u02cc\2\2\u0a8e\u0a8c\3\2\2\2\u0a8e\u0a8f\3\2\2\2\u0a8f\u0a90"+ + "\3\2\2\2\u0a90\u0a91\7\u0300\2\2\u0a91\u009b\3\2\2\2\u0a92\u0a93\7\u0186"+ + "\2\2\u0a93\u0a94\7\u0306\2\2\u0a94\u0a9b\5\u0202\u0102\2\u0a95\u0a96\7"+ + "\u02ff\2\2\u0a96\u0a97\5\u0202\u0102\2\u0a97\u0a98\7\u02f9\2\2\u0a98\u0a99"+ + "\5\u0202\u0102\2\u0a99\u0a9a\7\u0300\2\2\u0a9a\u0a9c\3\2\2\2\u0a9b\u0a95"+ + "\3\2\2\2\u0a9b\u0a9c\3\2\2\2\u0a9c\u0ab1\3\2\2\2\u0a9d\u0a9e\7\u00f0\2"+ + "\2\u0a9e\u0aa7\7\u0306\2\2\u0a9f\u0aa0\7\u02ff\2\2\u0aa0\u0aa3\5\u0202"+ + "\u0102\2\u0aa1\u0aa2\7\u02f9\2\2\u0aa2\u0aa4\5\u0202\u0102\2\u0aa3\u0aa1"+ + "\3\2\2\2\u0aa3\u0aa4\3\2\2\2\u0aa4\u0aa5\3\2\2\2\u0aa5\u0aa6\7\u0300\2"+ + "\2\u0aa6\u0aa8\3\2\2\2\u0aa7\u0a9f\3\2\2\2\u0aa7\u0aa8\3\2\2\2\u0aa8\u0aa9"+ + "\3\2\2\2\u0aa9\u0aaa\5\u0202\u0102\2\u0aaa\u0aab\7\u02ff\2\2\u0aab\u0aac"+ + "\5\u01da\u00ee\2\u0aac\u0aad\7\u0300\2\2\u0aad\u0ab1\3\2\2\2\u0aae\u0aaf"+ + "\7\u022b\2\2\u0aaf\u0ab1\5\u0202\u0102\2\u0ab0\u0a92\3\2\2\2\u0ab0\u0a9d"+ + "\3\2\2\2\u0ab0\u0aae\3\2\2\2\u0ab1\u009d\3\2\2\2\u0ab2\u0ab3\7\u0080\2"+ + "\2\u0ab3\u0ab4\7\u0186\2\2\u0ab4\u0ab5\7S\2\2\u0ab5\u0ab7\5\u0202\u0102"+ + "\2\u0ab6\u0ab8\7\u009d\2\2\u0ab7\u0ab6\3\2\2\2\u0ab7\u0ab8\3\2\2\2\u0ab8"+ + "\u0ab9\3\2\2\2\u0ab9\u0aba\7\u00e5\2\2\u0aba\u0abb\7\u025e\2\2\u0abb\u0abc"+ + "\5\u0202\u0102\2\u0abc\u0abd\7\u0273\2\2\u0abd\u0ac0\5\u01dc\u00ef\2\u0abe"+ + "\u0abf\7\u02cd\2\2\u0abf\u0ac1\5\u0202\u0102\2\u0ac0\u0abe\3\2\2\2\u0ac0"+ + "\u0ac1\3\2\2\2\u0ac1\u0ac2\3\2\2\2\u0ac2\u0ac3\7\35\2\2\u0ac3\u0ac8\5"+ + "\u009cO\2\u0ac4\u0ac5\7\u02f9\2\2\u0ac5\u0ac7\5\u009cO\2\u0ac6\u0ac4\3"+ + "\2\2\2\u0ac7\u0aca\3\2\2\2\u0ac8\u0ac6\3\2\2\2\u0ac8\u0ac9\3\2\2\2\u0ac9"+ + "\u009f\3\2\2\2\u0aca\u0ac8\3\2\2\2\u0acb\u0acc\7\u0080\2\2\u0acc\u0acd"+ + "\7\u0186\2\2\u0acd\u0ace\7\u02cd\2\2\u0ace\u0acf\5\u0202\u0102\2\u0acf"+ + "\u0ad0\7\u0273\2\2\u0ad0\u0ad1\5\u01dc\u00ef\2\u0ad1\u00a1\3\2\2\2\u0ad2"+ + "\u0ad3\7\u0080\2\2\u0ad3\u0ad4\7\u02ce\2\2\u0ad4\u0ad5\5\u0202\u0102\2"+ + "\u0ad5\u0ad6\7\u0182\2\2\u0ad6\u0ad9\5\u0202\u0102\2\u0ad7\u0ad8\7\u00e5"+ + "\2\2\u0ad8\u0ada\t\f\2\2\u0ad9\u0ad7\3\2\2\2\u0ad9\u0ada\3\2\2\2\u0ada"+ + "\u0add\3\2\2\2\u0adb\u0adc\7\u0249\2\2\u0adc\u0ade\5\u01fa\u00fe\2\u0add"+ + "\u0adb\3\2\2\2\u0add\u0ade\3\2\2\2\u0ade\u0ae4\3\2\2\2\u0adf\u0ae0\7\u0273"+ + "\2\2\u0ae0\u0ae1\7\u02ff\2\2\u0ae1\u0ae2\5\u01ec\u00f7\2\u0ae2\u0ae3\7"+ + "\u0300\2\2\u0ae3\u0ae5\3\2\2\2\u0ae4\u0adf\3\2\2\2\u0ae4\u0ae5\3\2\2\2"+ + "\u0ae5\u0aec\3\2\2\2\u0ae6\u0ae7\7\u0288\2\2\u0ae7\u0ae8\7P\2\2\u0ae8"+ + "\u0ae9\7\u02ff\2\2\u0ae9\u0aea\5\u01ec\u00f7\2\u0aea\u0aeb\7\u0300\2\2"+ + "\u0aeb\u0aed\3\2\2\2\u0aec\u0ae6\3\2\2\2\u0aec\u0aed\3\2\2\2\u0aed\u00a3"+ + "\3\2\2\2\u0aee\u0aef\7\u0080\2\2\u0aef\u0af0\7\u01e7\2\2\u0af0\u0b1f\5"+ + "\u01fa\u00fe\2\u0af1\u0af3\7\u0288\2\2\u0af2\u0af1\3\2\2\2\u0af2\u0af3"+ + "\3\2\2\2\u0af3\u0b1b\3\2\2\2\u0af4\u0b1c\7\u0291\2\2\u0af5\u0b1c\7\u0292"+ + "\2\2\u0af6\u0b1c\7\u0081\2\2\u0af7\u0b1c\7\u016a\2\2\u0af8\u0b1c\7\u0293"+ + "\2\2\u0af9\u0b1c\7\u0294\2\2\u0afa\u0b1c\7\u0295\2\2\u0afb\u0b1c\7\u0296"+ + "\2\2\u0afc\u0b1c\7\u0297\2\2\u0afd\u0b1c\7\u0298\2\2\u0afe\u0b1c\7\u0299"+ + "\2\2\u0aff\u0b1c\7\u029a\2\2\u0b00\u0b1c\7\u029b\2\2\u0b01\u0b1c\7\u029c"+ + "\2\2\u0b02\u0b03\7m\2\2\u0b03\u0b04\7\u0138\2\2\u0b04\u0b1c\7\u0306\2"+ + "\2\u0b05\u0b07\7\u00c7\2\2\u0b06\u0b05\3\2\2\2\u0b06\u0b07\3\2\2\2\u0b07"+ + "\u0b08\3\2\2\2\u0b08\u0b09\7\u01a3\2\2\u0b09\u0b1c\t\13\2\2\u0b0a\u0b0b"+ + "\7\u0275\2\2\u0b0b\u0b0c\7\u026a\2\2\u0b0c\u0b1c\7\u0309\2\2\u0b0d\u0b0e"+ + "\7\u010b\2\2\u0b0e\u0b0f\7\u01e7\2\2\u0b0f\u0b1c\5\u01ce\u00e8\2\u0b10"+ + "\u0b11\7\u010b\2\2\u0b11\u0b12\7\u00fc\2\2\u0b12\u0b1c\5\u01ce\u00e8\2"+ + "\u0b13\u0b14\7\u01e7\2\2\u0b14\u0b1c\5\u01ce\u00e8\2\u0b15\u0b16\7\16"+ + "\2\2\u0b16\u0b1c\5\u01ce\u00e8\2\u0b17\u0b18\7\u026e\2\2\u0b18\u0b1c\5"+ + "\u01ce\u00e8\2\u0b19\u0b1a\7\u0236\2\2\u0b1a\u0b1c\7\u0306\2\2\u0b1b\u0af4"+ + "\3\2\2\2\u0b1b\u0af5\3\2\2\2\u0b1b\u0af6\3\2\2\2\u0b1b\u0af7\3\2\2\2\u0b1b"+ + "\u0af8\3\2\2\2\u0b1b\u0af9\3\2\2\2\u0b1b\u0afa\3\2\2\2\u0b1b\u0afb\3\2"+ + "\2\2\u0b1b\u0afc\3\2\2\2\u0b1b\u0afd\3\2\2\2\u0b1b\u0afe\3\2\2\2\u0b1b"+ + "\u0aff\3\2\2\2\u0b1b\u0b00\3\2\2\2\u0b1b\u0b01\3\2\2\2\u0b1b\u0b02\3\2"+ + "\2\2\u0b1b\u0b06\3\2\2\2\u0b1b\u0b0a\3\2\2\2\u0b1b\u0b0d\3\2\2\2\u0b1b"+ + "\u0b10\3\2\2\2\u0b1b\u0b13\3\2\2\2\u0b1b\u0b15\3\2\2\2\u0b1b\u0b17\3\2"+ + "\2\2\u0b1b\u0b19\3\2\2\2\u0b1c\u0b1d\3\2\2\2\u0b1d\u0b1b\3\2\2\2\u0b1d"+ + "\u0b1e\3\2\2\2\u0b1e\u0b20\3\2\2\2\u0b1f\u0af2\3\2\2\2\u0b1f\u0b20\3\2"+ + "\2\2\u0b20\u00a5\3\2\2\2\u0b21\u0b22\t\r\2\2\u0b22\u00a7\3\2\2\2\u0b23"+ + "\u0b26\7\u0080\2\2\u0b24\u0b25\7\u0189\2\2\u0b25\u0b27\7\u01d8\2\2\u0b26"+ + "\u0b24\3\2\2\2\u0b26\u0b27\3\2\2\2\u0b27\u0b28\3\2\2\2\u0b28\u0b29\7\u01f2"+ + "\2\2\u0b29\u0b2a\5\u01cc\u00e7\2\u0b2a\u0b2b\7\35\2\2\u0b2b\u0b2c\7\u0182"+ + "\2\2\u0b2c\u0b2d\5\u00a6T\2\u0b2d\u0b2e\7\u0249\2\2\u0b2e\u0b31\5\u0202"+ + "\u0102\2\u0b2f\u0b30\7\u0285\2\2\u0b30\u0b32\5\u01ec\u00f7\2\u0b31\u0b2f"+ + "\3\2\2\2\u0b31\u0b32\3\2\2\2\u0b32\u0b33\3\2\2\2\u0b33\u0b35\7\u00bb\2"+ + "\2\u0b34\u0b36\t\16\2\2\u0b35\u0b34\3\2\2\2\u0b35\u0b36\3\2\2\2\u0b36"+ + "\u0b39\3\2\2\2\u0b37\u0b3a\7\u0170\2\2\u0b38\u0b3a\5\u0202\u0102\2\u0b39"+ + "\u0b37\3\2\2\2\u0b39\u0b38\3\2\2\2\u0b3a\u00a9\3\2\2\2\u0b3b\u0b3c\7\u0080"+ + "\2\2\u0b3c\u0b3d\7\u01f5\2\2\u0b3d\u0b40\5\u0202\u0102\2\u0b3e\u0b3f\7"+ + "\'\2\2\u0b3f\u0b41\5\u01fa\u00fe\2\u0b40\u0b3e\3\2\2\2\u0b40\u0b41\3\2"+ + "\2\2\u0b41\u0b43\3\2\2\2\u0b42\u0b44\5\u0204\u0103\2\u0b43\u0b42\3\2\2"+ + "\2\u0b43\u0b44\3\2\2\2\u0b44\u0b5e\3\2\2\2\u0b45\u0b46\7\u0080\2\2\u0b46"+ + "\u0b47\7\u01f5\2\2\u0b47\u0b48\7\'\2\2\u0b48\u0b4a\5\u01fa\u00fe\2\u0b49"+ + "\u0b4b\5\u0204\u0103\2\u0b4a\u0b49\3\2\2\2\u0b4a\u0b4b\3\2\2\2\u0b4b\u0b5e"+ + "\3\2\2\2\u0b4c\u0b4d\7\u0080\2\2\u0b4d\u0b4e\7\u01f5\2\2\u0b4e\u0b4f\7"+ + "\u02b3\2\2\u0b4f\u0b50\7\u016f\2\2\u0b50\u0b51\7\u00d5\2\2\u0b51\u0b54"+ + "\5\u0202\u0102\2\u0b52\u0b53\7\'\2\2\u0b53\u0b55\5\u01fa\u00fe\2\u0b54"+ + "\u0b52\3\2\2\2\u0b54\u0b55\3\2\2\2\u0b55\u0b5e\3\2\2\2\u0b56\u0b57\7\u0080"+ + "\2\2\u0b57\u0b58\7\u01f5\2\2\u0b58\u0b59\7\u02b3\2\2\u0b59\u0b5a\7\u016f"+ + "\2\2\u0b5a\u0b5b\7\u00d5\2\2\u0b5b\u0b5c\7\'\2\2\u0b5c\u0b5e\5\u01fa\u00fe"+ + "\2\u0b5d\u0b3b\3\2\2\2\u0b5d\u0b45\3\2\2\2\u0b5d\u0b4c\3\2\2\2\u0b5d\u0b56"+ + "\3\2\2\2\u0b5e\u00ab\3\2\2\2\u0b5f\u0b61\7\u0080\2\2\u0b60\u0b62\t\17"+ + "\2\2\u0b61\u0b60\3\2\2\2\u0b61\u0b62\3\2\2\2\u0b62\u0b63\3\2\2\2\u0b63"+ + "\u0b67\7\u0203\2\2\u0b64\u0b65\7\u02b3\2\2\u0b65\u0b66\7\u016f\2\2\u0b66"+ + "\u0b68\7\u00d5\2\2\u0b67\u0b64\3\2\2\2\u0b67\u0b68\3\2\2\2\u0b68\u0b69"+ + "\3\2\2\2\u0b69\u0b6f\5\u0202\u0102\2\u0b6a\u0b6c\7\u010d\2\2\u0b6b\u0b6d"+ + "\78\2\2\u0b6c\u0b6b\3\2\2\2\u0b6c\u0b6d\3\2\2\2\u0b6d\u0b6e\3\2\2\2\u0b6e"+ + "\u0b70\7\u0306\2\2\u0b6f\u0b6a\3\2\2\2\u0b6f\u0b70\3\2\2\2\u0b70\u0b75"+ + "\3\2\2\2\u0b71\u0b72\7\u0155\2\2\u0b72\u0b76\7\u0306\2\2\u0b73\u0b74\7"+ + "\u0169\2\2\u0b74\u0b76\7\u0155\2\2\u0b75\u0b71\3\2\2\2\u0b75\u0b73\3\2"+ + "\2\2\u0b75\u0b76\3\2\2\2\u0b76\u0b7b\3\2\2\2\u0b77\u0b78\7\u014c\2\2\u0b78"+ + "\u0b7c\7\u0306\2\2\u0b79\u0b7a\7\u0169\2\2\u0b7a\u0b7c\7\u014c\2\2\u0b7b"+ + "\u0b77\3\2\2\2\u0b7b\u0b79\3\2\2\2\u0b7b\u0b7c\3\2\2\2\u0b7c\u0b82\3\2"+ + "\2\2\u0b7d\u0b7f\7\u0222\2\2\u0b7e\u0b80\7\u0288\2\2\u0b7f\u0b7e\3\2\2"+ + "\2\u0b7f\u0b80\3\2\2\2\u0b80\u0b81\3\2\2\2\u0b81\u0b83\7\u0306\2\2\u0b82"+ + "\u0b7d\3\2\2\2\u0b82\u0b83\3\2\2\2\u0b83\u0b86\3\2\2\2\u0b84\u0b85\7:"+ + "\2\2\u0b85\u0b87\7\u0306\2\2\u0b86\u0b84\3\2\2\2\u0b86\u0b87\3\2\2\2\u0b87"+ + "\u0b8c\3\2\2\2\u0b88\u0b8a\7\u0169\2\2\u0b89\u0b88\3\2\2\2\u0b89\u0b8a"+ + "\3\2\2\2\u0b8a\u0b8b\3\2\2\2\u0b8b\u0b8d\7\u0092\2\2\u0b8c\u0b89\3\2\2"+ + "\2\u0b8c\u0b8d\3\2\2\2\u0b8d\u0b97\3\2\2\2\u0b8e\u0b8f\7\u02cf\2\2\u0b8f"+ + "\u0b95\78\2\2\u0b90\u0b91\5\u0202\u0102\2\u0b91\u0b92\7\u0308\2\2\u0b92"+ + "\u0b93\5\u0202\u0102\2\u0b93\u0b96\3\2\2\2\u0b94\u0b96\7\u016c\2\2\u0b95"+ + "\u0b90\3\2\2\2\u0b95\u0b94\3\2\2\2\u0b96\u0b98\3\2\2\2\u0b97\u0b8e\3\2"+ + "\2\2\u0b97\u0b98\3\2\2\2\u0b98\u00ad\3\2\2\2\u0b99\u0b9a\5\u0206\u0104"+ + "\2\u0b9a\u00af\3\2\2\2\u0b9b\u0b9c\5\u0206\u0104\2\u0b9c\u00b1\3\2\2\2"+ + "\u0b9d\u0b9e\5\u0206\u0104\2\u0b9e\u00b3\3\2\2\2\u0b9f\u0ba0\5\u0206\u0104"+ + "\2\u0ba0\u00b5\3\2\2\2\u0ba1\u0ba2\5\u0206\u0104\2\u0ba2\u00b7\3\2\2\2"+ + "\u0ba3\u0ba4\5\u0206\u0104\2\u0ba4\u00b9\3\2\2\2\u0ba5\u0ba6\5\u0206\u0104"+ + "\2\u0ba6\u00bb\3\2\2\2\u0ba7\u0ba8\5\u0206\u0104\2\u0ba8\u00bd\3\2\2\2"+ + "\u0ba9\u0baa\5\u0206\u0104\2\u0baa\u00bf\3\2\2\2\u0bab\u0bac\5\u0206\u0104"+ + "\2\u0bac\u00c1\3\2\2\2\u0bad\u0bae\5\u0206\u0104\2\u0bae\u00c3\3\2\2\2"+ + "\u0baf\u0bb0\5\u0206\u0104\2\u0bb0\u00c5\3\2\2\2\u0bb1\u0bb2\5\u0206\u0104"+ + "\2\u0bb2\u00c7\3\2\2\2\u0bb3\u0bb4\5\u0206\u0104\2\u0bb4\u00c9\3\2\2\2"+ + "\u0bb5\u0bb6\5\u0206\u0104\2\u0bb6\u00cb\3\2\2\2\u0bb7\u0bba\7\u0080\2"+ + "\2\u0bb8\u0bb9\7\u0189\2\2\u0bb9\u0bbb\7\u01d8\2\2\u0bba\u0bb8\3\2\2\2"+ + "\u0bba\u0bbb\3\2\2\2\u0bbb\u0bbd\3\2\2\2\u0bbc\u0bbe\t\17\2\2\u0bbd\u0bbc"+ + "\3\2\2\2\u0bbd\u0bbe\3\2\2\2\u0bbe\u0bc0\3\2\2\2\u0bbf\u0bc1\7\u01c5\2"+ + "\2\u0bc0\u0bbf\3\2\2\2\u0bc0\u0bc1\3\2\2\2\u0bc1\u0bc2\3\2\2\2\u0bc2\u0bc3"+ + "\7\u0281\2\2\u0bc3\u0bc8\5\u01cc\u00e7\2\u0bc4\u0bc5\7\u02ff\2\2\u0bc5"+ + "\u0bc6\5\u01ce\u00e8\2\u0bc6\u0bc7\7\u0300\2\2\u0bc7\u0bc9\3\2\2\2\u0bc8"+ + "\u0bc4\3\2\2\2\u0bc8\u0bc9\3\2\2\2\u0bc9\u0bcf\3\2\2\2\u0bca\u0bcb\7\u0288"+ + "\2\2\u0bcb\u0bcc\7\u02ff\2\2\u0bcc\u0bcd\5\u01d4\u00eb\2\u0bcd\u0bce\7"+ + "\u0300\2\2\u0bce\u0bd0\3\2\2\2\u0bcf\u0bca\3\2\2\2\u0bcf\u0bd0\3\2\2\2"+ + "\u0bd0\u0bd1\3\2\2\2\u0bd1\u0bd4\7\35\2\2\u0bd2\u0bd5\5\u015a\u00ae\2"+ + "\u0bd3\u0bd5\5\u017e\u00c0\2\u0bd4\u0bd2\3\2\2\2\u0bd4\u0bd3\3\2\2\2\u0bd5"+ + "\u0bdc\3\2\2\2\u0bd6\u0bd8\7\u0288\2\2\u0bd7\u0bd9\t\20\2\2\u0bd8\u0bd7"+ + "\3\2\2\2\u0bd8\u0bd9\3\2\2\2\u0bd9\u0bda\3\2\2\2\u0bda\u0bdb\7P\2\2\u0bdb"+ + "\u0bdd\7\u0187\2\2\u0bdc\u0bd6\3\2\2\2\u0bdc\u0bdd\3\2\2\2\u0bdd\u00cd"+ + "\3\2\2\2\u0bde\u0bdf\5\u0206\u0104\2\u0bdf\u00cf\3\2\2\2\u0be0\u0be1\5"+ + "\u0206\u0104\2\u0be1\u00d1\3\2\2\2\u0be2\u0be4\5\u015e\u00b0\2\u0be3\u0be2"+ + "\3\2\2\2\u0be3\u0be4\3\2\2\2\u0be4\u0be5\3\2\2\2\u0be5\u0be6\7\u00a5\2"+ + "\2\u0be6\u0be8\7\u00ee\2\2\u0be7\u0be9\7\u0183\2\2\u0be8\u0be7\3\2\2\2"+ + "\u0be8\u0be9\3\2\2\2\u0be9\u0bea\3\2\2\2\u0bea\u0bec\5\u01d6\u00ec\2\u0beb"+ + "\u0bed\7\u02fe\2\2\u0bec\u0beb\3\2\2\2\u0bec\u0bed\3\2\2\2\u0bed\u0bf2"+ + "\3\2\2\2\u0bee\u0bf0\7\35\2\2\u0bef\u0bee\3\2\2\2\u0bef\u0bf0\3\2\2\2"+ + "\u0bf0\u0bf1\3\2\2\2\u0bf1\u0bf3\5\u020c\u0107\2\u0bf2\u0bef\3\2\2\2\u0bf2"+ + "\u0bf3\3\2\2\2\u0bf3\u0bf6\3\2\2\2\u0bf4\u0bf5\7\u0273\2\2\u0bf5\u0bf7"+ + "\5\u01d0\u00e9\2\u0bf6\u0bf4\3\2\2\2\u0bf6\u0bf7\3\2\2\2\u0bf7\u0bfd\3"+ + "\2\2\2\u0bf8\u0bfe\5\u0184\u00c3\2\u0bf9\u0bfa\7\u0285\2\2\u0bfa\u0bfb"+ + "\7\u0087\2\2\u0bfb\u0bfc\7\u017d\2\2\u0bfc\u0bfe\5\u0202\u0102\2\u0bfd"+ + "\u0bf8\3\2\2\2\u0bfd\u0bf9\3\2\2\2\u0bfd\u0bfe\3\2\2\2\u0bfe\u0c00\3\2"+ + "\2\2\u0bff\u0c01\5\u01b0\u00d9\2\u0c00\u0bff\3\2\2\2\u0c00\u0c01\3\2\2"+ + "\2\u0c01\u00d3\3\2\2\2\u0c02\u0c03\7\u00b7\2\2\u0c03\u0c04\t\21\2\2\u0c04"+ + "\u00d5\3\2\2\2\u0c05\u0c2f\5\u00d8m\2\u0c06\u0c2f\5\u00dan\2\u0c07\u0c2f"+ + "\5\u00dco\2\u0c08\u0c2f\5\u00dep\2\u0c09\u0c2f\5\u00e0q\2\u0c0a\u0c2f"+ + "\5\u00e2r\2\u0c0b\u0c2f\5\u00e4s\2\u0c0c\u0c2f\5\u00e6t\2\u0c0d\u0c2f"+ + "\5\u00e8u\2\u0c0e\u0c2f\5\u00eav\2\u0c0f\u0c2f\5\u00ecw\2\u0c10\u0c2f"+ + "\5\u00eex\2\u0c11\u0c2f\5\u00f0y\2\u0c12\u0c2f\5\u00f2z\2\u0c13\u0c2f"+ + "\5\u00f4{\2\u0c14\u0c2f\5\u00f6|\2\u0c15\u0c2f\5\u00f8}\2\u0c16\u0c2f"+ + "\5\u00fa~\2\u0c17\u0c2f\5\u00fc\177\2\u0c18\u0c2f\5\u00fe\u0080\2\u0c19"+ + "\u0c2f\5\u0100\u0081\2\u0c1a\u0c2f\5\u0102\u0082\2\u0c1b\u0c2f\5\u0104"+ + "\u0083\2\u0c1c\u0c2f\5\u0106\u0084\2\u0c1d\u0c2f\5\u0108\u0085\2\u0c1e"+ + "\u0c2f\5\u010a\u0086\2\u0c1f\u0c2f\5\u010c\u0087\2\u0c20\u0c2f\5\u010e"+ + "\u0088\2\u0c21\u0c2f\5\u0110\u0089\2\u0c22\u0c2f\5\u0112\u008a\2\u0c23"+ + "\u0c2f\5\u0114\u008b\2\u0c24\u0c2f\5\u0116\u008c\2\u0c25\u0c2f\5\u0118"+ + "\u008d\2\u0c26\u0c2f\5\u011a\u008e\2\u0c27\u0c2f\5\u011c\u008f\2\u0c28"+ + "\u0c2f\5\u011e\u0090\2\u0c29\u0c2f\5\u0120\u0091\2\u0c2a\u0c2f\5\u0122"+ + "\u0092\2\u0c2b\u0c2f\5\u0124\u0093\2\u0c2c\u0c2f\5\u0126\u0094\2\u0c2d"+ + "\u0c2f\5\u0128\u0095\2\u0c2e\u0c05\3\2\2\2\u0c2e\u0c06\3\2\2\2\u0c2e\u0c07"+ + "\3\2\2\2\u0c2e\u0c08\3\2\2\2\u0c2e\u0c09\3\2\2\2\u0c2e\u0c0a\3\2\2\2\u0c2e"+ + "\u0c0b\3\2\2\2\u0c2e\u0c0c\3\2\2\2\u0c2e\u0c0d\3\2\2\2\u0c2e\u0c0e\3\2"+ + "\2\2\u0c2e\u0c0f\3\2\2\2\u0c2e\u0c10\3\2\2\2\u0c2e\u0c11\3\2\2\2\u0c2e"+ + "\u0c12\3\2\2\2\u0c2e\u0c13\3\2\2\2\u0c2e\u0c14\3\2\2\2\u0c2e\u0c15\3\2"+ + "\2\2\u0c2e\u0c16\3\2\2\2\u0c2e\u0c17\3\2\2\2\u0c2e\u0c18\3\2\2\2\u0c2e"+ + "\u0c19\3\2\2\2\u0c2e\u0c1a\3\2\2\2\u0c2e\u0c1b\3\2\2\2\u0c2e\u0c1c\3\2"+ + "\2\2\u0c2e\u0c1d\3\2\2\2\u0c2e\u0c1e\3\2\2\2\u0c2e\u0c1f\3\2\2\2\u0c2e"+ + "\u0c20\3\2\2\2\u0c2e\u0c21\3\2\2\2\u0c2e\u0c22\3\2\2\2\u0c2e\u0c23\3\2"+ + "\2\2\u0c2e\u0c24\3\2\2\2\u0c2e\u0c25\3\2\2\2\u0c2e\u0c26\3\2\2\2\u0c2e"+ + "\u0c27\3\2\2\2\u0c2e\u0c28\3\2\2\2\u0c2e\u0c29\3\2\2\2\u0c2e\u0c2a\3\2"+ + "\2\2\u0c2e\u0c2b\3\2\2\2\u0c2e\u0c2c\3\2\2\2\u0c2e\u0c2d\3\2\2\2\u0c2f"+ + "\u00d7\3\2\2\2\u0c30\u0c31\7\u00be\2\2\u0c31\u0c32\7\n\2\2\u0c32\u0c35"+ + "\7\u0152\2\2\u0c33\u0c34\7\u02b3\2\2\u0c34\u0c36\7\u00d5\2\2\u0c35\u0c33"+ + "\3\2\2\2\u0c35\u0c36\3\2\2\2\u0c36\u0c37\3\2\2\2\u0c37\u0c39\5\u0202\u0102"+ + "\2\u0c38\u0c3a\t\3\2\2\u0c39\u0c38\3\2\2\2\u0c39\u0c3a\3\2\2\2\u0c3a\u00d9"+ + "\3\2\2\2\u0c3b\u0c3c\7\u00be\2\2\u0c3c\u0c3f\7\20\2\2\u0c3d\u0c3e\7\u02b3"+ + "\2\2\u0c3e\u0c40\7\u00d5\2\2\u0c3f\u0c3d\3\2\2\2\u0c3f\u0c40\3\2\2\2\u0c40"+ + "\u0c41\3\2\2\2\u0c41\u0c42\5\u0202\u0102\2\u0c42\u0c43\7\u02ff\2\2\u0c43"+ + "\u0c44\5\u01ee\u00f8\2\u0c44\u0c45\7\u0300\2\2\u0c45\u00db\3\2\2\2\u0c46"+ + "\u0c47\7\u00be\2\2\u0c47\u0c4a\7A\2\2\u0c48\u0c49\7\u02b3\2\2\u0c49\u0c4b"+ + "\7\u00d5\2\2\u0c4a\u0c48\3\2\2\2\u0c4a\u0c4b\3\2\2\2\u0c4b\u0c4c\3\2\2"+ + "\2\u0c4c\u0c4d\7\u02ff\2\2\u0c4d\u0c4e\5\u01d8\u00ed\2\u0c4e\u0c4f\7\35"+ + "\2\2\u0c4f\u0c50\5\u0202\u0102\2\u0c50\u0c52\7\u0300\2\2\u0c51\u0c53\t"+ + "\3\2\2\u0c52\u0c51\3\2\2\2\u0c52\u0c53\3\2\2\2\u0c53\u00dd\3\2\2\2\u0c54"+ + "\u0c55\7\u00be\2\2\u0c55\u0c58\7[\2\2\u0c56\u0c57\7\u02b3\2\2\u0c57\u0c59"+ + "\7\u00d5\2\2\u0c58\u0c56\3\2\2\2\u0c58\u0c59\3\2\2\2\u0c59\u0c5a\3\2\2"+ + "\2\u0c5a\u0c5c\5\u01d0\u00e9\2\u0c5b\u0c5d\t\3\2\2\u0c5c\u0c5b\3\2\2\2"+ + "\u0c5c\u0c5d\3\2\2\2\u0c5d\u00df\3\2\2\2\u0c5e\u0c5f\7\u00be\2\2\u0c5f"+ + "\u0c62\7w\2\2\u0c60\u0c61\7\u02b3\2\2\u0c61\u0c63\7\u00d5\2\2\u0c62\u0c60"+ + "\3\2\2\2\u0c62\u0c63\3\2\2\2\u0c63\u0c64\3\2\2\2\u0c64\u0c66\5\u0202\u0102"+ + "\2\u0c65\u0c67\t\3\2\2\u0c66\u0c65\3\2\2\2\u0c66\u0c67\3\2\2\2\u0c67\u00e1"+ + "\3\2\2\2\u0c68\u0c69\7\u00be\2\2\u0c69\u0c6c\7\u0094\2\2\u0c6a\u0c6b\7"+ + "\u02b3\2\2\u0c6b\u0c6d\7\u00d5\2\2\u0c6c\u0c6a\3\2\2\2\u0c6c\u0c6d\3\2"+ + "\2\2\u0c6d\u0c6e\3\2\2\2\u0c6e\u0c6f\5\u0202\u0102\2\u0c6f\u00e3\3\2\2"+ + "\2\u0c70\u0c71\7\u00be\2\2\u0c71\u0c74\7\u00bc\2\2\u0c72\u0c73\7\u02b3"+ + "\2\2\u0c73\u0c75\7\u00d5\2\2\u0c74\u0c72\3\2\2\2\u0c74\u0c75\3\2\2\2\u0c75"+ + "\u0c76\3\2\2\2\u0c76\u0c78\5\u01d0\u00e9\2\u0c77\u0c79\t\3\2\2\u0c78\u0c77"+ + "\3\2\2\2\u0c78\u0c79\3\2\2\2\u0c79\u00e5\3\2\2\2\u0c7a\u0c7b\7\u00be\2"+ + "\2\u0c7b\u0c7c\7\u02bb\2\2\u0c7c\u0c7f\7\u0256\2\2\u0c7d\u0c7e\7\u02b3"+ + "\2\2\u0c7e\u0c80\7\u00d5\2\2\u0c7f\u0c7d\3\2\2\2\u0c7f\u0c80\3\2\2\2\u0c80"+ + "\u0c81\3\2\2\2\u0c81\u0c83\5\u0202\u0102\2\u0c82\u0c84\t\3\2\2\u0c83\u0c82"+ + "\3\2\2\2\u0c83\u0c84\3\2\2\2\u0c84\u00e7\3\2\2\2\u0c85\u0c86\7\u00be\2"+ + "\2\u0c86\u0c89\7\u00d9\2\2\u0c87\u0c88\7\u02b3\2\2\u0c88\u0c8a\7\u00d5"+ + "\2\2\u0c89\u0c87\3\2\2\2\u0c89\u0c8a\3\2\2\2\u0c8a\u0c8b\3\2\2\2\u0c8b"+ + "\u0c8d\5\u01d0\u00e9\2\u0c8c\u0c8e\t\3\2\2\u0c8d\u0c8c\3\2\2\2\u0c8d\u0c8e"+ + "\3\2\2\2\u0c8e\u00e9\3\2\2\2\u0c8f\u0c90\7\u00be\2\2\u0c90\u0c91\7\u00e7"+ + "\2\2\u0c91\u0c92\7\u0093\2\2\u0c92\u0c95\7\u02bc\2\2\u0c93\u0c94\7\u02b3"+ + "\2\2\u0c94\u0c96\7\u00d5\2\2\u0c95\u0c93\3\2\2\2\u0c95\u0c96\3\2\2\2\u0c96"+ + "\u0c97\3\2\2\2\u0c97\u0c99\5\u01d0\u00e9\2\u0c98\u0c9a\t\3\2\2\u0c99\u0c98"+ + "\3\2\2\2\u0c99\u0c9a\3\2\2\2\u0c9a\u00eb\3\2\2\2\u0c9b\u0c9c\7\u00be\2"+ + "\2\u0c9c\u0c9d\7\u00e7\2\2\u0c9d\u0ca0\7\u0239\2\2\u0c9e\u0c9f\7\u02b3"+ + "\2\2\u0c9f\u0ca1\7\u00d5\2\2\u0ca0\u0c9e\3\2\2\2\u0ca0\u0ca1\3\2\2\2\u0ca1"+ + "\u0ca2\3\2\2\2\u0ca2\u0ca4\5\u01d0\u00e9\2\u0ca3\u0ca5\t\3\2\2\u0ca4\u0ca3"+ + "\3\2\2\2\u0ca4\u0ca5\3\2\2\2\u0ca5\u00ed\3\2\2\2\u0ca6\u0ca7\7\u00be\2"+ + "\2\u0ca7\u0caa\7\u00f0\2\2\u0ca8\u0ca9\7\u02b3\2\2\u0ca9\u0cab\7\u00d5"+ + "\2\2\u0caa\u0ca8\3\2\2\2\u0caa\u0cab\3\2\2\2\u0cab\u0cac\3\2\2\2\u0cac"+ + "\u0cae\5\u01c2\u00e2\2\u0cad\u0caf\t\3\2\2\u0cae\u0cad\3\2\2\2\u0cae\u0caf"+ + "\3\2\2\2\u0caf\u00ef\3\2\2\2\u0cb0\u0cb1\7\u00be\2\2\u0cb1\u0cb4\7\u00fc"+ + "\2\2\u0cb2\u0cb3\7\u02b3\2\2\u0cb3\u0cb5\7\u00d5\2\2\u0cb4\u0cb2\3\2\2"+ + "\2\u0cb4\u0cb5\3\2\2\2\u0cb5\u0cb6\3\2\2\2\u0cb6\u0cb7\5\u01d0\u00e9\2"+ + "\u0cb7\u00f1\3\2\2\2\u0cb8\u0cb9\7\u00be\2\2\u0cb9\u0cbb\7\u010e\2\2\u0cba"+ + "\u0cbc\7\u02c4\2\2\u0cbb\u0cba\3\2\2\2\u0cbb\u0cbc\3\2\2\2\u0cbc\u0cbf"+ + "\3\2\2\2\u0cbd\u0cbe\7\u02b3\2\2\u0cbe\u0cc0\7\u00d5\2\2\u0cbf\u0cbd\3"+ + "\2\2\2\u0cbf\u0cc0\3\2\2\2\u0cc0\u0cc1\3\2\2\2\u0cc1\u0cc3\5\u01ce\u00e8"+ + "\2\u0cc2\u0cc4\t\3\2\2\u0cc3\u0cc2\3\2\2\2\u0cc3\u0cc4\3\2\2\2\u0cc4\u00f3"+ + "\3\2\2\2\u0cc5\u0cc7\7\u00be\2\2\u0cc6\u0cc8\7\u01b9\2\2\u0cc7\u0cc6\3"+ + "\2\2\2\u0cc7\u0cc8\3\2\2\2\u0cc8\u0cc9\3\2\2\2\u0cc9\u0ccc\7\u012d\2\2"+ + "\u0cca\u0ccb\7\u02b3\2\2\u0ccb\u0ccd\7\u00d5\2\2\u0ccc\u0cca\3\2\2\2\u0ccc"+ + "\u0ccd\3\2\2\2\u0ccd\u0cce\3\2\2\2\u0cce\u0cd0\5\u0202\u0102\2\u0ccf\u0cd1"+ + "\t\3\2\2\u0cd0\u0ccf\3\2\2\2\u0cd0\u0cd1\3\2\2\2\u0cd1\u00f5\3\2\2\2\u0cd2"+ + "\u0cd3\7\u00be\2\2\u0cd3\u0cd4\7\u02c6\2\2\u0cd4\u0cd7\7\u0281\2\2\u0cd5"+ + "\u0cd6\7\u02b3\2\2\u0cd6\u0cd8\7\u00d5\2\2\u0cd7\u0cd5\3\2\2\2\u0cd7\u0cd8"+ + "\3\2\2\2\u0cd8\u0cd9\3\2\2\2\u0cd9\u0cdb\5\u01d0\u00e9\2\u0cda\u0cdc\t"+ + "\3\2\2\u0cdb\u0cda\3\2\2\2\u0cdb\u0cdc\3\2\2\2\u0cdc\u00f7\3\2\2\2\u0cdd"+ + "\u0cde\5\u0206\u0104\2\u0cde\u00f9\3\2\2\2\u0cdf\u0ce0\7\u00be\2\2\u0ce0"+ + "\u0ce1\7\u0186\2\2\u0ce1\u0ce4\7S\2\2\u0ce2\u0ce3\7\u02b3\2\2\u0ce3\u0ce5"+ + "\7\u00d5\2\2\u0ce4\u0ce2\3\2\2\2\u0ce4\u0ce5\3\2\2\2\u0ce5\u0ce6\3\2\2"+ + "\2\u0ce6\u0ce7\5\u0202\u0102\2\u0ce7\u0ce8\7\u0273\2\2\u0ce8\u0cea\5\u01dc"+ + "\u00ef\2\u0ce9\u0ceb\t\3\2\2\u0cea\u0ce9\3\2\2\2\u0cea\u0ceb\3\2\2\2\u0ceb"+ + "\u00fb\3\2\2\2\u0cec\u0ced\7\u00be\2\2\u0ced\u0cee\7\u0186\2\2\u0cee\u0cf1"+ + "\7\u02cd\2\2\u0cef\u0cf0\7\u02b3\2\2\u0cf0\u0cf2\7\u00d5\2\2\u0cf1\u0cef"+ + "\3\2\2\2\u0cf1\u0cf2\3\2\2\2\u0cf2\u0cf3\3\2\2\2\u0cf3\u0cf4\5\u0202\u0102"+ + "\2\u0cf4\u0cf5\7\u0273\2\2\u0cf5\u0cf7\5\u01dc\u00ef\2\u0cf6\u0cf8\t\3"+ + "\2\2\u0cf7\u0cf6\3\2\2\2\u0cf7\u0cf8\3\2\2\2\u0cf8\u00fd\3\2\2\2\u0cf9"+ + "\u0cfa\7\u00be\2\2\u0cfa\u0cfb\7\u02cf\2\2\u0cfb\u0cfc\78\2\2\u0cfc\u0cfe"+ + "\5\u01fc\u00ff\2\u0cfd\u0cff\t\3\2\2\u0cfe\u0cfd\3\2\2\2\u0cfe\u0cff\3"+ + "\2\2\2\u0cff\u00ff\3\2\2\2\u0d00\u0d01\7\u00be\2\2\u0d01\u0d04\7\u02ce"+ + "\2\2\u0d02\u0d03\7\u02b3\2\2\u0d03\u0d05\7\u00d5\2\2\u0d04\u0d02\3\2\2"+ + "\2\u0d04\u0d05\3\2\2\2\u0d05\u0d06\3\2\2\2\u0d06\u0d07\5\u0202\u0102\2"+ + "\u0d07\u0d08\7\u0182\2\2\u0d08\u0d0a\5\u0202\u0102\2\u0d09\u0d0b\t\3\2"+ + "\2\u0d0a\u0d09\3\2\2\2\u0d0a\u0d0b\3\2\2\2\u0d0b\u0101\3\2\2\2\u0d0c\u0d0d"+ + "\7\u00be\2\2\u0d0d\u0d10\7\u01bc\2\2\u0d0e\u0d0f\7\u02b3\2\2\u0d0f\u0d11"+ + "\7\u00d5\2\2\u0d10\u0d0e\3\2\2\2\u0d10\u0d11\3\2\2\2\u0d11\u0d12\3\2\2"+ + "\2\u0d12\u0d14\5\u01d0\u00e9\2\u0d13\u0d15\t\3\2\2\u0d14\u0d13\3\2\2\2"+ + "\u0d14\u0d15\3\2\2\2\u0d15\u0103\3\2\2\2\u0d16\u0d17\7\u00be\2\2\u0d17"+ + "\u0d1a\7\u01e7\2\2\u0d18\u0d19\7\u02b3\2\2\u0d19\u0d1b\7\u00d5\2\2\u0d1a"+ + "\u0d18\3\2\2\2\u0d1a\u0d1b\3\2\2\2\u0d1b\u0d1c\3\2\2\2\u0d1c\u0d1d\5\u01d0"+ + "\u00e9\2\u0d1d\u0105\3\2\2\2\u0d1e\u0d1f\7\u00be\2\2\u0d1f\u0d22\7\u01f2"+ + "\2\2\u0d20\u0d21\7\u02b3\2\2\u0d21\u0d23\7\u00d5\2\2\u0d22\u0d20\3\2\2"+ + "\2\u0d22\u0d23\3\2\2\2\u0d23\u0d24\3\2\2\2\u0d24\u0d25\5\u01cc\u00e7\2"+ + "\u0d25\u0d26\7\u0182\2\2\u0d26\u0d28\5\u0202\u0102\2\u0d27\u0d29\t\3\2"+ + "\2\u0d28\u0d27\3\2\2\2\u0d28\u0d29\3\2\2\2\u0d29\u0107\3\2\2\2\u0d2a\u0d2b"+ + "\7\u00be\2\2\u0d2b\u0d2e\7\u01f5\2\2\u0d2c\u0d2d\7\u02b3\2\2\u0d2d\u0d2f"+ + "\7\u00d5\2\2\u0d2e\u0d2c\3\2\2\2\u0d2e\u0d2f\3\2\2\2\u0d2f\u0d30\3\2\2"+ + "\2\u0d30\u0d32\5\u01d0\u00e9\2\u0d31\u0d33\t\3\2\2\u0d32\u0d31\3\2\2\2"+ + "\u0d32\u0d33\3\2\2\2\u0d33\u0109\3\2\2\2\u0d34\u0d35\7\u00be\2\2\u0d35"+ + "\u0d38\7\u0203\2\2\u0d36\u0d37\7\u02b3\2\2\u0d37\u0d39\7\u00d5\2\2\u0d38"+ + "\u0d36\3\2\2\2\u0d38\u0d39\3\2\2\2\u0d39\u0d3a\3\2\2\2\u0d3a\u0d3c\5\u01d0"+ + "\u00e9\2\u0d3b\u0d3d\t\3\2\2\u0d3c\u0d3b\3\2\2\2\u0d3c\u0d3d\3\2\2\2\u0d3d"+ + "\u010b\3\2\2\2\u0d3e\u0d3f\7\u00be\2\2\u0d3f\u0d42\7\u02bd\2\2\u0d40\u0d41"+ + "\7\u02b3\2\2\u0d41\u0d43\7\u00d5\2\2\u0d42\u0d40\3\2\2\2\u0d42\u0d43\3"+ + "\2\2\2\u0d43\u0d44\3\2\2\2\u0d44\u0d46\5\u01d0\u00e9\2\u0d45\u0d47\t\3"+ + "\2\2\u0d46\u0d45\3\2\2\2\u0d46\u0d47\3\2\2\2\u0d47\u010d\3\2\2\2\u0d48"+ + "\u0d49\7\u00be\2\2\u0d49\u0d4c\7\u0226\2\2\u0d4a\u0d4b\7\u02b3\2\2\u0d4b"+ + "\u0d4d\7\u00d5\2\2\u0d4c\u0d4a\3\2\2\2\u0d4c\u0d4d\3\2\2\2\u0d4d\u0d4e"+ + "\3\2\2\2\u0d4e\u0d4f\5\u01d0\u00e9\2\u0d4f\u010f\3\2\2\2\u0d50\u0d51\7"+ + "\u00be\2\2\u0d51\u0d54\7\u0232\2\2\u0d52\u0d53\7\u02b3\2\2\u0d53\u0d55"+ + "\7\u00d5\2\2\u0d54\u0d52\3\2\2\2\u0d54\u0d55\3\2\2\2\u0d55\u0d56\3\2\2"+ + "\2\u0d56\u0d58\5\u0202\u0102\2\u0d57\u0d59\t\3\2\2\u0d58\u0d57\3\2\2\2"+ + "\u0d58\u0d59\3\2\2\2\u0d59\u0111\3\2\2\2\u0d5a\u0d5b\7\u00be\2\2\u0d5b"+ + "\u0d5e\7\u0239\2\2\u0d5c\u0d5d\7\u02b3\2\2\u0d5d\u0d5f\7\u00d5\2\2\u0d5e"+ + "\u0d5c\3\2\2\2\u0d5e\u0d5f\3\2\2\2\u0d5f\u0d60\3\2\2\2\u0d60\u0d62\5\u01d0"+ + "\u00e9\2\u0d61\u0d63\t\3\2\2\u0d62\u0d61\3\2\2\2\u0d62\u0d63\3\2\2\2\u0d63"+ + "\u0113\3\2\2\2\u0d64\u0d65\7\u00be\2\2\u0d65\u0d68\7\u023c\2\2\u0d66\u0d67"+ + "\7\u02b3\2\2\u0d67\u0d69\7\u00d5\2\2\u0d68\u0d66\3\2\2\2\u0d68\u0d69\3"+ + "\2\2\2\u0d69\u0d6a\3\2\2\2\u0d6a\u0d6b\5\u0202\u0102\2\u0d6b\u0115\3\2"+ + "\2\2\u0d6c\u0d6d\7\u00be\2\2\u0d6d\u0d6e\7\u02f0\2\2\u0d6e\u0d6f\7\u01fc"+ + "\2\2\u0d6f\u0d72\7j\2\2\u0d70\u0d71\7\u02b3\2\2\u0d71\u0d73\7\u00d5\2"+ + "\2\u0d72\u0d70\3\2\2\2\u0d72\u0d73\3\2\2\2\u0d73\u0d74\3\2\2\2\u0d74\u0d76"+ + "\5\u0202\u0102\2\u0d75\u0d77\t\3\2\2\u0d76\u0d75\3\2\2\2\u0d76\u0d77\3"+ + "\2\2\2\u0d77\u0117\3\2\2\2\u0d78\u0d79\7\u00be\2\2\u0d79\u0d7a\7\u02f0"+ + "\2\2\u0d7a\u0d7b\7\u01fc\2\2\u0d7b\u0d7e\7\u00b4\2\2\u0d7c\u0d7d\7\u02b3"+ + "\2\2\u0d7d\u0d7f\7\u00d5\2\2\u0d7e\u0d7c\3\2\2\2\u0d7e\u0d7f\3\2\2\2\u0d7f"+ + "\u0d80\3\2\2\2\u0d80\u0d82\5\u0202\u0102\2\u0d81\u0d83\t\3\2\2\u0d82\u0d81"+ + "\3\2\2\2\u0d82\u0d83\3\2\2\2\u0d83\u0119\3\2\2\2\u0d84\u0d85\7\u00be\2"+ + "\2\u0d85\u0d86\7\u02f0\2\2\u0d86\u0d87\7\u01fc\2\2\u0d87\u0d8a\7\u019f"+ + "\2\2\u0d88\u0d89\7\u02b3\2\2\u0d89\u0d8b\7\u00d5\2\2\u0d8a\u0d88\3\2\2"+ + "\2\u0d8a\u0d8b\3\2\2\2\u0d8b\u0d8c\3\2\2\2\u0d8c\u0d8e\5\u0202\u0102\2"+ + "\u0d8d\u0d8f\t\3\2\2\u0d8e\u0d8d\3\2\2\2\u0d8e\u0d8f\3\2\2\2\u0d8f\u011b"+ + "\3\2\2\2\u0d90\u0d91\7\u00be\2\2\u0d91\u0d92\7\u02f0\2\2\u0d92\u0d93\7"+ + "\u01fc\2\2\u0d93\u0d96\7\u023e\2\2\u0d94\u0d95\7\u02b3\2\2\u0d95\u0d97"+ + "\7\u00d5\2\2\u0d96\u0d94\3\2\2\2\u0d96\u0d97\3\2\2\2\u0d97\u0d98\3\2\2"+ + "\2\u0d98\u0d9a\5\u0202\u0102\2\u0d99\u0d9b\t\3\2\2\u0d9a\u0d99\3\2\2\2"+ + "\u0d9a\u0d9b\3\2\2\2\u0d9b\u011d\3\2\2\2\u0d9c\u0d9d\7\u00be\2\2\u0d9d"+ + "\u0da0\7\u0251\2\2\u0d9e\u0d9f\7\u02b3\2\2\u0d9f\u0da1\7\u00d5\2\2\u0da0"+ + "\u0d9e\3\2\2\2\u0da0\u0da1\3\2\2\2\u0da1\u0da2\3\2\2\2\u0da2\u0da3\7\u00e5"+ + "\2\2\u0da3\u0da4\5\u0202\u0102\2\u0da4\u0da5\7\u012d\2\2\u0da5\u0da6\5"+ + "\u0202\u0102\2\u0da6\u0da7\t\3\2\2\u0da7\u011f\3\2\2\2\u0da8\u0da9\7\u00be"+ + "\2\2\u0da9\u0dac\7\u0256\2\2\u0daa\u0dab\7\u02b3\2\2\u0dab\u0dad\7\u00d5"+ + "\2\2\u0dac\u0daa\3\2\2\2\u0dac\u0dad\3\2\2\2\u0dad\u0dae\3\2\2\2\u0dae"+ + "\u0daf\5\u0202\u0102\2\u0daf\u0db0\7\u0182\2\2\u0db0\u0db2\5\u0202\u0102"+ + "\2\u0db1\u0db3\t\3\2\2\u0db2\u0db1\3\2\2\2\u0db2\u0db3\3\2\2\2\u0db3\u0121"+ + "\3\2\2\2\u0db4\u0db5\7\u00be\2\2\u0db5\u0db8\7\u025e\2\2\u0db6\u0db7\7"+ + "\u02b3\2\2\u0db7\u0db9\7\u00d5\2\2\u0db8\u0db6\3\2\2\2\u0db8\u0db9\3\2"+ + "\2\2\u0db9\u0dba\3\2\2\2\u0dba\u0dbc\5\u01d0\u00e9\2\u0dbb\u0dbd\t\3\2"+ + "\2\u0dbc\u0dbb\3\2\2\2\u0dbc\u0dbd\3\2\2\2\u0dbd\u0123\3\2\2\2\u0dbe\u0dbf"+ + "\7\u00be\2\2\u0dbf\u0dc2\7\u026e\2\2\u0dc0\u0dc1\7\u02b3\2\2\u0dc1\u0dc3"+ + "\7\u00d5\2\2\u0dc2\u0dc0\3\2\2\2\u0dc2\u0dc3\3\2\2\2\u0dc3\u0dc4\3\2\2"+ + "\2\u0dc4\u0dc5\5\u01d0\u00e9\2\u0dc5\u0125\3\2\2\2\u0dc6\u0dc7\7\u00be"+ + "\2\2\u0dc7\u0dc8\7\u026e\2\2\u0dc8\u0dcb\7\u0147\2\2\u0dc9\u0dca\7\u02b3"+ + "\2\2\u0dca\u0dcc\7\u00d5\2\2\u0dcb\u0dc9\3\2\2\2\u0dcb\u0dcc\3\2\2\2\u0dcc"+ + "\u0dcd\3\2\2\2\u0dcd\u0dd3\7\u00e5\2\2\u0dce\u0dd4\5\u01cc\u00e7\2\u0dcf"+ + "\u0dd4\7\u026e\2\2\u0dd0\u0dd4\7\u008f\2\2\u0dd1\u0dd4\7\u0208\2\2\u0dd2"+ + "\u0dd4\7\u01bb\2\2\u0dd3\u0dce\3\2\2\2\u0dd3\u0dcf\3\2\2\2\u0dd3\u0dd0"+ + "\3\2\2\2\u0dd3\u0dd1\3\2\2\2\u0dd3\u0dd2\3\2\2\2\u0dd4\u0dd5\3\2\2\2\u0dd5"+ + "\u0dd6\7\u02bd\2\2\u0dd6\u0dd7\5\u0202\u0102\2\u0dd7\u0127\3\2\2\2\u0dd8"+ + "\u0dd9\7\u00be\2\2\u0dd9\u0ddc\7\u0281\2\2\u0dda\u0ddb\7\u02b3\2\2\u0ddb"+ + "\u0ddd\7\u00d5\2\2\u0ddc\u0dda\3\2\2\2\u0ddc\u0ddd\3\2\2\2\u0ddd\u0dde"+ + "\3\2\2\2\u0dde\u0de0\5\u01d0\u00e9\2\u0ddf\u0de1\t\3\2\2\u0de0\u0ddf\3"+ + "\2\2\2\u0de0\u0de1\3\2\2\2\u0de1\u0129\3\2\2\2\u0de2\u0de3\7\u00d3\2\2"+ + "\u0de3\u0de5\5\u0202\u0102\2\u0de4\u0de6\5\u01b8\u00dd\2\u0de5\u0de4\3"+ + "\2\2\2\u0de5\u0de6\3\2\2\2\u0de6\u012b\3\2\2\2\u0de7\u0de9\7\u00d7\2\2"+ + "\u0de8\u0dea\7\30\2\2\u0de9\u0de8\3\2\2\2\u0de9\u0dea\3\2\2\2\u0dea\u0dec"+ + "\3\2\2\2\u0deb\u0ded\7\u0280\2\2\u0dec\u0deb\3\2\2\2\u0dec\u0ded\3\2\2"+ + "\2\u0ded\u0dfb\3\2\2\2\u0dee\u0def\7\u00d7\2\2\u0def\u0df0\7\u02ff\2\2"+ + "\u0df0\u0df5\5\u0190\u00c9\2\u0df1\u0df2\7\u02f9\2\2\u0df2\u0df4\5\u0190"+ + "\u00c9\2\u0df3\u0df1\3\2\2\2\u0df4\u0df7\3\2\2\2\u0df5\u0df3\3\2\2\2\u0df5"+ + "\u0df6\3\2\2\2\u0df6\u0df8\3\2\2\2\u0df7\u0df5\3\2\2\2\u0df8\u0df9\7\u0300"+ + "\2\2\u0df9\u0dfb\3\2\2\2\u0dfa\u0de7\3\2\2\2\u0dfa\u0dee\3\2\2\2\u0dfb"+ + "\u0e05\3\2\2\2\u0dfc\u0e06\5\u015a\u00ae\2\u0dfd\u0e06\5\u0134\u009b\2"+ + "\u0dfe\u0e06\5\u0176\u00bc\2\u0dff\u0e06\5\u00d2j\2\u0e00\u0e06\5\u017e"+ + "\u00c0\2\u0e01\u0e06\5\u012a\u0096\2\u0e02\u0e06\5\u00d0i\2\u0e03\u0e06"+ + "\5\u00b6\\\2\u0e04\u0e06\5\u0098M\2\u0e05\u0dfc\3\2\2\2\u0e05\u0dfd\3"+ + "\2\2\2\u0e05\u0dfe\3\2\2\2\u0e05\u0dff\3\2\2\2\u0e05\u0e00\3\2\2\2\u0e05"+ + "\u0e01\3\2\2\2\u0e05\u0e02\3\2\2\2\u0e05\u0e03\3\2\2\2\u0e05\u0e04\3\2"+ + "\2\2\u0e06\u012d\3\2\2\2\u0e07\u0e08\5\u0206\u0104\2\u0e08\u012f\3\2\2"+ + "\2\u0e09\u0e0a\5\u0206\u0104\2\u0e0a\u0131\3\2\2\2\u0e0b\u0e0c\5\u0206"+ + "\u0104\2\u0e0c\u0133\3\2\2\2\u0e0d\u0e0f\5\u015e\u00b0\2\u0e0e\u0e0d\3"+ + "\2\2\2\u0e0e\u0e0f\3\2\2\2\u0e0f\u0e10\3\2\2\2\u0e10\u0e11\7\u0118\2\2"+ + "\u0e11\u0e12\7\u0121\2\2\u0e12\u0e15\5\u01d6\u00ec\2\u0e13\u0e14\7\35"+ + "\2\2\u0e14\u0e16\5\u0202\u0102\2\u0e15\u0e13\3\2\2\2\u0e15\u0e16\3\2\2"+ + "\2\u0e16\u0e1b\3\2\2\2\u0e17\u0e18\7\u02ff\2\2\u0e18\u0e19\5\u01ce\u00e8"+ + "\2\u0e19\u0e1a\7\u0300\2\2\u0e1a\u0e1c\3\2\2\2\u0e1b\u0e17\3\2\2\2\u0e1b"+ + "\u0e1c\3\2\2\2\u0e1c\u0e22\3\2\2\2\u0e1d\u0e1f\7\u0194\2\2\u0e1e\u0e20"+ + "\t\22\2\2\u0e1f\u0e1e\3\2\2\2\u0e1f\u0e20\3\2\2\2\u0e20\u0e21\3\2\2\2"+ + "\u0e21\u0e23\7\u0278\2\2\u0e22\u0e1d\3\2\2\2\u0e22\u0e23\3\2\2\2\u0e23"+ + "\u0e28\3\2\2\2\u0e24\u0e25\7\u009d\2\2\u0e25\u0e29\7\u0279\2\2\u0e26\u0e29"+ + "\5\u015a\u00ae\2\u0e27\u0e29\5\u017e\u00c0\2\u0e28\u0e24\3\2\2\2\u0e28"+ + "\u0e26\3\2\2\2\u0e28\u0e27\3\2\2\2\u0e29\u0e45\3\2\2\2\u0e2a\u0e2b\7\u0182"+ + "\2\2\u0e2b\u0e30\7k\2\2\u0e2c\u0e2d\7\u02ff\2\2\u0e2d\u0e2e\5\u020a\u0106"+ + "\2\u0e2e\u0e2f\7\u0300\2\2\u0e2f\u0e31\3\2\2\2\u0e30\u0e2c\3\2\2\2\u0e30"+ + "\u0e31\3\2\2\2\u0e31\u0e35\3\2\2\2\u0e32\u0e33\7\u0182\2\2\u0e33\u0e34"+ + "\7o\2\2\u0e34\u0e36\5\u020a\u0106\2\u0e35\u0e32\3\2\2\2\u0e35\u0e36\3"+ + "\2\2\2\u0e36\u0e38\3\2\2\2\u0e37\u0e39\5\u0184\u00c3\2\u0e38\u0e37\3\2"+ + "\2\2\u0e38\u0e39\3\2\2\2\u0e39\u0e43\3\2\2\2\u0e3a\u0e3b\7\u00bb\2\2\u0e3b"+ + "\u0e44\7\u0170\2\2\u0e3c\u0e3d\7\u00bb\2\2\u0e3d\u0e3e\7\u026b\2\2\u0e3e"+ + "\u0e3f\7\u0209\2\2\u0e3f\u0e41\5\u01ac\u00d7\2\u0e40\u0e42\5\u0184\u00c3"+ + "\2\u0e41\u0e40\3\2\2\2\u0e41\u0e42\3\2\2\2\u0e42\u0e44\3\2\2\2\u0e43\u0e3a"+ + "\3\2\2\2\u0e43\u0e3c\3\2\2\2\u0e44\u0e46\3\2\2\2\u0e45\u0e2a\3\2\2\2\u0e45"+ + "\u0e46\3\2\2\2\u0e46\u0e48\3\2\2\2\u0e47\u0e49\5\u01b0\u00d9\2\u0e48\u0e47"+ + "\3\2\2\2\u0e48\u0e49\3\2\2\2\u0e49\u0135\3\2\2\2\u0e4a\u0e4b\7\u0139\2"+ + "\2\u0e4b\u0e4c\5\u0202\u0102\2\u0e4c\u0137\3\2\2\2\u0e4d\u0e4e\5\u0206"+ + "\u0104\2\u0e4e\u0139\3\2\2\2\u0e4f\u0e51\7\u0141\2\2\u0e50\u0e52\7\u0239"+ + "\2\2\u0e51\u0e50\3\2\2\2\u0e51\u0e52\3\2\2\2\u0e52\u0e54\3\2\2\2\u0e53"+ + "\u0e55\7\u0183\2\2\u0e54\u0e53\3\2\2\2\u0e54\u0e55\3\2\2\2\u0e55\u0e56"+ + "\3\2\2\2\u0e56\u0e58\5\u01cc\u00e7\2\u0e57\u0e59\7\u02fe\2\2\u0e58\u0e57"+ + "\3\2\2\2\u0e58\u0e59\3\2\2\2\u0e59\u0e6e\3\2\2\2\u0e5a\u0e6b\7\u010b\2"+ + "\2\u0e5b\u0e5c\7\n\2\2\u0e5c\u0e6c\7\u020c\2\2\u0e5d\u0e5e\7\u01ee\2\2"+ + "\u0e5e\u0e6c\7\u020c\2\2\u0e5f\u0e60\7\u01ee\2\2\u0e60\u0e6c\7\u00d1\2"+ + "\2\u0e61\u0e62\7\u020c\2\2\u0e62\u0e63\7\u026b\2\2\u0e63\u0e6c\7\u00d1"+ + "\2\2\u0e64\u0e6c\7\u020c\2\2\u0e65\u0e66\7\u020c\2\2\u0e66\u0e67\7\u01ee"+ + "\2\2\u0e67\u0e6c\7\u00d1\2\2\u0e68\u0e6c\7\u00d1\2\2\u0e69\u0e6a\7\n\2"+ + "\2\u0e6a\u0e6c\7\u00d1\2\2\u0e6b\u0e5b\3\2\2\2\u0e6b\u0e5d\3\2\2\2\u0e6b"+ + "\u0e5f\3\2\2\2\u0e6b\u0e61\3\2\2\2\u0e6b\u0e64\3\2\2\2\u0e6b\u0e65\3\2"+ + "\2\2\u0e6b\u0e68\3\2\2\2\u0e6b\u0e69\3\2\2\2\u0e6c\u0e6d\3\2\2\2\u0e6d"+ + "\u0e6f\7\u0157\2\2\u0e6e\u0e5a\3\2\2\2\u0e6e\u0e6f\3\2\2\2\u0e6f\u0e71"+ + "\3\2\2\2\u0e70\u0e72\7\u0173\2\2\u0e71\u0e70\3\2\2\2\u0e71\u0e72\3\2\2"+ + "\2\u0e72\u013b\3\2\2\2\u0e73\u0e8b\7\u015d\2\2\u0e74\u0e87\7\u0168\2\2"+ + "\u0e75\u0e87\7\u01b7\2\2\u0e76\u0e87\7\u00e1\2\2\u0e77\u0e87\7\u012f\2"+ + "\2\u0e78\u0e79\7\t\2\2\u0e79\u0e87\7\u011d\2\2\u0e7a\u0e7b\7\u01d4\2\2"+ + "\u0e7b\u0e87\7\u0306\2\2\u0e7c\u0e87\7\u0306\2\2\u0e7d\u0e87\7\22\2\2"+ + "\u0e7e\u0e80\7\u00ea\2\2\u0e7f\u0e81\t\23\2\2\u0e80\u0e7f\3\2\2\2\u0e80"+ + "\u0e81\3\2\2\2\u0e81\u0e87\3\2\2\2\u0e82\u0e84\7)\2\2\u0e83\u0e85\t\23"+ + "\2\2\u0e84\u0e83\3\2\2\2\u0e84\u0e85\3\2\2\2\u0e85\u0e87\3\2\2\2\u0e86"+ + "\u0e74\3\2\2\2\u0e86\u0e75\3\2\2\2\u0e86\u0e76\3\2\2\2\u0e86\u0e77\3\2"+ + "\2\2\u0e86\u0e78\3\2\2\2\u0e86\u0e7a\3\2\2\2\u0e86\u0e7c\3\2\2\2\u0e86"+ + "\u0e7d\3\2\2\2\u0e86\u0e7e\3\2\2\2\u0e86\u0e82\3\2\2\2\u0e87\u0e89\3\2"+ + "\2\2\u0e88\u0e8a\t\24\2\2\u0e89\u0e88\3\2\2\2\u0e89\u0e8a\3\2\2\2\u0e8a"+ + "\u0e8c\3\2\2\2\u0e8b\u0e86\3\2\2\2\u0e8b\u0e8c\3\2\2\2\u0e8c\u0e8d\3\2"+ + "\2\2\u0e8d\u0e8e\5\u01cc\u00e7\2\u0e8e\u013d\3\2\2\2\u0e8f\u0e90\7\u0171"+ + "\2\2\u0e90\u0e93\5\u01cc\u00e7\2\u0e91\u0e92\7\u02f9\2\2\u0e92\u0e94\7"+ + "\u0309\2\2\u0e93\u0e91\3\2\2\2\u0e93\u0e94\3\2\2\2\u0e94\u013f\3\2\2\2"+ + "\u0e95\u0e96\7\u01b3\2\2\u0e96\u0e9b\5\u0202\u0102\2\u0e97\u0e98\7\u02ff"+ + "\2\2\u0e98\u0e99\5\u01da\u00ee\2\u0e99\u0e9a\7\u0300\2\2\u0e9a\u0e9c\3"+ + "\2\2\2\u0e9b\u0e97\3\2\2\2\u0e9b\u0e9c\3\2\2\2\u0e9c\u0e9d\3\2\2\2\u0e9d"+ + "\u0ea3\7\35\2\2\u0e9e\u0ea4\5\u015a\u00ae\2\u0e9f\u0ea4\5\u0134\u009b"+ + "\2\u0ea0\u0ea4\5\u0176\u00bc\2\u0ea1\u0ea4\5\u00d2j\2\u0ea2\u0ea4\5\u017e"+ + "\u00c0\2\u0ea3\u0e9e\3\2\2\2\u0ea3\u0e9f\3\2\2\2\u0ea3\u0ea0\3\2\2\2\u0ea3"+ + "\u0ea1\3\2\2\2\u0ea3\u0ea2\3\2\2\2\u0ea4\u0141\3\2\2\2\u0ea5\u0ea6\7\u01b3"+ + "\2\2\u0ea6\u0ea7\7\u024d\2\2\u0ea7\u0ea8\5\u01cc\u00e7\2\u0ea8\u0143\3"+ + "\2\2\2\u0ea9\u0eaa\7\u01c3\2\2\u0eaa\u0eab\7\u02cf\2\2\u0eab\u0eaf\78"+ + "\2\2\u0eac\u0eb0\5\u0202\u0102\2\u0ead\u0eb0\7\u008f\2\2\u0eae\u0eb0\7"+ + "\u0208\2\2\u0eaf\u0eac\3\2\2\2\u0eaf\u0ead\3\2\2\2\u0eaf\u0eae\3\2\2\2"+ + "\u0eb0\u0eb9\3\2\2\2\u0eb1\u0eb5\7\u02f9\2\2\u0eb2\u0eb6\5\u0202\u0102"+ + "\2\u0eb3\u0eb6\7\u008f\2\2\u0eb4\u0eb6\7\u0208\2\2\u0eb5\u0eb2\3\2\2\2"+ + "\u0eb5\u0eb3\3\2\2\2\u0eb5\u0eb4\3\2\2\2\u0eb6\u0eb8\3\2\2\2\u0eb7\u0eb1"+ + "\3\2\2\2\u0eb8\u0ebb\3\2\2\2\u0eb9\u0eb7\3\2\2\2\u0eb9\u0eba\3\2\2\2\u0eba"+ + "\u0ebc\3\2\2\2\u0ebb\u0eb9\3\2\2\2\u0ebc\u0ec0\7\u0249\2\2\u0ebd\u0ec1"+ + "\5\u0202\u0102\2\u0ebe\u0ec1\7\u008f\2\2\u0ebf\u0ec1\7\u0208\2\2\u0ec0"+ + "\u0ebd\3\2\2\2\u0ec0\u0ebe\3\2\2\2\u0ec0\u0ebf\3\2\2\2\u0ec1\u0145\3\2"+ + "\2\2\u0ec2\u0ec3\5\u0206\u0104\2\u0ec3\u0147\3\2\2\2\u0ec4\u0ec8\7\u01d3"+ + "\2\2\u0ec5\u0ec6\7\u02ff\2\2\u0ec6\u0ec7\7\u0280\2\2\u0ec7\u0ec9\7\u0300"+ + "\2\2\u0ec8\u0ec5\3\2\2\2\u0ec8\u0ec9\3\2\2\2\u0ec9\u0eca\3\2\2\2\u0eca"+ + "\u0ecb\t\25\2\2\u0ecb\u0ecc\5\u0202\u0102\2\u0ecc\u0149\3\2\2\2\u0ecd"+ + "\u0ecf\7\u01d5\2\2\u0ece\u0ed0\7\u01f3\2\2\u0ecf\u0ece\3\2\2\2\u0ecf\u0ed0"+ + "\3\2\2\2\u0ed0\u0ed1\3\2\2\2\u0ed1\u0ed2\5\u0202\u0102\2\u0ed2\u014b\3"+ + "\2\2\2\u0ed3\u0ed6\7\u01da\2\2\u0ed4\u0ed7\5\u0202\u0102\2\u0ed5\u0ed7"+ + "\7\22\2\2\u0ed6\u0ed4\3\2\2\2\u0ed6\u0ed5\3\2\2\2\u0ed7\u014d\3\2\2\2"+ + "\u0ed8\u0ed9\5\u0206\u0104\2\u0ed9\u014f\3\2\2\2\u0eda\u0edc\7\u01e8\2"+ + "\2\u0edb\u0edd\t\26\2\2\u0edc\u0edb\3\2\2\2\u0edc\u0edd\3\2\2\2\u0edd"+ + "\u0151\3\2\2\2\u0ede\u0edf\7\u01e8\2\2\u0edf\u0ee0\7\u01b4\2\2\u0ee0\u0ee1"+ + "\7\u0306\2\2\u0ee1\u0153\3\2\2\2\u0ee2\u0ee4\7\u01e8\2\2\u0ee3\u0ee5\t"+ + "\26\2\2\u0ee4\u0ee3\3\2\2\2\u0ee4\u0ee5\3\2\2\2\u0ee5\u0ee6\3\2\2\2\u0ee6"+ + "\u0ee8\7\u0249\2\2\u0ee7\u0ee9\7\u01f3\2\2\u0ee8\u0ee7\3\2\2\2\u0ee8\u0ee9"+ + "\3\2\2\2\u0ee9\u0eea\3\2\2\2\u0eea\u0eeb\5\u0202\u0102\2\u0eeb\u0155\3"+ + "\2\2\2\u0eec\u0eed\7\u01f3\2\2\u0eed\u0eee\5\u0202\u0102\2\u0eee\u0157"+ + "\3\2\2\2\u0eef\u0ef0\7\u01ff\2\2\u0ef0\u0ef3\7\u012b\2\2\u0ef1\u0ef2\7"+ + "\u00e5\2\2\u0ef2\u0ef4\5\u01cc\u00e7\2\u0ef3\u0ef1\3\2\2\2\u0ef3\u0ef4"+ + "\3\2\2\2\u0ef4\u0ef5\3\2\2\2\u0ef5\u0f2c\7\u0182\2\2\u0ef6\u0ef7\7\u0239"+ + "\2\2\u0ef7\u0f2d\5\u0202\u0102\2\u0ef8\u0ef9\7`\2\2\u0ef9\u0efa\5\u0202"+ + "\u0102\2\u0efa\u0efb\7\u0308\2\2\u0efb\u0efc\5\u020a\u0106\2\u0efc\u0f2d"+ + "\3\2\2\2\u0efd\u0efe\7\20\2\2\u0efe\u0eff\5\u0202\u0102\2\u0eff\u0f00"+ + "\7\u02ff\2\2\u0f00\u0f01\5\u01ee\u00f8\2\u0f01\u0f02\7\u0300\2\2\u0f02"+ + "\u0f2d\3\2\2\2\u0f03\u0f04\7\u0094\2\2\u0f04\u0f2d\5\u0202\u0102\2\u0f05"+ + "\u0f06\7\u00bc\2\2\u0f06\u0f2d\5\u0202\u0102\2\u0f07\u0f08\7\u02bb\2\2"+ + "\u0f08\u0f09\7\u0256\2\2\u0f09\u0f2d\5\u0202\u0102\2\u0f0a\u0f0b\7\u00e7"+ + "\2\2\u0f0b\u0f0c\7\u0239\2\2\u0f0c\u0f2d\5\u0202\u0102\2\u0f0d\u0f0e\7"+ + "\u00f0\2\2\u0f0e\u0f0f\5\u0202\u0102\2\u0f0f\u0f10\5\u01c0\u00e1\2\u0f10"+ + "\u0f2d\3\2\2\2\u0f11\u0f12\7\u012e\2\2\u0f12\u0f13\7\u017a\2\2\u0f13\u0f2d"+ + "\7\u0306\2\2\u0f14\u0f15\7\u02c6\2\2\u0f15\u0f16\7\u0281\2\2\u0f16\u0f2d"+ + "\5\u0202\u0102\2\u0f17\u0f19\7\u01b9\2\2\u0f18\u0f17\3\2\2\2\u0f18\u0f19"+ + "\3\2\2\2\u0f19\u0f1a\3\2\2\2\u0f1a\u0f1b\7\u012d\2\2\u0f1b\u0f2d\5\u0202"+ + "\u0102\2\u0f1c\u0f1d\7\u01bc\2\2\u0f1d\u0f2d\5\u0202\u0102\2\u0f1e\u0f1f"+ + "\7\u01e7\2\2\u0f1f\u0f2d\5\u0202\u0102\2\u0f20\u0f21\7\u01f5\2\2\u0f21"+ + "\u0f2d\5\u0202\u0102\2\u0f22\u0f23\7\u0203\2\2\u0f23\u0f2d\5\u0202\u0102"+ + "\2\u0f24\u0f25\7\u0232\2\2\u0f25\u0f2d\5\u0202\u0102\2\u0f26\u0f27\7\u023c"+ + "\2\2\u0f27\u0f2d\5\u0202\u0102\2\u0f28\u0f29\7\u025e\2\2\u0f29\u0f2d\5"+ + "\u0202\u0102\2\u0f2a\u0f2b\7\u0281\2\2\u0f2b\u0f2d\5\u0202\u0102\2\u0f2c"+ + "\u0ef6\3\2\2\2\u0f2c\u0ef8\3\2\2\2\u0f2c\u0efd\3\2\2\2\u0f2c\u0f03\3\2"+ + "\2\2\u0f2c\u0f05\3\2\2\2\u0f2c\u0f07\3\2\2\2\u0f2c\u0f0a\3\2\2\2\u0f2c"+ + "\u0f0d\3\2\2\2\u0f2c\u0f11\3\2\2\2\u0f2c\u0f14\3\2\2\2\u0f2c\u0f18\3\2"+ + "\2\2\u0f2c\u0f1c\3\2\2\2\u0f2c\u0f1e\3\2\2\2\u0f2c\u0f20\3\2\2\2\u0f2c"+ + "\u0f22\3\2\2\2\u0f2c\u0f24\3\2\2\2\u0f2c\u0f26\3\2\2\2\u0f2c\u0f28\3\2"+ + "\2\2\u0f2c\u0f2a\3\2\2\2\u0f2d\u0f2e\3\2\2\2\u0f2e\u0f2f\7\u0123\2\2\u0f2f"+ + "\u0f30\7\u0309\2\2\u0f30\u0159\3\2\2\2\u0f31\u0f33\5\u015e\u00b0\2\u0f32"+ + "\u0f31\3\2\2\2\u0f32\u0f33\3\2\2\2\u0f33\u0f4e\3\2\2\2\u0f34\u0f35\7\u0200"+ + "\2\2\u0f35\u0f37\5\u0180\u00c1\2\u0f36\u0f38\5\u0182\u00c2\2\u0f37\u0f36"+ + "\3\2\2\2\u0f37\u0f38\3\2\2\2\u0f38\u0f4f\3\2\2\2\u0f39\u0f3b\7\u0239\2"+ + "\2\u0f3a\u0f3c\7\u0183\2\2\u0f3b\u0f3a\3\2\2\2\u0f3b\u0f3c\3\2\2\2\u0f3c"+ + "\u0f3d\3\2\2\2\u0f3d\u0f3f\5\u01d6\u00ec\2\u0f3e\u0f40\7\u02fe\2\2\u0f3f"+ + "\u0f3e\3\2\2\2\u0f3f\u0f40\3\2\2\2\u0f40\u0f4f\3\2\2\2\u0f41\u0f43\7\u02ff"+ + "\2\2\u0f42\u0f41\3\2\2\2\u0f43\u0f44\3\2\2\2\u0f44\u0f42\3\2\2\2\u0f44"+ + "\u0f45\3\2\2\2\u0f45\u0f46\3\2\2\2\u0f46\u0f48\5\u015a\u00ae\2\u0f47\u0f49"+ + "\7\u0300\2\2\u0f48\u0f47\3\2\2\2\u0f49\u0f4a\3\2\2\2\u0f4a\u0f48\3\2\2"+ + "\2\u0f4a\u0f4b\3\2\2\2\u0f4b\u0f4c\3\2\2\2\u0f4c\u0f4d\5\u019e\u00d0\2"+ + "\u0f4d\u0f4f\3\2\2\2\u0f4e\u0f34\3\2\2\2\u0f4e\u0f39\3\2\2\2\u0f4e\u0f42"+ + "\3\2\2\2\u0f4f\u0f51\3\2\2\2\u0f50\u0f52\5\u0184\u00c3\2\u0f51\u0f50\3"+ + "\2\2\2\u0f51\u0f52\3\2\2\2\u0f52\u0f54\3\2\2\2\u0f53\u0f55\5\u0186\u00c4"+ + "\2\u0f54\u0f53\3\2\2\2\u0f54\u0f55\3\2\2\2\u0f55\u0f57\3\2\2\2\u0f56\u0f58"+ + "\5\u018c\u00c7\2\u0f57\u0f56\3\2\2\2\u0f57\u0f58\3\2\2\2\u0f58\u0f5a\3"+ + "\2\2\2\u0f59\u0f5b\5\u019c\u00cf\2\u0f5a\u0f59\3\2\2\2\u0f5a\u0f5b\3\2"+ + "\2\2\u0f5b\u0f5d\3\2\2\2\u0f5c\u0f5e\5\u019e\u00d0\2\u0f5d\u0f5c\3\2\2"+ + "\2\u0f5d\u0f5e\3\2\2\2\u0f5e\u0f60\3\2\2\2\u0f5f\u0f61\5\u01a0\u00d1\2"+ + "\u0f60\u0f5f\3\2\2\2\u0f60\u0f61\3\2\2\2\u0f61\u0f63\3\2\2\2\u0f62\u0f64"+ + "\5\u01a4\u00d3\2\u0f63\u0f62\3\2\2\2\u0f63\u0f64\3\2\2\2\u0f64\u0f66\3"+ + "\2\2\2\u0f65\u0f67\5\u01a6\u00d4\2\u0f66\u0f65\3\2\2\2\u0f66\u0f67\3\2"+ + "\2\2\u0f67\u0f69\3\2\2\2\u0f68\u0f6a\5\u01a8\u00d5\2\u0f69\u0f68\3\2\2"+ + "\2\u0f69\u0f6a\3\2\2\2\u0f6a\u0f6c\3\2\2\2\u0f6b\u0f6d\5\u01aa\u00d6\2"+ + "\u0f6c\u0f6b\3\2\2\2\u0f6c\u0f6d\3\2\2\2\u0f6d\u015b\3\2\2\2\u0f6e\u0f70"+ + "\5\u015e\u00b0\2\u0f6f\u0f6e\3\2\2\2\u0f6f\u0f70\3\2\2\2\u0f70\u0f93\3"+ + "\2\2\2\u0f71\u0f72\7\u0200\2\2\u0f72\u0f73\5\u0180\u00c1\2\u0f73\u0f75"+ + "\7\u0121\2\2\u0f74\u0f76\t\27\2\2\u0f75\u0f74\3\2\2\2\u0f75\u0f76\3\2"+ + "\2\2\u0f76\u0f78\3\2\2\2\u0f77\u0f79\7\u0239\2\2\u0f78\u0f77\3\2\2\2\u0f78"+ + "\u0f79\3\2\2\2\u0f79\u0f7a\3\2\2\2\u0f7a\u0f7c\5\u01d6\u00ec\2\u0f7b\u0f7d"+ + "\5\u0182\u00c2\2\u0f7c\u0f7b\3\2\2\2\u0f7c\u0f7d\3\2\2\2\u0f7d\u0f94\3"+ + "\2\2\2\u0f7e\u0f80\7\u0239\2\2\u0f7f\u0f81\7\u0183\2\2\u0f80\u0f7f\3\2"+ + "\2\2\u0f80\u0f81\3\2\2\2\u0f81\u0f82\3\2\2\2\u0f82\u0f84\5\u01d6\u00ec"+ + "\2\u0f83\u0f85\7\u02fe\2\2\u0f84\u0f83\3\2\2\2\u0f84\u0f85\3\2\2\2\u0f85"+ + "\u0f94\3\2\2\2\u0f86\u0f88\7\u02ff\2\2\u0f87\u0f86\3\2\2\2\u0f88\u0f89"+ + "\3\2\2\2\u0f89\u0f87\3\2\2\2\u0f89\u0f8a\3\2\2\2\u0f8a\u0f8b\3\2\2\2\u0f8b"+ + "\u0f8d\5\u015a\u00ae\2\u0f8c\u0f8e\7\u0300\2\2\u0f8d\u0f8c\3\2\2\2\u0f8e"+ + "\u0f8f\3\2\2\2\u0f8f\u0f8d\3\2\2\2\u0f8f\u0f90\3\2\2\2\u0f90\u0f91\3\2"+ + "\2\2\u0f91\u0f92\5\u019e\u00d0\2\u0f92\u0f94\3\2\2\2\u0f93\u0f71\3\2\2"+ + "\2\u0f93\u0f7e\3\2\2\2\u0f93\u0f87\3\2\2\2\u0f94\u0f96\3\2\2\2\u0f95\u0f97"+ + "\5\u0184\u00c3\2\u0f96\u0f95\3\2\2\2\u0f96\u0f97\3\2\2\2\u0f97\u0f99\3"+ + "\2\2\2\u0f98\u0f9a\5\u0186\u00c4\2\u0f99\u0f98\3\2\2\2\u0f99\u0f9a\3\2"+ + "\2\2\u0f9a\u0f9c\3\2\2\2\u0f9b\u0f9d\5\u018c\u00c7\2\u0f9c\u0f9b\3\2\2"+ + "\2\u0f9c\u0f9d\3\2\2\2\u0f9d\u0f9f\3\2\2\2\u0f9e\u0fa0\5\u019c\u00cf\2"+ + "\u0f9f\u0f9e\3\2\2\2\u0f9f\u0fa0\3\2\2\2\u0fa0\u0fa2\3\2\2\2\u0fa1\u0fa3"+ + "\5\u019e\u00d0\2\u0fa2\u0fa1\3\2\2\2\u0fa2\u0fa3\3\2\2\2\u0fa3\u0fa5\3"+ + "\2\2\2\u0fa4\u0fa6\5\u01a0\u00d1\2\u0fa5\u0fa4\3\2\2\2\u0fa5\u0fa6\3\2"+ + "\2\2\u0fa6\u0fa8\3\2\2\2\u0fa7\u0fa9\5\u01a4\u00d3\2\u0fa8\u0fa7\3\2\2"+ + "\2\u0fa8\u0fa9\3\2\2\2\u0fa9\u0fab\3\2\2\2\u0faa\u0fac\5\u01a6\u00d4\2"+ + "\u0fab\u0faa\3\2\2\2\u0fab\u0fac\3\2\2\2\u0fac\u0fae\3\2\2\2\u0fad\u0faf"+ + "\5\u01a8\u00d5\2\u0fae\u0fad\3\2\2\2\u0fae\u0faf\3\2\2\2\u0faf\u0fb1\3"+ + "\2\2\2\u0fb0\u0fb2\5\u01aa\u00d6\2\u0fb1\u0fb0\3\2\2\2\u0fb1\u0fb2\3\2"+ + "\2\2\u0fb2\u015d\3\2\2\2\u0fb3\u0fb5\7\u0288\2\2\u0fb4\u0fb6\7\u01c5\2"+ + "\2\u0fb5\u0fb4\3\2\2\2\u0fb5\u0fb6\3\2\2\2\u0fb6\u0fb7\3\2\2\2\u0fb7\u0fbc"+ + "\5\u0160\u00b1\2\u0fb8\u0fb9\7\u02f9\2\2\u0fb9\u0fbb\5\u0160\u00b1\2\u0fba"+ + "\u0fb8\3\2\2\2\u0fbb\u0fbe\3\2\2\2\u0fbc\u0fba\3\2\2\2\u0fbc\u0fbd\3\2"+ + "\2\2\u0fbd\u015f\3\2\2\2\u0fbe\u0fbc\3\2\2\2\u0fbf\u0fc4\5\u01d6\u00ec"+ + "\2\u0fc0\u0fc1\7\u02ff\2\2\u0fc1\u0fc2\5\u01ce\u00e8\2\u0fc2\u0fc3\7\u0300"+ + "\2\2\u0fc3\u0fc5\3\2\2\2\u0fc4\u0fc0\3\2\2\2\u0fc4\u0fc5\3\2\2\2\u0fc5"+ + "\u0fc6\3\2\2\2\u0fc6\u0fc7\7\35\2\2\u0fc7\u0fcd\7\u02ff\2\2\u0fc8\u0fce"+ + "\5\u015a\u00ae\2\u0fc9\u0fce\5\u0134\u009b\2\u0fca\u0fce\5\u00d2j\2\u0fcb"+ + "\u0fce\5\u0176\u00bc\2\u0fcc\u0fce\5\u017e\u00c0\2\u0fcd\u0fc8\3\2\2\2"+ + "\u0fcd\u0fc9\3\2\2\2\u0fcd\u0fca\3\2\2\2\u0fcd\u0fcb\3\2\2\2\u0fcd\u0fcc"+ + "\3\2\2\2\u0fce\u0fcf\3\2\2\2\u0fcf\u0fd0\7\u0300\2\2\u0fd0\u0161\3\2\2"+ + "\2\u0fd1\u0fd3\7\u0209\2\2\u0fd2\u0fd4\t\30\2\2\u0fd3\u0fd2\3\2\2\2\u0fd3"+ + "\u0fd4\3\2\2\2\u0fd4\u0fd5\3\2\2\2\u0fd5\u0fd6\5\u0202\u0102\2\u0fd6\u0fd9"+ + "\t\7\2\2\u0fd7\u0fda\5\u01fe\u0100\2\u0fd8\u0fda\7\u009d\2\2\u0fd9\u0fd7"+ + "\3\2\2\2\u0fd9\u0fd8\3\2\2\2\u0fda\u0fe7\3\2\2\2\u0fdb\u0fdd\7\u0209\2"+ + "\2\u0fdc\u0fde\t\30\2\2\u0fdd\u0fdc\3\2\2\2\u0fdd\u0fde\3\2\2\2\u0fde"+ + "\u0fdf\3\2\2\2\u0fdf\u0fe0\7\u0244\2\2\u0fe0\u0fe4\7\u0290\2\2\u0fe1\u0fe5"+ + "\5\u01c6\u00e4\2\u0fe2\u0fe5\7\u013c\2\2\u0fe3\u0fe5\7\u009d\2\2\u0fe4"+ + "\u0fe1\3\2\2\2\u0fe4\u0fe2\3\2\2\2\u0fe4\u0fe3\3\2\2\2\u0fe5\u0fe7\3\2"+ + "\2\2\u0fe6\u0fd1\3\2\2\2\u0fe6\u0fdb\3\2\2\2\u0fe7\u0163\3\2\2\2\u0fe8"+ + "\u0fe9\7\u0209\2\2\u0fe9\u0fec\7s\2\2\u0fea\u0fed\7\22\2\2\u0feb\u0fed"+ + "\5\u01d0\u00e9\2\u0fec\u0fea\3\2\2\2\u0fec\u0feb\3\2\2\2\u0fed\u0fee\3"+ + "\2\2\2\u0fee\u0fef\t\31\2\2\u0fef\u0165\3\2\2\2\u0ff0\u0ff2\7\u0209\2"+ + "\2\u0ff1\u0ff3\t\30\2\2\u0ff2\u0ff1\3\2\2\2\u0ff2\u0ff3\3\2\2\2\u0ff3"+ + "\u0ff4\3\2\2\2\u0ff4\u0ff7\7\u01e7\2\2\u0ff5\u0ff8\5\u01fa\u00fe\2\u0ff6"+ + "\u0ff8\7\u016c\2\2\u0ff7\u0ff5\3\2\2\2\u0ff7\u0ff6\3\2\2\2\u0ff8\u0ffc"+ + "\3\2\2\2\u0ff9\u0ffa\7\u01da\2\2\u0ffa\u0ffc\7\u01e7\2\2\u0ffb\u0ff0\3"+ + "\2\2\2\u0ffb\u0ff9\3\2\2\2\u0ffc\u0167\3\2\2\2\u0ffd\u0ffe\5\u0206\u0104"+ + "\2\u0ffe\u0169\3\2\2\2\u0fff\u1000\7\u0124\2\2\u1000\u1008\7\u0136\2\2"+ + "\u1001\u1009\7\u0205\2\2\u1002\u1003\7\u01d7\2\2\u1003\u1009\7\u01c0\2"+ + "\2\u1004\u1005\7\u01c0\2\2\u1005\u1009\7f\2\2\u1006\u1007\7\u01c0\2\2"+ + "\u1007\u1009\7\u0261\2\2\u1008\u1001\3\2\2\2\u1008\u1002\3\2\2\2\u1008"+ + "\u1004\3\2\2\2\u1008\u1006\3\2\2\2\u1009\u1013\3\2\2\2\u100a\u100b\7\u01c0"+ + "\2\2\u100b\u1013\7\u028c\2\2\u100c\u100d\7\u01c0\2\2\u100d\u1013\7\u0183"+ + "\2\2\u100e\u1010\7\u016f\2\2\u100f\u100e\3\2\2\2\u100f\u1010\3\2\2\2\u1010"+ + "\u1011\3\2\2\2\u1011\u1013\7\u00a0\2\2\u1012\u0fff\3\2\2\2\u1012\u100a"+ + "\3\2\2\2\u1012\u100c\3\2\2\2\u1012\u100f\3\2\2\2\u1013\u016b\3\2\2\2\u1014"+ + "\u1019\5\u016a\u00b6\2\u1015\u1016\7\u02f9\2\2\u1016\u1018\5\u016a\u00b6"+ + "\2\u1017\u1015\3\2\2\2\u1018\u101b\3\2\2\2\u1019\u1017\3\2\2\2\u1019\u101a"+ + "\3\2\2\2\u101a\u016d\3\2\2\2\u101b\u1019\3\2\2\2\u101c\u101d\7\u0209\2"+ + "\2\u101d\u101e\7\u024d\2\2\u101e\u102a\5\u016c\u00b7\2\u101f\u1020\7\u0209"+ + "\2\2\u1020\u1021\7\u024d\2\2\u1021\u1022\7\u0213\2\2\u1022\u102a\7\u0309"+ + "\2\2\u1023\u1024\7\u0209\2\2\u1024\u1025\7\u0207\2\2\u1025\u1026\7N\2"+ + "\2\u1026\u1027\7\35\2\2\u1027\u1028\7\u024d\2\2\u1028\u102a\5\u016c\u00b7"+ + "\2\u1029\u101c\3\2\2\2\u1029\u101f\3\2\2\2\u1029\u1023\3\2\2\2\u102a\u016f"+ + "\3\2\2\2\u102b\u1030\7\u020d\2\2\u102c\u1031\5\u0202\u0102\2\u102d\u102e"+ + "\7\u0244\2\2\u102e\u1031\7\u0290\2\2\u102f\u1031\7\22\2\2\u1030\u102c"+ + "\3\2\2\2\u1030\u102d\3\2\2\2\u1030\u102f\3\2\2\2\u1031\u0171\3\2\2\2\u1032"+ + "\u1034\7\u025c\2\2\u1033\u1035\7\u0239\2\2\u1034\u1033\3\2\2\2\u1034\u1035"+ + "\3\2\2\2\u1035\u1037\3\2\2\2\u1036\u1038\7\u0183\2\2\u1037\u1036\3\2\2"+ + "\2\u1037\u1038\3\2\2\2\u1038\u1039\3\2\2\2\u1039\u103b\5\u01d6\u00ec\2"+ + "\u103a\u103c\7\u02fe\2\2\u103b\u103a\3\2\2\2\u103b\u103c\3\2\2\2\u103c"+ + "\u1042\3\2\2\2\u103d\u103f\7\u02f9\2\2\u103e\u1040\7\u0183\2\2\u103f\u103e"+ + "\3\2\2\2\u103f\u1040\3\2\2\2\u1040\u1041\3\2\2\2\u1041\u1043\5\u01d0\u00e9"+ + "\2\u1042\u103d\3\2\2\2\u1042\u1043\3\2\2\2\u1043\u1046\3\2\2\2\u1044\u1045"+ + "\t\32\2\2\u1045\u1047\7\u0104\2\2\u1046\u1044\3\2\2\2\u1046\u1047\3\2"+ + "\2\2\u1047\u1049\3\2\2\2\u1048\u104a\t\3\2\2\u1049\u1048\3\2\2\2\u1049"+ + "\u104a\3\2\2\2\u104a\u0173\3\2\2\2\u104b\u104e\7\u0267\2\2\u104c\u104f"+ + "\5\u0202\u0102\2\u104d\u104f\7\u02fe\2\2\u104e\u104c\3\2\2\2\u104e\u104d"+ + "\3\2\2\2\u104f\u0175\3\2\2\2\u1050\u1052\5\u015e\u00b0\2\u1051\u1050\3"+ + "\2\2\2\u1051\u1052\3\2\2\2\u1052\u1053\3\2\2\2\u1053\u1055\7\u026b\2\2"+ + "\u1054\u1056\7\u0183\2\2\u1055\u1054\3\2\2\2\u1055\u1056\3\2\2\2\u1056"+ + "\u1057\3\2\2\2\u1057\u1059\5\u01d6\u00ec\2\u1058\u105a\7\u02fe\2\2\u1059"+ + "\u1058\3\2\2\2\u1059\u105a\3\2\2\2\u105a\u105f\3\2\2\2\u105b\u105d\7\35"+ + "\2\2\u105c\u105b\3\2\2\2\u105c\u105d\3\2\2\2\u105d\u105e\3\2\2\2\u105e"+ + "\u1060\5\u0202\u0102\2\u105f\u105c\3\2\2\2\u105f\u1060\3\2\2\2\u1060\u1061"+ + "\3\2\2\2\u1061\u1062\7\u0209\2\2\u1062\u1064\5\u01ac\u00d7\2\u1063\u1065"+ + "\5\u0182\u00c2\2\u1064\u1063\3\2\2\2\u1064\u1065\3\2\2\2\u1065\u106b\3"+ + "\2\2\2\u1066\u106c\5\u0184\u00c3\2\u1067\u1068\7\u0285\2\2\u1068\u1069"+ + "\7\u0087\2\2\u1069\u106a\7\u017d\2\2\u106a\u106c\5\u0202\u0102\2\u106b"+ + "\u1066\3\2\2\2\u106b\u1067\3\2\2\2\u106b\u106c\3\2\2\2\u106c\u106e\3\2"+ + "\2\2\u106d\u106f\5\u01b0\u00d9\2\u106e\u106d\3\2\2\2\u106e\u106f\3\2\2"+ + "\2\u106f\u0177\3\2\2\2\u1070\u1071\t\33\2\2\u1071\u0179\3\2\2\2\u1072"+ + "\u1077\5\u0178\u00bd\2\u1073\u1074\7\u02f9\2\2\u1074\u1076\5\u0178\u00bd"+ + "\2\u1075\u1073\3\2\2\2\u1076\u1079\3\2\2\2\u1077\u1075\3\2\2\2\u1077\u1078"+ + "\3\2\2\2\u1078\u017b\3\2\2\2\u1079\u1077\3\2\2\2\u107a\u107f\7\u0274\2"+ + "\2\u107b\u107c\7\u02ff\2\2\u107c\u107d\5\u017a\u00be\2\u107d\u107e\7\u0300"+ + "\2\2\u107e\u1080\3\2\2\2\u107f\u107b\3\2\2\2\u107f\u1080\3\2\2\2\u1080"+ + "\u1081\3\2\2\2\u1081\u1086\5\u01d6\u00ec\2\u1082\u1083\7\u02ff\2\2\u1083"+ + "\u1084\5\u018e\u00c8\2\u1084\u1085\7\u0300\2\2\u1085\u1087\3\2\2\2\u1086"+ + "\u1082\3\2\2\2\u1086\u1087\3\2\2\2\u1087\u10aa\3\2\2\2\u1088\u108a\7\u0274"+ + "\2\2\u1089\u108b\7\u00ef\2\2\u108a\u1089\3\2\2\2\u108a\u108b\3\2\2\2\u108b"+ + "\u108d\3\2\2\2\u108c\u108e\7\u00ed\2\2\u108d\u108c\3\2\2\2\u108d\u108e"+ + "\3\2\2\2\u108e\u1090\3\2\2\2\u108f\u1091\7\u0280\2\2\u1090\u108f\3\2\2"+ + "\2\u1090\u1091\3\2\2\2\u1091\u1093\3\2\2\2\u1092\u1094\5\u01d6\u00ec\2"+ + "\u1093\u1092\3\2\2\2\u1093\u1094\3\2\2\2\u1094\u10aa\3\2\2\2\u1095\u1097"+ + "\7\u0274\2\2\u1096\u1098\7\u00ef\2\2\u1097\u1096\3\2\2\2\u1097\u1098\3"+ + "\2\2\2\u1098\u109a\3\2\2\2\u1099\u109b\7\u00ed\2\2\u109a\u1099\3\2\2\2"+ + "\u109a\u109b\3\2\2\2\u109b\u109d\3\2\2\2\u109c\u109e\7\u0280\2\2\u109d"+ + "\u109c\3\2\2\2\u109d\u109e\3\2\2\2\u109e\u109f\3\2\2\2\u109f\u10a7\7\30"+ + "\2\2\u10a0\u10a5\5\u01d6\u00ec\2\u10a1\u10a2\7\u02ff\2\2\u10a2\u10a3\5"+ + "\u018e\u00c8\2\u10a3\u10a4\7\u0300\2\2\u10a4\u10a6\3\2\2\2\u10a5\u10a1"+ + "\3\2\2\2\u10a5\u10a6\3\2\2\2\u10a6\u10a8\3\2\2\2\u10a7\u10a0\3\2\2\2\u10a7"+ + "\u10a8\3\2\2\2\u10a8\u10aa\3\2\2\2\u10a9\u107a\3\2\2\2\u10a9\u1088\3\2"+ + "\2\2\u10a9\u1095\3\2\2\2\u10aa\u017d\3\2\2\2\u10ab\u10ad\5\u015e\u00b0"+ + "\2\u10ac\u10ab\3\2\2\2\u10ac\u10ad\3\2\2\2\u10ad\u10bd\3\2\2\2\u10ae\u10af"+ + "\7\u0279\2\2\u10af\u10be\5\u01ba\u00de\2\u10b0\u10b2\7\u02ff\2\2\u10b1"+ + "\u10b0\3\2\2\2\u10b2\u10b3\3\2\2\2\u10b3\u10b1\3\2\2\2\u10b3\u10b4\3\2"+ + "\2\2\u10b4\u10b5\3\2\2\2\u10b5\u10b7\5\u017e\u00c0\2\u10b6\u10b8\7\u0300"+ + "\2\2\u10b7\u10b6\3\2\2\2\u10b8\u10b9\3\2\2\2\u10b9\u10b7\3\2\2\2\u10b9"+ + "\u10ba\3\2\2\2\u10ba\u10bb\3\2\2\2\u10bb\u10bc\5\u019e\u00d0\2\u10bc\u10be"+ + "\3\2\2\2\u10bd\u10ae\3\2\2\2\u10bd\u10b1\3\2\2\2\u10be\u10c0\3\2\2\2\u10bf"+ + "\u10c1\5\u01a0\u00d1\2\u10c0\u10bf\3\2\2\2\u10c0\u10c1\3\2\2\2\u10c1\u10c3"+ + "\3\2\2\2\u10c2\u10c4\5\u019e\u00d0\2\u10c3\u10c2\3\2\2\2\u10c3\u10c4\3"+ + "\2\2\2\u10c4\u10c6\3\2\2\2\u10c5\u10c7\5\u01a4\u00d3\2\u10c6\u10c5\3\2"+ + "\2\2\u10c6\u10c7\3\2\2\2\u10c7\u10c9\3\2\2\2\u10c8\u10ca\5\u01a6\u00d4"+ + "\2\u10c9\u10c8\3\2\2\2\u10c9\u10ca\3\2\2\2\u10ca\u10cc\3\2\2\2\u10cb\u10cd"+ + "\5\u01a8\u00d5\2\u10cc\u10cb\3\2\2\2\u10cc\u10cd\3\2\2\2\u10cd\u017f\3"+ + "\2\2\2\u10ce\u10d5\7\22\2\2\u10cf\u10d2\7\u00ba\2\2\u10d0\u10d1\7\u0182"+ + "\2\2\u10d1\u10d3\5\u01b8\u00dd\2\u10d2\u10d0\3\2\2\2\u10d2\u10d3\3\2\2"+ + "\2\u10d3\u10d5\3\2\2\2\u10d4\u10ce\3\2\2\2\u10d4\u10cf\3\2\2\2\u10d4\u10d5"+ + "\3\2\2\2\u10d5\u10d6\3\2\2\2\u10d6\u10d7\5\u018e\u00c8\2\u10d7\u0181\3"+ + "\2\2\2\u10d8\u10d9\7\u00ee\2\2\u10d9\u10de\5\u01e4\u00f3\2\u10da\u10db"+ + "\7\u02f9\2\2\u10db\u10dd\5\u01e4\u00f3\2\u10dc\u10da\3\2\2\2\u10dd\u10e0"+ + "\3\2\2\2\u10de\u10dc\3\2\2\2\u10de\u10df\3\2\2\2\u10df\u0183\3\2\2\2\u10e0"+ + "\u10de\3\2\2\2\u10e1\u10e2\7\u0285\2\2\u10e2\u10e3\5\u01ec\u00f7\2\u10e3"+ + "\u0185\3\2\2\2\u10e4\u10e5\7\u00fc\2\2\u10e5\u10e6\78\2\2\u10e6\u10eb"+ + "\5\u0188\u00c5\2\u10e7\u10e8\7\u02f9\2\2\u10e8\u10ea\5\u0188\u00c5\2\u10e9"+ + "\u10e7\3\2\2\2\u10ea\u10ed\3\2\2\2\u10eb\u10e9\3\2\2\2\u10eb\u10ec\3\2"+ + "\2\2\u10ec\u0187\3\2\2\2\u10ed\u10eb\3\2\2\2\u10ee\u10ef\7\u02ff\2\2\u10ef"+ + "\u1108\7\u0300\2\2\u10f0\u1108\5\u01b2\u00da\2\u10f1\u1108\5\u01b8\u00dd"+ + "\2\u10f2\u10f3\t\34\2\2\u10f3\u10f6\7\u02ff\2\2\u10f4\u10f7\5\u01b2\u00da"+ + "\2\u10f5\u10f7\5\u01b8\u00dd\2\u10f6\u10f4\3\2\2\2\u10f6\u10f5\3\2\2\2"+ + "\u10f7\u10ff\3\2\2\2\u10f8\u10fb\7\u02f9\2\2\u10f9\u10fc\5\u01b2\u00da"+ + "\2\u10fa\u10fc\5\u01b8\u00dd\2\u10fb\u10f9\3\2\2\2\u10fb\u10fa\3\2\2\2"+ + "\u10fc\u10fe\3\2\2\2\u10fd\u10f8\3\2\2\2\u10fe\u1101\3\2\2\2\u10ff\u10fd"+ + "\3\2\2\2\u10ff\u1100\3\2\2\2\u1100\u1102\3\2\2\2\u1101\u10ff\3\2\2\2\u1102"+ + "\u1103\7\u0300\2\2\u1103\u1108\3\2\2\2\u1104\u1105\7\u00fd\2\2\u1105\u1106"+ + "\7\u020b\2\2\u1106\u1108\5\u018a\u00c6\2\u1107\u10ee\3\2\2\2\u1107\u10f0"+ + "\3\2\2\2\u1107\u10f1\3\2\2\2\u1107\u10f2\3\2\2\2\u1107\u1104\3\2\2\2\u1108"+ + "\u0189\3\2\2\2\u1109\u110a\7\u02ff\2\2\u110a\u110f\5\u0188\u00c5\2\u110b"+ + "\u110c\7\u02f9\2\2\u110c\u110e\5\u0188\u00c5\2\u110d\u110b\3\2\2\2\u110e"+ + "\u1111\3\2\2\2\u110f\u110d\3\2\2\2\u110f\u1110\3\2\2\2\u1110\u1112\3\2"+ + "\2\2\u1111\u110f\3\2\2\2\u1112\u1113\7\u0300\2\2\u1113\u018b\3\2\2\2\u1114"+ + "\u1115\7\u00ff\2\2\u1115\u111a\5\u01ec\u00f7\2\u1116\u1117\7\u02f9\2\2"+ + "\u1117\u1119\5\u01ec\u00f7\2\u1118\u1116\3\2\2\2\u1119\u111c\3\2\2\2\u111a"+ + "\u1118\3\2\2\2\u111a\u111b\3\2\2\2\u111b\u018d\3\2\2\2\u111c\u111a\3\2"+ + "\2\2\u111d\u1122\5\u01b2\u00da\2\u111e\u1120\7\35\2\2\u111f\u111e\3\2"+ + "\2\2\u111f\u1120\3\2\2\2\u1120\u1121\3\2\2\2\u1121\u1123\5\u01cc\u00e7"+ + "\2\u1122\u111f\3\2\2\2\u1122\u1123\3\2\2\2\u1123\u1126\3\2\2\2\u1124\u1126"+ + "\7\u02fe\2\2\u1125\u111d\3\2\2\2\u1125\u1124\3\2\2\2\u1126\u1134\3\2\2"+ + "\2\u1127\u1130\7\u02f9\2\2\u1128\u112d\5\u01b2\u00da\2\u1129\u112b\7\35"+ + "\2\2\u112a\u1129\3\2\2\2\u112a\u112b\3\2\2\2\u112b\u112c\3\2\2\2\u112c"+ + "\u112e\5\u01cc\u00e7\2\u112d\u112a\3\2\2\2\u112d\u112e\3\2\2\2\u112e\u1131"+ + "\3\2\2\2\u112f\u1131\7\u02fe\2\2\u1130\u1128\3\2\2\2\u1130\u112f\3\2\2"+ + "\2\u1131\u1133\3\2\2\2\u1132\u1127\3\2\2\2\u1133\u1136\3\2\2\2\u1134\u1132"+ + "\3\2\2\2\u1134\u1135\3\2\2\2\u1135\u018f\3\2\2\2\u1136\u1134\3\2\2\2\u1137"+ + "\u1139\t\35\2\2\u1138\u113a\5\u01fe\u0100\2\u1139\u1138\3\2\2\2\u1139"+ + "\u113a\3\2\2\2\u113a\u113e\3\2\2\2\u113b\u113c\7\u00e8\2\2\u113c\u113e"+ + "\t\36\2\2\u113d\u1137\3\2\2\2\u113d\u113b\3\2\2\2\u113e\u0191\3\2\2\2"+ + "\u113f\u1140\7\u0260\2\2\u1140\u114a\7\u01af\2\2\u1141\u1142\7\u0306\2"+ + "\2\u1142\u114a\7\u01af\2\2\u1143\u1144\7\u0087\2\2\u1144\u114a\7\u01ee"+ + "\2\2\u1145\u1146\7\u0306\2\2\u1146\u114a\7\u00e4\2\2\u1147\u1148\7\u0260"+ + "\2\2\u1148\u114a\7\u00e4\2\2\u1149\u113f\3\2\2\2\u1149\u1141\3\2\2\2\u1149"+ + "\u1143\3\2\2\2\u1149\u1145\3\2\2\2\u1149\u1147\3\2\2\2\u114a\u0193\3\2"+ + "\2\2\u114b\u114c\5\u0192\u00ca\2\u114c\u0195\3\2\2\2\u114d\u114e\5\u0192"+ + "\u00ca\2\u114e\u0197\3\2\2\2\u114f\u1150\t\37\2\2\u1150\u1158\5\u0194"+ + "\u00cb\2\u1151\u1152\t\37\2\2\u1152\u1153\7-\2\2\u1153\u1154\5\u0194\u00cb"+ + "\2\u1154\u1155\7\31\2\2\u1155\u1156\5\u0196\u00cc\2\u1156\u1158\3\2\2"+ + "\2\u1157\u114f\3\2\2\2\u1157\u1151\3\2\2\2\u1158\u0199\3\2\2\2\u1159\u1166"+ + "\5\u0212\u010a\2\u115a\u115b\7\u01a1\2\2\u115b\u115c\78\2\2\u115c\u1161"+ + "\5\u01b2\u00da\2\u115d\u115e\7\u02f9\2\2\u115e\u1160\5\u01b2\u00da\2\u115f"+ + "\u115d\3\2\2\2\u1160\u1163\3\2\2\2\u1161\u115f\3\2\2\2\u1161\u1162\3\2"+ + "\2\2\u1162\u1166\3\2\2\2\u1163\u1161\3\2\2\2\u1164\u1166\5\u01a0\u00d1"+ + "\2\u1165\u1159\3\2\2\2\u1165\u115a\3\2\2\2\u1165\u1164\3\2\2\2\u1166\u019b"+ + "\3\2\2\2\u1167\u1168\7\u0287\2\2\u1168\u1169\5\u0212\u010a\2\u1169\u116a"+ + "\7\35\2\2\u116a\u116b\7\u02ff\2\2\u116b\u116c\5\u019a\u00ce\2\u116c\u116d"+ + "\7\u0300\2\2\u116d\u019d\3\2\2\2\u116e\u1170\t \2\2\u116f\u1171\t!\2\2"+ + "\u1170\u116f\3\2\2\2\u1170\u1171\3\2\2\2\u1171\u1175\3\2\2\2\u1172\u1174"+ + "\7\u02ff\2\2\u1173\u1172\3\2\2\2\u1174\u1177\3\2\2\2\u1175\u1173\3\2\2"+ + "\2\u1175\u1176\3\2\2\2\u1176\u117a\3\2\2\2\u1177\u1175\3\2\2\2\u1178\u117b"+ + "\5\u015a\u00ae\2\u1179\u117b\5\u017e\u00c0\2\u117a\u1178\3\2\2\2\u117a"+ + "\u1179\3\2\2\2\u117b\u117f\3\2\2\2\u117c\u117e\7\u0300\2\2\u117d\u117c"+ + "\3\2\2\2\u117e\u1181\3\2\2\2\u117f\u117d\3\2\2\2\u117f\u1180\3\2\2\2\u1180"+ + "\u1183\3\2\2\2\u1181\u117f\3\2\2\2\u1182\u1184\5\u019e\u00d0\2\u1183\u1182"+ + "\3\2\2\2\u1183\u1184\3\2\2\2\u1184\u019f\3\2\2\2\u1185\u1186\7\u018a\2"+ + "\2\u1186\u1187\78\2\2\u1187\u118c\5\u01a2"; + private static final String _serializedATNSegment2 = + "\u00d2\2\u1188\u1189\7\u02f9\2\2\u1189\u118b\5\u01a2\u00d2\2\u118a\u1188"+ + "\3\2\2\2\u118b\u118e\3\2\2\2\u118c\u118a\3\2\2\2\u118c\u118d\3\2\2\2\u118d"+ + "\u01a1\3\2\2\2\u118e\u118c\3\2\2\2\u118f\u1192\5\u01b2\u00da\2\u1190\u1192"+ + "\7\u030a\2\2\u1191\u118f\3\2\2\2\u1191\u1190\3\2\2\2\u1192\u1197\3\2\2"+ + "\2\u1193\u1198\7\36\2\2\u1194\u1198\7\u00ad\2\2\u1195\u1196\7\u0273\2"+ + "\2\u1196\u1198\5\u01b2\u00da\2\u1197\u1193\3\2\2\2\u1197\u1194\3\2\2\2"+ + "\u1197\u1195\3\2\2\2\u1197\u1198\3\2\2\2\u1198\u11a4\3\2\2\2\u1199\u119a"+ + "\7\u0177\2\2\u119a\u119b\t\"\2\2\u119b\u11a1\3\2\2\2\u119c\u119d\7\u02f9"+ + "\2\2\u119d\u119e\7\u0177\2\2\u119e\u11a0\t\"\2\2\u119f\u119c\3\2\2\2\u11a0"+ + "\u11a3\3\2\2\2\u11a1\u119f\3\2\2\2\u11a1\u11a2\3\2\2\2\u11a2\u11a5\3\2"+ + "\2\2\u11a3\u11a1\3\2\2\2\u11a4\u1199\3\2\2\2\u11a4\u11a5\3\2\2\2\u11a5"+ + "\u01a3\3\2\2\2\u11a6\u11aa\7\u0138\2\2\u11a7\u11ab\7\u0306\2\2\u11a8\u11ab"+ + "\7\22\2\2\u11a9\u11ab\5\u01e0\u00f1\2\u11aa\u11a7\3\2\2\2\u11aa\u11a8"+ + "\3\2\2\2\u11aa\u11a9\3\2\2\2\u11ab\u01a5\3\2\2\2\u11ac\u11ad\7\u017f\2"+ + "\2\u11ad\u11af\7\u0306\2\2\u11ae\u11b0\t#\2\2\u11af\u11ae\3\2\2\2\u11af"+ + "\u11b0\3\2\2\2\u11b0\u01a7\3\2\2\2\u11b1\u11b2\7\u00dd\2\2\u11b2\u11b4"+ + "\t$\2\2\u11b3\u11b5\7\u0306\2\2\u11b4\u11b3\3\2\2\2\u11b4\u11b5\3\2\2"+ + "\2\u11b5\u11b6\3\2\2\2\u11b6\u11b7\t#\2\2\u11b7\u11b8\7\u0183\2\2\u11b8"+ + "\u01a9\3\2\2\2\u11b9\u11c1\7\u00e5\2\2\u11ba\u11c2\7\u026b\2\2\u11bb\u11bc"+ + "\7\u0169\2\2\u11bc\u11bd\7\u0128\2\2\u11bd\u11c2\7\u026b\2\2\u11be\u11c2"+ + "\7\u020c\2\2\u11bf\u11c0\7\u0128\2\2\u11c0\u11c2\7\u020c\2\2\u11c1\u11ba"+ + "\3\2\2\2\u11c1\u11bb\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1\u11bf\3\2\2\2\u11c2"+ + "\u11cc\3\2\2\2\u11c3\u11c4\7\u017d\2\2\u11c4\u11c9\5\u01d6\u00ec\2\u11c5"+ + "\u11c6\7\u02f9\2\2\u11c6\u11c8\5\u01d6\u00ec\2\u11c7\u11c5\3\2\2\2\u11c8"+ + "\u11cb\3\2\2\2\u11c9\u11c7\3\2\2\2\u11c9\u11ca\3\2\2\2\u11ca\u11cd\3\2"+ + "\2\2\u11cb\u11c9\3\2\2\2\u11cc\u11c3\3\2\2\2\u11cc\u11cd\3\2\2\2\u11cd"+ + "\u11d3\3\2\2\2\u11ce\u11d2\7\u0173\2\2\u11cf\u11d0\7\u0211\2\2\u11d0\u11d2"+ + "\7\u0142\2\2\u11d1\u11ce\3\2\2\2\u11d1\u11cf\3\2\2\2\u11d2\u11d5\3\2\2"+ + "\2\u11d3\u11d1\3\2\2\2\u11d3\u11d4\3\2\2\2\u11d4\u01ab\3\2\2\2\u11d5\u11d3"+ + "\3\2\2\2\u11d6\u11db\5\u01ae\u00d8\2\u11d7\u11d8\7\u02f9\2\2\u11d8\u11da"+ + "\5\u01ae\u00d8\2\u11d9\u11d7\3\2\2\2\u11da\u11dd\3\2\2\2\u11db\u11d9\3"+ + "\2\2\2\u11db\u11dc\3\2\2\2\u11dc\u01ad\3\2\2\2\u11dd\u11db\3\2\2\2\u11de"+ + "\u11e8\5\u01b2\u00da\2\u11df\u11e0\7\u02ff\2\2\u11e0\u11e1\5\u01ce\u00e8"+ + "\2\u11e1\u11e2\7\u0300\2\2\u11e2\u11e5\7\u0318\2\2\u11e3\u11e6\5\u01b2"+ + "\u00da\2\u11e4\u11e6\5\u01b8\u00dd\2\u11e5\u11e3\3\2\2\2\u11e5\u11e4\3"+ + "\2\2\2\u11e6\u11e8\3\2\2\2\u11e7\u11de\3\2\2\2\u11e7\u11df\3\2\2\2\u11e8"+ + "\u01af\3\2\2\2\u11e9\u11ea\7\u01e3\2\2\u11ea\u11eb\5\u018e\u00c8\2\u11eb"+ + "\u01b1\3\2\2\2\u11ec\u11ed\b\u00da\1\2\u11ed\u1237\7\u0174\2\2\u11ee\u1237"+ + "\7\u0088\2\2\u11ef\u1237\7\u008b\2\2\u11f0\u1237\7\u008c\2\2\u11f1\u1237"+ + "\7\u008d\2\2\u11f2\u1237\7\u008f\2\2\u11f3\u1237\7\u009d\2\2\u11f4\u1237"+ + "\7\u0306\2\2\u11f5\u1237\7\u0307\2\2\u11f6\u1237\7\u0305\2\2\u11f7\u1237"+ + "\7\u0309\2\2\u11f8\u1237\7\u0303\2\2\u11f9\u1237\7\u0304\2\2\u11fa\u11fc"+ + "\7\u02fd\2\2\u11fb\u11fd\n%\2\2\u11fc\u11fb\3\2\2\2\u11fd\u11fe\3\2\2"+ + "\2\u11fe\u11fc\3\2\2\2\u11fe\u11ff\3\2\2\2\u11ff\u1200\3\2\2\2\u1200\u1237"+ + "\7\u02fd\2\2\u1201\u1202\7\u02fc\2\2\u1202\u1204\5\u0202\u0102\2\u1203"+ + "\u1205\n%\2\2\u1204\u1203\3\2\2\2\u1205\u1206\3\2\2\2\u1206\u1204\3\2"+ + "\2\2\u1206\u1207\3\2\2\2\u1207\u1208\3\2\2\2\u1208\u1209\7\u02fc\2\2\u1209"+ + "\u120a\5\u0202\u0102\2\u120a\u120b\7\u02fc\2\2\u120b\u1237\3\2\2\2\u120c"+ + "\u1237\5\u01b4\u00db\2\u120d\u1237\5\u017e\u00c0\2\u120e\u1237\5\u01b8"+ + "\u00dd\2\u120f\u1210\7\u02ff\2\2\u1210\u1211\5\u01b2\u00da\2\u1211\u1212"+ + "\7\u0300\2\2\u1212\u1237\3\2\2\2\u1213\u1214\5\u01c4\u00e3\2\u1214\u1215"+ + "\7\u0309\2\2\u1215\u1237\3\2\2\2\u1216\u1217\t&\2\2\u1217\u1237\5\u01b2"+ + "\u00da \u1218\u1219\t\'\2\2\u1219\u1237\5\u01b2\u00da\37\u121a\u121b\t"+ + "(\2\2\u121b\u1237\5\u01b2\u00da\23\u121c\u1237\5\u01e0\u00f1\2\u121d\u1237"+ + "\5\u0202\u0102\2\u121e\u121f\7A\2\2\u121f\u1220\7\u02ff\2\2\u1220\u1221"+ + "\5\u01b2\u00da\2\u1221\u1222\7\35\2\2\u1222\u1223\5\u01d8\u00ed\2\u1223"+ + "\u1224\7\u0300\2\2\u1224\u1237\3\2\2\2\u1225\u1226\5\u0208\u0105\2\u1226"+ + "\u1227\7\u0308\2\2\u1227\u1228\5\u020a\u0106\2\u1228\u1237\3\2\2\2\u1229"+ + "\u1237\5\u01b6\u00dc\2\u122a\u122b\5\u01d8\u00ed\2\u122b\u122c\5\u01b2"+ + "\u00da\13\u122c\u1237\3\2\2\2\u122d\u1237\5\u01ca\u00e6\2\u122e\u1237"+ + "\5\u01e2\u00f2\2\u122f\u1230\7\u00d5\2\2\u1230\u1237\5\u01b2\u00da\5\u1231"+ + "\u1237\7\u030c\2\2\u1232\u1233\7\u02ff\2\2\u1233\u1234\5\u015a\u00ae\2"+ + "\u1234\u1235\7\u0300\2\2\u1235\u1237\3\2\2\2\u1236\u11ec\3\2\2\2\u1236"+ + "\u11ee\3\2\2\2\u1236\u11ef\3\2\2\2\u1236\u11f0\3\2\2\2\u1236\u11f1\3\2"+ + "\2\2\u1236\u11f2\3\2\2\2\u1236\u11f3\3\2\2\2\u1236\u11f4\3\2\2\2\u1236"+ + "\u11f5\3\2\2\2\u1236\u11f6\3\2\2\2\u1236\u11f7\3\2\2\2\u1236\u11f8\3\2"+ + "\2\2\u1236\u11f9\3\2\2\2\u1236\u11fa\3\2\2\2\u1236\u1201\3\2\2\2\u1236"+ + "\u120c\3\2\2\2\u1236\u120d\3\2\2\2\u1236\u120e\3\2\2\2\u1236\u120f\3\2"+ + "\2\2\u1236\u1213\3\2\2\2\u1236\u1216\3\2\2\2\u1236\u1218\3\2\2\2\u1236"+ + "\u121a\3\2\2\2\u1236\u121c\3\2\2\2\u1236\u121d\3\2\2\2\u1236\u121e\3\2"+ + "\2\2\u1236\u1225\3\2\2\2\u1236\u1229\3\2\2\2\u1236\u122a\3\2\2\2\u1236"+ + "\u122d\3\2\2\2\u1236\u122e\3\2\2\2\u1236\u122f\3\2\2\2\u1236\u1231\3\2"+ + "\2\2\u1236\u1232\3\2\2\2\u1237\u129b\3\2\2\2\u1238\u1239\f\35\2\2\u1239"+ + "\u123a\t)\2\2\u123a\u129a\5\u01b2\u00da\36\u123b\u123c\f\34\2\2\u123c"+ + "\u123d\t*\2\2\u123d\u129a\5\u01b2\u00da\35\u123e\u123f\f\33\2\2\u123f"+ + "\u1240\t+\2\2\u1240\u129a\5\u01b2\u00da\34\u1241\u1242\f\32\2\2\u1242"+ + "\u1243\t,\2\2\u1243\u129a\5\u01b2\u00da\33\u1244\u1248\f\31\2\2\u1245"+ + "\u1246\7\u016f\2\2\u1246\u1249\7\u0137\2\2\u1247\u1249\7\u0137\2\2\u1248"+ + "\u1245\3\2\2\2\u1248\u1247\3\2\2\2\u1249\u124a\3\2\2\2\u124a\u129a\5\u01b2"+ + "\u00da\32\u124b\u124d\f\30\2\2\u124c\u124e\7\u016f\2\2\u124d\u124c\3\2"+ + "\2\2\u124d\u124e\3\2\2\2\u124e\u124f\3\2\2\2\u124f\u1250\7-\2\2\u1250"+ + "\u1251\5\u01b2\u00da\2\u1251\u1252\7\31\2\2\u1252\u1253\5\u01b2\u00da"+ + "\31\u1253\u129a\3\2\2\2\u1254\u1255\f\27\2\2\u1255\u1256\7\u010b\2\2\u1256"+ + "\u129a\5\u01b2\u00da\30\u1257\u1258\f\26\2\2\u1258\u1259\t-\2\2\u1259"+ + "\u129a\5\u01b2\u00da\27\u125a\u125b\f\24\2\2\u125b\u125d\7\u0123\2\2\u125c"+ + "\u125e\7\u016f\2\2\u125d\u125c\3\2\2\2\u125d\u125e\3\2\2\2\u125e\u125f"+ + "\3\2\2\2\u125f\u1260\7\u00ba\2\2\u1260\u1261\7\u00ee\2\2\u1261\u129a\5"+ + "\u01b2\u00da\25\u1262\u1263\f#\2\2\u1263\u1264\7\u0301\2\2\u1264\u1265"+ + "\5\u01b2\u00da\2\u1265\u1266\7\u0302\2\2\u1266\u129a\3\2\2\2\u1267\u1268"+ + "\f\36\2\2\u1268\u129a\7\u0314\2\2\u1269\u126a\f\25\2\2\u126a\u126f\7\u0123"+ + "\2\2\u126b\u1270\5\u01b4\u00db\2\u126c\u1270\7\u0174\2\2\u126d\u126e\7"+ + "\u016f\2\2\u126e\u1270\7\u0174\2\2\u126f\u126b\3\2\2\2\u126f\u126c\3\2"+ + "\2\2\u126f\u126d\3\2\2\2\u1270\u129a\3\2\2\2\u1271\u127b\f\r\2\2\u1272"+ + "\u1274\7\u0301\2\2\u1273\u1275\5\u01b2\u00da\2\u1274\u1273\3\2\2\2\u1274"+ + "\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278\7\u02fa\2\2\u1277\u1279"+ + "\5\u01b2\u00da\2\u1278\u1277\3\2\2\2\u1278\u1279\3\2\2\2\u1279\u127a\3"+ + "\2\2\2\u127a\u127c\7\u0302\2\2\u127b\u1272\3\2\2\2\u127c\u127d\3\2\2\2"+ + "\u127d\u127b\3\2\2\2\u127d\u127e\3\2\2\2\u127e\u129a\3\2\2\2\u127f\u1282"+ + "\f\f\2\2\u1280\u1281\7\u02fb\2\2\u1281\u1283\5\u01d8\u00ed\2\u1282\u1280"+ + "\3\2\2\2\u1283\u1284\3\2\2\2\u1284\u1282\3\2\2\2\u1284\u1285\3\2\2\2\u1285"+ + "\u129a\3\2\2\2\u1286\u1287\f\n\2\2\u1287\u1288\7\u0123\2\2\u1288\u1289"+ + "\7\u017d\2\2\u1289\u128a\7\u02ff\2\2\u128a\u128b\5\u01d8\u00ed\2\u128b"+ + "\u128c\7\u0300\2\2\u128c\u129a\3\2\2\2\u128d\u128e\f\t\2\2\u128e\u1291"+ + "\7\u0308\2\2\u128f\u1292\5\u0202\u0102\2\u1290\u1292\7\u02fe\2\2\u1291"+ + "\u128f\3\2\2\2\u1291\u1290\3\2\2\2\u1292\u129a\3\2\2\2\u1293\u1294\f\6"+ + "\2\2\u1294\u1295\7#\2\2\u1295\u1296\7\u0244\2\2\u1296\u1297\7\u0290\2"+ + "\2\u1297\u1298\3\2\2\2\u1298\u129a\7\u0309\2\2\u1299\u1238\3\2\2\2\u1299"+ + "\u123b\3\2\2\2\u1299\u123e\3\2\2\2\u1299\u1241\3\2\2\2\u1299\u1244\3\2"+ + "\2\2\u1299\u124b\3\2\2\2\u1299\u1254\3\2\2\2\u1299\u1257\3\2\2\2\u1299"+ + "\u125a\3\2\2\2\u1299\u1262\3\2\2\2\u1299\u1267\3\2\2\2\u1299\u1269\3\2"+ + "\2\2\u1299\u1271\3\2\2\2\u1299\u127f\3\2\2\2\u1299\u1286\3\2\2\2\u1299"+ + "\u128d\3\2\2\2\u1299\u1293\3\2\2\2\u129a\u129d\3\2\2\2\u129b\u1299\3\2"+ + "\2\2\u129b\u129c\3\2\2\2\u129c\u01b3\3\2\2\2\u129d\u129b\3\2\2\2\u129e"+ + "\u129f\b\u00db\1\2\u129f\u12a4\7\u025b\2\2\u12a0\u12a4\7\u00dc\2\2\u12a1"+ + "\u12a2\7\u016f\2\2\u12a2\u12a4\5\u01b4\u00db\5\u12a3\u129e\3\2\2\2\u12a3"+ + "\u12a0\3\2\2\2\u12a3\u12a1\3\2\2\2\u12a4\u12ad\3\2\2\2\u12a5\u12a6\f\4"+ + "\2\2\u12a6\u12a7\7\31\2\2\u12a7\u12ac\5\u01b4\u00db\5\u12a8\u12a9\f\3"+ + "\2\2\u12a9\u12aa\7\u0189\2\2\u12aa\u12ac\5\u01b4\u00db\4\u12ab\u12a5\3"+ + "\2\2\2\u12ab\u12a8\3\2\2\2\u12ac\u12af\3\2\2\2\u12ad\u12ab\3\2\2\2\u12ad"+ + "\u12ae\3\2\2\2\u12ae\u01b5\3\2\2\2\u12af\u12ad\3\2\2\2\u12b0\u12b1\7@"+ + "\2\2\u12b1\u12b7\5\u01b2\u00da\2\u12b2\u12b3\7\u0283\2\2\u12b3\u12b4\5"+ + "\u01b2\u00da\2\u12b4\u12b5\7\u0242\2\2\u12b5\u12b6\5\u01b2\u00da\2\u12b6"+ + "\u12b8\3\2\2\2\u12b7\u12b2\3\2\2\2\u12b8\u12b9\3\2\2\2\u12b9\u12b7\3\2"+ + "\2\2\u12b9\u12ba\3\2\2\2\u12ba\u12bd\3\2\2\2\u12bb\u12bc\7\u00c4\2\2\u12bc"+ + "\u12be\5\u01b2\u00da\2\u12bd\u12bb\3\2\2\2\u12bd\u12be\3\2\2\2\u12be\u12bf"+ + "\3\2\2\2\u12bf\u12c0\7\u00c8\2\2\u12c0\u12d2\3\2\2\2\u12c1\u12c7\7@\2"+ + "\2\u12c2\u12c3\7\u0283\2\2\u12c3\u12c4\5\u01ec\u00f7\2\u12c4\u12c5\7\u0242"+ + "\2\2\u12c5\u12c6\5\u01b2\u00da\2\u12c6\u12c8\3\2\2\2\u12c7\u12c2\3\2\2"+ + "\2\u12c8\u12c9\3\2\2\2\u12c9\u12c7\3\2\2\2\u12c9\u12ca\3\2\2\2\u12ca\u12cd"+ + "\3\2\2\2\u12cb\u12cc\7\u00c4\2\2\u12cc\u12ce\5\u01b2\u00da\2\u12cd\u12cb"+ + "\3\2\2\2\u12cd\u12ce\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf\u12d0\7\u00c8\2"+ + "\2\u12d0\u12d2\3\2\2\2\u12d1\u12b0\3\2\2\2\u12d1\u12c1\3\2\2\2\u12d2\u01b7"+ + "\3\2\2\2\u12d3\u12d4\7\u02ff\2\2\u12d4\u12d9\5\u01b2\u00da\2\u12d5\u12d6"+ + "\7\u02f9\2\2\u12d6\u12d8\5\u01b2\u00da\2\u12d7\u12d5\3\2\2\2\u12d8\u12db"+ + "\3\2\2\2\u12d9\u12d7\3\2\2\2\u12d9\u12da\3\2\2\2\u12da\u12dc\3\2\2\2\u12db"+ + "\u12d9\3\2\2\2\u12dc\u12dd\7\u0300\2\2\u12dd\u01b9\3\2\2\2\u12de\u12e0"+ + "\7\u02ff\2\2\u12df\u12de\3\2\2\2\u12df\u12e0\3\2\2\2\u12e0\u12e1\3\2\2"+ + "\2\u12e1\u12e6\5\u01b8\u00dd\2\u12e2\u12e3\7\u02f9\2\2\u12e3\u12e5\5\u01b8"+ + "\u00dd\2\u12e4\u12e2\3\2\2\2\u12e5\u12e8\3\2\2\2\u12e6\u12e4\3\2\2\2\u12e6"+ + "\u12e7\3\2\2\2\u12e7\u12ea\3\2\2\2\u12e8\u12e6\3\2\2\2\u12e9\u12eb\7\u0300"+ + "\2\2\u12ea\u12e9\3\2\2\2\u12ea\u12eb\3\2\2\2\u12eb\u01bb\3\2\2\2\u12ec"+ + "\u12ee\t.\2\2\u12ed\u12ec\3\2\2\2\u12ed\u12ee\3\2\2\2\u12ee\u12f0\3\2"+ + "\2\2\u12ef\u12f1\5\u0202\u0102\2\u12f0\u12ef\3\2\2\2\u12f0\u12f1\3\2\2"+ + "\2\u12f1\u12f2\3\2\2\2\u12f2\u12f4\5\u01d8\u00ed\2\u12f3\u12ed\3\2\2\2"+ + "\u12f3\u12f4\3\2\2\2\u12f4\u01bd\3\2\2\2\u12f5\u12fa\5\u01bc\u00df\2\u12f6"+ + "\u12f7\7\u02f9\2\2\u12f7\u12f9\5\u01bc\u00df\2\u12f8\u12f6\3\2\2\2\u12f9"+ + "\u12fc\3\2\2\2\u12fa\u12f8\3\2\2\2\u12fa\u12fb\3\2\2\2\u12fb\u01bf\3\2"+ + "\2\2\u12fc\u12fa\3\2\2\2\u12fd\u1302\5\u0202\u0102\2\u12fe\u12ff\7\u02ff"+ + "\2\2\u12ff\u1300\5\u01be\u00e0\2\u1300\u1301\7\u0300\2\2\u1301\u1303\3"+ + "\2\2\2\u1302\u12fe\3\2\2\2\u1302\u1303\3\2\2\2\u1303\u01c1\3\2\2\2\u1304"+ + "\u1309\5\u01c0\u00e1\2\u1305\u1306\7\u02f9\2\2\u1306\u1308\5\u01c0\u00e1"+ + "\2\u1307\u1305\3\2\2\2\u1308\u130b\3\2\2\2\u1309\u1307\3\2\2\2\u1309\u130a"+ + "\3\2\2\2\u130a\u01c3\3\2\2\2\u130b\u1309\3\2\2\2\u130c\u139d\7\u02d0\2"+ + "\2\u130d\u139d\7\u02e9\2\2\u130e\u139d\7.\2\2\u130f\u139d\7\u02d1\2\2"+ + "\u1310\u1314\7\60\2\2\u1311\u1312\7\u02ff\2\2\u1312\u1313\7\u0306\2\2"+ + "\u1313\u1315\7\u0300\2\2\u1314\u1311\3\2\2\2\u1314\u1315\3\2\2\2\u1315"+ + "\u139d\3\2\2\2\u1316\u131a\7\u02d2\2\2\u1317\u1318\7\u02ff\2\2\u1318\u1319"+ + "\7\u0306\2\2\u1319\u131b\7\u0300\2\2\u131a\u1317\3\2\2\2\u131a\u131b\3"+ + "\2\2\2\u131b\u139d\3\2\2\2\u131c\u139d\7\u02d3\2\2\u131d\u139d\7\64\2"+ + "\2\u131e\u139d\7\u02d4\2\2\u131f\u139d\7\u02d5\2\2\u1320\u1324\7G\2\2"+ + "\u1321\u1322\7\u02ff\2\2\u1322\u1323\7\u0306\2\2\u1323\u1325\7\u0300\2"+ + "\2\u1324\u1321\3\2\2\2\u1324\u1325\3\2\2\2\u1325\u139d\3\2\2\2\u1326\u132a"+ + "\7I\2\2\u1327\u1328\7\u02ff\2\2\u1328\u1329\7\u0306\2\2\u1329\u132b\7"+ + "\u0300\2\2\u132a\u1327\3\2\2\2\u132a\u132b\3\2\2\2\u132b\u139d\3\2\2\2"+ + "\u132c\u1330\7\u02d6\2\2\u132d\u132e\7\u02ff\2\2\u132e\u132f\7\u0306\2"+ + "\2\u132f\u1331\7\u0300\2\2\u1330\u132d\3\2\2\2\u1330\u1331\3\2\2\2\u1331"+ + "\u139d\3\2\2\2\u1332\u139d\7\u02d7\2\2\u1333\u139d\7\u02d8\2\2\u1334\u139d"+ + "\7\u0095\2\2\u1335\u133b\7\u009b\2\2\u1336\u1337\7\u02ff\2\2\u1337\u1338"+ + "\7\u0306\2\2\u1338\u1339\7\u02f9\2\2\u1339\u133a\7\u0306\2\2\u133a\u133c"+ + "\7\u0300\2\2\u133b\u1336\3\2\2\2\u133b\u133c\3\2\2\2\u133c\u139d\3\2\2"+ + "\2\u133d\u133e\7\u00bd\2\2\u133e\u139d\7\u01b0\2\2\u133f\u139d\7\u02d9"+ + "\2\2\u1340\u139d\7\u02da\2\2\u1341\u139d\7\u02db\2\2\u1342\u139d\7\u011c"+ + "\2\2\u1343\u139d\7\u02dd\2\2\u1344\u139d\7\u02dc\2\2\u1345\u139d\7\u02de"+ + "\2\2\u1346\u139d\7\u011d\2\2\u1347\u1349\7\u0120\2\2\u1348\u134a\7\u00de"+ + "\2\2\u1349\u1348\3\2\2\2\u1349\u134a\3\2\2\2\u134a\u134c\3\2\2\2\u134b"+ + "\u134d\7\u0306\2\2\u134c\u134b\3\2\2\2\u134c\u134d\3\2\2\2\u134d\u139d"+ + "\3\2\2\2\u134e\u139d\7\u02df\2\2\u134f\u139d\7\u02e0\2\2\u1350\u139d\7"+ + "\u02e1\2\2\u1351\u139d\7\u02e2\2\2\u1352\u139d\7\u02e3\2\2\u1353\u139d"+ + "\7\u02e4\2\2\u1354\u139d\7\u02e5\2\2\u1355\u135b\7\u0179\2\2\u1356\u1357"+ + "\7\u02ff\2\2\u1357\u1358\7\u0306\2\2\u1358\u1359\7\u02f9\2\2\u1359\u135a"+ + "\7\u0306\2\2\u135a\u135c\7\u0300\2\2\u135b\u1356\3\2\2\2\u135b\u135c\3"+ + "\2\2\2\u135c\u139d\3\2\2\2\u135d\u139d\7\u01a4\2\2\u135e\u139d\7\u02e6"+ + "\2\2\u135f\u139d\7\u02e7\2\2\u1360\u139d\7\u02e8\2\2\u1361\u139d\7\u01c2"+ + "\2\2\u1362\u139d\7\u02ea\2\2\u1363\u139d\7\u02eb\2\2\u1364\u139d\7\u02ec"+ + "\2\2\u1365\u139d\7\u02ed\2\2\u1366\u139d\7\u0212\2\2\u1367\u139d\7\u02ee"+ + "\2\2\u1368\u139d\7\u02f0\2\2\u1369\u136d\7\u0244\2\2\u136a\u136b\7\u02ff"+ + "\2\2\u136b\u136c\7\u0306\2\2\u136c\u136e\7\u0300\2\2\u136d\u136a\3\2\2"+ + "\2\u136d\u136e\3\2\2\2\u136e\u1372\3\2\2\2\u136f\u1370\t/\2\2\u1370\u1371"+ + "\7\u0244\2\2\u1371\u1373\7\u0290\2\2\u1372\u136f\3\2\2\2\u1372\u1373\3"+ + "\2\2\2\u1373\u139d\3\2\2\2\u1374\u1378\7\u0245\2\2\u1375\u1376\7\u02ff"+ + "\2\2\u1376\u1377\7\u0306\2\2\u1377\u1379\7\u0300\2\2\u1378\u1375\3\2\2"+ + "\2\u1378\u1379\3\2\2\2\u1379\u137d\3\2\2\2\u137a\u137b\t/\2\2\u137b\u137c"+ + "\7\u0244\2\2\u137c\u137e\7\u0290\2\2\u137d\u137a\3\2\2\2\u137d\u137e\3"+ + "\2\2\2\u137e\u139d\3\2\2\2\u137f\u1383\7\u02f2\2\2\u1380\u1381\7\u02ff"+ + "\2\2\u1381\u1382\7\u0306\2\2\u1382\u1384\7\u0300\2\2\u1383\u1380\3\2\2"+ + "\2\u1383\u1384\3\2\2\2\u1384\u139d\3\2\2\2\u1385\u1389\7\u02f1\2\2\u1386"+ + "\u1387\7\u02ff\2\2\u1387\u1388\7\u0306\2\2\u1388\u138a\7\u0300\2\2\u1389"+ + "\u1386\3\2\2\2\u1389\u138a\3\2\2\2\u138a\u139d\3\2\2\2\u138b\u139d\7\u02f3"+ + "\2\2\u138c\u139d\7\u02f4\2\2\u138d\u139d\7\u02f5\2\2\u138e\u139d\7\u02f6"+ + "\2\2\u138f\u1393\7\u02f7\2\2\u1390\u1391\7\u02ff\2\2\u1391\u1392\7\u0306"+ + "\2\2\u1392\u1394\7\u0300\2\2\u1393\u1390\3\2\2\2\u1393\u1394\3\2\2\2\u1394"+ + "\u139d\3\2\2\2\u1395\u1399\7\u027c\2\2\u1396\u1397\7\u02ff\2\2\u1397\u1398"+ + "\7\u0306\2\2\u1398\u139a\7\u0300\2\2\u1399\u1396\3\2\2\2\u1399\u139a\3"+ + "\2\2\2\u139a\u139d\3\2\2\2\u139b\u139d\7\u02f8\2\2\u139c\u130c\3\2\2\2"+ + "\u139c\u130d\3\2\2\2\u139c\u130e\3\2\2\2\u139c\u130f\3\2\2\2\u139c\u1310"+ + "\3\2\2\2\u139c\u1316\3\2\2\2\u139c\u131c\3\2\2\2\u139c\u131d\3\2\2\2\u139c"+ + "\u131e\3\2\2\2\u139c\u131f\3\2\2\2\u139c\u1320\3\2\2\2\u139c\u1326\3\2"+ + "\2\2\u139c\u132c\3\2\2\2\u139c\u1332\3\2\2\2\u139c\u1333\3\2\2\2\u139c"+ + "\u1334\3\2\2\2\u139c\u1335\3\2\2\2\u139c\u133d\3\2\2\2\u139c\u133f\3\2"+ + "\2\2\u139c\u1340\3\2\2\2\u139c\u1341\3\2\2\2\u139c\u1342\3\2\2\2\u139c"+ + "\u1343\3\2\2\2\u139c\u1344\3\2\2\2\u139c\u1345\3\2\2\2\u139c\u1346\3\2"+ + "\2\2\u139c\u1347\3\2\2\2\u139c\u134e\3\2\2\2\u139c\u134f\3\2\2\2\u139c"+ + "\u1350\3\2\2\2\u139c\u1351\3\2\2\2\u139c\u1352\3\2\2\2\u139c\u1353\3\2"+ + "\2\2\u139c\u1354\3\2\2\2\u139c\u1355\3\2\2\2\u139c\u135d\3\2\2\2\u139c"+ + "\u135e\3\2\2\2\u139c\u135f\3\2\2\2\u139c\u1360\3\2\2\2\u139c\u1361\3\2"+ + "\2\2\u139c\u1362\3\2\2\2\u139c\u1363\3\2\2\2\u139c\u1364\3\2\2\2\u139c"+ + "\u1365\3\2\2\2\u139c\u1366\3\2\2\2\u139c\u1367\3\2\2\2\u139c\u1368\3\2"+ + "\2\2\u139c\u1369\3\2\2\2\u139c\u1374\3\2\2\2\u139c\u137f\3\2\2\2\u139c"+ + "\u1385\3\2\2\2\u139c\u138b\3\2\2\2\u139c\u138c\3\2\2\2\u139c\u138d\3\2"+ + "\2\2\u139c\u138e\3\2\2\2\u139c\u138f\3\2\2\2\u139c\u1395\3\2\2\2\u139c"+ + "\u139b\3\2\2\2\u139d\u01c5\3\2\2\2\u139e\u139f\t\60\2\2\u139f\u01c7\3"+ + "\2\2\2\u13a0\u13a5\3\2\2\2\u13a1\u13a2\7\u0123\2\2\u13a2\u13a5\7\u017d"+ + "\2\2\u13a3\u13a5\7\22\2\2\u13a4\u13a0\3\2\2\2\u13a4\u13a1\3\2\2\2\u13a4"+ + "\u13a3\3\2\2\2\u13a5\u01c9\3\2\2\2\u13a6\u13a7\5\u0202\u0102\2\u13a7\u13a9"+ + "\7\u02ff\2\2\u13a8\u13aa\t!\2\2\u13a9\u13a8\3\2\2\2\u13a9\u13aa\3\2\2"+ + "\2\u13aa\u13ab\3\2\2\2\u13ab\u13b0\5\u01b2\u00da\2\u13ac\u13ad\7\u02f9"+ + "\2\2\u13ad\u13af\5\u01b2\u00da\2\u13ae\u13ac\3\2\2\2\u13af\u13b2\3\2\2"+ + "\2\u13b0\u13ae\3\2\2\2\u13b0\u13b1\3\2\2\2\u13b1\u13b4\3\2\2\2\u13b2\u13b0"+ + "\3\2\2\2\u13b3\u13b5\5\u01a0\u00d1\2\u13b4\u13b3\3\2\2\2\u13b4\u13b5\3"+ + "\2\2\2\u13b5\u13b6\3\2\2\2\u13b6\u13bd\7\u0300\2\2\u13b7\u13b8\7\u00df"+ + "\2\2\u13b8\u13b9\7\u02ff\2\2\u13b9\u13ba\7\u0285\2\2\u13ba\u13bb\5\u0184"+ + "\u00c3\2\u13bb\u13bc\7\u0300\2\2\u13bc\u13be\3\2\2\2\u13bd\u13b7\3\2\2"+ + "\2\u13bd\u13be\3\2\2\2\u13be\u13e6\3\2\2\2\u13bf\u13c0\5\u0202\u0102\2"+ + "\u13c0\u13c1\7\u02ff\2\2\u13c1\u13c2\7\u02fe\2\2\u13c2\u13c9\7\u0300\2"+ + "\2\u13c3\u13c4\7\u00df\2\2\u13c4\u13c5\7\u02ff\2\2\u13c5\u13c6\7\u0285"+ + "\2\2\u13c6\u13c7\5\u0184\u00c3\2\u13c7\u13c8\7\u0300\2\2\u13c8\u13ca\3"+ + "\2\2\2\u13c9\u13c3\3\2\2\2\u13c9\u13ca\3\2\2\2\u13ca\u13e6\3\2\2\2\u13cb"+ + "\u13cc\5\u0202\u0102\2\u13cc\u13d5\7\u02ff\2\2\u13cd\u13d2\5\u01b2\u00da"+ + "\2\u13ce\u13cf\7\u02f9\2\2\u13cf\u13d1\5\u01b2\u00da\2\u13d0\u13ce\3\2"+ + "\2\2\u13d1\u13d4\3\2\2\2\u13d2\u13d0\3\2\2\2\u13d2\u13d3\3\2\2\2\u13d3"+ + "\u13d6\3\2\2\2\u13d4\u13d2\3\2\2\2\u13d5\u13cd\3\2\2\2\u13d5\u13d6\3\2"+ + "\2\2\u13d6\u13d7\3\2\2\2\u13d7\u13d8\7\u0300\2\2\u13d8\u13d9\7\u0289\2"+ + "\2\u13d9\u13da\7\u00fc\2\2\u13da\u13db\7\u02ff\2\2\u13db\u13dc\5\u01a0"+ + "\u00d1\2\u13dc\u13e3\7\u0300\2\2\u13dd\u13de\7\u00df\2\2\u13de\u13df\7"+ + "\u02ff\2\2\u13df\u13e0\7\u0285\2\2\u13e0\u13e1\5\u0184\u00c3\2\u13e1\u13e2"+ + "\7\u0300\2\2\u13e2\u13e4\3\2\2\2\u13e3\u13dd\3\2\2\2\u13e3\u13e4\3\2\2"+ + "\2\u13e4\u13e6\3\2\2\2\u13e5\u13a6\3\2\2\2\u13e5\u13bf\3\2\2\2\u13e5\u13cb"+ + "\3\2\2\2\u13e6\u01cb\3\2\2\2\u13e7\u13ea\7\u0309\2\2\u13e8\u13ea\5\u0202"+ + "\u0102\2\u13e9\u13e7\3\2\2\2\u13e9\u13e8\3\2\2\2\u13ea\u01cd\3\2\2\2\u13eb"+ + "\u13f0\5\u01cc\u00e7\2\u13ec\u13ed\7\u02f9\2\2\u13ed\u13ef\5\u01cc\u00e7"+ + "\2\u13ee\u13ec\3\2\2\2\u13ef\u13f2\3\2\2\2\u13f0\u13ee\3\2\2\2\u13f0\u13f1"+ + "\3\2\2\2\u13f1\u01cf\3\2\2\2\u13f2\u13f0\3\2\2\2\u13f3\u13f8\5\u0202\u0102"+ + "\2\u13f4\u13f5\7\u02f9\2\2\u13f5\u13f7\5\u0202\u0102\2\u13f6\u13f4\3\2"+ + "\2\2\u13f7\u13fa\3\2\2\2\u13f8\u13f6\3\2\2\2\u13f8\u13f9\3\2\2\2\u13f9"+ + "\u01d1\3\2\2\2\u13fa\u13f8\3\2\2\2\u13fb\u13fe\5\u0202\u0102\2\u13fc\u13fd"+ + "\7\u0318\2\2\u13fd\u13ff\5\u01fe\u0100\2\u13fe\u13fc\3\2\2\2\u13fe\u13ff"+ + "\3\2\2\2\u13ff\u01d3\3\2\2\2\u1400\u1405\5\u01d2\u00ea\2\u1401\u1402\7"+ + "\u02f9\2\2\u1402\u1404\5\u01d2\u00ea\2\u1403\u1401\3\2\2\2\u1404\u1407"+ + "\3\2\2\2\u1405\u1403\3\2\2\2\u1405\u1406\3\2\2\2\u1406\u01d5\3\2\2\2\u1407"+ + "\u1405\3\2\2\2\u1408\u1409\5\u0202\u0102\2\u1409\u01d7\3\2\2\2\u140a\u140d"+ + "\5\u01c4\u00e3\2\u140b\u140d\5\u0202\u0102\2\u140c\u140a\3\2\2\2\u140c"+ + "\u140b\3\2\2\2\u140d\u1415\3\2\2\2\u140e\u1410\7\u0301\2\2\u140f\u1411"+ + "\7\u0306\2\2\u1410\u140f\3\2\2\2\u1410\u1411\3\2\2\2\u1411\u1412\3\2\2"+ + "\2\u1412\u1414\7\u0302\2\2\u1413\u140e\3\2\2\2\u1414\u1417\3\2\2\2\u1415"+ + "\u1413\3\2\2\2\u1415\u1416\3\2\2\2\u1416\u01d9\3\2\2\2\u1417\u1415\3\2"+ + "\2\2\u1418\u141d\5\u01d8\u00ed\2\u1419\u141a\7\u02f9\2\2\u141a\u141c\5"+ + "\u01d8\u00ed\2\u141b\u1419\3\2\2\2\u141c\u141f\3\2\2\2\u141d\u141b\3\2"+ + "\2\2\u141d\u141e\3\2\2\2\u141e\u01db\3\2\2\2\u141f\u141d\3\2\2\2\u1420"+ + "\u1423\t\61\2\2\u1421\u1423\5\u0202\u0102\2\u1422\u1420\3\2\2\2\u1422"+ + "\u1421\3\2\2\2\u1423\u01dd\3\2\2\2\u1424\u1425\5\u0202\u0102\2\u1425\u01df"+ + "\3\2\2\2\u1426\u1427\5\u01de\u00f0\2\u1427\u1428\7\u02ff\2\2\u1428\u1429"+ + "\7\u027e\2\2\u1429\u142a\5\u01b2\u00da\2\u142a\u142b\7\u0300\2\2\u142b"+ + "\u144b\3\2\2\2\u142c\u142d\5\u01de\u00f0\2\u142d\u143b\7\u02ff\2\2\u142e"+ + "\u1433\5\u01b2\u00da\2\u142f\u1430\7\u02f9\2\2\u1430\u1432\5\u01b2\u00da"+ + "\2\u1431\u142f\3\2\2\2\u1432\u1435\3\2\2\2\u1433\u1431\3\2\2\2\u1433\u1434"+ + "\3\2\2\2\u1434\u1439\3\2\2\2\u1435\u1433\3\2\2\2\u1436\u1437\7\u02f9\2"+ + "\2\u1437\u1438\7\u027e\2\2\u1438\u143a\5\u01b2\u00da\2\u1439\u1436\3\2"+ + "\2\2\u1439\u143a\3\2\2\2\u143a\u143c\3\2\2\2\u143b\u142e\3\2\2\2\u143b"+ + "\u143c\3\2\2\2\u143c\u143d\3\2\2\2\u143d\u143e\7\u0300\2\2\u143e\u144b"+ + "\3\2\2\2\u143f\u1440\5\u01de\u00f0\2\u1440\u1441\7\u02ff\2\2\u1441\u1442"+ + "\5\u0204\u0103\2\u1442\u1443\7\u00ee\2\2\u1443\u1446\5\u01b2\u00da\2\u1444"+ + "\u1445\7\u00e5\2\2\u1445\u1447\5\u01b2\u00da\2\u1446\u1444\3\2\2\2\u1446"+ + "\u1447\3\2\2\2\u1447\u1448\3\2\2\2\u1448\u1449\7\u0300\2\2\u1449\u144b"+ + "\3\2\2\2\u144a\u1426\3\2\2\2\u144a\u142c\3\2\2\2\u144a\u143f\3\2\2\2\u144b"+ + "\u01e1\3\2\2\2\u144c\u144d\7\34\2\2\u144d\u1456\7\u0301\2\2\u144e\u1453"+ + "\5\u01b2\u00da\2\u144f\u1450\7\u02f9\2\2\u1450\u1452\5\u01b2\u00da\2\u1451"+ + "\u144f\3\2\2\2\u1452\u1455\3\2\2\2\u1453\u1451\3\2\2\2\u1453\u1454\3\2"+ + "\2\2\u1454\u1457\3\2\2\2\u1455\u1453\3\2\2\2\u1456\u144e\3\2\2\2\u1456"+ + "\u1457\3\2\2\2\u1457\u1458\3\2\2\2\u1458\u1459\7\u0302\2\2\u1459\u01e3"+ + "\3\2\2\2\u145a\u145c\b\u00f3\1\2\u145b\u145d\7\u0183\2\2\u145c\u145b\3"+ + "\2\2\2\u145c\u145d\3\2\2\2\u145d\u145e\3\2\2\2\u145e\u1460\5\u01d6\u00ec"+ + "\2\u145f\u1461\7\u02fe\2\2\u1460\u145f\3\2\2\2\u1460\u1461\3\2\2\2\u1461"+ + "\u1463\3\2\2\2\u1462\u1464\5\u01e6\u00f4\2\u1463\u1462\3\2\2\2\u1463\u1464"+ + "\3\2\2\2\u1464\u1478\3\2\2\2\u1465\u1466\7\u023b\2\2\u1466\u1467\5\u0204"+ + "\u0103\2\u1467\u1468\7\u02ff\2\2\u1468\u146d\5\u01b2\u00da\2\u1469\u146a"+ + "\7\u02f9\2\2\u146a\u146c\5\u01b2\u00da\2\u146b\u1469\3\2\2\2\u146c\u146f"+ + "\3\2\2\2\u146d\u146b\3\2\2\2\u146d\u146e\3\2\2\2\u146e\u1470\3\2\2\2\u146f"+ + "\u146d\3\2\2\2\u1470\u1476\7\u0300\2\2\u1471\u1472\7\u01d7\2\2\u1472\u1473"+ + "\7\u02ff\2\2\u1473\u1474\5\u0204\u0103\2\u1474\u1475\7\u0300\2\2\u1475"+ + "\u1477\3\2\2\2\u1476\u1471\3\2\2\2\u1476\u1477\3\2\2\2\u1477\u1479\3\2"+ + "\2\2\u1478\u1465\3\2\2\2\u1478\u1479\3\2\2\2\u1479\u14c5\3\2\2\2\u147a"+ + "\u147c\7\u0130\2\2\u147b\u147a\3\2\2\2\u147b\u147c\3\2\2\2\u147c\u147d"+ + "\3\2\2\2\u147d\u147e\7\u02ff\2\2\u147e\u147f\5\4\3\2\u147f\u1481\7\u0300"+ + "\2\2\u1480\u1482\7\35\2\2\u1481\u1480\3\2\2\2\u1481\u1482\3\2\2\2\u1482"+ + "\u1483\3\2\2\2\u1483\u148f\5\u020c\u0107\2\u1484\u1485\7\u02ff\2\2\u1485"+ + "\u148a\5\u020e\u0108\2\u1486\u1487\7\u02f9\2\2\u1487\u1489\5\u020e\u0108"+ + "\2\u1488\u1486\3\2\2\2\u1489\u148c\3\2\2\2\u148a\u1488\3\2\2\2\u148a\u148b"+ + "\3\2\2\2\u148b\u148d\3\2\2\2\u148c\u148a\3\2\2\2\u148d\u148e\7\u0300\2"+ + "\2\u148e\u1490\3\2\2\2\u148f\u1484\3\2\2\2\u148f\u1490\3\2\2\2\u1490\u14c5"+ + "\3\2\2\2\u1491\u1493\7\u0130\2\2\u1492\u1491\3\2\2\2\u1492\u1493\3\2\2"+ + "\2\u1493\u1494\3\2\2\2\u1494\u1497\5\u01e0\u00f1\2\u1495\u1496\7\u0288"+ + "\2\2\u1496\u1498\7\u018c\2\2\u1497\u1495\3\2\2\2\u1497\u1498\3\2\2\2\u1498"+ + "\u149a\3\2\2\2\u1499\u149b\5\u01e6\u00f4\2\u149a\u1499\3\2\2\2\u149a\u149b"+ + "\3\2\2\2\u149b\u14c5\3\2\2\2\u149c\u149e\7\u0130\2\2\u149d\u149c\3\2\2"+ + "\2\u149d\u149e\3\2\2\2\u149e\u149f\3\2\2\2\u149f\u14a0\5\u01e0\u00f1\2"+ + "\u14a0\u14a1\7\35\2\2\u14a1\u14a2\7\u02ff\2\2\u14a2\u14a7\5\u0210\u0109"+ + "\2\u14a3\u14a4\7\u02f9\2\2\u14a4\u14a6\5\u0210\u0109\2\u14a5\u14a3\3\2"+ + "\2\2\u14a6\u14a9\3\2\2\2\u14a7\u14a5\3\2\2\2\u14a7\u14a8\3\2\2\2\u14a8"+ + "\u14aa\3\2\2\2\u14a9\u14a7\3\2\2\2\u14aa\u14ab\7\u0300\2\2\u14ab\u14c5"+ + "\3\2\2\2\u14ac\u14ae\7\u0130\2\2\u14ad\u14ac\3\2\2\2\u14ad\u14ae\3\2\2"+ + "\2\u14ae\u14af\3\2\2\2\u14af\u14b0\7\u01f1\2\2\u14b0\u14b1\7\u00ee\2\2"+ + "\u14b1\u14b2\7\u02ff\2\2\u14b2\u14b3\5\u01e0\u00f1\2\u14b3\u14c0\7\u0300"+ + "\2\2\u14b4\u14b5\7\35\2\2\u14b5\u14b6\7\u02ff\2\2\u14b6\u14bb\5\u0210"+ + "\u0109\2\u14b7\u14b8\7\u02f9\2\2\u14b8\u14ba\5\u0210\u0109\2\u14b9\u14b7"+ + "\3\2\2\2\u14ba\u14bd\3\2\2\2\u14bb\u14b9\3\2\2\2\u14bb\u14bc\3\2\2\2\u14bc"+ + "\u14be\3\2\2\2\u14bd\u14bb\3\2\2\2\u14be\u14bf\7\u0300\2\2\u14bf\u14c1"+ + "\3\2\2\2\u14c0\u14b4\3\2\2\2\u14c0\u14c1\3\2\2\2\u14c1\u14c2\3\2\2\2\u14c2"+ + "\u14c3\7\u0300\2\2\u14c3\u14c5\3\2\2\2\u14c4\u145a\3\2\2\2\u14c4\u147b"+ + "\3\2\2\2\u14c4\u1492\3\2\2\2\u14c4\u149d\3\2\2\2\u14c4\u14ad\3\2\2\2\u14c5"+ + "\u14d7\3\2\2\2\u14c6\u14c8\f\3\2\2\u14c7\u14c9\7\u0163\2\2\u14c8\u14c7"+ + "\3\2\2\2\u14c8\u14c9\3\2\2\2\u14c9\u14ca\3\2\2\2\u14ca\u14cc\5\u01e8\u00f5"+ + "\2\u14cb\u14cd\7\u02ff\2\2\u14cc\u14cb\3\2\2\2\u14cc\u14cd\3\2\2\2\u14cd"+ + "\u14ce\3\2\2\2\u14ce\u14d0\5\u01e4\u00f3\2\u14cf\u14d1\5\u01ea\u00f6\2"+ + "\u14d0\u14cf\3\2\2\2\u14d0\u14d1\3\2\2\2\u14d1\u14d3\3\2\2\2\u14d2\u14d4"+ + "\7\u0300\2\2\u14d3\u14d2\3\2\2\2\u14d3\u14d4\3\2\2\2\u14d4\u14d6\3\2\2"+ + "\2\u14d5\u14c6\3\2\2\2\u14d6\u14d9\3\2\2\2\u14d7\u14d5\3\2\2\2\u14d7\u14d8"+ + "\3\2\2\2\u14d8\u01e5\3\2\2\2\u14d9\u14d7\3\2\2\2\u14da\u14dc\7\35\2\2"+ + "\u14db\u14da\3\2\2\2\u14db\u14dc\3\2\2\2\u14dc\u14dd\3\2\2\2\u14dd\u14e6"+ + "\5\u020c\u0107\2\u14de\u14e3\5\u020e\u0108\2\u14df\u14e0\7\u02f9\2\2\u14e0"+ + "\u14e2\5\u020e\u0108\2\u14e1\u14df\3\2\2\2\u14e2\u14e5\3\2\2\2\u14e3\u14e1"+ + "\3\2\2\2\u14e3\u14e4\3\2\2\2\u14e4\u14e7\3\2\2\2\u14e5\u14e3\3\2\2\2\u14e6"+ + "\u14de\3\2\2\2\u14e6\u14e7\3\2\2\2\u14e7\u14f1\3\2\2\2\u14e8\u14ea\7\35"+ + "\2\2\u14e9\u14e8\3\2\2\2\u14e9\u14ea\3\2\2\2\u14ea\u14eb\3\2\2\2\u14eb"+ + "\u14ec\5\u020c\u0107\2\u14ec\u14ed\7\u02ff\2\2\u14ed\u14ee\5\u01ce\u00e8"+ + "\2\u14ee\u14ef\7\u0300\2\2\u14ef\u14f1\3\2\2\2\u14f0\u14db\3\2\2\2\u14f0"+ + "\u14e9\3\2\2\2\u14f1\u01e7\3\2\2\2\u14f2\u14f4\7\u0114\2\2\u14f3\u14f2"+ + "\3\2\2\2\u14f3\u14f4\3\2\2\2\u14f4\u14f5\3\2\2\2\u14f5\u1508\7\u0126\2"+ + "\2\u14f6\u14f8\7\u0133\2\2\u14f7\u14f9\7\u018f\2\2\u14f8\u14f7\3\2\2\2"+ + "\u14f8\u14f9\3\2\2\2\u14f9\u14fa\3\2\2\2\u14fa\u1508\7\u0126\2\2\u14fb"+ + "\u14fd\7\u01e6\2\2\u14fc\u14fe\7\u018f\2\2\u14fd\u14fc\3\2\2\2\u14fd\u14fe"+ + "\3\2\2\2\u14fe\u14ff\3\2\2\2\u14ff\u1508\7\u0126\2\2\u1500\u1502\7\u00ef"+ + "\2\2\u1501\u1503\7\u018f\2\2\u1502\u1501\3\2\2\2\u1502\u1503\3\2\2\2\u1503"+ + "\u1504\3\2\2\2\u1504\u1508\7\u0126\2\2\u1505\u1506\7\u0083\2\2\u1506\u1508"+ + "\7\u0126\2\2\u1507\u14f3\3\2\2\2\u1507\u14f6\3\2\2\2\u1507\u14fb\3\2\2"+ + "\2\u1507\u1500\3\2\2\2\u1507\u1505\3\2\2\2\u1508\u01e9\3\2\2\2\u1509\u150a"+ + "\7\u0182\2\2\u150a\u1518\5\u01ec\u00f7\2\u150b\u150c\7\u0273\2\2\u150c"+ + "\u150d\7\u02ff\2\2\u150d\u1512\5\u020a\u0106\2\u150e\u150f\7\u02f9\2\2"+ + "\u150f\u1511\5\u020a\u0106\2\u1510\u150e\3\2\2\2\u1511\u1514\3\2\2\2\u1512"+ + "\u1510\3\2\2\2\u1512\u1513\3\2\2\2\u1513\u1515\3\2\2\2\u1514\u1512\3\2"+ + "\2\2\u1515\u1516\7\u0300\2\2\u1516\u1518\3\2\2\2\u1517\u1509\3\2\2\2\u1517"+ + "\u150b\3\2\2\2\u1518\u01eb\3\2\2\2\u1519\u151a\b\u00f7\1\2\u151a\u1526"+ + "\5\u01b2\u00da\2\u151b\u151c\5\u01b2\u00da\2\u151c\u151d\5\u01c8\u00e5"+ + "\2\u151d\u151e\5\u01b2\u00da\2\u151e\u1526\3\2\2\2\u151f\u1520\7\u02ff"+ + "\2\2\u1520\u1521\5\u01ec\u00f7\2\u1521\u1522\7\u0300\2\2\u1522\u1526\3"+ + "\2\2\2\u1523\u1524\7\u016f\2\2\u1524\u1526\5\u01ec\u00f7\3\u1525\u1519"+ + "\3\2\2\2\u1525\u151b\3\2\2\2\u1525\u151f\3\2\2\2\u1525\u1523\3\2\2\2\u1526"+ + "\u152f\3\2\2\2\u1527\u1528\f\5\2\2\u1528\u1529\7\31\2\2\u1529\u152e\5"+ + "\u01ec\u00f7\6\u152a\u152b\f\4\2\2\u152b\u152c\7\u0189\2\2\u152c\u152e"+ + "\5\u01ec\u00f7\5\u152d\u1527\3\2\2\2\u152d\u152a\3\2\2\2\u152e\u1531\3"+ + "\2\2\2\u152f\u152d\3\2\2\2\u152f\u1530\3\2\2\2\u1530\u01ed\3\2\2\2\u1531"+ + "\u152f\3\2\2\2\u1532\u154d\7\u02fe\2\2\u1533\u1535\t\b\2\2\u1534\u1533"+ + "\3\2\2\2\u1534\u1535\3\2\2\2\u1535\u1537\3\2\2\2\u1536\u1538\5\u0202\u0102"+ + "\2\u1537\u1536\3\2\2\2\u1537\u1538\3\2\2\2\u1538\u1539\3\2\2\2\u1539\u154d"+ + "\5\u01da\u00ee\2\u153a\u153c\t\b\2\2\u153b\u153a\3\2\2\2\u153b\u153c\3"+ + "\2\2\2\u153c\u153e\3\2\2\2\u153d\u153f\5\u0202\u0102\2\u153e\u153d\3\2"+ + "\2\2\u153e\u153f\3\2\2\2\u153f\u1540\3\2\2\2\u1540\u1541\5\u01da\u00ee"+ + "\2\u1541\u1542\3\2\2\2\u1542\u1543\7\u018a\2\2\u1543\u1545\78\2\2\u1544"+ + "\u1546\t\b\2\2\u1545\u1544\3\2\2\2\u1545\u1546\3\2\2\2\u1546\u1548\3\2"+ + "\2\2\u1547\u1549\5\u0202\u0102\2\u1548\u1547\3\2\2\2\u1548\u1549\3\2\2"+ + "\2\u1549\u154a\3\2\2\2\u154a\u154b\5\u01da\u00ee\2\u154b\u154d\3\2\2\2"+ + "\u154c\u1532\3\2\2\2\u154c\u1534\3\2\2\2\u154c\u153b\3\2\2\2\u154d\u01ef"+ + "\3\2\2\2\u154e\u154f\7\u016f\2\2\u154f\u1550\7\u0174\2\2\u1550\u01f1\3"+ + "\2\2\2\u1551\u1553\5\u01f0\u00f9\2\u1552\u1551\3\2\2\2\u1553\u1554\3\2"+ + "\2\2\u1554\u1552\3\2\2\2\u1554\u1555\3\2\2\2\u1555\u01f3\3\2\2\2\u1556"+ + "\u1557\7\u0288\2\2\u1557\u1558\7\u02ff\2\2\u1558\u1559\5\u01d4\u00eb\2"+ + "\u1559\u155a\7\u0300\2\2\u155a\u155c\3\2\2\2\u155b\u1556\3\2\2\2\u155b"+ + "\u155c\3\2\2\2\u155c\u1561\3\2\2\2\u155d\u155e\7\u0273\2\2\u155e\u155f"+ + "\7\u010e\2\2\u155f\u1560\7\u023c\2\2\u1560\u1562\5\u0202\u0102\2\u1561"+ + "\u155d\3\2\2\2\u1561\u1562\3\2\2\2\u1562\u01f5\3\2\2\2\u1563\u1569\5\u0202"+ + "\u0102\2\u1564\u1565\7\u02ff\2\2\u1565\u1566\5\u01b2\u00da\2\u1566\u1567"+ + "\7\u0300\2\2\u1567\u1569\3\2\2\2\u1568\u1563\3\2\2\2\u1568\u1564\3\2\2"+ + "\2\u1569\u156b\3\2\2\2\u156a\u156c\5\u0202\u0102\2\u156b\u156a\3\2\2\2"+ + "\u156b\u156c\3\2\2\2\u156c\u156e\3\2\2\2\u156d\u156f\t\62\2\2\u156e\u156d"+ + "\3\2\2\2\u156e\u156f\3\2\2\2\u156f\u1572\3\2\2\2\u1570\u1571\7\u0177\2"+ + "\2\u1571\u1573\t\"\2\2\u1572\u1570\3\2\2\2\u1572\u1573\3\2\2\2\u1573\u01f7"+ + "\3\2\2\2\u1574\u1575\7o\2\2\u1575\u1577\5\u01cc\u00e7\2\u1576\u1574\3"+ + "\2\2\2\u1576\u1577\3\2\2\2\u1577\u15b9\3\2\2\2\u1578\u1579\7P\2\2\u1579"+ + "\u157a\7\u02ff\2\2\u157a\u157b\5\u01b2\u00da\2\u157b\u157e\7\u0300\2\2"+ + "\u157c\u157d\7\u0169\2\2\u157d\u157f\7\u0295\2\2\u157e\u157c\3\2\2\2\u157e"+ + "\u157f\3\2\2\2\u157f\u15ba\3\2\2\2\u1580\u1581\7\u0265\2\2\u1581\u1582"+ + "\7\u02ff\2\2\u1582\u1583\5\u01d0\u00e9\2\u1583\u1584\7\u0300\2\2\u1584"+ + "\u15ba\3\2\2\2\u1585\u1586\7\u01b6\2\2\u1586\u1587\7\u0128\2\2\u1587\u1588"+ + "\7\u02ff\2\2\u1588\u1589\5\u01d0\u00e9\2\u1589\u158a\7\u0300\2\2\u158a"+ + "\u158b\5\u01f4\u00fb\2\u158b\u15ba\3\2\2\2\u158c\u158f\7\u00cf\2\2\u158d"+ + "\u158e\7\u0273\2\2\u158e\u1590\5\u01dc\u00ef\2\u158f\u158d\3\2\2\2\u158f"+ + "\u1590\3\2\2\2\u1590\u1591\3\2\2\2\u1591\u1592\7\u02ff\2\2\u1592\u1593"+ + "\5\u01f6\u00fc\2\u1593\u1594\7\u0288\2\2\u1594\u1595\5\u01d0\u00e9\2\u1595"+ + "\u1596\7\u0300\2\2\u1596\u1597\5\u01f4\u00fb\2\u1597\u1598\7\u0285\2\2"+ + "\u1598\u1599\7\u02ff\2\2\u1599\u159a\5\u01ec\u00f7\2\u159a\u159b\7\u0300"+ + "\2\2\u159b\u159d\3\2\2\2\u159c\u158c\3\2\2\2\u159c\u159d\3\2\2\2\u159d"+ + "\u15ba\3\2\2\2\u159e\u159f\7\u00e7\2\2\u159f\u15a0\7\u0128\2\2\u15a0\u15a1"+ + "\7\u02ff\2\2\u15a1\u15a2\5\u01d0\u00e9\2\u15a2\u15a3\7\u0300\2\2\u15a3"+ + "\u15a4\7\u01c7\2\2\u15a4\u15a6\5\u0202\u0102\2\u15a5\u15a7\5\u01d0\u00e9"+ + "\2\u15a6\u15a5\3\2\2\2\u15a6\u15a7\3\2\2\2\u15a7\u15ad\3\2\2\2\u15a8\u15a9"+ + "\7\u0148\2\2\u15a9\u15ae\7\u00ef\2\2\u15aa\u15ab\7\u0148\2\2\u15ab\u15ae"+ + "\7\u01a0\2\2\u15ac\u15ae\7\u0149\2\2\u15ad\u15a8\3\2\2\2\u15ad\u15aa\3"+ + "\2\2\2\u15ad\u15ac\3\2\2\2\u15ad\u15ae\3\2\2\2\u15ae\u15b2\3\2\2\2\u15af"+ + "\u15b0\7\u0182\2\2\u15b0\u15b1\7\u00a5\2\2\u15b1\u15b3\5\u0202\u0102\2"+ + "\u15b2\u15af\3\2\2\2\u15b2\u15b3\3\2\2\2\u15b3\u15b7\3\2\2\2\u15b4\u15b5"+ + "\7\u0182\2\2\u15b5\u15b6\7\u026b\2\2\u15b6\u15b8\5\u0202\u0102\2\u15b7"+ + "\u15b4\3\2\2\2\u15b7\u15b8\3\2\2\2\u15b8\u15ba\3\2\2\2\u15b9\u1578\3\2"+ + "\2\2\u15b9\u1580\3\2\2\2\u15b9\u1585\3\2\2\2\u15b9\u159c\3\2\2\2\u15b9"+ + "\u159e\3\2\2\2\u15ba\u15bf\3\2\2\2\u15bb\u15bd\7\u016f\2\2\u15bc\u15bb"+ + "\3\2\2\2\u15bc\u15bd\3\2\2\2\u15bd\u15be\3\2\2\2\u15be\u15c0\7\u009f\2"+ + "\2\u15bf\u15bc\3\2\2\2\u15bf\u15c0\3\2\2\2\u15c0\u15c3\3\2\2\2\u15c1\u15c2"+ + "\7\u0113\2\2\u15c2\u15c4\t\31\2\2\u15c3\u15c1\3\2\2\2\u15c3\u15c4\3\2"+ + "\2\2\u15c4\u01f9\3\2\2\2\u15c5\u15ca\5\u01cc\u00e7\2\u15c6\u15ca\7\u008f"+ + "\2\2\u15c7\u15ca\7\u0208\2\2\u15c8\u15ca\7\u01bb\2\2\u15c9\u15c5\3\2\2"+ + "\2\u15c9\u15c6\3\2\2\2\u15c9\u15c7\3\2\2\2\u15c9\u15c8\3\2\2\2\u15ca\u01fb"+ + "\3\2\2\2\u15cb\u15d0\5\u01fa\u00fe\2\u15cc\u15cd\7\u02f9\2\2\u15cd\u15cf"+ + "\5\u01fa\u00fe\2\u15ce\u15cc\3\2\2\2\u15cf\u15d2\3\2\2\2\u15d0\u15ce\3"+ + "\2\2\2\u15d0\u15d1\3\2\2\2\u15d1\u01fd\3\2\2\2\u15d2\u15d0\3\2\2\2\u15d3"+ + "\u15df\7\u0182\2\2\u15d4\u15df\7\u017e\2\2\u15d5\u15df\7\u025b\2\2\u15d6"+ + "\u15df\7\u00dc\2\2\u15d7\u15df\7\u028f\2\2\u15d8\u15df\7\u0169\2\2\u15d9"+ + "\u15df\7\u016c\2\2\u15da\u15df\7\u0309\2\2\u15db\u15df\7\u0305\2\2\u15dc"+ + "\u15df\7\u0306\2\2\u15dd\u15df\5\u0202\u0102\2\u15de\u15d3\3\2\2\2\u15de"+ + "\u15d4\3\2\2\2\u15de\u15d5\3\2\2\2\u15de\u15d6\3\2\2\2\u15de\u15d7\3\2"+ + "\2\2\u15de\u15d8\3\2\2\2\u15de\u15d9\3\2\2\2\u15de\u15da\3\2\2\2\u15de"+ + "\u15db\3\2\2\2\u15de\u15dc\3\2\2\2\u15de\u15dd\3\2\2\2\u15df\u01ff\3\2"+ + "\2\2\u15e0\u15e1\t\63\2\2\u15e1\u0201\3\2\2\2\u15e2\u15e3\b\u0102\1\2"+ + "\u15e3\u15e9\5\u0200\u0101\2\u15e4\u15e9\7\u030a\2\2\u15e5\u15e9\7\u030b"+ + "\2\2\u15e6\u15e9\5\u01c4\u00e3\2\u15e7\u15e9\7\u030d\2\2\u15e8\u15e2\3"+ + "\2\2\2\u15e8\u15e4\3\2\2\2\u15e8\u15e5\3\2\2\2\u15e8\u15e6\3\2\2\2\u15e8"+ + "\u15e7\3\2\2\2\u15e9\u15ef\3\2\2\2\u15ea\u15eb\f\5\2\2\u15eb\u15ec\7\u0308"+ + "\2\2\u15ec\u15ee\5\u0202\u0102\6\u15ed\u15ea\3\2\2\2\u15ee\u15f1\3\2\2"+ + "\2\u15ef\u15ed\3\2\2\2\u15ef\u15f0\3\2\2\2\u15f0\u0203\3\2\2\2\u15f1\u15ef"+ + "\3\2\2\2\u15f2\u15f3\13\2\2\2\u15f3\u0205\3\2\2\2\u15f4\u15f5\5\u0202"+ + "\u0102\2\u15f5\u0207\3\2\2\2\u15f6\u15f7\5\u0202\u0102\2\u15f7\u0209\3"+ + "\2\2\2\u15f8\u15f9\5\u0202\u0102\2\u15f9\u020b\3\2\2\2\u15fa\u15fb\5\u0202"+ + "\u0102\2\u15fb\u020d\3\2\2\2\u15fc\u15fd\5\u0202\u0102\2\u15fd\u020f\3"+ + "\2\2\2\u15fe\u15ff\5\u0202\u0102\2\u15ff\u0211\3\2\2\2\u1600\u1601\5\u0202"+ + "\u0102\2\u1601\u0213\3\2\2\2\u02b5\u0219\u021d\u0255\u0281\u02a1\u02be"+ + "\u02d5\u02e3\u02f3\u02fc\u0300\u0327\u0335\u0340\u034a\u0352\u035b\u0361"+ + "\u0367\u036a\u036e\u0372\u0376\u037a\u037f\u0385\u0389\u0392\u039a\u03a3"+ + "\u03ac\u03b6\u03c0\u03c9\u03ce\u03d4\u03dd\u03e1\u03e8\u03ef\u0409\u040b"+ + "\u0412\u041a\u041d\u0421\u042a\u042d\u0431\u0435\u0440\u044c\u0453\u046c"+ + "\u0472\u047d\u0490\u049c\u04ac\u04b2\u04b4\u04b8\u04c2\u04cb\u04cd\u04d8"+ + "\u04f3\u04ff\u0513\u0517\u051c\u051e\u0526\u0530\u053a\u0554\u0568\u056f"+ + "\u0575\u057a\u0587\u058c\u0593\u0599\u059e\u05a9\u05ae\u05b6\u05bb\u05bf"+ + "\u05d9\u05db\u05e1\u05e6\u05ea\u05ee\u05f2\u05f6\u0600\u0607\u0617\u0621"+ + "\u0631\u0644\u0650\u0672\u0682\u0695\u06a7\u06e4\u0704\u071c\u0731\u0747"+ + "\u074e\u0783\u0793\u0796\u07a6\u07ac\u07b0\u07b6\u07bc\u07c2\u07c8\u07ce"+ + "\u07d4\u07da\u07e0\u07e6\u07ea\u07f0\u07f6\u07fc\u0805\u0808\u080b\u0810"+ + "\u0813\u0823\u0829\u082d\u0833\u0839\u083d\u0854\u085a\u085e\u0864\u086a"+ + "\u0870\u0876\u087c\u0882\u0888\u088e\u0894\u0898\u089e\u08a4\u08a8\u08b8"+ + "\u08be\u08c4\u08d8\u08df\u08e7\u08f3\u08f9\u08fd\u090c\u0911\u0916\u091b"+ + "\u0920\u0925\u092a\u092f\u0935\u093a\u093e\u0948\u094e\u0956\u0958\u0963"+ + "\u096b\u0976\u0984\u0990\u0992\u0999\u09a0\u09a8\u09b3\u09b7\u09bc\u09c5"+ + "\u09ca\u09d3\u09e2\u09f7\u09f9\u09fb\u09ff\u0a03\u0a08\u0a0b\u0a11\u0a15"+ + "\u0a19\u0a1e\u0a21\u0a28\u0a2b\u0a2e\u0a36\u0a3a\u0a3c\u0a44\u0a4b\u0a4e"+ + "\u0a52\u0a58\u0a5b\u0a68\u0a6e\u0a74\u0a7a\u0a80\u0a86\u0a8a\u0a8e\u0a9b"+ + "\u0aa3\u0aa7\u0ab0\u0ab7\u0ac0\u0ac8\u0ad9\u0add\u0ae4\u0aec\u0af2\u0b06"+ + "\u0b1b\u0b1d\u0b1f\u0b26\u0b31\u0b35\u0b39\u0b40\u0b43\u0b4a\u0b54\u0b5d"+ + "\u0b61\u0b67\u0b6c\u0b6f\u0b75\u0b7b\u0b7f\u0b82\u0b86\u0b89\u0b8c\u0b95"+ + "\u0b97\u0bba\u0bbd\u0bc0\u0bc8\u0bcf\u0bd4\u0bd8\u0bdc\u0be3\u0be8\u0bec"+ + "\u0bef\u0bf2\u0bf6\u0bfd\u0c00\u0c2e\u0c35\u0c39\u0c3f\u0c4a\u0c52\u0c58"+ + "\u0c5c\u0c62\u0c66\u0c6c\u0c74\u0c78\u0c7f\u0c83\u0c89\u0c8d\u0c95\u0c99"+ + "\u0ca0\u0ca4\u0caa\u0cae\u0cb4\u0cbb\u0cbf\u0cc3\u0cc7\u0ccc\u0cd0\u0cd7"+ + "\u0cdb\u0ce4\u0cea\u0cf1\u0cf7\u0cfe\u0d04\u0d0a\u0d10\u0d14\u0d1a\u0d22"+ + "\u0d28\u0d2e\u0d32\u0d38\u0d3c\u0d42\u0d46\u0d4c\u0d54\u0d58\u0d5e\u0d62"+ + "\u0d68\u0d72\u0d76\u0d7e\u0d82\u0d8a\u0d8e\u0d96\u0d9a\u0da0\u0dac\u0db2"+ + "\u0db8\u0dbc\u0dc2\u0dcb\u0dd3\u0ddc\u0de0\u0de5\u0de9\u0dec\u0df5\u0dfa"+ + "\u0e05\u0e0e\u0e15\u0e1b\u0e1f\u0e22\u0e28\u0e30\u0e35\u0e38\u0e41\u0e43"+ + "\u0e45\u0e48\u0e51\u0e54\u0e58\u0e6b\u0e6e\u0e71\u0e80\u0e84\u0e86\u0e89"+ + "\u0e8b\u0e93\u0e9b\u0ea3\u0eaf\u0eb5\u0eb9\u0ec0\u0ec8\u0ecf\u0ed6\u0edc"+ + "\u0ee4\u0ee8\u0ef3\u0f18\u0f2c\u0f32\u0f37\u0f3b\u0f3f\u0f44\u0f4a\u0f4e"+ + "\u0f51\u0f54\u0f57\u0f5a\u0f5d\u0f60\u0f63\u0f66\u0f69\u0f6c\u0f6f\u0f75"+ + "\u0f78\u0f7c\u0f80\u0f84\u0f89\u0f8f\u0f93\u0f96\u0f99\u0f9c\u0f9f\u0fa2"+ + "\u0fa5\u0fa8\u0fab\u0fae\u0fb1\u0fb5\u0fbc\u0fc4\u0fcd\u0fd3\u0fd9\u0fdd"+ + "\u0fe4\u0fe6\u0fec\u0ff2\u0ff7\u0ffb\u1008\u100f\u1012\u1019\u1029\u1030"+ + "\u1034\u1037\u103b\u103f\u1042\u1046\u1049\u104e\u1051\u1055\u1059\u105c"+ + "\u105f\u1064\u106b\u106e\u1077\u107f\u1086\u108a\u108d\u1090\u1093\u1097"+ + "\u109a\u109d\u10a5\u10a7\u10a9\u10ac\u10b3\u10b9\u10bd\u10c0\u10c3\u10c6"+ + "\u10c9\u10cc\u10d2\u10d4\u10de\u10eb\u10f6\u10fb\u10ff\u1107\u110f\u111a"+ + "\u111f\u1122\u1125\u112a\u112d\u1130\u1134\u1139\u113d\u1149\u1157\u1161"+ + "\u1165\u1170\u1175\u117a\u117f\u1183\u118c\u1191\u1197\u11a1\u11a4\u11aa"+ + "\u11af\u11b4\u11c1\u11c9\u11cc\u11d1\u11d3\u11db\u11e5\u11e7\u11fe\u1206"+ + "\u1236\u1248\u124d\u125d\u126f\u1274\u1278\u127d\u1284\u1291\u1299\u129b"+ + "\u12a3\u12ab\u12ad\u12b9\u12bd\u12c9\u12cd\u12d1\u12d9\u12df\u12e6\u12ea"+ + "\u12ed\u12f0\u12f3\u12fa\u1302\u1309\u1314\u131a\u1324\u132a\u1330\u133b"+ + "\u1349\u134c\u135b\u136d\u1372\u1378\u137d\u1383\u1389\u1393\u1399\u139c"+ + "\u13a4\u13a9\u13b0\u13b4\u13bd\u13c9\u13d2\u13d5\u13e3\u13e5\u13e9\u13f0"+ + "\u13f8\u13fe\u1405\u140c\u1410\u1415\u141d\u1422\u1433\u1439\u143b\u1446"+ + "\u144a\u1453\u1456\u145c\u1460\u1463\u146d\u1476\u1478\u147b\u1481\u148a"+ + "\u148f\u1492\u1497\u149a\u149d\u14a7\u14ad\u14bb\u14c0\u14c4\u14c8\u14cc"+ + "\u14d0\u14d3\u14d7\u14db\u14e3\u14e6\u14e9\u14f0\u14f3\u14f8\u14fd\u1502"+ + "\u1507\u1512\u1517\u1525\u152d\u152f\u1534\u1537\u153b\u153e\u1545\u1548"+ + "\u154c\u1554\u155b\u1561\u1568\u156b\u156e\u1572\u1576\u157e\u158f\u159c"+ + "\u15a6\u15ad\u15b2\u15b7\u15b9\u15bc\u15bf\u15c3\u15c9\u15d0\u15de\u15e8"+ + "\u15ef"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } } \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java index 2e6cc2b..672b774 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseListener.java @@ -11,4809 +11,3209 @@ * of the available methods. */ public class PostgreSQLParserBaseListener implements PostgreSQLParserListener { - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRoot(PostgreSQLParser.RootContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRoot(PostgreSQLParser.RootContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterStmt(PostgreSQLParser.StmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitStmt(PostgreSQLParser.StmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWith_clause(PostgreSQLParser.With_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWith_clause(PostgreSQLParser.With_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWith_expr(PostgreSQLParser.With_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWith_expr(PostgreSQLParser.With_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFrom_clause(PostgreSQLParser.From_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFrom_clause(PostgreSQLParser.From_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterColumn_list(PostgreSQLParser.Column_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitColumn_list(PostgreSQLParser.Column_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFrame(PostgreSQLParser.FrameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFrame(PostgreSQLParser.FrameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFrame_start(PostgreSQLParser.Frame_startContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFrame_start(PostgreSQLParser.Frame_startContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFrame_end(PostgreSQLParser.Frame_endContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFrame_end(PostgreSQLParser.Frame_endContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFor_clause(PostgreSQLParser.For_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFor_clause(PostgreSQLParser.For_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExpr(PostgreSQLParser.ExprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExpr(PostgreSQLParser.ExprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterBool_expr(PostgreSQLParser.Bool_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitBool_expr(PostgreSQLParser.Bool_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCase_expr(PostgreSQLParser.Case_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCase_expr(PostgreSQLParser.Case_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExpr_list(PostgreSQLParser.Expr_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExpr_list(PostgreSQLParser.Expr_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFunc_sig(PostgreSQLParser.Func_sigContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFunc_sig(PostgreSQLParser.Func_sigContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterType_name(PostgreSQLParser.Type_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitType_name(PostgreSQLParser.Type_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTimezone(PostgreSQLParser.TimezoneContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTimezone(PostgreSQLParser.TimezoneContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterOper(PostgreSQLParser.OperContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitOper(PostgreSQLParser.OperContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAggregate(PostgreSQLParser.AggregateContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAggregate(PostgreSQLParser.AggregateContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterName_(PostgreSQLParser.Name_Context ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitName_(PostgreSQLParser.Name_Context ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterName_list(PostgreSQLParser.Name_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitName_list(PostgreSQLParser.Name_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterOption_expr(PostgreSQLParser.Option_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitOption_expr(PostgreSQLParser.Option_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterOption_list(PostgreSQLParser.Option_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitOption_list(PostgreSQLParser.Option_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTable_name_(PostgreSQLParser.Table_name_Context ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTable_name_(PostgreSQLParser.Table_name_Context ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterData_type(PostgreSQLParser.Data_typeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitData_type(PostgreSQLParser.Data_typeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterData_type_list(PostgreSQLParser.Data_type_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitData_type_list(PostgreSQLParser.Data_type_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterIndex_method(PostgreSQLParser.Index_methodContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitIndex_method(PostgreSQLParser.Index_methodContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFunc_name(PostgreSQLParser.Func_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFunc_name(PostgreSQLParser.Func_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFunc_call(PostgreSQLParser.Func_callContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFunc_call(PostgreSQLParser.Func_callContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterFrom_item(PostgreSQLParser.From_itemContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitFrom_item(PostgreSQLParser.From_itemContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterJoin_type(PostgreSQLParser.Join_typeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitJoin_type(PostgreSQLParser.Join_typeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterPredicate(PostgreSQLParser.PredicateContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitPredicate(PostgreSQLParser.PredicateContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRole_name(PostgreSQLParser.Role_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRole_name(PostgreSQLParser.Role_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterParam_value(PostgreSQLParser.Param_valueContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitParam_value(PostgreSQLParser.Param_valueContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterIdentifier(PostgreSQLParser.IdentifierContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitIdentifier(PostgreSQLParser.IdentifierContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterColumn_name(PostgreSQLParser.Column_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitColumn_name(PostgreSQLParser.Column_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterAlias(PostgreSQLParser.AliasContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitAlias(PostgreSQLParser.AliasContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterWindow_name(PostgreSQLParser.Window_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitWindow_name(PostgreSQLParser.Window_nameContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void enterEveryRule(ParserRuleContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void exitEveryRule(ParserRuleContext ctx) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void visitTerminal(TerminalNode node) { - } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override - public void visitErrorNode(ErrorNode node) { - } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoot(PostgreSQLParser.RootContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoot(PostgreSQLParser.RootContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStmt(PostgreSQLParser.StmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStmt(PostgreSQLParser.StmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWith_clause(PostgreSQLParser.With_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWith_clause(PostgreSQLParser.With_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWith_expr(PostgreSQLParser.With_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWith_expr(PostgreSQLParser.With_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrom_clause(PostgreSQLParser.From_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrom_clause(PostgreSQLParser.From_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumn_list(PostgreSQLParser.Column_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumn_list(PostgreSQLParser.Column_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrame(PostgreSQLParser.FrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrame(PostgreSQLParser.FrameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrame_start(PostgreSQLParser.Frame_startContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrame_start(PostgreSQLParser.Frame_startContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrame_end(PostgreSQLParser.Frame_endContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrame_end(PostgreSQLParser.Frame_endContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFor_clause(PostgreSQLParser.For_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFor_clause(PostgreSQLParser.For_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpr(PostgreSQLParser.ExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpr(PostgreSQLParser.ExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBool_expr(PostgreSQLParser.Bool_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBool_expr(PostgreSQLParser.Bool_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCase_expr(PostgreSQLParser.Case_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCase_expr(PostgreSQLParser.Case_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpr_list(PostgreSQLParser.Expr_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpr_list(PostgreSQLParser.Expr_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunc_sig(PostgreSQLParser.Func_sigContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunc_sig(PostgreSQLParser.Func_sigContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_name(PostgreSQLParser.Type_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_name(PostgreSQLParser.Type_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimezone(PostgreSQLParser.TimezoneContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimezone(PostgreSQLParser.TimezoneContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOper(PostgreSQLParser.OperContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOper(PostgreSQLParser.OperContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAggregate(PostgreSQLParser.AggregateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAggregate(PostgreSQLParser.AggregateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterName_(PostgreSQLParser.Name_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitName_(PostgreSQLParser.Name_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterName_list(PostgreSQLParser.Name_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitName_list(PostgreSQLParser.Name_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOption_expr(PostgreSQLParser.Option_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOption_expr(PostgreSQLParser.Option_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOption_list(PostgreSQLParser.Option_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOption_list(PostgreSQLParser.Option_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTable_name_(PostgreSQLParser.Table_name_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTable_name_(PostgreSQLParser.Table_name_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterData_type(PostgreSQLParser.Data_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitData_type(PostgreSQLParser.Data_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterData_type_list(PostgreSQLParser.Data_type_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitData_type_list(PostgreSQLParser.Data_type_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndex_method(PostgreSQLParser.Index_methodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndex_method(PostgreSQLParser.Index_methodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunc_name(PostgreSQLParser.Func_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunc_name(PostgreSQLParser.Func_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunc_call(PostgreSQLParser.Func_callContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunc_call(PostgreSQLParser.Func_callContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrom_item(PostgreSQLParser.From_itemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrom_item(PostgreSQLParser.From_itemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJoin_type(PostgreSQLParser.Join_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJoin_type(PostgreSQLParser.Join_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredicate(PostgreSQLParser.PredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredicate(PostgreSQLParser.PredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRole_name(PostgreSQLParser.Role_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRole_name(PostgreSQLParser.Role_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParam_value(PostgreSQLParser.Param_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParam_value(PostgreSQLParser.Param_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifier(PostgreSQLParser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifier(PostgreSQLParser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumn_name(PostgreSQLParser.Column_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumn_name(PostgreSQLParser.Column_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAlias(PostgreSQLParser.AliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAlias(PostgreSQLParser.AliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWindow_name(PostgreSQLParser.Window_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWindow_name(PostgreSQLParser.Window_nameContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } } \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java index ae526c3..65af91e 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserBaseVisitor.java @@ -1,6 +1,5 @@ // Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 package com.github.bigdata.sql.antlr4.pg; - import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; /** @@ -9,2921 +8,1862 @@ * of the available methods. * * @param The return type of the visit operation. Use {@link Void} for - * operations with no return type. + * operations with no return type. */ public class PostgreSQLParserBaseVisitor extends AbstractParseTreeVisitor implements PostgreSQLParserVisitor { - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRoot(PostgreSQLParser.RootContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitStmt(PostgreSQLParser.StmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWith_clause(PostgreSQLParser.With_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWith_expr(PostgreSQLParser.With_exprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFrom_clause(PostgreSQLParser.From_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitColumn_list(PostgreSQLParser.Column_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFrame(PostgreSQLParser.FrameContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFrame_start(PostgreSQLParser.Frame_startContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFrame_end(PostgreSQLParser.Frame_endContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFor_clause(PostgreSQLParser.For_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExpr(PostgreSQLParser.ExprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitBool_expr(PostgreSQLParser.Bool_exprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCase_expr(PostgreSQLParser.Case_exprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExpr_list(PostgreSQLParser.Expr_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFunc_sig(PostgreSQLParser.Func_sigContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitType_name(PostgreSQLParser.Type_nameContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTimezone(PostgreSQLParser.TimezoneContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitOper(PostgreSQLParser.OperContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAggregate(PostgreSQLParser.AggregateContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitName_(PostgreSQLParser.Name_Context ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitName_list(PostgreSQLParser.Name_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitOption_expr(PostgreSQLParser.Option_exprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitOption_list(PostgreSQLParser.Option_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTable_name_(PostgreSQLParser.Table_name_Context ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitData_type(PostgreSQLParser.Data_typeContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitData_type_list(PostgreSQLParser.Data_type_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitIndex_method(PostgreSQLParser.Index_methodContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFunc_name(PostgreSQLParser.Func_nameContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFunc_call(PostgreSQLParser.Func_callContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitFrom_item(PostgreSQLParser.From_itemContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitJoin_type(PostgreSQLParser.Join_typeContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitPredicate(PostgreSQLParser.PredicateContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRole_name(PostgreSQLParser.Role_nameContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitParam_value(PostgreSQLParser.Param_valueContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitIdentifier(PostgreSQLParser.IdentifierContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitColumn_name(PostgreSQLParser.Column_nameContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitAlias(PostgreSQLParser.AliasContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { - return visitChildren(ctx); - } - - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override - public T visitWindow_name(PostgreSQLParser.Window_nameContext ctx) { - return visitChildren(ctx); - } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRoot(PostgreSQLParser.RootContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStmt(PostgreSQLParser.StmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClose_stmt(PostgreSQLParser.Close_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMove_stmt(PostgreSQLParser.Move_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWith_clause(PostgreSQLParser.With_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWith_expr(PostgreSQLParser.With_exprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSet_stmt(PostgreSQLParser.Set_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShow_stmt(PostgreSQLParser.Show_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitValues_stmt(PostgreSQLParser.Values_stmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrom_clause(PostgreSQLParser.From_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhere_clause(PostgreSQLParser.Where_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitHaving_clause(PostgreSQLParser.Having_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumn_list(PostgreSQLParser.Column_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrame(PostgreSQLParser.FrameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrame_start(PostgreSQLParser.Frame_startContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrame_end(PostgreSQLParser.Frame_endContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWindow_definition(PostgreSQLParser.Window_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWindow_clause(PostgreSQLParser.Window_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFor_clause(PostgreSQLParser.For_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpr(PostgreSQLParser.ExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBool_expr(PostgreSQLParser.Bool_exprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCase_expr(PostgreSQLParser.Case_exprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpr_list(PostgreSQLParser.Expr_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunc_sig(PostgreSQLParser.Func_sigContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_name(PostgreSQLParser.Type_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTimezone(PostgreSQLParser.TimezoneContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOper(PostgreSQLParser.OperContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAggregate(PostgreSQLParser.AggregateContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitName_(PostgreSQLParser.Name_Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitName_list(PostgreSQLParser.Name_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOption_expr(PostgreSQLParser.Option_exprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOption_list(PostgreSQLParser.Option_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTable_name_(PostgreSQLParser.Table_name_Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitData_type(PostgreSQLParser.Data_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitData_type_list(PostgreSQLParser.Data_type_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIndex_method(PostgreSQLParser.Index_methodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunc_name(PostgreSQLParser.Func_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunc_call(PostgreSQLParser.Func_callContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrom_item(PostgreSQLParser.From_itemContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitJoin_type(PostgreSQLParser.Join_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitJoin_clause(PostgreSQLParser.Join_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPredicate(PostgreSQLParser.PredicateContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExclude_element(PostgreSQLParser.Exclude_elementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTable_constraint(PostgreSQLParser.Table_constraintContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRole_name(PostgreSQLParser.Role_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRole_name_list(PostgreSQLParser.Role_name_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParam_value(PostgreSQLParser.Param_valueContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifier(PostgreSQLParser.IdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTodo_implement(PostgreSQLParser.Todo_implementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumn_name(PostgreSQLParser.Column_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAlias(PostgreSQLParser.AliasContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumn_alias(PostgreSQLParser.Column_aliasContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitColumn_definition(PostgreSQLParser.Column_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWindow_name(PostgreSQLParser.Window_nameContext ctx) { return visitChildren(ctx); } } \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java index 10a037a..0f7ecfd 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserListener.java @@ -1,6 +1,5 @@ // Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 package com.github.bigdata.sql.antlr4.pg; - import org.antlr.v4.runtime.tree.ParseTreeListener; /** @@ -8,3713 +7,2654 @@ * {@link PostgreSQLParser}. */ public interface PostgreSQLParserListener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link PostgreSQLParser#root}. - * - * @param ctx the parse tree - */ - void enterRoot(PostgreSQLParser.RootContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#root}. - * - * @param ctx the parse tree - */ - void exitRoot(PostgreSQLParser.RootContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#stmt}. - * - * @param ctx the parse tree - */ - void enterStmt(PostgreSQLParser.StmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#stmt}. - * - * @param ctx the parse tree - */ - void exitStmt(PostgreSQLParser.StmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#abort_stmt}. - * - * @param ctx the parse tree - */ - void enterAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#abort_stmt}. - * - * @param ctx the parse tree - */ - void exitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. - * - * @param ctx the parse tree - */ - void enterAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. - * - * @param ctx the parse tree - */ - void exitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. - * - * @param ctx the parse tree - */ - void enterAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. - * - * @param ctx the parse tree - */ - void exitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_role_options}. - * - * @param ctx the parse tree - */ - void enterAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_role_options}. - * - * @param ctx the parse tree - */ - void exitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. - * - * @param ctx the parse tree - */ - void enterAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. - * - * @param ctx the parse tree - */ - void exitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. - * - * @param ctx the parse tree - */ - void enterAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. - * - * @param ctx the parse tree - */ - void exitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. - * - * @param ctx the parse tree - */ - void enterAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. - * - * @param ctx the parse tree - */ - void exitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#close_stmt}. - * - * @param ctx the parse tree - */ - void enterClose_stmt(PostgreSQLParser.Close_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#close_stmt}. - * - * @param ctx the parse tree - */ - void exitClose_stmt(PostgreSQLParser.Close_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. - * - * @param ctx the parse tree - */ - void enterCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. - * - * @param ctx the parse tree - */ - void exitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#comment_stmt}. - * - * @param ctx the parse tree - */ - void enterComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#comment_stmt}. - * - * @param ctx the parse tree - */ - void exitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#commit_stmt}. - * - * @param ctx the parse tree - */ - void enterCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#commit_stmt}. - * - * @param ctx the parse tree - */ - void exitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. - * - * @param ctx the parse tree - */ - void enterCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. - * - * @param ctx the parse tree - */ - void exitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#copy_stmt}. - * - * @param ctx the parse tree - */ - void enterCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#copy_stmt}. - * - * @param ctx the parse tree - */ - void exitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. - * - * @param ctx the parse tree - */ - void enterCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. - * - * @param ctx the parse tree - */ - void exitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. - * - * @param ctx the parse tree - */ - void enterCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. - * - * @param ctx the parse tree - */ - void exitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#domain_constraint}. - * - * @param ctx the parse tree - */ - void enterDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#domain_constraint}. - * - * @param ctx the parse tree - */ - void exitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. - * - * @param ctx the parse tree - */ - void enterCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. - * - * @param ctx the parse tree - */ - void exitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. - * - * @param ctx the parse tree - */ - void enterCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. - * - * @param ctx the parse tree - */ - void exitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. - * - * @param ctx the parse tree - */ - void enterCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. - * - * @param ctx the parse tree - */ - void exitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_rule_event}. - * - * @param ctx the parse tree - */ - void enterCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_rule_event}. - * - * @param ctx the parse tree - */ - void exitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. - * - * @param ctx the parse tree - */ - void enterCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. - * - * @param ctx the parse tree - */ - void exitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. - * - * @param ctx the parse tree - */ - void enterDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. - * - * @param ctx the parse tree - */ - void exitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#declare_stmt}. - * - * @param ctx the parse tree - */ - void enterDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#declare_stmt}. - * - * @param ctx the parse tree - */ - void exitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#delete_stmt}. - * - * @param ctx the parse tree - */ - void enterDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#delete_stmt}. - * - * @param ctx the parse tree - */ - void exitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#discard_stmt}. - * - * @param ctx the parse tree - */ - void enterDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#discard_stmt}. - * - * @param ctx the parse tree - */ - void exitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. - * - * @param ctx the parse tree - */ - void enterDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. - * - * @param ctx the parse tree - */ - void exitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#execute_stmt}. - * - * @param ctx the parse tree - */ - void enterExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#execute_stmt}. - * - * @param ctx the parse tree - */ - void exitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#explain_stmt}. - * - * @param ctx the parse tree - */ - void enterExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#explain_stmt}. - * - * @param ctx the parse tree - */ - void exitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. - * - * @param ctx the parse tree - */ - void enterFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. - * - * @param ctx the parse tree - */ - void exitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#grant_stmt}. - * - * @param ctx the parse tree - */ - void enterGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#grant_stmt}. - * - * @param ctx the parse tree - */ - void exitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. - * - * @param ctx the parse tree - */ - void enterImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. - * - * @param ctx the parse tree - */ - void exitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#insert_stmt}. - * - * @param ctx the parse tree - */ - void enterInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#insert_stmt}. - * - * @param ctx the parse tree - */ - void exitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#listen_stmt}. - * - * @param ctx the parse tree - */ - void enterListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#listen_stmt}. - * - * @param ctx the parse tree - */ - void exitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#load_stmt}. - * - * @param ctx the parse tree - */ - void enterLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#load_stmt}. - * - * @param ctx the parse tree - */ - void exitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#lock_stmt}. - * - * @param ctx the parse tree - */ - void enterLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#lock_stmt}. - * - * @param ctx the parse tree - */ - void exitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#move_stmt}. - * - * @param ctx the parse tree - */ - void enterMove_stmt(PostgreSQLParser.Move_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#move_stmt}. - * - * @param ctx the parse tree - */ - void exitMove_stmt(PostgreSQLParser.Move_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#notify_stmt}. - * - * @param ctx the parse tree - */ - void enterNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#notify_stmt}. - * - * @param ctx the parse tree - */ - void exitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. - * - * @param ctx the parse tree - */ - void enterPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. - * - * @param ctx the parse tree - */ - void exitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. - * - * @param ctx the parse tree - */ - void enterPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. - * - * @param ctx the parse tree - */ - void exitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. - * - * @param ctx the parse tree - */ - void enterReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. - * - * @param ctx the parse tree - */ - void exitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. - * - * @param ctx the parse tree - */ - void enterRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. - * - * @param ctx the parse tree - */ - void exitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. - * - * @param ctx the parse tree - */ - void enterReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. - * - * @param ctx the parse tree - */ - void exitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. - * - * @param ctx the parse tree - */ - void enterRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. - * - * @param ctx the parse tree - */ - void exitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#reset_stmt}. - * - * @param ctx the parse tree - */ - void enterReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#reset_stmt}. - * - * @param ctx the parse tree - */ - void exitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. - * - * @param ctx the parse tree - */ - void enterRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. - * - * @param ctx the parse tree - */ - void exitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. - * - * @param ctx the parse tree - */ - void enterRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. - * - * @param ctx the parse tree - */ - void exitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. - * - * @param ctx the parse tree - */ - void enterRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. - * - * @param ctx the parse tree - */ - void exitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. - * - * @param ctx the parse tree - */ - void enterRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. - * - * @param ctx the parse tree - */ - void exitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. - * - * @param ctx the parse tree - */ - void enterSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. - * - * @param ctx the parse tree - */ - void exitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. - * - * @param ctx the parse tree - */ - void enterSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. - * - * @param ctx the parse tree - */ - void exitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#select_stmt}. - * - * @param ctx the parse tree - */ - void enterSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#select_stmt}. - * - * @param ctx the parse tree - */ - void exitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. - * - * @param ctx the parse tree - */ - void enterSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. - * - * @param ctx the parse tree - */ - void exitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#with_clause}. - * - * @param ctx the parse tree - */ - void enterWith_clause(PostgreSQLParser.With_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#with_clause}. - * - * @param ctx the parse tree - */ - void exitWith_clause(PostgreSQLParser.With_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#with_expr}. - * - * @param ctx the parse tree - */ - void enterWith_expr(PostgreSQLParser.With_exprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#with_expr}. - * - * @param ctx the parse tree - */ - void exitWith_expr(PostgreSQLParser.With_exprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#set_stmt}. - * - * @param ctx the parse tree - */ - void enterSet_stmt(PostgreSQLParser.Set_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#set_stmt}. - * - * @param ctx the parse tree - */ - void exitSet_stmt(PostgreSQLParser.Set_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. - * - * @param ctx the parse tree - */ - void enterSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. - * - * @param ctx the parse tree - */ - void exitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. - * - * @param ctx the parse tree - */ - void enterSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. - * - * @param ctx the parse tree - */ - void exitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. - * - * @param ctx the parse tree - */ - void enterSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. - * - * @param ctx the parse tree - */ - void exitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#transaction_mode}. - * - * @param ctx the parse tree - */ - void enterTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#transaction_mode}. - * - * @param ctx the parse tree - */ - void exitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. - * - * @param ctx the parse tree - */ - void enterTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. - * - * @param ctx the parse tree - */ - void exitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. - * - * @param ctx the parse tree - */ - void enterSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. - * - * @param ctx the parse tree - */ - void exitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#show_stmt}. - * - * @param ctx the parse tree - */ - void enterShow_stmt(PostgreSQLParser.Show_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#show_stmt}. - * - * @param ctx the parse tree - */ - void exitShow_stmt(PostgreSQLParser.Show_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. - * - * @param ctx the parse tree - */ - void enterTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. - * - * @param ctx the parse tree - */ - void exitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. - * - * @param ctx the parse tree - */ - void enterUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. - * - * @param ctx the parse tree - */ - void exitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#update_stmt}. - * - * @param ctx the parse tree - */ - void enterUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#update_stmt}. - * - * @param ctx the parse tree - */ - void exitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. - * - * @param ctx the parse tree - */ - void enterVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. - * - * @param ctx the parse tree - */ - void exitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. - * - * @param ctx the parse tree - */ - void enterVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. - * - * @param ctx the parse tree - */ - void exitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. - * - * @param ctx the parse tree - */ - void enterVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. - * - * @param ctx the parse tree - */ - void exitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#values_stmt}. - * - * @param ctx the parse tree - */ - void enterValues_stmt(PostgreSQLParser.Values_stmtContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#values_stmt}. - * - * @param ctx the parse tree - */ - void exitValues_stmt(PostgreSQLParser.Values_stmtContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#selector_clause}. - * - * @param ctx the parse tree - */ - void enterSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#selector_clause}. - * - * @param ctx the parse tree - */ - void exitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#from_clause}. - * - * @param ctx the parse tree - */ - void enterFrom_clause(PostgreSQLParser.From_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#from_clause}. - * - * @param ctx the parse tree - */ - void exitFrom_clause(PostgreSQLParser.From_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#where_clause}. - * - * @param ctx the parse tree - */ - void enterWhere_clause(PostgreSQLParser.Where_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#where_clause}. - * - * @param ctx the parse tree - */ - void exitWhere_clause(PostgreSQLParser.Where_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#group_by_clause}. - * - * @param ctx the parse tree - */ - void enterGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#group_by_clause}. - * - * @param ctx the parse tree - */ - void exitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#grouping_elem}. - * - * @param ctx the parse tree - */ - void enterGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#grouping_elem}. - * - * @param ctx the parse tree - */ - void exitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. - * - * @param ctx the parse tree - */ - void enterGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. - * - * @param ctx the parse tree - */ - void exitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#having_clause}. - * - * @param ctx the parse tree - */ - void enterHaving_clause(PostgreSQLParser.Having_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#having_clause}. - * - * @param ctx the parse tree - */ - void exitHaving_clause(PostgreSQLParser.Having_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#column_list}. - * - * @param ctx the parse tree - */ - void enterColumn_list(PostgreSQLParser.Column_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#column_list}. - * - * @param ctx the parse tree - */ - void exitColumn_list(PostgreSQLParser.Column_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#explain_parameter}. - * - * @param ctx the parse tree - */ - void enterExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#explain_parameter}. - * - * @param ctx the parse tree - */ - void exitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#frame}. - * - * @param ctx the parse tree - */ - void enterFrame(PostgreSQLParser.FrameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#frame}. - * - * @param ctx the parse tree - */ - void exitFrame(PostgreSQLParser.FrameContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#frame_start}. - * - * @param ctx the parse tree - */ - void enterFrame_start(PostgreSQLParser.Frame_startContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#frame_start}. - * - * @param ctx the parse tree - */ - void exitFrame_start(PostgreSQLParser.Frame_startContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#frame_end}. - * - * @param ctx the parse tree - */ - void enterFrame_end(PostgreSQLParser.Frame_endContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#frame_end}. - * - * @param ctx the parse tree - */ - void exitFrame_end(PostgreSQLParser.Frame_endContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#frame_clause}. - * - * @param ctx the parse tree - */ - void enterFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#frame_clause}. - * - * @param ctx the parse tree - */ - void exitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#window_definition}. - * - * @param ctx the parse tree - */ - void enterWindow_definition(PostgreSQLParser.Window_definitionContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#window_definition}. - * - * @param ctx the parse tree - */ - void exitWindow_definition(PostgreSQLParser.Window_definitionContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#window_clause}. - * - * @param ctx the parse tree - */ - void enterWindow_clause(PostgreSQLParser.Window_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#window_clause}. - * - * @param ctx the parse tree - */ - void exitWindow_clause(PostgreSQLParser.Window_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#combine_clause}. - * - * @param ctx the parse tree - */ - void enterCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#combine_clause}. - * - * @param ctx the parse tree - */ - void exitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#order_by_clause}. - * - * @param ctx the parse tree - */ - void enterOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#order_by_clause}. - * - * @param ctx the parse tree - */ - void exitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#order_by_item}. - * - * @param ctx the parse tree - */ - void enterOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#order_by_item}. - * - * @param ctx the parse tree - */ - void exitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#limit_clause}. - * - * @param ctx the parse tree - */ - void enterLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#limit_clause}. - * - * @param ctx the parse tree - */ - void exitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#offset_clause}. - * - * @param ctx the parse tree - */ - void enterOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#offset_clause}. - * - * @param ctx the parse tree - */ - void exitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#fetch_clause}. - * - * @param ctx the parse tree - */ - void enterFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#fetch_clause}. - * - * @param ctx the parse tree - */ - void exitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#for_clause}. - * - * @param ctx the parse tree - */ - void enterFor_clause(PostgreSQLParser.For_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#for_clause}. - * - * @param ctx the parse tree - */ - void exitFor_clause(PostgreSQLParser.For_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#updater_clause}. - * - * @param ctx the parse tree - */ - void enterUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#updater_clause}. - * - * @param ctx the parse tree - */ - void exitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#updater_expr}. - * - * @param ctx the parse tree - */ - void enterUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#updater_expr}. - * - * @param ctx the parse tree - */ - void exitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#returning_clause}. - * - * @param ctx the parse tree - */ - void enterReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#returning_clause}. - * - * @param ctx the parse tree - */ - void exitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#expr}. - * - * @param ctx the parse tree - */ - void enterExpr(PostgreSQLParser.ExprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#expr}. - * - * @param ctx the parse tree - */ - void exitExpr(PostgreSQLParser.ExprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#bool_expr}. - * - * @param ctx the parse tree - */ - void enterBool_expr(PostgreSQLParser.Bool_exprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#bool_expr}. - * - * @param ctx the parse tree - */ - void exitBool_expr(PostgreSQLParser.Bool_exprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#case_expr}. - * - * @param ctx the parse tree - */ - void enterCase_expr(PostgreSQLParser.Case_exprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#case_expr}. - * - * @param ctx the parse tree - */ - void exitCase_expr(PostgreSQLParser.Case_exprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#expr_list}. - * - * @param ctx the parse tree - */ - void enterExpr_list(PostgreSQLParser.Expr_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#expr_list}. - * - * @param ctx the parse tree - */ - void exitExpr_list(PostgreSQLParser.Expr_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#expr_list_list}. - * - * @param ctx the parse tree - */ - void enterExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#expr_list_list}. - * - * @param ctx the parse tree - */ - void exitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. - * - * @param ctx the parse tree - */ - void enterFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. - * - * @param ctx the parse tree - */ - void exitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. - * - * @param ctx the parse tree - */ - void enterFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. - * - * @param ctx the parse tree - */ - void exitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#func_sig}. - * - * @param ctx the parse tree - */ - void enterFunc_sig(PostgreSQLParser.Func_sigContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#func_sig}. - * - * @param ctx the parse tree - */ - void exitFunc_sig(PostgreSQLParser.Func_sigContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_list}. - * - * @param ctx the parse tree - */ - void enterFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_list}. - * - * @param ctx the parse tree - */ - void exitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#type_name}. - * - * @param ctx the parse tree - */ - void enterType_name(PostgreSQLParser.Type_nameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#type_name}. - * - * @param ctx the parse tree - */ - void exitType_name(PostgreSQLParser.Type_nameContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#timezone}. - * - * @param ctx the parse tree - */ - void enterTimezone(PostgreSQLParser.TimezoneContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#timezone}. - * - * @param ctx the parse tree - */ - void exitTimezone(PostgreSQLParser.TimezoneContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#oper}. - * - * @param ctx the parse tree - */ - void enterOper(PostgreSQLParser.OperContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#oper}. - * - * @param ctx the parse tree - */ - void exitOper(PostgreSQLParser.OperContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#aggregate}. - * - * @param ctx the parse tree - */ - void enterAggregate(PostgreSQLParser.AggregateContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#aggregate}. - * - * @param ctx the parse tree - */ - void exitAggregate(PostgreSQLParser.AggregateContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#name_}. - * - * @param ctx the parse tree - */ - void enterName_(PostgreSQLParser.Name_Context ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#name_}. - * - * @param ctx the parse tree - */ - void exitName_(PostgreSQLParser.Name_Context ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#name_list}. - * - * @param ctx the parse tree - */ - void enterName_list(PostgreSQLParser.Name_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#name_list}. - * - * @param ctx the parse tree - */ - void exitName_list(PostgreSQLParser.Name_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#identifier_list}. - * - * @param ctx the parse tree - */ - void enterIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#identifier_list}. - * - * @param ctx the parse tree - */ - void exitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#option_expr}. - * - * @param ctx the parse tree - */ - void enterOption_expr(PostgreSQLParser.Option_exprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#option_expr}. - * - * @param ctx the parse tree - */ - void exitOption_expr(PostgreSQLParser.Option_exprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#option_list}. - * - * @param ctx the parse tree - */ - void enterOption_list(PostgreSQLParser.Option_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#option_list}. - * - * @param ctx the parse tree - */ - void exitOption_list(PostgreSQLParser.Option_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#table_name_}. - * - * @param ctx the parse tree - */ - void enterTable_name_(PostgreSQLParser.Table_name_Context ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#table_name_}. - * - * @param ctx the parse tree - */ - void exitTable_name_(PostgreSQLParser.Table_name_Context ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#data_type}. - * - * @param ctx the parse tree - */ - void enterData_type(PostgreSQLParser.Data_typeContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#data_type}. - * - * @param ctx the parse tree - */ - void exitData_type(PostgreSQLParser.Data_typeContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#data_type_list}. - * - * @param ctx the parse tree - */ - void enterData_type_list(PostgreSQLParser.Data_type_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#data_type_list}. - * - * @param ctx the parse tree - */ - void exitData_type_list(PostgreSQLParser.Data_type_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#index_method}. - * - * @param ctx the parse tree - */ - void enterIndex_method(PostgreSQLParser.Index_methodContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#index_method}. - * - * @param ctx the parse tree - */ - void exitIndex_method(PostgreSQLParser.Index_methodContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#func_name}. - * - * @param ctx the parse tree - */ - void enterFunc_name(PostgreSQLParser.Func_nameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#func_name}. - * - * @param ctx the parse tree - */ - void exitFunc_name(PostgreSQLParser.Func_nameContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#func_call}. - * - * @param ctx the parse tree - */ - void enterFunc_call(PostgreSQLParser.Func_callContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#func_call}. - * - * @param ctx the parse tree - */ - void exitFunc_call(PostgreSQLParser.Func_callContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. - * - * @param ctx the parse tree - */ - void enterArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. - * - * @param ctx the parse tree - */ - void exitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#from_item}. - * - * @param ctx the parse tree - */ - void enterFrom_item(PostgreSQLParser.From_itemContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#from_item}. - * - * @param ctx the parse tree - */ - void exitFrom_item(PostgreSQLParser.From_itemContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#with_column_alias}. - * - * @param ctx the parse tree - */ - void enterWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#with_column_alias}. - * - * @param ctx the parse tree - */ - void exitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#join_type}. - * - * @param ctx the parse tree - */ - void enterJoin_type(PostgreSQLParser.Join_typeContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#join_type}. - * - * @param ctx the parse tree - */ - void exitJoin_type(PostgreSQLParser.Join_typeContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#join_clause}. - * - * @param ctx the parse tree - */ - void enterJoin_clause(PostgreSQLParser.Join_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#join_clause}. - * - * @param ctx the parse tree - */ - void exitJoin_clause(PostgreSQLParser.Join_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#predicate}. - * - * @param ctx the parse tree - */ - void enterPredicate(PostgreSQLParser.PredicateContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#predicate}. - * - * @param ctx the parse tree - */ - void exitPredicate(PostgreSQLParser.PredicateContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. - * - * @param ctx the parse tree - */ - void enterAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. - * - * @param ctx the parse tree - */ - void exitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#column_constraint}. - * - * @param ctx the parse tree - */ - void enterColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#column_constraint}. - * - * @param ctx the parse tree - */ - void exitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#column_constraints}. - * - * @param ctx the parse tree - */ - void enterColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#column_constraints}. - * - * @param ctx the parse tree - */ - void exitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#index_parameters}. - * - * @param ctx the parse tree - */ - void enterIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#index_parameters}. - * - * @param ctx the parse tree - */ - void exitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#exclude_element}. - * - * @param ctx the parse tree - */ - void enterExclude_element(PostgreSQLParser.Exclude_elementContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#exclude_element}. - * - * @param ctx the parse tree - */ - void exitExclude_element(PostgreSQLParser.Exclude_elementContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#table_constraint}. - * - * @param ctx the parse tree - */ - void enterTable_constraint(PostgreSQLParser.Table_constraintContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#table_constraint}. - * - * @param ctx the parse tree - */ - void exitTable_constraint(PostgreSQLParser.Table_constraintContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#role_name}. - * - * @param ctx the parse tree - */ - void enterRole_name(PostgreSQLParser.Role_nameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#role_name}. - * - * @param ctx the parse tree - */ - void exitRole_name(PostgreSQLParser.Role_nameContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#role_name_list}. - * - * @param ctx the parse tree - */ - void enterRole_name_list(PostgreSQLParser.Role_name_listContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#role_name_list}. - * - * @param ctx the parse tree - */ - void exitRole_name_list(PostgreSQLParser.Role_name_listContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#param_value}. - * - * @param ctx the parse tree - */ - void enterParam_value(PostgreSQLParser.Param_valueContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#param_value}. - * - * @param ctx the parse tree - */ - void exitParam_value(PostgreSQLParser.Param_valueContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. - * - * @param ctx the parse tree - */ - void enterNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. - * - * @param ctx the parse tree - */ - void exitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#identifier}. - * - * @param ctx the parse tree - */ - void enterIdentifier(PostgreSQLParser.IdentifierContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#identifier}. - * - * @param ctx the parse tree - */ - void exitIdentifier(PostgreSQLParser.IdentifierContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. - * - * @param ctx the parse tree - */ - void enterTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. - * - * @param ctx the parse tree - */ - void exitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#todo_implement}. - * - * @param ctx the parse tree - */ - void enterTodo_implement(PostgreSQLParser.Todo_implementContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#todo_implement}. - * - * @param ctx the parse tree - */ - void exitTodo_implement(PostgreSQLParser.Todo_implementContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#correlation_name}. - * - * @param ctx the parse tree - */ - void enterCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#correlation_name}. - * - * @param ctx the parse tree - */ - void exitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#column_name}. - * - * @param ctx the parse tree - */ - void enterColumn_name(PostgreSQLParser.Column_nameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#column_name}. - * - * @param ctx the parse tree - */ - void exitColumn_name(PostgreSQLParser.Column_nameContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#alias}. - * - * @param ctx the parse tree - */ - void enterAlias(PostgreSQLParser.AliasContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#alias}. - * - * @param ctx the parse tree - */ - void exitAlias(PostgreSQLParser.AliasContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#column_alias}. - * - * @param ctx the parse tree - */ - void enterColumn_alias(PostgreSQLParser.Column_aliasContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#column_alias}. - * - * @param ctx the parse tree - */ - void exitColumn_alias(PostgreSQLParser.Column_aliasContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#column_definition}. - * - * @param ctx the parse tree - */ - void enterColumn_definition(PostgreSQLParser.Column_definitionContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#column_definition}. - * - * @param ctx the parse tree - */ - void exitColumn_definition(PostgreSQLParser.Column_definitionContext ctx); - - /** - * Enter a parse tree produced by {@link PostgreSQLParser#window_name}. - * - * @param ctx the parse tree - */ - void enterWindow_name(PostgreSQLParser.Window_nameContext ctx); - - /** - * Exit a parse tree produced by {@link PostgreSQLParser#window_name}. - * - * @param ctx the parse tree - */ - void exitWindow_name(PostgreSQLParser.Window_nameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#root}. + * @param ctx the parse tree + */ + void enterRoot(PostgreSQLParser.RootContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#root}. + * @param ctx the parse tree + */ + void exitRoot(PostgreSQLParser.RootContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#stmt}. + * @param ctx the parse tree + */ + void enterStmt(PostgreSQLParser.StmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#stmt}. + * @param ctx the parse tree + */ + void exitStmt(PostgreSQLParser.StmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#abort_stmt}. + * @param ctx the parse tree + */ + void enterAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#abort_stmt}. + * @param ctx the parse tree + */ + void exitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_stmt}. + * @param ctx the parse tree + */ + void enterAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_stmt}. + * @param ctx the parse tree + */ + void exitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. + * @param ctx the parse tree + */ + void enterAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. + * @param ctx the parse tree + */ + void exitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. + * @param ctx the parse tree + */ + void enterAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. + * @param ctx the parse tree + */ + void exitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. + * @param ctx the parse tree + */ + void enterAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. + * @param ctx the parse tree + */ + void exitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. + * @param ctx the parse tree + */ + void enterAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. + * @param ctx the parse tree + */ + void exitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. + * @param ctx the parse tree + */ + void enterAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. + * @param ctx the parse tree + */ + void exitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. + * @param ctx the parse tree + */ + void enterAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. + * @param ctx the parse tree + */ + void exitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. + * @param ctx the parse tree + */ + void enterAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. + * @param ctx the parse tree + */ + void exitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. + * @param ctx the parse tree + */ + void enterAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. + * @param ctx the parse tree + */ + void exitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. + * @param ctx the parse tree + */ + void enterAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. + * @param ctx the parse tree + */ + void exitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. + * @param ctx the parse tree + */ + void enterAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. + * @param ctx the parse tree + */ + void exitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. + * @param ctx the parse tree + */ + void enterAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. + * @param ctx the parse tree + */ + void exitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. + * @param ctx the parse tree + */ + void enterAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. + * @param ctx the parse tree + */ + void exitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. + * @param ctx the parse tree + */ + void enterAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. + * @param ctx the parse tree + */ + void exitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. + * @param ctx the parse tree + */ + void enterAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. + * @param ctx the parse tree + */ + void exitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. + * @param ctx the parse tree + */ + void enterAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. + * @param ctx the parse tree + */ + void exitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. + * @param ctx the parse tree + */ + void enterAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. + * @param ctx the parse tree + */ + void exitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. + * @param ctx the parse tree + */ + void enterAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. + * @param ctx the parse tree + */ + void exitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. + * @param ctx the parse tree + */ + void enterAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. + * @param ctx the parse tree + */ + void exitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. + * @param ctx the parse tree + */ + void enterAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. + * @param ctx the parse tree + */ + void exitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. + * @param ctx the parse tree + */ + void enterAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. + * @param ctx the parse tree + */ + void exitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. + * @param ctx the parse tree + */ + void enterAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. + * @param ctx the parse tree + */ + void exitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. + * @param ctx the parse tree + */ + void enterAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. + * @param ctx the parse tree + */ + void exitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. + * @param ctx the parse tree + */ + void enterAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. + * @param ctx the parse tree + */ + void exitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_role_options}. + * @param ctx the parse tree + */ + void enterAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_role_options}. + * @param ctx the parse tree + */ + void exitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. + * @param ctx the parse tree + */ + void enterAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. + * @param ctx the parse tree + */ + void exitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. + * @param ctx the parse tree + */ + void enterAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. + * @param ctx the parse tree + */ + void exitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. + * @param ctx the parse tree + */ + void enterAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. + * @param ctx the parse tree + */ + void exitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. + * @param ctx the parse tree + */ + void enterAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. + * @param ctx the parse tree + */ + void exitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. + * @param ctx the parse tree + */ + void enterAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. + * @param ctx the parse tree + */ + void exitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. + * @param ctx the parse tree + */ + void enterAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. + * @param ctx the parse tree + */ + void exitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. + * @param ctx the parse tree + */ + void enterAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. + * @param ctx the parse tree + */ + void exitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. + * @param ctx the parse tree + */ + void enterAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. + * @param ctx the parse tree + */ + void exitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. + * @param ctx the parse tree + */ + void enterAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. + * @param ctx the parse tree + */ + void exitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. + * @param ctx the parse tree + */ + void enterAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. + * @param ctx the parse tree + */ + void exitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. + * @param ctx the parse tree + */ + void enterAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. + * @param ctx the parse tree + */ + void exitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. + * @param ctx the parse tree + */ + void enterAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. + * @param ctx the parse tree + */ + void exitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. + * @param ctx the parse tree + */ + void enterAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. + * @param ctx the parse tree + */ + void exitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. + * @param ctx the parse tree + */ + void enterAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. + * @param ctx the parse tree + */ + void exitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. + * @param ctx the parse tree + */ + void enterAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. + * @param ctx the parse tree + */ + void exitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. + * @param ctx the parse tree + */ + void enterAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. + * @param ctx the parse tree + */ + void exitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. + * @param ctx the parse tree + */ + void enterAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. + * @param ctx the parse tree + */ + void exitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. + * @param ctx the parse tree + */ + void enterAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. + * @param ctx the parse tree + */ + void exitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. + * @param ctx the parse tree + */ + void enterAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. + * @param ctx the parse tree + */ + void exitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. + * @param ctx the parse tree + */ + void enterAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. + * @param ctx the parse tree + */ + void exitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. + * @param ctx the parse tree + */ + void enterAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. + * @param ctx the parse tree + */ + void exitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#close_stmt}. + * @param ctx the parse tree + */ + void enterClose_stmt(PostgreSQLParser.Close_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#close_stmt}. + * @param ctx the parse tree + */ + void exitClose_stmt(PostgreSQLParser.Close_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. + * @param ctx the parse tree + */ + void enterCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. + * @param ctx the parse tree + */ + void exitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#comment_stmt}. + * @param ctx the parse tree + */ + void enterComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#comment_stmt}. + * @param ctx the parse tree + */ + void exitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#commit_stmt}. + * @param ctx the parse tree + */ + void enterCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#commit_stmt}. + * @param ctx the parse tree + */ + void exitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. + * @param ctx the parse tree + */ + void enterCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. + * @param ctx the parse tree + */ + void exitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#copy_stmt}. + * @param ctx the parse tree + */ + void enterCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#copy_stmt}. + * @param ctx the parse tree + */ + void exitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_stmt}. + * @param ctx the parse tree + */ + void enterCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_stmt}. + * @param ctx the parse tree + */ + void exitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. + * @param ctx the parse tree + */ + void enterCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. + * @param ctx the parse tree + */ + void exitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. + * @param ctx the parse tree + */ + void enterCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. + * @param ctx the parse tree + */ + void exitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. + * @param ctx the parse tree + */ + void enterCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. + * @param ctx the parse tree + */ + void exitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. + * @param ctx the parse tree + */ + void enterCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. + * @param ctx the parse tree + */ + void exitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. + * @param ctx the parse tree + */ + void enterCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. + * @param ctx the parse tree + */ + void exitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. + * @param ctx the parse tree + */ + void enterCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. + * @param ctx the parse tree + */ + void exitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. + * @param ctx the parse tree + */ + void enterCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. + * @param ctx the parse tree + */ + void exitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. + * @param ctx the parse tree + */ + void enterCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. + * @param ctx the parse tree + */ + void exitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#domain_constraint}. + * @param ctx the parse tree + */ + void enterDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#domain_constraint}. + * @param ctx the parse tree + */ + void exitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. + * @param ctx the parse tree + */ + void enterCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. + * @param ctx the parse tree + */ + void exitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. + * @param ctx the parse tree + */ + void enterCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. + * @param ctx the parse tree + */ + void exitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. + * @param ctx the parse tree + */ + void enterCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. + * @param ctx the parse tree + */ + void exitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. + * @param ctx the parse tree + */ + void enterCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. + * @param ctx the parse tree + */ + void exitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. + * @param ctx the parse tree + */ + void enterCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. + * @param ctx the parse tree + */ + void exitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. + * @param ctx the parse tree + */ + void enterCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. + * @param ctx the parse tree + */ + void exitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. + * @param ctx the parse tree + */ + void enterCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. + * @param ctx the parse tree + */ + void exitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. + * @param ctx the parse tree + */ + void enterCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. + * @param ctx the parse tree + */ + void exitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. + * @param ctx the parse tree + */ + void enterCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. + * @param ctx the parse tree + */ + void exitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. + * @param ctx the parse tree + */ + void enterCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. + * @param ctx the parse tree + */ + void exitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. + * @param ctx the parse tree + */ + void enterCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. + * @param ctx the parse tree + */ + void exitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. + * @param ctx the parse tree + */ + void enterCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. + * @param ctx the parse tree + */ + void exitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. + * @param ctx the parse tree + */ + void enterCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. + * @param ctx the parse tree + */ + void exitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. + * @param ctx the parse tree + */ + void enterCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. + * @param ctx the parse tree + */ + void exitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. + * @param ctx the parse tree + */ + void enterCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. + * @param ctx the parse tree + */ + void exitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. + * @param ctx the parse tree + */ + void enterCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. + * @param ctx the parse tree + */ + void exitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. + * @param ctx the parse tree + */ + void enterCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. + * @param ctx the parse tree + */ + void exitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_rule_event}. + * @param ctx the parse tree + */ + void enterCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_rule_event}. + * @param ctx the parse tree + */ + void exitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. + * @param ctx the parse tree + */ + void enterCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. + * @param ctx the parse tree + */ + void exitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. + * @param ctx the parse tree + */ + void enterCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. + * @param ctx the parse tree + */ + void exitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. + * @param ctx the parse tree + */ + void enterCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. + * @param ctx the parse tree + */ + void exitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. + * @param ctx the parse tree + */ + void enterCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. + * @param ctx the parse tree + */ + void exitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. + * @param ctx the parse tree + */ + void enterCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. + * @param ctx the parse tree + */ + void exitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. + * @param ctx the parse tree + */ + void enterCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. + * @param ctx the parse tree + */ + void exitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. + * @param ctx the parse tree + */ + void enterCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. + * @param ctx the parse tree + */ + void exitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. + * @param ctx the parse tree + */ + void enterCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. + * @param ctx the parse tree + */ + void exitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. + * @param ctx the parse tree + */ + void enterCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. + * @param ctx the parse tree + */ + void exitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. + * @param ctx the parse tree + */ + void enterCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. + * @param ctx the parse tree + */ + void exitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. + * @param ctx the parse tree + */ + void enterCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. + * @param ctx the parse tree + */ + void exitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. + * @param ctx the parse tree + */ + void enterCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. + * @param ctx the parse tree + */ + void exitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. + * @param ctx the parse tree + */ + void enterCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. + * @param ctx the parse tree + */ + void exitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. + * @param ctx the parse tree + */ + void enterCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. + * @param ctx the parse tree + */ + void exitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. + * @param ctx the parse tree + */ + void enterCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. + * @param ctx the parse tree + */ + void exitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. + * @param ctx the parse tree + */ + void enterCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. + * @param ctx the parse tree + */ + void exitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. + * @param ctx the parse tree + */ + void enterCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. + * @param ctx the parse tree + */ + void exitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. + * @param ctx the parse tree + */ + void enterCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. + * @param ctx the parse tree + */ + void exitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. + * @param ctx the parse tree + */ + void enterCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. + * @param ctx the parse tree + */ + void exitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. + * @param ctx the parse tree + */ + void enterDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. + * @param ctx the parse tree + */ + void exitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#declare_stmt}. + * @param ctx the parse tree + */ + void enterDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#declare_stmt}. + * @param ctx the parse tree + */ + void exitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#delete_stmt}. + * @param ctx the parse tree + */ + void enterDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#delete_stmt}. + * @param ctx the parse tree + */ + void exitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#discard_stmt}. + * @param ctx the parse tree + */ + void enterDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#discard_stmt}. + * @param ctx the parse tree + */ + void exitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_stmt}. + * @param ctx the parse tree + */ + void enterDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_stmt}. + * @param ctx the parse tree + */ + void exitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. + * @param ctx the parse tree + */ + void enterDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. + * @param ctx the parse tree + */ + void exitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. + * @param ctx the parse tree + */ + void enterDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. + * @param ctx the parse tree + */ + void exitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. + * @param ctx the parse tree + */ + void enterDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. + * @param ctx the parse tree + */ + void exitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. + * @param ctx the parse tree + */ + void enterDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. + * @param ctx the parse tree + */ + void exitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. + * @param ctx the parse tree + */ + void enterDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. + * @param ctx the parse tree + */ + void exitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. + * @param ctx the parse tree + */ + void enterDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. + * @param ctx the parse tree + */ + void exitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. + * @param ctx the parse tree + */ + void enterDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. + * @param ctx the parse tree + */ + void exitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. + * @param ctx the parse tree + */ + void enterDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. + * @param ctx the parse tree + */ + void exitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. + * @param ctx the parse tree + */ + void enterDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. + * @param ctx the parse tree + */ + void exitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. + * @param ctx the parse tree + */ + void enterDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. + * @param ctx the parse tree + */ + void exitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. + * @param ctx the parse tree + */ + void enterDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. + * @param ctx the parse tree + */ + void exitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. + * @param ctx the parse tree + */ + void enterDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. + * @param ctx the parse tree + */ + void exitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. + * @param ctx the parse tree + */ + void enterDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. + * @param ctx the parse tree + */ + void exitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. + * @param ctx the parse tree + */ + void enterDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. + * @param ctx the parse tree + */ + void exitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. + * @param ctx the parse tree + */ + void enterDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. + * @param ctx the parse tree + */ + void exitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. + * @param ctx the parse tree + */ + void enterDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. + * @param ctx the parse tree + */ + void exitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. + * @param ctx the parse tree + */ + void enterDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. + * @param ctx the parse tree + */ + void exitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. + * @param ctx the parse tree + */ + void enterDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. + * @param ctx the parse tree + */ + void exitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. + * @param ctx the parse tree + */ + void enterDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. + * @param ctx the parse tree + */ + void exitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. + * @param ctx the parse tree + */ + void enterDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. + * @param ctx the parse tree + */ + void exitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. + * @param ctx the parse tree + */ + void enterDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. + * @param ctx the parse tree + */ + void exitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. + * @param ctx the parse tree + */ + void enterDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. + * @param ctx the parse tree + */ + void exitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. + * @param ctx the parse tree + */ + void enterDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. + * @param ctx the parse tree + */ + void exitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. + * @param ctx the parse tree + */ + void enterDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. + * @param ctx the parse tree + */ + void exitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. + * @param ctx the parse tree + */ + void enterDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. + * @param ctx the parse tree + */ + void exitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. + * @param ctx the parse tree + */ + void enterDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. + * @param ctx the parse tree + */ + void exitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. + * @param ctx the parse tree + */ + void enterDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. + * @param ctx the parse tree + */ + void exitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. + * @param ctx the parse tree + */ + void enterDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. + * @param ctx the parse tree + */ + void exitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. + * @param ctx the parse tree + */ + void enterDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. + * @param ctx the parse tree + */ + void exitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. + * @param ctx the parse tree + */ + void enterDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. + * @param ctx the parse tree + */ + void exitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. + * @param ctx the parse tree + */ + void enterDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. + * @param ctx the parse tree + */ + void exitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. + * @param ctx the parse tree + */ + void enterDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. + * @param ctx the parse tree + */ + void exitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. + * @param ctx the parse tree + */ + void enterDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. + * @param ctx the parse tree + */ + void exitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. + * @param ctx the parse tree + */ + void enterDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. + * @param ctx the parse tree + */ + void exitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. + * @param ctx the parse tree + */ + void enterDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. + * @param ctx the parse tree + */ + void exitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. + * @param ctx the parse tree + */ + void enterDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. + * @param ctx the parse tree + */ + void exitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. + * @param ctx the parse tree + */ + void enterDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. + * @param ctx the parse tree + */ + void exitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. + * @param ctx the parse tree + */ + void enterDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. + * @param ctx the parse tree + */ + void exitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. + * @param ctx the parse tree + */ + void enterDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. + * @param ctx the parse tree + */ + void exitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. + * @param ctx the parse tree + */ + void enterDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. + * @param ctx the parse tree + */ + void exitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. + * @param ctx the parse tree + */ + void enterDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. + * @param ctx the parse tree + */ + void exitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#execute_stmt}. + * @param ctx the parse tree + */ + void enterExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#execute_stmt}. + * @param ctx the parse tree + */ + void exitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#explain_stmt}. + * @param ctx the parse tree + */ + void enterExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#explain_stmt}. + * @param ctx the parse tree + */ + void exitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. + * @param ctx the parse tree + */ + void enterFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. + * @param ctx the parse tree + */ + void exitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#grant_stmt}. + * @param ctx the parse tree + */ + void enterGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#grant_stmt}. + * @param ctx the parse tree + */ + void exitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. + * @param ctx the parse tree + */ + void enterImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. + * @param ctx the parse tree + */ + void exitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#insert_stmt}. + * @param ctx the parse tree + */ + void enterInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#insert_stmt}. + * @param ctx the parse tree + */ + void exitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#listen_stmt}. + * @param ctx the parse tree + */ + void enterListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#listen_stmt}. + * @param ctx the parse tree + */ + void exitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#load_stmt}. + * @param ctx the parse tree + */ + void enterLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#load_stmt}. + * @param ctx the parse tree + */ + void exitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#lock_stmt}. + * @param ctx the parse tree + */ + void enterLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#lock_stmt}. + * @param ctx the parse tree + */ + void exitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#move_stmt}. + * @param ctx the parse tree + */ + void enterMove_stmt(PostgreSQLParser.Move_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#move_stmt}. + * @param ctx the parse tree + */ + void exitMove_stmt(PostgreSQLParser.Move_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#notify_stmt}. + * @param ctx the parse tree + */ + void enterNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#notify_stmt}. + * @param ctx the parse tree + */ + void exitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. + * @param ctx the parse tree + */ + void enterPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. + * @param ctx the parse tree + */ + void exitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. + * @param ctx the parse tree + */ + void enterPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. + * @param ctx the parse tree + */ + void exitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. + * @param ctx the parse tree + */ + void enterReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. + * @param ctx the parse tree + */ + void exitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. + * @param ctx the parse tree + */ + void enterRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. + * @param ctx the parse tree + */ + void exitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. + * @param ctx the parse tree + */ + void enterReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. + * @param ctx the parse tree + */ + void exitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. + * @param ctx the parse tree + */ + void enterRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. + * @param ctx the parse tree + */ + void exitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#reset_stmt}. + * @param ctx the parse tree + */ + void enterReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#reset_stmt}. + * @param ctx the parse tree + */ + void exitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. + * @param ctx the parse tree + */ + void enterRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. + * @param ctx the parse tree + */ + void exitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. + * @param ctx the parse tree + */ + void enterRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. + * @param ctx the parse tree + */ + void exitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. + * @param ctx the parse tree + */ + void enterRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. + * @param ctx the parse tree + */ + void exitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. + * @param ctx the parse tree + */ + void enterRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. + * @param ctx the parse tree + */ + void exitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. + * @param ctx the parse tree + */ + void enterSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. + * @param ctx the parse tree + */ + void exitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. + * @param ctx the parse tree + */ + void enterSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. + * @param ctx the parse tree + */ + void exitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#select_stmt}. + * @param ctx the parse tree + */ + void enterSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#select_stmt}. + * @param ctx the parse tree + */ + void exitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. + * @param ctx the parse tree + */ + void enterSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. + * @param ctx the parse tree + */ + void exitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#with_clause}. + * @param ctx the parse tree + */ + void enterWith_clause(PostgreSQLParser.With_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#with_clause}. + * @param ctx the parse tree + */ + void exitWith_clause(PostgreSQLParser.With_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#with_expr}. + * @param ctx the parse tree + */ + void enterWith_expr(PostgreSQLParser.With_exprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#with_expr}. + * @param ctx the parse tree + */ + void exitWith_expr(PostgreSQLParser.With_exprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_stmt}. + * @param ctx the parse tree + */ + void enterSet_stmt(PostgreSQLParser.Set_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_stmt}. + * @param ctx the parse tree + */ + void exitSet_stmt(PostgreSQLParser.Set_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. + * @param ctx the parse tree + */ + void enterSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. + * @param ctx the parse tree + */ + void exitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. + * @param ctx the parse tree + */ + void enterSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. + * @param ctx the parse tree + */ + void exitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. + * @param ctx the parse tree + */ + void enterSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. + * @param ctx the parse tree + */ + void exitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#transaction_mode}. + * @param ctx the parse tree + */ + void enterTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#transaction_mode}. + * @param ctx the parse tree + */ + void exitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. + * @param ctx the parse tree + */ + void enterTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. + * @param ctx the parse tree + */ + void exitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. + * @param ctx the parse tree + */ + void enterSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. + * @param ctx the parse tree + */ + void exitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#show_stmt}. + * @param ctx the parse tree + */ + void enterShow_stmt(PostgreSQLParser.Show_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#show_stmt}. + * @param ctx the parse tree + */ + void exitShow_stmt(PostgreSQLParser.Show_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. + * @param ctx the parse tree + */ + void enterTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. + * @param ctx the parse tree + */ + void exitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. + * @param ctx the parse tree + */ + void enterUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. + * @param ctx the parse tree + */ + void exitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#update_stmt}. + * @param ctx the parse tree + */ + void enterUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#update_stmt}. + * @param ctx the parse tree + */ + void exitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. + * @param ctx the parse tree + */ + void enterVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. + * @param ctx the parse tree + */ + void exitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. + * @param ctx the parse tree + */ + void enterVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. + * @param ctx the parse tree + */ + void exitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. + * @param ctx the parse tree + */ + void enterVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. + * @param ctx the parse tree + */ + void exitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#values_stmt}. + * @param ctx the parse tree + */ + void enterValues_stmt(PostgreSQLParser.Values_stmtContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#values_stmt}. + * @param ctx the parse tree + */ + void exitValues_stmt(PostgreSQLParser.Values_stmtContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#selector_clause}. + * @param ctx the parse tree + */ + void enterSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#selector_clause}. + * @param ctx the parse tree + */ + void exitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#from_clause}. + * @param ctx the parse tree + */ + void enterFrom_clause(PostgreSQLParser.From_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#from_clause}. + * @param ctx the parse tree + */ + void exitFrom_clause(PostgreSQLParser.From_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#where_clause}. + * @param ctx the parse tree + */ + void enterWhere_clause(PostgreSQLParser.Where_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#where_clause}. + * @param ctx the parse tree + */ + void exitWhere_clause(PostgreSQLParser.Where_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#group_by_clause}. + * @param ctx the parse tree + */ + void enterGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#group_by_clause}. + * @param ctx the parse tree + */ + void exitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#grouping_elem}. + * @param ctx the parse tree + */ + void enterGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#grouping_elem}. + * @param ctx the parse tree + */ + void exitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. + * @param ctx the parse tree + */ + void enterGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. + * @param ctx the parse tree + */ + void exitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#having_clause}. + * @param ctx the parse tree + */ + void enterHaving_clause(PostgreSQLParser.Having_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#having_clause}. + * @param ctx the parse tree + */ + void exitHaving_clause(PostgreSQLParser.Having_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_list}. + * @param ctx the parse tree + */ + void enterColumn_list(PostgreSQLParser.Column_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_list}. + * @param ctx the parse tree + */ + void exitColumn_list(PostgreSQLParser.Column_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#explain_parameter}. + * @param ctx the parse tree + */ + void enterExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#explain_parameter}. + * @param ctx the parse tree + */ + void exitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame}. + * @param ctx the parse tree + */ + void enterFrame(PostgreSQLParser.FrameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame}. + * @param ctx the parse tree + */ + void exitFrame(PostgreSQLParser.FrameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame_start}. + * @param ctx the parse tree + */ + void enterFrame_start(PostgreSQLParser.Frame_startContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame_start}. + * @param ctx the parse tree + */ + void exitFrame_start(PostgreSQLParser.Frame_startContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame_end}. + * @param ctx the parse tree + */ + void enterFrame_end(PostgreSQLParser.Frame_endContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame_end}. + * @param ctx the parse tree + */ + void exitFrame_end(PostgreSQLParser.Frame_endContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#frame_clause}. + * @param ctx the parse tree + */ + void enterFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#frame_clause}. + * @param ctx the parse tree + */ + void exitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#window_definition}. + * @param ctx the parse tree + */ + void enterWindow_definition(PostgreSQLParser.Window_definitionContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#window_definition}. + * @param ctx the parse tree + */ + void exitWindow_definition(PostgreSQLParser.Window_definitionContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#window_clause}. + * @param ctx the parse tree + */ + void enterWindow_clause(PostgreSQLParser.Window_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#window_clause}. + * @param ctx the parse tree + */ + void exitWindow_clause(PostgreSQLParser.Window_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#combine_clause}. + * @param ctx the parse tree + */ + void enterCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#combine_clause}. + * @param ctx the parse tree + */ + void exitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#order_by_clause}. + * @param ctx the parse tree + */ + void enterOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#order_by_clause}. + * @param ctx the parse tree + */ + void exitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#order_by_item}. + * @param ctx the parse tree + */ + void enterOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#order_by_item}. + * @param ctx the parse tree + */ + void exitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#limit_clause}. + * @param ctx the parse tree + */ + void enterLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#limit_clause}. + * @param ctx the parse tree + */ + void exitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#offset_clause}. + * @param ctx the parse tree + */ + void enterOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#offset_clause}. + * @param ctx the parse tree + */ + void exitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#fetch_clause}. + * @param ctx the parse tree + */ + void enterFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#fetch_clause}. + * @param ctx the parse tree + */ + void exitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#for_clause}. + * @param ctx the parse tree + */ + void enterFor_clause(PostgreSQLParser.For_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#for_clause}. + * @param ctx the parse tree + */ + void exitFor_clause(PostgreSQLParser.For_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#updater_clause}. + * @param ctx the parse tree + */ + void enterUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#updater_clause}. + * @param ctx the parse tree + */ + void exitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#updater_expr}. + * @param ctx the parse tree + */ + void enterUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#updater_expr}. + * @param ctx the parse tree + */ + void exitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#returning_clause}. + * @param ctx the parse tree + */ + void enterReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#returning_clause}. + * @param ctx the parse tree + */ + void exitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#expr}. + * @param ctx the parse tree + */ + void enterExpr(PostgreSQLParser.ExprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#expr}. + * @param ctx the parse tree + */ + void exitExpr(PostgreSQLParser.ExprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#bool_expr}. + * @param ctx the parse tree + */ + void enterBool_expr(PostgreSQLParser.Bool_exprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#bool_expr}. + * @param ctx the parse tree + */ + void exitBool_expr(PostgreSQLParser.Bool_exprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#case_expr}. + * @param ctx the parse tree + */ + void enterCase_expr(PostgreSQLParser.Case_exprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#case_expr}. + * @param ctx the parse tree + */ + void exitCase_expr(PostgreSQLParser.Case_exprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#expr_list}. + * @param ctx the parse tree + */ + void enterExpr_list(PostgreSQLParser.Expr_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#expr_list}. + * @param ctx the parse tree + */ + void exitExpr_list(PostgreSQLParser.Expr_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#expr_list_list}. + * @param ctx the parse tree + */ + void enterExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#expr_list_list}. + * @param ctx the parse tree + */ + void exitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. + * @param ctx the parse tree + */ + void enterFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. + * @param ctx the parse tree + */ + void exitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. + * @param ctx the parse tree + */ + void enterFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. + * @param ctx the parse tree + */ + void exitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig}. + * @param ctx the parse tree + */ + void enterFunc_sig(PostgreSQLParser.Func_sigContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig}. + * @param ctx the parse tree + */ + void exitFunc_sig(PostgreSQLParser.Func_sigContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_sig_list}. + * @param ctx the parse tree + */ + void enterFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_sig_list}. + * @param ctx the parse tree + */ + void exitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#type_name}. + * @param ctx the parse tree + */ + void enterType_name(PostgreSQLParser.Type_nameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#type_name}. + * @param ctx the parse tree + */ + void exitType_name(PostgreSQLParser.Type_nameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#timezone}. + * @param ctx the parse tree + */ + void enterTimezone(PostgreSQLParser.TimezoneContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#timezone}. + * @param ctx the parse tree + */ + void exitTimezone(PostgreSQLParser.TimezoneContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#oper}. + * @param ctx the parse tree + */ + void enterOper(PostgreSQLParser.OperContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#oper}. + * @param ctx the parse tree + */ + void exitOper(PostgreSQLParser.OperContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#aggregate}. + * @param ctx the parse tree + */ + void enterAggregate(PostgreSQLParser.AggregateContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#aggregate}. + * @param ctx the parse tree + */ + void exitAggregate(PostgreSQLParser.AggregateContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#name_}. + * @param ctx the parse tree + */ + void enterName_(PostgreSQLParser.Name_Context ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#name_}. + * @param ctx the parse tree + */ + void exitName_(PostgreSQLParser.Name_Context ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#name_list}. + * @param ctx the parse tree + */ + void enterName_list(PostgreSQLParser.Name_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#name_list}. + * @param ctx the parse tree + */ + void exitName_list(PostgreSQLParser.Name_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#identifier_list}. + * @param ctx the parse tree + */ + void enterIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#identifier_list}. + * @param ctx the parse tree + */ + void exitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#option_expr}. + * @param ctx the parse tree + */ + void enterOption_expr(PostgreSQLParser.Option_exprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#option_expr}. + * @param ctx the parse tree + */ + void exitOption_expr(PostgreSQLParser.Option_exprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#option_list}. + * @param ctx the parse tree + */ + void enterOption_list(PostgreSQLParser.Option_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#option_list}. + * @param ctx the parse tree + */ + void exitOption_list(PostgreSQLParser.Option_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#table_name_}. + * @param ctx the parse tree + */ + void enterTable_name_(PostgreSQLParser.Table_name_Context ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#table_name_}. + * @param ctx the parse tree + */ + void exitTable_name_(PostgreSQLParser.Table_name_Context ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#data_type}. + * @param ctx the parse tree + */ + void enterData_type(PostgreSQLParser.Data_typeContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#data_type}. + * @param ctx the parse tree + */ + void exitData_type(PostgreSQLParser.Data_typeContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#data_type_list}. + * @param ctx the parse tree + */ + void enterData_type_list(PostgreSQLParser.Data_type_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#data_type_list}. + * @param ctx the parse tree + */ + void exitData_type_list(PostgreSQLParser.Data_type_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#index_method}. + * @param ctx the parse tree + */ + void enterIndex_method(PostgreSQLParser.Index_methodContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#index_method}. + * @param ctx the parse tree + */ + void exitIndex_method(PostgreSQLParser.Index_methodContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_name}. + * @param ctx the parse tree + */ + void enterFunc_name(PostgreSQLParser.Func_nameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_name}. + * @param ctx the parse tree + */ + void exitFunc_name(PostgreSQLParser.Func_nameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#func_call}. + * @param ctx the parse tree + */ + void enterFunc_call(PostgreSQLParser.Func_callContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#func_call}. + * @param ctx the parse tree + */ + void exitFunc_call(PostgreSQLParser.Func_callContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. + * @param ctx the parse tree + */ + void enterArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. + * @param ctx the parse tree + */ + void exitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#from_item}. + * @param ctx the parse tree + */ + void enterFrom_item(PostgreSQLParser.From_itemContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#from_item}. + * @param ctx the parse tree + */ + void exitFrom_item(PostgreSQLParser.From_itemContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#with_column_alias}. + * @param ctx the parse tree + */ + void enterWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#with_column_alias}. + * @param ctx the parse tree + */ + void exitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#join_type}. + * @param ctx the parse tree + */ + void enterJoin_type(PostgreSQLParser.Join_typeContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#join_type}. + * @param ctx the parse tree + */ + void exitJoin_type(PostgreSQLParser.Join_typeContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#join_clause}. + * @param ctx the parse tree + */ + void enterJoin_clause(PostgreSQLParser.Join_clauseContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#join_clause}. + * @param ctx the parse tree + */ + void exitJoin_clause(PostgreSQLParser.Join_clauseContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#predicate}. + * @param ctx the parse tree + */ + void enterPredicate(PostgreSQLParser.PredicateContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#predicate}. + * @param ctx the parse tree + */ + void exitPredicate(PostgreSQLParser.PredicateContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. + * @param ctx the parse tree + */ + void enterAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. + * @param ctx the parse tree + */ + void exitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_constraint}. + * @param ctx the parse tree + */ + void enterColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_constraint}. + * @param ctx the parse tree + */ + void exitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_constraints}. + * @param ctx the parse tree + */ + void enterColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_constraints}. + * @param ctx the parse tree + */ + void exitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#index_parameters}. + * @param ctx the parse tree + */ + void enterIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#index_parameters}. + * @param ctx the parse tree + */ + void exitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#exclude_element}. + * @param ctx the parse tree + */ + void enterExclude_element(PostgreSQLParser.Exclude_elementContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#exclude_element}. + * @param ctx the parse tree + */ + void exitExclude_element(PostgreSQLParser.Exclude_elementContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#table_constraint}. + * @param ctx the parse tree + */ + void enterTable_constraint(PostgreSQLParser.Table_constraintContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#table_constraint}. + * @param ctx the parse tree + */ + void exitTable_constraint(PostgreSQLParser.Table_constraintContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#role_name}. + * @param ctx the parse tree + */ + void enterRole_name(PostgreSQLParser.Role_nameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#role_name}. + * @param ctx the parse tree + */ + void exitRole_name(PostgreSQLParser.Role_nameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#role_name_list}. + * @param ctx the parse tree + */ + void enterRole_name_list(PostgreSQLParser.Role_name_listContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#role_name_list}. + * @param ctx the parse tree + */ + void exitRole_name_list(PostgreSQLParser.Role_name_listContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#param_value}. + * @param ctx the parse tree + */ + void enterParam_value(PostgreSQLParser.Param_valueContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#param_value}. + * @param ctx the parse tree + */ + void exitParam_value(PostgreSQLParser.Param_valueContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. + * @param ctx the parse tree + */ + void enterNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. + * @param ctx the parse tree + */ + void exitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#identifier}. + * @param ctx the parse tree + */ + void enterIdentifier(PostgreSQLParser.IdentifierContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#identifier}. + * @param ctx the parse tree + */ + void exitIdentifier(PostgreSQLParser.IdentifierContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. + * @param ctx the parse tree + */ + void enterTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. + * @param ctx the parse tree + */ + void exitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#todo_implement}. + * @param ctx the parse tree + */ + void enterTodo_implement(PostgreSQLParser.Todo_implementContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#todo_implement}. + * @param ctx the parse tree + */ + void exitTodo_implement(PostgreSQLParser.Todo_implementContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#correlation_name}. + * @param ctx the parse tree + */ + void enterCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#correlation_name}. + * @param ctx the parse tree + */ + void exitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_name}. + * @param ctx the parse tree + */ + void enterColumn_name(PostgreSQLParser.Column_nameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_name}. + * @param ctx the parse tree + */ + void exitColumn_name(PostgreSQLParser.Column_nameContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#alias}. + * @param ctx the parse tree + */ + void enterAlias(PostgreSQLParser.AliasContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#alias}. + * @param ctx the parse tree + */ + void exitAlias(PostgreSQLParser.AliasContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_alias}. + * @param ctx the parse tree + */ + void enterColumn_alias(PostgreSQLParser.Column_aliasContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_alias}. + * @param ctx the parse tree + */ + void exitColumn_alias(PostgreSQLParser.Column_aliasContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#column_definition}. + * @param ctx the parse tree + */ + void enterColumn_definition(PostgreSQLParser.Column_definitionContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#column_definition}. + * @param ctx the parse tree + */ + void exitColumn_definition(PostgreSQLParser.Column_definitionContext ctx); + /** + * Enter a parse tree produced by {@link PostgreSQLParser#window_name}. + * @param ctx the parse tree + */ + void enterWindow_name(PostgreSQLParser.Window_nameContext ctx); + /** + * Exit a parse tree produced by {@link PostgreSQLParser#window_name}. + * @param ctx the parse tree + */ + void exitWindow_name(PostgreSQLParser.Window_nameContext ctx); } \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java index d5021d2..f297022 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParserVisitor.java @@ -1,6 +1,5 @@ // Generated from com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 by ANTLR 4.7 package com.github.bigdata.sql.antlr4.pg; - import org.antlr.v4.runtime.tree.ParseTreeVisitor; /** @@ -8,2126 +7,1597 @@ * by {@link PostgreSQLParser}. * * @param The return type of the visit operation. Use {@link Void} for - * operations with no return type. + * operations with no return type. */ public interface PostgreSQLParserVisitor extends ParseTreeVisitor { - /** - * Visit a parse tree produced by {@link PostgreSQLParser#root}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRoot(PostgreSQLParser.RootContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitStmt(PostgreSQLParser.StmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#abort_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_role_options}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#close_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitClose_stmt(PostgreSQLParser.Close_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#comment_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#commit_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#copy_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#domain_constraint}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_rule_event}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#declare_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#delete_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#discard_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#execute_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#explain_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#grant_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#insert_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#listen_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#load_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#lock_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#move_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitMove_stmt(PostgreSQLParser.Move_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#notify_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#reset_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#select_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#with_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWith_clause(PostgreSQLParser.With_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#with_expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWith_expr(PostgreSQLParser.With_exprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#set_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSet_stmt(PostgreSQLParser.Set_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#transaction_mode}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#show_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitShow_stmt(PostgreSQLParser.Show_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#update_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#values_stmt}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitValues_stmt(PostgreSQLParser.Values_stmtContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#selector_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#from_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFrom_clause(PostgreSQLParser.From_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#where_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWhere_clause(PostgreSQLParser.Where_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#group_by_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#grouping_elem}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#having_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitHaving_clause(PostgreSQLParser.Having_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#column_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitColumn_list(PostgreSQLParser.Column_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#explain_parameter}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#frame}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFrame(PostgreSQLParser.FrameContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#frame_start}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFrame_start(PostgreSQLParser.Frame_startContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#frame_end}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFrame_end(PostgreSQLParser.Frame_endContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#frame_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#window_definition}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWindow_definition(PostgreSQLParser.Window_definitionContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#window_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWindow_clause(PostgreSQLParser.Window_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#combine_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#order_by_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#order_by_item}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#limit_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#offset_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#fetch_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#for_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFor_clause(PostgreSQLParser.For_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#updater_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#updater_expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#returning_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExpr(PostgreSQLParser.ExprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#bool_expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitBool_expr(PostgreSQLParser.Bool_exprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#case_expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCase_expr(PostgreSQLParser.Case_exprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#expr_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExpr_list(PostgreSQLParser.Expr_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#expr_list_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#func_sig}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunc_sig(PostgreSQLParser.Func_sigContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#type_name}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitType_name(PostgreSQLParser.Type_nameContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#timezone}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTimezone(PostgreSQLParser.TimezoneContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#oper}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitOper(PostgreSQLParser.OperContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#aggregate}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAggregate(PostgreSQLParser.AggregateContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#name_}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitName_(PostgreSQLParser.Name_Context ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#name_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitName_list(PostgreSQLParser.Name_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#identifier_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#option_expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitOption_expr(PostgreSQLParser.Option_exprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#option_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitOption_list(PostgreSQLParser.Option_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#table_name_}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTable_name_(PostgreSQLParser.Table_name_Context ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#data_type}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitData_type(PostgreSQLParser.Data_typeContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#data_type_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitData_type_list(PostgreSQLParser.Data_type_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#index_method}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitIndex_method(PostgreSQLParser.Index_methodContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#func_name}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunc_name(PostgreSQLParser.Func_nameContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#func_call}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunc_call(PostgreSQLParser.Func_callContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#from_item}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitFrom_item(PostgreSQLParser.From_itemContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#with_column_alias}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#join_type}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitJoin_type(PostgreSQLParser.Join_typeContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#join_clause}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitJoin_clause(PostgreSQLParser.Join_clauseContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#predicate}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitPredicate(PostgreSQLParser.PredicateContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#column_constraint}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#column_constraints}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#index_parameters}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#exclude_element}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitExclude_element(PostgreSQLParser.Exclude_elementContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#table_constraint}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTable_constraint(PostgreSQLParser.Table_constraintContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#role_name}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRole_name(PostgreSQLParser.Role_nameContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#role_name_list}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitRole_name_list(PostgreSQLParser.Role_name_listContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#param_value}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitParam_value(PostgreSQLParser.Param_valueContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#identifier}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitIdentifier(PostgreSQLParser.IdentifierContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#todo_implement}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitTodo_implement(PostgreSQLParser.Todo_implementContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#correlation_name}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#column_name}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitColumn_name(PostgreSQLParser.Column_nameContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#alias}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitAlias(PostgreSQLParser.AliasContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#column_alias}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitColumn_alias(PostgreSQLParser.Column_aliasContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#column_definition}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitColumn_definition(PostgreSQLParser.Column_definitionContext ctx); - - /** - * Visit a parse tree produced by {@link PostgreSQLParser#window_name}. - * - * @param ctx the parse tree - * @return the visitor result - */ - T visitWindow_name(PostgreSQLParser.Window_nameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#root}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRoot(PostgreSQLParser.RootContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStmt(PostgreSQLParser.StmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#abort_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAbort_stmt(PostgreSQLParser.Abort_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_stmt(PostgreSQLParser.Alter_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_aggregate_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_aggregate_stmt(PostgreSQLParser.Alter_aggregate_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_collation_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_collation_stmt(PostgreSQLParser.Alter_collation_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_conversion_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_conversion_stmt(PostgreSQLParser.Alter_conversion_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_database_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_database_stmt(PostgreSQLParser.Alter_database_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_default_privileges_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_default_privileges_stmt(PostgreSQLParser.Alter_default_privileges_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_domain_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_domain_stmt(PostgreSQLParser.Alter_domain_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_event_trigger_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_event_trigger_stmt(PostgreSQLParser.Alter_event_trigger_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_extension_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_extension_stmt(PostgreSQLParser.Alter_extension_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_data_wrapper_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_data_wrapper_stmt(PostgreSQLParser.Alter_foreign_data_wrapper_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_table_action(PostgreSQLParser.Alter_foreign_table_actionContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_action_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_table_action_list(PostgreSQLParser.Alter_foreign_table_action_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_foreign_table_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_foreign_table_stmt(PostgreSQLParser.Alter_foreign_table_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_function_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_function_stmt(PostgreSQLParser.Alter_function_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_group_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_group_stmt(PostgreSQLParser.Alter_group_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_index_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_index_stmt(PostgreSQLParser.Alter_index_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_language_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_language_stmt(PostgreSQLParser.Alter_language_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_large_object_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_large_object_stmt(PostgreSQLParser.Alter_large_object_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_materialize_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_materialize_view_stmt(PostgreSQLParser.Alter_materialize_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_operator_stmt(PostgreSQLParser.Alter_operator_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_class_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_operator_class_stmt(PostgreSQLParser.Alter_operator_class_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_operator_family_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_operator_family_stmt(PostgreSQLParser.Alter_operator_family_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_policy_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_policy_stmt(PostgreSQLParser.Alter_policy_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_publication_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_publication_stmt(PostgreSQLParser.Alter_publication_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_role_options}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_role_options(PostgreSQLParser.Alter_role_optionsContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_role_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_role_stmt(PostgreSQLParser.Alter_role_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_rule_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_rule_stmt(PostgreSQLParser.Alter_rule_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_schema_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_schema_stmt(PostgreSQLParser.Alter_schema_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_sequence_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_sequence_stmt(PostgreSQLParser.Alter_sequence_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_server_options_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_server_options_list(PostgreSQLParser.Alter_server_options_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_server_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_server_stmt(PostgreSQLParser.Alter_server_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_statistics_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_statistics_stmt(PostgreSQLParser.Alter_statistics_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_subscription_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_subscription_stmt(PostgreSQLParser.Alter_subscription_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_system_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_system_stmt(PostgreSQLParser.Alter_system_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_table_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_table_stmt(PostgreSQLParser.Alter_table_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_tablespace_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_tablespace_stmt(PostgreSQLParser.Alter_tablespace_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_config_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_config_stmt(PostgreSQLParser.Alter_text_search_config_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_dict_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_dict_stmt(PostgreSQLParser.Alter_text_search_dict_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_parser_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_parser_stmt(PostgreSQLParser.Alter_text_search_parser_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_text_search_template_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_text_search_template_stmt(PostgreSQLParser.Alter_text_search_template_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_trigger_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_trigger_stmt(PostgreSQLParser.Alter_trigger_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_type_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_type_stmt(PostgreSQLParser.Alter_type_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_user_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_user_stmt(PostgreSQLParser.Alter_user_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_user_mapping_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_user_mapping_stmt(PostgreSQLParser.Alter_user_mapping_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alter_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlter_view_stmt(PostgreSQLParser.Alter_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#analyze_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnalyze_stmt(PostgreSQLParser.Analyze_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#close_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClose_stmt(PostgreSQLParser.Close_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#cluster_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCluster_stmt(PostgreSQLParser.Cluster_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#comment_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitComment_stmt(PostgreSQLParser.Comment_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#commit_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCommit_stmt(PostgreSQLParser.Commit_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#commit_prepared_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCommit_prepared_stmt(PostgreSQLParser.Commit_prepared_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#copy_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCopy_stmt(PostgreSQLParser.Copy_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_stmt(PostgreSQLParser.Create_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_access_method_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_access_method_stmt(PostgreSQLParser.Create_access_method_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_aggregate_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_aggregate_stmt(PostgreSQLParser.Create_aggregate_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_cast_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_cast_stmt(PostgreSQLParser.Create_cast_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_opt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_collation_opt(PostgreSQLParser.Create_collation_optContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_opt_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_collation_opt_list(PostgreSQLParser.Create_collation_opt_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_collation_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_collation_stmt(PostgreSQLParser.Create_collation_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_conversion_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_conversion_stmt(PostgreSQLParser.Create_conversion_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_database_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_database_stmt(PostgreSQLParser.Create_database_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#domain_constraint}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDomain_constraint(PostgreSQLParser.Domain_constraintContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_domain_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_domain_stmt(PostgreSQLParser.Create_domain_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_cond}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_event_trigger_cond(PostgreSQLParser.Create_event_trigger_condContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_event_trigger_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_event_trigger_stmt(PostgreSQLParser.Create_event_trigger_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_options}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_foreign_data_options(PostgreSQLParser.Create_foreign_data_optionsContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_data_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_foreign_data_stmt(PostgreSQLParser.Create_foreign_data_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_foreign_table_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_foreign_table_stmt(PostgreSQLParser.Create_foreign_table_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_function_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_function_stmt(PostgreSQLParser.Create_function_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_group_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_group_stmt(PostgreSQLParser.Create_group_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_index_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_index_stmt(PostgreSQLParser.Create_index_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_language_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_language_stmt(PostgreSQLParser.Create_language_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_materialized_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_materialized_view_stmt(PostgreSQLParser.Create_materialized_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_stmt(PostgreSQLParser.Create_operator_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_class_opt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_class_opt(PostgreSQLParser.Create_operator_class_optContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_class_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_class_stmt(PostgreSQLParser.Create_operator_class_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_operator_family_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_operator_family_stmt(PostgreSQLParser.Create_operator_family_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_policy_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_policy_stmt(PostgreSQLParser.Create_policy_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_role_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_role_stmt(PostgreSQLParser.Create_role_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_rule_event}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_rule_event(PostgreSQLParser.Create_rule_eventContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_rule_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_rule_stmt(PostgreSQLParser.Create_rule_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_schema_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_schema_stmt(PostgreSQLParser.Create_schema_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_sequence_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_sequence_stmt(PostgreSQLParser.Create_sequence_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_server_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_server_stmt(PostgreSQLParser.Create_server_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_statistics_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_statistics_stmt(PostgreSQLParser.Create_statistics_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_subscription_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_subscription_stmt(PostgreSQLParser.Create_subscription_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_table_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_table_stmt(PostgreSQLParser.Create_table_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_table_as_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_table_as_stmt(PostgreSQLParser.Create_table_as_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_tablespace_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_tablespace_stmt(PostgreSQLParser.Create_tablespace_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_config_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_config_stmt(PostgreSQLParser.Create_text_search_config_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_dict_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_dict_stmt(PostgreSQLParser.Create_text_search_dict_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_parser_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_parser_stmt(PostgreSQLParser.Create_text_search_parser_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_text_search_template_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_text_search_template_stmt(PostgreSQLParser.Create_text_search_template_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_transform_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_transform_stmt(PostgreSQLParser.Create_transform_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_trigger_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_trigger_stmt(PostgreSQLParser.Create_trigger_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_type_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_type_stmt(PostgreSQLParser.Create_type_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_user_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_user_stmt(PostgreSQLParser.Create_user_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_user_mapping_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_user_mapping_stmt(PostgreSQLParser.Create_user_mapping_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#create_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreate_view_stmt(PostgreSQLParser.Create_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#deallocate_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeallocate_stmt(PostgreSQLParser.Deallocate_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#declare_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeclare_stmt(PostgreSQLParser.Declare_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#delete_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDelete_stmt(PostgreSQLParser.Delete_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#discard_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDiscard_stmt(PostgreSQLParser.Discard_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_stmt(PostgreSQLParser.Drop_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_access_method_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_access_method_stmt(PostgreSQLParser.Drop_access_method_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_aggregate_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_aggregate_stmt(PostgreSQLParser.Drop_aggregate_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_cast_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_cast_stmt(PostgreSQLParser.Drop_cast_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_collation_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_collation_stmt(PostgreSQLParser.Drop_collation_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_conversion_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_conversion_stmt(PostgreSQLParser.Drop_conversion_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_database_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_database_stmt(PostgreSQLParser.Drop_database_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_domain_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_domain_stmt(PostgreSQLParser.Drop_domain_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_event_trigger_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_event_trigger_stmt(PostgreSQLParser.Drop_event_trigger_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_extension_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_extension_stmt(PostgreSQLParser.Drop_extension_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_foreign_data_wrapper_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_foreign_data_wrapper_stmt(PostgreSQLParser.Drop_foreign_data_wrapper_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_foreign_table_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_foreign_table_stmt(PostgreSQLParser.Drop_foreign_table_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_function_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_function_stmt(PostgreSQLParser.Drop_function_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_group_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_group_stmt(PostgreSQLParser.Drop_group_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_index_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_index_stmt(PostgreSQLParser.Drop_index_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_language_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_language_stmt(PostgreSQLParser.Drop_language_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_materialized_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_materialized_view_stmt(PostgreSQLParser.Drop_materialized_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_operator_stmt(PostgreSQLParser.Drop_operator_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_class_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_operator_class_stmt(PostgreSQLParser.Drop_operator_class_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_operator_family_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_operator_family_stmt(PostgreSQLParser.Drop_operator_family_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_owned_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_owned_stmt(PostgreSQLParser.Drop_owned_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_policy_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_policy_stmt(PostgreSQLParser.Drop_policy_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_publication_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_publication_stmt(PostgreSQLParser.Drop_publication_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_role_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_role_stmt(PostgreSQLParser.Drop_role_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_rule_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_rule_stmt(PostgreSQLParser.Drop_rule_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_schema_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_schema_stmt(PostgreSQLParser.Drop_schema_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_sequence_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_sequence_stmt(PostgreSQLParser.Drop_sequence_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_server_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_server_stmt(PostgreSQLParser.Drop_server_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_statistics_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_statistics_stmt(PostgreSQLParser.Drop_statistics_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_subscription_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_subscription_stmt(PostgreSQLParser.Drop_subscription_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_table_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_table_stmt(PostgreSQLParser.Drop_table_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_tablespace_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_tablespace_stmt(PostgreSQLParser.Drop_tablespace_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_config_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_config_stmt(PostgreSQLParser.Drop_text_search_config_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_dict_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_dict_stmt(PostgreSQLParser.Drop_text_search_dict_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_parser_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_parser_stmt(PostgreSQLParser.Drop_text_search_parser_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_text_search_template_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_text_search_template_stmt(PostgreSQLParser.Drop_text_search_template_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_transform_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_transform_stmt(PostgreSQLParser.Drop_transform_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_trigger_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_trigger_stmt(PostgreSQLParser.Drop_trigger_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_type_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_type_stmt(PostgreSQLParser.Drop_type_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_user_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_user_stmt(PostgreSQLParser.Drop_user_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_user_mapping_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_user_mapping_stmt(PostgreSQLParser.Drop_user_mapping_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#drop_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDrop_view_stmt(PostgreSQLParser.Drop_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#execute_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExecute_stmt(PostgreSQLParser.Execute_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#explain_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplain_stmt(PostgreSQLParser.Explain_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#fetch_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFetch_stmt(PostgreSQLParser.Fetch_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#grant_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrant_stmt(PostgreSQLParser.Grant_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#import_foreign_schema_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImport_foreign_schema_stmt(PostgreSQLParser.Import_foreign_schema_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#insert_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInsert_stmt(PostgreSQLParser.Insert_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#listen_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitListen_stmt(PostgreSQLParser.Listen_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#load_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLoad_stmt(PostgreSQLParser.Load_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#lock_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLock_stmt(PostgreSQLParser.Lock_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#move_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMove_stmt(PostgreSQLParser.Move_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#notify_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNotify_stmt(PostgreSQLParser.Notify_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#prepare_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrepare_stmt(PostgreSQLParser.Prepare_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#prepare_transaction_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrepare_transaction_stmt(PostgreSQLParser.Prepare_transaction_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#reassign_owned_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReassign_owned_stmt(PostgreSQLParser.Reassign_owned_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#refresh_materialized_view_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRefresh_materialized_view_stmt(PostgreSQLParser.Refresh_materialized_view_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#reindex_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReindex_stmt(PostgreSQLParser.Reindex_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#release_savepoint_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelease_savepoint_stmt(PostgreSQLParser.Release_savepoint_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#reset_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReset_stmt(PostgreSQLParser.Reset_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#revoke_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRevoke_stmt(PostgreSQLParser.Revoke_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#rollback_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback_stmt(PostgreSQLParser.Rollback_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#rollback_prepared_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback_prepared_stmt(PostgreSQLParser.Rollback_prepared_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#rollback_to_savepoint_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRollback_to_savepoint_stmt(PostgreSQLParser.Rollback_to_savepoint_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#savepoint_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSavepoint_stmt(PostgreSQLParser.Savepoint_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#security_label_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSecurity_label_stmt(PostgreSQLParser.Security_label_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#select_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelect_stmt(PostgreSQLParser.Select_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#select_into_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelect_into_stmt(PostgreSQLParser.Select_into_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#with_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith_clause(PostgreSQLParser.With_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#with_expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith_expr(PostgreSQLParser.With_exprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_stmt(PostgreSQLParser.Set_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_constraints_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_constraints_stmt(PostgreSQLParser.Set_constraints_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_role_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_role_stmt(PostgreSQLParser.Set_role_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_session_authorization_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_session_authorization_stmt(PostgreSQLParser.Set_session_authorization_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#transaction_mode}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTransaction_mode(PostgreSQLParser.Transaction_modeContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#transaction_mode_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTransaction_mode_list(PostgreSQLParser.Transaction_mode_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#set_transaction_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_transaction_stmt(PostgreSQLParser.Set_transaction_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#show_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShow_stmt(PostgreSQLParser.Show_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#truncate_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTruncate_stmt(PostgreSQLParser.Truncate_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#unlisten_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnlisten_stmt(PostgreSQLParser.Unlisten_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#update_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUpdate_stmt(PostgreSQLParser.Update_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_opt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVacuum_opt(PostgreSQLParser.Vacuum_optContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_opt_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVacuum_opt_list(PostgreSQLParser.Vacuum_opt_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#vacuum_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVacuum_stmt(PostgreSQLParser.Vacuum_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#values_stmt}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitValues_stmt(PostgreSQLParser.Values_stmtContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#selector_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelector_clause(PostgreSQLParser.Selector_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#from_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrom_clause(PostgreSQLParser.From_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#where_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhere_clause(PostgreSQLParser.Where_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#group_by_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGroup_by_clause(PostgreSQLParser.Group_by_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#grouping_elem}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrouping_elem(PostgreSQLParser.Grouping_elemContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#grouping_elem_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGrouping_elem_list(PostgreSQLParser.Grouping_elem_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#having_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitHaving_clause(PostgreSQLParser.Having_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_list(PostgreSQLParser.Column_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#explain_parameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplain_parameter(PostgreSQLParser.Explain_parameterContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame(PostgreSQLParser.FrameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame_start(PostgreSQLParser.Frame_startContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame_end}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame_end(PostgreSQLParser.Frame_endContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#frame_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrame_clause(PostgreSQLParser.Frame_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#window_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindow_definition(PostgreSQLParser.Window_definitionContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#window_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindow_clause(PostgreSQLParser.Window_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#combine_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCombine_clause(PostgreSQLParser.Combine_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#order_by_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrder_by_clause(PostgreSQLParser.Order_by_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#order_by_item}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrder_by_item(PostgreSQLParser.Order_by_itemContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#limit_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLimit_clause(PostgreSQLParser.Limit_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#offset_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOffset_clause(PostgreSQLParser.Offset_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#fetch_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFetch_clause(PostgreSQLParser.Fetch_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#for_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFor_clause(PostgreSQLParser.For_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#updater_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUpdater_clause(PostgreSQLParser.Updater_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#updater_expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUpdater_expr(PostgreSQLParser.Updater_exprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#returning_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturning_clause(PostgreSQLParser.Returning_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpr(PostgreSQLParser.ExprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#bool_expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBool_expr(PostgreSQLParser.Bool_exprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#case_expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCase_expr(PostgreSQLParser.Case_exprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#expr_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpr_list(PostgreSQLParser.Expr_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#expr_list_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpr_list_list(PostgreSQLParser.Expr_list_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_arg}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig_arg(PostgreSQLParser.Func_sig_argContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_arg_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig_arg_list(PostgreSQLParser.Func_sig_arg_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig(PostgreSQLParser.Func_sigContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_sig_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_sig_list(PostgreSQLParser.Func_sig_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#type_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_name(PostgreSQLParser.Type_nameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#timezone}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTimezone(PostgreSQLParser.TimezoneContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#oper}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOper(PostgreSQLParser.OperContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#aggregate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAggregate(PostgreSQLParser.AggregateContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#name_}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitName_(PostgreSQLParser.Name_Context ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#name_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitName_list(PostgreSQLParser.Name_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#identifier_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier_list(PostgreSQLParser.Identifier_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#option_expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOption_expr(PostgreSQLParser.Option_exprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#option_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOption_list(PostgreSQLParser.Option_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#table_name_}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTable_name_(PostgreSQLParser.Table_name_Context ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#data_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitData_type(PostgreSQLParser.Data_typeContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#data_type_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitData_type_list(PostgreSQLParser.Data_type_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#index_method}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndex_method(PostgreSQLParser.Index_methodContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_name(PostgreSQLParser.Func_nameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#func_call}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunc_call(PostgreSQLParser.Func_callContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#array_cons_expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArray_cons_expr(PostgreSQLParser.Array_cons_exprContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#from_item}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrom_item(PostgreSQLParser.From_itemContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#with_column_alias}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWith_column_alias(PostgreSQLParser.With_column_aliasContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#join_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoin_type(PostgreSQLParser.Join_typeContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#join_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitJoin_clause(PostgreSQLParser.Join_clauseContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#predicate}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPredicate(PostgreSQLParser.PredicateContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#aggregate_signature}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAggregate_signature(PostgreSQLParser.Aggregate_signatureContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_constraint}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_constraint(PostgreSQLParser.Column_constraintContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_constraints}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_constraints(PostgreSQLParser.Column_constraintsContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#index_parameters}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndex_parameters(PostgreSQLParser.Index_parametersContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#exclude_element}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExclude_element(PostgreSQLParser.Exclude_elementContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#table_constraint}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTable_constraint(PostgreSQLParser.Table_constraintContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#role_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRole_name(PostgreSQLParser.Role_nameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#role_name_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRole_name_list(PostgreSQLParser.Role_name_listContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#param_value}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParam_value(PostgreSQLParser.Param_valueContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#non_reserved_keyword}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNon_reserved_keyword(PostgreSQLParser.Non_reserved_keywordContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier(PostgreSQLParser.IdentifierContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#todo_fill_in}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTodo_fill_in(PostgreSQLParser.Todo_fill_inContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#todo_implement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTodo_implement(PostgreSQLParser.Todo_implementContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#correlation_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCorrelation_name(PostgreSQLParser.Correlation_nameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_name(PostgreSQLParser.Column_nameContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#alias}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAlias(PostgreSQLParser.AliasContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_alias}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_alias(PostgreSQLParser.Column_aliasContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#column_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitColumn_definition(PostgreSQLParser.Column_definitionContext ctx); + /** + * Visit a parse tree produced by {@link PostgreSQLParser#window_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWindow_name(PostgreSQLParser.Window_nameContext ctx); } \ No newline at end of file diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt index 248e787..c1bcb23 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt @@ -1,9 +1,11 @@ package com.github.bigdata.sql.parser.pg import cn.hutool.core.collection.CollUtil +import cn.hutool.core.util.StrUtil import com.github.bigdata.sql.antlr4.pg.PostgreSQLLexer import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser.ExprContext +import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser.From_clauseContext import com.github.bigdata.sql.antlr4.pg.PostgreSQLParser.Select_stmtContext import com.github.bigdata.sql.antlr4.pg.PostgreSQLParserBaseVisitor import com.github.bigdata.sql.parser.StatementData @@ -23,17 +25,21 @@ class PostgreSQLHelper : PostgreSQLParserBaseVisitor() { private val statementData = TableData() override fun visitSelect_stmt(ctx: Select_stmtContext): Any? { - val fromItemcontext = ctx.from_clause().from_item().get(0) - val dbTable = fromItemcontext.text.split(".") + val fromClause = ctx.from_clause() var databaseName = "public" var tableName = "" - if (dbTable.size == 1) { - tableName = dbTable.get(0) - } else { - databaseName = dbTable.get(0) - tableName = dbTable.get(1) + when (fromClause) { + is From_clauseContext -> { + val fromItemcontext = ctx.from_clause().from_item().get(0) + val dbTable = fromItemcontext.text.split(".") + if (dbTable.size == 1) { + tableName = dbTable.get(0) + } else { + databaseName = dbTable.get(0) + tableName = dbTable.get(1) + } + } } - val columns: MutableList = CollUtil.newArrayList() ctx.selector_clause().column_list().expr().forEach(Consumer { exprContext: ExprContext -> exprContext.identifier().forEach( @@ -41,8 +47,12 @@ class PostgreSQLHelper : PostgreSQLParserBaseVisitor() { columns.add(identifierContext.ruleContext.text) }) }) - var tableSource = TableSource(databaseName, tableName, columns) - this.statementData.inputTables.add(tableSource) + + if (StrUtil.isNotBlank(tableName)){ + var tableSource = TableSource(databaseName, tableName, columns) + this.statementData.inputTables.add(tableSource) + } + return super.visitSelect_stmt(ctx) } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt index fc1a6f1..637528c 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt @@ -6,12 +6,9 @@ class Test { @Test fun setConfigTest1() { - val sql = - "select id,code,pcode,counter_id,pcounter_id,product,name,name_locales::varchar as name_locales,company_name,company_name_locales::varchar as company_name_locales,profile,profile_locales::varchar as profile_locales,market,sip_status," + - "level,factset_product,factset_industry_code,isin,fds_md5,created_at,updated_at,fds_tr,ice_tr,ice_product,visible,exchange,locale_status," + - "plevel,currency,status,etf_type,jy_inner_code,jy_company_code,industry_id,intro::varchar as intro,rbics_l4_industry_id," + - "rbics_l4_secondary_industry_id,rbics_l3_industry_id,transaction_currency,security_code,factset_entity_id," + - "short_sell,intro->>'zh-CN' as intro_zh_cn from asdsadsa.securities" - + println("---------------") + var querySql = "select id,created_at,updated_at,counter_id,trade_day ,open,high,low,close,turnover,volume,suspension_indicator from quote_eod_private where trade_day = to_char(current_date - interval '1 day','YYYY-MM-DD') and CURRENT_DATE > date(trade_day) union select id,created_at,updated_at,counter_id,trade_day,open,high,low,close,turnover,volume,suspension_indicator from (select *,rank() over(partition by counter_id order by trade_day desc) as rownum from quote_eod_private where CURRENT_DATE > date(trade_day))t where rownum=1 " + var statement = PostgreSQLHelper().parseSqlFieldLineage(querySql).getStatementData().statement + println(statement) } } \ No newline at end of file diff --git a/src/test/resources/datax/pg2s3.json b/src/test/resources/datax/pg2s3.json index 5e6674c..107429d 100644 --- a/src/test/resources/datax/pg2s3.json +++ b/src/test/resources/datax/pg2s3.json @@ -1,89 +1,55 @@ { - "job": { - "setting": { - "speed": { - "channel": 2 - } - }, - "content": [ + "job": + { + "content": + [ { - "reader": { - "name": "postgresqlreader", - "parameter": { - "username": "postgres", - "password": "871d1f7908f3f6f1fa28d1509069cb1d", - "splitPk": "qw", - "connection": [ - { - "querySql": [ - "select a,b,v,cx,z,ss,s,e from test.table_name where (meta -> 'account_channel') = '4';" + "reader": + { + "parameter": + { + "password": "3243242", + "connection": + [ + { + "querySql": + [ + "SELECT id,member_id,card_id,origin,origin_id,uuid,account_type,mmf,state,created_at,updated_at,card_type,activated_at,deleted_at,privileges,financing,display_id,deposit,disable,forbidden_markets::varchar as forbidden_markets,trade,aaid FROM accounts where origin = 'lb'" ], - "jdbcUrl": [ - "jdbc:postgresql://localhost:5432/postgres" + "jdbcUrl": + [ + "jdbc:postgresql://2342432423:5432/lb-member-service" ] } - ] - } + ], + "splitPk": "", + "username": "member" + }, + "name": "postgresqlreader" }, - "writer": { - "name": "s3writer", - "parameter": { - "bucket": "bitestduhanmin", - "path": "ods/flinkx/ww/pt=20200508/", - "fieldDelimiter": ",", - "compression":"SNAPPY", - "stored":"PARQUET", - "writeMode": "truncate", - "column":[ - { - "name": "qw", - "type": "bigint" - }, - { - "name": "qwqw", - "type": "bigint" - }, - { - "name": "a", - "type": "string" - }, - { - "name": "b", - "type": "string" - }, - { - "name": "column_5", - "type": "decimal(10,2)" - } - , - { - "name": "column_6", - "type": "decimal(10,4)" - } - , - { - "name": "column_7", - "type": "string" - } - , - { - "name": "column_8", - "type": "bigint" - } - , - { - "name": "column_9", - "type": "bigint" - } - , - { - "name": "column_10", - "type": "boolean" - } - ] - } + "writer": + { + "parameter": + { + "path": "canar3243242/ods/lb_member_service/accounts/", + "old": "true", + "writeMode": "overwrite" + }, + "name": "s3writer" } } - ] + ], + "setting": + { + "errorLimit": + { + "record": "0", + "percentage": "0.02" + }, + "speed": + { + "channel": "1" + } + } } -} +} \ No newline at end of file From ad74b95a40fe671cf22dba37f019412080fd43a7 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 2 Mar 2023 17:46:38 +0800 Subject: [PATCH 47/56] PostgreSQL --- .../com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt | 8 ++++---- src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt | 9 +++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt b/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt index c1bcb23..d3cd539 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/pg/PostgreSQLHelper.kt @@ -30,13 +30,13 @@ class PostgreSQLHelper : PostgreSQLParserBaseVisitor() { var tableName = "" when (fromClause) { is From_clauseContext -> { - val fromItemcontext = ctx.from_clause().from_item().get(0) + val fromItemcontext = ctx.from_clause().from_item()[0] val dbTable = fromItemcontext.text.split(".") if (dbTable.size == 1) { - tableName = dbTable.get(0) + tableName = dbTable[0] } else { - databaseName = dbTable.get(0) - tableName = dbTable.get(1) + databaseName = dbTable[0] + tableName = dbTable[1] } } } diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt index 637528c..4658904 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt @@ -1,5 +1,6 @@ package com.github.bigdata.sql.parser.pg +import cn.hutool.json.JSONUtil import org.junit.Test class Test { @@ -7,8 +8,12 @@ class Test { @Test fun setConfigTest1() { println("---------------") - var querySql = "select id,created_at,updated_at,counter_id,trade_day ,open,high,low,close,turnover,volume,suspension_indicator from quote_eod_private where trade_day = to_char(current_date - interval '1 day','YYYY-MM-DD') and CURRENT_DATE > date(trade_day) union select id,created_at,updated_at,counter_id,trade_day,open,high,low,close,turnover,volume,suspension_indicator from (select *,rank() over(partition by counter_id order by trade_day desc) as rownum from quote_eod_private where CURRENT_DATE > date(trade_day))t where rownum=1 " + var querySql = "select id,created_at,updated_at,counter_id,trade_day ,open,high,low,close,turnover,volume,suspension_indicator" + + " from quote_eod_private where trade_day = to_char(current_date - interval '1 day','YYYY-MM-DD') " + + "and CURRENT_DATE > date(trade_day) " + + "union select id,created_at,updated_at,counter_id,trade_day,open," + + "high,low,close,turnover,volume,suspension_indicator from (select *,rank() over(partition by counter_id order by trade_day desc) as rownum from quote_eod_private where CURRENT_DATE > date(trade_day))t where rownum=1" var statement = PostgreSQLHelper().parseSqlFieldLineage(querySql).getStatementData().statement - println(statement) + println(JSONUtil.parseObj(statement)) } } \ No newline at end of file From 0c657d9c8e7f4184b307c103e733679afd5aca25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E9=B9=BF?= <359391169@qq.com> Date: Wed, 8 Mar 2023 17:32:29 +0800 Subject: [PATCH 48/56] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 453d942..cf6f5c4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 介绍 -数据血缘,支持spark sql,presto sql,tidb sql, flink sql, Spark/flink jar 运行命令的血缘解析 +数据血缘,支持spark sql,hive sql,pg sql,presto sql,mysql sql,tidb sql, flink sql, datax血缘,Spark/flink jar 运行命令的血缘解析;支持with语法 * 特别提示:presto和spark均支持with语法 * 目前解析到表级别,可以扩展到字段级别 From 539b9ba74e17fd1dd8c2d9ceac71e3860bfa595f Mon Sep 17 00:00:00 2001 From: duhanmin Date: Thu, 23 Mar 2023 15:39:06 +0800 Subject: [PATCH 49/56] PostgreSQL --- pom.xml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index e907788..6715719 100644 --- a/pom.xml +++ b/pom.xml @@ -101,15 +101,14 @@ - nexus-releases - internal releases - http://maven.dev.longbridge-inc.com:8081/nexus/repository/maven-releases/ + nexus-release + project release repository + https://maven.dev.longbridge-inc.com/nexus/repository/maven-releases/ nexus-snapshots - internal snapshot - http://maven.dev.longbridge-inc.com:8081/nexus/repository/maven-snapshots/ - false + project snapshots repository + https://maven.dev.longbridge-inc.com/nexus/repository/maven-snapshots/ From e4d79a422782d5713034389df4faf2acee91c45e Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 4 Apr 2023 10:40:51 +0800 Subject: [PATCH 50/56] MySqlParser --- gen/PostgreSQLLexer.interp | 2547 ------- gen/PostgreSQLLexer.java | 6179 ----------------- gen/PostgreSQLLexer.tokens | 898 --- .../bigdata/sql/antlr4/mysql/MySqlParser.g4 | 2 +- .../bigdata/sql/antlr4/mysql/MySqlParser.java | 1321 ++-- 5 files changed, 687 insertions(+), 10260 deletions(-) delete mode 100644 gen/PostgreSQLLexer.interp delete mode 100644 gen/PostgreSQLLexer.java delete mode 100644 gen/PostgreSQLLexer.tokens diff --git a/gen/PostgreSQLLexer.interp b/gen/PostgreSQLLexer.interp deleted file mode 100644 index d0bf9c8..0000000 --- a/gen/PostgreSQLLexer.interp +++ /dev/null @@ -1,2547 +0,0 @@ -token literal names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -',' -':' -'::' -'$' -'$$' -'*' -'(' -')' -'[' -']' -null -null -null -null -null -'.' -null -null -null -null -null -'&' -'&&' -'&<' -'@@' -'@>' -'@' -'!' -'!!' -'!=' -'^' -'=' -'=>' -'>' -'>=' -'>>' -'#' -'#=' -'#>' -'#>>' -'##' -'->' -'->>' -'-|-' -'<' -'<=' -'<@' -'<^' -'<>' -'<->' -'<<' -'<<=' -'' -'-' -'%' -'|' -'||' -'||/' -'|/' -'+' -'?' -'?&' -'?#' -'?-' -'?|' -'/' -'~' -'~=' -'~>=~' -'~>~' -'~<=~' -'~<~' -'~*' -'~~' -';' - -token symbolic names: -null -WHITESPACE -BLOCK_COMMENT -LINE_COMMENT -A_ -ABORT -ABS -ABSOLUTE -ACCESS -ACTION -ADA -ADD -ADMIN -AFTER -AGGREGATE -ALIAS -ALL -ALLOCATE -ALSO -ALTER -ALWAYS -ANALYSE -ANALYZE -AND -ANY -ARE -ARRAY -AS -ASC -ASENSITIVE -ASSERTION -ASSIGNMENT -ASYMMETRIC -AT -ATOMIC -ATTRIBUTE -ATTRIBUTES -AUTHORIZATION -AVG -BACKWARD -BEFORE -BEGIN -BERNOULLI -BETWEEN -BIGINT -BINARY -BIT -BIT_LENGTH -BITVAR -BLOB -BOOLEAN -BOTH -BREADTH -BUFFERS -BY -C_ -CACHE -CALL -CALLED -CARDINALITY -CASCADE -CASCADED -CASE -CAST -CATALOG -CATALOG_NAME -CEIL -CEILING -CHAIN -CHAR -CHAR_LENGTH -CHARACTER -CHARACTER_LENGTH -CHARACTER_SET_CATALOG -CHARACTER_SET_NAME -CHARACTER_SET_SCHEMA -CHARACTERISTICS -CHARACTERS -CHECK -CHECKED -CHECKPOINT -CLASS -CLASS_ORIGIN -CLOB -CLOSE -CLUSTER -COALESCE -COBOL -COLLATE -COLLATION -COLLATION_CATALOG -COLLATION_NAME -COLLATION_SCHEMA -COLLECT -COLUMN -COLUMN_NAME -COMMAND_FUNCTION -COMMAND_FUNCTION_CODE -COMMENT -COMMIT -COMMITTED -COMPLETION -CONDITION -CONDITION_NUMBER -CONFIGURATION -CONFLICT -CONNECT -CONNECTION -CONNECTION_NAME -CONSTRAINT -CONSTRAINT_CATALOG -CONSTRAINT_NAME -CONSTRAINT_SCHEMA -CONSTRAINTS -CONSTRUCTOR -CONTAINS -CONTINUE -CONVERSION -CONVERT -COPY -CORR -CORRESPONDING -COSTS -COUNT -COVAR_POP -COVAR_SAMP -CREATE -CREATEDB -CREATEUSER -CROSS -CSV -CUBE -CUME_DIST -CURRENT -CURRENT_DATE -CURRENT_DEFAULT_TRANSFORM_GROUP -CURRENT_PATH -CURRENT_ROLE -CURRENT_TIME -CURRENT_TIMESTAMP -CURRENT_TRANSFORM_GROUP_FOR_TYPE -CURRENT_USER -CURSOR -CURSOR_NAME -CYCLE -DATA -DATABASE -DATE -DATETIME_INTERVAL_CODE -DATETIME_INTERVAL_PRECISION -DAY -DEALLOCATE -DEC -DECIMAL -DECLARE -DEFAULT -DEFAULTS -DEFERABLE -DEFERRABLE -DEFERRED -DEFINED -DEFINER -DEGREE -DELETE -DELIMITER -DELIMITERS -DENSE_RANK -DEPENDS -DEPTH -DEREF -DERIVED -DESC -DESCRIBE -DESCRIPTOR -DESTROY -DESTRUCTOR -DETERMINISTIC -DIAGNOSTICS -DICTIONARY -DISABLE_P -DISABLE_PAGE_SKIPPING -DISCARD -DISCONNECT -DISPATCH -DISTINCT -DO -DOMAIN -DOUBLE -DROP -DYNAMIC -DYNAMIC_FUNCTION -DYNAMIC_FUNCTION_CODE -EACH -ELEMENT -ELSE -ENABLE -ENCODING -ENCRYPTED -END -END_EXEC -EQUALS -ESCAPE -EVERY -EXCEPT -EXCEPTION -EXCLUDE -EXCLUDING -EXCLUSIVE -EXEC -EXECUTE -EXISTING -EXISTS -EXP -EXPLAIN -EXTENDED -EXTENSION -EXTERNAL -EXTRACT -FALSE -FETCH -FIELDS -FILTER -FINAL -FIRST -FLOAT -FLOOR -FOLLOWING -FOR -FORCE -FOREIGN -FORMAT -FORTRAN -FORWARD -FOUND -FREE -FREEZE -FROM -FULL -FUNCTION -FUSION -G_ -GENERAL -GENERATED -GET -GLOBAL -GO -GOTO -GRANT -GRANTED -GREATEST -GROUP -GROUPING -HANDLER -HAVING -HIERARCHY -HOLD -HOST -HOUR -IDENTITY -IGNORE -ILIKE -IMMEDIATE -IMMUTABLE -IMPLEMENTATION -IMPLICIT -IN -INCLUDING -INCREMENT -INDEX -INDICATOR -INFIX -INHERITS -INITIALIZE -INITIALLY -INNER -INOUT -INPUT -INSENSITIVE -INSERT -INSTANCE -INSTANTIABLE -INSTEAD -INT -INTEGER -INTERSECT -INTERSECTION -INTERVAL -INTO -INVOKER -IS -ISOLATION -ITERATE -JOIN -K_ -KEY -KEY_MEMBER -KEY_TYPE -LABEL -LANCOMPILER -LANGUAGE -LARGE -LAST -LATERAL -LEADING -LEAST -LEFT -LENGTH -LESS -LEVEL -LIKE -LIMIT -LISTEN -LN -LOAD -LOCAL -LOCALTIME -LOCALTIMESTAMP -LOCATION -LOCATOR -LOCK -LOCKED -LOWER -M_ -MAIN -MAP -MAPPING -MATCH -MATCH_SIMPLE -MATCHED -MAX -MAXVALUE -MEMBER -MERGE -MESSAGE_LENGTH -MESSAGE_OCTET_LENGTH -MESSAGE_TEXT -METHOD -MIN -MINUTE -MINVALUE -MOD -MODE -MODIFIES -MODIFY -MODULE -MONTH -MORE_ -MOVE -MULTISET -MUMPS -NAME -NAMES -NATIONAL -NATURAL -NCHAR -NCLOB -NESTING -NEW -NEXT -NO -NOCREATEDB -NOCREATEUSER -NONE -NORMALIZE -NORMALIZED -NOT -NOTHING -NOTIFY -NOTNULL -NOWAIT -NULL -NULLABLE -NULLIF -NULLS -NUMBER -NUMERIC -OBJECT -OCTET_LENGTH -OCTETS -OF -OFF -OFFSET -OIDS -OLD -ON -ONLY -OPEN -OPERATION -OPERATOR -OPTION -OPTIONS -OR -ORDER -ORDERING -ORDINALITY -OTHERS -OUT -OUTER -OUTPUT -OVER -OVERLAPS -OVERLAY -OVERRIDING -OWNER -PAD -PARAMETER -PARAMETER_MODE -PARAMETER_NAME -PARAMETER_ORDINAL_POSITION -PARAMETER_SPECIFIC_CATALOG -PARAMETER_SPECIFIC_NAME -PARAMETER_SPECIFIC_SCHEMA -PARAMETERS -PARSER -PARTIAL -PARTITION -PASCAL -PASSWORD -PATH -PERCENT_RANK -PERCENTILE_CONT -PERCENTILE_DISC -PLACING -PLAIN -PLANS -PLI -POSITION -POSTFIX -POWER -PRECEDING -PRECISION -PREFIX -PREORDER -PREPARE -PREPARED -PRESERVE -PRIMARY -PRIOR -PRIVILEGES -PROCEDURAL -PROCEDURE -PUBLIC -PUBLICATION -QUOTE -RANGE -RANK -READ -READS -REAL -REASSIGN -RECHECK -RECURSIVE -REF -REFERENCES -REFERENCING -REFRESH -REGR_AVGX -REGR_AVGY -REGR_COUNT -REGR_INTERCEPT -REGR_R2 -REGR_SLOPE -REGR_SXX -REGR_SXY -REGR_SYY -REINDEX -RELATIVE -RELEASE -RENAME -REPEATABLE -REPLACE -REPLICA -RESET -RESTART -RESTRICT -RESULT -RETURN -RETURNED_CARDINALITY -RETURNED_LENGTH -RETURNED_OCTET_LENGTH -RETURNED_SQLSTATE -RETURNING -RETURNS -REVOKE -RIGHT -ROLE -ROLLBACK -ROLLUP -ROUTINE -ROUTINE_CATALOG -ROUTINE_NAME -ROUTINE_SCHEMA -ROW -ROW_COUNT -ROW_NUMBER -ROWS -RULE -SAVEPOINT -SCALE -SCHEMA -SCHEMA_NAME -SCOPE -SCOPE_CATALOG -SCOPE_NAME -SCOPE_SCHEMA -SCROLL -SEARCH -SECOND -SECTION -SECURITY -SELECT -SELF -SENSITIVE -SEQUENCE -SEQUENCES -SERIALIZABLE -SERVER_NAME -SESSION -SESSION_USER -SET -SETOF -SETS -SHARE -SHOW -SIMILAR -SIMPLE -SIZE -SKIP_ -SMALLINT -SNAPSHOT -SOME -SOURCE -SPACE -SPECIFIC -SPECIFIC_NAME -SPECIFICTYPE -SQL -SQLCODE -SQLERROR -SQLEXCEPTION -SQLSTATE -SQLWARNING -SQRT -STABLE -START -STATE -STATEMENT -STATIC -STATISTICS -STDDEV_POP -STDDEV_SAMP -STDIN -STDOUT -STORAGE -STRICT -STRUCTURE -STYLE -SUBCLASS_ORIGIN -SUBLIST -SUBMULTISET -SUBSCRIPTION -SUBSTRING -SUM -SYMMETRIC -SYSID -SYSTEM -SYSTEM_USER -TABLE -TABLE_NAME -TABLESAMPLE -TABLESPACE -TEMP -TEMPLATE -TEMPORARY -TERMINATE -THAN -THEN -TIES -TIME -TIMESTAMP -TIMEZONE_HOUR -TIMEZONE_MINUTE -TIMING -TO -TOAST -TOP_LEVEL_COUNT -TRAILING -TRANSACTION -TRANSACTION_ACTIVE -TRANSACTIONS_COMMITTED -TRANSACTIONS_ROLLED_BACK -TRANSFORM -TRANSFORMS -TRANSLATE -TRANSLATION -TREAT -TRIGGER -TRIGGER_CATALOG -TRIGGER_NAME -TRIGGER_SCHEMA -TRIM -TRUE -TRUNCATE -TRUSTED -TYPE -UESCAPE -UNBOUNDED -UNCOMMITTED -UNDER -UNENCRYPTED -UNION -UNIQUE -UNKNOWN -UNLISTEN -UNNAMED -UNNEST -UNTIL -UPDATE -UPPER -USAGE -USER -USER_DEFINED_TYPE_CATALOG -USER_DEFINED_TYPE_CODE -USER_DEFINED_TYPE_NAME -USER_DEFINED_TYPE_SCHEMA -USING -VACUUM -VALID -VALIDATE -VALIDATOR -VALUE -VALUES -VAR_POP -VAR_SAMP -VARCHAR -VARIABLE -VARIADIC -VARYING -VERBOSE -VIEW -VOLATILE -WHEN -WHENEVER -WHERE -WIDTH_BUCKET -WINDOW -WITH -WITHIN -WITHOUT -WORK -WRITE -YAML -YEAR -YES -ZONE -SUPERUSER -NOSUPERUSER -CREATEROLE -NOCREATEROLE -INHERIT -NOINHERIT -LOGIN -NOLOGIN -REPLICATION -NOREPLICATION -BYPASSRLS -NOBYPASSRLS -SFUNC -STYPE -SSPACE -FINALFUNC -FINALFUNC_EXTRA -COMBINEFUNC -SERIALFUNC -DESERIALFUNC -INITCOND -MSFUNC -MINVFUNC -MSTYPE -MSSPACE -MFINALFUNC -MFINALFUNC_EXTRA -MINITCOND -SORTOP -PARALLEL -HYPOTHETICAL -SAFE -UNSAFE -BASETYPE -IF -LOCALE -LC_COLLATE -LC_CTYPE -PROVIDER -VERSION -ALLOW_CONNECTIONS -IS_TEMPLATE -EVENT -WRAPPER -SERVER -BTREE -HASH_ -GIST -SPGIST -GIN -BRIN -CONCURRENTLY -INLINE -MATERIALIZED -LEFTARG -RIGHTARG -COMMUTATOR -NEGATOR -HASHES -MERGES -FAMILY -POLICY -OWNED -ABSTIME -BIGSERIAL -BIT_VARYING -BOOL -BOX -BYTEA -CHARACTER_VARYING -CIDR -CIRCLE -FLOAT4 -FLOAT8 -INET -INT2 -INT4 -INT8 -JSON -JSONB -LINE -LSEG -MACADDR -MACADDR8 -MONEY -PG_LSN -POINT -POLYGON -RELTIME -SERIAL -SERIAL2 -SERIAL4 -SERIAL8 -SMALLSERIAL -STSTEM -TEXT -TIMESTAMPTZ -TIMETZ -TSQUERY -TSVECTOR -TXID_SNAPSHOT -UUID -VARBIT -XML -COMMA -COLON -COLON_COLON -DOLLAR -DOLLAR_DOLLAR -STAR -OPEN_PAREN -CLOSE_PAREN -OPEN_BRACKET -CLOSE_BRACKET -BIT_STRING -REGEX_STRING -NUMERIC_LITERAL -INTEGER_LITERAL -HEX_INTEGER_LITERAL -DOT -SINGLEQ_STRING_LITERAL -DOUBLEQ_STRING_LITERAL -IDENTIFIER -DOLLAR_DEC -IDENTIFIER_UNICODE -AMP -AMP_AMP -AMP_LT -AT_AT -AT_GT -AT_SIGN -BANG -BANG_BANG -BANG_EQUAL -CARET -EQUAL -EQUAL_GT -GT -GTE -GT_GT -HASH -HASH_EQ -HASH_GT -HASH_GT_GT -HASH_HASH -HYPHEN_GT -HYPHEN_GT_GT -HYPHEN_PIPE_HYPHEN -LT -LTE -LT_AT -LT_CARET -LT_GT -LT_HYPHEN_GT -LT_LT -LT_LT_EQ -LT_QMARK_GT -MINUS -PERCENT -PIPE -PIPE_PIPE -PIPE_PIPE_SLASH -PIPE_SLASH -PLUS -QMARK -QMARK_AMP -QMARK_HASH -QMARK_HYPHEN -QMARK_PIPE -SLASH -TIL -TIL_EQ -TIL_GTE_TIL -TIL_GT_TIL -TIL_LTE_TIL -TIL_LT_TIL -TIL_STAR -TIL_TIL -SEMI - -rule names: -WHITESPACE -BLOCK_COMMENT -LINE_COMMENT -A -B -C -D -E -F -G -H -I -J -K -L -M -N -O -P -Q -R -S -T -U -V -W -X -Y -Z -HEX_DIGIT -DEC_DIGIT -DQUOTA_STRING -SQUOTA_STRING -BQUOTA_STRING -A_ -ABORT -ABS -ABSOLUTE -ACCESS -ACTION -ADA -ADD -ADMIN -AFTER -AGGREGATE -ALIAS -ALL -ALLOCATE -ALSO -ALTER -ALWAYS -ANALYSE -ANALYZE -AND -ANY -ARE -ARRAY -AS -ASC -ASENSITIVE -ASSERTION -ASSIGNMENT -ASYMMETRIC -AT -ATOMIC -ATTRIBUTE -ATTRIBUTES -AUTHORIZATION -AVG -BACKWARD -BEFORE -BEGIN -BERNOULLI -BETWEEN -BIGINT -BINARY -BIT -BIT_LENGTH -BITVAR -BLOB -BOOLEAN -BOTH -BREADTH -BUFFERS -BY -C_ -CACHE -CALL -CALLED -CARDINALITY -CASCADE -CASCADED -CASE -CAST -CATALOG -CATALOG_NAME -CEIL -CEILING -CHAIN -CHAR -CHAR_LENGTH -CHARACTER -CHARACTER_LENGTH -CHARACTER_SET_CATALOG -CHARACTER_SET_NAME -CHARACTER_SET_SCHEMA -CHARACTERISTICS -CHARACTERS -CHECK -CHECKED -CHECKPOINT -CLASS -CLASS_ORIGIN -CLOB -CLOSE -CLUSTER -COALESCE -COBOL -COLLATE -COLLATION -COLLATION_CATALOG -COLLATION_NAME -COLLATION_SCHEMA -COLLECT -COLUMN -COLUMN_NAME -COMMAND_FUNCTION -COMMAND_FUNCTION_CODE -COMMENT -COMMIT -COMMITTED -COMPLETION -CONDITION -CONDITION_NUMBER -CONFIGURATION -CONFLICT -CONNECT -CONNECTION -CONNECTION_NAME -CONSTRAINT -CONSTRAINT_CATALOG -CONSTRAINT_NAME -CONSTRAINT_SCHEMA -CONSTRAINTS -CONSTRUCTOR -CONTAINS -CONTINUE -CONVERSION -CONVERT -COPY -CORR -CORRESPONDING -COSTS -COUNT -COVAR_POP -COVAR_SAMP -CREATE -CREATEDB -CREATEUSER -CROSS -CSV -CUBE -CUME_DIST -CURRENT -CURRENT_DATE -CURRENT_DEFAULT_TRANSFORM_GROUP -CURRENT_PATH -CURRENT_ROLE -CURRENT_TIME -CURRENT_TIMESTAMP -CURRENT_TRANSFORM_GROUP_FOR_TYPE -CURRENT_USER -CURSOR -CURSOR_NAME -CYCLE -DATA -DATABASE -DATE -DATETIME_INTERVAL_CODE -DATETIME_INTERVAL_PRECISION -DAY -DEALLOCATE -DEC -DECIMAL -DECLARE -DEFAULT -DEFAULTS -DEFERABLE -DEFERRABLE -DEFERRED -DEFINED -DEFINER -DEGREE -DELETE -DELIMITER -DELIMITERS -DENSE_RANK -DEPENDS -DEPTH -DEREF -DERIVED -DESC -DESCRIBE -DESCRIPTOR -DESTROY -DESTRUCTOR -DETERMINISTIC -DIAGNOSTICS -DICTIONARY -DISABLE_P -DISABLE_PAGE_SKIPPING -DISCARD -DISCONNECT -DISPATCH -DISTINCT -DO -DOMAIN -DOUBLE -DROP -DYNAMIC -DYNAMIC_FUNCTION -DYNAMIC_FUNCTION_CODE -EACH -ELEMENT -ELSE -ENABLE -ENCODING -ENCRYPTED -END -END_EXEC -EQUALS -ESCAPE -EVERY -EXCEPT -EXCEPTION -EXCLUDE -EXCLUDING -EXCLUSIVE -EXEC -EXECUTE -EXISTING -EXISTS -EXP -EXPLAIN -EXTENDED -EXTENSION -EXTERNAL -EXTRACT -FALSE -FETCH -FIELDS -FILTER -FINAL -FIRST -FLOAT -FLOOR -FOLLOWING -FOR -FORCE -FOREIGN -FORMAT -FORTRAN -FORWARD -FOUND -FREE -FREEZE -FROM -FULL -FUNCTION -FUSION -G_ -GENERAL -GENERATED -GET -GLOBAL -GO -GOTO -GRANT -GRANTED -GREATEST -GROUP -GROUPING -HANDLER -HAVING -HIERARCHY -HOLD -HOST -HOUR -IDENTITY -IGNORE -ILIKE -IMMEDIATE -IMMUTABLE -IMPLEMENTATION -IMPLICIT -IN -INCLUDING -INCREMENT -INDEX -INDICATOR -INFIX -INHERITS -INITIALIZE -INITIALLY -INNER -INOUT -INPUT -INSENSITIVE -INSERT -INSTANCE -INSTANTIABLE -INSTEAD -INT -INTEGER -INTERSECT -INTERSECTION -INTERVAL -INTO -INVOKER -IS -ISOLATION -ITERATE -JOIN -K_ -KEY -KEY_MEMBER -KEY_TYPE -LABEL -LANCOMPILER -LANGUAGE -LARGE -LAST -LATERAL -LEADING -LEAST -LEFT -LENGTH -LESS -LEVEL -LIKE -LIMIT -LISTEN -LN -LOAD -LOCAL -LOCALTIME -LOCALTIMESTAMP -LOCATION -LOCATOR -LOCK -LOCKED -LOWER -M_ -MAIN -MAP -MAPPING -MATCH -MATCH_SIMPLE -MATCHED -MAX -MAXVALUE -MEMBER -MERGE -MESSAGE_LENGTH -MESSAGE_OCTET_LENGTH -MESSAGE_TEXT -METHOD -MIN -MINUTE -MINVALUE -MOD -MODE -MODIFIES -MODIFY -MODULE -MONTH -MORE_ -MOVE -MULTISET -MUMPS -NAME -NAMES -NATIONAL -NATURAL -NCHAR -NCLOB -NESTING -NEW -NEXT -NO -NOCREATEDB -NOCREATEUSER -NONE -NORMALIZE -NORMALIZED -NOT -NOTHING -NOTIFY -NOTNULL -NOWAIT -NULL -NULLABLE -NULLIF -NULLS -NUMBER -NUMERIC -OBJECT -OCTET_LENGTH -OCTETS -OF -OFF -OFFSET -OIDS -OLD -ON -ONLY -OPEN -OPERATION -OPERATOR -OPTION -OPTIONS -OR -ORDER -ORDERING -ORDINALITY -OTHERS -OUT -OUTER -OUTPUT -OVER -OVERLAPS -OVERLAY -OVERRIDING -OWNER -PAD -PARAMETER -PARAMETER_MODE -PARAMETER_NAME -PARAMETER_ORDINAL_POSITION -PARAMETER_SPECIFIC_CATALOG -PARAMETER_SPECIFIC_NAME -PARAMETER_SPECIFIC_SCHEMA -PARAMETERS -PARSER -PARTIAL -PARTITION -PASCAL -PASSWORD -PATH -PERCENT_RANK -PERCENTILE_CONT -PERCENTILE_DISC -PLACING -PLAIN -PLANS -PLI -POSITION -POSTFIX -POWER -PRECEDING -PRECISION -PREFIX -PREORDER -PREPARE -PREPARED -PRESERVE -PRIMARY -PRIOR -PRIVILEGES -PROCEDURAL -PROCEDURE -PUBLIC -PUBLICATION -QUOTE -RANGE -RANK -READ -READS -REAL -REASSIGN -RECHECK -RECURSIVE -REF -REFERENCES -REFERENCING -REFRESH -REGR_AVGX -REGR_AVGY -REGR_COUNT -REGR_INTERCEPT -REGR_R2 -REGR_SLOPE -REGR_SXX -REGR_SXY -REGR_SYY -REINDEX -RELATIVE -RELEASE -RENAME -REPEATABLE -REPLACE -REPLICA -RESET -RESTART -RESTRICT -RESULT -RETURN -RETURNED_CARDINALITY -RETURNED_LENGTH -RETURNED_OCTET_LENGTH -RETURNED_SQLSTATE -RETURNING -RETURNS -REVOKE -RIGHT -ROLE -ROLLBACK -ROLLUP -ROUTINE -ROUTINE_CATALOG -ROUTINE_NAME -ROUTINE_SCHEMA -ROW -ROW_COUNT -ROW_NUMBER -ROWS -RULE -SAVEPOINT -SCALE -SCHEMA -SCHEMA_NAME -SCOPE -SCOPE_CATALOG -SCOPE_NAME -SCOPE_SCHEMA -SCROLL -SEARCH -SECOND -SECTION -SECURITY -SELECT -SELF -SENSITIVE -SEQUENCE -SEQUENCES -SERIALIZABLE -SERVER_NAME -SESSION -SESSION_USER -SET -SETOF -SETS -SHARE -SHOW -SIMILAR -SIMPLE -SIZE -SKIP_ -SMALLINT -SNAPSHOT -SOME -SOURCE -SPACE -SPECIFIC -SPECIFIC_NAME -SPECIFICTYPE -SQL -SQLCODE -SQLERROR -SQLEXCEPTION -SQLSTATE -SQLWARNING -SQRT -STABLE -START -STATE -STATEMENT -STATIC -STATISTICS -STDDEV_POP -STDDEV_SAMP -STDIN -STDOUT -STORAGE -STRICT -STRUCTURE -STYLE -SUBCLASS_ORIGIN -SUBLIST -SUBMULTISET -SUBSCRIPTION -SUBSTRING -SUM -SYMMETRIC -SYSID -SYSTEM -SYSTEM_USER -TABLE -TABLE_NAME -TABLESAMPLE -TABLESPACE -TEMP -TEMPLATE -TEMPORARY -TERMINATE -THAN -THEN -TIES -TIME -TIMESTAMP -TIMEZONE_HOUR -TIMEZONE_MINUTE -TIMING -TO -TOAST -TOP_LEVEL_COUNT -TRAILING -TRANSACTION -TRANSACTION_ACTIVE -TRANSACTIONS_COMMITTED -TRANSACTIONS_ROLLED_BACK -TRANSFORM -TRANSFORMS -TRANSLATE -TRANSLATION -TREAT -TRIGGER -TRIGGER_CATALOG -TRIGGER_NAME -TRIGGER_SCHEMA -TRIM -TRUE -TRUNCATE -TRUSTED -TYPE -UESCAPE -UNBOUNDED -UNCOMMITTED -UNDER -UNENCRYPTED -UNION -UNIQUE -UNKNOWN -UNLISTEN -UNNAMED -UNNEST -UNTIL -UPDATE -UPPER -USAGE -USER -USER_DEFINED_TYPE_CATALOG -USER_DEFINED_TYPE_CODE -USER_DEFINED_TYPE_NAME -USER_DEFINED_TYPE_SCHEMA -USING -VACUUM -VALID -VALIDATE -VALIDATOR -VALUE -VALUES -VAR_POP -VAR_SAMP -VARCHAR -VARIABLE -VARIADIC -VARYING -VERBOSE -VIEW -VOLATILE -WHEN -WHENEVER -WHERE -WIDTH_BUCKET -WINDOW -WITH -WITHIN -WITHOUT -WORK -WRITE -YAML -YEAR -YES -ZONE -SUPERUSER -NOSUPERUSER -CREATEROLE -NOCREATEROLE -INHERIT -NOINHERIT -LOGIN -NOLOGIN -REPLICATION -NOREPLICATION -BYPASSRLS -NOBYPASSRLS -SFUNC -STYPE -SSPACE -FINALFUNC -FINALFUNC_EXTRA -COMBINEFUNC -SERIALFUNC -DESERIALFUNC -INITCOND -MSFUNC -MINVFUNC -MSTYPE -MSSPACE -MFINALFUNC -MFINALFUNC_EXTRA -MINITCOND -SORTOP -PARALLEL -HYPOTHETICAL -SAFE -UNSAFE -BASETYPE -IF -LOCALE -LC_COLLATE -LC_CTYPE -PROVIDER -VERSION -ALLOW_CONNECTIONS -IS_TEMPLATE -EVENT -WRAPPER -SERVER -BTREE -HASH_ -GIST -SPGIST -GIN -BRIN -CONCURRENTLY -INLINE -MATERIALIZED -LEFTARG -RIGHTARG -COMMUTATOR -NEGATOR -HASHES -MERGES -FAMILY -POLICY -OWNED -ABSTIME -BIGSERIAL -BIT_VARYING -BOOL -BOX -BYTEA -CHARACTER_VARYING -CIDR -CIRCLE -FLOAT4 -FLOAT8 -INET -INT2 -INT4 -INT8 -JSON -JSONB -LINE -LSEG -MACADDR -MACADDR8 -MONEY -PG_LSN -POINT -POLYGON -RELTIME -SERIAL -SERIAL2 -SERIAL4 -SERIAL8 -SMALLSERIAL -STSTEM -TEXT -TIMESTAMPTZ -TIMETZ -TSQUERY -TSVECTOR -TXID_SNAPSHOT -UUID -VARBIT -XML -COMMA -COLON -COLON_COLON -DOLLAR -DOLLAR_DOLLAR -STAR -OPEN_PAREN -CLOSE_PAREN -OPEN_BRACKET -CLOSE_BRACKET -BIT_STRING -REGEX_STRING -NUMERIC_LITERAL -INTEGER_LITERAL -HEX_INTEGER_LITERAL -DOT -SINGLEQ_STRING_LITERAL -DOUBLEQ_STRING_LITERAL -IDENTIFIER -DOLLAR_DEC -IDENTIFIER_UNICODE -AMP -AMP_AMP -AMP_LT -AT_AT -AT_GT -AT_SIGN -BANG -BANG_BANG -BANG_EQUAL -CARET -EQUAL -EQUAL_GT -GT -GTE -GT_GT -HASH -HASH_EQ -HASH_GT -HASH_GT_GT -HASH_HASH -HYPHEN_GT -HYPHEN_GT_GT -HYPHEN_PIPE_HYPHEN -LT -LTE -LT_AT -LT_CARET -LT_GT -LT_HYPHEN_GT -LT_LT -LT_LT_EQ -LT_QMARK_GT -MINUS -PERCENT -PIPE -PIPE_PIPE -PIPE_PIPE_SLASH -PIPE_SLASH -PLUS -QMARK -QMARK_AMP -QMARK_HASH -QMARK_HYPHEN -QMARK_PIPE -SLASH -TIL -TIL_EQ -TIL_GTE_TIL -TIL_GT_TIL -TIL_LTE_TIL -TIL_LT_TIL -TIL_STAR -TIL_TIL -SEMI - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 833, 8664, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 1, 0, 4, 0, 1731, 8, 0, 11, 0, 12, 0, 1732, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1741, 8, 1, 10, 1, 12, 1, 1744, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1755, 8, 2, 10, 2, 12, 2, 1758, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 1826, 8, 31, 10, 31, 12, 31, 1829, 9, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 1839, 8, 32, 10, 32, 12, 32, 1842, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 1852, 8, 33, 10, 33, 12, 33, 1855, 9, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 790, 1, 790, 1, 791, 1, 791, 1, 791, 1, 792, 1, 792, 1, 793, 1, 793, 1, 793, 1, 794, 1, 794, 1, 795, 1, 795, 1, 796, 1, 796, 1, 797, 1, 797, 1, 798, 1, 798, 1, 799, 1, 799, 1, 799, 5, 799, 8423, 8, 799, 10, 799, 12, 799, 8426, 9, 799, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 1, 801, 3, 801, 8434, 8, 801, 1, 801, 4, 801, 8437, 8, 801, 11, 801, 12, 801, 8438, 1, 801, 1, 801, 4, 801, 8443, 8, 801, 11, 801, 12, 801, 8444, 1, 801, 1, 801, 5, 801, 8449, 8, 801, 10, 801, 12, 801, 8452, 9, 801, 1, 801, 4, 801, 8455, 8, 801, 11, 801, 12, 801, 8456, 3, 801, 8459, 8, 801, 1, 802, 3, 802, 8462, 8, 802, 1, 802, 4, 802, 8465, 8, 802, 11, 802, 12, 802, 8466, 1, 802, 1, 802, 4, 802, 8471, 8, 802, 11, 802, 12, 802, 8472, 3, 802, 8475, 8, 802, 1, 803, 1, 803, 1, 803, 1, 804, 1, 804, 1, 805, 1, 805, 1, 806, 1, 806, 1, 807, 1, 807, 5, 807, 8488, 8, 807, 10, 807, 12, 807, 8491, 9, 807, 1, 808, 1, 808, 4, 808, 8495, 8, 808, 11, 808, 12, 808, 8496, 1, 809, 1, 809, 5, 809, 8501, 8, 809, 10, 809, 12, 809, 8504, 9, 809, 1, 810, 1, 810, 1, 811, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 816, 1, 816, 1, 817, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 820, 1, 820, 1, 821, 1, 821, 1, 821, 1, 822, 1, 822, 1, 823, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 826, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 834, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 843, 1, 843, 1, 844, 1, 844, 1, 845, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 849, 1, 849, 1, 850, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 855, 1, 855, 1, 856, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 2, 1742, 1756, 0, 864, 1, 1, 3, 2, 5, 3, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 4, 71, 5, 73, 6, 75, 7, 77, 8, 79, 9, 81, 10, 83, 11, 85, 12, 87, 13, 89, 14, 91, 15, 93, 16, 95, 17, 97, 18, 99, 19, 101, 20, 103, 21, 105, 22, 107, 23, 109, 24, 111, 25, 113, 26, 115, 27, 117, 28, 119, 29, 121, 30, 123, 31, 125, 32, 127, 33, 129, 34, 131, 35, 133, 36, 135, 37, 137, 38, 139, 39, 141, 40, 143, 41, 145, 42, 147, 43, 149, 44, 151, 45, 153, 46, 155, 47, 157, 48, 159, 49, 161, 50, 163, 51, 165, 52, 167, 53, 169, 54, 171, 55, 173, 56, 175, 57, 177, 58, 179, 59, 181, 60, 183, 61, 185, 62, 187, 63, 189, 64, 191, 65, 193, 66, 195, 67, 197, 68, 199, 69, 201, 70, 203, 71, 205, 72, 207, 73, 209, 74, 211, 75, 213, 76, 215, 77, 217, 78, 219, 79, 221, 80, 223, 81, 225, 82, 227, 83, 229, 84, 231, 85, 233, 86, 235, 87, 237, 88, 239, 89, 241, 90, 243, 91, 245, 92, 247, 93, 249, 94, 251, 95, 253, 96, 255, 97, 257, 98, 259, 99, 261, 100, 263, 101, 265, 102, 267, 103, 269, 104, 271, 105, 273, 106, 275, 107, 277, 108, 279, 109, 281, 110, 283, 111, 285, 112, 287, 113, 289, 114, 291, 115, 293, 116, 295, 117, 297, 118, 299, 119, 301, 120, 303, 121, 305, 122, 307, 123, 309, 124, 311, 125, 313, 126, 315, 127, 317, 128, 319, 129, 321, 130, 323, 131, 325, 132, 327, 133, 329, 134, 331, 135, 333, 136, 335, 137, 337, 138, 339, 139, 341, 140, 343, 141, 345, 142, 347, 143, 349, 144, 351, 145, 353, 146, 355, 147, 357, 148, 359, 149, 361, 150, 363, 151, 365, 152, 367, 153, 369, 154, 371, 155, 373, 156, 375, 157, 377, 158, 379, 159, 381, 160, 383, 161, 385, 162, 387, 163, 389, 164, 391, 165, 393, 166, 395, 167, 397, 168, 399, 169, 401, 170, 403, 171, 405, 172, 407, 173, 409, 174, 411, 175, 413, 176, 415, 177, 417, 178, 419, 179, 421, 180, 423, 181, 425, 182, 427, 183, 429, 184, 431, 185, 433, 186, 435, 187, 437, 188, 439, 189, 441, 190, 443, 191, 445, 192, 447, 193, 449, 194, 451, 195, 453, 196, 455, 197, 457, 198, 459, 199, 461, 200, 463, 201, 465, 202, 467, 203, 469, 204, 471, 205, 473, 206, 475, 207, 477, 208, 479, 209, 481, 210, 483, 211, 485, 212, 487, 213, 489, 214, 491, 215, 493, 216, 495, 217, 497, 218, 499, 219, 501, 220, 503, 221, 505, 222, 507, 223, 509, 224, 511, 225, 513, 226, 515, 227, 517, 228, 519, 229, 521, 230, 523, 231, 525, 232, 527, 233, 529, 234, 531, 235, 533, 236, 535, 237, 537, 238, 539, 239, 541, 240, 543, 241, 545, 242, 547, 243, 549, 244, 551, 245, 553, 246, 555, 247, 557, 248, 559, 249, 561, 250, 563, 251, 565, 252, 567, 253, 569, 254, 571, 255, 573, 256, 575, 257, 577, 258, 579, 259, 581, 260, 583, 261, 585, 262, 587, 263, 589, 264, 591, 265, 593, 266, 595, 267, 597, 268, 599, 269, 601, 270, 603, 271, 605, 272, 607, 273, 609, 274, 611, 275, 613, 276, 615, 277, 617, 278, 619, 279, 621, 280, 623, 281, 625, 282, 627, 283, 629, 284, 631, 285, 633, 286, 635, 287, 637, 288, 639, 289, 641, 290, 643, 291, 645, 292, 647, 293, 649, 294, 651, 295, 653, 296, 655, 297, 657, 298, 659, 299, 661, 300, 663, 301, 665, 302, 667, 303, 669, 304, 671, 305, 673, 306, 675, 307, 677, 308, 679, 309, 681, 310, 683, 311, 685, 312, 687, 313, 689, 314, 691, 315, 693, 316, 695, 317, 697, 318, 699, 319, 701, 320, 703, 321, 705, 322, 707, 323, 709, 324, 711, 325, 713, 326, 715, 327, 717, 328, 719, 329, 721, 330, 723, 331, 725, 332, 727, 333, 729, 334, 731, 335, 733, 336, 735, 337, 737, 338, 739, 339, 741, 340, 743, 341, 745, 342, 747, 343, 749, 344, 751, 345, 753, 346, 755, 347, 757, 348, 759, 349, 761, 350, 763, 351, 765, 352, 767, 353, 769, 354, 771, 355, 773, 356, 775, 357, 777, 358, 779, 359, 781, 360, 783, 361, 785, 362, 787, 363, 789, 364, 791, 365, 793, 366, 795, 367, 797, 368, 799, 369, 801, 370, 803, 371, 805, 372, 807, 373, 809, 374, 811, 375, 813, 376, 815, 377, 817, 378, 819, 379, 821, 380, 823, 381, 825, 382, 827, 383, 829, 384, 831, 385, 833, 386, 835, 387, 837, 388, 839, 389, 841, 390, 843, 391, 845, 392, 847, 393, 849, 394, 851, 395, 853, 396, 855, 397, 857, 398, 859, 399, 861, 400, 863, 401, 865, 402, 867, 403, 869, 404, 871, 405, 873, 406, 875, 407, 877, 408, 879, 409, 881, 410, 883, 411, 885, 412, 887, 413, 889, 414, 891, 415, 893, 416, 895, 417, 897, 418, 899, 419, 901, 420, 903, 421, 905, 422, 907, 423, 909, 424, 911, 425, 913, 426, 915, 427, 917, 428, 919, 429, 921, 430, 923, 431, 925, 432, 927, 433, 929, 434, 931, 435, 933, 436, 935, 437, 937, 438, 939, 439, 941, 440, 943, 441, 945, 442, 947, 443, 949, 444, 951, 445, 953, 446, 955, 447, 957, 448, 959, 449, 961, 450, 963, 451, 965, 452, 967, 453, 969, 454, 971, 455, 973, 456, 975, 457, 977, 458, 979, 459, 981, 460, 983, 461, 985, 462, 987, 463, 989, 464, 991, 465, 993, 466, 995, 467, 997, 468, 999, 469, 1001, 470, 1003, 471, 1005, 472, 1007, 473, 1009, 474, 1011, 475, 1013, 476, 1015, 477, 1017, 478, 1019, 479, 1021, 480, 1023, 481, 1025, 482, 1027, 483, 1029, 484, 1031, 485, 1033, 486, 1035, 487, 1037, 488, 1039, 489, 1041, 490, 1043, 491, 1045, 492, 1047, 493, 1049, 494, 1051, 495, 1053, 496, 1055, 497, 1057, 498, 1059, 499, 1061, 500, 1063, 501, 1065, 502, 1067, 503, 1069, 504, 1071, 505, 1073, 506, 1075, 507, 1077, 508, 1079, 509, 1081, 510, 1083, 511, 1085, 512, 1087, 513, 1089, 514, 1091, 515, 1093, 516, 1095, 517, 1097, 518, 1099, 519, 1101, 520, 1103, 521, 1105, 522, 1107, 523, 1109, 524, 1111, 525, 1113, 526, 1115, 527, 1117, 528, 1119, 529, 1121, 530, 1123, 531, 1125, 532, 1127, 533, 1129, 534, 1131, 535, 1133, 536, 1135, 537, 1137, 538, 1139, 539, 1141, 540, 1143, 541, 1145, 542, 1147, 543, 1149, 544, 1151, 545, 1153, 546, 1155, 547, 1157, 548, 1159, 549, 1161, 550, 1163, 551, 1165, 552, 1167, 553, 1169, 554, 1171, 555, 1173, 556, 1175, 557, 1177, 558, 1179, 559, 1181, 560, 1183, 561, 1185, 562, 1187, 563, 1189, 564, 1191, 565, 1193, 566, 1195, 567, 1197, 568, 1199, 569, 1201, 570, 1203, 571, 1205, 572, 1207, 573, 1209, 574, 1211, 575, 1213, 576, 1215, 577, 1217, 578, 1219, 579, 1221, 580, 1223, 581, 1225, 582, 1227, 583, 1229, 584, 1231, 585, 1233, 586, 1235, 587, 1237, 588, 1239, 589, 1241, 590, 1243, 591, 1245, 592, 1247, 593, 1249, 594, 1251, 595, 1253, 596, 1255, 597, 1257, 598, 1259, 599, 1261, 600, 1263, 601, 1265, 602, 1267, 603, 1269, 604, 1271, 605, 1273, 606, 1275, 607, 1277, 608, 1279, 609, 1281, 610, 1283, 611, 1285, 612, 1287, 613, 1289, 614, 1291, 615, 1293, 616, 1295, 617, 1297, 618, 1299, 619, 1301, 620, 1303, 621, 1305, 622, 1307, 623, 1309, 624, 1311, 625, 1313, 626, 1315, 627, 1317, 628, 1319, 629, 1321, 630, 1323, 631, 1325, 632, 1327, 633, 1329, 634, 1331, 635, 1333, 636, 1335, 637, 1337, 638, 1339, 639, 1341, 640, 1343, 641, 1345, 642, 1347, 643, 1349, 644, 1351, 645, 1353, 646, 1355, 647, 1357, 648, 1359, 649, 1361, 650, 1363, 651, 1365, 652, 1367, 653, 1369, 654, 1371, 655, 1373, 656, 1375, 657, 1377, 658, 1379, 659, 1381, 660, 1383, 661, 1385, 662, 1387, 663, 1389, 664, 1391, 665, 1393, 666, 1395, 667, 1397, 668, 1399, 669, 1401, 670, 1403, 671, 1405, 672, 1407, 673, 1409, 674, 1411, 675, 1413, 676, 1415, 677, 1417, 678, 1419, 679, 1421, 680, 1423, 681, 1425, 682, 1427, 683, 1429, 684, 1431, 685, 1433, 686, 1435, 687, 1437, 688, 1439, 689, 1441, 690, 1443, 691, 1445, 692, 1447, 693, 1449, 694, 1451, 695, 1453, 696, 1455, 697, 1457, 698, 1459, 699, 1461, 700, 1463, 701, 1465, 702, 1467, 703, 1469, 704, 1471, 705, 1473, 706, 1475, 707, 1477, 708, 1479, 709, 1481, 710, 1483, 711, 1485, 712, 1487, 713, 1489, 714, 1491, 715, 1493, 716, 1495, 717, 1497, 718, 1499, 719, 1501, 720, 1503, 721, 1505, 722, 1507, 723, 1509, 724, 1511, 725, 1513, 726, 1515, 727, 1517, 728, 1519, 729, 1521, 730, 1523, 731, 1525, 732, 1527, 733, 1529, 734, 1531, 735, 1533, 736, 1535, 737, 1537, 738, 1539, 739, 1541, 740, 1543, 741, 1545, 742, 1547, 743, 1549, 744, 1551, 745, 1553, 746, 1555, 747, 1557, 748, 1559, 749, 1561, 750, 1563, 751, 1565, 752, 1567, 753, 1569, 754, 1571, 755, 1573, 756, 1575, 757, 1577, 758, 1579, 759, 1581, 760, 1583, 761, 1585, 762, 1587, 763, 1589, 764, 1591, 765, 1593, 766, 1595, 767, 1597, 768, 1599, 769, 1601, 770, 1603, 771, 1605, 772, 1607, 773, 1609, 774, 1611, 775, 1613, 776, 1615, 777, 1617, 778, 1619, 779, 1621, 780, 1623, 781, 1625, 782, 1627, 783, 1629, 784, 1631, 785, 1633, 786, 1635, 787, 1637, 788, 1639, 789, 1641, 790, 1643, 791, 1645, 792, 1647, 793, 1649, 794, 1651, 795, 1653, 796, 1655, 797, 1657, 798, 1659, 799, 1661, 800, 1663, 801, 1665, 802, 1667, 803, 1669, 804, 1671, 805, 1673, 806, 1675, 807, 1677, 808, 1679, 809, 1681, 810, 1683, 811, 1685, 812, 1687, 813, 1689, 814, 1691, 815, 1693, 816, 1695, 817, 1697, 818, 1699, 819, 1701, 820, 1703, 821, 1705, 822, 1707, 823, 1709, 824, 1711, 825, 1713, 826, 1715, 827, 1717, 828, 1719, 829, 1721, 830, 1723, 831, 1725, 832, 1727, 833, 1, 0, 36, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 48, 57, 65, 70, 1, 0, 48, 57, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 2, 0, 92, 92, 96, 96, 3, 0, 65, 90, 95, 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 65, 90, 95, 95, 97, 122, 161, 65535, 6, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 161, 65535, 8658, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 1, 1730, 1, 0, 0, 0, 3, 1736, 1, 0, 0, 0, 5, 1750, 1, 0, 0, 0, 7, 1763, 1, 0, 0, 0, 9, 1765, 1, 0, 0, 0, 11, 1767, 1, 0, 0, 0, 13, 1769, 1, 0, 0, 0, 15, 1771, 1, 0, 0, 0, 17, 1773, 1, 0, 0, 0, 19, 1775, 1, 0, 0, 0, 21, 1777, 1, 0, 0, 0, 23, 1779, 1, 0, 0, 0, 25, 1781, 1, 0, 0, 0, 27, 1783, 1, 0, 0, 0, 29, 1785, 1, 0, 0, 0, 31, 1787, 1, 0, 0, 0, 33, 1789, 1, 0, 0, 0, 35, 1791, 1, 0, 0, 0, 37, 1793, 1, 0, 0, 0, 39, 1795, 1, 0, 0, 0, 41, 1797, 1, 0, 0, 0, 43, 1799, 1, 0, 0, 0, 45, 1801, 1, 0, 0, 0, 47, 1803, 1, 0, 0, 0, 49, 1805, 1, 0, 0, 0, 51, 1807, 1, 0, 0, 0, 53, 1809, 1, 0, 0, 0, 55, 1811, 1, 0, 0, 0, 57, 1813, 1, 0, 0, 0, 59, 1815, 1, 0, 0, 0, 61, 1817, 1, 0, 0, 0, 63, 1819, 1, 0, 0, 0, 65, 1832, 1, 0, 0, 0, 67, 1845, 1, 0, 0, 0, 69, 1858, 1, 0, 0, 0, 71, 1860, 1, 0, 0, 0, 73, 1866, 1, 0, 0, 0, 75, 1870, 1, 0, 0, 0, 77, 1879, 1, 0, 0, 0, 79, 1886, 1, 0, 0, 0, 81, 1893, 1, 0, 0, 0, 83, 1897, 1, 0, 0, 0, 85, 1901, 1, 0, 0, 0, 87, 1907, 1, 0, 0, 0, 89, 1913, 1, 0, 0, 0, 91, 1923, 1, 0, 0, 0, 93, 1929, 1, 0, 0, 0, 95, 1933, 1, 0, 0, 0, 97, 1942, 1, 0, 0, 0, 99, 1947, 1, 0, 0, 0, 101, 1953, 1, 0, 0, 0, 103, 1960, 1, 0, 0, 0, 105, 1968, 1, 0, 0, 0, 107, 1976, 1, 0, 0, 0, 109, 1980, 1, 0, 0, 0, 111, 1984, 1, 0, 0, 0, 113, 1988, 1, 0, 0, 0, 115, 1994, 1, 0, 0, 0, 117, 1997, 1, 0, 0, 0, 119, 2001, 1, 0, 0, 0, 121, 2012, 1, 0, 0, 0, 123, 2022, 1, 0, 0, 0, 125, 2033, 1, 0, 0, 0, 127, 2044, 1, 0, 0, 0, 129, 2047, 1, 0, 0, 0, 131, 2054, 1, 0, 0, 0, 133, 2064, 1, 0, 0, 0, 135, 2075, 1, 0, 0, 0, 137, 2089, 1, 0, 0, 0, 139, 2093, 1, 0, 0, 0, 141, 2102, 1, 0, 0, 0, 143, 2109, 1, 0, 0, 0, 145, 2115, 1, 0, 0, 0, 147, 2125, 1, 0, 0, 0, 149, 2133, 1, 0, 0, 0, 151, 2140, 1, 0, 0, 0, 153, 2147, 1, 0, 0, 0, 155, 2151, 1, 0, 0, 0, 157, 2162, 1, 0, 0, 0, 159, 2169, 1, 0, 0, 0, 161, 2174, 1, 0, 0, 0, 163, 2182, 1, 0, 0, 0, 165, 2187, 1, 0, 0, 0, 167, 2195, 1, 0, 0, 0, 169, 2203, 1, 0, 0, 0, 171, 2206, 1, 0, 0, 0, 173, 2208, 1, 0, 0, 0, 175, 2214, 1, 0, 0, 0, 177, 2219, 1, 0, 0, 0, 179, 2226, 1, 0, 0, 0, 181, 2238, 1, 0, 0, 0, 183, 2246, 1, 0, 0, 0, 185, 2255, 1, 0, 0, 0, 187, 2260, 1, 0, 0, 0, 189, 2265, 1, 0, 0, 0, 191, 2273, 1, 0, 0, 0, 193, 2286, 1, 0, 0, 0, 195, 2291, 1, 0, 0, 0, 197, 2299, 1, 0, 0, 0, 199, 2305, 1, 0, 0, 0, 201, 2310, 1, 0, 0, 0, 203, 2322, 1, 0, 0, 0, 205, 2332, 1, 0, 0, 0, 207, 2349, 1, 0, 0, 0, 209, 2371, 1, 0, 0, 0, 211, 2390, 1, 0, 0, 0, 213, 2411, 1, 0, 0, 0, 215, 2427, 1, 0, 0, 0, 217, 2438, 1, 0, 0, 0, 219, 2444, 1, 0, 0, 0, 221, 2452, 1, 0, 0, 0, 223, 2463, 1, 0, 0, 0, 225, 2469, 1, 0, 0, 0, 227, 2482, 1, 0, 0, 0, 229, 2487, 1, 0, 0, 0, 231, 2493, 1, 0, 0, 0, 233, 2501, 1, 0, 0, 0, 235, 2510, 1, 0, 0, 0, 237, 2516, 1, 0, 0, 0, 239, 2524, 1, 0, 0, 0, 241, 2534, 1, 0, 0, 0, 243, 2552, 1, 0, 0, 0, 245, 2567, 1, 0, 0, 0, 247, 2584, 1, 0, 0, 0, 249, 2592, 1, 0, 0, 0, 251, 2599, 1, 0, 0, 0, 253, 2611, 1, 0, 0, 0, 255, 2628, 1, 0, 0, 0, 257, 2650, 1, 0, 0, 0, 259, 2658, 1, 0, 0, 0, 261, 2665, 1, 0, 0, 0, 263, 2675, 1, 0, 0, 0, 265, 2686, 1, 0, 0, 0, 267, 2696, 1, 0, 0, 0, 269, 2713, 1, 0, 0, 0, 271, 2727, 1, 0, 0, 0, 273, 2736, 1, 0, 0, 0, 275, 2744, 1, 0, 0, 0, 277, 2755, 1, 0, 0, 0, 279, 2771, 1, 0, 0, 0, 281, 2782, 1, 0, 0, 0, 283, 2801, 1, 0, 0, 0, 285, 2817, 1, 0, 0, 0, 287, 2835, 1, 0, 0, 0, 289, 2847, 1, 0, 0, 0, 291, 2859, 1, 0, 0, 0, 293, 2868, 1, 0, 0, 0, 295, 2877, 1, 0, 0, 0, 297, 2888, 1, 0, 0, 0, 299, 2896, 1, 0, 0, 0, 301, 2901, 1, 0, 0, 0, 303, 2906, 1, 0, 0, 0, 305, 2920, 1, 0, 0, 0, 307, 2926, 1, 0, 0, 0, 309, 2932, 1, 0, 0, 0, 311, 2942, 1, 0, 0, 0, 313, 2953, 1, 0, 0, 0, 315, 2960, 1, 0, 0, 0, 317, 2969, 1, 0, 0, 0, 319, 2980, 1, 0, 0, 0, 321, 2986, 1, 0, 0, 0, 323, 2990, 1, 0, 0, 0, 325, 2995, 1, 0, 0, 0, 327, 3005, 1, 0, 0, 0, 329, 3013, 1, 0, 0, 0, 331, 3026, 1, 0, 0, 0, 333, 3058, 1, 0, 0, 0, 335, 3071, 1, 0, 0, 0, 337, 3084, 1, 0, 0, 0, 339, 3097, 1, 0, 0, 0, 341, 3115, 1, 0, 0, 0, 343, 3148, 1, 0, 0, 0, 345, 3161, 1, 0, 0, 0, 347, 3168, 1, 0, 0, 0, 349, 3180, 1, 0, 0, 0, 351, 3186, 1, 0, 0, 0, 353, 3191, 1, 0, 0, 0, 355, 3200, 1, 0, 0, 0, 357, 3205, 1, 0, 0, 0, 359, 3228, 1, 0, 0, 0, 361, 3256, 1, 0, 0, 0, 363, 3260, 1, 0, 0, 0, 365, 3271, 1, 0, 0, 0, 367, 3275, 1, 0, 0, 0, 369, 3283, 1, 0, 0, 0, 371, 3291, 1, 0, 0, 0, 373, 3299, 1, 0, 0, 0, 375, 3308, 1, 0, 0, 0, 377, 3318, 1, 0, 0, 0, 379, 3329, 1, 0, 0, 0, 381, 3338, 1, 0, 0, 0, 383, 3346, 1, 0, 0, 0, 385, 3354, 1, 0, 0, 0, 387, 3361, 1, 0, 0, 0, 389, 3368, 1, 0, 0, 0, 391, 3378, 1, 0, 0, 0, 393, 3389, 1, 0, 0, 0, 395, 3400, 1, 0, 0, 0, 397, 3408, 1, 0, 0, 0, 399, 3414, 1, 0, 0, 0, 401, 3420, 1, 0, 0, 0, 403, 3428, 1, 0, 0, 0, 405, 3433, 1, 0, 0, 0, 407, 3442, 1, 0, 0, 0, 409, 3453, 1, 0, 0, 0, 411, 3461, 1, 0, 0, 0, 413, 3472, 1, 0, 0, 0, 415, 3486, 1, 0, 0, 0, 417, 3498, 1, 0, 0, 0, 419, 3509, 1, 0, 0, 0, 421, 3517, 1, 0, 0, 0, 423, 3539, 1, 0, 0, 0, 425, 3547, 1, 0, 0, 0, 427, 3558, 1, 0, 0, 0, 429, 3567, 1, 0, 0, 0, 431, 3576, 1, 0, 0, 0, 433, 3579, 1, 0, 0, 0, 435, 3586, 1, 0, 0, 0, 437, 3593, 1, 0, 0, 0, 439, 3598, 1, 0, 0, 0, 441, 3606, 1, 0, 0, 0, 443, 3623, 1, 0, 0, 0, 445, 3645, 1, 0, 0, 0, 447, 3650, 1, 0, 0, 0, 449, 3658, 1, 0, 0, 0, 451, 3663, 1, 0, 0, 0, 453, 3670, 1, 0, 0, 0, 455, 3679, 1, 0, 0, 0, 457, 3689, 1, 0, 0, 0, 459, 3693, 1, 0, 0, 0, 461, 3702, 1, 0, 0, 0, 463, 3709, 1, 0, 0, 0, 465, 3716, 1, 0, 0, 0, 467, 3722, 1, 0, 0, 0, 469, 3729, 1, 0, 0, 0, 471, 3739, 1, 0, 0, 0, 473, 3747, 1, 0, 0, 0, 475, 3757, 1, 0, 0, 0, 477, 3767, 1, 0, 0, 0, 479, 3772, 1, 0, 0, 0, 481, 3780, 1, 0, 0, 0, 483, 3789, 1, 0, 0, 0, 485, 3796, 1, 0, 0, 0, 487, 3800, 1, 0, 0, 0, 489, 3808, 1, 0, 0, 0, 491, 3817, 1, 0, 0, 0, 493, 3827, 1, 0, 0, 0, 495, 3836, 1, 0, 0, 0, 497, 3844, 1, 0, 0, 0, 499, 3850, 1, 0, 0, 0, 501, 3856, 1, 0, 0, 0, 503, 3863, 1, 0, 0, 0, 505, 3870, 1, 0, 0, 0, 507, 3876, 1, 0, 0, 0, 509, 3882, 1, 0, 0, 0, 511, 3888, 1, 0, 0, 0, 513, 3894, 1, 0, 0, 0, 515, 3904, 1, 0, 0, 0, 517, 3908, 1, 0, 0, 0, 519, 3914, 1, 0, 0, 0, 521, 3922, 1, 0, 0, 0, 523, 3929, 1, 0, 0, 0, 525, 3937, 1, 0, 0, 0, 527, 3945, 1, 0, 0, 0, 529, 3951, 1, 0, 0, 0, 531, 3956, 1, 0, 0, 0, 533, 3963, 1, 0, 0, 0, 535, 3968, 1, 0, 0, 0, 537, 3973, 1, 0, 0, 0, 539, 3982, 1, 0, 0, 0, 541, 3989, 1, 0, 0, 0, 543, 3991, 1, 0, 0, 0, 545, 3999, 1, 0, 0, 0, 547, 4009, 1, 0, 0, 0, 549, 4013, 1, 0, 0, 0, 551, 4020, 1, 0, 0, 0, 553, 4023, 1, 0, 0, 0, 555, 4028, 1, 0, 0, 0, 557, 4034, 1, 0, 0, 0, 559, 4042, 1, 0, 0, 0, 561, 4051, 1, 0, 0, 0, 563, 4057, 1, 0, 0, 0, 565, 4066, 1, 0, 0, 0, 567, 4074, 1, 0, 0, 0, 569, 4081, 1, 0, 0, 0, 571, 4091, 1, 0, 0, 0, 573, 4096, 1, 0, 0, 0, 575, 4101, 1, 0, 0, 0, 577, 4106, 1, 0, 0, 0, 579, 4115, 1, 0, 0, 0, 581, 4122, 1, 0, 0, 0, 583, 4128, 1, 0, 0, 0, 585, 4138, 1, 0, 0, 0, 587, 4148, 1, 0, 0, 0, 589, 4163, 1, 0, 0, 0, 591, 4172, 1, 0, 0, 0, 593, 4175, 1, 0, 0, 0, 595, 4185, 1, 0, 0, 0, 597, 4195, 1, 0, 0, 0, 599, 4201, 1, 0, 0, 0, 601, 4211, 1, 0, 0, 0, 603, 4217, 1, 0, 0, 0, 605, 4226, 1, 0, 0, 0, 607, 4237, 1, 0, 0, 0, 609, 4247, 1, 0, 0, 0, 611, 4253, 1, 0, 0, 0, 613, 4259, 1, 0, 0, 0, 615, 4265, 1, 0, 0, 0, 617, 4277, 1, 0, 0, 0, 619, 4284, 1, 0, 0, 0, 621, 4293, 1, 0, 0, 0, 623, 4306, 1, 0, 0, 0, 625, 4314, 1, 0, 0, 0, 627, 4318, 1, 0, 0, 0, 629, 4326, 1, 0, 0, 0, 631, 4336, 1, 0, 0, 0, 633, 4349, 1, 0, 0, 0, 635, 4358, 1, 0, 0, 0, 637, 4363, 1, 0, 0, 0, 639, 4371, 1, 0, 0, 0, 641, 4374, 1, 0, 0, 0, 643, 4384, 1, 0, 0, 0, 645, 4392, 1, 0, 0, 0, 647, 4397, 1, 0, 0, 0, 649, 4399, 1, 0, 0, 0, 651, 4403, 1, 0, 0, 0, 653, 4414, 1, 0, 0, 0, 655, 4423, 1, 0, 0, 0, 657, 4429, 1, 0, 0, 0, 659, 4441, 1, 0, 0, 0, 661, 4450, 1, 0, 0, 0, 663, 4456, 1, 0, 0, 0, 665, 4461, 1, 0, 0, 0, 667, 4469, 1, 0, 0, 0, 669, 4477, 1, 0, 0, 0, 671, 4483, 1, 0, 0, 0, 673, 4488, 1, 0, 0, 0, 675, 4495, 1, 0, 0, 0, 677, 4500, 1, 0, 0, 0, 679, 4506, 1, 0, 0, 0, 681, 4511, 1, 0, 0, 0, 683, 4517, 1, 0, 0, 0, 685, 4524, 1, 0, 0, 0, 687, 4527, 1, 0, 0, 0, 689, 4532, 1, 0, 0, 0, 691, 4538, 1, 0, 0, 0, 693, 4548, 1, 0, 0, 0, 695, 4563, 1, 0, 0, 0, 697, 4572, 1, 0, 0, 0, 699, 4580, 1, 0, 0, 0, 701, 4585, 1, 0, 0, 0, 703, 4592, 1, 0, 0, 0, 705, 4598, 1, 0, 0, 0, 707, 4600, 1, 0, 0, 0, 709, 4605, 1, 0, 0, 0, 711, 4609, 1, 0, 0, 0, 713, 4617, 1, 0, 0, 0, 715, 4623, 1, 0, 0, 0, 717, 4636, 1, 0, 0, 0, 719, 4644, 1, 0, 0, 0, 721, 4648, 1, 0, 0, 0, 723, 4657, 1, 0, 0, 0, 725, 4664, 1, 0, 0, 0, 727, 4670, 1, 0, 0, 0, 729, 4685, 1, 0, 0, 0, 731, 4706, 1, 0, 0, 0, 733, 4719, 1, 0, 0, 0, 735, 4726, 1, 0, 0, 0, 737, 4730, 1, 0, 0, 0, 739, 4737, 1, 0, 0, 0, 741, 4746, 1, 0, 0, 0, 743, 4750, 1, 0, 0, 0, 745, 4755, 1, 0, 0, 0, 747, 4764, 1, 0, 0, 0, 749, 4771, 1, 0, 0, 0, 751, 4778, 1, 0, 0, 0, 753, 4784, 1, 0, 0, 0, 755, 4789, 1, 0, 0, 0, 757, 4794, 1, 0, 0, 0, 759, 4803, 1, 0, 0, 0, 761, 4809, 1, 0, 0, 0, 763, 4814, 1, 0, 0, 0, 765, 4820, 1, 0, 0, 0, 767, 4829, 1, 0, 0, 0, 769, 4837, 1, 0, 0, 0, 771, 4843, 1, 0, 0, 0, 773, 4849, 1, 0, 0, 0, 775, 4857, 1, 0, 0, 0, 777, 4861, 1, 0, 0, 0, 779, 4866, 1, 0, 0, 0, 781, 4869, 1, 0, 0, 0, 783, 4880, 1, 0, 0, 0, 785, 4893, 1, 0, 0, 0, 787, 4898, 1, 0, 0, 0, 789, 4908, 1, 0, 0, 0, 791, 4919, 1, 0, 0, 0, 793, 4923, 1, 0, 0, 0, 795, 4931, 1, 0, 0, 0, 797, 4938, 1, 0, 0, 0, 799, 4946, 1, 0, 0, 0, 801, 4953, 1, 0, 0, 0, 803, 4958, 1, 0, 0, 0, 805, 4967, 1, 0, 0, 0, 807, 4974, 1, 0, 0, 0, 809, 4980, 1, 0, 0, 0, 811, 4987, 1, 0, 0, 0, 813, 4995, 1, 0, 0, 0, 815, 5002, 1, 0, 0, 0, 817, 5015, 1, 0, 0, 0, 819, 5022, 1, 0, 0, 0, 821, 5025, 1, 0, 0, 0, 823, 5029, 1, 0, 0, 0, 825, 5036, 1, 0, 0, 0, 827, 5041, 1, 0, 0, 0, 829, 5045, 1, 0, 0, 0, 831, 5048, 1, 0, 0, 0, 833, 5053, 1, 0, 0, 0, 835, 5058, 1, 0, 0, 0, 837, 5068, 1, 0, 0, 0, 839, 5077, 1, 0, 0, 0, 841, 5084, 1, 0, 0, 0, 843, 5092, 1, 0, 0, 0, 845, 5095, 1, 0, 0, 0, 847, 5101, 1, 0, 0, 0, 849, 5110, 1, 0, 0, 0, 851, 5121, 1, 0, 0, 0, 853, 5128, 1, 0, 0, 0, 855, 5132, 1, 0, 0, 0, 857, 5138, 1, 0, 0, 0, 859, 5145, 1, 0, 0, 0, 861, 5150, 1, 0, 0, 0, 863, 5159, 1, 0, 0, 0, 865, 5167, 1, 0, 0, 0, 867, 5178, 1, 0, 0, 0, 869, 5184, 1, 0, 0, 0, 871, 5188, 1, 0, 0, 0, 873, 5198, 1, 0, 0, 0, 875, 5213, 1, 0, 0, 0, 877, 5228, 1, 0, 0, 0, 879, 5255, 1, 0, 0, 0, 881, 5282, 1, 0, 0, 0, 883, 5306, 1, 0, 0, 0, 885, 5332, 1, 0, 0, 0, 887, 5343, 1, 0, 0, 0, 889, 5350, 1, 0, 0, 0, 891, 5358, 1, 0, 0, 0, 893, 5368, 1, 0, 0, 0, 895, 5375, 1, 0, 0, 0, 897, 5384, 1, 0, 0, 0, 899, 5389, 1, 0, 0, 0, 901, 5402, 1, 0, 0, 0, 903, 5418, 1, 0, 0, 0, 905, 5434, 1, 0, 0, 0, 907, 5442, 1, 0, 0, 0, 909, 5448, 1, 0, 0, 0, 911, 5454, 1, 0, 0, 0, 913, 5458, 1, 0, 0, 0, 915, 5467, 1, 0, 0, 0, 917, 5475, 1, 0, 0, 0, 919, 5481, 1, 0, 0, 0, 921, 5491, 1, 0, 0, 0, 923, 5501, 1, 0, 0, 0, 925, 5508, 1, 0, 0, 0, 927, 5517, 1, 0, 0, 0, 929, 5525, 1, 0, 0, 0, 931, 5534, 1, 0, 0, 0, 933, 5543, 1, 0, 0, 0, 935, 5551, 1, 0, 0, 0, 937, 5557, 1, 0, 0, 0, 939, 5568, 1, 0, 0, 0, 941, 5579, 1, 0, 0, 0, 943, 5589, 1, 0, 0, 0, 945, 5596, 1, 0, 0, 0, 947, 5608, 1, 0, 0, 0, 949, 5614, 1, 0, 0, 0, 951, 5620, 1, 0, 0, 0, 953, 5625, 1, 0, 0, 0, 955, 5630, 1, 0, 0, 0, 957, 5636, 1, 0, 0, 0, 959, 5641, 1, 0, 0, 0, 961, 5650, 1, 0, 0, 0, 963, 5658, 1, 0, 0, 0, 965, 5668, 1, 0, 0, 0, 967, 5672, 1, 0, 0, 0, 969, 5683, 1, 0, 0, 0, 971, 5695, 1, 0, 0, 0, 973, 5703, 1, 0, 0, 0, 975, 5713, 1, 0, 0, 0, 977, 5723, 1, 0, 0, 0, 979, 5734, 1, 0, 0, 0, 981, 5749, 1, 0, 0, 0, 983, 5757, 1, 0, 0, 0, 985, 5768, 1, 0, 0, 0, 987, 5777, 1, 0, 0, 0, 989, 5786, 1, 0, 0, 0, 991, 5795, 1, 0, 0, 0, 993, 5803, 1, 0, 0, 0, 995, 5812, 1, 0, 0, 0, 997, 5820, 1, 0, 0, 0, 999, 5827, 1, 0, 0, 0, 1001, 5838, 1, 0, 0, 0, 1003, 5846, 1, 0, 0, 0, 1005, 5854, 1, 0, 0, 0, 1007, 5860, 1, 0, 0, 0, 1009, 5868, 1, 0, 0, 0, 1011, 5877, 1, 0, 0, 0, 1013, 5884, 1, 0, 0, 0, 1015, 5891, 1, 0, 0, 0, 1017, 5912, 1, 0, 0, 0, 1019, 5928, 1, 0, 0, 0, 1021, 5950, 1, 0, 0, 0, 1023, 5968, 1, 0, 0, 0, 1025, 5978, 1, 0, 0, 0, 1027, 5986, 1, 0, 0, 0, 1029, 5993, 1, 0, 0, 0, 1031, 5999, 1, 0, 0, 0, 1033, 6004, 1, 0, 0, 0, 1035, 6013, 1, 0, 0, 0, 1037, 6020, 1, 0, 0, 0, 1039, 6028, 1, 0, 0, 0, 1041, 6044, 1, 0, 0, 0, 1043, 6057, 1, 0, 0, 0, 1045, 6072, 1, 0, 0, 0, 1047, 6076, 1, 0, 0, 0, 1049, 6086, 1, 0, 0, 0, 1051, 6097, 1, 0, 0, 0, 1053, 6102, 1, 0, 0, 0, 1055, 6107, 1, 0, 0, 0, 1057, 6117, 1, 0, 0, 0, 1059, 6123, 1, 0, 0, 0, 1061, 6130, 1, 0, 0, 0, 1063, 6142, 1, 0, 0, 0, 1065, 6148, 1, 0, 0, 0, 1067, 6162, 1, 0, 0, 0, 1069, 6173, 1, 0, 0, 0, 1071, 6186, 1, 0, 0, 0, 1073, 6193, 1, 0, 0, 0, 1075, 6200, 1, 0, 0, 0, 1077, 6207, 1, 0, 0, 0, 1079, 6215, 1, 0, 0, 0, 1081, 6224, 1, 0, 0, 0, 1083, 6231, 1, 0, 0, 0, 1085, 6236, 1, 0, 0, 0, 1087, 6246, 1, 0, 0, 0, 1089, 6255, 1, 0, 0, 0, 1091, 6265, 1, 0, 0, 0, 1093, 6278, 1, 0, 0, 0, 1095, 6290, 1, 0, 0, 0, 1097, 6298, 1, 0, 0, 0, 1099, 6311, 1, 0, 0, 0, 1101, 6315, 1, 0, 0, 0, 1103, 6321, 1, 0, 0, 0, 1105, 6326, 1, 0, 0, 0, 1107, 6332, 1, 0, 0, 0, 1109, 6337, 1, 0, 0, 0, 1111, 6345, 1, 0, 0, 0, 1113, 6352, 1, 0, 0, 0, 1115, 6357, 1, 0, 0, 0, 1117, 6362, 1, 0, 0, 0, 1119, 6371, 1, 0, 0, 0, 1121, 6380, 1, 0, 0, 0, 1123, 6385, 1, 0, 0, 0, 1125, 6392, 1, 0, 0, 0, 1127, 6398, 1, 0, 0, 0, 1129, 6407, 1, 0, 0, 0, 1131, 6421, 1, 0, 0, 0, 1133, 6434, 1, 0, 0, 0, 1135, 6438, 1, 0, 0, 0, 1137, 6446, 1, 0, 0, 0, 1139, 6455, 1, 0, 0, 0, 1141, 6468, 1, 0, 0, 0, 1143, 6477, 1, 0, 0, 0, 1145, 6488, 1, 0, 0, 0, 1147, 6493, 1, 0, 0, 0, 1149, 6500, 1, 0, 0, 0, 1151, 6506, 1, 0, 0, 0, 1153, 6512, 1, 0, 0, 0, 1155, 6522, 1, 0, 0, 0, 1157, 6529, 1, 0, 0, 0, 1159, 6540, 1, 0, 0, 0, 1161, 6551, 1, 0, 0, 0, 1163, 6563, 1, 0, 0, 0, 1165, 6569, 1, 0, 0, 0, 1167, 6576, 1, 0, 0, 0, 1169, 6584, 1, 0, 0, 0, 1171, 6591, 1, 0, 0, 0, 1173, 6601, 1, 0, 0, 0, 1175, 6607, 1, 0, 0, 0, 1177, 6623, 1, 0, 0, 0, 1179, 6631, 1, 0, 0, 0, 1181, 6643, 1, 0, 0, 0, 1183, 6656, 1, 0, 0, 0, 1185, 6666, 1, 0, 0, 0, 1187, 6670, 1, 0, 0, 0, 1189, 6680, 1, 0, 0, 0, 1191, 6686, 1, 0, 0, 0, 1193, 6693, 1, 0, 0, 0, 1195, 6705, 1, 0, 0, 0, 1197, 6711, 1, 0, 0, 0, 1199, 6722, 1, 0, 0, 0, 1201, 6734, 1, 0, 0, 0, 1203, 6745, 1, 0, 0, 0, 1205, 6750, 1, 0, 0, 0, 1207, 6759, 1, 0, 0, 0, 1209, 6769, 1, 0, 0, 0, 1211, 6779, 1, 0, 0, 0, 1213, 6784, 1, 0, 0, 0, 1215, 6789, 1, 0, 0, 0, 1217, 6794, 1, 0, 0, 0, 1219, 6799, 1, 0, 0, 0, 1221, 6809, 1, 0, 0, 0, 1223, 6823, 1, 0, 0, 0, 1225, 6839, 1, 0, 0, 0, 1227, 6846, 1, 0, 0, 0, 1229, 6849, 1, 0, 0, 0, 1231, 6855, 1, 0, 0, 0, 1233, 6871, 1, 0, 0, 0, 1235, 6880, 1, 0, 0, 0, 1237, 6892, 1, 0, 0, 0, 1239, 6911, 1, 0, 0, 0, 1241, 6934, 1, 0, 0, 0, 1243, 6959, 1, 0, 0, 0, 1245, 6969, 1, 0, 0, 0, 1247, 6980, 1, 0, 0, 0, 1249, 6990, 1, 0, 0, 0, 1251, 7002, 1, 0, 0, 0, 1253, 7008, 1, 0, 0, 0, 1255, 7016, 1, 0, 0, 0, 1257, 7032, 1, 0, 0, 0, 1259, 7045, 1, 0, 0, 0, 1261, 7060, 1, 0, 0, 0, 1263, 7065, 1, 0, 0, 0, 1265, 7070, 1, 0, 0, 0, 1267, 7079, 1, 0, 0, 0, 1269, 7087, 1, 0, 0, 0, 1271, 7092, 1, 0, 0, 0, 1273, 7100, 1, 0, 0, 0, 1275, 7110, 1, 0, 0, 0, 1277, 7122, 1, 0, 0, 0, 1279, 7128, 1, 0, 0, 0, 1281, 7140, 1, 0, 0, 0, 1283, 7146, 1, 0, 0, 0, 1285, 7153, 1, 0, 0, 0, 1287, 7161, 1, 0, 0, 0, 1289, 7170, 1, 0, 0, 0, 1291, 7178, 1, 0, 0, 0, 1293, 7185, 1, 0, 0, 0, 1295, 7191, 1, 0, 0, 0, 1297, 7198, 1, 0, 0, 0, 1299, 7204, 1, 0, 0, 0, 1301, 7210, 1, 0, 0, 0, 1303, 7215, 1, 0, 0, 0, 1305, 7241, 1, 0, 0, 0, 1307, 7264, 1, 0, 0, 0, 1309, 7287, 1, 0, 0, 0, 1311, 7312, 1, 0, 0, 0, 1313, 7318, 1, 0, 0, 0, 1315, 7325, 1, 0, 0, 0, 1317, 7331, 1, 0, 0, 0, 1319, 7340, 1, 0, 0, 0, 1321, 7350, 1, 0, 0, 0, 1323, 7356, 1, 0, 0, 0, 1325, 7363, 1, 0, 0, 0, 1327, 7371, 1, 0, 0, 0, 1329, 7380, 1, 0, 0, 0, 1331, 7388, 1, 0, 0, 0, 1333, 7397, 1, 0, 0, 0, 1335, 7406, 1, 0, 0, 0, 1337, 7414, 1, 0, 0, 0, 1339, 7422, 1, 0, 0, 0, 1341, 7427, 1, 0, 0, 0, 1343, 7436, 1, 0, 0, 0, 1345, 7441, 1, 0, 0, 0, 1347, 7450, 1, 0, 0, 0, 1349, 7456, 1, 0, 0, 0, 1351, 7469, 1, 0, 0, 0, 1353, 7476, 1, 0, 0, 0, 1355, 7481, 1, 0, 0, 0, 1357, 7488, 1, 0, 0, 0, 1359, 7496, 1, 0, 0, 0, 1361, 7501, 1, 0, 0, 0, 1363, 7507, 1, 0, 0, 0, 1365, 7512, 1, 0, 0, 0, 1367, 7517, 1, 0, 0, 0, 1369, 7521, 1, 0, 0, 0, 1371, 7526, 1, 0, 0, 0, 1373, 7536, 1, 0, 0, 0, 1375, 7548, 1, 0, 0, 0, 1377, 7559, 1, 0, 0, 0, 1379, 7572, 1, 0, 0, 0, 1381, 7580, 1, 0, 0, 0, 1383, 7590, 1, 0, 0, 0, 1385, 7596, 1, 0, 0, 0, 1387, 7604, 1, 0, 0, 0, 1389, 7616, 1, 0, 0, 0, 1391, 7630, 1, 0, 0, 0, 1393, 7640, 1, 0, 0, 0, 1395, 7652, 1, 0, 0, 0, 1397, 7658, 1, 0, 0, 0, 1399, 7664, 1, 0, 0, 0, 1401, 7671, 1, 0, 0, 0, 1403, 7681, 1, 0, 0, 0, 1405, 7697, 1, 0, 0, 0, 1407, 7709, 1, 0, 0, 0, 1409, 7720, 1, 0, 0, 0, 1411, 7733, 1, 0, 0, 0, 1413, 7742, 1, 0, 0, 0, 1415, 7749, 1, 0, 0, 0, 1417, 7758, 1, 0, 0, 0, 1419, 7765, 1, 0, 0, 0, 1421, 7773, 1, 0, 0, 0, 1423, 7784, 1, 0, 0, 0, 1425, 7801, 1, 0, 0, 0, 1427, 7811, 1, 0, 0, 0, 1429, 7818, 1, 0, 0, 0, 1431, 7827, 1, 0, 0, 0, 1433, 7840, 1, 0, 0, 0, 1435, 7845, 1, 0, 0, 0, 1437, 7852, 1, 0, 0, 0, 1439, 7861, 1, 0, 0, 0, 1441, 7864, 1, 0, 0, 0, 1443, 7871, 1, 0, 0, 0, 1445, 7882, 1, 0, 0, 0, 1447, 7891, 1, 0, 0, 0, 1449, 7900, 1, 0, 0, 0, 1451, 7908, 1, 0, 0, 0, 1453, 7926, 1, 0, 0, 0, 1455, 7938, 1, 0, 0, 0, 1457, 7944, 1, 0, 0, 0, 1459, 7952, 1, 0, 0, 0, 1461, 7959, 1, 0, 0, 0, 1463, 7965, 1, 0, 0, 0, 1465, 7970, 1, 0, 0, 0, 1467, 7975, 1, 0, 0, 0, 1469, 7982, 1, 0, 0, 0, 1471, 7986, 1, 0, 0, 0, 1473, 7991, 1, 0, 0, 0, 1475, 8004, 1, 0, 0, 0, 1477, 8011, 1, 0, 0, 0, 1479, 8024, 1, 0, 0, 0, 1481, 8032, 1, 0, 0, 0, 1483, 8041, 1, 0, 0, 0, 1485, 8052, 1, 0, 0, 0, 1487, 8060, 1, 0, 0, 0, 1489, 8067, 1, 0, 0, 0, 1491, 8074, 1, 0, 0, 0, 1493, 8081, 1, 0, 0, 0, 1495, 8088, 1, 0, 0, 0, 1497, 8094, 1, 0, 0, 0, 1499, 8102, 1, 0, 0, 0, 1501, 8112, 1, 0, 0, 0, 1503, 8124, 1, 0, 0, 0, 1505, 8129, 1, 0, 0, 0, 1507, 8133, 1, 0, 0, 0, 1509, 8139, 1, 0, 0, 0, 1511, 8157, 1, 0, 0, 0, 1513, 8162, 1, 0, 0, 0, 1515, 8169, 1, 0, 0, 0, 1517, 8176, 1, 0, 0, 0, 1519, 8183, 1, 0, 0, 0, 1521, 8188, 1, 0, 0, 0, 1523, 8193, 1, 0, 0, 0, 1525, 8198, 1, 0, 0, 0, 1527, 8203, 1, 0, 0, 0, 1529, 8208, 1, 0, 0, 0, 1531, 8214, 1, 0, 0, 0, 1533, 8219, 1, 0, 0, 0, 1535, 8224, 1, 0, 0, 0, 1537, 8232, 1, 0, 0, 0, 1539, 8241, 1, 0, 0, 0, 1541, 8247, 1, 0, 0, 0, 1543, 8254, 1, 0, 0, 0, 1545, 8260, 1, 0, 0, 0, 1547, 8268, 1, 0, 0, 0, 1549, 8276, 1, 0, 0, 0, 1551, 8283, 1, 0, 0, 0, 1553, 8291, 1, 0, 0, 0, 1555, 8299, 1, 0, 0, 0, 1557, 8307, 1, 0, 0, 0, 1559, 8319, 1, 0, 0, 0, 1561, 8326, 1, 0, 0, 0, 1563, 8331, 1, 0, 0, 0, 1565, 8343, 1, 0, 0, 0, 1567, 8350, 1, 0, 0, 0, 1569, 8358, 1, 0, 0, 0, 1571, 8367, 1, 0, 0, 0, 1573, 8381, 1, 0, 0, 0, 1575, 8386, 1, 0, 0, 0, 1577, 8393, 1, 0, 0, 0, 1579, 8397, 1, 0, 0, 0, 1581, 8399, 1, 0, 0, 0, 1583, 8401, 1, 0, 0, 0, 1585, 8404, 1, 0, 0, 0, 1587, 8406, 1, 0, 0, 0, 1589, 8409, 1, 0, 0, 0, 1591, 8411, 1, 0, 0, 0, 1593, 8413, 1, 0, 0, 0, 1595, 8415, 1, 0, 0, 0, 1597, 8417, 1, 0, 0, 0, 1599, 8419, 1, 0, 0, 0, 1601, 8429, 1, 0, 0, 0, 1603, 8433, 1, 0, 0, 0, 1605, 8461, 1, 0, 0, 0, 1607, 8476, 1, 0, 0, 0, 1609, 8479, 1, 0, 0, 0, 1611, 8481, 1, 0, 0, 0, 1613, 8483, 1, 0, 0, 0, 1615, 8485, 1, 0, 0, 0, 1617, 8492, 1, 0, 0, 0, 1619, 8498, 1, 0, 0, 0, 1621, 8505, 1, 0, 0, 0, 1623, 8507, 1, 0, 0, 0, 1625, 8510, 1, 0, 0, 0, 1627, 8513, 1, 0, 0, 0, 1629, 8516, 1, 0, 0, 0, 1631, 8519, 1, 0, 0, 0, 1633, 8521, 1, 0, 0, 0, 1635, 8523, 1, 0, 0, 0, 1637, 8526, 1, 0, 0, 0, 1639, 8529, 1, 0, 0, 0, 1641, 8531, 1, 0, 0, 0, 1643, 8533, 1, 0, 0, 0, 1645, 8536, 1, 0, 0, 0, 1647, 8538, 1, 0, 0, 0, 1649, 8541, 1, 0, 0, 0, 1651, 8544, 1, 0, 0, 0, 1653, 8546, 1, 0, 0, 0, 1655, 8549, 1, 0, 0, 0, 1657, 8552, 1, 0, 0, 0, 1659, 8556, 1, 0, 0, 0, 1661, 8559, 1, 0, 0, 0, 1663, 8562, 1, 0, 0, 0, 1665, 8566, 1, 0, 0, 0, 1667, 8570, 1, 0, 0, 0, 1669, 8572, 1, 0, 0, 0, 1671, 8575, 1, 0, 0, 0, 1673, 8578, 1, 0, 0, 0, 1675, 8581, 1, 0, 0, 0, 1677, 8584, 1, 0, 0, 0, 1679, 8588, 1, 0, 0, 0, 1681, 8591, 1, 0, 0, 0, 1683, 8595, 1, 0, 0, 0, 1685, 8599, 1, 0, 0, 0, 1687, 8601, 1, 0, 0, 0, 1689, 8603, 1, 0, 0, 0, 1691, 8605, 1, 0, 0, 0, 1693, 8608, 1, 0, 0, 0, 1695, 8612, 1, 0, 0, 0, 1697, 8615, 1, 0, 0, 0, 1699, 8617, 1, 0, 0, 0, 1701, 8619, 1, 0, 0, 0, 1703, 8622, 1, 0, 0, 0, 1705, 8625, 1, 0, 0, 0, 1707, 8628, 1, 0, 0, 0, 1709, 8631, 1, 0, 0, 0, 1711, 8633, 1, 0, 0, 0, 1713, 8635, 1, 0, 0, 0, 1715, 8638, 1, 0, 0, 0, 1717, 8643, 1, 0, 0, 0, 1719, 8647, 1, 0, 0, 0, 1721, 8652, 1, 0, 0, 0, 1723, 8656, 1, 0, 0, 0, 1725, 8659, 1, 0, 0, 0, 1727, 8662, 1, 0, 0, 0, 1729, 1731, 7, 0, 0, 0, 1730, 1729, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1730, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1735, 6, 0, 0, 0, 1735, 2, 1, 0, 0, 0, 1736, 1737, 5, 47, 0, 0, 1737, 1738, 5, 42, 0, 0, 1738, 1742, 1, 0, 0, 0, 1739, 1741, 9, 0, 0, 0, 1740, 1739, 1, 0, 0, 0, 1741, 1744, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1742, 1740, 1, 0, 0, 0, 1743, 1745, 1, 0, 0, 0, 1744, 1742, 1, 0, 0, 0, 1745, 1746, 5, 42, 0, 0, 1746, 1747, 5, 47, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 6, 1, 1, 0, 1749, 4, 1, 0, 0, 0, 1750, 1751, 5, 45, 0, 0, 1751, 1752, 5, 45, 0, 0, 1752, 1756, 1, 0, 0, 0, 1753, 1755, 9, 0, 0, 0, 1754, 1753, 1, 0, 0, 0, 1755, 1758, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1756, 1754, 1, 0, 0, 0, 1757, 1759, 1, 0, 0, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1760, 5, 10, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 6, 2, 1, 0, 1762, 6, 1, 0, 0, 0, 1763, 1764, 7, 1, 0, 0, 1764, 8, 1, 0, 0, 0, 1765, 1766, 7, 2, 0, 0, 1766, 10, 1, 0, 0, 0, 1767, 1768, 7, 3, 0, 0, 1768, 12, 1, 0, 0, 0, 1769, 1770, 7, 4, 0, 0, 1770, 14, 1, 0, 0, 0, 1771, 1772, 7, 5, 0, 0, 1772, 16, 1, 0, 0, 0, 1773, 1774, 7, 6, 0, 0, 1774, 18, 1, 0, 0, 0, 1775, 1776, 7, 7, 0, 0, 1776, 20, 1, 0, 0, 0, 1777, 1778, 7, 8, 0, 0, 1778, 22, 1, 0, 0, 0, 1779, 1780, 7, 9, 0, 0, 1780, 24, 1, 0, 0, 0, 1781, 1782, 7, 10, 0, 0, 1782, 26, 1, 0, 0, 0, 1783, 1784, 7, 11, 0, 0, 1784, 28, 1, 0, 0, 0, 1785, 1786, 7, 12, 0, 0, 1786, 30, 1, 0, 0, 0, 1787, 1788, 7, 13, 0, 0, 1788, 32, 1, 0, 0, 0, 1789, 1790, 7, 14, 0, 0, 1790, 34, 1, 0, 0, 0, 1791, 1792, 7, 15, 0, 0, 1792, 36, 1, 0, 0, 0, 1793, 1794, 7, 16, 0, 0, 1794, 38, 1, 0, 0, 0, 1795, 1796, 7, 17, 0, 0, 1796, 40, 1, 0, 0, 0, 1797, 1798, 7, 18, 0, 0, 1798, 42, 1, 0, 0, 0, 1799, 1800, 7, 19, 0, 0, 1800, 44, 1, 0, 0, 0, 1801, 1802, 7, 20, 0, 0, 1802, 46, 1, 0, 0, 0, 1803, 1804, 7, 21, 0, 0, 1804, 48, 1, 0, 0, 0, 1805, 1806, 7, 22, 0, 0, 1806, 50, 1, 0, 0, 0, 1807, 1808, 7, 23, 0, 0, 1808, 52, 1, 0, 0, 0, 1809, 1810, 7, 24, 0, 0, 1810, 54, 1, 0, 0, 0, 1811, 1812, 7, 25, 0, 0, 1812, 56, 1, 0, 0, 0, 1813, 1814, 7, 26, 0, 0, 1814, 58, 1, 0, 0, 0, 1815, 1816, 7, 27, 0, 0, 1816, 60, 1, 0, 0, 0, 1817, 1818, 7, 28, 0, 0, 1818, 62, 1, 0, 0, 0, 1819, 1827, 5, 34, 0, 0, 1820, 1821, 5, 92, 0, 0, 1821, 1826, 9, 0, 0, 0, 1822, 1823, 5, 34, 0, 0, 1823, 1826, 5, 34, 0, 0, 1824, 1826, 8, 29, 0, 0, 1825, 1820, 1, 0, 0, 0, 1825, 1822, 1, 0, 0, 0, 1825, 1824, 1, 0, 0, 0, 1826, 1829, 1, 0, 0, 0, 1827, 1825, 1, 0, 0, 0, 1827, 1828, 1, 0, 0, 0, 1828, 1830, 1, 0, 0, 0, 1829, 1827, 1, 0, 0, 0, 1830, 1831, 5, 34, 0, 0, 1831, 64, 1, 0, 0, 0, 1832, 1840, 5, 39, 0, 0, 1833, 1834, 5, 92, 0, 0, 1834, 1839, 9, 0, 0, 0, 1835, 1836, 5, 39, 0, 0, 1836, 1839, 5, 39, 0, 0, 1837, 1839, 8, 30, 0, 0, 1838, 1833, 1, 0, 0, 0, 1838, 1835, 1, 0, 0, 0, 1838, 1837, 1, 0, 0, 0, 1839, 1842, 1, 0, 0, 0, 1840, 1838, 1, 0, 0, 0, 1840, 1841, 1, 0, 0, 0, 1841, 1843, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1843, 1844, 5, 39, 0, 0, 1844, 66, 1, 0, 0, 0, 1845, 1853, 5, 96, 0, 0, 1846, 1847, 5, 92, 0, 0, 1847, 1852, 9, 0, 0, 0, 1848, 1849, 5, 96, 0, 0, 1849, 1852, 5, 96, 0, 0, 1850, 1852, 8, 31, 0, 0, 1851, 1846, 1, 0, 0, 0, 1851, 1848, 1, 0, 0, 0, 1851, 1850, 1, 0, 0, 0, 1852, 1855, 1, 0, 0, 0, 1853, 1851, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1856, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1856, 1857, 5, 96, 0, 0, 1857, 68, 1, 0, 0, 0, 1858, 1859, 3, 7, 3, 0, 1859, 70, 1, 0, 0, 0, 1860, 1861, 3, 7, 3, 0, 1861, 1862, 3, 9, 4, 0, 1862, 1863, 3, 35, 17, 0, 1863, 1864, 3, 41, 20, 0, 1864, 1865, 3, 45, 22, 0, 1865, 72, 1, 0, 0, 0, 1866, 1867, 3, 7, 3, 0, 1867, 1868, 3, 9, 4, 0, 1868, 1869, 3, 43, 21, 0, 1869, 74, 1, 0, 0, 0, 1870, 1871, 3, 7, 3, 0, 1871, 1872, 3, 9, 4, 0, 1872, 1873, 3, 43, 21, 0, 1873, 1874, 3, 35, 17, 0, 1874, 1875, 3, 29, 14, 0, 1875, 1876, 3, 47, 23, 0, 1876, 1877, 3, 45, 22, 0, 1877, 1878, 3, 15, 7, 0, 1878, 76, 1, 0, 0, 0, 1879, 1880, 3, 7, 3, 0, 1880, 1881, 3, 11, 5, 0, 1881, 1882, 3, 11, 5, 0, 1882, 1883, 3, 15, 7, 0, 1883, 1884, 3, 43, 21, 0, 1884, 1885, 3, 43, 21, 0, 1885, 78, 1, 0, 0, 0, 1886, 1887, 3, 7, 3, 0, 1887, 1888, 3, 11, 5, 0, 1888, 1889, 3, 45, 22, 0, 1889, 1890, 3, 23, 11, 0, 1890, 1891, 3, 35, 17, 0, 1891, 1892, 3, 33, 16, 0, 1892, 80, 1, 0, 0, 0, 1893, 1894, 3, 7, 3, 0, 1894, 1895, 3, 13, 6, 0, 1895, 1896, 3, 7, 3, 0, 1896, 82, 1, 0, 0, 0, 1897, 1898, 3, 7, 3, 0, 1898, 1899, 3, 13, 6, 0, 1899, 1900, 3, 13, 6, 0, 1900, 84, 1, 0, 0, 0, 1901, 1902, 3, 7, 3, 0, 1902, 1903, 3, 13, 6, 0, 1903, 1904, 3, 31, 15, 0, 1904, 1905, 3, 23, 11, 0, 1905, 1906, 3, 33, 16, 0, 1906, 86, 1, 0, 0, 0, 1907, 1908, 3, 7, 3, 0, 1908, 1909, 3, 17, 8, 0, 1909, 1910, 3, 45, 22, 0, 1910, 1911, 3, 15, 7, 0, 1911, 1912, 3, 41, 20, 0, 1912, 88, 1, 0, 0, 0, 1913, 1914, 3, 7, 3, 0, 1914, 1915, 3, 19, 9, 0, 1915, 1916, 3, 19, 9, 0, 1916, 1917, 3, 41, 20, 0, 1917, 1918, 3, 15, 7, 0, 1918, 1919, 3, 19, 9, 0, 1919, 1920, 3, 7, 3, 0, 1920, 1921, 3, 45, 22, 0, 1921, 1922, 3, 15, 7, 0, 1922, 90, 1, 0, 0, 0, 1923, 1924, 3, 7, 3, 0, 1924, 1925, 3, 29, 14, 0, 1925, 1926, 3, 23, 11, 0, 1926, 1927, 3, 7, 3, 0, 1927, 1928, 3, 43, 21, 0, 1928, 92, 1, 0, 0, 0, 1929, 1930, 3, 7, 3, 0, 1930, 1931, 3, 29, 14, 0, 1931, 1932, 3, 29, 14, 0, 1932, 94, 1, 0, 0, 0, 1933, 1934, 3, 7, 3, 0, 1934, 1935, 3, 29, 14, 0, 1935, 1936, 3, 29, 14, 0, 1936, 1937, 3, 35, 17, 0, 1937, 1938, 3, 11, 5, 0, 1938, 1939, 3, 7, 3, 0, 1939, 1940, 3, 45, 22, 0, 1940, 1941, 3, 15, 7, 0, 1941, 96, 1, 0, 0, 0, 1942, 1943, 3, 7, 3, 0, 1943, 1944, 3, 29, 14, 0, 1944, 1945, 3, 43, 21, 0, 1945, 1946, 3, 35, 17, 0, 1946, 98, 1, 0, 0, 0, 1947, 1948, 3, 7, 3, 0, 1948, 1949, 3, 29, 14, 0, 1949, 1950, 3, 45, 22, 0, 1950, 1951, 3, 15, 7, 0, 1951, 1952, 3, 41, 20, 0, 1952, 100, 1, 0, 0, 0, 1953, 1954, 3, 7, 3, 0, 1954, 1955, 3, 29, 14, 0, 1955, 1956, 3, 51, 25, 0, 1956, 1957, 3, 7, 3, 0, 1957, 1958, 3, 55, 27, 0, 1958, 1959, 3, 43, 21, 0, 1959, 102, 1, 0, 0, 0, 1960, 1961, 3, 7, 3, 0, 1961, 1962, 3, 33, 16, 0, 1962, 1963, 3, 7, 3, 0, 1963, 1964, 3, 29, 14, 0, 1964, 1965, 3, 55, 27, 0, 1965, 1966, 3, 43, 21, 0, 1966, 1967, 3, 15, 7, 0, 1967, 104, 1, 0, 0, 0, 1968, 1969, 3, 7, 3, 0, 1969, 1970, 3, 33, 16, 0, 1970, 1971, 3, 7, 3, 0, 1971, 1972, 3, 29, 14, 0, 1972, 1973, 3, 55, 27, 0, 1973, 1974, 3, 57, 28, 0, 1974, 1975, 3, 15, 7, 0, 1975, 106, 1, 0, 0, 0, 1976, 1977, 3, 7, 3, 0, 1977, 1978, 3, 33, 16, 0, 1978, 1979, 3, 13, 6, 0, 1979, 108, 1, 0, 0, 0, 1980, 1981, 3, 7, 3, 0, 1981, 1982, 3, 33, 16, 0, 1982, 1983, 3, 55, 27, 0, 1983, 110, 1, 0, 0, 0, 1984, 1985, 3, 7, 3, 0, 1985, 1986, 3, 41, 20, 0, 1986, 1987, 3, 15, 7, 0, 1987, 112, 1, 0, 0, 0, 1988, 1989, 3, 7, 3, 0, 1989, 1990, 3, 41, 20, 0, 1990, 1991, 3, 41, 20, 0, 1991, 1992, 3, 7, 3, 0, 1992, 1993, 3, 55, 27, 0, 1993, 114, 1, 0, 0, 0, 1994, 1995, 3, 7, 3, 0, 1995, 1996, 3, 43, 21, 0, 1996, 116, 1, 0, 0, 0, 1997, 1998, 3, 7, 3, 0, 1998, 1999, 3, 43, 21, 0, 1999, 2000, 3, 11, 5, 0, 2000, 118, 1, 0, 0, 0, 2001, 2002, 3, 7, 3, 0, 2002, 2003, 3, 43, 21, 0, 2003, 2004, 3, 15, 7, 0, 2004, 2005, 3, 33, 16, 0, 2005, 2006, 3, 43, 21, 0, 2006, 2007, 3, 23, 11, 0, 2007, 2008, 3, 45, 22, 0, 2008, 2009, 3, 23, 11, 0, 2009, 2010, 3, 49, 24, 0, 2010, 2011, 3, 15, 7, 0, 2011, 120, 1, 0, 0, 0, 2012, 2013, 3, 7, 3, 0, 2013, 2014, 3, 43, 21, 0, 2014, 2015, 3, 43, 21, 0, 2015, 2016, 3, 15, 7, 0, 2016, 2017, 3, 41, 20, 0, 2017, 2018, 3, 45, 22, 0, 2018, 2019, 3, 23, 11, 0, 2019, 2020, 3, 35, 17, 0, 2020, 2021, 3, 33, 16, 0, 2021, 122, 1, 0, 0, 0, 2022, 2023, 3, 7, 3, 0, 2023, 2024, 3, 43, 21, 0, 2024, 2025, 3, 43, 21, 0, 2025, 2026, 3, 23, 11, 0, 2026, 2027, 3, 19, 9, 0, 2027, 2028, 3, 33, 16, 0, 2028, 2029, 3, 31, 15, 0, 2029, 2030, 3, 15, 7, 0, 2030, 2031, 3, 33, 16, 0, 2031, 2032, 3, 45, 22, 0, 2032, 124, 1, 0, 0, 0, 2033, 2034, 3, 7, 3, 0, 2034, 2035, 3, 43, 21, 0, 2035, 2036, 3, 55, 27, 0, 2036, 2037, 3, 31, 15, 0, 2037, 2038, 3, 31, 15, 0, 2038, 2039, 3, 15, 7, 0, 2039, 2040, 3, 45, 22, 0, 2040, 2041, 3, 41, 20, 0, 2041, 2042, 3, 23, 11, 0, 2042, 2043, 3, 11, 5, 0, 2043, 126, 1, 0, 0, 0, 2044, 2045, 3, 7, 3, 0, 2045, 2046, 3, 45, 22, 0, 2046, 128, 1, 0, 0, 0, 2047, 2048, 3, 7, 3, 0, 2048, 2049, 3, 45, 22, 0, 2049, 2050, 3, 35, 17, 0, 2050, 2051, 3, 31, 15, 0, 2051, 2052, 3, 23, 11, 0, 2052, 2053, 3, 11, 5, 0, 2053, 130, 1, 0, 0, 0, 2054, 2055, 3, 7, 3, 0, 2055, 2056, 3, 45, 22, 0, 2056, 2057, 3, 45, 22, 0, 2057, 2058, 3, 41, 20, 0, 2058, 2059, 3, 23, 11, 0, 2059, 2060, 3, 9, 4, 0, 2060, 2061, 3, 47, 23, 0, 2061, 2062, 3, 45, 22, 0, 2062, 2063, 3, 15, 7, 0, 2063, 132, 1, 0, 0, 0, 2064, 2065, 3, 7, 3, 0, 2065, 2066, 3, 45, 22, 0, 2066, 2067, 3, 45, 22, 0, 2067, 2068, 3, 41, 20, 0, 2068, 2069, 3, 23, 11, 0, 2069, 2070, 3, 9, 4, 0, 2070, 2071, 3, 47, 23, 0, 2071, 2072, 3, 45, 22, 0, 2072, 2073, 3, 15, 7, 0, 2073, 2074, 3, 43, 21, 0, 2074, 134, 1, 0, 0, 0, 2075, 2076, 3, 7, 3, 0, 2076, 2077, 3, 47, 23, 0, 2077, 2078, 3, 45, 22, 0, 2078, 2079, 3, 21, 10, 0, 2079, 2080, 3, 35, 17, 0, 2080, 2081, 3, 41, 20, 0, 2081, 2082, 3, 23, 11, 0, 2082, 2083, 3, 57, 28, 0, 2083, 2084, 3, 7, 3, 0, 2084, 2085, 3, 45, 22, 0, 2085, 2086, 3, 23, 11, 0, 2086, 2087, 3, 35, 17, 0, 2087, 2088, 3, 33, 16, 0, 2088, 136, 1, 0, 0, 0, 2089, 2090, 3, 7, 3, 0, 2090, 2091, 3, 49, 24, 0, 2091, 2092, 3, 19, 9, 0, 2092, 138, 1, 0, 0, 0, 2093, 2094, 3, 9, 4, 0, 2094, 2095, 3, 7, 3, 0, 2095, 2096, 3, 11, 5, 0, 2096, 2097, 3, 27, 13, 0, 2097, 2098, 3, 51, 25, 0, 2098, 2099, 3, 7, 3, 0, 2099, 2100, 3, 41, 20, 0, 2100, 2101, 3, 13, 6, 0, 2101, 140, 1, 0, 0, 0, 2102, 2103, 3, 9, 4, 0, 2103, 2104, 3, 15, 7, 0, 2104, 2105, 3, 17, 8, 0, 2105, 2106, 3, 35, 17, 0, 2106, 2107, 3, 41, 20, 0, 2107, 2108, 3, 15, 7, 0, 2108, 142, 1, 0, 0, 0, 2109, 2110, 3, 9, 4, 0, 2110, 2111, 3, 15, 7, 0, 2111, 2112, 3, 19, 9, 0, 2112, 2113, 3, 23, 11, 0, 2113, 2114, 3, 33, 16, 0, 2114, 144, 1, 0, 0, 0, 2115, 2116, 3, 9, 4, 0, 2116, 2117, 3, 15, 7, 0, 2117, 2118, 3, 41, 20, 0, 2118, 2119, 3, 33, 16, 0, 2119, 2120, 3, 35, 17, 0, 2120, 2121, 3, 47, 23, 0, 2121, 2122, 3, 29, 14, 0, 2122, 2123, 3, 29, 14, 0, 2123, 2124, 3, 23, 11, 0, 2124, 146, 1, 0, 0, 0, 2125, 2126, 3, 9, 4, 0, 2126, 2127, 3, 15, 7, 0, 2127, 2128, 3, 45, 22, 0, 2128, 2129, 3, 51, 25, 0, 2129, 2130, 3, 15, 7, 0, 2130, 2131, 3, 15, 7, 0, 2131, 2132, 3, 33, 16, 0, 2132, 148, 1, 0, 0, 0, 2133, 2134, 3, 9, 4, 0, 2134, 2135, 3, 23, 11, 0, 2135, 2136, 3, 19, 9, 0, 2136, 2137, 3, 23, 11, 0, 2137, 2138, 3, 33, 16, 0, 2138, 2139, 3, 45, 22, 0, 2139, 150, 1, 0, 0, 0, 2140, 2141, 3, 9, 4, 0, 2141, 2142, 3, 23, 11, 0, 2142, 2143, 3, 33, 16, 0, 2143, 2144, 3, 7, 3, 0, 2144, 2145, 3, 41, 20, 0, 2145, 2146, 3, 55, 27, 0, 2146, 152, 1, 0, 0, 0, 2147, 2148, 3, 9, 4, 0, 2148, 2149, 3, 23, 11, 0, 2149, 2150, 3, 45, 22, 0, 2150, 154, 1, 0, 0, 0, 2151, 2152, 3, 9, 4, 0, 2152, 2153, 3, 23, 11, 0, 2153, 2154, 3, 45, 22, 0, 2154, 2155, 5, 95, 0, 0, 2155, 2156, 3, 29, 14, 0, 2156, 2157, 3, 15, 7, 0, 2157, 2158, 3, 33, 16, 0, 2158, 2159, 3, 19, 9, 0, 2159, 2160, 3, 45, 22, 0, 2160, 2161, 3, 21, 10, 0, 2161, 156, 1, 0, 0, 0, 2162, 2163, 3, 9, 4, 0, 2163, 2164, 3, 23, 11, 0, 2164, 2165, 3, 45, 22, 0, 2165, 2166, 3, 49, 24, 0, 2166, 2167, 3, 7, 3, 0, 2167, 2168, 3, 41, 20, 0, 2168, 158, 1, 0, 0, 0, 2169, 2170, 3, 9, 4, 0, 2170, 2171, 3, 29, 14, 0, 2171, 2172, 3, 35, 17, 0, 2172, 2173, 3, 9, 4, 0, 2173, 160, 1, 0, 0, 0, 2174, 2175, 3, 9, 4, 0, 2175, 2176, 3, 35, 17, 0, 2176, 2177, 3, 35, 17, 0, 2177, 2178, 3, 29, 14, 0, 2178, 2179, 3, 15, 7, 0, 2179, 2180, 3, 7, 3, 0, 2180, 2181, 3, 33, 16, 0, 2181, 162, 1, 0, 0, 0, 2182, 2183, 3, 9, 4, 0, 2183, 2184, 3, 35, 17, 0, 2184, 2185, 3, 45, 22, 0, 2185, 2186, 3, 21, 10, 0, 2186, 164, 1, 0, 0, 0, 2187, 2188, 3, 9, 4, 0, 2188, 2189, 3, 41, 20, 0, 2189, 2190, 3, 15, 7, 0, 2190, 2191, 3, 7, 3, 0, 2191, 2192, 3, 13, 6, 0, 2192, 2193, 3, 45, 22, 0, 2193, 2194, 3, 21, 10, 0, 2194, 166, 1, 0, 0, 0, 2195, 2196, 3, 9, 4, 0, 2196, 2197, 3, 47, 23, 0, 2197, 2198, 3, 17, 8, 0, 2198, 2199, 3, 17, 8, 0, 2199, 2200, 3, 15, 7, 0, 2200, 2201, 3, 41, 20, 0, 2201, 2202, 3, 43, 21, 0, 2202, 168, 1, 0, 0, 0, 2203, 2204, 3, 9, 4, 0, 2204, 2205, 3, 55, 27, 0, 2205, 170, 1, 0, 0, 0, 2206, 2207, 3, 11, 5, 0, 2207, 172, 1, 0, 0, 0, 2208, 2209, 3, 11, 5, 0, 2209, 2210, 3, 7, 3, 0, 2210, 2211, 3, 11, 5, 0, 2211, 2212, 3, 21, 10, 0, 2212, 2213, 3, 15, 7, 0, 2213, 174, 1, 0, 0, 0, 2214, 2215, 3, 11, 5, 0, 2215, 2216, 3, 7, 3, 0, 2216, 2217, 3, 29, 14, 0, 2217, 2218, 3, 29, 14, 0, 2218, 176, 1, 0, 0, 0, 2219, 2220, 3, 11, 5, 0, 2220, 2221, 3, 7, 3, 0, 2221, 2222, 3, 29, 14, 0, 2222, 2223, 3, 29, 14, 0, 2223, 2224, 3, 15, 7, 0, 2224, 2225, 3, 13, 6, 0, 2225, 178, 1, 0, 0, 0, 2226, 2227, 3, 11, 5, 0, 2227, 2228, 3, 7, 3, 0, 2228, 2229, 3, 41, 20, 0, 2229, 2230, 3, 13, 6, 0, 2230, 2231, 3, 23, 11, 0, 2231, 2232, 3, 33, 16, 0, 2232, 2233, 3, 7, 3, 0, 2233, 2234, 3, 29, 14, 0, 2234, 2235, 3, 23, 11, 0, 2235, 2236, 3, 45, 22, 0, 2236, 2237, 3, 55, 27, 0, 2237, 180, 1, 0, 0, 0, 2238, 2239, 3, 11, 5, 0, 2239, 2240, 3, 7, 3, 0, 2240, 2241, 3, 43, 21, 0, 2241, 2242, 3, 11, 5, 0, 2242, 2243, 3, 7, 3, 0, 2243, 2244, 3, 13, 6, 0, 2244, 2245, 3, 15, 7, 0, 2245, 182, 1, 0, 0, 0, 2246, 2247, 3, 11, 5, 0, 2247, 2248, 3, 7, 3, 0, 2248, 2249, 3, 43, 21, 0, 2249, 2250, 3, 11, 5, 0, 2250, 2251, 3, 7, 3, 0, 2251, 2252, 3, 13, 6, 0, 2252, 2253, 3, 15, 7, 0, 2253, 2254, 3, 13, 6, 0, 2254, 184, 1, 0, 0, 0, 2255, 2256, 3, 11, 5, 0, 2256, 2257, 3, 7, 3, 0, 2257, 2258, 3, 43, 21, 0, 2258, 2259, 3, 15, 7, 0, 2259, 186, 1, 0, 0, 0, 2260, 2261, 3, 11, 5, 0, 2261, 2262, 3, 7, 3, 0, 2262, 2263, 3, 43, 21, 0, 2263, 2264, 3, 45, 22, 0, 2264, 188, 1, 0, 0, 0, 2265, 2266, 3, 11, 5, 0, 2266, 2267, 3, 7, 3, 0, 2267, 2268, 3, 45, 22, 0, 2268, 2269, 3, 7, 3, 0, 2269, 2270, 3, 29, 14, 0, 2270, 2271, 3, 35, 17, 0, 2271, 2272, 3, 19, 9, 0, 2272, 190, 1, 0, 0, 0, 2273, 2274, 3, 11, 5, 0, 2274, 2275, 3, 7, 3, 0, 2275, 2276, 3, 45, 22, 0, 2276, 2277, 3, 7, 3, 0, 2277, 2278, 3, 29, 14, 0, 2278, 2279, 3, 35, 17, 0, 2279, 2280, 3, 19, 9, 0, 2280, 2281, 5, 95, 0, 0, 2281, 2282, 3, 33, 16, 0, 2282, 2283, 3, 7, 3, 0, 2283, 2284, 3, 31, 15, 0, 2284, 2285, 3, 15, 7, 0, 2285, 192, 1, 0, 0, 0, 2286, 2287, 3, 11, 5, 0, 2287, 2288, 3, 15, 7, 0, 2288, 2289, 3, 23, 11, 0, 2289, 2290, 3, 29, 14, 0, 2290, 194, 1, 0, 0, 0, 2291, 2292, 3, 11, 5, 0, 2292, 2293, 3, 15, 7, 0, 2293, 2294, 3, 23, 11, 0, 2294, 2295, 3, 29, 14, 0, 2295, 2296, 3, 23, 11, 0, 2296, 2297, 3, 33, 16, 0, 2297, 2298, 3, 19, 9, 0, 2298, 196, 1, 0, 0, 0, 2299, 2300, 3, 11, 5, 0, 2300, 2301, 3, 21, 10, 0, 2301, 2302, 3, 7, 3, 0, 2302, 2303, 3, 23, 11, 0, 2303, 2304, 3, 33, 16, 0, 2304, 198, 1, 0, 0, 0, 2305, 2306, 3, 11, 5, 0, 2306, 2307, 3, 21, 10, 0, 2307, 2308, 3, 7, 3, 0, 2308, 2309, 3, 41, 20, 0, 2309, 200, 1, 0, 0, 0, 2310, 2311, 3, 11, 5, 0, 2311, 2312, 3, 21, 10, 0, 2312, 2313, 3, 7, 3, 0, 2313, 2314, 3, 41, 20, 0, 2314, 2315, 5, 95, 0, 0, 2315, 2316, 3, 29, 14, 0, 2316, 2317, 3, 15, 7, 0, 2317, 2318, 3, 33, 16, 0, 2318, 2319, 3, 19, 9, 0, 2319, 2320, 3, 45, 22, 0, 2320, 2321, 3, 21, 10, 0, 2321, 202, 1, 0, 0, 0, 2322, 2323, 3, 11, 5, 0, 2323, 2324, 3, 21, 10, 0, 2324, 2325, 3, 7, 3, 0, 2325, 2326, 3, 41, 20, 0, 2326, 2327, 3, 7, 3, 0, 2327, 2328, 3, 11, 5, 0, 2328, 2329, 3, 45, 22, 0, 2329, 2330, 3, 15, 7, 0, 2330, 2331, 3, 41, 20, 0, 2331, 204, 1, 0, 0, 0, 2332, 2333, 3, 11, 5, 0, 2333, 2334, 3, 21, 10, 0, 2334, 2335, 3, 7, 3, 0, 2335, 2336, 3, 41, 20, 0, 2336, 2337, 3, 7, 3, 0, 2337, 2338, 3, 11, 5, 0, 2338, 2339, 3, 45, 22, 0, 2339, 2340, 3, 15, 7, 0, 2340, 2341, 3, 41, 20, 0, 2341, 2342, 5, 95, 0, 0, 2342, 2343, 3, 29, 14, 0, 2343, 2344, 3, 15, 7, 0, 2344, 2345, 3, 33, 16, 0, 2345, 2346, 3, 19, 9, 0, 2346, 2347, 3, 45, 22, 0, 2347, 2348, 3, 21, 10, 0, 2348, 206, 1, 0, 0, 0, 2349, 2350, 3, 11, 5, 0, 2350, 2351, 3, 21, 10, 0, 2351, 2352, 3, 7, 3, 0, 2352, 2353, 3, 41, 20, 0, 2353, 2354, 3, 7, 3, 0, 2354, 2355, 3, 11, 5, 0, 2355, 2356, 3, 45, 22, 0, 2356, 2357, 3, 15, 7, 0, 2357, 2358, 3, 41, 20, 0, 2358, 2359, 5, 95, 0, 0, 2359, 2360, 3, 43, 21, 0, 2360, 2361, 3, 15, 7, 0, 2361, 2362, 3, 45, 22, 0, 2362, 2363, 5, 95, 0, 0, 2363, 2364, 3, 11, 5, 0, 2364, 2365, 3, 7, 3, 0, 2365, 2366, 3, 45, 22, 0, 2366, 2367, 3, 7, 3, 0, 2367, 2368, 3, 29, 14, 0, 2368, 2369, 3, 35, 17, 0, 2369, 2370, 3, 19, 9, 0, 2370, 208, 1, 0, 0, 0, 2371, 2372, 3, 11, 5, 0, 2372, 2373, 3, 21, 10, 0, 2373, 2374, 3, 7, 3, 0, 2374, 2375, 3, 41, 20, 0, 2375, 2376, 3, 7, 3, 0, 2376, 2377, 3, 11, 5, 0, 2377, 2378, 3, 45, 22, 0, 2378, 2379, 3, 15, 7, 0, 2379, 2380, 3, 41, 20, 0, 2380, 2381, 5, 95, 0, 0, 2381, 2382, 3, 43, 21, 0, 2382, 2383, 3, 15, 7, 0, 2383, 2384, 3, 45, 22, 0, 2384, 2385, 5, 95, 0, 0, 2385, 2386, 3, 33, 16, 0, 2386, 2387, 3, 7, 3, 0, 2387, 2388, 3, 31, 15, 0, 2388, 2389, 3, 15, 7, 0, 2389, 210, 1, 0, 0, 0, 2390, 2391, 3, 11, 5, 0, 2391, 2392, 3, 21, 10, 0, 2392, 2393, 3, 7, 3, 0, 2393, 2394, 3, 41, 20, 0, 2394, 2395, 3, 7, 3, 0, 2395, 2396, 3, 11, 5, 0, 2396, 2397, 3, 45, 22, 0, 2397, 2398, 3, 15, 7, 0, 2398, 2399, 3, 41, 20, 0, 2399, 2400, 5, 95, 0, 0, 2400, 2401, 3, 43, 21, 0, 2401, 2402, 3, 15, 7, 0, 2402, 2403, 3, 45, 22, 0, 2403, 2404, 5, 95, 0, 0, 2404, 2405, 3, 43, 21, 0, 2405, 2406, 3, 11, 5, 0, 2406, 2407, 3, 21, 10, 0, 2407, 2408, 3, 15, 7, 0, 2408, 2409, 3, 31, 15, 0, 2409, 2410, 3, 7, 3, 0, 2410, 212, 1, 0, 0, 0, 2411, 2412, 3, 11, 5, 0, 2412, 2413, 3, 21, 10, 0, 2413, 2414, 3, 7, 3, 0, 2414, 2415, 3, 41, 20, 0, 2415, 2416, 3, 7, 3, 0, 2416, 2417, 3, 11, 5, 0, 2417, 2418, 3, 45, 22, 0, 2418, 2419, 3, 15, 7, 0, 2419, 2420, 3, 41, 20, 0, 2420, 2421, 3, 23, 11, 0, 2421, 2422, 3, 43, 21, 0, 2422, 2423, 3, 45, 22, 0, 2423, 2424, 3, 23, 11, 0, 2424, 2425, 3, 11, 5, 0, 2425, 2426, 3, 43, 21, 0, 2426, 214, 1, 0, 0, 0, 2427, 2428, 3, 11, 5, 0, 2428, 2429, 3, 21, 10, 0, 2429, 2430, 3, 7, 3, 0, 2430, 2431, 3, 41, 20, 0, 2431, 2432, 3, 7, 3, 0, 2432, 2433, 3, 11, 5, 0, 2433, 2434, 3, 45, 22, 0, 2434, 2435, 3, 15, 7, 0, 2435, 2436, 3, 41, 20, 0, 2436, 2437, 3, 43, 21, 0, 2437, 216, 1, 0, 0, 0, 2438, 2439, 3, 11, 5, 0, 2439, 2440, 3, 21, 10, 0, 2440, 2441, 3, 15, 7, 0, 2441, 2442, 3, 11, 5, 0, 2442, 2443, 3, 27, 13, 0, 2443, 218, 1, 0, 0, 0, 2444, 2445, 3, 11, 5, 0, 2445, 2446, 3, 21, 10, 0, 2446, 2447, 3, 15, 7, 0, 2447, 2448, 3, 11, 5, 0, 2448, 2449, 3, 27, 13, 0, 2449, 2450, 3, 15, 7, 0, 2450, 2451, 3, 13, 6, 0, 2451, 220, 1, 0, 0, 0, 2452, 2453, 3, 11, 5, 0, 2453, 2454, 3, 21, 10, 0, 2454, 2455, 3, 15, 7, 0, 2455, 2456, 3, 11, 5, 0, 2456, 2457, 3, 27, 13, 0, 2457, 2458, 3, 37, 18, 0, 2458, 2459, 3, 35, 17, 0, 2459, 2460, 3, 23, 11, 0, 2460, 2461, 3, 33, 16, 0, 2461, 2462, 3, 45, 22, 0, 2462, 222, 1, 0, 0, 0, 2463, 2464, 3, 11, 5, 0, 2464, 2465, 3, 29, 14, 0, 2465, 2466, 3, 7, 3, 0, 2466, 2467, 3, 43, 21, 0, 2467, 2468, 3, 43, 21, 0, 2468, 224, 1, 0, 0, 0, 2469, 2470, 3, 11, 5, 0, 2470, 2471, 3, 29, 14, 0, 2471, 2472, 3, 7, 3, 0, 2472, 2473, 3, 43, 21, 0, 2473, 2474, 3, 43, 21, 0, 2474, 2475, 5, 95, 0, 0, 2475, 2476, 3, 35, 17, 0, 2476, 2477, 3, 41, 20, 0, 2477, 2478, 3, 23, 11, 0, 2478, 2479, 3, 19, 9, 0, 2479, 2480, 3, 23, 11, 0, 2480, 2481, 3, 33, 16, 0, 2481, 226, 1, 0, 0, 0, 2482, 2483, 3, 11, 5, 0, 2483, 2484, 3, 29, 14, 0, 2484, 2485, 3, 35, 17, 0, 2485, 2486, 3, 9, 4, 0, 2486, 228, 1, 0, 0, 0, 2487, 2488, 3, 11, 5, 0, 2488, 2489, 3, 29, 14, 0, 2489, 2490, 3, 35, 17, 0, 2490, 2491, 3, 43, 21, 0, 2491, 2492, 3, 15, 7, 0, 2492, 230, 1, 0, 0, 0, 2493, 2494, 3, 11, 5, 0, 2494, 2495, 3, 29, 14, 0, 2495, 2496, 3, 47, 23, 0, 2496, 2497, 3, 43, 21, 0, 2497, 2498, 3, 45, 22, 0, 2498, 2499, 3, 15, 7, 0, 2499, 2500, 3, 41, 20, 0, 2500, 232, 1, 0, 0, 0, 2501, 2502, 3, 11, 5, 0, 2502, 2503, 3, 35, 17, 0, 2503, 2504, 3, 7, 3, 0, 2504, 2505, 3, 29, 14, 0, 2505, 2506, 3, 15, 7, 0, 2506, 2507, 3, 43, 21, 0, 2507, 2508, 3, 11, 5, 0, 2508, 2509, 3, 15, 7, 0, 2509, 234, 1, 0, 0, 0, 2510, 2511, 3, 11, 5, 0, 2511, 2512, 3, 35, 17, 0, 2512, 2513, 3, 9, 4, 0, 2513, 2514, 3, 35, 17, 0, 2514, 2515, 3, 29, 14, 0, 2515, 236, 1, 0, 0, 0, 2516, 2517, 3, 11, 5, 0, 2517, 2518, 3, 35, 17, 0, 2518, 2519, 3, 29, 14, 0, 2519, 2520, 3, 29, 14, 0, 2520, 2521, 3, 7, 3, 0, 2521, 2522, 3, 45, 22, 0, 2522, 2523, 3, 15, 7, 0, 2523, 238, 1, 0, 0, 0, 2524, 2525, 3, 11, 5, 0, 2525, 2526, 3, 35, 17, 0, 2526, 2527, 3, 29, 14, 0, 2527, 2528, 3, 29, 14, 0, 2528, 2529, 3, 7, 3, 0, 2529, 2530, 3, 45, 22, 0, 2530, 2531, 3, 23, 11, 0, 2531, 2532, 3, 35, 17, 0, 2532, 2533, 3, 33, 16, 0, 2533, 240, 1, 0, 0, 0, 2534, 2535, 3, 11, 5, 0, 2535, 2536, 3, 35, 17, 0, 2536, 2537, 3, 29, 14, 0, 2537, 2538, 3, 29, 14, 0, 2538, 2539, 3, 7, 3, 0, 2539, 2540, 3, 45, 22, 0, 2540, 2541, 3, 23, 11, 0, 2541, 2542, 3, 35, 17, 0, 2542, 2543, 3, 33, 16, 0, 2543, 2544, 5, 95, 0, 0, 2544, 2545, 3, 11, 5, 0, 2545, 2546, 3, 7, 3, 0, 2546, 2547, 3, 45, 22, 0, 2547, 2548, 3, 7, 3, 0, 2548, 2549, 3, 29, 14, 0, 2549, 2550, 3, 35, 17, 0, 2550, 2551, 3, 19, 9, 0, 2551, 242, 1, 0, 0, 0, 2552, 2553, 3, 11, 5, 0, 2553, 2554, 3, 35, 17, 0, 2554, 2555, 3, 29, 14, 0, 2555, 2556, 3, 29, 14, 0, 2556, 2557, 3, 7, 3, 0, 2557, 2558, 3, 45, 22, 0, 2558, 2559, 3, 23, 11, 0, 2559, 2560, 3, 35, 17, 0, 2560, 2561, 3, 33, 16, 0, 2561, 2562, 5, 95, 0, 0, 2562, 2563, 3, 33, 16, 0, 2563, 2564, 3, 7, 3, 0, 2564, 2565, 3, 31, 15, 0, 2565, 2566, 3, 15, 7, 0, 2566, 244, 1, 0, 0, 0, 2567, 2568, 3, 11, 5, 0, 2568, 2569, 3, 35, 17, 0, 2569, 2570, 3, 29, 14, 0, 2570, 2571, 3, 29, 14, 0, 2571, 2572, 3, 7, 3, 0, 2572, 2573, 3, 45, 22, 0, 2573, 2574, 3, 23, 11, 0, 2574, 2575, 3, 35, 17, 0, 2575, 2576, 3, 33, 16, 0, 2576, 2577, 5, 95, 0, 0, 2577, 2578, 3, 43, 21, 0, 2578, 2579, 3, 11, 5, 0, 2579, 2580, 3, 21, 10, 0, 2580, 2581, 3, 15, 7, 0, 2581, 2582, 3, 31, 15, 0, 2582, 2583, 3, 7, 3, 0, 2583, 246, 1, 0, 0, 0, 2584, 2585, 3, 11, 5, 0, 2585, 2586, 3, 35, 17, 0, 2586, 2587, 3, 29, 14, 0, 2587, 2588, 3, 29, 14, 0, 2588, 2589, 3, 15, 7, 0, 2589, 2590, 3, 11, 5, 0, 2590, 2591, 3, 45, 22, 0, 2591, 248, 1, 0, 0, 0, 2592, 2593, 3, 11, 5, 0, 2593, 2594, 3, 35, 17, 0, 2594, 2595, 3, 29, 14, 0, 2595, 2596, 3, 47, 23, 0, 2596, 2597, 3, 31, 15, 0, 2597, 2598, 3, 33, 16, 0, 2598, 250, 1, 0, 0, 0, 2599, 2600, 3, 11, 5, 0, 2600, 2601, 3, 35, 17, 0, 2601, 2602, 3, 29, 14, 0, 2602, 2603, 3, 47, 23, 0, 2603, 2604, 3, 31, 15, 0, 2604, 2605, 3, 33, 16, 0, 2605, 2606, 5, 95, 0, 0, 2606, 2607, 3, 33, 16, 0, 2607, 2608, 3, 7, 3, 0, 2608, 2609, 3, 31, 15, 0, 2609, 2610, 3, 15, 7, 0, 2610, 252, 1, 0, 0, 0, 2611, 2612, 3, 11, 5, 0, 2612, 2613, 3, 35, 17, 0, 2613, 2614, 3, 31, 15, 0, 2614, 2615, 3, 31, 15, 0, 2615, 2616, 3, 7, 3, 0, 2616, 2617, 3, 33, 16, 0, 2617, 2618, 3, 13, 6, 0, 2618, 2619, 5, 95, 0, 0, 2619, 2620, 3, 17, 8, 0, 2620, 2621, 3, 47, 23, 0, 2621, 2622, 3, 33, 16, 0, 2622, 2623, 3, 11, 5, 0, 2623, 2624, 3, 45, 22, 0, 2624, 2625, 3, 23, 11, 0, 2625, 2626, 3, 35, 17, 0, 2626, 2627, 3, 33, 16, 0, 2627, 254, 1, 0, 0, 0, 2628, 2629, 3, 11, 5, 0, 2629, 2630, 3, 35, 17, 0, 2630, 2631, 3, 31, 15, 0, 2631, 2632, 3, 31, 15, 0, 2632, 2633, 3, 7, 3, 0, 2633, 2634, 3, 33, 16, 0, 2634, 2635, 3, 13, 6, 0, 2635, 2636, 5, 95, 0, 0, 2636, 2637, 3, 17, 8, 0, 2637, 2638, 3, 47, 23, 0, 2638, 2639, 3, 33, 16, 0, 2639, 2640, 3, 11, 5, 0, 2640, 2641, 3, 45, 22, 0, 2641, 2642, 3, 23, 11, 0, 2642, 2643, 3, 35, 17, 0, 2643, 2644, 3, 33, 16, 0, 2644, 2645, 5, 95, 0, 0, 2645, 2646, 3, 11, 5, 0, 2646, 2647, 3, 35, 17, 0, 2647, 2648, 3, 13, 6, 0, 2648, 2649, 3, 15, 7, 0, 2649, 256, 1, 0, 0, 0, 2650, 2651, 3, 11, 5, 0, 2651, 2652, 3, 35, 17, 0, 2652, 2653, 3, 31, 15, 0, 2653, 2654, 3, 31, 15, 0, 2654, 2655, 3, 15, 7, 0, 2655, 2656, 3, 33, 16, 0, 2656, 2657, 3, 45, 22, 0, 2657, 258, 1, 0, 0, 0, 2658, 2659, 3, 11, 5, 0, 2659, 2660, 3, 35, 17, 0, 2660, 2661, 3, 31, 15, 0, 2661, 2662, 3, 31, 15, 0, 2662, 2663, 3, 23, 11, 0, 2663, 2664, 3, 45, 22, 0, 2664, 260, 1, 0, 0, 0, 2665, 2666, 3, 11, 5, 0, 2666, 2667, 3, 35, 17, 0, 2667, 2668, 3, 31, 15, 0, 2668, 2669, 3, 31, 15, 0, 2669, 2670, 3, 23, 11, 0, 2670, 2671, 3, 45, 22, 0, 2671, 2672, 3, 45, 22, 0, 2672, 2673, 3, 15, 7, 0, 2673, 2674, 3, 13, 6, 0, 2674, 262, 1, 0, 0, 0, 2675, 2676, 3, 11, 5, 0, 2676, 2677, 3, 35, 17, 0, 2677, 2678, 3, 31, 15, 0, 2678, 2679, 3, 37, 18, 0, 2679, 2680, 3, 29, 14, 0, 2680, 2681, 3, 15, 7, 0, 2681, 2682, 3, 45, 22, 0, 2682, 2683, 3, 23, 11, 0, 2683, 2684, 3, 35, 17, 0, 2684, 2685, 3, 33, 16, 0, 2685, 264, 1, 0, 0, 0, 2686, 2687, 3, 11, 5, 0, 2687, 2688, 3, 35, 17, 0, 2688, 2689, 3, 33, 16, 0, 2689, 2690, 3, 13, 6, 0, 2690, 2691, 3, 23, 11, 0, 2691, 2692, 3, 45, 22, 0, 2692, 2693, 3, 23, 11, 0, 2693, 2694, 3, 35, 17, 0, 2694, 2695, 3, 33, 16, 0, 2695, 266, 1, 0, 0, 0, 2696, 2697, 3, 11, 5, 0, 2697, 2698, 3, 35, 17, 0, 2698, 2699, 3, 33, 16, 0, 2699, 2700, 3, 13, 6, 0, 2700, 2701, 3, 23, 11, 0, 2701, 2702, 3, 45, 22, 0, 2702, 2703, 3, 23, 11, 0, 2703, 2704, 3, 35, 17, 0, 2704, 2705, 3, 33, 16, 0, 2705, 2706, 5, 95, 0, 0, 2706, 2707, 3, 33, 16, 0, 2707, 2708, 3, 47, 23, 0, 2708, 2709, 3, 31, 15, 0, 2709, 2710, 3, 9, 4, 0, 2710, 2711, 3, 15, 7, 0, 2711, 2712, 3, 41, 20, 0, 2712, 268, 1, 0, 0, 0, 2713, 2714, 3, 11, 5, 0, 2714, 2715, 3, 35, 17, 0, 2715, 2716, 3, 33, 16, 0, 2716, 2717, 3, 17, 8, 0, 2717, 2718, 3, 23, 11, 0, 2718, 2719, 3, 19, 9, 0, 2719, 2720, 3, 47, 23, 0, 2720, 2721, 3, 41, 20, 0, 2721, 2722, 3, 7, 3, 0, 2722, 2723, 3, 45, 22, 0, 2723, 2724, 3, 23, 11, 0, 2724, 2725, 3, 35, 17, 0, 2725, 2726, 3, 33, 16, 0, 2726, 270, 1, 0, 0, 0, 2727, 2728, 3, 11, 5, 0, 2728, 2729, 3, 35, 17, 0, 2729, 2730, 3, 33, 16, 0, 2730, 2731, 3, 17, 8, 0, 2731, 2732, 3, 29, 14, 0, 2732, 2733, 3, 23, 11, 0, 2733, 2734, 3, 11, 5, 0, 2734, 2735, 3, 45, 22, 0, 2735, 272, 1, 0, 0, 0, 2736, 2737, 3, 11, 5, 0, 2737, 2738, 3, 35, 17, 0, 2738, 2739, 3, 33, 16, 0, 2739, 2740, 3, 33, 16, 0, 2740, 2741, 3, 15, 7, 0, 2741, 2742, 3, 11, 5, 0, 2742, 2743, 3, 45, 22, 0, 2743, 274, 1, 0, 0, 0, 2744, 2745, 3, 11, 5, 0, 2745, 2746, 3, 35, 17, 0, 2746, 2747, 3, 33, 16, 0, 2747, 2748, 3, 33, 16, 0, 2748, 2749, 3, 15, 7, 0, 2749, 2750, 3, 11, 5, 0, 2750, 2751, 3, 45, 22, 0, 2751, 2752, 3, 23, 11, 0, 2752, 2753, 3, 35, 17, 0, 2753, 2754, 3, 33, 16, 0, 2754, 276, 1, 0, 0, 0, 2755, 2756, 3, 11, 5, 0, 2756, 2757, 3, 35, 17, 0, 2757, 2758, 3, 33, 16, 0, 2758, 2759, 3, 33, 16, 0, 2759, 2760, 3, 15, 7, 0, 2760, 2761, 3, 11, 5, 0, 2761, 2762, 3, 45, 22, 0, 2762, 2763, 3, 23, 11, 0, 2763, 2764, 3, 35, 17, 0, 2764, 2765, 3, 33, 16, 0, 2765, 2766, 5, 95, 0, 0, 2766, 2767, 3, 33, 16, 0, 2767, 2768, 3, 7, 3, 0, 2768, 2769, 3, 31, 15, 0, 2769, 2770, 3, 15, 7, 0, 2770, 278, 1, 0, 0, 0, 2771, 2772, 3, 11, 5, 0, 2772, 2773, 3, 35, 17, 0, 2773, 2774, 3, 33, 16, 0, 2774, 2775, 3, 43, 21, 0, 2775, 2776, 3, 45, 22, 0, 2776, 2777, 3, 41, 20, 0, 2777, 2778, 3, 7, 3, 0, 2778, 2779, 3, 23, 11, 0, 2779, 2780, 3, 33, 16, 0, 2780, 2781, 3, 45, 22, 0, 2781, 280, 1, 0, 0, 0, 2782, 2783, 3, 11, 5, 0, 2783, 2784, 3, 35, 17, 0, 2784, 2785, 3, 33, 16, 0, 2785, 2786, 3, 43, 21, 0, 2786, 2787, 3, 45, 22, 0, 2787, 2788, 3, 41, 20, 0, 2788, 2789, 3, 7, 3, 0, 2789, 2790, 3, 23, 11, 0, 2790, 2791, 3, 33, 16, 0, 2791, 2792, 3, 45, 22, 0, 2792, 2793, 5, 95, 0, 0, 2793, 2794, 3, 11, 5, 0, 2794, 2795, 3, 7, 3, 0, 2795, 2796, 3, 45, 22, 0, 2796, 2797, 3, 7, 3, 0, 2797, 2798, 3, 29, 14, 0, 2798, 2799, 3, 35, 17, 0, 2799, 2800, 3, 19, 9, 0, 2800, 282, 1, 0, 0, 0, 2801, 2802, 3, 11, 5, 0, 2802, 2803, 3, 35, 17, 0, 2803, 2804, 3, 33, 16, 0, 2804, 2805, 3, 43, 21, 0, 2805, 2806, 3, 45, 22, 0, 2806, 2807, 3, 41, 20, 0, 2807, 2808, 3, 7, 3, 0, 2808, 2809, 3, 23, 11, 0, 2809, 2810, 3, 33, 16, 0, 2810, 2811, 3, 45, 22, 0, 2811, 2812, 5, 95, 0, 0, 2812, 2813, 3, 33, 16, 0, 2813, 2814, 3, 7, 3, 0, 2814, 2815, 3, 31, 15, 0, 2815, 2816, 3, 15, 7, 0, 2816, 284, 1, 0, 0, 0, 2817, 2818, 3, 11, 5, 0, 2818, 2819, 3, 35, 17, 0, 2819, 2820, 3, 33, 16, 0, 2820, 2821, 3, 43, 21, 0, 2821, 2822, 3, 45, 22, 0, 2822, 2823, 3, 41, 20, 0, 2823, 2824, 3, 7, 3, 0, 2824, 2825, 3, 23, 11, 0, 2825, 2826, 3, 33, 16, 0, 2826, 2827, 3, 45, 22, 0, 2827, 2828, 5, 95, 0, 0, 2828, 2829, 3, 43, 21, 0, 2829, 2830, 3, 11, 5, 0, 2830, 2831, 3, 21, 10, 0, 2831, 2832, 3, 15, 7, 0, 2832, 2833, 3, 31, 15, 0, 2833, 2834, 3, 7, 3, 0, 2834, 286, 1, 0, 0, 0, 2835, 2836, 3, 11, 5, 0, 2836, 2837, 3, 35, 17, 0, 2837, 2838, 3, 33, 16, 0, 2838, 2839, 3, 43, 21, 0, 2839, 2840, 3, 45, 22, 0, 2840, 2841, 3, 41, 20, 0, 2841, 2842, 3, 7, 3, 0, 2842, 2843, 3, 23, 11, 0, 2843, 2844, 3, 33, 16, 0, 2844, 2845, 3, 45, 22, 0, 2845, 2846, 3, 43, 21, 0, 2846, 288, 1, 0, 0, 0, 2847, 2848, 3, 11, 5, 0, 2848, 2849, 3, 35, 17, 0, 2849, 2850, 3, 33, 16, 0, 2850, 2851, 3, 43, 21, 0, 2851, 2852, 3, 45, 22, 0, 2852, 2853, 3, 41, 20, 0, 2853, 2854, 3, 47, 23, 0, 2854, 2855, 3, 11, 5, 0, 2855, 2856, 3, 45, 22, 0, 2856, 2857, 3, 35, 17, 0, 2857, 2858, 3, 41, 20, 0, 2858, 290, 1, 0, 0, 0, 2859, 2860, 3, 11, 5, 0, 2860, 2861, 3, 35, 17, 0, 2861, 2862, 3, 33, 16, 0, 2862, 2863, 3, 45, 22, 0, 2863, 2864, 3, 7, 3, 0, 2864, 2865, 3, 23, 11, 0, 2865, 2866, 3, 33, 16, 0, 2866, 2867, 3, 43, 21, 0, 2867, 292, 1, 0, 0, 0, 2868, 2869, 3, 11, 5, 0, 2869, 2870, 3, 35, 17, 0, 2870, 2871, 3, 33, 16, 0, 2871, 2872, 3, 45, 22, 0, 2872, 2873, 3, 23, 11, 0, 2873, 2874, 3, 33, 16, 0, 2874, 2875, 3, 47, 23, 0, 2875, 2876, 3, 15, 7, 0, 2876, 294, 1, 0, 0, 0, 2877, 2878, 3, 11, 5, 0, 2878, 2879, 3, 35, 17, 0, 2879, 2880, 3, 33, 16, 0, 2880, 2881, 3, 49, 24, 0, 2881, 2882, 3, 15, 7, 0, 2882, 2883, 3, 41, 20, 0, 2883, 2884, 3, 43, 21, 0, 2884, 2885, 3, 23, 11, 0, 2885, 2886, 3, 35, 17, 0, 2886, 2887, 3, 33, 16, 0, 2887, 296, 1, 0, 0, 0, 2888, 2889, 3, 11, 5, 0, 2889, 2890, 3, 35, 17, 0, 2890, 2891, 3, 33, 16, 0, 2891, 2892, 3, 49, 24, 0, 2892, 2893, 3, 15, 7, 0, 2893, 2894, 3, 41, 20, 0, 2894, 2895, 3, 45, 22, 0, 2895, 298, 1, 0, 0, 0, 2896, 2897, 3, 11, 5, 0, 2897, 2898, 3, 35, 17, 0, 2898, 2899, 3, 37, 18, 0, 2899, 2900, 3, 55, 27, 0, 2900, 300, 1, 0, 0, 0, 2901, 2902, 3, 11, 5, 0, 2902, 2903, 3, 35, 17, 0, 2903, 2904, 3, 41, 20, 0, 2904, 2905, 3, 41, 20, 0, 2905, 302, 1, 0, 0, 0, 2906, 2907, 3, 11, 5, 0, 2907, 2908, 3, 35, 17, 0, 2908, 2909, 3, 41, 20, 0, 2909, 2910, 3, 41, 20, 0, 2910, 2911, 3, 15, 7, 0, 2911, 2912, 3, 43, 21, 0, 2912, 2913, 3, 37, 18, 0, 2913, 2914, 3, 35, 17, 0, 2914, 2915, 3, 33, 16, 0, 2915, 2916, 3, 13, 6, 0, 2916, 2917, 3, 23, 11, 0, 2917, 2918, 3, 33, 16, 0, 2918, 2919, 3, 19, 9, 0, 2919, 304, 1, 0, 0, 0, 2920, 2921, 3, 11, 5, 0, 2921, 2922, 3, 35, 17, 0, 2922, 2923, 3, 43, 21, 0, 2923, 2924, 3, 45, 22, 0, 2924, 2925, 3, 43, 21, 0, 2925, 306, 1, 0, 0, 0, 2926, 2927, 3, 11, 5, 0, 2927, 2928, 3, 35, 17, 0, 2928, 2929, 3, 47, 23, 0, 2929, 2930, 3, 33, 16, 0, 2930, 2931, 3, 45, 22, 0, 2931, 308, 1, 0, 0, 0, 2932, 2933, 3, 11, 5, 0, 2933, 2934, 3, 35, 17, 0, 2934, 2935, 3, 49, 24, 0, 2935, 2936, 3, 7, 3, 0, 2936, 2937, 3, 41, 20, 0, 2937, 2938, 5, 95, 0, 0, 2938, 2939, 3, 37, 18, 0, 2939, 2940, 3, 35, 17, 0, 2940, 2941, 3, 37, 18, 0, 2941, 310, 1, 0, 0, 0, 2942, 2943, 3, 11, 5, 0, 2943, 2944, 3, 35, 17, 0, 2944, 2945, 3, 49, 24, 0, 2945, 2946, 3, 7, 3, 0, 2946, 2947, 3, 41, 20, 0, 2947, 2948, 5, 95, 0, 0, 2948, 2949, 3, 43, 21, 0, 2949, 2950, 3, 7, 3, 0, 2950, 2951, 3, 31, 15, 0, 2951, 2952, 3, 37, 18, 0, 2952, 312, 1, 0, 0, 0, 2953, 2954, 3, 11, 5, 0, 2954, 2955, 3, 41, 20, 0, 2955, 2956, 3, 15, 7, 0, 2956, 2957, 3, 7, 3, 0, 2957, 2958, 3, 45, 22, 0, 2958, 2959, 3, 15, 7, 0, 2959, 314, 1, 0, 0, 0, 2960, 2961, 3, 11, 5, 0, 2961, 2962, 3, 41, 20, 0, 2962, 2963, 3, 15, 7, 0, 2963, 2964, 3, 7, 3, 0, 2964, 2965, 3, 45, 22, 0, 2965, 2966, 3, 15, 7, 0, 2966, 2967, 3, 13, 6, 0, 2967, 2968, 3, 9, 4, 0, 2968, 316, 1, 0, 0, 0, 2969, 2970, 3, 11, 5, 0, 2970, 2971, 3, 41, 20, 0, 2971, 2972, 3, 15, 7, 0, 2972, 2973, 3, 7, 3, 0, 2973, 2974, 3, 45, 22, 0, 2974, 2975, 3, 15, 7, 0, 2975, 2976, 3, 47, 23, 0, 2976, 2977, 3, 43, 21, 0, 2977, 2978, 3, 15, 7, 0, 2978, 2979, 3, 41, 20, 0, 2979, 318, 1, 0, 0, 0, 2980, 2981, 3, 11, 5, 0, 2981, 2982, 3, 41, 20, 0, 2982, 2983, 3, 35, 17, 0, 2983, 2984, 3, 43, 21, 0, 2984, 2985, 3, 43, 21, 0, 2985, 320, 1, 0, 0, 0, 2986, 2987, 3, 11, 5, 0, 2987, 2988, 3, 43, 21, 0, 2988, 2989, 3, 49, 24, 0, 2989, 322, 1, 0, 0, 0, 2990, 2991, 3, 11, 5, 0, 2991, 2992, 3, 47, 23, 0, 2992, 2993, 3, 9, 4, 0, 2993, 2994, 3, 15, 7, 0, 2994, 324, 1, 0, 0, 0, 2995, 2996, 3, 11, 5, 0, 2996, 2997, 3, 47, 23, 0, 2997, 2998, 3, 31, 15, 0, 2998, 2999, 3, 15, 7, 0, 2999, 3000, 5, 95, 0, 0, 3000, 3001, 3, 13, 6, 0, 3001, 3002, 3, 23, 11, 0, 3002, 3003, 3, 43, 21, 0, 3003, 3004, 3, 45, 22, 0, 3004, 326, 1, 0, 0, 0, 3005, 3006, 3, 11, 5, 0, 3006, 3007, 3, 47, 23, 0, 3007, 3008, 3, 41, 20, 0, 3008, 3009, 3, 41, 20, 0, 3009, 3010, 3, 15, 7, 0, 3010, 3011, 3, 33, 16, 0, 3011, 3012, 3, 45, 22, 0, 3012, 328, 1, 0, 0, 0, 3013, 3014, 3, 11, 5, 0, 3014, 3015, 3, 47, 23, 0, 3015, 3016, 3, 41, 20, 0, 3016, 3017, 3, 41, 20, 0, 3017, 3018, 3, 15, 7, 0, 3018, 3019, 3, 33, 16, 0, 3019, 3020, 3, 45, 22, 0, 3020, 3021, 5, 95, 0, 0, 3021, 3022, 3, 13, 6, 0, 3022, 3023, 3, 7, 3, 0, 3023, 3024, 3, 45, 22, 0, 3024, 3025, 3, 15, 7, 0, 3025, 330, 1, 0, 0, 0, 3026, 3027, 3, 11, 5, 0, 3027, 3028, 3, 47, 23, 0, 3028, 3029, 3, 41, 20, 0, 3029, 3030, 3, 41, 20, 0, 3030, 3031, 3, 15, 7, 0, 3031, 3032, 3, 33, 16, 0, 3032, 3033, 3, 45, 22, 0, 3033, 3034, 5, 95, 0, 0, 3034, 3035, 3, 13, 6, 0, 3035, 3036, 3, 15, 7, 0, 3036, 3037, 3, 17, 8, 0, 3037, 3038, 3, 7, 3, 0, 3038, 3039, 3, 47, 23, 0, 3039, 3040, 3, 29, 14, 0, 3040, 3041, 3, 45, 22, 0, 3041, 3042, 5, 95, 0, 0, 3042, 3043, 3, 45, 22, 0, 3043, 3044, 3, 41, 20, 0, 3044, 3045, 3, 7, 3, 0, 3045, 3046, 3, 33, 16, 0, 3046, 3047, 3, 43, 21, 0, 3047, 3048, 3, 17, 8, 0, 3048, 3049, 3, 35, 17, 0, 3049, 3050, 3, 41, 20, 0, 3050, 3051, 3, 31, 15, 0, 3051, 3052, 5, 95, 0, 0, 3052, 3053, 3, 19, 9, 0, 3053, 3054, 3, 41, 20, 0, 3054, 3055, 3, 35, 17, 0, 3055, 3056, 3, 47, 23, 0, 3056, 3057, 3, 37, 18, 0, 3057, 332, 1, 0, 0, 0, 3058, 3059, 3, 11, 5, 0, 3059, 3060, 3, 47, 23, 0, 3060, 3061, 3, 41, 20, 0, 3061, 3062, 3, 41, 20, 0, 3062, 3063, 3, 15, 7, 0, 3063, 3064, 3, 33, 16, 0, 3064, 3065, 3, 45, 22, 0, 3065, 3066, 5, 95, 0, 0, 3066, 3067, 3, 37, 18, 0, 3067, 3068, 3, 7, 3, 0, 3068, 3069, 3, 45, 22, 0, 3069, 3070, 3, 21, 10, 0, 3070, 334, 1, 0, 0, 0, 3071, 3072, 3, 11, 5, 0, 3072, 3073, 3, 47, 23, 0, 3073, 3074, 3, 41, 20, 0, 3074, 3075, 3, 41, 20, 0, 3075, 3076, 3, 15, 7, 0, 3076, 3077, 3, 33, 16, 0, 3077, 3078, 3, 45, 22, 0, 3078, 3079, 5, 95, 0, 0, 3079, 3080, 3, 41, 20, 0, 3080, 3081, 3, 35, 17, 0, 3081, 3082, 3, 29, 14, 0, 3082, 3083, 3, 15, 7, 0, 3083, 336, 1, 0, 0, 0, 3084, 3085, 3, 11, 5, 0, 3085, 3086, 3, 47, 23, 0, 3086, 3087, 3, 41, 20, 0, 3087, 3088, 3, 41, 20, 0, 3088, 3089, 3, 15, 7, 0, 3089, 3090, 3, 33, 16, 0, 3090, 3091, 3, 45, 22, 0, 3091, 3092, 5, 95, 0, 0, 3092, 3093, 3, 45, 22, 0, 3093, 3094, 3, 23, 11, 0, 3094, 3095, 3, 31, 15, 0, 3095, 3096, 3, 15, 7, 0, 3096, 338, 1, 0, 0, 0, 3097, 3098, 3, 11, 5, 0, 3098, 3099, 3, 47, 23, 0, 3099, 3100, 3, 41, 20, 0, 3100, 3101, 3, 41, 20, 0, 3101, 3102, 3, 15, 7, 0, 3102, 3103, 3, 33, 16, 0, 3103, 3104, 3, 45, 22, 0, 3104, 3105, 5, 95, 0, 0, 3105, 3106, 3, 45, 22, 0, 3106, 3107, 3, 23, 11, 0, 3107, 3108, 3, 31, 15, 0, 3108, 3109, 3, 15, 7, 0, 3109, 3110, 3, 43, 21, 0, 3110, 3111, 3, 45, 22, 0, 3111, 3112, 3, 7, 3, 0, 3112, 3113, 3, 31, 15, 0, 3113, 3114, 3, 37, 18, 0, 3114, 340, 1, 0, 0, 0, 3115, 3116, 3, 11, 5, 0, 3116, 3117, 3, 47, 23, 0, 3117, 3118, 3, 41, 20, 0, 3118, 3119, 3, 41, 20, 0, 3119, 3120, 3, 15, 7, 0, 3120, 3121, 3, 33, 16, 0, 3121, 3122, 3, 45, 22, 0, 3122, 3123, 5, 95, 0, 0, 3123, 3124, 3, 45, 22, 0, 3124, 3125, 3, 41, 20, 0, 3125, 3126, 3, 7, 3, 0, 3126, 3127, 3, 33, 16, 0, 3127, 3128, 3, 43, 21, 0, 3128, 3129, 3, 17, 8, 0, 3129, 3130, 3, 35, 17, 0, 3130, 3131, 3, 41, 20, 0, 3131, 3132, 3, 31, 15, 0, 3132, 3133, 5, 95, 0, 0, 3133, 3134, 3, 19, 9, 0, 3134, 3135, 3, 41, 20, 0, 3135, 3136, 3, 35, 17, 0, 3136, 3137, 3, 47, 23, 0, 3137, 3138, 3, 37, 18, 0, 3138, 3139, 5, 95, 0, 0, 3139, 3140, 3, 17, 8, 0, 3140, 3141, 3, 35, 17, 0, 3141, 3142, 3, 41, 20, 0, 3142, 3143, 5, 95, 0, 0, 3143, 3144, 3, 45, 22, 0, 3144, 3145, 3, 55, 27, 0, 3145, 3146, 3, 37, 18, 0, 3146, 3147, 3, 15, 7, 0, 3147, 342, 1, 0, 0, 0, 3148, 3149, 3, 11, 5, 0, 3149, 3150, 3, 47, 23, 0, 3150, 3151, 3, 41, 20, 0, 3151, 3152, 3, 41, 20, 0, 3152, 3153, 3, 15, 7, 0, 3153, 3154, 3, 33, 16, 0, 3154, 3155, 3, 45, 22, 0, 3155, 3156, 5, 95, 0, 0, 3156, 3157, 3, 47, 23, 0, 3157, 3158, 3, 43, 21, 0, 3158, 3159, 3, 15, 7, 0, 3159, 3160, 3, 41, 20, 0, 3160, 344, 1, 0, 0, 0, 3161, 3162, 3, 11, 5, 0, 3162, 3163, 3, 47, 23, 0, 3163, 3164, 3, 41, 20, 0, 3164, 3165, 3, 43, 21, 0, 3165, 3166, 3, 35, 17, 0, 3166, 3167, 3, 41, 20, 0, 3167, 346, 1, 0, 0, 0, 3168, 3169, 3, 11, 5, 0, 3169, 3170, 3, 47, 23, 0, 3170, 3171, 3, 41, 20, 0, 3171, 3172, 3, 43, 21, 0, 3172, 3173, 3, 35, 17, 0, 3173, 3174, 3, 41, 20, 0, 3174, 3175, 5, 95, 0, 0, 3175, 3176, 3, 33, 16, 0, 3176, 3177, 3, 7, 3, 0, 3177, 3178, 3, 31, 15, 0, 3178, 3179, 3, 15, 7, 0, 3179, 348, 1, 0, 0, 0, 3180, 3181, 3, 11, 5, 0, 3181, 3182, 3, 55, 27, 0, 3182, 3183, 3, 11, 5, 0, 3183, 3184, 3, 29, 14, 0, 3184, 3185, 3, 15, 7, 0, 3185, 350, 1, 0, 0, 0, 3186, 3187, 3, 13, 6, 0, 3187, 3188, 3, 7, 3, 0, 3188, 3189, 3, 45, 22, 0, 3189, 3190, 3, 7, 3, 0, 3190, 352, 1, 0, 0, 0, 3191, 3192, 3, 13, 6, 0, 3192, 3193, 3, 7, 3, 0, 3193, 3194, 3, 45, 22, 0, 3194, 3195, 3, 7, 3, 0, 3195, 3196, 3, 9, 4, 0, 3196, 3197, 3, 7, 3, 0, 3197, 3198, 3, 43, 21, 0, 3198, 3199, 3, 15, 7, 0, 3199, 354, 1, 0, 0, 0, 3200, 3201, 3, 13, 6, 0, 3201, 3202, 3, 7, 3, 0, 3202, 3203, 3, 45, 22, 0, 3203, 3204, 3, 15, 7, 0, 3204, 356, 1, 0, 0, 0, 3205, 3206, 3, 13, 6, 0, 3206, 3207, 3, 7, 3, 0, 3207, 3208, 3, 45, 22, 0, 3208, 3209, 3, 15, 7, 0, 3209, 3210, 3, 45, 22, 0, 3210, 3211, 3, 23, 11, 0, 3211, 3212, 3, 31, 15, 0, 3212, 3213, 3, 15, 7, 0, 3213, 3214, 5, 95, 0, 0, 3214, 3215, 3, 23, 11, 0, 3215, 3216, 3, 33, 16, 0, 3216, 3217, 3, 45, 22, 0, 3217, 3218, 3, 15, 7, 0, 3218, 3219, 3, 41, 20, 0, 3219, 3220, 3, 49, 24, 0, 3220, 3221, 3, 7, 3, 0, 3221, 3222, 3, 29, 14, 0, 3222, 3223, 5, 95, 0, 0, 3223, 3224, 3, 11, 5, 0, 3224, 3225, 3, 35, 17, 0, 3225, 3226, 3, 13, 6, 0, 3226, 3227, 3, 15, 7, 0, 3227, 358, 1, 0, 0, 0, 3228, 3229, 3, 13, 6, 0, 3229, 3230, 3, 7, 3, 0, 3230, 3231, 3, 45, 22, 0, 3231, 3232, 3, 15, 7, 0, 3232, 3233, 3, 45, 22, 0, 3233, 3234, 3, 23, 11, 0, 3234, 3235, 3, 31, 15, 0, 3235, 3236, 3, 15, 7, 0, 3236, 3237, 5, 95, 0, 0, 3237, 3238, 3, 23, 11, 0, 3238, 3239, 3, 33, 16, 0, 3239, 3240, 3, 45, 22, 0, 3240, 3241, 3, 15, 7, 0, 3241, 3242, 3, 41, 20, 0, 3242, 3243, 3, 49, 24, 0, 3243, 3244, 3, 7, 3, 0, 3244, 3245, 3, 29, 14, 0, 3245, 3246, 5, 95, 0, 0, 3246, 3247, 3, 37, 18, 0, 3247, 3248, 3, 41, 20, 0, 3248, 3249, 3, 15, 7, 0, 3249, 3250, 3, 11, 5, 0, 3250, 3251, 3, 23, 11, 0, 3251, 3252, 3, 43, 21, 0, 3252, 3253, 3, 23, 11, 0, 3253, 3254, 3, 35, 17, 0, 3254, 3255, 3, 33, 16, 0, 3255, 360, 1, 0, 0, 0, 3256, 3257, 3, 13, 6, 0, 3257, 3258, 3, 7, 3, 0, 3258, 3259, 3, 55, 27, 0, 3259, 362, 1, 0, 0, 0, 3260, 3261, 3, 13, 6, 0, 3261, 3262, 3, 15, 7, 0, 3262, 3263, 3, 7, 3, 0, 3263, 3264, 3, 29, 14, 0, 3264, 3265, 3, 29, 14, 0, 3265, 3266, 3, 35, 17, 0, 3266, 3267, 3, 11, 5, 0, 3267, 3268, 3, 7, 3, 0, 3268, 3269, 3, 45, 22, 0, 3269, 3270, 3, 15, 7, 0, 3270, 364, 1, 0, 0, 0, 3271, 3272, 3, 13, 6, 0, 3272, 3273, 3, 15, 7, 0, 3273, 3274, 3, 11, 5, 0, 3274, 366, 1, 0, 0, 0, 3275, 3276, 3, 13, 6, 0, 3276, 3277, 3, 15, 7, 0, 3277, 3278, 3, 11, 5, 0, 3278, 3279, 3, 23, 11, 0, 3279, 3280, 3, 31, 15, 0, 3280, 3281, 3, 7, 3, 0, 3281, 3282, 3, 29, 14, 0, 3282, 368, 1, 0, 0, 0, 3283, 3284, 3, 13, 6, 0, 3284, 3285, 3, 15, 7, 0, 3285, 3286, 3, 11, 5, 0, 3286, 3287, 3, 29, 14, 0, 3287, 3288, 3, 7, 3, 0, 3288, 3289, 3, 41, 20, 0, 3289, 3290, 3, 15, 7, 0, 3290, 370, 1, 0, 0, 0, 3291, 3292, 3, 13, 6, 0, 3292, 3293, 3, 15, 7, 0, 3293, 3294, 3, 17, 8, 0, 3294, 3295, 3, 7, 3, 0, 3295, 3296, 3, 47, 23, 0, 3296, 3297, 3, 29, 14, 0, 3297, 3298, 3, 45, 22, 0, 3298, 372, 1, 0, 0, 0, 3299, 3300, 3, 13, 6, 0, 3300, 3301, 3, 15, 7, 0, 3301, 3302, 3, 17, 8, 0, 3302, 3303, 3, 7, 3, 0, 3303, 3304, 3, 47, 23, 0, 3304, 3305, 3, 29, 14, 0, 3305, 3306, 3, 45, 22, 0, 3306, 3307, 3, 43, 21, 0, 3307, 374, 1, 0, 0, 0, 3308, 3309, 3, 13, 6, 0, 3309, 3310, 3, 15, 7, 0, 3310, 3311, 3, 17, 8, 0, 3311, 3312, 3, 15, 7, 0, 3312, 3313, 3, 41, 20, 0, 3313, 3314, 3, 7, 3, 0, 3314, 3315, 3, 9, 4, 0, 3315, 3316, 3, 29, 14, 0, 3316, 3317, 3, 15, 7, 0, 3317, 376, 1, 0, 0, 0, 3318, 3319, 3, 13, 6, 0, 3319, 3320, 3, 15, 7, 0, 3320, 3321, 3, 17, 8, 0, 3321, 3322, 3, 15, 7, 0, 3322, 3323, 3, 41, 20, 0, 3323, 3324, 3, 41, 20, 0, 3324, 3325, 3, 7, 3, 0, 3325, 3326, 3, 9, 4, 0, 3326, 3327, 3, 29, 14, 0, 3327, 3328, 3, 15, 7, 0, 3328, 378, 1, 0, 0, 0, 3329, 3330, 3, 13, 6, 0, 3330, 3331, 3, 15, 7, 0, 3331, 3332, 3, 17, 8, 0, 3332, 3333, 3, 15, 7, 0, 3333, 3334, 3, 41, 20, 0, 3334, 3335, 3, 41, 20, 0, 3335, 3336, 3, 15, 7, 0, 3336, 3337, 3, 13, 6, 0, 3337, 380, 1, 0, 0, 0, 3338, 3339, 3, 13, 6, 0, 3339, 3340, 3, 15, 7, 0, 3340, 3341, 3, 17, 8, 0, 3341, 3342, 3, 23, 11, 0, 3342, 3343, 3, 33, 16, 0, 3343, 3344, 3, 15, 7, 0, 3344, 3345, 3, 13, 6, 0, 3345, 382, 1, 0, 0, 0, 3346, 3347, 3, 13, 6, 0, 3347, 3348, 3, 15, 7, 0, 3348, 3349, 3, 17, 8, 0, 3349, 3350, 3, 23, 11, 0, 3350, 3351, 3, 33, 16, 0, 3351, 3352, 3, 15, 7, 0, 3352, 3353, 3, 41, 20, 0, 3353, 384, 1, 0, 0, 0, 3354, 3355, 3, 13, 6, 0, 3355, 3356, 3, 15, 7, 0, 3356, 3357, 3, 19, 9, 0, 3357, 3358, 3, 41, 20, 0, 3358, 3359, 3, 15, 7, 0, 3359, 3360, 3, 15, 7, 0, 3360, 386, 1, 0, 0, 0, 3361, 3362, 3, 13, 6, 0, 3362, 3363, 3, 15, 7, 0, 3363, 3364, 3, 29, 14, 0, 3364, 3365, 3, 15, 7, 0, 3365, 3366, 3, 45, 22, 0, 3366, 3367, 3, 15, 7, 0, 3367, 388, 1, 0, 0, 0, 3368, 3369, 3, 13, 6, 0, 3369, 3370, 3, 15, 7, 0, 3370, 3371, 3, 29, 14, 0, 3371, 3372, 3, 23, 11, 0, 3372, 3373, 3, 31, 15, 0, 3373, 3374, 3, 23, 11, 0, 3374, 3375, 3, 45, 22, 0, 3375, 3376, 3, 15, 7, 0, 3376, 3377, 3, 41, 20, 0, 3377, 390, 1, 0, 0, 0, 3378, 3379, 3, 13, 6, 0, 3379, 3380, 3, 15, 7, 0, 3380, 3381, 3, 29, 14, 0, 3381, 3382, 3, 23, 11, 0, 3382, 3383, 3, 31, 15, 0, 3383, 3384, 3, 23, 11, 0, 3384, 3385, 3, 45, 22, 0, 3385, 3386, 3, 15, 7, 0, 3386, 3387, 3, 41, 20, 0, 3387, 3388, 3, 43, 21, 0, 3388, 392, 1, 0, 0, 0, 3389, 3390, 3, 13, 6, 0, 3390, 3391, 3, 15, 7, 0, 3391, 3392, 3, 33, 16, 0, 3392, 3393, 3, 43, 21, 0, 3393, 3394, 3, 15, 7, 0, 3394, 3395, 5, 95, 0, 0, 3395, 3396, 3, 41, 20, 0, 3396, 3397, 3, 7, 3, 0, 3397, 3398, 3, 33, 16, 0, 3398, 3399, 3, 27, 13, 0, 3399, 394, 1, 0, 0, 0, 3400, 3401, 3, 13, 6, 0, 3401, 3402, 3, 15, 7, 0, 3402, 3403, 3, 37, 18, 0, 3403, 3404, 3, 15, 7, 0, 3404, 3405, 3, 33, 16, 0, 3405, 3406, 3, 13, 6, 0, 3406, 3407, 3, 43, 21, 0, 3407, 396, 1, 0, 0, 0, 3408, 3409, 3, 13, 6, 0, 3409, 3410, 3, 15, 7, 0, 3410, 3411, 3, 37, 18, 0, 3411, 3412, 3, 45, 22, 0, 3412, 3413, 3, 21, 10, 0, 3413, 398, 1, 0, 0, 0, 3414, 3415, 3, 13, 6, 0, 3415, 3416, 3, 15, 7, 0, 3416, 3417, 3, 41, 20, 0, 3417, 3418, 3, 15, 7, 0, 3418, 3419, 3, 17, 8, 0, 3419, 400, 1, 0, 0, 0, 3420, 3421, 3, 13, 6, 0, 3421, 3422, 3, 15, 7, 0, 3422, 3423, 3, 41, 20, 0, 3423, 3424, 3, 23, 11, 0, 3424, 3425, 3, 49, 24, 0, 3425, 3426, 3, 15, 7, 0, 3426, 3427, 3, 13, 6, 0, 3427, 402, 1, 0, 0, 0, 3428, 3429, 3, 13, 6, 0, 3429, 3430, 3, 15, 7, 0, 3430, 3431, 3, 43, 21, 0, 3431, 3432, 3, 11, 5, 0, 3432, 404, 1, 0, 0, 0, 3433, 3434, 3, 13, 6, 0, 3434, 3435, 3, 15, 7, 0, 3435, 3436, 3, 43, 21, 0, 3436, 3437, 3, 11, 5, 0, 3437, 3438, 3, 41, 20, 0, 3438, 3439, 3, 23, 11, 0, 3439, 3440, 3, 9, 4, 0, 3440, 3441, 3, 15, 7, 0, 3441, 406, 1, 0, 0, 0, 3442, 3443, 3, 13, 6, 0, 3443, 3444, 3, 15, 7, 0, 3444, 3445, 3, 43, 21, 0, 3445, 3446, 3, 11, 5, 0, 3446, 3447, 3, 41, 20, 0, 3447, 3448, 3, 23, 11, 0, 3448, 3449, 3, 37, 18, 0, 3449, 3450, 3, 45, 22, 0, 3450, 3451, 3, 35, 17, 0, 3451, 3452, 3, 41, 20, 0, 3452, 408, 1, 0, 0, 0, 3453, 3454, 3, 13, 6, 0, 3454, 3455, 3, 15, 7, 0, 3455, 3456, 3, 43, 21, 0, 3456, 3457, 3, 45, 22, 0, 3457, 3458, 3, 41, 20, 0, 3458, 3459, 3, 35, 17, 0, 3459, 3460, 3, 55, 27, 0, 3460, 410, 1, 0, 0, 0, 3461, 3462, 3, 13, 6, 0, 3462, 3463, 3, 15, 7, 0, 3463, 3464, 3, 43, 21, 0, 3464, 3465, 3, 45, 22, 0, 3465, 3466, 3, 41, 20, 0, 3466, 3467, 3, 47, 23, 0, 3467, 3468, 3, 11, 5, 0, 3468, 3469, 3, 45, 22, 0, 3469, 3470, 3, 35, 17, 0, 3470, 3471, 3, 41, 20, 0, 3471, 412, 1, 0, 0, 0, 3472, 3473, 3, 13, 6, 0, 3473, 3474, 3, 15, 7, 0, 3474, 3475, 3, 45, 22, 0, 3475, 3476, 3, 15, 7, 0, 3476, 3477, 3, 41, 20, 0, 3477, 3478, 3, 31, 15, 0, 3478, 3479, 3, 23, 11, 0, 3479, 3480, 3, 33, 16, 0, 3480, 3481, 3, 23, 11, 0, 3481, 3482, 3, 43, 21, 0, 3482, 3483, 3, 45, 22, 0, 3483, 3484, 3, 23, 11, 0, 3484, 3485, 3, 11, 5, 0, 3485, 414, 1, 0, 0, 0, 3486, 3487, 3, 13, 6, 0, 3487, 3488, 3, 23, 11, 0, 3488, 3489, 3, 7, 3, 0, 3489, 3490, 3, 19, 9, 0, 3490, 3491, 3, 33, 16, 0, 3491, 3492, 3, 35, 17, 0, 3492, 3493, 3, 43, 21, 0, 3493, 3494, 3, 45, 22, 0, 3494, 3495, 3, 23, 11, 0, 3495, 3496, 3, 11, 5, 0, 3496, 3497, 3, 43, 21, 0, 3497, 416, 1, 0, 0, 0, 3498, 3499, 3, 13, 6, 0, 3499, 3500, 3, 23, 11, 0, 3500, 3501, 3, 11, 5, 0, 3501, 3502, 3, 45, 22, 0, 3502, 3503, 3, 23, 11, 0, 3503, 3504, 3, 35, 17, 0, 3504, 3505, 3, 33, 16, 0, 3505, 3506, 3, 7, 3, 0, 3506, 3507, 3, 41, 20, 0, 3507, 3508, 3, 55, 27, 0, 3508, 418, 1, 0, 0, 0, 3509, 3510, 3, 13, 6, 0, 3510, 3511, 3, 23, 11, 0, 3511, 3512, 3, 43, 21, 0, 3512, 3513, 3, 7, 3, 0, 3513, 3514, 3, 9, 4, 0, 3514, 3515, 3, 29, 14, 0, 3515, 3516, 3, 15, 7, 0, 3516, 420, 1, 0, 0, 0, 3517, 3518, 3, 13, 6, 0, 3518, 3519, 3, 23, 11, 0, 3519, 3520, 3, 43, 21, 0, 3520, 3521, 3, 7, 3, 0, 3521, 3522, 3, 9, 4, 0, 3522, 3523, 3, 29, 14, 0, 3523, 3524, 3, 15, 7, 0, 3524, 3525, 5, 95, 0, 0, 3525, 3526, 3, 37, 18, 0, 3526, 3527, 3, 7, 3, 0, 3527, 3528, 3, 19, 9, 0, 3528, 3529, 3, 15, 7, 0, 3529, 3530, 5, 95, 0, 0, 3530, 3531, 3, 43, 21, 0, 3531, 3532, 3, 27, 13, 0, 3532, 3533, 3, 23, 11, 0, 3533, 3534, 3, 37, 18, 0, 3534, 3535, 3, 37, 18, 0, 3535, 3536, 3, 23, 11, 0, 3536, 3537, 3, 33, 16, 0, 3537, 3538, 3, 19, 9, 0, 3538, 422, 1, 0, 0, 0, 3539, 3540, 3, 13, 6, 0, 3540, 3541, 3, 23, 11, 0, 3541, 3542, 3, 43, 21, 0, 3542, 3543, 3, 11, 5, 0, 3543, 3544, 3, 7, 3, 0, 3544, 3545, 3, 41, 20, 0, 3545, 3546, 3, 13, 6, 0, 3546, 424, 1, 0, 0, 0, 3547, 3548, 3, 13, 6, 0, 3548, 3549, 3, 23, 11, 0, 3549, 3550, 3, 43, 21, 0, 3550, 3551, 3, 11, 5, 0, 3551, 3552, 3, 35, 17, 0, 3552, 3553, 3, 33, 16, 0, 3553, 3554, 3, 33, 16, 0, 3554, 3555, 3, 15, 7, 0, 3555, 3556, 3, 11, 5, 0, 3556, 3557, 3, 45, 22, 0, 3557, 426, 1, 0, 0, 0, 3558, 3559, 3, 13, 6, 0, 3559, 3560, 3, 23, 11, 0, 3560, 3561, 3, 43, 21, 0, 3561, 3562, 3, 37, 18, 0, 3562, 3563, 3, 7, 3, 0, 3563, 3564, 3, 45, 22, 0, 3564, 3565, 3, 11, 5, 0, 3565, 3566, 3, 21, 10, 0, 3566, 428, 1, 0, 0, 0, 3567, 3568, 3, 13, 6, 0, 3568, 3569, 3, 23, 11, 0, 3569, 3570, 3, 43, 21, 0, 3570, 3571, 3, 45, 22, 0, 3571, 3572, 3, 23, 11, 0, 3572, 3573, 3, 33, 16, 0, 3573, 3574, 3, 11, 5, 0, 3574, 3575, 3, 45, 22, 0, 3575, 430, 1, 0, 0, 0, 3576, 3577, 3, 13, 6, 0, 3577, 3578, 3, 35, 17, 0, 3578, 432, 1, 0, 0, 0, 3579, 3580, 3, 13, 6, 0, 3580, 3581, 3, 35, 17, 0, 3581, 3582, 3, 31, 15, 0, 3582, 3583, 3, 7, 3, 0, 3583, 3584, 3, 23, 11, 0, 3584, 3585, 3, 33, 16, 0, 3585, 434, 1, 0, 0, 0, 3586, 3587, 3, 13, 6, 0, 3587, 3588, 3, 35, 17, 0, 3588, 3589, 3, 47, 23, 0, 3589, 3590, 3, 9, 4, 0, 3590, 3591, 3, 29, 14, 0, 3591, 3592, 3, 15, 7, 0, 3592, 436, 1, 0, 0, 0, 3593, 3594, 3, 13, 6, 0, 3594, 3595, 3, 41, 20, 0, 3595, 3596, 3, 35, 17, 0, 3596, 3597, 3, 37, 18, 0, 3597, 438, 1, 0, 0, 0, 3598, 3599, 3, 13, 6, 0, 3599, 3600, 3, 55, 27, 0, 3600, 3601, 3, 33, 16, 0, 3601, 3602, 3, 7, 3, 0, 3602, 3603, 3, 31, 15, 0, 3603, 3604, 3, 23, 11, 0, 3604, 3605, 3, 11, 5, 0, 3605, 440, 1, 0, 0, 0, 3606, 3607, 3, 13, 6, 0, 3607, 3608, 3, 55, 27, 0, 3608, 3609, 3, 33, 16, 0, 3609, 3610, 3, 7, 3, 0, 3610, 3611, 3, 31, 15, 0, 3611, 3612, 3, 23, 11, 0, 3612, 3613, 3, 11, 5, 0, 3613, 3614, 5, 95, 0, 0, 3614, 3615, 3, 17, 8, 0, 3615, 3616, 3, 47, 23, 0, 3616, 3617, 3, 33, 16, 0, 3617, 3618, 3, 11, 5, 0, 3618, 3619, 3, 45, 22, 0, 3619, 3620, 3, 23, 11, 0, 3620, 3621, 3, 35, 17, 0, 3621, 3622, 3, 33, 16, 0, 3622, 442, 1, 0, 0, 0, 3623, 3624, 3, 13, 6, 0, 3624, 3625, 3, 55, 27, 0, 3625, 3626, 3, 33, 16, 0, 3626, 3627, 3, 7, 3, 0, 3627, 3628, 3, 31, 15, 0, 3628, 3629, 3, 23, 11, 0, 3629, 3630, 3, 11, 5, 0, 3630, 3631, 5, 95, 0, 0, 3631, 3632, 3, 17, 8, 0, 3632, 3633, 3, 47, 23, 0, 3633, 3634, 3, 33, 16, 0, 3634, 3635, 3, 11, 5, 0, 3635, 3636, 3, 45, 22, 0, 3636, 3637, 3, 23, 11, 0, 3637, 3638, 3, 35, 17, 0, 3638, 3639, 3, 33, 16, 0, 3639, 3640, 5, 95, 0, 0, 3640, 3641, 3, 11, 5, 0, 3641, 3642, 3, 35, 17, 0, 3642, 3643, 3, 13, 6, 0, 3643, 3644, 3, 15, 7, 0, 3644, 444, 1, 0, 0, 0, 3645, 3646, 3, 15, 7, 0, 3646, 3647, 3, 7, 3, 0, 3647, 3648, 3, 11, 5, 0, 3648, 3649, 3, 21, 10, 0, 3649, 446, 1, 0, 0, 0, 3650, 3651, 3, 15, 7, 0, 3651, 3652, 3, 29, 14, 0, 3652, 3653, 3, 15, 7, 0, 3653, 3654, 3, 31, 15, 0, 3654, 3655, 3, 15, 7, 0, 3655, 3656, 3, 33, 16, 0, 3656, 3657, 3, 45, 22, 0, 3657, 448, 1, 0, 0, 0, 3658, 3659, 3, 15, 7, 0, 3659, 3660, 3, 29, 14, 0, 3660, 3661, 3, 43, 21, 0, 3661, 3662, 3, 15, 7, 0, 3662, 450, 1, 0, 0, 0, 3663, 3664, 3, 15, 7, 0, 3664, 3665, 3, 33, 16, 0, 3665, 3666, 3, 7, 3, 0, 3666, 3667, 3, 9, 4, 0, 3667, 3668, 3, 29, 14, 0, 3668, 3669, 3, 15, 7, 0, 3669, 452, 1, 0, 0, 0, 3670, 3671, 3, 15, 7, 0, 3671, 3672, 3, 33, 16, 0, 3672, 3673, 3, 11, 5, 0, 3673, 3674, 3, 35, 17, 0, 3674, 3675, 3, 13, 6, 0, 3675, 3676, 3, 23, 11, 0, 3676, 3677, 3, 33, 16, 0, 3677, 3678, 3, 19, 9, 0, 3678, 454, 1, 0, 0, 0, 3679, 3680, 3, 15, 7, 0, 3680, 3681, 3, 33, 16, 0, 3681, 3682, 3, 11, 5, 0, 3682, 3683, 3, 41, 20, 0, 3683, 3684, 3, 55, 27, 0, 3684, 3685, 3, 37, 18, 0, 3685, 3686, 3, 45, 22, 0, 3686, 3687, 3, 15, 7, 0, 3687, 3688, 3, 13, 6, 0, 3688, 456, 1, 0, 0, 0, 3689, 3690, 3, 15, 7, 0, 3690, 3691, 3, 33, 16, 0, 3691, 3692, 3, 13, 6, 0, 3692, 458, 1, 0, 0, 0, 3693, 3694, 3, 15, 7, 0, 3694, 3695, 3, 33, 16, 0, 3695, 3696, 3, 13, 6, 0, 3696, 3697, 5, 45, 0, 0, 3697, 3698, 3, 15, 7, 0, 3698, 3699, 3, 53, 26, 0, 3699, 3700, 3, 15, 7, 0, 3700, 3701, 3, 11, 5, 0, 3701, 460, 1, 0, 0, 0, 3702, 3703, 3, 15, 7, 0, 3703, 3704, 3, 39, 19, 0, 3704, 3705, 3, 47, 23, 0, 3705, 3706, 3, 7, 3, 0, 3706, 3707, 3, 29, 14, 0, 3707, 3708, 3, 43, 21, 0, 3708, 462, 1, 0, 0, 0, 3709, 3710, 3, 15, 7, 0, 3710, 3711, 3, 43, 21, 0, 3711, 3712, 3, 11, 5, 0, 3712, 3713, 3, 7, 3, 0, 3713, 3714, 3, 37, 18, 0, 3714, 3715, 3, 15, 7, 0, 3715, 464, 1, 0, 0, 0, 3716, 3717, 3, 15, 7, 0, 3717, 3718, 3, 49, 24, 0, 3718, 3719, 3, 15, 7, 0, 3719, 3720, 3, 41, 20, 0, 3720, 3721, 3, 55, 27, 0, 3721, 466, 1, 0, 0, 0, 3722, 3723, 3, 15, 7, 0, 3723, 3724, 3, 53, 26, 0, 3724, 3725, 3, 11, 5, 0, 3725, 3726, 3, 15, 7, 0, 3726, 3727, 3, 37, 18, 0, 3727, 3728, 3, 45, 22, 0, 3728, 468, 1, 0, 0, 0, 3729, 3730, 3, 15, 7, 0, 3730, 3731, 3, 53, 26, 0, 3731, 3732, 3, 11, 5, 0, 3732, 3733, 3, 15, 7, 0, 3733, 3734, 3, 37, 18, 0, 3734, 3735, 3, 45, 22, 0, 3735, 3736, 3, 23, 11, 0, 3736, 3737, 3, 35, 17, 0, 3737, 3738, 3, 33, 16, 0, 3738, 470, 1, 0, 0, 0, 3739, 3740, 3, 15, 7, 0, 3740, 3741, 3, 53, 26, 0, 3741, 3742, 3, 11, 5, 0, 3742, 3743, 3, 29, 14, 0, 3743, 3744, 3, 47, 23, 0, 3744, 3745, 3, 13, 6, 0, 3745, 3746, 3, 15, 7, 0, 3746, 472, 1, 0, 0, 0, 3747, 3748, 3, 15, 7, 0, 3748, 3749, 3, 53, 26, 0, 3749, 3750, 3, 11, 5, 0, 3750, 3751, 3, 29, 14, 0, 3751, 3752, 3, 47, 23, 0, 3752, 3753, 3, 13, 6, 0, 3753, 3754, 3, 23, 11, 0, 3754, 3755, 3, 33, 16, 0, 3755, 3756, 3, 19, 9, 0, 3756, 474, 1, 0, 0, 0, 3757, 3758, 3, 15, 7, 0, 3758, 3759, 3, 53, 26, 0, 3759, 3760, 3, 11, 5, 0, 3760, 3761, 3, 29, 14, 0, 3761, 3762, 3, 47, 23, 0, 3762, 3763, 3, 43, 21, 0, 3763, 3764, 3, 23, 11, 0, 3764, 3765, 3, 49, 24, 0, 3765, 3766, 3, 15, 7, 0, 3766, 476, 1, 0, 0, 0, 3767, 3768, 3, 15, 7, 0, 3768, 3769, 3, 53, 26, 0, 3769, 3770, 3, 15, 7, 0, 3770, 3771, 3, 11, 5, 0, 3771, 478, 1, 0, 0, 0, 3772, 3773, 3, 15, 7, 0, 3773, 3774, 3, 53, 26, 0, 3774, 3775, 3, 15, 7, 0, 3775, 3776, 3, 11, 5, 0, 3776, 3777, 3, 47, 23, 0, 3777, 3778, 3, 45, 22, 0, 3778, 3779, 3, 15, 7, 0, 3779, 480, 1, 0, 0, 0, 3780, 3781, 3, 15, 7, 0, 3781, 3782, 3, 53, 26, 0, 3782, 3783, 3, 23, 11, 0, 3783, 3784, 3, 43, 21, 0, 3784, 3785, 3, 45, 22, 0, 3785, 3786, 3, 23, 11, 0, 3786, 3787, 3, 33, 16, 0, 3787, 3788, 3, 19, 9, 0, 3788, 482, 1, 0, 0, 0, 3789, 3790, 3, 15, 7, 0, 3790, 3791, 3, 53, 26, 0, 3791, 3792, 3, 23, 11, 0, 3792, 3793, 3, 43, 21, 0, 3793, 3794, 3, 45, 22, 0, 3794, 3795, 3, 43, 21, 0, 3795, 484, 1, 0, 0, 0, 3796, 3797, 3, 15, 7, 0, 3797, 3798, 3, 53, 26, 0, 3798, 3799, 3, 37, 18, 0, 3799, 486, 1, 0, 0, 0, 3800, 3801, 3, 15, 7, 0, 3801, 3802, 3, 53, 26, 0, 3802, 3803, 3, 37, 18, 0, 3803, 3804, 3, 29, 14, 0, 3804, 3805, 3, 7, 3, 0, 3805, 3806, 3, 23, 11, 0, 3806, 3807, 3, 33, 16, 0, 3807, 488, 1, 0, 0, 0, 3808, 3809, 3, 15, 7, 0, 3809, 3810, 3, 53, 26, 0, 3810, 3811, 3, 45, 22, 0, 3811, 3812, 3, 15, 7, 0, 3812, 3813, 3, 33, 16, 0, 3813, 3814, 3, 13, 6, 0, 3814, 3815, 3, 15, 7, 0, 3815, 3816, 3, 13, 6, 0, 3816, 490, 1, 0, 0, 0, 3817, 3818, 3, 15, 7, 0, 3818, 3819, 3, 53, 26, 0, 3819, 3820, 3, 45, 22, 0, 3820, 3821, 3, 15, 7, 0, 3821, 3822, 3, 33, 16, 0, 3822, 3823, 3, 43, 21, 0, 3823, 3824, 3, 23, 11, 0, 3824, 3825, 3, 35, 17, 0, 3825, 3826, 3, 33, 16, 0, 3826, 492, 1, 0, 0, 0, 3827, 3828, 3, 15, 7, 0, 3828, 3829, 3, 53, 26, 0, 3829, 3830, 3, 45, 22, 0, 3830, 3831, 3, 15, 7, 0, 3831, 3832, 3, 41, 20, 0, 3832, 3833, 3, 33, 16, 0, 3833, 3834, 3, 7, 3, 0, 3834, 3835, 3, 29, 14, 0, 3835, 494, 1, 0, 0, 0, 3836, 3837, 3, 15, 7, 0, 3837, 3838, 3, 53, 26, 0, 3838, 3839, 3, 45, 22, 0, 3839, 3840, 3, 41, 20, 0, 3840, 3841, 3, 7, 3, 0, 3841, 3842, 3, 11, 5, 0, 3842, 3843, 3, 45, 22, 0, 3843, 496, 1, 0, 0, 0, 3844, 3845, 3, 17, 8, 0, 3845, 3846, 3, 7, 3, 0, 3846, 3847, 3, 29, 14, 0, 3847, 3848, 3, 43, 21, 0, 3848, 3849, 3, 15, 7, 0, 3849, 498, 1, 0, 0, 0, 3850, 3851, 3, 17, 8, 0, 3851, 3852, 3, 15, 7, 0, 3852, 3853, 3, 45, 22, 0, 3853, 3854, 3, 11, 5, 0, 3854, 3855, 3, 21, 10, 0, 3855, 500, 1, 0, 0, 0, 3856, 3857, 3, 17, 8, 0, 3857, 3858, 3, 23, 11, 0, 3858, 3859, 3, 15, 7, 0, 3859, 3860, 3, 29, 14, 0, 3860, 3861, 3, 13, 6, 0, 3861, 3862, 3, 43, 21, 0, 3862, 502, 1, 0, 0, 0, 3863, 3864, 3, 17, 8, 0, 3864, 3865, 3, 23, 11, 0, 3865, 3866, 3, 29, 14, 0, 3866, 3867, 3, 45, 22, 0, 3867, 3868, 3, 15, 7, 0, 3868, 3869, 3, 41, 20, 0, 3869, 504, 1, 0, 0, 0, 3870, 3871, 3, 17, 8, 0, 3871, 3872, 3, 23, 11, 0, 3872, 3873, 3, 33, 16, 0, 3873, 3874, 3, 7, 3, 0, 3874, 3875, 3, 29, 14, 0, 3875, 506, 1, 0, 0, 0, 3876, 3877, 3, 17, 8, 0, 3877, 3878, 3, 23, 11, 0, 3878, 3879, 3, 41, 20, 0, 3879, 3880, 3, 43, 21, 0, 3880, 3881, 3, 45, 22, 0, 3881, 508, 1, 0, 0, 0, 3882, 3883, 3, 17, 8, 0, 3883, 3884, 3, 29, 14, 0, 3884, 3885, 3, 35, 17, 0, 3885, 3886, 3, 7, 3, 0, 3886, 3887, 3, 45, 22, 0, 3887, 510, 1, 0, 0, 0, 3888, 3889, 3, 17, 8, 0, 3889, 3890, 3, 29, 14, 0, 3890, 3891, 3, 35, 17, 0, 3891, 3892, 3, 35, 17, 0, 3892, 3893, 3, 41, 20, 0, 3893, 512, 1, 0, 0, 0, 3894, 3895, 3, 17, 8, 0, 3895, 3896, 3, 35, 17, 0, 3896, 3897, 3, 29, 14, 0, 3897, 3898, 3, 29, 14, 0, 3898, 3899, 3, 35, 17, 0, 3899, 3900, 3, 51, 25, 0, 3900, 3901, 3, 23, 11, 0, 3901, 3902, 3, 33, 16, 0, 3902, 3903, 3, 19, 9, 0, 3903, 514, 1, 0, 0, 0, 3904, 3905, 3, 17, 8, 0, 3905, 3906, 3, 35, 17, 0, 3906, 3907, 3, 41, 20, 0, 3907, 516, 1, 0, 0, 0, 3908, 3909, 3, 17, 8, 0, 3909, 3910, 3, 35, 17, 0, 3910, 3911, 3, 41, 20, 0, 3911, 3912, 3, 11, 5, 0, 3912, 3913, 3, 15, 7, 0, 3913, 518, 1, 0, 0, 0, 3914, 3915, 3, 17, 8, 0, 3915, 3916, 3, 35, 17, 0, 3916, 3917, 3, 41, 20, 0, 3917, 3918, 3, 15, 7, 0, 3918, 3919, 3, 23, 11, 0, 3919, 3920, 3, 19, 9, 0, 3920, 3921, 3, 33, 16, 0, 3921, 520, 1, 0, 0, 0, 3922, 3923, 3, 17, 8, 0, 3923, 3924, 3, 35, 17, 0, 3924, 3925, 3, 41, 20, 0, 3925, 3926, 3, 31, 15, 0, 3926, 3927, 3, 7, 3, 0, 3927, 3928, 3, 45, 22, 0, 3928, 522, 1, 0, 0, 0, 3929, 3930, 3, 17, 8, 0, 3930, 3931, 3, 35, 17, 0, 3931, 3932, 3, 41, 20, 0, 3932, 3933, 3, 45, 22, 0, 3933, 3934, 3, 41, 20, 0, 3934, 3935, 3, 7, 3, 0, 3935, 3936, 3, 33, 16, 0, 3936, 524, 1, 0, 0, 0, 3937, 3938, 3, 17, 8, 0, 3938, 3939, 3, 35, 17, 0, 3939, 3940, 3, 41, 20, 0, 3940, 3941, 3, 51, 25, 0, 3941, 3942, 3, 7, 3, 0, 3942, 3943, 3, 41, 20, 0, 3943, 3944, 3, 13, 6, 0, 3944, 526, 1, 0, 0, 0, 3945, 3946, 3, 17, 8, 0, 3946, 3947, 3, 35, 17, 0, 3947, 3948, 3, 47, 23, 0, 3948, 3949, 3, 33, 16, 0, 3949, 3950, 3, 13, 6, 0, 3950, 528, 1, 0, 0, 0, 3951, 3952, 3, 17, 8, 0, 3952, 3953, 3, 41, 20, 0, 3953, 3954, 3, 15, 7, 0, 3954, 3955, 3, 15, 7, 0, 3955, 530, 1, 0, 0, 0, 3956, 3957, 3, 17, 8, 0, 3957, 3958, 3, 41, 20, 0, 3958, 3959, 3, 15, 7, 0, 3959, 3960, 3, 15, 7, 0, 3960, 3961, 3, 57, 28, 0, 3961, 3962, 3, 15, 7, 0, 3962, 532, 1, 0, 0, 0, 3963, 3964, 3, 17, 8, 0, 3964, 3965, 3, 41, 20, 0, 3965, 3966, 3, 35, 17, 0, 3966, 3967, 3, 31, 15, 0, 3967, 534, 1, 0, 0, 0, 3968, 3969, 3, 17, 8, 0, 3969, 3970, 3, 47, 23, 0, 3970, 3971, 3, 29, 14, 0, 3971, 3972, 3, 29, 14, 0, 3972, 536, 1, 0, 0, 0, 3973, 3974, 3, 17, 8, 0, 3974, 3975, 3, 47, 23, 0, 3975, 3976, 3, 33, 16, 0, 3976, 3977, 3, 11, 5, 0, 3977, 3978, 3, 45, 22, 0, 3978, 3979, 3, 23, 11, 0, 3979, 3980, 3, 35, 17, 0, 3980, 3981, 3, 33, 16, 0, 3981, 538, 1, 0, 0, 0, 3982, 3983, 3, 17, 8, 0, 3983, 3984, 3, 47, 23, 0, 3984, 3985, 3, 43, 21, 0, 3985, 3986, 3, 23, 11, 0, 3986, 3987, 3, 35, 17, 0, 3987, 3988, 3, 33, 16, 0, 3988, 540, 1, 0, 0, 0, 3989, 3990, 3, 19, 9, 0, 3990, 542, 1, 0, 0, 0, 3991, 3992, 3, 19, 9, 0, 3992, 3993, 3, 15, 7, 0, 3993, 3994, 3, 33, 16, 0, 3994, 3995, 3, 15, 7, 0, 3995, 3996, 3, 41, 20, 0, 3996, 3997, 3, 7, 3, 0, 3997, 3998, 3, 29, 14, 0, 3998, 544, 1, 0, 0, 0, 3999, 4000, 3, 19, 9, 0, 4000, 4001, 3, 15, 7, 0, 4001, 4002, 3, 33, 16, 0, 4002, 4003, 3, 15, 7, 0, 4003, 4004, 3, 41, 20, 0, 4004, 4005, 3, 7, 3, 0, 4005, 4006, 3, 45, 22, 0, 4006, 4007, 3, 15, 7, 0, 4007, 4008, 3, 13, 6, 0, 4008, 546, 1, 0, 0, 0, 4009, 4010, 3, 19, 9, 0, 4010, 4011, 3, 15, 7, 0, 4011, 4012, 3, 45, 22, 0, 4012, 548, 1, 0, 0, 0, 4013, 4014, 3, 19, 9, 0, 4014, 4015, 3, 29, 14, 0, 4015, 4016, 3, 35, 17, 0, 4016, 4017, 3, 9, 4, 0, 4017, 4018, 3, 7, 3, 0, 4018, 4019, 3, 29, 14, 0, 4019, 550, 1, 0, 0, 0, 4020, 4021, 3, 19, 9, 0, 4021, 4022, 3, 35, 17, 0, 4022, 552, 1, 0, 0, 0, 4023, 4024, 3, 19, 9, 0, 4024, 4025, 3, 35, 17, 0, 4025, 4026, 3, 45, 22, 0, 4026, 4027, 3, 35, 17, 0, 4027, 554, 1, 0, 0, 0, 4028, 4029, 3, 19, 9, 0, 4029, 4030, 3, 41, 20, 0, 4030, 4031, 3, 7, 3, 0, 4031, 4032, 3, 33, 16, 0, 4032, 4033, 3, 45, 22, 0, 4033, 556, 1, 0, 0, 0, 4034, 4035, 3, 19, 9, 0, 4035, 4036, 3, 41, 20, 0, 4036, 4037, 3, 7, 3, 0, 4037, 4038, 3, 33, 16, 0, 4038, 4039, 3, 45, 22, 0, 4039, 4040, 3, 15, 7, 0, 4040, 4041, 3, 13, 6, 0, 4041, 558, 1, 0, 0, 0, 4042, 4043, 3, 19, 9, 0, 4043, 4044, 3, 41, 20, 0, 4044, 4045, 3, 15, 7, 0, 4045, 4046, 3, 7, 3, 0, 4046, 4047, 3, 45, 22, 0, 4047, 4048, 3, 15, 7, 0, 4048, 4049, 3, 43, 21, 0, 4049, 4050, 3, 45, 22, 0, 4050, 560, 1, 0, 0, 0, 4051, 4052, 3, 19, 9, 0, 4052, 4053, 3, 41, 20, 0, 4053, 4054, 3, 35, 17, 0, 4054, 4055, 3, 47, 23, 0, 4055, 4056, 3, 37, 18, 0, 4056, 562, 1, 0, 0, 0, 4057, 4058, 3, 19, 9, 0, 4058, 4059, 3, 41, 20, 0, 4059, 4060, 3, 35, 17, 0, 4060, 4061, 3, 47, 23, 0, 4061, 4062, 3, 37, 18, 0, 4062, 4063, 3, 23, 11, 0, 4063, 4064, 3, 33, 16, 0, 4064, 4065, 3, 19, 9, 0, 4065, 564, 1, 0, 0, 0, 4066, 4067, 3, 21, 10, 0, 4067, 4068, 3, 7, 3, 0, 4068, 4069, 3, 33, 16, 0, 4069, 4070, 3, 13, 6, 0, 4070, 4071, 3, 29, 14, 0, 4071, 4072, 3, 15, 7, 0, 4072, 4073, 3, 41, 20, 0, 4073, 566, 1, 0, 0, 0, 4074, 4075, 3, 21, 10, 0, 4075, 4076, 3, 7, 3, 0, 4076, 4077, 3, 49, 24, 0, 4077, 4078, 3, 23, 11, 0, 4078, 4079, 3, 33, 16, 0, 4079, 4080, 3, 19, 9, 0, 4080, 568, 1, 0, 0, 0, 4081, 4082, 3, 21, 10, 0, 4082, 4083, 3, 23, 11, 0, 4083, 4084, 3, 15, 7, 0, 4084, 4085, 3, 41, 20, 0, 4085, 4086, 3, 7, 3, 0, 4086, 4087, 3, 41, 20, 0, 4087, 4088, 3, 11, 5, 0, 4088, 4089, 3, 21, 10, 0, 4089, 4090, 3, 55, 27, 0, 4090, 570, 1, 0, 0, 0, 4091, 4092, 3, 21, 10, 0, 4092, 4093, 3, 35, 17, 0, 4093, 4094, 3, 29, 14, 0, 4094, 4095, 3, 13, 6, 0, 4095, 572, 1, 0, 0, 0, 4096, 4097, 3, 21, 10, 0, 4097, 4098, 3, 35, 17, 0, 4098, 4099, 3, 43, 21, 0, 4099, 4100, 3, 45, 22, 0, 4100, 574, 1, 0, 0, 0, 4101, 4102, 3, 21, 10, 0, 4102, 4103, 3, 35, 17, 0, 4103, 4104, 3, 47, 23, 0, 4104, 4105, 3, 41, 20, 0, 4105, 576, 1, 0, 0, 0, 4106, 4107, 3, 23, 11, 0, 4107, 4108, 3, 13, 6, 0, 4108, 4109, 3, 15, 7, 0, 4109, 4110, 3, 33, 16, 0, 4110, 4111, 3, 45, 22, 0, 4111, 4112, 3, 23, 11, 0, 4112, 4113, 3, 45, 22, 0, 4113, 4114, 3, 55, 27, 0, 4114, 578, 1, 0, 0, 0, 4115, 4116, 3, 23, 11, 0, 4116, 4117, 3, 19, 9, 0, 4117, 4118, 3, 33, 16, 0, 4118, 4119, 3, 35, 17, 0, 4119, 4120, 3, 41, 20, 0, 4120, 4121, 3, 15, 7, 0, 4121, 580, 1, 0, 0, 0, 4122, 4123, 3, 23, 11, 0, 4123, 4124, 3, 29, 14, 0, 4124, 4125, 3, 23, 11, 0, 4125, 4126, 3, 27, 13, 0, 4126, 4127, 3, 15, 7, 0, 4127, 582, 1, 0, 0, 0, 4128, 4129, 3, 23, 11, 0, 4129, 4130, 3, 31, 15, 0, 4130, 4131, 3, 31, 15, 0, 4131, 4132, 3, 15, 7, 0, 4132, 4133, 3, 13, 6, 0, 4133, 4134, 3, 23, 11, 0, 4134, 4135, 3, 7, 3, 0, 4135, 4136, 3, 45, 22, 0, 4136, 4137, 3, 15, 7, 0, 4137, 584, 1, 0, 0, 0, 4138, 4139, 3, 23, 11, 0, 4139, 4140, 3, 31, 15, 0, 4140, 4141, 3, 31, 15, 0, 4141, 4142, 3, 47, 23, 0, 4142, 4143, 3, 45, 22, 0, 4143, 4144, 3, 7, 3, 0, 4144, 4145, 3, 9, 4, 0, 4145, 4146, 3, 29, 14, 0, 4146, 4147, 3, 15, 7, 0, 4147, 586, 1, 0, 0, 0, 4148, 4149, 3, 23, 11, 0, 4149, 4150, 3, 31, 15, 0, 4150, 4151, 3, 37, 18, 0, 4151, 4152, 3, 29, 14, 0, 4152, 4153, 3, 15, 7, 0, 4153, 4154, 3, 31, 15, 0, 4154, 4155, 3, 15, 7, 0, 4155, 4156, 3, 33, 16, 0, 4156, 4157, 3, 45, 22, 0, 4157, 4158, 3, 7, 3, 0, 4158, 4159, 3, 45, 22, 0, 4159, 4160, 3, 23, 11, 0, 4160, 4161, 3, 35, 17, 0, 4161, 4162, 3, 33, 16, 0, 4162, 588, 1, 0, 0, 0, 4163, 4164, 3, 23, 11, 0, 4164, 4165, 3, 31, 15, 0, 4165, 4166, 3, 37, 18, 0, 4166, 4167, 3, 29, 14, 0, 4167, 4168, 3, 23, 11, 0, 4168, 4169, 3, 11, 5, 0, 4169, 4170, 3, 23, 11, 0, 4170, 4171, 3, 45, 22, 0, 4171, 590, 1, 0, 0, 0, 4172, 4173, 3, 23, 11, 0, 4173, 4174, 3, 33, 16, 0, 4174, 592, 1, 0, 0, 0, 4175, 4176, 3, 23, 11, 0, 4176, 4177, 3, 33, 16, 0, 4177, 4178, 3, 11, 5, 0, 4178, 4179, 3, 29, 14, 0, 4179, 4180, 3, 47, 23, 0, 4180, 4181, 3, 13, 6, 0, 4181, 4182, 3, 23, 11, 0, 4182, 4183, 3, 33, 16, 0, 4183, 4184, 3, 19, 9, 0, 4184, 594, 1, 0, 0, 0, 4185, 4186, 3, 23, 11, 0, 4186, 4187, 3, 33, 16, 0, 4187, 4188, 3, 11, 5, 0, 4188, 4189, 3, 41, 20, 0, 4189, 4190, 3, 15, 7, 0, 4190, 4191, 3, 31, 15, 0, 4191, 4192, 3, 15, 7, 0, 4192, 4193, 3, 33, 16, 0, 4193, 4194, 3, 45, 22, 0, 4194, 596, 1, 0, 0, 0, 4195, 4196, 3, 23, 11, 0, 4196, 4197, 3, 33, 16, 0, 4197, 4198, 3, 13, 6, 0, 4198, 4199, 3, 15, 7, 0, 4199, 4200, 3, 53, 26, 0, 4200, 598, 1, 0, 0, 0, 4201, 4202, 3, 23, 11, 0, 4202, 4203, 3, 33, 16, 0, 4203, 4204, 3, 13, 6, 0, 4204, 4205, 3, 23, 11, 0, 4205, 4206, 3, 11, 5, 0, 4206, 4207, 3, 7, 3, 0, 4207, 4208, 3, 45, 22, 0, 4208, 4209, 3, 35, 17, 0, 4209, 4210, 3, 41, 20, 0, 4210, 600, 1, 0, 0, 0, 4211, 4212, 3, 23, 11, 0, 4212, 4213, 3, 33, 16, 0, 4213, 4214, 3, 17, 8, 0, 4214, 4215, 3, 23, 11, 0, 4215, 4216, 3, 53, 26, 0, 4216, 602, 1, 0, 0, 0, 4217, 4218, 3, 23, 11, 0, 4218, 4219, 3, 33, 16, 0, 4219, 4220, 3, 21, 10, 0, 4220, 4221, 3, 15, 7, 0, 4221, 4222, 3, 41, 20, 0, 4222, 4223, 3, 23, 11, 0, 4223, 4224, 3, 45, 22, 0, 4224, 4225, 3, 43, 21, 0, 4225, 604, 1, 0, 0, 0, 4226, 4227, 3, 23, 11, 0, 4227, 4228, 3, 33, 16, 0, 4228, 4229, 3, 23, 11, 0, 4229, 4230, 3, 45, 22, 0, 4230, 4231, 3, 23, 11, 0, 4231, 4232, 3, 7, 3, 0, 4232, 4233, 3, 29, 14, 0, 4233, 4234, 3, 23, 11, 0, 4234, 4235, 3, 57, 28, 0, 4235, 4236, 3, 15, 7, 0, 4236, 606, 1, 0, 0, 0, 4237, 4238, 3, 23, 11, 0, 4238, 4239, 3, 33, 16, 0, 4239, 4240, 3, 23, 11, 0, 4240, 4241, 3, 45, 22, 0, 4241, 4242, 3, 23, 11, 0, 4242, 4243, 3, 7, 3, 0, 4243, 4244, 3, 29, 14, 0, 4244, 4245, 3, 29, 14, 0, 4245, 4246, 3, 55, 27, 0, 4246, 608, 1, 0, 0, 0, 4247, 4248, 3, 23, 11, 0, 4248, 4249, 3, 33, 16, 0, 4249, 4250, 3, 33, 16, 0, 4250, 4251, 3, 15, 7, 0, 4251, 4252, 3, 41, 20, 0, 4252, 610, 1, 0, 0, 0, 4253, 4254, 3, 23, 11, 0, 4254, 4255, 3, 33, 16, 0, 4255, 4256, 3, 35, 17, 0, 4256, 4257, 3, 47, 23, 0, 4257, 4258, 3, 45, 22, 0, 4258, 612, 1, 0, 0, 0, 4259, 4260, 3, 23, 11, 0, 4260, 4261, 3, 33, 16, 0, 4261, 4262, 3, 37, 18, 0, 4262, 4263, 3, 47, 23, 0, 4263, 4264, 3, 45, 22, 0, 4264, 614, 1, 0, 0, 0, 4265, 4266, 3, 23, 11, 0, 4266, 4267, 3, 33, 16, 0, 4267, 4268, 3, 43, 21, 0, 4268, 4269, 3, 15, 7, 0, 4269, 4270, 3, 33, 16, 0, 4270, 4271, 3, 43, 21, 0, 4271, 4272, 3, 23, 11, 0, 4272, 4273, 3, 45, 22, 0, 4273, 4274, 3, 23, 11, 0, 4274, 4275, 3, 49, 24, 0, 4275, 4276, 3, 15, 7, 0, 4276, 616, 1, 0, 0, 0, 4277, 4278, 3, 23, 11, 0, 4278, 4279, 3, 33, 16, 0, 4279, 4280, 3, 43, 21, 0, 4280, 4281, 3, 15, 7, 0, 4281, 4282, 3, 41, 20, 0, 4282, 4283, 3, 45, 22, 0, 4283, 618, 1, 0, 0, 0, 4284, 4285, 3, 23, 11, 0, 4285, 4286, 3, 33, 16, 0, 4286, 4287, 3, 43, 21, 0, 4287, 4288, 3, 45, 22, 0, 4288, 4289, 3, 7, 3, 0, 4289, 4290, 3, 33, 16, 0, 4290, 4291, 3, 11, 5, 0, 4291, 4292, 3, 15, 7, 0, 4292, 620, 1, 0, 0, 0, 4293, 4294, 3, 23, 11, 0, 4294, 4295, 3, 33, 16, 0, 4295, 4296, 3, 43, 21, 0, 4296, 4297, 3, 45, 22, 0, 4297, 4298, 3, 7, 3, 0, 4298, 4299, 3, 33, 16, 0, 4299, 4300, 3, 45, 22, 0, 4300, 4301, 3, 23, 11, 0, 4301, 4302, 3, 7, 3, 0, 4302, 4303, 3, 9, 4, 0, 4303, 4304, 3, 29, 14, 0, 4304, 4305, 3, 15, 7, 0, 4305, 622, 1, 0, 0, 0, 4306, 4307, 3, 23, 11, 0, 4307, 4308, 3, 33, 16, 0, 4308, 4309, 3, 43, 21, 0, 4309, 4310, 3, 45, 22, 0, 4310, 4311, 3, 15, 7, 0, 4311, 4312, 3, 7, 3, 0, 4312, 4313, 3, 13, 6, 0, 4313, 624, 1, 0, 0, 0, 4314, 4315, 3, 23, 11, 0, 4315, 4316, 3, 33, 16, 0, 4316, 4317, 3, 45, 22, 0, 4317, 626, 1, 0, 0, 0, 4318, 4319, 3, 23, 11, 0, 4319, 4320, 3, 33, 16, 0, 4320, 4321, 3, 45, 22, 0, 4321, 4322, 3, 15, 7, 0, 4322, 4323, 3, 19, 9, 0, 4323, 4324, 3, 15, 7, 0, 4324, 4325, 3, 41, 20, 0, 4325, 628, 1, 0, 0, 0, 4326, 4327, 3, 23, 11, 0, 4327, 4328, 3, 33, 16, 0, 4328, 4329, 3, 45, 22, 0, 4329, 4330, 3, 15, 7, 0, 4330, 4331, 3, 41, 20, 0, 4331, 4332, 3, 43, 21, 0, 4332, 4333, 3, 15, 7, 0, 4333, 4334, 3, 11, 5, 0, 4334, 4335, 3, 45, 22, 0, 4335, 630, 1, 0, 0, 0, 4336, 4337, 3, 23, 11, 0, 4337, 4338, 3, 33, 16, 0, 4338, 4339, 3, 45, 22, 0, 4339, 4340, 3, 15, 7, 0, 4340, 4341, 3, 41, 20, 0, 4341, 4342, 3, 43, 21, 0, 4342, 4343, 3, 15, 7, 0, 4343, 4344, 3, 11, 5, 0, 4344, 4345, 3, 45, 22, 0, 4345, 4346, 3, 23, 11, 0, 4346, 4347, 3, 35, 17, 0, 4347, 4348, 3, 33, 16, 0, 4348, 632, 1, 0, 0, 0, 4349, 4350, 3, 23, 11, 0, 4350, 4351, 3, 33, 16, 0, 4351, 4352, 3, 45, 22, 0, 4352, 4353, 3, 15, 7, 0, 4353, 4354, 3, 41, 20, 0, 4354, 4355, 3, 49, 24, 0, 4355, 4356, 3, 7, 3, 0, 4356, 4357, 3, 29, 14, 0, 4357, 634, 1, 0, 0, 0, 4358, 4359, 3, 23, 11, 0, 4359, 4360, 3, 33, 16, 0, 4360, 4361, 3, 45, 22, 0, 4361, 4362, 3, 35, 17, 0, 4362, 636, 1, 0, 0, 0, 4363, 4364, 3, 23, 11, 0, 4364, 4365, 3, 33, 16, 0, 4365, 4366, 3, 49, 24, 0, 4366, 4367, 3, 35, 17, 0, 4367, 4368, 3, 27, 13, 0, 4368, 4369, 3, 15, 7, 0, 4369, 4370, 3, 41, 20, 0, 4370, 638, 1, 0, 0, 0, 4371, 4372, 3, 23, 11, 0, 4372, 4373, 3, 43, 21, 0, 4373, 640, 1, 0, 0, 0, 4374, 4375, 3, 23, 11, 0, 4375, 4376, 3, 43, 21, 0, 4376, 4377, 3, 35, 17, 0, 4377, 4378, 3, 29, 14, 0, 4378, 4379, 3, 7, 3, 0, 4379, 4380, 3, 45, 22, 0, 4380, 4381, 3, 23, 11, 0, 4381, 4382, 3, 35, 17, 0, 4382, 4383, 3, 33, 16, 0, 4383, 642, 1, 0, 0, 0, 4384, 4385, 3, 23, 11, 0, 4385, 4386, 3, 45, 22, 0, 4386, 4387, 3, 15, 7, 0, 4387, 4388, 3, 41, 20, 0, 4388, 4389, 3, 7, 3, 0, 4389, 4390, 3, 45, 22, 0, 4390, 4391, 3, 15, 7, 0, 4391, 644, 1, 0, 0, 0, 4392, 4393, 3, 25, 12, 0, 4393, 4394, 3, 35, 17, 0, 4394, 4395, 3, 23, 11, 0, 4395, 4396, 3, 33, 16, 0, 4396, 646, 1, 0, 0, 0, 4397, 4398, 3, 27, 13, 0, 4398, 648, 1, 0, 0, 0, 4399, 4400, 3, 27, 13, 0, 4400, 4401, 3, 15, 7, 0, 4401, 4402, 3, 55, 27, 0, 4402, 650, 1, 0, 0, 0, 4403, 4404, 3, 27, 13, 0, 4404, 4405, 3, 15, 7, 0, 4405, 4406, 3, 55, 27, 0, 4406, 4407, 5, 95, 0, 0, 4407, 4408, 3, 31, 15, 0, 4408, 4409, 3, 15, 7, 0, 4409, 4410, 3, 31, 15, 0, 4410, 4411, 3, 9, 4, 0, 4411, 4412, 3, 15, 7, 0, 4412, 4413, 3, 41, 20, 0, 4413, 652, 1, 0, 0, 0, 4414, 4415, 3, 27, 13, 0, 4415, 4416, 3, 15, 7, 0, 4416, 4417, 3, 55, 27, 0, 4417, 4418, 5, 95, 0, 0, 4418, 4419, 3, 45, 22, 0, 4419, 4420, 3, 55, 27, 0, 4420, 4421, 3, 37, 18, 0, 4421, 4422, 3, 15, 7, 0, 4422, 654, 1, 0, 0, 0, 4423, 4424, 3, 29, 14, 0, 4424, 4425, 3, 7, 3, 0, 4425, 4426, 3, 9, 4, 0, 4426, 4427, 3, 15, 7, 0, 4427, 4428, 3, 29, 14, 0, 4428, 656, 1, 0, 0, 0, 4429, 4430, 3, 29, 14, 0, 4430, 4431, 3, 7, 3, 0, 4431, 4432, 3, 33, 16, 0, 4432, 4433, 3, 11, 5, 0, 4433, 4434, 3, 35, 17, 0, 4434, 4435, 3, 31, 15, 0, 4435, 4436, 3, 37, 18, 0, 4436, 4437, 3, 23, 11, 0, 4437, 4438, 3, 29, 14, 0, 4438, 4439, 3, 15, 7, 0, 4439, 4440, 3, 41, 20, 0, 4440, 658, 1, 0, 0, 0, 4441, 4442, 3, 29, 14, 0, 4442, 4443, 3, 7, 3, 0, 4443, 4444, 3, 33, 16, 0, 4444, 4445, 3, 19, 9, 0, 4445, 4446, 3, 47, 23, 0, 4446, 4447, 3, 7, 3, 0, 4447, 4448, 3, 19, 9, 0, 4448, 4449, 3, 15, 7, 0, 4449, 660, 1, 0, 0, 0, 4450, 4451, 3, 29, 14, 0, 4451, 4452, 3, 7, 3, 0, 4452, 4453, 3, 41, 20, 0, 4453, 4454, 3, 19, 9, 0, 4454, 4455, 3, 15, 7, 0, 4455, 662, 1, 0, 0, 0, 4456, 4457, 3, 29, 14, 0, 4457, 4458, 3, 7, 3, 0, 4458, 4459, 3, 43, 21, 0, 4459, 4460, 3, 45, 22, 0, 4460, 664, 1, 0, 0, 0, 4461, 4462, 3, 29, 14, 0, 4462, 4463, 3, 7, 3, 0, 4463, 4464, 3, 45, 22, 0, 4464, 4465, 3, 15, 7, 0, 4465, 4466, 3, 41, 20, 0, 4466, 4467, 3, 7, 3, 0, 4467, 4468, 3, 29, 14, 0, 4468, 666, 1, 0, 0, 0, 4469, 4470, 3, 29, 14, 0, 4470, 4471, 3, 15, 7, 0, 4471, 4472, 3, 7, 3, 0, 4472, 4473, 3, 13, 6, 0, 4473, 4474, 3, 23, 11, 0, 4474, 4475, 3, 33, 16, 0, 4475, 4476, 3, 19, 9, 0, 4476, 668, 1, 0, 0, 0, 4477, 4478, 3, 29, 14, 0, 4478, 4479, 3, 15, 7, 0, 4479, 4480, 3, 7, 3, 0, 4480, 4481, 3, 43, 21, 0, 4481, 4482, 3, 45, 22, 0, 4482, 670, 1, 0, 0, 0, 4483, 4484, 3, 29, 14, 0, 4484, 4485, 3, 15, 7, 0, 4485, 4486, 3, 17, 8, 0, 4486, 4487, 3, 45, 22, 0, 4487, 672, 1, 0, 0, 0, 4488, 4489, 3, 29, 14, 0, 4489, 4490, 3, 15, 7, 0, 4490, 4491, 3, 33, 16, 0, 4491, 4492, 3, 19, 9, 0, 4492, 4493, 3, 45, 22, 0, 4493, 4494, 3, 21, 10, 0, 4494, 674, 1, 0, 0, 0, 4495, 4496, 3, 29, 14, 0, 4496, 4497, 3, 15, 7, 0, 4497, 4498, 3, 43, 21, 0, 4498, 4499, 3, 43, 21, 0, 4499, 676, 1, 0, 0, 0, 4500, 4501, 3, 29, 14, 0, 4501, 4502, 3, 15, 7, 0, 4502, 4503, 3, 49, 24, 0, 4503, 4504, 3, 15, 7, 0, 4504, 4505, 3, 29, 14, 0, 4505, 678, 1, 0, 0, 0, 4506, 4507, 3, 29, 14, 0, 4507, 4508, 3, 23, 11, 0, 4508, 4509, 3, 27, 13, 0, 4509, 4510, 3, 15, 7, 0, 4510, 680, 1, 0, 0, 0, 4511, 4512, 3, 29, 14, 0, 4512, 4513, 3, 23, 11, 0, 4513, 4514, 3, 31, 15, 0, 4514, 4515, 3, 23, 11, 0, 4515, 4516, 3, 45, 22, 0, 4516, 682, 1, 0, 0, 0, 4517, 4518, 3, 29, 14, 0, 4518, 4519, 3, 23, 11, 0, 4519, 4520, 3, 43, 21, 0, 4520, 4521, 3, 45, 22, 0, 4521, 4522, 3, 15, 7, 0, 4522, 4523, 3, 33, 16, 0, 4523, 684, 1, 0, 0, 0, 4524, 4525, 3, 29, 14, 0, 4525, 4526, 3, 33, 16, 0, 4526, 686, 1, 0, 0, 0, 4527, 4528, 3, 29, 14, 0, 4528, 4529, 3, 35, 17, 0, 4529, 4530, 3, 7, 3, 0, 4530, 4531, 3, 13, 6, 0, 4531, 688, 1, 0, 0, 0, 4532, 4533, 3, 29, 14, 0, 4533, 4534, 3, 35, 17, 0, 4534, 4535, 3, 11, 5, 0, 4535, 4536, 3, 7, 3, 0, 4536, 4537, 3, 29, 14, 0, 4537, 690, 1, 0, 0, 0, 4538, 4539, 3, 29, 14, 0, 4539, 4540, 3, 35, 17, 0, 4540, 4541, 3, 11, 5, 0, 4541, 4542, 3, 7, 3, 0, 4542, 4543, 3, 29, 14, 0, 4543, 4544, 3, 45, 22, 0, 4544, 4545, 3, 23, 11, 0, 4545, 4546, 3, 31, 15, 0, 4546, 4547, 3, 15, 7, 0, 4547, 692, 1, 0, 0, 0, 4548, 4549, 3, 29, 14, 0, 4549, 4550, 3, 35, 17, 0, 4550, 4551, 3, 11, 5, 0, 4551, 4552, 3, 7, 3, 0, 4552, 4553, 3, 29, 14, 0, 4553, 4554, 3, 45, 22, 0, 4554, 4555, 3, 23, 11, 0, 4555, 4556, 3, 31, 15, 0, 4556, 4557, 3, 15, 7, 0, 4557, 4558, 3, 43, 21, 0, 4558, 4559, 3, 45, 22, 0, 4559, 4560, 3, 7, 3, 0, 4560, 4561, 3, 31, 15, 0, 4561, 4562, 3, 37, 18, 0, 4562, 694, 1, 0, 0, 0, 4563, 4564, 3, 29, 14, 0, 4564, 4565, 3, 35, 17, 0, 4565, 4566, 3, 11, 5, 0, 4566, 4567, 3, 7, 3, 0, 4567, 4568, 3, 45, 22, 0, 4568, 4569, 3, 23, 11, 0, 4569, 4570, 3, 35, 17, 0, 4570, 4571, 3, 33, 16, 0, 4571, 696, 1, 0, 0, 0, 4572, 4573, 3, 29, 14, 0, 4573, 4574, 3, 35, 17, 0, 4574, 4575, 3, 11, 5, 0, 4575, 4576, 3, 7, 3, 0, 4576, 4577, 3, 45, 22, 0, 4577, 4578, 3, 35, 17, 0, 4578, 4579, 3, 41, 20, 0, 4579, 698, 1, 0, 0, 0, 4580, 4581, 3, 29, 14, 0, 4581, 4582, 3, 35, 17, 0, 4582, 4583, 3, 11, 5, 0, 4583, 4584, 3, 27, 13, 0, 4584, 700, 1, 0, 0, 0, 4585, 4586, 3, 29, 14, 0, 4586, 4587, 3, 35, 17, 0, 4587, 4588, 3, 11, 5, 0, 4588, 4589, 3, 27, 13, 0, 4589, 4590, 3, 15, 7, 0, 4590, 4591, 3, 13, 6, 0, 4591, 702, 1, 0, 0, 0, 4592, 4593, 3, 29, 14, 0, 4593, 4594, 3, 35, 17, 0, 4594, 4595, 3, 51, 25, 0, 4595, 4596, 3, 15, 7, 0, 4596, 4597, 3, 41, 20, 0, 4597, 704, 1, 0, 0, 0, 4598, 4599, 3, 31, 15, 0, 4599, 706, 1, 0, 0, 0, 4600, 4601, 3, 31, 15, 0, 4601, 4602, 3, 7, 3, 0, 4602, 4603, 3, 23, 11, 0, 4603, 4604, 3, 33, 16, 0, 4604, 708, 1, 0, 0, 0, 4605, 4606, 3, 31, 15, 0, 4606, 4607, 3, 7, 3, 0, 4607, 4608, 3, 37, 18, 0, 4608, 710, 1, 0, 0, 0, 4609, 4610, 3, 31, 15, 0, 4610, 4611, 3, 7, 3, 0, 4611, 4612, 3, 37, 18, 0, 4612, 4613, 3, 37, 18, 0, 4613, 4614, 3, 23, 11, 0, 4614, 4615, 3, 33, 16, 0, 4615, 4616, 3, 19, 9, 0, 4616, 712, 1, 0, 0, 0, 4617, 4618, 3, 31, 15, 0, 4618, 4619, 3, 7, 3, 0, 4619, 4620, 3, 45, 22, 0, 4620, 4621, 3, 11, 5, 0, 4621, 4622, 3, 21, 10, 0, 4622, 714, 1, 0, 0, 0, 4623, 4624, 3, 31, 15, 0, 4624, 4625, 3, 7, 3, 0, 4625, 4626, 3, 45, 22, 0, 4626, 4627, 3, 11, 5, 0, 4627, 4628, 3, 21, 10, 0, 4628, 4629, 5, 95, 0, 0, 4629, 4630, 3, 43, 21, 0, 4630, 4631, 3, 23, 11, 0, 4631, 4632, 3, 31, 15, 0, 4632, 4633, 3, 37, 18, 0, 4633, 4634, 3, 29, 14, 0, 4634, 4635, 3, 15, 7, 0, 4635, 716, 1, 0, 0, 0, 4636, 4637, 3, 31, 15, 0, 4637, 4638, 3, 7, 3, 0, 4638, 4639, 3, 45, 22, 0, 4639, 4640, 3, 11, 5, 0, 4640, 4641, 3, 21, 10, 0, 4641, 4642, 3, 15, 7, 0, 4642, 4643, 3, 13, 6, 0, 4643, 718, 1, 0, 0, 0, 4644, 4645, 3, 31, 15, 0, 4645, 4646, 3, 7, 3, 0, 4646, 4647, 3, 53, 26, 0, 4647, 720, 1, 0, 0, 0, 4648, 4649, 3, 31, 15, 0, 4649, 4650, 3, 7, 3, 0, 4650, 4651, 3, 53, 26, 0, 4651, 4652, 3, 49, 24, 0, 4652, 4653, 3, 7, 3, 0, 4653, 4654, 3, 29, 14, 0, 4654, 4655, 3, 47, 23, 0, 4655, 4656, 3, 15, 7, 0, 4656, 722, 1, 0, 0, 0, 4657, 4658, 3, 31, 15, 0, 4658, 4659, 3, 15, 7, 0, 4659, 4660, 3, 31, 15, 0, 4660, 4661, 3, 9, 4, 0, 4661, 4662, 3, 15, 7, 0, 4662, 4663, 3, 41, 20, 0, 4663, 724, 1, 0, 0, 0, 4664, 4665, 3, 31, 15, 0, 4665, 4666, 3, 15, 7, 0, 4666, 4667, 3, 41, 20, 0, 4667, 4668, 3, 19, 9, 0, 4668, 4669, 3, 15, 7, 0, 4669, 726, 1, 0, 0, 0, 4670, 4671, 3, 31, 15, 0, 4671, 4672, 3, 15, 7, 0, 4672, 4673, 3, 43, 21, 0, 4673, 4674, 3, 43, 21, 0, 4674, 4675, 3, 7, 3, 0, 4675, 4676, 3, 19, 9, 0, 4676, 4677, 3, 15, 7, 0, 4677, 4678, 5, 95, 0, 0, 4678, 4679, 3, 29, 14, 0, 4679, 4680, 3, 15, 7, 0, 4680, 4681, 3, 33, 16, 0, 4681, 4682, 3, 19, 9, 0, 4682, 4683, 3, 45, 22, 0, 4683, 4684, 3, 21, 10, 0, 4684, 728, 1, 0, 0, 0, 4685, 4686, 3, 31, 15, 0, 4686, 4687, 3, 15, 7, 0, 4687, 4688, 3, 43, 21, 0, 4688, 4689, 3, 43, 21, 0, 4689, 4690, 3, 7, 3, 0, 4690, 4691, 3, 19, 9, 0, 4691, 4692, 3, 15, 7, 0, 4692, 4693, 5, 95, 0, 0, 4693, 4694, 3, 35, 17, 0, 4694, 4695, 3, 11, 5, 0, 4695, 4696, 3, 45, 22, 0, 4696, 4697, 3, 15, 7, 0, 4697, 4698, 3, 45, 22, 0, 4698, 4699, 5, 95, 0, 0, 4699, 4700, 3, 29, 14, 0, 4700, 4701, 3, 15, 7, 0, 4701, 4702, 3, 33, 16, 0, 4702, 4703, 3, 19, 9, 0, 4703, 4704, 3, 45, 22, 0, 4704, 4705, 3, 21, 10, 0, 4705, 730, 1, 0, 0, 0, 4706, 4707, 3, 31, 15, 0, 4707, 4708, 3, 15, 7, 0, 4708, 4709, 3, 43, 21, 0, 4709, 4710, 3, 43, 21, 0, 4710, 4711, 3, 7, 3, 0, 4711, 4712, 3, 19, 9, 0, 4712, 4713, 3, 15, 7, 0, 4713, 4714, 5, 95, 0, 0, 4714, 4715, 3, 45, 22, 0, 4715, 4716, 3, 15, 7, 0, 4716, 4717, 3, 53, 26, 0, 4717, 4718, 3, 45, 22, 0, 4718, 732, 1, 0, 0, 0, 4719, 4720, 3, 31, 15, 0, 4720, 4721, 3, 15, 7, 0, 4721, 4722, 3, 45, 22, 0, 4722, 4723, 3, 21, 10, 0, 4723, 4724, 3, 35, 17, 0, 4724, 4725, 3, 13, 6, 0, 4725, 734, 1, 0, 0, 0, 4726, 4727, 3, 31, 15, 0, 4727, 4728, 3, 23, 11, 0, 4728, 4729, 3, 33, 16, 0, 4729, 736, 1, 0, 0, 0, 4730, 4731, 3, 31, 15, 0, 4731, 4732, 3, 23, 11, 0, 4732, 4733, 3, 33, 16, 0, 4733, 4734, 3, 47, 23, 0, 4734, 4735, 3, 45, 22, 0, 4735, 4736, 3, 15, 7, 0, 4736, 738, 1, 0, 0, 0, 4737, 4738, 3, 31, 15, 0, 4738, 4739, 3, 23, 11, 0, 4739, 4740, 3, 33, 16, 0, 4740, 4741, 3, 49, 24, 0, 4741, 4742, 3, 7, 3, 0, 4742, 4743, 3, 29, 14, 0, 4743, 4744, 3, 47, 23, 0, 4744, 4745, 3, 15, 7, 0, 4745, 740, 1, 0, 0, 0, 4746, 4747, 3, 31, 15, 0, 4747, 4748, 3, 35, 17, 0, 4748, 4749, 3, 13, 6, 0, 4749, 742, 1, 0, 0, 0, 4750, 4751, 3, 31, 15, 0, 4751, 4752, 3, 35, 17, 0, 4752, 4753, 3, 13, 6, 0, 4753, 4754, 3, 15, 7, 0, 4754, 744, 1, 0, 0, 0, 4755, 4756, 3, 31, 15, 0, 4756, 4757, 3, 35, 17, 0, 4757, 4758, 3, 13, 6, 0, 4758, 4759, 3, 23, 11, 0, 4759, 4760, 3, 17, 8, 0, 4760, 4761, 3, 23, 11, 0, 4761, 4762, 3, 15, 7, 0, 4762, 4763, 3, 43, 21, 0, 4763, 746, 1, 0, 0, 0, 4764, 4765, 3, 31, 15, 0, 4765, 4766, 3, 35, 17, 0, 4766, 4767, 3, 13, 6, 0, 4767, 4768, 3, 23, 11, 0, 4768, 4769, 3, 17, 8, 0, 4769, 4770, 3, 55, 27, 0, 4770, 748, 1, 0, 0, 0, 4771, 4772, 3, 31, 15, 0, 4772, 4773, 3, 35, 17, 0, 4773, 4774, 3, 13, 6, 0, 4774, 4775, 3, 47, 23, 0, 4775, 4776, 3, 29, 14, 0, 4776, 4777, 3, 15, 7, 0, 4777, 750, 1, 0, 0, 0, 4778, 4779, 3, 31, 15, 0, 4779, 4780, 3, 35, 17, 0, 4780, 4781, 3, 33, 16, 0, 4781, 4782, 3, 45, 22, 0, 4782, 4783, 3, 21, 10, 0, 4783, 752, 1, 0, 0, 0, 4784, 4785, 3, 31, 15, 0, 4785, 4786, 3, 35, 17, 0, 4786, 4787, 3, 41, 20, 0, 4787, 4788, 3, 15, 7, 0, 4788, 754, 1, 0, 0, 0, 4789, 4790, 3, 31, 15, 0, 4790, 4791, 3, 35, 17, 0, 4791, 4792, 3, 49, 24, 0, 4792, 4793, 3, 15, 7, 0, 4793, 756, 1, 0, 0, 0, 4794, 4795, 3, 31, 15, 0, 4795, 4796, 3, 47, 23, 0, 4796, 4797, 3, 29, 14, 0, 4797, 4798, 3, 45, 22, 0, 4798, 4799, 3, 23, 11, 0, 4799, 4800, 3, 43, 21, 0, 4800, 4801, 3, 15, 7, 0, 4801, 4802, 3, 45, 22, 0, 4802, 758, 1, 0, 0, 0, 4803, 4804, 3, 31, 15, 0, 4804, 4805, 3, 47, 23, 0, 4805, 4806, 3, 31, 15, 0, 4806, 4807, 3, 37, 18, 0, 4807, 4808, 3, 43, 21, 0, 4808, 760, 1, 0, 0, 0, 4809, 4810, 3, 33, 16, 0, 4810, 4811, 3, 7, 3, 0, 4811, 4812, 3, 31, 15, 0, 4812, 4813, 3, 15, 7, 0, 4813, 762, 1, 0, 0, 0, 4814, 4815, 3, 33, 16, 0, 4815, 4816, 3, 7, 3, 0, 4816, 4817, 3, 31, 15, 0, 4817, 4818, 3, 15, 7, 0, 4818, 4819, 3, 43, 21, 0, 4819, 764, 1, 0, 0, 0, 4820, 4821, 3, 33, 16, 0, 4821, 4822, 3, 7, 3, 0, 4822, 4823, 3, 45, 22, 0, 4823, 4824, 3, 23, 11, 0, 4824, 4825, 3, 35, 17, 0, 4825, 4826, 3, 33, 16, 0, 4826, 4827, 3, 7, 3, 0, 4827, 4828, 3, 29, 14, 0, 4828, 766, 1, 0, 0, 0, 4829, 4830, 3, 33, 16, 0, 4830, 4831, 3, 7, 3, 0, 4831, 4832, 3, 45, 22, 0, 4832, 4833, 3, 47, 23, 0, 4833, 4834, 3, 41, 20, 0, 4834, 4835, 3, 7, 3, 0, 4835, 4836, 3, 29, 14, 0, 4836, 768, 1, 0, 0, 0, 4837, 4838, 3, 33, 16, 0, 4838, 4839, 3, 11, 5, 0, 4839, 4840, 3, 21, 10, 0, 4840, 4841, 3, 7, 3, 0, 4841, 4842, 3, 41, 20, 0, 4842, 770, 1, 0, 0, 0, 4843, 4844, 3, 33, 16, 0, 4844, 4845, 3, 11, 5, 0, 4845, 4846, 3, 29, 14, 0, 4846, 4847, 3, 35, 17, 0, 4847, 4848, 3, 9, 4, 0, 4848, 772, 1, 0, 0, 0, 4849, 4850, 3, 33, 16, 0, 4850, 4851, 3, 15, 7, 0, 4851, 4852, 3, 43, 21, 0, 4852, 4853, 3, 45, 22, 0, 4853, 4854, 3, 23, 11, 0, 4854, 4855, 3, 33, 16, 0, 4855, 4856, 3, 19, 9, 0, 4856, 774, 1, 0, 0, 0, 4857, 4858, 3, 33, 16, 0, 4858, 4859, 3, 15, 7, 0, 4859, 4860, 3, 51, 25, 0, 4860, 776, 1, 0, 0, 0, 4861, 4862, 3, 33, 16, 0, 4862, 4863, 3, 15, 7, 0, 4863, 4864, 3, 53, 26, 0, 4864, 4865, 3, 45, 22, 0, 4865, 778, 1, 0, 0, 0, 4866, 4867, 3, 33, 16, 0, 4867, 4868, 3, 35, 17, 0, 4868, 780, 1, 0, 0, 0, 4869, 4870, 3, 33, 16, 0, 4870, 4871, 3, 35, 17, 0, 4871, 4872, 3, 11, 5, 0, 4872, 4873, 3, 41, 20, 0, 4873, 4874, 3, 15, 7, 0, 4874, 4875, 3, 7, 3, 0, 4875, 4876, 3, 45, 22, 0, 4876, 4877, 3, 15, 7, 0, 4877, 4878, 3, 13, 6, 0, 4878, 4879, 3, 9, 4, 0, 4879, 782, 1, 0, 0, 0, 4880, 4881, 3, 33, 16, 0, 4881, 4882, 3, 35, 17, 0, 4882, 4883, 3, 11, 5, 0, 4883, 4884, 3, 41, 20, 0, 4884, 4885, 3, 15, 7, 0, 4885, 4886, 3, 7, 3, 0, 4886, 4887, 3, 45, 22, 0, 4887, 4888, 3, 15, 7, 0, 4888, 4889, 3, 47, 23, 0, 4889, 4890, 3, 43, 21, 0, 4890, 4891, 3, 15, 7, 0, 4891, 4892, 3, 41, 20, 0, 4892, 784, 1, 0, 0, 0, 4893, 4894, 3, 33, 16, 0, 4894, 4895, 3, 35, 17, 0, 4895, 4896, 3, 33, 16, 0, 4896, 4897, 3, 15, 7, 0, 4897, 786, 1, 0, 0, 0, 4898, 4899, 3, 33, 16, 0, 4899, 4900, 3, 35, 17, 0, 4900, 4901, 3, 41, 20, 0, 4901, 4902, 3, 31, 15, 0, 4902, 4903, 3, 7, 3, 0, 4903, 4904, 3, 29, 14, 0, 4904, 4905, 3, 23, 11, 0, 4905, 4906, 3, 57, 28, 0, 4906, 4907, 3, 15, 7, 0, 4907, 788, 1, 0, 0, 0, 4908, 4909, 3, 33, 16, 0, 4909, 4910, 3, 35, 17, 0, 4910, 4911, 3, 41, 20, 0, 4911, 4912, 3, 31, 15, 0, 4912, 4913, 3, 7, 3, 0, 4913, 4914, 3, 29, 14, 0, 4914, 4915, 3, 23, 11, 0, 4915, 4916, 3, 57, 28, 0, 4916, 4917, 3, 15, 7, 0, 4917, 4918, 3, 13, 6, 0, 4918, 790, 1, 0, 0, 0, 4919, 4920, 3, 33, 16, 0, 4920, 4921, 3, 35, 17, 0, 4921, 4922, 3, 45, 22, 0, 4922, 792, 1, 0, 0, 0, 4923, 4924, 3, 33, 16, 0, 4924, 4925, 3, 35, 17, 0, 4925, 4926, 3, 45, 22, 0, 4926, 4927, 3, 21, 10, 0, 4927, 4928, 3, 23, 11, 0, 4928, 4929, 3, 33, 16, 0, 4929, 4930, 3, 19, 9, 0, 4930, 794, 1, 0, 0, 0, 4931, 4932, 3, 33, 16, 0, 4932, 4933, 3, 35, 17, 0, 4933, 4934, 3, 45, 22, 0, 4934, 4935, 3, 23, 11, 0, 4935, 4936, 3, 17, 8, 0, 4936, 4937, 3, 55, 27, 0, 4937, 796, 1, 0, 0, 0, 4938, 4939, 3, 33, 16, 0, 4939, 4940, 3, 35, 17, 0, 4940, 4941, 3, 45, 22, 0, 4941, 4942, 3, 33, 16, 0, 4942, 4943, 3, 47, 23, 0, 4943, 4944, 3, 29, 14, 0, 4944, 4945, 3, 29, 14, 0, 4945, 798, 1, 0, 0, 0, 4946, 4947, 3, 33, 16, 0, 4947, 4948, 3, 35, 17, 0, 4948, 4949, 3, 51, 25, 0, 4949, 4950, 3, 7, 3, 0, 4950, 4951, 3, 23, 11, 0, 4951, 4952, 3, 45, 22, 0, 4952, 800, 1, 0, 0, 0, 4953, 4954, 3, 33, 16, 0, 4954, 4955, 3, 47, 23, 0, 4955, 4956, 3, 29, 14, 0, 4956, 4957, 3, 29, 14, 0, 4957, 802, 1, 0, 0, 0, 4958, 4959, 3, 33, 16, 0, 4959, 4960, 3, 47, 23, 0, 4960, 4961, 3, 29, 14, 0, 4961, 4962, 3, 29, 14, 0, 4962, 4963, 3, 7, 3, 0, 4963, 4964, 3, 9, 4, 0, 4964, 4965, 3, 29, 14, 0, 4965, 4966, 3, 15, 7, 0, 4966, 804, 1, 0, 0, 0, 4967, 4968, 3, 33, 16, 0, 4968, 4969, 3, 47, 23, 0, 4969, 4970, 3, 29, 14, 0, 4970, 4971, 3, 29, 14, 0, 4971, 4972, 3, 23, 11, 0, 4972, 4973, 3, 17, 8, 0, 4973, 806, 1, 0, 0, 0, 4974, 4975, 3, 33, 16, 0, 4975, 4976, 3, 47, 23, 0, 4976, 4977, 3, 29, 14, 0, 4977, 4978, 3, 29, 14, 0, 4978, 4979, 3, 43, 21, 0, 4979, 808, 1, 0, 0, 0, 4980, 4981, 3, 33, 16, 0, 4981, 4982, 3, 47, 23, 0, 4982, 4983, 3, 31, 15, 0, 4983, 4984, 3, 9, 4, 0, 4984, 4985, 3, 15, 7, 0, 4985, 4986, 3, 41, 20, 0, 4986, 810, 1, 0, 0, 0, 4987, 4988, 3, 33, 16, 0, 4988, 4989, 3, 47, 23, 0, 4989, 4990, 3, 31, 15, 0, 4990, 4991, 3, 15, 7, 0, 4991, 4992, 3, 41, 20, 0, 4992, 4993, 3, 23, 11, 0, 4993, 4994, 3, 11, 5, 0, 4994, 812, 1, 0, 0, 0, 4995, 4996, 3, 35, 17, 0, 4996, 4997, 3, 9, 4, 0, 4997, 4998, 3, 25, 12, 0, 4998, 4999, 3, 15, 7, 0, 4999, 5000, 3, 11, 5, 0, 5000, 5001, 3, 45, 22, 0, 5001, 814, 1, 0, 0, 0, 5002, 5003, 3, 35, 17, 0, 5003, 5004, 3, 11, 5, 0, 5004, 5005, 3, 45, 22, 0, 5005, 5006, 3, 15, 7, 0, 5006, 5007, 3, 45, 22, 0, 5007, 5008, 5, 95, 0, 0, 5008, 5009, 3, 29, 14, 0, 5009, 5010, 3, 15, 7, 0, 5010, 5011, 3, 33, 16, 0, 5011, 5012, 3, 19, 9, 0, 5012, 5013, 3, 45, 22, 0, 5013, 5014, 3, 21, 10, 0, 5014, 816, 1, 0, 0, 0, 5015, 5016, 3, 35, 17, 0, 5016, 5017, 3, 11, 5, 0, 5017, 5018, 3, 45, 22, 0, 5018, 5019, 3, 15, 7, 0, 5019, 5020, 3, 45, 22, 0, 5020, 5021, 3, 43, 21, 0, 5021, 818, 1, 0, 0, 0, 5022, 5023, 3, 35, 17, 0, 5023, 5024, 3, 17, 8, 0, 5024, 820, 1, 0, 0, 0, 5025, 5026, 3, 35, 17, 0, 5026, 5027, 3, 17, 8, 0, 5027, 5028, 3, 17, 8, 0, 5028, 822, 1, 0, 0, 0, 5029, 5030, 3, 35, 17, 0, 5030, 5031, 3, 17, 8, 0, 5031, 5032, 3, 17, 8, 0, 5032, 5033, 3, 43, 21, 0, 5033, 5034, 3, 15, 7, 0, 5034, 5035, 3, 45, 22, 0, 5035, 824, 1, 0, 0, 0, 5036, 5037, 3, 35, 17, 0, 5037, 5038, 3, 23, 11, 0, 5038, 5039, 3, 13, 6, 0, 5039, 5040, 3, 43, 21, 0, 5040, 826, 1, 0, 0, 0, 5041, 5042, 3, 35, 17, 0, 5042, 5043, 3, 29, 14, 0, 5043, 5044, 3, 13, 6, 0, 5044, 828, 1, 0, 0, 0, 5045, 5046, 3, 35, 17, 0, 5046, 5047, 3, 33, 16, 0, 5047, 830, 1, 0, 0, 0, 5048, 5049, 3, 35, 17, 0, 5049, 5050, 3, 33, 16, 0, 5050, 5051, 3, 29, 14, 0, 5051, 5052, 3, 55, 27, 0, 5052, 832, 1, 0, 0, 0, 5053, 5054, 3, 35, 17, 0, 5054, 5055, 3, 37, 18, 0, 5055, 5056, 3, 15, 7, 0, 5056, 5057, 3, 33, 16, 0, 5057, 834, 1, 0, 0, 0, 5058, 5059, 3, 35, 17, 0, 5059, 5060, 3, 37, 18, 0, 5060, 5061, 3, 15, 7, 0, 5061, 5062, 3, 41, 20, 0, 5062, 5063, 3, 7, 3, 0, 5063, 5064, 3, 45, 22, 0, 5064, 5065, 3, 23, 11, 0, 5065, 5066, 3, 35, 17, 0, 5066, 5067, 3, 33, 16, 0, 5067, 836, 1, 0, 0, 0, 5068, 5069, 3, 35, 17, 0, 5069, 5070, 3, 37, 18, 0, 5070, 5071, 3, 15, 7, 0, 5071, 5072, 3, 41, 20, 0, 5072, 5073, 3, 7, 3, 0, 5073, 5074, 3, 45, 22, 0, 5074, 5075, 3, 35, 17, 0, 5075, 5076, 3, 41, 20, 0, 5076, 838, 1, 0, 0, 0, 5077, 5078, 3, 35, 17, 0, 5078, 5079, 3, 37, 18, 0, 5079, 5080, 3, 45, 22, 0, 5080, 5081, 3, 23, 11, 0, 5081, 5082, 3, 35, 17, 0, 5082, 5083, 3, 33, 16, 0, 5083, 840, 1, 0, 0, 0, 5084, 5085, 3, 35, 17, 0, 5085, 5086, 3, 37, 18, 0, 5086, 5087, 3, 45, 22, 0, 5087, 5088, 3, 23, 11, 0, 5088, 5089, 3, 35, 17, 0, 5089, 5090, 3, 33, 16, 0, 5090, 5091, 3, 43, 21, 0, 5091, 842, 1, 0, 0, 0, 5092, 5093, 3, 35, 17, 0, 5093, 5094, 3, 41, 20, 0, 5094, 844, 1, 0, 0, 0, 5095, 5096, 3, 35, 17, 0, 5096, 5097, 3, 41, 20, 0, 5097, 5098, 3, 13, 6, 0, 5098, 5099, 3, 15, 7, 0, 5099, 5100, 3, 41, 20, 0, 5100, 846, 1, 0, 0, 0, 5101, 5102, 3, 35, 17, 0, 5102, 5103, 3, 41, 20, 0, 5103, 5104, 3, 13, 6, 0, 5104, 5105, 3, 15, 7, 0, 5105, 5106, 3, 41, 20, 0, 5106, 5107, 3, 23, 11, 0, 5107, 5108, 3, 33, 16, 0, 5108, 5109, 3, 19, 9, 0, 5109, 848, 1, 0, 0, 0, 5110, 5111, 3, 35, 17, 0, 5111, 5112, 3, 41, 20, 0, 5112, 5113, 3, 13, 6, 0, 5113, 5114, 3, 23, 11, 0, 5114, 5115, 3, 33, 16, 0, 5115, 5116, 3, 7, 3, 0, 5116, 5117, 3, 29, 14, 0, 5117, 5118, 3, 23, 11, 0, 5118, 5119, 3, 45, 22, 0, 5119, 5120, 3, 55, 27, 0, 5120, 850, 1, 0, 0, 0, 5121, 5122, 3, 35, 17, 0, 5122, 5123, 3, 45, 22, 0, 5123, 5124, 3, 21, 10, 0, 5124, 5125, 3, 15, 7, 0, 5125, 5126, 3, 41, 20, 0, 5126, 5127, 3, 43, 21, 0, 5127, 852, 1, 0, 0, 0, 5128, 5129, 3, 35, 17, 0, 5129, 5130, 3, 47, 23, 0, 5130, 5131, 3, 45, 22, 0, 5131, 854, 1, 0, 0, 0, 5132, 5133, 3, 35, 17, 0, 5133, 5134, 3, 47, 23, 0, 5134, 5135, 3, 45, 22, 0, 5135, 5136, 3, 15, 7, 0, 5136, 5137, 3, 41, 20, 0, 5137, 856, 1, 0, 0, 0, 5138, 5139, 3, 35, 17, 0, 5139, 5140, 3, 47, 23, 0, 5140, 5141, 3, 45, 22, 0, 5141, 5142, 3, 37, 18, 0, 5142, 5143, 3, 47, 23, 0, 5143, 5144, 3, 45, 22, 0, 5144, 858, 1, 0, 0, 0, 5145, 5146, 3, 35, 17, 0, 5146, 5147, 3, 49, 24, 0, 5147, 5148, 3, 15, 7, 0, 5148, 5149, 3, 41, 20, 0, 5149, 860, 1, 0, 0, 0, 5150, 5151, 3, 35, 17, 0, 5151, 5152, 3, 49, 24, 0, 5152, 5153, 3, 15, 7, 0, 5153, 5154, 3, 41, 20, 0, 5154, 5155, 3, 29, 14, 0, 5155, 5156, 3, 7, 3, 0, 5156, 5157, 3, 37, 18, 0, 5157, 5158, 3, 43, 21, 0, 5158, 862, 1, 0, 0, 0, 5159, 5160, 3, 35, 17, 0, 5160, 5161, 3, 49, 24, 0, 5161, 5162, 3, 15, 7, 0, 5162, 5163, 3, 41, 20, 0, 5163, 5164, 3, 29, 14, 0, 5164, 5165, 3, 7, 3, 0, 5165, 5166, 3, 55, 27, 0, 5166, 864, 1, 0, 0, 0, 5167, 5168, 3, 35, 17, 0, 5168, 5169, 3, 49, 24, 0, 5169, 5170, 3, 15, 7, 0, 5170, 5171, 3, 41, 20, 0, 5171, 5172, 3, 41, 20, 0, 5172, 5173, 3, 23, 11, 0, 5173, 5174, 3, 13, 6, 0, 5174, 5175, 3, 23, 11, 0, 5175, 5176, 3, 33, 16, 0, 5176, 5177, 3, 19, 9, 0, 5177, 866, 1, 0, 0, 0, 5178, 5179, 3, 35, 17, 0, 5179, 5180, 3, 51, 25, 0, 5180, 5181, 3, 33, 16, 0, 5181, 5182, 3, 15, 7, 0, 5182, 5183, 3, 41, 20, 0, 5183, 868, 1, 0, 0, 0, 5184, 5185, 3, 37, 18, 0, 5185, 5186, 3, 7, 3, 0, 5186, 5187, 3, 13, 6, 0, 5187, 870, 1, 0, 0, 0, 5188, 5189, 3, 37, 18, 0, 5189, 5190, 3, 7, 3, 0, 5190, 5191, 3, 41, 20, 0, 5191, 5192, 3, 7, 3, 0, 5192, 5193, 3, 31, 15, 0, 5193, 5194, 3, 15, 7, 0, 5194, 5195, 3, 45, 22, 0, 5195, 5196, 3, 15, 7, 0, 5196, 5197, 3, 41, 20, 0, 5197, 872, 1, 0, 0, 0, 5198, 5199, 3, 37, 18, 0, 5199, 5200, 3, 7, 3, 0, 5200, 5201, 3, 41, 20, 0, 5201, 5202, 3, 7, 3, 0, 5202, 5203, 3, 31, 15, 0, 5203, 5204, 3, 15, 7, 0, 5204, 5205, 3, 45, 22, 0, 5205, 5206, 3, 15, 7, 0, 5206, 5207, 3, 41, 20, 0, 5207, 5208, 5, 95, 0, 0, 5208, 5209, 3, 31, 15, 0, 5209, 5210, 3, 35, 17, 0, 5210, 5211, 3, 13, 6, 0, 5211, 5212, 3, 15, 7, 0, 5212, 874, 1, 0, 0, 0, 5213, 5214, 3, 37, 18, 0, 5214, 5215, 3, 7, 3, 0, 5215, 5216, 3, 41, 20, 0, 5216, 5217, 3, 7, 3, 0, 5217, 5218, 3, 31, 15, 0, 5218, 5219, 3, 15, 7, 0, 5219, 5220, 3, 45, 22, 0, 5220, 5221, 3, 15, 7, 0, 5221, 5222, 3, 41, 20, 0, 5222, 5223, 5, 95, 0, 0, 5223, 5224, 3, 33, 16, 0, 5224, 5225, 3, 7, 3, 0, 5225, 5226, 3, 31, 15, 0, 5226, 5227, 3, 15, 7, 0, 5227, 876, 1, 0, 0, 0, 5228, 5229, 3, 37, 18, 0, 5229, 5230, 3, 7, 3, 0, 5230, 5231, 3, 41, 20, 0, 5231, 5232, 3, 7, 3, 0, 5232, 5233, 3, 31, 15, 0, 5233, 5234, 3, 15, 7, 0, 5234, 5235, 3, 45, 22, 0, 5235, 5236, 3, 15, 7, 0, 5236, 5237, 3, 41, 20, 0, 5237, 5238, 5, 95, 0, 0, 5238, 5239, 3, 35, 17, 0, 5239, 5240, 3, 41, 20, 0, 5240, 5241, 3, 13, 6, 0, 5241, 5242, 3, 23, 11, 0, 5242, 5243, 3, 33, 16, 0, 5243, 5244, 3, 7, 3, 0, 5244, 5245, 3, 29, 14, 0, 5245, 5246, 5, 95, 0, 0, 5246, 5247, 3, 37, 18, 0, 5247, 5248, 3, 35, 17, 0, 5248, 5249, 3, 43, 21, 0, 5249, 5250, 3, 23, 11, 0, 5250, 5251, 3, 45, 22, 0, 5251, 5252, 3, 23, 11, 0, 5252, 5253, 3, 35, 17, 0, 5253, 5254, 3, 33, 16, 0, 5254, 878, 1, 0, 0, 0, 5255, 5256, 3, 37, 18, 0, 5256, 5257, 3, 7, 3, 0, 5257, 5258, 3, 41, 20, 0, 5258, 5259, 3, 7, 3, 0, 5259, 5260, 3, 31, 15, 0, 5260, 5261, 3, 15, 7, 0, 5261, 5262, 3, 45, 22, 0, 5262, 5263, 3, 15, 7, 0, 5263, 5264, 3, 41, 20, 0, 5264, 5265, 5, 95, 0, 0, 5265, 5266, 3, 43, 21, 0, 5266, 5267, 3, 37, 18, 0, 5267, 5268, 3, 15, 7, 0, 5268, 5269, 3, 11, 5, 0, 5269, 5270, 3, 23, 11, 0, 5270, 5271, 3, 17, 8, 0, 5271, 5272, 3, 23, 11, 0, 5272, 5273, 3, 11, 5, 0, 5273, 5274, 5, 95, 0, 0, 5274, 5275, 3, 11, 5, 0, 5275, 5276, 3, 7, 3, 0, 5276, 5277, 3, 45, 22, 0, 5277, 5278, 3, 7, 3, 0, 5278, 5279, 3, 29, 14, 0, 5279, 5280, 3, 35, 17, 0, 5280, 5281, 3, 19, 9, 0, 5281, 880, 1, 0, 0, 0, 5282, 5283, 3, 37, 18, 0, 5283, 5284, 3, 7, 3, 0, 5284, 5285, 3, 41, 20, 0, 5285, 5286, 3, 7, 3, 0, 5286, 5287, 3, 31, 15, 0, 5287, 5288, 3, 15, 7, 0, 5288, 5289, 3, 45, 22, 0, 5289, 5290, 3, 15, 7, 0, 5290, 5291, 3, 41, 20, 0, 5291, 5292, 5, 95, 0, 0, 5292, 5293, 3, 43, 21, 0, 5293, 5294, 3, 37, 18, 0, 5294, 5295, 3, 15, 7, 0, 5295, 5296, 3, 11, 5, 0, 5296, 5297, 3, 23, 11, 0, 5297, 5298, 3, 17, 8, 0, 5298, 5299, 3, 23, 11, 0, 5299, 5300, 3, 11, 5, 0, 5300, 5301, 5, 95, 0, 0, 5301, 5302, 3, 33, 16, 0, 5302, 5303, 3, 7, 3, 0, 5303, 5304, 3, 31, 15, 0, 5304, 5305, 3, 15, 7, 0, 5305, 882, 1, 0, 0, 0, 5306, 5307, 3, 37, 18, 0, 5307, 5308, 3, 7, 3, 0, 5308, 5309, 3, 41, 20, 0, 5309, 5310, 3, 7, 3, 0, 5310, 5311, 3, 31, 15, 0, 5311, 5312, 3, 15, 7, 0, 5312, 5313, 3, 45, 22, 0, 5313, 5314, 3, 15, 7, 0, 5314, 5315, 3, 41, 20, 0, 5315, 5316, 5, 95, 0, 0, 5316, 5317, 3, 43, 21, 0, 5317, 5318, 3, 37, 18, 0, 5318, 5319, 3, 15, 7, 0, 5319, 5320, 3, 11, 5, 0, 5320, 5321, 3, 23, 11, 0, 5321, 5322, 3, 17, 8, 0, 5322, 5323, 3, 23, 11, 0, 5323, 5324, 3, 11, 5, 0, 5324, 5325, 5, 95, 0, 0, 5325, 5326, 3, 43, 21, 0, 5326, 5327, 3, 11, 5, 0, 5327, 5328, 3, 21, 10, 0, 5328, 5329, 3, 15, 7, 0, 5329, 5330, 3, 31, 15, 0, 5330, 5331, 3, 7, 3, 0, 5331, 884, 1, 0, 0, 0, 5332, 5333, 3, 37, 18, 0, 5333, 5334, 3, 7, 3, 0, 5334, 5335, 3, 41, 20, 0, 5335, 5336, 3, 7, 3, 0, 5336, 5337, 3, 31, 15, 0, 5337, 5338, 3, 15, 7, 0, 5338, 5339, 3, 45, 22, 0, 5339, 5340, 3, 15, 7, 0, 5340, 5341, 3, 41, 20, 0, 5341, 5342, 3, 43, 21, 0, 5342, 886, 1, 0, 0, 0, 5343, 5344, 3, 37, 18, 0, 5344, 5345, 3, 7, 3, 0, 5345, 5346, 3, 41, 20, 0, 5346, 5347, 3, 43, 21, 0, 5347, 5348, 3, 15, 7, 0, 5348, 5349, 3, 41, 20, 0, 5349, 888, 1, 0, 0, 0, 5350, 5351, 3, 37, 18, 0, 5351, 5352, 3, 7, 3, 0, 5352, 5353, 3, 41, 20, 0, 5353, 5354, 3, 45, 22, 0, 5354, 5355, 3, 23, 11, 0, 5355, 5356, 3, 7, 3, 0, 5356, 5357, 3, 29, 14, 0, 5357, 890, 1, 0, 0, 0, 5358, 5359, 3, 37, 18, 0, 5359, 5360, 3, 7, 3, 0, 5360, 5361, 3, 41, 20, 0, 5361, 5362, 3, 45, 22, 0, 5362, 5363, 3, 23, 11, 0, 5363, 5364, 3, 45, 22, 0, 5364, 5365, 3, 23, 11, 0, 5365, 5366, 3, 35, 17, 0, 5366, 5367, 3, 33, 16, 0, 5367, 892, 1, 0, 0, 0, 5368, 5369, 3, 37, 18, 0, 5369, 5370, 3, 7, 3, 0, 5370, 5371, 3, 43, 21, 0, 5371, 5372, 3, 11, 5, 0, 5372, 5373, 3, 7, 3, 0, 5373, 5374, 3, 29, 14, 0, 5374, 894, 1, 0, 0, 0, 5375, 5376, 3, 37, 18, 0, 5376, 5377, 3, 7, 3, 0, 5377, 5378, 3, 43, 21, 0, 5378, 5379, 3, 43, 21, 0, 5379, 5380, 3, 51, 25, 0, 5380, 5381, 3, 35, 17, 0, 5381, 5382, 3, 41, 20, 0, 5382, 5383, 3, 13, 6, 0, 5383, 896, 1, 0, 0, 0, 5384, 5385, 3, 37, 18, 0, 5385, 5386, 3, 7, 3, 0, 5386, 5387, 3, 45, 22, 0, 5387, 5388, 3, 21, 10, 0, 5388, 898, 1, 0, 0, 0, 5389, 5390, 3, 37, 18, 0, 5390, 5391, 3, 15, 7, 0, 5391, 5392, 3, 41, 20, 0, 5392, 5393, 3, 11, 5, 0, 5393, 5394, 3, 15, 7, 0, 5394, 5395, 3, 33, 16, 0, 5395, 5396, 3, 45, 22, 0, 5396, 5397, 5, 95, 0, 0, 5397, 5398, 3, 41, 20, 0, 5398, 5399, 3, 7, 3, 0, 5399, 5400, 3, 33, 16, 0, 5400, 5401, 3, 27, 13, 0, 5401, 900, 1, 0, 0, 0, 5402, 5403, 3, 37, 18, 0, 5403, 5404, 3, 15, 7, 0, 5404, 5405, 3, 41, 20, 0, 5405, 5406, 3, 11, 5, 0, 5406, 5407, 3, 15, 7, 0, 5407, 5408, 3, 33, 16, 0, 5408, 5409, 3, 45, 22, 0, 5409, 5410, 3, 23, 11, 0, 5410, 5411, 3, 29, 14, 0, 5411, 5412, 3, 15, 7, 0, 5412, 5413, 5, 95, 0, 0, 5413, 5414, 3, 11, 5, 0, 5414, 5415, 3, 35, 17, 0, 5415, 5416, 3, 33, 16, 0, 5416, 5417, 3, 45, 22, 0, 5417, 902, 1, 0, 0, 0, 5418, 5419, 3, 37, 18, 0, 5419, 5420, 3, 15, 7, 0, 5420, 5421, 3, 41, 20, 0, 5421, 5422, 3, 11, 5, 0, 5422, 5423, 3, 15, 7, 0, 5423, 5424, 3, 33, 16, 0, 5424, 5425, 3, 45, 22, 0, 5425, 5426, 3, 23, 11, 0, 5426, 5427, 3, 29, 14, 0, 5427, 5428, 3, 15, 7, 0, 5428, 5429, 5, 95, 0, 0, 5429, 5430, 3, 13, 6, 0, 5430, 5431, 3, 23, 11, 0, 5431, 5432, 3, 43, 21, 0, 5432, 5433, 3, 11, 5, 0, 5433, 904, 1, 0, 0, 0, 5434, 5435, 3, 37, 18, 0, 5435, 5436, 3, 29, 14, 0, 5436, 5437, 3, 7, 3, 0, 5437, 5438, 3, 11, 5, 0, 5438, 5439, 3, 23, 11, 0, 5439, 5440, 3, 33, 16, 0, 5440, 5441, 3, 19, 9, 0, 5441, 906, 1, 0, 0, 0, 5442, 5443, 3, 37, 18, 0, 5443, 5444, 3, 29, 14, 0, 5444, 5445, 3, 7, 3, 0, 5445, 5446, 3, 23, 11, 0, 5446, 5447, 3, 33, 16, 0, 5447, 908, 1, 0, 0, 0, 5448, 5449, 3, 37, 18, 0, 5449, 5450, 3, 29, 14, 0, 5450, 5451, 3, 7, 3, 0, 5451, 5452, 3, 33, 16, 0, 5452, 5453, 3, 43, 21, 0, 5453, 910, 1, 0, 0, 0, 5454, 5455, 3, 37, 18, 0, 5455, 5456, 3, 29, 14, 0, 5456, 5457, 3, 23, 11, 0, 5457, 912, 1, 0, 0, 0, 5458, 5459, 3, 37, 18, 0, 5459, 5460, 3, 35, 17, 0, 5460, 5461, 3, 43, 21, 0, 5461, 5462, 3, 23, 11, 0, 5462, 5463, 3, 45, 22, 0, 5463, 5464, 3, 23, 11, 0, 5464, 5465, 3, 35, 17, 0, 5465, 5466, 3, 33, 16, 0, 5466, 914, 1, 0, 0, 0, 5467, 5468, 3, 37, 18, 0, 5468, 5469, 3, 35, 17, 0, 5469, 5470, 3, 43, 21, 0, 5470, 5471, 3, 45, 22, 0, 5471, 5472, 3, 17, 8, 0, 5472, 5473, 3, 23, 11, 0, 5473, 5474, 3, 53, 26, 0, 5474, 916, 1, 0, 0, 0, 5475, 5476, 3, 37, 18, 0, 5476, 5477, 3, 35, 17, 0, 5477, 5478, 3, 51, 25, 0, 5478, 5479, 3, 15, 7, 0, 5479, 5480, 3, 41, 20, 0, 5480, 918, 1, 0, 0, 0, 5481, 5482, 3, 37, 18, 0, 5482, 5483, 3, 41, 20, 0, 5483, 5484, 3, 15, 7, 0, 5484, 5485, 3, 11, 5, 0, 5485, 5486, 3, 15, 7, 0, 5486, 5487, 3, 13, 6, 0, 5487, 5488, 3, 23, 11, 0, 5488, 5489, 3, 33, 16, 0, 5489, 5490, 3, 19, 9, 0, 5490, 920, 1, 0, 0, 0, 5491, 5492, 3, 37, 18, 0, 5492, 5493, 3, 41, 20, 0, 5493, 5494, 3, 15, 7, 0, 5494, 5495, 3, 11, 5, 0, 5495, 5496, 3, 23, 11, 0, 5496, 5497, 3, 43, 21, 0, 5497, 5498, 3, 23, 11, 0, 5498, 5499, 3, 35, 17, 0, 5499, 5500, 3, 33, 16, 0, 5500, 922, 1, 0, 0, 0, 5501, 5502, 3, 37, 18, 0, 5502, 5503, 3, 41, 20, 0, 5503, 5504, 3, 15, 7, 0, 5504, 5505, 3, 17, 8, 0, 5505, 5506, 3, 23, 11, 0, 5506, 5507, 3, 53, 26, 0, 5507, 924, 1, 0, 0, 0, 5508, 5509, 3, 37, 18, 0, 5509, 5510, 3, 41, 20, 0, 5510, 5511, 3, 15, 7, 0, 5511, 5512, 3, 35, 17, 0, 5512, 5513, 3, 41, 20, 0, 5513, 5514, 3, 13, 6, 0, 5514, 5515, 3, 15, 7, 0, 5515, 5516, 3, 41, 20, 0, 5516, 926, 1, 0, 0, 0, 5517, 5518, 3, 37, 18, 0, 5518, 5519, 3, 41, 20, 0, 5519, 5520, 3, 15, 7, 0, 5520, 5521, 3, 37, 18, 0, 5521, 5522, 3, 7, 3, 0, 5522, 5523, 3, 41, 20, 0, 5523, 5524, 3, 15, 7, 0, 5524, 928, 1, 0, 0, 0, 5525, 5526, 3, 37, 18, 0, 5526, 5527, 3, 41, 20, 0, 5527, 5528, 3, 15, 7, 0, 5528, 5529, 3, 37, 18, 0, 5529, 5530, 3, 7, 3, 0, 5530, 5531, 3, 41, 20, 0, 5531, 5532, 3, 15, 7, 0, 5532, 5533, 3, 13, 6, 0, 5533, 930, 1, 0, 0, 0, 5534, 5535, 3, 37, 18, 0, 5535, 5536, 3, 41, 20, 0, 5536, 5537, 3, 15, 7, 0, 5537, 5538, 3, 43, 21, 0, 5538, 5539, 3, 15, 7, 0, 5539, 5540, 3, 41, 20, 0, 5540, 5541, 3, 49, 24, 0, 5541, 5542, 3, 15, 7, 0, 5542, 932, 1, 0, 0, 0, 5543, 5544, 3, 37, 18, 0, 5544, 5545, 3, 41, 20, 0, 5545, 5546, 3, 23, 11, 0, 5546, 5547, 3, 31, 15, 0, 5547, 5548, 3, 7, 3, 0, 5548, 5549, 3, 41, 20, 0, 5549, 5550, 3, 55, 27, 0, 5550, 934, 1, 0, 0, 0, 5551, 5552, 3, 37, 18, 0, 5552, 5553, 3, 41, 20, 0, 5553, 5554, 3, 23, 11, 0, 5554, 5555, 3, 35, 17, 0, 5555, 5556, 3, 41, 20, 0, 5556, 936, 1, 0, 0, 0, 5557, 5558, 3, 37, 18, 0, 5558, 5559, 3, 41, 20, 0, 5559, 5560, 3, 23, 11, 0, 5560, 5561, 3, 49, 24, 0, 5561, 5562, 3, 23, 11, 0, 5562, 5563, 3, 29, 14, 0, 5563, 5564, 3, 15, 7, 0, 5564, 5565, 3, 19, 9, 0, 5565, 5566, 3, 15, 7, 0, 5566, 5567, 3, 43, 21, 0, 5567, 938, 1, 0, 0, 0, 5568, 5569, 3, 37, 18, 0, 5569, 5570, 3, 41, 20, 0, 5570, 5571, 3, 35, 17, 0, 5571, 5572, 3, 11, 5, 0, 5572, 5573, 3, 15, 7, 0, 5573, 5574, 3, 13, 6, 0, 5574, 5575, 3, 47, 23, 0, 5575, 5576, 3, 41, 20, 0, 5576, 5577, 3, 7, 3, 0, 5577, 5578, 3, 29, 14, 0, 5578, 940, 1, 0, 0, 0, 5579, 5580, 3, 37, 18, 0, 5580, 5581, 3, 41, 20, 0, 5581, 5582, 3, 35, 17, 0, 5582, 5583, 3, 11, 5, 0, 5583, 5584, 3, 15, 7, 0, 5584, 5585, 3, 13, 6, 0, 5585, 5586, 3, 47, 23, 0, 5586, 5587, 3, 41, 20, 0, 5587, 5588, 3, 15, 7, 0, 5588, 942, 1, 0, 0, 0, 5589, 5590, 3, 37, 18, 0, 5590, 5591, 3, 47, 23, 0, 5591, 5592, 3, 9, 4, 0, 5592, 5593, 3, 29, 14, 0, 5593, 5594, 3, 23, 11, 0, 5594, 5595, 3, 11, 5, 0, 5595, 944, 1, 0, 0, 0, 5596, 5597, 3, 37, 18, 0, 5597, 5598, 3, 47, 23, 0, 5598, 5599, 3, 9, 4, 0, 5599, 5600, 3, 29, 14, 0, 5600, 5601, 3, 23, 11, 0, 5601, 5602, 3, 11, 5, 0, 5602, 5603, 3, 7, 3, 0, 5603, 5604, 3, 45, 22, 0, 5604, 5605, 3, 23, 11, 0, 5605, 5606, 3, 35, 17, 0, 5606, 5607, 3, 33, 16, 0, 5607, 946, 1, 0, 0, 0, 5608, 5609, 3, 39, 19, 0, 5609, 5610, 3, 47, 23, 0, 5610, 5611, 3, 35, 17, 0, 5611, 5612, 3, 45, 22, 0, 5612, 5613, 3, 15, 7, 0, 5613, 948, 1, 0, 0, 0, 5614, 5615, 3, 41, 20, 0, 5615, 5616, 3, 7, 3, 0, 5616, 5617, 3, 33, 16, 0, 5617, 5618, 3, 19, 9, 0, 5618, 5619, 3, 15, 7, 0, 5619, 950, 1, 0, 0, 0, 5620, 5621, 3, 41, 20, 0, 5621, 5622, 3, 7, 3, 0, 5622, 5623, 3, 33, 16, 0, 5623, 5624, 3, 27, 13, 0, 5624, 952, 1, 0, 0, 0, 5625, 5626, 3, 41, 20, 0, 5626, 5627, 3, 15, 7, 0, 5627, 5628, 3, 7, 3, 0, 5628, 5629, 3, 13, 6, 0, 5629, 954, 1, 0, 0, 0, 5630, 5631, 3, 41, 20, 0, 5631, 5632, 3, 15, 7, 0, 5632, 5633, 3, 7, 3, 0, 5633, 5634, 3, 13, 6, 0, 5634, 5635, 3, 43, 21, 0, 5635, 956, 1, 0, 0, 0, 5636, 5637, 3, 41, 20, 0, 5637, 5638, 3, 15, 7, 0, 5638, 5639, 3, 7, 3, 0, 5639, 5640, 3, 29, 14, 0, 5640, 958, 1, 0, 0, 0, 5641, 5642, 3, 41, 20, 0, 5642, 5643, 3, 15, 7, 0, 5643, 5644, 3, 7, 3, 0, 5644, 5645, 3, 43, 21, 0, 5645, 5646, 3, 43, 21, 0, 5646, 5647, 3, 23, 11, 0, 5647, 5648, 3, 19, 9, 0, 5648, 5649, 3, 33, 16, 0, 5649, 960, 1, 0, 0, 0, 5650, 5651, 3, 41, 20, 0, 5651, 5652, 3, 15, 7, 0, 5652, 5653, 3, 11, 5, 0, 5653, 5654, 3, 21, 10, 0, 5654, 5655, 3, 15, 7, 0, 5655, 5656, 3, 11, 5, 0, 5656, 5657, 3, 27, 13, 0, 5657, 962, 1, 0, 0, 0, 5658, 5659, 3, 41, 20, 0, 5659, 5660, 3, 15, 7, 0, 5660, 5661, 3, 11, 5, 0, 5661, 5662, 3, 47, 23, 0, 5662, 5663, 3, 41, 20, 0, 5663, 5664, 3, 43, 21, 0, 5664, 5665, 3, 23, 11, 0, 5665, 5666, 3, 49, 24, 0, 5666, 5667, 3, 15, 7, 0, 5667, 964, 1, 0, 0, 0, 5668, 5669, 3, 41, 20, 0, 5669, 5670, 3, 15, 7, 0, 5670, 5671, 3, 17, 8, 0, 5671, 966, 1, 0, 0, 0, 5672, 5673, 3, 41, 20, 0, 5673, 5674, 3, 15, 7, 0, 5674, 5675, 3, 17, 8, 0, 5675, 5676, 3, 15, 7, 0, 5676, 5677, 3, 41, 20, 0, 5677, 5678, 3, 15, 7, 0, 5678, 5679, 3, 33, 16, 0, 5679, 5680, 3, 11, 5, 0, 5680, 5681, 3, 15, 7, 0, 5681, 5682, 3, 43, 21, 0, 5682, 968, 1, 0, 0, 0, 5683, 5684, 3, 41, 20, 0, 5684, 5685, 3, 15, 7, 0, 5685, 5686, 3, 17, 8, 0, 5686, 5687, 3, 15, 7, 0, 5687, 5688, 3, 41, 20, 0, 5688, 5689, 3, 15, 7, 0, 5689, 5690, 3, 33, 16, 0, 5690, 5691, 3, 11, 5, 0, 5691, 5692, 3, 23, 11, 0, 5692, 5693, 3, 33, 16, 0, 5693, 5694, 3, 19, 9, 0, 5694, 970, 1, 0, 0, 0, 5695, 5696, 3, 41, 20, 0, 5696, 5697, 3, 15, 7, 0, 5697, 5698, 3, 17, 8, 0, 5698, 5699, 3, 41, 20, 0, 5699, 5700, 3, 15, 7, 0, 5700, 5701, 3, 43, 21, 0, 5701, 5702, 3, 21, 10, 0, 5702, 972, 1, 0, 0, 0, 5703, 5704, 3, 41, 20, 0, 5704, 5705, 3, 15, 7, 0, 5705, 5706, 3, 19, 9, 0, 5706, 5707, 3, 41, 20, 0, 5707, 5708, 5, 95, 0, 0, 5708, 5709, 3, 7, 3, 0, 5709, 5710, 3, 49, 24, 0, 5710, 5711, 3, 19, 9, 0, 5711, 5712, 3, 53, 26, 0, 5712, 974, 1, 0, 0, 0, 5713, 5714, 3, 41, 20, 0, 5714, 5715, 3, 15, 7, 0, 5715, 5716, 3, 19, 9, 0, 5716, 5717, 3, 41, 20, 0, 5717, 5718, 5, 95, 0, 0, 5718, 5719, 3, 7, 3, 0, 5719, 5720, 3, 49, 24, 0, 5720, 5721, 3, 19, 9, 0, 5721, 5722, 3, 55, 27, 0, 5722, 976, 1, 0, 0, 0, 5723, 5724, 3, 41, 20, 0, 5724, 5725, 3, 15, 7, 0, 5725, 5726, 3, 19, 9, 0, 5726, 5727, 3, 41, 20, 0, 5727, 5728, 5, 95, 0, 0, 5728, 5729, 3, 11, 5, 0, 5729, 5730, 3, 35, 17, 0, 5730, 5731, 3, 47, 23, 0, 5731, 5732, 3, 33, 16, 0, 5732, 5733, 3, 45, 22, 0, 5733, 978, 1, 0, 0, 0, 5734, 5735, 3, 41, 20, 0, 5735, 5736, 3, 15, 7, 0, 5736, 5737, 3, 19, 9, 0, 5737, 5738, 3, 41, 20, 0, 5738, 5739, 5, 95, 0, 0, 5739, 5740, 3, 23, 11, 0, 5740, 5741, 3, 33, 16, 0, 5741, 5742, 3, 45, 22, 0, 5742, 5743, 3, 15, 7, 0, 5743, 5744, 3, 41, 20, 0, 5744, 5745, 3, 11, 5, 0, 5745, 5746, 3, 15, 7, 0, 5746, 5747, 3, 37, 18, 0, 5747, 5748, 3, 45, 22, 0, 5748, 980, 1, 0, 0, 0, 5749, 5750, 3, 41, 20, 0, 5750, 5751, 3, 15, 7, 0, 5751, 5752, 3, 19, 9, 0, 5752, 5753, 3, 41, 20, 0, 5753, 5754, 5, 95, 0, 0, 5754, 5755, 3, 41, 20, 0, 5755, 5756, 5, 50, 0, 0, 5756, 982, 1, 0, 0, 0, 5757, 5758, 3, 41, 20, 0, 5758, 5759, 3, 15, 7, 0, 5759, 5760, 3, 19, 9, 0, 5760, 5761, 3, 41, 20, 0, 5761, 5762, 5, 95, 0, 0, 5762, 5763, 3, 43, 21, 0, 5763, 5764, 3, 29, 14, 0, 5764, 5765, 3, 35, 17, 0, 5765, 5766, 3, 37, 18, 0, 5766, 5767, 3, 15, 7, 0, 5767, 984, 1, 0, 0, 0, 5768, 5769, 3, 41, 20, 0, 5769, 5770, 3, 15, 7, 0, 5770, 5771, 3, 19, 9, 0, 5771, 5772, 3, 41, 20, 0, 5772, 5773, 5, 95, 0, 0, 5773, 5774, 3, 43, 21, 0, 5774, 5775, 3, 53, 26, 0, 5775, 5776, 3, 53, 26, 0, 5776, 986, 1, 0, 0, 0, 5777, 5778, 3, 41, 20, 0, 5778, 5779, 3, 15, 7, 0, 5779, 5780, 3, 19, 9, 0, 5780, 5781, 3, 41, 20, 0, 5781, 5782, 5, 95, 0, 0, 5782, 5783, 3, 43, 21, 0, 5783, 5784, 3, 53, 26, 0, 5784, 5785, 3, 55, 27, 0, 5785, 988, 1, 0, 0, 0, 5786, 5787, 3, 41, 20, 0, 5787, 5788, 3, 15, 7, 0, 5788, 5789, 3, 19, 9, 0, 5789, 5790, 3, 41, 20, 0, 5790, 5791, 5, 95, 0, 0, 5791, 5792, 3, 43, 21, 0, 5792, 5793, 3, 55, 27, 0, 5793, 5794, 3, 55, 27, 0, 5794, 990, 1, 0, 0, 0, 5795, 5796, 3, 41, 20, 0, 5796, 5797, 3, 15, 7, 0, 5797, 5798, 3, 23, 11, 0, 5798, 5799, 3, 33, 16, 0, 5799, 5800, 3, 13, 6, 0, 5800, 5801, 3, 15, 7, 0, 5801, 5802, 3, 53, 26, 0, 5802, 992, 1, 0, 0, 0, 5803, 5804, 3, 41, 20, 0, 5804, 5805, 3, 15, 7, 0, 5805, 5806, 3, 29, 14, 0, 5806, 5807, 3, 7, 3, 0, 5807, 5808, 3, 45, 22, 0, 5808, 5809, 3, 23, 11, 0, 5809, 5810, 3, 49, 24, 0, 5810, 5811, 3, 15, 7, 0, 5811, 994, 1, 0, 0, 0, 5812, 5813, 3, 41, 20, 0, 5813, 5814, 3, 15, 7, 0, 5814, 5815, 3, 29, 14, 0, 5815, 5816, 3, 15, 7, 0, 5816, 5817, 3, 7, 3, 0, 5817, 5818, 3, 43, 21, 0, 5818, 5819, 3, 15, 7, 0, 5819, 996, 1, 0, 0, 0, 5820, 5821, 3, 41, 20, 0, 5821, 5822, 3, 15, 7, 0, 5822, 5823, 3, 33, 16, 0, 5823, 5824, 3, 7, 3, 0, 5824, 5825, 3, 31, 15, 0, 5825, 5826, 3, 15, 7, 0, 5826, 998, 1, 0, 0, 0, 5827, 5828, 3, 41, 20, 0, 5828, 5829, 3, 15, 7, 0, 5829, 5830, 3, 37, 18, 0, 5830, 5831, 3, 15, 7, 0, 5831, 5832, 3, 7, 3, 0, 5832, 5833, 3, 45, 22, 0, 5833, 5834, 3, 7, 3, 0, 5834, 5835, 3, 9, 4, 0, 5835, 5836, 3, 29, 14, 0, 5836, 5837, 3, 15, 7, 0, 5837, 1000, 1, 0, 0, 0, 5838, 5839, 3, 41, 20, 0, 5839, 5840, 3, 15, 7, 0, 5840, 5841, 3, 37, 18, 0, 5841, 5842, 3, 29, 14, 0, 5842, 5843, 3, 7, 3, 0, 5843, 5844, 3, 11, 5, 0, 5844, 5845, 3, 15, 7, 0, 5845, 1002, 1, 0, 0, 0, 5846, 5847, 3, 41, 20, 0, 5847, 5848, 3, 15, 7, 0, 5848, 5849, 3, 37, 18, 0, 5849, 5850, 3, 29, 14, 0, 5850, 5851, 3, 23, 11, 0, 5851, 5852, 3, 11, 5, 0, 5852, 5853, 3, 7, 3, 0, 5853, 1004, 1, 0, 0, 0, 5854, 5855, 3, 41, 20, 0, 5855, 5856, 3, 15, 7, 0, 5856, 5857, 3, 43, 21, 0, 5857, 5858, 3, 15, 7, 0, 5858, 5859, 3, 45, 22, 0, 5859, 1006, 1, 0, 0, 0, 5860, 5861, 3, 41, 20, 0, 5861, 5862, 3, 15, 7, 0, 5862, 5863, 3, 43, 21, 0, 5863, 5864, 3, 45, 22, 0, 5864, 5865, 3, 7, 3, 0, 5865, 5866, 3, 41, 20, 0, 5866, 5867, 3, 45, 22, 0, 5867, 1008, 1, 0, 0, 0, 5868, 5869, 3, 41, 20, 0, 5869, 5870, 3, 15, 7, 0, 5870, 5871, 3, 43, 21, 0, 5871, 5872, 3, 45, 22, 0, 5872, 5873, 3, 41, 20, 0, 5873, 5874, 3, 23, 11, 0, 5874, 5875, 3, 11, 5, 0, 5875, 5876, 3, 45, 22, 0, 5876, 1010, 1, 0, 0, 0, 5877, 5878, 3, 41, 20, 0, 5878, 5879, 3, 15, 7, 0, 5879, 5880, 3, 43, 21, 0, 5880, 5881, 3, 47, 23, 0, 5881, 5882, 3, 29, 14, 0, 5882, 5883, 3, 45, 22, 0, 5883, 1012, 1, 0, 0, 0, 5884, 5885, 3, 41, 20, 0, 5885, 5886, 3, 15, 7, 0, 5886, 5887, 3, 45, 22, 0, 5887, 5888, 3, 47, 23, 0, 5888, 5889, 3, 41, 20, 0, 5889, 5890, 3, 33, 16, 0, 5890, 1014, 1, 0, 0, 0, 5891, 5892, 3, 41, 20, 0, 5892, 5893, 3, 15, 7, 0, 5893, 5894, 3, 45, 22, 0, 5894, 5895, 3, 47, 23, 0, 5895, 5896, 3, 41, 20, 0, 5896, 5897, 3, 33, 16, 0, 5897, 5898, 3, 15, 7, 0, 5898, 5899, 3, 13, 6, 0, 5899, 5900, 5, 95, 0, 0, 5900, 5901, 3, 11, 5, 0, 5901, 5902, 3, 7, 3, 0, 5902, 5903, 3, 41, 20, 0, 5903, 5904, 3, 13, 6, 0, 5904, 5905, 3, 23, 11, 0, 5905, 5906, 3, 33, 16, 0, 5906, 5907, 3, 7, 3, 0, 5907, 5908, 3, 29, 14, 0, 5908, 5909, 3, 23, 11, 0, 5909, 5910, 3, 45, 22, 0, 5910, 5911, 3, 55, 27, 0, 5911, 1016, 1, 0, 0, 0, 5912, 5913, 3, 41, 20, 0, 5913, 5914, 3, 15, 7, 0, 5914, 5915, 3, 45, 22, 0, 5915, 5916, 3, 47, 23, 0, 5916, 5917, 3, 41, 20, 0, 5917, 5918, 3, 33, 16, 0, 5918, 5919, 3, 15, 7, 0, 5919, 5920, 3, 13, 6, 0, 5920, 5921, 5, 95, 0, 0, 5921, 5922, 3, 29, 14, 0, 5922, 5923, 3, 15, 7, 0, 5923, 5924, 3, 33, 16, 0, 5924, 5925, 3, 19, 9, 0, 5925, 5926, 3, 45, 22, 0, 5926, 5927, 3, 21, 10, 0, 5927, 1018, 1, 0, 0, 0, 5928, 5929, 3, 41, 20, 0, 5929, 5930, 3, 15, 7, 0, 5930, 5931, 3, 45, 22, 0, 5931, 5932, 3, 47, 23, 0, 5932, 5933, 3, 41, 20, 0, 5933, 5934, 3, 33, 16, 0, 5934, 5935, 3, 15, 7, 0, 5935, 5936, 3, 13, 6, 0, 5936, 5937, 5, 95, 0, 0, 5937, 5938, 3, 35, 17, 0, 5938, 5939, 3, 11, 5, 0, 5939, 5940, 3, 45, 22, 0, 5940, 5941, 3, 15, 7, 0, 5941, 5942, 3, 45, 22, 0, 5942, 5943, 5, 95, 0, 0, 5943, 5944, 3, 29, 14, 0, 5944, 5945, 3, 15, 7, 0, 5945, 5946, 3, 33, 16, 0, 5946, 5947, 3, 19, 9, 0, 5947, 5948, 3, 45, 22, 0, 5948, 5949, 3, 21, 10, 0, 5949, 1020, 1, 0, 0, 0, 5950, 5951, 3, 41, 20, 0, 5951, 5952, 3, 15, 7, 0, 5952, 5953, 3, 45, 22, 0, 5953, 5954, 3, 47, 23, 0, 5954, 5955, 3, 41, 20, 0, 5955, 5956, 3, 33, 16, 0, 5956, 5957, 3, 15, 7, 0, 5957, 5958, 3, 13, 6, 0, 5958, 5959, 5, 95, 0, 0, 5959, 5960, 3, 43, 21, 0, 5960, 5961, 3, 39, 19, 0, 5961, 5962, 3, 29, 14, 0, 5962, 5963, 3, 43, 21, 0, 5963, 5964, 3, 45, 22, 0, 5964, 5965, 3, 7, 3, 0, 5965, 5966, 3, 45, 22, 0, 5966, 5967, 3, 15, 7, 0, 5967, 1022, 1, 0, 0, 0, 5968, 5969, 3, 41, 20, 0, 5969, 5970, 3, 15, 7, 0, 5970, 5971, 3, 45, 22, 0, 5971, 5972, 3, 47, 23, 0, 5972, 5973, 3, 41, 20, 0, 5973, 5974, 3, 33, 16, 0, 5974, 5975, 3, 23, 11, 0, 5975, 5976, 3, 33, 16, 0, 5976, 5977, 3, 19, 9, 0, 5977, 1024, 1, 0, 0, 0, 5978, 5979, 3, 41, 20, 0, 5979, 5980, 3, 15, 7, 0, 5980, 5981, 3, 45, 22, 0, 5981, 5982, 3, 47, 23, 0, 5982, 5983, 3, 41, 20, 0, 5983, 5984, 3, 33, 16, 0, 5984, 5985, 3, 43, 21, 0, 5985, 1026, 1, 0, 0, 0, 5986, 5987, 3, 41, 20, 0, 5987, 5988, 3, 15, 7, 0, 5988, 5989, 3, 49, 24, 0, 5989, 5990, 3, 35, 17, 0, 5990, 5991, 3, 27, 13, 0, 5991, 5992, 3, 15, 7, 0, 5992, 1028, 1, 0, 0, 0, 5993, 5994, 3, 41, 20, 0, 5994, 5995, 3, 23, 11, 0, 5995, 5996, 3, 19, 9, 0, 5996, 5997, 3, 21, 10, 0, 5997, 5998, 3, 45, 22, 0, 5998, 1030, 1, 0, 0, 0, 5999, 6000, 3, 41, 20, 0, 6000, 6001, 3, 35, 17, 0, 6001, 6002, 3, 29, 14, 0, 6002, 6003, 3, 15, 7, 0, 6003, 1032, 1, 0, 0, 0, 6004, 6005, 3, 41, 20, 0, 6005, 6006, 3, 35, 17, 0, 6006, 6007, 3, 29, 14, 0, 6007, 6008, 3, 29, 14, 0, 6008, 6009, 3, 9, 4, 0, 6009, 6010, 3, 7, 3, 0, 6010, 6011, 3, 11, 5, 0, 6011, 6012, 3, 27, 13, 0, 6012, 1034, 1, 0, 0, 0, 6013, 6014, 3, 41, 20, 0, 6014, 6015, 3, 35, 17, 0, 6015, 6016, 3, 29, 14, 0, 6016, 6017, 3, 29, 14, 0, 6017, 6018, 3, 47, 23, 0, 6018, 6019, 3, 37, 18, 0, 6019, 1036, 1, 0, 0, 0, 6020, 6021, 3, 41, 20, 0, 6021, 6022, 3, 35, 17, 0, 6022, 6023, 3, 47, 23, 0, 6023, 6024, 3, 45, 22, 0, 6024, 6025, 3, 23, 11, 0, 6025, 6026, 3, 33, 16, 0, 6026, 6027, 3, 15, 7, 0, 6027, 1038, 1, 0, 0, 0, 6028, 6029, 3, 41, 20, 0, 6029, 6030, 3, 35, 17, 0, 6030, 6031, 3, 47, 23, 0, 6031, 6032, 3, 45, 22, 0, 6032, 6033, 3, 23, 11, 0, 6033, 6034, 3, 33, 16, 0, 6034, 6035, 3, 15, 7, 0, 6035, 6036, 5, 95, 0, 0, 6036, 6037, 3, 11, 5, 0, 6037, 6038, 3, 7, 3, 0, 6038, 6039, 3, 45, 22, 0, 6039, 6040, 3, 7, 3, 0, 6040, 6041, 3, 29, 14, 0, 6041, 6042, 3, 35, 17, 0, 6042, 6043, 3, 19, 9, 0, 6043, 1040, 1, 0, 0, 0, 6044, 6045, 3, 41, 20, 0, 6045, 6046, 3, 35, 17, 0, 6046, 6047, 3, 47, 23, 0, 6047, 6048, 3, 45, 22, 0, 6048, 6049, 3, 23, 11, 0, 6049, 6050, 3, 33, 16, 0, 6050, 6051, 3, 15, 7, 0, 6051, 6052, 5, 95, 0, 0, 6052, 6053, 3, 33, 16, 0, 6053, 6054, 3, 7, 3, 0, 6054, 6055, 3, 31, 15, 0, 6055, 6056, 3, 15, 7, 0, 6056, 1042, 1, 0, 0, 0, 6057, 6058, 3, 41, 20, 0, 6058, 6059, 3, 35, 17, 0, 6059, 6060, 3, 47, 23, 0, 6060, 6061, 3, 45, 22, 0, 6061, 6062, 3, 23, 11, 0, 6062, 6063, 3, 33, 16, 0, 6063, 6064, 3, 15, 7, 0, 6064, 6065, 5, 95, 0, 0, 6065, 6066, 3, 43, 21, 0, 6066, 6067, 3, 11, 5, 0, 6067, 6068, 3, 21, 10, 0, 6068, 6069, 3, 15, 7, 0, 6069, 6070, 3, 31, 15, 0, 6070, 6071, 3, 7, 3, 0, 6071, 1044, 1, 0, 0, 0, 6072, 6073, 3, 41, 20, 0, 6073, 6074, 3, 35, 17, 0, 6074, 6075, 3, 51, 25, 0, 6075, 1046, 1, 0, 0, 0, 6076, 6077, 3, 41, 20, 0, 6077, 6078, 3, 35, 17, 0, 6078, 6079, 3, 51, 25, 0, 6079, 6080, 5, 95, 0, 0, 6080, 6081, 3, 11, 5, 0, 6081, 6082, 3, 35, 17, 0, 6082, 6083, 3, 47, 23, 0, 6083, 6084, 3, 33, 16, 0, 6084, 6085, 3, 45, 22, 0, 6085, 1048, 1, 0, 0, 0, 6086, 6087, 3, 41, 20, 0, 6087, 6088, 3, 35, 17, 0, 6088, 6089, 3, 51, 25, 0, 6089, 6090, 5, 95, 0, 0, 6090, 6091, 3, 33, 16, 0, 6091, 6092, 3, 47, 23, 0, 6092, 6093, 3, 31, 15, 0, 6093, 6094, 3, 9, 4, 0, 6094, 6095, 3, 15, 7, 0, 6095, 6096, 3, 41, 20, 0, 6096, 1050, 1, 0, 0, 0, 6097, 6098, 3, 41, 20, 0, 6098, 6099, 3, 35, 17, 0, 6099, 6100, 3, 51, 25, 0, 6100, 6101, 3, 43, 21, 0, 6101, 1052, 1, 0, 0, 0, 6102, 6103, 3, 41, 20, 0, 6103, 6104, 3, 47, 23, 0, 6104, 6105, 3, 29, 14, 0, 6105, 6106, 3, 15, 7, 0, 6106, 1054, 1, 0, 0, 0, 6107, 6108, 3, 43, 21, 0, 6108, 6109, 3, 7, 3, 0, 6109, 6110, 3, 49, 24, 0, 6110, 6111, 3, 15, 7, 0, 6111, 6112, 3, 37, 18, 0, 6112, 6113, 3, 35, 17, 0, 6113, 6114, 3, 23, 11, 0, 6114, 6115, 3, 33, 16, 0, 6115, 6116, 3, 45, 22, 0, 6116, 1056, 1, 0, 0, 0, 6117, 6118, 3, 43, 21, 0, 6118, 6119, 3, 11, 5, 0, 6119, 6120, 3, 7, 3, 0, 6120, 6121, 3, 29, 14, 0, 6121, 6122, 3, 15, 7, 0, 6122, 1058, 1, 0, 0, 0, 6123, 6124, 3, 43, 21, 0, 6124, 6125, 3, 11, 5, 0, 6125, 6126, 3, 21, 10, 0, 6126, 6127, 3, 15, 7, 0, 6127, 6128, 3, 31, 15, 0, 6128, 6129, 3, 7, 3, 0, 6129, 1060, 1, 0, 0, 0, 6130, 6131, 3, 43, 21, 0, 6131, 6132, 3, 11, 5, 0, 6132, 6133, 3, 21, 10, 0, 6133, 6134, 3, 15, 7, 0, 6134, 6135, 3, 31, 15, 0, 6135, 6136, 3, 7, 3, 0, 6136, 6137, 5, 95, 0, 0, 6137, 6138, 3, 33, 16, 0, 6138, 6139, 3, 7, 3, 0, 6139, 6140, 3, 31, 15, 0, 6140, 6141, 3, 15, 7, 0, 6141, 1062, 1, 0, 0, 0, 6142, 6143, 3, 43, 21, 0, 6143, 6144, 3, 11, 5, 0, 6144, 6145, 3, 35, 17, 0, 6145, 6146, 3, 37, 18, 0, 6146, 6147, 3, 15, 7, 0, 6147, 1064, 1, 0, 0, 0, 6148, 6149, 3, 43, 21, 0, 6149, 6150, 3, 11, 5, 0, 6150, 6151, 3, 35, 17, 0, 6151, 6152, 3, 37, 18, 0, 6152, 6153, 3, 15, 7, 0, 6153, 6154, 5, 95, 0, 0, 6154, 6155, 3, 11, 5, 0, 6155, 6156, 3, 7, 3, 0, 6156, 6157, 3, 45, 22, 0, 6157, 6158, 3, 7, 3, 0, 6158, 6159, 3, 29, 14, 0, 6159, 6160, 3, 35, 17, 0, 6160, 6161, 3, 19, 9, 0, 6161, 1066, 1, 0, 0, 0, 6162, 6163, 3, 43, 21, 0, 6163, 6164, 3, 11, 5, 0, 6164, 6165, 3, 35, 17, 0, 6165, 6166, 3, 37, 18, 0, 6166, 6167, 3, 15, 7, 0, 6167, 6168, 5, 95, 0, 0, 6168, 6169, 3, 33, 16, 0, 6169, 6170, 3, 7, 3, 0, 6170, 6171, 3, 31, 15, 0, 6171, 6172, 3, 15, 7, 0, 6172, 1068, 1, 0, 0, 0, 6173, 6174, 3, 43, 21, 0, 6174, 6175, 3, 11, 5, 0, 6175, 6176, 3, 35, 17, 0, 6176, 6177, 3, 37, 18, 0, 6177, 6178, 3, 15, 7, 0, 6178, 6179, 5, 95, 0, 0, 6179, 6180, 3, 43, 21, 0, 6180, 6181, 3, 11, 5, 0, 6181, 6182, 3, 21, 10, 0, 6182, 6183, 3, 15, 7, 0, 6183, 6184, 3, 31, 15, 0, 6184, 6185, 3, 7, 3, 0, 6185, 1070, 1, 0, 0, 0, 6186, 6187, 3, 43, 21, 0, 6187, 6188, 3, 11, 5, 0, 6188, 6189, 3, 41, 20, 0, 6189, 6190, 3, 35, 17, 0, 6190, 6191, 3, 29, 14, 0, 6191, 6192, 3, 29, 14, 0, 6192, 1072, 1, 0, 0, 0, 6193, 6194, 3, 43, 21, 0, 6194, 6195, 3, 15, 7, 0, 6195, 6196, 3, 7, 3, 0, 6196, 6197, 3, 41, 20, 0, 6197, 6198, 3, 11, 5, 0, 6198, 6199, 3, 21, 10, 0, 6199, 1074, 1, 0, 0, 0, 6200, 6201, 3, 43, 21, 0, 6201, 6202, 3, 15, 7, 0, 6202, 6203, 3, 11, 5, 0, 6203, 6204, 3, 35, 17, 0, 6204, 6205, 3, 33, 16, 0, 6205, 6206, 3, 13, 6, 0, 6206, 1076, 1, 0, 0, 0, 6207, 6208, 3, 43, 21, 0, 6208, 6209, 3, 15, 7, 0, 6209, 6210, 3, 11, 5, 0, 6210, 6211, 3, 45, 22, 0, 6211, 6212, 3, 23, 11, 0, 6212, 6213, 3, 35, 17, 0, 6213, 6214, 3, 33, 16, 0, 6214, 1078, 1, 0, 0, 0, 6215, 6216, 3, 43, 21, 0, 6216, 6217, 3, 15, 7, 0, 6217, 6218, 3, 11, 5, 0, 6218, 6219, 3, 47, 23, 0, 6219, 6220, 3, 41, 20, 0, 6220, 6221, 3, 23, 11, 0, 6221, 6222, 3, 45, 22, 0, 6222, 6223, 3, 55, 27, 0, 6223, 1080, 1, 0, 0, 0, 6224, 6225, 3, 43, 21, 0, 6225, 6226, 3, 15, 7, 0, 6226, 6227, 3, 29, 14, 0, 6227, 6228, 3, 15, 7, 0, 6228, 6229, 3, 11, 5, 0, 6229, 6230, 3, 45, 22, 0, 6230, 1082, 1, 0, 0, 0, 6231, 6232, 3, 43, 21, 0, 6232, 6233, 3, 15, 7, 0, 6233, 6234, 3, 29, 14, 0, 6234, 6235, 3, 17, 8, 0, 6235, 1084, 1, 0, 0, 0, 6236, 6237, 3, 43, 21, 0, 6237, 6238, 3, 15, 7, 0, 6238, 6239, 3, 33, 16, 0, 6239, 6240, 3, 43, 21, 0, 6240, 6241, 3, 23, 11, 0, 6241, 6242, 3, 45, 22, 0, 6242, 6243, 3, 23, 11, 0, 6243, 6244, 3, 49, 24, 0, 6244, 6245, 3, 15, 7, 0, 6245, 1086, 1, 0, 0, 0, 6246, 6247, 3, 43, 21, 0, 6247, 6248, 3, 15, 7, 0, 6248, 6249, 3, 39, 19, 0, 6249, 6250, 3, 47, 23, 0, 6250, 6251, 3, 15, 7, 0, 6251, 6252, 3, 33, 16, 0, 6252, 6253, 3, 11, 5, 0, 6253, 6254, 3, 15, 7, 0, 6254, 1088, 1, 0, 0, 0, 6255, 6256, 3, 43, 21, 0, 6256, 6257, 3, 15, 7, 0, 6257, 6258, 3, 39, 19, 0, 6258, 6259, 3, 47, 23, 0, 6259, 6260, 3, 15, 7, 0, 6260, 6261, 3, 33, 16, 0, 6261, 6262, 3, 11, 5, 0, 6262, 6263, 3, 15, 7, 0, 6263, 6264, 3, 43, 21, 0, 6264, 1090, 1, 0, 0, 0, 6265, 6266, 3, 43, 21, 0, 6266, 6267, 3, 15, 7, 0, 6267, 6268, 3, 41, 20, 0, 6268, 6269, 3, 23, 11, 0, 6269, 6270, 3, 7, 3, 0, 6270, 6271, 3, 29, 14, 0, 6271, 6272, 3, 23, 11, 0, 6272, 6273, 3, 57, 28, 0, 6273, 6274, 3, 7, 3, 0, 6274, 6275, 3, 9, 4, 0, 6275, 6276, 3, 29, 14, 0, 6276, 6277, 3, 15, 7, 0, 6277, 1092, 1, 0, 0, 0, 6278, 6279, 3, 43, 21, 0, 6279, 6280, 3, 15, 7, 0, 6280, 6281, 3, 41, 20, 0, 6281, 6282, 3, 49, 24, 0, 6282, 6283, 3, 15, 7, 0, 6283, 6284, 3, 41, 20, 0, 6284, 6285, 5, 95, 0, 0, 6285, 6286, 3, 33, 16, 0, 6286, 6287, 3, 7, 3, 0, 6287, 6288, 3, 31, 15, 0, 6288, 6289, 3, 15, 7, 0, 6289, 1094, 1, 0, 0, 0, 6290, 6291, 3, 43, 21, 0, 6291, 6292, 3, 15, 7, 0, 6292, 6293, 3, 43, 21, 0, 6293, 6294, 3, 43, 21, 0, 6294, 6295, 3, 23, 11, 0, 6295, 6296, 3, 35, 17, 0, 6296, 6297, 3, 33, 16, 0, 6297, 1096, 1, 0, 0, 0, 6298, 6299, 3, 43, 21, 0, 6299, 6300, 3, 15, 7, 0, 6300, 6301, 3, 43, 21, 0, 6301, 6302, 3, 43, 21, 0, 6302, 6303, 3, 23, 11, 0, 6303, 6304, 3, 35, 17, 0, 6304, 6305, 3, 33, 16, 0, 6305, 6306, 5, 95, 0, 0, 6306, 6307, 3, 47, 23, 0, 6307, 6308, 3, 43, 21, 0, 6308, 6309, 3, 15, 7, 0, 6309, 6310, 3, 41, 20, 0, 6310, 1098, 1, 0, 0, 0, 6311, 6312, 3, 43, 21, 0, 6312, 6313, 3, 15, 7, 0, 6313, 6314, 3, 45, 22, 0, 6314, 1100, 1, 0, 0, 0, 6315, 6316, 3, 43, 21, 0, 6316, 6317, 3, 15, 7, 0, 6317, 6318, 3, 45, 22, 0, 6318, 6319, 3, 35, 17, 0, 6319, 6320, 3, 17, 8, 0, 6320, 1102, 1, 0, 0, 0, 6321, 6322, 3, 43, 21, 0, 6322, 6323, 3, 15, 7, 0, 6323, 6324, 3, 45, 22, 0, 6324, 6325, 3, 43, 21, 0, 6325, 1104, 1, 0, 0, 0, 6326, 6327, 3, 43, 21, 0, 6327, 6328, 3, 21, 10, 0, 6328, 6329, 3, 7, 3, 0, 6329, 6330, 3, 41, 20, 0, 6330, 6331, 3, 15, 7, 0, 6331, 1106, 1, 0, 0, 0, 6332, 6333, 3, 43, 21, 0, 6333, 6334, 3, 21, 10, 0, 6334, 6335, 3, 35, 17, 0, 6335, 6336, 3, 51, 25, 0, 6336, 1108, 1, 0, 0, 0, 6337, 6338, 3, 43, 21, 0, 6338, 6339, 3, 23, 11, 0, 6339, 6340, 3, 31, 15, 0, 6340, 6341, 3, 23, 11, 0, 6341, 6342, 3, 29, 14, 0, 6342, 6343, 3, 7, 3, 0, 6343, 6344, 3, 41, 20, 0, 6344, 1110, 1, 0, 0, 0, 6345, 6346, 3, 43, 21, 0, 6346, 6347, 3, 23, 11, 0, 6347, 6348, 3, 31, 15, 0, 6348, 6349, 3, 37, 18, 0, 6349, 6350, 3, 29, 14, 0, 6350, 6351, 3, 15, 7, 0, 6351, 1112, 1, 0, 0, 0, 6352, 6353, 3, 43, 21, 0, 6353, 6354, 3, 23, 11, 0, 6354, 6355, 3, 57, 28, 0, 6355, 6356, 3, 15, 7, 0, 6356, 1114, 1, 0, 0, 0, 6357, 6358, 3, 43, 21, 0, 6358, 6359, 3, 27, 13, 0, 6359, 6360, 3, 23, 11, 0, 6360, 6361, 3, 37, 18, 0, 6361, 1116, 1, 0, 0, 0, 6362, 6363, 3, 43, 21, 0, 6363, 6364, 3, 31, 15, 0, 6364, 6365, 3, 7, 3, 0, 6365, 6366, 3, 29, 14, 0, 6366, 6367, 3, 29, 14, 0, 6367, 6368, 3, 23, 11, 0, 6368, 6369, 3, 33, 16, 0, 6369, 6370, 3, 45, 22, 0, 6370, 1118, 1, 0, 0, 0, 6371, 6372, 3, 43, 21, 0, 6372, 6373, 3, 33, 16, 0, 6373, 6374, 3, 7, 3, 0, 6374, 6375, 3, 37, 18, 0, 6375, 6376, 3, 43, 21, 0, 6376, 6377, 3, 21, 10, 0, 6377, 6378, 3, 35, 17, 0, 6378, 6379, 3, 45, 22, 0, 6379, 1120, 1, 0, 0, 0, 6380, 6381, 3, 43, 21, 0, 6381, 6382, 3, 35, 17, 0, 6382, 6383, 3, 31, 15, 0, 6383, 6384, 3, 15, 7, 0, 6384, 1122, 1, 0, 0, 0, 6385, 6386, 3, 43, 21, 0, 6386, 6387, 3, 35, 17, 0, 6387, 6388, 3, 47, 23, 0, 6388, 6389, 3, 41, 20, 0, 6389, 6390, 3, 11, 5, 0, 6390, 6391, 3, 15, 7, 0, 6391, 1124, 1, 0, 0, 0, 6392, 6393, 3, 43, 21, 0, 6393, 6394, 3, 37, 18, 0, 6394, 6395, 3, 7, 3, 0, 6395, 6396, 3, 11, 5, 0, 6396, 6397, 3, 15, 7, 0, 6397, 1126, 1, 0, 0, 0, 6398, 6399, 3, 43, 21, 0, 6399, 6400, 3, 37, 18, 0, 6400, 6401, 3, 15, 7, 0, 6401, 6402, 3, 11, 5, 0, 6402, 6403, 3, 23, 11, 0, 6403, 6404, 3, 17, 8, 0, 6404, 6405, 3, 23, 11, 0, 6405, 6406, 3, 11, 5, 0, 6406, 1128, 1, 0, 0, 0, 6407, 6408, 3, 43, 21, 0, 6408, 6409, 3, 37, 18, 0, 6409, 6410, 3, 15, 7, 0, 6410, 6411, 3, 11, 5, 0, 6411, 6412, 3, 23, 11, 0, 6412, 6413, 3, 17, 8, 0, 6413, 6414, 3, 23, 11, 0, 6414, 6415, 3, 11, 5, 0, 6415, 6416, 5, 95, 0, 0, 6416, 6417, 3, 33, 16, 0, 6417, 6418, 3, 7, 3, 0, 6418, 6419, 3, 31, 15, 0, 6419, 6420, 3, 15, 7, 0, 6420, 1130, 1, 0, 0, 0, 6421, 6422, 3, 43, 21, 0, 6422, 6423, 3, 37, 18, 0, 6423, 6424, 3, 15, 7, 0, 6424, 6425, 3, 11, 5, 0, 6425, 6426, 3, 23, 11, 0, 6426, 6427, 3, 17, 8, 0, 6427, 6428, 3, 23, 11, 0, 6428, 6429, 3, 11, 5, 0, 6429, 6430, 3, 45, 22, 0, 6430, 6431, 3, 55, 27, 0, 6431, 6432, 3, 37, 18, 0, 6432, 6433, 3, 15, 7, 0, 6433, 1132, 1, 0, 0, 0, 6434, 6435, 3, 43, 21, 0, 6435, 6436, 3, 39, 19, 0, 6436, 6437, 3, 29, 14, 0, 6437, 1134, 1, 0, 0, 0, 6438, 6439, 3, 43, 21, 0, 6439, 6440, 3, 39, 19, 0, 6440, 6441, 3, 29, 14, 0, 6441, 6442, 3, 11, 5, 0, 6442, 6443, 3, 35, 17, 0, 6443, 6444, 3, 13, 6, 0, 6444, 6445, 3, 15, 7, 0, 6445, 1136, 1, 0, 0, 0, 6446, 6447, 3, 43, 21, 0, 6447, 6448, 3, 39, 19, 0, 6448, 6449, 3, 29, 14, 0, 6449, 6450, 3, 15, 7, 0, 6450, 6451, 3, 41, 20, 0, 6451, 6452, 3, 41, 20, 0, 6452, 6453, 3, 35, 17, 0, 6453, 6454, 3, 41, 20, 0, 6454, 1138, 1, 0, 0, 0, 6455, 6456, 3, 43, 21, 0, 6456, 6457, 3, 39, 19, 0, 6457, 6458, 3, 29, 14, 0, 6458, 6459, 3, 15, 7, 0, 6459, 6460, 3, 53, 26, 0, 6460, 6461, 3, 11, 5, 0, 6461, 6462, 3, 15, 7, 0, 6462, 6463, 3, 37, 18, 0, 6463, 6464, 3, 45, 22, 0, 6464, 6465, 3, 23, 11, 0, 6465, 6466, 3, 35, 17, 0, 6466, 6467, 3, 33, 16, 0, 6467, 1140, 1, 0, 0, 0, 6468, 6469, 3, 43, 21, 0, 6469, 6470, 3, 39, 19, 0, 6470, 6471, 3, 29, 14, 0, 6471, 6472, 3, 43, 21, 0, 6472, 6473, 3, 45, 22, 0, 6473, 6474, 3, 7, 3, 0, 6474, 6475, 3, 45, 22, 0, 6475, 6476, 3, 15, 7, 0, 6476, 1142, 1, 0, 0, 0, 6477, 6478, 3, 43, 21, 0, 6478, 6479, 3, 39, 19, 0, 6479, 6480, 3, 29, 14, 0, 6480, 6481, 3, 51, 25, 0, 6481, 6482, 3, 7, 3, 0, 6482, 6483, 3, 41, 20, 0, 6483, 6484, 3, 33, 16, 0, 6484, 6485, 3, 23, 11, 0, 6485, 6486, 3, 33, 16, 0, 6486, 6487, 3, 19, 9, 0, 6487, 1144, 1, 0, 0, 0, 6488, 6489, 3, 43, 21, 0, 6489, 6490, 3, 39, 19, 0, 6490, 6491, 3, 41, 20, 0, 6491, 6492, 3, 45, 22, 0, 6492, 1146, 1, 0, 0, 0, 6493, 6494, 3, 43, 21, 0, 6494, 6495, 3, 45, 22, 0, 6495, 6496, 3, 7, 3, 0, 6496, 6497, 3, 9, 4, 0, 6497, 6498, 3, 29, 14, 0, 6498, 6499, 3, 15, 7, 0, 6499, 1148, 1, 0, 0, 0, 6500, 6501, 3, 43, 21, 0, 6501, 6502, 3, 45, 22, 0, 6502, 6503, 3, 7, 3, 0, 6503, 6504, 3, 41, 20, 0, 6504, 6505, 3, 45, 22, 0, 6505, 1150, 1, 0, 0, 0, 6506, 6507, 3, 43, 21, 0, 6507, 6508, 3, 45, 22, 0, 6508, 6509, 3, 7, 3, 0, 6509, 6510, 3, 45, 22, 0, 6510, 6511, 3, 15, 7, 0, 6511, 1152, 1, 0, 0, 0, 6512, 6513, 3, 43, 21, 0, 6513, 6514, 3, 45, 22, 0, 6514, 6515, 3, 7, 3, 0, 6515, 6516, 3, 45, 22, 0, 6516, 6517, 3, 15, 7, 0, 6517, 6518, 3, 31, 15, 0, 6518, 6519, 3, 15, 7, 0, 6519, 6520, 3, 33, 16, 0, 6520, 6521, 3, 45, 22, 0, 6521, 1154, 1, 0, 0, 0, 6522, 6523, 3, 43, 21, 0, 6523, 6524, 3, 45, 22, 0, 6524, 6525, 3, 7, 3, 0, 6525, 6526, 3, 45, 22, 0, 6526, 6527, 3, 23, 11, 0, 6527, 6528, 3, 11, 5, 0, 6528, 1156, 1, 0, 0, 0, 6529, 6530, 3, 43, 21, 0, 6530, 6531, 3, 45, 22, 0, 6531, 6532, 3, 7, 3, 0, 6532, 6533, 3, 45, 22, 0, 6533, 6534, 3, 23, 11, 0, 6534, 6535, 3, 43, 21, 0, 6535, 6536, 3, 45, 22, 0, 6536, 6537, 3, 23, 11, 0, 6537, 6538, 3, 11, 5, 0, 6538, 6539, 3, 43, 21, 0, 6539, 1158, 1, 0, 0, 0, 6540, 6541, 3, 43, 21, 0, 6541, 6542, 3, 45, 22, 0, 6542, 6543, 3, 13, 6, 0, 6543, 6544, 3, 13, 6, 0, 6544, 6545, 3, 15, 7, 0, 6545, 6546, 3, 49, 24, 0, 6546, 6547, 5, 95, 0, 0, 6547, 6548, 3, 37, 18, 0, 6548, 6549, 3, 35, 17, 0, 6549, 6550, 3, 37, 18, 0, 6550, 1160, 1, 0, 0, 0, 6551, 6552, 3, 43, 21, 0, 6552, 6553, 3, 45, 22, 0, 6553, 6554, 3, 13, 6, 0, 6554, 6555, 3, 13, 6, 0, 6555, 6556, 3, 15, 7, 0, 6556, 6557, 3, 49, 24, 0, 6557, 6558, 5, 95, 0, 0, 6558, 6559, 3, 43, 21, 0, 6559, 6560, 3, 7, 3, 0, 6560, 6561, 3, 31, 15, 0, 6561, 6562, 3, 37, 18, 0, 6562, 1162, 1, 0, 0, 0, 6563, 6564, 3, 43, 21, 0, 6564, 6565, 3, 45, 22, 0, 6565, 6566, 3, 13, 6, 0, 6566, 6567, 3, 23, 11, 0, 6567, 6568, 3, 33, 16, 0, 6568, 1164, 1, 0, 0, 0, 6569, 6570, 3, 43, 21, 0, 6570, 6571, 3, 45, 22, 0, 6571, 6572, 3, 13, 6, 0, 6572, 6573, 3, 35, 17, 0, 6573, 6574, 3, 47, 23, 0, 6574, 6575, 3, 45, 22, 0, 6575, 1166, 1, 0, 0, 0, 6576, 6577, 3, 43, 21, 0, 6577, 6578, 3, 45, 22, 0, 6578, 6579, 3, 35, 17, 0, 6579, 6580, 3, 41, 20, 0, 6580, 6581, 3, 7, 3, 0, 6581, 6582, 3, 19, 9, 0, 6582, 6583, 3, 15, 7, 0, 6583, 1168, 1, 0, 0, 0, 6584, 6585, 3, 43, 21, 0, 6585, 6586, 3, 45, 22, 0, 6586, 6587, 3, 41, 20, 0, 6587, 6588, 3, 23, 11, 0, 6588, 6589, 3, 11, 5, 0, 6589, 6590, 3, 45, 22, 0, 6590, 1170, 1, 0, 0, 0, 6591, 6592, 3, 43, 21, 0, 6592, 6593, 3, 45, 22, 0, 6593, 6594, 3, 41, 20, 0, 6594, 6595, 3, 47, 23, 0, 6595, 6596, 3, 11, 5, 0, 6596, 6597, 3, 45, 22, 0, 6597, 6598, 3, 47, 23, 0, 6598, 6599, 3, 41, 20, 0, 6599, 6600, 3, 15, 7, 0, 6600, 1172, 1, 0, 0, 0, 6601, 6602, 3, 43, 21, 0, 6602, 6603, 3, 45, 22, 0, 6603, 6604, 3, 55, 27, 0, 6604, 6605, 3, 29, 14, 0, 6605, 6606, 3, 15, 7, 0, 6606, 1174, 1, 0, 0, 0, 6607, 6608, 3, 43, 21, 0, 6608, 6609, 3, 47, 23, 0, 6609, 6610, 3, 9, 4, 0, 6610, 6611, 3, 11, 5, 0, 6611, 6612, 3, 29, 14, 0, 6612, 6613, 3, 7, 3, 0, 6613, 6614, 3, 43, 21, 0, 6614, 6615, 3, 43, 21, 0, 6615, 6616, 5, 95, 0, 0, 6616, 6617, 3, 35, 17, 0, 6617, 6618, 3, 41, 20, 0, 6618, 6619, 3, 23, 11, 0, 6619, 6620, 3, 19, 9, 0, 6620, 6621, 3, 23, 11, 0, 6621, 6622, 3, 33, 16, 0, 6622, 1176, 1, 0, 0, 0, 6623, 6624, 3, 43, 21, 0, 6624, 6625, 3, 47, 23, 0, 6625, 6626, 3, 9, 4, 0, 6626, 6627, 3, 29, 14, 0, 6627, 6628, 3, 23, 11, 0, 6628, 6629, 3, 43, 21, 0, 6629, 6630, 3, 45, 22, 0, 6630, 1178, 1, 0, 0, 0, 6631, 6632, 3, 43, 21, 0, 6632, 6633, 3, 47, 23, 0, 6633, 6634, 3, 9, 4, 0, 6634, 6635, 3, 31, 15, 0, 6635, 6636, 3, 47, 23, 0, 6636, 6637, 3, 29, 14, 0, 6637, 6638, 3, 45, 22, 0, 6638, 6639, 3, 23, 11, 0, 6639, 6640, 3, 43, 21, 0, 6640, 6641, 3, 15, 7, 0, 6641, 6642, 3, 45, 22, 0, 6642, 1180, 1, 0, 0, 0, 6643, 6644, 3, 43, 21, 0, 6644, 6645, 3, 47, 23, 0, 6645, 6646, 3, 9, 4, 0, 6646, 6647, 3, 43, 21, 0, 6647, 6648, 3, 11, 5, 0, 6648, 6649, 3, 41, 20, 0, 6649, 6650, 3, 23, 11, 0, 6650, 6651, 3, 37, 18, 0, 6651, 6652, 3, 45, 22, 0, 6652, 6653, 3, 23, 11, 0, 6653, 6654, 3, 35, 17, 0, 6654, 6655, 3, 33, 16, 0, 6655, 1182, 1, 0, 0, 0, 6656, 6657, 3, 43, 21, 0, 6657, 6658, 3, 47, 23, 0, 6658, 6659, 3, 9, 4, 0, 6659, 6660, 3, 43, 21, 0, 6660, 6661, 3, 45, 22, 0, 6661, 6662, 3, 41, 20, 0, 6662, 6663, 3, 23, 11, 0, 6663, 6664, 3, 33, 16, 0, 6664, 6665, 3, 19, 9, 0, 6665, 1184, 1, 0, 0, 0, 6666, 6667, 3, 43, 21, 0, 6667, 6668, 3, 47, 23, 0, 6668, 6669, 3, 31, 15, 0, 6669, 1186, 1, 0, 0, 0, 6670, 6671, 3, 43, 21, 0, 6671, 6672, 3, 55, 27, 0, 6672, 6673, 3, 31, 15, 0, 6673, 6674, 3, 31, 15, 0, 6674, 6675, 3, 15, 7, 0, 6675, 6676, 3, 45, 22, 0, 6676, 6677, 3, 41, 20, 0, 6677, 6678, 3, 23, 11, 0, 6678, 6679, 3, 11, 5, 0, 6679, 1188, 1, 0, 0, 0, 6680, 6681, 3, 43, 21, 0, 6681, 6682, 3, 55, 27, 0, 6682, 6683, 3, 43, 21, 0, 6683, 6684, 3, 23, 11, 0, 6684, 6685, 3, 13, 6, 0, 6685, 1190, 1, 0, 0, 0, 6686, 6687, 3, 43, 21, 0, 6687, 6688, 3, 55, 27, 0, 6688, 6689, 3, 43, 21, 0, 6689, 6690, 3, 45, 22, 0, 6690, 6691, 3, 15, 7, 0, 6691, 6692, 3, 31, 15, 0, 6692, 1192, 1, 0, 0, 0, 6693, 6694, 3, 43, 21, 0, 6694, 6695, 3, 55, 27, 0, 6695, 6696, 3, 43, 21, 0, 6696, 6697, 3, 45, 22, 0, 6697, 6698, 3, 15, 7, 0, 6698, 6699, 3, 31, 15, 0, 6699, 6700, 5, 95, 0, 0, 6700, 6701, 3, 47, 23, 0, 6701, 6702, 3, 43, 21, 0, 6702, 6703, 3, 15, 7, 0, 6703, 6704, 3, 41, 20, 0, 6704, 1194, 1, 0, 0, 0, 6705, 6706, 3, 45, 22, 0, 6706, 6707, 3, 7, 3, 0, 6707, 6708, 3, 9, 4, 0, 6708, 6709, 3, 29, 14, 0, 6709, 6710, 3, 15, 7, 0, 6710, 1196, 1, 0, 0, 0, 6711, 6712, 3, 45, 22, 0, 6712, 6713, 3, 7, 3, 0, 6713, 6714, 3, 9, 4, 0, 6714, 6715, 3, 29, 14, 0, 6715, 6716, 3, 15, 7, 0, 6716, 6717, 5, 95, 0, 0, 6717, 6718, 3, 33, 16, 0, 6718, 6719, 3, 7, 3, 0, 6719, 6720, 3, 31, 15, 0, 6720, 6721, 3, 15, 7, 0, 6721, 1198, 1, 0, 0, 0, 6722, 6723, 3, 45, 22, 0, 6723, 6724, 3, 7, 3, 0, 6724, 6725, 3, 9, 4, 0, 6725, 6726, 3, 29, 14, 0, 6726, 6727, 3, 15, 7, 0, 6727, 6728, 3, 43, 21, 0, 6728, 6729, 3, 7, 3, 0, 6729, 6730, 3, 31, 15, 0, 6730, 6731, 3, 37, 18, 0, 6731, 6732, 3, 29, 14, 0, 6732, 6733, 3, 15, 7, 0, 6733, 1200, 1, 0, 0, 0, 6734, 6735, 3, 45, 22, 0, 6735, 6736, 3, 7, 3, 0, 6736, 6737, 3, 9, 4, 0, 6737, 6738, 3, 29, 14, 0, 6738, 6739, 3, 15, 7, 0, 6739, 6740, 3, 43, 21, 0, 6740, 6741, 3, 37, 18, 0, 6741, 6742, 3, 7, 3, 0, 6742, 6743, 3, 11, 5, 0, 6743, 6744, 3, 15, 7, 0, 6744, 1202, 1, 0, 0, 0, 6745, 6746, 3, 45, 22, 0, 6746, 6747, 3, 15, 7, 0, 6747, 6748, 3, 31, 15, 0, 6748, 6749, 3, 37, 18, 0, 6749, 1204, 1, 0, 0, 0, 6750, 6751, 3, 45, 22, 0, 6751, 6752, 3, 15, 7, 0, 6752, 6753, 3, 31, 15, 0, 6753, 6754, 3, 37, 18, 0, 6754, 6755, 3, 29, 14, 0, 6755, 6756, 3, 7, 3, 0, 6756, 6757, 3, 45, 22, 0, 6757, 6758, 3, 15, 7, 0, 6758, 1206, 1, 0, 0, 0, 6759, 6760, 3, 45, 22, 0, 6760, 6761, 3, 15, 7, 0, 6761, 6762, 3, 31, 15, 0, 6762, 6763, 3, 37, 18, 0, 6763, 6764, 3, 35, 17, 0, 6764, 6765, 3, 41, 20, 0, 6765, 6766, 3, 7, 3, 0, 6766, 6767, 3, 41, 20, 0, 6767, 6768, 3, 55, 27, 0, 6768, 1208, 1, 0, 0, 0, 6769, 6770, 3, 45, 22, 0, 6770, 6771, 3, 15, 7, 0, 6771, 6772, 3, 41, 20, 0, 6772, 6773, 3, 31, 15, 0, 6773, 6774, 3, 23, 11, 0, 6774, 6775, 3, 33, 16, 0, 6775, 6776, 3, 7, 3, 0, 6776, 6777, 3, 45, 22, 0, 6777, 6778, 3, 15, 7, 0, 6778, 1210, 1, 0, 0, 0, 6779, 6780, 3, 45, 22, 0, 6780, 6781, 3, 21, 10, 0, 6781, 6782, 3, 7, 3, 0, 6782, 6783, 3, 33, 16, 0, 6783, 1212, 1, 0, 0, 0, 6784, 6785, 3, 45, 22, 0, 6785, 6786, 3, 21, 10, 0, 6786, 6787, 3, 15, 7, 0, 6787, 6788, 3, 33, 16, 0, 6788, 1214, 1, 0, 0, 0, 6789, 6790, 3, 45, 22, 0, 6790, 6791, 3, 23, 11, 0, 6791, 6792, 3, 15, 7, 0, 6792, 6793, 3, 43, 21, 0, 6793, 1216, 1, 0, 0, 0, 6794, 6795, 3, 45, 22, 0, 6795, 6796, 3, 23, 11, 0, 6796, 6797, 3, 31, 15, 0, 6797, 6798, 3, 15, 7, 0, 6798, 1218, 1, 0, 0, 0, 6799, 6800, 3, 45, 22, 0, 6800, 6801, 3, 23, 11, 0, 6801, 6802, 3, 31, 15, 0, 6802, 6803, 3, 15, 7, 0, 6803, 6804, 3, 43, 21, 0, 6804, 6805, 3, 45, 22, 0, 6805, 6806, 3, 7, 3, 0, 6806, 6807, 3, 31, 15, 0, 6807, 6808, 3, 37, 18, 0, 6808, 1220, 1, 0, 0, 0, 6809, 6810, 3, 45, 22, 0, 6810, 6811, 3, 23, 11, 0, 6811, 6812, 3, 31, 15, 0, 6812, 6813, 3, 15, 7, 0, 6813, 6814, 3, 57, 28, 0, 6814, 6815, 3, 35, 17, 0, 6815, 6816, 3, 33, 16, 0, 6816, 6817, 3, 15, 7, 0, 6817, 6818, 5, 95, 0, 0, 6818, 6819, 3, 21, 10, 0, 6819, 6820, 3, 35, 17, 0, 6820, 6821, 3, 47, 23, 0, 6821, 6822, 3, 41, 20, 0, 6822, 1222, 1, 0, 0, 0, 6823, 6824, 3, 45, 22, 0, 6824, 6825, 3, 23, 11, 0, 6825, 6826, 3, 31, 15, 0, 6826, 6827, 3, 15, 7, 0, 6827, 6828, 3, 57, 28, 0, 6828, 6829, 3, 35, 17, 0, 6829, 6830, 3, 33, 16, 0, 6830, 6831, 3, 15, 7, 0, 6831, 6832, 5, 95, 0, 0, 6832, 6833, 3, 31, 15, 0, 6833, 6834, 3, 23, 11, 0, 6834, 6835, 3, 33, 16, 0, 6835, 6836, 3, 47, 23, 0, 6836, 6837, 3, 45, 22, 0, 6837, 6838, 3, 15, 7, 0, 6838, 1224, 1, 0, 0, 0, 6839, 6840, 3, 45, 22, 0, 6840, 6841, 3, 23, 11, 0, 6841, 6842, 3, 31, 15, 0, 6842, 6843, 3, 23, 11, 0, 6843, 6844, 3, 33, 16, 0, 6844, 6845, 3, 19, 9, 0, 6845, 1226, 1, 0, 0, 0, 6846, 6847, 3, 45, 22, 0, 6847, 6848, 3, 35, 17, 0, 6848, 1228, 1, 0, 0, 0, 6849, 6850, 3, 45, 22, 0, 6850, 6851, 3, 35, 17, 0, 6851, 6852, 3, 7, 3, 0, 6852, 6853, 3, 43, 21, 0, 6853, 6854, 3, 45, 22, 0, 6854, 1230, 1, 0, 0, 0, 6855, 6856, 3, 45, 22, 0, 6856, 6857, 3, 35, 17, 0, 6857, 6858, 3, 37, 18, 0, 6858, 6859, 5, 95, 0, 0, 6859, 6860, 3, 29, 14, 0, 6860, 6861, 3, 15, 7, 0, 6861, 6862, 3, 49, 24, 0, 6862, 6863, 3, 15, 7, 0, 6863, 6864, 3, 29, 14, 0, 6864, 6865, 5, 95, 0, 0, 6865, 6866, 3, 11, 5, 0, 6866, 6867, 3, 35, 17, 0, 6867, 6868, 3, 47, 23, 0, 6868, 6869, 3, 33, 16, 0, 6869, 6870, 3, 45, 22, 0, 6870, 1232, 1, 0, 0, 0, 6871, 6872, 3, 45, 22, 0, 6872, 6873, 3, 41, 20, 0, 6873, 6874, 3, 7, 3, 0, 6874, 6875, 3, 23, 11, 0, 6875, 6876, 3, 29, 14, 0, 6876, 6877, 3, 23, 11, 0, 6877, 6878, 3, 33, 16, 0, 6878, 6879, 3, 19, 9, 0, 6879, 1234, 1, 0, 0, 0, 6880, 6881, 3, 45, 22, 0, 6881, 6882, 3, 41, 20, 0, 6882, 6883, 3, 7, 3, 0, 6883, 6884, 3, 33, 16, 0, 6884, 6885, 3, 43, 21, 0, 6885, 6886, 3, 7, 3, 0, 6886, 6887, 3, 11, 5, 0, 6887, 6888, 3, 45, 22, 0, 6888, 6889, 3, 23, 11, 0, 6889, 6890, 3, 35, 17, 0, 6890, 6891, 3, 33, 16, 0, 6891, 1236, 1, 0, 0, 0, 6892, 6893, 3, 45, 22, 0, 6893, 6894, 3, 41, 20, 0, 6894, 6895, 3, 7, 3, 0, 6895, 6896, 3, 33, 16, 0, 6896, 6897, 3, 43, 21, 0, 6897, 6898, 3, 7, 3, 0, 6898, 6899, 3, 11, 5, 0, 6899, 6900, 3, 45, 22, 0, 6900, 6901, 3, 23, 11, 0, 6901, 6902, 3, 35, 17, 0, 6902, 6903, 3, 33, 16, 0, 6903, 6904, 5, 95, 0, 0, 6904, 6905, 3, 7, 3, 0, 6905, 6906, 3, 11, 5, 0, 6906, 6907, 3, 45, 22, 0, 6907, 6908, 3, 23, 11, 0, 6908, 6909, 3, 49, 24, 0, 6909, 6910, 3, 15, 7, 0, 6910, 1238, 1, 0, 0, 0, 6911, 6912, 3, 45, 22, 0, 6912, 6913, 3, 41, 20, 0, 6913, 6914, 3, 7, 3, 0, 6914, 6915, 3, 33, 16, 0, 6915, 6916, 3, 43, 21, 0, 6916, 6917, 3, 7, 3, 0, 6917, 6918, 3, 11, 5, 0, 6918, 6919, 3, 45, 22, 0, 6919, 6920, 3, 23, 11, 0, 6920, 6921, 3, 35, 17, 0, 6921, 6922, 3, 33, 16, 0, 6922, 6923, 3, 43, 21, 0, 6923, 6924, 5, 95, 0, 0, 6924, 6925, 3, 11, 5, 0, 6925, 6926, 3, 35, 17, 0, 6926, 6927, 3, 31, 15, 0, 6927, 6928, 3, 31, 15, 0, 6928, 6929, 3, 23, 11, 0, 6929, 6930, 3, 45, 22, 0, 6930, 6931, 3, 45, 22, 0, 6931, 6932, 3, 15, 7, 0, 6932, 6933, 3, 13, 6, 0, 6933, 1240, 1, 0, 0, 0, 6934, 6935, 3, 45, 22, 0, 6935, 6936, 3, 41, 20, 0, 6936, 6937, 3, 7, 3, 0, 6937, 6938, 3, 33, 16, 0, 6938, 6939, 3, 43, 21, 0, 6939, 6940, 3, 7, 3, 0, 6940, 6941, 3, 11, 5, 0, 6941, 6942, 3, 45, 22, 0, 6942, 6943, 3, 23, 11, 0, 6943, 6944, 3, 35, 17, 0, 6944, 6945, 3, 33, 16, 0, 6945, 6946, 3, 43, 21, 0, 6946, 6947, 5, 95, 0, 0, 6947, 6948, 3, 41, 20, 0, 6948, 6949, 3, 35, 17, 0, 6949, 6950, 3, 29, 14, 0, 6950, 6951, 3, 29, 14, 0, 6951, 6952, 3, 15, 7, 0, 6952, 6953, 3, 13, 6, 0, 6953, 6954, 5, 95, 0, 0, 6954, 6955, 3, 9, 4, 0, 6955, 6956, 3, 7, 3, 0, 6956, 6957, 3, 11, 5, 0, 6957, 6958, 3, 27, 13, 0, 6958, 1242, 1, 0, 0, 0, 6959, 6960, 3, 45, 22, 0, 6960, 6961, 3, 41, 20, 0, 6961, 6962, 3, 7, 3, 0, 6962, 6963, 3, 33, 16, 0, 6963, 6964, 3, 43, 21, 0, 6964, 6965, 3, 17, 8, 0, 6965, 6966, 3, 35, 17, 0, 6966, 6967, 3, 41, 20, 0, 6967, 6968, 3, 31, 15, 0, 6968, 1244, 1, 0, 0, 0, 6969, 6970, 3, 45, 22, 0, 6970, 6971, 3, 41, 20, 0, 6971, 6972, 3, 7, 3, 0, 6972, 6973, 3, 33, 16, 0, 6973, 6974, 3, 43, 21, 0, 6974, 6975, 3, 17, 8, 0, 6975, 6976, 3, 35, 17, 0, 6976, 6977, 3, 41, 20, 0, 6977, 6978, 3, 31, 15, 0, 6978, 6979, 3, 43, 21, 0, 6979, 1246, 1, 0, 0, 0, 6980, 6981, 3, 45, 22, 0, 6981, 6982, 3, 41, 20, 0, 6982, 6983, 3, 7, 3, 0, 6983, 6984, 3, 33, 16, 0, 6984, 6985, 3, 43, 21, 0, 6985, 6986, 3, 29, 14, 0, 6986, 6987, 3, 7, 3, 0, 6987, 6988, 3, 45, 22, 0, 6988, 6989, 3, 15, 7, 0, 6989, 1248, 1, 0, 0, 0, 6990, 6991, 3, 45, 22, 0, 6991, 6992, 3, 41, 20, 0, 6992, 6993, 3, 7, 3, 0, 6993, 6994, 3, 33, 16, 0, 6994, 6995, 3, 43, 21, 0, 6995, 6996, 3, 29, 14, 0, 6996, 6997, 3, 7, 3, 0, 6997, 6998, 3, 45, 22, 0, 6998, 6999, 3, 23, 11, 0, 6999, 7000, 3, 35, 17, 0, 7000, 7001, 3, 33, 16, 0, 7001, 1250, 1, 0, 0, 0, 7002, 7003, 3, 45, 22, 0, 7003, 7004, 3, 41, 20, 0, 7004, 7005, 3, 15, 7, 0, 7005, 7006, 3, 7, 3, 0, 7006, 7007, 3, 45, 22, 0, 7007, 1252, 1, 0, 0, 0, 7008, 7009, 3, 45, 22, 0, 7009, 7010, 3, 41, 20, 0, 7010, 7011, 3, 23, 11, 0, 7011, 7012, 3, 19, 9, 0, 7012, 7013, 3, 19, 9, 0, 7013, 7014, 3, 15, 7, 0, 7014, 7015, 3, 41, 20, 0, 7015, 1254, 1, 0, 0, 0, 7016, 7017, 3, 45, 22, 0, 7017, 7018, 3, 41, 20, 0, 7018, 7019, 3, 23, 11, 0, 7019, 7020, 3, 19, 9, 0, 7020, 7021, 3, 19, 9, 0, 7021, 7022, 3, 15, 7, 0, 7022, 7023, 3, 41, 20, 0, 7023, 7024, 5, 95, 0, 0, 7024, 7025, 3, 11, 5, 0, 7025, 7026, 3, 7, 3, 0, 7026, 7027, 3, 45, 22, 0, 7027, 7028, 3, 7, 3, 0, 7028, 7029, 3, 29, 14, 0, 7029, 7030, 3, 35, 17, 0, 7030, 7031, 3, 19, 9, 0, 7031, 1256, 1, 0, 0, 0, 7032, 7033, 3, 45, 22, 0, 7033, 7034, 3, 41, 20, 0, 7034, 7035, 3, 23, 11, 0, 7035, 7036, 3, 19, 9, 0, 7036, 7037, 3, 19, 9, 0, 7037, 7038, 3, 15, 7, 0, 7038, 7039, 3, 41, 20, 0, 7039, 7040, 5, 95, 0, 0, 7040, 7041, 3, 33, 16, 0, 7041, 7042, 3, 7, 3, 0, 7042, 7043, 3, 31, 15, 0, 7043, 7044, 3, 15, 7, 0, 7044, 1258, 1, 0, 0, 0, 7045, 7046, 3, 45, 22, 0, 7046, 7047, 3, 41, 20, 0, 7047, 7048, 3, 23, 11, 0, 7048, 7049, 3, 19, 9, 0, 7049, 7050, 3, 19, 9, 0, 7050, 7051, 3, 15, 7, 0, 7051, 7052, 3, 41, 20, 0, 7052, 7053, 5, 95, 0, 0, 7053, 7054, 3, 43, 21, 0, 7054, 7055, 3, 11, 5, 0, 7055, 7056, 3, 21, 10, 0, 7056, 7057, 3, 15, 7, 0, 7057, 7058, 3, 31, 15, 0, 7058, 7059, 3, 7, 3, 0, 7059, 1260, 1, 0, 0, 0, 7060, 7061, 3, 45, 22, 0, 7061, 7062, 3, 41, 20, 0, 7062, 7063, 3, 23, 11, 0, 7063, 7064, 3, 31, 15, 0, 7064, 1262, 1, 0, 0, 0, 7065, 7066, 3, 45, 22, 0, 7066, 7067, 3, 41, 20, 0, 7067, 7068, 3, 47, 23, 0, 7068, 7069, 3, 15, 7, 0, 7069, 1264, 1, 0, 0, 0, 7070, 7071, 3, 45, 22, 0, 7071, 7072, 3, 41, 20, 0, 7072, 7073, 3, 47, 23, 0, 7073, 7074, 3, 33, 16, 0, 7074, 7075, 3, 11, 5, 0, 7075, 7076, 3, 7, 3, 0, 7076, 7077, 3, 45, 22, 0, 7077, 7078, 3, 15, 7, 0, 7078, 1266, 1, 0, 0, 0, 7079, 7080, 3, 45, 22, 0, 7080, 7081, 3, 41, 20, 0, 7081, 7082, 3, 47, 23, 0, 7082, 7083, 3, 43, 21, 0, 7083, 7084, 3, 45, 22, 0, 7084, 7085, 3, 15, 7, 0, 7085, 7086, 3, 13, 6, 0, 7086, 1268, 1, 0, 0, 0, 7087, 7088, 3, 45, 22, 0, 7088, 7089, 3, 55, 27, 0, 7089, 7090, 3, 37, 18, 0, 7090, 7091, 3, 15, 7, 0, 7091, 1270, 1, 0, 0, 0, 7092, 7093, 3, 47, 23, 0, 7093, 7094, 3, 15, 7, 0, 7094, 7095, 3, 43, 21, 0, 7095, 7096, 3, 11, 5, 0, 7096, 7097, 3, 7, 3, 0, 7097, 7098, 3, 37, 18, 0, 7098, 7099, 3, 15, 7, 0, 7099, 1272, 1, 0, 0, 0, 7100, 7101, 3, 47, 23, 0, 7101, 7102, 3, 33, 16, 0, 7102, 7103, 3, 9, 4, 0, 7103, 7104, 3, 35, 17, 0, 7104, 7105, 3, 47, 23, 0, 7105, 7106, 3, 33, 16, 0, 7106, 7107, 3, 13, 6, 0, 7107, 7108, 3, 15, 7, 0, 7108, 7109, 3, 13, 6, 0, 7109, 1274, 1, 0, 0, 0, 7110, 7111, 3, 47, 23, 0, 7111, 7112, 3, 33, 16, 0, 7112, 7113, 3, 11, 5, 0, 7113, 7114, 3, 35, 17, 0, 7114, 7115, 3, 31, 15, 0, 7115, 7116, 3, 31, 15, 0, 7116, 7117, 3, 23, 11, 0, 7117, 7118, 3, 45, 22, 0, 7118, 7119, 3, 45, 22, 0, 7119, 7120, 3, 15, 7, 0, 7120, 7121, 3, 13, 6, 0, 7121, 1276, 1, 0, 0, 0, 7122, 7123, 3, 47, 23, 0, 7123, 7124, 3, 33, 16, 0, 7124, 7125, 3, 13, 6, 0, 7125, 7126, 3, 15, 7, 0, 7126, 7127, 3, 41, 20, 0, 7127, 1278, 1, 0, 0, 0, 7128, 7129, 3, 47, 23, 0, 7129, 7130, 3, 33, 16, 0, 7130, 7131, 3, 15, 7, 0, 7131, 7132, 3, 33, 16, 0, 7132, 7133, 3, 11, 5, 0, 7133, 7134, 3, 41, 20, 0, 7134, 7135, 3, 55, 27, 0, 7135, 7136, 3, 37, 18, 0, 7136, 7137, 3, 45, 22, 0, 7137, 7138, 3, 15, 7, 0, 7138, 7139, 3, 13, 6, 0, 7139, 1280, 1, 0, 0, 0, 7140, 7141, 3, 47, 23, 0, 7141, 7142, 3, 33, 16, 0, 7142, 7143, 3, 23, 11, 0, 7143, 7144, 3, 35, 17, 0, 7144, 7145, 3, 33, 16, 0, 7145, 1282, 1, 0, 0, 0, 7146, 7147, 3, 47, 23, 0, 7147, 7148, 3, 33, 16, 0, 7148, 7149, 3, 23, 11, 0, 7149, 7150, 3, 39, 19, 0, 7150, 7151, 3, 47, 23, 0, 7151, 7152, 3, 15, 7, 0, 7152, 1284, 1, 0, 0, 0, 7153, 7154, 3, 47, 23, 0, 7154, 7155, 3, 33, 16, 0, 7155, 7156, 3, 27, 13, 0, 7156, 7157, 3, 33, 16, 0, 7157, 7158, 3, 35, 17, 0, 7158, 7159, 3, 51, 25, 0, 7159, 7160, 3, 33, 16, 0, 7160, 1286, 1, 0, 0, 0, 7161, 7162, 3, 47, 23, 0, 7162, 7163, 3, 33, 16, 0, 7163, 7164, 3, 29, 14, 0, 7164, 7165, 3, 23, 11, 0, 7165, 7166, 3, 43, 21, 0, 7166, 7167, 3, 45, 22, 0, 7167, 7168, 3, 15, 7, 0, 7168, 7169, 3, 33, 16, 0, 7169, 1288, 1, 0, 0, 0, 7170, 7171, 3, 47, 23, 0, 7171, 7172, 3, 33, 16, 0, 7172, 7173, 3, 33, 16, 0, 7173, 7174, 3, 7, 3, 0, 7174, 7175, 3, 31, 15, 0, 7175, 7176, 3, 15, 7, 0, 7176, 7177, 3, 13, 6, 0, 7177, 1290, 1, 0, 0, 0, 7178, 7179, 3, 47, 23, 0, 7179, 7180, 3, 33, 16, 0, 7180, 7181, 3, 33, 16, 0, 7181, 7182, 3, 15, 7, 0, 7182, 7183, 3, 43, 21, 0, 7183, 7184, 3, 45, 22, 0, 7184, 1292, 1, 0, 0, 0, 7185, 7186, 3, 47, 23, 0, 7186, 7187, 3, 33, 16, 0, 7187, 7188, 3, 45, 22, 0, 7188, 7189, 3, 23, 11, 0, 7189, 7190, 3, 29, 14, 0, 7190, 1294, 1, 0, 0, 0, 7191, 7192, 3, 47, 23, 0, 7192, 7193, 3, 37, 18, 0, 7193, 7194, 3, 13, 6, 0, 7194, 7195, 3, 7, 3, 0, 7195, 7196, 3, 45, 22, 0, 7196, 7197, 3, 15, 7, 0, 7197, 1296, 1, 0, 0, 0, 7198, 7199, 3, 47, 23, 0, 7199, 7200, 3, 37, 18, 0, 7200, 7201, 3, 37, 18, 0, 7201, 7202, 3, 15, 7, 0, 7202, 7203, 3, 41, 20, 0, 7203, 1298, 1, 0, 0, 0, 7204, 7205, 3, 47, 23, 0, 7205, 7206, 3, 43, 21, 0, 7206, 7207, 3, 7, 3, 0, 7207, 7208, 3, 19, 9, 0, 7208, 7209, 3, 15, 7, 0, 7209, 1300, 1, 0, 0, 0, 7210, 7211, 3, 47, 23, 0, 7211, 7212, 3, 43, 21, 0, 7212, 7213, 3, 15, 7, 0, 7213, 7214, 3, 41, 20, 0, 7214, 1302, 1, 0, 0, 0, 7215, 7216, 3, 47, 23, 0, 7216, 7217, 3, 43, 21, 0, 7217, 7218, 3, 15, 7, 0, 7218, 7219, 3, 41, 20, 0, 7219, 7220, 5, 95, 0, 0, 7220, 7221, 3, 13, 6, 0, 7221, 7222, 3, 15, 7, 0, 7222, 7223, 3, 17, 8, 0, 7223, 7224, 3, 23, 11, 0, 7224, 7225, 3, 33, 16, 0, 7225, 7226, 3, 15, 7, 0, 7226, 7227, 3, 13, 6, 0, 7227, 7228, 5, 95, 0, 0, 7228, 7229, 3, 45, 22, 0, 7229, 7230, 3, 55, 27, 0, 7230, 7231, 3, 37, 18, 0, 7231, 7232, 3, 15, 7, 0, 7232, 7233, 5, 95, 0, 0, 7233, 7234, 3, 11, 5, 0, 7234, 7235, 3, 7, 3, 0, 7235, 7236, 3, 45, 22, 0, 7236, 7237, 3, 7, 3, 0, 7237, 7238, 3, 29, 14, 0, 7238, 7239, 3, 35, 17, 0, 7239, 7240, 3, 19, 9, 0, 7240, 1304, 1, 0, 0, 0, 7241, 7242, 3, 47, 23, 0, 7242, 7243, 3, 43, 21, 0, 7243, 7244, 3, 15, 7, 0, 7244, 7245, 3, 41, 20, 0, 7245, 7246, 5, 95, 0, 0, 7246, 7247, 3, 13, 6, 0, 7247, 7248, 3, 15, 7, 0, 7248, 7249, 3, 17, 8, 0, 7249, 7250, 3, 23, 11, 0, 7250, 7251, 3, 33, 16, 0, 7251, 7252, 3, 15, 7, 0, 7252, 7253, 3, 13, 6, 0, 7253, 7254, 5, 95, 0, 0, 7254, 7255, 3, 45, 22, 0, 7255, 7256, 3, 55, 27, 0, 7256, 7257, 3, 37, 18, 0, 7257, 7258, 3, 15, 7, 0, 7258, 7259, 5, 95, 0, 0, 7259, 7260, 3, 11, 5, 0, 7260, 7261, 3, 35, 17, 0, 7261, 7262, 3, 13, 6, 0, 7262, 7263, 3, 15, 7, 0, 7263, 1306, 1, 0, 0, 0, 7264, 7265, 3, 47, 23, 0, 7265, 7266, 3, 43, 21, 0, 7266, 7267, 3, 15, 7, 0, 7267, 7268, 3, 41, 20, 0, 7268, 7269, 5, 95, 0, 0, 7269, 7270, 3, 13, 6, 0, 7270, 7271, 3, 15, 7, 0, 7271, 7272, 3, 17, 8, 0, 7272, 7273, 3, 23, 11, 0, 7273, 7274, 3, 33, 16, 0, 7274, 7275, 3, 15, 7, 0, 7275, 7276, 3, 13, 6, 0, 7276, 7277, 5, 95, 0, 0, 7277, 7278, 3, 45, 22, 0, 7278, 7279, 3, 55, 27, 0, 7279, 7280, 3, 37, 18, 0, 7280, 7281, 3, 15, 7, 0, 7281, 7282, 5, 95, 0, 0, 7282, 7283, 3, 33, 16, 0, 7283, 7284, 3, 7, 3, 0, 7284, 7285, 3, 31, 15, 0, 7285, 7286, 3, 15, 7, 0, 7286, 1308, 1, 0, 0, 0, 7287, 7288, 3, 47, 23, 0, 7288, 7289, 3, 43, 21, 0, 7289, 7290, 3, 15, 7, 0, 7290, 7291, 3, 41, 20, 0, 7291, 7292, 5, 95, 0, 0, 7292, 7293, 3, 13, 6, 0, 7293, 7294, 3, 15, 7, 0, 7294, 7295, 3, 17, 8, 0, 7295, 7296, 3, 23, 11, 0, 7296, 7297, 3, 33, 16, 0, 7297, 7298, 3, 15, 7, 0, 7298, 7299, 3, 13, 6, 0, 7299, 7300, 5, 95, 0, 0, 7300, 7301, 3, 45, 22, 0, 7301, 7302, 3, 55, 27, 0, 7302, 7303, 3, 37, 18, 0, 7303, 7304, 3, 15, 7, 0, 7304, 7305, 5, 95, 0, 0, 7305, 7306, 3, 43, 21, 0, 7306, 7307, 3, 11, 5, 0, 7307, 7308, 3, 21, 10, 0, 7308, 7309, 3, 15, 7, 0, 7309, 7310, 3, 31, 15, 0, 7310, 7311, 3, 7, 3, 0, 7311, 1310, 1, 0, 0, 0, 7312, 7313, 3, 47, 23, 0, 7313, 7314, 3, 43, 21, 0, 7314, 7315, 3, 23, 11, 0, 7315, 7316, 3, 33, 16, 0, 7316, 7317, 3, 19, 9, 0, 7317, 1312, 1, 0, 0, 0, 7318, 7319, 3, 49, 24, 0, 7319, 7320, 3, 7, 3, 0, 7320, 7321, 3, 11, 5, 0, 7321, 7322, 3, 47, 23, 0, 7322, 7323, 3, 47, 23, 0, 7323, 7324, 3, 31, 15, 0, 7324, 1314, 1, 0, 0, 0, 7325, 7326, 3, 49, 24, 0, 7326, 7327, 3, 7, 3, 0, 7327, 7328, 3, 29, 14, 0, 7328, 7329, 3, 23, 11, 0, 7329, 7330, 3, 13, 6, 0, 7330, 1316, 1, 0, 0, 0, 7331, 7332, 3, 49, 24, 0, 7332, 7333, 3, 7, 3, 0, 7333, 7334, 3, 29, 14, 0, 7334, 7335, 3, 23, 11, 0, 7335, 7336, 3, 13, 6, 0, 7336, 7337, 3, 7, 3, 0, 7337, 7338, 3, 45, 22, 0, 7338, 7339, 3, 15, 7, 0, 7339, 1318, 1, 0, 0, 0, 7340, 7341, 3, 49, 24, 0, 7341, 7342, 3, 7, 3, 0, 7342, 7343, 3, 29, 14, 0, 7343, 7344, 3, 23, 11, 0, 7344, 7345, 3, 13, 6, 0, 7345, 7346, 3, 7, 3, 0, 7346, 7347, 3, 45, 22, 0, 7347, 7348, 3, 35, 17, 0, 7348, 7349, 3, 41, 20, 0, 7349, 1320, 1, 0, 0, 0, 7350, 7351, 3, 49, 24, 0, 7351, 7352, 3, 7, 3, 0, 7352, 7353, 3, 29, 14, 0, 7353, 7354, 3, 47, 23, 0, 7354, 7355, 3, 15, 7, 0, 7355, 1322, 1, 0, 0, 0, 7356, 7357, 3, 49, 24, 0, 7357, 7358, 3, 7, 3, 0, 7358, 7359, 3, 29, 14, 0, 7359, 7360, 3, 47, 23, 0, 7360, 7361, 3, 15, 7, 0, 7361, 7362, 3, 43, 21, 0, 7362, 1324, 1, 0, 0, 0, 7363, 7364, 3, 49, 24, 0, 7364, 7365, 3, 7, 3, 0, 7365, 7366, 3, 41, 20, 0, 7366, 7367, 5, 95, 0, 0, 7367, 7368, 3, 37, 18, 0, 7368, 7369, 3, 35, 17, 0, 7369, 7370, 3, 37, 18, 0, 7370, 1326, 1, 0, 0, 0, 7371, 7372, 3, 49, 24, 0, 7372, 7373, 3, 7, 3, 0, 7373, 7374, 3, 41, 20, 0, 7374, 7375, 5, 95, 0, 0, 7375, 7376, 3, 43, 21, 0, 7376, 7377, 3, 7, 3, 0, 7377, 7378, 3, 31, 15, 0, 7378, 7379, 3, 37, 18, 0, 7379, 1328, 1, 0, 0, 0, 7380, 7381, 3, 49, 24, 0, 7381, 7382, 3, 7, 3, 0, 7382, 7383, 3, 41, 20, 0, 7383, 7384, 3, 11, 5, 0, 7384, 7385, 3, 21, 10, 0, 7385, 7386, 3, 7, 3, 0, 7386, 7387, 3, 41, 20, 0, 7387, 1330, 1, 0, 0, 0, 7388, 7389, 3, 49, 24, 0, 7389, 7390, 3, 7, 3, 0, 7390, 7391, 3, 41, 20, 0, 7391, 7392, 3, 23, 11, 0, 7392, 7393, 3, 7, 3, 0, 7393, 7394, 3, 9, 4, 0, 7394, 7395, 3, 29, 14, 0, 7395, 7396, 3, 15, 7, 0, 7396, 1332, 1, 0, 0, 0, 7397, 7398, 3, 49, 24, 0, 7398, 7399, 3, 7, 3, 0, 7399, 7400, 3, 41, 20, 0, 7400, 7401, 3, 23, 11, 0, 7401, 7402, 3, 7, 3, 0, 7402, 7403, 3, 13, 6, 0, 7403, 7404, 3, 23, 11, 0, 7404, 7405, 3, 11, 5, 0, 7405, 1334, 1, 0, 0, 0, 7406, 7407, 3, 49, 24, 0, 7407, 7408, 3, 7, 3, 0, 7408, 7409, 3, 41, 20, 0, 7409, 7410, 3, 55, 27, 0, 7410, 7411, 3, 23, 11, 0, 7411, 7412, 3, 33, 16, 0, 7412, 7413, 3, 19, 9, 0, 7413, 1336, 1, 0, 0, 0, 7414, 7415, 3, 49, 24, 0, 7415, 7416, 3, 15, 7, 0, 7416, 7417, 3, 41, 20, 0, 7417, 7418, 3, 9, 4, 0, 7418, 7419, 3, 35, 17, 0, 7419, 7420, 3, 43, 21, 0, 7420, 7421, 3, 15, 7, 0, 7421, 1338, 1, 0, 0, 0, 7422, 7423, 3, 49, 24, 0, 7423, 7424, 3, 23, 11, 0, 7424, 7425, 3, 15, 7, 0, 7425, 7426, 3, 51, 25, 0, 7426, 1340, 1, 0, 0, 0, 7427, 7428, 3, 49, 24, 0, 7428, 7429, 3, 35, 17, 0, 7429, 7430, 3, 29, 14, 0, 7430, 7431, 3, 7, 3, 0, 7431, 7432, 3, 45, 22, 0, 7432, 7433, 3, 23, 11, 0, 7433, 7434, 3, 29, 14, 0, 7434, 7435, 3, 15, 7, 0, 7435, 1342, 1, 0, 0, 0, 7436, 7437, 3, 51, 25, 0, 7437, 7438, 3, 21, 10, 0, 7438, 7439, 3, 15, 7, 0, 7439, 7440, 3, 33, 16, 0, 7440, 1344, 1, 0, 0, 0, 7441, 7442, 3, 51, 25, 0, 7442, 7443, 3, 21, 10, 0, 7443, 7444, 3, 15, 7, 0, 7444, 7445, 3, 33, 16, 0, 7445, 7446, 3, 15, 7, 0, 7446, 7447, 3, 49, 24, 0, 7447, 7448, 3, 15, 7, 0, 7448, 7449, 3, 41, 20, 0, 7449, 1346, 1, 0, 0, 0, 7450, 7451, 3, 51, 25, 0, 7451, 7452, 3, 21, 10, 0, 7452, 7453, 3, 15, 7, 0, 7453, 7454, 3, 41, 20, 0, 7454, 7455, 3, 15, 7, 0, 7455, 1348, 1, 0, 0, 0, 7456, 7457, 3, 51, 25, 0, 7457, 7458, 3, 23, 11, 0, 7458, 7459, 3, 13, 6, 0, 7459, 7460, 3, 45, 22, 0, 7460, 7461, 3, 21, 10, 0, 7461, 7462, 5, 95, 0, 0, 7462, 7463, 3, 9, 4, 0, 7463, 7464, 3, 47, 23, 0, 7464, 7465, 3, 11, 5, 0, 7465, 7466, 3, 27, 13, 0, 7466, 7467, 3, 15, 7, 0, 7467, 7468, 3, 45, 22, 0, 7468, 1350, 1, 0, 0, 0, 7469, 7470, 3, 51, 25, 0, 7470, 7471, 3, 23, 11, 0, 7471, 7472, 3, 33, 16, 0, 7472, 7473, 3, 13, 6, 0, 7473, 7474, 3, 35, 17, 0, 7474, 7475, 3, 51, 25, 0, 7475, 1352, 1, 0, 0, 0, 7476, 7477, 3, 51, 25, 0, 7477, 7478, 3, 23, 11, 0, 7478, 7479, 3, 45, 22, 0, 7479, 7480, 3, 21, 10, 0, 7480, 1354, 1, 0, 0, 0, 7481, 7482, 3, 51, 25, 0, 7482, 7483, 3, 23, 11, 0, 7483, 7484, 3, 45, 22, 0, 7484, 7485, 3, 21, 10, 0, 7485, 7486, 3, 23, 11, 0, 7486, 7487, 3, 33, 16, 0, 7487, 1356, 1, 0, 0, 0, 7488, 7489, 3, 51, 25, 0, 7489, 7490, 3, 23, 11, 0, 7490, 7491, 3, 45, 22, 0, 7491, 7492, 3, 21, 10, 0, 7492, 7493, 3, 35, 17, 0, 7493, 7494, 3, 47, 23, 0, 7494, 7495, 3, 45, 22, 0, 7495, 1358, 1, 0, 0, 0, 7496, 7497, 3, 51, 25, 0, 7497, 7498, 3, 35, 17, 0, 7498, 7499, 3, 41, 20, 0, 7499, 7500, 3, 27, 13, 0, 7500, 1360, 1, 0, 0, 0, 7501, 7502, 3, 51, 25, 0, 7502, 7503, 3, 41, 20, 0, 7503, 7504, 3, 23, 11, 0, 7504, 7505, 3, 45, 22, 0, 7505, 7506, 3, 15, 7, 0, 7506, 1362, 1, 0, 0, 0, 7507, 7508, 3, 55, 27, 0, 7508, 7509, 3, 7, 3, 0, 7509, 7510, 3, 31, 15, 0, 7510, 7511, 3, 29, 14, 0, 7511, 1364, 1, 0, 0, 0, 7512, 7513, 3, 55, 27, 0, 7513, 7514, 3, 15, 7, 0, 7514, 7515, 3, 7, 3, 0, 7515, 7516, 3, 41, 20, 0, 7516, 1366, 1, 0, 0, 0, 7517, 7518, 3, 55, 27, 0, 7518, 7519, 3, 15, 7, 0, 7519, 7520, 3, 43, 21, 0, 7520, 1368, 1, 0, 0, 0, 7521, 7522, 3, 57, 28, 0, 7522, 7523, 3, 35, 17, 0, 7523, 7524, 3, 33, 16, 0, 7524, 7525, 3, 15, 7, 0, 7525, 1370, 1, 0, 0, 0, 7526, 7527, 3, 43, 21, 0, 7527, 7528, 3, 47, 23, 0, 7528, 7529, 3, 37, 18, 0, 7529, 7530, 3, 15, 7, 0, 7530, 7531, 3, 41, 20, 0, 7531, 7532, 3, 47, 23, 0, 7532, 7533, 3, 43, 21, 0, 7533, 7534, 3, 15, 7, 0, 7534, 7535, 3, 41, 20, 0, 7535, 1372, 1, 0, 0, 0, 7536, 7537, 3, 33, 16, 0, 7537, 7538, 3, 35, 17, 0, 7538, 7539, 3, 43, 21, 0, 7539, 7540, 3, 47, 23, 0, 7540, 7541, 3, 37, 18, 0, 7541, 7542, 3, 15, 7, 0, 7542, 7543, 3, 41, 20, 0, 7543, 7544, 3, 47, 23, 0, 7544, 7545, 3, 43, 21, 0, 7545, 7546, 3, 15, 7, 0, 7546, 7547, 3, 41, 20, 0, 7547, 1374, 1, 0, 0, 0, 7548, 7549, 3, 11, 5, 0, 7549, 7550, 3, 41, 20, 0, 7550, 7551, 3, 15, 7, 0, 7551, 7552, 3, 7, 3, 0, 7552, 7553, 3, 45, 22, 0, 7553, 7554, 3, 15, 7, 0, 7554, 7555, 3, 41, 20, 0, 7555, 7556, 3, 35, 17, 0, 7556, 7557, 3, 29, 14, 0, 7557, 7558, 3, 15, 7, 0, 7558, 1376, 1, 0, 0, 0, 7559, 7560, 3, 33, 16, 0, 7560, 7561, 3, 35, 17, 0, 7561, 7562, 3, 11, 5, 0, 7562, 7563, 3, 41, 20, 0, 7563, 7564, 3, 15, 7, 0, 7564, 7565, 3, 7, 3, 0, 7565, 7566, 3, 45, 22, 0, 7566, 7567, 3, 15, 7, 0, 7567, 7568, 3, 41, 20, 0, 7568, 7569, 3, 35, 17, 0, 7569, 7570, 3, 29, 14, 0, 7570, 7571, 3, 15, 7, 0, 7571, 1378, 1, 0, 0, 0, 7572, 7573, 3, 23, 11, 0, 7573, 7574, 3, 33, 16, 0, 7574, 7575, 3, 21, 10, 0, 7575, 7576, 3, 15, 7, 0, 7576, 7577, 3, 41, 20, 0, 7577, 7578, 3, 23, 11, 0, 7578, 7579, 3, 45, 22, 0, 7579, 1380, 1, 0, 0, 0, 7580, 7581, 3, 33, 16, 0, 7581, 7582, 3, 35, 17, 0, 7582, 7583, 3, 23, 11, 0, 7583, 7584, 3, 33, 16, 0, 7584, 7585, 3, 21, 10, 0, 7585, 7586, 3, 15, 7, 0, 7586, 7587, 3, 41, 20, 0, 7587, 7588, 3, 23, 11, 0, 7588, 7589, 3, 45, 22, 0, 7589, 1382, 1, 0, 0, 0, 7590, 7591, 3, 29, 14, 0, 7591, 7592, 3, 35, 17, 0, 7592, 7593, 3, 19, 9, 0, 7593, 7594, 3, 23, 11, 0, 7594, 7595, 3, 33, 16, 0, 7595, 1384, 1, 0, 0, 0, 7596, 7597, 3, 33, 16, 0, 7597, 7598, 3, 35, 17, 0, 7598, 7599, 3, 29, 14, 0, 7599, 7600, 3, 35, 17, 0, 7600, 7601, 3, 19, 9, 0, 7601, 7602, 3, 23, 11, 0, 7602, 7603, 3, 33, 16, 0, 7603, 1386, 1, 0, 0, 0, 7604, 7605, 3, 41, 20, 0, 7605, 7606, 3, 15, 7, 0, 7606, 7607, 3, 37, 18, 0, 7607, 7608, 3, 29, 14, 0, 7608, 7609, 3, 23, 11, 0, 7609, 7610, 3, 11, 5, 0, 7610, 7611, 3, 7, 3, 0, 7611, 7612, 3, 45, 22, 0, 7612, 7613, 3, 23, 11, 0, 7613, 7614, 3, 35, 17, 0, 7614, 7615, 3, 33, 16, 0, 7615, 1388, 1, 0, 0, 0, 7616, 7617, 3, 33, 16, 0, 7617, 7618, 3, 35, 17, 0, 7618, 7619, 3, 41, 20, 0, 7619, 7620, 3, 15, 7, 0, 7620, 7621, 3, 37, 18, 0, 7621, 7622, 3, 29, 14, 0, 7622, 7623, 3, 23, 11, 0, 7623, 7624, 3, 11, 5, 0, 7624, 7625, 3, 7, 3, 0, 7625, 7626, 3, 45, 22, 0, 7626, 7627, 3, 23, 11, 0, 7627, 7628, 3, 35, 17, 0, 7628, 7629, 3, 33, 16, 0, 7629, 1390, 1, 0, 0, 0, 7630, 7631, 3, 9, 4, 0, 7631, 7632, 3, 55, 27, 0, 7632, 7633, 3, 37, 18, 0, 7633, 7634, 3, 7, 3, 0, 7634, 7635, 3, 43, 21, 0, 7635, 7636, 3, 43, 21, 0, 7636, 7637, 3, 41, 20, 0, 7637, 7638, 3, 29, 14, 0, 7638, 7639, 3, 43, 21, 0, 7639, 1392, 1, 0, 0, 0, 7640, 7641, 3, 33, 16, 0, 7641, 7642, 3, 35, 17, 0, 7642, 7643, 3, 9, 4, 0, 7643, 7644, 3, 55, 27, 0, 7644, 7645, 3, 37, 18, 0, 7645, 7646, 3, 7, 3, 0, 7646, 7647, 3, 43, 21, 0, 7647, 7648, 3, 43, 21, 0, 7648, 7649, 3, 41, 20, 0, 7649, 7650, 3, 29, 14, 0, 7650, 7651, 3, 43, 21, 0, 7651, 1394, 1, 0, 0, 0, 7652, 7653, 3, 43, 21, 0, 7653, 7654, 3, 17, 8, 0, 7654, 7655, 3, 47, 23, 0, 7655, 7656, 3, 33, 16, 0, 7656, 7657, 3, 11, 5, 0, 7657, 1396, 1, 0, 0, 0, 7658, 7659, 3, 43, 21, 0, 7659, 7660, 3, 45, 22, 0, 7660, 7661, 3, 55, 27, 0, 7661, 7662, 3, 37, 18, 0, 7662, 7663, 3, 15, 7, 0, 7663, 1398, 1, 0, 0, 0, 7664, 7665, 3, 43, 21, 0, 7665, 7666, 3, 43, 21, 0, 7666, 7667, 3, 37, 18, 0, 7667, 7668, 3, 7, 3, 0, 7668, 7669, 3, 11, 5, 0, 7669, 7670, 3, 15, 7, 0, 7670, 1400, 1, 0, 0, 0, 7671, 7672, 3, 17, 8, 0, 7672, 7673, 3, 23, 11, 0, 7673, 7674, 3, 33, 16, 0, 7674, 7675, 3, 7, 3, 0, 7675, 7676, 3, 29, 14, 0, 7676, 7677, 3, 17, 8, 0, 7677, 7678, 3, 47, 23, 0, 7678, 7679, 3, 33, 16, 0, 7679, 7680, 3, 11, 5, 0, 7680, 1402, 1, 0, 0, 0, 7681, 7682, 3, 17, 8, 0, 7682, 7683, 3, 23, 11, 0, 7683, 7684, 3, 33, 16, 0, 7684, 7685, 3, 7, 3, 0, 7685, 7686, 3, 29, 14, 0, 7686, 7687, 3, 17, 8, 0, 7687, 7688, 3, 47, 23, 0, 7688, 7689, 3, 33, 16, 0, 7689, 7690, 3, 11, 5, 0, 7690, 7691, 5, 95, 0, 0, 7691, 7692, 3, 15, 7, 0, 7692, 7693, 3, 53, 26, 0, 7693, 7694, 3, 45, 22, 0, 7694, 7695, 3, 41, 20, 0, 7695, 7696, 3, 7, 3, 0, 7696, 1404, 1, 0, 0, 0, 7697, 7698, 3, 11, 5, 0, 7698, 7699, 3, 35, 17, 0, 7699, 7700, 3, 31, 15, 0, 7700, 7701, 3, 9, 4, 0, 7701, 7702, 3, 23, 11, 0, 7702, 7703, 3, 33, 16, 0, 7703, 7704, 3, 15, 7, 0, 7704, 7705, 3, 17, 8, 0, 7705, 7706, 3, 47, 23, 0, 7706, 7707, 3, 33, 16, 0, 7707, 7708, 3, 11, 5, 0, 7708, 1406, 1, 0, 0, 0, 7709, 7710, 3, 43, 21, 0, 7710, 7711, 3, 15, 7, 0, 7711, 7712, 3, 41, 20, 0, 7712, 7713, 3, 23, 11, 0, 7713, 7714, 3, 7, 3, 0, 7714, 7715, 3, 29, 14, 0, 7715, 7716, 3, 17, 8, 0, 7716, 7717, 3, 47, 23, 0, 7717, 7718, 3, 33, 16, 0, 7718, 7719, 3, 11, 5, 0, 7719, 1408, 1, 0, 0, 0, 7720, 7721, 3, 13, 6, 0, 7721, 7722, 3, 15, 7, 0, 7722, 7723, 3, 43, 21, 0, 7723, 7724, 3, 15, 7, 0, 7724, 7725, 3, 41, 20, 0, 7725, 7726, 3, 23, 11, 0, 7726, 7727, 3, 7, 3, 0, 7727, 7728, 3, 29, 14, 0, 7728, 7729, 3, 17, 8, 0, 7729, 7730, 3, 47, 23, 0, 7730, 7731, 3, 33, 16, 0, 7731, 7732, 3, 11, 5, 0, 7732, 1410, 1, 0, 0, 0, 7733, 7734, 3, 23, 11, 0, 7734, 7735, 3, 33, 16, 0, 7735, 7736, 3, 23, 11, 0, 7736, 7737, 3, 45, 22, 0, 7737, 7738, 3, 11, 5, 0, 7738, 7739, 3, 35, 17, 0, 7739, 7740, 3, 33, 16, 0, 7740, 7741, 3, 13, 6, 0, 7741, 1412, 1, 0, 0, 0, 7742, 7743, 3, 31, 15, 0, 7743, 7744, 3, 43, 21, 0, 7744, 7745, 3, 17, 8, 0, 7745, 7746, 3, 47, 23, 0, 7746, 7747, 3, 33, 16, 0, 7747, 7748, 3, 11, 5, 0, 7748, 1414, 1, 0, 0, 0, 7749, 7750, 3, 31, 15, 0, 7750, 7751, 3, 23, 11, 0, 7751, 7752, 3, 33, 16, 0, 7752, 7753, 3, 49, 24, 0, 7753, 7754, 3, 17, 8, 0, 7754, 7755, 3, 47, 23, 0, 7755, 7756, 3, 33, 16, 0, 7756, 7757, 3, 11, 5, 0, 7757, 1416, 1, 0, 0, 0, 7758, 7759, 3, 31, 15, 0, 7759, 7760, 3, 43, 21, 0, 7760, 7761, 3, 45, 22, 0, 7761, 7762, 3, 55, 27, 0, 7762, 7763, 3, 37, 18, 0, 7763, 7764, 3, 15, 7, 0, 7764, 1418, 1, 0, 0, 0, 7765, 7766, 3, 31, 15, 0, 7766, 7767, 3, 43, 21, 0, 7767, 7768, 3, 43, 21, 0, 7768, 7769, 3, 37, 18, 0, 7769, 7770, 3, 7, 3, 0, 7770, 7771, 3, 11, 5, 0, 7771, 7772, 3, 15, 7, 0, 7772, 1420, 1, 0, 0, 0, 7773, 7774, 3, 31, 15, 0, 7774, 7775, 3, 17, 8, 0, 7775, 7776, 3, 23, 11, 0, 7776, 7777, 3, 33, 16, 0, 7777, 7778, 3, 7, 3, 0, 7778, 7779, 3, 29, 14, 0, 7779, 7780, 3, 17, 8, 0, 7780, 7781, 3, 47, 23, 0, 7781, 7782, 3, 33, 16, 0, 7782, 7783, 3, 11, 5, 0, 7783, 1422, 1, 0, 0, 0, 7784, 7785, 3, 31, 15, 0, 7785, 7786, 3, 17, 8, 0, 7786, 7787, 3, 23, 11, 0, 7787, 7788, 3, 33, 16, 0, 7788, 7789, 3, 7, 3, 0, 7789, 7790, 3, 29, 14, 0, 7790, 7791, 3, 17, 8, 0, 7791, 7792, 3, 47, 23, 0, 7792, 7793, 3, 33, 16, 0, 7793, 7794, 3, 11, 5, 0, 7794, 7795, 5, 95, 0, 0, 7795, 7796, 3, 15, 7, 0, 7796, 7797, 3, 53, 26, 0, 7797, 7798, 3, 45, 22, 0, 7798, 7799, 3, 41, 20, 0, 7799, 7800, 3, 7, 3, 0, 7800, 1424, 1, 0, 0, 0, 7801, 7802, 3, 31, 15, 0, 7802, 7803, 3, 23, 11, 0, 7803, 7804, 3, 33, 16, 0, 7804, 7805, 3, 23, 11, 0, 7805, 7806, 3, 45, 22, 0, 7806, 7807, 3, 11, 5, 0, 7807, 7808, 3, 35, 17, 0, 7808, 7809, 3, 33, 16, 0, 7809, 7810, 3, 13, 6, 0, 7810, 1426, 1, 0, 0, 0, 7811, 7812, 3, 43, 21, 0, 7812, 7813, 3, 35, 17, 0, 7813, 7814, 3, 41, 20, 0, 7814, 7815, 3, 45, 22, 0, 7815, 7816, 3, 35, 17, 0, 7816, 7817, 3, 37, 18, 0, 7817, 1428, 1, 0, 0, 0, 7818, 7819, 3, 37, 18, 0, 7819, 7820, 3, 7, 3, 0, 7820, 7821, 3, 41, 20, 0, 7821, 7822, 3, 7, 3, 0, 7822, 7823, 3, 29, 14, 0, 7823, 7824, 3, 29, 14, 0, 7824, 7825, 3, 15, 7, 0, 7825, 7826, 3, 29, 14, 0, 7826, 1430, 1, 0, 0, 0, 7827, 7828, 3, 21, 10, 0, 7828, 7829, 3, 55, 27, 0, 7829, 7830, 3, 37, 18, 0, 7830, 7831, 3, 35, 17, 0, 7831, 7832, 3, 45, 22, 0, 7832, 7833, 3, 21, 10, 0, 7833, 7834, 3, 15, 7, 0, 7834, 7835, 3, 45, 22, 0, 7835, 7836, 3, 23, 11, 0, 7836, 7837, 3, 11, 5, 0, 7837, 7838, 3, 7, 3, 0, 7838, 7839, 3, 29, 14, 0, 7839, 1432, 1, 0, 0, 0, 7840, 7841, 3, 43, 21, 0, 7841, 7842, 3, 7, 3, 0, 7842, 7843, 3, 17, 8, 0, 7843, 7844, 3, 15, 7, 0, 7844, 1434, 1, 0, 0, 0, 7845, 7846, 3, 47, 23, 0, 7846, 7847, 3, 33, 16, 0, 7847, 7848, 3, 43, 21, 0, 7848, 7849, 3, 7, 3, 0, 7849, 7850, 3, 17, 8, 0, 7850, 7851, 3, 15, 7, 0, 7851, 1436, 1, 0, 0, 0, 7852, 7853, 3, 9, 4, 0, 7853, 7854, 3, 7, 3, 0, 7854, 7855, 3, 43, 21, 0, 7855, 7856, 3, 15, 7, 0, 7856, 7857, 3, 45, 22, 0, 7857, 7858, 3, 55, 27, 0, 7858, 7859, 3, 37, 18, 0, 7859, 7860, 3, 15, 7, 0, 7860, 1438, 1, 0, 0, 0, 7861, 7862, 3, 23, 11, 0, 7862, 7863, 3, 17, 8, 0, 7863, 1440, 1, 0, 0, 0, 7864, 7865, 3, 29, 14, 0, 7865, 7866, 3, 35, 17, 0, 7866, 7867, 3, 11, 5, 0, 7867, 7868, 3, 7, 3, 0, 7868, 7869, 3, 29, 14, 0, 7869, 7870, 3, 15, 7, 0, 7870, 1442, 1, 0, 0, 0, 7871, 7872, 3, 29, 14, 0, 7872, 7873, 3, 11, 5, 0, 7873, 7874, 5, 95, 0, 0, 7874, 7875, 3, 11, 5, 0, 7875, 7876, 3, 35, 17, 0, 7876, 7877, 3, 29, 14, 0, 7877, 7878, 3, 29, 14, 0, 7878, 7879, 3, 7, 3, 0, 7879, 7880, 3, 45, 22, 0, 7880, 7881, 3, 15, 7, 0, 7881, 1444, 1, 0, 0, 0, 7882, 7883, 3, 29, 14, 0, 7883, 7884, 3, 11, 5, 0, 7884, 7885, 5, 95, 0, 0, 7885, 7886, 3, 11, 5, 0, 7886, 7887, 3, 45, 22, 0, 7887, 7888, 3, 55, 27, 0, 7888, 7889, 3, 37, 18, 0, 7889, 7890, 3, 15, 7, 0, 7890, 1446, 1, 0, 0, 0, 7891, 7892, 3, 37, 18, 0, 7892, 7893, 3, 41, 20, 0, 7893, 7894, 3, 35, 17, 0, 7894, 7895, 3, 49, 24, 0, 7895, 7896, 3, 23, 11, 0, 7896, 7897, 3, 13, 6, 0, 7897, 7898, 3, 15, 7, 0, 7898, 7899, 3, 41, 20, 0, 7899, 1448, 1, 0, 0, 0, 7900, 7901, 3, 49, 24, 0, 7901, 7902, 3, 15, 7, 0, 7902, 7903, 3, 41, 20, 0, 7903, 7904, 3, 43, 21, 0, 7904, 7905, 3, 23, 11, 0, 7905, 7906, 3, 35, 17, 0, 7906, 7907, 3, 33, 16, 0, 7907, 1450, 1, 0, 0, 0, 7908, 7909, 3, 7, 3, 0, 7909, 7910, 3, 29, 14, 0, 7910, 7911, 3, 29, 14, 0, 7911, 7912, 3, 35, 17, 0, 7912, 7913, 3, 51, 25, 0, 7913, 7914, 5, 95, 0, 0, 7914, 7915, 3, 11, 5, 0, 7915, 7916, 3, 35, 17, 0, 7916, 7917, 3, 33, 16, 0, 7917, 7918, 3, 33, 16, 0, 7918, 7919, 3, 15, 7, 0, 7919, 7920, 3, 11, 5, 0, 7920, 7921, 3, 45, 22, 0, 7921, 7922, 3, 23, 11, 0, 7922, 7923, 3, 35, 17, 0, 7923, 7924, 3, 33, 16, 0, 7924, 7925, 3, 43, 21, 0, 7925, 1452, 1, 0, 0, 0, 7926, 7927, 3, 23, 11, 0, 7927, 7928, 3, 43, 21, 0, 7928, 7929, 5, 95, 0, 0, 7929, 7930, 3, 45, 22, 0, 7930, 7931, 3, 15, 7, 0, 7931, 7932, 3, 31, 15, 0, 7932, 7933, 3, 37, 18, 0, 7933, 7934, 3, 29, 14, 0, 7934, 7935, 3, 7, 3, 0, 7935, 7936, 3, 45, 22, 0, 7936, 7937, 3, 15, 7, 0, 7937, 1454, 1, 0, 0, 0, 7938, 7939, 3, 15, 7, 0, 7939, 7940, 3, 49, 24, 0, 7940, 7941, 3, 15, 7, 0, 7941, 7942, 3, 33, 16, 0, 7942, 7943, 3, 45, 22, 0, 7943, 1456, 1, 0, 0, 0, 7944, 7945, 3, 51, 25, 0, 7945, 7946, 3, 41, 20, 0, 7946, 7947, 3, 7, 3, 0, 7947, 7948, 3, 37, 18, 0, 7948, 7949, 3, 37, 18, 0, 7949, 7950, 3, 15, 7, 0, 7950, 7951, 3, 41, 20, 0, 7951, 1458, 1, 0, 0, 0, 7952, 7953, 3, 43, 21, 0, 7953, 7954, 3, 15, 7, 0, 7954, 7955, 3, 41, 20, 0, 7955, 7956, 3, 49, 24, 0, 7956, 7957, 3, 15, 7, 0, 7957, 7958, 3, 41, 20, 0, 7958, 1460, 1, 0, 0, 0, 7959, 7960, 3, 9, 4, 0, 7960, 7961, 3, 45, 22, 0, 7961, 7962, 3, 41, 20, 0, 7962, 7963, 3, 15, 7, 0, 7963, 7964, 3, 15, 7, 0, 7964, 1462, 1, 0, 0, 0, 7965, 7966, 3, 21, 10, 0, 7966, 7967, 3, 7, 3, 0, 7967, 7968, 3, 43, 21, 0, 7968, 7969, 3, 21, 10, 0, 7969, 1464, 1, 0, 0, 0, 7970, 7971, 3, 19, 9, 0, 7971, 7972, 3, 23, 11, 0, 7972, 7973, 3, 43, 21, 0, 7973, 7974, 3, 45, 22, 0, 7974, 1466, 1, 0, 0, 0, 7975, 7976, 3, 43, 21, 0, 7976, 7977, 3, 37, 18, 0, 7977, 7978, 3, 19, 9, 0, 7978, 7979, 3, 23, 11, 0, 7979, 7980, 3, 43, 21, 0, 7980, 7981, 3, 45, 22, 0, 7981, 1468, 1, 0, 0, 0, 7982, 7983, 3, 19, 9, 0, 7983, 7984, 3, 23, 11, 0, 7984, 7985, 3, 33, 16, 0, 7985, 1470, 1, 0, 0, 0, 7986, 7987, 3, 9, 4, 0, 7987, 7988, 3, 41, 20, 0, 7988, 7989, 3, 23, 11, 0, 7989, 7990, 3, 33, 16, 0, 7990, 1472, 1, 0, 0, 0, 7991, 7992, 3, 11, 5, 0, 7992, 7993, 3, 35, 17, 0, 7993, 7994, 3, 33, 16, 0, 7994, 7995, 3, 11, 5, 0, 7995, 7996, 3, 47, 23, 0, 7996, 7997, 3, 41, 20, 0, 7997, 7998, 3, 41, 20, 0, 7998, 7999, 3, 15, 7, 0, 7999, 8000, 3, 33, 16, 0, 8000, 8001, 3, 45, 22, 0, 8001, 8002, 3, 29, 14, 0, 8002, 8003, 3, 55, 27, 0, 8003, 1474, 1, 0, 0, 0, 8004, 8005, 3, 23, 11, 0, 8005, 8006, 3, 33, 16, 0, 8006, 8007, 3, 29, 14, 0, 8007, 8008, 3, 23, 11, 0, 8008, 8009, 3, 33, 16, 0, 8009, 8010, 3, 15, 7, 0, 8010, 1476, 1, 0, 0, 0, 8011, 8012, 3, 31, 15, 0, 8012, 8013, 3, 7, 3, 0, 8013, 8014, 3, 45, 22, 0, 8014, 8015, 3, 15, 7, 0, 8015, 8016, 3, 41, 20, 0, 8016, 8017, 3, 23, 11, 0, 8017, 8018, 3, 7, 3, 0, 8018, 8019, 3, 29, 14, 0, 8019, 8020, 3, 23, 11, 0, 8020, 8021, 3, 57, 28, 0, 8021, 8022, 3, 15, 7, 0, 8022, 8023, 3, 13, 6, 0, 8023, 1478, 1, 0, 0, 0, 8024, 8025, 3, 29, 14, 0, 8025, 8026, 3, 15, 7, 0, 8026, 8027, 3, 17, 8, 0, 8027, 8028, 3, 45, 22, 0, 8028, 8029, 3, 7, 3, 0, 8029, 8030, 3, 41, 20, 0, 8030, 8031, 3, 19, 9, 0, 8031, 1480, 1, 0, 0, 0, 8032, 8033, 3, 41, 20, 0, 8033, 8034, 3, 23, 11, 0, 8034, 8035, 3, 19, 9, 0, 8035, 8036, 3, 21, 10, 0, 8036, 8037, 3, 45, 22, 0, 8037, 8038, 3, 7, 3, 0, 8038, 8039, 3, 41, 20, 0, 8039, 8040, 3, 19, 9, 0, 8040, 1482, 1, 0, 0, 0, 8041, 8042, 3, 11, 5, 0, 8042, 8043, 3, 35, 17, 0, 8043, 8044, 3, 31, 15, 0, 8044, 8045, 3, 31, 15, 0, 8045, 8046, 3, 47, 23, 0, 8046, 8047, 3, 45, 22, 0, 8047, 8048, 3, 7, 3, 0, 8048, 8049, 3, 45, 22, 0, 8049, 8050, 3, 35, 17, 0, 8050, 8051, 3, 41, 20, 0, 8051, 1484, 1, 0, 0, 0, 8052, 8053, 3, 33, 16, 0, 8053, 8054, 3, 15, 7, 0, 8054, 8055, 3, 19, 9, 0, 8055, 8056, 3, 7, 3, 0, 8056, 8057, 3, 45, 22, 0, 8057, 8058, 3, 35, 17, 0, 8058, 8059, 3, 41, 20, 0, 8059, 1486, 1, 0, 0, 0, 8060, 8061, 3, 21, 10, 0, 8061, 8062, 3, 7, 3, 0, 8062, 8063, 3, 43, 21, 0, 8063, 8064, 3, 21, 10, 0, 8064, 8065, 3, 15, 7, 0, 8065, 8066, 3, 43, 21, 0, 8066, 1488, 1, 0, 0, 0, 8067, 8068, 3, 31, 15, 0, 8068, 8069, 3, 15, 7, 0, 8069, 8070, 3, 41, 20, 0, 8070, 8071, 3, 19, 9, 0, 8071, 8072, 3, 15, 7, 0, 8072, 8073, 3, 43, 21, 0, 8073, 1490, 1, 0, 0, 0, 8074, 8075, 3, 17, 8, 0, 8075, 8076, 3, 7, 3, 0, 8076, 8077, 3, 31, 15, 0, 8077, 8078, 3, 23, 11, 0, 8078, 8079, 3, 29, 14, 0, 8079, 8080, 3, 55, 27, 0, 8080, 1492, 1, 0, 0, 0, 8081, 8082, 3, 37, 18, 0, 8082, 8083, 3, 35, 17, 0, 8083, 8084, 3, 29, 14, 0, 8084, 8085, 3, 23, 11, 0, 8085, 8086, 3, 11, 5, 0, 8086, 8087, 3, 55, 27, 0, 8087, 1494, 1, 0, 0, 0, 8088, 8089, 3, 35, 17, 0, 8089, 8090, 3, 51, 25, 0, 8090, 8091, 3, 33, 16, 0, 8091, 8092, 3, 15, 7, 0, 8092, 8093, 3, 13, 6, 0, 8093, 1496, 1, 0, 0, 0, 8094, 8095, 3, 7, 3, 0, 8095, 8096, 3, 9, 4, 0, 8096, 8097, 3, 43, 21, 0, 8097, 8098, 3, 45, 22, 0, 8098, 8099, 3, 23, 11, 0, 8099, 8100, 3, 31, 15, 0, 8100, 8101, 3, 15, 7, 0, 8101, 1498, 1, 0, 0, 0, 8102, 8103, 3, 9, 4, 0, 8103, 8104, 3, 23, 11, 0, 8104, 8105, 3, 19, 9, 0, 8105, 8106, 3, 43, 21, 0, 8106, 8107, 3, 15, 7, 0, 8107, 8108, 3, 41, 20, 0, 8108, 8109, 3, 23, 11, 0, 8109, 8110, 3, 7, 3, 0, 8110, 8111, 3, 29, 14, 0, 8111, 1500, 1, 0, 0, 0, 8112, 8113, 3, 9, 4, 0, 8113, 8114, 3, 23, 11, 0, 8114, 8115, 3, 45, 22, 0, 8115, 8116, 5, 32, 0, 0, 8116, 8117, 3, 49, 24, 0, 8117, 8118, 3, 7, 3, 0, 8118, 8119, 3, 41, 20, 0, 8119, 8120, 3, 55, 27, 0, 8120, 8121, 3, 23, 11, 0, 8121, 8122, 3, 33, 16, 0, 8122, 8123, 3, 19, 9, 0, 8123, 1502, 1, 0, 0, 0, 8124, 8125, 3, 9, 4, 0, 8125, 8126, 3, 35, 17, 0, 8126, 8127, 3, 35, 17, 0, 8127, 8128, 3, 29, 14, 0, 8128, 1504, 1, 0, 0, 0, 8129, 8130, 3, 9, 4, 0, 8130, 8131, 3, 35, 17, 0, 8131, 8132, 3, 53, 26, 0, 8132, 1506, 1, 0, 0, 0, 8133, 8134, 3, 9, 4, 0, 8134, 8135, 3, 55, 27, 0, 8135, 8136, 3, 45, 22, 0, 8136, 8137, 3, 15, 7, 0, 8137, 8138, 3, 7, 3, 0, 8138, 1508, 1, 0, 0, 0, 8139, 8140, 3, 11, 5, 0, 8140, 8141, 3, 21, 10, 0, 8141, 8142, 3, 7, 3, 0, 8142, 8143, 3, 41, 20, 0, 8143, 8144, 3, 7, 3, 0, 8144, 8145, 3, 11, 5, 0, 8145, 8146, 3, 45, 22, 0, 8146, 8147, 3, 15, 7, 0, 8147, 8148, 3, 41, 20, 0, 8148, 8149, 5, 32, 0, 0, 8149, 8150, 3, 49, 24, 0, 8150, 8151, 3, 7, 3, 0, 8151, 8152, 3, 41, 20, 0, 8152, 8153, 3, 55, 27, 0, 8153, 8154, 3, 23, 11, 0, 8154, 8155, 3, 33, 16, 0, 8155, 8156, 3, 19, 9, 0, 8156, 1510, 1, 0, 0, 0, 8157, 8158, 3, 11, 5, 0, 8158, 8159, 3, 23, 11, 0, 8159, 8160, 3, 13, 6, 0, 8160, 8161, 3, 41, 20, 0, 8161, 1512, 1, 0, 0, 0, 8162, 8163, 3, 11, 5, 0, 8163, 8164, 3, 23, 11, 0, 8164, 8165, 3, 41, 20, 0, 8165, 8166, 3, 11, 5, 0, 8166, 8167, 3, 29, 14, 0, 8167, 8168, 3, 15, 7, 0, 8168, 1514, 1, 0, 0, 0, 8169, 8170, 3, 17, 8, 0, 8170, 8171, 3, 29, 14, 0, 8171, 8172, 3, 35, 17, 0, 8172, 8173, 3, 7, 3, 0, 8173, 8174, 3, 45, 22, 0, 8174, 8175, 5, 52, 0, 0, 8175, 1516, 1, 0, 0, 0, 8176, 8177, 3, 17, 8, 0, 8177, 8178, 3, 29, 14, 0, 8178, 8179, 3, 35, 17, 0, 8179, 8180, 3, 7, 3, 0, 8180, 8181, 3, 45, 22, 0, 8181, 8182, 5, 56, 0, 0, 8182, 1518, 1, 0, 0, 0, 8183, 8184, 3, 23, 11, 0, 8184, 8185, 3, 33, 16, 0, 8185, 8186, 3, 15, 7, 0, 8186, 8187, 3, 45, 22, 0, 8187, 1520, 1, 0, 0, 0, 8188, 8189, 3, 23, 11, 0, 8189, 8190, 3, 33, 16, 0, 8190, 8191, 3, 45, 22, 0, 8191, 8192, 5, 50, 0, 0, 8192, 1522, 1, 0, 0, 0, 8193, 8194, 3, 23, 11, 0, 8194, 8195, 3, 33, 16, 0, 8195, 8196, 3, 45, 22, 0, 8196, 8197, 5, 52, 0, 0, 8197, 1524, 1, 0, 0, 0, 8198, 8199, 3, 23, 11, 0, 8199, 8200, 3, 33, 16, 0, 8200, 8201, 3, 45, 22, 0, 8201, 8202, 5, 56, 0, 0, 8202, 1526, 1, 0, 0, 0, 8203, 8204, 3, 25, 12, 0, 8204, 8205, 3, 43, 21, 0, 8205, 8206, 3, 35, 17, 0, 8206, 8207, 3, 33, 16, 0, 8207, 1528, 1, 0, 0, 0, 8208, 8209, 3, 25, 12, 0, 8209, 8210, 3, 43, 21, 0, 8210, 8211, 3, 35, 17, 0, 8211, 8212, 3, 33, 16, 0, 8212, 8213, 3, 9, 4, 0, 8213, 1530, 1, 0, 0, 0, 8214, 8215, 3, 29, 14, 0, 8215, 8216, 3, 23, 11, 0, 8216, 8217, 3, 33, 16, 0, 8217, 8218, 3, 15, 7, 0, 8218, 1532, 1, 0, 0, 0, 8219, 8220, 3, 29, 14, 0, 8220, 8221, 3, 43, 21, 0, 8221, 8222, 3, 15, 7, 0, 8222, 8223, 3, 19, 9, 0, 8223, 1534, 1, 0, 0, 0, 8224, 8225, 3, 31, 15, 0, 8225, 8226, 3, 7, 3, 0, 8226, 8227, 3, 11, 5, 0, 8227, 8228, 3, 7, 3, 0, 8228, 8229, 3, 13, 6, 0, 8229, 8230, 3, 13, 6, 0, 8230, 8231, 3, 41, 20, 0, 8231, 1536, 1, 0, 0, 0, 8232, 8233, 3, 31, 15, 0, 8233, 8234, 3, 7, 3, 0, 8234, 8235, 3, 11, 5, 0, 8235, 8236, 3, 7, 3, 0, 8236, 8237, 3, 13, 6, 0, 8237, 8238, 3, 13, 6, 0, 8238, 8239, 3, 41, 20, 0, 8239, 8240, 5, 56, 0, 0, 8240, 1538, 1, 0, 0, 0, 8241, 8242, 3, 31, 15, 0, 8242, 8243, 3, 35, 17, 0, 8243, 8244, 3, 33, 16, 0, 8244, 8245, 3, 15, 7, 0, 8245, 8246, 3, 55, 27, 0, 8246, 1540, 1, 0, 0, 0, 8247, 8248, 3, 37, 18, 0, 8248, 8249, 3, 19, 9, 0, 8249, 8250, 5, 95, 0, 0, 8250, 8251, 3, 29, 14, 0, 8251, 8252, 3, 43, 21, 0, 8252, 8253, 3, 33, 16, 0, 8253, 1542, 1, 0, 0, 0, 8254, 8255, 3, 37, 18, 0, 8255, 8256, 3, 35, 17, 0, 8256, 8257, 3, 23, 11, 0, 8257, 8258, 3, 33, 16, 0, 8258, 8259, 3, 45, 22, 0, 8259, 1544, 1, 0, 0, 0, 8260, 8261, 3, 37, 18, 0, 8261, 8262, 3, 35, 17, 0, 8262, 8263, 3, 29, 14, 0, 8263, 8264, 3, 55, 27, 0, 8264, 8265, 3, 19, 9, 0, 8265, 8266, 3, 35, 17, 0, 8266, 8267, 3, 33, 16, 0, 8267, 1546, 1, 0, 0, 0, 8268, 8269, 3, 41, 20, 0, 8269, 8270, 3, 15, 7, 0, 8270, 8271, 3, 29, 14, 0, 8271, 8272, 3, 45, 22, 0, 8272, 8273, 3, 23, 11, 0, 8273, 8274, 3, 31, 15, 0, 8274, 8275, 3, 15, 7, 0, 8275, 1548, 1, 0, 0, 0, 8276, 8277, 3, 43, 21, 0, 8277, 8278, 3, 15, 7, 0, 8278, 8279, 3, 41, 20, 0, 8279, 8280, 3, 23, 11, 0, 8280, 8281, 3, 7, 3, 0, 8281, 8282, 3, 29, 14, 0, 8282, 1550, 1, 0, 0, 0, 8283, 8284, 3, 43, 21, 0, 8284, 8285, 3, 15, 7, 0, 8285, 8286, 3, 41, 20, 0, 8286, 8287, 3, 23, 11, 0, 8287, 8288, 3, 7, 3, 0, 8288, 8289, 3, 29, 14, 0, 8289, 8290, 5, 50, 0, 0, 8290, 1552, 1, 0, 0, 0, 8291, 8292, 3, 43, 21, 0, 8292, 8293, 3, 15, 7, 0, 8293, 8294, 3, 41, 20, 0, 8294, 8295, 3, 23, 11, 0, 8295, 8296, 3, 7, 3, 0, 8296, 8297, 3, 29, 14, 0, 8297, 8298, 5, 52, 0, 0, 8298, 1554, 1, 0, 0, 0, 8299, 8300, 3, 43, 21, 0, 8300, 8301, 3, 15, 7, 0, 8301, 8302, 3, 41, 20, 0, 8302, 8303, 3, 23, 11, 0, 8303, 8304, 3, 7, 3, 0, 8304, 8305, 3, 29, 14, 0, 8305, 8306, 5, 56, 0, 0, 8306, 1556, 1, 0, 0, 0, 8307, 8308, 3, 43, 21, 0, 8308, 8309, 3, 31, 15, 0, 8309, 8310, 3, 7, 3, 0, 8310, 8311, 3, 29, 14, 0, 8311, 8312, 3, 29, 14, 0, 8312, 8313, 3, 43, 21, 0, 8313, 8314, 3, 15, 7, 0, 8314, 8315, 3, 41, 20, 0, 8315, 8316, 3, 23, 11, 0, 8316, 8317, 3, 7, 3, 0, 8317, 8318, 3, 29, 14, 0, 8318, 1558, 1, 0, 0, 0, 8319, 8320, 3, 43, 21, 0, 8320, 8321, 3, 45, 22, 0, 8321, 8322, 3, 43, 21, 0, 8322, 8323, 3, 45, 22, 0, 8323, 8324, 3, 15, 7, 0, 8324, 8325, 3, 31, 15, 0, 8325, 1560, 1, 0, 0, 0, 8326, 8327, 3, 45, 22, 0, 8327, 8328, 3, 15, 7, 0, 8328, 8329, 3, 53, 26, 0, 8329, 8330, 3, 45, 22, 0, 8330, 1562, 1, 0, 0, 0, 8331, 8332, 3, 45, 22, 0, 8332, 8333, 3, 23, 11, 0, 8333, 8334, 3, 31, 15, 0, 8334, 8335, 3, 15, 7, 0, 8335, 8336, 3, 43, 21, 0, 8336, 8337, 3, 45, 22, 0, 8337, 8338, 3, 7, 3, 0, 8338, 8339, 3, 31, 15, 0, 8339, 8340, 3, 37, 18, 0, 8340, 8341, 3, 45, 22, 0, 8341, 8342, 3, 57, 28, 0, 8342, 1564, 1, 0, 0, 0, 8343, 8344, 3, 45, 22, 0, 8344, 8345, 3, 23, 11, 0, 8345, 8346, 3, 31, 15, 0, 8346, 8347, 3, 15, 7, 0, 8347, 8348, 3, 45, 22, 0, 8348, 8349, 3, 57, 28, 0, 8349, 1566, 1, 0, 0, 0, 8350, 8351, 3, 45, 22, 0, 8351, 8352, 3, 43, 21, 0, 8352, 8353, 3, 39, 19, 0, 8353, 8354, 3, 47, 23, 0, 8354, 8355, 3, 15, 7, 0, 8355, 8356, 3, 41, 20, 0, 8356, 8357, 3, 55, 27, 0, 8357, 1568, 1, 0, 0, 0, 8358, 8359, 3, 45, 22, 0, 8359, 8360, 3, 43, 21, 0, 8360, 8361, 3, 49, 24, 0, 8361, 8362, 3, 15, 7, 0, 8362, 8363, 3, 11, 5, 0, 8363, 8364, 3, 45, 22, 0, 8364, 8365, 3, 35, 17, 0, 8365, 8366, 3, 41, 20, 0, 8366, 1570, 1, 0, 0, 0, 8367, 8368, 3, 45, 22, 0, 8368, 8369, 3, 53, 26, 0, 8369, 8370, 3, 23, 11, 0, 8370, 8371, 3, 13, 6, 0, 8371, 8372, 5, 95, 0, 0, 8372, 8373, 3, 43, 21, 0, 8373, 8374, 3, 33, 16, 0, 8374, 8375, 3, 7, 3, 0, 8375, 8376, 3, 37, 18, 0, 8376, 8377, 3, 43, 21, 0, 8377, 8378, 3, 21, 10, 0, 8378, 8379, 3, 35, 17, 0, 8379, 8380, 3, 45, 22, 0, 8380, 1572, 1, 0, 0, 0, 8381, 8382, 3, 47, 23, 0, 8382, 8383, 3, 47, 23, 0, 8383, 8384, 3, 23, 11, 0, 8384, 8385, 3, 13, 6, 0, 8385, 1574, 1, 0, 0, 0, 8386, 8387, 3, 49, 24, 0, 8387, 8388, 3, 7, 3, 0, 8388, 8389, 3, 41, 20, 0, 8389, 8390, 3, 9, 4, 0, 8390, 8391, 3, 23, 11, 0, 8391, 8392, 3, 45, 22, 0, 8392, 1576, 1, 0, 0, 0, 8393, 8394, 3, 53, 26, 0, 8394, 8395, 3, 31, 15, 0, 8395, 8396, 3, 29, 14, 0, 8396, 1578, 1, 0, 0, 0, 8397, 8398, 5, 44, 0, 0, 8398, 1580, 1, 0, 0, 0, 8399, 8400, 5, 58, 0, 0, 8400, 1582, 1, 0, 0, 0, 8401, 8402, 5, 58, 0, 0, 8402, 8403, 5, 58, 0, 0, 8403, 1584, 1, 0, 0, 0, 8404, 8405, 5, 36, 0, 0, 8405, 1586, 1, 0, 0, 0, 8406, 8407, 5, 36, 0, 0, 8407, 8408, 5, 36, 0, 0, 8408, 1588, 1, 0, 0, 0, 8409, 8410, 5, 42, 0, 0, 8410, 1590, 1, 0, 0, 0, 8411, 8412, 5, 40, 0, 0, 8412, 1592, 1, 0, 0, 0, 8413, 8414, 5, 41, 0, 0, 8414, 1594, 1, 0, 0, 0, 8415, 8416, 5, 91, 0, 0, 8416, 1596, 1, 0, 0, 0, 8417, 8418, 5, 93, 0, 0, 8418, 1598, 1, 0, 0, 0, 8419, 8420, 3, 9, 4, 0, 8420, 8424, 5, 39, 0, 0, 8421, 8423, 2, 48, 49, 0, 8422, 8421, 1, 0, 0, 0, 8423, 8426, 1, 0, 0, 0, 8424, 8422, 1, 0, 0, 0, 8424, 8425, 1, 0, 0, 0, 8425, 8427, 1, 0, 0, 0, 8426, 8424, 1, 0, 0, 0, 8427, 8428, 5, 39, 0, 0, 8428, 1600, 1, 0, 0, 0, 8429, 8430, 3, 15, 7, 0, 8430, 8431, 3, 65, 32, 0, 8431, 1602, 1, 0, 0, 0, 8432, 8434, 5, 45, 0, 0, 8433, 8432, 1, 0, 0, 0, 8433, 8434, 1, 0, 0, 0, 8434, 8436, 1, 0, 0, 0, 8435, 8437, 3, 61, 30, 0, 8436, 8435, 1, 0, 0, 0, 8437, 8438, 1, 0, 0, 0, 8438, 8436, 1, 0, 0, 0, 8438, 8439, 1, 0, 0, 0, 8439, 8440, 1, 0, 0, 0, 8440, 8442, 5, 46, 0, 0, 8441, 8443, 3, 61, 30, 0, 8442, 8441, 1, 0, 0, 0, 8443, 8444, 1, 0, 0, 0, 8444, 8442, 1, 0, 0, 0, 8444, 8445, 1, 0, 0, 0, 8445, 8458, 1, 0, 0, 0, 8446, 8450, 3, 15, 7, 0, 8447, 8449, 5, 45, 0, 0, 8448, 8447, 1, 0, 0, 0, 8449, 8452, 1, 0, 0, 0, 8450, 8448, 1, 0, 0, 0, 8450, 8451, 1, 0, 0, 0, 8451, 8454, 1, 0, 0, 0, 8452, 8450, 1, 0, 0, 0, 8453, 8455, 3, 61, 30, 0, 8454, 8453, 1, 0, 0, 0, 8455, 8456, 1, 0, 0, 0, 8456, 8454, 1, 0, 0, 0, 8456, 8457, 1, 0, 0, 0, 8457, 8459, 1, 0, 0, 0, 8458, 8446, 1, 0, 0, 0, 8458, 8459, 1, 0, 0, 0, 8459, 1604, 1, 0, 0, 0, 8460, 8462, 5, 45, 0, 0, 8461, 8460, 1, 0, 0, 0, 8461, 8462, 1, 0, 0, 0, 8462, 8464, 1, 0, 0, 0, 8463, 8465, 3, 61, 30, 0, 8464, 8463, 1, 0, 0, 0, 8465, 8466, 1, 0, 0, 0, 8466, 8464, 1, 0, 0, 0, 8466, 8467, 1, 0, 0, 0, 8467, 8474, 1, 0, 0, 0, 8468, 8470, 3, 15, 7, 0, 8469, 8471, 3, 61, 30, 0, 8470, 8469, 1, 0, 0, 0, 8471, 8472, 1, 0, 0, 0, 8472, 8470, 1, 0, 0, 0, 8472, 8473, 1, 0, 0, 0, 8473, 8475, 1, 0, 0, 0, 8474, 8468, 1, 0, 0, 0, 8474, 8475, 1, 0, 0, 0, 8475, 1606, 1, 0, 0, 0, 8476, 8477, 5, 120, 0, 0, 8477, 8478, 3, 65, 32, 0, 8478, 1608, 1, 0, 0, 0, 8479, 8480, 5, 46, 0, 0, 8480, 1610, 1, 0, 0, 0, 8481, 8482, 3, 65, 32, 0, 8482, 1612, 1, 0, 0, 0, 8483, 8484, 3, 63, 31, 0, 8484, 1614, 1, 0, 0, 0, 8485, 8489, 7, 32, 0, 0, 8486, 8488, 7, 33, 0, 0, 8487, 8486, 1, 0, 0, 0, 8488, 8491, 1, 0, 0, 0, 8489, 8487, 1, 0, 0, 0, 8489, 8490, 1, 0, 0, 0, 8490, 1616, 1, 0, 0, 0, 8491, 8489, 1, 0, 0, 0, 8492, 8494, 5, 36, 0, 0, 8493, 8495, 3, 61, 30, 0, 8494, 8493, 1, 0, 0, 0, 8495, 8496, 1, 0, 0, 0, 8496, 8494, 1, 0, 0, 0, 8496, 8497, 1, 0, 0, 0, 8497, 1618, 1, 0, 0, 0, 8498, 8502, 7, 34, 0, 0, 8499, 8501, 7, 35, 0, 0, 8500, 8499, 1, 0, 0, 0, 8501, 8504, 1, 0, 0, 0, 8502, 8500, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 1620, 1, 0, 0, 0, 8504, 8502, 1, 0, 0, 0, 8505, 8506, 5, 38, 0, 0, 8506, 1622, 1, 0, 0, 0, 8507, 8508, 5, 38, 0, 0, 8508, 8509, 5, 38, 0, 0, 8509, 1624, 1, 0, 0, 0, 8510, 8511, 5, 38, 0, 0, 8511, 8512, 5, 60, 0, 0, 8512, 1626, 1, 0, 0, 0, 8513, 8514, 5, 64, 0, 0, 8514, 8515, 5, 64, 0, 0, 8515, 1628, 1, 0, 0, 0, 8516, 8517, 5, 64, 0, 0, 8517, 8518, 5, 62, 0, 0, 8518, 1630, 1, 0, 0, 0, 8519, 8520, 5, 64, 0, 0, 8520, 1632, 1, 0, 0, 0, 8521, 8522, 5, 33, 0, 0, 8522, 1634, 1, 0, 0, 0, 8523, 8524, 5, 33, 0, 0, 8524, 8525, 5, 33, 0, 0, 8525, 1636, 1, 0, 0, 0, 8526, 8527, 5, 33, 0, 0, 8527, 8528, 5, 61, 0, 0, 8528, 1638, 1, 0, 0, 0, 8529, 8530, 5, 94, 0, 0, 8530, 1640, 1, 0, 0, 0, 8531, 8532, 5, 61, 0, 0, 8532, 1642, 1, 0, 0, 0, 8533, 8534, 5, 61, 0, 0, 8534, 8535, 5, 62, 0, 0, 8535, 1644, 1, 0, 0, 0, 8536, 8537, 5, 62, 0, 0, 8537, 1646, 1, 0, 0, 0, 8538, 8539, 5, 62, 0, 0, 8539, 8540, 5, 61, 0, 0, 8540, 1648, 1, 0, 0, 0, 8541, 8542, 5, 62, 0, 0, 8542, 8543, 5, 62, 0, 0, 8543, 1650, 1, 0, 0, 0, 8544, 8545, 5, 35, 0, 0, 8545, 1652, 1, 0, 0, 0, 8546, 8547, 5, 35, 0, 0, 8547, 8548, 5, 61, 0, 0, 8548, 1654, 1, 0, 0, 0, 8549, 8550, 5, 35, 0, 0, 8550, 8551, 5, 62, 0, 0, 8551, 1656, 1, 0, 0, 0, 8552, 8553, 5, 35, 0, 0, 8553, 8554, 5, 62, 0, 0, 8554, 8555, 5, 62, 0, 0, 8555, 1658, 1, 0, 0, 0, 8556, 8557, 5, 35, 0, 0, 8557, 8558, 5, 35, 0, 0, 8558, 1660, 1, 0, 0, 0, 8559, 8560, 5, 45, 0, 0, 8560, 8561, 5, 62, 0, 0, 8561, 1662, 1, 0, 0, 0, 8562, 8563, 5, 45, 0, 0, 8563, 8564, 5, 62, 0, 0, 8564, 8565, 5, 62, 0, 0, 8565, 1664, 1, 0, 0, 0, 8566, 8567, 5, 45, 0, 0, 8567, 8568, 5, 124, 0, 0, 8568, 8569, 5, 45, 0, 0, 8569, 1666, 1, 0, 0, 0, 8570, 8571, 5, 60, 0, 0, 8571, 1668, 1, 0, 0, 0, 8572, 8573, 5, 60, 0, 0, 8573, 8574, 5, 61, 0, 0, 8574, 1670, 1, 0, 0, 0, 8575, 8576, 5, 60, 0, 0, 8576, 8577, 5, 64, 0, 0, 8577, 1672, 1, 0, 0, 0, 8578, 8579, 5, 60, 0, 0, 8579, 8580, 5, 94, 0, 0, 8580, 1674, 1, 0, 0, 0, 8581, 8582, 5, 60, 0, 0, 8582, 8583, 5, 62, 0, 0, 8583, 1676, 1, 0, 0, 0, 8584, 8585, 5, 60, 0, 0, 8585, 8586, 5, 45, 0, 0, 8586, 8587, 5, 62, 0, 0, 8587, 1678, 1, 0, 0, 0, 8588, 8589, 5, 60, 0, 0, 8589, 8590, 5, 60, 0, 0, 8590, 1680, 1, 0, 0, 0, 8591, 8592, 5, 60, 0, 0, 8592, 8593, 5, 60, 0, 0, 8593, 8594, 5, 61, 0, 0, 8594, 1682, 1, 0, 0, 0, 8595, 8596, 5, 60, 0, 0, 8596, 8597, 5, 63, 0, 0, 8597, 8598, 5, 62, 0, 0, 8598, 1684, 1, 0, 0, 0, 8599, 8600, 5, 45, 0, 0, 8600, 1686, 1, 0, 0, 0, 8601, 8602, 5, 37, 0, 0, 8602, 1688, 1, 0, 0, 0, 8603, 8604, 5, 124, 0, 0, 8604, 1690, 1, 0, 0, 0, 8605, 8606, 5, 124, 0, 0, 8606, 8607, 5, 124, 0, 0, 8607, 1692, 1, 0, 0, 0, 8608, 8609, 5, 124, 0, 0, 8609, 8610, 5, 124, 0, 0, 8610, 8611, 5, 47, 0, 0, 8611, 1694, 1, 0, 0, 0, 8612, 8613, 5, 124, 0, 0, 8613, 8614, 5, 47, 0, 0, 8614, 1696, 1, 0, 0, 0, 8615, 8616, 5, 43, 0, 0, 8616, 1698, 1, 0, 0, 0, 8617, 8618, 5, 63, 0, 0, 8618, 1700, 1, 0, 0, 0, 8619, 8620, 5, 63, 0, 0, 8620, 8621, 5, 38, 0, 0, 8621, 1702, 1, 0, 0, 0, 8622, 8623, 5, 63, 0, 0, 8623, 8624, 5, 35, 0, 0, 8624, 1704, 1, 0, 0, 0, 8625, 8626, 5, 63, 0, 0, 8626, 8627, 5, 45, 0, 0, 8627, 1706, 1, 0, 0, 0, 8628, 8629, 5, 63, 0, 0, 8629, 8630, 5, 124, 0, 0, 8630, 1708, 1, 0, 0, 0, 8631, 8632, 5, 47, 0, 0, 8632, 1710, 1, 0, 0, 0, 8633, 8634, 5, 126, 0, 0, 8634, 1712, 1, 0, 0, 0, 8635, 8636, 5, 126, 0, 0, 8636, 8637, 5, 61, 0, 0, 8637, 1714, 1, 0, 0, 0, 8638, 8639, 5, 126, 0, 0, 8639, 8640, 5, 62, 0, 0, 8640, 8641, 5, 61, 0, 0, 8641, 8642, 5, 126, 0, 0, 8642, 1716, 1, 0, 0, 0, 8643, 8644, 5, 126, 0, 0, 8644, 8645, 5, 62, 0, 0, 8645, 8646, 5, 126, 0, 0, 8646, 1718, 1, 0, 0, 0, 8647, 8648, 5, 126, 0, 0, 8648, 8649, 5, 60, 0, 0, 8649, 8650, 5, 61, 0, 0, 8650, 8651, 5, 126, 0, 0, 8651, 1720, 1, 0, 0, 0, 8652, 8653, 5, 126, 0, 0, 8653, 8654, 5, 60, 0, 0, 8654, 8655, 5, 126, 0, 0, 8655, 1722, 1, 0, 0, 0, 8656, 8657, 5, 126, 0, 0, 8657, 8658, 5, 42, 0, 0, 8658, 1724, 1, 0, 0, 0, 8659, 8660, 5, 126, 0, 0, 8660, 8661, 5, 126, 0, 0, 8661, 1726, 1, 0, 0, 0, 8662, 8663, 5, 59, 0, 0, 8663, 1728, 1, 0, 0, 0, 24, 0, 1732, 1742, 1756, 1825, 1827, 1838, 1840, 1851, 1853, 8424, 8433, 8438, 8444, 8450, 8456, 8458, 8461, 8466, 8472, 8474, 8489, 8496, 8502, 2, 6, 0, 0, 0, 1, 0] \ No newline at end of file diff --git a/gen/PostgreSQLLexer.java b/gen/PostgreSQLLexer.java deleted file mode 100644 index c481088..0000000 --- a/gen/PostgreSQLLexer.java +++ /dev/null @@ -1,6179 +0,0 @@ -// Generated from java-escape by ANTLR 4.11.1 -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) -public class PostgreSQLLexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - WHITESPACE=1, BLOCK_COMMENT=2, LINE_COMMENT=3, A_=4, ABORT=5, ABS=6, ABSOLUTE=7, - ACCESS=8, ACTION=9, ADA=10, ADD=11, ADMIN=12, AFTER=13, AGGREGATE=14, - ALIAS=15, ALL=16, ALLOCATE=17, ALSO=18, ALTER=19, ALWAYS=20, ANALYSE=21, - ANALYZE=22, AND=23, ANY=24, ARE=25, ARRAY=26, AS=27, ASC=28, ASENSITIVE=29, - ASSERTION=30, ASSIGNMENT=31, ASYMMETRIC=32, AT=33, ATOMIC=34, ATTRIBUTE=35, - ATTRIBUTES=36, AUTHORIZATION=37, AVG=38, BACKWARD=39, BEFORE=40, BEGIN=41, - BERNOULLI=42, BETWEEN=43, BIGINT=44, BINARY=45, BIT=46, BIT_LENGTH=47, - BITVAR=48, BLOB=49, BOOLEAN=50, BOTH=51, BREADTH=52, BUFFERS=53, BY=54, - C_=55, CACHE=56, CALL=57, CALLED=58, CARDINALITY=59, CASCADE=60, CASCADED=61, - CASE=62, CAST=63, CATALOG=64, CATALOG_NAME=65, CEIL=66, CEILING=67, CHAIN=68, - CHAR=69, CHAR_LENGTH=70, CHARACTER=71, CHARACTER_LENGTH=72, CHARACTER_SET_CATALOG=73, - CHARACTER_SET_NAME=74, CHARACTER_SET_SCHEMA=75, CHARACTERISTICS=76, CHARACTERS=77, - CHECK=78, CHECKED=79, CHECKPOINT=80, CLASS=81, CLASS_ORIGIN=82, CLOB=83, - CLOSE=84, CLUSTER=85, COALESCE=86, COBOL=87, COLLATE=88, COLLATION=89, - COLLATION_CATALOG=90, COLLATION_NAME=91, COLLATION_SCHEMA=92, COLLECT=93, - COLUMN=94, COLUMN_NAME=95, COMMAND_FUNCTION=96, COMMAND_FUNCTION_CODE=97, - COMMENT=98, COMMIT=99, COMMITTED=100, COMPLETION=101, CONDITION=102, CONDITION_NUMBER=103, - CONFIGURATION=104, CONFLICT=105, CONNECT=106, CONNECTION=107, CONNECTION_NAME=108, - CONSTRAINT=109, CONSTRAINT_CATALOG=110, CONSTRAINT_NAME=111, CONSTRAINT_SCHEMA=112, - CONSTRAINTS=113, CONSTRUCTOR=114, CONTAINS=115, CONTINUE=116, CONVERSION=117, - CONVERT=118, COPY=119, CORR=120, CORRESPONDING=121, COSTS=122, COUNT=123, - COVAR_POP=124, COVAR_SAMP=125, CREATE=126, CREATEDB=127, CREATEUSER=128, - CROSS=129, CSV=130, CUBE=131, CUME_DIST=132, CURRENT=133, CURRENT_DATE=134, - CURRENT_DEFAULT_TRANSFORM_GROUP=135, CURRENT_PATH=136, CURRENT_ROLE=137, - CURRENT_TIME=138, CURRENT_TIMESTAMP=139, CURRENT_TRANSFORM_GROUP_FOR_TYPE=140, - CURRENT_USER=141, CURSOR=142, CURSOR_NAME=143, CYCLE=144, DATA=145, DATABASE=146, - DATE=147, DATETIME_INTERVAL_CODE=148, DATETIME_INTERVAL_PRECISION=149, - DAY=150, DEALLOCATE=151, DEC=152, DECIMAL=153, DECLARE=154, DEFAULT=155, - DEFAULTS=156, DEFERABLE=157, DEFERRABLE=158, DEFERRED=159, DEFINED=160, - DEFINER=161, DEGREE=162, DELETE=163, DELIMITER=164, DELIMITERS=165, DENSE_RANK=166, - DEPENDS=167, DEPTH=168, DEREF=169, DERIVED=170, DESC=171, DESCRIBE=172, - DESCRIPTOR=173, DESTROY=174, DESTRUCTOR=175, DETERMINISTIC=176, DIAGNOSTICS=177, - DICTIONARY=178, DISABLE_P=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, - DISCONNECT=182, DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, - DROP=188, DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, - EACH=192, ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, - END=198, END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, - EXCEPTION=204, EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, - EXISTING=210, EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, - EXTERNAL=216, EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, - FINAL=222, FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, - FOREIGN=229, FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, - FREEZE=235, FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, - GENERATED=242, GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, - GREATEST=249, GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, - HOLD=255, HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, - IMMUTABLE=262, IMPLEMENTATION=263, IMPLICIT=264, IN=265, INCLUDING=266, - INCREMENT=267, INDEX=268, INDICATOR=269, INFIX=270, INHERITS=271, INITIALIZE=272, - INITIALLY=273, INNER=274, INOUT=275, INPUT=276, INSENSITIVE=277, INSERT=278, - INSTANCE=279, INSTANTIABLE=280, INSTEAD=281, INT=282, INTEGER=283, INTERSECT=284, - INTERSECTION=285, INTERVAL=286, INTO=287, INVOKER=288, IS=289, ISOLATION=290, - ITERATE=291, JOIN=292, K_=293, KEY=294, KEY_MEMBER=295, KEY_TYPE=296, - LABEL=297, LANCOMPILER=298, LANGUAGE=299, LARGE=300, LAST=301, LATERAL=302, - LEADING=303, LEAST=304, LEFT=305, LENGTH=306, LESS=307, LEVEL=308, LIKE=309, - LIMIT=310, LISTEN=311, LN=312, LOAD=313, LOCAL=314, LOCALTIME=315, LOCALTIMESTAMP=316, - LOCATION=317, LOCATOR=318, LOCK=319, LOCKED=320, LOWER=321, M_=322, MAIN=323, - MAP=324, MAPPING=325, MATCH=326, MATCH_SIMPLE=327, MATCHED=328, MAX=329, - MAXVALUE=330, MEMBER=331, MERGE=332, MESSAGE_LENGTH=333, MESSAGE_OCTET_LENGTH=334, - MESSAGE_TEXT=335, METHOD=336, MIN=337, MINUTE=338, MINVALUE=339, MOD=340, - MODE=341, MODIFIES=342, MODIFY=343, MODULE=344, MONTH=345, MORE_=346, - MOVE=347, MULTISET=348, MUMPS=349, NAME=350, NAMES=351, NATIONAL=352, - NATURAL=353, NCHAR=354, NCLOB=355, NESTING=356, NEW=357, NEXT=358, NO=359, - NOCREATEDB=360, NOCREATEUSER=361, NONE=362, NORMALIZE=363, NORMALIZED=364, - NOT=365, NOTHING=366, NOTIFY=367, NOTNULL=368, NOWAIT=369, NULL=370, NULLABLE=371, - NULLIF=372, NULLS=373, NUMBER=374, NUMERIC=375, OBJECT=376, OCTET_LENGTH=377, - OCTETS=378, OF=379, OFF=380, OFFSET=381, OIDS=382, OLD=383, ON=384, ONLY=385, - OPEN=386, OPERATION=387, OPERATOR=388, OPTION=389, OPTIONS=390, OR=391, - ORDER=392, ORDERING=393, ORDINALITY=394, OTHERS=395, OUT=396, OUTER=397, - OUTPUT=398, OVER=399, OVERLAPS=400, OVERLAY=401, OVERRIDING=402, OWNER=403, - PAD=404, PARAMETER=405, PARAMETER_MODE=406, PARAMETER_NAME=407, PARAMETER_ORDINAL_POSITION=408, - PARAMETER_SPECIFIC_CATALOG=409, PARAMETER_SPECIFIC_NAME=410, PARAMETER_SPECIFIC_SCHEMA=411, - PARAMETERS=412, PARSER=413, PARTIAL=414, PARTITION=415, PASCAL=416, PASSWORD=417, - PATH=418, PERCENT_RANK=419, PERCENTILE_CONT=420, PERCENTILE_DISC=421, - PLACING=422, PLAIN=423, PLANS=424, PLI=425, POSITION=426, POSTFIX=427, - POWER=428, PRECEDING=429, PRECISION=430, PREFIX=431, PREORDER=432, PREPARE=433, - PREPARED=434, PRESERVE=435, PRIMARY=436, PRIOR=437, PRIVILEGES=438, PROCEDURAL=439, - PROCEDURE=440, PUBLIC=441, PUBLICATION=442, QUOTE=443, RANGE=444, RANK=445, - READ=446, READS=447, REAL=448, REASSIGN=449, RECHECK=450, RECURSIVE=451, - REF=452, REFERENCES=453, REFERENCING=454, REFRESH=455, REGR_AVGX=456, - REGR_AVGY=457, REGR_COUNT=458, REGR_INTERCEPT=459, REGR_R2=460, REGR_SLOPE=461, - REGR_SXX=462, REGR_SXY=463, REGR_SYY=464, REINDEX=465, RELATIVE=466, RELEASE=467, - RENAME=468, REPEATABLE=469, REPLACE=470, REPLICA=471, RESET=472, RESTART=473, - RESTRICT=474, RESULT=475, RETURN=476, RETURNED_CARDINALITY=477, RETURNED_LENGTH=478, - RETURNED_OCTET_LENGTH=479, RETURNED_SQLSTATE=480, RETURNING=481, RETURNS=482, - REVOKE=483, RIGHT=484, ROLE=485, ROLLBACK=486, ROLLUP=487, ROUTINE=488, - ROUTINE_CATALOG=489, ROUTINE_NAME=490, ROUTINE_SCHEMA=491, ROW=492, ROW_COUNT=493, - ROW_NUMBER=494, ROWS=495, RULE=496, SAVEPOINT=497, SCALE=498, SCHEMA=499, - SCHEMA_NAME=500, SCOPE=501, SCOPE_CATALOG=502, SCOPE_NAME=503, SCOPE_SCHEMA=504, - SCROLL=505, SEARCH=506, SECOND=507, SECTION=508, SECURITY=509, SELECT=510, - SELF=511, SENSITIVE=512, SEQUENCE=513, SEQUENCES=514, SERIALIZABLE=515, - SERVER_NAME=516, SESSION=517, SESSION_USER=518, SET=519, SETOF=520, SETS=521, - SHARE=522, SHOW=523, SIMILAR=524, SIMPLE=525, SIZE=526, SKIP_=527, SMALLINT=528, - SNAPSHOT=529, SOME=530, SOURCE=531, SPACE=532, SPECIFIC=533, SPECIFIC_NAME=534, - SPECIFICTYPE=535, SQL=536, SQLCODE=537, SQLERROR=538, SQLEXCEPTION=539, - SQLSTATE=540, SQLWARNING=541, SQRT=542, STABLE=543, START=544, STATE=545, - STATEMENT=546, STATIC=547, STATISTICS=548, STDDEV_POP=549, STDDEV_SAMP=550, - STDIN=551, STDOUT=552, STORAGE=553, STRICT=554, STRUCTURE=555, STYLE=556, - SUBCLASS_ORIGIN=557, SUBLIST=558, SUBMULTISET=559, SUBSCRIPTION=560, SUBSTRING=561, - SUM=562, SYMMETRIC=563, SYSID=564, SYSTEM=565, SYSTEM_USER=566, TABLE=567, - TABLE_NAME=568, TABLESAMPLE=569, TABLESPACE=570, TEMP=571, TEMPLATE=572, - TEMPORARY=573, TERMINATE=574, THAN=575, THEN=576, TIES=577, TIME=578, - TIMESTAMP=579, TIMEZONE_HOUR=580, TIMEZONE_MINUTE=581, TIMING=582, TO=583, - TOAST=584, TOP_LEVEL_COUNT=585, TRAILING=586, TRANSACTION=587, TRANSACTION_ACTIVE=588, - TRANSACTIONS_COMMITTED=589, TRANSACTIONS_ROLLED_BACK=590, TRANSFORM=591, - TRANSFORMS=592, TRANSLATE=593, TRANSLATION=594, TREAT=595, TRIGGER=596, - TRIGGER_CATALOG=597, TRIGGER_NAME=598, TRIGGER_SCHEMA=599, TRIM=600, TRUE=601, - TRUNCATE=602, TRUSTED=603, TYPE=604, UESCAPE=605, UNBOUNDED=606, UNCOMMITTED=607, - UNDER=608, UNENCRYPTED=609, UNION=610, UNIQUE=611, UNKNOWN=612, UNLISTEN=613, - UNNAMED=614, UNNEST=615, UNTIL=616, UPDATE=617, UPPER=618, USAGE=619, - USER=620, USER_DEFINED_TYPE_CATALOG=621, USER_DEFINED_TYPE_CODE=622, USER_DEFINED_TYPE_NAME=623, - USER_DEFINED_TYPE_SCHEMA=624, USING=625, VACUUM=626, VALID=627, VALIDATE=628, - VALIDATOR=629, VALUE=630, VALUES=631, VAR_POP=632, VAR_SAMP=633, VARCHAR=634, - VARIABLE=635, VARIADIC=636, VARYING=637, VERBOSE=638, VIEW=639, VOLATILE=640, - WHEN=641, WHENEVER=642, WHERE=643, WIDTH_BUCKET=644, WINDOW=645, WITH=646, - WITHIN=647, WITHOUT=648, WORK=649, WRITE=650, YAML=651, YEAR=652, YES=653, - ZONE=654, SUPERUSER=655, NOSUPERUSER=656, CREATEROLE=657, NOCREATEROLE=658, - INHERIT=659, NOINHERIT=660, LOGIN=661, NOLOGIN=662, REPLICATION=663, NOREPLICATION=664, - BYPASSRLS=665, NOBYPASSRLS=666, SFUNC=667, STYPE=668, SSPACE=669, FINALFUNC=670, - FINALFUNC_EXTRA=671, COMBINEFUNC=672, SERIALFUNC=673, DESERIALFUNC=674, - INITCOND=675, MSFUNC=676, MINVFUNC=677, MSTYPE=678, MSSPACE=679, MFINALFUNC=680, - MFINALFUNC_EXTRA=681, MINITCOND=682, SORTOP=683, PARALLEL=684, HYPOTHETICAL=685, - SAFE=686, UNSAFE=687, BASETYPE=688, IF=689, LOCALE=690, LC_COLLATE=691, - LC_CTYPE=692, PROVIDER=693, VERSION=694, ALLOW_CONNECTIONS=695, IS_TEMPLATE=696, - EVENT=697, WRAPPER=698, SERVER=699, BTREE=700, HASH_=701, GIST=702, SPGIST=703, - GIN=704, BRIN=705, CONCURRENTLY=706, INLINE=707, MATERIALIZED=708, LEFTARG=709, - RIGHTARG=710, COMMUTATOR=711, NEGATOR=712, HASHES=713, MERGES=714, FAMILY=715, - POLICY=716, OWNED=717, ABSTIME=718, BIGSERIAL=719, BIT_VARYING=720, BOOL=721, - BOX=722, BYTEA=723, CHARACTER_VARYING=724, CIDR=725, CIRCLE=726, FLOAT4=727, - FLOAT8=728, INET=729, INT2=730, INT4=731, INT8=732, JSON=733, JSONB=734, - LINE=735, LSEG=736, MACADDR=737, MACADDR8=738, MONEY=739, PG_LSN=740, - POINT=741, POLYGON=742, RELTIME=743, SERIAL=744, SERIAL2=745, SERIAL4=746, - SERIAL8=747, SMALLSERIAL=748, STSTEM=749, TEXT=750, TIMESTAMPTZ=751, TIMETZ=752, - TSQUERY=753, TSVECTOR=754, TXID_SNAPSHOT=755, UUID=756, VARBIT=757, XML=758, - COMMA=759, COLON=760, COLON_COLON=761, DOLLAR=762, DOLLAR_DOLLAR=763, - STAR=764, OPEN_PAREN=765, CLOSE_PAREN=766, OPEN_BRACKET=767, CLOSE_BRACKET=768, - BIT_STRING=769, REGEX_STRING=770, NUMERIC_LITERAL=771, INTEGER_LITERAL=772, - HEX_INTEGER_LITERAL=773, DOT=774, SINGLEQ_STRING_LITERAL=775, DOUBLEQ_STRING_LITERAL=776, - IDENTIFIER=777, DOLLAR_DEC=778, IDENTIFIER_UNICODE=779, AMP=780, AMP_AMP=781, - AMP_LT=782, AT_AT=783, AT_GT=784, AT_SIGN=785, BANG=786, BANG_BANG=787, - BANG_EQUAL=788, CARET=789, EQUAL=790, EQUAL_GT=791, GT=792, GTE=793, GT_GT=794, - HASH=795, HASH_EQ=796, HASH_GT=797, HASH_GT_GT=798, HASH_HASH=799, HYPHEN_GT=800, - HYPHEN_GT_GT=801, HYPHEN_PIPE_HYPHEN=802, LT=803, LTE=804, LT_AT=805, - LT_CARET=806, LT_GT=807, LT_HYPHEN_GT=808, LT_LT=809, LT_LT_EQ=810, LT_QMARK_GT=811, - MINUS=812, PERCENT=813, PIPE=814, PIPE_PIPE=815, PIPE_PIPE_SLASH=816, - PIPE_SLASH=817, PLUS=818, QMARK=819, QMARK_AMP=820, QMARK_HASH=821, QMARK_HYPHEN=822, - QMARK_PIPE=823, SLASH=824, TIL=825, TIL_EQ=826, TIL_GTE_TIL=827, TIL_GT_TIL=828, - TIL_LTE_TIL=829, TIL_LT_TIL=830, TIL_STAR=831, TIL_TIL=832, SEMI=833; - public static String[] channelNames = { - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }; - - public static String[] modeNames = { - "DEFAULT_MODE" - }; - - private static String[] makeRuleNames() { - return new String[] { - "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A", "B", "C", "D", "E", - "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", - "T", "U", "V", "W", "X", "Y", "Z", "HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", - "SQUOTA_STRING", "BQUOTA_STRING", "A_", "ABORT", "ABS", "ABSOLUTE", "ACCESS", - "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", - "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", - "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", - "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", "AUTHORIZATION", - "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", "BIGINT", - "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", "BOTH", "BREADTH", - "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", "CASCADE", - "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", "CEILING", - "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", "CHARACTER_SET_CATALOG", - "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CHARACTERISTICS", "CHARACTERS", - "CHECK", "CHECKED", "CHECKPOINT", "CLASS", "CLASS_ORIGIN", "CLOB", "CLOSE", - "CLUSTER", "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLLATION_CATALOG", - "COLLATION_NAME", "COLLATION_SCHEMA", "COLLECT", "COLUMN", "COLUMN_NAME", - "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMENT", "COMMIT", "COMMITTED", - "COMPLETION", "CONDITION", "CONDITION_NUMBER", "CONFIGURATION", "CONFLICT", - "CONNECT", "CONNECTION", "CONNECTION_NAME", "CONSTRAINT", "CONSTRAINT_CATALOG", - "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRAINTS", "CONSTRUCTOR", - "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", "COPY", "CORR", "CORRESPONDING", - "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CREATEDB", "CREATEUSER", - "CROSS", "CSV", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", - "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", - "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CURSOR_NAME", - "CYCLE", "DATA", "DATABASE", "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", - "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", - "DEFERABLE", "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", - "DELETE", "DELIMITER", "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", - "DEREF", "DERIVED", "DESC", "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", - "DETERMINISTIC", "DIAGNOSTICS", "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", - "DISCARD", "DISCONNECT", "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", - "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", - "ELEMENT", "ELSE", "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", - "EQUALS", "ESCAPE", "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDE", "EXCLUDING", - "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", "EXISTS", "EXP", "EXPLAIN", - "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", - "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", "FOLLOWING", "FOR", "FORCE", - "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", "FOUND", "FREE", "FREEZE", - "FROM", "FULL", "FUNCTION", "FUSION", "G_", "GENERAL", "GENERATED", "GET", - "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", "GREATEST", "GROUP", "GROUPING", - "HANDLER", "HAVING", "HIERARCHY", "HOLD", "HOST", "HOUR", "IDENTITY", - "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLEMENTATION", "IMPLICIT", - "IN", "INCLUDING", "INCREMENT", "INDEX", "INDICATOR", "INFIX", "INHERITS", - "INITIALIZE", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", - "INSERT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INT", "INTEGER", "INTERSECT", - "INTERSECTION", "INTERVAL", "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", - "JOIN", "K_", "KEY", "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", - "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", - "LESS", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", - "LOCALTIMESTAMP", "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", - "MAIN", "MAP", "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", - "MAXVALUE", "MEMBER", "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", - "MESSAGE_TEXT", "METHOD", "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", - "MODIFIES", "MODIFY", "MODULE", "MONTH", "MORE_", "MOVE", "MULTISET", - "MUMPS", "NAME", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NESTING", - "NEW", "NEXT", "NO", "NOCREATEDB", "NOCREATEUSER", "NONE", "NORMALIZE", - "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL", - "NULLABLE", "NULLIF", "NULLS", "NUMBER", "NUMERIC", "OBJECT", "OCTET_LENGTH", - "OCTETS", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPEN", - "OPERATION", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDERING", - "ORDINALITY", "OTHERS", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", - "OVERLAY", "OVERRIDING", "OWNER", "PAD", "PARAMETER", "PARAMETER_MODE", - "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", - "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARAMETERS", - "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", "PATH", "PERCENT_RANK", - "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", "PLAIN", "PLANS", "PLI", - "POSITION", "POSTFIX", "POWER", "PRECEDING", "PRECISION", "PREFIX", "PREORDER", - "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", - "PROCEDURAL", "PROCEDURE", "PUBLIC", "PUBLICATION", "QUOTE", "RANGE", - "RANK", "READ", "READS", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", - "REF", "REFERENCES", "REFERENCING", "REFRESH", "REGR_AVGX", "REGR_AVGY", - "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", - "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", "RENAME", "REPEATABLE", - "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RESULT", "RETURN", - "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", - "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", - "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW", - "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", "SCHEMA", - "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", - "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", - "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", - "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", - "SIMPLE", "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", - "SPACE", "SPECIFIC", "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", - "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", - "START", "STATE", "STATEMENT", "STATIC", "STATISTICS", "STDDEV_POP", - "STDDEV_SAMP", "STDIN", "STDOUT", "STORAGE", "STRICT", "STRUCTURE", "STYLE", - "SUBCLASS_ORIGIN", "SUBLIST", "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", - "SUM", "SYMMETRIC", "SYSID", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", - "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", - "THAN", "THEN", "TIES", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", - "TIMING", "TO", "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", - "TRANSACTION_ACTIVE", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", - "TRANSFORM", "TRANSFORMS", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", - "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TRIM", "TRUE", - "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", - "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNNAMED", - "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", - "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", - "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", - "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", - "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", - "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", - "YES", "ZONE", "SUPERUSER", "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", - "INHERIT", "NOINHERIT", "LOGIN", "NOLOGIN", "REPLICATION", "NOREPLICATION", - "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", - "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", - "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", - "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "UNSAFE", - "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", - "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", - "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", - "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", - "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", - "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", - "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", - "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", - "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", - "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", - "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", - "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", - "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", - "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", - "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", - "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", - "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", - "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", - "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", - "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", - "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", - "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" - }; - } - public static final String[] ruleNames = makeRuleNames(); - - private static String[] makeLiteralNames() { - return new String[] { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", - "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, - null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", - "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", - "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", - "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", - "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", - "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", - "';'" - }; - } - private static final String[] _LITERAL_NAMES = makeLiteralNames(); - private static String[] makeSymbolicNames() { - return new String[] { - null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", - "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", - "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", - "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", - "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", - "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", - "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", - "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", - "CARDINALITY", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", - "CEIL", "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", - "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", - "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", - "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", - "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", - "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", - "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", - "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", - "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", - "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", - "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", - "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", - "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", - "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", - "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", - "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", - "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", - "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", - "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", - "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", - "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", - "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", - "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", - "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", - "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", - "EXEC", "EXECUTE", "EXISTING", "EXISTS", "EXP", "EXPLAIN", "EXTENDED", - "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", "FILTER", - "FINAL", "FIRST", "FLOAT", "FLOOR", "FOLLOWING", "FOR", "FORCE", "FOREIGN", - "FORMAT", "FORTRAN", "FORWARD", "FOUND", "FREE", "FREEZE", "FROM", "FULL", - "FUNCTION", "FUSION", "G_", "GENERAL", "GENERATED", "GET", "GLOBAL", - "GO", "GOTO", "GRANT", "GRANTED", "GREATEST", "GROUP", "GROUPING", "HANDLER", - "HAVING", "HIERARCHY", "HOLD", "HOST", "HOUR", "IDENTITY", "IGNORE", - "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLEMENTATION", "IMPLICIT", "IN", - "INCLUDING", "INCREMENT", "INDEX", "INDICATOR", "INFIX", "INHERITS", - "INITIALIZE", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", - "INSERT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INT", "INTEGER", "INTERSECT", - "INTERSECTION", "INTERVAL", "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", - "JOIN", "K_", "KEY", "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", - "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", - "LESS", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", - "LOCALTIMESTAMP", "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", - "MAIN", "MAP", "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", - "MAXVALUE", "MEMBER", "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", - "MESSAGE_TEXT", "METHOD", "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", - "MODIFIES", "MODIFY", "MODULE", "MONTH", "MORE_", "MOVE", "MULTISET", - "MUMPS", "NAME", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NESTING", - "NEW", "NEXT", "NO", "NOCREATEDB", "NOCREATEUSER", "NONE", "NORMALIZE", - "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL", - "NULLABLE", "NULLIF", "NULLS", "NUMBER", "NUMERIC", "OBJECT", "OCTET_LENGTH", - "OCTETS", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPEN", - "OPERATION", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDERING", - "ORDINALITY", "OTHERS", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", - "OVERLAY", "OVERRIDING", "OWNER", "PAD", "PARAMETER", "PARAMETER_MODE", - "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", - "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARAMETERS", - "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", "PATH", "PERCENT_RANK", - "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", "PLAIN", "PLANS", "PLI", - "POSITION", "POSTFIX", "POWER", "PRECEDING", "PRECISION", "PREFIX", "PREORDER", - "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", - "PROCEDURAL", "PROCEDURE", "PUBLIC", "PUBLICATION", "QUOTE", "RANGE", - "RANK", "READ", "READS", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", - "REF", "REFERENCES", "REFERENCING", "REFRESH", "REGR_AVGX", "REGR_AVGY", - "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", - "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", "RENAME", "REPEATABLE", - "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RESULT", "RETURN", - "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", - "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", - "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW", - "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", "SCHEMA", - "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", - "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", - "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", - "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", - "SIMPLE", "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", - "SPACE", "SPECIFIC", "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", - "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", - "START", "STATE", "STATEMENT", "STATIC", "STATISTICS", "STDDEV_POP", - "STDDEV_SAMP", "STDIN", "STDOUT", "STORAGE", "STRICT", "STRUCTURE", "STYLE", - "SUBCLASS_ORIGIN", "SUBLIST", "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", - "SUM", "SYMMETRIC", "SYSID", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", - "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", - "THAN", "THEN", "TIES", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", - "TIMING", "TO", "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", - "TRANSACTION_ACTIVE", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", - "TRANSFORM", "TRANSFORMS", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", - "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TRIM", "TRUE", - "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", - "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNNAMED", - "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", - "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", - "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", - "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", - "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", - "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", - "YES", "ZONE", "SUPERUSER", "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", - "INHERIT", "NOINHERIT", "LOGIN", "NOLOGIN", "REPLICATION", "NOREPLICATION", - "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", - "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", - "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", - "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "UNSAFE", - "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", - "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", - "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", - "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", - "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", - "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", - "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", - "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", - "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", - "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", - "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", - "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", - "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", - "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", - "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", - "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", - "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", - "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", - "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", - "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", - "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", - "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" - }; - } - private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - - public PostgreSQLLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @Override - public String getGrammarFileName() { return "PostgreSQLLexer.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public String[] getChannelNames() { return channelNames; } - - @Override - public String[] getModeNames() { return modeNames; } - - @Override - public ATN getATN() { return _ATN; } - - private static final String _serializedATNSegment0 = - "\u0004\u0000\u0341\u21d8\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ - "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ - "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ - "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ - "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ - "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ - "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ - "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ - "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ - "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ - "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ - "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ - "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ - "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ - "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ - "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ - ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ - "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ - "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ - "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ - "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ - "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ - "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ - "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ - "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ - "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ - "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ - "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ - "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ - "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ - "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ - "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ - "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ - "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ - "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ - "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ - "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ - "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ - "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ - "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ - "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ - "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ - "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ - "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ - "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ - "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ - "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ - "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ - "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ - "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ - "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ - "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ - "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ - "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ - "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ - "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ - "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ - "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ - "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ - "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ - "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ - "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ - "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ - "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ - "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ - "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ - "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ - "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ - "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ - "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ - "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ - "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ - "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ - "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ - "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ - "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ - "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ - "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ - "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ - "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ - "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ - "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ - "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ - "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ - "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ - "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ - "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ - "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ - "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ - "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ - "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ - "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ - "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ - "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ - "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ - "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ - "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ - "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ - "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ - "\u0002\u014f\u0007\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151"+ - "\u0002\u0152\u0007\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154"+ - "\u0002\u0155\u0007\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157"+ - "\u0002\u0158\u0007\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a"+ - "\u0002\u015b\u0007\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d"+ - "\u0002\u015e\u0007\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160"+ - "\u0002\u0161\u0007\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163"+ - "\u0002\u0164\u0007\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166"+ - "\u0002\u0167\u0007\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169"+ - "\u0002\u016a\u0007\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c"+ - "\u0002\u016d\u0007\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f"+ - "\u0002\u0170\u0007\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172"+ - "\u0002\u0173\u0007\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175"+ - "\u0002\u0176\u0007\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178"+ - "\u0002\u0179\u0007\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b"+ - "\u0002\u017c\u0007\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e"+ - "\u0002\u017f\u0007\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181"+ - "\u0002\u0182\u0007\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184"+ - "\u0002\u0185\u0007\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187"+ - "\u0002\u0188\u0007\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a"+ - "\u0002\u018b\u0007\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d"+ - "\u0002\u018e\u0007\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190"+ - "\u0002\u0191\u0007\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193"+ - "\u0002\u0194\u0007\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196"+ - "\u0002\u0197\u0007\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199"+ - "\u0002\u019a\u0007\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c"+ - "\u0002\u019d\u0007\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f"+ - "\u0002\u01a0\u0007\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2"+ - "\u0002\u01a3\u0007\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5"+ - "\u0002\u01a6\u0007\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8"+ - "\u0002\u01a9\u0007\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab"+ - "\u0002\u01ac\u0007\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae"+ - "\u0002\u01af\u0007\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1"+ - "\u0002\u01b2\u0007\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4"+ - "\u0002\u01b5\u0007\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7"+ - "\u0002\u01b8\u0007\u01b8\u0002\u01b9\u0007\u01b9\u0002\u01ba\u0007\u01ba"+ - "\u0002\u01bb\u0007\u01bb\u0002\u01bc\u0007\u01bc\u0002\u01bd\u0007\u01bd"+ - "\u0002\u01be\u0007\u01be\u0002\u01bf\u0007\u01bf\u0002\u01c0\u0007\u01c0"+ - "\u0002\u01c1\u0007\u01c1\u0002\u01c2\u0007\u01c2\u0002\u01c3\u0007\u01c3"+ - "\u0002\u01c4\u0007\u01c4\u0002\u01c5\u0007\u01c5\u0002\u01c6\u0007\u01c6"+ - "\u0002\u01c7\u0007\u01c7\u0002\u01c8\u0007\u01c8\u0002\u01c9\u0007\u01c9"+ - "\u0002\u01ca\u0007\u01ca\u0002\u01cb\u0007\u01cb\u0002\u01cc\u0007\u01cc"+ - "\u0002\u01cd\u0007\u01cd\u0002\u01ce\u0007\u01ce\u0002\u01cf\u0007\u01cf"+ - "\u0002\u01d0\u0007\u01d0\u0002\u01d1\u0007\u01d1\u0002\u01d2\u0007\u01d2"+ - "\u0002\u01d3\u0007\u01d3\u0002\u01d4\u0007\u01d4\u0002\u01d5\u0007\u01d5"+ - "\u0002\u01d6\u0007\u01d6\u0002\u01d7\u0007\u01d7\u0002\u01d8\u0007\u01d8"+ - "\u0002\u01d9\u0007\u01d9\u0002\u01da\u0007\u01da\u0002\u01db\u0007\u01db"+ - "\u0002\u01dc\u0007\u01dc\u0002\u01dd\u0007\u01dd\u0002\u01de\u0007\u01de"+ - "\u0002\u01df\u0007\u01df\u0002\u01e0\u0007\u01e0\u0002\u01e1\u0007\u01e1"+ - "\u0002\u01e2\u0007\u01e2\u0002\u01e3\u0007\u01e3\u0002\u01e4\u0007\u01e4"+ - "\u0002\u01e5\u0007\u01e5\u0002\u01e6\u0007\u01e6\u0002\u01e7\u0007\u01e7"+ - "\u0002\u01e8\u0007\u01e8\u0002\u01e9\u0007\u01e9\u0002\u01ea\u0007\u01ea"+ - "\u0002\u01eb\u0007\u01eb\u0002\u01ec\u0007\u01ec\u0002\u01ed\u0007\u01ed"+ - "\u0002\u01ee\u0007\u01ee\u0002\u01ef\u0007\u01ef\u0002\u01f0\u0007\u01f0"+ - "\u0002\u01f1\u0007\u01f1\u0002\u01f2\u0007\u01f2\u0002\u01f3\u0007\u01f3"+ - "\u0002\u01f4\u0007\u01f4\u0002\u01f5\u0007\u01f5\u0002\u01f6\u0007\u01f6"+ - "\u0002\u01f7\u0007\u01f7\u0002\u01f8\u0007\u01f8\u0002\u01f9\u0007\u01f9"+ - "\u0002\u01fa\u0007\u01fa\u0002\u01fb\u0007\u01fb\u0002\u01fc\u0007\u01fc"+ - "\u0002\u01fd\u0007\u01fd\u0002\u01fe\u0007\u01fe\u0002\u01ff\u0007\u01ff"+ - "\u0002\u0200\u0007\u0200\u0002\u0201\u0007\u0201\u0002\u0202\u0007\u0202"+ - "\u0002\u0203\u0007\u0203\u0002\u0204\u0007\u0204\u0002\u0205\u0007\u0205"+ - "\u0002\u0206\u0007\u0206\u0002\u0207\u0007\u0207\u0002\u0208\u0007\u0208"+ - "\u0002\u0209\u0007\u0209\u0002\u020a\u0007\u020a\u0002\u020b\u0007\u020b"+ - "\u0002\u020c\u0007\u020c\u0002\u020d\u0007\u020d\u0002\u020e\u0007\u020e"+ - "\u0002\u020f\u0007\u020f\u0002\u0210\u0007\u0210\u0002\u0211\u0007\u0211"+ - "\u0002\u0212\u0007\u0212\u0002\u0213\u0007\u0213\u0002\u0214\u0007\u0214"+ - "\u0002\u0215\u0007\u0215\u0002\u0216\u0007\u0216\u0002\u0217\u0007\u0217"+ - "\u0002\u0218\u0007\u0218\u0002\u0219\u0007\u0219\u0002\u021a\u0007\u021a"+ - "\u0002\u021b\u0007\u021b\u0002\u021c\u0007\u021c\u0002\u021d\u0007\u021d"+ - "\u0002\u021e\u0007\u021e\u0002\u021f\u0007\u021f\u0002\u0220\u0007\u0220"+ - "\u0002\u0221\u0007\u0221\u0002\u0222\u0007\u0222\u0002\u0223\u0007\u0223"+ - "\u0002\u0224\u0007\u0224\u0002\u0225\u0007\u0225\u0002\u0226\u0007\u0226"+ - "\u0002\u0227\u0007\u0227\u0002\u0228\u0007\u0228\u0002\u0229\u0007\u0229"+ - "\u0002\u022a\u0007\u022a\u0002\u022b\u0007\u022b\u0002\u022c\u0007\u022c"+ - "\u0002\u022d\u0007\u022d\u0002\u022e\u0007\u022e\u0002\u022f\u0007\u022f"+ - "\u0002\u0230\u0007\u0230\u0002\u0231\u0007\u0231\u0002\u0232\u0007\u0232"+ - "\u0002\u0233\u0007\u0233\u0002\u0234\u0007\u0234\u0002\u0235\u0007\u0235"+ - "\u0002\u0236\u0007\u0236\u0002\u0237\u0007\u0237\u0002\u0238\u0007\u0238"+ - "\u0002\u0239\u0007\u0239\u0002\u023a\u0007\u023a\u0002\u023b\u0007\u023b"+ - "\u0002\u023c\u0007\u023c\u0002\u023d\u0007\u023d\u0002\u023e\u0007\u023e"+ - "\u0002\u023f\u0007\u023f\u0002\u0240\u0007\u0240\u0002\u0241\u0007\u0241"+ - "\u0002\u0242\u0007\u0242\u0002\u0243\u0007\u0243\u0002\u0244\u0007\u0244"+ - "\u0002\u0245\u0007\u0245\u0002\u0246\u0007\u0246\u0002\u0247\u0007\u0247"+ - "\u0002\u0248\u0007\u0248\u0002\u0249\u0007\u0249\u0002\u024a\u0007\u024a"+ - "\u0002\u024b\u0007\u024b\u0002\u024c\u0007\u024c\u0002\u024d\u0007\u024d"+ - "\u0002\u024e\u0007\u024e\u0002\u024f\u0007\u024f\u0002\u0250\u0007\u0250"+ - "\u0002\u0251\u0007\u0251\u0002\u0252\u0007\u0252\u0002\u0253\u0007\u0253"+ - "\u0002\u0254\u0007\u0254\u0002\u0255\u0007\u0255\u0002\u0256\u0007\u0256"+ - "\u0002\u0257\u0007\u0257\u0002\u0258\u0007\u0258\u0002\u0259\u0007\u0259"+ - "\u0002\u025a\u0007\u025a\u0002\u025b\u0007\u025b\u0002\u025c\u0007\u025c"+ - "\u0002\u025d\u0007\u025d\u0002\u025e\u0007\u025e\u0002\u025f\u0007\u025f"+ - "\u0002\u0260\u0007\u0260\u0002\u0261\u0007\u0261\u0002\u0262\u0007\u0262"+ - "\u0002\u0263\u0007\u0263\u0002\u0264\u0007\u0264\u0002\u0265\u0007\u0265"+ - "\u0002\u0266\u0007\u0266\u0002\u0267\u0007\u0267\u0002\u0268\u0007\u0268"+ - "\u0002\u0269\u0007\u0269\u0002\u026a\u0007\u026a\u0002\u026b\u0007\u026b"+ - "\u0002\u026c\u0007\u026c\u0002\u026d\u0007\u026d\u0002\u026e\u0007\u026e"+ - "\u0002\u026f\u0007\u026f\u0002\u0270\u0007\u0270\u0002\u0271\u0007\u0271"+ - "\u0002\u0272\u0007\u0272\u0002\u0273\u0007\u0273\u0002\u0274\u0007\u0274"+ - "\u0002\u0275\u0007\u0275\u0002\u0276\u0007\u0276\u0002\u0277\u0007\u0277"+ - "\u0002\u0278\u0007\u0278\u0002\u0279\u0007\u0279\u0002\u027a\u0007\u027a"+ - "\u0002\u027b\u0007\u027b\u0002\u027c\u0007\u027c\u0002\u027d\u0007\u027d"+ - "\u0002\u027e\u0007\u027e\u0002\u027f\u0007\u027f\u0002\u0280\u0007\u0280"+ - "\u0002\u0281\u0007\u0281\u0002\u0282\u0007\u0282\u0002\u0283\u0007\u0283"+ - "\u0002\u0284\u0007\u0284\u0002\u0285\u0007\u0285\u0002\u0286\u0007\u0286"+ - "\u0002\u0287\u0007\u0287\u0002\u0288\u0007\u0288\u0002\u0289\u0007\u0289"+ - "\u0002\u028a\u0007\u028a\u0002\u028b\u0007\u028b\u0002\u028c\u0007\u028c"+ - "\u0002\u028d\u0007\u028d\u0002\u028e\u0007\u028e\u0002\u028f\u0007\u028f"+ - "\u0002\u0290\u0007\u0290\u0002\u0291\u0007\u0291\u0002\u0292\u0007\u0292"+ - "\u0002\u0293\u0007\u0293\u0002\u0294\u0007\u0294\u0002\u0295\u0007\u0295"+ - "\u0002\u0296\u0007\u0296\u0002\u0297\u0007\u0297\u0002\u0298\u0007\u0298"+ - "\u0002\u0299\u0007\u0299\u0002\u029a\u0007\u029a\u0002\u029b\u0007\u029b"+ - "\u0002\u029c\u0007\u029c\u0002\u029d\u0007\u029d\u0002\u029e\u0007\u029e"+ - "\u0002\u029f\u0007\u029f\u0002\u02a0\u0007\u02a0\u0002\u02a1\u0007\u02a1"+ - "\u0002\u02a2\u0007\u02a2\u0002\u02a3\u0007\u02a3\u0002\u02a4\u0007\u02a4"+ - "\u0002\u02a5\u0007\u02a5\u0002\u02a6\u0007\u02a6\u0002\u02a7\u0007\u02a7"+ - "\u0002\u02a8\u0007\u02a8\u0002\u02a9\u0007\u02a9\u0002\u02aa\u0007\u02aa"+ - "\u0002\u02ab\u0007\u02ab\u0002\u02ac\u0007\u02ac\u0002\u02ad\u0007\u02ad"+ - "\u0002\u02ae\u0007\u02ae\u0002\u02af\u0007\u02af\u0002\u02b0\u0007\u02b0"+ - "\u0002\u02b1\u0007\u02b1\u0002\u02b2\u0007\u02b2\u0002\u02b3\u0007\u02b3"+ - "\u0002\u02b4\u0007\u02b4\u0002\u02b5\u0007\u02b5\u0002\u02b6\u0007\u02b6"+ - "\u0002\u02b7\u0007\u02b7\u0002\u02b8\u0007\u02b8\u0002\u02b9\u0007\u02b9"+ - "\u0002\u02ba\u0007\u02ba\u0002\u02bb\u0007\u02bb\u0002\u02bc\u0007\u02bc"+ - "\u0002\u02bd\u0007\u02bd\u0002\u02be\u0007\u02be\u0002\u02bf\u0007\u02bf"+ - "\u0002\u02c0\u0007\u02c0\u0002\u02c1\u0007\u02c1\u0002\u02c2\u0007\u02c2"+ - "\u0002\u02c3\u0007\u02c3\u0002\u02c4\u0007\u02c4\u0002\u02c5\u0007\u02c5"+ - "\u0002\u02c6\u0007\u02c6\u0002\u02c7\u0007\u02c7\u0002\u02c8\u0007\u02c8"+ - "\u0002\u02c9\u0007\u02c9\u0002\u02ca\u0007\u02ca\u0002\u02cb\u0007\u02cb"+ - "\u0002\u02cc\u0007\u02cc\u0002\u02cd\u0007\u02cd\u0002\u02ce\u0007\u02ce"+ - "\u0002\u02cf\u0007\u02cf\u0002\u02d0\u0007\u02d0\u0002\u02d1\u0007\u02d1"+ - "\u0002\u02d2\u0007\u02d2\u0002\u02d3\u0007\u02d3\u0002\u02d4\u0007\u02d4"+ - "\u0002\u02d5\u0007\u02d5\u0002\u02d6\u0007\u02d6\u0002\u02d7\u0007\u02d7"+ - "\u0002\u02d8\u0007\u02d8\u0002\u02d9\u0007\u02d9\u0002\u02da\u0007\u02da"+ - "\u0002\u02db\u0007\u02db\u0002\u02dc\u0007\u02dc\u0002\u02dd\u0007\u02dd"+ - "\u0002\u02de\u0007\u02de\u0002\u02df\u0007\u02df\u0002\u02e0\u0007\u02e0"+ - "\u0002\u02e1\u0007\u02e1\u0002\u02e2\u0007\u02e2\u0002\u02e3\u0007\u02e3"+ - "\u0002\u02e4\u0007\u02e4\u0002\u02e5\u0007\u02e5\u0002\u02e6\u0007\u02e6"+ - "\u0002\u02e7\u0007\u02e7\u0002\u02e8\u0007\u02e8\u0002\u02e9\u0007\u02e9"+ - "\u0002\u02ea\u0007\u02ea\u0002\u02eb\u0007\u02eb\u0002\u02ec\u0007\u02ec"+ - "\u0002\u02ed\u0007\u02ed\u0002\u02ee\u0007\u02ee\u0002\u02ef\u0007\u02ef"+ - "\u0002\u02f0\u0007\u02f0\u0002\u02f1\u0007\u02f1\u0002\u02f2\u0007\u02f2"+ - "\u0002\u02f3\u0007\u02f3\u0002\u02f4\u0007\u02f4\u0002\u02f5\u0007\u02f5"+ - "\u0002\u02f6\u0007\u02f6\u0002\u02f7\u0007\u02f7\u0002\u02f8\u0007\u02f8"+ - "\u0002\u02f9\u0007\u02f9\u0002\u02fa\u0007\u02fa\u0002\u02fb\u0007\u02fb"+ - "\u0002\u02fc\u0007\u02fc\u0002\u02fd\u0007\u02fd\u0002\u02fe\u0007\u02fe"+ - "\u0002\u02ff\u0007\u02ff\u0002\u0300\u0007\u0300\u0002\u0301\u0007\u0301"+ - "\u0002\u0302\u0007\u0302\u0002\u0303\u0007\u0303\u0002\u0304\u0007\u0304"+ - "\u0002\u0305\u0007\u0305\u0002\u0306\u0007\u0306\u0002\u0307\u0007\u0307"+ - "\u0002\u0308\u0007\u0308\u0002\u0309\u0007\u0309\u0002\u030a\u0007\u030a"+ - "\u0002\u030b\u0007\u030b\u0002\u030c\u0007\u030c\u0002\u030d\u0007\u030d"+ - "\u0002\u030e\u0007\u030e\u0002\u030f\u0007\u030f\u0002\u0310\u0007\u0310"+ - "\u0002\u0311\u0007\u0311\u0002\u0312\u0007\u0312\u0002\u0313\u0007\u0313"+ - "\u0002\u0314\u0007\u0314\u0002\u0315\u0007\u0315\u0002\u0316\u0007\u0316"+ - "\u0002\u0317\u0007\u0317\u0002\u0318\u0007\u0318\u0002\u0319\u0007\u0319"+ - "\u0002\u031a\u0007\u031a\u0002\u031b\u0007\u031b\u0002\u031c\u0007\u031c"+ - "\u0002\u031d\u0007\u031d\u0002\u031e\u0007\u031e\u0002\u031f\u0007\u031f"+ - "\u0002\u0320\u0007\u0320\u0002\u0321\u0007\u0321\u0002\u0322\u0007\u0322"+ - "\u0002\u0323\u0007\u0323\u0002\u0324\u0007\u0324\u0002\u0325\u0007\u0325"+ - "\u0002\u0326\u0007\u0326\u0002\u0327\u0007\u0327\u0002\u0328\u0007\u0328"+ - "\u0002\u0329\u0007\u0329\u0002\u032a\u0007\u032a\u0002\u032b\u0007\u032b"+ - "\u0002\u032c\u0007\u032c\u0002\u032d\u0007\u032d\u0002\u032e\u0007\u032e"+ - "\u0002\u032f\u0007\u032f\u0002\u0330\u0007\u0330\u0002\u0331\u0007\u0331"+ - "\u0002\u0332\u0007\u0332\u0002\u0333\u0007\u0333\u0002\u0334\u0007\u0334"+ - "\u0002\u0335\u0007\u0335\u0002\u0336\u0007\u0336\u0002\u0337\u0007\u0337"+ - "\u0002\u0338\u0007\u0338\u0002\u0339\u0007\u0339\u0002\u033a\u0007\u033a"+ - "\u0002\u033b\u0007\u033b\u0002\u033c\u0007\u033c\u0002\u033d\u0007\u033d"+ - "\u0002\u033e\u0007\u033e\u0002\u033f\u0007\u033f\u0002\u0340\u0007\u0340"+ - "\u0002\u0341\u0007\u0341\u0002\u0342\u0007\u0342\u0002\u0343\u0007\u0343"+ - "\u0002\u0344\u0007\u0344\u0002\u0345\u0007\u0345\u0002\u0346\u0007\u0346"+ - "\u0002\u0347\u0007\u0347\u0002\u0348\u0007\u0348\u0002\u0349\u0007\u0349"+ - "\u0002\u034a\u0007\u034a\u0002\u034b\u0007\u034b\u0002\u034c\u0007\u034c"+ - "\u0002\u034d\u0007\u034d\u0002\u034e\u0007\u034e\u0002\u034f\u0007\u034f"+ - "\u0002\u0350\u0007\u0350\u0002\u0351\u0007\u0351\u0002\u0352\u0007\u0352"+ - "\u0002\u0353\u0007\u0353\u0002\u0354\u0007\u0354\u0002\u0355\u0007\u0355"+ - "\u0002\u0356\u0007\u0356\u0002\u0357\u0007\u0357\u0002\u0358\u0007\u0358"+ - "\u0002\u0359\u0007\u0359\u0002\u035a\u0007\u035a\u0002\u035b\u0007\u035b"+ - "\u0002\u035c\u0007\u035c\u0002\u035d\u0007\u035d\u0002\u035e\u0007\u035e"+ - "\u0002\u035f\u0007\u035f\u0001\u0000\u0004\u0000\u06c3\b\u0000\u000b\u0000"+ - "\f\u0000\u06c4\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001"+ - "\u0001\u0001\u0005\u0001\u06cd\b\u0001\n\u0001\f\u0001\u06d0\t\u0001\u0001"+ - "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001"+ - "\u0002\u0001\u0002\u0001\u0002\u0005\u0002\u06db\b\u0002\n\u0002\f\u0002"+ - "\u06de\t\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003"+ - "\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006"+ - "\u0001\u0006\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\t\u0001\t\u0001"+ - "\n\u0001\n\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\r\u0001\r\u0001"+ - "\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001"+ - "\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+ - "\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001"+ - "\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001"+ - "\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001"+ - "\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001"+ - "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u0722\b\u001f\n"+ - "\u001f\f\u001f\u0725\t\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001"+ - " \u0001 \u0001 \u0001 \u0005 \u072f\b \n \f \u0732\t \u0001 \u0001 \u0001"+ - "!\u0001!\u0001!\u0001!\u0001!\u0001!\u0005!\u073c\b!\n!\f!\u073f\t!\u0001"+ - "!\u0001!\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+ - "$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+ - "%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ - "\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001"+ - "(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001*\u0001*\u0001*\u0001*\u0001"+ - "*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001"+ - ",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001"+ - "-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001"+ - "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u0001"+ - "0\u00010\u00011\u00011\u00011\u00011\u00011\u00011\u00012\u00012\u0001"+ - "2\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u0001"+ - "3\u00013\u00013\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u0001"+ - "4\u00015\u00015\u00015\u00015\u00016\u00016\u00016\u00016\u00017\u0001"+ - "7\u00017\u00017\u00018\u00018\u00018\u00018\u00018\u00018\u00019\u0001"+ - "9\u00019\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001"+ - ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001<\u0001<\u0001<\u0001"+ - "<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001"+ - "=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001"+ - ">\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001?\u0001"+ - "?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001A\u0001"+ - "A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001"+ - "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ - "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ - "C\u0001C\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001"+ - "E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001"+ - "F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ - "H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ - "I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001J\u0001J\u0001"+ - "J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001K\u0001K\u0001K\u0001"+ - "K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001N\u0001N\u0001N\u0001"+ - "N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001O\u0001O\u0001O\u0001P\u0001"+ - "P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0001"+ - "Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+ - "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ - "T\u0001U\u0001U\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001W\u0001"+ - "W\u0001W\u0001W\u0001W\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ - "X\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ - "Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ - "Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ - "\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0001]\u0001]"+ - "\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001_\u0001"+ - "_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001"+ - "_\u0001_\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001"+ - "a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ - "b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001d\u0001"+ - "d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001e\u0001e\u0001"+ - "e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001"+ - "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ - "f\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ - "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ - "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001"+ - "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ - "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001i\u0001"+ - "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ - "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001"+ - "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ - "j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001"+ - "k\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ - "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001"+ - "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001o\u0001"+ - "o\u0001o\u0001o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ - "p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001"+ - "q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001s\u0001"+ - "s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001"+ - "t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001u\u0001"+ - "u\u0001u\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001"+ - "w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ - "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ - "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001y\u0001y\u0001"+ - "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ - "y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ - "z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ - "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001"+ - "|\u0001|\u0001|\u0001|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001}\u0001"+ - "}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001"+ - "~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001"+ - "~\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ - "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ - "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ - "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ - "\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080"+ - "\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ - "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0082"+ - "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ - "\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ - "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ - "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ - "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0085\u0001\u0085"+ - "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ - "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ - "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0086"+ - "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ - "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0087"+ - "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ - "\u0001\u0087\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088"+ - "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089"+ - "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ - "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a"+ - "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ - "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ - "\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ - "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ - "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ - "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ - "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ - "\u0001\u008c\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ - "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ - "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008e"+ - "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ - "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ - "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008f"+ - "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ - "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u0090"+ - "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090"+ - "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091"+ - "\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091"+ - "\u0001\u0091\u0001\u0091\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092"+ - "\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0093"+ - "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ - "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001\u0094"+ - "\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094"+ - "\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096"+ - "\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097"+ - "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ - "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ - "\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098"+ - "\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099"+ - "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a"+ - "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b"+ - "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ - "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c"+ - "\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d"+ - "\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d"+ - "\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ - "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ - "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f"+ - "\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1"+ - "\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ - "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ - "\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ - "\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ - "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ - "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ - "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ - "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ - "\u0001\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ - "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ - "\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ - "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ - "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ - "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ - "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ - "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ - "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ - "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ - "\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+ - "\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ - "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ - "\u0001\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae"+ - "\u0001\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af"+ - "\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ - "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1"+ - "\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ - "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ - "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ - "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ - "\u0001\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ - "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ - "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ - "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ - "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ - "\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b5\u0001\u00b5"+ - "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ - "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ - "\u0001\u00b6\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7"+ - "\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8"+ - "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b9"+ - "\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ - "\u0001\u00b9\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba"+ - "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00bb\u0001\u00bb"+ - "\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ - "\u0001\u00bb\u0001\u00bb\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ - "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ - "\u0001\u00bc\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ - "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be"+ - "\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ - "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ - "\u0001\u00bf\u0001\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ - "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ - "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2\u0001\u00c2"+ - "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+ - "\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ - "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ - "\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ - "\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ - "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5"+ - "\u0001\u00c5\u0001\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6"+ - "\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7"+ - "\u0001\u00c7\u0001\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ - "\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c9\u0001\u00c9"+ - "\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ - "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ - "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ - "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc"+ - "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ - "\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ - "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ - "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ - "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ - "\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ - "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ - "\u0001\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ - "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ - "\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1"+ - "\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ - "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ - "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ - "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ - "\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3"+ - "\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ - "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ - "\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5"+ - "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d6"+ - "\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6"+ - "\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d8"+ - "\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8"+ - "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ - "\u0001\u00d9\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da"+ - "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db"+ - "\u0001\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ - "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ - "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ - "\u0001\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ - "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ - "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ - "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00de"+ - "\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df"+ - "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ - "\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e1"+ - "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ - "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ - "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ - "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ - "\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e5"+ - "\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5"+ - "\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ - "\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7"+ - "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8"+ - "\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e9\u0001\u00e9"+ - "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00ea"+ - "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ - "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ - "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00ec"+ - "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ - "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ - "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ - "\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee"+ - "\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef"+ - "\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ - "\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1"+ - "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1"+ - "\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f3\u0001\u00f3"+ - "\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3"+ - "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ - "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ - "\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ - "\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ - "\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f7\u0001\u00f7"+ - "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7"+ - "\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8"+ - "\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9"+ - "\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa"+ - "\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb"+ - "\u0001\u00fb\u0001\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc"+ - "\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd"+ - "\u0001\u00fd\u0001\u00fd\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe"+ - "\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff"+ - "\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ - "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ - "\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0102\u0001\u0102"+ - "\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0103\u0001\u0103"+ - "\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103"+ - "\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104"+ - "\u0001\u0104\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105"+ - "\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106\u0001\u0106"+ - "\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0107"+ - "\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0108"+ - "\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0109\u0001\u0109"+ - "\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u010a"+ - "\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010b\u0001\u010b"+ - "\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001\u010c"+ - "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c"+ - "\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d"+ - "\u0001\u010d\u0001\u010e\u0001\u010e\u0001\u010f\u0001\u010f\u0001\u010f"+ - "\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u0110"+ - "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ - "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0111\u0001\u0111\u0001\u0111"+ - "\u0001\u0111\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112"+ - "\u0001\u0112\u0001\u0112\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0114"+ - "\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0115\u0001\u0115"+ - "\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0116\u0001\u0116"+ - "\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116"+ - "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117"+ - "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118"+ - "\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119"+ - "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119"+ - "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a"+ - "\u0001\u011a\u0001\u011a\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b"+ - "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011c\u0001\u011c\u0001\u011c"+ - "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c"+ - "\u0001\u011c\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d"+ - "\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011f"+ - "\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001\u0120"+ - "\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120"+ - "\u0001\u0120\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121"+ - "\u0001\u0121\u0001\u0121\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122"+ - "\u0001\u0122\u0001\u0122\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ - "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ - "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124"+ - "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0125\u0001\u0125"+ - "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ - "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ - "\u0001\u0125\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ - "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0127\u0001\u0127"+ - "\u0001\u0127\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128"+ - "\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0129"+ - "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ - "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u012a\u0001\u012a\u0001\u012a"+ - "\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012b\u0001\u012b\u0001\u012b"+ - "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b"+ - "\u0001\u012b\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c"+ - "\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d"+ - "\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e"+ - "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ - "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012f\u0001\u012f\u0001\u012f"+ - "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f"+ - "\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130"+ - "\u0001\u0130\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131"+ - "\u0001\u0131\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132"+ - "\u0001\u0132\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ - "\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ - "\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134"+ - "\u0001\u0134\u0001\u0134\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135"+ - "\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0136"+ - "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ - "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ - "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137"+ - "\u0001\u0137\u0001\u0137\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138"+ - "\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139"+ - "\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ - "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ - "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ - "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ - "\u0001\u013b\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c"+ - "\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013d\u0001\u013d"+ - "\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e\u0001\u013e"+ - "\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013f"+ - "\u0001\u013f\u0001\u013f\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ - "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ - "\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141"+ - "\u0001\u0141\u0001\u0141\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142"+ - "\u0001\u0142\u0001\u0143\u0001\u0143\u0001\u0144\u0001\u0144\u0001\u0144"+ - "\u0001\u0144\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ - "\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ - "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ - "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0147\u0001\u0147\u0001\u0147"+ - "\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0148\u0001\u0148\u0001\u0148"+ - "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ - "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0149\u0001\u0149\u0001\u0149"+ - "\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149"+ - "\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a"+ - "\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014c"+ - "\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c"+ - "\u0001\u014c\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d"+ - "\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014e"+ - "\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014f\u0001\u014f\u0001\u014f"+ - "\u0001\u014f\u0001\u014f\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ - "\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0151\u0001\u0151\u0001\u0151"+ - "\u0001\u0151\u0001\u0151\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152"+ - "\u0001\u0152\u0001\u0152\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153"+ - "\u0001\u0153\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154"+ - "\u0001\u0154\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155"+ - "\u0001\u0155\u0001\u0155\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0157"+ - "\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0158\u0001\u0158"+ - "\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0159\u0001\u0159"+ - "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ - "\u0001\u0159\u0001\u0159\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ - "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ - "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015b"+ - "\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b"+ - "\u0001\u015b\u0001\u015b\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c"+ - "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015d\u0001\u015d"+ - "\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015e\u0001\u015e\u0001\u015e"+ - "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015f\u0001\u015f"+ - "\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u0160\u0001\u0160"+ - "\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0162"+ - "\u0001\u0162\u0001\u0162\u0001\u0162\u0001\u0163\u0001\u0163\u0001\u0163"+ - "\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0164"+ - "\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0165"+ - "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ - "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ - "\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166"+ - "\u0001\u0166\u0001\u0166\u0001\u0167\u0001\u0167\u0001\u0167\u0001\u0167"+ - "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168"+ - "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0169\u0001\u0169\u0001\u0169"+ - "\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u016a\u0001\u016a"+ - "\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016b\u0001\u016b"+ - "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ - "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ - "\u0001\u016b\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ - "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ - "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ - "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016d\u0001\u016d"+ - "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ - "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016e"+ - "\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e"+ - "\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u0170\u0001\u0170"+ - "\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0171"+ - "\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171"+ - "\u0001\u0171\u0001\u0171\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0172"+ - "\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0174"+ - "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ - "\u0001\u0174\u0001\u0174\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ - "\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0176\u0001\u0176\u0001\u0176"+ - "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0177\u0001\u0177"+ - "\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0178\u0001\u0178"+ - "\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0179\u0001\u0179\u0001\u0179"+ - "\u0001\u0179\u0001\u0179\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ - "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017b"+ - "\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017c"+ - "\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017d\u0001\u017d"+ - "\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017e\u0001\u017e"+ - "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ - "\u0001\u017e\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ - "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u0180\u0001\u0180\u0001\u0180"+ - "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0181\u0001\u0181\u0001\u0181"+ - "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0182\u0001\u0182\u0001\u0182"+ - "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0183"+ - "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0184\u0001\u0184\u0001\u0184"+ - "\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0186"+ - "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ - "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0187\u0001\u0187"+ - "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ - "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0188"+ - "\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0189\u0001\u0189"+ - "\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189"+ - "\u0001\u0189\u0001\u0189\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ - "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ - "\u0001\u018a\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018c"+ - "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ - "\u0001\u018c\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d"+ - "\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e"+ - "\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018f\u0001\u018f"+ - "\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u0190"+ - "\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0191\u0001\u0191"+ - "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ - "\u0001\u0191\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192"+ - "\u0001\u0192\u0001\u0192\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193"+ - "\u0001\u0193\u0001\u0193\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194"+ - "\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0195\u0001\u0195\u0001\u0195"+ - "\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0196"+ - "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196"+ - "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ - "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ - "\u0001\u0197\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198"+ - "\u0001\u0198\u0001\u0198\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u019a"+ - "\u0001\u019a\u0001\u019a\u0001\u019a\u0001\u019b\u0001\u019b\u0001\u019b"+ - "\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019c\u0001\u019c"+ - "\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019d\u0001\u019d\u0001\u019d"+ - "\u0001\u019d\u0001\u019e\u0001\u019e\u0001\u019e\u0001\u019f\u0001\u019f"+ - "\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u01a0\u0001\u01a0\u0001\u01a0"+ - "\u0001\u01a0\u0001\u01a0\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ - "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ - "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2"+ - "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001\u01a3"+ - "\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a4\u0001\u01a4"+ - "\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4"+ - "\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ - "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ - "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ - "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ - "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a9"+ - "\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ - "\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01ab\u0001\u01ab"+ - "\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ac\u0001\u01ac"+ - "\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ad"+ - "\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001\u01ae"+ - "\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ - "\u0001\u01ae\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af"+ - "\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ - "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ - "\u0001\u01b0\u0001\u01b0\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1"+ - "\u0001\u01b1\u0001\u01b1\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2"+ - "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ - "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b4\u0001\u01b4"+ - "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ - "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ - "\u0001\u01b4\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ - "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ - "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001\u01b6"+ - "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ - "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ - "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ - "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ - "\u0001\u01b6\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ - "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ - "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ - "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ - "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b8\u0001\u01b8"+ - "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ - "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ - "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ - "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b9\u0001\u01b9"+ - "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ - "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ - "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ - "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ - "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ - "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01bb"+ - "\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb"+ - "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc"+ - "\u0001\u01bc\u0001\u01bc\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ - "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ - "\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be"+ - "\u0001\u01be\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ - "\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01c0\u0001\u01c0"+ - "\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ - "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ - "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c2\u0001\u01c2"+ - "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ - "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ - "\u0001\u01c2\u0001\u01c2\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ - "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ - "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ - "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ - "\u0001\u01c4\u0001\u01c4\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5"+ - "\u0001\u01c5\u0001\u01c5\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6"+ - "\u0001\u01c6\u0001\u01c6\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c7"+ - "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ - "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c9\u0001\u01c9\u0001\u01c9"+ - "\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01ca"+ - "\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01cb"+ - "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ - "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ - "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ - "\u0001\u01cc\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd"+ - "\u0001\u01cd\u0001\u01cd\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ - "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01cf"+ - "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ - "\u0001\u01cf\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ - "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d1\u0001\u01d1"+ - "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1"+ - "\u0001\u01d1\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2"+ - "\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d3\u0001\u01d3\u0001\u01d3"+ - "\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ - "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ - "\u0001\u01d4\u0001\u01d4\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ - "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ - "\u0001\u01d5\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6"+ - "\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d7"+ - "\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7"+ - "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ - "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ - "\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9"+ - "\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da"+ - "\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01dc"+ - "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dd\u0001\u01dd"+ - "\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01de\u0001\u01de"+ - "\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01df\u0001\u01df\u0001\u01df"+ - "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df"+ - "\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0"+ - "\u0001\u01e0\u0001\u01e0\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ - "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ - "\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e3\u0001\u01e3"+ - "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ - "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ - "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ - "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e5\u0001\u01e5\u0001\u01e5"+ - "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e6"+ - "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ - "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ - "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ - "\u0001\u01e7\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ - "\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ - "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ - "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ - "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01ea\u0001\u01ea\u0001\u01ea"+ - "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01eb"+ - "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb"+ - "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01ec\u0001\u01ec"+ - "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ - "\u0001\u01ec\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ - "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ee\u0001\u01ee"+ - "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ - "\u0001\u01ee\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ - "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ - "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ - "\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ - "\u0001\u01f1\u0001\u01f1\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ - "\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ - "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ - "\u0001\u01f3\u0001\u01f3\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4"+ - "\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f5\u0001\u01f5"+ - "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ - "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ - "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ - "\u0001\u01f7\u0001\u01f7\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8"+ - "\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f9"+ - "\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9"+ - "\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa"+ - "\u0001\u01fa\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ - "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ - "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ - "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fc\u0001\u01fc"+ - "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ - "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ - "\u0001\u01fc\u0001\u01fc\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ - "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ - "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ - "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ - "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ - "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ - "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ - "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ - "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u0200\u0001\u0200"+ - "\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200"+ - "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201"+ - "\u0001\u0201\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202"+ - "\u0001\u0202\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203"+ - "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204"+ - "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0205\u0001\u0205\u0001\u0205"+ - "\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0206\u0001\u0206"+ - "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206"+ - "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ - "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ - "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0208\u0001\u0208"+ - "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ - "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0209"+ - "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ - "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ - "\u0001\u0209\u0001\u0209\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a"+ - "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b"+ - "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020c\u0001\u020c"+ - "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ - "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020d\u0001\u020d\u0001\u020d"+ - "\u0001\u020d\u0001\u020d\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e"+ - "\u0001\u020e\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f"+ - "\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u0210"+ - "\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0211"+ - "\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211"+ - "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ - "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ - "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213"+ - "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ - "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ - "\u0001\u0214\u0001\u0214\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ - "\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ - "\u0001\u0215\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ - "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ - "\u0001\u0216\u0001\u0216\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217"+ - "\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0218\u0001\u0218\u0001\u0218"+ - "\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0219\u0001\u0219"+ - "\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u021a"+ - "\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a"+ - "\u0001\u021a\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b"+ - "\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021c\u0001\u021c"+ - "\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021d"+ - "\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021e\u0001\u021e"+ - "\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e"+ - "\u0001\u021e\u0001\u021e\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f"+ - "\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u0220"+ - "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220"+ - "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0221\u0001\u0221\u0001\u0221"+ - "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ - "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0222\u0001\u0222"+ - "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222"+ - "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0223\u0001\u0223"+ - "\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223"+ - "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ - "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ - "\u0001\u0224\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0226"+ - "\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0227"+ - "\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0228\u0001\u0228"+ - "\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0229\u0001\u0229"+ - "\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u022a\u0001\u022a\u0001\u022a"+ - "\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022b"+ - "\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b"+ - "\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022d"+ - "\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022e\u0001\u022e"+ - "\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e"+ - "\u0001\u022e\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f"+ - "\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u0230\u0001\u0230"+ - "\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0231\u0001\u0231\u0001\u0231"+ - "\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0232\u0001\u0232"+ - "\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0233\u0001\u0233"+ - "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233"+ - "\u0001\u0233\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ - "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ - "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0235\u0001\u0235\u0001\u0235"+ - "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ - "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0236\u0001\u0236"+ - "\u0001\u0236\u0001\u0236\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237"+ - "\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0238\u0001\u0238"+ - "\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238"+ - "\u0001\u0238\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ - "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ - "\u0001\u0239\u0001\u0239\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a"+ - "\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023b"+ - "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ - "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023c\u0001\u023c"+ - "\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023d\u0001\u023d\u0001\u023d"+ - "\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023e\u0001\u023e"+ - "\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023f\u0001\u023f"+ - "\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u0240\u0001\u0240"+ - "\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240"+ - "\u0001\u0240\u0001\u0240\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241"+ - "\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0242\u0001\u0242\u0001\u0242"+ - "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242"+ - "\u0001\u0242\u0001\u0242\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ - "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ - "\u0001\u0243\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ - "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ - "\u0001\u0244\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245"+ - "\u0001\u0245\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246"+ - "\u0001\u0246\u0001\u0246\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247"+ - "\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0248\u0001\u0248"+ - "\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0249"+ - "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249"+ - "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u024a\u0001\u024a\u0001\u024a"+ - "\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024b\u0001\u024b\u0001\u024b"+ - "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ - "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ - "\u0001\u024b\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c"+ - "\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024d\u0001\u024d\u0001\u024d"+ - "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ - "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024e\u0001\u024e\u0001\u024e"+ - "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ - "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024f\u0001\u024f"+ - "\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f"+ - "\u0001\u024f\u0001\u024f\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0250"+ - "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251"+ - "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0252\u0001\u0252"+ - "\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0253\u0001\u0253"+ - "\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0254"+ - "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254"+ - "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0255"+ - "\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0256"+ - "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256"+ - "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0257\u0001\u0257"+ - "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257"+ - "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0258\u0001\u0258"+ - "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258"+ - "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0259\u0001\u0259\u0001\u0259"+ - "\u0001\u0259\u0001\u0259\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a"+ - "\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025b"+ - "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b"+ - "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025c\u0001\u025c\u0001\u025c"+ - "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c"+ - "\u0001\u025c\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d"+ - "\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025f"+ - "\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u0260\u0001\u0260"+ - "\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0261\u0001\u0261\u0001\u0261"+ - "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261"+ - "\u0001\u0261\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ - "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ - "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0263\u0001\u0263\u0001\u0263"+ - "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ - "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ - "\u0001\u0263\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264"+ - "\u0001\u0264\u0001\u0264\u0001\u0265\u0001\u0265\u0001\u0265\u0001\u0266"+ - "\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0267"+ - "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ - "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ - "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0268\u0001\u0268\u0001\u0268"+ - "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268"+ - "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ - "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ - "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ - "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ - "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ - "\u0001\u026a\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ - "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ - "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ - "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ - "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ - "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ - "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ - "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ - "\u0001\u026c\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ - "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026e"+ - "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ - "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026f\u0001\u026f"+ - "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ - "\u0001\u026f\u0001\u026f\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ - "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ - "\u0001\u0270\u0001\u0270\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271"+ - "\u0001\u0271\u0001\u0271\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272"+ - "\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0273\u0001\u0273"+ - "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ - "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ - "\u0001\u0273\u0001\u0273\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ - "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ - "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0275\u0001\u0275\u0001\u0275"+ - "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ - "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ - "\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0277"+ - "\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0278\u0001\u0278"+ - "\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ - "\u0001\u0278\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ - "\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u027a\u0001\u027a\u0001\u027a"+ - "\u0001\u027a\u0001\u027a\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b"+ - "\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027c\u0001\u027c"+ - "\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c"+ - "\u0001\u027c\u0001\u027c\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ - "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ - "\u0001\u027d\u0001\u027d\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e"+ - "\u0001\u027e\u0001\u027e\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ - "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ - "\u0001\u027f\u0001\u027f\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280"+ - "\u0001\u0280\u0001\u0280\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ - "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0282\u0001\u0282\u0001\u0282"+ - "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0283"+ - "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ - "\u0001\u0283\u0001\u0283\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ - "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0285\u0001\u0285"+ - "\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0286"+ - "\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0287"+ - "\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287"+ - "\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288"+ - "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289"+ - "\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028b"+ - "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ - "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ - "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ - "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ - "\u0001\u028b\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ - "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ - "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ - "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ - "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ - "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ - "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ - "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028e"+ - "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ - "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ - "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ - "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ - "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f"+ - "\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290"+ - "\u0001\u0290\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291"+ - "\u0001\u0291\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ - "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0293\u0001\u0293"+ - "\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293"+ - "\u0001\u0293\u0001\u0293\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294"+ - "\u0001\u0294\u0001\u0294\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295"+ - "\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0296\u0001\u0296\u0001\u0296"+ - "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0297"+ - "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297"+ - "\u0001\u0297\u0001\u0297\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298"+ - "\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0299\u0001\u0299"+ - "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299"+ - "\u0001\u0299\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a"+ - "\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029b\u0001\u029b"+ - "\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b"+ - "\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c"+ - "\u0001\u029c\u0001\u029c\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ - "\u0001\u029d\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ - "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029f\u0001\u029f"+ - "\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ - "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ - "\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1"+ - "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ - "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ - "\u0001\u02a2\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3"+ - "\u0001\u02a3\u0001\u02a3\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4"+ - "\u0001\u02a4\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5"+ - "\u0001\u02a5\u0001\u02a5\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ - "\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a7\u0001\u02a7"+ - "\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a8\u0001\u02a8\u0001\u02a8"+ - "\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a9\u0001\u02a9\u0001\u02a9"+ - "\u0001\u02a9\u0001\u02a9\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa"+ - "\u0001\u02aa\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ac"+ - "\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ad\u0001\u02ad"+ - "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad"+ - "\u0001\u02ad\u0001\u02ad\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ - "\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ - "\u0001\u02ae\u0001\u02ae\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ - "\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ - "\u0001\u02af\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ - "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ - "\u0001\u02b0\u0001\u02b0\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1"+ - "\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b2\u0001\u02b2"+ - "\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2"+ - "\u0001\u02b2\u0001\u02b2\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3"+ - "\u0001\u02b3\u0001\u02b3\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4"+ - "\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b5\u0001\u02b5"+ - "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ - "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b6\u0001\u02b6"+ - "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ - "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ - "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ - "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b8\u0001\u02b8"+ - "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8"+ - "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b9\u0001\u02b9"+ - "\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02ba\u0001\u02ba"+ - "\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02bb\u0001\u02bb"+ - "\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bc"+ - "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ - "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ - "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ - "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ - "\u0001\u02bd\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ - "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ - "\u0001\u02be\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ - "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ - "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ - "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ - "\u0001\u02c0\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ - "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c2\u0001\u02c2"+ - "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c3"+ - "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ - "\u0001\u02c3\u0001\u02c3\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ - "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ - "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c6"+ - "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ - "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c7\u0001\u02c7"+ - "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ - "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ - "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ - "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ - "\u0001\u02c8\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9"+ - "\u0001\u02c9\u0001\u02c9\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ - "\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02cb"+ - "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ - "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ - "\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cd"+ - "\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ - "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce"+ - "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ - "\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0"+ - "\u0001\u02d0\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ - "\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ - "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ - "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ - "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ - "\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4"+ - "\u0001\u02d4\u0001\u02d4\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ - "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ - "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ - "\u0001\u02d5\u0001\u02d5\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ - "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ - "\u0001\u02d6\u0001\u02d6\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ - "\u0001\u02d7\u0001\u02d7\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8"+ - "\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d9\u0001\u02d9"+ - "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02da"+ - "\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02db"+ - "\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02dc\u0001\u02dc"+ - "\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dd\u0001\u02dd\u0001\u02dd"+ - "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02de\u0001\u02de"+ - "\u0001\u02de\u0001\u02de\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df"+ - "\u0001\u02df\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ - "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ - "\u0001\u02e0\u0001\u02e0\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ - "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ - "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ - "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e3\u0001\u02e3"+ - "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ - "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4"+ - "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ - "\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ - "\u0001\u02e5\u0001\u02e5\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6"+ - "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e7\u0001\u02e7"+ - "\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e8"+ - "\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8"+ - "\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ - "\u0001\u02e9\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ - "\u0001\u02ea\u0001\u02ea\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02eb"+ - "\u0001\u02eb\u0001\u02eb\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec"+ - "\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ed\u0001\u02ed"+ - "\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed"+ - "\u0001\u02ed\u0001\u02ed\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ - "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ - "\u0001\u02ee\u0001\u02ee\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef"+ - "\u0001\u02ef\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f1"+ - "\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f2"+ - "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ - "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ - "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f3"+ - "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f4\u0001\u02f4"+ - "\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f5"+ - "\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5"+ - "\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6"+ - "\u0001\u02f6\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ - "\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f9"+ - "\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02fa\u0001\u02fa"+ - "\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fb\u0001\u02fb\u0001\u02fb"+ - "\u0001\u02fb\u0001\u02fb\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc"+ - "\u0001\u02fc\u0001\u02fc\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd"+ - "\u0001\u02fd\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe"+ - "\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff"+ - "\u0001\u02ff\u0001\u02ff\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300"+ - "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0301"+ - "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0302"+ - "\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302"+ - "\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ - "\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ - "\u0001\u0304\u0001\u0304\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305"+ - "\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0306\u0001\u0306"+ - "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0307"+ - "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ - "\u0001\u0307\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ - "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0309\u0001\u0309\u0001\u0309"+ - "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u030a"+ - "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a"+ - "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030b"+ - "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ - "\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030d"+ - "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d"+ - "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030e"+ - "\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e"+ - "\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ - "\u0001\u030f\u0001\u030f\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310"+ - "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0311"+ - "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ - "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ - "\u0001\u0311\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312"+ - "\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313"+ - "\u0001\u0313\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0315"+ - "\u0001\u0315\u0001\u0316\u0001\u0316\u0001\u0317\u0001\u0317\u0001\u0317"+ - "\u0001\u0318\u0001\u0318\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u031a"+ - "\u0001\u031a\u0001\u031b\u0001\u031b\u0001\u031c\u0001\u031c\u0001\u031d"+ - "\u0001\u031d\u0001\u031e\u0001\u031e\u0001\u031f\u0001\u031f\u0001\u031f"+ - "\u0005\u031f\u20e7\b\u031f\n\u031f\f\u031f\u20ea\t\u031f\u0001\u031f\u0001"+ - "\u031f\u0001\u0320\u0001\u0320\u0001\u0320\u0001\u0321\u0003\u0321\u20f2"+ - "\b\u0321\u0001\u0321\u0004\u0321\u20f5\b\u0321\u000b\u0321\f\u0321\u20f6"+ - "\u0001\u0321\u0001\u0321\u0004\u0321\u20fb\b\u0321\u000b\u0321\f\u0321"+ - "\u20fc\u0001\u0321\u0001\u0321\u0005\u0321\u2101\b\u0321\n\u0321\f\u0321"+ - "\u2104\t\u0321\u0001\u0321\u0004\u0321\u2107\b\u0321\u000b\u0321\f\u0321"+ - "\u2108\u0003\u0321\u210b\b\u0321\u0001\u0322\u0003\u0322\u210e\b\u0322"+ - "\u0001\u0322\u0004\u0322\u2111\b\u0322\u000b\u0322\f\u0322\u2112\u0001"+ - "\u0322\u0001\u0322\u0004\u0322\u2117\b\u0322\u000b\u0322\f\u0322\u2118"+ - "\u0003\u0322\u211b\b\u0322\u0001\u0323\u0001\u0323\u0001\u0323\u0001\u0324"+ - "\u0001\u0324\u0001\u0325\u0001\u0325\u0001\u0326\u0001\u0326\u0001\u0327"+ - "\u0001\u0327\u0005\u0327\u2128\b\u0327\n\u0327\f\u0327\u212b\t\u0327\u0001"+ - "\u0328\u0001\u0328\u0004\u0328\u212f\b\u0328\u000b\u0328\f\u0328\u2130"+ - "\u0001\u0329\u0001\u0329\u0005\u0329\u2135\b\u0329\n\u0329\f\u0329\u2138"+ - "\t\u0329\u0001\u032a\u0001\u032a\u0001\u032b\u0001\u032b\u0001\u032b\u0001"+ - "\u032c\u0001\u032c\u0001\u032c\u0001\u032d\u0001\u032d\u0001\u032d\u0001"+ - "\u032e\u0001\u032e\u0001\u032e\u0001\u032f\u0001\u032f\u0001\u0330\u0001"+ - "\u0330\u0001\u0331\u0001\u0331\u0001\u0331\u0001\u0332\u0001\u0332\u0001"+ - "\u0332\u0001\u0333\u0001\u0333\u0001\u0334\u0001\u0334\u0001\u0335\u0001"+ - "\u0335\u0001\u0335\u0001\u0336\u0001\u0336\u0001\u0337\u0001\u0337\u0001"+ - "\u0337\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0339\u0001\u0339\u0001"+ - "\u033a\u0001\u033a\u0001\u033a\u0001\u033b\u0001\u033b\u0001\u033b\u0001"+ - "\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033d\u0001\u033d\u0001"+ - "\u033d\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033f\u0001\u033f\u0001"+ - "\u033f\u0001\u033f\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001"+ - "\u0341\u0001\u0341\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0343\u0001"+ - "\u0343\u0001\u0343\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0345\u0001"+ - "\u0345\u0001\u0345\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0346\u0001"+ - "\u0347\u0001\u0347\u0001\u0347\u0001\u0348\u0001\u0348\u0001\u0348\u0001"+ - "\u0348\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u034a\u0001"+ - "\u034a\u0001\u034b\u0001\u034b\u0001\u034c\u0001\u034c\u0001\u034d\u0001"+ - "\u034d\u0001\u034d\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001"+ - "\u034f\u0001\u034f\u0001\u034f\u0001\u0350\u0001\u0350\u0001\u0351\u0001"+ - "\u0351\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0353\u0001\u0353\u0001"+ - "\u0353\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0355\u0001\u0355\u0001"+ - "\u0355\u0001\u0356\u0001\u0356\u0001\u0357\u0001\u0357\u0001\u0358\u0001"+ - "\u0358\u0001\u0358\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359\u0001"+ - "\u0359\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035b\u0001"+ - "\u035b\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035c\u0001\u035c\u0001"+ - "\u035c\u0001\u035c\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035e\u0001"+ - "\u035e\u0001\u035e\u0001\u035f\u0001\u035f\u0002\u06ce\u06dc\u0000\u0360"+ - "\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0000\t\u0000\u000b\u0000\r"+ - "\u0000\u000f\u0000\u0011\u0000\u0013\u0000\u0015\u0000\u0017\u0000\u0019"+ - "\u0000\u001b\u0000\u001d\u0000\u001f\u0000!\u0000#\u0000%\u0000\'\u0000"+ - ")\u0000+\u0000-\u0000/\u00001\u00003\u00005\u00007\u00009\u0000;\u0000"+ - "=\u0000?\u0000A\u0000C\u0000E\u0004G\u0005I\u0006K\u0007M\bO\tQ\nS\u000b"+ - "U\fW\rY\u000e[\u000f]\u0010_\u0011a\u0012c\u0013e\u0014g\u0015i\u0016"+ - "k\u0017m\u0018o\u0019q\u001as\u001bu\u001cw\u001dy\u001e{\u001f} \u007f"+ - "!\u0081\"\u0083#\u0085$\u0087%\u0089&\u008b\'\u008d(\u008f)\u0091*\u0093"+ - "+\u0095,\u0097-\u0099.\u009b/\u009d0\u009f1\u00a12\u00a33\u00a54\u00a7"+ - "5\u00a96\u00ab7\u00ad8\u00af9\u00b1:\u00b3;\u00b5<\u00b7=\u00b9>\u00bb"+ - "?\u00bd@\u00bfA\u00c1B\u00c3C\u00c5D\u00c7E\u00c9F\u00cbG\u00cdH\u00cf"+ - "I\u00d1J\u00d3K\u00d5L\u00d7M\u00d9N\u00dbO\u00ddP\u00dfQ\u00e1R\u00e3"+ - "S\u00e5T\u00e7U\u00e9V\u00ebW\u00edX\u00efY\u00f1Z\u00f3[\u00f5\\\u00f7"+ - "]\u00f9^\u00fb_\u00fd`\u00ffa\u0101b\u0103c\u0105d\u0107e\u0109f\u010b"+ - "g\u010dh\u010fi\u0111j\u0113k\u0115l\u0117m\u0119n\u011bo\u011dp\u011f"+ - "q\u0121r\u0123s\u0125t\u0127u\u0129v\u012bw\u012dx\u012fy\u0131z\u0133"+ - "{\u0135|\u0137}\u0139~\u013b\u007f\u013d\u0080\u013f\u0081\u0141\u0082"+ - "\u0143\u0083\u0145\u0084\u0147\u0085\u0149\u0086\u014b\u0087\u014d\u0088"+ - "\u014f\u0089\u0151\u008a\u0153\u008b\u0155\u008c\u0157\u008d\u0159\u008e"+ - "\u015b\u008f\u015d\u0090\u015f\u0091\u0161\u0092\u0163\u0093\u0165\u0094"+ - "\u0167\u0095\u0169\u0096\u016b\u0097\u016d\u0098\u016f\u0099\u0171\u009a"+ - "\u0173\u009b\u0175\u009c\u0177\u009d\u0179\u009e\u017b\u009f\u017d\u00a0"+ - "\u017f\u00a1\u0181\u00a2\u0183\u00a3\u0185\u00a4\u0187\u00a5\u0189\u00a6"+ - "\u018b\u00a7\u018d\u00a8\u018f\u00a9\u0191\u00aa\u0193\u00ab\u0195\u00ac"+ - "\u0197\u00ad\u0199\u00ae\u019b\u00af\u019d\u00b0\u019f\u00b1\u01a1\u00b2"+ - "\u01a3\u00b3\u01a5\u00b4\u01a7\u00b5\u01a9\u00b6\u01ab\u00b7\u01ad\u00b8"+ - "\u01af\u00b9\u01b1\u00ba\u01b3\u00bb\u01b5\u00bc\u01b7\u00bd\u01b9\u00be"+ - "\u01bb\u00bf\u01bd\u00c0\u01bf\u00c1\u01c1\u00c2\u01c3\u00c3\u01c5\u00c4"+ - "\u01c7\u00c5\u01c9\u00c6\u01cb\u00c7\u01cd\u00c8\u01cf\u00c9\u01d1\u00ca"+ - "\u01d3\u00cb\u01d5\u00cc\u01d7\u00cd\u01d9\u00ce\u01db\u00cf\u01dd\u00d0"+ - "\u01df\u00d1\u01e1\u00d2\u01e3\u00d3\u01e5\u00d4\u01e7\u00d5\u01e9\u00d6"+ - "\u01eb\u00d7\u01ed\u00d8\u01ef\u00d9\u01f1\u00da\u01f3\u00db\u01f5\u00dc"+ - "\u01f7\u00dd\u01f9\u00de\u01fb\u00df\u01fd\u00e0\u01ff\u00e1\u0201\u00e2"+ - "\u0203\u00e3\u0205\u00e4\u0207\u00e5\u0209\u00e6\u020b\u00e7\u020d\u00e8"+ - "\u020f\u00e9\u0211\u00ea\u0213\u00eb\u0215\u00ec\u0217\u00ed\u0219\u00ee"+ - "\u021b\u00ef\u021d\u00f0\u021f\u00f1\u0221\u00f2\u0223\u00f3\u0225\u00f4"+ - "\u0227\u00f5\u0229\u00f6\u022b\u00f7\u022d\u00f8\u022f\u00f9\u0231\u00fa"+ - "\u0233\u00fb\u0235\u00fc\u0237\u00fd\u0239\u00fe\u023b\u00ff\u023d\u0100"+ - "\u023f\u0101\u0241\u0102\u0243\u0103\u0245\u0104\u0247\u0105\u0249\u0106"+ - "\u024b\u0107\u024d\u0108\u024f\u0109\u0251\u010a\u0253\u010b\u0255\u010c"+ - "\u0257\u010d\u0259\u010e\u025b\u010f\u025d\u0110\u025f\u0111\u0261\u0112"+ - "\u0263\u0113\u0265\u0114\u0267\u0115\u0269\u0116\u026b\u0117\u026d\u0118"+ - "\u026f\u0119\u0271\u011a\u0273\u011b\u0275\u011c\u0277\u011d\u0279\u011e"+ - "\u027b\u011f\u027d\u0120\u027f\u0121\u0281\u0122\u0283\u0123\u0285\u0124"+ - "\u0287\u0125\u0289\u0126\u028b\u0127\u028d\u0128\u028f\u0129\u0291\u012a"+ - "\u0293\u012b\u0295\u012c\u0297\u012d\u0299\u012e\u029b\u012f\u029d\u0130"+ - "\u029f\u0131\u02a1\u0132\u02a3\u0133\u02a5\u0134\u02a7\u0135\u02a9\u0136"+ - "\u02ab\u0137\u02ad\u0138\u02af\u0139\u02b1\u013a\u02b3\u013b\u02b5\u013c"+ - "\u02b7\u013d\u02b9\u013e\u02bb\u013f\u02bd\u0140\u02bf\u0141\u02c1\u0142"+ - "\u02c3\u0143\u02c5\u0144\u02c7\u0145\u02c9\u0146\u02cb\u0147\u02cd\u0148"+ - "\u02cf\u0149\u02d1\u014a\u02d3\u014b\u02d5\u014c\u02d7\u014d\u02d9\u014e"+ - "\u02db\u014f\u02dd\u0150\u02df\u0151\u02e1\u0152\u02e3\u0153\u02e5\u0154"+ - "\u02e7\u0155\u02e9\u0156\u02eb\u0157\u02ed\u0158\u02ef\u0159\u02f1\u015a"+ - "\u02f3\u015b\u02f5\u015c\u02f7\u015d\u02f9\u015e\u02fb\u015f\u02fd\u0160"+ - "\u02ff\u0161\u0301\u0162\u0303\u0163\u0305\u0164\u0307\u0165\u0309\u0166"+ - "\u030b\u0167\u030d\u0168\u030f\u0169\u0311\u016a\u0313\u016b\u0315\u016c"+ - "\u0317\u016d\u0319\u016e\u031b\u016f\u031d\u0170\u031f\u0171\u0321\u0172"+ - "\u0323\u0173\u0325\u0174\u0327\u0175\u0329\u0176\u032b\u0177\u032d\u0178"+ - "\u032f\u0179\u0331\u017a\u0333\u017b\u0335\u017c\u0337\u017d\u0339\u017e"+ - "\u033b\u017f\u033d\u0180\u033f\u0181\u0341\u0182\u0343\u0183\u0345\u0184"+ - "\u0347\u0185\u0349\u0186\u034b\u0187\u034d\u0188\u034f\u0189\u0351\u018a"+ - "\u0353\u018b\u0355\u018c\u0357\u018d\u0359\u018e\u035b\u018f\u035d\u0190"+ - "\u035f\u0191\u0361\u0192\u0363\u0193\u0365\u0194\u0367\u0195\u0369\u0196"+ - "\u036b\u0197\u036d\u0198\u036f\u0199\u0371\u019a\u0373\u019b\u0375\u019c"+ - "\u0377\u019d\u0379\u019e\u037b\u019f\u037d\u01a0\u037f\u01a1\u0381\u01a2"+ - "\u0383\u01a3\u0385\u01a4\u0387\u01a5\u0389\u01a6\u038b\u01a7\u038d\u01a8"+ - "\u038f\u01a9\u0391\u01aa\u0393\u01ab\u0395\u01ac\u0397\u01ad\u0399\u01ae"+ - "\u039b\u01af\u039d\u01b0\u039f\u01b1\u03a1\u01b2\u03a3\u01b3\u03a5\u01b4"+ - "\u03a7\u01b5\u03a9\u01b6\u03ab\u01b7\u03ad\u01b8\u03af\u01b9\u03b1\u01ba"+ - "\u03b3\u01bb\u03b5\u01bc\u03b7\u01bd\u03b9\u01be\u03bb\u01bf\u03bd\u01c0"+ - "\u03bf\u01c1\u03c1\u01c2\u03c3\u01c3\u03c5\u01c4\u03c7\u01c5\u03c9\u01c6"+ - "\u03cb\u01c7\u03cd\u01c8\u03cf\u01c9\u03d1\u01ca\u03d3\u01cb\u03d5\u01cc"+ - "\u03d7\u01cd\u03d9\u01ce\u03db\u01cf\u03dd\u01d0\u03df\u01d1\u03e1\u01d2"+ - "\u03e3\u01d3\u03e5\u01d4\u03e7\u01d5\u03e9\u01d6\u03eb\u01d7\u03ed\u01d8"+ - "\u03ef\u01d9\u03f1\u01da\u03f3\u01db\u03f5\u01dc\u03f7\u01dd\u03f9\u01de"+ - "\u03fb\u01df\u03fd\u01e0\u03ff\u01e1\u0401\u01e2\u0403\u01e3\u0405\u01e4"+ - "\u0407\u01e5\u0409\u01e6\u040b\u01e7\u040d\u01e8\u040f\u01e9\u0411\u01ea"+ - "\u0413\u01eb\u0415\u01ec\u0417\u01ed\u0419\u01ee\u041b\u01ef\u041d\u01f0"+ - "\u041f\u01f1\u0421\u01f2\u0423\u01f3\u0425\u01f4\u0427\u01f5\u0429\u01f6"+ - "\u042b\u01f7\u042d\u01f8\u042f\u01f9\u0431\u01fa\u0433\u01fb\u0435\u01fc"+ - "\u0437\u01fd\u0439\u01fe\u043b\u01ff\u043d\u0200\u043f\u0201\u0441\u0202"+ - "\u0443\u0203\u0445\u0204\u0447\u0205\u0449\u0206\u044b\u0207\u044d\u0208"+ - "\u044f\u0209\u0451\u020a\u0453\u020b\u0455\u020c\u0457\u020d\u0459\u020e"+ - "\u045b\u020f\u045d\u0210\u045f\u0211\u0461\u0212\u0463\u0213\u0465\u0214"+ - "\u0467\u0215\u0469\u0216\u046b\u0217\u046d\u0218\u046f\u0219\u0471\u021a"+ - "\u0473\u021b\u0475\u021c\u0477\u021d\u0479\u021e\u047b\u021f\u047d\u0220"+ - "\u047f\u0221\u0481\u0222\u0483\u0223\u0485\u0224\u0487\u0225\u0489\u0226"+ - "\u048b\u0227\u048d\u0228\u048f\u0229\u0491\u022a\u0493\u022b\u0495\u022c"+ - "\u0497\u022d\u0499\u022e\u049b\u022f\u049d\u0230\u049f\u0231\u04a1\u0232"+ - "\u04a3\u0233\u04a5\u0234\u04a7\u0235\u04a9\u0236\u04ab\u0237\u04ad\u0238"+ - "\u04af\u0239\u04b1\u023a\u04b3\u023b\u04b5\u023c\u04b7\u023d\u04b9\u023e"+ - "\u04bb\u023f\u04bd\u0240\u04bf\u0241\u04c1\u0242\u04c3\u0243\u04c5\u0244"+ - "\u04c7\u0245\u04c9\u0246\u04cb\u0247\u04cd\u0248\u04cf\u0249\u04d1\u024a"+ - "\u04d3\u024b\u04d5\u024c\u04d7\u024d\u04d9\u024e\u04db\u024f\u04dd\u0250"+ - "\u04df\u0251\u04e1\u0252\u04e3\u0253\u04e5\u0254\u04e7\u0255\u04e9\u0256"+ - "\u04eb\u0257\u04ed\u0258\u04ef\u0259\u04f1\u025a\u04f3\u025b\u04f5\u025c"+ - "\u04f7\u025d\u04f9\u025e\u04fb\u025f\u04fd\u0260\u04ff\u0261\u0501\u0262"+ - "\u0503\u0263\u0505\u0264\u0507\u0265\u0509\u0266\u050b\u0267\u050d\u0268"+ - "\u050f\u0269\u0511\u026a\u0513\u026b\u0515\u026c\u0517\u026d\u0519\u026e"+ - "\u051b\u026f\u051d\u0270\u051f\u0271\u0521\u0272\u0523\u0273\u0525\u0274"+ - "\u0527\u0275\u0529\u0276\u052b\u0277\u052d\u0278\u052f\u0279\u0531\u027a"+ - "\u0533\u027b\u0535\u027c\u0537\u027d\u0539\u027e\u053b\u027f\u053d\u0280"+ - "\u053f\u0281\u0541\u0282\u0543\u0283\u0545\u0284\u0547\u0285\u0549\u0286"+ - "\u054b\u0287\u054d\u0288\u054f\u0289\u0551\u028a\u0553\u028b\u0555\u028c"+ - "\u0557\u028d\u0559\u028e\u055b\u028f\u055d\u0290\u055f\u0291\u0561\u0292"+ - "\u0563\u0293\u0565\u0294\u0567\u0295\u0569\u0296\u056b\u0297\u056d\u0298"+ - "\u056f\u0299\u0571\u029a\u0573\u029b\u0575\u029c\u0577\u029d\u0579\u029e"+ - "\u057b\u029f\u057d\u02a0\u057f\u02a1\u0581\u02a2\u0583\u02a3\u0585\u02a4"+ - "\u0587\u02a5\u0589\u02a6\u058b\u02a7\u058d\u02a8\u058f\u02a9\u0591\u02aa"+ - "\u0593\u02ab\u0595\u02ac\u0597\u02ad\u0599\u02ae\u059b\u02af\u059d\u02b0"+ - "\u059f\u02b1\u05a1\u02b2\u05a3\u02b3\u05a5\u02b4\u05a7\u02b5\u05a9\u02b6"+ - "\u05ab\u02b7\u05ad\u02b8\u05af\u02b9\u05b1\u02ba\u05b3\u02bb\u05b5\u02bc"+ - "\u05b7\u02bd\u05b9\u02be\u05bb\u02bf\u05bd\u02c0\u05bf\u02c1\u05c1\u02c2"+ - "\u05c3\u02c3\u05c5\u02c4\u05c7\u02c5\u05c9\u02c6\u05cb\u02c7\u05cd\u02c8"+ - "\u05cf\u02c9\u05d1\u02ca\u05d3\u02cb\u05d5\u02cc\u05d7\u02cd\u05d9\u02ce"+ - "\u05db\u02cf\u05dd\u02d0\u05df\u02d1\u05e1\u02d2\u05e3\u02d3\u05e5\u02d4"+ - "\u05e7\u02d5\u05e9\u02d6\u05eb\u02d7\u05ed\u02d8\u05ef\u02d9\u05f1\u02da"+ - "\u05f3\u02db\u05f5\u02dc\u05f7\u02dd\u05f9\u02de\u05fb\u02df\u05fd\u02e0"+ - "\u05ff\u02e1\u0601\u02e2\u0603\u02e3\u0605\u02e4\u0607\u02e5\u0609\u02e6"+ - "\u060b\u02e7\u060d\u02e8\u060f\u02e9\u0611\u02ea\u0613\u02eb\u0615\u02ec"+ - "\u0617\u02ed\u0619\u02ee\u061b\u02ef\u061d\u02f0\u061f\u02f1\u0621\u02f2"+ - "\u0623\u02f3\u0625\u02f4\u0627\u02f5\u0629\u02f6\u062b\u02f7\u062d\u02f8"+ - "\u062f\u02f9\u0631\u02fa\u0633\u02fb\u0635\u02fc\u0637\u02fd\u0639\u02fe"+ - "\u063b\u02ff\u063d\u0300\u063f\u0301\u0641\u0302\u0643\u0303\u0645\u0304"+ - "\u0647\u0305\u0649\u0306\u064b\u0307\u064d\u0308\u064f\u0309\u0651\u030a"+ - "\u0653\u030b\u0655\u030c\u0657\u030d\u0659\u030e\u065b\u030f\u065d\u0310"+ - "\u065f\u0311\u0661\u0312\u0663\u0313\u0665\u0314\u0667\u0315\u0669\u0316"+ - "\u066b\u0317\u066d\u0318\u066f\u0319\u0671\u031a\u0673\u031b\u0675\u031c"+ - "\u0677\u031d\u0679\u031e\u067b\u031f\u067d\u0320\u067f\u0321\u0681\u0322"+ - "\u0683\u0323\u0685\u0324\u0687\u0325\u0689\u0326\u068b\u0327\u068d\u0328"+ - "\u068f\u0329\u0691\u032a\u0693\u032b\u0695\u032c\u0697\u032d\u0699\u032e"+ - "\u069b\u032f\u069d\u0330\u069f\u0331\u06a1\u0332\u06a3\u0333\u06a5\u0334"+ - "\u06a7\u0335\u06a9\u0336\u06ab\u0337\u06ad\u0338\u06af\u0339\u06b1\u033a"+ - "\u06b3\u033b\u06b5\u033c\u06b7\u033d\u06b9\u033e\u06bb\u033f\u06bd\u0340"+ - "\u06bf\u0341\u0001\u0000$\u0003\u0000\t\n\r\r \u0002\u0000AAaa\u0002"+ - "\u0000BBbb\u0002\u0000CCcc\u0002\u0000DDdd\u0002\u0000EEee\u0002\u0000"+ - "FFff\u0002\u0000GGgg\u0002\u0000HHhh\u0002\u0000IIii\u0002\u0000JJjj\u0002"+ - "\u0000KKkk\u0002\u0000LLll\u0002\u0000MMmm\u0002\u0000NNnn\u0002\u0000"+ - "OOoo\u0002\u0000PPpp\u0002\u0000QQqq\u0002\u0000RRrr\u0002\u0000SSss\u0002"+ - "\u0000TTtt\u0002\u0000UUuu\u0002\u0000VVvv\u0002\u0000WWww\u0002\u0000"+ - "XXxx\u0002\u0000YYyy\u0002\u0000ZZzz\u0002\u000009AF\u0001\u000009\u0002"+ - "\u0000\"\"\\\\\u0002\u0000\'\'\\\\\u0002\u0000\\\\``\u0003\u0000AZ__a"+ - "z\u0005\u0000$$09AZ__az\u0004\u0000AZ__az\u00a1\u8000\uffff\u0006\u0000"+ - "$$09AZ__az\u00a1\u8000\uffff\u21d2\u0000\u0001\u0001\u0000\u0000\u0000"+ - "\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000"+ - "\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I"+ - "\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000"+ - "\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000"+ - "\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W"+ - "\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000"+ - "\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000"+ - "\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e"+ - "\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000"+ - "\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000"+ - "\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s"+ - "\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000"+ - "\u0000\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000"+ - "\u0000}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000"+ - "\u0081\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000"+ - "\u0085\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000"+ - "\u0089\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000"+ - "\u008d\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000"+ - "\u0091\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000"+ - "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ - "\u0099\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000"+ - "\u009d\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000"+ - "\u00a1\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000"+ - "\u00a5\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000"+ - "\u00a9\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000"+ - "\u00ad\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000"+ - "\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000"+ - "\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000"+ - "\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000"+ - "\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000"+ - "\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000"+ - "\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000"+ - "\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000"+ - "\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000"+ - "\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000"+ - "\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000"+ - "\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000"+ - "\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000"+ - "\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000"+ - "\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000"+ - "\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000"+ - "\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000"+ - "\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000"+ - "\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000"+ - "\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000"+ - "\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000"+ - "\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000"+ - "\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000"+ - "\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000"+ - "\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000"+ - "\u0111\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000"+ - "\u0115\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000"+ - "\u0119\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000"+ - "\u011d\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000"+ - "\u0121\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000"+ - "\u0125\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000"+ - "\u0129\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000"+ - "\u012d\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000"+ - "\u0131\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000"+ - "\u0135\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000"+ - "\u0139\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000"+ - "\u013d\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000"+ - "\u0141\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000"+ - "\u0145\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000"+ - "\u0149\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000"+ - "\u014d\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000"+ - "\u0151\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000"+ - "\u0155\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000"+ - "\u0159\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000"+ - "\u015d\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000"+ - "\u0161\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000"+ - "\u0165\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000"+ - "\u0169\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000"+ - "\u016d\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000"+ - "\u0171\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000"+ - "\u0175\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000"+ - "\u0179\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000"+ - "\u017d\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000"+ - "\u0181\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000"+ - "\u0185\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000"+ - "\u0189\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000"+ - "\u018d\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000"+ - "\u0191\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000"+ - "\u0195\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000"+ - "\u0199\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000"+ - "\u019d\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000"+ - "\u01a1\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000"+ - "\u01a5\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000"+ - "\u01a9\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000"+ - "\u01ad\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000"+ - "\u01b1\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000"+ - "\u01b5\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000"+ - "\u01b9\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000"+ - "\u01bd\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000"+ - "\u01c1\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000"+ - "\u01c5\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000"+ - "\u01c9\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000"+ - "\u01cd\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000"+ - "\u01d1\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000"+ - "\u01d5\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000"+ - "\u01d9\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000"+ - "\u01dd\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000"+ - "\u01e1\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000"+ - "\u01e5\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000"+ - "\u01e9\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000"+ - "\u01ed\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000"+ - "\u01f1\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000"+ - "\u01f5\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000"+ - "\u01f9\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000"+ - "\u01fd\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000"+ - "\u0201\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000"+ - "\u0205\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000"+ - "\u0209\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000"+ - "\u020d\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000"+ - "\u0211\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000"+ - "\u0215\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000"+ - "\u0219\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000"+ - "\u021d\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000"+ - "\u0221\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000"+ - "\u0225\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000"+ - "\u0229\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000"+ - "\u022d\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000"+ - "\u0231\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000"+ - "\u0235\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000"+ - "\u0239\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000"+ - "\u023d\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000"+ - "\u0241\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000"+ - "\u0245\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000"+ - "\u0249\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000"+ - "\u024d\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000"+ - "\u0251\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000"+ - "\u0255\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000"+ - "\u0259\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000"+ - "\u025d\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000"+ - "\u0261\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000"+ - "\u0265\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000"+ - "\u0269\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000"+ - "\u026d\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000"+ - "\u0271\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000"+ - "\u0275\u0001\u0000\u0000\u0000\u0000\u0277\u0001\u0000\u0000\u0000\u0000"+ - "\u0279\u0001\u0000\u0000\u0000\u0000\u027b\u0001\u0000\u0000\u0000\u0000"+ - "\u027d\u0001\u0000\u0000\u0000\u0000\u027f\u0001\u0000\u0000\u0000\u0000"+ - "\u0281\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000"+ - "\u0285\u0001\u0000\u0000\u0000\u0000\u0287\u0001\u0000\u0000\u0000\u0000"+ - "\u0289\u0001\u0000\u0000\u0000\u0000\u028b\u0001\u0000\u0000\u0000\u0000"+ - "\u028d\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000"+ - "\u0291\u0001\u0000\u0000\u0000\u0000\u0293\u0001\u0000\u0000\u0000\u0000"+ - "\u0295\u0001\u0000\u0000\u0000\u0000\u0297\u0001\u0000\u0000\u0000\u0000"+ - "\u0299\u0001\u0000\u0000\u0000\u0000\u029b\u0001\u0000\u0000\u0000\u0000"+ - "\u029d\u0001\u0000\u0000\u0000\u0000\u029f\u0001\u0000\u0000\u0000\u0000"+ - "\u02a1\u0001\u0000\u0000\u0000\u0000\u02a3\u0001\u0000\u0000\u0000\u0000"+ - "\u02a5\u0001\u0000\u0000\u0000\u0000\u02a7\u0001\u0000\u0000\u0000\u0000"+ - "\u02a9\u0001\u0000\u0000\u0000\u0000\u02ab\u0001\u0000\u0000\u0000\u0000"+ - "\u02ad\u0001\u0000\u0000\u0000\u0000\u02af\u0001\u0000\u0000\u0000\u0000"+ - "\u02b1\u0001\u0000\u0000\u0000\u0000\u02b3\u0001\u0000\u0000\u0000\u0000"+ - "\u02b5\u0001\u0000\u0000\u0000\u0000\u02b7\u0001\u0000\u0000\u0000\u0000"+ - "\u02b9\u0001\u0000\u0000\u0000\u0000\u02bb\u0001\u0000\u0000\u0000\u0000"+ - "\u02bd\u0001\u0000\u0000\u0000\u0000\u02bf\u0001\u0000\u0000\u0000\u0000"+ - "\u02c1\u0001\u0000\u0000\u0000\u0000\u02c3\u0001\u0000\u0000\u0000\u0000"+ - "\u02c5\u0001\u0000\u0000\u0000\u0000\u02c7\u0001\u0000\u0000\u0000\u0000"+ - "\u02c9\u0001\u0000\u0000\u0000\u0000\u02cb\u0001\u0000\u0000\u0000\u0000"+ - "\u02cd\u0001\u0000\u0000\u0000\u0000\u02cf\u0001\u0000\u0000\u0000\u0000"+ - "\u02d1\u0001\u0000\u0000\u0000\u0000\u02d3\u0001\u0000\u0000\u0000\u0000"+ - "\u02d5\u0001\u0000\u0000\u0000\u0000\u02d7\u0001\u0000\u0000\u0000\u0000"+ - "\u02d9\u0001\u0000\u0000\u0000\u0000\u02db\u0001\u0000\u0000\u0000\u0000"+ - "\u02dd\u0001\u0000\u0000\u0000\u0000\u02df\u0001\u0000\u0000\u0000\u0000"+ - "\u02e1\u0001\u0000\u0000\u0000\u0000\u02e3\u0001\u0000\u0000\u0000\u0000"+ - "\u02e5\u0001\u0000\u0000\u0000\u0000\u02e7\u0001\u0000\u0000\u0000\u0000"+ - "\u02e9\u0001\u0000\u0000\u0000\u0000\u02eb\u0001\u0000\u0000\u0000\u0000"+ - "\u02ed\u0001\u0000\u0000\u0000\u0000\u02ef\u0001\u0000\u0000\u0000\u0000"+ - "\u02f1\u0001\u0000\u0000\u0000\u0000\u02f3\u0001\u0000\u0000\u0000\u0000"+ - "\u02f5\u0001\u0000\u0000\u0000\u0000\u02f7\u0001\u0000\u0000\u0000\u0000"+ - "\u02f9\u0001\u0000\u0000\u0000\u0000\u02fb\u0001\u0000\u0000\u0000\u0000"+ - "\u02fd\u0001\u0000\u0000\u0000\u0000\u02ff\u0001\u0000\u0000\u0000\u0000"+ - "\u0301\u0001\u0000\u0000\u0000\u0000\u0303\u0001\u0000\u0000\u0000\u0000"+ - "\u0305\u0001\u0000\u0000\u0000\u0000\u0307\u0001\u0000\u0000\u0000\u0000"+ - "\u0309\u0001\u0000\u0000\u0000\u0000\u030b\u0001\u0000\u0000\u0000\u0000"+ - "\u030d\u0001\u0000\u0000\u0000\u0000\u030f\u0001\u0000\u0000\u0000\u0000"+ - "\u0311\u0001\u0000\u0000\u0000\u0000\u0313\u0001\u0000\u0000\u0000\u0000"+ - "\u0315\u0001\u0000\u0000\u0000\u0000\u0317\u0001\u0000\u0000\u0000\u0000"+ - "\u0319\u0001\u0000\u0000\u0000\u0000\u031b\u0001\u0000\u0000\u0000\u0000"+ - "\u031d\u0001\u0000\u0000\u0000\u0000\u031f\u0001\u0000\u0000\u0000\u0000"+ - "\u0321\u0001\u0000\u0000\u0000\u0000\u0323\u0001\u0000\u0000\u0000\u0000"+ - "\u0325\u0001\u0000\u0000\u0000\u0000\u0327\u0001\u0000\u0000\u0000\u0000"+ - "\u0329\u0001\u0000\u0000\u0000\u0000\u032b\u0001\u0000\u0000\u0000\u0000"+ - "\u032d\u0001\u0000\u0000\u0000\u0000\u032f\u0001\u0000\u0000\u0000\u0000"+ - "\u0331\u0001\u0000\u0000\u0000\u0000\u0333\u0001\u0000\u0000\u0000\u0000"+ - "\u0335\u0001\u0000\u0000\u0000\u0000\u0337\u0001\u0000\u0000\u0000\u0000"+ - "\u0339\u0001\u0000\u0000\u0000\u0000\u033b\u0001\u0000\u0000\u0000\u0000"+ - "\u033d\u0001\u0000\u0000\u0000\u0000\u033f\u0001\u0000\u0000\u0000\u0000"+ - "\u0341\u0001\u0000\u0000\u0000\u0000\u0343\u0001\u0000\u0000\u0000\u0000"+ - "\u0345\u0001\u0000\u0000\u0000\u0000\u0347\u0001\u0000\u0000\u0000\u0000"+ - "\u0349\u0001\u0000\u0000\u0000\u0000\u034b\u0001\u0000\u0000\u0000\u0000"+ - "\u034d\u0001\u0000\u0000\u0000\u0000\u034f\u0001\u0000\u0000\u0000\u0000"+ - "\u0351\u0001\u0000\u0000\u0000\u0000\u0353\u0001\u0000\u0000\u0000\u0000"+ - "\u0355\u0001\u0000\u0000\u0000\u0000\u0357\u0001\u0000\u0000\u0000\u0000"+ - "\u0359\u0001\u0000\u0000\u0000\u0000\u035b\u0001\u0000\u0000\u0000\u0000"+ - "\u035d\u0001\u0000\u0000\u0000\u0000\u035f\u0001\u0000\u0000\u0000\u0000"+ - "\u0361\u0001\u0000\u0000\u0000\u0000\u0363\u0001\u0000\u0000\u0000\u0000"+ - "\u0365\u0001\u0000\u0000\u0000\u0000\u0367\u0001\u0000\u0000\u0000\u0000"+ - "\u0369\u0001\u0000\u0000\u0000\u0000\u036b\u0001\u0000\u0000\u0000\u0000"+ - "\u036d\u0001\u0000\u0000\u0000\u0000\u036f\u0001\u0000\u0000\u0000\u0000"+ - "\u0371\u0001\u0000\u0000\u0000\u0000\u0373\u0001\u0000\u0000\u0000\u0000"+ - "\u0375\u0001\u0000\u0000\u0000\u0000\u0377\u0001\u0000\u0000\u0000\u0000"+ - "\u0379\u0001\u0000\u0000\u0000\u0000\u037b\u0001\u0000\u0000\u0000\u0000"+ - "\u037d\u0001\u0000\u0000\u0000\u0000\u037f\u0001\u0000\u0000"; - private static final String _serializedATNSegment1 = - "\u0000\u0000\u0381\u0001\u0000\u0000\u0000\u0000\u0383\u0001\u0000\u0000"+ - "\u0000\u0000\u0385\u0001\u0000\u0000\u0000\u0000\u0387\u0001\u0000\u0000"+ - "\u0000\u0000\u0389\u0001\u0000\u0000\u0000\u0000\u038b\u0001\u0000\u0000"+ - "\u0000\u0000\u038d\u0001\u0000\u0000\u0000\u0000\u038f\u0001\u0000\u0000"+ - "\u0000\u0000\u0391\u0001\u0000\u0000\u0000\u0000\u0393\u0001\u0000\u0000"+ - "\u0000\u0000\u0395\u0001\u0000\u0000\u0000\u0000\u0397\u0001\u0000\u0000"+ - "\u0000\u0000\u0399\u0001\u0000\u0000\u0000\u0000\u039b\u0001\u0000\u0000"+ - "\u0000\u0000\u039d\u0001\u0000\u0000\u0000\u0000\u039f\u0001\u0000\u0000"+ - "\u0000\u0000\u03a1\u0001\u0000\u0000\u0000\u0000\u03a3\u0001\u0000\u0000"+ - "\u0000\u0000\u03a5\u0001\u0000\u0000\u0000\u0000\u03a7\u0001\u0000\u0000"+ - "\u0000\u0000\u03a9\u0001\u0000\u0000\u0000\u0000\u03ab\u0001\u0000\u0000"+ - "\u0000\u0000\u03ad\u0001\u0000\u0000\u0000\u0000\u03af\u0001\u0000\u0000"+ - "\u0000\u0000\u03b1\u0001\u0000\u0000\u0000\u0000\u03b3\u0001\u0000\u0000"+ - "\u0000\u0000\u03b5\u0001\u0000\u0000\u0000\u0000\u03b7\u0001\u0000\u0000"+ - "\u0000\u0000\u03b9\u0001\u0000\u0000\u0000\u0000\u03bb\u0001\u0000\u0000"+ - "\u0000\u0000\u03bd\u0001\u0000\u0000\u0000\u0000\u03bf\u0001\u0000\u0000"+ - "\u0000\u0000\u03c1\u0001\u0000\u0000\u0000\u0000\u03c3\u0001\u0000\u0000"+ - "\u0000\u0000\u03c5\u0001\u0000\u0000\u0000\u0000\u03c7\u0001\u0000\u0000"+ - "\u0000\u0000\u03c9\u0001\u0000\u0000\u0000\u0000\u03cb\u0001\u0000\u0000"+ - "\u0000\u0000\u03cd\u0001\u0000\u0000\u0000\u0000\u03cf\u0001\u0000\u0000"+ - "\u0000\u0000\u03d1\u0001\u0000\u0000\u0000\u0000\u03d3\u0001\u0000\u0000"+ - "\u0000\u0000\u03d5\u0001\u0000\u0000\u0000\u0000\u03d7\u0001\u0000\u0000"+ - "\u0000\u0000\u03d9\u0001\u0000\u0000\u0000\u0000\u03db\u0001\u0000\u0000"+ - "\u0000\u0000\u03dd\u0001\u0000\u0000\u0000\u0000\u03df\u0001\u0000\u0000"+ - "\u0000\u0000\u03e1\u0001\u0000\u0000\u0000\u0000\u03e3\u0001\u0000\u0000"+ - "\u0000\u0000\u03e5\u0001\u0000\u0000\u0000\u0000\u03e7\u0001\u0000\u0000"+ - "\u0000\u0000\u03e9\u0001\u0000\u0000\u0000\u0000\u03eb\u0001\u0000\u0000"+ - "\u0000\u0000\u03ed\u0001\u0000\u0000\u0000\u0000\u03ef\u0001\u0000\u0000"+ - "\u0000\u0000\u03f1\u0001\u0000\u0000\u0000\u0000\u03f3\u0001\u0000\u0000"+ - "\u0000\u0000\u03f5\u0001\u0000\u0000\u0000\u0000\u03f7\u0001\u0000\u0000"+ - "\u0000\u0000\u03f9\u0001\u0000\u0000\u0000\u0000\u03fb\u0001\u0000\u0000"+ - "\u0000\u0000\u03fd\u0001\u0000\u0000\u0000\u0000\u03ff\u0001\u0000\u0000"+ - "\u0000\u0000\u0401\u0001\u0000\u0000\u0000\u0000\u0403\u0001\u0000\u0000"+ - "\u0000\u0000\u0405\u0001\u0000\u0000\u0000\u0000\u0407\u0001\u0000\u0000"+ - "\u0000\u0000\u0409\u0001\u0000\u0000\u0000\u0000\u040b\u0001\u0000\u0000"+ - "\u0000\u0000\u040d\u0001\u0000\u0000\u0000\u0000\u040f\u0001\u0000\u0000"+ - "\u0000\u0000\u0411\u0001\u0000\u0000\u0000\u0000\u0413\u0001\u0000\u0000"+ - "\u0000\u0000\u0415\u0001\u0000\u0000\u0000\u0000\u0417\u0001\u0000\u0000"+ - "\u0000\u0000\u0419\u0001\u0000\u0000\u0000\u0000\u041b\u0001\u0000\u0000"+ - "\u0000\u0000\u041d\u0001\u0000\u0000\u0000\u0000\u041f\u0001\u0000\u0000"+ - "\u0000\u0000\u0421\u0001\u0000\u0000\u0000\u0000\u0423\u0001\u0000\u0000"+ - "\u0000\u0000\u0425\u0001\u0000\u0000\u0000\u0000\u0427\u0001\u0000\u0000"+ - "\u0000\u0000\u0429\u0001\u0000\u0000\u0000\u0000\u042b\u0001\u0000\u0000"+ - "\u0000\u0000\u042d\u0001\u0000\u0000\u0000\u0000\u042f\u0001\u0000\u0000"+ - "\u0000\u0000\u0431\u0001\u0000\u0000\u0000\u0000\u0433\u0001\u0000\u0000"+ - "\u0000\u0000\u0435\u0001\u0000\u0000\u0000\u0000\u0437\u0001\u0000\u0000"+ - "\u0000\u0000\u0439\u0001\u0000\u0000\u0000\u0000\u043b\u0001\u0000\u0000"+ - "\u0000\u0000\u043d\u0001\u0000\u0000\u0000\u0000\u043f\u0001\u0000\u0000"+ - "\u0000\u0000\u0441\u0001\u0000\u0000\u0000\u0000\u0443\u0001\u0000\u0000"+ - "\u0000\u0000\u0445\u0001\u0000\u0000\u0000\u0000\u0447\u0001\u0000\u0000"+ - "\u0000\u0000\u0449\u0001\u0000\u0000\u0000\u0000\u044b\u0001\u0000\u0000"+ - "\u0000\u0000\u044d\u0001\u0000\u0000\u0000\u0000\u044f\u0001\u0000\u0000"+ - "\u0000\u0000\u0451\u0001\u0000\u0000\u0000\u0000\u0453\u0001\u0000\u0000"+ - "\u0000\u0000\u0455\u0001\u0000\u0000\u0000\u0000\u0457\u0001\u0000\u0000"+ - "\u0000\u0000\u0459\u0001\u0000\u0000\u0000\u0000\u045b\u0001\u0000\u0000"+ - "\u0000\u0000\u045d\u0001\u0000\u0000\u0000\u0000\u045f\u0001\u0000\u0000"+ - "\u0000\u0000\u0461\u0001\u0000\u0000\u0000\u0000\u0463\u0001\u0000\u0000"+ - "\u0000\u0000\u0465\u0001\u0000\u0000\u0000\u0000\u0467\u0001\u0000\u0000"+ - "\u0000\u0000\u0469\u0001\u0000\u0000\u0000\u0000\u046b\u0001\u0000\u0000"+ - "\u0000\u0000\u046d\u0001\u0000\u0000\u0000\u0000\u046f\u0001\u0000\u0000"+ - "\u0000\u0000\u0471\u0001\u0000\u0000\u0000\u0000\u0473\u0001\u0000\u0000"+ - "\u0000\u0000\u0475\u0001\u0000\u0000\u0000\u0000\u0477\u0001\u0000\u0000"+ - "\u0000\u0000\u0479\u0001\u0000\u0000\u0000\u0000\u047b\u0001\u0000\u0000"+ - "\u0000\u0000\u047d\u0001\u0000\u0000\u0000\u0000\u047f\u0001\u0000\u0000"+ - "\u0000\u0000\u0481\u0001\u0000\u0000\u0000\u0000\u0483\u0001\u0000\u0000"+ - "\u0000\u0000\u0485\u0001\u0000\u0000\u0000\u0000\u0487\u0001\u0000\u0000"+ - "\u0000\u0000\u0489\u0001\u0000\u0000\u0000\u0000\u048b\u0001\u0000\u0000"+ - "\u0000\u0000\u048d\u0001\u0000\u0000\u0000\u0000\u048f\u0001\u0000\u0000"+ - "\u0000\u0000\u0491\u0001\u0000\u0000\u0000\u0000\u0493\u0001\u0000\u0000"+ - "\u0000\u0000\u0495\u0001\u0000\u0000\u0000\u0000\u0497\u0001\u0000\u0000"+ - "\u0000\u0000\u0499\u0001\u0000\u0000\u0000\u0000\u049b\u0001\u0000\u0000"+ - "\u0000\u0000\u049d\u0001\u0000\u0000\u0000\u0000\u049f\u0001\u0000\u0000"+ - "\u0000\u0000\u04a1\u0001\u0000\u0000\u0000\u0000\u04a3\u0001\u0000\u0000"+ - "\u0000\u0000\u04a5\u0001\u0000\u0000\u0000\u0000\u04a7\u0001\u0000\u0000"+ - "\u0000\u0000\u04a9\u0001\u0000\u0000\u0000\u0000\u04ab\u0001\u0000\u0000"+ - "\u0000\u0000\u04ad\u0001\u0000\u0000\u0000\u0000\u04af\u0001\u0000\u0000"+ - "\u0000\u0000\u04b1\u0001\u0000\u0000\u0000\u0000\u04b3\u0001\u0000\u0000"+ - "\u0000\u0000\u04b5\u0001\u0000\u0000\u0000\u0000\u04b7\u0001\u0000\u0000"+ - "\u0000\u0000\u04b9\u0001\u0000\u0000\u0000\u0000\u04bb\u0001\u0000\u0000"+ - "\u0000\u0000\u04bd\u0001\u0000\u0000\u0000\u0000\u04bf\u0001\u0000\u0000"+ - "\u0000\u0000\u04c1\u0001\u0000\u0000\u0000\u0000\u04c3\u0001\u0000\u0000"+ - "\u0000\u0000\u04c5\u0001\u0000\u0000\u0000\u0000\u04c7\u0001\u0000\u0000"+ - "\u0000\u0000\u04c9\u0001\u0000\u0000\u0000\u0000\u04cb\u0001\u0000\u0000"+ - "\u0000\u0000\u04cd\u0001\u0000\u0000\u0000\u0000\u04cf\u0001\u0000\u0000"+ - "\u0000\u0000\u04d1\u0001\u0000\u0000\u0000\u0000\u04d3\u0001\u0000\u0000"+ - "\u0000\u0000\u04d5\u0001\u0000\u0000\u0000\u0000\u04d7\u0001\u0000\u0000"+ - "\u0000\u0000\u04d9\u0001\u0000\u0000\u0000\u0000\u04db\u0001\u0000\u0000"+ - "\u0000\u0000\u04dd\u0001\u0000\u0000\u0000\u0000\u04df\u0001\u0000\u0000"+ - "\u0000\u0000\u04e1\u0001\u0000\u0000\u0000\u0000\u04e3\u0001\u0000\u0000"+ - "\u0000\u0000\u04e5\u0001\u0000\u0000\u0000\u0000\u04e7\u0001\u0000\u0000"+ - "\u0000\u0000\u04e9\u0001\u0000\u0000\u0000\u0000\u04eb\u0001\u0000\u0000"+ - "\u0000\u0000\u04ed\u0001\u0000\u0000\u0000\u0000\u04ef\u0001\u0000\u0000"+ - "\u0000\u0000\u04f1\u0001\u0000\u0000\u0000\u0000\u04f3\u0001\u0000\u0000"+ - "\u0000\u0000\u04f5\u0001\u0000\u0000\u0000\u0000\u04f7\u0001\u0000\u0000"+ - "\u0000\u0000\u04f9\u0001\u0000\u0000\u0000\u0000\u04fb\u0001\u0000\u0000"+ - "\u0000\u0000\u04fd\u0001\u0000\u0000\u0000\u0000\u04ff\u0001\u0000\u0000"+ - "\u0000\u0000\u0501\u0001\u0000\u0000\u0000\u0000\u0503\u0001\u0000\u0000"+ - "\u0000\u0000\u0505\u0001\u0000\u0000\u0000\u0000\u0507\u0001\u0000\u0000"+ - "\u0000\u0000\u0509\u0001\u0000\u0000\u0000\u0000\u050b\u0001\u0000\u0000"+ - "\u0000\u0000\u050d\u0001\u0000\u0000\u0000\u0000\u050f\u0001\u0000\u0000"+ - "\u0000\u0000\u0511\u0001\u0000\u0000\u0000\u0000\u0513\u0001\u0000\u0000"+ - "\u0000\u0000\u0515\u0001\u0000\u0000\u0000\u0000\u0517\u0001\u0000\u0000"+ - "\u0000\u0000\u0519\u0001\u0000\u0000\u0000\u0000\u051b\u0001\u0000\u0000"+ - "\u0000\u0000\u051d\u0001\u0000\u0000\u0000\u0000\u051f\u0001\u0000\u0000"+ - "\u0000\u0000\u0521\u0001\u0000\u0000\u0000\u0000\u0523\u0001\u0000\u0000"+ - "\u0000\u0000\u0525\u0001\u0000\u0000\u0000\u0000\u0527\u0001\u0000\u0000"+ - "\u0000\u0000\u0529\u0001\u0000\u0000\u0000\u0000\u052b\u0001\u0000\u0000"+ - "\u0000\u0000\u052d\u0001\u0000\u0000\u0000\u0000\u052f\u0001\u0000\u0000"+ - "\u0000\u0000\u0531\u0001\u0000\u0000\u0000\u0000\u0533\u0001\u0000\u0000"+ - "\u0000\u0000\u0535\u0001\u0000\u0000\u0000\u0000\u0537\u0001\u0000\u0000"+ - "\u0000\u0000\u0539\u0001\u0000\u0000\u0000\u0000\u053b\u0001\u0000\u0000"+ - "\u0000\u0000\u053d\u0001\u0000\u0000\u0000\u0000\u053f\u0001\u0000\u0000"+ - "\u0000\u0000\u0541\u0001\u0000\u0000\u0000\u0000\u0543\u0001\u0000\u0000"+ - "\u0000\u0000\u0545\u0001\u0000\u0000\u0000\u0000\u0547\u0001\u0000\u0000"+ - "\u0000\u0000\u0549\u0001\u0000\u0000\u0000\u0000\u054b\u0001\u0000\u0000"+ - "\u0000\u0000\u054d\u0001\u0000\u0000\u0000\u0000\u054f\u0001\u0000\u0000"+ - "\u0000\u0000\u0551\u0001\u0000\u0000\u0000\u0000\u0553\u0001\u0000\u0000"+ - "\u0000\u0000\u0555\u0001\u0000\u0000\u0000\u0000\u0557\u0001\u0000\u0000"+ - "\u0000\u0000\u0559\u0001\u0000\u0000\u0000\u0000\u055b\u0001\u0000\u0000"+ - "\u0000\u0000\u055d\u0001\u0000\u0000\u0000\u0000\u055f\u0001\u0000\u0000"+ - "\u0000\u0000\u0561\u0001\u0000\u0000\u0000\u0000\u0563\u0001\u0000\u0000"+ - "\u0000\u0000\u0565\u0001\u0000\u0000\u0000\u0000\u0567\u0001\u0000\u0000"+ - "\u0000\u0000\u0569\u0001\u0000\u0000\u0000\u0000\u056b\u0001\u0000\u0000"+ - "\u0000\u0000\u056d\u0001\u0000\u0000\u0000\u0000\u056f\u0001\u0000\u0000"+ - "\u0000\u0000\u0571\u0001\u0000\u0000\u0000\u0000\u0573\u0001\u0000\u0000"+ - "\u0000\u0000\u0575\u0001\u0000\u0000\u0000\u0000\u0577\u0001\u0000\u0000"+ - "\u0000\u0000\u0579\u0001\u0000\u0000\u0000\u0000\u057b\u0001\u0000\u0000"+ - "\u0000\u0000\u057d\u0001\u0000\u0000\u0000\u0000\u057f\u0001\u0000\u0000"+ - "\u0000\u0000\u0581\u0001\u0000\u0000\u0000\u0000\u0583\u0001\u0000\u0000"+ - "\u0000\u0000\u0585\u0001\u0000\u0000\u0000\u0000\u0587\u0001\u0000\u0000"+ - "\u0000\u0000\u0589\u0001\u0000\u0000\u0000\u0000\u058b\u0001\u0000\u0000"+ - "\u0000\u0000\u058d\u0001\u0000\u0000\u0000\u0000\u058f\u0001\u0000\u0000"+ - "\u0000\u0000\u0591\u0001\u0000\u0000\u0000\u0000\u0593\u0001\u0000\u0000"+ - "\u0000\u0000\u0595\u0001\u0000\u0000\u0000\u0000\u0597\u0001\u0000\u0000"+ - "\u0000\u0000\u0599\u0001\u0000\u0000\u0000\u0000\u059b\u0001\u0000\u0000"+ - "\u0000\u0000\u059d\u0001\u0000\u0000\u0000\u0000\u059f\u0001\u0000\u0000"+ - "\u0000\u0000\u05a1\u0001\u0000\u0000\u0000\u0000\u05a3\u0001\u0000\u0000"+ - "\u0000\u0000\u05a5\u0001\u0000\u0000\u0000\u0000\u05a7\u0001\u0000\u0000"+ - "\u0000\u0000\u05a9\u0001\u0000\u0000\u0000\u0000\u05ab\u0001\u0000\u0000"+ - "\u0000\u0000\u05ad\u0001\u0000\u0000\u0000\u0000\u05af\u0001\u0000\u0000"+ - "\u0000\u0000\u05b1\u0001\u0000\u0000\u0000\u0000\u05b3\u0001\u0000\u0000"+ - "\u0000\u0000\u05b5\u0001\u0000\u0000\u0000\u0000\u05b7\u0001\u0000\u0000"+ - "\u0000\u0000\u05b9\u0001\u0000\u0000\u0000\u0000\u05bb\u0001\u0000\u0000"+ - "\u0000\u0000\u05bd\u0001\u0000\u0000\u0000\u0000\u05bf\u0001\u0000\u0000"+ - "\u0000\u0000\u05c1\u0001\u0000\u0000\u0000\u0000\u05c3\u0001\u0000\u0000"+ - "\u0000\u0000\u05c5\u0001\u0000\u0000\u0000\u0000\u05c7\u0001\u0000\u0000"+ - "\u0000\u0000\u05c9\u0001\u0000\u0000\u0000\u0000\u05cb\u0001\u0000\u0000"+ - "\u0000\u0000\u05cd\u0001\u0000\u0000\u0000\u0000\u05cf\u0001\u0000\u0000"+ - "\u0000\u0000\u05d1\u0001\u0000\u0000\u0000\u0000\u05d3\u0001\u0000\u0000"+ - "\u0000\u0000\u05d5\u0001\u0000\u0000\u0000\u0000\u05d7\u0001\u0000\u0000"+ - "\u0000\u0000\u05d9\u0001\u0000\u0000\u0000\u0000\u05db\u0001\u0000\u0000"+ - "\u0000\u0000\u05dd\u0001\u0000\u0000\u0000\u0000\u05df\u0001\u0000\u0000"+ - "\u0000\u0000\u05e1\u0001\u0000\u0000\u0000\u0000\u05e3\u0001\u0000\u0000"+ - "\u0000\u0000\u05e5\u0001\u0000\u0000\u0000\u0000\u05e7\u0001\u0000\u0000"+ - "\u0000\u0000\u05e9\u0001\u0000\u0000\u0000\u0000\u05eb\u0001\u0000\u0000"+ - "\u0000\u0000\u05ed\u0001\u0000\u0000\u0000\u0000\u05ef\u0001\u0000\u0000"+ - "\u0000\u0000\u05f1\u0001\u0000\u0000\u0000\u0000\u05f3\u0001\u0000\u0000"+ - "\u0000\u0000\u05f5\u0001\u0000\u0000\u0000\u0000\u05f7\u0001\u0000\u0000"+ - "\u0000\u0000\u05f9\u0001\u0000\u0000\u0000\u0000\u05fb\u0001\u0000\u0000"+ - "\u0000\u0000\u05fd\u0001\u0000\u0000\u0000\u0000\u05ff\u0001\u0000\u0000"+ - "\u0000\u0000\u0601\u0001\u0000\u0000\u0000\u0000\u0603\u0001\u0000\u0000"+ - "\u0000\u0000\u0605\u0001\u0000\u0000\u0000\u0000\u0607\u0001\u0000\u0000"+ - "\u0000\u0000\u0609\u0001\u0000\u0000\u0000\u0000\u060b\u0001\u0000\u0000"+ - "\u0000\u0000\u060d\u0001\u0000\u0000\u0000\u0000\u060f\u0001\u0000\u0000"+ - "\u0000\u0000\u0611\u0001\u0000\u0000\u0000\u0000\u0613\u0001\u0000\u0000"+ - "\u0000\u0000\u0615\u0001\u0000\u0000\u0000\u0000\u0617\u0001\u0000\u0000"+ - "\u0000\u0000\u0619\u0001\u0000\u0000\u0000\u0000\u061b\u0001\u0000\u0000"+ - "\u0000\u0000\u061d\u0001\u0000\u0000\u0000\u0000\u061f\u0001\u0000\u0000"+ - "\u0000\u0000\u0621\u0001\u0000\u0000\u0000\u0000\u0623\u0001\u0000\u0000"+ - "\u0000\u0000\u0625\u0001\u0000\u0000\u0000\u0000\u0627\u0001\u0000\u0000"+ - "\u0000\u0000\u0629\u0001\u0000\u0000\u0000\u0000\u062b\u0001\u0000\u0000"+ - "\u0000\u0000\u062d\u0001\u0000\u0000\u0000\u0000\u062f\u0001\u0000\u0000"+ - "\u0000\u0000\u0631\u0001\u0000\u0000\u0000\u0000\u0633\u0001\u0000\u0000"+ - "\u0000\u0000\u0635\u0001\u0000\u0000\u0000\u0000\u0637\u0001\u0000\u0000"+ - "\u0000\u0000\u0639\u0001\u0000\u0000\u0000\u0000\u063b\u0001\u0000\u0000"+ - "\u0000\u0000\u063d\u0001\u0000\u0000\u0000\u0000\u063f\u0001\u0000\u0000"+ - "\u0000\u0000\u0641\u0001\u0000\u0000\u0000\u0000\u0643\u0001\u0000\u0000"+ - "\u0000\u0000\u0645\u0001\u0000\u0000\u0000\u0000\u0647\u0001\u0000\u0000"+ - "\u0000\u0000\u0649\u0001\u0000\u0000\u0000\u0000\u064b\u0001\u0000\u0000"+ - "\u0000\u0000\u064d\u0001\u0000\u0000\u0000\u0000\u064f\u0001\u0000\u0000"+ - "\u0000\u0000\u0651\u0001\u0000\u0000\u0000\u0000\u0653\u0001\u0000\u0000"+ - "\u0000\u0000\u0655\u0001\u0000\u0000\u0000\u0000\u0657\u0001\u0000\u0000"+ - "\u0000\u0000\u0659\u0001\u0000\u0000\u0000\u0000\u065b\u0001\u0000\u0000"+ - "\u0000\u0000\u065d\u0001\u0000\u0000\u0000\u0000\u065f\u0001\u0000\u0000"+ - "\u0000\u0000\u0661\u0001\u0000\u0000\u0000\u0000\u0663\u0001\u0000\u0000"+ - "\u0000\u0000\u0665\u0001\u0000\u0000\u0000\u0000\u0667\u0001\u0000\u0000"+ - "\u0000\u0000\u0669\u0001\u0000\u0000\u0000\u0000\u066b\u0001\u0000\u0000"+ - "\u0000\u0000\u066d\u0001\u0000\u0000\u0000\u0000\u066f\u0001\u0000\u0000"+ - "\u0000\u0000\u0671\u0001\u0000\u0000\u0000\u0000\u0673\u0001\u0000\u0000"+ - "\u0000\u0000\u0675\u0001\u0000\u0000\u0000\u0000\u0677\u0001\u0000\u0000"+ - "\u0000\u0000\u0679\u0001\u0000\u0000\u0000\u0000\u067b\u0001\u0000\u0000"+ - "\u0000\u0000\u067d\u0001\u0000\u0000\u0000\u0000\u067f\u0001\u0000\u0000"+ - "\u0000\u0000\u0681\u0001\u0000\u0000\u0000\u0000\u0683\u0001\u0000\u0000"+ - "\u0000\u0000\u0685\u0001\u0000\u0000\u0000\u0000\u0687\u0001\u0000\u0000"+ - "\u0000\u0000\u0689\u0001\u0000\u0000\u0000\u0000\u068b\u0001\u0000\u0000"+ - "\u0000\u0000\u068d\u0001\u0000\u0000\u0000\u0000\u068f\u0001\u0000\u0000"+ - "\u0000\u0000\u0691\u0001\u0000\u0000\u0000\u0000\u0693\u0001\u0000\u0000"+ - "\u0000\u0000\u0695\u0001\u0000\u0000\u0000\u0000\u0697\u0001\u0000\u0000"+ - "\u0000\u0000\u0699\u0001\u0000\u0000\u0000\u0000\u069b\u0001\u0000\u0000"+ - "\u0000\u0000\u069d\u0001\u0000\u0000\u0000\u0000\u069f\u0001\u0000\u0000"+ - "\u0000\u0000\u06a1\u0001\u0000\u0000\u0000\u0000\u06a3\u0001\u0000\u0000"+ - "\u0000\u0000\u06a5\u0001\u0000\u0000\u0000\u0000\u06a7\u0001\u0000\u0000"+ - "\u0000\u0000\u06a9\u0001\u0000\u0000\u0000\u0000\u06ab\u0001\u0000\u0000"+ - "\u0000\u0000\u06ad\u0001\u0000\u0000\u0000\u0000\u06af\u0001\u0000\u0000"+ - "\u0000\u0000\u06b1\u0001\u0000\u0000\u0000\u0000\u06b3\u0001\u0000\u0000"+ - "\u0000\u0000\u06b5\u0001\u0000\u0000\u0000\u0000\u06b7\u0001\u0000\u0000"+ - "\u0000\u0000\u06b9\u0001\u0000\u0000\u0000\u0000\u06bb\u0001\u0000\u0000"+ - "\u0000\u0000\u06bd\u0001\u0000\u0000\u0000\u0000\u06bf\u0001\u0000\u0000"+ - "\u0000\u0001\u06c2\u0001\u0000\u0000\u0000\u0003\u06c8\u0001\u0000\u0000"+ - "\u0000\u0005\u06d6\u0001\u0000\u0000\u0000\u0007\u06e3\u0001\u0000\u0000"+ - "\u0000\t\u06e5\u0001\u0000\u0000\u0000\u000b\u06e7\u0001\u0000\u0000\u0000"+ - "\r\u06e9\u0001\u0000\u0000\u0000\u000f\u06eb\u0001\u0000\u0000\u0000\u0011"+ - "\u06ed\u0001\u0000\u0000\u0000\u0013\u06ef\u0001\u0000\u0000\u0000\u0015"+ - "\u06f1\u0001\u0000\u0000\u0000\u0017\u06f3\u0001\u0000\u0000\u0000\u0019"+ - "\u06f5\u0001\u0000\u0000\u0000\u001b\u06f7\u0001\u0000\u0000\u0000\u001d"+ - "\u06f9\u0001\u0000\u0000\u0000\u001f\u06fb\u0001\u0000\u0000\u0000!\u06fd"+ - "\u0001\u0000\u0000\u0000#\u06ff\u0001\u0000\u0000\u0000%\u0701\u0001\u0000"+ - "\u0000\u0000\'\u0703\u0001\u0000\u0000\u0000)\u0705\u0001\u0000\u0000"+ - "\u0000+\u0707\u0001\u0000\u0000\u0000-\u0709\u0001\u0000\u0000\u0000/"+ - "\u070b\u0001\u0000\u0000\u00001\u070d\u0001\u0000\u0000\u00003\u070f\u0001"+ - "\u0000\u0000\u00005\u0711\u0001\u0000\u0000\u00007\u0713\u0001\u0000\u0000"+ - "\u00009\u0715\u0001\u0000\u0000\u0000;\u0717\u0001\u0000\u0000\u0000="+ - "\u0719\u0001\u0000\u0000\u0000?\u071b\u0001\u0000\u0000\u0000A\u0728\u0001"+ - "\u0000\u0000\u0000C\u0735\u0001\u0000\u0000\u0000E\u0742\u0001\u0000\u0000"+ - "\u0000G\u0744\u0001\u0000\u0000\u0000I\u074a\u0001\u0000\u0000\u0000K"+ - "\u074e\u0001\u0000\u0000\u0000M\u0757\u0001\u0000\u0000\u0000O\u075e\u0001"+ - "\u0000\u0000\u0000Q\u0765\u0001\u0000\u0000\u0000S\u0769\u0001\u0000\u0000"+ - "\u0000U\u076d\u0001\u0000\u0000\u0000W\u0773\u0001\u0000\u0000\u0000Y"+ - "\u0779\u0001\u0000\u0000\u0000[\u0783\u0001\u0000\u0000\u0000]\u0789\u0001"+ - "\u0000\u0000\u0000_\u078d\u0001\u0000\u0000\u0000a\u0796\u0001\u0000\u0000"+ - "\u0000c\u079b\u0001\u0000\u0000\u0000e\u07a1\u0001\u0000\u0000\u0000g"+ - "\u07a8\u0001\u0000\u0000\u0000i\u07b0\u0001\u0000\u0000\u0000k\u07b8\u0001"+ - "\u0000\u0000\u0000m\u07bc\u0001\u0000\u0000\u0000o\u07c0\u0001\u0000\u0000"+ - "\u0000q\u07c4\u0001\u0000\u0000\u0000s\u07ca\u0001\u0000\u0000\u0000u"+ - "\u07cd\u0001\u0000\u0000\u0000w\u07d1\u0001\u0000\u0000\u0000y\u07dc\u0001"+ - "\u0000\u0000\u0000{\u07e6\u0001\u0000\u0000\u0000}\u07f1\u0001\u0000\u0000"+ - "\u0000\u007f\u07fc\u0001\u0000\u0000\u0000\u0081\u07ff\u0001\u0000\u0000"+ - "\u0000\u0083\u0806\u0001\u0000\u0000\u0000\u0085\u0810\u0001\u0000\u0000"+ - "\u0000\u0087\u081b\u0001\u0000\u0000\u0000\u0089\u0829\u0001\u0000\u0000"+ - "\u0000\u008b\u082d\u0001\u0000\u0000\u0000\u008d\u0836\u0001\u0000\u0000"+ - "\u0000\u008f\u083d\u0001\u0000\u0000\u0000\u0091\u0843\u0001\u0000\u0000"+ - "\u0000\u0093\u084d\u0001\u0000\u0000\u0000\u0095\u0855\u0001\u0000\u0000"+ - "\u0000\u0097\u085c\u0001\u0000\u0000\u0000\u0099\u0863\u0001\u0000\u0000"+ - "\u0000\u009b\u0867\u0001\u0000\u0000\u0000\u009d\u0872\u0001\u0000\u0000"+ - "\u0000\u009f\u0879\u0001\u0000\u0000\u0000\u00a1\u087e\u0001\u0000\u0000"+ - "\u0000\u00a3\u0886\u0001\u0000\u0000\u0000\u00a5\u088b\u0001\u0000\u0000"+ - "\u0000\u00a7\u0893\u0001\u0000\u0000\u0000\u00a9\u089b\u0001\u0000\u0000"+ - "\u0000\u00ab\u089e\u0001\u0000\u0000\u0000\u00ad\u08a0\u0001\u0000\u0000"+ - "\u0000\u00af\u08a6\u0001\u0000\u0000\u0000\u00b1\u08ab\u0001\u0000\u0000"+ - "\u0000\u00b3\u08b2\u0001\u0000\u0000\u0000\u00b5\u08be\u0001\u0000\u0000"+ - "\u0000\u00b7\u08c6\u0001\u0000\u0000\u0000\u00b9\u08cf\u0001\u0000\u0000"+ - "\u0000\u00bb\u08d4\u0001\u0000\u0000\u0000\u00bd\u08d9\u0001\u0000\u0000"+ - "\u0000\u00bf\u08e1\u0001\u0000\u0000\u0000\u00c1\u08ee\u0001\u0000\u0000"+ - "\u0000\u00c3\u08f3\u0001\u0000\u0000\u0000\u00c5\u08fb\u0001\u0000\u0000"+ - "\u0000\u00c7\u0901\u0001\u0000\u0000\u0000\u00c9\u0906\u0001\u0000\u0000"+ - "\u0000\u00cb\u0912\u0001\u0000\u0000\u0000\u00cd\u091c\u0001\u0000\u0000"+ - "\u0000\u00cf\u092d\u0001\u0000\u0000\u0000\u00d1\u0943\u0001\u0000\u0000"+ - "\u0000\u00d3\u0956\u0001\u0000\u0000\u0000\u00d5\u096b\u0001\u0000\u0000"+ - "\u0000\u00d7\u097b\u0001\u0000\u0000\u0000\u00d9\u0986\u0001\u0000\u0000"+ - "\u0000\u00db\u098c\u0001\u0000\u0000\u0000\u00dd\u0994\u0001\u0000\u0000"+ - "\u0000\u00df\u099f\u0001\u0000\u0000\u0000\u00e1\u09a5\u0001\u0000\u0000"+ - "\u0000\u00e3\u09b2\u0001\u0000\u0000\u0000\u00e5\u09b7\u0001\u0000\u0000"+ - "\u0000\u00e7\u09bd\u0001\u0000\u0000\u0000\u00e9\u09c5\u0001\u0000\u0000"+ - "\u0000\u00eb\u09ce\u0001\u0000\u0000\u0000\u00ed\u09d4\u0001\u0000\u0000"+ - "\u0000\u00ef\u09dc\u0001\u0000\u0000\u0000\u00f1\u09e6\u0001\u0000\u0000"+ - "\u0000\u00f3\u09f8\u0001\u0000\u0000\u0000\u00f5\u0a07\u0001\u0000\u0000"+ - "\u0000\u00f7\u0a18\u0001\u0000\u0000\u0000\u00f9\u0a20\u0001\u0000\u0000"+ - "\u0000\u00fb\u0a27\u0001\u0000\u0000\u0000\u00fd\u0a33\u0001\u0000\u0000"+ - "\u0000\u00ff\u0a44\u0001\u0000\u0000\u0000\u0101\u0a5a\u0001\u0000\u0000"+ - "\u0000\u0103\u0a62\u0001\u0000\u0000\u0000\u0105\u0a69\u0001\u0000\u0000"+ - "\u0000\u0107\u0a73\u0001\u0000\u0000\u0000\u0109\u0a7e\u0001\u0000\u0000"+ - "\u0000\u010b\u0a88\u0001\u0000\u0000\u0000\u010d\u0a99\u0001\u0000\u0000"+ - "\u0000\u010f\u0aa7\u0001\u0000\u0000\u0000\u0111\u0ab0\u0001\u0000\u0000"+ - "\u0000\u0113\u0ab8\u0001\u0000\u0000\u0000\u0115\u0ac3\u0001\u0000\u0000"+ - "\u0000\u0117\u0ad3\u0001\u0000\u0000\u0000\u0119\u0ade\u0001\u0000\u0000"+ - "\u0000\u011b\u0af1\u0001\u0000\u0000\u0000\u011d\u0b01\u0001\u0000\u0000"+ - "\u0000\u011f\u0b13\u0001\u0000\u0000\u0000\u0121\u0b1f\u0001\u0000\u0000"+ - "\u0000\u0123\u0b2b\u0001\u0000\u0000\u0000\u0125\u0b34\u0001\u0000\u0000"+ - "\u0000\u0127\u0b3d\u0001\u0000\u0000\u0000\u0129\u0b48\u0001\u0000\u0000"+ - "\u0000\u012b\u0b50\u0001\u0000\u0000\u0000\u012d\u0b55\u0001\u0000\u0000"+ - "\u0000\u012f\u0b5a\u0001\u0000\u0000\u0000\u0131\u0b68\u0001\u0000\u0000"+ - "\u0000\u0133\u0b6e\u0001\u0000\u0000\u0000\u0135\u0b74\u0001\u0000\u0000"+ - "\u0000\u0137\u0b7e\u0001\u0000\u0000\u0000\u0139\u0b89\u0001\u0000\u0000"+ - "\u0000\u013b\u0b90\u0001\u0000\u0000\u0000\u013d\u0b99\u0001\u0000\u0000"+ - "\u0000\u013f\u0ba4\u0001\u0000\u0000\u0000\u0141\u0baa\u0001\u0000\u0000"+ - "\u0000\u0143\u0bae\u0001\u0000\u0000\u0000\u0145\u0bb3\u0001\u0000\u0000"+ - "\u0000\u0147\u0bbd\u0001\u0000\u0000\u0000\u0149\u0bc5\u0001\u0000\u0000"+ - "\u0000\u014b\u0bd2\u0001\u0000\u0000\u0000\u014d\u0bf2\u0001\u0000\u0000"+ - "\u0000\u014f\u0bff\u0001\u0000\u0000\u0000\u0151\u0c0c\u0001\u0000\u0000"+ - "\u0000\u0153\u0c19\u0001\u0000\u0000\u0000\u0155\u0c2b\u0001\u0000\u0000"+ - "\u0000\u0157\u0c4c\u0001\u0000\u0000\u0000\u0159\u0c59\u0001\u0000\u0000"+ - "\u0000\u015b\u0c60\u0001\u0000\u0000\u0000\u015d\u0c6c\u0001\u0000\u0000"+ - "\u0000\u015f\u0c72\u0001\u0000\u0000\u0000\u0161\u0c77\u0001\u0000\u0000"+ - "\u0000\u0163\u0c80\u0001\u0000\u0000\u0000\u0165\u0c85\u0001\u0000\u0000"+ - "\u0000\u0167\u0c9c\u0001\u0000\u0000\u0000\u0169\u0cb8\u0001\u0000\u0000"+ - "\u0000\u016b\u0cbc\u0001\u0000\u0000\u0000\u016d\u0cc7\u0001\u0000\u0000"+ - "\u0000\u016f\u0ccb\u0001\u0000\u0000\u0000\u0171\u0cd3\u0001\u0000\u0000"+ - "\u0000\u0173\u0cdb\u0001\u0000\u0000\u0000\u0175\u0ce3\u0001\u0000\u0000"+ - "\u0000\u0177\u0cec\u0001\u0000\u0000\u0000\u0179\u0cf6\u0001\u0000\u0000"+ - "\u0000\u017b\u0d01\u0001\u0000\u0000\u0000\u017d\u0d0a\u0001\u0000\u0000"+ - "\u0000\u017f\u0d12\u0001\u0000\u0000\u0000\u0181\u0d1a\u0001\u0000\u0000"+ - "\u0000\u0183\u0d21\u0001\u0000\u0000\u0000\u0185\u0d28\u0001\u0000\u0000"+ - "\u0000\u0187\u0d32\u0001\u0000\u0000\u0000\u0189\u0d3d\u0001\u0000\u0000"+ - "\u0000\u018b\u0d48\u0001\u0000\u0000\u0000\u018d\u0d50\u0001\u0000\u0000"+ - "\u0000\u018f\u0d56\u0001\u0000\u0000\u0000\u0191\u0d5c\u0001\u0000\u0000"+ - "\u0000\u0193\u0d64\u0001\u0000\u0000\u0000\u0195\u0d69\u0001\u0000\u0000"+ - "\u0000\u0197\u0d72\u0001\u0000\u0000\u0000\u0199\u0d7d\u0001\u0000\u0000"+ - "\u0000\u019b\u0d85\u0001\u0000\u0000\u0000\u019d\u0d90\u0001\u0000\u0000"+ - "\u0000\u019f\u0d9e\u0001\u0000\u0000\u0000\u01a1\u0daa\u0001\u0000\u0000"+ - "\u0000\u01a3\u0db5\u0001\u0000\u0000\u0000\u01a5\u0dbd\u0001\u0000\u0000"+ - "\u0000\u01a7\u0dd3\u0001\u0000\u0000\u0000\u01a9\u0ddb\u0001\u0000\u0000"+ - "\u0000\u01ab\u0de6\u0001\u0000\u0000\u0000\u01ad\u0def\u0001\u0000\u0000"+ - "\u0000\u01af\u0df8\u0001\u0000\u0000\u0000\u01b1\u0dfb\u0001\u0000\u0000"+ - "\u0000\u01b3\u0e02\u0001\u0000\u0000\u0000\u01b5\u0e09\u0001\u0000\u0000"+ - "\u0000\u01b7\u0e0e\u0001\u0000\u0000\u0000\u01b9\u0e16\u0001\u0000\u0000"+ - "\u0000\u01bb\u0e27\u0001\u0000\u0000\u0000\u01bd\u0e3d\u0001\u0000\u0000"+ - "\u0000\u01bf\u0e42\u0001\u0000\u0000\u0000\u01c1\u0e4a\u0001\u0000\u0000"+ - "\u0000\u01c3\u0e4f\u0001\u0000\u0000\u0000\u01c5\u0e56\u0001\u0000\u0000"+ - "\u0000\u01c7\u0e5f\u0001\u0000\u0000\u0000\u01c9\u0e69\u0001\u0000\u0000"+ - "\u0000\u01cb\u0e6d\u0001\u0000\u0000\u0000\u01cd\u0e76\u0001\u0000\u0000"+ - "\u0000\u01cf\u0e7d\u0001\u0000\u0000\u0000\u01d1\u0e84\u0001\u0000\u0000"+ - "\u0000\u01d3\u0e8a\u0001\u0000\u0000\u0000\u01d5\u0e91\u0001\u0000\u0000"+ - "\u0000\u01d7\u0e9b\u0001\u0000\u0000\u0000\u01d9\u0ea3\u0001\u0000\u0000"+ - "\u0000\u01db\u0ead\u0001\u0000\u0000\u0000\u01dd\u0eb7\u0001\u0000\u0000"+ - "\u0000\u01df\u0ebc\u0001\u0000\u0000\u0000\u01e1\u0ec4\u0001\u0000\u0000"+ - "\u0000\u01e3\u0ecd\u0001\u0000\u0000\u0000\u01e5\u0ed4\u0001\u0000\u0000"+ - "\u0000\u01e7\u0ed8\u0001\u0000\u0000\u0000\u01e9\u0ee0\u0001\u0000\u0000"+ - "\u0000\u01eb\u0ee9\u0001\u0000\u0000\u0000\u01ed\u0ef3\u0001\u0000\u0000"+ - "\u0000\u01ef\u0efc\u0001\u0000\u0000\u0000\u01f1\u0f04\u0001\u0000\u0000"+ - "\u0000\u01f3\u0f0a\u0001\u0000\u0000\u0000\u01f5\u0f10\u0001\u0000\u0000"+ - "\u0000\u01f7\u0f17\u0001\u0000\u0000\u0000\u01f9\u0f1e\u0001\u0000\u0000"+ - "\u0000\u01fb\u0f24\u0001\u0000\u0000\u0000\u01fd\u0f2a\u0001\u0000\u0000"+ - "\u0000\u01ff\u0f30\u0001\u0000\u0000\u0000\u0201\u0f36\u0001\u0000\u0000"+ - "\u0000\u0203\u0f40\u0001\u0000\u0000\u0000\u0205\u0f44\u0001\u0000\u0000"+ - "\u0000\u0207\u0f4a\u0001\u0000\u0000\u0000\u0209\u0f52\u0001\u0000\u0000"+ - "\u0000\u020b\u0f59\u0001\u0000\u0000\u0000\u020d\u0f61\u0001\u0000\u0000"+ - "\u0000\u020f\u0f69\u0001\u0000\u0000\u0000\u0211\u0f6f\u0001\u0000\u0000"+ - "\u0000\u0213\u0f74\u0001\u0000\u0000\u0000\u0215\u0f7b\u0001\u0000\u0000"+ - "\u0000\u0217\u0f80\u0001\u0000\u0000\u0000\u0219\u0f85\u0001\u0000\u0000"+ - "\u0000\u021b\u0f8e\u0001\u0000\u0000\u0000\u021d\u0f95\u0001\u0000\u0000"+ - "\u0000\u021f\u0f97\u0001\u0000\u0000\u0000\u0221\u0f9f\u0001\u0000\u0000"+ - "\u0000\u0223\u0fa9\u0001\u0000\u0000\u0000\u0225\u0fad\u0001\u0000\u0000"+ - "\u0000\u0227\u0fb4\u0001\u0000\u0000\u0000\u0229\u0fb7\u0001\u0000\u0000"+ - "\u0000\u022b\u0fbc\u0001\u0000\u0000\u0000\u022d\u0fc2\u0001\u0000\u0000"+ - "\u0000\u022f\u0fca\u0001\u0000\u0000\u0000\u0231\u0fd3\u0001\u0000\u0000"+ - "\u0000\u0233\u0fd9\u0001\u0000\u0000\u0000\u0235\u0fe2\u0001\u0000\u0000"+ - "\u0000\u0237\u0fea\u0001\u0000\u0000\u0000\u0239\u0ff1\u0001\u0000\u0000"+ - "\u0000\u023b\u0ffb\u0001\u0000\u0000\u0000\u023d\u1000\u0001\u0000\u0000"+ - "\u0000\u023f\u1005\u0001\u0000\u0000\u0000\u0241\u100a\u0001\u0000\u0000"+ - "\u0000\u0243\u1013\u0001\u0000\u0000\u0000\u0245\u101a\u0001\u0000\u0000"+ - "\u0000\u0247\u1020\u0001\u0000\u0000\u0000\u0249\u102a\u0001\u0000\u0000"+ - "\u0000\u024b\u1034\u0001\u0000\u0000\u0000\u024d\u1043\u0001\u0000\u0000"+ - "\u0000\u024f\u104c\u0001\u0000\u0000\u0000\u0251\u104f\u0001\u0000\u0000"+ - "\u0000\u0253\u1059\u0001\u0000\u0000\u0000\u0255\u1063\u0001\u0000\u0000"+ - "\u0000\u0257\u1069\u0001\u0000\u0000\u0000\u0259\u1073\u0001\u0000\u0000"+ - "\u0000\u025b\u1079\u0001\u0000\u0000\u0000\u025d\u1082\u0001\u0000\u0000"+ - "\u0000\u025f\u108d\u0001\u0000\u0000\u0000\u0261\u1097\u0001\u0000\u0000"+ - "\u0000\u0263\u109d\u0001\u0000\u0000\u0000\u0265\u10a3\u0001\u0000\u0000"+ - "\u0000\u0267\u10a9\u0001\u0000\u0000\u0000\u0269\u10b5\u0001\u0000\u0000"+ - "\u0000\u026b\u10bc\u0001\u0000\u0000\u0000\u026d\u10c5\u0001\u0000\u0000"+ - "\u0000\u026f\u10d2\u0001\u0000\u0000\u0000\u0271\u10da\u0001\u0000\u0000"+ - "\u0000\u0273\u10de\u0001\u0000\u0000\u0000\u0275\u10e6\u0001\u0000\u0000"+ - "\u0000\u0277\u10f0\u0001\u0000\u0000\u0000\u0279\u10fd\u0001\u0000\u0000"+ - "\u0000\u027b\u1106\u0001\u0000\u0000\u0000\u027d\u110b\u0001\u0000\u0000"+ - "\u0000\u027f\u1113\u0001\u0000\u0000\u0000\u0281\u1116\u0001\u0000\u0000"+ - "\u0000\u0283\u1120\u0001\u0000\u0000\u0000\u0285\u1128\u0001\u0000\u0000"+ - "\u0000\u0287\u112d\u0001\u0000\u0000\u0000\u0289\u112f\u0001\u0000\u0000"+ - "\u0000\u028b\u1133\u0001\u0000\u0000\u0000\u028d\u113e\u0001\u0000\u0000"+ - "\u0000\u028f\u1147\u0001\u0000\u0000\u0000\u0291\u114d\u0001\u0000\u0000"+ - "\u0000\u0293\u1159\u0001\u0000\u0000\u0000\u0295\u1162\u0001\u0000\u0000"+ - "\u0000\u0297\u1168\u0001\u0000\u0000\u0000\u0299\u116d\u0001\u0000\u0000"+ - "\u0000\u029b\u1175\u0001\u0000\u0000\u0000\u029d\u117d\u0001\u0000\u0000"+ - "\u0000\u029f\u1183\u0001\u0000\u0000\u0000\u02a1\u1188\u0001\u0000\u0000"+ - "\u0000\u02a3\u118f\u0001\u0000\u0000\u0000\u02a5\u1194\u0001\u0000\u0000"+ - "\u0000\u02a7\u119a\u0001\u0000\u0000\u0000\u02a9\u119f\u0001\u0000\u0000"+ - "\u0000\u02ab\u11a5\u0001\u0000\u0000\u0000\u02ad\u11ac\u0001\u0000\u0000"+ - "\u0000\u02af\u11af\u0001\u0000\u0000\u0000\u02b1\u11b4\u0001\u0000\u0000"+ - "\u0000\u02b3\u11ba\u0001\u0000\u0000\u0000\u02b5\u11c4\u0001\u0000\u0000"+ - "\u0000\u02b7\u11d3\u0001\u0000\u0000\u0000\u02b9\u11dc\u0001\u0000\u0000"+ - "\u0000\u02bb\u11e4\u0001\u0000\u0000\u0000\u02bd\u11e9\u0001\u0000\u0000"+ - "\u0000\u02bf\u11f0\u0001\u0000\u0000\u0000\u02c1\u11f6\u0001\u0000\u0000"+ - "\u0000\u02c3\u11f8\u0001\u0000\u0000\u0000\u02c5\u11fd\u0001\u0000\u0000"+ - "\u0000\u02c7\u1201\u0001\u0000\u0000\u0000\u02c9\u1209\u0001\u0000\u0000"+ - "\u0000\u02cb\u120f\u0001\u0000\u0000\u0000\u02cd\u121c\u0001\u0000\u0000"+ - "\u0000\u02cf\u1224\u0001\u0000\u0000\u0000\u02d1\u1228\u0001\u0000\u0000"+ - "\u0000\u02d3\u1231\u0001\u0000\u0000\u0000\u02d5\u1238\u0001\u0000\u0000"+ - "\u0000\u02d7\u123e\u0001\u0000\u0000\u0000\u02d9\u124d\u0001\u0000\u0000"+ - "\u0000\u02db\u1262\u0001\u0000\u0000\u0000\u02dd\u126f\u0001\u0000\u0000"+ - "\u0000\u02df\u1276\u0001\u0000\u0000\u0000\u02e1\u127a\u0001\u0000\u0000"+ - "\u0000\u02e3\u1281\u0001\u0000\u0000\u0000\u02e5\u128a\u0001\u0000\u0000"+ - "\u0000\u02e7\u128e\u0001\u0000\u0000\u0000\u02e9\u1293\u0001\u0000\u0000"+ - "\u0000\u02eb\u129c\u0001\u0000\u0000\u0000\u02ed\u12a3\u0001\u0000\u0000"+ - "\u0000\u02ef\u12aa\u0001\u0000\u0000\u0000\u02f1\u12b0\u0001\u0000\u0000"+ - "\u0000\u02f3\u12b5\u0001\u0000\u0000\u0000\u02f5\u12ba\u0001\u0000\u0000"+ - "\u0000\u02f7\u12c3\u0001\u0000\u0000\u0000\u02f9\u12c9\u0001\u0000\u0000"+ - "\u0000\u02fb\u12ce\u0001\u0000\u0000\u0000\u02fd\u12d4\u0001\u0000\u0000"+ - "\u0000\u02ff\u12dd\u0001\u0000\u0000\u0000\u0301\u12e5\u0001\u0000\u0000"+ - "\u0000\u0303\u12eb\u0001\u0000\u0000\u0000\u0305\u12f1\u0001\u0000\u0000"+ - "\u0000\u0307\u12f9\u0001\u0000\u0000\u0000\u0309\u12fd\u0001\u0000\u0000"+ - "\u0000\u030b\u1302\u0001\u0000\u0000\u0000\u030d\u1305\u0001\u0000\u0000"+ - "\u0000\u030f\u1310\u0001\u0000\u0000\u0000\u0311\u131d\u0001\u0000\u0000"+ - "\u0000\u0313\u1322\u0001\u0000\u0000\u0000\u0315\u132c\u0001\u0000\u0000"+ - "\u0000\u0317\u1337\u0001\u0000\u0000\u0000\u0319\u133b\u0001\u0000\u0000"+ - "\u0000\u031b\u1343\u0001\u0000\u0000\u0000\u031d\u134a\u0001\u0000\u0000"+ - "\u0000\u031f\u1352\u0001\u0000\u0000\u0000\u0321\u1359\u0001\u0000\u0000"+ - "\u0000\u0323\u135e\u0001\u0000\u0000\u0000\u0325\u1367\u0001\u0000\u0000"+ - "\u0000\u0327\u136e\u0001\u0000\u0000\u0000\u0329\u1374\u0001\u0000\u0000"+ - "\u0000\u032b\u137b\u0001\u0000\u0000\u0000\u032d\u1383\u0001\u0000\u0000"+ - "\u0000\u032f\u138a\u0001\u0000\u0000\u0000\u0331\u1397\u0001\u0000\u0000"+ - "\u0000\u0333\u139e\u0001\u0000\u0000\u0000\u0335\u13a1\u0001\u0000\u0000"+ - "\u0000\u0337\u13a5\u0001\u0000\u0000\u0000\u0339\u13ac\u0001\u0000\u0000"+ - "\u0000\u033b\u13b1\u0001\u0000\u0000\u0000\u033d\u13b5\u0001\u0000\u0000"+ - "\u0000\u033f\u13b8\u0001\u0000\u0000\u0000\u0341\u13bd\u0001\u0000\u0000"+ - "\u0000\u0343\u13c2\u0001\u0000\u0000\u0000\u0345\u13cc\u0001\u0000\u0000"+ - "\u0000\u0347\u13d5\u0001\u0000\u0000\u0000\u0349\u13dc\u0001\u0000\u0000"+ - "\u0000\u034b\u13e4\u0001\u0000\u0000\u0000\u034d\u13e7\u0001\u0000\u0000"+ - "\u0000\u034f\u13ed\u0001\u0000\u0000\u0000\u0351\u13f6\u0001\u0000\u0000"+ - "\u0000\u0353\u1401\u0001\u0000\u0000\u0000\u0355\u1408\u0001\u0000\u0000"+ - "\u0000\u0357\u140c\u0001\u0000\u0000\u0000\u0359\u1412\u0001\u0000\u0000"+ - "\u0000\u035b\u1419\u0001\u0000\u0000\u0000\u035d\u141e\u0001\u0000\u0000"+ - "\u0000\u035f\u1427\u0001\u0000\u0000\u0000\u0361\u142f\u0001\u0000\u0000"+ - "\u0000\u0363\u143a\u0001\u0000\u0000\u0000\u0365\u1440\u0001\u0000\u0000"+ - "\u0000\u0367\u1444\u0001\u0000\u0000\u0000\u0369\u144e\u0001\u0000\u0000"+ - "\u0000\u036b\u145d\u0001\u0000\u0000\u0000\u036d\u146c\u0001\u0000\u0000"+ - "\u0000\u036f\u1487\u0001\u0000\u0000\u0000\u0371\u14a2\u0001\u0000\u0000"+ - "\u0000\u0373\u14ba\u0001\u0000\u0000\u0000\u0375\u14d4\u0001\u0000\u0000"+ - "\u0000\u0377\u14df\u0001\u0000\u0000\u0000\u0379\u14e6\u0001\u0000\u0000"+ - "\u0000\u037b\u14ee\u0001\u0000\u0000\u0000\u037d\u14f8\u0001\u0000\u0000"+ - "\u0000\u037f\u14ff\u0001\u0000\u0000\u0000\u0381\u1508\u0001\u0000\u0000"+ - "\u0000\u0383\u150d\u0001\u0000\u0000\u0000\u0385\u151a\u0001\u0000\u0000"+ - "\u0000\u0387\u152a\u0001\u0000\u0000\u0000\u0389\u153a\u0001\u0000\u0000"+ - "\u0000\u038b\u1542\u0001\u0000\u0000\u0000\u038d\u1548\u0001\u0000\u0000"+ - "\u0000\u038f\u154e\u0001\u0000\u0000\u0000\u0391\u1552\u0001\u0000\u0000"+ - "\u0000\u0393\u155b\u0001\u0000\u0000\u0000\u0395\u1563\u0001\u0000\u0000"+ - "\u0000\u0397\u1569\u0001\u0000\u0000\u0000\u0399\u1573\u0001\u0000\u0000"+ - "\u0000\u039b\u157d\u0001\u0000\u0000\u0000\u039d\u1584\u0001\u0000\u0000"+ - "\u0000\u039f\u158d\u0001\u0000\u0000\u0000\u03a1\u1595\u0001\u0000\u0000"+ - "\u0000\u03a3\u159e\u0001\u0000\u0000\u0000\u03a5\u15a7\u0001\u0000\u0000"+ - "\u0000\u03a7\u15af\u0001\u0000\u0000\u0000\u03a9\u15b5\u0001\u0000\u0000"+ - "\u0000\u03ab\u15c0\u0001\u0000\u0000\u0000\u03ad\u15cb\u0001\u0000\u0000"+ - "\u0000\u03af\u15d5\u0001\u0000\u0000\u0000\u03b1\u15dc\u0001\u0000\u0000"+ - "\u0000\u03b3\u15e8\u0001\u0000\u0000\u0000\u03b5\u15ee\u0001\u0000\u0000"+ - "\u0000\u03b7\u15f4\u0001\u0000\u0000\u0000\u03b9\u15f9\u0001\u0000\u0000"+ - "\u0000\u03bb\u15fe\u0001\u0000\u0000\u0000\u03bd\u1604\u0001\u0000\u0000"+ - "\u0000\u03bf\u1609\u0001\u0000\u0000\u0000\u03c1\u1612\u0001\u0000\u0000"+ - "\u0000\u03c3\u161a\u0001\u0000\u0000\u0000\u03c5\u1624\u0001\u0000\u0000"+ - "\u0000\u03c7\u1628\u0001\u0000\u0000\u0000\u03c9\u1633\u0001\u0000\u0000"+ - "\u0000\u03cb\u163f\u0001\u0000\u0000\u0000\u03cd\u1647\u0001\u0000\u0000"+ - "\u0000\u03cf\u1651\u0001\u0000\u0000\u0000\u03d1\u165b\u0001\u0000\u0000"+ - "\u0000\u03d3\u1666\u0001\u0000\u0000\u0000\u03d5\u1675\u0001\u0000\u0000"+ - "\u0000\u03d7\u167d\u0001\u0000\u0000\u0000\u03d9\u1688\u0001\u0000\u0000"+ - "\u0000\u03db\u1691\u0001\u0000\u0000\u0000\u03dd\u169a\u0001\u0000\u0000"+ - "\u0000\u03df\u16a3\u0001\u0000\u0000\u0000\u03e1\u16ab\u0001\u0000\u0000"+ - "\u0000\u03e3\u16b4\u0001\u0000\u0000\u0000\u03e5\u16bc\u0001\u0000\u0000"+ - "\u0000\u03e7\u16c3\u0001\u0000\u0000\u0000\u03e9\u16ce\u0001\u0000\u0000"+ - "\u0000\u03eb\u16d6\u0001\u0000\u0000\u0000\u03ed\u16de\u0001\u0000\u0000"+ - "\u0000\u03ef\u16e4\u0001\u0000\u0000\u0000\u03f1\u16ec\u0001\u0000\u0000"+ - "\u0000\u03f3\u16f5\u0001\u0000\u0000\u0000\u03f5\u16fc\u0001\u0000\u0000"+ - "\u0000\u03f7\u1703\u0001\u0000\u0000\u0000\u03f9\u1718\u0001\u0000\u0000"+ - "\u0000\u03fb\u1728\u0001\u0000\u0000\u0000\u03fd\u173e\u0001\u0000\u0000"+ - "\u0000\u03ff\u1750\u0001\u0000\u0000\u0000\u0401\u175a\u0001\u0000\u0000"+ - "\u0000\u0403\u1762\u0001\u0000\u0000\u0000\u0405\u1769\u0001\u0000\u0000"+ - "\u0000\u0407\u176f\u0001\u0000\u0000\u0000\u0409\u1774\u0001\u0000\u0000"+ - "\u0000\u040b\u177d\u0001\u0000\u0000\u0000\u040d\u1784\u0001\u0000\u0000"+ - "\u0000\u040f\u178c\u0001\u0000\u0000\u0000\u0411\u179c\u0001\u0000\u0000"+ - "\u0000\u0413\u17a9\u0001\u0000\u0000\u0000\u0415\u17b8\u0001\u0000\u0000"+ - "\u0000\u0417\u17bc\u0001\u0000\u0000\u0000\u0419\u17c6\u0001\u0000\u0000"+ - "\u0000\u041b\u17d1\u0001\u0000\u0000\u0000\u041d\u17d6\u0001\u0000\u0000"+ - "\u0000\u041f\u17db\u0001\u0000\u0000\u0000\u0421\u17e5\u0001\u0000\u0000"+ - "\u0000\u0423\u17eb\u0001\u0000\u0000\u0000\u0425\u17f2\u0001\u0000\u0000"+ - "\u0000\u0427\u17fe\u0001\u0000\u0000\u0000\u0429\u1804\u0001\u0000\u0000"+ - "\u0000\u042b\u1812\u0001\u0000\u0000\u0000\u042d\u181d\u0001\u0000\u0000"+ - "\u0000\u042f\u182a\u0001\u0000\u0000\u0000\u0431\u1831\u0001\u0000\u0000"+ - "\u0000\u0433\u1838\u0001\u0000\u0000\u0000\u0435\u183f\u0001\u0000\u0000"+ - "\u0000\u0437\u1847\u0001\u0000\u0000\u0000\u0439\u1850\u0001\u0000\u0000"+ - "\u0000\u043b\u1857\u0001\u0000\u0000\u0000\u043d\u185c\u0001\u0000\u0000"+ - "\u0000\u043f\u1866\u0001\u0000\u0000\u0000\u0441\u186f\u0001\u0000\u0000"+ - "\u0000\u0443\u1879\u0001\u0000\u0000\u0000\u0445\u1886\u0001\u0000\u0000"+ - "\u0000\u0447\u1892\u0001\u0000\u0000\u0000\u0449\u189a\u0001\u0000\u0000"+ - "\u0000\u044b\u18a7\u0001\u0000\u0000\u0000\u044d\u18ab\u0001\u0000\u0000"+ - "\u0000\u044f\u18b1\u0001\u0000\u0000\u0000\u0451\u18b6\u0001\u0000\u0000"+ - "\u0000\u0453\u18bc\u0001\u0000\u0000\u0000\u0455\u18c1\u0001\u0000\u0000"+ - "\u0000\u0457\u18c9\u0001\u0000\u0000\u0000\u0459\u18d0\u0001\u0000\u0000"+ - "\u0000\u045b\u18d5\u0001\u0000\u0000\u0000\u045d\u18da\u0001\u0000\u0000"+ - "\u0000\u045f\u18e3\u0001\u0000\u0000\u0000\u0461\u18ec\u0001\u0000\u0000"+ - "\u0000\u0463\u18f1\u0001\u0000\u0000\u0000\u0465\u18f8\u0001\u0000\u0000"+ - "\u0000\u0467\u18fe\u0001\u0000\u0000\u0000\u0469\u1907\u0001\u0000\u0000"+ - "\u0000\u046b\u1915\u0001\u0000\u0000\u0000\u046d\u1922\u0001\u0000\u0000"+ - "\u0000\u046f\u1926\u0001\u0000\u0000\u0000\u0471\u192e\u0001\u0000\u0000"+ - "\u0000\u0473\u1937\u0001\u0000\u0000\u0000\u0475\u1944\u0001\u0000\u0000"+ - "\u0000\u0477\u194d\u0001\u0000\u0000\u0000\u0479\u1958\u0001\u0000\u0000"+ - "\u0000\u047b\u195d\u0001\u0000\u0000\u0000\u047d\u1964\u0001\u0000\u0000"+ - "\u0000\u047f\u196a\u0001\u0000\u0000\u0000\u0481\u1970\u0001\u0000\u0000"+ - "\u0000\u0483\u197a\u0001\u0000\u0000\u0000\u0485\u1981\u0001\u0000\u0000"+ - "\u0000\u0487\u198c\u0001\u0000\u0000\u0000\u0489\u1997\u0001\u0000\u0000"+ - "\u0000\u048b\u19a3\u0001\u0000\u0000\u0000\u048d\u19a9\u0001\u0000\u0000"+ - "\u0000\u048f\u19b0\u0001\u0000\u0000\u0000\u0491\u19b8\u0001\u0000\u0000"+ - "\u0000\u0493\u19bf\u0001\u0000\u0000\u0000\u0495\u19c9\u0001\u0000\u0000"+ - "\u0000\u0497\u19cf\u0001\u0000\u0000\u0000\u0499\u19df\u0001\u0000\u0000"+ - "\u0000\u049b\u19e7\u0001\u0000\u0000\u0000\u049d\u19f3\u0001\u0000\u0000"+ - "\u0000\u049f\u1a00\u0001\u0000\u0000\u0000\u04a1\u1a0a\u0001\u0000\u0000"+ - "\u0000\u04a3\u1a0e\u0001\u0000\u0000\u0000\u04a5\u1a18\u0001\u0000\u0000"+ - "\u0000\u04a7\u1a1e\u0001\u0000\u0000\u0000\u04a9\u1a25\u0001\u0000\u0000"+ - "\u0000\u04ab\u1a31\u0001\u0000\u0000\u0000\u04ad\u1a37\u0001\u0000\u0000"+ - "\u0000\u04af\u1a42\u0001\u0000\u0000\u0000\u04b1\u1a4e\u0001\u0000\u0000"+ - "\u0000\u04b3\u1a59\u0001\u0000\u0000\u0000\u04b5\u1a5e\u0001\u0000\u0000"+ - "\u0000\u04b7\u1a67\u0001\u0000\u0000\u0000\u04b9\u1a71\u0001\u0000\u0000"+ - "\u0000\u04bb\u1a7b\u0001\u0000\u0000\u0000\u04bd\u1a80\u0001\u0000\u0000"+ - "\u0000\u04bf\u1a85\u0001\u0000\u0000\u0000\u04c1\u1a8a\u0001\u0000\u0000"+ - "\u0000\u04c3\u1a8f\u0001\u0000\u0000\u0000\u04c5\u1a99\u0001\u0000\u0000"+ - "\u0000\u04c7\u1aa7\u0001\u0000\u0000\u0000\u04c9\u1ab7\u0001\u0000\u0000"+ - "\u0000\u04cb\u1abe\u0001\u0000\u0000\u0000\u04cd\u1ac1\u0001\u0000\u0000"+ - "\u0000\u04cf\u1ac7\u0001\u0000\u0000\u0000\u04d1\u1ad7\u0001\u0000\u0000"+ - "\u0000\u04d3\u1ae0\u0001\u0000\u0000\u0000\u04d5\u1aec\u0001\u0000\u0000"+ - "\u0000\u04d7\u1aff\u0001\u0000\u0000\u0000\u04d9\u1b16\u0001\u0000\u0000"+ - "\u0000\u04db\u1b2f\u0001\u0000\u0000\u0000\u04dd\u1b39\u0001\u0000\u0000"+ - "\u0000\u04df\u1b44\u0001\u0000\u0000\u0000\u04e1\u1b4e\u0001\u0000\u0000"+ - "\u0000\u04e3\u1b5a\u0001\u0000\u0000\u0000\u04e5\u1b60\u0001\u0000\u0000"+ - "\u0000\u04e7\u1b68\u0001\u0000\u0000\u0000\u04e9\u1b78\u0001\u0000\u0000"+ - "\u0000\u04eb\u1b85\u0001\u0000\u0000\u0000\u04ed\u1b94\u0001\u0000\u0000"+ - "\u0000\u04ef\u1b99\u0001\u0000\u0000\u0000\u04f1\u1b9e\u0001\u0000\u0000"+ - "\u0000\u04f3\u1ba7\u0001\u0000\u0000\u0000\u04f5\u1baf\u0001\u0000\u0000"+ - "\u0000\u04f7\u1bb4\u0001\u0000\u0000\u0000\u04f9\u1bbc\u0001\u0000\u0000"+ - "\u0000\u04fb\u1bc6\u0001\u0000\u0000\u0000\u04fd\u1bd2\u0001\u0000\u0000"+ - "\u0000\u04ff\u1bd8\u0001\u0000\u0000\u0000\u0501\u1be4\u0001\u0000\u0000"+ - "\u0000\u0503\u1bea\u0001\u0000\u0000\u0000\u0505\u1bf1\u0001\u0000\u0000"+ - "\u0000\u0507\u1bf9\u0001\u0000\u0000\u0000\u0509\u1c02\u0001\u0000\u0000"+ - "\u0000\u050b\u1c0a\u0001\u0000\u0000\u0000\u050d\u1c11\u0001\u0000\u0000"+ - "\u0000\u050f\u1c17\u0001\u0000\u0000\u0000\u0511\u1c1e\u0001\u0000\u0000"+ - "\u0000\u0513\u1c24\u0001\u0000\u0000\u0000\u0515\u1c2a\u0001\u0000\u0000"+ - "\u0000\u0517\u1c2f\u0001\u0000\u0000\u0000\u0519\u1c49\u0001\u0000\u0000"+ - "\u0000\u051b\u1c60\u0001\u0000\u0000\u0000\u051d\u1c77\u0001\u0000\u0000"+ - "\u0000\u051f\u1c90\u0001\u0000\u0000\u0000\u0521\u1c96\u0001\u0000\u0000"+ - "\u0000\u0523\u1c9d\u0001\u0000\u0000\u0000\u0525\u1ca3\u0001\u0000\u0000"+ - "\u0000\u0527\u1cac\u0001\u0000\u0000\u0000\u0529\u1cb6\u0001\u0000\u0000"+ - "\u0000\u052b\u1cbc\u0001\u0000\u0000\u0000\u052d\u1cc3\u0001\u0000\u0000"+ - "\u0000\u052f\u1ccb\u0001\u0000\u0000\u0000\u0531\u1cd4\u0001\u0000\u0000"+ - "\u0000\u0533\u1cdc\u0001\u0000\u0000\u0000\u0535\u1ce5\u0001\u0000\u0000"+ - "\u0000\u0537\u1cee\u0001\u0000\u0000\u0000\u0539\u1cf6\u0001\u0000\u0000"+ - "\u0000\u053b\u1cfe\u0001\u0000\u0000\u0000\u053d\u1d03\u0001\u0000\u0000"+ - "\u0000\u053f\u1d0c\u0001\u0000\u0000\u0000\u0541\u1d11\u0001\u0000\u0000"+ - "\u0000\u0543\u1d1a\u0001\u0000\u0000\u0000\u0545\u1d20\u0001\u0000\u0000"+ - "\u0000\u0547\u1d2d\u0001\u0000\u0000\u0000\u0549\u1d34\u0001\u0000\u0000"+ - "\u0000\u054b\u1d39\u0001\u0000\u0000\u0000\u054d\u1d40\u0001\u0000\u0000"+ - "\u0000\u054f\u1d48\u0001\u0000\u0000\u0000\u0551\u1d4d\u0001\u0000\u0000"+ - "\u0000\u0553\u1d53\u0001\u0000\u0000\u0000\u0555\u1d58\u0001\u0000\u0000"+ - "\u0000\u0557\u1d5d\u0001\u0000\u0000\u0000\u0559\u1d61\u0001\u0000\u0000"+ - "\u0000\u055b\u1d66\u0001\u0000\u0000\u0000\u055d\u1d70\u0001\u0000\u0000"+ - "\u0000\u055f\u1d7c\u0001\u0000\u0000\u0000\u0561\u1d87\u0001\u0000\u0000"+ - "\u0000\u0563\u1d94\u0001\u0000\u0000\u0000\u0565\u1d9c\u0001\u0000\u0000"+ - "\u0000\u0567\u1da6\u0001\u0000\u0000\u0000\u0569\u1dac\u0001\u0000\u0000"+ - "\u0000\u056b\u1db4\u0001\u0000\u0000\u0000\u056d\u1dc0\u0001\u0000\u0000"+ - "\u0000\u056f\u1dce\u0001\u0000\u0000\u0000\u0571\u1dd8\u0001\u0000\u0000"+ - "\u0000\u0573\u1de4\u0001\u0000\u0000\u0000\u0575\u1dea\u0001\u0000\u0000"+ - "\u0000\u0577\u1df0\u0001\u0000\u0000\u0000\u0579\u1df7\u0001\u0000\u0000"+ - "\u0000\u057b\u1e01\u0001\u0000\u0000\u0000\u057d\u1e11\u0001\u0000\u0000"+ - "\u0000\u057f\u1e1d\u0001\u0000\u0000\u0000\u0581\u1e28\u0001\u0000\u0000"+ - "\u0000\u0583\u1e35\u0001\u0000\u0000\u0000\u0585\u1e3e\u0001\u0000\u0000"+ - "\u0000\u0587\u1e45\u0001\u0000\u0000\u0000\u0589\u1e4e\u0001\u0000\u0000"+ - "\u0000\u058b\u1e55\u0001\u0000\u0000\u0000\u058d\u1e5d\u0001\u0000\u0000"+ - "\u0000\u058f\u1e68\u0001\u0000\u0000\u0000\u0591\u1e79\u0001\u0000\u0000"+ - "\u0000\u0593\u1e83\u0001\u0000\u0000\u0000\u0595\u1e8a\u0001\u0000\u0000"+ - "\u0000\u0597\u1e93\u0001\u0000\u0000\u0000\u0599\u1ea0\u0001\u0000\u0000"+ - "\u0000\u059b\u1ea5\u0001\u0000\u0000\u0000\u059d\u1eac\u0001\u0000\u0000"+ - "\u0000\u059f\u1eb5\u0001\u0000\u0000\u0000\u05a1\u1eb8\u0001\u0000\u0000"+ - "\u0000\u05a3\u1ebf\u0001\u0000\u0000\u0000\u05a5\u1eca\u0001\u0000\u0000"+ - "\u0000\u05a7\u1ed3\u0001\u0000\u0000\u0000\u05a9\u1edc\u0001\u0000\u0000"+ - "\u0000\u05ab\u1ee4\u0001\u0000\u0000\u0000\u05ad\u1ef6\u0001\u0000\u0000"+ - "\u0000\u05af\u1f02\u0001\u0000\u0000\u0000\u05b1\u1f08\u0001\u0000\u0000"+ - "\u0000\u05b3\u1f10\u0001\u0000\u0000\u0000\u05b5\u1f17\u0001\u0000\u0000"+ - "\u0000\u05b7\u1f1d\u0001\u0000\u0000\u0000\u05b9\u1f22\u0001\u0000\u0000"+ - "\u0000\u05bb\u1f27\u0001\u0000\u0000\u0000\u05bd\u1f2e\u0001\u0000\u0000"+ - "\u0000\u05bf\u1f32\u0001\u0000\u0000\u0000\u05c1\u1f37\u0001\u0000\u0000"+ - "\u0000\u05c3\u1f44\u0001\u0000\u0000\u0000\u05c5\u1f4b\u0001\u0000\u0000"+ - "\u0000\u05c7\u1f58\u0001\u0000\u0000\u0000\u05c9\u1f60\u0001\u0000\u0000"+ - "\u0000\u05cb\u1f69\u0001\u0000\u0000\u0000\u05cd\u1f74\u0001\u0000\u0000"+ - "\u0000\u05cf\u1f7c\u0001\u0000\u0000\u0000\u05d1\u1f83\u0001\u0000\u0000"+ - "\u0000\u05d3\u1f8a\u0001\u0000\u0000\u0000\u05d5\u1f91\u0001\u0000\u0000"+ - "\u0000\u05d7\u1f98\u0001\u0000\u0000\u0000\u05d9\u1f9e\u0001\u0000\u0000"+ - "\u0000\u05db\u1fa6\u0001\u0000\u0000\u0000\u05dd\u1fb0\u0001\u0000\u0000"+ - "\u0000\u05df\u1fbc\u0001\u0000\u0000\u0000\u05e1\u1fc1\u0001\u0000\u0000"+ - "\u0000\u05e3\u1fc5\u0001\u0000\u0000\u0000\u05e5\u1fcb\u0001\u0000\u0000"+ - "\u0000\u05e7\u1fdd\u0001\u0000\u0000\u0000\u05e9\u1fe2\u0001\u0000\u0000"+ - "\u0000\u05eb\u1fe9\u0001\u0000\u0000\u0000\u05ed\u1ff0\u0001\u0000\u0000"+ - "\u0000\u05ef\u1ff7\u0001\u0000\u0000\u0000\u05f1\u1ffc\u0001\u0000\u0000"+ - "\u0000\u05f3\u2001\u0001\u0000\u0000\u0000\u05f5\u2006\u0001\u0000\u0000"+ - "\u0000\u05f7\u200b\u0001\u0000\u0000\u0000\u05f9\u2010\u0001\u0000\u0000"+ - "\u0000\u05fb\u2016\u0001\u0000\u0000\u0000\u05fd\u201b\u0001\u0000\u0000"+ - "\u0000\u05ff\u2020\u0001\u0000\u0000\u0000\u0601\u2028\u0001\u0000\u0000"+ - "\u0000\u0603\u2031\u0001\u0000\u0000\u0000\u0605\u2037\u0001\u0000\u0000"+ - "\u0000\u0607\u203e\u0001\u0000\u0000\u0000\u0609\u2044\u0001\u0000\u0000"+ - "\u0000\u060b\u204c\u0001\u0000\u0000\u0000\u060d\u2054\u0001\u0000\u0000"+ - "\u0000\u060f\u205b\u0001\u0000\u0000\u0000\u0611\u2063\u0001\u0000\u0000"+ - "\u0000\u0613\u206b\u0001\u0000\u0000\u0000\u0615\u2073\u0001\u0000\u0000"+ - "\u0000\u0617\u207f\u0001\u0000\u0000\u0000\u0619\u2086\u0001\u0000\u0000"+ - "\u0000\u061b\u208b\u0001\u0000\u0000\u0000\u061d\u2097\u0001\u0000\u0000"+ - "\u0000\u061f\u209e\u0001\u0000\u0000\u0000\u0621\u20a6\u0001\u0000\u0000"+ - "\u0000\u0623\u20af\u0001\u0000\u0000\u0000\u0625\u20bd\u0001\u0000\u0000"+ - "\u0000\u0627\u20c2\u0001\u0000\u0000\u0000\u0629\u20c9\u0001\u0000\u0000"+ - "\u0000\u062b\u20cd\u0001\u0000\u0000\u0000\u062d\u20cf\u0001\u0000\u0000"+ - "\u0000\u062f\u20d1\u0001\u0000\u0000\u0000\u0631\u20d4\u0001\u0000\u0000"+ - "\u0000\u0633\u20d6\u0001\u0000\u0000\u0000\u0635\u20d9\u0001\u0000\u0000"+ - "\u0000\u0637\u20db\u0001\u0000\u0000\u0000\u0639\u20dd\u0001\u0000\u0000"+ - "\u0000\u063b\u20df\u0001\u0000\u0000\u0000\u063d\u20e1\u0001\u0000\u0000"+ - "\u0000\u063f\u20e3\u0001\u0000\u0000\u0000\u0641\u20ed\u0001\u0000\u0000"+ - "\u0000\u0643\u20f1\u0001\u0000\u0000\u0000\u0645\u210d\u0001\u0000\u0000"+ - "\u0000\u0647\u211c\u0001\u0000\u0000\u0000\u0649\u211f\u0001\u0000\u0000"+ - "\u0000\u064b\u2121\u0001\u0000\u0000\u0000\u064d\u2123\u0001\u0000\u0000"+ - "\u0000\u064f\u2125\u0001\u0000\u0000\u0000\u0651\u212c\u0001\u0000\u0000"+ - "\u0000\u0653\u2132\u0001\u0000\u0000\u0000\u0655\u2139\u0001\u0000\u0000"+ - "\u0000\u0657\u213b\u0001\u0000\u0000\u0000\u0659\u213e\u0001\u0000\u0000"+ - "\u0000\u065b\u2141\u0001\u0000\u0000\u0000\u065d\u2144\u0001\u0000\u0000"+ - "\u0000\u065f\u2147\u0001\u0000\u0000\u0000\u0661\u2149\u0001\u0000\u0000"+ - "\u0000\u0663\u214b\u0001\u0000\u0000\u0000\u0665\u214e\u0001\u0000\u0000"+ - "\u0000\u0667\u2151\u0001\u0000\u0000\u0000\u0669\u2153\u0001\u0000\u0000"+ - "\u0000\u066b\u2155\u0001\u0000\u0000\u0000\u066d\u2158\u0001\u0000\u0000"+ - "\u0000\u066f\u215a\u0001\u0000\u0000\u0000\u0671\u215d\u0001\u0000\u0000"+ - "\u0000\u0673\u2160\u0001\u0000\u0000\u0000\u0675\u2162\u0001\u0000\u0000"+ - "\u0000\u0677\u2165\u0001\u0000\u0000\u0000\u0679\u2168\u0001\u0000\u0000"+ - "\u0000\u067b\u216c\u0001\u0000\u0000\u0000\u067d\u216f\u0001\u0000\u0000"+ - "\u0000\u067f\u2172\u0001\u0000\u0000\u0000\u0681\u2176\u0001\u0000\u0000"+ - "\u0000\u0683\u217a\u0001\u0000\u0000\u0000\u0685\u217c\u0001\u0000\u0000"+ - "\u0000\u0687\u217f\u0001\u0000\u0000\u0000\u0689\u2182\u0001\u0000\u0000"+ - "\u0000\u068b\u2185\u0001\u0000\u0000\u0000\u068d\u2188\u0001\u0000\u0000"+ - "\u0000\u068f\u218c\u0001\u0000\u0000\u0000\u0691\u218f\u0001\u0000\u0000"+ - "\u0000\u0693\u2193\u0001\u0000\u0000\u0000\u0695\u2197\u0001\u0000\u0000"+ - "\u0000\u0697\u2199\u0001\u0000\u0000\u0000\u0699\u219b\u0001\u0000\u0000"+ - "\u0000\u069b\u219d\u0001\u0000\u0000\u0000\u069d\u21a0\u0001\u0000\u0000"+ - "\u0000\u069f\u21a4\u0001\u0000\u0000\u0000\u06a1\u21a7\u0001\u0000\u0000"+ - "\u0000\u06a3\u21a9\u0001\u0000\u0000\u0000\u06a5\u21ab\u0001\u0000\u0000"+ - "\u0000\u06a7\u21ae\u0001\u0000\u0000\u0000\u06a9\u21b1\u0001\u0000\u0000"+ - "\u0000\u06ab\u21b4\u0001\u0000\u0000\u0000\u06ad\u21b7\u0001\u0000\u0000"+ - "\u0000\u06af\u21b9\u0001\u0000\u0000\u0000\u06b1\u21bb\u0001\u0000\u0000"+ - "\u0000\u06b3\u21be\u0001\u0000\u0000\u0000\u06b5\u21c3\u0001\u0000\u0000"+ - "\u0000\u06b7\u21c7\u0001\u0000\u0000\u0000\u06b9\u21cc\u0001\u0000\u0000"+ - "\u0000\u06bb\u21d0\u0001\u0000\u0000\u0000\u06bd\u21d3\u0001\u0000\u0000"+ - "\u0000\u06bf\u21d6\u0001\u0000\u0000\u0000\u06c1\u06c3\u0007\u0000\u0000"+ - "\u0000\u06c2\u06c1\u0001\u0000\u0000\u0000\u06c3\u06c4\u0001\u0000\u0000"+ - "\u0000\u06c4\u06c2\u0001\u0000\u0000\u0000\u06c4\u06c5\u0001\u0000\u0000"+ - "\u0000\u06c5\u06c6\u0001\u0000\u0000\u0000\u06c6\u06c7\u0006\u0000\u0000"+ - "\u0000\u06c7\u0002\u0001\u0000\u0000\u0000\u06c8\u06c9\u0005/\u0000\u0000"+ - "\u06c9\u06ca\u0005*\u0000\u0000\u06ca\u06ce\u0001\u0000\u0000\u0000\u06cb"+ - "\u06cd\t\u0000\u0000\u0000\u06cc\u06cb\u0001\u0000\u0000\u0000\u06cd\u06d0"+ - "\u0001\u0000\u0000\u0000\u06ce\u06cf\u0001\u0000\u0000\u0000\u06ce\u06cc"+ - "\u0001\u0000\u0000\u0000\u06cf\u06d1\u0001\u0000\u0000\u0000\u06d0\u06ce"+ - "\u0001\u0000\u0000\u0000\u06d1\u06d2\u0005*\u0000\u0000\u06d2\u06d3\u0005"+ - "/\u0000\u0000\u06d3\u06d4\u0001\u0000\u0000\u0000\u06d4\u06d5\u0006\u0001"+ - "\u0001\u0000\u06d5\u0004\u0001\u0000\u0000\u0000\u06d6\u06d7\u0005-\u0000"+ - "\u0000\u06d7\u06d8\u0005-\u0000\u0000\u06d8\u06dc\u0001\u0000\u0000\u0000"+ - "\u06d9\u06db\t\u0000\u0000\u0000\u06da\u06d9\u0001\u0000\u0000\u0000\u06db"+ - "\u06de\u0001\u0000\u0000\u0000\u06dc\u06dd\u0001\u0000\u0000\u0000\u06dc"+ - "\u06da\u0001\u0000\u0000\u0000\u06dd\u06df\u0001\u0000\u0000\u0000\u06de"+ - "\u06dc\u0001\u0000\u0000\u0000\u06df\u06e0\u0005\n\u0000\u0000\u06e0\u06e1"+ - "\u0001\u0000\u0000\u0000\u06e1\u06e2\u0006\u0002\u0001\u0000\u06e2\u0006"+ - "\u0001\u0000\u0000\u0000\u06e3\u06e4\u0007\u0001\u0000\u0000\u06e4\b\u0001"+ - "\u0000\u0000\u0000\u06e5\u06e6\u0007\u0002\u0000\u0000\u06e6\n\u0001\u0000"+ - "\u0000\u0000\u06e7\u06e8\u0007\u0003\u0000\u0000\u06e8\f\u0001\u0000\u0000"+ - "\u0000\u06e9\u06ea\u0007\u0004\u0000\u0000\u06ea\u000e\u0001\u0000\u0000"+ - "\u0000\u06eb\u06ec\u0007\u0005\u0000\u0000\u06ec\u0010\u0001\u0000\u0000"+ - "\u0000\u06ed\u06ee\u0007\u0006\u0000\u0000\u06ee\u0012\u0001\u0000\u0000"+ - "\u0000\u06ef\u06f0\u0007\u0007\u0000\u0000\u06f0\u0014\u0001\u0000\u0000"+ - "\u0000\u06f1\u06f2\u0007\b\u0000\u0000\u06f2\u0016\u0001\u0000\u0000\u0000"+ - "\u06f3\u06f4\u0007\t\u0000\u0000\u06f4\u0018\u0001\u0000\u0000\u0000\u06f5"+ - "\u06f6\u0007\n\u0000\u0000\u06f6\u001a\u0001\u0000\u0000\u0000\u06f7\u06f8"+ - "\u0007\u000b\u0000\u0000\u06f8\u001c\u0001\u0000\u0000\u0000\u06f9\u06fa"+ - "\u0007\f\u0000\u0000\u06fa\u001e\u0001\u0000\u0000\u0000\u06fb\u06fc\u0007"+ - "\r\u0000\u0000\u06fc \u0001\u0000\u0000\u0000\u06fd\u06fe\u0007\u000e"+ - "\u0000\u0000\u06fe\"\u0001\u0000\u0000\u0000\u06ff\u0700\u0007\u000f\u0000"+ - "\u0000\u0700$\u0001\u0000\u0000\u0000\u0701\u0702\u0007\u0010\u0000\u0000"+ - "\u0702&\u0001\u0000\u0000\u0000\u0703\u0704\u0007\u0011\u0000\u0000\u0704"+ - "(\u0001\u0000\u0000\u0000\u0705\u0706\u0007\u0012\u0000\u0000\u0706*\u0001"+ - "\u0000\u0000\u0000\u0707\u0708\u0007\u0013\u0000\u0000\u0708,\u0001\u0000"+ - "\u0000\u0000\u0709\u070a\u0007\u0014\u0000\u0000\u070a.\u0001\u0000\u0000"+ - "\u0000\u070b\u070c\u0007\u0015\u0000\u0000\u070c0\u0001\u0000\u0000\u0000"+ - "\u070d\u070e\u0007\u0016\u0000\u0000\u070e2\u0001\u0000\u0000\u0000\u070f"+ - "\u0710\u0007\u0017\u0000\u0000\u07104\u0001\u0000\u0000\u0000\u0711\u0712"+ - "\u0007\u0018\u0000\u0000\u07126\u0001\u0000\u0000\u0000\u0713\u0714\u0007"+ - "\u0019\u0000\u0000\u07148\u0001\u0000\u0000\u0000\u0715\u0716\u0007\u001a"+ - "\u0000\u0000\u0716:\u0001\u0000\u0000\u0000\u0717\u0718\u0007\u001b\u0000"+ - "\u0000\u0718<\u0001\u0000\u0000\u0000\u0719\u071a\u0007\u001c\u0000\u0000"+ - "\u071a>\u0001\u0000\u0000\u0000\u071b\u0723\u0005\"\u0000\u0000\u071c"+ - "\u071d\u0005\\\u0000\u0000\u071d\u0722\t\u0000\u0000\u0000\u071e\u071f"+ - "\u0005\"\u0000\u0000\u071f\u0722\u0005\"\u0000\u0000\u0720\u0722\b\u001d"+ - "\u0000\u0000\u0721\u071c\u0001\u0000\u0000\u0000\u0721\u071e\u0001\u0000"+ - "\u0000\u0000\u0721\u0720\u0001\u0000\u0000\u0000\u0722\u0725\u0001\u0000"+ - "\u0000\u0000\u0723\u0721\u0001\u0000\u0000\u0000\u0723\u0724\u0001\u0000"+ - "\u0000\u0000\u0724\u0726\u0001\u0000\u0000\u0000\u0725\u0723\u0001\u0000"+ - "\u0000\u0000\u0726\u0727\u0005\"\u0000\u0000\u0727@\u0001\u0000\u0000"+ - "\u0000\u0728\u0730\u0005\'\u0000\u0000\u0729\u072a\u0005\\\u0000\u0000"+ - "\u072a\u072f\t\u0000\u0000\u0000\u072b\u072c\u0005\'\u0000\u0000\u072c"+ - "\u072f\u0005\'\u0000\u0000\u072d\u072f\b\u001e\u0000\u0000\u072e\u0729"+ - "\u0001\u0000\u0000\u0000\u072e\u072b\u0001\u0000\u0000\u0000\u072e\u072d"+ - "\u0001\u0000\u0000\u0000\u072f\u0732\u0001\u0000\u0000\u0000\u0730\u072e"+ - "\u0001\u0000\u0000\u0000\u0730\u0731\u0001\u0000\u0000\u0000\u0731\u0733"+ - "\u0001\u0000\u0000\u0000\u0732\u0730\u0001\u0000\u0000\u0000\u0733\u0734"+ - "\u0005\'\u0000\u0000\u0734B\u0001\u0000\u0000\u0000\u0735\u073d\u0005"+ - "`\u0000\u0000\u0736\u0737\u0005\\\u0000\u0000\u0737\u073c\t\u0000\u0000"+ - "\u0000\u0738\u0739\u0005`\u0000\u0000\u0739\u073c\u0005`\u0000\u0000\u073a"+ - "\u073c\b\u001f\u0000\u0000\u073b\u0736\u0001\u0000\u0000\u0000\u073b\u0738"+ - "\u0001\u0000\u0000\u0000\u073b\u073a\u0001\u0000\u0000\u0000\u073c\u073f"+ - "\u0001\u0000\u0000\u0000\u073d\u073b\u0001\u0000\u0000\u0000\u073d\u073e"+ - "\u0001\u0000\u0000\u0000\u073e\u0740\u0001\u0000\u0000\u0000\u073f\u073d"+ - "\u0001\u0000\u0000\u0000\u0740\u0741\u0005`\u0000\u0000\u0741D\u0001\u0000"+ - "\u0000\u0000\u0742\u0743\u0003\u0007\u0003\u0000\u0743F\u0001\u0000\u0000"+ - "\u0000\u0744\u0745\u0003\u0007\u0003\u0000\u0745\u0746\u0003\t\u0004\u0000"+ - "\u0746\u0747\u0003#\u0011\u0000\u0747\u0748\u0003)\u0014\u0000\u0748\u0749"+ - "\u0003-\u0016\u0000\u0749H\u0001\u0000\u0000\u0000\u074a\u074b\u0003\u0007"+ - "\u0003\u0000\u074b\u074c\u0003\t\u0004\u0000\u074c\u074d\u0003+\u0015"+ - "\u0000\u074dJ\u0001\u0000\u0000\u0000\u074e\u074f\u0003\u0007\u0003\u0000"+ - "\u074f\u0750\u0003\t\u0004\u0000\u0750\u0751\u0003+\u0015\u0000\u0751"+ - "\u0752\u0003#\u0011\u0000\u0752\u0753\u0003\u001d\u000e\u0000\u0753\u0754"+ - "\u0003/\u0017\u0000\u0754\u0755\u0003-\u0016\u0000\u0755\u0756\u0003\u000f"+ - "\u0007\u0000\u0756L\u0001\u0000\u0000\u0000\u0757\u0758\u0003\u0007\u0003"+ - "\u0000\u0758\u0759\u0003\u000b\u0005\u0000\u0759\u075a\u0003\u000b\u0005"+ - "\u0000\u075a\u075b\u0003\u000f\u0007\u0000\u075b\u075c\u0003+\u0015\u0000"+ - "\u075c\u075d\u0003+\u0015\u0000\u075dN\u0001\u0000\u0000\u0000\u075e\u075f"+ - "\u0003\u0007\u0003\u0000\u075f\u0760\u0003\u000b\u0005\u0000\u0760\u0761"+ - "\u0003-\u0016\u0000\u0761\u0762\u0003\u0017\u000b\u0000\u0762\u0763\u0003"+ - "#\u0011\u0000\u0763\u0764\u0003!\u0010\u0000\u0764P\u0001\u0000\u0000"+ - "\u0000\u0765\u0766\u0003\u0007\u0003\u0000\u0766\u0767\u0003\r\u0006\u0000"+ - "\u0767\u0768\u0003\u0007\u0003\u0000\u0768R\u0001\u0000\u0000\u0000\u0769"+ - "\u076a\u0003\u0007\u0003\u0000\u076a\u076b\u0003\r\u0006\u0000\u076b\u076c"+ - "\u0003\r\u0006\u0000\u076cT\u0001\u0000\u0000\u0000\u076d\u076e\u0003"+ - "\u0007\u0003\u0000\u076e\u076f\u0003\r\u0006\u0000\u076f\u0770\u0003\u001f"+ - "\u000f\u0000\u0770\u0771\u0003\u0017\u000b\u0000\u0771\u0772\u0003!\u0010"+ - "\u0000\u0772V\u0001\u0000\u0000\u0000\u0773\u0774\u0003\u0007\u0003\u0000"+ - "\u0774\u0775\u0003\u0011\b\u0000\u0775\u0776\u0003-\u0016\u0000\u0776"+ - "\u0777\u0003\u000f\u0007\u0000\u0777\u0778\u0003)\u0014\u0000\u0778X\u0001"+ - "\u0000\u0000\u0000\u0779\u077a\u0003\u0007\u0003\u0000\u077a\u077b\u0003"+ - "\u0013\t\u0000\u077b\u077c\u0003\u0013\t\u0000\u077c\u077d\u0003)\u0014"+ - "\u0000\u077d\u077e\u0003\u000f\u0007\u0000\u077e\u077f\u0003\u0013\t\u0000"+ - "\u077f\u0780\u0003\u0007\u0003\u0000\u0780\u0781\u0003-\u0016\u0000\u0781"+ - "\u0782\u0003\u000f\u0007\u0000\u0782Z\u0001\u0000\u0000\u0000\u0783\u0784"+ - "\u0003\u0007\u0003\u0000\u0784\u0785\u0003\u001d\u000e\u0000\u0785\u0786"+ - "\u0003\u0017\u000b\u0000\u0786\u0787\u0003\u0007\u0003\u0000\u0787\u0788"+ - "\u0003+\u0015\u0000\u0788\\\u0001\u0000\u0000\u0000\u0789\u078a\u0003"+ - "\u0007\u0003\u0000\u078a\u078b\u0003\u001d\u000e\u0000\u078b\u078c\u0003"+ - "\u001d\u000e\u0000\u078c^\u0001\u0000\u0000\u0000\u078d\u078e\u0003\u0007"+ - "\u0003\u0000\u078e\u078f\u0003\u001d\u000e\u0000\u078f\u0790\u0003\u001d"+ - "\u000e\u0000\u0790\u0791\u0003#\u0011\u0000\u0791\u0792\u0003\u000b\u0005"+ - "\u0000\u0792\u0793\u0003\u0007\u0003\u0000\u0793\u0794\u0003-\u0016\u0000"+ - "\u0794\u0795\u0003\u000f\u0007\u0000\u0795`\u0001\u0000\u0000\u0000\u0796"+ - "\u0797\u0003\u0007\u0003\u0000\u0797\u0798\u0003\u001d\u000e\u0000\u0798"+ - "\u0799\u0003+\u0015\u0000\u0799\u079a\u0003#\u0011\u0000\u079ab\u0001"+ - "\u0000\u0000\u0000\u079b\u079c\u0003\u0007\u0003\u0000\u079c\u079d\u0003"+ - "\u001d\u000e\u0000\u079d\u079e\u0003-\u0016\u0000\u079e\u079f\u0003\u000f"+ - "\u0007\u0000\u079f\u07a0\u0003)\u0014\u0000\u07a0d\u0001\u0000\u0000\u0000"+ - "\u07a1\u07a2\u0003\u0007\u0003\u0000\u07a2\u07a3\u0003\u001d\u000e\u0000"+ - "\u07a3\u07a4\u00033\u0019\u0000\u07a4\u07a5\u0003\u0007\u0003\u0000\u07a5"+ - "\u07a6\u00037\u001b\u0000\u07a6\u07a7\u0003+\u0015\u0000\u07a7f\u0001"+ - "\u0000\u0000\u0000\u07a8\u07a9\u0003\u0007\u0003\u0000\u07a9\u07aa\u0003"+ - "!\u0010\u0000\u07aa\u07ab\u0003\u0007\u0003\u0000\u07ab\u07ac\u0003\u001d"+ - "\u000e\u0000\u07ac\u07ad\u00037\u001b\u0000\u07ad\u07ae\u0003+\u0015\u0000"+ - "\u07ae\u07af\u0003\u000f\u0007\u0000\u07afh\u0001\u0000\u0000\u0000\u07b0"+ - "\u07b1\u0003\u0007\u0003\u0000\u07b1\u07b2\u0003!\u0010\u0000\u07b2\u07b3"+ - "\u0003\u0007\u0003\u0000\u07b3\u07b4\u0003\u001d\u000e\u0000\u07b4\u07b5"+ - "\u00037\u001b\u0000\u07b5\u07b6\u00039\u001c\u0000\u07b6\u07b7\u0003\u000f"+ - "\u0007\u0000\u07b7j\u0001\u0000\u0000\u0000\u07b8\u07b9\u0003\u0007\u0003"+ - "\u0000\u07b9\u07ba\u0003!\u0010\u0000\u07ba\u07bb\u0003\r\u0006\u0000"+ - "\u07bbl\u0001\u0000\u0000\u0000\u07bc\u07bd\u0003\u0007\u0003\u0000\u07bd"+ - "\u07be\u0003!\u0010\u0000\u07be\u07bf\u00037\u001b\u0000\u07bfn\u0001"+ - "\u0000\u0000\u0000\u07c0\u07c1\u0003\u0007\u0003\u0000\u07c1\u07c2\u0003"+ - ")\u0014\u0000\u07c2\u07c3\u0003\u000f\u0007\u0000\u07c3p\u0001\u0000\u0000"+ - "\u0000\u07c4\u07c5\u0003\u0007\u0003\u0000\u07c5\u07c6\u0003)\u0014\u0000"+ - "\u07c6\u07c7\u0003)\u0014\u0000\u07c7\u07c8\u0003\u0007\u0003\u0000\u07c8"+ - "\u07c9\u00037\u001b\u0000\u07c9r\u0001\u0000\u0000\u0000\u07ca\u07cb\u0003"+ - "\u0007\u0003\u0000\u07cb\u07cc\u0003+\u0015\u0000\u07cct\u0001\u0000\u0000"+ - "\u0000\u07cd\u07ce\u0003\u0007\u0003\u0000\u07ce\u07cf\u0003+\u0015\u0000"+ - "\u07cf\u07d0\u0003\u000b\u0005\u0000\u07d0v\u0001\u0000\u0000\u0000\u07d1"+ - "\u07d2\u0003\u0007\u0003\u0000\u07d2\u07d3\u0003+\u0015\u0000\u07d3\u07d4"+ - "\u0003\u000f\u0007\u0000\u07d4\u07d5\u0003!\u0010\u0000\u07d5\u07d6\u0003"+ - "+\u0015\u0000\u07d6\u07d7\u0003\u0017\u000b\u0000\u07d7\u07d8\u0003-\u0016"+ - "\u0000\u07d8\u07d9\u0003\u0017\u000b\u0000\u07d9\u07da\u00031\u0018\u0000"+ - "\u07da\u07db\u0003\u000f\u0007\u0000\u07dbx\u0001\u0000\u0000\u0000\u07dc"+ - "\u07dd\u0003\u0007\u0003\u0000\u07dd\u07de\u0003+\u0015\u0000\u07de\u07df"+ - "\u0003+\u0015\u0000\u07df\u07e0\u0003\u000f\u0007\u0000\u07e0\u07e1\u0003"+ - ")\u0014\u0000\u07e1\u07e2\u0003-\u0016\u0000\u07e2\u07e3\u0003\u0017\u000b"+ - "\u0000\u07e3\u07e4\u0003#\u0011\u0000\u07e4\u07e5\u0003!\u0010\u0000\u07e5"+ - "z\u0001\u0000\u0000\u0000\u07e6\u07e7\u0003\u0007\u0003\u0000\u07e7\u07e8"+ - "\u0003+\u0015\u0000\u07e8\u07e9\u0003+\u0015\u0000\u07e9\u07ea\u0003\u0017"+ - "\u000b\u0000\u07ea\u07eb\u0003\u0013\t\u0000\u07eb\u07ec\u0003!\u0010"+ - "\u0000\u07ec\u07ed\u0003\u001f\u000f\u0000\u07ed\u07ee\u0003\u000f\u0007"+ - "\u0000\u07ee\u07ef\u0003!\u0010\u0000\u07ef\u07f0\u0003-\u0016\u0000\u07f0"+ - "|\u0001\u0000\u0000\u0000\u07f1\u07f2\u0003\u0007\u0003\u0000\u07f2\u07f3"+ - "\u0003+\u0015\u0000\u07f3\u07f4\u00037\u001b\u0000\u07f4\u07f5\u0003\u001f"+ - "\u000f\u0000\u07f5\u07f6\u0003\u001f\u000f\u0000\u07f6\u07f7\u0003\u000f"+ - "\u0007\u0000\u07f7\u07f8\u0003-\u0016\u0000\u07f8\u07f9\u0003)\u0014\u0000"+ - "\u07f9\u07fa\u0003\u0017\u000b\u0000\u07fa\u07fb\u0003\u000b\u0005\u0000"+ - "\u07fb~\u0001\u0000\u0000\u0000\u07fc\u07fd\u0003\u0007\u0003\u0000\u07fd"+ - "\u07fe\u0003-\u0016\u0000\u07fe\u0080\u0001\u0000\u0000\u0000\u07ff\u0800"+ - "\u0003\u0007\u0003\u0000\u0800\u0801\u0003-\u0016\u0000\u0801\u0802\u0003"+ - "#\u0011\u0000\u0802\u0803\u0003\u001f\u000f\u0000\u0803\u0804\u0003\u0017"+ - "\u000b\u0000\u0804\u0805\u0003\u000b\u0005\u0000\u0805\u0082\u0001\u0000"+ - "\u0000\u0000\u0806\u0807\u0003\u0007\u0003\u0000\u0807\u0808\u0003-\u0016"+ - "\u0000\u0808\u0809\u0003-\u0016\u0000\u0809\u080a\u0003)\u0014\u0000\u080a"+ - "\u080b\u0003\u0017\u000b\u0000\u080b\u080c\u0003\t\u0004\u0000\u080c\u080d"+ - "\u0003/\u0017\u0000\u080d\u080e\u0003-\u0016\u0000\u080e\u080f\u0003\u000f"+ - "\u0007\u0000\u080f\u0084\u0001\u0000\u0000\u0000\u0810\u0811\u0003\u0007"+ - "\u0003\u0000\u0811\u0812\u0003-\u0016\u0000\u0812\u0813\u0003-\u0016\u0000"+ - "\u0813\u0814\u0003)\u0014\u0000\u0814\u0815\u0003\u0017\u000b\u0000\u0815"+ - "\u0816\u0003\t\u0004\u0000\u0816\u0817\u0003/\u0017\u0000\u0817\u0818"+ - "\u0003-\u0016\u0000\u0818\u0819\u0003\u000f\u0007\u0000\u0819\u081a\u0003"+ - "+\u0015\u0000\u081a\u0086\u0001\u0000\u0000\u0000\u081b\u081c\u0003\u0007"+ - "\u0003\u0000\u081c\u081d\u0003/\u0017\u0000\u081d\u081e\u0003-\u0016\u0000"+ - "\u081e\u081f\u0003\u0015\n\u0000\u081f\u0820\u0003#\u0011\u0000\u0820"+ - "\u0821\u0003)\u0014\u0000\u0821\u0822\u0003\u0017\u000b\u0000\u0822\u0823"+ - "\u00039\u001c\u0000\u0823\u0824\u0003\u0007\u0003\u0000\u0824\u0825\u0003"+ - "-\u0016\u0000\u0825\u0826\u0003\u0017\u000b\u0000\u0826\u0827\u0003#\u0011"+ - "\u0000\u0827\u0828\u0003!\u0010\u0000\u0828\u0088\u0001\u0000\u0000\u0000"+ - "\u0829\u082a\u0003\u0007\u0003\u0000\u082a\u082b\u00031\u0018\u0000\u082b"+ - "\u082c\u0003\u0013\t\u0000\u082c\u008a\u0001\u0000\u0000\u0000\u082d\u082e"+ - "\u0003\t\u0004\u0000\u082e\u082f\u0003\u0007\u0003\u0000\u082f\u0830\u0003"+ - "\u000b\u0005\u0000\u0830\u0831\u0003\u001b\r\u0000\u0831\u0832\u00033"+ - "\u0019\u0000\u0832\u0833\u0003\u0007\u0003\u0000\u0833\u0834\u0003)\u0014"+ - "\u0000\u0834\u0835\u0003\r\u0006\u0000\u0835\u008c\u0001\u0000\u0000\u0000"+ - "\u0836\u0837\u0003\t\u0004\u0000\u0837\u0838\u0003\u000f\u0007\u0000\u0838"+ - "\u0839\u0003\u0011\b\u0000\u0839\u083a\u0003#\u0011\u0000\u083a\u083b"+ - "\u0003)\u0014\u0000\u083b\u083c\u0003\u000f\u0007\u0000\u083c\u008e\u0001"+ - "\u0000\u0000\u0000\u083d\u083e\u0003\t\u0004\u0000\u083e\u083f\u0003\u000f"+ - "\u0007\u0000\u083f\u0840\u0003\u0013\t\u0000\u0840\u0841\u0003\u0017\u000b"+ - "\u0000\u0841\u0842\u0003!\u0010\u0000\u0842\u0090\u0001\u0000\u0000\u0000"+ - "\u0843\u0844\u0003\t\u0004\u0000\u0844\u0845\u0003\u000f\u0007\u0000\u0845"+ - "\u0846\u0003)\u0014\u0000\u0846\u0847\u0003!\u0010\u0000\u0847\u0848\u0003"+ - "#\u0011\u0000\u0848\u0849\u0003/\u0017\u0000\u0849\u084a\u0003\u001d\u000e"+ - "\u0000\u084a\u084b\u0003\u001d\u000e\u0000\u084b\u084c\u0003\u0017\u000b"+ - "\u0000\u084c\u0092\u0001\u0000\u0000\u0000\u084d\u084e\u0003\t\u0004\u0000"+ - "\u084e\u084f\u0003\u000f\u0007\u0000\u084f\u0850\u0003-\u0016\u0000\u0850"+ - "\u0851\u00033\u0019\u0000\u0851\u0852\u0003\u000f\u0007\u0000\u0852\u0853"+ - "\u0003\u000f\u0007\u0000\u0853\u0854\u0003!\u0010\u0000\u0854\u0094\u0001"+ - "\u0000\u0000\u0000\u0855\u0856\u0003\t\u0004\u0000\u0856\u0857\u0003\u0017"+ - "\u000b\u0000\u0857\u0858\u0003\u0013\t\u0000\u0858\u0859\u0003\u0017\u000b"+ - "\u0000\u0859\u085a\u0003!\u0010\u0000\u085a\u085b\u0003-\u0016\u0000\u085b"+ - "\u0096\u0001\u0000\u0000\u0000\u085c\u085d\u0003\t\u0004\u0000\u085d\u085e"+ - "\u0003\u0017\u000b\u0000\u085e\u085f\u0003!\u0010\u0000\u085f\u0860\u0003"+ - "\u0007\u0003\u0000\u0860\u0861\u0003)\u0014\u0000\u0861\u0862\u00037\u001b"+ - "\u0000\u0862\u0098\u0001\u0000\u0000\u0000\u0863\u0864\u0003\t\u0004\u0000"+ - "\u0864\u0865\u0003\u0017\u000b\u0000\u0865\u0866\u0003-\u0016\u0000\u0866"+ - "\u009a\u0001\u0000\u0000\u0000\u0867\u0868\u0003\t\u0004\u0000\u0868\u0869"+ - "\u0003\u0017\u000b\u0000\u0869\u086a\u0003-\u0016\u0000\u086a\u086b\u0005"+ - "_\u0000\u0000\u086b\u086c\u0003\u001d\u000e\u0000\u086c\u086d\u0003\u000f"+ - "\u0007\u0000\u086d\u086e\u0003!\u0010\u0000\u086e\u086f\u0003\u0013\t"+ - "\u0000\u086f\u0870\u0003-\u0016\u0000\u0870\u0871\u0003\u0015\n\u0000"+ - "\u0871\u009c\u0001\u0000\u0000\u0000\u0872\u0873\u0003\t\u0004\u0000\u0873"+ - "\u0874\u0003\u0017\u000b\u0000\u0874\u0875\u0003-\u0016\u0000\u0875\u0876"+ - "\u00031\u0018\u0000\u0876\u0877\u0003\u0007\u0003\u0000\u0877\u0878\u0003"+ - ")\u0014\u0000\u0878\u009e\u0001\u0000\u0000\u0000\u0879\u087a\u0003\t"+ - "\u0004\u0000\u087a\u087b\u0003\u001d\u000e\u0000\u087b\u087c\u0003#\u0011"+ - "\u0000\u087c\u087d\u0003\t\u0004\u0000\u087d\u00a0\u0001\u0000\u0000\u0000"+ - "\u087e\u087f\u0003\t\u0004\u0000\u087f\u0880\u0003#\u0011\u0000\u0880"+ - "\u0881\u0003#\u0011\u0000\u0881\u0882\u0003\u001d\u000e\u0000\u0882\u0883"+ - "\u0003\u000f\u0007\u0000\u0883\u0884\u0003\u0007\u0003\u0000\u0884\u0885"+ - "\u0003!\u0010\u0000\u0885\u00a2\u0001\u0000\u0000\u0000\u0886\u0887\u0003"+ - "\t\u0004\u0000\u0887\u0888\u0003#\u0011\u0000\u0888\u0889\u0003-\u0016"+ - "\u0000\u0889\u088a\u0003\u0015\n\u0000\u088a\u00a4\u0001\u0000\u0000\u0000"+ - "\u088b\u088c\u0003\t\u0004\u0000\u088c\u088d\u0003)\u0014\u0000\u088d"+ - "\u088e\u0003\u000f\u0007\u0000\u088e\u088f\u0003\u0007\u0003\u0000\u088f"+ - "\u0890\u0003\r\u0006\u0000\u0890\u0891\u0003-\u0016\u0000\u0891\u0892"+ - "\u0003\u0015\n\u0000\u0892\u00a6\u0001\u0000\u0000\u0000\u0893\u0894\u0003"+ - "\t\u0004\u0000\u0894\u0895\u0003/\u0017\u0000\u0895\u0896\u0003\u0011"+ - "\b\u0000\u0896\u0897\u0003\u0011\b\u0000\u0897\u0898\u0003\u000f\u0007"+ - "\u0000\u0898\u0899\u0003)\u0014\u0000\u0899\u089a\u0003+\u0015\u0000\u089a"+ - "\u00a8\u0001\u0000\u0000\u0000\u089b\u089c\u0003\t\u0004\u0000\u089c\u089d"+ - "\u00037\u001b\u0000\u089d\u00aa\u0001\u0000\u0000\u0000\u089e\u089f\u0003"+ - "\u000b\u0005\u0000\u089f\u00ac\u0001\u0000\u0000\u0000\u08a0\u08a1\u0003"+ - "\u000b\u0005\u0000\u08a1\u08a2\u0003\u0007\u0003\u0000\u08a2\u08a3\u0003"+ - "\u000b\u0005\u0000\u08a3\u08a4\u0003\u0015\n\u0000\u08a4\u08a5\u0003\u000f"+ - "\u0007\u0000\u08a5\u00ae\u0001\u0000\u0000\u0000\u08a6\u08a7\u0003\u000b"+ - "\u0005\u0000\u08a7\u08a8\u0003\u0007\u0003\u0000\u08a8\u08a9\u0003\u001d"+ - "\u000e\u0000\u08a9\u08aa\u0003\u001d\u000e\u0000\u08aa\u00b0\u0001\u0000"+ - "\u0000\u0000\u08ab\u08ac\u0003\u000b\u0005\u0000\u08ac\u08ad\u0003\u0007"+ - "\u0003\u0000\u08ad\u08ae\u0003\u001d\u000e\u0000\u08ae\u08af\u0003\u001d"+ - "\u000e\u0000\u08af\u08b0\u0003\u000f\u0007\u0000\u08b0\u08b1\u0003\r\u0006"+ - "\u0000\u08b1\u00b2\u0001\u0000\u0000\u0000\u08b2\u08b3\u0003\u000b\u0005"+ - "\u0000\u08b3\u08b4\u0003\u0007\u0003\u0000\u08b4\u08b5\u0003)\u0014\u0000"+ - "\u08b5\u08b6\u0003\r\u0006\u0000\u08b6\u08b7\u0003\u0017\u000b\u0000\u08b7"+ - "\u08b8\u0003!\u0010\u0000\u08b8\u08b9\u0003\u0007\u0003\u0000\u08b9\u08ba"+ - "\u0003\u001d\u000e\u0000\u08ba\u08bb\u0003\u0017\u000b\u0000\u08bb\u08bc"+ - "\u0003-\u0016\u0000\u08bc\u08bd\u00037\u001b\u0000\u08bd\u00b4\u0001\u0000"+ - "\u0000\u0000\u08be\u08bf\u0003\u000b\u0005\u0000\u08bf\u08c0\u0003\u0007"+ - "\u0003\u0000\u08c0\u08c1\u0003+\u0015\u0000\u08c1\u08c2\u0003\u000b\u0005"+ - "\u0000\u08c2\u08c3\u0003\u0007\u0003\u0000\u08c3\u08c4\u0003\r\u0006\u0000"+ - "\u08c4\u08c5\u0003\u000f\u0007\u0000\u08c5\u00b6\u0001\u0000\u0000\u0000"+ - "\u08c6\u08c7\u0003\u000b\u0005\u0000\u08c7\u08c8\u0003\u0007\u0003\u0000"+ - "\u08c8\u08c9\u0003+\u0015\u0000\u08c9\u08ca\u0003\u000b\u0005\u0000\u08ca"+ - "\u08cb\u0003\u0007\u0003\u0000\u08cb\u08cc\u0003\r\u0006\u0000\u08cc\u08cd"+ - "\u0003\u000f\u0007\u0000\u08cd\u08ce\u0003\r\u0006\u0000\u08ce\u00b8\u0001"+ - "\u0000\u0000\u0000\u08cf\u08d0\u0003\u000b\u0005\u0000\u08d0\u08d1\u0003"+ - "\u0007\u0003\u0000\u08d1\u08d2\u0003+\u0015\u0000\u08d2\u08d3\u0003\u000f"+ - "\u0007\u0000\u08d3\u00ba\u0001\u0000\u0000\u0000\u08d4\u08d5\u0003\u000b"+ - "\u0005\u0000\u08d5\u08d6\u0003\u0007\u0003\u0000\u08d6\u08d7\u0003+\u0015"+ - "\u0000\u08d7\u08d8\u0003-\u0016\u0000\u08d8\u00bc\u0001\u0000\u0000\u0000"+ - "\u08d9\u08da\u0003\u000b\u0005\u0000\u08da\u08db\u0003\u0007\u0003\u0000"+ - "\u08db\u08dc\u0003-\u0016\u0000\u08dc\u08dd\u0003\u0007\u0003\u0000\u08dd"+ - "\u08de\u0003\u001d\u000e\u0000\u08de\u08df\u0003#\u0011\u0000\u08df\u08e0"+ - "\u0003\u0013\t\u0000\u08e0\u00be\u0001\u0000\u0000\u0000\u08e1\u08e2\u0003"+ - "\u000b\u0005\u0000\u08e2\u08e3\u0003\u0007\u0003\u0000\u08e3\u08e4\u0003"+ - "-\u0016\u0000\u08e4\u08e5\u0003\u0007\u0003\u0000\u08e5\u08e6\u0003\u001d"+ - "\u000e\u0000\u08e6\u08e7\u0003#\u0011\u0000\u08e7\u08e8\u0003\u0013\t"+ - "\u0000\u08e8\u08e9\u0005_\u0000\u0000\u08e9\u08ea\u0003!\u0010\u0000\u08ea"+ - "\u08eb\u0003\u0007\u0003\u0000\u08eb\u08ec\u0003\u001f\u000f\u0000\u08ec"+ - "\u08ed\u0003\u000f\u0007\u0000\u08ed\u00c0\u0001\u0000\u0000\u0000\u08ee"+ - "\u08ef\u0003\u000b\u0005\u0000\u08ef\u08f0\u0003\u000f\u0007\u0000\u08f0"+ - "\u08f1\u0003\u0017\u000b\u0000\u08f1\u08f2\u0003\u001d\u000e\u0000\u08f2"+ - "\u00c2\u0001\u0000\u0000\u0000\u08f3\u08f4\u0003\u000b\u0005\u0000\u08f4"+ - "\u08f5\u0003\u000f\u0007\u0000\u08f5\u08f6\u0003\u0017\u000b\u0000\u08f6"+ - "\u08f7\u0003\u001d\u000e\u0000\u08f7\u08f8\u0003\u0017\u000b\u0000\u08f8"+ - "\u08f9\u0003!\u0010\u0000\u08f9\u08fa\u0003\u0013\t\u0000\u08fa\u00c4"+ - "\u0001\u0000\u0000\u0000\u08fb\u08fc\u0003\u000b\u0005\u0000\u08fc\u08fd"+ - "\u0003\u0015\n\u0000\u08fd\u08fe\u0003\u0007\u0003\u0000\u08fe\u08ff\u0003"+ - "\u0017\u000b\u0000\u08ff\u0900\u0003!\u0010\u0000\u0900\u00c6\u0001\u0000"+ - "\u0000\u0000\u0901\u0902\u0003\u000b\u0005\u0000\u0902\u0903\u0003\u0015"+ - "\n\u0000\u0903\u0904\u0003\u0007\u0003\u0000\u0904\u0905\u0003)\u0014"+ - "\u0000\u0905\u00c8\u0001\u0000\u0000\u0000\u0906\u0907\u0003\u000b\u0005"+ - "\u0000\u0907\u0908\u0003\u0015\n\u0000\u0908\u0909\u0003\u0007\u0003\u0000"+ - "\u0909\u090a\u0003)\u0014\u0000\u090a\u090b\u0005_\u0000\u0000\u090b\u090c"+ - "\u0003\u001d\u000e\u0000\u090c\u090d\u0003\u000f\u0007\u0000\u090d\u090e"+ - "\u0003!\u0010\u0000\u090e\u090f\u0003\u0013\t\u0000\u090f\u0910\u0003"+ - "-\u0016\u0000\u0910\u0911\u0003\u0015\n\u0000\u0911\u00ca\u0001\u0000"+ - "\u0000\u0000\u0912\u0913\u0003\u000b\u0005\u0000\u0913\u0914\u0003\u0015"+ - "\n\u0000\u0914\u0915\u0003\u0007\u0003\u0000\u0915\u0916\u0003)\u0014"+ - "\u0000\u0916\u0917\u0003\u0007\u0003\u0000\u0917\u0918\u0003\u000b\u0005"+ - "\u0000\u0918\u0919\u0003-\u0016\u0000\u0919\u091a\u0003\u000f\u0007\u0000"+ - "\u091a\u091b\u0003)\u0014\u0000\u091b\u00cc\u0001\u0000\u0000\u0000\u091c"+ - "\u091d\u0003\u000b\u0005\u0000\u091d\u091e\u0003\u0015\n\u0000\u091e\u091f"+ - "\u0003\u0007\u0003\u0000\u091f\u0920\u0003)\u0014\u0000\u0920\u0921\u0003"+ - "\u0007\u0003\u0000\u0921\u0922\u0003\u000b\u0005\u0000\u0922\u0923\u0003"+ - "-\u0016\u0000\u0923\u0924\u0003\u000f\u0007\u0000\u0924\u0925\u0003)\u0014"+ - "\u0000\u0925\u0926\u0005_\u0000\u0000\u0926\u0927\u0003\u001d\u000e\u0000"+ - "\u0927\u0928\u0003\u000f\u0007\u0000\u0928\u0929\u0003!\u0010\u0000\u0929"+ - "\u092a\u0003\u0013\t\u0000\u092a\u092b\u0003-\u0016\u0000\u092b\u092c"+ - "\u0003\u0015\n\u0000\u092c\u00ce\u0001\u0000\u0000\u0000\u092d\u092e\u0003"+ - "\u000b\u0005\u0000\u092e\u092f\u0003\u0015\n\u0000\u092f\u0930\u0003\u0007"+ - "\u0003\u0000\u0930\u0931\u0003)\u0014\u0000\u0931\u0932\u0003\u0007\u0003"+ - "\u0000\u0932\u0933\u0003\u000b\u0005\u0000\u0933\u0934\u0003-\u0016\u0000"+ - "\u0934\u0935\u0003\u000f\u0007\u0000\u0935\u0936\u0003)\u0014\u0000\u0936"+ - "\u0937\u0005_\u0000\u0000\u0937\u0938\u0003+\u0015\u0000\u0938\u0939\u0003"+ - "\u000f\u0007\u0000\u0939\u093a\u0003-\u0016\u0000\u093a\u093b\u0005_\u0000"+ - "\u0000\u093b\u093c\u0003\u000b\u0005\u0000\u093c\u093d\u0003\u0007\u0003"+ - "\u0000\u093d\u093e\u0003-\u0016\u0000\u093e\u093f\u0003\u0007\u0003\u0000"+ - "\u093f\u0940\u0003\u001d\u000e\u0000\u0940\u0941\u0003#\u0011\u0000\u0941"+ - "\u0942\u0003\u0013\t\u0000\u0942\u00d0\u0001\u0000\u0000\u0000\u0943\u0944"+ - "\u0003\u000b\u0005\u0000\u0944\u0945\u0003\u0015\n\u0000\u0945\u0946\u0003"+ - "\u0007\u0003\u0000\u0946\u0947\u0003)\u0014\u0000\u0947\u0948\u0003\u0007"+ - "\u0003\u0000\u0948\u0949\u0003\u000b\u0005\u0000\u0949\u094a\u0003-\u0016"+ - "\u0000\u094a\u094b\u0003\u000f\u0007\u0000\u094b\u094c\u0003)\u0014\u0000"+ - "\u094c\u094d\u0005_\u0000\u0000\u094d\u094e\u0003+\u0015\u0000\u094e\u094f"+ - "\u0003\u000f\u0007\u0000\u094f\u0950\u0003-\u0016\u0000\u0950\u0951\u0005"+ - "_\u0000\u0000\u0951\u0952\u0003!\u0010\u0000\u0952\u0953\u0003\u0007\u0003"+ - "\u0000\u0953\u0954\u0003\u001f\u000f\u0000\u0954\u0955\u0003\u000f\u0007"+ - "\u0000\u0955\u00d2\u0001\u0000\u0000\u0000\u0956\u0957\u0003\u000b\u0005"+ - "\u0000\u0957\u0958\u0003\u0015\n\u0000\u0958\u0959\u0003\u0007\u0003\u0000"+ - "\u0959\u095a\u0003)\u0014\u0000\u095a\u095b\u0003\u0007\u0003\u0000\u095b"+ - "\u095c\u0003\u000b\u0005\u0000\u095c\u095d\u0003-\u0016\u0000\u095d\u095e"+ - "\u0003\u000f\u0007\u0000\u095e\u095f\u0003)\u0014\u0000\u095f\u0960\u0005"+ - "_\u0000\u0000\u0960\u0961\u0003+\u0015\u0000\u0961\u0962\u0003\u000f\u0007"+ - "\u0000\u0962\u0963\u0003-\u0016\u0000\u0963\u0964\u0005_\u0000\u0000\u0964"+ - "\u0965\u0003+\u0015\u0000\u0965\u0966\u0003\u000b\u0005\u0000\u0966\u0967"+ - "\u0003\u0015\n\u0000\u0967\u0968\u0003\u000f\u0007\u0000\u0968\u0969\u0003"+ - "\u001f\u000f\u0000\u0969\u096a\u0003\u0007\u0003\u0000\u096a\u00d4\u0001"+ - "\u0000\u0000\u0000\u096b\u096c\u0003\u000b\u0005\u0000\u096c\u096d\u0003"+ - "\u0015\n\u0000\u096d\u096e\u0003\u0007\u0003\u0000\u096e\u096f\u0003)"+ - "\u0014\u0000\u096f\u0970\u0003\u0007\u0003\u0000\u0970\u0971\u0003\u000b"+ - "\u0005\u0000\u0971\u0972\u0003-\u0016\u0000\u0972\u0973\u0003\u000f\u0007"+ - "\u0000\u0973\u0974\u0003)\u0014\u0000\u0974\u0975\u0003\u0017\u000b\u0000"+ - "\u0975\u0976\u0003+\u0015\u0000\u0976\u0977\u0003-\u0016\u0000\u0977\u0978"+ - "\u0003\u0017\u000b\u0000\u0978\u0979\u0003\u000b\u0005\u0000\u0979\u097a"+ - "\u0003+\u0015\u0000\u097a\u00d6\u0001\u0000\u0000\u0000\u097b\u097c\u0003"+ - "\u000b\u0005\u0000\u097c\u097d\u0003\u0015\n\u0000\u097d\u097e\u0003\u0007"+ - "\u0003\u0000\u097e\u097f\u0003)\u0014\u0000\u097f\u0980\u0003\u0007\u0003"+ - "\u0000\u0980\u0981\u0003\u000b\u0005\u0000\u0981\u0982\u0003-\u0016\u0000"+ - "\u0982\u0983\u0003\u000f\u0007\u0000\u0983\u0984\u0003)\u0014\u0000\u0984"+ - "\u0985\u0003+\u0015\u0000\u0985\u00d8\u0001\u0000\u0000\u0000\u0986\u0987"+ - "\u0003\u000b\u0005\u0000\u0987\u0988\u0003\u0015\n\u0000\u0988\u0989\u0003"+ - "\u000f\u0007\u0000\u0989\u098a\u0003\u000b\u0005\u0000\u098a\u098b\u0003"+ - "\u001b\r\u0000\u098b\u00da\u0001\u0000\u0000\u0000\u098c\u098d\u0003\u000b"+ - "\u0005\u0000\u098d\u098e\u0003\u0015\n\u0000\u098e\u098f\u0003\u000f\u0007"+ - "\u0000\u098f\u0990\u0003\u000b\u0005\u0000\u0990\u0991\u0003\u001b\r\u0000"+ - "\u0991\u0992\u0003\u000f\u0007\u0000\u0992\u0993\u0003\r\u0006\u0000\u0993"+ - "\u00dc\u0001\u0000\u0000\u0000\u0994\u0995\u0003\u000b\u0005\u0000\u0995"+ - "\u0996\u0003\u0015\n\u0000\u0996\u0997\u0003\u000f\u0007\u0000\u0997\u0998"+ - "\u0003\u000b\u0005\u0000\u0998\u0999\u0003\u001b\r\u0000\u0999\u099a\u0003"+ - "%\u0012\u0000\u099a\u099b\u0003#\u0011\u0000\u099b\u099c\u0003\u0017\u000b"+ - "\u0000\u099c\u099d\u0003!\u0010\u0000\u099d\u099e\u0003-\u0016\u0000\u099e"+ - "\u00de\u0001\u0000\u0000\u0000\u099f\u09a0\u0003\u000b\u0005\u0000\u09a0"+ - "\u09a1\u0003\u001d\u000e\u0000\u09a1\u09a2\u0003\u0007\u0003\u0000\u09a2"+ - "\u09a3\u0003+\u0015\u0000\u09a3\u09a4\u0003+\u0015\u0000\u09a4\u00e0\u0001"+ - "\u0000\u0000\u0000\u09a5\u09a6\u0003\u000b\u0005\u0000\u09a6\u09a7\u0003"+ - "\u001d\u000e\u0000\u09a7\u09a8\u0003\u0007\u0003\u0000\u09a8\u09a9\u0003"+ - "+\u0015\u0000\u09a9\u09aa\u0003+\u0015\u0000\u09aa\u09ab\u0005_\u0000"+ - "\u0000\u09ab\u09ac\u0003#\u0011\u0000\u09ac\u09ad\u0003)\u0014\u0000\u09ad"+ - "\u09ae\u0003\u0017\u000b\u0000\u09ae\u09af\u0003\u0013\t\u0000\u09af\u09b0"+ - "\u0003\u0017\u000b\u0000\u09b0\u09b1\u0003!\u0010\u0000\u09b1\u00e2\u0001"+ - "\u0000\u0000\u0000\u09b2\u09b3\u0003\u000b\u0005\u0000\u09b3\u09b4\u0003"+ - "\u001d\u000e\u0000\u09b4\u09b5\u0003#\u0011\u0000\u09b5\u09b6\u0003\t"+ - "\u0004\u0000\u09b6\u00e4\u0001\u0000\u0000\u0000\u09b7\u09b8\u0003\u000b"+ - "\u0005\u0000\u09b8\u09b9\u0003\u001d\u000e\u0000\u09b9\u09ba\u0003#\u0011"+ - "\u0000\u09ba\u09bb\u0003+\u0015\u0000\u09bb\u09bc\u0003\u000f\u0007\u0000"+ - "\u09bc\u00e6\u0001\u0000\u0000\u0000\u09bd\u09be\u0003\u000b\u0005\u0000"+ - "\u09be\u09bf\u0003\u001d\u000e\u0000\u09bf\u09c0\u0003/\u0017\u0000\u09c0"+ - "\u09c1\u0003+\u0015\u0000\u09c1\u09c2\u0003-\u0016\u0000\u09c2\u09c3\u0003"+ - "\u000f\u0007\u0000\u09c3\u09c4\u0003)\u0014\u0000\u09c4\u00e8\u0001\u0000"+ - "\u0000\u0000\u09c5\u09c6\u0003\u000b\u0005\u0000\u09c6\u09c7\u0003#\u0011"+ - "\u0000\u09c7\u09c8\u0003\u0007\u0003\u0000\u09c8\u09c9\u0003\u001d\u000e"+ - "\u0000\u09c9\u09ca\u0003\u000f\u0007\u0000\u09ca\u09cb\u0003+\u0015\u0000"+ - "\u09cb\u09cc\u0003\u000b\u0005\u0000\u09cc\u09cd\u0003\u000f\u0007\u0000"+ - "\u09cd\u00ea\u0001\u0000\u0000\u0000\u09ce\u09cf\u0003\u000b\u0005\u0000"+ - "\u09cf\u09d0\u0003#\u0011\u0000\u09d0\u09d1\u0003\t\u0004\u0000\u09d1"+ - "\u09d2\u0003#\u0011\u0000\u09d2\u09d3\u0003\u001d\u000e\u0000\u09d3\u00ec"+ - "\u0001\u0000\u0000\u0000\u09d4\u09d5\u0003\u000b\u0005\u0000\u09d5\u09d6"+ - "\u0003#\u0011\u0000\u09d6\u09d7\u0003\u001d\u000e\u0000\u09d7\u09d8\u0003"+ - "\u001d\u000e\u0000\u09d8\u09d9\u0003\u0007\u0003\u0000\u09d9\u09da\u0003"+ - "-\u0016\u0000\u09da\u09db\u0003\u000f\u0007\u0000\u09db\u00ee\u0001\u0000"+ - "\u0000\u0000\u09dc\u09dd\u0003\u000b\u0005\u0000\u09dd\u09de\u0003#\u0011"+ - "\u0000\u09de\u09df\u0003\u001d\u000e\u0000\u09df\u09e0\u0003\u001d\u000e"+ - "\u0000\u09e0\u09e1\u0003\u0007\u0003\u0000\u09e1\u09e2\u0003-\u0016\u0000"+ - "\u09e2\u09e3\u0003\u0017\u000b\u0000\u09e3\u09e4\u0003#\u0011\u0000\u09e4"+ - "\u09e5\u0003!\u0010\u0000\u09e5\u00f0\u0001\u0000\u0000\u0000\u09e6\u09e7"+ - "\u0003\u000b\u0005\u0000\u09e7\u09e8\u0003#\u0011\u0000\u09e8\u09e9\u0003"+ - "\u001d\u000e\u0000\u09e9\u09ea\u0003\u001d\u000e\u0000\u09ea\u09eb\u0003"+ - "\u0007\u0003\u0000\u09eb\u09ec\u0003-\u0016\u0000\u09ec\u09ed\u0003\u0017"+ - "\u000b\u0000\u09ed\u09ee\u0003#\u0011\u0000\u09ee\u09ef\u0003!\u0010\u0000"+ - "\u09ef\u09f0\u0005_\u0000\u0000\u09f0\u09f1\u0003\u000b\u0005\u0000\u09f1"+ - "\u09f2\u0003\u0007\u0003\u0000\u09f2\u09f3\u0003-\u0016\u0000\u09f3\u09f4"+ - "\u0003\u0007\u0003\u0000\u09f4\u09f5\u0003\u001d\u000e\u0000\u09f5\u09f6"+ - "\u0003#\u0011\u0000\u09f6\u09f7\u0003\u0013\t\u0000\u09f7\u00f2\u0001"+ - "\u0000\u0000\u0000\u09f8\u09f9\u0003\u000b\u0005\u0000\u09f9\u09fa\u0003"+ - "#\u0011\u0000\u09fa\u09fb\u0003\u001d\u000e\u0000\u09fb\u09fc\u0003\u001d"+ - "\u000e\u0000\u09fc\u09fd\u0003\u0007\u0003\u0000\u09fd\u09fe\u0003-\u0016"+ - "\u0000\u09fe\u09ff\u0003\u0017\u000b\u0000\u09ff\u0a00\u0003#\u0011\u0000"+ - "\u0a00\u0a01\u0003!\u0010\u0000\u0a01\u0a02\u0005_\u0000\u0000\u0a02\u0a03"+ - "\u0003!\u0010\u0000\u0a03\u0a04\u0003\u0007\u0003\u0000\u0a04\u0a05\u0003"+ - "\u001f\u000f\u0000\u0a05\u0a06\u0003\u000f\u0007\u0000\u0a06\u00f4\u0001"+ - "\u0000\u0000\u0000\u0a07\u0a08\u0003\u000b\u0005\u0000\u0a08\u0a09\u0003"+ - "#\u0011\u0000\u0a09\u0a0a\u0003\u001d\u000e\u0000\u0a0a\u0a0b\u0003\u001d"+ - "\u000e\u0000\u0a0b\u0a0c\u0003\u0007\u0003\u0000\u0a0c\u0a0d\u0003-\u0016"+ - "\u0000\u0a0d\u0a0e\u0003\u0017\u000b\u0000\u0a0e\u0a0f\u0003#\u0011\u0000"+ - "\u0a0f\u0a10\u0003!\u0010\u0000\u0a10\u0a11\u0005_\u0000\u0000\u0a11\u0a12"+ - "\u0003+\u0015\u0000\u0a12\u0a13\u0003\u000b\u0005\u0000\u0a13\u0a14\u0003"+ - "\u0015\n\u0000\u0a14\u0a15\u0003\u000f\u0007\u0000\u0a15\u0a16\u0003\u001f"+ - "\u000f\u0000\u0a16\u0a17\u0003\u0007\u0003\u0000\u0a17\u00f6\u0001\u0000"+ - "\u0000\u0000\u0a18\u0a19\u0003\u000b\u0005\u0000\u0a19\u0a1a\u0003#\u0011"+ - "\u0000\u0a1a\u0a1b\u0003\u001d\u000e\u0000\u0a1b\u0a1c\u0003\u001d\u000e"+ - "\u0000\u0a1c\u0a1d\u0003\u000f\u0007\u0000\u0a1d\u0a1e\u0003\u000b\u0005"+ - "\u0000\u0a1e\u0a1f\u0003-\u0016\u0000\u0a1f\u00f8\u0001\u0000\u0000\u0000"+ - "\u0a20\u0a21\u0003\u000b\u0005\u0000\u0a21\u0a22\u0003#\u0011\u0000\u0a22"+ - "\u0a23\u0003\u001d\u000e\u0000\u0a23\u0a24\u0003/\u0017\u0000\u0a24\u0a25"+ - "\u0003\u001f\u000f\u0000\u0a25\u0a26\u0003!\u0010\u0000\u0a26\u00fa\u0001"+ - "\u0000\u0000\u0000\u0a27\u0a28\u0003\u000b\u0005\u0000\u0a28\u0a29\u0003"+ - "#\u0011\u0000\u0a29\u0a2a\u0003\u001d\u000e\u0000\u0a2a\u0a2b\u0003/\u0017"+ - "\u0000\u0a2b\u0a2c\u0003\u001f\u000f\u0000\u0a2c\u0a2d\u0003!\u0010\u0000"+ - "\u0a2d\u0a2e\u0005_\u0000\u0000\u0a2e\u0a2f\u0003!\u0010\u0000\u0a2f\u0a30"+ - "\u0003\u0007\u0003\u0000\u0a30\u0a31\u0003\u001f\u000f\u0000\u0a31\u0a32"+ - "\u0003\u000f\u0007\u0000\u0a32\u00fc\u0001\u0000\u0000\u0000\u0a33\u0a34"+ - "\u0003\u000b\u0005\u0000\u0a34\u0a35\u0003#\u0011\u0000\u0a35\u0a36\u0003"+ - "\u001f\u000f\u0000\u0a36\u0a37\u0003\u001f\u000f\u0000\u0a37\u0a38\u0003"+ - "\u0007\u0003\u0000\u0a38\u0a39\u0003!\u0010\u0000\u0a39\u0a3a\u0003\r"+ - "\u0006\u0000\u0a3a\u0a3b\u0005_\u0000\u0000\u0a3b\u0a3c\u0003\u0011\b"+ - "\u0000\u0a3c\u0a3d\u0003/\u0017\u0000\u0a3d\u0a3e\u0003!\u0010\u0000\u0a3e"+ - "\u0a3f\u0003\u000b\u0005\u0000\u0a3f\u0a40\u0003-\u0016\u0000\u0a40\u0a41"+ - "\u0003\u0017\u000b\u0000\u0a41\u0a42\u0003#\u0011\u0000\u0a42\u0a43\u0003"+ - "!\u0010\u0000\u0a43\u00fe\u0001\u0000\u0000\u0000\u0a44\u0a45\u0003\u000b"+ - "\u0005\u0000\u0a45\u0a46\u0003#\u0011\u0000\u0a46\u0a47\u0003\u001f\u000f"+ - "\u0000\u0a47\u0a48\u0003\u001f\u000f\u0000\u0a48\u0a49\u0003\u0007\u0003"+ - "\u0000\u0a49\u0a4a\u0003!\u0010\u0000\u0a4a\u0a4b\u0003\r\u0006\u0000"+ - "\u0a4b\u0a4c\u0005_\u0000\u0000\u0a4c\u0a4d\u0003\u0011\b\u0000\u0a4d"+ - "\u0a4e\u0003/\u0017\u0000\u0a4e\u0a4f\u0003!\u0010\u0000\u0a4f\u0a50\u0003"+ - "\u000b\u0005\u0000\u0a50\u0a51\u0003-\u0016\u0000\u0a51\u0a52\u0003\u0017"+ - "\u000b\u0000\u0a52\u0a53\u0003#\u0011\u0000\u0a53\u0a54\u0003!\u0010\u0000"+ - "\u0a54\u0a55\u0005_\u0000\u0000\u0a55\u0a56\u0003\u000b\u0005\u0000\u0a56"+ - "\u0a57\u0003#\u0011\u0000\u0a57\u0a58\u0003\r\u0006\u0000\u0a58\u0a59"+ - "\u0003\u000f\u0007\u0000\u0a59\u0100\u0001\u0000\u0000\u0000\u0a5a\u0a5b"+ - "\u0003\u000b\u0005\u0000\u0a5b\u0a5c\u0003#\u0011\u0000\u0a5c\u0a5d\u0003"+ - "\u001f\u000f\u0000\u0a5d\u0a5e\u0003\u001f\u000f\u0000\u0a5e\u0a5f\u0003"+ - "\u000f\u0007\u0000\u0a5f\u0a60\u0003!\u0010\u0000\u0a60\u0a61\u0003-\u0016"+ - "\u0000\u0a61\u0102\u0001\u0000\u0000\u0000\u0a62\u0a63\u0003\u000b\u0005"+ - "\u0000\u0a63\u0a64\u0003#\u0011\u0000\u0a64\u0a65\u0003\u001f\u000f\u0000"+ - "\u0a65\u0a66\u0003\u001f\u000f\u0000\u0a66\u0a67\u0003\u0017\u000b\u0000"+ - "\u0a67\u0a68\u0003-\u0016\u0000\u0a68\u0104\u0001\u0000\u0000\u0000\u0a69"+ - "\u0a6a\u0003\u000b\u0005\u0000\u0a6a\u0a6b\u0003#\u0011\u0000\u0a6b\u0a6c"+ - "\u0003\u001f\u000f\u0000\u0a6c\u0a6d\u0003\u001f\u000f\u0000\u0a6d\u0a6e"+ - "\u0003\u0017\u000b\u0000\u0a6e\u0a6f\u0003-\u0016\u0000\u0a6f\u0a70\u0003"+ - "-\u0016\u0000\u0a70\u0a71\u0003\u000f\u0007\u0000\u0a71\u0a72\u0003\r"+ - "\u0006\u0000\u0a72\u0106\u0001\u0000\u0000\u0000\u0a73\u0a74\u0003\u000b"+ - "\u0005\u0000\u0a74\u0a75\u0003#\u0011\u0000\u0a75\u0a76\u0003\u001f\u000f"+ - "\u0000\u0a76\u0a77\u0003%\u0012\u0000\u0a77\u0a78\u0003\u001d\u000e\u0000"+ - "\u0a78\u0a79\u0003\u000f\u0007\u0000\u0a79\u0a7a\u0003-\u0016\u0000\u0a7a"+ - "\u0a7b\u0003\u0017\u000b\u0000\u0a7b\u0a7c\u0003#\u0011\u0000\u0a7c\u0a7d"+ - "\u0003!\u0010\u0000\u0a7d\u0108\u0001\u0000\u0000\u0000\u0a7e\u0a7f\u0003"+ - "\u000b\u0005\u0000\u0a7f\u0a80\u0003#\u0011\u0000\u0a80\u0a81\u0003!\u0010"+ - "\u0000\u0a81\u0a82\u0003\r\u0006\u0000\u0a82\u0a83\u0003\u0017\u000b\u0000"+ - "\u0a83\u0a84\u0003-\u0016\u0000\u0a84\u0a85\u0003\u0017\u000b\u0000\u0a85"+ - "\u0a86\u0003#\u0011\u0000\u0a86\u0a87\u0003!\u0010\u0000\u0a87\u010a\u0001"+ - "\u0000\u0000\u0000\u0a88\u0a89\u0003\u000b\u0005\u0000\u0a89\u0a8a\u0003"+ - "#\u0011\u0000\u0a8a\u0a8b\u0003!\u0010\u0000\u0a8b\u0a8c\u0003\r\u0006"+ - "\u0000\u0a8c\u0a8d\u0003\u0017\u000b\u0000\u0a8d\u0a8e\u0003-\u0016\u0000"+ - "\u0a8e\u0a8f\u0003\u0017\u000b\u0000\u0a8f\u0a90\u0003#\u0011\u0000\u0a90"+ - "\u0a91\u0003!\u0010\u0000\u0a91\u0a92\u0005_\u0000\u0000\u0a92\u0a93\u0003"+ - "!\u0010\u0000\u0a93\u0a94\u0003/\u0017\u0000\u0a94\u0a95\u0003\u001f\u000f"+ - "\u0000\u0a95\u0a96\u0003\t\u0004\u0000\u0a96\u0a97\u0003\u000f\u0007\u0000"+ - "\u0a97\u0a98\u0003)\u0014\u0000\u0a98\u010c\u0001\u0000\u0000\u0000\u0a99"+ - "\u0a9a\u0003\u000b\u0005\u0000\u0a9a\u0a9b\u0003#\u0011\u0000\u0a9b\u0a9c"+ - "\u0003!\u0010\u0000\u0a9c\u0a9d\u0003\u0011\b\u0000\u0a9d\u0a9e\u0003"+ - "\u0017\u000b\u0000\u0a9e\u0a9f\u0003\u0013\t\u0000\u0a9f\u0aa0\u0003/"+ - "\u0017\u0000\u0aa0\u0aa1\u0003)\u0014\u0000\u0aa1\u0aa2\u0003\u0007\u0003"+ - "\u0000\u0aa2\u0aa3\u0003-\u0016\u0000\u0aa3\u0aa4\u0003\u0017\u000b\u0000"+ - "\u0aa4\u0aa5\u0003#\u0011\u0000\u0aa5\u0aa6\u0003!\u0010\u0000\u0aa6\u010e"+ - "\u0001\u0000\u0000\u0000\u0aa7\u0aa8\u0003\u000b\u0005\u0000\u0aa8\u0aa9"+ - "\u0003#\u0011\u0000\u0aa9\u0aaa\u0003!\u0010\u0000\u0aaa\u0aab\u0003\u0011"+ - "\b\u0000\u0aab\u0aac\u0003\u001d\u000e\u0000\u0aac\u0aad\u0003\u0017\u000b"+ - "\u0000\u0aad\u0aae\u0003\u000b\u0005\u0000\u0aae\u0aaf\u0003-\u0016\u0000"+ - "\u0aaf\u0110\u0001\u0000\u0000\u0000\u0ab0\u0ab1\u0003\u000b\u0005\u0000"+ - "\u0ab1\u0ab2\u0003#\u0011\u0000\u0ab2\u0ab3\u0003!\u0010\u0000\u0ab3\u0ab4"+ - "\u0003!\u0010\u0000\u0ab4\u0ab5\u0003\u000f\u0007\u0000\u0ab5\u0ab6\u0003"+ - "\u000b\u0005\u0000\u0ab6\u0ab7\u0003-\u0016\u0000\u0ab7\u0112\u0001\u0000"+ - "\u0000\u0000\u0ab8\u0ab9\u0003\u000b\u0005\u0000\u0ab9\u0aba\u0003#\u0011"+ - "\u0000\u0aba\u0abb\u0003!\u0010\u0000\u0abb\u0abc\u0003!\u0010\u0000\u0abc"+ - "\u0abd\u0003\u000f\u0007\u0000\u0abd\u0abe\u0003\u000b\u0005\u0000\u0abe"+ - "\u0abf\u0003-\u0016\u0000\u0abf\u0ac0\u0003\u0017\u000b\u0000\u0ac0\u0ac1"+ - "\u0003#\u0011\u0000\u0ac1\u0ac2\u0003!\u0010\u0000\u0ac2\u0114\u0001\u0000"+ - "\u0000\u0000\u0ac3\u0ac4\u0003\u000b\u0005\u0000\u0ac4\u0ac5\u0003#\u0011"+ - "\u0000\u0ac5\u0ac6\u0003!\u0010\u0000\u0ac6\u0ac7\u0003!\u0010\u0000\u0ac7"+ - "\u0ac8\u0003\u000f\u0007\u0000\u0ac8\u0ac9\u0003\u000b\u0005\u0000\u0ac9"+ - "\u0aca\u0003-\u0016\u0000\u0aca\u0acb\u0003\u0017\u000b\u0000\u0acb\u0acc"+ - "\u0003#\u0011\u0000\u0acc\u0acd\u0003!\u0010\u0000\u0acd\u0ace\u0005_"+ - "\u0000\u0000\u0ace\u0acf\u0003!\u0010\u0000\u0acf\u0ad0\u0003\u0007\u0003"+ - "\u0000\u0ad0\u0ad1\u0003\u001f\u000f\u0000\u0ad1\u0ad2\u0003\u000f\u0007"+ - "\u0000\u0ad2\u0116\u0001\u0000\u0000\u0000\u0ad3\u0ad4\u0003\u000b\u0005"+ - "\u0000\u0ad4\u0ad5\u0003#\u0011\u0000\u0ad5\u0ad6\u0003!\u0010\u0000\u0ad6"+ - "\u0ad7\u0003+\u0015\u0000\u0ad7\u0ad8\u0003-\u0016\u0000\u0ad8\u0ad9\u0003"+ - ")\u0014\u0000\u0ad9\u0ada\u0003\u0007\u0003\u0000\u0ada\u0adb\u0003\u0017"+ - "\u000b\u0000\u0adb\u0adc\u0003!\u0010\u0000\u0adc\u0add\u0003-\u0016\u0000"+ - "\u0add\u0118\u0001\u0000\u0000\u0000\u0ade\u0adf\u0003\u000b\u0005\u0000"+ - "\u0adf\u0ae0\u0003#\u0011\u0000\u0ae0\u0ae1\u0003!\u0010\u0000\u0ae1\u0ae2"+ - "\u0003+\u0015\u0000\u0ae2\u0ae3\u0003-\u0016\u0000\u0ae3\u0ae4\u0003)"+ - "\u0014\u0000\u0ae4\u0ae5\u0003\u0007\u0003\u0000\u0ae5\u0ae6\u0003\u0017"+ - "\u000b\u0000\u0ae6\u0ae7\u0003!\u0010\u0000\u0ae7\u0ae8\u0003-\u0016\u0000"+ - "\u0ae8\u0ae9\u0005_\u0000\u0000\u0ae9\u0aea\u0003\u000b\u0005\u0000\u0aea"+ - "\u0aeb\u0003\u0007\u0003\u0000\u0aeb\u0aec\u0003-\u0016\u0000\u0aec\u0aed"+ - "\u0003\u0007\u0003\u0000\u0aed\u0aee\u0003\u001d\u000e\u0000\u0aee\u0aef"+ - "\u0003#\u0011\u0000\u0aef\u0af0\u0003\u0013\t\u0000\u0af0\u011a\u0001"+ - "\u0000\u0000\u0000\u0af1\u0af2\u0003\u000b\u0005\u0000\u0af2\u0af3\u0003"+ - "#\u0011\u0000\u0af3\u0af4\u0003!\u0010\u0000\u0af4\u0af5\u0003+\u0015"+ - "\u0000\u0af5\u0af6\u0003-\u0016\u0000\u0af6\u0af7\u0003)\u0014\u0000\u0af7"+ - "\u0af8\u0003\u0007\u0003\u0000\u0af8\u0af9\u0003\u0017\u000b\u0000\u0af9"+ - "\u0afa\u0003!\u0010\u0000\u0afa\u0afb\u0003-\u0016\u0000\u0afb\u0afc\u0005"+ - "_\u0000\u0000\u0afc\u0afd\u0003!\u0010\u0000\u0afd\u0afe\u0003\u0007\u0003"+ - "\u0000\u0afe\u0aff\u0003\u001f\u000f\u0000\u0aff\u0b00\u0003\u000f\u0007"+ - "\u0000\u0b00\u011c\u0001\u0000\u0000\u0000\u0b01\u0b02\u0003\u000b\u0005"+ - "\u0000\u0b02\u0b03\u0003#\u0011\u0000\u0b03\u0b04\u0003!\u0010\u0000\u0b04"+ - "\u0b05\u0003+\u0015\u0000\u0b05\u0b06\u0003-\u0016\u0000\u0b06\u0b07\u0003"+ - ")\u0014\u0000\u0b07\u0b08\u0003\u0007\u0003\u0000\u0b08\u0b09\u0003\u0017"+ - "\u000b\u0000\u0b09\u0b0a\u0003!\u0010\u0000\u0b0a\u0b0b\u0003-\u0016\u0000"+ - "\u0b0b\u0b0c\u0005_\u0000\u0000\u0b0c\u0b0d\u0003+\u0015\u0000\u0b0d\u0b0e"+ - "\u0003\u000b\u0005\u0000\u0b0e\u0b0f\u0003\u0015\n\u0000\u0b0f\u0b10\u0003"+ - "\u000f\u0007\u0000\u0b10\u0b11\u0003\u001f\u000f\u0000\u0b11\u0b12\u0003"+ - "\u0007\u0003\u0000\u0b12\u011e\u0001\u0000\u0000\u0000\u0b13\u0b14\u0003"+ - "\u000b\u0005\u0000\u0b14\u0b15\u0003#\u0011\u0000\u0b15\u0b16\u0003!\u0010"+ - "\u0000\u0b16\u0b17\u0003+\u0015\u0000\u0b17\u0b18\u0003-\u0016\u0000\u0b18"+ - "\u0b19\u0003)\u0014\u0000\u0b19\u0b1a\u0003\u0007\u0003\u0000\u0b1a\u0b1b"+ - "\u0003\u0017\u000b\u0000\u0b1b\u0b1c\u0003!\u0010\u0000\u0b1c\u0b1d\u0003"+ - "-\u0016\u0000\u0b1d\u0b1e\u0003+\u0015\u0000\u0b1e\u0120\u0001\u0000\u0000"+ - "\u0000\u0b1f\u0b20\u0003\u000b\u0005\u0000\u0b20\u0b21\u0003#\u0011\u0000"+ - "\u0b21\u0b22\u0003!\u0010\u0000\u0b22\u0b23\u0003+\u0015\u0000\u0b23\u0b24"+ - "\u0003-\u0016\u0000\u0b24\u0b25\u0003)\u0014\u0000\u0b25\u0b26\u0003/"+ - "\u0017\u0000\u0b26\u0b27\u0003\u000b\u0005\u0000\u0b27\u0b28\u0003-\u0016"+ - "\u0000\u0b28\u0b29\u0003#\u0011\u0000\u0b29\u0b2a\u0003)\u0014\u0000\u0b2a"+ - "\u0122\u0001\u0000\u0000\u0000\u0b2b\u0b2c\u0003\u000b\u0005\u0000\u0b2c"+ - "\u0b2d\u0003#\u0011\u0000\u0b2d\u0b2e\u0003!\u0010\u0000\u0b2e\u0b2f\u0003"+ - "-\u0016\u0000\u0b2f\u0b30\u0003\u0007\u0003\u0000\u0b30\u0b31\u0003\u0017"+ - "\u000b\u0000\u0b31\u0b32\u0003!\u0010\u0000\u0b32\u0b33\u0003+\u0015\u0000"+ - "\u0b33\u0124\u0001\u0000\u0000\u0000\u0b34\u0b35\u0003\u000b\u0005\u0000"+ - "\u0b35\u0b36\u0003#\u0011\u0000\u0b36\u0b37\u0003!\u0010\u0000\u0b37\u0b38"+ - "\u0003-\u0016\u0000\u0b38\u0b39\u0003\u0017\u000b\u0000\u0b39\u0b3a\u0003"+ - "!\u0010\u0000\u0b3a\u0b3b\u0003/\u0017\u0000\u0b3b\u0b3c\u0003\u000f\u0007"+ - "\u0000\u0b3c\u0126\u0001\u0000\u0000\u0000\u0b3d\u0b3e\u0003\u000b\u0005"+ - "\u0000\u0b3e\u0b3f\u0003#\u0011\u0000\u0b3f\u0b40\u0003!\u0010\u0000\u0b40"+ - "\u0b41\u00031\u0018\u0000\u0b41\u0b42\u0003\u000f\u0007\u0000\u0b42\u0b43"+ - "\u0003)\u0014\u0000\u0b43\u0b44\u0003+\u0015\u0000\u0b44\u0b45\u0003\u0017"+ - "\u000b\u0000\u0b45\u0b46\u0003#\u0011\u0000\u0b46\u0b47\u0003!\u0010\u0000"+ - "\u0b47\u0128\u0001\u0000\u0000\u0000\u0b48\u0b49\u0003\u000b\u0005\u0000"+ - "\u0b49\u0b4a\u0003#\u0011\u0000\u0b4a\u0b4b\u0003!\u0010\u0000\u0b4b\u0b4c"+ - "\u00031\u0018\u0000\u0b4c\u0b4d\u0003\u000f\u0007\u0000\u0b4d\u0b4e\u0003"+ - ")\u0014\u0000\u0b4e\u0b4f\u0003-\u0016\u0000\u0b4f\u012a\u0001\u0000\u0000"+ - "\u0000\u0b50\u0b51\u0003\u000b\u0005\u0000\u0b51\u0b52\u0003#\u0011\u0000"+ - "\u0b52\u0b53\u0003%\u0012\u0000\u0b53\u0b54\u00037\u001b\u0000\u0b54\u012c"+ - "\u0001\u0000\u0000\u0000\u0b55\u0b56\u0003\u000b\u0005\u0000\u0b56\u0b57"+ - "\u0003#\u0011\u0000\u0b57\u0b58\u0003)\u0014\u0000\u0b58\u0b59\u0003)"+ - "\u0014\u0000\u0b59\u012e\u0001\u0000\u0000\u0000\u0b5a\u0b5b\u0003\u000b"+ - "\u0005\u0000\u0b5b\u0b5c\u0003#\u0011\u0000\u0b5c\u0b5d\u0003)\u0014\u0000"+ - "\u0b5d\u0b5e\u0003)\u0014\u0000\u0b5e\u0b5f\u0003\u000f\u0007\u0000\u0b5f"+ - "\u0b60\u0003+\u0015\u0000\u0b60\u0b61\u0003%\u0012\u0000\u0b61\u0b62\u0003"+ - "#\u0011\u0000\u0b62\u0b63\u0003!\u0010\u0000\u0b63\u0b64\u0003\r\u0006"+ - "\u0000\u0b64\u0b65\u0003\u0017\u000b\u0000\u0b65\u0b66\u0003!\u0010\u0000"+ - "\u0b66\u0b67\u0003\u0013\t\u0000\u0b67\u0130\u0001\u0000\u0000\u0000\u0b68"+ - "\u0b69\u0003\u000b\u0005\u0000\u0b69\u0b6a\u0003#\u0011\u0000\u0b6a\u0b6b"+ - "\u0003+\u0015\u0000\u0b6b\u0b6c\u0003-\u0016\u0000\u0b6c\u0b6d\u0003+"+ - "\u0015\u0000\u0b6d\u0132\u0001\u0000\u0000\u0000\u0b6e\u0b6f\u0003\u000b"+ - "\u0005\u0000\u0b6f\u0b70\u0003#\u0011\u0000\u0b70\u0b71\u0003/\u0017\u0000"+ - "\u0b71\u0b72\u0003!\u0010\u0000\u0b72\u0b73\u0003-\u0016\u0000\u0b73\u0134"+ - "\u0001\u0000\u0000\u0000\u0b74\u0b75\u0003\u000b\u0005\u0000\u0b75\u0b76"+ - "\u0003#\u0011\u0000\u0b76\u0b77\u00031\u0018\u0000\u0b77\u0b78\u0003\u0007"+ - "\u0003\u0000\u0b78\u0b79\u0003)\u0014\u0000\u0b79\u0b7a\u0005_\u0000\u0000"+ - "\u0b7a\u0b7b\u0003%\u0012\u0000\u0b7b\u0b7c\u0003#\u0011\u0000\u0b7c\u0b7d"+ - "\u0003%\u0012\u0000\u0b7d\u0136\u0001\u0000\u0000\u0000\u0b7e\u0b7f\u0003"+ - "\u000b\u0005\u0000\u0b7f\u0b80\u0003#\u0011\u0000\u0b80\u0b81\u00031\u0018"+ - "\u0000\u0b81\u0b82\u0003\u0007\u0003\u0000\u0b82\u0b83\u0003)\u0014\u0000"+ - "\u0b83\u0b84\u0005_\u0000\u0000\u0b84\u0b85\u0003+\u0015\u0000\u0b85\u0b86"+ - "\u0003\u0007\u0003\u0000\u0b86\u0b87\u0003\u001f\u000f\u0000\u0b87\u0b88"+ - "\u0003%\u0012\u0000\u0b88\u0138\u0001\u0000\u0000\u0000\u0b89\u0b8a\u0003"+ - "\u000b\u0005\u0000\u0b8a\u0b8b\u0003)\u0014\u0000\u0b8b\u0b8c\u0003\u000f"+ - "\u0007\u0000\u0b8c\u0b8d\u0003\u0007\u0003\u0000\u0b8d\u0b8e\u0003-\u0016"+ - "\u0000\u0b8e\u0b8f\u0003\u000f\u0007\u0000\u0b8f\u013a\u0001\u0000\u0000"+ - "\u0000\u0b90\u0b91\u0003\u000b\u0005\u0000\u0b91\u0b92\u0003)\u0014\u0000"+ - "\u0b92\u0b93\u0003\u000f\u0007\u0000\u0b93\u0b94\u0003\u0007\u0003\u0000"+ - "\u0b94\u0b95\u0003-\u0016\u0000\u0b95\u0b96\u0003\u000f\u0007\u0000\u0b96"+ - "\u0b97\u0003\r\u0006\u0000\u0b97\u0b98\u0003\t\u0004\u0000\u0b98\u013c"+ - "\u0001\u0000\u0000\u0000\u0b99\u0b9a\u0003\u000b\u0005\u0000\u0b9a\u0b9b"+ - "\u0003)\u0014\u0000\u0b9b\u0b9c\u0003\u000f\u0007\u0000\u0b9c\u0b9d\u0003"+ - "\u0007\u0003\u0000\u0b9d\u0b9e\u0003-\u0016\u0000\u0b9e\u0b9f\u0003\u000f"+ - "\u0007\u0000\u0b9f\u0ba0\u0003/\u0017\u0000\u0ba0\u0ba1\u0003+\u0015\u0000"+ - "\u0ba1\u0ba2\u0003\u000f\u0007\u0000\u0ba2\u0ba3\u0003)\u0014\u0000\u0ba3"+ - "\u013e\u0001\u0000\u0000\u0000\u0ba4\u0ba5\u0003\u000b\u0005\u0000\u0ba5"+ - "\u0ba6\u0003)\u0014\u0000\u0ba6\u0ba7\u0003#\u0011\u0000\u0ba7\u0ba8\u0003"+ - "+\u0015\u0000\u0ba8\u0ba9\u0003+\u0015\u0000\u0ba9\u0140\u0001\u0000\u0000"+ - "\u0000\u0baa\u0bab\u0003\u000b\u0005\u0000\u0bab\u0bac\u0003+\u0015\u0000"+ - "\u0bac\u0bad\u00031\u0018\u0000\u0bad\u0142\u0001\u0000\u0000\u0000\u0bae"+ - "\u0baf\u0003\u000b\u0005\u0000\u0baf\u0bb0\u0003/\u0017\u0000\u0bb0\u0bb1"+ - "\u0003\t\u0004\u0000\u0bb1\u0bb2\u0003\u000f\u0007\u0000\u0bb2\u0144\u0001"+ - "\u0000\u0000\u0000\u0bb3\u0bb4\u0003\u000b\u0005\u0000\u0bb4\u0bb5\u0003"+ - "/\u0017\u0000\u0bb5\u0bb6\u0003\u001f\u000f\u0000\u0bb6\u0bb7\u0003\u000f"+ - "\u0007\u0000\u0bb7\u0bb8\u0005_\u0000\u0000\u0bb8\u0bb9\u0003\r\u0006"+ - "\u0000\u0bb9\u0bba\u0003\u0017\u000b\u0000\u0bba\u0bbb\u0003+\u0015\u0000"+ - "\u0bbb\u0bbc\u0003-\u0016\u0000\u0bbc\u0146\u0001\u0000\u0000\u0000\u0bbd"+ - "\u0bbe\u0003\u000b\u0005\u0000\u0bbe\u0bbf\u0003/\u0017\u0000\u0bbf\u0bc0"+ - "\u0003)\u0014\u0000\u0bc0\u0bc1\u0003)\u0014\u0000\u0bc1\u0bc2\u0003\u000f"+ - "\u0007\u0000\u0bc2\u0bc3\u0003!\u0010\u0000\u0bc3\u0bc4\u0003-\u0016\u0000"+ - "\u0bc4\u0148\u0001\u0000\u0000\u0000\u0bc5\u0bc6\u0003\u000b\u0005\u0000"+ - "\u0bc6\u0bc7\u0003/\u0017\u0000\u0bc7\u0bc8\u0003)\u0014\u0000\u0bc8\u0bc9"+ - "\u0003)\u0014\u0000\u0bc9\u0bca\u0003\u000f\u0007\u0000\u0bca\u0bcb\u0003"+ - "!\u0010\u0000\u0bcb\u0bcc\u0003-\u0016\u0000\u0bcc\u0bcd\u0005_\u0000"+ - "\u0000\u0bcd\u0bce\u0003\r\u0006\u0000\u0bce\u0bcf\u0003\u0007\u0003\u0000"+ - "\u0bcf\u0bd0\u0003-\u0016\u0000\u0bd0\u0bd1\u0003\u000f\u0007\u0000\u0bd1"+ - "\u014a\u0001\u0000\u0000\u0000\u0bd2\u0bd3\u0003\u000b\u0005\u0000\u0bd3"+ - "\u0bd4\u0003/\u0017\u0000\u0bd4\u0bd5\u0003)\u0014\u0000\u0bd5\u0bd6\u0003"+ - ")\u0014\u0000\u0bd6\u0bd7\u0003\u000f\u0007\u0000\u0bd7\u0bd8\u0003!\u0010"+ - "\u0000\u0bd8\u0bd9\u0003-\u0016\u0000\u0bd9\u0bda\u0005_\u0000\u0000\u0bda"+ - "\u0bdb\u0003\r\u0006\u0000\u0bdb\u0bdc\u0003\u000f\u0007\u0000\u0bdc\u0bdd"+ - "\u0003\u0011\b\u0000\u0bdd\u0bde\u0003\u0007\u0003\u0000\u0bde\u0bdf\u0003"+ - "/\u0017\u0000\u0bdf\u0be0\u0003\u001d\u000e\u0000\u0be0\u0be1\u0003-\u0016"+ - "\u0000\u0be1\u0be2\u0005_\u0000\u0000\u0be2\u0be3\u0003-\u0016\u0000\u0be3"+ - "\u0be4\u0003)\u0014\u0000\u0be4\u0be5\u0003\u0007\u0003\u0000\u0be5\u0be6"+ - "\u0003!\u0010\u0000\u0be6\u0be7\u0003+\u0015\u0000\u0be7\u0be8\u0003\u0011"+ - "\b\u0000\u0be8\u0be9\u0003#\u0011\u0000\u0be9\u0bea\u0003)\u0014\u0000"+ - "\u0bea\u0beb\u0003\u001f\u000f\u0000\u0beb\u0bec\u0005_\u0000\u0000\u0bec"+ - "\u0bed\u0003\u0013\t\u0000\u0bed\u0bee\u0003)\u0014\u0000\u0bee\u0bef"+ - "\u0003#\u0011\u0000\u0bef\u0bf0\u0003/\u0017\u0000\u0bf0\u0bf1\u0003%"+ - "\u0012\u0000\u0bf1\u014c\u0001\u0000\u0000\u0000\u0bf2\u0bf3\u0003\u000b"+ - "\u0005\u0000\u0bf3\u0bf4\u0003/\u0017\u0000\u0bf4\u0bf5\u0003)\u0014\u0000"+ - "\u0bf5\u0bf6\u0003)\u0014\u0000\u0bf6\u0bf7\u0003\u000f\u0007\u0000\u0bf7"+ - "\u0bf8\u0003!\u0010\u0000\u0bf8\u0bf9\u0003-\u0016\u0000\u0bf9\u0bfa\u0005"+ - "_\u0000\u0000\u0bfa\u0bfb\u0003%\u0012\u0000\u0bfb\u0bfc\u0003\u0007\u0003"+ - "\u0000\u0bfc\u0bfd\u0003-\u0016\u0000\u0bfd\u0bfe\u0003\u0015\n\u0000"+ - "\u0bfe\u014e\u0001\u0000\u0000\u0000\u0bff\u0c00\u0003\u000b\u0005\u0000"+ - "\u0c00\u0c01\u0003/\u0017\u0000\u0c01\u0c02\u0003)\u0014\u0000\u0c02\u0c03"+ - "\u0003)\u0014\u0000\u0c03\u0c04\u0003\u000f\u0007\u0000\u0c04\u0c05\u0003"+ - "!\u0010\u0000\u0c05\u0c06\u0003-\u0016\u0000\u0c06\u0c07\u0005_\u0000"+ - "\u0000\u0c07\u0c08\u0003)\u0014\u0000\u0c08\u0c09\u0003#\u0011\u0000\u0c09"+ - "\u0c0a\u0003\u001d\u000e\u0000\u0c0a\u0c0b\u0003\u000f\u0007\u0000\u0c0b"+ - "\u0150\u0001\u0000\u0000\u0000\u0c0c\u0c0d\u0003\u000b\u0005\u0000\u0c0d"+ - "\u0c0e\u0003/\u0017\u0000\u0c0e\u0c0f\u0003)\u0014\u0000\u0c0f\u0c10\u0003"+ - ")\u0014\u0000\u0c10\u0c11\u0003\u000f\u0007\u0000\u0c11\u0c12\u0003!\u0010"+ - "\u0000\u0c12\u0c13\u0003-\u0016\u0000\u0c13\u0c14\u0005_\u0000\u0000\u0c14"+ - "\u0c15\u0003-\u0016\u0000\u0c15\u0c16\u0003\u0017\u000b\u0000\u0c16\u0c17"+ - "\u0003\u001f\u000f\u0000\u0c17\u0c18\u0003\u000f\u0007\u0000\u0c18\u0152"+ - "\u0001\u0000\u0000\u0000\u0c19\u0c1a\u0003\u000b\u0005\u0000\u0c1a\u0c1b"+ - "\u0003/\u0017\u0000\u0c1b\u0c1c\u0003)\u0014\u0000\u0c1c\u0c1d\u0003)"+ - "\u0014\u0000\u0c1d\u0c1e\u0003\u000f\u0007\u0000\u0c1e\u0c1f\u0003!\u0010"+ - "\u0000\u0c1f\u0c20\u0003-\u0016\u0000\u0c20\u0c21\u0005_\u0000\u0000\u0c21"+ - "\u0c22\u0003-\u0016\u0000\u0c22\u0c23\u0003\u0017\u000b\u0000\u0c23\u0c24"+ - "\u0003\u001f\u000f\u0000\u0c24\u0c25\u0003\u000f\u0007\u0000\u0c25\u0c26"+ - "\u0003+\u0015\u0000\u0c26\u0c27\u0003-\u0016\u0000\u0c27\u0c28\u0003\u0007"+ - "\u0003\u0000\u0c28\u0c29\u0003\u001f\u000f\u0000\u0c29\u0c2a\u0003%\u0012"+ - "\u0000\u0c2a\u0154\u0001\u0000\u0000\u0000\u0c2b\u0c2c\u0003\u000b\u0005"+ - "\u0000\u0c2c\u0c2d\u0003/\u0017\u0000\u0c2d\u0c2e\u0003)\u0014\u0000\u0c2e"+ - "\u0c2f\u0003)\u0014\u0000\u0c2f\u0c30\u0003\u000f\u0007\u0000\u0c30\u0c31"+ - "\u0003!\u0010\u0000\u0c31\u0c32\u0003-\u0016\u0000\u0c32\u0c33\u0005_"+ - "\u0000\u0000\u0c33\u0c34\u0003-\u0016\u0000\u0c34\u0c35\u0003)\u0014\u0000"+ - "\u0c35\u0c36\u0003\u0007\u0003\u0000\u0c36\u0c37\u0003!\u0010\u0000\u0c37"+ - "\u0c38\u0003+\u0015\u0000\u0c38\u0c39\u0003\u0011\b\u0000\u0c39\u0c3a"+ - "\u0003#\u0011\u0000\u0c3a\u0c3b\u0003)\u0014\u0000\u0c3b\u0c3c\u0003\u001f"+ - "\u000f\u0000\u0c3c\u0c3d\u0005_\u0000\u0000\u0c3d\u0c3e\u0003\u0013\t"+ - "\u0000\u0c3e\u0c3f\u0003)\u0014\u0000\u0c3f\u0c40\u0003#\u0011\u0000\u0c40"+ - "\u0c41\u0003/\u0017\u0000\u0c41\u0c42\u0003%\u0012\u0000\u0c42\u0c43\u0005"+ - "_\u0000\u0000\u0c43\u0c44\u0003\u0011\b\u0000\u0c44\u0c45\u0003#\u0011"+ - "\u0000\u0c45\u0c46\u0003)\u0014\u0000\u0c46\u0c47\u0005_\u0000\u0000\u0c47"+ - "\u0c48\u0003-\u0016\u0000\u0c48\u0c49\u00037\u001b\u0000\u0c49\u0c4a\u0003"+ - "%\u0012\u0000\u0c4a\u0c4b\u0003\u000f\u0007\u0000\u0c4b\u0156\u0001\u0000"+ - "\u0000\u0000\u0c4c\u0c4d\u0003\u000b\u0005\u0000\u0c4d\u0c4e\u0003/\u0017"+ - "\u0000\u0c4e\u0c4f\u0003)\u0014\u0000\u0c4f\u0c50\u0003)\u0014\u0000\u0c50"+ - "\u0c51\u0003\u000f\u0007\u0000\u0c51\u0c52\u0003!\u0010\u0000\u0c52\u0c53"+ - "\u0003-\u0016\u0000\u0c53\u0c54\u0005_\u0000\u0000\u0c54\u0c55\u0003/"+ - "\u0017\u0000\u0c55\u0c56\u0003+\u0015\u0000\u0c56\u0c57\u0003\u000f\u0007"+ - "\u0000\u0c57\u0c58\u0003)\u0014\u0000\u0c58\u0158\u0001\u0000\u0000\u0000"+ - "\u0c59\u0c5a\u0003\u000b\u0005\u0000\u0c5a\u0c5b\u0003/\u0017\u0000\u0c5b"+ - "\u0c5c\u0003)\u0014\u0000\u0c5c\u0c5d\u0003+\u0015\u0000\u0c5d\u0c5e\u0003"+ - "#\u0011\u0000\u0c5e\u0c5f\u0003)\u0014\u0000\u0c5f\u015a\u0001\u0000\u0000"+ - "\u0000\u0c60\u0c61\u0003\u000b\u0005\u0000\u0c61\u0c62\u0003/\u0017\u0000"+ - "\u0c62\u0c63\u0003)\u0014\u0000\u0c63\u0c64\u0003+\u0015\u0000\u0c64\u0c65"+ - "\u0003#\u0011\u0000\u0c65\u0c66\u0003)\u0014\u0000\u0c66\u0c67\u0005_"+ - "\u0000\u0000\u0c67\u0c68\u0003!\u0010\u0000\u0c68\u0c69\u0003\u0007\u0003"+ - "\u0000\u0c69\u0c6a\u0003\u001f\u000f\u0000\u0c6a\u0c6b\u0003\u000f\u0007"+ - "\u0000\u0c6b\u015c\u0001\u0000\u0000\u0000\u0c6c\u0c6d\u0003\u000b\u0005"+ - "\u0000\u0c6d\u0c6e\u00037\u001b\u0000\u0c6e\u0c6f\u0003\u000b\u0005\u0000"+ - "\u0c6f\u0c70\u0003\u001d\u000e\u0000\u0c70\u0c71\u0003\u000f\u0007\u0000"+ - "\u0c71\u015e\u0001\u0000\u0000\u0000\u0c72\u0c73\u0003\r\u0006\u0000\u0c73"+ - "\u0c74\u0003\u0007\u0003\u0000\u0c74\u0c75\u0003-\u0016\u0000\u0c75\u0c76"+ - "\u0003\u0007\u0003\u0000\u0c76\u0160\u0001\u0000\u0000\u0000\u0c77\u0c78"+ - "\u0003\r\u0006\u0000\u0c78\u0c79\u0003\u0007\u0003\u0000\u0c79\u0c7a\u0003"+ - "-\u0016\u0000\u0c7a\u0c7b\u0003\u0007\u0003\u0000\u0c7b\u0c7c\u0003\t"+ - "\u0004\u0000\u0c7c\u0c7d\u0003\u0007\u0003\u0000\u0c7d\u0c7e\u0003+\u0015"+ - "\u0000\u0c7e\u0c7f\u0003\u000f\u0007\u0000\u0c7f\u0162\u0001\u0000\u0000"+ - "\u0000\u0c80\u0c81\u0003\r\u0006\u0000\u0c81\u0c82\u0003\u0007\u0003\u0000"+ - "\u0c82\u0c83\u0003-\u0016\u0000\u0c83\u0c84\u0003\u000f\u0007\u0000\u0c84"+ - "\u0164\u0001\u0000\u0000\u0000\u0c85\u0c86\u0003\r\u0006\u0000\u0c86\u0c87"+ - "\u0003\u0007\u0003\u0000\u0c87\u0c88\u0003-\u0016\u0000\u0c88\u0c89\u0003"+ - "\u000f\u0007\u0000\u0c89\u0c8a\u0003-\u0016\u0000\u0c8a\u0c8b\u0003\u0017"+ - "\u000b\u0000\u0c8b\u0c8c\u0003\u001f\u000f\u0000\u0c8c\u0c8d\u0003\u000f"+ - "\u0007\u0000\u0c8d\u0c8e\u0005_\u0000\u0000\u0c8e\u0c8f\u0003\u0017\u000b"+ - "\u0000\u0c8f\u0c90\u0003!\u0010\u0000\u0c90\u0c91\u0003-\u0016\u0000\u0c91"+ - "\u0c92\u0003\u000f\u0007\u0000\u0c92\u0c93\u0003)\u0014\u0000\u0c93\u0c94"+ - "\u00031\u0018\u0000\u0c94\u0c95\u0003\u0007\u0003\u0000\u0c95\u0c96\u0003"+ - "\u001d\u000e\u0000\u0c96\u0c97\u0005_\u0000\u0000\u0c97\u0c98\u0003\u000b"+ - "\u0005\u0000\u0c98\u0c99\u0003#\u0011\u0000\u0c99\u0c9a\u0003\r\u0006"+ - "\u0000\u0c9a\u0c9b\u0003\u000f\u0007\u0000\u0c9b\u0166\u0001\u0000\u0000"+ - "\u0000\u0c9c\u0c9d\u0003\r\u0006\u0000\u0c9d\u0c9e\u0003\u0007\u0003\u0000"+ - "\u0c9e\u0c9f\u0003-\u0016\u0000\u0c9f\u0ca0\u0003\u000f\u0007\u0000\u0ca0"+ - "\u0ca1\u0003-\u0016\u0000\u0ca1\u0ca2\u0003\u0017\u000b\u0000\u0ca2\u0ca3"+ - "\u0003\u001f\u000f\u0000\u0ca3\u0ca4\u0003\u000f\u0007\u0000\u0ca4\u0ca5"+ - "\u0005_\u0000\u0000\u0ca5\u0ca6\u0003\u0017\u000b\u0000\u0ca6\u0ca7\u0003"+ - "!\u0010\u0000\u0ca7\u0ca8\u0003-\u0016\u0000\u0ca8\u0ca9\u0003\u000f\u0007"+ - "\u0000\u0ca9\u0caa\u0003)\u0014\u0000\u0caa\u0cab\u00031\u0018\u0000\u0cab"+ - "\u0cac\u0003\u0007\u0003\u0000\u0cac\u0cad\u0003\u001d\u000e\u0000\u0cad"+ - "\u0cae\u0005_\u0000\u0000\u0cae\u0caf\u0003%\u0012\u0000\u0caf\u0cb0\u0003"+ - ")\u0014\u0000\u0cb0\u0cb1\u0003\u000f\u0007\u0000\u0cb1\u0cb2\u0003\u000b"+ - "\u0005\u0000\u0cb2\u0cb3\u0003\u0017\u000b\u0000\u0cb3\u0cb4\u0003+\u0015"+ - "\u0000\u0cb4\u0cb5\u0003\u0017\u000b\u0000\u0cb5\u0cb6\u0003#\u0011\u0000"+ - "\u0cb6\u0cb7\u0003!\u0010\u0000\u0cb7\u0168\u0001\u0000\u0000\u0000\u0cb8"+ - "\u0cb9\u0003\r\u0006\u0000\u0cb9\u0cba\u0003\u0007\u0003\u0000\u0cba\u0cbb"+ - "\u00037\u001b\u0000\u0cbb\u016a\u0001\u0000\u0000\u0000\u0cbc\u0cbd\u0003"+ - "\r\u0006\u0000\u0cbd\u0cbe\u0003\u000f\u0007\u0000\u0cbe\u0cbf\u0003\u0007"+ - "\u0003\u0000\u0cbf\u0cc0\u0003\u001d\u000e\u0000\u0cc0\u0cc1\u0003\u001d"+ - "\u000e\u0000\u0cc1\u0cc2\u0003#\u0011\u0000\u0cc2\u0cc3\u0003\u000b\u0005"+ - "\u0000\u0cc3\u0cc4\u0003\u0007\u0003\u0000\u0cc4\u0cc5\u0003-\u0016\u0000"+ - "\u0cc5\u0cc6\u0003\u000f\u0007\u0000\u0cc6\u016c\u0001\u0000\u0000\u0000"+ - "\u0cc7\u0cc8\u0003\r\u0006\u0000\u0cc8\u0cc9\u0003\u000f\u0007\u0000\u0cc9"+ - "\u0cca\u0003\u000b\u0005\u0000\u0cca\u016e\u0001\u0000\u0000\u0000\u0ccb"+ - "\u0ccc\u0003\r\u0006\u0000\u0ccc\u0ccd\u0003\u000f\u0007\u0000\u0ccd\u0cce"+ - "\u0003\u000b\u0005\u0000\u0cce\u0ccf\u0003\u0017\u000b\u0000\u0ccf\u0cd0"+ - "\u0003\u001f\u000f\u0000\u0cd0\u0cd1\u0003\u0007\u0003\u0000\u0cd1\u0cd2"+ - "\u0003\u001d\u000e\u0000\u0cd2\u0170\u0001\u0000\u0000\u0000\u0cd3\u0cd4"+ - "\u0003\r\u0006\u0000\u0cd4\u0cd5\u0003\u000f\u0007\u0000\u0cd5\u0cd6\u0003"+ - "\u000b\u0005\u0000\u0cd6\u0cd7\u0003\u001d\u000e\u0000\u0cd7\u0cd8\u0003"+ - "\u0007\u0003\u0000\u0cd8\u0cd9\u0003)\u0014\u0000\u0cd9\u0cda\u0003\u000f"+ - "\u0007\u0000\u0cda\u0172\u0001\u0000\u0000\u0000\u0cdb\u0cdc\u0003\r\u0006"+ - "\u0000\u0cdc\u0cdd\u0003\u000f\u0007\u0000\u0cdd\u0cde\u0003\u0011\b\u0000"+ - "\u0cde\u0cdf\u0003\u0007\u0003\u0000\u0cdf\u0ce0\u0003/\u0017\u0000\u0ce0"+ - "\u0ce1\u0003\u001d\u000e\u0000\u0ce1\u0ce2\u0003-\u0016\u0000\u0ce2\u0174"+ - "\u0001\u0000\u0000\u0000\u0ce3\u0ce4\u0003\r\u0006\u0000\u0ce4\u0ce5\u0003"+ - "\u000f\u0007\u0000\u0ce5\u0ce6\u0003\u0011\b\u0000\u0ce6\u0ce7\u0003\u0007"+ - "\u0003\u0000\u0ce7\u0ce8\u0003/\u0017\u0000\u0ce8\u0ce9\u0003\u001d\u000e"+ - "\u0000\u0ce9\u0cea\u0003-\u0016\u0000\u0cea\u0ceb\u0003+\u0015\u0000\u0ceb"+ - "\u0176\u0001\u0000\u0000\u0000\u0cec\u0ced\u0003\r\u0006\u0000\u0ced\u0cee"+ - "\u0003\u000f\u0007\u0000\u0cee\u0cef\u0003\u0011\b\u0000\u0cef\u0cf0\u0003"+ - "\u000f\u0007\u0000\u0cf0\u0cf1\u0003)\u0014\u0000\u0cf1\u0cf2\u0003\u0007"+ - "\u0003\u0000\u0cf2\u0cf3\u0003\t\u0004\u0000\u0cf3\u0cf4\u0003\u001d\u000e"+ - "\u0000\u0cf4\u0cf5\u0003\u000f\u0007\u0000\u0cf5\u0178\u0001\u0000\u0000"+ - "\u0000\u0cf6\u0cf7\u0003\r\u0006\u0000\u0cf7\u0cf8\u0003\u000f\u0007\u0000"+ - "\u0cf8\u0cf9\u0003\u0011\b\u0000\u0cf9\u0cfa\u0003\u000f\u0007\u0000\u0cfa"+ - "\u0cfb\u0003)\u0014\u0000\u0cfb\u0cfc\u0003)\u0014\u0000\u0cfc\u0cfd\u0003"+ - "\u0007\u0003\u0000\u0cfd\u0cfe\u0003\t\u0004\u0000\u0cfe\u0cff\u0003\u001d"+ - "\u000e\u0000\u0cff\u0d00\u0003\u000f\u0007\u0000\u0d00\u017a\u0001\u0000"+ - "\u0000\u0000\u0d01\u0d02\u0003\r\u0006\u0000\u0d02\u0d03\u0003\u000f\u0007"+ - "\u0000\u0d03\u0d04\u0003\u0011\b\u0000\u0d04\u0d05\u0003\u000f\u0007\u0000"+ - "\u0d05\u0d06\u0003)\u0014\u0000\u0d06\u0d07\u0003)\u0014\u0000\u0d07\u0d08"+ - "\u0003\u000f\u0007\u0000\u0d08\u0d09\u0003\r\u0006\u0000\u0d09\u017c\u0001"+ - "\u0000\u0000\u0000\u0d0a\u0d0b\u0003\r\u0006\u0000\u0d0b\u0d0c\u0003\u000f"+ - "\u0007\u0000\u0d0c\u0d0d\u0003\u0011\b\u0000\u0d0d\u0d0e\u0003\u0017\u000b"+ - "\u0000\u0d0e\u0d0f\u0003!\u0010\u0000\u0d0f\u0d10\u0003\u000f\u0007\u0000"+ - "\u0d10\u0d11\u0003\r\u0006\u0000\u0d11\u017e\u0001\u0000\u0000\u0000\u0d12"+ - "\u0d13\u0003\r\u0006\u0000\u0d13\u0d14\u0003\u000f\u0007\u0000\u0d14\u0d15"+ - "\u0003\u0011\b\u0000\u0d15\u0d16\u0003\u0017\u000b\u0000\u0d16\u0d17\u0003"+ - "!\u0010\u0000\u0d17\u0d18\u0003\u000f\u0007\u0000\u0d18\u0d19\u0003)\u0014"+ - "\u0000\u0d19\u0180\u0001\u0000\u0000\u0000\u0d1a\u0d1b\u0003\r\u0006\u0000"+ - "\u0d1b\u0d1c\u0003\u000f\u0007\u0000\u0d1c\u0d1d\u0003\u0013\t\u0000\u0d1d"+ - "\u0d1e\u0003)\u0014\u0000\u0d1e\u0d1f\u0003\u000f\u0007\u0000\u0d1f\u0d20"+ - "\u0003\u000f\u0007\u0000\u0d20\u0182\u0001\u0000\u0000\u0000\u0d21\u0d22"+ - "\u0003\r\u0006\u0000\u0d22\u0d23\u0003\u000f\u0007\u0000\u0d23\u0d24\u0003"+ - "\u001d\u000e\u0000\u0d24\u0d25\u0003\u000f\u0007\u0000\u0d25\u0d26\u0003"+ - "-\u0016\u0000\u0d26\u0d27\u0003\u000f\u0007\u0000\u0d27\u0184\u0001\u0000"+ - "\u0000\u0000\u0d28\u0d29\u0003\r\u0006\u0000\u0d29\u0d2a\u0003\u000f\u0007"+ - "\u0000\u0d2a\u0d2b\u0003\u001d\u000e\u0000\u0d2b\u0d2c\u0003\u0017\u000b"+ - "\u0000\u0d2c\u0d2d\u0003\u001f\u000f\u0000\u0d2d\u0d2e\u0003\u0017\u000b"+ - "\u0000\u0d2e\u0d2f\u0003-\u0016\u0000\u0d2f\u0d30\u0003\u000f\u0007\u0000"+ - "\u0d30\u0d31\u0003)\u0014\u0000\u0d31\u0186\u0001\u0000\u0000\u0000\u0d32"+ - "\u0d33\u0003\r\u0006\u0000\u0d33\u0d34\u0003\u000f\u0007\u0000\u0d34\u0d35"+ - "\u0003\u001d\u000e\u0000\u0d35\u0d36\u0003\u0017\u000b\u0000\u0d36\u0d37"+ - "\u0003\u001f\u000f\u0000\u0d37\u0d38\u0003\u0017\u000b\u0000\u0d38\u0d39"+ - "\u0003-\u0016\u0000\u0d39\u0d3a\u0003\u000f\u0007\u0000\u0d3a\u0d3b\u0003"+ - ")\u0014\u0000\u0d3b\u0d3c\u0003+\u0015\u0000\u0d3c\u0188\u0001\u0000\u0000"+ - "\u0000\u0d3d\u0d3e\u0003\r\u0006\u0000\u0d3e\u0d3f\u0003\u000f\u0007\u0000"+ - "\u0d3f\u0d40\u0003!\u0010\u0000\u0d40\u0d41\u0003+\u0015\u0000\u0d41\u0d42"+ - "\u0003\u000f\u0007\u0000\u0d42\u0d43\u0005_\u0000\u0000\u0d43\u0d44\u0003"+ - ")\u0014\u0000\u0d44\u0d45\u0003\u0007\u0003\u0000\u0d45\u0d46\u0003!\u0010"+ - "\u0000\u0d46\u0d47\u0003\u001b\r\u0000\u0d47\u018a\u0001\u0000\u0000\u0000"+ - "\u0d48\u0d49\u0003\r\u0006\u0000\u0d49\u0d4a\u0003\u000f\u0007\u0000\u0d4a"+ - "\u0d4b\u0003%\u0012\u0000\u0d4b\u0d4c\u0003\u000f\u0007\u0000\u0d4c\u0d4d"+ - "\u0003!\u0010\u0000\u0d4d\u0d4e\u0003\r\u0006\u0000\u0d4e\u0d4f\u0003"+ - "+\u0015\u0000\u0d4f\u018c\u0001\u0000\u0000\u0000\u0d50\u0d51\u0003\r"+ - "\u0006\u0000\u0d51\u0d52\u0003\u000f\u0007\u0000\u0d52\u0d53\u0003%\u0012"+ - "\u0000\u0d53\u0d54\u0003-\u0016\u0000\u0d54\u0d55\u0003\u0015\n\u0000"+ - "\u0d55\u018e\u0001\u0000\u0000\u0000\u0d56\u0d57\u0003\r\u0006\u0000\u0d57"+ - "\u0d58\u0003\u000f\u0007\u0000\u0d58\u0d59\u0003)\u0014\u0000\u0d59\u0d5a"+ - "\u0003\u000f\u0007\u0000\u0d5a\u0d5b\u0003\u0011\b\u0000\u0d5b\u0190\u0001"+ - "\u0000\u0000\u0000\u0d5c\u0d5d\u0003\r\u0006\u0000\u0d5d\u0d5e\u0003\u000f"+ - "\u0007\u0000\u0d5e\u0d5f\u0003)\u0014\u0000\u0d5f\u0d60\u0003\u0017\u000b"+ - "\u0000\u0d60\u0d61\u00031\u0018\u0000\u0d61\u0d62\u0003\u000f\u0007\u0000"+ - "\u0d62\u0d63\u0003\r\u0006\u0000\u0d63\u0192\u0001\u0000\u0000\u0000\u0d64"+ - "\u0d65\u0003\r\u0006\u0000\u0d65\u0d66\u0003\u000f\u0007\u0000\u0d66\u0d67"+ - "\u0003+\u0015\u0000\u0d67\u0d68\u0003\u000b\u0005\u0000\u0d68\u0194\u0001"+ - "\u0000\u0000\u0000\u0d69\u0d6a\u0003\r\u0006\u0000\u0d6a\u0d6b\u0003\u000f"+ - "\u0007\u0000\u0d6b\u0d6c\u0003+\u0015\u0000\u0d6c\u0d6d\u0003\u000b\u0005"+ - "\u0000\u0d6d\u0d6e\u0003)\u0014\u0000\u0d6e\u0d6f\u0003\u0017\u000b\u0000"+ - "\u0d6f\u0d70\u0003\t\u0004\u0000\u0d70\u0d71\u0003\u000f\u0007\u0000\u0d71"+ - "\u0196\u0001\u0000\u0000\u0000\u0d72\u0d73\u0003\r\u0006\u0000\u0d73\u0d74"+ - "\u0003\u000f\u0007\u0000\u0d74\u0d75\u0003+\u0015\u0000\u0d75\u0d76\u0003"+ - "\u000b\u0005\u0000\u0d76\u0d77\u0003)\u0014\u0000\u0d77\u0d78\u0003\u0017"+ - "\u000b\u0000\u0d78\u0d79\u0003%\u0012\u0000\u0d79\u0d7a\u0003-\u0016\u0000"+ - "\u0d7a\u0d7b\u0003#\u0011\u0000\u0d7b\u0d7c\u0003)\u0014\u0000\u0d7c\u0198"+ - "\u0001\u0000\u0000\u0000\u0d7d\u0d7e\u0003\r\u0006\u0000\u0d7e\u0d7f\u0003"+ - "\u000f\u0007\u0000\u0d7f\u0d80\u0003+\u0015\u0000\u0d80\u0d81\u0003-\u0016"+ - "\u0000\u0d81\u0d82\u0003)\u0014\u0000\u0d82\u0d83\u0003#\u0011\u0000\u0d83"+ - "\u0d84\u00037\u001b\u0000\u0d84\u019a\u0001\u0000\u0000\u0000\u0d85\u0d86"+ - "\u0003\r\u0006\u0000\u0d86\u0d87\u0003\u000f\u0007\u0000\u0d87\u0d88\u0003"+ - "+\u0015\u0000\u0d88\u0d89\u0003-\u0016\u0000\u0d89\u0d8a\u0003)\u0014"+ - "\u0000\u0d8a\u0d8b\u0003/\u0017\u0000\u0d8b\u0d8c\u0003\u000b\u0005\u0000"+ - "\u0d8c\u0d8d\u0003-\u0016\u0000\u0d8d\u0d8e\u0003#\u0011\u0000\u0d8e\u0d8f"+ - "\u0003)\u0014\u0000\u0d8f\u019c\u0001\u0000\u0000\u0000\u0d90\u0d91\u0003"+ - "\r\u0006\u0000\u0d91\u0d92\u0003\u000f\u0007\u0000\u0d92\u0d93\u0003-"+ - "\u0016\u0000\u0d93\u0d94\u0003\u000f\u0007\u0000\u0d94\u0d95\u0003)\u0014"+ - "\u0000\u0d95\u0d96\u0003\u001f\u000f\u0000\u0d96\u0d97\u0003\u0017\u000b"+ - "\u0000\u0d97\u0d98\u0003!\u0010\u0000\u0d98\u0d99\u0003\u0017\u000b\u0000"+ - "\u0d99\u0d9a\u0003+\u0015\u0000\u0d9a\u0d9b\u0003-\u0016\u0000\u0d9b\u0d9c"+ - "\u0003\u0017\u000b\u0000\u0d9c\u0d9d\u0003\u000b\u0005\u0000\u0d9d\u019e"+ - "\u0001\u0000\u0000\u0000\u0d9e\u0d9f\u0003\r\u0006\u0000\u0d9f\u0da0\u0003"+ - "\u0017\u000b\u0000\u0da0\u0da1\u0003\u0007\u0003\u0000\u0da1\u0da2\u0003"+ - "\u0013\t\u0000\u0da2\u0da3\u0003!\u0010\u0000\u0da3\u0da4\u0003#\u0011"+ - "\u0000\u0da4\u0da5\u0003+\u0015\u0000\u0da5\u0da6\u0003-\u0016\u0000\u0da6"+ - "\u0da7\u0003\u0017\u000b\u0000\u0da7\u0da8\u0003\u000b\u0005\u0000\u0da8"+ - "\u0da9\u0003+\u0015\u0000\u0da9\u01a0\u0001\u0000\u0000\u0000\u0daa\u0dab"+ - "\u0003\r\u0006\u0000\u0dab\u0dac\u0003\u0017\u000b\u0000\u0dac\u0dad\u0003"+ - "\u000b\u0005\u0000\u0dad\u0dae\u0003-\u0016\u0000\u0dae\u0daf\u0003\u0017"+ - "\u000b\u0000\u0daf\u0db0\u0003#\u0011\u0000\u0db0\u0db1\u0003!\u0010\u0000"+ - "\u0db1\u0db2\u0003\u0007\u0003\u0000\u0db2\u0db3\u0003)\u0014\u0000\u0db3"+ - "\u0db4\u00037\u001b\u0000\u0db4\u01a2\u0001\u0000\u0000\u0000\u0db5\u0db6"+ - "\u0003\r\u0006\u0000\u0db6\u0db7\u0003\u0017\u000b\u0000\u0db7\u0db8\u0003"+ - "+\u0015\u0000\u0db8\u0db9\u0003\u0007\u0003\u0000\u0db9\u0dba\u0003\t"+ - "\u0004\u0000\u0dba\u0dbb\u0003\u001d\u000e\u0000\u0dbb\u0dbc\u0003\u000f"+ - "\u0007\u0000\u0dbc\u01a4\u0001\u0000\u0000\u0000\u0dbd\u0dbe\u0003\r\u0006"+ - "\u0000\u0dbe\u0dbf\u0003\u0017\u000b\u0000\u0dbf\u0dc0\u0003+\u0015\u0000"+ - "\u0dc0\u0dc1\u0003\u0007\u0003\u0000\u0dc1\u0dc2\u0003\t\u0004\u0000\u0dc2"+ - "\u0dc3\u0003\u001d\u000e\u0000\u0dc3\u0dc4\u0003\u000f\u0007\u0000\u0dc4"+ - "\u0dc5\u0005_\u0000\u0000\u0dc5\u0dc6\u0003%\u0012\u0000\u0dc6\u0dc7\u0003"+ - "\u0007\u0003\u0000\u0dc7\u0dc8\u0003\u0013\t\u0000\u0dc8\u0dc9\u0003\u000f"+ - "\u0007\u0000\u0dc9\u0dca\u0005_\u0000\u0000\u0dca\u0dcb\u0003+\u0015\u0000"+ - "\u0dcb\u0dcc\u0003\u001b\r\u0000\u0dcc\u0dcd\u0003\u0017\u000b\u0000\u0dcd"+ - "\u0dce\u0003%\u0012\u0000\u0dce\u0dcf\u0003%\u0012\u0000\u0dcf\u0dd0\u0003"+ - "\u0017\u000b\u0000\u0dd0\u0dd1\u0003!\u0010\u0000\u0dd1\u0dd2\u0003\u0013"+ - "\t\u0000\u0dd2\u01a6\u0001\u0000\u0000\u0000\u0dd3\u0dd4\u0003\r\u0006"+ - "\u0000\u0dd4\u0dd5\u0003\u0017\u000b\u0000\u0dd5\u0dd6\u0003+\u0015\u0000"+ - "\u0dd6\u0dd7\u0003\u000b\u0005\u0000\u0dd7\u0dd8\u0003\u0007\u0003\u0000"+ - "\u0dd8\u0dd9\u0003)\u0014\u0000\u0dd9\u0dda\u0003\r\u0006\u0000\u0dda"+ - "\u01a8\u0001\u0000\u0000\u0000\u0ddb\u0ddc\u0003\r\u0006\u0000\u0ddc\u0ddd"+ - "\u0003\u0017\u000b\u0000\u0ddd\u0dde\u0003+\u0015\u0000\u0dde\u0ddf\u0003"+ - "\u000b\u0005\u0000\u0ddf\u0de0\u0003#\u0011\u0000\u0de0\u0de1\u0003!\u0010"+ - "\u0000\u0de1\u0de2\u0003!\u0010\u0000\u0de2\u0de3\u0003\u000f\u0007\u0000"+ - "\u0de3\u0de4\u0003\u000b\u0005\u0000\u0de4\u0de5\u0003-\u0016\u0000\u0de5"+ - "\u01aa\u0001\u0000\u0000\u0000\u0de6\u0de7\u0003\r\u0006\u0000\u0de7\u0de8"+ - "\u0003\u0017\u000b\u0000\u0de8\u0de9\u0003+\u0015\u0000\u0de9\u0dea\u0003"+ - "%\u0012\u0000\u0dea\u0deb\u0003\u0007\u0003\u0000\u0deb\u0dec\u0003-\u0016"+ - "\u0000\u0dec\u0ded\u0003\u000b\u0005\u0000\u0ded\u0dee\u0003\u0015\n\u0000"+ - "\u0dee\u01ac\u0001\u0000\u0000\u0000\u0def\u0df0\u0003\r\u0006\u0000\u0df0"+ - "\u0df1\u0003\u0017\u000b\u0000\u0df1\u0df2\u0003+\u0015\u0000\u0df2\u0df3"+ - "\u0003-\u0016\u0000\u0df3\u0df4\u0003\u0017\u000b\u0000\u0df4\u0df5\u0003"+ - "!\u0010\u0000\u0df5\u0df6\u0003\u000b\u0005\u0000\u0df6\u0df7\u0003-\u0016"+ - "\u0000\u0df7\u01ae\u0001\u0000\u0000\u0000\u0df8\u0df9\u0003\r\u0006\u0000"+ - "\u0df9\u0dfa\u0003#\u0011\u0000\u0dfa\u01b0\u0001\u0000\u0000\u0000\u0dfb"+ - "\u0dfc\u0003\r\u0006\u0000\u0dfc\u0dfd\u0003#\u0011\u0000\u0dfd\u0dfe"+ - "\u0003\u001f\u000f\u0000\u0dfe\u0dff\u0003\u0007\u0003\u0000\u0dff\u0e00"+ - "\u0003\u0017\u000b\u0000\u0e00\u0e01\u0003!\u0010\u0000\u0e01\u01b2\u0001"+ - "\u0000\u0000\u0000\u0e02\u0e03\u0003\r\u0006\u0000\u0e03\u0e04\u0003#"+ - "\u0011\u0000\u0e04\u0e05\u0003/\u0017\u0000\u0e05\u0e06\u0003\t\u0004"+ - "\u0000\u0e06\u0e07\u0003\u001d\u000e\u0000\u0e07\u0e08\u0003\u000f\u0007"+ - "\u0000\u0e08\u01b4\u0001\u0000\u0000\u0000\u0e09\u0e0a\u0003\r\u0006\u0000"+ - "\u0e0a\u0e0b\u0003)\u0014\u0000\u0e0b\u0e0c\u0003#\u0011\u0000\u0e0c\u0e0d"+ - "\u0003%\u0012\u0000\u0e0d\u01b6\u0001\u0000\u0000\u0000\u0e0e\u0e0f\u0003"+ - "\r\u0006\u0000\u0e0f\u0e10\u00037\u001b\u0000\u0e10\u0e11\u0003!\u0010"+ - "\u0000\u0e11\u0e12\u0003\u0007\u0003\u0000\u0e12\u0e13\u0003\u001f\u000f"+ - "\u0000\u0e13\u0e14\u0003\u0017\u000b\u0000\u0e14\u0e15\u0003\u000b\u0005"+ - "\u0000\u0e15\u01b8\u0001\u0000\u0000\u0000\u0e16\u0e17\u0003\r\u0006\u0000"+ - "\u0e17\u0e18\u00037\u001b\u0000\u0e18\u0e19\u0003!\u0010\u0000\u0e19\u0e1a"+ - "\u0003\u0007\u0003\u0000\u0e1a\u0e1b\u0003\u001f\u000f\u0000\u0e1b\u0e1c"+ - "\u0003\u0017\u000b\u0000\u0e1c\u0e1d\u0003\u000b\u0005\u0000\u0e1d\u0e1e"+ - "\u0005_\u0000\u0000\u0e1e\u0e1f\u0003\u0011\b\u0000\u0e1f\u0e20\u0003"+ - "/\u0017\u0000\u0e20\u0e21\u0003!\u0010\u0000\u0e21\u0e22\u0003\u000b\u0005"+ - "\u0000\u0e22\u0e23\u0003-\u0016\u0000\u0e23\u0e24\u0003\u0017\u000b\u0000"+ - "\u0e24\u0e25\u0003#\u0011\u0000\u0e25\u0e26\u0003!\u0010\u0000\u0e26\u01ba"+ - "\u0001\u0000\u0000\u0000\u0e27\u0e28\u0003\r\u0006\u0000\u0e28\u0e29\u0003"+ - "7\u001b\u0000\u0e29\u0e2a\u0003!\u0010\u0000\u0e2a\u0e2b\u0003\u0007\u0003"+ - "\u0000\u0e2b\u0e2c\u0003\u001f\u000f\u0000\u0e2c\u0e2d\u0003\u0017\u000b"+ - "\u0000\u0e2d\u0e2e\u0003\u000b\u0005\u0000\u0e2e\u0e2f\u0005_\u0000\u0000"+ - "\u0e2f\u0e30\u0003\u0011\b\u0000\u0e30\u0e31\u0003/\u0017\u0000\u0e31"+ - "\u0e32\u0003!\u0010\u0000\u0e32\u0e33\u0003\u000b\u0005\u0000\u0e33\u0e34"+ - "\u0003-\u0016\u0000\u0e34\u0e35\u0003\u0017\u000b\u0000\u0e35\u0e36\u0003"+ - "#\u0011\u0000\u0e36\u0e37\u0003!\u0010\u0000\u0e37\u0e38\u0005_\u0000"+ - "\u0000\u0e38\u0e39\u0003\u000b\u0005\u0000\u0e39\u0e3a\u0003#\u0011\u0000"+ - "\u0e3a\u0e3b\u0003\r\u0006\u0000\u0e3b\u0e3c\u0003\u000f\u0007\u0000\u0e3c"+ - "\u01bc\u0001\u0000\u0000\u0000\u0e3d\u0e3e\u0003\u000f\u0007\u0000\u0e3e"+ - "\u0e3f\u0003\u0007\u0003\u0000\u0e3f\u0e40\u0003\u000b\u0005\u0000\u0e40"+ - "\u0e41\u0003\u0015\n\u0000\u0e41\u01be\u0001\u0000\u0000\u0000\u0e42\u0e43"+ - "\u0003\u000f\u0007\u0000\u0e43\u0e44\u0003\u001d\u000e\u0000\u0e44\u0e45"+ - "\u0003\u000f\u0007\u0000\u0e45\u0e46\u0003\u001f\u000f\u0000\u0e46\u0e47"+ - "\u0003\u000f\u0007\u0000\u0e47\u0e48\u0003!\u0010\u0000\u0e48\u0e49\u0003"+ - "-\u0016\u0000\u0e49\u01c0\u0001\u0000\u0000\u0000\u0e4a\u0e4b\u0003\u000f"+ - "\u0007\u0000\u0e4b\u0e4c\u0003\u001d\u000e\u0000\u0e4c\u0e4d\u0003+\u0015"+ - "\u0000\u0e4d\u0e4e\u0003\u000f\u0007\u0000\u0e4e\u01c2\u0001\u0000\u0000"+ - "\u0000\u0e4f\u0e50\u0003\u000f\u0007\u0000\u0e50\u0e51\u0003!\u0010\u0000"+ - "\u0e51\u0e52\u0003\u0007\u0003\u0000\u0e52\u0e53\u0003\t\u0004\u0000\u0e53"+ - "\u0e54\u0003\u001d\u000e\u0000\u0e54\u0e55\u0003\u000f\u0007\u0000\u0e55"+ - "\u01c4\u0001\u0000\u0000\u0000\u0e56\u0e57\u0003\u000f\u0007\u0000\u0e57"+ - "\u0e58\u0003!\u0010\u0000\u0e58\u0e59\u0003\u000b\u0005\u0000\u0e59\u0e5a"+ - "\u0003#\u0011\u0000\u0e5a\u0e5b\u0003\r\u0006\u0000\u0e5b\u0e5c\u0003"+ - "\u0017\u000b\u0000\u0e5c\u0e5d\u0003!\u0010\u0000\u0e5d\u0e5e\u0003\u0013"+ - "\t\u0000\u0e5e\u01c6\u0001\u0000\u0000\u0000\u0e5f\u0e60\u0003\u000f\u0007"+ - "\u0000\u0e60\u0e61\u0003!\u0010\u0000\u0e61\u0e62\u0003\u000b\u0005\u0000"+ - "\u0e62\u0e63\u0003)\u0014\u0000\u0e63\u0e64\u00037\u001b\u0000\u0e64\u0e65"+ - "\u0003%\u0012\u0000\u0e65\u0e66\u0003-\u0016\u0000\u0e66\u0e67\u0003\u000f"+ - "\u0007\u0000\u0e67\u0e68\u0003\r\u0006\u0000\u0e68\u01c8\u0001\u0000\u0000"+ - "\u0000\u0e69\u0e6a\u0003\u000f\u0007\u0000\u0e6a\u0e6b\u0003!\u0010\u0000"+ - "\u0e6b\u0e6c\u0003\r\u0006\u0000\u0e6c\u01ca\u0001\u0000\u0000\u0000\u0e6d"+ - "\u0e6e\u0003\u000f\u0007\u0000\u0e6e\u0e6f\u0003!\u0010\u0000\u0e6f\u0e70"+ - "\u0003\r\u0006\u0000\u0e70\u0e71\u0005-\u0000\u0000\u0e71\u0e72\u0003"+ - "\u000f\u0007\u0000\u0e72\u0e73\u00035\u001a\u0000\u0e73\u0e74\u0003\u000f"+ - "\u0007\u0000\u0e74\u0e75\u0003\u000b\u0005\u0000\u0e75\u01cc\u0001\u0000"+ - "\u0000\u0000\u0e76\u0e77\u0003\u000f\u0007\u0000\u0e77\u0e78\u0003\'\u0013"+ - "\u0000\u0e78\u0e79\u0003/\u0017\u0000\u0e79\u0e7a\u0003\u0007\u0003\u0000"+ - "\u0e7a\u0e7b\u0003\u001d\u000e\u0000\u0e7b\u0e7c\u0003+\u0015\u0000\u0e7c"+ - "\u01ce\u0001\u0000\u0000\u0000\u0e7d\u0e7e\u0003\u000f\u0007\u0000\u0e7e"+ - "\u0e7f\u0003+\u0015\u0000\u0e7f\u0e80\u0003\u000b\u0005\u0000\u0e80\u0e81"+ - "\u0003\u0007\u0003\u0000\u0e81\u0e82\u0003%\u0012\u0000\u0e82\u0e83\u0003"+ - "\u000f\u0007\u0000\u0e83\u01d0\u0001\u0000\u0000\u0000\u0e84\u0e85\u0003"+ - "\u000f\u0007\u0000\u0e85\u0e86\u00031\u0018\u0000\u0e86\u0e87\u0003\u000f"+ - "\u0007\u0000\u0e87\u0e88\u0003)\u0014\u0000\u0e88\u0e89\u00037\u001b\u0000"+ - "\u0e89\u01d2\u0001\u0000\u0000\u0000\u0e8a\u0e8b\u0003\u000f\u0007\u0000"+ - "\u0e8b\u0e8c\u00035\u001a\u0000\u0e8c\u0e8d\u0003\u000b\u0005\u0000\u0e8d"+ - "\u0e8e\u0003\u000f\u0007\u0000\u0e8e\u0e8f\u0003%\u0012\u0000\u0e8f\u0e90"+ - "\u0003-\u0016\u0000\u0e90\u01d4\u0001\u0000\u0000\u0000\u0e91\u0e92\u0003"+ - "\u000f\u0007\u0000\u0e92\u0e93\u00035\u001a\u0000\u0e93\u0e94\u0003\u000b"+ - "\u0005\u0000\u0e94\u0e95\u0003\u000f\u0007\u0000\u0e95\u0e96\u0003%\u0012"+ - "\u0000\u0e96\u0e97\u0003-\u0016\u0000\u0e97\u0e98\u0003\u0017\u000b\u0000"+ - "\u0e98\u0e99\u0003#\u0011\u0000\u0e99\u0e9a\u0003!\u0010\u0000\u0e9a\u01d6"+ - "\u0001\u0000\u0000\u0000\u0e9b\u0e9c\u0003\u000f\u0007\u0000\u0e9c\u0e9d"+ - "\u00035\u001a\u0000\u0e9d\u0e9e\u0003\u000b\u0005\u0000\u0e9e\u0e9f\u0003"+ - "\u001d\u000e\u0000\u0e9f\u0ea0\u0003/\u0017\u0000\u0ea0\u0ea1\u0003\r"+ - "\u0006\u0000\u0ea1\u0ea2\u0003\u000f\u0007\u0000\u0ea2\u01d8\u0001\u0000"+ - "\u0000\u0000\u0ea3\u0ea4\u0003\u000f\u0007\u0000\u0ea4\u0ea5\u00035\u001a"+ - "\u0000\u0ea5\u0ea6\u0003\u000b\u0005\u0000\u0ea6\u0ea7\u0003\u001d\u000e"+ - "\u0000\u0ea7\u0ea8\u0003/\u0017\u0000\u0ea8\u0ea9\u0003\r\u0006\u0000"+ - "\u0ea9\u0eaa\u0003\u0017\u000b\u0000\u0eaa\u0eab\u0003!\u0010\u0000\u0eab"+ - "\u0eac\u0003\u0013\t\u0000\u0eac\u01da\u0001\u0000\u0000\u0000\u0ead\u0eae"+ - "\u0003\u000f\u0007\u0000\u0eae\u0eaf\u00035\u001a\u0000\u0eaf\u0eb0\u0003"+ - "\u000b\u0005\u0000\u0eb0\u0eb1\u0003\u001d\u000e\u0000\u0eb1\u0eb2\u0003"+ - "/\u0017\u0000\u0eb2\u0eb3\u0003+\u0015\u0000\u0eb3\u0eb4\u0003\u0017\u000b"+ - "\u0000\u0eb4\u0eb5\u00031\u0018\u0000\u0eb5\u0eb6\u0003\u000f\u0007\u0000"+ - "\u0eb6\u01dc\u0001\u0000\u0000\u0000\u0eb7\u0eb8\u0003\u000f\u0007\u0000"+ - "\u0eb8\u0eb9\u00035\u001a\u0000\u0eb9\u0eba\u0003\u000f\u0007\u0000\u0eba"+ - "\u0ebb\u0003\u000b\u0005\u0000\u0ebb\u01de\u0001\u0000\u0000\u0000\u0ebc"+ - "\u0ebd\u0003\u000f\u0007\u0000\u0ebd\u0ebe\u00035\u001a\u0000\u0ebe\u0ebf"+ - "\u0003\u000f\u0007\u0000\u0ebf\u0ec0\u0003\u000b\u0005\u0000\u0ec0\u0ec1"+ - "\u0003/\u0017\u0000\u0ec1\u0ec2\u0003-\u0016\u0000\u0ec2\u0ec3\u0003\u000f"+ - "\u0007\u0000\u0ec3\u01e0\u0001\u0000\u0000\u0000\u0ec4\u0ec5\u0003\u000f"+ - "\u0007\u0000\u0ec5\u0ec6\u00035\u001a\u0000\u0ec6\u0ec7\u0003\u0017\u000b"+ - "\u0000\u0ec7\u0ec8\u0003+\u0015\u0000\u0ec8\u0ec9\u0003-\u0016\u0000\u0ec9"+ - "\u0eca\u0003\u0017\u000b\u0000\u0eca\u0ecb\u0003!\u0010\u0000\u0ecb\u0ecc"+ - "\u0003\u0013\t\u0000\u0ecc\u01e2\u0001\u0000\u0000\u0000\u0ecd\u0ece\u0003"+ - "\u000f\u0007\u0000\u0ece\u0ecf\u00035\u001a\u0000\u0ecf\u0ed0\u0003\u0017"+ - "\u000b\u0000\u0ed0\u0ed1\u0003+\u0015\u0000\u0ed1\u0ed2\u0003-\u0016\u0000"+ - "\u0ed2\u0ed3\u0003+\u0015\u0000\u0ed3\u01e4\u0001\u0000\u0000\u0000\u0ed4"+ - "\u0ed5\u0003\u000f\u0007\u0000\u0ed5\u0ed6\u00035\u001a\u0000\u0ed6\u0ed7"+ - "\u0003%\u0012\u0000\u0ed7\u01e6\u0001\u0000\u0000\u0000\u0ed8\u0ed9\u0003"+ - "\u000f\u0007\u0000\u0ed9\u0eda\u00035\u001a\u0000\u0eda\u0edb\u0003%\u0012"+ - "\u0000\u0edb\u0edc\u0003\u001d\u000e\u0000\u0edc\u0edd\u0003\u0007\u0003"+ - "\u0000\u0edd\u0ede\u0003\u0017\u000b\u0000\u0ede\u0edf\u0003!\u0010\u0000"+ - "\u0edf\u01e8\u0001\u0000\u0000\u0000\u0ee0\u0ee1\u0003\u000f\u0007\u0000"+ - "\u0ee1\u0ee2\u00035\u001a\u0000\u0ee2\u0ee3\u0003-\u0016\u0000\u0ee3\u0ee4"+ - "\u0003\u000f\u0007\u0000\u0ee4\u0ee5\u0003!\u0010\u0000\u0ee5\u0ee6\u0003"+ - "\r\u0006\u0000\u0ee6\u0ee7\u0003\u000f\u0007\u0000\u0ee7\u0ee8\u0003\r"+ - "\u0006\u0000\u0ee8\u01ea\u0001\u0000\u0000\u0000\u0ee9\u0eea\u0003\u000f"+ - "\u0007\u0000\u0eea\u0eeb\u00035\u001a\u0000\u0eeb\u0eec\u0003-\u0016\u0000"+ - "\u0eec\u0eed\u0003\u000f\u0007\u0000\u0eed\u0eee\u0003!\u0010\u0000\u0eee"+ - "\u0eef\u0003+\u0015\u0000\u0eef\u0ef0\u0003\u0017\u000b\u0000\u0ef0\u0ef1"+ - "\u0003#\u0011\u0000\u0ef1\u0ef2\u0003!\u0010\u0000\u0ef2\u01ec\u0001\u0000"+ - "\u0000\u0000\u0ef3\u0ef4\u0003\u000f\u0007\u0000\u0ef4\u0ef5\u00035\u001a"+ - "\u0000\u0ef5\u0ef6\u0003-\u0016\u0000\u0ef6\u0ef7\u0003\u000f\u0007\u0000"+ - "\u0ef7\u0ef8\u0003)\u0014\u0000\u0ef8\u0ef9\u0003!\u0010\u0000\u0ef9\u0efa"+ - "\u0003\u0007\u0003\u0000\u0efa\u0efb\u0003\u001d\u000e\u0000\u0efb\u01ee"+ - "\u0001\u0000\u0000\u0000\u0efc\u0efd\u0003\u000f\u0007\u0000\u0efd\u0efe"+ - "\u00035\u001a\u0000\u0efe\u0eff\u0003-\u0016\u0000\u0eff\u0f00\u0003)"+ - "\u0014\u0000\u0f00\u0f01\u0003\u0007\u0003\u0000\u0f01\u0f02\u0003\u000b"+ - "\u0005\u0000\u0f02\u0f03\u0003-\u0016\u0000\u0f03\u01f0\u0001\u0000\u0000"+ - "\u0000\u0f04\u0f05\u0003\u0011\b\u0000\u0f05\u0f06\u0003\u0007\u0003\u0000"+ - "\u0f06\u0f07\u0003\u001d\u000e\u0000\u0f07\u0f08\u0003+\u0015\u0000\u0f08"+ - "\u0f09\u0003\u000f\u0007\u0000\u0f09\u01f2\u0001\u0000\u0000\u0000\u0f0a"+ - "\u0f0b\u0003\u0011\b\u0000\u0f0b\u0f0c\u0003\u000f\u0007\u0000\u0f0c\u0f0d"+ - "\u0003-\u0016\u0000\u0f0d\u0f0e\u0003\u000b\u0005\u0000\u0f0e\u0f0f\u0003"+ - "\u0015\n\u0000\u0f0f\u01f4\u0001\u0000\u0000\u0000\u0f10\u0f11\u0003\u0011"+ - "\b\u0000\u0f11\u0f12\u0003\u0017\u000b\u0000\u0f12\u0f13\u0003\u000f\u0007"+ - "\u0000\u0f13\u0f14\u0003\u001d\u000e\u0000\u0f14\u0f15\u0003\r\u0006\u0000"+ - "\u0f15\u0f16\u0003+\u0015\u0000\u0f16\u01f6\u0001\u0000\u0000\u0000\u0f17"+ - "\u0f18\u0003\u0011\b\u0000\u0f18\u0f19\u0003\u0017\u000b\u0000\u0f19\u0f1a"+ - "\u0003\u001d\u000e\u0000\u0f1a\u0f1b\u0003-\u0016\u0000\u0f1b\u0f1c\u0003"+ - "\u000f\u0007\u0000\u0f1c\u0f1d\u0003)\u0014\u0000\u0f1d\u01f8\u0001\u0000"+ - "\u0000\u0000\u0f1e\u0f1f\u0003\u0011\b\u0000\u0f1f\u0f20\u0003\u0017\u000b"+ - "\u0000\u0f20\u0f21\u0003!\u0010\u0000\u0f21\u0f22\u0003\u0007\u0003\u0000"+ - "\u0f22\u0f23\u0003\u001d\u000e\u0000\u0f23\u01fa\u0001\u0000\u0000\u0000"+ - "\u0f24\u0f25\u0003\u0011\b\u0000\u0f25\u0f26\u0003\u0017\u000b\u0000\u0f26"+ - "\u0f27\u0003)\u0014\u0000\u0f27\u0f28\u0003+\u0015\u0000\u0f28\u0f29\u0003"+ - "-\u0016\u0000\u0f29\u01fc\u0001\u0000\u0000\u0000\u0f2a\u0f2b\u0003\u0011"+ - "\b\u0000\u0f2b\u0f2c\u0003\u001d\u000e\u0000\u0f2c\u0f2d\u0003#\u0011"+ - "\u0000\u0f2d\u0f2e\u0003\u0007\u0003\u0000\u0f2e\u0f2f\u0003-\u0016\u0000"+ - "\u0f2f\u01fe\u0001\u0000\u0000\u0000\u0f30\u0f31\u0003\u0011\b\u0000\u0f31"+ - "\u0f32\u0003\u001d\u000e\u0000\u0f32\u0f33\u0003#\u0011\u0000\u0f33\u0f34"+ - "\u0003#\u0011\u0000\u0f34\u0f35\u0003)\u0014\u0000\u0f35\u0200\u0001\u0000"+ - "\u0000\u0000\u0f36\u0f37\u0003\u0011\b\u0000\u0f37\u0f38\u0003#\u0011"+ - "\u0000\u0f38\u0f39\u0003\u001d\u000e\u0000\u0f39\u0f3a\u0003\u001d\u000e"+ - "\u0000\u0f3a\u0f3b\u0003#\u0011\u0000\u0f3b\u0f3c\u00033\u0019\u0000\u0f3c"+ - "\u0f3d\u0003\u0017\u000b\u0000\u0f3d\u0f3e\u0003!\u0010\u0000\u0f3e\u0f3f"+ - "\u0003\u0013\t\u0000\u0f3f\u0202\u0001\u0000\u0000\u0000\u0f40\u0f41\u0003"+ - "\u0011\b\u0000\u0f41\u0f42\u0003#\u0011\u0000\u0f42\u0f43\u0003)\u0014"+ - "\u0000\u0f43\u0204\u0001\u0000\u0000\u0000\u0f44\u0f45\u0003\u0011\b\u0000"+ - "\u0f45\u0f46\u0003#\u0011\u0000\u0f46\u0f47\u0003)\u0014\u0000\u0f47\u0f48"+ - "\u0003\u000b\u0005\u0000\u0f48\u0f49\u0003\u000f\u0007\u0000\u0f49\u0206"+ - "\u0001\u0000\u0000\u0000\u0f4a\u0f4b\u0003\u0011\b\u0000\u0f4b\u0f4c\u0003"+ - "#\u0011\u0000\u0f4c\u0f4d\u0003)\u0014\u0000\u0f4d\u0f4e\u0003\u000f\u0007"+ - "\u0000\u0f4e\u0f4f\u0003\u0017\u000b\u0000\u0f4f\u0f50\u0003\u0013\t\u0000"+ - "\u0f50\u0f51\u0003!\u0010\u0000\u0f51\u0208\u0001\u0000\u0000\u0000\u0f52"+ - "\u0f53\u0003\u0011\b\u0000\u0f53\u0f54\u0003#\u0011\u0000\u0f54\u0f55"+ - "\u0003)\u0014\u0000\u0f55\u0f56\u0003\u001f\u000f\u0000\u0f56\u0f57\u0003"+ - "\u0007\u0003\u0000\u0f57\u0f58\u0003-\u0016\u0000\u0f58\u020a\u0001\u0000"+ - "\u0000\u0000\u0f59\u0f5a\u0003\u0011\b\u0000\u0f5a\u0f5b\u0003#\u0011"+ - "\u0000\u0f5b\u0f5c\u0003)\u0014\u0000\u0f5c\u0f5d\u0003-\u0016\u0000\u0f5d"+ - "\u0f5e\u0003)\u0014\u0000\u0f5e\u0f5f\u0003\u0007\u0003\u0000\u0f5f\u0f60"+ - "\u0003!\u0010\u0000\u0f60\u020c\u0001\u0000\u0000\u0000\u0f61\u0f62\u0003"+ - "\u0011\b\u0000\u0f62\u0f63\u0003#\u0011\u0000\u0f63\u0f64\u0003)\u0014"+ - "\u0000\u0f64\u0f65\u00033\u0019\u0000\u0f65\u0f66\u0003\u0007\u0003\u0000"+ - "\u0f66\u0f67\u0003)\u0014\u0000\u0f67\u0f68\u0003\r\u0006\u0000\u0f68"+ - "\u020e\u0001\u0000\u0000\u0000\u0f69\u0f6a\u0003\u0011\b\u0000\u0f6a\u0f6b"+ - "\u0003#\u0011\u0000\u0f6b\u0f6c\u0003/\u0017\u0000\u0f6c\u0f6d\u0003!"+ - "\u0010\u0000\u0f6d\u0f6e\u0003\r\u0006\u0000\u0f6e\u0210\u0001\u0000\u0000"+ - "\u0000\u0f6f\u0f70\u0003\u0011\b\u0000\u0f70\u0f71\u0003)\u0014\u0000"+ - "\u0f71\u0f72\u0003\u000f\u0007\u0000\u0f72\u0f73\u0003\u000f\u0007\u0000"+ - "\u0f73\u0212\u0001\u0000\u0000\u0000\u0f74\u0f75\u0003\u0011\b\u0000\u0f75"+ - "\u0f76\u0003)\u0014\u0000\u0f76\u0f77\u0003\u000f\u0007\u0000\u0f77\u0f78"+ - "\u0003\u000f\u0007\u0000\u0f78\u0f79\u00039\u001c\u0000\u0f79\u0f7a\u0003"+ - "\u000f\u0007\u0000\u0f7a\u0214\u0001\u0000\u0000\u0000\u0f7b\u0f7c\u0003"+ - "\u0011\b\u0000\u0f7c\u0f7d\u0003)\u0014\u0000\u0f7d\u0f7e\u0003#\u0011"+ - "\u0000\u0f7e\u0f7f\u0003\u001f\u000f\u0000\u0f7f\u0216\u0001\u0000\u0000"+ - "\u0000\u0f80\u0f81\u0003\u0011\b\u0000\u0f81\u0f82\u0003/\u0017\u0000"+ - "\u0f82\u0f83\u0003\u001d\u000e\u0000\u0f83\u0f84\u0003\u001d\u000e\u0000"+ - "\u0f84\u0218\u0001\u0000\u0000\u0000\u0f85\u0f86\u0003\u0011\b\u0000\u0f86"+ - "\u0f87\u0003/\u0017\u0000\u0f87\u0f88\u0003!\u0010\u0000\u0f88\u0f89\u0003"+ - "\u000b\u0005\u0000\u0f89\u0f8a\u0003-\u0016\u0000\u0f8a\u0f8b\u0003\u0017"+ - "\u000b\u0000\u0f8b\u0f8c\u0003#\u0011\u0000\u0f8c\u0f8d\u0003!\u0010\u0000"+ - "\u0f8d\u021a\u0001\u0000\u0000\u0000\u0f8e\u0f8f\u0003\u0011\b\u0000\u0f8f"+ - "\u0f90\u0003/\u0017\u0000\u0f90\u0f91\u0003+\u0015\u0000\u0f91\u0f92\u0003"+ - "\u0017\u000b\u0000\u0f92\u0f93\u0003#\u0011\u0000\u0f93\u0f94\u0003!\u0010"+ - "\u0000\u0f94\u021c\u0001\u0000\u0000\u0000\u0f95\u0f96\u0003\u0013\t\u0000"+ - "\u0f96\u021e\u0001\u0000\u0000\u0000\u0f97\u0f98\u0003\u0013\t\u0000\u0f98"+ - "\u0f99\u0003\u000f\u0007\u0000\u0f99\u0f9a\u0003!\u0010\u0000\u0f9a\u0f9b"+ - "\u0003\u000f\u0007\u0000\u0f9b\u0f9c\u0003)\u0014\u0000\u0f9c\u0f9d\u0003"+ - "\u0007\u0003\u0000\u0f9d\u0f9e\u0003\u001d\u000e\u0000\u0f9e\u0220\u0001"+ - "\u0000\u0000\u0000\u0f9f\u0fa0\u0003\u0013\t\u0000\u0fa0\u0fa1\u0003\u000f"+ - "\u0007\u0000\u0fa1\u0fa2\u0003!\u0010\u0000\u0fa2\u0fa3\u0003\u000f\u0007"+ - "\u0000\u0fa3\u0fa4\u0003)\u0014\u0000\u0fa4\u0fa5\u0003\u0007\u0003\u0000"+ - "\u0fa5\u0fa6\u0003-\u0016\u0000\u0fa6\u0fa7\u0003\u000f\u0007\u0000\u0fa7"+ - "\u0fa8\u0003\r\u0006\u0000\u0fa8\u0222\u0001\u0000\u0000\u0000\u0fa9\u0faa"+ - "\u0003\u0013\t\u0000\u0faa\u0fab\u0003\u000f\u0007\u0000\u0fab\u0fac\u0003"+ - "-\u0016\u0000\u0fac\u0224\u0001\u0000\u0000\u0000\u0fad\u0fae\u0003\u0013"+ - "\t\u0000\u0fae\u0faf\u0003\u001d\u000e\u0000\u0faf\u0fb0\u0003#\u0011"+ - "\u0000\u0fb0\u0fb1\u0003\t\u0004\u0000\u0fb1\u0fb2\u0003\u0007\u0003\u0000"+ - "\u0fb2\u0fb3\u0003\u001d\u000e\u0000\u0fb3\u0226\u0001\u0000\u0000\u0000"+ - "\u0fb4\u0fb5\u0003\u0013\t\u0000\u0fb5\u0fb6\u0003#\u0011\u0000\u0fb6"+ - "\u0228\u0001\u0000\u0000\u0000\u0fb7\u0fb8\u0003\u0013\t\u0000\u0fb8\u0fb9"+ - "\u0003#\u0011\u0000\u0fb9\u0fba\u0003-\u0016\u0000\u0fba\u0fbb\u0003#"+ - "\u0011\u0000\u0fbb\u022a\u0001\u0000\u0000\u0000\u0fbc\u0fbd\u0003\u0013"+ - "\t\u0000\u0fbd\u0fbe\u0003)\u0014\u0000\u0fbe\u0fbf\u0003\u0007\u0003"+ - "\u0000\u0fbf\u0fc0\u0003!\u0010\u0000\u0fc0\u0fc1\u0003-\u0016\u0000\u0fc1"+ - "\u022c\u0001\u0000\u0000\u0000\u0fc2\u0fc3\u0003\u0013\t\u0000\u0fc3\u0fc4"+ - "\u0003)\u0014\u0000\u0fc4\u0fc5\u0003\u0007\u0003\u0000\u0fc5\u0fc6\u0003"+ - "!\u0010\u0000\u0fc6\u0fc7\u0003-\u0016\u0000\u0fc7\u0fc8\u0003\u000f\u0007"+ - "\u0000\u0fc8\u0fc9\u0003\r\u0006\u0000\u0fc9\u022e\u0001\u0000\u0000\u0000"+ - "\u0fca\u0fcb\u0003\u0013\t\u0000\u0fcb\u0fcc\u0003)\u0014\u0000\u0fcc"+ - "\u0fcd\u0003\u000f\u0007\u0000\u0fcd\u0fce\u0003\u0007\u0003\u0000\u0fce"+ - "\u0fcf\u0003-\u0016\u0000\u0fcf\u0fd0\u0003\u000f\u0007\u0000\u0fd0\u0fd1"+ - "\u0003+\u0015\u0000\u0fd1\u0fd2\u0003-\u0016\u0000\u0fd2\u0230\u0001\u0000"+ - "\u0000\u0000\u0fd3\u0fd4\u0003\u0013\t\u0000\u0fd4\u0fd5\u0003)\u0014"+ - "\u0000\u0fd5\u0fd6\u0003#\u0011\u0000\u0fd6\u0fd7\u0003/\u0017\u0000\u0fd7"+ - "\u0fd8\u0003%\u0012\u0000\u0fd8\u0232\u0001\u0000\u0000\u0000\u0fd9\u0fda"+ - "\u0003\u0013\t\u0000\u0fda\u0fdb\u0003)\u0014\u0000\u0fdb\u0fdc\u0003"+ - "#\u0011\u0000\u0fdc\u0fdd\u0003/\u0017\u0000\u0fdd\u0fde\u0003%\u0012"+ - "\u0000\u0fde\u0fdf\u0003\u0017\u000b\u0000\u0fdf\u0fe0\u0003!\u0010\u0000"+ - "\u0fe0\u0fe1\u0003\u0013\t\u0000\u0fe1\u0234\u0001\u0000\u0000\u0000\u0fe2"+ - "\u0fe3\u0003\u0015\n\u0000\u0fe3\u0fe4\u0003\u0007\u0003\u0000\u0fe4\u0fe5"+ - "\u0003!\u0010\u0000\u0fe5\u0fe6\u0003\r\u0006\u0000\u0fe6\u0fe7\u0003"+ - "\u001d\u000e\u0000\u0fe7\u0fe8\u0003\u000f\u0007\u0000\u0fe8\u0fe9\u0003"+ - ")\u0014\u0000\u0fe9\u0236\u0001\u0000\u0000\u0000\u0fea\u0feb\u0003\u0015"+ - "\n\u0000\u0feb\u0fec\u0003\u0007\u0003\u0000\u0fec\u0fed\u00031\u0018"+ - "\u0000\u0fed\u0fee\u0003\u0017"; - private static final String _serializedATNSegment2 = - "\u000b\u0000\u0fee\u0fef\u0003!\u0010\u0000\u0fef\u0ff0\u0003\u0013\t"+ - "\u0000\u0ff0\u0238\u0001\u0000\u0000\u0000\u0ff1\u0ff2\u0003\u0015\n\u0000"+ - "\u0ff2\u0ff3\u0003\u0017\u000b\u0000\u0ff3\u0ff4\u0003\u000f\u0007\u0000"+ - "\u0ff4\u0ff5\u0003)\u0014\u0000\u0ff5\u0ff6\u0003\u0007\u0003\u0000\u0ff6"+ - "\u0ff7\u0003)\u0014\u0000\u0ff7\u0ff8\u0003\u000b\u0005\u0000\u0ff8\u0ff9"+ - "\u0003\u0015\n\u0000\u0ff9\u0ffa\u00037\u001b\u0000\u0ffa\u023a\u0001"+ - "\u0000\u0000\u0000\u0ffb\u0ffc\u0003\u0015\n\u0000\u0ffc\u0ffd\u0003#"+ - "\u0011\u0000\u0ffd\u0ffe\u0003\u001d\u000e\u0000\u0ffe\u0fff\u0003\r\u0006"+ - "\u0000\u0fff\u023c\u0001\u0000\u0000\u0000\u1000\u1001\u0003\u0015\n\u0000"+ - "\u1001\u1002\u0003#\u0011\u0000\u1002\u1003\u0003+\u0015\u0000\u1003\u1004"+ - "\u0003-\u0016\u0000\u1004\u023e\u0001\u0000\u0000\u0000\u1005\u1006\u0003"+ - "\u0015\n\u0000\u1006\u1007\u0003#\u0011\u0000\u1007\u1008\u0003/\u0017"+ - "\u0000\u1008\u1009\u0003)\u0014\u0000\u1009\u0240\u0001\u0000\u0000\u0000"+ - "\u100a\u100b\u0003\u0017\u000b\u0000\u100b\u100c\u0003\r\u0006\u0000\u100c"+ - "\u100d\u0003\u000f\u0007\u0000\u100d\u100e\u0003!\u0010\u0000\u100e\u100f"+ - "\u0003-\u0016\u0000\u100f\u1010\u0003\u0017\u000b\u0000\u1010\u1011\u0003"+ - "-\u0016\u0000\u1011\u1012\u00037\u001b\u0000\u1012\u0242\u0001\u0000\u0000"+ - "\u0000\u1013\u1014\u0003\u0017\u000b\u0000\u1014\u1015\u0003\u0013\t\u0000"+ - "\u1015\u1016\u0003!\u0010\u0000\u1016\u1017\u0003#\u0011\u0000\u1017\u1018"+ - "\u0003)\u0014\u0000\u1018\u1019\u0003\u000f\u0007\u0000\u1019\u0244\u0001"+ - "\u0000\u0000\u0000\u101a\u101b\u0003\u0017\u000b\u0000\u101b\u101c\u0003"+ - "\u001d\u000e\u0000\u101c\u101d\u0003\u0017\u000b\u0000\u101d\u101e\u0003"+ - "\u001b\r\u0000\u101e\u101f\u0003\u000f\u0007\u0000\u101f\u0246\u0001\u0000"+ - "\u0000\u0000\u1020\u1021\u0003\u0017\u000b\u0000\u1021\u1022\u0003\u001f"+ - "\u000f\u0000\u1022\u1023\u0003\u001f\u000f\u0000\u1023\u1024\u0003\u000f"+ - "\u0007\u0000\u1024\u1025\u0003\r\u0006\u0000\u1025\u1026\u0003\u0017\u000b"+ - "\u0000\u1026\u1027\u0003\u0007\u0003\u0000\u1027\u1028\u0003-\u0016\u0000"+ - "\u1028\u1029\u0003\u000f\u0007\u0000\u1029\u0248\u0001\u0000\u0000\u0000"+ - "\u102a\u102b\u0003\u0017\u000b\u0000\u102b\u102c\u0003\u001f\u000f\u0000"+ - "\u102c\u102d\u0003\u001f\u000f\u0000\u102d\u102e\u0003/\u0017\u0000\u102e"+ - "\u102f\u0003-\u0016\u0000\u102f\u1030\u0003\u0007\u0003\u0000\u1030\u1031"+ - "\u0003\t\u0004\u0000\u1031\u1032\u0003\u001d\u000e\u0000\u1032\u1033\u0003"+ - "\u000f\u0007\u0000\u1033\u024a\u0001\u0000\u0000\u0000\u1034\u1035\u0003"+ - "\u0017\u000b\u0000\u1035\u1036\u0003\u001f\u000f\u0000\u1036\u1037\u0003"+ - "%\u0012\u0000\u1037\u1038\u0003\u001d\u000e\u0000\u1038\u1039\u0003\u000f"+ - "\u0007\u0000\u1039\u103a\u0003\u001f\u000f\u0000\u103a\u103b\u0003\u000f"+ - "\u0007\u0000\u103b\u103c\u0003!\u0010\u0000\u103c\u103d\u0003-\u0016\u0000"+ - "\u103d\u103e\u0003\u0007\u0003\u0000\u103e\u103f\u0003-\u0016\u0000\u103f"+ - "\u1040\u0003\u0017\u000b\u0000\u1040\u1041\u0003#\u0011\u0000\u1041\u1042"+ - "\u0003!\u0010\u0000\u1042\u024c\u0001\u0000\u0000\u0000\u1043\u1044\u0003"+ - "\u0017\u000b\u0000\u1044\u1045\u0003\u001f\u000f\u0000\u1045\u1046\u0003"+ - "%\u0012\u0000\u1046\u1047\u0003\u001d\u000e\u0000\u1047\u1048\u0003\u0017"+ - "\u000b\u0000\u1048\u1049\u0003\u000b\u0005\u0000\u1049\u104a\u0003\u0017"+ - "\u000b\u0000\u104a\u104b\u0003-\u0016\u0000\u104b\u024e\u0001\u0000\u0000"+ - "\u0000\u104c\u104d\u0003\u0017\u000b\u0000\u104d\u104e\u0003!\u0010\u0000"+ - "\u104e\u0250\u0001\u0000\u0000\u0000\u104f\u1050\u0003\u0017\u000b\u0000"+ - "\u1050\u1051\u0003!\u0010\u0000\u1051\u1052\u0003\u000b\u0005\u0000\u1052"+ - "\u1053\u0003\u001d\u000e\u0000\u1053\u1054\u0003/\u0017\u0000\u1054\u1055"+ - "\u0003\r\u0006\u0000\u1055\u1056\u0003\u0017\u000b\u0000\u1056\u1057\u0003"+ - "!\u0010\u0000\u1057\u1058\u0003\u0013\t\u0000\u1058\u0252\u0001\u0000"+ - "\u0000\u0000\u1059\u105a\u0003\u0017\u000b\u0000\u105a\u105b\u0003!\u0010"+ - "\u0000\u105b\u105c\u0003\u000b\u0005\u0000\u105c\u105d\u0003)\u0014\u0000"+ - "\u105d\u105e\u0003\u000f\u0007\u0000\u105e\u105f\u0003\u001f\u000f\u0000"+ - "\u105f\u1060\u0003\u000f\u0007\u0000\u1060\u1061\u0003!\u0010\u0000\u1061"+ - "\u1062\u0003-\u0016\u0000\u1062\u0254\u0001\u0000\u0000\u0000\u1063\u1064"+ - "\u0003\u0017\u000b\u0000\u1064\u1065\u0003!\u0010\u0000\u1065\u1066\u0003"+ - "\r\u0006\u0000\u1066\u1067\u0003\u000f\u0007\u0000\u1067\u1068\u00035"+ - "\u001a\u0000\u1068\u0256\u0001\u0000\u0000\u0000\u1069\u106a\u0003\u0017"+ - "\u000b\u0000\u106a\u106b\u0003!\u0010\u0000\u106b\u106c\u0003\r\u0006"+ - "\u0000\u106c\u106d\u0003\u0017\u000b\u0000\u106d\u106e\u0003\u000b\u0005"+ - "\u0000\u106e\u106f\u0003\u0007\u0003\u0000\u106f\u1070\u0003-\u0016\u0000"+ - "\u1070\u1071\u0003#\u0011\u0000\u1071\u1072\u0003)\u0014\u0000\u1072\u0258"+ - "\u0001\u0000\u0000\u0000\u1073\u1074\u0003\u0017\u000b\u0000\u1074\u1075"+ - "\u0003!\u0010\u0000\u1075\u1076\u0003\u0011\b\u0000\u1076\u1077\u0003"+ - "\u0017\u000b\u0000\u1077\u1078\u00035\u001a\u0000\u1078\u025a\u0001\u0000"+ - "\u0000\u0000\u1079\u107a\u0003\u0017\u000b\u0000\u107a\u107b\u0003!\u0010"+ - "\u0000\u107b\u107c\u0003\u0015\n\u0000\u107c\u107d\u0003\u000f\u0007\u0000"+ - "\u107d\u107e\u0003)\u0014\u0000\u107e\u107f\u0003\u0017\u000b\u0000\u107f"+ - "\u1080\u0003-\u0016\u0000\u1080\u1081\u0003+\u0015\u0000\u1081\u025c\u0001"+ - "\u0000\u0000\u0000\u1082\u1083\u0003\u0017\u000b\u0000\u1083\u1084\u0003"+ - "!\u0010\u0000\u1084\u1085\u0003\u0017\u000b\u0000\u1085\u1086\u0003-\u0016"+ - "\u0000\u1086\u1087\u0003\u0017\u000b\u0000\u1087\u1088\u0003\u0007\u0003"+ - "\u0000\u1088\u1089\u0003\u001d\u000e\u0000\u1089\u108a\u0003\u0017\u000b"+ - "\u0000\u108a\u108b\u00039\u001c\u0000\u108b\u108c\u0003\u000f\u0007\u0000"+ - "\u108c\u025e\u0001\u0000\u0000\u0000\u108d\u108e\u0003\u0017\u000b\u0000"+ - "\u108e\u108f\u0003!\u0010\u0000\u108f\u1090\u0003\u0017\u000b\u0000\u1090"+ - "\u1091\u0003-\u0016\u0000\u1091\u1092\u0003\u0017\u000b\u0000\u1092\u1093"+ - "\u0003\u0007\u0003\u0000\u1093\u1094\u0003\u001d\u000e\u0000\u1094\u1095"+ - "\u0003\u001d\u000e\u0000\u1095\u1096\u00037\u001b\u0000\u1096\u0260\u0001"+ - "\u0000\u0000\u0000\u1097\u1098\u0003\u0017\u000b\u0000\u1098\u1099\u0003"+ - "!\u0010\u0000\u1099\u109a\u0003!\u0010\u0000\u109a\u109b\u0003\u000f\u0007"+ - "\u0000\u109b\u109c\u0003)\u0014\u0000\u109c\u0262\u0001\u0000\u0000\u0000"+ - "\u109d\u109e\u0003\u0017\u000b\u0000\u109e\u109f\u0003!\u0010\u0000\u109f"+ - "\u10a0\u0003#\u0011\u0000\u10a0\u10a1\u0003/\u0017\u0000\u10a1\u10a2\u0003"+ - "-\u0016\u0000\u10a2\u0264\u0001\u0000\u0000\u0000\u10a3\u10a4\u0003\u0017"+ - "\u000b\u0000\u10a4\u10a5\u0003!\u0010\u0000\u10a5\u10a6\u0003%\u0012\u0000"+ - "\u10a6\u10a7\u0003/\u0017\u0000\u10a7\u10a8\u0003-\u0016\u0000\u10a8\u0266"+ - "\u0001\u0000\u0000\u0000\u10a9\u10aa\u0003\u0017\u000b\u0000\u10aa\u10ab"+ - "\u0003!\u0010\u0000\u10ab\u10ac\u0003+\u0015\u0000\u10ac\u10ad\u0003\u000f"+ - "\u0007\u0000\u10ad\u10ae\u0003!\u0010\u0000\u10ae\u10af\u0003+\u0015\u0000"+ - "\u10af\u10b0\u0003\u0017\u000b\u0000\u10b0\u10b1\u0003-\u0016\u0000\u10b1"+ - "\u10b2\u0003\u0017\u000b\u0000\u10b2\u10b3\u00031\u0018\u0000\u10b3\u10b4"+ - "\u0003\u000f\u0007\u0000\u10b4\u0268\u0001\u0000\u0000\u0000\u10b5\u10b6"+ - "\u0003\u0017\u000b\u0000\u10b6\u10b7\u0003!\u0010\u0000\u10b7\u10b8\u0003"+ - "+\u0015\u0000\u10b8\u10b9\u0003\u000f\u0007\u0000\u10b9\u10ba\u0003)\u0014"+ - "\u0000\u10ba\u10bb\u0003-\u0016\u0000\u10bb\u026a\u0001\u0000\u0000\u0000"+ - "\u10bc\u10bd\u0003\u0017\u000b\u0000\u10bd\u10be\u0003!\u0010\u0000\u10be"+ - "\u10bf\u0003+\u0015\u0000\u10bf\u10c0\u0003-\u0016\u0000\u10c0\u10c1\u0003"+ - "\u0007\u0003\u0000\u10c1\u10c2\u0003!\u0010\u0000\u10c2\u10c3\u0003\u000b"+ - "\u0005\u0000\u10c3\u10c4\u0003\u000f\u0007\u0000\u10c4\u026c\u0001\u0000"+ - "\u0000\u0000\u10c5\u10c6\u0003\u0017\u000b\u0000\u10c6\u10c7\u0003!\u0010"+ - "\u0000\u10c7\u10c8\u0003+\u0015\u0000\u10c8\u10c9\u0003-\u0016\u0000\u10c9"+ - "\u10ca\u0003\u0007\u0003\u0000\u10ca\u10cb\u0003!\u0010\u0000\u10cb\u10cc"+ - "\u0003-\u0016\u0000\u10cc\u10cd\u0003\u0017\u000b\u0000\u10cd\u10ce\u0003"+ - "\u0007\u0003\u0000\u10ce\u10cf\u0003\t\u0004\u0000\u10cf\u10d0\u0003\u001d"+ - "\u000e\u0000\u10d0\u10d1\u0003\u000f\u0007\u0000\u10d1\u026e\u0001\u0000"+ - "\u0000\u0000\u10d2\u10d3\u0003\u0017\u000b\u0000\u10d3\u10d4\u0003!\u0010"+ - "\u0000\u10d4\u10d5\u0003+\u0015\u0000\u10d5\u10d6\u0003-\u0016\u0000\u10d6"+ - "\u10d7\u0003\u000f\u0007\u0000\u10d7\u10d8\u0003\u0007\u0003\u0000\u10d8"+ - "\u10d9\u0003\r\u0006\u0000\u10d9\u0270\u0001\u0000\u0000\u0000\u10da\u10db"+ - "\u0003\u0017\u000b\u0000\u10db\u10dc\u0003!\u0010\u0000\u10dc\u10dd\u0003"+ - "-\u0016\u0000\u10dd\u0272\u0001\u0000\u0000\u0000\u10de\u10df\u0003\u0017"+ - "\u000b\u0000\u10df\u10e0\u0003!\u0010\u0000\u10e0\u10e1\u0003-\u0016\u0000"+ - "\u10e1\u10e2\u0003\u000f\u0007\u0000\u10e2\u10e3\u0003\u0013\t\u0000\u10e3"+ - "\u10e4\u0003\u000f\u0007\u0000\u10e4\u10e5\u0003)\u0014\u0000\u10e5\u0274"+ - "\u0001\u0000\u0000\u0000\u10e6\u10e7\u0003\u0017\u000b\u0000\u10e7\u10e8"+ - "\u0003!\u0010\u0000\u10e8\u10e9\u0003-\u0016\u0000\u10e9\u10ea\u0003\u000f"+ - "\u0007\u0000\u10ea\u10eb\u0003)\u0014\u0000\u10eb\u10ec\u0003+\u0015\u0000"+ - "\u10ec\u10ed\u0003\u000f\u0007\u0000\u10ed\u10ee\u0003\u000b\u0005\u0000"+ - "\u10ee\u10ef\u0003-\u0016\u0000\u10ef\u0276\u0001\u0000\u0000\u0000\u10f0"+ - "\u10f1\u0003\u0017\u000b\u0000\u10f1\u10f2\u0003!\u0010\u0000\u10f2\u10f3"+ - "\u0003-\u0016\u0000\u10f3\u10f4\u0003\u000f\u0007\u0000\u10f4\u10f5\u0003"+ - ")\u0014\u0000\u10f5\u10f6\u0003+\u0015\u0000\u10f6\u10f7\u0003\u000f\u0007"+ - "\u0000\u10f7\u10f8\u0003\u000b\u0005\u0000\u10f8\u10f9\u0003-\u0016\u0000"+ - "\u10f9\u10fa\u0003\u0017\u000b\u0000\u10fa\u10fb\u0003#\u0011\u0000\u10fb"+ - "\u10fc\u0003!\u0010\u0000\u10fc\u0278\u0001\u0000\u0000\u0000\u10fd\u10fe"+ - "\u0003\u0017\u000b\u0000\u10fe\u10ff\u0003!\u0010\u0000\u10ff\u1100\u0003"+ - "-\u0016\u0000\u1100\u1101\u0003\u000f\u0007\u0000\u1101\u1102\u0003)\u0014"+ - "\u0000\u1102\u1103\u00031\u0018\u0000\u1103\u1104\u0003\u0007\u0003\u0000"+ - "\u1104\u1105\u0003\u001d\u000e\u0000\u1105\u027a\u0001\u0000\u0000\u0000"+ - "\u1106\u1107\u0003\u0017\u000b\u0000\u1107\u1108\u0003!\u0010\u0000\u1108"+ - "\u1109\u0003-\u0016\u0000\u1109\u110a\u0003#\u0011\u0000\u110a\u027c\u0001"+ - "\u0000\u0000\u0000\u110b\u110c\u0003\u0017\u000b\u0000\u110c\u110d\u0003"+ - "!\u0010\u0000\u110d\u110e\u00031\u0018\u0000\u110e\u110f\u0003#\u0011"+ - "\u0000\u110f\u1110\u0003\u001b\r\u0000\u1110\u1111\u0003\u000f\u0007\u0000"+ - "\u1111\u1112\u0003)\u0014\u0000\u1112\u027e\u0001\u0000\u0000\u0000\u1113"+ - "\u1114\u0003\u0017\u000b\u0000\u1114\u1115\u0003+\u0015\u0000\u1115\u0280"+ - "\u0001\u0000\u0000\u0000\u1116\u1117\u0003\u0017\u000b\u0000\u1117\u1118"+ - "\u0003+\u0015\u0000\u1118\u1119\u0003#\u0011\u0000\u1119\u111a\u0003\u001d"+ - "\u000e\u0000\u111a\u111b\u0003\u0007\u0003\u0000\u111b\u111c\u0003-\u0016"+ - "\u0000\u111c\u111d\u0003\u0017\u000b\u0000\u111d\u111e\u0003#\u0011\u0000"+ - "\u111e\u111f\u0003!\u0010\u0000\u111f\u0282\u0001\u0000\u0000\u0000\u1120"+ - "\u1121\u0003\u0017\u000b\u0000\u1121\u1122\u0003-\u0016\u0000\u1122\u1123"+ - "\u0003\u000f\u0007\u0000\u1123\u1124\u0003)\u0014\u0000\u1124\u1125\u0003"+ - "\u0007\u0003\u0000\u1125\u1126\u0003-\u0016\u0000\u1126\u1127\u0003\u000f"+ - "\u0007\u0000\u1127\u0284\u0001\u0000\u0000\u0000\u1128\u1129\u0003\u0019"+ - "\f\u0000\u1129\u112a\u0003#\u0011\u0000\u112a\u112b\u0003\u0017\u000b"+ - "\u0000\u112b\u112c\u0003!\u0010\u0000\u112c\u0286\u0001\u0000\u0000\u0000"+ - "\u112d\u112e\u0003\u001b\r\u0000\u112e\u0288\u0001\u0000\u0000\u0000\u112f"+ - "\u1130\u0003\u001b\r\u0000\u1130\u1131\u0003\u000f\u0007\u0000\u1131\u1132"+ - "\u00037\u001b\u0000\u1132\u028a\u0001\u0000\u0000\u0000\u1133\u1134\u0003"+ - "\u001b\r\u0000\u1134\u1135\u0003\u000f\u0007\u0000\u1135\u1136\u00037"+ - "\u001b\u0000\u1136\u1137\u0005_\u0000\u0000\u1137\u1138\u0003\u001f\u000f"+ - "\u0000\u1138\u1139\u0003\u000f\u0007\u0000\u1139\u113a\u0003\u001f\u000f"+ - "\u0000\u113a\u113b\u0003\t\u0004\u0000\u113b\u113c\u0003\u000f\u0007\u0000"+ - "\u113c\u113d\u0003)\u0014\u0000\u113d\u028c\u0001\u0000\u0000\u0000\u113e"+ - "\u113f\u0003\u001b\r\u0000\u113f\u1140\u0003\u000f\u0007\u0000\u1140\u1141"+ - "\u00037\u001b\u0000\u1141\u1142\u0005_\u0000\u0000\u1142\u1143\u0003-"+ - "\u0016\u0000\u1143\u1144\u00037\u001b\u0000\u1144\u1145\u0003%\u0012\u0000"+ - "\u1145\u1146\u0003\u000f\u0007\u0000\u1146\u028e\u0001\u0000\u0000\u0000"+ - "\u1147\u1148\u0003\u001d\u000e\u0000\u1148\u1149\u0003\u0007\u0003\u0000"+ - "\u1149\u114a\u0003\t\u0004\u0000\u114a\u114b\u0003\u000f\u0007\u0000\u114b"+ - "\u114c\u0003\u001d\u000e\u0000\u114c\u0290\u0001\u0000\u0000\u0000\u114d"+ - "\u114e\u0003\u001d\u000e\u0000\u114e\u114f\u0003\u0007\u0003\u0000\u114f"+ - "\u1150\u0003!\u0010\u0000\u1150\u1151\u0003\u000b\u0005\u0000\u1151\u1152"+ - "\u0003#\u0011\u0000\u1152\u1153\u0003\u001f\u000f\u0000\u1153\u1154\u0003"+ - "%\u0012\u0000\u1154\u1155\u0003\u0017\u000b\u0000\u1155\u1156\u0003\u001d"+ - "\u000e\u0000\u1156\u1157\u0003\u000f\u0007\u0000\u1157\u1158\u0003)\u0014"+ - "\u0000\u1158\u0292\u0001\u0000\u0000\u0000\u1159\u115a\u0003\u001d\u000e"+ - "\u0000\u115a\u115b\u0003\u0007\u0003\u0000\u115b\u115c\u0003!\u0010\u0000"+ - "\u115c\u115d\u0003\u0013\t\u0000\u115d\u115e\u0003/\u0017\u0000\u115e"+ - "\u115f\u0003\u0007\u0003\u0000\u115f\u1160\u0003\u0013\t\u0000\u1160\u1161"+ - "\u0003\u000f\u0007\u0000\u1161\u0294\u0001\u0000\u0000\u0000\u1162\u1163"+ - "\u0003\u001d\u000e\u0000\u1163\u1164\u0003\u0007\u0003\u0000\u1164\u1165"+ - "\u0003)\u0014\u0000\u1165\u1166\u0003\u0013\t\u0000\u1166\u1167\u0003"+ - "\u000f\u0007\u0000\u1167\u0296\u0001\u0000\u0000\u0000\u1168\u1169\u0003"+ - "\u001d\u000e\u0000\u1169\u116a\u0003\u0007\u0003\u0000\u116a\u116b\u0003"+ - "+\u0015\u0000\u116b\u116c\u0003-\u0016\u0000\u116c\u0298\u0001\u0000\u0000"+ - "\u0000\u116d\u116e\u0003\u001d\u000e\u0000\u116e\u116f\u0003\u0007\u0003"+ - "\u0000\u116f\u1170\u0003-\u0016\u0000\u1170\u1171\u0003\u000f\u0007\u0000"+ - "\u1171\u1172\u0003)\u0014\u0000\u1172\u1173\u0003\u0007\u0003\u0000\u1173"+ - "\u1174\u0003\u001d\u000e\u0000\u1174\u029a\u0001\u0000\u0000\u0000\u1175"+ - "\u1176\u0003\u001d\u000e\u0000\u1176\u1177\u0003\u000f\u0007\u0000\u1177"+ - "\u1178\u0003\u0007\u0003\u0000\u1178\u1179\u0003\r\u0006\u0000\u1179\u117a"+ - "\u0003\u0017\u000b\u0000\u117a\u117b\u0003!\u0010\u0000\u117b\u117c\u0003"+ - "\u0013\t\u0000\u117c\u029c\u0001\u0000\u0000\u0000\u117d\u117e\u0003\u001d"+ - "\u000e\u0000\u117e\u117f\u0003\u000f\u0007\u0000\u117f\u1180\u0003\u0007"+ - "\u0003\u0000\u1180\u1181\u0003+\u0015\u0000\u1181\u1182\u0003-\u0016\u0000"+ - "\u1182\u029e\u0001\u0000\u0000\u0000\u1183\u1184\u0003\u001d\u000e\u0000"+ - "\u1184\u1185\u0003\u000f\u0007\u0000\u1185\u1186\u0003\u0011\b\u0000\u1186"+ - "\u1187\u0003-\u0016\u0000\u1187\u02a0\u0001\u0000\u0000\u0000\u1188\u1189"+ - "\u0003\u001d\u000e\u0000\u1189\u118a\u0003\u000f\u0007\u0000\u118a\u118b"+ - "\u0003!\u0010\u0000\u118b\u118c\u0003\u0013\t\u0000\u118c\u118d\u0003"+ - "-\u0016\u0000\u118d\u118e\u0003\u0015\n\u0000\u118e\u02a2\u0001\u0000"+ - "\u0000\u0000\u118f\u1190\u0003\u001d\u000e\u0000\u1190\u1191\u0003\u000f"+ - "\u0007\u0000\u1191\u1192\u0003+\u0015\u0000\u1192\u1193\u0003+\u0015\u0000"+ - "\u1193\u02a4\u0001\u0000\u0000\u0000\u1194\u1195\u0003\u001d\u000e\u0000"+ - "\u1195\u1196\u0003\u000f\u0007\u0000\u1196\u1197\u00031\u0018\u0000\u1197"+ - "\u1198\u0003\u000f\u0007\u0000\u1198\u1199\u0003\u001d\u000e\u0000\u1199"+ - "\u02a6\u0001\u0000\u0000\u0000\u119a\u119b\u0003\u001d\u000e\u0000\u119b"+ - "\u119c\u0003\u0017\u000b\u0000\u119c\u119d\u0003\u001b\r\u0000\u119d\u119e"+ - "\u0003\u000f\u0007\u0000\u119e\u02a8\u0001\u0000\u0000\u0000\u119f\u11a0"+ - "\u0003\u001d\u000e\u0000\u11a0\u11a1\u0003\u0017\u000b\u0000\u11a1\u11a2"+ - "\u0003\u001f\u000f\u0000\u11a2\u11a3\u0003\u0017\u000b\u0000\u11a3\u11a4"+ - "\u0003-\u0016\u0000\u11a4\u02aa\u0001\u0000\u0000\u0000\u11a5\u11a6\u0003"+ - "\u001d\u000e\u0000\u11a6\u11a7\u0003\u0017\u000b\u0000\u11a7\u11a8\u0003"+ - "+\u0015\u0000\u11a8\u11a9\u0003-\u0016\u0000\u11a9\u11aa\u0003\u000f\u0007"+ - "\u0000\u11aa\u11ab\u0003!\u0010\u0000\u11ab\u02ac\u0001\u0000\u0000\u0000"+ - "\u11ac\u11ad\u0003\u001d\u000e\u0000\u11ad\u11ae\u0003!\u0010\u0000\u11ae"+ - "\u02ae\u0001\u0000\u0000\u0000\u11af\u11b0\u0003\u001d\u000e\u0000\u11b0"+ - "\u11b1\u0003#\u0011\u0000\u11b1\u11b2\u0003\u0007\u0003\u0000\u11b2\u11b3"+ - "\u0003\r\u0006\u0000\u11b3\u02b0\u0001\u0000\u0000\u0000\u11b4\u11b5\u0003"+ - "\u001d\u000e\u0000\u11b5\u11b6\u0003#\u0011\u0000\u11b6\u11b7\u0003\u000b"+ - "\u0005\u0000\u11b7\u11b8\u0003\u0007\u0003\u0000\u11b8\u11b9\u0003\u001d"+ - "\u000e\u0000\u11b9\u02b2\u0001\u0000\u0000\u0000\u11ba\u11bb\u0003\u001d"+ - "\u000e\u0000\u11bb\u11bc\u0003#\u0011\u0000\u11bc\u11bd\u0003\u000b\u0005"+ - "\u0000\u11bd\u11be\u0003\u0007\u0003\u0000\u11be\u11bf\u0003\u001d\u000e"+ - "\u0000\u11bf\u11c0\u0003-\u0016\u0000\u11c0\u11c1\u0003\u0017\u000b\u0000"+ - "\u11c1\u11c2\u0003\u001f\u000f\u0000\u11c2\u11c3\u0003\u000f\u0007\u0000"+ - "\u11c3\u02b4\u0001\u0000\u0000\u0000\u11c4\u11c5\u0003\u001d\u000e\u0000"+ - "\u11c5\u11c6\u0003#\u0011\u0000\u11c6\u11c7\u0003\u000b\u0005\u0000\u11c7"+ - "\u11c8\u0003\u0007\u0003\u0000\u11c8\u11c9\u0003\u001d\u000e\u0000\u11c9"+ - "\u11ca\u0003-\u0016\u0000\u11ca\u11cb\u0003\u0017\u000b\u0000\u11cb\u11cc"+ - "\u0003\u001f\u000f\u0000\u11cc\u11cd\u0003\u000f\u0007\u0000\u11cd\u11ce"+ - "\u0003+\u0015\u0000\u11ce\u11cf\u0003-\u0016\u0000\u11cf\u11d0\u0003\u0007"+ - "\u0003\u0000\u11d0\u11d1\u0003\u001f\u000f\u0000\u11d1\u11d2\u0003%\u0012"+ - "\u0000\u11d2\u02b6\u0001\u0000\u0000\u0000\u11d3\u11d4\u0003\u001d\u000e"+ - "\u0000\u11d4\u11d5\u0003#\u0011\u0000\u11d5\u11d6\u0003\u000b\u0005\u0000"+ - "\u11d6\u11d7\u0003\u0007\u0003\u0000\u11d7\u11d8\u0003-\u0016\u0000\u11d8"+ - "\u11d9\u0003\u0017\u000b\u0000\u11d9\u11da\u0003#\u0011\u0000\u11da\u11db"+ - "\u0003!\u0010\u0000\u11db\u02b8\u0001\u0000\u0000\u0000\u11dc\u11dd\u0003"+ - "\u001d\u000e\u0000\u11dd\u11de\u0003#\u0011\u0000\u11de\u11df\u0003\u000b"+ - "\u0005\u0000\u11df\u11e0\u0003\u0007\u0003\u0000\u11e0\u11e1\u0003-\u0016"+ - "\u0000\u11e1\u11e2\u0003#\u0011\u0000\u11e2\u11e3\u0003)\u0014\u0000\u11e3"+ - "\u02ba\u0001\u0000\u0000\u0000\u11e4\u11e5\u0003\u001d\u000e\u0000\u11e5"+ - "\u11e6\u0003#\u0011\u0000\u11e6\u11e7\u0003\u000b\u0005\u0000\u11e7\u11e8"+ - "\u0003\u001b\r\u0000\u11e8\u02bc\u0001\u0000\u0000\u0000\u11e9\u11ea\u0003"+ - "\u001d\u000e\u0000\u11ea\u11eb\u0003#\u0011\u0000\u11eb\u11ec\u0003\u000b"+ - "\u0005\u0000\u11ec\u11ed\u0003\u001b\r\u0000\u11ed\u11ee\u0003\u000f\u0007"+ - "\u0000\u11ee\u11ef\u0003\r\u0006\u0000\u11ef\u02be\u0001\u0000\u0000\u0000"+ - "\u11f0\u11f1\u0003\u001d\u000e\u0000\u11f1\u11f2\u0003#\u0011\u0000\u11f2"+ - "\u11f3\u00033\u0019\u0000\u11f3\u11f4\u0003\u000f\u0007\u0000\u11f4\u11f5"+ - "\u0003)\u0014\u0000\u11f5\u02c0\u0001\u0000\u0000\u0000\u11f6\u11f7\u0003"+ - "\u001f\u000f\u0000\u11f7\u02c2\u0001\u0000\u0000\u0000\u11f8\u11f9\u0003"+ - "\u001f\u000f\u0000\u11f9\u11fa\u0003\u0007\u0003\u0000\u11fa\u11fb\u0003"+ - "\u0017\u000b\u0000\u11fb\u11fc\u0003!\u0010\u0000\u11fc\u02c4\u0001\u0000"+ - "\u0000\u0000\u11fd\u11fe\u0003\u001f\u000f\u0000\u11fe\u11ff\u0003\u0007"+ - "\u0003\u0000\u11ff\u1200\u0003%\u0012\u0000\u1200\u02c6\u0001\u0000\u0000"+ - "\u0000\u1201\u1202\u0003\u001f\u000f\u0000\u1202\u1203\u0003\u0007\u0003"+ - "\u0000\u1203\u1204\u0003%\u0012\u0000\u1204\u1205\u0003%\u0012\u0000\u1205"+ - "\u1206\u0003\u0017\u000b\u0000\u1206\u1207\u0003!\u0010\u0000\u1207\u1208"+ - "\u0003\u0013\t\u0000\u1208\u02c8\u0001\u0000\u0000\u0000\u1209\u120a\u0003"+ - "\u001f\u000f\u0000\u120a\u120b\u0003\u0007\u0003\u0000\u120b\u120c\u0003"+ - "-\u0016\u0000\u120c\u120d\u0003\u000b\u0005\u0000\u120d\u120e\u0003\u0015"+ - "\n\u0000\u120e\u02ca\u0001\u0000\u0000\u0000\u120f\u1210\u0003\u001f\u000f"+ - "\u0000\u1210\u1211\u0003\u0007\u0003\u0000\u1211\u1212\u0003-\u0016\u0000"+ - "\u1212\u1213\u0003\u000b\u0005\u0000\u1213\u1214\u0003\u0015\n\u0000\u1214"+ - "\u1215\u0005_\u0000\u0000\u1215\u1216\u0003+\u0015\u0000\u1216\u1217\u0003"+ - "\u0017\u000b\u0000\u1217\u1218\u0003\u001f\u000f\u0000\u1218\u1219\u0003"+ - "%\u0012\u0000\u1219\u121a\u0003\u001d\u000e\u0000\u121a\u121b\u0003\u000f"+ - "\u0007\u0000\u121b\u02cc\u0001\u0000\u0000\u0000\u121c\u121d\u0003\u001f"+ - "\u000f\u0000\u121d\u121e\u0003\u0007\u0003\u0000\u121e\u121f\u0003-\u0016"+ - "\u0000\u121f\u1220\u0003\u000b\u0005\u0000\u1220\u1221\u0003\u0015\n\u0000"+ - "\u1221\u1222\u0003\u000f\u0007\u0000\u1222\u1223\u0003\r\u0006\u0000\u1223"+ - "\u02ce\u0001\u0000\u0000\u0000\u1224\u1225\u0003\u001f\u000f\u0000\u1225"+ - "\u1226\u0003\u0007\u0003\u0000\u1226\u1227\u00035\u001a\u0000\u1227\u02d0"+ - "\u0001\u0000\u0000\u0000\u1228\u1229\u0003\u001f\u000f\u0000\u1229\u122a"+ - "\u0003\u0007\u0003\u0000\u122a\u122b\u00035\u001a\u0000\u122b\u122c\u0003"+ - "1\u0018\u0000\u122c\u122d\u0003\u0007\u0003\u0000\u122d\u122e\u0003\u001d"+ - "\u000e\u0000\u122e\u122f\u0003/\u0017\u0000\u122f\u1230\u0003\u000f\u0007"+ - "\u0000\u1230\u02d2\u0001\u0000\u0000\u0000\u1231\u1232\u0003\u001f\u000f"+ - "\u0000\u1232\u1233\u0003\u000f\u0007\u0000\u1233\u1234\u0003\u001f\u000f"+ - "\u0000\u1234\u1235\u0003\t\u0004\u0000\u1235\u1236\u0003\u000f\u0007\u0000"+ - "\u1236\u1237\u0003)\u0014\u0000\u1237\u02d4\u0001\u0000\u0000\u0000\u1238"+ - "\u1239\u0003\u001f\u000f\u0000\u1239\u123a\u0003\u000f\u0007\u0000\u123a"+ - "\u123b\u0003)\u0014\u0000\u123b\u123c\u0003\u0013\t\u0000\u123c\u123d"+ - "\u0003\u000f\u0007\u0000\u123d\u02d6\u0001\u0000\u0000\u0000\u123e\u123f"+ - "\u0003\u001f\u000f\u0000\u123f\u1240\u0003\u000f\u0007\u0000\u1240\u1241"+ - "\u0003+\u0015\u0000\u1241\u1242\u0003+\u0015\u0000\u1242\u1243\u0003\u0007"+ - "\u0003\u0000\u1243\u1244\u0003\u0013\t\u0000\u1244\u1245\u0003\u000f\u0007"+ - "\u0000\u1245\u1246\u0005_\u0000\u0000\u1246\u1247\u0003\u001d\u000e\u0000"+ - "\u1247\u1248\u0003\u000f\u0007\u0000\u1248\u1249\u0003!\u0010\u0000\u1249"+ - "\u124a\u0003\u0013\t\u0000\u124a\u124b\u0003-\u0016\u0000\u124b\u124c"+ - "\u0003\u0015\n\u0000\u124c\u02d8\u0001\u0000\u0000\u0000\u124d\u124e\u0003"+ - "\u001f\u000f\u0000\u124e\u124f\u0003\u000f\u0007\u0000\u124f\u1250\u0003"+ - "+\u0015\u0000\u1250\u1251\u0003+\u0015\u0000\u1251\u1252\u0003\u0007\u0003"+ - "\u0000\u1252\u1253\u0003\u0013\t\u0000\u1253\u1254\u0003\u000f\u0007\u0000"+ - "\u1254\u1255\u0005_\u0000\u0000\u1255\u1256\u0003#\u0011\u0000\u1256\u1257"+ - "\u0003\u000b\u0005\u0000\u1257\u1258\u0003-\u0016\u0000\u1258\u1259\u0003"+ - "\u000f\u0007\u0000\u1259\u125a\u0003-\u0016\u0000\u125a\u125b\u0005_\u0000"+ - "\u0000\u125b\u125c\u0003\u001d\u000e\u0000\u125c\u125d\u0003\u000f\u0007"+ - "\u0000\u125d\u125e\u0003!\u0010\u0000\u125e\u125f\u0003\u0013\t\u0000"+ - "\u125f\u1260\u0003-\u0016\u0000\u1260\u1261\u0003\u0015\n\u0000\u1261"+ - "\u02da\u0001\u0000\u0000\u0000\u1262\u1263\u0003\u001f\u000f\u0000\u1263"+ - "\u1264\u0003\u000f\u0007\u0000\u1264\u1265\u0003+\u0015\u0000\u1265\u1266"+ - "\u0003+\u0015\u0000\u1266\u1267\u0003\u0007\u0003\u0000\u1267\u1268\u0003"+ - "\u0013\t\u0000\u1268\u1269\u0003\u000f\u0007\u0000\u1269\u126a\u0005_"+ - "\u0000\u0000\u126a\u126b\u0003-\u0016\u0000\u126b\u126c\u0003\u000f\u0007"+ - "\u0000\u126c\u126d\u00035\u001a\u0000\u126d\u126e\u0003-\u0016\u0000\u126e"+ - "\u02dc\u0001\u0000\u0000\u0000\u126f\u1270\u0003\u001f\u000f\u0000\u1270"+ - "\u1271\u0003\u000f\u0007\u0000\u1271\u1272\u0003-\u0016\u0000\u1272\u1273"+ - "\u0003\u0015\n\u0000\u1273\u1274\u0003#\u0011\u0000\u1274\u1275\u0003"+ - "\r\u0006\u0000\u1275\u02de\u0001\u0000\u0000\u0000\u1276\u1277\u0003\u001f"+ - "\u000f\u0000\u1277\u1278\u0003\u0017\u000b\u0000\u1278\u1279\u0003!\u0010"+ - "\u0000\u1279\u02e0\u0001\u0000\u0000\u0000\u127a\u127b\u0003\u001f\u000f"+ - "\u0000\u127b\u127c\u0003\u0017\u000b\u0000\u127c\u127d\u0003!\u0010\u0000"+ - "\u127d\u127e\u0003/\u0017\u0000\u127e\u127f\u0003-\u0016\u0000\u127f\u1280"+ - "\u0003\u000f\u0007\u0000\u1280\u02e2\u0001\u0000\u0000\u0000\u1281\u1282"+ - "\u0003\u001f\u000f\u0000\u1282\u1283\u0003\u0017\u000b\u0000\u1283\u1284"+ - "\u0003!\u0010\u0000\u1284\u1285\u00031\u0018\u0000\u1285\u1286\u0003\u0007"+ - "\u0003\u0000\u1286\u1287\u0003\u001d\u000e\u0000\u1287\u1288\u0003/\u0017"+ - "\u0000\u1288\u1289\u0003\u000f\u0007\u0000\u1289\u02e4\u0001\u0000\u0000"+ - "\u0000\u128a\u128b\u0003\u001f\u000f\u0000\u128b\u128c\u0003#\u0011\u0000"+ - "\u128c\u128d\u0003\r\u0006\u0000\u128d\u02e6\u0001\u0000\u0000\u0000\u128e"+ - "\u128f\u0003\u001f\u000f\u0000\u128f\u1290\u0003#\u0011\u0000\u1290\u1291"+ - "\u0003\r\u0006\u0000\u1291\u1292\u0003\u000f\u0007\u0000\u1292\u02e8\u0001"+ - "\u0000\u0000\u0000\u1293\u1294\u0003\u001f\u000f\u0000\u1294\u1295\u0003"+ - "#\u0011\u0000\u1295\u1296\u0003\r\u0006\u0000\u1296\u1297\u0003\u0017"+ - "\u000b\u0000\u1297\u1298\u0003\u0011\b\u0000\u1298\u1299\u0003\u0017\u000b"+ - "\u0000\u1299\u129a\u0003\u000f\u0007\u0000\u129a\u129b\u0003+\u0015\u0000"+ - "\u129b\u02ea\u0001\u0000\u0000\u0000\u129c\u129d\u0003\u001f\u000f\u0000"+ - "\u129d\u129e\u0003#\u0011\u0000\u129e\u129f\u0003\r\u0006\u0000\u129f"+ - "\u12a0\u0003\u0017\u000b\u0000\u12a0\u12a1\u0003\u0011\b\u0000\u12a1\u12a2"+ - "\u00037\u001b\u0000\u12a2\u02ec\u0001\u0000\u0000\u0000\u12a3\u12a4\u0003"+ - "\u001f\u000f\u0000\u12a4\u12a5\u0003#\u0011\u0000\u12a5\u12a6\u0003\r"+ - "\u0006\u0000\u12a6\u12a7\u0003/\u0017\u0000\u12a7\u12a8\u0003\u001d\u000e"+ - "\u0000\u12a8\u12a9\u0003\u000f\u0007\u0000\u12a9\u02ee\u0001\u0000\u0000"+ - "\u0000\u12aa\u12ab\u0003\u001f\u000f\u0000\u12ab\u12ac\u0003#\u0011\u0000"+ - "\u12ac\u12ad\u0003!\u0010\u0000\u12ad\u12ae\u0003-\u0016\u0000\u12ae\u12af"+ - "\u0003\u0015\n\u0000\u12af\u02f0\u0001\u0000\u0000\u0000\u12b0\u12b1\u0003"+ - "\u001f\u000f\u0000\u12b1\u12b2\u0003#\u0011\u0000\u12b2\u12b3\u0003)\u0014"+ - "\u0000\u12b3\u12b4\u0003\u000f\u0007\u0000\u12b4\u02f2\u0001\u0000\u0000"+ - "\u0000\u12b5\u12b6\u0003\u001f\u000f\u0000\u12b6\u12b7\u0003#\u0011\u0000"+ - "\u12b7\u12b8\u00031\u0018\u0000\u12b8\u12b9\u0003\u000f\u0007\u0000\u12b9"+ - "\u02f4\u0001\u0000\u0000\u0000\u12ba\u12bb\u0003\u001f\u000f\u0000\u12bb"+ - "\u12bc\u0003/\u0017\u0000\u12bc\u12bd\u0003\u001d\u000e\u0000\u12bd\u12be"+ - "\u0003-\u0016\u0000\u12be\u12bf\u0003\u0017\u000b\u0000\u12bf\u12c0\u0003"+ - "+\u0015\u0000\u12c0\u12c1\u0003\u000f\u0007\u0000\u12c1\u12c2\u0003-\u0016"+ - "\u0000\u12c2\u02f6\u0001\u0000\u0000\u0000\u12c3\u12c4\u0003\u001f\u000f"+ - "\u0000\u12c4\u12c5\u0003/\u0017\u0000\u12c5\u12c6\u0003\u001f\u000f\u0000"+ - "\u12c6\u12c7\u0003%\u0012\u0000\u12c7\u12c8\u0003+\u0015\u0000\u12c8\u02f8"+ - "\u0001\u0000\u0000\u0000\u12c9\u12ca\u0003!\u0010\u0000\u12ca\u12cb\u0003"+ - "\u0007\u0003\u0000\u12cb\u12cc\u0003\u001f\u000f\u0000\u12cc\u12cd\u0003"+ - "\u000f\u0007\u0000\u12cd\u02fa\u0001\u0000\u0000\u0000\u12ce\u12cf\u0003"+ - "!\u0010\u0000\u12cf\u12d0\u0003\u0007\u0003\u0000\u12d0\u12d1\u0003\u001f"+ - "\u000f\u0000\u12d1\u12d2\u0003\u000f\u0007\u0000\u12d2\u12d3\u0003+\u0015"+ - "\u0000\u12d3\u02fc\u0001\u0000\u0000\u0000\u12d4\u12d5\u0003!\u0010\u0000"+ - "\u12d5\u12d6\u0003\u0007\u0003\u0000\u12d6\u12d7\u0003-\u0016\u0000\u12d7"+ - "\u12d8\u0003\u0017\u000b\u0000\u12d8\u12d9\u0003#\u0011\u0000\u12d9\u12da"+ - "\u0003!\u0010\u0000\u12da\u12db\u0003\u0007\u0003\u0000\u12db\u12dc\u0003"+ - "\u001d\u000e\u0000\u12dc\u02fe\u0001\u0000\u0000\u0000\u12dd\u12de\u0003"+ - "!\u0010\u0000\u12de\u12df\u0003\u0007\u0003\u0000\u12df\u12e0\u0003-\u0016"+ - "\u0000\u12e0\u12e1\u0003/\u0017\u0000\u12e1\u12e2\u0003)\u0014\u0000\u12e2"+ - "\u12e3\u0003\u0007\u0003\u0000\u12e3\u12e4\u0003\u001d\u000e\u0000\u12e4"+ - "\u0300\u0001\u0000\u0000\u0000\u12e5\u12e6\u0003!\u0010\u0000\u12e6\u12e7"+ - "\u0003\u000b\u0005\u0000\u12e7\u12e8\u0003\u0015\n\u0000\u12e8\u12e9\u0003"+ - "\u0007\u0003\u0000\u12e9\u12ea\u0003)\u0014\u0000\u12ea\u0302\u0001\u0000"+ - "\u0000\u0000\u12eb\u12ec\u0003!\u0010\u0000\u12ec\u12ed\u0003\u000b\u0005"+ - "\u0000\u12ed\u12ee\u0003\u001d\u000e\u0000\u12ee\u12ef\u0003#\u0011\u0000"+ - "\u12ef\u12f0\u0003\t\u0004\u0000\u12f0\u0304\u0001\u0000\u0000\u0000\u12f1"+ - "\u12f2\u0003!\u0010\u0000\u12f2\u12f3\u0003\u000f\u0007\u0000\u12f3\u12f4"+ - "\u0003+\u0015\u0000\u12f4\u12f5\u0003-\u0016\u0000\u12f5\u12f6\u0003\u0017"+ - "\u000b\u0000\u12f6\u12f7\u0003!\u0010\u0000\u12f7\u12f8\u0003\u0013\t"+ - "\u0000\u12f8\u0306\u0001\u0000\u0000\u0000\u12f9\u12fa\u0003!\u0010\u0000"+ - "\u12fa\u12fb\u0003\u000f\u0007\u0000\u12fb\u12fc\u00033\u0019\u0000\u12fc"+ - "\u0308\u0001\u0000\u0000\u0000\u12fd\u12fe\u0003!\u0010\u0000\u12fe\u12ff"+ - "\u0003\u000f\u0007\u0000\u12ff\u1300\u00035\u001a\u0000\u1300\u1301\u0003"+ - "-\u0016\u0000\u1301\u030a\u0001\u0000\u0000\u0000\u1302\u1303\u0003!\u0010"+ - "\u0000\u1303\u1304\u0003#\u0011\u0000\u1304\u030c\u0001\u0000\u0000\u0000"+ - "\u1305\u1306\u0003!\u0010\u0000\u1306\u1307\u0003#\u0011\u0000\u1307\u1308"+ - "\u0003\u000b\u0005\u0000\u1308\u1309\u0003)\u0014\u0000\u1309\u130a\u0003"+ - "\u000f\u0007\u0000\u130a\u130b\u0003\u0007\u0003\u0000\u130b\u130c\u0003"+ - "-\u0016\u0000\u130c\u130d\u0003\u000f\u0007\u0000\u130d\u130e\u0003\r"+ - "\u0006\u0000\u130e\u130f\u0003\t\u0004\u0000\u130f\u030e\u0001\u0000\u0000"+ - "\u0000\u1310\u1311\u0003!\u0010\u0000\u1311\u1312\u0003#\u0011\u0000\u1312"+ - "\u1313\u0003\u000b\u0005\u0000\u1313\u1314\u0003)\u0014\u0000\u1314\u1315"+ - "\u0003\u000f\u0007\u0000\u1315\u1316\u0003\u0007\u0003\u0000\u1316\u1317"+ - "\u0003-\u0016\u0000\u1317\u1318\u0003\u000f\u0007\u0000\u1318\u1319\u0003"+ - "/\u0017\u0000\u1319\u131a\u0003+\u0015\u0000\u131a\u131b\u0003\u000f\u0007"+ - "\u0000\u131b\u131c\u0003)\u0014\u0000\u131c\u0310\u0001\u0000\u0000\u0000"+ - "\u131d\u131e\u0003!\u0010\u0000\u131e\u131f\u0003#\u0011\u0000\u131f\u1320"+ - "\u0003!\u0010\u0000\u1320\u1321\u0003\u000f\u0007\u0000\u1321\u0312\u0001"+ - "\u0000\u0000\u0000\u1322\u1323\u0003!\u0010\u0000\u1323\u1324\u0003#\u0011"+ - "\u0000\u1324\u1325\u0003)\u0014\u0000\u1325\u1326\u0003\u001f\u000f\u0000"+ - "\u1326\u1327\u0003\u0007\u0003\u0000\u1327\u1328\u0003\u001d\u000e\u0000"+ - "\u1328\u1329\u0003\u0017\u000b\u0000\u1329\u132a\u00039\u001c\u0000\u132a"+ - "\u132b\u0003\u000f\u0007\u0000\u132b\u0314\u0001\u0000\u0000\u0000\u132c"+ - "\u132d\u0003!\u0010\u0000\u132d\u132e\u0003#\u0011\u0000\u132e\u132f\u0003"+ - ")\u0014\u0000\u132f\u1330\u0003\u001f\u000f\u0000\u1330\u1331\u0003\u0007"+ - "\u0003\u0000\u1331\u1332\u0003\u001d\u000e\u0000\u1332\u1333\u0003\u0017"+ - "\u000b\u0000\u1333\u1334\u00039\u001c\u0000\u1334\u1335\u0003\u000f\u0007"+ - "\u0000\u1335\u1336\u0003\r\u0006\u0000\u1336\u0316\u0001\u0000\u0000\u0000"+ - "\u1337\u1338\u0003!\u0010\u0000\u1338\u1339\u0003#\u0011\u0000\u1339\u133a"+ - "\u0003-\u0016\u0000\u133a\u0318\u0001\u0000\u0000\u0000\u133b\u133c\u0003"+ - "!\u0010\u0000\u133c\u133d\u0003#\u0011\u0000\u133d\u133e\u0003-\u0016"+ - "\u0000\u133e\u133f\u0003\u0015\n\u0000\u133f\u1340\u0003\u0017\u000b\u0000"+ - "\u1340\u1341\u0003!\u0010\u0000\u1341\u1342\u0003\u0013\t\u0000\u1342"+ - "\u031a\u0001\u0000\u0000\u0000\u1343\u1344\u0003!\u0010\u0000\u1344\u1345"+ - "\u0003#\u0011\u0000\u1345\u1346\u0003-\u0016\u0000\u1346\u1347\u0003\u0017"+ - "\u000b\u0000\u1347\u1348\u0003\u0011\b\u0000\u1348\u1349\u00037\u001b"+ - "\u0000\u1349\u031c\u0001\u0000\u0000\u0000\u134a\u134b\u0003!\u0010\u0000"+ - "\u134b\u134c\u0003#\u0011\u0000\u134c\u134d\u0003-\u0016\u0000\u134d\u134e"+ - "\u0003!\u0010\u0000\u134e\u134f\u0003/\u0017\u0000\u134f\u1350\u0003\u001d"+ - "\u000e\u0000\u1350\u1351\u0003\u001d\u000e\u0000\u1351\u031e\u0001\u0000"+ - "\u0000\u0000\u1352\u1353\u0003!\u0010\u0000\u1353\u1354\u0003#\u0011\u0000"+ - "\u1354\u1355\u00033\u0019\u0000\u1355\u1356\u0003\u0007\u0003\u0000\u1356"+ - "\u1357\u0003\u0017\u000b\u0000\u1357\u1358\u0003-\u0016\u0000\u1358\u0320"+ - "\u0001\u0000\u0000\u0000\u1359\u135a\u0003!\u0010\u0000\u135a\u135b\u0003"+ - "/\u0017\u0000\u135b\u135c\u0003\u001d\u000e\u0000\u135c\u135d\u0003\u001d"+ - "\u000e\u0000\u135d\u0322\u0001\u0000\u0000\u0000\u135e\u135f\u0003!\u0010"+ - "\u0000\u135f\u1360\u0003/\u0017\u0000\u1360\u1361\u0003\u001d\u000e\u0000"+ - "\u1361\u1362\u0003\u001d\u000e\u0000\u1362\u1363\u0003\u0007\u0003\u0000"+ - "\u1363\u1364\u0003\t\u0004\u0000\u1364\u1365\u0003\u001d\u000e\u0000\u1365"+ - "\u1366\u0003\u000f\u0007\u0000\u1366\u0324\u0001\u0000\u0000\u0000\u1367"+ - "\u1368\u0003!\u0010\u0000\u1368\u1369\u0003/\u0017\u0000\u1369\u136a\u0003"+ - "\u001d\u000e\u0000\u136a\u136b\u0003\u001d\u000e\u0000\u136b\u136c\u0003"+ - "\u0017\u000b\u0000\u136c\u136d\u0003\u0011\b\u0000\u136d\u0326\u0001\u0000"+ - "\u0000\u0000\u136e\u136f\u0003!\u0010\u0000\u136f\u1370\u0003/\u0017\u0000"+ - "\u1370\u1371\u0003\u001d\u000e\u0000\u1371\u1372\u0003\u001d\u000e\u0000"+ - "\u1372\u1373\u0003+\u0015\u0000\u1373\u0328\u0001\u0000\u0000\u0000\u1374"+ - "\u1375\u0003!\u0010\u0000\u1375\u1376\u0003/\u0017\u0000\u1376\u1377\u0003"+ - "\u001f\u000f\u0000\u1377\u1378\u0003\t\u0004\u0000\u1378\u1379\u0003\u000f"+ - "\u0007\u0000\u1379\u137a\u0003)\u0014\u0000\u137a\u032a\u0001\u0000\u0000"+ - "\u0000\u137b\u137c\u0003!\u0010\u0000\u137c\u137d\u0003/\u0017\u0000\u137d"+ - "\u137e\u0003\u001f\u000f\u0000\u137e\u137f\u0003\u000f\u0007\u0000\u137f"+ - "\u1380\u0003)\u0014\u0000\u1380\u1381\u0003\u0017\u000b\u0000\u1381\u1382"+ - "\u0003\u000b\u0005\u0000\u1382\u032c\u0001\u0000\u0000\u0000\u1383\u1384"+ - "\u0003#\u0011\u0000\u1384\u1385\u0003\t\u0004\u0000\u1385\u1386\u0003"+ - "\u0019\f\u0000\u1386\u1387\u0003\u000f\u0007\u0000\u1387\u1388\u0003\u000b"+ - "\u0005\u0000\u1388\u1389\u0003-\u0016\u0000\u1389\u032e\u0001\u0000\u0000"+ - "\u0000\u138a\u138b\u0003#\u0011\u0000\u138b\u138c\u0003\u000b\u0005\u0000"+ - "\u138c\u138d\u0003-\u0016\u0000\u138d\u138e\u0003\u000f\u0007\u0000\u138e"+ - "\u138f\u0003-\u0016\u0000\u138f\u1390\u0005_\u0000\u0000\u1390\u1391\u0003"+ - "\u001d\u000e\u0000\u1391\u1392\u0003\u000f\u0007\u0000\u1392\u1393\u0003"+ - "!\u0010\u0000\u1393\u1394\u0003\u0013\t\u0000\u1394\u1395\u0003-\u0016"+ - "\u0000\u1395\u1396\u0003\u0015\n\u0000\u1396\u0330\u0001\u0000\u0000\u0000"+ - "\u1397\u1398\u0003#\u0011\u0000\u1398\u1399\u0003\u000b\u0005\u0000\u1399"+ - "\u139a\u0003-\u0016\u0000\u139a\u139b\u0003\u000f\u0007\u0000\u139b\u139c"+ - "\u0003-\u0016\u0000\u139c\u139d\u0003+\u0015\u0000\u139d\u0332\u0001\u0000"+ - "\u0000\u0000\u139e\u139f\u0003#\u0011\u0000\u139f\u13a0\u0003\u0011\b"+ - "\u0000\u13a0\u0334\u0001\u0000\u0000\u0000\u13a1\u13a2\u0003#\u0011\u0000"+ - "\u13a2\u13a3\u0003\u0011\b\u0000\u13a3\u13a4\u0003\u0011\b\u0000\u13a4"+ - "\u0336\u0001\u0000\u0000\u0000\u13a5\u13a6\u0003#\u0011\u0000\u13a6\u13a7"+ - "\u0003\u0011\b\u0000\u13a7\u13a8\u0003\u0011\b\u0000\u13a8\u13a9\u0003"+ - "+\u0015\u0000\u13a9\u13aa\u0003\u000f\u0007\u0000\u13aa\u13ab\u0003-\u0016"+ - "\u0000\u13ab\u0338\u0001\u0000\u0000\u0000\u13ac\u13ad\u0003#\u0011\u0000"+ - "\u13ad\u13ae\u0003\u0017\u000b\u0000\u13ae\u13af\u0003\r\u0006\u0000\u13af"+ - "\u13b0\u0003+\u0015\u0000\u13b0\u033a\u0001\u0000\u0000\u0000\u13b1\u13b2"+ - "\u0003#\u0011\u0000\u13b2\u13b3\u0003\u001d\u000e\u0000\u13b3\u13b4\u0003"+ - "\r\u0006\u0000\u13b4\u033c\u0001\u0000\u0000\u0000\u13b5\u13b6\u0003#"+ - "\u0011\u0000\u13b6\u13b7\u0003!\u0010\u0000\u13b7\u033e\u0001\u0000\u0000"+ - "\u0000\u13b8\u13b9\u0003#\u0011\u0000\u13b9\u13ba\u0003!\u0010\u0000\u13ba"+ - "\u13bb\u0003\u001d\u000e\u0000\u13bb\u13bc\u00037\u001b\u0000\u13bc\u0340"+ - "\u0001\u0000\u0000\u0000\u13bd\u13be\u0003#\u0011\u0000\u13be\u13bf\u0003"+ - "%\u0012\u0000\u13bf\u13c0\u0003\u000f\u0007\u0000\u13c0\u13c1\u0003!\u0010"+ - "\u0000\u13c1\u0342\u0001\u0000\u0000\u0000\u13c2\u13c3\u0003#\u0011\u0000"+ - "\u13c3\u13c4\u0003%\u0012\u0000\u13c4\u13c5\u0003\u000f\u0007\u0000\u13c5"+ - "\u13c6\u0003)\u0014\u0000\u13c6\u13c7\u0003\u0007\u0003\u0000\u13c7\u13c8"+ - "\u0003-\u0016\u0000\u13c8\u13c9\u0003\u0017\u000b\u0000\u13c9\u13ca\u0003"+ - "#\u0011\u0000\u13ca\u13cb\u0003!\u0010\u0000\u13cb\u0344\u0001\u0000\u0000"+ - "\u0000\u13cc\u13cd\u0003#\u0011\u0000\u13cd\u13ce\u0003%\u0012\u0000\u13ce"+ - "\u13cf\u0003\u000f\u0007\u0000\u13cf\u13d0\u0003)\u0014\u0000\u13d0\u13d1"+ - "\u0003\u0007\u0003\u0000\u13d1\u13d2\u0003-\u0016\u0000\u13d2\u13d3\u0003"+ - "#\u0011\u0000\u13d3\u13d4\u0003)\u0014\u0000\u13d4\u0346\u0001\u0000\u0000"+ - "\u0000\u13d5\u13d6\u0003#\u0011\u0000\u13d6\u13d7\u0003%\u0012\u0000\u13d7"+ - "\u13d8\u0003-\u0016\u0000\u13d8\u13d9\u0003\u0017\u000b\u0000\u13d9\u13da"+ - "\u0003#\u0011\u0000\u13da\u13db\u0003!\u0010\u0000\u13db\u0348\u0001\u0000"+ - "\u0000\u0000\u13dc\u13dd\u0003#\u0011\u0000\u13dd\u13de\u0003%\u0012\u0000"+ - "\u13de\u13df\u0003-\u0016\u0000\u13df\u13e0\u0003\u0017\u000b\u0000\u13e0"+ - "\u13e1\u0003#\u0011\u0000\u13e1\u13e2\u0003!\u0010\u0000\u13e2\u13e3\u0003"+ - "+\u0015\u0000\u13e3\u034a\u0001\u0000\u0000\u0000\u13e4\u13e5\u0003#\u0011"+ - "\u0000\u13e5\u13e6\u0003)\u0014\u0000\u13e6\u034c\u0001\u0000\u0000\u0000"+ - "\u13e7\u13e8\u0003#\u0011\u0000\u13e8\u13e9\u0003)\u0014\u0000\u13e9\u13ea"+ - "\u0003\r\u0006\u0000\u13ea\u13eb\u0003\u000f\u0007\u0000\u13eb\u13ec\u0003"+ - ")\u0014\u0000\u13ec\u034e\u0001\u0000\u0000\u0000\u13ed\u13ee\u0003#\u0011"+ - "\u0000\u13ee\u13ef\u0003)\u0014\u0000\u13ef\u13f0\u0003\r\u0006\u0000"+ - "\u13f0\u13f1\u0003\u000f\u0007\u0000\u13f1\u13f2\u0003)\u0014\u0000\u13f2"+ - "\u13f3\u0003\u0017\u000b\u0000\u13f3\u13f4\u0003!\u0010\u0000\u13f4\u13f5"+ - "\u0003\u0013\t\u0000\u13f5\u0350\u0001\u0000\u0000\u0000\u13f6\u13f7\u0003"+ - "#\u0011\u0000\u13f7\u13f8\u0003)\u0014\u0000\u13f8\u13f9\u0003\r\u0006"+ - "\u0000\u13f9\u13fa\u0003\u0017\u000b\u0000\u13fa\u13fb\u0003!\u0010\u0000"+ - "\u13fb\u13fc\u0003\u0007\u0003\u0000\u13fc\u13fd\u0003\u001d\u000e\u0000"+ - "\u13fd\u13fe\u0003\u0017\u000b\u0000\u13fe\u13ff\u0003-\u0016\u0000\u13ff"+ - "\u1400\u00037\u001b\u0000\u1400\u0352\u0001\u0000\u0000\u0000\u1401\u1402"+ - "\u0003#\u0011\u0000\u1402\u1403\u0003-\u0016\u0000\u1403\u1404\u0003\u0015"+ - "\n\u0000\u1404\u1405\u0003\u000f\u0007\u0000\u1405\u1406\u0003)\u0014"+ - "\u0000\u1406\u1407\u0003+\u0015\u0000\u1407\u0354\u0001\u0000\u0000\u0000"+ - "\u1408\u1409\u0003#\u0011\u0000\u1409\u140a\u0003/\u0017\u0000\u140a\u140b"+ - "\u0003-\u0016\u0000\u140b\u0356\u0001\u0000\u0000\u0000\u140c\u140d\u0003"+ - "#\u0011\u0000\u140d\u140e\u0003/\u0017\u0000\u140e\u140f\u0003-\u0016"+ - "\u0000\u140f\u1410\u0003\u000f\u0007\u0000\u1410\u1411\u0003)\u0014\u0000"+ - "\u1411\u0358\u0001\u0000\u0000\u0000\u1412\u1413\u0003#\u0011\u0000\u1413"+ - "\u1414\u0003/\u0017\u0000\u1414\u1415\u0003-\u0016\u0000\u1415\u1416\u0003"+ - "%\u0012\u0000\u1416\u1417\u0003/\u0017\u0000\u1417\u1418\u0003-\u0016"+ - "\u0000\u1418\u035a\u0001\u0000\u0000\u0000\u1419\u141a\u0003#\u0011\u0000"+ - "\u141a\u141b\u00031\u0018\u0000\u141b\u141c\u0003\u000f\u0007\u0000\u141c"+ - "\u141d\u0003)\u0014\u0000\u141d\u035c\u0001\u0000\u0000\u0000\u141e\u141f"+ - "\u0003#\u0011\u0000\u141f\u1420\u00031\u0018\u0000\u1420\u1421\u0003\u000f"+ - "\u0007\u0000\u1421\u1422\u0003)\u0014\u0000\u1422\u1423\u0003\u001d\u000e"+ - "\u0000\u1423\u1424\u0003\u0007\u0003\u0000\u1424\u1425\u0003%\u0012\u0000"+ - "\u1425\u1426\u0003+\u0015\u0000\u1426\u035e\u0001\u0000\u0000\u0000\u1427"+ - "\u1428\u0003#\u0011\u0000\u1428\u1429\u00031\u0018\u0000\u1429\u142a\u0003"+ - "\u000f\u0007\u0000\u142a\u142b\u0003)\u0014\u0000\u142b\u142c\u0003\u001d"+ - "\u000e\u0000\u142c\u142d\u0003\u0007\u0003\u0000\u142d\u142e\u00037\u001b"+ - "\u0000\u142e\u0360\u0001\u0000\u0000\u0000\u142f\u1430\u0003#\u0011\u0000"+ - "\u1430\u1431\u00031\u0018\u0000\u1431\u1432\u0003\u000f\u0007\u0000\u1432"+ - "\u1433\u0003)\u0014\u0000\u1433\u1434\u0003)\u0014\u0000\u1434\u1435\u0003"+ - "\u0017\u000b\u0000\u1435\u1436\u0003\r\u0006\u0000\u1436\u1437\u0003\u0017"+ - "\u000b\u0000\u1437\u1438\u0003!\u0010\u0000\u1438\u1439\u0003\u0013\t"+ - "\u0000\u1439\u0362\u0001\u0000\u0000\u0000\u143a\u143b\u0003#\u0011\u0000"+ - "\u143b\u143c\u00033\u0019\u0000\u143c\u143d\u0003!\u0010\u0000\u143d\u143e"+ - "\u0003\u000f\u0007\u0000\u143e\u143f\u0003)\u0014\u0000\u143f\u0364\u0001"+ - "\u0000\u0000\u0000\u1440\u1441\u0003%\u0012\u0000\u1441\u1442\u0003\u0007"+ - "\u0003\u0000\u1442\u1443\u0003\r\u0006\u0000\u1443\u0366\u0001\u0000\u0000"+ - "\u0000\u1444\u1445\u0003%\u0012\u0000\u1445\u1446\u0003\u0007\u0003\u0000"+ - "\u1446\u1447\u0003)\u0014\u0000\u1447\u1448\u0003\u0007\u0003\u0000\u1448"+ - "\u1449\u0003\u001f\u000f\u0000\u1449\u144a\u0003\u000f\u0007\u0000\u144a"+ - "\u144b\u0003-\u0016\u0000\u144b\u144c\u0003\u000f\u0007\u0000\u144c\u144d"+ - "\u0003)\u0014\u0000\u144d\u0368\u0001\u0000\u0000\u0000\u144e\u144f\u0003"+ - "%\u0012\u0000\u144f\u1450\u0003\u0007\u0003\u0000\u1450\u1451\u0003)\u0014"+ - "\u0000\u1451\u1452\u0003\u0007\u0003\u0000\u1452\u1453\u0003\u001f\u000f"+ - "\u0000\u1453\u1454\u0003\u000f\u0007\u0000\u1454\u1455\u0003-\u0016\u0000"+ - "\u1455\u1456\u0003\u000f\u0007\u0000\u1456\u1457\u0003)\u0014\u0000\u1457"+ - "\u1458\u0005_\u0000\u0000\u1458\u1459\u0003\u001f\u000f\u0000\u1459\u145a"+ - "\u0003#\u0011\u0000\u145a\u145b\u0003\r\u0006\u0000\u145b\u145c\u0003"+ - "\u000f\u0007\u0000\u145c\u036a\u0001\u0000\u0000\u0000\u145d\u145e\u0003"+ - "%\u0012\u0000\u145e\u145f\u0003\u0007\u0003\u0000\u145f\u1460\u0003)\u0014"+ - "\u0000\u1460\u1461\u0003\u0007\u0003\u0000\u1461\u1462\u0003\u001f\u000f"+ - "\u0000\u1462\u1463\u0003\u000f\u0007\u0000\u1463\u1464\u0003-\u0016\u0000"+ - "\u1464\u1465\u0003\u000f\u0007\u0000\u1465\u1466\u0003)\u0014\u0000\u1466"+ - "\u1467\u0005_\u0000\u0000\u1467\u1468\u0003!\u0010\u0000\u1468\u1469\u0003"+ - "\u0007\u0003\u0000\u1469\u146a\u0003\u001f\u000f\u0000\u146a\u146b\u0003"+ - "\u000f\u0007\u0000\u146b\u036c\u0001\u0000\u0000\u0000\u146c\u146d\u0003"+ - "%\u0012\u0000\u146d\u146e\u0003\u0007\u0003\u0000\u146e\u146f\u0003)\u0014"+ - "\u0000\u146f\u1470\u0003\u0007\u0003\u0000\u1470\u1471\u0003\u001f\u000f"+ - "\u0000\u1471\u1472\u0003\u000f\u0007\u0000\u1472\u1473\u0003-\u0016\u0000"+ - "\u1473\u1474\u0003\u000f\u0007\u0000\u1474\u1475\u0003)\u0014\u0000\u1475"+ - "\u1476\u0005_\u0000\u0000\u1476\u1477\u0003#\u0011\u0000\u1477\u1478\u0003"+ - ")\u0014\u0000\u1478\u1479\u0003\r\u0006\u0000\u1479\u147a\u0003\u0017"+ - "\u000b\u0000\u147a\u147b\u0003!\u0010\u0000\u147b\u147c\u0003\u0007\u0003"+ - "\u0000\u147c\u147d\u0003\u001d\u000e\u0000\u147d\u147e\u0005_\u0000\u0000"+ - "\u147e\u147f\u0003%\u0012\u0000\u147f\u1480\u0003#\u0011\u0000\u1480\u1481"+ - "\u0003+\u0015\u0000\u1481\u1482\u0003\u0017\u000b\u0000\u1482\u1483\u0003"+ - "-\u0016\u0000\u1483\u1484\u0003\u0017\u000b\u0000\u1484\u1485\u0003#\u0011"+ - "\u0000\u1485\u1486\u0003!\u0010\u0000\u1486\u036e\u0001\u0000\u0000\u0000"+ - "\u1487\u1488\u0003%\u0012\u0000\u1488\u1489\u0003\u0007\u0003\u0000\u1489"+ - "\u148a\u0003)\u0014\u0000\u148a\u148b\u0003\u0007\u0003\u0000\u148b\u148c"+ - "\u0003\u001f\u000f\u0000\u148c\u148d\u0003\u000f\u0007\u0000\u148d\u148e"+ - "\u0003-\u0016\u0000\u148e\u148f\u0003\u000f\u0007\u0000\u148f\u1490\u0003"+ - ")\u0014\u0000\u1490\u1491\u0005_\u0000\u0000\u1491\u1492\u0003+\u0015"+ - "\u0000\u1492\u1493\u0003%\u0012\u0000\u1493\u1494\u0003\u000f\u0007\u0000"+ - "\u1494\u1495\u0003\u000b\u0005\u0000\u1495\u1496\u0003\u0017\u000b\u0000"+ - "\u1496\u1497\u0003\u0011\b\u0000\u1497\u1498\u0003\u0017\u000b\u0000\u1498"+ - "\u1499\u0003\u000b\u0005\u0000\u1499\u149a\u0005_\u0000\u0000\u149a\u149b"+ - "\u0003\u000b\u0005\u0000\u149b\u149c\u0003\u0007\u0003\u0000\u149c\u149d"+ - "\u0003-\u0016\u0000\u149d\u149e\u0003\u0007\u0003\u0000\u149e\u149f\u0003"+ - "\u001d\u000e\u0000\u149f\u14a0\u0003#\u0011\u0000\u14a0\u14a1\u0003\u0013"+ - "\t\u0000\u14a1\u0370\u0001\u0000\u0000\u0000\u14a2\u14a3\u0003%\u0012"+ - "\u0000\u14a3\u14a4\u0003\u0007\u0003\u0000\u14a4\u14a5\u0003)\u0014\u0000"+ - "\u14a5\u14a6\u0003\u0007\u0003\u0000\u14a6\u14a7\u0003\u001f\u000f\u0000"+ - "\u14a7\u14a8\u0003\u000f\u0007\u0000\u14a8\u14a9\u0003-\u0016\u0000\u14a9"+ - "\u14aa\u0003\u000f\u0007\u0000\u14aa\u14ab\u0003)\u0014\u0000\u14ab\u14ac"+ - "\u0005_\u0000\u0000\u14ac\u14ad\u0003+\u0015\u0000\u14ad\u14ae\u0003%"+ - "\u0012\u0000\u14ae\u14af\u0003\u000f\u0007\u0000\u14af\u14b0\u0003\u000b"+ - "\u0005\u0000\u14b0\u14b1\u0003\u0017\u000b\u0000\u14b1\u14b2\u0003\u0011"+ - "\b\u0000\u14b2\u14b3\u0003\u0017\u000b\u0000\u14b3\u14b4\u0003\u000b\u0005"+ - "\u0000\u14b4\u14b5\u0005_\u0000\u0000\u14b5\u14b6\u0003!\u0010\u0000\u14b6"+ - "\u14b7\u0003\u0007\u0003\u0000\u14b7\u14b8\u0003\u001f\u000f\u0000\u14b8"+ - "\u14b9\u0003\u000f\u0007\u0000\u14b9\u0372\u0001\u0000\u0000\u0000\u14ba"+ - "\u14bb\u0003%\u0012\u0000\u14bb\u14bc\u0003\u0007\u0003\u0000\u14bc\u14bd"+ - "\u0003)\u0014\u0000\u14bd\u14be\u0003\u0007\u0003\u0000\u14be\u14bf\u0003"+ - "\u001f\u000f\u0000\u14bf\u14c0\u0003\u000f\u0007\u0000\u14c0\u14c1\u0003"+ - "-\u0016\u0000\u14c1\u14c2\u0003\u000f\u0007\u0000\u14c2\u14c3\u0003)\u0014"+ - "\u0000\u14c3\u14c4\u0005_\u0000\u0000\u14c4\u14c5\u0003+\u0015\u0000\u14c5"+ - "\u14c6\u0003%\u0012\u0000\u14c6\u14c7\u0003\u000f\u0007\u0000\u14c7\u14c8"+ - "\u0003\u000b\u0005\u0000\u14c8\u14c9\u0003\u0017\u000b\u0000\u14c9\u14ca"+ - "\u0003\u0011\b\u0000\u14ca\u14cb\u0003\u0017\u000b\u0000\u14cb\u14cc\u0003"+ - "\u000b\u0005\u0000\u14cc\u14cd\u0005_\u0000\u0000\u14cd\u14ce\u0003+\u0015"+ - "\u0000\u14ce\u14cf\u0003\u000b\u0005\u0000\u14cf\u14d0\u0003\u0015\n\u0000"+ - "\u14d0\u14d1\u0003\u000f\u0007\u0000\u14d1\u14d2\u0003\u001f\u000f\u0000"+ - "\u14d2\u14d3\u0003\u0007\u0003\u0000\u14d3\u0374\u0001\u0000\u0000\u0000"+ - "\u14d4\u14d5\u0003%\u0012\u0000\u14d5\u14d6\u0003\u0007\u0003\u0000\u14d6"+ - "\u14d7\u0003)\u0014\u0000\u14d7\u14d8\u0003\u0007\u0003\u0000\u14d8\u14d9"+ - "\u0003\u001f\u000f\u0000\u14d9\u14da\u0003\u000f\u0007\u0000\u14da\u14db"+ - "\u0003-\u0016\u0000\u14db\u14dc\u0003\u000f\u0007\u0000\u14dc\u14dd\u0003"+ - ")\u0014\u0000\u14dd\u14de\u0003+\u0015\u0000\u14de\u0376\u0001\u0000\u0000"+ - "\u0000\u14df\u14e0\u0003%\u0012\u0000\u14e0\u14e1\u0003\u0007\u0003\u0000"+ - "\u14e1\u14e2\u0003)\u0014\u0000\u14e2\u14e3\u0003+\u0015\u0000\u14e3\u14e4"+ - "\u0003\u000f\u0007\u0000\u14e4\u14e5\u0003)\u0014\u0000\u14e5\u0378\u0001"+ - "\u0000\u0000\u0000\u14e6\u14e7\u0003%\u0012\u0000\u14e7\u14e8\u0003\u0007"+ - "\u0003\u0000\u14e8\u14e9\u0003)\u0014\u0000\u14e9\u14ea\u0003-\u0016\u0000"+ - "\u14ea\u14eb\u0003\u0017\u000b\u0000\u14eb\u14ec\u0003\u0007\u0003\u0000"+ - "\u14ec\u14ed\u0003\u001d\u000e\u0000\u14ed\u037a\u0001\u0000\u0000\u0000"+ - "\u14ee\u14ef\u0003%\u0012\u0000\u14ef\u14f0\u0003\u0007\u0003\u0000\u14f0"+ - "\u14f1\u0003)\u0014\u0000\u14f1\u14f2\u0003-\u0016\u0000\u14f2\u14f3\u0003"+ - "\u0017\u000b\u0000\u14f3\u14f4\u0003-\u0016\u0000\u14f4\u14f5\u0003\u0017"+ - "\u000b\u0000\u14f5\u14f6\u0003#\u0011\u0000\u14f6\u14f7\u0003!\u0010\u0000"+ - "\u14f7\u037c\u0001\u0000\u0000\u0000\u14f8\u14f9\u0003%\u0012\u0000\u14f9"+ - "\u14fa\u0003\u0007\u0003\u0000\u14fa\u14fb\u0003+\u0015\u0000\u14fb\u14fc"+ - "\u0003\u000b\u0005\u0000\u14fc\u14fd\u0003\u0007\u0003\u0000\u14fd\u14fe"+ - "\u0003\u001d\u000e\u0000\u14fe\u037e\u0001\u0000\u0000\u0000\u14ff\u1500"+ - "\u0003%\u0012\u0000\u1500\u1501\u0003\u0007\u0003\u0000\u1501\u1502\u0003"+ - "+\u0015\u0000\u1502\u1503\u0003+\u0015\u0000\u1503\u1504\u00033\u0019"+ - "\u0000\u1504\u1505\u0003#\u0011\u0000\u1505\u1506\u0003)\u0014\u0000\u1506"+ - "\u1507\u0003\r\u0006\u0000\u1507\u0380\u0001\u0000\u0000\u0000\u1508\u1509"+ - "\u0003%\u0012\u0000\u1509\u150a\u0003\u0007\u0003\u0000\u150a\u150b\u0003"+ - "-\u0016\u0000\u150b\u150c\u0003\u0015\n\u0000\u150c\u0382\u0001\u0000"+ - "\u0000\u0000\u150d\u150e\u0003%\u0012\u0000\u150e\u150f\u0003\u000f\u0007"+ - "\u0000\u150f\u1510\u0003)\u0014\u0000\u1510\u1511\u0003\u000b\u0005\u0000"+ - "\u1511\u1512\u0003\u000f\u0007\u0000\u1512\u1513\u0003!\u0010\u0000\u1513"+ - "\u1514\u0003-\u0016\u0000\u1514\u1515\u0005_\u0000\u0000\u1515\u1516\u0003"+ - ")\u0014\u0000\u1516\u1517\u0003\u0007\u0003\u0000\u1517\u1518\u0003!\u0010"+ - "\u0000\u1518\u1519\u0003\u001b\r\u0000\u1519\u0384\u0001\u0000\u0000\u0000"+ - "\u151a\u151b\u0003%\u0012\u0000\u151b\u151c\u0003\u000f\u0007\u0000\u151c"+ - "\u151d\u0003)\u0014\u0000\u151d\u151e\u0003\u000b\u0005\u0000\u151e\u151f"+ - "\u0003\u000f\u0007\u0000\u151f\u1520\u0003!\u0010\u0000\u1520\u1521\u0003"+ - "-\u0016\u0000\u1521\u1522\u0003\u0017\u000b\u0000\u1522\u1523\u0003\u001d"+ - "\u000e\u0000\u1523\u1524\u0003\u000f\u0007\u0000\u1524\u1525\u0005_\u0000"+ - "\u0000\u1525\u1526\u0003\u000b\u0005\u0000\u1526\u1527\u0003#\u0011\u0000"+ - "\u1527\u1528\u0003!\u0010\u0000\u1528\u1529\u0003-\u0016\u0000\u1529\u0386"+ - "\u0001\u0000\u0000\u0000\u152a\u152b\u0003%\u0012\u0000\u152b\u152c\u0003"+ - "\u000f\u0007\u0000\u152c\u152d\u0003)\u0014\u0000\u152d\u152e\u0003\u000b"+ - "\u0005\u0000\u152e\u152f\u0003\u000f\u0007\u0000\u152f\u1530\u0003!\u0010"+ - "\u0000\u1530\u1531\u0003-\u0016\u0000\u1531\u1532\u0003\u0017\u000b\u0000"+ - "\u1532\u1533\u0003\u001d\u000e\u0000\u1533\u1534\u0003\u000f\u0007\u0000"+ - "\u1534\u1535\u0005_\u0000\u0000\u1535\u1536\u0003\r\u0006\u0000\u1536"+ - "\u1537\u0003\u0017\u000b\u0000\u1537\u1538\u0003+\u0015\u0000\u1538\u1539"+ - "\u0003\u000b\u0005\u0000\u1539\u0388\u0001\u0000\u0000\u0000\u153a\u153b"+ - "\u0003%\u0012\u0000\u153b\u153c\u0003\u001d\u000e\u0000\u153c\u153d\u0003"+ - "\u0007\u0003\u0000\u153d\u153e\u0003\u000b\u0005\u0000\u153e\u153f\u0003"+ - "\u0017\u000b\u0000\u153f\u1540\u0003!\u0010\u0000\u1540\u1541\u0003\u0013"+ - "\t\u0000\u1541\u038a\u0001\u0000\u0000\u0000\u1542\u1543\u0003%\u0012"+ - "\u0000\u1543\u1544\u0003\u001d\u000e\u0000\u1544\u1545\u0003\u0007\u0003"+ - "\u0000\u1545\u1546\u0003\u0017\u000b\u0000\u1546\u1547\u0003!\u0010\u0000"+ - "\u1547\u038c\u0001\u0000\u0000\u0000\u1548\u1549\u0003%\u0012\u0000\u1549"+ - "\u154a\u0003\u001d\u000e\u0000\u154a\u154b\u0003\u0007\u0003\u0000\u154b"+ - "\u154c\u0003!\u0010\u0000\u154c\u154d\u0003+\u0015\u0000\u154d\u038e\u0001"+ - "\u0000\u0000\u0000\u154e\u154f\u0003%\u0012\u0000\u154f\u1550\u0003\u001d"+ - "\u000e\u0000\u1550\u1551\u0003\u0017\u000b\u0000\u1551\u0390\u0001\u0000"+ - "\u0000\u0000\u1552\u1553\u0003%\u0012\u0000\u1553\u1554\u0003#\u0011\u0000"+ - "\u1554\u1555\u0003+\u0015\u0000\u1555\u1556\u0003\u0017\u000b\u0000\u1556"+ - "\u1557\u0003-\u0016\u0000\u1557\u1558\u0003\u0017\u000b\u0000\u1558\u1559"+ - "\u0003#\u0011\u0000\u1559\u155a\u0003!\u0010\u0000\u155a\u0392\u0001\u0000"+ - "\u0000\u0000\u155b\u155c\u0003%\u0012\u0000\u155c\u155d\u0003#\u0011\u0000"+ - "\u155d\u155e\u0003+\u0015\u0000\u155e\u155f\u0003-\u0016\u0000\u155f\u1560"+ - "\u0003\u0011\b\u0000\u1560\u1561\u0003\u0017\u000b\u0000\u1561\u1562\u0003"+ - "5\u001a\u0000\u1562\u0394\u0001\u0000\u0000\u0000\u1563\u1564\u0003%\u0012"+ - "\u0000\u1564\u1565\u0003#\u0011\u0000\u1565\u1566\u00033\u0019\u0000\u1566"+ - "\u1567\u0003\u000f\u0007\u0000\u1567\u1568\u0003)\u0014\u0000\u1568\u0396"+ - "\u0001\u0000\u0000\u0000\u1569\u156a\u0003%\u0012\u0000\u156a\u156b\u0003"+ - ")\u0014\u0000\u156b\u156c\u0003\u000f\u0007\u0000\u156c\u156d\u0003\u000b"+ - "\u0005\u0000\u156d\u156e\u0003\u000f\u0007\u0000\u156e\u156f\u0003\r\u0006"+ - "\u0000\u156f\u1570\u0003\u0017\u000b\u0000\u1570\u1571\u0003!\u0010\u0000"+ - "\u1571\u1572\u0003\u0013\t\u0000\u1572\u0398\u0001\u0000\u0000\u0000\u1573"+ - "\u1574\u0003%\u0012\u0000\u1574\u1575\u0003)\u0014\u0000\u1575\u1576\u0003"+ - "\u000f\u0007\u0000\u1576\u1577\u0003\u000b\u0005\u0000\u1577\u1578\u0003"+ - "\u0017\u000b\u0000\u1578\u1579\u0003+\u0015\u0000\u1579\u157a\u0003\u0017"+ - "\u000b\u0000\u157a\u157b\u0003#\u0011\u0000\u157b\u157c\u0003!\u0010\u0000"+ - "\u157c\u039a\u0001\u0000\u0000\u0000\u157d\u157e\u0003%\u0012\u0000\u157e"+ - "\u157f\u0003)\u0014\u0000\u157f\u1580\u0003\u000f\u0007\u0000\u1580\u1581"+ - "\u0003\u0011\b\u0000\u1581\u1582\u0003\u0017\u000b\u0000\u1582\u1583\u0003"+ - "5\u001a\u0000\u1583\u039c\u0001\u0000\u0000\u0000\u1584\u1585\u0003%\u0012"+ - "\u0000\u1585\u1586\u0003)\u0014\u0000\u1586\u1587\u0003\u000f\u0007\u0000"+ - "\u1587\u1588\u0003#\u0011\u0000\u1588\u1589\u0003)\u0014\u0000\u1589\u158a"+ - "\u0003\r\u0006\u0000\u158a\u158b\u0003\u000f\u0007\u0000\u158b\u158c\u0003"+ - ")\u0014\u0000\u158c\u039e\u0001\u0000\u0000\u0000\u158d\u158e\u0003%\u0012"+ - "\u0000\u158e\u158f\u0003)\u0014\u0000\u158f\u1590\u0003\u000f\u0007\u0000"+ - "\u1590\u1591\u0003%\u0012\u0000\u1591\u1592\u0003\u0007\u0003\u0000\u1592"+ - "\u1593\u0003)\u0014\u0000\u1593\u1594\u0003\u000f\u0007\u0000\u1594\u03a0"+ - "\u0001\u0000\u0000\u0000\u1595\u1596\u0003%\u0012\u0000\u1596\u1597\u0003"+ - ")\u0014\u0000\u1597\u1598\u0003\u000f\u0007\u0000\u1598\u1599\u0003%\u0012"+ - "\u0000\u1599\u159a\u0003\u0007\u0003\u0000\u159a\u159b\u0003)\u0014\u0000"+ - "\u159b\u159c\u0003\u000f\u0007\u0000\u159c\u159d\u0003\r\u0006\u0000\u159d"+ - "\u03a2\u0001\u0000\u0000\u0000\u159e\u159f\u0003%\u0012\u0000\u159f\u15a0"+ - "\u0003)\u0014\u0000\u15a0\u15a1\u0003\u000f\u0007\u0000\u15a1\u15a2\u0003"+ - "+\u0015\u0000\u15a2\u15a3\u0003\u000f\u0007\u0000\u15a3\u15a4\u0003)\u0014"+ - "\u0000\u15a4\u15a5\u00031\u0018\u0000\u15a5\u15a6\u0003\u000f\u0007\u0000"+ - "\u15a6\u03a4\u0001\u0000\u0000\u0000\u15a7\u15a8\u0003%\u0012\u0000\u15a8"+ - "\u15a9\u0003)\u0014\u0000\u15a9\u15aa\u0003\u0017\u000b\u0000\u15aa\u15ab"+ - "\u0003\u001f\u000f\u0000\u15ab\u15ac\u0003\u0007\u0003\u0000\u15ac\u15ad"+ - "\u0003)\u0014\u0000\u15ad\u15ae\u00037\u001b\u0000\u15ae\u03a6\u0001\u0000"+ - "\u0000\u0000\u15af\u15b0\u0003%\u0012\u0000\u15b0\u15b1\u0003)\u0014\u0000"+ - "\u15b1\u15b2\u0003\u0017\u000b\u0000\u15b2\u15b3\u0003#\u0011\u0000\u15b3"+ - "\u15b4\u0003)\u0014\u0000\u15b4\u03a8\u0001\u0000\u0000\u0000\u15b5\u15b6"+ - "\u0003%\u0012\u0000\u15b6\u15b7\u0003)\u0014\u0000\u15b7\u15b8\u0003\u0017"+ - "\u000b\u0000\u15b8\u15b9\u00031\u0018\u0000\u15b9\u15ba\u0003\u0017\u000b"+ - "\u0000\u15ba\u15bb\u0003\u001d\u000e\u0000\u15bb\u15bc\u0003\u000f\u0007"+ - "\u0000\u15bc\u15bd\u0003\u0013\t\u0000\u15bd\u15be\u0003\u000f\u0007\u0000"+ - "\u15be\u15bf\u0003+\u0015\u0000\u15bf\u03aa\u0001\u0000\u0000\u0000\u15c0"+ - "\u15c1\u0003%\u0012\u0000\u15c1\u15c2\u0003)\u0014\u0000\u15c2\u15c3\u0003"+ - "#\u0011\u0000\u15c3\u15c4\u0003\u000b\u0005\u0000\u15c4\u15c5\u0003\u000f"+ - "\u0007\u0000\u15c5\u15c6\u0003\r\u0006\u0000\u15c6\u15c7\u0003/\u0017"+ - "\u0000\u15c7\u15c8\u0003)\u0014\u0000\u15c8\u15c9\u0003\u0007\u0003\u0000"+ - "\u15c9\u15ca\u0003\u001d\u000e\u0000\u15ca\u03ac\u0001\u0000\u0000\u0000"+ - "\u15cb\u15cc\u0003%\u0012\u0000\u15cc\u15cd\u0003)\u0014\u0000\u15cd\u15ce"+ - "\u0003#\u0011\u0000\u15ce\u15cf\u0003\u000b\u0005\u0000\u15cf\u15d0\u0003"+ - "\u000f\u0007\u0000\u15d0\u15d1\u0003\r\u0006\u0000\u15d1\u15d2\u0003/"+ - "\u0017\u0000\u15d2\u15d3\u0003)\u0014\u0000\u15d3\u15d4\u0003\u000f\u0007"+ - "\u0000\u15d4\u03ae\u0001\u0000\u0000\u0000\u15d5\u15d6\u0003%\u0012\u0000"+ - "\u15d6\u15d7\u0003/\u0017\u0000\u15d7\u15d8\u0003\t\u0004\u0000\u15d8"+ - "\u15d9\u0003\u001d\u000e\u0000\u15d9\u15da\u0003\u0017\u000b\u0000\u15da"+ - "\u15db\u0003\u000b\u0005\u0000\u15db\u03b0\u0001\u0000\u0000\u0000\u15dc"+ - "\u15dd\u0003%\u0012\u0000\u15dd\u15de\u0003/\u0017\u0000\u15de\u15df\u0003"+ - "\t\u0004\u0000\u15df\u15e0\u0003\u001d\u000e\u0000\u15e0\u15e1\u0003\u0017"+ - "\u000b\u0000\u15e1\u15e2\u0003\u000b\u0005\u0000\u15e2\u15e3\u0003\u0007"+ - "\u0003\u0000\u15e3\u15e4\u0003-\u0016\u0000\u15e4\u15e5\u0003\u0017\u000b"+ - "\u0000\u15e5\u15e6\u0003#\u0011\u0000\u15e6\u15e7\u0003!\u0010\u0000\u15e7"+ - "\u03b2\u0001\u0000\u0000\u0000\u15e8\u15e9\u0003\'\u0013\u0000\u15e9\u15ea"+ - "\u0003/\u0017\u0000\u15ea\u15eb\u0003#\u0011\u0000\u15eb\u15ec\u0003-"+ - "\u0016\u0000\u15ec\u15ed\u0003\u000f\u0007\u0000\u15ed\u03b4\u0001\u0000"+ - "\u0000\u0000\u15ee\u15ef\u0003)\u0014\u0000\u15ef\u15f0\u0003\u0007\u0003"+ - "\u0000\u15f0\u15f1\u0003!\u0010\u0000\u15f1\u15f2\u0003\u0013\t\u0000"+ - "\u15f2\u15f3\u0003\u000f\u0007\u0000\u15f3\u03b6\u0001\u0000\u0000\u0000"+ - "\u15f4\u15f5\u0003)\u0014\u0000\u15f5\u15f6\u0003\u0007\u0003\u0000\u15f6"+ - "\u15f7\u0003!\u0010\u0000\u15f7\u15f8\u0003\u001b\r\u0000\u15f8\u03b8"+ - "\u0001\u0000\u0000\u0000\u15f9\u15fa\u0003)\u0014\u0000\u15fa\u15fb\u0003"+ - "\u000f\u0007\u0000\u15fb\u15fc\u0003\u0007\u0003\u0000\u15fc\u15fd\u0003"+ - "\r\u0006\u0000\u15fd\u03ba\u0001\u0000\u0000\u0000\u15fe\u15ff\u0003)"+ - "\u0014\u0000\u15ff\u1600\u0003\u000f\u0007\u0000\u1600\u1601\u0003\u0007"+ - "\u0003\u0000\u1601\u1602\u0003\r\u0006\u0000\u1602\u1603\u0003+\u0015"+ - "\u0000\u1603\u03bc\u0001\u0000\u0000\u0000\u1604\u1605\u0003)\u0014\u0000"+ - "\u1605\u1606\u0003\u000f\u0007\u0000\u1606\u1607\u0003\u0007\u0003\u0000"+ - "\u1607\u1608\u0003\u001d\u000e\u0000\u1608\u03be\u0001\u0000\u0000\u0000"+ - "\u1609\u160a\u0003)\u0014\u0000\u160a\u160b\u0003\u000f\u0007\u0000\u160b"+ - "\u160c\u0003\u0007\u0003\u0000\u160c\u160d\u0003+\u0015\u0000\u160d\u160e"+ - "\u0003+\u0015\u0000\u160e\u160f\u0003\u0017\u000b\u0000\u160f\u1610\u0003"+ - "\u0013\t\u0000\u1610\u1611\u0003!\u0010\u0000\u1611\u03c0\u0001\u0000"+ - "\u0000\u0000\u1612\u1613\u0003)\u0014\u0000\u1613\u1614\u0003\u000f\u0007"+ - "\u0000\u1614\u1615\u0003\u000b\u0005\u0000\u1615\u1616\u0003\u0015\n\u0000"+ - "\u1616\u1617\u0003\u000f\u0007\u0000\u1617\u1618\u0003\u000b\u0005\u0000"+ - "\u1618\u1619\u0003\u001b\r\u0000\u1619\u03c2\u0001\u0000\u0000\u0000\u161a"+ - "\u161b\u0003)\u0014\u0000\u161b\u161c\u0003\u000f\u0007\u0000\u161c\u161d"+ - "\u0003\u000b\u0005\u0000\u161d\u161e\u0003/\u0017\u0000\u161e\u161f\u0003"+ - ")\u0014\u0000\u161f\u1620\u0003+\u0015\u0000\u1620\u1621\u0003\u0017\u000b"+ - "\u0000\u1621\u1622\u00031\u0018\u0000\u1622\u1623\u0003\u000f\u0007\u0000"+ - "\u1623\u03c4\u0001\u0000\u0000\u0000\u1624\u1625\u0003)\u0014\u0000\u1625"+ - "\u1626\u0003\u000f\u0007\u0000\u1626\u1627\u0003\u0011\b\u0000\u1627\u03c6"+ - "\u0001\u0000\u0000\u0000\u1628\u1629\u0003)\u0014\u0000\u1629\u162a\u0003"+ - "\u000f\u0007\u0000\u162a\u162b\u0003\u0011\b\u0000\u162b\u162c\u0003\u000f"+ - "\u0007\u0000\u162c\u162d\u0003)\u0014\u0000\u162d\u162e\u0003\u000f\u0007"+ - "\u0000\u162e\u162f\u0003!\u0010\u0000\u162f\u1630\u0003\u000b\u0005\u0000"+ - "\u1630\u1631\u0003\u000f\u0007\u0000\u1631\u1632\u0003+\u0015\u0000\u1632"+ - "\u03c8\u0001\u0000\u0000\u0000\u1633\u1634\u0003)\u0014\u0000\u1634\u1635"+ - "\u0003\u000f\u0007\u0000\u1635\u1636\u0003\u0011\b\u0000\u1636\u1637\u0003"+ - "\u000f\u0007\u0000\u1637\u1638\u0003)\u0014\u0000\u1638\u1639\u0003\u000f"+ - "\u0007\u0000\u1639\u163a\u0003!\u0010\u0000\u163a\u163b\u0003\u000b\u0005"+ - "\u0000\u163b\u163c\u0003\u0017\u000b\u0000\u163c\u163d\u0003!\u0010\u0000"+ - "\u163d\u163e\u0003\u0013\t\u0000\u163e\u03ca\u0001\u0000\u0000\u0000\u163f"+ - "\u1640\u0003)\u0014\u0000\u1640\u1641\u0003\u000f\u0007\u0000\u1641\u1642"+ - "\u0003\u0011\b\u0000\u1642\u1643\u0003)\u0014\u0000\u1643\u1644\u0003"+ - "\u000f\u0007\u0000\u1644\u1645\u0003+\u0015\u0000\u1645\u1646\u0003\u0015"+ - "\n\u0000\u1646\u03cc\u0001\u0000\u0000\u0000\u1647\u1648\u0003)\u0014"+ - "\u0000\u1648\u1649\u0003\u000f\u0007\u0000\u1649\u164a\u0003\u0013\t\u0000"+ - "\u164a\u164b\u0003)\u0014\u0000\u164b\u164c\u0005_\u0000\u0000\u164c\u164d"+ - "\u0003\u0007\u0003\u0000\u164d\u164e\u00031\u0018\u0000\u164e\u164f\u0003"+ - "\u0013\t\u0000\u164f\u1650\u00035\u001a\u0000\u1650\u03ce\u0001\u0000"+ - "\u0000\u0000\u1651\u1652\u0003)\u0014\u0000\u1652\u1653\u0003\u000f\u0007"+ - "\u0000\u1653\u1654\u0003\u0013\t\u0000\u1654\u1655\u0003)\u0014\u0000"+ - "\u1655\u1656\u0005_\u0000\u0000\u1656\u1657\u0003\u0007\u0003\u0000\u1657"+ - "\u1658\u00031\u0018\u0000\u1658\u1659\u0003\u0013\t\u0000\u1659\u165a"+ - "\u00037\u001b\u0000\u165a\u03d0\u0001\u0000\u0000\u0000\u165b\u165c\u0003"+ - ")\u0014\u0000\u165c\u165d\u0003\u000f\u0007\u0000\u165d\u165e\u0003\u0013"+ - "\t\u0000\u165e\u165f\u0003)\u0014\u0000\u165f\u1660\u0005_\u0000\u0000"+ - "\u1660\u1661\u0003\u000b\u0005\u0000\u1661\u1662\u0003#\u0011\u0000\u1662"+ - "\u1663\u0003/\u0017\u0000\u1663\u1664\u0003!\u0010\u0000\u1664\u1665\u0003"+ - "-\u0016\u0000\u1665\u03d2\u0001\u0000\u0000\u0000\u1666\u1667\u0003)\u0014"+ - "\u0000\u1667\u1668\u0003\u000f\u0007\u0000\u1668\u1669\u0003\u0013\t\u0000"+ - "\u1669\u166a\u0003)\u0014\u0000\u166a\u166b\u0005_\u0000\u0000\u166b\u166c"+ - "\u0003\u0017\u000b\u0000\u166c\u166d\u0003!\u0010\u0000\u166d\u166e\u0003"+ - "-\u0016\u0000\u166e\u166f\u0003\u000f\u0007\u0000\u166f\u1670\u0003)\u0014"+ - "\u0000\u1670\u1671\u0003\u000b\u0005\u0000\u1671\u1672\u0003\u000f\u0007"+ - "\u0000\u1672\u1673\u0003%\u0012\u0000\u1673\u1674\u0003-\u0016\u0000\u1674"+ - "\u03d4\u0001\u0000\u0000\u0000\u1675\u1676\u0003)\u0014\u0000\u1676\u1677"+ - "\u0003\u000f\u0007\u0000\u1677\u1678\u0003\u0013\t\u0000\u1678\u1679\u0003"+ - ")\u0014\u0000\u1679\u167a\u0005_\u0000\u0000\u167a\u167b\u0003)\u0014"+ - "\u0000\u167b\u167c\u00052\u0000\u0000\u167c\u03d6\u0001\u0000\u0000\u0000"+ - "\u167d\u167e\u0003)\u0014\u0000\u167e\u167f\u0003\u000f\u0007\u0000\u167f"+ - "\u1680\u0003\u0013\t\u0000\u1680\u1681\u0003)\u0014\u0000\u1681\u1682"+ - "\u0005_\u0000\u0000\u1682\u1683\u0003+\u0015\u0000\u1683\u1684\u0003\u001d"+ - "\u000e\u0000\u1684\u1685\u0003#\u0011\u0000\u1685\u1686\u0003%\u0012\u0000"+ - "\u1686\u1687\u0003\u000f\u0007\u0000\u1687\u03d8\u0001\u0000\u0000\u0000"+ - "\u1688\u1689\u0003)\u0014\u0000\u1689\u168a\u0003\u000f\u0007\u0000\u168a"+ - "\u168b\u0003\u0013\t\u0000\u168b\u168c\u0003)\u0014\u0000\u168c\u168d"+ - "\u0005_\u0000\u0000\u168d\u168e\u0003+\u0015\u0000\u168e\u168f\u00035"+ - "\u001a\u0000\u168f\u1690\u00035\u001a\u0000\u1690\u03da\u0001\u0000\u0000"+ - "\u0000\u1691\u1692\u0003)\u0014\u0000\u1692\u1693\u0003\u000f\u0007\u0000"+ - "\u1693\u1694\u0003\u0013\t\u0000\u1694\u1695\u0003)\u0014\u0000\u1695"+ - "\u1696\u0005_\u0000\u0000\u1696\u1697\u0003+\u0015\u0000\u1697\u1698\u0003"+ - "5\u001a\u0000\u1698\u1699\u00037\u001b\u0000\u1699\u03dc\u0001\u0000\u0000"+ - "\u0000\u169a\u169b\u0003)\u0014\u0000\u169b\u169c\u0003\u000f\u0007\u0000"+ - "\u169c\u169d\u0003\u0013\t\u0000\u169d\u169e\u0003)\u0014\u0000\u169e"+ - "\u169f\u0005_\u0000\u0000\u169f\u16a0\u0003+\u0015\u0000\u16a0\u16a1\u0003"+ - "7\u001b\u0000\u16a1\u16a2\u00037\u001b\u0000\u16a2\u03de\u0001\u0000\u0000"+ - "\u0000\u16a3\u16a4\u0003)\u0014\u0000\u16a4\u16a5\u0003\u000f\u0007\u0000"+ - "\u16a5\u16a6\u0003\u0017\u000b\u0000\u16a6\u16a7\u0003!\u0010\u0000\u16a7"+ - "\u16a8\u0003\r\u0006\u0000\u16a8\u16a9\u0003\u000f\u0007\u0000\u16a9\u16aa"+ - "\u00035\u001a\u0000\u16aa\u03e0\u0001\u0000\u0000\u0000\u16ab\u16ac\u0003"+ - ")\u0014\u0000\u16ac\u16ad\u0003\u000f\u0007\u0000\u16ad\u16ae\u0003\u001d"+ - "\u000e\u0000\u16ae\u16af\u0003\u0007\u0003\u0000\u16af\u16b0\u0003-\u0016"+ - "\u0000\u16b0\u16b1\u0003\u0017\u000b\u0000\u16b1\u16b2\u00031\u0018\u0000"+ - "\u16b2\u16b3\u0003\u000f\u0007\u0000\u16b3\u03e2\u0001\u0000\u0000\u0000"+ - "\u16b4\u16b5\u0003)\u0014\u0000\u16b5\u16b6\u0003\u000f\u0007\u0000\u16b6"+ - "\u16b7\u0003\u001d\u000e\u0000\u16b7\u16b8\u0003\u000f\u0007\u0000\u16b8"+ - "\u16b9\u0003\u0007\u0003\u0000\u16b9\u16ba\u0003+\u0015\u0000\u16ba\u16bb"+ - "\u0003\u000f\u0007\u0000\u16bb\u03e4\u0001\u0000\u0000\u0000\u16bc\u16bd"+ - "\u0003)\u0014\u0000\u16bd\u16be\u0003\u000f\u0007\u0000\u16be\u16bf\u0003"+ - "!\u0010\u0000\u16bf\u16c0\u0003\u0007\u0003\u0000\u16c0\u16c1\u0003\u001f"+ - "\u000f\u0000\u16c1\u16c2\u0003\u000f\u0007\u0000\u16c2\u03e6\u0001\u0000"+ - "\u0000\u0000\u16c3\u16c4\u0003)\u0014\u0000\u16c4\u16c5\u0003\u000f\u0007"+ - "\u0000\u16c5\u16c6\u0003%\u0012\u0000\u16c6\u16c7\u0003\u000f\u0007\u0000"+ - "\u16c7\u16c8\u0003\u0007\u0003\u0000\u16c8\u16c9\u0003-\u0016\u0000\u16c9"+ - "\u16ca\u0003\u0007\u0003\u0000\u16ca\u16cb\u0003\t\u0004\u0000\u16cb\u16cc"+ - "\u0003\u001d\u000e\u0000\u16cc\u16cd\u0003\u000f\u0007\u0000\u16cd\u03e8"+ - "\u0001\u0000\u0000\u0000\u16ce\u16cf\u0003)\u0014\u0000\u16cf\u16d0\u0003"+ - "\u000f\u0007\u0000\u16d0\u16d1\u0003%\u0012\u0000\u16d1\u16d2\u0003\u001d"+ - "\u000e\u0000\u16d2\u16d3\u0003\u0007\u0003\u0000\u16d3\u16d4\u0003\u000b"+ - "\u0005\u0000\u16d4\u16d5\u0003\u000f\u0007\u0000\u16d5\u03ea\u0001\u0000"+ - "\u0000\u0000\u16d6\u16d7\u0003)\u0014\u0000\u16d7\u16d8\u0003\u000f\u0007"+ - "\u0000\u16d8\u16d9\u0003%\u0012\u0000\u16d9\u16da\u0003\u001d\u000e\u0000"+ - "\u16da\u16db\u0003\u0017\u000b\u0000\u16db\u16dc\u0003\u000b\u0005\u0000"+ - "\u16dc\u16dd\u0003\u0007\u0003\u0000\u16dd\u03ec\u0001\u0000\u0000\u0000"+ - "\u16de\u16df\u0003)\u0014\u0000\u16df\u16e0\u0003\u000f\u0007\u0000\u16e0"+ - "\u16e1\u0003+\u0015\u0000\u16e1\u16e2\u0003\u000f\u0007\u0000\u16e2\u16e3"+ - "\u0003-\u0016\u0000\u16e3\u03ee\u0001\u0000\u0000\u0000\u16e4\u16e5\u0003"+ - ")\u0014\u0000\u16e5\u16e6\u0003\u000f\u0007\u0000\u16e6\u16e7\u0003+\u0015"+ - "\u0000\u16e7\u16e8\u0003-\u0016\u0000\u16e8\u16e9\u0003\u0007\u0003\u0000"+ - "\u16e9\u16ea\u0003)\u0014\u0000\u16ea\u16eb\u0003-\u0016\u0000\u16eb\u03f0"+ - "\u0001\u0000\u0000\u0000\u16ec\u16ed\u0003)\u0014\u0000\u16ed\u16ee\u0003"+ - "\u000f\u0007\u0000\u16ee\u16ef\u0003+\u0015\u0000\u16ef\u16f0\u0003-\u0016"+ - "\u0000\u16f0\u16f1\u0003)\u0014\u0000\u16f1\u16f2\u0003\u0017\u000b\u0000"+ - "\u16f2\u16f3\u0003\u000b\u0005\u0000\u16f3\u16f4\u0003-\u0016\u0000\u16f4"+ - "\u03f2\u0001\u0000\u0000\u0000\u16f5\u16f6\u0003)\u0014\u0000\u16f6\u16f7"+ - "\u0003\u000f\u0007\u0000\u16f7\u16f8\u0003+\u0015\u0000\u16f8\u16f9\u0003"+ - "/\u0017\u0000\u16f9\u16fa\u0003\u001d\u000e\u0000\u16fa\u16fb\u0003-\u0016"+ - "\u0000\u16fb\u03f4\u0001\u0000\u0000\u0000\u16fc\u16fd\u0003)\u0014\u0000"+ - "\u16fd\u16fe\u0003\u000f\u0007\u0000\u16fe\u16ff\u0003-\u0016\u0000\u16ff"+ - "\u1700\u0003/\u0017\u0000\u1700\u1701\u0003)\u0014\u0000\u1701\u1702\u0003"+ - "!\u0010\u0000\u1702\u03f6\u0001\u0000\u0000\u0000\u1703\u1704\u0003)\u0014"+ - "\u0000\u1704\u1705\u0003\u000f\u0007\u0000\u1705\u1706\u0003-\u0016\u0000"+ - "\u1706\u1707\u0003/\u0017\u0000\u1707\u1708\u0003)\u0014\u0000\u1708\u1709"+ - "\u0003!\u0010\u0000\u1709\u170a\u0003\u000f\u0007\u0000\u170a\u170b\u0003"+ - "\r\u0006\u0000\u170b\u170c\u0005_\u0000\u0000\u170c\u170d\u0003\u000b"+ - "\u0005\u0000\u170d\u170e\u0003\u0007\u0003\u0000\u170e\u170f\u0003)\u0014"+ - "\u0000\u170f\u1710\u0003\r\u0006\u0000\u1710\u1711\u0003\u0017\u000b\u0000"+ - "\u1711\u1712\u0003!\u0010\u0000\u1712\u1713\u0003\u0007\u0003\u0000\u1713"+ - "\u1714\u0003\u001d\u000e\u0000\u1714\u1715\u0003\u0017\u000b\u0000\u1715"+ - "\u1716\u0003-\u0016\u0000\u1716\u1717\u00037\u001b\u0000\u1717\u03f8\u0001"+ - "\u0000\u0000\u0000\u1718\u1719\u0003)\u0014\u0000\u1719\u171a\u0003\u000f"+ - "\u0007\u0000\u171a\u171b\u0003-\u0016\u0000\u171b\u171c\u0003/\u0017\u0000"+ - "\u171c\u171d\u0003)\u0014\u0000\u171d\u171e\u0003!\u0010\u0000\u171e\u171f"+ - "\u0003\u000f\u0007\u0000\u171f\u1720\u0003\r\u0006\u0000\u1720\u1721\u0005"+ - "_\u0000\u0000\u1721\u1722\u0003\u001d\u000e\u0000\u1722\u1723\u0003\u000f"+ - "\u0007\u0000\u1723\u1724\u0003!\u0010\u0000\u1724\u1725\u0003\u0013\t"+ - "\u0000\u1725\u1726\u0003-\u0016\u0000\u1726\u1727\u0003\u0015\n\u0000"+ - "\u1727\u03fa\u0001\u0000\u0000\u0000\u1728\u1729\u0003)\u0014\u0000\u1729"+ - "\u172a\u0003\u000f\u0007\u0000\u172a\u172b\u0003-\u0016\u0000\u172b\u172c"+ - "\u0003/\u0017\u0000\u172c\u172d\u0003)\u0014\u0000\u172d\u172e\u0003!"+ - "\u0010\u0000\u172e\u172f\u0003\u000f\u0007\u0000\u172f\u1730\u0003\r\u0006"+ - "\u0000\u1730\u1731\u0005_\u0000\u0000\u1731\u1732\u0003#\u0011\u0000\u1732"+ - "\u1733\u0003\u000b\u0005\u0000\u1733\u1734\u0003-\u0016\u0000\u1734\u1735"+ - "\u0003\u000f\u0007\u0000\u1735\u1736\u0003-\u0016\u0000\u1736\u1737\u0005"+ - "_\u0000\u0000\u1737\u1738\u0003\u001d\u000e\u0000\u1738\u1739\u0003\u000f"+ - "\u0007\u0000\u1739\u173a\u0003!\u0010\u0000\u173a\u173b\u0003\u0013\t"+ - "\u0000\u173b\u173c\u0003-\u0016\u0000\u173c\u173d\u0003\u0015\n\u0000"+ - "\u173d\u03fc\u0001\u0000\u0000\u0000\u173e\u173f\u0003)\u0014\u0000\u173f"+ - "\u1740\u0003\u000f\u0007\u0000\u1740\u1741\u0003-\u0016\u0000\u1741\u1742"+ - "\u0003/\u0017\u0000\u1742\u1743\u0003)\u0014\u0000\u1743\u1744\u0003!"+ - "\u0010\u0000\u1744\u1745\u0003\u000f\u0007\u0000\u1745\u1746\u0003\r\u0006"+ - "\u0000\u1746\u1747\u0005_\u0000\u0000\u1747\u1748\u0003+\u0015\u0000\u1748"+ - "\u1749\u0003\'\u0013\u0000\u1749\u174a\u0003\u001d\u000e\u0000\u174a\u174b"+ - "\u0003+\u0015\u0000\u174b\u174c\u0003-\u0016\u0000\u174c\u174d\u0003\u0007"+ - "\u0003\u0000\u174d\u174e\u0003-\u0016\u0000\u174e\u174f\u0003\u000f\u0007"+ - "\u0000\u174f\u03fe\u0001\u0000\u0000\u0000\u1750\u1751\u0003)\u0014\u0000"+ - "\u1751\u1752\u0003\u000f\u0007\u0000\u1752\u1753\u0003-\u0016\u0000\u1753"+ - "\u1754\u0003/\u0017\u0000\u1754\u1755\u0003)\u0014\u0000\u1755\u1756\u0003"+ - "!\u0010\u0000\u1756\u1757\u0003\u0017\u000b\u0000\u1757\u1758\u0003!\u0010"+ - "\u0000\u1758\u1759\u0003\u0013\t\u0000\u1759\u0400\u0001\u0000\u0000\u0000"+ - "\u175a\u175b\u0003)\u0014\u0000\u175b\u175c\u0003\u000f\u0007\u0000\u175c"+ - "\u175d\u0003-\u0016\u0000\u175d\u175e\u0003/\u0017\u0000\u175e\u175f\u0003"+ - ")\u0014\u0000\u175f\u1760\u0003!\u0010\u0000\u1760\u1761\u0003+\u0015"+ - "\u0000\u1761\u0402\u0001\u0000\u0000\u0000\u1762\u1763\u0003)\u0014\u0000"+ - "\u1763\u1764\u0003\u000f\u0007\u0000\u1764\u1765\u00031\u0018\u0000\u1765"+ - "\u1766\u0003#\u0011\u0000\u1766\u1767\u0003\u001b\r\u0000\u1767\u1768"+ - "\u0003\u000f\u0007\u0000\u1768\u0404\u0001\u0000\u0000\u0000\u1769\u176a"+ - "\u0003)\u0014\u0000\u176a\u176b\u0003\u0017\u000b\u0000\u176b\u176c\u0003"+ - "\u0013\t\u0000\u176c\u176d\u0003\u0015\n\u0000\u176d\u176e\u0003-\u0016"+ - "\u0000\u176e\u0406\u0001\u0000\u0000\u0000\u176f\u1770\u0003)\u0014\u0000"+ - "\u1770\u1771\u0003#\u0011\u0000\u1771\u1772\u0003\u001d\u000e\u0000\u1772"+ - "\u1773\u0003\u000f\u0007\u0000\u1773\u0408\u0001\u0000\u0000\u0000\u1774"+ - "\u1775\u0003)\u0014\u0000\u1775\u1776\u0003#\u0011\u0000\u1776\u1777\u0003"+ - "\u001d\u000e\u0000\u1777\u1778\u0003\u001d\u000e\u0000\u1778\u1779\u0003"+ - "\t\u0004\u0000\u1779\u177a\u0003\u0007\u0003\u0000\u177a\u177b\u0003\u000b"+ - "\u0005\u0000\u177b\u177c\u0003\u001b\r\u0000\u177c\u040a\u0001\u0000\u0000"+ - "\u0000\u177d\u177e\u0003)\u0014\u0000\u177e\u177f\u0003#\u0011\u0000\u177f"+ - "\u1780\u0003\u001d\u000e\u0000\u1780\u1781\u0003\u001d\u000e\u0000\u1781"+ - "\u1782\u0003/\u0017\u0000\u1782\u1783\u0003%\u0012\u0000\u1783\u040c\u0001"+ - "\u0000\u0000\u0000\u1784\u1785\u0003)\u0014\u0000\u1785\u1786\u0003#\u0011"+ - "\u0000\u1786\u1787\u0003/\u0017\u0000\u1787\u1788\u0003-\u0016\u0000\u1788"+ - "\u1789\u0003\u0017\u000b\u0000\u1789\u178a\u0003!\u0010\u0000\u178a\u178b"+ - "\u0003\u000f\u0007\u0000\u178b\u040e\u0001\u0000\u0000\u0000\u178c\u178d"+ - "\u0003)\u0014\u0000\u178d\u178e\u0003#\u0011\u0000\u178e\u178f\u0003/"+ - "\u0017\u0000\u178f\u1790\u0003-\u0016\u0000\u1790\u1791\u0003\u0017\u000b"+ - "\u0000\u1791\u1792\u0003!\u0010\u0000\u1792\u1793\u0003\u000f\u0007\u0000"+ - "\u1793\u1794\u0005_\u0000\u0000\u1794\u1795\u0003\u000b\u0005\u0000\u1795"+ - "\u1796\u0003\u0007\u0003\u0000\u1796\u1797\u0003-\u0016\u0000\u1797\u1798"+ - "\u0003\u0007\u0003\u0000\u1798\u1799\u0003\u001d\u000e\u0000\u1799\u179a"+ - "\u0003#\u0011\u0000\u179a\u179b\u0003\u0013\t\u0000\u179b\u0410\u0001"+ - "\u0000\u0000\u0000\u179c\u179d\u0003)\u0014\u0000\u179d\u179e\u0003#\u0011"+ - "\u0000\u179e\u179f\u0003/\u0017\u0000\u179f\u17a0\u0003-\u0016\u0000\u17a0"+ - "\u17a1\u0003\u0017\u000b\u0000\u17a1\u17a2\u0003!\u0010\u0000\u17a2\u17a3"+ - "\u0003\u000f\u0007\u0000\u17a3\u17a4\u0005_\u0000\u0000\u17a4\u17a5\u0003"+ - "!\u0010\u0000\u17a5\u17a6\u0003\u0007\u0003\u0000\u17a6\u17a7\u0003\u001f"+ - "\u000f\u0000\u17a7\u17a8\u0003\u000f\u0007\u0000\u17a8\u0412\u0001\u0000"+ - "\u0000\u0000\u17a9\u17aa\u0003)\u0014\u0000\u17aa\u17ab\u0003#\u0011\u0000"+ - "\u17ab\u17ac\u0003/\u0017\u0000\u17ac\u17ad\u0003-\u0016\u0000\u17ad\u17ae"+ - "\u0003\u0017\u000b\u0000\u17ae\u17af\u0003!\u0010\u0000\u17af\u17b0\u0003"+ - "\u000f\u0007\u0000\u17b0\u17b1\u0005_\u0000\u0000\u17b1\u17b2\u0003+\u0015"+ - "\u0000\u17b2\u17b3\u0003\u000b\u0005\u0000\u17b3\u17b4\u0003\u0015\n\u0000"+ - "\u17b4\u17b5\u0003\u000f\u0007\u0000\u17b5\u17b6\u0003\u001f\u000f\u0000"+ - "\u17b6\u17b7\u0003\u0007\u0003\u0000\u17b7\u0414\u0001\u0000\u0000\u0000"+ - "\u17b8\u17b9\u0003)\u0014\u0000\u17b9\u17ba\u0003#\u0011\u0000\u17ba\u17bb"+ - "\u00033\u0019\u0000\u17bb\u0416\u0001\u0000\u0000\u0000\u17bc\u17bd\u0003"+ - ")\u0014\u0000\u17bd\u17be\u0003#\u0011\u0000\u17be\u17bf\u00033\u0019"+ - "\u0000\u17bf\u17c0\u0005_\u0000\u0000\u17c0\u17c1\u0003\u000b\u0005\u0000"+ - "\u17c1\u17c2\u0003#\u0011\u0000\u17c2\u17c3\u0003/\u0017\u0000\u17c3\u17c4"+ - "\u0003!\u0010\u0000\u17c4\u17c5\u0003-\u0016\u0000\u17c5\u0418\u0001\u0000"+ - "\u0000\u0000\u17c6\u17c7\u0003)\u0014\u0000\u17c7\u17c8\u0003#\u0011\u0000"+ - "\u17c8\u17c9\u00033\u0019\u0000\u17c9\u17ca\u0005_\u0000\u0000\u17ca\u17cb"+ - "\u0003!\u0010\u0000\u17cb\u17cc\u0003/\u0017\u0000\u17cc\u17cd\u0003\u001f"+ - "\u000f\u0000\u17cd\u17ce\u0003\t\u0004\u0000\u17ce\u17cf\u0003\u000f\u0007"+ - "\u0000\u17cf\u17d0\u0003)\u0014\u0000\u17d0\u041a\u0001\u0000\u0000\u0000"+ - "\u17d1\u17d2\u0003)\u0014\u0000\u17d2\u17d3\u0003#\u0011\u0000\u17d3\u17d4"+ - "\u00033\u0019\u0000\u17d4\u17d5\u0003+\u0015\u0000\u17d5\u041c\u0001\u0000"+ - "\u0000\u0000\u17d6\u17d7\u0003)\u0014\u0000\u17d7\u17d8\u0003/\u0017\u0000"+ - "\u17d8\u17d9\u0003\u001d\u000e\u0000\u17d9\u17da\u0003\u000f\u0007\u0000"+ - "\u17da\u041e\u0001\u0000\u0000\u0000\u17db\u17dc\u0003+\u0015\u0000\u17dc"+ - "\u17dd\u0003\u0007\u0003\u0000\u17dd\u17de\u00031\u0018\u0000\u17de\u17df"+ - "\u0003\u000f\u0007\u0000\u17df\u17e0\u0003%\u0012\u0000\u17e0\u17e1\u0003"+ - "#\u0011\u0000\u17e1\u17e2\u0003\u0017\u000b\u0000\u17e2\u17e3\u0003!\u0010"+ - "\u0000\u17e3\u17e4\u0003-\u0016\u0000\u17e4\u0420\u0001\u0000\u0000\u0000"+ - "\u17e5\u17e6\u0003+\u0015\u0000\u17e6\u17e7\u0003\u000b\u0005\u0000\u17e7"+ - "\u17e8\u0003\u0007\u0003\u0000\u17e8\u17e9\u0003\u001d\u000e\u0000\u17e9"+ - "\u17ea\u0003\u000f\u0007\u0000\u17ea\u0422\u0001\u0000\u0000\u0000\u17eb"+ - "\u17ec\u0003+\u0015\u0000\u17ec\u17ed\u0003\u000b\u0005\u0000\u17ed\u17ee"+ - "\u0003\u0015\n\u0000\u17ee\u17ef\u0003\u000f\u0007\u0000\u17ef\u17f0\u0003"+ - "\u001f\u000f\u0000\u17f0\u17f1\u0003\u0007\u0003\u0000\u17f1\u0424\u0001"+ - "\u0000\u0000\u0000\u17f2\u17f3\u0003+\u0015\u0000\u17f3\u17f4\u0003\u000b"+ - "\u0005\u0000\u17f4\u17f5\u0003\u0015\n\u0000\u17f5\u17f6\u0003\u000f\u0007"+ - "\u0000\u17f6\u17f7\u0003\u001f\u000f\u0000\u17f7\u17f8\u0003\u0007\u0003"+ - "\u0000\u17f8\u17f9\u0005_\u0000\u0000\u17f9\u17fa\u0003!\u0010\u0000\u17fa"+ - "\u17fb\u0003\u0007\u0003\u0000\u17fb\u17fc\u0003\u001f\u000f\u0000\u17fc"+ - "\u17fd\u0003\u000f\u0007\u0000\u17fd\u0426\u0001\u0000\u0000\u0000\u17fe"+ - "\u17ff\u0003+\u0015\u0000\u17ff\u1800\u0003\u000b\u0005\u0000\u1800\u1801"+ - "\u0003#\u0011\u0000\u1801\u1802\u0003%\u0012\u0000\u1802\u1803\u0003\u000f"+ - "\u0007\u0000\u1803\u0428\u0001\u0000\u0000\u0000\u1804\u1805\u0003+\u0015"+ - "\u0000\u1805\u1806\u0003\u000b\u0005\u0000\u1806\u1807\u0003#\u0011\u0000"+ - "\u1807\u1808\u0003%\u0012\u0000\u1808\u1809\u0003\u000f\u0007\u0000\u1809"+ - "\u180a\u0005_\u0000\u0000\u180a\u180b\u0003\u000b\u0005\u0000\u180b\u180c"+ - "\u0003\u0007\u0003\u0000\u180c\u180d\u0003-\u0016\u0000\u180d\u180e\u0003"+ - "\u0007\u0003\u0000\u180e\u180f\u0003\u001d\u000e\u0000\u180f\u1810\u0003"+ - "#\u0011\u0000\u1810\u1811\u0003\u0013\t\u0000\u1811\u042a\u0001\u0000"+ - "\u0000\u0000\u1812\u1813\u0003+\u0015\u0000\u1813\u1814\u0003\u000b\u0005"+ - "\u0000\u1814\u1815\u0003#\u0011\u0000\u1815\u1816\u0003%\u0012\u0000\u1816"+ - "\u1817\u0003\u000f\u0007\u0000\u1817\u1818\u0005_\u0000\u0000\u1818\u1819"+ - "\u0003!\u0010\u0000\u1819\u181a\u0003\u0007\u0003\u0000\u181a\u181b\u0003"+ - "\u001f\u000f\u0000\u181b\u181c\u0003\u000f\u0007\u0000\u181c\u042c\u0001"+ - "\u0000\u0000\u0000\u181d\u181e\u0003+\u0015\u0000\u181e\u181f\u0003\u000b"+ - "\u0005\u0000\u181f\u1820\u0003#\u0011\u0000\u1820\u1821\u0003%\u0012\u0000"+ - "\u1821\u1822\u0003\u000f\u0007\u0000\u1822\u1823\u0005_\u0000\u0000\u1823"+ - "\u1824\u0003+\u0015\u0000\u1824\u1825\u0003\u000b\u0005\u0000\u1825\u1826"+ - "\u0003\u0015\n\u0000\u1826\u1827\u0003\u000f\u0007\u0000\u1827\u1828\u0003"+ - "\u001f\u000f\u0000\u1828\u1829\u0003\u0007\u0003\u0000\u1829\u042e\u0001"+ - "\u0000\u0000\u0000\u182a\u182b\u0003+\u0015\u0000\u182b\u182c\u0003\u000b"+ - "\u0005\u0000\u182c\u182d\u0003)\u0014\u0000\u182d\u182e\u0003#\u0011\u0000"+ - "\u182e\u182f\u0003\u001d\u000e\u0000\u182f\u1830\u0003\u001d\u000e\u0000"+ - "\u1830\u0430\u0001\u0000\u0000\u0000\u1831\u1832\u0003+\u0015\u0000\u1832"+ - "\u1833\u0003\u000f\u0007\u0000\u1833\u1834\u0003\u0007\u0003\u0000\u1834"+ - "\u1835\u0003)\u0014\u0000\u1835\u1836\u0003\u000b\u0005\u0000\u1836\u1837"+ - "\u0003\u0015\n\u0000\u1837\u0432\u0001\u0000\u0000\u0000\u1838\u1839\u0003"+ - "+\u0015\u0000\u1839\u183a\u0003\u000f\u0007\u0000\u183a\u183b\u0003\u000b"+ - "\u0005\u0000\u183b\u183c\u0003#\u0011\u0000\u183c\u183d\u0003!\u0010\u0000"+ - "\u183d\u183e\u0003\r\u0006\u0000\u183e\u0434\u0001\u0000\u0000\u0000\u183f"+ - "\u1840\u0003+\u0015\u0000\u1840\u1841\u0003\u000f\u0007\u0000\u1841\u1842"+ - "\u0003\u000b\u0005\u0000\u1842\u1843\u0003-\u0016\u0000\u1843\u1844\u0003"+ - "\u0017\u000b\u0000\u1844\u1845\u0003#\u0011\u0000\u1845\u1846\u0003!\u0010"+ - "\u0000\u1846\u0436\u0001\u0000\u0000\u0000\u1847\u1848\u0003+\u0015\u0000"+ - "\u1848\u1849\u0003\u000f\u0007\u0000\u1849\u184a\u0003\u000b\u0005\u0000"+ - "\u184a\u184b\u0003/\u0017\u0000\u184b\u184c\u0003)\u0014\u0000\u184c\u184d"+ - "\u0003\u0017\u000b\u0000\u184d\u184e\u0003-\u0016\u0000\u184e\u184f\u0003"+ - "7\u001b\u0000\u184f\u0438\u0001\u0000\u0000\u0000\u1850\u1851\u0003+\u0015"+ - "\u0000\u1851\u1852\u0003\u000f\u0007\u0000\u1852\u1853\u0003\u001d\u000e"+ - "\u0000\u1853\u1854\u0003\u000f\u0007\u0000\u1854\u1855\u0003\u000b\u0005"+ - "\u0000\u1855\u1856\u0003-\u0016\u0000\u1856\u043a\u0001\u0000\u0000\u0000"+ - "\u1857\u1858\u0003+\u0015\u0000\u1858\u1859\u0003\u000f\u0007\u0000\u1859"+ - "\u185a\u0003\u001d\u000e\u0000\u185a\u185b\u0003\u0011\b\u0000\u185b\u043c"+ - "\u0001\u0000\u0000\u0000\u185c\u185d\u0003+\u0015\u0000\u185d\u185e\u0003"+ - "\u000f\u0007\u0000\u185e\u185f\u0003!\u0010\u0000\u185f\u1860\u0003+\u0015"+ - "\u0000\u1860\u1861\u0003\u0017\u000b\u0000\u1861\u1862\u0003-\u0016\u0000"+ - "\u1862\u1863\u0003\u0017\u000b\u0000\u1863\u1864\u00031\u0018\u0000\u1864"+ - "\u1865\u0003\u000f\u0007\u0000\u1865\u043e\u0001\u0000\u0000\u0000\u1866"+ - "\u1867\u0003+\u0015\u0000\u1867\u1868\u0003\u000f\u0007\u0000\u1868\u1869"+ - "\u0003\'\u0013\u0000\u1869\u186a\u0003/\u0017\u0000\u186a\u186b\u0003"+ - "\u000f\u0007\u0000\u186b\u186c\u0003!\u0010\u0000\u186c\u186d\u0003\u000b"+ - "\u0005\u0000\u186d\u186e\u0003\u000f\u0007\u0000\u186e\u0440\u0001\u0000"+ - "\u0000\u0000\u186f\u1870\u0003+\u0015\u0000\u1870\u1871\u0003\u000f\u0007"+ - "\u0000\u1871\u1872\u0003\'\u0013\u0000\u1872\u1873\u0003/\u0017\u0000"+ - "\u1873\u1874\u0003\u000f\u0007\u0000\u1874\u1875\u0003!\u0010\u0000\u1875"+ - "\u1876\u0003\u000b\u0005\u0000\u1876\u1877\u0003\u000f\u0007\u0000\u1877"+ - "\u1878\u0003+\u0015\u0000\u1878\u0442\u0001\u0000\u0000\u0000\u1879\u187a"+ - "\u0003+\u0015\u0000\u187a\u187b\u0003\u000f\u0007\u0000\u187b\u187c\u0003"+ - ")\u0014\u0000\u187c\u187d\u0003\u0017\u000b\u0000\u187d\u187e\u0003\u0007"+ - "\u0003\u0000\u187e\u187f\u0003\u001d\u000e\u0000\u187f\u1880\u0003\u0017"+ - "\u000b\u0000\u1880\u1881\u00039\u001c\u0000\u1881\u1882\u0003\u0007\u0003"+ - "\u0000\u1882\u1883\u0003\t\u0004\u0000\u1883\u1884\u0003\u001d\u000e\u0000"+ - "\u1884\u1885\u0003\u000f\u0007\u0000\u1885\u0444\u0001\u0000\u0000\u0000"+ - "\u1886\u1887\u0003+\u0015\u0000\u1887\u1888\u0003\u000f\u0007\u0000\u1888"+ - "\u1889\u0003)\u0014\u0000\u1889\u188a\u00031\u0018\u0000\u188a\u188b\u0003"+ - "\u000f\u0007\u0000\u188b\u188c\u0003)\u0014\u0000\u188c\u188d\u0005_\u0000"+ - "\u0000\u188d\u188e\u0003!\u0010\u0000\u188e\u188f\u0003\u0007\u0003\u0000"+ - "\u188f\u1890\u0003\u001f\u000f\u0000\u1890\u1891\u0003\u000f\u0007\u0000"+ - "\u1891\u0446\u0001\u0000\u0000\u0000\u1892\u1893\u0003+\u0015\u0000\u1893"+ - "\u1894\u0003\u000f\u0007\u0000\u1894\u1895\u0003+\u0015\u0000\u1895\u1896"+ - "\u0003+\u0015\u0000\u1896\u1897\u0003\u0017\u000b\u0000\u1897\u1898\u0003"+ - "#\u0011\u0000\u1898\u1899\u0003!\u0010\u0000\u1899\u0448\u0001\u0000\u0000"+ - "\u0000\u189a\u189b\u0003+\u0015\u0000\u189b\u189c\u0003\u000f\u0007\u0000"+ - "\u189c\u189d\u0003+\u0015\u0000\u189d\u189e\u0003+\u0015\u0000\u189e\u189f"+ - "\u0003\u0017\u000b\u0000\u189f\u18a0\u0003#\u0011\u0000\u18a0\u18a1\u0003"+ - "!\u0010\u0000\u18a1\u18a2\u0005_\u0000\u0000\u18a2\u18a3\u0003/\u0017"+ - "\u0000\u18a3\u18a4\u0003+\u0015\u0000\u18a4\u18a5\u0003\u000f\u0007\u0000"+ - "\u18a5\u18a6\u0003)\u0014\u0000\u18a6\u044a\u0001\u0000\u0000\u0000\u18a7"+ - "\u18a8\u0003+\u0015\u0000\u18a8\u18a9\u0003\u000f\u0007\u0000\u18a9\u18aa"+ - "\u0003-\u0016\u0000\u18aa\u044c\u0001\u0000\u0000\u0000\u18ab\u18ac\u0003"+ - "+\u0015\u0000\u18ac\u18ad\u0003\u000f\u0007\u0000\u18ad\u18ae\u0003-\u0016"+ - "\u0000\u18ae\u18af\u0003#\u0011\u0000\u18af\u18b0\u0003\u0011\b\u0000"+ - "\u18b0\u044e\u0001\u0000\u0000\u0000\u18b1\u18b2\u0003+\u0015\u0000\u18b2"+ - "\u18b3\u0003\u000f\u0007\u0000\u18b3\u18b4\u0003-\u0016\u0000\u18b4\u18b5"+ - "\u0003+\u0015\u0000\u18b5\u0450\u0001\u0000\u0000\u0000\u18b6\u18b7\u0003"+ - "+\u0015\u0000\u18b7\u18b8\u0003\u0015\n\u0000\u18b8\u18b9\u0003\u0007"+ - "\u0003\u0000\u18b9\u18ba\u0003)\u0014\u0000\u18ba\u18bb\u0003\u000f\u0007"+ - "\u0000\u18bb\u0452\u0001\u0000\u0000\u0000\u18bc\u18bd\u0003+\u0015\u0000"+ - "\u18bd\u18be\u0003\u0015\n\u0000\u18be\u18bf\u0003#\u0011\u0000\u18bf"+ - "\u18c0\u00033\u0019\u0000\u18c0\u0454\u0001\u0000\u0000\u0000\u18c1\u18c2"+ - "\u0003+\u0015\u0000\u18c2\u18c3\u0003\u0017\u000b\u0000\u18c3\u18c4\u0003"+ - "\u001f\u000f\u0000\u18c4\u18c5\u0003\u0017\u000b\u0000\u18c5\u18c6\u0003"+ - "\u001d\u000e\u0000\u18c6\u18c7\u0003\u0007\u0003\u0000\u18c7\u18c8\u0003"+ - ")\u0014\u0000\u18c8\u0456\u0001\u0000\u0000\u0000\u18c9\u18ca\u0003+\u0015"+ - "\u0000\u18ca\u18cb\u0003\u0017\u000b\u0000\u18cb\u18cc\u0003\u001f\u000f"+ - "\u0000\u18cc\u18cd\u0003%\u0012\u0000\u18cd\u18ce\u0003\u001d\u000e\u0000"+ - "\u18ce\u18cf\u0003\u000f\u0007\u0000\u18cf\u0458\u0001\u0000\u0000\u0000"+ - "\u18d0\u18d1\u0003+\u0015\u0000\u18d1\u18d2\u0003\u0017\u000b\u0000\u18d2"+ - "\u18d3\u00039\u001c\u0000\u18d3\u18d4\u0003\u000f\u0007\u0000\u18d4\u045a"+ - "\u0001\u0000\u0000\u0000\u18d5\u18d6\u0003+\u0015\u0000\u18d6\u18d7\u0003"+ - "\u001b\r\u0000\u18d7\u18d8\u0003\u0017\u000b\u0000\u18d8\u18d9\u0003%"+ - "\u0012\u0000\u18d9\u045c\u0001\u0000\u0000\u0000\u18da\u18db\u0003+\u0015"+ - "\u0000\u18db\u18dc\u0003\u001f\u000f\u0000\u18dc\u18dd\u0003\u0007\u0003"+ - "\u0000\u18dd\u18de\u0003\u001d\u000e\u0000\u18de\u18df\u0003\u001d\u000e"+ - "\u0000\u18df\u18e0\u0003\u0017\u000b\u0000\u18e0\u18e1\u0003!\u0010\u0000"+ - "\u18e1\u18e2\u0003-\u0016\u0000\u18e2\u045e\u0001\u0000\u0000\u0000\u18e3"+ - "\u18e4\u0003+\u0015\u0000\u18e4\u18e5\u0003!\u0010\u0000\u18e5\u18e6\u0003"+ - "\u0007\u0003\u0000\u18e6\u18e7\u0003%\u0012\u0000\u18e7\u18e8\u0003+\u0015"+ - "\u0000\u18e8\u18e9\u0003\u0015\n\u0000\u18e9\u18ea\u0003#\u0011\u0000"+ - "\u18ea\u18eb\u0003-\u0016\u0000\u18eb\u0460\u0001\u0000\u0000\u0000\u18ec"+ - "\u18ed\u0003+\u0015\u0000\u18ed\u18ee\u0003#\u0011\u0000\u18ee\u18ef\u0003"+ - "\u001f\u000f\u0000\u18ef\u18f0\u0003\u000f\u0007\u0000\u18f0\u0462\u0001"+ - "\u0000\u0000\u0000\u18f1\u18f2\u0003+\u0015\u0000\u18f2\u18f3\u0003#\u0011"+ - "\u0000\u18f3\u18f4\u0003/\u0017\u0000\u18f4\u18f5\u0003)\u0014\u0000\u18f5"+ - "\u18f6\u0003\u000b\u0005\u0000\u18f6\u18f7\u0003\u000f\u0007\u0000\u18f7"+ - "\u0464\u0001\u0000\u0000\u0000\u18f8\u18f9\u0003+\u0015\u0000\u18f9\u18fa"+ - "\u0003%\u0012\u0000\u18fa\u18fb\u0003\u0007\u0003\u0000\u18fb\u18fc\u0003"+ - "\u000b\u0005\u0000\u18fc\u18fd\u0003\u000f\u0007\u0000\u18fd\u0466\u0001"+ - "\u0000\u0000\u0000\u18fe\u18ff\u0003+\u0015\u0000\u18ff\u1900\u0003%\u0012"+ - "\u0000\u1900\u1901\u0003\u000f\u0007\u0000\u1901\u1902\u0003\u000b\u0005"+ - "\u0000\u1902\u1903\u0003\u0017\u000b\u0000\u1903\u1904\u0003\u0011\b\u0000"+ - "\u1904\u1905\u0003\u0017\u000b\u0000\u1905\u1906\u0003\u000b\u0005\u0000"+ - "\u1906\u0468\u0001\u0000\u0000\u0000\u1907\u1908\u0003+\u0015\u0000\u1908"+ - "\u1909\u0003%\u0012\u0000\u1909\u190a\u0003\u000f\u0007\u0000\u190a\u190b"+ - "\u0003\u000b\u0005\u0000\u190b\u190c\u0003\u0017\u000b\u0000\u190c\u190d"+ - "\u0003\u0011\b\u0000\u190d\u190e\u0003\u0017\u000b\u0000\u190e\u190f\u0003"+ - "\u000b\u0005\u0000\u190f\u1910\u0005_\u0000\u0000\u1910\u1911\u0003!\u0010"+ - "\u0000\u1911\u1912\u0003\u0007\u0003\u0000\u1912\u1913\u0003\u001f\u000f"+ - "\u0000\u1913\u1914\u0003\u000f\u0007\u0000\u1914\u046a\u0001\u0000\u0000"+ - "\u0000\u1915\u1916\u0003+\u0015\u0000\u1916\u1917\u0003%\u0012\u0000\u1917"+ - "\u1918\u0003\u000f\u0007\u0000\u1918\u1919\u0003\u000b\u0005\u0000\u1919"+ - "\u191a\u0003\u0017\u000b\u0000\u191a\u191b\u0003\u0011\b\u0000\u191b\u191c"+ - "\u0003\u0017\u000b\u0000\u191c\u191d\u0003\u000b\u0005\u0000\u191d\u191e"+ - "\u0003-\u0016\u0000\u191e\u191f\u00037\u001b\u0000\u191f\u1920\u0003%"+ - "\u0012\u0000\u1920\u1921\u0003\u000f\u0007\u0000\u1921\u046c\u0001\u0000"+ - "\u0000\u0000\u1922\u1923\u0003+\u0015\u0000\u1923\u1924\u0003\'\u0013"+ - "\u0000\u1924\u1925\u0003\u001d\u000e\u0000\u1925\u046e\u0001\u0000\u0000"+ - "\u0000\u1926\u1927\u0003+\u0015\u0000\u1927\u1928\u0003\'\u0013\u0000"+ - "\u1928\u1929\u0003\u001d\u000e\u0000\u1929\u192a\u0003\u000b\u0005\u0000"+ - "\u192a\u192b\u0003#\u0011\u0000\u192b\u192c\u0003\r\u0006\u0000\u192c"+ - "\u192d\u0003\u000f\u0007\u0000\u192d\u0470\u0001\u0000\u0000\u0000\u192e"+ - "\u192f\u0003+\u0015\u0000\u192f\u1930\u0003\'\u0013\u0000\u1930\u1931"+ - "\u0003\u001d\u000e\u0000\u1931\u1932\u0003\u000f\u0007\u0000\u1932\u1933"+ - "\u0003)\u0014\u0000\u1933\u1934\u0003)\u0014\u0000\u1934\u1935\u0003#"+ - "\u0011\u0000\u1935\u1936\u0003)\u0014\u0000\u1936\u0472\u0001\u0000\u0000"+ - "\u0000\u1937\u1938\u0003+\u0015\u0000\u1938\u1939\u0003\'\u0013\u0000"+ - "\u1939\u193a\u0003\u001d\u000e\u0000\u193a\u193b\u0003\u000f\u0007\u0000"+ - "\u193b\u193c\u00035\u001a\u0000\u193c\u193d\u0003\u000b\u0005\u0000\u193d"+ - "\u193e\u0003\u000f\u0007\u0000\u193e\u193f\u0003%\u0012\u0000\u193f\u1940"+ - "\u0003-\u0016\u0000\u1940\u1941\u0003\u0017\u000b\u0000\u1941\u1942\u0003"+ - "#\u0011\u0000\u1942\u1943\u0003!\u0010\u0000\u1943\u0474\u0001\u0000\u0000"+ - "\u0000\u1944\u1945\u0003+\u0015\u0000\u1945\u1946\u0003\'\u0013\u0000"+ - "\u1946\u1947\u0003\u001d\u000e\u0000\u1947\u1948\u0003+\u0015\u0000\u1948"+ - "\u1949\u0003-\u0016\u0000\u1949\u194a\u0003\u0007\u0003\u0000\u194a\u194b"+ - "\u0003-\u0016\u0000\u194b\u194c\u0003\u000f\u0007\u0000\u194c\u0476\u0001"+ - "\u0000\u0000\u0000\u194d\u194e\u0003+\u0015\u0000\u194e\u194f\u0003\'"+ - "\u0013\u0000\u194f\u1950\u0003\u001d\u000e\u0000\u1950\u1951\u00033\u0019"+ - "\u0000\u1951\u1952\u0003\u0007\u0003\u0000\u1952\u1953\u0003)\u0014\u0000"+ - "\u1953\u1954\u0003!\u0010\u0000\u1954\u1955\u0003\u0017\u000b\u0000\u1955"+ - "\u1956\u0003!\u0010\u0000\u1956\u1957\u0003\u0013\t\u0000\u1957\u0478"+ - "\u0001\u0000\u0000\u0000\u1958\u1959\u0003+\u0015\u0000\u1959\u195a\u0003"+ - "\'\u0013\u0000\u195a\u195b\u0003)\u0014\u0000\u195b\u195c\u0003-\u0016"+ - "\u0000\u195c\u047a\u0001\u0000\u0000\u0000\u195d\u195e\u0003+\u0015\u0000"+ - "\u195e\u195f\u0003-\u0016\u0000\u195f\u1960\u0003\u0007\u0003\u0000\u1960"+ - "\u1961\u0003\t\u0004\u0000\u1961\u1962\u0003\u001d\u000e\u0000\u1962\u1963"+ - "\u0003\u000f\u0007\u0000\u1963\u047c\u0001\u0000\u0000\u0000\u1964\u1965"+ - "\u0003+\u0015\u0000\u1965\u1966\u0003-\u0016\u0000\u1966\u1967\u0003\u0007"+ - "\u0003\u0000\u1967\u1968\u0003)\u0014\u0000\u1968\u1969\u0003-\u0016\u0000"+ - "\u1969\u047e\u0001\u0000\u0000\u0000\u196a\u196b\u0003+\u0015\u0000\u196b"+ - "\u196c\u0003-\u0016\u0000\u196c\u196d\u0003\u0007\u0003\u0000\u196d\u196e"+ - "\u0003-\u0016\u0000\u196e\u196f\u0003\u000f\u0007\u0000\u196f\u0480\u0001"+ - "\u0000\u0000\u0000\u1970\u1971\u0003+\u0015\u0000\u1971\u1972\u0003-\u0016"+ - "\u0000\u1972\u1973\u0003\u0007\u0003\u0000\u1973\u1974\u0003-\u0016\u0000"+ - "\u1974\u1975\u0003\u000f\u0007\u0000\u1975\u1976\u0003\u001f\u000f\u0000"+ - "\u1976\u1977\u0003\u000f\u0007\u0000\u1977\u1978\u0003!\u0010\u0000\u1978"+ - "\u1979\u0003-\u0016\u0000\u1979\u0482\u0001\u0000\u0000\u0000\u197a\u197b"+ - "\u0003+\u0015\u0000\u197b\u197c\u0003-\u0016\u0000\u197c\u197d\u0003\u0007"+ - "\u0003\u0000\u197d\u197e\u0003-\u0016\u0000\u197e\u197f\u0003\u0017\u000b"+ - "\u0000\u197f\u1980\u0003\u000b\u0005\u0000\u1980\u0484\u0001\u0000\u0000"+ - "\u0000\u1981\u1982\u0003+\u0015\u0000\u1982\u1983\u0003-\u0016\u0000\u1983"+ - "\u1984\u0003\u0007\u0003\u0000\u1984\u1985\u0003-\u0016\u0000\u1985\u1986"+ - "\u0003\u0017\u000b\u0000\u1986\u1987\u0003+\u0015\u0000\u1987\u1988\u0003"+ - "-\u0016\u0000\u1988\u1989\u0003\u0017\u000b\u0000\u1989\u198a\u0003\u000b"+ - "\u0005\u0000\u198a\u198b\u0003+\u0015\u0000\u198b\u0486\u0001\u0000\u0000"+ - "\u0000\u198c\u198d\u0003+\u0015\u0000\u198d\u198e\u0003-\u0016\u0000\u198e"+ - "\u198f\u0003\r\u0006\u0000\u198f\u1990\u0003\r\u0006\u0000\u1990\u1991"+ - "\u0003\u000f\u0007\u0000\u1991\u1992\u00031\u0018\u0000\u1992\u1993\u0005"+ - "_\u0000\u0000\u1993\u1994\u0003%\u0012\u0000\u1994\u1995\u0003#\u0011"+ - "\u0000\u1995\u1996\u0003%\u0012\u0000\u1996\u0488\u0001\u0000\u0000\u0000"+ - "\u1997\u1998\u0003+\u0015\u0000\u1998\u1999\u0003-\u0016\u0000\u1999\u199a"+ - "\u0003\r\u0006\u0000\u199a\u199b\u0003\r\u0006\u0000\u199b\u199c\u0003"+ - "\u000f\u0007\u0000\u199c\u199d\u00031\u0018\u0000\u199d\u199e\u0005_\u0000"+ - "\u0000\u199e\u199f\u0003+\u0015\u0000\u199f\u19a0\u0003\u0007\u0003\u0000"+ - "\u19a0\u19a1\u0003\u001f\u000f\u0000\u19a1\u19a2\u0003%\u0012\u0000\u19a2"+ - "\u048a\u0001\u0000\u0000\u0000\u19a3\u19a4\u0003+\u0015\u0000\u19a4\u19a5"+ - "\u0003-\u0016\u0000\u19a5\u19a6\u0003\r\u0006\u0000\u19a6\u19a7\u0003"+ - "\u0017\u000b\u0000\u19a7\u19a8\u0003!\u0010\u0000\u19a8\u048c\u0001\u0000"+ - "\u0000\u0000\u19a9\u19aa\u0003+\u0015\u0000\u19aa\u19ab\u0003-\u0016\u0000"+ - "\u19ab\u19ac\u0003\r\u0006\u0000\u19ac\u19ad\u0003#\u0011\u0000\u19ad"+ - "\u19ae\u0003/\u0017\u0000\u19ae\u19af\u0003-\u0016\u0000\u19af\u048e\u0001"+ - "\u0000\u0000\u0000\u19b0\u19b1\u0003+\u0015\u0000\u19b1\u19b2\u0003-\u0016"+ - "\u0000\u19b2\u19b3\u0003#\u0011\u0000\u19b3\u19b4\u0003)\u0014\u0000\u19b4"+ - "\u19b5\u0003\u0007\u0003\u0000\u19b5\u19b6\u0003\u0013\t\u0000\u19b6\u19b7"+ - "\u0003\u000f\u0007\u0000\u19b7\u0490\u0001\u0000\u0000\u0000\u19b8\u19b9"+ - "\u0003+\u0015\u0000\u19b9\u19ba\u0003-\u0016\u0000\u19ba\u19bb\u0003)"+ - "\u0014\u0000\u19bb\u19bc\u0003\u0017\u000b\u0000\u19bc\u19bd\u0003\u000b"+ - "\u0005\u0000\u19bd\u19be\u0003-\u0016\u0000\u19be\u0492\u0001\u0000\u0000"+ - "\u0000\u19bf\u19c0\u0003+\u0015\u0000\u19c0\u19c1\u0003-\u0016\u0000\u19c1"+ - "\u19c2\u0003)\u0014\u0000\u19c2\u19c3\u0003/\u0017\u0000\u19c3\u19c4\u0003"+ - "\u000b\u0005\u0000\u19c4\u19c5\u0003-\u0016\u0000\u19c5\u19c6\u0003/\u0017"+ - "\u0000\u19c6\u19c7\u0003)\u0014\u0000\u19c7\u19c8\u0003\u000f\u0007\u0000"+ - "\u19c8\u0494\u0001\u0000\u0000\u0000\u19c9\u19ca\u0003+\u0015\u0000\u19ca"+ - "\u19cb\u0003-\u0016\u0000\u19cb\u19cc\u00037\u001b\u0000\u19cc\u19cd\u0003"+ - "\u001d\u000e\u0000\u19cd\u19ce\u0003\u000f\u0007\u0000\u19ce\u0496\u0001"+ - "\u0000\u0000\u0000\u19cf\u19d0\u0003+\u0015\u0000\u19d0\u19d1\u0003/\u0017"+ - "\u0000\u19d1\u19d2\u0003\t\u0004\u0000\u19d2\u19d3\u0003\u000b\u0005\u0000"+ - "\u19d3\u19d4\u0003\u001d\u000e\u0000\u19d4\u19d5\u0003\u0007\u0003\u0000"+ - "\u19d5\u19d6\u0003+\u0015\u0000\u19d6\u19d7\u0003+\u0015\u0000\u19d7\u19d8"+ - "\u0005_\u0000\u0000\u19d8\u19d9\u0003#\u0011\u0000\u19d9\u19da\u0003)"+ - "\u0014\u0000\u19da\u19db\u0003\u0017\u000b\u0000\u19db\u19dc\u0003\u0013"+ - "\t\u0000\u19dc\u19dd\u0003\u0017\u000b\u0000\u19dd\u19de\u0003!\u0010"+ - "\u0000\u19de\u0498\u0001\u0000\u0000\u0000\u19df\u19e0\u0003+\u0015\u0000"+ - "\u19e0\u19e1\u0003/\u0017\u0000\u19e1\u19e2\u0003\t\u0004\u0000\u19e2"+ - "\u19e3\u0003\u001d\u000e\u0000\u19e3\u19e4\u0003\u0017\u000b\u0000\u19e4"+ - "\u19e5\u0003+\u0015\u0000\u19e5\u19e6\u0003-\u0016\u0000\u19e6\u049a\u0001"+ - "\u0000\u0000\u0000\u19e7\u19e8\u0003+\u0015\u0000\u19e8\u19e9\u0003/\u0017"+ - "\u0000\u19e9\u19ea\u0003\t\u0004\u0000\u19ea\u19eb\u0003\u001f\u000f\u0000"+ - "\u19eb\u19ec\u0003/\u0017\u0000\u19ec\u19ed\u0003\u001d\u000e\u0000\u19ed"+ - "\u19ee\u0003-\u0016\u0000\u19ee\u19ef\u0003\u0017\u000b\u0000\u19ef\u19f0"+ - "\u0003+\u0015\u0000\u19f0\u19f1\u0003\u000f\u0007\u0000\u19f1\u19f2\u0003"+ - "-\u0016\u0000\u19f2\u049c\u0001\u0000\u0000\u0000\u19f3\u19f4\u0003+\u0015"+ - "\u0000\u19f4\u19f5\u0003/\u0017\u0000\u19f5\u19f6\u0003\t\u0004\u0000"+ - "\u19f6\u19f7\u0003+\u0015\u0000\u19f7\u19f8\u0003\u000b\u0005\u0000\u19f8"+ - "\u19f9\u0003)\u0014\u0000\u19f9\u19fa\u0003\u0017\u000b\u0000\u19fa\u19fb"+ - "\u0003%\u0012\u0000\u19fb\u19fc\u0003-\u0016\u0000\u19fc\u19fd\u0003\u0017"+ - "\u000b\u0000\u19fd\u19fe\u0003#\u0011\u0000\u19fe\u19ff\u0003!\u0010\u0000"+ - "\u19ff\u049e\u0001\u0000\u0000\u0000\u1a00\u1a01\u0003+\u0015\u0000\u1a01"+ - "\u1a02\u0003/\u0017\u0000\u1a02\u1a03\u0003\t\u0004\u0000\u1a03\u1a04"+ - "\u0003+\u0015\u0000\u1a04\u1a05\u0003-\u0016\u0000\u1a05\u1a06\u0003)"+ - "\u0014\u0000\u1a06\u1a07\u0003\u0017\u000b\u0000\u1a07\u1a08\u0003!\u0010"+ - "\u0000\u1a08\u1a09\u0003\u0013\t\u0000\u1a09\u04a0\u0001\u0000\u0000\u0000"+ - "\u1a0a\u1a0b\u0003+\u0015\u0000\u1a0b\u1a0c\u0003/\u0017\u0000\u1a0c\u1a0d"+ - "\u0003\u001f\u000f\u0000\u1a0d\u04a2\u0001\u0000\u0000\u0000\u1a0e\u1a0f"+ - "\u0003+\u0015\u0000\u1a0f\u1a10\u00037\u001b\u0000\u1a10\u1a11\u0003\u001f"+ - "\u000f\u0000\u1a11\u1a12\u0003\u001f\u000f\u0000\u1a12\u1a13\u0003\u000f"+ - "\u0007\u0000\u1a13\u1a14\u0003-\u0016\u0000\u1a14\u1a15\u0003)\u0014\u0000"+ - "\u1a15\u1a16\u0003\u0017\u000b\u0000\u1a16\u1a17\u0003\u000b\u0005\u0000"+ - "\u1a17\u04a4\u0001\u0000\u0000\u0000\u1a18\u1a19\u0003+\u0015\u0000\u1a19"+ - "\u1a1a\u00037\u001b\u0000\u1a1a\u1a1b\u0003+\u0015\u0000\u1a1b\u1a1c\u0003"+ - "\u0017\u000b\u0000\u1a1c\u1a1d\u0003\r\u0006\u0000\u1a1d\u04a6\u0001\u0000"+ - "\u0000\u0000\u1a1e\u1a1f\u0003+\u0015\u0000\u1a1f\u1a20\u00037\u001b\u0000"+ - "\u1a20\u1a21\u0003+\u0015\u0000\u1a21\u1a22\u0003-\u0016\u0000\u1a22\u1a23"+ - "\u0003\u000f\u0007\u0000\u1a23\u1a24\u0003\u001f\u000f\u0000\u1a24\u04a8"+ - "\u0001\u0000\u0000\u0000\u1a25\u1a26\u0003+\u0015\u0000\u1a26\u1a27\u0003"+ - "7\u001b\u0000\u1a27\u1a28\u0003+\u0015\u0000\u1a28\u1a29\u0003-\u0016"+ - "\u0000\u1a29\u1a2a\u0003\u000f\u0007\u0000\u1a2a\u1a2b\u0003\u001f\u000f"+ - "\u0000\u1a2b\u1a2c\u0005_\u0000\u0000\u1a2c\u1a2d\u0003/\u0017\u0000\u1a2d"+ - "\u1a2e\u0003+\u0015\u0000\u1a2e\u1a2f\u0003\u000f\u0007\u0000\u1a2f\u1a30"+ - "\u0003)\u0014\u0000\u1a30\u04aa\u0001\u0000\u0000\u0000\u1a31\u1a32\u0003"+ - "-\u0016\u0000\u1a32\u1a33\u0003\u0007\u0003\u0000\u1a33\u1a34\u0003\t"+ - "\u0004\u0000\u1a34\u1a35\u0003\u001d\u000e\u0000\u1a35\u1a36\u0003\u000f"+ - "\u0007\u0000\u1a36\u04ac\u0001\u0000\u0000\u0000\u1a37\u1a38\u0003-\u0016"+ - "\u0000\u1a38\u1a39\u0003\u0007\u0003\u0000\u1a39\u1a3a\u0003\t\u0004\u0000"+ - "\u1a3a\u1a3b\u0003\u001d\u000e\u0000\u1a3b\u1a3c\u0003\u000f\u0007\u0000"+ - "\u1a3c\u1a3d\u0005_\u0000\u0000\u1a3d\u1a3e\u0003!\u0010\u0000\u1a3e\u1a3f"+ - "\u0003\u0007\u0003\u0000\u1a3f\u1a40\u0003\u001f\u000f\u0000\u1a40\u1a41"+ - "\u0003\u000f\u0007\u0000\u1a41\u04ae\u0001\u0000\u0000\u0000\u1a42\u1a43"+ - "\u0003-\u0016\u0000\u1a43\u1a44\u0003\u0007\u0003\u0000\u1a44\u1a45\u0003"+ - "\t\u0004\u0000\u1a45\u1a46\u0003\u001d\u000e\u0000\u1a46\u1a47\u0003\u000f"+ - "\u0007\u0000\u1a47\u1a48\u0003+\u0015\u0000\u1a48\u1a49\u0003\u0007\u0003"+ - "\u0000\u1a49\u1a4a\u0003\u001f\u000f\u0000\u1a4a\u1a4b\u0003%\u0012\u0000"+ - "\u1a4b\u1a4c\u0003\u001d\u000e\u0000\u1a4c\u1a4d\u0003\u000f\u0007\u0000"+ - "\u1a4d\u04b0\u0001\u0000\u0000\u0000\u1a4e\u1a4f\u0003-\u0016\u0000\u1a4f"+ - "\u1a50\u0003\u0007\u0003\u0000\u1a50\u1a51\u0003\t\u0004\u0000\u1a51\u1a52"+ - "\u0003\u001d\u000e\u0000\u1a52\u1a53\u0003\u000f\u0007\u0000\u1a53\u1a54"+ - "\u0003+\u0015\u0000\u1a54\u1a55\u0003%\u0012\u0000\u1a55\u1a56\u0003\u0007"+ - "\u0003\u0000\u1a56\u1a57\u0003\u000b\u0005\u0000\u1a57\u1a58\u0003\u000f"+ - "\u0007\u0000\u1a58\u04b2\u0001\u0000\u0000\u0000\u1a59\u1a5a\u0003-\u0016"+ - "\u0000\u1a5a\u1a5b\u0003\u000f\u0007\u0000\u1a5b\u1a5c\u0003\u001f\u000f"+ - "\u0000\u1a5c\u1a5d\u0003%\u0012\u0000\u1a5d\u04b4\u0001\u0000\u0000\u0000"+ - "\u1a5e\u1a5f\u0003-\u0016\u0000\u1a5f\u1a60\u0003\u000f\u0007\u0000\u1a60"+ - "\u1a61\u0003\u001f\u000f\u0000\u1a61\u1a62\u0003%\u0012\u0000\u1a62\u1a63"+ - "\u0003\u001d\u000e\u0000\u1a63\u1a64\u0003\u0007\u0003\u0000\u1a64\u1a65"+ - "\u0003-\u0016\u0000\u1a65\u1a66\u0003\u000f\u0007\u0000\u1a66\u04b6\u0001"+ - "\u0000\u0000\u0000\u1a67\u1a68\u0003-\u0016\u0000\u1a68\u1a69\u0003\u000f"+ - "\u0007\u0000\u1a69\u1a6a\u0003\u001f\u000f\u0000\u1a6a\u1a6b\u0003%\u0012"+ - "\u0000\u1a6b\u1a6c\u0003#\u0011\u0000\u1a6c\u1a6d\u0003)\u0014\u0000\u1a6d"+ - "\u1a6e\u0003\u0007\u0003\u0000\u1a6e\u1a6f\u0003)\u0014\u0000\u1a6f\u1a70"+ - "\u00037\u001b\u0000\u1a70\u04b8\u0001\u0000\u0000\u0000\u1a71\u1a72\u0003"+ - "-\u0016\u0000\u1a72\u1a73\u0003\u000f\u0007\u0000\u1a73\u1a74\u0003)\u0014"+ - "\u0000\u1a74\u1a75\u0003\u001f\u000f\u0000\u1a75\u1a76\u0003\u0017\u000b"+ - "\u0000\u1a76\u1a77\u0003!\u0010\u0000\u1a77\u1a78\u0003\u0007\u0003\u0000"+ - "\u1a78\u1a79\u0003-\u0016\u0000\u1a79\u1a7a\u0003\u000f\u0007\u0000\u1a7a"+ - "\u04ba\u0001\u0000\u0000\u0000\u1a7b\u1a7c\u0003-\u0016\u0000\u1a7c\u1a7d"+ - "\u0003\u0015\n\u0000\u1a7d\u1a7e\u0003\u0007\u0003\u0000\u1a7e\u1a7f\u0003"+ - "!\u0010\u0000\u1a7f\u04bc\u0001\u0000\u0000\u0000\u1a80\u1a81\u0003-\u0016"+ - "\u0000\u1a81\u1a82\u0003\u0015\n\u0000\u1a82\u1a83\u0003\u000f\u0007\u0000"+ - "\u1a83\u1a84\u0003!\u0010\u0000\u1a84\u04be\u0001\u0000\u0000\u0000\u1a85"+ - "\u1a86\u0003-\u0016\u0000\u1a86\u1a87\u0003\u0017\u000b\u0000\u1a87\u1a88"+ - "\u0003\u000f\u0007\u0000\u1a88\u1a89\u0003+\u0015\u0000\u1a89\u04c0\u0001"+ - "\u0000\u0000\u0000\u1a8a\u1a8b\u0003-\u0016\u0000\u1a8b\u1a8c\u0003\u0017"+ - "\u000b\u0000\u1a8c\u1a8d\u0003\u001f\u000f\u0000\u1a8d\u1a8e\u0003\u000f"+ - "\u0007\u0000\u1a8e\u04c2\u0001\u0000\u0000\u0000\u1a8f\u1a90\u0003-\u0016"+ - "\u0000\u1a90\u1a91\u0003\u0017\u000b\u0000\u1a91\u1a92\u0003\u001f\u000f"+ - "\u0000\u1a92\u1a93\u0003\u000f\u0007\u0000\u1a93\u1a94\u0003+\u0015\u0000"+ - "\u1a94\u1a95\u0003-\u0016\u0000\u1a95\u1a96\u0003\u0007\u0003\u0000\u1a96"+ - "\u1a97\u0003\u001f\u000f\u0000\u1a97\u1a98\u0003%\u0012\u0000\u1a98\u04c4"+ - "\u0001\u0000\u0000\u0000\u1a99\u1a9a\u0003-\u0016\u0000\u1a9a\u1a9b\u0003"+ - "\u0017\u000b\u0000\u1a9b\u1a9c\u0003\u001f\u000f\u0000\u1a9c\u1a9d\u0003"+ - "\u000f\u0007\u0000\u1a9d\u1a9e\u00039\u001c\u0000\u1a9e\u1a9f\u0003#\u0011"+ - "\u0000\u1a9f\u1aa0\u0003!\u0010\u0000\u1aa0\u1aa1\u0003\u000f\u0007\u0000"+ - "\u1aa1\u1aa2\u0005_\u0000\u0000\u1aa2\u1aa3\u0003\u0015\n\u0000\u1aa3"+ - "\u1aa4\u0003#\u0011\u0000\u1aa4\u1aa5\u0003/\u0017\u0000\u1aa5\u1aa6\u0003"+ - ")\u0014\u0000\u1aa6\u04c6\u0001\u0000\u0000\u0000\u1aa7\u1aa8\u0003-\u0016"+ - "\u0000\u1aa8\u1aa9\u0003\u0017\u000b\u0000\u1aa9\u1aaa\u0003\u001f\u000f"+ - "\u0000\u1aaa\u1aab\u0003\u000f\u0007\u0000\u1aab\u1aac\u00039\u001c\u0000"+ - "\u1aac\u1aad\u0003#\u0011\u0000\u1aad\u1aae\u0003!\u0010\u0000\u1aae\u1aaf"+ - "\u0003\u000f\u0007\u0000\u1aaf\u1ab0\u0005_\u0000\u0000\u1ab0\u1ab1\u0003"+ - "\u001f\u000f\u0000\u1ab1\u1ab2\u0003\u0017\u000b\u0000\u1ab2\u1ab3\u0003"+ - "!\u0010\u0000\u1ab3\u1ab4\u0003/\u0017\u0000\u1ab4\u1ab5\u0003-\u0016"+ - "\u0000\u1ab5\u1ab6\u0003\u000f\u0007\u0000\u1ab6\u04c8\u0001\u0000\u0000"+ - "\u0000\u1ab7\u1ab8\u0003-\u0016\u0000\u1ab8\u1ab9\u0003\u0017\u000b\u0000"+ - "\u1ab9\u1aba\u0003\u001f\u000f\u0000\u1aba\u1abb\u0003\u0017\u000b\u0000"+ - "\u1abb\u1abc\u0003!\u0010\u0000\u1abc\u1abd\u0003\u0013\t\u0000\u1abd"+ - "\u04ca\u0001\u0000\u0000\u0000\u1abe\u1abf\u0003-\u0016\u0000\u1abf\u1ac0"+ - "\u0003#\u0011\u0000\u1ac0\u04cc\u0001\u0000\u0000\u0000\u1ac1\u1ac2\u0003"+ - "-\u0016\u0000\u1ac2\u1ac3\u0003#\u0011\u0000\u1ac3\u1ac4\u0003\u0007\u0003"+ - "\u0000\u1ac4\u1ac5\u0003+\u0015\u0000\u1ac5\u1ac6\u0003-\u0016\u0000\u1ac6"+ - "\u04ce\u0001\u0000\u0000\u0000\u1ac7\u1ac8\u0003-\u0016\u0000\u1ac8\u1ac9"+ - "\u0003#\u0011\u0000\u1ac9\u1aca\u0003%\u0012\u0000\u1aca\u1acb\u0005_"+ - "\u0000\u0000\u1acb\u1acc\u0003\u001d\u000e\u0000\u1acc\u1acd\u0003\u000f"+ - "\u0007\u0000\u1acd\u1ace\u00031\u0018\u0000\u1ace\u1acf\u0003\u000f\u0007"+ - "\u0000\u1acf\u1ad0\u0003\u001d\u000e\u0000\u1ad0\u1ad1\u0005_\u0000\u0000"+ - "\u1ad1\u1ad2\u0003\u000b\u0005\u0000\u1ad2\u1ad3\u0003#\u0011\u0000\u1ad3"+ - "\u1ad4\u0003/\u0017\u0000\u1ad4\u1ad5\u0003!\u0010\u0000\u1ad5\u1ad6\u0003"+ - "-\u0016\u0000\u1ad6\u04d0\u0001\u0000\u0000\u0000\u1ad7\u1ad8\u0003-\u0016"+ - "\u0000\u1ad8\u1ad9\u0003)\u0014\u0000\u1ad9\u1ada\u0003\u0007\u0003\u0000"+ - "\u1ada\u1adb\u0003\u0017\u000b\u0000\u1adb\u1adc\u0003\u001d\u000e\u0000"+ - "\u1adc\u1add\u0003\u0017\u000b\u0000\u1add\u1ade\u0003!\u0010\u0000\u1ade"+ - "\u1adf\u0003\u0013\t\u0000\u1adf\u04d2\u0001\u0000\u0000\u0000\u1ae0\u1ae1"+ - "\u0003-\u0016\u0000\u1ae1\u1ae2\u0003)\u0014\u0000\u1ae2\u1ae3\u0003\u0007"+ - "\u0003\u0000\u1ae3\u1ae4\u0003!\u0010\u0000\u1ae4\u1ae5\u0003+\u0015\u0000"+ - "\u1ae5\u1ae6\u0003\u0007\u0003\u0000\u1ae6\u1ae7\u0003\u000b\u0005\u0000"+ - "\u1ae7\u1ae8\u0003-\u0016\u0000\u1ae8\u1ae9\u0003\u0017\u000b\u0000\u1ae9"+ - "\u1aea\u0003#\u0011\u0000\u1aea\u1aeb\u0003!\u0010\u0000\u1aeb\u04d4\u0001"+ - "\u0000\u0000\u0000\u1aec\u1aed\u0003-\u0016\u0000\u1aed\u1aee\u0003)\u0014"+ - "\u0000\u1aee\u1aef\u0003\u0007\u0003\u0000\u1aef\u1af0\u0003!\u0010\u0000"+ - "\u1af0\u1af1\u0003+\u0015\u0000\u1af1\u1af2\u0003\u0007\u0003\u0000\u1af2"+ - "\u1af3\u0003\u000b\u0005\u0000\u1af3\u1af4\u0003-\u0016\u0000\u1af4\u1af5"+ - "\u0003\u0017\u000b\u0000\u1af5\u1af6\u0003#\u0011\u0000\u1af6\u1af7\u0003"+ - "!\u0010\u0000\u1af7\u1af8\u0005_\u0000\u0000\u1af8\u1af9\u0003\u0007\u0003"+ - "\u0000\u1af9\u1afa\u0003\u000b\u0005\u0000\u1afa\u1afb\u0003-\u0016\u0000"+ - "\u1afb\u1afc\u0003\u0017\u000b\u0000\u1afc\u1afd\u00031\u0018\u0000\u1afd"+ - "\u1afe\u0003\u000f\u0007\u0000\u1afe\u04d6\u0001\u0000\u0000\u0000\u1aff"+ - "\u1b00\u0003-\u0016\u0000\u1b00\u1b01\u0003)\u0014\u0000\u1b01\u1b02\u0003"+ - "\u0007\u0003\u0000\u1b02\u1b03\u0003!\u0010\u0000\u1b03\u1b04\u0003+\u0015"+ - "\u0000\u1b04\u1b05\u0003\u0007\u0003\u0000\u1b05\u1b06\u0003\u000b\u0005"+ - "\u0000\u1b06\u1b07\u0003-\u0016\u0000\u1b07\u1b08\u0003\u0017\u000b\u0000"+ - "\u1b08\u1b09\u0003#\u0011\u0000\u1b09\u1b0a\u0003!\u0010\u0000\u1b0a\u1b0b"+ - "\u0003+\u0015\u0000\u1b0b\u1b0c\u0005_\u0000\u0000\u1b0c\u1b0d\u0003\u000b"+ - "\u0005\u0000\u1b0d\u1b0e\u0003#\u0011\u0000\u1b0e\u1b0f\u0003\u001f\u000f"+ - "\u0000\u1b0f\u1b10\u0003\u001f\u000f\u0000\u1b10\u1b11\u0003\u0017\u000b"+ - "\u0000\u1b11\u1b12\u0003-\u0016\u0000\u1b12\u1b13\u0003-\u0016\u0000\u1b13"+ - "\u1b14\u0003\u000f\u0007\u0000\u1b14\u1b15\u0003\r\u0006\u0000\u1b15\u04d8"+ - "\u0001\u0000\u0000\u0000\u1b16\u1b17\u0003-\u0016\u0000\u1b17\u1b18\u0003"+ - ")\u0014\u0000\u1b18\u1b19\u0003\u0007\u0003\u0000\u1b19\u1b1a\u0003!\u0010"+ - "\u0000\u1b1a\u1b1b\u0003+\u0015\u0000\u1b1b\u1b1c\u0003\u0007\u0003\u0000"+ - "\u1b1c\u1b1d\u0003\u000b\u0005\u0000\u1b1d\u1b1e\u0003-\u0016\u0000\u1b1e"+ - "\u1b1f\u0003\u0017\u000b\u0000\u1b1f\u1b20\u0003#\u0011\u0000\u1b20\u1b21"+ - "\u0003!\u0010\u0000\u1b21\u1b22\u0003+\u0015\u0000\u1b22\u1b23\u0005_"+ - "\u0000\u0000\u1b23\u1b24\u0003)\u0014\u0000\u1b24\u1b25\u0003#\u0011\u0000"+ - "\u1b25\u1b26\u0003\u001d\u000e\u0000\u1b26\u1b27\u0003\u001d\u000e\u0000"+ - "\u1b27\u1b28\u0003\u000f\u0007\u0000\u1b28\u1b29\u0003\r\u0006\u0000\u1b29"+ - "\u1b2a\u0005_\u0000\u0000\u1b2a\u1b2b\u0003\t\u0004\u0000\u1b2b\u1b2c"+ - "\u0003\u0007\u0003\u0000\u1b2c\u1b2d\u0003\u000b\u0005\u0000\u1b2d\u1b2e"+ - "\u0003\u001b\r\u0000\u1b2e\u04da\u0001\u0000\u0000\u0000\u1b2f\u1b30\u0003"+ - "-\u0016\u0000\u1b30\u1b31\u0003)\u0014\u0000\u1b31\u1b32\u0003\u0007\u0003"+ - "\u0000\u1b32\u1b33\u0003!\u0010\u0000\u1b33\u1b34\u0003+\u0015\u0000\u1b34"+ - "\u1b35\u0003\u0011\b\u0000\u1b35\u1b36\u0003#\u0011\u0000\u1b36\u1b37"+ - "\u0003)\u0014\u0000\u1b37\u1b38\u0003\u001f\u000f\u0000\u1b38\u04dc\u0001"+ - "\u0000\u0000\u0000\u1b39\u1b3a\u0003-\u0016\u0000\u1b3a\u1b3b\u0003)\u0014"+ - "\u0000\u1b3b\u1b3c\u0003\u0007\u0003\u0000\u1b3c\u1b3d\u0003!\u0010\u0000"+ - "\u1b3d\u1b3e\u0003+\u0015\u0000\u1b3e\u1b3f\u0003\u0011\b\u0000\u1b3f"+ - "\u1b40\u0003#\u0011\u0000\u1b40\u1b41\u0003)\u0014\u0000\u1b41\u1b42\u0003"+ - "\u001f\u000f\u0000\u1b42\u1b43\u0003+\u0015\u0000\u1b43\u04de\u0001\u0000"+ - "\u0000\u0000\u1b44\u1b45\u0003-\u0016\u0000\u1b45\u1b46\u0003)\u0014\u0000"+ - "\u1b46\u1b47\u0003\u0007\u0003\u0000\u1b47\u1b48\u0003!\u0010\u0000\u1b48"+ - "\u1b49\u0003+\u0015\u0000\u1b49\u1b4a\u0003\u001d\u000e\u0000\u1b4a\u1b4b"+ - "\u0003\u0007\u0003\u0000\u1b4b\u1b4c\u0003-\u0016\u0000\u1b4c\u1b4d\u0003"+ - "\u000f\u0007\u0000\u1b4d\u04e0\u0001\u0000\u0000\u0000\u1b4e\u1b4f\u0003"+ - "-\u0016\u0000\u1b4f\u1b50\u0003)\u0014\u0000\u1b50\u1b51\u0003\u0007\u0003"+ - "\u0000\u1b51\u1b52\u0003!\u0010\u0000\u1b52\u1b53\u0003+\u0015\u0000\u1b53"+ - "\u1b54\u0003\u001d\u000e\u0000\u1b54\u1b55\u0003\u0007\u0003\u0000\u1b55"+ - "\u1b56\u0003-\u0016\u0000\u1b56\u1b57\u0003\u0017\u000b\u0000\u1b57\u1b58"+ - "\u0003#\u0011\u0000\u1b58\u1b59\u0003!\u0010\u0000\u1b59\u04e2\u0001\u0000"+ - "\u0000\u0000\u1b5a\u1b5b\u0003-\u0016\u0000\u1b5b\u1b5c\u0003)\u0014\u0000"+ - "\u1b5c\u1b5d\u0003\u000f\u0007\u0000\u1b5d\u1b5e\u0003\u0007\u0003\u0000"+ - "\u1b5e\u1b5f\u0003-\u0016\u0000\u1b5f\u04e4\u0001\u0000\u0000\u0000\u1b60"+ - "\u1b61\u0003-\u0016\u0000\u1b61\u1b62\u0003)\u0014\u0000\u1b62\u1b63\u0003"+ - "\u0017\u000b\u0000\u1b63\u1b64\u0003\u0013\t\u0000\u1b64\u1b65\u0003\u0013"+ - "\t\u0000\u1b65\u1b66\u0003\u000f\u0007\u0000\u1b66\u1b67\u0003)\u0014"+ - "\u0000\u1b67\u04e6\u0001\u0000\u0000\u0000\u1b68\u1b69\u0003-\u0016\u0000"+ - "\u1b69\u1b6a\u0003)\u0014\u0000\u1b6a\u1b6b\u0003\u0017\u000b\u0000\u1b6b"+ - "\u1b6c\u0003\u0013\t\u0000\u1b6c\u1b6d\u0003\u0013\t\u0000\u1b6d\u1b6e"+ - "\u0003\u000f\u0007\u0000\u1b6e\u1b6f\u0003)\u0014\u0000\u1b6f\u1b70\u0005"+ - "_\u0000\u0000\u1b70\u1b71\u0003\u000b\u0005\u0000\u1b71\u1b72\u0003\u0007"+ - "\u0003\u0000\u1b72\u1b73\u0003-\u0016\u0000\u1b73\u1b74\u0003\u0007\u0003"+ - "\u0000\u1b74\u1b75\u0003\u001d\u000e\u0000\u1b75\u1b76\u0003#\u0011\u0000"+ - "\u1b76\u1b77\u0003\u0013\t\u0000\u1b77\u04e8\u0001\u0000\u0000\u0000\u1b78"+ - "\u1b79\u0003-\u0016\u0000\u1b79\u1b7a\u0003)\u0014\u0000\u1b7a\u1b7b\u0003"+ - "\u0017\u000b\u0000\u1b7b\u1b7c\u0003\u0013\t\u0000\u1b7c\u1b7d\u0003\u0013"+ - "\t\u0000\u1b7d\u1b7e\u0003\u000f\u0007\u0000\u1b7e\u1b7f\u0003)\u0014"+ - "\u0000\u1b7f\u1b80\u0005_\u0000\u0000\u1b80\u1b81\u0003!\u0010\u0000\u1b81"+ - "\u1b82\u0003\u0007\u0003\u0000\u1b82\u1b83\u0003\u001f\u000f\u0000\u1b83"+ - "\u1b84\u0003\u000f\u0007\u0000\u1b84\u04ea\u0001\u0000\u0000\u0000\u1b85"+ - "\u1b86\u0003-\u0016\u0000\u1b86\u1b87\u0003)\u0014\u0000\u1b87\u1b88\u0003"+ - "\u0017\u000b\u0000\u1b88\u1b89\u0003\u0013\t\u0000\u1b89\u1b8a\u0003\u0013"+ - "\t\u0000\u1b8a\u1b8b\u0003\u000f\u0007\u0000\u1b8b\u1b8c\u0003)\u0014"+ - "\u0000\u1b8c\u1b8d\u0005_\u0000\u0000\u1b8d\u1b8e\u0003+\u0015\u0000\u1b8e"+ - "\u1b8f\u0003\u000b\u0005\u0000\u1b8f\u1b90\u0003\u0015\n\u0000\u1b90\u1b91"+ - "\u0003\u000f\u0007\u0000\u1b91\u1b92\u0003\u001f\u000f\u0000\u1b92\u1b93"+ - "\u0003\u0007\u0003\u0000\u1b93\u04ec\u0001\u0000\u0000\u0000\u1b94\u1b95"+ - "\u0003-\u0016\u0000\u1b95\u1b96\u0003)\u0014\u0000\u1b96\u1b97\u0003\u0017"+ - "\u000b\u0000\u1b97\u1b98\u0003\u001f\u000f\u0000\u1b98\u04ee\u0001\u0000"+ - "\u0000\u0000\u1b99\u1b9a\u0003-\u0016\u0000\u1b9a\u1b9b\u0003)\u0014\u0000"+ - "\u1b9b\u1b9c\u0003/\u0017\u0000\u1b9c\u1b9d\u0003\u000f\u0007\u0000\u1b9d"+ - "\u04f0\u0001\u0000\u0000\u0000\u1b9e\u1b9f\u0003-\u0016\u0000\u1b9f\u1ba0"+ - "\u0003)\u0014\u0000\u1ba0\u1ba1\u0003/\u0017\u0000\u1ba1\u1ba2\u0003!"+ - "\u0010\u0000\u1ba2\u1ba3\u0003\u000b\u0005\u0000\u1ba3\u1ba4\u0003\u0007"+ - "\u0003\u0000\u1ba4\u1ba5\u0003-\u0016\u0000\u1ba5\u1ba6\u0003\u000f\u0007"+ - "\u0000\u1ba6\u04f2\u0001\u0000\u0000\u0000\u1ba7\u1ba8\u0003-\u0016\u0000"+ - "\u1ba8\u1ba9\u0003)\u0014\u0000\u1ba9\u1baa\u0003/\u0017\u0000\u1baa\u1bab"+ - "\u0003+\u0015\u0000\u1bab\u1bac\u0003-\u0016\u0000\u1bac\u1bad\u0003\u000f"+ - "\u0007\u0000\u1bad\u1bae\u0003\r\u0006\u0000\u1bae\u04f4\u0001\u0000\u0000"+ - "\u0000\u1baf\u1bb0\u0003-\u0016\u0000\u1bb0\u1bb1\u00037\u001b\u0000\u1bb1"+ - "\u1bb2\u0003%\u0012\u0000\u1bb2\u1bb3\u0003\u000f\u0007\u0000\u1bb3\u04f6"+ - "\u0001\u0000\u0000\u0000\u1bb4\u1bb5\u0003/\u0017\u0000\u1bb5\u1bb6\u0003"+ - "\u000f\u0007\u0000\u1bb6\u1bb7\u0003+\u0015\u0000\u1bb7\u1bb8\u0003\u000b"+ - "\u0005\u0000\u1bb8\u1bb9\u0003\u0007\u0003\u0000\u1bb9\u1bba\u0003%\u0012"+ - "\u0000\u1bba\u1bbb\u0003\u000f\u0007\u0000\u1bbb\u04f8\u0001\u0000\u0000"+ - "\u0000\u1bbc\u1bbd\u0003/\u0017\u0000\u1bbd\u1bbe\u0003!\u0010\u0000\u1bbe"+ - "\u1bbf\u0003\t\u0004\u0000\u1bbf\u1bc0\u0003#\u0011\u0000\u1bc0\u1bc1"+ - "\u0003/\u0017\u0000\u1bc1\u1bc2\u0003!\u0010\u0000\u1bc2\u1bc3\u0003\r"+ - "\u0006\u0000\u1bc3\u1bc4\u0003\u000f\u0007\u0000\u1bc4\u1bc5\u0003\r\u0006"+ - "\u0000\u1bc5\u04fa\u0001\u0000\u0000\u0000\u1bc6\u1bc7\u0003/\u0017\u0000"+ - "\u1bc7\u1bc8\u0003!\u0010\u0000\u1bc8\u1bc9\u0003\u000b\u0005\u0000\u1bc9"+ - "\u1bca\u0003#\u0011\u0000\u1bca\u1bcb\u0003\u001f\u000f\u0000\u1bcb\u1bcc"+ - "\u0003\u001f\u000f\u0000\u1bcc\u1bcd\u0003\u0017\u000b\u0000\u1bcd\u1bce"+ - "\u0003-\u0016\u0000\u1bce\u1bcf\u0003-\u0016\u0000\u1bcf\u1bd0\u0003\u000f"+ - "\u0007\u0000\u1bd0\u1bd1\u0003\r\u0006\u0000\u1bd1\u04fc\u0001\u0000\u0000"+ - "\u0000\u1bd2\u1bd3\u0003/\u0017\u0000\u1bd3\u1bd4\u0003!\u0010\u0000\u1bd4"+ - "\u1bd5\u0003\r\u0006\u0000\u1bd5\u1bd6\u0003\u000f\u0007\u0000\u1bd6\u1bd7"+ - "\u0003)\u0014\u0000\u1bd7\u04fe\u0001\u0000\u0000\u0000\u1bd8\u1bd9\u0003"+ - "/\u0017\u0000\u1bd9\u1bda\u0003!\u0010\u0000\u1bda\u1bdb\u0003\u000f\u0007"+ - "\u0000\u1bdb\u1bdc\u0003!\u0010\u0000\u1bdc\u1bdd\u0003\u000b\u0005\u0000"+ - "\u1bdd\u1bde\u0003)\u0014\u0000\u1bde\u1bdf\u00037\u001b\u0000\u1bdf\u1be0"+ - "\u0003%\u0012\u0000\u1be0\u1be1\u0003-\u0016\u0000\u1be1\u1be2\u0003\u000f"+ - "\u0007\u0000\u1be2\u1be3\u0003\r\u0006\u0000\u1be3\u0500\u0001\u0000\u0000"+ - "\u0000\u1be4\u1be5\u0003/\u0017\u0000\u1be5\u1be6\u0003!\u0010\u0000\u1be6"+ - "\u1be7\u0003\u0017\u000b\u0000\u1be7\u1be8\u0003#\u0011\u0000\u1be8\u1be9"+ - "\u0003!\u0010\u0000\u1be9\u0502\u0001\u0000\u0000\u0000\u1bea\u1beb\u0003"+ - "/\u0017\u0000\u1beb\u1bec\u0003!\u0010\u0000\u1bec\u1bed\u0003\u0017\u000b"+ - "\u0000\u1bed\u1bee\u0003\'\u0013\u0000\u1bee\u1bef\u0003/\u0017\u0000"+ - "\u1bef\u1bf0\u0003\u000f\u0007\u0000\u1bf0\u0504\u0001\u0000\u0000\u0000"+ - "\u1bf1\u1bf2\u0003/\u0017\u0000\u1bf2\u1bf3\u0003!\u0010\u0000\u1bf3\u1bf4"+ - "\u0003\u001b\r\u0000\u1bf4\u1bf5\u0003!\u0010\u0000\u1bf5\u1bf6\u0003"+ - "#\u0011\u0000\u1bf6\u1bf7\u00033\u0019\u0000\u1bf7\u1bf8\u0003!\u0010"+ - "\u0000\u1bf8\u0506\u0001\u0000\u0000\u0000\u1bf9\u1bfa\u0003/\u0017\u0000"+ - "\u1bfa\u1bfb\u0003!\u0010\u0000\u1bfb\u1bfc\u0003\u001d\u000e\u0000\u1bfc"+ - "\u1bfd\u0003\u0017\u000b\u0000\u1bfd\u1bfe\u0003+\u0015\u0000\u1bfe\u1bff"+ - "\u0003-\u0016\u0000\u1bff\u1c00\u0003\u000f\u0007\u0000\u1c00\u1c01\u0003"+ - "!\u0010\u0000\u1c01\u0508\u0001\u0000\u0000\u0000\u1c02\u1c03\u0003/\u0017"+ - "\u0000\u1c03\u1c04\u0003!\u0010\u0000\u1c04\u1c05\u0003!\u0010\u0000\u1c05"+ - "\u1c06\u0003\u0007\u0003\u0000\u1c06\u1c07\u0003\u001f\u000f\u0000\u1c07"+ - "\u1c08\u0003\u000f\u0007\u0000\u1c08\u1c09\u0003\r\u0006\u0000\u1c09\u050a"+ - "\u0001\u0000\u0000\u0000\u1c0a\u1c0b\u0003/\u0017\u0000\u1c0b\u1c0c\u0003"+ - "!\u0010\u0000\u1c0c\u1c0d\u0003!\u0010\u0000\u1c0d\u1c0e\u0003\u000f\u0007"+ - "\u0000\u1c0e\u1c0f\u0003+\u0015\u0000\u1c0f\u1c10\u0003-\u0016\u0000\u1c10"+ - "\u050c\u0001\u0000\u0000\u0000\u1c11\u1c12\u0003/\u0017\u0000\u1c12\u1c13"+ - "\u0003!\u0010\u0000\u1c13\u1c14\u0003-\u0016\u0000\u1c14\u1c15\u0003\u0017"+ - "\u000b\u0000\u1c15\u1c16\u0003\u001d\u000e\u0000\u1c16\u050e\u0001\u0000"+ - "\u0000\u0000\u1c17\u1c18\u0003/\u0017\u0000\u1c18\u1c19\u0003%\u0012\u0000"+ - "\u1c19\u1c1a\u0003\r\u0006\u0000\u1c1a\u1c1b\u0003\u0007\u0003\u0000\u1c1b"+ - "\u1c1c\u0003-\u0016\u0000\u1c1c\u1c1d\u0003\u000f\u0007\u0000\u1c1d\u0510"+ - "\u0001\u0000\u0000\u0000\u1c1e\u1c1f\u0003/\u0017\u0000\u1c1f\u1c20\u0003"+ - "%\u0012\u0000\u1c20\u1c21\u0003%\u0012\u0000\u1c21\u1c22\u0003\u000f\u0007"+ - "\u0000\u1c22\u1c23\u0003)\u0014\u0000\u1c23\u0512\u0001\u0000\u0000\u0000"+ - "\u1c24\u1c25\u0003/\u0017\u0000\u1c25\u1c26\u0003+\u0015\u0000\u1c26\u1c27"+ - "\u0003\u0007\u0003\u0000\u1c27\u1c28\u0003\u0013\t\u0000\u1c28\u1c29\u0003"+ - "\u000f\u0007\u0000\u1c29\u0514\u0001\u0000\u0000\u0000\u1c2a\u1c2b\u0003"+ - "/\u0017\u0000\u1c2b\u1c2c\u0003+\u0015\u0000\u1c2c\u1c2d\u0003\u000f\u0007"+ - "\u0000\u1c2d\u1c2e\u0003)\u0014\u0000\u1c2e\u0516\u0001\u0000\u0000\u0000"+ - "\u1c2f\u1c30\u0003/\u0017\u0000\u1c30\u1c31\u0003+\u0015\u0000\u1c31\u1c32"+ - "\u0003\u000f\u0007\u0000\u1c32\u1c33\u0003)\u0014\u0000\u1c33\u1c34\u0005"+ - "_\u0000\u0000\u1c34\u1c35\u0003\r\u0006\u0000\u1c35\u1c36\u0003\u000f"+ - "\u0007\u0000\u1c36\u1c37\u0003\u0011\b\u0000\u1c37\u1c38\u0003\u0017\u000b"+ - "\u0000\u1c38\u1c39\u0003!\u0010\u0000\u1c39\u1c3a\u0003\u000f\u0007\u0000"+ - "\u1c3a\u1c3b\u0003\r\u0006\u0000\u1c3b\u1c3c\u0005_\u0000\u0000\u1c3c"+ - "\u1c3d\u0003-\u0016\u0000\u1c3d\u1c3e\u00037\u001b\u0000\u1c3e\u1c3f\u0003"+ - "%\u0012\u0000\u1c3f\u1c40\u0003\u000f\u0007\u0000\u1c40\u1c41\u0005_\u0000"+ - "\u0000\u1c41\u1c42\u0003\u000b\u0005\u0000\u1c42\u1c43\u0003\u0007\u0003"+ - "\u0000\u1c43\u1c44\u0003-\u0016\u0000\u1c44\u1c45\u0003\u0007\u0003\u0000"+ - "\u1c45\u1c46\u0003\u001d\u000e\u0000\u1c46\u1c47\u0003#\u0011\u0000\u1c47"+ - "\u1c48\u0003\u0013\t\u0000\u1c48\u0518\u0001\u0000\u0000\u0000\u1c49\u1c4a"+ - "\u0003/\u0017\u0000\u1c4a\u1c4b\u0003+\u0015\u0000\u1c4b\u1c4c\u0003\u000f"+ - "\u0007\u0000\u1c4c\u1c4d\u0003)\u0014\u0000\u1c4d\u1c4e\u0005_\u0000\u0000"+ - "\u1c4e\u1c4f\u0003\r\u0006\u0000\u1c4f\u1c50\u0003\u000f\u0007\u0000\u1c50"+ - "\u1c51\u0003\u0011\b\u0000\u1c51\u1c52\u0003\u0017\u000b\u0000\u1c52\u1c53"+ - "\u0003!\u0010\u0000\u1c53\u1c54\u0003\u000f\u0007\u0000\u1c54\u1c55\u0003"+ - "\r\u0006\u0000\u1c55\u1c56\u0005_\u0000\u0000\u1c56\u1c57\u0003-\u0016"+ - "\u0000\u1c57\u1c58\u00037\u001b\u0000\u1c58\u1c59\u0003%\u0012\u0000\u1c59"+ - "\u1c5a\u0003\u000f\u0007\u0000\u1c5a\u1c5b\u0005_\u0000\u0000\u1c5b\u1c5c"+ - "\u0003\u000b\u0005\u0000\u1c5c\u1c5d\u0003#\u0011\u0000\u1c5d\u1c5e\u0003"+ - "\r\u0006\u0000\u1c5e\u1c5f\u0003\u000f\u0007\u0000\u1c5f\u051a\u0001\u0000"+ - "\u0000\u0000\u1c60\u1c61\u0003/\u0017\u0000\u1c61\u1c62\u0003+\u0015\u0000"+ - "\u1c62\u1c63\u0003\u000f\u0007\u0000\u1c63\u1c64\u0003)\u0014\u0000\u1c64"+ - "\u1c65\u0005_\u0000\u0000\u1c65\u1c66\u0003\r\u0006\u0000\u1c66\u1c67"+ - "\u0003\u000f\u0007\u0000\u1c67\u1c68\u0003\u0011\b\u0000\u1c68\u1c69\u0003"+ - "\u0017\u000b\u0000\u1c69\u1c6a\u0003!\u0010\u0000\u1c6a\u1c6b\u0003\u000f"+ - "\u0007\u0000\u1c6b\u1c6c\u0003\r\u0006\u0000\u1c6c\u1c6d\u0005_\u0000"+ - "\u0000\u1c6d\u1c6e\u0003-\u0016\u0000\u1c6e\u1c6f\u00037\u001b\u0000\u1c6f"+ - "\u1c70\u0003%\u0012\u0000\u1c70\u1c71\u0003\u000f\u0007\u0000\u1c71\u1c72"+ - "\u0005_\u0000\u0000\u1c72\u1c73\u0003!\u0010\u0000\u1c73\u1c74\u0003\u0007"+ - "\u0003\u0000\u1c74\u1c75\u0003\u001f\u000f\u0000\u1c75\u1c76\u0003\u000f"+ - "\u0007\u0000\u1c76\u051c\u0001\u0000\u0000\u0000\u1c77\u1c78\u0003/\u0017"+ - "\u0000\u1c78\u1c79\u0003+\u0015\u0000\u1c79\u1c7a\u0003\u000f\u0007\u0000"+ - "\u1c7a\u1c7b\u0003)\u0014\u0000\u1c7b\u1c7c\u0005_\u0000\u0000\u1c7c\u1c7d"+ - "\u0003\r\u0006\u0000\u1c7d\u1c7e\u0003\u000f\u0007\u0000\u1c7e\u1c7f\u0003"+ - "\u0011\b\u0000\u1c7f\u1c80\u0003\u0017\u000b\u0000\u1c80\u1c81\u0003!"+ - "\u0010\u0000\u1c81\u1c82\u0003\u000f\u0007\u0000\u1c82\u1c83\u0003\r\u0006"+ - "\u0000\u1c83\u1c84\u0005_\u0000\u0000\u1c84\u1c85\u0003-\u0016\u0000\u1c85"+ - "\u1c86\u00037\u001b\u0000\u1c86\u1c87\u0003%\u0012\u0000\u1c87\u1c88\u0003"+ - "\u000f\u0007\u0000\u1c88\u1c89\u0005_\u0000\u0000\u1c89\u1c8a\u0003+\u0015"+ - "\u0000\u1c8a\u1c8b\u0003\u000b\u0005\u0000\u1c8b\u1c8c\u0003\u0015\n\u0000"+ - "\u1c8c\u1c8d\u0003\u000f\u0007\u0000\u1c8d\u1c8e\u0003\u001f\u000f\u0000"+ - "\u1c8e\u1c8f\u0003\u0007\u0003\u0000\u1c8f\u051e\u0001\u0000\u0000\u0000"+ - "\u1c90\u1c91\u0003/\u0017\u0000\u1c91\u1c92\u0003+\u0015\u0000\u1c92\u1c93"+ - "\u0003\u0017\u000b\u0000\u1c93\u1c94\u0003!\u0010\u0000\u1c94\u1c95\u0003"+ - "\u0013\t\u0000\u1c95\u0520\u0001\u0000\u0000\u0000\u1c96\u1c97\u00031"+ - "\u0018\u0000\u1c97\u1c98\u0003\u0007\u0003\u0000\u1c98\u1c99\u0003\u000b"+ - "\u0005\u0000\u1c99\u1c9a\u0003/\u0017\u0000\u1c9a\u1c9b\u0003/\u0017\u0000"+ - "\u1c9b\u1c9c\u0003\u001f\u000f\u0000\u1c9c\u0522\u0001\u0000\u0000\u0000"+ - "\u1c9d\u1c9e\u00031\u0018\u0000\u1c9e\u1c9f\u0003\u0007\u0003\u0000\u1c9f"+ - "\u1ca0\u0003\u001d\u000e\u0000\u1ca0\u1ca1\u0003\u0017\u000b\u0000\u1ca1"+ - "\u1ca2\u0003\r\u0006\u0000\u1ca2\u0524\u0001\u0000\u0000\u0000\u1ca3\u1ca4"+ - "\u00031\u0018\u0000\u1ca4\u1ca5\u0003\u0007\u0003\u0000\u1ca5\u1ca6\u0003"+ - "\u001d\u000e\u0000\u1ca6\u1ca7\u0003\u0017\u000b\u0000\u1ca7\u1ca8\u0003"+ - "\r\u0006\u0000\u1ca8\u1ca9\u0003\u0007\u0003\u0000\u1ca9\u1caa\u0003-"+ - "\u0016\u0000\u1caa\u1cab\u0003\u000f\u0007\u0000\u1cab\u0526\u0001\u0000"+ - "\u0000\u0000\u1cac\u1cad\u00031\u0018\u0000\u1cad\u1cae\u0003\u0007\u0003"+ - "\u0000\u1cae\u1caf\u0003\u001d\u000e\u0000\u1caf\u1cb0\u0003\u0017\u000b"+ - "\u0000\u1cb0\u1cb1\u0003\r\u0006\u0000\u1cb1\u1cb2\u0003\u0007\u0003\u0000"+ - "\u1cb2\u1cb3\u0003-\u0016\u0000\u1cb3\u1cb4\u0003#\u0011\u0000\u1cb4\u1cb5"+ - "\u0003)\u0014\u0000\u1cb5\u0528\u0001\u0000\u0000\u0000\u1cb6\u1cb7\u0003"+ - "1\u0018\u0000\u1cb7\u1cb8\u0003\u0007\u0003\u0000\u1cb8\u1cb9\u0003\u001d"+ - "\u000e\u0000\u1cb9\u1cba\u0003/\u0017\u0000\u1cba\u1cbb\u0003\u000f\u0007"+ - "\u0000\u1cbb\u052a\u0001\u0000\u0000\u0000\u1cbc\u1cbd\u00031\u0018\u0000"+ - "\u1cbd\u1cbe\u0003\u0007\u0003\u0000\u1cbe\u1cbf\u0003\u001d\u000e\u0000"+ - "\u1cbf\u1cc0\u0003/\u0017\u0000\u1cc0\u1cc1\u0003\u000f\u0007\u0000\u1cc1"+ - "\u1cc2\u0003+\u0015\u0000\u1cc2\u052c\u0001\u0000\u0000\u0000\u1cc3\u1cc4"+ - "\u00031\u0018\u0000\u1cc4\u1cc5\u0003\u0007\u0003\u0000\u1cc5\u1cc6\u0003"+ - ")\u0014\u0000\u1cc6\u1cc7\u0005_\u0000\u0000\u1cc7\u1cc8\u0003%\u0012"+ - "\u0000\u1cc8\u1cc9\u0003#\u0011\u0000\u1cc9\u1cca\u0003%\u0012\u0000\u1cca"+ - "\u052e\u0001\u0000\u0000\u0000\u1ccb\u1ccc\u00031\u0018\u0000\u1ccc\u1ccd"+ - "\u0003\u0007\u0003\u0000\u1ccd\u1cce\u0003)\u0014\u0000\u1cce\u1ccf\u0005"+ - "_\u0000\u0000\u1ccf\u1cd0\u0003+\u0015\u0000\u1cd0\u1cd1\u0003\u0007\u0003"+ - "\u0000\u1cd1\u1cd2\u0003\u001f\u000f\u0000\u1cd2\u1cd3\u0003%\u0012\u0000"+ - "\u1cd3\u0530\u0001\u0000\u0000\u0000\u1cd4\u1cd5\u00031\u0018\u0000\u1cd5"+ - "\u1cd6\u0003\u0007\u0003\u0000\u1cd6\u1cd7\u0003)\u0014\u0000\u1cd7\u1cd8"+ - "\u0003\u000b\u0005\u0000\u1cd8\u1cd9\u0003\u0015\n\u0000\u1cd9\u1cda\u0003"+ - "\u0007\u0003\u0000\u1cda\u1cdb\u0003)\u0014\u0000\u1cdb\u0532\u0001\u0000"+ - "\u0000\u0000\u1cdc\u1cdd\u00031\u0018\u0000\u1cdd\u1cde\u0003\u0007\u0003"+ - "\u0000\u1cde\u1cdf\u0003)\u0014\u0000\u1cdf\u1ce0\u0003\u0017\u000b\u0000"+ - "\u1ce0\u1ce1\u0003\u0007\u0003\u0000\u1ce1\u1ce2\u0003\t\u0004\u0000\u1ce2"+ - "\u1ce3\u0003\u001d\u000e\u0000\u1ce3\u1ce4\u0003\u000f\u0007\u0000\u1ce4"+ - "\u0534\u0001\u0000\u0000\u0000\u1ce5\u1ce6\u00031\u0018\u0000\u1ce6\u1ce7"+ - "\u0003\u0007\u0003\u0000\u1ce7\u1ce8\u0003)\u0014\u0000\u1ce8\u1ce9\u0003"+ - "\u0017\u000b\u0000\u1ce9\u1cea\u0003\u0007\u0003\u0000\u1cea\u1ceb\u0003"+ - "\r\u0006\u0000\u1ceb\u1cec\u0003\u0017\u000b\u0000\u1cec\u1ced\u0003\u000b"+ - "\u0005\u0000\u1ced\u0536\u0001\u0000\u0000\u0000\u1cee\u1cef\u00031\u0018"+ - "\u0000\u1cef\u1cf0\u0003\u0007\u0003\u0000\u1cf0\u1cf1\u0003)\u0014\u0000"+ - "\u1cf1\u1cf2\u00037\u001b\u0000\u1cf2\u1cf3\u0003\u0017\u000b\u0000\u1cf3"+ - "\u1cf4\u0003!\u0010\u0000\u1cf4\u1cf5\u0003\u0013\t\u0000\u1cf5\u0538"+ - "\u0001\u0000\u0000\u0000\u1cf6\u1cf7\u00031\u0018\u0000\u1cf7\u1cf8\u0003"+ - "\u000f\u0007\u0000\u1cf8\u1cf9\u0003)\u0014\u0000\u1cf9\u1cfa\u0003\t"+ - "\u0004\u0000\u1cfa\u1cfb\u0003#\u0011\u0000\u1cfb\u1cfc\u0003+\u0015\u0000"+ - "\u1cfc\u1cfd\u0003\u000f\u0007\u0000\u1cfd\u053a\u0001\u0000\u0000\u0000"+ - "\u1cfe\u1cff\u00031\u0018\u0000\u1cff\u1d00\u0003\u0017\u000b\u0000\u1d00"+ - "\u1d01\u0003\u000f\u0007\u0000\u1d01\u1d02\u00033\u0019\u0000\u1d02\u053c"+ - "\u0001\u0000\u0000\u0000\u1d03\u1d04\u00031\u0018\u0000\u1d04\u1d05\u0003"+ - "#\u0011\u0000\u1d05\u1d06\u0003\u001d\u000e\u0000\u1d06\u1d07\u0003\u0007"+ - "\u0003\u0000\u1d07\u1d08\u0003-\u0016\u0000\u1d08\u1d09\u0003\u0017\u000b"+ - "\u0000\u1d09\u1d0a\u0003\u001d\u000e\u0000\u1d0a\u1d0b\u0003\u000f\u0007"+ - "\u0000\u1d0b\u053e\u0001\u0000\u0000\u0000\u1d0c\u1d0d\u00033\u0019\u0000"+ - "\u1d0d\u1d0e\u0003\u0015\n\u0000\u1d0e\u1d0f\u0003\u000f\u0007\u0000\u1d0f"+ - "\u1d10\u0003!\u0010\u0000\u1d10\u0540\u0001\u0000\u0000\u0000\u1d11\u1d12"+ - "\u00033\u0019\u0000\u1d12\u1d13\u0003\u0015\n\u0000\u1d13\u1d14\u0003"+ - "\u000f\u0007\u0000\u1d14\u1d15\u0003!\u0010\u0000\u1d15\u1d16\u0003\u000f"+ - "\u0007\u0000\u1d16\u1d17\u00031\u0018\u0000\u1d17\u1d18\u0003\u000f\u0007"+ - "\u0000\u1d18\u1d19\u0003)\u0014\u0000\u1d19\u0542\u0001\u0000\u0000\u0000"+ - "\u1d1a\u1d1b\u00033\u0019\u0000\u1d1b\u1d1c\u0003\u0015\n\u0000\u1d1c"+ - "\u1d1d\u0003\u000f\u0007\u0000\u1d1d\u1d1e\u0003)\u0014\u0000\u1d1e\u1d1f"+ - "\u0003\u000f\u0007\u0000\u1d1f\u0544\u0001\u0000\u0000\u0000\u1d20\u1d21"+ - "\u00033\u0019\u0000\u1d21\u1d22\u0003\u0017\u000b\u0000\u1d22\u1d23\u0003"+ - "\r\u0006\u0000\u1d23\u1d24\u0003-\u0016\u0000\u1d24\u1d25\u0003\u0015"+ - "\n\u0000\u1d25\u1d26\u0005_\u0000\u0000\u1d26\u1d27\u0003\t\u0004\u0000"+ - "\u1d27\u1d28\u0003/\u0017\u0000\u1d28\u1d29\u0003\u000b\u0005\u0000\u1d29"+ - "\u1d2a\u0003\u001b\r\u0000\u1d2a\u1d2b\u0003\u000f\u0007\u0000\u1d2b\u1d2c"+ - "\u0003-\u0016\u0000\u1d2c\u0546\u0001\u0000\u0000\u0000\u1d2d\u1d2e\u0003"+ - "3\u0019\u0000\u1d2e\u1d2f\u0003\u0017\u000b\u0000\u1d2f\u1d30\u0003!\u0010"+ - "\u0000\u1d30\u1d31\u0003\r\u0006\u0000\u1d31\u1d32\u0003#\u0011\u0000"+ - "\u1d32\u1d33\u00033\u0019\u0000\u1d33\u0548\u0001\u0000\u0000\u0000\u1d34"+ - "\u1d35\u00033\u0019\u0000\u1d35\u1d36\u0003\u0017\u000b\u0000\u1d36\u1d37"+ - "\u0003-\u0016\u0000\u1d37\u1d38\u0003\u0015\n\u0000\u1d38\u054a\u0001"+ - "\u0000\u0000\u0000\u1d39\u1d3a\u00033\u0019\u0000\u1d3a\u1d3b\u0003\u0017"+ - "\u000b\u0000\u1d3b\u1d3c\u0003-\u0016\u0000\u1d3c\u1d3d\u0003\u0015\n"+ - "\u0000\u1d3d\u1d3e\u0003\u0017\u000b\u0000\u1d3e\u1d3f\u0003!\u0010\u0000"+ - "\u1d3f\u054c\u0001\u0000\u0000\u0000\u1d40\u1d41\u00033\u0019\u0000\u1d41"+ - "\u1d42\u0003\u0017\u000b\u0000\u1d42\u1d43\u0003-\u0016\u0000\u1d43\u1d44"+ - "\u0003\u0015\n\u0000\u1d44\u1d45\u0003#\u0011\u0000\u1d45\u1d46\u0003"+ - "/\u0017\u0000\u1d46\u1d47\u0003-\u0016\u0000\u1d47\u054e\u0001\u0000\u0000"+ - "\u0000\u1d48\u1d49\u00033\u0019\u0000\u1d49\u1d4a\u0003#\u0011\u0000\u1d4a"+ - "\u1d4b\u0003)\u0014\u0000\u1d4b\u1d4c\u0003\u001b\r\u0000\u1d4c\u0550"+ - "\u0001\u0000\u0000\u0000\u1d4d\u1d4e\u00033\u0019\u0000\u1d4e\u1d4f\u0003"+ - ")\u0014\u0000\u1d4f\u1d50\u0003\u0017\u000b\u0000\u1d50\u1d51\u0003-\u0016"+ - "\u0000\u1d51\u1d52\u0003\u000f\u0007\u0000\u1d52\u0552\u0001\u0000\u0000"+ - "\u0000\u1d53\u1d54\u00037\u001b\u0000\u1d54\u1d55\u0003\u0007\u0003\u0000"+ - "\u1d55\u1d56\u0003\u001f\u000f\u0000\u1d56\u1d57\u0003\u001d\u000e\u0000"+ - "\u1d57\u0554\u0001\u0000\u0000\u0000\u1d58\u1d59\u00037\u001b\u0000\u1d59"+ - "\u1d5a\u0003\u000f\u0007\u0000\u1d5a\u1d5b\u0003\u0007\u0003\u0000\u1d5b"+ - "\u1d5c\u0003)\u0014\u0000\u1d5c\u0556\u0001\u0000\u0000\u0000\u1d5d\u1d5e"+ - "\u00037\u001b\u0000\u1d5e\u1d5f\u0003\u000f\u0007\u0000\u1d5f\u1d60\u0003"+ - "+\u0015\u0000\u1d60\u0558\u0001\u0000\u0000\u0000\u1d61\u1d62\u00039\u001c"+ - "\u0000\u1d62\u1d63\u0003#\u0011\u0000\u1d63\u1d64\u0003!\u0010\u0000\u1d64"+ - "\u1d65\u0003\u000f\u0007\u0000\u1d65\u055a\u0001\u0000\u0000\u0000\u1d66"+ - "\u1d67\u0003+\u0015\u0000\u1d67\u1d68\u0003/\u0017\u0000\u1d68\u1d69\u0003"+ - "%\u0012\u0000\u1d69\u1d6a\u0003\u000f\u0007\u0000\u1d6a\u1d6b\u0003)\u0014"+ - "\u0000\u1d6b\u1d6c\u0003/\u0017\u0000\u1d6c\u1d6d\u0003+\u0015\u0000\u1d6d"+ - "\u1d6e\u0003\u000f\u0007\u0000\u1d6e\u1d6f\u0003)\u0014\u0000\u1d6f\u055c"+ - "\u0001\u0000\u0000\u0000\u1d70\u1d71\u0003!\u0010\u0000\u1d71\u1d72\u0003"+ - "#\u0011\u0000\u1d72\u1d73\u0003+\u0015\u0000\u1d73\u1d74\u0003/\u0017"+ - "\u0000\u1d74\u1d75\u0003%\u0012\u0000\u1d75\u1d76\u0003\u000f\u0007\u0000"+ - "\u1d76\u1d77\u0003)\u0014\u0000\u1d77\u1d78\u0003/\u0017\u0000\u1d78\u1d79"+ - "\u0003+\u0015\u0000\u1d79\u1d7a\u0003\u000f\u0007\u0000\u1d7a\u1d7b\u0003"+ - ")\u0014\u0000\u1d7b\u055e\u0001\u0000\u0000\u0000\u1d7c\u1d7d\u0003\u000b"+ - "\u0005\u0000\u1d7d\u1d7e\u0003)\u0014\u0000\u1d7e\u1d7f\u0003\u000f\u0007"+ - "\u0000\u1d7f\u1d80\u0003\u0007\u0003\u0000\u1d80\u1d81\u0003-\u0016\u0000"+ - "\u1d81\u1d82\u0003\u000f\u0007\u0000\u1d82\u1d83\u0003)\u0014\u0000\u1d83"+ - "\u1d84\u0003#\u0011\u0000\u1d84\u1d85\u0003\u001d\u000e\u0000\u1d85\u1d86"+ - "\u0003\u000f\u0007\u0000\u1d86\u0560\u0001\u0000\u0000\u0000\u1d87\u1d88"+ - "\u0003!\u0010\u0000\u1d88\u1d89\u0003#\u0011\u0000\u1d89\u1d8a\u0003\u000b"+ - "\u0005\u0000\u1d8a\u1d8b\u0003)\u0014\u0000\u1d8b\u1d8c\u0003\u000f\u0007"+ - "\u0000\u1d8c\u1d8d\u0003\u0007\u0003\u0000\u1d8d\u1d8e\u0003-\u0016\u0000"+ - "\u1d8e\u1d8f\u0003\u000f\u0007\u0000\u1d8f\u1d90\u0003)\u0014\u0000\u1d90"+ - "\u1d91\u0003#\u0011\u0000\u1d91\u1d92\u0003\u001d\u000e\u0000\u1d92\u1d93"+ - "\u0003\u000f\u0007\u0000\u1d93\u0562\u0001\u0000\u0000\u0000\u1d94\u1d95"+ - "\u0003\u0017\u000b\u0000\u1d95\u1d96\u0003!\u0010\u0000\u1d96\u1d97\u0003"+ - "\u0015\n\u0000\u1d97\u1d98\u0003\u000f\u0007\u0000\u1d98\u1d99\u0003)"+ - "\u0014\u0000\u1d99\u1d9a\u0003\u0017\u000b\u0000\u1d9a\u1d9b\u0003-\u0016"+ - "\u0000\u1d9b\u0564\u0001\u0000\u0000\u0000\u1d9c\u1d9d\u0003!\u0010\u0000"+ - "\u1d9d\u1d9e\u0003#\u0011\u0000\u1d9e\u1d9f\u0003\u0017\u000b\u0000\u1d9f"+ - "\u1da0\u0003!\u0010\u0000\u1da0\u1da1\u0003\u0015\n\u0000\u1da1\u1da2"+ - "\u0003\u000f\u0007\u0000\u1da2\u1da3\u0003)\u0014\u0000\u1da3\u1da4\u0003"+ - "\u0017\u000b\u0000\u1da4\u1da5\u0003-\u0016\u0000\u1da5\u0566\u0001\u0000"+ - "\u0000\u0000\u1da6\u1da7\u0003\u001d\u000e\u0000\u1da7\u1da8\u0003#\u0011"+ - "\u0000\u1da8\u1da9\u0003\u0013\t\u0000\u1da9\u1daa\u0003\u0017\u000b\u0000"+ - "\u1daa\u1dab\u0003!\u0010\u0000\u1dab\u0568\u0001\u0000\u0000\u0000\u1dac"+ - "\u1dad\u0003!\u0010\u0000\u1dad\u1dae\u0003#\u0011\u0000\u1dae\u1daf\u0003"+ - "\u001d\u000e\u0000\u1daf\u1db0\u0003#\u0011\u0000\u1db0\u1db1\u0003\u0013"+ - "\t\u0000\u1db1\u1db2\u0003\u0017\u000b\u0000\u1db2\u1db3\u0003!\u0010"+ - "\u0000\u1db3\u056a\u0001\u0000\u0000\u0000\u1db4\u1db5\u0003)\u0014\u0000"+ - "\u1db5\u1db6\u0003\u000f\u0007\u0000\u1db6\u1db7\u0003%\u0012\u0000\u1db7"+ - "\u1db8\u0003\u001d\u000e\u0000\u1db8\u1db9\u0003\u0017\u000b\u0000\u1db9"+ - "\u1dba\u0003\u000b\u0005\u0000\u1dba\u1dbb\u0003\u0007\u0003\u0000\u1dbb"+ - "\u1dbc\u0003-\u0016\u0000\u1dbc\u1dbd\u0003\u0017\u000b\u0000\u1dbd\u1dbe"+ - "\u0003#\u0011\u0000\u1dbe\u1dbf\u0003!\u0010\u0000\u1dbf\u056c\u0001\u0000"+ - "\u0000\u0000\u1dc0\u1dc1\u0003!\u0010\u0000\u1dc1\u1dc2\u0003#\u0011\u0000"+ - "\u1dc2\u1dc3\u0003)\u0014\u0000\u1dc3\u1dc4\u0003\u000f\u0007\u0000\u1dc4"+ - "\u1dc5\u0003%\u0012\u0000\u1dc5\u1dc6\u0003\u001d\u000e\u0000\u1dc6\u1dc7"+ - "\u0003\u0017\u000b\u0000\u1dc7\u1dc8\u0003\u000b\u0005\u0000\u1dc8\u1dc9"+ - "\u0003\u0007\u0003\u0000\u1dc9\u1dca\u0003-\u0016\u0000\u1dca\u1dcb\u0003"+ - "\u0017\u000b\u0000\u1dcb\u1dcc\u0003#\u0011\u0000\u1dcc\u1dcd\u0003!\u0010"+ - "\u0000\u1dcd\u056e\u0001\u0000\u0000\u0000\u1dce\u1dcf\u0003\t\u0004\u0000"+ - "\u1dcf\u1dd0\u00037\u001b\u0000\u1dd0\u1dd1\u0003%\u0012\u0000\u1dd1\u1dd2"+ - "\u0003\u0007\u0003\u0000\u1dd2\u1dd3\u0003+\u0015\u0000\u1dd3\u1dd4\u0003"+ - "+\u0015\u0000\u1dd4\u1dd5\u0003)\u0014\u0000\u1dd5\u1dd6\u0003\u001d\u000e"+ - "\u0000\u1dd6\u1dd7\u0003+\u0015\u0000\u1dd7\u0570\u0001\u0000\u0000\u0000"+ - "\u1dd8\u1dd9\u0003!\u0010\u0000\u1dd9\u1dda\u0003#\u0011\u0000\u1dda\u1ddb"+ - "\u0003\t\u0004\u0000\u1ddb\u1ddc\u00037\u001b\u0000\u1ddc\u1ddd\u0003"+ - "%\u0012\u0000\u1ddd\u1dde\u0003\u0007\u0003\u0000\u1dde\u1ddf\u0003+\u0015"+ - "\u0000\u1ddf\u1de0\u0003+\u0015\u0000\u1de0\u1de1\u0003)\u0014\u0000\u1de1"+ - "\u1de2\u0003\u001d\u000e\u0000\u1de2\u1de3\u0003+\u0015\u0000\u1de3\u0572"+ - "\u0001\u0000\u0000\u0000\u1de4\u1de5\u0003+\u0015\u0000\u1de5\u1de6\u0003"+ - "\u0011\b\u0000\u1de6\u1de7\u0003/\u0017\u0000\u1de7\u1de8\u0003!\u0010"+ - "\u0000\u1de8\u1de9\u0003\u000b\u0005\u0000\u1de9\u0574\u0001\u0000\u0000"+ - "\u0000\u1dea\u1deb\u0003+\u0015\u0000\u1deb\u1dec\u0003-\u0016\u0000\u1dec"+ - "\u1ded\u00037\u001b\u0000\u1ded\u1dee\u0003%\u0012\u0000\u1dee\u1def\u0003"+ - "\u000f\u0007\u0000\u1def\u0576\u0001\u0000\u0000\u0000\u1df0\u1df1\u0003"+ - "+\u0015\u0000\u1df1\u1df2\u0003+\u0015\u0000\u1df2\u1df3\u0003%\u0012"+ - "\u0000\u1df3\u1df4\u0003\u0007\u0003\u0000\u1df4\u1df5\u0003\u000b\u0005"+ - "\u0000\u1df5\u1df6\u0003\u000f\u0007\u0000\u1df6\u0578\u0001\u0000\u0000"+ - "\u0000\u1df7\u1df8\u0003\u0011\b\u0000\u1df8\u1df9\u0003\u0017\u000b\u0000"+ - "\u1df9\u1dfa\u0003!\u0010\u0000\u1dfa\u1dfb\u0003\u0007\u0003\u0000\u1dfb"+ - "\u1dfc\u0003\u001d\u000e\u0000\u1dfc\u1dfd\u0003\u0011\b\u0000\u1dfd\u1dfe"+ - "\u0003/\u0017\u0000\u1dfe\u1dff\u0003!\u0010\u0000\u1dff\u1e00\u0003\u000b"+ - "\u0005\u0000\u1e00\u057a\u0001\u0000\u0000\u0000\u1e01\u1e02\u0003\u0011"+ - "\b\u0000\u1e02\u1e03\u0003\u0017\u000b\u0000\u1e03\u1e04\u0003!\u0010"+ - "\u0000\u1e04\u1e05\u0003\u0007\u0003\u0000\u1e05\u1e06\u0003\u001d\u000e"+ - "\u0000\u1e06\u1e07\u0003\u0011\b\u0000\u1e07\u1e08\u0003/\u0017\u0000"+ - "\u1e08\u1e09\u0003!\u0010\u0000\u1e09\u1e0a\u0003\u000b\u0005\u0000\u1e0a"+ - "\u1e0b\u0005_\u0000\u0000\u1e0b\u1e0c\u0003\u000f\u0007\u0000\u1e0c\u1e0d"+ - "\u00035\u001a\u0000\u1e0d\u1e0e\u0003-\u0016\u0000\u1e0e\u1e0f\u0003)"+ - "\u0014\u0000\u1e0f\u1e10\u0003\u0007\u0003\u0000\u1e10\u057c\u0001\u0000"+ - "\u0000\u0000\u1e11\u1e12\u0003\u000b\u0005\u0000\u1e12\u1e13\u0003#\u0011"+ - "\u0000\u1e13\u1e14\u0003\u001f\u000f\u0000\u1e14\u1e15\u0003\t\u0004\u0000"+ - "\u1e15\u1e16\u0003\u0017\u000b\u0000\u1e16\u1e17\u0003!\u0010\u0000\u1e17"+ - "\u1e18\u0003\u000f\u0007\u0000\u1e18\u1e19\u0003\u0011\b\u0000\u1e19\u1e1a"+ - "\u0003/\u0017\u0000\u1e1a\u1e1b\u0003!\u0010\u0000\u1e1b\u1e1c\u0003\u000b"+ - "\u0005\u0000\u1e1c\u057e\u0001\u0000\u0000\u0000\u1e1d\u1e1e\u0003+\u0015"+ - "\u0000\u1e1e\u1e1f\u0003\u000f\u0007\u0000\u1e1f\u1e20\u0003)\u0014\u0000"+ - "\u1e20\u1e21\u0003\u0017\u000b\u0000\u1e21\u1e22\u0003\u0007\u0003\u0000"+ - "\u1e22\u1e23\u0003\u001d\u000e\u0000\u1e23\u1e24\u0003\u0011\b\u0000\u1e24"+ - "\u1e25\u0003/\u0017\u0000\u1e25\u1e26\u0003!\u0010\u0000\u1e26\u1e27\u0003"; - private static final String _serializedATNSegment3 = - "\u000b\u0005\u0000\u1e27\u0580\u0001\u0000\u0000\u0000\u1e28\u1e29\u0003"+ - "\r\u0006\u0000\u1e29\u1e2a\u0003\u000f\u0007\u0000\u1e2a\u1e2b\u0003+"+ - "\u0015\u0000\u1e2b\u1e2c\u0003\u000f\u0007\u0000\u1e2c\u1e2d\u0003)\u0014"+ - "\u0000\u1e2d\u1e2e\u0003\u0017\u000b\u0000\u1e2e\u1e2f\u0003\u0007\u0003"+ - "\u0000\u1e2f\u1e30\u0003\u001d\u000e\u0000\u1e30\u1e31\u0003\u0011\b\u0000"+ - "\u1e31\u1e32\u0003/\u0017\u0000\u1e32\u1e33\u0003!\u0010\u0000\u1e33\u1e34"+ - "\u0003\u000b\u0005\u0000\u1e34\u0582\u0001\u0000\u0000\u0000\u1e35\u1e36"+ - "\u0003\u0017\u000b\u0000\u1e36\u1e37\u0003!\u0010\u0000\u1e37\u1e38\u0003"+ - "\u0017\u000b\u0000\u1e38\u1e39\u0003-\u0016\u0000\u1e39\u1e3a\u0003\u000b"+ - "\u0005\u0000\u1e3a\u1e3b\u0003#\u0011\u0000\u1e3b\u1e3c\u0003!\u0010\u0000"+ - "\u1e3c\u1e3d\u0003\r\u0006\u0000\u1e3d\u0584\u0001\u0000\u0000\u0000\u1e3e"+ - "\u1e3f\u0003\u001f\u000f\u0000\u1e3f\u1e40\u0003+\u0015\u0000\u1e40\u1e41"+ - "\u0003\u0011\b\u0000\u1e41\u1e42\u0003/\u0017\u0000\u1e42\u1e43\u0003"+ - "!\u0010\u0000\u1e43\u1e44\u0003\u000b\u0005\u0000\u1e44\u0586\u0001\u0000"+ - "\u0000\u0000\u1e45\u1e46\u0003\u001f\u000f\u0000\u1e46\u1e47\u0003\u0017"+ - "\u000b\u0000\u1e47\u1e48\u0003!\u0010\u0000\u1e48\u1e49\u00031\u0018\u0000"+ - "\u1e49\u1e4a\u0003\u0011\b\u0000\u1e4a\u1e4b\u0003/\u0017\u0000\u1e4b"+ - "\u1e4c\u0003!\u0010\u0000\u1e4c\u1e4d\u0003\u000b\u0005\u0000\u1e4d\u0588"+ - "\u0001\u0000\u0000\u0000\u1e4e\u1e4f\u0003\u001f\u000f\u0000\u1e4f\u1e50"+ - "\u0003+\u0015\u0000\u1e50\u1e51\u0003-\u0016\u0000\u1e51\u1e52\u00037"+ - "\u001b\u0000\u1e52\u1e53\u0003%\u0012\u0000\u1e53\u1e54\u0003\u000f\u0007"+ - "\u0000\u1e54\u058a\u0001\u0000\u0000\u0000\u1e55\u1e56\u0003\u001f\u000f"+ - "\u0000\u1e56\u1e57\u0003+\u0015\u0000\u1e57\u1e58\u0003+\u0015\u0000\u1e58"+ - "\u1e59\u0003%\u0012\u0000\u1e59\u1e5a\u0003\u0007\u0003\u0000\u1e5a\u1e5b"+ - "\u0003\u000b\u0005\u0000\u1e5b\u1e5c\u0003\u000f\u0007\u0000\u1e5c\u058c"+ - "\u0001\u0000\u0000\u0000\u1e5d\u1e5e\u0003\u001f\u000f\u0000\u1e5e\u1e5f"+ - "\u0003\u0011\b\u0000\u1e5f\u1e60\u0003\u0017\u000b\u0000\u1e60\u1e61\u0003"+ - "!\u0010\u0000\u1e61\u1e62\u0003\u0007\u0003\u0000\u1e62\u1e63\u0003\u001d"+ - "\u000e\u0000\u1e63\u1e64\u0003\u0011\b\u0000\u1e64\u1e65\u0003/\u0017"+ - "\u0000\u1e65\u1e66\u0003!\u0010\u0000\u1e66\u1e67\u0003\u000b\u0005\u0000"+ - "\u1e67\u058e\u0001\u0000\u0000\u0000\u1e68\u1e69\u0003\u001f\u000f\u0000"+ - "\u1e69\u1e6a\u0003\u0011\b\u0000\u1e6a\u1e6b\u0003\u0017\u000b\u0000\u1e6b"+ - "\u1e6c\u0003!\u0010\u0000\u1e6c\u1e6d\u0003\u0007\u0003\u0000\u1e6d\u1e6e"+ - "\u0003\u001d\u000e\u0000\u1e6e\u1e6f\u0003\u0011\b\u0000\u1e6f\u1e70\u0003"+ - "/\u0017\u0000\u1e70\u1e71\u0003!\u0010\u0000\u1e71\u1e72\u0003\u000b\u0005"+ - "\u0000\u1e72\u1e73\u0005_\u0000\u0000\u1e73\u1e74\u0003\u000f\u0007\u0000"+ - "\u1e74\u1e75\u00035\u001a\u0000\u1e75\u1e76\u0003-\u0016\u0000\u1e76\u1e77"+ - "\u0003)\u0014\u0000\u1e77\u1e78\u0003\u0007\u0003\u0000\u1e78\u0590\u0001"+ - "\u0000\u0000\u0000\u1e79\u1e7a\u0003\u001f\u000f\u0000\u1e7a\u1e7b\u0003"+ - "\u0017\u000b\u0000\u1e7b\u1e7c\u0003!\u0010\u0000\u1e7c\u1e7d\u0003\u0017"+ - "\u000b\u0000\u1e7d\u1e7e\u0003-\u0016\u0000\u1e7e\u1e7f\u0003\u000b\u0005"+ - "\u0000\u1e7f\u1e80\u0003#\u0011\u0000\u1e80\u1e81\u0003!\u0010\u0000\u1e81"+ - "\u1e82\u0003\r\u0006\u0000\u1e82\u0592\u0001\u0000\u0000\u0000\u1e83\u1e84"+ - "\u0003+\u0015\u0000\u1e84\u1e85\u0003#\u0011\u0000\u1e85\u1e86\u0003)"+ - "\u0014\u0000\u1e86\u1e87\u0003-\u0016\u0000\u1e87\u1e88\u0003#\u0011\u0000"+ - "\u1e88\u1e89\u0003%\u0012\u0000\u1e89\u0594\u0001\u0000\u0000\u0000\u1e8a"+ - "\u1e8b\u0003%\u0012\u0000\u1e8b\u1e8c\u0003\u0007\u0003\u0000\u1e8c\u1e8d"+ - "\u0003)\u0014\u0000\u1e8d\u1e8e\u0003\u0007\u0003\u0000\u1e8e\u1e8f\u0003"+ - "\u001d\u000e\u0000\u1e8f\u1e90\u0003\u001d\u000e\u0000\u1e90\u1e91\u0003"+ - "\u000f\u0007\u0000\u1e91\u1e92\u0003\u001d\u000e\u0000\u1e92\u0596\u0001"+ - "\u0000\u0000\u0000\u1e93\u1e94\u0003\u0015\n\u0000\u1e94\u1e95\u00037"+ - "\u001b\u0000\u1e95\u1e96\u0003%\u0012\u0000\u1e96\u1e97\u0003#\u0011\u0000"+ - "\u1e97\u1e98\u0003-\u0016\u0000\u1e98\u1e99\u0003\u0015\n\u0000\u1e99"+ - "\u1e9a\u0003\u000f\u0007\u0000\u1e9a\u1e9b\u0003-\u0016\u0000\u1e9b\u1e9c"+ - "\u0003\u0017\u000b\u0000\u1e9c\u1e9d\u0003\u000b\u0005\u0000\u1e9d\u1e9e"+ - "\u0003\u0007\u0003\u0000\u1e9e\u1e9f\u0003\u001d\u000e\u0000\u1e9f\u0598"+ - "\u0001\u0000\u0000\u0000\u1ea0\u1ea1\u0003+\u0015\u0000\u1ea1\u1ea2\u0003"+ - "\u0007\u0003\u0000\u1ea2\u1ea3\u0003\u0011\b\u0000\u1ea3\u1ea4\u0003\u000f"+ - "\u0007\u0000\u1ea4\u059a\u0001\u0000\u0000\u0000\u1ea5\u1ea6\u0003/\u0017"+ - "\u0000\u1ea6\u1ea7\u0003!\u0010\u0000\u1ea7\u1ea8\u0003+\u0015\u0000\u1ea8"+ - "\u1ea9\u0003\u0007\u0003\u0000\u1ea9\u1eaa\u0003\u0011\b\u0000\u1eaa\u1eab"+ - "\u0003\u000f\u0007\u0000\u1eab\u059c\u0001\u0000\u0000\u0000\u1eac\u1ead"+ - "\u0003\t\u0004\u0000\u1ead\u1eae\u0003\u0007\u0003\u0000\u1eae\u1eaf\u0003"+ - "+\u0015\u0000\u1eaf\u1eb0\u0003\u000f\u0007\u0000\u1eb0\u1eb1\u0003-\u0016"+ - "\u0000\u1eb1\u1eb2\u00037\u001b\u0000\u1eb2\u1eb3\u0003%\u0012\u0000\u1eb3"+ - "\u1eb4\u0003\u000f\u0007\u0000\u1eb4\u059e\u0001\u0000\u0000\u0000\u1eb5"+ - "\u1eb6\u0003\u0017\u000b\u0000\u1eb6\u1eb7\u0003\u0011\b\u0000\u1eb7\u05a0"+ - "\u0001\u0000\u0000\u0000\u1eb8\u1eb9\u0003\u001d\u000e\u0000\u1eb9\u1eba"+ - "\u0003#\u0011\u0000\u1eba\u1ebb\u0003\u000b\u0005\u0000\u1ebb\u1ebc\u0003"+ - "\u0007\u0003\u0000\u1ebc\u1ebd\u0003\u001d\u000e\u0000\u1ebd\u1ebe\u0003"+ - "\u000f\u0007\u0000\u1ebe\u05a2\u0001\u0000\u0000\u0000\u1ebf\u1ec0\u0003"+ - "\u001d\u000e\u0000\u1ec0\u1ec1\u0003\u000b\u0005\u0000\u1ec1\u1ec2\u0005"+ - "_\u0000\u0000\u1ec2\u1ec3\u0003\u000b\u0005\u0000\u1ec3\u1ec4\u0003#\u0011"+ - "\u0000\u1ec4\u1ec5\u0003\u001d\u000e\u0000\u1ec5\u1ec6\u0003\u001d\u000e"+ - "\u0000\u1ec6\u1ec7\u0003\u0007\u0003\u0000\u1ec7\u1ec8\u0003-\u0016\u0000"+ - "\u1ec8\u1ec9\u0003\u000f\u0007\u0000\u1ec9\u05a4\u0001\u0000\u0000\u0000"+ - "\u1eca\u1ecb\u0003\u001d\u000e\u0000\u1ecb\u1ecc\u0003\u000b\u0005\u0000"+ - "\u1ecc\u1ecd\u0005_\u0000\u0000\u1ecd\u1ece\u0003\u000b\u0005\u0000\u1ece"+ - "\u1ecf\u0003-\u0016\u0000\u1ecf\u1ed0\u00037\u001b\u0000\u1ed0\u1ed1\u0003"+ - "%\u0012\u0000\u1ed1\u1ed2\u0003\u000f\u0007\u0000\u1ed2\u05a6\u0001\u0000"+ - "\u0000\u0000\u1ed3\u1ed4\u0003%\u0012\u0000\u1ed4\u1ed5\u0003)\u0014\u0000"+ - "\u1ed5\u1ed6\u0003#\u0011\u0000\u1ed6\u1ed7\u00031\u0018\u0000\u1ed7\u1ed8"+ - "\u0003\u0017\u000b\u0000\u1ed8\u1ed9\u0003\r\u0006\u0000\u1ed9\u1eda\u0003"+ - "\u000f\u0007\u0000\u1eda\u1edb\u0003)\u0014\u0000\u1edb\u05a8\u0001\u0000"+ - "\u0000\u0000\u1edc\u1edd\u00031\u0018\u0000\u1edd\u1ede\u0003\u000f\u0007"+ - "\u0000\u1ede\u1edf\u0003)\u0014\u0000\u1edf\u1ee0\u0003+\u0015\u0000\u1ee0"+ - "\u1ee1\u0003\u0017\u000b\u0000\u1ee1\u1ee2\u0003#\u0011\u0000\u1ee2\u1ee3"+ - "\u0003!\u0010\u0000\u1ee3\u05aa\u0001\u0000\u0000\u0000\u1ee4\u1ee5\u0003"+ - "\u0007\u0003\u0000\u1ee5\u1ee6\u0003\u001d\u000e\u0000\u1ee6\u1ee7\u0003"+ - "\u001d\u000e\u0000\u1ee7\u1ee8\u0003#\u0011\u0000\u1ee8\u1ee9\u00033\u0019"+ - "\u0000\u1ee9\u1eea\u0005_\u0000\u0000\u1eea\u1eeb\u0003\u000b\u0005\u0000"+ - "\u1eeb\u1eec\u0003#\u0011\u0000\u1eec\u1eed\u0003!\u0010\u0000\u1eed\u1eee"+ - "\u0003!\u0010\u0000\u1eee\u1eef\u0003\u000f\u0007\u0000\u1eef\u1ef0\u0003"+ - "\u000b\u0005\u0000\u1ef0\u1ef1\u0003-\u0016\u0000\u1ef1\u1ef2\u0003\u0017"+ - "\u000b\u0000\u1ef2\u1ef3\u0003#\u0011\u0000\u1ef3\u1ef4\u0003!\u0010\u0000"+ - "\u1ef4\u1ef5\u0003+\u0015\u0000\u1ef5\u05ac\u0001\u0000\u0000\u0000\u1ef6"+ - "\u1ef7\u0003\u0017\u000b\u0000\u1ef7\u1ef8\u0003+\u0015\u0000\u1ef8\u1ef9"+ - "\u0005_\u0000\u0000\u1ef9\u1efa\u0003-\u0016\u0000\u1efa\u1efb\u0003\u000f"+ - "\u0007\u0000\u1efb\u1efc\u0003\u001f\u000f\u0000\u1efc\u1efd\u0003%\u0012"+ - "\u0000\u1efd\u1efe\u0003\u001d\u000e\u0000\u1efe\u1eff\u0003\u0007\u0003"+ - "\u0000\u1eff\u1f00\u0003-\u0016\u0000\u1f00\u1f01\u0003\u000f\u0007\u0000"+ - "\u1f01\u05ae\u0001\u0000\u0000\u0000\u1f02\u1f03\u0003\u000f\u0007\u0000"+ - "\u1f03\u1f04\u00031\u0018\u0000\u1f04\u1f05\u0003\u000f\u0007\u0000\u1f05"+ - "\u1f06\u0003!\u0010\u0000\u1f06\u1f07\u0003-\u0016\u0000\u1f07\u05b0\u0001"+ - "\u0000\u0000\u0000\u1f08\u1f09\u00033\u0019\u0000\u1f09\u1f0a\u0003)\u0014"+ - "\u0000\u1f0a\u1f0b\u0003\u0007\u0003\u0000\u1f0b\u1f0c\u0003%\u0012\u0000"+ - "\u1f0c\u1f0d\u0003%\u0012\u0000\u1f0d\u1f0e\u0003\u000f\u0007\u0000\u1f0e"+ - "\u1f0f\u0003)\u0014\u0000\u1f0f\u05b2\u0001\u0000\u0000\u0000\u1f10\u1f11"+ - "\u0003+\u0015\u0000\u1f11\u1f12\u0003\u000f\u0007\u0000\u1f12\u1f13\u0003"+ - ")\u0014\u0000\u1f13\u1f14\u00031\u0018\u0000\u1f14\u1f15\u0003\u000f\u0007"+ - "\u0000\u1f15\u1f16\u0003)\u0014\u0000\u1f16\u05b4\u0001\u0000\u0000\u0000"+ - "\u1f17\u1f18\u0003\t\u0004\u0000\u1f18\u1f19\u0003-\u0016\u0000\u1f19"+ - "\u1f1a\u0003)\u0014\u0000\u1f1a\u1f1b\u0003\u000f\u0007\u0000\u1f1b\u1f1c"+ - "\u0003\u000f\u0007\u0000\u1f1c\u05b6\u0001\u0000\u0000\u0000\u1f1d\u1f1e"+ - "\u0003\u0015\n\u0000\u1f1e\u1f1f\u0003\u0007\u0003\u0000\u1f1f\u1f20\u0003"+ - "+\u0015\u0000\u1f20\u1f21\u0003\u0015\n\u0000\u1f21\u05b8\u0001\u0000"+ - "\u0000\u0000\u1f22\u1f23\u0003\u0013\t\u0000\u1f23\u1f24\u0003\u0017\u000b"+ - "\u0000\u1f24\u1f25\u0003+\u0015\u0000\u1f25\u1f26\u0003-\u0016\u0000\u1f26"+ - "\u05ba\u0001\u0000\u0000\u0000\u1f27\u1f28\u0003+\u0015\u0000\u1f28\u1f29"+ - "\u0003%\u0012\u0000\u1f29\u1f2a\u0003\u0013\t\u0000\u1f2a\u1f2b\u0003"+ - "\u0017\u000b\u0000\u1f2b\u1f2c\u0003+\u0015\u0000\u1f2c\u1f2d\u0003-\u0016"+ - "\u0000\u1f2d\u05bc\u0001\u0000\u0000\u0000\u1f2e\u1f2f\u0003\u0013\t\u0000"+ - "\u1f2f\u1f30\u0003\u0017\u000b\u0000\u1f30\u1f31\u0003!\u0010\u0000\u1f31"+ - "\u05be\u0001\u0000\u0000\u0000\u1f32\u1f33\u0003\t\u0004\u0000\u1f33\u1f34"+ - "\u0003)\u0014\u0000\u1f34\u1f35\u0003\u0017\u000b\u0000\u1f35\u1f36\u0003"+ - "!\u0010\u0000\u1f36\u05c0\u0001\u0000\u0000\u0000\u1f37\u1f38\u0003\u000b"+ - "\u0005\u0000\u1f38\u1f39\u0003#\u0011\u0000\u1f39\u1f3a\u0003!\u0010\u0000"+ - "\u1f3a\u1f3b\u0003\u000b\u0005\u0000\u1f3b\u1f3c\u0003/\u0017\u0000\u1f3c"+ - "\u1f3d\u0003)\u0014\u0000\u1f3d\u1f3e\u0003)\u0014\u0000\u1f3e\u1f3f\u0003"+ - "\u000f\u0007\u0000\u1f3f\u1f40\u0003!\u0010\u0000\u1f40\u1f41\u0003-\u0016"+ - "\u0000\u1f41\u1f42\u0003\u001d\u000e\u0000\u1f42\u1f43\u00037\u001b\u0000"+ - "\u1f43\u05c2\u0001\u0000\u0000\u0000\u1f44\u1f45\u0003\u0017\u000b\u0000"+ - "\u1f45\u1f46\u0003!\u0010\u0000\u1f46\u1f47\u0003\u001d\u000e\u0000\u1f47"+ - "\u1f48\u0003\u0017\u000b\u0000\u1f48\u1f49\u0003!\u0010\u0000\u1f49\u1f4a"+ - "\u0003\u000f\u0007\u0000\u1f4a\u05c4\u0001\u0000\u0000\u0000\u1f4b\u1f4c"+ - "\u0003\u001f\u000f\u0000\u1f4c\u1f4d\u0003\u0007\u0003\u0000\u1f4d\u1f4e"+ - "\u0003-\u0016\u0000\u1f4e\u1f4f\u0003\u000f\u0007\u0000\u1f4f\u1f50\u0003"+ - ")\u0014\u0000\u1f50\u1f51\u0003\u0017\u000b\u0000\u1f51\u1f52\u0003\u0007"+ - "\u0003\u0000\u1f52\u1f53\u0003\u001d\u000e\u0000\u1f53\u1f54\u0003\u0017"+ - "\u000b\u0000\u1f54\u1f55\u00039\u001c\u0000\u1f55\u1f56\u0003\u000f\u0007"+ - "\u0000\u1f56\u1f57\u0003\r\u0006\u0000\u1f57\u05c6\u0001\u0000\u0000\u0000"+ - "\u1f58\u1f59\u0003\u001d\u000e\u0000\u1f59\u1f5a\u0003\u000f\u0007\u0000"+ - "\u1f5a\u1f5b\u0003\u0011\b\u0000\u1f5b\u1f5c\u0003-\u0016\u0000\u1f5c"+ - "\u1f5d\u0003\u0007\u0003\u0000\u1f5d\u1f5e\u0003)\u0014\u0000\u1f5e\u1f5f"+ - "\u0003\u0013\t\u0000\u1f5f\u05c8\u0001\u0000\u0000\u0000\u1f60\u1f61\u0003"+ - ")\u0014\u0000\u1f61\u1f62\u0003\u0017\u000b\u0000\u1f62\u1f63\u0003\u0013"+ - "\t\u0000\u1f63\u1f64\u0003\u0015\n\u0000\u1f64\u1f65\u0003-\u0016\u0000"+ - "\u1f65\u1f66\u0003\u0007\u0003\u0000\u1f66\u1f67\u0003)\u0014\u0000\u1f67"+ - "\u1f68\u0003\u0013\t\u0000\u1f68\u05ca\u0001\u0000\u0000\u0000\u1f69\u1f6a"+ - "\u0003\u000b\u0005\u0000\u1f6a\u1f6b\u0003#\u0011\u0000\u1f6b\u1f6c\u0003"+ - "\u001f\u000f\u0000\u1f6c\u1f6d\u0003\u001f\u000f\u0000\u1f6d\u1f6e\u0003"+ - "/\u0017\u0000\u1f6e\u1f6f\u0003-\u0016\u0000\u1f6f\u1f70\u0003\u0007\u0003"+ - "\u0000\u1f70\u1f71\u0003-\u0016\u0000\u1f71\u1f72\u0003#\u0011\u0000\u1f72"+ - "\u1f73\u0003)\u0014\u0000\u1f73\u05cc\u0001\u0000\u0000\u0000\u1f74\u1f75"+ - "\u0003!\u0010\u0000\u1f75\u1f76\u0003\u000f\u0007\u0000\u1f76\u1f77\u0003"+ - "\u0013\t\u0000\u1f77\u1f78\u0003\u0007\u0003\u0000\u1f78\u1f79\u0003-"+ - "\u0016\u0000\u1f79\u1f7a\u0003#\u0011\u0000\u1f7a\u1f7b\u0003)\u0014\u0000"+ - "\u1f7b\u05ce\u0001\u0000\u0000\u0000\u1f7c\u1f7d\u0003\u0015\n\u0000\u1f7d"+ - "\u1f7e\u0003\u0007\u0003\u0000\u1f7e\u1f7f\u0003+\u0015\u0000\u1f7f\u1f80"+ - "\u0003\u0015\n\u0000\u1f80\u1f81\u0003\u000f\u0007\u0000\u1f81\u1f82\u0003"+ - "+\u0015\u0000\u1f82\u05d0\u0001\u0000\u0000\u0000\u1f83\u1f84\u0003\u001f"+ - "\u000f\u0000\u1f84\u1f85\u0003\u000f\u0007\u0000\u1f85\u1f86\u0003)\u0014"+ - "\u0000\u1f86\u1f87\u0003\u0013\t\u0000\u1f87\u1f88\u0003\u000f\u0007\u0000"+ - "\u1f88\u1f89\u0003+\u0015\u0000\u1f89\u05d2\u0001\u0000\u0000\u0000\u1f8a"+ - "\u1f8b\u0003\u0011\b\u0000\u1f8b\u1f8c\u0003\u0007\u0003\u0000\u1f8c\u1f8d"+ - "\u0003\u001f\u000f\u0000\u1f8d\u1f8e\u0003\u0017\u000b\u0000\u1f8e\u1f8f"+ - "\u0003\u001d\u000e\u0000\u1f8f\u1f90\u00037\u001b\u0000\u1f90\u05d4\u0001"+ - "\u0000\u0000\u0000\u1f91\u1f92\u0003%\u0012\u0000\u1f92\u1f93\u0003#\u0011"+ - "\u0000\u1f93\u1f94\u0003\u001d\u000e\u0000\u1f94\u1f95\u0003\u0017\u000b"+ - "\u0000\u1f95\u1f96\u0003\u000b\u0005\u0000\u1f96\u1f97\u00037\u001b\u0000"+ - "\u1f97\u05d6\u0001\u0000\u0000\u0000\u1f98\u1f99\u0003#\u0011\u0000\u1f99"+ - "\u1f9a\u00033\u0019\u0000\u1f9a\u1f9b\u0003!\u0010\u0000\u1f9b\u1f9c\u0003"+ - "\u000f\u0007\u0000\u1f9c\u1f9d\u0003\r\u0006\u0000\u1f9d\u05d8\u0001\u0000"+ - "\u0000\u0000\u1f9e\u1f9f\u0003\u0007\u0003\u0000\u1f9f\u1fa0\u0003\t\u0004"+ - "\u0000\u1fa0\u1fa1\u0003+\u0015\u0000\u1fa1\u1fa2\u0003-\u0016\u0000\u1fa2"+ - "\u1fa3\u0003\u0017\u000b\u0000\u1fa3\u1fa4\u0003\u001f\u000f\u0000\u1fa4"+ - "\u1fa5\u0003\u000f\u0007\u0000\u1fa5\u05da\u0001\u0000\u0000\u0000\u1fa6"+ - "\u1fa7\u0003\t\u0004\u0000\u1fa7\u1fa8\u0003\u0017\u000b\u0000\u1fa8\u1fa9"+ - "\u0003\u0013\t\u0000\u1fa9\u1faa\u0003+\u0015\u0000\u1faa\u1fab\u0003"+ - "\u000f\u0007\u0000\u1fab\u1fac\u0003)\u0014\u0000\u1fac\u1fad\u0003\u0017"+ - "\u000b\u0000\u1fad\u1fae\u0003\u0007\u0003\u0000\u1fae\u1faf\u0003\u001d"+ - "\u000e\u0000\u1faf\u05dc\u0001\u0000\u0000\u0000\u1fb0\u1fb1\u0003\t\u0004"+ - "\u0000\u1fb1\u1fb2\u0003\u0017\u000b\u0000\u1fb2\u1fb3\u0003-\u0016\u0000"+ - "\u1fb3\u1fb4\u0005 \u0000\u0000\u1fb4\u1fb5\u00031\u0018\u0000\u1fb5\u1fb6"+ - "\u0003\u0007\u0003\u0000\u1fb6\u1fb7\u0003)\u0014\u0000\u1fb7\u1fb8\u0003"+ - "7\u001b\u0000\u1fb8\u1fb9\u0003\u0017\u000b\u0000\u1fb9\u1fba\u0003!\u0010"+ - "\u0000\u1fba\u1fbb\u0003\u0013\t\u0000\u1fbb\u05de\u0001\u0000\u0000\u0000"+ - "\u1fbc\u1fbd\u0003\t\u0004\u0000\u1fbd\u1fbe\u0003#\u0011\u0000\u1fbe"+ - "\u1fbf\u0003#\u0011\u0000\u1fbf\u1fc0\u0003\u001d\u000e\u0000\u1fc0\u05e0"+ - "\u0001\u0000\u0000\u0000\u1fc1\u1fc2\u0003\t\u0004\u0000\u1fc2\u1fc3\u0003"+ - "#\u0011\u0000\u1fc3\u1fc4\u00035\u001a\u0000\u1fc4\u05e2\u0001\u0000\u0000"+ - "\u0000\u1fc5\u1fc6\u0003\t\u0004\u0000\u1fc6\u1fc7\u00037\u001b\u0000"+ - "\u1fc7\u1fc8\u0003-\u0016\u0000\u1fc8\u1fc9\u0003\u000f\u0007\u0000\u1fc9"+ - "\u1fca\u0003\u0007\u0003\u0000\u1fca\u05e4\u0001\u0000\u0000\u0000\u1fcb"+ - "\u1fcc\u0003\u000b\u0005\u0000\u1fcc\u1fcd\u0003\u0015\n\u0000\u1fcd\u1fce"+ - "\u0003\u0007\u0003\u0000\u1fce\u1fcf\u0003)\u0014\u0000\u1fcf\u1fd0\u0003"+ - "\u0007\u0003\u0000\u1fd0\u1fd1\u0003\u000b\u0005\u0000\u1fd1\u1fd2\u0003"+ - "-\u0016\u0000\u1fd2\u1fd3\u0003\u000f\u0007\u0000\u1fd3\u1fd4\u0003)\u0014"+ - "\u0000\u1fd4\u1fd5\u0005 \u0000\u0000\u1fd5\u1fd6\u00031\u0018\u0000\u1fd6"+ - "\u1fd7\u0003\u0007\u0003\u0000\u1fd7\u1fd8\u0003)\u0014\u0000\u1fd8\u1fd9"+ - "\u00037\u001b\u0000\u1fd9\u1fda\u0003\u0017\u000b\u0000\u1fda\u1fdb\u0003"+ - "!\u0010\u0000\u1fdb\u1fdc\u0003\u0013\t\u0000\u1fdc\u05e6\u0001\u0000"+ - "\u0000\u0000\u1fdd\u1fde\u0003\u000b\u0005\u0000\u1fde\u1fdf\u0003\u0017"+ - "\u000b\u0000\u1fdf\u1fe0\u0003\r\u0006\u0000\u1fe0\u1fe1\u0003)\u0014"+ - "\u0000\u1fe1\u05e8\u0001\u0000\u0000\u0000\u1fe2\u1fe3\u0003\u000b\u0005"+ - "\u0000\u1fe3\u1fe4\u0003\u0017\u000b\u0000\u1fe4\u1fe5\u0003)\u0014\u0000"+ - "\u1fe5\u1fe6\u0003\u000b\u0005\u0000\u1fe6\u1fe7\u0003\u001d\u000e\u0000"+ - "\u1fe7\u1fe8\u0003\u000f\u0007\u0000\u1fe8\u05ea\u0001\u0000\u0000\u0000"+ - "\u1fe9\u1fea\u0003\u0011\b\u0000\u1fea\u1feb\u0003\u001d\u000e\u0000\u1feb"+ - "\u1fec\u0003#\u0011\u0000\u1fec\u1fed\u0003\u0007\u0003\u0000\u1fed\u1fee"+ - "\u0003-\u0016\u0000\u1fee\u1fef\u00054\u0000\u0000\u1fef\u05ec\u0001\u0000"+ - "\u0000\u0000\u1ff0\u1ff1\u0003\u0011\b\u0000\u1ff1\u1ff2\u0003\u001d\u000e"+ - "\u0000\u1ff2\u1ff3\u0003#\u0011\u0000\u1ff3\u1ff4\u0003\u0007\u0003\u0000"+ - "\u1ff4\u1ff5\u0003-\u0016\u0000\u1ff5\u1ff6\u00058\u0000\u0000\u1ff6\u05ee"+ - "\u0001\u0000\u0000\u0000\u1ff7\u1ff8\u0003\u0017\u000b\u0000\u1ff8\u1ff9"+ - "\u0003!\u0010\u0000\u1ff9\u1ffa\u0003\u000f\u0007\u0000\u1ffa\u1ffb\u0003"+ - "-\u0016\u0000\u1ffb\u05f0\u0001\u0000\u0000\u0000\u1ffc\u1ffd\u0003\u0017"+ - "\u000b\u0000\u1ffd\u1ffe\u0003!\u0010\u0000\u1ffe\u1fff\u0003-\u0016\u0000"+ - "\u1fff\u2000\u00052\u0000\u0000\u2000\u05f2\u0001\u0000\u0000\u0000\u2001"+ - "\u2002\u0003\u0017\u000b\u0000\u2002\u2003\u0003!\u0010\u0000\u2003\u2004"+ - "\u0003-\u0016\u0000\u2004\u2005\u00054\u0000\u0000\u2005\u05f4\u0001\u0000"+ - "\u0000\u0000\u2006\u2007\u0003\u0017\u000b\u0000\u2007\u2008\u0003!\u0010"+ - "\u0000\u2008\u2009\u0003-\u0016\u0000\u2009\u200a\u00058\u0000\u0000\u200a"+ - "\u05f6\u0001\u0000\u0000\u0000\u200b\u200c\u0003\u0019\f\u0000\u200c\u200d"+ - "\u0003+\u0015\u0000\u200d\u200e\u0003#\u0011\u0000\u200e\u200f\u0003!"+ - "\u0010\u0000\u200f\u05f8\u0001\u0000\u0000\u0000\u2010\u2011\u0003\u0019"+ - "\f\u0000\u2011\u2012\u0003+\u0015\u0000\u2012\u2013\u0003#\u0011\u0000"+ - "\u2013\u2014\u0003!\u0010\u0000\u2014\u2015\u0003\t\u0004\u0000\u2015"+ - "\u05fa\u0001\u0000\u0000\u0000\u2016\u2017\u0003\u001d\u000e\u0000\u2017"+ - "\u2018\u0003\u0017\u000b\u0000\u2018\u2019\u0003!\u0010\u0000\u2019\u201a"+ - "\u0003\u000f\u0007\u0000\u201a\u05fc\u0001\u0000\u0000\u0000\u201b\u201c"+ - "\u0003\u001d\u000e\u0000\u201c\u201d\u0003+\u0015\u0000\u201d\u201e\u0003"+ - "\u000f\u0007\u0000\u201e\u201f\u0003\u0013\t\u0000\u201f\u05fe\u0001\u0000"+ - "\u0000\u0000\u2020\u2021\u0003\u001f\u000f\u0000\u2021\u2022\u0003\u0007"+ - "\u0003\u0000\u2022\u2023\u0003\u000b\u0005\u0000\u2023\u2024\u0003\u0007"+ - "\u0003\u0000\u2024\u2025\u0003\r\u0006\u0000\u2025\u2026\u0003\r\u0006"+ - "\u0000\u2026\u2027\u0003)\u0014\u0000\u2027\u0600\u0001\u0000\u0000\u0000"+ - "\u2028\u2029\u0003\u001f\u000f\u0000\u2029\u202a\u0003\u0007\u0003\u0000"+ - "\u202a\u202b\u0003\u000b\u0005\u0000\u202b\u202c\u0003\u0007\u0003\u0000"+ - "\u202c\u202d\u0003\r\u0006\u0000\u202d\u202e\u0003\r\u0006\u0000\u202e"+ - "\u202f\u0003)\u0014\u0000\u202f\u2030\u00058\u0000\u0000\u2030\u0602\u0001"+ - "\u0000\u0000\u0000\u2031\u2032\u0003\u001f\u000f\u0000\u2032\u2033\u0003"+ - "#\u0011\u0000\u2033\u2034\u0003!\u0010\u0000\u2034\u2035\u0003\u000f\u0007"+ - "\u0000\u2035\u2036\u00037\u001b\u0000\u2036\u0604\u0001\u0000\u0000\u0000"+ - "\u2037\u2038\u0003%\u0012\u0000\u2038\u2039\u0003\u0013\t\u0000\u2039"+ - "\u203a\u0005_\u0000\u0000\u203a\u203b\u0003\u001d\u000e\u0000\u203b\u203c"+ - "\u0003+\u0015\u0000\u203c\u203d\u0003!\u0010\u0000\u203d\u0606\u0001\u0000"+ - "\u0000\u0000\u203e\u203f\u0003%\u0012\u0000\u203f\u2040\u0003#\u0011\u0000"+ - "\u2040\u2041\u0003\u0017\u000b\u0000\u2041\u2042\u0003!\u0010\u0000\u2042"+ - "\u2043\u0003-\u0016\u0000\u2043\u0608\u0001\u0000\u0000\u0000\u2044\u2045"+ - "\u0003%\u0012\u0000\u2045\u2046\u0003#\u0011\u0000\u2046\u2047\u0003\u001d"+ - "\u000e\u0000\u2047\u2048\u00037\u001b\u0000\u2048\u2049\u0003\u0013\t"+ - "\u0000\u2049\u204a\u0003#\u0011\u0000\u204a\u204b\u0003!\u0010\u0000\u204b"+ - "\u060a\u0001\u0000\u0000\u0000\u204c\u204d\u0003)\u0014\u0000\u204d\u204e"+ - "\u0003\u000f\u0007\u0000\u204e\u204f\u0003\u001d\u000e\u0000\u204f\u2050"+ - "\u0003-\u0016\u0000\u2050\u2051\u0003\u0017\u000b\u0000\u2051\u2052\u0003"+ - "\u001f\u000f\u0000\u2052\u2053\u0003\u000f\u0007\u0000\u2053\u060c\u0001"+ - "\u0000\u0000\u0000\u2054\u2055\u0003+\u0015\u0000\u2055\u2056\u0003\u000f"+ - "\u0007\u0000\u2056\u2057\u0003)\u0014\u0000\u2057\u2058\u0003\u0017\u000b"+ - "\u0000\u2058\u2059\u0003\u0007\u0003\u0000\u2059\u205a\u0003\u001d\u000e"+ - "\u0000\u205a\u060e\u0001\u0000\u0000\u0000\u205b\u205c\u0003+\u0015\u0000"+ - "\u205c\u205d\u0003\u000f\u0007\u0000\u205d\u205e\u0003)\u0014\u0000\u205e"+ - "\u205f\u0003\u0017\u000b\u0000\u205f\u2060\u0003\u0007\u0003\u0000\u2060"+ - "\u2061\u0003\u001d\u000e\u0000\u2061\u2062\u00052\u0000\u0000\u2062\u0610"+ - "\u0001\u0000\u0000\u0000\u2063\u2064\u0003+\u0015\u0000\u2064\u2065\u0003"+ - "\u000f\u0007\u0000\u2065\u2066\u0003)\u0014\u0000\u2066\u2067\u0003\u0017"+ - "\u000b\u0000\u2067\u2068\u0003\u0007\u0003\u0000\u2068\u2069\u0003\u001d"+ - "\u000e\u0000\u2069\u206a\u00054\u0000\u0000\u206a\u0612\u0001\u0000\u0000"+ - "\u0000\u206b\u206c\u0003+\u0015\u0000\u206c\u206d\u0003\u000f\u0007\u0000"+ - "\u206d\u206e\u0003)\u0014\u0000\u206e\u206f\u0003\u0017\u000b\u0000\u206f"+ - "\u2070\u0003\u0007\u0003\u0000\u2070\u2071\u0003\u001d\u000e\u0000\u2071"+ - "\u2072\u00058\u0000\u0000\u2072\u0614\u0001\u0000\u0000\u0000\u2073\u2074"+ - "\u0003+\u0015\u0000\u2074\u2075\u0003\u001f\u000f\u0000\u2075\u2076\u0003"+ - "\u0007\u0003\u0000\u2076\u2077\u0003\u001d\u000e\u0000\u2077\u2078\u0003"+ - "\u001d\u000e\u0000\u2078\u2079\u0003+\u0015\u0000\u2079\u207a\u0003\u000f"+ - "\u0007\u0000\u207a\u207b\u0003)\u0014\u0000\u207b\u207c\u0003\u0017\u000b"+ - "\u0000\u207c\u207d\u0003\u0007\u0003\u0000\u207d\u207e\u0003\u001d\u000e"+ - "\u0000\u207e\u0616\u0001\u0000\u0000\u0000\u207f\u2080\u0003+\u0015\u0000"+ - "\u2080\u2081\u0003-\u0016\u0000\u2081\u2082\u0003+\u0015\u0000\u2082\u2083"+ - "\u0003-\u0016\u0000\u2083\u2084\u0003\u000f\u0007\u0000\u2084\u2085\u0003"+ - "\u001f\u000f\u0000\u2085\u0618\u0001\u0000\u0000\u0000\u2086\u2087\u0003"+ - "-\u0016\u0000\u2087\u2088\u0003\u000f\u0007\u0000\u2088\u2089\u00035\u001a"+ - "\u0000\u2089\u208a\u0003-\u0016\u0000\u208a\u061a\u0001\u0000\u0000\u0000"+ - "\u208b\u208c\u0003-\u0016\u0000\u208c\u208d\u0003\u0017\u000b\u0000\u208d"+ - "\u208e\u0003\u001f\u000f\u0000\u208e\u208f\u0003\u000f\u0007\u0000\u208f"+ - "\u2090\u0003+\u0015\u0000\u2090\u2091\u0003-\u0016\u0000\u2091\u2092\u0003"+ - "\u0007\u0003\u0000\u2092\u2093\u0003\u001f\u000f\u0000\u2093\u2094\u0003"+ - "%\u0012\u0000\u2094\u2095\u0003-\u0016\u0000\u2095\u2096\u00039\u001c"+ - "\u0000\u2096\u061c\u0001\u0000\u0000\u0000\u2097\u2098\u0003-\u0016\u0000"+ - "\u2098\u2099\u0003\u0017\u000b\u0000\u2099\u209a\u0003\u001f\u000f\u0000"+ - "\u209a\u209b\u0003\u000f\u0007\u0000\u209b\u209c\u0003-\u0016\u0000\u209c"+ - "\u209d\u00039\u001c\u0000\u209d\u061e\u0001\u0000\u0000\u0000\u209e\u209f"+ - "\u0003-\u0016\u0000\u209f\u20a0\u0003+\u0015\u0000\u20a0\u20a1\u0003\'"+ - "\u0013\u0000\u20a1\u20a2\u0003/\u0017\u0000\u20a2\u20a3\u0003\u000f\u0007"+ - "\u0000\u20a3\u20a4\u0003)\u0014\u0000\u20a4\u20a5\u00037\u001b\u0000\u20a5"+ - "\u0620\u0001\u0000\u0000\u0000\u20a6\u20a7\u0003-\u0016\u0000\u20a7\u20a8"+ - "\u0003+\u0015\u0000\u20a8\u20a9\u00031\u0018\u0000\u20a9\u20aa\u0003\u000f"+ - "\u0007\u0000\u20aa\u20ab\u0003\u000b\u0005\u0000\u20ab\u20ac\u0003-\u0016"+ - "\u0000\u20ac\u20ad\u0003#\u0011\u0000\u20ad\u20ae\u0003)\u0014\u0000\u20ae"+ - "\u0622\u0001\u0000\u0000\u0000\u20af\u20b0\u0003-\u0016\u0000\u20b0\u20b1"+ - "\u00035\u001a\u0000\u20b1\u20b2\u0003\u0017\u000b\u0000\u20b2\u20b3\u0003"+ - "\r\u0006\u0000\u20b3\u20b4\u0005_\u0000\u0000\u20b4\u20b5\u0003+\u0015"+ - "\u0000\u20b5\u20b6\u0003!\u0010\u0000\u20b6\u20b7\u0003\u0007\u0003\u0000"+ - "\u20b7\u20b8\u0003%\u0012\u0000\u20b8\u20b9\u0003+\u0015\u0000\u20b9\u20ba"+ - "\u0003\u0015\n\u0000\u20ba\u20bb\u0003#\u0011\u0000\u20bb\u20bc\u0003"+ - "-\u0016\u0000\u20bc\u0624\u0001\u0000\u0000\u0000\u20bd\u20be\u0003/\u0017"+ - "\u0000\u20be\u20bf\u0003/\u0017\u0000\u20bf\u20c0\u0003\u0017\u000b\u0000"+ - "\u20c0\u20c1\u0003\r\u0006\u0000\u20c1\u0626\u0001\u0000\u0000\u0000\u20c2"+ - "\u20c3\u00031\u0018\u0000\u20c3\u20c4\u0003\u0007\u0003\u0000\u20c4\u20c5"+ - "\u0003)\u0014\u0000\u20c5\u20c6\u0003\t\u0004\u0000\u20c6\u20c7\u0003"+ - "\u0017\u000b\u0000\u20c7\u20c8\u0003-\u0016\u0000\u20c8\u0628\u0001\u0000"+ - "\u0000\u0000\u20c9\u20ca\u00035\u001a\u0000\u20ca\u20cb\u0003\u001f\u000f"+ - "\u0000\u20cb\u20cc\u0003\u001d\u000e\u0000\u20cc\u062a\u0001\u0000\u0000"+ - "\u0000\u20cd\u20ce\u0005,\u0000\u0000\u20ce\u062c\u0001\u0000\u0000\u0000"+ - "\u20cf\u20d0\u0005:\u0000\u0000\u20d0\u062e\u0001\u0000\u0000\u0000\u20d1"+ - "\u20d2\u0005:\u0000\u0000\u20d2\u20d3\u0005:\u0000\u0000\u20d3\u0630\u0001"+ - "\u0000\u0000\u0000\u20d4\u20d5\u0005$\u0000\u0000\u20d5\u0632\u0001\u0000"+ - "\u0000\u0000\u20d6\u20d7\u0005$\u0000\u0000\u20d7\u20d8\u0005$\u0000\u0000"+ - "\u20d8\u0634\u0001\u0000\u0000\u0000\u20d9\u20da\u0005*\u0000\u0000\u20da"+ - "\u0636\u0001\u0000\u0000\u0000\u20db\u20dc\u0005(\u0000\u0000\u20dc\u0638"+ - "\u0001\u0000\u0000\u0000\u20dd\u20de\u0005)\u0000\u0000\u20de\u063a\u0001"+ - "\u0000\u0000\u0000\u20df\u20e0\u0005[\u0000\u0000\u20e0\u063c\u0001\u0000"+ - "\u0000\u0000\u20e1\u20e2\u0005]\u0000\u0000\u20e2\u063e\u0001\u0000\u0000"+ - "\u0000\u20e3\u20e4\u0003\t\u0004\u0000\u20e4\u20e8\u0005\'\u0000\u0000"+ - "\u20e5\u20e7\u000201\u0000\u20e6\u20e5\u0001\u0000\u0000\u0000\u20e7\u20ea"+ - "\u0001\u0000\u0000\u0000\u20e8\u20e6\u0001\u0000\u0000\u0000\u20e8\u20e9"+ - "\u0001\u0000\u0000\u0000\u20e9\u20eb\u0001\u0000\u0000\u0000\u20ea\u20e8"+ - "\u0001\u0000\u0000\u0000\u20eb\u20ec\u0005\'\u0000\u0000\u20ec\u0640\u0001"+ - "\u0000\u0000\u0000\u20ed\u20ee\u0003\u000f\u0007\u0000\u20ee\u20ef\u0003"+ - "A \u0000\u20ef\u0642\u0001\u0000\u0000\u0000\u20f0\u20f2\u0005-\u0000"+ - "\u0000\u20f1\u20f0\u0001\u0000\u0000\u0000\u20f1\u20f2\u0001\u0000\u0000"+ - "\u0000\u20f2\u20f4\u0001\u0000\u0000\u0000\u20f3\u20f5\u0003=\u001e\u0000"+ - "\u20f4\u20f3\u0001\u0000\u0000\u0000\u20f5\u20f6\u0001\u0000\u0000\u0000"+ - "\u20f6\u20f4\u0001\u0000\u0000\u0000\u20f6\u20f7\u0001\u0000\u0000\u0000"+ - "\u20f7\u20f8\u0001\u0000\u0000\u0000\u20f8\u20fa\u0005.\u0000\u0000\u20f9"+ - "\u20fb\u0003=\u001e\u0000\u20fa\u20f9\u0001\u0000\u0000\u0000\u20fb\u20fc"+ - "\u0001\u0000\u0000\u0000\u20fc\u20fa\u0001\u0000\u0000\u0000\u20fc\u20fd"+ - "\u0001\u0000\u0000\u0000\u20fd\u210a\u0001\u0000\u0000\u0000\u20fe\u2102"+ - "\u0003\u000f\u0007\u0000\u20ff\u2101\u0005-\u0000\u0000\u2100\u20ff\u0001"+ - "\u0000\u0000\u0000\u2101\u2104\u0001\u0000\u0000\u0000\u2102\u2100\u0001"+ - "\u0000\u0000\u0000\u2102\u2103\u0001\u0000\u0000\u0000\u2103\u2106\u0001"+ - "\u0000\u0000\u0000\u2104\u2102\u0001\u0000\u0000\u0000\u2105\u2107\u0003"+ - "=\u001e\u0000\u2106\u2105\u0001\u0000\u0000\u0000\u2107\u2108\u0001\u0000"+ - "\u0000\u0000\u2108\u2106\u0001\u0000\u0000\u0000\u2108\u2109\u0001\u0000"+ - "\u0000\u0000\u2109\u210b\u0001\u0000\u0000\u0000\u210a\u20fe\u0001\u0000"+ - "\u0000\u0000\u210a\u210b\u0001\u0000\u0000\u0000\u210b\u0644\u0001\u0000"+ - "\u0000\u0000\u210c\u210e\u0005-\u0000\u0000\u210d\u210c\u0001\u0000\u0000"+ - "\u0000\u210d\u210e\u0001\u0000\u0000\u0000\u210e\u2110\u0001\u0000\u0000"+ - "\u0000\u210f\u2111\u0003=\u001e\u0000\u2110\u210f\u0001\u0000\u0000\u0000"+ - "\u2111\u2112\u0001\u0000\u0000\u0000\u2112\u2110\u0001\u0000\u0000\u0000"+ - "\u2112\u2113\u0001\u0000\u0000\u0000\u2113\u211a\u0001\u0000\u0000\u0000"+ - "\u2114\u2116\u0003\u000f\u0007\u0000\u2115\u2117\u0003=\u001e\u0000\u2116"+ - "\u2115\u0001\u0000\u0000\u0000\u2117\u2118\u0001\u0000\u0000\u0000\u2118"+ - "\u2116\u0001\u0000\u0000\u0000\u2118\u2119\u0001\u0000\u0000\u0000\u2119"+ - "\u211b\u0001\u0000\u0000\u0000\u211a\u2114\u0001\u0000\u0000\u0000\u211a"+ - "\u211b\u0001\u0000\u0000\u0000\u211b\u0646\u0001\u0000\u0000\u0000\u211c"+ - "\u211d\u0005x\u0000\u0000\u211d\u211e\u0003A \u0000\u211e\u0648\u0001"+ - "\u0000\u0000\u0000\u211f\u2120\u0005.\u0000\u0000\u2120\u064a\u0001\u0000"+ - "\u0000\u0000\u2121\u2122\u0003A \u0000\u2122\u064c\u0001\u0000\u0000\u0000"+ - "\u2123\u2124\u0003?\u001f\u0000\u2124\u064e\u0001\u0000\u0000\u0000\u2125"+ - "\u2129\u0007 \u0000\u0000\u2126\u2128\u0007!\u0000\u0000\u2127\u2126\u0001"+ - "\u0000\u0000\u0000\u2128\u212b\u0001\u0000\u0000\u0000\u2129\u2127\u0001"+ - "\u0000\u0000\u0000\u2129\u212a\u0001\u0000\u0000\u0000\u212a\u0650\u0001"+ - "\u0000\u0000\u0000\u212b\u2129\u0001\u0000\u0000\u0000\u212c\u212e\u0005"+ - "$\u0000\u0000\u212d\u212f\u0003=\u001e\u0000\u212e\u212d\u0001\u0000\u0000"+ - "\u0000\u212f\u2130\u0001\u0000\u0000\u0000\u2130\u212e\u0001\u0000\u0000"+ - "\u0000\u2130\u2131\u0001\u0000\u0000\u0000\u2131\u0652\u0001\u0000\u0000"+ - "\u0000\u2132\u2136\u0007\"\u0000\u0000\u2133\u2135\u0007#\u0000\u0000"+ - "\u2134\u2133\u0001\u0000\u0000\u0000\u2135\u2138\u0001\u0000\u0000\u0000"+ - "\u2136\u2134\u0001\u0000\u0000\u0000\u2136\u2137\u0001\u0000\u0000\u0000"+ - "\u2137\u0654\u0001\u0000\u0000\u0000\u2138\u2136\u0001\u0000\u0000\u0000"+ - "\u2139\u213a\u0005&\u0000\u0000\u213a\u0656\u0001\u0000\u0000\u0000\u213b"+ - "\u213c\u0005&\u0000\u0000\u213c\u213d\u0005&\u0000\u0000\u213d\u0658\u0001"+ - "\u0000\u0000\u0000\u213e\u213f\u0005&\u0000\u0000\u213f\u2140\u0005<\u0000"+ - "\u0000\u2140\u065a\u0001\u0000\u0000\u0000\u2141\u2142\u0005@\u0000\u0000"+ - "\u2142\u2143\u0005@\u0000\u0000\u2143\u065c\u0001\u0000\u0000\u0000\u2144"+ - "\u2145\u0005@\u0000\u0000\u2145\u2146\u0005>\u0000\u0000\u2146\u065e\u0001"+ - "\u0000\u0000\u0000\u2147\u2148\u0005@\u0000\u0000\u2148\u0660\u0001\u0000"+ - "\u0000\u0000\u2149\u214a\u0005!\u0000\u0000\u214a\u0662\u0001\u0000\u0000"+ - "\u0000\u214b\u214c\u0005!\u0000\u0000\u214c\u214d\u0005!\u0000\u0000\u214d"+ - "\u0664\u0001\u0000\u0000\u0000\u214e\u214f\u0005!\u0000\u0000\u214f\u2150"+ - "\u0005=\u0000\u0000\u2150\u0666\u0001\u0000\u0000\u0000\u2151\u2152\u0005"+ - "^\u0000\u0000\u2152\u0668\u0001\u0000\u0000\u0000\u2153\u2154\u0005=\u0000"+ - "\u0000\u2154\u066a\u0001\u0000\u0000\u0000\u2155\u2156\u0005=\u0000\u0000"+ - "\u2156\u2157\u0005>\u0000\u0000\u2157\u066c\u0001\u0000\u0000\u0000\u2158"+ - "\u2159\u0005>\u0000\u0000\u2159\u066e\u0001\u0000\u0000\u0000\u215a\u215b"+ - "\u0005>\u0000\u0000\u215b\u215c\u0005=\u0000\u0000\u215c\u0670\u0001\u0000"+ - "\u0000\u0000\u215d\u215e\u0005>\u0000\u0000\u215e\u215f\u0005>\u0000\u0000"+ - "\u215f\u0672\u0001\u0000\u0000\u0000\u2160\u2161\u0005#\u0000\u0000\u2161"+ - "\u0674\u0001\u0000\u0000\u0000\u2162\u2163\u0005#\u0000\u0000\u2163\u2164"+ - "\u0005=\u0000\u0000\u2164\u0676\u0001\u0000\u0000\u0000\u2165\u2166\u0005"+ - "#\u0000\u0000\u2166\u2167\u0005>\u0000\u0000\u2167\u0678\u0001\u0000\u0000"+ - "\u0000\u2168\u2169\u0005#\u0000\u0000\u2169\u216a\u0005>\u0000\u0000\u216a"+ - "\u216b\u0005>\u0000\u0000\u216b\u067a\u0001\u0000\u0000\u0000\u216c\u216d"+ - "\u0005#\u0000\u0000\u216d\u216e\u0005#\u0000\u0000\u216e\u067c\u0001\u0000"+ - "\u0000\u0000\u216f\u2170\u0005-\u0000\u0000\u2170\u2171\u0005>\u0000\u0000"+ - "\u2171\u067e\u0001\u0000\u0000\u0000\u2172\u2173\u0005-\u0000\u0000\u2173"+ - "\u2174\u0005>\u0000\u0000\u2174\u2175\u0005>\u0000\u0000\u2175\u0680\u0001"+ - "\u0000\u0000\u0000\u2176\u2177\u0005-\u0000\u0000\u2177\u2178\u0005|\u0000"+ - "\u0000\u2178\u2179\u0005-\u0000\u0000\u2179\u0682\u0001\u0000\u0000\u0000"+ - "\u217a\u217b\u0005<\u0000\u0000\u217b\u0684\u0001\u0000\u0000\u0000\u217c"+ - "\u217d\u0005<\u0000\u0000\u217d\u217e\u0005=\u0000\u0000\u217e\u0686\u0001"+ - "\u0000\u0000\u0000\u217f\u2180\u0005<\u0000\u0000\u2180\u2181\u0005@\u0000"+ - "\u0000\u2181\u0688\u0001\u0000\u0000\u0000\u2182\u2183\u0005<\u0000\u0000"+ - "\u2183\u2184\u0005^\u0000\u0000\u2184\u068a\u0001\u0000\u0000\u0000\u2185"+ - "\u2186\u0005<\u0000\u0000\u2186\u2187\u0005>\u0000\u0000\u2187\u068c\u0001"+ - "\u0000\u0000\u0000\u2188\u2189\u0005<\u0000\u0000\u2189\u218a\u0005-\u0000"+ - "\u0000\u218a\u218b\u0005>\u0000\u0000\u218b\u068e\u0001\u0000\u0000\u0000"+ - "\u218c\u218d\u0005<\u0000\u0000\u218d\u218e\u0005<\u0000\u0000\u218e\u0690"+ - "\u0001\u0000\u0000\u0000\u218f\u2190\u0005<\u0000\u0000\u2190\u2191\u0005"+ - "<\u0000\u0000\u2191\u2192\u0005=\u0000\u0000\u2192\u0692\u0001\u0000\u0000"+ - "\u0000\u2193\u2194\u0005<\u0000\u0000\u2194\u2195\u0005?\u0000\u0000\u2195"+ - "\u2196\u0005>\u0000\u0000\u2196\u0694\u0001\u0000\u0000\u0000\u2197\u2198"+ - "\u0005-\u0000\u0000\u2198\u0696\u0001\u0000\u0000\u0000\u2199\u219a\u0005"+ - "%\u0000\u0000\u219a\u0698\u0001\u0000\u0000\u0000\u219b\u219c\u0005|\u0000"+ - "\u0000\u219c\u069a\u0001\u0000\u0000\u0000\u219d\u219e\u0005|\u0000\u0000"+ - "\u219e\u219f\u0005|\u0000\u0000\u219f\u069c\u0001\u0000\u0000\u0000\u21a0"+ - "\u21a1\u0005|\u0000\u0000\u21a1\u21a2\u0005|\u0000\u0000\u21a2\u21a3\u0005"+ - "/\u0000\u0000\u21a3\u069e\u0001\u0000\u0000\u0000\u21a4\u21a5\u0005|\u0000"+ - "\u0000\u21a5\u21a6\u0005/\u0000\u0000\u21a6\u06a0\u0001\u0000\u0000\u0000"+ - "\u21a7\u21a8\u0005+\u0000\u0000\u21a8\u06a2\u0001\u0000\u0000\u0000\u21a9"+ - "\u21aa\u0005?\u0000\u0000\u21aa\u06a4\u0001\u0000\u0000\u0000\u21ab\u21ac"+ - "\u0005?\u0000\u0000\u21ac\u21ad\u0005&\u0000\u0000\u21ad\u06a6\u0001\u0000"+ - "\u0000\u0000\u21ae\u21af\u0005?\u0000\u0000\u21af\u21b0\u0005#\u0000\u0000"+ - "\u21b0\u06a8\u0001\u0000\u0000\u0000\u21b1\u21b2\u0005?\u0000\u0000\u21b2"+ - "\u21b3\u0005-\u0000\u0000\u21b3\u06aa\u0001\u0000\u0000\u0000\u21b4\u21b5"+ - "\u0005?\u0000\u0000\u21b5\u21b6\u0005|\u0000\u0000\u21b6\u06ac\u0001\u0000"+ - "\u0000\u0000\u21b7\u21b8\u0005/\u0000\u0000\u21b8\u06ae\u0001\u0000\u0000"+ - "\u0000\u21b9\u21ba\u0005~\u0000\u0000\u21ba\u06b0\u0001\u0000\u0000\u0000"+ - "\u21bb\u21bc\u0005~\u0000\u0000\u21bc\u21bd\u0005=\u0000\u0000\u21bd\u06b2"+ - "\u0001\u0000\u0000\u0000\u21be\u21bf\u0005~\u0000\u0000\u21bf\u21c0\u0005"+ - ">\u0000\u0000\u21c0\u21c1\u0005=\u0000\u0000\u21c1\u21c2\u0005~\u0000"+ - "\u0000\u21c2\u06b4\u0001\u0000\u0000\u0000\u21c3\u21c4\u0005~\u0000\u0000"+ - "\u21c4\u21c5\u0005>\u0000\u0000\u21c5\u21c6\u0005~\u0000\u0000\u21c6\u06b6"+ - "\u0001\u0000\u0000\u0000\u21c7\u21c8\u0005~\u0000\u0000\u21c8\u21c9\u0005"+ - "<\u0000\u0000\u21c9\u21ca\u0005=\u0000\u0000\u21ca\u21cb\u0005~\u0000"+ - "\u0000\u21cb\u06b8\u0001\u0000\u0000\u0000\u21cc\u21cd\u0005~\u0000\u0000"+ - "\u21cd\u21ce\u0005<\u0000\u0000\u21ce\u21cf\u0005~\u0000\u0000\u21cf\u06ba"+ - "\u0001\u0000\u0000\u0000\u21d0\u21d1\u0005~\u0000\u0000\u21d1\u21d2\u0005"+ - "*\u0000\u0000\u21d2\u06bc\u0001\u0000\u0000\u0000\u21d3\u21d4\u0005~\u0000"+ - "\u0000\u21d4\u21d5\u0005~\u0000\u0000\u21d5\u06be\u0001\u0000\u0000\u0000"+ - "\u21d6\u21d7\u0005;\u0000\u0000\u21d7\u06c0\u0001\u0000\u0000\u0000\u0018"+ - "\u0000\u06c4\u06ce\u06dc\u0721\u0723\u072e\u0730\u073b\u073d\u20e8\u20f1"+ - "\u20f6\u20fc\u2102\u2108\u210a\u210d\u2112\u2118\u211a\u2129\u2130\u2136"+ - "\u0002\u0006\u0000\u0000\u0000\u0001\u0000"; - public static final String _serializedATN = Utils.join( - new String[] { - _serializedATNSegment0, - _serializedATNSegment1, - _serializedATNSegment2, - _serializedATNSegment3 - }, - "" - ); - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/gen/PostgreSQLLexer.tokens b/gen/PostgreSQLLexer.tokens deleted file mode 100644 index a0956e0..0000000 --- a/gen/PostgreSQLLexer.tokens +++ /dev/null @@ -1,898 +0,0 @@ -WHITESPACE=1 -BLOCK_COMMENT=2 -LINE_COMMENT=3 -A_=4 -ABORT=5 -ABS=6 -ABSOLUTE=7 -ACCESS=8 -ACTION=9 -ADA=10 -ADD=11 -ADMIN=12 -AFTER=13 -AGGREGATE=14 -ALIAS=15 -ALL=16 -ALLOCATE=17 -ALSO=18 -ALTER=19 -ALWAYS=20 -ANALYSE=21 -ANALYZE=22 -AND=23 -ANY=24 -ARE=25 -ARRAY=26 -AS=27 -ASC=28 -ASENSITIVE=29 -ASSERTION=30 -ASSIGNMENT=31 -ASYMMETRIC=32 -AT=33 -ATOMIC=34 -ATTRIBUTE=35 -ATTRIBUTES=36 -AUTHORIZATION=37 -AVG=38 -BACKWARD=39 -BEFORE=40 -BEGIN=41 -BERNOULLI=42 -BETWEEN=43 -BIGINT=44 -BINARY=45 -BIT=46 -BIT_LENGTH=47 -BITVAR=48 -BLOB=49 -BOOLEAN=50 -BOTH=51 -BREADTH=52 -BUFFERS=53 -BY=54 -C_=55 -CACHE=56 -CALL=57 -CALLED=58 -CARDINALITY=59 -CASCADE=60 -CASCADED=61 -CASE=62 -CAST=63 -CATALOG=64 -CATALOG_NAME=65 -CEIL=66 -CEILING=67 -CHAIN=68 -CHAR=69 -CHAR_LENGTH=70 -CHARACTER=71 -CHARACTER_LENGTH=72 -CHARACTER_SET_CATALOG=73 -CHARACTER_SET_NAME=74 -CHARACTER_SET_SCHEMA=75 -CHARACTERISTICS=76 -CHARACTERS=77 -CHECK=78 -CHECKED=79 -CHECKPOINT=80 -CLASS=81 -CLASS_ORIGIN=82 -CLOB=83 -CLOSE=84 -CLUSTER=85 -COALESCE=86 -COBOL=87 -COLLATE=88 -COLLATION=89 -COLLATION_CATALOG=90 -COLLATION_NAME=91 -COLLATION_SCHEMA=92 -COLLECT=93 -COLUMN=94 -COLUMN_NAME=95 -COMMAND_FUNCTION=96 -COMMAND_FUNCTION_CODE=97 -COMMENT=98 -COMMIT=99 -COMMITTED=100 -COMPLETION=101 -CONDITION=102 -CONDITION_NUMBER=103 -CONFIGURATION=104 -CONFLICT=105 -CONNECT=106 -CONNECTION=107 -CONNECTION_NAME=108 -CONSTRAINT=109 -CONSTRAINT_CATALOG=110 -CONSTRAINT_NAME=111 -CONSTRAINT_SCHEMA=112 -CONSTRAINTS=113 -CONSTRUCTOR=114 -CONTAINS=115 -CONTINUE=116 -CONVERSION=117 -CONVERT=118 -COPY=119 -CORR=120 -CORRESPONDING=121 -COSTS=122 -COUNT=123 -COVAR_POP=124 -COVAR_SAMP=125 -CREATE=126 -CREATEDB=127 -CREATEUSER=128 -CROSS=129 -CSV=130 -CUBE=131 -CUME_DIST=132 -CURRENT=133 -CURRENT_DATE=134 -CURRENT_DEFAULT_TRANSFORM_GROUP=135 -CURRENT_PATH=136 -CURRENT_ROLE=137 -CURRENT_TIME=138 -CURRENT_TIMESTAMP=139 -CURRENT_TRANSFORM_GROUP_FOR_TYPE=140 -CURRENT_USER=141 -CURSOR=142 -CURSOR_NAME=143 -CYCLE=144 -DATA=145 -DATABASE=146 -DATE=147 -DATETIME_INTERVAL_CODE=148 -DATETIME_INTERVAL_PRECISION=149 -DAY=150 -DEALLOCATE=151 -DEC=152 -DECIMAL=153 -DECLARE=154 -DEFAULT=155 -DEFAULTS=156 -DEFERABLE=157 -DEFERRABLE=158 -DEFERRED=159 -DEFINED=160 -DEFINER=161 -DEGREE=162 -DELETE=163 -DELIMITER=164 -DELIMITERS=165 -DENSE_RANK=166 -DEPENDS=167 -DEPTH=168 -DEREF=169 -DERIVED=170 -DESC=171 -DESCRIBE=172 -DESCRIPTOR=173 -DESTROY=174 -DESTRUCTOR=175 -DETERMINISTIC=176 -DIAGNOSTICS=177 -DICTIONARY=178 -DISABLE_P=179 -DISABLE_PAGE_SKIPPING=180 -DISCARD=181 -DISCONNECT=182 -DISPATCH=183 -DISTINCT=184 -DO=185 -DOMAIN=186 -DOUBLE=187 -DROP=188 -DYNAMIC=189 -DYNAMIC_FUNCTION=190 -DYNAMIC_FUNCTION_CODE=191 -EACH=192 -ELEMENT=193 -ELSE=194 -ENABLE=195 -ENCODING=196 -ENCRYPTED=197 -END=198 -END_EXEC=199 -EQUALS=200 -ESCAPE=201 -EVERY=202 -EXCEPT=203 -EXCEPTION=204 -EXCLUDE=205 -EXCLUDING=206 -EXCLUSIVE=207 -EXEC=208 -EXECUTE=209 -EXISTING=210 -EXISTS=211 -EXP=212 -EXPLAIN=213 -EXTENDED=214 -EXTENSION=215 -EXTERNAL=216 -EXTRACT=217 -FALSE=218 -FETCH=219 -FIELDS=220 -FILTER=221 -FINAL=222 -FIRST=223 -FLOAT=224 -FLOOR=225 -FOLLOWING=226 -FOR=227 -FORCE=228 -FOREIGN=229 -FORMAT=230 -FORTRAN=231 -FORWARD=232 -FOUND=233 -FREE=234 -FREEZE=235 -FROM=236 -FULL=237 -FUNCTION=238 -FUSION=239 -G_=240 -GENERAL=241 -GENERATED=242 -GET=243 -GLOBAL=244 -GO=245 -GOTO=246 -GRANT=247 -GRANTED=248 -GREATEST=249 -GROUP=250 -GROUPING=251 -HANDLER=252 -HAVING=253 -HIERARCHY=254 -HOLD=255 -HOST=256 -HOUR=257 -IDENTITY=258 -IGNORE=259 -ILIKE=260 -IMMEDIATE=261 -IMMUTABLE=262 -IMPLEMENTATION=263 -IMPLICIT=264 -IN=265 -INCLUDING=266 -INCREMENT=267 -INDEX=268 -INDICATOR=269 -INFIX=270 -INHERITS=271 -INITIALIZE=272 -INITIALLY=273 -INNER=274 -INOUT=275 -INPUT=276 -INSENSITIVE=277 -INSERT=278 -INSTANCE=279 -INSTANTIABLE=280 -INSTEAD=281 -INT=282 -INTEGER=283 -INTERSECT=284 -INTERSECTION=285 -INTERVAL=286 -INTO=287 -INVOKER=288 -IS=289 -ISOLATION=290 -ITERATE=291 -JOIN=292 -K_=293 -KEY=294 -KEY_MEMBER=295 -KEY_TYPE=296 -LABEL=297 -LANCOMPILER=298 -LANGUAGE=299 -LARGE=300 -LAST=301 -LATERAL=302 -LEADING=303 -LEAST=304 -LEFT=305 -LENGTH=306 -LESS=307 -LEVEL=308 -LIKE=309 -LIMIT=310 -LISTEN=311 -LN=312 -LOAD=313 -LOCAL=314 -LOCALTIME=315 -LOCALTIMESTAMP=316 -LOCATION=317 -LOCATOR=318 -LOCK=319 -LOCKED=320 -LOWER=321 -M_=322 -MAIN=323 -MAP=324 -MAPPING=325 -MATCH=326 -MATCH_SIMPLE=327 -MATCHED=328 -MAX=329 -MAXVALUE=330 -MEMBER=331 -MERGE=332 -MESSAGE_LENGTH=333 -MESSAGE_OCTET_LENGTH=334 -MESSAGE_TEXT=335 -METHOD=336 -MIN=337 -MINUTE=338 -MINVALUE=339 -MOD=340 -MODE=341 -MODIFIES=342 -MODIFY=343 -MODULE=344 -MONTH=345 -MORE_=346 -MOVE=347 -MULTISET=348 -MUMPS=349 -NAME=350 -NAMES=351 -NATIONAL=352 -NATURAL=353 -NCHAR=354 -NCLOB=355 -NESTING=356 -NEW=357 -NEXT=358 -NO=359 -NOCREATEDB=360 -NOCREATEUSER=361 -NONE=362 -NORMALIZE=363 -NORMALIZED=364 -NOT=365 -NOTHING=366 -NOTIFY=367 -NOTNULL=368 -NOWAIT=369 -NULL=370 -NULLABLE=371 -NULLIF=372 -NULLS=373 -NUMBER=374 -NUMERIC=375 -OBJECT=376 -OCTET_LENGTH=377 -OCTETS=378 -OF=379 -OFF=380 -OFFSET=381 -OIDS=382 -OLD=383 -ON=384 -ONLY=385 -OPEN=386 -OPERATION=387 -OPERATOR=388 -OPTION=389 -OPTIONS=390 -OR=391 -ORDER=392 -ORDERING=393 -ORDINALITY=394 -OTHERS=395 -OUT=396 -OUTER=397 -OUTPUT=398 -OVER=399 -OVERLAPS=400 -OVERLAY=401 -OVERRIDING=402 -OWNER=403 -PAD=404 -PARAMETER=405 -PARAMETER_MODE=406 -PARAMETER_NAME=407 -PARAMETER_ORDINAL_POSITION=408 -PARAMETER_SPECIFIC_CATALOG=409 -PARAMETER_SPECIFIC_NAME=410 -PARAMETER_SPECIFIC_SCHEMA=411 -PARAMETERS=412 -PARSER=413 -PARTIAL=414 -PARTITION=415 -PASCAL=416 -PASSWORD=417 -PATH=418 -PERCENT_RANK=419 -PERCENTILE_CONT=420 -PERCENTILE_DISC=421 -PLACING=422 -PLAIN=423 -PLANS=424 -PLI=425 -POSITION=426 -POSTFIX=427 -POWER=428 -PRECEDING=429 -PRECISION=430 -PREFIX=431 -PREORDER=432 -PREPARE=433 -PREPARED=434 -PRESERVE=435 -PRIMARY=436 -PRIOR=437 -PRIVILEGES=438 -PROCEDURAL=439 -PROCEDURE=440 -PUBLIC=441 -PUBLICATION=442 -QUOTE=443 -RANGE=444 -RANK=445 -READ=446 -READS=447 -REAL=448 -REASSIGN=449 -RECHECK=450 -RECURSIVE=451 -REF=452 -REFERENCES=453 -REFERENCING=454 -REFRESH=455 -REGR_AVGX=456 -REGR_AVGY=457 -REGR_COUNT=458 -REGR_INTERCEPT=459 -REGR_R2=460 -REGR_SLOPE=461 -REGR_SXX=462 -REGR_SXY=463 -REGR_SYY=464 -REINDEX=465 -RELATIVE=466 -RELEASE=467 -RENAME=468 -REPEATABLE=469 -REPLACE=470 -REPLICA=471 -RESET=472 -RESTART=473 -RESTRICT=474 -RESULT=475 -RETURN=476 -RETURNED_CARDINALITY=477 -RETURNED_LENGTH=478 -RETURNED_OCTET_LENGTH=479 -RETURNED_SQLSTATE=480 -RETURNING=481 -RETURNS=482 -REVOKE=483 -RIGHT=484 -ROLE=485 -ROLLBACK=486 -ROLLUP=487 -ROUTINE=488 -ROUTINE_CATALOG=489 -ROUTINE_NAME=490 -ROUTINE_SCHEMA=491 -ROW=492 -ROW_COUNT=493 -ROW_NUMBER=494 -ROWS=495 -RULE=496 -SAVEPOINT=497 -SCALE=498 -SCHEMA=499 -SCHEMA_NAME=500 -SCOPE=501 -SCOPE_CATALOG=502 -SCOPE_NAME=503 -SCOPE_SCHEMA=504 -SCROLL=505 -SEARCH=506 -SECOND=507 -SECTION=508 -SECURITY=509 -SELECT=510 -SELF=511 -SENSITIVE=512 -SEQUENCE=513 -SEQUENCES=514 -SERIALIZABLE=515 -SERVER_NAME=516 -SESSION=517 -SESSION_USER=518 -SET=519 -SETOF=520 -SETS=521 -SHARE=522 -SHOW=523 -SIMILAR=524 -SIMPLE=525 -SIZE=526 -SKIP_=527 -SMALLINT=528 -SNAPSHOT=529 -SOME=530 -SOURCE=531 -SPACE=532 -SPECIFIC=533 -SPECIFIC_NAME=534 -SPECIFICTYPE=535 -SQL=536 -SQLCODE=537 -SQLERROR=538 -SQLEXCEPTION=539 -SQLSTATE=540 -SQLWARNING=541 -SQRT=542 -STABLE=543 -START=544 -STATE=545 -STATEMENT=546 -STATIC=547 -STATISTICS=548 -STDDEV_POP=549 -STDDEV_SAMP=550 -STDIN=551 -STDOUT=552 -STORAGE=553 -STRICT=554 -STRUCTURE=555 -STYLE=556 -SUBCLASS_ORIGIN=557 -SUBLIST=558 -SUBMULTISET=559 -SUBSCRIPTION=560 -SUBSTRING=561 -SUM=562 -SYMMETRIC=563 -SYSID=564 -SYSTEM=565 -SYSTEM_USER=566 -TABLE=567 -TABLE_NAME=568 -TABLESAMPLE=569 -TABLESPACE=570 -TEMP=571 -TEMPLATE=572 -TEMPORARY=573 -TERMINATE=574 -THAN=575 -THEN=576 -TIES=577 -TIME=578 -TIMESTAMP=579 -TIMEZONE_HOUR=580 -TIMEZONE_MINUTE=581 -TIMING=582 -TO=583 -TOAST=584 -TOP_LEVEL_COUNT=585 -TRAILING=586 -TRANSACTION=587 -TRANSACTION_ACTIVE=588 -TRANSACTIONS_COMMITTED=589 -TRANSACTIONS_ROLLED_BACK=590 -TRANSFORM=591 -TRANSFORMS=592 -TRANSLATE=593 -TRANSLATION=594 -TREAT=595 -TRIGGER=596 -TRIGGER_CATALOG=597 -TRIGGER_NAME=598 -TRIGGER_SCHEMA=599 -TRIM=600 -TRUE=601 -TRUNCATE=602 -TRUSTED=603 -TYPE=604 -UESCAPE=605 -UNBOUNDED=606 -UNCOMMITTED=607 -UNDER=608 -UNENCRYPTED=609 -UNION=610 -UNIQUE=611 -UNKNOWN=612 -UNLISTEN=613 -UNNAMED=614 -UNNEST=615 -UNTIL=616 -UPDATE=617 -UPPER=618 -USAGE=619 -USER=620 -USER_DEFINED_TYPE_CATALOG=621 -USER_DEFINED_TYPE_CODE=622 -USER_DEFINED_TYPE_NAME=623 -USER_DEFINED_TYPE_SCHEMA=624 -USING=625 -VACUUM=626 -VALID=627 -VALIDATE=628 -VALIDATOR=629 -VALUE=630 -VALUES=631 -VAR_POP=632 -VAR_SAMP=633 -VARCHAR=634 -VARIABLE=635 -VARIADIC=636 -VARYING=637 -VERBOSE=638 -VIEW=639 -VOLATILE=640 -WHEN=641 -WHENEVER=642 -WHERE=643 -WIDTH_BUCKET=644 -WINDOW=645 -WITH=646 -WITHIN=647 -WITHOUT=648 -WORK=649 -WRITE=650 -YAML=651 -YEAR=652 -YES=653 -ZONE=654 -SUPERUSER=655 -NOSUPERUSER=656 -CREATEROLE=657 -NOCREATEROLE=658 -INHERIT=659 -NOINHERIT=660 -LOGIN=661 -NOLOGIN=662 -REPLICATION=663 -NOREPLICATION=664 -BYPASSRLS=665 -NOBYPASSRLS=666 -SFUNC=667 -STYPE=668 -SSPACE=669 -FINALFUNC=670 -FINALFUNC_EXTRA=671 -COMBINEFUNC=672 -SERIALFUNC=673 -DESERIALFUNC=674 -INITCOND=675 -MSFUNC=676 -MINVFUNC=677 -MSTYPE=678 -MSSPACE=679 -MFINALFUNC=680 -MFINALFUNC_EXTRA=681 -MINITCOND=682 -SORTOP=683 -PARALLEL=684 -HYPOTHETICAL=685 -SAFE=686 -UNSAFE=687 -BASETYPE=688 -IF=689 -LOCALE=690 -LC_COLLATE=691 -LC_CTYPE=692 -PROVIDER=693 -VERSION=694 -ALLOW_CONNECTIONS=695 -IS_TEMPLATE=696 -EVENT=697 -WRAPPER=698 -SERVER=699 -BTREE=700 -HASH_=701 -GIST=702 -SPGIST=703 -GIN=704 -BRIN=705 -CONCURRENTLY=706 -INLINE=707 -MATERIALIZED=708 -LEFTARG=709 -RIGHTARG=710 -COMMUTATOR=711 -NEGATOR=712 -HASHES=713 -MERGES=714 -FAMILY=715 -POLICY=716 -OWNED=717 -ABSTIME=718 -BIGSERIAL=719 -BIT_VARYING=720 -BOOL=721 -BOX=722 -BYTEA=723 -CHARACTER_VARYING=724 -CIDR=725 -CIRCLE=726 -FLOAT4=727 -FLOAT8=728 -INET=729 -INT2=730 -INT4=731 -INT8=732 -JSON=733 -JSONB=734 -LINE=735 -LSEG=736 -MACADDR=737 -MACADDR8=738 -MONEY=739 -PG_LSN=740 -POINT=741 -POLYGON=742 -RELTIME=743 -SERIAL=744 -SERIAL2=745 -SERIAL4=746 -SERIAL8=747 -SMALLSERIAL=748 -STSTEM=749 -TEXT=750 -TIMESTAMPTZ=751 -TIMETZ=752 -TSQUERY=753 -TSVECTOR=754 -TXID_SNAPSHOT=755 -UUID=756 -VARBIT=757 -XML=758 -COMMA=759 -COLON=760 -COLON_COLON=761 -DOLLAR=762 -DOLLAR_DOLLAR=763 -STAR=764 -OPEN_PAREN=765 -CLOSE_PAREN=766 -OPEN_BRACKET=767 -CLOSE_BRACKET=768 -BIT_STRING=769 -REGEX_STRING=770 -NUMERIC_LITERAL=771 -INTEGER_LITERAL=772 -HEX_INTEGER_LITERAL=773 -DOT=774 -SINGLEQ_STRING_LITERAL=775 -DOUBLEQ_STRING_LITERAL=776 -IDENTIFIER=777 -DOLLAR_DEC=778 -IDENTIFIER_UNICODE=779 -AMP=780 -AMP_AMP=781 -AMP_LT=782 -AT_AT=783 -AT_GT=784 -AT_SIGN=785 -BANG=786 -BANG_BANG=787 -BANG_EQUAL=788 -CARET=789 -EQUAL=790 -EQUAL_GT=791 -GT=792 -GTE=793 -GT_GT=794 -HASH=795 -HASH_EQ=796 -HASH_GT=797 -HASH_GT_GT=798 -HASH_HASH=799 -HYPHEN_GT=800 -HYPHEN_GT_GT=801 -HYPHEN_PIPE_HYPHEN=802 -LT=803 -LTE=804 -LT_AT=805 -LT_CARET=806 -LT_GT=807 -LT_HYPHEN_GT=808 -LT_LT=809 -LT_LT_EQ=810 -LT_QMARK_GT=811 -MINUS=812 -PERCENT=813 -PIPE=814 -PIPE_PIPE=815 -PIPE_PIPE_SLASH=816 -PIPE_SLASH=817 -PLUS=818 -QMARK=819 -QMARK_AMP=820 -QMARK_HASH=821 -QMARK_HYPHEN=822 -QMARK_PIPE=823 -SLASH=824 -TIL=825 -TIL_EQ=826 -TIL_GTE_TIL=827 -TIL_GT_TIL=828 -TIL_LTE_TIL=829 -TIL_LT_TIL=830 -TIL_STAR=831 -TIL_TIL=832 -SEMI=833 -','=759 -':'=760 -'::'=761 -'$'=762 -'$$'=763 -'*'=764 -'('=765 -')'=766 -'['=767 -']'=768 -'.'=774 -'&'=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 diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/mysql/MySqlParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/mysql/MySqlParser.g4 index c96db9c..34c5eb3 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/mysql/MySqlParser.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/mysql/MySqlParser.g4 @@ -2470,5 +2470,5 @@ functionNameBase | VALIDATE_PASSWORD_STRENGTH | VERSION | WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS | WEEK | WEEKDAY | WEEKOFYEAR | WEIGHT_STRING | WITHIN | YEAR | YEARWEEK - | Y_FUNCTION | X_FUNCTION + | Y_FUNCTION | X_FUNCTION | OPEN | CLOSE ; \ No newline at end of file diff --git a/src/main/java/com/github/bigdata/sql/antlr4/mysql/MySqlParser.java b/src/main/java/com/github/bigdata/sql/antlr4/mysql/MySqlParser.java index 6775f69..20811c1 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/mysql/MySqlParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/mysql/MySqlParser.java @@ -3554,7 +3554,7 @@ public final CreateFunctionContext createFunction() throws RecognitionException setState(946); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(945); functionParameter(); @@ -6408,6 +6408,7 @@ public final CreateDefinitionContext createDefinition() throws RecognitionExcept case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -6542,6 +6543,7 @@ public final CreateDefinitionContext createDefinition() throws RecognitionExcept case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -7654,7 +7656,7 @@ public final TableConstraintContext tableConstraint() throws RecognitionExceptio setState(1413); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1412); ((PrimaryKeyTableConstraintContext)_localctx).name = uid(); @@ -7710,7 +7712,7 @@ public final TableConstraintContext tableConstraint() throws RecognitionExceptio setState(1431); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1430); ((UniqueKeyTableConstraintContext)_localctx).name = uid(); @@ -7744,7 +7746,7 @@ public final TableConstraintContext tableConstraint() throws RecognitionExceptio setState(1440); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1439); ((UniqueKeyTableConstraintContext)_localctx).index = uid(); @@ -7793,7 +7795,7 @@ public final TableConstraintContext tableConstraint() throws RecognitionExceptio setState(1454); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1453); ((ForeignKeyTableConstraintContext)_localctx).name = uid(); @@ -7810,7 +7812,7 @@ public final TableConstraintContext tableConstraint() throws RecognitionExceptio setState(1461); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1460); ((ForeignKeyTableConstraintContext)_localctx).index = uid(); @@ -8232,7 +8234,7 @@ public final IndexColumnDefinitionContext indexColumnDefinition() throws Recogni setState(1511); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1510); uid(); @@ -8304,7 +8306,7 @@ public final IndexColumnDefinitionContext indexColumnDefinition() throws Recogni setState(1528); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1527); uid(); @@ -11242,7 +11244,7 @@ public final AlterDatabaseContext alterDatabase() throws RecognitionException { setState(1967); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(1966); uid(); @@ -13463,7 +13465,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2187); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2186); uid(); @@ -13514,7 +13516,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2202); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2201); ((AlterByAddPrimaryKeyContext)_localctx).name = uid(); @@ -13572,7 +13574,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2221); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2220); ((AlterByAddUniqueKeyContext)_localctx).name = uid(); @@ -13606,7 +13608,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2230); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2229); ((AlterByAddUniqueKeyContext)_localctx).indexName = uid(); @@ -13680,7 +13682,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2248); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2247); uid(); @@ -13721,7 +13723,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2260); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2259); ((AlterByAddForeignKeyContext)_localctx).name = uid(); @@ -13738,7 +13740,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx setState(2267); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(2266); ((AlterByAddForeignKeyContext)_localctx).indexName = uid(); @@ -14263,6 +14265,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -14397,6 +14400,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -14945,6 +14949,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -15079,6 +15084,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -15627,6 +15633,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -15761,6 +15768,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -16394,6 +16402,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -16528,6 +16537,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -17074,6 +17084,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -17208,6 +17219,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -17754,6 +17766,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -17888,6 +17901,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -18434,6 +18448,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -18568,6 +18583,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -19114,6 +19130,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -19248,6 +19265,7 @@ public final AlterSpecificationContext alterSpecification() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -22818,6 +22836,7 @@ public final UpdatedElementContext updatedElement() throws RecognitionException case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -22952,6 +22971,7 @@ public final UpdatedElementContext updatedElement() throws RecognitionException case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -23547,6 +23567,7 @@ public final AssignmentFieldContext assignmentField() throws RecognitionExceptio case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -23681,6 +23702,7 @@ public final AssignmentFieldContext assignmentField() throws RecognitionExceptio case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -24530,6 +24552,7 @@ public final MultipleDeleteStatementContext multipleDeleteStatement() throws Rec case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -24664,6 +24687,7 @@ public final MultipleDeleteStatementContext multipleDeleteStatement() throws Rec case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -25321,7 +25345,7 @@ public final HandlerOpenStatementContext handlerOpenStatement() throws Recogniti setState(3019); _errHandler.sync(this); _la = _input.LA(1); - if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(3016); _errHandler.sync(this); @@ -25719,7 +25743,7 @@ public final SingleUpdateStatementContext singleUpdateStatement() throws Recogni setState(3069); _errHandler.sync(this); _la = _input.LA(1); - if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(3066); _errHandler.sync(this); @@ -27822,6 +27846,7 @@ public final SelectElementsContext selectElements() throws RecognitionException case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -27956,6 +27981,7 @@ public final SelectElementsContext selectElements() throws RecognitionException case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -30311,7 +30337,7 @@ public final LockTableElementContext lockTableElement() throws RecognitionExcept setState(3617); _errHandler.sync(this); _la = _input.LA(1); - if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(3614); _errHandler.sync(this); @@ -31450,7 +31476,7 @@ public final MasterOptionContext masterOption() throws RecognitionException { setState(3763); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(3755); uid(); @@ -33383,7 +33409,7 @@ public final BlockStatementContext blockStatement() throws RecognitionException setState(3987); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(3986); uid(); @@ -33797,7 +33823,7 @@ public final LoopStatementContext loopStatement() throws RecognitionException { setState(4044); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(4041); uid(); @@ -33829,7 +33855,7 @@ public final LoopStatementContext loopStatement() throws RecognitionException { setState(4055); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(4054); uid(); @@ -33900,7 +33926,7 @@ public final RepeatStatementContext repeatStatement() throws RecognitionExceptio setState(4060); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(4057); uid(); @@ -33936,7 +33962,7 @@ public final RepeatStatementContext repeatStatement() throws RecognitionExceptio setState(4073); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(4072); uid(); @@ -34054,7 +34080,7 @@ public final WhileStatementContext whileStatement() throws RecognitionException setState(4081); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(4078); uid(); @@ -34090,7 +34116,7 @@ public final WhileStatementContext whileStatement() throws RecognitionException setState(4094); _errHandler.sync(this); _la = _input.LA(1); - if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { + if (_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (DATETIME - 180)) | (1L << (YEAR - 180)) | (1L << (TEXT - 180)) | (1L << (ENUM - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (ACCOUNT - 244)) | (1L << (ACTION - 244)) | (1L << (AFTER - 244)) | (1L << (AGGREGATE - 244)) | (1L << (ALGORITHM - 244)) | (1L << (ANY - 244)) | (1L << (AT - 244)) | (1L << (AUTHORS - 244)) | (1L << (AUTOCOMMIT - 244)) | (1L << (AUTOEXTEND_SIZE - 244)) | (1L << (AUTO_INCREMENT - 244)) | (1L << (AVG_ROW_LENGTH - 244)) | (1L << (BEGIN - 244)) | (1L << (BINLOG - 244)) | (1L << (BIT - 244)) | (1L << (BLOCK - 244)) | (1L << (BOOL - 244)) | (1L << (BOOLEAN - 244)) | (1L << (BTREE - 244)) | (1L << (CASCADED - 244)) | (1L << (CHAIN - 244)) | (1L << (CHANNEL - 244)) | (1L << (CHECKSUM - 244)) | (1L << (CIPHER - 244)) | (1L << (CLIENT - 244)) | (1L << (CLOSE - 244)) | (1L << (COALESCE - 244)) | (1L << (CODE - 244)) | (1L << (COLUMNS - 244)) | (1L << (COLUMN_FORMAT - 244)) | (1L << (COMMENT - 244)) | (1L << (COMMIT - 244)) | (1L << (COMPACT - 244)) | (1L << (COMPLETION - 244)) | (1L << (COMPRESSED - 244)) | (1L << (COMPRESSION - 244)) | (1L << (CONCURRENT - 244)) | (1L << (CONNECTION - 244)) | (1L << (CONSISTENT - 244)) | (1L << (CONTAINS - 244)) | (1L << (CONTEXT - 244)) | (1L << (CONTRIBUTORS - 244)) | (1L << (COPY - 244)) | (1L << (CPU - 244)) | (1L << (DATA - 244)) | (1L << (DATAFILE - 244)) | (1L << (DEALLOCATE - 244)) | (1L << (DEFAULT_AUTH - 244)) | (1L << (DEFINER - 244)) | (1L << (DELAY_KEY_WRITE - 244)) | (1L << (DIRECTORY - 244)) | (1L << (DISABLE - 244)) | (1L << (DISCARD - 244)) | (1L << (DISK - 244)) | (1L << (DO - 244)) | (1L << (DUMPFILE - 244)) | (1L << (DUPLICATE - 244)) | (1L << (DYNAMIC - 244)) | (1L << (ENABLE - 244)) | (1L << (ENCRYPTION - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (ENDS - 308)) | (1L << (ENGINE - 308)) | (1L << (ENGINES - 308)) | (1L << (ERROR - 308)) | (1L << (ERRORS - 308)) | (1L << (ESCAPE - 308)) | (1L << (EVEN - 308)) | (1L << (EVENT - 308)) | (1L << (EVENTS - 308)) | (1L << (EVERY - 308)) | (1L << (EXCHANGE - 308)) | (1L << (EXCLUSIVE - 308)) | (1L << (EXPIRE - 308)) | (1L << (EXTENT_SIZE - 308)) | (1L << (FAULTS - 308)) | (1L << (FIELDS - 308)) | (1L << (FILE_BLOCK_SIZE - 308)) | (1L << (FILTER - 308)) | (1L << (FIRST - 308)) | (1L << (FIXED - 308)) | (1L << (FOLLOWS - 308)) | (1L << (FULL - 308)) | (1L << (FUNCTION - 308)) | (1L << (GLOBAL - 308)) | (1L << (GRANTS - 308)) | (1L << (GROUP_REPLICATION - 308)) | (1L << (HASH - 308)) | (1L << (HOST - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INPLACE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IO_THREAD - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)) | (1L << (LIST - 308)) | (1L << (LOCAL - 308)) | (1L << (LOGFILE - 308)) | (1L << (LOGS - 308)) | (1L << (MASTER - 308)))) != 0) || ((((_la - 372)) & ~0x3f) == 0 && ((1L << (_la - 372)) & ((1L << (MASTER_AUTO_POSITION - 372)) | (1L << (MASTER_CONNECT_RETRY - 372)) | (1L << (MASTER_DELAY - 372)) | (1L << (MASTER_HEARTBEAT_PERIOD - 372)) | (1L << (MASTER_HOST - 372)) | (1L << (MASTER_LOG_FILE - 372)) | (1L << (MASTER_LOG_POS - 372)) | (1L << (MASTER_PASSWORD - 372)) | (1L << (MASTER_PORT - 372)) | (1L << (MASTER_RETRY_COUNT - 372)) | (1L << (MASTER_SSL - 372)) | (1L << (MASTER_SSL_CA - 372)) | (1L << (MASTER_SSL_CAPATH - 372)) | (1L << (MASTER_SSL_CERT - 372)) | (1L << (MASTER_SSL_CIPHER - 372)) | (1L << (MASTER_SSL_CRL - 372)) | (1L << (MASTER_SSL_CRLPATH - 372)) | (1L << (MASTER_SSL_KEY - 372)) | (1L << (MASTER_TLS_VERSION - 372)) | (1L << (MASTER_USER - 372)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 372)) | (1L << (MAX_QUERIES_PER_HOUR - 372)) | (1L << (MAX_ROWS - 372)) | (1L << (MAX_SIZE - 372)) | (1L << (MAX_UPDATES_PER_HOUR - 372)) | (1L << (MAX_USER_CONNECTIONS - 372)) | (1L << (MERGE - 372)) | (1L << (MID - 372)) | (1L << (MIGRATE - 372)) | (1L << (MIN_ROWS - 372)) | (1L << (MODIFY - 372)) | (1L << (MUTEX - 372)) | (1L << (MYSQL - 372)) | (1L << (NAME - 372)) | (1L << (NAMES - 372)) | (1L << (NCHAR - 372)) | (1L << (NEVER - 372)) | (1L << (NO - 372)) | (1L << (NODEGROUP - 372)) | (1L << (NONE - 372)) | (1L << (OFFLINE - 372)) | (1L << (OFFSET - 372)) | (1L << (OJ - 372)) | (1L << (OLD_PASSWORD - 372)) | (1L << (ONE - 372)) | (1L << (ONLINE - 372)) | (1L << (ONLY - 372)) | (1L << (OPEN - 372)) | (1L << (OPTIMIZER_COSTS - 372)) | (1L << (OPTIONS - 372)) | (1L << (OWNER - 372)) | (1L << (PACK_KEYS - 372)) | (1L << (PAGE - 372)) | (1L << (PARSER - 372)) | (1L << (PARTIAL - 372)) | (1L << (PARTITIONING - 372)) | (1L << (PARTITIONS - 372)) | (1L << (PASSWORD - 372)) | (1L << (PHASE - 372)) | (1L << (PLUGIN_DIR - 372)))) != 0) || ((((_la - 436)) & ~0x3f) == 0 && ((1L << (_la - 436)) & ((1L << (PLUGINS - 436)) | (1L << (PORT - 436)) | (1L << (PRECEDES - 436)) | (1L << (PREPARE - 436)) | (1L << (PRESERVE - 436)) | (1L << (PREV - 436)) | (1L << (PROCESSLIST - 436)) | (1L << (PROFILE - 436)) | (1L << (PROFILES - 436)) | (1L << (PROXY - 436)) | (1L << (QUERY - 436)) | (1L << (QUICK - 436)) | (1L << (REBUILD - 436)) | (1L << (RECOVER - 436)) | (1L << (REDO_BUFFER_SIZE - 436)) | (1L << (REDUNDANT - 436)) | (1L << (RELAY_LOG_FILE - 436)) | (1L << (RELAY_LOG_POS - 436)) | (1L << (RELAYLOG - 436)) | (1L << (REMOVE - 436)) | (1L << (REORGANIZE - 436)) | (1L << (REPAIR - 436)) | (1L << (REPLICATE_DO_DB - 436)) | (1L << (REPLICATE_DO_TABLE - 436)) | (1L << (REPLICATE_IGNORE_DB - 436)) | (1L << (REPLICATE_IGNORE_TABLE - 436)) | (1L << (REPLICATE_REWRITE_DB - 436)) | (1L << (REPLICATE_WILD_DO_TABLE - 436)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 436)) | (1L << (REPLICATION - 436)) | (1L << (RESUME - 436)) | (1L << (RETURNS - 436)) | (1L << (ROLLBACK - 436)) | (1L << (ROLLUP - 436)) | (1L << (ROTATE - 436)) | (1L << (ROW - 436)) | (1L << (ROWS - 436)) | (1L << (ROW_FORMAT - 436)) | (1L << (SAVEPOINT - 436)) | (1L << (SCHEDULE - 436)) | (1L << (SECURITY - 436)) | (1L << (SERVER - 436)) | (1L << (SESSION - 436)) | (1L << (SHARE - 436)) | (1L << (SHARED - 436)) | (1L << (SIGNED - 436)) | (1L << (SIMPLE - 436)) | (1L << (SLAVE - 436)) | (1L << (SNAPSHOT - 436)) | (1L << (SOCKET - 436)) | (1L << (SOME - 436)) | (1L << (SOUNDS - 436)) | (1L << (SOURCE - 436)) | (1L << (SQL_AFTER_GTIDS - 436)) | (1L << (SQL_AFTER_MTS_GAPS - 436)) | (1L << (SQL_BEFORE_GTIDS - 436)) | (1L << (SQL_BUFFER_RESULT - 436)) | (1L << (SQL_CACHE - 436)) | (1L << (SQL_NO_CACHE - 436)) | (1L << (SQL_THREAD - 436)))) != 0) || ((((_la - 500)) & ~0x3f) == 0 && ((1L << (_la - 500)) & ((1L << (START - 500)) | (1L << (STARTS - 500)) | (1L << (STATS_AUTO_RECALC - 500)) | (1L << (STATS_PERSISTENT - 500)) | (1L << (STATS_SAMPLE_PAGES - 500)) | (1L << (STATUS - 500)) | (1L << (STOP - 500)) | (1L << (STORAGE - 500)) | (1L << (STRING - 500)) | (1L << (SUBJECT - 500)) | (1L << (SUBPARTITION - 500)) | (1L << (SUBPARTITIONS - 500)) | (1L << (SUSPEND - 500)) | (1L << (SWAPS - 500)) | (1L << (SWITCHES - 500)) | (1L << (TABLESPACE - 500)) | (1L << (TEMPORARY - 500)) | (1L << (TEMPTABLE - 500)) | (1L << (THAN - 500)) | (1L << (TRANSACTION - 500)) | (1L << (TRUNCATE - 500)) | (1L << (UNDEFINED - 500)) | (1L << (UNDOFILE - 500)) | (1L << (UNDO_BUFFER_SIZE - 500)) | (1L << (UNKNOWN - 500)) | (1L << (UPGRADE - 500)) | (1L << (USER - 500)) | (1L << (VALIDATION - 500)) | (1L << (VALUE - 500)) | (1L << (VARIABLES - 500)) | (1L << (VIEW - 500)) | (1L << (WAIT - 500)) | (1L << (WARNINGS - 500)) | (1L << (WITHOUT - 500)) | (1L << (WORK - 500)) | (1L << (WRAPPER - 500)) | (1L << (X509 - 500)) | (1L << (XA - 500)) | (1L << (XML - 500)) | (1L << (QUARTER - 500)) | (1L << (MONTH - 500)) | (1L << (DAY - 500)) | (1L << (HOUR - 500)) | (1L << (MINUTE - 500)) | (1L << (WEEK - 500)) | (1L << (SECOND - 500)) | (1L << (MICROSECOND - 500)) | (1L << (TABLES - 500)) | (1L << (ROUTINE - 500)) | (1L << (EXECUTE - 500)) | (1L << (FILE - 500)) | (1L << (PROCESS - 500)) | (1L << (RELOAD - 500)))) != 0) || ((((_la - 564)) & ~0x3f) == 0 && ((1L << (_la - 564)) & ((1L << (SHUTDOWN - 564)) | (1L << (SUPER - 564)) | (1L << (PRIVILEGES - 564)) | (1L << (ARMSCII8 - 564)) | (1L << (ASCII - 564)) | (1L << (BIG5 - 564)) | (1L << (CP1250 - 564)) | (1L << (CP1251 - 564)) | (1L << (CP1256 - 564)) | (1L << (CP1257 - 564)) | (1L << (CP850 - 564)) | (1L << (CP852 - 564)) | (1L << (CP866 - 564)) | (1L << (CP932 - 564)) | (1L << (DEC8 - 564)) | (1L << (EUCJPMS - 564)) | (1L << (EUCKR - 564)) | (1L << (GB2312 - 564)) | (1L << (GBK - 564)) | (1L << (GEOSTD8 - 564)) | (1L << (GREEK - 564)) | (1L << (HEBREW - 564)) | (1L << (HP8 - 564)) | (1L << (KEYBCS2 - 564)) | (1L << (KOI8R - 564)) | (1L << (KOI8U - 564)) | (1L << (LATIN1 - 564)) | (1L << (LATIN2 - 564)) | (1L << (LATIN5 - 564)) | (1L << (LATIN7 - 564)) | (1L << (MACCE - 564)) | (1L << (MACROMAN - 564)) | (1L << (SJIS - 564)) | (1L << (SWE7 - 564)) | (1L << (TIS620 - 564)) | (1L << (UCS2 - 564)) | (1L << (UJIS - 564)) | (1L << (UTF16 - 564)) | (1L << (UTF16LE - 564)) | (1L << (UTF32 - 564)) | (1L << (UTF8 - 564)) | (1L << (UTF8MB3 - 564)) | (1L << (UTF8MB4 - 564)) | (1L << (ARCHIVE - 564)) | (1L << (BLACKHOLE - 564)) | (1L << (CSV - 564)) | (1L << (FEDERATED - 564)) | (1L << (INNODB - 564)) | (1L << (MEMORY - 564)) | (1L << (MRG_MYISAM - 564)) | (1L << (MYISAM - 564)) | (1L << (NDB - 564)) | (1L << (NDBCLUSTER - 564)) | (1L << (PERFOMANCE_SCHEMA - 564)) | (1L << (REPEATABLE - 564)) | (1L << (COMMITTED - 564)) | (1L << (UNCOMMITTED - 564)) | (1L << (SERIALIZABLE - 564)) | (1L << (GEOMETRYCOLLECTION - 564)) | (1L << (LINESTRING - 564)) | (1L << (MULTILINESTRING - 564)) | (1L << (MULTIPOINT - 564)) | (1L << (MULTIPOLYGON - 564)) | (1L << (POINT - 564)))) != 0) || ((((_la - 628)) & ~0x3f) == 0 && ((1L << (_la - 628)) & ((1L << (POLYGON - 628)) | (1L << (ABS - 628)) | (1L << (ACOS - 628)) | (1L << (ADDDATE - 628)) | (1L << (ADDTIME - 628)) | (1L << (AES_DECRYPT - 628)) | (1L << (AES_ENCRYPT - 628)) | (1L << (AREA - 628)) | (1L << (ASBINARY - 628)) | (1L << (ASIN - 628)) | (1L << (ASTEXT - 628)) | (1L << (ASWKB - 628)) | (1L << (ASWKT - 628)) | (1L << (ASYMMETRIC_DECRYPT - 628)) | (1L << (ASYMMETRIC_DERIVE - 628)) | (1L << (ASYMMETRIC_ENCRYPT - 628)) | (1L << (ASYMMETRIC_SIGN - 628)) | (1L << (ASYMMETRIC_VERIFY - 628)) | (1L << (ATAN - 628)) | (1L << (ATAN2 - 628)) | (1L << (BENCHMARK - 628)) | (1L << (BIN - 628)) | (1L << (BIT_COUNT - 628)) | (1L << (BIT_LENGTH - 628)) | (1L << (BUFFER - 628)) | (1L << (CEIL - 628)) | (1L << (CEILING - 628)) | (1L << (CENTROID - 628)) | (1L << (CHARACTER_LENGTH - 628)) | (1L << (CHARSET - 628)) | (1L << (CHAR_LENGTH - 628)) | (1L << (COERCIBILITY - 628)) | (1L << (COLLATION - 628)) | (1L << (COMPRESS - 628)) | (1L << (CONCAT - 628)) | (1L << (CONCAT_WS - 628)) | (1L << (CONNECTION_ID - 628)) | (1L << (CONV - 628)) | (1L << (CONVERT_TZ - 628)) | (1L << (COS - 628)) | (1L << (COT - 628)) | (1L << (CRC32 - 628)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 628)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 628)) | (1L << (CREATE_DH_PARAMETERS - 628)) | (1L << (CREATE_DIGEST - 628)) | (1L << (CROSSES - 628)) | (1L << (DATEDIFF - 628)) | (1L << (DATE_FORMAT - 628)) | (1L << (DAYNAME - 628)) | (1L << (DAYOFMONTH - 628)) | (1L << (DAYOFWEEK - 628)) | (1L << (DAYOFYEAR - 628)) | (1L << (DECODE - 628)) | (1L << (DEGREES - 628)) | (1L << (DES_DECRYPT - 628)) | (1L << (DES_ENCRYPT - 628)) | (1L << (DIMENSION - 628)) | (1L << (DISJOINT - 628)) | (1L << (ELT - 628)) | (1L << (ENCODE - 628)) | (1L << (ENCRYPT - 628)) | (1L << (ENDPOINT - 628)) | (1L << (ENVELOPE - 628)))) != 0) || ((((_la - 692)) & ~0x3f) == 0 && ((1L << (_la - 692)) & ((1L << (EQUALS - 692)) | (1L << (EXP - 692)) | (1L << (EXPORT_SET - 692)) | (1L << (EXTERIORRING - 692)) | (1L << (EXTRACTVALUE - 692)) | (1L << (FIELD - 692)) | (1L << (FIND_IN_SET - 692)) | (1L << (FLOOR - 692)) | (1L << (FORMAT - 692)) | (1L << (FOUND_ROWS - 692)) | (1L << (FROM_BASE64 - 692)) | (1L << (FROM_DAYS - 692)) | (1L << (FROM_UNIXTIME - 692)) | (1L << (GEOMCOLLFROMTEXT - 692)) | (1L << (GEOMCOLLFROMWKB - 692)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 692)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 692)) | (1L << (GEOMETRYFROMTEXT - 692)) | (1L << (GEOMETRYFROMWKB - 692)) | (1L << (GEOMETRYN - 692)) | (1L << (GEOMETRYTYPE - 692)) | (1L << (GEOMFROMTEXT - 692)) | (1L << (GEOMFROMWKB - 692)) | (1L << (GET_FORMAT - 692)) | (1L << (GET_LOCK - 692)) | (1L << (GLENGTH - 692)) | (1L << (GREATEST - 692)) | (1L << (GTID_SUBSET - 692)) | (1L << (GTID_SUBTRACT - 692)) | (1L << (HEX - 692)) | (1L << (IFNULL - 692)) | (1L << (INET6_ATON - 692)) | (1L << (INET6_NTOA - 692)) | (1L << (INET_ATON - 692)) | (1L << (INET_NTOA - 692)) | (1L << (INSTR - 692)) | (1L << (INTERIORRINGN - 692)) | (1L << (INTERSECTS - 692)) | (1L << (ISCLOSED - 692)) | (1L << (ISEMPTY - 692)) | (1L << (ISNULL - 692)) | (1L << (ISSIMPLE - 692)) | (1L << (IS_FREE_LOCK - 692)) | (1L << (IS_IPV4 - 692)) | (1L << (IS_IPV4_COMPAT - 692)) | (1L << (IS_IPV4_MAPPED - 692)) | (1L << (IS_IPV6 - 692)) | (1L << (IS_USED_LOCK - 692)) | (1L << (LAST_INSERT_ID - 692)) | (1L << (LCASE - 692)) | (1L << (LEAST - 692)) | (1L << (LENGTH - 692)) | (1L << (LINEFROMTEXT - 692)) | (1L << (LINEFROMWKB - 692)) | (1L << (LINESTRINGFROMTEXT - 692)) | (1L << (LINESTRINGFROMWKB - 692)) | (1L << (LN - 692)) | (1L << (LOAD_FILE - 692)) | (1L << (LOCATE - 692)) | (1L << (LOG - 692)) | (1L << (LOG10 - 692)) | (1L << (LOG2 - 692)) | (1L << (LOWER - 692)) | (1L << (LPAD - 692)))) != 0) || ((((_la - 756)) & ~0x3f) == 0 && ((1L << (_la - 756)) & ((1L << (LTRIM - 756)) | (1L << (MAKEDATE - 756)) | (1L << (MAKETIME - 756)) | (1L << (MAKE_SET - 756)) | (1L << (MASTER_POS_WAIT - 756)) | (1L << (MBRCONTAINS - 756)) | (1L << (MBRDISJOINT - 756)) | (1L << (MBREQUAL - 756)) | (1L << (MBRINTERSECTS - 756)) | (1L << (MBROVERLAPS - 756)) | (1L << (MBRTOUCHES - 756)) | (1L << (MBRWITHIN - 756)) | (1L << (MD5 - 756)) | (1L << (MLINEFROMTEXT - 756)) | (1L << (MLINEFROMWKB - 756)) | (1L << (MONTHNAME - 756)) | (1L << (MPOINTFROMTEXT - 756)) | (1L << (MPOINTFROMWKB - 756)) | (1L << (MPOLYFROMTEXT - 756)) | (1L << (MPOLYFROMWKB - 756)) | (1L << (MULTILINESTRINGFROMTEXT - 756)) | (1L << (MULTILINESTRINGFROMWKB - 756)) | (1L << (MULTIPOINTFROMTEXT - 756)) | (1L << (MULTIPOINTFROMWKB - 756)) | (1L << (MULTIPOLYGONFROMTEXT - 756)) | (1L << (MULTIPOLYGONFROMWKB - 756)) | (1L << (NAME_CONST - 756)) | (1L << (NULLIF - 756)) | (1L << (NUMGEOMETRIES - 756)) | (1L << (NUMINTERIORRINGS - 756)) | (1L << (NUMPOINTS - 756)) | (1L << (OCT - 756)) | (1L << (OCTET_LENGTH - 756)) | (1L << (ORD - 756)) | (1L << (OVERLAPS - 756)) | (1L << (PERIOD_ADD - 756)) | (1L << (PERIOD_DIFF - 756)) | (1L << (PI - 756)) | (1L << (POINTFROMTEXT - 756)) | (1L << (POINTFROMWKB - 756)) | (1L << (POINTN - 756)) | (1L << (POLYFROMTEXT - 756)) | (1L << (POLYFROMWKB - 756)) | (1L << (POLYGONFROMTEXT - 756)) | (1L << (POLYGONFROMWKB - 756)) | (1L << (POW - 756)) | (1L << (POWER - 756)) | (1L << (QUOTE - 756)) | (1L << (RADIANS - 756)) | (1L << (RAND - 756)) | (1L << (RANDOM_BYTES - 756)) | (1L << (RELEASE_LOCK - 756)) | (1L << (REVERSE - 756)) | (1L << (ROUND - 756)) | (1L << (ROW_COUNT - 756)) | (1L << (RPAD - 756)) | (1L << (RTRIM - 756)) | (1L << (SEC_TO_TIME - 756)) | (1L << (SESSION_USER - 756)) | (1L << (SHA - 756)) | (1L << (SHA1 - 756)) | (1L << (SHA2 - 756)) | (1L << (SIGN - 756)) | (1L << (SIN - 756)))) != 0) || ((((_la - 820)) & ~0x3f) == 0 && ((1L << (_la - 820)) & ((1L << (SLEEP - 820)) | (1L << (SOUNDEX - 820)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 820)) | (1L << (SQRT - 820)) | (1L << (SRID - 820)) | (1L << (STARTPOINT - 820)) | (1L << (STRCMP - 820)) | (1L << (STR_TO_DATE - 820)) | (1L << (ST_AREA - 820)) | (1L << (ST_ASBINARY - 820)) | (1L << (ST_ASTEXT - 820)) | (1L << (ST_ASWKB - 820)) | (1L << (ST_ASWKT - 820)) | (1L << (ST_BUFFER - 820)) | (1L << (ST_CENTROID - 820)) | (1L << (ST_CONTAINS - 820)) | (1L << (ST_CROSSES - 820)) | (1L << (ST_DIFFERENCE - 820)) | (1L << (ST_DIMENSION - 820)) | (1L << (ST_DISJOINT - 820)) | (1L << (ST_DISTANCE - 820)) | (1L << (ST_ENDPOINT - 820)) | (1L << (ST_ENVELOPE - 820)) | (1L << (ST_EQUALS - 820)) | (1L << (ST_EXTERIORRING - 820)) | (1L << (ST_GEOMCOLLFROMTEXT - 820)) | (1L << (ST_GEOMCOLLFROMTXT - 820)) | (1L << (ST_GEOMCOLLFROMWKB - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 820)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 820)) | (1L << (ST_GEOMETRYFROMTEXT - 820)) | (1L << (ST_GEOMETRYFROMWKB - 820)) | (1L << (ST_GEOMETRYN - 820)) | (1L << (ST_GEOMETRYTYPE - 820)) | (1L << (ST_GEOMFROMTEXT - 820)) | (1L << (ST_GEOMFROMWKB - 820)) | (1L << (ST_INTERIORRINGN - 820)) | (1L << (ST_INTERSECTION - 820)) | (1L << (ST_INTERSECTS - 820)) | (1L << (ST_ISCLOSED - 820)) | (1L << (ST_ISEMPTY - 820)) | (1L << (ST_ISSIMPLE - 820)) | (1L << (ST_LINEFROMTEXT - 820)) | (1L << (ST_LINEFROMWKB - 820)) | (1L << (ST_LINESTRINGFROMTEXT - 820)) | (1L << (ST_LINESTRINGFROMWKB - 820)) | (1L << (ST_NUMGEOMETRIES - 820)) | (1L << (ST_NUMINTERIORRING - 820)) | (1L << (ST_NUMINTERIORRINGS - 820)) | (1L << (ST_NUMPOINTS - 820)) | (1L << (ST_OVERLAPS - 820)) | (1L << (ST_POINTFROMTEXT - 820)) | (1L << (ST_POINTFROMWKB - 820)) | (1L << (ST_POINTN - 820)) | (1L << (ST_POLYFROMTEXT - 820)) | (1L << (ST_POLYFROMWKB - 820)) | (1L << (ST_POLYGONFROMTEXT - 820)) | (1L << (ST_POLYGONFROMWKB - 820)) | (1L << (ST_SRID - 820)) | (1L << (ST_STARTPOINT - 820)) | (1L << (ST_SYMDIFFERENCE - 820)) | (1L << (ST_TOUCHES - 820)) | (1L << (ST_UNION - 820)) | (1L << (ST_WITHIN - 820)))) != 0) || ((((_la - 884)) & ~0x3f) == 0 && ((1L << (_la - 884)) & ((1L << (ST_X - 884)) | (1L << (ST_Y - 884)) | (1L << (SUBDATE - 884)) | (1L << (SUBSTRING_INDEX - 884)) | (1L << (SUBTIME - 884)) | (1L << (SYSTEM_USER - 884)) | (1L << (TAN - 884)) | (1L << (TIMEDIFF - 884)) | (1L << (TIMESTAMPADD - 884)) | (1L << (TIMESTAMPDIFF - 884)) | (1L << (TIME_FORMAT - 884)) | (1L << (TIME_TO_SEC - 884)) | (1L << (TOUCHES - 884)) | (1L << (TO_BASE64 - 884)) | (1L << (TO_DAYS - 884)) | (1L << (TO_SECONDS - 884)) | (1L << (UCASE - 884)) | (1L << (UNCOMPRESS - 884)) | (1L << (UNCOMPRESSED_LENGTH - 884)) | (1L << (UNHEX - 884)) | (1L << (UNIX_TIMESTAMP - 884)) | (1L << (UPDATEXML - 884)) | (1L << (UPPER - 884)) | (1L << (UUID - 884)) | (1L << (UUID_SHORT - 884)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 884)) | (1L << (VERSION - 884)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 884)) | (1L << (WEEKDAY - 884)) | (1L << (WEEKOFYEAR - 884)) | (1L << (WEIGHT_STRING - 884)) | (1L << (WITHIN - 884)) | (1L << (YEARWEEK - 884)) | (1L << (Y_FUNCTION - 884)) | (1L << (X_FUNCTION - 884)))) != 0) || ((((_la - 957)) & ~0x3f) == 0 && ((1L << (_la - 957)) & ((1L << (CHARSET_REVERSE_QOUTE_STRING - 957)) | (1L << (ID - 957)) | (1L << (REVERSE_QUOTE_ID - 957)))) != 0)) { { setState(4093); uid(); @@ -34774,6 +34800,7 @@ public final HandlerConditionValueContext handlerConditionValue() throws Recogni case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -34908,6 +34935,7 @@ public final HandlerConditionValueContext handlerConditionValue() throws Recogni case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -40649,6 +40677,7 @@ public final VariableClauseContext variableClause() throws RecognitionException case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -40783,6 +40812,7 @@ public final VariableClauseContext variableClause() throws RecognitionException case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -42040,6 +42070,7 @@ public final CacheIndexStatementContext cacheIndexStatement() throws Recognition case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -42174,6 +42205,7 @@ public final CacheIndexStatementContext cacheIndexStatement() throws Recognition case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -43537,6 +43569,7 @@ public final LoadedTableIndexesContext loadedTableIndexes() throws RecognitionEx case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -43671,6 +43704,7 @@ public final LoadedTableIndexesContext loadedTableIndexes() throws RecognitionEx case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -44323,6 +44357,7 @@ public final SimpleDescribeStatementContext simpleDescribeStatement() throws Rec case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -44457,6 +44492,7 @@ public final SimpleDescribeStatementContext simpleDescribeStatement() throws Rec case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -45858,6 +45894,7 @@ public final CollationNameContext collationName() throws RecognitionException { case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -45992,6 +46029,7 @@ public final CollationNameContext collationName() throws RecognitionException { case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -46875,6 +46913,7 @@ public final AuthPluginContext authPlugin() throws RecognitionException { case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -47009,6 +47048,7 @@ public final AuthPluginContext authPlugin() throws RecognitionException { case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -47588,6 +47628,7 @@ public final UidContext uid() throws RecognitionException { case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -47722,6 +47763,7 @@ public final UidContext uid() throws RecognitionException { case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -50822,6 +50864,7 @@ public final ExpressionOrDefaultContext expressionOrDefault() throws Recognition case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -50956,6 +50999,7 @@ public final ExpressionOrDefaultContext expressionOrDefault() throws Recognition case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -51726,7 +51770,7 @@ public final FunctionCallContext functionCall() throws RecognitionException { setState(5496); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CASE) | (1L << CAST) | (1L << CONVERT) | (1L << CURRENT_USER) | (1L << EXISTS) | (1L << FALSE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (IF - 64)) | (1L << (INSERT - 64)) | (1L << (INTERVAL - 64)) | (1L << (LEFT - 64)) | (1L << (NOT - 64)) | (1L << (NULL_LITERAL - 64)) | (1L << (REPLACE - 64)) | (1L << (RIGHT - 64)))) != 0) || ((((_la - 151)) & ~0x3f) == 0 && ((1L << (_la - 151)) & ((1L << (TRUE - 151)) | (1L << (VALUES - 151)) | (1L << (DATE - 151)) | (1L << (TIME - 151)) | (1L << (TIMESTAMP - 151)) | (1L << (DATETIME - 151)) | (1L << (YEAR - 151)) | (1L << (CHAR - 151)) | (1L << (BINARY - 151)) | (1L << (TEXT - 151)) | (1L << (ENUM - 151)) | (1L << (AVG - 151)) | (1L << (BIT_AND - 151)) | (1L << (BIT_OR - 151)) | (1L << (BIT_XOR - 151)) | (1L << (COUNT - 151)) | (1L << (GROUP_CONCAT - 151)))) != 0) || ((((_la - 215)) & ~0x3f) == 0 && ((1L << (_la - 215)) & ((1L << (MAX - 215)) | (1L << (MIN - 215)) | (1L << (STD - 215)) | (1L << (STDDEV - 215)) | (1L << (STDDEV_POP - 215)) | (1L << (STDDEV_SAMP - 215)) | (1L << (SUM - 215)) | (1L << (VAR_POP - 215)) | (1L << (VAR_SAMP - 215)) | (1L << (VARIANCE - 215)) | (1L << (CURRENT_DATE - 215)) | (1L << (CURRENT_TIME - 215)) | (1L << (CURRENT_TIMESTAMP - 215)) | (1L << (LOCALTIME - 215)) | (1L << (CURDATE - 215)) | (1L << (CURTIME - 215)) | (1L << (DATE_ADD - 215)) | (1L << (DATE_SUB - 215)) | (1L << (EXTRACT - 215)) | (1L << (LOCALTIMESTAMP - 215)) | (1L << (NOW - 215)) | (1L << (POSITION - 215)) | (1L << (SUBSTR - 215)) | (1L << (SUBSTRING - 215)) | (1L << (SYSDATE - 215)) | (1L << (TRIM - 215)) | (1L << (UTC_DATE - 215)) | (1L << (UTC_TIME - 215)) | (1L << (UTC_TIMESTAMP - 215)) | (1L << (ACCOUNT - 215)) | (1L << (ACTION - 215)) | (1L << (AFTER - 215)) | (1L << (AGGREGATE - 215)) | (1L << (ALGORITHM - 215)) | (1L << (ANY - 215)) | (1L << (AT - 215)) | (1L << (AUTHORS - 215)) | (1L << (AUTOCOMMIT - 215)) | (1L << (AUTOEXTEND_SIZE - 215)) | (1L << (AUTO_INCREMENT - 215)) | (1L << (AVG_ROW_LENGTH - 215)) | (1L << (BEGIN - 215)) | (1L << (BINLOG - 215)) | (1L << (BIT - 215)) | (1L << (BLOCK - 215)) | (1L << (BOOL - 215)) | (1L << (BOOLEAN - 215)) | (1L << (BTREE - 215)) | (1L << (CASCADED - 215)) | (1L << (CHAIN - 215)) | (1L << (CHANNEL - 215)) | (1L << (CHECKSUM - 215)) | (1L << (CIPHER - 215)) | (1L << (CLIENT - 215)) | (1L << (COALESCE - 215)) | (1L << (CODE - 215)) | (1L << (COLUMNS - 215)) | (1L << (COLUMN_FORMAT - 215)) | (1L << (COMMENT - 215)) | (1L << (COMMIT - 215)) | (1L << (COMPACT - 215)))) != 0) || ((((_la - 279)) & ~0x3f) == 0 && ((1L << (_la - 279)) & ((1L << (COMPLETION - 279)) | (1L << (COMPRESSED - 279)) | (1L << (COMPRESSION - 279)) | (1L << (CONCURRENT - 279)) | (1L << (CONNECTION - 279)) | (1L << (CONSISTENT - 279)) | (1L << (CONTAINS - 279)) | (1L << (CONTEXT - 279)) | (1L << (CONTRIBUTORS - 279)) | (1L << (COPY - 279)) | (1L << (CPU - 279)) | (1L << (DATA - 279)) | (1L << (DATAFILE - 279)) | (1L << (DEALLOCATE - 279)) | (1L << (DEFAULT_AUTH - 279)) | (1L << (DEFINER - 279)) | (1L << (DELAY_KEY_WRITE - 279)) | (1L << (DIRECTORY - 279)) | (1L << (DISABLE - 279)) | (1L << (DISCARD - 279)) | (1L << (DISK - 279)) | (1L << (DO - 279)) | (1L << (DUMPFILE - 279)) | (1L << (DUPLICATE - 279)) | (1L << (DYNAMIC - 279)) | (1L << (ENABLE - 279)) | (1L << (ENCRYPTION - 279)) | (1L << (ENDS - 279)) | (1L << (ENGINE - 279)) | (1L << (ENGINES - 279)) | (1L << (ERROR - 279)) | (1L << (ERRORS - 279)) | (1L << (ESCAPE - 279)) | (1L << (EVEN - 279)) | (1L << (EVENT - 279)) | (1L << (EVENTS - 279)) | (1L << (EVERY - 279)) | (1L << (EXCHANGE - 279)) | (1L << (EXCLUSIVE - 279)) | (1L << (EXPIRE - 279)) | (1L << (EXTENT_SIZE - 279)) | (1L << (FAULTS - 279)) | (1L << (FIELDS - 279)) | (1L << (FILE_BLOCK_SIZE - 279)) | (1L << (FILTER - 279)) | (1L << (FIRST - 279)) | (1L << (FIXED - 279)) | (1L << (FOLLOWS - 279)) | (1L << (FULL - 279)) | (1L << (FUNCTION - 279)) | (1L << (GLOBAL - 279)) | (1L << (GRANTS - 279)) | (1L << (GROUP_REPLICATION - 279)) | (1L << (HASH - 279)))) != 0) || ((((_la - 343)) & ~0x3f) == 0 && ((1L << (_la - 343)) & ((1L << (HOST - 343)) | (1L << (IDENTIFIED - 343)) | (1L << (IGNORE_SERVER_IDS - 343)) | (1L << (IMPORT - 343)) | (1L << (INDEXES - 343)) | (1L << (INITIAL_SIZE - 343)) | (1L << (INPLACE - 343)) | (1L << (INSERT_METHOD - 343)) | (1L << (INSTANCE - 343)) | (1L << (INVOKER - 343)) | (1L << (IO - 343)) | (1L << (IO_THREAD - 343)) | (1L << (IPC - 343)) | (1L << (ISOLATION - 343)) | (1L << (ISSUER - 343)) | (1L << (KEY_BLOCK_SIZE - 343)) | (1L << (LANGUAGE - 343)) | (1L << (LAST - 343)) | (1L << (LEAVES - 343)) | (1L << (LESS - 343)) | (1L << (LEVEL - 343)) | (1L << (LIST - 343)) | (1L << (LOCAL - 343)) | (1L << (LOGFILE - 343)) | (1L << (LOGS - 343)) | (1L << (MASTER - 343)) | (1L << (MASTER_AUTO_POSITION - 343)) | (1L << (MASTER_CONNECT_RETRY - 343)) | (1L << (MASTER_DELAY - 343)) | (1L << (MASTER_HEARTBEAT_PERIOD - 343)) | (1L << (MASTER_HOST - 343)) | (1L << (MASTER_LOG_FILE - 343)) | (1L << (MASTER_LOG_POS - 343)) | (1L << (MASTER_PASSWORD - 343)) | (1L << (MASTER_PORT - 343)) | (1L << (MASTER_RETRY_COUNT - 343)) | (1L << (MASTER_SSL - 343)) | (1L << (MASTER_SSL_CA - 343)) | (1L << (MASTER_SSL_CAPATH - 343)) | (1L << (MASTER_SSL_CERT - 343)) | (1L << (MASTER_SSL_CIPHER - 343)) | (1L << (MASTER_SSL_CRL - 343)) | (1L << (MASTER_SSL_CRLPATH - 343)) | (1L << (MASTER_SSL_KEY - 343)) | (1L << (MASTER_TLS_VERSION - 343)) | (1L << (MASTER_USER - 343)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 343)) | (1L << (MAX_QUERIES_PER_HOUR - 343)) | (1L << (MAX_ROWS - 343)) | (1L << (MAX_SIZE - 343)) | (1L << (MAX_UPDATES_PER_HOUR - 343)) | (1L << (MAX_USER_CONNECTIONS - 343)) | (1L << (MERGE - 343)) | (1L << (MID - 343)) | (1L << (MIGRATE - 343)) | (1L << (MIN_ROWS - 343)) | (1L << (MODIFY - 343)) | (1L << (MUTEX - 343)) | (1L << (MYSQL - 343)))) != 0) || ((((_la - 407)) & ~0x3f) == 0 && ((1L << (_la - 407)) & ((1L << (NAME - 407)) | (1L << (NAMES - 407)) | (1L << (NCHAR - 407)) | (1L << (NEVER - 407)) | (1L << (NO - 407)) | (1L << (NODEGROUP - 407)) | (1L << (NONE - 407)) | (1L << (OFFLINE - 407)) | (1L << (OFFSET - 407)) | (1L << (OJ - 407)) | (1L << (OLD_PASSWORD - 407)) | (1L << (ONE - 407)) | (1L << (ONLINE - 407)) | (1L << (ONLY - 407)) | (1L << (OPTIMIZER_COSTS - 407)) | (1L << (OPTIONS - 407)) | (1L << (OWNER - 407)) | (1L << (PACK_KEYS - 407)) | (1L << (PAGE - 407)) | (1L << (PARSER - 407)) | (1L << (PARTIAL - 407)) | (1L << (PARTITIONING - 407)) | (1L << (PARTITIONS - 407)) | (1L << (PASSWORD - 407)) | (1L << (PHASE - 407)) | (1L << (PLUGIN_DIR - 407)) | (1L << (PLUGINS - 407)) | (1L << (PORT - 407)) | (1L << (PRECEDES - 407)) | (1L << (PREPARE - 407)) | (1L << (PRESERVE - 407)) | (1L << (PREV - 407)) | (1L << (PROCESSLIST - 407)) | (1L << (PROFILE - 407)) | (1L << (PROFILES - 407)) | (1L << (PROXY - 407)) | (1L << (QUERY - 407)) | (1L << (QUICK - 407)) | (1L << (REBUILD - 407)) | (1L << (RECOVER - 407)) | (1L << (REDO_BUFFER_SIZE - 407)) | (1L << (REDUNDANT - 407)) | (1L << (RELAY_LOG_FILE - 407)) | (1L << (RELAY_LOG_POS - 407)) | (1L << (RELAYLOG - 407)) | (1L << (REMOVE - 407)) | (1L << (REORGANIZE - 407)) | (1L << (REPAIR - 407)) | (1L << (REPLICATE_DO_DB - 407)) | (1L << (REPLICATE_DO_TABLE - 407)) | (1L << (REPLICATE_IGNORE_DB - 407)) | (1L << (REPLICATE_IGNORE_TABLE - 407)) | (1L << (REPLICATE_REWRITE_DB - 407)) | (1L << (REPLICATE_WILD_DO_TABLE - 407)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 407)) | (1L << (REPLICATION - 407)) | (1L << (RESUME - 407)) | (1L << (RETURNS - 407)) | (1L << (ROLLBACK - 407)))) != 0) || ((((_la - 471)) & ~0x3f) == 0 && ((1L << (_la - 471)) & ((1L << (ROLLUP - 471)) | (1L << (ROTATE - 471)) | (1L << (ROW - 471)) | (1L << (ROWS - 471)) | (1L << (ROW_FORMAT - 471)) | (1L << (SAVEPOINT - 471)) | (1L << (SCHEDULE - 471)) | (1L << (SECURITY - 471)) | (1L << (SERVER - 471)) | (1L << (SESSION - 471)) | (1L << (SHARE - 471)) | (1L << (SHARED - 471)) | (1L << (SIGNED - 471)) | (1L << (SIMPLE - 471)) | (1L << (SLAVE - 471)) | (1L << (SNAPSHOT - 471)) | (1L << (SOCKET - 471)) | (1L << (SOME - 471)) | (1L << (SOUNDS - 471)) | (1L << (SOURCE - 471)) | (1L << (SQL_AFTER_GTIDS - 471)) | (1L << (SQL_AFTER_MTS_GAPS - 471)) | (1L << (SQL_BEFORE_GTIDS - 471)) | (1L << (SQL_BUFFER_RESULT - 471)) | (1L << (SQL_CACHE - 471)) | (1L << (SQL_NO_CACHE - 471)) | (1L << (SQL_THREAD - 471)) | (1L << (START - 471)) | (1L << (STARTS - 471)) | (1L << (STATS_AUTO_RECALC - 471)) | (1L << (STATS_PERSISTENT - 471)) | (1L << (STATS_SAMPLE_PAGES - 471)) | (1L << (STATUS - 471)) | (1L << (STOP - 471)) | (1L << (STORAGE - 471)) | (1L << (STRING - 471)) | (1L << (SUBJECT - 471)) | (1L << (SUBPARTITION - 471)) | (1L << (SUBPARTITIONS - 471)) | (1L << (SUSPEND - 471)) | (1L << (SWAPS - 471)) | (1L << (SWITCHES - 471)) | (1L << (TABLESPACE - 471)) | (1L << (TEMPORARY - 471)) | (1L << (TEMPTABLE - 471)) | (1L << (THAN - 471)) | (1L << (TRANSACTION - 471)) | (1L << (TRUNCATE - 471)) | (1L << (UNDEFINED - 471)) | (1L << (UNDOFILE - 471)) | (1L << (UNDO_BUFFER_SIZE - 471)) | (1L << (UNKNOWN - 471)) | (1L << (UPGRADE - 471)) | (1L << (USER - 471)) | (1L << (VALIDATION - 471)) | (1L << (VALUE - 471)))) != 0) || ((((_la - 535)) & ~0x3f) == 0 && ((1L << (_la - 535)) & ((1L << (VARIABLES - 535)) | (1L << (VIEW - 535)) | (1L << (WAIT - 535)) | (1L << (WARNINGS - 535)) | (1L << (WITHOUT - 535)) | (1L << (WORK - 535)) | (1L << (WRAPPER - 535)) | (1L << (X509 - 535)) | (1L << (XA - 535)) | (1L << (XML - 535)) | (1L << (QUARTER - 535)) | (1L << (MONTH - 535)) | (1L << (DAY - 535)) | (1L << (HOUR - 535)) | (1L << (MINUTE - 535)) | (1L << (WEEK - 535)) | (1L << (SECOND - 535)) | (1L << (MICROSECOND - 535)) | (1L << (TABLES - 535)) | (1L << (ROUTINE - 535)) | (1L << (EXECUTE - 535)) | (1L << (FILE - 535)) | (1L << (PROCESS - 535)) | (1L << (RELOAD - 535)) | (1L << (SHUTDOWN - 535)) | (1L << (SUPER - 535)) | (1L << (PRIVILEGES - 535)) | (1L << (ARMSCII8 - 535)) | (1L << (ASCII - 535)) | (1L << (BIG5 - 535)) | (1L << (CP1250 - 535)) | (1L << (CP1251 - 535)) | (1L << (CP1256 - 535)) | (1L << (CP1257 - 535)) | (1L << (CP850 - 535)) | (1L << (CP852 - 535)) | (1L << (CP866 - 535)) | (1L << (CP932 - 535)) | (1L << (DEC8 - 535)) | (1L << (EUCJPMS - 535)) | (1L << (EUCKR - 535)) | (1L << (GB2312 - 535)) | (1L << (GBK - 535)) | (1L << (GEOSTD8 - 535)) | (1L << (GREEK - 535)) | (1L << (HEBREW - 535)) | (1L << (HP8 - 535)) | (1L << (KEYBCS2 - 535)) | (1L << (KOI8R - 535)) | (1L << (KOI8U - 535)) | (1L << (LATIN1 - 535)) | (1L << (LATIN2 - 535)) | (1L << (LATIN5 - 535)) | (1L << (LATIN7 - 535)) | (1L << (MACCE - 535)) | (1L << (MACROMAN - 535)) | (1L << (SJIS - 535)) | (1L << (SWE7 - 535)) | (1L << (TIS620 - 535)))) != 0) || ((((_la - 599)) & ~0x3f) == 0 && ((1L << (_la - 599)) & ((1L << (UCS2 - 599)) | (1L << (UJIS - 599)) | (1L << (UTF16 - 599)) | (1L << (UTF16LE - 599)) | (1L << (UTF32 - 599)) | (1L << (UTF8 - 599)) | (1L << (UTF8MB3 - 599)) | (1L << (UTF8MB4 - 599)) | (1L << (ARCHIVE - 599)) | (1L << (BLACKHOLE - 599)) | (1L << (CSV - 599)) | (1L << (FEDERATED - 599)) | (1L << (INNODB - 599)) | (1L << (MEMORY - 599)) | (1L << (MRG_MYISAM - 599)) | (1L << (MYISAM - 599)) | (1L << (NDB - 599)) | (1L << (NDBCLUSTER - 599)) | (1L << (PERFOMANCE_SCHEMA - 599)) | (1L << (REPEATABLE - 599)) | (1L << (COMMITTED - 599)) | (1L << (UNCOMMITTED - 599)) | (1L << (SERIALIZABLE - 599)) | (1L << (GEOMETRYCOLLECTION - 599)) | (1L << (LINESTRING - 599)) | (1L << (MULTILINESTRING - 599)) | (1L << (MULTIPOINT - 599)) | (1L << (MULTIPOLYGON - 599)) | (1L << (POINT - 599)) | (1L << (POLYGON - 599)) | (1L << (ABS - 599)) | (1L << (ACOS - 599)) | (1L << (ADDDATE - 599)) | (1L << (ADDTIME - 599)) | (1L << (AES_DECRYPT - 599)) | (1L << (AES_ENCRYPT - 599)) | (1L << (AREA - 599)) | (1L << (ASBINARY - 599)) | (1L << (ASIN - 599)) | (1L << (ASTEXT - 599)) | (1L << (ASWKB - 599)) | (1L << (ASWKT - 599)) | (1L << (ASYMMETRIC_DECRYPT - 599)) | (1L << (ASYMMETRIC_DERIVE - 599)) | (1L << (ASYMMETRIC_ENCRYPT - 599)) | (1L << (ASYMMETRIC_SIGN - 599)) | (1L << (ASYMMETRIC_VERIFY - 599)) | (1L << (ATAN - 599)) | (1L << (ATAN2 - 599)) | (1L << (BENCHMARK - 599)) | (1L << (BIN - 599)) | (1L << (BIT_COUNT - 599)) | (1L << (BIT_LENGTH - 599)) | (1L << (BUFFER - 599)) | (1L << (CEIL - 599)) | (1L << (CEILING - 599)) | (1L << (CENTROID - 599)) | (1L << (CHARACTER_LENGTH - 599)) | (1L << (CHARSET - 599)) | (1L << (CHAR_LENGTH - 599)) | (1L << (COERCIBILITY - 599)) | (1L << (COLLATION - 599)) | (1L << (COMPRESS - 599)) | (1L << (CONCAT - 599)))) != 0) || ((((_la - 663)) & ~0x3f) == 0 && ((1L << (_la - 663)) & ((1L << (CONCAT_WS - 663)) | (1L << (CONNECTION_ID - 663)) | (1L << (CONV - 663)) | (1L << (CONVERT_TZ - 663)) | (1L << (COS - 663)) | (1L << (COT - 663)) | (1L << (CRC32 - 663)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 663)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 663)) | (1L << (CREATE_DH_PARAMETERS - 663)) | (1L << (CREATE_DIGEST - 663)) | (1L << (CROSSES - 663)) | (1L << (DATEDIFF - 663)) | (1L << (DATE_FORMAT - 663)) | (1L << (DAYNAME - 663)) | (1L << (DAYOFMONTH - 663)) | (1L << (DAYOFWEEK - 663)) | (1L << (DAYOFYEAR - 663)) | (1L << (DECODE - 663)) | (1L << (DEGREES - 663)) | (1L << (DES_DECRYPT - 663)) | (1L << (DES_ENCRYPT - 663)) | (1L << (DIMENSION - 663)) | (1L << (DISJOINT - 663)) | (1L << (ELT - 663)) | (1L << (ENCODE - 663)) | (1L << (ENCRYPT - 663)) | (1L << (ENDPOINT - 663)) | (1L << (ENVELOPE - 663)) | (1L << (EQUALS - 663)) | (1L << (EXP - 663)) | (1L << (EXPORT_SET - 663)) | (1L << (EXTERIORRING - 663)) | (1L << (EXTRACTVALUE - 663)) | (1L << (FIELD - 663)) | (1L << (FIND_IN_SET - 663)) | (1L << (FLOOR - 663)) | (1L << (FORMAT - 663)) | (1L << (FOUND_ROWS - 663)) | (1L << (FROM_BASE64 - 663)) | (1L << (FROM_DAYS - 663)) | (1L << (FROM_UNIXTIME - 663)) | (1L << (GEOMCOLLFROMTEXT - 663)) | (1L << (GEOMCOLLFROMWKB - 663)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 663)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 663)) | (1L << (GEOMETRYFROMTEXT - 663)) | (1L << (GEOMETRYFROMWKB - 663)) | (1L << (GEOMETRYN - 663)) | (1L << (GEOMETRYTYPE - 663)) | (1L << (GEOMFROMTEXT - 663)) | (1L << (GEOMFROMWKB - 663)) | (1L << (GET_FORMAT - 663)) | (1L << (GET_LOCK - 663)) | (1L << (GLENGTH - 663)) | (1L << (GREATEST - 663)) | (1L << (GTID_SUBSET - 663)) | (1L << (GTID_SUBTRACT - 663)) | (1L << (HEX - 663)) | (1L << (IFNULL - 663)) | (1L << (INET6_ATON - 663)) | (1L << (INET6_NTOA - 663)) | (1L << (INET_ATON - 663)) | (1L << (INET_NTOA - 663)))) != 0) || ((((_la - 727)) & ~0x3f) == 0 && ((1L << (_la - 727)) & ((1L << (INSTR - 727)) | (1L << (INTERIORRINGN - 727)) | (1L << (INTERSECTS - 727)) | (1L << (ISCLOSED - 727)) | (1L << (ISEMPTY - 727)) | (1L << (ISNULL - 727)) | (1L << (ISSIMPLE - 727)) | (1L << (IS_FREE_LOCK - 727)) | (1L << (IS_IPV4 - 727)) | (1L << (IS_IPV4_COMPAT - 727)) | (1L << (IS_IPV4_MAPPED - 727)) | (1L << (IS_IPV6 - 727)) | (1L << (IS_USED_LOCK - 727)) | (1L << (LAST_INSERT_ID - 727)) | (1L << (LCASE - 727)) | (1L << (LEAST - 727)) | (1L << (LENGTH - 727)) | (1L << (LINEFROMTEXT - 727)) | (1L << (LINEFROMWKB - 727)) | (1L << (LINESTRINGFROMTEXT - 727)) | (1L << (LINESTRINGFROMWKB - 727)) | (1L << (LN - 727)) | (1L << (LOAD_FILE - 727)) | (1L << (LOCATE - 727)) | (1L << (LOG - 727)) | (1L << (LOG10 - 727)) | (1L << (LOG2 - 727)) | (1L << (LOWER - 727)) | (1L << (LPAD - 727)) | (1L << (LTRIM - 727)) | (1L << (MAKEDATE - 727)) | (1L << (MAKETIME - 727)) | (1L << (MAKE_SET - 727)) | (1L << (MASTER_POS_WAIT - 727)) | (1L << (MBRCONTAINS - 727)) | (1L << (MBRDISJOINT - 727)) | (1L << (MBREQUAL - 727)) | (1L << (MBRINTERSECTS - 727)) | (1L << (MBROVERLAPS - 727)) | (1L << (MBRTOUCHES - 727)) | (1L << (MBRWITHIN - 727)) | (1L << (MD5 - 727)) | (1L << (MLINEFROMTEXT - 727)) | (1L << (MLINEFROMWKB - 727)) | (1L << (MONTHNAME - 727)) | (1L << (MPOINTFROMTEXT - 727)) | (1L << (MPOINTFROMWKB - 727)) | (1L << (MPOLYFROMTEXT - 727)) | (1L << (MPOLYFROMWKB - 727)) | (1L << (MULTILINESTRINGFROMTEXT - 727)) | (1L << (MULTILINESTRINGFROMWKB - 727)) | (1L << (MULTIPOINTFROMTEXT - 727)) | (1L << (MULTIPOINTFROMWKB - 727)) | (1L << (MULTIPOLYGONFROMTEXT - 727)) | (1L << (MULTIPOLYGONFROMWKB - 727)) | (1L << (NAME_CONST - 727)) | (1L << (NULLIF - 727)) | (1L << (NUMGEOMETRIES - 727)) | (1L << (NUMINTERIORRINGS - 727)) | (1L << (NUMPOINTS - 727)) | (1L << (OCT - 727)) | (1L << (OCTET_LENGTH - 727)) | (1L << (ORD - 727)) | (1L << (OVERLAPS - 727)))) != 0) || ((((_la - 791)) & ~0x3f) == 0 && ((1L << (_la - 791)) & ((1L << (PERIOD_ADD - 791)) | (1L << (PERIOD_DIFF - 791)) | (1L << (PI - 791)) | (1L << (POINTFROMTEXT - 791)) | (1L << (POINTFROMWKB - 791)) | (1L << (POINTN - 791)) | (1L << (POLYFROMTEXT - 791)) | (1L << (POLYFROMWKB - 791)) | (1L << (POLYGONFROMTEXT - 791)) | (1L << (POLYGONFROMWKB - 791)) | (1L << (POW - 791)) | (1L << (POWER - 791)) | (1L << (QUOTE - 791)) | (1L << (RADIANS - 791)) | (1L << (RAND - 791)) | (1L << (RANDOM_BYTES - 791)) | (1L << (RELEASE_LOCK - 791)) | (1L << (REVERSE - 791)) | (1L << (ROUND - 791)) | (1L << (ROW_COUNT - 791)) | (1L << (RPAD - 791)) | (1L << (RTRIM - 791)) | (1L << (SEC_TO_TIME - 791)) | (1L << (SESSION_USER - 791)) | (1L << (SHA - 791)) | (1L << (SHA1 - 791)) | (1L << (SHA2 - 791)) | (1L << (SIGN - 791)) | (1L << (SIN - 791)) | (1L << (SLEEP - 791)) | (1L << (SOUNDEX - 791)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 791)) | (1L << (SQRT - 791)) | (1L << (SRID - 791)) | (1L << (STARTPOINT - 791)) | (1L << (STRCMP - 791)) | (1L << (STR_TO_DATE - 791)) | (1L << (ST_AREA - 791)) | (1L << (ST_ASBINARY - 791)) | (1L << (ST_ASTEXT - 791)) | (1L << (ST_ASWKB - 791)) | (1L << (ST_ASWKT - 791)) | (1L << (ST_BUFFER - 791)) | (1L << (ST_CENTROID - 791)) | (1L << (ST_CONTAINS - 791)) | (1L << (ST_CROSSES - 791)) | (1L << (ST_DIFFERENCE - 791)) | (1L << (ST_DIMENSION - 791)) | (1L << (ST_DISJOINT - 791)) | (1L << (ST_DISTANCE - 791)) | (1L << (ST_ENDPOINT - 791)) | (1L << (ST_ENVELOPE - 791)) | (1L << (ST_EQUALS - 791)) | (1L << (ST_EXTERIORRING - 791)) | (1L << (ST_GEOMCOLLFROMTEXT - 791)) | (1L << (ST_GEOMCOLLFROMTXT - 791)) | (1L << (ST_GEOMCOLLFROMWKB - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 791)) | (1L << (ST_GEOMETRYFROMTEXT - 791)) | (1L << (ST_GEOMETRYFROMWKB - 791)) | (1L << (ST_GEOMETRYN - 791)) | (1L << (ST_GEOMETRYTYPE - 791)) | (1L << (ST_GEOMFROMTEXT - 791)))) != 0) || ((((_la - 855)) & ~0x3f) == 0 && ((1L << (_la - 855)) & ((1L << (ST_GEOMFROMWKB - 855)) | (1L << (ST_INTERIORRINGN - 855)) | (1L << (ST_INTERSECTION - 855)) | (1L << (ST_INTERSECTS - 855)) | (1L << (ST_ISCLOSED - 855)) | (1L << (ST_ISEMPTY - 855)) | (1L << (ST_ISSIMPLE - 855)) | (1L << (ST_LINEFROMTEXT - 855)) | (1L << (ST_LINEFROMWKB - 855)) | (1L << (ST_LINESTRINGFROMTEXT - 855)) | (1L << (ST_LINESTRINGFROMWKB - 855)) | (1L << (ST_NUMGEOMETRIES - 855)) | (1L << (ST_NUMINTERIORRING - 855)) | (1L << (ST_NUMINTERIORRINGS - 855)) | (1L << (ST_NUMPOINTS - 855)) | (1L << (ST_OVERLAPS - 855)) | (1L << (ST_POINTFROMTEXT - 855)) | (1L << (ST_POINTFROMWKB - 855)) | (1L << (ST_POINTN - 855)) | (1L << (ST_POLYFROMTEXT - 855)) | (1L << (ST_POLYFROMWKB - 855)) | (1L << (ST_POLYGONFROMTEXT - 855)) | (1L << (ST_POLYGONFROMWKB - 855)) | (1L << (ST_SRID - 855)) | (1L << (ST_STARTPOINT - 855)) | (1L << (ST_SYMDIFFERENCE - 855)) | (1L << (ST_TOUCHES - 855)) | (1L << (ST_UNION - 855)) | (1L << (ST_WITHIN - 855)) | (1L << (ST_X - 855)) | (1L << (ST_Y - 855)) | (1L << (SUBDATE - 855)) | (1L << (SUBSTRING_INDEX - 855)) | (1L << (SUBTIME - 855)) | (1L << (SYSTEM_USER - 855)) | (1L << (TAN - 855)) | (1L << (TIMEDIFF - 855)) | (1L << (TIMESTAMPADD - 855)) | (1L << (TIMESTAMPDIFF - 855)) | (1L << (TIME_FORMAT - 855)) | (1L << (TIME_TO_SEC - 855)) | (1L << (TOUCHES - 855)) | (1L << (TO_BASE64 - 855)) | (1L << (TO_DAYS - 855)) | (1L << (TO_SECONDS - 855)) | (1L << (UCASE - 855)) | (1L << (UNCOMPRESS - 855)) | (1L << (UNCOMPRESSED_LENGTH - 855)) | (1L << (UNHEX - 855)) | (1L << (UNIX_TIMESTAMP - 855)) | (1L << (UPDATEXML - 855)) | (1L << (UPPER - 855)) | (1L << (UUID - 855)) | (1L << (UUID_SHORT - 855)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 855)) | (1L << (VERSION - 855)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 855)) | (1L << (WEEKDAY - 855)) | (1L << (WEEKOFYEAR - 855)) | (1L << (WEIGHT_STRING - 855)) | (1L << (WITHIN - 855)) | (1L << (YEARWEEK - 855)) | (1L << (Y_FUNCTION - 855)) | (1L << (X_FUNCTION - 855)))) != 0) || ((((_la - 931)) & ~0x3f) == 0 && ((1L << (_la - 931)) & ((1L << (PLUS - 931)) | (1L << (MINUS - 931)) | (1L << (EXCLAMATION_SYMBOL - 931)) | (1L << (BIT_NOT_OP - 931)) | (1L << (LR_BRACKET - 931)) | (1L << (ZERO_DECIMAL - 931)) | (1L << (ONE_DECIMAL - 931)) | (1L << (TWO_DECIMAL - 931)) | (1L << (CHARSET_REVERSE_QOUTE_STRING - 931)) | (1L << (START_NATIONAL_STRING_LITERAL - 931)) | (1L << (STRING_LITERAL - 931)) | (1L << (DECIMAL_LITERAL - 931)) | (1L << (HEXADECIMAL_LITERAL - 931)) | (1L << (REAL_LITERAL - 931)) | (1L << (NULL_SPEC_LITERAL - 931)) | (1L << (BIT_STRING - 931)) | (1L << (STRING_CHARSET_NAME - 931)) | (1L << (ID - 931)) | (1L << (REVERSE_QUOTE_ID - 931)) | (1L << (LOCAL_ID - 931)) | (1L << (GLOBAL_ID - 931)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CASE) | (1L << CAST) | (1L << CONVERT) | (1L << CURRENT_USER) | (1L << EXISTS) | (1L << FALSE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (IF - 64)) | (1L << (INSERT - 64)) | (1L << (INTERVAL - 64)) | (1L << (LEFT - 64)) | (1L << (NOT - 64)) | (1L << (NULL_LITERAL - 64)) | (1L << (REPLACE - 64)) | (1L << (RIGHT - 64)))) != 0) || ((((_la - 151)) & ~0x3f) == 0 && ((1L << (_la - 151)) & ((1L << (TRUE - 151)) | (1L << (VALUES - 151)) | (1L << (DATE - 151)) | (1L << (TIME - 151)) | (1L << (TIMESTAMP - 151)) | (1L << (DATETIME - 151)) | (1L << (YEAR - 151)) | (1L << (CHAR - 151)) | (1L << (BINARY - 151)) | (1L << (TEXT - 151)) | (1L << (ENUM - 151)) | (1L << (AVG - 151)) | (1L << (BIT_AND - 151)) | (1L << (BIT_OR - 151)) | (1L << (BIT_XOR - 151)) | (1L << (COUNT - 151)) | (1L << (GROUP_CONCAT - 151)))) != 0) || ((((_la - 215)) & ~0x3f) == 0 && ((1L << (_la - 215)) & ((1L << (MAX - 215)) | (1L << (MIN - 215)) | (1L << (STD - 215)) | (1L << (STDDEV - 215)) | (1L << (STDDEV_POP - 215)) | (1L << (STDDEV_SAMP - 215)) | (1L << (SUM - 215)) | (1L << (VAR_POP - 215)) | (1L << (VAR_SAMP - 215)) | (1L << (VARIANCE - 215)) | (1L << (CURRENT_DATE - 215)) | (1L << (CURRENT_TIME - 215)) | (1L << (CURRENT_TIMESTAMP - 215)) | (1L << (LOCALTIME - 215)) | (1L << (CURDATE - 215)) | (1L << (CURTIME - 215)) | (1L << (DATE_ADD - 215)) | (1L << (DATE_SUB - 215)) | (1L << (EXTRACT - 215)) | (1L << (LOCALTIMESTAMP - 215)) | (1L << (NOW - 215)) | (1L << (POSITION - 215)) | (1L << (SUBSTR - 215)) | (1L << (SUBSTRING - 215)) | (1L << (SYSDATE - 215)) | (1L << (TRIM - 215)) | (1L << (UTC_DATE - 215)) | (1L << (UTC_TIME - 215)) | (1L << (UTC_TIMESTAMP - 215)) | (1L << (ACCOUNT - 215)) | (1L << (ACTION - 215)) | (1L << (AFTER - 215)) | (1L << (AGGREGATE - 215)) | (1L << (ALGORITHM - 215)) | (1L << (ANY - 215)) | (1L << (AT - 215)) | (1L << (AUTHORS - 215)) | (1L << (AUTOCOMMIT - 215)) | (1L << (AUTOEXTEND_SIZE - 215)) | (1L << (AUTO_INCREMENT - 215)) | (1L << (AVG_ROW_LENGTH - 215)) | (1L << (BEGIN - 215)) | (1L << (BINLOG - 215)) | (1L << (BIT - 215)) | (1L << (BLOCK - 215)) | (1L << (BOOL - 215)) | (1L << (BOOLEAN - 215)) | (1L << (BTREE - 215)) | (1L << (CASCADED - 215)) | (1L << (CHAIN - 215)) | (1L << (CHANNEL - 215)) | (1L << (CHECKSUM - 215)) | (1L << (CIPHER - 215)) | (1L << (CLIENT - 215)) | (1L << (CLOSE - 215)) | (1L << (COALESCE - 215)) | (1L << (CODE - 215)) | (1L << (COLUMNS - 215)) | (1L << (COLUMN_FORMAT - 215)) | (1L << (COMMENT - 215)) | (1L << (COMMIT - 215)) | (1L << (COMPACT - 215)))) != 0) || ((((_la - 279)) & ~0x3f) == 0 && ((1L << (_la - 279)) & ((1L << (COMPLETION - 279)) | (1L << (COMPRESSED - 279)) | (1L << (COMPRESSION - 279)) | (1L << (CONCURRENT - 279)) | (1L << (CONNECTION - 279)) | (1L << (CONSISTENT - 279)) | (1L << (CONTAINS - 279)) | (1L << (CONTEXT - 279)) | (1L << (CONTRIBUTORS - 279)) | (1L << (COPY - 279)) | (1L << (CPU - 279)) | (1L << (DATA - 279)) | (1L << (DATAFILE - 279)) | (1L << (DEALLOCATE - 279)) | (1L << (DEFAULT_AUTH - 279)) | (1L << (DEFINER - 279)) | (1L << (DELAY_KEY_WRITE - 279)) | (1L << (DIRECTORY - 279)) | (1L << (DISABLE - 279)) | (1L << (DISCARD - 279)) | (1L << (DISK - 279)) | (1L << (DO - 279)) | (1L << (DUMPFILE - 279)) | (1L << (DUPLICATE - 279)) | (1L << (DYNAMIC - 279)) | (1L << (ENABLE - 279)) | (1L << (ENCRYPTION - 279)) | (1L << (ENDS - 279)) | (1L << (ENGINE - 279)) | (1L << (ENGINES - 279)) | (1L << (ERROR - 279)) | (1L << (ERRORS - 279)) | (1L << (ESCAPE - 279)) | (1L << (EVEN - 279)) | (1L << (EVENT - 279)) | (1L << (EVENTS - 279)) | (1L << (EVERY - 279)) | (1L << (EXCHANGE - 279)) | (1L << (EXCLUSIVE - 279)) | (1L << (EXPIRE - 279)) | (1L << (EXTENT_SIZE - 279)) | (1L << (FAULTS - 279)) | (1L << (FIELDS - 279)) | (1L << (FILE_BLOCK_SIZE - 279)) | (1L << (FILTER - 279)) | (1L << (FIRST - 279)) | (1L << (FIXED - 279)) | (1L << (FOLLOWS - 279)) | (1L << (FULL - 279)) | (1L << (FUNCTION - 279)) | (1L << (GLOBAL - 279)) | (1L << (GRANTS - 279)) | (1L << (GROUP_REPLICATION - 279)) | (1L << (HASH - 279)))) != 0) || ((((_la - 343)) & ~0x3f) == 0 && ((1L << (_la - 343)) & ((1L << (HOST - 343)) | (1L << (IDENTIFIED - 343)) | (1L << (IGNORE_SERVER_IDS - 343)) | (1L << (IMPORT - 343)) | (1L << (INDEXES - 343)) | (1L << (INITIAL_SIZE - 343)) | (1L << (INPLACE - 343)) | (1L << (INSERT_METHOD - 343)) | (1L << (INSTANCE - 343)) | (1L << (INVOKER - 343)) | (1L << (IO - 343)) | (1L << (IO_THREAD - 343)) | (1L << (IPC - 343)) | (1L << (ISOLATION - 343)) | (1L << (ISSUER - 343)) | (1L << (KEY_BLOCK_SIZE - 343)) | (1L << (LANGUAGE - 343)) | (1L << (LAST - 343)) | (1L << (LEAVES - 343)) | (1L << (LESS - 343)) | (1L << (LEVEL - 343)) | (1L << (LIST - 343)) | (1L << (LOCAL - 343)) | (1L << (LOGFILE - 343)) | (1L << (LOGS - 343)) | (1L << (MASTER - 343)) | (1L << (MASTER_AUTO_POSITION - 343)) | (1L << (MASTER_CONNECT_RETRY - 343)) | (1L << (MASTER_DELAY - 343)) | (1L << (MASTER_HEARTBEAT_PERIOD - 343)) | (1L << (MASTER_HOST - 343)) | (1L << (MASTER_LOG_FILE - 343)) | (1L << (MASTER_LOG_POS - 343)) | (1L << (MASTER_PASSWORD - 343)) | (1L << (MASTER_PORT - 343)) | (1L << (MASTER_RETRY_COUNT - 343)) | (1L << (MASTER_SSL - 343)) | (1L << (MASTER_SSL_CA - 343)) | (1L << (MASTER_SSL_CAPATH - 343)) | (1L << (MASTER_SSL_CERT - 343)) | (1L << (MASTER_SSL_CIPHER - 343)) | (1L << (MASTER_SSL_CRL - 343)) | (1L << (MASTER_SSL_CRLPATH - 343)) | (1L << (MASTER_SSL_KEY - 343)) | (1L << (MASTER_TLS_VERSION - 343)) | (1L << (MASTER_USER - 343)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 343)) | (1L << (MAX_QUERIES_PER_HOUR - 343)) | (1L << (MAX_ROWS - 343)) | (1L << (MAX_SIZE - 343)) | (1L << (MAX_UPDATES_PER_HOUR - 343)) | (1L << (MAX_USER_CONNECTIONS - 343)) | (1L << (MERGE - 343)) | (1L << (MID - 343)) | (1L << (MIGRATE - 343)) | (1L << (MIN_ROWS - 343)) | (1L << (MODIFY - 343)) | (1L << (MUTEX - 343)) | (1L << (MYSQL - 343)))) != 0) || ((((_la - 407)) & ~0x3f) == 0 && ((1L << (_la - 407)) & ((1L << (NAME - 407)) | (1L << (NAMES - 407)) | (1L << (NCHAR - 407)) | (1L << (NEVER - 407)) | (1L << (NO - 407)) | (1L << (NODEGROUP - 407)) | (1L << (NONE - 407)) | (1L << (OFFLINE - 407)) | (1L << (OFFSET - 407)) | (1L << (OJ - 407)) | (1L << (OLD_PASSWORD - 407)) | (1L << (ONE - 407)) | (1L << (ONLINE - 407)) | (1L << (ONLY - 407)) | (1L << (OPEN - 407)) | (1L << (OPTIMIZER_COSTS - 407)) | (1L << (OPTIONS - 407)) | (1L << (OWNER - 407)) | (1L << (PACK_KEYS - 407)) | (1L << (PAGE - 407)) | (1L << (PARSER - 407)) | (1L << (PARTIAL - 407)) | (1L << (PARTITIONING - 407)) | (1L << (PARTITIONS - 407)) | (1L << (PASSWORD - 407)) | (1L << (PHASE - 407)) | (1L << (PLUGIN_DIR - 407)) | (1L << (PLUGINS - 407)) | (1L << (PORT - 407)) | (1L << (PRECEDES - 407)) | (1L << (PREPARE - 407)) | (1L << (PRESERVE - 407)) | (1L << (PREV - 407)) | (1L << (PROCESSLIST - 407)) | (1L << (PROFILE - 407)) | (1L << (PROFILES - 407)) | (1L << (PROXY - 407)) | (1L << (QUERY - 407)) | (1L << (QUICK - 407)) | (1L << (REBUILD - 407)) | (1L << (RECOVER - 407)) | (1L << (REDO_BUFFER_SIZE - 407)) | (1L << (REDUNDANT - 407)) | (1L << (RELAY_LOG_FILE - 407)) | (1L << (RELAY_LOG_POS - 407)) | (1L << (RELAYLOG - 407)) | (1L << (REMOVE - 407)) | (1L << (REORGANIZE - 407)) | (1L << (REPAIR - 407)) | (1L << (REPLICATE_DO_DB - 407)) | (1L << (REPLICATE_DO_TABLE - 407)) | (1L << (REPLICATE_IGNORE_DB - 407)) | (1L << (REPLICATE_IGNORE_TABLE - 407)) | (1L << (REPLICATE_REWRITE_DB - 407)) | (1L << (REPLICATE_WILD_DO_TABLE - 407)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 407)) | (1L << (REPLICATION - 407)) | (1L << (RESUME - 407)) | (1L << (RETURNS - 407)) | (1L << (ROLLBACK - 407)))) != 0) || ((((_la - 471)) & ~0x3f) == 0 && ((1L << (_la - 471)) & ((1L << (ROLLUP - 471)) | (1L << (ROTATE - 471)) | (1L << (ROW - 471)) | (1L << (ROWS - 471)) | (1L << (ROW_FORMAT - 471)) | (1L << (SAVEPOINT - 471)) | (1L << (SCHEDULE - 471)) | (1L << (SECURITY - 471)) | (1L << (SERVER - 471)) | (1L << (SESSION - 471)) | (1L << (SHARE - 471)) | (1L << (SHARED - 471)) | (1L << (SIGNED - 471)) | (1L << (SIMPLE - 471)) | (1L << (SLAVE - 471)) | (1L << (SNAPSHOT - 471)) | (1L << (SOCKET - 471)) | (1L << (SOME - 471)) | (1L << (SOUNDS - 471)) | (1L << (SOURCE - 471)) | (1L << (SQL_AFTER_GTIDS - 471)) | (1L << (SQL_AFTER_MTS_GAPS - 471)) | (1L << (SQL_BEFORE_GTIDS - 471)) | (1L << (SQL_BUFFER_RESULT - 471)) | (1L << (SQL_CACHE - 471)) | (1L << (SQL_NO_CACHE - 471)) | (1L << (SQL_THREAD - 471)) | (1L << (START - 471)) | (1L << (STARTS - 471)) | (1L << (STATS_AUTO_RECALC - 471)) | (1L << (STATS_PERSISTENT - 471)) | (1L << (STATS_SAMPLE_PAGES - 471)) | (1L << (STATUS - 471)) | (1L << (STOP - 471)) | (1L << (STORAGE - 471)) | (1L << (STRING - 471)) | (1L << (SUBJECT - 471)) | (1L << (SUBPARTITION - 471)) | (1L << (SUBPARTITIONS - 471)) | (1L << (SUSPEND - 471)) | (1L << (SWAPS - 471)) | (1L << (SWITCHES - 471)) | (1L << (TABLESPACE - 471)) | (1L << (TEMPORARY - 471)) | (1L << (TEMPTABLE - 471)) | (1L << (THAN - 471)) | (1L << (TRANSACTION - 471)) | (1L << (TRUNCATE - 471)) | (1L << (UNDEFINED - 471)) | (1L << (UNDOFILE - 471)) | (1L << (UNDO_BUFFER_SIZE - 471)) | (1L << (UNKNOWN - 471)) | (1L << (UPGRADE - 471)) | (1L << (USER - 471)) | (1L << (VALIDATION - 471)) | (1L << (VALUE - 471)))) != 0) || ((((_la - 535)) & ~0x3f) == 0 && ((1L << (_la - 535)) & ((1L << (VARIABLES - 535)) | (1L << (VIEW - 535)) | (1L << (WAIT - 535)) | (1L << (WARNINGS - 535)) | (1L << (WITHOUT - 535)) | (1L << (WORK - 535)) | (1L << (WRAPPER - 535)) | (1L << (X509 - 535)) | (1L << (XA - 535)) | (1L << (XML - 535)) | (1L << (QUARTER - 535)) | (1L << (MONTH - 535)) | (1L << (DAY - 535)) | (1L << (HOUR - 535)) | (1L << (MINUTE - 535)) | (1L << (WEEK - 535)) | (1L << (SECOND - 535)) | (1L << (MICROSECOND - 535)) | (1L << (TABLES - 535)) | (1L << (ROUTINE - 535)) | (1L << (EXECUTE - 535)) | (1L << (FILE - 535)) | (1L << (PROCESS - 535)) | (1L << (RELOAD - 535)) | (1L << (SHUTDOWN - 535)) | (1L << (SUPER - 535)) | (1L << (PRIVILEGES - 535)) | (1L << (ARMSCII8 - 535)) | (1L << (ASCII - 535)) | (1L << (BIG5 - 535)) | (1L << (CP1250 - 535)) | (1L << (CP1251 - 535)) | (1L << (CP1256 - 535)) | (1L << (CP1257 - 535)) | (1L << (CP850 - 535)) | (1L << (CP852 - 535)) | (1L << (CP866 - 535)) | (1L << (CP932 - 535)) | (1L << (DEC8 - 535)) | (1L << (EUCJPMS - 535)) | (1L << (EUCKR - 535)) | (1L << (GB2312 - 535)) | (1L << (GBK - 535)) | (1L << (GEOSTD8 - 535)) | (1L << (GREEK - 535)) | (1L << (HEBREW - 535)) | (1L << (HP8 - 535)) | (1L << (KEYBCS2 - 535)) | (1L << (KOI8R - 535)) | (1L << (KOI8U - 535)) | (1L << (LATIN1 - 535)) | (1L << (LATIN2 - 535)) | (1L << (LATIN5 - 535)) | (1L << (LATIN7 - 535)) | (1L << (MACCE - 535)) | (1L << (MACROMAN - 535)) | (1L << (SJIS - 535)) | (1L << (SWE7 - 535)) | (1L << (TIS620 - 535)))) != 0) || ((((_la - 599)) & ~0x3f) == 0 && ((1L << (_la - 599)) & ((1L << (UCS2 - 599)) | (1L << (UJIS - 599)) | (1L << (UTF16 - 599)) | (1L << (UTF16LE - 599)) | (1L << (UTF32 - 599)) | (1L << (UTF8 - 599)) | (1L << (UTF8MB3 - 599)) | (1L << (UTF8MB4 - 599)) | (1L << (ARCHIVE - 599)) | (1L << (BLACKHOLE - 599)) | (1L << (CSV - 599)) | (1L << (FEDERATED - 599)) | (1L << (INNODB - 599)) | (1L << (MEMORY - 599)) | (1L << (MRG_MYISAM - 599)) | (1L << (MYISAM - 599)) | (1L << (NDB - 599)) | (1L << (NDBCLUSTER - 599)) | (1L << (PERFOMANCE_SCHEMA - 599)) | (1L << (REPEATABLE - 599)) | (1L << (COMMITTED - 599)) | (1L << (UNCOMMITTED - 599)) | (1L << (SERIALIZABLE - 599)) | (1L << (GEOMETRYCOLLECTION - 599)) | (1L << (LINESTRING - 599)) | (1L << (MULTILINESTRING - 599)) | (1L << (MULTIPOINT - 599)) | (1L << (MULTIPOLYGON - 599)) | (1L << (POINT - 599)) | (1L << (POLYGON - 599)) | (1L << (ABS - 599)) | (1L << (ACOS - 599)) | (1L << (ADDDATE - 599)) | (1L << (ADDTIME - 599)) | (1L << (AES_DECRYPT - 599)) | (1L << (AES_ENCRYPT - 599)) | (1L << (AREA - 599)) | (1L << (ASBINARY - 599)) | (1L << (ASIN - 599)) | (1L << (ASTEXT - 599)) | (1L << (ASWKB - 599)) | (1L << (ASWKT - 599)) | (1L << (ASYMMETRIC_DECRYPT - 599)) | (1L << (ASYMMETRIC_DERIVE - 599)) | (1L << (ASYMMETRIC_ENCRYPT - 599)) | (1L << (ASYMMETRIC_SIGN - 599)) | (1L << (ASYMMETRIC_VERIFY - 599)) | (1L << (ATAN - 599)) | (1L << (ATAN2 - 599)) | (1L << (BENCHMARK - 599)) | (1L << (BIN - 599)) | (1L << (BIT_COUNT - 599)) | (1L << (BIT_LENGTH - 599)) | (1L << (BUFFER - 599)) | (1L << (CEIL - 599)) | (1L << (CEILING - 599)) | (1L << (CENTROID - 599)) | (1L << (CHARACTER_LENGTH - 599)) | (1L << (CHARSET - 599)) | (1L << (CHAR_LENGTH - 599)) | (1L << (COERCIBILITY - 599)) | (1L << (COLLATION - 599)) | (1L << (COMPRESS - 599)) | (1L << (CONCAT - 599)))) != 0) || ((((_la - 663)) & ~0x3f) == 0 && ((1L << (_la - 663)) & ((1L << (CONCAT_WS - 663)) | (1L << (CONNECTION_ID - 663)) | (1L << (CONV - 663)) | (1L << (CONVERT_TZ - 663)) | (1L << (COS - 663)) | (1L << (COT - 663)) | (1L << (CRC32 - 663)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 663)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 663)) | (1L << (CREATE_DH_PARAMETERS - 663)) | (1L << (CREATE_DIGEST - 663)) | (1L << (CROSSES - 663)) | (1L << (DATEDIFF - 663)) | (1L << (DATE_FORMAT - 663)) | (1L << (DAYNAME - 663)) | (1L << (DAYOFMONTH - 663)) | (1L << (DAYOFWEEK - 663)) | (1L << (DAYOFYEAR - 663)) | (1L << (DECODE - 663)) | (1L << (DEGREES - 663)) | (1L << (DES_DECRYPT - 663)) | (1L << (DES_ENCRYPT - 663)) | (1L << (DIMENSION - 663)) | (1L << (DISJOINT - 663)) | (1L << (ELT - 663)) | (1L << (ENCODE - 663)) | (1L << (ENCRYPT - 663)) | (1L << (ENDPOINT - 663)) | (1L << (ENVELOPE - 663)) | (1L << (EQUALS - 663)) | (1L << (EXP - 663)) | (1L << (EXPORT_SET - 663)) | (1L << (EXTERIORRING - 663)) | (1L << (EXTRACTVALUE - 663)) | (1L << (FIELD - 663)) | (1L << (FIND_IN_SET - 663)) | (1L << (FLOOR - 663)) | (1L << (FORMAT - 663)) | (1L << (FOUND_ROWS - 663)) | (1L << (FROM_BASE64 - 663)) | (1L << (FROM_DAYS - 663)) | (1L << (FROM_UNIXTIME - 663)) | (1L << (GEOMCOLLFROMTEXT - 663)) | (1L << (GEOMCOLLFROMWKB - 663)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 663)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 663)) | (1L << (GEOMETRYFROMTEXT - 663)) | (1L << (GEOMETRYFROMWKB - 663)) | (1L << (GEOMETRYN - 663)) | (1L << (GEOMETRYTYPE - 663)) | (1L << (GEOMFROMTEXT - 663)) | (1L << (GEOMFROMWKB - 663)) | (1L << (GET_FORMAT - 663)) | (1L << (GET_LOCK - 663)) | (1L << (GLENGTH - 663)) | (1L << (GREATEST - 663)) | (1L << (GTID_SUBSET - 663)) | (1L << (GTID_SUBTRACT - 663)) | (1L << (HEX - 663)) | (1L << (IFNULL - 663)) | (1L << (INET6_ATON - 663)) | (1L << (INET6_NTOA - 663)) | (1L << (INET_ATON - 663)) | (1L << (INET_NTOA - 663)))) != 0) || ((((_la - 727)) & ~0x3f) == 0 && ((1L << (_la - 727)) & ((1L << (INSTR - 727)) | (1L << (INTERIORRINGN - 727)) | (1L << (INTERSECTS - 727)) | (1L << (ISCLOSED - 727)) | (1L << (ISEMPTY - 727)) | (1L << (ISNULL - 727)) | (1L << (ISSIMPLE - 727)) | (1L << (IS_FREE_LOCK - 727)) | (1L << (IS_IPV4 - 727)) | (1L << (IS_IPV4_COMPAT - 727)) | (1L << (IS_IPV4_MAPPED - 727)) | (1L << (IS_IPV6 - 727)) | (1L << (IS_USED_LOCK - 727)) | (1L << (LAST_INSERT_ID - 727)) | (1L << (LCASE - 727)) | (1L << (LEAST - 727)) | (1L << (LENGTH - 727)) | (1L << (LINEFROMTEXT - 727)) | (1L << (LINEFROMWKB - 727)) | (1L << (LINESTRINGFROMTEXT - 727)) | (1L << (LINESTRINGFROMWKB - 727)) | (1L << (LN - 727)) | (1L << (LOAD_FILE - 727)) | (1L << (LOCATE - 727)) | (1L << (LOG - 727)) | (1L << (LOG10 - 727)) | (1L << (LOG2 - 727)) | (1L << (LOWER - 727)) | (1L << (LPAD - 727)) | (1L << (LTRIM - 727)) | (1L << (MAKEDATE - 727)) | (1L << (MAKETIME - 727)) | (1L << (MAKE_SET - 727)) | (1L << (MASTER_POS_WAIT - 727)) | (1L << (MBRCONTAINS - 727)) | (1L << (MBRDISJOINT - 727)) | (1L << (MBREQUAL - 727)) | (1L << (MBRINTERSECTS - 727)) | (1L << (MBROVERLAPS - 727)) | (1L << (MBRTOUCHES - 727)) | (1L << (MBRWITHIN - 727)) | (1L << (MD5 - 727)) | (1L << (MLINEFROMTEXT - 727)) | (1L << (MLINEFROMWKB - 727)) | (1L << (MONTHNAME - 727)) | (1L << (MPOINTFROMTEXT - 727)) | (1L << (MPOINTFROMWKB - 727)) | (1L << (MPOLYFROMTEXT - 727)) | (1L << (MPOLYFROMWKB - 727)) | (1L << (MULTILINESTRINGFROMTEXT - 727)) | (1L << (MULTILINESTRINGFROMWKB - 727)) | (1L << (MULTIPOINTFROMTEXT - 727)) | (1L << (MULTIPOINTFROMWKB - 727)) | (1L << (MULTIPOLYGONFROMTEXT - 727)) | (1L << (MULTIPOLYGONFROMWKB - 727)) | (1L << (NAME_CONST - 727)) | (1L << (NULLIF - 727)) | (1L << (NUMGEOMETRIES - 727)) | (1L << (NUMINTERIORRINGS - 727)) | (1L << (NUMPOINTS - 727)) | (1L << (OCT - 727)) | (1L << (OCTET_LENGTH - 727)) | (1L << (ORD - 727)) | (1L << (OVERLAPS - 727)))) != 0) || ((((_la - 791)) & ~0x3f) == 0 && ((1L << (_la - 791)) & ((1L << (PERIOD_ADD - 791)) | (1L << (PERIOD_DIFF - 791)) | (1L << (PI - 791)) | (1L << (POINTFROMTEXT - 791)) | (1L << (POINTFROMWKB - 791)) | (1L << (POINTN - 791)) | (1L << (POLYFROMTEXT - 791)) | (1L << (POLYFROMWKB - 791)) | (1L << (POLYGONFROMTEXT - 791)) | (1L << (POLYGONFROMWKB - 791)) | (1L << (POW - 791)) | (1L << (POWER - 791)) | (1L << (QUOTE - 791)) | (1L << (RADIANS - 791)) | (1L << (RAND - 791)) | (1L << (RANDOM_BYTES - 791)) | (1L << (RELEASE_LOCK - 791)) | (1L << (REVERSE - 791)) | (1L << (ROUND - 791)) | (1L << (ROW_COUNT - 791)) | (1L << (RPAD - 791)) | (1L << (RTRIM - 791)) | (1L << (SEC_TO_TIME - 791)) | (1L << (SESSION_USER - 791)) | (1L << (SHA - 791)) | (1L << (SHA1 - 791)) | (1L << (SHA2 - 791)) | (1L << (SIGN - 791)) | (1L << (SIN - 791)) | (1L << (SLEEP - 791)) | (1L << (SOUNDEX - 791)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 791)) | (1L << (SQRT - 791)) | (1L << (SRID - 791)) | (1L << (STARTPOINT - 791)) | (1L << (STRCMP - 791)) | (1L << (STR_TO_DATE - 791)) | (1L << (ST_AREA - 791)) | (1L << (ST_ASBINARY - 791)) | (1L << (ST_ASTEXT - 791)) | (1L << (ST_ASWKB - 791)) | (1L << (ST_ASWKT - 791)) | (1L << (ST_BUFFER - 791)) | (1L << (ST_CENTROID - 791)) | (1L << (ST_CONTAINS - 791)) | (1L << (ST_CROSSES - 791)) | (1L << (ST_DIFFERENCE - 791)) | (1L << (ST_DIMENSION - 791)) | (1L << (ST_DISJOINT - 791)) | (1L << (ST_DISTANCE - 791)) | (1L << (ST_ENDPOINT - 791)) | (1L << (ST_ENVELOPE - 791)) | (1L << (ST_EQUALS - 791)) | (1L << (ST_EXTERIORRING - 791)) | (1L << (ST_GEOMCOLLFROMTEXT - 791)) | (1L << (ST_GEOMCOLLFROMTXT - 791)) | (1L << (ST_GEOMCOLLFROMWKB - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 791)) | (1L << (ST_GEOMETRYFROMTEXT - 791)) | (1L << (ST_GEOMETRYFROMWKB - 791)) | (1L << (ST_GEOMETRYN - 791)) | (1L << (ST_GEOMETRYTYPE - 791)) | (1L << (ST_GEOMFROMTEXT - 791)))) != 0) || ((((_la - 855)) & ~0x3f) == 0 && ((1L << (_la - 855)) & ((1L << (ST_GEOMFROMWKB - 855)) | (1L << (ST_INTERIORRINGN - 855)) | (1L << (ST_INTERSECTION - 855)) | (1L << (ST_INTERSECTS - 855)) | (1L << (ST_ISCLOSED - 855)) | (1L << (ST_ISEMPTY - 855)) | (1L << (ST_ISSIMPLE - 855)) | (1L << (ST_LINEFROMTEXT - 855)) | (1L << (ST_LINEFROMWKB - 855)) | (1L << (ST_LINESTRINGFROMTEXT - 855)) | (1L << (ST_LINESTRINGFROMWKB - 855)) | (1L << (ST_NUMGEOMETRIES - 855)) | (1L << (ST_NUMINTERIORRING - 855)) | (1L << (ST_NUMINTERIORRINGS - 855)) | (1L << (ST_NUMPOINTS - 855)) | (1L << (ST_OVERLAPS - 855)) | (1L << (ST_POINTFROMTEXT - 855)) | (1L << (ST_POINTFROMWKB - 855)) | (1L << (ST_POINTN - 855)) | (1L << (ST_POLYFROMTEXT - 855)) | (1L << (ST_POLYFROMWKB - 855)) | (1L << (ST_POLYGONFROMTEXT - 855)) | (1L << (ST_POLYGONFROMWKB - 855)) | (1L << (ST_SRID - 855)) | (1L << (ST_STARTPOINT - 855)) | (1L << (ST_SYMDIFFERENCE - 855)) | (1L << (ST_TOUCHES - 855)) | (1L << (ST_UNION - 855)) | (1L << (ST_WITHIN - 855)) | (1L << (ST_X - 855)) | (1L << (ST_Y - 855)) | (1L << (SUBDATE - 855)) | (1L << (SUBSTRING_INDEX - 855)) | (1L << (SUBTIME - 855)) | (1L << (SYSTEM_USER - 855)) | (1L << (TAN - 855)) | (1L << (TIMEDIFF - 855)) | (1L << (TIMESTAMPADD - 855)) | (1L << (TIMESTAMPDIFF - 855)) | (1L << (TIME_FORMAT - 855)) | (1L << (TIME_TO_SEC - 855)) | (1L << (TOUCHES - 855)) | (1L << (TO_BASE64 - 855)) | (1L << (TO_DAYS - 855)) | (1L << (TO_SECONDS - 855)) | (1L << (UCASE - 855)) | (1L << (UNCOMPRESS - 855)) | (1L << (UNCOMPRESSED_LENGTH - 855)) | (1L << (UNHEX - 855)) | (1L << (UNIX_TIMESTAMP - 855)) | (1L << (UPDATEXML - 855)) | (1L << (UPPER - 855)) | (1L << (UUID - 855)) | (1L << (UUID_SHORT - 855)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 855)) | (1L << (VERSION - 855)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 855)) | (1L << (WEEKDAY - 855)) | (1L << (WEEKOFYEAR - 855)) | (1L << (WEIGHT_STRING - 855)) | (1L << (WITHIN - 855)) | (1L << (YEARWEEK - 855)) | (1L << (Y_FUNCTION - 855)) | (1L << (X_FUNCTION - 855)))) != 0) || ((((_la - 931)) & ~0x3f) == 0 && ((1L << (_la - 931)) & ((1L << (PLUS - 931)) | (1L << (MINUS - 931)) | (1L << (EXCLAMATION_SYMBOL - 931)) | (1L << (BIT_NOT_OP - 931)) | (1L << (LR_BRACKET - 931)) | (1L << (ZERO_DECIMAL - 931)) | (1L << (ONE_DECIMAL - 931)) | (1L << (TWO_DECIMAL - 931)) | (1L << (CHARSET_REVERSE_QOUTE_STRING - 931)) | (1L << (START_NATIONAL_STRING_LITERAL - 931)) | (1L << (STRING_LITERAL - 931)) | (1L << (DECIMAL_LITERAL - 931)) | (1L << (HEXADECIMAL_LITERAL - 931)) | (1L << (REAL_LITERAL - 931)) | (1L << (NULL_SPEC_LITERAL - 931)) | (1L << (BIT_STRING - 931)) | (1L << (STRING_CHARSET_NAME - 931)) | (1L << (ID - 931)) | (1L << (REVERSE_QUOTE_ID - 931)) | (1L << (LOCAL_ID - 931)) | (1L << (GLOBAL_ID - 931)))) != 0)) { { setState(5495); functionArgs(); @@ -51748,7 +51792,7 @@ public final FunctionCallContext functionCall() throws RecognitionException { setState(5503); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CASE) | (1L << CAST) | (1L << CONVERT) | (1L << CURRENT_USER) | (1L << EXISTS) | (1L << FALSE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (IF - 64)) | (1L << (INSERT - 64)) | (1L << (INTERVAL - 64)) | (1L << (LEFT - 64)) | (1L << (NOT - 64)) | (1L << (NULL_LITERAL - 64)) | (1L << (REPLACE - 64)) | (1L << (RIGHT - 64)))) != 0) || ((((_la - 151)) & ~0x3f) == 0 && ((1L << (_la - 151)) & ((1L << (TRUE - 151)) | (1L << (VALUES - 151)) | (1L << (DATE - 151)) | (1L << (TIME - 151)) | (1L << (TIMESTAMP - 151)) | (1L << (DATETIME - 151)) | (1L << (YEAR - 151)) | (1L << (CHAR - 151)) | (1L << (BINARY - 151)) | (1L << (TEXT - 151)) | (1L << (ENUM - 151)) | (1L << (AVG - 151)) | (1L << (BIT_AND - 151)) | (1L << (BIT_OR - 151)) | (1L << (BIT_XOR - 151)) | (1L << (COUNT - 151)) | (1L << (GROUP_CONCAT - 151)))) != 0) || ((((_la - 215)) & ~0x3f) == 0 && ((1L << (_la - 215)) & ((1L << (MAX - 215)) | (1L << (MIN - 215)) | (1L << (STD - 215)) | (1L << (STDDEV - 215)) | (1L << (STDDEV_POP - 215)) | (1L << (STDDEV_SAMP - 215)) | (1L << (SUM - 215)) | (1L << (VAR_POP - 215)) | (1L << (VAR_SAMP - 215)) | (1L << (VARIANCE - 215)) | (1L << (CURRENT_DATE - 215)) | (1L << (CURRENT_TIME - 215)) | (1L << (CURRENT_TIMESTAMP - 215)) | (1L << (LOCALTIME - 215)) | (1L << (CURDATE - 215)) | (1L << (CURTIME - 215)) | (1L << (DATE_ADD - 215)) | (1L << (DATE_SUB - 215)) | (1L << (EXTRACT - 215)) | (1L << (LOCALTIMESTAMP - 215)) | (1L << (NOW - 215)) | (1L << (POSITION - 215)) | (1L << (SUBSTR - 215)) | (1L << (SUBSTRING - 215)) | (1L << (SYSDATE - 215)) | (1L << (TRIM - 215)) | (1L << (UTC_DATE - 215)) | (1L << (UTC_TIME - 215)) | (1L << (UTC_TIMESTAMP - 215)) | (1L << (ACCOUNT - 215)) | (1L << (ACTION - 215)) | (1L << (AFTER - 215)) | (1L << (AGGREGATE - 215)) | (1L << (ALGORITHM - 215)) | (1L << (ANY - 215)) | (1L << (AT - 215)) | (1L << (AUTHORS - 215)) | (1L << (AUTOCOMMIT - 215)) | (1L << (AUTOEXTEND_SIZE - 215)) | (1L << (AUTO_INCREMENT - 215)) | (1L << (AVG_ROW_LENGTH - 215)) | (1L << (BEGIN - 215)) | (1L << (BINLOG - 215)) | (1L << (BIT - 215)) | (1L << (BLOCK - 215)) | (1L << (BOOL - 215)) | (1L << (BOOLEAN - 215)) | (1L << (BTREE - 215)) | (1L << (CASCADED - 215)) | (1L << (CHAIN - 215)) | (1L << (CHANNEL - 215)) | (1L << (CHECKSUM - 215)) | (1L << (CIPHER - 215)) | (1L << (CLIENT - 215)) | (1L << (COALESCE - 215)) | (1L << (CODE - 215)) | (1L << (COLUMNS - 215)) | (1L << (COLUMN_FORMAT - 215)) | (1L << (COMMENT - 215)) | (1L << (COMMIT - 215)) | (1L << (COMPACT - 215)))) != 0) || ((((_la - 279)) & ~0x3f) == 0 && ((1L << (_la - 279)) & ((1L << (COMPLETION - 279)) | (1L << (COMPRESSED - 279)) | (1L << (COMPRESSION - 279)) | (1L << (CONCURRENT - 279)) | (1L << (CONNECTION - 279)) | (1L << (CONSISTENT - 279)) | (1L << (CONTAINS - 279)) | (1L << (CONTEXT - 279)) | (1L << (CONTRIBUTORS - 279)) | (1L << (COPY - 279)) | (1L << (CPU - 279)) | (1L << (DATA - 279)) | (1L << (DATAFILE - 279)) | (1L << (DEALLOCATE - 279)) | (1L << (DEFAULT_AUTH - 279)) | (1L << (DEFINER - 279)) | (1L << (DELAY_KEY_WRITE - 279)) | (1L << (DIRECTORY - 279)) | (1L << (DISABLE - 279)) | (1L << (DISCARD - 279)) | (1L << (DISK - 279)) | (1L << (DO - 279)) | (1L << (DUMPFILE - 279)) | (1L << (DUPLICATE - 279)) | (1L << (DYNAMIC - 279)) | (1L << (ENABLE - 279)) | (1L << (ENCRYPTION - 279)) | (1L << (ENDS - 279)) | (1L << (ENGINE - 279)) | (1L << (ENGINES - 279)) | (1L << (ERROR - 279)) | (1L << (ERRORS - 279)) | (1L << (ESCAPE - 279)) | (1L << (EVEN - 279)) | (1L << (EVENT - 279)) | (1L << (EVENTS - 279)) | (1L << (EVERY - 279)) | (1L << (EXCHANGE - 279)) | (1L << (EXCLUSIVE - 279)) | (1L << (EXPIRE - 279)) | (1L << (EXTENT_SIZE - 279)) | (1L << (FAULTS - 279)) | (1L << (FIELDS - 279)) | (1L << (FILE_BLOCK_SIZE - 279)) | (1L << (FILTER - 279)) | (1L << (FIRST - 279)) | (1L << (FIXED - 279)) | (1L << (FOLLOWS - 279)) | (1L << (FULL - 279)) | (1L << (FUNCTION - 279)) | (1L << (GLOBAL - 279)) | (1L << (GRANTS - 279)) | (1L << (GROUP_REPLICATION - 279)) | (1L << (HASH - 279)))) != 0) || ((((_la - 343)) & ~0x3f) == 0 && ((1L << (_la - 343)) & ((1L << (HOST - 343)) | (1L << (IDENTIFIED - 343)) | (1L << (IGNORE_SERVER_IDS - 343)) | (1L << (IMPORT - 343)) | (1L << (INDEXES - 343)) | (1L << (INITIAL_SIZE - 343)) | (1L << (INPLACE - 343)) | (1L << (INSERT_METHOD - 343)) | (1L << (INSTANCE - 343)) | (1L << (INVOKER - 343)) | (1L << (IO - 343)) | (1L << (IO_THREAD - 343)) | (1L << (IPC - 343)) | (1L << (ISOLATION - 343)) | (1L << (ISSUER - 343)) | (1L << (KEY_BLOCK_SIZE - 343)) | (1L << (LANGUAGE - 343)) | (1L << (LAST - 343)) | (1L << (LEAVES - 343)) | (1L << (LESS - 343)) | (1L << (LEVEL - 343)) | (1L << (LIST - 343)) | (1L << (LOCAL - 343)) | (1L << (LOGFILE - 343)) | (1L << (LOGS - 343)) | (1L << (MASTER - 343)) | (1L << (MASTER_AUTO_POSITION - 343)) | (1L << (MASTER_CONNECT_RETRY - 343)) | (1L << (MASTER_DELAY - 343)) | (1L << (MASTER_HEARTBEAT_PERIOD - 343)) | (1L << (MASTER_HOST - 343)) | (1L << (MASTER_LOG_FILE - 343)) | (1L << (MASTER_LOG_POS - 343)) | (1L << (MASTER_PASSWORD - 343)) | (1L << (MASTER_PORT - 343)) | (1L << (MASTER_RETRY_COUNT - 343)) | (1L << (MASTER_SSL - 343)) | (1L << (MASTER_SSL_CA - 343)) | (1L << (MASTER_SSL_CAPATH - 343)) | (1L << (MASTER_SSL_CERT - 343)) | (1L << (MASTER_SSL_CIPHER - 343)) | (1L << (MASTER_SSL_CRL - 343)) | (1L << (MASTER_SSL_CRLPATH - 343)) | (1L << (MASTER_SSL_KEY - 343)) | (1L << (MASTER_TLS_VERSION - 343)) | (1L << (MASTER_USER - 343)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 343)) | (1L << (MAX_QUERIES_PER_HOUR - 343)) | (1L << (MAX_ROWS - 343)) | (1L << (MAX_SIZE - 343)) | (1L << (MAX_UPDATES_PER_HOUR - 343)) | (1L << (MAX_USER_CONNECTIONS - 343)) | (1L << (MERGE - 343)) | (1L << (MID - 343)) | (1L << (MIGRATE - 343)) | (1L << (MIN_ROWS - 343)) | (1L << (MODIFY - 343)) | (1L << (MUTEX - 343)) | (1L << (MYSQL - 343)))) != 0) || ((((_la - 407)) & ~0x3f) == 0 && ((1L << (_la - 407)) & ((1L << (NAME - 407)) | (1L << (NAMES - 407)) | (1L << (NCHAR - 407)) | (1L << (NEVER - 407)) | (1L << (NO - 407)) | (1L << (NODEGROUP - 407)) | (1L << (NONE - 407)) | (1L << (OFFLINE - 407)) | (1L << (OFFSET - 407)) | (1L << (OJ - 407)) | (1L << (OLD_PASSWORD - 407)) | (1L << (ONE - 407)) | (1L << (ONLINE - 407)) | (1L << (ONLY - 407)) | (1L << (OPTIMIZER_COSTS - 407)) | (1L << (OPTIONS - 407)) | (1L << (OWNER - 407)) | (1L << (PACK_KEYS - 407)) | (1L << (PAGE - 407)) | (1L << (PARSER - 407)) | (1L << (PARTIAL - 407)) | (1L << (PARTITIONING - 407)) | (1L << (PARTITIONS - 407)) | (1L << (PASSWORD - 407)) | (1L << (PHASE - 407)) | (1L << (PLUGIN_DIR - 407)) | (1L << (PLUGINS - 407)) | (1L << (PORT - 407)) | (1L << (PRECEDES - 407)) | (1L << (PREPARE - 407)) | (1L << (PRESERVE - 407)) | (1L << (PREV - 407)) | (1L << (PROCESSLIST - 407)) | (1L << (PROFILE - 407)) | (1L << (PROFILES - 407)) | (1L << (PROXY - 407)) | (1L << (QUERY - 407)) | (1L << (QUICK - 407)) | (1L << (REBUILD - 407)) | (1L << (RECOVER - 407)) | (1L << (REDO_BUFFER_SIZE - 407)) | (1L << (REDUNDANT - 407)) | (1L << (RELAY_LOG_FILE - 407)) | (1L << (RELAY_LOG_POS - 407)) | (1L << (RELAYLOG - 407)) | (1L << (REMOVE - 407)) | (1L << (REORGANIZE - 407)) | (1L << (REPAIR - 407)) | (1L << (REPLICATE_DO_DB - 407)) | (1L << (REPLICATE_DO_TABLE - 407)) | (1L << (REPLICATE_IGNORE_DB - 407)) | (1L << (REPLICATE_IGNORE_TABLE - 407)) | (1L << (REPLICATE_REWRITE_DB - 407)) | (1L << (REPLICATE_WILD_DO_TABLE - 407)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 407)) | (1L << (REPLICATION - 407)) | (1L << (RESUME - 407)) | (1L << (RETURNS - 407)) | (1L << (ROLLBACK - 407)))) != 0) || ((((_la - 471)) & ~0x3f) == 0 && ((1L << (_la - 471)) & ((1L << (ROLLUP - 471)) | (1L << (ROTATE - 471)) | (1L << (ROW - 471)) | (1L << (ROWS - 471)) | (1L << (ROW_FORMAT - 471)) | (1L << (SAVEPOINT - 471)) | (1L << (SCHEDULE - 471)) | (1L << (SECURITY - 471)) | (1L << (SERVER - 471)) | (1L << (SESSION - 471)) | (1L << (SHARE - 471)) | (1L << (SHARED - 471)) | (1L << (SIGNED - 471)) | (1L << (SIMPLE - 471)) | (1L << (SLAVE - 471)) | (1L << (SNAPSHOT - 471)) | (1L << (SOCKET - 471)) | (1L << (SOME - 471)) | (1L << (SOUNDS - 471)) | (1L << (SOURCE - 471)) | (1L << (SQL_AFTER_GTIDS - 471)) | (1L << (SQL_AFTER_MTS_GAPS - 471)) | (1L << (SQL_BEFORE_GTIDS - 471)) | (1L << (SQL_BUFFER_RESULT - 471)) | (1L << (SQL_CACHE - 471)) | (1L << (SQL_NO_CACHE - 471)) | (1L << (SQL_THREAD - 471)) | (1L << (START - 471)) | (1L << (STARTS - 471)) | (1L << (STATS_AUTO_RECALC - 471)) | (1L << (STATS_PERSISTENT - 471)) | (1L << (STATS_SAMPLE_PAGES - 471)) | (1L << (STATUS - 471)) | (1L << (STOP - 471)) | (1L << (STORAGE - 471)) | (1L << (STRING - 471)) | (1L << (SUBJECT - 471)) | (1L << (SUBPARTITION - 471)) | (1L << (SUBPARTITIONS - 471)) | (1L << (SUSPEND - 471)) | (1L << (SWAPS - 471)) | (1L << (SWITCHES - 471)) | (1L << (TABLESPACE - 471)) | (1L << (TEMPORARY - 471)) | (1L << (TEMPTABLE - 471)) | (1L << (THAN - 471)) | (1L << (TRANSACTION - 471)) | (1L << (TRUNCATE - 471)) | (1L << (UNDEFINED - 471)) | (1L << (UNDOFILE - 471)) | (1L << (UNDO_BUFFER_SIZE - 471)) | (1L << (UNKNOWN - 471)) | (1L << (UPGRADE - 471)) | (1L << (USER - 471)) | (1L << (VALIDATION - 471)) | (1L << (VALUE - 471)))) != 0) || ((((_la - 535)) & ~0x3f) == 0 && ((1L << (_la - 535)) & ((1L << (VARIABLES - 535)) | (1L << (VIEW - 535)) | (1L << (WAIT - 535)) | (1L << (WARNINGS - 535)) | (1L << (WITHOUT - 535)) | (1L << (WORK - 535)) | (1L << (WRAPPER - 535)) | (1L << (X509 - 535)) | (1L << (XA - 535)) | (1L << (XML - 535)) | (1L << (QUARTER - 535)) | (1L << (MONTH - 535)) | (1L << (DAY - 535)) | (1L << (HOUR - 535)) | (1L << (MINUTE - 535)) | (1L << (WEEK - 535)) | (1L << (SECOND - 535)) | (1L << (MICROSECOND - 535)) | (1L << (TABLES - 535)) | (1L << (ROUTINE - 535)) | (1L << (EXECUTE - 535)) | (1L << (FILE - 535)) | (1L << (PROCESS - 535)) | (1L << (RELOAD - 535)) | (1L << (SHUTDOWN - 535)) | (1L << (SUPER - 535)) | (1L << (PRIVILEGES - 535)) | (1L << (ARMSCII8 - 535)) | (1L << (ASCII - 535)) | (1L << (BIG5 - 535)) | (1L << (CP1250 - 535)) | (1L << (CP1251 - 535)) | (1L << (CP1256 - 535)) | (1L << (CP1257 - 535)) | (1L << (CP850 - 535)) | (1L << (CP852 - 535)) | (1L << (CP866 - 535)) | (1L << (CP932 - 535)) | (1L << (DEC8 - 535)) | (1L << (EUCJPMS - 535)) | (1L << (EUCKR - 535)) | (1L << (GB2312 - 535)) | (1L << (GBK - 535)) | (1L << (GEOSTD8 - 535)) | (1L << (GREEK - 535)) | (1L << (HEBREW - 535)) | (1L << (HP8 - 535)) | (1L << (KEYBCS2 - 535)) | (1L << (KOI8R - 535)) | (1L << (KOI8U - 535)) | (1L << (LATIN1 - 535)) | (1L << (LATIN2 - 535)) | (1L << (LATIN5 - 535)) | (1L << (LATIN7 - 535)) | (1L << (MACCE - 535)) | (1L << (MACROMAN - 535)) | (1L << (SJIS - 535)) | (1L << (SWE7 - 535)) | (1L << (TIS620 - 535)))) != 0) || ((((_la - 599)) & ~0x3f) == 0 && ((1L << (_la - 599)) & ((1L << (UCS2 - 599)) | (1L << (UJIS - 599)) | (1L << (UTF16 - 599)) | (1L << (UTF16LE - 599)) | (1L << (UTF32 - 599)) | (1L << (UTF8 - 599)) | (1L << (UTF8MB3 - 599)) | (1L << (UTF8MB4 - 599)) | (1L << (ARCHIVE - 599)) | (1L << (BLACKHOLE - 599)) | (1L << (CSV - 599)) | (1L << (FEDERATED - 599)) | (1L << (INNODB - 599)) | (1L << (MEMORY - 599)) | (1L << (MRG_MYISAM - 599)) | (1L << (MYISAM - 599)) | (1L << (NDB - 599)) | (1L << (NDBCLUSTER - 599)) | (1L << (PERFOMANCE_SCHEMA - 599)) | (1L << (REPEATABLE - 599)) | (1L << (COMMITTED - 599)) | (1L << (UNCOMMITTED - 599)) | (1L << (SERIALIZABLE - 599)) | (1L << (GEOMETRYCOLLECTION - 599)) | (1L << (LINESTRING - 599)) | (1L << (MULTILINESTRING - 599)) | (1L << (MULTIPOINT - 599)) | (1L << (MULTIPOLYGON - 599)) | (1L << (POINT - 599)) | (1L << (POLYGON - 599)) | (1L << (ABS - 599)) | (1L << (ACOS - 599)) | (1L << (ADDDATE - 599)) | (1L << (ADDTIME - 599)) | (1L << (AES_DECRYPT - 599)) | (1L << (AES_ENCRYPT - 599)) | (1L << (AREA - 599)) | (1L << (ASBINARY - 599)) | (1L << (ASIN - 599)) | (1L << (ASTEXT - 599)) | (1L << (ASWKB - 599)) | (1L << (ASWKT - 599)) | (1L << (ASYMMETRIC_DECRYPT - 599)) | (1L << (ASYMMETRIC_DERIVE - 599)) | (1L << (ASYMMETRIC_ENCRYPT - 599)) | (1L << (ASYMMETRIC_SIGN - 599)) | (1L << (ASYMMETRIC_VERIFY - 599)) | (1L << (ATAN - 599)) | (1L << (ATAN2 - 599)) | (1L << (BENCHMARK - 599)) | (1L << (BIN - 599)) | (1L << (BIT_COUNT - 599)) | (1L << (BIT_LENGTH - 599)) | (1L << (BUFFER - 599)) | (1L << (CEIL - 599)) | (1L << (CEILING - 599)) | (1L << (CENTROID - 599)) | (1L << (CHARACTER_LENGTH - 599)) | (1L << (CHARSET - 599)) | (1L << (CHAR_LENGTH - 599)) | (1L << (COERCIBILITY - 599)) | (1L << (COLLATION - 599)) | (1L << (COMPRESS - 599)) | (1L << (CONCAT - 599)))) != 0) || ((((_la - 663)) & ~0x3f) == 0 && ((1L << (_la - 663)) & ((1L << (CONCAT_WS - 663)) | (1L << (CONNECTION_ID - 663)) | (1L << (CONV - 663)) | (1L << (CONVERT_TZ - 663)) | (1L << (COS - 663)) | (1L << (COT - 663)) | (1L << (CRC32 - 663)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 663)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 663)) | (1L << (CREATE_DH_PARAMETERS - 663)) | (1L << (CREATE_DIGEST - 663)) | (1L << (CROSSES - 663)) | (1L << (DATEDIFF - 663)) | (1L << (DATE_FORMAT - 663)) | (1L << (DAYNAME - 663)) | (1L << (DAYOFMONTH - 663)) | (1L << (DAYOFWEEK - 663)) | (1L << (DAYOFYEAR - 663)) | (1L << (DECODE - 663)) | (1L << (DEGREES - 663)) | (1L << (DES_DECRYPT - 663)) | (1L << (DES_ENCRYPT - 663)) | (1L << (DIMENSION - 663)) | (1L << (DISJOINT - 663)) | (1L << (ELT - 663)) | (1L << (ENCODE - 663)) | (1L << (ENCRYPT - 663)) | (1L << (ENDPOINT - 663)) | (1L << (ENVELOPE - 663)) | (1L << (EQUALS - 663)) | (1L << (EXP - 663)) | (1L << (EXPORT_SET - 663)) | (1L << (EXTERIORRING - 663)) | (1L << (EXTRACTVALUE - 663)) | (1L << (FIELD - 663)) | (1L << (FIND_IN_SET - 663)) | (1L << (FLOOR - 663)) | (1L << (FORMAT - 663)) | (1L << (FOUND_ROWS - 663)) | (1L << (FROM_BASE64 - 663)) | (1L << (FROM_DAYS - 663)) | (1L << (FROM_UNIXTIME - 663)) | (1L << (GEOMCOLLFROMTEXT - 663)) | (1L << (GEOMCOLLFROMWKB - 663)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 663)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 663)) | (1L << (GEOMETRYFROMTEXT - 663)) | (1L << (GEOMETRYFROMWKB - 663)) | (1L << (GEOMETRYN - 663)) | (1L << (GEOMETRYTYPE - 663)) | (1L << (GEOMFROMTEXT - 663)) | (1L << (GEOMFROMWKB - 663)) | (1L << (GET_FORMAT - 663)) | (1L << (GET_LOCK - 663)) | (1L << (GLENGTH - 663)) | (1L << (GREATEST - 663)) | (1L << (GTID_SUBSET - 663)) | (1L << (GTID_SUBTRACT - 663)) | (1L << (HEX - 663)) | (1L << (IFNULL - 663)) | (1L << (INET6_ATON - 663)) | (1L << (INET6_NTOA - 663)) | (1L << (INET_ATON - 663)) | (1L << (INET_NTOA - 663)))) != 0) || ((((_la - 727)) & ~0x3f) == 0 && ((1L << (_la - 727)) & ((1L << (INSTR - 727)) | (1L << (INTERIORRINGN - 727)) | (1L << (INTERSECTS - 727)) | (1L << (ISCLOSED - 727)) | (1L << (ISEMPTY - 727)) | (1L << (ISNULL - 727)) | (1L << (ISSIMPLE - 727)) | (1L << (IS_FREE_LOCK - 727)) | (1L << (IS_IPV4 - 727)) | (1L << (IS_IPV4_COMPAT - 727)) | (1L << (IS_IPV4_MAPPED - 727)) | (1L << (IS_IPV6 - 727)) | (1L << (IS_USED_LOCK - 727)) | (1L << (LAST_INSERT_ID - 727)) | (1L << (LCASE - 727)) | (1L << (LEAST - 727)) | (1L << (LENGTH - 727)) | (1L << (LINEFROMTEXT - 727)) | (1L << (LINEFROMWKB - 727)) | (1L << (LINESTRINGFROMTEXT - 727)) | (1L << (LINESTRINGFROMWKB - 727)) | (1L << (LN - 727)) | (1L << (LOAD_FILE - 727)) | (1L << (LOCATE - 727)) | (1L << (LOG - 727)) | (1L << (LOG10 - 727)) | (1L << (LOG2 - 727)) | (1L << (LOWER - 727)) | (1L << (LPAD - 727)) | (1L << (LTRIM - 727)) | (1L << (MAKEDATE - 727)) | (1L << (MAKETIME - 727)) | (1L << (MAKE_SET - 727)) | (1L << (MASTER_POS_WAIT - 727)) | (1L << (MBRCONTAINS - 727)) | (1L << (MBRDISJOINT - 727)) | (1L << (MBREQUAL - 727)) | (1L << (MBRINTERSECTS - 727)) | (1L << (MBROVERLAPS - 727)) | (1L << (MBRTOUCHES - 727)) | (1L << (MBRWITHIN - 727)) | (1L << (MD5 - 727)) | (1L << (MLINEFROMTEXT - 727)) | (1L << (MLINEFROMWKB - 727)) | (1L << (MONTHNAME - 727)) | (1L << (MPOINTFROMTEXT - 727)) | (1L << (MPOINTFROMWKB - 727)) | (1L << (MPOLYFROMTEXT - 727)) | (1L << (MPOLYFROMWKB - 727)) | (1L << (MULTILINESTRINGFROMTEXT - 727)) | (1L << (MULTILINESTRINGFROMWKB - 727)) | (1L << (MULTIPOINTFROMTEXT - 727)) | (1L << (MULTIPOINTFROMWKB - 727)) | (1L << (MULTIPOLYGONFROMTEXT - 727)) | (1L << (MULTIPOLYGONFROMWKB - 727)) | (1L << (NAME_CONST - 727)) | (1L << (NULLIF - 727)) | (1L << (NUMGEOMETRIES - 727)) | (1L << (NUMINTERIORRINGS - 727)) | (1L << (NUMPOINTS - 727)) | (1L << (OCT - 727)) | (1L << (OCTET_LENGTH - 727)) | (1L << (ORD - 727)) | (1L << (OVERLAPS - 727)))) != 0) || ((((_la - 791)) & ~0x3f) == 0 && ((1L << (_la - 791)) & ((1L << (PERIOD_ADD - 791)) | (1L << (PERIOD_DIFF - 791)) | (1L << (PI - 791)) | (1L << (POINTFROMTEXT - 791)) | (1L << (POINTFROMWKB - 791)) | (1L << (POINTN - 791)) | (1L << (POLYFROMTEXT - 791)) | (1L << (POLYFROMWKB - 791)) | (1L << (POLYGONFROMTEXT - 791)) | (1L << (POLYGONFROMWKB - 791)) | (1L << (POW - 791)) | (1L << (POWER - 791)) | (1L << (QUOTE - 791)) | (1L << (RADIANS - 791)) | (1L << (RAND - 791)) | (1L << (RANDOM_BYTES - 791)) | (1L << (RELEASE_LOCK - 791)) | (1L << (REVERSE - 791)) | (1L << (ROUND - 791)) | (1L << (ROW_COUNT - 791)) | (1L << (RPAD - 791)) | (1L << (RTRIM - 791)) | (1L << (SEC_TO_TIME - 791)) | (1L << (SESSION_USER - 791)) | (1L << (SHA - 791)) | (1L << (SHA1 - 791)) | (1L << (SHA2 - 791)) | (1L << (SIGN - 791)) | (1L << (SIN - 791)) | (1L << (SLEEP - 791)) | (1L << (SOUNDEX - 791)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 791)) | (1L << (SQRT - 791)) | (1L << (SRID - 791)) | (1L << (STARTPOINT - 791)) | (1L << (STRCMP - 791)) | (1L << (STR_TO_DATE - 791)) | (1L << (ST_AREA - 791)) | (1L << (ST_ASBINARY - 791)) | (1L << (ST_ASTEXT - 791)) | (1L << (ST_ASWKB - 791)) | (1L << (ST_ASWKT - 791)) | (1L << (ST_BUFFER - 791)) | (1L << (ST_CENTROID - 791)) | (1L << (ST_CONTAINS - 791)) | (1L << (ST_CROSSES - 791)) | (1L << (ST_DIFFERENCE - 791)) | (1L << (ST_DIMENSION - 791)) | (1L << (ST_DISJOINT - 791)) | (1L << (ST_DISTANCE - 791)) | (1L << (ST_ENDPOINT - 791)) | (1L << (ST_ENVELOPE - 791)) | (1L << (ST_EQUALS - 791)) | (1L << (ST_EXTERIORRING - 791)) | (1L << (ST_GEOMCOLLFROMTEXT - 791)) | (1L << (ST_GEOMCOLLFROMTXT - 791)) | (1L << (ST_GEOMCOLLFROMWKB - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 791)) | (1L << (ST_GEOMETRYFROMTEXT - 791)) | (1L << (ST_GEOMETRYFROMWKB - 791)) | (1L << (ST_GEOMETRYN - 791)) | (1L << (ST_GEOMETRYTYPE - 791)) | (1L << (ST_GEOMFROMTEXT - 791)))) != 0) || ((((_la - 855)) & ~0x3f) == 0 && ((1L << (_la - 855)) & ((1L << (ST_GEOMFROMWKB - 855)) | (1L << (ST_INTERIORRINGN - 855)) | (1L << (ST_INTERSECTION - 855)) | (1L << (ST_INTERSECTS - 855)) | (1L << (ST_ISCLOSED - 855)) | (1L << (ST_ISEMPTY - 855)) | (1L << (ST_ISSIMPLE - 855)) | (1L << (ST_LINEFROMTEXT - 855)) | (1L << (ST_LINEFROMWKB - 855)) | (1L << (ST_LINESTRINGFROMTEXT - 855)) | (1L << (ST_LINESTRINGFROMWKB - 855)) | (1L << (ST_NUMGEOMETRIES - 855)) | (1L << (ST_NUMINTERIORRING - 855)) | (1L << (ST_NUMINTERIORRINGS - 855)) | (1L << (ST_NUMPOINTS - 855)) | (1L << (ST_OVERLAPS - 855)) | (1L << (ST_POINTFROMTEXT - 855)) | (1L << (ST_POINTFROMWKB - 855)) | (1L << (ST_POINTN - 855)) | (1L << (ST_POLYFROMTEXT - 855)) | (1L << (ST_POLYFROMWKB - 855)) | (1L << (ST_POLYGONFROMTEXT - 855)) | (1L << (ST_POLYGONFROMWKB - 855)) | (1L << (ST_SRID - 855)) | (1L << (ST_STARTPOINT - 855)) | (1L << (ST_SYMDIFFERENCE - 855)) | (1L << (ST_TOUCHES - 855)) | (1L << (ST_UNION - 855)) | (1L << (ST_WITHIN - 855)) | (1L << (ST_X - 855)) | (1L << (ST_Y - 855)) | (1L << (SUBDATE - 855)) | (1L << (SUBSTRING_INDEX - 855)) | (1L << (SUBTIME - 855)) | (1L << (SYSTEM_USER - 855)) | (1L << (TAN - 855)) | (1L << (TIMEDIFF - 855)) | (1L << (TIMESTAMPADD - 855)) | (1L << (TIMESTAMPDIFF - 855)) | (1L << (TIME_FORMAT - 855)) | (1L << (TIME_TO_SEC - 855)) | (1L << (TOUCHES - 855)) | (1L << (TO_BASE64 - 855)) | (1L << (TO_DAYS - 855)) | (1L << (TO_SECONDS - 855)) | (1L << (UCASE - 855)) | (1L << (UNCOMPRESS - 855)) | (1L << (UNCOMPRESSED_LENGTH - 855)) | (1L << (UNHEX - 855)) | (1L << (UNIX_TIMESTAMP - 855)) | (1L << (UPDATEXML - 855)) | (1L << (UPPER - 855)) | (1L << (UUID - 855)) | (1L << (UUID_SHORT - 855)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 855)) | (1L << (VERSION - 855)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 855)) | (1L << (WEEKDAY - 855)) | (1L << (WEEKOFYEAR - 855)) | (1L << (WEIGHT_STRING - 855)) | (1L << (WITHIN - 855)) | (1L << (YEARWEEK - 855)) | (1L << (Y_FUNCTION - 855)) | (1L << (X_FUNCTION - 855)))) != 0) || ((((_la - 931)) & ~0x3f) == 0 && ((1L << (_la - 931)) & ((1L << (PLUS - 931)) | (1L << (MINUS - 931)) | (1L << (EXCLAMATION_SYMBOL - 931)) | (1L << (BIT_NOT_OP - 931)) | (1L << (LR_BRACKET - 931)) | (1L << (ZERO_DECIMAL - 931)) | (1L << (ONE_DECIMAL - 931)) | (1L << (TWO_DECIMAL - 931)) | (1L << (CHARSET_REVERSE_QOUTE_STRING - 931)) | (1L << (START_NATIONAL_STRING_LITERAL - 931)) | (1L << (STRING_LITERAL - 931)) | (1L << (DECIMAL_LITERAL - 931)) | (1L << (HEXADECIMAL_LITERAL - 931)) | (1L << (REAL_LITERAL - 931)) | (1L << (NULL_SPEC_LITERAL - 931)) | (1L << (BIT_STRING - 931)) | (1L << (STRING_CHARSET_NAME - 931)) | (1L << (ID - 931)) | (1L << (REVERSE_QUOTE_ID - 931)) | (1L << (LOCAL_ID - 931)) | (1L << (GLOBAL_ID - 931)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CASE) | (1L << CAST) | (1L << CONVERT) | (1L << CURRENT_USER) | (1L << EXISTS) | (1L << FALSE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (IF - 64)) | (1L << (INSERT - 64)) | (1L << (INTERVAL - 64)) | (1L << (LEFT - 64)) | (1L << (NOT - 64)) | (1L << (NULL_LITERAL - 64)) | (1L << (REPLACE - 64)) | (1L << (RIGHT - 64)))) != 0) || ((((_la - 151)) & ~0x3f) == 0 && ((1L << (_la - 151)) & ((1L << (TRUE - 151)) | (1L << (VALUES - 151)) | (1L << (DATE - 151)) | (1L << (TIME - 151)) | (1L << (TIMESTAMP - 151)) | (1L << (DATETIME - 151)) | (1L << (YEAR - 151)) | (1L << (CHAR - 151)) | (1L << (BINARY - 151)) | (1L << (TEXT - 151)) | (1L << (ENUM - 151)) | (1L << (AVG - 151)) | (1L << (BIT_AND - 151)) | (1L << (BIT_OR - 151)) | (1L << (BIT_XOR - 151)) | (1L << (COUNT - 151)) | (1L << (GROUP_CONCAT - 151)))) != 0) || ((((_la - 215)) & ~0x3f) == 0 && ((1L << (_la - 215)) & ((1L << (MAX - 215)) | (1L << (MIN - 215)) | (1L << (STD - 215)) | (1L << (STDDEV - 215)) | (1L << (STDDEV_POP - 215)) | (1L << (STDDEV_SAMP - 215)) | (1L << (SUM - 215)) | (1L << (VAR_POP - 215)) | (1L << (VAR_SAMP - 215)) | (1L << (VARIANCE - 215)) | (1L << (CURRENT_DATE - 215)) | (1L << (CURRENT_TIME - 215)) | (1L << (CURRENT_TIMESTAMP - 215)) | (1L << (LOCALTIME - 215)) | (1L << (CURDATE - 215)) | (1L << (CURTIME - 215)) | (1L << (DATE_ADD - 215)) | (1L << (DATE_SUB - 215)) | (1L << (EXTRACT - 215)) | (1L << (LOCALTIMESTAMP - 215)) | (1L << (NOW - 215)) | (1L << (POSITION - 215)) | (1L << (SUBSTR - 215)) | (1L << (SUBSTRING - 215)) | (1L << (SYSDATE - 215)) | (1L << (TRIM - 215)) | (1L << (UTC_DATE - 215)) | (1L << (UTC_TIME - 215)) | (1L << (UTC_TIMESTAMP - 215)) | (1L << (ACCOUNT - 215)) | (1L << (ACTION - 215)) | (1L << (AFTER - 215)) | (1L << (AGGREGATE - 215)) | (1L << (ALGORITHM - 215)) | (1L << (ANY - 215)) | (1L << (AT - 215)) | (1L << (AUTHORS - 215)) | (1L << (AUTOCOMMIT - 215)) | (1L << (AUTOEXTEND_SIZE - 215)) | (1L << (AUTO_INCREMENT - 215)) | (1L << (AVG_ROW_LENGTH - 215)) | (1L << (BEGIN - 215)) | (1L << (BINLOG - 215)) | (1L << (BIT - 215)) | (1L << (BLOCK - 215)) | (1L << (BOOL - 215)) | (1L << (BOOLEAN - 215)) | (1L << (BTREE - 215)) | (1L << (CASCADED - 215)) | (1L << (CHAIN - 215)) | (1L << (CHANNEL - 215)) | (1L << (CHECKSUM - 215)) | (1L << (CIPHER - 215)) | (1L << (CLIENT - 215)) | (1L << (CLOSE - 215)) | (1L << (COALESCE - 215)) | (1L << (CODE - 215)) | (1L << (COLUMNS - 215)) | (1L << (COLUMN_FORMAT - 215)) | (1L << (COMMENT - 215)) | (1L << (COMMIT - 215)) | (1L << (COMPACT - 215)))) != 0) || ((((_la - 279)) & ~0x3f) == 0 && ((1L << (_la - 279)) & ((1L << (COMPLETION - 279)) | (1L << (COMPRESSED - 279)) | (1L << (COMPRESSION - 279)) | (1L << (CONCURRENT - 279)) | (1L << (CONNECTION - 279)) | (1L << (CONSISTENT - 279)) | (1L << (CONTAINS - 279)) | (1L << (CONTEXT - 279)) | (1L << (CONTRIBUTORS - 279)) | (1L << (COPY - 279)) | (1L << (CPU - 279)) | (1L << (DATA - 279)) | (1L << (DATAFILE - 279)) | (1L << (DEALLOCATE - 279)) | (1L << (DEFAULT_AUTH - 279)) | (1L << (DEFINER - 279)) | (1L << (DELAY_KEY_WRITE - 279)) | (1L << (DIRECTORY - 279)) | (1L << (DISABLE - 279)) | (1L << (DISCARD - 279)) | (1L << (DISK - 279)) | (1L << (DO - 279)) | (1L << (DUMPFILE - 279)) | (1L << (DUPLICATE - 279)) | (1L << (DYNAMIC - 279)) | (1L << (ENABLE - 279)) | (1L << (ENCRYPTION - 279)) | (1L << (ENDS - 279)) | (1L << (ENGINE - 279)) | (1L << (ENGINES - 279)) | (1L << (ERROR - 279)) | (1L << (ERRORS - 279)) | (1L << (ESCAPE - 279)) | (1L << (EVEN - 279)) | (1L << (EVENT - 279)) | (1L << (EVENTS - 279)) | (1L << (EVERY - 279)) | (1L << (EXCHANGE - 279)) | (1L << (EXCLUSIVE - 279)) | (1L << (EXPIRE - 279)) | (1L << (EXTENT_SIZE - 279)) | (1L << (FAULTS - 279)) | (1L << (FIELDS - 279)) | (1L << (FILE_BLOCK_SIZE - 279)) | (1L << (FILTER - 279)) | (1L << (FIRST - 279)) | (1L << (FIXED - 279)) | (1L << (FOLLOWS - 279)) | (1L << (FULL - 279)) | (1L << (FUNCTION - 279)) | (1L << (GLOBAL - 279)) | (1L << (GRANTS - 279)) | (1L << (GROUP_REPLICATION - 279)) | (1L << (HASH - 279)))) != 0) || ((((_la - 343)) & ~0x3f) == 0 && ((1L << (_la - 343)) & ((1L << (HOST - 343)) | (1L << (IDENTIFIED - 343)) | (1L << (IGNORE_SERVER_IDS - 343)) | (1L << (IMPORT - 343)) | (1L << (INDEXES - 343)) | (1L << (INITIAL_SIZE - 343)) | (1L << (INPLACE - 343)) | (1L << (INSERT_METHOD - 343)) | (1L << (INSTANCE - 343)) | (1L << (INVOKER - 343)) | (1L << (IO - 343)) | (1L << (IO_THREAD - 343)) | (1L << (IPC - 343)) | (1L << (ISOLATION - 343)) | (1L << (ISSUER - 343)) | (1L << (KEY_BLOCK_SIZE - 343)) | (1L << (LANGUAGE - 343)) | (1L << (LAST - 343)) | (1L << (LEAVES - 343)) | (1L << (LESS - 343)) | (1L << (LEVEL - 343)) | (1L << (LIST - 343)) | (1L << (LOCAL - 343)) | (1L << (LOGFILE - 343)) | (1L << (LOGS - 343)) | (1L << (MASTER - 343)) | (1L << (MASTER_AUTO_POSITION - 343)) | (1L << (MASTER_CONNECT_RETRY - 343)) | (1L << (MASTER_DELAY - 343)) | (1L << (MASTER_HEARTBEAT_PERIOD - 343)) | (1L << (MASTER_HOST - 343)) | (1L << (MASTER_LOG_FILE - 343)) | (1L << (MASTER_LOG_POS - 343)) | (1L << (MASTER_PASSWORD - 343)) | (1L << (MASTER_PORT - 343)) | (1L << (MASTER_RETRY_COUNT - 343)) | (1L << (MASTER_SSL - 343)) | (1L << (MASTER_SSL_CA - 343)) | (1L << (MASTER_SSL_CAPATH - 343)) | (1L << (MASTER_SSL_CERT - 343)) | (1L << (MASTER_SSL_CIPHER - 343)) | (1L << (MASTER_SSL_CRL - 343)) | (1L << (MASTER_SSL_CRLPATH - 343)) | (1L << (MASTER_SSL_KEY - 343)) | (1L << (MASTER_TLS_VERSION - 343)) | (1L << (MASTER_USER - 343)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 343)) | (1L << (MAX_QUERIES_PER_HOUR - 343)) | (1L << (MAX_ROWS - 343)) | (1L << (MAX_SIZE - 343)) | (1L << (MAX_UPDATES_PER_HOUR - 343)) | (1L << (MAX_USER_CONNECTIONS - 343)) | (1L << (MERGE - 343)) | (1L << (MID - 343)) | (1L << (MIGRATE - 343)) | (1L << (MIN_ROWS - 343)) | (1L << (MODIFY - 343)) | (1L << (MUTEX - 343)) | (1L << (MYSQL - 343)))) != 0) || ((((_la - 407)) & ~0x3f) == 0 && ((1L << (_la - 407)) & ((1L << (NAME - 407)) | (1L << (NAMES - 407)) | (1L << (NCHAR - 407)) | (1L << (NEVER - 407)) | (1L << (NO - 407)) | (1L << (NODEGROUP - 407)) | (1L << (NONE - 407)) | (1L << (OFFLINE - 407)) | (1L << (OFFSET - 407)) | (1L << (OJ - 407)) | (1L << (OLD_PASSWORD - 407)) | (1L << (ONE - 407)) | (1L << (ONLINE - 407)) | (1L << (ONLY - 407)) | (1L << (OPEN - 407)) | (1L << (OPTIMIZER_COSTS - 407)) | (1L << (OPTIONS - 407)) | (1L << (OWNER - 407)) | (1L << (PACK_KEYS - 407)) | (1L << (PAGE - 407)) | (1L << (PARSER - 407)) | (1L << (PARTIAL - 407)) | (1L << (PARTITIONING - 407)) | (1L << (PARTITIONS - 407)) | (1L << (PASSWORD - 407)) | (1L << (PHASE - 407)) | (1L << (PLUGIN_DIR - 407)) | (1L << (PLUGINS - 407)) | (1L << (PORT - 407)) | (1L << (PRECEDES - 407)) | (1L << (PREPARE - 407)) | (1L << (PRESERVE - 407)) | (1L << (PREV - 407)) | (1L << (PROCESSLIST - 407)) | (1L << (PROFILE - 407)) | (1L << (PROFILES - 407)) | (1L << (PROXY - 407)) | (1L << (QUERY - 407)) | (1L << (QUICK - 407)) | (1L << (REBUILD - 407)) | (1L << (RECOVER - 407)) | (1L << (REDO_BUFFER_SIZE - 407)) | (1L << (REDUNDANT - 407)) | (1L << (RELAY_LOG_FILE - 407)) | (1L << (RELAY_LOG_POS - 407)) | (1L << (RELAYLOG - 407)) | (1L << (REMOVE - 407)) | (1L << (REORGANIZE - 407)) | (1L << (REPAIR - 407)) | (1L << (REPLICATE_DO_DB - 407)) | (1L << (REPLICATE_DO_TABLE - 407)) | (1L << (REPLICATE_IGNORE_DB - 407)) | (1L << (REPLICATE_IGNORE_TABLE - 407)) | (1L << (REPLICATE_REWRITE_DB - 407)) | (1L << (REPLICATE_WILD_DO_TABLE - 407)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 407)) | (1L << (REPLICATION - 407)) | (1L << (RESUME - 407)) | (1L << (RETURNS - 407)) | (1L << (ROLLBACK - 407)))) != 0) || ((((_la - 471)) & ~0x3f) == 0 && ((1L << (_la - 471)) & ((1L << (ROLLUP - 471)) | (1L << (ROTATE - 471)) | (1L << (ROW - 471)) | (1L << (ROWS - 471)) | (1L << (ROW_FORMAT - 471)) | (1L << (SAVEPOINT - 471)) | (1L << (SCHEDULE - 471)) | (1L << (SECURITY - 471)) | (1L << (SERVER - 471)) | (1L << (SESSION - 471)) | (1L << (SHARE - 471)) | (1L << (SHARED - 471)) | (1L << (SIGNED - 471)) | (1L << (SIMPLE - 471)) | (1L << (SLAVE - 471)) | (1L << (SNAPSHOT - 471)) | (1L << (SOCKET - 471)) | (1L << (SOME - 471)) | (1L << (SOUNDS - 471)) | (1L << (SOURCE - 471)) | (1L << (SQL_AFTER_GTIDS - 471)) | (1L << (SQL_AFTER_MTS_GAPS - 471)) | (1L << (SQL_BEFORE_GTIDS - 471)) | (1L << (SQL_BUFFER_RESULT - 471)) | (1L << (SQL_CACHE - 471)) | (1L << (SQL_NO_CACHE - 471)) | (1L << (SQL_THREAD - 471)) | (1L << (START - 471)) | (1L << (STARTS - 471)) | (1L << (STATS_AUTO_RECALC - 471)) | (1L << (STATS_PERSISTENT - 471)) | (1L << (STATS_SAMPLE_PAGES - 471)) | (1L << (STATUS - 471)) | (1L << (STOP - 471)) | (1L << (STORAGE - 471)) | (1L << (STRING - 471)) | (1L << (SUBJECT - 471)) | (1L << (SUBPARTITION - 471)) | (1L << (SUBPARTITIONS - 471)) | (1L << (SUSPEND - 471)) | (1L << (SWAPS - 471)) | (1L << (SWITCHES - 471)) | (1L << (TABLESPACE - 471)) | (1L << (TEMPORARY - 471)) | (1L << (TEMPTABLE - 471)) | (1L << (THAN - 471)) | (1L << (TRANSACTION - 471)) | (1L << (TRUNCATE - 471)) | (1L << (UNDEFINED - 471)) | (1L << (UNDOFILE - 471)) | (1L << (UNDO_BUFFER_SIZE - 471)) | (1L << (UNKNOWN - 471)) | (1L << (UPGRADE - 471)) | (1L << (USER - 471)) | (1L << (VALIDATION - 471)) | (1L << (VALUE - 471)))) != 0) || ((((_la - 535)) & ~0x3f) == 0 && ((1L << (_la - 535)) & ((1L << (VARIABLES - 535)) | (1L << (VIEW - 535)) | (1L << (WAIT - 535)) | (1L << (WARNINGS - 535)) | (1L << (WITHOUT - 535)) | (1L << (WORK - 535)) | (1L << (WRAPPER - 535)) | (1L << (X509 - 535)) | (1L << (XA - 535)) | (1L << (XML - 535)) | (1L << (QUARTER - 535)) | (1L << (MONTH - 535)) | (1L << (DAY - 535)) | (1L << (HOUR - 535)) | (1L << (MINUTE - 535)) | (1L << (WEEK - 535)) | (1L << (SECOND - 535)) | (1L << (MICROSECOND - 535)) | (1L << (TABLES - 535)) | (1L << (ROUTINE - 535)) | (1L << (EXECUTE - 535)) | (1L << (FILE - 535)) | (1L << (PROCESS - 535)) | (1L << (RELOAD - 535)) | (1L << (SHUTDOWN - 535)) | (1L << (SUPER - 535)) | (1L << (PRIVILEGES - 535)) | (1L << (ARMSCII8 - 535)) | (1L << (ASCII - 535)) | (1L << (BIG5 - 535)) | (1L << (CP1250 - 535)) | (1L << (CP1251 - 535)) | (1L << (CP1256 - 535)) | (1L << (CP1257 - 535)) | (1L << (CP850 - 535)) | (1L << (CP852 - 535)) | (1L << (CP866 - 535)) | (1L << (CP932 - 535)) | (1L << (DEC8 - 535)) | (1L << (EUCJPMS - 535)) | (1L << (EUCKR - 535)) | (1L << (GB2312 - 535)) | (1L << (GBK - 535)) | (1L << (GEOSTD8 - 535)) | (1L << (GREEK - 535)) | (1L << (HEBREW - 535)) | (1L << (HP8 - 535)) | (1L << (KEYBCS2 - 535)) | (1L << (KOI8R - 535)) | (1L << (KOI8U - 535)) | (1L << (LATIN1 - 535)) | (1L << (LATIN2 - 535)) | (1L << (LATIN5 - 535)) | (1L << (LATIN7 - 535)) | (1L << (MACCE - 535)) | (1L << (MACROMAN - 535)) | (1L << (SJIS - 535)) | (1L << (SWE7 - 535)) | (1L << (TIS620 - 535)))) != 0) || ((((_la - 599)) & ~0x3f) == 0 && ((1L << (_la - 599)) & ((1L << (UCS2 - 599)) | (1L << (UJIS - 599)) | (1L << (UTF16 - 599)) | (1L << (UTF16LE - 599)) | (1L << (UTF32 - 599)) | (1L << (UTF8 - 599)) | (1L << (UTF8MB3 - 599)) | (1L << (UTF8MB4 - 599)) | (1L << (ARCHIVE - 599)) | (1L << (BLACKHOLE - 599)) | (1L << (CSV - 599)) | (1L << (FEDERATED - 599)) | (1L << (INNODB - 599)) | (1L << (MEMORY - 599)) | (1L << (MRG_MYISAM - 599)) | (1L << (MYISAM - 599)) | (1L << (NDB - 599)) | (1L << (NDBCLUSTER - 599)) | (1L << (PERFOMANCE_SCHEMA - 599)) | (1L << (REPEATABLE - 599)) | (1L << (COMMITTED - 599)) | (1L << (UNCOMMITTED - 599)) | (1L << (SERIALIZABLE - 599)) | (1L << (GEOMETRYCOLLECTION - 599)) | (1L << (LINESTRING - 599)) | (1L << (MULTILINESTRING - 599)) | (1L << (MULTIPOINT - 599)) | (1L << (MULTIPOLYGON - 599)) | (1L << (POINT - 599)) | (1L << (POLYGON - 599)) | (1L << (ABS - 599)) | (1L << (ACOS - 599)) | (1L << (ADDDATE - 599)) | (1L << (ADDTIME - 599)) | (1L << (AES_DECRYPT - 599)) | (1L << (AES_ENCRYPT - 599)) | (1L << (AREA - 599)) | (1L << (ASBINARY - 599)) | (1L << (ASIN - 599)) | (1L << (ASTEXT - 599)) | (1L << (ASWKB - 599)) | (1L << (ASWKT - 599)) | (1L << (ASYMMETRIC_DECRYPT - 599)) | (1L << (ASYMMETRIC_DERIVE - 599)) | (1L << (ASYMMETRIC_ENCRYPT - 599)) | (1L << (ASYMMETRIC_SIGN - 599)) | (1L << (ASYMMETRIC_VERIFY - 599)) | (1L << (ATAN - 599)) | (1L << (ATAN2 - 599)) | (1L << (BENCHMARK - 599)) | (1L << (BIN - 599)) | (1L << (BIT_COUNT - 599)) | (1L << (BIT_LENGTH - 599)) | (1L << (BUFFER - 599)) | (1L << (CEIL - 599)) | (1L << (CEILING - 599)) | (1L << (CENTROID - 599)) | (1L << (CHARACTER_LENGTH - 599)) | (1L << (CHARSET - 599)) | (1L << (CHAR_LENGTH - 599)) | (1L << (COERCIBILITY - 599)) | (1L << (COLLATION - 599)) | (1L << (COMPRESS - 599)) | (1L << (CONCAT - 599)))) != 0) || ((((_la - 663)) & ~0x3f) == 0 && ((1L << (_la - 663)) & ((1L << (CONCAT_WS - 663)) | (1L << (CONNECTION_ID - 663)) | (1L << (CONV - 663)) | (1L << (CONVERT_TZ - 663)) | (1L << (COS - 663)) | (1L << (COT - 663)) | (1L << (CRC32 - 663)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 663)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 663)) | (1L << (CREATE_DH_PARAMETERS - 663)) | (1L << (CREATE_DIGEST - 663)) | (1L << (CROSSES - 663)) | (1L << (DATEDIFF - 663)) | (1L << (DATE_FORMAT - 663)) | (1L << (DAYNAME - 663)) | (1L << (DAYOFMONTH - 663)) | (1L << (DAYOFWEEK - 663)) | (1L << (DAYOFYEAR - 663)) | (1L << (DECODE - 663)) | (1L << (DEGREES - 663)) | (1L << (DES_DECRYPT - 663)) | (1L << (DES_ENCRYPT - 663)) | (1L << (DIMENSION - 663)) | (1L << (DISJOINT - 663)) | (1L << (ELT - 663)) | (1L << (ENCODE - 663)) | (1L << (ENCRYPT - 663)) | (1L << (ENDPOINT - 663)) | (1L << (ENVELOPE - 663)) | (1L << (EQUALS - 663)) | (1L << (EXP - 663)) | (1L << (EXPORT_SET - 663)) | (1L << (EXTERIORRING - 663)) | (1L << (EXTRACTVALUE - 663)) | (1L << (FIELD - 663)) | (1L << (FIND_IN_SET - 663)) | (1L << (FLOOR - 663)) | (1L << (FORMAT - 663)) | (1L << (FOUND_ROWS - 663)) | (1L << (FROM_BASE64 - 663)) | (1L << (FROM_DAYS - 663)) | (1L << (FROM_UNIXTIME - 663)) | (1L << (GEOMCOLLFROMTEXT - 663)) | (1L << (GEOMCOLLFROMWKB - 663)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 663)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 663)) | (1L << (GEOMETRYFROMTEXT - 663)) | (1L << (GEOMETRYFROMWKB - 663)) | (1L << (GEOMETRYN - 663)) | (1L << (GEOMETRYTYPE - 663)) | (1L << (GEOMFROMTEXT - 663)) | (1L << (GEOMFROMWKB - 663)) | (1L << (GET_FORMAT - 663)) | (1L << (GET_LOCK - 663)) | (1L << (GLENGTH - 663)) | (1L << (GREATEST - 663)) | (1L << (GTID_SUBSET - 663)) | (1L << (GTID_SUBTRACT - 663)) | (1L << (HEX - 663)) | (1L << (IFNULL - 663)) | (1L << (INET6_ATON - 663)) | (1L << (INET6_NTOA - 663)) | (1L << (INET_ATON - 663)) | (1L << (INET_NTOA - 663)))) != 0) || ((((_la - 727)) & ~0x3f) == 0 && ((1L << (_la - 727)) & ((1L << (INSTR - 727)) | (1L << (INTERIORRINGN - 727)) | (1L << (INTERSECTS - 727)) | (1L << (ISCLOSED - 727)) | (1L << (ISEMPTY - 727)) | (1L << (ISNULL - 727)) | (1L << (ISSIMPLE - 727)) | (1L << (IS_FREE_LOCK - 727)) | (1L << (IS_IPV4 - 727)) | (1L << (IS_IPV4_COMPAT - 727)) | (1L << (IS_IPV4_MAPPED - 727)) | (1L << (IS_IPV6 - 727)) | (1L << (IS_USED_LOCK - 727)) | (1L << (LAST_INSERT_ID - 727)) | (1L << (LCASE - 727)) | (1L << (LEAST - 727)) | (1L << (LENGTH - 727)) | (1L << (LINEFROMTEXT - 727)) | (1L << (LINEFROMWKB - 727)) | (1L << (LINESTRINGFROMTEXT - 727)) | (1L << (LINESTRINGFROMWKB - 727)) | (1L << (LN - 727)) | (1L << (LOAD_FILE - 727)) | (1L << (LOCATE - 727)) | (1L << (LOG - 727)) | (1L << (LOG10 - 727)) | (1L << (LOG2 - 727)) | (1L << (LOWER - 727)) | (1L << (LPAD - 727)) | (1L << (LTRIM - 727)) | (1L << (MAKEDATE - 727)) | (1L << (MAKETIME - 727)) | (1L << (MAKE_SET - 727)) | (1L << (MASTER_POS_WAIT - 727)) | (1L << (MBRCONTAINS - 727)) | (1L << (MBRDISJOINT - 727)) | (1L << (MBREQUAL - 727)) | (1L << (MBRINTERSECTS - 727)) | (1L << (MBROVERLAPS - 727)) | (1L << (MBRTOUCHES - 727)) | (1L << (MBRWITHIN - 727)) | (1L << (MD5 - 727)) | (1L << (MLINEFROMTEXT - 727)) | (1L << (MLINEFROMWKB - 727)) | (1L << (MONTHNAME - 727)) | (1L << (MPOINTFROMTEXT - 727)) | (1L << (MPOINTFROMWKB - 727)) | (1L << (MPOLYFROMTEXT - 727)) | (1L << (MPOLYFROMWKB - 727)) | (1L << (MULTILINESTRINGFROMTEXT - 727)) | (1L << (MULTILINESTRINGFROMWKB - 727)) | (1L << (MULTIPOINTFROMTEXT - 727)) | (1L << (MULTIPOINTFROMWKB - 727)) | (1L << (MULTIPOLYGONFROMTEXT - 727)) | (1L << (MULTIPOLYGONFROMWKB - 727)) | (1L << (NAME_CONST - 727)) | (1L << (NULLIF - 727)) | (1L << (NUMGEOMETRIES - 727)) | (1L << (NUMINTERIORRINGS - 727)) | (1L << (NUMPOINTS - 727)) | (1L << (OCT - 727)) | (1L << (OCTET_LENGTH - 727)) | (1L << (ORD - 727)) | (1L << (OVERLAPS - 727)))) != 0) || ((((_la - 791)) & ~0x3f) == 0 && ((1L << (_la - 791)) & ((1L << (PERIOD_ADD - 791)) | (1L << (PERIOD_DIFF - 791)) | (1L << (PI - 791)) | (1L << (POINTFROMTEXT - 791)) | (1L << (POINTFROMWKB - 791)) | (1L << (POINTN - 791)) | (1L << (POLYFROMTEXT - 791)) | (1L << (POLYFROMWKB - 791)) | (1L << (POLYGONFROMTEXT - 791)) | (1L << (POLYGONFROMWKB - 791)) | (1L << (POW - 791)) | (1L << (POWER - 791)) | (1L << (QUOTE - 791)) | (1L << (RADIANS - 791)) | (1L << (RAND - 791)) | (1L << (RANDOM_BYTES - 791)) | (1L << (RELEASE_LOCK - 791)) | (1L << (REVERSE - 791)) | (1L << (ROUND - 791)) | (1L << (ROW_COUNT - 791)) | (1L << (RPAD - 791)) | (1L << (RTRIM - 791)) | (1L << (SEC_TO_TIME - 791)) | (1L << (SESSION_USER - 791)) | (1L << (SHA - 791)) | (1L << (SHA1 - 791)) | (1L << (SHA2 - 791)) | (1L << (SIGN - 791)) | (1L << (SIN - 791)) | (1L << (SLEEP - 791)) | (1L << (SOUNDEX - 791)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 791)) | (1L << (SQRT - 791)) | (1L << (SRID - 791)) | (1L << (STARTPOINT - 791)) | (1L << (STRCMP - 791)) | (1L << (STR_TO_DATE - 791)) | (1L << (ST_AREA - 791)) | (1L << (ST_ASBINARY - 791)) | (1L << (ST_ASTEXT - 791)) | (1L << (ST_ASWKB - 791)) | (1L << (ST_ASWKT - 791)) | (1L << (ST_BUFFER - 791)) | (1L << (ST_CENTROID - 791)) | (1L << (ST_CONTAINS - 791)) | (1L << (ST_CROSSES - 791)) | (1L << (ST_DIFFERENCE - 791)) | (1L << (ST_DIMENSION - 791)) | (1L << (ST_DISJOINT - 791)) | (1L << (ST_DISTANCE - 791)) | (1L << (ST_ENDPOINT - 791)) | (1L << (ST_ENVELOPE - 791)) | (1L << (ST_EQUALS - 791)) | (1L << (ST_EXTERIORRING - 791)) | (1L << (ST_GEOMCOLLFROMTEXT - 791)) | (1L << (ST_GEOMCOLLFROMTXT - 791)) | (1L << (ST_GEOMCOLLFROMWKB - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 791)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 791)) | (1L << (ST_GEOMETRYFROMTEXT - 791)) | (1L << (ST_GEOMETRYFROMWKB - 791)) | (1L << (ST_GEOMETRYN - 791)) | (1L << (ST_GEOMETRYTYPE - 791)) | (1L << (ST_GEOMFROMTEXT - 791)))) != 0) || ((((_la - 855)) & ~0x3f) == 0 && ((1L << (_la - 855)) & ((1L << (ST_GEOMFROMWKB - 855)) | (1L << (ST_INTERIORRINGN - 855)) | (1L << (ST_INTERSECTION - 855)) | (1L << (ST_INTERSECTS - 855)) | (1L << (ST_ISCLOSED - 855)) | (1L << (ST_ISEMPTY - 855)) | (1L << (ST_ISSIMPLE - 855)) | (1L << (ST_LINEFROMTEXT - 855)) | (1L << (ST_LINEFROMWKB - 855)) | (1L << (ST_LINESTRINGFROMTEXT - 855)) | (1L << (ST_LINESTRINGFROMWKB - 855)) | (1L << (ST_NUMGEOMETRIES - 855)) | (1L << (ST_NUMINTERIORRING - 855)) | (1L << (ST_NUMINTERIORRINGS - 855)) | (1L << (ST_NUMPOINTS - 855)) | (1L << (ST_OVERLAPS - 855)) | (1L << (ST_POINTFROMTEXT - 855)) | (1L << (ST_POINTFROMWKB - 855)) | (1L << (ST_POINTN - 855)) | (1L << (ST_POLYFROMTEXT - 855)) | (1L << (ST_POLYFROMWKB - 855)) | (1L << (ST_POLYGONFROMTEXT - 855)) | (1L << (ST_POLYGONFROMWKB - 855)) | (1L << (ST_SRID - 855)) | (1L << (ST_STARTPOINT - 855)) | (1L << (ST_SYMDIFFERENCE - 855)) | (1L << (ST_TOUCHES - 855)) | (1L << (ST_UNION - 855)) | (1L << (ST_WITHIN - 855)) | (1L << (ST_X - 855)) | (1L << (ST_Y - 855)) | (1L << (SUBDATE - 855)) | (1L << (SUBSTRING_INDEX - 855)) | (1L << (SUBTIME - 855)) | (1L << (SYSTEM_USER - 855)) | (1L << (TAN - 855)) | (1L << (TIMEDIFF - 855)) | (1L << (TIMESTAMPADD - 855)) | (1L << (TIMESTAMPDIFF - 855)) | (1L << (TIME_FORMAT - 855)) | (1L << (TIME_TO_SEC - 855)) | (1L << (TOUCHES - 855)) | (1L << (TO_BASE64 - 855)) | (1L << (TO_DAYS - 855)) | (1L << (TO_SECONDS - 855)) | (1L << (UCASE - 855)) | (1L << (UNCOMPRESS - 855)) | (1L << (UNCOMPRESSED_LENGTH - 855)) | (1L << (UNHEX - 855)) | (1L << (UNIX_TIMESTAMP - 855)) | (1L << (UPDATEXML - 855)) | (1L << (UPPER - 855)) | (1L << (UUID - 855)) | (1L << (UUID_SHORT - 855)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 855)) | (1L << (VERSION - 855)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 855)) | (1L << (WEEKDAY - 855)) | (1L << (WEEKOFYEAR - 855)) | (1L << (WEIGHT_STRING - 855)) | (1L << (WITHIN - 855)) | (1L << (YEARWEEK - 855)) | (1L << (Y_FUNCTION - 855)) | (1L << (X_FUNCTION - 855)))) != 0) || ((((_la - 931)) & ~0x3f) == 0 && ((1L << (_la - 931)) & ((1L << (PLUS - 931)) | (1L << (MINUS - 931)) | (1L << (EXCLAMATION_SYMBOL - 931)) | (1L << (BIT_NOT_OP - 931)) | (1L << (LR_BRACKET - 931)) | (1L << (ZERO_DECIMAL - 931)) | (1L << (ONE_DECIMAL - 931)) | (1L << (TWO_DECIMAL - 931)) | (1L << (CHARSET_REVERSE_QOUTE_STRING - 931)) | (1L << (START_NATIONAL_STRING_LITERAL - 931)) | (1L << (STRING_LITERAL - 931)) | (1L << (DECIMAL_LITERAL - 931)) | (1L << (HEXADECIMAL_LITERAL - 931)) | (1L << (REAL_LITERAL - 931)) | (1L << (NULL_SPEC_LITERAL - 931)) | (1L << (BIT_STRING - 931)) | (1L << (STRING_CHARSET_NAME - 931)) | (1L << (ID - 931)) | (1L << (REVERSE_QUOTE_ID - 931)) | (1L << (LOCAL_ID - 931)) | (1L << (GLOBAL_ID - 931)))) != 0)) { { setState(5502); functionArgs(); @@ -53129,6 +53173,7 @@ public final AggregateWindowedFunctionContext aggregateWindowedFunction() throws case CHECKSUM: case CIPHER: case CLIENT: + case CLOSE: case COALESCE: case CODE: case COLUMNS: @@ -53263,6 +53308,7 @@ public final AggregateWindowedFunctionContext aggregateWindowedFunction() throws case ONE: case ONLINE: case ONLY: + case OPEN: case OPTIMIZER_COSTS: case OPTIONS: case OWNER: @@ -53970,6 +54016,8 @@ public final ScalarFunctionNameContext scalarFunctionName() throws RecognitionEx case YEAR: case COUNT: case POSITION: + case CLOSE: + case OPEN: case QUARTER: case MONTH: case DAY: @@ -57347,6 +57395,8 @@ public static class FunctionNameBaseContext extends ParserRuleContext { public TerminalNode YEARWEEK() { return getToken(MySqlParser.YEARWEEK, 0); } public TerminalNode Y_FUNCTION() { return getToken(MySqlParser.Y_FUNCTION, 0); } public TerminalNode X_FUNCTION() { return getToken(MySqlParser.X_FUNCTION, 0); } + public TerminalNode OPEN() { return getToken(MySqlParser.OPEN, 0); } + public TerminalNode CLOSE() { return getToken(MySqlParser.CLOSE, 0); } public FunctionNameBaseContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -57375,7 +57425,7 @@ public final FunctionNameBaseContext functionNameBase() throws RecognitionExcept { setState(6008); _la = _input.LA(1); - if ( !(_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (YEAR - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || ((((_la - 550)) & ~0x3f) == 0 && ((1L << (_la - 550)) & ((1L << (QUARTER - 550)) | (1L << (MONTH - 550)) | (1L << (DAY - 550)) | (1L << (HOUR - 550)) | (1L << (MINUTE - 550)) | (1L << (WEEK - 550)) | (1L << (SECOND - 550)) | (1L << (MICROSECOND - 550)))) != 0) || ((((_la - 622)) & ~0x3f) == 0 && ((1L << (_la - 622)) & ((1L << (GEOMETRYCOLLECTION - 622)) | (1L << (LINESTRING - 622)) | (1L << (MULTILINESTRING - 622)) | (1L << (MULTIPOINT - 622)) | (1L << (MULTIPOLYGON - 622)) | (1L << (POINT - 622)) | (1L << (POLYGON - 622)) | (1L << (ABS - 622)) | (1L << (ACOS - 622)) | (1L << (ADDDATE - 622)) | (1L << (ADDTIME - 622)) | (1L << (AES_DECRYPT - 622)) | (1L << (AES_ENCRYPT - 622)) | (1L << (AREA - 622)) | (1L << (ASBINARY - 622)) | (1L << (ASIN - 622)) | (1L << (ASTEXT - 622)) | (1L << (ASWKB - 622)) | (1L << (ASWKT - 622)) | (1L << (ASYMMETRIC_DECRYPT - 622)) | (1L << (ASYMMETRIC_DERIVE - 622)) | (1L << (ASYMMETRIC_ENCRYPT - 622)) | (1L << (ASYMMETRIC_SIGN - 622)) | (1L << (ASYMMETRIC_VERIFY - 622)) | (1L << (ATAN - 622)) | (1L << (ATAN2 - 622)) | (1L << (BENCHMARK - 622)) | (1L << (BIN - 622)) | (1L << (BIT_COUNT - 622)) | (1L << (BIT_LENGTH - 622)) | (1L << (BUFFER - 622)) | (1L << (CEIL - 622)) | (1L << (CEILING - 622)) | (1L << (CENTROID - 622)) | (1L << (CHARACTER_LENGTH - 622)) | (1L << (CHARSET - 622)) | (1L << (CHAR_LENGTH - 622)) | (1L << (COERCIBILITY - 622)) | (1L << (COLLATION - 622)) | (1L << (COMPRESS - 622)) | (1L << (CONCAT - 622)) | (1L << (CONCAT_WS - 622)) | (1L << (CONNECTION_ID - 622)) | (1L << (CONV - 622)) | (1L << (CONVERT_TZ - 622)) | (1L << (COS - 622)) | (1L << (COT - 622)) | (1L << (CRC32 - 622)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 622)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 622)) | (1L << (CREATE_DH_PARAMETERS - 622)) | (1L << (CREATE_DIGEST - 622)) | (1L << (CROSSES - 622)) | (1L << (DATEDIFF - 622)) | (1L << (DATE_FORMAT - 622)) | (1L << (DAYNAME - 622)) | (1L << (DAYOFMONTH - 622)) | (1L << (DAYOFWEEK - 622)) | (1L << (DAYOFYEAR - 622)) | (1L << (DECODE - 622)) | (1L << (DEGREES - 622)) | (1L << (DES_DECRYPT - 622)) | (1L << (DES_ENCRYPT - 622)) | (1L << (DIMENSION - 622)))) != 0) || ((((_la - 686)) & ~0x3f) == 0 && ((1L << (_la - 686)) & ((1L << (DISJOINT - 686)) | (1L << (ELT - 686)) | (1L << (ENCODE - 686)) | (1L << (ENCRYPT - 686)) | (1L << (ENDPOINT - 686)) | (1L << (ENVELOPE - 686)) | (1L << (EQUALS - 686)) | (1L << (EXP - 686)) | (1L << (EXPORT_SET - 686)) | (1L << (EXTERIORRING - 686)) | (1L << (EXTRACTVALUE - 686)) | (1L << (FIELD - 686)) | (1L << (FIND_IN_SET - 686)) | (1L << (FLOOR - 686)) | (1L << (FORMAT - 686)) | (1L << (FOUND_ROWS - 686)) | (1L << (FROM_BASE64 - 686)) | (1L << (FROM_DAYS - 686)) | (1L << (FROM_UNIXTIME - 686)) | (1L << (GEOMCOLLFROMTEXT - 686)) | (1L << (GEOMCOLLFROMWKB - 686)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 686)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 686)) | (1L << (GEOMETRYFROMTEXT - 686)) | (1L << (GEOMETRYFROMWKB - 686)) | (1L << (GEOMETRYN - 686)) | (1L << (GEOMETRYTYPE - 686)) | (1L << (GEOMFROMTEXT - 686)) | (1L << (GEOMFROMWKB - 686)) | (1L << (GET_FORMAT - 686)) | (1L << (GET_LOCK - 686)) | (1L << (GLENGTH - 686)) | (1L << (GREATEST - 686)) | (1L << (GTID_SUBSET - 686)) | (1L << (GTID_SUBTRACT - 686)) | (1L << (HEX - 686)) | (1L << (IFNULL - 686)) | (1L << (INET6_ATON - 686)) | (1L << (INET6_NTOA - 686)) | (1L << (INET_ATON - 686)) | (1L << (INET_NTOA - 686)) | (1L << (INSTR - 686)) | (1L << (INTERIORRINGN - 686)) | (1L << (INTERSECTS - 686)) | (1L << (ISCLOSED - 686)) | (1L << (ISEMPTY - 686)) | (1L << (ISNULL - 686)) | (1L << (ISSIMPLE - 686)) | (1L << (IS_FREE_LOCK - 686)) | (1L << (IS_IPV4 - 686)) | (1L << (IS_IPV4_COMPAT - 686)) | (1L << (IS_IPV4_MAPPED - 686)) | (1L << (IS_IPV6 - 686)) | (1L << (IS_USED_LOCK - 686)) | (1L << (LAST_INSERT_ID - 686)) | (1L << (LCASE - 686)) | (1L << (LEAST - 686)) | (1L << (LENGTH - 686)) | (1L << (LINEFROMTEXT - 686)) | (1L << (LINEFROMWKB - 686)) | (1L << (LINESTRINGFROMTEXT - 686)) | (1L << (LINESTRINGFROMWKB - 686)) | (1L << (LN - 686)) | (1L << (LOAD_FILE - 686)))) != 0) || ((((_la - 750)) & ~0x3f) == 0 && ((1L << (_la - 750)) & ((1L << (LOCATE - 750)) | (1L << (LOG - 750)) | (1L << (LOG10 - 750)) | (1L << (LOG2 - 750)) | (1L << (LOWER - 750)) | (1L << (LPAD - 750)) | (1L << (LTRIM - 750)) | (1L << (MAKEDATE - 750)) | (1L << (MAKETIME - 750)) | (1L << (MAKE_SET - 750)) | (1L << (MASTER_POS_WAIT - 750)) | (1L << (MBRCONTAINS - 750)) | (1L << (MBRDISJOINT - 750)) | (1L << (MBREQUAL - 750)) | (1L << (MBRINTERSECTS - 750)) | (1L << (MBROVERLAPS - 750)) | (1L << (MBRTOUCHES - 750)) | (1L << (MBRWITHIN - 750)) | (1L << (MD5 - 750)) | (1L << (MLINEFROMTEXT - 750)) | (1L << (MLINEFROMWKB - 750)) | (1L << (MONTHNAME - 750)) | (1L << (MPOINTFROMTEXT - 750)) | (1L << (MPOINTFROMWKB - 750)) | (1L << (MPOLYFROMTEXT - 750)) | (1L << (MPOLYFROMWKB - 750)) | (1L << (MULTILINESTRINGFROMTEXT - 750)) | (1L << (MULTILINESTRINGFROMWKB - 750)) | (1L << (MULTIPOINTFROMTEXT - 750)) | (1L << (MULTIPOINTFROMWKB - 750)) | (1L << (MULTIPOLYGONFROMTEXT - 750)) | (1L << (MULTIPOLYGONFROMWKB - 750)) | (1L << (NAME_CONST - 750)) | (1L << (NULLIF - 750)) | (1L << (NUMGEOMETRIES - 750)) | (1L << (NUMINTERIORRINGS - 750)) | (1L << (NUMPOINTS - 750)) | (1L << (OCT - 750)) | (1L << (OCTET_LENGTH - 750)) | (1L << (ORD - 750)) | (1L << (OVERLAPS - 750)) | (1L << (PERIOD_ADD - 750)) | (1L << (PERIOD_DIFF - 750)) | (1L << (PI - 750)) | (1L << (POINTFROMTEXT - 750)) | (1L << (POINTFROMWKB - 750)) | (1L << (POINTN - 750)) | (1L << (POLYFROMTEXT - 750)) | (1L << (POLYFROMWKB - 750)) | (1L << (POLYGONFROMTEXT - 750)) | (1L << (POLYGONFROMWKB - 750)) | (1L << (POW - 750)) | (1L << (POWER - 750)) | (1L << (QUOTE - 750)) | (1L << (RADIANS - 750)) | (1L << (RAND - 750)) | (1L << (RANDOM_BYTES - 750)) | (1L << (RELEASE_LOCK - 750)) | (1L << (REVERSE - 750)) | (1L << (ROUND - 750)) | (1L << (ROW_COUNT - 750)) | (1L << (RPAD - 750)) | (1L << (RTRIM - 750)) | (1L << (SEC_TO_TIME - 750)))) != 0) || ((((_la - 814)) & ~0x3f) == 0 && ((1L << (_la - 814)) & ((1L << (SESSION_USER - 814)) | (1L << (SHA - 814)) | (1L << (SHA1 - 814)) | (1L << (SHA2 - 814)) | (1L << (SIGN - 814)) | (1L << (SIN - 814)) | (1L << (SLEEP - 814)) | (1L << (SOUNDEX - 814)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 814)) | (1L << (SQRT - 814)) | (1L << (SRID - 814)) | (1L << (STARTPOINT - 814)) | (1L << (STRCMP - 814)) | (1L << (STR_TO_DATE - 814)) | (1L << (ST_AREA - 814)) | (1L << (ST_ASBINARY - 814)) | (1L << (ST_ASTEXT - 814)) | (1L << (ST_ASWKB - 814)) | (1L << (ST_ASWKT - 814)) | (1L << (ST_BUFFER - 814)) | (1L << (ST_CENTROID - 814)) | (1L << (ST_CONTAINS - 814)) | (1L << (ST_CROSSES - 814)) | (1L << (ST_DIFFERENCE - 814)) | (1L << (ST_DIMENSION - 814)) | (1L << (ST_DISJOINT - 814)) | (1L << (ST_DISTANCE - 814)) | (1L << (ST_ENDPOINT - 814)) | (1L << (ST_ENVELOPE - 814)) | (1L << (ST_EQUALS - 814)) | (1L << (ST_EXTERIORRING - 814)) | (1L << (ST_GEOMCOLLFROMTEXT - 814)) | (1L << (ST_GEOMCOLLFROMTXT - 814)) | (1L << (ST_GEOMCOLLFROMWKB - 814)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 814)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 814)) | (1L << (ST_GEOMETRYFROMTEXT - 814)) | (1L << (ST_GEOMETRYFROMWKB - 814)) | (1L << (ST_GEOMETRYN - 814)) | (1L << (ST_GEOMETRYTYPE - 814)) | (1L << (ST_GEOMFROMTEXT - 814)) | (1L << (ST_GEOMFROMWKB - 814)) | (1L << (ST_INTERIORRINGN - 814)) | (1L << (ST_INTERSECTION - 814)) | (1L << (ST_INTERSECTS - 814)) | (1L << (ST_ISCLOSED - 814)) | (1L << (ST_ISEMPTY - 814)) | (1L << (ST_ISSIMPLE - 814)) | (1L << (ST_LINEFROMTEXT - 814)) | (1L << (ST_LINEFROMWKB - 814)) | (1L << (ST_LINESTRINGFROMTEXT - 814)) | (1L << (ST_LINESTRINGFROMWKB - 814)) | (1L << (ST_NUMGEOMETRIES - 814)) | (1L << (ST_NUMINTERIORRING - 814)) | (1L << (ST_NUMINTERIORRINGS - 814)) | (1L << (ST_NUMPOINTS - 814)) | (1L << (ST_OVERLAPS - 814)) | (1L << (ST_POINTFROMTEXT - 814)) | (1L << (ST_POINTFROMWKB - 814)) | (1L << (ST_POINTN - 814)) | (1L << (ST_POLYFROMTEXT - 814)) | (1L << (ST_POLYFROMWKB - 814)) | (1L << (ST_POLYGONFROMTEXT - 814)) | (1L << (ST_POLYGONFROMWKB - 814)))) != 0) || ((((_la - 878)) & ~0x3f) == 0 && ((1L << (_la - 878)) & ((1L << (ST_SRID - 878)) | (1L << (ST_STARTPOINT - 878)) | (1L << (ST_SYMDIFFERENCE - 878)) | (1L << (ST_TOUCHES - 878)) | (1L << (ST_UNION - 878)) | (1L << (ST_WITHIN - 878)) | (1L << (ST_X - 878)) | (1L << (ST_Y - 878)) | (1L << (SUBDATE - 878)) | (1L << (SUBSTRING_INDEX - 878)) | (1L << (SUBTIME - 878)) | (1L << (SYSTEM_USER - 878)) | (1L << (TAN - 878)) | (1L << (TIMEDIFF - 878)) | (1L << (TIMESTAMPADD - 878)) | (1L << (TIMESTAMPDIFF - 878)) | (1L << (TIME_FORMAT - 878)) | (1L << (TIME_TO_SEC - 878)) | (1L << (TOUCHES - 878)) | (1L << (TO_BASE64 - 878)) | (1L << (TO_DAYS - 878)) | (1L << (TO_SECONDS - 878)) | (1L << (UCASE - 878)) | (1L << (UNCOMPRESS - 878)) | (1L << (UNCOMPRESSED_LENGTH - 878)) | (1L << (UNHEX - 878)) | (1L << (UNIX_TIMESTAMP - 878)) | (1L << (UPDATEXML - 878)) | (1L << (UPPER - 878)) | (1L << (UUID - 878)) | (1L << (UUID_SHORT - 878)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 878)) | (1L << (VERSION - 878)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 878)) | (1L << (WEEKDAY - 878)) | (1L << (WEEKOFYEAR - 878)) | (1L << (WEIGHT_STRING - 878)) | (1L << (WITHIN - 878)) | (1L << (YEARWEEK - 878)) | (1L << (Y_FUNCTION - 878)) | (1L << (X_FUNCTION - 878)))) != 0)) ) { + if ( !(_la==LEFT || _la==RIGHT || ((((_la - 180)) & ~0x3f) == 0 && ((1L << (_la - 180)) & ((1L << (DATE - 180)) | (1L << (TIME - 180)) | (1L << (TIMESTAMP - 180)) | (1L << (YEAR - 180)) | (1L << (COUNT - 180)) | (1L << (POSITION - 180)))) != 0) || _la==CLOSE || _la==OPEN || ((((_la - 550)) & ~0x3f) == 0 && ((1L << (_la - 550)) & ((1L << (QUARTER - 550)) | (1L << (MONTH - 550)) | (1L << (DAY - 550)) | (1L << (HOUR - 550)) | (1L << (MINUTE - 550)) | (1L << (WEEK - 550)) | (1L << (SECOND - 550)) | (1L << (MICROSECOND - 550)))) != 0) || ((((_la - 622)) & ~0x3f) == 0 && ((1L << (_la - 622)) & ((1L << (GEOMETRYCOLLECTION - 622)) | (1L << (LINESTRING - 622)) | (1L << (MULTILINESTRING - 622)) | (1L << (MULTIPOINT - 622)) | (1L << (MULTIPOLYGON - 622)) | (1L << (POINT - 622)) | (1L << (POLYGON - 622)) | (1L << (ABS - 622)) | (1L << (ACOS - 622)) | (1L << (ADDDATE - 622)) | (1L << (ADDTIME - 622)) | (1L << (AES_DECRYPT - 622)) | (1L << (AES_ENCRYPT - 622)) | (1L << (AREA - 622)) | (1L << (ASBINARY - 622)) | (1L << (ASIN - 622)) | (1L << (ASTEXT - 622)) | (1L << (ASWKB - 622)) | (1L << (ASWKT - 622)) | (1L << (ASYMMETRIC_DECRYPT - 622)) | (1L << (ASYMMETRIC_DERIVE - 622)) | (1L << (ASYMMETRIC_ENCRYPT - 622)) | (1L << (ASYMMETRIC_SIGN - 622)) | (1L << (ASYMMETRIC_VERIFY - 622)) | (1L << (ATAN - 622)) | (1L << (ATAN2 - 622)) | (1L << (BENCHMARK - 622)) | (1L << (BIN - 622)) | (1L << (BIT_COUNT - 622)) | (1L << (BIT_LENGTH - 622)) | (1L << (BUFFER - 622)) | (1L << (CEIL - 622)) | (1L << (CEILING - 622)) | (1L << (CENTROID - 622)) | (1L << (CHARACTER_LENGTH - 622)) | (1L << (CHARSET - 622)) | (1L << (CHAR_LENGTH - 622)) | (1L << (COERCIBILITY - 622)) | (1L << (COLLATION - 622)) | (1L << (COMPRESS - 622)) | (1L << (CONCAT - 622)) | (1L << (CONCAT_WS - 622)) | (1L << (CONNECTION_ID - 622)) | (1L << (CONV - 622)) | (1L << (CONVERT_TZ - 622)) | (1L << (COS - 622)) | (1L << (COT - 622)) | (1L << (CRC32 - 622)) | (1L << (CREATE_ASYMMETRIC_PRIV_KEY - 622)) | (1L << (CREATE_ASYMMETRIC_PUB_KEY - 622)) | (1L << (CREATE_DH_PARAMETERS - 622)) | (1L << (CREATE_DIGEST - 622)) | (1L << (CROSSES - 622)) | (1L << (DATEDIFF - 622)) | (1L << (DATE_FORMAT - 622)) | (1L << (DAYNAME - 622)) | (1L << (DAYOFMONTH - 622)) | (1L << (DAYOFWEEK - 622)) | (1L << (DAYOFYEAR - 622)) | (1L << (DECODE - 622)) | (1L << (DEGREES - 622)) | (1L << (DES_DECRYPT - 622)) | (1L << (DES_ENCRYPT - 622)) | (1L << (DIMENSION - 622)))) != 0) || ((((_la - 686)) & ~0x3f) == 0 && ((1L << (_la - 686)) & ((1L << (DISJOINT - 686)) | (1L << (ELT - 686)) | (1L << (ENCODE - 686)) | (1L << (ENCRYPT - 686)) | (1L << (ENDPOINT - 686)) | (1L << (ENVELOPE - 686)) | (1L << (EQUALS - 686)) | (1L << (EXP - 686)) | (1L << (EXPORT_SET - 686)) | (1L << (EXTERIORRING - 686)) | (1L << (EXTRACTVALUE - 686)) | (1L << (FIELD - 686)) | (1L << (FIND_IN_SET - 686)) | (1L << (FLOOR - 686)) | (1L << (FORMAT - 686)) | (1L << (FOUND_ROWS - 686)) | (1L << (FROM_BASE64 - 686)) | (1L << (FROM_DAYS - 686)) | (1L << (FROM_UNIXTIME - 686)) | (1L << (GEOMCOLLFROMTEXT - 686)) | (1L << (GEOMCOLLFROMWKB - 686)) | (1L << (GEOMETRYCOLLECTIONFROMTEXT - 686)) | (1L << (GEOMETRYCOLLECTIONFROMWKB - 686)) | (1L << (GEOMETRYFROMTEXT - 686)) | (1L << (GEOMETRYFROMWKB - 686)) | (1L << (GEOMETRYN - 686)) | (1L << (GEOMETRYTYPE - 686)) | (1L << (GEOMFROMTEXT - 686)) | (1L << (GEOMFROMWKB - 686)) | (1L << (GET_FORMAT - 686)) | (1L << (GET_LOCK - 686)) | (1L << (GLENGTH - 686)) | (1L << (GREATEST - 686)) | (1L << (GTID_SUBSET - 686)) | (1L << (GTID_SUBTRACT - 686)) | (1L << (HEX - 686)) | (1L << (IFNULL - 686)) | (1L << (INET6_ATON - 686)) | (1L << (INET6_NTOA - 686)) | (1L << (INET_ATON - 686)) | (1L << (INET_NTOA - 686)) | (1L << (INSTR - 686)) | (1L << (INTERIORRINGN - 686)) | (1L << (INTERSECTS - 686)) | (1L << (ISCLOSED - 686)) | (1L << (ISEMPTY - 686)) | (1L << (ISNULL - 686)) | (1L << (ISSIMPLE - 686)) | (1L << (IS_FREE_LOCK - 686)) | (1L << (IS_IPV4 - 686)) | (1L << (IS_IPV4_COMPAT - 686)) | (1L << (IS_IPV4_MAPPED - 686)) | (1L << (IS_IPV6 - 686)) | (1L << (IS_USED_LOCK - 686)) | (1L << (LAST_INSERT_ID - 686)) | (1L << (LCASE - 686)) | (1L << (LEAST - 686)) | (1L << (LENGTH - 686)) | (1L << (LINEFROMTEXT - 686)) | (1L << (LINEFROMWKB - 686)) | (1L << (LINESTRINGFROMTEXT - 686)) | (1L << (LINESTRINGFROMWKB - 686)) | (1L << (LN - 686)) | (1L << (LOAD_FILE - 686)))) != 0) || ((((_la - 750)) & ~0x3f) == 0 && ((1L << (_la - 750)) & ((1L << (LOCATE - 750)) | (1L << (LOG - 750)) | (1L << (LOG10 - 750)) | (1L << (LOG2 - 750)) | (1L << (LOWER - 750)) | (1L << (LPAD - 750)) | (1L << (LTRIM - 750)) | (1L << (MAKEDATE - 750)) | (1L << (MAKETIME - 750)) | (1L << (MAKE_SET - 750)) | (1L << (MASTER_POS_WAIT - 750)) | (1L << (MBRCONTAINS - 750)) | (1L << (MBRDISJOINT - 750)) | (1L << (MBREQUAL - 750)) | (1L << (MBRINTERSECTS - 750)) | (1L << (MBROVERLAPS - 750)) | (1L << (MBRTOUCHES - 750)) | (1L << (MBRWITHIN - 750)) | (1L << (MD5 - 750)) | (1L << (MLINEFROMTEXT - 750)) | (1L << (MLINEFROMWKB - 750)) | (1L << (MONTHNAME - 750)) | (1L << (MPOINTFROMTEXT - 750)) | (1L << (MPOINTFROMWKB - 750)) | (1L << (MPOLYFROMTEXT - 750)) | (1L << (MPOLYFROMWKB - 750)) | (1L << (MULTILINESTRINGFROMTEXT - 750)) | (1L << (MULTILINESTRINGFROMWKB - 750)) | (1L << (MULTIPOINTFROMTEXT - 750)) | (1L << (MULTIPOINTFROMWKB - 750)) | (1L << (MULTIPOLYGONFROMTEXT - 750)) | (1L << (MULTIPOLYGONFROMWKB - 750)) | (1L << (NAME_CONST - 750)) | (1L << (NULLIF - 750)) | (1L << (NUMGEOMETRIES - 750)) | (1L << (NUMINTERIORRINGS - 750)) | (1L << (NUMPOINTS - 750)) | (1L << (OCT - 750)) | (1L << (OCTET_LENGTH - 750)) | (1L << (ORD - 750)) | (1L << (OVERLAPS - 750)) | (1L << (PERIOD_ADD - 750)) | (1L << (PERIOD_DIFF - 750)) | (1L << (PI - 750)) | (1L << (POINTFROMTEXT - 750)) | (1L << (POINTFROMWKB - 750)) | (1L << (POINTN - 750)) | (1L << (POLYFROMTEXT - 750)) | (1L << (POLYFROMWKB - 750)) | (1L << (POLYGONFROMTEXT - 750)) | (1L << (POLYGONFROMWKB - 750)) | (1L << (POW - 750)) | (1L << (POWER - 750)) | (1L << (QUOTE - 750)) | (1L << (RADIANS - 750)) | (1L << (RAND - 750)) | (1L << (RANDOM_BYTES - 750)) | (1L << (RELEASE_LOCK - 750)) | (1L << (REVERSE - 750)) | (1L << (ROUND - 750)) | (1L << (ROW_COUNT - 750)) | (1L << (RPAD - 750)) | (1L << (RTRIM - 750)) | (1L << (SEC_TO_TIME - 750)))) != 0) || ((((_la - 814)) & ~0x3f) == 0 && ((1L << (_la - 814)) & ((1L << (SESSION_USER - 814)) | (1L << (SHA - 814)) | (1L << (SHA1 - 814)) | (1L << (SHA2 - 814)) | (1L << (SIGN - 814)) | (1L << (SIN - 814)) | (1L << (SLEEP - 814)) | (1L << (SOUNDEX - 814)) | (1L << (SQL_THREAD_WAIT_AFTER_GTIDS - 814)) | (1L << (SQRT - 814)) | (1L << (SRID - 814)) | (1L << (STARTPOINT - 814)) | (1L << (STRCMP - 814)) | (1L << (STR_TO_DATE - 814)) | (1L << (ST_AREA - 814)) | (1L << (ST_ASBINARY - 814)) | (1L << (ST_ASTEXT - 814)) | (1L << (ST_ASWKB - 814)) | (1L << (ST_ASWKT - 814)) | (1L << (ST_BUFFER - 814)) | (1L << (ST_CENTROID - 814)) | (1L << (ST_CONTAINS - 814)) | (1L << (ST_CROSSES - 814)) | (1L << (ST_DIFFERENCE - 814)) | (1L << (ST_DIMENSION - 814)) | (1L << (ST_DISJOINT - 814)) | (1L << (ST_DISTANCE - 814)) | (1L << (ST_ENDPOINT - 814)) | (1L << (ST_ENVELOPE - 814)) | (1L << (ST_EQUALS - 814)) | (1L << (ST_EXTERIORRING - 814)) | (1L << (ST_GEOMCOLLFROMTEXT - 814)) | (1L << (ST_GEOMCOLLFROMTXT - 814)) | (1L << (ST_GEOMCOLLFROMWKB - 814)) | (1L << (ST_GEOMETRYCOLLECTIONFROMTEXT - 814)) | (1L << (ST_GEOMETRYCOLLECTIONFROMWKB - 814)) | (1L << (ST_GEOMETRYFROMTEXT - 814)) | (1L << (ST_GEOMETRYFROMWKB - 814)) | (1L << (ST_GEOMETRYN - 814)) | (1L << (ST_GEOMETRYTYPE - 814)) | (1L << (ST_GEOMFROMTEXT - 814)) | (1L << (ST_GEOMFROMWKB - 814)) | (1L << (ST_INTERIORRINGN - 814)) | (1L << (ST_INTERSECTION - 814)) | (1L << (ST_INTERSECTS - 814)) | (1L << (ST_ISCLOSED - 814)) | (1L << (ST_ISEMPTY - 814)) | (1L << (ST_ISSIMPLE - 814)) | (1L << (ST_LINEFROMTEXT - 814)) | (1L << (ST_LINEFROMWKB - 814)) | (1L << (ST_LINESTRINGFROMTEXT - 814)) | (1L << (ST_LINESTRINGFROMWKB - 814)) | (1L << (ST_NUMGEOMETRIES - 814)) | (1L << (ST_NUMINTERIORRING - 814)) | (1L << (ST_NUMINTERIORRINGS - 814)) | (1L << (ST_NUMPOINTS - 814)) | (1L << (ST_OVERLAPS - 814)) | (1L << (ST_POINTFROMTEXT - 814)) | (1L << (ST_POINTFROMWKB - 814)) | (1L << (ST_POINTN - 814)) | (1L << (ST_POLYFROMTEXT - 814)) | (1L << (ST_POLYFROMWKB - 814)) | (1L << (ST_POLYGONFROMTEXT - 814)) | (1L << (ST_POLYGONFROMWKB - 814)))) != 0) || ((((_la - 878)) & ~0x3f) == 0 && ((1L << (_la - 878)) & ((1L << (ST_SRID - 878)) | (1L << (ST_STARTPOINT - 878)) | (1L << (ST_SYMDIFFERENCE - 878)) | (1L << (ST_TOUCHES - 878)) | (1L << (ST_UNION - 878)) | (1L << (ST_WITHIN - 878)) | (1L << (ST_X - 878)) | (1L << (ST_Y - 878)) | (1L << (SUBDATE - 878)) | (1L << (SUBSTRING_INDEX - 878)) | (1L << (SUBTIME - 878)) | (1L << (SYSTEM_USER - 878)) | (1L << (TAN - 878)) | (1L << (TIMEDIFF - 878)) | (1L << (TIMESTAMPADD - 878)) | (1L << (TIMESTAMPDIFF - 878)) | (1L << (TIME_FORMAT - 878)) | (1L << (TIME_TO_SEC - 878)) | (1L << (TOUCHES - 878)) | (1L << (TO_BASE64 - 878)) | (1L << (TO_DAYS - 878)) | (1L << (TO_SECONDS - 878)) | (1L << (UCASE - 878)) | (1L << (UNCOMPRESS - 878)) | (1L << (UNCOMPRESSED_LENGTH - 878)) | (1L << (UNHEX - 878)) | (1L << (UNIX_TIMESTAMP - 878)) | (1L << (UPDATEXML - 878)) | (1L << (UPPER - 878)) | (1L << (UUID - 878)) | (1L << (UUID_SHORT - 878)) | (1L << (VALIDATE_PASSWORD_STRENGTH - 878)) | (1L << (VERSION - 878)) | (1L << (WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 878)) | (1L << (WEEKDAY - 878)) | (1L << (WEEKOFYEAR - 878)) | (1L << (WEIGHT_STRING - 878)) | (1L << (WITHIN - 878)) | (1L << (YEARWEEK - 878)) | (1L << (Y_FUNCTION - 878)) | (1L << (X_FUNCTION - 878)))) != 0)) ) { _errHandler.recoverInline(this); } else { @@ -58098,198 +58148,199 @@ private boolean expressionAtom_sempred(ExpressionAtomContext _localctx, int pred "\u014e\u0150\u0151\u0153\u0155\u0157\u0157\u0159\u0159\u015b\u0161\u0163"+ "\u0169\u016b\u018f\u0191\u0194\u0196\u019c\u019e\u01a7\u01a9\u01b3\u01b5"+ "\u01c5\u01c7\u01d4\u01d6\u01e7\u01e9\u01eb\u01ed\u0208\u020a\u020a\u020c"+ - "\u020f\u0211\u0211\u0213\u0214\u0217\u0222\u0266\u0266\n\2TT\u0080\u0080"+ - "\u00b6\u00b8\u00ba\u00ba\u00d7\u00d7\u00ee\u00ee\u0228\u022f\u0270\u0398"+ - "\2\u1b71\2\u026d\3\2\2\2\4\u027d\3\2\2\2\6\u0291\3\2\2\2\b\u0293\3\2\2"+ - "\2\n\u02b8\3\2\2\2\f\u02c4\3\2\2\2\16\u02cf\3\2\2\2\20\u02e0\3\2\2\2\22"+ - "\u02e5\3\2\2\2\24\u02f1\3\2\2\2\26\u030c\3\2\2\2\30\u0312\3\2\2\2\32\u0314"+ - "\3\2\2\2\34\u0320\3\2\2\2\36\u033e\3\2\2\2 \u035f\3\2\2\2\"\u0392\3\2"+ - "\2\2$\u03ac\3\2\2\2&\u03c8\3\2\2\2(\u0429\3\2\2\2*\u042b\3\2\2\2,\u043d"+ - "\3\2\2\2.\u047a\3\2\2\2\60\u048d\3\2\2\2\62\u04c2\3\2\2\2\64\u04c4\3\2"+ - "\2\2\66\u04f0\3\2\2\28\u04f6\3\2\2\2:\u04f8\3\2\2\2<\u050d\3\2\2\2>\u0514"+ - "\3\2\2\2@\u0516\3\2\2\2B\u0524\3\2\2\2D\u0526\3\2\2\2F\u052a\3\2\2\2H"+ - "\u0544\3\2\2\2J\u0554\3\2\2\2L\u0556\3\2\2\2N\u0566\3\2\2\2P\u0568\3\2"+ - "\2\2R\u0583\3\2\2\2T\u05c1\3\2\2\2V\u05c3\3\2\2\2X\u05dd\3\2\2\2Z\u05e5"+ - "\3\2\2\2\\\u0603\3\2\2\2^\u0691\3\2\2\2`\u0693\3\2\2\2b\u0696\3\2\2\2"+ - "d\u06e0\3\2\2\2f\u06f7\3\2\2\2h\u0766\3\2\2\2j\u076b\3\2\2\2l\u076d\3"+ - "\2\2\2n\u0777\3\2\2\2p\u07ac\3\2\2\2r\u07c0\3\2\2\2t\u07c2\3\2\2\2v\u07e5"+ - "\3\2\2\2x\u07ee\3\2\2\2z\u07f5\3\2\2\2|\u080c\3\2\2\2~\u0815\3\2\2\2\u0080"+ - "\u0824\3\2\2\2\u0082\u0838\3\2\2\2\u0084\u084c\3\2\2\2\u0086\u099e\3\2"+ - "\2\2\u0088\u09a0\3\2\2\2\u008a\u09a7\3\2\2\2\u008c\u09ae\3\2\2\2\u008e"+ - "\u09c4\3\2\2\2\u0090\u09cc\3\2\2\2\u0092\u09d3\3\2\2\2\u0094\u09da\3\2"+ - "\2\2\u0096\u09e1\3\2\2\2\u0098\u09ed\3\2\2\2\u009a\u09f7\3\2\2\2\u009c"+ - "\u09fe\3\2\2\2\u009e\u0a0e\3\2\2\2\u00a0\u0a18\3\2\2\2\u00a2\u0a1c\3\2"+ - "\2\2\u00a4\u0a22\3\2\2\2\u00a6\u0a2e\3\2\2\2\u00a8\u0a30\3\2\2\2\u00aa"+ - "\u0a37\3\2\2\2\u00ac\u0a39\3\2\2\2\u00ae\u0a6b\3\2\2\2\u00b0\u0ab5\3\2"+ - "\2\2\u00b2\u0af0\3\2\2\2\u00b4\u0b48\3\2\2\2\u00b6\u0b4c\3\2\2\2\u00b8"+ - "\u0b5d\3\2\2\2\u00ba\u0b5f\3\2\2\2\u00bc\u0b67\3\2\2\2\u00be\u0b6f\3\2"+ - "\2\2\u00c0\u0b71\3\2\2\2\u00c2\u0b8f\3\2\2\2\u00c4\u0bc6\3\2\2\2\u00c6"+ - "\u0bcf\3\2\2\2\u00c8\u0be3\3\2\2\2\u00ca\u0bef\3\2\2\2\u00cc\u0bf3\3\2"+ - "\2\2\u00ce\u0c14\3\2\2\2\u00d0\u0c29\3\2\2\2\u00d2\u0c33\3\2\2\2\u00d4"+ - "\u0c37\3\2\2\2\u00d6\u0c50\3\2\2\2\u00d8\u0c7a\3\2\2\2\u00da\u0c7c\3\2"+ - "\2\2\u00dc\u0c8b\3\2\2\2\u00de\u0cb9\3\2\2\2\u00e0\u0cc3\3\2\2\2\u00e2"+ - "\u0ccd\3\2\2\2\u00e4\u0cf7\3\2\2\2\u00e6\u0cf9\3\2\2\2\u00e8\u0d0a\3\2"+ - "\2\2\u00ea\u0d10\3\2\2\2\u00ec\u0d20\3\2\2\2\u00ee\u0d24\3\2\2\2\u00f0"+ - "\u0d4a\3\2\2\2\u00f2\u0d70\3\2\2\2\u00f4\u0d7e\3\2\2\2\u00f6\u0d86\3\2"+ - "\2\2\u00f8\u0d88\3\2\2\2\u00fa\u0da2\3\2\2\2\u00fc\u0da6\3\2\2\2\u00fe"+ - "\u0db3\3\2\2\2\u0100\u0dbf\3\2\2\2\u0102\u0dc3\3\2\2\2\u0104\u0dd4\3\2"+ - "\2\2\u0106\u0de5\3\2\2\2\u0108\u0de8\3\2\2\2\u010a\u0df2\3\2\2\2\u010c"+ - "\u0df6\3\2\2\2\u010e\u0e00\3\2\2\2\u0110\u0e03\3\2\2\2\u0112\u0e08\3\2"+ - "\2\2\u0114\u0e1c\3\2\2\2\u0116\u0e1e\3\2\2\2\u0118\u0e2f\3\2\2\2\u011a"+ - "\u0e38\3\2\2\2\u011c\u0e41\3\2\2\2\u011e\u0e43\3\2\2\2\u0120\u0e51\3\2"+ - "\2\2\u0122\u0e5c\3\2\2\2\u0124\u0e65\3\2\2\2\u0126\u0e68\3\2\2\2\u0128"+ - "\u0e70\3\2\2\2\u012a\u0e89\3\2\2\2\u012c\u0e95\3\2\2\2\u012e\u0e98\3\2"+ - "\2\2\u0130\u0eb8\3\2\2\2\u0132\u0eba\3\2\2\2\u0134\u0ebc\3\2\2\2\u0136"+ - "\u0ebe\3\2\2\2\u0138\u0ec0\3\2\2\2\u013a\u0ef5\3\2\2\2\u013c\u0ef7\3\2"+ - "\2\2\u013e\u0efd\3\2\2\2\u0140\u0f11\3\2\2\2\u0142\u0f1f\3\2\2\2\u0144"+ - "\u0f2a\3\2\2\2\u0146\u0f2c\3\2\2\2\u0148\u0f32\3\2\2\2\u014a\u0f3c\3\2"+ - "\2\2\u014c\u0f40\3\2\2\2\u014e\u0f47\3\2\2\2\u0150\u0f4b\3\2\2\2\u0152"+ - "\u0f51\3\2\2\2\u0154\u0f58\3\2\2\2\u0156\u0f5e\3\2\2\2\u0158\u0f64\3\2"+ - "\2\2\u015a\u0f69\3\2\2\2\u015c\u0f97\3\2\2\2\u015e\u0fac\3\2\2\2\u0160"+ - "\u0fc5\3\2\2\2\u0162\u0fc8\3\2\2\2\u0164\u0fce\3\2\2\2\u0166\u0fde\3\2"+ - "\2\2\u0168\u0fed\3\2\2\2\u016a\u0ff3\3\2\2\2\u016c\u1011\3\2\2\2\u016e"+ - "\u1013\3\2\2\2\u0170\u101a\3\2\2\2\u0172\u1026\3\2\2\2\u0174\u102c\3\2"+ - "\2\2\u0176\u1045\3\2\2\2\u0178\u1049\3\2\2\2\u017a\u104d\3\2\2\2\u017c"+ - "\u1058\3\2\2\2\u017e\u1096\3\2\2\2\u0180\u10ce\3\2\2\2\u0182\u10d0\3\2"+ - "\2\2\u0184\u10dd\3\2\2\2\u0186\u110f\3\2\2\2\u0188\u1121\3\2\2\2\u018a"+ - "\u1153\3\2\2\2\u018c\u1155\3\2\2\2\u018e\u1162\3\2\2\2\u0190\u116d\3\2"+ - "\2\2\u0192\u1188\3\2\2\2\u0194\u1192\3\2\2\2\u0196\u119c\3\2\2\2\u0198"+ - "\u119e\3\2\2\2\u019a\u11a8\3\2\2\2\u019c\u11ab\3\2\2\2\u019e\u11dc\3\2"+ - "\2\2\u01a0\u11eb\3\2\2\2\u01a2\u11ed\3\2\2\2\u01a4\u11f1\3\2\2\2\u01a6"+ - "\u11f8\3\2\2\2\u01a8\u1201\3\2\2\2\u01aa\u1207\3\2\2\2\u01ac\u120e\3\2"+ - "\2\2\u01ae\u1224\3\2\2\2\u01b0\u1226\3\2\2\2\u01b2\u1231\3\2\2\2\u01b4"+ - "\u1237\3\2\2\2\u01b6\u1260\3\2\2\2\u01b8\u12f9\3\2\2\2\u01ba\u1305\3\2"+ - "\2\2\u01bc\u1314\3\2\2\2\u01be\u131a\3\2\2\2\u01c0\u132d\3\2\2\2\u01c2"+ - "\u1337\3\2\2\2\u01c4\u1345\3\2\2\2\u01c6\u1347\3\2\2\2\u01c8\u134a\3\2"+ - "\2\2\u01ca\u1360\3\2\2\2\u01cc\u136c\3\2\2\2\u01ce\u1375\3\2\2\2\u01d0"+ - "\u1381\3\2\2\2\u01d2\u1385\3\2\2\2\u01d4\u1387\3\2\2\2\u01d6\u13af\3\2"+ - "\2\2\u01d8\u13b6\3\2\2\2\u01da\u13b8\3\2\2\2\u01dc\u13cf\3\2\2\2\u01de"+ - "\u13d5\3\2\2\2\u01e0\u13dd\3\2\2\2\u01e2\u13e0\3\2\2\2\u01e4\u13ed\3\2"+ - "\2\2\u01e6\u13ef\3\2\2\2\u01e8\u13f5\3\2\2\2\u01ea\u13f7\3\2\2\2\u01ec"+ - "\u13fe\3\2\2\2\u01ee\u1408\3\2\2\2\u01f0\u140a\3\2\2\2\u01f2\u1410\3\2"+ - "\2\2\u01f4\u1414\3\2\2\2\u01f6\u1416\3\2\2\2\u01f8\u1418\3\2\2\2\u01fa"+ - "\u142a\3\2\2\2\u01fc\u143a\3\2\2\2\u01fe\u143e\3\2\2\2\u0200\u1443\3\2"+ - "\2\2\u0202\u144e\3\2\2\2\u0204\u1453\3\2\2\2\u0206\u1455\3\2\2\2\u0208"+ - "\u1459\3\2\2\2\u020a\u1472\3\2\2\2\u020c\u1474\3\2\2\2\u020e\u1477\3\2"+ - "\2\2\u0210\u147c\3\2\2\2\u0212\u1480\3\2\2\2\u0214\u1494\3\2\2\2\u0216"+ - "\u14e1\3\2\2\2\u0218\u14f9\3\2\2\2\u021a\u14fb\3\2\2\2\u021c\u14ff\3\2"+ - "\2\2\u021e\u1505\3\2\2\2\u0220\u150d\3\2\2\2\u0222\u1515\3\2\2\2\u0224"+ - "\u151d\3\2\2\2\u0226\u1528\3\2\2\2\u0228\u1530\3\2\2\2\u022a\u1538\3\2"+ - "\2\2\u022c\u1540\3\2\2\2\u022e\u1548\3\2\2\2\u0230\u1558\3\2\2\2\u0232"+ - "\u1568\3\2\2\2\u0234\u156c\3\2\2\2\u0236\u156e\3\2\2\2\u0238\u1571\3\2"+ - "\2\2\u023a\u1586\3\2\2\2\u023c\u1625\3\2\2\2\u023e\u1627\3\2\2\2\u0240"+ - "\u163a\3\2\2\2\u0242\u163c\3\2\2\2\u0244\u1678\3\2\2\2\u0246\u1691\3\2"+ - "\2\2\u0248\u1693\3\2\2\2\u024a\u169c\3\2\2\2\u024c\u16ae\3\2\2\2\u024e"+ - "\u16bb\3\2\2\2\u0250\u16c6\3\2\2\2\u0252\u1736\3\2\2\2\u0254\u1748\3\2"+ - "\2\2\u0256\u1758\3\2\2\2\u0258\u1761\3\2\2\2\u025a\u176a\3\2\2\2\u025c"+ - "\u176c\3\2\2\2\u025e\u176e\3\2\2\2\u0260\u1770\3\2\2\2\u0262\u1772\3\2"+ - "\2\2\u0264\u1774\3\2\2\2\u0266\u1776\3\2\2\2\u0268\u1778\3\2\2\2\u026a"+ - "\u177a\3\2\2\2\u026c\u026e\5\4\3\2\u026d\u026c\3\2\2\2\u026d\u026e\3\2"+ - "\2\2\u026e\u0270\3\2\2\2\u026f\u0271\7\u03a6\2\2\u0270\u026f\3\2\2\2\u0270"+ - "\u0271\3\2\2\2\u0271\u0272\3\2\2\2\u0272\u0273\7\2\2\3\u0273\3\3\2\2\2"+ - "\u0274\u0276\5\6\4\2\u0275\u0277\7\u03a6\2\2\u0276\u0275\3\2\2\2\u0276"+ - "\u0277\3\2\2\2\u0277\u0278\3\2\2\2\u0278\u0279\7\u03b6\2\2\u0279\u027c"+ - "\3\2\2\2\u027a\u027c\5\b\5\2\u027b\u0274\3\2\2\2\u027b\u027a\3\2\2\2\u027c"+ - "\u027f\3\2\2\2\u027d\u027b\3\2\2\2\u027d\u027e\3\2\2\2\u027e\u0288\3\2"+ - "\2\2\u027f\u027d\3\2\2\2\u0280\u0285\5\6\4\2\u0281\u0283\7\u03a6\2\2\u0282"+ - "\u0281\3\2\2\2\u0282\u0283\3\2\2\2\u0283\u0284\3\2\2\2\u0284\u0286\7\u03b6"+ - "\2\2\u0285\u0282\3\2\2\2\u0285\u0286\3\2\2\2\u0286\u0289\3\2\2\2\u0287"+ - "\u0289\5\b\5\2\u0288\u0280\3\2\2\2\u0288\u0287\3\2\2\2\u0289\5\3\2\2\2"+ - "\u028a\u0292\5\n\6\2\u028b\u0292\5\f\7\2\u028c\u0292\5\16\b\2\u028d\u0292"+ - "\5\20\t\2\u028e\u0292\5\22\n\2\u028f\u0292\5\26\f\2\u0290\u0292\5\30\r"+ - "\2\u0291\u028a\3\2\2\2\u0291\u028b\3\2\2\2\u0291\u028c\3\2\2\2\u0291\u028d"+ - "\3\2\2\2\u0291\u028e\3\2\2\2\u0291\u028f\3\2\2\2\u0291\u0290\3\2\2\2\u0292"+ - "\7\3\2\2\2\u0293\u0294\7\u03b6\2\2\u0294\t\3\2\2\2\u0295\u02b9\5\32\16"+ - "\2\u0296\u02b9\5\34\17\2\u0297\u02b9\5\36\20\2\u0298\u02b9\5 \21\2\u0299"+ - "\u02b9\5\"\22\2\u029a\u02b9\5$\23\2\u029b\u02b9\5&\24\2\u029c\u02b9\5"+ - "(\25\2\u029d\u02b9\5*\26\2\u029e\u02b9\5,\27\2\u029f\u02b9\5.\30\2\u02a0"+ - "\u02b9\5\60\31\2\u02a1\u02b9\5r:\2\u02a2\u02b9\5t;\2\u02a3\u02b9\5v<\2"+ - "\u02a4\u02b9\5x=\2\u02a5\u02b9\5z>\2\u02a6\u02b9\5|?\2\u02a7\u02b9\5~"+ - "@\2\u02a8\u02b9\5\u0080A\2\u02a9\u02b9\5\u0082B\2\u02aa\u02b9\5\u0084"+ - "C\2\u02ab\u02b9\5\u0088E\2\u02ac\u02b9\5\u008aF\2\u02ad\u02b9\5\u008c"+ - "G\2\u02ae\u02b9\5\u008eH\2\u02af\u02b9\5\u0090I\2\u02b0\u02b9\5\u0092"+ - "J\2\u02b1\u02b9\5\u0094K\2\u02b2\u02b9\5\u0096L\2\u02b3\u02b9\5\u0098"+ - "M\2\u02b4\u02b9\5\u009aN\2\u02b5\u02b9\5\u009cO\2\u02b6\u02b9\5\u009e"+ - "P\2\u02b7\u02b9\5\u00a2R\2\u02b8\u0295\3\2\2\2\u02b8\u0296\3\2\2\2\u02b8"+ - "\u0297\3\2\2\2\u02b8\u0298\3\2\2\2\u02b8\u0299\3\2\2\2\u02b8\u029a\3\2"+ - "\2\2\u02b8\u029b\3\2\2\2\u02b8\u029c\3\2\2\2\u02b8\u029d\3\2\2\2\u02b8"+ - "\u029e\3\2\2\2\u02b8\u029f\3\2\2\2\u02b8\u02a0\3\2\2\2\u02b8\u02a1\3\2"+ - "\2\2\u02b8\u02a2\3\2\2\2\u02b8\u02a3\3\2\2\2\u02b8\u02a4\3\2\2\2\u02b8"+ - "\u02a5\3\2\2\2\u02b8\u02a6\3\2\2\2\u02b8\u02a7\3\2\2\2\u02b8\u02a8\3\2"+ - "\2\2\u02b8\u02a9\3\2\2\2\u02b8\u02aa\3\2\2\2\u02b8\u02ab\3\2\2\2\u02b8"+ - "\u02ac\3\2\2\2\u02b8\u02ad\3\2\2\2\u02b8\u02ae\3\2\2\2\u02b8\u02af\3\2"+ - "\2\2\u02b8\u02b0\3\2\2\2\u02b8\u02b1\3\2\2\2\u02b8\u02b2\3\2\2\2\u02b8"+ - "\u02b3\3\2\2\2\u02b8\u02b4\3\2\2\2\u02b8\u02b5\3\2\2\2\u02b8\u02b6\3\2"+ - "\2\2\u02b8\u02b7\3\2\2\2\u02b9\13\3\2\2\2\u02ba\u02c5\5\u00b4[\2\u02bb"+ - "\u02c5\5\u00acW\2\u02bc\u02c5\5\u00b6\\\2\u02bd\u02c5\5\u00a6T\2\u02be"+ - "\u02c5\5\u00b2Z\2\u02bf\u02c5\5\u00a4S\2\u02c0\u02c5\5\u00aeX\2\u02c1"+ - "\u02c5\5\u00b0Y\2\u02c2\u02c5\5\u00a8U\2\u02c3\u02c5\5\u00aaV\2\u02c4"+ - "\u02ba\3\2\2\2\u02c4\u02bb\3\2\2\2\u02c4\u02bc\3\2\2\2\u02c4\u02bd\3\2"+ - "\2\2\u02c4\u02be\3\2\2\2\u02c4\u02bf\3\2\2\2\u02c4\u02c0\3\2\2\2\u02c4"+ - "\u02c1\3\2\2\2\u02c4\u02c2\3\2\2\2\u02c4\u02c3\3\2\2\2\u02c5\r\3\2\2\2"+ - "\u02c6\u02d0\5\u00fe\u0080\2\u02c7\u02d0\5\u0100\u0081\2\u02c8\u02d0\5"+ - "\u0102\u0082\2\u02c9\u02d0\5\u0104\u0083\2\u02ca\u02d0\5\u0106\u0084\2"+ - "\u02cb\u02d0\5\u0108\u0085\2\u02cc\u02d0\5\u010a\u0086\2\u02cd\u02d0\5"+ - "\u010c\u0087\2\u02ce\u02d0\5\u010e\u0088\2\u02cf\u02c6\3\2\2\2\u02cf\u02c7"+ - "\3\2\2\2\u02cf\u02c8\3\2\2\2\u02cf\u02c9\3\2\2\2\u02cf\u02ca\3\2\2\2\u02cf"+ - "\u02cb\3\2\2\2\u02cf\u02cc\3\2\2\2\u02cf\u02cd\3\2\2\2\u02cf\u02ce\3\2"+ - "\2\2\u02d0\17\3\2\2\2\u02d1\u02e1\5\u011e\u0090\2\u02d2\u02e1\5\u0120"+ - "\u0091\2\u02d3\u02e1\5\u0122\u0092\2\u02d4\u02e1\5\u0124\u0093\2\u02d5"+ - "\u02e1\5\u0126\u0094\2\u02d6\u02e1\5\u0128\u0095\2\u02d7\u02e1\5\u012a"+ - "\u0096\2\u02d8\u02e1\5\u012c\u0097\2\u02d9\u02e1\5\u012e\u0098\2\u02da"+ - "\u02e1\5\u0146\u00a4\2\u02db\u02e1\5\u0148\u00a5\2\u02dc\u02e1\5\u014a"+ - "\u00a6\2\u02dd\u02e1\5\u014c\u00a7\2\u02de\u02e1\5\u014e\u00a8\2\u02df"+ - "\u02e1\5\u0150\u00a9\2\u02e0\u02d1\3\2\2\2\u02e0\u02d2\3\2\2\2\u02e0\u02d3"+ - "\3\2\2\2\u02e0\u02d4\3\2\2\2\u02e0\u02d5\3\2\2\2\u02e0\u02d6\3\2\2\2\u02e0"+ - "\u02d7\3\2\2\2\u02e0\u02d8\3\2\2\2\u02e0\u02d9\3\2\2\2\u02e0\u02da\3\2"+ - "\2\2\u02e0\u02db\3\2\2\2\u02e0\u02dc\3\2\2\2\u02e0\u02dd\3\2\2\2\u02e0"+ - "\u02de\3\2\2\2\u02e0\u02df\3\2\2\2\u02e1\21\3\2\2\2\u02e2\u02e6\5\u0152"+ - "\u00aa\2\u02e3\u02e6\5\u0154\u00ab\2\u02e4\u02e6\5\u0156\u00ac\2\u02e5"+ - "\u02e2\3\2\2\2\u02e5\u02e3\3\2\2\2\u02e5\u02e4\3\2\2\2\u02e6\23\3\2\2"+ - "\2\u02e7\u02f2\5\u015a\u00ae\2\u02e8\u02f2\5\u015c\u00af\2\u02e9\u02f2"+ - "\5\u015e\u00b0\2\u02ea\u02f2\5\u0162\u00b2\2\u02eb\u02f2\5\u0164\u00b3"+ - "\2\u02ec\u02f2\5\u0166\u00b4\2\u02ed\u02f2\5\u016a\u00b6\2\u02ee\u02f2"+ - "\5\u0160\u00b1\2\u02ef\u02f2\5\u0168\u00b5\2\u02f0\u02f2\5\u016c\u00b7"+ - "\2\u02f1\u02e7\3\2\2\2\u02f1\u02e8\3\2\2\2\u02f1\u02e9\3\2\2\2\u02f1\u02ea"+ - "\3\2\2\2\u02f1\u02eb\3\2\2\2\u02f1\u02ec\3\2\2\2\u02f1\u02ed\3\2\2\2\u02f1"+ - "\u02ee\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f1\u02f0\3\2\2\2\u02f2\25\3\2\2"+ - "\2\u02f3\u030d\5\u017e\u00c0\2\u02f4\u030d\5\u0180\u00c1\2\u02f5\u030d"+ - "\5\u0182\u00c2\2\u02f6\u030d\5\u0184\u00c3\2\u02f7\u030d\5\u0186\u00c4"+ - "\2\u02f8\u030d\5\u0188\u00c5\2\u02f9\u030d\5\u018a\u00c6\2\u02fa\u030d"+ - "\5\u018c\u00c7\2\u02fb\u030d\5\u01a4\u00d3\2\u02fc\u030d\5\u01a6\u00d4"+ - "\2\u02fd\u030d\5\u01a8\u00d5\2\u02fe\u030d\5\u01aa\u00d6\2\u02ff\u030d"+ - "\5\u01ac\u00d7\2\u0300\u030d\5\u01b0\u00d9\2\u0301\u030d\5\u01b2\u00da"+ - "\2\u0302\u030d\5\u01b4\u00db\2\u0303\u030d\5\u01b6\u00dc\2\u0304\u030d"+ - "\5\u01b8\u00dd\2\u0305\u030d\5\u01c6\u00e4\2\u0306\u030d\5\u01c8\u00e5"+ - "\2\u0307\u030d\5\u01ca\u00e6\2\u0308\u030d\5\u01cc\u00e7\2\u0309\u030d"+ - "\5\u01ce\u00e8\2\u030a\u030d\5\u01d0\u00e9\2\u030b\u030d\5\u01d2\u00ea"+ - "\2\u030c\u02f3\3\2\2\2\u030c\u02f4\3\2\2\2\u030c\u02f5\3\2\2\2\u030c\u02f6"+ - "\3\2\2\2\u030c\u02f7\3\2\2\2\u030c\u02f8\3\2\2\2\u030c\u02f9\3\2\2\2\u030c"+ - "\u02fa\3\2\2\2\u030c\u02fb\3\2\2\2\u030c\u02fc\3\2\2\2\u030c\u02fd\3\2"+ - "\2\2\u030c\u02fe\3\2\2\2\u030c\u02ff\3\2\2\2\u030c\u0300\3\2\2\2\u030c"+ - "\u0301\3\2\2\2\u030c\u0302\3\2\2\2\u030c\u0303\3\2\2\2\u030c\u0304\3\2"+ - "\2\2\u030c\u0305\3\2\2\2\u030c\u0306\3\2\2\2\u030c\u0307\3\2\2\2\u030c"+ - "\u0308\3\2\2\2\u030c\u0309\3\2\2\2\u030c\u030a\3\2\2\2\u030c\u030b\3\2"+ - "\2\2\u030d\27\3\2\2\2\u030e\u0313\5\u01dc\u00ef\2\u030f\u0313\5\u01de"+ - "\u00f0\2\u0310\u0313\5\u01e0\u00f1\2\u0311\u0313\5\u01e2\u00f2\2\u0312"+ - "\u030e\3\2\2\2\u0312\u030f\3\2\2\2\u0312\u0310\3\2\2\2\u0312\u0311\3\2"+ - "\2\2\u0313\31\3\2\2\2\u0314\u0315\7\37\2\2\u0315\u0317\t\2\2\2\u0316\u0318"+ - "\5\u0238\u011d\2\u0317\u0316\3\2\2\2\u0317\u0318\3\2\2\2\u0318\u0319\3"+ - "\2\2\2\u0319\u031d\5\u0200\u0101\2\u031a\u031c\5\62\32\2\u031b\u031a\3"+ - "\2\2\2\u031c\u031f\3\2\2\2\u031d\u031b\3\2\2\2\u031d\u031e\3\2\2\2\u031e"+ - "\33\3\2\2\2\u031f\u031d\3\2\2\2\u0320\u0322\7\37\2\2\u0321\u0323\5\64"+ - "\33\2\u0322\u0321\3\2\2\2\u0322\u0323\3\2\2\2\u0323\u0324\3\2\2\2\u0324"+ - "\u0326\7\u013d\2\2\u0325\u0327\5\u0238\u011d\2\u0326\u0325\3\2\2\2\u0326"+ - "\u0327\3\2\2\2\u0327\u0328\3\2\2\2\u0328\u0329\5\u01e6\u00f4\2\u0329\u032a"+ - "\7f\2\2\u032a\u032b\7\u01df\2\2\u032b\u0332\5\66\34\2\u032c\u032d\7f\2"+ - "\2\u032d\u032f\7\u0119\2\2\u032e\u0330\7c\2\2\u032f\u032e\3\2\2\2\u032f"+ - "\u0330\3\2\2\2\u0330\u0331\3\2\2\2\u0331\u0333\7\u01ba\2\2\u0332\u032c"+ - "\3\2\2\2\u0332\u0333\3\2\2\2\u0333\u0335\3\2\2\2\u0334\u0336\5> \2\u0335"+ - "\u0334\3\2\2\2\u0335\u0336\3\2\2\2\u0336\u0339\3\2\2\2\u0337\u0338\7\u0116"+ - "\2\2\u0338\u033a\7\u03c2\2\2\u0339\u0337\3\2\2\2\u0339\u033a\3\2\2\2\u033a"+ - "\u033b\3\2\2\2\u033b\u033c\7\u012f\2\2\u033c\u033d\5\u0158\u00ad\2\u033d"+ - "\35\3\2\2\2\u033e\u0340\7\37\2\2\u033f\u0341\t\3\2\2\u0340\u033f\3\2\2"+ - "\2\u0340\u0341\3\2\2\2\u0341\u0343\3\2\2\2\u0342\u0344\t\4\2\2\u0343\u0342"+ + "\u020f\u0211\u0211\u0213\u0214\u0217\u0222\u0266\u0266\f\2TT\u0080\u0080"+ + "\u00b6\u00b8\u00ba\u00ba\u00d7\u00d7\u00ee\u00ee\u0111\u0111\u01a8\u01a8"+ + "\u0228\u022f\u0270\u0398\2\u1b71\2\u026d\3\2\2\2\4\u027d\3\2\2\2\6\u0291"+ + "\3\2\2\2\b\u0293\3\2\2\2\n\u02b8\3\2\2\2\f\u02c4\3\2\2\2\16\u02cf\3\2"+ + "\2\2\20\u02e0\3\2\2\2\22\u02e5\3\2\2\2\24\u02f1\3\2\2\2\26\u030c\3\2\2"+ + "\2\30\u0312\3\2\2\2\32\u0314\3\2\2\2\34\u0320\3\2\2\2\36\u033e\3\2\2\2"+ + " \u035f\3\2\2\2\"\u0392\3\2\2\2$\u03ac\3\2\2\2&\u03c8\3\2\2\2(\u0429\3"+ + "\2\2\2*\u042b\3\2\2\2,\u043d\3\2\2\2.\u047a\3\2\2\2\60\u048d\3\2\2\2\62"+ + "\u04c2\3\2\2\2\64\u04c4\3\2\2\2\66\u04f0\3\2\2\28\u04f6\3\2\2\2:\u04f8"+ + "\3\2\2\2<\u050d\3\2\2\2>\u0514\3\2\2\2@\u0516\3\2\2\2B\u0524\3\2\2\2D"+ + "\u0526\3\2\2\2F\u052a\3\2\2\2H\u0544\3\2\2\2J\u0554\3\2\2\2L\u0556\3\2"+ + "\2\2N\u0566\3\2\2\2P\u0568\3\2\2\2R\u0583\3\2\2\2T\u05c1\3\2\2\2V\u05c3"+ + "\3\2\2\2X\u05dd\3\2\2\2Z\u05e5\3\2\2\2\\\u0603\3\2\2\2^\u0691\3\2\2\2"+ + "`\u0693\3\2\2\2b\u0696\3\2\2\2d\u06e0\3\2\2\2f\u06f7\3\2\2\2h\u0766\3"+ + "\2\2\2j\u076b\3\2\2\2l\u076d\3\2\2\2n\u0777\3\2\2\2p\u07ac\3\2\2\2r\u07c0"+ + "\3\2\2\2t\u07c2\3\2\2\2v\u07e5\3\2\2\2x\u07ee\3\2\2\2z\u07f5\3\2\2\2|"+ + "\u080c\3\2\2\2~\u0815\3\2\2\2\u0080\u0824\3\2\2\2\u0082\u0838\3\2\2\2"+ + "\u0084\u084c\3\2\2\2\u0086\u099e\3\2\2\2\u0088\u09a0\3\2\2\2\u008a\u09a7"+ + "\3\2\2\2\u008c\u09ae\3\2\2\2\u008e\u09c4\3\2\2\2\u0090\u09cc\3\2\2\2\u0092"+ + "\u09d3\3\2\2\2\u0094\u09da\3\2\2\2\u0096\u09e1\3\2\2\2\u0098\u09ed\3\2"+ + "\2\2\u009a\u09f7\3\2\2\2\u009c\u09fe\3\2\2\2\u009e\u0a0e\3\2\2\2\u00a0"+ + "\u0a18\3\2\2\2\u00a2\u0a1c\3\2\2\2\u00a4\u0a22\3\2\2\2\u00a6\u0a2e\3\2"+ + "\2\2\u00a8\u0a30\3\2\2\2\u00aa\u0a37\3\2\2\2\u00ac\u0a39\3\2\2\2\u00ae"+ + "\u0a6b\3\2\2\2\u00b0\u0ab5\3\2\2\2\u00b2\u0af0\3\2\2\2\u00b4\u0b48\3\2"+ + "\2\2\u00b6\u0b4c\3\2\2\2\u00b8\u0b5d\3\2\2\2\u00ba\u0b5f\3\2\2\2\u00bc"+ + "\u0b67\3\2\2\2\u00be\u0b6f\3\2\2\2\u00c0\u0b71\3\2\2\2\u00c2\u0b8f\3\2"+ + "\2\2\u00c4\u0bc6\3\2\2\2\u00c6\u0bcf\3\2\2\2\u00c8\u0be3\3\2\2\2\u00ca"+ + "\u0bef\3\2\2\2\u00cc\u0bf3\3\2\2\2\u00ce\u0c14\3\2\2\2\u00d0\u0c29\3\2"+ + "\2\2\u00d2\u0c33\3\2\2\2\u00d4\u0c37\3\2\2\2\u00d6\u0c50\3\2\2\2\u00d8"+ + "\u0c7a\3\2\2\2\u00da\u0c7c\3\2\2\2\u00dc\u0c8b\3\2\2\2\u00de\u0cb9\3\2"+ + "\2\2\u00e0\u0cc3\3\2\2\2\u00e2\u0ccd\3\2\2\2\u00e4\u0cf7\3\2\2\2\u00e6"+ + "\u0cf9\3\2\2\2\u00e8\u0d0a\3\2\2\2\u00ea\u0d10\3\2\2\2\u00ec\u0d20\3\2"+ + "\2\2\u00ee\u0d24\3\2\2\2\u00f0\u0d4a\3\2\2\2\u00f2\u0d70\3\2\2\2\u00f4"+ + "\u0d7e\3\2\2\2\u00f6\u0d86\3\2\2\2\u00f8\u0d88\3\2\2\2\u00fa\u0da2\3\2"+ + "\2\2\u00fc\u0da6\3\2\2\2\u00fe\u0db3\3\2\2\2\u0100\u0dbf\3\2\2\2\u0102"+ + "\u0dc3\3\2\2\2\u0104\u0dd4\3\2\2\2\u0106\u0de5\3\2\2\2\u0108\u0de8\3\2"+ + "\2\2\u010a\u0df2\3\2\2\2\u010c\u0df6\3\2\2\2\u010e\u0e00\3\2\2\2\u0110"+ + "\u0e03\3\2\2\2\u0112\u0e08\3\2\2\2\u0114\u0e1c\3\2\2\2\u0116\u0e1e\3\2"+ + "\2\2\u0118\u0e2f\3\2\2\2\u011a\u0e38\3\2\2\2\u011c\u0e41\3\2\2\2\u011e"+ + "\u0e43\3\2\2\2\u0120\u0e51\3\2\2\2\u0122\u0e5c\3\2\2\2\u0124\u0e65\3\2"+ + "\2\2\u0126\u0e68\3\2\2\2\u0128\u0e70\3\2\2\2\u012a\u0e89\3\2\2\2\u012c"+ + "\u0e95\3\2\2\2\u012e\u0e98\3\2\2\2\u0130\u0eb8\3\2\2\2\u0132\u0eba\3\2"+ + "\2\2\u0134\u0ebc\3\2\2\2\u0136\u0ebe\3\2\2\2\u0138\u0ec0\3\2\2\2\u013a"+ + "\u0ef5\3\2\2\2\u013c\u0ef7\3\2\2\2\u013e\u0efd\3\2\2\2\u0140\u0f11\3\2"+ + "\2\2\u0142\u0f1f\3\2\2\2\u0144\u0f2a\3\2\2\2\u0146\u0f2c\3\2\2\2\u0148"+ + "\u0f32\3\2\2\2\u014a\u0f3c\3\2\2\2\u014c\u0f40\3\2\2\2\u014e\u0f47\3\2"+ + "\2\2\u0150\u0f4b\3\2\2\2\u0152\u0f51\3\2\2\2\u0154\u0f58\3\2\2\2\u0156"+ + "\u0f5e\3\2\2\2\u0158\u0f64\3\2\2\2\u015a\u0f69\3\2\2\2\u015c\u0f97\3\2"+ + "\2\2\u015e\u0fac\3\2\2\2\u0160\u0fc5\3\2\2\2\u0162\u0fc8\3\2\2\2\u0164"+ + "\u0fce\3\2\2\2\u0166\u0fde\3\2\2\2\u0168\u0fed\3\2\2\2\u016a\u0ff3\3\2"+ + "\2\2\u016c\u1011\3\2\2\2\u016e\u1013\3\2\2\2\u0170\u101a\3\2\2\2\u0172"+ + "\u1026\3\2\2\2\u0174\u102c\3\2\2\2\u0176\u1045\3\2\2\2\u0178\u1049\3\2"+ + "\2\2\u017a\u104d\3\2\2\2\u017c\u1058\3\2\2\2\u017e\u1096\3\2\2\2\u0180"+ + "\u10ce\3\2\2\2\u0182\u10d0\3\2\2\2\u0184\u10dd\3\2\2\2\u0186\u110f\3\2"+ + "\2\2\u0188\u1121\3\2\2\2\u018a\u1153\3\2\2\2\u018c\u1155\3\2\2\2\u018e"+ + "\u1162\3\2\2\2\u0190\u116d\3\2\2\2\u0192\u1188\3\2\2\2\u0194\u1192\3\2"+ + "\2\2\u0196\u119c\3\2\2\2\u0198\u119e\3\2\2\2\u019a\u11a8\3\2\2\2\u019c"+ + "\u11ab\3\2\2\2\u019e\u11dc\3\2\2\2\u01a0\u11eb\3\2\2\2\u01a2\u11ed\3\2"+ + "\2\2\u01a4\u11f1\3\2\2\2\u01a6\u11f8\3\2\2\2\u01a8\u1201\3\2\2\2\u01aa"+ + "\u1207\3\2\2\2\u01ac\u120e\3\2\2\2\u01ae\u1224\3\2\2\2\u01b0\u1226\3\2"+ + "\2\2\u01b2\u1231\3\2\2\2\u01b4\u1237\3\2\2\2\u01b6\u1260\3\2\2\2\u01b8"+ + "\u12f9\3\2\2\2\u01ba\u1305\3\2\2\2\u01bc\u1314\3\2\2\2\u01be\u131a\3\2"+ + "\2\2\u01c0\u132d\3\2\2\2\u01c2\u1337\3\2\2\2\u01c4\u1345\3\2\2\2\u01c6"+ + "\u1347\3\2\2\2\u01c8\u134a\3\2\2\2\u01ca\u1360\3\2\2\2\u01cc\u136c\3\2"+ + "\2\2\u01ce\u1375\3\2\2\2\u01d0\u1381\3\2\2\2\u01d2\u1385\3\2\2\2\u01d4"+ + "\u1387\3\2\2\2\u01d6\u13af\3\2\2\2\u01d8\u13b6\3\2\2\2\u01da\u13b8\3\2"+ + "\2\2\u01dc\u13cf\3\2\2\2\u01de\u13d5\3\2\2\2\u01e0\u13dd\3\2\2\2\u01e2"+ + "\u13e0\3\2\2\2\u01e4\u13ed\3\2\2\2\u01e6\u13ef\3\2\2\2\u01e8\u13f5\3\2"+ + "\2\2\u01ea\u13f7\3\2\2\2\u01ec\u13fe\3\2\2\2\u01ee\u1408\3\2\2\2\u01f0"+ + "\u140a\3\2\2\2\u01f2\u1410\3\2\2\2\u01f4\u1414\3\2\2\2\u01f6\u1416\3\2"+ + "\2\2\u01f8\u1418\3\2\2\2\u01fa\u142a\3\2\2\2\u01fc\u143a\3\2\2\2\u01fe"+ + "\u143e\3\2\2\2\u0200\u1443\3\2\2\2\u0202\u144e\3\2\2\2\u0204\u1453\3\2"+ + "\2\2\u0206\u1455\3\2\2\2\u0208\u1459\3\2\2\2\u020a\u1472\3\2\2\2\u020c"+ + "\u1474\3\2\2\2\u020e\u1477\3\2\2\2\u0210\u147c\3\2\2\2\u0212\u1480\3\2"+ + "\2\2\u0214\u1494\3\2\2\2\u0216\u14e1\3\2\2\2\u0218\u14f9\3\2\2\2\u021a"+ + "\u14fb\3\2\2\2\u021c\u14ff\3\2\2\2\u021e\u1505\3\2\2\2\u0220\u150d\3\2"+ + "\2\2\u0222\u1515\3\2\2\2\u0224\u151d\3\2\2\2\u0226\u1528\3\2\2\2\u0228"+ + "\u1530\3\2\2\2\u022a\u1538\3\2\2\2\u022c\u1540\3\2\2\2\u022e\u1548\3\2"+ + "\2\2\u0230\u1558\3\2\2\2\u0232\u1568\3\2\2\2\u0234\u156c\3\2\2\2\u0236"+ + "\u156e\3\2\2\2\u0238\u1571\3\2\2\2\u023a\u1586\3\2\2\2\u023c\u1625\3\2"+ + "\2\2\u023e\u1627\3\2\2\2\u0240\u163a\3\2\2\2\u0242\u163c\3\2\2\2\u0244"+ + "\u1678\3\2\2\2\u0246\u1691\3\2\2\2\u0248\u1693\3\2\2\2\u024a\u169c\3\2"+ + "\2\2\u024c\u16ae\3\2\2\2\u024e\u16bb\3\2\2\2\u0250\u16c6\3\2\2\2\u0252"+ + "\u1736\3\2\2\2\u0254\u1748\3\2\2\2\u0256\u1758\3\2\2\2\u0258\u1761\3\2"+ + "\2\2\u025a\u176a\3\2\2\2\u025c\u176c\3\2\2\2\u025e\u176e\3\2\2\2\u0260"+ + "\u1770\3\2\2\2\u0262\u1772\3\2\2\2\u0264\u1774\3\2\2\2\u0266\u1776\3\2"+ + "\2\2\u0268\u1778\3\2\2\2\u026a\u177a\3\2\2\2\u026c\u026e\5\4\3\2\u026d"+ + "\u026c\3\2\2\2\u026d\u026e\3\2\2\2\u026e\u0270\3\2\2\2\u026f\u0271\7\u03a6"+ + "\2\2\u0270\u026f\3\2\2\2\u0270\u0271\3\2\2\2\u0271\u0272\3\2\2\2\u0272"+ + "\u0273\7\2\2\3\u0273\3\3\2\2\2\u0274\u0276\5\6\4\2\u0275\u0277\7\u03a6"+ + "\2\2\u0276\u0275\3\2\2\2\u0276\u0277\3\2\2\2\u0277\u0278\3\2\2\2\u0278"+ + "\u0279\7\u03b6\2\2\u0279\u027c\3\2\2\2\u027a\u027c\5\b\5\2\u027b\u0274"+ + "\3\2\2\2\u027b\u027a\3\2\2\2\u027c\u027f\3\2\2\2\u027d\u027b\3\2\2\2\u027d"+ + "\u027e\3\2\2\2\u027e\u0288\3\2\2\2\u027f\u027d\3\2\2\2\u0280\u0285\5\6"+ + "\4\2\u0281\u0283\7\u03a6\2\2\u0282\u0281\3\2\2\2\u0282\u0283\3\2\2\2\u0283"+ + "\u0284\3\2\2\2\u0284\u0286\7\u03b6\2\2\u0285\u0282\3\2\2\2\u0285\u0286"+ + "\3\2\2\2\u0286\u0289\3\2\2\2\u0287\u0289\5\b\5\2\u0288\u0280\3\2\2\2\u0288"+ + "\u0287\3\2\2\2\u0289\5\3\2\2\2\u028a\u0292\5\n\6\2\u028b\u0292\5\f\7\2"+ + "\u028c\u0292\5\16\b\2\u028d\u0292\5\20\t\2\u028e\u0292\5\22\n\2\u028f"+ + "\u0292\5\26\f\2\u0290\u0292\5\30\r\2\u0291\u028a\3\2\2\2\u0291\u028b\3"+ + "\2\2\2\u0291\u028c\3\2\2\2\u0291\u028d\3\2\2\2\u0291\u028e\3\2\2\2\u0291"+ + "\u028f\3\2\2\2\u0291\u0290\3\2\2\2\u0292\7\3\2\2\2\u0293\u0294\7\u03b6"+ + "\2\2\u0294\t\3\2\2\2\u0295\u02b9\5\32\16\2\u0296\u02b9\5\34\17\2\u0297"+ + "\u02b9\5\36\20\2\u0298\u02b9\5 \21\2\u0299\u02b9\5\"\22\2\u029a\u02b9"+ + "\5$\23\2\u029b\u02b9\5&\24\2\u029c\u02b9\5(\25\2\u029d\u02b9\5*\26\2\u029e"+ + "\u02b9\5,\27\2\u029f\u02b9\5.\30\2\u02a0\u02b9\5\60\31\2\u02a1\u02b9\5"+ + "r:\2\u02a2\u02b9\5t;\2\u02a3\u02b9\5v<\2\u02a4\u02b9\5x=\2\u02a5\u02b9"+ + "\5z>\2\u02a6\u02b9\5|?\2\u02a7\u02b9\5~@\2\u02a8\u02b9\5\u0080A\2\u02a9"+ + "\u02b9\5\u0082B\2\u02aa\u02b9\5\u0084C\2\u02ab\u02b9\5\u0088E\2\u02ac"+ + "\u02b9\5\u008aF\2\u02ad\u02b9\5\u008cG\2\u02ae\u02b9\5\u008eH\2\u02af"+ + "\u02b9\5\u0090I\2\u02b0\u02b9\5\u0092J\2\u02b1\u02b9\5\u0094K\2\u02b2"+ + "\u02b9\5\u0096L\2\u02b3\u02b9\5\u0098M\2\u02b4\u02b9\5\u009aN\2\u02b5"+ + "\u02b9\5\u009cO\2\u02b6\u02b9\5\u009eP\2\u02b7\u02b9\5\u00a2R\2\u02b8"+ + "\u0295\3\2\2\2\u02b8\u0296\3\2\2\2\u02b8\u0297\3\2\2\2\u02b8\u0298\3\2"+ + "\2\2\u02b8\u0299\3\2\2\2\u02b8\u029a\3\2\2\2\u02b8\u029b\3\2\2\2\u02b8"+ + "\u029c\3\2\2\2\u02b8\u029d\3\2\2\2\u02b8\u029e\3\2\2\2\u02b8\u029f\3\2"+ + "\2\2\u02b8\u02a0\3\2\2\2\u02b8\u02a1\3\2\2\2\u02b8\u02a2\3\2\2\2\u02b8"+ + "\u02a3\3\2\2\2\u02b8\u02a4\3\2\2\2\u02b8\u02a5\3\2\2\2\u02b8\u02a6\3\2"+ + "\2\2\u02b8\u02a7\3\2\2\2\u02b8\u02a8\3\2\2\2\u02b8\u02a9\3\2\2\2\u02b8"+ + "\u02aa\3\2\2\2\u02b8\u02ab\3\2\2\2\u02b8\u02ac\3\2\2\2\u02b8\u02ad\3\2"+ + "\2\2\u02b8\u02ae\3\2\2\2\u02b8\u02af\3\2\2\2\u02b8\u02b0\3\2\2\2\u02b8"+ + "\u02b1\3\2\2\2\u02b8\u02b2\3\2\2\2\u02b8\u02b3\3\2\2\2\u02b8\u02b4\3\2"+ + "\2\2\u02b8\u02b5\3\2\2\2\u02b8\u02b6\3\2\2\2\u02b8\u02b7\3\2\2\2\u02b9"+ + "\13\3\2\2\2\u02ba\u02c5\5\u00b4[\2\u02bb\u02c5\5\u00acW\2\u02bc\u02c5"+ + "\5\u00b6\\\2\u02bd\u02c5\5\u00a6T\2\u02be\u02c5\5\u00b2Z\2\u02bf\u02c5"+ + "\5\u00a4S\2\u02c0\u02c5\5\u00aeX\2\u02c1\u02c5\5\u00b0Y\2\u02c2\u02c5"+ + "\5\u00a8U\2\u02c3\u02c5\5\u00aaV\2\u02c4\u02ba\3\2\2\2\u02c4\u02bb\3\2"+ + "\2\2\u02c4\u02bc\3\2\2\2\u02c4\u02bd\3\2\2\2\u02c4\u02be\3\2\2\2\u02c4"+ + "\u02bf\3\2\2\2\u02c4\u02c0\3\2\2\2\u02c4\u02c1\3\2\2\2\u02c4\u02c2\3\2"+ + "\2\2\u02c4\u02c3\3\2\2\2\u02c5\r\3\2\2\2\u02c6\u02d0\5\u00fe\u0080\2\u02c7"+ + "\u02d0\5\u0100\u0081\2\u02c8\u02d0\5\u0102\u0082\2\u02c9\u02d0\5\u0104"+ + "\u0083\2\u02ca\u02d0\5\u0106\u0084\2\u02cb\u02d0\5\u0108\u0085\2\u02cc"+ + "\u02d0\5\u010a\u0086\2\u02cd\u02d0\5\u010c\u0087\2\u02ce\u02d0\5\u010e"+ + "\u0088\2\u02cf\u02c6\3\2\2\2\u02cf\u02c7\3\2\2\2\u02cf\u02c8\3\2\2\2\u02cf"+ + "\u02c9\3\2\2\2\u02cf\u02ca\3\2\2\2\u02cf\u02cb\3\2\2\2\u02cf\u02cc\3\2"+ + "\2\2\u02cf\u02cd\3\2\2\2\u02cf\u02ce\3\2\2\2\u02d0\17\3\2\2\2\u02d1\u02e1"+ + "\5\u011e\u0090\2\u02d2\u02e1\5\u0120\u0091\2\u02d3\u02e1\5\u0122\u0092"+ + "\2\u02d4\u02e1\5\u0124\u0093\2\u02d5\u02e1\5\u0126\u0094\2\u02d6\u02e1"+ + "\5\u0128\u0095\2\u02d7\u02e1\5\u012a\u0096\2\u02d8\u02e1\5\u012c\u0097"+ + "\2\u02d9\u02e1\5\u012e\u0098\2\u02da\u02e1\5\u0146\u00a4\2\u02db\u02e1"+ + "\5\u0148\u00a5\2\u02dc\u02e1\5\u014a\u00a6\2\u02dd\u02e1\5\u014c\u00a7"+ + "\2\u02de\u02e1\5\u014e\u00a8\2\u02df\u02e1\5\u0150\u00a9\2\u02e0\u02d1"+ + "\3\2\2\2\u02e0\u02d2\3\2\2\2\u02e0\u02d3\3\2\2\2\u02e0\u02d4\3\2\2\2\u02e0"+ + "\u02d5\3\2\2\2\u02e0\u02d6\3\2\2\2\u02e0\u02d7\3\2\2\2\u02e0\u02d8\3\2"+ + "\2\2\u02e0\u02d9\3\2\2\2\u02e0\u02da\3\2\2\2\u02e0\u02db\3\2\2\2\u02e0"+ + "\u02dc\3\2\2\2\u02e0\u02dd\3\2\2\2\u02e0\u02de\3\2\2\2\u02e0\u02df\3\2"+ + "\2\2\u02e1\21\3\2\2\2\u02e2\u02e6\5\u0152\u00aa\2\u02e3\u02e6\5\u0154"+ + "\u00ab\2\u02e4\u02e6\5\u0156\u00ac\2\u02e5\u02e2\3\2\2\2\u02e5\u02e3\3"+ + "\2\2\2\u02e5\u02e4\3\2\2\2\u02e6\23\3\2\2\2\u02e7\u02f2\5\u015a\u00ae"+ + "\2\u02e8\u02f2\5\u015c\u00af\2\u02e9\u02f2\5\u015e\u00b0\2\u02ea\u02f2"+ + "\5\u0162\u00b2\2\u02eb\u02f2\5\u0164\u00b3\2\u02ec\u02f2\5\u0166\u00b4"+ + "\2\u02ed\u02f2\5\u016a\u00b6\2\u02ee\u02f2\5\u0160\u00b1\2\u02ef\u02f2"+ + "\5\u0168\u00b5\2\u02f0\u02f2\5\u016c\u00b7\2\u02f1\u02e7\3\2\2\2\u02f1"+ + "\u02e8\3\2\2\2\u02f1\u02e9\3\2\2\2\u02f1\u02ea\3\2\2\2\u02f1\u02eb\3\2"+ + "\2\2\u02f1\u02ec\3\2\2\2\u02f1\u02ed\3\2\2\2\u02f1\u02ee\3\2\2\2\u02f1"+ + "\u02ef\3\2\2\2\u02f1\u02f0\3\2\2\2\u02f2\25\3\2\2\2\u02f3\u030d\5\u017e"+ + "\u00c0\2\u02f4\u030d\5\u0180\u00c1\2\u02f5\u030d\5\u0182\u00c2\2\u02f6"+ + "\u030d\5\u0184\u00c3\2\u02f7\u030d\5\u0186\u00c4\2\u02f8\u030d\5\u0188"+ + "\u00c5\2\u02f9\u030d\5\u018a\u00c6\2\u02fa\u030d\5\u018c\u00c7\2\u02fb"+ + "\u030d\5\u01a4\u00d3\2\u02fc\u030d\5\u01a6\u00d4\2\u02fd\u030d\5\u01a8"+ + "\u00d5\2\u02fe\u030d\5\u01aa\u00d6\2\u02ff\u030d\5\u01ac\u00d7\2\u0300"+ + "\u030d\5\u01b0\u00d9\2\u0301\u030d\5\u01b2\u00da\2\u0302\u030d\5\u01b4"+ + "\u00db\2\u0303\u030d\5\u01b6\u00dc\2\u0304\u030d\5\u01b8\u00dd\2\u0305"+ + "\u030d\5\u01c6\u00e4\2\u0306\u030d\5\u01c8\u00e5\2\u0307\u030d\5\u01ca"+ + "\u00e6\2\u0308\u030d\5\u01cc\u00e7\2\u0309\u030d\5\u01ce\u00e8\2\u030a"+ + "\u030d\5\u01d0\u00e9\2\u030b\u030d\5\u01d2\u00ea\2\u030c\u02f3\3\2\2\2"+ + "\u030c\u02f4\3\2\2\2\u030c\u02f5\3\2\2\2\u030c\u02f6\3\2\2\2\u030c\u02f7"+ + "\3\2\2\2\u030c\u02f8\3\2\2\2\u030c\u02f9\3\2\2\2\u030c\u02fa\3\2\2\2\u030c"+ + "\u02fb\3\2\2\2\u030c\u02fc\3\2\2\2\u030c\u02fd\3\2\2\2\u030c\u02fe\3\2"+ + "\2\2\u030c\u02ff\3\2\2\2\u030c\u0300\3\2\2\2\u030c\u0301\3\2\2\2\u030c"+ + "\u0302\3\2\2\2\u030c\u0303\3\2\2\2\u030c\u0304\3\2\2\2\u030c\u0305\3\2"+ + "\2\2\u030c\u0306\3\2\2\2\u030c\u0307\3\2\2\2\u030c\u0308\3\2\2\2\u030c"+ + "\u0309\3\2\2\2\u030c\u030a\3\2\2\2\u030c\u030b\3\2\2\2\u030d\27\3\2\2"+ + "\2\u030e\u0313\5\u01dc\u00ef\2\u030f\u0313\5\u01de\u00f0\2\u0310\u0313"+ + "\5\u01e0\u00f1\2\u0311\u0313\5\u01e2\u00f2\2\u0312\u030e\3\2\2\2\u0312"+ + "\u030f\3\2\2\2\u0312\u0310\3\2\2\2\u0312\u0311\3\2\2\2\u0313\31\3\2\2"+ + "\2\u0314\u0315\7\37\2\2\u0315\u0317\t\2\2\2\u0316\u0318\5\u0238\u011d"+ + "\2\u0317\u0316\3\2\2\2\u0317\u0318\3\2\2\2\u0318\u0319\3\2\2\2\u0319\u031d"+ + "\5\u0200\u0101\2\u031a\u031c\5\62\32\2\u031b\u031a\3\2\2\2\u031c\u031f"+ + "\3\2\2\2\u031d\u031b\3\2\2\2\u031d\u031e\3\2\2\2\u031e\33\3\2\2\2\u031f"+ + "\u031d\3\2\2\2\u0320\u0322\7\37\2\2\u0321\u0323\5\64\33\2\u0322\u0321"+ + "\3\2\2\2\u0322\u0323\3\2\2\2\u0323\u0324\3\2\2\2\u0324\u0326\7\u013d\2"+ + "\2\u0325\u0327\5\u0238\u011d\2\u0326\u0325\3\2\2\2\u0326\u0327\3\2\2\2"+ + "\u0327\u0328\3\2\2\2\u0328\u0329\5\u01e6\u00f4\2\u0329\u032a\7f\2\2\u032a"+ + "\u032b\7\u01df\2\2\u032b\u0332\5\66\34\2\u032c\u032d\7f\2\2\u032d\u032f"+ + "\7\u0119\2\2\u032e\u0330\7c\2\2\u032f\u032e\3\2\2\2\u032f\u0330\3\2\2"+ + "\2\u0330\u0331\3\2\2\2\u0331\u0333\7\u01ba\2\2\u0332\u032c\3\2\2\2\u0332"+ + "\u0333\3\2\2\2\u0333\u0335\3\2\2\2\u0334\u0336\5> \2\u0335\u0334\3\2\2"+ + "\2\u0335\u0336\3\2\2\2\u0336\u0339\3\2\2\2\u0337\u0338\7\u0116\2\2\u0338"+ + "\u033a\7\u03c2\2\2\u0339\u0337\3\2\2\2\u0339\u033a\3\2\2\2\u033a\u033b"+ + "\3\2\2\2\u033b\u033c\7\u012f\2\2\u033c\u033d\5\u0158\u00ad\2\u033d\35"+ + "\3\2\2\2\u033e\u0340\7\37\2\2\u033f\u0341\t\3\2\2\u0340\u033f\3\2\2\2"+ + "\u0340\u0341\3\2\2\2\u0341\u0343\3\2\2\2\u0342\u0344\t\4\2\2\u0343\u0342"+ "\3\2\2\2\u0343\u0344\3\2\2\2\u0344\u0345\3\2\2\2\u0345\u0346\7E\2\2\u0346"+ "\u0348\5\u0200\u0101\2\u0347\u0349\5@!\2\u0348\u0347\3\2\2\2\u0348\u0349"+ "\3\2\2\2\u0349\u034a\3\2\2\2\u034a\u034b\7f\2\2\u034b\u034c\5\u01e8\u00f5"+ @@ -58478,159 +58529,159 @@ private boolean expressionAtom_sempred(ExpressionAtomContext _localctx, int pred "\7\u0124\2\2\u053c\u053d\7a\2\2\u053d\u053e\7\u0089\2\2\u053e\u0540\7"+ "\u0124\2\2\u053f\u0535\3\2\2\2\u053f\u0537\3\2\2\2\u053f\u0539\3\2\2\2"+ "\u053f\u053c\3\2\2\2\u0540\u0545\3\2\2\2\u0541\u0542\7\u0089\2\2\u0542"+ - "\u0543\7\u01e0\2\2\u0543"; + "\u0543\7"; private static final String _serializedATNSegment1 = - "\u0545\t\r\2\2\u0544\u052d\3\2\2\2\u0544\u052f\3\2\2\2\u0544\u0532\3\2"+ - "\2\2\u0544\u053f\3\2\2\2\u0544\u0541\3\2\2\2\u0545I\3\2\2\2\u0546\u0547"+ - "\7\u0159\2\2\u0547\u0555\7\u03c2\2\2\u0548\u0549\7#\2\2\u0549\u0555\7"+ - "\u03c2\2\2\u054a\u054b\7\u0214\2\2\u054b\u0555\7\u03c2\2\2\u054c\u054d"+ - "\7\u01b2\2\2\u054d\u0555\7\u03c2\2\2\u054e\u054f\7\u01ea\2\2\u054f\u0555"+ - "\7\u03c2\2\2\u0550\u0551\7\u01ab\2\2\u0551\u0555\7\u03c2\2\2\u0552\u0553"+ - "\7\u01b7\2\2\u0553\u0555\5\u0206\u0104\2\u0554\u0546\3\2\2\2\u0554\u0548"+ - "\3\2\2\2\u0554\u054a\3\2\2\2\u0554\u054c\3\2\2\2\u0554\u054e\3\2\2\2\u0554"+ - "\u0550\3\2\2\2\u0554\u0552\3\2\2\2\u0555K\3\2\2\2\u0556\u0557\7\u03b3"+ - "\2\2\u0557\u055c\5N(\2\u0558\u0559\7\u03b5\2\2\u0559\u055b\5N(\2\u055a"+ - "\u0558\3\2\2\2\u055b\u055e\3\2\2\2\u055c\u055a\3\2\2\2\u055c\u055d\3\2"+ - "\2\2\u055d\u055f\3\2\2\2\u055e\u055c\3\2\2\2\u055f\u0560\7\u03b4\2\2\u0560"+ - "M\3\2\2\2\u0561\u0562\5\u0200\u0101\2\u0562\u0563\5P)\2\u0563\u0567\3"+ - "\2\2\2\u0564\u0567\5T+\2\u0565\u0567\5\\/\2\u0566\u0561\3\2\2\2\u0566"+ - "\u0564\3\2\2\2\u0566\u0565\3\2\2\2\u0567O\3\2\2\2\u0568\u056c\5\u0216"+ - "\u010c\2\u0569\u056b\5R*\2\u056a\u0569\3\2\2\2\u056b\u056e\3\2\2\2\u056c"+ - "\u056a\3\2\2\2\u056c\u056d\3\2\2\2\u056dQ\3\2\2\2\u056e\u056c\3\2\2\2"+ - "\u056f\u0584\5\u0210\u0109\2\u0570\u0571\7&\2\2\u0571\u0584\5\u0230\u0119"+ - "\2\u0572\u0584\7\u0100\2\2\u0573\u0575\7p\2\2\u0574\u0573\3\2\2\2\u0574"+ - "\u0575\3\2\2\2\u0575\u0576\3\2\2\2\u0576\u0584\7O\2\2\u0577\u0579\7\u009c"+ - "\2\2\u0578\u057a\7O\2\2\u0579\u0578\3\2\2\2\u0579\u057a\3\2\2\2\u057a"+ - "\u0584\3\2\2\2\u057b\u0584\5\u0212\u010a\2\u057c\u057d\7\u0116\2\2\u057d"+ - "\u0584\7\u03c2\2\2\u057e\u057f\7\u0115\2\2\u057f\u0584\t\21\2\2\u0580"+ - "\u0581\7\u01fd\2\2\u0581\u0584\t\22\2\2\u0582\u0584\5V,\2\u0583\u056f"+ - "\3\2\2\2\u0583\u0570\3\2\2\2\u0583\u0572\3\2\2\2\u0583\u0574\3\2\2\2\u0583"+ - "\u0577\3\2\2\2\u0583\u057b\3\2\2\2\u0583\u057c\3\2\2\2\u0583\u057e\3\2"+ - "\2\2\u0583\u0580\3\2\2\2\u0583\u0582\3\2\2\2\u0584S\3\2\2\2\u0585\u0587"+ - "\7\34\2\2\u0586\u0588\5\u0200\u0101\2\u0587\u0586\3\2\2\2\u0587\u0588"+ - "\3\2\2\2\u0588\u058a\3\2\2\2\u0589\u0585\3\2\2\2\u0589\u058a\3\2\2\2\u058a"+ - "\u058b\3\2\2\2\u058b\u058c\7p\2\2\u058c\u058e\7O\2\2\u058d\u058f\5@!\2"+ - "\u058e\u058d\3\2\2\2\u058e\u058f\3\2\2\2\u058f\u0590\3\2\2\2\u0590\u0594"+ - "\5\u0224\u0113\2\u0591\u0593\5B\"\2\u0592\u0591\3\2\2\2\u0593\u0596\3"+ - "\2\2\2\u0594\u0592\3\2\2\2\u0594\u0595\3\2\2\2\u0595\u05c2\3\2\2\2\u0596"+ - "\u0594\3\2\2\2\u0597\u0599\7\34\2\2\u0598\u059a\5\u0200\u0101\2\u0599"+ - "\u0598\3\2\2\2\u0599\u059a\3\2\2\2\u059a\u059c\3\2\2\2\u059b\u0597\3\2"+ - "\2\2\u059b\u059c\3\2\2\2\u059c\u059d\3\2\2\2\u059d\u059f\7\u009c\2\2\u059e"+ - "\u05a0\t\23\2\2\u059f\u059e\3\2\2\2\u059f\u05a0\3\2\2\2\u05a0\u05a2\3"+ - "\2\2\2\u05a1\u05a3\5\u0200\u0101\2\u05a2\u05a1\3\2\2\2\u05a2\u05a3\3\2"+ - "\2\2\u05a3\u05a5\3\2\2\2\u05a4\u05a6\5@!\2\u05a5\u05a4\3\2\2\2\u05a5\u05a6"+ - "\3\2\2\2\u05a6\u05a7\3\2\2\2\u05a7\u05ab\5\u0224\u0113\2\u05a8\u05aa\5"+ - "B\"\2\u05a9\u05a8\3\2\2\2\u05aa\u05ad\3\2\2\2\u05ab\u05a9\3\2\2\2\u05ab"+ - "\u05ac\3\2\2\2\u05ac\u05c2\3\2\2\2\u05ad\u05ab\3\2\2\2\u05ae\u05b0\7\34"+ - "\2\2\u05af\u05b1\5\u0200\u0101\2\u05b0\u05af\3\2\2\2\u05b0\u05b1\3\2\2"+ - "\2\u05b1\u05b3\3\2\2\2\u05b2\u05ae\3\2\2\2\u05b2\u05b3\3\2\2\2\u05b3\u05b4"+ - "\3\2\2\2\u05b4\u05b5\7;\2\2\u05b5\u05b7\7O\2\2\u05b6\u05b8\5\u0200\u0101"+ - "\2\u05b7\u05b6\3\2\2\2\u05b7\u05b8\3\2\2\2\u05b8\u05b9\3\2\2\2\u05b9\u05ba"+ - "\5\u0224\u0113\2\u05ba\u05bb\5V,\2\u05bb\u05c2\3\2\2\2\u05bc\u05bd\7\30"+ - "\2\2\u05bd\u05be\7\u03b3\2\2\u05be\u05bf\5\u024e\u0128\2\u05bf\u05c0\7"+ - "\u03b4\2\2\u05c0\u05c2\3\2\2\2\u05c1\u0589\3\2\2\2\u05c1\u059b\3\2\2\2"+ - "\u05c1\u05b2\3\2\2\2\u05c1\u05bc\3\2\2\2\u05c2U\3\2\2\2\u05c3\u05c4\7"+ - "v\2\2\u05c4\u05c5\5\u01e8\u00f5\2\u05c5\u05c8\5\u0224\u0113\2\u05c6\u05c7"+ - "\7_\2\2\u05c7\u05c9\t\24\2\2\u05c8\u05c6\3\2\2\2\u05c8\u05c9\3\2\2\2\u05c9"+ - "\u05cb\3\2\2\2\u05ca\u05cc\5X-\2\u05cb\u05ca\3\2\2\2\u05cb\u05cc\3\2\2"+ - "\2\u05ccW\3\2\2\2\u05cd\u05ce\7f\2\2\u05ce\u05cf\7(\2\2\u05cf\u05d3\5"+ - "Z.\2\u05d0\u05d1\7f\2\2\u05d1\u05d2\7\u009f\2\2\u05d2\u05d4\5Z.\2\u05d3"+ - "\u05d0\3\2\2\2\u05d3\u05d4\3\2\2\2\u05d4\u05de\3\2\2\2\u05d5\u05d6\7f"+ - "\2\2\u05d6\u05d7\7\u009f\2\2\u05d7\u05db\5Z.\2\u05d8\u05d9\7f\2\2\u05d9"+ - "\u05da\7(\2\2\u05da\u05dc\5Z.\2\u05db\u05d8\3\2\2\2\u05db\u05dc\3\2\2"+ - "\2\u05dc\u05de\3\2\2\2\u05dd\u05cd\3\2\2\2\u05dd\u05d5\3\2\2\2\u05deY"+ - "\3\2\2\2\u05df\u05e6\7}\2\2\u05e0\u05e6\7\23\2\2\u05e1\u05e2\7\u0085\2"+ - "\2\u05e2\u05e6\7e\2\2\u05e3\u05e4\7\u019e\2\2\u05e4\u05e6\7\u00f7\2\2"+ - "\u05e5\u05df\3\2\2\2\u05e5\u05e0\3\2\2\2\u05e5\u05e1\3\2\2\2\u05e5\u05e3"+ - "\3\2\2\2\u05e6[\3\2\2\2\u05e7\u05e9\t\23\2\2\u05e8\u05ea\5\u0200\u0101"+ - "\2\u05e9\u05e8\3\2\2\2\u05e9\u05ea\3\2\2\2\u05ea\u05ec\3\2\2\2\u05eb\u05ed"+ - "\5@!\2\u05ec\u05eb\3\2\2\2\u05ec\u05ed\3\2\2\2\u05ed\u05ee\3\2\2\2\u05ee"+ - "\u05f2\5\u0224\u0113\2\u05ef\u05f1\5B\"\2\u05f0\u05ef\3\2\2\2\u05f1\u05f4"+ - "\3\2\2\2\u05f2\u05f0\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3\u0604\3\2\2\2\u05f4"+ - "\u05f2\3\2\2\2\u05f5\u05f7\t\25\2\2\u05f6\u05f8\t\23\2\2\u05f7\u05f6\3"+ - "\2\2\2\u05f7\u05f8\3\2\2\2\u05f8\u05fa\3\2\2\2\u05f9\u05fb\5\u0200\u0101"+ - "\2\u05fa\u05f9\3\2\2\2\u05fa\u05fb\3\2\2\2\u05fb\u05fc\3\2\2\2\u05fc\u0600"+ - "\5\u0224\u0113\2\u05fd\u05ff\5B\"\2\u05fe\u05fd\3\2\2\2\u05ff\u0602\3"+ - "\2\2\2\u0600\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601\u0604\3\2\2\2\u0602"+ - "\u0600\3\2\2\2\u0603\u05e7\3\2\2\2\u0603\u05f5\3\2\2\2\u0604]\3\2\2\2"+ - "\u0605\u0607\7\u0137\2\2\u0606\u0608\7\u03aa\2\2\u0607\u0606\3\2\2\2\u0607"+ - "\u0608\3\2\2\2\u0608\u0609\3\2\2\2\u0609\u0692\5\u01f6\u00fc\2\u060a\u060c"+ - "\7\u0100\2\2\u060b\u060d\7\u03aa\2\2\u060c\u060b\3\2\2\2\u060c\u060d\3"+ - "\2\2\2\u060d\u060e\3\2\2\2\u060e\u0692\5\u0206\u0104\2\u060f\u0611\7\u0101"+ - "\2\2\u0610\u0612\7\u03aa\2\2\u0611\u0610\3\2\2\2\u0611\u0612\3\2\2\2\u0612"+ - "\u0613\3\2\2\2\u0613\u0692\5\u0206\u0104\2\u0614\u0616\7&\2\2\u0615\u0614"+ - "\3\2\2\2\u0615\u0616\3\2\2\2\u0616\u061a\3\2\2\2\u0617\u0618\7\27\2\2"+ - "\u0618\u061b\7\u0085\2\2\u0619\u061b\7\u0293\2\2\u061a\u0617\3\2\2\2\u061a"+ - "\u0619\3\2\2\2\u061b\u061d\3\2\2\2\u061c\u061e\7\u03aa\2\2\u061d\u061c"+ - "\3\2\2\2\u061d\u061e\3\2\2\2\u061e\u061f\3\2\2\2\u061f\u0692\5\u01f2\u00fa"+ - "\2\u0620\u0622\7\u010e\2\2\u0621\u0623\7\u03aa\2\2\u0622\u0621\3\2\2\2"+ - "\u0622\u0623\3\2\2\2\u0623\u0624\3\2\2\2\u0624\u0692\t\26\2\2\u0625\u0627"+ - "\7&\2\2\u0626\u0625\3\2\2\2\u0626\u0627\3\2\2\2\u0627\u0628\3\2\2\2\u0628"+ - "\u062a\7\31\2\2\u0629\u062b\7\u03aa\2\2\u062a\u0629\3\2\2\2\u062a\u062b"+ - "\3\2\2\2\u062b\u062c\3\2\2\2\u062c\u0692\5\u01f4\u00fb\2\u062d\u062f\7"+ - "\u0116\2\2\u062e\u0630\7\u03aa\2\2\u062f\u062e\3\2\2\2\u062f\u0630\3\2"+ - "\2\2\u0630\u0631\3\2\2\2\u0631\u0692\7\u03c2\2\2\u0632\u0634\7\u011b\2"+ - "\2\u0633\u0635\7\u03aa\2\2\u0634\u0633\3\2\2\2\u0634\u0635\3\2\2\2\u0635"+ - "\u0636\3\2\2\2\u0636\u0692\7\u03c2\2\2\u0637\u0639\7\u011d\2\2\u0638\u063a"+ - "\7\u03aa\2\2\u0639\u0638\3\2\2\2\u0639\u063a\3\2\2\2\u063a\u063b\3\2\2"+ - "\2\u063b\u0692\7\u03c2\2\2\u063c\u063d\7\u0124\2\2\u063d\u063f\7\u012b"+ - "\2\2\u063e\u0640\7\u03aa\2\2\u063f\u063e\3\2\2\2\u063f\u0640\3\2\2\2\u0640"+ - "\u0641\3\2\2\2\u0641\u0692\7\u03c2\2\2\u0642\u0644\7\u0129\2\2\u0643\u0645"+ - "\7\u03aa\2\2\u0644\u0643\3\2\2\2\u0644\u0645\3\2\2\2\u0645\u0646\3\2\2"+ - "\2\u0646\u0692\t\26\2\2\u0647\u0649\7\u0134\2\2\u0648\u064a\7\u03aa\2"+ - "\2\u0649\u0648\3\2\2\2\u0649\u064a\3\2\2\2\u064a\u064b\3\2\2\2\u064b\u0692"+ - "\7\u03c2\2\2\u064c\u064d\7E\2\2\u064d\u064f\7\u012b\2\2\u064e\u0650\7"+ - "\u03aa\2\2\u064f\u064e\3\2\2\2\u064f\u0650\3\2\2\2\u0650\u0651\3\2\2\2"+ - "\u0651\u0692\7\u03c2\2\2\u0652\u0654\7\u0161\2\2\u0653\u0655\7\u03aa\2"+ - "\2\u0654\u0653\3\2\2\2\u0654\u0655\3\2\2\2\u0655\u0656\3\2\2\2\u0656\u0692"+ - "\t\27\2\2\u0657\u0659\7\u016b\2\2\u0658\u065a\7\u03aa\2\2\u0659\u0658"+ - "\3\2\2\2\u0659\u065a\3\2\2\2\u065a\u065b\3\2\2\2\u065b\u0692\5\u0208\u0105"+ - "\2\u065c\u065e\7\u018c\2\2\u065d\u065f\7\u03aa\2\2\u065e\u065d\3\2\2\2"+ - "\u065e\u065f\3\2\2\2\u065f\u0660\3\2\2\2\u0660\u0692\5\u0206\u0104\2\u0661"+ - "\u0663\7\u0194\2\2\u0662\u0664\7\u03aa\2\2\u0663\u0662\3\2\2\2\u0663\u0664"+ - "\3\2\2\2\u0664\u0665\3\2\2\2\u0665\u0692\5\u0206\u0104\2\u0666\u0668\7"+ - "\u01ac\2\2\u0667\u0669\7\u03aa\2\2\u0668\u0667\3\2\2\2\u0668\u0669\3\2"+ - "\2\2\u0669\u066a\3\2\2\2\u066a\u0692\t\30\2\2\u066b\u066d\7\u01b2\2\2"+ - "\u066c\u066e\7\u03aa\2\2\u066d\u066c\3\2\2\2\u066d\u066e\3\2\2\2\u066e"+ - "\u066f\3\2\2\2\u066f\u0692\7\u03c2\2\2\u0670\u0672\7\u01dd\2\2\u0671\u0673"+ - "\7\u03aa\2\2\u0672\u0671\3\2\2\2\u0672\u0673\3\2\2\2\u0673\u0674\3\2\2"+ - "\2\u0674\u0692\t\31\2\2\u0675\u0677\7\u01f8\2\2\u0676\u0678\7\u03aa\2"+ - "\2\u0677\u0676\3\2\2\2\u0677\u0678\3\2\2\2\u0678\u0679\3\2\2\2\u0679\u0692"+ - "\t\30\2\2\u067a\u067c\7\u01f9\2\2\u067b\u067d\7\u03aa\2\2\u067c\u067b"+ - "\3\2\2\2\u067c\u067d\3\2\2\2\u067d\u067e\3\2\2\2\u067e\u0692\t\30\2\2"+ - "\u067f\u0681\7\u01fa\2\2\u0680\u0682\7\u03aa\2\2\u0681\u0680\3\2\2\2\u0681"+ - "\u0682\3\2\2\2\u0682\u0683\3\2\2\2\u0683\u0692\5\u0206\u0104\2\u0684\u0685"+ - "\7\u0205\2\2\u0685\u0687\5\u0200\u0101\2\u0686\u0688\5`\61\2\u0687\u0686"+ - "\3\2\2\2\u0687\u0688\3\2\2\2\u0688\u0692\3\2\2\2\u0689\u068b\7\u009b\2"+ - "\2\u068a\u068c\7\u03aa\2\2\u068b\u068a\3\2\2\2\u068b\u068c\3\2\2\2\u068c"+ - "\u068d\3\2\2\2\u068d\u068e\7\u03b3\2\2\u068e\u068f\5\u0222\u0112\2\u068f"+ - "\u0690\7\u03b4\2\2\u0690\u0692\3\2\2\2\u0691\u0605\3\2\2\2\u0691\u060a"+ - "\3\2\2\2\u0691\u060f\3\2\2\2\u0691\u0615\3\2\2\2\u0691\u0620\3\2\2\2\u0691"+ - "\u0626\3\2\2\2\u0691\u062d\3\2\2\2\u0691\u0632\3\2\2\2\u0691\u0637\3\2"+ - "\2\2\u0691\u063c\3\2\2\2\u0691\u0642\3\2\2\2\u0691\u0647\3\2\2\2\u0691"+ - "\u064c\3\2\2\2\u0691\u0652\3\2\2\2\u0691\u0657\3\2\2\2\u0691\u065c\3\2"+ - "\2\2\u0691\u0661\3\2\2\2\u0691\u0666\3\2\2\2\u0691\u066b\3\2\2\2\u0691"+ - "\u0670\3\2\2\2\u0691\u0675\3\2\2\2\u0691\u067a\3\2\2\2\u0691\u067f\3\2"+ - "\2\2\u0691\u0684\3\2\2\2\u0691\u0689\3\2\2\2\u0692_\3\2\2\2\u0693\u0694"+ - "\7\u01fd\2\2\u0694\u0695\t\22\2\2\u0695a\3\2\2\2\u0696\u0697\7o\2\2\u0697"+ - "\u0698\7\21\2\2\u0698\u069b\5d\63\2\u0699\u069a\7\u01b1\2\2\u069a\u069c"+ - "\5\u0206\u0104\2\u069b\u0699\3\2\2\2\u069b\u069c\3\2\2\2\u069c\u06a4\3"+ - "\2\2\2\u069d\u069e\7\u0200\2\2\u069e\u069f\7\21\2\2\u069f\u06a2\5f\64"+ - "\2\u06a0\u06a1\7\u0201\2\2\u06a1\u06a3\5\u0206\u0104\2\u06a2\u06a0\3\2"+ - "\2\2\u06a2\u06a3\3\2\2\2\u06a3\u06a5\3\2\2\2\u06a4\u069d\3\2\2\2\u06a4"+ - "\u06a5\3\2\2\2\u06a5\u06b1\3\2\2\2\u06a6\u06a7\7\u03b3\2\2\u06a7\u06ac"+ - "\5h\65\2\u06a8\u06a9\7\u03b5\2\2\u06a9\u06ab\5h\65\2\u06aa\u06a8\3\2\2"+ - "\2\u06ab\u06ae\3\2\2\2\u06ac\u06aa\3\2\2\2\u06ac\u06ad\3\2\2\2\u06ad\u06af"+ - "\3\2\2\2\u06ae\u06ac\3\2\2\2\u06af\u06b0\7\u03b4\2\2\u06b0\u06b2\3\2\2"+ - "\2\u06b1\u06a6\3\2\2\2\u06b1\u06b2\3\2\2\2\u06b2c\3\2\2\2\u06b3\u06b5"+ - "\7W\2\2\u06b4\u06b3\3\2\2\2\u06b4\u06b5\3\2\2\2\u06b5\u06b6\3\2\2\2\u06b6"+ - "\u06b7\7\u0157\2\2\u06b7\u06b8\7\u03b3\2\2\u06b8\u06b9\5\u024e\u0128\2"+ - "\u06b9\u06ba\7\u03b4\2\2\u06ba\u06e1\3\2\2\2\u06bb\u06bd\7W\2\2\u06bc"+ - "\u06bb\3\2\2\2\u06bc\u06bd\3\2\2\2\u06bd\u06be\3\2\2\2\u06be\u06c2\7O"+ - "\2\2\u06bf\u06c0\7\u00fa\2\2\u06c0\u06c1\7\u03aa\2\2\u06c1\u06c3\t\32"+ - "\2\2\u06c2\u06bf\3\2\2\2\u06c2\u06c3\3\2\2\2\u06c3\u06c4\3\2\2\2\u06c4"+ - "\u06c5\7\u03b3\2\2\u06c5\u06c6\5\u0220\u0111\2\u06c6\u06c7\7\u03b4\2\2"+ - "\u06c7\u06e1\3\2\2\2\u06c8\u06d2\7s\2\2\u06c9\u06ca\7\u03b3\2\2\u06ca"+ + "\u01e0\2\2\u0543\u0545\t\r\2\2\u0544\u052d\3\2\2\2\u0544\u052f\3\2\2\2"+ + "\u0544\u0532\3\2\2\2\u0544\u053f\3\2\2\2\u0544\u0541\3\2\2\2\u0545I\3"+ + "\2\2\2\u0546\u0547\7\u0159\2\2\u0547\u0555\7\u03c2\2\2\u0548\u0549\7#"+ + "\2\2\u0549\u0555\7\u03c2\2\2\u054a\u054b\7\u0214\2\2\u054b\u0555\7\u03c2"+ + "\2\2\u054c\u054d\7\u01b2\2\2\u054d\u0555\7\u03c2\2\2\u054e\u054f\7\u01ea"+ + "\2\2\u054f\u0555\7\u03c2\2\2\u0550\u0551\7\u01ab\2\2\u0551\u0555\7\u03c2"+ + "\2\2\u0552\u0553\7\u01b7\2\2\u0553\u0555\5\u0206\u0104\2\u0554\u0546\3"+ + "\2\2\2\u0554\u0548\3\2\2\2\u0554\u054a\3\2\2\2\u0554\u054c\3\2\2\2\u0554"+ + "\u054e\3\2\2\2\u0554\u0550\3\2\2\2\u0554\u0552\3\2\2\2\u0555K\3\2\2\2"+ + "\u0556\u0557\7\u03b3\2\2\u0557\u055c\5N(\2\u0558\u0559\7\u03b5\2\2\u0559"+ + "\u055b\5N(\2\u055a\u0558\3\2\2\2\u055b\u055e\3\2\2\2\u055c\u055a\3\2\2"+ + "\2\u055c\u055d\3\2\2\2\u055d\u055f\3\2\2\2\u055e\u055c\3\2\2\2\u055f\u0560"+ + "\7\u03b4\2\2\u0560M\3\2\2\2\u0561\u0562\5\u0200\u0101\2\u0562\u0563\5"+ + "P)\2\u0563\u0567\3\2\2\2\u0564\u0567\5T+\2\u0565\u0567\5\\/\2\u0566\u0561"+ + "\3\2\2\2\u0566\u0564\3\2\2\2\u0566\u0565\3\2\2\2\u0567O\3\2\2\2\u0568"+ + "\u056c\5\u0216\u010c\2\u0569\u056b\5R*\2\u056a\u0569\3\2\2\2\u056b\u056e"+ + "\3\2\2\2\u056c\u056a\3\2\2\2\u056c\u056d\3\2\2\2\u056dQ\3\2\2\2\u056e"+ + "\u056c\3\2\2\2\u056f\u0584\5\u0210\u0109\2\u0570\u0571\7&\2\2\u0571\u0584"+ + "\5\u0230\u0119\2\u0572\u0584\7\u0100\2\2\u0573\u0575\7p\2\2\u0574\u0573"+ + "\3\2\2\2\u0574\u0575\3\2\2\2\u0575\u0576\3\2\2\2\u0576\u0584\7O\2\2\u0577"+ + "\u0579\7\u009c\2\2\u0578\u057a\7O\2\2\u0579\u0578\3\2\2\2\u0579\u057a"+ + "\3\2\2\2\u057a\u0584\3\2\2\2\u057b\u0584\5\u0212\u010a\2\u057c\u057d\7"+ + "\u0116\2\2\u057d\u0584\7\u03c2\2\2\u057e\u057f\7\u0115\2\2\u057f\u0584"+ + "\t\21\2\2\u0580\u0581\7\u01fd\2\2\u0581\u0584\t\22\2\2\u0582\u0584\5V"+ + ",\2\u0583\u056f\3\2\2\2\u0583\u0570\3\2\2\2\u0583\u0572\3\2\2\2\u0583"+ + "\u0574\3\2\2\2\u0583\u0577\3\2\2\2\u0583\u057b\3\2\2\2\u0583\u057c\3\2"+ + "\2\2\u0583\u057e\3\2\2\2\u0583\u0580\3\2\2\2\u0583\u0582\3\2\2\2\u0584"+ + "S\3\2\2\2\u0585\u0587\7\34\2\2\u0586\u0588\5\u0200\u0101\2\u0587\u0586"+ + "\3\2\2\2\u0587\u0588\3\2\2\2\u0588\u058a\3\2\2\2\u0589\u0585\3\2\2\2\u0589"+ + "\u058a\3\2\2\2\u058a\u058b\3\2\2\2\u058b\u058c\7p\2\2\u058c\u058e\7O\2"+ + "\2\u058d\u058f\5@!\2\u058e\u058d\3\2\2\2\u058e\u058f\3\2\2\2\u058f\u0590"+ + "\3\2\2\2\u0590\u0594\5\u0224\u0113\2\u0591\u0593\5B\"\2\u0592\u0591\3"+ + "\2\2\2\u0593\u0596\3\2\2\2\u0594\u0592\3\2\2\2\u0594\u0595\3\2\2\2\u0595"+ + "\u05c2\3\2\2\2\u0596\u0594\3\2\2\2\u0597\u0599\7\34\2\2\u0598\u059a\5"+ + "\u0200\u0101\2\u0599\u0598\3\2\2\2\u0599\u059a\3\2\2\2\u059a\u059c\3\2"+ + "\2\2\u059b\u0597\3\2\2\2\u059b\u059c\3\2\2\2\u059c\u059d\3\2\2\2\u059d"+ + "\u059f\7\u009c\2\2\u059e\u05a0\t\23\2\2\u059f\u059e\3\2\2\2\u059f\u05a0"+ + "\3\2\2\2\u05a0\u05a2\3\2\2\2\u05a1\u05a3\5\u0200\u0101\2\u05a2\u05a1\3"+ + "\2\2\2\u05a2\u05a3\3\2\2\2\u05a3\u05a5\3\2\2\2\u05a4\u05a6\5@!\2\u05a5"+ + "\u05a4\3\2\2\2\u05a5\u05a6\3\2\2\2\u05a6\u05a7\3\2\2\2\u05a7\u05ab\5\u0224"+ + "\u0113\2\u05a8\u05aa\5B\"\2\u05a9\u05a8\3\2\2\2\u05aa\u05ad\3\2\2\2\u05ab"+ + "\u05a9\3\2\2\2\u05ab\u05ac\3\2\2\2\u05ac\u05c2\3\2\2\2\u05ad\u05ab\3\2"+ + "\2\2\u05ae\u05b0\7\34\2\2\u05af\u05b1\5\u0200\u0101\2\u05b0\u05af\3\2"+ + "\2\2\u05b0\u05b1\3\2\2\2\u05b1\u05b3\3\2\2\2\u05b2\u05ae\3\2\2\2\u05b2"+ + "\u05b3\3\2\2\2\u05b3\u05b4\3\2\2\2\u05b4\u05b5\7;\2\2\u05b5\u05b7\7O\2"+ + "\2\u05b6\u05b8\5\u0200\u0101\2\u05b7\u05b6\3\2\2\2\u05b7\u05b8\3\2\2\2"+ + "\u05b8\u05b9\3\2\2\2\u05b9\u05ba\5\u0224\u0113\2\u05ba\u05bb\5V,\2\u05bb"+ + "\u05c2\3\2\2\2\u05bc\u05bd\7\30\2\2\u05bd\u05be\7\u03b3\2\2\u05be\u05bf"+ + "\5\u024e\u0128\2\u05bf\u05c0\7\u03b4\2\2\u05c0\u05c2\3\2\2\2\u05c1\u0589"+ + "\3\2\2\2\u05c1\u059b\3\2\2\2\u05c1\u05b2\3\2\2\2\u05c1\u05bc\3\2\2\2\u05c2"+ + "U\3\2\2\2\u05c3\u05c4\7v\2\2\u05c4\u05c5\5\u01e8\u00f5\2\u05c5\u05c8\5"+ + "\u0224\u0113\2\u05c6\u05c7\7_\2\2\u05c7\u05c9\t\24\2\2\u05c8\u05c6\3\2"+ + "\2\2\u05c8\u05c9\3\2\2\2\u05c9\u05cb\3\2\2\2\u05ca\u05cc\5X-\2\u05cb\u05ca"+ + "\3\2\2\2\u05cb\u05cc\3\2\2\2\u05ccW\3\2\2\2\u05cd\u05ce\7f\2\2\u05ce\u05cf"+ + "\7(\2\2\u05cf\u05d3\5Z.\2\u05d0\u05d1\7f\2\2\u05d1\u05d2\7\u009f\2\2\u05d2"+ + "\u05d4\5Z.\2\u05d3\u05d0\3\2\2\2\u05d3\u05d4\3\2\2\2\u05d4\u05de\3\2\2"+ + "\2\u05d5\u05d6\7f\2\2\u05d6\u05d7\7\u009f\2\2\u05d7\u05db\5Z.\2\u05d8"+ + "\u05d9\7f\2\2\u05d9\u05da\7(\2\2\u05da\u05dc\5Z.\2\u05db\u05d8\3\2\2\2"+ + "\u05db\u05dc\3\2\2\2\u05dc\u05de\3\2\2\2\u05dd\u05cd\3\2\2\2\u05dd\u05d5"+ + "\3\2\2\2\u05deY\3\2\2\2\u05df\u05e6\7}\2\2\u05e0\u05e6\7\23\2\2\u05e1"+ + "\u05e2\7\u0085\2\2\u05e2\u05e6\7e\2\2\u05e3\u05e4\7\u019e\2\2\u05e4\u05e6"+ + "\7\u00f7\2\2\u05e5\u05df\3\2\2\2\u05e5\u05e0\3\2\2\2\u05e5\u05e1\3\2\2"+ + "\2\u05e5\u05e3\3\2\2\2\u05e6[\3\2\2\2\u05e7\u05e9\t\23\2\2\u05e8\u05ea"+ + "\5\u0200\u0101\2\u05e9\u05e8\3\2\2\2\u05e9\u05ea\3\2\2\2\u05ea\u05ec\3"+ + "\2\2\2\u05eb\u05ed\5@!\2\u05ec\u05eb\3\2\2\2\u05ec\u05ed\3\2\2\2\u05ed"+ + "\u05ee\3\2\2\2\u05ee\u05f2\5\u0224\u0113\2\u05ef\u05f1\5B\"\2\u05f0\u05ef"+ + "\3\2\2\2\u05f1\u05f4\3\2\2\2\u05f2\u05f0\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3"+ + "\u0604\3\2\2\2\u05f4\u05f2\3\2\2\2\u05f5\u05f7\t\25\2\2\u05f6\u05f8\t"+ + "\23\2\2\u05f7\u05f6\3\2\2\2\u05f7\u05f8\3\2\2\2\u05f8\u05fa\3\2\2\2\u05f9"+ + "\u05fb\5\u0200\u0101\2\u05fa\u05f9\3\2\2\2\u05fa\u05fb\3\2\2\2\u05fb\u05fc"+ + "\3\2\2\2\u05fc\u0600\5\u0224\u0113\2\u05fd\u05ff\5B\"\2\u05fe\u05fd\3"+ + "\2\2\2\u05ff\u0602\3\2\2\2\u0600\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601"+ + "\u0604\3\2\2\2\u0602\u0600\3\2\2\2\u0603\u05e7\3\2\2\2\u0603\u05f5\3\2"+ + "\2\2\u0604]\3\2\2\2\u0605\u0607\7\u0137\2\2\u0606\u0608\7\u03aa\2\2\u0607"+ + "\u0606\3\2\2\2\u0607\u0608\3\2\2\2\u0608\u0609\3\2\2\2\u0609\u0692\5\u01f6"+ + "\u00fc\2\u060a\u060c\7\u0100\2\2\u060b\u060d\7\u03aa\2\2\u060c\u060b\3"+ + "\2\2\2\u060c\u060d\3\2\2\2\u060d\u060e\3\2\2\2\u060e\u0692\5\u0206\u0104"+ + "\2\u060f\u0611\7\u0101\2\2\u0610\u0612\7\u03aa\2\2\u0611\u0610\3\2\2\2"+ + "\u0611\u0612\3\2\2\2\u0612\u0613\3\2\2\2\u0613\u0692\5\u0206\u0104\2\u0614"+ + "\u0616\7&\2\2\u0615\u0614\3\2\2\2\u0615\u0616\3\2\2\2\u0616\u061a\3\2"+ + "\2\2\u0617\u0618\7\27\2\2\u0618\u061b\7\u0085\2\2\u0619\u061b\7\u0293"+ + "\2\2\u061a\u0617\3\2\2\2\u061a\u0619\3\2\2\2\u061b\u061d\3\2\2\2\u061c"+ + "\u061e\7\u03aa\2\2\u061d\u061c\3\2\2\2\u061d\u061e\3\2\2\2\u061e\u061f"+ + "\3\2\2\2\u061f\u0692\5\u01f2\u00fa\2\u0620\u0622\7\u010e\2\2\u0621\u0623"+ + "\7\u03aa\2\2\u0622\u0621\3\2\2\2\u0622\u0623\3\2\2\2\u0623\u0624\3\2\2"+ + "\2\u0624\u0692\t\26\2\2\u0625\u0627\7&\2\2\u0626\u0625\3\2\2\2\u0626\u0627"+ + "\3\2\2\2\u0627\u0628\3\2\2\2\u0628\u062a\7\31\2\2\u0629\u062b\7\u03aa"+ + "\2\2\u062a\u0629\3\2\2\2\u062a\u062b\3\2\2\2\u062b\u062c\3\2\2\2\u062c"+ + "\u0692\5\u01f4\u00fb\2\u062d\u062f\7\u0116\2\2\u062e\u0630\7\u03aa\2\2"+ + "\u062f\u062e\3\2\2\2\u062f\u0630\3\2\2\2\u0630\u0631\3\2\2\2\u0631\u0692"+ + "\7\u03c2\2\2\u0632\u0634\7\u011b\2\2\u0633\u0635\7\u03aa\2\2\u0634\u0633"+ + "\3\2\2\2\u0634\u0635\3\2\2\2\u0635\u0636\3\2\2\2\u0636\u0692\7\u03c2\2"+ + "\2\u0637\u0639\7\u011d\2\2\u0638\u063a\7\u03aa\2\2\u0639\u0638\3\2\2\2"+ + "\u0639\u063a\3\2\2\2\u063a\u063b\3\2\2\2\u063b\u0692\7\u03c2\2\2\u063c"+ + "\u063d\7\u0124\2\2\u063d\u063f\7\u012b\2\2\u063e\u0640\7\u03aa\2\2\u063f"+ + "\u063e\3\2\2\2\u063f\u0640\3\2\2\2\u0640\u0641\3\2\2\2\u0641\u0692\7\u03c2"+ + "\2\2\u0642\u0644\7\u0129\2\2\u0643\u0645\7\u03aa\2\2\u0644\u0643\3\2\2"+ + "\2\u0644\u0645\3\2\2\2\u0645\u0646\3\2\2\2\u0646\u0692\t\26\2\2\u0647"+ + "\u0649\7\u0134\2\2\u0648\u064a\7\u03aa\2\2\u0649\u0648\3\2\2\2\u0649\u064a"+ + "\3\2\2\2\u064a\u064b\3\2\2\2\u064b\u0692\7\u03c2\2\2\u064c\u064d\7E\2"+ + "\2\u064d\u064f\7\u012b\2\2\u064e\u0650\7\u03aa\2\2\u064f\u064e\3\2\2\2"+ + "\u064f\u0650\3\2\2\2\u0650\u0651\3\2\2\2\u0651\u0692\7\u03c2\2\2\u0652"+ + "\u0654\7\u0161\2\2\u0653\u0655\7\u03aa\2\2\u0654\u0653\3\2\2\2\u0654\u0655"+ + "\3\2\2\2\u0655\u0656\3\2\2\2\u0656\u0692\t\27\2\2\u0657\u0659\7\u016b"+ + "\2\2\u0658\u065a\7\u03aa\2\2\u0659\u0658\3\2\2\2\u0659\u065a\3\2\2\2\u065a"+ + "\u065b\3\2\2\2\u065b\u0692\5\u0208\u0105\2\u065c\u065e\7\u018c\2\2\u065d"+ + "\u065f\7\u03aa\2\2\u065e\u065d\3\2\2\2\u065e\u065f\3\2\2\2\u065f\u0660"+ + "\3\2\2\2\u0660\u0692\5\u0206\u0104\2\u0661\u0663\7\u0194\2\2\u0662\u0664"+ + "\7\u03aa\2\2\u0663\u0662\3\2\2\2\u0663\u0664\3\2\2\2\u0664\u0665\3\2\2"+ + "\2\u0665\u0692\5\u0206\u0104\2\u0666\u0668\7\u01ac\2\2\u0667\u0669\7\u03aa"+ + "\2\2\u0668\u0667\3\2\2\2\u0668\u0669\3\2\2\2\u0669\u066a\3\2\2\2\u066a"+ + "\u0692\t\30\2\2\u066b\u066d\7\u01b2\2\2\u066c\u066e\7\u03aa\2\2\u066d"+ + "\u066c\3\2\2\2\u066d\u066e\3\2\2\2\u066e\u066f\3\2\2\2\u066f\u0692\7\u03c2"+ + "\2\2\u0670\u0672\7\u01dd\2\2\u0671\u0673\7\u03aa\2\2\u0672\u0671\3\2\2"+ + "\2\u0672\u0673\3\2\2\2\u0673\u0674\3\2\2\2\u0674\u0692\t\31\2\2\u0675"+ + "\u0677\7\u01f8\2\2\u0676\u0678\7\u03aa\2\2\u0677\u0676\3\2\2\2\u0677\u0678"+ + "\3\2\2\2\u0678\u0679\3\2\2\2\u0679\u0692\t\30\2\2\u067a\u067c\7\u01f9"+ + "\2\2\u067b\u067d\7\u03aa\2\2\u067c\u067b\3\2\2\2\u067c\u067d\3\2\2\2\u067d"+ + "\u067e\3\2\2\2\u067e\u0692\t\30\2\2\u067f\u0681\7\u01fa\2\2\u0680\u0682"+ + "\7\u03aa\2\2\u0681\u0680\3\2\2\2\u0681\u0682\3\2\2\2\u0682\u0683\3\2\2"+ + "\2\u0683\u0692\5\u0206\u0104\2\u0684\u0685\7\u0205\2\2\u0685\u0687\5\u0200"+ + "\u0101\2\u0686\u0688\5`\61\2\u0687\u0686\3\2\2\2\u0687\u0688\3\2\2\2\u0688"+ + "\u0692\3\2\2\2\u0689\u068b\7\u009b\2\2\u068a\u068c\7\u03aa\2\2\u068b\u068a"+ + "\3\2\2\2\u068b\u068c\3\2\2\2\u068c\u068d\3\2\2\2\u068d\u068e\7\u03b3\2"+ + "\2\u068e\u068f\5\u0222\u0112\2\u068f\u0690\7\u03b4\2\2\u0690\u0692\3\2"+ + "\2\2\u0691\u0605\3\2\2\2\u0691\u060a\3\2\2\2\u0691\u060f\3\2\2\2\u0691"+ + "\u0615\3\2\2\2\u0691\u0620\3\2\2\2\u0691\u0626\3\2\2\2\u0691\u062d\3\2"+ + "\2\2\u0691\u0632\3\2\2\2\u0691\u0637\3\2\2\2\u0691\u063c\3\2\2\2\u0691"+ + "\u0642\3\2\2\2\u0691\u0647\3\2\2\2\u0691\u064c\3\2\2\2\u0691\u0652\3\2"+ + "\2\2\u0691\u0657\3\2\2\2\u0691\u065c\3\2\2\2\u0691\u0661\3\2\2\2\u0691"+ + "\u0666\3\2\2\2\u0691\u066b\3\2\2\2\u0691\u0670\3\2\2\2\u0691\u0675\3\2"+ + "\2\2\u0691\u067a\3\2\2\2\u0691\u067f\3\2\2\2\u0691\u0684\3\2\2\2\u0691"+ + "\u0689\3\2\2\2\u0692_\3\2\2\2\u0693\u0694\7\u01fd\2\2\u0694\u0695\t\22"+ + "\2\2\u0695a\3\2\2\2\u0696\u0697\7o\2\2\u0697\u0698\7\21\2\2\u0698\u069b"+ + "\5d\63\2\u0699\u069a\7\u01b1\2\2\u069a\u069c\5\u0206\u0104\2\u069b\u0699"+ + "\3\2\2\2\u069b\u069c\3\2\2\2\u069c\u06a4\3\2\2\2\u069d\u069e\7\u0200\2"+ + "\2\u069e\u069f\7\21\2\2\u069f\u06a2\5f\64\2\u06a0\u06a1\7\u0201\2\2\u06a1"+ + "\u06a3\5\u0206\u0104\2\u06a2\u06a0\3\2\2\2\u06a2\u06a3\3\2\2\2\u06a3\u06a5"+ + "\3\2\2\2\u06a4\u069d\3\2\2\2\u06a4\u06a5\3\2\2\2\u06a5\u06b1\3\2\2\2\u06a6"+ + "\u06a7\7\u03b3\2\2\u06a7\u06ac\5h\65\2\u06a8\u06a9\7\u03b5\2\2\u06a9\u06ab"+ + "\5h\65\2\u06aa\u06a8\3\2\2\2\u06ab\u06ae\3\2\2\2\u06ac\u06aa\3\2\2\2\u06ac"+ + "\u06ad\3\2\2\2\u06ad\u06af\3\2\2\2\u06ae\u06ac\3\2\2\2\u06af\u06b0\7\u03b4"+ + "\2\2\u06b0\u06b2\3\2\2\2\u06b1\u06a6\3\2\2\2\u06b1\u06b2\3\2\2\2\u06b2"+ + "c\3\2\2\2\u06b3\u06b5\7W\2\2\u06b4\u06b3\3\2\2\2\u06b4\u06b5\3\2\2\2\u06b5"+ + "\u06b6\3\2\2\2\u06b6\u06b7\7\u0157\2\2\u06b7\u06b8\7\u03b3\2\2\u06b8\u06b9"+ + "\5\u024e\u0128\2\u06b9\u06ba\7\u03b4\2\2\u06ba\u06e1\3\2\2\2\u06bb\u06bd"+ + "\7W\2\2\u06bc\u06bb\3\2\2\2\u06bc\u06bd\3\2\2\2\u06bd\u06be\3\2\2\2\u06be"+ + "\u06c2\7O\2\2\u06bf\u06c0\7\u00fa\2\2\u06c0\u06c1\7\u03aa\2\2\u06c1\u06c3"+ + "\t\32\2\2\u06c2\u06bf\3\2\2\2\u06c2\u06c3\3\2\2\2\u06c3\u06c4\3\2\2\2"+ + "\u06c4\u06c5\7\u03b3\2\2\u06c5\u06c6\5\u0220\u0111\2\u06c6\u06c7\7\u03b4"+ + "\2\2\u06c7\u06e1\3\2\2\2\u06c8\u06d2\7s\2\2\u06c9\u06ca\7\u03b3\2\2\u06ca"+ "\u06cb\5\u024e\u0128\2\u06cb\u06cc\7\u03b4\2\2\u06cc\u06d3\3\2\2\2\u06cd"+ "\u06ce\7\u0114\2\2\u06ce\u06cf\7\u03b3\2\2\u06cf\u06d0\5\u0220\u0111\2"+ "\u06d0\u06d1\7\u03b4\2\2\u06d1\u06d3\3\2\2\2\u06d2\u06c9\3\2\2\2\u06d2"+ @@ -59579,268 +59630,268 @@ private boolean expressionAtom_sempred(ExpressionAtomContext _localctx, int pred "\u10ee\7\u03b5\2\2\u10ee\u10f0\5\u0192\u00ca\2\u10ef\u10ed\3\2\2\2\u10f0"+ "\u10f3\3\2\2\2\u10f1\u10ef\3\2\2\2\u10f1\u10f2\3\2\2\2\u10f2\u1102\3\2"+ "\2\2\u10f3\u10f1\3\2\2\2\u10f4\u1100\7|\2\2\u10f5\u1101\7\u01a0\2\2\u10f6"+ - "\u10fd\5\u0194\u00cb\2"; + "\u10fd"; private static final String _serializedATNSegment2 = - "\u10f7\u10f9\7\13\2\2\u10f8\u10f7\3\2\2\2\u10f8\u10f9\3\2\2\2\u10f9\u10fa"+ - "\3\2\2\2\u10fa\u10fc\5\u0194\u00cb\2\u10fb\u10f8\3\2\2\2\u10fc\u10ff\3"+ - "\2\2\2\u10fd\u10fb\3\2\2\2\u10fd\u10fe\3\2\2\2\u10fe\u1101\3\2\2\2\u10ff"+ - "\u10fd\3\2\2\2\u1100\u10f5\3\2\2\2\u1100\u10f6\3\2\2\2\u1101\u1103\3\2"+ - "\2\2\u1102\u10f4\3\2\2\2\u1102\u1103\3\2\2\2\u1103\u110d\3\2\2\2\u1104"+ - "\u110a\7\u00a7\2\2\u1105\u1106\7>\2\2\u1106\u1109\7h\2\2\u1107\u1109\5"+ - "\u0196\u00cc\2\u1108\u1105\3\2\2\2\u1108\u1107\3\2\2\2\u1109\u110c\3\2"+ - "\2\2\u110a\u1108\3\2\2\2\u110a\u110b\3\2\2\2\u110b\u110e\3\2\2\2\u110c"+ - "\u110a\3\2\2\2\u110d\u1104\3\2\2\2\u110d\u110e\3\2\2\2\u110e\u0185\3\2"+ - "\2\2\u110f\u1110\7>\2\2\u1110\u1111\7\u01bf\2\2\u1111\u1112\7f\2\2\u1112"+ - "\u1113\5\u01ee\u00f8\2\u1113\u1114\7\u0096\2\2\u1114\u1119\5\u01ee\u00f8"+ - "\2\u1115\u1116\7\u03b5\2\2\u1116\u1118\5\u01ee\u00f8\2\u1117\u1115\3\2"+ - "\2\2\u1118\u111b\3\2\2\2\u1119\u1117\3\2\2\2\u1119\u111a\3\2\2\2\u111a"+ - "\u111f\3\2\2\2\u111b\u1119\3\2\2\2\u111c\u111d\7\u00a7\2\2\u111d\u111e"+ - "\7>\2\2\u111e\u1120\7h\2\2\u111f\u111c\3\2\2\2\u111f\u1120\3\2\2\2\u1120"+ - "\u0187\3\2\2\2\u1121\u1122\7y\2\2\u1122\u1123\7\u0214\2\2\u1123\u1128"+ - "\5\u01a2\u00d2\2\u1124\u1125\7\u03b5\2\2\u1125\u1127\5\u01a2\u00d2\2\u1126"+ - "\u1124\3\2\2\2\u1127\u112a\3\2\2\2\u1128\u1126\3\2\2\2\u1128\u1129\3\2"+ - "\2\2\u1129\u0189\3\2\2\2\u112a\u1128\3\2\2\2\u112b\u112c\7\177\2\2\u112c"+ - "\u1131\5\u019c\u00cf\2\u112d\u112e\7\u03b5\2\2\u112e\u1130\5\u019c\u00cf"+ - "\2\u112f\u112d\3\2\2\2\u1130\u1133\3\2\2\2\u1131\u112f\3\2\2\2\u1131\u1132"+ - "\3\2\2\2\u1132\u1134\3\2\2\2\u1133\u1131\3\2\2\2\u1134\u1136\7f\2\2\u1135"+ - "\u1137\t9\2\2\u1136\u1135\3\2\2\2\u1136\u1137\3\2\2\2\u1137\u1138\3\2"+ - "\2\2\u1138\u1139\5\u01a0\u00d1\2\u1139\u113a\7<\2\2\u113a\u113f\5\u01ee"+ - "\u00f8\2\u113b\u113c\7\u03b5\2\2\u113c\u113e\5\u01ee\u00f8\2\u113d\u113b"+ - "\3\2\2\2\u113e\u1141\3\2\2\2\u113f\u113d\3\2\2\2\u113f\u1140\3\2\2\2\u1140"+ - "\u1154\3\2\2\2\u1141\u113f\3\2\2\2\u1142\u1143\7\177\2\2\u1143\u1145\7"+ - "\b\2\2\u1144\u1146\7\u0238\2\2\u1145\u1144\3\2\2\2\u1145\u1146\3\2\2\2"+ - "\u1146\u1147\3\2\2\2\u1147\u1148\7\u03b5\2\2\u1148\u1149\7>\2\2\u1149"+ - "\u114a\7h\2\2\u114a\u114b\7<\2\2\u114b\u1150\5\u01ee\u00f8\2\u114c\u114d"+ - "\7\u03b5\2\2\u114d\u114f\5\u01ee\u00f8\2\u114e\u114c\3\2\2\2\u114f\u1152"+ - "\3\2\2\2\u1150\u114e\3\2\2\2\u1150\u1151\3\2\2\2\u1151\u1154\3\2\2\2\u1152"+ - "\u1150\3\2\2\2\u1153\u112b\3\2\2\2\u1153\u1142\3\2\2\2\u1154\u018b\3\2"+ - "\2\2\u1155\u1156\7\177\2\2\u1156\u1157\7\u01bf\2\2\u1157\u1158\7f\2\2"+ - "\u1158\u1159\5\u01ee\u00f8\2\u1159\u115a\7<\2\2\u115a\u115f\5\u01ee\u00f8"+ - "\2\u115b\u115c\7\u03b5\2\2\u115c\u115e\5\u01ee\u00f8\2\u115d\u115b\3\2"+ - "\2\2\u115e\u1161\3\2\2\2\u115f\u115d\3\2\2\2\u115f\u1160\3\2\2\2\u1160"+ - "\u018d\3\2\2\2\u1161\u115f\3\2\2\2\u1162\u1163\7\u0085\2\2\u1163\u1166"+ - "\7\u01b2\2\2\u1164\u1165\79\2\2\u1165\u1167\5\u01ee\u00f8\2\u1166\u1164"+ - "\3\2\2\2\u1166\u1167\3\2\2\2\u1167\u1168\3\2\2\2\u1168\u116b\7\u03aa\2"+ - "\2\u1169\u116c\5\u0248\u0125\2\u116a\u116c\7\u03c2\2\2\u116b\u1169\3\2"+ - "\2\2\u116b\u116a\3\2\2\2\u116c\u018f\3\2\2\2\u116d\u116e\5\u01ee\u00f8"+ - "\2\u116e\u116f\5\u0198\u00cd\2\u116f\u0191\3\2\2\2\u1170\u1171\5\u01ee"+ - "\u00f8\2\u1171\u1172\7\u015b\2\2\u1172\u1173\7\21\2\2\u1173\u1174\7\u01b2"+ - "\2\2\u1174\u1175\7\u03c2\2\2\u1175\u1189\3\2\2\2\u1176\u1177\5\u01ee\u00f8"+ - "\2\u1177\u117a\7\u015b\2\2\u1178\u1179\7\u00a7\2\2\u1179\u117b\5\u01fe"+ - "\u0100\2\u117a\u1178\3\2\2\2\u117a\u117b\3\2\2\2\u117b\u117c\3\2\2\2\u117c"+ - "\u117d\7\21\2\2\u117d\u117e\7\u03c2\2\2\u117e\u1189\3\2\2\2\u117f\u1180"+ - "\5\u01ee\u00f8\2\u1180\u1181\7\u015b\2\2\u1181\u1182\7\u00a7\2\2\u1182"+ - "\u1185\5\u01fe\u0100\2\u1183\u1184\7\f\2\2\u1184\u1186\7\u03c2\2\2\u1185"+ - "\u1183\3\2\2\2\u1185\u1186\3\2\2\2\u1186\u1189\3\2\2\2\u1187\u1189\5\u01ee"+ - "\u00f8\2\u1188\u1170\3\2\2\2\u1188\u1176\3\2\2\2\u1188\u117f\3\2\2\2\u1188"+ - "\u1187\3\2\2\2\u1189\u0193\3\2\2\2\u118a\u1193\7\u0090\2\2\u118b\u1193"+ - "\7\u0220\2\2\u118c\u118d\7\u010f\2\2\u118d\u1193\7\u03c2\2\2\u118e\u118f"+ - "\7\u0169\2\2\u118f\u1193\7\u03c2\2\2\u1190\u1191\7\u01ff\2\2\u1191\u1193"+ - "\7\u03c2\2\2\u1192\u118a\3\2\2\2\u1192\u118b\3\2\2\2\u1192\u118c\3\2\2"+ - "\2\u1192\u118e\3\2\2\2\u1192\u1190\3\2\2\2\u1193\u0195\3\2\2\2\u1194\u1195"+ - "\7\u018b\2\2\u1195\u119d\5\u0206\u0104\2\u1196\u1197\7\u018e\2\2\u1197"+ - "\u119d\5\u0206\u0104\2\u1198\u1199\7\u018a\2\2\u1199\u119d\5\u0206\u0104"+ - "\2\u119a\u119b\7\u018f\2\2\u119b\u119d\5\u0206\u0104\2\u119c\u1194\3\2"+ - "\2\2\u119c\u1196\3\2\2\2\u119c\u1198\3\2\2\2\u119c\u119a\3\2\2\2\u119d"+ - "\u0197\3\2\2\2\u119e\u119f\7\u01b2\2\2\u119f\u11a6\7\u0142\2\2\u11a0\u11a7"+ - "\7&\2\2\u11a1\u11a7\7\u019c\2\2\u11a2\u11a3\7J\2\2\u11a3\u11a4\5\u0206"+ - "\u0104\2\u11a4\u11a5\7\u022a\2\2\u11a5\u11a7\3\2\2\2\u11a6\u11a0\3\2\2"+ - "\2\u11a6\u11a1\3\2\2\2\u11a6\u11a2\3\2\2\2\u11a6\u11a7\3\2\2\2\u11a7\u0199"+ - "\3\2\2\2\u11a8\u11a9\7\u00f6\2\2\u11a9\u11aa\t:\2\2\u11aa\u019b\3\2\2"+ - "\2\u11ab\u11b0\5\u019e\u00d0\2\u11ac\u11ad\7\u03b3\2\2\u11ad\u11ae\5\u0220"+ - "\u0111\2\u11ae\u11af\7\u03b4\2\2\u11af\u11b1\3\2\2\2\u11b0\u11ac\3\2\2"+ - "\2\u11b0\u11b1\3\2\2\2\u11b1\u019d\3\2\2\2\u11b2\u11b4\7\b\2\2\u11b3\u11b5"+ - "\7\u0238\2\2\u11b4\u11b3\3\2\2\2\u11b4\u11b5\3\2\2\2\u11b5\u11dd\3\2\2"+ - "\2\u11b6\u11b8\7\t\2\2\u11b7\u11b9\7\u0231\2\2\u11b8\u11b7\3\2\2\2\u11b8"+ - "\u11b9\3\2\2\2\u11b9\u11dd\3\2\2\2\u11ba\u11c1\7\37\2\2\u11bb\u11bc\7"+ - "\u0206\2\2\u11bc\u11c2\7\u0230\2\2\u11bd\u11c2\7\u0231\2\2\u11be\u11c2"+ - "\7\u021a\2\2\u11bf\u11c2\7\u0214\2\2\u11c0\u11c2\7\u0205\2\2\u11c1\u11bb"+ - "\3\2\2\2\u11c1\u11bd\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1\u11bf\3\2\2\2\u11c1"+ - "\u11c0\3\2\2\2\u11c1\u11c2\3\2\2\2\u11c2\u11dd\3\2\2\2\u11c3\u11dd\7("+ - "\2\2\u11c4\u11dd\7.\2\2\u11c5\u11dd\7\u013d\2\2\u11c6\u11dd\7\u0232\2"+ - "\2\u11c7\u11dd\7\u0233\2\2\u11c8\u11c9\7>\2\2\u11c9\u11dd\7h\2\2\u11ca"+ - "\u11dd\7E\2\2\u11cb\u11dd\7I\2\2\u11cc\u11cd\7Z\2\2\u11cd\u11dd\7\u0230"+ - "\2\2\u11ce\u11dd\7\u0234\2\2\u11cf\u11dd\7\u01bf\2\2\u11d0\u11dd\7v\2"+ - "\2\u11d1\u11dd\7\u0235\2\2\u11d2\u11d3\7\u01d4\2\2\u11d3\u11dd\t;\2\2"+ - "\u11d4\u11dd\7\u0084\2\2\u11d5\u11d6\7\u0087\2\2\u11d6\u11dd\t<\2\2\u11d7"+ - "\u11dd\7\u0236\2\2\u11d8\u11dd\7\u0237\2\2\u11d9\u11dd\7\u0098\2\2\u11da"+ - "\u11dd\7\u009f\2\2\u11db\u11dd\7\u00a0\2\2\u11dc\u11b2\3\2\2\2\u11dc\u11b6"+ - "\3\2\2\2\u11dc\u11ba\3\2\2\2\u11dc\u11c3\3\2\2\2\u11dc\u11c4\3\2\2\2\u11dc"+ - "\u11c5\3\2\2\2\u11dc\u11c6\3\2\2\2\u11dc\u11c7\3\2\2\2\u11dc\u11c8\3\2"+ - "\2\2\u11dc\u11ca\3\2\2\2\u11dc\u11cb\3\2\2\2\u11dc\u11cc\3\2\2\2\u11dc"+ - "\u11ce\3\2\2\2\u11dc\u11cf\3\2\2\2\u11dc\u11d0\3\2\2\2\u11dc\u11d1\3\2"+ - "\2\2\u11dc\u11d2\3\2\2\2\u11dc\u11d4\3\2\2\2\u11dc\u11d5\3\2\2\2\u11dc"+ - "\u11d7\3\2\2\2\u11dc\u11d8\3\2\2\2\u11dc\u11d9\3\2\2\2\u11dc\u11da\3\2"+ - "\2\2\u11dc\u11db\3\2\2\2\u11dd\u019f\3\2\2\2\u11de\u11ec\7\u03a2\2\2\u11df"+ - "\u11e0\7\u03a2\2\2\u11e0\u11e1\7\u03b2\2\2\u11e1\u11ec\7\u03a2\2\2\u11e2"+ - "\u11e3\5\u0200\u0101\2\u11e3\u11e4\7\u03b2\2\2\u11e4\u11e5\7\u03a2\2\2"+ - "\u11e5\u11ec\3\2\2\2\u11e6\u11e7\5\u0200\u0101\2\u11e7\u11e8\7\u03b2\2"+ - "\2\u11e8\u11e9\5\u0200\u0101\2\u11e9\u11ec\3\2\2\2\u11ea\u11ec\5\u0200"+ - "\u0101\2\u11eb\u11de\3\2\2\2\u11eb\u11df\3\2\2\2\u11eb\u11e2\3\2\2\2\u11eb"+ - "\u11e6\3\2\2\2\u11eb\u11ea\3\2\2\2\u11ec\u01a1\3\2\2\2\u11ed\u11ee\5\u01ee"+ - "\u00f8\2\u11ee\u11ef\7\u0096\2\2\u11ef\u11f0\5\u01ee\u00f8\2\u11f0\u01a3"+ - "\3\2\2\2\u11f1\u11f3\7\n\2\2\u11f2\u11f4\t=\2\2\u11f3\u11f2\3\2\2\2\u11f3"+ - "\u11f4\3\2\2\2\u11f4\u11f5\3\2\2\2\u11f5\u11f6\7\u0093\2\2\u11f6\u11f7"+ - "\5\u0222\u0112\2\u11f7\u01a5\3\2\2\2\u11f8\u11f9\7\30\2\2\u11f9\u11fa"+ - "\7\u0093\2\2\u11fa\u11fe\5\u0222\u0112\2\u11fb\u11fd\5\u01ae\u00d8\2\u11fc"+ - "\u11fb\3\2\2\2\u11fd\u1200\3\2\2\2\u11fe\u11fc\3\2\2\2\u11fe\u11ff\3\2"+ - "\2\2\u11ff\u01a7\3\2\2\2\u1200\u11fe\3\2\2\2\u1201\u1202\7\u010e\2\2\u1202"+ - "\u1203\7\u0093\2\2\u1203\u1205\5\u0222\u0112\2\u1204\u1206\t>\2\2\u1205"+ - "\u1204\3\2\2\2\u1205\u1206\3\2\2\2\u1206\u01a9\3\2\2\2\u1207\u1209\7g"+ - "\2\2\u1208\u120a\t=\2\2\u1209\u1208\3\2\2\2\u1209\u120a\3\2\2\2\u120a"+ - "\u120b\3\2\2\2\u120b\u120c\7\u0093\2\2\u120c\u120d\5\u0222\u0112\2\u120d"+ - "\u01ab\3\2\2\2\u120e\u1210\7\u01cc\2\2\u120f\u1211\t=\2\2\u1210\u120f"+ - "\3\2\2\2\u1210\u1211\3\2\2\2\u1211\u1212\3\2\2\2\u1212\u1213\7\u0093\2"+ - "\2\u1213\u1215\5\u0222\u0112\2\u1214\u1216\7\u01c1\2\2\u1215\u1214\3\2"+ - "\2\2\u1215\u1216\3\2\2\2\u1216\u1218\3\2\2\2\u1217\u1219\7\u0144\2\2\u1218"+ - "\u1217\3\2\2\2\u1218\u1219\3\2\2\2\u1219\u121b\3\2\2\2\u121a\u121c\7\u0215"+ - "\2\2\u121b\u121a\3\2\2\2\u121b\u121c\3\2\2\2\u121c\u01ad\3\2\2\2\u121d"+ - "\u121e\79\2\2\u121e\u1225\7\u0213\2\2\u121f\u1225\7\u01c1\2\2\u1220\u1225"+ - "\7\u0146\2\2\u1221\u1225\7\u0190\2\2\u1222\u1225\7\u0144\2\2\u1223\u1225"+ - "\7\u010c\2\2\u1224\u121d\3\2\2\2\u1224\u121f\3\2\2\2\u1224\u1220\3\2\2"+ - "\2\u1224\u1221\3\2\2\2\u1224\u1222\3\2\2\2\u1224\u1223\3\2\2\2\u1225\u01af"+ - "\3\2\2\2\u1226\u1228\7\37\2\2\u1227\u1229\7\u00f9\2\2\u1228\u1227\3\2"+ - "\2\2\u1228\u1229\3\2\2\2\u1229\u122a\3\2\2\2\u122a\u122b\7\u0151\2\2\u122b"+ - "\u122c\5\u0200\u0101\2\u122c\u122d\7\u01d7\2\2\u122d\u122e\t?\2\2\u122e"+ - "\u122f\7\u01ec\2\2\u122f\u1230\7\u03c2\2\2\u1230\u01b1\3\2\2\2\u1231\u1232"+ - "\7\u0162\2\2\u1232\u1233\7\u01b4\2\2\u1233\u1234\5\u0200\u0101\2\u1234"+ - "\u1235\7\u01ec\2\2\u1235\u1236\7\u03c2\2\2\u1236\u01b3\3\2\2\2\u1237\u1238"+ - "\7\u0210\2\2\u1238\u1239\7\u01b4\2\2\u1239\u123a\5\u0200\u0101\2\u123a"+ - "\u01b5\3\2\2\2\u123b\u123c\7\u0085\2\2\u123c\u123d\5\u01ba\u00de\2\u123d"+ - "\u123e\7\u03aa\2\2\u123e\u1246\5\u024e\u0128\2\u123f\u1240\7\u03b5\2\2"+ - "\u1240\u1241\5\u01ba\u00de\2\u1241\u1242\7\u03aa\2\2\u1242\u1243\5\u024e"+ - "\u0128\2\u1243\u1245\3\2\2\2\u1244\u123f\3\2\2\2\u1245\u1248\3\2\2\2\u1246"+ - "\u1244\3\2\2\2\u1246\u1247\3\2\2\2\u1247\u1261\3\2\2\2\u1248\u1246\3\2"+ - "\2\2\u1249\u124d\7\u0085\2\2\u124a\u124b\7\27\2\2\u124b\u124e\7\u0085"+ - "\2\2\u124c\u124e\7\u0293\2\2\u124d\u124a\3\2\2\2\u124d\u124c\3\2\2\2\u124e"+ - "\u1251\3\2\2\2\u124f\u1252\5\u01f2\u00fa\2\u1250\u1252\7&\2\2\u1251\u124f"+ - "\3\2\2\2\u1251\u1250\3\2\2\2\u1252\u1261\3\2\2\2\u1253\u1254\7\u0085\2"+ - "\2\u1254\u125b\7\u019a\2\2\u1255\u1258\5\u01f2\u00fa\2\u1256\u1257\7\31"+ - "\2\2\u1257\u1259\5\u01f4\u00fb\2\u1258\u1256\3\2\2\2\u1258\u1259\3\2\2"+ - "\2\u1259\u125c\3\2\2\2\u125a\u125c\7&\2\2\u125b\u1255\3\2\2\2\u125b\u125a"+ - "\3\2\2\2\u125c\u1261\3\2\2\2\u125d\u1261\5\u018e\u00c8\2\u125e\u1261\5"+ - "\u0112\u008a\2\u125f\u1261\5\u0110\u0089\2\u1260\u123b\3\2\2\2\u1260\u1249"+ - "\3\2\2\2\u1260\u1253\3\2\2\2\u1260\u125d\3\2\2\2\u1260\u125e\3\2\2\2\u1260"+ - "\u125f\3\2\2\2\u1261\u01b7\3\2\2\2\u1262\u1263\7\u0087\2\2\u1263\u1264"+ - "\t/\2\2\u1264\u12fa\7\u0174\2\2\u1265\u1266\7\u0087\2\2\u1266\u1267\t"+ - "@\2\2\u1267\u126a\7\u013e\2\2\u1268\u1269\7D\2\2\u1269\u126b\7\u03c2\2"+ - "\2\u126a\u1268\3\2\2\2\u126a\u126b\3\2\2\2\u126b\u126e\3\2\2\2\u126c\u126d"+ - "\7<\2\2\u126d\u126f\5\u0206\u0104\2\u126e\u126c\3\2\2\2\u126e\u126f\3"+ - "\2\2\2\u126f\u1277\3\2\2\2\u1270\u1274\7V\2\2\u1271\u1272\5\u0206\u0104"+ - "\2\u1272\u1273\7\u03b5\2\2\u1273\u1275\3\2\2\2\u1274\u1271\3\2\2\2\u1274"+ - "\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278\5\u0206\u0104\2\u1277\u1270"+ - "\3\2\2\2\u1277\u1278\3\2\2\2\u1278\u12fa\3\2\2\2\u1279\u127a\7\u0087\2"+ - "\2\u127a\u127c\5\u01bc\u00df\2\u127b\u127d\5\u01be\u00e0\2\u127c\u127b"+ - "\3\2\2\2\u127c\u127d\3\2\2\2\u127d\u12fa\3\2\2\2\u127e\u1280\7\u0087\2"+ - "\2\u127f\u1281\7\u0150\2\2\u1280\u127f\3\2\2\2\u1280\u1281\3\2\2\2\u1281"+ - "\u1282\3\2\2\2\u1282\u1283\t!\2\2\u1283\u1284\tA\2\2\u1284\u1287\5\u01e8"+ - "\u00f5\2\u1285\u1286\tA\2\2\u1286\u1288\5\u0200\u0101\2\u1287\u1285\3"+ - "\2\2\2\u1287\u1288\3\2\2\2\u1288\u128a\3\2\2\2\u1289\u128b\5\u01be\u00e0"+ - "\2\u128a\u1289\3\2\2\2\u128a\u128b\3\2\2\2\u128b\u12fa\3\2\2\2\u128c\u128d"+ - "\7\u0087\2\2\u128d\u128e\7\37\2\2\u128e\u1290\t\2\2\2\u128f\u1291\5\u0238"+ - "\u011d\2\u1290\u128f\3\2\2\2\u1290\u1291\3\2\2\2\u1291\u1292\3\2\2\2\u1292"+ - "\u12fa\5\u0200\u0101\2\u1293\u1294\7\u0087\2\2\u1294\u1295\7\37\2\2\u1295"+ - "\u1296\tB\2\2\u1296\u12fa\5\u01e6\u00f4\2\u1297\u1298\7\u0087\2\2\u1298"+ - "\u1299\7\37\2\2\u1299\u129a\7\u0214\2\2\u129a\u12fa\5\u01ee\u00f8\2\u129b"+ - "\u129c\7\u0087\2\2\u129c\u129d\7\u0137\2\2\u129d\u129e\5\u01f6\u00fc\2"+ - "\u129e\u129f\tC\2\2\u129f\u12fa\3\2\2\2\u12a0\u12a1\7\u0087\2\2\u12a1"+ - "\u12fa\5\u01c0\u00e1\2\u12a2\u12a3\7\u0087\2\2\u12a3\u12a4\tD\2\2\u12a4"+ - "\u12a8\7V\2\2\u12a5\u12a6\5\u0206\u0104\2\u12a6\u12a7\7\u03b5\2\2\u12a7"+ - "\u12a9\3\2\2\2\u12a8\u12a5\3\2\2\2\u12a8\u12a9\3\2\2\2\u12a9\u12aa\3\2"+ - "\2\2\u12aa\u12fa\5\u0206\u0104\2\u12ab\u12ac\7\u0087\2\2\u12ac\u12ad\7"+ - "\u00d7\2\2\u12ad\u12ae\7\u03b3\2\2\u12ae\u12af\7\u03a2\2\2\u12af\u12b0"+ - "\7\u03b4\2\2\u12b0\u12fa\tD\2\2\u12b1\u12b2\7\u0087\2\2\u12b2\u12b5\5"+ - "\u01c2\u00e2\2\u12b3\u12b4\tA\2\2\u12b4\u12b6\5\u0200\u0101\2\u12b5\u12b3"+ - "\3\2\2\2\u12b5\u12b6\3\2\2\2\u12b6\u12b8\3\2\2\2\u12b7\u12b9\5\u01be\u00e0"+ - "\2\u12b8\u12b7\3\2\2\2\u12b8\u12b9\3\2\2\2\u12b9\u12fa\3\2\2\2\u12ba\u12bb"+ - "\7\u0087\2\2\u12bb\u12bc\tE\2\2\u12bc\u12bd\7\u0113\2\2\u12bd\u12fa\5"+ - "\u01e6\u00f4\2\u12be\u12bf\7\u0087\2\2\u12bf\u12c2\7\u0154\2\2\u12c0\u12c1"+ - "\79\2\2\u12c1\u12c3\5\u01ee\u00f8\2\u12c2\u12c0\3\2\2\2\u12c2\u12c3\3"+ - "\2\2\2\u12c3\u12fa\3\2\2\2\u12c4\u12c5\7\u0087\2\2\u12c5\u12c6\tF\2\2"+ - "\u12c6\u12c7\tA\2\2\u12c7\u12ca\5\u01e8\u00f5\2\u12c8\u12c9\tA\2\2\u12c9"+ - "\u12cb\5\u0200\u0101\2\u12ca\u12c8\3\2\2\2\u12ca\u12cb\3\2\2\2\u12cb\u12ce"+ - "\3\2\2\2\u12cc\u12cd\7\u00a5\2\2\u12cd\u12cf\5\u024e\u0128\2\u12ce\u12cc"+ - "\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf\u12fa\3\2\2\2\u12d0\u12d1\7\u0087\2"+ - "\2\u12d1\u12d2\7\u01a8\2\2\u12d2\u12d5\7\u0230\2\2\u12d3\u12d4\tA\2\2"+ - "\u12d4\u12d6\5\u0200\u0101\2\u12d5\u12d3\3\2\2\2\u12d5\u12d6\3\2\2\2\u12d6"+ - "\u12d8\3\2\2\2\u12d7\u12d9\5\u01be\u00e0\2\u12d8\u12d7\3\2\2\2\u12d8\u12d9"+ - "\3\2\2\2\u12d9\u12fa\3\2\2\2\u12da\u12db\7\u0087\2\2\u12db\u12dc\7\u01bd"+ - "\2\2\u12dc\u12e1\5\u01c4\u00e3\2\u12dd\u12de\7\u03b5\2\2\u12de\u12e0\5"+ - "\u01c4\u00e3\2\u12df\u12dd\3\2\2\2\u12e0\u12e3\3\2\2\2\u12e1\u12df\3\2"+ - "\2\2\u12e1\u12e2\3\2\2\2\u12e2\u12e7\3\2\2\2\u12e3\u12e1\3\2\2\2\u12e4"+ - "\u12e5\79\2\2\u12e5\u12e6\7\u01c0\2\2\u12e6\u12e8\5\u0206\u0104\2\u12e7"+ - "\u12e4\3\2\2\2\u12e7\u12e8\3\2\2\2\u12e8\u12e9\3\2\2\2\u12e9\u12ed\7V"+ - "\2\2\u12ea\u12eb\5\u0206\u0104\2\u12eb\u12ec\7\u03b5\2\2\u12ec\u12ee\3"+ - "\2\2\2\u12ed\u12ea\3\2\2\2\u12ed\u12ee\3\2\2\2\u12ee\u12ef\3\2\2\2\u12ef"+ - "\u12f0\5\u0206\u0104\2\u12f0\u12fa\3\2\2\2\u12f1\u12f2\7\u0087\2\2\u12f2"+ - "\u12f3\7\u01e7\2\2\u12f3\u12f7\7\u01fb\2\2\u12f4\u12f5\79\2\2\u12f5\u12f6"+ - "\7\u010d\2\2\u12f6\u12f8\7\u03c2\2\2\u12f7\u12f4\3\2\2\2\u12f7\u12f8\3"+ - "\2\2\2\u12f8\u12fa\3\2\2\2\u12f9\u1262\3\2\2\2\u12f9\u1265\3\2\2\2\u12f9"+ - "\u1279\3\2\2\2\u12f9\u127e\3\2\2\2\u12f9\u128c\3\2\2\2\u12f9\u1293\3\2"+ - "\2\2\u12f9\u1297\3\2\2\2\u12f9\u129b\3\2\2\2\u12f9\u12a0\3\2\2\2\u12f9"+ - "\u12a2\3\2\2\2\u12f9\u12ab\3\2\2\2\u12f9\u12b1\3\2\2\2\u12f9\u12ba\3\2"+ - "\2\2\u12f9\u12be\3\2\2\2\u12f9\u12c4\3\2\2\2\u12f9\u12d0\3\2\2\2\u12f9"+ - "\u12da\3\2\2\2\u12f9\u12f1\3\2\2\2\u12fa\u01b9\3\2\2\2\u12fb\u1306\7\u03cd"+ - "\2\2\u12fc\u1306\7\u03ce\2\2\u12fd\u12fe\7\u03b7\2\2\u12fe\u1300\7\u03b7"+ - "\2\2\u12ff\u12fd\3\2\2\2\u12ff\u1300\3\2\2\2\u1300\u1301\3\2\2\2\u1301"+ - "\u1303\t.\2\2\u1302\u12ff\3\2\2\2\u1302\u1303\3\2\2\2\u1303\u1304\3\2"+ - "\2\2\u1304\u1306\5\u0200\u0101\2\u1305\u12fb\3\2\2\2\u1305\u12fc\3\2\2"+ - "\2\u1305\u1302\3\2\2\2\u1306\u01bb\3\2\2\2\u1307\u1308\7\27\2\2\u1308"+ - "\u1315\7\u0085\2\2\u1309\u1315\7\u0296\2\2\u130a\u1315\7$\2\2\u130b\u1315"+ - "\7\u0083\2\2\u130c\u130d\7\u0151\2\2\u130d\u1315\7\u01fb\2\2\u130e\u130f"+ - "\7q\2\2\u130f\u1315\7\u01fb\2\2\u1310\u1312\t.\2\2\u1311\u1310\3\2\2\2"+ - "\u1311\u1312\3\2\2\2\u1312\u1313\3\2\2\2\u1313\u1315\tG\2\2\u1314\u1307"+ - "\3\2\2\2\u1314\u1309\3\2\2\2\u1314\u130a\3\2\2\2\u1314\u130b\3\2\2\2\u1314"+ - "\u130c\3\2\2\2\u1314\u130e\3\2\2\2\u1314\u1311\3\2\2\2\u1315\u01bd\3\2"+ - "\2\2\u1316\u1317\7U\2\2\u1317\u131b\7\u03c2\2\2\u1318\u1319\7\u00a5\2"+ - "\2\u1319\u131b\5\u024e\u0128\2\u131a\u1316\3\2\2\2\u131a\u1318\3\2\2\2"+ - "\u131b\u01bf\3\2\2\2\u131c\u131e\7\u01fd\2\2\u131d\u131c\3\2\2\2\u131d"+ - "\u131e\3\2\2\2\u131e\u131f\3\2\2\2\u131f\u132e\7\u0138\2\2\u1320\u1321"+ - "\7\u0175\2\2\u1321\u132e\7\u01fb\2\2\u1322\u132e\7\u01b6\2\2\u1323\u132e"+ - "\7\u0238\2\2\u1324\u1326\7\u0150\2\2\u1325\u1324\3\2\2\2\u1325\u1326\3"+ - "\2\2\2\u1326\u1327\3\2\2\2\u1327\u132e\7\u01bc\2\2\u1328\u132e\7\u01be"+ - "\2\2\u1329\u132a\7\u01e7\2\2\u132a\u132e\7\u015a\2\2\u132b\u132e\7\u00fd"+ - "\2\2\u132c\u132e\7\u0121\2\2\u132d\u131d\3\2\2\2\u132d\u1320\3\2\2\2\u132d"+ - "\u1322\3\2\2\2\u132d\u1323\3\2\2\2\u132d\u1325\3\2\2\2\u132d\u1328\3\2"+ - "\2\2\u132d\u1329\3\2\2\2\u132d\u132b\3\2\2\2\u132d\u132c\3\2\2\2\u132e"+ - "\u01c1\3\2\2\2\u132f\u1338\7\u013e\2\2\u1330\u1331\7\u0093\2\2\u1331\u1338"+ - "\7\u01fb\2\2\u1332\u1334\7\u0150\2\2\u1333\u1332\3\2\2\2\u1333\u1334\3"+ - "\2\2\2\u1334\u1335\3\2\2\2\u1335\u1338\7\u0230\2\2\u1336\u1338\7\u020b"+ - "\2\2\u1337\u132f\3\2\2\2\u1337\u1330\3\2\2\2\u1337\u1333\3\2\2\2\u1337"+ - "\u1336\3\2\2\2\u1338\u01c3\3\2\2\2\u1339\u1346\7\b\2\2\u133a\u133b\7\u0105"+ - "\2\2\u133b\u1346\7\u0165\2\2\u133c\u133d\7\u0120\2\2\u133d\u1346\7\u0204"+ - "\2\2\u133e\u1346\7\u0123\2\2\u133f\u1346\7\u0167\2\2\u1340\u1346\7\u0266"+ - "\2\2\u1341\u1342\7\u01ad\2\2\u1342\u1346\7\u0147\2\2\u1343\u1346\7\u01ee"+ - "\2\2\u1344\u1346\7\u0203\2\2\u1345\u1339\3\2\2\2\u1345\u133a\3\2\2\2\u1345"+ - "\u133c\3\2\2\2\u1345\u133e\3\2\2\2\u1345\u133f\3\2\2\2\u1345\u1340\3\2"+ - "\2\2\u1345\u1341\3\2\2\2\u1345\u1343\3\2\2\2\u1345\u1344\3\2\2\2\u1346"+ - "\u01c5\3\2\2\2\u1347\u1348\7\u0103\2\2\u1348\u1349\7\u03c2\2\2\u1349\u01c7"+ - "\3\2\2\2\u134a\u134b\7\u0109\2\2\u134b\u134c\7E\2\2\u134c\u1351\5\u01d4"+ - "\u00eb\2\u134d\u134e\7\u03b5\2\2\u134e\u1350\5\u01d4\u00eb\2\u134f\u134d"+ - "\3\2\2\2\u1350\u1353\3\2\2\2\u1351\u134f\3\2\2\2\u1351\u1352\3\2\2\2\u1352"+ - "\u135b\3\2\2\2\u1353\u1351\3\2\2\2\u1354\u1355\7o\2\2\u1355\u1358\7\u03b3"+ - "\2\2\u1356\u1359\5\u0220\u0111\2\u1357\u1359\7\b\2\2\u1358\u1356\3\2\2"+ - "\2\u1358\u1357\3\2\2\2\u1359\u135a\3\2\2\2\u135a\u135c\7\u03b4\2\2\u135b"+ - "\u1354\3\2\2\2\u135b\u135c\3\2\2\2\u135c\u135d\3\2\2\2\u135d\u135e\7D"+ - "\2\2\u135e\u135f\5\u0200\u0101\2\u135f\u01c9\3\2\2\2\u1360\u1362\7\u014d"+ - "\2\2\u1361\u1363\t=\2\2\u1362\u1361\3\2\2\2\u1362\u1363\3\2\2\2\u1363"+ - "\u1364\3\2\2\2\u1364\u1369\5\u01d6\u00ec\2\u1365\u1366\7\u03b5\2\2\u1366"+ - "\u1368\5\u01d6\u00ec\2\u1367\u1365\3\2\2\2\u1368\u136b\3\2\2\2\u1369\u1367"+ - "\3\2\2\2\u1369\u136a\3\2\2\2\u136a\u01cb\3\2\2\2\u136b\u1369\3\2\2\2\u136c"+ - "\u136e\7Q\2\2\u136d\u136f\tH\2\2\u136e\u136d\3\2\2\2\u136e\u136f\3\2\2"+ - "\2\u136f\u1371\3\2\2\2\u1370\u1372\5\u0206\u0104\2\u1371\u1370\3\2\2\2"+ - "\u1372\u1373\3\2\2\2\u1373\u1371\3\2\2\2\u1373\u1374\3\2\2\2\u1374\u01cd"+ - "\3\2\2\2\u1375\u1376\7Y\2\2\u1376\u1377\7E\2\2\u1377\u1378\7K\2\2\u1378"+ - "\u1379\7\u0109\2\2\u1379\u137e\5\u01da\u00ee\2\u137a\u137b\7\u03b5\2\2"+ - "\u137b\u137d\5\u01da\u00ee\2\u137c\u137a\3\2\2\2\u137d\u1380\3\2\2\2\u137e"+ - "\u137c\3\2\2\2\u137e\u137f\3\2\2\2\u137f\u01cf\3\2\2\2\u1380\u137e\3\2"+ - "\2\2\u1381\u1382\7\u01d5\2\2\u1382\u1383\7\u01c0\2\2\u1383\u1384\7\u0109"+ - "\2\2\u1384\u01d1\3\2\2\2\u1385\u1386\7\u0236\2\2\u1386\u01d3\3\2\2\2\u1387"+ - "\u138f\5\u01e8\u00f5\2\u1388\u138a\t\23\2\2\u1389\u1388\3\2\2\2\u1389"+ - "\u138a\3\2\2\2\u138a\u138b\3\2\2\2\u138b\u138c\7\u03b3\2\2\u138c\u138d"+ - "\5\u0220\u0111\2\u138d\u138e\7\u03b4\2\2\u138e\u1390\3\2\2\2\u138f\u1389"+ - "\3\2\2\2\u138f\u1390\3\2\2\2\u1390\u01d5\3\2\2\2\u1391\u13a4\7\u012a\2"+ - "\2\u1392\u13a4\7\u015a\2\2\u1393\u1395\tI\2\2\u1394\u1393\3\2\2\2\u1394"+ + "\5\u0194\u00cb\2\u10f7\u10f9\7\13\2\2\u10f8\u10f7\3\2\2\2\u10f8\u10f9"+ + "\3\2\2\2\u10f9\u10fa\3\2\2\2\u10fa\u10fc\5\u0194\u00cb\2\u10fb\u10f8\3"+ + "\2\2\2\u10fc\u10ff\3\2\2\2\u10fd\u10fb\3\2\2\2\u10fd\u10fe\3\2\2\2\u10fe"+ + "\u1101\3\2\2\2\u10ff\u10fd\3\2\2\2\u1100\u10f5\3\2\2\2\u1100\u10f6\3\2"+ + "\2\2\u1101\u1103\3\2\2\2\u1102\u10f4\3\2\2\2\u1102\u1103\3\2\2\2\u1103"+ + "\u110d\3\2\2\2\u1104\u110a\7\u00a7\2\2\u1105\u1106\7>\2\2\u1106\u1109"+ + "\7h\2\2\u1107\u1109\5\u0196\u00cc\2\u1108\u1105\3\2\2\2\u1108\u1107\3"+ + "\2\2\2\u1109\u110c\3\2\2\2\u110a\u1108\3\2\2\2\u110a\u110b\3\2\2\2\u110b"+ + "\u110e\3\2\2\2\u110c\u110a\3\2\2\2\u110d\u1104\3\2\2\2\u110d\u110e\3\2"+ + "\2\2\u110e\u0185\3\2\2\2\u110f\u1110\7>\2\2\u1110\u1111\7\u01bf\2\2\u1111"+ + "\u1112\7f\2\2\u1112\u1113\5\u01ee\u00f8\2\u1113\u1114\7\u0096\2\2\u1114"+ + "\u1119\5\u01ee\u00f8\2\u1115\u1116\7\u03b5\2\2\u1116\u1118\5\u01ee\u00f8"+ + "\2\u1117\u1115\3\2\2\2\u1118\u111b\3\2\2\2\u1119\u1117\3\2\2\2\u1119\u111a"+ + "\3\2\2\2\u111a\u111f\3\2\2\2\u111b\u1119\3\2\2\2\u111c\u111d\7\u00a7\2"+ + "\2\u111d\u111e\7>\2\2\u111e\u1120\7h\2\2\u111f\u111c\3\2\2\2\u111f\u1120"+ + "\3\2\2\2\u1120\u0187\3\2\2\2\u1121\u1122\7y\2\2\u1122\u1123\7\u0214\2"+ + "\2\u1123\u1128\5\u01a2\u00d2\2\u1124\u1125\7\u03b5\2\2\u1125\u1127\5\u01a2"+ + "\u00d2\2\u1126\u1124\3\2\2\2\u1127\u112a\3\2\2\2\u1128\u1126\3\2\2\2\u1128"+ + "\u1129\3\2\2\2\u1129\u0189\3\2\2\2\u112a\u1128\3\2\2\2\u112b\u112c\7\177"+ + "\2\2\u112c\u1131\5\u019c\u00cf\2\u112d\u112e\7\u03b5\2\2\u112e\u1130\5"+ + "\u019c\u00cf\2\u112f\u112d\3\2\2\2\u1130\u1133\3\2\2\2\u1131\u112f\3\2"+ + "\2\2\u1131\u1132\3\2\2\2\u1132\u1134\3\2\2\2\u1133\u1131\3\2\2\2\u1134"+ + "\u1136\7f\2\2\u1135\u1137\t9\2\2\u1136\u1135\3\2\2\2\u1136\u1137\3\2\2"+ + "\2\u1137\u1138\3\2\2\2\u1138\u1139\5\u01a0\u00d1\2\u1139\u113a\7<\2\2"+ + "\u113a\u113f\5\u01ee\u00f8\2\u113b\u113c\7\u03b5\2\2\u113c\u113e\5\u01ee"+ + "\u00f8\2\u113d\u113b\3\2\2\2\u113e\u1141\3\2\2\2\u113f\u113d\3\2\2\2\u113f"+ + "\u1140\3\2\2\2\u1140\u1154\3\2\2\2\u1141\u113f\3\2\2\2\u1142\u1143\7\177"+ + "\2\2\u1143\u1145\7\b\2\2\u1144\u1146\7\u0238\2\2\u1145\u1144\3\2\2\2\u1145"+ + "\u1146\3\2\2\2\u1146\u1147\3\2\2\2\u1147\u1148\7\u03b5\2\2\u1148\u1149"+ + "\7>\2\2\u1149\u114a\7h\2\2\u114a\u114b\7<\2\2\u114b\u1150\5\u01ee\u00f8"+ + "\2\u114c\u114d\7\u03b5\2\2\u114d\u114f\5\u01ee\u00f8\2\u114e\u114c\3\2"+ + "\2\2\u114f\u1152\3\2\2\2\u1150\u114e\3\2\2\2\u1150\u1151\3\2\2\2\u1151"+ + "\u1154\3\2\2\2\u1152\u1150\3\2\2\2\u1153\u112b\3\2\2\2\u1153\u1142\3\2"+ + "\2\2\u1154\u018b\3\2\2\2\u1155\u1156\7\177\2\2\u1156\u1157\7\u01bf\2\2"+ + "\u1157\u1158\7f\2\2\u1158\u1159\5\u01ee\u00f8\2\u1159\u115a\7<\2\2\u115a"+ + "\u115f\5\u01ee\u00f8\2\u115b\u115c\7\u03b5\2\2\u115c\u115e\5\u01ee\u00f8"+ + "\2\u115d\u115b\3\2\2\2\u115e\u1161\3\2\2\2\u115f\u115d\3\2\2\2\u115f\u1160"+ + "\3\2\2\2\u1160\u018d\3\2\2\2\u1161\u115f\3\2\2\2\u1162\u1163\7\u0085\2"+ + "\2\u1163\u1166\7\u01b2\2\2\u1164\u1165\79\2\2\u1165\u1167\5\u01ee\u00f8"+ + "\2\u1166\u1164\3\2\2\2\u1166\u1167\3\2\2\2\u1167\u1168\3\2\2\2\u1168\u116b"+ + "\7\u03aa\2\2\u1169\u116c\5\u0248\u0125\2\u116a\u116c\7\u03c2\2\2\u116b"+ + "\u1169\3\2\2\2\u116b\u116a\3\2\2\2\u116c\u018f\3\2\2\2\u116d\u116e\5\u01ee"+ + "\u00f8\2\u116e\u116f\5\u0198\u00cd\2\u116f\u0191\3\2\2\2\u1170\u1171\5"+ + "\u01ee\u00f8\2\u1171\u1172\7\u015b\2\2\u1172\u1173\7\21\2\2\u1173\u1174"+ + "\7\u01b2\2\2\u1174\u1175\7\u03c2\2\2\u1175\u1189\3\2\2\2\u1176\u1177\5"+ + "\u01ee\u00f8\2\u1177\u117a\7\u015b\2\2\u1178\u1179\7\u00a7\2\2\u1179\u117b"+ + "\5\u01fe\u0100\2\u117a\u1178\3\2\2\2\u117a\u117b\3\2\2\2\u117b\u117c\3"+ + "\2\2\2\u117c\u117d\7\21\2\2\u117d\u117e\7\u03c2\2\2\u117e\u1189\3\2\2"+ + "\2\u117f\u1180\5\u01ee\u00f8\2\u1180\u1181\7\u015b\2\2\u1181\u1182\7\u00a7"+ + "\2\2\u1182\u1185\5\u01fe\u0100\2\u1183\u1184\7\f\2\2\u1184\u1186\7\u03c2"+ + "\2\2\u1185\u1183\3\2\2\2\u1185\u1186\3\2\2\2\u1186\u1189\3\2\2\2\u1187"+ + "\u1189\5\u01ee\u00f8\2\u1188\u1170\3\2\2\2\u1188\u1176\3\2\2\2\u1188\u117f"+ + "\3\2\2\2\u1188\u1187\3\2\2\2\u1189\u0193\3\2\2\2\u118a\u1193\7\u0090\2"+ + "\2\u118b\u1193\7\u0220\2\2\u118c\u118d\7\u010f\2\2\u118d\u1193\7\u03c2"+ + "\2\2\u118e\u118f\7\u0169\2\2\u118f\u1193\7\u03c2\2\2\u1190\u1191\7\u01ff"+ + "\2\2\u1191\u1193\7\u03c2\2\2\u1192\u118a\3\2\2\2\u1192\u118b\3\2\2\2\u1192"+ + "\u118c\3\2\2\2\u1192\u118e\3\2\2\2\u1192\u1190\3\2\2\2\u1193\u0195\3\2"+ + "\2\2\u1194\u1195\7\u018b\2\2\u1195\u119d\5\u0206\u0104\2\u1196\u1197\7"+ + "\u018e\2\2\u1197\u119d\5\u0206\u0104\2\u1198\u1199\7\u018a\2\2\u1199\u119d"+ + "\5\u0206\u0104\2\u119a\u119b\7\u018f\2\2\u119b\u119d\5\u0206\u0104\2\u119c"+ + "\u1194\3\2\2\2\u119c\u1196\3\2\2\2\u119c\u1198\3\2\2\2\u119c\u119a\3\2"+ + "\2\2\u119d\u0197\3\2\2\2\u119e\u119f\7\u01b2\2\2\u119f\u11a6\7\u0142\2"+ + "\2\u11a0\u11a7\7&\2\2\u11a1\u11a7\7\u019c\2\2\u11a2\u11a3\7J\2\2\u11a3"+ + "\u11a4\5\u0206\u0104\2\u11a4\u11a5\7\u022a\2\2\u11a5\u11a7\3\2\2\2\u11a6"+ + "\u11a0\3\2\2\2\u11a6\u11a1\3\2\2\2\u11a6\u11a2\3\2\2\2\u11a6\u11a7\3\2"+ + "\2\2\u11a7\u0199\3\2\2\2\u11a8\u11a9\7\u00f6\2\2\u11a9\u11aa\t:\2\2\u11aa"+ + "\u019b\3\2\2\2\u11ab\u11b0\5\u019e\u00d0\2\u11ac\u11ad\7\u03b3\2\2\u11ad"+ + "\u11ae\5\u0220\u0111\2\u11ae\u11af\7\u03b4\2\2\u11af\u11b1\3\2\2\2\u11b0"+ + "\u11ac\3\2\2\2\u11b0\u11b1\3\2\2\2\u11b1\u019d\3\2\2\2\u11b2\u11b4\7\b"+ + "\2\2\u11b3\u11b5\7\u0238\2\2\u11b4\u11b3\3\2\2\2\u11b4\u11b5\3\2\2\2\u11b5"+ + "\u11dd\3\2\2\2\u11b6\u11b8\7\t\2\2\u11b7\u11b9\7\u0231\2\2\u11b8\u11b7"+ + "\3\2\2\2\u11b8\u11b9\3\2\2\2\u11b9\u11dd\3\2\2\2\u11ba\u11c1\7\37\2\2"+ + "\u11bb\u11bc\7\u0206\2\2\u11bc\u11c2\7\u0230\2\2\u11bd\u11c2\7\u0231\2"+ + "\2\u11be\u11c2\7\u021a\2\2\u11bf\u11c2\7\u0214\2\2\u11c0\u11c2\7\u0205"+ + "\2\2\u11c1\u11bb\3\2\2\2\u11c1\u11bd\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1"+ + "\u11bf\3\2\2\2\u11c1\u11c0\3\2\2\2\u11c1\u11c2\3\2\2\2\u11c2\u11dd\3\2"+ + "\2\2\u11c3\u11dd\7(\2\2\u11c4\u11dd\7.\2\2\u11c5\u11dd\7\u013d\2\2\u11c6"+ + "\u11dd\7\u0232\2\2\u11c7\u11dd\7\u0233\2\2\u11c8\u11c9\7>\2\2\u11c9\u11dd"+ + "\7h\2\2\u11ca\u11dd\7E\2\2\u11cb\u11dd\7I\2\2\u11cc\u11cd\7Z\2\2\u11cd"+ + "\u11dd\7\u0230\2\2\u11ce\u11dd\7\u0234\2\2\u11cf\u11dd\7\u01bf\2\2\u11d0"+ + "\u11dd\7v\2\2\u11d1\u11dd\7\u0235\2\2\u11d2\u11d3\7\u01d4\2\2\u11d3\u11dd"+ + "\t;\2\2\u11d4\u11dd\7\u0084\2\2\u11d5\u11d6\7\u0087\2\2\u11d6\u11dd\t"+ + "<\2\2\u11d7\u11dd\7\u0236\2\2\u11d8\u11dd\7\u0237\2\2\u11d9\u11dd\7\u0098"+ + "\2\2\u11da\u11dd\7\u009f\2\2\u11db\u11dd\7\u00a0\2\2\u11dc\u11b2\3\2\2"+ + "\2\u11dc\u11b6\3\2\2\2\u11dc\u11ba\3\2\2\2\u11dc\u11c3\3\2\2\2\u11dc\u11c4"+ + "\3\2\2\2\u11dc\u11c5\3\2\2\2\u11dc\u11c6\3\2\2\2\u11dc\u11c7\3\2\2\2\u11dc"+ + "\u11c8\3\2\2\2\u11dc\u11ca\3\2\2\2\u11dc\u11cb\3\2\2\2\u11dc\u11cc\3\2"+ + "\2\2\u11dc\u11ce\3\2\2\2\u11dc\u11cf\3\2\2\2\u11dc\u11d0\3\2\2\2\u11dc"+ + "\u11d1\3\2\2\2\u11dc\u11d2\3\2\2\2\u11dc\u11d4\3\2\2\2\u11dc\u11d5\3\2"+ + "\2\2\u11dc\u11d7\3\2\2\2\u11dc\u11d8\3\2\2\2\u11dc\u11d9\3\2\2\2\u11dc"+ + "\u11da\3\2\2\2\u11dc\u11db\3\2\2\2\u11dd\u019f\3\2\2\2\u11de\u11ec\7\u03a2"+ + "\2\2\u11df\u11e0\7\u03a2\2\2\u11e0\u11e1\7\u03b2\2\2\u11e1\u11ec\7\u03a2"+ + "\2\2\u11e2\u11e3\5\u0200\u0101\2\u11e3\u11e4\7\u03b2\2\2\u11e4\u11e5\7"+ + "\u03a2\2\2\u11e5\u11ec\3\2\2\2\u11e6\u11e7\5\u0200\u0101\2\u11e7\u11e8"+ + "\7\u03b2\2\2\u11e8\u11e9\5\u0200\u0101\2\u11e9\u11ec\3\2\2\2\u11ea\u11ec"+ + "\5\u0200\u0101\2\u11eb\u11de\3\2\2\2\u11eb\u11df\3\2\2\2\u11eb\u11e2\3"+ + "\2\2\2\u11eb\u11e6\3\2\2\2\u11eb\u11ea\3\2\2\2\u11ec\u01a1\3\2\2\2\u11ed"+ + "\u11ee\5\u01ee\u00f8\2\u11ee\u11ef\7\u0096\2\2\u11ef\u11f0\5\u01ee\u00f8"+ + "\2\u11f0\u01a3\3\2\2\2\u11f1\u11f3\7\n\2\2\u11f2\u11f4\t=\2\2\u11f3\u11f2"+ + "\3\2\2\2\u11f3\u11f4\3\2\2\2\u11f4\u11f5\3\2\2\2\u11f5\u11f6\7\u0093\2"+ + "\2\u11f6\u11f7\5\u0222\u0112\2\u11f7\u01a5\3\2\2\2\u11f8\u11f9\7\30\2"+ + "\2\u11f9\u11fa\7\u0093\2\2\u11fa\u11fe\5\u0222\u0112\2\u11fb\u11fd\5\u01ae"+ + "\u00d8\2\u11fc\u11fb\3\2\2\2\u11fd\u1200\3\2\2\2\u11fe\u11fc\3\2\2\2\u11fe"+ + "\u11ff\3\2\2\2\u11ff\u01a7\3\2\2\2\u1200\u11fe\3\2\2\2\u1201\u1202\7\u010e"+ + "\2\2\u1202\u1203\7\u0093\2\2\u1203\u1205\5\u0222\u0112\2\u1204\u1206\t"+ + ">\2\2\u1205\u1204\3\2\2\2\u1205\u1206\3\2\2\2\u1206\u01a9\3\2\2\2\u1207"+ + "\u1209\7g\2\2\u1208\u120a\t=\2\2\u1209\u1208\3\2\2\2\u1209\u120a\3\2\2"+ + "\2\u120a\u120b\3\2\2\2\u120b\u120c\7\u0093\2\2\u120c\u120d\5\u0222\u0112"+ + "\2\u120d\u01ab\3\2\2\2\u120e\u1210\7\u01cc\2\2\u120f\u1211\t=\2\2\u1210"+ + "\u120f\3\2\2\2\u1210\u1211\3\2\2\2\u1211\u1212\3\2\2\2\u1212\u1213\7\u0093"+ + "\2\2\u1213\u1215\5\u0222\u0112\2\u1214\u1216\7\u01c1\2\2\u1215\u1214\3"+ + "\2\2\2\u1215\u1216\3\2\2\2\u1216\u1218\3\2\2\2\u1217\u1219\7\u0144\2\2"+ + "\u1218\u1217\3\2\2\2\u1218\u1219\3\2\2\2\u1219\u121b\3\2\2\2\u121a\u121c"+ + "\7\u0215\2\2\u121b\u121a\3\2\2\2\u121b\u121c\3\2\2\2\u121c\u01ad\3\2\2"+ + "\2\u121d\u121e\79\2\2\u121e\u1225\7\u0213\2\2\u121f\u1225\7\u01c1\2\2"+ + "\u1220\u1225\7\u0146\2\2\u1221\u1225\7\u0190\2\2\u1222\u1225\7\u0144\2"+ + "\2\u1223\u1225\7\u010c\2\2\u1224\u121d\3\2\2\2\u1224\u121f\3\2\2\2\u1224"+ + "\u1220\3\2\2\2\u1224\u1221\3\2\2\2\u1224\u1222\3\2\2\2\u1224\u1223\3\2"+ + "\2\2\u1225\u01af\3\2\2\2\u1226\u1228\7\37\2\2\u1227\u1229\7\u00f9\2\2"+ + "\u1228\u1227\3\2\2\2\u1228\u1229\3\2\2\2\u1229\u122a\3\2\2\2\u122a\u122b"+ + "\7\u0151\2\2\u122b\u122c\5\u0200\u0101\2\u122c\u122d\7\u01d7\2\2\u122d"+ + "\u122e\t?\2\2\u122e\u122f\7\u01ec\2\2\u122f\u1230\7\u03c2\2\2\u1230\u01b1"+ + "\3\2\2\2\u1231\u1232\7\u0162\2\2\u1232\u1233\7\u01b4\2\2\u1233\u1234\5"+ + "\u0200\u0101\2\u1234\u1235\7\u01ec\2\2\u1235\u1236\7\u03c2\2\2\u1236\u01b3"+ + "\3\2\2\2\u1237\u1238\7\u0210\2\2\u1238\u1239\7\u01b4\2\2\u1239\u123a\5"+ + "\u0200\u0101\2\u123a\u01b5\3\2\2\2\u123b\u123c\7\u0085\2\2\u123c\u123d"+ + "\5\u01ba\u00de\2\u123d\u123e\7\u03aa\2\2\u123e\u1246\5\u024e\u0128\2\u123f"+ + "\u1240\7\u03b5\2\2\u1240\u1241\5\u01ba\u00de\2\u1241\u1242\7\u03aa\2\2"+ + "\u1242\u1243\5\u024e\u0128\2\u1243\u1245\3\2\2\2\u1244\u123f\3\2\2\2\u1245"+ + "\u1248\3\2\2\2\u1246\u1244\3\2\2\2\u1246\u1247\3\2\2\2\u1247\u1261\3\2"+ + "\2\2\u1248\u1246\3\2\2\2\u1249\u124d\7\u0085\2\2\u124a\u124b\7\27\2\2"+ + "\u124b\u124e\7\u0085\2\2\u124c\u124e\7\u0293\2\2\u124d\u124a\3\2\2\2\u124d"+ + "\u124c\3\2\2\2\u124e\u1251\3\2\2\2\u124f\u1252\5\u01f2\u00fa\2\u1250\u1252"+ + "\7&\2\2\u1251\u124f\3\2\2\2\u1251\u1250\3\2\2\2\u1252\u1261\3\2\2\2\u1253"+ + "\u1254\7\u0085\2\2\u1254\u125b\7\u019a\2\2\u1255\u1258\5\u01f2\u00fa\2"+ + "\u1256\u1257\7\31\2\2\u1257\u1259\5\u01f4\u00fb\2\u1258\u1256\3\2\2\2"+ + "\u1258\u1259\3\2\2\2\u1259\u125c\3\2\2\2\u125a\u125c\7&\2\2\u125b\u1255"+ + "\3\2\2\2\u125b\u125a\3\2\2\2\u125c\u1261\3\2\2\2\u125d\u1261\5\u018e\u00c8"+ + "\2\u125e\u1261\5\u0112\u008a\2\u125f\u1261\5\u0110\u0089\2\u1260\u123b"+ + "\3\2\2\2\u1260\u1249\3\2\2\2\u1260\u1253\3\2\2\2\u1260\u125d\3\2\2\2\u1260"+ + "\u125e\3\2\2\2\u1260\u125f\3\2\2\2\u1261\u01b7\3\2\2\2\u1262\u1263\7\u0087"+ + "\2\2\u1263\u1264\t/\2\2\u1264\u12fa\7\u0174\2\2\u1265\u1266\7\u0087\2"+ + "\2\u1266\u1267\t@\2\2\u1267\u126a\7\u013e\2\2\u1268\u1269\7D\2\2\u1269"+ + "\u126b\7\u03c2\2\2\u126a\u1268\3\2\2\2\u126a\u126b\3\2\2\2\u126b\u126e"+ + "\3\2\2\2\u126c\u126d\7<\2\2\u126d\u126f\5\u0206\u0104\2\u126e\u126c\3"+ + "\2\2\2\u126e\u126f\3\2\2\2\u126f\u1277\3\2\2\2\u1270\u1274\7V\2\2\u1271"+ + "\u1272\5\u0206\u0104\2\u1272\u1273\7\u03b5\2\2\u1273\u1275\3\2\2\2\u1274"+ + "\u1271\3\2\2\2\u1274\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278\5\u0206"+ + "\u0104\2\u1277\u1270\3\2\2\2\u1277\u1278\3\2\2\2\u1278\u12fa\3\2\2\2\u1279"+ + "\u127a\7\u0087\2\2\u127a\u127c\5\u01bc\u00df\2\u127b\u127d\5\u01be\u00e0"+ + "\2\u127c\u127b\3\2\2\2\u127c\u127d\3\2\2\2\u127d\u12fa\3\2\2\2\u127e\u1280"+ + "\7\u0087\2\2\u127f\u1281\7\u0150\2\2\u1280\u127f\3\2\2\2\u1280\u1281\3"+ + "\2\2\2\u1281\u1282\3\2\2\2\u1282\u1283\t!\2\2\u1283\u1284\tA\2\2\u1284"+ + "\u1287\5\u01e8\u00f5\2\u1285\u1286\tA\2\2\u1286\u1288\5\u0200\u0101\2"+ + "\u1287\u1285\3\2\2\2\u1287\u1288\3\2\2\2\u1288\u128a\3\2\2\2\u1289\u128b"+ + "\5\u01be\u00e0\2\u128a\u1289\3\2\2\2\u128a\u128b\3\2\2\2\u128b\u12fa\3"+ + "\2\2\2\u128c\u128d\7\u0087\2\2\u128d\u128e\7\37\2\2\u128e\u1290\t\2\2"+ + "\2\u128f\u1291\5\u0238\u011d\2\u1290\u128f\3\2\2\2\u1290\u1291\3\2\2\2"+ + "\u1291\u1292\3\2\2\2\u1292\u12fa\5\u0200\u0101\2\u1293\u1294\7\u0087\2"+ + "\2\u1294\u1295\7\37\2\2\u1295\u1296\tB\2\2\u1296\u12fa\5\u01e6\u00f4\2"+ + "\u1297\u1298\7\u0087\2\2\u1298\u1299\7\37\2\2\u1299\u129a\7\u0214\2\2"+ + "\u129a\u12fa\5\u01ee\u00f8\2\u129b\u129c\7\u0087\2\2\u129c\u129d\7\u0137"+ + "\2\2\u129d\u129e\5\u01f6\u00fc\2\u129e\u129f\tC\2\2\u129f\u12fa\3\2\2"+ + "\2\u12a0\u12a1\7\u0087\2\2\u12a1\u12fa\5\u01c0\u00e1\2\u12a2\u12a3\7\u0087"+ + "\2\2\u12a3\u12a4\tD\2\2\u12a4\u12a8\7V\2\2\u12a5\u12a6\5\u0206\u0104\2"+ + "\u12a6\u12a7\7\u03b5\2\2\u12a7\u12a9\3\2\2\2\u12a8\u12a5\3\2\2\2\u12a8"+ + "\u12a9\3\2\2\2\u12a9\u12aa\3\2\2\2\u12aa\u12fa\5\u0206\u0104\2\u12ab\u12ac"+ + "\7\u0087\2\2\u12ac\u12ad\7\u00d7\2\2\u12ad\u12ae\7\u03b3\2\2\u12ae\u12af"+ + "\7\u03a2\2\2\u12af\u12b0\7\u03b4\2\2\u12b0\u12fa\tD\2\2\u12b1\u12b2\7"+ + "\u0087\2\2\u12b2\u12b5\5\u01c2\u00e2\2\u12b3\u12b4\tA\2\2\u12b4\u12b6"+ + "\5\u0200\u0101\2\u12b5\u12b3\3\2\2\2\u12b5\u12b6\3\2\2\2\u12b6\u12b8\3"+ + "\2\2\2\u12b7\u12b9\5\u01be\u00e0\2\u12b8\u12b7\3\2\2\2\u12b8\u12b9\3\2"+ + "\2\2\u12b9\u12fa\3\2\2\2\u12ba\u12bb\7\u0087\2\2\u12bb\u12bc\tE\2\2\u12bc"+ + "\u12bd\7\u0113\2\2\u12bd\u12fa\5\u01e6\u00f4\2\u12be\u12bf\7\u0087\2\2"+ + "\u12bf\u12c2\7\u0154\2\2\u12c0\u12c1\79\2\2\u12c1\u12c3\5\u01ee\u00f8"+ + "\2\u12c2\u12c0\3\2\2\2\u12c2\u12c3\3\2\2\2\u12c3\u12fa\3\2\2\2\u12c4\u12c5"+ + "\7\u0087\2\2\u12c5\u12c6\tF\2\2\u12c6\u12c7\tA\2\2\u12c7\u12ca\5\u01e8"+ + "\u00f5\2\u12c8\u12c9\tA\2\2\u12c9\u12cb\5\u0200\u0101\2\u12ca\u12c8\3"+ + "\2\2\2\u12ca\u12cb\3\2\2\2\u12cb\u12ce\3\2\2\2\u12cc\u12cd\7\u00a5\2\2"+ + "\u12cd\u12cf\5\u024e\u0128\2\u12ce\u12cc\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf"+ + "\u12fa\3\2\2\2\u12d0\u12d1\7\u0087\2\2\u12d1\u12d2\7\u01a8\2\2\u12d2\u12d5"+ + "\7\u0230\2\2\u12d3\u12d4\tA\2\2\u12d4\u12d6\5\u0200\u0101\2\u12d5\u12d3"+ + "\3\2\2\2\u12d5\u12d6\3\2\2\2\u12d6\u12d8\3\2\2\2\u12d7\u12d9\5\u01be\u00e0"+ + "\2\u12d8\u12d7\3\2\2\2\u12d8\u12d9\3\2\2\2\u12d9\u12fa\3\2\2\2\u12da\u12db"+ + "\7\u0087\2\2\u12db\u12dc\7\u01bd\2\2\u12dc\u12e1\5\u01c4\u00e3\2\u12dd"+ + "\u12de\7\u03b5\2\2\u12de\u12e0\5\u01c4\u00e3\2\u12df\u12dd\3\2\2\2\u12e0"+ + "\u12e3\3\2\2\2\u12e1\u12df\3\2\2\2\u12e1\u12e2\3\2\2\2\u12e2\u12e7\3\2"+ + "\2\2\u12e3\u12e1\3\2\2\2\u12e4\u12e5\79\2\2\u12e5\u12e6\7\u01c0\2\2\u12e6"+ + "\u12e8\5\u0206\u0104\2\u12e7\u12e4\3\2\2\2\u12e7\u12e8\3\2\2\2\u12e8\u12e9"+ + "\3\2\2\2\u12e9\u12ed\7V\2\2\u12ea\u12eb\5\u0206\u0104\2\u12eb\u12ec\7"+ + "\u03b5\2\2\u12ec\u12ee\3\2\2\2\u12ed\u12ea\3\2\2\2\u12ed\u12ee\3\2\2\2"+ + "\u12ee\u12ef\3\2\2\2\u12ef\u12f0\5\u0206\u0104\2\u12f0\u12fa\3\2\2\2\u12f1"+ + "\u12f2\7\u0087\2\2\u12f2\u12f3\7\u01e7\2\2\u12f3\u12f7\7\u01fb\2\2\u12f4"+ + "\u12f5\79\2\2\u12f5\u12f6\7\u010d\2\2\u12f6\u12f8\7\u03c2\2\2\u12f7\u12f4"+ + "\3\2\2\2\u12f7\u12f8\3\2\2\2\u12f8\u12fa\3\2\2\2\u12f9\u1262\3\2\2\2\u12f9"+ + "\u1265\3\2\2\2\u12f9\u1279\3\2\2\2\u12f9\u127e\3\2\2\2\u12f9\u128c\3\2"+ + "\2\2\u12f9\u1293\3\2\2\2\u12f9\u1297\3\2\2\2\u12f9\u129b\3\2\2\2\u12f9"+ + "\u12a0\3\2\2\2\u12f9\u12a2\3\2\2\2\u12f9\u12ab\3\2\2\2\u12f9\u12b1\3\2"+ + "\2\2\u12f9\u12ba\3\2\2\2\u12f9\u12be\3\2\2\2\u12f9\u12c4\3\2\2\2\u12f9"+ + "\u12d0\3\2\2\2\u12f9\u12da\3\2\2\2\u12f9\u12f1\3\2\2\2\u12fa\u01b9\3\2"+ + "\2\2\u12fb\u1306\7\u03cd\2\2\u12fc\u1306\7\u03ce\2\2\u12fd\u12fe\7\u03b7"+ + "\2\2\u12fe\u1300\7\u03b7\2\2\u12ff\u12fd\3\2\2\2\u12ff\u1300\3\2\2\2\u1300"+ + "\u1301\3\2\2\2\u1301\u1303\t.\2\2\u1302\u12ff\3\2\2\2\u1302\u1303\3\2"+ + "\2\2\u1303\u1304\3\2\2\2\u1304\u1306\5\u0200\u0101\2\u1305\u12fb\3\2\2"+ + "\2\u1305\u12fc\3\2\2\2\u1305\u1302\3\2\2\2\u1306\u01bb\3\2\2\2\u1307\u1308"+ + "\7\27\2\2\u1308\u1315\7\u0085\2\2\u1309\u1315\7\u0296\2\2\u130a\u1315"+ + "\7$\2\2\u130b\u1315\7\u0083\2\2\u130c\u130d\7\u0151\2\2\u130d\u1315\7"+ + "\u01fb\2\2\u130e\u130f\7q\2\2\u130f\u1315\7\u01fb\2\2\u1310\u1312\t.\2"+ + "\2\u1311\u1310\3\2\2\2\u1311\u1312\3\2\2\2\u1312\u1313\3\2\2\2\u1313\u1315"+ + "\tG\2\2\u1314\u1307\3\2\2\2\u1314\u1309\3\2\2\2\u1314\u130a\3\2\2\2\u1314"+ + "\u130b\3\2\2\2\u1314\u130c\3\2\2\2\u1314\u130e\3\2\2\2\u1314\u1311\3\2"+ + "\2\2\u1315\u01bd\3\2\2\2\u1316\u1317\7U\2\2\u1317\u131b\7\u03c2\2\2\u1318"+ + "\u1319\7\u00a5\2\2\u1319\u131b\5\u024e\u0128\2\u131a\u1316\3\2\2\2\u131a"+ + "\u1318\3\2\2\2\u131b\u01bf\3\2\2\2\u131c\u131e\7\u01fd\2\2\u131d\u131c"+ + "\3\2\2\2\u131d\u131e\3\2\2\2\u131e\u131f\3\2\2\2\u131f\u132e\7\u0138\2"+ + "\2\u1320\u1321\7\u0175\2\2\u1321\u132e\7\u01fb\2\2\u1322\u132e\7\u01b6"+ + "\2\2\u1323\u132e\7\u0238\2\2\u1324\u1326\7\u0150\2\2\u1325\u1324\3\2\2"+ + "\2\u1325\u1326\3\2\2\2\u1326\u1327\3\2\2\2\u1327\u132e\7\u01bc\2\2\u1328"+ + "\u132e\7\u01be\2\2\u1329\u132a\7\u01e7\2\2\u132a\u132e\7\u015a\2\2\u132b"+ + "\u132e\7\u00fd\2\2\u132c\u132e\7\u0121\2\2\u132d\u131d\3\2\2\2\u132d\u1320"+ + "\3\2\2\2\u132d\u1322\3\2\2\2\u132d\u1323\3\2\2\2\u132d\u1325\3\2\2\2\u132d"+ + "\u1328\3\2\2\2\u132d\u1329\3\2\2\2\u132d\u132b\3\2\2\2\u132d\u132c\3\2"+ + "\2\2\u132e\u01c1\3\2\2\2\u132f\u1338\7\u013e\2\2\u1330\u1331\7\u0093\2"+ + "\2\u1331\u1338\7\u01fb\2\2\u1332\u1334\7\u0150\2\2\u1333\u1332\3\2\2\2"+ + "\u1333\u1334\3\2\2\2\u1334\u1335\3\2\2\2\u1335\u1338\7\u0230\2\2\u1336"+ + "\u1338\7\u020b\2\2\u1337\u132f\3\2\2\2\u1337\u1330\3\2\2\2\u1337\u1333"+ + "\3\2\2\2\u1337\u1336\3\2\2\2\u1338\u01c3\3\2\2\2\u1339\u1346\7\b\2\2\u133a"+ + "\u133b\7\u0105\2\2\u133b\u1346\7\u0165\2\2\u133c\u133d\7\u0120\2\2\u133d"+ + "\u1346\7\u0204\2\2\u133e\u1346\7\u0123\2\2\u133f\u1346\7\u0167\2\2\u1340"+ + "\u1346\7\u0266\2\2\u1341\u1342\7\u01ad\2\2\u1342\u1346\7\u0147\2\2\u1343"+ + "\u1346\7\u01ee\2\2\u1344\u1346\7\u0203\2\2\u1345\u1339\3\2\2\2\u1345\u133a"+ + "\3\2\2\2\u1345\u133c\3\2\2\2\u1345\u133e\3\2\2\2\u1345\u133f\3\2\2\2\u1345"+ + "\u1340\3\2\2\2\u1345\u1341\3\2\2\2\u1345\u1343\3\2\2\2\u1345\u1344\3\2"+ + "\2\2\u1346\u01c5\3\2\2\2\u1347\u1348\7\u0103\2\2\u1348\u1349\7\u03c2\2"+ + "\2\u1349\u01c7\3\2\2\2\u134a\u134b\7\u0109\2\2\u134b\u134c\7E\2\2\u134c"+ + "\u1351\5\u01d4\u00eb\2\u134d\u134e\7\u03b5\2\2\u134e\u1350\5\u01d4\u00eb"+ + "\2\u134f\u134d\3\2\2\2\u1350\u1353\3\2\2\2\u1351\u134f\3\2\2\2\u1351\u1352"+ + "\3\2\2\2\u1352\u135b\3\2\2\2\u1353\u1351\3\2\2\2\u1354\u1355\7o\2\2\u1355"+ + "\u1358\7\u03b3\2\2\u1356\u1359\5\u0220\u0111\2\u1357\u1359\7\b\2\2\u1358"+ + "\u1356\3\2\2\2\u1358\u1357\3\2\2\2\u1359\u135a\3\2\2\2\u135a\u135c\7\u03b4"+ + "\2\2\u135b\u1354\3\2\2\2\u135b\u135c\3\2\2\2\u135c\u135d\3\2\2\2\u135d"+ + "\u135e\7D\2\2\u135e\u135f\5\u0200\u0101\2\u135f\u01c9\3\2\2\2\u1360\u1362"+ + "\7\u014d\2\2\u1361\u1363\t=\2\2\u1362\u1361\3\2\2\2\u1362\u1363\3\2\2"+ + "\2\u1363\u1364\3\2\2\2\u1364\u1369\5\u01d6\u00ec\2\u1365\u1366\7\u03b5"+ + "\2\2\u1366\u1368\5\u01d6\u00ec\2\u1367\u1365\3\2\2\2\u1368\u136b\3\2\2"+ + "\2\u1369\u1367\3\2\2\2\u1369\u136a\3\2\2\2\u136a\u01cb\3\2\2\2\u136b\u1369"+ + "\3\2\2\2\u136c\u136e\7Q\2\2\u136d\u136f\tH\2\2\u136e\u136d\3\2\2\2\u136e"+ + "\u136f\3\2\2\2\u136f\u1371\3\2\2\2\u1370\u1372\5\u0206\u0104\2\u1371\u1370"+ + "\3\2\2\2\u1372\u1373\3\2\2\2\u1373\u1371\3\2\2\2\u1373\u1374\3\2\2\2\u1374"+ + "\u01cd\3\2\2\2\u1375\u1376\7Y\2\2\u1376\u1377\7E\2\2\u1377\u1378\7K\2"+ + "\2\u1378\u1379\7\u0109\2\2\u1379\u137e\5\u01da\u00ee\2\u137a\u137b\7\u03b5"+ + "\2\2\u137b\u137d\5\u01da\u00ee\2\u137c\u137a\3\2\2\2\u137d\u1380\3\2\2"+ + "\2\u137e\u137c\3\2\2\2\u137e\u137f\3\2\2\2\u137f\u01cf\3\2\2\2\u1380\u137e"+ + "\3\2\2\2\u1381\u1382\7\u01d5\2\2\u1382\u1383\7\u01c0\2\2\u1383\u1384\7"+ + "\u0109\2\2\u1384\u01d1\3\2\2\2\u1385\u1386\7\u0236\2\2\u1386\u01d3\3\2"+ + "\2\2\u1387\u138f\5\u01e8\u00f5\2\u1388\u138a\t\23\2\2\u1389\u1388\3\2"+ + "\2\2\u1389\u138a\3\2\2\2\u138a\u138b\3\2\2\2\u138b\u138c\7\u03b3\2\2\u138c"+ + "\u138d\5\u0220\u0111\2\u138d\u138e\7\u03b4\2\2\u138e\u1390\3\2\2\2\u138f"+ + "\u1389\3\2\2\2\u138f\u1390\3\2\2\2\u1390\u01d5\3\2\2\2\u1391\u13a4\7\u012a"+ + "\2\2\u1392\u13a4\7\u015a\2\2\u1393\u1395\tI\2\2\u1394\u1393\3\2\2\2\u1394"+ "\u1395\3\2\2\2\u1395\u1396\3\2\2\2\u1396\u13a4\7\u0174\2\2\u1397\u13a4"+ "\7\u01a9\2\2\u1398\u13a4\7\u0238\2\2\u1399\u139a\7\u01c0\2\2\u139a\u13a4"+ "\7\u0109\2\2\u139b\u13a4\7\u01fb\2\2\u139c\u13a4\7\u0216\2\2\u139d\u13a1"+ From 369bf2ee190a0e02a5e1ccd63842eaca1ccd6d3e Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 4 Apr 2023 11:26:18 +0800 Subject: [PATCH 51/56] ALIAS --- gen/PostgreSQLLexer.interp | 2547 +++++++ gen/PostgreSQLLexer.java | 6179 +++++++++++++++++ .../antlr4/pg => gen}/PostgreSQLLexer.tokens | 2 +- .../bigdata/sql/antlr4/pg/PostgreSQLParser.g4 | 2 +- .../sql/antlr4/pg/PostgreSQLParser.java | 59 +- .../com/github/bigdata/sql/parser/pg/Test.kt | 6 +- 6 files changed, 8772 insertions(+), 23 deletions(-) create mode 100644 gen/PostgreSQLLexer.interp create mode 100644 gen/PostgreSQLLexer.java rename {src/main/antlr4/com/github/bigdata/sql/antlr4/pg => gen}/PostgreSQLLexer.tokens (99%) diff --git a/gen/PostgreSQLLexer.interp b/gen/PostgreSQLLexer.interp new file mode 100644 index 0000000..d0bf9c8 --- /dev/null +++ b/gen/PostgreSQLLexer.interp @@ -0,0 +1,2547 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +',' +':' +'::' +'$' +'$$' +'*' +'(' +')' +'[' +']' +null +null +null +null +null +'.' +null +null +null +null +null +'&' +'&&' +'&<' +'@@' +'@>' +'@' +'!' +'!!' +'!=' +'^' +'=' +'=>' +'>' +'>=' +'>>' +'#' +'#=' +'#>' +'#>>' +'##' +'->' +'->>' +'-|-' +'<' +'<=' +'<@' +'<^' +'<>' +'<->' +'<<' +'<<=' +'' +'-' +'%' +'|' +'||' +'||/' +'|/' +'+' +'?' +'?&' +'?#' +'?-' +'?|' +'/' +'~' +'~=' +'~>=~' +'~>~' +'~<=~' +'~<~' +'~*' +'~~' +';' + +token symbolic names: +null +WHITESPACE +BLOCK_COMMENT +LINE_COMMENT +A_ +ABORT +ABS +ABSOLUTE +ACCESS +ACTION +ADA +ADD +ADMIN +AFTER +AGGREGATE +ALIAS +ALL +ALLOCATE +ALSO +ALTER +ALWAYS +ANALYSE +ANALYZE +AND +ANY +ARE +ARRAY +AS +ASC +ASENSITIVE +ASSERTION +ASSIGNMENT +ASYMMETRIC +AT +ATOMIC +ATTRIBUTE +ATTRIBUTES +AUTHORIZATION +AVG +BACKWARD +BEFORE +BEGIN +BERNOULLI +BETWEEN +BIGINT +BINARY +BIT +BIT_LENGTH +BITVAR +BLOB +BOOLEAN +BOTH +BREADTH +BUFFERS +BY +C_ +CACHE +CALL +CALLED +CARDINALITY +CASCADE +CASCADED +CASE +CAST +CATALOG +CATALOG_NAME +CEIL +CEILING +CHAIN +CHAR +CHAR_LENGTH +CHARACTER +CHARACTER_LENGTH +CHARACTER_SET_CATALOG +CHARACTER_SET_NAME +CHARACTER_SET_SCHEMA +CHARACTERISTICS +CHARACTERS +CHECK +CHECKED +CHECKPOINT +CLASS +CLASS_ORIGIN +CLOB +CLOSE +CLUSTER +COALESCE +COBOL +COLLATE +COLLATION +COLLATION_CATALOG +COLLATION_NAME +COLLATION_SCHEMA +COLLECT +COLUMN +COLUMN_NAME +COMMAND_FUNCTION +COMMAND_FUNCTION_CODE +COMMENT +COMMIT +COMMITTED +COMPLETION +CONDITION +CONDITION_NUMBER +CONFIGURATION +CONFLICT +CONNECT +CONNECTION +CONNECTION_NAME +CONSTRAINT +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONSTRAINTS +CONSTRUCTOR +CONTAINS +CONTINUE +CONVERSION +CONVERT +COPY +CORR +CORRESPONDING +COSTS +COUNT +COVAR_POP +COVAR_SAMP +CREATE +CREATEDB +CREATEUSER +CROSS +CSV +CUBE +CUME_DIST +CURRENT +CURRENT_DATE +CURRENT_DEFAULT_TRANSFORM_GROUP +CURRENT_PATH +CURRENT_ROLE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_TRANSFORM_GROUP_FOR_TYPE +CURRENT_USER +CURSOR +CURSOR_NAME +CYCLE +DATA +DATABASE +DATE +DATETIME_INTERVAL_CODE +DATETIME_INTERVAL_PRECISION +DAY +DEALLOCATE +DEC +DECIMAL +DECLARE +DEFAULT +DEFAULTS +DEFERABLE +DEFERRABLE +DEFERRED +DEFINED +DEFINER +DEGREE +DELETE +DELIMITER +DELIMITERS +DENSE_RANK +DEPENDS +DEPTH +DEREF +DERIVED +DESC +DESCRIBE +DESCRIPTOR +DESTROY +DESTRUCTOR +DETERMINISTIC +DIAGNOSTICS +DICTIONARY +DISABLE_P +DISABLE_PAGE_SKIPPING +DISCARD +DISCONNECT +DISPATCH +DISTINCT +DO +DOMAIN +DOUBLE +DROP +DYNAMIC +DYNAMIC_FUNCTION +DYNAMIC_FUNCTION_CODE +EACH +ELEMENT +ELSE +ENABLE +ENCODING +ENCRYPTED +END +END_EXEC +EQUALS +ESCAPE +EVERY +EXCEPT +EXCEPTION +EXCLUDE +EXCLUDING +EXCLUSIVE +EXEC +EXECUTE +EXISTING +EXISTS +EXP +EXPLAIN +EXTENDED +EXTENSION +EXTERNAL +EXTRACT +FALSE +FETCH +FIELDS +FILTER +FINAL +FIRST +FLOAT +FLOOR +FOLLOWING +FOR +FORCE +FOREIGN +FORMAT +FORTRAN +FORWARD +FOUND +FREE +FREEZE +FROM +FULL +FUNCTION +FUSION +G_ +GENERAL +GENERATED +GET +GLOBAL +GO +GOTO +GRANT +GRANTED +GREATEST +GROUP +GROUPING +HANDLER +HAVING +HIERARCHY +HOLD +HOST +HOUR +IDENTITY +IGNORE +ILIKE +IMMEDIATE +IMMUTABLE +IMPLEMENTATION +IMPLICIT +IN +INCLUDING +INCREMENT +INDEX +INDICATOR +INFIX +INHERITS +INITIALIZE +INITIALLY +INNER +INOUT +INPUT +INSENSITIVE +INSERT +INSTANCE +INSTANTIABLE +INSTEAD +INT +INTEGER +INTERSECT +INTERSECTION +INTERVAL +INTO +INVOKER +IS +ISOLATION +ITERATE +JOIN +K_ +KEY +KEY_MEMBER +KEY_TYPE +LABEL +LANCOMPILER +LANGUAGE +LARGE +LAST +LATERAL +LEADING +LEAST +LEFT +LENGTH +LESS +LEVEL +LIKE +LIMIT +LISTEN +LN +LOAD +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCK +LOCKED +LOWER +M_ +MAIN +MAP +MAPPING +MATCH +MATCH_SIMPLE +MATCHED +MAX +MAXVALUE +MEMBER +MERGE +MESSAGE_LENGTH +MESSAGE_OCTET_LENGTH +MESSAGE_TEXT +METHOD +MIN +MINUTE +MINVALUE +MOD +MODE +MODIFIES +MODIFY +MODULE +MONTH +MORE_ +MOVE +MULTISET +MUMPS +NAME +NAMES +NATIONAL +NATURAL +NCHAR +NCLOB +NESTING +NEW +NEXT +NO +NOCREATEDB +NOCREATEUSER +NONE +NORMALIZE +NORMALIZED +NOT +NOTHING +NOTIFY +NOTNULL +NOWAIT +NULL +NULLABLE +NULLIF +NULLS +NUMBER +NUMERIC +OBJECT +OCTET_LENGTH +OCTETS +OF +OFF +OFFSET +OIDS +OLD +ON +ONLY +OPEN +OPERATION +OPERATOR +OPTION +OPTIONS +OR +ORDER +ORDERING +ORDINALITY +OTHERS +OUT +OUTER +OUTPUT +OVER +OVERLAPS +OVERLAY +OVERRIDING +OWNER +PAD +PARAMETER +PARAMETER_MODE +PARAMETER_NAME +PARAMETER_ORDINAL_POSITION +PARAMETER_SPECIFIC_CATALOG +PARAMETER_SPECIFIC_NAME +PARAMETER_SPECIFIC_SCHEMA +PARAMETERS +PARSER +PARTIAL +PARTITION +PASCAL +PASSWORD +PATH +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +PLACING +PLAIN +PLANS +PLI +POSITION +POSTFIX +POWER +PRECEDING +PRECISION +PREFIX +PREORDER +PREPARE +PREPARED +PRESERVE +PRIMARY +PRIOR +PRIVILEGES +PROCEDURAL +PROCEDURE +PUBLIC +PUBLICATION +QUOTE +RANGE +RANK +READ +READS +REAL +REASSIGN +RECHECK +RECURSIVE +REF +REFERENCES +REFERENCING +REFRESH +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REINDEX +RELATIVE +RELEASE +RENAME +REPEATABLE +REPLACE +REPLICA +RESET +RESTART +RESTRICT +RESULT +RETURN +RETURNED_CARDINALITY +RETURNED_LENGTH +RETURNED_OCTET_LENGTH +RETURNED_SQLSTATE +RETURNING +RETURNS +REVOKE +RIGHT +ROLE +ROLLBACK +ROLLUP +ROUTINE +ROUTINE_CATALOG +ROUTINE_NAME +ROUTINE_SCHEMA +ROW +ROW_COUNT +ROW_NUMBER +ROWS +RULE +SAVEPOINT +SCALE +SCHEMA +SCHEMA_NAME +SCOPE +SCOPE_CATALOG +SCOPE_NAME +SCOPE_SCHEMA +SCROLL +SEARCH +SECOND +SECTION +SECURITY +SELECT +SELF +SENSITIVE +SEQUENCE +SEQUENCES +SERIALIZABLE +SERVER_NAME +SESSION +SESSION_USER +SET +SETOF +SETS +SHARE +SHOW +SIMILAR +SIMPLE +SIZE +SKIP_ +SMALLINT +SNAPSHOT +SOME +SOURCE +SPACE +SPECIFIC +SPECIFIC_NAME +SPECIFICTYPE +SQL +SQLCODE +SQLERROR +SQLEXCEPTION +SQLSTATE +SQLWARNING +SQRT +STABLE +START +STATE +STATEMENT +STATIC +STATISTICS +STDDEV_POP +STDDEV_SAMP +STDIN +STDOUT +STORAGE +STRICT +STRUCTURE +STYLE +SUBCLASS_ORIGIN +SUBLIST +SUBMULTISET +SUBSCRIPTION +SUBSTRING +SUM +SYMMETRIC +SYSID +SYSTEM +SYSTEM_USER +TABLE +TABLE_NAME +TABLESAMPLE +TABLESPACE +TEMP +TEMPLATE +TEMPORARY +TERMINATE +THAN +THEN +TIES +TIME +TIMESTAMP +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMING +TO +TOAST +TOP_LEVEL_COUNT +TRAILING +TRANSACTION +TRANSACTION_ACTIVE +TRANSACTIONS_COMMITTED +TRANSACTIONS_ROLLED_BACK +TRANSFORM +TRANSFORMS +TRANSLATE +TRANSLATION +TREAT +TRIGGER +TRIGGER_CATALOG +TRIGGER_NAME +TRIGGER_SCHEMA +TRIM +TRUE +TRUNCATE +TRUSTED +TYPE +UESCAPE +UNBOUNDED +UNCOMMITTED +UNDER +UNENCRYPTED +UNION +UNIQUE +UNKNOWN +UNLISTEN +UNNAMED +UNNEST +UNTIL +UPDATE +UPPER +USAGE +USER +USER_DEFINED_TYPE_CATALOG +USER_DEFINED_TYPE_CODE +USER_DEFINED_TYPE_NAME +USER_DEFINED_TYPE_SCHEMA +USING +VACUUM +VALID +VALIDATE +VALIDATOR +VALUE +VALUES +VAR_POP +VAR_SAMP +VARCHAR +VARIABLE +VARIADIC +VARYING +VERBOSE +VIEW +VOLATILE +WHEN +WHENEVER +WHERE +WIDTH_BUCKET +WINDOW +WITH +WITHIN +WITHOUT +WORK +WRITE +YAML +YEAR +YES +ZONE +SUPERUSER +NOSUPERUSER +CREATEROLE +NOCREATEROLE +INHERIT +NOINHERIT +LOGIN +NOLOGIN +REPLICATION +NOREPLICATION +BYPASSRLS +NOBYPASSRLS +SFUNC +STYPE +SSPACE +FINALFUNC +FINALFUNC_EXTRA +COMBINEFUNC +SERIALFUNC +DESERIALFUNC +INITCOND +MSFUNC +MINVFUNC +MSTYPE +MSSPACE +MFINALFUNC +MFINALFUNC_EXTRA +MINITCOND +SORTOP +PARALLEL +HYPOTHETICAL +SAFE +UNSAFE +BASETYPE +IF +LOCALE +LC_COLLATE +LC_CTYPE +PROVIDER +VERSION +ALLOW_CONNECTIONS +IS_TEMPLATE +EVENT +WRAPPER +SERVER +BTREE +HASH_ +GIST +SPGIST +GIN +BRIN +CONCURRENTLY +INLINE +MATERIALIZED +LEFTARG +RIGHTARG +COMMUTATOR +NEGATOR +HASHES +MERGES +FAMILY +POLICY +OWNED +ABSTIME +BIGSERIAL +BIT_VARYING +BOOL +BOX +BYTEA +CHARACTER_VARYING +CIDR +CIRCLE +FLOAT4 +FLOAT8 +INET +INT2 +INT4 +INT8 +JSON +JSONB +LINE +LSEG +MACADDR +MACADDR8 +MONEY +PG_LSN +POINT +POLYGON +RELTIME +SERIAL +SERIAL2 +SERIAL4 +SERIAL8 +SMALLSERIAL +STSTEM +TEXT +TIMESTAMPTZ +TIMETZ +TSQUERY +TSVECTOR +TXID_SNAPSHOT +UUID +VARBIT +XML +COMMA +COLON +COLON_COLON +DOLLAR +DOLLAR_DOLLAR +STAR +OPEN_PAREN +CLOSE_PAREN +OPEN_BRACKET +CLOSE_BRACKET +BIT_STRING +REGEX_STRING +NUMERIC_LITERAL +INTEGER_LITERAL +HEX_INTEGER_LITERAL +DOT +SINGLEQ_STRING_LITERAL +DOUBLEQ_STRING_LITERAL +IDENTIFIER +DOLLAR_DEC +IDENTIFIER_UNICODE +AMP +AMP_AMP +AMP_LT +AT_AT +AT_GT +AT_SIGN +BANG +BANG_BANG +BANG_EQUAL +CARET +EQUAL +EQUAL_GT +GT +GTE +GT_GT +HASH +HASH_EQ +HASH_GT +HASH_GT_GT +HASH_HASH +HYPHEN_GT +HYPHEN_GT_GT +HYPHEN_PIPE_HYPHEN +LT +LTE +LT_AT +LT_CARET +LT_GT +LT_HYPHEN_GT +LT_LT +LT_LT_EQ +LT_QMARK_GT +MINUS +PERCENT +PIPE +PIPE_PIPE +PIPE_PIPE_SLASH +PIPE_SLASH +PLUS +QMARK +QMARK_AMP +QMARK_HASH +QMARK_HYPHEN +QMARK_PIPE +SLASH +TIL +TIL_EQ +TIL_GTE_TIL +TIL_GT_TIL +TIL_LTE_TIL +TIL_LT_TIL +TIL_STAR +TIL_TIL +SEMI + +rule names: +WHITESPACE +BLOCK_COMMENT +LINE_COMMENT +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +HEX_DIGIT +DEC_DIGIT +DQUOTA_STRING +SQUOTA_STRING +BQUOTA_STRING +A_ +ABORT +ABS +ABSOLUTE +ACCESS +ACTION +ADA +ADD +ADMIN +AFTER +AGGREGATE +ALIAS +ALL +ALLOCATE +ALSO +ALTER +ALWAYS +ANALYSE +ANALYZE +AND +ANY +ARE +ARRAY +AS +ASC +ASENSITIVE +ASSERTION +ASSIGNMENT +ASYMMETRIC +AT +ATOMIC +ATTRIBUTE +ATTRIBUTES +AUTHORIZATION +AVG +BACKWARD +BEFORE +BEGIN +BERNOULLI +BETWEEN +BIGINT +BINARY +BIT +BIT_LENGTH +BITVAR +BLOB +BOOLEAN +BOTH +BREADTH +BUFFERS +BY +C_ +CACHE +CALL +CALLED +CARDINALITY +CASCADE +CASCADED +CASE +CAST +CATALOG +CATALOG_NAME +CEIL +CEILING +CHAIN +CHAR +CHAR_LENGTH +CHARACTER +CHARACTER_LENGTH +CHARACTER_SET_CATALOG +CHARACTER_SET_NAME +CHARACTER_SET_SCHEMA +CHARACTERISTICS +CHARACTERS +CHECK +CHECKED +CHECKPOINT +CLASS +CLASS_ORIGIN +CLOB +CLOSE +CLUSTER +COALESCE +COBOL +COLLATE +COLLATION +COLLATION_CATALOG +COLLATION_NAME +COLLATION_SCHEMA +COLLECT +COLUMN +COLUMN_NAME +COMMAND_FUNCTION +COMMAND_FUNCTION_CODE +COMMENT +COMMIT +COMMITTED +COMPLETION +CONDITION +CONDITION_NUMBER +CONFIGURATION +CONFLICT +CONNECT +CONNECTION +CONNECTION_NAME +CONSTRAINT +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA +CONSTRAINTS +CONSTRUCTOR +CONTAINS +CONTINUE +CONVERSION +CONVERT +COPY +CORR +CORRESPONDING +COSTS +COUNT +COVAR_POP +COVAR_SAMP +CREATE +CREATEDB +CREATEUSER +CROSS +CSV +CUBE +CUME_DIST +CURRENT +CURRENT_DATE +CURRENT_DEFAULT_TRANSFORM_GROUP +CURRENT_PATH +CURRENT_ROLE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_TRANSFORM_GROUP_FOR_TYPE +CURRENT_USER +CURSOR +CURSOR_NAME +CYCLE +DATA +DATABASE +DATE +DATETIME_INTERVAL_CODE +DATETIME_INTERVAL_PRECISION +DAY +DEALLOCATE +DEC +DECIMAL +DECLARE +DEFAULT +DEFAULTS +DEFERABLE +DEFERRABLE +DEFERRED +DEFINED +DEFINER +DEGREE +DELETE +DELIMITER +DELIMITERS +DENSE_RANK +DEPENDS +DEPTH +DEREF +DERIVED +DESC +DESCRIBE +DESCRIPTOR +DESTROY +DESTRUCTOR +DETERMINISTIC +DIAGNOSTICS +DICTIONARY +DISABLE_P +DISABLE_PAGE_SKIPPING +DISCARD +DISCONNECT +DISPATCH +DISTINCT +DO +DOMAIN +DOUBLE +DROP +DYNAMIC +DYNAMIC_FUNCTION +DYNAMIC_FUNCTION_CODE +EACH +ELEMENT +ELSE +ENABLE +ENCODING +ENCRYPTED +END +END_EXEC +EQUALS +ESCAPE +EVERY +EXCEPT +EXCEPTION +EXCLUDE +EXCLUDING +EXCLUSIVE +EXEC +EXECUTE +EXISTING +EXISTS +EXP +EXPLAIN +EXTENDED +EXTENSION +EXTERNAL +EXTRACT +FALSE +FETCH +FIELDS +FILTER +FINAL +FIRST +FLOAT +FLOOR +FOLLOWING +FOR +FORCE +FOREIGN +FORMAT +FORTRAN +FORWARD +FOUND +FREE +FREEZE +FROM +FULL +FUNCTION +FUSION +G_ +GENERAL +GENERATED +GET +GLOBAL +GO +GOTO +GRANT +GRANTED +GREATEST +GROUP +GROUPING +HANDLER +HAVING +HIERARCHY +HOLD +HOST +HOUR +IDENTITY +IGNORE +ILIKE +IMMEDIATE +IMMUTABLE +IMPLEMENTATION +IMPLICIT +IN +INCLUDING +INCREMENT +INDEX +INDICATOR +INFIX +INHERITS +INITIALIZE +INITIALLY +INNER +INOUT +INPUT +INSENSITIVE +INSERT +INSTANCE +INSTANTIABLE +INSTEAD +INT +INTEGER +INTERSECT +INTERSECTION +INTERVAL +INTO +INVOKER +IS +ISOLATION +ITERATE +JOIN +K_ +KEY +KEY_MEMBER +KEY_TYPE +LABEL +LANCOMPILER +LANGUAGE +LARGE +LAST +LATERAL +LEADING +LEAST +LEFT +LENGTH +LESS +LEVEL +LIKE +LIMIT +LISTEN +LN +LOAD +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATION +LOCATOR +LOCK +LOCKED +LOWER +M_ +MAIN +MAP +MAPPING +MATCH +MATCH_SIMPLE +MATCHED +MAX +MAXVALUE +MEMBER +MERGE +MESSAGE_LENGTH +MESSAGE_OCTET_LENGTH +MESSAGE_TEXT +METHOD +MIN +MINUTE +MINVALUE +MOD +MODE +MODIFIES +MODIFY +MODULE +MONTH +MORE_ +MOVE +MULTISET +MUMPS +NAME +NAMES +NATIONAL +NATURAL +NCHAR +NCLOB +NESTING +NEW +NEXT +NO +NOCREATEDB +NOCREATEUSER +NONE +NORMALIZE +NORMALIZED +NOT +NOTHING +NOTIFY +NOTNULL +NOWAIT +NULL +NULLABLE +NULLIF +NULLS +NUMBER +NUMERIC +OBJECT +OCTET_LENGTH +OCTETS +OF +OFF +OFFSET +OIDS +OLD +ON +ONLY +OPEN +OPERATION +OPERATOR +OPTION +OPTIONS +OR +ORDER +ORDERING +ORDINALITY +OTHERS +OUT +OUTER +OUTPUT +OVER +OVERLAPS +OVERLAY +OVERRIDING +OWNER +PAD +PARAMETER +PARAMETER_MODE +PARAMETER_NAME +PARAMETER_ORDINAL_POSITION +PARAMETER_SPECIFIC_CATALOG +PARAMETER_SPECIFIC_NAME +PARAMETER_SPECIFIC_SCHEMA +PARAMETERS +PARSER +PARTIAL +PARTITION +PASCAL +PASSWORD +PATH +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +PLACING +PLAIN +PLANS +PLI +POSITION +POSTFIX +POWER +PRECEDING +PRECISION +PREFIX +PREORDER +PREPARE +PREPARED +PRESERVE +PRIMARY +PRIOR +PRIVILEGES +PROCEDURAL +PROCEDURE +PUBLIC +PUBLICATION +QUOTE +RANGE +RANK +READ +READS +REAL +REASSIGN +RECHECK +RECURSIVE +REF +REFERENCES +REFERENCING +REFRESH +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +REINDEX +RELATIVE +RELEASE +RENAME +REPEATABLE +REPLACE +REPLICA +RESET +RESTART +RESTRICT +RESULT +RETURN +RETURNED_CARDINALITY +RETURNED_LENGTH +RETURNED_OCTET_LENGTH +RETURNED_SQLSTATE +RETURNING +RETURNS +REVOKE +RIGHT +ROLE +ROLLBACK +ROLLUP +ROUTINE +ROUTINE_CATALOG +ROUTINE_NAME +ROUTINE_SCHEMA +ROW +ROW_COUNT +ROW_NUMBER +ROWS +RULE +SAVEPOINT +SCALE +SCHEMA +SCHEMA_NAME +SCOPE +SCOPE_CATALOG +SCOPE_NAME +SCOPE_SCHEMA +SCROLL +SEARCH +SECOND +SECTION +SECURITY +SELECT +SELF +SENSITIVE +SEQUENCE +SEQUENCES +SERIALIZABLE +SERVER_NAME +SESSION +SESSION_USER +SET +SETOF +SETS +SHARE +SHOW +SIMILAR +SIMPLE +SIZE +SKIP_ +SMALLINT +SNAPSHOT +SOME +SOURCE +SPACE +SPECIFIC +SPECIFIC_NAME +SPECIFICTYPE +SQL +SQLCODE +SQLERROR +SQLEXCEPTION +SQLSTATE +SQLWARNING +SQRT +STABLE +START +STATE +STATEMENT +STATIC +STATISTICS +STDDEV_POP +STDDEV_SAMP +STDIN +STDOUT +STORAGE +STRICT +STRUCTURE +STYLE +SUBCLASS_ORIGIN +SUBLIST +SUBMULTISET +SUBSCRIPTION +SUBSTRING +SUM +SYMMETRIC +SYSID +SYSTEM +SYSTEM_USER +TABLE +TABLE_NAME +TABLESAMPLE +TABLESPACE +TEMP +TEMPLATE +TEMPORARY +TERMINATE +THAN +THEN +TIES +TIME +TIMESTAMP +TIMEZONE_HOUR +TIMEZONE_MINUTE +TIMING +TO +TOAST +TOP_LEVEL_COUNT +TRAILING +TRANSACTION +TRANSACTION_ACTIVE +TRANSACTIONS_COMMITTED +TRANSACTIONS_ROLLED_BACK +TRANSFORM +TRANSFORMS +TRANSLATE +TRANSLATION +TREAT +TRIGGER +TRIGGER_CATALOG +TRIGGER_NAME +TRIGGER_SCHEMA +TRIM +TRUE +TRUNCATE +TRUSTED +TYPE +UESCAPE +UNBOUNDED +UNCOMMITTED +UNDER +UNENCRYPTED +UNION +UNIQUE +UNKNOWN +UNLISTEN +UNNAMED +UNNEST +UNTIL +UPDATE +UPPER +USAGE +USER +USER_DEFINED_TYPE_CATALOG +USER_DEFINED_TYPE_CODE +USER_DEFINED_TYPE_NAME +USER_DEFINED_TYPE_SCHEMA +USING +VACUUM +VALID +VALIDATE +VALIDATOR +VALUE +VALUES +VAR_POP +VAR_SAMP +VARCHAR +VARIABLE +VARIADIC +VARYING +VERBOSE +VIEW +VOLATILE +WHEN +WHENEVER +WHERE +WIDTH_BUCKET +WINDOW +WITH +WITHIN +WITHOUT +WORK +WRITE +YAML +YEAR +YES +ZONE +SUPERUSER +NOSUPERUSER +CREATEROLE +NOCREATEROLE +INHERIT +NOINHERIT +LOGIN +NOLOGIN +REPLICATION +NOREPLICATION +BYPASSRLS +NOBYPASSRLS +SFUNC +STYPE +SSPACE +FINALFUNC +FINALFUNC_EXTRA +COMBINEFUNC +SERIALFUNC +DESERIALFUNC +INITCOND +MSFUNC +MINVFUNC +MSTYPE +MSSPACE +MFINALFUNC +MFINALFUNC_EXTRA +MINITCOND +SORTOP +PARALLEL +HYPOTHETICAL +SAFE +UNSAFE +BASETYPE +IF +LOCALE +LC_COLLATE +LC_CTYPE +PROVIDER +VERSION +ALLOW_CONNECTIONS +IS_TEMPLATE +EVENT +WRAPPER +SERVER +BTREE +HASH_ +GIST +SPGIST +GIN +BRIN +CONCURRENTLY +INLINE +MATERIALIZED +LEFTARG +RIGHTARG +COMMUTATOR +NEGATOR +HASHES +MERGES +FAMILY +POLICY +OWNED +ABSTIME +BIGSERIAL +BIT_VARYING +BOOL +BOX +BYTEA +CHARACTER_VARYING +CIDR +CIRCLE +FLOAT4 +FLOAT8 +INET +INT2 +INT4 +INT8 +JSON +JSONB +LINE +LSEG +MACADDR +MACADDR8 +MONEY +PG_LSN +POINT +POLYGON +RELTIME +SERIAL +SERIAL2 +SERIAL4 +SERIAL8 +SMALLSERIAL +STSTEM +TEXT +TIMESTAMPTZ +TIMETZ +TSQUERY +TSVECTOR +TXID_SNAPSHOT +UUID +VARBIT +XML +COMMA +COLON +COLON_COLON +DOLLAR +DOLLAR_DOLLAR +STAR +OPEN_PAREN +CLOSE_PAREN +OPEN_BRACKET +CLOSE_BRACKET +BIT_STRING +REGEX_STRING +NUMERIC_LITERAL +INTEGER_LITERAL +HEX_INTEGER_LITERAL +DOT +SINGLEQ_STRING_LITERAL +DOUBLEQ_STRING_LITERAL +IDENTIFIER +DOLLAR_DEC +IDENTIFIER_UNICODE +AMP +AMP_AMP +AMP_LT +AT_AT +AT_GT +AT_SIGN +BANG +BANG_BANG +BANG_EQUAL +CARET +EQUAL +EQUAL_GT +GT +GTE +GT_GT +HASH +HASH_EQ +HASH_GT +HASH_GT_GT +HASH_HASH +HYPHEN_GT +HYPHEN_GT_GT +HYPHEN_PIPE_HYPHEN +LT +LTE +LT_AT +LT_CARET +LT_GT +LT_HYPHEN_GT +LT_LT +LT_LT_EQ +LT_QMARK_GT +MINUS +PERCENT +PIPE +PIPE_PIPE +PIPE_PIPE_SLASH +PIPE_SLASH +PLUS +QMARK +QMARK_AMP +QMARK_HASH +QMARK_HYPHEN +QMARK_PIPE +SLASH +TIL +TIL_EQ +TIL_GTE_TIL +TIL_GT_TIL +TIL_LTE_TIL +TIL_LT_TIL +TIL_STAR +TIL_TIL +SEMI + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 833, 8664, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 2, 574, 7, 574, 2, 575, 7, 575, 2, 576, 7, 576, 2, 577, 7, 577, 2, 578, 7, 578, 2, 579, 7, 579, 2, 580, 7, 580, 2, 581, 7, 581, 2, 582, 7, 582, 2, 583, 7, 583, 2, 584, 7, 584, 2, 585, 7, 585, 2, 586, 7, 586, 2, 587, 7, 587, 2, 588, 7, 588, 2, 589, 7, 589, 2, 590, 7, 590, 2, 591, 7, 591, 2, 592, 7, 592, 2, 593, 7, 593, 2, 594, 7, 594, 2, 595, 7, 595, 2, 596, 7, 596, 2, 597, 7, 597, 2, 598, 7, 598, 2, 599, 7, 599, 2, 600, 7, 600, 2, 601, 7, 601, 2, 602, 7, 602, 2, 603, 7, 603, 2, 604, 7, 604, 2, 605, 7, 605, 2, 606, 7, 606, 2, 607, 7, 607, 2, 608, 7, 608, 2, 609, 7, 609, 2, 610, 7, 610, 2, 611, 7, 611, 2, 612, 7, 612, 2, 613, 7, 613, 2, 614, 7, 614, 2, 615, 7, 615, 2, 616, 7, 616, 2, 617, 7, 617, 2, 618, 7, 618, 2, 619, 7, 619, 2, 620, 7, 620, 2, 621, 7, 621, 2, 622, 7, 622, 2, 623, 7, 623, 2, 624, 7, 624, 2, 625, 7, 625, 2, 626, 7, 626, 2, 627, 7, 627, 2, 628, 7, 628, 2, 629, 7, 629, 2, 630, 7, 630, 2, 631, 7, 631, 2, 632, 7, 632, 2, 633, 7, 633, 2, 634, 7, 634, 2, 635, 7, 635, 2, 636, 7, 636, 2, 637, 7, 637, 2, 638, 7, 638, 2, 639, 7, 639, 2, 640, 7, 640, 2, 641, 7, 641, 2, 642, 7, 642, 2, 643, 7, 643, 2, 644, 7, 644, 2, 645, 7, 645, 2, 646, 7, 646, 2, 647, 7, 647, 2, 648, 7, 648, 2, 649, 7, 649, 2, 650, 7, 650, 2, 651, 7, 651, 2, 652, 7, 652, 2, 653, 7, 653, 2, 654, 7, 654, 2, 655, 7, 655, 2, 656, 7, 656, 2, 657, 7, 657, 2, 658, 7, 658, 2, 659, 7, 659, 2, 660, 7, 660, 2, 661, 7, 661, 2, 662, 7, 662, 2, 663, 7, 663, 2, 664, 7, 664, 2, 665, 7, 665, 2, 666, 7, 666, 2, 667, 7, 667, 2, 668, 7, 668, 2, 669, 7, 669, 2, 670, 7, 670, 2, 671, 7, 671, 2, 672, 7, 672, 2, 673, 7, 673, 2, 674, 7, 674, 2, 675, 7, 675, 2, 676, 7, 676, 2, 677, 7, 677, 2, 678, 7, 678, 2, 679, 7, 679, 2, 680, 7, 680, 2, 681, 7, 681, 2, 682, 7, 682, 2, 683, 7, 683, 2, 684, 7, 684, 2, 685, 7, 685, 2, 686, 7, 686, 2, 687, 7, 687, 2, 688, 7, 688, 2, 689, 7, 689, 2, 690, 7, 690, 2, 691, 7, 691, 2, 692, 7, 692, 2, 693, 7, 693, 2, 694, 7, 694, 2, 695, 7, 695, 2, 696, 7, 696, 2, 697, 7, 697, 2, 698, 7, 698, 2, 699, 7, 699, 2, 700, 7, 700, 2, 701, 7, 701, 2, 702, 7, 702, 2, 703, 7, 703, 2, 704, 7, 704, 2, 705, 7, 705, 2, 706, 7, 706, 2, 707, 7, 707, 2, 708, 7, 708, 2, 709, 7, 709, 2, 710, 7, 710, 2, 711, 7, 711, 2, 712, 7, 712, 2, 713, 7, 713, 2, 714, 7, 714, 2, 715, 7, 715, 2, 716, 7, 716, 2, 717, 7, 717, 2, 718, 7, 718, 2, 719, 7, 719, 2, 720, 7, 720, 2, 721, 7, 721, 2, 722, 7, 722, 2, 723, 7, 723, 2, 724, 7, 724, 2, 725, 7, 725, 2, 726, 7, 726, 2, 727, 7, 727, 2, 728, 7, 728, 2, 729, 7, 729, 2, 730, 7, 730, 2, 731, 7, 731, 2, 732, 7, 732, 2, 733, 7, 733, 2, 734, 7, 734, 2, 735, 7, 735, 2, 736, 7, 736, 2, 737, 7, 737, 2, 738, 7, 738, 2, 739, 7, 739, 2, 740, 7, 740, 2, 741, 7, 741, 2, 742, 7, 742, 2, 743, 7, 743, 2, 744, 7, 744, 2, 745, 7, 745, 2, 746, 7, 746, 2, 747, 7, 747, 2, 748, 7, 748, 2, 749, 7, 749, 2, 750, 7, 750, 2, 751, 7, 751, 2, 752, 7, 752, 2, 753, 7, 753, 2, 754, 7, 754, 2, 755, 7, 755, 2, 756, 7, 756, 2, 757, 7, 757, 2, 758, 7, 758, 2, 759, 7, 759, 2, 760, 7, 760, 2, 761, 7, 761, 2, 762, 7, 762, 2, 763, 7, 763, 2, 764, 7, 764, 2, 765, 7, 765, 2, 766, 7, 766, 2, 767, 7, 767, 2, 768, 7, 768, 2, 769, 7, 769, 2, 770, 7, 770, 2, 771, 7, 771, 2, 772, 7, 772, 2, 773, 7, 773, 2, 774, 7, 774, 2, 775, 7, 775, 2, 776, 7, 776, 2, 777, 7, 777, 2, 778, 7, 778, 2, 779, 7, 779, 2, 780, 7, 780, 2, 781, 7, 781, 2, 782, 7, 782, 2, 783, 7, 783, 2, 784, 7, 784, 2, 785, 7, 785, 2, 786, 7, 786, 2, 787, 7, 787, 2, 788, 7, 788, 2, 789, 7, 789, 2, 790, 7, 790, 2, 791, 7, 791, 2, 792, 7, 792, 2, 793, 7, 793, 2, 794, 7, 794, 2, 795, 7, 795, 2, 796, 7, 796, 2, 797, 7, 797, 2, 798, 7, 798, 2, 799, 7, 799, 2, 800, 7, 800, 2, 801, 7, 801, 2, 802, 7, 802, 2, 803, 7, 803, 2, 804, 7, 804, 2, 805, 7, 805, 2, 806, 7, 806, 2, 807, 7, 807, 2, 808, 7, 808, 2, 809, 7, 809, 2, 810, 7, 810, 2, 811, 7, 811, 2, 812, 7, 812, 2, 813, 7, 813, 2, 814, 7, 814, 2, 815, 7, 815, 2, 816, 7, 816, 2, 817, 7, 817, 2, 818, 7, 818, 2, 819, 7, 819, 2, 820, 7, 820, 2, 821, 7, 821, 2, 822, 7, 822, 2, 823, 7, 823, 2, 824, 7, 824, 2, 825, 7, 825, 2, 826, 7, 826, 2, 827, 7, 827, 2, 828, 7, 828, 2, 829, 7, 829, 2, 830, 7, 830, 2, 831, 7, 831, 2, 832, 7, 832, 2, 833, 7, 833, 2, 834, 7, 834, 2, 835, 7, 835, 2, 836, 7, 836, 2, 837, 7, 837, 2, 838, 7, 838, 2, 839, 7, 839, 2, 840, 7, 840, 2, 841, 7, 841, 2, 842, 7, 842, 2, 843, 7, 843, 2, 844, 7, 844, 2, 845, 7, 845, 2, 846, 7, 846, 2, 847, 7, 847, 2, 848, 7, 848, 2, 849, 7, 849, 2, 850, 7, 850, 2, 851, 7, 851, 2, 852, 7, 852, 2, 853, 7, 853, 2, 854, 7, 854, 2, 855, 7, 855, 2, 856, 7, 856, 2, 857, 7, 857, 2, 858, 7, 858, 2, 859, 7, 859, 2, 860, 7, 860, 2, 861, 7, 861, 2, 862, 7, 862, 2, 863, 7, 863, 1, 0, 4, 0, 1731, 8, 0, 11, 0, 12, 0, 1732, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1741, 8, 1, 10, 1, 12, 1, 1744, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1755, 8, 2, 10, 2, 12, 2, 1758, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 1826, 8, 31, 10, 31, 12, 31, 1829, 9, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 1839, 8, 32, 10, 32, 12, 32, 1842, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 1852, 8, 33, 10, 33, 12, 33, 1855, 9, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 1, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 450, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 486, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 491, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 503, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 506, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 508, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 523, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 524, 1, 525, 1, 525, 1, 525, 1, 525, 1, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 527, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 528, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 529, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 530, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 531, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 532, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 533, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 534, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 535, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 536, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 537, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 538, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 539, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 540, 1, 541, 1, 541, 1, 541, 1, 541, 1, 541, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 542, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 543, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 544, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 545, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 546, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 549, 1, 549, 1, 549, 1, 549, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 553, 1, 553, 1, 553, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 555, 1, 556, 1, 556, 1, 556, 1, 556, 1, 556, 1, 557, 1, 557, 1, 557, 1, 557, 1, 557, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 558, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 561, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 562, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 563, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 564, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 565, 1, 566, 1, 566, 1, 566, 1, 566, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 569, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 570, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 571, 1, 572, 1, 572, 1, 572, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 573, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 574, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 575, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 576, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 577, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 578, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 579, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 580, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 581, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 582, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 583, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 584, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 585, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 586, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 587, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 588, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 589, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 590, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 591, 1, 592, 1, 592, 1, 592, 1, 592, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 593, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 594, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 595, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 596, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 597, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 598, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 599, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 600, 1, 601, 1, 601, 1, 601, 1, 601, 1, 601, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 602, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 603, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 604, 1, 605, 1, 605, 1, 605, 1, 605, 1, 605, 1, 606, 1, 606, 1, 606, 1, 606, 1, 606, 1, 607, 1, 607, 1, 607, 1, 607, 1, 607, 1, 608, 1, 608, 1, 608, 1, 608, 1, 608, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 609, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 610, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 611, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 612, 1, 613, 1, 613, 1, 613, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 614, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 615, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 616, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 617, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 618, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 619, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 620, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 621, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 622, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 623, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 624, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 625, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 626, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 627, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 628, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 629, 1, 630, 1, 630, 1, 630, 1, 630, 1, 630, 1, 631, 1, 631, 1, 631, 1, 631, 1, 631, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 632, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 633, 1, 634, 1, 634, 1, 634, 1, 634, 1, 634, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 635, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 636, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 637, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 638, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 639, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 640, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 641, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 642, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 643, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 644, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 645, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 646, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 647, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 648, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 649, 1, 650, 1, 650, 1, 650, 1, 650, 1, 650, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 651, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 652, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 653, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 654, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 655, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 656, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 657, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 658, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 659, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 660, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 661, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 662, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 663, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 664, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 665, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 666, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 667, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 668, 1, 669, 1, 669, 1, 669, 1, 669, 1, 669, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 670, 1, 671, 1, 671, 1, 671, 1, 671, 1, 671, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 672, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 673, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 674, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 675, 1, 676, 1, 676, 1, 676, 1, 676, 1, 676, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 677, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 678, 1, 679, 1, 679, 1, 679, 1, 679, 1, 679, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 680, 1, 681, 1, 681, 1, 681, 1, 681, 1, 681, 1, 682, 1, 682, 1, 682, 1, 682, 1, 682, 1, 683, 1, 683, 1, 683, 1, 683, 1, 684, 1, 684, 1, 684, 1, 684, 1, 684, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 685, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 686, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 687, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 688, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 689, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 690, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 691, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 692, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 693, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 694, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 695, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 696, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 697, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 698, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 699, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 700, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 701, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 702, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 703, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 704, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 705, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 706, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 707, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 708, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 709, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 710, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 711, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 712, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 713, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 714, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 715, 1, 716, 1, 716, 1, 716, 1, 716, 1, 716, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 717, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 718, 1, 719, 1, 719, 1, 719, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 720, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 721, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 722, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 723, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 724, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 725, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 726, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 727, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 728, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 729, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 730, 1, 731, 1, 731, 1, 731, 1, 731, 1, 731, 1, 732, 1, 732, 1, 732, 1, 732, 1, 732, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 733, 1, 734, 1, 734, 1, 734, 1, 734, 1, 735, 1, 735, 1, 735, 1, 735, 1, 735, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 736, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 737, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 738, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 739, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 740, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 741, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 742, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 743, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 744, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 745, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 746, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 747, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 748, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 749, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 750, 1, 751, 1, 751, 1, 751, 1, 751, 1, 751, 1, 752, 1, 752, 1, 752, 1, 752, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 753, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 754, 1, 755, 1, 755, 1, 755, 1, 755, 1, 755, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 756, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 757, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 758, 1, 759, 1, 759, 1, 759, 1, 759, 1, 759, 1, 760, 1, 760, 1, 760, 1, 760, 1, 760, 1, 761, 1, 761, 1, 761, 1, 761, 1, 761, 1, 762, 1, 762, 1, 762, 1, 762, 1, 762, 1, 763, 1, 763, 1, 763, 1, 763, 1, 763, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 764, 1, 765, 1, 765, 1, 765, 1, 765, 1, 765, 1, 766, 1, 766, 1, 766, 1, 766, 1, 766, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 767, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 768, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 769, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 770, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 771, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 772, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 773, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 774, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 775, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 776, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 777, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 778, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 779, 1, 780, 1, 780, 1, 780, 1, 780, 1, 780, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 781, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 782, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 783, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 784, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 785, 1, 786, 1, 786, 1, 786, 1, 786, 1, 786, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 787, 1, 788, 1, 788, 1, 788, 1, 788, 1, 789, 1, 789, 1, 790, 1, 790, 1, 791, 1, 791, 1, 791, 1, 792, 1, 792, 1, 793, 1, 793, 1, 793, 1, 794, 1, 794, 1, 795, 1, 795, 1, 796, 1, 796, 1, 797, 1, 797, 1, 798, 1, 798, 1, 799, 1, 799, 1, 799, 5, 799, 8423, 8, 799, 10, 799, 12, 799, 8426, 9, 799, 1, 799, 1, 799, 1, 800, 1, 800, 1, 800, 1, 801, 3, 801, 8434, 8, 801, 1, 801, 4, 801, 8437, 8, 801, 11, 801, 12, 801, 8438, 1, 801, 1, 801, 4, 801, 8443, 8, 801, 11, 801, 12, 801, 8444, 1, 801, 1, 801, 5, 801, 8449, 8, 801, 10, 801, 12, 801, 8452, 9, 801, 1, 801, 4, 801, 8455, 8, 801, 11, 801, 12, 801, 8456, 3, 801, 8459, 8, 801, 1, 802, 3, 802, 8462, 8, 802, 1, 802, 4, 802, 8465, 8, 802, 11, 802, 12, 802, 8466, 1, 802, 1, 802, 4, 802, 8471, 8, 802, 11, 802, 12, 802, 8472, 3, 802, 8475, 8, 802, 1, 803, 1, 803, 1, 803, 1, 804, 1, 804, 1, 805, 1, 805, 1, 806, 1, 806, 1, 807, 1, 807, 5, 807, 8488, 8, 807, 10, 807, 12, 807, 8491, 9, 807, 1, 808, 1, 808, 4, 808, 8495, 8, 808, 11, 808, 12, 808, 8496, 1, 809, 1, 809, 5, 809, 8501, 8, 809, 10, 809, 12, 809, 8504, 9, 809, 1, 810, 1, 810, 1, 811, 1, 811, 1, 811, 1, 812, 1, 812, 1, 812, 1, 813, 1, 813, 1, 813, 1, 814, 1, 814, 1, 814, 1, 815, 1, 815, 1, 816, 1, 816, 1, 817, 1, 817, 1, 817, 1, 818, 1, 818, 1, 818, 1, 819, 1, 819, 1, 820, 1, 820, 1, 821, 1, 821, 1, 821, 1, 822, 1, 822, 1, 823, 1, 823, 1, 823, 1, 824, 1, 824, 1, 824, 1, 825, 1, 825, 1, 826, 1, 826, 1, 826, 1, 827, 1, 827, 1, 827, 1, 828, 1, 828, 1, 828, 1, 828, 1, 829, 1, 829, 1, 829, 1, 830, 1, 830, 1, 830, 1, 831, 1, 831, 1, 831, 1, 831, 1, 832, 1, 832, 1, 832, 1, 832, 1, 833, 1, 833, 1, 834, 1, 834, 1, 834, 1, 835, 1, 835, 1, 835, 1, 836, 1, 836, 1, 836, 1, 837, 1, 837, 1, 837, 1, 838, 1, 838, 1, 838, 1, 838, 1, 839, 1, 839, 1, 839, 1, 840, 1, 840, 1, 840, 1, 840, 1, 841, 1, 841, 1, 841, 1, 841, 1, 842, 1, 842, 1, 843, 1, 843, 1, 844, 1, 844, 1, 845, 1, 845, 1, 845, 1, 846, 1, 846, 1, 846, 1, 846, 1, 847, 1, 847, 1, 847, 1, 848, 1, 848, 1, 849, 1, 849, 1, 850, 1, 850, 1, 850, 1, 851, 1, 851, 1, 851, 1, 852, 1, 852, 1, 852, 1, 853, 1, 853, 1, 853, 1, 854, 1, 854, 1, 855, 1, 855, 1, 856, 1, 856, 1, 856, 1, 857, 1, 857, 1, 857, 1, 857, 1, 857, 1, 858, 1, 858, 1, 858, 1, 858, 1, 859, 1, 859, 1, 859, 1, 859, 1, 859, 1, 860, 1, 860, 1, 860, 1, 860, 1, 861, 1, 861, 1, 861, 1, 862, 1, 862, 1, 862, 1, 863, 1, 863, 2, 1742, 1756, 0, 864, 1, 1, 3, 2, 5, 3, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 4, 71, 5, 73, 6, 75, 7, 77, 8, 79, 9, 81, 10, 83, 11, 85, 12, 87, 13, 89, 14, 91, 15, 93, 16, 95, 17, 97, 18, 99, 19, 101, 20, 103, 21, 105, 22, 107, 23, 109, 24, 111, 25, 113, 26, 115, 27, 117, 28, 119, 29, 121, 30, 123, 31, 125, 32, 127, 33, 129, 34, 131, 35, 133, 36, 135, 37, 137, 38, 139, 39, 141, 40, 143, 41, 145, 42, 147, 43, 149, 44, 151, 45, 153, 46, 155, 47, 157, 48, 159, 49, 161, 50, 163, 51, 165, 52, 167, 53, 169, 54, 171, 55, 173, 56, 175, 57, 177, 58, 179, 59, 181, 60, 183, 61, 185, 62, 187, 63, 189, 64, 191, 65, 193, 66, 195, 67, 197, 68, 199, 69, 201, 70, 203, 71, 205, 72, 207, 73, 209, 74, 211, 75, 213, 76, 215, 77, 217, 78, 219, 79, 221, 80, 223, 81, 225, 82, 227, 83, 229, 84, 231, 85, 233, 86, 235, 87, 237, 88, 239, 89, 241, 90, 243, 91, 245, 92, 247, 93, 249, 94, 251, 95, 253, 96, 255, 97, 257, 98, 259, 99, 261, 100, 263, 101, 265, 102, 267, 103, 269, 104, 271, 105, 273, 106, 275, 107, 277, 108, 279, 109, 281, 110, 283, 111, 285, 112, 287, 113, 289, 114, 291, 115, 293, 116, 295, 117, 297, 118, 299, 119, 301, 120, 303, 121, 305, 122, 307, 123, 309, 124, 311, 125, 313, 126, 315, 127, 317, 128, 319, 129, 321, 130, 323, 131, 325, 132, 327, 133, 329, 134, 331, 135, 333, 136, 335, 137, 337, 138, 339, 139, 341, 140, 343, 141, 345, 142, 347, 143, 349, 144, 351, 145, 353, 146, 355, 147, 357, 148, 359, 149, 361, 150, 363, 151, 365, 152, 367, 153, 369, 154, 371, 155, 373, 156, 375, 157, 377, 158, 379, 159, 381, 160, 383, 161, 385, 162, 387, 163, 389, 164, 391, 165, 393, 166, 395, 167, 397, 168, 399, 169, 401, 170, 403, 171, 405, 172, 407, 173, 409, 174, 411, 175, 413, 176, 415, 177, 417, 178, 419, 179, 421, 180, 423, 181, 425, 182, 427, 183, 429, 184, 431, 185, 433, 186, 435, 187, 437, 188, 439, 189, 441, 190, 443, 191, 445, 192, 447, 193, 449, 194, 451, 195, 453, 196, 455, 197, 457, 198, 459, 199, 461, 200, 463, 201, 465, 202, 467, 203, 469, 204, 471, 205, 473, 206, 475, 207, 477, 208, 479, 209, 481, 210, 483, 211, 485, 212, 487, 213, 489, 214, 491, 215, 493, 216, 495, 217, 497, 218, 499, 219, 501, 220, 503, 221, 505, 222, 507, 223, 509, 224, 511, 225, 513, 226, 515, 227, 517, 228, 519, 229, 521, 230, 523, 231, 525, 232, 527, 233, 529, 234, 531, 235, 533, 236, 535, 237, 537, 238, 539, 239, 541, 240, 543, 241, 545, 242, 547, 243, 549, 244, 551, 245, 553, 246, 555, 247, 557, 248, 559, 249, 561, 250, 563, 251, 565, 252, 567, 253, 569, 254, 571, 255, 573, 256, 575, 257, 577, 258, 579, 259, 581, 260, 583, 261, 585, 262, 587, 263, 589, 264, 591, 265, 593, 266, 595, 267, 597, 268, 599, 269, 601, 270, 603, 271, 605, 272, 607, 273, 609, 274, 611, 275, 613, 276, 615, 277, 617, 278, 619, 279, 621, 280, 623, 281, 625, 282, 627, 283, 629, 284, 631, 285, 633, 286, 635, 287, 637, 288, 639, 289, 641, 290, 643, 291, 645, 292, 647, 293, 649, 294, 651, 295, 653, 296, 655, 297, 657, 298, 659, 299, 661, 300, 663, 301, 665, 302, 667, 303, 669, 304, 671, 305, 673, 306, 675, 307, 677, 308, 679, 309, 681, 310, 683, 311, 685, 312, 687, 313, 689, 314, 691, 315, 693, 316, 695, 317, 697, 318, 699, 319, 701, 320, 703, 321, 705, 322, 707, 323, 709, 324, 711, 325, 713, 326, 715, 327, 717, 328, 719, 329, 721, 330, 723, 331, 725, 332, 727, 333, 729, 334, 731, 335, 733, 336, 735, 337, 737, 338, 739, 339, 741, 340, 743, 341, 745, 342, 747, 343, 749, 344, 751, 345, 753, 346, 755, 347, 757, 348, 759, 349, 761, 350, 763, 351, 765, 352, 767, 353, 769, 354, 771, 355, 773, 356, 775, 357, 777, 358, 779, 359, 781, 360, 783, 361, 785, 362, 787, 363, 789, 364, 791, 365, 793, 366, 795, 367, 797, 368, 799, 369, 801, 370, 803, 371, 805, 372, 807, 373, 809, 374, 811, 375, 813, 376, 815, 377, 817, 378, 819, 379, 821, 380, 823, 381, 825, 382, 827, 383, 829, 384, 831, 385, 833, 386, 835, 387, 837, 388, 839, 389, 841, 390, 843, 391, 845, 392, 847, 393, 849, 394, 851, 395, 853, 396, 855, 397, 857, 398, 859, 399, 861, 400, 863, 401, 865, 402, 867, 403, 869, 404, 871, 405, 873, 406, 875, 407, 877, 408, 879, 409, 881, 410, 883, 411, 885, 412, 887, 413, 889, 414, 891, 415, 893, 416, 895, 417, 897, 418, 899, 419, 901, 420, 903, 421, 905, 422, 907, 423, 909, 424, 911, 425, 913, 426, 915, 427, 917, 428, 919, 429, 921, 430, 923, 431, 925, 432, 927, 433, 929, 434, 931, 435, 933, 436, 935, 437, 937, 438, 939, 439, 941, 440, 943, 441, 945, 442, 947, 443, 949, 444, 951, 445, 953, 446, 955, 447, 957, 448, 959, 449, 961, 450, 963, 451, 965, 452, 967, 453, 969, 454, 971, 455, 973, 456, 975, 457, 977, 458, 979, 459, 981, 460, 983, 461, 985, 462, 987, 463, 989, 464, 991, 465, 993, 466, 995, 467, 997, 468, 999, 469, 1001, 470, 1003, 471, 1005, 472, 1007, 473, 1009, 474, 1011, 475, 1013, 476, 1015, 477, 1017, 478, 1019, 479, 1021, 480, 1023, 481, 1025, 482, 1027, 483, 1029, 484, 1031, 485, 1033, 486, 1035, 487, 1037, 488, 1039, 489, 1041, 490, 1043, 491, 1045, 492, 1047, 493, 1049, 494, 1051, 495, 1053, 496, 1055, 497, 1057, 498, 1059, 499, 1061, 500, 1063, 501, 1065, 502, 1067, 503, 1069, 504, 1071, 505, 1073, 506, 1075, 507, 1077, 508, 1079, 509, 1081, 510, 1083, 511, 1085, 512, 1087, 513, 1089, 514, 1091, 515, 1093, 516, 1095, 517, 1097, 518, 1099, 519, 1101, 520, 1103, 521, 1105, 522, 1107, 523, 1109, 524, 1111, 525, 1113, 526, 1115, 527, 1117, 528, 1119, 529, 1121, 530, 1123, 531, 1125, 532, 1127, 533, 1129, 534, 1131, 535, 1133, 536, 1135, 537, 1137, 538, 1139, 539, 1141, 540, 1143, 541, 1145, 542, 1147, 543, 1149, 544, 1151, 545, 1153, 546, 1155, 547, 1157, 548, 1159, 549, 1161, 550, 1163, 551, 1165, 552, 1167, 553, 1169, 554, 1171, 555, 1173, 556, 1175, 557, 1177, 558, 1179, 559, 1181, 560, 1183, 561, 1185, 562, 1187, 563, 1189, 564, 1191, 565, 1193, 566, 1195, 567, 1197, 568, 1199, 569, 1201, 570, 1203, 571, 1205, 572, 1207, 573, 1209, 574, 1211, 575, 1213, 576, 1215, 577, 1217, 578, 1219, 579, 1221, 580, 1223, 581, 1225, 582, 1227, 583, 1229, 584, 1231, 585, 1233, 586, 1235, 587, 1237, 588, 1239, 589, 1241, 590, 1243, 591, 1245, 592, 1247, 593, 1249, 594, 1251, 595, 1253, 596, 1255, 597, 1257, 598, 1259, 599, 1261, 600, 1263, 601, 1265, 602, 1267, 603, 1269, 604, 1271, 605, 1273, 606, 1275, 607, 1277, 608, 1279, 609, 1281, 610, 1283, 611, 1285, 612, 1287, 613, 1289, 614, 1291, 615, 1293, 616, 1295, 617, 1297, 618, 1299, 619, 1301, 620, 1303, 621, 1305, 622, 1307, 623, 1309, 624, 1311, 625, 1313, 626, 1315, 627, 1317, 628, 1319, 629, 1321, 630, 1323, 631, 1325, 632, 1327, 633, 1329, 634, 1331, 635, 1333, 636, 1335, 637, 1337, 638, 1339, 639, 1341, 640, 1343, 641, 1345, 642, 1347, 643, 1349, 644, 1351, 645, 1353, 646, 1355, 647, 1357, 648, 1359, 649, 1361, 650, 1363, 651, 1365, 652, 1367, 653, 1369, 654, 1371, 655, 1373, 656, 1375, 657, 1377, 658, 1379, 659, 1381, 660, 1383, 661, 1385, 662, 1387, 663, 1389, 664, 1391, 665, 1393, 666, 1395, 667, 1397, 668, 1399, 669, 1401, 670, 1403, 671, 1405, 672, 1407, 673, 1409, 674, 1411, 675, 1413, 676, 1415, 677, 1417, 678, 1419, 679, 1421, 680, 1423, 681, 1425, 682, 1427, 683, 1429, 684, 1431, 685, 1433, 686, 1435, 687, 1437, 688, 1439, 689, 1441, 690, 1443, 691, 1445, 692, 1447, 693, 1449, 694, 1451, 695, 1453, 696, 1455, 697, 1457, 698, 1459, 699, 1461, 700, 1463, 701, 1465, 702, 1467, 703, 1469, 704, 1471, 705, 1473, 706, 1475, 707, 1477, 708, 1479, 709, 1481, 710, 1483, 711, 1485, 712, 1487, 713, 1489, 714, 1491, 715, 1493, 716, 1495, 717, 1497, 718, 1499, 719, 1501, 720, 1503, 721, 1505, 722, 1507, 723, 1509, 724, 1511, 725, 1513, 726, 1515, 727, 1517, 728, 1519, 729, 1521, 730, 1523, 731, 1525, 732, 1527, 733, 1529, 734, 1531, 735, 1533, 736, 1535, 737, 1537, 738, 1539, 739, 1541, 740, 1543, 741, 1545, 742, 1547, 743, 1549, 744, 1551, 745, 1553, 746, 1555, 747, 1557, 748, 1559, 749, 1561, 750, 1563, 751, 1565, 752, 1567, 753, 1569, 754, 1571, 755, 1573, 756, 1575, 757, 1577, 758, 1579, 759, 1581, 760, 1583, 761, 1585, 762, 1587, 763, 1589, 764, 1591, 765, 1593, 766, 1595, 767, 1597, 768, 1599, 769, 1601, 770, 1603, 771, 1605, 772, 1607, 773, 1609, 774, 1611, 775, 1613, 776, 1615, 777, 1617, 778, 1619, 779, 1621, 780, 1623, 781, 1625, 782, 1627, 783, 1629, 784, 1631, 785, 1633, 786, 1635, 787, 1637, 788, 1639, 789, 1641, 790, 1643, 791, 1645, 792, 1647, 793, 1649, 794, 1651, 795, 1653, 796, 1655, 797, 1657, 798, 1659, 799, 1661, 800, 1663, 801, 1665, 802, 1667, 803, 1669, 804, 1671, 805, 1673, 806, 1675, 807, 1677, 808, 1679, 809, 1681, 810, 1683, 811, 1685, 812, 1687, 813, 1689, 814, 1691, 815, 1693, 816, 1695, 817, 1697, 818, 1699, 819, 1701, 820, 1703, 821, 1705, 822, 1707, 823, 1709, 824, 1711, 825, 1713, 826, 1715, 827, 1717, 828, 1719, 829, 1721, 830, 1723, 831, 1725, 832, 1727, 833, 1, 0, 36, 3, 0, 9, 10, 13, 13, 32, 32, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2, 0, 48, 57, 65, 70, 1, 0, 48, 57, 2, 0, 34, 34, 92, 92, 2, 0, 39, 39, 92, 92, 2, 0, 92, 92, 96, 96, 3, 0, 65, 90, 95, 95, 97, 122, 5, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 4, 0, 65, 90, 95, 95, 97, 122, 161, 65535, 6, 0, 36, 36, 48, 57, 65, 90, 95, 95, 97, 122, 161, 65535, 8658, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 701, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 705, 1, 0, 0, 0, 0, 707, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 713, 1, 0, 0, 0, 0, 715, 1, 0, 0, 0, 0, 717, 1, 0, 0, 0, 0, 719, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 839, 1, 0, 0, 0, 0, 841, 1, 0, 0, 0, 0, 843, 1, 0, 0, 0, 0, 845, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 0, 857, 1, 0, 0, 0, 0, 859, 1, 0, 0, 0, 0, 861, 1, 0, 0, 0, 0, 863, 1, 0, 0, 0, 0, 865, 1, 0, 0, 0, 0, 867, 1, 0, 0, 0, 0, 869, 1, 0, 0, 0, 0, 871, 1, 0, 0, 0, 0, 873, 1, 0, 0, 0, 0, 875, 1, 0, 0, 0, 0, 877, 1, 0, 0, 0, 0, 879, 1, 0, 0, 0, 0, 881, 1, 0, 0, 0, 0, 883, 1, 0, 0, 0, 0, 885, 1, 0, 0, 0, 0, 887, 1, 0, 0, 0, 0, 889, 1, 0, 0, 0, 0, 891, 1, 0, 0, 0, 0, 893, 1, 0, 0, 0, 0, 895, 1, 0, 0, 0, 0, 897, 1, 0, 0, 0, 0, 899, 1, 0, 0, 0, 0, 901, 1, 0, 0, 0, 0, 903, 1, 0, 0, 0, 0, 905, 1, 0, 0, 0, 0, 907, 1, 0, 0, 0, 0, 909, 1, 0, 0, 0, 0, 911, 1, 0, 0, 0, 0, 913, 1, 0, 0, 0, 0, 915, 1, 0, 0, 0, 0, 917, 1, 0, 0, 0, 0, 919, 1, 0, 0, 0, 0, 921, 1, 0, 0, 0, 0, 923, 1, 0, 0, 0, 0, 925, 1, 0, 0, 0, 0, 927, 1, 0, 0, 0, 0, 929, 1, 0, 0, 0, 0, 931, 1, 0, 0, 0, 0, 933, 1, 0, 0, 0, 0, 935, 1, 0, 0, 0, 0, 937, 1, 0, 0, 0, 0, 939, 1, 0, 0, 0, 0, 941, 1, 0, 0, 0, 0, 943, 1, 0, 0, 0, 0, 945, 1, 0, 0, 0, 0, 947, 1, 0, 0, 0, 0, 949, 1, 0, 0, 0, 0, 951, 1, 0, 0, 0, 0, 953, 1, 0, 0, 0, 0, 955, 1, 0, 0, 0, 0, 957, 1, 0, 0, 0, 0, 959, 1, 0, 0, 0, 0, 961, 1, 0, 0, 0, 0, 963, 1, 0, 0, 0, 0, 965, 1, 0, 0, 0, 0, 967, 1, 0, 0, 0, 0, 969, 1, 0, 0, 0, 0, 971, 1, 0, 0, 0, 0, 973, 1, 0, 0, 0, 0, 975, 1, 0, 0, 0, 0, 977, 1, 0, 0, 0, 0, 979, 1, 0, 0, 0, 0, 981, 1, 0, 0, 0, 0, 983, 1, 0, 0, 0, 0, 985, 1, 0, 0, 0, 0, 987, 1, 0, 0, 0, 0, 989, 1, 0, 0, 0, 0, 991, 1, 0, 0, 0, 0, 993, 1, 0, 0, 0, 0, 995, 1, 0, 0, 0, 0, 997, 1, 0, 0, 0, 0, 999, 1, 0, 0, 0, 0, 1001, 1, 0, 0, 0, 0, 1003, 1, 0, 0, 0, 0, 1005, 1, 0, 0, 0, 0, 1007, 1, 0, 0, 0, 0, 1009, 1, 0, 0, 0, 0, 1011, 1, 0, 0, 0, 0, 1013, 1, 0, 0, 0, 0, 1015, 1, 0, 0, 0, 0, 1017, 1, 0, 0, 0, 0, 1019, 1, 0, 0, 0, 0, 1021, 1, 0, 0, 0, 0, 1023, 1, 0, 0, 0, 0, 1025, 1, 0, 0, 0, 0, 1027, 1, 0, 0, 0, 0, 1029, 1, 0, 0, 0, 0, 1031, 1, 0, 0, 0, 0, 1033, 1, 0, 0, 0, 0, 1035, 1, 0, 0, 0, 0, 1037, 1, 0, 0, 0, 0, 1039, 1, 0, 0, 0, 0, 1041, 1, 0, 0, 0, 0, 1043, 1, 0, 0, 0, 0, 1045, 1, 0, 0, 0, 0, 1047, 1, 0, 0, 0, 0, 1049, 1, 0, 0, 0, 0, 1051, 1, 0, 0, 0, 0, 1053, 1, 0, 0, 0, 0, 1055, 1, 0, 0, 0, 0, 1057, 1, 0, 0, 0, 0, 1059, 1, 0, 0, 0, 0, 1061, 1, 0, 0, 0, 0, 1063, 1, 0, 0, 0, 0, 1065, 1, 0, 0, 0, 0, 1067, 1, 0, 0, 0, 0, 1069, 1, 0, 0, 0, 0, 1071, 1, 0, 0, 0, 0, 1073, 1, 0, 0, 0, 0, 1075, 1, 0, 0, 0, 0, 1077, 1, 0, 0, 0, 0, 1079, 1, 0, 0, 0, 0, 1081, 1, 0, 0, 0, 0, 1083, 1, 0, 0, 0, 0, 1085, 1, 0, 0, 0, 0, 1087, 1, 0, 0, 0, 0, 1089, 1, 0, 0, 0, 0, 1091, 1, 0, 0, 0, 0, 1093, 1, 0, 0, 0, 0, 1095, 1, 0, 0, 0, 0, 1097, 1, 0, 0, 0, 0, 1099, 1, 0, 0, 0, 0, 1101, 1, 0, 0, 0, 0, 1103, 1, 0, 0, 0, 0, 1105, 1, 0, 0, 0, 0, 1107, 1, 0, 0, 0, 0, 1109, 1, 0, 0, 0, 0, 1111, 1, 0, 0, 0, 0, 1113, 1, 0, 0, 0, 0, 1115, 1, 0, 0, 0, 0, 1117, 1, 0, 0, 0, 0, 1119, 1, 0, 0, 0, 0, 1121, 1, 0, 0, 0, 0, 1123, 1, 0, 0, 0, 0, 1125, 1, 0, 0, 0, 0, 1127, 1, 0, 0, 0, 0, 1129, 1, 0, 0, 0, 0, 1131, 1, 0, 0, 0, 0, 1133, 1, 0, 0, 0, 0, 1135, 1, 0, 0, 0, 0, 1137, 1, 0, 0, 0, 0, 1139, 1, 0, 0, 0, 0, 1141, 1, 0, 0, 0, 0, 1143, 1, 0, 0, 0, 0, 1145, 1, 0, 0, 0, 0, 1147, 1, 0, 0, 0, 0, 1149, 1, 0, 0, 0, 0, 1151, 1, 0, 0, 0, 0, 1153, 1, 0, 0, 0, 0, 1155, 1, 0, 0, 0, 0, 1157, 1, 0, 0, 0, 0, 1159, 1, 0, 0, 0, 0, 1161, 1, 0, 0, 0, 0, 1163, 1, 0, 0, 0, 0, 1165, 1, 0, 0, 0, 0, 1167, 1, 0, 0, 0, 0, 1169, 1, 0, 0, 0, 0, 1171, 1, 0, 0, 0, 0, 1173, 1, 0, 0, 0, 0, 1175, 1, 0, 0, 0, 0, 1177, 1, 0, 0, 0, 0, 1179, 1, 0, 0, 0, 0, 1181, 1, 0, 0, 0, 0, 1183, 1, 0, 0, 0, 0, 1185, 1, 0, 0, 0, 0, 1187, 1, 0, 0, 0, 0, 1189, 1, 0, 0, 0, 0, 1191, 1, 0, 0, 0, 0, 1193, 1, 0, 0, 0, 0, 1195, 1, 0, 0, 0, 0, 1197, 1, 0, 0, 0, 0, 1199, 1, 0, 0, 0, 0, 1201, 1, 0, 0, 0, 0, 1203, 1, 0, 0, 0, 0, 1205, 1, 0, 0, 0, 0, 1207, 1, 0, 0, 0, 0, 1209, 1, 0, 0, 0, 0, 1211, 1, 0, 0, 0, 0, 1213, 1, 0, 0, 0, 0, 1215, 1, 0, 0, 0, 0, 1217, 1, 0, 0, 0, 0, 1219, 1, 0, 0, 0, 0, 1221, 1, 0, 0, 0, 0, 1223, 1, 0, 0, 0, 0, 1225, 1, 0, 0, 0, 0, 1227, 1, 0, 0, 0, 0, 1229, 1, 0, 0, 0, 0, 1231, 1, 0, 0, 0, 0, 1233, 1, 0, 0, 0, 0, 1235, 1, 0, 0, 0, 0, 1237, 1, 0, 0, 0, 0, 1239, 1, 0, 0, 0, 0, 1241, 1, 0, 0, 0, 0, 1243, 1, 0, 0, 0, 0, 1245, 1, 0, 0, 0, 0, 1247, 1, 0, 0, 0, 0, 1249, 1, 0, 0, 0, 0, 1251, 1, 0, 0, 0, 0, 1253, 1, 0, 0, 0, 0, 1255, 1, 0, 0, 0, 0, 1257, 1, 0, 0, 0, 0, 1259, 1, 0, 0, 0, 0, 1261, 1, 0, 0, 0, 0, 1263, 1, 0, 0, 0, 0, 1265, 1, 0, 0, 0, 0, 1267, 1, 0, 0, 0, 0, 1269, 1, 0, 0, 0, 0, 1271, 1, 0, 0, 0, 0, 1273, 1, 0, 0, 0, 0, 1275, 1, 0, 0, 0, 0, 1277, 1, 0, 0, 0, 0, 1279, 1, 0, 0, 0, 0, 1281, 1, 0, 0, 0, 0, 1283, 1, 0, 0, 0, 0, 1285, 1, 0, 0, 0, 0, 1287, 1, 0, 0, 0, 0, 1289, 1, 0, 0, 0, 0, 1291, 1, 0, 0, 0, 0, 1293, 1, 0, 0, 0, 0, 1295, 1, 0, 0, 0, 0, 1297, 1, 0, 0, 0, 0, 1299, 1, 0, 0, 0, 0, 1301, 1, 0, 0, 0, 0, 1303, 1, 0, 0, 0, 0, 1305, 1, 0, 0, 0, 0, 1307, 1, 0, 0, 0, 0, 1309, 1, 0, 0, 0, 0, 1311, 1, 0, 0, 0, 0, 1313, 1, 0, 0, 0, 0, 1315, 1, 0, 0, 0, 0, 1317, 1, 0, 0, 0, 0, 1319, 1, 0, 0, 0, 0, 1321, 1, 0, 0, 0, 0, 1323, 1, 0, 0, 0, 0, 1325, 1, 0, 0, 0, 0, 1327, 1, 0, 0, 0, 0, 1329, 1, 0, 0, 0, 0, 1331, 1, 0, 0, 0, 0, 1333, 1, 0, 0, 0, 0, 1335, 1, 0, 0, 0, 0, 1337, 1, 0, 0, 0, 0, 1339, 1, 0, 0, 0, 0, 1341, 1, 0, 0, 0, 0, 1343, 1, 0, 0, 0, 0, 1345, 1, 0, 0, 0, 0, 1347, 1, 0, 0, 0, 0, 1349, 1, 0, 0, 0, 0, 1351, 1, 0, 0, 0, 0, 1353, 1, 0, 0, 0, 0, 1355, 1, 0, 0, 0, 0, 1357, 1, 0, 0, 0, 0, 1359, 1, 0, 0, 0, 0, 1361, 1, 0, 0, 0, 0, 1363, 1, 0, 0, 0, 0, 1365, 1, 0, 0, 0, 0, 1367, 1, 0, 0, 0, 0, 1369, 1, 0, 0, 0, 0, 1371, 1, 0, 0, 0, 0, 1373, 1, 0, 0, 0, 0, 1375, 1, 0, 0, 0, 0, 1377, 1, 0, 0, 0, 0, 1379, 1, 0, 0, 0, 0, 1381, 1, 0, 0, 0, 0, 1383, 1, 0, 0, 0, 0, 1385, 1, 0, 0, 0, 0, 1387, 1, 0, 0, 0, 0, 1389, 1, 0, 0, 0, 0, 1391, 1, 0, 0, 0, 0, 1393, 1, 0, 0, 0, 0, 1395, 1, 0, 0, 0, 0, 1397, 1, 0, 0, 0, 0, 1399, 1, 0, 0, 0, 0, 1401, 1, 0, 0, 0, 0, 1403, 1, 0, 0, 0, 0, 1405, 1, 0, 0, 0, 0, 1407, 1, 0, 0, 0, 0, 1409, 1, 0, 0, 0, 0, 1411, 1, 0, 0, 0, 0, 1413, 1, 0, 0, 0, 0, 1415, 1, 0, 0, 0, 0, 1417, 1, 0, 0, 0, 0, 1419, 1, 0, 0, 0, 0, 1421, 1, 0, 0, 0, 0, 1423, 1, 0, 0, 0, 0, 1425, 1, 0, 0, 0, 0, 1427, 1, 0, 0, 0, 0, 1429, 1, 0, 0, 0, 0, 1431, 1, 0, 0, 0, 0, 1433, 1, 0, 0, 0, 0, 1435, 1, 0, 0, 0, 0, 1437, 1, 0, 0, 0, 0, 1439, 1, 0, 0, 0, 0, 1441, 1, 0, 0, 0, 0, 1443, 1, 0, 0, 0, 0, 1445, 1, 0, 0, 0, 0, 1447, 1, 0, 0, 0, 0, 1449, 1, 0, 0, 0, 0, 1451, 1, 0, 0, 0, 0, 1453, 1, 0, 0, 0, 0, 1455, 1, 0, 0, 0, 0, 1457, 1, 0, 0, 0, 0, 1459, 1, 0, 0, 0, 0, 1461, 1, 0, 0, 0, 0, 1463, 1, 0, 0, 0, 0, 1465, 1, 0, 0, 0, 0, 1467, 1, 0, 0, 0, 0, 1469, 1, 0, 0, 0, 0, 1471, 1, 0, 0, 0, 0, 1473, 1, 0, 0, 0, 0, 1475, 1, 0, 0, 0, 0, 1477, 1, 0, 0, 0, 0, 1479, 1, 0, 0, 0, 0, 1481, 1, 0, 0, 0, 0, 1483, 1, 0, 0, 0, 0, 1485, 1, 0, 0, 0, 0, 1487, 1, 0, 0, 0, 0, 1489, 1, 0, 0, 0, 0, 1491, 1, 0, 0, 0, 0, 1493, 1, 0, 0, 0, 0, 1495, 1, 0, 0, 0, 0, 1497, 1, 0, 0, 0, 0, 1499, 1, 0, 0, 0, 0, 1501, 1, 0, 0, 0, 0, 1503, 1, 0, 0, 0, 0, 1505, 1, 0, 0, 0, 0, 1507, 1, 0, 0, 0, 0, 1509, 1, 0, 0, 0, 0, 1511, 1, 0, 0, 0, 0, 1513, 1, 0, 0, 0, 0, 1515, 1, 0, 0, 0, 0, 1517, 1, 0, 0, 0, 0, 1519, 1, 0, 0, 0, 0, 1521, 1, 0, 0, 0, 0, 1523, 1, 0, 0, 0, 0, 1525, 1, 0, 0, 0, 0, 1527, 1, 0, 0, 0, 0, 1529, 1, 0, 0, 0, 0, 1531, 1, 0, 0, 0, 0, 1533, 1, 0, 0, 0, 0, 1535, 1, 0, 0, 0, 0, 1537, 1, 0, 0, 0, 0, 1539, 1, 0, 0, 0, 0, 1541, 1, 0, 0, 0, 0, 1543, 1, 0, 0, 0, 0, 1545, 1, 0, 0, 0, 0, 1547, 1, 0, 0, 0, 0, 1549, 1, 0, 0, 0, 0, 1551, 1, 0, 0, 0, 0, 1553, 1, 0, 0, 0, 0, 1555, 1, 0, 0, 0, 0, 1557, 1, 0, 0, 0, 0, 1559, 1, 0, 0, 0, 0, 1561, 1, 0, 0, 0, 0, 1563, 1, 0, 0, 0, 0, 1565, 1, 0, 0, 0, 0, 1567, 1, 0, 0, 0, 0, 1569, 1, 0, 0, 0, 0, 1571, 1, 0, 0, 0, 0, 1573, 1, 0, 0, 0, 0, 1575, 1, 0, 0, 0, 0, 1577, 1, 0, 0, 0, 0, 1579, 1, 0, 0, 0, 0, 1581, 1, 0, 0, 0, 0, 1583, 1, 0, 0, 0, 0, 1585, 1, 0, 0, 0, 0, 1587, 1, 0, 0, 0, 0, 1589, 1, 0, 0, 0, 0, 1591, 1, 0, 0, 0, 0, 1593, 1, 0, 0, 0, 0, 1595, 1, 0, 0, 0, 0, 1597, 1, 0, 0, 0, 0, 1599, 1, 0, 0, 0, 0, 1601, 1, 0, 0, 0, 0, 1603, 1, 0, 0, 0, 0, 1605, 1, 0, 0, 0, 0, 1607, 1, 0, 0, 0, 0, 1609, 1, 0, 0, 0, 0, 1611, 1, 0, 0, 0, 0, 1613, 1, 0, 0, 0, 0, 1615, 1, 0, 0, 0, 0, 1617, 1, 0, 0, 0, 0, 1619, 1, 0, 0, 0, 0, 1621, 1, 0, 0, 0, 0, 1623, 1, 0, 0, 0, 0, 1625, 1, 0, 0, 0, 0, 1627, 1, 0, 0, 0, 0, 1629, 1, 0, 0, 0, 0, 1631, 1, 0, 0, 0, 0, 1633, 1, 0, 0, 0, 0, 1635, 1, 0, 0, 0, 0, 1637, 1, 0, 0, 0, 0, 1639, 1, 0, 0, 0, 0, 1641, 1, 0, 0, 0, 0, 1643, 1, 0, 0, 0, 0, 1645, 1, 0, 0, 0, 0, 1647, 1, 0, 0, 0, 0, 1649, 1, 0, 0, 0, 0, 1651, 1, 0, 0, 0, 0, 1653, 1, 0, 0, 0, 0, 1655, 1, 0, 0, 0, 0, 1657, 1, 0, 0, 0, 0, 1659, 1, 0, 0, 0, 0, 1661, 1, 0, 0, 0, 0, 1663, 1, 0, 0, 0, 0, 1665, 1, 0, 0, 0, 0, 1667, 1, 0, 0, 0, 0, 1669, 1, 0, 0, 0, 0, 1671, 1, 0, 0, 0, 0, 1673, 1, 0, 0, 0, 0, 1675, 1, 0, 0, 0, 0, 1677, 1, 0, 0, 0, 0, 1679, 1, 0, 0, 0, 0, 1681, 1, 0, 0, 0, 0, 1683, 1, 0, 0, 0, 0, 1685, 1, 0, 0, 0, 0, 1687, 1, 0, 0, 0, 0, 1689, 1, 0, 0, 0, 0, 1691, 1, 0, 0, 0, 0, 1693, 1, 0, 0, 0, 0, 1695, 1, 0, 0, 0, 0, 1697, 1, 0, 0, 0, 0, 1699, 1, 0, 0, 0, 0, 1701, 1, 0, 0, 0, 0, 1703, 1, 0, 0, 0, 0, 1705, 1, 0, 0, 0, 0, 1707, 1, 0, 0, 0, 0, 1709, 1, 0, 0, 0, 0, 1711, 1, 0, 0, 0, 0, 1713, 1, 0, 0, 0, 0, 1715, 1, 0, 0, 0, 0, 1717, 1, 0, 0, 0, 0, 1719, 1, 0, 0, 0, 0, 1721, 1, 0, 0, 0, 0, 1723, 1, 0, 0, 0, 0, 1725, 1, 0, 0, 0, 0, 1727, 1, 0, 0, 0, 1, 1730, 1, 0, 0, 0, 3, 1736, 1, 0, 0, 0, 5, 1750, 1, 0, 0, 0, 7, 1763, 1, 0, 0, 0, 9, 1765, 1, 0, 0, 0, 11, 1767, 1, 0, 0, 0, 13, 1769, 1, 0, 0, 0, 15, 1771, 1, 0, 0, 0, 17, 1773, 1, 0, 0, 0, 19, 1775, 1, 0, 0, 0, 21, 1777, 1, 0, 0, 0, 23, 1779, 1, 0, 0, 0, 25, 1781, 1, 0, 0, 0, 27, 1783, 1, 0, 0, 0, 29, 1785, 1, 0, 0, 0, 31, 1787, 1, 0, 0, 0, 33, 1789, 1, 0, 0, 0, 35, 1791, 1, 0, 0, 0, 37, 1793, 1, 0, 0, 0, 39, 1795, 1, 0, 0, 0, 41, 1797, 1, 0, 0, 0, 43, 1799, 1, 0, 0, 0, 45, 1801, 1, 0, 0, 0, 47, 1803, 1, 0, 0, 0, 49, 1805, 1, 0, 0, 0, 51, 1807, 1, 0, 0, 0, 53, 1809, 1, 0, 0, 0, 55, 1811, 1, 0, 0, 0, 57, 1813, 1, 0, 0, 0, 59, 1815, 1, 0, 0, 0, 61, 1817, 1, 0, 0, 0, 63, 1819, 1, 0, 0, 0, 65, 1832, 1, 0, 0, 0, 67, 1845, 1, 0, 0, 0, 69, 1858, 1, 0, 0, 0, 71, 1860, 1, 0, 0, 0, 73, 1866, 1, 0, 0, 0, 75, 1870, 1, 0, 0, 0, 77, 1879, 1, 0, 0, 0, 79, 1886, 1, 0, 0, 0, 81, 1893, 1, 0, 0, 0, 83, 1897, 1, 0, 0, 0, 85, 1901, 1, 0, 0, 0, 87, 1907, 1, 0, 0, 0, 89, 1913, 1, 0, 0, 0, 91, 1923, 1, 0, 0, 0, 93, 1929, 1, 0, 0, 0, 95, 1933, 1, 0, 0, 0, 97, 1942, 1, 0, 0, 0, 99, 1947, 1, 0, 0, 0, 101, 1953, 1, 0, 0, 0, 103, 1960, 1, 0, 0, 0, 105, 1968, 1, 0, 0, 0, 107, 1976, 1, 0, 0, 0, 109, 1980, 1, 0, 0, 0, 111, 1984, 1, 0, 0, 0, 113, 1988, 1, 0, 0, 0, 115, 1994, 1, 0, 0, 0, 117, 1997, 1, 0, 0, 0, 119, 2001, 1, 0, 0, 0, 121, 2012, 1, 0, 0, 0, 123, 2022, 1, 0, 0, 0, 125, 2033, 1, 0, 0, 0, 127, 2044, 1, 0, 0, 0, 129, 2047, 1, 0, 0, 0, 131, 2054, 1, 0, 0, 0, 133, 2064, 1, 0, 0, 0, 135, 2075, 1, 0, 0, 0, 137, 2089, 1, 0, 0, 0, 139, 2093, 1, 0, 0, 0, 141, 2102, 1, 0, 0, 0, 143, 2109, 1, 0, 0, 0, 145, 2115, 1, 0, 0, 0, 147, 2125, 1, 0, 0, 0, 149, 2133, 1, 0, 0, 0, 151, 2140, 1, 0, 0, 0, 153, 2147, 1, 0, 0, 0, 155, 2151, 1, 0, 0, 0, 157, 2162, 1, 0, 0, 0, 159, 2169, 1, 0, 0, 0, 161, 2174, 1, 0, 0, 0, 163, 2182, 1, 0, 0, 0, 165, 2187, 1, 0, 0, 0, 167, 2195, 1, 0, 0, 0, 169, 2203, 1, 0, 0, 0, 171, 2206, 1, 0, 0, 0, 173, 2208, 1, 0, 0, 0, 175, 2214, 1, 0, 0, 0, 177, 2219, 1, 0, 0, 0, 179, 2226, 1, 0, 0, 0, 181, 2238, 1, 0, 0, 0, 183, 2246, 1, 0, 0, 0, 185, 2255, 1, 0, 0, 0, 187, 2260, 1, 0, 0, 0, 189, 2265, 1, 0, 0, 0, 191, 2273, 1, 0, 0, 0, 193, 2286, 1, 0, 0, 0, 195, 2291, 1, 0, 0, 0, 197, 2299, 1, 0, 0, 0, 199, 2305, 1, 0, 0, 0, 201, 2310, 1, 0, 0, 0, 203, 2322, 1, 0, 0, 0, 205, 2332, 1, 0, 0, 0, 207, 2349, 1, 0, 0, 0, 209, 2371, 1, 0, 0, 0, 211, 2390, 1, 0, 0, 0, 213, 2411, 1, 0, 0, 0, 215, 2427, 1, 0, 0, 0, 217, 2438, 1, 0, 0, 0, 219, 2444, 1, 0, 0, 0, 221, 2452, 1, 0, 0, 0, 223, 2463, 1, 0, 0, 0, 225, 2469, 1, 0, 0, 0, 227, 2482, 1, 0, 0, 0, 229, 2487, 1, 0, 0, 0, 231, 2493, 1, 0, 0, 0, 233, 2501, 1, 0, 0, 0, 235, 2510, 1, 0, 0, 0, 237, 2516, 1, 0, 0, 0, 239, 2524, 1, 0, 0, 0, 241, 2534, 1, 0, 0, 0, 243, 2552, 1, 0, 0, 0, 245, 2567, 1, 0, 0, 0, 247, 2584, 1, 0, 0, 0, 249, 2592, 1, 0, 0, 0, 251, 2599, 1, 0, 0, 0, 253, 2611, 1, 0, 0, 0, 255, 2628, 1, 0, 0, 0, 257, 2650, 1, 0, 0, 0, 259, 2658, 1, 0, 0, 0, 261, 2665, 1, 0, 0, 0, 263, 2675, 1, 0, 0, 0, 265, 2686, 1, 0, 0, 0, 267, 2696, 1, 0, 0, 0, 269, 2713, 1, 0, 0, 0, 271, 2727, 1, 0, 0, 0, 273, 2736, 1, 0, 0, 0, 275, 2744, 1, 0, 0, 0, 277, 2755, 1, 0, 0, 0, 279, 2771, 1, 0, 0, 0, 281, 2782, 1, 0, 0, 0, 283, 2801, 1, 0, 0, 0, 285, 2817, 1, 0, 0, 0, 287, 2835, 1, 0, 0, 0, 289, 2847, 1, 0, 0, 0, 291, 2859, 1, 0, 0, 0, 293, 2868, 1, 0, 0, 0, 295, 2877, 1, 0, 0, 0, 297, 2888, 1, 0, 0, 0, 299, 2896, 1, 0, 0, 0, 301, 2901, 1, 0, 0, 0, 303, 2906, 1, 0, 0, 0, 305, 2920, 1, 0, 0, 0, 307, 2926, 1, 0, 0, 0, 309, 2932, 1, 0, 0, 0, 311, 2942, 1, 0, 0, 0, 313, 2953, 1, 0, 0, 0, 315, 2960, 1, 0, 0, 0, 317, 2969, 1, 0, 0, 0, 319, 2980, 1, 0, 0, 0, 321, 2986, 1, 0, 0, 0, 323, 2990, 1, 0, 0, 0, 325, 2995, 1, 0, 0, 0, 327, 3005, 1, 0, 0, 0, 329, 3013, 1, 0, 0, 0, 331, 3026, 1, 0, 0, 0, 333, 3058, 1, 0, 0, 0, 335, 3071, 1, 0, 0, 0, 337, 3084, 1, 0, 0, 0, 339, 3097, 1, 0, 0, 0, 341, 3115, 1, 0, 0, 0, 343, 3148, 1, 0, 0, 0, 345, 3161, 1, 0, 0, 0, 347, 3168, 1, 0, 0, 0, 349, 3180, 1, 0, 0, 0, 351, 3186, 1, 0, 0, 0, 353, 3191, 1, 0, 0, 0, 355, 3200, 1, 0, 0, 0, 357, 3205, 1, 0, 0, 0, 359, 3228, 1, 0, 0, 0, 361, 3256, 1, 0, 0, 0, 363, 3260, 1, 0, 0, 0, 365, 3271, 1, 0, 0, 0, 367, 3275, 1, 0, 0, 0, 369, 3283, 1, 0, 0, 0, 371, 3291, 1, 0, 0, 0, 373, 3299, 1, 0, 0, 0, 375, 3308, 1, 0, 0, 0, 377, 3318, 1, 0, 0, 0, 379, 3329, 1, 0, 0, 0, 381, 3338, 1, 0, 0, 0, 383, 3346, 1, 0, 0, 0, 385, 3354, 1, 0, 0, 0, 387, 3361, 1, 0, 0, 0, 389, 3368, 1, 0, 0, 0, 391, 3378, 1, 0, 0, 0, 393, 3389, 1, 0, 0, 0, 395, 3400, 1, 0, 0, 0, 397, 3408, 1, 0, 0, 0, 399, 3414, 1, 0, 0, 0, 401, 3420, 1, 0, 0, 0, 403, 3428, 1, 0, 0, 0, 405, 3433, 1, 0, 0, 0, 407, 3442, 1, 0, 0, 0, 409, 3453, 1, 0, 0, 0, 411, 3461, 1, 0, 0, 0, 413, 3472, 1, 0, 0, 0, 415, 3486, 1, 0, 0, 0, 417, 3498, 1, 0, 0, 0, 419, 3509, 1, 0, 0, 0, 421, 3517, 1, 0, 0, 0, 423, 3539, 1, 0, 0, 0, 425, 3547, 1, 0, 0, 0, 427, 3558, 1, 0, 0, 0, 429, 3567, 1, 0, 0, 0, 431, 3576, 1, 0, 0, 0, 433, 3579, 1, 0, 0, 0, 435, 3586, 1, 0, 0, 0, 437, 3593, 1, 0, 0, 0, 439, 3598, 1, 0, 0, 0, 441, 3606, 1, 0, 0, 0, 443, 3623, 1, 0, 0, 0, 445, 3645, 1, 0, 0, 0, 447, 3650, 1, 0, 0, 0, 449, 3658, 1, 0, 0, 0, 451, 3663, 1, 0, 0, 0, 453, 3670, 1, 0, 0, 0, 455, 3679, 1, 0, 0, 0, 457, 3689, 1, 0, 0, 0, 459, 3693, 1, 0, 0, 0, 461, 3702, 1, 0, 0, 0, 463, 3709, 1, 0, 0, 0, 465, 3716, 1, 0, 0, 0, 467, 3722, 1, 0, 0, 0, 469, 3729, 1, 0, 0, 0, 471, 3739, 1, 0, 0, 0, 473, 3747, 1, 0, 0, 0, 475, 3757, 1, 0, 0, 0, 477, 3767, 1, 0, 0, 0, 479, 3772, 1, 0, 0, 0, 481, 3780, 1, 0, 0, 0, 483, 3789, 1, 0, 0, 0, 485, 3796, 1, 0, 0, 0, 487, 3800, 1, 0, 0, 0, 489, 3808, 1, 0, 0, 0, 491, 3817, 1, 0, 0, 0, 493, 3827, 1, 0, 0, 0, 495, 3836, 1, 0, 0, 0, 497, 3844, 1, 0, 0, 0, 499, 3850, 1, 0, 0, 0, 501, 3856, 1, 0, 0, 0, 503, 3863, 1, 0, 0, 0, 505, 3870, 1, 0, 0, 0, 507, 3876, 1, 0, 0, 0, 509, 3882, 1, 0, 0, 0, 511, 3888, 1, 0, 0, 0, 513, 3894, 1, 0, 0, 0, 515, 3904, 1, 0, 0, 0, 517, 3908, 1, 0, 0, 0, 519, 3914, 1, 0, 0, 0, 521, 3922, 1, 0, 0, 0, 523, 3929, 1, 0, 0, 0, 525, 3937, 1, 0, 0, 0, 527, 3945, 1, 0, 0, 0, 529, 3951, 1, 0, 0, 0, 531, 3956, 1, 0, 0, 0, 533, 3963, 1, 0, 0, 0, 535, 3968, 1, 0, 0, 0, 537, 3973, 1, 0, 0, 0, 539, 3982, 1, 0, 0, 0, 541, 3989, 1, 0, 0, 0, 543, 3991, 1, 0, 0, 0, 545, 3999, 1, 0, 0, 0, 547, 4009, 1, 0, 0, 0, 549, 4013, 1, 0, 0, 0, 551, 4020, 1, 0, 0, 0, 553, 4023, 1, 0, 0, 0, 555, 4028, 1, 0, 0, 0, 557, 4034, 1, 0, 0, 0, 559, 4042, 1, 0, 0, 0, 561, 4051, 1, 0, 0, 0, 563, 4057, 1, 0, 0, 0, 565, 4066, 1, 0, 0, 0, 567, 4074, 1, 0, 0, 0, 569, 4081, 1, 0, 0, 0, 571, 4091, 1, 0, 0, 0, 573, 4096, 1, 0, 0, 0, 575, 4101, 1, 0, 0, 0, 577, 4106, 1, 0, 0, 0, 579, 4115, 1, 0, 0, 0, 581, 4122, 1, 0, 0, 0, 583, 4128, 1, 0, 0, 0, 585, 4138, 1, 0, 0, 0, 587, 4148, 1, 0, 0, 0, 589, 4163, 1, 0, 0, 0, 591, 4172, 1, 0, 0, 0, 593, 4175, 1, 0, 0, 0, 595, 4185, 1, 0, 0, 0, 597, 4195, 1, 0, 0, 0, 599, 4201, 1, 0, 0, 0, 601, 4211, 1, 0, 0, 0, 603, 4217, 1, 0, 0, 0, 605, 4226, 1, 0, 0, 0, 607, 4237, 1, 0, 0, 0, 609, 4247, 1, 0, 0, 0, 611, 4253, 1, 0, 0, 0, 613, 4259, 1, 0, 0, 0, 615, 4265, 1, 0, 0, 0, 617, 4277, 1, 0, 0, 0, 619, 4284, 1, 0, 0, 0, 621, 4293, 1, 0, 0, 0, 623, 4306, 1, 0, 0, 0, 625, 4314, 1, 0, 0, 0, 627, 4318, 1, 0, 0, 0, 629, 4326, 1, 0, 0, 0, 631, 4336, 1, 0, 0, 0, 633, 4349, 1, 0, 0, 0, 635, 4358, 1, 0, 0, 0, 637, 4363, 1, 0, 0, 0, 639, 4371, 1, 0, 0, 0, 641, 4374, 1, 0, 0, 0, 643, 4384, 1, 0, 0, 0, 645, 4392, 1, 0, 0, 0, 647, 4397, 1, 0, 0, 0, 649, 4399, 1, 0, 0, 0, 651, 4403, 1, 0, 0, 0, 653, 4414, 1, 0, 0, 0, 655, 4423, 1, 0, 0, 0, 657, 4429, 1, 0, 0, 0, 659, 4441, 1, 0, 0, 0, 661, 4450, 1, 0, 0, 0, 663, 4456, 1, 0, 0, 0, 665, 4461, 1, 0, 0, 0, 667, 4469, 1, 0, 0, 0, 669, 4477, 1, 0, 0, 0, 671, 4483, 1, 0, 0, 0, 673, 4488, 1, 0, 0, 0, 675, 4495, 1, 0, 0, 0, 677, 4500, 1, 0, 0, 0, 679, 4506, 1, 0, 0, 0, 681, 4511, 1, 0, 0, 0, 683, 4517, 1, 0, 0, 0, 685, 4524, 1, 0, 0, 0, 687, 4527, 1, 0, 0, 0, 689, 4532, 1, 0, 0, 0, 691, 4538, 1, 0, 0, 0, 693, 4548, 1, 0, 0, 0, 695, 4563, 1, 0, 0, 0, 697, 4572, 1, 0, 0, 0, 699, 4580, 1, 0, 0, 0, 701, 4585, 1, 0, 0, 0, 703, 4592, 1, 0, 0, 0, 705, 4598, 1, 0, 0, 0, 707, 4600, 1, 0, 0, 0, 709, 4605, 1, 0, 0, 0, 711, 4609, 1, 0, 0, 0, 713, 4617, 1, 0, 0, 0, 715, 4623, 1, 0, 0, 0, 717, 4636, 1, 0, 0, 0, 719, 4644, 1, 0, 0, 0, 721, 4648, 1, 0, 0, 0, 723, 4657, 1, 0, 0, 0, 725, 4664, 1, 0, 0, 0, 727, 4670, 1, 0, 0, 0, 729, 4685, 1, 0, 0, 0, 731, 4706, 1, 0, 0, 0, 733, 4719, 1, 0, 0, 0, 735, 4726, 1, 0, 0, 0, 737, 4730, 1, 0, 0, 0, 739, 4737, 1, 0, 0, 0, 741, 4746, 1, 0, 0, 0, 743, 4750, 1, 0, 0, 0, 745, 4755, 1, 0, 0, 0, 747, 4764, 1, 0, 0, 0, 749, 4771, 1, 0, 0, 0, 751, 4778, 1, 0, 0, 0, 753, 4784, 1, 0, 0, 0, 755, 4789, 1, 0, 0, 0, 757, 4794, 1, 0, 0, 0, 759, 4803, 1, 0, 0, 0, 761, 4809, 1, 0, 0, 0, 763, 4814, 1, 0, 0, 0, 765, 4820, 1, 0, 0, 0, 767, 4829, 1, 0, 0, 0, 769, 4837, 1, 0, 0, 0, 771, 4843, 1, 0, 0, 0, 773, 4849, 1, 0, 0, 0, 775, 4857, 1, 0, 0, 0, 777, 4861, 1, 0, 0, 0, 779, 4866, 1, 0, 0, 0, 781, 4869, 1, 0, 0, 0, 783, 4880, 1, 0, 0, 0, 785, 4893, 1, 0, 0, 0, 787, 4898, 1, 0, 0, 0, 789, 4908, 1, 0, 0, 0, 791, 4919, 1, 0, 0, 0, 793, 4923, 1, 0, 0, 0, 795, 4931, 1, 0, 0, 0, 797, 4938, 1, 0, 0, 0, 799, 4946, 1, 0, 0, 0, 801, 4953, 1, 0, 0, 0, 803, 4958, 1, 0, 0, 0, 805, 4967, 1, 0, 0, 0, 807, 4974, 1, 0, 0, 0, 809, 4980, 1, 0, 0, 0, 811, 4987, 1, 0, 0, 0, 813, 4995, 1, 0, 0, 0, 815, 5002, 1, 0, 0, 0, 817, 5015, 1, 0, 0, 0, 819, 5022, 1, 0, 0, 0, 821, 5025, 1, 0, 0, 0, 823, 5029, 1, 0, 0, 0, 825, 5036, 1, 0, 0, 0, 827, 5041, 1, 0, 0, 0, 829, 5045, 1, 0, 0, 0, 831, 5048, 1, 0, 0, 0, 833, 5053, 1, 0, 0, 0, 835, 5058, 1, 0, 0, 0, 837, 5068, 1, 0, 0, 0, 839, 5077, 1, 0, 0, 0, 841, 5084, 1, 0, 0, 0, 843, 5092, 1, 0, 0, 0, 845, 5095, 1, 0, 0, 0, 847, 5101, 1, 0, 0, 0, 849, 5110, 1, 0, 0, 0, 851, 5121, 1, 0, 0, 0, 853, 5128, 1, 0, 0, 0, 855, 5132, 1, 0, 0, 0, 857, 5138, 1, 0, 0, 0, 859, 5145, 1, 0, 0, 0, 861, 5150, 1, 0, 0, 0, 863, 5159, 1, 0, 0, 0, 865, 5167, 1, 0, 0, 0, 867, 5178, 1, 0, 0, 0, 869, 5184, 1, 0, 0, 0, 871, 5188, 1, 0, 0, 0, 873, 5198, 1, 0, 0, 0, 875, 5213, 1, 0, 0, 0, 877, 5228, 1, 0, 0, 0, 879, 5255, 1, 0, 0, 0, 881, 5282, 1, 0, 0, 0, 883, 5306, 1, 0, 0, 0, 885, 5332, 1, 0, 0, 0, 887, 5343, 1, 0, 0, 0, 889, 5350, 1, 0, 0, 0, 891, 5358, 1, 0, 0, 0, 893, 5368, 1, 0, 0, 0, 895, 5375, 1, 0, 0, 0, 897, 5384, 1, 0, 0, 0, 899, 5389, 1, 0, 0, 0, 901, 5402, 1, 0, 0, 0, 903, 5418, 1, 0, 0, 0, 905, 5434, 1, 0, 0, 0, 907, 5442, 1, 0, 0, 0, 909, 5448, 1, 0, 0, 0, 911, 5454, 1, 0, 0, 0, 913, 5458, 1, 0, 0, 0, 915, 5467, 1, 0, 0, 0, 917, 5475, 1, 0, 0, 0, 919, 5481, 1, 0, 0, 0, 921, 5491, 1, 0, 0, 0, 923, 5501, 1, 0, 0, 0, 925, 5508, 1, 0, 0, 0, 927, 5517, 1, 0, 0, 0, 929, 5525, 1, 0, 0, 0, 931, 5534, 1, 0, 0, 0, 933, 5543, 1, 0, 0, 0, 935, 5551, 1, 0, 0, 0, 937, 5557, 1, 0, 0, 0, 939, 5568, 1, 0, 0, 0, 941, 5579, 1, 0, 0, 0, 943, 5589, 1, 0, 0, 0, 945, 5596, 1, 0, 0, 0, 947, 5608, 1, 0, 0, 0, 949, 5614, 1, 0, 0, 0, 951, 5620, 1, 0, 0, 0, 953, 5625, 1, 0, 0, 0, 955, 5630, 1, 0, 0, 0, 957, 5636, 1, 0, 0, 0, 959, 5641, 1, 0, 0, 0, 961, 5650, 1, 0, 0, 0, 963, 5658, 1, 0, 0, 0, 965, 5668, 1, 0, 0, 0, 967, 5672, 1, 0, 0, 0, 969, 5683, 1, 0, 0, 0, 971, 5695, 1, 0, 0, 0, 973, 5703, 1, 0, 0, 0, 975, 5713, 1, 0, 0, 0, 977, 5723, 1, 0, 0, 0, 979, 5734, 1, 0, 0, 0, 981, 5749, 1, 0, 0, 0, 983, 5757, 1, 0, 0, 0, 985, 5768, 1, 0, 0, 0, 987, 5777, 1, 0, 0, 0, 989, 5786, 1, 0, 0, 0, 991, 5795, 1, 0, 0, 0, 993, 5803, 1, 0, 0, 0, 995, 5812, 1, 0, 0, 0, 997, 5820, 1, 0, 0, 0, 999, 5827, 1, 0, 0, 0, 1001, 5838, 1, 0, 0, 0, 1003, 5846, 1, 0, 0, 0, 1005, 5854, 1, 0, 0, 0, 1007, 5860, 1, 0, 0, 0, 1009, 5868, 1, 0, 0, 0, 1011, 5877, 1, 0, 0, 0, 1013, 5884, 1, 0, 0, 0, 1015, 5891, 1, 0, 0, 0, 1017, 5912, 1, 0, 0, 0, 1019, 5928, 1, 0, 0, 0, 1021, 5950, 1, 0, 0, 0, 1023, 5968, 1, 0, 0, 0, 1025, 5978, 1, 0, 0, 0, 1027, 5986, 1, 0, 0, 0, 1029, 5993, 1, 0, 0, 0, 1031, 5999, 1, 0, 0, 0, 1033, 6004, 1, 0, 0, 0, 1035, 6013, 1, 0, 0, 0, 1037, 6020, 1, 0, 0, 0, 1039, 6028, 1, 0, 0, 0, 1041, 6044, 1, 0, 0, 0, 1043, 6057, 1, 0, 0, 0, 1045, 6072, 1, 0, 0, 0, 1047, 6076, 1, 0, 0, 0, 1049, 6086, 1, 0, 0, 0, 1051, 6097, 1, 0, 0, 0, 1053, 6102, 1, 0, 0, 0, 1055, 6107, 1, 0, 0, 0, 1057, 6117, 1, 0, 0, 0, 1059, 6123, 1, 0, 0, 0, 1061, 6130, 1, 0, 0, 0, 1063, 6142, 1, 0, 0, 0, 1065, 6148, 1, 0, 0, 0, 1067, 6162, 1, 0, 0, 0, 1069, 6173, 1, 0, 0, 0, 1071, 6186, 1, 0, 0, 0, 1073, 6193, 1, 0, 0, 0, 1075, 6200, 1, 0, 0, 0, 1077, 6207, 1, 0, 0, 0, 1079, 6215, 1, 0, 0, 0, 1081, 6224, 1, 0, 0, 0, 1083, 6231, 1, 0, 0, 0, 1085, 6236, 1, 0, 0, 0, 1087, 6246, 1, 0, 0, 0, 1089, 6255, 1, 0, 0, 0, 1091, 6265, 1, 0, 0, 0, 1093, 6278, 1, 0, 0, 0, 1095, 6290, 1, 0, 0, 0, 1097, 6298, 1, 0, 0, 0, 1099, 6311, 1, 0, 0, 0, 1101, 6315, 1, 0, 0, 0, 1103, 6321, 1, 0, 0, 0, 1105, 6326, 1, 0, 0, 0, 1107, 6332, 1, 0, 0, 0, 1109, 6337, 1, 0, 0, 0, 1111, 6345, 1, 0, 0, 0, 1113, 6352, 1, 0, 0, 0, 1115, 6357, 1, 0, 0, 0, 1117, 6362, 1, 0, 0, 0, 1119, 6371, 1, 0, 0, 0, 1121, 6380, 1, 0, 0, 0, 1123, 6385, 1, 0, 0, 0, 1125, 6392, 1, 0, 0, 0, 1127, 6398, 1, 0, 0, 0, 1129, 6407, 1, 0, 0, 0, 1131, 6421, 1, 0, 0, 0, 1133, 6434, 1, 0, 0, 0, 1135, 6438, 1, 0, 0, 0, 1137, 6446, 1, 0, 0, 0, 1139, 6455, 1, 0, 0, 0, 1141, 6468, 1, 0, 0, 0, 1143, 6477, 1, 0, 0, 0, 1145, 6488, 1, 0, 0, 0, 1147, 6493, 1, 0, 0, 0, 1149, 6500, 1, 0, 0, 0, 1151, 6506, 1, 0, 0, 0, 1153, 6512, 1, 0, 0, 0, 1155, 6522, 1, 0, 0, 0, 1157, 6529, 1, 0, 0, 0, 1159, 6540, 1, 0, 0, 0, 1161, 6551, 1, 0, 0, 0, 1163, 6563, 1, 0, 0, 0, 1165, 6569, 1, 0, 0, 0, 1167, 6576, 1, 0, 0, 0, 1169, 6584, 1, 0, 0, 0, 1171, 6591, 1, 0, 0, 0, 1173, 6601, 1, 0, 0, 0, 1175, 6607, 1, 0, 0, 0, 1177, 6623, 1, 0, 0, 0, 1179, 6631, 1, 0, 0, 0, 1181, 6643, 1, 0, 0, 0, 1183, 6656, 1, 0, 0, 0, 1185, 6666, 1, 0, 0, 0, 1187, 6670, 1, 0, 0, 0, 1189, 6680, 1, 0, 0, 0, 1191, 6686, 1, 0, 0, 0, 1193, 6693, 1, 0, 0, 0, 1195, 6705, 1, 0, 0, 0, 1197, 6711, 1, 0, 0, 0, 1199, 6722, 1, 0, 0, 0, 1201, 6734, 1, 0, 0, 0, 1203, 6745, 1, 0, 0, 0, 1205, 6750, 1, 0, 0, 0, 1207, 6759, 1, 0, 0, 0, 1209, 6769, 1, 0, 0, 0, 1211, 6779, 1, 0, 0, 0, 1213, 6784, 1, 0, 0, 0, 1215, 6789, 1, 0, 0, 0, 1217, 6794, 1, 0, 0, 0, 1219, 6799, 1, 0, 0, 0, 1221, 6809, 1, 0, 0, 0, 1223, 6823, 1, 0, 0, 0, 1225, 6839, 1, 0, 0, 0, 1227, 6846, 1, 0, 0, 0, 1229, 6849, 1, 0, 0, 0, 1231, 6855, 1, 0, 0, 0, 1233, 6871, 1, 0, 0, 0, 1235, 6880, 1, 0, 0, 0, 1237, 6892, 1, 0, 0, 0, 1239, 6911, 1, 0, 0, 0, 1241, 6934, 1, 0, 0, 0, 1243, 6959, 1, 0, 0, 0, 1245, 6969, 1, 0, 0, 0, 1247, 6980, 1, 0, 0, 0, 1249, 6990, 1, 0, 0, 0, 1251, 7002, 1, 0, 0, 0, 1253, 7008, 1, 0, 0, 0, 1255, 7016, 1, 0, 0, 0, 1257, 7032, 1, 0, 0, 0, 1259, 7045, 1, 0, 0, 0, 1261, 7060, 1, 0, 0, 0, 1263, 7065, 1, 0, 0, 0, 1265, 7070, 1, 0, 0, 0, 1267, 7079, 1, 0, 0, 0, 1269, 7087, 1, 0, 0, 0, 1271, 7092, 1, 0, 0, 0, 1273, 7100, 1, 0, 0, 0, 1275, 7110, 1, 0, 0, 0, 1277, 7122, 1, 0, 0, 0, 1279, 7128, 1, 0, 0, 0, 1281, 7140, 1, 0, 0, 0, 1283, 7146, 1, 0, 0, 0, 1285, 7153, 1, 0, 0, 0, 1287, 7161, 1, 0, 0, 0, 1289, 7170, 1, 0, 0, 0, 1291, 7178, 1, 0, 0, 0, 1293, 7185, 1, 0, 0, 0, 1295, 7191, 1, 0, 0, 0, 1297, 7198, 1, 0, 0, 0, 1299, 7204, 1, 0, 0, 0, 1301, 7210, 1, 0, 0, 0, 1303, 7215, 1, 0, 0, 0, 1305, 7241, 1, 0, 0, 0, 1307, 7264, 1, 0, 0, 0, 1309, 7287, 1, 0, 0, 0, 1311, 7312, 1, 0, 0, 0, 1313, 7318, 1, 0, 0, 0, 1315, 7325, 1, 0, 0, 0, 1317, 7331, 1, 0, 0, 0, 1319, 7340, 1, 0, 0, 0, 1321, 7350, 1, 0, 0, 0, 1323, 7356, 1, 0, 0, 0, 1325, 7363, 1, 0, 0, 0, 1327, 7371, 1, 0, 0, 0, 1329, 7380, 1, 0, 0, 0, 1331, 7388, 1, 0, 0, 0, 1333, 7397, 1, 0, 0, 0, 1335, 7406, 1, 0, 0, 0, 1337, 7414, 1, 0, 0, 0, 1339, 7422, 1, 0, 0, 0, 1341, 7427, 1, 0, 0, 0, 1343, 7436, 1, 0, 0, 0, 1345, 7441, 1, 0, 0, 0, 1347, 7450, 1, 0, 0, 0, 1349, 7456, 1, 0, 0, 0, 1351, 7469, 1, 0, 0, 0, 1353, 7476, 1, 0, 0, 0, 1355, 7481, 1, 0, 0, 0, 1357, 7488, 1, 0, 0, 0, 1359, 7496, 1, 0, 0, 0, 1361, 7501, 1, 0, 0, 0, 1363, 7507, 1, 0, 0, 0, 1365, 7512, 1, 0, 0, 0, 1367, 7517, 1, 0, 0, 0, 1369, 7521, 1, 0, 0, 0, 1371, 7526, 1, 0, 0, 0, 1373, 7536, 1, 0, 0, 0, 1375, 7548, 1, 0, 0, 0, 1377, 7559, 1, 0, 0, 0, 1379, 7572, 1, 0, 0, 0, 1381, 7580, 1, 0, 0, 0, 1383, 7590, 1, 0, 0, 0, 1385, 7596, 1, 0, 0, 0, 1387, 7604, 1, 0, 0, 0, 1389, 7616, 1, 0, 0, 0, 1391, 7630, 1, 0, 0, 0, 1393, 7640, 1, 0, 0, 0, 1395, 7652, 1, 0, 0, 0, 1397, 7658, 1, 0, 0, 0, 1399, 7664, 1, 0, 0, 0, 1401, 7671, 1, 0, 0, 0, 1403, 7681, 1, 0, 0, 0, 1405, 7697, 1, 0, 0, 0, 1407, 7709, 1, 0, 0, 0, 1409, 7720, 1, 0, 0, 0, 1411, 7733, 1, 0, 0, 0, 1413, 7742, 1, 0, 0, 0, 1415, 7749, 1, 0, 0, 0, 1417, 7758, 1, 0, 0, 0, 1419, 7765, 1, 0, 0, 0, 1421, 7773, 1, 0, 0, 0, 1423, 7784, 1, 0, 0, 0, 1425, 7801, 1, 0, 0, 0, 1427, 7811, 1, 0, 0, 0, 1429, 7818, 1, 0, 0, 0, 1431, 7827, 1, 0, 0, 0, 1433, 7840, 1, 0, 0, 0, 1435, 7845, 1, 0, 0, 0, 1437, 7852, 1, 0, 0, 0, 1439, 7861, 1, 0, 0, 0, 1441, 7864, 1, 0, 0, 0, 1443, 7871, 1, 0, 0, 0, 1445, 7882, 1, 0, 0, 0, 1447, 7891, 1, 0, 0, 0, 1449, 7900, 1, 0, 0, 0, 1451, 7908, 1, 0, 0, 0, 1453, 7926, 1, 0, 0, 0, 1455, 7938, 1, 0, 0, 0, 1457, 7944, 1, 0, 0, 0, 1459, 7952, 1, 0, 0, 0, 1461, 7959, 1, 0, 0, 0, 1463, 7965, 1, 0, 0, 0, 1465, 7970, 1, 0, 0, 0, 1467, 7975, 1, 0, 0, 0, 1469, 7982, 1, 0, 0, 0, 1471, 7986, 1, 0, 0, 0, 1473, 7991, 1, 0, 0, 0, 1475, 8004, 1, 0, 0, 0, 1477, 8011, 1, 0, 0, 0, 1479, 8024, 1, 0, 0, 0, 1481, 8032, 1, 0, 0, 0, 1483, 8041, 1, 0, 0, 0, 1485, 8052, 1, 0, 0, 0, 1487, 8060, 1, 0, 0, 0, 1489, 8067, 1, 0, 0, 0, 1491, 8074, 1, 0, 0, 0, 1493, 8081, 1, 0, 0, 0, 1495, 8088, 1, 0, 0, 0, 1497, 8094, 1, 0, 0, 0, 1499, 8102, 1, 0, 0, 0, 1501, 8112, 1, 0, 0, 0, 1503, 8124, 1, 0, 0, 0, 1505, 8129, 1, 0, 0, 0, 1507, 8133, 1, 0, 0, 0, 1509, 8139, 1, 0, 0, 0, 1511, 8157, 1, 0, 0, 0, 1513, 8162, 1, 0, 0, 0, 1515, 8169, 1, 0, 0, 0, 1517, 8176, 1, 0, 0, 0, 1519, 8183, 1, 0, 0, 0, 1521, 8188, 1, 0, 0, 0, 1523, 8193, 1, 0, 0, 0, 1525, 8198, 1, 0, 0, 0, 1527, 8203, 1, 0, 0, 0, 1529, 8208, 1, 0, 0, 0, 1531, 8214, 1, 0, 0, 0, 1533, 8219, 1, 0, 0, 0, 1535, 8224, 1, 0, 0, 0, 1537, 8232, 1, 0, 0, 0, 1539, 8241, 1, 0, 0, 0, 1541, 8247, 1, 0, 0, 0, 1543, 8254, 1, 0, 0, 0, 1545, 8260, 1, 0, 0, 0, 1547, 8268, 1, 0, 0, 0, 1549, 8276, 1, 0, 0, 0, 1551, 8283, 1, 0, 0, 0, 1553, 8291, 1, 0, 0, 0, 1555, 8299, 1, 0, 0, 0, 1557, 8307, 1, 0, 0, 0, 1559, 8319, 1, 0, 0, 0, 1561, 8326, 1, 0, 0, 0, 1563, 8331, 1, 0, 0, 0, 1565, 8343, 1, 0, 0, 0, 1567, 8350, 1, 0, 0, 0, 1569, 8358, 1, 0, 0, 0, 1571, 8367, 1, 0, 0, 0, 1573, 8381, 1, 0, 0, 0, 1575, 8386, 1, 0, 0, 0, 1577, 8393, 1, 0, 0, 0, 1579, 8397, 1, 0, 0, 0, 1581, 8399, 1, 0, 0, 0, 1583, 8401, 1, 0, 0, 0, 1585, 8404, 1, 0, 0, 0, 1587, 8406, 1, 0, 0, 0, 1589, 8409, 1, 0, 0, 0, 1591, 8411, 1, 0, 0, 0, 1593, 8413, 1, 0, 0, 0, 1595, 8415, 1, 0, 0, 0, 1597, 8417, 1, 0, 0, 0, 1599, 8419, 1, 0, 0, 0, 1601, 8429, 1, 0, 0, 0, 1603, 8433, 1, 0, 0, 0, 1605, 8461, 1, 0, 0, 0, 1607, 8476, 1, 0, 0, 0, 1609, 8479, 1, 0, 0, 0, 1611, 8481, 1, 0, 0, 0, 1613, 8483, 1, 0, 0, 0, 1615, 8485, 1, 0, 0, 0, 1617, 8492, 1, 0, 0, 0, 1619, 8498, 1, 0, 0, 0, 1621, 8505, 1, 0, 0, 0, 1623, 8507, 1, 0, 0, 0, 1625, 8510, 1, 0, 0, 0, 1627, 8513, 1, 0, 0, 0, 1629, 8516, 1, 0, 0, 0, 1631, 8519, 1, 0, 0, 0, 1633, 8521, 1, 0, 0, 0, 1635, 8523, 1, 0, 0, 0, 1637, 8526, 1, 0, 0, 0, 1639, 8529, 1, 0, 0, 0, 1641, 8531, 1, 0, 0, 0, 1643, 8533, 1, 0, 0, 0, 1645, 8536, 1, 0, 0, 0, 1647, 8538, 1, 0, 0, 0, 1649, 8541, 1, 0, 0, 0, 1651, 8544, 1, 0, 0, 0, 1653, 8546, 1, 0, 0, 0, 1655, 8549, 1, 0, 0, 0, 1657, 8552, 1, 0, 0, 0, 1659, 8556, 1, 0, 0, 0, 1661, 8559, 1, 0, 0, 0, 1663, 8562, 1, 0, 0, 0, 1665, 8566, 1, 0, 0, 0, 1667, 8570, 1, 0, 0, 0, 1669, 8572, 1, 0, 0, 0, 1671, 8575, 1, 0, 0, 0, 1673, 8578, 1, 0, 0, 0, 1675, 8581, 1, 0, 0, 0, 1677, 8584, 1, 0, 0, 0, 1679, 8588, 1, 0, 0, 0, 1681, 8591, 1, 0, 0, 0, 1683, 8595, 1, 0, 0, 0, 1685, 8599, 1, 0, 0, 0, 1687, 8601, 1, 0, 0, 0, 1689, 8603, 1, 0, 0, 0, 1691, 8605, 1, 0, 0, 0, 1693, 8608, 1, 0, 0, 0, 1695, 8612, 1, 0, 0, 0, 1697, 8615, 1, 0, 0, 0, 1699, 8617, 1, 0, 0, 0, 1701, 8619, 1, 0, 0, 0, 1703, 8622, 1, 0, 0, 0, 1705, 8625, 1, 0, 0, 0, 1707, 8628, 1, 0, 0, 0, 1709, 8631, 1, 0, 0, 0, 1711, 8633, 1, 0, 0, 0, 1713, 8635, 1, 0, 0, 0, 1715, 8638, 1, 0, 0, 0, 1717, 8643, 1, 0, 0, 0, 1719, 8647, 1, 0, 0, 0, 1721, 8652, 1, 0, 0, 0, 1723, 8656, 1, 0, 0, 0, 1725, 8659, 1, 0, 0, 0, 1727, 8662, 1, 0, 0, 0, 1729, 1731, 7, 0, 0, 0, 1730, 1729, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1730, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1735, 6, 0, 0, 0, 1735, 2, 1, 0, 0, 0, 1736, 1737, 5, 47, 0, 0, 1737, 1738, 5, 42, 0, 0, 1738, 1742, 1, 0, 0, 0, 1739, 1741, 9, 0, 0, 0, 1740, 1739, 1, 0, 0, 0, 1741, 1744, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1742, 1740, 1, 0, 0, 0, 1743, 1745, 1, 0, 0, 0, 1744, 1742, 1, 0, 0, 0, 1745, 1746, 5, 42, 0, 0, 1746, 1747, 5, 47, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 6, 1, 1, 0, 1749, 4, 1, 0, 0, 0, 1750, 1751, 5, 45, 0, 0, 1751, 1752, 5, 45, 0, 0, 1752, 1756, 1, 0, 0, 0, 1753, 1755, 9, 0, 0, 0, 1754, 1753, 1, 0, 0, 0, 1755, 1758, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1756, 1754, 1, 0, 0, 0, 1757, 1759, 1, 0, 0, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1760, 5, 10, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 6, 2, 1, 0, 1762, 6, 1, 0, 0, 0, 1763, 1764, 7, 1, 0, 0, 1764, 8, 1, 0, 0, 0, 1765, 1766, 7, 2, 0, 0, 1766, 10, 1, 0, 0, 0, 1767, 1768, 7, 3, 0, 0, 1768, 12, 1, 0, 0, 0, 1769, 1770, 7, 4, 0, 0, 1770, 14, 1, 0, 0, 0, 1771, 1772, 7, 5, 0, 0, 1772, 16, 1, 0, 0, 0, 1773, 1774, 7, 6, 0, 0, 1774, 18, 1, 0, 0, 0, 1775, 1776, 7, 7, 0, 0, 1776, 20, 1, 0, 0, 0, 1777, 1778, 7, 8, 0, 0, 1778, 22, 1, 0, 0, 0, 1779, 1780, 7, 9, 0, 0, 1780, 24, 1, 0, 0, 0, 1781, 1782, 7, 10, 0, 0, 1782, 26, 1, 0, 0, 0, 1783, 1784, 7, 11, 0, 0, 1784, 28, 1, 0, 0, 0, 1785, 1786, 7, 12, 0, 0, 1786, 30, 1, 0, 0, 0, 1787, 1788, 7, 13, 0, 0, 1788, 32, 1, 0, 0, 0, 1789, 1790, 7, 14, 0, 0, 1790, 34, 1, 0, 0, 0, 1791, 1792, 7, 15, 0, 0, 1792, 36, 1, 0, 0, 0, 1793, 1794, 7, 16, 0, 0, 1794, 38, 1, 0, 0, 0, 1795, 1796, 7, 17, 0, 0, 1796, 40, 1, 0, 0, 0, 1797, 1798, 7, 18, 0, 0, 1798, 42, 1, 0, 0, 0, 1799, 1800, 7, 19, 0, 0, 1800, 44, 1, 0, 0, 0, 1801, 1802, 7, 20, 0, 0, 1802, 46, 1, 0, 0, 0, 1803, 1804, 7, 21, 0, 0, 1804, 48, 1, 0, 0, 0, 1805, 1806, 7, 22, 0, 0, 1806, 50, 1, 0, 0, 0, 1807, 1808, 7, 23, 0, 0, 1808, 52, 1, 0, 0, 0, 1809, 1810, 7, 24, 0, 0, 1810, 54, 1, 0, 0, 0, 1811, 1812, 7, 25, 0, 0, 1812, 56, 1, 0, 0, 0, 1813, 1814, 7, 26, 0, 0, 1814, 58, 1, 0, 0, 0, 1815, 1816, 7, 27, 0, 0, 1816, 60, 1, 0, 0, 0, 1817, 1818, 7, 28, 0, 0, 1818, 62, 1, 0, 0, 0, 1819, 1827, 5, 34, 0, 0, 1820, 1821, 5, 92, 0, 0, 1821, 1826, 9, 0, 0, 0, 1822, 1823, 5, 34, 0, 0, 1823, 1826, 5, 34, 0, 0, 1824, 1826, 8, 29, 0, 0, 1825, 1820, 1, 0, 0, 0, 1825, 1822, 1, 0, 0, 0, 1825, 1824, 1, 0, 0, 0, 1826, 1829, 1, 0, 0, 0, 1827, 1825, 1, 0, 0, 0, 1827, 1828, 1, 0, 0, 0, 1828, 1830, 1, 0, 0, 0, 1829, 1827, 1, 0, 0, 0, 1830, 1831, 5, 34, 0, 0, 1831, 64, 1, 0, 0, 0, 1832, 1840, 5, 39, 0, 0, 1833, 1834, 5, 92, 0, 0, 1834, 1839, 9, 0, 0, 0, 1835, 1836, 5, 39, 0, 0, 1836, 1839, 5, 39, 0, 0, 1837, 1839, 8, 30, 0, 0, 1838, 1833, 1, 0, 0, 0, 1838, 1835, 1, 0, 0, 0, 1838, 1837, 1, 0, 0, 0, 1839, 1842, 1, 0, 0, 0, 1840, 1838, 1, 0, 0, 0, 1840, 1841, 1, 0, 0, 0, 1841, 1843, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1843, 1844, 5, 39, 0, 0, 1844, 66, 1, 0, 0, 0, 1845, 1853, 5, 96, 0, 0, 1846, 1847, 5, 92, 0, 0, 1847, 1852, 9, 0, 0, 0, 1848, 1849, 5, 96, 0, 0, 1849, 1852, 5, 96, 0, 0, 1850, 1852, 8, 31, 0, 0, 1851, 1846, 1, 0, 0, 0, 1851, 1848, 1, 0, 0, 0, 1851, 1850, 1, 0, 0, 0, 1852, 1855, 1, 0, 0, 0, 1853, 1851, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1856, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1856, 1857, 5, 96, 0, 0, 1857, 68, 1, 0, 0, 0, 1858, 1859, 3, 7, 3, 0, 1859, 70, 1, 0, 0, 0, 1860, 1861, 3, 7, 3, 0, 1861, 1862, 3, 9, 4, 0, 1862, 1863, 3, 35, 17, 0, 1863, 1864, 3, 41, 20, 0, 1864, 1865, 3, 45, 22, 0, 1865, 72, 1, 0, 0, 0, 1866, 1867, 3, 7, 3, 0, 1867, 1868, 3, 9, 4, 0, 1868, 1869, 3, 43, 21, 0, 1869, 74, 1, 0, 0, 0, 1870, 1871, 3, 7, 3, 0, 1871, 1872, 3, 9, 4, 0, 1872, 1873, 3, 43, 21, 0, 1873, 1874, 3, 35, 17, 0, 1874, 1875, 3, 29, 14, 0, 1875, 1876, 3, 47, 23, 0, 1876, 1877, 3, 45, 22, 0, 1877, 1878, 3, 15, 7, 0, 1878, 76, 1, 0, 0, 0, 1879, 1880, 3, 7, 3, 0, 1880, 1881, 3, 11, 5, 0, 1881, 1882, 3, 11, 5, 0, 1882, 1883, 3, 15, 7, 0, 1883, 1884, 3, 43, 21, 0, 1884, 1885, 3, 43, 21, 0, 1885, 78, 1, 0, 0, 0, 1886, 1887, 3, 7, 3, 0, 1887, 1888, 3, 11, 5, 0, 1888, 1889, 3, 45, 22, 0, 1889, 1890, 3, 23, 11, 0, 1890, 1891, 3, 35, 17, 0, 1891, 1892, 3, 33, 16, 0, 1892, 80, 1, 0, 0, 0, 1893, 1894, 3, 7, 3, 0, 1894, 1895, 3, 13, 6, 0, 1895, 1896, 3, 7, 3, 0, 1896, 82, 1, 0, 0, 0, 1897, 1898, 3, 7, 3, 0, 1898, 1899, 3, 13, 6, 0, 1899, 1900, 3, 13, 6, 0, 1900, 84, 1, 0, 0, 0, 1901, 1902, 3, 7, 3, 0, 1902, 1903, 3, 13, 6, 0, 1903, 1904, 3, 31, 15, 0, 1904, 1905, 3, 23, 11, 0, 1905, 1906, 3, 33, 16, 0, 1906, 86, 1, 0, 0, 0, 1907, 1908, 3, 7, 3, 0, 1908, 1909, 3, 17, 8, 0, 1909, 1910, 3, 45, 22, 0, 1910, 1911, 3, 15, 7, 0, 1911, 1912, 3, 41, 20, 0, 1912, 88, 1, 0, 0, 0, 1913, 1914, 3, 7, 3, 0, 1914, 1915, 3, 19, 9, 0, 1915, 1916, 3, 19, 9, 0, 1916, 1917, 3, 41, 20, 0, 1917, 1918, 3, 15, 7, 0, 1918, 1919, 3, 19, 9, 0, 1919, 1920, 3, 7, 3, 0, 1920, 1921, 3, 45, 22, 0, 1921, 1922, 3, 15, 7, 0, 1922, 90, 1, 0, 0, 0, 1923, 1924, 3, 7, 3, 0, 1924, 1925, 3, 29, 14, 0, 1925, 1926, 3, 23, 11, 0, 1926, 1927, 3, 7, 3, 0, 1927, 1928, 3, 43, 21, 0, 1928, 92, 1, 0, 0, 0, 1929, 1930, 3, 7, 3, 0, 1930, 1931, 3, 29, 14, 0, 1931, 1932, 3, 29, 14, 0, 1932, 94, 1, 0, 0, 0, 1933, 1934, 3, 7, 3, 0, 1934, 1935, 3, 29, 14, 0, 1935, 1936, 3, 29, 14, 0, 1936, 1937, 3, 35, 17, 0, 1937, 1938, 3, 11, 5, 0, 1938, 1939, 3, 7, 3, 0, 1939, 1940, 3, 45, 22, 0, 1940, 1941, 3, 15, 7, 0, 1941, 96, 1, 0, 0, 0, 1942, 1943, 3, 7, 3, 0, 1943, 1944, 3, 29, 14, 0, 1944, 1945, 3, 43, 21, 0, 1945, 1946, 3, 35, 17, 0, 1946, 98, 1, 0, 0, 0, 1947, 1948, 3, 7, 3, 0, 1948, 1949, 3, 29, 14, 0, 1949, 1950, 3, 45, 22, 0, 1950, 1951, 3, 15, 7, 0, 1951, 1952, 3, 41, 20, 0, 1952, 100, 1, 0, 0, 0, 1953, 1954, 3, 7, 3, 0, 1954, 1955, 3, 29, 14, 0, 1955, 1956, 3, 51, 25, 0, 1956, 1957, 3, 7, 3, 0, 1957, 1958, 3, 55, 27, 0, 1958, 1959, 3, 43, 21, 0, 1959, 102, 1, 0, 0, 0, 1960, 1961, 3, 7, 3, 0, 1961, 1962, 3, 33, 16, 0, 1962, 1963, 3, 7, 3, 0, 1963, 1964, 3, 29, 14, 0, 1964, 1965, 3, 55, 27, 0, 1965, 1966, 3, 43, 21, 0, 1966, 1967, 3, 15, 7, 0, 1967, 104, 1, 0, 0, 0, 1968, 1969, 3, 7, 3, 0, 1969, 1970, 3, 33, 16, 0, 1970, 1971, 3, 7, 3, 0, 1971, 1972, 3, 29, 14, 0, 1972, 1973, 3, 55, 27, 0, 1973, 1974, 3, 57, 28, 0, 1974, 1975, 3, 15, 7, 0, 1975, 106, 1, 0, 0, 0, 1976, 1977, 3, 7, 3, 0, 1977, 1978, 3, 33, 16, 0, 1978, 1979, 3, 13, 6, 0, 1979, 108, 1, 0, 0, 0, 1980, 1981, 3, 7, 3, 0, 1981, 1982, 3, 33, 16, 0, 1982, 1983, 3, 55, 27, 0, 1983, 110, 1, 0, 0, 0, 1984, 1985, 3, 7, 3, 0, 1985, 1986, 3, 41, 20, 0, 1986, 1987, 3, 15, 7, 0, 1987, 112, 1, 0, 0, 0, 1988, 1989, 3, 7, 3, 0, 1989, 1990, 3, 41, 20, 0, 1990, 1991, 3, 41, 20, 0, 1991, 1992, 3, 7, 3, 0, 1992, 1993, 3, 55, 27, 0, 1993, 114, 1, 0, 0, 0, 1994, 1995, 3, 7, 3, 0, 1995, 1996, 3, 43, 21, 0, 1996, 116, 1, 0, 0, 0, 1997, 1998, 3, 7, 3, 0, 1998, 1999, 3, 43, 21, 0, 1999, 2000, 3, 11, 5, 0, 2000, 118, 1, 0, 0, 0, 2001, 2002, 3, 7, 3, 0, 2002, 2003, 3, 43, 21, 0, 2003, 2004, 3, 15, 7, 0, 2004, 2005, 3, 33, 16, 0, 2005, 2006, 3, 43, 21, 0, 2006, 2007, 3, 23, 11, 0, 2007, 2008, 3, 45, 22, 0, 2008, 2009, 3, 23, 11, 0, 2009, 2010, 3, 49, 24, 0, 2010, 2011, 3, 15, 7, 0, 2011, 120, 1, 0, 0, 0, 2012, 2013, 3, 7, 3, 0, 2013, 2014, 3, 43, 21, 0, 2014, 2015, 3, 43, 21, 0, 2015, 2016, 3, 15, 7, 0, 2016, 2017, 3, 41, 20, 0, 2017, 2018, 3, 45, 22, 0, 2018, 2019, 3, 23, 11, 0, 2019, 2020, 3, 35, 17, 0, 2020, 2021, 3, 33, 16, 0, 2021, 122, 1, 0, 0, 0, 2022, 2023, 3, 7, 3, 0, 2023, 2024, 3, 43, 21, 0, 2024, 2025, 3, 43, 21, 0, 2025, 2026, 3, 23, 11, 0, 2026, 2027, 3, 19, 9, 0, 2027, 2028, 3, 33, 16, 0, 2028, 2029, 3, 31, 15, 0, 2029, 2030, 3, 15, 7, 0, 2030, 2031, 3, 33, 16, 0, 2031, 2032, 3, 45, 22, 0, 2032, 124, 1, 0, 0, 0, 2033, 2034, 3, 7, 3, 0, 2034, 2035, 3, 43, 21, 0, 2035, 2036, 3, 55, 27, 0, 2036, 2037, 3, 31, 15, 0, 2037, 2038, 3, 31, 15, 0, 2038, 2039, 3, 15, 7, 0, 2039, 2040, 3, 45, 22, 0, 2040, 2041, 3, 41, 20, 0, 2041, 2042, 3, 23, 11, 0, 2042, 2043, 3, 11, 5, 0, 2043, 126, 1, 0, 0, 0, 2044, 2045, 3, 7, 3, 0, 2045, 2046, 3, 45, 22, 0, 2046, 128, 1, 0, 0, 0, 2047, 2048, 3, 7, 3, 0, 2048, 2049, 3, 45, 22, 0, 2049, 2050, 3, 35, 17, 0, 2050, 2051, 3, 31, 15, 0, 2051, 2052, 3, 23, 11, 0, 2052, 2053, 3, 11, 5, 0, 2053, 130, 1, 0, 0, 0, 2054, 2055, 3, 7, 3, 0, 2055, 2056, 3, 45, 22, 0, 2056, 2057, 3, 45, 22, 0, 2057, 2058, 3, 41, 20, 0, 2058, 2059, 3, 23, 11, 0, 2059, 2060, 3, 9, 4, 0, 2060, 2061, 3, 47, 23, 0, 2061, 2062, 3, 45, 22, 0, 2062, 2063, 3, 15, 7, 0, 2063, 132, 1, 0, 0, 0, 2064, 2065, 3, 7, 3, 0, 2065, 2066, 3, 45, 22, 0, 2066, 2067, 3, 45, 22, 0, 2067, 2068, 3, 41, 20, 0, 2068, 2069, 3, 23, 11, 0, 2069, 2070, 3, 9, 4, 0, 2070, 2071, 3, 47, 23, 0, 2071, 2072, 3, 45, 22, 0, 2072, 2073, 3, 15, 7, 0, 2073, 2074, 3, 43, 21, 0, 2074, 134, 1, 0, 0, 0, 2075, 2076, 3, 7, 3, 0, 2076, 2077, 3, 47, 23, 0, 2077, 2078, 3, 45, 22, 0, 2078, 2079, 3, 21, 10, 0, 2079, 2080, 3, 35, 17, 0, 2080, 2081, 3, 41, 20, 0, 2081, 2082, 3, 23, 11, 0, 2082, 2083, 3, 57, 28, 0, 2083, 2084, 3, 7, 3, 0, 2084, 2085, 3, 45, 22, 0, 2085, 2086, 3, 23, 11, 0, 2086, 2087, 3, 35, 17, 0, 2087, 2088, 3, 33, 16, 0, 2088, 136, 1, 0, 0, 0, 2089, 2090, 3, 7, 3, 0, 2090, 2091, 3, 49, 24, 0, 2091, 2092, 3, 19, 9, 0, 2092, 138, 1, 0, 0, 0, 2093, 2094, 3, 9, 4, 0, 2094, 2095, 3, 7, 3, 0, 2095, 2096, 3, 11, 5, 0, 2096, 2097, 3, 27, 13, 0, 2097, 2098, 3, 51, 25, 0, 2098, 2099, 3, 7, 3, 0, 2099, 2100, 3, 41, 20, 0, 2100, 2101, 3, 13, 6, 0, 2101, 140, 1, 0, 0, 0, 2102, 2103, 3, 9, 4, 0, 2103, 2104, 3, 15, 7, 0, 2104, 2105, 3, 17, 8, 0, 2105, 2106, 3, 35, 17, 0, 2106, 2107, 3, 41, 20, 0, 2107, 2108, 3, 15, 7, 0, 2108, 142, 1, 0, 0, 0, 2109, 2110, 3, 9, 4, 0, 2110, 2111, 3, 15, 7, 0, 2111, 2112, 3, 19, 9, 0, 2112, 2113, 3, 23, 11, 0, 2113, 2114, 3, 33, 16, 0, 2114, 144, 1, 0, 0, 0, 2115, 2116, 3, 9, 4, 0, 2116, 2117, 3, 15, 7, 0, 2117, 2118, 3, 41, 20, 0, 2118, 2119, 3, 33, 16, 0, 2119, 2120, 3, 35, 17, 0, 2120, 2121, 3, 47, 23, 0, 2121, 2122, 3, 29, 14, 0, 2122, 2123, 3, 29, 14, 0, 2123, 2124, 3, 23, 11, 0, 2124, 146, 1, 0, 0, 0, 2125, 2126, 3, 9, 4, 0, 2126, 2127, 3, 15, 7, 0, 2127, 2128, 3, 45, 22, 0, 2128, 2129, 3, 51, 25, 0, 2129, 2130, 3, 15, 7, 0, 2130, 2131, 3, 15, 7, 0, 2131, 2132, 3, 33, 16, 0, 2132, 148, 1, 0, 0, 0, 2133, 2134, 3, 9, 4, 0, 2134, 2135, 3, 23, 11, 0, 2135, 2136, 3, 19, 9, 0, 2136, 2137, 3, 23, 11, 0, 2137, 2138, 3, 33, 16, 0, 2138, 2139, 3, 45, 22, 0, 2139, 150, 1, 0, 0, 0, 2140, 2141, 3, 9, 4, 0, 2141, 2142, 3, 23, 11, 0, 2142, 2143, 3, 33, 16, 0, 2143, 2144, 3, 7, 3, 0, 2144, 2145, 3, 41, 20, 0, 2145, 2146, 3, 55, 27, 0, 2146, 152, 1, 0, 0, 0, 2147, 2148, 3, 9, 4, 0, 2148, 2149, 3, 23, 11, 0, 2149, 2150, 3, 45, 22, 0, 2150, 154, 1, 0, 0, 0, 2151, 2152, 3, 9, 4, 0, 2152, 2153, 3, 23, 11, 0, 2153, 2154, 3, 45, 22, 0, 2154, 2155, 5, 95, 0, 0, 2155, 2156, 3, 29, 14, 0, 2156, 2157, 3, 15, 7, 0, 2157, 2158, 3, 33, 16, 0, 2158, 2159, 3, 19, 9, 0, 2159, 2160, 3, 45, 22, 0, 2160, 2161, 3, 21, 10, 0, 2161, 156, 1, 0, 0, 0, 2162, 2163, 3, 9, 4, 0, 2163, 2164, 3, 23, 11, 0, 2164, 2165, 3, 45, 22, 0, 2165, 2166, 3, 49, 24, 0, 2166, 2167, 3, 7, 3, 0, 2167, 2168, 3, 41, 20, 0, 2168, 158, 1, 0, 0, 0, 2169, 2170, 3, 9, 4, 0, 2170, 2171, 3, 29, 14, 0, 2171, 2172, 3, 35, 17, 0, 2172, 2173, 3, 9, 4, 0, 2173, 160, 1, 0, 0, 0, 2174, 2175, 3, 9, 4, 0, 2175, 2176, 3, 35, 17, 0, 2176, 2177, 3, 35, 17, 0, 2177, 2178, 3, 29, 14, 0, 2178, 2179, 3, 15, 7, 0, 2179, 2180, 3, 7, 3, 0, 2180, 2181, 3, 33, 16, 0, 2181, 162, 1, 0, 0, 0, 2182, 2183, 3, 9, 4, 0, 2183, 2184, 3, 35, 17, 0, 2184, 2185, 3, 45, 22, 0, 2185, 2186, 3, 21, 10, 0, 2186, 164, 1, 0, 0, 0, 2187, 2188, 3, 9, 4, 0, 2188, 2189, 3, 41, 20, 0, 2189, 2190, 3, 15, 7, 0, 2190, 2191, 3, 7, 3, 0, 2191, 2192, 3, 13, 6, 0, 2192, 2193, 3, 45, 22, 0, 2193, 2194, 3, 21, 10, 0, 2194, 166, 1, 0, 0, 0, 2195, 2196, 3, 9, 4, 0, 2196, 2197, 3, 47, 23, 0, 2197, 2198, 3, 17, 8, 0, 2198, 2199, 3, 17, 8, 0, 2199, 2200, 3, 15, 7, 0, 2200, 2201, 3, 41, 20, 0, 2201, 2202, 3, 43, 21, 0, 2202, 168, 1, 0, 0, 0, 2203, 2204, 3, 9, 4, 0, 2204, 2205, 3, 55, 27, 0, 2205, 170, 1, 0, 0, 0, 2206, 2207, 3, 11, 5, 0, 2207, 172, 1, 0, 0, 0, 2208, 2209, 3, 11, 5, 0, 2209, 2210, 3, 7, 3, 0, 2210, 2211, 3, 11, 5, 0, 2211, 2212, 3, 21, 10, 0, 2212, 2213, 3, 15, 7, 0, 2213, 174, 1, 0, 0, 0, 2214, 2215, 3, 11, 5, 0, 2215, 2216, 3, 7, 3, 0, 2216, 2217, 3, 29, 14, 0, 2217, 2218, 3, 29, 14, 0, 2218, 176, 1, 0, 0, 0, 2219, 2220, 3, 11, 5, 0, 2220, 2221, 3, 7, 3, 0, 2221, 2222, 3, 29, 14, 0, 2222, 2223, 3, 29, 14, 0, 2223, 2224, 3, 15, 7, 0, 2224, 2225, 3, 13, 6, 0, 2225, 178, 1, 0, 0, 0, 2226, 2227, 3, 11, 5, 0, 2227, 2228, 3, 7, 3, 0, 2228, 2229, 3, 41, 20, 0, 2229, 2230, 3, 13, 6, 0, 2230, 2231, 3, 23, 11, 0, 2231, 2232, 3, 33, 16, 0, 2232, 2233, 3, 7, 3, 0, 2233, 2234, 3, 29, 14, 0, 2234, 2235, 3, 23, 11, 0, 2235, 2236, 3, 45, 22, 0, 2236, 2237, 3, 55, 27, 0, 2237, 180, 1, 0, 0, 0, 2238, 2239, 3, 11, 5, 0, 2239, 2240, 3, 7, 3, 0, 2240, 2241, 3, 43, 21, 0, 2241, 2242, 3, 11, 5, 0, 2242, 2243, 3, 7, 3, 0, 2243, 2244, 3, 13, 6, 0, 2244, 2245, 3, 15, 7, 0, 2245, 182, 1, 0, 0, 0, 2246, 2247, 3, 11, 5, 0, 2247, 2248, 3, 7, 3, 0, 2248, 2249, 3, 43, 21, 0, 2249, 2250, 3, 11, 5, 0, 2250, 2251, 3, 7, 3, 0, 2251, 2252, 3, 13, 6, 0, 2252, 2253, 3, 15, 7, 0, 2253, 2254, 3, 13, 6, 0, 2254, 184, 1, 0, 0, 0, 2255, 2256, 3, 11, 5, 0, 2256, 2257, 3, 7, 3, 0, 2257, 2258, 3, 43, 21, 0, 2258, 2259, 3, 15, 7, 0, 2259, 186, 1, 0, 0, 0, 2260, 2261, 3, 11, 5, 0, 2261, 2262, 3, 7, 3, 0, 2262, 2263, 3, 43, 21, 0, 2263, 2264, 3, 45, 22, 0, 2264, 188, 1, 0, 0, 0, 2265, 2266, 3, 11, 5, 0, 2266, 2267, 3, 7, 3, 0, 2267, 2268, 3, 45, 22, 0, 2268, 2269, 3, 7, 3, 0, 2269, 2270, 3, 29, 14, 0, 2270, 2271, 3, 35, 17, 0, 2271, 2272, 3, 19, 9, 0, 2272, 190, 1, 0, 0, 0, 2273, 2274, 3, 11, 5, 0, 2274, 2275, 3, 7, 3, 0, 2275, 2276, 3, 45, 22, 0, 2276, 2277, 3, 7, 3, 0, 2277, 2278, 3, 29, 14, 0, 2278, 2279, 3, 35, 17, 0, 2279, 2280, 3, 19, 9, 0, 2280, 2281, 5, 95, 0, 0, 2281, 2282, 3, 33, 16, 0, 2282, 2283, 3, 7, 3, 0, 2283, 2284, 3, 31, 15, 0, 2284, 2285, 3, 15, 7, 0, 2285, 192, 1, 0, 0, 0, 2286, 2287, 3, 11, 5, 0, 2287, 2288, 3, 15, 7, 0, 2288, 2289, 3, 23, 11, 0, 2289, 2290, 3, 29, 14, 0, 2290, 194, 1, 0, 0, 0, 2291, 2292, 3, 11, 5, 0, 2292, 2293, 3, 15, 7, 0, 2293, 2294, 3, 23, 11, 0, 2294, 2295, 3, 29, 14, 0, 2295, 2296, 3, 23, 11, 0, 2296, 2297, 3, 33, 16, 0, 2297, 2298, 3, 19, 9, 0, 2298, 196, 1, 0, 0, 0, 2299, 2300, 3, 11, 5, 0, 2300, 2301, 3, 21, 10, 0, 2301, 2302, 3, 7, 3, 0, 2302, 2303, 3, 23, 11, 0, 2303, 2304, 3, 33, 16, 0, 2304, 198, 1, 0, 0, 0, 2305, 2306, 3, 11, 5, 0, 2306, 2307, 3, 21, 10, 0, 2307, 2308, 3, 7, 3, 0, 2308, 2309, 3, 41, 20, 0, 2309, 200, 1, 0, 0, 0, 2310, 2311, 3, 11, 5, 0, 2311, 2312, 3, 21, 10, 0, 2312, 2313, 3, 7, 3, 0, 2313, 2314, 3, 41, 20, 0, 2314, 2315, 5, 95, 0, 0, 2315, 2316, 3, 29, 14, 0, 2316, 2317, 3, 15, 7, 0, 2317, 2318, 3, 33, 16, 0, 2318, 2319, 3, 19, 9, 0, 2319, 2320, 3, 45, 22, 0, 2320, 2321, 3, 21, 10, 0, 2321, 202, 1, 0, 0, 0, 2322, 2323, 3, 11, 5, 0, 2323, 2324, 3, 21, 10, 0, 2324, 2325, 3, 7, 3, 0, 2325, 2326, 3, 41, 20, 0, 2326, 2327, 3, 7, 3, 0, 2327, 2328, 3, 11, 5, 0, 2328, 2329, 3, 45, 22, 0, 2329, 2330, 3, 15, 7, 0, 2330, 2331, 3, 41, 20, 0, 2331, 204, 1, 0, 0, 0, 2332, 2333, 3, 11, 5, 0, 2333, 2334, 3, 21, 10, 0, 2334, 2335, 3, 7, 3, 0, 2335, 2336, 3, 41, 20, 0, 2336, 2337, 3, 7, 3, 0, 2337, 2338, 3, 11, 5, 0, 2338, 2339, 3, 45, 22, 0, 2339, 2340, 3, 15, 7, 0, 2340, 2341, 3, 41, 20, 0, 2341, 2342, 5, 95, 0, 0, 2342, 2343, 3, 29, 14, 0, 2343, 2344, 3, 15, 7, 0, 2344, 2345, 3, 33, 16, 0, 2345, 2346, 3, 19, 9, 0, 2346, 2347, 3, 45, 22, 0, 2347, 2348, 3, 21, 10, 0, 2348, 206, 1, 0, 0, 0, 2349, 2350, 3, 11, 5, 0, 2350, 2351, 3, 21, 10, 0, 2351, 2352, 3, 7, 3, 0, 2352, 2353, 3, 41, 20, 0, 2353, 2354, 3, 7, 3, 0, 2354, 2355, 3, 11, 5, 0, 2355, 2356, 3, 45, 22, 0, 2356, 2357, 3, 15, 7, 0, 2357, 2358, 3, 41, 20, 0, 2358, 2359, 5, 95, 0, 0, 2359, 2360, 3, 43, 21, 0, 2360, 2361, 3, 15, 7, 0, 2361, 2362, 3, 45, 22, 0, 2362, 2363, 5, 95, 0, 0, 2363, 2364, 3, 11, 5, 0, 2364, 2365, 3, 7, 3, 0, 2365, 2366, 3, 45, 22, 0, 2366, 2367, 3, 7, 3, 0, 2367, 2368, 3, 29, 14, 0, 2368, 2369, 3, 35, 17, 0, 2369, 2370, 3, 19, 9, 0, 2370, 208, 1, 0, 0, 0, 2371, 2372, 3, 11, 5, 0, 2372, 2373, 3, 21, 10, 0, 2373, 2374, 3, 7, 3, 0, 2374, 2375, 3, 41, 20, 0, 2375, 2376, 3, 7, 3, 0, 2376, 2377, 3, 11, 5, 0, 2377, 2378, 3, 45, 22, 0, 2378, 2379, 3, 15, 7, 0, 2379, 2380, 3, 41, 20, 0, 2380, 2381, 5, 95, 0, 0, 2381, 2382, 3, 43, 21, 0, 2382, 2383, 3, 15, 7, 0, 2383, 2384, 3, 45, 22, 0, 2384, 2385, 5, 95, 0, 0, 2385, 2386, 3, 33, 16, 0, 2386, 2387, 3, 7, 3, 0, 2387, 2388, 3, 31, 15, 0, 2388, 2389, 3, 15, 7, 0, 2389, 210, 1, 0, 0, 0, 2390, 2391, 3, 11, 5, 0, 2391, 2392, 3, 21, 10, 0, 2392, 2393, 3, 7, 3, 0, 2393, 2394, 3, 41, 20, 0, 2394, 2395, 3, 7, 3, 0, 2395, 2396, 3, 11, 5, 0, 2396, 2397, 3, 45, 22, 0, 2397, 2398, 3, 15, 7, 0, 2398, 2399, 3, 41, 20, 0, 2399, 2400, 5, 95, 0, 0, 2400, 2401, 3, 43, 21, 0, 2401, 2402, 3, 15, 7, 0, 2402, 2403, 3, 45, 22, 0, 2403, 2404, 5, 95, 0, 0, 2404, 2405, 3, 43, 21, 0, 2405, 2406, 3, 11, 5, 0, 2406, 2407, 3, 21, 10, 0, 2407, 2408, 3, 15, 7, 0, 2408, 2409, 3, 31, 15, 0, 2409, 2410, 3, 7, 3, 0, 2410, 212, 1, 0, 0, 0, 2411, 2412, 3, 11, 5, 0, 2412, 2413, 3, 21, 10, 0, 2413, 2414, 3, 7, 3, 0, 2414, 2415, 3, 41, 20, 0, 2415, 2416, 3, 7, 3, 0, 2416, 2417, 3, 11, 5, 0, 2417, 2418, 3, 45, 22, 0, 2418, 2419, 3, 15, 7, 0, 2419, 2420, 3, 41, 20, 0, 2420, 2421, 3, 23, 11, 0, 2421, 2422, 3, 43, 21, 0, 2422, 2423, 3, 45, 22, 0, 2423, 2424, 3, 23, 11, 0, 2424, 2425, 3, 11, 5, 0, 2425, 2426, 3, 43, 21, 0, 2426, 214, 1, 0, 0, 0, 2427, 2428, 3, 11, 5, 0, 2428, 2429, 3, 21, 10, 0, 2429, 2430, 3, 7, 3, 0, 2430, 2431, 3, 41, 20, 0, 2431, 2432, 3, 7, 3, 0, 2432, 2433, 3, 11, 5, 0, 2433, 2434, 3, 45, 22, 0, 2434, 2435, 3, 15, 7, 0, 2435, 2436, 3, 41, 20, 0, 2436, 2437, 3, 43, 21, 0, 2437, 216, 1, 0, 0, 0, 2438, 2439, 3, 11, 5, 0, 2439, 2440, 3, 21, 10, 0, 2440, 2441, 3, 15, 7, 0, 2441, 2442, 3, 11, 5, 0, 2442, 2443, 3, 27, 13, 0, 2443, 218, 1, 0, 0, 0, 2444, 2445, 3, 11, 5, 0, 2445, 2446, 3, 21, 10, 0, 2446, 2447, 3, 15, 7, 0, 2447, 2448, 3, 11, 5, 0, 2448, 2449, 3, 27, 13, 0, 2449, 2450, 3, 15, 7, 0, 2450, 2451, 3, 13, 6, 0, 2451, 220, 1, 0, 0, 0, 2452, 2453, 3, 11, 5, 0, 2453, 2454, 3, 21, 10, 0, 2454, 2455, 3, 15, 7, 0, 2455, 2456, 3, 11, 5, 0, 2456, 2457, 3, 27, 13, 0, 2457, 2458, 3, 37, 18, 0, 2458, 2459, 3, 35, 17, 0, 2459, 2460, 3, 23, 11, 0, 2460, 2461, 3, 33, 16, 0, 2461, 2462, 3, 45, 22, 0, 2462, 222, 1, 0, 0, 0, 2463, 2464, 3, 11, 5, 0, 2464, 2465, 3, 29, 14, 0, 2465, 2466, 3, 7, 3, 0, 2466, 2467, 3, 43, 21, 0, 2467, 2468, 3, 43, 21, 0, 2468, 224, 1, 0, 0, 0, 2469, 2470, 3, 11, 5, 0, 2470, 2471, 3, 29, 14, 0, 2471, 2472, 3, 7, 3, 0, 2472, 2473, 3, 43, 21, 0, 2473, 2474, 3, 43, 21, 0, 2474, 2475, 5, 95, 0, 0, 2475, 2476, 3, 35, 17, 0, 2476, 2477, 3, 41, 20, 0, 2477, 2478, 3, 23, 11, 0, 2478, 2479, 3, 19, 9, 0, 2479, 2480, 3, 23, 11, 0, 2480, 2481, 3, 33, 16, 0, 2481, 226, 1, 0, 0, 0, 2482, 2483, 3, 11, 5, 0, 2483, 2484, 3, 29, 14, 0, 2484, 2485, 3, 35, 17, 0, 2485, 2486, 3, 9, 4, 0, 2486, 228, 1, 0, 0, 0, 2487, 2488, 3, 11, 5, 0, 2488, 2489, 3, 29, 14, 0, 2489, 2490, 3, 35, 17, 0, 2490, 2491, 3, 43, 21, 0, 2491, 2492, 3, 15, 7, 0, 2492, 230, 1, 0, 0, 0, 2493, 2494, 3, 11, 5, 0, 2494, 2495, 3, 29, 14, 0, 2495, 2496, 3, 47, 23, 0, 2496, 2497, 3, 43, 21, 0, 2497, 2498, 3, 45, 22, 0, 2498, 2499, 3, 15, 7, 0, 2499, 2500, 3, 41, 20, 0, 2500, 232, 1, 0, 0, 0, 2501, 2502, 3, 11, 5, 0, 2502, 2503, 3, 35, 17, 0, 2503, 2504, 3, 7, 3, 0, 2504, 2505, 3, 29, 14, 0, 2505, 2506, 3, 15, 7, 0, 2506, 2507, 3, 43, 21, 0, 2507, 2508, 3, 11, 5, 0, 2508, 2509, 3, 15, 7, 0, 2509, 234, 1, 0, 0, 0, 2510, 2511, 3, 11, 5, 0, 2511, 2512, 3, 35, 17, 0, 2512, 2513, 3, 9, 4, 0, 2513, 2514, 3, 35, 17, 0, 2514, 2515, 3, 29, 14, 0, 2515, 236, 1, 0, 0, 0, 2516, 2517, 3, 11, 5, 0, 2517, 2518, 3, 35, 17, 0, 2518, 2519, 3, 29, 14, 0, 2519, 2520, 3, 29, 14, 0, 2520, 2521, 3, 7, 3, 0, 2521, 2522, 3, 45, 22, 0, 2522, 2523, 3, 15, 7, 0, 2523, 238, 1, 0, 0, 0, 2524, 2525, 3, 11, 5, 0, 2525, 2526, 3, 35, 17, 0, 2526, 2527, 3, 29, 14, 0, 2527, 2528, 3, 29, 14, 0, 2528, 2529, 3, 7, 3, 0, 2529, 2530, 3, 45, 22, 0, 2530, 2531, 3, 23, 11, 0, 2531, 2532, 3, 35, 17, 0, 2532, 2533, 3, 33, 16, 0, 2533, 240, 1, 0, 0, 0, 2534, 2535, 3, 11, 5, 0, 2535, 2536, 3, 35, 17, 0, 2536, 2537, 3, 29, 14, 0, 2537, 2538, 3, 29, 14, 0, 2538, 2539, 3, 7, 3, 0, 2539, 2540, 3, 45, 22, 0, 2540, 2541, 3, 23, 11, 0, 2541, 2542, 3, 35, 17, 0, 2542, 2543, 3, 33, 16, 0, 2543, 2544, 5, 95, 0, 0, 2544, 2545, 3, 11, 5, 0, 2545, 2546, 3, 7, 3, 0, 2546, 2547, 3, 45, 22, 0, 2547, 2548, 3, 7, 3, 0, 2548, 2549, 3, 29, 14, 0, 2549, 2550, 3, 35, 17, 0, 2550, 2551, 3, 19, 9, 0, 2551, 242, 1, 0, 0, 0, 2552, 2553, 3, 11, 5, 0, 2553, 2554, 3, 35, 17, 0, 2554, 2555, 3, 29, 14, 0, 2555, 2556, 3, 29, 14, 0, 2556, 2557, 3, 7, 3, 0, 2557, 2558, 3, 45, 22, 0, 2558, 2559, 3, 23, 11, 0, 2559, 2560, 3, 35, 17, 0, 2560, 2561, 3, 33, 16, 0, 2561, 2562, 5, 95, 0, 0, 2562, 2563, 3, 33, 16, 0, 2563, 2564, 3, 7, 3, 0, 2564, 2565, 3, 31, 15, 0, 2565, 2566, 3, 15, 7, 0, 2566, 244, 1, 0, 0, 0, 2567, 2568, 3, 11, 5, 0, 2568, 2569, 3, 35, 17, 0, 2569, 2570, 3, 29, 14, 0, 2570, 2571, 3, 29, 14, 0, 2571, 2572, 3, 7, 3, 0, 2572, 2573, 3, 45, 22, 0, 2573, 2574, 3, 23, 11, 0, 2574, 2575, 3, 35, 17, 0, 2575, 2576, 3, 33, 16, 0, 2576, 2577, 5, 95, 0, 0, 2577, 2578, 3, 43, 21, 0, 2578, 2579, 3, 11, 5, 0, 2579, 2580, 3, 21, 10, 0, 2580, 2581, 3, 15, 7, 0, 2581, 2582, 3, 31, 15, 0, 2582, 2583, 3, 7, 3, 0, 2583, 246, 1, 0, 0, 0, 2584, 2585, 3, 11, 5, 0, 2585, 2586, 3, 35, 17, 0, 2586, 2587, 3, 29, 14, 0, 2587, 2588, 3, 29, 14, 0, 2588, 2589, 3, 15, 7, 0, 2589, 2590, 3, 11, 5, 0, 2590, 2591, 3, 45, 22, 0, 2591, 248, 1, 0, 0, 0, 2592, 2593, 3, 11, 5, 0, 2593, 2594, 3, 35, 17, 0, 2594, 2595, 3, 29, 14, 0, 2595, 2596, 3, 47, 23, 0, 2596, 2597, 3, 31, 15, 0, 2597, 2598, 3, 33, 16, 0, 2598, 250, 1, 0, 0, 0, 2599, 2600, 3, 11, 5, 0, 2600, 2601, 3, 35, 17, 0, 2601, 2602, 3, 29, 14, 0, 2602, 2603, 3, 47, 23, 0, 2603, 2604, 3, 31, 15, 0, 2604, 2605, 3, 33, 16, 0, 2605, 2606, 5, 95, 0, 0, 2606, 2607, 3, 33, 16, 0, 2607, 2608, 3, 7, 3, 0, 2608, 2609, 3, 31, 15, 0, 2609, 2610, 3, 15, 7, 0, 2610, 252, 1, 0, 0, 0, 2611, 2612, 3, 11, 5, 0, 2612, 2613, 3, 35, 17, 0, 2613, 2614, 3, 31, 15, 0, 2614, 2615, 3, 31, 15, 0, 2615, 2616, 3, 7, 3, 0, 2616, 2617, 3, 33, 16, 0, 2617, 2618, 3, 13, 6, 0, 2618, 2619, 5, 95, 0, 0, 2619, 2620, 3, 17, 8, 0, 2620, 2621, 3, 47, 23, 0, 2621, 2622, 3, 33, 16, 0, 2622, 2623, 3, 11, 5, 0, 2623, 2624, 3, 45, 22, 0, 2624, 2625, 3, 23, 11, 0, 2625, 2626, 3, 35, 17, 0, 2626, 2627, 3, 33, 16, 0, 2627, 254, 1, 0, 0, 0, 2628, 2629, 3, 11, 5, 0, 2629, 2630, 3, 35, 17, 0, 2630, 2631, 3, 31, 15, 0, 2631, 2632, 3, 31, 15, 0, 2632, 2633, 3, 7, 3, 0, 2633, 2634, 3, 33, 16, 0, 2634, 2635, 3, 13, 6, 0, 2635, 2636, 5, 95, 0, 0, 2636, 2637, 3, 17, 8, 0, 2637, 2638, 3, 47, 23, 0, 2638, 2639, 3, 33, 16, 0, 2639, 2640, 3, 11, 5, 0, 2640, 2641, 3, 45, 22, 0, 2641, 2642, 3, 23, 11, 0, 2642, 2643, 3, 35, 17, 0, 2643, 2644, 3, 33, 16, 0, 2644, 2645, 5, 95, 0, 0, 2645, 2646, 3, 11, 5, 0, 2646, 2647, 3, 35, 17, 0, 2647, 2648, 3, 13, 6, 0, 2648, 2649, 3, 15, 7, 0, 2649, 256, 1, 0, 0, 0, 2650, 2651, 3, 11, 5, 0, 2651, 2652, 3, 35, 17, 0, 2652, 2653, 3, 31, 15, 0, 2653, 2654, 3, 31, 15, 0, 2654, 2655, 3, 15, 7, 0, 2655, 2656, 3, 33, 16, 0, 2656, 2657, 3, 45, 22, 0, 2657, 258, 1, 0, 0, 0, 2658, 2659, 3, 11, 5, 0, 2659, 2660, 3, 35, 17, 0, 2660, 2661, 3, 31, 15, 0, 2661, 2662, 3, 31, 15, 0, 2662, 2663, 3, 23, 11, 0, 2663, 2664, 3, 45, 22, 0, 2664, 260, 1, 0, 0, 0, 2665, 2666, 3, 11, 5, 0, 2666, 2667, 3, 35, 17, 0, 2667, 2668, 3, 31, 15, 0, 2668, 2669, 3, 31, 15, 0, 2669, 2670, 3, 23, 11, 0, 2670, 2671, 3, 45, 22, 0, 2671, 2672, 3, 45, 22, 0, 2672, 2673, 3, 15, 7, 0, 2673, 2674, 3, 13, 6, 0, 2674, 262, 1, 0, 0, 0, 2675, 2676, 3, 11, 5, 0, 2676, 2677, 3, 35, 17, 0, 2677, 2678, 3, 31, 15, 0, 2678, 2679, 3, 37, 18, 0, 2679, 2680, 3, 29, 14, 0, 2680, 2681, 3, 15, 7, 0, 2681, 2682, 3, 45, 22, 0, 2682, 2683, 3, 23, 11, 0, 2683, 2684, 3, 35, 17, 0, 2684, 2685, 3, 33, 16, 0, 2685, 264, 1, 0, 0, 0, 2686, 2687, 3, 11, 5, 0, 2687, 2688, 3, 35, 17, 0, 2688, 2689, 3, 33, 16, 0, 2689, 2690, 3, 13, 6, 0, 2690, 2691, 3, 23, 11, 0, 2691, 2692, 3, 45, 22, 0, 2692, 2693, 3, 23, 11, 0, 2693, 2694, 3, 35, 17, 0, 2694, 2695, 3, 33, 16, 0, 2695, 266, 1, 0, 0, 0, 2696, 2697, 3, 11, 5, 0, 2697, 2698, 3, 35, 17, 0, 2698, 2699, 3, 33, 16, 0, 2699, 2700, 3, 13, 6, 0, 2700, 2701, 3, 23, 11, 0, 2701, 2702, 3, 45, 22, 0, 2702, 2703, 3, 23, 11, 0, 2703, 2704, 3, 35, 17, 0, 2704, 2705, 3, 33, 16, 0, 2705, 2706, 5, 95, 0, 0, 2706, 2707, 3, 33, 16, 0, 2707, 2708, 3, 47, 23, 0, 2708, 2709, 3, 31, 15, 0, 2709, 2710, 3, 9, 4, 0, 2710, 2711, 3, 15, 7, 0, 2711, 2712, 3, 41, 20, 0, 2712, 268, 1, 0, 0, 0, 2713, 2714, 3, 11, 5, 0, 2714, 2715, 3, 35, 17, 0, 2715, 2716, 3, 33, 16, 0, 2716, 2717, 3, 17, 8, 0, 2717, 2718, 3, 23, 11, 0, 2718, 2719, 3, 19, 9, 0, 2719, 2720, 3, 47, 23, 0, 2720, 2721, 3, 41, 20, 0, 2721, 2722, 3, 7, 3, 0, 2722, 2723, 3, 45, 22, 0, 2723, 2724, 3, 23, 11, 0, 2724, 2725, 3, 35, 17, 0, 2725, 2726, 3, 33, 16, 0, 2726, 270, 1, 0, 0, 0, 2727, 2728, 3, 11, 5, 0, 2728, 2729, 3, 35, 17, 0, 2729, 2730, 3, 33, 16, 0, 2730, 2731, 3, 17, 8, 0, 2731, 2732, 3, 29, 14, 0, 2732, 2733, 3, 23, 11, 0, 2733, 2734, 3, 11, 5, 0, 2734, 2735, 3, 45, 22, 0, 2735, 272, 1, 0, 0, 0, 2736, 2737, 3, 11, 5, 0, 2737, 2738, 3, 35, 17, 0, 2738, 2739, 3, 33, 16, 0, 2739, 2740, 3, 33, 16, 0, 2740, 2741, 3, 15, 7, 0, 2741, 2742, 3, 11, 5, 0, 2742, 2743, 3, 45, 22, 0, 2743, 274, 1, 0, 0, 0, 2744, 2745, 3, 11, 5, 0, 2745, 2746, 3, 35, 17, 0, 2746, 2747, 3, 33, 16, 0, 2747, 2748, 3, 33, 16, 0, 2748, 2749, 3, 15, 7, 0, 2749, 2750, 3, 11, 5, 0, 2750, 2751, 3, 45, 22, 0, 2751, 2752, 3, 23, 11, 0, 2752, 2753, 3, 35, 17, 0, 2753, 2754, 3, 33, 16, 0, 2754, 276, 1, 0, 0, 0, 2755, 2756, 3, 11, 5, 0, 2756, 2757, 3, 35, 17, 0, 2757, 2758, 3, 33, 16, 0, 2758, 2759, 3, 33, 16, 0, 2759, 2760, 3, 15, 7, 0, 2760, 2761, 3, 11, 5, 0, 2761, 2762, 3, 45, 22, 0, 2762, 2763, 3, 23, 11, 0, 2763, 2764, 3, 35, 17, 0, 2764, 2765, 3, 33, 16, 0, 2765, 2766, 5, 95, 0, 0, 2766, 2767, 3, 33, 16, 0, 2767, 2768, 3, 7, 3, 0, 2768, 2769, 3, 31, 15, 0, 2769, 2770, 3, 15, 7, 0, 2770, 278, 1, 0, 0, 0, 2771, 2772, 3, 11, 5, 0, 2772, 2773, 3, 35, 17, 0, 2773, 2774, 3, 33, 16, 0, 2774, 2775, 3, 43, 21, 0, 2775, 2776, 3, 45, 22, 0, 2776, 2777, 3, 41, 20, 0, 2777, 2778, 3, 7, 3, 0, 2778, 2779, 3, 23, 11, 0, 2779, 2780, 3, 33, 16, 0, 2780, 2781, 3, 45, 22, 0, 2781, 280, 1, 0, 0, 0, 2782, 2783, 3, 11, 5, 0, 2783, 2784, 3, 35, 17, 0, 2784, 2785, 3, 33, 16, 0, 2785, 2786, 3, 43, 21, 0, 2786, 2787, 3, 45, 22, 0, 2787, 2788, 3, 41, 20, 0, 2788, 2789, 3, 7, 3, 0, 2789, 2790, 3, 23, 11, 0, 2790, 2791, 3, 33, 16, 0, 2791, 2792, 3, 45, 22, 0, 2792, 2793, 5, 95, 0, 0, 2793, 2794, 3, 11, 5, 0, 2794, 2795, 3, 7, 3, 0, 2795, 2796, 3, 45, 22, 0, 2796, 2797, 3, 7, 3, 0, 2797, 2798, 3, 29, 14, 0, 2798, 2799, 3, 35, 17, 0, 2799, 2800, 3, 19, 9, 0, 2800, 282, 1, 0, 0, 0, 2801, 2802, 3, 11, 5, 0, 2802, 2803, 3, 35, 17, 0, 2803, 2804, 3, 33, 16, 0, 2804, 2805, 3, 43, 21, 0, 2805, 2806, 3, 45, 22, 0, 2806, 2807, 3, 41, 20, 0, 2807, 2808, 3, 7, 3, 0, 2808, 2809, 3, 23, 11, 0, 2809, 2810, 3, 33, 16, 0, 2810, 2811, 3, 45, 22, 0, 2811, 2812, 5, 95, 0, 0, 2812, 2813, 3, 33, 16, 0, 2813, 2814, 3, 7, 3, 0, 2814, 2815, 3, 31, 15, 0, 2815, 2816, 3, 15, 7, 0, 2816, 284, 1, 0, 0, 0, 2817, 2818, 3, 11, 5, 0, 2818, 2819, 3, 35, 17, 0, 2819, 2820, 3, 33, 16, 0, 2820, 2821, 3, 43, 21, 0, 2821, 2822, 3, 45, 22, 0, 2822, 2823, 3, 41, 20, 0, 2823, 2824, 3, 7, 3, 0, 2824, 2825, 3, 23, 11, 0, 2825, 2826, 3, 33, 16, 0, 2826, 2827, 3, 45, 22, 0, 2827, 2828, 5, 95, 0, 0, 2828, 2829, 3, 43, 21, 0, 2829, 2830, 3, 11, 5, 0, 2830, 2831, 3, 21, 10, 0, 2831, 2832, 3, 15, 7, 0, 2832, 2833, 3, 31, 15, 0, 2833, 2834, 3, 7, 3, 0, 2834, 286, 1, 0, 0, 0, 2835, 2836, 3, 11, 5, 0, 2836, 2837, 3, 35, 17, 0, 2837, 2838, 3, 33, 16, 0, 2838, 2839, 3, 43, 21, 0, 2839, 2840, 3, 45, 22, 0, 2840, 2841, 3, 41, 20, 0, 2841, 2842, 3, 7, 3, 0, 2842, 2843, 3, 23, 11, 0, 2843, 2844, 3, 33, 16, 0, 2844, 2845, 3, 45, 22, 0, 2845, 2846, 3, 43, 21, 0, 2846, 288, 1, 0, 0, 0, 2847, 2848, 3, 11, 5, 0, 2848, 2849, 3, 35, 17, 0, 2849, 2850, 3, 33, 16, 0, 2850, 2851, 3, 43, 21, 0, 2851, 2852, 3, 45, 22, 0, 2852, 2853, 3, 41, 20, 0, 2853, 2854, 3, 47, 23, 0, 2854, 2855, 3, 11, 5, 0, 2855, 2856, 3, 45, 22, 0, 2856, 2857, 3, 35, 17, 0, 2857, 2858, 3, 41, 20, 0, 2858, 290, 1, 0, 0, 0, 2859, 2860, 3, 11, 5, 0, 2860, 2861, 3, 35, 17, 0, 2861, 2862, 3, 33, 16, 0, 2862, 2863, 3, 45, 22, 0, 2863, 2864, 3, 7, 3, 0, 2864, 2865, 3, 23, 11, 0, 2865, 2866, 3, 33, 16, 0, 2866, 2867, 3, 43, 21, 0, 2867, 292, 1, 0, 0, 0, 2868, 2869, 3, 11, 5, 0, 2869, 2870, 3, 35, 17, 0, 2870, 2871, 3, 33, 16, 0, 2871, 2872, 3, 45, 22, 0, 2872, 2873, 3, 23, 11, 0, 2873, 2874, 3, 33, 16, 0, 2874, 2875, 3, 47, 23, 0, 2875, 2876, 3, 15, 7, 0, 2876, 294, 1, 0, 0, 0, 2877, 2878, 3, 11, 5, 0, 2878, 2879, 3, 35, 17, 0, 2879, 2880, 3, 33, 16, 0, 2880, 2881, 3, 49, 24, 0, 2881, 2882, 3, 15, 7, 0, 2882, 2883, 3, 41, 20, 0, 2883, 2884, 3, 43, 21, 0, 2884, 2885, 3, 23, 11, 0, 2885, 2886, 3, 35, 17, 0, 2886, 2887, 3, 33, 16, 0, 2887, 296, 1, 0, 0, 0, 2888, 2889, 3, 11, 5, 0, 2889, 2890, 3, 35, 17, 0, 2890, 2891, 3, 33, 16, 0, 2891, 2892, 3, 49, 24, 0, 2892, 2893, 3, 15, 7, 0, 2893, 2894, 3, 41, 20, 0, 2894, 2895, 3, 45, 22, 0, 2895, 298, 1, 0, 0, 0, 2896, 2897, 3, 11, 5, 0, 2897, 2898, 3, 35, 17, 0, 2898, 2899, 3, 37, 18, 0, 2899, 2900, 3, 55, 27, 0, 2900, 300, 1, 0, 0, 0, 2901, 2902, 3, 11, 5, 0, 2902, 2903, 3, 35, 17, 0, 2903, 2904, 3, 41, 20, 0, 2904, 2905, 3, 41, 20, 0, 2905, 302, 1, 0, 0, 0, 2906, 2907, 3, 11, 5, 0, 2907, 2908, 3, 35, 17, 0, 2908, 2909, 3, 41, 20, 0, 2909, 2910, 3, 41, 20, 0, 2910, 2911, 3, 15, 7, 0, 2911, 2912, 3, 43, 21, 0, 2912, 2913, 3, 37, 18, 0, 2913, 2914, 3, 35, 17, 0, 2914, 2915, 3, 33, 16, 0, 2915, 2916, 3, 13, 6, 0, 2916, 2917, 3, 23, 11, 0, 2917, 2918, 3, 33, 16, 0, 2918, 2919, 3, 19, 9, 0, 2919, 304, 1, 0, 0, 0, 2920, 2921, 3, 11, 5, 0, 2921, 2922, 3, 35, 17, 0, 2922, 2923, 3, 43, 21, 0, 2923, 2924, 3, 45, 22, 0, 2924, 2925, 3, 43, 21, 0, 2925, 306, 1, 0, 0, 0, 2926, 2927, 3, 11, 5, 0, 2927, 2928, 3, 35, 17, 0, 2928, 2929, 3, 47, 23, 0, 2929, 2930, 3, 33, 16, 0, 2930, 2931, 3, 45, 22, 0, 2931, 308, 1, 0, 0, 0, 2932, 2933, 3, 11, 5, 0, 2933, 2934, 3, 35, 17, 0, 2934, 2935, 3, 49, 24, 0, 2935, 2936, 3, 7, 3, 0, 2936, 2937, 3, 41, 20, 0, 2937, 2938, 5, 95, 0, 0, 2938, 2939, 3, 37, 18, 0, 2939, 2940, 3, 35, 17, 0, 2940, 2941, 3, 37, 18, 0, 2941, 310, 1, 0, 0, 0, 2942, 2943, 3, 11, 5, 0, 2943, 2944, 3, 35, 17, 0, 2944, 2945, 3, 49, 24, 0, 2945, 2946, 3, 7, 3, 0, 2946, 2947, 3, 41, 20, 0, 2947, 2948, 5, 95, 0, 0, 2948, 2949, 3, 43, 21, 0, 2949, 2950, 3, 7, 3, 0, 2950, 2951, 3, 31, 15, 0, 2951, 2952, 3, 37, 18, 0, 2952, 312, 1, 0, 0, 0, 2953, 2954, 3, 11, 5, 0, 2954, 2955, 3, 41, 20, 0, 2955, 2956, 3, 15, 7, 0, 2956, 2957, 3, 7, 3, 0, 2957, 2958, 3, 45, 22, 0, 2958, 2959, 3, 15, 7, 0, 2959, 314, 1, 0, 0, 0, 2960, 2961, 3, 11, 5, 0, 2961, 2962, 3, 41, 20, 0, 2962, 2963, 3, 15, 7, 0, 2963, 2964, 3, 7, 3, 0, 2964, 2965, 3, 45, 22, 0, 2965, 2966, 3, 15, 7, 0, 2966, 2967, 3, 13, 6, 0, 2967, 2968, 3, 9, 4, 0, 2968, 316, 1, 0, 0, 0, 2969, 2970, 3, 11, 5, 0, 2970, 2971, 3, 41, 20, 0, 2971, 2972, 3, 15, 7, 0, 2972, 2973, 3, 7, 3, 0, 2973, 2974, 3, 45, 22, 0, 2974, 2975, 3, 15, 7, 0, 2975, 2976, 3, 47, 23, 0, 2976, 2977, 3, 43, 21, 0, 2977, 2978, 3, 15, 7, 0, 2978, 2979, 3, 41, 20, 0, 2979, 318, 1, 0, 0, 0, 2980, 2981, 3, 11, 5, 0, 2981, 2982, 3, 41, 20, 0, 2982, 2983, 3, 35, 17, 0, 2983, 2984, 3, 43, 21, 0, 2984, 2985, 3, 43, 21, 0, 2985, 320, 1, 0, 0, 0, 2986, 2987, 3, 11, 5, 0, 2987, 2988, 3, 43, 21, 0, 2988, 2989, 3, 49, 24, 0, 2989, 322, 1, 0, 0, 0, 2990, 2991, 3, 11, 5, 0, 2991, 2992, 3, 47, 23, 0, 2992, 2993, 3, 9, 4, 0, 2993, 2994, 3, 15, 7, 0, 2994, 324, 1, 0, 0, 0, 2995, 2996, 3, 11, 5, 0, 2996, 2997, 3, 47, 23, 0, 2997, 2998, 3, 31, 15, 0, 2998, 2999, 3, 15, 7, 0, 2999, 3000, 5, 95, 0, 0, 3000, 3001, 3, 13, 6, 0, 3001, 3002, 3, 23, 11, 0, 3002, 3003, 3, 43, 21, 0, 3003, 3004, 3, 45, 22, 0, 3004, 326, 1, 0, 0, 0, 3005, 3006, 3, 11, 5, 0, 3006, 3007, 3, 47, 23, 0, 3007, 3008, 3, 41, 20, 0, 3008, 3009, 3, 41, 20, 0, 3009, 3010, 3, 15, 7, 0, 3010, 3011, 3, 33, 16, 0, 3011, 3012, 3, 45, 22, 0, 3012, 328, 1, 0, 0, 0, 3013, 3014, 3, 11, 5, 0, 3014, 3015, 3, 47, 23, 0, 3015, 3016, 3, 41, 20, 0, 3016, 3017, 3, 41, 20, 0, 3017, 3018, 3, 15, 7, 0, 3018, 3019, 3, 33, 16, 0, 3019, 3020, 3, 45, 22, 0, 3020, 3021, 5, 95, 0, 0, 3021, 3022, 3, 13, 6, 0, 3022, 3023, 3, 7, 3, 0, 3023, 3024, 3, 45, 22, 0, 3024, 3025, 3, 15, 7, 0, 3025, 330, 1, 0, 0, 0, 3026, 3027, 3, 11, 5, 0, 3027, 3028, 3, 47, 23, 0, 3028, 3029, 3, 41, 20, 0, 3029, 3030, 3, 41, 20, 0, 3030, 3031, 3, 15, 7, 0, 3031, 3032, 3, 33, 16, 0, 3032, 3033, 3, 45, 22, 0, 3033, 3034, 5, 95, 0, 0, 3034, 3035, 3, 13, 6, 0, 3035, 3036, 3, 15, 7, 0, 3036, 3037, 3, 17, 8, 0, 3037, 3038, 3, 7, 3, 0, 3038, 3039, 3, 47, 23, 0, 3039, 3040, 3, 29, 14, 0, 3040, 3041, 3, 45, 22, 0, 3041, 3042, 5, 95, 0, 0, 3042, 3043, 3, 45, 22, 0, 3043, 3044, 3, 41, 20, 0, 3044, 3045, 3, 7, 3, 0, 3045, 3046, 3, 33, 16, 0, 3046, 3047, 3, 43, 21, 0, 3047, 3048, 3, 17, 8, 0, 3048, 3049, 3, 35, 17, 0, 3049, 3050, 3, 41, 20, 0, 3050, 3051, 3, 31, 15, 0, 3051, 3052, 5, 95, 0, 0, 3052, 3053, 3, 19, 9, 0, 3053, 3054, 3, 41, 20, 0, 3054, 3055, 3, 35, 17, 0, 3055, 3056, 3, 47, 23, 0, 3056, 3057, 3, 37, 18, 0, 3057, 332, 1, 0, 0, 0, 3058, 3059, 3, 11, 5, 0, 3059, 3060, 3, 47, 23, 0, 3060, 3061, 3, 41, 20, 0, 3061, 3062, 3, 41, 20, 0, 3062, 3063, 3, 15, 7, 0, 3063, 3064, 3, 33, 16, 0, 3064, 3065, 3, 45, 22, 0, 3065, 3066, 5, 95, 0, 0, 3066, 3067, 3, 37, 18, 0, 3067, 3068, 3, 7, 3, 0, 3068, 3069, 3, 45, 22, 0, 3069, 3070, 3, 21, 10, 0, 3070, 334, 1, 0, 0, 0, 3071, 3072, 3, 11, 5, 0, 3072, 3073, 3, 47, 23, 0, 3073, 3074, 3, 41, 20, 0, 3074, 3075, 3, 41, 20, 0, 3075, 3076, 3, 15, 7, 0, 3076, 3077, 3, 33, 16, 0, 3077, 3078, 3, 45, 22, 0, 3078, 3079, 5, 95, 0, 0, 3079, 3080, 3, 41, 20, 0, 3080, 3081, 3, 35, 17, 0, 3081, 3082, 3, 29, 14, 0, 3082, 3083, 3, 15, 7, 0, 3083, 336, 1, 0, 0, 0, 3084, 3085, 3, 11, 5, 0, 3085, 3086, 3, 47, 23, 0, 3086, 3087, 3, 41, 20, 0, 3087, 3088, 3, 41, 20, 0, 3088, 3089, 3, 15, 7, 0, 3089, 3090, 3, 33, 16, 0, 3090, 3091, 3, 45, 22, 0, 3091, 3092, 5, 95, 0, 0, 3092, 3093, 3, 45, 22, 0, 3093, 3094, 3, 23, 11, 0, 3094, 3095, 3, 31, 15, 0, 3095, 3096, 3, 15, 7, 0, 3096, 338, 1, 0, 0, 0, 3097, 3098, 3, 11, 5, 0, 3098, 3099, 3, 47, 23, 0, 3099, 3100, 3, 41, 20, 0, 3100, 3101, 3, 41, 20, 0, 3101, 3102, 3, 15, 7, 0, 3102, 3103, 3, 33, 16, 0, 3103, 3104, 3, 45, 22, 0, 3104, 3105, 5, 95, 0, 0, 3105, 3106, 3, 45, 22, 0, 3106, 3107, 3, 23, 11, 0, 3107, 3108, 3, 31, 15, 0, 3108, 3109, 3, 15, 7, 0, 3109, 3110, 3, 43, 21, 0, 3110, 3111, 3, 45, 22, 0, 3111, 3112, 3, 7, 3, 0, 3112, 3113, 3, 31, 15, 0, 3113, 3114, 3, 37, 18, 0, 3114, 340, 1, 0, 0, 0, 3115, 3116, 3, 11, 5, 0, 3116, 3117, 3, 47, 23, 0, 3117, 3118, 3, 41, 20, 0, 3118, 3119, 3, 41, 20, 0, 3119, 3120, 3, 15, 7, 0, 3120, 3121, 3, 33, 16, 0, 3121, 3122, 3, 45, 22, 0, 3122, 3123, 5, 95, 0, 0, 3123, 3124, 3, 45, 22, 0, 3124, 3125, 3, 41, 20, 0, 3125, 3126, 3, 7, 3, 0, 3126, 3127, 3, 33, 16, 0, 3127, 3128, 3, 43, 21, 0, 3128, 3129, 3, 17, 8, 0, 3129, 3130, 3, 35, 17, 0, 3130, 3131, 3, 41, 20, 0, 3131, 3132, 3, 31, 15, 0, 3132, 3133, 5, 95, 0, 0, 3133, 3134, 3, 19, 9, 0, 3134, 3135, 3, 41, 20, 0, 3135, 3136, 3, 35, 17, 0, 3136, 3137, 3, 47, 23, 0, 3137, 3138, 3, 37, 18, 0, 3138, 3139, 5, 95, 0, 0, 3139, 3140, 3, 17, 8, 0, 3140, 3141, 3, 35, 17, 0, 3141, 3142, 3, 41, 20, 0, 3142, 3143, 5, 95, 0, 0, 3143, 3144, 3, 45, 22, 0, 3144, 3145, 3, 55, 27, 0, 3145, 3146, 3, 37, 18, 0, 3146, 3147, 3, 15, 7, 0, 3147, 342, 1, 0, 0, 0, 3148, 3149, 3, 11, 5, 0, 3149, 3150, 3, 47, 23, 0, 3150, 3151, 3, 41, 20, 0, 3151, 3152, 3, 41, 20, 0, 3152, 3153, 3, 15, 7, 0, 3153, 3154, 3, 33, 16, 0, 3154, 3155, 3, 45, 22, 0, 3155, 3156, 5, 95, 0, 0, 3156, 3157, 3, 47, 23, 0, 3157, 3158, 3, 43, 21, 0, 3158, 3159, 3, 15, 7, 0, 3159, 3160, 3, 41, 20, 0, 3160, 344, 1, 0, 0, 0, 3161, 3162, 3, 11, 5, 0, 3162, 3163, 3, 47, 23, 0, 3163, 3164, 3, 41, 20, 0, 3164, 3165, 3, 43, 21, 0, 3165, 3166, 3, 35, 17, 0, 3166, 3167, 3, 41, 20, 0, 3167, 346, 1, 0, 0, 0, 3168, 3169, 3, 11, 5, 0, 3169, 3170, 3, 47, 23, 0, 3170, 3171, 3, 41, 20, 0, 3171, 3172, 3, 43, 21, 0, 3172, 3173, 3, 35, 17, 0, 3173, 3174, 3, 41, 20, 0, 3174, 3175, 5, 95, 0, 0, 3175, 3176, 3, 33, 16, 0, 3176, 3177, 3, 7, 3, 0, 3177, 3178, 3, 31, 15, 0, 3178, 3179, 3, 15, 7, 0, 3179, 348, 1, 0, 0, 0, 3180, 3181, 3, 11, 5, 0, 3181, 3182, 3, 55, 27, 0, 3182, 3183, 3, 11, 5, 0, 3183, 3184, 3, 29, 14, 0, 3184, 3185, 3, 15, 7, 0, 3185, 350, 1, 0, 0, 0, 3186, 3187, 3, 13, 6, 0, 3187, 3188, 3, 7, 3, 0, 3188, 3189, 3, 45, 22, 0, 3189, 3190, 3, 7, 3, 0, 3190, 352, 1, 0, 0, 0, 3191, 3192, 3, 13, 6, 0, 3192, 3193, 3, 7, 3, 0, 3193, 3194, 3, 45, 22, 0, 3194, 3195, 3, 7, 3, 0, 3195, 3196, 3, 9, 4, 0, 3196, 3197, 3, 7, 3, 0, 3197, 3198, 3, 43, 21, 0, 3198, 3199, 3, 15, 7, 0, 3199, 354, 1, 0, 0, 0, 3200, 3201, 3, 13, 6, 0, 3201, 3202, 3, 7, 3, 0, 3202, 3203, 3, 45, 22, 0, 3203, 3204, 3, 15, 7, 0, 3204, 356, 1, 0, 0, 0, 3205, 3206, 3, 13, 6, 0, 3206, 3207, 3, 7, 3, 0, 3207, 3208, 3, 45, 22, 0, 3208, 3209, 3, 15, 7, 0, 3209, 3210, 3, 45, 22, 0, 3210, 3211, 3, 23, 11, 0, 3211, 3212, 3, 31, 15, 0, 3212, 3213, 3, 15, 7, 0, 3213, 3214, 5, 95, 0, 0, 3214, 3215, 3, 23, 11, 0, 3215, 3216, 3, 33, 16, 0, 3216, 3217, 3, 45, 22, 0, 3217, 3218, 3, 15, 7, 0, 3218, 3219, 3, 41, 20, 0, 3219, 3220, 3, 49, 24, 0, 3220, 3221, 3, 7, 3, 0, 3221, 3222, 3, 29, 14, 0, 3222, 3223, 5, 95, 0, 0, 3223, 3224, 3, 11, 5, 0, 3224, 3225, 3, 35, 17, 0, 3225, 3226, 3, 13, 6, 0, 3226, 3227, 3, 15, 7, 0, 3227, 358, 1, 0, 0, 0, 3228, 3229, 3, 13, 6, 0, 3229, 3230, 3, 7, 3, 0, 3230, 3231, 3, 45, 22, 0, 3231, 3232, 3, 15, 7, 0, 3232, 3233, 3, 45, 22, 0, 3233, 3234, 3, 23, 11, 0, 3234, 3235, 3, 31, 15, 0, 3235, 3236, 3, 15, 7, 0, 3236, 3237, 5, 95, 0, 0, 3237, 3238, 3, 23, 11, 0, 3238, 3239, 3, 33, 16, 0, 3239, 3240, 3, 45, 22, 0, 3240, 3241, 3, 15, 7, 0, 3241, 3242, 3, 41, 20, 0, 3242, 3243, 3, 49, 24, 0, 3243, 3244, 3, 7, 3, 0, 3244, 3245, 3, 29, 14, 0, 3245, 3246, 5, 95, 0, 0, 3246, 3247, 3, 37, 18, 0, 3247, 3248, 3, 41, 20, 0, 3248, 3249, 3, 15, 7, 0, 3249, 3250, 3, 11, 5, 0, 3250, 3251, 3, 23, 11, 0, 3251, 3252, 3, 43, 21, 0, 3252, 3253, 3, 23, 11, 0, 3253, 3254, 3, 35, 17, 0, 3254, 3255, 3, 33, 16, 0, 3255, 360, 1, 0, 0, 0, 3256, 3257, 3, 13, 6, 0, 3257, 3258, 3, 7, 3, 0, 3258, 3259, 3, 55, 27, 0, 3259, 362, 1, 0, 0, 0, 3260, 3261, 3, 13, 6, 0, 3261, 3262, 3, 15, 7, 0, 3262, 3263, 3, 7, 3, 0, 3263, 3264, 3, 29, 14, 0, 3264, 3265, 3, 29, 14, 0, 3265, 3266, 3, 35, 17, 0, 3266, 3267, 3, 11, 5, 0, 3267, 3268, 3, 7, 3, 0, 3268, 3269, 3, 45, 22, 0, 3269, 3270, 3, 15, 7, 0, 3270, 364, 1, 0, 0, 0, 3271, 3272, 3, 13, 6, 0, 3272, 3273, 3, 15, 7, 0, 3273, 3274, 3, 11, 5, 0, 3274, 366, 1, 0, 0, 0, 3275, 3276, 3, 13, 6, 0, 3276, 3277, 3, 15, 7, 0, 3277, 3278, 3, 11, 5, 0, 3278, 3279, 3, 23, 11, 0, 3279, 3280, 3, 31, 15, 0, 3280, 3281, 3, 7, 3, 0, 3281, 3282, 3, 29, 14, 0, 3282, 368, 1, 0, 0, 0, 3283, 3284, 3, 13, 6, 0, 3284, 3285, 3, 15, 7, 0, 3285, 3286, 3, 11, 5, 0, 3286, 3287, 3, 29, 14, 0, 3287, 3288, 3, 7, 3, 0, 3288, 3289, 3, 41, 20, 0, 3289, 3290, 3, 15, 7, 0, 3290, 370, 1, 0, 0, 0, 3291, 3292, 3, 13, 6, 0, 3292, 3293, 3, 15, 7, 0, 3293, 3294, 3, 17, 8, 0, 3294, 3295, 3, 7, 3, 0, 3295, 3296, 3, 47, 23, 0, 3296, 3297, 3, 29, 14, 0, 3297, 3298, 3, 45, 22, 0, 3298, 372, 1, 0, 0, 0, 3299, 3300, 3, 13, 6, 0, 3300, 3301, 3, 15, 7, 0, 3301, 3302, 3, 17, 8, 0, 3302, 3303, 3, 7, 3, 0, 3303, 3304, 3, 47, 23, 0, 3304, 3305, 3, 29, 14, 0, 3305, 3306, 3, 45, 22, 0, 3306, 3307, 3, 43, 21, 0, 3307, 374, 1, 0, 0, 0, 3308, 3309, 3, 13, 6, 0, 3309, 3310, 3, 15, 7, 0, 3310, 3311, 3, 17, 8, 0, 3311, 3312, 3, 15, 7, 0, 3312, 3313, 3, 41, 20, 0, 3313, 3314, 3, 7, 3, 0, 3314, 3315, 3, 9, 4, 0, 3315, 3316, 3, 29, 14, 0, 3316, 3317, 3, 15, 7, 0, 3317, 376, 1, 0, 0, 0, 3318, 3319, 3, 13, 6, 0, 3319, 3320, 3, 15, 7, 0, 3320, 3321, 3, 17, 8, 0, 3321, 3322, 3, 15, 7, 0, 3322, 3323, 3, 41, 20, 0, 3323, 3324, 3, 41, 20, 0, 3324, 3325, 3, 7, 3, 0, 3325, 3326, 3, 9, 4, 0, 3326, 3327, 3, 29, 14, 0, 3327, 3328, 3, 15, 7, 0, 3328, 378, 1, 0, 0, 0, 3329, 3330, 3, 13, 6, 0, 3330, 3331, 3, 15, 7, 0, 3331, 3332, 3, 17, 8, 0, 3332, 3333, 3, 15, 7, 0, 3333, 3334, 3, 41, 20, 0, 3334, 3335, 3, 41, 20, 0, 3335, 3336, 3, 15, 7, 0, 3336, 3337, 3, 13, 6, 0, 3337, 380, 1, 0, 0, 0, 3338, 3339, 3, 13, 6, 0, 3339, 3340, 3, 15, 7, 0, 3340, 3341, 3, 17, 8, 0, 3341, 3342, 3, 23, 11, 0, 3342, 3343, 3, 33, 16, 0, 3343, 3344, 3, 15, 7, 0, 3344, 3345, 3, 13, 6, 0, 3345, 382, 1, 0, 0, 0, 3346, 3347, 3, 13, 6, 0, 3347, 3348, 3, 15, 7, 0, 3348, 3349, 3, 17, 8, 0, 3349, 3350, 3, 23, 11, 0, 3350, 3351, 3, 33, 16, 0, 3351, 3352, 3, 15, 7, 0, 3352, 3353, 3, 41, 20, 0, 3353, 384, 1, 0, 0, 0, 3354, 3355, 3, 13, 6, 0, 3355, 3356, 3, 15, 7, 0, 3356, 3357, 3, 19, 9, 0, 3357, 3358, 3, 41, 20, 0, 3358, 3359, 3, 15, 7, 0, 3359, 3360, 3, 15, 7, 0, 3360, 386, 1, 0, 0, 0, 3361, 3362, 3, 13, 6, 0, 3362, 3363, 3, 15, 7, 0, 3363, 3364, 3, 29, 14, 0, 3364, 3365, 3, 15, 7, 0, 3365, 3366, 3, 45, 22, 0, 3366, 3367, 3, 15, 7, 0, 3367, 388, 1, 0, 0, 0, 3368, 3369, 3, 13, 6, 0, 3369, 3370, 3, 15, 7, 0, 3370, 3371, 3, 29, 14, 0, 3371, 3372, 3, 23, 11, 0, 3372, 3373, 3, 31, 15, 0, 3373, 3374, 3, 23, 11, 0, 3374, 3375, 3, 45, 22, 0, 3375, 3376, 3, 15, 7, 0, 3376, 3377, 3, 41, 20, 0, 3377, 390, 1, 0, 0, 0, 3378, 3379, 3, 13, 6, 0, 3379, 3380, 3, 15, 7, 0, 3380, 3381, 3, 29, 14, 0, 3381, 3382, 3, 23, 11, 0, 3382, 3383, 3, 31, 15, 0, 3383, 3384, 3, 23, 11, 0, 3384, 3385, 3, 45, 22, 0, 3385, 3386, 3, 15, 7, 0, 3386, 3387, 3, 41, 20, 0, 3387, 3388, 3, 43, 21, 0, 3388, 392, 1, 0, 0, 0, 3389, 3390, 3, 13, 6, 0, 3390, 3391, 3, 15, 7, 0, 3391, 3392, 3, 33, 16, 0, 3392, 3393, 3, 43, 21, 0, 3393, 3394, 3, 15, 7, 0, 3394, 3395, 5, 95, 0, 0, 3395, 3396, 3, 41, 20, 0, 3396, 3397, 3, 7, 3, 0, 3397, 3398, 3, 33, 16, 0, 3398, 3399, 3, 27, 13, 0, 3399, 394, 1, 0, 0, 0, 3400, 3401, 3, 13, 6, 0, 3401, 3402, 3, 15, 7, 0, 3402, 3403, 3, 37, 18, 0, 3403, 3404, 3, 15, 7, 0, 3404, 3405, 3, 33, 16, 0, 3405, 3406, 3, 13, 6, 0, 3406, 3407, 3, 43, 21, 0, 3407, 396, 1, 0, 0, 0, 3408, 3409, 3, 13, 6, 0, 3409, 3410, 3, 15, 7, 0, 3410, 3411, 3, 37, 18, 0, 3411, 3412, 3, 45, 22, 0, 3412, 3413, 3, 21, 10, 0, 3413, 398, 1, 0, 0, 0, 3414, 3415, 3, 13, 6, 0, 3415, 3416, 3, 15, 7, 0, 3416, 3417, 3, 41, 20, 0, 3417, 3418, 3, 15, 7, 0, 3418, 3419, 3, 17, 8, 0, 3419, 400, 1, 0, 0, 0, 3420, 3421, 3, 13, 6, 0, 3421, 3422, 3, 15, 7, 0, 3422, 3423, 3, 41, 20, 0, 3423, 3424, 3, 23, 11, 0, 3424, 3425, 3, 49, 24, 0, 3425, 3426, 3, 15, 7, 0, 3426, 3427, 3, 13, 6, 0, 3427, 402, 1, 0, 0, 0, 3428, 3429, 3, 13, 6, 0, 3429, 3430, 3, 15, 7, 0, 3430, 3431, 3, 43, 21, 0, 3431, 3432, 3, 11, 5, 0, 3432, 404, 1, 0, 0, 0, 3433, 3434, 3, 13, 6, 0, 3434, 3435, 3, 15, 7, 0, 3435, 3436, 3, 43, 21, 0, 3436, 3437, 3, 11, 5, 0, 3437, 3438, 3, 41, 20, 0, 3438, 3439, 3, 23, 11, 0, 3439, 3440, 3, 9, 4, 0, 3440, 3441, 3, 15, 7, 0, 3441, 406, 1, 0, 0, 0, 3442, 3443, 3, 13, 6, 0, 3443, 3444, 3, 15, 7, 0, 3444, 3445, 3, 43, 21, 0, 3445, 3446, 3, 11, 5, 0, 3446, 3447, 3, 41, 20, 0, 3447, 3448, 3, 23, 11, 0, 3448, 3449, 3, 37, 18, 0, 3449, 3450, 3, 45, 22, 0, 3450, 3451, 3, 35, 17, 0, 3451, 3452, 3, 41, 20, 0, 3452, 408, 1, 0, 0, 0, 3453, 3454, 3, 13, 6, 0, 3454, 3455, 3, 15, 7, 0, 3455, 3456, 3, 43, 21, 0, 3456, 3457, 3, 45, 22, 0, 3457, 3458, 3, 41, 20, 0, 3458, 3459, 3, 35, 17, 0, 3459, 3460, 3, 55, 27, 0, 3460, 410, 1, 0, 0, 0, 3461, 3462, 3, 13, 6, 0, 3462, 3463, 3, 15, 7, 0, 3463, 3464, 3, 43, 21, 0, 3464, 3465, 3, 45, 22, 0, 3465, 3466, 3, 41, 20, 0, 3466, 3467, 3, 47, 23, 0, 3467, 3468, 3, 11, 5, 0, 3468, 3469, 3, 45, 22, 0, 3469, 3470, 3, 35, 17, 0, 3470, 3471, 3, 41, 20, 0, 3471, 412, 1, 0, 0, 0, 3472, 3473, 3, 13, 6, 0, 3473, 3474, 3, 15, 7, 0, 3474, 3475, 3, 45, 22, 0, 3475, 3476, 3, 15, 7, 0, 3476, 3477, 3, 41, 20, 0, 3477, 3478, 3, 31, 15, 0, 3478, 3479, 3, 23, 11, 0, 3479, 3480, 3, 33, 16, 0, 3480, 3481, 3, 23, 11, 0, 3481, 3482, 3, 43, 21, 0, 3482, 3483, 3, 45, 22, 0, 3483, 3484, 3, 23, 11, 0, 3484, 3485, 3, 11, 5, 0, 3485, 414, 1, 0, 0, 0, 3486, 3487, 3, 13, 6, 0, 3487, 3488, 3, 23, 11, 0, 3488, 3489, 3, 7, 3, 0, 3489, 3490, 3, 19, 9, 0, 3490, 3491, 3, 33, 16, 0, 3491, 3492, 3, 35, 17, 0, 3492, 3493, 3, 43, 21, 0, 3493, 3494, 3, 45, 22, 0, 3494, 3495, 3, 23, 11, 0, 3495, 3496, 3, 11, 5, 0, 3496, 3497, 3, 43, 21, 0, 3497, 416, 1, 0, 0, 0, 3498, 3499, 3, 13, 6, 0, 3499, 3500, 3, 23, 11, 0, 3500, 3501, 3, 11, 5, 0, 3501, 3502, 3, 45, 22, 0, 3502, 3503, 3, 23, 11, 0, 3503, 3504, 3, 35, 17, 0, 3504, 3505, 3, 33, 16, 0, 3505, 3506, 3, 7, 3, 0, 3506, 3507, 3, 41, 20, 0, 3507, 3508, 3, 55, 27, 0, 3508, 418, 1, 0, 0, 0, 3509, 3510, 3, 13, 6, 0, 3510, 3511, 3, 23, 11, 0, 3511, 3512, 3, 43, 21, 0, 3512, 3513, 3, 7, 3, 0, 3513, 3514, 3, 9, 4, 0, 3514, 3515, 3, 29, 14, 0, 3515, 3516, 3, 15, 7, 0, 3516, 420, 1, 0, 0, 0, 3517, 3518, 3, 13, 6, 0, 3518, 3519, 3, 23, 11, 0, 3519, 3520, 3, 43, 21, 0, 3520, 3521, 3, 7, 3, 0, 3521, 3522, 3, 9, 4, 0, 3522, 3523, 3, 29, 14, 0, 3523, 3524, 3, 15, 7, 0, 3524, 3525, 5, 95, 0, 0, 3525, 3526, 3, 37, 18, 0, 3526, 3527, 3, 7, 3, 0, 3527, 3528, 3, 19, 9, 0, 3528, 3529, 3, 15, 7, 0, 3529, 3530, 5, 95, 0, 0, 3530, 3531, 3, 43, 21, 0, 3531, 3532, 3, 27, 13, 0, 3532, 3533, 3, 23, 11, 0, 3533, 3534, 3, 37, 18, 0, 3534, 3535, 3, 37, 18, 0, 3535, 3536, 3, 23, 11, 0, 3536, 3537, 3, 33, 16, 0, 3537, 3538, 3, 19, 9, 0, 3538, 422, 1, 0, 0, 0, 3539, 3540, 3, 13, 6, 0, 3540, 3541, 3, 23, 11, 0, 3541, 3542, 3, 43, 21, 0, 3542, 3543, 3, 11, 5, 0, 3543, 3544, 3, 7, 3, 0, 3544, 3545, 3, 41, 20, 0, 3545, 3546, 3, 13, 6, 0, 3546, 424, 1, 0, 0, 0, 3547, 3548, 3, 13, 6, 0, 3548, 3549, 3, 23, 11, 0, 3549, 3550, 3, 43, 21, 0, 3550, 3551, 3, 11, 5, 0, 3551, 3552, 3, 35, 17, 0, 3552, 3553, 3, 33, 16, 0, 3553, 3554, 3, 33, 16, 0, 3554, 3555, 3, 15, 7, 0, 3555, 3556, 3, 11, 5, 0, 3556, 3557, 3, 45, 22, 0, 3557, 426, 1, 0, 0, 0, 3558, 3559, 3, 13, 6, 0, 3559, 3560, 3, 23, 11, 0, 3560, 3561, 3, 43, 21, 0, 3561, 3562, 3, 37, 18, 0, 3562, 3563, 3, 7, 3, 0, 3563, 3564, 3, 45, 22, 0, 3564, 3565, 3, 11, 5, 0, 3565, 3566, 3, 21, 10, 0, 3566, 428, 1, 0, 0, 0, 3567, 3568, 3, 13, 6, 0, 3568, 3569, 3, 23, 11, 0, 3569, 3570, 3, 43, 21, 0, 3570, 3571, 3, 45, 22, 0, 3571, 3572, 3, 23, 11, 0, 3572, 3573, 3, 33, 16, 0, 3573, 3574, 3, 11, 5, 0, 3574, 3575, 3, 45, 22, 0, 3575, 430, 1, 0, 0, 0, 3576, 3577, 3, 13, 6, 0, 3577, 3578, 3, 35, 17, 0, 3578, 432, 1, 0, 0, 0, 3579, 3580, 3, 13, 6, 0, 3580, 3581, 3, 35, 17, 0, 3581, 3582, 3, 31, 15, 0, 3582, 3583, 3, 7, 3, 0, 3583, 3584, 3, 23, 11, 0, 3584, 3585, 3, 33, 16, 0, 3585, 434, 1, 0, 0, 0, 3586, 3587, 3, 13, 6, 0, 3587, 3588, 3, 35, 17, 0, 3588, 3589, 3, 47, 23, 0, 3589, 3590, 3, 9, 4, 0, 3590, 3591, 3, 29, 14, 0, 3591, 3592, 3, 15, 7, 0, 3592, 436, 1, 0, 0, 0, 3593, 3594, 3, 13, 6, 0, 3594, 3595, 3, 41, 20, 0, 3595, 3596, 3, 35, 17, 0, 3596, 3597, 3, 37, 18, 0, 3597, 438, 1, 0, 0, 0, 3598, 3599, 3, 13, 6, 0, 3599, 3600, 3, 55, 27, 0, 3600, 3601, 3, 33, 16, 0, 3601, 3602, 3, 7, 3, 0, 3602, 3603, 3, 31, 15, 0, 3603, 3604, 3, 23, 11, 0, 3604, 3605, 3, 11, 5, 0, 3605, 440, 1, 0, 0, 0, 3606, 3607, 3, 13, 6, 0, 3607, 3608, 3, 55, 27, 0, 3608, 3609, 3, 33, 16, 0, 3609, 3610, 3, 7, 3, 0, 3610, 3611, 3, 31, 15, 0, 3611, 3612, 3, 23, 11, 0, 3612, 3613, 3, 11, 5, 0, 3613, 3614, 5, 95, 0, 0, 3614, 3615, 3, 17, 8, 0, 3615, 3616, 3, 47, 23, 0, 3616, 3617, 3, 33, 16, 0, 3617, 3618, 3, 11, 5, 0, 3618, 3619, 3, 45, 22, 0, 3619, 3620, 3, 23, 11, 0, 3620, 3621, 3, 35, 17, 0, 3621, 3622, 3, 33, 16, 0, 3622, 442, 1, 0, 0, 0, 3623, 3624, 3, 13, 6, 0, 3624, 3625, 3, 55, 27, 0, 3625, 3626, 3, 33, 16, 0, 3626, 3627, 3, 7, 3, 0, 3627, 3628, 3, 31, 15, 0, 3628, 3629, 3, 23, 11, 0, 3629, 3630, 3, 11, 5, 0, 3630, 3631, 5, 95, 0, 0, 3631, 3632, 3, 17, 8, 0, 3632, 3633, 3, 47, 23, 0, 3633, 3634, 3, 33, 16, 0, 3634, 3635, 3, 11, 5, 0, 3635, 3636, 3, 45, 22, 0, 3636, 3637, 3, 23, 11, 0, 3637, 3638, 3, 35, 17, 0, 3638, 3639, 3, 33, 16, 0, 3639, 3640, 5, 95, 0, 0, 3640, 3641, 3, 11, 5, 0, 3641, 3642, 3, 35, 17, 0, 3642, 3643, 3, 13, 6, 0, 3643, 3644, 3, 15, 7, 0, 3644, 444, 1, 0, 0, 0, 3645, 3646, 3, 15, 7, 0, 3646, 3647, 3, 7, 3, 0, 3647, 3648, 3, 11, 5, 0, 3648, 3649, 3, 21, 10, 0, 3649, 446, 1, 0, 0, 0, 3650, 3651, 3, 15, 7, 0, 3651, 3652, 3, 29, 14, 0, 3652, 3653, 3, 15, 7, 0, 3653, 3654, 3, 31, 15, 0, 3654, 3655, 3, 15, 7, 0, 3655, 3656, 3, 33, 16, 0, 3656, 3657, 3, 45, 22, 0, 3657, 448, 1, 0, 0, 0, 3658, 3659, 3, 15, 7, 0, 3659, 3660, 3, 29, 14, 0, 3660, 3661, 3, 43, 21, 0, 3661, 3662, 3, 15, 7, 0, 3662, 450, 1, 0, 0, 0, 3663, 3664, 3, 15, 7, 0, 3664, 3665, 3, 33, 16, 0, 3665, 3666, 3, 7, 3, 0, 3666, 3667, 3, 9, 4, 0, 3667, 3668, 3, 29, 14, 0, 3668, 3669, 3, 15, 7, 0, 3669, 452, 1, 0, 0, 0, 3670, 3671, 3, 15, 7, 0, 3671, 3672, 3, 33, 16, 0, 3672, 3673, 3, 11, 5, 0, 3673, 3674, 3, 35, 17, 0, 3674, 3675, 3, 13, 6, 0, 3675, 3676, 3, 23, 11, 0, 3676, 3677, 3, 33, 16, 0, 3677, 3678, 3, 19, 9, 0, 3678, 454, 1, 0, 0, 0, 3679, 3680, 3, 15, 7, 0, 3680, 3681, 3, 33, 16, 0, 3681, 3682, 3, 11, 5, 0, 3682, 3683, 3, 41, 20, 0, 3683, 3684, 3, 55, 27, 0, 3684, 3685, 3, 37, 18, 0, 3685, 3686, 3, 45, 22, 0, 3686, 3687, 3, 15, 7, 0, 3687, 3688, 3, 13, 6, 0, 3688, 456, 1, 0, 0, 0, 3689, 3690, 3, 15, 7, 0, 3690, 3691, 3, 33, 16, 0, 3691, 3692, 3, 13, 6, 0, 3692, 458, 1, 0, 0, 0, 3693, 3694, 3, 15, 7, 0, 3694, 3695, 3, 33, 16, 0, 3695, 3696, 3, 13, 6, 0, 3696, 3697, 5, 45, 0, 0, 3697, 3698, 3, 15, 7, 0, 3698, 3699, 3, 53, 26, 0, 3699, 3700, 3, 15, 7, 0, 3700, 3701, 3, 11, 5, 0, 3701, 460, 1, 0, 0, 0, 3702, 3703, 3, 15, 7, 0, 3703, 3704, 3, 39, 19, 0, 3704, 3705, 3, 47, 23, 0, 3705, 3706, 3, 7, 3, 0, 3706, 3707, 3, 29, 14, 0, 3707, 3708, 3, 43, 21, 0, 3708, 462, 1, 0, 0, 0, 3709, 3710, 3, 15, 7, 0, 3710, 3711, 3, 43, 21, 0, 3711, 3712, 3, 11, 5, 0, 3712, 3713, 3, 7, 3, 0, 3713, 3714, 3, 37, 18, 0, 3714, 3715, 3, 15, 7, 0, 3715, 464, 1, 0, 0, 0, 3716, 3717, 3, 15, 7, 0, 3717, 3718, 3, 49, 24, 0, 3718, 3719, 3, 15, 7, 0, 3719, 3720, 3, 41, 20, 0, 3720, 3721, 3, 55, 27, 0, 3721, 466, 1, 0, 0, 0, 3722, 3723, 3, 15, 7, 0, 3723, 3724, 3, 53, 26, 0, 3724, 3725, 3, 11, 5, 0, 3725, 3726, 3, 15, 7, 0, 3726, 3727, 3, 37, 18, 0, 3727, 3728, 3, 45, 22, 0, 3728, 468, 1, 0, 0, 0, 3729, 3730, 3, 15, 7, 0, 3730, 3731, 3, 53, 26, 0, 3731, 3732, 3, 11, 5, 0, 3732, 3733, 3, 15, 7, 0, 3733, 3734, 3, 37, 18, 0, 3734, 3735, 3, 45, 22, 0, 3735, 3736, 3, 23, 11, 0, 3736, 3737, 3, 35, 17, 0, 3737, 3738, 3, 33, 16, 0, 3738, 470, 1, 0, 0, 0, 3739, 3740, 3, 15, 7, 0, 3740, 3741, 3, 53, 26, 0, 3741, 3742, 3, 11, 5, 0, 3742, 3743, 3, 29, 14, 0, 3743, 3744, 3, 47, 23, 0, 3744, 3745, 3, 13, 6, 0, 3745, 3746, 3, 15, 7, 0, 3746, 472, 1, 0, 0, 0, 3747, 3748, 3, 15, 7, 0, 3748, 3749, 3, 53, 26, 0, 3749, 3750, 3, 11, 5, 0, 3750, 3751, 3, 29, 14, 0, 3751, 3752, 3, 47, 23, 0, 3752, 3753, 3, 13, 6, 0, 3753, 3754, 3, 23, 11, 0, 3754, 3755, 3, 33, 16, 0, 3755, 3756, 3, 19, 9, 0, 3756, 474, 1, 0, 0, 0, 3757, 3758, 3, 15, 7, 0, 3758, 3759, 3, 53, 26, 0, 3759, 3760, 3, 11, 5, 0, 3760, 3761, 3, 29, 14, 0, 3761, 3762, 3, 47, 23, 0, 3762, 3763, 3, 43, 21, 0, 3763, 3764, 3, 23, 11, 0, 3764, 3765, 3, 49, 24, 0, 3765, 3766, 3, 15, 7, 0, 3766, 476, 1, 0, 0, 0, 3767, 3768, 3, 15, 7, 0, 3768, 3769, 3, 53, 26, 0, 3769, 3770, 3, 15, 7, 0, 3770, 3771, 3, 11, 5, 0, 3771, 478, 1, 0, 0, 0, 3772, 3773, 3, 15, 7, 0, 3773, 3774, 3, 53, 26, 0, 3774, 3775, 3, 15, 7, 0, 3775, 3776, 3, 11, 5, 0, 3776, 3777, 3, 47, 23, 0, 3777, 3778, 3, 45, 22, 0, 3778, 3779, 3, 15, 7, 0, 3779, 480, 1, 0, 0, 0, 3780, 3781, 3, 15, 7, 0, 3781, 3782, 3, 53, 26, 0, 3782, 3783, 3, 23, 11, 0, 3783, 3784, 3, 43, 21, 0, 3784, 3785, 3, 45, 22, 0, 3785, 3786, 3, 23, 11, 0, 3786, 3787, 3, 33, 16, 0, 3787, 3788, 3, 19, 9, 0, 3788, 482, 1, 0, 0, 0, 3789, 3790, 3, 15, 7, 0, 3790, 3791, 3, 53, 26, 0, 3791, 3792, 3, 23, 11, 0, 3792, 3793, 3, 43, 21, 0, 3793, 3794, 3, 45, 22, 0, 3794, 3795, 3, 43, 21, 0, 3795, 484, 1, 0, 0, 0, 3796, 3797, 3, 15, 7, 0, 3797, 3798, 3, 53, 26, 0, 3798, 3799, 3, 37, 18, 0, 3799, 486, 1, 0, 0, 0, 3800, 3801, 3, 15, 7, 0, 3801, 3802, 3, 53, 26, 0, 3802, 3803, 3, 37, 18, 0, 3803, 3804, 3, 29, 14, 0, 3804, 3805, 3, 7, 3, 0, 3805, 3806, 3, 23, 11, 0, 3806, 3807, 3, 33, 16, 0, 3807, 488, 1, 0, 0, 0, 3808, 3809, 3, 15, 7, 0, 3809, 3810, 3, 53, 26, 0, 3810, 3811, 3, 45, 22, 0, 3811, 3812, 3, 15, 7, 0, 3812, 3813, 3, 33, 16, 0, 3813, 3814, 3, 13, 6, 0, 3814, 3815, 3, 15, 7, 0, 3815, 3816, 3, 13, 6, 0, 3816, 490, 1, 0, 0, 0, 3817, 3818, 3, 15, 7, 0, 3818, 3819, 3, 53, 26, 0, 3819, 3820, 3, 45, 22, 0, 3820, 3821, 3, 15, 7, 0, 3821, 3822, 3, 33, 16, 0, 3822, 3823, 3, 43, 21, 0, 3823, 3824, 3, 23, 11, 0, 3824, 3825, 3, 35, 17, 0, 3825, 3826, 3, 33, 16, 0, 3826, 492, 1, 0, 0, 0, 3827, 3828, 3, 15, 7, 0, 3828, 3829, 3, 53, 26, 0, 3829, 3830, 3, 45, 22, 0, 3830, 3831, 3, 15, 7, 0, 3831, 3832, 3, 41, 20, 0, 3832, 3833, 3, 33, 16, 0, 3833, 3834, 3, 7, 3, 0, 3834, 3835, 3, 29, 14, 0, 3835, 494, 1, 0, 0, 0, 3836, 3837, 3, 15, 7, 0, 3837, 3838, 3, 53, 26, 0, 3838, 3839, 3, 45, 22, 0, 3839, 3840, 3, 41, 20, 0, 3840, 3841, 3, 7, 3, 0, 3841, 3842, 3, 11, 5, 0, 3842, 3843, 3, 45, 22, 0, 3843, 496, 1, 0, 0, 0, 3844, 3845, 3, 17, 8, 0, 3845, 3846, 3, 7, 3, 0, 3846, 3847, 3, 29, 14, 0, 3847, 3848, 3, 43, 21, 0, 3848, 3849, 3, 15, 7, 0, 3849, 498, 1, 0, 0, 0, 3850, 3851, 3, 17, 8, 0, 3851, 3852, 3, 15, 7, 0, 3852, 3853, 3, 45, 22, 0, 3853, 3854, 3, 11, 5, 0, 3854, 3855, 3, 21, 10, 0, 3855, 500, 1, 0, 0, 0, 3856, 3857, 3, 17, 8, 0, 3857, 3858, 3, 23, 11, 0, 3858, 3859, 3, 15, 7, 0, 3859, 3860, 3, 29, 14, 0, 3860, 3861, 3, 13, 6, 0, 3861, 3862, 3, 43, 21, 0, 3862, 502, 1, 0, 0, 0, 3863, 3864, 3, 17, 8, 0, 3864, 3865, 3, 23, 11, 0, 3865, 3866, 3, 29, 14, 0, 3866, 3867, 3, 45, 22, 0, 3867, 3868, 3, 15, 7, 0, 3868, 3869, 3, 41, 20, 0, 3869, 504, 1, 0, 0, 0, 3870, 3871, 3, 17, 8, 0, 3871, 3872, 3, 23, 11, 0, 3872, 3873, 3, 33, 16, 0, 3873, 3874, 3, 7, 3, 0, 3874, 3875, 3, 29, 14, 0, 3875, 506, 1, 0, 0, 0, 3876, 3877, 3, 17, 8, 0, 3877, 3878, 3, 23, 11, 0, 3878, 3879, 3, 41, 20, 0, 3879, 3880, 3, 43, 21, 0, 3880, 3881, 3, 45, 22, 0, 3881, 508, 1, 0, 0, 0, 3882, 3883, 3, 17, 8, 0, 3883, 3884, 3, 29, 14, 0, 3884, 3885, 3, 35, 17, 0, 3885, 3886, 3, 7, 3, 0, 3886, 3887, 3, 45, 22, 0, 3887, 510, 1, 0, 0, 0, 3888, 3889, 3, 17, 8, 0, 3889, 3890, 3, 29, 14, 0, 3890, 3891, 3, 35, 17, 0, 3891, 3892, 3, 35, 17, 0, 3892, 3893, 3, 41, 20, 0, 3893, 512, 1, 0, 0, 0, 3894, 3895, 3, 17, 8, 0, 3895, 3896, 3, 35, 17, 0, 3896, 3897, 3, 29, 14, 0, 3897, 3898, 3, 29, 14, 0, 3898, 3899, 3, 35, 17, 0, 3899, 3900, 3, 51, 25, 0, 3900, 3901, 3, 23, 11, 0, 3901, 3902, 3, 33, 16, 0, 3902, 3903, 3, 19, 9, 0, 3903, 514, 1, 0, 0, 0, 3904, 3905, 3, 17, 8, 0, 3905, 3906, 3, 35, 17, 0, 3906, 3907, 3, 41, 20, 0, 3907, 516, 1, 0, 0, 0, 3908, 3909, 3, 17, 8, 0, 3909, 3910, 3, 35, 17, 0, 3910, 3911, 3, 41, 20, 0, 3911, 3912, 3, 11, 5, 0, 3912, 3913, 3, 15, 7, 0, 3913, 518, 1, 0, 0, 0, 3914, 3915, 3, 17, 8, 0, 3915, 3916, 3, 35, 17, 0, 3916, 3917, 3, 41, 20, 0, 3917, 3918, 3, 15, 7, 0, 3918, 3919, 3, 23, 11, 0, 3919, 3920, 3, 19, 9, 0, 3920, 3921, 3, 33, 16, 0, 3921, 520, 1, 0, 0, 0, 3922, 3923, 3, 17, 8, 0, 3923, 3924, 3, 35, 17, 0, 3924, 3925, 3, 41, 20, 0, 3925, 3926, 3, 31, 15, 0, 3926, 3927, 3, 7, 3, 0, 3927, 3928, 3, 45, 22, 0, 3928, 522, 1, 0, 0, 0, 3929, 3930, 3, 17, 8, 0, 3930, 3931, 3, 35, 17, 0, 3931, 3932, 3, 41, 20, 0, 3932, 3933, 3, 45, 22, 0, 3933, 3934, 3, 41, 20, 0, 3934, 3935, 3, 7, 3, 0, 3935, 3936, 3, 33, 16, 0, 3936, 524, 1, 0, 0, 0, 3937, 3938, 3, 17, 8, 0, 3938, 3939, 3, 35, 17, 0, 3939, 3940, 3, 41, 20, 0, 3940, 3941, 3, 51, 25, 0, 3941, 3942, 3, 7, 3, 0, 3942, 3943, 3, 41, 20, 0, 3943, 3944, 3, 13, 6, 0, 3944, 526, 1, 0, 0, 0, 3945, 3946, 3, 17, 8, 0, 3946, 3947, 3, 35, 17, 0, 3947, 3948, 3, 47, 23, 0, 3948, 3949, 3, 33, 16, 0, 3949, 3950, 3, 13, 6, 0, 3950, 528, 1, 0, 0, 0, 3951, 3952, 3, 17, 8, 0, 3952, 3953, 3, 41, 20, 0, 3953, 3954, 3, 15, 7, 0, 3954, 3955, 3, 15, 7, 0, 3955, 530, 1, 0, 0, 0, 3956, 3957, 3, 17, 8, 0, 3957, 3958, 3, 41, 20, 0, 3958, 3959, 3, 15, 7, 0, 3959, 3960, 3, 15, 7, 0, 3960, 3961, 3, 57, 28, 0, 3961, 3962, 3, 15, 7, 0, 3962, 532, 1, 0, 0, 0, 3963, 3964, 3, 17, 8, 0, 3964, 3965, 3, 41, 20, 0, 3965, 3966, 3, 35, 17, 0, 3966, 3967, 3, 31, 15, 0, 3967, 534, 1, 0, 0, 0, 3968, 3969, 3, 17, 8, 0, 3969, 3970, 3, 47, 23, 0, 3970, 3971, 3, 29, 14, 0, 3971, 3972, 3, 29, 14, 0, 3972, 536, 1, 0, 0, 0, 3973, 3974, 3, 17, 8, 0, 3974, 3975, 3, 47, 23, 0, 3975, 3976, 3, 33, 16, 0, 3976, 3977, 3, 11, 5, 0, 3977, 3978, 3, 45, 22, 0, 3978, 3979, 3, 23, 11, 0, 3979, 3980, 3, 35, 17, 0, 3980, 3981, 3, 33, 16, 0, 3981, 538, 1, 0, 0, 0, 3982, 3983, 3, 17, 8, 0, 3983, 3984, 3, 47, 23, 0, 3984, 3985, 3, 43, 21, 0, 3985, 3986, 3, 23, 11, 0, 3986, 3987, 3, 35, 17, 0, 3987, 3988, 3, 33, 16, 0, 3988, 540, 1, 0, 0, 0, 3989, 3990, 3, 19, 9, 0, 3990, 542, 1, 0, 0, 0, 3991, 3992, 3, 19, 9, 0, 3992, 3993, 3, 15, 7, 0, 3993, 3994, 3, 33, 16, 0, 3994, 3995, 3, 15, 7, 0, 3995, 3996, 3, 41, 20, 0, 3996, 3997, 3, 7, 3, 0, 3997, 3998, 3, 29, 14, 0, 3998, 544, 1, 0, 0, 0, 3999, 4000, 3, 19, 9, 0, 4000, 4001, 3, 15, 7, 0, 4001, 4002, 3, 33, 16, 0, 4002, 4003, 3, 15, 7, 0, 4003, 4004, 3, 41, 20, 0, 4004, 4005, 3, 7, 3, 0, 4005, 4006, 3, 45, 22, 0, 4006, 4007, 3, 15, 7, 0, 4007, 4008, 3, 13, 6, 0, 4008, 546, 1, 0, 0, 0, 4009, 4010, 3, 19, 9, 0, 4010, 4011, 3, 15, 7, 0, 4011, 4012, 3, 45, 22, 0, 4012, 548, 1, 0, 0, 0, 4013, 4014, 3, 19, 9, 0, 4014, 4015, 3, 29, 14, 0, 4015, 4016, 3, 35, 17, 0, 4016, 4017, 3, 9, 4, 0, 4017, 4018, 3, 7, 3, 0, 4018, 4019, 3, 29, 14, 0, 4019, 550, 1, 0, 0, 0, 4020, 4021, 3, 19, 9, 0, 4021, 4022, 3, 35, 17, 0, 4022, 552, 1, 0, 0, 0, 4023, 4024, 3, 19, 9, 0, 4024, 4025, 3, 35, 17, 0, 4025, 4026, 3, 45, 22, 0, 4026, 4027, 3, 35, 17, 0, 4027, 554, 1, 0, 0, 0, 4028, 4029, 3, 19, 9, 0, 4029, 4030, 3, 41, 20, 0, 4030, 4031, 3, 7, 3, 0, 4031, 4032, 3, 33, 16, 0, 4032, 4033, 3, 45, 22, 0, 4033, 556, 1, 0, 0, 0, 4034, 4035, 3, 19, 9, 0, 4035, 4036, 3, 41, 20, 0, 4036, 4037, 3, 7, 3, 0, 4037, 4038, 3, 33, 16, 0, 4038, 4039, 3, 45, 22, 0, 4039, 4040, 3, 15, 7, 0, 4040, 4041, 3, 13, 6, 0, 4041, 558, 1, 0, 0, 0, 4042, 4043, 3, 19, 9, 0, 4043, 4044, 3, 41, 20, 0, 4044, 4045, 3, 15, 7, 0, 4045, 4046, 3, 7, 3, 0, 4046, 4047, 3, 45, 22, 0, 4047, 4048, 3, 15, 7, 0, 4048, 4049, 3, 43, 21, 0, 4049, 4050, 3, 45, 22, 0, 4050, 560, 1, 0, 0, 0, 4051, 4052, 3, 19, 9, 0, 4052, 4053, 3, 41, 20, 0, 4053, 4054, 3, 35, 17, 0, 4054, 4055, 3, 47, 23, 0, 4055, 4056, 3, 37, 18, 0, 4056, 562, 1, 0, 0, 0, 4057, 4058, 3, 19, 9, 0, 4058, 4059, 3, 41, 20, 0, 4059, 4060, 3, 35, 17, 0, 4060, 4061, 3, 47, 23, 0, 4061, 4062, 3, 37, 18, 0, 4062, 4063, 3, 23, 11, 0, 4063, 4064, 3, 33, 16, 0, 4064, 4065, 3, 19, 9, 0, 4065, 564, 1, 0, 0, 0, 4066, 4067, 3, 21, 10, 0, 4067, 4068, 3, 7, 3, 0, 4068, 4069, 3, 33, 16, 0, 4069, 4070, 3, 13, 6, 0, 4070, 4071, 3, 29, 14, 0, 4071, 4072, 3, 15, 7, 0, 4072, 4073, 3, 41, 20, 0, 4073, 566, 1, 0, 0, 0, 4074, 4075, 3, 21, 10, 0, 4075, 4076, 3, 7, 3, 0, 4076, 4077, 3, 49, 24, 0, 4077, 4078, 3, 23, 11, 0, 4078, 4079, 3, 33, 16, 0, 4079, 4080, 3, 19, 9, 0, 4080, 568, 1, 0, 0, 0, 4081, 4082, 3, 21, 10, 0, 4082, 4083, 3, 23, 11, 0, 4083, 4084, 3, 15, 7, 0, 4084, 4085, 3, 41, 20, 0, 4085, 4086, 3, 7, 3, 0, 4086, 4087, 3, 41, 20, 0, 4087, 4088, 3, 11, 5, 0, 4088, 4089, 3, 21, 10, 0, 4089, 4090, 3, 55, 27, 0, 4090, 570, 1, 0, 0, 0, 4091, 4092, 3, 21, 10, 0, 4092, 4093, 3, 35, 17, 0, 4093, 4094, 3, 29, 14, 0, 4094, 4095, 3, 13, 6, 0, 4095, 572, 1, 0, 0, 0, 4096, 4097, 3, 21, 10, 0, 4097, 4098, 3, 35, 17, 0, 4098, 4099, 3, 43, 21, 0, 4099, 4100, 3, 45, 22, 0, 4100, 574, 1, 0, 0, 0, 4101, 4102, 3, 21, 10, 0, 4102, 4103, 3, 35, 17, 0, 4103, 4104, 3, 47, 23, 0, 4104, 4105, 3, 41, 20, 0, 4105, 576, 1, 0, 0, 0, 4106, 4107, 3, 23, 11, 0, 4107, 4108, 3, 13, 6, 0, 4108, 4109, 3, 15, 7, 0, 4109, 4110, 3, 33, 16, 0, 4110, 4111, 3, 45, 22, 0, 4111, 4112, 3, 23, 11, 0, 4112, 4113, 3, 45, 22, 0, 4113, 4114, 3, 55, 27, 0, 4114, 578, 1, 0, 0, 0, 4115, 4116, 3, 23, 11, 0, 4116, 4117, 3, 19, 9, 0, 4117, 4118, 3, 33, 16, 0, 4118, 4119, 3, 35, 17, 0, 4119, 4120, 3, 41, 20, 0, 4120, 4121, 3, 15, 7, 0, 4121, 580, 1, 0, 0, 0, 4122, 4123, 3, 23, 11, 0, 4123, 4124, 3, 29, 14, 0, 4124, 4125, 3, 23, 11, 0, 4125, 4126, 3, 27, 13, 0, 4126, 4127, 3, 15, 7, 0, 4127, 582, 1, 0, 0, 0, 4128, 4129, 3, 23, 11, 0, 4129, 4130, 3, 31, 15, 0, 4130, 4131, 3, 31, 15, 0, 4131, 4132, 3, 15, 7, 0, 4132, 4133, 3, 13, 6, 0, 4133, 4134, 3, 23, 11, 0, 4134, 4135, 3, 7, 3, 0, 4135, 4136, 3, 45, 22, 0, 4136, 4137, 3, 15, 7, 0, 4137, 584, 1, 0, 0, 0, 4138, 4139, 3, 23, 11, 0, 4139, 4140, 3, 31, 15, 0, 4140, 4141, 3, 31, 15, 0, 4141, 4142, 3, 47, 23, 0, 4142, 4143, 3, 45, 22, 0, 4143, 4144, 3, 7, 3, 0, 4144, 4145, 3, 9, 4, 0, 4145, 4146, 3, 29, 14, 0, 4146, 4147, 3, 15, 7, 0, 4147, 586, 1, 0, 0, 0, 4148, 4149, 3, 23, 11, 0, 4149, 4150, 3, 31, 15, 0, 4150, 4151, 3, 37, 18, 0, 4151, 4152, 3, 29, 14, 0, 4152, 4153, 3, 15, 7, 0, 4153, 4154, 3, 31, 15, 0, 4154, 4155, 3, 15, 7, 0, 4155, 4156, 3, 33, 16, 0, 4156, 4157, 3, 45, 22, 0, 4157, 4158, 3, 7, 3, 0, 4158, 4159, 3, 45, 22, 0, 4159, 4160, 3, 23, 11, 0, 4160, 4161, 3, 35, 17, 0, 4161, 4162, 3, 33, 16, 0, 4162, 588, 1, 0, 0, 0, 4163, 4164, 3, 23, 11, 0, 4164, 4165, 3, 31, 15, 0, 4165, 4166, 3, 37, 18, 0, 4166, 4167, 3, 29, 14, 0, 4167, 4168, 3, 23, 11, 0, 4168, 4169, 3, 11, 5, 0, 4169, 4170, 3, 23, 11, 0, 4170, 4171, 3, 45, 22, 0, 4171, 590, 1, 0, 0, 0, 4172, 4173, 3, 23, 11, 0, 4173, 4174, 3, 33, 16, 0, 4174, 592, 1, 0, 0, 0, 4175, 4176, 3, 23, 11, 0, 4176, 4177, 3, 33, 16, 0, 4177, 4178, 3, 11, 5, 0, 4178, 4179, 3, 29, 14, 0, 4179, 4180, 3, 47, 23, 0, 4180, 4181, 3, 13, 6, 0, 4181, 4182, 3, 23, 11, 0, 4182, 4183, 3, 33, 16, 0, 4183, 4184, 3, 19, 9, 0, 4184, 594, 1, 0, 0, 0, 4185, 4186, 3, 23, 11, 0, 4186, 4187, 3, 33, 16, 0, 4187, 4188, 3, 11, 5, 0, 4188, 4189, 3, 41, 20, 0, 4189, 4190, 3, 15, 7, 0, 4190, 4191, 3, 31, 15, 0, 4191, 4192, 3, 15, 7, 0, 4192, 4193, 3, 33, 16, 0, 4193, 4194, 3, 45, 22, 0, 4194, 596, 1, 0, 0, 0, 4195, 4196, 3, 23, 11, 0, 4196, 4197, 3, 33, 16, 0, 4197, 4198, 3, 13, 6, 0, 4198, 4199, 3, 15, 7, 0, 4199, 4200, 3, 53, 26, 0, 4200, 598, 1, 0, 0, 0, 4201, 4202, 3, 23, 11, 0, 4202, 4203, 3, 33, 16, 0, 4203, 4204, 3, 13, 6, 0, 4204, 4205, 3, 23, 11, 0, 4205, 4206, 3, 11, 5, 0, 4206, 4207, 3, 7, 3, 0, 4207, 4208, 3, 45, 22, 0, 4208, 4209, 3, 35, 17, 0, 4209, 4210, 3, 41, 20, 0, 4210, 600, 1, 0, 0, 0, 4211, 4212, 3, 23, 11, 0, 4212, 4213, 3, 33, 16, 0, 4213, 4214, 3, 17, 8, 0, 4214, 4215, 3, 23, 11, 0, 4215, 4216, 3, 53, 26, 0, 4216, 602, 1, 0, 0, 0, 4217, 4218, 3, 23, 11, 0, 4218, 4219, 3, 33, 16, 0, 4219, 4220, 3, 21, 10, 0, 4220, 4221, 3, 15, 7, 0, 4221, 4222, 3, 41, 20, 0, 4222, 4223, 3, 23, 11, 0, 4223, 4224, 3, 45, 22, 0, 4224, 4225, 3, 43, 21, 0, 4225, 604, 1, 0, 0, 0, 4226, 4227, 3, 23, 11, 0, 4227, 4228, 3, 33, 16, 0, 4228, 4229, 3, 23, 11, 0, 4229, 4230, 3, 45, 22, 0, 4230, 4231, 3, 23, 11, 0, 4231, 4232, 3, 7, 3, 0, 4232, 4233, 3, 29, 14, 0, 4233, 4234, 3, 23, 11, 0, 4234, 4235, 3, 57, 28, 0, 4235, 4236, 3, 15, 7, 0, 4236, 606, 1, 0, 0, 0, 4237, 4238, 3, 23, 11, 0, 4238, 4239, 3, 33, 16, 0, 4239, 4240, 3, 23, 11, 0, 4240, 4241, 3, 45, 22, 0, 4241, 4242, 3, 23, 11, 0, 4242, 4243, 3, 7, 3, 0, 4243, 4244, 3, 29, 14, 0, 4244, 4245, 3, 29, 14, 0, 4245, 4246, 3, 55, 27, 0, 4246, 608, 1, 0, 0, 0, 4247, 4248, 3, 23, 11, 0, 4248, 4249, 3, 33, 16, 0, 4249, 4250, 3, 33, 16, 0, 4250, 4251, 3, 15, 7, 0, 4251, 4252, 3, 41, 20, 0, 4252, 610, 1, 0, 0, 0, 4253, 4254, 3, 23, 11, 0, 4254, 4255, 3, 33, 16, 0, 4255, 4256, 3, 35, 17, 0, 4256, 4257, 3, 47, 23, 0, 4257, 4258, 3, 45, 22, 0, 4258, 612, 1, 0, 0, 0, 4259, 4260, 3, 23, 11, 0, 4260, 4261, 3, 33, 16, 0, 4261, 4262, 3, 37, 18, 0, 4262, 4263, 3, 47, 23, 0, 4263, 4264, 3, 45, 22, 0, 4264, 614, 1, 0, 0, 0, 4265, 4266, 3, 23, 11, 0, 4266, 4267, 3, 33, 16, 0, 4267, 4268, 3, 43, 21, 0, 4268, 4269, 3, 15, 7, 0, 4269, 4270, 3, 33, 16, 0, 4270, 4271, 3, 43, 21, 0, 4271, 4272, 3, 23, 11, 0, 4272, 4273, 3, 45, 22, 0, 4273, 4274, 3, 23, 11, 0, 4274, 4275, 3, 49, 24, 0, 4275, 4276, 3, 15, 7, 0, 4276, 616, 1, 0, 0, 0, 4277, 4278, 3, 23, 11, 0, 4278, 4279, 3, 33, 16, 0, 4279, 4280, 3, 43, 21, 0, 4280, 4281, 3, 15, 7, 0, 4281, 4282, 3, 41, 20, 0, 4282, 4283, 3, 45, 22, 0, 4283, 618, 1, 0, 0, 0, 4284, 4285, 3, 23, 11, 0, 4285, 4286, 3, 33, 16, 0, 4286, 4287, 3, 43, 21, 0, 4287, 4288, 3, 45, 22, 0, 4288, 4289, 3, 7, 3, 0, 4289, 4290, 3, 33, 16, 0, 4290, 4291, 3, 11, 5, 0, 4291, 4292, 3, 15, 7, 0, 4292, 620, 1, 0, 0, 0, 4293, 4294, 3, 23, 11, 0, 4294, 4295, 3, 33, 16, 0, 4295, 4296, 3, 43, 21, 0, 4296, 4297, 3, 45, 22, 0, 4297, 4298, 3, 7, 3, 0, 4298, 4299, 3, 33, 16, 0, 4299, 4300, 3, 45, 22, 0, 4300, 4301, 3, 23, 11, 0, 4301, 4302, 3, 7, 3, 0, 4302, 4303, 3, 9, 4, 0, 4303, 4304, 3, 29, 14, 0, 4304, 4305, 3, 15, 7, 0, 4305, 622, 1, 0, 0, 0, 4306, 4307, 3, 23, 11, 0, 4307, 4308, 3, 33, 16, 0, 4308, 4309, 3, 43, 21, 0, 4309, 4310, 3, 45, 22, 0, 4310, 4311, 3, 15, 7, 0, 4311, 4312, 3, 7, 3, 0, 4312, 4313, 3, 13, 6, 0, 4313, 624, 1, 0, 0, 0, 4314, 4315, 3, 23, 11, 0, 4315, 4316, 3, 33, 16, 0, 4316, 4317, 3, 45, 22, 0, 4317, 626, 1, 0, 0, 0, 4318, 4319, 3, 23, 11, 0, 4319, 4320, 3, 33, 16, 0, 4320, 4321, 3, 45, 22, 0, 4321, 4322, 3, 15, 7, 0, 4322, 4323, 3, 19, 9, 0, 4323, 4324, 3, 15, 7, 0, 4324, 4325, 3, 41, 20, 0, 4325, 628, 1, 0, 0, 0, 4326, 4327, 3, 23, 11, 0, 4327, 4328, 3, 33, 16, 0, 4328, 4329, 3, 45, 22, 0, 4329, 4330, 3, 15, 7, 0, 4330, 4331, 3, 41, 20, 0, 4331, 4332, 3, 43, 21, 0, 4332, 4333, 3, 15, 7, 0, 4333, 4334, 3, 11, 5, 0, 4334, 4335, 3, 45, 22, 0, 4335, 630, 1, 0, 0, 0, 4336, 4337, 3, 23, 11, 0, 4337, 4338, 3, 33, 16, 0, 4338, 4339, 3, 45, 22, 0, 4339, 4340, 3, 15, 7, 0, 4340, 4341, 3, 41, 20, 0, 4341, 4342, 3, 43, 21, 0, 4342, 4343, 3, 15, 7, 0, 4343, 4344, 3, 11, 5, 0, 4344, 4345, 3, 45, 22, 0, 4345, 4346, 3, 23, 11, 0, 4346, 4347, 3, 35, 17, 0, 4347, 4348, 3, 33, 16, 0, 4348, 632, 1, 0, 0, 0, 4349, 4350, 3, 23, 11, 0, 4350, 4351, 3, 33, 16, 0, 4351, 4352, 3, 45, 22, 0, 4352, 4353, 3, 15, 7, 0, 4353, 4354, 3, 41, 20, 0, 4354, 4355, 3, 49, 24, 0, 4355, 4356, 3, 7, 3, 0, 4356, 4357, 3, 29, 14, 0, 4357, 634, 1, 0, 0, 0, 4358, 4359, 3, 23, 11, 0, 4359, 4360, 3, 33, 16, 0, 4360, 4361, 3, 45, 22, 0, 4361, 4362, 3, 35, 17, 0, 4362, 636, 1, 0, 0, 0, 4363, 4364, 3, 23, 11, 0, 4364, 4365, 3, 33, 16, 0, 4365, 4366, 3, 49, 24, 0, 4366, 4367, 3, 35, 17, 0, 4367, 4368, 3, 27, 13, 0, 4368, 4369, 3, 15, 7, 0, 4369, 4370, 3, 41, 20, 0, 4370, 638, 1, 0, 0, 0, 4371, 4372, 3, 23, 11, 0, 4372, 4373, 3, 43, 21, 0, 4373, 640, 1, 0, 0, 0, 4374, 4375, 3, 23, 11, 0, 4375, 4376, 3, 43, 21, 0, 4376, 4377, 3, 35, 17, 0, 4377, 4378, 3, 29, 14, 0, 4378, 4379, 3, 7, 3, 0, 4379, 4380, 3, 45, 22, 0, 4380, 4381, 3, 23, 11, 0, 4381, 4382, 3, 35, 17, 0, 4382, 4383, 3, 33, 16, 0, 4383, 642, 1, 0, 0, 0, 4384, 4385, 3, 23, 11, 0, 4385, 4386, 3, 45, 22, 0, 4386, 4387, 3, 15, 7, 0, 4387, 4388, 3, 41, 20, 0, 4388, 4389, 3, 7, 3, 0, 4389, 4390, 3, 45, 22, 0, 4390, 4391, 3, 15, 7, 0, 4391, 644, 1, 0, 0, 0, 4392, 4393, 3, 25, 12, 0, 4393, 4394, 3, 35, 17, 0, 4394, 4395, 3, 23, 11, 0, 4395, 4396, 3, 33, 16, 0, 4396, 646, 1, 0, 0, 0, 4397, 4398, 3, 27, 13, 0, 4398, 648, 1, 0, 0, 0, 4399, 4400, 3, 27, 13, 0, 4400, 4401, 3, 15, 7, 0, 4401, 4402, 3, 55, 27, 0, 4402, 650, 1, 0, 0, 0, 4403, 4404, 3, 27, 13, 0, 4404, 4405, 3, 15, 7, 0, 4405, 4406, 3, 55, 27, 0, 4406, 4407, 5, 95, 0, 0, 4407, 4408, 3, 31, 15, 0, 4408, 4409, 3, 15, 7, 0, 4409, 4410, 3, 31, 15, 0, 4410, 4411, 3, 9, 4, 0, 4411, 4412, 3, 15, 7, 0, 4412, 4413, 3, 41, 20, 0, 4413, 652, 1, 0, 0, 0, 4414, 4415, 3, 27, 13, 0, 4415, 4416, 3, 15, 7, 0, 4416, 4417, 3, 55, 27, 0, 4417, 4418, 5, 95, 0, 0, 4418, 4419, 3, 45, 22, 0, 4419, 4420, 3, 55, 27, 0, 4420, 4421, 3, 37, 18, 0, 4421, 4422, 3, 15, 7, 0, 4422, 654, 1, 0, 0, 0, 4423, 4424, 3, 29, 14, 0, 4424, 4425, 3, 7, 3, 0, 4425, 4426, 3, 9, 4, 0, 4426, 4427, 3, 15, 7, 0, 4427, 4428, 3, 29, 14, 0, 4428, 656, 1, 0, 0, 0, 4429, 4430, 3, 29, 14, 0, 4430, 4431, 3, 7, 3, 0, 4431, 4432, 3, 33, 16, 0, 4432, 4433, 3, 11, 5, 0, 4433, 4434, 3, 35, 17, 0, 4434, 4435, 3, 31, 15, 0, 4435, 4436, 3, 37, 18, 0, 4436, 4437, 3, 23, 11, 0, 4437, 4438, 3, 29, 14, 0, 4438, 4439, 3, 15, 7, 0, 4439, 4440, 3, 41, 20, 0, 4440, 658, 1, 0, 0, 0, 4441, 4442, 3, 29, 14, 0, 4442, 4443, 3, 7, 3, 0, 4443, 4444, 3, 33, 16, 0, 4444, 4445, 3, 19, 9, 0, 4445, 4446, 3, 47, 23, 0, 4446, 4447, 3, 7, 3, 0, 4447, 4448, 3, 19, 9, 0, 4448, 4449, 3, 15, 7, 0, 4449, 660, 1, 0, 0, 0, 4450, 4451, 3, 29, 14, 0, 4451, 4452, 3, 7, 3, 0, 4452, 4453, 3, 41, 20, 0, 4453, 4454, 3, 19, 9, 0, 4454, 4455, 3, 15, 7, 0, 4455, 662, 1, 0, 0, 0, 4456, 4457, 3, 29, 14, 0, 4457, 4458, 3, 7, 3, 0, 4458, 4459, 3, 43, 21, 0, 4459, 4460, 3, 45, 22, 0, 4460, 664, 1, 0, 0, 0, 4461, 4462, 3, 29, 14, 0, 4462, 4463, 3, 7, 3, 0, 4463, 4464, 3, 45, 22, 0, 4464, 4465, 3, 15, 7, 0, 4465, 4466, 3, 41, 20, 0, 4466, 4467, 3, 7, 3, 0, 4467, 4468, 3, 29, 14, 0, 4468, 666, 1, 0, 0, 0, 4469, 4470, 3, 29, 14, 0, 4470, 4471, 3, 15, 7, 0, 4471, 4472, 3, 7, 3, 0, 4472, 4473, 3, 13, 6, 0, 4473, 4474, 3, 23, 11, 0, 4474, 4475, 3, 33, 16, 0, 4475, 4476, 3, 19, 9, 0, 4476, 668, 1, 0, 0, 0, 4477, 4478, 3, 29, 14, 0, 4478, 4479, 3, 15, 7, 0, 4479, 4480, 3, 7, 3, 0, 4480, 4481, 3, 43, 21, 0, 4481, 4482, 3, 45, 22, 0, 4482, 670, 1, 0, 0, 0, 4483, 4484, 3, 29, 14, 0, 4484, 4485, 3, 15, 7, 0, 4485, 4486, 3, 17, 8, 0, 4486, 4487, 3, 45, 22, 0, 4487, 672, 1, 0, 0, 0, 4488, 4489, 3, 29, 14, 0, 4489, 4490, 3, 15, 7, 0, 4490, 4491, 3, 33, 16, 0, 4491, 4492, 3, 19, 9, 0, 4492, 4493, 3, 45, 22, 0, 4493, 4494, 3, 21, 10, 0, 4494, 674, 1, 0, 0, 0, 4495, 4496, 3, 29, 14, 0, 4496, 4497, 3, 15, 7, 0, 4497, 4498, 3, 43, 21, 0, 4498, 4499, 3, 43, 21, 0, 4499, 676, 1, 0, 0, 0, 4500, 4501, 3, 29, 14, 0, 4501, 4502, 3, 15, 7, 0, 4502, 4503, 3, 49, 24, 0, 4503, 4504, 3, 15, 7, 0, 4504, 4505, 3, 29, 14, 0, 4505, 678, 1, 0, 0, 0, 4506, 4507, 3, 29, 14, 0, 4507, 4508, 3, 23, 11, 0, 4508, 4509, 3, 27, 13, 0, 4509, 4510, 3, 15, 7, 0, 4510, 680, 1, 0, 0, 0, 4511, 4512, 3, 29, 14, 0, 4512, 4513, 3, 23, 11, 0, 4513, 4514, 3, 31, 15, 0, 4514, 4515, 3, 23, 11, 0, 4515, 4516, 3, 45, 22, 0, 4516, 682, 1, 0, 0, 0, 4517, 4518, 3, 29, 14, 0, 4518, 4519, 3, 23, 11, 0, 4519, 4520, 3, 43, 21, 0, 4520, 4521, 3, 45, 22, 0, 4521, 4522, 3, 15, 7, 0, 4522, 4523, 3, 33, 16, 0, 4523, 684, 1, 0, 0, 0, 4524, 4525, 3, 29, 14, 0, 4525, 4526, 3, 33, 16, 0, 4526, 686, 1, 0, 0, 0, 4527, 4528, 3, 29, 14, 0, 4528, 4529, 3, 35, 17, 0, 4529, 4530, 3, 7, 3, 0, 4530, 4531, 3, 13, 6, 0, 4531, 688, 1, 0, 0, 0, 4532, 4533, 3, 29, 14, 0, 4533, 4534, 3, 35, 17, 0, 4534, 4535, 3, 11, 5, 0, 4535, 4536, 3, 7, 3, 0, 4536, 4537, 3, 29, 14, 0, 4537, 690, 1, 0, 0, 0, 4538, 4539, 3, 29, 14, 0, 4539, 4540, 3, 35, 17, 0, 4540, 4541, 3, 11, 5, 0, 4541, 4542, 3, 7, 3, 0, 4542, 4543, 3, 29, 14, 0, 4543, 4544, 3, 45, 22, 0, 4544, 4545, 3, 23, 11, 0, 4545, 4546, 3, 31, 15, 0, 4546, 4547, 3, 15, 7, 0, 4547, 692, 1, 0, 0, 0, 4548, 4549, 3, 29, 14, 0, 4549, 4550, 3, 35, 17, 0, 4550, 4551, 3, 11, 5, 0, 4551, 4552, 3, 7, 3, 0, 4552, 4553, 3, 29, 14, 0, 4553, 4554, 3, 45, 22, 0, 4554, 4555, 3, 23, 11, 0, 4555, 4556, 3, 31, 15, 0, 4556, 4557, 3, 15, 7, 0, 4557, 4558, 3, 43, 21, 0, 4558, 4559, 3, 45, 22, 0, 4559, 4560, 3, 7, 3, 0, 4560, 4561, 3, 31, 15, 0, 4561, 4562, 3, 37, 18, 0, 4562, 694, 1, 0, 0, 0, 4563, 4564, 3, 29, 14, 0, 4564, 4565, 3, 35, 17, 0, 4565, 4566, 3, 11, 5, 0, 4566, 4567, 3, 7, 3, 0, 4567, 4568, 3, 45, 22, 0, 4568, 4569, 3, 23, 11, 0, 4569, 4570, 3, 35, 17, 0, 4570, 4571, 3, 33, 16, 0, 4571, 696, 1, 0, 0, 0, 4572, 4573, 3, 29, 14, 0, 4573, 4574, 3, 35, 17, 0, 4574, 4575, 3, 11, 5, 0, 4575, 4576, 3, 7, 3, 0, 4576, 4577, 3, 45, 22, 0, 4577, 4578, 3, 35, 17, 0, 4578, 4579, 3, 41, 20, 0, 4579, 698, 1, 0, 0, 0, 4580, 4581, 3, 29, 14, 0, 4581, 4582, 3, 35, 17, 0, 4582, 4583, 3, 11, 5, 0, 4583, 4584, 3, 27, 13, 0, 4584, 700, 1, 0, 0, 0, 4585, 4586, 3, 29, 14, 0, 4586, 4587, 3, 35, 17, 0, 4587, 4588, 3, 11, 5, 0, 4588, 4589, 3, 27, 13, 0, 4589, 4590, 3, 15, 7, 0, 4590, 4591, 3, 13, 6, 0, 4591, 702, 1, 0, 0, 0, 4592, 4593, 3, 29, 14, 0, 4593, 4594, 3, 35, 17, 0, 4594, 4595, 3, 51, 25, 0, 4595, 4596, 3, 15, 7, 0, 4596, 4597, 3, 41, 20, 0, 4597, 704, 1, 0, 0, 0, 4598, 4599, 3, 31, 15, 0, 4599, 706, 1, 0, 0, 0, 4600, 4601, 3, 31, 15, 0, 4601, 4602, 3, 7, 3, 0, 4602, 4603, 3, 23, 11, 0, 4603, 4604, 3, 33, 16, 0, 4604, 708, 1, 0, 0, 0, 4605, 4606, 3, 31, 15, 0, 4606, 4607, 3, 7, 3, 0, 4607, 4608, 3, 37, 18, 0, 4608, 710, 1, 0, 0, 0, 4609, 4610, 3, 31, 15, 0, 4610, 4611, 3, 7, 3, 0, 4611, 4612, 3, 37, 18, 0, 4612, 4613, 3, 37, 18, 0, 4613, 4614, 3, 23, 11, 0, 4614, 4615, 3, 33, 16, 0, 4615, 4616, 3, 19, 9, 0, 4616, 712, 1, 0, 0, 0, 4617, 4618, 3, 31, 15, 0, 4618, 4619, 3, 7, 3, 0, 4619, 4620, 3, 45, 22, 0, 4620, 4621, 3, 11, 5, 0, 4621, 4622, 3, 21, 10, 0, 4622, 714, 1, 0, 0, 0, 4623, 4624, 3, 31, 15, 0, 4624, 4625, 3, 7, 3, 0, 4625, 4626, 3, 45, 22, 0, 4626, 4627, 3, 11, 5, 0, 4627, 4628, 3, 21, 10, 0, 4628, 4629, 5, 95, 0, 0, 4629, 4630, 3, 43, 21, 0, 4630, 4631, 3, 23, 11, 0, 4631, 4632, 3, 31, 15, 0, 4632, 4633, 3, 37, 18, 0, 4633, 4634, 3, 29, 14, 0, 4634, 4635, 3, 15, 7, 0, 4635, 716, 1, 0, 0, 0, 4636, 4637, 3, 31, 15, 0, 4637, 4638, 3, 7, 3, 0, 4638, 4639, 3, 45, 22, 0, 4639, 4640, 3, 11, 5, 0, 4640, 4641, 3, 21, 10, 0, 4641, 4642, 3, 15, 7, 0, 4642, 4643, 3, 13, 6, 0, 4643, 718, 1, 0, 0, 0, 4644, 4645, 3, 31, 15, 0, 4645, 4646, 3, 7, 3, 0, 4646, 4647, 3, 53, 26, 0, 4647, 720, 1, 0, 0, 0, 4648, 4649, 3, 31, 15, 0, 4649, 4650, 3, 7, 3, 0, 4650, 4651, 3, 53, 26, 0, 4651, 4652, 3, 49, 24, 0, 4652, 4653, 3, 7, 3, 0, 4653, 4654, 3, 29, 14, 0, 4654, 4655, 3, 47, 23, 0, 4655, 4656, 3, 15, 7, 0, 4656, 722, 1, 0, 0, 0, 4657, 4658, 3, 31, 15, 0, 4658, 4659, 3, 15, 7, 0, 4659, 4660, 3, 31, 15, 0, 4660, 4661, 3, 9, 4, 0, 4661, 4662, 3, 15, 7, 0, 4662, 4663, 3, 41, 20, 0, 4663, 724, 1, 0, 0, 0, 4664, 4665, 3, 31, 15, 0, 4665, 4666, 3, 15, 7, 0, 4666, 4667, 3, 41, 20, 0, 4667, 4668, 3, 19, 9, 0, 4668, 4669, 3, 15, 7, 0, 4669, 726, 1, 0, 0, 0, 4670, 4671, 3, 31, 15, 0, 4671, 4672, 3, 15, 7, 0, 4672, 4673, 3, 43, 21, 0, 4673, 4674, 3, 43, 21, 0, 4674, 4675, 3, 7, 3, 0, 4675, 4676, 3, 19, 9, 0, 4676, 4677, 3, 15, 7, 0, 4677, 4678, 5, 95, 0, 0, 4678, 4679, 3, 29, 14, 0, 4679, 4680, 3, 15, 7, 0, 4680, 4681, 3, 33, 16, 0, 4681, 4682, 3, 19, 9, 0, 4682, 4683, 3, 45, 22, 0, 4683, 4684, 3, 21, 10, 0, 4684, 728, 1, 0, 0, 0, 4685, 4686, 3, 31, 15, 0, 4686, 4687, 3, 15, 7, 0, 4687, 4688, 3, 43, 21, 0, 4688, 4689, 3, 43, 21, 0, 4689, 4690, 3, 7, 3, 0, 4690, 4691, 3, 19, 9, 0, 4691, 4692, 3, 15, 7, 0, 4692, 4693, 5, 95, 0, 0, 4693, 4694, 3, 35, 17, 0, 4694, 4695, 3, 11, 5, 0, 4695, 4696, 3, 45, 22, 0, 4696, 4697, 3, 15, 7, 0, 4697, 4698, 3, 45, 22, 0, 4698, 4699, 5, 95, 0, 0, 4699, 4700, 3, 29, 14, 0, 4700, 4701, 3, 15, 7, 0, 4701, 4702, 3, 33, 16, 0, 4702, 4703, 3, 19, 9, 0, 4703, 4704, 3, 45, 22, 0, 4704, 4705, 3, 21, 10, 0, 4705, 730, 1, 0, 0, 0, 4706, 4707, 3, 31, 15, 0, 4707, 4708, 3, 15, 7, 0, 4708, 4709, 3, 43, 21, 0, 4709, 4710, 3, 43, 21, 0, 4710, 4711, 3, 7, 3, 0, 4711, 4712, 3, 19, 9, 0, 4712, 4713, 3, 15, 7, 0, 4713, 4714, 5, 95, 0, 0, 4714, 4715, 3, 45, 22, 0, 4715, 4716, 3, 15, 7, 0, 4716, 4717, 3, 53, 26, 0, 4717, 4718, 3, 45, 22, 0, 4718, 732, 1, 0, 0, 0, 4719, 4720, 3, 31, 15, 0, 4720, 4721, 3, 15, 7, 0, 4721, 4722, 3, 45, 22, 0, 4722, 4723, 3, 21, 10, 0, 4723, 4724, 3, 35, 17, 0, 4724, 4725, 3, 13, 6, 0, 4725, 734, 1, 0, 0, 0, 4726, 4727, 3, 31, 15, 0, 4727, 4728, 3, 23, 11, 0, 4728, 4729, 3, 33, 16, 0, 4729, 736, 1, 0, 0, 0, 4730, 4731, 3, 31, 15, 0, 4731, 4732, 3, 23, 11, 0, 4732, 4733, 3, 33, 16, 0, 4733, 4734, 3, 47, 23, 0, 4734, 4735, 3, 45, 22, 0, 4735, 4736, 3, 15, 7, 0, 4736, 738, 1, 0, 0, 0, 4737, 4738, 3, 31, 15, 0, 4738, 4739, 3, 23, 11, 0, 4739, 4740, 3, 33, 16, 0, 4740, 4741, 3, 49, 24, 0, 4741, 4742, 3, 7, 3, 0, 4742, 4743, 3, 29, 14, 0, 4743, 4744, 3, 47, 23, 0, 4744, 4745, 3, 15, 7, 0, 4745, 740, 1, 0, 0, 0, 4746, 4747, 3, 31, 15, 0, 4747, 4748, 3, 35, 17, 0, 4748, 4749, 3, 13, 6, 0, 4749, 742, 1, 0, 0, 0, 4750, 4751, 3, 31, 15, 0, 4751, 4752, 3, 35, 17, 0, 4752, 4753, 3, 13, 6, 0, 4753, 4754, 3, 15, 7, 0, 4754, 744, 1, 0, 0, 0, 4755, 4756, 3, 31, 15, 0, 4756, 4757, 3, 35, 17, 0, 4757, 4758, 3, 13, 6, 0, 4758, 4759, 3, 23, 11, 0, 4759, 4760, 3, 17, 8, 0, 4760, 4761, 3, 23, 11, 0, 4761, 4762, 3, 15, 7, 0, 4762, 4763, 3, 43, 21, 0, 4763, 746, 1, 0, 0, 0, 4764, 4765, 3, 31, 15, 0, 4765, 4766, 3, 35, 17, 0, 4766, 4767, 3, 13, 6, 0, 4767, 4768, 3, 23, 11, 0, 4768, 4769, 3, 17, 8, 0, 4769, 4770, 3, 55, 27, 0, 4770, 748, 1, 0, 0, 0, 4771, 4772, 3, 31, 15, 0, 4772, 4773, 3, 35, 17, 0, 4773, 4774, 3, 13, 6, 0, 4774, 4775, 3, 47, 23, 0, 4775, 4776, 3, 29, 14, 0, 4776, 4777, 3, 15, 7, 0, 4777, 750, 1, 0, 0, 0, 4778, 4779, 3, 31, 15, 0, 4779, 4780, 3, 35, 17, 0, 4780, 4781, 3, 33, 16, 0, 4781, 4782, 3, 45, 22, 0, 4782, 4783, 3, 21, 10, 0, 4783, 752, 1, 0, 0, 0, 4784, 4785, 3, 31, 15, 0, 4785, 4786, 3, 35, 17, 0, 4786, 4787, 3, 41, 20, 0, 4787, 4788, 3, 15, 7, 0, 4788, 754, 1, 0, 0, 0, 4789, 4790, 3, 31, 15, 0, 4790, 4791, 3, 35, 17, 0, 4791, 4792, 3, 49, 24, 0, 4792, 4793, 3, 15, 7, 0, 4793, 756, 1, 0, 0, 0, 4794, 4795, 3, 31, 15, 0, 4795, 4796, 3, 47, 23, 0, 4796, 4797, 3, 29, 14, 0, 4797, 4798, 3, 45, 22, 0, 4798, 4799, 3, 23, 11, 0, 4799, 4800, 3, 43, 21, 0, 4800, 4801, 3, 15, 7, 0, 4801, 4802, 3, 45, 22, 0, 4802, 758, 1, 0, 0, 0, 4803, 4804, 3, 31, 15, 0, 4804, 4805, 3, 47, 23, 0, 4805, 4806, 3, 31, 15, 0, 4806, 4807, 3, 37, 18, 0, 4807, 4808, 3, 43, 21, 0, 4808, 760, 1, 0, 0, 0, 4809, 4810, 3, 33, 16, 0, 4810, 4811, 3, 7, 3, 0, 4811, 4812, 3, 31, 15, 0, 4812, 4813, 3, 15, 7, 0, 4813, 762, 1, 0, 0, 0, 4814, 4815, 3, 33, 16, 0, 4815, 4816, 3, 7, 3, 0, 4816, 4817, 3, 31, 15, 0, 4817, 4818, 3, 15, 7, 0, 4818, 4819, 3, 43, 21, 0, 4819, 764, 1, 0, 0, 0, 4820, 4821, 3, 33, 16, 0, 4821, 4822, 3, 7, 3, 0, 4822, 4823, 3, 45, 22, 0, 4823, 4824, 3, 23, 11, 0, 4824, 4825, 3, 35, 17, 0, 4825, 4826, 3, 33, 16, 0, 4826, 4827, 3, 7, 3, 0, 4827, 4828, 3, 29, 14, 0, 4828, 766, 1, 0, 0, 0, 4829, 4830, 3, 33, 16, 0, 4830, 4831, 3, 7, 3, 0, 4831, 4832, 3, 45, 22, 0, 4832, 4833, 3, 47, 23, 0, 4833, 4834, 3, 41, 20, 0, 4834, 4835, 3, 7, 3, 0, 4835, 4836, 3, 29, 14, 0, 4836, 768, 1, 0, 0, 0, 4837, 4838, 3, 33, 16, 0, 4838, 4839, 3, 11, 5, 0, 4839, 4840, 3, 21, 10, 0, 4840, 4841, 3, 7, 3, 0, 4841, 4842, 3, 41, 20, 0, 4842, 770, 1, 0, 0, 0, 4843, 4844, 3, 33, 16, 0, 4844, 4845, 3, 11, 5, 0, 4845, 4846, 3, 29, 14, 0, 4846, 4847, 3, 35, 17, 0, 4847, 4848, 3, 9, 4, 0, 4848, 772, 1, 0, 0, 0, 4849, 4850, 3, 33, 16, 0, 4850, 4851, 3, 15, 7, 0, 4851, 4852, 3, 43, 21, 0, 4852, 4853, 3, 45, 22, 0, 4853, 4854, 3, 23, 11, 0, 4854, 4855, 3, 33, 16, 0, 4855, 4856, 3, 19, 9, 0, 4856, 774, 1, 0, 0, 0, 4857, 4858, 3, 33, 16, 0, 4858, 4859, 3, 15, 7, 0, 4859, 4860, 3, 51, 25, 0, 4860, 776, 1, 0, 0, 0, 4861, 4862, 3, 33, 16, 0, 4862, 4863, 3, 15, 7, 0, 4863, 4864, 3, 53, 26, 0, 4864, 4865, 3, 45, 22, 0, 4865, 778, 1, 0, 0, 0, 4866, 4867, 3, 33, 16, 0, 4867, 4868, 3, 35, 17, 0, 4868, 780, 1, 0, 0, 0, 4869, 4870, 3, 33, 16, 0, 4870, 4871, 3, 35, 17, 0, 4871, 4872, 3, 11, 5, 0, 4872, 4873, 3, 41, 20, 0, 4873, 4874, 3, 15, 7, 0, 4874, 4875, 3, 7, 3, 0, 4875, 4876, 3, 45, 22, 0, 4876, 4877, 3, 15, 7, 0, 4877, 4878, 3, 13, 6, 0, 4878, 4879, 3, 9, 4, 0, 4879, 782, 1, 0, 0, 0, 4880, 4881, 3, 33, 16, 0, 4881, 4882, 3, 35, 17, 0, 4882, 4883, 3, 11, 5, 0, 4883, 4884, 3, 41, 20, 0, 4884, 4885, 3, 15, 7, 0, 4885, 4886, 3, 7, 3, 0, 4886, 4887, 3, 45, 22, 0, 4887, 4888, 3, 15, 7, 0, 4888, 4889, 3, 47, 23, 0, 4889, 4890, 3, 43, 21, 0, 4890, 4891, 3, 15, 7, 0, 4891, 4892, 3, 41, 20, 0, 4892, 784, 1, 0, 0, 0, 4893, 4894, 3, 33, 16, 0, 4894, 4895, 3, 35, 17, 0, 4895, 4896, 3, 33, 16, 0, 4896, 4897, 3, 15, 7, 0, 4897, 786, 1, 0, 0, 0, 4898, 4899, 3, 33, 16, 0, 4899, 4900, 3, 35, 17, 0, 4900, 4901, 3, 41, 20, 0, 4901, 4902, 3, 31, 15, 0, 4902, 4903, 3, 7, 3, 0, 4903, 4904, 3, 29, 14, 0, 4904, 4905, 3, 23, 11, 0, 4905, 4906, 3, 57, 28, 0, 4906, 4907, 3, 15, 7, 0, 4907, 788, 1, 0, 0, 0, 4908, 4909, 3, 33, 16, 0, 4909, 4910, 3, 35, 17, 0, 4910, 4911, 3, 41, 20, 0, 4911, 4912, 3, 31, 15, 0, 4912, 4913, 3, 7, 3, 0, 4913, 4914, 3, 29, 14, 0, 4914, 4915, 3, 23, 11, 0, 4915, 4916, 3, 57, 28, 0, 4916, 4917, 3, 15, 7, 0, 4917, 4918, 3, 13, 6, 0, 4918, 790, 1, 0, 0, 0, 4919, 4920, 3, 33, 16, 0, 4920, 4921, 3, 35, 17, 0, 4921, 4922, 3, 45, 22, 0, 4922, 792, 1, 0, 0, 0, 4923, 4924, 3, 33, 16, 0, 4924, 4925, 3, 35, 17, 0, 4925, 4926, 3, 45, 22, 0, 4926, 4927, 3, 21, 10, 0, 4927, 4928, 3, 23, 11, 0, 4928, 4929, 3, 33, 16, 0, 4929, 4930, 3, 19, 9, 0, 4930, 794, 1, 0, 0, 0, 4931, 4932, 3, 33, 16, 0, 4932, 4933, 3, 35, 17, 0, 4933, 4934, 3, 45, 22, 0, 4934, 4935, 3, 23, 11, 0, 4935, 4936, 3, 17, 8, 0, 4936, 4937, 3, 55, 27, 0, 4937, 796, 1, 0, 0, 0, 4938, 4939, 3, 33, 16, 0, 4939, 4940, 3, 35, 17, 0, 4940, 4941, 3, 45, 22, 0, 4941, 4942, 3, 33, 16, 0, 4942, 4943, 3, 47, 23, 0, 4943, 4944, 3, 29, 14, 0, 4944, 4945, 3, 29, 14, 0, 4945, 798, 1, 0, 0, 0, 4946, 4947, 3, 33, 16, 0, 4947, 4948, 3, 35, 17, 0, 4948, 4949, 3, 51, 25, 0, 4949, 4950, 3, 7, 3, 0, 4950, 4951, 3, 23, 11, 0, 4951, 4952, 3, 45, 22, 0, 4952, 800, 1, 0, 0, 0, 4953, 4954, 3, 33, 16, 0, 4954, 4955, 3, 47, 23, 0, 4955, 4956, 3, 29, 14, 0, 4956, 4957, 3, 29, 14, 0, 4957, 802, 1, 0, 0, 0, 4958, 4959, 3, 33, 16, 0, 4959, 4960, 3, 47, 23, 0, 4960, 4961, 3, 29, 14, 0, 4961, 4962, 3, 29, 14, 0, 4962, 4963, 3, 7, 3, 0, 4963, 4964, 3, 9, 4, 0, 4964, 4965, 3, 29, 14, 0, 4965, 4966, 3, 15, 7, 0, 4966, 804, 1, 0, 0, 0, 4967, 4968, 3, 33, 16, 0, 4968, 4969, 3, 47, 23, 0, 4969, 4970, 3, 29, 14, 0, 4970, 4971, 3, 29, 14, 0, 4971, 4972, 3, 23, 11, 0, 4972, 4973, 3, 17, 8, 0, 4973, 806, 1, 0, 0, 0, 4974, 4975, 3, 33, 16, 0, 4975, 4976, 3, 47, 23, 0, 4976, 4977, 3, 29, 14, 0, 4977, 4978, 3, 29, 14, 0, 4978, 4979, 3, 43, 21, 0, 4979, 808, 1, 0, 0, 0, 4980, 4981, 3, 33, 16, 0, 4981, 4982, 3, 47, 23, 0, 4982, 4983, 3, 31, 15, 0, 4983, 4984, 3, 9, 4, 0, 4984, 4985, 3, 15, 7, 0, 4985, 4986, 3, 41, 20, 0, 4986, 810, 1, 0, 0, 0, 4987, 4988, 3, 33, 16, 0, 4988, 4989, 3, 47, 23, 0, 4989, 4990, 3, 31, 15, 0, 4990, 4991, 3, 15, 7, 0, 4991, 4992, 3, 41, 20, 0, 4992, 4993, 3, 23, 11, 0, 4993, 4994, 3, 11, 5, 0, 4994, 812, 1, 0, 0, 0, 4995, 4996, 3, 35, 17, 0, 4996, 4997, 3, 9, 4, 0, 4997, 4998, 3, 25, 12, 0, 4998, 4999, 3, 15, 7, 0, 4999, 5000, 3, 11, 5, 0, 5000, 5001, 3, 45, 22, 0, 5001, 814, 1, 0, 0, 0, 5002, 5003, 3, 35, 17, 0, 5003, 5004, 3, 11, 5, 0, 5004, 5005, 3, 45, 22, 0, 5005, 5006, 3, 15, 7, 0, 5006, 5007, 3, 45, 22, 0, 5007, 5008, 5, 95, 0, 0, 5008, 5009, 3, 29, 14, 0, 5009, 5010, 3, 15, 7, 0, 5010, 5011, 3, 33, 16, 0, 5011, 5012, 3, 19, 9, 0, 5012, 5013, 3, 45, 22, 0, 5013, 5014, 3, 21, 10, 0, 5014, 816, 1, 0, 0, 0, 5015, 5016, 3, 35, 17, 0, 5016, 5017, 3, 11, 5, 0, 5017, 5018, 3, 45, 22, 0, 5018, 5019, 3, 15, 7, 0, 5019, 5020, 3, 45, 22, 0, 5020, 5021, 3, 43, 21, 0, 5021, 818, 1, 0, 0, 0, 5022, 5023, 3, 35, 17, 0, 5023, 5024, 3, 17, 8, 0, 5024, 820, 1, 0, 0, 0, 5025, 5026, 3, 35, 17, 0, 5026, 5027, 3, 17, 8, 0, 5027, 5028, 3, 17, 8, 0, 5028, 822, 1, 0, 0, 0, 5029, 5030, 3, 35, 17, 0, 5030, 5031, 3, 17, 8, 0, 5031, 5032, 3, 17, 8, 0, 5032, 5033, 3, 43, 21, 0, 5033, 5034, 3, 15, 7, 0, 5034, 5035, 3, 45, 22, 0, 5035, 824, 1, 0, 0, 0, 5036, 5037, 3, 35, 17, 0, 5037, 5038, 3, 23, 11, 0, 5038, 5039, 3, 13, 6, 0, 5039, 5040, 3, 43, 21, 0, 5040, 826, 1, 0, 0, 0, 5041, 5042, 3, 35, 17, 0, 5042, 5043, 3, 29, 14, 0, 5043, 5044, 3, 13, 6, 0, 5044, 828, 1, 0, 0, 0, 5045, 5046, 3, 35, 17, 0, 5046, 5047, 3, 33, 16, 0, 5047, 830, 1, 0, 0, 0, 5048, 5049, 3, 35, 17, 0, 5049, 5050, 3, 33, 16, 0, 5050, 5051, 3, 29, 14, 0, 5051, 5052, 3, 55, 27, 0, 5052, 832, 1, 0, 0, 0, 5053, 5054, 3, 35, 17, 0, 5054, 5055, 3, 37, 18, 0, 5055, 5056, 3, 15, 7, 0, 5056, 5057, 3, 33, 16, 0, 5057, 834, 1, 0, 0, 0, 5058, 5059, 3, 35, 17, 0, 5059, 5060, 3, 37, 18, 0, 5060, 5061, 3, 15, 7, 0, 5061, 5062, 3, 41, 20, 0, 5062, 5063, 3, 7, 3, 0, 5063, 5064, 3, 45, 22, 0, 5064, 5065, 3, 23, 11, 0, 5065, 5066, 3, 35, 17, 0, 5066, 5067, 3, 33, 16, 0, 5067, 836, 1, 0, 0, 0, 5068, 5069, 3, 35, 17, 0, 5069, 5070, 3, 37, 18, 0, 5070, 5071, 3, 15, 7, 0, 5071, 5072, 3, 41, 20, 0, 5072, 5073, 3, 7, 3, 0, 5073, 5074, 3, 45, 22, 0, 5074, 5075, 3, 35, 17, 0, 5075, 5076, 3, 41, 20, 0, 5076, 838, 1, 0, 0, 0, 5077, 5078, 3, 35, 17, 0, 5078, 5079, 3, 37, 18, 0, 5079, 5080, 3, 45, 22, 0, 5080, 5081, 3, 23, 11, 0, 5081, 5082, 3, 35, 17, 0, 5082, 5083, 3, 33, 16, 0, 5083, 840, 1, 0, 0, 0, 5084, 5085, 3, 35, 17, 0, 5085, 5086, 3, 37, 18, 0, 5086, 5087, 3, 45, 22, 0, 5087, 5088, 3, 23, 11, 0, 5088, 5089, 3, 35, 17, 0, 5089, 5090, 3, 33, 16, 0, 5090, 5091, 3, 43, 21, 0, 5091, 842, 1, 0, 0, 0, 5092, 5093, 3, 35, 17, 0, 5093, 5094, 3, 41, 20, 0, 5094, 844, 1, 0, 0, 0, 5095, 5096, 3, 35, 17, 0, 5096, 5097, 3, 41, 20, 0, 5097, 5098, 3, 13, 6, 0, 5098, 5099, 3, 15, 7, 0, 5099, 5100, 3, 41, 20, 0, 5100, 846, 1, 0, 0, 0, 5101, 5102, 3, 35, 17, 0, 5102, 5103, 3, 41, 20, 0, 5103, 5104, 3, 13, 6, 0, 5104, 5105, 3, 15, 7, 0, 5105, 5106, 3, 41, 20, 0, 5106, 5107, 3, 23, 11, 0, 5107, 5108, 3, 33, 16, 0, 5108, 5109, 3, 19, 9, 0, 5109, 848, 1, 0, 0, 0, 5110, 5111, 3, 35, 17, 0, 5111, 5112, 3, 41, 20, 0, 5112, 5113, 3, 13, 6, 0, 5113, 5114, 3, 23, 11, 0, 5114, 5115, 3, 33, 16, 0, 5115, 5116, 3, 7, 3, 0, 5116, 5117, 3, 29, 14, 0, 5117, 5118, 3, 23, 11, 0, 5118, 5119, 3, 45, 22, 0, 5119, 5120, 3, 55, 27, 0, 5120, 850, 1, 0, 0, 0, 5121, 5122, 3, 35, 17, 0, 5122, 5123, 3, 45, 22, 0, 5123, 5124, 3, 21, 10, 0, 5124, 5125, 3, 15, 7, 0, 5125, 5126, 3, 41, 20, 0, 5126, 5127, 3, 43, 21, 0, 5127, 852, 1, 0, 0, 0, 5128, 5129, 3, 35, 17, 0, 5129, 5130, 3, 47, 23, 0, 5130, 5131, 3, 45, 22, 0, 5131, 854, 1, 0, 0, 0, 5132, 5133, 3, 35, 17, 0, 5133, 5134, 3, 47, 23, 0, 5134, 5135, 3, 45, 22, 0, 5135, 5136, 3, 15, 7, 0, 5136, 5137, 3, 41, 20, 0, 5137, 856, 1, 0, 0, 0, 5138, 5139, 3, 35, 17, 0, 5139, 5140, 3, 47, 23, 0, 5140, 5141, 3, 45, 22, 0, 5141, 5142, 3, 37, 18, 0, 5142, 5143, 3, 47, 23, 0, 5143, 5144, 3, 45, 22, 0, 5144, 858, 1, 0, 0, 0, 5145, 5146, 3, 35, 17, 0, 5146, 5147, 3, 49, 24, 0, 5147, 5148, 3, 15, 7, 0, 5148, 5149, 3, 41, 20, 0, 5149, 860, 1, 0, 0, 0, 5150, 5151, 3, 35, 17, 0, 5151, 5152, 3, 49, 24, 0, 5152, 5153, 3, 15, 7, 0, 5153, 5154, 3, 41, 20, 0, 5154, 5155, 3, 29, 14, 0, 5155, 5156, 3, 7, 3, 0, 5156, 5157, 3, 37, 18, 0, 5157, 5158, 3, 43, 21, 0, 5158, 862, 1, 0, 0, 0, 5159, 5160, 3, 35, 17, 0, 5160, 5161, 3, 49, 24, 0, 5161, 5162, 3, 15, 7, 0, 5162, 5163, 3, 41, 20, 0, 5163, 5164, 3, 29, 14, 0, 5164, 5165, 3, 7, 3, 0, 5165, 5166, 3, 55, 27, 0, 5166, 864, 1, 0, 0, 0, 5167, 5168, 3, 35, 17, 0, 5168, 5169, 3, 49, 24, 0, 5169, 5170, 3, 15, 7, 0, 5170, 5171, 3, 41, 20, 0, 5171, 5172, 3, 41, 20, 0, 5172, 5173, 3, 23, 11, 0, 5173, 5174, 3, 13, 6, 0, 5174, 5175, 3, 23, 11, 0, 5175, 5176, 3, 33, 16, 0, 5176, 5177, 3, 19, 9, 0, 5177, 866, 1, 0, 0, 0, 5178, 5179, 3, 35, 17, 0, 5179, 5180, 3, 51, 25, 0, 5180, 5181, 3, 33, 16, 0, 5181, 5182, 3, 15, 7, 0, 5182, 5183, 3, 41, 20, 0, 5183, 868, 1, 0, 0, 0, 5184, 5185, 3, 37, 18, 0, 5185, 5186, 3, 7, 3, 0, 5186, 5187, 3, 13, 6, 0, 5187, 870, 1, 0, 0, 0, 5188, 5189, 3, 37, 18, 0, 5189, 5190, 3, 7, 3, 0, 5190, 5191, 3, 41, 20, 0, 5191, 5192, 3, 7, 3, 0, 5192, 5193, 3, 31, 15, 0, 5193, 5194, 3, 15, 7, 0, 5194, 5195, 3, 45, 22, 0, 5195, 5196, 3, 15, 7, 0, 5196, 5197, 3, 41, 20, 0, 5197, 872, 1, 0, 0, 0, 5198, 5199, 3, 37, 18, 0, 5199, 5200, 3, 7, 3, 0, 5200, 5201, 3, 41, 20, 0, 5201, 5202, 3, 7, 3, 0, 5202, 5203, 3, 31, 15, 0, 5203, 5204, 3, 15, 7, 0, 5204, 5205, 3, 45, 22, 0, 5205, 5206, 3, 15, 7, 0, 5206, 5207, 3, 41, 20, 0, 5207, 5208, 5, 95, 0, 0, 5208, 5209, 3, 31, 15, 0, 5209, 5210, 3, 35, 17, 0, 5210, 5211, 3, 13, 6, 0, 5211, 5212, 3, 15, 7, 0, 5212, 874, 1, 0, 0, 0, 5213, 5214, 3, 37, 18, 0, 5214, 5215, 3, 7, 3, 0, 5215, 5216, 3, 41, 20, 0, 5216, 5217, 3, 7, 3, 0, 5217, 5218, 3, 31, 15, 0, 5218, 5219, 3, 15, 7, 0, 5219, 5220, 3, 45, 22, 0, 5220, 5221, 3, 15, 7, 0, 5221, 5222, 3, 41, 20, 0, 5222, 5223, 5, 95, 0, 0, 5223, 5224, 3, 33, 16, 0, 5224, 5225, 3, 7, 3, 0, 5225, 5226, 3, 31, 15, 0, 5226, 5227, 3, 15, 7, 0, 5227, 876, 1, 0, 0, 0, 5228, 5229, 3, 37, 18, 0, 5229, 5230, 3, 7, 3, 0, 5230, 5231, 3, 41, 20, 0, 5231, 5232, 3, 7, 3, 0, 5232, 5233, 3, 31, 15, 0, 5233, 5234, 3, 15, 7, 0, 5234, 5235, 3, 45, 22, 0, 5235, 5236, 3, 15, 7, 0, 5236, 5237, 3, 41, 20, 0, 5237, 5238, 5, 95, 0, 0, 5238, 5239, 3, 35, 17, 0, 5239, 5240, 3, 41, 20, 0, 5240, 5241, 3, 13, 6, 0, 5241, 5242, 3, 23, 11, 0, 5242, 5243, 3, 33, 16, 0, 5243, 5244, 3, 7, 3, 0, 5244, 5245, 3, 29, 14, 0, 5245, 5246, 5, 95, 0, 0, 5246, 5247, 3, 37, 18, 0, 5247, 5248, 3, 35, 17, 0, 5248, 5249, 3, 43, 21, 0, 5249, 5250, 3, 23, 11, 0, 5250, 5251, 3, 45, 22, 0, 5251, 5252, 3, 23, 11, 0, 5252, 5253, 3, 35, 17, 0, 5253, 5254, 3, 33, 16, 0, 5254, 878, 1, 0, 0, 0, 5255, 5256, 3, 37, 18, 0, 5256, 5257, 3, 7, 3, 0, 5257, 5258, 3, 41, 20, 0, 5258, 5259, 3, 7, 3, 0, 5259, 5260, 3, 31, 15, 0, 5260, 5261, 3, 15, 7, 0, 5261, 5262, 3, 45, 22, 0, 5262, 5263, 3, 15, 7, 0, 5263, 5264, 3, 41, 20, 0, 5264, 5265, 5, 95, 0, 0, 5265, 5266, 3, 43, 21, 0, 5266, 5267, 3, 37, 18, 0, 5267, 5268, 3, 15, 7, 0, 5268, 5269, 3, 11, 5, 0, 5269, 5270, 3, 23, 11, 0, 5270, 5271, 3, 17, 8, 0, 5271, 5272, 3, 23, 11, 0, 5272, 5273, 3, 11, 5, 0, 5273, 5274, 5, 95, 0, 0, 5274, 5275, 3, 11, 5, 0, 5275, 5276, 3, 7, 3, 0, 5276, 5277, 3, 45, 22, 0, 5277, 5278, 3, 7, 3, 0, 5278, 5279, 3, 29, 14, 0, 5279, 5280, 3, 35, 17, 0, 5280, 5281, 3, 19, 9, 0, 5281, 880, 1, 0, 0, 0, 5282, 5283, 3, 37, 18, 0, 5283, 5284, 3, 7, 3, 0, 5284, 5285, 3, 41, 20, 0, 5285, 5286, 3, 7, 3, 0, 5286, 5287, 3, 31, 15, 0, 5287, 5288, 3, 15, 7, 0, 5288, 5289, 3, 45, 22, 0, 5289, 5290, 3, 15, 7, 0, 5290, 5291, 3, 41, 20, 0, 5291, 5292, 5, 95, 0, 0, 5292, 5293, 3, 43, 21, 0, 5293, 5294, 3, 37, 18, 0, 5294, 5295, 3, 15, 7, 0, 5295, 5296, 3, 11, 5, 0, 5296, 5297, 3, 23, 11, 0, 5297, 5298, 3, 17, 8, 0, 5298, 5299, 3, 23, 11, 0, 5299, 5300, 3, 11, 5, 0, 5300, 5301, 5, 95, 0, 0, 5301, 5302, 3, 33, 16, 0, 5302, 5303, 3, 7, 3, 0, 5303, 5304, 3, 31, 15, 0, 5304, 5305, 3, 15, 7, 0, 5305, 882, 1, 0, 0, 0, 5306, 5307, 3, 37, 18, 0, 5307, 5308, 3, 7, 3, 0, 5308, 5309, 3, 41, 20, 0, 5309, 5310, 3, 7, 3, 0, 5310, 5311, 3, 31, 15, 0, 5311, 5312, 3, 15, 7, 0, 5312, 5313, 3, 45, 22, 0, 5313, 5314, 3, 15, 7, 0, 5314, 5315, 3, 41, 20, 0, 5315, 5316, 5, 95, 0, 0, 5316, 5317, 3, 43, 21, 0, 5317, 5318, 3, 37, 18, 0, 5318, 5319, 3, 15, 7, 0, 5319, 5320, 3, 11, 5, 0, 5320, 5321, 3, 23, 11, 0, 5321, 5322, 3, 17, 8, 0, 5322, 5323, 3, 23, 11, 0, 5323, 5324, 3, 11, 5, 0, 5324, 5325, 5, 95, 0, 0, 5325, 5326, 3, 43, 21, 0, 5326, 5327, 3, 11, 5, 0, 5327, 5328, 3, 21, 10, 0, 5328, 5329, 3, 15, 7, 0, 5329, 5330, 3, 31, 15, 0, 5330, 5331, 3, 7, 3, 0, 5331, 884, 1, 0, 0, 0, 5332, 5333, 3, 37, 18, 0, 5333, 5334, 3, 7, 3, 0, 5334, 5335, 3, 41, 20, 0, 5335, 5336, 3, 7, 3, 0, 5336, 5337, 3, 31, 15, 0, 5337, 5338, 3, 15, 7, 0, 5338, 5339, 3, 45, 22, 0, 5339, 5340, 3, 15, 7, 0, 5340, 5341, 3, 41, 20, 0, 5341, 5342, 3, 43, 21, 0, 5342, 886, 1, 0, 0, 0, 5343, 5344, 3, 37, 18, 0, 5344, 5345, 3, 7, 3, 0, 5345, 5346, 3, 41, 20, 0, 5346, 5347, 3, 43, 21, 0, 5347, 5348, 3, 15, 7, 0, 5348, 5349, 3, 41, 20, 0, 5349, 888, 1, 0, 0, 0, 5350, 5351, 3, 37, 18, 0, 5351, 5352, 3, 7, 3, 0, 5352, 5353, 3, 41, 20, 0, 5353, 5354, 3, 45, 22, 0, 5354, 5355, 3, 23, 11, 0, 5355, 5356, 3, 7, 3, 0, 5356, 5357, 3, 29, 14, 0, 5357, 890, 1, 0, 0, 0, 5358, 5359, 3, 37, 18, 0, 5359, 5360, 3, 7, 3, 0, 5360, 5361, 3, 41, 20, 0, 5361, 5362, 3, 45, 22, 0, 5362, 5363, 3, 23, 11, 0, 5363, 5364, 3, 45, 22, 0, 5364, 5365, 3, 23, 11, 0, 5365, 5366, 3, 35, 17, 0, 5366, 5367, 3, 33, 16, 0, 5367, 892, 1, 0, 0, 0, 5368, 5369, 3, 37, 18, 0, 5369, 5370, 3, 7, 3, 0, 5370, 5371, 3, 43, 21, 0, 5371, 5372, 3, 11, 5, 0, 5372, 5373, 3, 7, 3, 0, 5373, 5374, 3, 29, 14, 0, 5374, 894, 1, 0, 0, 0, 5375, 5376, 3, 37, 18, 0, 5376, 5377, 3, 7, 3, 0, 5377, 5378, 3, 43, 21, 0, 5378, 5379, 3, 43, 21, 0, 5379, 5380, 3, 51, 25, 0, 5380, 5381, 3, 35, 17, 0, 5381, 5382, 3, 41, 20, 0, 5382, 5383, 3, 13, 6, 0, 5383, 896, 1, 0, 0, 0, 5384, 5385, 3, 37, 18, 0, 5385, 5386, 3, 7, 3, 0, 5386, 5387, 3, 45, 22, 0, 5387, 5388, 3, 21, 10, 0, 5388, 898, 1, 0, 0, 0, 5389, 5390, 3, 37, 18, 0, 5390, 5391, 3, 15, 7, 0, 5391, 5392, 3, 41, 20, 0, 5392, 5393, 3, 11, 5, 0, 5393, 5394, 3, 15, 7, 0, 5394, 5395, 3, 33, 16, 0, 5395, 5396, 3, 45, 22, 0, 5396, 5397, 5, 95, 0, 0, 5397, 5398, 3, 41, 20, 0, 5398, 5399, 3, 7, 3, 0, 5399, 5400, 3, 33, 16, 0, 5400, 5401, 3, 27, 13, 0, 5401, 900, 1, 0, 0, 0, 5402, 5403, 3, 37, 18, 0, 5403, 5404, 3, 15, 7, 0, 5404, 5405, 3, 41, 20, 0, 5405, 5406, 3, 11, 5, 0, 5406, 5407, 3, 15, 7, 0, 5407, 5408, 3, 33, 16, 0, 5408, 5409, 3, 45, 22, 0, 5409, 5410, 3, 23, 11, 0, 5410, 5411, 3, 29, 14, 0, 5411, 5412, 3, 15, 7, 0, 5412, 5413, 5, 95, 0, 0, 5413, 5414, 3, 11, 5, 0, 5414, 5415, 3, 35, 17, 0, 5415, 5416, 3, 33, 16, 0, 5416, 5417, 3, 45, 22, 0, 5417, 902, 1, 0, 0, 0, 5418, 5419, 3, 37, 18, 0, 5419, 5420, 3, 15, 7, 0, 5420, 5421, 3, 41, 20, 0, 5421, 5422, 3, 11, 5, 0, 5422, 5423, 3, 15, 7, 0, 5423, 5424, 3, 33, 16, 0, 5424, 5425, 3, 45, 22, 0, 5425, 5426, 3, 23, 11, 0, 5426, 5427, 3, 29, 14, 0, 5427, 5428, 3, 15, 7, 0, 5428, 5429, 5, 95, 0, 0, 5429, 5430, 3, 13, 6, 0, 5430, 5431, 3, 23, 11, 0, 5431, 5432, 3, 43, 21, 0, 5432, 5433, 3, 11, 5, 0, 5433, 904, 1, 0, 0, 0, 5434, 5435, 3, 37, 18, 0, 5435, 5436, 3, 29, 14, 0, 5436, 5437, 3, 7, 3, 0, 5437, 5438, 3, 11, 5, 0, 5438, 5439, 3, 23, 11, 0, 5439, 5440, 3, 33, 16, 0, 5440, 5441, 3, 19, 9, 0, 5441, 906, 1, 0, 0, 0, 5442, 5443, 3, 37, 18, 0, 5443, 5444, 3, 29, 14, 0, 5444, 5445, 3, 7, 3, 0, 5445, 5446, 3, 23, 11, 0, 5446, 5447, 3, 33, 16, 0, 5447, 908, 1, 0, 0, 0, 5448, 5449, 3, 37, 18, 0, 5449, 5450, 3, 29, 14, 0, 5450, 5451, 3, 7, 3, 0, 5451, 5452, 3, 33, 16, 0, 5452, 5453, 3, 43, 21, 0, 5453, 910, 1, 0, 0, 0, 5454, 5455, 3, 37, 18, 0, 5455, 5456, 3, 29, 14, 0, 5456, 5457, 3, 23, 11, 0, 5457, 912, 1, 0, 0, 0, 5458, 5459, 3, 37, 18, 0, 5459, 5460, 3, 35, 17, 0, 5460, 5461, 3, 43, 21, 0, 5461, 5462, 3, 23, 11, 0, 5462, 5463, 3, 45, 22, 0, 5463, 5464, 3, 23, 11, 0, 5464, 5465, 3, 35, 17, 0, 5465, 5466, 3, 33, 16, 0, 5466, 914, 1, 0, 0, 0, 5467, 5468, 3, 37, 18, 0, 5468, 5469, 3, 35, 17, 0, 5469, 5470, 3, 43, 21, 0, 5470, 5471, 3, 45, 22, 0, 5471, 5472, 3, 17, 8, 0, 5472, 5473, 3, 23, 11, 0, 5473, 5474, 3, 53, 26, 0, 5474, 916, 1, 0, 0, 0, 5475, 5476, 3, 37, 18, 0, 5476, 5477, 3, 35, 17, 0, 5477, 5478, 3, 51, 25, 0, 5478, 5479, 3, 15, 7, 0, 5479, 5480, 3, 41, 20, 0, 5480, 918, 1, 0, 0, 0, 5481, 5482, 3, 37, 18, 0, 5482, 5483, 3, 41, 20, 0, 5483, 5484, 3, 15, 7, 0, 5484, 5485, 3, 11, 5, 0, 5485, 5486, 3, 15, 7, 0, 5486, 5487, 3, 13, 6, 0, 5487, 5488, 3, 23, 11, 0, 5488, 5489, 3, 33, 16, 0, 5489, 5490, 3, 19, 9, 0, 5490, 920, 1, 0, 0, 0, 5491, 5492, 3, 37, 18, 0, 5492, 5493, 3, 41, 20, 0, 5493, 5494, 3, 15, 7, 0, 5494, 5495, 3, 11, 5, 0, 5495, 5496, 3, 23, 11, 0, 5496, 5497, 3, 43, 21, 0, 5497, 5498, 3, 23, 11, 0, 5498, 5499, 3, 35, 17, 0, 5499, 5500, 3, 33, 16, 0, 5500, 922, 1, 0, 0, 0, 5501, 5502, 3, 37, 18, 0, 5502, 5503, 3, 41, 20, 0, 5503, 5504, 3, 15, 7, 0, 5504, 5505, 3, 17, 8, 0, 5505, 5506, 3, 23, 11, 0, 5506, 5507, 3, 53, 26, 0, 5507, 924, 1, 0, 0, 0, 5508, 5509, 3, 37, 18, 0, 5509, 5510, 3, 41, 20, 0, 5510, 5511, 3, 15, 7, 0, 5511, 5512, 3, 35, 17, 0, 5512, 5513, 3, 41, 20, 0, 5513, 5514, 3, 13, 6, 0, 5514, 5515, 3, 15, 7, 0, 5515, 5516, 3, 41, 20, 0, 5516, 926, 1, 0, 0, 0, 5517, 5518, 3, 37, 18, 0, 5518, 5519, 3, 41, 20, 0, 5519, 5520, 3, 15, 7, 0, 5520, 5521, 3, 37, 18, 0, 5521, 5522, 3, 7, 3, 0, 5522, 5523, 3, 41, 20, 0, 5523, 5524, 3, 15, 7, 0, 5524, 928, 1, 0, 0, 0, 5525, 5526, 3, 37, 18, 0, 5526, 5527, 3, 41, 20, 0, 5527, 5528, 3, 15, 7, 0, 5528, 5529, 3, 37, 18, 0, 5529, 5530, 3, 7, 3, 0, 5530, 5531, 3, 41, 20, 0, 5531, 5532, 3, 15, 7, 0, 5532, 5533, 3, 13, 6, 0, 5533, 930, 1, 0, 0, 0, 5534, 5535, 3, 37, 18, 0, 5535, 5536, 3, 41, 20, 0, 5536, 5537, 3, 15, 7, 0, 5537, 5538, 3, 43, 21, 0, 5538, 5539, 3, 15, 7, 0, 5539, 5540, 3, 41, 20, 0, 5540, 5541, 3, 49, 24, 0, 5541, 5542, 3, 15, 7, 0, 5542, 932, 1, 0, 0, 0, 5543, 5544, 3, 37, 18, 0, 5544, 5545, 3, 41, 20, 0, 5545, 5546, 3, 23, 11, 0, 5546, 5547, 3, 31, 15, 0, 5547, 5548, 3, 7, 3, 0, 5548, 5549, 3, 41, 20, 0, 5549, 5550, 3, 55, 27, 0, 5550, 934, 1, 0, 0, 0, 5551, 5552, 3, 37, 18, 0, 5552, 5553, 3, 41, 20, 0, 5553, 5554, 3, 23, 11, 0, 5554, 5555, 3, 35, 17, 0, 5555, 5556, 3, 41, 20, 0, 5556, 936, 1, 0, 0, 0, 5557, 5558, 3, 37, 18, 0, 5558, 5559, 3, 41, 20, 0, 5559, 5560, 3, 23, 11, 0, 5560, 5561, 3, 49, 24, 0, 5561, 5562, 3, 23, 11, 0, 5562, 5563, 3, 29, 14, 0, 5563, 5564, 3, 15, 7, 0, 5564, 5565, 3, 19, 9, 0, 5565, 5566, 3, 15, 7, 0, 5566, 5567, 3, 43, 21, 0, 5567, 938, 1, 0, 0, 0, 5568, 5569, 3, 37, 18, 0, 5569, 5570, 3, 41, 20, 0, 5570, 5571, 3, 35, 17, 0, 5571, 5572, 3, 11, 5, 0, 5572, 5573, 3, 15, 7, 0, 5573, 5574, 3, 13, 6, 0, 5574, 5575, 3, 47, 23, 0, 5575, 5576, 3, 41, 20, 0, 5576, 5577, 3, 7, 3, 0, 5577, 5578, 3, 29, 14, 0, 5578, 940, 1, 0, 0, 0, 5579, 5580, 3, 37, 18, 0, 5580, 5581, 3, 41, 20, 0, 5581, 5582, 3, 35, 17, 0, 5582, 5583, 3, 11, 5, 0, 5583, 5584, 3, 15, 7, 0, 5584, 5585, 3, 13, 6, 0, 5585, 5586, 3, 47, 23, 0, 5586, 5587, 3, 41, 20, 0, 5587, 5588, 3, 15, 7, 0, 5588, 942, 1, 0, 0, 0, 5589, 5590, 3, 37, 18, 0, 5590, 5591, 3, 47, 23, 0, 5591, 5592, 3, 9, 4, 0, 5592, 5593, 3, 29, 14, 0, 5593, 5594, 3, 23, 11, 0, 5594, 5595, 3, 11, 5, 0, 5595, 944, 1, 0, 0, 0, 5596, 5597, 3, 37, 18, 0, 5597, 5598, 3, 47, 23, 0, 5598, 5599, 3, 9, 4, 0, 5599, 5600, 3, 29, 14, 0, 5600, 5601, 3, 23, 11, 0, 5601, 5602, 3, 11, 5, 0, 5602, 5603, 3, 7, 3, 0, 5603, 5604, 3, 45, 22, 0, 5604, 5605, 3, 23, 11, 0, 5605, 5606, 3, 35, 17, 0, 5606, 5607, 3, 33, 16, 0, 5607, 946, 1, 0, 0, 0, 5608, 5609, 3, 39, 19, 0, 5609, 5610, 3, 47, 23, 0, 5610, 5611, 3, 35, 17, 0, 5611, 5612, 3, 45, 22, 0, 5612, 5613, 3, 15, 7, 0, 5613, 948, 1, 0, 0, 0, 5614, 5615, 3, 41, 20, 0, 5615, 5616, 3, 7, 3, 0, 5616, 5617, 3, 33, 16, 0, 5617, 5618, 3, 19, 9, 0, 5618, 5619, 3, 15, 7, 0, 5619, 950, 1, 0, 0, 0, 5620, 5621, 3, 41, 20, 0, 5621, 5622, 3, 7, 3, 0, 5622, 5623, 3, 33, 16, 0, 5623, 5624, 3, 27, 13, 0, 5624, 952, 1, 0, 0, 0, 5625, 5626, 3, 41, 20, 0, 5626, 5627, 3, 15, 7, 0, 5627, 5628, 3, 7, 3, 0, 5628, 5629, 3, 13, 6, 0, 5629, 954, 1, 0, 0, 0, 5630, 5631, 3, 41, 20, 0, 5631, 5632, 3, 15, 7, 0, 5632, 5633, 3, 7, 3, 0, 5633, 5634, 3, 13, 6, 0, 5634, 5635, 3, 43, 21, 0, 5635, 956, 1, 0, 0, 0, 5636, 5637, 3, 41, 20, 0, 5637, 5638, 3, 15, 7, 0, 5638, 5639, 3, 7, 3, 0, 5639, 5640, 3, 29, 14, 0, 5640, 958, 1, 0, 0, 0, 5641, 5642, 3, 41, 20, 0, 5642, 5643, 3, 15, 7, 0, 5643, 5644, 3, 7, 3, 0, 5644, 5645, 3, 43, 21, 0, 5645, 5646, 3, 43, 21, 0, 5646, 5647, 3, 23, 11, 0, 5647, 5648, 3, 19, 9, 0, 5648, 5649, 3, 33, 16, 0, 5649, 960, 1, 0, 0, 0, 5650, 5651, 3, 41, 20, 0, 5651, 5652, 3, 15, 7, 0, 5652, 5653, 3, 11, 5, 0, 5653, 5654, 3, 21, 10, 0, 5654, 5655, 3, 15, 7, 0, 5655, 5656, 3, 11, 5, 0, 5656, 5657, 3, 27, 13, 0, 5657, 962, 1, 0, 0, 0, 5658, 5659, 3, 41, 20, 0, 5659, 5660, 3, 15, 7, 0, 5660, 5661, 3, 11, 5, 0, 5661, 5662, 3, 47, 23, 0, 5662, 5663, 3, 41, 20, 0, 5663, 5664, 3, 43, 21, 0, 5664, 5665, 3, 23, 11, 0, 5665, 5666, 3, 49, 24, 0, 5666, 5667, 3, 15, 7, 0, 5667, 964, 1, 0, 0, 0, 5668, 5669, 3, 41, 20, 0, 5669, 5670, 3, 15, 7, 0, 5670, 5671, 3, 17, 8, 0, 5671, 966, 1, 0, 0, 0, 5672, 5673, 3, 41, 20, 0, 5673, 5674, 3, 15, 7, 0, 5674, 5675, 3, 17, 8, 0, 5675, 5676, 3, 15, 7, 0, 5676, 5677, 3, 41, 20, 0, 5677, 5678, 3, 15, 7, 0, 5678, 5679, 3, 33, 16, 0, 5679, 5680, 3, 11, 5, 0, 5680, 5681, 3, 15, 7, 0, 5681, 5682, 3, 43, 21, 0, 5682, 968, 1, 0, 0, 0, 5683, 5684, 3, 41, 20, 0, 5684, 5685, 3, 15, 7, 0, 5685, 5686, 3, 17, 8, 0, 5686, 5687, 3, 15, 7, 0, 5687, 5688, 3, 41, 20, 0, 5688, 5689, 3, 15, 7, 0, 5689, 5690, 3, 33, 16, 0, 5690, 5691, 3, 11, 5, 0, 5691, 5692, 3, 23, 11, 0, 5692, 5693, 3, 33, 16, 0, 5693, 5694, 3, 19, 9, 0, 5694, 970, 1, 0, 0, 0, 5695, 5696, 3, 41, 20, 0, 5696, 5697, 3, 15, 7, 0, 5697, 5698, 3, 17, 8, 0, 5698, 5699, 3, 41, 20, 0, 5699, 5700, 3, 15, 7, 0, 5700, 5701, 3, 43, 21, 0, 5701, 5702, 3, 21, 10, 0, 5702, 972, 1, 0, 0, 0, 5703, 5704, 3, 41, 20, 0, 5704, 5705, 3, 15, 7, 0, 5705, 5706, 3, 19, 9, 0, 5706, 5707, 3, 41, 20, 0, 5707, 5708, 5, 95, 0, 0, 5708, 5709, 3, 7, 3, 0, 5709, 5710, 3, 49, 24, 0, 5710, 5711, 3, 19, 9, 0, 5711, 5712, 3, 53, 26, 0, 5712, 974, 1, 0, 0, 0, 5713, 5714, 3, 41, 20, 0, 5714, 5715, 3, 15, 7, 0, 5715, 5716, 3, 19, 9, 0, 5716, 5717, 3, 41, 20, 0, 5717, 5718, 5, 95, 0, 0, 5718, 5719, 3, 7, 3, 0, 5719, 5720, 3, 49, 24, 0, 5720, 5721, 3, 19, 9, 0, 5721, 5722, 3, 55, 27, 0, 5722, 976, 1, 0, 0, 0, 5723, 5724, 3, 41, 20, 0, 5724, 5725, 3, 15, 7, 0, 5725, 5726, 3, 19, 9, 0, 5726, 5727, 3, 41, 20, 0, 5727, 5728, 5, 95, 0, 0, 5728, 5729, 3, 11, 5, 0, 5729, 5730, 3, 35, 17, 0, 5730, 5731, 3, 47, 23, 0, 5731, 5732, 3, 33, 16, 0, 5732, 5733, 3, 45, 22, 0, 5733, 978, 1, 0, 0, 0, 5734, 5735, 3, 41, 20, 0, 5735, 5736, 3, 15, 7, 0, 5736, 5737, 3, 19, 9, 0, 5737, 5738, 3, 41, 20, 0, 5738, 5739, 5, 95, 0, 0, 5739, 5740, 3, 23, 11, 0, 5740, 5741, 3, 33, 16, 0, 5741, 5742, 3, 45, 22, 0, 5742, 5743, 3, 15, 7, 0, 5743, 5744, 3, 41, 20, 0, 5744, 5745, 3, 11, 5, 0, 5745, 5746, 3, 15, 7, 0, 5746, 5747, 3, 37, 18, 0, 5747, 5748, 3, 45, 22, 0, 5748, 980, 1, 0, 0, 0, 5749, 5750, 3, 41, 20, 0, 5750, 5751, 3, 15, 7, 0, 5751, 5752, 3, 19, 9, 0, 5752, 5753, 3, 41, 20, 0, 5753, 5754, 5, 95, 0, 0, 5754, 5755, 3, 41, 20, 0, 5755, 5756, 5, 50, 0, 0, 5756, 982, 1, 0, 0, 0, 5757, 5758, 3, 41, 20, 0, 5758, 5759, 3, 15, 7, 0, 5759, 5760, 3, 19, 9, 0, 5760, 5761, 3, 41, 20, 0, 5761, 5762, 5, 95, 0, 0, 5762, 5763, 3, 43, 21, 0, 5763, 5764, 3, 29, 14, 0, 5764, 5765, 3, 35, 17, 0, 5765, 5766, 3, 37, 18, 0, 5766, 5767, 3, 15, 7, 0, 5767, 984, 1, 0, 0, 0, 5768, 5769, 3, 41, 20, 0, 5769, 5770, 3, 15, 7, 0, 5770, 5771, 3, 19, 9, 0, 5771, 5772, 3, 41, 20, 0, 5772, 5773, 5, 95, 0, 0, 5773, 5774, 3, 43, 21, 0, 5774, 5775, 3, 53, 26, 0, 5775, 5776, 3, 53, 26, 0, 5776, 986, 1, 0, 0, 0, 5777, 5778, 3, 41, 20, 0, 5778, 5779, 3, 15, 7, 0, 5779, 5780, 3, 19, 9, 0, 5780, 5781, 3, 41, 20, 0, 5781, 5782, 5, 95, 0, 0, 5782, 5783, 3, 43, 21, 0, 5783, 5784, 3, 53, 26, 0, 5784, 5785, 3, 55, 27, 0, 5785, 988, 1, 0, 0, 0, 5786, 5787, 3, 41, 20, 0, 5787, 5788, 3, 15, 7, 0, 5788, 5789, 3, 19, 9, 0, 5789, 5790, 3, 41, 20, 0, 5790, 5791, 5, 95, 0, 0, 5791, 5792, 3, 43, 21, 0, 5792, 5793, 3, 55, 27, 0, 5793, 5794, 3, 55, 27, 0, 5794, 990, 1, 0, 0, 0, 5795, 5796, 3, 41, 20, 0, 5796, 5797, 3, 15, 7, 0, 5797, 5798, 3, 23, 11, 0, 5798, 5799, 3, 33, 16, 0, 5799, 5800, 3, 13, 6, 0, 5800, 5801, 3, 15, 7, 0, 5801, 5802, 3, 53, 26, 0, 5802, 992, 1, 0, 0, 0, 5803, 5804, 3, 41, 20, 0, 5804, 5805, 3, 15, 7, 0, 5805, 5806, 3, 29, 14, 0, 5806, 5807, 3, 7, 3, 0, 5807, 5808, 3, 45, 22, 0, 5808, 5809, 3, 23, 11, 0, 5809, 5810, 3, 49, 24, 0, 5810, 5811, 3, 15, 7, 0, 5811, 994, 1, 0, 0, 0, 5812, 5813, 3, 41, 20, 0, 5813, 5814, 3, 15, 7, 0, 5814, 5815, 3, 29, 14, 0, 5815, 5816, 3, 15, 7, 0, 5816, 5817, 3, 7, 3, 0, 5817, 5818, 3, 43, 21, 0, 5818, 5819, 3, 15, 7, 0, 5819, 996, 1, 0, 0, 0, 5820, 5821, 3, 41, 20, 0, 5821, 5822, 3, 15, 7, 0, 5822, 5823, 3, 33, 16, 0, 5823, 5824, 3, 7, 3, 0, 5824, 5825, 3, 31, 15, 0, 5825, 5826, 3, 15, 7, 0, 5826, 998, 1, 0, 0, 0, 5827, 5828, 3, 41, 20, 0, 5828, 5829, 3, 15, 7, 0, 5829, 5830, 3, 37, 18, 0, 5830, 5831, 3, 15, 7, 0, 5831, 5832, 3, 7, 3, 0, 5832, 5833, 3, 45, 22, 0, 5833, 5834, 3, 7, 3, 0, 5834, 5835, 3, 9, 4, 0, 5835, 5836, 3, 29, 14, 0, 5836, 5837, 3, 15, 7, 0, 5837, 1000, 1, 0, 0, 0, 5838, 5839, 3, 41, 20, 0, 5839, 5840, 3, 15, 7, 0, 5840, 5841, 3, 37, 18, 0, 5841, 5842, 3, 29, 14, 0, 5842, 5843, 3, 7, 3, 0, 5843, 5844, 3, 11, 5, 0, 5844, 5845, 3, 15, 7, 0, 5845, 1002, 1, 0, 0, 0, 5846, 5847, 3, 41, 20, 0, 5847, 5848, 3, 15, 7, 0, 5848, 5849, 3, 37, 18, 0, 5849, 5850, 3, 29, 14, 0, 5850, 5851, 3, 23, 11, 0, 5851, 5852, 3, 11, 5, 0, 5852, 5853, 3, 7, 3, 0, 5853, 1004, 1, 0, 0, 0, 5854, 5855, 3, 41, 20, 0, 5855, 5856, 3, 15, 7, 0, 5856, 5857, 3, 43, 21, 0, 5857, 5858, 3, 15, 7, 0, 5858, 5859, 3, 45, 22, 0, 5859, 1006, 1, 0, 0, 0, 5860, 5861, 3, 41, 20, 0, 5861, 5862, 3, 15, 7, 0, 5862, 5863, 3, 43, 21, 0, 5863, 5864, 3, 45, 22, 0, 5864, 5865, 3, 7, 3, 0, 5865, 5866, 3, 41, 20, 0, 5866, 5867, 3, 45, 22, 0, 5867, 1008, 1, 0, 0, 0, 5868, 5869, 3, 41, 20, 0, 5869, 5870, 3, 15, 7, 0, 5870, 5871, 3, 43, 21, 0, 5871, 5872, 3, 45, 22, 0, 5872, 5873, 3, 41, 20, 0, 5873, 5874, 3, 23, 11, 0, 5874, 5875, 3, 11, 5, 0, 5875, 5876, 3, 45, 22, 0, 5876, 1010, 1, 0, 0, 0, 5877, 5878, 3, 41, 20, 0, 5878, 5879, 3, 15, 7, 0, 5879, 5880, 3, 43, 21, 0, 5880, 5881, 3, 47, 23, 0, 5881, 5882, 3, 29, 14, 0, 5882, 5883, 3, 45, 22, 0, 5883, 1012, 1, 0, 0, 0, 5884, 5885, 3, 41, 20, 0, 5885, 5886, 3, 15, 7, 0, 5886, 5887, 3, 45, 22, 0, 5887, 5888, 3, 47, 23, 0, 5888, 5889, 3, 41, 20, 0, 5889, 5890, 3, 33, 16, 0, 5890, 1014, 1, 0, 0, 0, 5891, 5892, 3, 41, 20, 0, 5892, 5893, 3, 15, 7, 0, 5893, 5894, 3, 45, 22, 0, 5894, 5895, 3, 47, 23, 0, 5895, 5896, 3, 41, 20, 0, 5896, 5897, 3, 33, 16, 0, 5897, 5898, 3, 15, 7, 0, 5898, 5899, 3, 13, 6, 0, 5899, 5900, 5, 95, 0, 0, 5900, 5901, 3, 11, 5, 0, 5901, 5902, 3, 7, 3, 0, 5902, 5903, 3, 41, 20, 0, 5903, 5904, 3, 13, 6, 0, 5904, 5905, 3, 23, 11, 0, 5905, 5906, 3, 33, 16, 0, 5906, 5907, 3, 7, 3, 0, 5907, 5908, 3, 29, 14, 0, 5908, 5909, 3, 23, 11, 0, 5909, 5910, 3, 45, 22, 0, 5910, 5911, 3, 55, 27, 0, 5911, 1016, 1, 0, 0, 0, 5912, 5913, 3, 41, 20, 0, 5913, 5914, 3, 15, 7, 0, 5914, 5915, 3, 45, 22, 0, 5915, 5916, 3, 47, 23, 0, 5916, 5917, 3, 41, 20, 0, 5917, 5918, 3, 33, 16, 0, 5918, 5919, 3, 15, 7, 0, 5919, 5920, 3, 13, 6, 0, 5920, 5921, 5, 95, 0, 0, 5921, 5922, 3, 29, 14, 0, 5922, 5923, 3, 15, 7, 0, 5923, 5924, 3, 33, 16, 0, 5924, 5925, 3, 19, 9, 0, 5925, 5926, 3, 45, 22, 0, 5926, 5927, 3, 21, 10, 0, 5927, 1018, 1, 0, 0, 0, 5928, 5929, 3, 41, 20, 0, 5929, 5930, 3, 15, 7, 0, 5930, 5931, 3, 45, 22, 0, 5931, 5932, 3, 47, 23, 0, 5932, 5933, 3, 41, 20, 0, 5933, 5934, 3, 33, 16, 0, 5934, 5935, 3, 15, 7, 0, 5935, 5936, 3, 13, 6, 0, 5936, 5937, 5, 95, 0, 0, 5937, 5938, 3, 35, 17, 0, 5938, 5939, 3, 11, 5, 0, 5939, 5940, 3, 45, 22, 0, 5940, 5941, 3, 15, 7, 0, 5941, 5942, 3, 45, 22, 0, 5942, 5943, 5, 95, 0, 0, 5943, 5944, 3, 29, 14, 0, 5944, 5945, 3, 15, 7, 0, 5945, 5946, 3, 33, 16, 0, 5946, 5947, 3, 19, 9, 0, 5947, 5948, 3, 45, 22, 0, 5948, 5949, 3, 21, 10, 0, 5949, 1020, 1, 0, 0, 0, 5950, 5951, 3, 41, 20, 0, 5951, 5952, 3, 15, 7, 0, 5952, 5953, 3, 45, 22, 0, 5953, 5954, 3, 47, 23, 0, 5954, 5955, 3, 41, 20, 0, 5955, 5956, 3, 33, 16, 0, 5956, 5957, 3, 15, 7, 0, 5957, 5958, 3, 13, 6, 0, 5958, 5959, 5, 95, 0, 0, 5959, 5960, 3, 43, 21, 0, 5960, 5961, 3, 39, 19, 0, 5961, 5962, 3, 29, 14, 0, 5962, 5963, 3, 43, 21, 0, 5963, 5964, 3, 45, 22, 0, 5964, 5965, 3, 7, 3, 0, 5965, 5966, 3, 45, 22, 0, 5966, 5967, 3, 15, 7, 0, 5967, 1022, 1, 0, 0, 0, 5968, 5969, 3, 41, 20, 0, 5969, 5970, 3, 15, 7, 0, 5970, 5971, 3, 45, 22, 0, 5971, 5972, 3, 47, 23, 0, 5972, 5973, 3, 41, 20, 0, 5973, 5974, 3, 33, 16, 0, 5974, 5975, 3, 23, 11, 0, 5975, 5976, 3, 33, 16, 0, 5976, 5977, 3, 19, 9, 0, 5977, 1024, 1, 0, 0, 0, 5978, 5979, 3, 41, 20, 0, 5979, 5980, 3, 15, 7, 0, 5980, 5981, 3, 45, 22, 0, 5981, 5982, 3, 47, 23, 0, 5982, 5983, 3, 41, 20, 0, 5983, 5984, 3, 33, 16, 0, 5984, 5985, 3, 43, 21, 0, 5985, 1026, 1, 0, 0, 0, 5986, 5987, 3, 41, 20, 0, 5987, 5988, 3, 15, 7, 0, 5988, 5989, 3, 49, 24, 0, 5989, 5990, 3, 35, 17, 0, 5990, 5991, 3, 27, 13, 0, 5991, 5992, 3, 15, 7, 0, 5992, 1028, 1, 0, 0, 0, 5993, 5994, 3, 41, 20, 0, 5994, 5995, 3, 23, 11, 0, 5995, 5996, 3, 19, 9, 0, 5996, 5997, 3, 21, 10, 0, 5997, 5998, 3, 45, 22, 0, 5998, 1030, 1, 0, 0, 0, 5999, 6000, 3, 41, 20, 0, 6000, 6001, 3, 35, 17, 0, 6001, 6002, 3, 29, 14, 0, 6002, 6003, 3, 15, 7, 0, 6003, 1032, 1, 0, 0, 0, 6004, 6005, 3, 41, 20, 0, 6005, 6006, 3, 35, 17, 0, 6006, 6007, 3, 29, 14, 0, 6007, 6008, 3, 29, 14, 0, 6008, 6009, 3, 9, 4, 0, 6009, 6010, 3, 7, 3, 0, 6010, 6011, 3, 11, 5, 0, 6011, 6012, 3, 27, 13, 0, 6012, 1034, 1, 0, 0, 0, 6013, 6014, 3, 41, 20, 0, 6014, 6015, 3, 35, 17, 0, 6015, 6016, 3, 29, 14, 0, 6016, 6017, 3, 29, 14, 0, 6017, 6018, 3, 47, 23, 0, 6018, 6019, 3, 37, 18, 0, 6019, 1036, 1, 0, 0, 0, 6020, 6021, 3, 41, 20, 0, 6021, 6022, 3, 35, 17, 0, 6022, 6023, 3, 47, 23, 0, 6023, 6024, 3, 45, 22, 0, 6024, 6025, 3, 23, 11, 0, 6025, 6026, 3, 33, 16, 0, 6026, 6027, 3, 15, 7, 0, 6027, 1038, 1, 0, 0, 0, 6028, 6029, 3, 41, 20, 0, 6029, 6030, 3, 35, 17, 0, 6030, 6031, 3, 47, 23, 0, 6031, 6032, 3, 45, 22, 0, 6032, 6033, 3, 23, 11, 0, 6033, 6034, 3, 33, 16, 0, 6034, 6035, 3, 15, 7, 0, 6035, 6036, 5, 95, 0, 0, 6036, 6037, 3, 11, 5, 0, 6037, 6038, 3, 7, 3, 0, 6038, 6039, 3, 45, 22, 0, 6039, 6040, 3, 7, 3, 0, 6040, 6041, 3, 29, 14, 0, 6041, 6042, 3, 35, 17, 0, 6042, 6043, 3, 19, 9, 0, 6043, 1040, 1, 0, 0, 0, 6044, 6045, 3, 41, 20, 0, 6045, 6046, 3, 35, 17, 0, 6046, 6047, 3, 47, 23, 0, 6047, 6048, 3, 45, 22, 0, 6048, 6049, 3, 23, 11, 0, 6049, 6050, 3, 33, 16, 0, 6050, 6051, 3, 15, 7, 0, 6051, 6052, 5, 95, 0, 0, 6052, 6053, 3, 33, 16, 0, 6053, 6054, 3, 7, 3, 0, 6054, 6055, 3, 31, 15, 0, 6055, 6056, 3, 15, 7, 0, 6056, 1042, 1, 0, 0, 0, 6057, 6058, 3, 41, 20, 0, 6058, 6059, 3, 35, 17, 0, 6059, 6060, 3, 47, 23, 0, 6060, 6061, 3, 45, 22, 0, 6061, 6062, 3, 23, 11, 0, 6062, 6063, 3, 33, 16, 0, 6063, 6064, 3, 15, 7, 0, 6064, 6065, 5, 95, 0, 0, 6065, 6066, 3, 43, 21, 0, 6066, 6067, 3, 11, 5, 0, 6067, 6068, 3, 21, 10, 0, 6068, 6069, 3, 15, 7, 0, 6069, 6070, 3, 31, 15, 0, 6070, 6071, 3, 7, 3, 0, 6071, 1044, 1, 0, 0, 0, 6072, 6073, 3, 41, 20, 0, 6073, 6074, 3, 35, 17, 0, 6074, 6075, 3, 51, 25, 0, 6075, 1046, 1, 0, 0, 0, 6076, 6077, 3, 41, 20, 0, 6077, 6078, 3, 35, 17, 0, 6078, 6079, 3, 51, 25, 0, 6079, 6080, 5, 95, 0, 0, 6080, 6081, 3, 11, 5, 0, 6081, 6082, 3, 35, 17, 0, 6082, 6083, 3, 47, 23, 0, 6083, 6084, 3, 33, 16, 0, 6084, 6085, 3, 45, 22, 0, 6085, 1048, 1, 0, 0, 0, 6086, 6087, 3, 41, 20, 0, 6087, 6088, 3, 35, 17, 0, 6088, 6089, 3, 51, 25, 0, 6089, 6090, 5, 95, 0, 0, 6090, 6091, 3, 33, 16, 0, 6091, 6092, 3, 47, 23, 0, 6092, 6093, 3, 31, 15, 0, 6093, 6094, 3, 9, 4, 0, 6094, 6095, 3, 15, 7, 0, 6095, 6096, 3, 41, 20, 0, 6096, 1050, 1, 0, 0, 0, 6097, 6098, 3, 41, 20, 0, 6098, 6099, 3, 35, 17, 0, 6099, 6100, 3, 51, 25, 0, 6100, 6101, 3, 43, 21, 0, 6101, 1052, 1, 0, 0, 0, 6102, 6103, 3, 41, 20, 0, 6103, 6104, 3, 47, 23, 0, 6104, 6105, 3, 29, 14, 0, 6105, 6106, 3, 15, 7, 0, 6106, 1054, 1, 0, 0, 0, 6107, 6108, 3, 43, 21, 0, 6108, 6109, 3, 7, 3, 0, 6109, 6110, 3, 49, 24, 0, 6110, 6111, 3, 15, 7, 0, 6111, 6112, 3, 37, 18, 0, 6112, 6113, 3, 35, 17, 0, 6113, 6114, 3, 23, 11, 0, 6114, 6115, 3, 33, 16, 0, 6115, 6116, 3, 45, 22, 0, 6116, 1056, 1, 0, 0, 0, 6117, 6118, 3, 43, 21, 0, 6118, 6119, 3, 11, 5, 0, 6119, 6120, 3, 7, 3, 0, 6120, 6121, 3, 29, 14, 0, 6121, 6122, 3, 15, 7, 0, 6122, 1058, 1, 0, 0, 0, 6123, 6124, 3, 43, 21, 0, 6124, 6125, 3, 11, 5, 0, 6125, 6126, 3, 21, 10, 0, 6126, 6127, 3, 15, 7, 0, 6127, 6128, 3, 31, 15, 0, 6128, 6129, 3, 7, 3, 0, 6129, 1060, 1, 0, 0, 0, 6130, 6131, 3, 43, 21, 0, 6131, 6132, 3, 11, 5, 0, 6132, 6133, 3, 21, 10, 0, 6133, 6134, 3, 15, 7, 0, 6134, 6135, 3, 31, 15, 0, 6135, 6136, 3, 7, 3, 0, 6136, 6137, 5, 95, 0, 0, 6137, 6138, 3, 33, 16, 0, 6138, 6139, 3, 7, 3, 0, 6139, 6140, 3, 31, 15, 0, 6140, 6141, 3, 15, 7, 0, 6141, 1062, 1, 0, 0, 0, 6142, 6143, 3, 43, 21, 0, 6143, 6144, 3, 11, 5, 0, 6144, 6145, 3, 35, 17, 0, 6145, 6146, 3, 37, 18, 0, 6146, 6147, 3, 15, 7, 0, 6147, 1064, 1, 0, 0, 0, 6148, 6149, 3, 43, 21, 0, 6149, 6150, 3, 11, 5, 0, 6150, 6151, 3, 35, 17, 0, 6151, 6152, 3, 37, 18, 0, 6152, 6153, 3, 15, 7, 0, 6153, 6154, 5, 95, 0, 0, 6154, 6155, 3, 11, 5, 0, 6155, 6156, 3, 7, 3, 0, 6156, 6157, 3, 45, 22, 0, 6157, 6158, 3, 7, 3, 0, 6158, 6159, 3, 29, 14, 0, 6159, 6160, 3, 35, 17, 0, 6160, 6161, 3, 19, 9, 0, 6161, 1066, 1, 0, 0, 0, 6162, 6163, 3, 43, 21, 0, 6163, 6164, 3, 11, 5, 0, 6164, 6165, 3, 35, 17, 0, 6165, 6166, 3, 37, 18, 0, 6166, 6167, 3, 15, 7, 0, 6167, 6168, 5, 95, 0, 0, 6168, 6169, 3, 33, 16, 0, 6169, 6170, 3, 7, 3, 0, 6170, 6171, 3, 31, 15, 0, 6171, 6172, 3, 15, 7, 0, 6172, 1068, 1, 0, 0, 0, 6173, 6174, 3, 43, 21, 0, 6174, 6175, 3, 11, 5, 0, 6175, 6176, 3, 35, 17, 0, 6176, 6177, 3, 37, 18, 0, 6177, 6178, 3, 15, 7, 0, 6178, 6179, 5, 95, 0, 0, 6179, 6180, 3, 43, 21, 0, 6180, 6181, 3, 11, 5, 0, 6181, 6182, 3, 21, 10, 0, 6182, 6183, 3, 15, 7, 0, 6183, 6184, 3, 31, 15, 0, 6184, 6185, 3, 7, 3, 0, 6185, 1070, 1, 0, 0, 0, 6186, 6187, 3, 43, 21, 0, 6187, 6188, 3, 11, 5, 0, 6188, 6189, 3, 41, 20, 0, 6189, 6190, 3, 35, 17, 0, 6190, 6191, 3, 29, 14, 0, 6191, 6192, 3, 29, 14, 0, 6192, 1072, 1, 0, 0, 0, 6193, 6194, 3, 43, 21, 0, 6194, 6195, 3, 15, 7, 0, 6195, 6196, 3, 7, 3, 0, 6196, 6197, 3, 41, 20, 0, 6197, 6198, 3, 11, 5, 0, 6198, 6199, 3, 21, 10, 0, 6199, 1074, 1, 0, 0, 0, 6200, 6201, 3, 43, 21, 0, 6201, 6202, 3, 15, 7, 0, 6202, 6203, 3, 11, 5, 0, 6203, 6204, 3, 35, 17, 0, 6204, 6205, 3, 33, 16, 0, 6205, 6206, 3, 13, 6, 0, 6206, 1076, 1, 0, 0, 0, 6207, 6208, 3, 43, 21, 0, 6208, 6209, 3, 15, 7, 0, 6209, 6210, 3, 11, 5, 0, 6210, 6211, 3, 45, 22, 0, 6211, 6212, 3, 23, 11, 0, 6212, 6213, 3, 35, 17, 0, 6213, 6214, 3, 33, 16, 0, 6214, 1078, 1, 0, 0, 0, 6215, 6216, 3, 43, 21, 0, 6216, 6217, 3, 15, 7, 0, 6217, 6218, 3, 11, 5, 0, 6218, 6219, 3, 47, 23, 0, 6219, 6220, 3, 41, 20, 0, 6220, 6221, 3, 23, 11, 0, 6221, 6222, 3, 45, 22, 0, 6222, 6223, 3, 55, 27, 0, 6223, 1080, 1, 0, 0, 0, 6224, 6225, 3, 43, 21, 0, 6225, 6226, 3, 15, 7, 0, 6226, 6227, 3, 29, 14, 0, 6227, 6228, 3, 15, 7, 0, 6228, 6229, 3, 11, 5, 0, 6229, 6230, 3, 45, 22, 0, 6230, 1082, 1, 0, 0, 0, 6231, 6232, 3, 43, 21, 0, 6232, 6233, 3, 15, 7, 0, 6233, 6234, 3, 29, 14, 0, 6234, 6235, 3, 17, 8, 0, 6235, 1084, 1, 0, 0, 0, 6236, 6237, 3, 43, 21, 0, 6237, 6238, 3, 15, 7, 0, 6238, 6239, 3, 33, 16, 0, 6239, 6240, 3, 43, 21, 0, 6240, 6241, 3, 23, 11, 0, 6241, 6242, 3, 45, 22, 0, 6242, 6243, 3, 23, 11, 0, 6243, 6244, 3, 49, 24, 0, 6244, 6245, 3, 15, 7, 0, 6245, 1086, 1, 0, 0, 0, 6246, 6247, 3, 43, 21, 0, 6247, 6248, 3, 15, 7, 0, 6248, 6249, 3, 39, 19, 0, 6249, 6250, 3, 47, 23, 0, 6250, 6251, 3, 15, 7, 0, 6251, 6252, 3, 33, 16, 0, 6252, 6253, 3, 11, 5, 0, 6253, 6254, 3, 15, 7, 0, 6254, 1088, 1, 0, 0, 0, 6255, 6256, 3, 43, 21, 0, 6256, 6257, 3, 15, 7, 0, 6257, 6258, 3, 39, 19, 0, 6258, 6259, 3, 47, 23, 0, 6259, 6260, 3, 15, 7, 0, 6260, 6261, 3, 33, 16, 0, 6261, 6262, 3, 11, 5, 0, 6262, 6263, 3, 15, 7, 0, 6263, 6264, 3, 43, 21, 0, 6264, 1090, 1, 0, 0, 0, 6265, 6266, 3, 43, 21, 0, 6266, 6267, 3, 15, 7, 0, 6267, 6268, 3, 41, 20, 0, 6268, 6269, 3, 23, 11, 0, 6269, 6270, 3, 7, 3, 0, 6270, 6271, 3, 29, 14, 0, 6271, 6272, 3, 23, 11, 0, 6272, 6273, 3, 57, 28, 0, 6273, 6274, 3, 7, 3, 0, 6274, 6275, 3, 9, 4, 0, 6275, 6276, 3, 29, 14, 0, 6276, 6277, 3, 15, 7, 0, 6277, 1092, 1, 0, 0, 0, 6278, 6279, 3, 43, 21, 0, 6279, 6280, 3, 15, 7, 0, 6280, 6281, 3, 41, 20, 0, 6281, 6282, 3, 49, 24, 0, 6282, 6283, 3, 15, 7, 0, 6283, 6284, 3, 41, 20, 0, 6284, 6285, 5, 95, 0, 0, 6285, 6286, 3, 33, 16, 0, 6286, 6287, 3, 7, 3, 0, 6287, 6288, 3, 31, 15, 0, 6288, 6289, 3, 15, 7, 0, 6289, 1094, 1, 0, 0, 0, 6290, 6291, 3, 43, 21, 0, 6291, 6292, 3, 15, 7, 0, 6292, 6293, 3, 43, 21, 0, 6293, 6294, 3, 43, 21, 0, 6294, 6295, 3, 23, 11, 0, 6295, 6296, 3, 35, 17, 0, 6296, 6297, 3, 33, 16, 0, 6297, 1096, 1, 0, 0, 0, 6298, 6299, 3, 43, 21, 0, 6299, 6300, 3, 15, 7, 0, 6300, 6301, 3, 43, 21, 0, 6301, 6302, 3, 43, 21, 0, 6302, 6303, 3, 23, 11, 0, 6303, 6304, 3, 35, 17, 0, 6304, 6305, 3, 33, 16, 0, 6305, 6306, 5, 95, 0, 0, 6306, 6307, 3, 47, 23, 0, 6307, 6308, 3, 43, 21, 0, 6308, 6309, 3, 15, 7, 0, 6309, 6310, 3, 41, 20, 0, 6310, 1098, 1, 0, 0, 0, 6311, 6312, 3, 43, 21, 0, 6312, 6313, 3, 15, 7, 0, 6313, 6314, 3, 45, 22, 0, 6314, 1100, 1, 0, 0, 0, 6315, 6316, 3, 43, 21, 0, 6316, 6317, 3, 15, 7, 0, 6317, 6318, 3, 45, 22, 0, 6318, 6319, 3, 35, 17, 0, 6319, 6320, 3, 17, 8, 0, 6320, 1102, 1, 0, 0, 0, 6321, 6322, 3, 43, 21, 0, 6322, 6323, 3, 15, 7, 0, 6323, 6324, 3, 45, 22, 0, 6324, 6325, 3, 43, 21, 0, 6325, 1104, 1, 0, 0, 0, 6326, 6327, 3, 43, 21, 0, 6327, 6328, 3, 21, 10, 0, 6328, 6329, 3, 7, 3, 0, 6329, 6330, 3, 41, 20, 0, 6330, 6331, 3, 15, 7, 0, 6331, 1106, 1, 0, 0, 0, 6332, 6333, 3, 43, 21, 0, 6333, 6334, 3, 21, 10, 0, 6334, 6335, 3, 35, 17, 0, 6335, 6336, 3, 51, 25, 0, 6336, 1108, 1, 0, 0, 0, 6337, 6338, 3, 43, 21, 0, 6338, 6339, 3, 23, 11, 0, 6339, 6340, 3, 31, 15, 0, 6340, 6341, 3, 23, 11, 0, 6341, 6342, 3, 29, 14, 0, 6342, 6343, 3, 7, 3, 0, 6343, 6344, 3, 41, 20, 0, 6344, 1110, 1, 0, 0, 0, 6345, 6346, 3, 43, 21, 0, 6346, 6347, 3, 23, 11, 0, 6347, 6348, 3, 31, 15, 0, 6348, 6349, 3, 37, 18, 0, 6349, 6350, 3, 29, 14, 0, 6350, 6351, 3, 15, 7, 0, 6351, 1112, 1, 0, 0, 0, 6352, 6353, 3, 43, 21, 0, 6353, 6354, 3, 23, 11, 0, 6354, 6355, 3, 57, 28, 0, 6355, 6356, 3, 15, 7, 0, 6356, 1114, 1, 0, 0, 0, 6357, 6358, 3, 43, 21, 0, 6358, 6359, 3, 27, 13, 0, 6359, 6360, 3, 23, 11, 0, 6360, 6361, 3, 37, 18, 0, 6361, 1116, 1, 0, 0, 0, 6362, 6363, 3, 43, 21, 0, 6363, 6364, 3, 31, 15, 0, 6364, 6365, 3, 7, 3, 0, 6365, 6366, 3, 29, 14, 0, 6366, 6367, 3, 29, 14, 0, 6367, 6368, 3, 23, 11, 0, 6368, 6369, 3, 33, 16, 0, 6369, 6370, 3, 45, 22, 0, 6370, 1118, 1, 0, 0, 0, 6371, 6372, 3, 43, 21, 0, 6372, 6373, 3, 33, 16, 0, 6373, 6374, 3, 7, 3, 0, 6374, 6375, 3, 37, 18, 0, 6375, 6376, 3, 43, 21, 0, 6376, 6377, 3, 21, 10, 0, 6377, 6378, 3, 35, 17, 0, 6378, 6379, 3, 45, 22, 0, 6379, 1120, 1, 0, 0, 0, 6380, 6381, 3, 43, 21, 0, 6381, 6382, 3, 35, 17, 0, 6382, 6383, 3, 31, 15, 0, 6383, 6384, 3, 15, 7, 0, 6384, 1122, 1, 0, 0, 0, 6385, 6386, 3, 43, 21, 0, 6386, 6387, 3, 35, 17, 0, 6387, 6388, 3, 47, 23, 0, 6388, 6389, 3, 41, 20, 0, 6389, 6390, 3, 11, 5, 0, 6390, 6391, 3, 15, 7, 0, 6391, 1124, 1, 0, 0, 0, 6392, 6393, 3, 43, 21, 0, 6393, 6394, 3, 37, 18, 0, 6394, 6395, 3, 7, 3, 0, 6395, 6396, 3, 11, 5, 0, 6396, 6397, 3, 15, 7, 0, 6397, 1126, 1, 0, 0, 0, 6398, 6399, 3, 43, 21, 0, 6399, 6400, 3, 37, 18, 0, 6400, 6401, 3, 15, 7, 0, 6401, 6402, 3, 11, 5, 0, 6402, 6403, 3, 23, 11, 0, 6403, 6404, 3, 17, 8, 0, 6404, 6405, 3, 23, 11, 0, 6405, 6406, 3, 11, 5, 0, 6406, 1128, 1, 0, 0, 0, 6407, 6408, 3, 43, 21, 0, 6408, 6409, 3, 37, 18, 0, 6409, 6410, 3, 15, 7, 0, 6410, 6411, 3, 11, 5, 0, 6411, 6412, 3, 23, 11, 0, 6412, 6413, 3, 17, 8, 0, 6413, 6414, 3, 23, 11, 0, 6414, 6415, 3, 11, 5, 0, 6415, 6416, 5, 95, 0, 0, 6416, 6417, 3, 33, 16, 0, 6417, 6418, 3, 7, 3, 0, 6418, 6419, 3, 31, 15, 0, 6419, 6420, 3, 15, 7, 0, 6420, 1130, 1, 0, 0, 0, 6421, 6422, 3, 43, 21, 0, 6422, 6423, 3, 37, 18, 0, 6423, 6424, 3, 15, 7, 0, 6424, 6425, 3, 11, 5, 0, 6425, 6426, 3, 23, 11, 0, 6426, 6427, 3, 17, 8, 0, 6427, 6428, 3, 23, 11, 0, 6428, 6429, 3, 11, 5, 0, 6429, 6430, 3, 45, 22, 0, 6430, 6431, 3, 55, 27, 0, 6431, 6432, 3, 37, 18, 0, 6432, 6433, 3, 15, 7, 0, 6433, 1132, 1, 0, 0, 0, 6434, 6435, 3, 43, 21, 0, 6435, 6436, 3, 39, 19, 0, 6436, 6437, 3, 29, 14, 0, 6437, 1134, 1, 0, 0, 0, 6438, 6439, 3, 43, 21, 0, 6439, 6440, 3, 39, 19, 0, 6440, 6441, 3, 29, 14, 0, 6441, 6442, 3, 11, 5, 0, 6442, 6443, 3, 35, 17, 0, 6443, 6444, 3, 13, 6, 0, 6444, 6445, 3, 15, 7, 0, 6445, 1136, 1, 0, 0, 0, 6446, 6447, 3, 43, 21, 0, 6447, 6448, 3, 39, 19, 0, 6448, 6449, 3, 29, 14, 0, 6449, 6450, 3, 15, 7, 0, 6450, 6451, 3, 41, 20, 0, 6451, 6452, 3, 41, 20, 0, 6452, 6453, 3, 35, 17, 0, 6453, 6454, 3, 41, 20, 0, 6454, 1138, 1, 0, 0, 0, 6455, 6456, 3, 43, 21, 0, 6456, 6457, 3, 39, 19, 0, 6457, 6458, 3, 29, 14, 0, 6458, 6459, 3, 15, 7, 0, 6459, 6460, 3, 53, 26, 0, 6460, 6461, 3, 11, 5, 0, 6461, 6462, 3, 15, 7, 0, 6462, 6463, 3, 37, 18, 0, 6463, 6464, 3, 45, 22, 0, 6464, 6465, 3, 23, 11, 0, 6465, 6466, 3, 35, 17, 0, 6466, 6467, 3, 33, 16, 0, 6467, 1140, 1, 0, 0, 0, 6468, 6469, 3, 43, 21, 0, 6469, 6470, 3, 39, 19, 0, 6470, 6471, 3, 29, 14, 0, 6471, 6472, 3, 43, 21, 0, 6472, 6473, 3, 45, 22, 0, 6473, 6474, 3, 7, 3, 0, 6474, 6475, 3, 45, 22, 0, 6475, 6476, 3, 15, 7, 0, 6476, 1142, 1, 0, 0, 0, 6477, 6478, 3, 43, 21, 0, 6478, 6479, 3, 39, 19, 0, 6479, 6480, 3, 29, 14, 0, 6480, 6481, 3, 51, 25, 0, 6481, 6482, 3, 7, 3, 0, 6482, 6483, 3, 41, 20, 0, 6483, 6484, 3, 33, 16, 0, 6484, 6485, 3, 23, 11, 0, 6485, 6486, 3, 33, 16, 0, 6486, 6487, 3, 19, 9, 0, 6487, 1144, 1, 0, 0, 0, 6488, 6489, 3, 43, 21, 0, 6489, 6490, 3, 39, 19, 0, 6490, 6491, 3, 41, 20, 0, 6491, 6492, 3, 45, 22, 0, 6492, 1146, 1, 0, 0, 0, 6493, 6494, 3, 43, 21, 0, 6494, 6495, 3, 45, 22, 0, 6495, 6496, 3, 7, 3, 0, 6496, 6497, 3, 9, 4, 0, 6497, 6498, 3, 29, 14, 0, 6498, 6499, 3, 15, 7, 0, 6499, 1148, 1, 0, 0, 0, 6500, 6501, 3, 43, 21, 0, 6501, 6502, 3, 45, 22, 0, 6502, 6503, 3, 7, 3, 0, 6503, 6504, 3, 41, 20, 0, 6504, 6505, 3, 45, 22, 0, 6505, 1150, 1, 0, 0, 0, 6506, 6507, 3, 43, 21, 0, 6507, 6508, 3, 45, 22, 0, 6508, 6509, 3, 7, 3, 0, 6509, 6510, 3, 45, 22, 0, 6510, 6511, 3, 15, 7, 0, 6511, 1152, 1, 0, 0, 0, 6512, 6513, 3, 43, 21, 0, 6513, 6514, 3, 45, 22, 0, 6514, 6515, 3, 7, 3, 0, 6515, 6516, 3, 45, 22, 0, 6516, 6517, 3, 15, 7, 0, 6517, 6518, 3, 31, 15, 0, 6518, 6519, 3, 15, 7, 0, 6519, 6520, 3, 33, 16, 0, 6520, 6521, 3, 45, 22, 0, 6521, 1154, 1, 0, 0, 0, 6522, 6523, 3, 43, 21, 0, 6523, 6524, 3, 45, 22, 0, 6524, 6525, 3, 7, 3, 0, 6525, 6526, 3, 45, 22, 0, 6526, 6527, 3, 23, 11, 0, 6527, 6528, 3, 11, 5, 0, 6528, 1156, 1, 0, 0, 0, 6529, 6530, 3, 43, 21, 0, 6530, 6531, 3, 45, 22, 0, 6531, 6532, 3, 7, 3, 0, 6532, 6533, 3, 45, 22, 0, 6533, 6534, 3, 23, 11, 0, 6534, 6535, 3, 43, 21, 0, 6535, 6536, 3, 45, 22, 0, 6536, 6537, 3, 23, 11, 0, 6537, 6538, 3, 11, 5, 0, 6538, 6539, 3, 43, 21, 0, 6539, 1158, 1, 0, 0, 0, 6540, 6541, 3, 43, 21, 0, 6541, 6542, 3, 45, 22, 0, 6542, 6543, 3, 13, 6, 0, 6543, 6544, 3, 13, 6, 0, 6544, 6545, 3, 15, 7, 0, 6545, 6546, 3, 49, 24, 0, 6546, 6547, 5, 95, 0, 0, 6547, 6548, 3, 37, 18, 0, 6548, 6549, 3, 35, 17, 0, 6549, 6550, 3, 37, 18, 0, 6550, 1160, 1, 0, 0, 0, 6551, 6552, 3, 43, 21, 0, 6552, 6553, 3, 45, 22, 0, 6553, 6554, 3, 13, 6, 0, 6554, 6555, 3, 13, 6, 0, 6555, 6556, 3, 15, 7, 0, 6556, 6557, 3, 49, 24, 0, 6557, 6558, 5, 95, 0, 0, 6558, 6559, 3, 43, 21, 0, 6559, 6560, 3, 7, 3, 0, 6560, 6561, 3, 31, 15, 0, 6561, 6562, 3, 37, 18, 0, 6562, 1162, 1, 0, 0, 0, 6563, 6564, 3, 43, 21, 0, 6564, 6565, 3, 45, 22, 0, 6565, 6566, 3, 13, 6, 0, 6566, 6567, 3, 23, 11, 0, 6567, 6568, 3, 33, 16, 0, 6568, 1164, 1, 0, 0, 0, 6569, 6570, 3, 43, 21, 0, 6570, 6571, 3, 45, 22, 0, 6571, 6572, 3, 13, 6, 0, 6572, 6573, 3, 35, 17, 0, 6573, 6574, 3, 47, 23, 0, 6574, 6575, 3, 45, 22, 0, 6575, 1166, 1, 0, 0, 0, 6576, 6577, 3, 43, 21, 0, 6577, 6578, 3, 45, 22, 0, 6578, 6579, 3, 35, 17, 0, 6579, 6580, 3, 41, 20, 0, 6580, 6581, 3, 7, 3, 0, 6581, 6582, 3, 19, 9, 0, 6582, 6583, 3, 15, 7, 0, 6583, 1168, 1, 0, 0, 0, 6584, 6585, 3, 43, 21, 0, 6585, 6586, 3, 45, 22, 0, 6586, 6587, 3, 41, 20, 0, 6587, 6588, 3, 23, 11, 0, 6588, 6589, 3, 11, 5, 0, 6589, 6590, 3, 45, 22, 0, 6590, 1170, 1, 0, 0, 0, 6591, 6592, 3, 43, 21, 0, 6592, 6593, 3, 45, 22, 0, 6593, 6594, 3, 41, 20, 0, 6594, 6595, 3, 47, 23, 0, 6595, 6596, 3, 11, 5, 0, 6596, 6597, 3, 45, 22, 0, 6597, 6598, 3, 47, 23, 0, 6598, 6599, 3, 41, 20, 0, 6599, 6600, 3, 15, 7, 0, 6600, 1172, 1, 0, 0, 0, 6601, 6602, 3, 43, 21, 0, 6602, 6603, 3, 45, 22, 0, 6603, 6604, 3, 55, 27, 0, 6604, 6605, 3, 29, 14, 0, 6605, 6606, 3, 15, 7, 0, 6606, 1174, 1, 0, 0, 0, 6607, 6608, 3, 43, 21, 0, 6608, 6609, 3, 47, 23, 0, 6609, 6610, 3, 9, 4, 0, 6610, 6611, 3, 11, 5, 0, 6611, 6612, 3, 29, 14, 0, 6612, 6613, 3, 7, 3, 0, 6613, 6614, 3, 43, 21, 0, 6614, 6615, 3, 43, 21, 0, 6615, 6616, 5, 95, 0, 0, 6616, 6617, 3, 35, 17, 0, 6617, 6618, 3, 41, 20, 0, 6618, 6619, 3, 23, 11, 0, 6619, 6620, 3, 19, 9, 0, 6620, 6621, 3, 23, 11, 0, 6621, 6622, 3, 33, 16, 0, 6622, 1176, 1, 0, 0, 0, 6623, 6624, 3, 43, 21, 0, 6624, 6625, 3, 47, 23, 0, 6625, 6626, 3, 9, 4, 0, 6626, 6627, 3, 29, 14, 0, 6627, 6628, 3, 23, 11, 0, 6628, 6629, 3, 43, 21, 0, 6629, 6630, 3, 45, 22, 0, 6630, 1178, 1, 0, 0, 0, 6631, 6632, 3, 43, 21, 0, 6632, 6633, 3, 47, 23, 0, 6633, 6634, 3, 9, 4, 0, 6634, 6635, 3, 31, 15, 0, 6635, 6636, 3, 47, 23, 0, 6636, 6637, 3, 29, 14, 0, 6637, 6638, 3, 45, 22, 0, 6638, 6639, 3, 23, 11, 0, 6639, 6640, 3, 43, 21, 0, 6640, 6641, 3, 15, 7, 0, 6641, 6642, 3, 45, 22, 0, 6642, 1180, 1, 0, 0, 0, 6643, 6644, 3, 43, 21, 0, 6644, 6645, 3, 47, 23, 0, 6645, 6646, 3, 9, 4, 0, 6646, 6647, 3, 43, 21, 0, 6647, 6648, 3, 11, 5, 0, 6648, 6649, 3, 41, 20, 0, 6649, 6650, 3, 23, 11, 0, 6650, 6651, 3, 37, 18, 0, 6651, 6652, 3, 45, 22, 0, 6652, 6653, 3, 23, 11, 0, 6653, 6654, 3, 35, 17, 0, 6654, 6655, 3, 33, 16, 0, 6655, 1182, 1, 0, 0, 0, 6656, 6657, 3, 43, 21, 0, 6657, 6658, 3, 47, 23, 0, 6658, 6659, 3, 9, 4, 0, 6659, 6660, 3, 43, 21, 0, 6660, 6661, 3, 45, 22, 0, 6661, 6662, 3, 41, 20, 0, 6662, 6663, 3, 23, 11, 0, 6663, 6664, 3, 33, 16, 0, 6664, 6665, 3, 19, 9, 0, 6665, 1184, 1, 0, 0, 0, 6666, 6667, 3, 43, 21, 0, 6667, 6668, 3, 47, 23, 0, 6668, 6669, 3, 31, 15, 0, 6669, 1186, 1, 0, 0, 0, 6670, 6671, 3, 43, 21, 0, 6671, 6672, 3, 55, 27, 0, 6672, 6673, 3, 31, 15, 0, 6673, 6674, 3, 31, 15, 0, 6674, 6675, 3, 15, 7, 0, 6675, 6676, 3, 45, 22, 0, 6676, 6677, 3, 41, 20, 0, 6677, 6678, 3, 23, 11, 0, 6678, 6679, 3, 11, 5, 0, 6679, 1188, 1, 0, 0, 0, 6680, 6681, 3, 43, 21, 0, 6681, 6682, 3, 55, 27, 0, 6682, 6683, 3, 43, 21, 0, 6683, 6684, 3, 23, 11, 0, 6684, 6685, 3, 13, 6, 0, 6685, 1190, 1, 0, 0, 0, 6686, 6687, 3, 43, 21, 0, 6687, 6688, 3, 55, 27, 0, 6688, 6689, 3, 43, 21, 0, 6689, 6690, 3, 45, 22, 0, 6690, 6691, 3, 15, 7, 0, 6691, 6692, 3, 31, 15, 0, 6692, 1192, 1, 0, 0, 0, 6693, 6694, 3, 43, 21, 0, 6694, 6695, 3, 55, 27, 0, 6695, 6696, 3, 43, 21, 0, 6696, 6697, 3, 45, 22, 0, 6697, 6698, 3, 15, 7, 0, 6698, 6699, 3, 31, 15, 0, 6699, 6700, 5, 95, 0, 0, 6700, 6701, 3, 47, 23, 0, 6701, 6702, 3, 43, 21, 0, 6702, 6703, 3, 15, 7, 0, 6703, 6704, 3, 41, 20, 0, 6704, 1194, 1, 0, 0, 0, 6705, 6706, 3, 45, 22, 0, 6706, 6707, 3, 7, 3, 0, 6707, 6708, 3, 9, 4, 0, 6708, 6709, 3, 29, 14, 0, 6709, 6710, 3, 15, 7, 0, 6710, 1196, 1, 0, 0, 0, 6711, 6712, 3, 45, 22, 0, 6712, 6713, 3, 7, 3, 0, 6713, 6714, 3, 9, 4, 0, 6714, 6715, 3, 29, 14, 0, 6715, 6716, 3, 15, 7, 0, 6716, 6717, 5, 95, 0, 0, 6717, 6718, 3, 33, 16, 0, 6718, 6719, 3, 7, 3, 0, 6719, 6720, 3, 31, 15, 0, 6720, 6721, 3, 15, 7, 0, 6721, 1198, 1, 0, 0, 0, 6722, 6723, 3, 45, 22, 0, 6723, 6724, 3, 7, 3, 0, 6724, 6725, 3, 9, 4, 0, 6725, 6726, 3, 29, 14, 0, 6726, 6727, 3, 15, 7, 0, 6727, 6728, 3, 43, 21, 0, 6728, 6729, 3, 7, 3, 0, 6729, 6730, 3, 31, 15, 0, 6730, 6731, 3, 37, 18, 0, 6731, 6732, 3, 29, 14, 0, 6732, 6733, 3, 15, 7, 0, 6733, 1200, 1, 0, 0, 0, 6734, 6735, 3, 45, 22, 0, 6735, 6736, 3, 7, 3, 0, 6736, 6737, 3, 9, 4, 0, 6737, 6738, 3, 29, 14, 0, 6738, 6739, 3, 15, 7, 0, 6739, 6740, 3, 43, 21, 0, 6740, 6741, 3, 37, 18, 0, 6741, 6742, 3, 7, 3, 0, 6742, 6743, 3, 11, 5, 0, 6743, 6744, 3, 15, 7, 0, 6744, 1202, 1, 0, 0, 0, 6745, 6746, 3, 45, 22, 0, 6746, 6747, 3, 15, 7, 0, 6747, 6748, 3, 31, 15, 0, 6748, 6749, 3, 37, 18, 0, 6749, 1204, 1, 0, 0, 0, 6750, 6751, 3, 45, 22, 0, 6751, 6752, 3, 15, 7, 0, 6752, 6753, 3, 31, 15, 0, 6753, 6754, 3, 37, 18, 0, 6754, 6755, 3, 29, 14, 0, 6755, 6756, 3, 7, 3, 0, 6756, 6757, 3, 45, 22, 0, 6757, 6758, 3, 15, 7, 0, 6758, 1206, 1, 0, 0, 0, 6759, 6760, 3, 45, 22, 0, 6760, 6761, 3, 15, 7, 0, 6761, 6762, 3, 31, 15, 0, 6762, 6763, 3, 37, 18, 0, 6763, 6764, 3, 35, 17, 0, 6764, 6765, 3, 41, 20, 0, 6765, 6766, 3, 7, 3, 0, 6766, 6767, 3, 41, 20, 0, 6767, 6768, 3, 55, 27, 0, 6768, 1208, 1, 0, 0, 0, 6769, 6770, 3, 45, 22, 0, 6770, 6771, 3, 15, 7, 0, 6771, 6772, 3, 41, 20, 0, 6772, 6773, 3, 31, 15, 0, 6773, 6774, 3, 23, 11, 0, 6774, 6775, 3, 33, 16, 0, 6775, 6776, 3, 7, 3, 0, 6776, 6777, 3, 45, 22, 0, 6777, 6778, 3, 15, 7, 0, 6778, 1210, 1, 0, 0, 0, 6779, 6780, 3, 45, 22, 0, 6780, 6781, 3, 21, 10, 0, 6781, 6782, 3, 7, 3, 0, 6782, 6783, 3, 33, 16, 0, 6783, 1212, 1, 0, 0, 0, 6784, 6785, 3, 45, 22, 0, 6785, 6786, 3, 21, 10, 0, 6786, 6787, 3, 15, 7, 0, 6787, 6788, 3, 33, 16, 0, 6788, 1214, 1, 0, 0, 0, 6789, 6790, 3, 45, 22, 0, 6790, 6791, 3, 23, 11, 0, 6791, 6792, 3, 15, 7, 0, 6792, 6793, 3, 43, 21, 0, 6793, 1216, 1, 0, 0, 0, 6794, 6795, 3, 45, 22, 0, 6795, 6796, 3, 23, 11, 0, 6796, 6797, 3, 31, 15, 0, 6797, 6798, 3, 15, 7, 0, 6798, 1218, 1, 0, 0, 0, 6799, 6800, 3, 45, 22, 0, 6800, 6801, 3, 23, 11, 0, 6801, 6802, 3, 31, 15, 0, 6802, 6803, 3, 15, 7, 0, 6803, 6804, 3, 43, 21, 0, 6804, 6805, 3, 45, 22, 0, 6805, 6806, 3, 7, 3, 0, 6806, 6807, 3, 31, 15, 0, 6807, 6808, 3, 37, 18, 0, 6808, 1220, 1, 0, 0, 0, 6809, 6810, 3, 45, 22, 0, 6810, 6811, 3, 23, 11, 0, 6811, 6812, 3, 31, 15, 0, 6812, 6813, 3, 15, 7, 0, 6813, 6814, 3, 57, 28, 0, 6814, 6815, 3, 35, 17, 0, 6815, 6816, 3, 33, 16, 0, 6816, 6817, 3, 15, 7, 0, 6817, 6818, 5, 95, 0, 0, 6818, 6819, 3, 21, 10, 0, 6819, 6820, 3, 35, 17, 0, 6820, 6821, 3, 47, 23, 0, 6821, 6822, 3, 41, 20, 0, 6822, 1222, 1, 0, 0, 0, 6823, 6824, 3, 45, 22, 0, 6824, 6825, 3, 23, 11, 0, 6825, 6826, 3, 31, 15, 0, 6826, 6827, 3, 15, 7, 0, 6827, 6828, 3, 57, 28, 0, 6828, 6829, 3, 35, 17, 0, 6829, 6830, 3, 33, 16, 0, 6830, 6831, 3, 15, 7, 0, 6831, 6832, 5, 95, 0, 0, 6832, 6833, 3, 31, 15, 0, 6833, 6834, 3, 23, 11, 0, 6834, 6835, 3, 33, 16, 0, 6835, 6836, 3, 47, 23, 0, 6836, 6837, 3, 45, 22, 0, 6837, 6838, 3, 15, 7, 0, 6838, 1224, 1, 0, 0, 0, 6839, 6840, 3, 45, 22, 0, 6840, 6841, 3, 23, 11, 0, 6841, 6842, 3, 31, 15, 0, 6842, 6843, 3, 23, 11, 0, 6843, 6844, 3, 33, 16, 0, 6844, 6845, 3, 19, 9, 0, 6845, 1226, 1, 0, 0, 0, 6846, 6847, 3, 45, 22, 0, 6847, 6848, 3, 35, 17, 0, 6848, 1228, 1, 0, 0, 0, 6849, 6850, 3, 45, 22, 0, 6850, 6851, 3, 35, 17, 0, 6851, 6852, 3, 7, 3, 0, 6852, 6853, 3, 43, 21, 0, 6853, 6854, 3, 45, 22, 0, 6854, 1230, 1, 0, 0, 0, 6855, 6856, 3, 45, 22, 0, 6856, 6857, 3, 35, 17, 0, 6857, 6858, 3, 37, 18, 0, 6858, 6859, 5, 95, 0, 0, 6859, 6860, 3, 29, 14, 0, 6860, 6861, 3, 15, 7, 0, 6861, 6862, 3, 49, 24, 0, 6862, 6863, 3, 15, 7, 0, 6863, 6864, 3, 29, 14, 0, 6864, 6865, 5, 95, 0, 0, 6865, 6866, 3, 11, 5, 0, 6866, 6867, 3, 35, 17, 0, 6867, 6868, 3, 47, 23, 0, 6868, 6869, 3, 33, 16, 0, 6869, 6870, 3, 45, 22, 0, 6870, 1232, 1, 0, 0, 0, 6871, 6872, 3, 45, 22, 0, 6872, 6873, 3, 41, 20, 0, 6873, 6874, 3, 7, 3, 0, 6874, 6875, 3, 23, 11, 0, 6875, 6876, 3, 29, 14, 0, 6876, 6877, 3, 23, 11, 0, 6877, 6878, 3, 33, 16, 0, 6878, 6879, 3, 19, 9, 0, 6879, 1234, 1, 0, 0, 0, 6880, 6881, 3, 45, 22, 0, 6881, 6882, 3, 41, 20, 0, 6882, 6883, 3, 7, 3, 0, 6883, 6884, 3, 33, 16, 0, 6884, 6885, 3, 43, 21, 0, 6885, 6886, 3, 7, 3, 0, 6886, 6887, 3, 11, 5, 0, 6887, 6888, 3, 45, 22, 0, 6888, 6889, 3, 23, 11, 0, 6889, 6890, 3, 35, 17, 0, 6890, 6891, 3, 33, 16, 0, 6891, 1236, 1, 0, 0, 0, 6892, 6893, 3, 45, 22, 0, 6893, 6894, 3, 41, 20, 0, 6894, 6895, 3, 7, 3, 0, 6895, 6896, 3, 33, 16, 0, 6896, 6897, 3, 43, 21, 0, 6897, 6898, 3, 7, 3, 0, 6898, 6899, 3, 11, 5, 0, 6899, 6900, 3, 45, 22, 0, 6900, 6901, 3, 23, 11, 0, 6901, 6902, 3, 35, 17, 0, 6902, 6903, 3, 33, 16, 0, 6903, 6904, 5, 95, 0, 0, 6904, 6905, 3, 7, 3, 0, 6905, 6906, 3, 11, 5, 0, 6906, 6907, 3, 45, 22, 0, 6907, 6908, 3, 23, 11, 0, 6908, 6909, 3, 49, 24, 0, 6909, 6910, 3, 15, 7, 0, 6910, 1238, 1, 0, 0, 0, 6911, 6912, 3, 45, 22, 0, 6912, 6913, 3, 41, 20, 0, 6913, 6914, 3, 7, 3, 0, 6914, 6915, 3, 33, 16, 0, 6915, 6916, 3, 43, 21, 0, 6916, 6917, 3, 7, 3, 0, 6917, 6918, 3, 11, 5, 0, 6918, 6919, 3, 45, 22, 0, 6919, 6920, 3, 23, 11, 0, 6920, 6921, 3, 35, 17, 0, 6921, 6922, 3, 33, 16, 0, 6922, 6923, 3, 43, 21, 0, 6923, 6924, 5, 95, 0, 0, 6924, 6925, 3, 11, 5, 0, 6925, 6926, 3, 35, 17, 0, 6926, 6927, 3, 31, 15, 0, 6927, 6928, 3, 31, 15, 0, 6928, 6929, 3, 23, 11, 0, 6929, 6930, 3, 45, 22, 0, 6930, 6931, 3, 45, 22, 0, 6931, 6932, 3, 15, 7, 0, 6932, 6933, 3, 13, 6, 0, 6933, 1240, 1, 0, 0, 0, 6934, 6935, 3, 45, 22, 0, 6935, 6936, 3, 41, 20, 0, 6936, 6937, 3, 7, 3, 0, 6937, 6938, 3, 33, 16, 0, 6938, 6939, 3, 43, 21, 0, 6939, 6940, 3, 7, 3, 0, 6940, 6941, 3, 11, 5, 0, 6941, 6942, 3, 45, 22, 0, 6942, 6943, 3, 23, 11, 0, 6943, 6944, 3, 35, 17, 0, 6944, 6945, 3, 33, 16, 0, 6945, 6946, 3, 43, 21, 0, 6946, 6947, 5, 95, 0, 0, 6947, 6948, 3, 41, 20, 0, 6948, 6949, 3, 35, 17, 0, 6949, 6950, 3, 29, 14, 0, 6950, 6951, 3, 29, 14, 0, 6951, 6952, 3, 15, 7, 0, 6952, 6953, 3, 13, 6, 0, 6953, 6954, 5, 95, 0, 0, 6954, 6955, 3, 9, 4, 0, 6955, 6956, 3, 7, 3, 0, 6956, 6957, 3, 11, 5, 0, 6957, 6958, 3, 27, 13, 0, 6958, 1242, 1, 0, 0, 0, 6959, 6960, 3, 45, 22, 0, 6960, 6961, 3, 41, 20, 0, 6961, 6962, 3, 7, 3, 0, 6962, 6963, 3, 33, 16, 0, 6963, 6964, 3, 43, 21, 0, 6964, 6965, 3, 17, 8, 0, 6965, 6966, 3, 35, 17, 0, 6966, 6967, 3, 41, 20, 0, 6967, 6968, 3, 31, 15, 0, 6968, 1244, 1, 0, 0, 0, 6969, 6970, 3, 45, 22, 0, 6970, 6971, 3, 41, 20, 0, 6971, 6972, 3, 7, 3, 0, 6972, 6973, 3, 33, 16, 0, 6973, 6974, 3, 43, 21, 0, 6974, 6975, 3, 17, 8, 0, 6975, 6976, 3, 35, 17, 0, 6976, 6977, 3, 41, 20, 0, 6977, 6978, 3, 31, 15, 0, 6978, 6979, 3, 43, 21, 0, 6979, 1246, 1, 0, 0, 0, 6980, 6981, 3, 45, 22, 0, 6981, 6982, 3, 41, 20, 0, 6982, 6983, 3, 7, 3, 0, 6983, 6984, 3, 33, 16, 0, 6984, 6985, 3, 43, 21, 0, 6985, 6986, 3, 29, 14, 0, 6986, 6987, 3, 7, 3, 0, 6987, 6988, 3, 45, 22, 0, 6988, 6989, 3, 15, 7, 0, 6989, 1248, 1, 0, 0, 0, 6990, 6991, 3, 45, 22, 0, 6991, 6992, 3, 41, 20, 0, 6992, 6993, 3, 7, 3, 0, 6993, 6994, 3, 33, 16, 0, 6994, 6995, 3, 43, 21, 0, 6995, 6996, 3, 29, 14, 0, 6996, 6997, 3, 7, 3, 0, 6997, 6998, 3, 45, 22, 0, 6998, 6999, 3, 23, 11, 0, 6999, 7000, 3, 35, 17, 0, 7000, 7001, 3, 33, 16, 0, 7001, 1250, 1, 0, 0, 0, 7002, 7003, 3, 45, 22, 0, 7003, 7004, 3, 41, 20, 0, 7004, 7005, 3, 15, 7, 0, 7005, 7006, 3, 7, 3, 0, 7006, 7007, 3, 45, 22, 0, 7007, 1252, 1, 0, 0, 0, 7008, 7009, 3, 45, 22, 0, 7009, 7010, 3, 41, 20, 0, 7010, 7011, 3, 23, 11, 0, 7011, 7012, 3, 19, 9, 0, 7012, 7013, 3, 19, 9, 0, 7013, 7014, 3, 15, 7, 0, 7014, 7015, 3, 41, 20, 0, 7015, 1254, 1, 0, 0, 0, 7016, 7017, 3, 45, 22, 0, 7017, 7018, 3, 41, 20, 0, 7018, 7019, 3, 23, 11, 0, 7019, 7020, 3, 19, 9, 0, 7020, 7021, 3, 19, 9, 0, 7021, 7022, 3, 15, 7, 0, 7022, 7023, 3, 41, 20, 0, 7023, 7024, 5, 95, 0, 0, 7024, 7025, 3, 11, 5, 0, 7025, 7026, 3, 7, 3, 0, 7026, 7027, 3, 45, 22, 0, 7027, 7028, 3, 7, 3, 0, 7028, 7029, 3, 29, 14, 0, 7029, 7030, 3, 35, 17, 0, 7030, 7031, 3, 19, 9, 0, 7031, 1256, 1, 0, 0, 0, 7032, 7033, 3, 45, 22, 0, 7033, 7034, 3, 41, 20, 0, 7034, 7035, 3, 23, 11, 0, 7035, 7036, 3, 19, 9, 0, 7036, 7037, 3, 19, 9, 0, 7037, 7038, 3, 15, 7, 0, 7038, 7039, 3, 41, 20, 0, 7039, 7040, 5, 95, 0, 0, 7040, 7041, 3, 33, 16, 0, 7041, 7042, 3, 7, 3, 0, 7042, 7043, 3, 31, 15, 0, 7043, 7044, 3, 15, 7, 0, 7044, 1258, 1, 0, 0, 0, 7045, 7046, 3, 45, 22, 0, 7046, 7047, 3, 41, 20, 0, 7047, 7048, 3, 23, 11, 0, 7048, 7049, 3, 19, 9, 0, 7049, 7050, 3, 19, 9, 0, 7050, 7051, 3, 15, 7, 0, 7051, 7052, 3, 41, 20, 0, 7052, 7053, 5, 95, 0, 0, 7053, 7054, 3, 43, 21, 0, 7054, 7055, 3, 11, 5, 0, 7055, 7056, 3, 21, 10, 0, 7056, 7057, 3, 15, 7, 0, 7057, 7058, 3, 31, 15, 0, 7058, 7059, 3, 7, 3, 0, 7059, 1260, 1, 0, 0, 0, 7060, 7061, 3, 45, 22, 0, 7061, 7062, 3, 41, 20, 0, 7062, 7063, 3, 23, 11, 0, 7063, 7064, 3, 31, 15, 0, 7064, 1262, 1, 0, 0, 0, 7065, 7066, 3, 45, 22, 0, 7066, 7067, 3, 41, 20, 0, 7067, 7068, 3, 47, 23, 0, 7068, 7069, 3, 15, 7, 0, 7069, 1264, 1, 0, 0, 0, 7070, 7071, 3, 45, 22, 0, 7071, 7072, 3, 41, 20, 0, 7072, 7073, 3, 47, 23, 0, 7073, 7074, 3, 33, 16, 0, 7074, 7075, 3, 11, 5, 0, 7075, 7076, 3, 7, 3, 0, 7076, 7077, 3, 45, 22, 0, 7077, 7078, 3, 15, 7, 0, 7078, 1266, 1, 0, 0, 0, 7079, 7080, 3, 45, 22, 0, 7080, 7081, 3, 41, 20, 0, 7081, 7082, 3, 47, 23, 0, 7082, 7083, 3, 43, 21, 0, 7083, 7084, 3, 45, 22, 0, 7084, 7085, 3, 15, 7, 0, 7085, 7086, 3, 13, 6, 0, 7086, 1268, 1, 0, 0, 0, 7087, 7088, 3, 45, 22, 0, 7088, 7089, 3, 55, 27, 0, 7089, 7090, 3, 37, 18, 0, 7090, 7091, 3, 15, 7, 0, 7091, 1270, 1, 0, 0, 0, 7092, 7093, 3, 47, 23, 0, 7093, 7094, 3, 15, 7, 0, 7094, 7095, 3, 43, 21, 0, 7095, 7096, 3, 11, 5, 0, 7096, 7097, 3, 7, 3, 0, 7097, 7098, 3, 37, 18, 0, 7098, 7099, 3, 15, 7, 0, 7099, 1272, 1, 0, 0, 0, 7100, 7101, 3, 47, 23, 0, 7101, 7102, 3, 33, 16, 0, 7102, 7103, 3, 9, 4, 0, 7103, 7104, 3, 35, 17, 0, 7104, 7105, 3, 47, 23, 0, 7105, 7106, 3, 33, 16, 0, 7106, 7107, 3, 13, 6, 0, 7107, 7108, 3, 15, 7, 0, 7108, 7109, 3, 13, 6, 0, 7109, 1274, 1, 0, 0, 0, 7110, 7111, 3, 47, 23, 0, 7111, 7112, 3, 33, 16, 0, 7112, 7113, 3, 11, 5, 0, 7113, 7114, 3, 35, 17, 0, 7114, 7115, 3, 31, 15, 0, 7115, 7116, 3, 31, 15, 0, 7116, 7117, 3, 23, 11, 0, 7117, 7118, 3, 45, 22, 0, 7118, 7119, 3, 45, 22, 0, 7119, 7120, 3, 15, 7, 0, 7120, 7121, 3, 13, 6, 0, 7121, 1276, 1, 0, 0, 0, 7122, 7123, 3, 47, 23, 0, 7123, 7124, 3, 33, 16, 0, 7124, 7125, 3, 13, 6, 0, 7125, 7126, 3, 15, 7, 0, 7126, 7127, 3, 41, 20, 0, 7127, 1278, 1, 0, 0, 0, 7128, 7129, 3, 47, 23, 0, 7129, 7130, 3, 33, 16, 0, 7130, 7131, 3, 15, 7, 0, 7131, 7132, 3, 33, 16, 0, 7132, 7133, 3, 11, 5, 0, 7133, 7134, 3, 41, 20, 0, 7134, 7135, 3, 55, 27, 0, 7135, 7136, 3, 37, 18, 0, 7136, 7137, 3, 45, 22, 0, 7137, 7138, 3, 15, 7, 0, 7138, 7139, 3, 13, 6, 0, 7139, 1280, 1, 0, 0, 0, 7140, 7141, 3, 47, 23, 0, 7141, 7142, 3, 33, 16, 0, 7142, 7143, 3, 23, 11, 0, 7143, 7144, 3, 35, 17, 0, 7144, 7145, 3, 33, 16, 0, 7145, 1282, 1, 0, 0, 0, 7146, 7147, 3, 47, 23, 0, 7147, 7148, 3, 33, 16, 0, 7148, 7149, 3, 23, 11, 0, 7149, 7150, 3, 39, 19, 0, 7150, 7151, 3, 47, 23, 0, 7151, 7152, 3, 15, 7, 0, 7152, 1284, 1, 0, 0, 0, 7153, 7154, 3, 47, 23, 0, 7154, 7155, 3, 33, 16, 0, 7155, 7156, 3, 27, 13, 0, 7156, 7157, 3, 33, 16, 0, 7157, 7158, 3, 35, 17, 0, 7158, 7159, 3, 51, 25, 0, 7159, 7160, 3, 33, 16, 0, 7160, 1286, 1, 0, 0, 0, 7161, 7162, 3, 47, 23, 0, 7162, 7163, 3, 33, 16, 0, 7163, 7164, 3, 29, 14, 0, 7164, 7165, 3, 23, 11, 0, 7165, 7166, 3, 43, 21, 0, 7166, 7167, 3, 45, 22, 0, 7167, 7168, 3, 15, 7, 0, 7168, 7169, 3, 33, 16, 0, 7169, 1288, 1, 0, 0, 0, 7170, 7171, 3, 47, 23, 0, 7171, 7172, 3, 33, 16, 0, 7172, 7173, 3, 33, 16, 0, 7173, 7174, 3, 7, 3, 0, 7174, 7175, 3, 31, 15, 0, 7175, 7176, 3, 15, 7, 0, 7176, 7177, 3, 13, 6, 0, 7177, 1290, 1, 0, 0, 0, 7178, 7179, 3, 47, 23, 0, 7179, 7180, 3, 33, 16, 0, 7180, 7181, 3, 33, 16, 0, 7181, 7182, 3, 15, 7, 0, 7182, 7183, 3, 43, 21, 0, 7183, 7184, 3, 45, 22, 0, 7184, 1292, 1, 0, 0, 0, 7185, 7186, 3, 47, 23, 0, 7186, 7187, 3, 33, 16, 0, 7187, 7188, 3, 45, 22, 0, 7188, 7189, 3, 23, 11, 0, 7189, 7190, 3, 29, 14, 0, 7190, 1294, 1, 0, 0, 0, 7191, 7192, 3, 47, 23, 0, 7192, 7193, 3, 37, 18, 0, 7193, 7194, 3, 13, 6, 0, 7194, 7195, 3, 7, 3, 0, 7195, 7196, 3, 45, 22, 0, 7196, 7197, 3, 15, 7, 0, 7197, 1296, 1, 0, 0, 0, 7198, 7199, 3, 47, 23, 0, 7199, 7200, 3, 37, 18, 0, 7200, 7201, 3, 37, 18, 0, 7201, 7202, 3, 15, 7, 0, 7202, 7203, 3, 41, 20, 0, 7203, 1298, 1, 0, 0, 0, 7204, 7205, 3, 47, 23, 0, 7205, 7206, 3, 43, 21, 0, 7206, 7207, 3, 7, 3, 0, 7207, 7208, 3, 19, 9, 0, 7208, 7209, 3, 15, 7, 0, 7209, 1300, 1, 0, 0, 0, 7210, 7211, 3, 47, 23, 0, 7211, 7212, 3, 43, 21, 0, 7212, 7213, 3, 15, 7, 0, 7213, 7214, 3, 41, 20, 0, 7214, 1302, 1, 0, 0, 0, 7215, 7216, 3, 47, 23, 0, 7216, 7217, 3, 43, 21, 0, 7217, 7218, 3, 15, 7, 0, 7218, 7219, 3, 41, 20, 0, 7219, 7220, 5, 95, 0, 0, 7220, 7221, 3, 13, 6, 0, 7221, 7222, 3, 15, 7, 0, 7222, 7223, 3, 17, 8, 0, 7223, 7224, 3, 23, 11, 0, 7224, 7225, 3, 33, 16, 0, 7225, 7226, 3, 15, 7, 0, 7226, 7227, 3, 13, 6, 0, 7227, 7228, 5, 95, 0, 0, 7228, 7229, 3, 45, 22, 0, 7229, 7230, 3, 55, 27, 0, 7230, 7231, 3, 37, 18, 0, 7231, 7232, 3, 15, 7, 0, 7232, 7233, 5, 95, 0, 0, 7233, 7234, 3, 11, 5, 0, 7234, 7235, 3, 7, 3, 0, 7235, 7236, 3, 45, 22, 0, 7236, 7237, 3, 7, 3, 0, 7237, 7238, 3, 29, 14, 0, 7238, 7239, 3, 35, 17, 0, 7239, 7240, 3, 19, 9, 0, 7240, 1304, 1, 0, 0, 0, 7241, 7242, 3, 47, 23, 0, 7242, 7243, 3, 43, 21, 0, 7243, 7244, 3, 15, 7, 0, 7244, 7245, 3, 41, 20, 0, 7245, 7246, 5, 95, 0, 0, 7246, 7247, 3, 13, 6, 0, 7247, 7248, 3, 15, 7, 0, 7248, 7249, 3, 17, 8, 0, 7249, 7250, 3, 23, 11, 0, 7250, 7251, 3, 33, 16, 0, 7251, 7252, 3, 15, 7, 0, 7252, 7253, 3, 13, 6, 0, 7253, 7254, 5, 95, 0, 0, 7254, 7255, 3, 45, 22, 0, 7255, 7256, 3, 55, 27, 0, 7256, 7257, 3, 37, 18, 0, 7257, 7258, 3, 15, 7, 0, 7258, 7259, 5, 95, 0, 0, 7259, 7260, 3, 11, 5, 0, 7260, 7261, 3, 35, 17, 0, 7261, 7262, 3, 13, 6, 0, 7262, 7263, 3, 15, 7, 0, 7263, 1306, 1, 0, 0, 0, 7264, 7265, 3, 47, 23, 0, 7265, 7266, 3, 43, 21, 0, 7266, 7267, 3, 15, 7, 0, 7267, 7268, 3, 41, 20, 0, 7268, 7269, 5, 95, 0, 0, 7269, 7270, 3, 13, 6, 0, 7270, 7271, 3, 15, 7, 0, 7271, 7272, 3, 17, 8, 0, 7272, 7273, 3, 23, 11, 0, 7273, 7274, 3, 33, 16, 0, 7274, 7275, 3, 15, 7, 0, 7275, 7276, 3, 13, 6, 0, 7276, 7277, 5, 95, 0, 0, 7277, 7278, 3, 45, 22, 0, 7278, 7279, 3, 55, 27, 0, 7279, 7280, 3, 37, 18, 0, 7280, 7281, 3, 15, 7, 0, 7281, 7282, 5, 95, 0, 0, 7282, 7283, 3, 33, 16, 0, 7283, 7284, 3, 7, 3, 0, 7284, 7285, 3, 31, 15, 0, 7285, 7286, 3, 15, 7, 0, 7286, 1308, 1, 0, 0, 0, 7287, 7288, 3, 47, 23, 0, 7288, 7289, 3, 43, 21, 0, 7289, 7290, 3, 15, 7, 0, 7290, 7291, 3, 41, 20, 0, 7291, 7292, 5, 95, 0, 0, 7292, 7293, 3, 13, 6, 0, 7293, 7294, 3, 15, 7, 0, 7294, 7295, 3, 17, 8, 0, 7295, 7296, 3, 23, 11, 0, 7296, 7297, 3, 33, 16, 0, 7297, 7298, 3, 15, 7, 0, 7298, 7299, 3, 13, 6, 0, 7299, 7300, 5, 95, 0, 0, 7300, 7301, 3, 45, 22, 0, 7301, 7302, 3, 55, 27, 0, 7302, 7303, 3, 37, 18, 0, 7303, 7304, 3, 15, 7, 0, 7304, 7305, 5, 95, 0, 0, 7305, 7306, 3, 43, 21, 0, 7306, 7307, 3, 11, 5, 0, 7307, 7308, 3, 21, 10, 0, 7308, 7309, 3, 15, 7, 0, 7309, 7310, 3, 31, 15, 0, 7310, 7311, 3, 7, 3, 0, 7311, 1310, 1, 0, 0, 0, 7312, 7313, 3, 47, 23, 0, 7313, 7314, 3, 43, 21, 0, 7314, 7315, 3, 23, 11, 0, 7315, 7316, 3, 33, 16, 0, 7316, 7317, 3, 19, 9, 0, 7317, 1312, 1, 0, 0, 0, 7318, 7319, 3, 49, 24, 0, 7319, 7320, 3, 7, 3, 0, 7320, 7321, 3, 11, 5, 0, 7321, 7322, 3, 47, 23, 0, 7322, 7323, 3, 47, 23, 0, 7323, 7324, 3, 31, 15, 0, 7324, 1314, 1, 0, 0, 0, 7325, 7326, 3, 49, 24, 0, 7326, 7327, 3, 7, 3, 0, 7327, 7328, 3, 29, 14, 0, 7328, 7329, 3, 23, 11, 0, 7329, 7330, 3, 13, 6, 0, 7330, 1316, 1, 0, 0, 0, 7331, 7332, 3, 49, 24, 0, 7332, 7333, 3, 7, 3, 0, 7333, 7334, 3, 29, 14, 0, 7334, 7335, 3, 23, 11, 0, 7335, 7336, 3, 13, 6, 0, 7336, 7337, 3, 7, 3, 0, 7337, 7338, 3, 45, 22, 0, 7338, 7339, 3, 15, 7, 0, 7339, 1318, 1, 0, 0, 0, 7340, 7341, 3, 49, 24, 0, 7341, 7342, 3, 7, 3, 0, 7342, 7343, 3, 29, 14, 0, 7343, 7344, 3, 23, 11, 0, 7344, 7345, 3, 13, 6, 0, 7345, 7346, 3, 7, 3, 0, 7346, 7347, 3, 45, 22, 0, 7347, 7348, 3, 35, 17, 0, 7348, 7349, 3, 41, 20, 0, 7349, 1320, 1, 0, 0, 0, 7350, 7351, 3, 49, 24, 0, 7351, 7352, 3, 7, 3, 0, 7352, 7353, 3, 29, 14, 0, 7353, 7354, 3, 47, 23, 0, 7354, 7355, 3, 15, 7, 0, 7355, 1322, 1, 0, 0, 0, 7356, 7357, 3, 49, 24, 0, 7357, 7358, 3, 7, 3, 0, 7358, 7359, 3, 29, 14, 0, 7359, 7360, 3, 47, 23, 0, 7360, 7361, 3, 15, 7, 0, 7361, 7362, 3, 43, 21, 0, 7362, 1324, 1, 0, 0, 0, 7363, 7364, 3, 49, 24, 0, 7364, 7365, 3, 7, 3, 0, 7365, 7366, 3, 41, 20, 0, 7366, 7367, 5, 95, 0, 0, 7367, 7368, 3, 37, 18, 0, 7368, 7369, 3, 35, 17, 0, 7369, 7370, 3, 37, 18, 0, 7370, 1326, 1, 0, 0, 0, 7371, 7372, 3, 49, 24, 0, 7372, 7373, 3, 7, 3, 0, 7373, 7374, 3, 41, 20, 0, 7374, 7375, 5, 95, 0, 0, 7375, 7376, 3, 43, 21, 0, 7376, 7377, 3, 7, 3, 0, 7377, 7378, 3, 31, 15, 0, 7378, 7379, 3, 37, 18, 0, 7379, 1328, 1, 0, 0, 0, 7380, 7381, 3, 49, 24, 0, 7381, 7382, 3, 7, 3, 0, 7382, 7383, 3, 41, 20, 0, 7383, 7384, 3, 11, 5, 0, 7384, 7385, 3, 21, 10, 0, 7385, 7386, 3, 7, 3, 0, 7386, 7387, 3, 41, 20, 0, 7387, 1330, 1, 0, 0, 0, 7388, 7389, 3, 49, 24, 0, 7389, 7390, 3, 7, 3, 0, 7390, 7391, 3, 41, 20, 0, 7391, 7392, 3, 23, 11, 0, 7392, 7393, 3, 7, 3, 0, 7393, 7394, 3, 9, 4, 0, 7394, 7395, 3, 29, 14, 0, 7395, 7396, 3, 15, 7, 0, 7396, 1332, 1, 0, 0, 0, 7397, 7398, 3, 49, 24, 0, 7398, 7399, 3, 7, 3, 0, 7399, 7400, 3, 41, 20, 0, 7400, 7401, 3, 23, 11, 0, 7401, 7402, 3, 7, 3, 0, 7402, 7403, 3, 13, 6, 0, 7403, 7404, 3, 23, 11, 0, 7404, 7405, 3, 11, 5, 0, 7405, 1334, 1, 0, 0, 0, 7406, 7407, 3, 49, 24, 0, 7407, 7408, 3, 7, 3, 0, 7408, 7409, 3, 41, 20, 0, 7409, 7410, 3, 55, 27, 0, 7410, 7411, 3, 23, 11, 0, 7411, 7412, 3, 33, 16, 0, 7412, 7413, 3, 19, 9, 0, 7413, 1336, 1, 0, 0, 0, 7414, 7415, 3, 49, 24, 0, 7415, 7416, 3, 15, 7, 0, 7416, 7417, 3, 41, 20, 0, 7417, 7418, 3, 9, 4, 0, 7418, 7419, 3, 35, 17, 0, 7419, 7420, 3, 43, 21, 0, 7420, 7421, 3, 15, 7, 0, 7421, 1338, 1, 0, 0, 0, 7422, 7423, 3, 49, 24, 0, 7423, 7424, 3, 23, 11, 0, 7424, 7425, 3, 15, 7, 0, 7425, 7426, 3, 51, 25, 0, 7426, 1340, 1, 0, 0, 0, 7427, 7428, 3, 49, 24, 0, 7428, 7429, 3, 35, 17, 0, 7429, 7430, 3, 29, 14, 0, 7430, 7431, 3, 7, 3, 0, 7431, 7432, 3, 45, 22, 0, 7432, 7433, 3, 23, 11, 0, 7433, 7434, 3, 29, 14, 0, 7434, 7435, 3, 15, 7, 0, 7435, 1342, 1, 0, 0, 0, 7436, 7437, 3, 51, 25, 0, 7437, 7438, 3, 21, 10, 0, 7438, 7439, 3, 15, 7, 0, 7439, 7440, 3, 33, 16, 0, 7440, 1344, 1, 0, 0, 0, 7441, 7442, 3, 51, 25, 0, 7442, 7443, 3, 21, 10, 0, 7443, 7444, 3, 15, 7, 0, 7444, 7445, 3, 33, 16, 0, 7445, 7446, 3, 15, 7, 0, 7446, 7447, 3, 49, 24, 0, 7447, 7448, 3, 15, 7, 0, 7448, 7449, 3, 41, 20, 0, 7449, 1346, 1, 0, 0, 0, 7450, 7451, 3, 51, 25, 0, 7451, 7452, 3, 21, 10, 0, 7452, 7453, 3, 15, 7, 0, 7453, 7454, 3, 41, 20, 0, 7454, 7455, 3, 15, 7, 0, 7455, 1348, 1, 0, 0, 0, 7456, 7457, 3, 51, 25, 0, 7457, 7458, 3, 23, 11, 0, 7458, 7459, 3, 13, 6, 0, 7459, 7460, 3, 45, 22, 0, 7460, 7461, 3, 21, 10, 0, 7461, 7462, 5, 95, 0, 0, 7462, 7463, 3, 9, 4, 0, 7463, 7464, 3, 47, 23, 0, 7464, 7465, 3, 11, 5, 0, 7465, 7466, 3, 27, 13, 0, 7466, 7467, 3, 15, 7, 0, 7467, 7468, 3, 45, 22, 0, 7468, 1350, 1, 0, 0, 0, 7469, 7470, 3, 51, 25, 0, 7470, 7471, 3, 23, 11, 0, 7471, 7472, 3, 33, 16, 0, 7472, 7473, 3, 13, 6, 0, 7473, 7474, 3, 35, 17, 0, 7474, 7475, 3, 51, 25, 0, 7475, 1352, 1, 0, 0, 0, 7476, 7477, 3, 51, 25, 0, 7477, 7478, 3, 23, 11, 0, 7478, 7479, 3, 45, 22, 0, 7479, 7480, 3, 21, 10, 0, 7480, 1354, 1, 0, 0, 0, 7481, 7482, 3, 51, 25, 0, 7482, 7483, 3, 23, 11, 0, 7483, 7484, 3, 45, 22, 0, 7484, 7485, 3, 21, 10, 0, 7485, 7486, 3, 23, 11, 0, 7486, 7487, 3, 33, 16, 0, 7487, 1356, 1, 0, 0, 0, 7488, 7489, 3, 51, 25, 0, 7489, 7490, 3, 23, 11, 0, 7490, 7491, 3, 45, 22, 0, 7491, 7492, 3, 21, 10, 0, 7492, 7493, 3, 35, 17, 0, 7493, 7494, 3, 47, 23, 0, 7494, 7495, 3, 45, 22, 0, 7495, 1358, 1, 0, 0, 0, 7496, 7497, 3, 51, 25, 0, 7497, 7498, 3, 35, 17, 0, 7498, 7499, 3, 41, 20, 0, 7499, 7500, 3, 27, 13, 0, 7500, 1360, 1, 0, 0, 0, 7501, 7502, 3, 51, 25, 0, 7502, 7503, 3, 41, 20, 0, 7503, 7504, 3, 23, 11, 0, 7504, 7505, 3, 45, 22, 0, 7505, 7506, 3, 15, 7, 0, 7506, 1362, 1, 0, 0, 0, 7507, 7508, 3, 55, 27, 0, 7508, 7509, 3, 7, 3, 0, 7509, 7510, 3, 31, 15, 0, 7510, 7511, 3, 29, 14, 0, 7511, 1364, 1, 0, 0, 0, 7512, 7513, 3, 55, 27, 0, 7513, 7514, 3, 15, 7, 0, 7514, 7515, 3, 7, 3, 0, 7515, 7516, 3, 41, 20, 0, 7516, 1366, 1, 0, 0, 0, 7517, 7518, 3, 55, 27, 0, 7518, 7519, 3, 15, 7, 0, 7519, 7520, 3, 43, 21, 0, 7520, 1368, 1, 0, 0, 0, 7521, 7522, 3, 57, 28, 0, 7522, 7523, 3, 35, 17, 0, 7523, 7524, 3, 33, 16, 0, 7524, 7525, 3, 15, 7, 0, 7525, 1370, 1, 0, 0, 0, 7526, 7527, 3, 43, 21, 0, 7527, 7528, 3, 47, 23, 0, 7528, 7529, 3, 37, 18, 0, 7529, 7530, 3, 15, 7, 0, 7530, 7531, 3, 41, 20, 0, 7531, 7532, 3, 47, 23, 0, 7532, 7533, 3, 43, 21, 0, 7533, 7534, 3, 15, 7, 0, 7534, 7535, 3, 41, 20, 0, 7535, 1372, 1, 0, 0, 0, 7536, 7537, 3, 33, 16, 0, 7537, 7538, 3, 35, 17, 0, 7538, 7539, 3, 43, 21, 0, 7539, 7540, 3, 47, 23, 0, 7540, 7541, 3, 37, 18, 0, 7541, 7542, 3, 15, 7, 0, 7542, 7543, 3, 41, 20, 0, 7543, 7544, 3, 47, 23, 0, 7544, 7545, 3, 43, 21, 0, 7545, 7546, 3, 15, 7, 0, 7546, 7547, 3, 41, 20, 0, 7547, 1374, 1, 0, 0, 0, 7548, 7549, 3, 11, 5, 0, 7549, 7550, 3, 41, 20, 0, 7550, 7551, 3, 15, 7, 0, 7551, 7552, 3, 7, 3, 0, 7552, 7553, 3, 45, 22, 0, 7553, 7554, 3, 15, 7, 0, 7554, 7555, 3, 41, 20, 0, 7555, 7556, 3, 35, 17, 0, 7556, 7557, 3, 29, 14, 0, 7557, 7558, 3, 15, 7, 0, 7558, 1376, 1, 0, 0, 0, 7559, 7560, 3, 33, 16, 0, 7560, 7561, 3, 35, 17, 0, 7561, 7562, 3, 11, 5, 0, 7562, 7563, 3, 41, 20, 0, 7563, 7564, 3, 15, 7, 0, 7564, 7565, 3, 7, 3, 0, 7565, 7566, 3, 45, 22, 0, 7566, 7567, 3, 15, 7, 0, 7567, 7568, 3, 41, 20, 0, 7568, 7569, 3, 35, 17, 0, 7569, 7570, 3, 29, 14, 0, 7570, 7571, 3, 15, 7, 0, 7571, 1378, 1, 0, 0, 0, 7572, 7573, 3, 23, 11, 0, 7573, 7574, 3, 33, 16, 0, 7574, 7575, 3, 21, 10, 0, 7575, 7576, 3, 15, 7, 0, 7576, 7577, 3, 41, 20, 0, 7577, 7578, 3, 23, 11, 0, 7578, 7579, 3, 45, 22, 0, 7579, 1380, 1, 0, 0, 0, 7580, 7581, 3, 33, 16, 0, 7581, 7582, 3, 35, 17, 0, 7582, 7583, 3, 23, 11, 0, 7583, 7584, 3, 33, 16, 0, 7584, 7585, 3, 21, 10, 0, 7585, 7586, 3, 15, 7, 0, 7586, 7587, 3, 41, 20, 0, 7587, 7588, 3, 23, 11, 0, 7588, 7589, 3, 45, 22, 0, 7589, 1382, 1, 0, 0, 0, 7590, 7591, 3, 29, 14, 0, 7591, 7592, 3, 35, 17, 0, 7592, 7593, 3, 19, 9, 0, 7593, 7594, 3, 23, 11, 0, 7594, 7595, 3, 33, 16, 0, 7595, 1384, 1, 0, 0, 0, 7596, 7597, 3, 33, 16, 0, 7597, 7598, 3, 35, 17, 0, 7598, 7599, 3, 29, 14, 0, 7599, 7600, 3, 35, 17, 0, 7600, 7601, 3, 19, 9, 0, 7601, 7602, 3, 23, 11, 0, 7602, 7603, 3, 33, 16, 0, 7603, 1386, 1, 0, 0, 0, 7604, 7605, 3, 41, 20, 0, 7605, 7606, 3, 15, 7, 0, 7606, 7607, 3, 37, 18, 0, 7607, 7608, 3, 29, 14, 0, 7608, 7609, 3, 23, 11, 0, 7609, 7610, 3, 11, 5, 0, 7610, 7611, 3, 7, 3, 0, 7611, 7612, 3, 45, 22, 0, 7612, 7613, 3, 23, 11, 0, 7613, 7614, 3, 35, 17, 0, 7614, 7615, 3, 33, 16, 0, 7615, 1388, 1, 0, 0, 0, 7616, 7617, 3, 33, 16, 0, 7617, 7618, 3, 35, 17, 0, 7618, 7619, 3, 41, 20, 0, 7619, 7620, 3, 15, 7, 0, 7620, 7621, 3, 37, 18, 0, 7621, 7622, 3, 29, 14, 0, 7622, 7623, 3, 23, 11, 0, 7623, 7624, 3, 11, 5, 0, 7624, 7625, 3, 7, 3, 0, 7625, 7626, 3, 45, 22, 0, 7626, 7627, 3, 23, 11, 0, 7627, 7628, 3, 35, 17, 0, 7628, 7629, 3, 33, 16, 0, 7629, 1390, 1, 0, 0, 0, 7630, 7631, 3, 9, 4, 0, 7631, 7632, 3, 55, 27, 0, 7632, 7633, 3, 37, 18, 0, 7633, 7634, 3, 7, 3, 0, 7634, 7635, 3, 43, 21, 0, 7635, 7636, 3, 43, 21, 0, 7636, 7637, 3, 41, 20, 0, 7637, 7638, 3, 29, 14, 0, 7638, 7639, 3, 43, 21, 0, 7639, 1392, 1, 0, 0, 0, 7640, 7641, 3, 33, 16, 0, 7641, 7642, 3, 35, 17, 0, 7642, 7643, 3, 9, 4, 0, 7643, 7644, 3, 55, 27, 0, 7644, 7645, 3, 37, 18, 0, 7645, 7646, 3, 7, 3, 0, 7646, 7647, 3, 43, 21, 0, 7647, 7648, 3, 43, 21, 0, 7648, 7649, 3, 41, 20, 0, 7649, 7650, 3, 29, 14, 0, 7650, 7651, 3, 43, 21, 0, 7651, 1394, 1, 0, 0, 0, 7652, 7653, 3, 43, 21, 0, 7653, 7654, 3, 17, 8, 0, 7654, 7655, 3, 47, 23, 0, 7655, 7656, 3, 33, 16, 0, 7656, 7657, 3, 11, 5, 0, 7657, 1396, 1, 0, 0, 0, 7658, 7659, 3, 43, 21, 0, 7659, 7660, 3, 45, 22, 0, 7660, 7661, 3, 55, 27, 0, 7661, 7662, 3, 37, 18, 0, 7662, 7663, 3, 15, 7, 0, 7663, 1398, 1, 0, 0, 0, 7664, 7665, 3, 43, 21, 0, 7665, 7666, 3, 43, 21, 0, 7666, 7667, 3, 37, 18, 0, 7667, 7668, 3, 7, 3, 0, 7668, 7669, 3, 11, 5, 0, 7669, 7670, 3, 15, 7, 0, 7670, 1400, 1, 0, 0, 0, 7671, 7672, 3, 17, 8, 0, 7672, 7673, 3, 23, 11, 0, 7673, 7674, 3, 33, 16, 0, 7674, 7675, 3, 7, 3, 0, 7675, 7676, 3, 29, 14, 0, 7676, 7677, 3, 17, 8, 0, 7677, 7678, 3, 47, 23, 0, 7678, 7679, 3, 33, 16, 0, 7679, 7680, 3, 11, 5, 0, 7680, 1402, 1, 0, 0, 0, 7681, 7682, 3, 17, 8, 0, 7682, 7683, 3, 23, 11, 0, 7683, 7684, 3, 33, 16, 0, 7684, 7685, 3, 7, 3, 0, 7685, 7686, 3, 29, 14, 0, 7686, 7687, 3, 17, 8, 0, 7687, 7688, 3, 47, 23, 0, 7688, 7689, 3, 33, 16, 0, 7689, 7690, 3, 11, 5, 0, 7690, 7691, 5, 95, 0, 0, 7691, 7692, 3, 15, 7, 0, 7692, 7693, 3, 53, 26, 0, 7693, 7694, 3, 45, 22, 0, 7694, 7695, 3, 41, 20, 0, 7695, 7696, 3, 7, 3, 0, 7696, 1404, 1, 0, 0, 0, 7697, 7698, 3, 11, 5, 0, 7698, 7699, 3, 35, 17, 0, 7699, 7700, 3, 31, 15, 0, 7700, 7701, 3, 9, 4, 0, 7701, 7702, 3, 23, 11, 0, 7702, 7703, 3, 33, 16, 0, 7703, 7704, 3, 15, 7, 0, 7704, 7705, 3, 17, 8, 0, 7705, 7706, 3, 47, 23, 0, 7706, 7707, 3, 33, 16, 0, 7707, 7708, 3, 11, 5, 0, 7708, 1406, 1, 0, 0, 0, 7709, 7710, 3, 43, 21, 0, 7710, 7711, 3, 15, 7, 0, 7711, 7712, 3, 41, 20, 0, 7712, 7713, 3, 23, 11, 0, 7713, 7714, 3, 7, 3, 0, 7714, 7715, 3, 29, 14, 0, 7715, 7716, 3, 17, 8, 0, 7716, 7717, 3, 47, 23, 0, 7717, 7718, 3, 33, 16, 0, 7718, 7719, 3, 11, 5, 0, 7719, 1408, 1, 0, 0, 0, 7720, 7721, 3, 13, 6, 0, 7721, 7722, 3, 15, 7, 0, 7722, 7723, 3, 43, 21, 0, 7723, 7724, 3, 15, 7, 0, 7724, 7725, 3, 41, 20, 0, 7725, 7726, 3, 23, 11, 0, 7726, 7727, 3, 7, 3, 0, 7727, 7728, 3, 29, 14, 0, 7728, 7729, 3, 17, 8, 0, 7729, 7730, 3, 47, 23, 0, 7730, 7731, 3, 33, 16, 0, 7731, 7732, 3, 11, 5, 0, 7732, 1410, 1, 0, 0, 0, 7733, 7734, 3, 23, 11, 0, 7734, 7735, 3, 33, 16, 0, 7735, 7736, 3, 23, 11, 0, 7736, 7737, 3, 45, 22, 0, 7737, 7738, 3, 11, 5, 0, 7738, 7739, 3, 35, 17, 0, 7739, 7740, 3, 33, 16, 0, 7740, 7741, 3, 13, 6, 0, 7741, 1412, 1, 0, 0, 0, 7742, 7743, 3, 31, 15, 0, 7743, 7744, 3, 43, 21, 0, 7744, 7745, 3, 17, 8, 0, 7745, 7746, 3, 47, 23, 0, 7746, 7747, 3, 33, 16, 0, 7747, 7748, 3, 11, 5, 0, 7748, 1414, 1, 0, 0, 0, 7749, 7750, 3, 31, 15, 0, 7750, 7751, 3, 23, 11, 0, 7751, 7752, 3, 33, 16, 0, 7752, 7753, 3, 49, 24, 0, 7753, 7754, 3, 17, 8, 0, 7754, 7755, 3, 47, 23, 0, 7755, 7756, 3, 33, 16, 0, 7756, 7757, 3, 11, 5, 0, 7757, 1416, 1, 0, 0, 0, 7758, 7759, 3, 31, 15, 0, 7759, 7760, 3, 43, 21, 0, 7760, 7761, 3, 45, 22, 0, 7761, 7762, 3, 55, 27, 0, 7762, 7763, 3, 37, 18, 0, 7763, 7764, 3, 15, 7, 0, 7764, 1418, 1, 0, 0, 0, 7765, 7766, 3, 31, 15, 0, 7766, 7767, 3, 43, 21, 0, 7767, 7768, 3, 43, 21, 0, 7768, 7769, 3, 37, 18, 0, 7769, 7770, 3, 7, 3, 0, 7770, 7771, 3, 11, 5, 0, 7771, 7772, 3, 15, 7, 0, 7772, 1420, 1, 0, 0, 0, 7773, 7774, 3, 31, 15, 0, 7774, 7775, 3, 17, 8, 0, 7775, 7776, 3, 23, 11, 0, 7776, 7777, 3, 33, 16, 0, 7777, 7778, 3, 7, 3, 0, 7778, 7779, 3, 29, 14, 0, 7779, 7780, 3, 17, 8, 0, 7780, 7781, 3, 47, 23, 0, 7781, 7782, 3, 33, 16, 0, 7782, 7783, 3, 11, 5, 0, 7783, 1422, 1, 0, 0, 0, 7784, 7785, 3, 31, 15, 0, 7785, 7786, 3, 17, 8, 0, 7786, 7787, 3, 23, 11, 0, 7787, 7788, 3, 33, 16, 0, 7788, 7789, 3, 7, 3, 0, 7789, 7790, 3, 29, 14, 0, 7790, 7791, 3, 17, 8, 0, 7791, 7792, 3, 47, 23, 0, 7792, 7793, 3, 33, 16, 0, 7793, 7794, 3, 11, 5, 0, 7794, 7795, 5, 95, 0, 0, 7795, 7796, 3, 15, 7, 0, 7796, 7797, 3, 53, 26, 0, 7797, 7798, 3, 45, 22, 0, 7798, 7799, 3, 41, 20, 0, 7799, 7800, 3, 7, 3, 0, 7800, 1424, 1, 0, 0, 0, 7801, 7802, 3, 31, 15, 0, 7802, 7803, 3, 23, 11, 0, 7803, 7804, 3, 33, 16, 0, 7804, 7805, 3, 23, 11, 0, 7805, 7806, 3, 45, 22, 0, 7806, 7807, 3, 11, 5, 0, 7807, 7808, 3, 35, 17, 0, 7808, 7809, 3, 33, 16, 0, 7809, 7810, 3, 13, 6, 0, 7810, 1426, 1, 0, 0, 0, 7811, 7812, 3, 43, 21, 0, 7812, 7813, 3, 35, 17, 0, 7813, 7814, 3, 41, 20, 0, 7814, 7815, 3, 45, 22, 0, 7815, 7816, 3, 35, 17, 0, 7816, 7817, 3, 37, 18, 0, 7817, 1428, 1, 0, 0, 0, 7818, 7819, 3, 37, 18, 0, 7819, 7820, 3, 7, 3, 0, 7820, 7821, 3, 41, 20, 0, 7821, 7822, 3, 7, 3, 0, 7822, 7823, 3, 29, 14, 0, 7823, 7824, 3, 29, 14, 0, 7824, 7825, 3, 15, 7, 0, 7825, 7826, 3, 29, 14, 0, 7826, 1430, 1, 0, 0, 0, 7827, 7828, 3, 21, 10, 0, 7828, 7829, 3, 55, 27, 0, 7829, 7830, 3, 37, 18, 0, 7830, 7831, 3, 35, 17, 0, 7831, 7832, 3, 45, 22, 0, 7832, 7833, 3, 21, 10, 0, 7833, 7834, 3, 15, 7, 0, 7834, 7835, 3, 45, 22, 0, 7835, 7836, 3, 23, 11, 0, 7836, 7837, 3, 11, 5, 0, 7837, 7838, 3, 7, 3, 0, 7838, 7839, 3, 29, 14, 0, 7839, 1432, 1, 0, 0, 0, 7840, 7841, 3, 43, 21, 0, 7841, 7842, 3, 7, 3, 0, 7842, 7843, 3, 17, 8, 0, 7843, 7844, 3, 15, 7, 0, 7844, 1434, 1, 0, 0, 0, 7845, 7846, 3, 47, 23, 0, 7846, 7847, 3, 33, 16, 0, 7847, 7848, 3, 43, 21, 0, 7848, 7849, 3, 7, 3, 0, 7849, 7850, 3, 17, 8, 0, 7850, 7851, 3, 15, 7, 0, 7851, 1436, 1, 0, 0, 0, 7852, 7853, 3, 9, 4, 0, 7853, 7854, 3, 7, 3, 0, 7854, 7855, 3, 43, 21, 0, 7855, 7856, 3, 15, 7, 0, 7856, 7857, 3, 45, 22, 0, 7857, 7858, 3, 55, 27, 0, 7858, 7859, 3, 37, 18, 0, 7859, 7860, 3, 15, 7, 0, 7860, 1438, 1, 0, 0, 0, 7861, 7862, 3, 23, 11, 0, 7862, 7863, 3, 17, 8, 0, 7863, 1440, 1, 0, 0, 0, 7864, 7865, 3, 29, 14, 0, 7865, 7866, 3, 35, 17, 0, 7866, 7867, 3, 11, 5, 0, 7867, 7868, 3, 7, 3, 0, 7868, 7869, 3, 29, 14, 0, 7869, 7870, 3, 15, 7, 0, 7870, 1442, 1, 0, 0, 0, 7871, 7872, 3, 29, 14, 0, 7872, 7873, 3, 11, 5, 0, 7873, 7874, 5, 95, 0, 0, 7874, 7875, 3, 11, 5, 0, 7875, 7876, 3, 35, 17, 0, 7876, 7877, 3, 29, 14, 0, 7877, 7878, 3, 29, 14, 0, 7878, 7879, 3, 7, 3, 0, 7879, 7880, 3, 45, 22, 0, 7880, 7881, 3, 15, 7, 0, 7881, 1444, 1, 0, 0, 0, 7882, 7883, 3, 29, 14, 0, 7883, 7884, 3, 11, 5, 0, 7884, 7885, 5, 95, 0, 0, 7885, 7886, 3, 11, 5, 0, 7886, 7887, 3, 45, 22, 0, 7887, 7888, 3, 55, 27, 0, 7888, 7889, 3, 37, 18, 0, 7889, 7890, 3, 15, 7, 0, 7890, 1446, 1, 0, 0, 0, 7891, 7892, 3, 37, 18, 0, 7892, 7893, 3, 41, 20, 0, 7893, 7894, 3, 35, 17, 0, 7894, 7895, 3, 49, 24, 0, 7895, 7896, 3, 23, 11, 0, 7896, 7897, 3, 13, 6, 0, 7897, 7898, 3, 15, 7, 0, 7898, 7899, 3, 41, 20, 0, 7899, 1448, 1, 0, 0, 0, 7900, 7901, 3, 49, 24, 0, 7901, 7902, 3, 15, 7, 0, 7902, 7903, 3, 41, 20, 0, 7903, 7904, 3, 43, 21, 0, 7904, 7905, 3, 23, 11, 0, 7905, 7906, 3, 35, 17, 0, 7906, 7907, 3, 33, 16, 0, 7907, 1450, 1, 0, 0, 0, 7908, 7909, 3, 7, 3, 0, 7909, 7910, 3, 29, 14, 0, 7910, 7911, 3, 29, 14, 0, 7911, 7912, 3, 35, 17, 0, 7912, 7913, 3, 51, 25, 0, 7913, 7914, 5, 95, 0, 0, 7914, 7915, 3, 11, 5, 0, 7915, 7916, 3, 35, 17, 0, 7916, 7917, 3, 33, 16, 0, 7917, 7918, 3, 33, 16, 0, 7918, 7919, 3, 15, 7, 0, 7919, 7920, 3, 11, 5, 0, 7920, 7921, 3, 45, 22, 0, 7921, 7922, 3, 23, 11, 0, 7922, 7923, 3, 35, 17, 0, 7923, 7924, 3, 33, 16, 0, 7924, 7925, 3, 43, 21, 0, 7925, 1452, 1, 0, 0, 0, 7926, 7927, 3, 23, 11, 0, 7927, 7928, 3, 43, 21, 0, 7928, 7929, 5, 95, 0, 0, 7929, 7930, 3, 45, 22, 0, 7930, 7931, 3, 15, 7, 0, 7931, 7932, 3, 31, 15, 0, 7932, 7933, 3, 37, 18, 0, 7933, 7934, 3, 29, 14, 0, 7934, 7935, 3, 7, 3, 0, 7935, 7936, 3, 45, 22, 0, 7936, 7937, 3, 15, 7, 0, 7937, 1454, 1, 0, 0, 0, 7938, 7939, 3, 15, 7, 0, 7939, 7940, 3, 49, 24, 0, 7940, 7941, 3, 15, 7, 0, 7941, 7942, 3, 33, 16, 0, 7942, 7943, 3, 45, 22, 0, 7943, 1456, 1, 0, 0, 0, 7944, 7945, 3, 51, 25, 0, 7945, 7946, 3, 41, 20, 0, 7946, 7947, 3, 7, 3, 0, 7947, 7948, 3, 37, 18, 0, 7948, 7949, 3, 37, 18, 0, 7949, 7950, 3, 15, 7, 0, 7950, 7951, 3, 41, 20, 0, 7951, 1458, 1, 0, 0, 0, 7952, 7953, 3, 43, 21, 0, 7953, 7954, 3, 15, 7, 0, 7954, 7955, 3, 41, 20, 0, 7955, 7956, 3, 49, 24, 0, 7956, 7957, 3, 15, 7, 0, 7957, 7958, 3, 41, 20, 0, 7958, 1460, 1, 0, 0, 0, 7959, 7960, 3, 9, 4, 0, 7960, 7961, 3, 45, 22, 0, 7961, 7962, 3, 41, 20, 0, 7962, 7963, 3, 15, 7, 0, 7963, 7964, 3, 15, 7, 0, 7964, 1462, 1, 0, 0, 0, 7965, 7966, 3, 21, 10, 0, 7966, 7967, 3, 7, 3, 0, 7967, 7968, 3, 43, 21, 0, 7968, 7969, 3, 21, 10, 0, 7969, 1464, 1, 0, 0, 0, 7970, 7971, 3, 19, 9, 0, 7971, 7972, 3, 23, 11, 0, 7972, 7973, 3, 43, 21, 0, 7973, 7974, 3, 45, 22, 0, 7974, 1466, 1, 0, 0, 0, 7975, 7976, 3, 43, 21, 0, 7976, 7977, 3, 37, 18, 0, 7977, 7978, 3, 19, 9, 0, 7978, 7979, 3, 23, 11, 0, 7979, 7980, 3, 43, 21, 0, 7980, 7981, 3, 45, 22, 0, 7981, 1468, 1, 0, 0, 0, 7982, 7983, 3, 19, 9, 0, 7983, 7984, 3, 23, 11, 0, 7984, 7985, 3, 33, 16, 0, 7985, 1470, 1, 0, 0, 0, 7986, 7987, 3, 9, 4, 0, 7987, 7988, 3, 41, 20, 0, 7988, 7989, 3, 23, 11, 0, 7989, 7990, 3, 33, 16, 0, 7990, 1472, 1, 0, 0, 0, 7991, 7992, 3, 11, 5, 0, 7992, 7993, 3, 35, 17, 0, 7993, 7994, 3, 33, 16, 0, 7994, 7995, 3, 11, 5, 0, 7995, 7996, 3, 47, 23, 0, 7996, 7997, 3, 41, 20, 0, 7997, 7998, 3, 41, 20, 0, 7998, 7999, 3, 15, 7, 0, 7999, 8000, 3, 33, 16, 0, 8000, 8001, 3, 45, 22, 0, 8001, 8002, 3, 29, 14, 0, 8002, 8003, 3, 55, 27, 0, 8003, 1474, 1, 0, 0, 0, 8004, 8005, 3, 23, 11, 0, 8005, 8006, 3, 33, 16, 0, 8006, 8007, 3, 29, 14, 0, 8007, 8008, 3, 23, 11, 0, 8008, 8009, 3, 33, 16, 0, 8009, 8010, 3, 15, 7, 0, 8010, 1476, 1, 0, 0, 0, 8011, 8012, 3, 31, 15, 0, 8012, 8013, 3, 7, 3, 0, 8013, 8014, 3, 45, 22, 0, 8014, 8015, 3, 15, 7, 0, 8015, 8016, 3, 41, 20, 0, 8016, 8017, 3, 23, 11, 0, 8017, 8018, 3, 7, 3, 0, 8018, 8019, 3, 29, 14, 0, 8019, 8020, 3, 23, 11, 0, 8020, 8021, 3, 57, 28, 0, 8021, 8022, 3, 15, 7, 0, 8022, 8023, 3, 13, 6, 0, 8023, 1478, 1, 0, 0, 0, 8024, 8025, 3, 29, 14, 0, 8025, 8026, 3, 15, 7, 0, 8026, 8027, 3, 17, 8, 0, 8027, 8028, 3, 45, 22, 0, 8028, 8029, 3, 7, 3, 0, 8029, 8030, 3, 41, 20, 0, 8030, 8031, 3, 19, 9, 0, 8031, 1480, 1, 0, 0, 0, 8032, 8033, 3, 41, 20, 0, 8033, 8034, 3, 23, 11, 0, 8034, 8035, 3, 19, 9, 0, 8035, 8036, 3, 21, 10, 0, 8036, 8037, 3, 45, 22, 0, 8037, 8038, 3, 7, 3, 0, 8038, 8039, 3, 41, 20, 0, 8039, 8040, 3, 19, 9, 0, 8040, 1482, 1, 0, 0, 0, 8041, 8042, 3, 11, 5, 0, 8042, 8043, 3, 35, 17, 0, 8043, 8044, 3, 31, 15, 0, 8044, 8045, 3, 31, 15, 0, 8045, 8046, 3, 47, 23, 0, 8046, 8047, 3, 45, 22, 0, 8047, 8048, 3, 7, 3, 0, 8048, 8049, 3, 45, 22, 0, 8049, 8050, 3, 35, 17, 0, 8050, 8051, 3, 41, 20, 0, 8051, 1484, 1, 0, 0, 0, 8052, 8053, 3, 33, 16, 0, 8053, 8054, 3, 15, 7, 0, 8054, 8055, 3, 19, 9, 0, 8055, 8056, 3, 7, 3, 0, 8056, 8057, 3, 45, 22, 0, 8057, 8058, 3, 35, 17, 0, 8058, 8059, 3, 41, 20, 0, 8059, 1486, 1, 0, 0, 0, 8060, 8061, 3, 21, 10, 0, 8061, 8062, 3, 7, 3, 0, 8062, 8063, 3, 43, 21, 0, 8063, 8064, 3, 21, 10, 0, 8064, 8065, 3, 15, 7, 0, 8065, 8066, 3, 43, 21, 0, 8066, 1488, 1, 0, 0, 0, 8067, 8068, 3, 31, 15, 0, 8068, 8069, 3, 15, 7, 0, 8069, 8070, 3, 41, 20, 0, 8070, 8071, 3, 19, 9, 0, 8071, 8072, 3, 15, 7, 0, 8072, 8073, 3, 43, 21, 0, 8073, 1490, 1, 0, 0, 0, 8074, 8075, 3, 17, 8, 0, 8075, 8076, 3, 7, 3, 0, 8076, 8077, 3, 31, 15, 0, 8077, 8078, 3, 23, 11, 0, 8078, 8079, 3, 29, 14, 0, 8079, 8080, 3, 55, 27, 0, 8080, 1492, 1, 0, 0, 0, 8081, 8082, 3, 37, 18, 0, 8082, 8083, 3, 35, 17, 0, 8083, 8084, 3, 29, 14, 0, 8084, 8085, 3, 23, 11, 0, 8085, 8086, 3, 11, 5, 0, 8086, 8087, 3, 55, 27, 0, 8087, 1494, 1, 0, 0, 0, 8088, 8089, 3, 35, 17, 0, 8089, 8090, 3, 51, 25, 0, 8090, 8091, 3, 33, 16, 0, 8091, 8092, 3, 15, 7, 0, 8092, 8093, 3, 13, 6, 0, 8093, 1496, 1, 0, 0, 0, 8094, 8095, 3, 7, 3, 0, 8095, 8096, 3, 9, 4, 0, 8096, 8097, 3, 43, 21, 0, 8097, 8098, 3, 45, 22, 0, 8098, 8099, 3, 23, 11, 0, 8099, 8100, 3, 31, 15, 0, 8100, 8101, 3, 15, 7, 0, 8101, 1498, 1, 0, 0, 0, 8102, 8103, 3, 9, 4, 0, 8103, 8104, 3, 23, 11, 0, 8104, 8105, 3, 19, 9, 0, 8105, 8106, 3, 43, 21, 0, 8106, 8107, 3, 15, 7, 0, 8107, 8108, 3, 41, 20, 0, 8108, 8109, 3, 23, 11, 0, 8109, 8110, 3, 7, 3, 0, 8110, 8111, 3, 29, 14, 0, 8111, 1500, 1, 0, 0, 0, 8112, 8113, 3, 9, 4, 0, 8113, 8114, 3, 23, 11, 0, 8114, 8115, 3, 45, 22, 0, 8115, 8116, 5, 32, 0, 0, 8116, 8117, 3, 49, 24, 0, 8117, 8118, 3, 7, 3, 0, 8118, 8119, 3, 41, 20, 0, 8119, 8120, 3, 55, 27, 0, 8120, 8121, 3, 23, 11, 0, 8121, 8122, 3, 33, 16, 0, 8122, 8123, 3, 19, 9, 0, 8123, 1502, 1, 0, 0, 0, 8124, 8125, 3, 9, 4, 0, 8125, 8126, 3, 35, 17, 0, 8126, 8127, 3, 35, 17, 0, 8127, 8128, 3, 29, 14, 0, 8128, 1504, 1, 0, 0, 0, 8129, 8130, 3, 9, 4, 0, 8130, 8131, 3, 35, 17, 0, 8131, 8132, 3, 53, 26, 0, 8132, 1506, 1, 0, 0, 0, 8133, 8134, 3, 9, 4, 0, 8134, 8135, 3, 55, 27, 0, 8135, 8136, 3, 45, 22, 0, 8136, 8137, 3, 15, 7, 0, 8137, 8138, 3, 7, 3, 0, 8138, 1508, 1, 0, 0, 0, 8139, 8140, 3, 11, 5, 0, 8140, 8141, 3, 21, 10, 0, 8141, 8142, 3, 7, 3, 0, 8142, 8143, 3, 41, 20, 0, 8143, 8144, 3, 7, 3, 0, 8144, 8145, 3, 11, 5, 0, 8145, 8146, 3, 45, 22, 0, 8146, 8147, 3, 15, 7, 0, 8147, 8148, 3, 41, 20, 0, 8148, 8149, 5, 32, 0, 0, 8149, 8150, 3, 49, 24, 0, 8150, 8151, 3, 7, 3, 0, 8151, 8152, 3, 41, 20, 0, 8152, 8153, 3, 55, 27, 0, 8153, 8154, 3, 23, 11, 0, 8154, 8155, 3, 33, 16, 0, 8155, 8156, 3, 19, 9, 0, 8156, 1510, 1, 0, 0, 0, 8157, 8158, 3, 11, 5, 0, 8158, 8159, 3, 23, 11, 0, 8159, 8160, 3, 13, 6, 0, 8160, 8161, 3, 41, 20, 0, 8161, 1512, 1, 0, 0, 0, 8162, 8163, 3, 11, 5, 0, 8163, 8164, 3, 23, 11, 0, 8164, 8165, 3, 41, 20, 0, 8165, 8166, 3, 11, 5, 0, 8166, 8167, 3, 29, 14, 0, 8167, 8168, 3, 15, 7, 0, 8168, 1514, 1, 0, 0, 0, 8169, 8170, 3, 17, 8, 0, 8170, 8171, 3, 29, 14, 0, 8171, 8172, 3, 35, 17, 0, 8172, 8173, 3, 7, 3, 0, 8173, 8174, 3, 45, 22, 0, 8174, 8175, 5, 52, 0, 0, 8175, 1516, 1, 0, 0, 0, 8176, 8177, 3, 17, 8, 0, 8177, 8178, 3, 29, 14, 0, 8178, 8179, 3, 35, 17, 0, 8179, 8180, 3, 7, 3, 0, 8180, 8181, 3, 45, 22, 0, 8181, 8182, 5, 56, 0, 0, 8182, 1518, 1, 0, 0, 0, 8183, 8184, 3, 23, 11, 0, 8184, 8185, 3, 33, 16, 0, 8185, 8186, 3, 15, 7, 0, 8186, 8187, 3, 45, 22, 0, 8187, 1520, 1, 0, 0, 0, 8188, 8189, 3, 23, 11, 0, 8189, 8190, 3, 33, 16, 0, 8190, 8191, 3, 45, 22, 0, 8191, 8192, 5, 50, 0, 0, 8192, 1522, 1, 0, 0, 0, 8193, 8194, 3, 23, 11, 0, 8194, 8195, 3, 33, 16, 0, 8195, 8196, 3, 45, 22, 0, 8196, 8197, 5, 52, 0, 0, 8197, 1524, 1, 0, 0, 0, 8198, 8199, 3, 23, 11, 0, 8199, 8200, 3, 33, 16, 0, 8200, 8201, 3, 45, 22, 0, 8201, 8202, 5, 56, 0, 0, 8202, 1526, 1, 0, 0, 0, 8203, 8204, 3, 25, 12, 0, 8204, 8205, 3, 43, 21, 0, 8205, 8206, 3, 35, 17, 0, 8206, 8207, 3, 33, 16, 0, 8207, 1528, 1, 0, 0, 0, 8208, 8209, 3, 25, 12, 0, 8209, 8210, 3, 43, 21, 0, 8210, 8211, 3, 35, 17, 0, 8211, 8212, 3, 33, 16, 0, 8212, 8213, 3, 9, 4, 0, 8213, 1530, 1, 0, 0, 0, 8214, 8215, 3, 29, 14, 0, 8215, 8216, 3, 23, 11, 0, 8216, 8217, 3, 33, 16, 0, 8217, 8218, 3, 15, 7, 0, 8218, 1532, 1, 0, 0, 0, 8219, 8220, 3, 29, 14, 0, 8220, 8221, 3, 43, 21, 0, 8221, 8222, 3, 15, 7, 0, 8222, 8223, 3, 19, 9, 0, 8223, 1534, 1, 0, 0, 0, 8224, 8225, 3, 31, 15, 0, 8225, 8226, 3, 7, 3, 0, 8226, 8227, 3, 11, 5, 0, 8227, 8228, 3, 7, 3, 0, 8228, 8229, 3, 13, 6, 0, 8229, 8230, 3, 13, 6, 0, 8230, 8231, 3, 41, 20, 0, 8231, 1536, 1, 0, 0, 0, 8232, 8233, 3, 31, 15, 0, 8233, 8234, 3, 7, 3, 0, 8234, 8235, 3, 11, 5, 0, 8235, 8236, 3, 7, 3, 0, 8236, 8237, 3, 13, 6, 0, 8237, 8238, 3, 13, 6, 0, 8238, 8239, 3, 41, 20, 0, 8239, 8240, 5, 56, 0, 0, 8240, 1538, 1, 0, 0, 0, 8241, 8242, 3, 31, 15, 0, 8242, 8243, 3, 35, 17, 0, 8243, 8244, 3, 33, 16, 0, 8244, 8245, 3, 15, 7, 0, 8245, 8246, 3, 55, 27, 0, 8246, 1540, 1, 0, 0, 0, 8247, 8248, 3, 37, 18, 0, 8248, 8249, 3, 19, 9, 0, 8249, 8250, 5, 95, 0, 0, 8250, 8251, 3, 29, 14, 0, 8251, 8252, 3, 43, 21, 0, 8252, 8253, 3, 33, 16, 0, 8253, 1542, 1, 0, 0, 0, 8254, 8255, 3, 37, 18, 0, 8255, 8256, 3, 35, 17, 0, 8256, 8257, 3, 23, 11, 0, 8257, 8258, 3, 33, 16, 0, 8258, 8259, 3, 45, 22, 0, 8259, 1544, 1, 0, 0, 0, 8260, 8261, 3, 37, 18, 0, 8261, 8262, 3, 35, 17, 0, 8262, 8263, 3, 29, 14, 0, 8263, 8264, 3, 55, 27, 0, 8264, 8265, 3, 19, 9, 0, 8265, 8266, 3, 35, 17, 0, 8266, 8267, 3, 33, 16, 0, 8267, 1546, 1, 0, 0, 0, 8268, 8269, 3, 41, 20, 0, 8269, 8270, 3, 15, 7, 0, 8270, 8271, 3, 29, 14, 0, 8271, 8272, 3, 45, 22, 0, 8272, 8273, 3, 23, 11, 0, 8273, 8274, 3, 31, 15, 0, 8274, 8275, 3, 15, 7, 0, 8275, 1548, 1, 0, 0, 0, 8276, 8277, 3, 43, 21, 0, 8277, 8278, 3, 15, 7, 0, 8278, 8279, 3, 41, 20, 0, 8279, 8280, 3, 23, 11, 0, 8280, 8281, 3, 7, 3, 0, 8281, 8282, 3, 29, 14, 0, 8282, 1550, 1, 0, 0, 0, 8283, 8284, 3, 43, 21, 0, 8284, 8285, 3, 15, 7, 0, 8285, 8286, 3, 41, 20, 0, 8286, 8287, 3, 23, 11, 0, 8287, 8288, 3, 7, 3, 0, 8288, 8289, 3, 29, 14, 0, 8289, 8290, 5, 50, 0, 0, 8290, 1552, 1, 0, 0, 0, 8291, 8292, 3, 43, 21, 0, 8292, 8293, 3, 15, 7, 0, 8293, 8294, 3, 41, 20, 0, 8294, 8295, 3, 23, 11, 0, 8295, 8296, 3, 7, 3, 0, 8296, 8297, 3, 29, 14, 0, 8297, 8298, 5, 52, 0, 0, 8298, 1554, 1, 0, 0, 0, 8299, 8300, 3, 43, 21, 0, 8300, 8301, 3, 15, 7, 0, 8301, 8302, 3, 41, 20, 0, 8302, 8303, 3, 23, 11, 0, 8303, 8304, 3, 7, 3, 0, 8304, 8305, 3, 29, 14, 0, 8305, 8306, 5, 56, 0, 0, 8306, 1556, 1, 0, 0, 0, 8307, 8308, 3, 43, 21, 0, 8308, 8309, 3, 31, 15, 0, 8309, 8310, 3, 7, 3, 0, 8310, 8311, 3, 29, 14, 0, 8311, 8312, 3, 29, 14, 0, 8312, 8313, 3, 43, 21, 0, 8313, 8314, 3, 15, 7, 0, 8314, 8315, 3, 41, 20, 0, 8315, 8316, 3, 23, 11, 0, 8316, 8317, 3, 7, 3, 0, 8317, 8318, 3, 29, 14, 0, 8318, 1558, 1, 0, 0, 0, 8319, 8320, 3, 43, 21, 0, 8320, 8321, 3, 45, 22, 0, 8321, 8322, 3, 43, 21, 0, 8322, 8323, 3, 45, 22, 0, 8323, 8324, 3, 15, 7, 0, 8324, 8325, 3, 31, 15, 0, 8325, 1560, 1, 0, 0, 0, 8326, 8327, 3, 45, 22, 0, 8327, 8328, 3, 15, 7, 0, 8328, 8329, 3, 53, 26, 0, 8329, 8330, 3, 45, 22, 0, 8330, 1562, 1, 0, 0, 0, 8331, 8332, 3, 45, 22, 0, 8332, 8333, 3, 23, 11, 0, 8333, 8334, 3, 31, 15, 0, 8334, 8335, 3, 15, 7, 0, 8335, 8336, 3, 43, 21, 0, 8336, 8337, 3, 45, 22, 0, 8337, 8338, 3, 7, 3, 0, 8338, 8339, 3, 31, 15, 0, 8339, 8340, 3, 37, 18, 0, 8340, 8341, 3, 45, 22, 0, 8341, 8342, 3, 57, 28, 0, 8342, 1564, 1, 0, 0, 0, 8343, 8344, 3, 45, 22, 0, 8344, 8345, 3, 23, 11, 0, 8345, 8346, 3, 31, 15, 0, 8346, 8347, 3, 15, 7, 0, 8347, 8348, 3, 45, 22, 0, 8348, 8349, 3, 57, 28, 0, 8349, 1566, 1, 0, 0, 0, 8350, 8351, 3, 45, 22, 0, 8351, 8352, 3, 43, 21, 0, 8352, 8353, 3, 39, 19, 0, 8353, 8354, 3, 47, 23, 0, 8354, 8355, 3, 15, 7, 0, 8355, 8356, 3, 41, 20, 0, 8356, 8357, 3, 55, 27, 0, 8357, 1568, 1, 0, 0, 0, 8358, 8359, 3, 45, 22, 0, 8359, 8360, 3, 43, 21, 0, 8360, 8361, 3, 49, 24, 0, 8361, 8362, 3, 15, 7, 0, 8362, 8363, 3, 11, 5, 0, 8363, 8364, 3, 45, 22, 0, 8364, 8365, 3, 35, 17, 0, 8365, 8366, 3, 41, 20, 0, 8366, 1570, 1, 0, 0, 0, 8367, 8368, 3, 45, 22, 0, 8368, 8369, 3, 53, 26, 0, 8369, 8370, 3, 23, 11, 0, 8370, 8371, 3, 13, 6, 0, 8371, 8372, 5, 95, 0, 0, 8372, 8373, 3, 43, 21, 0, 8373, 8374, 3, 33, 16, 0, 8374, 8375, 3, 7, 3, 0, 8375, 8376, 3, 37, 18, 0, 8376, 8377, 3, 43, 21, 0, 8377, 8378, 3, 21, 10, 0, 8378, 8379, 3, 35, 17, 0, 8379, 8380, 3, 45, 22, 0, 8380, 1572, 1, 0, 0, 0, 8381, 8382, 3, 47, 23, 0, 8382, 8383, 3, 47, 23, 0, 8383, 8384, 3, 23, 11, 0, 8384, 8385, 3, 13, 6, 0, 8385, 1574, 1, 0, 0, 0, 8386, 8387, 3, 49, 24, 0, 8387, 8388, 3, 7, 3, 0, 8388, 8389, 3, 41, 20, 0, 8389, 8390, 3, 9, 4, 0, 8390, 8391, 3, 23, 11, 0, 8391, 8392, 3, 45, 22, 0, 8392, 1576, 1, 0, 0, 0, 8393, 8394, 3, 53, 26, 0, 8394, 8395, 3, 31, 15, 0, 8395, 8396, 3, 29, 14, 0, 8396, 1578, 1, 0, 0, 0, 8397, 8398, 5, 44, 0, 0, 8398, 1580, 1, 0, 0, 0, 8399, 8400, 5, 58, 0, 0, 8400, 1582, 1, 0, 0, 0, 8401, 8402, 5, 58, 0, 0, 8402, 8403, 5, 58, 0, 0, 8403, 1584, 1, 0, 0, 0, 8404, 8405, 5, 36, 0, 0, 8405, 1586, 1, 0, 0, 0, 8406, 8407, 5, 36, 0, 0, 8407, 8408, 5, 36, 0, 0, 8408, 1588, 1, 0, 0, 0, 8409, 8410, 5, 42, 0, 0, 8410, 1590, 1, 0, 0, 0, 8411, 8412, 5, 40, 0, 0, 8412, 1592, 1, 0, 0, 0, 8413, 8414, 5, 41, 0, 0, 8414, 1594, 1, 0, 0, 0, 8415, 8416, 5, 91, 0, 0, 8416, 1596, 1, 0, 0, 0, 8417, 8418, 5, 93, 0, 0, 8418, 1598, 1, 0, 0, 0, 8419, 8420, 3, 9, 4, 0, 8420, 8424, 5, 39, 0, 0, 8421, 8423, 2, 48, 49, 0, 8422, 8421, 1, 0, 0, 0, 8423, 8426, 1, 0, 0, 0, 8424, 8422, 1, 0, 0, 0, 8424, 8425, 1, 0, 0, 0, 8425, 8427, 1, 0, 0, 0, 8426, 8424, 1, 0, 0, 0, 8427, 8428, 5, 39, 0, 0, 8428, 1600, 1, 0, 0, 0, 8429, 8430, 3, 15, 7, 0, 8430, 8431, 3, 65, 32, 0, 8431, 1602, 1, 0, 0, 0, 8432, 8434, 5, 45, 0, 0, 8433, 8432, 1, 0, 0, 0, 8433, 8434, 1, 0, 0, 0, 8434, 8436, 1, 0, 0, 0, 8435, 8437, 3, 61, 30, 0, 8436, 8435, 1, 0, 0, 0, 8437, 8438, 1, 0, 0, 0, 8438, 8436, 1, 0, 0, 0, 8438, 8439, 1, 0, 0, 0, 8439, 8440, 1, 0, 0, 0, 8440, 8442, 5, 46, 0, 0, 8441, 8443, 3, 61, 30, 0, 8442, 8441, 1, 0, 0, 0, 8443, 8444, 1, 0, 0, 0, 8444, 8442, 1, 0, 0, 0, 8444, 8445, 1, 0, 0, 0, 8445, 8458, 1, 0, 0, 0, 8446, 8450, 3, 15, 7, 0, 8447, 8449, 5, 45, 0, 0, 8448, 8447, 1, 0, 0, 0, 8449, 8452, 1, 0, 0, 0, 8450, 8448, 1, 0, 0, 0, 8450, 8451, 1, 0, 0, 0, 8451, 8454, 1, 0, 0, 0, 8452, 8450, 1, 0, 0, 0, 8453, 8455, 3, 61, 30, 0, 8454, 8453, 1, 0, 0, 0, 8455, 8456, 1, 0, 0, 0, 8456, 8454, 1, 0, 0, 0, 8456, 8457, 1, 0, 0, 0, 8457, 8459, 1, 0, 0, 0, 8458, 8446, 1, 0, 0, 0, 8458, 8459, 1, 0, 0, 0, 8459, 1604, 1, 0, 0, 0, 8460, 8462, 5, 45, 0, 0, 8461, 8460, 1, 0, 0, 0, 8461, 8462, 1, 0, 0, 0, 8462, 8464, 1, 0, 0, 0, 8463, 8465, 3, 61, 30, 0, 8464, 8463, 1, 0, 0, 0, 8465, 8466, 1, 0, 0, 0, 8466, 8464, 1, 0, 0, 0, 8466, 8467, 1, 0, 0, 0, 8467, 8474, 1, 0, 0, 0, 8468, 8470, 3, 15, 7, 0, 8469, 8471, 3, 61, 30, 0, 8470, 8469, 1, 0, 0, 0, 8471, 8472, 1, 0, 0, 0, 8472, 8470, 1, 0, 0, 0, 8472, 8473, 1, 0, 0, 0, 8473, 8475, 1, 0, 0, 0, 8474, 8468, 1, 0, 0, 0, 8474, 8475, 1, 0, 0, 0, 8475, 1606, 1, 0, 0, 0, 8476, 8477, 5, 120, 0, 0, 8477, 8478, 3, 65, 32, 0, 8478, 1608, 1, 0, 0, 0, 8479, 8480, 5, 46, 0, 0, 8480, 1610, 1, 0, 0, 0, 8481, 8482, 3, 65, 32, 0, 8482, 1612, 1, 0, 0, 0, 8483, 8484, 3, 63, 31, 0, 8484, 1614, 1, 0, 0, 0, 8485, 8489, 7, 32, 0, 0, 8486, 8488, 7, 33, 0, 0, 8487, 8486, 1, 0, 0, 0, 8488, 8491, 1, 0, 0, 0, 8489, 8487, 1, 0, 0, 0, 8489, 8490, 1, 0, 0, 0, 8490, 1616, 1, 0, 0, 0, 8491, 8489, 1, 0, 0, 0, 8492, 8494, 5, 36, 0, 0, 8493, 8495, 3, 61, 30, 0, 8494, 8493, 1, 0, 0, 0, 8495, 8496, 1, 0, 0, 0, 8496, 8494, 1, 0, 0, 0, 8496, 8497, 1, 0, 0, 0, 8497, 1618, 1, 0, 0, 0, 8498, 8502, 7, 34, 0, 0, 8499, 8501, 7, 35, 0, 0, 8500, 8499, 1, 0, 0, 0, 8501, 8504, 1, 0, 0, 0, 8502, 8500, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 1620, 1, 0, 0, 0, 8504, 8502, 1, 0, 0, 0, 8505, 8506, 5, 38, 0, 0, 8506, 1622, 1, 0, 0, 0, 8507, 8508, 5, 38, 0, 0, 8508, 8509, 5, 38, 0, 0, 8509, 1624, 1, 0, 0, 0, 8510, 8511, 5, 38, 0, 0, 8511, 8512, 5, 60, 0, 0, 8512, 1626, 1, 0, 0, 0, 8513, 8514, 5, 64, 0, 0, 8514, 8515, 5, 64, 0, 0, 8515, 1628, 1, 0, 0, 0, 8516, 8517, 5, 64, 0, 0, 8517, 8518, 5, 62, 0, 0, 8518, 1630, 1, 0, 0, 0, 8519, 8520, 5, 64, 0, 0, 8520, 1632, 1, 0, 0, 0, 8521, 8522, 5, 33, 0, 0, 8522, 1634, 1, 0, 0, 0, 8523, 8524, 5, 33, 0, 0, 8524, 8525, 5, 33, 0, 0, 8525, 1636, 1, 0, 0, 0, 8526, 8527, 5, 33, 0, 0, 8527, 8528, 5, 61, 0, 0, 8528, 1638, 1, 0, 0, 0, 8529, 8530, 5, 94, 0, 0, 8530, 1640, 1, 0, 0, 0, 8531, 8532, 5, 61, 0, 0, 8532, 1642, 1, 0, 0, 0, 8533, 8534, 5, 61, 0, 0, 8534, 8535, 5, 62, 0, 0, 8535, 1644, 1, 0, 0, 0, 8536, 8537, 5, 62, 0, 0, 8537, 1646, 1, 0, 0, 0, 8538, 8539, 5, 62, 0, 0, 8539, 8540, 5, 61, 0, 0, 8540, 1648, 1, 0, 0, 0, 8541, 8542, 5, 62, 0, 0, 8542, 8543, 5, 62, 0, 0, 8543, 1650, 1, 0, 0, 0, 8544, 8545, 5, 35, 0, 0, 8545, 1652, 1, 0, 0, 0, 8546, 8547, 5, 35, 0, 0, 8547, 8548, 5, 61, 0, 0, 8548, 1654, 1, 0, 0, 0, 8549, 8550, 5, 35, 0, 0, 8550, 8551, 5, 62, 0, 0, 8551, 1656, 1, 0, 0, 0, 8552, 8553, 5, 35, 0, 0, 8553, 8554, 5, 62, 0, 0, 8554, 8555, 5, 62, 0, 0, 8555, 1658, 1, 0, 0, 0, 8556, 8557, 5, 35, 0, 0, 8557, 8558, 5, 35, 0, 0, 8558, 1660, 1, 0, 0, 0, 8559, 8560, 5, 45, 0, 0, 8560, 8561, 5, 62, 0, 0, 8561, 1662, 1, 0, 0, 0, 8562, 8563, 5, 45, 0, 0, 8563, 8564, 5, 62, 0, 0, 8564, 8565, 5, 62, 0, 0, 8565, 1664, 1, 0, 0, 0, 8566, 8567, 5, 45, 0, 0, 8567, 8568, 5, 124, 0, 0, 8568, 8569, 5, 45, 0, 0, 8569, 1666, 1, 0, 0, 0, 8570, 8571, 5, 60, 0, 0, 8571, 1668, 1, 0, 0, 0, 8572, 8573, 5, 60, 0, 0, 8573, 8574, 5, 61, 0, 0, 8574, 1670, 1, 0, 0, 0, 8575, 8576, 5, 60, 0, 0, 8576, 8577, 5, 64, 0, 0, 8577, 1672, 1, 0, 0, 0, 8578, 8579, 5, 60, 0, 0, 8579, 8580, 5, 94, 0, 0, 8580, 1674, 1, 0, 0, 0, 8581, 8582, 5, 60, 0, 0, 8582, 8583, 5, 62, 0, 0, 8583, 1676, 1, 0, 0, 0, 8584, 8585, 5, 60, 0, 0, 8585, 8586, 5, 45, 0, 0, 8586, 8587, 5, 62, 0, 0, 8587, 1678, 1, 0, 0, 0, 8588, 8589, 5, 60, 0, 0, 8589, 8590, 5, 60, 0, 0, 8590, 1680, 1, 0, 0, 0, 8591, 8592, 5, 60, 0, 0, 8592, 8593, 5, 60, 0, 0, 8593, 8594, 5, 61, 0, 0, 8594, 1682, 1, 0, 0, 0, 8595, 8596, 5, 60, 0, 0, 8596, 8597, 5, 63, 0, 0, 8597, 8598, 5, 62, 0, 0, 8598, 1684, 1, 0, 0, 0, 8599, 8600, 5, 45, 0, 0, 8600, 1686, 1, 0, 0, 0, 8601, 8602, 5, 37, 0, 0, 8602, 1688, 1, 0, 0, 0, 8603, 8604, 5, 124, 0, 0, 8604, 1690, 1, 0, 0, 0, 8605, 8606, 5, 124, 0, 0, 8606, 8607, 5, 124, 0, 0, 8607, 1692, 1, 0, 0, 0, 8608, 8609, 5, 124, 0, 0, 8609, 8610, 5, 124, 0, 0, 8610, 8611, 5, 47, 0, 0, 8611, 1694, 1, 0, 0, 0, 8612, 8613, 5, 124, 0, 0, 8613, 8614, 5, 47, 0, 0, 8614, 1696, 1, 0, 0, 0, 8615, 8616, 5, 43, 0, 0, 8616, 1698, 1, 0, 0, 0, 8617, 8618, 5, 63, 0, 0, 8618, 1700, 1, 0, 0, 0, 8619, 8620, 5, 63, 0, 0, 8620, 8621, 5, 38, 0, 0, 8621, 1702, 1, 0, 0, 0, 8622, 8623, 5, 63, 0, 0, 8623, 8624, 5, 35, 0, 0, 8624, 1704, 1, 0, 0, 0, 8625, 8626, 5, 63, 0, 0, 8626, 8627, 5, 45, 0, 0, 8627, 1706, 1, 0, 0, 0, 8628, 8629, 5, 63, 0, 0, 8629, 8630, 5, 124, 0, 0, 8630, 1708, 1, 0, 0, 0, 8631, 8632, 5, 47, 0, 0, 8632, 1710, 1, 0, 0, 0, 8633, 8634, 5, 126, 0, 0, 8634, 1712, 1, 0, 0, 0, 8635, 8636, 5, 126, 0, 0, 8636, 8637, 5, 61, 0, 0, 8637, 1714, 1, 0, 0, 0, 8638, 8639, 5, 126, 0, 0, 8639, 8640, 5, 62, 0, 0, 8640, 8641, 5, 61, 0, 0, 8641, 8642, 5, 126, 0, 0, 8642, 1716, 1, 0, 0, 0, 8643, 8644, 5, 126, 0, 0, 8644, 8645, 5, 62, 0, 0, 8645, 8646, 5, 126, 0, 0, 8646, 1718, 1, 0, 0, 0, 8647, 8648, 5, 126, 0, 0, 8648, 8649, 5, 60, 0, 0, 8649, 8650, 5, 61, 0, 0, 8650, 8651, 5, 126, 0, 0, 8651, 1720, 1, 0, 0, 0, 8652, 8653, 5, 126, 0, 0, 8653, 8654, 5, 60, 0, 0, 8654, 8655, 5, 126, 0, 0, 8655, 1722, 1, 0, 0, 0, 8656, 8657, 5, 126, 0, 0, 8657, 8658, 5, 42, 0, 0, 8658, 1724, 1, 0, 0, 0, 8659, 8660, 5, 126, 0, 0, 8660, 8661, 5, 126, 0, 0, 8661, 1726, 1, 0, 0, 0, 8662, 8663, 5, 59, 0, 0, 8663, 1728, 1, 0, 0, 0, 24, 0, 1732, 1742, 1756, 1825, 1827, 1838, 1840, 1851, 1853, 8424, 8433, 8438, 8444, 8450, 8456, 8458, 8461, 8466, 8472, 8474, 8489, 8496, 8502, 2, 6, 0, 0, 0, 1, 0] \ No newline at end of file diff --git a/gen/PostgreSQLLexer.java b/gen/PostgreSQLLexer.java new file mode 100644 index 0000000..c481088 --- /dev/null +++ b/gen/PostgreSQLLexer.java @@ -0,0 +1,6179 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class PostgreSQLLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + WHITESPACE=1, BLOCK_COMMENT=2, LINE_COMMENT=3, A_=4, ABORT=5, ABS=6, ABSOLUTE=7, + ACCESS=8, ACTION=9, ADA=10, ADD=11, ADMIN=12, AFTER=13, AGGREGATE=14, + ALIAS=15, ALL=16, ALLOCATE=17, ALSO=18, ALTER=19, ALWAYS=20, ANALYSE=21, + ANALYZE=22, AND=23, ANY=24, ARE=25, ARRAY=26, AS=27, ASC=28, ASENSITIVE=29, + ASSERTION=30, ASSIGNMENT=31, ASYMMETRIC=32, AT=33, ATOMIC=34, ATTRIBUTE=35, + ATTRIBUTES=36, AUTHORIZATION=37, AVG=38, BACKWARD=39, BEFORE=40, BEGIN=41, + BERNOULLI=42, BETWEEN=43, BIGINT=44, BINARY=45, BIT=46, BIT_LENGTH=47, + BITVAR=48, BLOB=49, BOOLEAN=50, BOTH=51, BREADTH=52, BUFFERS=53, BY=54, + C_=55, CACHE=56, CALL=57, CALLED=58, CARDINALITY=59, CASCADE=60, CASCADED=61, + CASE=62, CAST=63, CATALOG=64, CATALOG_NAME=65, CEIL=66, CEILING=67, CHAIN=68, + CHAR=69, CHAR_LENGTH=70, CHARACTER=71, CHARACTER_LENGTH=72, CHARACTER_SET_CATALOG=73, + CHARACTER_SET_NAME=74, CHARACTER_SET_SCHEMA=75, CHARACTERISTICS=76, CHARACTERS=77, + CHECK=78, CHECKED=79, CHECKPOINT=80, CLASS=81, CLASS_ORIGIN=82, CLOB=83, + CLOSE=84, CLUSTER=85, COALESCE=86, COBOL=87, COLLATE=88, COLLATION=89, + COLLATION_CATALOG=90, COLLATION_NAME=91, COLLATION_SCHEMA=92, COLLECT=93, + COLUMN=94, COLUMN_NAME=95, COMMAND_FUNCTION=96, COMMAND_FUNCTION_CODE=97, + COMMENT=98, COMMIT=99, COMMITTED=100, COMPLETION=101, CONDITION=102, CONDITION_NUMBER=103, + CONFIGURATION=104, CONFLICT=105, CONNECT=106, CONNECTION=107, CONNECTION_NAME=108, + CONSTRAINT=109, CONSTRAINT_CATALOG=110, CONSTRAINT_NAME=111, CONSTRAINT_SCHEMA=112, + CONSTRAINTS=113, CONSTRUCTOR=114, CONTAINS=115, CONTINUE=116, CONVERSION=117, + CONVERT=118, COPY=119, CORR=120, CORRESPONDING=121, COSTS=122, COUNT=123, + COVAR_POP=124, COVAR_SAMP=125, CREATE=126, CREATEDB=127, CREATEUSER=128, + CROSS=129, CSV=130, CUBE=131, CUME_DIST=132, CURRENT=133, CURRENT_DATE=134, + CURRENT_DEFAULT_TRANSFORM_GROUP=135, CURRENT_PATH=136, CURRENT_ROLE=137, + CURRENT_TIME=138, CURRENT_TIMESTAMP=139, CURRENT_TRANSFORM_GROUP_FOR_TYPE=140, + CURRENT_USER=141, CURSOR=142, CURSOR_NAME=143, CYCLE=144, DATA=145, DATABASE=146, + DATE=147, DATETIME_INTERVAL_CODE=148, DATETIME_INTERVAL_PRECISION=149, + DAY=150, DEALLOCATE=151, DEC=152, DECIMAL=153, DECLARE=154, DEFAULT=155, + DEFAULTS=156, DEFERABLE=157, DEFERRABLE=158, DEFERRED=159, DEFINED=160, + DEFINER=161, DEGREE=162, DELETE=163, DELIMITER=164, DELIMITERS=165, DENSE_RANK=166, + DEPENDS=167, DEPTH=168, DEREF=169, DERIVED=170, DESC=171, DESCRIBE=172, + DESCRIPTOR=173, DESTROY=174, DESTRUCTOR=175, DETERMINISTIC=176, DIAGNOSTICS=177, + DICTIONARY=178, DISABLE_P=179, DISABLE_PAGE_SKIPPING=180, DISCARD=181, + DISCONNECT=182, DISPATCH=183, DISTINCT=184, DO=185, DOMAIN=186, DOUBLE=187, + DROP=188, DYNAMIC=189, DYNAMIC_FUNCTION=190, DYNAMIC_FUNCTION_CODE=191, + EACH=192, ELEMENT=193, ELSE=194, ENABLE=195, ENCODING=196, ENCRYPTED=197, + END=198, END_EXEC=199, EQUALS=200, ESCAPE=201, EVERY=202, EXCEPT=203, + EXCEPTION=204, EXCLUDE=205, EXCLUDING=206, EXCLUSIVE=207, EXEC=208, EXECUTE=209, + EXISTING=210, EXISTS=211, EXP=212, EXPLAIN=213, EXTENDED=214, EXTENSION=215, + EXTERNAL=216, EXTRACT=217, FALSE=218, FETCH=219, FIELDS=220, FILTER=221, + FINAL=222, FIRST=223, FLOAT=224, FLOOR=225, FOLLOWING=226, FOR=227, FORCE=228, + FOREIGN=229, FORMAT=230, FORTRAN=231, FORWARD=232, FOUND=233, FREE=234, + FREEZE=235, FROM=236, FULL=237, FUNCTION=238, FUSION=239, G_=240, GENERAL=241, + GENERATED=242, GET=243, GLOBAL=244, GO=245, GOTO=246, GRANT=247, GRANTED=248, + GREATEST=249, GROUP=250, GROUPING=251, HANDLER=252, HAVING=253, HIERARCHY=254, + HOLD=255, HOST=256, HOUR=257, IDENTITY=258, IGNORE=259, ILIKE=260, IMMEDIATE=261, + IMMUTABLE=262, IMPLEMENTATION=263, IMPLICIT=264, IN=265, INCLUDING=266, + INCREMENT=267, INDEX=268, INDICATOR=269, INFIX=270, INHERITS=271, INITIALIZE=272, + INITIALLY=273, INNER=274, INOUT=275, INPUT=276, INSENSITIVE=277, INSERT=278, + INSTANCE=279, INSTANTIABLE=280, INSTEAD=281, INT=282, INTEGER=283, INTERSECT=284, + INTERSECTION=285, INTERVAL=286, INTO=287, INVOKER=288, IS=289, ISOLATION=290, + ITERATE=291, JOIN=292, K_=293, KEY=294, KEY_MEMBER=295, KEY_TYPE=296, + LABEL=297, LANCOMPILER=298, LANGUAGE=299, LARGE=300, LAST=301, LATERAL=302, + LEADING=303, LEAST=304, LEFT=305, LENGTH=306, LESS=307, LEVEL=308, LIKE=309, + LIMIT=310, LISTEN=311, LN=312, LOAD=313, LOCAL=314, LOCALTIME=315, LOCALTIMESTAMP=316, + LOCATION=317, LOCATOR=318, LOCK=319, LOCKED=320, LOWER=321, M_=322, MAIN=323, + MAP=324, MAPPING=325, MATCH=326, MATCH_SIMPLE=327, MATCHED=328, MAX=329, + MAXVALUE=330, MEMBER=331, MERGE=332, MESSAGE_LENGTH=333, MESSAGE_OCTET_LENGTH=334, + MESSAGE_TEXT=335, METHOD=336, MIN=337, MINUTE=338, MINVALUE=339, MOD=340, + MODE=341, MODIFIES=342, MODIFY=343, MODULE=344, MONTH=345, MORE_=346, + MOVE=347, MULTISET=348, MUMPS=349, NAME=350, NAMES=351, NATIONAL=352, + NATURAL=353, NCHAR=354, NCLOB=355, NESTING=356, NEW=357, NEXT=358, NO=359, + NOCREATEDB=360, NOCREATEUSER=361, NONE=362, NORMALIZE=363, NORMALIZED=364, + NOT=365, NOTHING=366, NOTIFY=367, NOTNULL=368, NOWAIT=369, NULL=370, NULLABLE=371, + NULLIF=372, NULLS=373, NUMBER=374, NUMERIC=375, OBJECT=376, OCTET_LENGTH=377, + OCTETS=378, OF=379, OFF=380, OFFSET=381, OIDS=382, OLD=383, ON=384, ONLY=385, + OPEN=386, OPERATION=387, OPERATOR=388, OPTION=389, OPTIONS=390, OR=391, + ORDER=392, ORDERING=393, ORDINALITY=394, OTHERS=395, OUT=396, OUTER=397, + OUTPUT=398, OVER=399, OVERLAPS=400, OVERLAY=401, OVERRIDING=402, OWNER=403, + PAD=404, PARAMETER=405, PARAMETER_MODE=406, PARAMETER_NAME=407, PARAMETER_ORDINAL_POSITION=408, + PARAMETER_SPECIFIC_CATALOG=409, PARAMETER_SPECIFIC_NAME=410, PARAMETER_SPECIFIC_SCHEMA=411, + PARAMETERS=412, PARSER=413, PARTIAL=414, PARTITION=415, PASCAL=416, PASSWORD=417, + PATH=418, PERCENT_RANK=419, PERCENTILE_CONT=420, PERCENTILE_DISC=421, + PLACING=422, PLAIN=423, PLANS=424, PLI=425, POSITION=426, POSTFIX=427, + POWER=428, PRECEDING=429, PRECISION=430, PREFIX=431, PREORDER=432, PREPARE=433, + PREPARED=434, PRESERVE=435, PRIMARY=436, PRIOR=437, PRIVILEGES=438, PROCEDURAL=439, + PROCEDURE=440, PUBLIC=441, PUBLICATION=442, QUOTE=443, RANGE=444, RANK=445, + READ=446, READS=447, REAL=448, REASSIGN=449, RECHECK=450, RECURSIVE=451, + REF=452, REFERENCES=453, REFERENCING=454, REFRESH=455, REGR_AVGX=456, + REGR_AVGY=457, REGR_COUNT=458, REGR_INTERCEPT=459, REGR_R2=460, REGR_SLOPE=461, + REGR_SXX=462, REGR_SXY=463, REGR_SYY=464, REINDEX=465, RELATIVE=466, RELEASE=467, + RENAME=468, REPEATABLE=469, REPLACE=470, REPLICA=471, RESET=472, RESTART=473, + RESTRICT=474, RESULT=475, RETURN=476, RETURNED_CARDINALITY=477, RETURNED_LENGTH=478, + RETURNED_OCTET_LENGTH=479, RETURNED_SQLSTATE=480, RETURNING=481, RETURNS=482, + REVOKE=483, RIGHT=484, ROLE=485, ROLLBACK=486, ROLLUP=487, ROUTINE=488, + ROUTINE_CATALOG=489, ROUTINE_NAME=490, ROUTINE_SCHEMA=491, ROW=492, ROW_COUNT=493, + ROW_NUMBER=494, ROWS=495, RULE=496, SAVEPOINT=497, SCALE=498, SCHEMA=499, + SCHEMA_NAME=500, SCOPE=501, SCOPE_CATALOG=502, SCOPE_NAME=503, SCOPE_SCHEMA=504, + SCROLL=505, SEARCH=506, SECOND=507, SECTION=508, SECURITY=509, SELECT=510, + SELF=511, SENSITIVE=512, SEQUENCE=513, SEQUENCES=514, SERIALIZABLE=515, + SERVER_NAME=516, SESSION=517, SESSION_USER=518, SET=519, SETOF=520, SETS=521, + SHARE=522, SHOW=523, SIMILAR=524, SIMPLE=525, SIZE=526, SKIP_=527, SMALLINT=528, + SNAPSHOT=529, SOME=530, SOURCE=531, SPACE=532, SPECIFIC=533, SPECIFIC_NAME=534, + SPECIFICTYPE=535, SQL=536, SQLCODE=537, SQLERROR=538, SQLEXCEPTION=539, + SQLSTATE=540, SQLWARNING=541, SQRT=542, STABLE=543, START=544, STATE=545, + STATEMENT=546, STATIC=547, STATISTICS=548, STDDEV_POP=549, STDDEV_SAMP=550, + STDIN=551, STDOUT=552, STORAGE=553, STRICT=554, STRUCTURE=555, STYLE=556, + SUBCLASS_ORIGIN=557, SUBLIST=558, SUBMULTISET=559, SUBSCRIPTION=560, SUBSTRING=561, + SUM=562, SYMMETRIC=563, SYSID=564, SYSTEM=565, SYSTEM_USER=566, TABLE=567, + TABLE_NAME=568, TABLESAMPLE=569, TABLESPACE=570, TEMP=571, TEMPLATE=572, + TEMPORARY=573, TERMINATE=574, THAN=575, THEN=576, TIES=577, TIME=578, + TIMESTAMP=579, TIMEZONE_HOUR=580, TIMEZONE_MINUTE=581, TIMING=582, TO=583, + TOAST=584, TOP_LEVEL_COUNT=585, TRAILING=586, TRANSACTION=587, TRANSACTION_ACTIVE=588, + TRANSACTIONS_COMMITTED=589, TRANSACTIONS_ROLLED_BACK=590, TRANSFORM=591, + TRANSFORMS=592, TRANSLATE=593, TRANSLATION=594, TREAT=595, TRIGGER=596, + TRIGGER_CATALOG=597, TRIGGER_NAME=598, TRIGGER_SCHEMA=599, TRIM=600, TRUE=601, + TRUNCATE=602, TRUSTED=603, TYPE=604, UESCAPE=605, UNBOUNDED=606, UNCOMMITTED=607, + UNDER=608, UNENCRYPTED=609, UNION=610, UNIQUE=611, UNKNOWN=612, UNLISTEN=613, + UNNAMED=614, UNNEST=615, UNTIL=616, UPDATE=617, UPPER=618, USAGE=619, + USER=620, USER_DEFINED_TYPE_CATALOG=621, USER_DEFINED_TYPE_CODE=622, USER_DEFINED_TYPE_NAME=623, + USER_DEFINED_TYPE_SCHEMA=624, USING=625, VACUUM=626, VALID=627, VALIDATE=628, + VALIDATOR=629, VALUE=630, VALUES=631, VAR_POP=632, VAR_SAMP=633, VARCHAR=634, + VARIABLE=635, VARIADIC=636, VARYING=637, VERBOSE=638, VIEW=639, VOLATILE=640, + WHEN=641, WHENEVER=642, WHERE=643, WIDTH_BUCKET=644, WINDOW=645, WITH=646, + WITHIN=647, WITHOUT=648, WORK=649, WRITE=650, YAML=651, YEAR=652, YES=653, + ZONE=654, SUPERUSER=655, NOSUPERUSER=656, CREATEROLE=657, NOCREATEROLE=658, + INHERIT=659, NOINHERIT=660, LOGIN=661, NOLOGIN=662, REPLICATION=663, NOREPLICATION=664, + BYPASSRLS=665, NOBYPASSRLS=666, SFUNC=667, STYPE=668, SSPACE=669, FINALFUNC=670, + FINALFUNC_EXTRA=671, COMBINEFUNC=672, SERIALFUNC=673, DESERIALFUNC=674, + INITCOND=675, MSFUNC=676, MINVFUNC=677, MSTYPE=678, MSSPACE=679, MFINALFUNC=680, + MFINALFUNC_EXTRA=681, MINITCOND=682, SORTOP=683, PARALLEL=684, HYPOTHETICAL=685, + SAFE=686, UNSAFE=687, BASETYPE=688, IF=689, LOCALE=690, LC_COLLATE=691, + LC_CTYPE=692, PROVIDER=693, VERSION=694, ALLOW_CONNECTIONS=695, IS_TEMPLATE=696, + EVENT=697, WRAPPER=698, SERVER=699, BTREE=700, HASH_=701, GIST=702, SPGIST=703, + GIN=704, BRIN=705, CONCURRENTLY=706, INLINE=707, MATERIALIZED=708, LEFTARG=709, + RIGHTARG=710, COMMUTATOR=711, NEGATOR=712, HASHES=713, MERGES=714, FAMILY=715, + POLICY=716, OWNED=717, ABSTIME=718, BIGSERIAL=719, BIT_VARYING=720, BOOL=721, + BOX=722, BYTEA=723, CHARACTER_VARYING=724, CIDR=725, CIRCLE=726, FLOAT4=727, + FLOAT8=728, INET=729, INT2=730, INT4=731, INT8=732, JSON=733, JSONB=734, + LINE=735, LSEG=736, MACADDR=737, MACADDR8=738, MONEY=739, PG_LSN=740, + POINT=741, POLYGON=742, RELTIME=743, SERIAL=744, SERIAL2=745, SERIAL4=746, + SERIAL8=747, SMALLSERIAL=748, STSTEM=749, TEXT=750, TIMESTAMPTZ=751, TIMETZ=752, + TSQUERY=753, TSVECTOR=754, TXID_SNAPSHOT=755, UUID=756, VARBIT=757, XML=758, + COMMA=759, COLON=760, COLON_COLON=761, DOLLAR=762, DOLLAR_DOLLAR=763, + STAR=764, OPEN_PAREN=765, CLOSE_PAREN=766, OPEN_BRACKET=767, CLOSE_BRACKET=768, + BIT_STRING=769, REGEX_STRING=770, NUMERIC_LITERAL=771, INTEGER_LITERAL=772, + HEX_INTEGER_LITERAL=773, DOT=774, SINGLEQ_STRING_LITERAL=775, DOUBLEQ_STRING_LITERAL=776, + IDENTIFIER=777, DOLLAR_DEC=778, IDENTIFIER_UNICODE=779, AMP=780, AMP_AMP=781, + AMP_LT=782, AT_AT=783, AT_GT=784, AT_SIGN=785, BANG=786, BANG_BANG=787, + BANG_EQUAL=788, CARET=789, EQUAL=790, EQUAL_GT=791, GT=792, GTE=793, GT_GT=794, + HASH=795, HASH_EQ=796, HASH_GT=797, HASH_GT_GT=798, HASH_HASH=799, HYPHEN_GT=800, + HYPHEN_GT_GT=801, HYPHEN_PIPE_HYPHEN=802, LT=803, LTE=804, LT_AT=805, + LT_CARET=806, LT_GT=807, LT_HYPHEN_GT=808, LT_LT=809, LT_LT_EQ=810, LT_QMARK_GT=811, + MINUS=812, PERCENT=813, PIPE=814, PIPE_PIPE=815, PIPE_PIPE_SLASH=816, + PIPE_SLASH=817, PLUS=818, QMARK=819, QMARK_AMP=820, QMARK_HASH=821, QMARK_HYPHEN=822, + QMARK_PIPE=823, SLASH=824, TIL=825, TIL_EQ=826, TIL_GTE_TIL=827, TIL_GT_TIL=828, + TIL_LTE_TIL=829, TIL_LT_TIL=830, TIL_STAR=831, TIL_TIL=832, SEMI=833; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A", "B", "C", "D", "E", + "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", + "T", "U", "V", "W", "X", "Y", "Z", "HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", + "SQUOTA_STRING", "BQUOTA_STRING", "A_", "ABORT", "ABS", "ABSOLUTE", "ACCESS", + "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALIAS", "ALL", + "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", + "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", + "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", "AUTHORIZATION", + "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", "BIGINT", + "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", "BOTH", "BREADTH", + "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", "CARDINALITY", "CASCADE", + "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", "CEIL", "CEILING", + "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", "CHARACTER_SET_CATALOG", + "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CHARACTERISTICS", "CHARACTERS", + "CHECK", "CHECKED", "CHECKPOINT", "CLASS", "CLASS_ORIGIN", "CLOB", "CLOSE", + "CLUSTER", "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLLATION_CATALOG", + "COLLATION_NAME", "COLLATION_SCHEMA", "COLLECT", "COLUMN", "COLUMN_NAME", + "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMENT", "COMMIT", "COMMITTED", + "COMPLETION", "CONDITION", "CONDITION_NUMBER", "CONFIGURATION", "CONFLICT", + "CONNECT", "CONNECTION", "CONNECTION_NAME", "CONSTRAINT", "CONSTRAINT_CATALOG", + "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRAINTS", "CONSTRUCTOR", + "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", "COPY", "CORR", "CORRESPONDING", + "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CREATEDB", "CREATEUSER", + "CROSS", "CSV", "CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", + "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", + "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CURSOR_NAME", + "CYCLE", "DATA", "DATABASE", "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", + "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", + "DEFERABLE", "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", + "DELETE", "DELIMITER", "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", + "DEREF", "DERIVED", "DESC", "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", + "DETERMINISTIC", "DIAGNOSTICS", "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", + "DISCARD", "DISCONNECT", "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", + "DROP", "DYNAMIC", "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", + "ELEMENT", "ELSE", "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", + "EQUALS", "ESCAPE", "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDE", "EXCLUDING", + "EXCLUSIVE", "EXEC", "EXECUTE", "EXISTING", "EXISTS", "EXP", "EXPLAIN", + "EXTENDED", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", + "FILTER", "FINAL", "FIRST", "FLOAT", "FLOOR", "FOLLOWING", "FOR", "FORCE", + "FOREIGN", "FORMAT", "FORTRAN", "FORWARD", "FOUND", "FREE", "FREEZE", + "FROM", "FULL", "FUNCTION", "FUSION", "G_", "GENERAL", "GENERATED", "GET", + "GLOBAL", "GO", "GOTO", "GRANT", "GRANTED", "GREATEST", "GROUP", "GROUPING", + "HANDLER", "HAVING", "HIERARCHY", "HOLD", "HOST", "HOUR", "IDENTITY", + "IGNORE", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLEMENTATION", "IMPLICIT", + "IN", "INCLUDING", "INCREMENT", "INDEX", "INDICATOR", "INFIX", "INHERITS", + "INITIALIZE", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", + "INSERT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INT", "INTEGER", "INTERSECT", + "INTERSECTION", "INTERVAL", "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", + "JOIN", "K_", "KEY", "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", + "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", + "LESS", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", + "LOCALTIMESTAMP", "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", + "MAIN", "MAP", "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", + "MAXVALUE", "MEMBER", "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", + "MESSAGE_TEXT", "METHOD", "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", + "MODIFIES", "MODIFY", "MODULE", "MONTH", "MORE_", "MOVE", "MULTISET", + "MUMPS", "NAME", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NESTING", + "NEW", "NEXT", "NO", "NOCREATEDB", "NOCREATEUSER", "NONE", "NORMALIZE", + "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL", + "NULLABLE", "NULLIF", "NULLS", "NUMBER", "NUMERIC", "OBJECT", "OCTET_LENGTH", + "OCTETS", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPEN", + "OPERATION", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDERING", + "ORDINALITY", "OTHERS", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", + "OVERLAY", "OVERRIDING", "OWNER", "PAD", "PARAMETER", "PARAMETER_MODE", + "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", + "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARAMETERS", + "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", "PATH", "PERCENT_RANK", + "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", "PLAIN", "PLANS", "PLI", + "POSITION", "POSTFIX", "POWER", "PRECEDING", "PRECISION", "PREFIX", "PREORDER", + "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", + "PROCEDURAL", "PROCEDURE", "PUBLIC", "PUBLICATION", "QUOTE", "RANGE", + "RANK", "READ", "READS", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", + "REF", "REFERENCES", "REFERENCING", "REFRESH", "REGR_AVGX", "REGR_AVGY", + "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", + "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", "RENAME", "REPEATABLE", + "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RESULT", "RETURN", + "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", + "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", + "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW", + "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", "SCHEMA", + "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", + "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", + "SIMPLE", "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", + "SPACE", "SPECIFIC", "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", + "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", + "START", "STATE", "STATEMENT", "STATIC", "STATISTICS", "STDDEV_POP", + "STDDEV_SAMP", "STDIN", "STDOUT", "STORAGE", "STRICT", "STRUCTURE", "STYLE", + "SUBCLASS_ORIGIN", "SUBLIST", "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", + "SUM", "SYMMETRIC", "SYSID", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", + "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", + "THAN", "THEN", "TIES", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", + "TIMING", "TO", "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", + "TRANSACTION_ACTIVE", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", + "TRANSFORM", "TRANSFORMS", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", + "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TRIM", "TRUE", + "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", + "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNNAMED", + "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", + "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", + "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", + "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", + "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", + "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", + "YES", "ZONE", "SUPERUSER", "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", + "INHERIT", "NOINHERIT", "LOGIN", "NOLOGIN", "REPLICATION", "NOREPLICATION", + "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", + "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", + "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", + "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "UNSAFE", + "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", + "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", + "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", + "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", + "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", + "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", + "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, "','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", + "')'", "'['", "']'", null, null, null, null, null, "'.'", null, null, + null, null, null, "'&'", "'&&'", "'&<'", "'@@'", "'@>'", "'@'", "'!'", + "'!!'", "'!='", "'^'", "'='", "'=>'", "'>'", "'>='", "'>>'", "'#'", "'#='", + "'#>'", "'#>>'", "'##'", "'->'", "'->>'", "'-|-'", "'<'", "'<='", "'<@'", + "'<^'", "'<>'", "'<->'", "'<<'", "'<<='", "''", "'-'", "'%'", "'|'", + "'||'", "'||/'", "'|/'", "'+'", "'?'", "'?&'", "'?#'", "'?-'", "'?|'", + "'/'", "'~'", "'~='", "'~>=~'", "'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", + "';'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT", "A_", "ABORT", "ABS", + "ABSOLUTE", "ACCESS", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "AGGREGATE", + "ALIAS", "ALL", "ALLOCATE", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", + "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", + "ASSIGNMENT", "ASYMMETRIC", "AT", "ATOMIC", "ATTRIBUTE", "ATTRIBUTES", + "AUTHORIZATION", "AVG", "BACKWARD", "BEFORE", "BEGIN", "BERNOULLI", "BETWEEN", + "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BITVAR", "BLOB", "BOOLEAN", + "BOTH", "BREADTH", "BUFFERS", "BY", "C_", "CACHE", "CALL", "CALLED", + "CARDINALITY", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CATALOG_NAME", + "CEIL", "CEILING", "CHAIN", "CHAR", "CHAR_LENGTH", "CHARACTER", "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", + "CHARACTERISTICS", "CHARACTERS", "CHECK", "CHECKED", "CHECKPOINT", "CLASS", + "CLASS_ORIGIN", "CLOB", "CLOSE", "CLUSTER", "COALESCE", "COBOL", "COLLATE", + "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", + "COLLECT", "COLUMN", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", + "COMMENT", "COMMIT", "COMMITTED", "COMPLETION", "CONDITION", "CONDITION_NUMBER", + "CONFIGURATION", "CONFLICT", "CONNECT", "CONNECTION", "CONNECTION_NAME", + "CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", + "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERSION", "CONVERT", + "COPY", "CORR", "CORRESPONDING", "COSTS", "COUNT", "COVAR_POP", "COVAR_SAMP", + "CREATE", "CREATEDB", "CREATEUSER", "CROSS", "CSV", "CUBE", "CUME_DIST", + "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", + "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", + "CURRENT_USER", "CURSOR", "CURSOR_NAME", "CYCLE", "DATA", "DATABASE", + "DATE", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DAY", + "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERABLE", + "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DELETE", "DELIMITER", + "DELIMITERS", "DENSE_RANK", "DEPENDS", "DEPTH", "DEREF", "DERIVED", "DESC", + "DESCRIBE", "DESCRIPTOR", "DESTROY", "DESTRUCTOR", "DETERMINISTIC", "DIAGNOSTICS", + "DICTIONARY", "DISABLE_P", "DISABLE_PAGE_SKIPPING", "DISCARD", "DISCONNECT", + "DISPATCH", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", + "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EACH", "ELEMENT", "ELSE", + "ENABLE", "ENCODING", "ENCRYPTED", "END", "END_EXEC", "EQUALS", "ESCAPE", + "EVERY", "EXCEPT", "EXCEPTION", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", + "EXEC", "EXECUTE", "EXISTING", "EXISTS", "EXP", "EXPLAIN", "EXTENDED", + "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FIELDS", "FILTER", + "FINAL", "FIRST", "FLOAT", "FLOOR", "FOLLOWING", "FOR", "FORCE", "FOREIGN", + "FORMAT", "FORTRAN", "FORWARD", "FOUND", "FREE", "FREEZE", "FROM", "FULL", + "FUNCTION", "FUSION", "G_", "GENERAL", "GENERATED", "GET", "GLOBAL", + "GO", "GOTO", "GRANT", "GRANTED", "GREATEST", "GROUP", "GROUPING", "HANDLER", + "HAVING", "HIERARCHY", "HOLD", "HOST", "HOUR", "IDENTITY", "IGNORE", + "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLEMENTATION", "IMPLICIT", "IN", + "INCLUDING", "INCREMENT", "INDEX", "INDICATOR", "INFIX", "INHERITS", + "INITIALIZE", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", + "INSERT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INT", "INTEGER", "INTERSECT", + "INTERSECTION", "INTERVAL", "INTO", "INVOKER", "IS", "ISOLATION", "ITERATE", + "JOIN", "K_", "KEY", "KEY_MEMBER", "KEY_TYPE", "LABEL", "LANCOMPILER", + "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAST", "LEFT", "LENGTH", + "LESS", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LN", "LOAD", "LOCAL", "LOCALTIME", + "LOCALTIMESTAMP", "LOCATION", "LOCATOR", "LOCK", "LOCKED", "LOWER", "M_", + "MAIN", "MAP", "MAPPING", "MATCH", "MATCH_SIMPLE", "MATCHED", "MAX", + "MAXVALUE", "MEMBER", "MERGE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", + "MESSAGE_TEXT", "METHOD", "MIN", "MINUTE", "MINVALUE", "MOD", "MODE", + "MODIFIES", "MODIFY", "MODULE", "MONTH", "MORE_", "MOVE", "MULTISET", + "MUMPS", "NAME", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NESTING", + "NEW", "NEXT", "NO", "NOCREATEDB", "NOCREATEUSER", "NONE", "NORMALIZE", + "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL", + "NULLABLE", "NULLIF", "NULLS", "NUMBER", "NUMERIC", "OBJECT", "OCTET_LENGTH", + "OCTETS", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPEN", + "OPERATION", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDERING", + "ORDINALITY", "OTHERS", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", + "OVERLAY", "OVERRIDING", "OWNER", "PAD", "PARAMETER", "PARAMETER_MODE", + "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", + "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARAMETERS", + "PARSER", "PARTIAL", "PARTITION", "PASCAL", "PASSWORD", "PATH", "PERCENT_RANK", + "PERCENTILE_CONT", "PERCENTILE_DISC", "PLACING", "PLAIN", "PLANS", "PLI", + "POSITION", "POSTFIX", "POWER", "PRECEDING", "PRECISION", "PREFIX", "PREORDER", + "PREPARE", "PREPARED", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", + "PROCEDURAL", "PROCEDURE", "PUBLIC", "PUBLICATION", "QUOTE", "RANGE", + "RANK", "READ", "READS", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", + "REF", "REFERENCES", "REFERENCING", "REFRESH", "REGR_AVGX", "REGR_AVGY", + "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX", + "REGR_SXY", "REGR_SYY", "REINDEX", "RELATIVE", "RELEASE", "RENAME", "REPEATABLE", + "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RESULT", "RETURN", + "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", + "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", + "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW", + "ROW_COUNT", "ROW_NUMBER", "ROWS", "RULE", "SAVEPOINT", "SCALE", "SCHEMA", + "SCHEMA_NAME", "SCOPE", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", + "SCROLL", "SEARCH", "SECOND", "SECTION", "SECURITY", "SELECT", "SELF", + "SENSITIVE", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER_NAME", + "SESSION", "SESSION_USER", "SET", "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", + "SIMPLE", "SIZE", "SKIP_", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", + "SPACE", "SPECIFIC", "SPECIFIC_NAME", "SPECIFICTYPE", "SQL", "SQLCODE", + "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQRT", "STABLE", + "START", "STATE", "STATEMENT", "STATIC", "STATISTICS", "STDDEV_POP", + "STDDEV_SAMP", "STDIN", "STDOUT", "STORAGE", "STRICT", "STRUCTURE", "STYLE", + "SUBCLASS_ORIGIN", "SUBLIST", "SUBMULTISET", "SUBSCRIPTION", "SUBSTRING", + "SUM", "SYMMETRIC", "SYSID", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLE_NAME", + "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TERMINATE", + "THAN", "THEN", "TIES", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", + "TIMING", "TO", "TOAST", "TOP_LEVEL_COUNT", "TRAILING", "TRANSACTION", + "TRANSACTION_ACTIVE", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", + "TRANSFORM", "TRANSFORMS", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", + "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TRIM", "TRUE", + "TRUNCATE", "TRUSTED", "TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", + "UNDER", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNNAMED", + "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USER_DEFINED_TYPE_CATALOG", + "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", + "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE", "VALUES", + "VAR_POP", "VAR_SAMP", "VARCHAR", "VARIABLE", "VARIADIC", "VARYING", + "VERBOSE", "VIEW", "VOLATILE", "WHEN", "WHENEVER", "WHERE", "WIDTH_BUCKET", + "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YAML", "YEAR", + "YES", "ZONE", "SUPERUSER", "NOSUPERUSER", "CREATEROLE", "NOCREATEROLE", + "INHERIT", "NOINHERIT", "LOGIN", "NOLOGIN", "REPLICATION", "NOREPLICATION", + "BYPASSRLS", "NOBYPASSRLS", "SFUNC", "STYPE", "SSPACE", "FINALFUNC", + "FINALFUNC_EXTRA", "COMBINEFUNC", "SERIALFUNC", "DESERIALFUNC", "INITCOND", + "MSFUNC", "MINVFUNC", "MSTYPE", "MSSPACE", "MFINALFUNC", "MFINALFUNC_EXTRA", + "MINITCOND", "SORTOP", "PARALLEL", "HYPOTHETICAL", "SAFE", "UNSAFE", + "BASETYPE", "IF", "LOCALE", "LC_COLLATE", "LC_CTYPE", "PROVIDER", "VERSION", + "ALLOW_CONNECTIONS", "IS_TEMPLATE", "EVENT", "WRAPPER", "SERVER", "BTREE", + "HASH_", "GIST", "SPGIST", "GIN", "BRIN", "CONCURRENTLY", "INLINE", "MATERIALIZED", + "LEFTARG", "RIGHTARG", "COMMUTATOR", "NEGATOR", "HASHES", "MERGES", "FAMILY", + "POLICY", "OWNED", "ABSTIME", "BIGSERIAL", "BIT_VARYING", "BOOL", "BOX", + "BYTEA", "CHARACTER_VARYING", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", + "INT2", "INT4", "INT8", "JSON", "JSONB", "LINE", "LSEG", "MACADDR", "MACADDR8", + "MONEY", "PG_LSN", "POINT", "POLYGON", "RELTIME", "SERIAL", "SERIAL2", + "SERIAL4", "SERIAL8", "SMALLSERIAL", "STSTEM", "TEXT", "TIMESTAMPTZ", + "TIMETZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "VARBIT", "XML", + "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", + "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "BIT_STRING", "REGEX_STRING", + "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", + "DOUBLEQ_STRING_LITERAL", "IDENTIFIER", "DOLLAR_DEC", "IDENTIFIER_UNICODE", + "AMP", "AMP_AMP", "AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", + "BANG_EQUAL", "CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", + "HASH_EQ", "HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", + "HYPHEN_PIPE_HYPHEN", "LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", + "LT_LT", "LT_LT_EQ", "LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", + "PIPE_PIPE_SLASH", "PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", + "QMARK_HYPHEN", "QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", + "TIL_GT_TIL", "TIL_LTE_TIL", "TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public PostgreSQLLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "PostgreSQLLexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u0341\u21d8\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ + "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ + "\u0002\u014f\u0007\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151"+ + "\u0002\u0152\u0007\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154"+ + "\u0002\u0155\u0007\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157"+ + "\u0002\u0158\u0007\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a"+ + "\u0002\u015b\u0007\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d"+ + "\u0002\u015e\u0007\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160"+ + "\u0002\u0161\u0007\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163"+ + "\u0002\u0164\u0007\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166"+ + "\u0002\u0167\u0007\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169"+ + "\u0002\u016a\u0007\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c"+ + "\u0002\u016d\u0007\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f"+ + "\u0002\u0170\u0007\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172"+ + "\u0002\u0173\u0007\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175"+ + "\u0002\u0176\u0007\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178"+ + "\u0002\u0179\u0007\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b"+ + "\u0002\u017c\u0007\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e"+ + "\u0002\u017f\u0007\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181"+ + "\u0002\u0182\u0007\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184"+ + "\u0002\u0185\u0007\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187"+ + "\u0002\u0188\u0007\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a"+ + "\u0002\u018b\u0007\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d"+ + "\u0002\u018e\u0007\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190"+ + "\u0002\u0191\u0007\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193"+ + "\u0002\u0194\u0007\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196"+ + "\u0002\u0197\u0007\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199"+ + "\u0002\u019a\u0007\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c"+ + "\u0002\u019d\u0007\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f"+ + "\u0002\u01a0\u0007\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2"+ + "\u0002\u01a3\u0007\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5"+ + "\u0002\u01a6\u0007\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8"+ + "\u0002\u01a9\u0007\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab"+ + "\u0002\u01ac\u0007\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae"+ + "\u0002\u01af\u0007\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1"+ + "\u0002\u01b2\u0007\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4"+ + "\u0002\u01b5\u0007\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7"+ + "\u0002\u01b8\u0007\u01b8\u0002\u01b9\u0007\u01b9\u0002\u01ba\u0007\u01ba"+ + "\u0002\u01bb\u0007\u01bb\u0002\u01bc\u0007\u01bc\u0002\u01bd\u0007\u01bd"+ + "\u0002\u01be\u0007\u01be\u0002\u01bf\u0007\u01bf\u0002\u01c0\u0007\u01c0"+ + "\u0002\u01c1\u0007\u01c1\u0002\u01c2\u0007\u01c2\u0002\u01c3\u0007\u01c3"+ + "\u0002\u01c4\u0007\u01c4\u0002\u01c5\u0007\u01c5\u0002\u01c6\u0007\u01c6"+ + "\u0002\u01c7\u0007\u01c7\u0002\u01c8\u0007\u01c8\u0002\u01c9\u0007\u01c9"+ + "\u0002\u01ca\u0007\u01ca\u0002\u01cb\u0007\u01cb\u0002\u01cc\u0007\u01cc"+ + "\u0002\u01cd\u0007\u01cd\u0002\u01ce\u0007\u01ce\u0002\u01cf\u0007\u01cf"+ + "\u0002\u01d0\u0007\u01d0\u0002\u01d1\u0007\u01d1\u0002\u01d2\u0007\u01d2"+ + "\u0002\u01d3\u0007\u01d3\u0002\u01d4\u0007\u01d4\u0002\u01d5\u0007\u01d5"+ + "\u0002\u01d6\u0007\u01d6\u0002\u01d7\u0007\u01d7\u0002\u01d8\u0007\u01d8"+ + "\u0002\u01d9\u0007\u01d9\u0002\u01da\u0007\u01da\u0002\u01db\u0007\u01db"+ + "\u0002\u01dc\u0007\u01dc\u0002\u01dd\u0007\u01dd\u0002\u01de\u0007\u01de"+ + "\u0002\u01df\u0007\u01df\u0002\u01e0\u0007\u01e0\u0002\u01e1\u0007\u01e1"+ + "\u0002\u01e2\u0007\u01e2\u0002\u01e3\u0007\u01e3\u0002\u01e4\u0007\u01e4"+ + "\u0002\u01e5\u0007\u01e5\u0002\u01e6\u0007\u01e6\u0002\u01e7\u0007\u01e7"+ + "\u0002\u01e8\u0007\u01e8\u0002\u01e9\u0007\u01e9\u0002\u01ea\u0007\u01ea"+ + "\u0002\u01eb\u0007\u01eb\u0002\u01ec\u0007\u01ec\u0002\u01ed\u0007\u01ed"+ + "\u0002\u01ee\u0007\u01ee\u0002\u01ef\u0007\u01ef\u0002\u01f0\u0007\u01f0"+ + "\u0002\u01f1\u0007\u01f1\u0002\u01f2\u0007\u01f2\u0002\u01f3\u0007\u01f3"+ + "\u0002\u01f4\u0007\u01f4\u0002\u01f5\u0007\u01f5\u0002\u01f6\u0007\u01f6"+ + "\u0002\u01f7\u0007\u01f7\u0002\u01f8\u0007\u01f8\u0002\u01f9\u0007\u01f9"+ + "\u0002\u01fa\u0007\u01fa\u0002\u01fb\u0007\u01fb\u0002\u01fc\u0007\u01fc"+ + "\u0002\u01fd\u0007\u01fd\u0002\u01fe\u0007\u01fe\u0002\u01ff\u0007\u01ff"+ + "\u0002\u0200\u0007\u0200\u0002\u0201\u0007\u0201\u0002\u0202\u0007\u0202"+ + "\u0002\u0203\u0007\u0203\u0002\u0204\u0007\u0204\u0002\u0205\u0007\u0205"+ + "\u0002\u0206\u0007\u0206\u0002\u0207\u0007\u0207\u0002\u0208\u0007\u0208"+ + "\u0002\u0209\u0007\u0209\u0002\u020a\u0007\u020a\u0002\u020b\u0007\u020b"+ + "\u0002\u020c\u0007\u020c\u0002\u020d\u0007\u020d\u0002\u020e\u0007\u020e"+ + "\u0002\u020f\u0007\u020f\u0002\u0210\u0007\u0210\u0002\u0211\u0007\u0211"+ + "\u0002\u0212\u0007\u0212\u0002\u0213\u0007\u0213\u0002\u0214\u0007\u0214"+ + "\u0002\u0215\u0007\u0215\u0002\u0216\u0007\u0216\u0002\u0217\u0007\u0217"+ + "\u0002\u0218\u0007\u0218\u0002\u0219\u0007\u0219\u0002\u021a\u0007\u021a"+ + "\u0002\u021b\u0007\u021b\u0002\u021c\u0007\u021c\u0002\u021d\u0007\u021d"+ + "\u0002\u021e\u0007\u021e\u0002\u021f\u0007\u021f\u0002\u0220\u0007\u0220"+ + "\u0002\u0221\u0007\u0221\u0002\u0222\u0007\u0222\u0002\u0223\u0007\u0223"+ + "\u0002\u0224\u0007\u0224\u0002\u0225\u0007\u0225\u0002\u0226\u0007\u0226"+ + "\u0002\u0227\u0007\u0227\u0002\u0228\u0007\u0228\u0002\u0229\u0007\u0229"+ + "\u0002\u022a\u0007\u022a\u0002\u022b\u0007\u022b\u0002\u022c\u0007\u022c"+ + "\u0002\u022d\u0007\u022d\u0002\u022e\u0007\u022e\u0002\u022f\u0007\u022f"+ + "\u0002\u0230\u0007\u0230\u0002\u0231\u0007\u0231\u0002\u0232\u0007\u0232"+ + "\u0002\u0233\u0007\u0233\u0002\u0234\u0007\u0234\u0002\u0235\u0007\u0235"+ + "\u0002\u0236\u0007\u0236\u0002\u0237\u0007\u0237\u0002\u0238\u0007\u0238"+ + "\u0002\u0239\u0007\u0239\u0002\u023a\u0007\u023a\u0002\u023b\u0007\u023b"+ + "\u0002\u023c\u0007\u023c\u0002\u023d\u0007\u023d\u0002\u023e\u0007\u023e"+ + "\u0002\u023f\u0007\u023f\u0002\u0240\u0007\u0240\u0002\u0241\u0007\u0241"+ + "\u0002\u0242\u0007\u0242\u0002\u0243\u0007\u0243\u0002\u0244\u0007\u0244"+ + "\u0002\u0245\u0007\u0245\u0002\u0246\u0007\u0246\u0002\u0247\u0007\u0247"+ + "\u0002\u0248\u0007\u0248\u0002\u0249\u0007\u0249\u0002\u024a\u0007\u024a"+ + "\u0002\u024b\u0007\u024b\u0002\u024c\u0007\u024c\u0002\u024d\u0007\u024d"+ + "\u0002\u024e\u0007\u024e\u0002\u024f\u0007\u024f\u0002\u0250\u0007\u0250"+ + "\u0002\u0251\u0007\u0251\u0002\u0252\u0007\u0252\u0002\u0253\u0007\u0253"+ + "\u0002\u0254\u0007\u0254\u0002\u0255\u0007\u0255\u0002\u0256\u0007\u0256"+ + "\u0002\u0257\u0007\u0257\u0002\u0258\u0007\u0258\u0002\u0259\u0007\u0259"+ + "\u0002\u025a\u0007\u025a\u0002\u025b\u0007\u025b\u0002\u025c\u0007\u025c"+ + "\u0002\u025d\u0007\u025d\u0002\u025e\u0007\u025e\u0002\u025f\u0007\u025f"+ + "\u0002\u0260\u0007\u0260\u0002\u0261\u0007\u0261\u0002\u0262\u0007\u0262"+ + "\u0002\u0263\u0007\u0263\u0002\u0264\u0007\u0264\u0002\u0265\u0007\u0265"+ + "\u0002\u0266\u0007\u0266\u0002\u0267\u0007\u0267\u0002\u0268\u0007\u0268"+ + "\u0002\u0269\u0007\u0269\u0002\u026a\u0007\u026a\u0002\u026b\u0007\u026b"+ + "\u0002\u026c\u0007\u026c\u0002\u026d\u0007\u026d\u0002\u026e\u0007\u026e"+ + "\u0002\u026f\u0007\u026f\u0002\u0270\u0007\u0270\u0002\u0271\u0007\u0271"+ + "\u0002\u0272\u0007\u0272\u0002\u0273\u0007\u0273\u0002\u0274\u0007\u0274"+ + "\u0002\u0275\u0007\u0275\u0002\u0276\u0007\u0276\u0002\u0277\u0007\u0277"+ + "\u0002\u0278\u0007\u0278\u0002\u0279\u0007\u0279\u0002\u027a\u0007\u027a"+ + "\u0002\u027b\u0007\u027b\u0002\u027c\u0007\u027c\u0002\u027d\u0007\u027d"+ + "\u0002\u027e\u0007\u027e\u0002\u027f\u0007\u027f\u0002\u0280\u0007\u0280"+ + "\u0002\u0281\u0007\u0281\u0002\u0282\u0007\u0282\u0002\u0283\u0007\u0283"+ + "\u0002\u0284\u0007\u0284\u0002\u0285\u0007\u0285\u0002\u0286\u0007\u0286"+ + "\u0002\u0287\u0007\u0287\u0002\u0288\u0007\u0288\u0002\u0289\u0007\u0289"+ + "\u0002\u028a\u0007\u028a\u0002\u028b\u0007\u028b\u0002\u028c\u0007\u028c"+ + "\u0002\u028d\u0007\u028d\u0002\u028e\u0007\u028e\u0002\u028f\u0007\u028f"+ + "\u0002\u0290\u0007\u0290\u0002\u0291\u0007\u0291\u0002\u0292\u0007\u0292"+ + "\u0002\u0293\u0007\u0293\u0002\u0294\u0007\u0294\u0002\u0295\u0007\u0295"+ + "\u0002\u0296\u0007\u0296\u0002\u0297\u0007\u0297\u0002\u0298\u0007\u0298"+ + "\u0002\u0299\u0007\u0299\u0002\u029a\u0007\u029a\u0002\u029b\u0007\u029b"+ + "\u0002\u029c\u0007\u029c\u0002\u029d\u0007\u029d\u0002\u029e\u0007\u029e"+ + "\u0002\u029f\u0007\u029f\u0002\u02a0\u0007\u02a0\u0002\u02a1\u0007\u02a1"+ + "\u0002\u02a2\u0007\u02a2\u0002\u02a3\u0007\u02a3\u0002\u02a4\u0007\u02a4"+ + "\u0002\u02a5\u0007\u02a5\u0002\u02a6\u0007\u02a6\u0002\u02a7\u0007\u02a7"+ + "\u0002\u02a8\u0007\u02a8\u0002\u02a9\u0007\u02a9\u0002\u02aa\u0007\u02aa"+ + "\u0002\u02ab\u0007\u02ab\u0002\u02ac\u0007\u02ac\u0002\u02ad\u0007\u02ad"+ + "\u0002\u02ae\u0007\u02ae\u0002\u02af\u0007\u02af\u0002\u02b0\u0007\u02b0"+ + "\u0002\u02b1\u0007\u02b1\u0002\u02b2\u0007\u02b2\u0002\u02b3\u0007\u02b3"+ + "\u0002\u02b4\u0007\u02b4\u0002\u02b5\u0007\u02b5\u0002\u02b6\u0007\u02b6"+ + "\u0002\u02b7\u0007\u02b7\u0002\u02b8\u0007\u02b8\u0002\u02b9\u0007\u02b9"+ + "\u0002\u02ba\u0007\u02ba\u0002\u02bb\u0007\u02bb\u0002\u02bc\u0007\u02bc"+ + "\u0002\u02bd\u0007\u02bd\u0002\u02be\u0007\u02be\u0002\u02bf\u0007\u02bf"+ + "\u0002\u02c0\u0007\u02c0\u0002\u02c1\u0007\u02c1\u0002\u02c2\u0007\u02c2"+ + "\u0002\u02c3\u0007\u02c3\u0002\u02c4\u0007\u02c4\u0002\u02c5\u0007\u02c5"+ + "\u0002\u02c6\u0007\u02c6\u0002\u02c7\u0007\u02c7\u0002\u02c8\u0007\u02c8"+ + "\u0002\u02c9\u0007\u02c9\u0002\u02ca\u0007\u02ca\u0002\u02cb\u0007\u02cb"+ + "\u0002\u02cc\u0007\u02cc\u0002\u02cd\u0007\u02cd\u0002\u02ce\u0007\u02ce"+ + "\u0002\u02cf\u0007\u02cf\u0002\u02d0\u0007\u02d0\u0002\u02d1\u0007\u02d1"+ + "\u0002\u02d2\u0007\u02d2\u0002\u02d3\u0007\u02d3\u0002\u02d4\u0007\u02d4"+ + "\u0002\u02d5\u0007\u02d5\u0002\u02d6\u0007\u02d6\u0002\u02d7\u0007\u02d7"+ + "\u0002\u02d8\u0007\u02d8\u0002\u02d9\u0007\u02d9\u0002\u02da\u0007\u02da"+ + "\u0002\u02db\u0007\u02db\u0002\u02dc\u0007\u02dc\u0002\u02dd\u0007\u02dd"+ + "\u0002\u02de\u0007\u02de\u0002\u02df\u0007\u02df\u0002\u02e0\u0007\u02e0"+ + "\u0002\u02e1\u0007\u02e1\u0002\u02e2\u0007\u02e2\u0002\u02e3\u0007\u02e3"+ + "\u0002\u02e4\u0007\u02e4\u0002\u02e5\u0007\u02e5\u0002\u02e6\u0007\u02e6"+ + "\u0002\u02e7\u0007\u02e7\u0002\u02e8\u0007\u02e8\u0002\u02e9\u0007\u02e9"+ + "\u0002\u02ea\u0007\u02ea\u0002\u02eb\u0007\u02eb\u0002\u02ec\u0007\u02ec"+ + "\u0002\u02ed\u0007\u02ed\u0002\u02ee\u0007\u02ee\u0002\u02ef\u0007\u02ef"+ + "\u0002\u02f0\u0007\u02f0\u0002\u02f1\u0007\u02f1\u0002\u02f2\u0007\u02f2"+ + "\u0002\u02f3\u0007\u02f3\u0002\u02f4\u0007\u02f4\u0002\u02f5\u0007\u02f5"+ + "\u0002\u02f6\u0007\u02f6\u0002\u02f7\u0007\u02f7\u0002\u02f8\u0007\u02f8"+ + "\u0002\u02f9\u0007\u02f9\u0002\u02fa\u0007\u02fa\u0002\u02fb\u0007\u02fb"+ + "\u0002\u02fc\u0007\u02fc\u0002\u02fd\u0007\u02fd\u0002\u02fe\u0007\u02fe"+ + "\u0002\u02ff\u0007\u02ff\u0002\u0300\u0007\u0300\u0002\u0301\u0007\u0301"+ + "\u0002\u0302\u0007\u0302\u0002\u0303\u0007\u0303\u0002\u0304\u0007\u0304"+ + "\u0002\u0305\u0007\u0305\u0002\u0306\u0007\u0306\u0002\u0307\u0007\u0307"+ + "\u0002\u0308\u0007\u0308\u0002\u0309\u0007\u0309\u0002\u030a\u0007\u030a"+ + "\u0002\u030b\u0007\u030b\u0002\u030c\u0007\u030c\u0002\u030d\u0007\u030d"+ + "\u0002\u030e\u0007\u030e\u0002\u030f\u0007\u030f\u0002\u0310\u0007\u0310"+ + "\u0002\u0311\u0007\u0311\u0002\u0312\u0007\u0312\u0002\u0313\u0007\u0313"+ + "\u0002\u0314\u0007\u0314\u0002\u0315\u0007\u0315\u0002\u0316\u0007\u0316"+ + "\u0002\u0317\u0007\u0317\u0002\u0318\u0007\u0318\u0002\u0319\u0007\u0319"+ + "\u0002\u031a\u0007\u031a\u0002\u031b\u0007\u031b\u0002\u031c\u0007\u031c"+ + "\u0002\u031d\u0007\u031d\u0002\u031e\u0007\u031e\u0002\u031f\u0007\u031f"+ + "\u0002\u0320\u0007\u0320\u0002\u0321\u0007\u0321\u0002\u0322\u0007\u0322"+ + "\u0002\u0323\u0007\u0323\u0002\u0324\u0007\u0324\u0002\u0325\u0007\u0325"+ + "\u0002\u0326\u0007\u0326\u0002\u0327\u0007\u0327\u0002\u0328\u0007\u0328"+ + "\u0002\u0329\u0007\u0329\u0002\u032a\u0007\u032a\u0002\u032b\u0007\u032b"+ + "\u0002\u032c\u0007\u032c\u0002\u032d\u0007\u032d\u0002\u032e\u0007\u032e"+ + "\u0002\u032f\u0007\u032f\u0002\u0330\u0007\u0330\u0002\u0331\u0007\u0331"+ + "\u0002\u0332\u0007\u0332\u0002\u0333\u0007\u0333\u0002\u0334\u0007\u0334"+ + "\u0002\u0335\u0007\u0335\u0002\u0336\u0007\u0336\u0002\u0337\u0007\u0337"+ + "\u0002\u0338\u0007\u0338\u0002\u0339\u0007\u0339\u0002\u033a\u0007\u033a"+ + "\u0002\u033b\u0007\u033b\u0002\u033c\u0007\u033c\u0002\u033d\u0007\u033d"+ + "\u0002\u033e\u0007\u033e\u0002\u033f\u0007\u033f\u0002\u0340\u0007\u0340"+ + "\u0002\u0341\u0007\u0341\u0002\u0342\u0007\u0342\u0002\u0343\u0007\u0343"+ + "\u0002\u0344\u0007\u0344\u0002\u0345\u0007\u0345\u0002\u0346\u0007\u0346"+ + "\u0002\u0347\u0007\u0347\u0002\u0348\u0007\u0348\u0002\u0349\u0007\u0349"+ + "\u0002\u034a\u0007\u034a\u0002\u034b\u0007\u034b\u0002\u034c\u0007\u034c"+ + "\u0002\u034d\u0007\u034d\u0002\u034e\u0007\u034e\u0002\u034f\u0007\u034f"+ + "\u0002\u0350\u0007\u0350\u0002\u0351\u0007\u0351\u0002\u0352\u0007\u0352"+ + "\u0002\u0353\u0007\u0353\u0002\u0354\u0007\u0354\u0002\u0355\u0007\u0355"+ + "\u0002\u0356\u0007\u0356\u0002\u0357\u0007\u0357\u0002\u0358\u0007\u0358"+ + "\u0002\u0359\u0007\u0359\u0002\u035a\u0007\u035a\u0002\u035b\u0007\u035b"+ + "\u0002\u035c\u0007\u035c\u0002\u035d\u0007\u035d\u0002\u035e\u0007\u035e"+ + "\u0002\u035f\u0007\u035f\u0001\u0000\u0004\u0000\u06c3\b\u0000\u000b\u0000"+ + "\f\u0000\u06c4\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0005\u0001\u06cd\b\u0001\n\u0001\f\u0001\u06d0\t\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001"+ + "\u0002\u0001\u0002\u0001\u0002\u0005\u0002\u06db\b\u0002\n\u0002\f\u0002"+ + "\u06de\t\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003"+ + "\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006"+ + "\u0001\u0006\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\t\u0001\t\u0001"+ + "\n\u0001\n\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\r\u0001\r\u0001"+ + "\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001"+ + "\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+ + "\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001"+ + "\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001"+ + "\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001"+ + "\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001"+ + "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u0722\b\u001f\n"+ + "\u001f\f\u001f\u0725\t\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001"+ + " \u0001 \u0001 \u0001 \u0005 \u072f\b \n \f \u0732\t \u0001 \u0001 \u0001"+ + "!\u0001!\u0001!\u0001!\u0001!\u0001!\u0005!\u073c\b!\n!\f!\u073f\t!\u0001"+ + "!\u0001!\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+ + "$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ + "\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001"+ + "(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001*\u0001*\u0001*\u0001*\u0001"+ + "*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001"+ + ",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001"+ + "-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001"+ + "/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u0001"+ + "0\u00010\u00011\u00011\u00011\u00011\u00011\u00011\u00012\u00012\u0001"+ + "2\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00013\u00013\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u0001"+ + "4\u00015\u00015\u00015\u00015\u00016\u00016\u00016\u00016\u00017\u0001"+ + "7\u00017\u00017\u00018\u00018\u00018\u00018\u00018\u00018\u00019\u0001"+ + "9\u00019\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001<\u0001<\u0001<\u0001"+ + "<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001"+ + ">\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001?\u0001"+ + "?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001A\u0001"+ + "A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001"+ + "B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001B\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ + "C\u0001C\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ + "I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001K\u0001K\u0001K\u0001"+ + "K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001N\u0001N\u0001N\u0001"+ + "N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001O\u0001O\u0001O\u0001P\u0001"+ + "P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+ + "S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ + "T\u0001U\u0001U\u0001V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001W\u0001"+ + "W\u0001W\u0001W\u0001W\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ + "X\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0001]\u0001]"+ + "\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001_\u0001"+ + "_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0001"+ + "_\u0001_\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001e\u0001e\u0001"+ + "e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001"+ + "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001"+ + "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001o\u0001"+ + "o\u0001o\u0001o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ + "p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001"+ + "q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001s\u0001"+ + "s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001"+ + "t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001u\u0001"+ + "u\u0001u\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001"+ + "w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001}\u0001"+ + "}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080"+ + "\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0087\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088"+ + "\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u0090"+ + "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090"+ + "\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091"+ + "\u0001\u0091\u0001\u0091\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092"+ + "\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0093"+ + "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ + "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001\u0094"+ + "\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094"+ + "\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096"+ + "\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098"+ + "\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099"+ + "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a"+ + "\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b"+ + "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0001\u009b\u0001\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c"+ + "\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ + "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f"+ + "\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1"+ + "\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ + "\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+ + "\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ + "\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ + "\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6"+ + "\u0001\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ + "\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7"+ + "\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+ + "\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ + "\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ + "\u0001\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae"+ + "\u0001\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af"+ + "\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1"+ + "\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3"+ + "\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b5\u0001\u00b5"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7"+ + "\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8"+ + "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b9"+ + "\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ + "\u0001\u00b9\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba"+ + "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001\u00bb\u0001\u00bb"+ + "\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ + "\u0001\u00bb\u0001\u00bb\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc"+ + "\u0001\u00bc\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be"+ + "\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ + "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+ + "\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ + "\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ + "\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6"+ + "\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7"+ + "\u0001\u00c7\u0001\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+ + "\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ + "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ + "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0"+ + "\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2"+ + "\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3"+ + "\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ + "\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4"+ + "\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5"+ + "\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d8"+ + "\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8"+ + "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0001\u00d9\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00de"+ + "\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ + "\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ + "\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e5"+ + "\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5"+ + "\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ + "\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7"+ + "\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001\u00e9\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00ea"+ + "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea"+ + "\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00ec"+ + "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ + "\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed"+ + "\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee"+ + "\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00ef"+ + "\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0"+ + "\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1"+ + "\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1"+ + "\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f3\u0001\u00f3"+ + "\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3"+ + "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4"+ + "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ + "\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ + "\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6"+ + "\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8"+ + "\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9"+ + "\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fa"+ + "\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb"+ + "\u0001\u00fb\u0001\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc"+ + "\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd"+ + "\u0001\u00fd\u0001\u00fd\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe"+ + "\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff"+ + "\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ + "\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0100"+ + "\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0101\u0001\u0102\u0001\u0102"+ + "\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0103\u0001\u0103"+ + "\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103"+ + "\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104"+ + "\u0001\u0104\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105"+ + "\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106\u0001\u0106"+ + "\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0107"+ + "\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0108"+ + "\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0109\u0001\u0109"+ + "\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u010a"+ + "\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010a\u0001\u010b\u0001\u010b"+ + "\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001\u010c"+ + "\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c"+ + "\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d"+ + "\u0001\u010d\u0001\u010e\u0001\u010e\u0001\u010f\u0001\u010f\u0001\u010f"+ + "\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u0110"+ + "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110"+ + "\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0111\u0001\u0111\u0001\u0111"+ + "\u0001\u0111\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112"+ + "\u0001\u0112\u0001\u0112\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0114"+ + "\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0115\u0001\u0115"+ + "\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0116\u0001\u0116"+ + "\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116"+ + "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117"+ + "\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118"+ + "\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119"+ + "\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119"+ + "\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a"+ + "\u0001\u011a\u0001\u011a\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b"+ + "\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011c\u0001\u011c\u0001\u011c"+ + "\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c"+ + "\u0001\u011c\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d\u0001\u011d"+ + "\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011f"+ + "\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001\u0120"+ + "\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120"+ + "\u0001\u0120\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121"+ + "\u0001\u0121\u0001\u0121\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122"+ + "\u0001\u0122\u0001\u0122\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ + "\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123"+ + "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124"+ + "\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125"+ + "\u0001\u0125\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126"+ + "\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0127\u0001\u0127"+ + "\u0001\u0127\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128"+ + "\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0129"+ + "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129"+ + "\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u012a\u0001\u012a\u0001\u012a"+ + "\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012b\u0001\u012b\u0001\u012b"+ + "\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012b"+ + "\u0001\u012b\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c\u0001\u012c"+ + "\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d"+ + "\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e"+ + "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e"+ + "\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012f\u0001\u012f\u0001\u012f"+ + "\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f"+ + "\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130"+ + "\u0001\u0130\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131"+ + "\u0001\u0131\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132"+ + "\u0001\u0132\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ + "\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133"+ + "\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134"+ + "\u0001\u0134\u0001\u0134\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135"+ + "\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0136"+ + "\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137"+ + "\u0001\u0137\u0001\u0137\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138"+ + "\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u0139"+ + "\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ + "\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a\u0001\u013a"+ + "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ + "\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b"+ + "\u0001\u013b\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c"+ + "\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013d\u0001\u013d"+ + "\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e\u0001\u013e"+ + "\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013f"+ + "\u0001\u013f\u0001\u013f\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ + "\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140"+ + "\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141\u0001\u0141"+ + "\u0001\u0141\u0001\u0141\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142"+ + "\u0001\u0142\u0001\u0143\u0001\u0143\u0001\u0144\u0001\u0144\u0001\u0144"+ + "\u0001\u0144\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ + "\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145\u0001\u0145"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146"+ + "\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0147\u0001\u0147\u0001\u0147"+ + "\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148"+ + "\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0149\u0001\u0149\u0001\u0149"+ + "\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149"+ + "\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a"+ + "\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014c"+ + "\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c"+ + "\u0001\u014c\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d"+ + "\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014e"+ + "\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014f\u0001\u014f\u0001\u014f"+ + "\u0001\u014f\u0001\u014f\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0151\u0001\u0151\u0001\u0151"+ + "\u0001\u0151\u0001\u0151\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152"+ + "\u0001\u0152\u0001\u0152\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153"+ + "\u0001\u0153\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154"+ + "\u0001\u0154\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155"+ + "\u0001\u0155\u0001\u0155\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0157"+ + "\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0157\u0001\u0158\u0001\u0158"+ + "\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159"+ + "\u0001\u0159\u0001\u0159\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ + "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a"+ + "\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015b"+ + "\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b"+ + "\u0001\u015b\u0001\u015b\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c"+ + "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015d\u0001\u015d"+ + "\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015e\u0001\u015e\u0001\u015e"+ + "\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015f\u0001\u015f"+ + "\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u0160\u0001\u0160"+ + "\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0161\u0001\u0162"+ + "\u0001\u0162\u0001\u0162\u0001\u0162\u0001\u0163\u0001\u0163\u0001\u0163"+ + "\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0164"+ + "\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165"+ + "\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166"+ + "\u0001\u0166\u0001\u0166\u0001\u0167\u0001\u0167\u0001\u0167\u0001\u0167"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0169\u0001\u0169\u0001\u0169"+ + "\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u016a\u0001\u016a"+ + "\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016a\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b"+ + "\u0001\u016b\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c"+ + "\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016d\u0001\u016d"+ + "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d"+ + "\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016e"+ + "\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e\u0001\u016e"+ + "\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u0170\u0001\u0170"+ + "\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0170\u0001\u0171"+ + "\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0171"+ + "\u0001\u0171\u0001\u0171\u0001\u0172\u0001\u0172\u0001\u0172\u0001\u0172"+ + "\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0173\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174"+ + "\u0001\u0174\u0001\u0174\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0175"+ + "\u0001\u0175\u0001\u0175\u0001\u0175\u0001\u0176\u0001\u0176\u0001\u0176"+ + "\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0176\u0001\u0177\u0001\u0177"+ + "\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0178\u0001\u0178"+ + "\u0001\u0178\u0001\u0178\u0001\u0178\u0001\u0179\u0001\u0179\u0001\u0179"+ + "\u0001\u0179\u0001\u0179\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a"+ + "\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017a\u0001\u017b"+ + "\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017c"+ + "\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017c\u0001\u017d\u0001\u017d"+ + "\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e\u0001\u017e"+ + "\u0001\u017e\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u017f"+ + "\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0180\u0001\u0180\u0001\u0180\u0001\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0182\u0001\u0182\u0001\u0182"+ + "\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0182\u0001\u0183"+ + "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0184\u0001\u0184\u0001\u0184"+ + "\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185\u0001\u0185\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187"+ + "\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0188"+ + "\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0188\u0001\u0189\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ + "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018a"+ + "\u0001\u018a\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018b\u0001\u018c"+ + "\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018c"+ + "\u0001\u018c\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d\u0001\u018d"+ + "\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e"+ + "\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018e\u0001\u018f\u0001\u018f"+ + "\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u0190"+ + "\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0190\u0001\u0191\u0001\u0191"+ + "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ + "\u0001\u0191\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192\u0001\u0192"+ + "\u0001\u0192\u0001\u0192\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193"+ + "\u0001\u0193\u0001\u0193\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0194"+ + "\u0001\u0194\u0001\u0194\u0001\u0194\u0001\u0195\u0001\u0195\u0001\u0195"+ + "\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0195\u0001\u0196"+ + "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196"+ + "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ + "\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197"+ + "\u0001\u0197\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198"+ + "\u0001\u0198\u0001\u0198\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u019a"+ + "\u0001\u019a\u0001\u019a\u0001\u019a\u0001\u019b\u0001\u019b\u0001\u019b"+ + "\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019b\u0001\u019c\u0001\u019c"+ + "\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019d\u0001\u019d\u0001\u019d"+ + "\u0001\u019d\u0001\u019e\u0001\u019e\u0001\u019e\u0001\u019f\u0001\u019f"+ + "\u0001\u019f\u0001\u019f\u0001\u019f\u0001\u01a0\u0001\u01a0\u0001\u01a0"+ + "\u0001\u01a0\u0001\u01a0\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ + "\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1"+ + "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a2"+ + "\u0001\u01a2\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001\u01a3"+ + "\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a3\u0001\u01a4\u0001\u01a4"+ + "\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4\u0001\u01a4"+ + "\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a6\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a6\u0001\u01a6\u0001\u01a6\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ + "\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7\u0001\u01a7"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a9"+ + "\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ + "\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01aa\u0001\u01ab\u0001\u01ab"+ + "\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ac\u0001\u01ac"+ + "\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ac\u0001\u01ad"+ + "\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae\u0001\u01ae"+ + "\u0001\u01ae\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01af"+ + "\u0001\u01af\u0001\u01af\u0001\u01af\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ + "\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0"+ + "\u0001\u01b0\u0001\u01b0\u0001\u01b1\u0001\u01b1\u0001\u01b1\u0001\u01b1"+ + "\u0001\u01b1\u0001\u01b1\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0001\u01b2"+ + "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3"+ + "\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b3\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4"+ + "\u0001\u01b4\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5"+ + "\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6\u0001\u01b6"+ + "\u0001\u01b6\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7"+ + "\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b7\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8"+ + "\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b8\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba"+ + "\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01ba\u0001\u01bb"+ + "\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb\u0001\u01bb"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ + "\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd\u0001\u01bd"+ + "\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be\u0001\u01be"+ + "\u0001\u01be\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ + "\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01c0\u0001\u01c0"+ + "\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2\u0001\u01c2"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ + "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ + "\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3\u0001\u01c3"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4\u0001\u01c4"+ + "\u0001\u01c4\u0001\u01c4\u0001\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c5"+ + "\u0001\u01c5\u0001\u01c5\u0001\u01c6\u0001\u01c6\u0001\u01c6\u0001\u01c6"+ + "\u0001\u01c6\u0001\u01c6\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c7"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c8"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c8\u0001\u01c9\u0001\u01c9\u0001\u01c9"+ + "\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01c9\u0001\u01ca"+ + "\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01ca\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ + "\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc\u0001\u01cc"+ + "\u0001\u01cc\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd\u0001\u01cd"+ + "\u0001\u01cd\u0001\u01cd\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce"+ + "\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf\u0001\u01cf"+ + "\u0001\u01cf\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0"+ + "\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d0\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1"+ + "\u0001\u01d1\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2"+ + "\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d3\u0001\u01d3\u0001\u01d3"+ + "\u0001\u01d3\u0001\u01d3\u0001\u01d3\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ + "\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4\u0001\u01d4"+ + "\u0001\u01d4\u0001\u01d4\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ + "\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5\u0001\u01d5"+ + "\u0001\u01d5\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6"+ + "\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d6\u0001\u01d7"+ + "\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d7"+ + "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ + "\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d8"+ + "\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0001\u01d9"+ + "\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da\u0001\u01da"+ + "\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01db\u0001\u01dc"+ + "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dd\u0001\u01dd"+ + "\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01de\u0001\u01de"+ + "\u0001\u01de\u0001\u01de\u0001\u01de\u0001\u01df\u0001\u01df\u0001\u01df"+ + "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0\u0001\u01e0"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ + "\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ + "\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3"+ + "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e5\u0001\u01e5\u0001\u01e5"+ + "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e6\u0001\u01e6\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ + "\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7\u0001\u01e7"+ + "\u0001\u01e7\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01e9"+ + "\u0001\u01e9\u0001\u01e9\u0001\u01e9\u0001\u01ea\u0001\u01ea\u0001\u01ea"+ + "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01eb"+ + "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb"+ + "\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01eb\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec\u0001\u01ec"+ + "\u0001\u01ec\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ed\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ + "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1\u0001\u01f1"+ + "\u0001\u01f1\u0001\u01f1\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f2"+ + "\u0001\u01f2\u0001\u01f2\u0001\u01f2\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ + "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3"+ + "\u0001\u01f3\u0001\u01f3\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4"+ + "\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6\u0001\u01f6"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f7\u0001\u01f7\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8"+ + "\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f8\u0001\u01f9"+ + "\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9\u0001\u01f9"+ + "\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa\u0001\u01fa"+ + "\u0001\u01fa\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb"+ + "\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fb\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc\u0001\u01fc"+ + "\u0001\u01fc\u0001\u01fc\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd\u0001\u01fd"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe\u0001\u01fe"+ + "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff"+ + "\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u0200\u0001\u0200"+ + "\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200"+ + "\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201\u0001\u0201"+ + "\u0001\u0201\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202\u0001\u0202"+ + "\u0001\u0202\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203\u0001\u0203"+ + "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204"+ + "\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0205\u0001\u0205\u0001\u0205"+ + "\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0205\u0001\u0206\u0001\u0206"+ + "\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206\u0001\u0206"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207"+ + "\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0207\u0001\u0208\u0001\u0208"+ + "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208"+ + "\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0208\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209"+ + "\u0001\u0209\u0001\u0209\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a"+ + "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b"+ + "\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020b\u0001\u020c\u0001\u020c"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020c"+ + "\u0001\u020c\u0001\u020c\u0001\u020c\u0001\u020d\u0001\u020d\u0001\u020d"+ + "\u0001\u020d\u0001\u020d\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e"+ + "\u0001\u020e\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f"+ + "\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u020f\u0001\u0210"+ + "\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0210\u0001\u0211"+ + "\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211\u0001\u0211"+ + "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212\u0001\u0212"+ + "\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213\u0001\u0213"+ + "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214\u0001\u0214"+ + "\u0001\u0214\u0001\u0214\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ + "\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215\u0001\u0215"+ + "\u0001\u0215\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ + "\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216\u0001\u0216"+ + "\u0001\u0216\u0001\u0216\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0217"+ + "\u0001\u0217\u0001\u0217\u0001\u0217\u0001\u0218\u0001\u0218\u0001\u0218"+ + "\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0218\u0001\u0219\u0001\u0219"+ + "\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u0219\u0001\u021a"+ + "\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a\u0001\u021a"+ + "\u0001\u021a\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b"+ + "\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021b\u0001\u021c\u0001\u021c"+ + "\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021c\u0001\u021d"+ + "\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021d\u0001\u021e\u0001\u021e"+ + "\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e\u0001\u021e"+ + "\u0001\u021e\u0001\u021e\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f"+ + "\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u021f\u0001\u0220"+ + "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0220"+ + "\u0001\u0220\u0001\u0220\u0001\u0220\u0001\u0221\u0001\u0221\u0001\u0221"+ + "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221"+ + "\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0221\u0001\u0222\u0001\u0222"+ + "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222"+ + "\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0222\u0001\u0223\u0001\u0223"+ + "\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223\u0001\u0223"+ + "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224"+ + "\u0001\u0224\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0225\u0001\u0226"+ + "\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0227"+ + "\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0227\u0001\u0228\u0001\u0228"+ + "\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0229\u0001\u0229"+ + "\u0001\u0229\u0001\u0229\u0001\u0229\u0001\u022a\u0001\u022a\u0001\u022a"+ + "\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022a\u0001\u022b"+ + "\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b\u0001\u022b"+ + "\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022c\u0001\u022d"+ + "\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022d\u0001\u022e\u0001\u022e"+ + "\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e\u0001\u022e"+ + "\u0001\u022e\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f"+ + "\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u022f\u0001\u0230\u0001\u0230"+ + "\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0231\u0001\u0231\u0001\u0231"+ + "\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0231\u0001\u0232\u0001\u0232"+ + "\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0232\u0001\u0233\u0001\u0233"+ + "\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233\u0001\u0233"+ + "\u0001\u0233\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0234"+ + "\u0001\u0234\u0001\u0234\u0001\u0234\u0001\u0235\u0001\u0235\u0001\u0235"+ + "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235"+ + "\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0235\u0001\u0236\u0001\u0236"+ + "\u0001\u0236\u0001\u0236\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237"+ + "\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0237\u0001\u0238\u0001\u0238"+ + "\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238\u0001\u0238"+ + "\u0001\u0238\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ + "\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239\u0001\u0239"+ + "\u0001\u0239\u0001\u0239\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a"+ + "\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023a\u0001\u023b"+ + "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b"+ + "\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023b\u0001\u023c\u0001\u023c"+ + "\u0001\u023c\u0001\u023c\u0001\u023c\u0001\u023d\u0001\u023d\u0001\u023d"+ + "\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023d\u0001\u023e\u0001\u023e"+ + "\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023e\u0001\u023f\u0001\u023f"+ + "\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u023f\u0001\u0240\u0001\u0240"+ + "\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240\u0001\u0240"+ + "\u0001\u0240\u0001\u0240\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0241"+ + "\u0001\u0241\u0001\u0241\u0001\u0241\u0001\u0242\u0001\u0242\u0001\u0242"+ + "\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242\u0001\u0242"+ + "\u0001\u0242\u0001\u0242\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ + "\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243\u0001\u0243"+ + "\u0001\u0243\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ + "\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244\u0001\u0244"+ + "\u0001\u0244\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245\u0001\u0245"+ + "\u0001\u0245\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246\u0001\u0246"+ + "\u0001\u0246\u0001\u0246\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247"+ + "\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0247\u0001\u0248\u0001\u0248"+ + "\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0248\u0001\u0249"+ + "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u0249"+ + "\u0001\u0249\u0001\u0249\u0001\u0249\u0001\u024a\u0001\u024a\u0001\u024a"+ + "\u0001\u024a\u0001\u024a\u0001\u024a\u0001\u024b\u0001\u024b\u0001\u024b"+ + "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ + "\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b\u0001\u024b"+ + "\u0001\u024b\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024c"+ + "\u0001\u024c\u0001\u024c\u0001\u024c\u0001\u024d\u0001\u024d\u0001\u024d"+ + "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024d"+ + "\u0001\u024d\u0001\u024d\u0001\u024d\u0001\u024e\u0001\u024e\u0001\u024e"+ + "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e"+ + "\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024e\u0001\u024f\u0001\u024f"+ + "\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f\u0001\u024f"+ + "\u0001\u024f\u0001\u024f\u0001\u0250\u0001\u0250\u0001\u0250\u0001\u0250"+ + "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251"+ + "\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0251\u0001\u0252\u0001\u0252"+ + "\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0252\u0001\u0253\u0001\u0253"+ + "\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0253\u0001\u0254"+ + "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254"+ + "\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0254\u0001\u0255"+ + "\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0255\u0001\u0256"+ + "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256"+ + "\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0256\u0001\u0257\u0001\u0257"+ + "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257"+ + "\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0257\u0001\u0258\u0001\u0258"+ + "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0258"+ + "\u0001\u0258\u0001\u0258\u0001\u0258\u0001\u0259\u0001\u0259\u0001\u0259"+ + "\u0001\u0259\u0001\u0259\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a"+ + "\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025a\u0001\u025b"+ + "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025b"+ + "\u0001\u025b\u0001\u025b\u0001\u025b\u0001\u025c\u0001\u025c\u0001\u025c"+ + "\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c\u0001\u025c"+ + "\u0001\u025c\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d\u0001\u025d"+ + "\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025e\u0001\u025f"+ + "\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u025f\u0001\u0260\u0001\u0260"+ + "\u0001\u0260\u0001\u0260\u0001\u0260\u0001\u0261\u0001\u0261\u0001\u0261"+ + "\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261\u0001\u0261"+ + "\u0001\u0261\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ + "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0262"+ + "\u0001\u0262\u0001\u0262\u0001\u0262\u0001\u0263\u0001\u0263\u0001\u0263"+ + "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ + "\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263\u0001\u0263"+ + "\u0001\u0263\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264\u0001\u0264"+ + "\u0001\u0264\u0001\u0264\u0001\u0265\u0001\u0265\u0001\u0265\u0001\u0266"+ + "\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0266\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0267"+ + "\u0001\u0267\u0001\u0267\u0001\u0267\u0001\u0268\u0001\u0268\u0001\u0268"+ + "\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268\u0001\u0268"+ + "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269\u0001\u0269"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a\u0001\u026a"+ + "\u0001\u026a\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b\u0001\u026b"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c\u0001\u026c"+ + "\u0001\u026c\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d"+ + "\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026d\u0001\u026e"+ + "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e"+ + "\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026e\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f\u0001\u026f"+ + "\u0001\u026f\u0001\u026f\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ + "\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270\u0001\u0270"+ + "\u0001\u0270\u0001\u0270\u0001\u0271\u0001\u0271\u0001\u0271\u0001\u0271"+ + "\u0001\u0271\u0001\u0271\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272"+ + "\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0272\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273\u0001\u0273"+ + "\u0001\u0273\u0001\u0273\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ + "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0274"+ + "\u0001\u0274\u0001\u0274\u0001\u0274\u0001\u0275\u0001\u0275\u0001\u0275"+ + "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ + "\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275\u0001\u0275"+ + "\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0276\u0001\u0277"+ + "\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0277\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278\u0001\u0278"+ + "\u0001\u0278\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u0279"+ + "\u0001\u0279\u0001\u0279\u0001\u0279\u0001\u027a\u0001\u027a\u0001\u027a"+ + "\u0001\u027a\u0001\u027a\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b"+ + "\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027b\u0001\u027c\u0001\u027c"+ + "\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c\u0001\u027c"+ + "\u0001\u027c\u0001\u027c\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ + "\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d\u0001\u027d"+ + "\u0001\u027d\u0001\u027d\u0001\u027e\u0001\u027e\u0001\u027e\u0001\u027e"+ + "\u0001\u027e\u0001\u027e\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ + "\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f\u0001\u027f"+ + "\u0001\u027f\u0001\u027f\u0001\u0280\u0001\u0280\u0001\u0280\u0001\u0280"+ + "\u0001\u0280\u0001\u0280\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0281"+ + "\u0001\u0281\u0001\u0281\u0001\u0281\u0001\u0282\u0001\u0282\u0001\u0282"+ + "\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0282\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283\u0001\u0283"+ + "\u0001\u0283\u0001\u0283\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284"+ + "\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0284\u0001\u0285\u0001\u0285"+ + "\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0285\u0001\u0286"+ + "\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0286\u0001\u0287"+ + "\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287\u0001\u0287"+ + "\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288\u0001\u0288"+ + "\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289\u0001\u0289"+ + "\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028a\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b\u0001\u028b"+ + "\u0001\u028b\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c\u0001\u028c"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d"+ + "\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028d\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e\u0001\u028e"+ + "\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f\u0001\u028f"+ + "\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290\u0001\u0290"+ + "\u0001\u0290\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291\u0001\u0291"+ + "\u0001\u0291\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292"+ + "\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0292\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293\u0001\u0293"+ + "\u0001\u0293\u0001\u0293\u0001\u0294\u0001\u0294\u0001\u0294\u0001\u0294"+ + "\u0001\u0294\u0001\u0294\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0295"+ + "\u0001\u0295\u0001\u0295\u0001\u0295\u0001\u0296\u0001\u0296\u0001\u0296"+ + "\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0296\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297\u0001\u0297"+ + "\u0001\u0297\u0001\u0297\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298"+ + "\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0298\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299\u0001\u0299"+ + "\u0001\u0299\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a"+ + "\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029a\u0001\u029b\u0001\u029b"+ + "\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b\u0001\u029b"+ + "\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c\u0001\u029c"+ + "\u0001\u029c\u0001\u029c\u0001\u029d\u0001\u029d\u0001\u029d\u0001\u029d"+ + "\u0001\u029d\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e"+ + "\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029e\u0001\u029f\u0001\u029f"+ + "\u0001\u029f\u0001\u029f\u0001\u029f\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ + "\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0\u0001\u02a0"+ + "\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1\u0001\u02a1"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2\u0001\u02a2"+ + "\u0001\u02a2\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3\u0001\u02a3"+ + "\u0001\u02a3\u0001\u02a3\u0001\u02a4\u0001\u02a4\u0001\u02a4\u0001\u02a4"+ + "\u0001\u02a4\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5\u0001\u02a5"+ + "\u0001\u02a5\u0001\u02a5\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6"+ + "\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a6\u0001\u02a7\u0001\u02a7"+ + "\u0001\u02a7\u0001\u02a7\u0001\u02a7\u0001\u02a8\u0001\u02a8\u0001\u02a8"+ + "\u0001\u02a8\u0001\u02a8\u0001\u02a8\u0001\u02a9\u0001\u02a9\u0001\u02a9"+ + "\u0001\u02a9\u0001\u02a9\u0001\u02aa\u0001\u02aa\u0001\u02aa\u0001\u02aa"+ + "\u0001\u02aa\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ab\u0001\u02ac"+ + "\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ac\u0001\u02ad\u0001\u02ad"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad\u0001\u02ad"+ + "\u0001\u02ad\u0001\u02ad\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ + "\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae\u0001\u02ae"+ + "\u0001\u02ae\u0001\u02ae\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ + "\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af\u0001\u02af"+ + "\u0001\u02af\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ + "\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0\u0001\u02b0"+ + "\u0001\u02b0\u0001\u02b0\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1"+ + "\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b1\u0001\u02b2\u0001\u02b2"+ + "\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2\u0001\u02b2"+ + "\u0001\u02b2\u0001\u02b2\u0001\u02b3\u0001\u02b3\u0001\u02b3\u0001\u02b3"+ + "\u0001\u02b3\u0001\u02b3\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4"+ + "\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b4\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5"+ + "\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b5\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6\u0001\u02b6"+ + "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7"+ + "\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b7\u0001\u02b8\u0001\u02b8"+ + "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8"+ + "\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b8\u0001\u02b9\u0001\u02b9"+ + "\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02b9\u0001\u02ba\u0001\u02ba"+ + "\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02ba\u0001\u02bb\u0001\u02bb"+ + "\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bb\u0001\u02bc"+ + "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bc"+ + "\u0001\u02bc\u0001\u02bc\u0001\u02bc\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd\u0001\u02bd"+ + "\u0001\u02bd\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ + "\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be\u0001\u02be"+ + "\u0001\u02be\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf\u0001\u02bf"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0\u0001\u02c0"+ + "\u0001\u02c0\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1"+ + "\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c1\u0001\u02c2\u0001\u02c2"+ + "\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c2\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3\u0001\u02c3"+ + "\u0001\u02c3\u0001\u02c3\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c4"+ + "\u0001\u02c4\u0001\u02c4\u0001\u02c4\u0001\u02c5\u0001\u02c5\u0001\u02c5"+ + "\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c5\u0001\u02c6"+ + "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6"+ + "\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c6\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c7"+ + "\u0001\u02c7\u0001\u02c7\u0001\u02c7\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ + "\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8\u0001\u02c8"+ + "\u0001\u02c8\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9\u0001\u02c9"+ + "\u0001\u02c9\u0001\u02c9\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca"+ + "\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02ca\u0001\u02cb"+ + "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ + "\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb\u0001\u02cb"+ + "\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cc\u0001\u02cd"+ + "\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd\u0001\u02cd"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02ce"+ + "\u0001\u02ce\u0001\u02ce\u0001\u02ce\u0001\u02cf\u0001\u02cf\u0001\u02cf"+ + "\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0\u0001\u02d0"+ + "\u0001\u02d0\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ + "\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1\u0001\u02d1"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d2"+ + "\u0001\u02d2\u0001\u02d2\u0001\u02d2\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ + "\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3\u0001\u02d3"+ + "\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4\u0001\u02d4"+ + "\u0001\u02d4\u0001\u02d4\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5\u0001\u02d5"+ + "\u0001\u02d5\u0001\u02d5\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6\u0001\u02d6"+ + "\u0001\u02d6\u0001\u02d6\u0001\u02d7\u0001\u02d7\u0001\u02d7\u0001\u02d7"+ + "\u0001\u02d7\u0001\u02d7\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8"+ + "\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d8\u0001\u02d9\u0001\u02d9"+ + "\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02d9\u0001\u02da"+ + "\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02da\u0001\u02db"+ + "\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02db\u0001\u02dc\u0001\u02dc"+ + "\u0001\u02dc\u0001\u02dc\u0001\u02dc\u0001\u02dd\u0001\u02dd\u0001\u02dd"+ + "\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02dd\u0001\u02de\u0001\u02de"+ + "\u0001\u02de\u0001\u02de\u0001\u02df\u0001\u02df\u0001\u02df\u0001\u02df"+ + "\u0001\u02df\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0\u0001\u02e0"+ + "\u0001\u02e0\u0001\u02e0\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e1"+ + "\u0001\u02e1\u0001\u02e1\u0001\u02e1\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2"+ + "\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e2\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3\u0001\u02e3"+ + "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e4"+ + "\u0001\u02e4\u0001\u02e4\u0001\u02e4\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ + "\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5\u0001\u02e5"+ + "\u0001\u02e5\u0001\u02e5\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6"+ + "\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e6\u0001\u02e7\u0001\u02e7"+ + "\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e7\u0001\u02e8"+ + "\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8\u0001\u02e8"+ + "\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9\u0001\u02e9"+ + "\u0001\u02e9\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea\u0001\u02ea"+ + "\u0001\u02ea\u0001\u02ea\u0001\u02eb\u0001\u02eb\u0001\u02eb\u0001\u02eb"+ + "\u0001\u02eb\u0001\u02eb\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec"+ + "\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ec\u0001\u02ed\u0001\u02ed"+ + "\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed\u0001\u02ed"+ + "\u0001\u02ed\u0001\u02ed\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ + "\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee\u0001\u02ee"+ + "\u0001\u02ee\u0001\u02ee\u0001\u02ef\u0001\u02ef\u0001\u02ef\u0001\u02ef"+ + "\u0001\u02ef\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f0\u0001\u02f1"+ + "\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f1\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2"+ + "\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f2\u0001\u02f3"+ + "\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f3\u0001\u02f4\u0001\u02f4"+ + "\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f4\u0001\u02f5"+ + "\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5\u0001\u02f5"+ + "\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6\u0001\u02f6"+ + "\u0001\u02f6\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7\u0001\u02f7"+ + "\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f8\u0001\u02f9"+ + "\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02f9\u0001\u02fa\u0001\u02fa"+ + "\u0001\u02fa\u0001\u02fa\u0001\u02fa\u0001\u02fb\u0001\u02fb\u0001\u02fb"+ + "\u0001\u02fb\u0001\u02fb\u0001\u02fc\u0001\u02fc\u0001\u02fc\u0001\u02fc"+ + "\u0001\u02fc\u0001\u02fc\u0001\u02fd\u0001\u02fd\u0001\u02fd\u0001\u02fd"+ + "\u0001\u02fd\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe\u0001\u02fe"+ + "\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff\u0001\u02ff"+ + "\u0001\u02ff\u0001\u02ff\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300"+ + "\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0300\u0001\u0301"+ + "\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0301\u0001\u0302"+ + "\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302\u0001\u0302"+ + "\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303\u0001\u0303"+ + "\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304\u0001\u0304"+ + "\u0001\u0304\u0001\u0304\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305"+ + "\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0305\u0001\u0306\u0001\u0306"+ + "\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0306\u0001\u0307"+ + "\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307\u0001\u0307"+ + "\u0001\u0307\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0308"+ + "\u0001\u0308\u0001\u0308\u0001\u0308\u0001\u0309\u0001\u0309\u0001\u0309"+ + "\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u0309\u0001\u030a"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a"+ + "\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030a\u0001\u030b"+ + "\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b\u0001\u030b"+ + "\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030c\u0001\u030d"+ + "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d"+ + "\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030d\u0001\u030e"+ + "\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e\u0001\u030e"+ + "\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f\u0001\u030f"+ + "\u0001\u030f\u0001\u030f\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310"+ + "\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0310\u0001\u0311"+ + "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ + "\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311\u0001\u0311"+ + "\u0001\u0311\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312\u0001\u0312"+ + "\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313\u0001\u0313"+ + "\u0001\u0313\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0314\u0001\u0315"+ + "\u0001\u0315\u0001\u0316\u0001\u0316\u0001\u0317\u0001\u0317\u0001\u0317"+ + "\u0001\u0318\u0001\u0318\u0001\u0319\u0001\u0319\u0001\u0319\u0001\u031a"+ + "\u0001\u031a\u0001\u031b\u0001\u031b\u0001\u031c\u0001\u031c\u0001\u031d"+ + "\u0001\u031d\u0001\u031e\u0001\u031e\u0001\u031f\u0001\u031f\u0001\u031f"+ + "\u0005\u031f\u20e7\b\u031f\n\u031f\f\u031f\u20ea\t\u031f\u0001\u031f\u0001"+ + "\u031f\u0001\u0320\u0001\u0320\u0001\u0320\u0001\u0321\u0003\u0321\u20f2"+ + "\b\u0321\u0001\u0321\u0004\u0321\u20f5\b\u0321\u000b\u0321\f\u0321\u20f6"+ + "\u0001\u0321\u0001\u0321\u0004\u0321\u20fb\b\u0321\u000b\u0321\f\u0321"+ + "\u20fc\u0001\u0321\u0001\u0321\u0005\u0321\u2101\b\u0321\n\u0321\f\u0321"+ + "\u2104\t\u0321\u0001\u0321\u0004\u0321\u2107\b\u0321\u000b\u0321\f\u0321"+ + "\u2108\u0003\u0321\u210b\b\u0321\u0001\u0322\u0003\u0322\u210e\b\u0322"+ + "\u0001\u0322\u0004\u0322\u2111\b\u0322\u000b\u0322\f\u0322\u2112\u0001"+ + "\u0322\u0001\u0322\u0004\u0322\u2117\b\u0322\u000b\u0322\f\u0322\u2118"+ + "\u0003\u0322\u211b\b\u0322\u0001\u0323\u0001\u0323\u0001\u0323\u0001\u0324"+ + "\u0001\u0324\u0001\u0325\u0001\u0325\u0001\u0326\u0001\u0326\u0001\u0327"+ + "\u0001\u0327\u0005\u0327\u2128\b\u0327\n\u0327\f\u0327\u212b\t\u0327\u0001"+ + "\u0328\u0001\u0328\u0004\u0328\u212f\b\u0328\u000b\u0328\f\u0328\u2130"+ + "\u0001\u0329\u0001\u0329\u0005\u0329\u2135\b\u0329\n\u0329\f\u0329\u2138"+ + "\t\u0329\u0001\u032a\u0001\u032a\u0001\u032b\u0001\u032b\u0001\u032b\u0001"+ + "\u032c\u0001\u032c\u0001\u032c\u0001\u032d\u0001\u032d\u0001\u032d\u0001"+ + "\u032e\u0001\u032e\u0001\u032e\u0001\u032f\u0001\u032f\u0001\u0330\u0001"+ + "\u0330\u0001\u0331\u0001\u0331\u0001\u0331\u0001\u0332\u0001\u0332\u0001"+ + "\u0332\u0001\u0333\u0001\u0333\u0001\u0334\u0001\u0334\u0001\u0335\u0001"+ + "\u0335\u0001\u0335\u0001\u0336\u0001\u0336\u0001\u0337\u0001\u0337\u0001"+ + "\u0337\u0001\u0338\u0001\u0338\u0001\u0338\u0001\u0339\u0001\u0339\u0001"+ + "\u033a\u0001\u033a\u0001\u033a\u0001\u033b\u0001\u033b\u0001\u033b\u0001"+ + "\u033c\u0001\u033c\u0001\u033c\u0001\u033c\u0001\u033d\u0001\u033d\u0001"+ + "\u033d\u0001\u033e\u0001\u033e\u0001\u033e\u0001\u033f\u0001\u033f\u0001"+ + "\u033f\u0001\u033f\u0001\u0340\u0001\u0340\u0001\u0340\u0001\u0340\u0001"+ + "\u0341\u0001\u0341\u0001\u0342\u0001\u0342\u0001\u0342\u0001\u0343\u0001"+ + "\u0343\u0001\u0343\u0001\u0344\u0001\u0344\u0001\u0344\u0001\u0345\u0001"+ + "\u0345\u0001\u0345\u0001\u0346\u0001\u0346\u0001\u0346\u0001\u0346\u0001"+ + "\u0347\u0001\u0347\u0001\u0347\u0001\u0348\u0001\u0348\u0001\u0348\u0001"+ + "\u0348\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u0349\u0001\u034a\u0001"+ + "\u034a\u0001\u034b\u0001\u034b\u0001\u034c\u0001\u034c\u0001\u034d\u0001"+ + "\u034d\u0001\u034d\u0001\u034e\u0001\u034e\u0001\u034e\u0001\u034e\u0001"+ + "\u034f\u0001\u034f\u0001\u034f\u0001\u0350\u0001\u0350\u0001\u0351\u0001"+ + "\u0351\u0001\u0352\u0001\u0352\u0001\u0352\u0001\u0353\u0001\u0353\u0001"+ + "\u0353\u0001\u0354\u0001\u0354\u0001\u0354\u0001\u0355\u0001\u0355\u0001"+ + "\u0355\u0001\u0356\u0001\u0356\u0001\u0357\u0001\u0357\u0001\u0358\u0001"+ + "\u0358\u0001\u0358\u0001\u0359\u0001\u0359\u0001\u0359\u0001\u0359\u0001"+ + "\u0359\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035a\u0001\u035b\u0001"+ + "\u035b\u0001\u035b\u0001\u035b\u0001\u035b\u0001\u035c\u0001\u035c\u0001"+ + "\u035c\u0001\u035c\u0001\u035d\u0001\u035d\u0001\u035d\u0001\u035e\u0001"+ + "\u035e\u0001\u035e\u0001\u035f\u0001\u035f\u0002\u06ce\u06dc\u0000\u0360"+ + "\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0000\t\u0000\u000b\u0000\r"+ + "\u0000\u000f\u0000\u0011\u0000\u0013\u0000\u0015\u0000\u0017\u0000\u0019"+ + "\u0000\u001b\u0000\u001d\u0000\u001f\u0000!\u0000#\u0000%\u0000\'\u0000"+ + ")\u0000+\u0000-\u0000/\u00001\u00003\u00005\u00007\u00009\u0000;\u0000"+ + "=\u0000?\u0000A\u0000C\u0000E\u0004G\u0005I\u0006K\u0007M\bO\tQ\nS\u000b"+ + "U\fW\rY\u000e[\u000f]\u0010_\u0011a\u0012c\u0013e\u0014g\u0015i\u0016"+ + "k\u0017m\u0018o\u0019q\u001as\u001bu\u001cw\u001dy\u001e{\u001f} \u007f"+ + "!\u0081\"\u0083#\u0085$\u0087%\u0089&\u008b\'\u008d(\u008f)\u0091*\u0093"+ + "+\u0095,\u0097-\u0099.\u009b/\u009d0\u009f1\u00a12\u00a33\u00a54\u00a7"+ + "5\u00a96\u00ab7\u00ad8\u00af9\u00b1:\u00b3;\u00b5<\u00b7=\u00b9>\u00bb"+ + "?\u00bd@\u00bfA\u00c1B\u00c3C\u00c5D\u00c7E\u00c9F\u00cbG\u00cdH\u00cf"+ + "I\u00d1J\u00d3K\u00d5L\u00d7M\u00d9N\u00dbO\u00ddP\u00dfQ\u00e1R\u00e3"+ + "S\u00e5T\u00e7U\u00e9V\u00ebW\u00edX\u00efY\u00f1Z\u00f3[\u00f5\\\u00f7"+ + "]\u00f9^\u00fb_\u00fd`\u00ffa\u0101b\u0103c\u0105d\u0107e\u0109f\u010b"+ + "g\u010dh\u010fi\u0111j\u0113k\u0115l\u0117m\u0119n\u011bo\u011dp\u011f"+ + "q\u0121r\u0123s\u0125t\u0127u\u0129v\u012bw\u012dx\u012fy\u0131z\u0133"+ + "{\u0135|\u0137}\u0139~\u013b\u007f\u013d\u0080\u013f\u0081\u0141\u0082"+ + "\u0143\u0083\u0145\u0084\u0147\u0085\u0149\u0086\u014b\u0087\u014d\u0088"+ + "\u014f\u0089\u0151\u008a\u0153\u008b\u0155\u008c\u0157\u008d\u0159\u008e"+ + "\u015b\u008f\u015d\u0090\u015f\u0091\u0161\u0092\u0163\u0093\u0165\u0094"+ + "\u0167\u0095\u0169\u0096\u016b\u0097\u016d\u0098\u016f\u0099\u0171\u009a"+ + "\u0173\u009b\u0175\u009c\u0177\u009d\u0179\u009e\u017b\u009f\u017d\u00a0"+ + "\u017f\u00a1\u0181\u00a2\u0183\u00a3\u0185\u00a4\u0187\u00a5\u0189\u00a6"+ + "\u018b\u00a7\u018d\u00a8\u018f\u00a9\u0191\u00aa\u0193\u00ab\u0195\u00ac"+ + "\u0197\u00ad\u0199\u00ae\u019b\u00af\u019d\u00b0\u019f\u00b1\u01a1\u00b2"+ + "\u01a3\u00b3\u01a5\u00b4\u01a7\u00b5\u01a9\u00b6\u01ab\u00b7\u01ad\u00b8"+ + "\u01af\u00b9\u01b1\u00ba\u01b3\u00bb\u01b5\u00bc\u01b7\u00bd\u01b9\u00be"+ + "\u01bb\u00bf\u01bd\u00c0\u01bf\u00c1\u01c1\u00c2\u01c3\u00c3\u01c5\u00c4"+ + "\u01c7\u00c5\u01c9\u00c6\u01cb\u00c7\u01cd\u00c8\u01cf\u00c9\u01d1\u00ca"+ + "\u01d3\u00cb\u01d5\u00cc\u01d7\u00cd\u01d9\u00ce\u01db\u00cf\u01dd\u00d0"+ + "\u01df\u00d1\u01e1\u00d2\u01e3\u00d3\u01e5\u00d4\u01e7\u00d5\u01e9\u00d6"+ + "\u01eb\u00d7\u01ed\u00d8\u01ef\u00d9\u01f1\u00da\u01f3\u00db\u01f5\u00dc"+ + "\u01f7\u00dd\u01f9\u00de\u01fb\u00df\u01fd\u00e0\u01ff\u00e1\u0201\u00e2"+ + "\u0203\u00e3\u0205\u00e4\u0207\u00e5\u0209\u00e6\u020b\u00e7\u020d\u00e8"+ + "\u020f\u00e9\u0211\u00ea\u0213\u00eb\u0215\u00ec\u0217\u00ed\u0219\u00ee"+ + "\u021b\u00ef\u021d\u00f0\u021f\u00f1\u0221\u00f2\u0223\u00f3\u0225\u00f4"+ + "\u0227\u00f5\u0229\u00f6\u022b\u00f7\u022d\u00f8\u022f\u00f9\u0231\u00fa"+ + "\u0233\u00fb\u0235\u00fc\u0237\u00fd\u0239\u00fe\u023b\u00ff\u023d\u0100"+ + "\u023f\u0101\u0241\u0102\u0243\u0103\u0245\u0104\u0247\u0105\u0249\u0106"+ + "\u024b\u0107\u024d\u0108\u024f\u0109\u0251\u010a\u0253\u010b\u0255\u010c"+ + "\u0257\u010d\u0259\u010e\u025b\u010f\u025d\u0110\u025f\u0111\u0261\u0112"+ + "\u0263\u0113\u0265\u0114\u0267\u0115\u0269\u0116\u026b\u0117\u026d\u0118"+ + "\u026f\u0119\u0271\u011a\u0273\u011b\u0275\u011c\u0277\u011d\u0279\u011e"+ + "\u027b\u011f\u027d\u0120\u027f\u0121\u0281\u0122\u0283\u0123\u0285\u0124"+ + "\u0287\u0125\u0289\u0126\u028b\u0127\u028d\u0128\u028f\u0129\u0291\u012a"+ + "\u0293\u012b\u0295\u012c\u0297\u012d\u0299\u012e\u029b\u012f\u029d\u0130"+ + "\u029f\u0131\u02a1\u0132\u02a3\u0133\u02a5\u0134\u02a7\u0135\u02a9\u0136"+ + "\u02ab\u0137\u02ad\u0138\u02af\u0139\u02b1\u013a\u02b3\u013b\u02b5\u013c"+ + "\u02b7\u013d\u02b9\u013e\u02bb\u013f\u02bd\u0140\u02bf\u0141\u02c1\u0142"+ + "\u02c3\u0143\u02c5\u0144\u02c7\u0145\u02c9\u0146\u02cb\u0147\u02cd\u0148"+ + "\u02cf\u0149\u02d1\u014a\u02d3\u014b\u02d5\u014c\u02d7\u014d\u02d9\u014e"+ + "\u02db\u014f\u02dd\u0150\u02df\u0151\u02e1\u0152\u02e3\u0153\u02e5\u0154"+ + "\u02e7\u0155\u02e9\u0156\u02eb\u0157\u02ed\u0158\u02ef\u0159\u02f1\u015a"+ + "\u02f3\u015b\u02f5\u015c\u02f7\u015d\u02f9\u015e\u02fb\u015f\u02fd\u0160"+ + "\u02ff\u0161\u0301\u0162\u0303\u0163\u0305\u0164\u0307\u0165\u0309\u0166"+ + "\u030b\u0167\u030d\u0168\u030f\u0169\u0311\u016a\u0313\u016b\u0315\u016c"+ + "\u0317\u016d\u0319\u016e\u031b\u016f\u031d\u0170\u031f\u0171\u0321\u0172"+ + "\u0323\u0173\u0325\u0174\u0327\u0175\u0329\u0176\u032b\u0177\u032d\u0178"+ + "\u032f\u0179\u0331\u017a\u0333\u017b\u0335\u017c\u0337\u017d\u0339\u017e"+ + "\u033b\u017f\u033d\u0180\u033f\u0181\u0341\u0182\u0343\u0183\u0345\u0184"+ + "\u0347\u0185\u0349\u0186\u034b\u0187\u034d\u0188\u034f\u0189\u0351\u018a"+ + "\u0353\u018b\u0355\u018c\u0357\u018d\u0359\u018e\u035b\u018f\u035d\u0190"+ + "\u035f\u0191\u0361\u0192\u0363\u0193\u0365\u0194\u0367\u0195\u0369\u0196"+ + "\u036b\u0197\u036d\u0198\u036f\u0199\u0371\u019a\u0373\u019b\u0375\u019c"+ + "\u0377\u019d\u0379\u019e\u037b\u019f\u037d\u01a0\u037f\u01a1\u0381\u01a2"+ + "\u0383\u01a3\u0385\u01a4\u0387\u01a5\u0389\u01a6\u038b\u01a7\u038d\u01a8"+ + "\u038f\u01a9\u0391\u01aa\u0393\u01ab\u0395\u01ac\u0397\u01ad\u0399\u01ae"+ + "\u039b\u01af\u039d\u01b0\u039f\u01b1\u03a1\u01b2\u03a3\u01b3\u03a5\u01b4"+ + "\u03a7\u01b5\u03a9\u01b6\u03ab\u01b7\u03ad\u01b8\u03af\u01b9\u03b1\u01ba"+ + "\u03b3\u01bb\u03b5\u01bc\u03b7\u01bd\u03b9\u01be\u03bb\u01bf\u03bd\u01c0"+ + "\u03bf\u01c1\u03c1\u01c2\u03c3\u01c3\u03c5\u01c4\u03c7\u01c5\u03c9\u01c6"+ + "\u03cb\u01c7\u03cd\u01c8\u03cf\u01c9\u03d1\u01ca\u03d3\u01cb\u03d5\u01cc"+ + "\u03d7\u01cd\u03d9\u01ce\u03db\u01cf\u03dd\u01d0\u03df\u01d1\u03e1\u01d2"+ + "\u03e3\u01d3\u03e5\u01d4\u03e7\u01d5\u03e9\u01d6\u03eb\u01d7\u03ed\u01d8"+ + "\u03ef\u01d9\u03f1\u01da\u03f3\u01db\u03f5\u01dc\u03f7\u01dd\u03f9\u01de"+ + "\u03fb\u01df\u03fd\u01e0\u03ff\u01e1\u0401\u01e2\u0403\u01e3\u0405\u01e4"+ + "\u0407\u01e5\u0409\u01e6\u040b\u01e7\u040d\u01e8\u040f\u01e9\u0411\u01ea"+ + "\u0413\u01eb\u0415\u01ec\u0417\u01ed\u0419\u01ee\u041b\u01ef\u041d\u01f0"+ + "\u041f\u01f1\u0421\u01f2\u0423\u01f3\u0425\u01f4\u0427\u01f5\u0429\u01f6"+ + "\u042b\u01f7\u042d\u01f8\u042f\u01f9\u0431\u01fa\u0433\u01fb\u0435\u01fc"+ + "\u0437\u01fd\u0439\u01fe\u043b\u01ff\u043d\u0200\u043f\u0201\u0441\u0202"+ + "\u0443\u0203\u0445\u0204\u0447\u0205\u0449\u0206\u044b\u0207\u044d\u0208"+ + "\u044f\u0209\u0451\u020a\u0453\u020b\u0455\u020c\u0457\u020d\u0459\u020e"+ + "\u045b\u020f\u045d\u0210\u045f\u0211\u0461\u0212\u0463\u0213\u0465\u0214"+ + "\u0467\u0215\u0469\u0216\u046b\u0217\u046d\u0218\u046f\u0219\u0471\u021a"+ + "\u0473\u021b\u0475\u021c\u0477\u021d\u0479\u021e\u047b\u021f\u047d\u0220"+ + "\u047f\u0221\u0481\u0222\u0483\u0223\u0485\u0224\u0487\u0225\u0489\u0226"+ + "\u048b\u0227\u048d\u0228\u048f\u0229\u0491\u022a\u0493\u022b\u0495\u022c"+ + "\u0497\u022d\u0499\u022e\u049b\u022f\u049d\u0230\u049f\u0231\u04a1\u0232"+ + "\u04a3\u0233\u04a5\u0234\u04a7\u0235\u04a9\u0236\u04ab\u0237\u04ad\u0238"+ + "\u04af\u0239\u04b1\u023a\u04b3\u023b\u04b5\u023c\u04b7\u023d\u04b9\u023e"+ + "\u04bb\u023f\u04bd\u0240\u04bf\u0241\u04c1\u0242\u04c3\u0243\u04c5\u0244"+ + "\u04c7\u0245\u04c9\u0246\u04cb\u0247\u04cd\u0248\u04cf\u0249\u04d1\u024a"+ + "\u04d3\u024b\u04d5\u024c\u04d7\u024d\u04d9\u024e\u04db\u024f\u04dd\u0250"+ + "\u04df\u0251\u04e1\u0252\u04e3\u0253\u04e5\u0254\u04e7\u0255\u04e9\u0256"+ + "\u04eb\u0257\u04ed\u0258\u04ef\u0259\u04f1\u025a\u04f3\u025b\u04f5\u025c"+ + "\u04f7\u025d\u04f9\u025e\u04fb\u025f\u04fd\u0260\u04ff\u0261\u0501\u0262"+ + "\u0503\u0263\u0505\u0264\u0507\u0265\u0509\u0266\u050b\u0267\u050d\u0268"+ + "\u050f\u0269\u0511\u026a\u0513\u026b\u0515\u026c\u0517\u026d\u0519\u026e"+ + "\u051b\u026f\u051d\u0270\u051f\u0271\u0521\u0272\u0523\u0273\u0525\u0274"+ + "\u0527\u0275\u0529\u0276\u052b\u0277\u052d\u0278\u052f\u0279\u0531\u027a"+ + "\u0533\u027b\u0535\u027c\u0537\u027d\u0539\u027e\u053b\u027f\u053d\u0280"+ + "\u053f\u0281\u0541\u0282\u0543\u0283\u0545\u0284\u0547\u0285\u0549\u0286"+ + "\u054b\u0287\u054d\u0288\u054f\u0289\u0551\u028a\u0553\u028b\u0555\u028c"+ + "\u0557\u028d\u0559\u028e\u055b\u028f\u055d\u0290\u055f\u0291\u0561\u0292"+ + "\u0563\u0293\u0565\u0294\u0567\u0295\u0569\u0296\u056b\u0297\u056d\u0298"+ + "\u056f\u0299\u0571\u029a\u0573\u029b\u0575\u029c\u0577\u029d\u0579\u029e"+ + "\u057b\u029f\u057d\u02a0\u057f\u02a1\u0581\u02a2\u0583\u02a3\u0585\u02a4"+ + "\u0587\u02a5\u0589\u02a6\u058b\u02a7\u058d\u02a8\u058f\u02a9\u0591\u02aa"+ + "\u0593\u02ab\u0595\u02ac\u0597\u02ad\u0599\u02ae\u059b\u02af\u059d\u02b0"+ + "\u059f\u02b1\u05a1\u02b2\u05a3\u02b3\u05a5\u02b4\u05a7\u02b5\u05a9\u02b6"+ + "\u05ab\u02b7\u05ad\u02b8\u05af\u02b9\u05b1\u02ba\u05b3\u02bb\u05b5\u02bc"+ + "\u05b7\u02bd\u05b9\u02be\u05bb\u02bf\u05bd\u02c0\u05bf\u02c1\u05c1\u02c2"+ + "\u05c3\u02c3\u05c5\u02c4\u05c7\u02c5\u05c9\u02c6\u05cb\u02c7\u05cd\u02c8"+ + "\u05cf\u02c9\u05d1\u02ca\u05d3\u02cb\u05d5\u02cc\u05d7\u02cd\u05d9\u02ce"+ + "\u05db\u02cf\u05dd\u02d0\u05df\u02d1\u05e1\u02d2\u05e3\u02d3\u05e5\u02d4"+ + "\u05e7\u02d5\u05e9\u02d6\u05eb\u02d7\u05ed\u02d8\u05ef\u02d9\u05f1\u02da"+ + "\u05f3\u02db\u05f5\u02dc\u05f7\u02dd\u05f9\u02de\u05fb\u02df\u05fd\u02e0"+ + "\u05ff\u02e1\u0601\u02e2\u0603\u02e3\u0605\u02e4\u0607\u02e5\u0609\u02e6"+ + "\u060b\u02e7\u060d\u02e8\u060f\u02e9\u0611\u02ea\u0613\u02eb\u0615\u02ec"+ + "\u0617\u02ed\u0619\u02ee\u061b\u02ef\u061d\u02f0\u061f\u02f1\u0621\u02f2"+ + "\u0623\u02f3\u0625\u02f4\u0627\u02f5\u0629\u02f6\u062b\u02f7\u062d\u02f8"+ + "\u062f\u02f9\u0631\u02fa\u0633\u02fb\u0635\u02fc\u0637\u02fd\u0639\u02fe"+ + "\u063b\u02ff\u063d\u0300\u063f\u0301\u0641\u0302\u0643\u0303\u0645\u0304"+ + "\u0647\u0305\u0649\u0306\u064b\u0307\u064d\u0308\u064f\u0309\u0651\u030a"+ + "\u0653\u030b\u0655\u030c\u0657\u030d\u0659\u030e\u065b\u030f\u065d\u0310"+ + "\u065f\u0311\u0661\u0312\u0663\u0313\u0665\u0314\u0667\u0315\u0669\u0316"+ + "\u066b\u0317\u066d\u0318\u066f\u0319\u0671\u031a\u0673\u031b\u0675\u031c"+ + "\u0677\u031d\u0679\u031e\u067b\u031f\u067d\u0320\u067f\u0321\u0681\u0322"+ + "\u0683\u0323\u0685\u0324\u0687\u0325\u0689\u0326\u068b\u0327\u068d\u0328"+ + "\u068f\u0329\u0691\u032a\u0693\u032b\u0695\u032c\u0697\u032d\u0699\u032e"+ + "\u069b\u032f\u069d\u0330\u069f\u0331\u06a1\u0332\u06a3\u0333\u06a5\u0334"+ + "\u06a7\u0335\u06a9\u0336\u06ab\u0337\u06ad\u0338\u06af\u0339\u06b1\u033a"+ + "\u06b3\u033b\u06b5\u033c\u06b7\u033d\u06b9\u033e\u06bb\u033f\u06bd\u0340"+ + "\u06bf\u0341\u0001\u0000$\u0003\u0000\t\n\r\r \u0002\u0000AAaa\u0002"+ + "\u0000BBbb\u0002\u0000CCcc\u0002\u0000DDdd\u0002\u0000EEee\u0002\u0000"+ + "FFff\u0002\u0000GGgg\u0002\u0000HHhh\u0002\u0000IIii\u0002\u0000JJjj\u0002"+ + "\u0000KKkk\u0002\u0000LLll\u0002\u0000MMmm\u0002\u0000NNnn\u0002\u0000"+ + "OOoo\u0002\u0000PPpp\u0002\u0000QQqq\u0002\u0000RRrr\u0002\u0000SSss\u0002"+ + "\u0000TTtt\u0002\u0000UUuu\u0002\u0000VVvv\u0002\u0000WWww\u0002\u0000"+ + "XXxx\u0002\u0000YYyy\u0002\u0000ZZzz\u0002\u000009AF\u0001\u000009\u0002"+ + "\u0000\"\"\\\\\u0002\u0000\'\'\\\\\u0002\u0000\\\\``\u0003\u0000AZ__a"+ + "z\u0005\u0000$$09AZ__az\u0004\u0000AZ__az\u00a1\u8000\uffff\u0006\u0000"+ + "$$09AZ__az\u00a1\u8000\uffff\u21d2\u0000\u0001\u0001\u0000\u0000\u0000"+ + "\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000"+ + "\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I"+ + "\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000"+ + "\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000"+ + "\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W"+ + "\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000"+ + "\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000"+ + "\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e"+ + "\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000"+ + "\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000"+ + "\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s"+ + "\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000"+ + "\u0000\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000"+ + "\u0000}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000"+ + "\u0081\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000"+ + "\u0085\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000"+ + "\u0089\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000"+ + "\u008d\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000"+ + "\u0091\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000"+ + "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ + "\u0099\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000"+ + "\u009d\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000"+ + "\u00a1\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000"+ + "\u00a5\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000"+ + "\u00a9\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000"+ + "\u00ad\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000"+ + "\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000"+ + "\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000"+ + "\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000"+ + "\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000"+ + "\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000"+ + "\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000"+ + "\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000"+ + "\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000"+ + "\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000"+ + "\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000"+ + "\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000"+ + "\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000"+ + "\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000"+ + "\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000"+ + "\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000"+ + "\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000"+ + "\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000"+ + "\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000"+ + "\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000"+ + "\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000"+ + "\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000"+ + "\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000"+ + "\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000"+ + "\u0111\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000"+ + "\u0115\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000"+ + "\u0119\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000"+ + "\u011d\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000"+ + "\u0121\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000"+ + "\u0125\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000"+ + "\u0129\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000"+ + "\u012d\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000"+ + "\u0131\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000"+ + "\u0135\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000"+ + "\u0139\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000"+ + "\u013d\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000"+ + "\u0141\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000"+ + "\u0145\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000"+ + "\u0149\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000"+ + "\u014d\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000"+ + "\u0151\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000"+ + "\u0155\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000"+ + "\u0159\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000"+ + "\u015d\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000"+ + "\u0161\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000"+ + "\u0165\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000"+ + "\u0169\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000"+ + "\u016d\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000"+ + "\u0171\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000"+ + "\u0175\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000"+ + "\u0179\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000"+ + "\u017d\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000"+ + "\u0181\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000"+ + "\u0185\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000"+ + "\u0189\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000"+ + "\u018d\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000"+ + "\u0191\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000"+ + "\u0195\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000"+ + "\u0199\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000"+ + "\u019d\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000"+ + "\u01a1\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000"+ + "\u01a5\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000"+ + "\u01a9\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000"+ + "\u01ad\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000"+ + "\u01b1\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000"+ + "\u01b5\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000"+ + "\u01b9\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000"+ + "\u01bd\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000"+ + "\u01c1\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000"+ + "\u01c5\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000"+ + "\u01c9\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000"+ + "\u01cd\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000"+ + "\u01d1\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000"+ + "\u01d5\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000"+ + "\u01d9\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000"+ + "\u01dd\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000"+ + "\u01e1\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000"+ + "\u01e5\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000"+ + "\u01e9\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000"+ + "\u01ed\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000"+ + "\u01f1\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000"+ + "\u01f5\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000"+ + "\u01f9\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000"+ + "\u01fd\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0201\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000"+ + "\u0205\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000"+ + "\u0209\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000"+ + "\u020d\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000"+ + "\u0211\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000"+ + "\u0215\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000"+ + "\u0219\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000"+ + "\u021d\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000"+ + "\u0221\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000"+ + "\u0225\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000"+ + "\u0229\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000"+ + "\u022d\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000"+ + "\u0231\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000"+ + "\u0235\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000"+ + "\u0239\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000"+ + "\u023d\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000"+ + "\u0241\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000"+ + "\u0245\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000"+ + "\u0249\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000"+ + "\u024d\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000"+ + "\u0251\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000"+ + "\u0255\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000"+ + "\u0259\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000"+ + "\u025d\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000"+ + "\u0261\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000"+ + "\u0265\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000"+ + "\u0269\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000"+ + "\u026d\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000"+ + "\u0271\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000"+ + "\u0275\u0001\u0000\u0000\u0000\u0000\u0277\u0001\u0000\u0000\u0000\u0000"+ + "\u0279\u0001\u0000\u0000\u0000\u0000\u027b\u0001\u0000\u0000\u0000\u0000"+ + "\u027d\u0001\u0000\u0000\u0000\u0000\u027f\u0001\u0000\u0000\u0000\u0000"+ + "\u0281\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000"+ + "\u0285\u0001\u0000\u0000\u0000\u0000\u0287\u0001\u0000\u0000\u0000\u0000"+ + "\u0289\u0001\u0000\u0000\u0000\u0000\u028b\u0001\u0000\u0000\u0000\u0000"+ + "\u028d\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000"+ + "\u0291\u0001\u0000\u0000\u0000\u0000\u0293\u0001\u0000\u0000\u0000\u0000"+ + "\u0295\u0001\u0000\u0000\u0000\u0000\u0297\u0001\u0000\u0000\u0000\u0000"+ + "\u0299\u0001\u0000\u0000\u0000\u0000\u029b\u0001\u0000\u0000\u0000\u0000"+ + "\u029d\u0001\u0000\u0000\u0000\u0000\u029f\u0001\u0000\u0000\u0000\u0000"+ + "\u02a1\u0001\u0000\u0000\u0000\u0000\u02a3\u0001\u0000\u0000\u0000\u0000"+ + "\u02a5\u0001\u0000\u0000\u0000\u0000\u02a7\u0001\u0000\u0000\u0000\u0000"+ + "\u02a9\u0001\u0000\u0000\u0000\u0000\u02ab\u0001\u0000\u0000\u0000\u0000"+ + "\u02ad\u0001\u0000\u0000\u0000\u0000\u02af\u0001\u0000\u0000\u0000\u0000"+ + "\u02b1\u0001\u0000\u0000\u0000\u0000\u02b3\u0001\u0000\u0000\u0000\u0000"+ + "\u02b5\u0001\u0000\u0000\u0000\u0000\u02b7\u0001\u0000\u0000\u0000\u0000"+ + "\u02b9\u0001\u0000\u0000\u0000\u0000\u02bb\u0001\u0000\u0000\u0000\u0000"+ + "\u02bd\u0001\u0000\u0000\u0000\u0000\u02bf\u0001\u0000\u0000\u0000\u0000"+ + "\u02c1\u0001\u0000\u0000\u0000\u0000\u02c3\u0001\u0000\u0000\u0000\u0000"+ + "\u02c5\u0001\u0000\u0000\u0000\u0000\u02c7\u0001\u0000\u0000\u0000\u0000"+ + "\u02c9\u0001\u0000\u0000\u0000\u0000\u02cb\u0001\u0000\u0000\u0000\u0000"+ + "\u02cd\u0001\u0000\u0000\u0000\u0000\u02cf\u0001\u0000\u0000\u0000\u0000"+ + "\u02d1\u0001\u0000\u0000\u0000\u0000\u02d3\u0001\u0000\u0000\u0000\u0000"+ + "\u02d5\u0001\u0000\u0000\u0000\u0000\u02d7\u0001\u0000\u0000\u0000\u0000"+ + "\u02d9\u0001\u0000\u0000\u0000\u0000\u02db\u0001\u0000\u0000\u0000\u0000"+ + "\u02dd\u0001\u0000\u0000\u0000\u0000\u02df\u0001\u0000\u0000\u0000\u0000"+ + "\u02e1\u0001\u0000\u0000\u0000\u0000\u02e3\u0001\u0000\u0000\u0000\u0000"+ + "\u02e5\u0001\u0000\u0000\u0000\u0000\u02e7\u0001\u0000\u0000\u0000\u0000"+ + "\u02e9\u0001\u0000\u0000\u0000\u0000\u02eb\u0001\u0000\u0000\u0000\u0000"+ + "\u02ed\u0001\u0000\u0000\u0000\u0000\u02ef\u0001\u0000\u0000\u0000\u0000"+ + "\u02f1\u0001\u0000\u0000\u0000\u0000\u02f3\u0001\u0000\u0000\u0000\u0000"+ + "\u02f5\u0001\u0000\u0000\u0000\u0000\u02f7\u0001\u0000\u0000\u0000\u0000"+ + "\u02f9\u0001\u0000\u0000\u0000\u0000\u02fb\u0001\u0000\u0000\u0000\u0000"+ + "\u02fd\u0001\u0000\u0000\u0000\u0000\u02ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0301\u0001\u0000\u0000\u0000\u0000\u0303\u0001\u0000\u0000\u0000\u0000"+ + "\u0305\u0001\u0000\u0000\u0000\u0000\u0307\u0001\u0000\u0000\u0000\u0000"+ + "\u0309\u0001\u0000\u0000\u0000\u0000\u030b\u0001\u0000\u0000\u0000\u0000"+ + "\u030d\u0001\u0000\u0000\u0000\u0000\u030f\u0001\u0000\u0000\u0000\u0000"+ + "\u0311\u0001\u0000\u0000\u0000\u0000\u0313\u0001\u0000\u0000\u0000\u0000"+ + "\u0315\u0001\u0000\u0000\u0000\u0000\u0317\u0001\u0000\u0000\u0000\u0000"+ + "\u0319\u0001\u0000\u0000\u0000\u0000\u031b\u0001\u0000\u0000\u0000\u0000"+ + "\u031d\u0001\u0000\u0000\u0000\u0000\u031f\u0001\u0000\u0000\u0000\u0000"+ + "\u0321\u0001\u0000\u0000\u0000\u0000\u0323\u0001\u0000\u0000\u0000\u0000"+ + "\u0325\u0001\u0000\u0000\u0000\u0000\u0327\u0001\u0000\u0000\u0000\u0000"+ + "\u0329\u0001\u0000\u0000\u0000\u0000\u032b\u0001\u0000\u0000\u0000\u0000"+ + "\u032d\u0001\u0000\u0000\u0000\u0000\u032f\u0001\u0000\u0000\u0000\u0000"+ + "\u0331\u0001\u0000\u0000\u0000\u0000\u0333\u0001\u0000\u0000\u0000\u0000"+ + "\u0335\u0001\u0000\u0000\u0000\u0000\u0337\u0001\u0000\u0000\u0000\u0000"+ + "\u0339\u0001\u0000\u0000\u0000\u0000\u033b\u0001\u0000\u0000\u0000\u0000"+ + "\u033d\u0001\u0000\u0000\u0000\u0000\u033f\u0001\u0000\u0000\u0000\u0000"+ + "\u0341\u0001\u0000\u0000\u0000\u0000\u0343\u0001\u0000\u0000\u0000\u0000"+ + "\u0345\u0001\u0000\u0000\u0000\u0000\u0347\u0001\u0000\u0000\u0000\u0000"+ + "\u0349\u0001\u0000\u0000\u0000\u0000\u034b\u0001\u0000\u0000\u0000\u0000"+ + "\u034d\u0001\u0000\u0000\u0000\u0000\u034f\u0001\u0000\u0000\u0000\u0000"+ + "\u0351\u0001\u0000\u0000\u0000\u0000\u0353\u0001\u0000\u0000\u0000\u0000"+ + "\u0355\u0001\u0000\u0000\u0000\u0000\u0357\u0001\u0000\u0000\u0000\u0000"+ + "\u0359\u0001\u0000\u0000\u0000\u0000\u035b\u0001\u0000\u0000\u0000\u0000"+ + "\u035d\u0001\u0000\u0000\u0000\u0000\u035f\u0001\u0000\u0000\u0000\u0000"+ + "\u0361\u0001\u0000\u0000\u0000\u0000\u0363\u0001\u0000\u0000\u0000\u0000"+ + "\u0365\u0001\u0000\u0000\u0000\u0000\u0367\u0001\u0000\u0000\u0000\u0000"+ + "\u0369\u0001\u0000\u0000\u0000\u0000\u036b\u0001\u0000\u0000\u0000\u0000"+ + "\u036d\u0001\u0000\u0000\u0000\u0000\u036f\u0001\u0000\u0000\u0000\u0000"+ + "\u0371\u0001\u0000\u0000\u0000\u0000\u0373\u0001\u0000\u0000\u0000\u0000"+ + "\u0375\u0001\u0000\u0000\u0000\u0000\u0377\u0001\u0000\u0000\u0000\u0000"+ + "\u0379\u0001\u0000\u0000\u0000\u0000\u037b\u0001\u0000\u0000\u0000\u0000"+ + "\u037d\u0001\u0000\u0000\u0000\u0000\u037f\u0001\u0000\u0000"; + private static final String _serializedATNSegment1 = + "\u0000\u0000\u0381\u0001\u0000\u0000\u0000\u0000\u0383\u0001\u0000\u0000"+ + "\u0000\u0000\u0385\u0001\u0000\u0000\u0000\u0000\u0387\u0001\u0000\u0000"+ + "\u0000\u0000\u0389\u0001\u0000\u0000\u0000\u0000\u038b\u0001\u0000\u0000"+ + "\u0000\u0000\u038d\u0001\u0000\u0000\u0000\u0000\u038f\u0001\u0000\u0000"+ + "\u0000\u0000\u0391\u0001\u0000\u0000\u0000\u0000\u0393\u0001\u0000\u0000"+ + "\u0000\u0000\u0395\u0001\u0000\u0000\u0000\u0000\u0397\u0001\u0000\u0000"+ + "\u0000\u0000\u0399\u0001\u0000\u0000\u0000\u0000\u039b\u0001\u0000\u0000"+ + "\u0000\u0000\u039d\u0001\u0000\u0000\u0000\u0000\u039f\u0001\u0000\u0000"+ + "\u0000\u0000\u03a1\u0001\u0000\u0000\u0000\u0000\u03a3\u0001\u0000\u0000"+ + "\u0000\u0000\u03a5\u0001\u0000\u0000\u0000\u0000\u03a7\u0001\u0000\u0000"+ + "\u0000\u0000\u03a9\u0001\u0000\u0000\u0000\u0000\u03ab\u0001\u0000\u0000"+ + "\u0000\u0000\u03ad\u0001\u0000\u0000\u0000\u0000\u03af\u0001\u0000\u0000"+ + "\u0000\u0000\u03b1\u0001\u0000\u0000\u0000\u0000\u03b3\u0001\u0000\u0000"+ + "\u0000\u0000\u03b5\u0001\u0000\u0000\u0000\u0000\u03b7\u0001\u0000\u0000"+ + "\u0000\u0000\u03b9\u0001\u0000\u0000\u0000\u0000\u03bb\u0001\u0000\u0000"+ + "\u0000\u0000\u03bd\u0001\u0000\u0000\u0000\u0000\u03bf\u0001\u0000\u0000"+ + "\u0000\u0000\u03c1\u0001\u0000\u0000\u0000\u0000\u03c3\u0001\u0000\u0000"+ + "\u0000\u0000\u03c5\u0001\u0000\u0000\u0000\u0000\u03c7\u0001\u0000\u0000"+ + "\u0000\u0000\u03c9\u0001\u0000\u0000\u0000\u0000\u03cb\u0001\u0000\u0000"+ + "\u0000\u0000\u03cd\u0001\u0000\u0000\u0000\u0000\u03cf\u0001\u0000\u0000"+ + "\u0000\u0000\u03d1\u0001\u0000\u0000\u0000\u0000\u03d3\u0001\u0000\u0000"+ + "\u0000\u0000\u03d5\u0001\u0000\u0000\u0000\u0000\u03d7\u0001\u0000\u0000"+ + "\u0000\u0000\u03d9\u0001\u0000\u0000\u0000\u0000\u03db\u0001\u0000\u0000"+ + "\u0000\u0000\u03dd\u0001\u0000\u0000\u0000\u0000\u03df\u0001\u0000\u0000"+ + "\u0000\u0000\u03e1\u0001\u0000\u0000\u0000\u0000\u03e3\u0001\u0000\u0000"+ + "\u0000\u0000\u03e5\u0001\u0000\u0000\u0000\u0000\u03e7\u0001\u0000\u0000"+ + "\u0000\u0000\u03e9\u0001\u0000\u0000\u0000\u0000\u03eb\u0001\u0000\u0000"+ + "\u0000\u0000\u03ed\u0001\u0000\u0000\u0000\u0000\u03ef\u0001\u0000\u0000"+ + "\u0000\u0000\u03f1\u0001\u0000\u0000\u0000\u0000\u03f3\u0001\u0000\u0000"+ + "\u0000\u0000\u03f5\u0001\u0000\u0000\u0000\u0000\u03f7\u0001\u0000\u0000"+ + "\u0000\u0000\u03f9\u0001\u0000\u0000\u0000\u0000\u03fb\u0001\u0000\u0000"+ + "\u0000\u0000\u03fd\u0001\u0000\u0000\u0000\u0000\u03ff\u0001\u0000\u0000"+ + "\u0000\u0000\u0401\u0001\u0000\u0000\u0000\u0000\u0403\u0001\u0000\u0000"+ + "\u0000\u0000\u0405\u0001\u0000\u0000\u0000\u0000\u0407\u0001\u0000\u0000"+ + "\u0000\u0000\u0409\u0001\u0000\u0000\u0000\u0000\u040b\u0001\u0000\u0000"+ + "\u0000\u0000\u040d\u0001\u0000\u0000\u0000\u0000\u040f\u0001\u0000\u0000"+ + "\u0000\u0000\u0411\u0001\u0000\u0000\u0000\u0000\u0413\u0001\u0000\u0000"+ + "\u0000\u0000\u0415\u0001\u0000\u0000\u0000\u0000\u0417\u0001\u0000\u0000"+ + "\u0000\u0000\u0419\u0001\u0000\u0000\u0000\u0000\u041b\u0001\u0000\u0000"+ + "\u0000\u0000\u041d\u0001\u0000\u0000\u0000\u0000\u041f\u0001\u0000\u0000"+ + "\u0000\u0000\u0421\u0001\u0000\u0000\u0000\u0000\u0423\u0001\u0000\u0000"+ + "\u0000\u0000\u0425\u0001\u0000\u0000\u0000\u0000\u0427\u0001\u0000\u0000"+ + "\u0000\u0000\u0429\u0001\u0000\u0000\u0000\u0000\u042b\u0001\u0000\u0000"+ + "\u0000\u0000\u042d\u0001\u0000\u0000\u0000\u0000\u042f\u0001\u0000\u0000"+ + "\u0000\u0000\u0431\u0001\u0000\u0000\u0000\u0000\u0433\u0001\u0000\u0000"+ + "\u0000\u0000\u0435\u0001\u0000\u0000\u0000\u0000\u0437\u0001\u0000\u0000"+ + "\u0000\u0000\u0439\u0001\u0000\u0000\u0000\u0000\u043b\u0001\u0000\u0000"+ + "\u0000\u0000\u043d\u0001\u0000\u0000\u0000\u0000\u043f\u0001\u0000\u0000"+ + "\u0000\u0000\u0441\u0001\u0000\u0000\u0000\u0000\u0443\u0001\u0000\u0000"+ + "\u0000\u0000\u0445\u0001\u0000\u0000\u0000\u0000\u0447\u0001\u0000\u0000"+ + "\u0000\u0000\u0449\u0001\u0000\u0000\u0000\u0000\u044b\u0001\u0000\u0000"+ + "\u0000\u0000\u044d\u0001\u0000\u0000\u0000\u0000\u044f\u0001\u0000\u0000"+ + "\u0000\u0000\u0451\u0001\u0000\u0000\u0000\u0000\u0453\u0001\u0000\u0000"+ + "\u0000\u0000\u0455\u0001\u0000\u0000\u0000\u0000\u0457\u0001\u0000\u0000"+ + "\u0000\u0000\u0459\u0001\u0000\u0000\u0000\u0000\u045b\u0001\u0000\u0000"+ + "\u0000\u0000\u045d\u0001\u0000\u0000\u0000\u0000\u045f\u0001\u0000\u0000"+ + "\u0000\u0000\u0461\u0001\u0000\u0000\u0000\u0000\u0463\u0001\u0000\u0000"+ + "\u0000\u0000\u0465\u0001\u0000\u0000\u0000\u0000\u0467\u0001\u0000\u0000"+ + "\u0000\u0000\u0469\u0001\u0000\u0000\u0000\u0000\u046b\u0001\u0000\u0000"+ + "\u0000\u0000\u046d\u0001\u0000\u0000\u0000\u0000\u046f\u0001\u0000\u0000"+ + "\u0000\u0000\u0471\u0001\u0000\u0000\u0000\u0000\u0473\u0001\u0000\u0000"+ + "\u0000\u0000\u0475\u0001\u0000\u0000\u0000\u0000\u0477\u0001\u0000\u0000"+ + "\u0000\u0000\u0479\u0001\u0000\u0000\u0000\u0000\u047b\u0001\u0000\u0000"+ + "\u0000\u0000\u047d\u0001\u0000\u0000\u0000\u0000\u047f\u0001\u0000\u0000"+ + "\u0000\u0000\u0481\u0001\u0000\u0000\u0000\u0000\u0483\u0001\u0000\u0000"+ + "\u0000\u0000\u0485\u0001\u0000\u0000\u0000\u0000\u0487\u0001\u0000\u0000"+ + "\u0000\u0000\u0489\u0001\u0000\u0000\u0000\u0000\u048b\u0001\u0000\u0000"+ + "\u0000\u0000\u048d\u0001\u0000\u0000\u0000\u0000\u048f\u0001\u0000\u0000"+ + "\u0000\u0000\u0491\u0001\u0000\u0000\u0000\u0000\u0493\u0001\u0000\u0000"+ + "\u0000\u0000\u0495\u0001\u0000\u0000\u0000\u0000\u0497\u0001\u0000\u0000"+ + "\u0000\u0000\u0499\u0001\u0000\u0000\u0000\u0000\u049b\u0001\u0000\u0000"+ + "\u0000\u0000\u049d\u0001\u0000\u0000\u0000\u0000\u049f\u0001\u0000\u0000"+ + "\u0000\u0000\u04a1\u0001\u0000\u0000\u0000\u0000\u04a3\u0001\u0000\u0000"+ + "\u0000\u0000\u04a5\u0001\u0000\u0000\u0000\u0000\u04a7\u0001\u0000\u0000"+ + "\u0000\u0000\u04a9\u0001\u0000\u0000\u0000\u0000\u04ab\u0001\u0000\u0000"+ + "\u0000\u0000\u04ad\u0001\u0000\u0000\u0000\u0000\u04af\u0001\u0000\u0000"+ + "\u0000\u0000\u04b1\u0001\u0000\u0000\u0000\u0000\u04b3\u0001\u0000\u0000"+ + "\u0000\u0000\u04b5\u0001\u0000\u0000\u0000\u0000\u04b7\u0001\u0000\u0000"+ + "\u0000\u0000\u04b9\u0001\u0000\u0000\u0000\u0000\u04bb\u0001\u0000\u0000"+ + "\u0000\u0000\u04bd\u0001\u0000\u0000\u0000\u0000\u04bf\u0001\u0000\u0000"+ + "\u0000\u0000\u04c1\u0001\u0000\u0000\u0000\u0000\u04c3\u0001\u0000\u0000"+ + "\u0000\u0000\u04c5\u0001\u0000\u0000\u0000\u0000\u04c7\u0001\u0000\u0000"+ + "\u0000\u0000\u04c9\u0001\u0000\u0000\u0000\u0000\u04cb\u0001\u0000\u0000"+ + "\u0000\u0000\u04cd\u0001\u0000\u0000\u0000\u0000\u04cf\u0001\u0000\u0000"+ + "\u0000\u0000\u04d1\u0001\u0000\u0000\u0000\u0000\u04d3\u0001\u0000\u0000"+ + "\u0000\u0000\u04d5\u0001\u0000\u0000\u0000\u0000\u04d7\u0001\u0000\u0000"+ + "\u0000\u0000\u04d9\u0001\u0000\u0000\u0000\u0000\u04db\u0001\u0000\u0000"+ + "\u0000\u0000\u04dd\u0001\u0000\u0000\u0000\u0000\u04df\u0001\u0000\u0000"+ + "\u0000\u0000\u04e1\u0001\u0000\u0000\u0000\u0000\u04e3\u0001\u0000\u0000"+ + "\u0000\u0000\u04e5\u0001\u0000\u0000\u0000\u0000\u04e7\u0001\u0000\u0000"+ + "\u0000\u0000\u04e9\u0001\u0000\u0000\u0000\u0000\u04eb\u0001\u0000\u0000"+ + "\u0000\u0000\u04ed\u0001\u0000\u0000\u0000\u0000\u04ef\u0001\u0000\u0000"+ + "\u0000\u0000\u04f1\u0001\u0000\u0000\u0000\u0000\u04f3\u0001\u0000\u0000"+ + "\u0000\u0000\u04f5\u0001\u0000\u0000\u0000\u0000\u04f7\u0001\u0000\u0000"+ + "\u0000\u0000\u04f9\u0001\u0000\u0000\u0000\u0000\u04fb\u0001\u0000\u0000"+ + "\u0000\u0000\u04fd\u0001\u0000\u0000\u0000\u0000\u04ff\u0001\u0000\u0000"+ + "\u0000\u0000\u0501\u0001\u0000\u0000\u0000\u0000\u0503\u0001\u0000\u0000"+ + "\u0000\u0000\u0505\u0001\u0000\u0000\u0000\u0000\u0507\u0001\u0000\u0000"+ + "\u0000\u0000\u0509\u0001\u0000\u0000\u0000\u0000\u050b\u0001\u0000\u0000"+ + "\u0000\u0000\u050d\u0001\u0000\u0000\u0000\u0000\u050f\u0001\u0000\u0000"+ + "\u0000\u0000\u0511\u0001\u0000\u0000\u0000\u0000\u0513\u0001\u0000\u0000"+ + "\u0000\u0000\u0515\u0001\u0000\u0000\u0000\u0000\u0517\u0001\u0000\u0000"+ + "\u0000\u0000\u0519\u0001\u0000\u0000\u0000\u0000\u051b\u0001\u0000\u0000"+ + "\u0000\u0000\u051d\u0001\u0000\u0000\u0000\u0000\u051f\u0001\u0000\u0000"+ + "\u0000\u0000\u0521\u0001\u0000\u0000\u0000\u0000\u0523\u0001\u0000\u0000"+ + "\u0000\u0000\u0525\u0001\u0000\u0000\u0000\u0000\u0527\u0001\u0000\u0000"+ + "\u0000\u0000\u0529\u0001\u0000\u0000\u0000\u0000\u052b\u0001\u0000\u0000"+ + "\u0000\u0000\u052d\u0001\u0000\u0000\u0000\u0000\u052f\u0001\u0000\u0000"+ + "\u0000\u0000\u0531\u0001\u0000\u0000\u0000\u0000\u0533\u0001\u0000\u0000"+ + "\u0000\u0000\u0535\u0001\u0000\u0000\u0000\u0000\u0537\u0001\u0000\u0000"+ + "\u0000\u0000\u0539\u0001\u0000\u0000\u0000\u0000\u053b\u0001\u0000\u0000"+ + "\u0000\u0000\u053d\u0001\u0000\u0000\u0000\u0000\u053f\u0001\u0000\u0000"+ + "\u0000\u0000\u0541\u0001\u0000\u0000\u0000\u0000\u0543\u0001\u0000\u0000"+ + "\u0000\u0000\u0545\u0001\u0000\u0000\u0000\u0000\u0547\u0001\u0000\u0000"+ + "\u0000\u0000\u0549\u0001\u0000\u0000\u0000\u0000\u054b\u0001\u0000\u0000"+ + "\u0000\u0000\u054d\u0001\u0000\u0000\u0000\u0000\u054f\u0001\u0000\u0000"+ + "\u0000\u0000\u0551\u0001\u0000\u0000\u0000\u0000\u0553\u0001\u0000\u0000"+ + "\u0000\u0000\u0555\u0001\u0000\u0000\u0000\u0000\u0557\u0001\u0000\u0000"+ + "\u0000\u0000\u0559\u0001\u0000\u0000\u0000\u0000\u055b\u0001\u0000\u0000"+ + "\u0000\u0000\u055d\u0001\u0000\u0000\u0000\u0000\u055f\u0001\u0000\u0000"+ + "\u0000\u0000\u0561\u0001\u0000\u0000\u0000\u0000\u0563\u0001\u0000\u0000"+ + "\u0000\u0000\u0565\u0001\u0000\u0000\u0000\u0000\u0567\u0001\u0000\u0000"+ + "\u0000\u0000\u0569\u0001\u0000\u0000\u0000\u0000\u056b\u0001\u0000\u0000"+ + "\u0000\u0000\u056d\u0001\u0000\u0000\u0000\u0000\u056f\u0001\u0000\u0000"+ + "\u0000\u0000\u0571\u0001\u0000\u0000\u0000\u0000\u0573\u0001\u0000\u0000"+ + "\u0000\u0000\u0575\u0001\u0000\u0000\u0000\u0000\u0577\u0001\u0000\u0000"+ + "\u0000\u0000\u0579\u0001\u0000\u0000\u0000\u0000\u057b\u0001\u0000\u0000"+ + "\u0000\u0000\u057d\u0001\u0000\u0000\u0000\u0000\u057f\u0001\u0000\u0000"+ + "\u0000\u0000\u0581\u0001\u0000\u0000\u0000\u0000\u0583\u0001\u0000\u0000"+ + "\u0000\u0000\u0585\u0001\u0000\u0000\u0000\u0000\u0587\u0001\u0000\u0000"+ + "\u0000\u0000\u0589\u0001\u0000\u0000\u0000\u0000\u058b\u0001\u0000\u0000"+ + "\u0000\u0000\u058d\u0001\u0000\u0000\u0000\u0000\u058f\u0001\u0000\u0000"+ + "\u0000\u0000\u0591\u0001\u0000\u0000\u0000\u0000\u0593\u0001\u0000\u0000"+ + "\u0000\u0000\u0595\u0001\u0000\u0000\u0000\u0000\u0597\u0001\u0000\u0000"+ + "\u0000\u0000\u0599\u0001\u0000\u0000\u0000\u0000\u059b\u0001\u0000\u0000"+ + "\u0000\u0000\u059d\u0001\u0000\u0000\u0000\u0000\u059f\u0001\u0000\u0000"+ + "\u0000\u0000\u05a1\u0001\u0000\u0000\u0000\u0000\u05a3\u0001\u0000\u0000"+ + "\u0000\u0000\u05a5\u0001\u0000\u0000\u0000\u0000\u05a7\u0001\u0000\u0000"+ + "\u0000\u0000\u05a9\u0001\u0000\u0000\u0000\u0000\u05ab\u0001\u0000\u0000"+ + "\u0000\u0000\u05ad\u0001\u0000\u0000\u0000\u0000\u05af\u0001\u0000\u0000"+ + "\u0000\u0000\u05b1\u0001\u0000\u0000\u0000\u0000\u05b3\u0001\u0000\u0000"+ + "\u0000\u0000\u05b5\u0001\u0000\u0000\u0000\u0000\u05b7\u0001\u0000\u0000"+ + "\u0000\u0000\u05b9\u0001\u0000\u0000\u0000\u0000\u05bb\u0001\u0000\u0000"+ + "\u0000\u0000\u05bd\u0001\u0000\u0000\u0000\u0000\u05bf\u0001\u0000\u0000"+ + "\u0000\u0000\u05c1\u0001\u0000\u0000\u0000\u0000\u05c3\u0001\u0000\u0000"+ + "\u0000\u0000\u05c5\u0001\u0000\u0000\u0000\u0000\u05c7\u0001\u0000\u0000"+ + "\u0000\u0000\u05c9\u0001\u0000\u0000\u0000\u0000\u05cb\u0001\u0000\u0000"+ + "\u0000\u0000\u05cd\u0001\u0000\u0000\u0000\u0000\u05cf\u0001\u0000\u0000"+ + "\u0000\u0000\u05d1\u0001\u0000\u0000\u0000\u0000\u05d3\u0001\u0000\u0000"+ + "\u0000\u0000\u05d5\u0001\u0000\u0000\u0000\u0000\u05d7\u0001\u0000\u0000"+ + "\u0000\u0000\u05d9\u0001\u0000\u0000\u0000\u0000\u05db\u0001\u0000\u0000"+ + "\u0000\u0000\u05dd\u0001\u0000\u0000\u0000\u0000\u05df\u0001\u0000\u0000"+ + "\u0000\u0000\u05e1\u0001\u0000\u0000\u0000\u0000\u05e3\u0001\u0000\u0000"+ + "\u0000\u0000\u05e5\u0001\u0000\u0000\u0000\u0000\u05e7\u0001\u0000\u0000"+ + "\u0000\u0000\u05e9\u0001\u0000\u0000\u0000\u0000\u05eb\u0001\u0000\u0000"+ + "\u0000\u0000\u05ed\u0001\u0000\u0000\u0000\u0000\u05ef\u0001\u0000\u0000"+ + "\u0000\u0000\u05f1\u0001\u0000\u0000\u0000\u0000\u05f3\u0001\u0000\u0000"+ + "\u0000\u0000\u05f5\u0001\u0000\u0000\u0000\u0000\u05f7\u0001\u0000\u0000"+ + "\u0000\u0000\u05f9\u0001\u0000\u0000\u0000\u0000\u05fb\u0001\u0000\u0000"+ + "\u0000\u0000\u05fd\u0001\u0000\u0000\u0000\u0000\u05ff\u0001\u0000\u0000"+ + "\u0000\u0000\u0601\u0001\u0000\u0000\u0000\u0000\u0603\u0001\u0000\u0000"+ + "\u0000\u0000\u0605\u0001\u0000\u0000\u0000\u0000\u0607\u0001\u0000\u0000"+ + "\u0000\u0000\u0609\u0001\u0000\u0000\u0000\u0000\u060b\u0001\u0000\u0000"+ + "\u0000\u0000\u060d\u0001\u0000\u0000\u0000\u0000\u060f\u0001\u0000\u0000"+ + "\u0000\u0000\u0611\u0001\u0000\u0000\u0000\u0000\u0613\u0001\u0000\u0000"+ + "\u0000\u0000\u0615\u0001\u0000\u0000\u0000\u0000\u0617\u0001\u0000\u0000"+ + "\u0000\u0000\u0619\u0001\u0000\u0000\u0000\u0000\u061b\u0001\u0000\u0000"+ + "\u0000\u0000\u061d\u0001\u0000\u0000\u0000\u0000\u061f\u0001\u0000\u0000"+ + "\u0000\u0000\u0621\u0001\u0000\u0000\u0000\u0000\u0623\u0001\u0000\u0000"+ + "\u0000\u0000\u0625\u0001\u0000\u0000\u0000\u0000\u0627\u0001\u0000\u0000"+ + "\u0000\u0000\u0629\u0001\u0000\u0000\u0000\u0000\u062b\u0001\u0000\u0000"+ + "\u0000\u0000\u062d\u0001\u0000\u0000\u0000\u0000\u062f\u0001\u0000\u0000"+ + "\u0000\u0000\u0631\u0001\u0000\u0000\u0000\u0000\u0633\u0001\u0000\u0000"+ + "\u0000\u0000\u0635\u0001\u0000\u0000\u0000\u0000\u0637\u0001\u0000\u0000"+ + "\u0000\u0000\u0639\u0001\u0000\u0000\u0000\u0000\u063b\u0001\u0000\u0000"+ + "\u0000\u0000\u063d\u0001\u0000\u0000\u0000\u0000\u063f\u0001\u0000\u0000"+ + "\u0000\u0000\u0641\u0001\u0000\u0000\u0000\u0000\u0643\u0001\u0000\u0000"+ + "\u0000\u0000\u0645\u0001\u0000\u0000\u0000\u0000\u0647\u0001\u0000\u0000"+ + "\u0000\u0000\u0649\u0001\u0000\u0000\u0000\u0000\u064b\u0001\u0000\u0000"+ + "\u0000\u0000\u064d\u0001\u0000\u0000\u0000\u0000\u064f\u0001\u0000\u0000"+ + "\u0000\u0000\u0651\u0001\u0000\u0000\u0000\u0000\u0653\u0001\u0000\u0000"+ + "\u0000\u0000\u0655\u0001\u0000\u0000\u0000\u0000\u0657\u0001\u0000\u0000"+ + "\u0000\u0000\u0659\u0001\u0000\u0000\u0000\u0000\u065b\u0001\u0000\u0000"+ + "\u0000\u0000\u065d\u0001\u0000\u0000\u0000\u0000\u065f\u0001\u0000\u0000"+ + "\u0000\u0000\u0661\u0001\u0000\u0000\u0000\u0000\u0663\u0001\u0000\u0000"+ + "\u0000\u0000\u0665\u0001\u0000\u0000\u0000\u0000\u0667\u0001\u0000\u0000"+ + "\u0000\u0000\u0669\u0001\u0000\u0000\u0000\u0000\u066b\u0001\u0000\u0000"+ + "\u0000\u0000\u066d\u0001\u0000\u0000\u0000\u0000\u066f\u0001\u0000\u0000"+ + "\u0000\u0000\u0671\u0001\u0000\u0000\u0000\u0000\u0673\u0001\u0000\u0000"+ + "\u0000\u0000\u0675\u0001\u0000\u0000\u0000\u0000\u0677\u0001\u0000\u0000"+ + "\u0000\u0000\u0679\u0001\u0000\u0000\u0000\u0000\u067b\u0001\u0000\u0000"+ + "\u0000\u0000\u067d\u0001\u0000\u0000\u0000\u0000\u067f\u0001\u0000\u0000"+ + "\u0000\u0000\u0681\u0001\u0000\u0000\u0000\u0000\u0683\u0001\u0000\u0000"+ + "\u0000\u0000\u0685\u0001\u0000\u0000\u0000\u0000\u0687\u0001\u0000\u0000"+ + "\u0000\u0000\u0689\u0001\u0000\u0000\u0000\u0000\u068b\u0001\u0000\u0000"+ + "\u0000\u0000\u068d\u0001\u0000\u0000\u0000\u0000\u068f\u0001\u0000\u0000"+ + "\u0000\u0000\u0691\u0001\u0000\u0000\u0000\u0000\u0693\u0001\u0000\u0000"+ + "\u0000\u0000\u0695\u0001\u0000\u0000\u0000\u0000\u0697\u0001\u0000\u0000"+ + "\u0000\u0000\u0699\u0001\u0000\u0000\u0000\u0000\u069b\u0001\u0000\u0000"+ + "\u0000\u0000\u069d\u0001\u0000\u0000\u0000\u0000\u069f\u0001\u0000\u0000"+ + "\u0000\u0000\u06a1\u0001\u0000\u0000\u0000\u0000\u06a3\u0001\u0000\u0000"+ + "\u0000\u0000\u06a5\u0001\u0000\u0000\u0000\u0000\u06a7\u0001\u0000\u0000"+ + "\u0000\u0000\u06a9\u0001\u0000\u0000\u0000\u0000\u06ab\u0001\u0000\u0000"+ + "\u0000\u0000\u06ad\u0001\u0000\u0000\u0000\u0000\u06af\u0001\u0000\u0000"+ + "\u0000\u0000\u06b1\u0001\u0000\u0000\u0000\u0000\u06b3\u0001\u0000\u0000"+ + "\u0000\u0000\u06b5\u0001\u0000\u0000\u0000\u0000\u06b7\u0001\u0000\u0000"+ + "\u0000\u0000\u06b9\u0001\u0000\u0000\u0000\u0000\u06bb\u0001\u0000\u0000"+ + "\u0000\u0000\u06bd\u0001\u0000\u0000\u0000\u0000\u06bf\u0001\u0000\u0000"+ + "\u0000\u0001\u06c2\u0001\u0000\u0000\u0000\u0003\u06c8\u0001\u0000\u0000"+ + "\u0000\u0005\u06d6\u0001\u0000\u0000\u0000\u0007\u06e3\u0001\u0000\u0000"+ + "\u0000\t\u06e5\u0001\u0000\u0000\u0000\u000b\u06e7\u0001\u0000\u0000\u0000"+ + "\r\u06e9\u0001\u0000\u0000\u0000\u000f\u06eb\u0001\u0000\u0000\u0000\u0011"+ + "\u06ed\u0001\u0000\u0000\u0000\u0013\u06ef\u0001\u0000\u0000\u0000\u0015"+ + "\u06f1\u0001\u0000\u0000\u0000\u0017\u06f3\u0001\u0000\u0000\u0000\u0019"+ + "\u06f5\u0001\u0000\u0000\u0000\u001b\u06f7\u0001\u0000\u0000\u0000\u001d"+ + "\u06f9\u0001\u0000\u0000\u0000\u001f\u06fb\u0001\u0000\u0000\u0000!\u06fd"+ + "\u0001\u0000\u0000\u0000#\u06ff\u0001\u0000\u0000\u0000%\u0701\u0001\u0000"+ + "\u0000\u0000\'\u0703\u0001\u0000\u0000\u0000)\u0705\u0001\u0000\u0000"+ + "\u0000+\u0707\u0001\u0000\u0000\u0000-\u0709\u0001\u0000\u0000\u0000/"+ + "\u070b\u0001\u0000\u0000\u00001\u070d\u0001\u0000\u0000\u00003\u070f\u0001"+ + "\u0000\u0000\u00005\u0711\u0001\u0000\u0000\u00007\u0713\u0001\u0000\u0000"+ + "\u00009\u0715\u0001\u0000\u0000\u0000;\u0717\u0001\u0000\u0000\u0000="+ + "\u0719\u0001\u0000\u0000\u0000?\u071b\u0001\u0000\u0000\u0000A\u0728\u0001"+ + "\u0000\u0000\u0000C\u0735\u0001\u0000\u0000\u0000E\u0742\u0001\u0000\u0000"+ + "\u0000G\u0744\u0001\u0000\u0000\u0000I\u074a\u0001\u0000\u0000\u0000K"+ + "\u074e\u0001\u0000\u0000\u0000M\u0757\u0001\u0000\u0000\u0000O\u075e\u0001"+ + "\u0000\u0000\u0000Q\u0765\u0001\u0000\u0000\u0000S\u0769\u0001\u0000\u0000"+ + "\u0000U\u076d\u0001\u0000\u0000\u0000W\u0773\u0001\u0000\u0000\u0000Y"+ + "\u0779\u0001\u0000\u0000\u0000[\u0783\u0001\u0000\u0000\u0000]\u0789\u0001"+ + "\u0000\u0000\u0000_\u078d\u0001\u0000\u0000\u0000a\u0796\u0001\u0000\u0000"+ + "\u0000c\u079b\u0001\u0000\u0000\u0000e\u07a1\u0001\u0000\u0000\u0000g"+ + "\u07a8\u0001\u0000\u0000\u0000i\u07b0\u0001\u0000\u0000\u0000k\u07b8\u0001"+ + "\u0000\u0000\u0000m\u07bc\u0001\u0000\u0000\u0000o\u07c0\u0001\u0000\u0000"+ + "\u0000q\u07c4\u0001\u0000\u0000\u0000s\u07ca\u0001\u0000\u0000\u0000u"+ + "\u07cd\u0001\u0000\u0000\u0000w\u07d1\u0001\u0000\u0000\u0000y\u07dc\u0001"+ + "\u0000\u0000\u0000{\u07e6\u0001\u0000\u0000\u0000}\u07f1\u0001\u0000\u0000"+ + "\u0000\u007f\u07fc\u0001\u0000\u0000\u0000\u0081\u07ff\u0001\u0000\u0000"+ + "\u0000\u0083\u0806\u0001\u0000\u0000\u0000\u0085\u0810\u0001\u0000\u0000"+ + "\u0000\u0087\u081b\u0001\u0000\u0000\u0000\u0089\u0829\u0001\u0000\u0000"+ + "\u0000\u008b\u082d\u0001\u0000\u0000\u0000\u008d\u0836\u0001\u0000\u0000"+ + "\u0000\u008f\u083d\u0001\u0000\u0000\u0000\u0091\u0843\u0001\u0000\u0000"+ + "\u0000\u0093\u084d\u0001\u0000\u0000\u0000\u0095\u0855\u0001\u0000\u0000"+ + "\u0000\u0097\u085c\u0001\u0000\u0000\u0000\u0099\u0863\u0001\u0000\u0000"+ + "\u0000\u009b\u0867\u0001\u0000\u0000\u0000\u009d\u0872\u0001\u0000\u0000"+ + "\u0000\u009f\u0879\u0001\u0000\u0000\u0000\u00a1\u087e\u0001\u0000\u0000"+ + "\u0000\u00a3\u0886\u0001\u0000\u0000\u0000\u00a5\u088b\u0001\u0000\u0000"+ + "\u0000\u00a7\u0893\u0001\u0000\u0000\u0000\u00a9\u089b\u0001\u0000\u0000"+ + "\u0000\u00ab\u089e\u0001\u0000\u0000\u0000\u00ad\u08a0\u0001\u0000\u0000"+ + "\u0000\u00af\u08a6\u0001\u0000\u0000\u0000\u00b1\u08ab\u0001\u0000\u0000"+ + "\u0000\u00b3\u08b2\u0001\u0000\u0000\u0000\u00b5\u08be\u0001\u0000\u0000"+ + "\u0000\u00b7\u08c6\u0001\u0000\u0000\u0000\u00b9\u08cf\u0001\u0000\u0000"+ + "\u0000\u00bb\u08d4\u0001\u0000\u0000\u0000\u00bd\u08d9\u0001\u0000\u0000"+ + "\u0000\u00bf\u08e1\u0001\u0000\u0000\u0000\u00c1\u08ee\u0001\u0000\u0000"+ + "\u0000\u00c3\u08f3\u0001\u0000\u0000\u0000\u00c5\u08fb\u0001\u0000\u0000"+ + "\u0000\u00c7\u0901\u0001\u0000\u0000\u0000\u00c9\u0906\u0001\u0000\u0000"+ + "\u0000\u00cb\u0912\u0001\u0000\u0000\u0000\u00cd\u091c\u0001\u0000\u0000"+ + "\u0000\u00cf\u092d\u0001\u0000\u0000\u0000\u00d1\u0943\u0001\u0000\u0000"+ + "\u0000\u00d3\u0956\u0001\u0000\u0000\u0000\u00d5\u096b\u0001\u0000\u0000"+ + "\u0000\u00d7\u097b\u0001\u0000\u0000\u0000\u00d9\u0986\u0001\u0000\u0000"+ + "\u0000\u00db\u098c\u0001\u0000\u0000\u0000\u00dd\u0994\u0001\u0000\u0000"+ + "\u0000\u00df\u099f\u0001\u0000\u0000\u0000\u00e1\u09a5\u0001\u0000\u0000"+ + "\u0000\u00e3\u09b2\u0001\u0000\u0000\u0000\u00e5\u09b7\u0001\u0000\u0000"+ + "\u0000\u00e7\u09bd\u0001\u0000\u0000\u0000\u00e9\u09c5\u0001\u0000\u0000"+ + "\u0000\u00eb\u09ce\u0001\u0000\u0000\u0000\u00ed\u09d4\u0001\u0000\u0000"+ + "\u0000\u00ef\u09dc\u0001\u0000\u0000\u0000\u00f1\u09e6\u0001\u0000\u0000"+ + "\u0000\u00f3\u09f8\u0001\u0000\u0000\u0000\u00f5\u0a07\u0001\u0000\u0000"+ + "\u0000\u00f7\u0a18\u0001\u0000\u0000\u0000\u00f9\u0a20\u0001\u0000\u0000"+ + "\u0000\u00fb\u0a27\u0001\u0000\u0000\u0000\u00fd\u0a33\u0001\u0000\u0000"+ + "\u0000\u00ff\u0a44\u0001\u0000\u0000\u0000\u0101\u0a5a\u0001\u0000\u0000"+ + "\u0000\u0103\u0a62\u0001\u0000\u0000\u0000\u0105\u0a69\u0001\u0000\u0000"+ + "\u0000\u0107\u0a73\u0001\u0000\u0000\u0000\u0109\u0a7e\u0001\u0000\u0000"+ + "\u0000\u010b\u0a88\u0001\u0000\u0000\u0000\u010d\u0a99\u0001\u0000\u0000"+ + "\u0000\u010f\u0aa7\u0001\u0000\u0000\u0000\u0111\u0ab0\u0001\u0000\u0000"+ + "\u0000\u0113\u0ab8\u0001\u0000\u0000\u0000\u0115\u0ac3\u0001\u0000\u0000"+ + "\u0000\u0117\u0ad3\u0001\u0000\u0000\u0000\u0119\u0ade\u0001\u0000\u0000"+ + "\u0000\u011b\u0af1\u0001\u0000\u0000\u0000\u011d\u0b01\u0001\u0000\u0000"+ + "\u0000\u011f\u0b13\u0001\u0000\u0000\u0000\u0121\u0b1f\u0001\u0000\u0000"+ + "\u0000\u0123\u0b2b\u0001\u0000\u0000\u0000\u0125\u0b34\u0001\u0000\u0000"+ + "\u0000\u0127\u0b3d\u0001\u0000\u0000\u0000\u0129\u0b48\u0001\u0000\u0000"+ + "\u0000\u012b\u0b50\u0001\u0000\u0000\u0000\u012d\u0b55\u0001\u0000\u0000"+ + "\u0000\u012f\u0b5a\u0001\u0000\u0000\u0000\u0131\u0b68\u0001\u0000\u0000"+ + "\u0000\u0133\u0b6e\u0001\u0000\u0000\u0000\u0135\u0b74\u0001\u0000\u0000"+ + "\u0000\u0137\u0b7e\u0001\u0000\u0000\u0000\u0139\u0b89\u0001\u0000\u0000"+ + "\u0000\u013b\u0b90\u0001\u0000\u0000\u0000\u013d\u0b99\u0001\u0000\u0000"+ + "\u0000\u013f\u0ba4\u0001\u0000\u0000\u0000\u0141\u0baa\u0001\u0000\u0000"+ + "\u0000\u0143\u0bae\u0001\u0000\u0000\u0000\u0145\u0bb3\u0001\u0000\u0000"+ + "\u0000\u0147\u0bbd\u0001\u0000\u0000\u0000\u0149\u0bc5\u0001\u0000\u0000"+ + "\u0000\u014b\u0bd2\u0001\u0000\u0000\u0000\u014d\u0bf2\u0001\u0000\u0000"+ + "\u0000\u014f\u0bff\u0001\u0000\u0000\u0000\u0151\u0c0c\u0001\u0000\u0000"+ + "\u0000\u0153\u0c19\u0001\u0000\u0000\u0000\u0155\u0c2b\u0001\u0000\u0000"+ + "\u0000\u0157\u0c4c\u0001\u0000\u0000\u0000\u0159\u0c59\u0001\u0000\u0000"+ + "\u0000\u015b\u0c60\u0001\u0000\u0000\u0000\u015d\u0c6c\u0001\u0000\u0000"+ + "\u0000\u015f\u0c72\u0001\u0000\u0000\u0000\u0161\u0c77\u0001\u0000\u0000"+ + "\u0000\u0163\u0c80\u0001\u0000\u0000\u0000\u0165\u0c85\u0001\u0000\u0000"+ + "\u0000\u0167\u0c9c\u0001\u0000\u0000\u0000\u0169\u0cb8\u0001\u0000\u0000"+ + "\u0000\u016b\u0cbc\u0001\u0000\u0000\u0000\u016d\u0cc7\u0001\u0000\u0000"+ + "\u0000\u016f\u0ccb\u0001\u0000\u0000\u0000\u0171\u0cd3\u0001\u0000\u0000"+ + "\u0000\u0173\u0cdb\u0001\u0000\u0000\u0000\u0175\u0ce3\u0001\u0000\u0000"+ + "\u0000\u0177\u0cec\u0001\u0000\u0000\u0000\u0179\u0cf6\u0001\u0000\u0000"+ + "\u0000\u017b\u0d01\u0001\u0000\u0000\u0000\u017d\u0d0a\u0001\u0000\u0000"+ + "\u0000\u017f\u0d12\u0001\u0000\u0000\u0000\u0181\u0d1a\u0001\u0000\u0000"+ + "\u0000\u0183\u0d21\u0001\u0000\u0000\u0000\u0185\u0d28\u0001\u0000\u0000"+ + "\u0000\u0187\u0d32\u0001\u0000\u0000\u0000\u0189\u0d3d\u0001\u0000\u0000"+ + "\u0000\u018b\u0d48\u0001\u0000\u0000\u0000\u018d\u0d50\u0001\u0000\u0000"+ + "\u0000\u018f\u0d56\u0001\u0000\u0000\u0000\u0191\u0d5c\u0001\u0000\u0000"+ + "\u0000\u0193\u0d64\u0001\u0000\u0000\u0000\u0195\u0d69\u0001\u0000\u0000"+ + "\u0000\u0197\u0d72\u0001\u0000\u0000\u0000\u0199\u0d7d\u0001\u0000\u0000"+ + "\u0000\u019b\u0d85\u0001\u0000\u0000\u0000\u019d\u0d90\u0001\u0000\u0000"+ + "\u0000\u019f\u0d9e\u0001\u0000\u0000\u0000\u01a1\u0daa\u0001\u0000\u0000"+ + "\u0000\u01a3\u0db5\u0001\u0000\u0000\u0000\u01a5\u0dbd\u0001\u0000\u0000"+ + "\u0000\u01a7\u0dd3\u0001\u0000\u0000\u0000\u01a9\u0ddb\u0001\u0000\u0000"+ + "\u0000\u01ab\u0de6\u0001\u0000\u0000\u0000\u01ad\u0def\u0001\u0000\u0000"+ + "\u0000\u01af\u0df8\u0001\u0000\u0000\u0000\u01b1\u0dfb\u0001\u0000\u0000"+ + "\u0000\u01b3\u0e02\u0001\u0000\u0000\u0000\u01b5\u0e09\u0001\u0000\u0000"+ + "\u0000\u01b7\u0e0e\u0001\u0000\u0000\u0000\u01b9\u0e16\u0001\u0000\u0000"+ + "\u0000\u01bb\u0e27\u0001\u0000\u0000\u0000\u01bd\u0e3d\u0001\u0000\u0000"+ + "\u0000\u01bf\u0e42\u0001\u0000\u0000\u0000\u01c1\u0e4a\u0001\u0000\u0000"+ + "\u0000\u01c3\u0e4f\u0001\u0000\u0000\u0000\u01c5\u0e56\u0001\u0000\u0000"+ + "\u0000\u01c7\u0e5f\u0001\u0000\u0000\u0000\u01c9\u0e69\u0001\u0000\u0000"+ + "\u0000\u01cb\u0e6d\u0001\u0000\u0000\u0000\u01cd\u0e76\u0001\u0000\u0000"+ + "\u0000\u01cf\u0e7d\u0001\u0000\u0000\u0000\u01d1\u0e84\u0001\u0000\u0000"+ + "\u0000\u01d3\u0e8a\u0001\u0000\u0000\u0000\u01d5\u0e91\u0001\u0000\u0000"+ + "\u0000\u01d7\u0e9b\u0001\u0000\u0000\u0000\u01d9\u0ea3\u0001\u0000\u0000"+ + "\u0000\u01db\u0ead\u0001\u0000\u0000\u0000\u01dd\u0eb7\u0001\u0000\u0000"+ + "\u0000\u01df\u0ebc\u0001\u0000\u0000\u0000\u01e1\u0ec4\u0001\u0000\u0000"+ + "\u0000\u01e3\u0ecd\u0001\u0000\u0000\u0000\u01e5\u0ed4\u0001\u0000\u0000"+ + "\u0000\u01e7\u0ed8\u0001\u0000\u0000\u0000\u01e9\u0ee0\u0001\u0000\u0000"+ + "\u0000\u01eb\u0ee9\u0001\u0000\u0000\u0000\u01ed\u0ef3\u0001\u0000\u0000"+ + "\u0000\u01ef\u0efc\u0001\u0000\u0000\u0000\u01f1\u0f04\u0001\u0000\u0000"+ + "\u0000\u01f3\u0f0a\u0001\u0000\u0000\u0000\u01f5\u0f10\u0001\u0000\u0000"+ + "\u0000\u01f7\u0f17\u0001\u0000\u0000\u0000\u01f9\u0f1e\u0001\u0000\u0000"+ + "\u0000\u01fb\u0f24\u0001\u0000\u0000\u0000\u01fd\u0f2a\u0001\u0000\u0000"+ + "\u0000\u01ff\u0f30\u0001\u0000\u0000\u0000\u0201\u0f36\u0001\u0000\u0000"+ + "\u0000\u0203\u0f40\u0001\u0000\u0000\u0000\u0205\u0f44\u0001\u0000\u0000"+ + "\u0000\u0207\u0f4a\u0001\u0000\u0000\u0000\u0209\u0f52\u0001\u0000\u0000"+ + "\u0000\u020b\u0f59\u0001\u0000\u0000\u0000\u020d\u0f61\u0001\u0000\u0000"+ + "\u0000\u020f\u0f69\u0001\u0000\u0000\u0000\u0211\u0f6f\u0001\u0000\u0000"+ + "\u0000\u0213\u0f74\u0001\u0000\u0000\u0000\u0215\u0f7b\u0001\u0000\u0000"+ + "\u0000\u0217\u0f80\u0001\u0000\u0000\u0000\u0219\u0f85\u0001\u0000\u0000"+ + "\u0000\u021b\u0f8e\u0001\u0000\u0000\u0000\u021d\u0f95\u0001\u0000\u0000"+ + "\u0000\u021f\u0f97\u0001\u0000\u0000\u0000\u0221\u0f9f\u0001\u0000\u0000"+ + "\u0000\u0223\u0fa9\u0001\u0000\u0000\u0000\u0225\u0fad\u0001\u0000\u0000"+ + "\u0000\u0227\u0fb4\u0001\u0000\u0000\u0000\u0229\u0fb7\u0001\u0000\u0000"+ + "\u0000\u022b\u0fbc\u0001\u0000\u0000\u0000\u022d\u0fc2\u0001\u0000\u0000"+ + "\u0000\u022f\u0fca\u0001\u0000\u0000\u0000\u0231\u0fd3\u0001\u0000\u0000"+ + "\u0000\u0233\u0fd9\u0001\u0000\u0000\u0000\u0235\u0fe2\u0001\u0000\u0000"+ + "\u0000\u0237\u0fea\u0001\u0000\u0000\u0000\u0239\u0ff1\u0001\u0000\u0000"+ + "\u0000\u023b\u0ffb\u0001\u0000\u0000\u0000\u023d\u1000\u0001\u0000\u0000"+ + "\u0000\u023f\u1005\u0001\u0000\u0000\u0000\u0241\u100a\u0001\u0000\u0000"+ + "\u0000\u0243\u1013\u0001\u0000\u0000\u0000\u0245\u101a\u0001\u0000\u0000"+ + "\u0000\u0247\u1020\u0001\u0000\u0000\u0000\u0249\u102a\u0001\u0000\u0000"+ + "\u0000\u024b\u1034\u0001\u0000\u0000\u0000\u024d\u1043\u0001\u0000\u0000"+ + "\u0000\u024f\u104c\u0001\u0000\u0000\u0000\u0251\u104f\u0001\u0000\u0000"+ + "\u0000\u0253\u1059\u0001\u0000\u0000\u0000\u0255\u1063\u0001\u0000\u0000"+ + "\u0000\u0257\u1069\u0001\u0000\u0000\u0000\u0259\u1073\u0001\u0000\u0000"+ + "\u0000\u025b\u1079\u0001\u0000\u0000\u0000\u025d\u1082\u0001\u0000\u0000"+ + "\u0000\u025f\u108d\u0001\u0000\u0000\u0000\u0261\u1097\u0001\u0000\u0000"+ + "\u0000\u0263\u109d\u0001\u0000\u0000\u0000\u0265\u10a3\u0001\u0000\u0000"+ + "\u0000\u0267\u10a9\u0001\u0000\u0000\u0000\u0269\u10b5\u0001\u0000\u0000"+ + "\u0000\u026b\u10bc\u0001\u0000\u0000\u0000\u026d\u10c5\u0001\u0000\u0000"+ + "\u0000\u026f\u10d2\u0001\u0000\u0000\u0000\u0271\u10da\u0001\u0000\u0000"+ + "\u0000\u0273\u10de\u0001\u0000\u0000\u0000\u0275\u10e6\u0001\u0000\u0000"+ + "\u0000\u0277\u10f0\u0001\u0000\u0000\u0000\u0279\u10fd\u0001\u0000\u0000"+ + "\u0000\u027b\u1106\u0001\u0000\u0000\u0000\u027d\u110b\u0001\u0000\u0000"+ + "\u0000\u027f\u1113\u0001\u0000\u0000\u0000\u0281\u1116\u0001\u0000\u0000"+ + "\u0000\u0283\u1120\u0001\u0000\u0000\u0000\u0285\u1128\u0001\u0000\u0000"+ + "\u0000\u0287\u112d\u0001\u0000\u0000\u0000\u0289\u112f\u0001\u0000\u0000"+ + "\u0000\u028b\u1133\u0001\u0000\u0000\u0000\u028d\u113e\u0001\u0000\u0000"+ + "\u0000\u028f\u1147\u0001\u0000\u0000\u0000\u0291\u114d\u0001\u0000\u0000"+ + "\u0000\u0293\u1159\u0001\u0000\u0000\u0000\u0295\u1162\u0001\u0000\u0000"+ + "\u0000\u0297\u1168\u0001\u0000\u0000\u0000\u0299\u116d\u0001\u0000\u0000"+ + "\u0000\u029b\u1175\u0001\u0000\u0000\u0000\u029d\u117d\u0001\u0000\u0000"+ + "\u0000\u029f\u1183\u0001\u0000\u0000\u0000\u02a1\u1188\u0001\u0000\u0000"+ + "\u0000\u02a3\u118f\u0001\u0000\u0000\u0000\u02a5\u1194\u0001\u0000\u0000"+ + "\u0000\u02a7\u119a\u0001\u0000\u0000\u0000\u02a9\u119f\u0001\u0000\u0000"+ + "\u0000\u02ab\u11a5\u0001\u0000\u0000\u0000\u02ad\u11ac\u0001\u0000\u0000"+ + "\u0000\u02af\u11af\u0001\u0000\u0000\u0000\u02b1\u11b4\u0001\u0000\u0000"+ + "\u0000\u02b3\u11ba\u0001\u0000\u0000\u0000\u02b5\u11c4\u0001\u0000\u0000"+ + "\u0000\u02b7\u11d3\u0001\u0000\u0000\u0000\u02b9\u11dc\u0001\u0000\u0000"+ + "\u0000\u02bb\u11e4\u0001\u0000\u0000\u0000\u02bd\u11e9\u0001\u0000\u0000"+ + "\u0000\u02bf\u11f0\u0001\u0000\u0000\u0000\u02c1\u11f6\u0001\u0000\u0000"+ + "\u0000\u02c3\u11f8\u0001\u0000\u0000\u0000\u02c5\u11fd\u0001\u0000\u0000"+ + "\u0000\u02c7\u1201\u0001\u0000\u0000\u0000\u02c9\u1209\u0001\u0000\u0000"+ + "\u0000\u02cb\u120f\u0001\u0000\u0000\u0000\u02cd\u121c\u0001\u0000\u0000"+ + "\u0000\u02cf\u1224\u0001\u0000\u0000\u0000\u02d1\u1228\u0001\u0000\u0000"+ + "\u0000\u02d3\u1231\u0001\u0000\u0000\u0000\u02d5\u1238\u0001\u0000\u0000"+ + "\u0000\u02d7\u123e\u0001\u0000\u0000\u0000\u02d9\u124d\u0001\u0000\u0000"+ + "\u0000\u02db\u1262\u0001\u0000\u0000\u0000\u02dd\u126f\u0001\u0000\u0000"+ + "\u0000\u02df\u1276\u0001\u0000\u0000\u0000\u02e1\u127a\u0001\u0000\u0000"+ + "\u0000\u02e3\u1281\u0001\u0000\u0000\u0000\u02e5\u128a\u0001\u0000\u0000"+ + "\u0000\u02e7\u128e\u0001\u0000\u0000\u0000\u02e9\u1293\u0001\u0000\u0000"+ + "\u0000\u02eb\u129c\u0001\u0000\u0000\u0000\u02ed\u12a3\u0001\u0000\u0000"+ + "\u0000\u02ef\u12aa\u0001\u0000\u0000\u0000\u02f1\u12b0\u0001\u0000\u0000"+ + "\u0000\u02f3\u12b5\u0001\u0000\u0000\u0000\u02f5\u12ba\u0001\u0000\u0000"+ + "\u0000\u02f7\u12c3\u0001\u0000\u0000\u0000\u02f9\u12c9\u0001\u0000\u0000"+ + "\u0000\u02fb\u12ce\u0001\u0000\u0000\u0000\u02fd\u12d4\u0001\u0000\u0000"+ + "\u0000\u02ff\u12dd\u0001\u0000\u0000\u0000\u0301\u12e5\u0001\u0000\u0000"+ + "\u0000\u0303\u12eb\u0001\u0000\u0000\u0000\u0305\u12f1\u0001\u0000\u0000"+ + "\u0000\u0307\u12f9\u0001\u0000\u0000\u0000\u0309\u12fd\u0001\u0000\u0000"+ + "\u0000\u030b\u1302\u0001\u0000\u0000\u0000\u030d\u1305\u0001\u0000\u0000"+ + "\u0000\u030f\u1310\u0001\u0000\u0000\u0000\u0311\u131d\u0001\u0000\u0000"+ + "\u0000\u0313\u1322\u0001\u0000\u0000\u0000\u0315\u132c\u0001\u0000\u0000"+ + "\u0000\u0317\u1337\u0001\u0000\u0000\u0000\u0319\u133b\u0001\u0000\u0000"+ + "\u0000\u031b\u1343\u0001\u0000\u0000\u0000\u031d\u134a\u0001\u0000\u0000"+ + "\u0000\u031f\u1352\u0001\u0000\u0000\u0000\u0321\u1359\u0001\u0000\u0000"+ + "\u0000\u0323\u135e\u0001\u0000\u0000\u0000\u0325\u1367\u0001\u0000\u0000"+ + "\u0000\u0327\u136e\u0001\u0000\u0000\u0000\u0329\u1374\u0001\u0000\u0000"+ + "\u0000\u032b\u137b\u0001\u0000\u0000\u0000\u032d\u1383\u0001\u0000\u0000"+ + "\u0000\u032f\u138a\u0001\u0000\u0000\u0000\u0331\u1397\u0001\u0000\u0000"+ + "\u0000\u0333\u139e\u0001\u0000\u0000\u0000\u0335\u13a1\u0001\u0000\u0000"+ + "\u0000\u0337\u13a5\u0001\u0000\u0000\u0000\u0339\u13ac\u0001\u0000\u0000"+ + "\u0000\u033b\u13b1\u0001\u0000\u0000\u0000\u033d\u13b5\u0001\u0000\u0000"+ + "\u0000\u033f\u13b8\u0001\u0000\u0000\u0000\u0341\u13bd\u0001\u0000\u0000"+ + "\u0000\u0343\u13c2\u0001\u0000\u0000\u0000\u0345\u13cc\u0001\u0000\u0000"+ + "\u0000\u0347\u13d5\u0001\u0000\u0000\u0000\u0349\u13dc\u0001\u0000\u0000"+ + "\u0000\u034b\u13e4\u0001\u0000\u0000\u0000\u034d\u13e7\u0001\u0000\u0000"+ + "\u0000\u034f\u13ed\u0001\u0000\u0000\u0000\u0351\u13f6\u0001\u0000\u0000"+ + "\u0000\u0353\u1401\u0001\u0000\u0000\u0000\u0355\u1408\u0001\u0000\u0000"+ + "\u0000\u0357\u140c\u0001\u0000\u0000\u0000\u0359\u1412\u0001\u0000\u0000"+ + "\u0000\u035b\u1419\u0001\u0000\u0000\u0000\u035d\u141e\u0001\u0000\u0000"+ + "\u0000\u035f\u1427\u0001\u0000\u0000\u0000\u0361\u142f\u0001\u0000\u0000"+ + "\u0000\u0363\u143a\u0001\u0000\u0000\u0000\u0365\u1440\u0001\u0000\u0000"+ + "\u0000\u0367\u1444\u0001\u0000\u0000\u0000\u0369\u144e\u0001\u0000\u0000"+ + "\u0000\u036b\u145d\u0001\u0000\u0000\u0000\u036d\u146c\u0001\u0000\u0000"+ + "\u0000\u036f\u1487\u0001\u0000\u0000\u0000\u0371\u14a2\u0001\u0000\u0000"+ + "\u0000\u0373\u14ba\u0001\u0000\u0000\u0000\u0375\u14d4\u0001\u0000\u0000"+ + "\u0000\u0377\u14df\u0001\u0000\u0000\u0000\u0379\u14e6\u0001\u0000\u0000"+ + "\u0000\u037b\u14ee\u0001\u0000\u0000\u0000\u037d\u14f8\u0001\u0000\u0000"+ + "\u0000\u037f\u14ff\u0001\u0000\u0000\u0000\u0381\u1508\u0001\u0000\u0000"+ + "\u0000\u0383\u150d\u0001\u0000\u0000\u0000\u0385\u151a\u0001\u0000\u0000"+ + "\u0000\u0387\u152a\u0001\u0000\u0000\u0000\u0389\u153a\u0001\u0000\u0000"+ + "\u0000\u038b\u1542\u0001\u0000\u0000\u0000\u038d\u1548\u0001\u0000\u0000"+ + "\u0000\u038f\u154e\u0001\u0000\u0000\u0000\u0391\u1552\u0001\u0000\u0000"+ + "\u0000\u0393\u155b\u0001\u0000\u0000\u0000\u0395\u1563\u0001\u0000\u0000"+ + "\u0000\u0397\u1569\u0001\u0000\u0000\u0000\u0399\u1573\u0001\u0000\u0000"+ + "\u0000\u039b\u157d\u0001\u0000\u0000\u0000\u039d\u1584\u0001\u0000\u0000"+ + "\u0000\u039f\u158d\u0001\u0000\u0000\u0000\u03a1\u1595\u0001\u0000\u0000"+ + "\u0000\u03a3\u159e\u0001\u0000\u0000\u0000\u03a5\u15a7\u0001\u0000\u0000"+ + "\u0000\u03a7\u15af\u0001\u0000\u0000\u0000\u03a9\u15b5\u0001\u0000\u0000"+ + "\u0000\u03ab\u15c0\u0001\u0000\u0000\u0000\u03ad\u15cb\u0001\u0000\u0000"+ + "\u0000\u03af\u15d5\u0001\u0000\u0000\u0000\u03b1\u15dc\u0001\u0000\u0000"+ + "\u0000\u03b3\u15e8\u0001\u0000\u0000\u0000\u03b5\u15ee\u0001\u0000\u0000"+ + "\u0000\u03b7\u15f4\u0001\u0000\u0000\u0000\u03b9\u15f9\u0001\u0000\u0000"+ + "\u0000\u03bb\u15fe\u0001\u0000\u0000\u0000\u03bd\u1604\u0001\u0000\u0000"+ + "\u0000\u03bf\u1609\u0001\u0000\u0000\u0000\u03c1\u1612\u0001\u0000\u0000"+ + "\u0000\u03c3\u161a\u0001\u0000\u0000\u0000\u03c5\u1624\u0001\u0000\u0000"+ + "\u0000\u03c7\u1628\u0001\u0000\u0000\u0000\u03c9\u1633\u0001\u0000\u0000"+ + "\u0000\u03cb\u163f\u0001\u0000\u0000\u0000\u03cd\u1647\u0001\u0000\u0000"+ + "\u0000\u03cf\u1651\u0001\u0000\u0000\u0000\u03d1\u165b\u0001\u0000\u0000"+ + "\u0000\u03d3\u1666\u0001\u0000\u0000\u0000\u03d5\u1675\u0001\u0000\u0000"+ + "\u0000\u03d7\u167d\u0001\u0000\u0000\u0000\u03d9\u1688\u0001\u0000\u0000"+ + "\u0000\u03db\u1691\u0001\u0000\u0000\u0000\u03dd\u169a\u0001\u0000\u0000"+ + "\u0000\u03df\u16a3\u0001\u0000\u0000\u0000\u03e1\u16ab\u0001\u0000\u0000"+ + "\u0000\u03e3\u16b4\u0001\u0000\u0000\u0000\u03e5\u16bc\u0001\u0000\u0000"+ + "\u0000\u03e7\u16c3\u0001\u0000\u0000\u0000\u03e9\u16ce\u0001\u0000\u0000"+ + "\u0000\u03eb\u16d6\u0001\u0000\u0000\u0000\u03ed\u16de\u0001\u0000\u0000"+ + "\u0000\u03ef\u16e4\u0001\u0000\u0000\u0000\u03f1\u16ec\u0001\u0000\u0000"+ + "\u0000\u03f3\u16f5\u0001\u0000\u0000\u0000\u03f5\u16fc\u0001\u0000\u0000"+ + "\u0000\u03f7\u1703\u0001\u0000\u0000\u0000\u03f9\u1718\u0001\u0000\u0000"+ + "\u0000\u03fb\u1728\u0001\u0000\u0000\u0000\u03fd\u173e\u0001\u0000\u0000"+ + "\u0000\u03ff\u1750\u0001\u0000\u0000\u0000\u0401\u175a\u0001\u0000\u0000"+ + "\u0000\u0403\u1762\u0001\u0000\u0000\u0000\u0405\u1769\u0001\u0000\u0000"+ + "\u0000\u0407\u176f\u0001\u0000\u0000\u0000\u0409\u1774\u0001\u0000\u0000"+ + "\u0000\u040b\u177d\u0001\u0000\u0000\u0000\u040d\u1784\u0001\u0000\u0000"+ + "\u0000\u040f\u178c\u0001\u0000\u0000\u0000\u0411\u179c\u0001\u0000\u0000"+ + "\u0000\u0413\u17a9\u0001\u0000\u0000\u0000\u0415\u17b8\u0001\u0000\u0000"+ + "\u0000\u0417\u17bc\u0001\u0000\u0000\u0000\u0419\u17c6\u0001\u0000\u0000"+ + "\u0000\u041b\u17d1\u0001\u0000\u0000\u0000\u041d\u17d6\u0001\u0000\u0000"+ + "\u0000\u041f\u17db\u0001\u0000\u0000\u0000\u0421\u17e5\u0001\u0000\u0000"+ + "\u0000\u0423\u17eb\u0001\u0000\u0000\u0000\u0425\u17f2\u0001\u0000\u0000"+ + "\u0000\u0427\u17fe\u0001\u0000\u0000\u0000\u0429\u1804\u0001\u0000\u0000"+ + "\u0000\u042b\u1812\u0001\u0000\u0000\u0000\u042d\u181d\u0001\u0000\u0000"+ + "\u0000\u042f\u182a\u0001\u0000\u0000\u0000\u0431\u1831\u0001\u0000\u0000"+ + "\u0000\u0433\u1838\u0001\u0000\u0000\u0000\u0435\u183f\u0001\u0000\u0000"+ + "\u0000\u0437\u1847\u0001\u0000\u0000\u0000\u0439\u1850\u0001\u0000\u0000"+ + "\u0000\u043b\u1857\u0001\u0000\u0000\u0000\u043d\u185c\u0001\u0000\u0000"+ + "\u0000\u043f\u1866\u0001\u0000\u0000\u0000\u0441\u186f\u0001\u0000\u0000"+ + "\u0000\u0443\u1879\u0001\u0000\u0000\u0000\u0445\u1886\u0001\u0000\u0000"+ + "\u0000\u0447\u1892\u0001\u0000\u0000\u0000\u0449\u189a\u0001\u0000\u0000"+ + "\u0000\u044b\u18a7\u0001\u0000\u0000\u0000\u044d\u18ab\u0001\u0000\u0000"+ + "\u0000\u044f\u18b1\u0001\u0000\u0000\u0000\u0451\u18b6\u0001\u0000\u0000"+ + "\u0000\u0453\u18bc\u0001\u0000\u0000\u0000\u0455\u18c1\u0001\u0000\u0000"+ + "\u0000\u0457\u18c9\u0001\u0000\u0000\u0000\u0459\u18d0\u0001\u0000\u0000"+ + "\u0000\u045b\u18d5\u0001\u0000\u0000\u0000\u045d\u18da\u0001\u0000\u0000"+ + "\u0000\u045f\u18e3\u0001\u0000\u0000\u0000\u0461\u18ec\u0001\u0000\u0000"+ + "\u0000\u0463\u18f1\u0001\u0000\u0000\u0000\u0465\u18f8\u0001\u0000\u0000"+ + "\u0000\u0467\u18fe\u0001\u0000\u0000\u0000\u0469\u1907\u0001\u0000\u0000"+ + "\u0000\u046b\u1915\u0001\u0000\u0000\u0000\u046d\u1922\u0001\u0000\u0000"+ + "\u0000\u046f\u1926\u0001\u0000\u0000\u0000\u0471\u192e\u0001\u0000\u0000"+ + "\u0000\u0473\u1937\u0001\u0000\u0000\u0000\u0475\u1944\u0001\u0000\u0000"+ + "\u0000\u0477\u194d\u0001\u0000\u0000\u0000\u0479\u1958\u0001\u0000\u0000"+ + "\u0000\u047b\u195d\u0001\u0000\u0000\u0000\u047d\u1964\u0001\u0000\u0000"+ + "\u0000\u047f\u196a\u0001\u0000\u0000\u0000\u0481\u1970\u0001\u0000\u0000"+ + "\u0000\u0483\u197a\u0001\u0000\u0000\u0000\u0485\u1981\u0001\u0000\u0000"+ + "\u0000\u0487\u198c\u0001\u0000\u0000\u0000\u0489\u1997\u0001\u0000\u0000"+ + "\u0000\u048b\u19a3\u0001\u0000\u0000\u0000\u048d\u19a9\u0001\u0000\u0000"+ + "\u0000\u048f\u19b0\u0001\u0000\u0000\u0000\u0491\u19b8\u0001\u0000\u0000"+ + "\u0000\u0493\u19bf\u0001\u0000\u0000\u0000\u0495\u19c9\u0001\u0000\u0000"+ + "\u0000\u0497\u19cf\u0001\u0000\u0000\u0000\u0499\u19df\u0001\u0000\u0000"+ + "\u0000\u049b\u19e7\u0001\u0000\u0000\u0000\u049d\u19f3\u0001\u0000\u0000"+ + "\u0000\u049f\u1a00\u0001\u0000\u0000\u0000\u04a1\u1a0a\u0001\u0000\u0000"+ + "\u0000\u04a3\u1a0e\u0001\u0000\u0000\u0000\u04a5\u1a18\u0001\u0000\u0000"+ + "\u0000\u04a7\u1a1e\u0001\u0000\u0000\u0000\u04a9\u1a25\u0001\u0000\u0000"+ + "\u0000\u04ab\u1a31\u0001\u0000\u0000\u0000\u04ad\u1a37\u0001\u0000\u0000"+ + "\u0000\u04af\u1a42\u0001\u0000\u0000\u0000\u04b1\u1a4e\u0001\u0000\u0000"+ + "\u0000\u04b3\u1a59\u0001\u0000\u0000\u0000\u04b5\u1a5e\u0001\u0000\u0000"+ + "\u0000\u04b7\u1a67\u0001\u0000\u0000\u0000\u04b9\u1a71\u0001\u0000\u0000"+ + "\u0000\u04bb\u1a7b\u0001\u0000\u0000\u0000\u04bd\u1a80\u0001\u0000\u0000"+ + "\u0000\u04bf\u1a85\u0001\u0000\u0000\u0000\u04c1\u1a8a\u0001\u0000\u0000"+ + "\u0000\u04c3\u1a8f\u0001\u0000\u0000\u0000\u04c5\u1a99\u0001\u0000\u0000"+ + "\u0000\u04c7\u1aa7\u0001\u0000\u0000\u0000\u04c9\u1ab7\u0001\u0000\u0000"+ + "\u0000\u04cb\u1abe\u0001\u0000\u0000\u0000\u04cd\u1ac1\u0001\u0000\u0000"+ + "\u0000\u04cf\u1ac7\u0001\u0000\u0000\u0000\u04d1\u1ad7\u0001\u0000\u0000"+ + "\u0000\u04d3\u1ae0\u0001\u0000\u0000\u0000\u04d5\u1aec\u0001\u0000\u0000"+ + "\u0000\u04d7\u1aff\u0001\u0000\u0000\u0000\u04d9\u1b16\u0001\u0000\u0000"+ + "\u0000\u04db\u1b2f\u0001\u0000\u0000\u0000\u04dd\u1b39\u0001\u0000\u0000"+ + "\u0000\u04df\u1b44\u0001\u0000\u0000\u0000\u04e1\u1b4e\u0001\u0000\u0000"+ + "\u0000\u04e3\u1b5a\u0001\u0000\u0000\u0000\u04e5\u1b60\u0001\u0000\u0000"+ + "\u0000\u04e7\u1b68\u0001\u0000\u0000\u0000\u04e9\u1b78\u0001\u0000\u0000"+ + "\u0000\u04eb\u1b85\u0001\u0000\u0000\u0000\u04ed\u1b94\u0001\u0000\u0000"+ + "\u0000\u04ef\u1b99\u0001\u0000\u0000\u0000\u04f1\u1b9e\u0001\u0000\u0000"+ + "\u0000\u04f3\u1ba7\u0001\u0000\u0000\u0000\u04f5\u1baf\u0001\u0000\u0000"+ + "\u0000\u04f7\u1bb4\u0001\u0000\u0000\u0000\u04f9\u1bbc\u0001\u0000\u0000"+ + "\u0000\u04fb\u1bc6\u0001\u0000\u0000\u0000\u04fd\u1bd2\u0001\u0000\u0000"+ + "\u0000\u04ff\u1bd8\u0001\u0000\u0000\u0000\u0501\u1be4\u0001\u0000\u0000"+ + "\u0000\u0503\u1bea\u0001\u0000\u0000\u0000\u0505\u1bf1\u0001\u0000\u0000"+ + "\u0000\u0507\u1bf9\u0001\u0000\u0000\u0000\u0509\u1c02\u0001\u0000\u0000"+ + "\u0000\u050b\u1c0a\u0001\u0000\u0000\u0000\u050d\u1c11\u0001\u0000\u0000"+ + "\u0000\u050f\u1c17\u0001\u0000\u0000\u0000\u0511\u1c1e\u0001\u0000\u0000"+ + "\u0000\u0513\u1c24\u0001\u0000\u0000\u0000\u0515\u1c2a\u0001\u0000\u0000"+ + "\u0000\u0517\u1c2f\u0001\u0000\u0000\u0000\u0519\u1c49\u0001\u0000\u0000"+ + "\u0000\u051b\u1c60\u0001\u0000\u0000\u0000\u051d\u1c77\u0001\u0000\u0000"+ + "\u0000\u051f\u1c90\u0001\u0000\u0000\u0000\u0521\u1c96\u0001\u0000\u0000"+ + "\u0000\u0523\u1c9d\u0001\u0000\u0000\u0000\u0525\u1ca3\u0001\u0000\u0000"+ + "\u0000\u0527\u1cac\u0001\u0000\u0000\u0000\u0529\u1cb6\u0001\u0000\u0000"+ + "\u0000\u052b\u1cbc\u0001\u0000\u0000\u0000\u052d\u1cc3\u0001\u0000\u0000"+ + "\u0000\u052f\u1ccb\u0001\u0000\u0000\u0000\u0531\u1cd4\u0001\u0000\u0000"+ + "\u0000\u0533\u1cdc\u0001\u0000\u0000\u0000\u0535\u1ce5\u0001\u0000\u0000"+ + "\u0000\u0537\u1cee\u0001\u0000\u0000\u0000\u0539\u1cf6\u0001\u0000\u0000"+ + "\u0000\u053b\u1cfe\u0001\u0000\u0000\u0000\u053d\u1d03\u0001\u0000\u0000"+ + "\u0000\u053f\u1d0c\u0001\u0000\u0000\u0000\u0541\u1d11\u0001\u0000\u0000"+ + "\u0000\u0543\u1d1a\u0001\u0000\u0000\u0000\u0545\u1d20\u0001\u0000\u0000"+ + "\u0000\u0547\u1d2d\u0001\u0000\u0000\u0000\u0549\u1d34\u0001\u0000\u0000"+ + "\u0000\u054b\u1d39\u0001\u0000\u0000\u0000\u054d\u1d40\u0001\u0000\u0000"+ + "\u0000\u054f\u1d48\u0001\u0000\u0000\u0000\u0551\u1d4d\u0001\u0000\u0000"+ + "\u0000\u0553\u1d53\u0001\u0000\u0000\u0000\u0555\u1d58\u0001\u0000\u0000"+ + "\u0000\u0557\u1d5d\u0001\u0000\u0000\u0000\u0559\u1d61\u0001\u0000\u0000"+ + "\u0000\u055b\u1d66\u0001\u0000\u0000\u0000\u055d\u1d70\u0001\u0000\u0000"+ + "\u0000\u055f\u1d7c\u0001\u0000\u0000\u0000\u0561\u1d87\u0001\u0000\u0000"+ + "\u0000\u0563\u1d94\u0001\u0000\u0000\u0000\u0565\u1d9c\u0001\u0000\u0000"+ + "\u0000\u0567\u1da6\u0001\u0000\u0000\u0000\u0569\u1dac\u0001\u0000\u0000"+ + "\u0000\u056b\u1db4\u0001\u0000\u0000\u0000\u056d\u1dc0\u0001\u0000\u0000"+ + "\u0000\u056f\u1dce\u0001\u0000\u0000\u0000\u0571\u1dd8\u0001\u0000\u0000"+ + "\u0000\u0573\u1de4\u0001\u0000\u0000\u0000\u0575\u1dea\u0001\u0000\u0000"+ + "\u0000\u0577\u1df0\u0001\u0000\u0000\u0000\u0579\u1df7\u0001\u0000\u0000"+ + "\u0000\u057b\u1e01\u0001\u0000\u0000\u0000\u057d\u1e11\u0001\u0000\u0000"+ + "\u0000\u057f\u1e1d\u0001\u0000\u0000\u0000\u0581\u1e28\u0001\u0000\u0000"+ + "\u0000\u0583\u1e35\u0001\u0000\u0000\u0000\u0585\u1e3e\u0001\u0000\u0000"+ + "\u0000\u0587\u1e45\u0001\u0000\u0000\u0000\u0589\u1e4e\u0001\u0000\u0000"+ + "\u0000\u058b\u1e55\u0001\u0000\u0000\u0000\u058d\u1e5d\u0001\u0000\u0000"+ + "\u0000\u058f\u1e68\u0001\u0000\u0000\u0000\u0591\u1e79\u0001\u0000\u0000"+ + "\u0000\u0593\u1e83\u0001\u0000\u0000\u0000\u0595\u1e8a\u0001\u0000\u0000"+ + "\u0000\u0597\u1e93\u0001\u0000\u0000\u0000\u0599\u1ea0\u0001\u0000\u0000"+ + "\u0000\u059b\u1ea5\u0001\u0000\u0000\u0000\u059d\u1eac\u0001\u0000\u0000"+ + "\u0000\u059f\u1eb5\u0001\u0000\u0000\u0000\u05a1\u1eb8\u0001\u0000\u0000"+ + "\u0000\u05a3\u1ebf\u0001\u0000\u0000\u0000\u05a5\u1eca\u0001\u0000\u0000"+ + "\u0000\u05a7\u1ed3\u0001\u0000\u0000\u0000\u05a9\u1edc\u0001\u0000\u0000"+ + "\u0000\u05ab\u1ee4\u0001\u0000\u0000\u0000\u05ad\u1ef6\u0001\u0000\u0000"+ + "\u0000\u05af\u1f02\u0001\u0000\u0000\u0000\u05b1\u1f08\u0001\u0000\u0000"+ + "\u0000\u05b3\u1f10\u0001\u0000\u0000\u0000\u05b5\u1f17\u0001\u0000\u0000"+ + "\u0000\u05b7\u1f1d\u0001\u0000\u0000\u0000\u05b9\u1f22\u0001\u0000\u0000"+ + "\u0000\u05bb\u1f27\u0001\u0000\u0000\u0000\u05bd\u1f2e\u0001\u0000\u0000"+ + "\u0000\u05bf\u1f32\u0001\u0000\u0000\u0000\u05c1\u1f37\u0001\u0000\u0000"+ + "\u0000\u05c3\u1f44\u0001\u0000\u0000\u0000\u05c5\u1f4b\u0001\u0000\u0000"+ + "\u0000\u05c7\u1f58\u0001\u0000\u0000\u0000\u05c9\u1f60\u0001\u0000\u0000"+ + "\u0000\u05cb\u1f69\u0001\u0000\u0000\u0000\u05cd\u1f74\u0001\u0000\u0000"+ + "\u0000\u05cf\u1f7c\u0001\u0000\u0000\u0000\u05d1\u1f83\u0001\u0000\u0000"+ + "\u0000\u05d3\u1f8a\u0001\u0000\u0000\u0000\u05d5\u1f91\u0001\u0000\u0000"+ + "\u0000\u05d7\u1f98\u0001\u0000\u0000\u0000\u05d9\u1f9e\u0001\u0000\u0000"+ + "\u0000\u05db\u1fa6\u0001\u0000\u0000\u0000\u05dd\u1fb0\u0001\u0000\u0000"+ + "\u0000\u05df\u1fbc\u0001\u0000\u0000\u0000\u05e1\u1fc1\u0001\u0000\u0000"+ + "\u0000\u05e3\u1fc5\u0001\u0000\u0000\u0000\u05e5\u1fcb\u0001\u0000\u0000"+ + "\u0000\u05e7\u1fdd\u0001\u0000\u0000\u0000\u05e9\u1fe2\u0001\u0000\u0000"+ + "\u0000\u05eb\u1fe9\u0001\u0000\u0000\u0000\u05ed\u1ff0\u0001\u0000\u0000"+ + "\u0000\u05ef\u1ff7\u0001\u0000\u0000\u0000\u05f1\u1ffc\u0001\u0000\u0000"+ + "\u0000\u05f3\u2001\u0001\u0000\u0000\u0000\u05f5\u2006\u0001\u0000\u0000"+ + "\u0000\u05f7\u200b\u0001\u0000\u0000\u0000\u05f9\u2010\u0001\u0000\u0000"+ + "\u0000\u05fb\u2016\u0001\u0000\u0000\u0000\u05fd\u201b\u0001\u0000\u0000"+ + "\u0000\u05ff\u2020\u0001\u0000\u0000\u0000\u0601\u2028\u0001\u0000\u0000"+ + "\u0000\u0603\u2031\u0001\u0000\u0000\u0000\u0605\u2037\u0001\u0000\u0000"+ + "\u0000\u0607\u203e\u0001\u0000\u0000\u0000\u0609\u2044\u0001\u0000\u0000"+ + "\u0000\u060b\u204c\u0001\u0000\u0000\u0000\u060d\u2054\u0001\u0000\u0000"+ + "\u0000\u060f\u205b\u0001\u0000\u0000\u0000\u0611\u2063\u0001\u0000\u0000"+ + "\u0000\u0613\u206b\u0001\u0000\u0000\u0000\u0615\u2073\u0001\u0000\u0000"+ + "\u0000\u0617\u207f\u0001\u0000\u0000\u0000\u0619\u2086\u0001\u0000\u0000"+ + "\u0000\u061b\u208b\u0001\u0000\u0000\u0000\u061d\u2097\u0001\u0000\u0000"+ + "\u0000\u061f\u209e\u0001\u0000\u0000\u0000\u0621\u20a6\u0001\u0000\u0000"+ + "\u0000\u0623\u20af\u0001\u0000\u0000\u0000\u0625\u20bd\u0001\u0000\u0000"+ + "\u0000\u0627\u20c2\u0001\u0000\u0000\u0000\u0629\u20c9\u0001\u0000\u0000"+ + "\u0000\u062b\u20cd\u0001\u0000\u0000\u0000\u062d\u20cf\u0001\u0000\u0000"+ + "\u0000\u062f\u20d1\u0001\u0000\u0000\u0000\u0631\u20d4\u0001\u0000\u0000"+ + "\u0000\u0633\u20d6\u0001\u0000\u0000\u0000\u0635\u20d9\u0001\u0000\u0000"+ + "\u0000\u0637\u20db\u0001\u0000\u0000\u0000\u0639\u20dd\u0001\u0000\u0000"+ + "\u0000\u063b\u20df\u0001\u0000\u0000\u0000\u063d\u20e1\u0001\u0000\u0000"+ + "\u0000\u063f\u20e3\u0001\u0000\u0000\u0000\u0641\u20ed\u0001\u0000\u0000"+ + "\u0000\u0643\u20f1\u0001\u0000\u0000\u0000\u0645\u210d\u0001\u0000\u0000"+ + "\u0000\u0647\u211c\u0001\u0000\u0000\u0000\u0649\u211f\u0001\u0000\u0000"+ + "\u0000\u064b\u2121\u0001\u0000\u0000\u0000\u064d\u2123\u0001\u0000\u0000"+ + "\u0000\u064f\u2125\u0001\u0000\u0000\u0000\u0651\u212c\u0001\u0000\u0000"+ + "\u0000\u0653\u2132\u0001\u0000\u0000\u0000\u0655\u2139\u0001\u0000\u0000"+ + "\u0000\u0657\u213b\u0001\u0000\u0000\u0000\u0659\u213e\u0001\u0000\u0000"+ + "\u0000\u065b\u2141\u0001\u0000\u0000\u0000\u065d\u2144\u0001\u0000\u0000"+ + "\u0000\u065f\u2147\u0001\u0000\u0000\u0000\u0661\u2149\u0001\u0000\u0000"+ + "\u0000\u0663\u214b\u0001\u0000\u0000\u0000\u0665\u214e\u0001\u0000\u0000"+ + "\u0000\u0667\u2151\u0001\u0000\u0000\u0000\u0669\u2153\u0001\u0000\u0000"+ + "\u0000\u066b\u2155\u0001\u0000\u0000\u0000\u066d\u2158\u0001\u0000\u0000"+ + "\u0000\u066f\u215a\u0001\u0000\u0000\u0000\u0671\u215d\u0001\u0000\u0000"+ + "\u0000\u0673\u2160\u0001\u0000\u0000\u0000\u0675\u2162\u0001\u0000\u0000"+ + "\u0000\u0677\u2165\u0001\u0000\u0000\u0000\u0679\u2168\u0001\u0000\u0000"+ + "\u0000\u067b\u216c\u0001\u0000\u0000\u0000\u067d\u216f\u0001\u0000\u0000"+ + "\u0000\u067f\u2172\u0001\u0000\u0000\u0000\u0681\u2176\u0001\u0000\u0000"+ + "\u0000\u0683\u217a\u0001\u0000\u0000\u0000\u0685\u217c\u0001\u0000\u0000"+ + "\u0000\u0687\u217f\u0001\u0000\u0000\u0000\u0689\u2182\u0001\u0000\u0000"+ + "\u0000\u068b\u2185\u0001\u0000\u0000\u0000\u068d\u2188\u0001\u0000\u0000"+ + "\u0000\u068f\u218c\u0001\u0000\u0000\u0000\u0691\u218f\u0001\u0000\u0000"+ + "\u0000\u0693\u2193\u0001\u0000\u0000\u0000\u0695\u2197\u0001\u0000\u0000"+ + "\u0000\u0697\u2199\u0001\u0000\u0000\u0000\u0699\u219b\u0001\u0000\u0000"+ + "\u0000\u069b\u219d\u0001\u0000\u0000\u0000\u069d\u21a0\u0001\u0000\u0000"+ + "\u0000\u069f\u21a4\u0001\u0000\u0000\u0000\u06a1\u21a7\u0001\u0000\u0000"+ + "\u0000\u06a3\u21a9\u0001\u0000\u0000\u0000\u06a5\u21ab\u0001\u0000\u0000"+ + "\u0000\u06a7\u21ae\u0001\u0000\u0000\u0000\u06a9\u21b1\u0001\u0000\u0000"+ + "\u0000\u06ab\u21b4\u0001\u0000\u0000\u0000\u06ad\u21b7\u0001\u0000\u0000"+ + "\u0000\u06af\u21b9\u0001\u0000\u0000\u0000\u06b1\u21bb\u0001\u0000\u0000"+ + "\u0000\u06b3\u21be\u0001\u0000\u0000\u0000\u06b5\u21c3\u0001\u0000\u0000"+ + "\u0000\u06b7\u21c7\u0001\u0000\u0000\u0000\u06b9\u21cc\u0001\u0000\u0000"+ + "\u0000\u06bb\u21d0\u0001\u0000\u0000\u0000\u06bd\u21d3\u0001\u0000\u0000"+ + "\u0000\u06bf\u21d6\u0001\u0000\u0000\u0000\u06c1\u06c3\u0007\u0000\u0000"+ + "\u0000\u06c2\u06c1\u0001\u0000\u0000\u0000\u06c3\u06c4\u0001\u0000\u0000"+ + "\u0000\u06c4\u06c2\u0001\u0000\u0000\u0000\u06c4\u06c5\u0001\u0000\u0000"+ + "\u0000\u06c5\u06c6\u0001\u0000\u0000\u0000\u06c6\u06c7\u0006\u0000\u0000"+ + "\u0000\u06c7\u0002\u0001\u0000\u0000\u0000\u06c8\u06c9\u0005/\u0000\u0000"+ + "\u06c9\u06ca\u0005*\u0000\u0000\u06ca\u06ce\u0001\u0000\u0000\u0000\u06cb"+ + "\u06cd\t\u0000\u0000\u0000\u06cc\u06cb\u0001\u0000\u0000\u0000\u06cd\u06d0"+ + "\u0001\u0000\u0000\u0000\u06ce\u06cf\u0001\u0000\u0000\u0000\u06ce\u06cc"+ + "\u0001\u0000\u0000\u0000\u06cf\u06d1\u0001\u0000\u0000\u0000\u06d0\u06ce"+ + "\u0001\u0000\u0000\u0000\u06d1\u06d2\u0005*\u0000\u0000\u06d2\u06d3\u0005"+ + "/\u0000\u0000\u06d3\u06d4\u0001\u0000\u0000\u0000\u06d4\u06d5\u0006\u0001"+ + "\u0001\u0000\u06d5\u0004\u0001\u0000\u0000\u0000\u06d6\u06d7\u0005-\u0000"+ + "\u0000\u06d7\u06d8\u0005-\u0000\u0000\u06d8\u06dc\u0001\u0000\u0000\u0000"+ + "\u06d9\u06db\t\u0000\u0000\u0000\u06da\u06d9\u0001\u0000\u0000\u0000\u06db"+ + "\u06de\u0001\u0000\u0000\u0000\u06dc\u06dd\u0001\u0000\u0000\u0000\u06dc"+ + "\u06da\u0001\u0000\u0000\u0000\u06dd\u06df\u0001\u0000\u0000\u0000\u06de"+ + "\u06dc\u0001\u0000\u0000\u0000\u06df\u06e0\u0005\n\u0000\u0000\u06e0\u06e1"+ + "\u0001\u0000\u0000\u0000\u06e1\u06e2\u0006\u0002\u0001\u0000\u06e2\u0006"+ + "\u0001\u0000\u0000\u0000\u06e3\u06e4\u0007\u0001\u0000\u0000\u06e4\b\u0001"+ + "\u0000\u0000\u0000\u06e5\u06e6\u0007\u0002\u0000\u0000\u06e6\n\u0001\u0000"+ + "\u0000\u0000\u06e7\u06e8\u0007\u0003\u0000\u0000\u06e8\f\u0001\u0000\u0000"+ + "\u0000\u06e9\u06ea\u0007\u0004\u0000\u0000\u06ea\u000e\u0001\u0000\u0000"+ + "\u0000\u06eb\u06ec\u0007\u0005\u0000\u0000\u06ec\u0010\u0001\u0000\u0000"+ + "\u0000\u06ed\u06ee\u0007\u0006\u0000\u0000\u06ee\u0012\u0001\u0000\u0000"+ + "\u0000\u06ef\u06f0\u0007\u0007\u0000\u0000\u06f0\u0014\u0001\u0000\u0000"+ + "\u0000\u06f1\u06f2\u0007\b\u0000\u0000\u06f2\u0016\u0001\u0000\u0000\u0000"+ + "\u06f3\u06f4\u0007\t\u0000\u0000\u06f4\u0018\u0001\u0000\u0000\u0000\u06f5"+ + "\u06f6\u0007\n\u0000\u0000\u06f6\u001a\u0001\u0000\u0000\u0000\u06f7\u06f8"+ + "\u0007\u000b\u0000\u0000\u06f8\u001c\u0001\u0000\u0000\u0000\u06f9\u06fa"+ + "\u0007\f\u0000\u0000\u06fa\u001e\u0001\u0000\u0000\u0000\u06fb\u06fc\u0007"+ + "\r\u0000\u0000\u06fc \u0001\u0000\u0000\u0000\u06fd\u06fe\u0007\u000e"+ + "\u0000\u0000\u06fe\"\u0001\u0000\u0000\u0000\u06ff\u0700\u0007\u000f\u0000"+ + "\u0000\u0700$\u0001\u0000\u0000\u0000\u0701\u0702\u0007\u0010\u0000\u0000"+ + "\u0702&\u0001\u0000\u0000\u0000\u0703\u0704\u0007\u0011\u0000\u0000\u0704"+ + "(\u0001\u0000\u0000\u0000\u0705\u0706\u0007\u0012\u0000\u0000\u0706*\u0001"+ + "\u0000\u0000\u0000\u0707\u0708\u0007\u0013\u0000\u0000\u0708,\u0001\u0000"+ + "\u0000\u0000\u0709\u070a\u0007\u0014\u0000\u0000\u070a.\u0001\u0000\u0000"+ + "\u0000\u070b\u070c\u0007\u0015\u0000\u0000\u070c0\u0001\u0000\u0000\u0000"+ + "\u070d\u070e\u0007\u0016\u0000\u0000\u070e2\u0001\u0000\u0000\u0000\u070f"+ + "\u0710\u0007\u0017\u0000\u0000\u07104\u0001\u0000\u0000\u0000\u0711\u0712"+ + "\u0007\u0018\u0000\u0000\u07126\u0001\u0000\u0000\u0000\u0713\u0714\u0007"+ + "\u0019\u0000\u0000\u07148\u0001\u0000\u0000\u0000\u0715\u0716\u0007\u001a"+ + "\u0000\u0000\u0716:\u0001\u0000\u0000\u0000\u0717\u0718\u0007\u001b\u0000"+ + "\u0000\u0718<\u0001\u0000\u0000\u0000\u0719\u071a\u0007\u001c\u0000\u0000"+ + "\u071a>\u0001\u0000\u0000\u0000\u071b\u0723\u0005\"\u0000\u0000\u071c"+ + "\u071d\u0005\\\u0000\u0000\u071d\u0722\t\u0000\u0000\u0000\u071e\u071f"+ + "\u0005\"\u0000\u0000\u071f\u0722\u0005\"\u0000\u0000\u0720\u0722\b\u001d"+ + "\u0000\u0000\u0721\u071c\u0001\u0000\u0000\u0000\u0721\u071e\u0001\u0000"+ + "\u0000\u0000\u0721\u0720\u0001\u0000\u0000\u0000\u0722\u0725\u0001\u0000"+ + "\u0000\u0000\u0723\u0721\u0001\u0000\u0000\u0000\u0723\u0724\u0001\u0000"+ + "\u0000\u0000\u0724\u0726\u0001\u0000\u0000\u0000\u0725\u0723\u0001\u0000"+ + "\u0000\u0000\u0726\u0727\u0005\"\u0000\u0000\u0727@\u0001\u0000\u0000"+ + "\u0000\u0728\u0730\u0005\'\u0000\u0000\u0729\u072a\u0005\\\u0000\u0000"+ + "\u072a\u072f\t\u0000\u0000\u0000\u072b\u072c\u0005\'\u0000\u0000\u072c"+ + "\u072f\u0005\'\u0000\u0000\u072d\u072f\b\u001e\u0000\u0000\u072e\u0729"+ + "\u0001\u0000\u0000\u0000\u072e\u072b\u0001\u0000\u0000\u0000\u072e\u072d"+ + "\u0001\u0000\u0000\u0000\u072f\u0732\u0001\u0000\u0000\u0000\u0730\u072e"+ + "\u0001\u0000\u0000\u0000\u0730\u0731\u0001\u0000\u0000\u0000\u0731\u0733"+ + "\u0001\u0000\u0000\u0000\u0732\u0730\u0001\u0000\u0000\u0000\u0733\u0734"+ + "\u0005\'\u0000\u0000\u0734B\u0001\u0000\u0000\u0000\u0735\u073d\u0005"+ + "`\u0000\u0000\u0736\u0737\u0005\\\u0000\u0000\u0737\u073c\t\u0000\u0000"+ + "\u0000\u0738\u0739\u0005`\u0000\u0000\u0739\u073c\u0005`\u0000\u0000\u073a"+ + "\u073c\b\u001f\u0000\u0000\u073b\u0736\u0001\u0000\u0000\u0000\u073b\u0738"+ + "\u0001\u0000\u0000\u0000\u073b\u073a\u0001\u0000\u0000\u0000\u073c\u073f"+ + "\u0001\u0000\u0000\u0000\u073d\u073b\u0001\u0000\u0000\u0000\u073d\u073e"+ + "\u0001\u0000\u0000\u0000\u073e\u0740\u0001\u0000\u0000\u0000\u073f\u073d"+ + "\u0001\u0000\u0000\u0000\u0740\u0741\u0005`\u0000\u0000\u0741D\u0001\u0000"+ + "\u0000\u0000\u0742\u0743\u0003\u0007\u0003\u0000\u0743F\u0001\u0000\u0000"+ + "\u0000\u0744\u0745\u0003\u0007\u0003\u0000\u0745\u0746\u0003\t\u0004\u0000"+ + "\u0746\u0747\u0003#\u0011\u0000\u0747\u0748\u0003)\u0014\u0000\u0748\u0749"+ + "\u0003-\u0016\u0000\u0749H\u0001\u0000\u0000\u0000\u074a\u074b\u0003\u0007"+ + "\u0003\u0000\u074b\u074c\u0003\t\u0004\u0000\u074c\u074d\u0003+\u0015"+ + "\u0000\u074dJ\u0001\u0000\u0000\u0000\u074e\u074f\u0003\u0007\u0003\u0000"+ + "\u074f\u0750\u0003\t\u0004\u0000\u0750\u0751\u0003+\u0015\u0000\u0751"+ + "\u0752\u0003#\u0011\u0000\u0752\u0753\u0003\u001d\u000e\u0000\u0753\u0754"+ + "\u0003/\u0017\u0000\u0754\u0755\u0003-\u0016\u0000\u0755\u0756\u0003\u000f"+ + "\u0007\u0000\u0756L\u0001\u0000\u0000\u0000\u0757\u0758\u0003\u0007\u0003"+ + "\u0000\u0758\u0759\u0003\u000b\u0005\u0000\u0759\u075a\u0003\u000b\u0005"+ + "\u0000\u075a\u075b\u0003\u000f\u0007\u0000\u075b\u075c\u0003+\u0015\u0000"+ + "\u075c\u075d\u0003+\u0015\u0000\u075dN\u0001\u0000\u0000\u0000\u075e\u075f"+ + "\u0003\u0007\u0003\u0000\u075f\u0760\u0003\u000b\u0005\u0000\u0760\u0761"+ + "\u0003-\u0016\u0000\u0761\u0762\u0003\u0017\u000b\u0000\u0762\u0763\u0003"+ + "#\u0011\u0000\u0763\u0764\u0003!\u0010\u0000\u0764P\u0001\u0000\u0000"+ + "\u0000\u0765\u0766\u0003\u0007\u0003\u0000\u0766\u0767\u0003\r\u0006\u0000"+ + "\u0767\u0768\u0003\u0007\u0003\u0000\u0768R\u0001\u0000\u0000\u0000\u0769"+ + "\u076a\u0003\u0007\u0003\u0000\u076a\u076b\u0003\r\u0006\u0000\u076b\u076c"+ + "\u0003\r\u0006\u0000\u076cT\u0001\u0000\u0000\u0000\u076d\u076e\u0003"+ + "\u0007\u0003\u0000\u076e\u076f\u0003\r\u0006\u0000\u076f\u0770\u0003\u001f"+ + "\u000f\u0000\u0770\u0771\u0003\u0017\u000b\u0000\u0771\u0772\u0003!\u0010"+ + "\u0000\u0772V\u0001\u0000\u0000\u0000\u0773\u0774\u0003\u0007\u0003\u0000"+ + "\u0774\u0775\u0003\u0011\b\u0000\u0775\u0776\u0003-\u0016\u0000\u0776"+ + "\u0777\u0003\u000f\u0007\u0000\u0777\u0778\u0003)\u0014\u0000\u0778X\u0001"+ + "\u0000\u0000\u0000\u0779\u077a\u0003\u0007\u0003\u0000\u077a\u077b\u0003"+ + "\u0013\t\u0000\u077b\u077c\u0003\u0013\t\u0000\u077c\u077d\u0003)\u0014"+ + "\u0000\u077d\u077e\u0003\u000f\u0007\u0000\u077e\u077f\u0003\u0013\t\u0000"+ + "\u077f\u0780\u0003\u0007\u0003\u0000\u0780\u0781\u0003-\u0016\u0000\u0781"+ + "\u0782\u0003\u000f\u0007\u0000\u0782Z\u0001\u0000\u0000\u0000\u0783\u0784"+ + "\u0003\u0007\u0003\u0000\u0784\u0785\u0003\u001d\u000e\u0000\u0785\u0786"+ + "\u0003\u0017\u000b\u0000\u0786\u0787\u0003\u0007\u0003\u0000\u0787\u0788"+ + "\u0003+\u0015\u0000\u0788\\\u0001\u0000\u0000\u0000\u0789\u078a\u0003"+ + "\u0007\u0003\u0000\u078a\u078b\u0003\u001d\u000e\u0000\u078b\u078c\u0003"+ + "\u001d\u000e\u0000\u078c^\u0001\u0000\u0000\u0000\u078d\u078e\u0003\u0007"+ + "\u0003\u0000\u078e\u078f\u0003\u001d\u000e\u0000\u078f\u0790\u0003\u001d"+ + "\u000e\u0000\u0790\u0791\u0003#\u0011\u0000\u0791\u0792\u0003\u000b\u0005"+ + "\u0000\u0792\u0793\u0003\u0007\u0003\u0000\u0793\u0794\u0003-\u0016\u0000"+ + "\u0794\u0795\u0003\u000f\u0007\u0000\u0795`\u0001\u0000\u0000\u0000\u0796"+ + "\u0797\u0003\u0007\u0003\u0000\u0797\u0798\u0003\u001d\u000e\u0000\u0798"+ + "\u0799\u0003+\u0015\u0000\u0799\u079a\u0003#\u0011\u0000\u079ab\u0001"+ + "\u0000\u0000\u0000\u079b\u079c\u0003\u0007\u0003\u0000\u079c\u079d\u0003"+ + "\u001d\u000e\u0000\u079d\u079e\u0003-\u0016\u0000\u079e\u079f\u0003\u000f"+ + "\u0007\u0000\u079f\u07a0\u0003)\u0014\u0000\u07a0d\u0001\u0000\u0000\u0000"+ + "\u07a1\u07a2\u0003\u0007\u0003\u0000\u07a2\u07a3\u0003\u001d\u000e\u0000"+ + "\u07a3\u07a4\u00033\u0019\u0000\u07a4\u07a5\u0003\u0007\u0003\u0000\u07a5"+ + "\u07a6\u00037\u001b\u0000\u07a6\u07a7\u0003+\u0015\u0000\u07a7f\u0001"+ + "\u0000\u0000\u0000\u07a8\u07a9\u0003\u0007\u0003\u0000\u07a9\u07aa\u0003"+ + "!\u0010\u0000\u07aa\u07ab\u0003\u0007\u0003\u0000\u07ab\u07ac\u0003\u001d"+ + "\u000e\u0000\u07ac\u07ad\u00037\u001b\u0000\u07ad\u07ae\u0003+\u0015\u0000"+ + "\u07ae\u07af\u0003\u000f\u0007\u0000\u07afh\u0001\u0000\u0000\u0000\u07b0"+ + "\u07b1\u0003\u0007\u0003\u0000\u07b1\u07b2\u0003!\u0010\u0000\u07b2\u07b3"+ + "\u0003\u0007\u0003\u0000\u07b3\u07b4\u0003\u001d\u000e\u0000\u07b4\u07b5"+ + "\u00037\u001b\u0000\u07b5\u07b6\u00039\u001c\u0000\u07b6\u07b7\u0003\u000f"+ + "\u0007\u0000\u07b7j\u0001\u0000\u0000\u0000\u07b8\u07b9\u0003\u0007\u0003"+ + "\u0000\u07b9\u07ba\u0003!\u0010\u0000\u07ba\u07bb\u0003\r\u0006\u0000"+ + "\u07bbl\u0001\u0000\u0000\u0000\u07bc\u07bd\u0003\u0007\u0003\u0000\u07bd"+ + "\u07be\u0003!\u0010\u0000\u07be\u07bf\u00037\u001b\u0000\u07bfn\u0001"+ + "\u0000\u0000\u0000\u07c0\u07c1\u0003\u0007\u0003\u0000\u07c1\u07c2\u0003"+ + ")\u0014\u0000\u07c2\u07c3\u0003\u000f\u0007\u0000\u07c3p\u0001\u0000\u0000"+ + "\u0000\u07c4\u07c5\u0003\u0007\u0003\u0000\u07c5\u07c6\u0003)\u0014\u0000"+ + "\u07c6\u07c7\u0003)\u0014\u0000\u07c7\u07c8\u0003\u0007\u0003\u0000\u07c8"+ + "\u07c9\u00037\u001b\u0000\u07c9r\u0001\u0000\u0000\u0000\u07ca\u07cb\u0003"+ + "\u0007\u0003\u0000\u07cb\u07cc\u0003+\u0015\u0000\u07cct\u0001\u0000\u0000"+ + "\u0000\u07cd\u07ce\u0003\u0007\u0003\u0000\u07ce\u07cf\u0003+\u0015\u0000"+ + "\u07cf\u07d0\u0003\u000b\u0005\u0000\u07d0v\u0001\u0000\u0000\u0000\u07d1"+ + "\u07d2\u0003\u0007\u0003\u0000\u07d2\u07d3\u0003+\u0015\u0000\u07d3\u07d4"+ + "\u0003\u000f\u0007\u0000\u07d4\u07d5\u0003!\u0010\u0000\u07d5\u07d6\u0003"+ + "+\u0015\u0000\u07d6\u07d7\u0003\u0017\u000b\u0000\u07d7\u07d8\u0003-\u0016"+ + "\u0000\u07d8\u07d9\u0003\u0017\u000b\u0000\u07d9\u07da\u00031\u0018\u0000"+ + "\u07da\u07db\u0003\u000f\u0007\u0000\u07dbx\u0001\u0000\u0000\u0000\u07dc"+ + "\u07dd\u0003\u0007\u0003\u0000\u07dd\u07de\u0003+\u0015\u0000\u07de\u07df"+ + "\u0003+\u0015\u0000\u07df\u07e0\u0003\u000f\u0007\u0000\u07e0\u07e1\u0003"+ + ")\u0014\u0000\u07e1\u07e2\u0003-\u0016\u0000\u07e2\u07e3\u0003\u0017\u000b"+ + "\u0000\u07e3\u07e4\u0003#\u0011\u0000\u07e4\u07e5\u0003!\u0010\u0000\u07e5"+ + "z\u0001\u0000\u0000\u0000\u07e6\u07e7\u0003\u0007\u0003\u0000\u07e7\u07e8"+ + "\u0003+\u0015\u0000\u07e8\u07e9\u0003+\u0015\u0000\u07e9\u07ea\u0003\u0017"+ + "\u000b\u0000\u07ea\u07eb\u0003\u0013\t\u0000\u07eb\u07ec\u0003!\u0010"+ + "\u0000\u07ec\u07ed\u0003\u001f\u000f\u0000\u07ed\u07ee\u0003\u000f\u0007"+ + "\u0000\u07ee\u07ef\u0003!\u0010\u0000\u07ef\u07f0\u0003-\u0016\u0000\u07f0"+ + "|\u0001\u0000\u0000\u0000\u07f1\u07f2\u0003\u0007\u0003\u0000\u07f2\u07f3"+ + "\u0003+\u0015\u0000\u07f3\u07f4\u00037\u001b\u0000\u07f4\u07f5\u0003\u001f"+ + "\u000f\u0000\u07f5\u07f6\u0003\u001f\u000f\u0000\u07f6\u07f7\u0003\u000f"+ + "\u0007\u0000\u07f7\u07f8\u0003-\u0016\u0000\u07f8\u07f9\u0003)\u0014\u0000"+ + "\u07f9\u07fa\u0003\u0017\u000b\u0000\u07fa\u07fb\u0003\u000b\u0005\u0000"+ + "\u07fb~\u0001\u0000\u0000\u0000\u07fc\u07fd\u0003\u0007\u0003\u0000\u07fd"+ + "\u07fe\u0003-\u0016\u0000\u07fe\u0080\u0001\u0000\u0000\u0000\u07ff\u0800"+ + "\u0003\u0007\u0003\u0000\u0800\u0801\u0003-\u0016\u0000\u0801\u0802\u0003"+ + "#\u0011\u0000\u0802\u0803\u0003\u001f\u000f\u0000\u0803\u0804\u0003\u0017"+ + "\u000b\u0000\u0804\u0805\u0003\u000b\u0005\u0000\u0805\u0082\u0001\u0000"+ + "\u0000\u0000\u0806\u0807\u0003\u0007\u0003\u0000\u0807\u0808\u0003-\u0016"+ + "\u0000\u0808\u0809\u0003-\u0016\u0000\u0809\u080a\u0003)\u0014\u0000\u080a"+ + "\u080b\u0003\u0017\u000b\u0000\u080b\u080c\u0003\t\u0004\u0000\u080c\u080d"+ + "\u0003/\u0017\u0000\u080d\u080e\u0003-\u0016\u0000\u080e\u080f\u0003\u000f"+ + "\u0007\u0000\u080f\u0084\u0001\u0000\u0000\u0000\u0810\u0811\u0003\u0007"+ + "\u0003\u0000\u0811\u0812\u0003-\u0016\u0000\u0812\u0813\u0003-\u0016\u0000"+ + "\u0813\u0814\u0003)\u0014\u0000\u0814\u0815\u0003\u0017\u000b\u0000\u0815"+ + "\u0816\u0003\t\u0004\u0000\u0816\u0817\u0003/\u0017\u0000\u0817\u0818"+ + "\u0003-\u0016\u0000\u0818\u0819\u0003\u000f\u0007\u0000\u0819\u081a\u0003"+ + "+\u0015\u0000\u081a\u0086\u0001\u0000\u0000\u0000\u081b\u081c\u0003\u0007"+ + "\u0003\u0000\u081c\u081d\u0003/\u0017\u0000\u081d\u081e\u0003-\u0016\u0000"+ + "\u081e\u081f\u0003\u0015\n\u0000\u081f\u0820\u0003#\u0011\u0000\u0820"+ + "\u0821\u0003)\u0014\u0000\u0821\u0822\u0003\u0017\u000b\u0000\u0822\u0823"+ + "\u00039\u001c\u0000\u0823\u0824\u0003\u0007\u0003\u0000\u0824\u0825\u0003"+ + "-\u0016\u0000\u0825\u0826\u0003\u0017\u000b\u0000\u0826\u0827\u0003#\u0011"+ + "\u0000\u0827\u0828\u0003!\u0010\u0000\u0828\u0088\u0001\u0000\u0000\u0000"+ + "\u0829\u082a\u0003\u0007\u0003\u0000\u082a\u082b\u00031\u0018\u0000\u082b"+ + "\u082c\u0003\u0013\t\u0000\u082c\u008a\u0001\u0000\u0000\u0000\u082d\u082e"+ + "\u0003\t\u0004\u0000\u082e\u082f\u0003\u0007\u0003\u0000\u082f\u0830\u0003"+ + "\u000b\u0005\u0000\u0830\u0831\u0003\u001b\r\u0000\u0831\u0832\u00033"+ + "\u0019\u0000\u0832\u0833\u0003\u0007\u0003\u0000\u0833\u0834\u0003)\u0014"+ + "\u0000\u0834\u0835\u0003\r\u0006\u0000\u0835\u008c\u0001\u0000\u0000\u0000"+ + "\u0836\u0837\u0003\t\u0004\u0000\u0837\u0838\u0003\u000f\u0007\u0000\u0838"+ + "\u0839\u0003\u0011\b\u0000\u0839\u083a\u0003#\u0011\u0000\u083a\u083b"+ + "\u0003)\u0014\u0000\u083b\u083c\u0003\u000f\u0007\u0000\u083c\u008e\u0001"+ + "\u0000\u0000\u0000\u083d\u083e\u0003\t\u0004\u0000\u083e\u083f\u0003\u000f"+ + "\u0007\u0000\u083f\u0840\u0003\u0013\t\u0000\u0840\u0841\u0003\u0017\u000b"+ + "\u0000\u0841\u0842\u0003!\u0010\u0000\u0842\u0090\u0001\u0000\u0000\u0000"+ + "\u0843\u0844\u0003\t\u0004\u0000\u0844\u0845\u0003\u000f\u0007\u0000\u0845"+ + "\u0846\u0003)\u0014\u0000\u0846\u0847\u0003!\u0010\u0000\u0847\u0848\u0003"+ + "#\u0011\u0000\u0848\u0849\u0003/\u0017\u0000\u0849\u084a\u0003\u001d\u000e"+ + "\u0000\u084a\u084b\u0003\u001d\u000e\u0000\u084b\u084c\u0003\u0017\u000b"+ + "\u0000\u084c\u0092\u0001\u0000\u0000\u0000\u084d\u084e\u0003\t\u0004\u0000"+ + "\u084e\u084f\u0003\u000f\u0007\u0000\u084f\u0850\u0003-\u0016\u0000\u0850"+ + "\u0851\u00033\u0019\u0000\u0851\u0852\u0003\u000f\u0007\u0000\u0852\u0853"+ + "\u0003\u000f\u0007\u0000\u0853\u0854\u0003!\u0010\u0000\u0854\u0094\u0001"+ + "\u0000\u0000\u0000\u0855\u0856\u0003\t\u0004\u0000\u0856\u0857\u0003\u0017"+ + "\u000b\u0000\u0857\u0858\u0003\u0013\t\u0000\u0858\u0859\u0003\u0017\u000b"+ + "\u0000\u0859\u085a\u0003!\u0010\u0000\u085a\u085b\u0003-\u0016\u0000\u085b"+ + "\u0096\u0001\u0000\u0000\u0000\u085c\u085d\u0003\t\u0004\u0000\u085d\u085e"+ + "\u0003\u0017\u000b\u0000\u085e\u085f\u0003!\u0010\u0000\u085f\u0860\u0003"+ + "\u0007\u0003\u0000\u0860\u0861\u0003)\u0014\u0000\u0861\u0862\u00037\u001b"+ + "\u0000\u0862\u0098\u0001\u0000\u0000\u0000\u0863\u0864\u0003\t\u0004\u0000"+ + "\u0864\u0865\u0003\u0017\u000b\u0000\u0865\u0866\u0003-\u0016\u0000\u0866"+ + "\u009a\u0001\u0000\u0000\u0000\u0867\u0868\u0003\t\u0004\u0000\u0868\u0869"+ + "\u0003\u0017\u000b\u0000\u0869\u086a\u0003-\u0016\u0000\u086a\u086b\u0005"+ + "_\u0000\u0000\u086b\u086c\u0003\u001d\u000e\u0000\u086c\u086d\u0003\u000f"+ + "\u0007\u0000\u086d\u086e\u0003!\u0010\u0000\u086e\u086f\u0003\u0013\t"+ + "\u0000\u086f\u0870\u0003-\u0016\u0000\u0870\u0871\u0003\u0015\n\u0000"+ + "\u0871\u009c\u0001\u0000\u0000\u0000\u0872\u0873\u0003\t\u0004\u0000\u0873"+ + "\u0874\u0003\u0017\u000b\u0000\u0874\u0875\u0003-\u0016\u0000\u0875\u0876"+ + "\u00031\u0018\u0000\u0876\u0877\u0003\u0007\u0003\u0000\u0877\u0878\u0003"+ + ")\u0014\u0000\u0878\u009e\u0001\u0000\u0000\u0000\u0879\u087a\u0003\t"+ + "\u0004\u0000\u087a\u087b\u0003\u001d\u000e\u0000\u087b\u087c\u0003#\u0011"+ + "\u0000\u087c\u087d\u0003\t\u0004\u0000\u087d\u00a0\u0001\u0000\u0000\u0000"+ + "\u087e\u087f\u0003\t\u0004\u0000\u087f\u0880\u0003#\u0011\u0000\u0880"+ + "\u0881\u0003#\u0011\u0000\u0881\u0882\u0003\u001d\u000e\u0000\u0882\u0883"+ + "\u0003\u000f\u0007\u0000\u0883\u0884\u0003\u0007\u0003\u0000\u0884\u0885"+ + "\u0003!\u0010\u0000\u0885\u00a2\u0001\u0000\u0000\u0000\u0886\u0887\u0003"+ + "\t\u0004\u0000\u0887\u0888\u0003#\u0011\u0000\u0888\u0889\u0003-\u0016"+ + "\u0000\u0889\u088a\u0003\u0015\n\u0000\u088a\u00a4\u0001\u0000\u0000\u0000"+ + "\u088b\u088c\u0003\t\u0004\u0000\u088c\u088d\u0003)\u0014\u0000\u088d"+ + "\u088e\u0003\u000f\u0007\u0000\u088e\u088f\u0003\u0007\u0003\u0000\u088f"+ + "\u0890\u0003\r\u0006\u0000\u0890\u0891\u0003-\u0016\u0000\u0891\u0892"+ + "\u0003\u0015\n\u0000\u0892\u00a6\u0001\u0000\u0000\u0000\u0893\u0894\u0003"+ + "\t\u0004\u0000\u0894\u0895\u0003/\u0017\u0000\u0895\u0896\u0003\u0011"+ + "\b\u0000\u0896\u0897\u0003\u0011\b\u0000\u0897\u0898\u0003\u000f\u0007"+ + "\u0000\u0898\u0899\u0003)\u0014\u0000\u0899\u089a\u0003+\u0015\u0000\u089a"+ + "\u00a8\u0001\u0000\u0000\u0000\u089b\u089c\u0003\t\u0004\u0000\u089c\u089d"+ + "\u00037\u001b\u0000\u089d\u00aa\u0001\u0000\u0000\u0000\u089e\u089f\u0003"+ + "\u000b\u0005\u0000\u089f\u00ac\u0001\u0000\u0000\u0000\u08a0\u08a1\u0003"+ + "\u000b\u0005\u0000\u08a1\u08a2\u0003\u0007\u0003\u0000\u08a2\u08a3\u0003"+ + "\u000b\u0005\u0000\u08a3\u08a4\u0003\u0015\n\u0000\u08a4\u08a5\u0003\u000f"+ + "\u0007\u0000\u08a5\u00ae\u0001\u0000\u0000\u0000\u08a6\u08a7\u0003\u000b"+ + "\u0005\u0000\u08a7\u08a8\u0003\u0007\u0003\u0000\u08a8\u08a9\u0003\u001d"+ + "\u000e\u0000\u08a9\u08aa\u0003\u001d\u000e\u0000\u08aa\u00b0\u0001\u0000"+ + "\u0000\u0000\u08ab\u08ac\u0003\u000b\u0005\u0000\u08ac\u08ad\u0003\u0007"+ + "\u0003\u0000\u08ad\u08ae\u0003\u001d\u000e\u0000\u08ae\u08af\u0003\u001d"+ + "\u000e\u0000\u08af\u08b0\u0003\u000f\u0007\u0000\u08b0\u08b1\u0003\r\u0006"+ + "\u0000\u08b1\u00b2\u0001\u0000\u0000\u0000\u08b2\u08b3\u0003\u000b\u0005"+ + "\u0000\u08b3\u08b4\u0003\u0007\u0003\u0000\u08b4\u08b5\u0003)\u0014\u0000"+ + "\u08b5\u08b6\u0003\r\u0006\u0000\u08b6\u08b7\u0003\u0017\u000b\u0000\u08b7"+ + "\u08b8\u0003!\u0010\u0000\u08b8\u08b9\u0003\u0007\u0003\u0000\u08b9\u08ba"+ + "\u0003\u001d\u000e\u0000\u08ba\u08bb\u0003\u0017\u000b\u0000\u08bb\u08bc"+ + "\u0003-\u0016\u0000\u08bc\u08bd\u00037\u001b\u0000\u08bd\u00b4\u0001\u0000"+ + "\u0000\u0000\u08be\u08bf\u0003\u000b\u0005\u0000\u08bf\u08c0\u0003\u0007"+ + "\u0003\u0000\u08c0\u08c1\u0003+\u0015\u0000\u08c1\u08c2\u0003\u000b\u0005"+ + "\u0000\u08c2\u08c3\u0003\u0007\u0003\u0000\u08c3\u08c4\u0003\r\u0006\u0000"+ + "\u08c4\u08c5\u0003\u000f\u0007\u0000\u08c5\u00b6\u0001\u0000\u0000\u0000"+ + "\u08c6\u08c7\u0003\u000b\u0005\u0000\u08c7\u08c8\u0003\u0007\u0003\u0000"+ + "\u08c8\u08c9\u0003+\u0015\u0000\u08c9\u08ca\u0003\u000b\u0005\u0000\u08ca"+ + "\u08cb\u0003\u0007\u0003\u0000\u08cb\u08cc\u0003\r\u0006\u0000\u08cc\u08cd"+ + "\u0003\u000f\u0007\u0000\u08cd\u08ce\u0003\r\u0006\u0000\u08ce\u00b8\u0001"+ + "\u0000\u0000\u0000\u08cf\u08d0\u0003\u000b\u0005\u0000\u08d0\u08d1\u0003"+ + "\u0007\u0003\u0000\u08d1\u08d2\u0003+\u0015\u0000\u08d2\u08d3\u0003\u000f"+ + "\u0007\u0000\u08d3\u00ba\u0001\u0000\u0000\u0000\u08d4\u08d5\u0003\u000b"+ + "\u0005\u0000\u08d5\u08d6\u0003\u0007\u0003\u0000\u08d6\u08d7\u0003+\u0015"+ + "\u0000\u08d7\u08d8\u0003-\u0016\u0000\u08d8\u00bc\u0001\u0000\u0000\u0000"+ + "\u08d9\u08da\u0003\u000b\u0005\u0000\u08da\u08db\u0003\u0007\u0003\u0000"+ + "\u08db\u08dc\u0003-\u0016\u0000\u08dc\u08dd\u0003\u0007\u0003\u0000\u08dd"+ + "\u08de\u0003\u001d\u000e\u0000\u08de\u08df\u0003#\u0011\u0000\u08df\u08e0"+ + "\u0003\u0013\t\u0000\u08e0\u00be\u0001\u0000\u0000\u0000\u08e1\u08e2\u0003"+ + "\u000b\u0005\u0000\u08e2\u08e3\u0003\u0007\u0003\u0000\u08e3\u08e4\u0003"+ + "-\u0016\u0000\u08e4\u08e5\u0003\u0007\u0003\u0000\u08e5\u08e6\u0003\u001d"+ + "\u000e\u0000\u08e6\u08e7\u0003#\u0011\u0000\u08e7\u08e8\u0003\u0013\t"+ + "\u0000\u08e8\u08e9\u0005_\u0000\u0000\u08e9\u08ea\u0003!\u0010\u0000\u08ea"+ + "\u08eb\u0003\u0007\u0003\u0000\u08eb\u08ec\u0003\u001f\u000f\u0000\u08ec"+ + "\u08ed\u0003\u000f\u0007\u0000\u08ed\u00c0\u0001\u0000\u0000\u0000\u08ee"+ + "\u08ef\u0003\u000b\u0005\u0000\u08ef\u08f0\u0003\u000f\u0007\u0000\u08f0"+ + "\u08f1\u0003\u0017\u000b\u0000\u08f1\u08f2\u0003\u001d\u000e\u0000\u08f2"+ + "\u00c2\u0001\u0000\u0000\u0000\u08f3\u08f4\u0003\u000b\u0005\u0000\u08f4"+ + "\u08f5\u0003\u000f\u0007\u0000\u08f5\u08f6\u0003\u0017\u000b\u0000\u08f6"+ + "\u08f7\u0003\u001d\u000e\u0000\u08f7\u08f8\u0003\u0017\u000b\u0000\u08f8"+ + "\u08f9\u0003!\u0010\u0000\u08f9\u08fa\u0003\u0013\t\u0000\u08fa\u00c4"+ + "\u0001\u0000\u0000\u0000\u08fb\u08fc\u0003\u000b\u0005\u0000\u08fc\u08fd"+ + "\u0003\u0015\n\u0000\u08fd\u08fe\u0003\u0007\u0003\u0000\u08fe\u08ff\u0003"+ + "\u0017\u000b\u0000\u08ff\u0900\u0003!\u0010\u0000\u0900\u00c6\u0001\u0000"+ + "\u0000\u0000\u0901\u0902\u0003\u000b\u0005\u0000\u0902\u0903\u0003\u0015"+ + "\n\u0000\u0903\u0904\u0003\u0007\u0003\u0000\u0904\u0905\u0003)\u0014"+ + "\u0000\u0905\u00c8\u0001\u0000\u0000\u0000\u0906\u0907\u0003\u000b\u0005"+ + "\u0000\u0907\u0908\u0003\u0015\n\u0000\u0908\u0909\u0003\u0007\u0003\u0000"+ + "\u0909\u090a\u0003)\u0014\u0000\u090a\u090b\u0005_\u0000\u0000\u090b\u090c"+ + "\u0003\u001d\u000e\u0000\u090c\u090d\u0003\u000f\u0007\u0000\u090d\u090e"+ + "\u0003!\u0010\u0000\u090e\u090f\u0003\u0013\t\u0000\u090f\u0910\u0003"+ + "-\u0016\u0000\u0910\u0911\u0003\u0015\n\u0000\u0911\u00ca\u0001\u0000"+ + "\u0000\u0000\u0912\u0913\u0003\u000b\u0005\u0000\u0913\u0914\u0003\u0015"+ + "\n\u0000\u0914\u0915\u0003\u0007\u0003\u0000\u0915\u0916\u0003)\u0014"+ + "\u0000\u0916\u0917\u0003\u0007\u0003\u0000\u0917\u0918\u0003\u000b\u0005"+ + "\u0000\u0918\u0919\u0003-\u0016\u0000\u0919\u091a\u0003\u000f\u0007\u0000"+ + "\u091a\u091b\u0003)\u0014\u0000\u091b\u00cc\u0001\u0000\u0000\u0000\u091c"+ + "\u091d\u0003\u000b\u0005\u0000\u091d\u091e\u0003\u0015\n\u0000\u091e\u091f"+ + "\u0003\u0007\u0003\u0000\u091f\u0920\u0003)\u0014\u0000\u0920\u0921\u0003"+ + "\u0007\u0003\u0000\u0921\u0922\u0003\u000b\u0005\u0000\u0922\u0923\u0003"+ + "-\u0016\u0000\u0923\u0924\u0003\u000f\u0007\u0000\u0924\u0925\u0003)\u0014"+ + "\u0000\u0925\u0926\u0005_\u0000\u0000\u0926\u0927\u0003\u001d\u000e\u0000"+ + "\u0927\u0928\u0003\u000f\u0007\u0000\u0928\u0929\u0003!\u0010\u0000\u0929"+ + "\u092a\u0003\u0013\t\u0000\u092a\u092b\u0003-\u0016\u0000\u092b\u092c"+ + "\u0003\u0015\n\u0000\u092c\u00ce\u0001\u0000\u0000\u0000\u092d\u092e\u0003"+ + "\u000b\u0005\u0000\u092e\u092f\u0003\u0015\n\u0000\u092f\u0930\u0003\u0007"+ + "\u0003\u0000\u0930\u0931\u0003)\u0014\u0000\u0931\u0932\u0003\u0007\u0003"+ + "\u0000\u0932\u0933\u0003\u000b\u0005\u0000\u0933\u0934\u0003-\u0016\u0000"+ + "\u0934\u0935\u0003\u000f\u0007\u0000\u0935\u0936\u0003)\u0014\u0000\u0936"+ + "\u0937\u0005_\u0000\u0000\u0937\u0938\u0003+\u0015\u0000\u0938\u0939\u0003"+ + "\u000f\u0007\u0000\u0939\u093a\u0003-\u0016\u0000\u093a\u093b\u0005_\u0000"+ + "\u0000\u093b\u093c\u0003\u000b\u0005\u0000\u093c\u093d\u0003\u0007\u0003"+ + "\u0000\u093d\u093e\u0003-\u0016\u0000\u093e\u093f\u0003\u0007\u0003\u0000"+ + "\u093f\u0940\u0003\u001d\u000e\u0000\u0940\u0941\u0003#\u0011\u0000\u0941"+ + "\u0942\u0003\u0013\t\u0000\u0942\u00d0\u0001\u0000\u0000\u0000\u0943\u0944"+ + "\u0003\u000b\u0005\u0000\u0944\u0945\u0003\u0015\n\u0000\u0945\u0946\u0003"+ + "\u0007\u0003\u0000\u0946\u0947\u0003)\u0014\u0000\u0947\u0948\u0003\u0007"+ + "\u0003\u0000\u0948\u0949\u0003\u000b\u0005\u0000\u0949\u094a\u0003-\u0016"+ + "\u0000\u094a\u094b\u0003\u000f\u0007\u0000\u094b\u094c\u0003)\u0014\u0000"+ + "\u094c\u094d\u0005_\u0000\u0000\u094d\u094e\u0003+\u0015\u0000\u094e\u094f"+ + "\u0003\u000f\u0007\u0000\u094f\u0950\u0003-\u0016\u0000\u0950\u0951\u0005"+ + "_\u0000\u0000\u0951\u0952\u0003!\u0010\u0000\u0952\u0953\u0003\u0007\u0003"+ + "\u0000\u0953\u0954\u0003\u001f\u000f\u0000\u0954\u0955\u0003\u000f\u0007"+ + "\u0000\u0955\u00d2\u0001\u0000\u0000\u0000\u0956\u0957\u0003\u000b\u0005"+ + "\u0000\u0957\u0958\u0003\u0015\n\u0000\u0958\u0959\u0003\u0007\u0003\u0000"+ + "\u0959\u095a\u0003)\u0014\u0000\u095a\u095b\u0003\u0007\u0003\u0000\u095b"+ + "\u095c\u0003\u000b\u0005\u0000\u095c\u095d\u0003-\u0016\u0000\u095d\u095e"+ + "\u0003\u000f\u0007\u0000\u095e\u095f\u0003)\u0014\u0000\u095f\u0960\u0005"+ + "_\u0000\u0000\u0960\u0961\u0003+\u0015\u0000\u0961\u0962\u0003\u000f\u0007"+ + "\u0000\u0962\u0963\u0003-\u0016\u0000\u0963\u0964\u0005_\u0000\u0000\u0964"+ + "\u0965\u0003+\u0015\u0000\u0965\u0966\u0003\u000b\u0005\u0000\u0966\u0967"+ + "\u0003\u0015\n\u0000\u0967\u0968\u0003\u000f\u0007\u0000\u0968\u0969\u0003"+ + "\u001f\u000f\u0000\u0969\u096a\u0003\u0007\u0003\u0000\u096a\u00d4\u0001"+ + "\u0000\u0000\u0000\u096b\u096c\u0003\u000b\u0005\u0000\u096c\u096d\u0003"+ + "\u0015\n\u0000\u096d\u096e\u0003\u0007\u0003\u0000\u096e\u096f\u0003)"+ + "\u0014\u0000\u096f\u0970\u0003\u0007\u0003\u0000\u0970\u0971\u0003\u000b"+ + "\u0005\u0000\u0971\u0972\u0003-\u0016\u0000\u0972\u0973\u0003\u000f\u0007"+ + "\u0000\u0973\u0974\u0003)\u0014\u0000\u0974\u0975\u0003\u0017\u000b\u0000"+ + "\u0975\u0976\u0003+\u0015\u0000\u0976\u0977\u0003-\u0016\u0000\u0977\u0978"+ + "\u0003\u0017\u000b\u0000\u0978\u0979\u0003\u000b\u0005\u0000\u0979\u097a"+ + "\u0003+\u0015\u0000\u097a\u00d6\u0001\u0000\u0000\u0000\u097b\u097c\u0003"+ + "\u000b\u0005\u0000\u097c\u097d\u0003\u0015\n\u0000\u097d\u097e\u0003\u0007"+ + "\u0003\u0000\u097e\u097f\u0003)\u0014\u0000\u097f\u0980\u0003\u0007\u0003"+ + "\u0000\u0980\u0981\u0003\u000b\u0005\u0000\u0981\u0982\u0003-\u0016\u0000"+ + "\u0982\u0983\u0003\u000f\u0007\u0000\u0983\u0984\u0003)\u0014\u0000\u0984"+ + "\u0985\u0003+\u0015\u0000\u0985\u00d8\u0001\u0000\u0000\u0000\u0986\u0987"+ + "\u0003\u000b\u0005\u0000\u0987\u0988\u0003\u0015\n\u0000\u0988\u0989\u0003"+ + "\u000f\u0007\u0000\u0989\u098a\u0003\u000b\u0005\u0000\u098a\u098b\u0003"+ + "\u001b\r\u0000\u098b\u00da\u0001\u0000\u0000\u0000\u098c\u098d\u0003\u000b"+ + "\u0005\u0000\u098d\u098e\u0003\u0015\n\u0000\u098e\u098f\u0003\u000f\u0007"+ + "\u0000\u098f\u0990\u0003\u000b\u0005\u0000\u0990\u0991\u0003\u001b\r\u0000"+ + "\u0991\u0992\u0003\u000f\u0007\u0000\u0992\u0993\u0003\r\u0006\u0000\u0993"+ + "\u00dc\u0001\u0000\u0000\u0000\u0994\u0995\u0003\u000b\u0005\u0000\u0995"+ + "\u0996\u0003\u0015\n\u0000\u0996\u0997\u0003\u000f\u0007\u0000\u0997\u0998"+ + "\u0003\u000b\u0005\u0000\u0998\u0999\u0003\u001b\r\u0000\u0999\u099a\u0003"+ + "%\u0012\u0000\u099a\u099b\u0003#\u0011\u0000\u099b\u099c\u0003\u0017\u000b"+ + "\u0000\u099c\u099d\u0003!\u0010\u0000\u099d\u099e\u0003-\u0016\u0000\u099e"+ + "\u00de\u0001\u0000\u0000\u0000\u099f\u09a0\u0003\u000b\u0005\u0000\u09a0"+ + "\u09a1\u0003\u001d\u000e\u0000\u09a1\u09a2\u0003\u0007\u0003\u0000\u09a2"+ + "\u09a3\u0003+\u0015\u0000\u09a3\u09a4\u0003+\u0015\u0000\u09a4\u00e0\u0001"+ + "\u0000\u0000\u0000\u09a5\u09a6\u0003\u000b\u0005\u0000\u09a6\u09a7\u0003"+ + "\u001d\u000e\u0000\u09a7\u09a8\u0003\u0007\u0003\u0000\u09a8\u09a9\u0003"+ + "+\u0015\u0000\u09a9\u09aa\u0003+\u0015\u0000\u09aa\u09ab\u0005_\u0000"+ + "\u0000\u09ab\u09ac\u0003#\u0011\u0000\u09ac\u09ad\u0003)\u0014\u0000\u09ad"+ + "\u09ae\u0003\u0017\u000b\u0000\u09ae\u09af\u0003\u0013\t\u0000\u09af\u09b0"+ + "\u0003\u0017\u000b\u0000\u09b0\u09b1\u0003!\u0010\u0000\u09b1\u00e2\u0001"+ + "\u0000\u0000\u0000\u09b2\u09b3\u0003\u000b\u0005\u0000\u09b3\u09b4\u0003"+ + "\u001d\u000e\u0000\u09b4\u09b5\u0003#\u0011\u0000\u09b5\u09b6\u0003\t"+ + "\u0004\u0000\u09b6\u00e4\u0001\u0000\u0000\u0000\u09b7\u09b8\u0003\u000b"+ + "\u0005\u0000\u09b8\u09b9\u0003\u001d\u000e\u0000\u09b9\u09ba\u0003#\u0011"+ + "\u0000\u09ba\u09bb\u0003+\u0015\u0000\u09bb\u09bc\u0003\u000f\u0007\u0000"+ + "\u09bc\u00e6\u0001\u0000\u0000\u0000\u09bd\u09be\u0003\u000b\u0005\u0000"+ + "\u09be\u09bf\u0003\u001d\u000e\u0000\u09bf\u09c0\u0003/\u0017\u0000\u09c0"+ + "\u09c1\u0003+\u0015\u0000\u09c1\u09c2\u0003-\u0016\u0000\u09c2\u09c3\u0003"+ + "\u000f\u0007\u0000\u09c3\u09c4\u0003)\u0014\u0000\u09c4\u00e8\u0001\u0000"+ + "\u0000\u0000\u09c5\u09c6\u0003\u000b\u0005\u0000\u09c6\u09c7\u0003#\u0011"+ + "\u0000\u09c7\u09c8\u0003\u0007\u0003\u0000\u09c8\u09c9\u0003\u001d\u000e"+ + "\u0000\u09c9\u09ca\u0003\u000f\u0007\u0000\u09ca\u09cb\u0003+\u0015\u0000"+ + "\u09cb\u09cc\u0003\u000b\u0005\u0000\u09cc\u09cd\u0003\u000f\u0007\u0000"+ + "\u09cd\u00ea\u0001\u0000\u0000\u0000\u09ce\u09cf\u0003\u000b\u0005\u0000"+ + "\u09cf\u09d0\u0003#\u0011\u0000\u09d0\u09d1\u0003\t\u0004\u0000\u09d1"+ + "\u09d2\u0003#\u0011\u0000\u09d2\u09d3\u0003\u001d\u000e\u0000\u09d3\u00ec"+ + "\u0001\u0000\u0000\u0000\u09d4\u09d5\u0003\u000b\u0005\u0000\u09d5\u09d6"+ + "\u0003#\u0011\u0000\u09d6\u09d7\u0003\u001d\u000e\u0000\u09d7\u09d8\u0003"+ + "\u001d\u000e\u0000\u09d8\u09d9\u0003\u0007\u0003\u0000\u09d9\u09da\u0003"+ + "-\u0016\u0000\u09da\u09db\u0003\u000f\u0007\u0000\u09db\u00ee\u0001\u0000"+ + "\u0000\u0000\u09dc\u09dd\u0003\u000b\u0005\u0000\u09dd\u09de\u0003#\u0011"+ + "\u0000\u09de\u09df\u0003\u001d\u000e\u0000\u09df\u09e0\u0003\u001d\u000e"+ + "\u0000\u09e0\u09e1\u0003\u0007\u0003\u0000\u09e1\u09e2\u0003-\u0016\u0000"+ + "\u09e2\u09e3\u0003\u0017\u000b\u0000\u09e3\u09e4\u0003#\u0011\u0000\u09e4"+ + "\u09e5\u0003!\u0010\u0000\u09e5\u00f0\u0001\u0000\u0000\u0000\u09e6\u09e7"+ + "\u0003\u000b\u0005\u0000\u09e7\u09e8\u0003#\u0011\u0000\u09e8\u09e9\u0003"+ + "\u001d\u000e\u0000\u09e9\u09ea\u0003\u001d\u000e\u0000\u09ea\u09eb\u0003"+ + "\u0007\u0003\u0000\u09eb\u09ec\u0003-\u0016\u0000\u09ec\u09ed\u0003\u0017"+ + "\u000b\u0000\u09ed\u09ee\u0003#\u0011\u0000\u09ee\u09ef\u0003!\u0010\u0000"+ + "\u09ef\u09f0\u0005_\u0000\u0000\u09f0\u09f1\u0003\u000b\u0005\u0000\u09f1"+ + "\u09f2\u0003\u0007\u0003\u0000\u09f2\u09f3\u0003-\u0016\u0000\u09f3\u09f4"+ + "\u0003\u0007\u0003\u0000\u09f4\u09f5\u0003\u001d\u000e\u0000\u09f5\u09f6"+ + "\u0003#\u0011\u0000\u09f6\u09f7\u0003\u0013\t\u0000\u09f7\u00f2\u0001"+ + "\u0000\u0000\u0000\u09f8\u09f9\u0003\u000b\u0005\u0000\u09f9\u09fa\u0003"+ + "#\u0011\u0000\u09fa\u09fb\u0003\u001d\u000e\u0000\u09fb\u09fc\u0003\u001d"+ + "\u000e\u0000\u09fc\u09fd\u0003\u0007\u0003\u0000\u09fd\u09fe\u0003-\u0016"+ + "\u0000\u09fe\u09ff\u0003\u0017\u000b\u0000\u09ff\u0a00\u0003#\u0011\u0000"+ + "\u0a00\u0a01\u0003!\u0010\u0000\u0a01\u0a02\u0005_\u0000\u0000\u0a02\u0a03"+ + "\u0003!\u0010\u0000\u0a03\u0a04\u0003\u0007\u0003\u0000\u0a04\u0a05\u0003"+ + "\u001f\u000f\u0000\u0a05\u0a06\u0003\u000f\u0007\u0000\u0a06\u00f4\u0001"+ + "\u0000\u0000\u0000\u0a07\u0a08\u0003\u000b\u0005\u0000\u0a08\u0a09\u0003"+ + "#\u0011\u0000\u0a09\u0a0a\u0003\u001d\u000e\u0000\u0a0a\u0a0b\u0003\u001d"+ + "\u000e\u0000\u0a0b\u0a0c\u0003\u0007\u0003\u0000\u0a0c\u0a0d\u0003-\u0016"+ + "\u0000\u0a0d\u0a0e\u0003\u0017\u000b\u0000\u0a0e\u0a0f\u0003#\u0011\u0000"+ + "\u0a0f\u0a10\u0003!\u0010\u0000\u0a10\u0a11\u0005_\u0000\u0000\u0a11\u0a12"+ + "\u0003+\u0015\u0000\u0a12\u0a13\u0003\u000b\u0005\u0000\u0a13\u0a14\u0003"+ + "\u0015\n\u0000\u0a14\u0a15\u0003\u000f\u0007\u0000\u0a15\u0a16\u0003\u001f"+ + "\u000f\u0000\u0a16\u0a17\u0003\u0007\u0003\u0000\u0a17\u00f6\u0001\u0000"+ + "\u0000\u0000\u0a18\u0a19\u0003\u000b\u0005\u0000\u0a19\u0a1a\u0003#\u0011"+ + "\u0000\u0a1a\u0a1b\u0003\u001d\u000e\u0000\u0a1b\u0a1c\u0003\u001d\u000e"+ + "\u0000\u0a1c\u0a1d\u0003\u000f\u0007\u0000\u0a1d\u0a1e\u0003\u000b\u0005"+ + "\u0000\u0a1e\u0a1f\u0003-\u0016\u0000\u0a1f\u00f8\u0001\u0000\u0000\u0000"+ + "\u0a20\u0a21\u0003\u000b\u0005\u0000\u0a21\u0a22\u0003#\u0011\u0000\u0a22"+ + "\u0a23\u0003\u001d\u000e\u0000\u0a23\u0a24\u0003/\u0017\u0000\u0a24\u0a25"+ + "\u0003\u001f\u000f\u0000\u0a25\u0a26\u0003!\u0010\u0000\u0a26\u00fa\u0001"+ + "\u0000\u0000\u0000\u0a27\u0a28\u0003\u000b\u0005\u0000\u0a28\u0a29\u0003"+ + "#\u0011\u0000\u0a29\u0a2a\u0003\u001d\u000e\u0000\u0a2a\u0a2b\u0003/\u0017"+ + "\u0000\u0a2b\u0a2c\u0003\u001f\u000f\u0000\u0a2c\u0a2d\u0003!\u0010\u0000"+ + "\u0a2d\u0a2e\u0005_\u0000\u0000\u0a2e\u0a2f\u0003!\u0010\u0000\u0a2f\u0a30"+ + "\u0003\u0007\u0003\u0000\u0a30\u0a31\u0003\u001f\u000f\u0000\u0a31\u0a32"+ + "\u0003\u000f\u0007\u0000\u0a32\u00fc\u0001\u0000\u0000\u0000\u0a33\u0a34"+ + "\u0003\u000b\u0005\u0000\u0a34\u0a35\u0003#\u0011\u0000\u0a35\u0a36\u0003"+ + "\u001f\u000f\u0000\u0a36\u0a37\u0003\u001f\u000f\u0000\u0a37\u0a38\u0003"+ + "\u0007\u0003\u0000\u0a38\u0a39\u0003!\u0010\u0000\u0a39\u0a3a\u0003\r"+ + "\u0006\u0000\u0a3a\u0a3b\u0005_\u0000\u0000\u0a3b\u0a3c\u0003\u0011\b"+ + "\u0000\u0a3c\u0a3d\u0003/\u0017\u0000\u0a3d\u0a3e\u0003!\u0010\u0000\u0a3e"+ + "\u0a3f\u0003\u000b\u0005\u0000\u0a3f\u0a40\u0003-\u0016\u0000\u0a40\u0a41"+ + "\u0003\u0017\u000b\u0000\u0a41\u0a42\u0003#\u0011\u0000\u0a42\u0a43\u0003"+ + "!\u0010\u0000\u0a43\u00fe\u0001\u0000\u0000\u0000\u0a44\u0a45\u0003\u000b"+ + "\u0005\u0000\u0a45\u0a46\u0003#\u0011\u0000\u0a46\u0a47\u0003\u001f\u000f"+ + "\u0000\u0a47\u0a48\u0003\u001f\u000f\u0000\u0a48\u0a49\u0003\u0007\u0003"+ + "\u0000\u0a49\u0a4a\u0003!\u0010\u0000\u0a4a\u0a4b\u0003\r\u0006\u0000"+ + "\u0a4b\u0a4c\u0005_\u0000\u0000\u0a4c\u0a4d\u0003\u0011\b\u0000\u0a4d"+ + "\u0a4e\u0003/\u0017\u0000\u0a4e\u0a4f\u0003!\u0010\u0000\u0a4f\u0a50\u0003"+ + "\u000b\u0005\u0000\u0a50\u0a51\u0003-\u0016\u0000\u0a51\u0a52\u0003\u0017"+ + "\u000b\u0000\u0a52\u0a53\u0003#\u0011\u0000\u0a53\u0a54\u0003!\u0010\u0000"+ + "\u0a54\u0a55\u0005_\u0000\u0000\u0a55\u0a56\u0003\u000b\u0005\u0000\u0a56"+ + "\u0a57\u0003#\u0011\u0000\u0a57\u0a58\u0003\r\u0006\u0000\u0a58\u0a59"+ + "\u0003\u000f\u0007\u0000\u0a59\u0100\u0001\u0000\u0000\u0000\u0a5a\u0a5b"+ + "\u0003\u000b\u0005\u0000\u0a5b\u0a5c\u0003#\u0011\u0000\u0a5c\u0a5d\u0003"+ + "\u001f\u000f\u0000\u0a5d\u0a5e\u0003\u001f\u000f\u0000\u0a5e\u0a5f\u0003"+ + "\u000f\u0007\u0000\u0a5f\u0a60\u0003!\u0010\u0000\u0a60\u0a61\u0003-\u0016"+ + "\u0000\u0a61\u0102\u0001\u0000\u0000\u0000\u0a62\u0a63\u0003\u000b\u0005"+ + "\u0000\u0a63\u0a64\u0003#\u0011\u0000\u0a64\u0a65\u0003\u001f\u000f\u0000"+ + "\u0a65\u0a66\u0003\u001f\u000f\u0000\u0a66\u0a67\u0003\u0017\u000b\u0000"+ + "\u0a67\u0a68\u0003-\u0016\u0000\u0a68\u0104\u0001\u0000\u0000\u0000\u0a69"+ + "\u0a6a\u0003\u000b\u0005\u0000\u0a6a\u0a6b\u0003#\u0011\u0000\u0a6b\u0a6c"+ + "\u0003\u001f\u000f\u0000\u0a6c\u0a6d\u0003\u001f\u000f\u0000\u0a6d\u0a6e"+ + "\u0003\u0017\u000b\u0000\u0a6e\u0a6f\u0003-\u0016\u0000\u0a6f\u0a70\u0003"+ + "-\u0016\u0000\u0a70\u0a71\u0003\u000f\u0007\u0000\u0a71\u0a72\u0003\r"+ + "\u0006\u0000\u0a72\u0106\u0001\u0000\u0000\u0000\u0a73\u0a74\u0003\u000b"+ + "\u0005\u0000\u0a74\u0a75\u0003#\u0011\u0000\u0a75\u0a76\u0003\u001f\u000f"+ + "\u0000\u0a76\u0a77\u0003%\u0012\u0000\u0a77\u0a78\u0003\u001d\u000e\u0000"+ + "\u0a78\u0a79\u0003\u000f\u0007\u0000\u0a79\u0a7a\u0003-\u0016\u0000\u0a7a"+ + "\u0a7b\u0003\u0017\u000b\u0000\u0a7b\u0a7c\u0003#\u0011\u0000\u0a7c\u0a7d"+ + "\u0003!\u0010\u0000\u0a7d\u0108\u0001\u0000\u0000\u0000\u0a7e\u0a7f\u0003"+ + "\u000b\u0005\u0000\u0a7f\u0a80\u0003#\u0011\u0000\u0a80\u0a81\u0003!\u0010"+ + "\u0000\u0a81\u0a82\u0003\r\u0006\u0000\u0a82\u0a83\u0003\u0017\u000b\u0000"+ + "\u0a83\u0a84\u0003-\u0016\u0000\u0a84\u0a85\u0003\u0017\u000b\u0000\u0a85"+ + "\u0a86\u0003#\u0011\u0000\u0a86\u0a87\u0003!\u0010\u0000\u0a87\u010a\u0001"+ + "\u0000\u0000\u0000\u0a88\u0a89\u0003\u000b\u0005\u0000\u0a89\u0a8a\u0003"+ + "#\u0011\u0000\u0a8a\u0a8b\u0003!\u0010\u0000\u0a8b\u0a8c\u0003\r\u0006"+ + "\u0000\u0a8c\u0a8d\u0003\u0017\u000b\u0000\u0a8d\u0a8e\u0003-\u0016\u0000"+ + "\u0a8e\u0a8f\u0003\u0017\u000b\u0000\u0a8f\u0a90\u0003#\u0011\u0000\u0a90"+ + "\u0a91\u0003!\u0010\u0000\u0a91\u0a92\u0005_\u0000\u0000\u0a92\u0a93\u0003"+ + "!\u0010\u0000\u0a93\u0a94\u0003/\u0017\u0000\u0a94\u0a95\u0003\u001f\u000f"+ + "\u0000\u0a95\u0a96\u0003\t\u0004\u0000\u0a96\u0a97\u0003\u000f\u0007\u0000"+ + "\u0a97\u0a98\u0003)\u0014\u0000\u0a98\u010c\u0001\u0000\u0000\u0000\u0a99"+ + "\u0a9a\u0003\u000b\u0005\u0000\u0a9a\u0a9b\u0003#\u0011\u0000\u0a9b\u0a9c"+ + "\u0003!\u0010\u0000\u0a9c\u0a9d\u0003\u0011\b\u0000\u0a9d\u0a9e\u0003"+ + "\u0017\u000b\u0000\u0a9e\u0a9f\u0003\u0013\t\u0000\u0a9f\u0aa0\u0003/"+ + "\u0017\u0000\u0aa0\u0aa1\u0003)\u0014\u0000\u0aa1\u0aa2\u0003\u0007\u0003"+ + "\u0000\u0aa2\u0aa3\u0003-\u0016\u0000\u0aa3\u0aa4\u0003\u0017\u000b\u0000"+ + "\u0aa4\u0aa5\u0003#\u0011\u0000\u0aa5\u0aa6\u0003!\u0010\u0000\u0aa6\u010e"+ + "\u0001\u0000\u0000\u0000\u0aa7\u0aa8\u0003\u000b\u0005\u0000\u0aa8\u0aa9"+ + "\u0003#\u0011\u0000\u0aa9\u0aaa\u0003!\u0010\u0000\u0aaa\u0aab\u0003\u0011"+ + "\b\u0000\u0aab\u0aac\u0003\u001d\u000e\u0000\u0aac\u0aad\u0003\u0017\u000b"+ + "\u0000\u0aad\u0aae\u0003\u000b\u0005\u0000\u0aae\u0aaf\u0003-\u0016\u0000"+ + "\u0aaf\u0110\u0001\u0000\u0000\u0000\u0ab0\u0ab1\u0003\u000b\u0005\u0000"+ + "\u0ab1\u0ab2\u0003#\u0011\u0000\u0ab2\u0ab3\u0003!\u0010\u0000\u0ab3\u0ab4"+ + "\u0003!\u0010\u0000\u0ab4\u0ab5\u0003\u000f\u0007\u0000\u0ab5\u0ab6\u0003"+ + "\u000b\u0005\u0000\u0ab6\u0ab7\u0003-\u0016\u0000\u0ab7\u0112\u0001\u0000"+ + "\u0000\u0000\u0ab8\u0ab9\u0003\u000b\u0005\u0000\u0ab9\u0aba\u0003#\u0011"+ + "\u0000\u0aba\u0abb\u0003!\u0010\u0000\u0abb\u0abc\u0003!\u0010\u0000\u0abc"+ + "\u0abd\u0003\u000f\u0007\u0000\u0abd\u0abe\u0003\u000b\u0005\u0000\u0abe"+ + "\u0abf\u0003-\u0016\u0000\u0abf\u0ac0\u0003\u0017\u000b\u0000\u0ac0\u0ac1"+ + "\u0003#\u0011\u0000\u0ac1\u0ac2\u0003!\u0010\u0000\u0ac2\u0114\u0001\u0000"+ + "\u0000\u0000\u0ac3\u0ac4\u0003\u000b\u0005\u0000\u0ac4\u0ac5\u0003#\u0011"+ + "\u0000\u0ac5\u0ac6\u0003!\u0010\u0000\u0ac6\u0ac7\u0003!\u0010\u0000\u0ac7"+ + "\u0ac8\u0003\u000f\u0007\u0000\u0ac8\u0ac9\u0003\u000b\u0005\u0000\u0ac9"+ + "\u0aca\u0003-\u0016\u0000\u0aca\u0acb\u0003\u0017\u000b\u0000\u0acb\u0acc"+ + "\u0003#\u0011\u0000\u0acc\u0acd\u0003!\u0010\u0000\u0acd\u0ace\u0005_"+ + "\u0000\u0000\u0ace\u0acf\u0003!\u0010\u0000\u0acf\u0ad0\u0003\u0007\u0003"+ + "\u0000\u0ad0\u0ad1\u0003\u001f\u000f\u0000\u0ad1\u0ad2\u0003\u000f\u0007"+ + "\u0000\u0ad2\u0116\u0001\u0000\u0000\u0000\u0ad3\u0ad4\u0003\u000b\u0005"+ + "\u0000\u0ad4\u0ad5\u0003#\u0011\u0000\u0ad5\u0ad6\u0003!\u0010\u0000\u0ad6"+ + "\u0ad7\u0003+\u0015\u0000\u0ad7\u0ad8\u0003-\u0016\u0000\u0ad8\u0ad9\u0003"+ + ")\u0014\u0000\u0ad9\u0ada\u0003\u0007\u0003\u0000\u0ada\u0adb\u0003\u0017"+ + "\u000b\u0000\u0adb\u0adc\u0003!\u0010\u0000\u0adc\u0add\u0003-\u0016\u0000"+ + "\u0add\u0118\u0001\u0000\u0000\u0000\u0ade\u0adf\u0003\u000b\u0005\u0000"+ + "\u0adf\u0ae0\u0003#\u0011\u0000\u0ae0\u0ae1\u0003!\u0010\u0000\u0ae1\u0ae2"+ + "\u0003+\u0015\u0000\u0ae2\u0ae3\u0003-\u0016\u0000\u0ae3\u0ae4\u0003)"+ + "\u0014\u0000\u0ae4\u0ae5\u0003\u0007\u0003\u0000\u0ae5\u0ae6\u0003\u0017"+ + "\u000b\u0000\u0ae6\u0ae7\u0003!\u0010\u0000\u0ae7\u0ae8\u0003-\u0016\u0000"+ + "\u0ae8\u0ae9\u0005_\u0000\u0000\u0ae9\u0aea\u0003\u000b\u0005\u0000\u0aea"+ + "\u0aeb\u0003\u0007\u0003\u0000\u0aeb\u0aec\u0003-\u0016\u0000\u0aec\u0aed"+ + "\u0003\u0007\u0003\u0000\u0aed\u0aee\u0003\u001d\u000e\u0000\u0aee\u0aef"+ + "\u0003#\u0011\u0000\u0aef\u0af0\u0003\u0013\t\u0000\u0af0\u011a\u0001"+ + "\u0000\u0000\u0000\u0af1\u0af2\u0003\u000b\u0005\u0000\u0af2\u0af3\u0003"+ + "#\u0011\u0000\u0af3\u0af4\u0003!\u0010\u0000\u0af4\u0af5\u0003+\u0015"+ + "\u0000\u0af5\u0af6\u0003-\u0016\u0000\u0af6\u0af7\u0003)\u0014\u0000\u0af7"+ + "\u0af8\u0003\u0007\u0003\u0000\u0af8\u0af9\u0003\u0017\u000b\u0000\u0af9"+ + "\u0afa\u0003!\u0010\u0000\u0afa\u0afb\u0003-\u0016\u0000\u0afb\u0afc\u0005"+ + "_\u0000\u0000\u0afc\u0afd\u0003!\u0010\u0000\u0afd\u0afe\u0003\u0007\u0003"+ + "\u0000\u0afe\u0aff\u0003\u001f\u000f\u0000\u0aff\u0b00\u0003\u000f\u0007"+ + "\u0000\u0b00\u011c\u0001\u0000\u0000\u0000\u0b01\u0b02\u0003\u000b\u0005"+ + "\u0000\u0b02\u0b03\u0003#\u0011\u0000\u0b03\u0b04\u0003!\u0010\u0000\u0b04"+ + "\u0b05\u0003+\u0015\u0000\u0b05\u0b06\u0003-\u0016\u0000\u0b06\u0b07\u0003"+ + ")\u0014\u0000\u0b07\u0b08\u0003\u0007\u0003\u0000\u0b08\u0b09\u0003\u0017"+ + "\u000b\u0000\u0b09\u0b0a\u0003!\u0010\u0000\u0b0a\u0b0b\u0003-\u0016\u0000"+ + "\u0b0b\u0b0c\u0005_\u0000\u0000\u0b0c\u0b0d\u0003+\u0015\u0000\u0b0d\u0b0e"+ + "\u0003\u000b\u0005\u0000\u0b0e\u0b0f\u0003\u0015\n\u0000\u0b0f\u0b10\u0003"+ + "\u000f\u0007\u0000\u0b10\u0b11\u0003\u001f\u000f\u0000\u0b11\u0b12\u0003"+ + "\u0007\u0003\u0000\u0b12\u011e\u0001\u0000\u0000\u0000\u0b13\u0b14\u0003"+ + "\u000b\u0005\u0000\u0b14\u0b15\u0003#\u0011\u0000\u0b15\u0b16\u0003!\u0010"+ + "\u0000\u0b16\u0b17\u0003+\u0015\u0000\u0b17\u0b18\u0003-\u0016\u0000\u0b18"+ + "\u0b19\u0003)\u0014\u0000\u0b19\u0b1a\u0003\u0007\u0003\u0000\u0b1a\u0b1b"+ + "\u0003\u0017\u000b\u0000\u0b1b\u0b1c\u0003!\u0010\u0000\u0b1c\u0b1d\u0003"+ + "-\u0016\u0000\u0b1d\u0b1e\u0003+\u0015\u0000\u0b1e\u0120\u0001\u0000\u0000"+ + "\u0000\u0b1f\u0b20\u0003\u000b\u0005\u0000\u0b20\u0b21\u0003#\u0011\u0000"+ + "\u0b21\u0b22\u0003!\u0010\u0000\u0b22\u0b23\u0003+\u0015\u0000\u0b23\u0b24"+ + "\u0003-\u0016\u0000\u0b24\u0b25\u0003)\u0014\u0000\u0b25\u0b26\u0003/"+ + "\u0017\u0000\u0b26\u0b27\u0003\u000b\u0005\u0000\u0b27\u0b28\u0003-\u0016"+ + "\u0000\u0b28\u0b29\u0003#\u0011\u0000\u0b29\u0b2a\u0003)\u0014\u0000\u0b2a"+ + "\u0122\u0001\u0000\u0000\u0000\u0b2b\u0b2c\u0003\u000b\u0005\u0000\u0b2c"+ + "\u0b2d\u0003#\u0011\u0000\u0b2d\u0b2e\u0003!\u0010\u0000\u0b2e\u0b2f\u0003"+ + "-\u0016\u0000\u0b2f\u0b30\u0003\u0007\u0003\u0000\u0b30\u0b31\u0003\u0017"+ + "\u000b\u0000\u0b31\u0b32\u0003!\u0010\u0000\u0b32\u0b33\u0003+\u0015\u0000"+ + "\u0b33\u0124\u0001\u0000\u0000\u0000\u0b34\u0b35\u0003\u000b\u0005\u0000"+ + "\u0b35\u0b36\u0003#\u0011\u0000\u0b36\u0b37\u0003!\u0010\u0000\u0b37\u0b38"+ + "\u0003-\u0016\u0000\u0b38\u0b39\u0003\u0017\u000b\u0000\u0b39\u0b3a\u0003"+ + "!\u0010\u0000\u0b3a\u0b3b\u0003/\u0017\u0000\u0b3b\u0b3c\u0003\u000f\u0007"+ + "\u0000\u0b3c\u0126\u0001\u0000\u0000\u0000\u0b3d\u0b3e\u0003\u000b\u0005"+ + "\u0000\u0b3e\u0b3f\u0003#\u0011\u0000\u0b3f\u0b40\u0003!\u0010\u0000\u0b40"+ + "\u0b41\u00031\u0018\u0000\u0b41\u0b42\u0003\u000f\u0007\u0000\u0b42\u0b43"+ + "\u0003)\u0014\u0000\u0b43\u0b44\u0003+\u0015\u0000\u0b44\u0b45\u0003\u0017"+ + "\u000b\u0000\u0b45\u0b46\u0003#\u0011\u0000\u0b46\u0b47\u0003!\u0010\u0000"+ + "\u0b47\u0128\u0001\u0000\u0000\u0000\u0b48\u0b49\u0003\u000b\u0005\u0000"+ + "\u0b49\u0b4a\u0003#\u0011\u0000\u0b4a\u0b4b\u0003!\u0010\u0000\u0b4b\u0b4c"+ + "\u00031\u0018\u0000\u0b4c\u0b4d\u0003\u000f\u0007\u0000\u0b4d\u0b4e\u0003"+ + ")\u0014\u0000\u0b4e\u0b4f\u0003-\u0016\u0000\u0b4f\u012a\u0001\u0000\u0000"+ + "\u0000\u0b50\u0b51\u0003\u000b\u0005\u0000\u0b51\u0b52\u0003#\u0011\u0000"+ + "\u0b52\u0b53\u0003%\u0012\u0000\u0b53\u0b54\u00037\u001b\u0000\u0b54\u012c"+ + "\u0001\u0000\u0000\u0000\u0b55\u0b56\u0003\u000b\u0005\u0000\u0b56\u0b57"+ + "\u0003#\u0011\u0000\u0b57\u0b58\u0003)\u0014\u0000\u0b58\u0b59\u0003)"+ + "\u0014\u0000\u0b59\u012e\u0001\u0000\u0000\u0000\u0b5a\u0b5b\u0003\u000b"+ + "\u0005\u0000\u0b5b\u0b5c\u0003#\u0011\u0000\u0b5c\u0b5d\u0003)\u0014\u0000"+ + "\u0b5d\u0b5e\u0003)\u0014\u0000\u0b5e\u0b5f\u0003\u000f\u0007\u0000\u0b5f"+ + "\u0b60\u0003+\u0015\u0000\u0b60\u0b61\u0003%\u0012\u0000\u0b61\u0b62\u0003"+ + "#\u0011\u0000\u0b62\u0b63\u0003!\u0010\u0000\u0b63\u0b64\u0003\r\u0006"+ + "\u0000\u0b64\u0b65\u0003\u0017\u000b\u0000\u0b65\u0b66\u0003!\u0010\u0000"+ + "\u0b66\u0b67\u0003\u0013\t\u0000\u0b67\u0130\u0001\u0000\u0000\u0000\u0b68"+ + "\u0b69\u0003\u000b\u0005\u0000\u0b69\u0b6a\u0003#\u0011\u0000\u0b6a\u0b6b"+ + "\u0003+\u0015\u0000\u0b6b\u0b6c\u0003-\u0016\u0000\u0b6c\u0b6d\u0003+"+ + "\u0015\u0000\u0b6d\u0132\u0001\u0000\u0000\u0000\u0b6e\u0b6f\u0003\u000b"+ + "\u0005\u0000\u0b6f\u0b70\u0003#\u0011\u0000\u0b70\u0b71\u0003/\u0017\u0000"+ + "\u0b71\u0b72\u0003!\u0010\u0000\u0b72\u0b73\u0003-\u0016\u0000\u0b73\u0134"+ + "\u0001\u0000\u0000\u0000\u0b74\u0b75\u0003\u000b\u0005\u0000\u0b75\u0b76"+ + "\u0003#\u0011\u0000\u0b76\u0b77\u00031\u0018\u0000\u0b77\u0b78\u0003\u0007"+ + "\u0003\u0000\u0b78\u0b79\u0003)\u0014\u0000\u0b79\u0b7a\u0005_\u0000\u0000"+ + "\u0b7a\u0b7b\u0003%\u0012\u0000\u0b7b\u0b7c\u0003#\u0011\u0000\u0b7c\u0b7d"+ + "\u0003%\u0012\u0000\u0b7d\u0136\u0001\u0000\u0000\u0000\u0b7e\u0b7f\u0003"+ + "\u000b\u0005\u0000\u0b7f\u0b80\u0003#\u0011\u0000\u0b80\u0b81\u00031\u0018"+ + "\u0000\u0b81\u0b82\u0003\u0007\u0003\u0000\u0b82\u0b83\u0003)\u0014\u0000"+ + "\u0b83\u0b84\u0005_\u0000\u0000\u0b84\u0b85\u0003+\u0015\u0000\u0b85\u0b86"+ + "\u0003\u0007\u0003\u0000\u0b86\u0b87\u0003\u001f\u000f\u0000\u0b87\u0b88"+ + "\u0003%\u0012\u0000\u0b88\u0138\u0001\u0000\u0000\u0000\u0b89\u0b8a\u0003"+ + "\u000b\u0005\u0000\u0b8a\u0b8b\u0003)\u0014\u0000\u0b8b\u0b8c\u0003\u000f"+ + "\u0007\u0000\u0b8c\u0b8d\u0003\u0007\u0003\u0000\u0b8d\u0b8e\u0003-\u0016"+ + "\u0000\u0b8e\u0b8f\u0003\u000f\u0007\u0000\u0b8f\u013a\u0001\u0000\u0000"+ + "\u0000\u0b90\u0b91\u0003\u000b\u0005\u0000\u0b91\u0b92\u0003)\u0014\u0000"+ + "\u0b92\u0b93\u0003\u000f\u0007\u0000\u0b93\u0b94\u0003\u0007\u0003\u0000"+ + "\u0b94\u0b95\u0003-\u0016\u0000\u0b95\u0b96\u0003\u000f\u0007\u0000\u0b96"+ + "\u0b97\u0003\r\u0006\u0000\u0b97\u0b98\u0003\t\u0004\u0000\u0b98\u013c"+ + "\u0001\u0000\u0000\u0000\u0b99\u0b9a\u0003\u000b\u0005\u0000\u0b9a\u0b9b"+ + "\u0003)\u0014\u0000\u0b9b\u0b9c\u0003\u000f\u0007\u0000\u0b9c\u0b9d\u0003"+ + "\u0007\u0003\u0000\u0b9d\u0b9e\u0003-\u0016\u0000\u0b9e\u0b9f\u0003\u000f"+ + "\u0007\u0000\u0b9f\u0ba0\u0003/\u0017\u0000\u0ba0\u0ba1\u0003+\u0015\u0000"+ + "\u0ba1\u0ba2\u0003\u000f\u0007\u0000\u0ba2\u0ba3\u0003)\u0014\u0000\u0ba3"+ + "\u013e\u0001\u0000\u0000\u0000\u0ba4\u0ba5\u0003\u000b\u0005\u0000\u0ba5"+ + "\u0ba6\u0003)\u0014\u0000\u0ba6\u0ba7\u0003#\u0011\u0000\u0ba7\u0ba8\u0003"+ + "+\u0015\u0000\u0ba8\u0ba9\u0003+\u0015\u0000\u0ba9\u0140\u0001\u0000\u0000"+ + "\u0000\u0baa\u0bab\u0003\u000b\u0005\u0000\u0bab\u0bac\u0003+\u0015\u0000"+ + "\u0bac\u0bad\u00031\u0018\u0000\u0bad\u0142\u0001\u0000\u0000\u0000\u0bae"+ + "\u0baf\u0003\u000b\u0005\u0000\u0baf\u0bb0\u0003/\u0017\u0000\u0bb0\u0bb1"+ + "\u0003\t\u0004\u0000\u0bb1\u0bb2\u0003\u000f\u0007\u0000\u0bb2\u0144\u0001"+ + "\u0000\u0000\u0000\u0bb3\u0bb4\u0003\u000b\u0005\u0000\u0bb4\u0bb5\u0003"+ + "/\u0017\u0000\u0bb5\u0bb6\u0003\u001f\u000f\u0000\u0bb6\u0bb7\u0003\u000f"+ + "\u0007\u0000\u0bb7\u0bb8\u0005_\u0000\u0000\u0bb8\u0bb9\u0003\r\u0006"+ + "\u0000\u0bb9\u0bba\u0003\u0017\u000b\u0000\u0bba\u0bbb\u0003+\u0015\u0000"+ + "\u0bbb\u0bbc\u0003-\u0016\u0000\u0bbc\u0146\u0001\u0000\u0000\u0000\u0bbd"+ + "\u0bbe\u0003\u000b\u0005\u0000\u0bbe\u0bbf\u0003/\u0017\u0000\u0bbf\u0bc0"+ + "\u0003)\u0014\u0000\u0bc0\u0bc1\u0003)\u0014\u0000\u0bc1\u0bc2\u0003\u000f"+ + "\u0007\u0000\u0bc2\u0bc3\u0003!\u0010\u0000\u0bc3\u0bc4\u0003-\u0016\u0000"+ + "\u0bc4\u0148\u0001\u0000\u0000\u0000\u0bc5\u0bc6\u0003\u000b\u0005\u0000"+ + "\u0bc6\u0bc7\u0003/\u0017\u0000\u0bc7\u0bc8\u0003)\u0014\u0000\u0bc8\u0bc9"+ + "\u0003)\u0014\u0000\u0bc9\u0bca\u0003\u000f\u0007\u0000\u0bca\u0bcb\u0003"+ + "!\u0010\u0000\u0bcb\u0bcc\u0003-\u0016\u0000\u0bcc\u0bcd\u0005_\u0000"+ + "\u0000\u0bcd\u0bce\u0003\r\u0006\u0000\u0bce\u0bcf\u0003\u0007\u0003\u0000"+ + "\u0bcf\u0bd0\u0003-\u0016\u0000\u0bd0\u0bd1\u0003\u000f\u0007\u0000\u0bd1"+ + "\u014a\u0001\u0000\u0000\u0000\u0bd2\u0bd3\u0003\u000b\u0005\u0000\u0bd3"+ + "\u0bd4\u0003/\u0017\u0000\u0bd4\u0bd5\u0003)\u0014\u0000\u0bd5\u0bd6\u0003"+ + ")\u0014\u0000\u0bd6\u0bd7\u0003\u000f\u0007\u0000\u0bd7\u0bd8\u0003!\u0010"+ + "\u0000\u0bd8\u0bd9\u0003-\u0016\u0000\u0bd9\u0bda\u0005_\u0000\u0000\u0bda"+ + "\u0bdb\u0003\r\u0006\u0000\u0bdb\u0bdc\u0003\u000f\u0007\u0000\u0bdc\u0bdd"+ + "\u0003\u0011\b\u0000\u0bdd\u0bde\u0003\u0007\u0003\u0000\u0bde\u0bdf\u0003"+ + "/\u0017\u0000\u0bdf\u0be0\u0003\u001d\u000e\u0000\u0be0\u0be1\u0003-\u0016"+ + "\u0000\u0be1\u0be2\u0005_\u0000\u0000\u0be2\u0be3\u0003-\u0016\u0000\u0be3"+ + "\u0be4\u0003)\u0014\u0000\u0be4\u0be5\u0003\u0007\u0003\u0000\u0be5\u0be6"+ + "\u0003!\u0010\u0000\u0be6\u0be7\u0003+\u0015\u0000\u0be7\u0be8\u0003\u0011"+ + "\b\u0000\u0be8\u0be9\u0003#\u0011\u0000\u0be9\u0bea\u0003)\u0014\u0000"+ + "\u0bea\u0beb\u0003\u001f\u000f\u0000\u0beb\u0bec\u0005_\u0000\u0000\u0bec"+ + "\u0bed\u0003\u0013\t\u0000\u0bed\u0bee\u0003)\u0014\u0000\u0bee\u0bef"+ + "\u0003#\u0011\u0000\u0bef\u0bf0\u0003/\u0017\u0000\u0bf0\u0bf1\u0003%"+ + "\u0012\u0000\u0bf1\u014c\u0001\u0000\u0000\u0000\u0bf2\u0bf3\u0003\u000b"+ + "\u0005\u0000\u0bf3\u0bf4\u0003/\u0017\u0000\u0bf4\u0bf5\u0003)\u0014\u0000"+ + "\u0bf5\u0bf6\u0003)\u0014\u0000\u0bf6\u0bf7\u0003\u000f\u0007\u0000\u0bf7"+ + "\u0bf8\u0003!\u0010\u0000\u0bf8\u0bf9\u0003-\u0016\u0000\u0bf9\u0bfa\u0005"+ + "_\u0000\u0000\u0bfa\u0bfb\u0003%\u0012\u0000\u0bfb\u0bfc\u0003\u0007\u0003"+ + "\u0000\u0bfc\u0bfd\u0003-\u0016\u0000\u0bfd\u0bfe\u0003\u0015\n\u0000"+ + "\u0bfe\u014e\u0001\u0000\u0000\u0000\u0bff\u0c00\u0003\u000b\u0005\u0000"+ + "\u0c00\u0c01\u0003/\u0017\u0000\u0c01\u0c02\u0003)\u0014\u0000\u0c02\u0c03"+ + "\u0003)\u0014\u0000\u0c03\u0c04\u0003\u000f\u0007\u0000\u0c04\u0c05\u0003"+ + "!\u0010\u0000\u0c05\u0c06\u0003-\u0016\u0000\u0c06\u0c07\u0005_\u0000"+ + "\u0000\u0c07\u0c08\u0003)\u0014\u0000\u0c08\u0c09\u0003#\u0011\u0000\u0c09"+ + "\u0c0a\u0003\u001d\u000e\u0000\u0c0a\u0c0b\u0003\u000f\u0007\u0000\u0c0b"+ + "\u0150\u0001\u0000\u0000\u0000\u0c0c\u0c0d\u0003\u000b\u0005\u0000\u0c0d"+ + "\u0c0e\u0003/\u0017\u0000\u0c0e\u0c0f\u0003)\u0014\u0000\u0c0f\u0c10\u0003"+ + ")\u0014\u0000\u0c10\u0c11\u0003\u000f\u0007\u0000\u0c11\u0c12\u0003!\u0010"+ + "\u0000\u0c12\u0c13\u0003-\u0016\u0000\u0c13\u0c14\u0005_\u0000\u0000\u0c14"+ + "\u0c15\u0003-\u0016\u0000\u0c15\u0c16\u0003\u0017\u000b\u0000\u0c16\u0c17"+ + "\u0003\u001f\u000f\u0000\u0c17\u0c18\u0003\u000f\u0007\u0000\u0c18\u0152"+ + "\u0001\u0000\u0000\u0000\u0c19\u0c1a\u0003\u000b\u0005\u0000\u0c1a\u0c1b"+ + "\u0003/\u0017\u0000\u0c1b\u0c1c\u0003)\u0014\u0000\u0c1c\u0c1d\u0003)"+ + "\u0014\u0000\u0c1d\u0c1e\u0003\u000f\u0007\u0000\u0c1e\u0c1f\u0003!\u0010"+ + "\u0000\u0c1f\u0c20\u0003-\u0016\u0000\u0c20\u0c21\u0005_\u0000\u0000\u0c21"+ + "\u0c22\u0003-\u0016\u0000\u0c22\u0c23\u0003\u0017\u000b\u0000\u0c23\u0c24"+ + "\u0003\u001f\u000f\u0000\u0c24\u0c25\u0003\u000f\u0007\u0000\u0c25\u0c26"+ + "\u0003+\u0015\u0000\u0c26\u0c27\u0003-\u0016\u0000\u0c27\u0c28\u0003\u0007"+ + "\u0003\u0000\u0c28\u0c29\u0003\u001f\u000f\u0000\u0c29\u0c2a\u0003%\u0012"+ + "\u0000\u0c2a\u0154\u0001\u0000\u0000\u0000\u0c2b\u0c2c\u0003\u000b\u0005"+ + "\u0000\u0c2c\u0c2d\u0003/\u0017\u0000\u0c2d\u0c2e\u0003)\u0014\u0000\u0c2e"+ + "\u0c2f\u0003)\u0014\u0000\u0c2f\u0c30\u0003\u000f\u0007\u0000\u0c30\u0c31"+ + "\u0003!\u0010\u0000\u0c31\u0c32\u0003-\u0016\u0000\u0c32\u0c33\u0005_"+ + "\u0000\u0000\u0c33\u0c34\u0003-\u0016\u0000\u0c34\u0c35\u0003)\u0014\u0000"+ + "\u0c35\u0c36\u0003\u0007\u0003\u0000\u0c36\u0c37\u0003!\u0010\u0000\u0c37"+ + "\u0c38\u0003+\u0015\u0000\u0c38\u0c39\u0003\u0011\b\u0000\u0c39\u0c3a"+ + "\u0003#\u0011\u0000\u0c3a\u0c3b\u0003)\u0014\u0000\u0c3b\u0c3c\u0003\u001f"+ + "\u000f\u0000\u0c3c\u0c3d\u0005_\u0000\u0000\u0c3d\u0c3e\u0003\u0013\t"+ + "\u0000\u0c3e\u0c3f\u0003)\u0014\u0000\u0c3f\u0c40\u0003#\u0011\u0000\u0c40"+ + "\u0c41\u0003/\u0017\u0000\u0c41\u0c42\u0003%\u0012\u0000\u0c42\u0c43\u0005"+ + "_\u0000\u0000\u0c43\u0c44\u0003\u0011\b\u0000\u0c44\u0c45\u0003#\u0011"+ + "\u0000\u0c45\u0c46\u0003)\u0014\u0000\u0c46\u0c47\u0005_\u0000\u0000\u0c47"+ + "\u0c48\u0003-\u0016\u0000\u0c48\u0c49\u00037\u001b\u0000\u0c49\u0c4a\u0003"+ + "%\u0012\u0000\u0c4a\u0c4b\u0003\u000f\u0007\u0000\u0c4b\u0156\u0001\u0000"+ + "\u0000\u0000\u0c4c\u0c4d\u0003\u000b\u0005\u0000\u0c4d\u0c4e\u0003/\u0017"+ + "\u0000\u0c4e\u0c4f\u0003)\u0014\u0000\u0c4f\u0c50\u0003)\u0014\u0000\u0c50"+ + "\u0c51\u0003\u000f\u0007\u0000\u0c51\u0c52\u0003!\u0010\u0000\u0c52\u0c53"+ + "\u0003-\u0016\u0000\u0c53\u0c54\u0005_\u0000\u0000\u0c54\u0c55\u0003/"+ + "\u0017\u0000\u0c55\u0c56\u0003+\u0015\u0000\u0c56\u0c57\u0003\u000f\u0007"+ + "\u0000\u0c57\u0c58\u0003)\u0014\u0000\u0c58\u0158\u0001\u0000\u0000\u0000"+ + "\u0c59\u0c5a\u0003\u000b\u0005\u0000\u0c5a\u0c5b\u0003/\u0017\u0000\u0c5b"+ + "\u0c5c\u0003)\u0014\u0000\u0c5c\u0c5d\u0003+\u0015\u0000\u0c5d\u0c5e\u0003"+ + "#\u0011\u0000\u0c5e\u0c5f\u0003)\u0014\u0000\u0c5f\u015a\u0001\u0000\u0000"+ + "\u0000\u0c60\u0c61\u0003\u000b\u0005\u0000\u0c61\u0c62\u0003/\u0017\u0000"+ + "\u0c62\u0c63\u0003)\u0014\u0000\u0c63\u0c64\u0003+\u0015\u0000\u0c64\u0c65"+ + "\u0003#\u0011\u0000\u0c65\u0c66\u0003)\u0014\u0000\u0c66\u0c67\u0005_"+ + "\u0000\u0000\u0c67\u0c68\u0003!\u0010\u0000\u0c68\u0c69\u0003\u0007\u0003"+ + "\u0000\u0c69\u0c6a\u0003\u001f\u000f\u0000\u0c6a\u0c6b\u0003\u000f\u0007"+ + "\u0000\u0c6b\u015c\u0001\u0000\u0000\u0000\u0c6c\u0c6d\u0003\u000b\u0005"+ + "\u0000\u0c6d\u0c6e\u00037\u001b\u0000\u0c6e\u0c6f\u0003\u000b\u0005\u0000"+ + "\u0c6f\u0c70\u0003\u001d\u000e\u0000\u0c70\u0c71\u0003\u000f\u0007\u0000"+ + "\u0c71\u015e\u0001\u0000\u0000\u0000\u0c72\u0c73\u0003\r\u0006\u0000\u0c73"+ + "\u0c74\u0003\u0007\u0003\u0000\u0c74\u0c75\u0003-\u0016\u0000\u0c75\u0c76"+ + "\u0003\u0007\u0003\u0000\u0c76\u0160\u0001\u0000\u0000\u0000\u0c77\u0c78"+ + "\u0003\r\u0006\u0000\u0c78\u0c79\u0003\u0007\u0003\u0000\u0c79\u0c7a\u0003"+ + "-\u0016\u0000\u0c7a\u0c7b\u0003\u0007\u0003\u0000\u0c7b\u0c7c\u0003\t"+ + "\u0004\u0000\u0c7c\u0c7d\u0003\u0007\u0003\u0000\u0c7d\u0c7e\u0003+\u0015"+ + "\u0000\u0c7e\u0c7f\u0003\u000f\u0007\u0000\u0c7f\u0162\u0001\u0000\u0000"+ + "\u0000\u0c80\u0c81\u0003\r\u0006\u0000\u0c81\u0c82\u0003\u0007\u0003\u0000"+ + "\u0c82\u0c83\u0003-\u0016\u0000\u0c83\u0c84\u0003\u000f\u0007\u0000\u0c84"+ + "\u0164\u0001\u0000\u0000\u0000\u0c85\u0c86\u0003\r\u0006\u0000\u0c86\u0c87"+ + "\u0003\u0007\u0003\u0000\u0c87\u0c88\u0003-\u0016\u0000\u0c88\u0c89\u0003"+ + "\u000f\u0007\u0000\u0c89\u0c8a\u0003-\u0016\u0000\u0c8a\u0c8b\u0003\u0017"+ + "\u000b\u0000\u0c8b\u0c8c\u0003\u001f\u000f\u0000\u0c8c\u0c8d\u0003\u000f"+ + "\u0007\u0000\u0c8d\u0c8e\u0005_\u0000\u0000\u0c8e\u0c8f\u0003\u0017\u000b"+ + "\u0000\u0c8f\u0c90\u0003!\u0010\u0000\u0c90\u0c91\u0003-\u0016\u0000\u0c91"+ + "\u0c92\u0003\u000f\u0007\u0000\u0c92\u0c93\u0003)\u0014\u0000\u0c93\u0c94"+ + "\u00031\u0018\u0000\u0c94\u0c95\u0003\u0007\u0003\u0000\u0c95\u0c96\u0003"+ + "\u001d\u000e\u0000\u0c96\u0c97\u0005_\u0000\u0000\u0c97\u0c98\u0003\u000b"+ + "\u0005\u0000\u0c98\u0c99\u0003#\u0011\u0000\u0c99\u0c9a\u0003\r\u0006"+ + "\u0000\u0c9a\u0c9b\u0003\u000f\u0007\u0000\u0c9b\u0166\u0001\u0000\u0000"+ + "\u0000\u0c9c\u0c9d\u0003\r\u0006\u0000\u0c9d\u0c9e\u0003\u0007\u0003\u0000"+ + "\u0c9e\u0c9f\u0003-\u0016\u0000\u0c9f\u0ca0\u0003\u000f\u0007\u0000\u0ca0"+ + "\u0ca1\u0003-\u0016\u0000\u0ca1\u0ca2\u0003\u0017\u000b\u0000\u0ca2\u0ca3"+ + "\u0003\u001f\u000f\u0000\u0ca3\u0ca4\u0003\u000f\u0007\u0000\u0ca4\u0ca5"+ + "\u0005_\u0000\u0000\u0ca5\u0ca6\u0003\u0017\u000b\u0000\u0ca6\u0ca7\u0003"+ + "!\u0010\u0000\u0ca7\u0ca8\u0003-\u0016\u0000\u0ca8\u0ca9\u0003\u000f\u0007"+ + "\u0000\u0ca9\u0caa\u0003)\u0014\u0000\u0caa\u0cab\u00031\u0018\u0000\u0cab"+ + "\u0cac\u0003\u0007\u0003\u0000\u0cac\u0cad\u0003\u001d\u000e\u0000\u0cad"+ + "\u0cae\u0005_\u0000\u0000\u0cae\u0caf\u0003%\u0012\u0000\u0caf\u0cb0\u0003"+ + ")\u0014\u0000\u0cb0\u0cb1\u0003\u000f\u0007\u0000\u0cb1\u0cb2\u0003\u000b"+ + "\u0005\u0000\u0cb2\u0cb3\u0003\u0017\u000b\u0000\u0cb3\u0cb4\u0003+\u0015"+ + "\u0000\u0cb4\u0cb5\u0003\u0017\u000b\u0000\u0cb5\u0cb6\u0003#\u0011\u0000"+ + "\u0cb6\u0cb7\u0003!\u0010\u0000\u0cb7\u0168\u0001\u0000\u0000\u0000\u0cb8"+ + "\u0cb9\u0003\r\u0006\u0000\u0cb9\u0cba\u0003\u0007\u0003\u0000\u0cba\u0cbb"+ + "\u00037\u001b\u0000\u0cbb\u016a\u0001\u0000\u0000\u0000\u0cbc\u0cbd\u0003"+ + "\r\u0006\u0000\u0cbd\u0cbe\u0003\u000f\u0007\u0000\u0cbe\u0cbf\u0003\u0007"+ + "\u0003\u0000\u0cbf\u0cc0\u0003\u001d\u000e\u0000\u0cc0\u0cc1\u0003\u001d"+ + "\u000e\u0000\u0cc1\u0cc2\u0003#\u0011\u0000\u0cc2\u0cc3\u0003\u000b\u0005"+ + "\u0000\u0cc3\u0cc4\u0003\u0007\u0003\u0000\u0cc4\u0cc5\u0003-\u0016\u0000"+ + "\u0cc5\u0cc6\u0003\u000f\u0007\u0000\u0cc6\u016c\u0001\u0000\u0000\u0000"+ + "\u0cc7\u0cc8\u0003\r\u0006\u0000\u0cc8\u0cc9\u0003\u000f\u0007\u0000\u0cc9"+ + "\u0cca\u0003\u000b\u0005\u0000\u0cca\u016e\u0001\u0000\u0000\u0000\u0ccb"+ + "\u0ccc\u0003\r\u0006\u0000\u0ccc\u0ccd\u0003\u000f\u0007\u0000\u0ccd\u0cce"+ + "\u0003\u000b\u0005\u0000\u0cce\u0ccf\u0003\u0017\u000b\u0000\u0ccf\u0cd0"+ + "\u0003\u001f\u000f\u0000\u0cd0\u0cd1\u0003\u0007\u0003\u0000\u0cd1\u0cd2"+ + "\u0003\u001d\u000e\u0000\u0cd2\u0170\u0001\u0000\u0000\u0000\u0cd3\u0cd4"+ + "\u0003\r\u0006\u0000\u0cd4\u0cd5\u0003\u000f\u0007\u0000\u0cd5\u0cd6\u0003"+ + "\u000b\u0005\u0000\u0cd6\u0cd7\u0003\u001d\u000e\u0000\u0cd7\u0cd8\u0003"+ + "\u0007\u0003\u0000\u0cd8\u0cd9\u0003)\u0014\u0000\u0cd9\u0cda\u0003\u000f"+ + "\u0007\u0000\u0cda\u0172\u0001\u0000\u0000\u0000\u0cdb\u0cdc\u0003\r\u0006"+ + "\u0000\u0cdc\u0cdd\u0003\u000f\u0007\u0000\u0cdd\u0cde\u0003\u0011\b\u0000"+ + "\u0cde\u0cdf\u0003\u0007\u0003\u0000\u0cdf\u0ce0\u0003/\u0017\u0000\u0ce0"+ + "\u0ce1\u0003\u001d\u000e\u0000\u0ce1\u0ce2\u0003-\u0016\u0000\u0ce2\u0174"+ + "\u0001\u0000\u0000\u0000\u0ce3\u0ce4\u0003\r\u0006\u0000\u0ce4\u0ce5\u0003"+ + "\u000f\u0007\u0000\u0ce5\u0ce6\u0003\u0011\b\u0000\u0ce6\u0ce7\u0003\u0007"+ + "\u0003\u0000\u0ce7\u0ce8\u0003/\u0017\u0000\u0ce8\u0ce9\u0003\u001d\u000e"+ + "\u0000\u0ce9\u0cea\u0003-\u0016\u0000\u0cea\u0ceb\u0003+\u0015\u0000\u0ceb"+ + "\u0176\u0001\u0000\u0000\u0000\u0cec\u0ced\u0003\r\u0006\u0000\u0ced\u0cee"+ + "\u0003\u000f\u0007\u0000\u0cee\u0cef\u0003\u0011\b\u0000\u0cef\u0cf0\u0003"+ + "\u000f\u0007\u0000\u0cf0\u0cf1\u0003)\u0014\u0000\u0cf1\u0cf2\u0003\u0007"+ + "\u0003\u0000\u0cf2\u0cf3\u0003\t\u0004\u0000\u0cf3\u0cf4\u0003\u001d\u000e"+ + "\u0000\u0cf4\u0cf5\u0003\u000f\u0007\u0000\u0cf5\u0178\u0001\u0000\u0000"+ + "\u0000\u0cf6\u0cf7\u0003\r\u0006\u0000\u0cf7\u0cf8\u0003\u000f\u0007\u0000"+ + "\u0cf8\u0cf9\u0003\u0011\b\u0000\u0cf9\u0cfa\u0003\u000f\u0007\u0000\u0cfa"+ + "\u0cfb\u0003)\u0014\u0000\u0cfb\u0cfc\u0003)\u0014\u0000\u0cfc\u0cfd\u0003"+ + "\u0007\u0003\u0000\u0cfd\u0cfe\u0003\t\u0004\u0000\u0cfe\u0cff\u0003\u001d"+ + "\u000e\u0000\u0cff\u0d00\u0003\u000f\u0007\u0000\u0d00\u017a\u0001\u0000"+ + "\u0000\u0000\u0d01\u0d02\u0003\r\u0006\u0000\u0d02\u0d03\u0003\u000f\u0007"+ + "\u0000\u0d03\u0d04\u0003\u0011\b\u0000\u0d04\u0d05\u0003\u000f\u0007\u0000"+ + "\u0d05\u0d06\u0003)\u0014\u0000\u0d06\u0d07\u0003)\u0014\u0000\u0d07\u0d08"+ + "\u0003\u000f\u0007\u0000\u0d08\u0d09\u0003\r\u0006\u0000\u0d09\u017c\u0001"+ + "\u0000\u0000\u0000\u0d0a\u0d0b\u0003\r\u0006\u0000\u0d0b\u0d0c\u0003\u000f"+ + "\u0007\u0000\u0d0c\u0d0d\u0003\u0011\b\u0000\u0d0d\u0d0e\u0003\u0017\u000b"+ + "\u0000\u0d0e\u0d0f\u0003!\u0010\u0000\u0d0f\u0d10\u0003\u000f\u0007\u0000"+ + "\u0d10\u0d11\u0003\r\u0006\u0000\u0d11\u017e\u0001\u0000\u0000\u0000\u0d12"+ + "\u0d13\u0003\r\u0006\u0000\u0d13\u0d14\u0003\u000f\u0007\u0000\u0d14\u0d15"+ + "\u0003\u0011\b\u0000\u0d15\u0d16\u0003\u0017\u000b\u0000\u0d16\u0d17\u0003"+ + "!\u0010\u0000\u0d17\u0d18\u0003\u000f\u0007\u0000\u0d18\u0d19\u0003)\u0014"+ + "\u0000\u0d19\u0180\u0001\u0000\u0000\u0000\u0d1a\u0d1b\u0003\r\u0006\u0000"+ + "\u0d1b\u0d1c\u0003\u000f\u0007\u0000\u0d1c\u0d1d\u0003\u0013\t\u0000\u0d1d"+ + "\u0d1e\u0003)\u0014\u0000\u0d1e\u0d1f\u0003\u000f\u0007\u0000\u0d1f\u0d20"+ + "\u0003\u000f\u0007\u0000\u0d20\u0182\u0001\u0000\u0000\u0000\u0d21\u0d22"+ + "\u0003\r\u0006\u0000\u0d22\u0d23\u0003\u000f\u0007\u0000\u0d23\u0d24\u0003"+ + "\u001d\u000e\u0000\u0d24\u0d25\u0003\u000f\u0007\u0000\u0d25\u0d26\u0003"+ + "-\u0016\u0000\u0d26\u0d27\u0003\u000f\u0007\u0000\u0d27\u0184\u0001\u0000"+ + "\u0000\u0000\u0d28\u0d29\u0003\r\u0006\u0000\u0d29\u0d2a\u0003\u000f\u0007"+ + "\u0000\u0d2a\u0d2b\u0003\u001d\u000e\u0000\u0d2b\u0d2c\u0003\u0017\u000b"+ + "\u0000\u0d2c\u0d2d\u0003\u001f\u000f\u0000\u0d2d\u0d2e\u0003\u0017\u000b"+ + "\u0000\u0d2e\u0d2f\u0003-\u0016\u0000\u0d2f\u0d30\u0003\u000f\u0007\u0000"+ + "\u0d30\u0d31\u0003)\u0014\u0000\u0d31\u0186\u0001\u0000\u0000\u0000\u0d32"+ + "\u0d33\u0003\r\u0006\u0000\u0d33\u0d34\u0003\u000f\u0007\u0000\u0d34\u0d35"+ + "\u0003\u001d\u000e\u0000\u0d35\u0d36\u0003\u0017\u000b\u0000\u0d36\u0d37"+ + "\u0003\u001f\u000f\u0000\u0d37\u0d38\u0003\u0017\u000b\u0000\u0d38\u0d39"+ + "\u0003-\u0016\u0000\u0d39\u0d3a\u0003\u000f\u0007\u0000\u0d3a\u0d3b\u0003"+ + ")\u0014\u0000\u0d3b\u0d3c\u0003+\u0015\u0000\u0d3c\u0188\u0001\u0000\u0000"+ + "\u0000\u0d3d\u0d3e\u0003\r\u0006\u0000\u0d3e\u0d3f\u0003\u000f\u0007\u0000"+ + "\u0d3f\u0d40\u0003!\u0010\u0000\u0d40\u0d41\u0003+\u0015\u0000\u0d41\u0d42"+ + "\u0003\u000f\u0007\u0000\u0d42\u0d43\u0005_\u0000\u0000\u0d43\u0d44\u0003"+ + ")\u0014\u0000\u0d44\u0d45\u0003\u0007\u0003\u0000\u0d45\u0d46\u0003!\u0010"+ + "\u0000\u0d46\u0d47\u0003\u001b\r\u0000\u0d47\u018a\u0001\u0000\u0000\u0000"+ + "\u0d48\u0d49\u0003\r\u0006\u0000\u0d49\u0d4a\u0003\u000f\u0007\u0000\u0d4a"+ + "\u0d4b\u0003%\u0012\u0000\u0d4b\u0d4c\u0003\u000f\u0007\u0000\u0d4c\u0d4d"+ + "\u0003!\u0010\u0000\u0d4d\u0d4e\u0003\r\u0006\u0000\u0d4e\u0d4f\u0003"+ + "+\u0015\u0000\u0d4f\u018c\u0001\u0000\u0000\u0000\u0d50\u0d51\u0003\r"+ + "\u0006\u0000\u0d51\u0d52\u0003\u000f\u0007\u0000\u0d52\u0d53\u0003%\u0012"+ + "\u0000\u0d53\u0d54\u0003-\u0016\u0000\u0d54\u0d55\u0003\u0015\n\u0000"+ + "\u0d55\u018e\u0001\u0000\u0000\u0000\u0d56\u0d57\u0003\r\u0006\u0000\u0d57"+ + "\u0d58\u0003\u000f\u0007\u0000\u0d58\u0d59\u0003)\u0014\u0000\u0d59\u0d5a"+ + "\u0003\u000f\u0007\u0000\u0d5a\u0d5b\u0003\u0011\b\u0000\u0d5b\u0190\u0001"+ + "\u0000\u0000\u0000\u0d5c\u0d5d\u0003\r\u0006\u0000\u0d5d\u0d5e\u0003\u000f"+ + "\u0007\u0000\u0d5e\u0d5f\u0003)\u0014\u0000\u0d5f\u0d60\u0003\u0017\u000b"+ + "\u0000\u0d60\u0d61\u00031\u0018\u0000\u0d61\u0d62\u0003\u000f\u0007\u0000"+ + "\u0d62\u0d63\u0003\r\u0006\u0000\u0d63\u0192\u0001\u0000\u0000\u0000\u0d64"+ + "\u0d65\u0003\r\u0006\u0000\u0d65\u0d66\u0003\u000f\u0007\u0000\u0d66\u0d67"+ + "\u0003+\u0015\u0000\u0d67\u0d68\u0003\u000b\u0005\u0000\u0d68\u0194\u0001"+ + "\u0000\u0000\u0000\u0d69\u0d6a\u0003\r\u0006\u0000\u0d6a\u0d6b\u0003\u000f"+ + "\u0007\u0000\u0d6b\u0d6c\u0003+\u0015\u0000\u0d6c\u0d6d\u0003\u000b\u0005"+ + "\u0000\u0d6d\u0d6e\u0003)\u0014\u0000\u0d6e\u0d6f\u0003\u0017\u000b\u0000"+ + "\u0d6f\u0d70\u0003\t\u0004\u0000\u0d70\u0d71\u0003\u000f\u0007\u0000\u0d71"+ + "\u0196\u0001\u0000\u0000\u0000\u0d72\u0d73\u0003\r\u0006\u0000\u0d73\u0d74"+ + "\u0003\u000f\u0007\u0000\u0d74\u0d75\u0003+\u0015\u0000\u0d75\u0d76\u0003"+ + "\u000b\u0005\u0000\u0d76\u0d77\u0003)\u0014\u0000\u0d77\u0d78\u0003\u0017"+ + "\u000b\u0000\u0d78\u0d79\u0003%\u0012\u0000\u0d79\u0d7a\u0003-\u0016\u0000"+ + "\u0d7a\u0d7b\u0003#\u0011\u0000\u0d7b\u0d7c\u0003)\u0014\u0000\u0d7c\u0198"+ + "\u0001\u0000\u0000\u0000\u0d7d\u0d7e\u0003\r\u0006\u0000\u0d7e\u0d7f\u0003"+ + "\u000f\u0007\u0000\u0d7f\u0d80\u0003+\u0015\u0000\u0d80\u0d81\u0003-\u0016"+ + "\u0000\u0d81\u0d82\u0003)\u0014\u0000\u0d82\u0d83\u0003#\u0011\u0000\u0d83"+ + "\u0d84\u00037\u001b\u0000\u0d84\u019a\u0001\u0000\u0000\u0000\u0d85\u0d86"+ + "\u0003\r\u0006\u0000\u0d86\u0d87\u0003\u000f\u0007\u0000\u0d87\u0d88\u0003"+ + "+\u0015\u0000\u0d88\u0d89\u0003-\u0016\u0000\u0d89\u0d8a\u0003)\u0014"+ + "\u0000\u0d8a\u0d8b\u0003/\u0017\u0000\u0d8b\u0d8c\u0003\u000b\u0005\u0000"+ + "\u0d8c\u0d8d\u0003-\u0016\u0000\u0d8d\u0d8e\u0003#\u0011\u0000\u0d8e\u0d8f"+ + "\u0003)\u0014\u0000\u0d8f\u019c\u0001\u0000\u0000\u0000\u0d90\u0d91\u0003"+ + "\r\u0006\u0000\u0d91\u0d92\u0003\u000f\u0007\u0000\u0d92\u0d93\u0003-"+ + "\u0016\u0000\u0d93\u0d94\u0003\u000f\u0007\u0000\u0d94\u0d95\u0003)\u0014"+ + "\u0000\u0d95\u0d96\u0003\u001f\u000f\u0000\u0d96\u0d97\u0003\u0017\u000b"+ + "\u0000\u0d97\u0d98\u0003!\u0010\u0000\u0d98\u0d99\u0003\u0017\u000b\u0000"+ + "\u0d99\u0d9a\u0003+\u0015\u0000\u0d9a\u0d9b\u0003-\u0016\u0000\u0d9b\u0d9c"+ + "\u0003\u0017\u000b\u0000\u0d9c\u0d9d\u0003\u000b\u0005\u0000\u0d9d\u019e"+ + "\u0001\u0000\u0000\u0000\u0d9e\u0d9f\u0003\r\u0006\u0000\u0d9f\u0da0\u0003"+ + "\u0017\u000b\u0000\u0da0\u0da1\u0003\u0007\u0003\u0000\u0da1\u0da2\u0003"+ + "\u0013\t\u0000\u0da2\u0da3\u0003!\u0010\u0000\u0da3\u0da4\u0003#\u0011"+ + "\u0000\u0da4\u0da5\u0003+\u0015\u0000\u0da5\u0da6\u0003-\u0016\u0000\u0da6"+ + "\u0da7\u0003\u0017\u000b\u0000\u0da7\u0da8\u0003\u000b\u0005\u0000\u0da8"+ + "\u0da9\u0003+\u0015\u0000\u0da9\u01a0\u0001\u0000\u0000\u0000\u0daa\u0dab"+ + "\u0003\r\u0006\u0000\u0dab\u0dac\u0003\u0017\u000b\u0000\u0dac\u0dad\u0003"+ + "\u000b\u0005\u0000\u0dad\u0dae\u0003-\u0016\u0000\u0dae\u0daf\u0003\u0017"+ + "\u000b\u0000\u0daf\u0db0\u0003#\u0011\u0000\u0db0\u0db1\u0003!\u0010\u0000"+ + "\u0db1\u0db2\u0003\u0007\u0003\u0000\u0db2\u0db3\u0003)\u0014\u0000\u0db3"+ + "\u0db4\u00037\u001b\u0000\u0db4\u01a2\u0001\u0000\u0000\u0000\u0db5\u0db6"+ + "\u0003\r\u0006\u0000\u0db6\u0db7\u0003\u0017\u000b\u0000\u0db7\u0db8\u0003"+ + "+\u0015\u0000\u0db8\u0db9\u0003\u0007\u0003\u0000\u0db9\u0dba\u0003\t"+ + "\u0004\u0000\u0dba\u0dbb\u0003\u001d\u000e\u0000\u0dbb\u0dbc\u0003\u000f"+ + "\u0007\u0000\u0dbc\u01a4\u0001\u0000\u0000\u0000\u0dbd\u0dbe\u0003\r\u0006"+ + "\u0000\u0dbe\u0dbf\u0003\u0017\u000b\u0000\u0dbf\u0dc0\u0003+\u0015\u0000"+ + "\u0dc0\u0dc1\u0003\u0007\u0003\u0000\u0dc1\u0dc2\u0003\t\u0004\u0000\u0dc2"+ + "\u0dc3\u0003\u001d\u000e\u0000\u0dc3\u0dc4\u0003\u000f\u0007\u0000\u0dc4"+ + "\u0dc5\u0005_\u0000\u0000\u0dc5\u0dc6\u0003%\u0012\u0000\u0dc6\u0dc7\u0003"+ + "\u0007\u0003\u0000\u0dc7\u0dc8\u0003\u0013\t\u0000\u0dc8\u0dc9\u0003\u000f"+ + "\u0007\u0000\u0dc9\u0dca\u0005_\u0000\u0000\u0dca\u0dcb\u0003+\u0015\u0000"+ + "\u0dcb\u0dcc\u0003\u001b\r\u0000\u0dcc\u0dcd\u0003\u0017\u000b\u0000\u0dcd"+ + "\u0dce\u0003%\u0012\u0000\u0dce\u0dcf\u0003%\u0012\u0000\u0dcf\u0dd0\u0003"+ + "\u0017\u000b\u0000\u0dd0\u0dd1\u0003!\u0010\u0000\u0dd1\u0dd2\u0003\u0013"+ + "\t\u0000\u0dd2\u01a6\u0001\u0000\u0000\u0000\u0dd3\u0dd4\u0003\r\u0006"+ + "\u0000\u0dd4\u0dd5\u0003\u0017\u000b\u0000\u0dd5\u0dd6\u0003+\u0015\u0000"+ + "\u0dd6\u0dd7\u0003\u000b\u0005\u0000\u0dd7\u0dd8\u0003\u0007\u0003\u0000"+ + "\u0dd8\u0dd9\u0003)\u0014\u0000\u0dd9\u0dda\u0003\r\u0006\u0000\u0dda"+ + "\u01a8\u0001\u0000\u0000\u0000\u0ddb\u0ddc\u0003\r\u0006\u0000\u0ddc\u0ddd"+ + "\u0003\u0017\u000b\u0000\u0ddd\u0dde\u0003+\u0015\u0000\u0dde\u0ddf\u0003"+ + "\u000b\u0005\u0000\u0ddf\u0de0\u0003#\u0011\u0000\u0de0\u0de1\u0003!\u0010"+ + "\u0000\u0de1\u0de2\u0003!\u0010\u0000\u0de2\u0de3\u0003\u000f\u0007\u0000"+ + "\u0de3\u0de4\u0003\u000b\u0005\u0000\u0de4\u0de5\u0003-\u0016\u0000\u0de5"+ + "\u01aa\u0001\u0000\u0000\u0000\u0de6\u0de7\u0003\r\u0006\u0000\u0de7\u0de8"+ + "\u0003\u0017\u000b\u0000\u0de8\u0de9\u0003+\u0015\u0000\u0de9\u0dea\u0003"+ + "%\u0012\u0000\u0dea\u0deb\u0003\u0007\u0003\u0000\u0deb\u0dec\u0003-\u0016"+ + "\u0000\u0dec\u0ded\u0003\u000b\u0005\u0000\u0ded\u0dee\u0003\u0015\n\u0000"+ + "\u0dee\u01ac\u0001\u0000\u0000\u0000\u0def\u0df0\u0003\r\u0006\u0000\u0df0"+ + "\u0df1\u0003\u0017\u000b\u0000\u0df1\u0df2\u0003+\u0015\u0000\u0df2\u0df3"+ + "\u0003-\u0016\u0000\u0df3\u0df4\u0003\u0017\u000b\u0000\u0df4\u0df5\u0003"+ + "!\u0010\u0000\u0df5\u0df6\u0003\u000b\u0005\u0000\u0df6\u0df7\u0003-\u0016"+ + "\u0000\u0df7\u01ae\u0001\u0000\u0000\u0000\u0df8\u0df9\u0003\r\u0006\u0000"+ + "\u0df9\u0dfa\u0003#\u0011\u0000\u0dfa\u01b0\u0001\u0000\u0000\u0000\u0dfb"+ + "\u0dfc\u0003\r\u0006\u0000\u0dfc\u0dfd\u0003#\u0011\u0000\u0dfd\u0dfe"+ + "\u0003\u001f\u000f\u0000\u0dfe\u0dff\u0003\u0007\u0003\u0000\u0dff\u0e00"+ + "\u0003\u0017\u000b\u0000\u0e00\u0e01\u0003!\u0010\u0000\u0e01\u01b2\u0001"+ + "\u0000\u0000\u0000\u0e02\u0e03\u0003\r\u0006\u0000\u0e03\u0e04\u0003#"+ + "\u0011\u0000\u0e04\u0e05\u0003/\u0017\u0000\u0e05\u0e06\u0003\t\u0004"+ + "\u0000\u0e06\u0e07\u0003\u001d\u000e\u0000\u0e07\u0e08\u0003\u000f\u0007"+ + "\u0000\u0e08\u01b4\u0001\u0000\u0000\u0000\u0e09\u0e0a\u0003\r\u0006\u0000"+ + "\u0e0a\u0e0b\u0003)\u0014\u0000\u0e0b\u0e0c\u0003#\u0011\u0000\u0e0c\u0e0d"+ + "\u0003%\u0012\u0000\u0e0d\u01b6\u0001\u0000\u0000\u0000\u0e0e\u0e0f\u0003"+ + "\r\u0006\u0000\u0e0f\u0e10\u00037\u001b\u0000\u0e10\u0e11\u0003!\u0010"+ + "\u0000\u0e11\u0e12\u0003\u0007\u0003\u0000\u0e12\u0e13\u0003\u001f\u000f"+ + "\u0000\u0e13\u0e14\u0003\u0017\u000b\u0000\u0e14\u0e15\u0003\u000b\u0005"+ + "\u0000\u0e15\u01b8\u0001\u0000\u0000\u0000\u0e16\u0e17\u0003\r\u0006\u0000"+ + "\u0e17\u0e18\u00037\u001b\u0000\u0e18\u0e19\u0003!\u0010\u0000\u0e19\u0e1a"+ + "\u0003\u0007\u0003\u0000\u0e1a\u0e1b\u0003\u001f\u000f\u0000\u0e1b\u0e1c"+ + "\u0003\u0017\u000b\u0000\u0e1c\u0e1d\u0003\u000b\u0005\u0000\u0e1d\u0e1e"+ + "\u0005_\u0000\u0000\u0e1e\u0e1f\u0003\u0011\b\u0000\u0e1f\u0e20\u0003"+ + "/\u0017\u0000\u0e20\u0e21\u0003!\u0010\u0000\u0e21\u0e22\u0003\u000b\u0005"+ + "\u0000\u0e22\u0e23\u0003-\u0016\u0000\u0e23\u0e24\u0003\u0017\u000b\u0000"+ + "\u0e24\u0e25\u0003#\u0011\u0000\u0e25\u0e26\u0003!\u0010\u0000\u0e26\u01ba"+ + "\u0001\u0000\u0000\u0000\u0e27\u0e28\u0003\r\u0006\u0000\u0e28\u0e29\u0003"+ + "7\u001b\u0000\u0e29\u0e2a\u0003!\u0010\u0000\u0e2a\u0e2b\u0003\u0007\u0003"+ + "\u0000\u0e2b\u0e2c\u0003\u001f\u000f\u0000\u0e2c\u0e2d\u0003\u0017\u000b"+ + "\u0000\u0e2d\u0e2e\u0003\u000b\u0005\u0000\u0e2e\u0e2f\u0005_\u0000\u0000"+ + "\u0e2f\u0e30\u0003\u0011\b\u0000\u0e30\u0e31\u0003/\u0017\u0000\u0e31"+ + "\u0e32\u0003!\u0010\u0000\u0e32\u0e33\u0003\u000b\u0005\u0000\u0e33\u0e34"+ + "\u0003-\u0016\u0000\u0e34\u0e35\u0003\u0017\u000b\u0000\u0e35\u0e36\u0003"+ + "#\u0011\u0000\u0e36\u0e37\u0003!\u0010\u0000\u0e37\u0e38\u0005_\u0000"+ + "\u0000\u0e38\u0e39\u0003\u000b\u0005\u0000\u0e39\u0e3a\u0003#\u0011\u0000"+ + "\u0e3a\u0e3b\u0003\r\u0006\u0000\u0e3b\u0e3c\u0003\u000f\u0007\u0000\u0e3c"+ + "\u01bc\u0001\u0000\u0000\u0000\u0e3d\u0e3e\u0003\u000f\u0007\u0000\u0e3e"+ + "\u0e3f\u0003\u0007\u0003\u0000\u0e3f\u0e40\u0003\u000b\u0005\u0000\u0e40"+ + "\u0e41\u0003\u0015\n\u0000\u0e41\u01be\u0001\u0000\u0000\u0000\u0e42\u0e43"+ + "\u0003\u000f\u0007\u0000\u0e43\u0e44\u0003\u001d\u000e\u0000\u0e44\u0e45"+ + "\u0003\u000f\u0007\u0000\u0e45\u0e46\u0003\u001f\u000f\u0000\u0e46\u0e47"+ + "\u0003\u000f\u0007\u0000\u0e47\u0e48\u0003!\u0010\u0000\u0e48\u0e49\u0003"+ + "-\u0016\u0000\u0e49\u01c0\u0001\u0000\u0000\u0000\u0e4a\u0e4b\u0003\u000f"+ + "\u0007\u0000\u0e4b\u0e4c\u0003\u001d\u000e\u0000\u0e4c\u0e4d\u0003+\u0015"+ + "\u0000\u0e4d\u0e4e\u0003\u000f\u0007\u0000\u0e4e\u01c2\u0001\u0000\u0000"+ + "\u0000\u0e4f\u0e50\u0003\u000f\u0007\u0000\u0e50\u0e51\u0003!\u0010\u0000"+ + "\u0e51\u0e52\u0003\u0007\u0003\u0000\u0e52\u0e53\u0003\t\u0004\u0000\u0e53"+ + "\u0e54\u0003\u001d\u000e\u0000\u0e54\u0e55\u0003\u000f\u0007\u0000\u0e55"+ + "\u01c4\u0001\u0000\u0000\u0000\u0e56\u0e57\u0003\u000f\u0007\u0000\u0e57"+ + "\u0e58\u0003!\u0010\u0000\u0e58\u0e59\u0003\u000b\u0005\u0000\u0e59\u0e5a"+ + "\u0003#\u0011\u0000\u0e5a\u0e5b\u0003\r\u0006\u0000\u0e5b\u0e5c\u0003"+ + "\u0017\u000b\u0000\u0e5c\u0e5d\u0003!\u0010\u0000\u0e5d\u0e5e\u0003\u0013"+ + "\t\u0000\u0e5e\u01c6\u0001\u0000\u0000\u0000\u0e5f\u0e60\u0003\u000f\u0007"+ + "\u0000\u0e60\u0e61\u0003!\u0010\u0000\u0e61\u0e62\u0003\u000b\u0005\u0000"+ + "\u0e62\u0e63\u0003)\u0014\u0000\u0e63\u0e64\u00037\u001b\u0000\u0e64\u0e65"+ + "\u0003%\u0012\u0000\u0e65\u0e66\u0003-\u0016\u0000\u0e66\u0e67\u0003\u000f"+ + "\u0007\u0000\u0e67\u0e68\u0003\r\u0006\u0000\u0e68\u01c8\u0001\u0000\u0000"+ + "\u0000\u0e69\u0e6a\u0003\u000f\u0007\u0000\u0e6a\u0e6b\u0003!\u0010\u0000"+ + "\u0e6b\u0e6c\u0003\r\u0006\u0000\u0e6c\u01ca\u0001\u0000\u0000\u0000\u0e6d"+ + "\u0e6e\u0003\u000f\u0007\u0000\u0e6e\u0e6f\u0003!\u0010\u0000\u0e6f\u0e70"+ + "\u0003\r\u0006\u0000\u0e70\u0e71\u0005-\u0000\u0000\u0e71\u0e72\u0003"+ + "\u000f\u0007\u0000\u0e72\u0e73\u00035\u001a\u0000\u0e73\u0e74\u0003\u000f"+ + "\u0007\u0000\u0e74\u0e75\u0003\u000b\u0005\u0000\u0e75\u01cc\u0001\u0000"+ + "\u0000\u0000\u0e76\u0e77\u0003\u000f\u0007\u0000\u0e77\u0e78\u0003\'\u0013"+ + "\u0000\u0e78\u0e79\u0003/\u0017\u0000\u0e79\u0e7a\u0003\u0007\u0003\u0000"+ + "\u0e7a\u0e7b\u0003\u001d\u000e\u0000\u0e7b\u0e7c\u0003+\u0015\u0000\u0e7c"+ + "\u01ce\u0001\u0000\u0000\u0000\u0e7d\u0e7e\u0003\u000f\u0007\u0000\u0e7e"+ + "\u0e7f\u0003+\u0015\u0000\u0e7f\u0e80\u0003\u000b\u0005\u0000\u0e80\u0e81"+ + "\u0003\u0007\u0003\u0000\u0e81\u0e82\u0003%\u0012\u0000\u0e82\u0e83\u0003"+ + "\u000f\u0007\u0000\u0e83\u01d0\u0001\u0000\u0000\u0000\u0e84\u0e85\u0003"+ + "\u000f\u0007\u0000\u0e85\u0e86\u00031\u0018\u0000\u0e86\u0e87\u0003\u000f"+ + "\u0007\u0000\u0e87\u0e88\u0003)\u0014\u0000\u0e88\u0e89\u00037\u001b\u0000"+ + "\u0e89\u01d2\u0001\u0000\u0000\u0000\u0e8a\u0e8b\u0003\u000f\u0007\u0000"+ + "\u0e8b\u0e8c\u00035\u001a\u0000\u0e8c\u0e8d\u0003\u000b\u0005\u0000\u0e8d"+ + "\u0e8e\u0003\u000f\u0007\u0000\u0e8e\u0e8f\u0003%\u0012\u0000\u0e8f\u0e90"+ + "\u0003-\u0016\u0000\u0e90\u01d4\u0001\u0000\u0000\u0000\u0e91\u0e92\u0003"+ + "\u000f\u0007\u0000\u0e92\u0e93\u00035\u001a\u0000\u0e93\u0e94\u0003\u000b"+ + "\u0005\u0000\u0e94\u0e95\u0003\u000f\u0007\u0000\u0e95\u0e96\u0003%\u0012"+ + "\u0000\u0e96\u0e97\u0003-\u0016\u0000\u0e97\u0e98\u0003\u0017\u000b\u0000"+ + "\u0e98\u0e99\u0003#\u0011\u0000\u0e99\u0e9a\u0003!\u0010\u0000\u0e9a\u01d6"+ + "\u0001\u0000\u0000\u0000\u0e9b\u0e9c\u0003\u000f\u0007\u0000\u0e9c\u0e9d"+ + "\u00035\u001a\u0000\u0e9d\u0e9e\u0003\u000b\u0005\u0000\u0e9e\u0e9f\u0003"+ + "\u001d\u000e\u0000\u0e9f\u0ea0\u0003/\u0017\u0000\u0ea0\u0ea1\u0003\r"+ + "\u0006\u0000\u0ea1\u0ea2\u0003\u000f\u0007\u0000\u0ea2\u01d8\u0001\u0000"+ + "\u0000\u0000\u0ea3\u0ea4\u0003\u000f\u0007\u0000\u0ea4\u0ea5\u00035\u001a"+ + "\u0000\u0ea5\u0ea6\u0003\u000b\u0005\u0000\u0ea6\u0ea7\u0003\u001d\u000e"+ + "\u0000\u0ea7\u0ea8\u0003/\u0017\u0000\u0ea8\u0ea9\u0003\r\u0006\u0000"+ + "\u0ea9\u0eaa\u0003\u0017\u000b\u0000\u0eaa\u0eab\u0003!\u0010\u0000\u0eab"+ + "\u0eac\u0003\u0013\t\u0000\u0eac\u01da\u0001\u0000\u0000\u0000\u0ead\u0eae"+ + "\u0003\u000f\u0007\u0000\u0eae\u0eaf\u00035\u001a\u0000\u0eaf\u0eb0\u0003"+ + "\u000b\u0005\u0000\u0eb0\u0eb1\u0003\u001d\u000e\u0000\u0eb1\u0eb2\u0003"+ + "/\u0017\u0000\u0eb2\u0eb3\u0003+\u0015\u0000\u0eb3\u0eb4\u0003\u0017\u000b"+ + "\u0000\u0eb4\u0eb5\u00031\u0018\u0000\u0eb5\u0eb6\u0003\u000f\u0007\u0000"+ + "\u0eb6\u01dc\u0001\u0000\u0000\u0000\u0eb7\u0eb8\u0003\u000f\u0007\u0000"+ + "\u0eb8\u0eb9\u00035\u001a\u0000\u0eb9\u0eba\u0003\u000f\u0007\u0000\u0eba"+ + "\u0ebb\u0003\u000b\u0005\u0000\u0ebb\u01de\u0001\u0000\u0000\u0000\u0ebc"+ + "\u0ebd\u0003\u000f\u0007\u0000\u0ebd\u0ebe\u00035\u001a\u0000\u0ebe\u0ebf"+ + "\u0003\u000f\u0007\u0000\u0ebf\u0ec0\u0003\u000b\u0005\u0000\u0ec0\u0ec1"+ + "\u0003/\u0017\u0000\u0ec1\u0ec2\u0003-\u0016\u0000\u0ec2\u0ec3\u0003\u000f"+ + "\u0007\u0000\u0ec3\u01e0\u0001\u0000\u0000\u0000\u0ec4\u0ec5\u0003\u000f"+ + "\u0007\u0000\u0ec5\u0ec6\u00035\u001a\u0000\u0ec6\u0ec7\u0003\u0017\u000b"+ + "\u0000\u0ec7\u0ec8\u0003+\u0015\u0000\u0ec8\u0ec9\u0003-\u0016\u0000\u0ec9"+ + "\u0eca\u0003\u0017\u000b\u0000\u0eca\u0ecb\u0003!\u0010\u0000\u0ecb\u0ecc"+ + "\u0003\u0013\t\u0000\u0ecc\u01e2\u0001\u0000\u0000\u0000\u0ecd\u0ece\u0003"+ + "\u000f\u0007\u0000\u0ece\u0ecf\u00035\u001a\u0000\u0ecf\u0ed0\u0003\u0017"+ + "\u000b\u0000\u0ed0\u0ed1\u0003+\u0015\u0000\u0ed1\u0ed2\u0003-\u0016\u0000"+ + "\u0ed2\u0ed3\u0003+\u0015\u0000\u0ed3\u01e4\u0001\u0000\u0000\u0000\u0ed4"+ + "\u0ed5\u0003\u000f\u0007\u0000\u0ed5\u0ed6\u00035\u001a\u0000\u0ed6\u0ed7"+ + "\u0003%\u0012\u0000\u0ed7\u01e6\u0001\u0000\u0000\u0000\u0ed8\u0ed9\u0003"+ + "\u000f\u0007\u0000\u0ed9\u0eda\u00035\u001a\u0000\u0eda\u0edb\u0003%\u0012"+ + "\u0000\u0edb\u0edc\u0003\u001d\u000e\u0000\u0edc\u0edd\u0003\u0007\u0003"+ + "\u0000\u0edd\u0ede\u0003\u0017\u000b\u0000\u0ede\u0edf\u0003!\u0010\u0000"+ + "\u0edf\u01e8\u0001\u0000\u0000\u0000\u0ee0\u0ee1\u0003\u000f\u0007\u0000"+ + "\u0ee1\u0ee2\u00035\u001a\u0000\u0ee2\u0ee3\u0003-\u0016\u0000\u0ee3\u0ee4"+ + "\u0003\u000f\u0007\u0000\u0ee4\u0ee5\u0003!\u0010\u0000\u0ee5\u0ee6\u0003"+ + "\r\u0006\u0000\u0ee6\u0ee7\u0003\u000f\u0007\u0000\u0ee7\u0ee8\u0003\r"+ + "\u0006\u0000\u0ee8\u01ea\u0001\u0000\u0000\u0000\u0ee9\u0eea\u0003\u000f"+ + "\u0007\u0000\u0eea\u0eeb\u00035\u001a\u0000\u0eeb\u0eec\u0003-\u0016\u0000"+ + "\u0eec\u0eed\u0003\u000f\u0007\u0000\u0eed\u0eee\u0003!\u0010\u0000\u0eee"+ + "\u0eef\u0003+\u0015\u0000\u0eef\u0ef0\u0003\u0017\u000b\u0000\u0ef0\u0ef1"+ + "\u0003#\u0011\u0000\u0ef1\u0ef2\u0003!\u0010\u0000\u0ef2\u01ec\u0001\u0000"+ + "\u0000\u0000\u0ef3\u0ef4\u0003\u000f\u0007\u0000\u0ef4\u0ef5\u00035\u001a"+ + "\u0000\u0ef5\u0ef6\u0003-\u0016\u0000\u0ef6\u0ef7\u0003\u000f\u0007\u0000"+ + "\u0ef7\u0ef8\u0003)\u0014\u0000\u0ef8\u0ef9\u0003!\u0010\u0000\u0ef9\u0efa"+ + "\u0003\u0007\u0003\u0000\u0efa\u0efb\u0003\u001d\u000e\u0000\u0efb\u01ee"+ + "\u0001\u0000\u0000\u0000\u0efc\u0efd\u0003\u000f\u0007\u0000\u0efd\u0efe"+ + "\u00035\u001a\u0000\u0efe\u0eff\u0003-\u0016\u0000\u0eff\u0f00\u0003)"+ + "\u0014\u0000\u0f00\u0f01\u0003\u0007\u0003\u0000\u0f01\u0f02\u0003\u000b"+ + "\u0005\u0000\u0f02\u0f03\u0003-\u0016\u0000\u0f03\u01f0\u0001\u0000\u0000"+ + "\u0000\u0f04\u0f05\u0003\u0011\b\u0000\u0f05\u0f06\u0003\u0007\u0003\u0000"+ + "\u0f06\u0f07\u0003\u001d\u000e\u0000\u0f07\u0f08\u0003+\u0015\u0000\u0f08"+ + "\u0f09\u0003\u000f\u0007\u0000\u0f09\u01f2\u0001\u0000\u0000\u0000\u0f0a"+ + "\u0f0b\u0003\u0011\b\u0000\u0f0b\u0f0c\u0003\u000f\u0007\u0000\u0f0c\u0f0d"+ + "\u0003-\u0016\u0000\u0f0d\u0f0e\u0003\u000b\u0005\u0000\u0f0e\u0f0f\u0003"+ + "\u0015\n\u0000\u0f0f\u01f4\u0001\u0000\u0000\u0000\u0f10\u0f11\u0003\u0011"+ + "\b\u0000\u0f11\u0f12\u0003\u0017\u000b\u0000\u0f12\u0f13\u0003\u000f\u0007"+ + "\u0000\u0f13\u0f14\u0003\u001d\u000e\u0000\u0f14\u0f15\u0003\r\u0006\u0000"+ + "\u0f15\u0f16\u0003+\u0015\u0000\u0f16\u01f6\u0001\u0000\u0000\u0000\u0f17"+ + "\u0f18\u0003\u0011\b\u0000\u0f18\u0f19\u0003\u0017\u000b\u0000\u0f19\u0f1a"+ + "\u0003\u001d\u000e\u0000\u0f1a\u0f1b\u0003-\u0016\u0000\u0f1b\u0f1c\u0003"+ + "\u000f\u0007\u0000\u0f1c\u0f1d\u0003)\u0014\u0000\u0f1d\u01f8\u0001\u0000"+ + "\u0000\u0000\u0f1e\u0f1f\u0003\u0011\b\u0000\u0f1f\u0f20\u0003\u0017\u000b"+ + "\u0000\u0f20\u0f21\u0003!\u0010\u0000\u0f21\u0f22\u0003\u0007\u0003\u0000"+ + "\u0f22\u0f23\u0003\u001d\u000e\u0000\u0f23\u01fa\u0001\u0000\u0000\u0000"+ + "\u0f24\u0f25\u0003\u0011\b\u0000\u0f25\u0f26\u0003\u0017\u000b\u0000\u0f26"+ + "\u0f27\u0003)\u0014\u0000\u0f27\u0f28\u0003+\u0015\u0000\u0f28\u0f29\u0003"+ + "-\u0016\u0000\u0f29\u01fc\u0001\u0000\u0000\u0000\u0f2a\u0f2b\u0003\u0011"+ + "\b\u0000\u0f2b\u0f2c\u0003\u001d\u000e\u0000\u0f2c\u0f2d\u0003#\u0011"+ + "\u0000\u0f2d\u0f2e\u0003\u0007\u0003\u0000\u0f2e\u0f2f\u0003-\u0016\u0000"+ + "\u0f2f\u01fe\u0001\u0000\u0000\u0000\u0f30\u0f31\u0003\u0011\b\u0000\u0f31"+ + "\u0f32\u0003\u001d\u000e\u0000\u0f32\u0f33\u0003#\u0011\u0000\u0f33\u0f34"+ + "\u0003#\u0011\u0000\u0f34\u0f35\u0003)\u0014\u0000\u0f35\u0200\u0001\u0000"+ + "\u0000\u0000\u0f36\u0f37\u0003\u0011\b\u0000\u0f37\u0f38\u0003#\u0011"+ + "\u0000\u0f38\u0f39\u0003\u001d\u000e\u0000\u0f39\u0f3a\u0003\u001d\u000e"+ + "\u0000\u0f3a\u0f3b\u0003#\u0011\u0000\u0f3b\u0f3c\u00033\u0019\u0000\u0f3c"+ + "\u0f3d\u0003\u0017\u000b\u0000\u0f3d\u0f3e\u0003!\u0010\u0000\u0f3e\u0f3f"+ + "\u0003\u0013\t\u0000\u0f3f\u0202\u0001\u0000\u0000\u0000\u0f40\u0f41\u0003"+ + "\u0011\b\u0000\u0f41\u0f42\u0003#\u0011\u0000\u0f42\u0f43\u0003)\u0014"+ + "\u0000\u0f43\u0204\u0001\u0000\u0000\u0000\u0f44\u0f45\u0003\u0011\b\u0000"+ + "\u0f45\u0f46\u0003#\u0011\u0000\u0f46\u0f47\u0003)\u0014\u0000\u0f47\u0f48"+ + "\u0003\u000b\u0005\u0000\u0f48\u0f49\u0003\u000f\u0007\u0000\u0f49\u0206"+ + "\u0001\u0000\u0000\u0000\u0f4a\u0f4b\u0003\u0011\b\u0000\u0f4b\u0f4c\u0003"+ + "#\u0011\u0000\u0f4c\u0f4d\u0003)\u0014\u0000\u0f4d\u0f4e\u0003\u000f\u0007"+ + "\u0000\u0f4e\u0f4f\u0003\u0017\u000b\u0000\u0f4f\u0f50\u0003\u0013\t\u0000"+ + "\u0f50\u0f51\u0003!\u0010\u0000\u0f51\u0208\u0001\u0000\u0000\u0000\u0f52"+ + "\u0f53\u0003\u0011\b\u0000\u0f53\u0f54\u0003#\u0011\u0000\u0f54\u0f55"+ + "\u0003)\u0014\u0000\u0f55\u0f56\u0003\u001f\u000f\u0000\u0f56\u0f57\u0003"+ + "\u0007\u0003\u0000\u0f57\u0f58\u0003-\u0016\u0000\u0f58\u020a\u0001\u0000"+ + "\u0000\u0000\u0f59\u0f5a\u0003\u0011\b\u0000\u0f5a\u0f5b\u0003#\u0011"+ + "\u0000\u0f5b\u0f5c\u0003)\u0014\u0000\u0f5c\u0f5d\u0003-\u0016\u0000\u0f5d"+ + "\u0f5e\u0003)\u0014\u0000\u0f5e\u0f5f\u0003\u0007\u0003\u0000\u0f5f\u0f60"+ + "\u0003!\u0010\u0000\u0f60\u020c\u0001\u0000\u0000\u0000\u0f61\u0f62\u0003"+ + "\u0011\b\u0000\u0f62\u0f63\u0003#\u0011\u0000\u0f63\u0f64\u0003)\u0014"+ + "\u0000\u0f64\u0f65\u00033\u0019\u0000\u0f65\u0f66\u0003\u0007\u0003\u0000"+ + "\u0f66\u0f67\u0003)\u0014\u0000\u0f67\u0f68\u0003\r\u0006\u0000\u0f68"+ + "\u020e\u0001\u0000\u0000\u0000\u0f69\u0f6a\u0003\u0011\b\u0000\u0f6a\u0f6b"+ + "\u0003#\u0011\u0000\u0f6b\u0f6c\u0003/\u0017\u0000\u0f6c\u0f6d\u0003!"+ + "\u0010\u0000\u0f6d\u0f6e\u0003\r\u0006\u0000\u0f6e\u0210\u0001\u0000\u0000"+ + "\u0000\u0f6f\u0f70\u0003\u0011\b\u0000\u0f70\u0f71\u0003)\u0014\u0000"+ + "\u0f71\u0f72\u0003\u000f\u0007\u0000\u0f72\u0f73\u0003\u000f\u0007\u0000"+ + "\u0f73\u0212\u0001\u0000\u0000\u0000\u0f74\u0f75\u0003\u0011\b\u0000\u0f75"+ + "\u0f76\u0003)\u0014\u0000\u0f76\u0f77\u0003\u000f\u0007\u0000\u0f77\u0f78"+ + "\u0003\u000f\u0007\u0000\u0f78\u0f79\u00039\u001c\u0000\u0f79\u0f7a\u0003"+ + "\u000f\u0007\u0000\u0f7a\u0214\u0001\u0000\u0000\u0000\u0f7b\u0f7c\u0003"+ + "\u0011\b\u0000\u0f7c\u0f7d\u0003)\u0014\u0000\u0f7d\u0f7e\u0003#\u0011"+ + "\u0000\u0f7e\u0f7f\u0003\u001f\u000f\u0000\u0f7f\u0216\u0001\u0000\u0000"+ + "\u0000\u0f80\u0f81\u0003\u0011\b\u0000\u0f81\u0f82\u0003/\u0017\u0000"+ + "\u0f82\u0f83\u0003\u001d\u000e\u0000\u0f83\u0f84\u0003\u001d\u000e\u0000"+ + "\u0f84\u0218\u0001\u0000\u0000\u0000\u0f85\u0f86\u0003\u0011\b\u0000\u0f86"+ + "\u0f87\u0003/\u0017\u0000\u0f87\u0f88\u0003!\u0010\u0000\u0f88\u0f89\u0003"+ + "\u000b\u0005\u0000\u0f89\u0f8a\u0003-\u0016\u0000\u0f8a\u0f8b\u0003\u0017"+ + "\u000b\u0000\u0f8b\u0f8c\u0003#\u0011\u0000\u0f8c\u0f8d\u0003!\u0010\u0000"+ + "\u0f8d\u021a\u0001\u0000\u0000\u0000\u0f8e\u0f8f\u0003\u0011\b\u0000\u0f8f"+ + "\u0f90\u0003/\u0017\u0000\u0f90\u0f91\u0003+\u0015\u0000\u0f91\u0f92\u0003"+ + "\u0017\u000b\u0000\u0f92\u0f93\u0003#\u0011\u0000\u0f93\u0f94\u0003!\u0010"+ + "\u0000\u0f94\u021c\u0001\u0000\u0000\u0000\u0f95\u0f96\u0003\u0013\t\u0000"+ + "\u0f96\u021e\u0001\u0000\u0000\u0000\u0f97\u0f98\u0003\u0013\t\u0000\u0f98"+ + "\u0f99\u0003\u000f\u0007\u0000\u0f99\u0f9a\u0003!\u0010\u0000\u0f9a\u0f9b"+ + "\u0003\u000f\u0007\u0000\u0f9b\u0f9c\u0003)\u0014\u0000\u0f9c\u0f9d\u0003"+ + "\u0007\u0003\u0000\u0f9d\u0f9e\u0003\u001d\u000e\u0000\u0f9e\u0220\u0001"+ + "\u0000\u0000\u0000\u0f9f\u0fa0\u0003\u0013\t\u0000\u0fa0\u0fa1\u0003\u000f"+ + "\u0007\u0000\u0fa1\u0fa2\u0003!\u0010\u0000\u0fa2\u0fa3\u0003\u000f\u0007"+ + "\u0000\u0fa3\u0fa4\u0003)\u0014\u0000\u0fa4\u0fa5\u0003\u0007\u0003\u0000"+ + "\u0fa5\u0fa6\u0003-\u0016\u0000\u0fa6\u0fa7\u0003\u000f\u0007\u0000\u0fa7"+ + "\u0fa8\u0003\r\u0006\u0000\u0fa8\u0222\u0001\u0000\u0000\u0000\u0fa9\u0faa"+ + "\u0003\u0013\t\u0000\u0faa\u0fab\u0003\u000f\u0007\u0000\u0fab\u0fac\u0003"+ + "-\u0016\u0000\u0fac\u0224\u0001\u0000\u0000\u0000\u0fad\u0fae\u0003\u0013"+ + "\t\u0000\u0fae\u0faf\u0003\u001d\u000e\u0000\u0faf\u0fb0\u0003#\u0011"+ + "\u0000\u0fb0\u0fb1\u0003\t\u0004\u0000\u0fb1\u0fb2\u0003\u0007\u0003\u0000"+ + "\u0fb2\u0fb3\u0003\u001d\u000e\u0000\u0fb3\u0226\u0001\u0000\u0000\u0000"+ + "\u0fb4\u0fb5\u0003\u0013\t\u0000\u0fb5\u0fb6\u0003#\u0011\u0000\u0fb6"+ + "\u0228\u0001\u0000\u0000\u0000\u0fb7\u0fb8\u0003\u0013\t\u0000\u0fb8\u0fb9"+ + "\u0003#\u0011\u0000\u0fb9\u0fba\u0003-\u0016\u0000\u0fba\u0fbb\u0003#"+ + "\u0011\u0000\u0fbb\u022a\u0001\u0000\u0000\u0000\u0fbc\u0fbd\u0003\u0013"+ + "\t\u0000\u0fbd\u0fbe\u0003)\u0014\u0000\u0fbe\u0fbf\u0003\u0007\u0003"+ + "\u0000\u0fbf\u0fc0\u0003!\u0010\u0000\u0fc0\u0fc1\u0003-\u0016\u0000\u0fc1"+ + "\u022c\u0001\u0000\u0000\u0000\u0fc2\u0fc3\u0003\u0013\t\u0000\u0fc3\u0fc4"+ + "\u0003)\u0014\u0000\u0fc4\u0fc5\u0003\u0007\u0003\u0000\u0fc5\u0fc6\u0003"+ + "!\u0010\u0000\u0fc6\u0fc7\u0003-\u0016\u0000\u0fc7\u0fc8\u0003\u000f\u0007"+ + "\u0000\u0fc8\u0fc9\u0003\r\u0006\u0000\u0fc9\u022e\u0001\u0000\u0000\u0000"+ + "\u0fca\u0fcb\u0003\u0013\t\u0000\u0fcb\u0fcc\u0003)\u0014\u0000\u0fcc"+ + "\u0fcd\u0003\u000f\u0007\u0000\u0fcd\u0fce\u0003\u0007\u0003\u0000\u0fce"+ + "\u0fcf\u0003-\u0016\u0000\u0fcf\u0fd0\u0003\u000f\u0007\u0000\u0fd0\u0fd1"+ + "\u0003+\u0015\u0000\u0fd1\u0fd2\u0003-\u0016\u0000\u0fd2\u0230\u0001\u0000"+ + "\u0000\u0000\u0fd3\u0fd4\u0003\u0013\t\u0000\u0fd4\u0fd5\u0003)\u0014"+ + "\u0000\u0fd5\u0fd6\u0003#\u0011\u0000\u0fd6\u0fd7\u0003/\u0017\u0000\u0fd7"+ + "\u0fd8\u0003%\u0012\u0000\u0fd8\u0232\u0001\u0000\u0000\u0000\u0fd9\u0fda"+ + "\u0003\u0013\t\u0000\u0fda\u0fdb\u0003)\u0014\u0000\u0fdb\u0fdc\u0003"+ + "#\u0011\u0000\u0fdc\u0fdd\u0003/\u0017\u0000\u0fdd\u0fde\u0003%\u0012"+ + "\u0000\u0fde\u0fdf\u0003\u0017\u000b\u0000\u0fdf\u0fe0\u0003!\u0010\u0000"+ + "\u0fe0\u0fe1\u0003\u0013\t\u0000\u0fe1\u0234\u0001\u0000\u0000\u0000\u0fe2"+ + "\u0fe3\u0003\u0015\n\u0000\u0fe3\u0fe4\u0003\u0007\u0003\u0000\u0fe4\u0fe5"+ + "\u0003!\u0010\u0000\u0fe5\u0fe6\u0003\r\u0006\u0000\u0fe6\u0fe7\u0003"+ + "\u001d\u000e\u0000\u0fe7\u0fe8\u0003\u000f\u0007\u0000\u0fe8\u0fe9\u0003"+ + ")\u0014\u0000\u0fe9\u0236\u0001\u0000\u0000\u0000\u0fea\u0feb\u0003\u0015"+ + "\n\u0000\u0feb\u0fec\u0003\u0007\u0003\u0000\u0fec\u0fed\u00031\u0018"+ + "\u0000\u0fed\u0fee\u0003\u0017"; + private static final String _serializedATNSegment2 = + "\u000b\u0000\u0fee\u0fef\u0003!\u0010\u0000\u0fef\u0ff0\u0003\u0013\t"+ + "\u0000\u0ff0\u0238\u0001\u0000\u0000\u0000\u0ff1\u0ff2\u0003\u0015\n\u0000"+ + "\u0ff2\u0ff3\u0003\u0017\u000b\u0000\u0ff3\u0ff4\u0003\u000f\u0007\u0000"+ + "\u0ff4\u0ff5\u0003)\u0014\u0000\u0ff5\u0ff6\u0003\u0007\u0003\u0000\u0ff6"+ + "\u0ff7\u0003)\u0014\u0000\u0ff7\u0ff8\u0003\u000b\u0005\u0000\u0ff8\u0ff9"+ + "\u0003\u0015\n\u0000\u0ff9\u0ffa\u00037\u001b\u0000\u0ffa\u023a\u0001"+ + "\u0000\u0000\u0000\u0ffb\u0ffc\u0003\u0015\n\u0000\u0ffc\u0ffd\u0003#"+ + "\u0011\u0000\u0ffd\u0ffe\u0003\u001d\u000e\u0000\u0ffe\u0fff\u0003\r\u0006"+ + "\u0000\u0fff\u023c\u0001\u0000\u0000\u0000\u1000\u1001\u0003\u0015\n\u0000"+ + "\u1001\u1002\u0003#\u0011\u0000\u1002\u1003\u0003+\u0015\u0000\u1003\u1004"+ + "\u0003-\u0016\u0000\u1004\u023e\u0001\u0000\u0000\u0000\u1005\u1006\u0003"+ + "\u0015\n\u0000\u1006\u1007\u0003#\u0011\u0000\u1007\u1008\u0003/\u0017"+ + "\u0000\u1008\u1009\u0003)\u0014\u0000\u1009\u0240\u0001\u0000\u0000\u0000"+ + "\u100a\u100b\u0003\u0017\u000b\u0000\u100b\u100c\u0003\r\u0006\u0000\u100c"+ + "\u100d\u0003\u000f\u0007\u0000\u100d\u100e\u0003!\u0010\u0000\u100e\u100f"+ + "\u0003-\u0016\u0000\u100f\u1010\u0003\u0017\u000b\u0000\u1010\u1011\u0003"+ + "-\u0016\u0000\u1011\u1012\u00037\u001b\u0000\u1012\u0242\u0001\u0000\u0000"+ + "\u0000\u1013\u1014\u0003\u0017\u000b\u0000\u1014\u1015\u0003\u0013\t\u0000"+ + "\u1015\u1016\u0003!\u0010\u0000\u1016\u1017\u0003#\u0011\u0000\u1017\u1018"+ + "\u0003)\u0014\u0000\u1018\u1019\u0003\u000f\u0007\u0000\u1019\u0244\u0001"+ + "\u0000\u0000\u0000\u101a\u101b\u0003\u0017\u000b\u0000\u101b\u101c\u0003"+ + "\u001d\u000e\u0000\u101c\u101d\u0003\u0017\u000b\u0000\u101d\u101e\u0003"+ + "\u001b\r\u0000\u101e\u101f\u0003\u000f\u0007\u0000\u101f\u0246\u0001\u0000"+ + "\u0000\u0000\u1020\u1021\u0003\u0017\u000b\u0000\u1021\u1022\u0003\u001f"+ + "\u000f\u0000\u1022\u1023\u0003\u001f\u000f\u0000\u1023\u1024\u0003\u000f"+ + "\u0007\u0000\u1024\u1025\u0003\r\u0006\u0000\u1025\u1026\u0003\u0017\u000b"+ + "\u0000\u1026\u1027\u0003\u0007\u0003\u0000\u1027\u1028\u0003-\u0016\u0000"+ + "\u1028\u1029\u0003\u000f\u0007\u0000\u1029\u0248\u0001\u0000\u0000\u0000"+ + "\u102a\u102b\u0003\u0017\u000b\u0000\u102b\u102c\u0003\u001f\u000f\u0000"+ + "\u102c\u102d\u0003\u001f\u000f\u0000\u102d\u102e\u0003/\u0017\u0000\u102e"+ + "\u102f\u0003-\u0016\u0000\u102f\u1030\u0003\u0007\u0003\u0000\u1030\u1031"+ + "\u0003\t\u0004\u0000\u1031\u1032\u0003\u001d\u000e\u0000\u1032\u1033\u0003"+ + "\u000f\u0007\u0000\u1033\u024a\u0001\u0000\u0000\u0000\u1034\u1035\u0003"+ + "\u0017\u000b\u0000\u1035\u1036\u0003\u001f\u000f\u0000\u1036\u1037\u0003"+ + "%\u0012\u0000\u1037\u1038\u0003\u001d\u000e\u0000\u1038\u1039\u0003\u000f"+ + "\u0007\u0000\u1039\u103a\u0003\u001f\u000f\u0000\u103a\u103b\u0003\u000f"+ + "\u0007\u0000\u103b\u103c\u0003!\u0010\u0000\u103c\u103d\u0003-\u0016\u0000"+ + "\u103d\u103e\u0003\u0007\u0003\u0000\u103e\u103f\u0003-\u0016\u0000\u103f"+ + "\u1040\u0003\u0017\u000b\u0000\u1040\u1041\u0003#\u0011\u0000\u1041\u1042"+ + "\u0003!\u0010\u0000\u1042\u024c\u0001\u0000\u0000\u0000\u1043\u1044\u0003"+ + "\u0017\u000b\u0000\u1044\u1045\u0003\u001f\u000f\u0000\u1045\u1046\u0003"+ + "%\u0012\u0000\u1046\u1047\u0003\u001d\u000e\u0000\u1047\u1048\u0003\u0017"+ + "\u000b\u0000\u1048\u1049\u0003\u000b\u0005\u0000\u1049\u104a\u0003\u0017"+ + "\u000b\u0000\u104a\u104b\u0003-\u0016\u0000\u104b\u024e\u0001\u0000\u0000"+ + "\u0000\u104c\u104d\u0003\u0017\u000b\u0000\u104d\u104e\u0003!\u0010\u0000"+ + "\u104e\u0250\u0001\u0000\u0000\u0000\u104f\u1050\u0003\u0017\u000b\u0000"+ + "\u1050\u1051\u0003!\u0010\u0000\u1051\u1052\u0003\u000b\u0005\u0000\u1052"+ + "\u1053\u0003\u001d\u000e\u0000\u1053\u1054\u0003/\u0017\u0000\u1054\u1055"+ + "\u0003\r\u0006\u0000\u1055\u1056\u0003\u0017\u000b\u0000\u1056\u1057\u0003"+ + "!\u0010\u0000\u1057\u1058\u0003\u0013\t\u0000\u1058\u0252\u0001\u0000"+ + "\u0000\u0000\u1059\u105a\u0003\u0017\u000b\u0000\u105a\u105b\u0003!\u0010"+ + "\u0000\u105b\u105c\u0003\u000b\u0005\u0000\u105c\u105d\u0003)\u0014\u0000"+ + "\u105d\u105e\u0003\u000f\u0007\u0000\u105e\u105f\u0003\u001f\u000f\u0000"+ + "\u105f\u1060\u0003\u000f\u0007\u0000\u1060\u1061\u0003!\u0010\u0000\u1061"+ + "\u1062\u0003-\u0016\u0000\u1062\u0254\u0001\u0000\u0000\u0000\u1063\u1064"+ + "\u0003\u0017\u000b\u0000\u1064\u1065\u0003!\u0010\u0000\u1065\u1066\u0003"+ + "\r\u0006\u0000\u1066\u1067\u0003\u000f\u0007\u0000\u1067\u1068\u00035"+ + "\u001a\u0000\u1068\u0256\u0001\u0000\u0000\u0000\u1069\u106a\u0003\u0017"+ + "\u000b\u0000\u106a\u106b\u0003!\u0010\u0000\u106b\u106c\u0003\r\u0006"+ + "\u0000\u106c\u106d\u0003\u0017\u000b\u0000\u106d\u106e\u0003\u000b\u0005"+ + "\u0000\u106e\u106f\u0003\u0007\u0003\u0000\u106f\u1070\u0003-\u0016\u0000"+ + "\u1070\u1071\u0003#\u0011\u0000\u1071\u1072\u0003)\u0014\u0000\u1072\u0258"+ + "\u0001\u0000\u0000\u0000\u1073\u1074\u0003\u0017\u000b\u0000\u1074\u1075"+ + "\u0003!\u0010\u0000\u1075\u1076\u0003\u0011\b\u0000\u1076\u1077\u0003"+ + "\u0017\u000b\u0000\u1077\u1078\u00035\u001a\u0000\u1078\u025a\u0001\u0000"+ + "\u0000\u0000\u1079\u107a\u0003\u0017\u000b\u0000\u107a\u107b\u0003!\u0010"+ + "\u0000\u107b\u107c\u0003\u0015\n\u0000\u107c\u107d\u0003\u000f\u0007\u0000"+ + "\u107d\u107e\u0003)\u0014\u0000\u107e\u107f\u0003\u0017\u000b\u0000\u107f"+ + "\u1080\u0003-\u0016\u0000\u1080\u1081\u0003+\u0015\u0000\u1081\u025c\u0001"+ + "\u0000\u0000\u0000\u1082\u1083\u0003\u0017\u000b\u0000\u1083\u1084\u0003"+ + "!\u0010\u0000\u1084\u1085\u0003\u0017\u000b\u0000\u1085\u1086\u0003-\u0016"+ + "\u0000\u1086\u1087\u0003\u0017\u000b\u0000\u1087\u1088\u0003\u0007\u0003"+ + "\u0000\u1088\u1089\u0003\u001d\u000e\u0000\u1089\u108a\u0003\u0017\u000b"+ + "\u0000\u108a\u108b\u00039\u001c\u0000\u108b\u108c\u0003\u000f\u0007\u0000"+ + "\u108c\u025e\u0001\u0000\u0000\u0000\u108d\u108e\u0003\u0017\u000b\u0000"+ + "\u108e\u108f\u0003!\u0010\u0000\u108f\u1090\u0003\u0017\u000b\u0000\u1090"+ + "\u1091\u0003-\u0016\u0000\u1091\u1092\u0003\u0017\u000b\u0000\u1092\u1093"+ + "\u0003\u0007\u0003\u0000\u1093\u1094\u0003\u001d\u000e\u0000\u1094\u1095"+ + "\u0003\u001d\u000e\u0000\u1095\u1096\u00037\u001b\u0000\u1096\u0260\u0001"+ + "\u0000\u0000\u0000\u1097\u1098\u0003\u0017\u000b\u0000\u1098\u1099\u0003"+ + "!\u0010\u0000\u1099\u109a\u0003!\u0010\u0000\u109a\u109b\u0003\u000f\u0007"+ + "\u0000\u109b\u109c\u0003)\u0014\u0000\u109c\u0262\u0001\u0000\u0000\u0000"+ + "\u109d\u109e\u0003\u0017\u000b\u0000\u109e\u109f\u0003!\u0010\u0000\u109f"+ + "\u10a0\u0003#\u0011\u0000\u10a0\u10a1\u0003/\u0017\u0000\u10a1\u10a2\u0003"+ + "-\u0016\u0000\u10a2\u0264\u0001\u0000\u0000\u0000\u10a3\u10a4\u0003\u0017"+ + "\u000b\u0000\u10a4\u10a5\u0003!\u0010\u0000\u10a5\u10a6\u0003%\u0012\u0000"+ + "\u10a6\u10a7\u0003/\u0017\u0000\u10a7\u10a8\u0003-\u0016\u0000\u10a8\u0266"+ + "\u0001\u0000\u0000\u0000\u10a9\u10aa\u0003\u0017\u000b\u0000\u10aa\u10ab"+ + "\u0003!\u0010\u0000\u10ab\u10ac\u0003+\u0015\u0000\u10ac\u10ad\u0003\u000f"+ + "\u0007\u0000\u10ad\u10ae\u0003!\u0010\u0000\u10ae\u10af\u0003+\u0015\u0000"+ + "\u10af\u10b0\u0003\u0017\u000b\u0000\u10b0\u10b1\u0003-\u0016\u0000\u10b1"+ + "\u10b2\u0003\u0017\u000b\u0000\u10b2\u10b3\u00031\u0018\u0000\u10b3\u10b4"+ + "\u0003\u000f\u0007\u0000\u10b4\u0268\u0001\u0000\u0000\u0000\u10b5\u10b6"+ + "\u0003\u0017\u000b\u0000\u10b6\u10b7\u0003!\u0010\u0000\u10b7\u10b8\u0003"+ + "+\u0015\u0000\u10b8\u10b9\u0003\u000f\u0007\u0000\u10b9\u10ba\u0003)\u0014"+ + "\u0000\u10ba\u10bb\u0003-\u0016\u0000\u10bb\u026a\u0001\u0000\u0000\u0000"+ + "\u10bc\u10bd\u0003\u0017\u000b\u0000\u10bd\u10be\u0003!\u0010\u0000\u10be"+ + "\u10bf\u0003+\u0015\u0000\u10bf\u10c0\u0003-\u0016\u0000\u10c0\u10c1\u0003"+ + "\u0007\u0003\u0000\u10c1\u10c2\u0003!\u0010\u0000\u10c2\u10c3\u0003\u000b"+ + "\u0005\u0000\u10c3\u10c4\u0003\u000f\u0007\u0000\u10c4\u026c\u0001\u0000"+ + "\u0000\u0000\u10c5\u10c6\u0003\u0017\u000b\u0000\u10c6\u10c7\u0003!\u0010"+ + "\u0000\u10c7\u10c8\u0003+\u0015\u0000\u10c8\u10c9\u0003-\u0016\u0000\u10c9"+ + "\u10ca\u0003\u0007\u0003\u0000\u10ca\u10cb\u0003!\u0010\u0000\u10cb\u10cc"+ + "\u0003-\u0016\u0000\u10cc\u10cd\u0003\u0017\u000b\u0000\u10cd\u10ce\u0003"+ + "\u0007\u0003\u0000\u10ce\u10cf\u0003\t\u0004\u0000\u10cf\u10d0\u0003\u001d"+ + "\u000e\u0000\u10d0\u10d1\u0003\u000f\u0007\u0000\u10d1\u026e\u0001\u0000"+ + "\u0000\u0000\u10d2\u10d3\u0003\u0017\u000b\u0000\u10d3\u10d4\u0003!\u0010"+ + "\u0000\u10d4\u10d5\u0003+\u0015\u0000\u10d5\u10d6\u0003-\u0016\u0000\u10d6"+ + "\u10d7\u0003\u000f\u0007\u0000\u10d7\u10d8\u0003\u0007\u0003\u0000\u10d8"+ + "\u10d9\u0003\r\u0006\u0000\u10d9\u0270\u0001\u0000\u0000\u0000\u10da\u10db"+ + "\u0003\u0017\u000b\u0000\u10db\u10dc\u0003!\u0010\u0000\u10dc\u10dd\u0003"+ + "-\u0016\u0000\u10dd\u0272\u0001\u0000\u0000\u0000\u10de\u10df\u0003\u0017"+ + "\u000b\u0000\u10df\u10e0\u0003!\u0010\u0000\u10e0\u10e1\u0003-\u0016\u0000"+ + "\u10e1\u10e2\u0003\u000f\u0007\u0000\u10e2\u10e3\u0003\u0013\t\u0000\u10e3"+ + "\u10e4\u0003\u000f\u0007\u0000\u10e4\u10e5\u0003)\u0014\u0000\u10e5\u0274"+ + "\u0001\u0000\u0000\u0000\u10e6\u10e7\u0003\u0017\u000b\u0000\u10e7\u10e8"+ + "\u0003!\u0010\u0000\u10e8\u10e9\u0003-\u0016\u0000\u10e9\u10ea\u0003\u000f"+ + "\u0007\u0000\u10ea\u10eb\u0003)\u0014\u0000\u10eb\u10ec\u0003+\u0015\u0000"+ + "\u10ec\u10ed\u0003\u000f\u0007\u0000\u10ed\u10ee\u0003\u000b\u0005\u0000"+ + "\u10ee\u10ef\u0003-\u0016\u0000\u10ef\u0276\u0001\u0000\u0000\u0000\u10f0"+ + "\u10f1\u0003\u0017\u000b\u0000\u10f1\u10f2\u0003!\u0010\u0000\u10f2\u10f3"+ + "\u0003-\u0016\u0000\u10f3\u10f4\u0003\u000f\u0007\u0000\u10f4\u10f5\u0003"+ + ")\u0014\u0000\u10f5\u10f6\u0003+\u0015\u0000\u10f6\u10f7\u0003\u000f\u0007"+ + "\u0000\u10f7\u10f8\u0003\u000b\u0005\u0000\u10f8\u10f9\u0003-\u0016\u0000"+ + "\u10f9\u10fa\u0003\u0017\u000b\u0000\u10fa\u10fb\u0003#\u0011\u0000\u10fb"+ + "\u10fc\u0003!\u0010\u0000\u10fc\u0278\u0001\u0000\u0000\u0000\u10fd\u10fe"+ + "\u0003\u0017\u000b\u0000\u10fe\u10ff\u0003!\u0010\u0000\u10ff\u1100\u0003"+ + "-\u0016\u0000\u1100\u1101\u0003\u000f\u0007\u0000\u1101\u1102\u0003)\u0014"+ + "\u0000\u1102\u1103\u00031\u0018\u0000\u1103\u1104\u0003\u0007\u0003\u0000"+ + "\u1104\u1105\u0003\u001d\u000e\u0000\u1105\u027a\u0001\u0000\u0000\u0000"+ + "\u1106\u1107\u0003\u0017\u000b\u0000\u1107\u1108\u0003!\u0010\u0000\u1108"+ + "\u1109\u0003-\u0016\u0000\u1109\u110a\u0003#\u0011\u0000\u110a\u027c\u0001"+ + "\u0000\u0000\u0000\u110b\u110c\u0003\u0017\u000b\u0000\u110c\u110d\u0003"+ + "!\u0010\u0000\u110d\u110e\u00031\u0018\u0000\u110e\u110f\u0003#\u0011"+ + "\u0000\u110f\u1110\u0003\u001b\r\u0000\u1110\u1111\u0003\u000f\u0007\u0000"+ + "\u1111\u1112\u0003)\u0014\u0000\u1112\u027e\u0001\u0000\u0000\u0000\u1113"+ + "\u1114\u0003\u0017\u000b\u0000\u1114\u1115\u0003+\u0015\u0000\u1115\u0280"+ + "\u0001\u0000\u0000\u0000\u1116\u1117\u0003\u0017\u000b\u0000\u1117\u1118"+ + "\u0003+\u0015\u0000\u1118\u1119\u0003#\u0011\u0000\u1119\u111a\u0003\u001d"+ + "\u000e\u0000\u111a\u111b\u0003\u0007\u0003\u0000\u111b\u111c\u0003-\u0016"+ + "\u0000\u111c\u111d\u0003\u0017\u000b\u0000\u111d\u111e\u0003#\u0011\u0000"+ + "\u111e\u111f\u0003!\u0010\u0000\u111f\u0282\u0001\u0000\u0000\u0000\u1120"+ + "\u1121\u0003\u0017\u000b\u0000\u1121\u1122\u0003-\u0016\u0000\u1122\u1123"+ + "\u0003\u000f\u0007\u0000\u1123\u1124\u0003)\u0014\u0000\u1124\u1125\u0003"+ + "\u0007\u0003\u0000\u1125\u1126\u0003-\u0016\u0000\u1126\u1127\u0003\u000f"+ + "\u0007\u0000\u1127\u0284\u0001\u0000\u0000\u0000\u1128\u1129\u0003\u0019"+ + "\f\u0000\u1129\u112a\u0003#\u0011\u0000\u112a\u112b\u0003\u0017\u000b"+ + "\u0000\u112b\u112c\u0003!\u0010\u0000\u112c\u0286\u0001\u0000\u0000\u0000"+ + "\u112d\u112e\u0003\u001b\r\u0000\u112e\u0288\u0001\u0000\u0000\u0000\u112f"+ + "\u1130\u0003\u001b\r\u0000\u1130\u1131\u0003\u000f\u0007\u0000\u1131\u1132"+ + "\u00037\u001b\u0000\u1132\u028a\u0001\u0000\u0000\u0000\u1133\u1134\u0003"+ + "\u001b\r\u0000\u1134\u1135\u0003\u000f\u0007\u0000\u1135\u1136\u00037"+ + "\u001b\u0000\u1136\u1137\u0005_\u0000\u0000\u1137\u1138\u0003\u001f\u000f"+ + "\u0000\u1138\u1139\u0003\u000f\u0007\u0000\u1139\u113a\u0003\u001f\u000f"+ + "\u0000\u113a\u113b\u0003\t\u0004\u0000\u113b\u113c\u0003\u000f\u0007\u0000"+ + "\u113c\u113d\u0003)\u0014\u0000\u113d\u028c\u0001\u0000\u0000\u0000\u113e"+ + "\u113f\u0003\u001b\r\u0000\u113f\u1140\u0003\u000f\u0007\u0000\u1140\u1141"+ + "\u00037\u001b\u0000\u1141\u1142\u0005_\u0000\u0000\u1142\u1143\u0003-"+ + "\u0016\u0000\u1143\u1144\u00037\u001b\u0000\u1144\u1145\u0003%\u0012\u0000"+ + "\u1145\u1146\u0003\u000f\u0007\u0000\u1146\u028e\u0001\u0000\u0000\u0000"+ + "\u1147\u1148\u0003\u001d\u000e\u0000\u1148\u1149\u0003\u0007\u0003\u0000"+ + "\u1149\u114a\u0003\t\u0004\u0000\u114a\u114b\u0003\u000f\u0007\u0000\u114b"+ + "\u114c\u0003\u001d\u000e\u0000\u114c\u0290\u0001\u0000\u0000\u0000\u114d"+ + "\u114e\u0003\u001d\u000e\u0000\u114e\u114f\u0003\u0007\u0003\u0000\u114f"+ + "\u1150\u0003!\u0010\u0000\u1150\u1151\u0003\u000b\u0005\u0000\u1151\u1152"+ + "\u0003#\u0011\u0000\u1152\u1153\u0003\u001f\u000f\u0000\u1153\u1154\u0003"+ + "%\u0012\u0000\u1154\u1155\u0003\u0017\u000b\u0000\u1155\u1156\u0003\u001d"+ + "\u000e\u0000\u1156\u1157\u0003\u000f\u0007\u0000\u1157\u1158\u0003)\u0014"+ + "\u0000\u1158\u0292\u0001\u0000\u0000\u0000\u1159\u115a\u0003\u001d\u000e"+ + "\u0000\u115a\u115b\u0003\u0007\u0003\u0000\u115b\u115c\u0003!\u0010\u0000"+ + "\u115c\u115d\u0003\u0013\t\u0000\u115d\u115e\u0003/\u0017\u0000\u115e"+ + "\u115f\u0003\u0007\u0003\u0000\u115f\u1160\u0003\u0013\t\u0000\u1160\u1161"+ + "\u0003\u000f\u0007\u0000\u1161\u0294\u0001\u0000\u0000\u0000\u1162\u1163"+ + "\u0003\u001d\u000e\u0000\u1163\u1164\u0003\u0007\u0003\u0000\u1164\u1165"+ + "\u0003)\u0014\u0000\u1165\u1166\u0003\u0013\t\u0000\u1166\u1167\u0003"+ + "\u000f\u0007\u0000\u1167\u0296\u0001\u0000\u0000\u0000\u1168\u1169\u0003"+ + "\u001d\u000e\u0000\u1169\u116a\u0003\u0007\u0003\u0000\u116a\u116b\u0003"+ + "+\u0015\u0000\u116b\u116c\u0003-\u0016\u0000\u116c\u0298\u0001\u0000\u0000"+ + "\u0000\u116d\u116e\u0003\u001d\u000e\u0000\u116e\u116f\u0003\u0007\u0003"+ + "\u0000\u116f\u1170\u0003-\u0016\u0000\u1170\u1171\u0003\u000f\u0007\u0000"+ + "\u1171\u1172\u0003)\u0014\u0000\u1172\u1173\u0003\u0007\u0003\u0000\u1173"+ + "\u1174\u0003\u001d\u000e\u0000\u1174\u029a\u0001\u0000\u0000\u0000\u1175"+ + "\u1176\u0003\u001d\u000e\u0000\u1176\u1177\u0003\u000f\u0007\u0000\u1177"+ + "\u1178\u0003\u0007\u0003\u0000\u1178\u1179\u0003\r\u0006\u0000\u1179\u117a"+ + "\u0003\u0017\u000b\u0000\u117a\u117b\u0003!\u0010\u0000\u117b\u117c\u0003"+ + "\u0013\t\u0000\u117c\u029c\u0001\u0000\u0000\u0000\u117d\u117e\u0003\u001d"+ + "\u000e\u0000\u117e\u117f\u0003\u000f\u0007\u0000\u117f\u1180\u0003\u0007"+ + "\u0003\u0000\u1180\u1181\u0003+\u0015\u0000\u1181\u1182\u0003-\u0016\u0000"+ + "\u1182\u029e\u0001\u0000\u0000\u0000\u1183\u1184\u0003\u001d\u000e\u0000"+ + "\u1184\u1185\u0003\u000f\u0007\u0000\u1185\u1186\u0003\u0011\b\u0000\u1186"+ + "\u1187\u0003-\u0016\u0000\u1187\u02a0\u0001\u0000\u0000\u0000\u1188\u1189"+ + "\u0003\u001d\u000e\u0000\u1189\u118a\u0003\u000f\u0007\u0000\u118a\u118b"+ + "\u0003!\u0010\u0000\u118b\u118c\u0003\u0013\t\u0000\u118c\u118d\u0003"+ + "-\u0016\u0000\u118d\u118e\u0003\u0015\n\u0000\u118e\u02a2\u0001\u0000"+ + "\u0000\u0000\u118f\u1190\u0003\u001d\u000e\u0000\u1190\u1191\u0003\u000f"+ + "\u0007\u0000\u1191\u1192\u0003+\u0015\u0000\u1192\u1193\u0003+\u0015\u0000"+ + "\u1193\u02a4\u0001\u0000\u0000\u0000\u1194\u1195\u0003\u001d\u000e\u0000"+ + "\u1195\u1196\u0003\u000f\u0007\u0000\u1196\u1197\u00031\u0018\u0000\u1197"+ + "\u1198\u0003\u000f\u0007\u0000\u1198\u1199\u0003\u001d\u000e\u0000\u1199"+ + "\u02a6\u0001\u0000\u0000\u0000\u119a\u119b\u0003\u001d\u000e\u0000\u119b"+ + "\u119c\u0003\u0017\u000b\u0000\u119c\u119d\u0003\u001b\r\u0000\u119d\u119e"+ + "\u0003\u000f\u0007\u0000\u119e\u02a8\u0001\u0000\u0000\u0000\u119f\u11a0"+ + "\u0003\u001d\u000e\u0000\u11a0\u11a1\u0003\u0017\u000b\u0000\u11a1\u11a2"+ + "\u0003\u001f\u000f\u0000\u11a2\u11a3\u0003\u0017\u000b\u0000\u11a3\u11a4"+ + "\u0003-\u0016\u0000\u11a4\u02aa\u0001\u0000\u0000\u0000\u11a5\u11a6\u0003"+ + "\u001d\u000e\u0000\u11a6\u11a7\u0003\u0017\u000b\u0000\u11a7\u11a8\u0003"+ + "+\u0015\u0000\u11a8\u11a9\u0003-\u0016\u0000\u11a9\u11aa\u0003\u000f\u0007"+ + "\u0000\u11aa\u11ab\u0003!\u0010\u0000\u11ab\u02ac\u0001\u0000\u0000\u0000"+ + "\u11ac\u11ad\u0003\u001d\u000e\u0000\u11ad\u11ae\u0003!\u0010\u0000\u11ae"+ + "\u02ae\u0001\u0000\u0000\u0000\u11af\u11b0\u0003\u001d\u000e\u0000\u11b0"+ + "\u11b1\u0003#\u0011\u0000\u11b1\u11b2\u0003\u0007\u0003\u0000\u11b2\u11b3"+ + "\u0003\r\u0006\u0000\u11b3\u02b0\u0001\u0000\u0000\u0000\u11b4\u11b5\u0003"+ + "\u001d\u000e\u0000\u11b5\u11b6\u0003#\u0011\u0000\u11b6\u11b7\u0003\u000b"+ + "\u0005\u0000\u11b7\u11b8\u0003\u0007\u0003\u0000\u11b8\u11b9\u0003\u001d"+ + "\u000e\u0000\u11b9\u02b2\u0001\u0000\u0000\u0000\u11ba\u11bb\u0003\u001d"+ + "\u000e\u0000\u11bb\u11bc\u0003#\u0011\u0000\u11bc\u11bd\u0003\u000b\u0005"+ + "\u0000\u11bd\u11be\u0003\u0007\u0003\u0000\u11be\u11bf\u0003\u001d\u000e"+ + "\u0000\u11bf\u11c0\u0003-\u0016\u0000\u11c0\u11c1\u0003\u0017\u000b\u0000"+ + "\u11c1\u11c2\u0003\u001f\u000f\u0000\u11c2\u11c3\u0003\u000f\u0007\u0000"+ + "\u11c3\u02b4\u0001\u0000\u0000\u0000\u11c4\u11c5\u0003\u001d\u000e\u0000"+ + "\u11c5\u11c6\u0003#\u0011\u0000\u11c6\u11c7\u0003\u000b\u0005\u0000\u11c7"+ + "\u11c8\u0003\u0007\u0003\u0000\u11c8\u11c9\u0003\u001d\u000e\u0000\u11c9"+ + "\u11ca\u0003-\u0016\u0000\u11ca\u11cb\u0003\u0017\u000b\u0000\u11cb\u11cc"+ + "\u0003\u001f\u000f\u0000\u11cc\u11cd\u0003\u000f\u0007\u0000\u11cd\u11ce"+ + "\u0003+\u0015\u0000\u11ce\u11cf\u0003-\u0016\u0000\u11cf\u11d0\u0003\u0007"+ + "\u0003\u0000\u11d0\u11d1\u0003\u001f\u000f\u0000\u11d1\u11d2\u0003%\u0012"+ + "\u0000\u11d2\u02b6\u0001\u0000\u0000\u0000\u11d3\u11d4\u0003\u001d\u000e"+ + "\u0000\u11d4\u11d5\u0003#\u0011\u0000\u11d5\u11d6\u0003\u000b\u0005\u0000"+ + "\u11d6\u11d7\u0003\u0007\u0003\u0000\u11d7\u11d8\u0003-\u0016\u0000\u11d8"+ + "\u11d9\u0003\u0017\u000b\u0000\u11d9\u11da\u0003#\u0011\u0000\u11da\u11db"+ + "\u0003!\u0010\u0000\u11db\u02b8\u0001\u0000\u0000\u0000\u11dc\u11dd\u0003"+ + "\u001d\u000e\u0000\u11dd\u11de\u0003#\u0011\u0000\u11de\u11df\u0003\u000b"+ + "\u0005\u0000\u11df\u11e0\u0003\u0007\u0003\u0000\u11e0\u11e1\u0003-\u0016"+ + "\u0000\u11e1\u11e2\u0003#\u0011\u0000\u11e2\u11e3\u0003)\u0014\u0000\u11e3"+ + "\u02ba\u0001\u0000\u0000\u0000\u11e4\u11e5\u0003\u001d\u000e\u0000\u11e5"+ + "\u11e6\u0003#\u0011\u0000\u11e6\u11e7\u0003\u000b\u0005\u0000\u11e7\u11e8"+ + "\u0003\u001b\r\u0000\u11e8\u02bc\u0001\u0000\u0000\u0000\u11e9\u11ea\u0003"+ + "\u001d\u000e\u0000\u11ea\u11eb\u0003#\u0011\u0000\u11eb\u11ec\u0003\u000b"+ + "\u0005\u0000\u11ec\u11ed\u0003\u001b\r\u0000\u11ed\u11ee\u0003\u000f\u0007"+ + "\u0000\u11ee\u11ef\u0003\r\u0006\u0000\u11ef\u02be\u0001\u0000\u0000\u0000"+ + "\u11f0\u11f1\u0003\u001d\u000e\u0000\u11f1\u11f2\u0003#\u0011\u0000\u11f2"+ + "\u11f3\u00033\u0019\u0000\u11f3\u11f4\u0003\u000f\u0007\u0000\u11f4\u11f5"+ + "\u0003)\u0014\u0000\u11f5\u02c0\u0001\u0000\u0000\u0000\u11f6\u11f7\u0003"+ + "\u001f\u000f\u0000\u11f7\u02c2\u0001\u0000\u0000\u0000\u11f8\u11f9\u0003"+ + "\u001f\u000f\u0000\u11f9\u11fa\u0003\u0007\u0003\u0000\u11fa\u11fb\u0003"+ + "\u0017\u000b\u0000\u11fb\u11fc\u0003!\u0010\u0000\u11fc\u02c4\u0001\u0000"+ + "\u0000\u0000\u11fd\u11fe\u0003\u001f\u000f\u0000\u11fe\u11ff\u0003\u0007"+ + "\u0003\u0000\u11ff\u1200\u0003%\u0012\u0000\u1200\u02c6\u0001\u0000\u0000"+ + "\u0000\u1201\u1202\u0003\u001f\u000f\u0000\u1202\u1203\u0003\u0007\u0003"+ + "\u0000\u1203\u1204\u0003%\u0012\u0000\u1204\u1205\u0003%\u0012\u0000\u1205"+ + "\u1206\u0003\u0017\u000b\u0000\u1206\u1207\u0003!\u0010\u0000\u1207\u1208"+ + "\u0003\u0013\t\u0000\u1208\u02c8\u0001\u0000\u0000\u0000\u1209\u120a\u0003"+ + "\u001f\u000f\u0000\u120a\u120b\u0003\u0007\u0003\u0000\u120b\u120c\u0003"+ + "-\u0016\u0000\u120c\u120d\u0003\u000b\u0005\u0000\u120d\u120e\u0003\u0015"+ + "\n\u0000\u120e\u02ca\u0001\u0000\u0000\u0000\u120f\u1210\u0003\u001f\u000f"+ + "\u0000\u1210\u1211\u0003\u0007\u0003\u0000\u1211\u1212\u0003-\u0016\u0000"+ + "\u1212\u1213\u0003\u000b\u0005\u0000\u1213\u1214\u0003\u0015\n\u0000\u1214"+ + "\u1215\u0005_\u0000\u0000\u1215\u1216\u0003+\u0015\u0000\u1216\u1217\u0003"+ + "\u0017\u000b\u0000\u1217\u1218\u0003\u001f\u000f\u0000\u1218\u1219\u0003"+ + "%\u0012\u0000\u1219\u121a\u0003\u001d\u000e\u0000\u121a\u121b\u0003\u000f"+ + "\u0007\u0000\u121b\u02cc\u0001\u0000\u0000\u0000\u121c\u121d\u0003\u001f"+ + "\u000f\u0000\u121d\u121e\u0003\u0007\u0003\u0000\u121e\u121f\u0003-\u0016"+ + "\u0000\u121f\u1220\u0003\u000b\u0005\u0000\u1220\u1221\u0003\u0015\n\u0000"+ + "\u1221\u1222\u0003\u000f\u0007\u0000\u1222\u1223\u0003\r\u0006\u0000\u1223"+ + "\u02ce\u0001\u0000\u0000\u0000\u1224\u1225\u0003\u001f\u000f\u0000\u1225"+ + "\u1226\u0003\u0007\u0003\u0000\u1226\u1227\u00035\u001a\u0000\u1227\u02d0"+ + "\u0001\u0000\u0000\u0000\u1228\u1229\u0003\u001f\u000f\u0000\u1229\u122a"+ + "\u0003\u0007\u0003\u0000\u122a\u122b\u00035\u001a\u0000\u122b\u122c\u0003"+ + "1\u0018\u0000\u122c\u122d\u0003\u0007\u0003\u0000\u122d\u122e\u0003\u001d"+ + "\u000e\u0000\u122e\u122f\u0003/\u0017\u0000\u122f\u1230\u0003\u000f\u0007"+ + "\u0000\u1230\u02d2\u0001\u0000\u0000\u0000\u1231\u1232\u0003\u001f\u000f"+ + "\u0000\u1232\u1233\u0003\u000f\u0007\u0000\u1233\u1234\u0003\u001f\u000f"+ + "\u0000\u1234\u1235\u0003\t\u0004\u0000\u1235\u1236\u0003\u000f\u0007\u0000"+ + "\u1236\u1237\u0003)\u0014\u0000\u1237\u02d4\u0001\u0000\u0000\u0000\u1238"+ + "\u1239\u0003\u001f\u000f\u0000\u1239\u123a\u0003\u000f\u0007\u0000\u123a"+ + "\u123b\u0003)\u0014\u0000\u123b\u123c\u0003\u0013\t\u0000\u123c\u123d"+ + "\u0003\u000f\u0007\u0000\u123d\u02d6\u0001\u0000\u0000\u0000\u123e\u123f"+ + "\u0003\u001f\u000f\u0000\u123f\u1240\u0003\u000f\u0007\u0000\u1240\u1241"+ + "\u0003+\u0015\u0000\u1241\u1242\u0003+\u0015\u0000\u1242\u1243\u0003\u0007"+ + "\u0003\u0000\u1243\u1244\u0003\u0013\t\u0000\u1244\u1245\u0003\u000f\u0007"+ + "\u0000\u1245\u1246\u0005_\u0000\u0000\u1246\u1247\u0003\u001d\u000e\u0000"+ + "\u1247\u1248\u0003\u000f\u0007\u0000\u1248\u1249\u0003!\u0010\u0000\u1249"+ + "\u124a\u0003\u0013\t\u0000\u124a\u124b\u0003-\u0016\u0000\u124b\u124c"+ + "\u0003\u0015\n\u0000\u124c\u02d8\u0001\u0000\u0000\u0000\u124d\u124e\u0003"+ + "\u001f\u000f\u0000\u124e\u124f\u0003\u000f\u0007\u0000\u124f\u1250\u0003"+ + "+\u0015\u0000\u1250\u1251\u0003+\u0015\u0000\u1251\u1252\u0003\u0007\u0003"+ + "\u0000\u1252\u1253\u0003\u0013\t\u0000\u1253\u1254\u0003\u000f\u0007\u0000"+ + "\u1254\u1255\u0005_\u0000\u0000\u1255\u1256\u0003#\u0011\u0000\u1256\u1257"+ + "\u0003\u000b\u0005\u0000\u1257\u1258\u0003-\u0016\u0000\u1258\u1259\u0003"+ + "\u000f\u0007\u0000\u1259\u125a\u0003-\u0016\u0000\u125a\u125b\u0005_\u0000"+ + "\u0000\u125b\u125c\u0003\u001d\u000e\u0000\u125c\u125d\u0003\u000f\u0007"+ + "\u0000\u125d\u125e\u0003!\u0010\u0000\u125e\u125f\u0003\u0013\t\u0000"+ + "\u125f\u1260\u0003-\u0016\u0000\u1260\u1261\u0003\u0015\n\u0000\u1261"+ + "\u02da\u0001\u0000\u0000\u0000\u1262\u1263\u0003\u001f\u000f\u0000\u1263"+ + "\u1264\u0003\u000f\u0007\u0000\u1264\u1265\u0003+\u0015\u0000\u1265\u1266"+ + "\u0003+\u0015\u0000\u1266\u1267\u0003\u0007\u0003\u0000\u1267\u1268\u0003"+ + "\u0013\t\u0000\u1268\u1269\u0003\u000f\u0007\u0000\u1269\u126a\u0005_"+ + "\u0000\u0000\u126a\u126b\u0003-\u0016\u0000\u126b\u126c\u0003\u000f\u0007"+ + "\u0000\u126c\u126d\u00035\u001a\u0000\u126d\u126e\u0003-\u0016\u0000\u126e"+ + "\u02dc\u0001\u0000\u0000\u0000\u126f\u1270\u0003\u001f\u000f\u0000\u1270"+ + "\u1271\u0003\u000f\u0007\u0000\u1271\u1272\u0003-\u0016\u0000\u1272\u1273"+ + "\u0003\u0015\n\u0000\u1273\u1274\u0003#\u0011\u0000\u1274\u1275\u0003"+ + "\r\u0006\u0000\u1275\u02de\u0001\u0000\u0000\u0000\u1276\u1277\u0003\u001f"+ + "\u000f\u0000\u1277\u1278\u0003\u0017\u000b\u0000\u1278\u1279\u0003!\u0010"+ + "\u0000\u1279\u02e0\u0001\u0000\u0000\u0000\u127a\u127b\u0003\u001f\u000f"+ + "\u0000\u127b\u127c\u0003\u0017\u000b\u0000\u127c\u127d\u0003!\u0010\u0000"+ + "\u127d\u127e\u0003/\u0017\u0000\u127e\u127f\u0003-\u0016\u0000\u127f\u1280"+ + "\u0003\u000f\u0007\u0000\u1280\u02e2\u0001\u0000\u0000\u0000\u1281\u1282"+ + "\u0003\u001f\u000f\u0000\u1282\u1283\u0003\u0017\u000b\u0000\u1283\u1284"+ + "\u0003!\u0010\u0000\u1284\u1285\u00031\u0018\u0000\u1285\u1286\u0003\u0007"+ + "\u0003\u0000\u1286\u1287\u0003\u001d\u000e\u0000\u1287\u1288\u0003/\u0017"+ + "\u0000\u1288\u1289\u0003\u000f\u0007\u0000\u1289\u02e4\u0001\u0000\u0000"+ + "\u0000\u128a\u128b\u0003\u001f\u000f\u0000\u128b\u128c\u0003#\u0011\u0000"+ + "\u128c\u128d\u0003\r\u0006\u0000\u128d\u02e6\u0001\u0000\u0000\u0000\u128e"+ + "\u128f\u0003\u001f\u000f\u0000\u128f\u1290\u0003#\u0011\u0000\u1290\u1291"+ + "\u0003\r\u0006\u0000\u1291\u1292\u0003\u000f\u0007\u0000\u1292\u02e8\u0001"+ + "\u0000\u0000\u0000\u1293\u1294\u0003\u001f\u000f\u0000\u1294\u1295\u0003"+ + "#\u0011\u0000\u1295\u1296\u0003\r\u0006\u0000\u1296\u1297\u0003\u0017"+ + "\u000b\u0000\u1297\u1298\u0003\u0011\b\u0000\u1298\u1299\u0003\u0017\u000b"+ + "\u0000\u1299\u129a\u0003\u000f\u0007\u0000\u129a\u129b\u0003+\u0015\u0000"+ + "\u129b\u02ea\u0001\u0000\u0000\u0000\u129c\u129d\u0003\u001f\u000f\u0000"+ + "\u129d\u129e\u0003#\u0011\u0000\u129e\u129f\u0003\r\u0006\u0000\u129f"+ + "\u12a0\u0003\u0017\u000b\u0000\u12a0\u12a1\u0003\u0011\b\u0000\u12a1\u12a2"+ + "\u00037\u001b\u0000\u12a2\u02ec\u0001\u0000\u0000\u0000\u12a3\u12a4\u0003"+ + "\u001f\u000f\u0000\u12a4\u12a5\u0003#\u0011\u0000\u12a5\u12a6\u0003\r"+ + "\u0006\u0000\u12a6\u12a7\u0003/\u0017\u0000\u12a7\u12a8\u0003\u001d\u000e"+ + "\u0000\u12a8\u12a9\u0003\u000f\u0007\u0000\u12a9\u02ee\u0001\u0000\u0000"+ + "\u0000\u12aa\u12ab\u0003\u001f\u000f\u0000\u12ab\u12ac\u0003#\u0011\u0000"+ + "\u12ac\u12ad\u0003!\u0010\u0000\u12ad\u12ae\u0003-\u0016\u0000\u12ae\u12af"+ + "\u0003\u0015\n\u0000\u12af\u02f0\u0001\u0000\u0000\u0000\u12b0\u12b1\u0003"+ + "\u001f\u000f\u0000\u12b1\u12b2\u0003#\u0011\u0000\u12b2\u12b3\u0003)\u0014"+ + "\u0000\u12b3\u12b4\u0003\u000f\u0007\u0000\u12b4\u02f2\u0001\u0000\u0000"+ + "\u0000\u12b5\u12b6\u0003\u001f\u000f\u0000\u12b6\u12b7\u0003#\u0011\u0000"+ + "\u12b7\u12b8\u00031\u0018\u0000\u12b8\u12b9\u0003\u000f\u0007\u0000\u12b9"+ + "\u02f4\u0001\u0000\u0000\u0000\u12ba\u12bb\u0003\u001f\u000f\u0000\u12bb"+ + "\u12bc\u0003/\u0017\u0000\u12bc\u12bd\u0003\u001d\u000e\u0000\u12bd\u12be"+ + "\u0003-\u0016\u0000\u12be\u12bf\u0003\u0017\u000b\u0000\u12bf\u12c0\u0003"+ + "+\u0015\u0000\u12c0\u12c1\u0003\u000f\u0007\u0000\u12c1\u12c2\u0003-\u0016"+ + "\u0000\u12c2\u02f6\u0001\u0000\u0000\u0000\u12c3\u12c4\u0003\u001f\u000f"+ + "\u0000\u12c4\u12c5\u0003/\u0017\u0000\u12c5\u12c6\u0003\u001f\u000f\u0000"+ + "\u12c6\u12c7\u0003%\u0012\u0000\u12c7\u12c8\u0003+\u0015\u0000\u12c8\u02f8"+ + "\u0001\u0000\u0000\u0000\u12c9\u12ca\u0003!\u0010\u0000\u12ca\u12cb\u0003"+ + "\u0007\u0003\u0000\u12cb\u12cc\u0003\u001f\u000f\u0000\u12cc\u12cd\u0003"+ + "\u000f\u0007\u0000\u12cd\u02fa\u0001\u0000\u0000\u0000\u12ce\u12cf\u0003"+ + "!\u0010\u0000\u12cf\u12d0\u0003\u0007\u0003\u0000\u12d0\u12d1\u0003\u001f"+ + "\u000f\u0000\u12d1\u12d2\u0003\u000f\u0007\u0000\u12d2\u12d3\u0003+\u0015"+ + "\u0000\u12d3\u02fc\u0001\u0000\u0000\u0000\u12d4\u12d5\u0003!\u0010\u0000"+ + "\u12d5\u12d6\u0003\u0007\u0003\u0000\u12d6\u12d7\u0003-\u0016\u0000\u12d7"+ + "\u12d8\u0003\u0017\u000b\u0000\u12d8\u12d9\u0003#\u0011\u0000\u12d9\u12da"+ + "\u0003!\u0010\u0000\u12da\u12db\u0003\u0007\u0003\u0000\u12db\u12dc\u0003"+ + "\u001d\u000e\u0000\u12dc\u02fe\u0001\u0000\u0000\u0000\u12dd\u12de\u0003"+ + "!\u0010\u0000\u12de\u12df\u0003\u0007\u0003\u0000\u12df\u12e0\u0003-\u0016"+ + "\u0000\u12e0\u12e1\u0003/\u0017\u0000\u12e1\u12e2\u0003)\u0014\u0000\u12e2"+ + "\u12e3\u0003\u0007\u0003\u0000\u12e3\u12e4\u0003\u001d\u000e\u0000\u12e4"+ + "\u0300\u0001\u0000\u0000\u0000\u12e5\u12e6\u0003!\u0010\u0000\u12e6\u12e7"+ + "\u0003\u000b\u0005\u0000\u12e7\u12e8\u0003\u0015\n\u0000\u12e8\u12e9\u0003"+ + "\u0007\u0003\u0000\u12e9\u12ea\u0003)\u0014\u0000\u12ea\u0302\u0001\u0000"+ + "\u0000\u0000\u12eb\u12ec\u0003!\u0010\u0000\u12ec\u12ed\u0003\u000b\u0005"+ + "\u0000\u12ed\u12ee\u0003\u001d\u000e\u0000\u12ee\u12ef\u0003#\u0011\u0000"+ + "\u12ef\u12f0\u0003\t\u0004\u0000\u12f0\u0304\u0001\u0000\u0000\u0000\u12f1"+ + "\u12f2\u0003!\u0010\u0000\u12f2\u12f3\u0003\u000f\u0007\u0000\u12f3\u12f4"+ + "\u0003+\u0015\u0000\u12f4\u12f5\u0003-\u0016\u0000\u12f5\u12f6\u0003\u0017"+ + "\u000b\u0000\u12f6\u12f7\u0003!\u0010\u0000\u12f7\u12f8\u0003\u0013\t"+ + "\u0000\u12f8\u0306\u0001\u0000\u0000\u0000\u12f9\u12fa\u0003!\u0010\u0000"+ + "\u12fa\u12fb\u0003\u000f\u0007\u0000\u12fb\u12fc\u00033\u0019\u0000\u12fc"+ + "\u0308\u0001\u0000\u0000\u0000\u12fd\u12fe\u0003!\u0010\u0000\u12fe\u12ff"+ + "\u0003\u000f\u0007\u0000\u12ff\u1300\u00035\u001a\u0000\u1300\u1301\u0003"+ + "-\u0016\u0000\u1301\u030a\u0001\u0000\u0000\u0000\u1302\u1303\u0003!\u0010"+ + "\u0000\u1303\u1304\u0003#\u0011\u0000\u1304\u030c\u0001\u0000\u0000\u0000"+ + "\u1305\u1306\u0003!\u0010\u0000\u1306\u1307\u0003#\u0011\u0000\u1307\u1308"+ + "\u0003\u000b\u0005\u0000\u1308\u1309\u0003)\u0014\u0000\u1309\u130a\u0003"+ + "\u000f\u0007\u0000\u130a\u130b\u0003\u0007\u0003\u0000\u130b\u130c\u0003"+ + "-\u0016\u0000\u130c\u130d\u0003\u000f\u0007\u0000\u130d\u130e\u0003\r"+ + "\u0006\u0000\u130e\u130f\u0003\t\u0004\u0000\u130f\u030e\u0001\u0000\u0000"+ + "\u0000\u1310\u1311\u0003!\u0010\u0000\u1311\u1312\u0003#\u0011\u0000\u1312"+ + "\u1313\u0003\u000b\u0005\u0000\u1313\u1314\u0003)\u0014\u0000\u1314\u1315"+ + "\u0003\u000f\u0007\u0000\u1315\u1316\u0003\u0007\u0003\u0000\u1316\u1317"+ + "\u0003-\u0016\u0000\u1317\u1318\u0003\u000f\u0007\u0000\u1318\u1319\u0003"+ + "/\u0017\u0000\u1319\u131a\u0003+\u0015\u0000\u131a\u131b\u0003\u000f\u0007"+ + "\u0000\u131b\u131c\u0003)\u0014\u0000\u131c\u0310\u0001\u0000\u0000\u0000"+ + "\u131d\u131e\u0003!\u0010\u0000\u131e\u131f\u0003#\u0011\u0000\u131f\u1320"+ + "\u0003!\u0010\u0000\u1320\u1321\u0003\u000f\u0007\u0000\u1321\u0312\u0001"+ + "\u0000\u0000\u0000\u1322\u1323\u0003!\u0010\u0000\u1323\u1324\u0003#\u0011"+ + "\u0000\u1324\u1325\u0003)\u0014\u0000\u1325\u1326\u0003\u001f\u000f\u0000"+ + "\u1326\u1327\u0003\u0007\u0003\u0000\u1327\u1328\u0003\u001d\u000e\u0000"+ + "\u1328\u1329\u0003\u0017\u000b\u0000\u1329\u132a\u00039\u001c\u0000\u132a"+ + "\u132b\u0003\u000f\u0007\u0000\u132b\u0314\u0001\u0000\u0000\u0000\u132c"+ + "\u132d\u0003!\u0010\u0000\u132d\u132e\u0003#\u0011\u0000\u132e\u132f\u0003"+ + ")\u0014\u0000\u132f\u1330\u0003\u001f\u000f\u0000\u1330\u1331\u0003\u0007"+ + "\u0003\u0000\u1331\u1332\u0003\u001d\u000e\u0000\u1332\u1333\u0003\u0017"+ + "\u000b\u0000\u1333\u1334\u00039\u001c\u0000\u1334\u1335\u0003\u000f\u0007"+ + "\u0000\u1335\u1336\u0003\r\u0006\u0000\u1336\u0316\u0001\u0000\u0000\u0000"+ + "\u1337\u1338\u0003!\u0010\u0000\u1338\u1339\u0003#\u0011\u0000\u1339\u133a"+ + "\u0003-\u0016\u0000\u133a\u0318\u0001\u0000\u0000\u0000\u133b\u133c\u0003"+ + "!\u0010\u0000\u133c\u133d\u0003#\u0011\u0000\u133d\u133e\u0003-\u0016"+ + "\u0000\u133e\u133f\u0003\u0015\n\u0000\u133f\u1340\u0003\u0017\u000b\u0000"+ + "\u1340\u1341\u0003!\u0010\u0000\u1341\u1342\u0003\u0013\t\u0000\u1342"+ + "\u031a\u0001\u0000\u0000\u0000\u1343\u1344\u0003!\u0010\u0000\u1344\u1345"+ + "\u0003#\u0011\u0000\u1345\u1346\u0003-\u0016\u0000\u1346\u1347\u0003\u0017"+ + "\u000b\u0000\u1347\u1348\u0003\u0011\b\u0000\u1348\u1349\u00037\u001b"+ + "\u0000\u1349\u031c\u0001\u0000\u0000\u0000\u134a\u134b\u0003!\u0010\u0000"+ + "\u134b\u134c\u0003#\u0011\u0000\u134c\u134d\u0003-\u0016\u0000\u134d\u134e"+ + "\u0003!\u0010\u0000\u134e\u134f\u0003/\u0017\u0000\u134f\u1350\u0003\u001d"+ + "\u000e\u0000\u1350\u1351\u0003\u001d\u000e\u0000\u1351\u031e\u0001\u0000"+ + "\u0000\u0000\u1352\u1353\u0003!\u0010\u0000\u1353\u1354\u0003#\u0011\u0000"+ + "\u1354\u1355\u00033\u0019\u0000\u1355\u1356\u0003\u0007\u0003\u0000\u1356"+ + "\u1357\u0003\u0017\u000b\u0000\u1357\u1358\u0003-\u0016\u0000\u1358\u0320"+ + "\u0001\u0000\u0000\u0000\u1359\u135a\u0003!\u0010\u0000\u135a\u135b\u0003"+ + "/\u0017\u0000\u135b\u135c\u0003\u001d\u000e\u0000\u135c\u135d\u0003\u001d"+ + "\u000e\u0000\u135d\u0322\u0001\u0000\u0000\u0000\u135e\u135f\u0003!\u0010"+ + "\u0000\u135f\u1360\u0003/\u0017\u0000\u1360\u1361\u0003\u001d\u000e\u0000"+ + "\u1361\u1362\u0003\u001d\u000e\u0000\u1362\u1363\u0003\u0007\u0003\u0000"+ + "\u1363\u1364\u0003\t\u0004\u0000\u1364\u1365\u0003\u001d\u000e\u0000\u1365"+ + "\u1366\u0003\u000f\u0007\u0000\u1366\u0324\u0001\u0000\u0000\u0000\u1367"+ + "\u1368\u0003!\u0010\u0000\u1368\u1369\u0003/\u0017\u0000\u1369\u136a\u0003"+ + "\u001d\u000e\u0000\u136a\u136b\u0003\u001d\u000e\u0000\u136b\u136c\u0003"+ + "\u0017\u000b\u0000\u136c\u136d\u0003\u0011\b\u0000\u136d\u0326\u0001\u0000"+ + "\u0000\u0000\u136e\u136f\u0003!\u0010\u0000\u136f\u1370\u0003/\u0017\u0000"+ + "\u1370\u1371\u0003\u001d\u000e\u0000\u1371\u1372\u0003\u001d\u000e\u0000"+ + "\u1372\u1373\u0003+\u0015\u0000\u1373\u0328\u0001\u0000\u0000\u0000\u1374"+ + "\u1375\u0003!\u0010\u0000\u1375\u1376\u0003/\u0017\u0000\u1376\u1377\u0003"+ + "\u001f\u000f\u0000\u1377\u1378\u0003\t\u0004\u0000\u1378\u1379\u0003\u000f"+ + "\u0007\u0000\u1379\u137a\u0003)\u0014\u0000\u137a\u032a\u0001\u0000\u0000"+ + "\u0000\u137b\u137c\u0003!\u0010\u0000\u137c\u137d\u0003/\u0017\u0000\u137d"+ + "\u137e\u0003\u001f\u000f\u0000\u137e\u137f\u0003\u000f\u0007\u0000\u137f"+ + "\u1380\u0003)\u0014\u0000\u1380\u1381\u0003\u0017\u000b\u0000\u1381\u1382"+ + "\u0003\u000b\u0005\u0000\u1382\u032c\u0001\u0000\u0000\u0000\u1383\u1384"+ + "\u0003#\u0011\u0000\u1384\u1385\u0003\t\u0004\u0000\u1385\u1386\u0003"+ + "\u0019\f\u0000\u1386\u1387\u0003\u000f\u0007\u0000\u1387\u1388\u0003\u000b"+ + "\u0005\u0000\u1388\u1389\u0003-\u0016\u0000\u1389\u032e\u0001\u0000\u0000"+ + "\u0000\u138a\u138b\u0003#\u0011\u0000\u138b\u138c\u0003\u000b\u0005\u0000"+ + "\u138c\u138d\u0003-\u0016\u0000\u138d\u138e\u0003\u000f\u0007\u0000\u138e"+ + "\u138f\u0003-\u0016\u0000\u138f\u1390\u0005_\u0000\u0000\u1390\u1391\u0003"+ + "\u001d\u000e\u0000\u1391\u1392\u0003\u000f\u0007\u0000\u1392\u1393\u0003"+ + "!\u0010\u0000\u1393\u1394\u0003\u0013\t\u0000\u1394\u1395\u0003-\u0016"+ + "\u0000\u1395\u1396\u0003\u0015\n\u0000\u1396\u0330\u0001\u0000\u0000\u0000"+ + "\u1397\u1398\u0003#\u0011\u0000\u1398\u1399\u0003\u000b\u0005\u0000\u1399"+ + "\u139a\u0003-\u0016\u0000\u139a\u139b\u0003\u000f\u0007\u0000\u139b\u139c"+ + "\u0003-\u0016\u0000\u139c\u139d\u0003+\u0015\u0000\u139d\u0332\u0001\u0000"+ + "\u0000\u0000\u139e\u139f\u0003#\u0011\u0000\u139f\u13a0\u0003\u0011\b"+ + "\u0000\u13a0\u0334\u0001\u0000\u0000\u0000\u13a1\u13a2\u0003#\u0011\u0000"+ + "\u13a2\u13a3\u0003\u0011\b\u0000\u13a3\u13a4\u0003\u0011\b\u0000\u13a4"+ + "\u0336\u0001\u0000\u0000\u0000\u13a5\u13a6\u0003#\u0011\u0000\u13a6\u13a7"+ + "\u0003\u0011\b\u0000\u13a7\u13a8\u0003\u0011\b\u0000\u13a8\u13a9\u0003"+ + "+\u0015\u0000\u13a9\u13aa\u0003\u000f\u0007\u0000\u13aa\u13ab\u0003-\u0016"+ + "\u0000\u13ab\u0338\u0001\u0000\u0000\u0000\u13ac\u13ad\u0003#\u0011\u0000"+ + "\u13ad\u13ae\u0003\u0017\u000b\u0000\u13ae\u13af\u0003\r\u0006\u0000\u13af"+ + "\u13b0\u0003+\u0015\u0000\u13b0\u033a\u0001\u0000\u0000\u0000\u13b1\u13b2"+ + "\u0003#\u0011\u0000\u13b2\u13b3\u0003\u001d\u000e\u0000\u13b3\u13b4\u0003"+ + "\r\u0006\u0000\u13b4\u033c\u0001\u0000\u0000\u0000\u13b5\u13b6\u0003#"+ + "\u0011\u0000\u13b6\u13b7\u0003!\u0010\u0000\u13b7\u033e\u0001\u0000\u0000"+ + "\u0000\u13b8\u13b9\u0003#\u0011\u0000\u13b9\u13ba\u0003!\u0010\u0000\u13ba"+ + "\u13bb\u0003\u001d\u000e\u0000\u13bb\u13bc\u00037\u001b\u0000\u13bc\u0340"+ + "\u0001\u0000\u0000\u0000\u13bd\u13be\u0003#\u0011\u0000\u13be\u13bf\u0003"+ + "%\u0012\u0000\u13bf\u13c0\u0003\u000f\u0007\u0000\u13c0\u13c1\u0003!\u0010"+ + "\u0000\u13c1\u0342\u0001\u0000\u0000\u0000\u13c2\u13c3\u0003#\u0011\u0000"+ + "\u13c3\u13c4\u0003%\u0012\u0000\u13c4\u13c5\u0003\u000f\u0007\u0000\u13c5"+ + "\u13c6\u0003)\u0014\u0000\u13c6\u13c7\u0003\u0007\u0003\u0000\u13c7\u13c8"+ + "\u0003-\u0016\u0000\u13c8\u13c9\u0003\u0017\u000b\u0000\u13c9\u13ca\u0003"+ + "#\u0011\u0000\u13ca\u13cb\u0003!\u0010\u0000\u13cb\u0344\u0001\u0000\u0000"+ + "\u0000\u13cc\u13cd\u0003#\u0011\u0000\u13cd\u13ce\u0003%\u0012\u0000\u13ce"+ + "\u13cf\u0003\u000f\u0007\u0000\u13cf\u13d0\u0003)\u0014\u0000\u13d0\u13d1"+ + "\u0003\u0007\u0003\u0000\u13d1\u13d2\u0003-\u0016\u0000\u13d2\u13d3\u0003"+ + "#\u0011\u0000\u13d3\u13d4\u0003)\u0014\u0000\u13d4\u0346\u0001\u0000\u0000"+ + "\u0000\u13d5\u13d6\u0003#\u0011\u0000\u13d6\u13d7\u0003%\u0012\u0000\u13d7"+ + "\u13d8\u0003-\u0016\u0000\u13d8\u13d9\u0003\u0017\u000b\u0000\u13d9\u13da"+ + "\u0003#\u0011\u0000\u13da\u13db\u0003!\u0010\u0000\u13db\u0348\u0001\u0000"+ + "\u0000\u0000\u13dc\u13dd\u0003#\u0011\u0000\u13dd\u13de\u0003%\u0012\u0000"+ + "\u13de\u13df\u0003-\u0016\u0000\u13df\u13e0\u0003\u0017\u000b\u0000\u13e0"+ + "\u13e1\u0003#\u0011\u0000\u13e1\u13e2\u0003!\u0010\u0000\u13e2\u13e3\u0003"+ + "+\u0015\u0000\u13e3\u034a\u0001\u0000\u0000\u0000\u13e4\u13e5\u0003#\u0011"+ + "\u0000\u13e5\u13e6\u0003)\u0014\u0000\u13e6\u034c\u0001\u0000\u0000\u0000"+ + "\u13e7\u13e8\u0003#\u0011\u0000\u13e8\u13e9\u0003)\u0014\u0000\u13e9\u13ea"+ + "\u0003\r\u0006\u0000\u13ea\u13eb\u0003\u000f\u0007\u0000\u13eb\u13ec\u0003"+ + ")\u0014\u0000\u13ec\u034e\u0001\u0000\u0000\u0000\u13ed\u13ee\u0003#\u0011"+ + "\u0000\u13ee\u13ef\u0003)\u0014\u0000\u13ef\u13f0\u0003\r\u0006\u0000"+ + "\u13f0\u13f1\u0003\u000f\u0007\u0000\u13f1\u13f2\u0003)\u0014\u0000\u13f2"+ + "\u13f3\u0003\u0017\u000b\u0000\u13f3\u13f4\u0003!\u0010\u0000\u13f4\u13f5"+ + "\u0003\u0013\t\u0000\u13f5\u0350\u0001\u0000\u0000\u0000\u13f6\u13f7\u0003"+ + "#\u0011\u0000\u13f7\u13f8\u0003)\u0014\u0000\u13f8\u13f9\u0003\r\u0006"+ + "\u0000\u13f9\u13fa\u0003\u0017\u000b\u0000\u13fa\u13fb\u0003!\u0010\u0000"+ + "\u13fb\u13fc\u0003\u0007\u0003\u0000\u13fc\u13fd\u0003\u001d\u000e\u0000"+ + "\u13fd\u13fe\u0003\u0017\u000b\u0000\u13fe\u13ff\u0003-\u0016\u0000\u13ff"+ + "\u1400\u00037\u001b\u0000\u1400\u0352\u0001\u0000\u0000\u0000\u1401\u1402"+ + "\u0003#\u0011\u0000\u1402\u1403\u0003-\u0016\u0000\u1403\u1404\u0003\u0015"+ + "\n\u0000\u1404\u1405\u0003\u000f\u0007\u0000\u1405\u1406\u0003)\u0014"+ + "\u0000\u1406\u1407\u0003+\u0015\u0000\u1407\u0354\u0001\u0000\u0000\u0000"+ + "\u1408\u1409\u0003#\u0011\u0000\u1409\u140a\u0003/\u0017\u0000\u140a\u140b"+ + "\u0003-\u0016\u0000\u140b\u0356\u0001\u0000\u0000\u0000\u140c\u140d\u0003"+ + "#\u0011\u0000\u140d\u140e\u0003/\u0017\u0000\u140e\u140f\u0003-\u0016"+ + "\u0000\u140f\u1410\u0003\u000f\u0007\u0000\u1410\u1411\u0003)\u0014\u0000"+ + "\u1411\u0358\u0001\u0000\u0000\u0000\u1412\u1413\u0003#\u0011\u0000\u1413"+ + "\u1414\u0003/\u0017\u0000\u1414\u1415\u0003-\u0016\u0000\u1415\u1416\u0003"+ + "%\u0012\u0000\u1416\u1417\u0003/\u0017\u0000\u1417\u1418\u0003-\u0016"+ + "\u0000\u1418\u035a\u0001\u0000\u0000\u0000\u1419\u141a\u0003#\u0011\u0000"+ + "\u141a\u141b\u00031\u0018\u0000\u141b\u141c\u0003\u000f\u0007\u0000\u141c"+ + "\u141d\u0003)\u0014\u0000\u141d\u035c\u0001\u0000\u0000\u0000\u141e\u141f"+ + "\u0003#\u0011\u0000\u141f\u1420\u00031\u0018\u0000\u1420\u1421\u0003\u000f"+ + "\u0007\u0000\u1421\u1422\u0003)\u0014\u0000\u1422\u1423\u0003\u001d\u000e"+ + "\u0000\u1423\u1424\u0003\u0007\u0003\u0000\u1424\u1425\u0003%\u0012\u0000"+ + "\u1425\u1426\u0003+\u0015\u0000\u1426\u035e\u0001\u0000\u0000\u0000\u1427"+ + "\u1428\u0003#\u0011\u0000\u1428\u1429\u00031\u0018\u0000\u1429\u142a\u0003"+ + "\u000f\u0007\u0000\u142a\u142b\u0003)\u0014\u0000\u142b\u142c\u0003\u001d"+ + "\u000e\u0000\u142c\u142d\u0003\u0007\u0003\u0000\u142d\u142e\u00037\u001b"+ + "\u0000\u142e\u0360\u0001\u0000\u0000\u0000\u142f\u1430\u0003#\u0011\u0000"+ + "\u1430\u1431\u00031\u0018\u0000\u1431\u1432\u0003\u000f\u0007\u0000\u1432"+ + "\u1433\u0003)\u0014\u0000\u1433\u1434\u0003)\u0014\u0000\u1434\u1435\u0003"+ + "\u0017\u000b\u0000\u1435\u1436\u0003\r\u0006\u0000\u1436\u1437\u0003\u0017"+ + "\u000b\u0000\u1437\u1438\u0003!\u0010\u0000\u1438\u1439\u0003\u0013\t"+ + "\u0000\u1439\u0362\u0001\u0000\u0000\u0000\u143a\u143b\u0003#\u0011\u0000"+ + "\u143b\u143c\u00033\u0019\u0000\u143c\u143d\u0003!\u0010\u0000\u143d\u143e"+ + "\u0003\u000f\u0007\u0000\u143e\u143f\u0003)\u0014\u0000\u143f\u0364\u0001"+ + "\u0000\u0000\u0000\u1440\u1441\u0003%\u0012\u0000\u1441\u1442\u0003\u0007"+ + "\u0003\u0000\u1442\u1443\u0003\r\u0006\u0000\u1443\u0366\u0001\u0000\u0000"+ + "\u0000\u1444\u1445\u0003%\u0012\u0000\u1445\u1446\u0003\u0007\u0003\u0000"+ + "\u1446\u1447\u0003)\u0014\u0000\u1447\u1448\u0003\u0007\u0003\u0000\u1448"+ + "\u1449\u0003\u001f\u000f\u0000\u1449\u144a\u0003\u000f\u0007\u0000\u144a"+ + "\u144b\u0003-\u0016\u0000\u144b\u144c\u0003\u000f\u0007\u0000\u144c\u144d"+ + "\u0003)\u0014\u0000\u144d\u0368\u0001\u0000\u0000\u0000\u144e\u144f\u0003"+ + "%\u0012\u0000\u144f\u1450\u0003\u0007\u0003\u0000\u1450\u1451\u0003)\u0014"+ + "\u0000\u1451\u1452\u0003\u0007\u0003\u0000\u1452\u1453\u0003\u001f\u000f"+ + "\u0000\u1453\u1454\u0003\u000f\u0007\u0000\u1454\u1455\u0003-\u0016\u0000"+ + "\u1455\u1456\u0003\u000f\u0007\u0000\u1456\u1457\u0003)\u0014\u0000\u1457"+ + "\u1458\u0005_\u0000\u0000\u1458\u1459\u0003\u001f\u000f\u0000\u1459\u145a"+ + "\u0003#\u0011\u0000\u145a\u145b\u0003\r\u0006\u0000\u145b\u145c\u0003"+ + "\u000f\u0007\u0000\u145c\u036a\u0001\u0000\u0000\u0000\u145d\u145e\u0003"+ + "%\u0012\u0000\u145e\u145f\u0003\u0007\u0003\u0000\u145f\u1460\u0003)\u0014"+ + "\u0000\u1460\u1461\u0003\u0007\u0003\u0000\u1461\u1462\u0003\u001f\u000f"+ + "\u0000\u1462\u1463\u0003\u000f\u0007\u0000\u1463\u1464\u0003-\u0016\u0000"+ + "\u1464\u1465\u0003\u000f\u0007\u0000\u1465\u1466\u0003)\u0014\u0000\u1466"+ + "\u1467\u0005_\u0000\u0000\u1467\u1468\u0003!\u0010\u0000\u1468\u1469\u0003"+ + "\u0007\u0003\u0000\u1469\u146a\u0003\u001f\u000f\u0000\u146a\u146b\u0003"+ + "\u000f\u0007\u0000\u146b\u036c\u0001\u0000\u0000\u0000\u146c\u146d\u0003"+ + "%\u0012\u0000\u146d\u146e\u0003\u0007\u0003\u0000\u146e\u146f\u0003)\u0014"+ + "\u0000\u146f\u1470\u0003\u0007\u0003\u0000\u1470\u1471\u0003\u001f\u000f"+ + "\u0000\u1471\u1472\u0003\u000f\u0007\u0000\u1472\u1473\u0003-\u0016\u0000"+ + "\u1473\u1474\u0003\u000f\u0007\u0000\u1474\u1475\u0003)\u0014\u0000\u1475"+ + "\u1476\u0005_\u0000\u0000\u1476\u1477\u0003#\u0011\u0000\u1477\u1478\u0003"+ + ")\u0014\u0000\u1478\u1479\u0003\r\u0006\u0000\u1479\u147a\u0003\u0017"+ + "\u000b\u0000\u147a\u147b\u0003!\u0010\u0000\u147b\u147c\u0003\u0007\u0003"+ + "\u0000\u147c\u147d\u0003\u001d\u000e\u0000\u147d\u147e\u0005_\u0000\u0000"+ + "\u147e\u147f\u0003%\u0012\u0000\u147f\u1480\u0003#\u0011\u0000\u1480\u1481"+ + "\u0003+\u0015\u0000\u1481\u1482\u0003\u0017\u000b\u0000\u1482\u1483\u0003"+ + "-\u0016\u0000\u1483\u1484\u0003\u0017\u000b\u0000\u1484\u1485\u0003#\u0011"+ + "\u0000\u1485\u1486\u0003!\u0010\u0000\u1486\u036e\u0001\u0000\u0000\u0000"+ + "\u1487\u1488\u0003%\u0012\u0000\u1488\u1489\u0003\u0007\u0003\u0000\u1489"+ + "\u148a\u0003)\u0014\u0000\u148a\u148b\u0003\u0007\u0003\u0000\u148b\u148c"+ + "\u0003\u001f\u000f\u0000\u148c\u148d\u0003\u000f\u0007\u0000\u148d\u148e"+ + "\u0003-\u0016\u0000\u148e\u148f\u0003\u000f\u0007\u0000\u148f\u1490\u0003"+ + ")\u0014\u0000\u1490\u1491\u0005_\u0000\u0000\u1491\u1492\u0003+\u0015"+ + "\u0000\u1492\u1493\u0003%\u0012\u0000\u1493\u1494\u0003\u000f\u0007\u0000"+ + "\u1494\u1495\u0003\u000b\u0005\u0000\u1495\u1496\u0003\u0017\u000b\u0000"+ + "\u1496\u1497\u0003\u0011\b\u0000\u1497\u1498\u0003\u0017\u000b\u0000\u1498"+ + "\u1499\u0003\u000b\u0005\u0000\u1499\u149a\u0005_\u0000\u0000\u149a\u149b"+ + "\u0003\u000b\u0005\u0000\u149b\u149c\u0003\u0007\u0003\u0000\u149c\u149d"+ + "\u0003-\u0016\u0000\u149d\u149e\u0003\u0007\u0003\u0000\u149e\u149f\u0003"+ + "\u001d\u000e\u0000\u149f\u14a0\u0003#\u0011\u0000\u14a0\u14a1\u0003\u0013"+ + "\t\u0000\u14a1\u0370\u0001\u0000\u0000\u0000\u14a2\u14a3\u0003%\u0012"+ + "\u0000\u14a3\u14a4\u0003\u0007\u0003\u0000\u14a4\u14a5\u0003)\u0014\u0000"+ + "\u14a5\u14a6\u0003\u0007\u0003\u0000\u14a6\u14a7\u0003\u001f\u000f\u0000"+ + "\u14a7\u14a8\u0003\u000f\u0007\u0000\u14a8\u14a9\u0003-\u0016\u0000\u14a9"+ + "\u14aa\u0003\u000f\u0007\u0000\u14aa\u14ab\u0003)\u0014\u0000\u14ab\u14ac"+ + "\u0005_\u0000\u0000\u14ac\u14ad\u0003+\u0015\u0000\u14ad\u14ae\u0003%"+ + "\u0012\u0000\u14ae\u14af\u0003\u000f\u0007\u0000\u14af\u14b0\u0003\u000b"+ + "\u0005\u0000\u14b0\u14b1\u0003\u0017\u000b\u0000\u14b1\u14b2\u0003\u0011"+ + "\b\u0000\u14b2\u14b3\u0003\u0017\u000b\u0000\u14b3\u14b4\u0003\u000b\u0005"+ + "\u0000\u14b4\u14b5\u0005_\u0000\u0000\u14b5\u14b6\u0003!\u0010\u0000\u14b6"+ + "\u14b7\u0003\u0007\u0003\u0000\u14b7\u14b8\u0003\u001f\u000f\u0000\u14b8"+ + "\u14b9\u0003\u000f\u0007\u0000\u14b9\u0372\u0001\u0000\u0000\u0000\u14ba"+ + "\u14bb\u0003%\u0012\u0000\u14bb\u14bc\u0003\u0007\u0003\u0000\u14bc\u14bd"+ + "\u0003)\u0014\u0000\u14bd\u14be\u0003\u0007\u0003\u0000\u14be\u14bf\u0003"+ + "\u001f\u000f\u0000\u14bf\u14c0\u0003\u000f\u0007\u0000\u14c0\u14c1\u0003"+ + "-\u0016\u0000\u14c1\u14c2\u0003\u000f\u0007\u0000\u14c2\u14c3\u0003)\u0014"+ + "\u0000\u14c3\u14c4\u0005_\u0000\u0000\u14c4\u14c5\u0003+\u0015\u0000\u14c5"+ + "\u14c6\u0003%\u0012\u0000\u14c6\u14c7\u0003\u000f\u0007\u0000\u14c7\u14c8"+ + "\u0003\u000b\u0005\u0000\u14c8\u14c9\u0003\u0017\u000b\u0000\u14c9\u14ca"+ + "\u0003\u0011\b\u0000\u14ca\u14cb\u0003\u0017\u000b\u0000\u14cb\u14cc\u0003"+ + "\u000b\u0005\u0000\u14cc\u14cd\u0005_\u0000\u0000\u14cd\u14ce\u0003+\u0015"+ + "\u0000\u14ce\u14cf\u0003\u000b\u0005\u0000\u14cf\u14d0\u0003\u0015\n\u0000"+ + "\u14d0\u14d1\u0003\u000f\u0007\u0000\u14d1\u14d2\u0003\u001f\u000f\u0000"+ + "\u14d2\u14d3\u0003\u0007\u0003\u0000\u14d3\u0374\u0001\u0000\u0000\u0000"+ + "\u14d4\u14d5\u0003%\u0012\u0000\u14d5\u14d6\u0003\u0007\u0003\u0000\u14d6"+ + "\u14d7\u0003)\u0014\u0000\u14d7\u14d8\u0003\u0007\u0003\u0000\u14d8\u14d9"+ + "\u0003\u001f\u000f\u0000\u14d9\u14da\u0003\u000f\u0007\u0000\u14da\u14db"+ + "\u0003-\u0016\u0000\u14db\u14dc\u0003\u000f\u0007\u0000\u14dc\u14dd\u0003"+ + ")\u0014\u0000\u14dd\u14de\u0003+\u0015\u0000\u14de\u0376\u0001\u0000\u0000"+ + "\u0000\u14df\u14e0\u0003%\u0012\u0000\u14e0\u14e1\u0003\u0007\u0003\u0000"+ + "\u14e1\u14e2\u0003)\u0014\u0000\u14e2\u14e3\u0003+\u0015\u0000\u14e3\u14e4"+ + "\u0003\u000f\u0007\u0000\u14e4\u14e5\u0003)\u0014\u0000\u14e5\u0378\u0001"+ + "\u0000\u0000\u0000\u14e6\u14e7\u0003%\u0012\u0000\u14e7\u14e8\u0003\u0007"+ + "\u0003\u0000\u14e8\u14e9\u0003)\u0014\u0000\u14e9\u14ea\u0003-\u0016\u0000"+ + "\u14ea\u14eb\u0003\u0017\u000b\u0000\u14eb\u14ec\u0003\u0007\u0003\u0000"+ + "\u14ec\u14ed\u0003\u001d\u000e\u0000\u14ed\u037a\u0001\u0000\u0000\u0000"+ + "\u14ee\u14ef\u0003%\u0012\u0000\u14ef\u14f0\u0003\u0007\u0003\u0000\u14f0"+ + "\u14f1\u0003)\u0014\u0000\u14f1\u14f2\u0003-\u0016\u0000\u14f2\u14f3\u0003"+ + "\u0017\u000b\u0000\u14f3\u14f4\u0003-\u0016\u0000\u14f4\u14f5\u0003\u0017"+ + "\u000b\u0000\u14f5\u14f6\u0003#\u0011\u0000\u14f6\u14f7\u0003!\u0010\u0000"+ + "\u14f7\u037c\u0001\u0000\u0000\u0000\u14f8\u14f9\u0003%\u0012\u0000\u14f9"+ + "\u14fa\u0003\u0007\u0003\u0000\u14fa\u14fb\u0003+\u0015\u0000\u14fb\u14fc"+ + "\u0003\u000b\u0005\u0000\u14fc\u14fd\u0003\u0007\u0003\u0000\u14fd\u14fe"+ + "\u0003\u001d\u000e\u0000\u14fe\u037e\u0001\u0000\u0000\u0000\u14ff\u1500"+ + "\u0003%\u0012\u0000\u1500\u1501\u0003\u0007\u0003\u0000\u1501\u1502\u0003"+ + "+\u0015\u0000\u1502\u1503\u0003+\u0015\u0000\u1503\u1504\u00033\u0019"+ + "\u0000\u1504\u1505\u0003#\u0011\u0000\u1505\u1506\u0003)\u0014\u0000\u1506"+ + "\u1507\u0003\r\u0006\u0000\u1507\u0380\u0001\u0000\u0000\u0000\u1508\u1509"+ + "\u0003%\u0012\u0000\u1509\u150a\u0003\u0007\u0003\u0000\u150a\u150b\u0003"+ + "-\u0016\u0000\u150b\u150c\u0003\u0015\n\u0000\u150c\u0382\u0001\u0000"+ + "\u0000\u0000\u150d\u150e\u0003%\u0012\u0000\u150e\u150f\u0003\u000f\u0007"+ + "\u0000\u150f\u1510\u0003)\u0014\u0000\u1510\u1511\u0003\u000b\u0005\u0000"+ + "\u1511\u1512\u0003\u000f\u0007\u0000\u1512\u1513\u0003!\u0010\u0000\u1513"+ + "\u1514\u0003-\u0016\u0000\u1514\u1515\u0005_\u0000\u0000\u1515\u1516\u0003"+ + ")\u0014\u0000\u1516\u1517\u0003\u0007\u0003\u0000\u1517\u1518\u0003!\u0010"+ + "\u0000\u1518\u1519\u0003\u001b\r\u0000\u1519\u0384\u0001\u0000\u0000\u0000"+ + "\u151a\u151b\u0003%\u0012\u0000\u151b\u151c\u0003\u000f\u0007\u0000\u151c"+ + "\u151d\u0003)\u0014\u0000\u151d\u151e\u0003\u000b\u0005\u0000\u151e\u151f"+ + "\u0003\u000f\u0007\u0000\u151f\u1520\u0003!\u0010\u0000\u1520\u1521\u0003"+ + "-\u0016\u0000\u1521\u1522\u0003\u0017\u000b\u0000\u1522\u1523\u0003\u001d"+ + "\u000e\u0000\u1523\u1524\u0003\u000f\u0007\u0000\u1524\u1525\u0005_\u0000"+ + "\u0000\u1525\u1526\u0003\u000b\u0005\u0000\u1526\u1527\u0003#\u0011\u0000"+ + "\u1527\u1528\u0003!\u0010\u0000\u1528\u1529\u0003-\u0016\u0000\u1529\u0386"+ + "\u0001\u0000\u0000\u0000\u152a\u152b\u0003%\u0012\u0000\u152b\u152c\u0003"+ + "\u000f\u0007\u0000\u152c\u152d\u0003)\u0014\u0000\u152d\u152e\u0003\u000b"+ + "\u0005\u0000\u152e\u152f\u0003\u000f\u0007\u0000\u152f\u1530\u0003!\u0010"+ + "\u0000\u1530\u1531\u0003-\u0016\u0000\u1531\u1532\u0003\u0017\u000b\u0000"+ + "\u1532\u1533\u0003\u001d\u000e\u0000\u1533\u1534\u0003\u000f\u0007\u0000"+ + "\u1534\u1535\u0005_\u0000\u0000\u1535\u1536\u0003\r\u0006\u0000\u1536"+ + "\u1537\u0003\u0017\u000b\u0000\u1537\u1538\u0003+\u0015\u0000\u1538\u1539"+ + "\u0003\u000b\u0005\u0000\u1539\u0388\u0001\u0000\u0000\u0000\u153a\u153b"+ + "\u0003%\u0012\u0000\u153b\u153c\u0003\u001d\u000e\u0000\u153c\u153d\u0003"+ + "\u0007\u0003\u0000\u153d\u153e\u0003\u000b\u0005\u0000\u153e\u153f\u0003"+ + "\u0017\u000b\u0000\u153f\u1540\u0003!\u0010\u0000\u1540\u1541\u0003\u0013"+ + "\t\u0000\u1541\u038a\u0001\u0000\u0000\u0000\u1542\u1543\u0003%\u0012"+ + "\u0000\u1543\u1544\u0003\u001d\u000e\u0000\u1544\u1545\u0003\u0007\u0003"+ + "\u0000\u1545\u1546\u0003\u0017\u000b\u0000\u1546\u1547\u0003!\u0010\u0000"+ + "\u1547\u038c\u0001\u0000\u0000\u0000\u1548\u1549\u0003%\u0012\u0000\u1549"+ + "\u154a\u0003\u001d\u000e\u0000\u154a\u154b\u0003\u0007\u0003\u0000\u154b"+ + "\u154c\u0003!\u0010\u0000\u154c\u154d\u0003+\u0015\u0000\u154d\u038e\u0001"+ + "\u0000\u0000\u0000\u154e\u154f\u0003%\u0012\u0000\u154f\u1550\u0003\u001d"+ + "\u000e\u0000\u1550\u1551\u0003\u0017\u000b\u0000\u1551\u0390\u0001\u0000"+ + "\u0000\u0000\u1552\u1553\u0003%\u0012\u0000\u1553\u1554\u0003#\u0011\u0000"+ + "\u1554\u1555\u0003+\u0015\u0000\u1555\u1556\u0003\u0017\u000b\u0000\u1556"+ + "\u1557\u0003-\u0016\u0000\u1557\u1558\u0003\u0017\u000b\u0000\u1558\u1559"+ + "\u0003#\u0011\u0000\u1559\u155a\u0003!\u0010\u0000\u155a\u0392\u0001\u0000"+ + "\u0000\u0000\u155b\u155c\u0003%\u0012\u0000\u155c\u155d\u0003#\u0011\u0000"+ + "\u155d\u155e\u0003+\u0015\u0000\u155e\u155f\u0003-\u0016\u0000\u155f\u1560"+ + "\u0003\u0011\b\u0000\u1560\u1561\u0003\u0017\u000b\u0000\u1561\u1562\u0003"+ + "5\u001a\u0000\u1562\u0394\u0001\u0000\u0000\u0000\u1563\u1564\u0003%\u0012"+ + "\u0000\u1564\u1565\u0003#\u0011\u0000\u1565\u1566\u00033\u0019\u0000\u1566"+ + "\u1567\u0003\u000f\u0007\u0000\u1567\u1568\u0003)\u0014\u0000\u1568\u0396"+ + "\u0001\u0000\u0000\u0000\u1569\u156a\u0003%\u0012\u0000\u156a\u156b\u0003"+ + ")\u0014\u0000\u156b\u156c\u0003\u000f\u0007\u0000\u156c\u156d\u0003\u000b"+ + "\u0005\u0000\u156d\u156e\u0003\u000f\u0007\u0000\u156e\u156f\u0003\r\u0006"+ + "\u0000\u156f\u1570\u0003\u0017\u000b\u0000\u1570\u1571\u0003!\u0010\u0000"+ + "\u1571\u1572\u0003\u0013\t\u0000\u1572\u0398\u0001\u0000\u0000\u0000\u1573"+ + "\u1574\u0003%\u0012\u0000\u1574\u1575\u0003)\u0014\u0000\u1575\u1576\u0003"+ + "\u000f\u0007\u0000\u1576\u1577\u0003\u000b\u0005\u0000\u1577\u1578\u0003"+ + "\u0017\u000b\u0000\u1578\u1579\u0003+\u0015\u0000\u1579\u157a\u0003\u0017"+ + "\u000b\u0000\u157a\u157b\u0003#\u0011\u0000\u157b\u157c\u0003!\u0010\u0000"+ + "\u157c\u039a\u0001\u0000\u0000\u0000\u157d\u157e\u0003%\u0012\u0000\u157e"+ + "\u157f\u0003)\u0014\u0000\u157f\u1580\u0003\u000f\u0007\u0000\u1580\u1581"+ + "\u0003\u0011\b\u0000\u1581\u1582\u0003\u0017\u000b\u0000\u1582\u1583\u0003"+ + "5\u001a\u0000\u1583\u039c\u0001\u0000\u0000\u0000\u1584\u1585\u0003%\u0012"+ + "\u0000\u1585\u1586\u0003)\u0014\u0000\u1586\u1587\u0003\u000f\u0007\u0000"+ + "\u1587\u1588\u0003#\u0011\u0000\u1588\u1589\u0003)\u0014\u0000\u1589\u158a"+ + "\u0003\r\u0006\u0000\u158a\u158b\u0003\u000f\u0007\u0000\u158b\u158c\u0003"+ + ")\u0014\u0000\u158c\u039e\u0001\u0000\u0000\u0000\u158d\u158e\u0003%\u0012"+ + "\u0000\u158e\u158f\u0003)\u0014\u0000\u158f\u1590\u0003\u000f\u0007\u0000"+ + "\u1590\u1591\u0003%\u0012\u0000\u1591\u1592\u0003\u0007\u0003\u0000\u1592"+ + "\u1593\u0003)\u0014\u0000\u1593\u1594\u0003\u000f\u0007\u0000\u1594\u03a0"+ + "\u0001\u0000\u0000\u0000\u1595\u1596\u0003%\u0012\u0000\u1596\u1597\u0003"+ + ")\u0014\u0000\u1597\u1598\u0003\u000f\u0007\u0000\u1598\u1599\u0003%\u0012"+ + "\u0000\u1599\u159a\u0003\u0007\u0003\u0000\u159a\u159b\u0003)\u0014\u0000"+ + "\u159b\u159c\u0003\u000f\u0007\u0000\u159c\u159d\u0003\r\u0006\u0000\u159d"+ + "\u03a2\u0001\u0000\u0000\u0000\u159e\u159f\u0003%\u0012\u0000\u159f\u15a0"+ + "\u0003)\u0014\u0000\u15a0\u15a1\u0003\u000f\u0007\u0000\u15a1\u15a2\u0003"+ + "+\u0015\u0000\u15a2\u15a3\u0003\u000f\u0007\u0000\u15a3\u15a4\u0003)\u0014"+ + "\u0000\u15a4\u15a5\u00031\u0018\u0000\u15a5\u15a6\u0003\u000f\u0007\u0000"+ + "\u15a6\u03a4\u0001\u0000\u0000\u0000\u15a7\u15a8\u0003%\u0012\u0000\u15a8"+ + "\u15a9\u0003)\u0014\u0000\u15a9\u15aa\u0003\u0017\u000b\u0000\u15aa\u15ab"+ + "\u0003\u001f\u000f\u0000\u15ab\u15ac\u0003\u0007\u0003\u0000\u15ac\u15ad"+ + "\u0003)\u0014\u0000\u15ad\u15ae\u00037\u001b\u0000\u15ae\u03a6\u0001\u0000"+ + "\u0000\u0000\u15af\u15b0\u0003%\u0012\u0000\u15b0\u15b1\u0003)\u0014\u0000"+ + "\u15b1\u15b2\u0003\u0017\u000b\u0000\u15b2\u15b3\u0003#\u0011\u0000\u15b3"+ + "\u15b4\u0003)\u0014\u0000\u15b4\u03a8\u0001\u0000\u0000\u0000\u15b5\u15b6"+ + "\u0003%\u0012\u0000\u15b6\u15b7\u0003)\u0014\u0000\u15b7\u15b8\u0003\u0017"+ + "\u000b\u0000\u15b8\u15b9\u00031\u0018\u0000\u15b9\u15ba\u0003\u0017\u000b"+ + "\u0000\u15ba\u15bb\u0003\u001d\u000e\u0000\u15bb\u15bc\u0003\u000f\u0007"+ + "\u0000\u15bc\u15bd\u0003\u0013\t\u0000\u15bd\u15be\u0003\u000f\u0007\u0000"+ + "\u15be\u15bf\u0003+\u0015\u0000\u15bf\u03aa\u0001\u0000\u0000\u0000\u15c0"+ + "\u15c1\u0003%\u0012\u0000\u15c1\u15c2\u0003)\u0014\u0000\u15c2\u15c3\u0003"+ + "#\u0011\u0000\u15c3\u15c4\u0003\u000b\u0005\u0000\u15c4\u15c5\u0003\u000f"+ + "\u0007\u0000\u15c5\u15c6\u0003\r\u0006\u0000\u15c6\u15c7\u0003/\u0017"+ + "\u0000\u15c7\u15c8\u0003)\u0014\u0000\u15c8\u15c9\u0003\u0007\u0003\u0000"+ + "\u15c9\u15ca\u0003\u001d\u000e\u0000\u15ca\u03ac\u0001\u0000\u0000\u0000"+ + "\u15cb\u15cc\u0003%\u0012\u0000\u15cc\u15cd\u0003)\u0014\u0000\u15cd\u15ce"+ + "\u0003#\u0011\u0000\u15ce\u15cf\u0003\u000b\u0005\u0000\u15cf\u15d0\u0003"+ + "\u000f\u0007\u0000\u15d0\u15d1\u0003\r\u0006\u0000\u15d1\u15d2\u0003/"+ + "\u0017\u0000\u15d2\u15d3\u0003)\u0014\u0000\u15d3\u15d4\u0003\u000f\u0007"+ + "\u0000\u15d4\u03ae\u0001\u0000\u0000\u0000\u15d5\u15d6\u0003%\u0012\u0000"+ + "\u15d6\u15d7\u0003/\u0017\u0000\u15d7\u15d8\u0003\t\u0004\u0000\u15d8"+ + "\u15d9\u0003\u001d\u000e\u0000\u15d9\u15da\u0003\u0017\u000b\u0000\u15da"+ + "\u15db\u0003\u000b\u0005\u0000\u15db\u03b0\u0001\u0000\u0000\u0000\u15dc"+ + "\u15dd\u0003%\u0012\u0000\u15dd\u15de\u0003/\u0017\u0000\u15de\u15df\u0003"+ + "\t\u0004\u0000\u15df\u15e0\u0003\u001d\u000e\u0000\u15e0\u15e1\u0003\u0017"+ + "\u000b\u0000\u15e1\u15e2\u0003\u000b\u0005\u0000\u15e2\u15e3\u0003\u0007"+ + "\u0003\u0000\u15e3\u15e4\u0003-\u0016\u0000\u15e4\u15e5\u0003\u0017\u000b"+ + "\u0000\u15e5\u15e6\u0003#\u0011\u0000\u15e6\u15e7\u0003!\u0010\u0000\u15e7"+ + "\u03b2\u0001\u0000\u0000\u0000\u15e8\u15e9\u0003\'\u0013\u0000\u15e9\u15ea"+ + "\u0003/\u0017\u0000\u15ea\u15eb\u0003#\u0011\u0000\u15eb\u15ec\u0003-"+ + "\u0016\u0000\u15ec\u15ed\u0003\u000f\u0007\u0000\u15ed\u03b4\u0001\u0000"+ + "\u0000\u0000\u15ee\u15ef\u0003)\u0014\u0000\u15ef\u15f0\u0003\u0007\u0003"+ + "\u0000\u15f0\u15f1\u0003!\u0010\u0000\u15f1\u15f2\u0003\u0013\t\u0000"+ + "\u15f2\u15f3\u0003\u000f\u0007\u0000\u15f3\u03b6\u0001\u0000\u0000\u0000"+ + "\u15f4\u15f5\u0003)\u0014\u0000\u15f5\u15f6\u0003\u0007\u0003\u0000\u15f6"+ + "\u15f7\u0003!\u0010\u0000\u15f7\u15f8\u0003\u001b\r\u0000\u15f8\u03b8"+ + "\u0001\u0000\u0000\u0000\u15f9\u15fa\u0003)\u0014\u0000\u15fa\u15fb\u0003"+ + "\u000f\u0007\u0000\u15fb\u15fc\u0003\u0007\u0003\u0000\u15fc\u15fd\u0003"+ + "\r\u0006\u0000\u15fd\u03ba\u0001\u0000\u0000\u0000\u15fe\u15ff\u0003)"+ + "\u0014\u0000\u15ff\u1600\u0003\u000f\u0007\u0000\u1600\u1601\u0003\u0007"+ + "\u0003\u0000\u1601\u1602\u0003\r\u0006\u0000\u1602\u1603\u0003+\u0015"+ + "\u0000\u1603\u03bc\u0001\u0000\u0000\u0000\u1604\u1605\u0003)\u0014\u0000"+ + "\u1605\u1606\u0003\u000f\u0007\u0000\u1606\u1607\u0003\u0007\u0003\u0000"+ + "\u1607\u1608\u0003\u001d\u000e\u0000\u1608\u03be\u0001\u0000\u0000\u0000"+ + "\u1609\u160a\u0003)\u0014\u0000\u160a\u160b\u0003\u000f\u0007\u0000\u160b"+ + "\u160c\u0003\u0007\u0003\u0000\u160c\u160d\u0003+\u0015\u0000\u160d\u160e"+ + "\u0003+\u0015\u0000\u160e\u160f\u0003\u0017\u000b\u0000\u160f\u1610\u0003"+ + "\u0013\t\u0000\u1610\u1611\u0003!\u0010\u0000\u1611\u03c0\u0001\u0000"+ + "\u0000\u0000\u1612\u1613\u0003)\u0014\u0000\u1613\u1614\u0003\u000f\u0007"+ + "\u0000\u1614\u1615\u0003\u000b\u0005\u0000\u1615\u1616\u0003\u0015\n\u0000"+ + "\u1616\u1617\u0003\u000f\u0007\u0000\u1617\u1618\u0003\u000b\u0005\u0000"+ + "\u1618\u1619\u0003\u001b\r\u0000\u1619\u03c2\u0001\u0000\u0000\u0000\u161a"+ + "\u161b\u0003)\u0014\u0000\u161b\u161c\u0003\u000f\u0007\u0000\u161c\u161d"+ + "\u0003\u000b\u0005\u0000\u161d\u161e\u0003/\u0017\u0000\u161e\u161f\u0003"+ + ")\u0014\u0000\u161f\u1620\u0003+\u0015\u0000\u1620\u1621\u0003\u0017\u000b"+ + "\u0000\u1621\u1622\u00031\u0018\u0000\u1622\u1623\u0003\u000f\u0007\u0000"+ + "\u1623\u03c4\u0001\u0000\u0000\u0000\u1624\u1625\u0003)\u0014\u0000\u1625"+ + "\u1626\u0003\u000f\u0007\u0000\u1626\u1627\u0003\u0011\b\u0000\u1627\u03c6"+ + "\u0001\u0000\u0000\u0000\u1628\u1629\u0003)\u0014\u0000\u1629\u162a\u0003"+ + "\u000f\u0007\u0000\u162a\u162b\u0003\u0011\b\u0000\u162b\u162c\u0003\u000f"+ + "\u0007\u0000\u162c\u162d\u0003)\u0014\u0000\u162d\u162e\u0003\u000f\u0007"+ + "\u0000\u162e\u162f\u0003!\u0010\u0000\u162f\u1630\u0003\u000b\u0005\u0000"+ + "\u1630\u1631\u0003\u000f\u0007\u0000\u1631\u1632\u0003+\u0015\u0000\u1632"+ + "\u03c8\u0001\u0000\u0000\u0000\u1633\u1634\u0003)\u0014\u0000\u1634\u1635"+ + "\u0003\u000f\u0007\u0000\u1635\u1636\u0003\u0011\b\u0000\u1636\u1637\u0003"+ + "\u000f\u0007\u0000\u1637\u1638\u0003)\u0014\u0000\u1638\u1639\u0003\u000f"+ + "\u0007\u0000\u1639\u163a\u0003!\u0010\u0000\u163a\u163b\u0003\u000b\u0005"+ + "\u0000\u163b\u163c\u0003\u0017\u000b\u0000\u163c\u163d\u0003!\u0010\u0000"+ + "\u163d\u163e\u0003\u0013\t\u0000\u163e\u03ca\u0001\u0000\u0000\u0000\u163f"+ + "\u1640\u0003)\u0014\u0000\u1640\u1641\u0003\u000f\u0007\u0000\u1641\u1642"+ + "\u0003\u0011\b\u0000\u1642\u1643\u0003)\u0014\u0000\u1643\u1644\u0003"+ + "\u000f\u0007\u0000\u1644\u1645\u0003+\u0015\u0000\u1645\u1646\u0003\u0015"+ + "\n\u0000\u1646\u03cc\u0001\u0000\u0000\u0000\u1647\u1648\u0003)\u0014"+ + "\u0000\u1648\u1649\u0003\u000f\u0007\u0000\u1649\u164a\u0003\u0013\t\u0000"+ + "\u164a\u164b\u0003)\u0014\u0000\u164b\u164c\u0005_\u0000\u0000\u164c\u164d"+ + "\u0003\u0007\u0003\u0000\u164d\u164e\u00031\u0018\u0000\u164e\u164f\u0003"+ + "\u0013\t\u0000\u164f\u1650\u00035\u001a\u0000\u1650\u03ce\u0001\u0000"+ + "\u0000\u0000\u1651\u1652\u0003)\u0014\u0000\u1652\u1653\u0003\u000f\u0007"+ + "\u0000\u1653\u1654\u0003\u0013\t\u0000\u1654\u1655\u0003)\u0014\u0000"+ + "\u1655\u1656\u0005_\u0000\u0000\u1656\u1657\u0003\u0007\u0003\u0000\u1657"+ + "\u1658\u00031\u0018\u0000\u1658\u1659\u0003\u0013\t\u0000\u1659\u165a"+ + "\u00037\u001b\u0000\u165a\u03d0\u0001\u0000\u0000\u0000\u165b\u165c\u0003"+ + ")\u0014\u0000\u165c\u165d\u0003\u000f\u0007\u0000\u165d\u165e\u0003\u0013"+ + "\t\u0000\u165e\u165f\u0003)\u0014\u0000\u165f\u1660\u0005_\u0000\u0000"+ + "\u1660\u1661\u0003\u000b\u0005\u0000\u1661\u1662\u0003#\u0011\u0000\u1662"+ + "\u1663\u0003/\u0017\u0000\u1663\u1664\u0003!\u0010\u0000\u1664\u1665\u0003"+ + "-\u0016\u0000\u1665\u03d2\u0001\u0000\u0000\u0000\u1666\u1667\u0003)\u0014"+ + "\u0000\u1667\u1668\u0003\u000f\u0007\u0000\u1668\u1669\u0003\u0013\t\u0000"+ + "\u1669\u166a\u0003)\u0014\u0000\u166a\u166b\u0005_\u0000\u0000\u166b\u166c"+ + "\u0003\u0017\u000b\u0000\u166c\u166d\u0003!\u0010\u0000\u166d\u166e\u0003"+ + "-\u0016\u0000\u166e\u166f\u0003\u000f\u0007\u0000\u166f\u1670\u0003)\u0014"+ + "\u0000\u1670\u1671\u0003\u000b\u0005\u0000\u1671\u1672\u0003\u000f\u0007"+ + "\u0000\u1672\u1673\u0003%\u0012\u0000\u1673\u1674\u0003-\u0016\u0000\u1674"+ + "\u03d4\u0001\u0000\u0000\u0000\u1675\u1676\u0003)\u0014\u0000\u1676\u1677"+ + "\u0003\u000f\u0007\u0000\u1677\u1678\u0003\u0013\t\u0000\u1678\u1679\u0003"+ + ")\u0014\u0000\u1679\u167a\u0005_\u0000\u0000\u167a\u167b\u0003)\u0014"+ + "\u0000\u167b\u167c\u00052\u0000\u0000\u167c\u03d6\u0001\u0000\u0000\u0000"+ + "\u167d\u167e\u0003)\u0014\u0000\u167e\u167f\u0003\u000f\u0007\u0000\u167f"+ + "\u1680\u0003\u0013\t\u0000\u1680\u1681\u0003)\u0014\u0000\u1681\u1682"+ + "\u0005_\u0000\u0000\u1682\u1683\u0003+\u0015\u0000\u1683\u1684\u0003\u001d"+ + "\u000e\u0000\u1684\u1685\u0003#\u0011\u0000\u1685\u1686\u0003%\u0012\u0000"+ + "\u1686\u1687\u0003\u000f\u0007\u0000\u1687\u03d8\u0001\u0000\u0000\u0000"+ + "\u1688\u1689\u0003)\u0014\u0000\u1689\u168a\u0003\u000f\u0007\u0000\u168a"+ + "\u168b\u0003\u0013\t\u0000\u168b\u168c\u0003)\u0014\u0000\u168c\u168d"+ + "\u0005_\u0000\u0000\u168d\u168e\u0003+\u0015\u0000\u168e\u168f\u00035"+ + "\u001a\u0000\u168f\u1690\u00035\u001a\u0000\u1690\u03da\u0001\u0000\u0000"+ + "\u0000\u1691\u1692\u0003)\u0014\u0000\u1692\u1693\u0003\u000f\u0007\u0000"+ + "\u1693\u1694\u0003\u0013\t\u0000\u1694\u1695\u0003)\u0014\u0000\u1695"+ + "\u1696\u0005_\u0000\u0000\u1696\u1697\u0003+\u0015\u0000\u1697\u1698\u0003"+ + "5\u001a\u0000\u1698\u1699\u00037\u001b\u0000\u1699\u03dc\u0001\u0000\u0000"+ + "\u0000\u169a\u169b\u0003)\u0014\u0000\u169b\u169c\u0003\u000f\u0007\u0000"+ + "\u169c\u169d\u0003\u0013\t\u0000\u169d\u169e\u0003)\u0014\u0000\u169e"+ + "\u169f\u0005_\u0000\u0000\u169f\u16a0\u0003+\u0015\u0000\u16a0\u16a1\u0003"+ + "7\u001b\u0000\u16a1\u16a2\u00037\u001b\u0000\u16a2\u03de\u0001\u0000\u0000"+ + "\u0000\u16a3\u16a4\u0003)\u0014\u0000\u16a4\u16a5\u0003\u000f\u0007\u0000"+ + "\u16a5\u16a6\u0003\u0017\u000b\u0000\u16a6\u16a7\u0003!\u0010\u0000\u16a7"+ + "\u16a8\u0003\r\u0006\u0000\u16a8\u16a9\u0003\u000f\u0007\u0000\u16a9\u16aa"+ + "\u00035\u001a\u0000\u16aa\u03e0\u0001\u0000\u0000\u0000\u16ab\u16ac\u0003"+ + ")\u0014\u0000\u16ac\u16ad\u0003\u000f\u0007\u0000\u16ad\u16ae\u0003\u001d"+ + "\u000e\u0000\u16ae\u16af\u0003\u0007\u0003\u0000\u16af\u16b0\u0003-\u0016"+ + "\u0000\u16b0\u16b1\u0003\u0017\u000b\u0000\u16b1\u16b2\u00031\u0018\u0000"+ + "\u16b2\u16b3\u0003\u000f\u0007\u0000\u16b3\u03e2\u0001\u0000\u0000\u0000"+ + "\u16b4\u16b5\u0003)\u0014\u0000\u16b5\u16b6\u0003\u000f\u0007\u0000\u16b6"+ + "\u16b7\u0003\u001d\u000e\u0000\u16b7\u16b8\u0003\u000f\u0007\u0000\u16b8"+ + "\u16b9\u0003\u0007\u0003\u0000\u16b9\u16ba\u0003+\u0015\u0000\u16ba\u16bb"+ + "\u0003\u000f\u0007\u0000\u16bb\u03e4\u0001\u0000\u0000\u0000\u16bc\u16bd"+ + "\u0003)\u0014\u0000\u16bd\u16be\u0003\u000f\u0007\u0000\u16be\u16bf\u0003"+ + "!\u0010\u0000\u16bf\u16c0\u0003\u0007\u0003\u0000\u16c0\u16c1\u0003\u001f"+ + "\u000f\u0000\u16c1\u16c2\u0003\u000f\u0007\u0000\u16c2\u03e6\u0001\u0000"+ + "\u0000\u0000\u16c3\u16c4\u0003)\u0014\u0000\u16c4\u16c5\u0003\u000f\u0007"+ + "\u0000\u16c5\u16c6\u0003%\u0012\u0000\u16c6\u16c7\u0003\u000f\u0007\u0000"+ + "\u16c7\u16c8\u0003\u0007\u0003\u0000\u16c8\u16c9\u0003-\u0016\u0000\u16c9"+ + "\u16ca\u0003\u0007\u0003\u0000\u16ca\u16cb\u0003\t\u0004\u0000\u16cb\u16cc"+ + "\u0003\u001d\u000e\u0000\u16cc\u16cd\u0003\u000f\u0007\u0000\u16cd\u03e8"+ + "\u0001\u0000\u0000\u0000\u16ce\u16cf\u0003)\u0014\u0000\u16cf\u16d0\u0003"+ + "\u000f\u0007\u0000\u16d0\u16d1\u0003%\u0012\u0000\u16d1\u16d2\u0003\u001d"+ + "\u000e\u0000\u16d2\u16d3\u0003\u0007\u0003\u0000\u16d3\u16d4\u0003\u000b"+ + "\u0005\u0000\u16d4\u16d5\u0003\u000f\u0007\u0000\u16d5\u03ea\u0001\u0000"+ + "\u0000\u0000\u16d6\u16d7\u0003)\u0014\u0000\u16d7\u16d8\u0003\u000f\u0007"+ + "\u0000\u16d8\u16d9\u0003%\u0012\u0000\u16d9\u16da\u0003\u001d\u000e\u0000"+ + "\u16da\u16db\u0003\u0017\u000b\u0000\u16db\u16dc\u0003\u000b\u0005\u0000"+ + "\u16dc\u16dd\u0003\u0007\u0003\u0000\u16dd\u03ec\u0001\u0000\u0000\u0000"+ + "\u16de\u16df\u0003)\u0014\u0000\u16df\u16e0\u0003\u000f\u0007\u0000\u16e0"+ + "\u16e1\u0003+\u0015\u0000\u16e1\u16e2\u0003\u000f\u0007\u0000\u16e2\u16e3"+ + "\u0003-\u0016\u0000\u16e3\u03ee\u0001\u0000\u0000\u0000\u16e4\u16e5\u0003"+ + ")\u0014\u0000\u16e5\u16e6\u0003\u000f\u0007\u0000\u16e6\u16e7\u0003+\u0015"+ + "\u0000\u16e7\u16e8\u0003-\u0016\u0000\u16e8\u16e9\u0003\u0007\u0003\u0000"+ + "\u16e9\u16ea\u0003)\u0014\u0000\u16ea\u16eb\u0003-\u0016\u0000\u16eb\u03f0"+ + "\u0001\u0000\u0000\u0000\u16ec\u16ed\u0003)\u0014\u0000\u16ed\u16ee\u0003"+ + "\u000f\u0007\u0000\u16ee\u16ef\u0003+\u0015\u0000\u16ef\u16f0\u0003-\u0016"+ + "\u0000\u16f0\u16f1\u0003)\u0014\u0000\u16f1\u16f2\u0003\u0017\u000b\u0000"+ + "\u16f2\u16f3\u0003\u000b\u0005\u0000\u16f3\u16f4\u0003-\u0016\u0000\u16f4"+ + "\u03f2\u0001\u0000\u0000\u0000\u16f5\u16f6\u0003)\u0014\u0000\u16f6\u16f7"+ + "\u0003\u000f\u0007\u0000\u16f7\u16f8\u0003+\u0015\u0000\u16f8\u16f9\u0003"+ + "/\u0017\u0000\u16f9\u16fa\u0003\u001d\u000e\u0000\u16fa\u16fb\u0003-\u0016"+ + "\u0000\u16fb\u03f4\u0001\u0000\u0000\u0000\u16fc\u16fd\u0003)\u0014\u0000"+ + "\u16fd\u16fe\u0003\u000f\u0007\u0000\u16fe\u16ff\u0003-\u0016\u0000\u16ff"+ + "\u1700\u0003/\u0017\u0000\u1700\u1701\u0003)\u0014\u0000\u1701\u1702\u0003"+ + "!\u0010\u0000\u1702\u03f6\u0001\u0000\u0000\u0000\u1703\u1704\u0003)\u0014"+ + "\u0000\u1704\u1705\u0003\u000f\u0007\u0000\u1705\u1706\u0003-\u0016\u0000"+ + "\u1706\u1707\u0003/\u0017\u0000\u1707\u1708\u0003)\u0014\u0000\u1708\u1709"+ + "\u0003!\u0010\u0000\u1709\u170a\u0003\u000f\u0007\u0000\u170a\u170b\u0003"+ + "\r\u0006\u0000\u170b\u170c\u0005_\u0000\u0000\u170c\u170d\u0003\u000b"+ + "\u0005\u0000\u170d\u170e\u0003\u0007\u0003\u0000\u170e\u170f\u0003)\u0014"+ + "\u0000\u170f\u1710\u0003\r\u0006\u0000\u1710\u1711\u0003\u0017\u000b\u0000"+ + "\u1711\u1712\u0003!\u0010\u0000\u1712\u1713\u0003\u0007\u0003\u0000\u1713"+ + "\u1714\u0003\u001d\u000e\u0000\u1714\u1715\u0003\u0017\u000b\u0000\u1715"+ + "\u1716\u0003-\u0016\u0000\u1716\u1717\u00037\u001b\u0000\u1717\u03f8\u0001"+ + "\u0000\u0000\u0000\u1718\u1719\u0003)\u0014\u0000\u1719\u171a\u0003\u000f"+ + "\u0007\u0000\u171a\u171b\u0003-\u0016\u0000\u171b\u171c\u0003/\u0017\u0000"+ + "\u171c\u171d\u0003)\u0014\u0000\u171d\u171e\u0003!\u0010\u0000\u171e\u171f"+ + "\u0003\u000f\u0007\u0000\u171f\u1720\u0003\r\u0006\u0000\u1720\u1721\u0005"+ + "_\u0000\u0000\u1721\u1722\u0003\u001d\u000e\u0000\u1722\u1723\u0003\u000f"+ + "\u0007\u0000\u1723\u1724\u0003!\u0010\u0000\u1724\u1725\u0003\u0013\t"+ + "\u0000\u1725\u1726\u0003-\u0016\u0000\u1726\u1727\u0003\u0015\n\u0000"+ + "\u1727\u03fa\u0001\u0000\u0000\u0000\u1728\u1729\u0003)\u0014\u0000\u1729"+ + "\u172a\u0003\u000f\u0007\u0000\u172a\u172b\u0003-\u0016\u0000\u172b\u172c"+ + "\u0003/\u0017\u0000\u172c\u172d\u0003)\u0014\u0000\u172d\u172e\u0003!"+ + "\u0010\u0000\u172e\u172f\u0003\u000f\u0007\u0000\u172f\u1730\u0003\r\u0006"+ + "\u0000\u1730\u1731\u0005_\u0000\u0000\u1731\u1732\u0003#\u0011\u0000\u1732"+ + "\u1733\u0003\u000b\u0005\u0000\u1733\u1734\u0003-\u0016\u0000\u1734\u1735"+ + "\u0003\u000f\u0007\u0000\u1735\u1736\u0003-\u0016\u0000\u1736\u1737\u0005"+ + "_\u0000\u0000\u1737\u1738\u0003\u001d\u000e\u0000\u1738\u1739\u0003\u000f"+ + "\u0007\u0000\u1739\u173a\u0003!\u0010\u0000\u173a\u173b\u0003\u0013\t"+ + "\u0000\u173b\u173c\u0003-\u0016\u0000\u173c\u173d\u0003\u0015\n\u0000"+ + "\u173d\u03fc\u0001\u0000\u0000\u0000\u173e\u173f\u0003)\u0014\u0000\u173f"+ + "\u1740\u0003\u000f\u0007\u0000\u1740\u1741\u0003-\u0016\u0000\u1741\u1742"+ + "\u0003/\u0017\u0000\u1742\u1743\u0003)\u0014\u0000\u1743\u1744\u0003!"+ + "\u0010\u0000\u1744\u1745\u0003\u000f\u0007\u0000\u1745\u1746\u0003\r\u0006"+ + "\u0000\u1746\u1747\u0005_\u0000\u0000\u1747\u1748\u0003+\u0015\u0000\u1748"+ + "\u1749\u0003\'\u0013\u0000\u1749\u174a\u0003\u001d\u000e\u0000\u174a\u174b"+ + "\u0003+\u0015\u0000\u174b\u174c\u0003-\u0016\u0000\u174c\u174d\u0003\u0007"+ + "\u0003\u0000\u174d\u174e\u0003-\u0016\u0000\u174e\u174f\u0003\u000f\u0007"+ + "\u0000\u174f\u03fe\u0001\u0000\u0000\u0000\u1750\u1751\u0003)\u0014\u0000"+ + "\u1751\u1752\u0003\u000f\u0007\u0000\u1752\u1753\u0003-\u0016\u0000\u1753"+ + "\u1754\u0003/\u0017\u0000\u1754\u1755\u0003)\u0014\u0000\u1755\u1756\u0003"+ + "!\u0010\u0000\u1756\u1757\u0003\u0017\u000b\u0000\u1757\u1758\u0003!\u0010"+ + "\u0000\u1758\u1759\u0003\u0013\t\u0000\u1759\u0400\u0001\u0000\u0000\u0000"+ + "\u175a\u175b\u0003)\u0014\u0000\u175b\u175c\u0003\u000f\u0007\u0000\u175c"+ + "\u175d\u0003-\u0016\u0000\u175d\u175e\u0003/\u0017\u0000\u175e\u175f\u0003"+ + ")\u0014\u0000\u175f\u1760\u0003!\u0010\u0000\u1760\u1761\u0003+\u0015"+ + "\u0000\u1761\u0402\u0001\u0000\u0000\u0000\u1762\u1763\u0003)\u0014\u0000"+ + "\u1763\u1764\u0003\u000f\u0007\u0000\u1764\u1765\u00031\u0018\u0000\u1765"+ + "\u1766\u0003#\u0011\u0000\u1766\u1767\u0003\u001b\r\u0000\u1767\u1768"+ + "\u0003\u000f\u0007\u0000\u1768\u0404\u0001\u0000\u0000\u0000\u1769\u176a"+ + "\u0003)\u0014\u0000\u176a\u176b\u0003\u0017\u000b\u0000\u176b\u176c\u0003"+ + "\u0013\t\u0000\u176c\u176d\u0003\u0015\n\u0000\u176d\u176e\u0003-\u0016"+ + "\u0000\u176e\u0406\u0001\u0000\u0000\u0000\u176f\u1770\u0003)\u0014\u0000"+ + "\u1770\u1771\u0003#\u0011\u0000\u1771\u1772\u0003\u001d\u000e\u0000\u1772"+ + "\u1773\u0003\u000f\u0007\u0000\u1773\u0408\u0001\u0000\u0000\u0000\u1774"+ + "\u1775\u0003)\u0014\u0000\u1775\u1776\u0003#\u0011\u0000\u1776\u1777\u0003"+ + "\u001d\u000e\u0000\u1777\u1778\u0003\u001d\u000e\u0000\u1778\u1779\u0003"+ + "\t\u0004\u0000\u1779\u177a\u0003\u0007\u0003\u0000\u177a\u177b\u0003\u000b"+ + "\u0005\u0000\u177b\u177c\u0003\u001b\r\u0000\u177c\u040a\u0001\u0000\u0000"+ + "\u0000\u177d\u177e\u0003)\u0014\u0000\u177e\u177f\u0003#\u0011\u0000\u177f"+ + "\u1780\u0003\u001d\u000e\u0000\u1780\u1781\u0003\u001d\u000e\u0000\u1781"+ + "\u1782\u0003/\u0017\u0000\u1782\u1783\u0003%\u0012\u0000\u1783\u040c\u0001"+ + "\u0000\u0000\u0000\u1784\u1785\u0003)\u0014\u0000\u1785\u1786\u0003#\u0011"+ + "\u0000\u1786\u1787\u0003/\u0017\u0000\u1787\u1788\u0003-\u0016\u0000\u1788"+ + "\u1789\u0003\u0017\u000b\u0000\u1789\u178a\u0003!\u0010\u0000\u178a\u178b"+ + "\u0003\u000f\u0007\u0000\u178b\u040e\u0001\u0000\u0000\u0000\u178c\u178d"+ + "\u0003)\u0014\u0000\u178d\u178e\u0003#\u0011\u0000\u178e\u178f\u0003/"+ + "\u0017\u0000\u178f\u1790\u0003-\u0016\u0000\u1790\u1791\u0003\u0017\u000b"+ + "\u0000\u1791\u1792\u0003!\u0010\u0000\u1792\u1793\u0003\u000f\u0007\u0000"+ + "\u1793\u1794\u0005_\u0000\u0000\u1794\u1795\u0003\u000b\u0005\u0000\u1795"+ + "\u1796\u0003\u0007\u0003\u0000\u1796\u1797\u0003-\u0016\u0000\u1797\u1798"+ + "\u0003\u0007\u0003\u0000\u1798\u1799\u0003\u001d\u000e\u0000\u1799\u179a"+ + "\u0003#\u0011\u0000\u179a\u179b\u0003\u0013\t\u0000\u179b\u0410\u0001"+ + "\u0000\u0000\u0000\u179c\u179d\u0003)\u0014\u0000\u179d\u179e\u0003#\u0011"+ + "\u0000\u179e\u179f\u0003/\u0017\u0000\u179f\u17a0\u0003-\u0016\u0000\u17a0"+ + "\u17a1\u0003\u0017\u000b\u0000\u17a1\u17a2\u0003!\u0010\u0000\u17a2\u17a3"+ + "\u0003\u000f\u0007\u0000\u17a3\u17a4\u0005_\u0000\u0000\u17a4\u17a5\u0003"+ + "!\u0010\u0000\u17a5\u17a6\u0003\u0007\u0003\u0000\u17a6\u17a7\u0003\u001f"+ + "\u000f\u0000\u17a7\u17a8\u0003\u000f\u0007\u0000\u17a8\u0412\u0001\u0000"+ + "\u0000\u0000\u17a9\u17aa\u0003)\u0014\u0000\u17aa\u17ab\u0003#\u0011\u0000"+ + "\u17ab\u17ac\u0003/\u0017\u0000\u17ac\u17ad\u0003-\u0016\u0000\u17ad\u17ae"+ + "\u0003\u0017\u000b\u0000\u17ae\u17af\u0003!\u0010\u0000\u17af\u17b0\u0003"+ + "\u000f\u0007\u0000\u17b0\u17b1\u0005_\u0000\u0000\u17b1\u17b2\u0003+\u0015"+ + "\u0000\u17b2\u17b3\u0003\u000b\u0005\u0000\u17b3\u17b4\u0003\u0015\n\u0000"+ + "\u17b4\u17b5\u0003\u000f\u0007\u0000\u17b5\u17b6\u0003\u001f\u000f\u0000"+ + "\u17b6\u17b7\u0003\u0007\u0003\u0000\u17b7\u0414\u0001\u0000\u0000\u0000"+ + "\u17b8\u17b9\u0003)\u0014\u0000\u17b9\u17ba\u0003#\u0011\u0000\u17ba\u17bb"+ + "\u00033\u0019\u0000\u17bb\u0416\u0001\u0000\u0000\u0000\u17bc\u17bd\u0003"+ + ")\u0014\u0000\u17bd\u17be\u0003#\u0011\u0000\u17be\u17bf\u00033\u0019"+ + "\u0000\u17bf\u17c0\u0005_\u0000\u0000\u17c0\u17c1\u0003\u000b\u0005\u0000"+ + "\u17c1\u17c2\u0003#\u0011\u0000\u17c2\u17c3\u0003/\u0017\u0000\u17c3\u17c4"+ + "\u0003!\u0010\u0000\u17c4\u17c5\u0003-\u0016\u0000\u17c5\u0418\u0001\u0000"+ + "\u0000\u0000\u17c6\u17c7\u0003)\u0014\u0000\u17c7\u17c8\u0003#\u0011\u0000"+ + "\u17c8\u17c9\u00033\u0019\u0000\u17c9\u17ca\u0005_\u0000\u0000\u17ca\u17cb"+ + "\u0003!\u0010\u0000\u17cb\u17cc\u0003/\u0017\u0000\u17cc\u17cd\u0003\u001f"+ + "\u000f\u0000\u17cd\u17ce\u0003\t\u0004\u0000\u17ce\u17cf\u0003\u000f\u0007"+ + "\u0000\u17cf\u17d0\u0003)\u0014\u0000\u17d0\u041a\u0001\u0000\u0000\u0000"+ + "\u17d1\u17d2\u0003)\u0014\u0000\u17d2\u17d3\u0003#\u0011\u0000\u17d3\u17d4"+ + "\u00033\u0019\u0000\u17d4\u17d5\u0003+\u0015\u0000\u17d5\u041c\u0001\u0000"+ + "\u0000\u0000\u17d6\u17d7\u0003)\u0014\u0000\u17d7\u17d8\u0003/\u0017\u0000"+ + "\u17d8\u17d9\u0003\u001d\u000e\u0000\u17d9\u17da\u0003\u000f\u0007\u0000"+ + "\u17da\u041e\u0001\u0000\u0000\u0000\u17db\u17dc\u0003+\u0015\u0000\u17dc"+ + "\u17dd\u0003\u0007\u0003\u0000\u17dd\u17de\u00031\u0018\u0000\u17de\u17df"+ + "\u0003\u000f\u0007\u0000\u17df\u17e0\u0003%\u0012\u0000\u17e0\u17e1\u0003"+ + "#\u0011\u0000\u17e1\u17e2\u0003\u0017\u000b\u0000\u17e2\u17e3\u0003!\u0010"+ + "\u0000\u17e3\u17e4\u0003-\u0016\u0000\u17e4\u0420\u0001\u0000\u0000\u0000"+ + "\u17e5\u17e6\u0003+\u0015\u0000\u17e6\u17e7\u0003\u000b\u0005\u0000\u17e7"+ + "\u17e8\u0003\u0007\u0003\u0000\u17e8\u17e9\u0003\u001d\u000e\u0000\u17e9"+ + "\u17ea\u0003\u000f\u0007\u0000\u17ea\u0422\u0001\u0000\u0000\u0000\u17eb"+ + "\u17ec\u0003+\u0015\u0000\u17ec\u17ed\u0003\u000b\u0005\u0000\u17ed\u17ee"+ + "\u0003\u0015\n\u0000\u17ee\u17ef\u0003\u000f\u0007\u0000\u17ef\u17f0\u0003"+ + "\u001f\u000f\u0000\u17f0\u17f1\u0003\u0007\u0003\u0000\u17f1\u0424\u0001"+ + "\u0000\u0000\u0000\u17f2\u17f3\u0003+\u0015\u0000\u17f3\u17f4\u0003\u000b"+ + "\u0005\u0000\u17f4\u17f5\u0003\u0015\n\u0000\u17f5\u17f6\u0003\u000f\u0007"+ + "\u0000\u17f6\u17f7\u0003\u001f\u000f\u0000\u17f7\u17f8\u0003\u0007\u0003"+ + "\u0000\u17f8\u17f9\u0005_\u0000\u0000\u17f9\u17fa\u0003!\u0010\u0000\u17fa"+ + "\u17fb\u0003\u0007\u0003\u0000\u17fb\u17fc\u0003\u001f\u000f\u0000\u17fc"+ + "\u17fd\u0003\u000f\u0007\u0000\u17fd\u0426\u0001\u0000\u0000\u0000\u17fe"+ + "\u17ff\u0003+\u0015\u0000\u17ff\u1800\u0003\u000b\u0005\u0000\u1800\u1801"+ + "\u0003#\u0011\u0000\u1801\u1802\u0003%\u0012\u0000\u1802\u1803\u0003\u000f"+ + "\u0007\u0000\u1803\u0428\u0001\u0000\u0000\u0000\u1804\u1805\u0003+\u0015"+ + "\u0000\u1805\u1806\u0003\u000b\u0005\u0000\u1806\u1807\u0003#\u0011\u0000"+ + "\u1807\u1808\u0003%\u0012\u0000\u1808\u1809\u0003\u000f\u0007\u0000\u1809"+ + "\u180a\u0005_\u0000\u0000\u180a\u180b\u0003\u000b\u0005\u0000\u180b\u180c"+ + "\u0003\u0007\u0003\u0000\u180c\u180d\u0003-\u0016\u0000\u180d\u180e\u0003"+ + "\u0007\u0003\u0000\u180e\u180f\u0003\u001d\u000e\u0000\u180f\u1810\u0003"+ + "#\u0011\u0000\u1810\u1811\u0003\u0013\t\u0000\u1811\u042a\u0001\u0000"+ + "\u0000\u0000\u1812\u1813\u0003+\u0015\u0000\u1813\u1814\u0003\u000b\u0005"+ + "\u0000\u1814\u1815\u0003#\u0011\u0000\u1815\u1816\u0003%\u0012\u0000\u1816"+ + "\u1817\u0003\u000f\u0007\u0000\u1817\u1818\u0005_\u0000\u0000\u1818\u1819"+ + "\u0003!\u0010\u0000\u1819\u181a\u0003\u0007\u0003\u0000\u181a\u181b\u0003"+ + "\u001f\u000f\u0000\u181b\u181c\u0003\u000f\u0007\u0000\u181c\u042c\u0001"+ + "\u0000\u0000\u0000\u181d\u181e\u0003+\u0015\u0000\u181e\u181f\u0003\u000b"+ + "\u0005\u0000\u181f\u1820\u0003#\u0011\u0000\u1820\u1821\u0003%\u0012\u0000"+ + "\u1821\u1822\u0003\u000f\u0007\u0000\u1822\u1823\u0005_\u0000\u0000\u1823"+ + "\u1824\u0003+\u0015\u0000\u1824\u1825\u0003\u000b\u0005\u0000\u1825\u1826"+ + "\u0003\u0015\n\u0000\u1826\u1827\u0003\u000f\u0007\u0000\u1827\u1828\u0003"+ + "\u001f\u000f\u0000\u1828\u1829\u0003\u0007\u0003\u0000\u1829\u042e\u0001"+ + "\u0000\u0000\u0000\u182a\u182b\u0003+\u0015\u0000\u182b\u182c\u0003\u000b"+ + "\u0005\u0000\u182c\u182d\u0003)\u0014\u0000\u182d\u182e\u0003#\u0011\u0000"+ + "\u182e\u182f\u0003\u001d\u000e\u0000\u182f\u1830\u0003\u001d\u000e\u0000"+ + "\u1830\u0430\u0001\u0000\u0000\u0000\u1831\u1832\u0003+\u0015\u0000\u1832"+ + "\u1833\u0003\u000f\u0007\u0000\u1833\u1834\u0003\u0007\u0003\u0000\u1834"+ + "\u1835\u0003)\u0014\u0000\u1835\u1836\u0003\u000b\u0005\u0000\u1836\u1837"+ + "\u0003\u0015\n\u0000\u1837\u0432\u0001\u0000\u0000\u0000\u1838\u1839\u0003"+ + "+\u0015\u0000\u1839\u183a\u0003\u000f\u0007\u0000\u183a\u183b\u0003\u000b"+ + "\u0005\u0000\u183b\u183c\u0003#\u0011\u0000\u183c\u183d\u0003!\u0010\u0000"+ + "\u183d\u183e\u0003\r\u0006\u0000\u183e\u0434\u0001\u0000\u0000\u0000\u183f"+ + "\u1840\u0003+\u0015\u0000\u1840\u1841\u0003\u000f\u0007\u0000\u1841\u1842"+ + "\u0003\u000b\u0005\u0000\u1842\u1843\u0003-\u0016\u0000\u1843\u1844\u0003"+ + "\u0017\u000b\u0000\u1844\u1845\u0003#\u0011\u0000\u1845\u1846\u0003!\u0010"+ + "\u0000\u1846\u0436\u0001\u0000\u0000\u0000\u1847\u1848\u0003+\u0015\u0000"+ + "\u1848\u1849\u0003\u000f\u0007\u0000\u1849\u184a\u0003\u000b\u0005\u0000"+ + "\u184a\u184b\u0003/\u0017\u0000\u184b\u184c\u0003)\u0014\u0000\u184c\u184d"+ + "\u0003\u0017\u000b\u0000\u184d\u184e\u0003-\u0016\u0000\u184e\u184f\u0003"+ + "7\u001b\u0000\u184f\u0438\u0001\u0000\u0000\u0000\u1850\u1851\u0003+\u0015"+ + "\u0000\u1851\u1852\u0003\u000f\u0007\u0000\u1852\u1853\u0003\u001d\u000e"+ + "\u0000\u1853\u1854\u0003\u000f\u0007\u0000\u1854\u1855\u0003\u000b\u0005"+ + "\u0000\u1855\u1856\u0003-\u0016\u0000\u1856\u043a\u0001\u0000\u0000\u0000"+ + "\u1857\u1858\u0003+\u0015\u0000\u1858\u1859\u0003\u000f\u0007\u0000\u1859"+ + "\u185a\u0003\u001d\u000e\u0000\u185a\u185b\u0003\u0011\b\u0000\u185b\u043c"+ + "\u0001\u0000\u0000\u0000\u185c\u185d\u0003+\u0015\u0000\u185d\u185e\u0003"+ + "\u000f\u0007\u0000\u185e\u185f\u0003!\u0010\u0000\u185f\u1860\u0003+\u0015"+ + "\u0000\u1860\u1861\u0003\u0017\u000b\u0000\u1861\u1862\u0003-\u0016\u0000"+ + "\u1862\u1863\u0003\u0017\u000b\u0000\u1863\u1864\u00031\u0018\u0000\u1864"+ + "\u1865\u0003\u000f\u0007\u0000\u1865\u043e\u0001\u0000\u0000\u0000\u1866"+ + "\u1867\u0003+\u0015\u0000\u1867\u1868\u0003\u000f\u0007\u0000\u1868\u1869"+ + "\u0003\'\u0013\u0000\u1869\u186a\u0003/\u0017\u0000\u186a\u186b\u0003"+ + "\u000f\u0007\u0000\u186b\u186c\u0003!\u0010\u0000\u186c\u186d\u0003\u000b"+ + "\u0005\u0000\u186d\u186e\u0003\u000f\u0007\u0000\u186e\u0440\u0001\u0000"+ + "\u0000\u0000\u186f\u1870\u0003+\u0015\u0000\u1870\u1871\u0003\u000f\u0007"+ + "\u0000\u1871\u1872\u0003\'\u0013\u0000\u1872\u1873\u0003/\u0017\u0000"+ + "\u1873\u1874\u0003\u000f\u0007\u0000\u1874\u1875\u0003!\u0010\u0000\u1875"+ + "\u1876\u0003\u000b\u0005\u0000\u1876\u1877\u0003\u000f\u0007\u0000\u1877"+ + "\u1878\u0003+\u0015\u0000\u1878\u0442\u0001\u0000\u0000\u0000\u1879\u187a"+ + "\u0003+\u0015\u0000\u187a\u187b\u0003\u000f\u0007\u0000\u187b\u187c\u0003"+ + ")\u0014\u0000\u187c\u187d\u0003\u0017\u000b\u0000\u187d\u187e\u0003\u0007"+ + "\u0003\u0000\u187e\u187f\u0003\u001d\u000e\u0000\u187f\u1880\u0003\u0017"+ + "\u000b\u0000\u1880\u1881\u00039\u001c\u0000\u1881\u1882\u0003\u0007\u0003"+ + "\u0000\u1882\u1883\u0003\t\u0004\u0000\u1883\u1884\u0003\u001d\u000e\u0000"+ + "\u1884\u1885\u0003\u000f\u0007\u0000\u1885\u0444\u0001\u0000\u0000\u0000"+ + "\u1886\u1887\u0003+\u0015\u0000\u1887\u1888\u0003\u000f\u0007\u0000\u1888"+ + "\u1889\u0003)\u0014\u0000\u1889\u188a\u00031\u0018\u0000\u188a\u188b\u0003"+ + "\u000f\u0007\u0000\u188b\u188c\u0003)\u0014\u0000\u188c\u188d\u0005_\u0000"+ + "\u0000\u188d\u188e\u0003!\u0010\u0000\u188e\u188f\u0003\u0007\u0003\u0000"+ + "\u188f\u1890\u0003\u001f\u000f\u0000\u1890\u1891\u0003\u000f\u0007\u0000"+ + "\u1891\u0446\u0001\u0000\u0000\u0000\u1892\u1893\u0003+\u0015\u0000\u1893"+ + "\u1894\u0003\u000f\u0007\u0000\u1894\u1895\u0003+\u0015\u0000\u1895\u1896"+ + "\u0003+\u0015\u0000\u1896\u1897\u0003\u0017\u000b\u0000\u1897\u1898\u0003"+ + "#\u0011\u0000\u1898\u1899\u0003!\u0010\u0000\u1899\u0448\u0001\u0000\u0000"+ + "\u0000\u189a\u189b\u0003+\u0015\u0000\u189b\u189c\u0003\u000f\u0007\u0000"+ + "\u189c\u189d\u0003+\u0015\u0000\u189d\u189e\u0003+\u0015\u0000\u189e\u189f"+ + "\u0003\u0017\u000b\u0000\u189f\u18a0\u0003#\u0011\u0000\u18a0\u18a1\u0003"+ + "!\u0010\u0000\u18a1\u18a2\u0005_\u0000\u0000\u18a2\u18a3\u0003/\u0017"+ + "\u0000\u18a3\u18a4\u0003+\u0015\u0000\u18a4\u18a5\u0003\u000f\u0007\u0000"+ + "\u18a5\u18a6\u0003)\u0014\u0000\u18a6\u044a\u0001\u0000\u0000\u0000\u18a7"+ + "\u18a8\u0003+\u0015\u0000\u18a8\u18a9\u0003\u000f\u0007\u0000\u18a9\u18aa"+ + "\u0003-\u0016\u0000\u18aa\u044c\u0001\u0000\u0000\u0000\u18ab\u18ac\u0003"+ + "+\u0015\u0000\u18ac\u18ad\u0003\u000f\u0007\u0000\u18ad\u18ae\u0003-\u0016"+ + "\u0000\u18ae\u18af\u0003#\u0011\u0000\u18af\u18b0\u0003\u0011\b\u0000"+ + "\u18b0\u044e\u0001\u0000\u0000\u0000\u18b1\u18b2\u0003+\u0015\u0000\u18b2"+ + "\u18b3\u0003\u000f\u0007\u0000\u18b3\u18b4\u0003-\u0016\u0000\u18b4\u18b5"+ + "\u0003+\u0015\u0000\u18b5\u0450\u0001\u0000\u0000\u0000\u18b6\u18b7\u0003"+ + "+\u0015\u0000\u18b7\u18b8\u0003\u0015\n\u0000\u18b8\u18b9\u0003\u0007"+ + "\u0003\u0000\u18b9\u18ba\u0003)\u0014\u0000\u18ba\u18bb\u0003\u000f\u0007"+ + "\u0000\u18bb\u0452\u0001\u0000\u0000\u0000\u18bc\u18bd\u0003+\u0015\u0000"+ + "\u18bd\u18be\u0003\u0015\n\u0000\u18be\u18bf\u0003#\u0011\u0000\u18bf"+ + "\u18c0\u00033\u0019\u0000\u18c0\u0454\u0001\u0000\u0000\u0000\u18c1\u18c2"+ + "\u0003+\u0015\u0000\u18c2\u18c3\u0003\u0017\u000b\u0000\u18c3\u18c4\u0003"+ + "\u001f\u000f\u0000\u18c4\u18c5\u0003\u0017\u000b\u0000\u18c5\u18c6\u0003"+ + "\u001d\u000e\u0000\u18c6\u18c7\u0003\u0007\u0003\u0000\u18c7\u18c8\u0003"+ + ")\u0014\u0000\u18c8\u0456\u0001\u0000\u0000\u0000\u18c9\u18ca\u0003+\u0015"+ + "\u0000\u18ca\u18cb\u0003\u0017\u000b\u0000\u18cb\u18cc\u0003\u001f\u000f"+ + "\u0000\u18cc\u18cd\u0003%\u0012\u0000\u18cd\u18ce\u0003\u001d\u000e\u0000"+ + "\u18ce\u18cf\u0003\u000f\u0007\u0000\u18cf\u0458\u0001\u0000\u0000\u0000"+ + "\u18d0\u18d1\u0003+\u0015\u0000\u18d1\u18d2\u0003\u0017\u000b\u0000\u18d2"+ + "\u18d3\u00039\u001c\u0000\u18d3\u18d4\u0003\u000f\u0007\u0000\u18d4\u045a"+ + "\u0001\u0000\u0000\u0000\u18d5\u18d6\u0003+\u0015\u0000\u18d6\u18d7\u0003"+ + "\u001b\r\u0000\u18d7\u18d8\u0003\u0017\u000b\u0000\u18d8\u18d9\u0003%"+ + "\u0012\u0000\u18d9\u045c\u0001\u0000\u0000\u0000\u18da\u18db\u0003+\u0015"+ + "\u0000\u18db\u18dc\u0003\u001f\u000f\u0000\u18dc\u18dd\u0003\u0007\u0003"+ + "\u0000\u18dd\u18de\u0003\u001d\u000e\u0000\u18de\u18df\u0003\u001d\u000e"+ + "\u0000\u18df\u18e0\u0003\u0017\u000b\u0000\u18e0\u18e1\u0003!\u0010\u0000"+ + "\u18e1\u18e2\u0003-\u0016\u0000\u18e2\u045e\u0001\u0000\u0000\u0000\u18e3"+ + "\u18e4\u0003+\u0015\u0000\u18e4\u18e5\u0003!\u0010\u0000\u18e5\u18e6\u0003"+ + "\u0007\u0003\u0000\u18e6\u18e7\u0003%\u0012\u0000\u18e7\u18e8\u0003+\u0015"+ + "\u0000\u18e8\u18e9\u0003\u0015\n\u0000\u18e9\u18ea\u0003#\u0011\u0000"+ + "\u18ea\u18eb\u0003-\u0016\u0000\u18eb\u0460\u0001\u0000\u0000\u0000\u18ec"+ + "\u18ed\u0003+\u0015\u0000\u18ed\u18ee\u0003#\u0011\u0000\u18ee\u18ef\u0003"+ + "\u001f\u000f\u0000\u18ef\u18f0\u0003\u000f\u0007\u0000\u18f0\u0462\u0001"+ + "\u0000\u0000\u0000\u18f1\u18f2\u0003+\u0015\u0000\u18f2\u18f3\u0003#\u0011"+ + "\u0000\u18f3\u18f4\u0003/\u0017\u0000\u18f4\u18f5\u0003)\u0014\u0000\u18f5"+ + "\u18f6\u0003\u000b\u0005\u0000\u18f6\u18f7\u0003\u000f\u0007\u0000\u18f7"+ + "\u0464\u0001\u0000\u0000\u0000\u18f8\u18f9\u0003+\u0015\u0000\u18f9\u18fa"+ + "\u0003%\u0012\u0000\u18fa\u18fb\u0003\u0007\u0003\u0000\u18fb\u18fc\u0003"+ + "\u000b\u0005\u0000\u18fc\u18fd\u0003\u000f\u0007\u0000\u18fd\u0466\u0001"+ + "\u0000\u0000\u0000\u18fe\u18ff\u0003+\u0015\u0000\u18ff\u1900\u0003%\u0012"+ + "\u0000\u1900\u1901\u0003\u000f\u0007\u0000\u1901\u1902\u0003\u000b\u0005"+ + "\u0000\u1902\u1903\u0003\u0017\u000b\u0000\u1903\u1904\u0003\u0011\b\u0000"+ + "\u1904\u1905\u0003\u0017\u000b\u0000\u1905\u1906\u0003\u000b\u0005\u0000"+ + "\u1906\u0468\u0001\u0000\u0000\u0000\u1907\u1908\u0003+\u0015\u0000\u1908"+ + "\u1909\u0003%\u0012\u0000\u1909\u190a\u0003\u000f\u0007\u0000\u190a\u190b"+ + "\u0003\u000b\u0005\u0000\u190b\u190c\u0003\u0017\u000b\u0000\u190c\u190d"+ + "\u0003\u0011\b\u0000\u190d\u190e\u0003\u0017\u000b\u0000\u190e\u190f\u0003"+ + "\u000b\u0005\u0000\u190f\u1910\u0005_\u0000\u0000\u1910\u1911\u0003!\u0010"+ + "\u0000\u1911\u1912\u0003\u0007\u0003\u0000\u1912\u1913\u0003\u001f\u000f"+ + "\u0000\u1913\u1914\u0003\u000f\u0007\u0000\u1914\u046a\u0001\u0000\u0000"+ + "\u0000\u1915\u1916\u0003+\u0015\u0000\u1916\u1917\u0003%\u0012\u0000\u1917"+ + "\u1918\u0003\u000f\u0007\u0000\u1918\u1919\u0003\u000b\u0005\u0000\u1919"+ + "\u191a\u0003\u0017\u000b\u0000\u191a\u191b\u0003\u0011\b\u0000\u191b\u191c"+ + "\u0003\u0017\u000b\u0000\u191c\u191d\u0003\u000b\u0005\u0000\u191d\u191e"+ + "\u0003-\u0016\u0000\u191e\u191f\u00037\u001b\u0000\u191f\u1920\u0003%"+ + "\u0012\u0000\u1920\u1921\u0003\u000f\u0007\u0000\u1921\u046c\u0001\u0000"+ + "\u0000\u0000\u1922\u1923\u0003+\u0015\u0000\u1923\u1924\u0003\'\u0013"+ + "\u0000\u1924\u1925\u0003\u001d\u000e\u0000\u1925\u046e\u0001\u0000\u0000"+ + "\u0000\u1926\u1927\u0003+\u0015\u0000\u1927\u1928\u0003\'\u0013\u0000"+ + "\u1928\u1929\u0003\u001d\u000e\u0000\u1929\u192a\u0003\u000b\u0005\u0000"+ + "\u192a\u192b\u0003#\u0011\u0000\u192b\u192c\u0003\r\u0006\u0000\u192c"+ + "\u192d\u0003\u000f\u0007\u0000\u192d\u0470\u0001\u0000\u0000\u0000\u192e"+ + "\u192f\u0003+\u0015\u0000\u192f\u1930\u0003\'\u0013\u0000\u1930\u1931"+ + "\u0003\u001d\u000e\u0000\u1931\u1932\u0003\u000f\u0007\u0000\u1932\u1933"+ + "\u0003)\u0014\u0000\u1933\u1934\u0003)\u0014\u0000\u1934\u1935\u0003#"+ + "\u0011\u0000\u1935\u1936\u0003)\u0014\u0000\u1936\u0472\u0001\u0000\u0000"+ + "\u0000\u1937\u1938\u0003+\u0015\u0000\u1938\u1939\u0003\'\u0013\u0000"+ + "\u1939\u193a\u0003\u001d\u000e\u0000\u193a\u193b\u0003\u000f\u0007\u0000"+ + "\u193b\u193c\u00035\u001a\u0000\u193c\u193d\u0003\u000b\u0005\u0000\u193d"+ + "\u193e\u0003\u000f\u0007\u0000\u193e\u193f\u0003%\u0012\u0000\u193f\u1940"+ + "\u0003-\u0016\u0000\u1940\u1941\u0003\u0017\u000b\u0000\u1941\u1942\u0003"+ + "#\u0011\u0000\u1942\u1943\u0003!\u0010\u0000\u1943\u0474\u0001\u0000\u0000"+ + "\u0000\u1944\u1945\u0003+\u0015\u0000\u1945\u1946\u0003\'\u0013\u0000"+ + "\u1946\u1947\u0003\u001d\u000e\u0000\u1947\u1948\u0003+\u0015\u0000\u1948"+ + "\u1949\u0003-\u0016\u0000\u1949\u194a\u0003\u0007\u0003\u0000\u194a\u194b"+ + "\u0003-\u0016\u0000\u194b\u194c\u0003\u000f\u0007\u0000\u194c\u0476\u0001"+ + "\u0000\u0000\u0000\u194d\u194e\u0003+\u0015\u0000\u194e\u194f\u0003\'"+ + "\u0013\u0000\u194f\u1950\u0003\u001d\u000e\u0000\u1950\u1951\u00033\u0019"+ + "\u0000\u1951\u1952\u0003\u0007\u0003\u0000\u1952\u1953\u0003)\u0014\u0000"+ + "\u1953\u1954\u0003!\u0010\u0000\u1954\u1955\u0003\u0017\u000b\u0000\u1955"+ + "\u1956\u0003!\u0010\u0000\u1956\u1957\u0003\u0013\t\u0000\u1957\u0478"+ + "\u0001\u0000\u0000\u0000\u1958\u1959\u0003+\u0015\u0000\u1959\u195a\u0003"+ + "\'\u0013\u0000\u195a\u195b\u0003)\u0014\u0000\u195b\u195c\u0003-\u0016"+ + "\u0000\u195c\u047a\u0001\u0000\u0000\u0000\u195d\u195e\u0003+\u0015\u0000"+ + "\u195e\u195f\u0003-\u0016\u0000\u195f\u1960\u0003\u0007\u0003\u0000\u1960"+ + "\u1961\u0003\t\u0004\u0000\u1961\u1962\u0003\u001d\u000e\u0000\u1962\u1963"+ + "\u0003\u000f\u0007\u0000\u1963\u047c\u0001\u0000\u0000\u0000\u1964\u1965"+ + "\u0003+\u0015\u0000\u1965\u1966\u0003-\u0016\u0000\u1966\u1967\u0003\u0007"+ + "\u0003\u0000\u1967\u1968\u0003)\u0014\u0000\u1968\u1969\u0003-\u0016\u0000"+ + "\u1969\u047e\u0001\u0000\u0000\u0000\u196a\u196b\u0003+\u0015\u0000\u196b"+ + "\u196c\u0003-\u0016\u0000\u196c\u196d\u0003\u0007\u0003\u0000\u196d\u196e"+ + "\u0003-\u0016\u0000\u196e\u196f\u0003\u000f\u0007\u0000\u196f\u0480\u0001"+ + "\u0000\u0000\u0000\u1970\u1971\u0003+\u0015\u0000\u1971\u1972\u0003-\u0016"+ + "\u0000\u1972\u1973\u0003\u0007\u0003\u0000\u1973\u1974\u0003-\u0016\u0000"+ + "\u1974\u1975\u0003\u000f\u0007\u0000\u1975\u1976\u0003\u001f\u000f\u0000"+ + "\u1976\u1977\u0003\u000f\u0007\u0000\u1977\u1978\u0003!\u0010\u0000\u1978"+ + "\u1979\u0003-\u0016\u0000\u1979\u0482\u0001\u0000\u0000\u0000\u197a\u197b"+ + "\u0003+\u0015\u0000\u197b\u197c\u0003-\u0016\u0000\u197c\u197d\u0003\u0007"+ + "\u0003\u0000\u197d\u197e\u0003-\u0016\u0000\u197e\u197f\u0003\u0017\u000b"+ + "\u0000\u197f\u1980\u0003\u000b\u0005\u0000\u1980\u0484\u0001\u0000\u0000"+ + "\u0000\u1981\u1982\u0003+\u0015\u0000\u1982\u1983\u0003-\u0016\u0000\u1983"+ + "\u1984\u0003\u0007\u0003\u0000\u1984\u1985\u0003-\u0016\u0000\u1985\u1986"+ + "\u0003\u0017\u000b\u0000\u1986\u1987\u0003+\u0015\u0000\u1987\u1988\u0003"+ + "-\u0016\u0000\u1988\u1989\u0003\u0017\u000b\u0000\u1989\u198a\u0003\u000b"+ + "\u0005\u0000\u198a\u198b\u0003+\u0015\u0000\u198b\u0486\u0001\u0000\u0000"+ + "\u0000\u198c\u198d\u0003+\u0015\u0000\u198d\u198e\u0003-\u0016\u0000\u198e"+ + "\u198f\u0003\r\u0006\u0000\u198f\u1990\u0003\r\u0006\u0000\u1990\u1991"+ + "\u0003\u000f\u0007\u0000\u1991\u1992\u00031\u0018\u0000\u1992\u1993\u0005"+ + "_\u0000\u0000\u1993\u1994\u0003%\u0012\u0000\u1994\u1995\u0003#\u0011"+ + "\u0000\u1995\u1996\u0003%\u0012\u0000\u1996\u0488\u0001\u0000\u0000\u0000"+ + "\u1997\u1998\u0003+\u0015\u0000\u1998\u1999\u0003-\u0016\u0000\u1999\u199a"+ + "\u0003\r\u0006\u0000\u199a\u199b\u0003\r\u0006\u0000\u199b\u199c\u0003"+ + "\u000f\u0007\u0000\u199c\u199d\u00031\u0018\u0000\u199d\u199e\u0005_\u0000"+ + "\u0000\u199e\u199f\u0003+\u0015\u0000\u199f\u19a0\u0003\u0007\u0003\u0000"+ + "\u19a0\u19a1\u0003\u001f\u000f\u0000\u19a1\u19a2\u0003%\u0012\u0000\u19a2"+ + "\u048a\u0001\u0000\u0000\u0000\u19a3\u19a4\u0003+\u0015\u0000\u19a4\u19a5"+ + "\u0003-\u0016\u0000\u19a5\u19a6\u0003\r\u0006\u0000\u19a6\u19a7\u0003"+ + "\u0017\u000b\u0000\u19a7\u19a8\u0003!\u0010\u0000\u19a8\u048c\u0001\u0000"+ + "\u0000\u0000\u19a9\u19aa\u0003+\u0015\u0000\u19aa\u19ab\u0003-\u0016\u0000"+ + "\u19ab\u19ac\u0003\r\u0006\u0000\u19ac\u19ad\u0003#\u0011\u0000\u19ad"+ + "\u19ae\u0003/\u0017\u0000\u19ae\u19af\u0003-\u0016\u0000\u19af\u048e\u0001"+ + "\u0000\u0000\u0000\u19b0\u19b1\u0003+\u0015\u0000\u19b1\u19b2\u0003-\u0016"+ + "\u0000\u19b2\u19b3\u0003#\u0011\u0000\u19b3\u19b4\u0003)\u0014\u0000\u19b4"+ + "\u19b5\u0003\u0007\u0003\u0000\u19b5\u19b6\u0003\u0013\t\u0000\u19b6\u19b7"+ + "\u0003\u000f\u0007\u0000\u19b7\u0490\u0001\u0000\u0000\u0000\u19b8\u19b9"+ + "\u0003+\u0015\u0000\u19b9\u19ba\u0003-\u0016\u0000\u19ba\u19bb\u0003)"+ + "\u0014\u0000\u19bb\u19bc\u0003\u0017\u000b\u0000\u19bc\u19bd\u0003\u000b"+ + "\u0005\u0000\u19bd\u19be\u0003-\u0016\u0000\u19be\u0492\u0001\u0000\u0000"+ + "\u0000\u19bf\u19c0\u0003+\u0015\u0000\u19c0\u19c1\u0003-\u0016\u0000\u19c1"+ + "\u19c2\u0003)\u0014\u0000\u19c2\u19c3\u0003/\u0017\u0000\u19c3\u19c4\u0003"+ + "\u000b\u0005\u0000\u19c4\u19c5\u0003-\u0016\u0000\u19c5\u19c6\u0003/\u0017"+ + "\u0000\u19c6\u19c7\u0003)\u0014\u0000\u19c7\u19c8\u0003\u000f\u0007\u0000"+ + "\u19c8\u0494\u0001\u0000\u0000\u0000\u19c9\u19ca\u0003+\u0015\u0000\u19ca"+ + "\u19cb\u0003-\u0016\u0000\u19cb\u19cc\u00037\u001b\u0000\u19cc\u19cd\u0003"+ + "\u001d\u000e\u0000\u19cd\u19ce\u0003\u000f\u0007\u0000\u19ce\u0496\u0001"+ + "\u0000\u0000\u0000\u19cf\u19d0\u0003+\u0015\u0000\u19d0\u19d1\u0003/\u0017"+ + "\u0000\u19d1\u19d2\u0003\t\u0004\u0000\u19d2\u19d3\u0003\u000b\u0005\u0000"+ + "\u19d3\u19d4\u0003\u001d\u000e\u0000\u19d4\u19d5\u0003\u0007\u0003\u0000"+ + "\u19d5\u19d6\u0003+\u0015\u0000\u19d6\u19d7\u0003+\u0015\u0000\u19d7\u19d8"+ + "\u0005_\u0000\u0000\u19d8\u19d9\u0003#\u0011\u0000\u19d9\u19da\u0003)"+ + "\u0014\u0000\u19da\u19db\u0003\u0017\u000b\u0000\u19db\u19dc\u0003\u0013"+ + "\t\u0000\u19dc\u19dd\u0003\u0017\u000b\u0000\u19dd\u19de\u0003!\u0010"+ + "\u0000\u19de\u0498\u0001\u0000\u0000\u0000\u19df\u19e0\u0003+\u0015\u0000"+ + "\u19e0\u19e1\u0003/\u0017\u0000\u19e1\u19e2\u0003\t\u0004\u0000\u19e2"+ + "\u19e3\u0003\u001d\u000e\u0000\u19e3\u19e4\u0003\u0017\u000b\u0000\u19e4"+ + "\u19e5\u0003+\u0015\u0000\u19e5\u19e6\u0003-\u0016\u0000\u19e6\u049a\u0001"+ + "\u0000\u0000\u0000\u19e7\u19e8\u0003+\u0015\u0000\u19e8\u19e9\u0003/\u0017"+ + "\u0000\u19e9\u19ea\u0003\t\u0004\u0000\u19ea\u19eb\u0003\u001f\u000f\u0000"+ + "\u19eb\u19ec\u0003/\u0017\u0000\u19ec\u19ed\u0003\u001d\u000e\u0000\u19ed"+ + "\u19ee\u0003-\u0016\u0000\u19ee\u19ef\u0003\u0017\u000b\u0000\u19ef\u19f0"+ + "\u0003+\u0015\u0000\u19f0\u19f1\u0003\u000f\u0007\u0000\u19f1\u19f2\u0003"+ + "-\u0016\u0000\u19f2\u049c\u0001\u0000\u0000\u0000\u19f3\u19f4\u0003+\u0015"+ + "\u0000\u19f4\u19f5\u0003/\u0017\u0000\u19f5\u19f6\u0003\t\u0004\u0000"+ + "\u19f6\u19f7\u0003+\u0015\u0000\u19f7\u19f8\u0003\u000b\u0005\u0000\u19f8"+ + "\u19f9\u0003)\u0014\u0000\u19f9\u19fa\u0003\u0017\u000b\u0000\u19fa\u19fb"+ + "\u0003%\u0012\u0000\u19fb\u19fc\u0003-\u0016\u0000\u19fc\u19fd\u0003\u0017"+ + "\u000b\u0000\u19fd\u19fe\u0003#\u0011\u0000\u19fe\u19ff\u0003!\u0010\u0000"+ + "\u19ff\u049e\u0001\u0000\u0000\u0000\u1a00\u1a01\u0003+\u0015\u0000\u1a01"+ + "\u1a02\u0003/\u0017\u0000\u1a02\u1a03\u0003\t\u0004\u0000\u1a03\u1a04"+ + "\u0003+\u0015\u0000\u1a04\u1a05\u0003-\u0016\u0000\u1a05\u1a06\u0003)"+ + "\u0014\u0000\u1a06\u1a07\u0003\u0017\u000b\u0000\u1a07\u1a08\u0003!\u0010"+ + "\u0000\u1a08\u1a09\u0003\u0013\t\u0000\u1a09\u04a0\u0001\u0000\u0000\u0000"+ + "\u1a0a\u1a0b\u0003+\u0015\u0000\u1a0b\u1a0c\u0003/\u0017\u0000\u1a0c\u1a0d"+ + "\u0003\u001f\u000f\u0000\u1a0d\u04a2\u0001\u0000\u0000\u0000\u1a0e\u1a0f"+ + "\u0003+\u0015\u0000\u1a0f\u1a10\u00037\u001b\u0000\u1a10\u1a11\u0003\u001f"+ + "\u000f\u0000\u1a11\u1a12\u0003\u001f\u000f\u0000\u1a12\u1a13\u0003\u000f"+ + "\u0007\u0000\u1a13\u1a14\u0003-\u0016\u0000\u1a14\u1a15\u0003)\u0014\u0000"+ + "\u1a15\u1a16\u0003\u0017\u000b\u0000\u1a16\u1a17\u0003\u000b\u0005\u0000"+ + "\u1a17\u04a4\u0001\u0000\u0000\u0000\u1a18\u1a19\u0003+\u0015\u0000\u1a19"+ + "\u1a1a\u00037\u001b\u0000\u1a1a\u1a1b\u0003+\u0015\u0000\u1a1b\u1a1c\u0003"+ + "\u0017\u000b\u0000\u1a1c\u1a1d\u0003\r\u0006\u0000\u1a1d\u04a6\u0001\u0000"+ + "\u0000\u0000\u1a1e\u1a1f\u0003+\u0015\u0000\u1a1f\u1a20\u00037\u001b\u0000"+ + "\u1a20\u1a21\u0003+\u0015\u0000\u1a21\u1a22\u0003-\u0016\u0000\u1a22\u1a23"+ + "\u0003\u000f\u0007\u0000\u1a23\u1a24\u0003\u001f\u000f\u0000\u1a24\u04a8"+ + "\u0001\u0000\u0000\u0000\u1a25\u1a26\u0003+\u0015\u0000\u1a26\u1a27\u0003"+ + "7\u001b\u0000\u1a27\u1a28\u0003+\u0015\u0000\u1a28\u1a29\u0003-\u0016"+ + "\u0000\u1a29\u1a2a\u0003\u000f\u0007\u0000\u1a2a\u1a2b\u0003\u001f\u000f"+ + "\u0000\u1a2b\u1a2c\u0005_\u0000\u0000\u1a2c\u1a2d\u0003/\u0017\u0000\u1a2d"+ + "\u1a2e\u0003+\u0015\u0000\u1a2e\u1a2f\u0003\u000f\u0007\u0000\u1a2f\u1a30"+ + "\u0003)\u0014\u0000\u1a30\u04aa\u0001\u0000\u0000\u0000\u1a31\u1a32\u0003"+ + "-\u0016\u0000\u1a32\u1a33\u0003\u0007\u0003\u0000\u1a33\u1a34\u0003\t"+ + "\u0004\u0000\u1a34\u1a35\u0003\u001d\u000e\u0000\u1a35\u1a36\u0003\u000f"+ + "\u0007\u0000\u1a36\u04ac\u0001\u0000\u0000\u0000\u1a37\u1a38\u0003-\u0016"+ + "\u0000\u1a38\u1a39\u0003\u0007\u0003\u0000\u1a39\u1a3a\u0003\t\u0004\u0000"+ + "\u1a3a\u1a3b\u0003\u001d\u000e\u0000\u1a3b\u1a3c\u0003\u000f\u0007\u0000"+ + "\u1a3c\u1a3d\u0005_\u0000\u0000\u1a3d\u1a3e\u0003!\u0010\u0000\u1a3e\u1a3f"+ + "\u0003\u0007\u0003\u0000\u1a3f\u1a40\u0003\u001f\u000f\u0000\u1a40\u1a41"+ + "\u0003\u000f\u0007\u0000\u1a41\u04ae\u0001\u0000\u0000\u0000\u1a42\u1a43"+ + "\u0003-\u0016\u0000\u1a43\u1a44\u0003\u0007\u0003\u0000\u1a44\u1a45\u0003"+ + "\t\u0004\u0000\u1a45\u1a46\u0003\u001d\u000e\u0000\u1a46\u1a47\u0003\u000f"+ + "\u0007\u0000\u1a47\u1a48\u0003+\u0015\u0000\u1a48\u1a49\u0003\u0007\u0003"+ + "\u0000\u1a49\u1a4a\u0003\u001f\u000f\u0000\u1a4a\u1a4b\u0003%\u0012\u0000"+ + "\u1a4b\u1a4c\u0003\u001d\u000e\u0000\u1a4c\u1a4d\u0003\u000f\u0007\u0000"+ + "\u1a4d\u04b0\u0001\u0000\u0000\u0000\u1a4e\u1a4f\u0003-\u0016\u0000\u1a4f"+ + "\u1a50\u0003\u0007\u0003\u0000\u1a50\u1a51\u0003\t\u0004\u0000\u1a51\u1a52"+ + "\u0003\u001d\u000e\u0000\u1a52\u1a53\u0003\u000f\u0007\u0000\u1a53\u1a54"+ + "\u0003+\u0015\u0000\u1a54\u1a55\u0003%\u0012\u0000\u1a55\u1a56\u0003\u0007"+ + "\u0003\u0000\u1a56\u1a57\u0003\u000b\u0005\u0000\u1a57\u1a58\u0003\u000f"+ + "\u0007\u0000\u1a58\u04b2\u0001\u0000\u0000\u0000\u1a59\u1a5a\u0003-\u0016"+ + "\u0000\u1a5a\u1a5b\u0003\u000f\u0007\u0000\u1a5b\u1a5c\u0003\u001f\u000f"+ + "\u0000\u1a5c\u1a5d\u0003%\u0012\u0000\u1a5d\u04b4\u0001\u0000\u0000\u0000"+ + "\u1a5e\u1a5f\u0003-\u0016\u0000\u1a5f\u1a60\u0003\u000f\u0007\u0000\u1a60"+ + "\u1a61\u0003\u001f\u000f\u0000\u1a61\u1a62\u0003%\u0012\u0000\u1a62\u1a63"+ + "\u0003\u001d\u000e\u0000\u1a63\u1a64\u0003\u0007\u0003\u0000\u1a64\u1a65"+ + "\u0003-\u0016\u0000\u1a65\u1a66\u0003\u000f\u0007\u0000\u1a66\u04b6\u0001"+ + "\u0000\u0000\u0000\u1a67\u1a68\u0003-\u0016\u0000\u1a68\u1a69\u0003\u000f"+ + "\u0007\u0000\u1a69\u1a6a\u0003\u001f\u000f\u0000\u1a6a\u1a6b\u0003%\u0012"+ + "\u0000\u1a6b\u1a6c\u0003#\u0011\u0000\u1a6c\u1a6d\u0003)\u0014\u0000\u1a6d"+ + "\u1a6e\u0003\u0007\u0003\u0000\u1a6e\u1a6f\u0003)\u0014\u0000\u1a6f\u1a70"+ + "\u00037\u001b\u0000\u1a70\u04b8\u0001\u0000\u0000\u0000\u1a71\u1a72\u0003"+ + "-\u0016\u0000\u1a72\u1a73\u0003\u000f\u0007\u0000\u1a73\u1a74\u0003)\u0014"+ + "\u0000\u1a74\u1a75\u0003\u001f\u000f\u0000\u1a75\u1a76\u0003\u0017\u000b"+ + "\u0000\u1a76\u1a77\u0003!\u0010\u0000\u1a77\u1a78\u0003\u0007\u0003\u0000"+ + "\u1a78\u1a79\u0003-\u0016\u0000\u1a79\u1a7a\u0003\u000f\u0007\u0000\u1a7a"+ + "\u04ba\u0001\u0000\u0000\u0000\u1a7b\u1a7c\u0003-\u0016\u0000\u1a7c\u1a7d"+ + "\u0003\u0015\n\u0000\u1a7d\u1a7e\u0003\u0007\u0003\u0000\u1a7e\u1a7f\u0003"+ + "!\u0010\u0000\u1a7f\u04bc\u0001\u0000\u0000\u0000\u1a80\u1a81\u0003-\u0016"+ + "\u0000\u1a81\u1a82\u0003\u0015\n\u0000\u1a82\u1a83\u0003\u000f\u0007\u0000"+ + "\u1a83\u1a84\u0003!\u0010\u0000\u1a84\u04be\u0001\u0000\u0000\u0000\u1a85"+ + "\u1a86\u0003-\u0016\u0000\u1a86\u1a87\u0003\u0017\u000b\u0000\u1a87\u1a88"+ + "\u0003\u000f\u0007\u0000\u1a88\u1a89\u0003+\u0015\u0000\u1a89\u04c0\u0001"+ + "\u0000\u0000\u0000\u1a8a\u1a8b\u0003-\u0016\u0000\u1a8b\u1a8c\u0003\u0017"+ + "\u000b\u0000\u1a8c\u1a8d\u0003\u001f\u000f\u0000\u1a8d\u1a8e\u0003\u000f"+ + "\u0007\u0000\u1a8e\u04c2\u0001\u0000\u0000\u0000\u1a8f\u1a90\u0003-\u0016"+ + "\u0000\u1a90\u1a91\u0003\u0017\u000b\u0000\u1a91\u1a92\u0003\u001f\u000f"+ + "\u0000\u1a92\u1a93\u0003\u000f\u0007\u0000\u1a93\u1a94\u0003+\u0015\u0000"+ + "\u1a94\u1a95\u0003-\u0016\u0000\u1a95\u1a96\u0003\u0007\u0003\u0000\u1a96"+ + "\u1a97\u0003\u001f\u000f\u0000\u1a97\u1a98\u0003%\u0012\u0000\u1a98\u04c4"+ + "\u0001\u0000\u0000\u0000\u1a99\u1a9a\u0003-\u0016\u0000\u1a9a\u1a9b\u0003"+ + "\u0017\u000b\u0000\u1a9b\u1a9c\u0003\u001f\u000f\u0000\u1a9c\u1a9d\u0003"+ + "\u000f\u0007\u0000\u1a9d\u1a9e\u00039\u001c\u0000\u1a9e\u1a9f\u0003#\u0011"+ + "\u0000\u1a9f\u1aa0\u0003!\u0010\u0000\u1aa0\u1aa1\u0003\u000f\u0007\u0000"+ + "\u1aa1\u1aa2\u0005_\u0000\u0000\u1aa2\u1aa3\u0003\u0015\n\u0000\u1aa3"+ + "\u1aa4\u0003#\u0011\u0000\u1aa4\u1aa5\u0003/\u0017\u0000\u1aa5\u1aa6\u0003"+ + ")\u0014\u0000\u1aa6\u04c6\u0001\u0000\u0000\u0000\u1aa7\u1aa8\u0003-\u0016"+ + "\u0000\u1aa8\u1aa9\u0003\u0017\u000b\u0000\u1aa9\u1aaa\u0003\u001f\u000f"+ + "\u0000\u1aaa\u1aab\u0003\u000f\u0007\u0000\u1aab\u1aac\u00039\u001c\u0000"+ + "\u1aac\u1aad\u0003#\u0011\u0000\u1aad\u1aae\u0003!\u0010\u0000\u1aae\u1aaf"+ + "\u0003\u000f\u0007\u0000\u1aaf\u1ab0\u0005_\u0000\u0000\u1ab0\u1ab1\u0003"+ + "\u001f\u000f\u0000\u1ab1\u1ab2\u0003\u0017\u000b\u0000\u1ab2\u1ab3\u0003"+ + "!\u0010\u0000\u1ab3\u1ab4\u0003/\u0017\u0000\u1ab4\u1ab5\u0003-\u0016"+ + "\u0000\u1ab5\u1ab6\u0003\u000f\u0007\u0000\u1ab6\u04c8\u0001\u0000\u0000"+ + "\u0000\u1ab7\u1ab8\u0003-\u0016\u0000\u1ab8\u1ab9\u0003\u0017\u000b\u0000"+ + "\u1ab9\u1aba\u0003\u001f\u000f\u0000\u1aba\u1abb\u0003\u0017\u000b\u0000"+ + "\u1abb\u1abc\u0003!\u0010\u0000\u1abc\u1abd\u0003\u0013\t\u0000\u1abd"+ + "\u04ca\u0001\u0000\u0000\u0000\u1abe\u1abf\u0003-\u0016\u0000\u1abf\u1ac0"+ + "\u0003#\u0011\u0000\u1ac0\u04cc\u0001\u0000\u0000\u0000\u1ac1\u1ac2\u0003"+ + "-\u0016\u0000\u1ac2\u1ac3\u0003#\u0011\u0000\u1ac3\u1ac4\u0003\u0007\u0003"+ + "\u0000\u1ac4\u1ac5\u0003+\u0015\u0000\u1ac5\u1ac6\u0003-\u0016\u0000\u1ac6"+ + "\u04ce\u0001\u0000\u0000\u0000\u1ac7\u1ac8\u0003-\u0016\u0000\u1ac8\u1ac9"+ + "\u0003#\u0011\u0000\u1ac9\u1aca\u0003%\u0012\u0000\u1aca\u1acb\u0005_"+ + "\u0000\u0000\u1acb\u1acc\u0003\u001d\u000e\u0000\u1acc\u1acd\u0003\u000f"+ + "\u0007\u0000\u1acd\u1ace\u00031\u0018\u0000\u1ace\u1acf\u0003\u000f\u0007"+ + "\u0000\u1acf\u1ad0\u0003\u001d\u000e\u0000\u1ad0\u1ad1\u0005_\u0000\u0000"+ + "\u1ad1\u1ad2\u0003\u000b\u0005\u0000\u1ad2\u1ad3\u0003#\u0011\u0000\u1ad3"+ + "\u1ad4\u0003/\u0017\u0000\u1ad4\u1ad5\u0003!\u0010\u0000\u1ad5\u1ad6\u0003"+ + "-\u0016\u0000\u1ad6\u04d0\u0001\u0000\u0000\u0000\u1ad7\u1ad8\u0003-\u0016"+ + "\u0000\u1ad8\u1ad9\u0003)\u0014\u0000\u1ad9\u1ada\u0003\u0007\u0003\u0000"+ + "\u1ada\u1adb\u0003\u0017\u000b\u0000\u1adb\u1adc\u0003\u001d\u000e\u0000"+ + "\u1adc\u1add\u0003\u0017\u000b\u0000\u1add\u1ade\u0003!\u0010\u0000\u1ade"+ + "\u1adf\u0003\u0013\t\u0000\u1adf\u04d2\u0001\u0000\u0000\u0000\u1ae0\u1ae1"+ + "\u0003-\u0016\u0000\u1ae1\u1ae2\u0003)\u0014\u0000\u1ae2\u1ae3\u0003\u0007"+ + "\u0003\u0000\u1ae3\u1ae4\u0003!\u0010\u0000\u1ae4\u1ae5\u0003+\u0015\u0000"+ + "\u1ae5\u1ae6\u0003\u0007\u0003\u0000\u1ae6\u1ae7\u0003\u000b\u0005\u0000"+ + "\u1ae7\u1ae8\u0003-\u0016\u0000\u1ae8\u1ae9\u0003\u0017\u000b\u0000\u1ae9"+ + "\u1aea\u0003#\u0011\u0000\u1aea\u1aeb\u0003!\u0010\u0000\u1aeb\u04d4\u0001"+ + "\u0000\u0000\u0000\u1aec\u1aed\u0003-\u0016\u0000\u1aed\u1aee\u0003)\u0014"+ + "\u0000\u1aee\u1aef\u0003\u0007\u0003\u0000\u1aef\u1af0\u0003!\u0010\u0000"+ + "\u1af0\u1af1\u0003+\u0015\u0000\u1af1\u1af2\u0003\u0007\u0003\u0000\u1af2"+ + "\u1af3\u0003\u000b\u0005\u0000\u1af3\u1af4\u0003-\u0016\u0000\u1af4\u1af5"+ + "\u0003\u0017\u000b\u0000\u1af5\u1af6\u0003#\u0011\u0000\u1af6\u1af7\u0003"+ + "!\u0010\u0000\u1af7\u1af8\u0005_\u0000\u0000\u1af8\u1af9\u0003\u0007\u0003"+ + "\u0000\u1af9\u1afa\u0003\u000b\u0005\u0000\u1afa\u1afb\u0003-\u0016\u0000"+ + "\u1afb\u1afc\u0003\u0017\u000b\u0000\u1afc\u1afd\u00031\u0018\u0000\u1afd"+ + "\u1afe\u0003\u000f\u0007\u0000\u1afe\u04d6\u0001\u0000\u0000\u0000\u1aff"+ + "\u1b00\u0003-\u0016\u0000\u1b00\u1b01\u0003)\u0014\u0000\u1b01\u1b02\u0003"+ + "\u0007\u0003\u0000\u1b02\u1b03\u0003!\u0010\u0000\u1b03\u1b04\u0003+\u0015"+ + "\u0000\u1b04\u1b05\u0003\u0007\u0003\u0000\u1b05\u1b06\u0003\u000b\u0005"+ + "\u0000\u1b06\u1b07\u0003-\u0016\u0000\u1b07\u1b08\u0003\u0017\u000b\u0000"+ + "\u1b08\u1b09\u0003#\u0011\u0000\u1b09\u1b0a\u0003!\u0010\u0000\u1b0a\u1b0b"+ + "\u0003+\u0015\u0000\u1b0b\u1b0c\u0005_\u0000\u0000\u1b0c\u1b0d\u0003\u000b"+ + "\u0005\u0000\u1b0d\u1b0e\u0003#\u0011\u0000\u1b0e\u1b0f\u0003\u001f\u000f"+ + "\u0000\u1b0f\u1b10\u0003\u001f\u000f\u0000\u1b10\u1b11\u0003\u0017\u000b"+ + "\u0000\u1b11\u1b12\u0003-\u0016\u0000\u1b12\u1b13\u0003-\u0016\u0000\u1b13"+ + "\u1b14\u0003\u000f\u0007\u0000\u1b14\u1b15\u0003\r\u0006\u0000\u1b15\u04d8"+ + "\u0001\u0000\u0000\u0000\u1b16\u1b17\u0003-\u0016\u0000\u1b17\u1b18\u0003"+ + ")\u0014\u0000\u1b18\u1b19\u0003\u0007\u0003\u0000\u1b19\u1b1a\u0003!\u0010"+ + "\u0000\u1b1a\u1b1b\u0003+\u0015\u0000\u1b1b\u1b1c\u0003\u0007\u0003\u0000"+ + "\u1b1c\u1b1d\u0003\u000b\u0005\u0000\u1b1d\u1b1e\u0003-\u0016\u0000\u1b1e"+ + "\u1b1f\u0003\u0017\u000b\u0000\u1b1f\u1b20\u0003#\u0011\u0000\u1b20\u1b21"+ + "\u0003!\u0010\u0000\u1b21\u1b22\u0003+\u0015\u0000\u1b22\u1b23\u0005_"+ + "\u0000\u0000\u1b23\u1b24\u0003)\u0014\u0000\u1b24\u1b25\u0003#\u0011\u0000"+ + "\u1b25\u1b26\u0003\u001d\u000e\u0000\u1b26\u1b27\u0003\u001d\u000e\u0000"+ + "\u1b27\u1b28\u0003\u000f\u0007\u0000\u1b28\u1b29\u0003\r\u0006\u0000\u1b29"+ + "\u1b2a\u0005_\u0000\u0000\u1b2a\u1b2b\u0003\t\u0004\u0000\u1b2b\u1b2c"+ + "\u0003\u0007\u0003\u0000\u1b2c\u1b2d\u0003\u000b\u0005\u0000\u1b2d\u1b2e"+ + "\u0003\u001b\r\u0000\u1b2e\u04da\u0001\u0000\u0000\u0000\u1b2f\u1b30\u0003"+ + "-\u0016\u0000\u1b30\u1b31\u0003)\u0014\u0000\u1b31\u1b32\u0003\u0007\u0003"+ + "\u0000\u1b32\u1b33\u0003!\u0010\u0000\u1b33\u1b34\u0003+\u0015\u0000\u1b34"+ + "\u1b35\u0003\u0011\b\u0000\u1b35\u1b36\u0003#\u0011\u0000\u1b36\u1b37"+ + "\u0003)\u0014\u0000\u1b37\u1b38\u0003\u001f\u000f\u0000\u1b38\u04dc\u0001"+ + "\u0000\u0000\u0000\u1b39\u1b3a\u0003-\u0016\u0000\u1b3a\u1b3b\u0003)\u0014"+ + "\u0000\u1b3b\u1b3c\u0003\u0007\u0003\u0000\u1b3c\u1b3d\u0003!\u0010\u0000"+ + "\u1b3d\u1b3e\u0003+\u0015\u0000\u1b3e\u1b3f\u0003\u0011\b\u0000\u1b3f"+ + "\u1b40\u0003#\u0011\u0000\u1b40\u1b41\u0003)\u0014\u0000\u1b41\u1b42\u0003"+ + "\u001f\u000f\u0000\u1b42\u1b43\u0003+\u0015\u0000\u1b43\u04de\u0001\u0000"+ + "\u0000\u0000\u1b44\u1b45\u0003-\u0016\u0000\u1b45\u1b46\u0003)\u0014\u0000"+ + "\u1b46\u1b47\u0003\u0007\u0003\u0000\u1b47\u1b48\u0003!\u0010\u0000\u1b48"+ + "\u1b49\u0003+\u0015\u0000\u1b49\u1b4a\u0003\u001d\u000e\u0000\u1b4a\u1b4b"+ + "\u0003\u0007\u0003\u0000\u1b4b\u1b4c\u0003-\u0016\u0000\u1b4c\u1b4d\u0003"+ + "\u000f\u0007\u0000\u1b4d\u04e0\u0001\u0000\u0000\u0000\u1b4e\u1b4f\u0003"+ + "-\u0016\u0000\u1b4f\u1b50\u0003)\u0014\u0000\u1b50\u1b51\u0003\u0007\u0003"+ + "\u0000\u1b51\u1b52\u0003!\u0010\u0000\u1b52\u1b53\u0003+\u0015\u0000\u1b53"+ + "\u1b54\u0003\u001d\u000e\u0000\u1b54\u1b55\u0003\u0007\u0003\u0000\u1b55"+ + "\u1b56\u0003-\u0016\u0000\u1b56\u1b57\u0003\u0017\u000b\u0000\u1b57\u1b58"+ + "\u0003#\u0011\u0000\u1b58\u1b59\u0003!\u0010\u0000\u1b59\u04e2\u0001\u0000"+ + "\u0000\u0000\u1b5a\u1b5b\u0003-\u0016\u0000\u1b5b\u1b5c\u0003)\u0014\u0000"+ + "\u1b5c\u1b5d\u0003\u000f\u0007\u0000\u1b5d\u1b5e\u0003\u0007\u0003\u0000"+ + "\u1b5e\u1b5f\u0003-\u0016\u0000\u1b5f\u04e4\u0001\u0000\u0000\u0000\u1b60"+ + "\u1b61\u0003-\u0016\u0000\u1b61\u1b62\u0003)\u0014\u0000\u1b62\u1b63\u0003"+ + "\u0017\u000b\u0000\u1b63\u1b64\u0003\u0013\t\u0000\u1b64\u1b65\u0003\u0013"+ + "\t\u0000\u1b65\u1b66\u0003\u000f\u0007\u0000\u1b66\u1b67\u0003)\u0014"+ + "\u0000\u1b67\u04e6\u0001\u0000\u0000\u0000\u1b68\u1b69\u0003-\u0016\u0000"+ + "\u1b69\u1b6a\u0003)\u0014\u0000\u1b6a\u1b6b\u0003\u0017\u000b\u0000\u1b6b"+ + "\u1b6c\u0003\u0013\t\u0000\u1b6c\u1b6d\u0003\u0013\t\u0000\u1b6d\u1b6e"+ + "\u0003\u000f\u0007\u0000\u1b6e\u1b6f\u0003)\u0014\u0000\u1b6f\u1b70\u0005"+ + "_\u0000\u0000\u1b70\u1b71\u0003\u000b\u0005\u0000\u1b71\u1b72\u0003\u0007"+ + "\u0003\u0000\u1b72\u1b73\u0003-\u0016\u0000\u1b73\u1b74\u0003\u0007\u0003"+ + "\u0000\u1b74\u1b75\u0003\u001d\u000e\u0000\u1b75\u1b76\u0003#\u0011\u0000"+ + "\u1b76\u1b77\u0003\u0013\t\u0000\u1b77\u04e8\u0001\u0000\u0000\u0000\u1b78"+ + "\u1b79\u0003-\u0016\u0000\u1b79\u1b7a\u0003)\u0014\u0000\u1b7a\u1b7b\u0003"+ + "\u0017\u000b\u0000\u1b7b\u1b7c\u0003\u0013\t\u0000\u1b7c\u1b7d\u0003\u0013"+ + "\t\u0000\u1b7d\u1b7e\u0003\u000f\u0007\u0000\u1b7e\u1b7f\u0003)\u0014"+ + "\u0000\u1b7f\u1b80\u0005_\u0000\u0000\u1b80\u1b81\u0003!\u0010\u0000\u1b81"+ + "\u1b82\u0003\u0007\u0003\u0000\u1b82\u1b83\u0003\u001f\u000f\u0000\u1b83"+ + "\u1b84\u0003\u000f\u0007\u0000\u1b84\u04ea\u0001\u0000\u0000\u0000\u1b85"+ + "\u1b86\u0003-\u0016\u0000\u1b86\u1b87\u0003)\u0014\u0000\u1b87\u1b88\u0003"+ + "\u0017\u000b\u0000\u1b88\u1b89\u0003\u0013\t\u0000\u1b89\u1b8a\u0003\u0013"+ + "\t\u0000\u1b8a\u1b8b\u0003\u000f\u0007\u0000\u1b8b\u1b8c\u0003)\u0014"+ + "\u0000\u1b8c\u1b8d\u0005_\u0000\u0000\u1b8d\u1b8e\u0003+\u0015\u0000\u1b8e"+ + "\u1b8f\u0003\u000b\u0005\u0000\u1b8f\u1b90\u0003\u0015\n\u0000\u1b90\u1b91"+ + "\u0003\u000f\u0007\u0000\u1b91\u1b92\u0003\u001f\u000f\u0000\u1b92\u1b93"+ + "\u0003\u0007\u0003\u0000\u1b93\u04ec\u0001\u0000\u0000\u0000\u1b94\u1b95"+ + "\u0003-\u0016\u0000\u1b95\u1b96\u0003)\u0014\u0000\u1b96\u1b97\u0003\u0017"+ + "\u000b\u0000\u1b97\u1b98\u0003\u001f\u000f\u0000\u1b98\u04ee\u0001\u0000"+ + "\u0000\u0000\u1b99\u1b9a\u0003-\u0016\u0000\u1b9a\u1b9b\u0003)\u0014\u0000"+ + "\u1b9b\u1b9c\u0003/\u0017\u0000\u1b9c\u1b9d\u0003\u000f\u0007\u0000\u1b9d"+ + "\u04f0\u0001\u0000\u0000\u0000\u1b9e\u1b9f\u0003-\u0016\u0000\u1b9f\u1ba0"+ + "\u0003)\u0014\u0000\u1ba0\u1ba1\u0003/\u0017\u0000\u1ba1\u1ba2\u0003!"+ + "\u0010\u0000\u1ba2\u1ba3\u0003\u000b\u0005\u0000\u1ba3\u1ba4\u0003\u0007"+ + "\u0003\u0000\u1ba4\u1ba5\u0003-\u0016\u0000\u1ba5\u1ba6\u0003\u000f\u0007"+ + "\u0000\u1ba6\u04f2\u0001\u0000\u0000\u0000\u1ba7\u1ba8\u0003-\u0016\u0000"+ + "\u1ba8\u1ba9\u0003)\u0014\u0000\u1ba9\u1baa\u0003/\u0017\u0000\u1baa\u1bab"+ + "\u0003+\u0015\u0000\u1bab\u1bac\u0003-\u0016\u0000\u1bac\u1bad\u0003\u000f"+ + "\u0007\u0000\u1bad\u1bae\u0003\r\u0006\u0000\u1bae\u04f4\u0001\u0000\u0000"+ + "\u0000\u1baf\u1bb0\u0003-\u0016\u0000\u1bb0\u1bb1\u00037\u001b\u0000\u1bb1"+ + "\u1bb2\u0003%\u0012\u0000\u1bb2\u1bb3\u0003\u000f\u0007\u0000\u1bb3\u04f6"+ + "\u0001\u0000\u0000\u0000\u1bb4\u1bb5\u0003/\u0017\u0000\u1bb5\u1bb6\u0003"+ + "\u000f\u0007\u0000\u1bb6\u1bb7\u0003+\u0015\u0000\u1bb7\u1bb8\u0003\u000b"+ + "\u0005\u0000\u1bb8\u1bb9\u0003\u0007\u0003\u0000\u1bb9\u1bba\u0003%\u0012"+ + "\u0000\u1bba\u1bbb\u0003\u000f\u0007\u0000\u1bbb\u04f8\u0001\u0000\u0000"+ + "\u0000\u1bbc\u1bbd\u0003/\u0017\u0000\u1bbd\u1bbe\u0003!\u0010\u0000\u1bbe"+ + "\u1bbf\u0003\t\u0004\u0000\u1bbf\u1bc0\u0003#\u0011\u0000\u1bc0\u1bc1"+ + "\u0003/\u0017\u0000\u1bc1\u1bc2\u0003!\u0010\u0000\u1bc2\u1bc3\u0003\r"+ + "\u0006\u0000\u1bc3\u1bc4\u0003\u000f\u0007\u0000\u1bc4\u1bc5\u0003\r\u0006"+ + "\u0000\u1bc5\u04fa\u0001\u0000\u0000\u0000\u1bc6\u1bc7\u0003/\u0017\u0000"+ + "\u1bc7\u1bc8\u0003!\u0010\u0000\u1bc8\u1bc9\u0003\u000b\u0005\u0000\u1bc9"+ + "\u1bca\u0003#\u0011\u0000\u1bca\u1bcb\u0003\u001f\u000f\u0000\u1bcb\u1bcc"+ + "\u0003\u001f\u000f\u0000\u1bcc\u1bcd\u0003\u0017\u000b\u0000\u1bcd\u1bce"+ + "\u0003-\u0016\u0000\u1bce\u1bcf\u0003-\u0016\u0000\u1bcf\u1bd0\u0003\u000f"+ + "\u0007\u0000\u1bd0\u1bd1\u0003\r\u0006\u0000\u1bd1\u04fc\u0001\u0000\u0000"+ + "\u0000\u1bd2\u1bd3\u0003/\u0017\u0000\u1bd3\u1bd4\u0003!\u0010\u0000\u1bd4"+ + "\u1bd5\u0003\r\u0006\u0000\u1bd5\u1bd6\u0003\u000f\u0007\u0000\u1bd6\u1bd7"+ + "\u0003)\u0014\u0000\u1bd7\u04fe\u0001\u0000\u0000\u0000\u1bd8\u1bd9\u0003"+ + "/\u0017\u0000\u1bd9\u1bda\u0003!\u0010\u0000\u1bda\u1bdb\u0003\u000f\u0007"+ + "\u0000\u1bdb\u1bdc\u0003!\u0010\u0000\u1bdc\u1bdd\u0003\u000b\u0005\u0000"+ + "\u1bdd\u1bde\u0003)\u0014\u0000\u1bde\u1bdf\u00037\u001b\u0000\u1bdf\u1be0"+ + "\u0003%\u0012\u0000\u1be0\u1be1\u0003-\u0016\u0000\u1be1\u1be2\u0003\u000f"+ + "\u0007\u0000\u1be2\u1be3\u0003\r\u0006\u0000\u1be3\u0500\u0001\u0000\u0000"+ + "\u0000\u1be4\u1be5\u0003/\u0017\u0000\u1be5\u1be6\u0003!\u0010\u0000\u1be6"+ + "\u1be7\u0003\u0017\u000b\u0000\u1be7\u1be8\u0003#\u0011\u0000\u1be8\u1be9"+ + "\u0003!\u0010\u0000\u1be9\u0502\u0001\u0000\u0000\u0000\u1bea\u1beb\u0003"+ + "/\u0017\u0000\u1beb\u1bec\u0003!\u0010\u0000\u1bec\u1bed\u0003\u0017\u000b"+ + "\u0000\u1bed\u1bee\u0003\'\u0013\u0000\u1bee\u1bef\u0003/\u0017\u0000"+ + "\u1bef\u1bf0\u0003\u000f\u0007\u0000\u1bf0\u0504\u0001\u0000\u0000\u0000"+ + "\u1bf1\u1bf2\u0003/\u0017\u0000\u1bf2\u1bf3\u0003!\u0010\u0000\u1bf3\u1bf4"+ + "\u0003\u001b\r\u0000\u1bf4\u1bf5\u0003!\u0010\u0000\u1bf5\u1bf6\u0003"+ + "#\u0011\u0000\u1bf6\u1bf7\u00033\u0019\u0000\u1bf7\u1bf8\u0003!\u0010"+ + "\u0000\u1bf8\u0506\u0001\u0000\u0000\u0000\u1bf9\u1bfa\u0003/\u0017\u0000"+ + "\u1bfa\u1bfb\u0003!\u0010\u0000\u1bfb\u1bfc\u0003\u001d\u000e\u0000\u1bfc"+ + "\u1bfd\u0003\u0017\u000b\u0000\u1bfd\u1bfe\u0003+\u0015\u0000\u1bfe\u1bff"+ + "\u0003-\u0016\u0000\u1bff\u1c00\u0003\u000f\u0007\u0000\u1c00\u1c01\u0003"+ + "!\u0010\u0000\u1c01\u0508\u0001\u0000\u0000\u0000\u1c02\u1c03\u0003/\u0017"+ + "\u0000\u1c03\u1c04\u0003!\u0010\u0000\u1c04\u1c05\u0003!\u0010\u0000\u1c05"+ + "\u1c06\u0003\u0007\u0003\u0000\u1c06\u1c07\u0003\u001f\u000f\u0000\u1c07"+ + "\u1c08\u0003\u000f\u0007\u0000\u1c08\u1c09\u0003\r\u0006\u0000\u1c09\u050a"+ + "\u0001\u0000\u0000\u0000\u1c0a\u1c0b\u0003/\u0017\u0000\u1c0b\u1c0c\u0003"+ + "!\u0010\u0000\u1c0c\u1c0d\u0003!\u0010\u0000\u1c0d\u1c0e\u0003\u000f\u0007"+ + "\u0000\u1c0e\u1c0f\u0003+\u0015\u0000\u1c0f\u1c10\u0003-\u0016\u0000\u1c10"+ + "\u050c\u0001\u0000\u0000\u0000\u1c11\u1c12\u0003/\u0017\u0000\u1c12\u1c13"+ + "\u0003!\u0010\u0000\u1c13\u1c14\u0003-\u0016\u0000\u1c14\u1c15\u0003\u0017"+ + "\u000b\u0000\u1c15\u1c16\u0003\u001d\u000e\u0000\u1c16\u050e\u0001\u0000"+ + "\u0000\u0000\u1c17\u1c18\u0003/\u0017\u0000\u1c18\u1c19\u0003%\u0012\u0000"+ + "\u1c19\u1c1a\u0003\r\u0006\u0000\u1c1a\u1c1b\u0003\u0007\u0003\u0000\u1c1b"+ + "\u1c1c\u0003-\u0016\u0000\u1c1c\u1c1d\u0003\u000f\u0007\u0000\u1c1d\u0510"+ + "\u0001\u0000\u0000\u0000\u1c1e\u1c1f\u0003/\u0017\u0000\u1c1f\u1c20\u0003"+ + "%\u0012\u0000\u1c20\u1c21\u0003%\u0012\u0000\u1c21\u1c22\u0003\u000f\u0007"+ + "\u0000\u1c22\u1c23\u0003)\u0014\u0000\u1c23\u0512\u0001\u0000\u0000\u0000"+ + "\u1c24\u1c25\u0003/\u0017\u0000\u1c25\u1c26\u0003+\u0015\u0000\u1c26\u1c27"+ + "\u0003\u0007\u0003\u0000\u1c27\u1c28\u0003\u0013\t\u0000\u1c28\u1c29\u0003"+ + "\u000f\u0007\u0000\u1c29\u0514\u0001\u0000\u0000\u0000\u1c2a\u1c2b\u0003"+ + "/\u0017\u0000\u1c2b\u1c2c\u0003+\u0015\u0000\u1c2c\u1c2d\u0003\u000f\u0007"+ + "\u0000\u1c2d\u1c2e\u0003)\u0014\u0000\u1c2e\u0516\u0001\u0000\u0000\u0000"+ + "\u1c2f\u1c30\u0003/\u0017\u0000\u1c30\u1c31\u0003+\u0015\u0000\u1c31\u1c32"+ + "\u0003\u000f\u0007\u0000\u1c32\u1c33\u0003)\u0014\u0000\u1c33\u1c34\u0005"+ + "_\u0000\u0000\u1c34\u1c35\u0003\r\u0006\u0000\u1c35\u1c36\u0003\u000f"+ + "\u0007\u0000\u1c36\u1c37\u0003\u0011\b\u0000\u1c37\u1c38\u0003\u0017\u000b"+ + "\u0000\u1c38\u1c39\u0003!\u0010\u0000\u1c39\u1c3a\u0003\u000f\u0007\u0000"+ + "\u1c3a\u1c3b\u0003\r\u0006\u0000\u1c3b\u1c3c\u0005_\u0000\u0000\u1c3c"+ + "\u1c3d\u0003-\u0016\u0000\u1c3d\u1c3e\u00037\u001b\u0000\u1c3e\u1c3f\u0003"+ + "%\u0012\u0000\u1c3f\u1c40\u0003\u000f\u0007\u0000\u1c40\u1c41\u0005_\u0000"+ + "\u0000\u1c41\u1c42\u0003\u000b\u0005\u0000\u1c42\u1c43\u0003\u0007\u0003"+ + "\u0000\u1c43\u1c44\u0003-\u0016\u0000\u1c44\u1c45\u0003\u0007\u0003\u0000"+ + "\u1c45\u1c46\u0003\u001d\u000e\u0000\u1c46\u1c47\u0003#\u0011\u0000\u1c47"+ + "\u1c48\u0003\u0013\t\u0000\u1c48\u0518\u0001\u0000\u0000\u0000\u1c49\u1c4a"+ + "\u0003/\u0017\u0000\u1c4a\u1c4b\u0003+\u0015\u0000\u1c4b\u1c4c\u0003\u000f"+ + "\u0007\u0000\u1c4c\u1c4d\u0003)\u0014\u0000\u1c4d\u1c4e\u0005_\u0000\u0000"+ + "\u1c4e\u1c4f\u0003\r\u0006\u0000\u1c4f\u1c50\u0003\u000f\u0007\u0000\u1c50"+ + "\u1c51\u0003\u0011\b\u0000\u1c51\u1c52\u0003\u0017\u000b\u0000\u1c52\u1c53"+ + "\u0003!\u0010\u0000\u1c53\u1c54\u0003\u000f\u0007\u0000\u1c54\u1c55\u0003"+ + "\r\u0006\u0000\u1c55\u1c56\u0005_\u0000\u0000\u1c56\u1c57\u0003-\u0016"+ + "\u0000\u1c57\u1c58\u00037\u001b\u0000\u1c58\u1c59\u0003%\u0012\u0000\u1c59"+ + "\u1c5a\u0003\u000f\u0007\u0000\u1c5a\u1c5b\u0005_\u0000\u0000\u1c5b\u1c5c"+ + "\u0003\u000b\u0005\u0000\u1c5c\u1c5d\u0003#\u0011\u0000\u1c5d\u1c5e\u0003"+ + "\r\u0006\u0000\u1c5e\u1c5f\u0003\u000f\u0007\u0000\u1c5f\u051a\u0001\u0000"+ + "\u0000\u0000\u1c60\u1c61\u0003/\u0017\u0000\u1c61\u1c62\u0003+\u0015\u0000"+ + "\u1c62\u1c63\u0003\u000f\u0007\u0000\u1c63\u1c64\u0003)\u0014\u0000\u1c64"+ + "\u1c65\u0005_\u0000\u0000\u1c65\u1c66\u0003\r\u0006\u0000\u1c66\u1c67"+ + "\u0003\u000f\u0007\u0000\u1c67\u1c68\u0003\u0011\b\u0000\u1c68\u1c69\u0003"+ + "\u0017\u000b\u0000\u1c69\u1c6a\u0003!\u0010\u0000\u1c6a\u1c6b\u0003\u000f"+ + "\u0007\u0000\u1c6b\u1c6c\u0003\r\u0006\u0000\u1c6c\u1c6d\u0005_\u0000"+ + "\u0000\u1c6d\u1c6e\u0003-\u0016\u0000\u1c6e\u1c6f\u00037\u001b\u0000\u1c6f"+ + "\u1c70\u0003%\u0012\u0000\u1c70\u1c71\u0003\u000f\u0007\u0000\u1c71\u1c72"+ + "\u0005_\u0000\u0000\u1c72\u1c73\u0003!\u0010\u0000\u1c73\u1c74\u0003\u0007"+ + "\u0003\u0000\u1c74\u1c75\u0003\u001f\u000f\u0000\u1c75\u1c76\u0003\u000f"+ + "\u0007\u0000\u1c76\u051c\u0001\u0000\u0000\u0000\u1c77\u1c78\u0003/\u0017"+ + "\u0000\u1c78\u1c79\u0003+\u0015\u0000\u1c79\u1c7a\u0003\u000f\u0007\u0000"+ + "\u1c7a\u1c7b\u0003)\u0014\u0000\u1c7b\u1c7c\u0005_\u0000\u0000\u1c7c\u1c7d"+ + "\u0003\r\u0006\u0000\u1c7d\u1c7e\u0003\u000f\u0007\u0000\u1c7e\u1c7f\u0003"+ + "\u0011\b\u0000\u1c7f\u1c80\u0003\u0017\u000b\u0000\u1c80\u1c81\u0003!"+ + "\u0010\u0000\u1c81\u1c82\u0003\u000f\u0007\u0000\u1c82\u1c83\u0003\r\u0006"+ + "\u0000\u1c83\u1c84\u0005_\u0000\u0000\u1c84\u1c85\u0003-\u0016\u0000\u1c85"+ + "\u1c86\u00037\u001b\u0000\u1c86\u1c87\u0003%\u0012\u0000\u1c87\u1c88\u0003"+ + "\u000f\u0007\u0000\u1c88\u1c89\u0005_\u0000\u0000\u1c89\u1c8a\u0003+\u0015"+ + "\u0000\u1c8a\u1c8b\u0003\u000b\u0005\u0000\u1c8b\u1c8c\u0003\u0015\n\u0000"+ + "\u1c8c\u1c8d\u0003\u000f\u0007\u0000\u1c8d\u1c8e\u0003\u001f\u000f\u0000"+ + "\u1c8e\u1c8f\u0003\u0007\u0003\u0000\u1c8f\u051e\u0001\u0000\u0000\u0000"+ + "\u1c90\u1c91\u0003/\u0017\u0000\u1c91\u1c92\u0003+\u0015\u0000\u1c92\u1c93"+ + "\u0003\u0017\u000b\u0000\u1c93\u1c94\u0003!\u0010\u0000\u1c94\u1c95\u0003"+ + "\u0013\t\u0000\u1c95\u0520\u0001\u0000\u0000\u0000\u1c96\u1c97\u00031"+ + "\u0018\u0000\u1c97\u1c98\u0003\u0007\u0003\u0000\u1c98\u1c99\u0003\u000b"+ + "\u0005\u0000\u1c99\u1c9a\u0003/\u0017\u0000\u1c9a\u1c9b\u0003/\u0017\u0000"+ + "\u1c9b\u1c9c\u0003\u001f\u000f\u0000\u1c9c\u0522\u0001\u0000\u0000\u0000"+ + "\u1c9d\u1c9e\u00031\u0018\u0000\u1c9e\u1c9f\u0003\u0007\u0003\u0000\u1c9f"+ + "\u1ca0\u0003\u001d\u000e\u0000\u1ca0\u1ca1\u0003\u0017\u000b\u0000\u1ca1"+ + "\u1ca2\u0003\r\u0006\u0000\u1ca2\u0524\u0001\u0000\u0000\u0000\u1ca3\u1ca4"+ + "\u00031\u0018\u0000\u1ca4\u1ca5\u0003\u0007\u0003\u0000\u1ca5\u1ca6\u0003"+ + "\u001d\u000e\u0000\u1ca6\u1ca7\u0003\u0017\u000b\u0000\u1ca7\u1ca8\u0003"+ + "\r\u0006\u0000\u1ca8\u1ca9\u0003\u0007\u0003\u0000\u1ca9\u1caa\u0003-"+ + "\u0016\u0000\u1caa\u1cab\u0003\u000f\u0007\u0000\u1cab\u0526\u0001\u0000"+ + "\u0000\u0000\u1cac\u1cad\u00031\u0018\u0000\u1cad\u1cae\u0003\u0007\u0003"+ + "\u0000\u1cae\u1caf\u0003\u001d\u000e\u0000\u1caf\u1cb0\u0003\u0017\u000b"+ + "\u0000\u1cb0\u1cb1\u0003\r\u0006\u0000\u1cb1\u1cb2\u0003\u0007\u0003\u0000"+ + "\u1cb2\u1cb3\u0003-\u0016\u0000\u1cb3\u1cb4\u0003#\u0011\u0000\u1cb4\u1cb5"+ + "\u0003)\u0014\u0000\u1cb5\u0528\u0001\u0000\u0000\u0000\u1cb6\u1cb7\u0003"+ + "1\u0018\u0000\u1cb7\u1cb8\u0003\u0007\u0003\u0000\u1cb8\u1cb9\u0003\u001d"+ + "\u000e\u0000\u1cb9\u1cba\u0003/\u0017\u0000\u1cba\u1cbb\u0003\u000f\u0007"+ + "\u0000\u1cbb\u052a\u0001\u0000\u0000\u0000\u1cbc\u1cbd\u00031\u0018\u0000"+ + "\u1cbd\u1cbe\u0003\u0007\u0003\u0000\u1cbe\u1cbf\u0003\u001d\u000e\u0000"+ + "\u1cbf\u1cc0\u0003/\u0017\u0000\u1cc0\u1cc1\u0003\u000f\u0007\u0000\u1cc1"+ + "\u1cc2\u0003+\u0015\u0000\u1cc2\u052c\u0001\u0000\u0000\u0000\u1cc3\u1cc4"+ + "\u00031\u0018\u0000\u1cc4\u1cc5\u0003\u0007\u0003\u0000\u1cc5\u1cc6\u0003"+ + ")\u0014\u0000\u1cc6\u1cc7\u0005_\u0000\u0000\u1cc7\u1cc8\u0003%\u0012"+ + "\u0000\u1cc8\u1cc9\u0003#\u0011\u0000\u1cc9\u1cca\u0003%\u0012\u0000\u1cca"+ + "\u052e\u0001\u0000\u0000\u0000\u1ccb\u1ccc\u00031\u0018\u0000\u1ccc\u1ccd"+ + "\u0003\u0007\u0003\u0000\u1ccd\u1cce\u0003)\u0014\u0000\u1cce\u1ccf\u0005"+ + "_\u0000\u0000\u1ccf\u1cd0\u0003+\u0015\u0000\u1cd0\u1cd1\u0003\u0007\u0003"+ + "\u0000\u1cd1\u1cd2\u0003\u001f\u000f\u0000\u1cd2\u1cd3\u0003%\u0012\u0000"+ + "\u1cd3\u0530\u0001\u0000\u0000\u0000\u1cd4\u1cd5\u00031\u0018\u0000\u1cd5"+ + "\u1cd6\u0003\u0007\u0003\u0000\u1cd6\u1cd7\u0003)\u0014\u0000\u1cd7\u1cd8"+ + "\u0003\u000b\u0005\u0000\u1cd8\u1cd9\u0003\u0015\n\u0000\u1cd9\u1cda\u0003"+ + "\u0007\u0003\u0000\u1cda\u1cdb\u0003)\u0014\u0000\u1cdb\u0532\u0001\u0000"+ + "\u0000\u0000\u1cdc\u1cdd\u00031\u0018\u0000\u1cdd\u1cde\u0003\u0007\u0003"+ + "\u0000\u1cde\u1cdf\u0003)\u0014\u0000\u1cdf\u1ce0\u0003\u0017\u000b\u0000"+ + "\u1ce0\u1ce1\u0003\u0007\u0003\u0000\u1ce1\u1ce2\u0003\t\u0004\u0000\u1ce2"+ + "\u1ce3\u0003\u001d\u000e\u0000\u1ce3\u1ce4\u0003\u000f\u0007\u0000\u1ce4"+ + "\u0534\u0001\u0000\u0000\u0000\u1ce5\u1ce6\u00031\u0018\u0000\u1ce6\u1ce7"+ + "\u0003\u0007\u0003\u0000\u1ce7\u1ce8\u0003)\u0014\u0000\u1ce8\u1ce9\u0003"+ + "\u0017\u000b\u0000\u1ce9\u1cea\u0003\u0007\u0003\u0000\u1cea\u1ceb\u0003"+ + "\r\u0006\u0000\u1ceb\u1cec\u0003\u0017\u000b\u0000\u1cec\u1ced\u0003\u000b"+ + "\u0005\u0000\u1ced\u0536\u0001\u0000\u0000\u0000\u1cee\u1cef\u00031\u0018"+ + "\u0000\u1cef\u1cf0\u0003\u0007\u0003\u0000\u1cf0\u1cf1\u0003)\u0014\u0000"+ + "\u1cf1\u1cf2\u00037\u001b\u0000\u1cf2\u1cf3\u0003\u0017\u000b\u0000\u1cf3"+ + "\u1cf4\u0003!\u0010\u0000\u1cf4\u1cf5\u0003\u0013\t\u0000\u1cf5\u0538"+ + "\u0001\u0000\u0000\u0000\u1cf6\u1cf7\u00031\u0018\u0000\u1cf7\u1cf8\u0003"+ + "\u000f\u0007\u0000\u1cf8\u1cf9\u0003)\u0014\u0000\u1cf9\u1cfa\u0003\t"+ + "\u0004\u0000\u1cfa\u1cfb\u0003#\u0011\u0000\u1cfb\u1cfc\u0003+\u0015\u0000"+ + "\u1cfc\u1cfd\u0003\u000f\u0007\u0000\u1cfd\u053a\u0001\u0000\u0000\u0000"+ + "\u1cfe\u1cff\u00031\u0018\u0000\u1cff\u1d00\u0003\u0017\u000b\u0000\u1d00"+ + "\u1d01\u0003\u000f\u0007\u0000\u1d01\u1d02\u00033\u0019\u0000\u1d02\u053c"+ + "\u0001\u0000\u0000\u0000\u1d03\u1d04\u00031\u0018\u0000\u1d04\u1d05\u0003"+ + "#\u0011\u0000\u1d05\u1d06\u0003\u001d\u000e\u0000\u1d06\u1d07\u0003\u0007"+ + "\u0003\u0000\u1d07\u1d08\u0003-\u0016\u0000\u1d08\u1d09\u0003\u0017\u000b"+ + "\u0000\u1d09\u1d0a\u0003\u001d\u000e\u0000\u1d0a\u1d0b\u0003\u000f\u0007"+ + "\u0000\u1d0b\u053e\u0001\u0000\u0000\u0000\u1d0c\u1d0d\u00033\u0019\u0000"+ + "\u1d0d\u1d0e\u0003\u0015\n\u0000\u1d0e\u1d0f\u0003\u000f\u0007\u0000\u1d0f"+ + "\u1d10\u0003!\u0010\u0000\u1d10\u0540\u0001\u0000\u0000\u0000\u1d11\u1d12"+ + "\u00033\u0019\u0000\u1d12\u1d13\u0003\u0015\n\u0000\u1d13\u1d14\u0003"+ + "\u000f\u0007\u0000\u1d14\u1d15\u0003!\u0010\u0000\u1d15\u1d16\u0003\u000f"+ + "\u0007\u0000\u1d16\u1d17\u00031\u0018\u0000\u1d17\u1d18\u0003\u000f\u0007"+ + "\u0000\u1d18\u1d19\u0003)\u0014\u0000\u1d19\u0542\u0001\u0000\u0000\u0000"+ + "\u1d1a\u1d1b\u00033\u0019\u0000\u1d1b\u1d1c\u0003\u0015\n\u0000\u1d1c"+ + "\u1d1d\u0003\u000f\u0007\u0000\u1d1d\u1d1e\u0003)\u0014\u0000\u1d1e\u1d1f"+ + "\u0003\u000f\u0007\u0000\u1d1f\u0544\u0001\u0000\u0000\u0000\u1d20\u1d21"+ + "\u00033\u0019\u0000\u1d21\u1d22\u0003\u0017\u000b\u0000\u1d22\u1d23\u0003"+ + "\r\u0006\u0000\u1d23\u1d24\u0003-\u0016\u0000\u1d24\u1d25\u0003\u0015"+ + "\n\u0000\u1d25\u1d26\u0005_\u0000\u0000\u1d26\u1d27\u0003\t\u0004\u0000"+ + "\u1d27\u1d28\u0003/\u0017\u0000\u1d28\u1d29\u0003\u000b\u0005\u0000\u1d29"+ + "\u1d2a\u0003\u001b\r\u0000\u1d2a\u1d2b\u0003\u000f\u0007\u0000\u1d2b\u1d2c"+ + "\u0003-\u0016\u0000\u1d2c\u0546\u0001\u0000\u0000\u0000\u1d2d\u1d2e\u0003"+ + "3\u0019\u0000\u1d2e\u1d2f\u0003\u0017\u000b\u0000\u1d2f\u1d30\u0003!\u0010"+ + "\u0000\u1d30\u1d31\u0003\r\u0006\u0000\u1d31\u1d32\u0003#\u0011\u0000"+ + "\u1d32\u1d33\u00033\u0019\u0000\u1d33\u0548\u0001\u0000\u0000\u0000\u1d34"+ + "\u1d35\u00033\u0019\u0000\u1d35\u1d36\u0003\u0017\u000b\u0000\u1d36\u1d37"+ + "\u0003-\u0016\u0000\u1d37\u1d38\u0003\u0015\n\u0000\u1d38\u054a\u0001"+ + "\u0000\u0000\u0000\u1d39\u1d3a\u00033\u0019\u0000\u1d3a\u1d3b\u0003\u0017"+ + "\u000b\u0000\u1d3b\u1d3c\u0003-\u0016\u0000\u1d3c\u1d3d\u0003\u0015\n"+ + "\u0000\u1d3d\u1d3e\u0003\u0017\u000b\u0000\u1d3e\u1d3f\u0003!\u0010\u0000"+ + "\u1d3f\u054c\u0001\u0000\u0000\u0000\u1d40\u1d41\u00033\u0019\u0000\u1d41"+ + "\u1d42\u0003\u0017\u000b\u0000\u1d42\u1d43\u0003-\u0016\u0000\u1d43\u1d44"+ + "\u0003\u0015\n\u0000\u1d44\u1d45\u0003#\u0011\u0000\u1d45\u1d46\u0003"+ + "/\u0017\u0000\u1d46\u1d47\u0003-\u0016\u0000\u1d47\u054e\u0001\u0000\u0000"+ + "\u0000\u1d48\u1d49\u00033\u0019\u0000\u1d49\u1d4a\u0003#\u0011\u0000\u1d4a"+ + "\u1d4b\u0003)\u0014\u0000\u1d4b\u1d4c\u0003\u001b\r\u0000\u1d4c\u0550"+ + "\u0001\u0000\u0000\u0000\u1d4d\u1d4e\u00033\u0019\u0000\u1d4e\u1d4f\u0003"+ + ")\u0014\u0000\u1d4f\u1d50\u0003\u0017\u000b\u0000\u1d50\u1d51\u0003-\u0016"+ + "\u0000\u1d51\u1d52\u0003\u000f\u0007\u0000\u1d52\u0552\u0001\u0000\u0000"+ + "\u0000\u1d53\u1d54\u00037\u001b\u0000\u1d54\u1d55\u0003\u0007\u0003\u0000"+ + "\u1d55\u1d56\u0003\u001f\u000f\u0000\u1d56\u1d57\u0003\u001d\u000e\u0000"+ + "\u1d57\u0554\u0001\u0000\u0000\u0000\u1d58\u1d59\u00037\u001b\u0000\u1d59"+ + "\u1d5a\u0003\u000f\u0007\u0000\u1d5a\u1d5b\u0003\u0007\u0003\u0000\u1d5b"+ + "\u1d5c\u0003)\u0014\u0000\u1d5c\u0556\u0001\u0000\u0000\u0000\u1d5d\u1d5e"+ + "\u00037\u001b\u0000\u1d5e\u1d5f\u0003\u000f\u0007\u0000\u1d5f\u1d60\u0003"+ + "+\u0015\u0000\u1d60\u0558\u0001\u0000\u0000\u0000\u1d61\u1d62\u00039\u001c"+ + "\u0000\u1d62\u1d63\u0003#\u0011\u0000\u1d63\u1d64\u0003!\u0010\u0000\u1d64"+ + "\u1d65\u0003\u000f\u0007\u0000\u1d65\u055a\u0001\u0000\u0000\u0000\u1d66"+ + "\u1d67\u0003+\u0015\u0000\u1d67\u1d68\u0003/\u0017\u0000\u1d68\u1d69\u0003"+ + "%\u0012\u0000\u1d69\u1d6a\u0003\u000f\u0007\u0000\u1d6a\u1d6b\u0003)\u0014"+ + "\u0000\u1d6b\u1d6c\u0003/\u0017\u0000\u1d6c\u1d6d\u0003+\u0015\u0000\u1d6d"+ + "\u1d6e\u0003\u000f\u0007\u0000\u1d6e\u1d6f\u0003)\u0014\u0000\u1d6f\u055c"+ + "\u0001\u0000\u0000\u0000\u1d70\u1d71\u0003!\u0010\u0000\u1d71\u1d72\u0003"+ + "#\u0011\u0000\u1d72\u1d73\u0003+\u0015\u0000\u1d73\u1d74\u0003/\u0017"+ + "\u0000\u1d74\u1d75\u0003%\u0012\u0000\u1d75\u1d76\u0003\u000f\u0007\u0000"+ + "\u1d76\u1d77\u0003)\u0014\u0000\u1d77\u1d78\u0003/\u0017\u0000\u1d78\u1d79"+ + "\u0003+\u0015\u0000\u1d79\u1d7a\u0003\u000f\u0007\u0000\u1d7a\u1d7b\u0003"+ + ")\u0014\u0000\u1d7b\u055e\u0001\u0000\u0000\u0000\u1d7c\u1d7d\u0003\u000b"+ + "\u0005\u0000\u1d7d\u1d7e\u0003)\u0014\u0000\u1d7e\u1d7f\u0003\u000f\u0007"+ + "\u0000\u1d7f\u1d80\u0003\u0007\u0003\u0000\u1d80\u1d81\u0003-\u0016\u0000"+ + "\u1d81\u1d82\u0003\u000f\u0007\u0000\u1d82\u1d83\u0003)\u0014\u0000\u1d83"+ + "\u1d84\u0003#\u0011\u0000\u1d84\u1d85\u0003\u001d\u000e\u0000\u1d85\u1d86"+ + "\u0003\u000f\u0007\u0000\u1d86\u0560\u0001\u0000\u0000\u0000\u1d87\u1d88"+ + "\u0003!\u0010\u0000\u1d88\u1d89\u0003#\u0011\u0000\u1d89\u1d8a\u0003\u000b"+ + "\u0005\u0000\u1d8a\u1d8b\u0003)\u0014\u0000\u1d8b\u1d8c\u0003\u000f\u0007"+ + "\u0000\u1d8c\u1d8d\u0003\u0007\u0003\u0000\u1d8d\u1d8e\u0003-\u0016\u0000"+ + "\u1d8e\u1d8f\u0003\u000f\u0007\u0000\u1d8f\u1d90\u0003)\u0014\u0000\u1d90"+ + "\u1d91\u0003#\u0011\u0000\u1d91\u1d92\u0003\u001d\u000e\u0000\u1d92\u1d93"+ + "\u0003\u000f\u0007\u0000\u1d93\u0562\u0001\u0000\u0000\u0000\u1d94\u1d95"+ + "\u0003\u0017\u000b\u0000\u1d95\u1d96\u0003!\u0010\u0000\u1d96\u1d97\u0003"+ + "\u0015\n\u0000\u1d97\u1d98\u0003\u000f\u0007\u0000\u1d98\u1d99\u0003)"+ + "\u0014\u0000\u1d99\u1d9a\u0003\u0017\u000b\u0000\u1d9a\u1d9b\u0003-\u0016"+ + "\u0000\u1d9b\u0564\u0001\u0000\u0000\u0000\u1d9c\u1d9d\u0003!\u0010\u0000"+ + "\u1d9d\u1d9e\u0003#\u0011\u0000\u1d9e\u1d9f\u0003\u0017\u000b\u0000\u1d9f"+ + "\u1da0\u0003!\u0010\u0000\u1da0\u1da1\u0003\u0015\n\u0000\u1da1\u1da2"+ + "\u0003\u000f\u0007\u0000\u1da2\u1da3\u0003)\u0014\u0000\u1da3\u1da4\u0003"+ + "\u0017\u000b\u0000\u1da4\u1da5\u0003-\u0016\u0000\u1da5\u0566\u0001\u0000"+ + "\u0000\u0000\u1da6\u1da7\u0003\u001d\u000e\u0000\u1da7\u1da8\u0003#\u0011"+ + "\u0000\u1da8\u1da9\u0003\u0013\t\u0000\u1da9\u1daa\u0003\u0017\u000b\u0000"+ + "\u1daa\u1dab\u0003!\u0010\u0000\u1dab\u0568\u0001\u0000\u0000\u0000\u1dac"+ + "\u1dad\u0003!\u0010\u0000\u1dad\u1dae\u0003#\u0011\u0000\u1dae\u1daf\u0003"+ + "\u001d\u000e\u0000\u1daf\u1db0\u0003#\u0011\u0000\u1db0\u1db1\u0003\u0013"+ + "\t\u0000\u1db1\u1db2\u0003\u0017\u000b\u0000\u1db2\u1db3\u0003!\u0010"+ + "\u0000\u1db3\u056a\u0001\u0000\u0000\u0000\u1db4\u1db5\u0003)\u0014\u0000"+ + "\u1db5\u1db6\u0003\u000f\u0007\u0000\u1db6\u1db7\u0003%\u0012\u0000\u1db7"+ + "\u1db8\u0003\u001d\u000e\u0000\u1db8\u1db9\u0003\u0017\u000b\u0000\u1db9"+ + "\u1dba\u0003\u000b\u0005\u0000\u1dba\u1dbb\u0003\u0007\u0003\u0000\u1dbb"+ + "\u1dbc\u0003-\u0016\u0000\u1dbc\u1dbd\u0003\u0017\u000b\u0000\u1dbd\u1dbe"+ + "\u0003#\u0011\u0000\u1dbe\u1dbf\u0003!\u0010\u0000\u1dbf\u056c\u0001\u0000"+ + "\u0000\u0000\u1dc0\u1dc1\u0003!\u0010\u0000\u1dc1\u1dc2\u0003#\u0011\u0000"+ + "\u1dc2\u1dc3\u0003)\u0014\u0000\u1dc3\u1dc4\u0003\u000f\u0007\u0000\u1dc4"+ + "\u1dc5\u0003%\u0012\u0000\u1dc5\u1dc6\u0003\u001d\u000e\u0000\u1dc6\u1dc7"+ + "\u0003\u0017\u000b\u0000\u1dc7\u1dc8\u0003\u000b\u0005\u0000\u1dc8\u1dc9"+ + "\u0003\u0007\u0003\u0000\u1dc9\u1dca\u0003-\u0016\u0000\u1dca\u1dcb\u0003"+ + "\u0017\u000b\u0000\u1dcb\u1dcc\u0003#\u0011\u0000\u1dcc\u1dcd\u0003!\u0010"+ + "\u0000\u1dcd\u056e\u0001\u0000\u0000\u0000\u1dce\u1dcf\u0003\t\u0004\u0000"+ + "\u1dcf\u1dd0\u00037\u001b\u0000\u1dd0\u1dd1\u0003%\u0012\u0000\u1dd1\u1dd2"+ + "\u0003\u0007\u0003\u0000\u1dd2\u1dd3\u0003+\u0015\u0000\u1dd3\u1dd4\u0003"+ + "+\u0015\u0000\u1dd4\u1dd5\u0003)\u0014\u0000\u1dd5\u1dd6\u0003\u001d\u000e"+ + "\u0000\u1dd6\u1dd7\u0003+\u0015\u0000\u1dd7\u0570\u0001\u0000\u0000\u0000"+ + "\u1dd8\u1dd9\u0003!\u0010\u0000\u1dd9\u1dda\u0003#\u0011\u0000\u1dda\u1ddb"+ + "\u0003\t\u0004\u0000\u1ddb\u1ddc\u00037\u001b\u0000\u1ddc\u1ddd\u0003"+ + "%\u0012\u0000\u1ddd\u1dde\u0003\u0007\u0003\u0000\u1dde\u1ddf\u0003+\u0015"+ + "\u0000\u1ddf\u1de0\u0003+\u0015\u0000\u1de0\u1de1\u0003)\u0014\u0000\u1de1"+ + "\u1de2\u0003\u001d\u000e\u0000\u1de2\u1de3\u0003+\u0015\u0000\u1de3\u0572"+ + "\u0001\u0000\u0000\u0000\u1de4\u1de5\u0003+\u0015\u0000\u1de5\u1de6\u0003"+ + "\u0011\b\u0000\u1de6\u1de7\u0003/\u0017\u0000\u1de7\u1de8\u0003!\u0010"+ + "\u0000\u1de8\u1de9\u0003\u000b\u0005\u0000\u1de9\u0574\u0001\u0000\u0000"+ + "\u0000\u1dea\u1deb\u0003+\u0015\u0000\u1deb\u1dec\u0003-\u0016\u0000\u1dec"+ + "\u1ded\u00037\u001b\u0000\u1ded\u1dee\u0003%\u0012\u0000\u1dee\u1def\u0003"+ + "\u000f\u0007\u0000\u1def\u0576\u0001\u0000\u0000\u0000\u1df0\u1df1\u0003"+ + "+\u0015\u0000\u1df1\u1df2\u0003+\u0015\u0000\u1df2\u1df3\u0003%\u0012"+ + "\u0000\u1df3\u1df4\u0003\u0007\u0003\u0000\u1df4\u1df5\u0003\u000b\u0005"+ + "\u0000\u1df5\u1df6\u0003\u000f\u0007\u0000\u1df6\u0578\u0001\u0000\u0000"+ + "\u0000\u1df7\u1df8\u0003\u0011\b\u0000\u1df8\u1df9\u0003\u0017\u000b\u0000"+ + "\u1df9\u1dfa\u0003!\u0010\u0000\u1dfa\u1dfb\u0003\u0007\u0003\u0000\u1dfb"+ + "\u1dfc\u0003\u001d\u000e\u0000\u1dfc\u1dfd\u0003\u0011\b\u0000\u1dfd\u1dfe"+ + "\u0003/\u0017\u0000\u1dfe\u1dff\u0003!\u0010\u0000\u1dff\u1e00\u0003\u000b"+ + "\u0005\u0000\u1e00\u057a\u0001\u0000\u0000\u0000\u1e01\u1e02\u0003\u0011"+ + "\b\u0000\u1e02\u1e03\u0003\u0017\u000b\u0000\u1e03\u1e04\u0003!\u0010"+ + "\u0000\u1e04\u1e05\u0003\u0007\u0003\u0000\u1e05\u1e06\u0003\u001d\u000e"+ + "\u0000\u1e06\u1e07\u0003\u0011\b\u0000\u1e07\u1e08\u0003/\u0017\u0000"+ + "\u1e08\u1e09\u0003!\u0010\u0000\u1e09\u1e0a\u0003\u000b\u0005\u0000\u1e0a"+ + "\u1e0b\u0005_\u0000\u0000\u1e0b\u1e0c\u0003\u000f\u0007\u0000\u1e0c\u1e0d"+ + "\u00035\u001a\u0000\u1e0d\u1e0e\u0003-\u0016\u0000\u1e0e\u1e0f\u0003)"+ + "\u0014\u0000\u1e0f\u1e10\u0003\u0007\u0003\u0000\u1e10\u057c\u0001\u0000"+ + "\u0000\u0000\u1e11\u1e12\u0003\u000b\u0005\u0000\u1e12\u1e13\u0003#\u0011"+ + "\u0000\u1e13\u1e14\u0003\u001f\u000f\u0000\u1e14\u1e15\u0003\t\u0004\u0000"+ + "\u1e15\u1e16\u0003\u0017\u000b\u0000\u1e16\u1e17\u0003!\u0010\u0000\u1e17"+ + "\u1e18\u0003\u000f\u0007\u0000\u1e18\u1e19\u0003\u0011\b\u0000\u1e19\u1e1a"+ + "\u0003/\u0017\u0000\u1e1a\u1e1b\u0003!\u0010\u0000\u1e1b\u1e1c\u0003\u000b"+ + "\u0005\u0000\u1e1c\u057e\u0001\u0000\u0000\u0000\u1e1d\u1e1e\u0003+\u0015"+ + "\u0000\u1e1e\u1e1f\u0003\u000f\u0007\u0000\u1e1f\u1e20\u0003)\u0014\u0000"+ + "\u1e20\u1e21\u0003\u0017\u000b\u0000\u1e21\u1e22\u0003\u0007\u0003\u0000"+ + "\u1e22\u1e23\u0003\u001d\u000e\u0000\u1e23\u1e24\u0003\u0011\b\u0000\u1e24"+ + "\u1e25\u0003/\u0017\u0000\u1e25\u1e26\u0003!\u0010\u0000\u1e26\u1e27\u0003"; + private static final String _serializedATNSegment3 = + "\u000b\u0005\u0000\u1e27\u0580\u0001\u0000\u0000\u0000\u1e28\u1e29\u0003"+ + "\r\u0006\u0000\u1e29\u1e2a\u0003\u000f\u0007\u0000\u1e2a\u1e2b\u0003+"+ + "\u0015\u0000\u1e2b\u1e2c\u0003\u000f\u0007\u0000\u1e2c\u1e2d\u0003)\u0014"+ + "\u0000\u1e2d\u1e2e\u0003\u0017\u000b\u0000\u1e2e\u1e2f\u0003\u0007\u0003"+ + "\u0000\u1e2f\u1e30\u0003\u001d\u000e\u0000\u1e30\u1e31\u0003\u0011\b\u0000"+ + "\u1e31\u1e32\u0003/\u0017\u0000\u1e32\u1e33\u0003!\u0010\u0000\u1e33\u1e34"+ + "\u0003\u000b\u0005\u0000\u1e34\u0582\u0001\u0000\u0000\u0000\u1e35\u1e36"+ + "\u0003\u0017\u000b\u0000\u1e36\u1e37\u0003!\u0010\u0000\u1e37\u1e38\u0003"+ + "\u0017\u000b\u0000\u1e38\u1e39\u0003-\u0016\u0000\u1e39\u1e3a\u0003\u000b"+ + "\u0005\u0000\u1e3a\u1e3b\u0003#\u0011\u0000\u1e3b\u1e3c\u0003!\u0010\u0000"+ + "\u1e3c\u1e3d\u0003\r\u0006\u0000\u1e3d\u0584\u0001\u0000\u0000\u0000\u1e3e"+ + "\u1e3f\u0003\u001f\u000f\u0000\u1e3f\u1e40\u0003+\u0015\u0000\u1e40\u1e41"+ + "\u0003\u0011\b\u0000\u1e41\u1e42\u0003/\u0017\u0000\u1e42\u1e43\u0003"+ + "!\u0010\u0000\u1e43\u1e44\u0003\u000b\u0005\u0000\u1e44\u0586\u0001\u0000"+ + "\u0000\u0000\u1e45\u1e46\u0003\u001f\u000f\u0000\u1e46\u1e47\u0003\u0017"+ + "\u000b\u0000\u1e47\u1e48\u0003!\u0010\u0000\u1e48\u1e49\u00031\u0018\u0000"+ + "\u1e49\u1e4a\u0003\u0011\b\u0000\u1e4a\u1e4b\u0003/\u0017\u0000\u1e4b"+ + "\u1e4c\u0003!\u0010\u0000\u1e4c\u1e4d\u0003\u000b\u0005\u0000\u1e4d\u0588"+ + "\u0001\u0000\u0000\u0000\u1e4e\u1e4f\u0003\u001f\u000f\u0000\u1e4f\u1e50"+ + "\u0003+\u0015\u0000\u1e50\u1e51\u0003-\u0016\u0000\u1e51\u1e52\u00037"+ + "\u001b\u0000\u1e52\u1e53\u0003%\u0012\u0000\u1e53\u1e54\u0003\u000f\u0007"+ + "\u0000\u1e54\u058a\u0001\u0000\u0000\u0000\u1e55\u1e56\u0003\u001f\u000f"+ + "\u0000\u1e56\u1e57\u0003+\u0015\u0000\u1e57\u1e58\u0003+\u0015\u0000\u1e58"+ + "\u1e59\u0003%\u0012\u0000\u1e59\u1e5a\u0003\u0007\u0003\u0000\u1e5a\u1e5b"+ + "\u0003\u000b\u0005\u0000\u1e5b\u1e5c\u0003\u000f\u0007\u0000\u1e5c\u058c"+ + "\u0001\u0000\u0000\u0000\u1e5d\u1e5e\u0003\u001f\u000f\u0000\u1e5e\u1e5f"+ + "\u0003\u0011\b\u0000\u1e5f\u1e60\u0003\u0017\u000b\u0000\u1e60\u1e61\u0003"+ + "!\u0010\u0000\u1e61\u1e62\u0003\u0007\u0003\u0000\u1e62\u1e63\u0003\u001d"+ + "\u000e\u0000\u1e63\u1e64\u0003\u0011\b\u0000\u1e64\u1e65\u0003/\u0017"+ + "\u0000\u1e65\u1e66\u0003!\u0010\u0000\u1e66\u1e67\u0003\u000b\u0005\u0000"+ + "\u1e67\u058e\u0001\u0000\u0000\u0000\u1e68\u1e69\u0003\u001f\u000f\u0000"+ + "\u1e69\u1e6a\u0003\u0011\b\u0000\u1e6a\u1e6b\u0003\u0017\u000b\u0000\u1e6b"+ + "\u1e6c\u0003!\u0010\u0000\u1e6c\u1e6d\u0003\u0007\u0003\u0000\u1e6d\u1e6e"+ + "\u0003\u001d\u000e\u0000\u1e6e\u1e6f\u0003\u0011\b\u0000\u1e6f\u1e70\u0003"+ + "/\u0017\u0000\u1e70\u1e71\u0003!\u0010\u0000\u1e71\u1e72\u0003\u000b\u0005"+ + "\u0000\u1e72\u1e73\u0005_\u0000\u0000\u1e73\u1e74\u0003\u000f\u0007\u0000"+ + "\u1e74\u1e75\u00035\u001a\u0000\u1e75\u1e76\u0003-\u0016\u0000\u1e76\u1e77"+ + "\u0003)\u0014\u0000\u1e77\u1e78\u0003\u0007\u0003\u0000\u1e78\u0590\u0001"+ + "\u0000\u0000\u0000\u1e79\u1e7a\u0003\u001f\u000f\u0000\u1e7a\u1e7b\u0003"+ + "\u0017\u000b\u0000\u1e7b\u1e7c\u0003!\u0010\u0000\u1e7c\u1e7d\u0003\u0017"+ + "\u000b\u0000\u1e7d\u1e7e\u0003-\u0016\u0000\u1e7e\u1e7f\u0003\u000b\u0005"+ + "\u0000\u1e7f\u1e80\u0003#\u0011\u0000\u1e80\u1e81\u0003!\u0010\u0000\u1e81"+ + "\u1e82\u0003\r\u0006\u0000\u1e82\u0592\u0001\u0000\u0000\u0000\u1e83\u1e84"+ + "\u0003+\u0015\u0000\u1e84\u1e85\u0003#\u0011\u0000\u1e85\u1e86\u0003)"+ + "\u0014\u0000\u1e86\u1e87\u0003-\u0016\u0000\u1e87\u1e88\u0003#\u0011\u0000"+ + "\u1e88\u1e89\u0003%\u0012\u0000\u1e89\u0594\u0001\u0000\u0000\u0000\u1e8a"+ + "\u1e8b\u0003%\u0012\u0000\u1e8b\u1e8c\u0003\u0007\u0003\u0000\u1e8c\u1e8d"+ + "\u0003)\u0014\u0000\u1e8d\u1e8e\u0003\u0007\u0003\u0000\u1e8e\u1e8f\u0003"+ + "\u001d\u000e\u0000\u1e8f\u1e90\u0003\u001d\u000e\u0000\u1e90\u1e91\u0003"+ + "\u000f\u0007\u0000\u1e91\u1e92\u0003\u001d\u000e\u0000\u1e92\u0596\u0001"+ + "\u0000\u0000\u0000\u1e93\u1e94\u0003\u0015\n\u0000\u1e94\u1e95\u00037"+ + "\u001b\u0000\u1e95\u1e96\u0003%\u0012\u0000\u1e96\u1e97\u0003#\u0011\u0000"+ + "\u1e97\u1e98\u0003-\u0016\u0000\u1e98\u1e99\u0003\u0015\n\u0000\u1e99"+ + "\u1e9a\u0003\u000f\u0007\u0000\u1e9a\u1e9b\u0003-\u0016\u0000\u1e9b\u1e9c"+ + "\u0003\u0017\u000b\u0000\u1e9c\u1e9d\u0003\u000b\u0005\u0000\u1e9d\u1e9e"+ + "\u0003\u0007\u0003\u0000\u1e9e\u1e9f\u0003\u001d\u000e\u0000\u1e9f\u0598"+ + "\u0001\u0000\u0000\u0000\u1ea0\u1ea1\u0003+\u0015\u0000\u1ea1\u1ea2\u0003"+ + "\u0007\u0003\u0000\u1ea2\u1ea3\u0003\u0011\b\u0000\u1ea3\u1ea4\u0003\u000f"+ + "\u0007\u0000\u1ea4\u059a\u0001\u0000\u0000\u0000\u1ea5\u1ea6\u0003/\u0017"+ + "\u0000\u1ea6\u1ea7\u0003!\u0010\u0000\u1ea7\u1ea8\u0003+\u0015\u0000\u1ea8"+ + "\u1ea9\u0003\u0007\u0003\u0000\u1ea9\u1eaa\u0003\u0011\b\u0000\u1eaa\u1eab"+ + "\u0003\u000f\u0007\u0000\u1eab\u059c\u0001\u0000\u0000\u0000\u1eac\u1ead"+ + "\u0003\t\u0004\u0000\u1ead\u1eae\u0003\u0007\u0003\u0000\u1eae\u1eaf\u0003"+ + "+\u0015\u0000\u1eaf\u1eb0\u0003\u000f\u0007\u0000\u1eb0\u1eb1\u0003-\u0016"+ + "\u0000\u1eb1\u1eb2\u00037\u001b\u0000\u1eb2\u1eb3\u0003%\u0012\u0000\u1eb3"+ + "\u1eb4\u0003\u000f\u0007\u0000\u1eb4\u059e\u0001\u0000\u0000\u0000\u1eb5"+ + "\u1eb6\u0003\u0017\u000b\u0000\u1eb6\u1eb7\u0003\u0011\b\u0000\u1eb7\u05a0"+ + "\u0001\u0000\u0000\u0000\u1eb8\u1eb9\u0003\u001d\u000e\u0000\u1eb9\u1eba"+ + "\u0003#\u0011\u0000\u1eba\u1ebb\u0003\u000b\u0005\u0000\u1ebb\u1ebc\u0003"+ + "\u0007\u0003\u0000\u1ebc\u1ebd\u0003\u001d\u000e\u0000\u1ebd\u1ebe\u0003"+ + "\u000f\u0007\u0000\u1ebe\u05a2\u0001\u0000\u0000\u0000\u1ebf\u1ec0\u0003"+ + "\u001d\u000e\u0000\u1ec0\u1ec1\u0003\u000b\u0005\u0000\u1ec1\u1ec2\u0005"+ + "_\u0000\u0000\u1ec2\u1ec3\u0003\u000b\u0005\u0000\u1ec3\u1ec4\u0003#\u0011"+ + "\u0000\u1ec4\u1ec5\u0003\u001d\u000e\u0000\u1ec5\u1ec6\u0003\u001d\u000e"+ + "\u0000\u1ec6\u1ec7\u0003\u0007\u0003\u0000\u1ec7\u1ec8\u0003-\u0016\u0000"+ + "\u1ec8\u1ec9\u0003\u000f\u0007\u0000\u1ec9\u05a4\u0001\u0000\u0000\u0000"+ + "\u1eca\u1ecb\u0003\u001d\u000e\u0000\u1ecb\u1ecc\u0003\u000b\u0005\u0000"+ + "\u1ecc\u1ecd\u0005_\u0000\u0000\u1ecd\u1ece\u0003\u000b\u0005\u0000\u1ece"+ + "\u1ecf\u0003-\u0016\u0000\u1ecf\u1ed0\u00037\u001b\u0000\u1ed0\u1ed1\u0003"+ + "%\u0012\u0000\u1ed1\u1ed2\u0003\u000f\u0007\u0000\u1ed2\u05a6\u0001\u0000"+ + "\u0000\u0000\u1ed3\u1ed4\u0003%\u0012\u0000\u1ed4\u1ed5\u0003)\u0014\u0000"+ + "\u1ed5\u1ed6\u0003#\u0011\u0000\u1ed6\u1ed7\u00031\u0018\u0000\u1ed7\u1ed8"+ + "\u0003\u0017\u000b\u0000\u1ed8\u1ed9\u0003\r\u0006\u0000\u1ed9\u1eda\u0003"+ + "\u000f\u0007\u0000\u1eda\u1edb\u0003)\u0014\u0000\u1edb\u05a8\u0001\u0000"+ + "\u0000\u0000\u1edc\u1edd\u00031\u0018\u0000\u1edd\u1ede\u0003\u000f\u0007"+ + "\u0000\u1ede\u1edf\u0003)\u0014\u0000\u1edf\u1ee0\u0003+\u0015\u0000\u1ee0"+ + "\u1ee1\u0003\u0017\u000b\u0000\u1ee1\u1ee2\u0003#\u0011\u0000\u1ee2\u1ee3"+ + "\u0003!\u0010\u0000\u1ee3\u05aa\u0001\u0000\u0000\u0000\u1ee4\u1ee5\u0003"+ + "\u0007\u0003\u0000\u1ee5\u1ee6\u0003\u001d\u000e\u0000\u1ee6\u1ee7\u0003"+ + "\u001d\u000e\u0000\u1ee7\u1ee8\u0003#\u0011\u0000\u1ee8\u1ee9\u00033\u0019"+ + "\u0000\u1ee9\u1eea\u0005_\u0000\u0000\u1eea\u1eeb\u0003\u000b\u0005\u0000"+ + "\u1eeb\u1eec\u0003#\u0011\u0000\u1eec\u1eed\u0003!\u0010\u0000\u1eed\u1eee"+ + "\u0003!\u0010\u0000\u1eee\u1eef\u0003\u000f\u0007\u0000\u1eef\u1ef0\u0003"+ + "\u000b\u0005\u0000\u1ef0\u1ef1\u0003-\u0016\u0000\u1ef1\u1ef2\u0003\u0017"+ + "\u000b\u0000\u1ef2\u1ef3\u0003#\u0011\u0000\u1ef3\u1ef4\u0003!\u0010\u0000"+ + "\u1ef4\u1ef5\u0003+\u0015\u0000\u1ef5\u05ac\u0001\u0000\u0000\u0000\u1ef6"+ + "\u1ef7\u0003\u0017\u000b\u0000\u1ef7\u1ef8\u0003+\u0015\u0000\u1ef8\u1ef9"+ + "\u0005_\u0000\u0000\u1ef9\u1efa\u0003-\u0016\u0000\u1efa\u1efb\u0003\u000f"+ + "\u0007\u0000\u1efb\u1efc\u0003\u001f\u000f\u0000\u1efc\u1efd\u0003%\u0012"+ + "\u0000\u1efd\u1efe\u0003\u001d\u000e\u0000\u1efe\u1eff\u0003\u0007\u0003"+ + "\u0000\u1eff\u1f00\u0003-\u0016\u0000\u1f00\u1f01\u0003\u000f\u0007\u0000"+ + "\u1f01\u05ae\u0001\u0000\u0000\u0000\u1f02\u1f03\u0003\u000f\u0007\u0000"+ + "\u1f03\u1f04\u00031\u0018\u0000\u1f04\u1f05\u0003\u000f\u0007\u0000\u1f05"+ + "\u1f06\u0003!\u0010\u0000\u1f06\u1f07\u0003-\u0016\u0000\u1f07\u05b0\u0001"+ + "\u0000\u0000\u0000\u1f08\u1f09\u00033\u0019\u0000\u1f09\u1f0a\u0003)\u0014"+ + "\u0000\u1f0a\u1f0b\u0003\u0007\u0003\u0000\u1f0b\u1f0c\u0003%\u0012\u0000"+ + "\u1f0c\u1f0d\u0003%\u0012\u0000\u1f0d\u1f0e\u0003\u000f\u0007\u0000\u1f0e"+ + "\u1f0f\u0003)\u0014\u0000\u1f0f\u05b2\u0001\u0000\u0000\u0000\u1f10\u1f11"+ + "\u0003+\u0015\u0000\u1f11\u1f12\u0003\u000f\u0007\u0000\u1f12\u1f13\u0003"+ + ")\u0014\u0000\u1f13\u1f14\u00031\u0018\u0000\u1f14\u1f15\u0003\u000f\u0007"+ + "\u0000\u1f15\u1f16\u0003)\u0014\u0000\u1f16\u05b4\u0001\u0000\u0000\u0000"+ + "\u1f17\u1f18\u0003\t\u0004\u0000\u1f18\u1f19\u0003-\u0016\u0000\u1f19"+ + "\u1f1a\u0003)\u0014\u0000\u1f1a\u1f1b\u0003\u000f\u0007\u0000\u1f1b\u1f1c"+ + "\u0003\u000f\u0007\u0000\u1f1c\u05b6\u0001\u0000\u0000\u0000\u1f1d\u1f1e"+ + "\u0003\u0015\n\u0000\u1f1e\u1f1f\u0003\u0007\u0003\u0000\u1f1f\u1f20\u0003"+ + "+\u0015\u0000\u1f20\u1f21\u0003\u0015\n\u0000\u1f21\u05b8\u0001\u0000"+ + "\u0000\u0000\u1f22\u1f23\u0003\u0013\t\u0000\u1f23\u1f24\u0003\u0017\u000b"+ + "\u0000\u1f24\u1f25\u0003+\u0015\u0000\u1f25\u1f26\u0003-\u0016\u0000\u1f26"+ + "\u05ba\u0001\u0000\u0000\u0000\u1f27\u1f28\u0003+\u0015\u0000\u1f28\u1f29"+ + "\u0003%\u0012\u0000\u1f29\u1f2a\u0003\u0013\t\u0000\u1f2a\u1f2b\u0003"+ + "\u0017\u000b\u0000\u1f2b\u1f2c\u0003+\u0015\u0000\u1f2c\u1f2d\u0003-\u0016"+ + "\u0000\u1f2d\u05bc\u0001\u0000\u0000\u0000\u1f2e\u1f2f\u0003\u0013\t\u0000"+ + "\u1f2f\u1f30\u0003\u0017\u000b\u0000\u1f30\u1f31\u0003!\u0010\u0000\u1f31"+ + "\u05be\u0001\u0000\u0000\u0000\u1f32\u1f33\u0003\t\u0004\u0000\u1f33\u1f34"+ + "\u0003)\u0014\u0000\u1f34\u1f35\u0003\u0017\u000b\u0000\u1f35\u1f36\u0003"+ + "!\u0010\u0000\u1f36\u05c0\u0001\u0000\u0000\u0000\u1f37\u1f38\u0003\u000b"+ + "\u0005\u0000\u1f38\u1f39\u0003#\u0011\u0000\u1f39\u1f3a\u0003!\u0010\u0000"+ + "\u1f3a\u1f3b\u0003\u000b\u0005\u0000\u1f3b\u1f3c\u0003/\u0017\u0000\u1f3c"+ + "\u1f3d\u0003)\u0014\u0000\u1f3d\u1f3e\u0003)\u0014\u0000\u1f3e\u1f3f\u0003"+ + "\u000f\u0007\u0000\u1f3f\u1f40\u0003!\u0010\u0000\u1f40\u1f41\u0003-\u0016"+ + "\u0000\u1f41\u1f42\u0003\u001d\u000e\u0000\u1f42\u1f43\u00037\u001b\u0000"+ + "\u1f43\u05c2\u0001\u0000\u0000\u0000\u1f44\u1f45\u0003\u0017\u000b\u0000"+ + "\u1f45\u1f46\u0003!\u0010\u0000\u1f46\u1f47\u0003\u001d\u000e\u0000\u1f47"+ + "\u1f48\u0003\u0017\u000b\u0000\u1f48\u1f49\u0003!\u0010\u0000\u1f49\u1f4a"+ + "\u0003\u000f\u0007\u0000\u1f4a\u05c4\u0001\u0000\u0000\u0000\u1f4b\u1f4c"+ + "\u0003\u001f\u000f\u0000\u1f4c\u1f4d\u0003\u0007\u0003\u0000\u1f4d\u1f4e"+ + "\u0003-\u0016\u0000\u1f4e\u1f4f\u0003\u000f\u0007\u0000\u1f4f\u1f50\u0003"+ + ")\u0014\u0000\u1f50\u1f51\u0003\u0017\u000b\u0000\u1f51\u1f52\u0003\u0007"+ + "\u0003\u0000\u1f52\u1f53\u0003\u001d\u000e\u0000\u1f53\u1f54\u0003\u0017"+ + "\u000b\u0000\u1f54\u1f55\u00039\u001c\u0000\u1f55\u1f56\u0003\u000f\u0007"+ + "\u0000\u1f56\u1f57\u0003\r\u0006\u0000\u1f57\u05c6\u0001\u0000\u0000\u0000"+ + "\u1f58\u1f59\u0003\u001d\u000e\u0000\u1f59\u1f5a\u0003\u000f\u0007\u0000"+ + "\u1f5a\u1f5b\u0003\u0011\b\u0000\u1f5b\u1f5c\u0003-\u0016\u0000\u1f5c"+ + "\u1f5d\u0003\u0007\u0003\u0000\u1f5d\u1f5e\u0003)\u0014\u0000\u1f5e\u1f5f"+ + "\u0003\u0013\t\u0000\u1f5f\u05c8\u0001\u0000\u0000\u0000\u1f60\u1f61\u0003"+ + ")\u0014\u0000\u1f61\u1f62\u0003\u0017\u000b\u0000\u1f62\u1f63\u0003\u0013"+ + "\t\u0000\u1f63\u1f64\u0003\u0015\n\u0000\u1f64\u1f65\u0003-\u0016\u0000"+ + "\u1f65\u1f66\u0003\u0007\u0003\u0000\u1f66\u1f67\u0003)\u0014\u0000\u1f67"+ + "\u1f68\u0003\u0013\t\u0000\u1f68\u05ca\u0001\u0000\u0000\u0000\u1f69\u1f6a"+ + "\u0003\u000b\u0005\u0000\u1f6a\u1f6b\u0003#\u0011\u0000\u1f6b\u1f6c\u0003"+ + "\u001f\u000f\u0000\u1f6c\u1f6d\u0003\u001f\u000f\u0000\u1f6d\u1f6e\u0003"+ + "/\u0017\u0000\u1f6e\u1f6f\u0003-\u0016\u0000\u1f6f\u1f70\u0003\u0007\u0003"+ + "\u0000\u1f70\u1f71\u0003-\u0016\u0000\u1f71\u1f72\u0003#\u0011\u0000\u1f72"+ + "\u1f73\u0003)\u0014\u0000\u1f73\u05cc\u0001\u0000\u0000\u0000\u1f74\u1f75"+ + "\u0003!\u0010\u0000\u1f75\u1f76\u0003\u000f\u0007\u0000\u1f76\u1f77\u0003"+ + "\u0013\t\u0000\u1f77\u1f78\u0003\u0007\u0003\u0000\u1f78\u1f79\u0003-"+ + "\u0016\u0000\u1f79\u1f7a\u0003#\u0011\u0000\u1f7a\u1f7b\u0003)\u0014\u0000"+ + "\u1f7b\u05ce\u0001\u0000\u0000\u0000\u1f7c\u1f7d\u0003\u0015\n\u0000\u1f7d"+ + "\u1f7e\u0003\u0007\u0003\u0000\u1f7e\u1f7f\u0003+\u0015\u0000\u1f7f\u1f80"+ + "\u0003\u0015\n\u0000\u1f80\u1f81\u0003\u000f\u0007\u0000\u1f81\u1f82\u0003"+ + "+\u0015\u0000\u1f82\u05d0\u0001\u0000\u0000\u0000\u1f83\u1f84\u0003\u001f"+ + "\u000f\u0000\u1f84\u1f85\u0003\u000f\u0007\u0000\u1f85\u1f86\u0003)\u0014"+ + "\u0000\u1f86\u1f87\u0003\u0013\t\u0000\u1f87\u1f88\u0003\u000f\u0007\u0000"+ + "\u1f88\u1f89\u0003+\u0015\u0000\u1f89\u05d2\u0001\u0000\u0000\u0000\u1f8a"+ + "\u1f8b\u0003\u0011\b\u0000\u1f8b\u1f8c\u0003\u0007\u0003\u0000\u1f8c\u1f8d"+ + "\u0003\u001f\u000f\u0000\u1f8d\u1f8e\u0003\u0017\u000b\u0000\u1f8e\u1f8f"+ + "\u0003\u001d\u000e\u0000\u1f8f\u1f90\u00037\u001b\u0000\u1f90\u05d4\u0001"+ + "\u0000\u0000\u0000\u1f91\u1f92\u0003%\u0012\u0000\u1f92\u1f93\u0003#\u0011"+ + "\u0000\u1f93\u1f94\u0003\u001d\u000e\u0000\u1f94\u1f95\u0003\u0017\u000b"+ + "\u0000\u1f95\u1f96\u0003\u000b\u0005\u0000\u1f96\u1f97\u00037\u001b\u0000"+ + "\u1f97\u05d6\u0001\u0000\u0000\u0000\u1f98\u1f99\u0003#\u0011\u0000\u1f99"+ + "\u1f9a\u00033\u0019\u0000\u1f9a\u1f9b\u0003!\u0010\u0000\u1f9b\u1f9c\u0003"+ + "\u000f\u0007\u0000\u1f9c\u1f9d\u0003\r\u0006\u0000\u1f9d\u05d8\u0001\u0000"+ + "\u0000\u0000\u1f9e\u1f9f\u0003\u0007\u0003\u0000\u1f9f\u1fa0\u0003\t\u0004"+ + "\u0000\u1fa0\u1fa1\u0003+\u0015\u0000\u1fa1\u1fa2\u0003-\u0016\u0000\u1fa2"+ + "\u1fa3\u0003\u0017\u000b\u0000\u1fa3\u1fa4\u0003\u001f\u000f\u0000\u1fa4"+ + "\u1fa5\u0003\u000f\u0007\u0000\u1fa5\u05da\u0001\u0000\u0000\u0000\u1fa6"+ + "\u1fa7\u0003\t\u0004\u0000\u1fa7\u1fa8\u0003\u0017\u000b\u0000\u1fa8\u1fa9"+ + "\u0003\u0013\t\u0000\u1fa9\u1faa\u0003+\u0015\u0000\u1faa\u1fab\u0003"+ + "\u000f\u0007\u0000\u1fab\u1fac\u0003)\u0014\u0000\u1fac\u1fad\u0003\u0017"+ + "\u000b\u0000\u1fad\u1fae\u0003\u0007\u0003\u0000\u1fae\u1faf\u0003\u001d"+ + "\u000e\u0000\u1faf\u05dc\u0001\u0000\u0000\u0000\u1fb0\u1fb1\u0003\t\u0004"+ + "\u0000\u1fb1\u1fb2\u0003\u0017\u000b\u0000\u1fb2\u1fb3\u0003-\u0016\u0000"+ + "\u1fb3\u1fb4\u0005 \u0000\u0000\u1fb4\u1fb5\u00031\u0018\u0000\u1fb5\u1fb6"+ + "\u0003\u0007\u0003\u0000\u1fb6\u1fb7\u0003)\u0014\u0000\u1fb7\u1fb8\u0003"+ + "7\u001b\u0000\u1fb8\u1fb9\u0003\u0017\u000b\u0000\u1fb9\u1fba\u0003!\u0010"+ + "\u0000\u1fba\u1fbb\u0003\u0013\t\u0000\u1fbb\u05de\u0001\u0000\u0000\u0000"+ + "\u1fbc\u1fbd\u0003\t\u0004\u0000\u1fbd\u1fbe\u0003#\u0011\u0000\u1fbe"+ + "\u1fbf\u0003#\u0011\u0000\u1fbf\u1fc0\u0003\u001d\u000e\u0000\u1fc0\u05e0"+ + "\u0001\u0000\u0000\u0000\u1fc1\u1fc2\u0003\t\u0004\u0000\u1fc2\u1fc3\u0003"+ + "#\u0011\u0000\u1fc3\u1fc4\u00035\u001a\u0000\u1fc4\u05e2\u0001\u0000\u0000"+ + "\u0000\u1fc5\u1fc6\u0003\t\u0004\u0000\u1fc6\u1fc7\u00037\u001b\u0000"+ + "\u1fc7\u1fc8\u0003-\u0016\u0000\u1fc8\u1fc9\u0003\u000f\u0007\u0000\u1fc9"+ + "\u1fca\u0003\u0007\u0003\u0000\u1fca\u05e4\u0001\u0000\u0000\u0000\u1fcb"+ + "\u1fcc\u0003\u000b\u0005\u0000\u1fcc\u1fcd\u0003\u0015\n\u0000\u1fcd\u1fce"+ + "\u0003\u0007\u0003\u0000\u1fce\u1fcf\u0003)\u0014\u0000\u1fcf\u1fd0\u0003"+ + "\u0007\u0003\u0000\u1fd0\u1fd1\u0003\u000b\u0005\u0000\u1fd1\u1fd2\u0003"+ + "-\u0016\u0000\u1fd2\u1fd3\u0003\u000f\u0007\u0000\u1fd3\u1fd4\u0003)\u0014"+ + "\u0000\u1fd4\u1fd5\u0005 \u0000\u0000\u1fd5\u1fd6\u00031\u0018\u0000\u1fd6"+ + "\u1fd7\u0003\u0007\u0003\u0000\u1fd7\u1fd8\u0003)\u0014\u0000\u1fd8\u1fd9"+ + "\u00037\u001b\u0000\u1fd9\u1fda\u0003\u0017\u000b\u0000\u1fda\u1fdb\u0003"+ + "!\u0010\u0000\u1fdb\u1fdc\u0003\u0013\t\u0000\u1fdc\u05e6\u0001\u0000"+ + "\u0000\u0000\u1fdd\u1fde\u0003\u000b\u0005\u0000\u1fde\u1fdf\u0003\u0017"+ + "\u000b\u0000\u1fdf\u1fe0\u0003\r\u0006\u0000\u1fe0\u1fe1\u0003)\u0014"+ + "\u0000\u1fe1\u05e8\u0001\u0000\u0000\u0000\u1fe2\u1fe3\u0003\u000b\u0005"+ + "\u0000\u1fe3\u1fe4\u0003\u0017\u000b\u0000\u1fe4\u1fe5\u0003)\u0014\u0000"+ + "\u1fe5\u1fe6\u0003\u000b\u0005\u0000\u1fe6\u1fe7\u0003\u001d\u000e\u0000"+ + "\u1fe7\u1fe8\u0003\u000f\u0007\u0000\u1fe8\u05ea\u0001\u0000\u0000\u0000"+ + "\u1fe9\u1fea\u0003\u0011\b\u0000\u1fea\u1feb\u0003\u001d\u000e\u0000\u1feb"+ + "\u1fec\u0003#\u0011\u0000\u1fec\u1fed\u0003\u0007\u0003\u0000\u1fed\u1fee"+ + "\u0003-\u0016\u0000\u1fee\u1fef\u00054\u0000\u0000\u1fef\u05ec\u0001\u0000"+ + "\u0000\u0000\u1ff0\u1ff1\u0003\u0011\b\u0000\u1ff1\u1ff2\u0003\u001d\u000e"+ + "\u0000\u1ff2\u1ff3\u0003#\u0011\u0000\u1ff3\u1ff4\u0003\u0007\u0003\u0000"+ + "\u1ff4\u1ff5\u0003-\u0016\u0000\u1ff5\u1ff6\u00058\u0000\u0000\u1ff6\u05ee"+ + "\u0001\u0000\u0000\u0000\u1ff7\u1ff8\u0003\u0017\u000b\u0000\u1ff8\u1ff9"+ + "\u0003!\u0010\u0000\u1ff9\u1ffa\u0003\u000f\u0007\u0000\u1ffa\u1ffb\u0003"+ + "-\u0016\u0000\u1ffb\u05f0\u0001\u0000\u0000\u0000\u1ffc\u1ffd\u0003\u0017"+ + "\u000b\u0000\u1ffd\u1ffe\u0003!\u0010\u0000\u1ffe\u1fff\u0003-\u0016\u0000"+ + "\u1fff\u2000\u00052\u0000\u0000\u2000\u05f2\u0001\u0000\u0000\u0000\u2001"+ + "\u2002\u0003\u0017\u000b\u0000\u2002\u2003\u0003!\u0010\u0000\u2003\u2004"+ + "\u0003-\u0016\u0000\u2004\u2005\u00054\u0000\u0000\u2005\u05f4\u0001\u0000"+ + "\u0000\u0000\u2006\u2007\u0003\u0017\u000b\u0000\u2007\u2008\u0003!\u0010"+ + "\u0000\u2008\u2009\u0003-\u0016\u0000\u2009\u200a\u00058\u0000\u0000\u200a"+ + "\u05f6\u0001\u0000\u0000\u0000\u200b\u200c\u0003\u0019\f\u0000\u200c\u200d"+ + "\u0003+\u0015\u0000\u200d\u200e\u0003#\u0011\u0000\u200e\u200f\u0003!"+ + "\u0010\u0000\u200f\u05f8\u0001\u0000\u0000\u0000\u2010\u2011\u0003\u0019"+ + "\f\u0000\u2011\u2012\u0003+\u0015\u0000\u2012\u2013\u0003#\u0011\u0000"+ + "\u2013\u2014\u0003!\u0010\u0000\u2014\u2015\u0003\t\u0004\u0000\u2015"+ + "\u05fa\u0001\u0000\u0000\u0000\u2016\u2017\u0003\u001d\u000e\u0000\u2017"+ + "\u2018\u0003\u0017\u000b\u0000\u2018\u2019\u0003!\u0010\u0000\u2019\u201a"+ + "\u0003\u000f\u0007\u0000\u201a\u05fc\u0001\u0000\u0000\u0000\u201b\u201c"+ + "\u0003\u001d\u000e\u0000\u201c\u201d\u0003+\u0015\u0000\u201d\u201e\u0003"+ + "\u000f\u0007\u0000\u201e\u201f\u0003\u0013\t\u0000\u201f\u05fe\u0001\u0000"+ + "\u0000\u0000\u2020\u2021\u0003\u001f\u000f\u0000\u2021\u2022\u0003\u0007"+ + "\u0003\u0000\u2022\u2023\u0003\u000b\u0005\u0000\u2023\u2024\u0003\u0007"+ + "\u0003\u0000\u2024\u2025\u0003\r\u0006\u0000\u2025\u2026\u0003\r\u0006"+ + "\u0000\u2026\u2027\u0003)\u0014\u0000\u2027\u0600\u0001\u0000\u0000\u0000"+ + "\u2028\u2029\u0003\u001f\u000f\u0000\u2029\u202a\u0003\u0007\u0003\u0000"+ + "\u202a\u202b\u0003\u000b\u0005\u0000\u202b\u202c\u0003\u0007\u0003\u0000"+ + "\u202c\u202d\u0003\r\u0006\u0000\u202d\u202e\u0003\r\u0006\u0000\u202e"+ + "\u202f\u0003)\u0014\u0000\u202f\u2030\u00058\u0000\u0000\u2030\u0602\u0001"+ + "\u0000\u0000\u0000\u2031\u2032\u0003\u001f\u000f\u0000\u2032\u2033\u0003"+ + "#\u0011\u0000\u2033\u2034\u0003!\u0010\u0000\u2034\u2035\u0003\u000f\u0007"+ + "\u0000\u2035\u2036\u00037\u001b\u0000\u2036\u0604\u0001\u0000\u0000\u0000"+ + "\u2037\u2038\u0003%\u0012\u0000\u2038\u2039\u0003\u0013\t\u0000\u2039"+ + "\u203a\u0005_\u0000\u0000\u203a\u203b\u0003\u001d\u000e\u0000\u203b\u203c"+ + "\u0003+\u0015\u0000\u203c\u203d\u0003!\u0010\u0000\u203d\u0606\u0001\u0000"+ + "\u0000\u0000\u203e\u203f\u0003%\u0012\u0000\u203f\u2040\u0003#\u0011\u0000"+ + "\u2040\u2041\u0003\u0017\u000b\u0000\u2041\u2042\u0003!\u0010\u0000\u2042"+ + "\u2043\u0003-\u0016\u0000\u2043\u0608\u0001\u0000\u0000\u0000\u2044\u2045"+ + "\u0003%\u0012\u0000\u2045\u2046\u0003#\u0011\u0000\u2046\u2047\u0003\u001d"+ + "\u000e\u0000\u2047\u2048\u00037\u001b\u0000\u2048\u2049\u0003\u0013\t"+ + "\u0000\u2049\u204a\u0003#\u0011\u0000\u204a\u204b\u0003!\u0010\u0000\u204b"+ + "\u060a\u0001\u0000\u0000\u0000\u204c\u204d\u0003)\u0014\u0000\u204d\u204e"+ + "\u0003\u000f\u0007\u0000\u204e\u204f\u0003\u001d\u000e\u0000\u204f\u2050"+ + "\u0003-\u0016\u0000\u2050\u2051\u0003\u0017\u000b\u0000\u2051\u2052\u0003"+ + "\u001f\u000f\u0000\u2052\u2053\u0003\u000f\u0007\u0000\u2053\u060c\u0001"+ + "\u0000\u0000\u0000\u2054\u2055\u0003+\u0015\u0000\u2055\u2056\u0003\u000f"+ + "\u0007\u0000\u2056\u2057\u0003)\u0014\u0000\u2057\u2058\u0003\u0017\u000b"+ + "\u0000\u2058\u2059\u0003\u0007\u0003\u0000\u2059\u205a\u0003\u001d\u000e"+ + "\u0000\u205a\u060e\u0001\u0000\u0000\u0000\u205b\u205c\u0003+\u0015\u0000"+ + "\u205c\u205d\u0003\u000f\u0007\u0000\u205d\u205e\u0003)\u0014\u0000\u205e"+ + "\u205f\u0003\u0017\u000b\u0000\u205f\u2060\u0003\u0007\u0003\u0000\u2060"+ + "\u2061\u0003\u001d\u000e\u0000\u2061\u2062\u00052\u0000\u0000\u2062\u0610"+ + "\u0001\u0000\u0000\u0000\u2063\u2064\u0003+\u0015\u0000\u2064\u2065\u0003"+ + "\u000f\u0007\u0000\u2065\u2066\u0003)\u0014\u0000\u2066\u2067\u0003\u0017"+ + "\u000b\u0000\u2067\u2068\u0003\u0007\u0003\u0000\u2068\u2069\u0003\u001d"+ + "\u000e\u0000\u2069\u206a\u00054\u0000\u0000\u206a\u0612\u0001\u0000\u0000"+ + "\u0000\u206b\u206c\u0003+\u0015\u0000\u206c\u206d\u0003\u000f\u0007\u0000"+ + "\u206d\u206e\u0003)\u0014\u0000\u206e\u206f\u0003\u0017\u000b\u0000\u206f"+ + "\u2070\u0003\u0007\u0003\u0000\u2070\u2071\u0003\u001d\u000e\u0000\u2071"+ + "\u2072\u00058\u0000\u0000\u2072\u0614\u0001\u0000\u0000\u0000\u2073\u2074"+ + "\u0003+\u0015\u0000\u2074\u2075\u0003\u001f\u000f\u0000\u2075\u2076\u0003"+ + "\u0007\u0003\u0000\u2076\u2077\u0003\u001d\u000e\u0000\u2077\u2078\u0003"+ + "\u001d\u000e\u0000\u2078\u2079\u0003+\u0015\u0000\u2079\u207a\u0003\u000f"+ + "\u0007\u0000\u207a\u207b\u0003)\u0014\u0000\u207b\u207c\u0003\u0017\u000b"+ + "\u0000\u207c\u207d\u0003\u0007\u0003\u0000\u207d\u207e\u0003\u001d\u000e"+ + "\u0000\u207e\u0616\u0001\u0000\u0000\u0000\u207f\u2080\u0003+\u0015\u0000"+ + "\u2080\u2081\u0003-\u0016\u0000\u2081\u2082\u0003+\u0015\u0000\u2082\u2083"+ + "\u0003-\u0016\u0000\u2083\u2084\u0003\u000f\u0007\u0000\u2084\u2085\u0003"+ + "\u001f\u000f\u0000\u2085\u0618\u0001\u0000\u0000\u0000\u2086\u2087\u0003"+ + "-\u0016\u0000\u2087\u2088\u0003\u000f\u0007\u0000\u2088\u2089\u00035\u001a"+ + "\u0000\u2089\u208a\u0003-\u0016\u0000\u208a\u061a\u0001\u0000\u0000\u0000"+ + "\u208b\u208c\u0003-\u0016\u0000\u208c\u208d\u0003\u0017\u000b\u0000\u208d"+ + "\u208e\u0003\u001f\u000f\u0000\u208e\u208f\u0003\u000f\u0007\u0000\u208f"+ + "\u2090\u0003+\u0015\u0000\u2090\u2091\u0003-\u0016\u0000\u2091\u2092\u0003"+ + "\u0007\u0003\u0000\u2092\u2093\u0003\u001f\u000f\u0000\u2093\u2094\u0003"+ + "%\u0012\u0000\u2094\u2095\u0003-\u0016\u0000\u2095\u2096\u00039\u001c"+ + "\u0000\u2096\u061c\u0001\u0000\u0000\u0000\u2097\u2098\u0003-\u0016\u0000"+ + "\u2098\u2099\u0003\u0017\u000b\u0000\u2099\u209a\u0003\u001f\u000f\u0000"+ + "\u209a\u209b\u0003\u000f\u0007\u0000\u209b\u209c\u0003-\u0016\u0000\u209c"+ + "\u209d\u00039\u001c\u0000\u209d\u061e\u0001\u0000\u0000\u0000\u209e\u209f"+ + "\u0003-\u0016\u0000\u209f\u20a0\u0003+\u0015\u0000\u20a0\u20a1\u0003\'"+ + "\u0013\u0000\u20a1\u20a2\u0003/\u0017\u0000\u20a2\u20a3\u0003\u000f\u0007"+ + "\u0000\u20a3\u20a4\u0003)\u0014\u0000\u20a4\u20a5\u00037\u001b\u0000\u20a5"+ + "\u0620\u0001\u0000\u0000\u0000\u20a6\u20a7\u0003-\u0016\u0000\u20a7\u20a8"+ + "\u0003+\u0015\u0000\u20a8\u20a9\u00031\u0018\u0000\u20a9\u20aa\u0003\u000f"+ + "\u0007\u0000\u20aa\u20ab\u0003\u000b\u0005\u0000\u20ab\u20ac\u0003-\u0016"+ + "\u0000\u20ac\u20ad\u0003#\u0011\u0000\u20ad\u20ae\u0003)\u0014\u0000\u20ae"+ + "\u0622\u0001\u0000\u0000\u0000\u20af\u20b0\u0003-\u0016\u0000\u20b0\u20b1"+ + "\u00035\u001a\u0000\u20b1\u20b2\u0003\u0017\u000b\u0000\u20b2\u20b3\u0003"+ + "\r\u0006\u0000\u20b3\u20b4\u0005_\u0000\u0000\u20b4\u20b5\u0003+\u0015"+ + "\u0000\u20b5\u20b6\u0003!\u0010\u0000\u20b6\u20b7\u0003\u0007\u0003\u0000"+ + "\u20b7\u20b8\u0003%\u0012\u0000\u20b8\u20b9\u0003+\u0015\u0000\u20b9\u20ba"+ + "\u0003\u0015\n\u0000\u20ba\u20bb\u0003#\u0011\u0000\u20bb\u20bc\u0003"+ + "-\u0016\u0000\u20bc\u0624\u0001\u0000\u0000\u0000\u20bd\u20be\u0003/\u0017"+ + "\u0000\u20be\u20bf\u0003/\u0017\u0000\u20bf\u20c0\u0003\u0017\u000b\u0000"+ + "\u20c0\u20c1\u0003\r\u0006\u0000\u20c1\u0626\u0001\u0000\u0000\u0000\u20c2"+ + "\u20c3\u00031\u0018\u0000\u20c3\u20c4\u0003\u0007\u0003\u0000\u20c4\u20c5"+ + "\u0003)\u0014\u0000\u20c5\u20c6\u0003\t\u0004\u0000\u20c6\u20c7\u0003"+ + "\u0017\u000b\u0000\u20c7\u20c8\u0003-\u0016\u0000\u20c8\u0628\u0001\u0000"+ + "\u0000\u0000\u20c9\u20ca\u00035\u001a\u0000\u20ca\u20cb\u0003\u001f\u000f"+ + "\u0000\u20cb\u20cc\u0003\u001d\u000e\u0000\u20cc\u062a\u0001\u0000\u0000"+ + "\u0000\u20cd\u20ce\u0005,\u0000\u0000\u20ce\u062c\u0001\u0000\u0000\u0000"+ + "\u20cf\u20d0\u0005:\u0000\u0000\u20d0\u062e\u0001\u0000\u0000\u0000\u20d1"+ + "\u20d2\u0005:\u0000\u0000\u20d2\u20d3\u0005:\u0000\u0000\u20d3\u0630\u0001"+ + "\u0000\u0000\u0000\u20d4\u20d5\u0005$\u0000\u0000\u20d5\u0632\u0001\u0000"+ + "\u0000\u0000\u20d6\u20d7\u0005$\u0000\u0000\u20d7\u20d8\u0005$\u0000\u0000"+ + "\u20d8\u0634\u0001\u0000\u0000\u0000\u20d9\u20da\u0005*\u0000\u0000\u20da"+ + "\u0636\u0001\u0000\u0000\u0000\u20db\u20dc\u0005(\u0000\u0000\u20dc\u0638"+ + "\u0001\u0000\u0000\u0000\u20dd\u20de\u0005)\u0000\u0000\u20de\u063a\u0001"+ + "\u0000\u0000\u0000\u20df\u20e0\u0005[\u0000\u0000\u20e0\u063c\u0001\u0000"+ + "\u0000\u0000\u20e1\u20e2\u0005]\u0000\u0000\u20e2\u063e\u0001\u0000\u0000"+ + "\u0000\u20e3\u20e4\u0003\t\u0004\u0000\u20e4\u20e8\u0005\'\u0000\u0000"+ + "\u20e5\u20e7\u000201\u0000\u20e6\u20e5\u0001\u0000\u0000\u0000\u20e7\u20ea"+ + "\u0001\u0000\u0000\u0000\u20e8\u20e6\u0001\u0000\u0000\u0000\u20e8\u20e9"+ + "\u0001\u0000\u0000\u0000\u20e9\u20eb\u0001\u0000\u0000\u0000\u20ea\u20e8"+ + "\u0001\u0000\u0000\u0000\u20eb\u20ec\u0005\'\u0000\u0000\u20ec\u0640\u0001"+ + "\u0000\u0000\u0000\u20ed\u20ee\u0003\u000f\u0007\u0000\u20ee\u20ef\u0003"+ + "A \u0000\u20ef\u0642\u0001\u0000\u0000\u0000\u20f0\u20f2\u0005-\u0000"+ + "\u0000\u20f1\u20f0\u0001\u0000\u0000\u0000\u20f1\u20f2\u0001\u0000\u0000"+ + "\u0000\u20f2\u20f4\u0001\u0000\u0000\u0000\u20f3\u20f5\u0003=\u001e\u0000"+ + "\u20f4\u20f3\u0001\u0000\u0000\u0000\u20f5\u20f6\u0001\u0000\u0000\u0000"+ + "\u20f6\u20f4\u0001\u0000\u0000\u0000\u20f6\u20f7\u0001\u0000\u0000\u0000"+ + "\u20f7\u20f8\u0001\u0000\u0000\u0000\u20f8\u20fa\u0005.\u0000\u0000\u20f9"+ + "\u20fb\u0003=\u001e\u0000\u20fa\u20f9\u0001\u0000\u0000\u0000\u20fb\u20fc"+ + "\u0001\u0000\u0000\u0000\u20fc\u20fa\u0001\u0000\u0000\u0000\u20fc\u20fd"+ + "\u0001\u0000\u0000\u0000\u20fd\u210a\u0001\u0000\u0000\u0000\u20fe\u2102"+ + "\u0003\u000f\u0007\u0000\u20ff\u2101\u0005-\u0000\u0000\u2100\u20ff\u0001"+ + "\u0000\u0000\u0000\u2101\u2104\u0001\u0000\u0000\u0000\u2102\u2100\u0001"+ + "\u0000\u0000\u0000\u2102\u2103\u0001\u0000\u0000\u0000\u2103\u2106\u0001"+ + "\u0000\u0000\u0000\u2104\u2102\u0001\u0000\u0000\u0000\u2105\u2107\u0003"+ + "=\u001e\u0000\u2106\u2105\u0001\u0000\u0000\u0000\u2107\u2108\u0001\u0000"+ + "\u0000\u0000\u2108\u2106\u0001\u0000\u0000\u0000\u2108\u2109\u0001\u0000"+ + "\u0000\u0000\u2109\u210b\u0001\u0000\u0000\u0000\u210a\u20fe\u0001\u0000"+ + "\u0000\u0000\u210a\u210b\u0001\u0000\u0000\u0000\u210b\u0644\u0001\u0000"+ + "\u0000\u0000\u210c\u210e\u0005-\u0000\u0000\u210d\u210c\u0001\u0000\u0000"+ + "\u0000\u210d\u210e\u0001\u0000\u0000\u0000\u210e\u2110\u0001\u0000\u0000"+ + "\u0000\u210f\u2111\u0003=\u001e\u0000\u2110\u210f\u0001\u0000\u0000\u0000"+ + "\u2111\u2112\u0001\u0000\u0000\u0000\u2112\u2110\u0001\u0000\u0000\u0000"+ + "\u2112\u2113\u0001\u0000\u0000\u0000\u2113\u211a\u0001\u0000\u0000\u0000"+ + "\u2114\u2116\u0003\u000f\u0007\u0000\u2115\u2117\u0003=\u001e\u0000\u2116"+ + "\u2115\u0001\u0000\u0000\u0000\u2117\u2118\u0001\u0000\u0000\u0000\u2118"+ + "\u2116\u0001\u0000\u0000\u0000\u2118\u2119\u0001\u0000\u0000\u0000\u2119"+ + "\u211b\u0001\u0000\u0000\u0000\u211a\u2114\u0001\u0000\u0000\u0000\u211a"+ + "\u211b\u0001\u0000\u0000\u0000\u211b\u0646\u0001\u0000\u0000\u0000\u211c"+ + "\u211d\u0005x\u0000\u0000\u211d\u211e\u0003A \u0000\u211e\u0648\u0001"+ + "\u0000\u0000\u0000\u211f\u2120\u0005.\u0000\u0000\u2120\u064a\u0001\u0000"+ + "\u0000\u0000\u2121\u2122\u0003A \u0000\u2122\u064c\u0001\u0000\u0000\u0000"+ + "\u2123\u2124\u0003?\u001f\u0000\u2124\u064e\u0001\u0000\u0000\u0000\u2125"+ + "\u2129\u0007 \u0000\u0000\u2126\u2128\u0007!\u0000\u0000\u2127\u2126\u0001"+ + "\u0000\u0000\u0000\u2128\u212b\u0001\u0000\u0000\u0000\u2129\u2127\u0001"+ + "\u0000\u0000\u0000\u2129\u212a\u0001\u0000\u0000\u0000\u212a\u0650\u0001"+ + "\u0000\u0000\u0000\u212b\u2129\u0001\u0000\u0000\u0000\u212c\u212e\u0005"+ + "$\u0000\u0000\u212d\u212f\u0003=\u001e\u0000\u212e\u212d\u0001\u0000\u0000"+ + "\u0000\u212f\u2130\u0001\u0000\u0000\u0000\u2130\u212e\u0001\u0000\u0000"+ + "\u0000\u2130\u2131\u0001\u0000\u0000\u0000\u2131\u0652\u0001\u0000\u0000"+ + "\u0000\u2132\u2136\u0007\"\u0000\u0000\u2133\u2135\u0007#\u0000\u0000"+ + "\u2134\u2133\u0001\u0000\u0000\u0000\u2135\u2138\u0001\u0000\u0000\u0000"+ + "\u2136\u2134\u0001\u0000\u0000\u0000\u2136\u2137\u0001\u0000\u0000\u0000"+ + "\u2137\u0654\u0001\u0000\u0000\u0000\u2138\u2136\u0001\u0000\u0000\u0000"+ + "\u2139\u213a\u0005&\u0000\u0000\u213a\u0656\u0001\u0000\u0000\u0000\u213b"+ + "\u213c\u0005&\u0000\u0000\u213c\u213d\u0005&\u0000\u0000\u213d\u0658\u0001"+ + "\u0000\u0000\u0000\u213e\u213f\u0005&\u0000\u0000\u213f\u2140\u0005<\u0000"+ + "\u0000\u2140\u065a\u0001\u0000\u0000\u0000\u2141\u2142\u0005@\u0000\u0000"+ + "\u2142\u2143\u0005@\u0000\u0000\u2143\u065c\u0001\u0000\u0000\u0000\u2144"+ + "\u2145\u0005@\u0000\u0000\u2145\u2146\u0005>\u0000\u0000\u2146\u065e\u0001"+ + "\u0000\u0000\u0000\u2147\u2148\u0005@\u0000\u0000\u2148\u0660\u0001\u0000"+ + "\u0000\u0000\u2149\u214a\u0005!\u0000\u0000\u214a\u0662\u0001\u0000\u0000"+ + "\u0000\u214b\u214c\u0005!\u0000\u0000\u214c\u214d\u0005!\u0000\u0000\u214d"+ + "\u0664\u0001\u0000\u0000\u0000\u214e\u214f\u0005!\u0000\u0000\u214f\u2150"+ + "\u0005=\u0000\u0000\u2150\u0666\u0001\u0000\u0000\u0000\u2151\u2152\u0005"+ + "^\u0000\u0000\u2152\u0668\u0001\u0000\u0000\u0000\u2153\u2154\u0005=\u0000"+ + "\u0000\u2154\u066a\u0001\u0000\u0000\u0000\u2155\u2156\u0005=\u0000\u0000"+ + "\u2156\u2157\u0005>\u0000\u0000\u2157\u066c\u0001\u0000\u0000\u0000\u2158"+ + "\u2159\u0005>\u0000\u0000\u2159\u066e\u0001\u0000\u0000\u0000\u215a\u215b"+ + "\u0005>\u0000\u0000\u215b\u215c\u0005=\u0000\u0000\u215c\u0670\u0001\u0000"+ + "\u0000\u0000\u215d\u215e\u0005>\u0000\u0000\u215e\u215f\u0005>\u0000\u0000"+ + "\u215f\u0672\u0001\u0000\u0000\u0000\u2160\u2161\u0005#\u0000\u0000\u2161"+ + "\u0674\u0001\u0000\u0000\u0000\u2162\u2163\u0005#\u0000\u0000\u2163\u2164"+ + "\u0005=\u0000\u0000\u2164\u0676\u0001\u0000\u0000\u0000\u2165\u2166\u0005"+ + "#\u0000\u0000\u2166\u2167\u0005>\u0000\u0000\u2167\u0678\u0001\u0000\u0000"+ + "\u0000\u2168\u2169\u0005#\u0000\u0000\u2169\u216a\u0005>\u0000\u0000\u216a"+ + "\u216b\u0005>\u0000\u0000\u216b\u067a\u0001\u0000\u0000\u0000\u216c\u216d"+ + "\u0005#\u0000\u0000\u216d\u216e\u0005#\u0000\u0000\u216e\u067c\u0001\u0000"+ + "\u0000\u0000\u216f\u2170\u0005-\u0000\u0000\u2170\u2171\u0005>\u0000\u0000"+ + "\u2171\u067e\u0001\u0000\u0000\u0000\u2172\u2173\u0005-\u0000\u0000\u2173"+ + "\u2174\u0005>\u0000\u0000\u2174\u2175\u0005>\u0000\u0000\u2175\u0680\u0001"+ + "\u0000\u0000\u0000\u2176\u2177\u0005-\u0000\u0000\u2177\u2178\u0005|\u0000"+ + "\u0000\u2178\u2179\u0005-\u0000\u0000\u2179\u0682\u0001\u0000\u0000\u0000"+ + "\u217a\u217b\u0005<\u0000\u0000\u217b\u0684\u0001\u0000\u0000\u0000\u217c"+ + "\u217d\u0005<\u0000\u0000\u217d\u217e\u0005=\u0000\u0000\u217e\u0686\u0001"+ + "\u0000\u0000\u0000\u217f\u2180\u0005<\u0000\u0000\u2180\u2181\u0005@\u0000"+ + "\u0000\u2181\u0688\u0001\u0000\u0000\u0000\u2182\u2183\u0005<\u0000\u0000"+ + "\u2183\u2184\u0005^\u0000\u0000\u2184\u068a\u0001\u0000\u0000\u0000\u2185"+ + "\u2186\u0005<\u0000\u0000\u2186\u2187\u0005>\u0000\u0000\u2187\u068c\u0001"+ + "\u0000\u0000\u0000\u2188\u2189\u0005<\u0000\u0000\u2189\u218a\u0005-\u0000"+ + "\u0000\u218a\u218b\u0005>\u0000\u0000\u218b\u068e\u0001\u0000\u0000\u0000"+ + "\u218c\u218d\u0005<\u0000\u0000\u218d\u218e\u0005<\u0000\u0000\u218e\u0690"+ + "\u0001\u0000\u0000\u0000\u218f\u2190\u0005<\u0000\u0000\u2190\u2191\u0005"+ + "<\u0000\u0000\u2191\u2192\u0005=\u0000\u0000\u2192\u0692\u0001\u0000\u0000"+ + "\u0000\u2193\u2194\u0005<\u0000\u0000\u2194\u2195\u0005?\u0000\u0000\u2195"+ + "\u2196\u0005>\u0000\u0000\u2196\u0694\u0001\u0000\u0000\u0000\u2197\u2198"+ + "\u0005-\u0000\u0000\u2198\u0696\u0001\u0000\u0000\u0000\u2199\u219a\u0005"+ + "%\u0000\u0000\u219a\u0698\u0001\u0000\u0000\u0000\u219b\u219c\u0005|\u0000"+ + "\u0000\u219c\u069a\u0001\u0000\u0000\u0000\u219d\u219e\u0005|\u0000\u0000"+ + "\u219e\u219f\u0005|\u0000\u0000\u219f\u069c\u0001\u0000\u0000\u0000\u21a0"+ + "\u21a1\u0005|\u0000\u0000\u21a1\u21a2\u0005|\u0000\u0000\u21a2\u21a3\u0005"+ + "/\u0000\u0000\u21a3\u069e\u0001\u0000\u0000\u0000\u21a4\u21a5\u0005|\u0000"+ + "\u0000\u21a5\u21a6\u0005/\u0000\u0000\u21a6\u06a0\u0001\u0000\u0000\u0000"+ + "\u21a7\u21a8\u0005+\u0000\u0000\u21a8\u06a2\u0001\u0000\u0000\u0000\u21a9"+ + "\u21aa\u0005?\u0000\u0000\u21aa\u06a4\u0001\u0000\u0000\u0000\u21ab\u21ac"+ + "\u0005?\u0000\u0000\u21ac\u21ad\u0005&\u0000\u0000\u21ad\u06a6\u0001\u0000"+ + "\u0000\u0000\u21ae\u21af\u0005?\u0000\u0000\u21af\u21b0\u0005#\u0000\u0000"+ + "\u21b0\u06a8\u0001\u0000\u0000\u0000\u21b1\u21b2\u0005?\u0000\u0000\u21b2"+ + "\u21b3\u0005-\u0000\u0000\u21b3\u06aa\u0001\u0000\u0000\u0000\u21b4\u21b5"+ + "\u0005?\u0000\u0000\u21b5\u21b6\u0005|\u0000\u0000\u21b6\u06ac\u0001\u0000"+ + "\u0000\u0000\u21b7\u21b8\u0005/\u0000\u0000\u21b8\u06ae\u0001\u0000\u0000"+ + "\u0000\u21b9\u21ba\u0005~\u0000\u0000\u21ba\u06b0\u0001\u0000\u0000\u0000"+ + "\u21bb\u21bc\u0005~\u0000\u0000\u21bc\u21bd\u0005=\u0000\u0000\u21bd\u06b2"+ + "\u0001\u0000\u0000\u0000\u21be\u21bf\u0005~\u0000\u0000\u21bf\u21c0\u0005"+ + ">\u0000\u0000\u21c0\u21c1\u0005=\u0000\u0000\u21c1\u21c2\u0005~\u0000"+ + "\u0000\u21c2\u06b4\u0001\u0000\u0000\u0000\u21c3\u21c4\u0005~\u0000\u0000"+ + "\u21c4\u21c5\u0005>\u0000\u0000\u21c5\u21c6\u0005~\u0000\u0000\u21c6\u06b6"+ + "\u0001\u0000\u0000\u0000\u21c7\u21c8\u0005~\u0000\u0000\u21c8\u21c9\u0005"+ + "<\u0000\u0000\u21c9\u21ca\u0005=\u0000\u0000\u21ca\u21cb\u0005~\u0000"+ + "\u0000\u21cb\u06b8\u0001\u0000\u0000\u0000\u21cc\u21cd\u0005~\u0000\u0000"+ + "\u21cd\u21ce\u0005<\u0000\u0000\u21ce\u21cf\u0005~\u0000\u0000\u21cf\u06ba"+ + "\u0001\u0000\u0000\u0000\u21d0\u21d1\u0005~\u0000\u0000\u21d1\u21d2\u0005"+ + "*\u0000\u0000\u21d2\u06bc\u0001\u0000\u0000\u0000\u21d3\u21d4\u0005~\u0000"+ + "\u0000\u21d4\u21d5\u0005~\u0000\u0000\u21d5\u06be\u0001\u0000\u0000\u0000"+ + "\u21d6\u21d7\u0005;\u0000\u0000\u21d7\u06c0\u0001\u0000\u0000\u0000\u0018"+ + "\u0000\u06c4\u06ce\u06dc\u0721\u0723\u072e\u0730\u073b\u073d\u20e8\u20f1"+ + "\u20f6\u20fc\u2102\u2108\u210a\u210d\u2112\u2118\u211a\u2129\u2130\u2136"+ + "\u0002\u0006\u0000\u0000\u0000\u0001\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1, + _serializedATNSegment2, + _serializedATNSegment3 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens b/gen/PostgreSQLLexer.tokens similarity index 99% rename from src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens rename to gen/PostgreSQLLexer.tokens index 4cd274d..a0956e0 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLLexer.tokens +++ b/gen/PostgreSQLLexer.tokens @@ -176,7 +176,7 @@ DESTRUCTOR=175 DETERMINISTIC=176 DIAGNOSTICS=177 DICTIONARY=178 -DISABLE=179 +DISABLE_P=179 DISABLE_PAGE_SKIPPING=180 DISCARD=181 DISCONNECT=182 diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 index 311c43e..bc80956 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 @@ -1876,7 +1876,7 @@ non_reserved_keyword | VALIDATOR | VALUE | VALUES | VARCHAR | VARYING | VAR_POP | VAR_SAMP | VIEW | VOLATILE | WHENEVER | WHITESPACE | WIDTH_BUCKET | WITHIN | WITHOUT | WORK - | WRITE | YEAR | ZONE | DISABLE_P + | WRITE | YEAR | ZONE | DISABLE_P | ALIAS ; identifier diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java index d7c69d8..7308fac 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java @@ -2559,6 +2559,7 @@ public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws R case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -4872,6 +4873,7 @@ public final Alter_language_stmtContext alter_language_stmt() throws Recognition case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -5508,6 +5510,7 @@ public final Alter_large_object_stmtContext alter_large_object_stmt() throws Rec case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -6272,6 +6275,7 @@ public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -7610,6 +7614,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -8205,6 +8210,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -8784,6 +8790,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -9382,6 +9389,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -9976,6 +9984,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -10721,6 +10730,7 @@ public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionExce case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -11438,7 +11448,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1512); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1511); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -11477,7 +11487,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1520); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1519); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -11730,6 +11740,7 @@ public final Alter_statistics_stmtContext alter_statistics_stmt() throws Recogni case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -12817,6 +12828,7 @@ public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws Recogni case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -15505,7 +15517,7 @@ public final Create_aggregate_stmtContext create_aggregate_stmt() throws Recogni setState(2057); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2051); _errHandler.sync(this); @@ -18093,7 +18105,7 @@ public final Create_index_stmtContext create_index_stmt() throws RecognitionExce setState(2569); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)) | (1L << (IF - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)) | (1L << (IF - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2566); _errHandler.sync(this); @@ -21293,7 +21305,7 @@ public final Delete_stmtContext delete_stmt() throws RecognitionException { setState(3056); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(3053); _errHandler.sync(this); @@ -26851,6 +26863,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -27429,6 +27442,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -28008,6 +28022,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -28809,6 +28824,7 @@ public final Reset_stmtContext reset_stmt() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -30931,6 +30947,7 @@ public final Set_stmtContext set_stmt() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -31618,6 +31635,7 @@ public final Set_constraints_stmtContext set_constraints_stmt() throws Recogniti case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -32898,6 +32916,7 @@ public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -33887,7 +33906,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4241); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4240); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -33936,7 +33955,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4261); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4254); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -34827,6 +34846,7 @@ public final Column_listContext column_list() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALL: case ALLOCATE: case ALSO: @@ -35452,6 +35472,7 @@ public final Column_listContext column_list() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALL: case ALLOCATE: case ALSO: @@ -36134,7 +36155,7 @@ public final Explain_parameterContext explain_parameter() throws RecognitionExce setState(4407); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4406); param_value(); @@ -37051,6 +37072,7 @@ public final Limit_clauseContext limit_clause() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -38944,7 +38966,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4722); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4721); expr(0); @@ -38956,7 +38978,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4726); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4725); expr(0); @@ -39048,6 +39070,7 @@ private ExprContext expr(int _p) throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -40122,7 +40145,7 @@ public final Func_sig_argContext func_sig_arg() throws RecognitionException { setState(4849); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4843); _errHandler.sync(this); @@ -41446,7 +41469,7 @@ public final AggregateContext aggregate() throws RecognitionException { setState(5075); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5067); expr(0); @@ -41564,6 +41587,7 @@ public final Name_Context name_() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -42676,6 +42700,7 @@ public final Index_methodContext index_method() throws RecognitionException { case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -43351,7 +43376,7 @@ public final Func_callContext func_call() throws RecognitionException { setState(5177); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5164); expr(0); @@ -43483,7 +43508,7 @@ public final Array_cons_exprContext array_cons_expr() throws RecognitionExceptio setState(5204); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5196); expr(0); @@ -44940,6 +44965,7 @@ public final Exclude_elementContext exclude_element() throws RecognitionExceptio case ADMIN: case AFTER: case AGGREGATE: + case ALIAS: case ALLOCATE: case ALSO: case ALTER: @@ -46699,6 +46725,7 @@ public static class Non_reserved_keywordContext extends ParserRuleContext { public TerminalNode YEAR() { return getToken(PostgreSQLParser.YEAR, 0); } public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } + public TerminalNode ALIAS() { return getToken(PostgreSQLParser.ALIAS, 0); } public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -46727,7 +46754,7 @@ public final Non_reserved_keywordContext non_reserved_keyword() throws Recogniti { setState(5598); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || _la==TEXT) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || _la==TEXT) ) { _errHandler.recoverInline(this); } else { @@ -47869,7 +47896,7 @@ private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { "\u0330\u0331\u0335\u0337\u0339\u0339\u033b\u0342\7\2\u0316\u0316\u0318"+ "\u0318\u031a\u031b\u0325\u0326\u0329\u0329\6\2\u010b\u010b\u0115\u0115"+ "\u018e\u018e\u027e\u027e\4\2\u0288\u0288\u028a\u028a\4\2\u0305\u0306\u0309"+ - "\u030a\3\2\u02be\u02c3\4\2\36\36\u00ad\u00ado\2\3\3\6\20\23\26\32\33\37"+ + "\u030a\3\2\u02be\u02c3\4\2\36\36\u00ad\u00ado\2\3\3\6\21\23\26\32\33\37"+ "!#&(.\60\61\63\64\66\668?BORY\\_afhilnp{}\177\u0084\u0087\u0089\u008a"+ "\u008e\u008e\u0090\u009c\u009e\u009e\u00a1\u00a8\u00aa\u00ac\u00ae\u00af"+ "\u00b2\u00b5\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c6\u00c8\u00ca\u00cc"+ diff --git a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt index 4658904..d1e4220 100644 --- a/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt +++ b/src/test/kotlin/com/github/bigdata/sql/parser/pg/Test.kt @@ -8,11 +8,7 @@ class Test { @Test fun setConfigTest1() { println("---------------") - var querySql = "select id,created_at,updated_at,counter_id,trade_day ,open,high,low,close,turnover,volume,suspension_indicator" + - " from quote_eod_private where trade_day = to_char(current_date - interval '1 day','YYYY-MM-DD') " + - "and CURRENT_DATE > date(trade_day) " + - "union select id,created_at,updated_at,counter_id,trade_day,open," + - "high,low,close,turnover,volume,suspension_indicator from (select *,rank() over(partition by counter_id order by trade_day desc) as rownum from quote_eod_private where CURRENT_DATE > date(trade_day))t where rownum=1" + var querySql = "select id,counter_id,alias,former_name,former_ticker from security_extend" var statement = PostgreSQLHelper().parseSqlFieldLineage(querySql).getStatementData().statement println(JSONUtil.parseObj(statement)) } From ef7a2581b63f0826bae5270e2b56ce2f4f8d8fba Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 4 Apr 2023 11:28:33 +0800 Subject: [PATCH 52/56] enable --- .../bigdata/sql/antlr4/pg/PostgreSQLParser.g4 | 2 +- .../sql/antlr4/pg/PostgreSQLParser.java | 59 ++++++++++++++----- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 index bc80956..d12a953 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 @@ -1876,7 +1876,7 @@ non_reserved_keyword | VALIDATOR | VALUE | VALUES | VARCHAR | VARYING | VAR_POP | VAR_SAMP | VIEW | VOLATILE | WHENEVER | WHITESPACE | WIDTH_BUCKET | WITHIN | WITHOUT | WORK - | WRITE | YEAR | ZONE | DISABLE_P | ALIAS + | WRITE | YEAR | ZONE | DISABLE_P | ALIAS | ENABLE ; identifier diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java index 7308fac..c2e9e0f 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java @@ -2692,6 +2692,7 @@ public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws R case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -5006,6 +5007,7 @@ public final Alter_language_stmtContext alter_language_stmt() throws Recognition case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -5643,6 +5645,7 @@ public final Alter_large_object_stmtContext alter_large_object_stmt() throws Rec case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -6408,6 +6411,7 @@ public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -7748,6 +7752,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -8343,6 +8348,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -8924,6 +8930,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -9523,6 +9530,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -10118,6 +10126,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -10863,6 +10872,7 @@ public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionExce case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -11448,7 +11458,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1512); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1511); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -11487,7 +11497,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1520); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1519); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -11873,6 +11883,7 @@ public final Alter_statistics_stmtContext alter_statistics_stmt() throws Recogni case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -12961,6 +12972,7 @@ public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws Recogni case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -15517,7 +15529,7 @@ public final Create_aggregate_stmtContext create_aggregate_stmt() throws Recogni setState(2057); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2051); _errHandler.sync(this); @@ -18105,7 +18117,7 @@ public final Create_index_stmtContext create_index_stmt() throws RecognitionExce setState(2569); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)) | (1L << (IF - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (IF - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2566); _errHandler.sync(this); @@ -21305,7 +21317,7 @@ public final Delete_stmtContext delete_stmt() throws RecognitionException { setState(3056); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(3053); _errHandler.sync(this); @@ -26996,6 +27008,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -27575,6 +27588,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -28155,6 +28169,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -28957,6 +28972,7 @@ public final Reset_stmtContext reset_stmt() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -31080,6 +31096,7 @@ public final Set_stmtContext set_stmt() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -31768,6 +31785,7 @@ public final Set_constraints_stmtContext set_constraints_stmt() throws Recogniti case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -33049,6 +33067,7 @@ public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -33906,7 +33925,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4241); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4240); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -33955,7 +33974,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4261); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4254); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -34989,6 +35008,7 @@ public final Column_listContext column_list() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -35615,6 +35635,7 @@ public final Column_listContext column_list() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -36155,7 +36176,7 @@ public final Explain_parameterContext explain_parameter() throws RecognitionExce setState(4407); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (ON - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (YES - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4406); param_value(); @@ -37205,6 +37226,7 @@ public final Limit_clauseContext limit_clause() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -38966,7 +38988,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4722); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4721); expr(0); @@ -38978,7 +39000,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4726); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4725); expr(0); @@ -39203,6 +39225,7 @@ private ExprContext expr(int _p) throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -40145,7 +40168,7 @@ public final Func_sig_argContext func_sig_arg() throws RecognitionException { setState(4849); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (IN - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARIADIC - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4843); _errHandler.sync(this); @@ -41469,7 +41492,7 @@ public final AggregateContext aggregate() throws RecognitionException { setState(5075); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5067); expr(0); @@ -41720,6 +41743,7 @@ public final Name_Context name_() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -42833,6 +42857,7 @@ public final Index_methodContext index_method() throws RecognitionException { case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -43376,7 +43401,7 @@ public final Func_callContext func_call() throws RecognitionException { setState(5177); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5164); expr(0); @@ -43508,7 +43533,7 @@ public final Array_cons_exprContext array_cons_expr() throws RecognitionExceptio setState(5204); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FALSE - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOT - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULL - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITH - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5196); expr(0); @@ -45098,6 +45123,7 @@ public final Exclude_elementContext exclude_element() throws RecognitionExceptio case DYNAMIC_FUNCTION_CODE: case EACH: case ELEMENT: + case ENABLE: case ENCODING: case ENCRYPTED: case END: @@ -46726,6 +46752,7 @@ public static class Non_reserved_keywordContext extends ParserRuleContext { public TerminalNode ZONE() { return getToken(PostgreSQLParser.ZONE, 0); } public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } public TerminalNode ALIAS() { return getToken(PostgreSQLParser.ALIAS, 0); } + public TerminalNode ENABLE() { return getToken(PostgreSQLParser.ENABLE, 0); } public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -46754,7 +46781,7 @@ public final Non_reserved_keywordContext non_reserved_keyword() throws Recogniti { setState(5598); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (ENCODING - 196)) | (1L << (ENCRYPTED - 196)) | (1L << (END - 196)) | (1L << (EQUALS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVERY - 196)) | (1L << (EXCEPTION - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXCLUDING - 196)) | (1L << (EXCLUSIVE - 196)) | (1L << (EXEC - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXP - 196)) | (1L << (EXPLAIN - 196)) | (1L << (EXTENSION - 196)) | (1L << (EXTERNAL - 196)) | (1L << (EXTRACT - 196)) | (1L << (FILTER - 196)) | (1L << (FINAL - 196)) | (1L << (FIRST - 196)) | (1L << (FLOAT - 196)) | (1L << (FLOOR - 196)) | (1L << (FOLLOWING - 196)) | (1L << (FORCE - 196)) | (1L << (FORMAT - 196)) | (1L << (FORTRAN - 196)) | (1L << (FORWARD - 196)) | (1L << (FOUND - 196)) | (1L << (FREE - 196)) | (1L << (FUNCTION - 196)) | (1L << (FUSION - 196)) | (1L << (G_ - 196)) | (1L << (GENERAL - 196)) | (1L << (GENERATED - 196)) | (1L << (GET - 196)) | (1L << (GLOBAL - 196)) | (1L << (GO - 196)) | (1L << (GOTO - 196)) | (1L << (GRANTED - 196)) | (1L << (GREATEST - 196)) | (1L << (GROUPING - 196)) | (1L << (HANDLER - 196)) | (1L << (HIERARCHY - 196)) | (1L << (HOLD - 196)) | (1L << (HOST - 196)) | (1L << (HOUR - 196)) | (1L << (IDENTITY - 196)) | (1L << (IGNORE - 196)))) != 0) || ((((_la - 261)) & ~0x3f) == 0 && ((1L << (_la - 261)) & ((1L << (IMMEDIATE - 261)) | (1L << (IMMUTABLE - 261)) | (1L << (IMPLEMENTATION - 261)) | (1L << (IMPLICIT - 261)) | (1L << (INCLUDING - 261)) | (1L << (INCREMENT - 261)) | (1L << (INDEX - 261)) | (1L << (INDICATOR - 261)) | (1L << (INHERITS - 261)) | (1L << (INOUT - 261)) | (1L << (INPUT - 261)) | (1L << (INSENSITIVE - 261)) | (1L << (INSERT - 261)) | (1L << (INSTANCE - 261)) | (1L << (INSTANTIABLE - 261)) | (1L << (INSTEAD - 261)) | (1L << (INT - 261)) | (1L << (INTEGER - 261)) | (1L << (INTERSECTION - 261)) | (1L << (INTERVAL - 261)) | (1L << (INVOKER - 261)) | (1L << (ISOLATION - 261)) | (1L << (K_ - 261)) | (1L << (KEY - 261)) | (1L << (KEY_MEMBER - 261)) | (1L << (KEY_TYPE - 261)) | (1L << (LANGUAGE - 261)) | (1L << (LARGE - 261)) | (1L << (LAST - 261)) | (1L << (LEAST - 261)) | (1L << (LEFT - 261)) | (1L << (LENGTH - 261)) | (1L << (LEVEL - 261)) | (1L << (LISTEN - 261)) | (1L << (LN - 261)) | (1L << (LOAD - 261)) | (1L << (LOCAL - 261)) | (1L << (LOCATION - 261)) | (1L << (LOCATOR - 261)) | (1L << (LOCK - 261)) | (1L << (LOCKED - 261)) | (1L << (LOWER - 261)) | (1L << (M_ - 261)) | (1L << (MAP - 261)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (MATCH - 326)) | (1L << (MATCHED - 326)) | (1L << (MAX - 326)) | (1L << (MAXVALUE - 326)) | (1L << (MEMBER - 326)) | (1L << (MERGE - 326)) | (1L << (MESSAGE_LENGTH - 326)) | (1L << (MESSAGE_OCTET_LENGTH - 326)) | (1L << (MESSAGE_TEXT - 326)) | (1L << (METHOD - 326)) | (1L << (MIN - 326)) | (1L << (MINUTE - 326)) | (1L << (MINVALUE - 326)) | (1L << (MOD - 326)) | (1L << (MODE - 326)) | (1L << (MODIFIES - 326)) | (1L << (MODULE - 326)) | (1L << (MONTH - 326)) | (1L << (MORE_ - 326)) | (1L << (MOVE - 326)) | (1L << (MULTISET - 326)) | (1L << (MUMPS - 326)) | (1L << (NAME - 326)) | (1L << (NAMES - 326)) | (1L << (NATIONAL - 326)) | (1L << (NCHAR - 326)) | (1L << (NCLOB - 326)) | (1L << (NESTING - 326)) | (1L << (NEW - 326)) | (1L << (NEXT - 326)) | (1L << (NO - 326)) | (1L << (NONE - 326)) | (1L << (NORMALIZE - 326)) | (1L << (NORMALIZED - 326)) | (1L << (NOTHING - 326)) | (1L << (NOTIFY - 326)) | (1L << (NOWAIT - 326)) | (1L << (NULLABLE - 326)) | (1L << (NULLIF - 326)) | (1L << (NULLS - 326)) | (1L << (NUMBER - 326)) | (1L << (NUMERIC - 326)) | (1L << (OBJECT - 326)) | (1L << (OCTET_LENGTH - 326)) | (1L << (OCTETS - 326)) | (1L << (OF - 326)) | (1L << (OFF - 326)) | (1L << (OIDS - 326)) | (1L << (OLD - 326)) | (1L << (OPEN - 326)) | (1L << (OPERATOR - 326)) | (1L << (OPTION - 326)))) != 0) || ((((_la - 390)) & ~0x3f) == 0 && ((1L << (_la - 390)) & ((1L << (OPTIONS - 390)) | (1L << (ORDERING - 390)) | (1L << (ORDINALITY - 390)) | (1L << (OTHERS - 390)) | (1L << (OUT - 390)) | (1L << (OUTPUT - 390)) | (1L << (OVER - 390)) | (1L << (OVERLAY - 390)) | (1L << (OVERRIDING - 390)) | (1L << (OWNER - 390)) | (1L << (PAD - 390)) | (1L << (PARAMETER - 390)) | (1L << (PARAMETER_MODE - 390)) | (1L << (PARAMETER_NAME - 390)) | (1L << (PARAMETER_ORDINAL_POSITION - 390)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 390)) | (1L << (PARAMETER_SPECIFIC_NAME - 390)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 390)) | (1L << (PARTIAL - 390)) | (1L << (PARTITION - 390)) | (1L << (PASCAL - 390)) | (1L << (PASSWORD - 390)) | (1L << (PATH - 390)) | (1L << (PERCENT_RANK - 390)) | (1L << (PERCENTILE_CONT - 390)) | (1L << (PERCENTILE_DISC - 390)) | (1L << (PLAIN - 390)) | (1L << (PLI - 390)) | (1L << (POSITION - 390)) | (1L << (POWER - 390)) | (1L << (PRECEDING - 390)) | (1L << (PRECISION - 390)) | (1L << (PREPARE - 390)) | (1L << (PRESERVE - 390)) | (1L << (PRIOR - 390)) | (1L << (PRIVILEGES - 390)) | (1L << (PROCEDURAL - 390)) | (1L << (PROCEDURE - 390)) | (1L << (PUBLIC - 390)) | (1L << (QUOTE - 390)) | (1L << (RANGE - 390)) | (1L << (RANK - 390)) | (1L << (READ - 390)) | (1L << (READS - 390)) | (1L << (REAL - 390)) | (1L << (RECHECK - 390)) | (1L << (RECURSIVE - 390)) | (1L << (REF - 390)))) != 0) || ((((_la - 454)) & ~0x3f) == 0 && ((1L << (_la - 454)) & ((1L << (REFERENCING - 454)) | (1L << (REFRESH - 454)) | (1L << (REGR_AVGX - 454)) | (1L << (REGR_AVGY - 454)) | (1L << (REGR_COUNT - 454)) | (1L << (REGR_INTERCEPT - 454)) | (1L << (REGR_SLOPE - 454)) | (1L << (REGR_SXX - 454)) | (1L << (REGR_SXY - 454)) | (1L << (REGR_SYY - 454)) | (1L << (REINDEX - 454)) | (1L << (RELATIVE - 454)) | (1L << (RELEASE - 454)) | (1L << (RENAME - 454)) | (1L << (REPEATABLE - 454)) | (1L << (REPLACE - 454)) | (1L << (RESET - 454)) | (1L << (RESTART - 454)) | (1L << (RESTRICT - 454)) | (1L << (RESULT - 454)) | (1L << (RETURN - 454)) | (1L << (RETURNED_CARDINALITY - 454)) | (1L << (RETURNED_LENGTH - 454)) | (1L << (RETURNED_OCTET_LENGTH - 454)) | (1L << (RETURNED_SQLSTATE - 454)) | (1L << (RETURNS - 454)) | (1L << (REVOKE - 454)) | (1L << (RIGHT - 454)) | (1L << (ROLE - 454)) | (1L << (ROLLBACK - 454)) | (1L << (ROLLUP - 454)) | (1L << (ROUTINE - 454)) | (1L << (ROUTINE_CATALOG - 454)) | (1L << (ROUTINE_NAME - 454)) | (1L << (ROUTINE_SCHEMA - 454)) | (1L << (ROW - 454)) | (1L << (ROW_COUNT - 454)) | (1L << (ROW_NUMBER - 454)) | (1L << (ROWS - 454)) | (1L << (RULE - 454)) | (1L << (SAVEPOINT - 454)) | (1L << (SCALE - 454)) | (1L << (SCHEMA - 454)) | (1L << (SCHEMA_NAME - 454)) | (1L << (SCOPE - 454)) | (1L << (SCOPE_CATALOG - 454)) | (1L << (SCOPE_NAME - 454)) | (1L << (SCOPE_SCHEMA - 454)) | (1L << (SCROLL - 454)) | (1L << (SEARCH - 454)) | (1L << (SECOND - 454)) | (1L << (SECTION - 454)) | (1L << (SECURITY - 454)) | (1L << (SELF - 454)) | (1L << (SENSITIVE - 454)) | (1L << (SEQUENCE - 454)) | (1L << (SEQUENCES - 454)) | (1L << (SERIALIZABLE - 454)) | (1L << (SERVER_NAME - 454)) | (1L << (SESSION - 454)))) != 0) || ((((_la - 519)) & ~0x3f) == 0 && ((1L << (_la - 519)) & ((1L << (SET - 519)) | (1L << (SETOF - 519)) | (1L << (SETS - 519)) | (1L << (SHARE - 519)) | (1L << (SHOW - 519)) | (1L << (SIMPLE - 519)) | (1L << (SIZE - 519)) | (1L << (SMALLINT - 519)) | (1L << (SOME - 519)) | (1L << (SOURCE - 519)) | (1L << (SPACE - 519)) | (1L << (SPECIFIC - 519)) | (1L << (SPECIFIC_NAME - 519)) | (1L << (SPECIFICTYPE - 519)) | (1L << (SQL - 519)) | (1L << (SQLCODE - 519)) | (1L << (SQLERROR - 519)) | (1L << (SQLEXCEPTION - 519)) | (1L << (SQLSTATE - 519)) | (1L << (SQLWARNING - 519)) | (1L << (SQRT - 519)) | (1L << (STABLE - 519)) | (1L << (START - 519)) | (1L << (STATE - 519)) | (1L << (STATEMENT - 519)) | (1L << (STATIC - 519)) | (1L << (STATISTICS - 519)) | (1L << (STDDEV_POP - 519)) | (1L << (STDDEV_SAMP - 519)) | (1L << (STDIN - 519)) | (1L << (STDOUT - 519)) | (1L << (STORAGE - 519)) | (1L << (STRICT - 519)) | (1L << (STRUCTURE - 519)) | (1L << (STYLE - 519)) | (1L << (SUBCLASS_ORIGIN - 519)) | (1L << (SUBMULTISET - 519)) | (1L << (SUBSTRING - 519)) | (1L << (SUM - 519)) | (1L << (SYSID - 519)) | (1L << (SYSTEM - 519)) | (1L << (SYSTEM_USER - 519)) | (1L << (TABLE_NAME - 519)) | (1L << (TABLESPACE - 519)) | (1L << (TEMP - 519)) | (1L << (TEMPLATE - 519)) | (1L << (TEMPORARY - 519)) | (1L << (TIES - 519)) | (1L << (TIME - 519)) | (1L << (TIMESTAMP - 519)) | (1L << (TIMEZONE_HOUR - 519)) | (1L << (TIMEZONE_MINUTE - 519)))) != 0) || ((((_la - 585)) & ~0x3f) == 0 && ((1L << (_la - 585)) & ((1L << (TOP_LEVEL_COUNT - 585)) | (1L << (TRANSACTION - 585)) | (1L << (TRANSACTION_ACTIVE - 585)) | (1L << (TRANSACTIONS_COMMITTED - 585)) | (1L << (TRANSACTIONS_ROLLED_BACK - 585)) | (1L << (TRANSFORM - 585)) | (1L << (TRANSFORMS - 585)) | (1L << (TRANSLATE - 585)) | (1L << (TRANSLATION - 585)) | (1L << (TREAT - 585)) | (1L << (TRIGGER - 585)) | (1L << (TRIGGER_CATALOG - 585)) | (1L << (TRIGGER_NAME - 585)) | (1L << (TRIGGER_SCHEMA - 585)) | (1L << (TRIM - 585)) | (1L << (TRUE - 585)) | (1L << (TRUNCATE - 585)) | (1L << (TRUSTED - 585)) | (1L << (TYPE - 585)) | (1L << (UESCAPE - 585)) | (1L << (UNBOUNDED - 585)) | (1L << (UNCOMMITTED - 585)) | (1L << (UNDER - 585)) | (1L << (UNENCRYPTED - 585)) | (1L << (UNKNOWN - 585)) | (1L << (UNLISTEN - 585)) | (1L << (UNNAMED - 585)) | (1L << (UNNEST - 585)) | (1L << (UNTIL - 585)) | (1L << (UPDATE - 585)) | (1L << (UPPER - 585)) | (1L << (USAGE - 585)) | (1L << (USER_DEFINED_TYPE_CATALOG - 585)) | (1L << (USER_DEFINED_TYPE_CODE - 585)) | (1L << (USER_DEFINED_TYPE_NAME - 585)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 585)) | (1L << (VACUUM - 585)) | (1L << (VALID - 585)) | (1L << (VALIDATOR - 585)) | (1L << (VALUE - 585)) | (1L << (VALUES - 585)) | (1L << (VAR_POP - 585)) | (1L << (VAR_SAMP - 585)) | (1L << (VARCHAR - 585)) | (1L << (VARYING - 585)) | (1L << (VIEW - 585)) | (1L << (VOLATILE - 585)) | (1L << (WHENEVER - 585)) | (1L << (WIDTH_BUCKET - 585)) | (1L << (WITHIN - 585)) | (1L << (WITHOUT - 585)))) != 0) || ((((_la - 649)) & ~0x3f) == 0 && ((1L << (_la - 649)) & ((1L << (WORK - 649)) | (1L << (WRITE - 649)) | (1L << (YEAR - 649)) | (1L << (ZONE - 649)))) != 0) || _la==TEXT) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || _la==TEXT) ) { _errHandler.recoverInline(this); } else { @@ -47899,7 +47926,7 @@ private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { "\u030a\3\2\u02be\u02c3\4\2\36\36\u00ad\u00ado\2\3\3\6\21\23\26\32\33\37"+ "!#&(.\60\61\63\64\66\668?BORY\\_afhilnp{}\177\u0084\u0087\u0089\u008a"+ "\u008e\u008e\u0090\u009c\u009e\u009e\u00a1\u00a8\u00aa\u00ac\u00ae\u00af"+ - "\u00b2\u00b5\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c6\u00c8\u00ca\u00cc"+ + "\u00b2\u00b5\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c5\u00c8\u00ca\u00cc"+ "\u00ce\u00d3\u00d5\u00d7\u00d9\u00db\u00df\u00e4\u00e6\u00e6\u00e8\u00ec"+ "\u00f0\u00f8\u00fa\u00fb\u00fd\u00fe\u0100\u0105\u0107\u010a\u010c\u010f"+ "\u0111\u0111\u0115\u011d\u011f\u0120\u0122\u0122\u0124\u0124\u0127\u012a"+ From c4f9adbaff5a6d0ad98799c723c7a49f378b2688 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 4 Apr 2023 11:32:38 +0800 Subject: [PATCH 53/56] VERSION --- .../bigdata/sql/antlr4/pg/PostgreSQLParser.g4 | 2 +- .../sql/antlr4/pg/PostgreSQLParser.java | 1415 +++++++++-------- 2 files changed, 722 insertions(+), 695 deletions(-) diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 index d12a953..48ee791 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 @@ -1876,7 +1876,7 @@ non_reserved_keyword | VALIDATOR | VALUE | VALUES | VARCHAR | VARYING | VAR_POP | VAR_SAMP | VIEW | VOLATILE | WHENEVER | WHITESPACE | WIDTH_BUCKET | WITHIN | WITHOUT | WORK - | WRITE | YEAR | ZONE | DISABLE_P | ALIAS | ENABLE + | WRITE | YEAR | ZONE | DISABLE_P | ALIAS | ENABLE | VERSION ; identifier diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java index c2e9e0f..f23405c 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java @@ -3053,6 +3053,7 @@ public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws R case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -5368,6 +5369,7 @@ public final Alter_language_stmtContext alter_language_stmt() throws Recognition case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -6006,6 +6008,7 @@ public final Alter_large_object_stmtContext alter_large_object_stmt() throws Rec case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -6772,6 +6775,7 @@ public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -8114,6 +8118,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -8712,6 +8717,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case YEAR: case YES: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -9292,6 +9298,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -9892,6 +9899,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -10488,6 +10496,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -11233,6 +11242,7 @@ public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionExce case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -11458,7 +11468,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1512); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1511); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -11497,7 +11507,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1520); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1519); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -12244,6 +12254,7 @@ public final Alter_statistics_stmtContext alter_statistics_stmt() throws Recogni case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -13333,6 +13344,7 @@ public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws Recogni case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -15529,7 +15541,7 @@ public final Create_aggregate_stmtContext create_aggregate_stmt() throws Recogni setState(2057); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2051); _errHandler.sync(this); @@ -18117,7 +18129,7 @@ public final Create_index_stmtContext create_index_stmt() throws RecognitionExce setState(2569); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (IF - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (IF - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2566); _errHandler.sync(this); @@ -21317,7 +21329,7 @@ public final Delete_stmtContext delete_stmt() throws RecognitionException { setState(3056); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(3053); _errHandler.sync(this); @@ -27369,6 +27381,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -27949,6 +27962,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -28530,6 +28544,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -29333,6 +29348,7 @@ public final Reset_stmtContext reset_stmt() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -31460,6 +31476,7 @@ public final Set_stmtContext set_stmt() throws RecognitionException { case YEAR: case YES: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -32146,6 +32163,7 @@ public final Set_constraints_stmtContext set_constraints_stmt() throws Recogniti case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -33428,6 +33446,7 @@ public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -33925,7 +33944,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4241); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4240); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -33974,7 +33993,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4261); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4254); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -35373,6 +35392,7 @@ public final Column_listContext column_list() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -36000,6 +36020,7 @@ public final Column_listContext column_list() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -36176,7 +36197,7 @@ public final Explain_parameterContext explain_parameter() throws RecognitionExce setState(4407); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4406); param_value(); @@ -37587,6 +37608,7 @@ public final Limit_clauseContext limit_clause() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -38988,7 +39010,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4722); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4721); expr(0); @@ -39000,7 +39022,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4726); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4725); expr(0); @@ -39586,6 +39608,7 @@ private ExprContext expr(int _p) throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -40168,7 +40191,7 @@ public final Func_sig_argContext func_sig_arg() throws RecognitionException { setState(4849); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4843); _errHandler.sync(this); @@ -41492,7 +41515,7 @@ public final AggregateContext aggregate() throws RecognitionException { setState(5075); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5067); expr(0); @@ -42104,6 +42127,7 @@ public final Name_Context name_() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -43218,6 +43242,7 @@ public final Index_methodContext index_method() throws RecognitionException { case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -43401,7 +43426,7 @@ public final Func_callContext func_call() throws RecognitionException { setState(5177); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5164); expr(0); @@ -43533,7 +43558,7 @@ public final Array_cons_exprContext array_cons_expr() throws RecognitionExceptio setState(5204); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5196); expr(0); @@ -45484,6 +45509,7 @@ public final Exclude_elementContext exclude_element() throws RecognitionExceptio case WRITE: case YEAR: case ZONE: + case VERSION: case ABSTIME: case BIGSERIAL: case BIT_VARYING: @@ -46753,6 +46779,7 @@ public static class Non_reserved_keywordContext extends ParserRuleContext { public TerminalNode DISABLE_P() { return getToken(PostgreSQLParser.DISABLE_P, 0); } public TerminalNode ALIAS() { return getToken(PostgreSQLParser.ALIAS, 0); } public TerminalNode ENABLE() { return getToken(PostgreSQLParser.ENABLE, 0); } + public TerminalNode VERSION() { return getToken(PostgreSQLParser.VERSION, 0); } public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -46781,7 +46808,7 @@ public final Non_reserved_keywordContext non_reserved_keyword() throws Recogniti { setState(5598); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)))) != 0) || _la==TEXT) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || _la==TEXT) ) { _errHandler.recoverInline(this); } else { @@ -47923,7 +47950,7 @@ private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { "\u0330\u0331\u0335\u0337\u0339\u0339\u033b\u0342\7\2\u0316\u0316\u0318"+ "\u0318\u031a\u031b\u0325\u0326\u0329\u0329\6\2\u010b\u010b\u0115\u0115"+ "\u018e\u018e\u027e\u027e\4\2\u0288\u0288\u028a\u028a\4\2\u0305\u0306\u0309"+ - "\u030a\3\2\u02be\u02c3\4\2\36\36\u00ad\u00ado\2\3\3\6\21\23\26\32\33\37"+ + "\u030a\3\2\u02be\u02c3\4\2\36\36\u00ad\u00adp\2\3\3\6\21\23\26\32\33\37"+ "!#&(.\60\61\63\64\66\668?BORY\\_afhilnp{}\177\u0084\u0087\u0089\u008a"+ "\u008e\u008e\u0090\u009c\u009e\u009e\u00a1\u00a8\u00aa\u00ac\u00ae\u00af"+ "\u00b2\u00b5\u00b8\u00b9\u00bc\u00bd\u00bf\u00c3\u00c5\u00c8\u00ca\u00cc"+ @@ -47939,506 +47966,506 @@ private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { "\u0212\u0212\u0214\u022f\u0231\u0231\u0233\u0234\u0236\u0238\u023a\u023a"+ "\u023c\u023f\u0243\u0247\u024b\u024b\u024d\u0263\u0266\u026d\u026f\u0272"+ "\u0274\u0275\u0277\u027c\u027f\u027f\u0281\u0282\u0284\u0284\u0286\u0286"+ - "\u0289\u028c\u028e\u028e\u0290\u0290\u02f0\u02f0\2\u19b8\2\u0214\3\2\2"+ - "\2\4\u0255\3\2\2\2\6\u0257\3\2\2\2\b\u0281\3\2\2\2\n\u02a1\3\2\2\2\f\u02be"+ - "\3\2\2\2\16\u02d5\3\2\2\2\20\u02d7\3\2\2\2\22\u02d9\3\2\2\2\24\u0327\3"+ - "\2\2\2\26\u034a\3\2\2\2\30\u035b\3\2\2\2\32\u035d\3\2\2\2\34\u040b\3\2"+ - "\2\2\36\u040d\3\2\2\2 \u0453\3\2\2\2\"\u0455\3\2\2\2$\u046c\3\2\2\2&\u04b4"+ - "\3\2\2\2(\u04cd\3\2\2\2*\u04cf\3\2\2\2,\u04da\3\2\2\2.\u04dc\3\2\2\2\60"+ - "\u04ff\3\2\2\2\62\u0501\3\2\2\2\64\u051e\3\2\2\2\66\u0554\3\2\2\28\u056f"+ - "\3\2\2\2:\u05bf\3\2\2\2<\u05c1\3\2\2\2>\u05db\3\2\2\2@\u05dd\3\2\2\2B"+ - "\u05e6\3\2\2\2D\u0617\3\2\2\2F\u0631\3\2\2\2H\u0672\3\2\2\2J\u0682\3\2"+ - "\2\2L\u0684\3\2\2\2N\u06a7\3\2\2\2P\u0704\3\2\2\2R\u0706\3\2\2\2T\u0708"+ - "\3\2\2\2V\u071c\3\2\2\2X\u0731\3\2\2\2Z\u0733\3\2\2\2\\\u0735\3\2\2\2"+ - "^\u0737\3\2\2\2`\u0743\3\2\2\2b\u0745\3\2\2\2d\u0750\3\2\2\2f\u0752\3"+ - "\2\2\2h\u0754\3\2\2\2j\u0756\3\2\2\2l\u0758\3\2\2\2n\u075a\3\2\2\2p\u0783"+ - "\3\2\2\2r\u0785\3\2\2\2t\u08a8\3\2\2\2v\u08aa\3\2\2\2x\u08d8\3\2\2\2z"+ - "\u08da\3\2\2\2|\u08f9\3\2\2\2~\u08fb\3\2\2\2\u0080\u0908\3\2\2\2\u0082"+ - "\u093e\3\2\2\2\u0084\u094a\3\2\2\2\u0086\u095b\3\2\2\2\u0088\u096e\3\2"+ - "\2\2\u008a\u097e\3\2\2\2\u008c\u0987\3\2\2\2\u008e\u09a2\3\2\2\2\u0090"+ - "\u09c7\3\2\2\2\u0092\u09cf\3\2\2\2\u0094\u09fd\3\2\2\2\u0096\u0a3c\3\2"+ - "\2\2\u0098\u0a3e\3\2\2\2\u009a\u0a5d\3\2\2\2\u009c\u0ab0\3\2\2\2\u009e"+ - "\u0ab2\3\2\2\2\u00a0\u0acb\3\2\2\2\u00a2\u0ad2\3\2\2\2\u00a4\u0aee\3\2"+ - "\2\2\u00a6\u0b21\3\2\2\2\u00a8\u0b23\3\2\2\2\u00aa\u0b5d\3\2\2\2\u00ac"+ - "\u0b5f\3\2\2\2\u00ae\u0b99\3\2\2\2\u00b0\u0b9b\3\2\2\2\u00b2\u0b9d\3\2"+ - "\2\2\u00b4\u0b9f\3\2\2\2\u00b6\u0ba1\3\2\2\2\u00b8\u0ba3\3\2\2\2\u00ba"+ - "\u0ba5\3\2\2\2\u00bc\u0ba7\3\2\2\2\u00be\u0ba9\3\2\2\2\u00c0\u0bab\3\2"+ - "\2\2\u00c2\u0bad\3\2\2\2\u00c4\u0baf\3\2\2\2\u00c6\u0bb1\3\2\2\2\u00c8"+ - "\u0bb3\3\2\2\2\u00ca\u0bb5\3\2\2\2\u00cc\u0bb7\3\2\2\2\u00ce\u0bde\3\2"+ - "\2\2\u00d0\u0be0\3\2\2\2\u00d2\u0be3\3\2\2\2\u00d4\u0c02\3\2\2\2\u00d6"+ - "\u0c2e\3\2\2\2\u00d8\u0c30\3\2\2\2\u00da\u0c3b\3\2\2\2\u00dc\u0c46\3\2"+ - "\2\2\u00de\u0c54\3\2\2\2\u00e0\u0c5e\3\2\2\2\u00e2\u0c68\3\2\2\2\u00e4"+ - "\u0c70\3\2\2\2\u00e6\u0c7a\3\2\2\2\u00e8\u0c85\3\2\2\2\u00ea\u0c8f\3\2"+ - "\2\2\u00ec\u0c9b\3\2\2\2\u00ee\u0ca6\3\2\2\2\u00f0\u0cb0\3\2\2\2\u00f2"+ - "\u0cb8\3\2\2\2\u00f4\u0cc5\3\2\2\2\u00f6\u0cd2\3\2\2\2\u00f8\u0cdd\3\2"+ - "\2\2\u00fa\u0cdf\3\2\2\2\u00fc\u0cec\3\2\2\2\u00fe\u0cf9\3\2\2\2\u0100"+ - "\u0d00\3\2\2\2\u0102\u0d0c\3\2\2\2\u0104\u0d16\3\2\2\2\u0106\u0d1e\3\2"+ - "\2\2\u0108\u0d2a\3\2\2\2\u010a\u0d34\3\2\2\2\u010c\u0d3e\3\2\2\2\u010e"+ - "\u0d48\3\2\2\2\u0110\u0d50\3\2\2\2\u0112\u0d5a\3\2\2\2\u0114\u0d64\3\2"+ - "\2\2\u0116\u0d6c\3\2\2\2\u0118\u0d78\3\2\2\2\u011a\u0d84\3\2\2\2\u011c"+ - "\u0d90\3\2\2\2\u011e\u0d9c\3\2\2\2\u0120\u0da8\3\2\2\2\u0122\u0db4\3\2"+ - "\2\2\u0124\u0dbe\3\2\2\2\u0126\u0dc6\3\2\2\2\u0128\u0dd8\3\2\2\2\u012a"+ - "\u0de2\3\2\2\2\u012c\u0dfa\3\2\2\2\u012e\u0e07\3\2\2\2\u0130\u0e09\3\2"+ - "\2\2\u0132\u0e0b\3\2\2\2\u0134\u0e0e\3\2\2\2\u0136\u0e4a\3\2\2\2\u0138"+ - "\u0e4d\3\2\2\2\u013a\u0e4f\3\2\2\2\u013c\u0e73\3\2\2\2\u013e\u0e8f\3\2"+ - "\2\2\u0140\u0e95\3\2\2\2\u0142\u0ea5\3\2\2\2\u0144\u0ea9\3\2\2\2\u0146"+ - "\u0ec2\3\2\2\2\u0148\u0ec4\3\2\2\2\u014a\u0ecd\3\2\2\2\u014c\u0ed3\3\2"+ - "\2\2\u014e\u0ed8\3\2\2\2\u0150\u0eda\3\2\2\2\u0152\u0ede\3\2\2\2\u0154"+ - "\u0ee2\3\2\2\2\u0156\u0eec\3\2\2\2\u0158\u0eef\3\2\2\2\u015a\u0f32\3\2"+ - "\2\2\u015c\u0f6f\3\2\2\2\u015e\u0fb3\3\2\2\2\u0160\u0fbf\3\2\2\2\u0162"+ - "\u0fe6\3\2\2\2\u0164\u0fe8\3\2\2\2\u0166\u0ffb\3\2\2\2\u0168\u0ffd\3\2"+ - "\2\2\u016a\u1012\3\2\2\2\u016c\u1014\3\2\2\2\u016e\u1029\3\2\2\2\u0170"+ - "\u102b\3\2\2\2\u0172\u1032\3\2\2\2\u0174\u104b\3\2\2\2\u0176\u1051\3\2"+ - "\2\2\u0178\u1070\3\2\2\2\u017a\u1072\3\2\2\2\u017c\u10a9\3\2\2\2\u017e"+ - "\u10ac\3\2\2\2\u0180\u10d4\3\2\2\2\u0182\u10d8\3\2\2\2\u0184\u10e1\3\2"+ - "\2\2\u0186\u10e4\3\2\2\2\u0188\u1107\3\2\2\2\u018a\u1109\3\2\2\2\u018c"+ - "\u1114\3\2\2\2\u018e\u1125\3\2\2\2\u0190\u113d\3\2\2\2\u0192\u1149\3\2"+ - "\2\2\u0194\u114b\3\2\2\2\u0196\u114d\3\2\2\2\u0198\u1157\3\2\2\2\u019a"+ - "\u1165\3\2\2\2\u019c\u1167\3\2\2\2\u019e\u116e\3\2\2\2\u01a0\u1185\3\2"+ - "\2\2\u01a2\u1191\3\2\2\2\u01a4\u11a6\3\2\2\2\u01a6\u11ac\3\2\2\2\u01a8"+ - "\u11b1\3\2\2\2\u01aa\u11b9\3\2\2\2\u01ac\u11d6\3\2\2\2\u01ae\u11e7\3\2"+ - "\2\2\u01b0\u11e9\3\2\2\2\u01b2\u1236\3\2\2\2\u01b4\u12a3\3\2\2\2\u01b6"+ - "\u12d1\3\2\2\2\u01b8\u12d3\3\2\2\2\u01ba\u12df\3\2\2\2\u01bc\u12f3\3\2"+ - "\2\2\u01be\u12f5\3\2\2\2\u01c0\u12fd\3\2\2\2\u01c2\u1304\3\2\2\2\u01c4"+ - "\u139c\3\2\2\2\u01c6\u139e\3\2\2\2\u01c8\u13a4\3\2\2\2\u01ca\u13e5\3\2"+ - "\2\2\u01cc\u13e9\3\2\2\2\u01ce\u13eb\3\2\2\2\u01d0\u13f3\3\2\2\2\u01d2"+ - "\u13fb\3\2\2\2\u01d4\u1400\3\2\2\2\u01d6\u1408\3\2\2\2\u01d8\u140c\3\2"+ - "\2\2\u01da\u1418\3\2\2\2\u01dc\u1422\3\2\2\2\u01de\u1424\3\2\2\2\u01e0"+ - "\u144a\3\2\2\2\u01e2\u144c\3\2\2\2\u01e4\u14c4\3\2\2\2\u01e6\u14f0\3\2"+ - "\2\2\u01e8\u1507\3\2\2\2\u01ea\u1517\3\2\2\2\u01ec\u1525\3\2\2\2\u01ee"+ - "\u154c\3\2\2\2\u01f0\u154e\3\2\2\2\u01f2\u1552\3\2\2\2\u01f4\u155b\3\2"+ - "\2\2\u01f6\u1568\3\2\2\2\u01f8\u1576\3\2\2\2\u01fa\u15c9\3\2\2\2\u01fc"+ - "\u15cb\3\2\2\2\u01fe\u15de\3\2\2\2\u0200\u15e0\3\2\2\2\u0202\u15e8\3\2"+ - "\2\2\u0204\u15f2\3\2\2\2\u0206\u15f4\3\2\2\2\u0208\u15f6\3\2\2\2\u020a"+ - "\u15f8\3\2\2\2\u020c\u15fa\3\2\2\2\u020e\u15fc\3\2\2\2\u0210\u15fe\3\2"+ - "\2\2\u0212\u1600\3\2\2\2\u0214\u021d\5\4\3\2\u0215\u0216\7\u0343\2\2\u0216"+ - "\u0218\5\4\3\2\u0217\u0215\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u0217\3\2"+ - "\2\2\u0219\u021a\3\2\2\2\u021a\u021b\3\2\2\2\u021b\u021c\7\u0343\2\2\u021c"+ - "\u021e\3\2\2\2\u021d\u0217\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u021f\3\2"+ - "\2\2\u021f\u0220\7\2\2\3\u0220\3\3\2\2\2\u0221\u0256\5\6\4\2\u0222\u0256"+ - "\5\b\5\2\u0223\u0256\5b\62\2\u0224\u0256\5p9\2\u0225\u0256\5d\63\2\u0226"+ - "\u0256\5f\64\2\u0227\u0256\5h\65\2\u0228\u0256\5j\66\2\u0229\u0256\5l"+ - "\67\2\u022a\u0256\5n8\2\u022b\u0256\5\u00ceh\2\u022c\u0256\5\u00d0i\2"+ - "\u022d\u0256\5\u00d2j\2\u022e\u0256\5\u00d4k\2\u022f\u0256\5\u00d6l\2"+ - "\u0230\u0256\5\u012a\u0096\2\u0231\u0256\5\u012c\u0097\2\u0232\u0256\5"+ - "\u012e\u0098\2\u0233\u0256\5\u0130\u0099\2\u0234\u0256\5\u0132\u009a\2"+ - "\u0235\u0256\5\u0134\u009b\2\u0236\u0256\5\u0136\u009c\2\u0237\u0256\5"+ - "\u0138\u009d\2\u0238\u0256\5\u013a\u009e\2\u0239\u0256\5\u013c\u009f\2"+ - "\u023a\u0256\5\u013e\u00a0\2\u023b\u0256\5\u0140\u00a1\2\u023c\u0256\5"+ - "\u0142\u00a2\2\u023d\u0256\5\u0144\u00a3\2\u023e\u0256\5\u0146\u00a4\2"+ - "\u023f\u0256\5\u0148\u00a5\2\u0240\u0256\5\u014a\u00a6\2\u0241\u0256\5"+ - "\u014c\u00a7\2\u0242\u0256\5\u014e\u00a8\2\u0243\u0256\5\u0150\u00a9\2"+ - "\u0244\u0256\5\u0152\u00aa\2\u0245\u0256\5\u0154\u00ab\2\u0246\u0256\5"+ - "\u0156\u00ac\2\u0247\u0256\5\u0158\u00ad\2\u0248\u0256\5\u015a\u00ae\2"+ - "\u0249\u0256\5\u015c\u00af\2\u024a\u0256\5\u0162\u00b2\2\u024b\u0256\5"+ - "\u0164\u00b3\2\u024c\u0256\5\u0166\u00b4\2\u024d\u0256\5\u0168\u00b5\2"+ - "\u024e\u0256\5\u016e\u00b8\2\u024f\u0256\5\u0170\u00b9\2\u0250\u0256\5"+ - "\u0172\u00ba\2\u0251\u0256\5\u0174\u00bb\2\u0252\u0256\5\u0176\u00bc\2"+ - "\u0253\u0256\5\u017c\u00bf\2\u0254\u0256\5\u017e\u00c0\2\u0255\u0221\3"+ - "\2\2\2\u0255\u0222\3\2\2\2\u0255\u0223\3\2\2\2\u0255\u0224\3\2\2\2\u0255"+ - "\u0225\3\2\2\2\u0255\u0226\3\2\2\2\u0255\u0227\3\2\2\2\u0255\u0228\3\2"+ - "\2\2\u0255\u0229\3\2\2\2\u0255\u022a\3\2\2\2\u0255\u022b\3\2\2\2\u0255"+ - "\u022c\3\2\2\2\u0255\u022d\3\2\2\2\u0255\u022e\3\2\2\2\u0255\u022f\3\2"+ - "\2\2\u0255\u0230\3\2\2\2\u0255\u0231\3\2\2\2\u0255\u0232\3\2\2\2\u0255"+ - "\u0233\3\2\2\2\u0255\u0234\3\2\2\2\u0255\u0235\3\2\2\2\u0255\u0236\3\2"+ - "\2\2\u0255\u0237\3\2\2\2\u0255\u0238\3\2\2\2\u0255\u0239\3\2\2\2\u0255"+ - "\u023a\3\2\2\2\u0255\u023b\3\2\2\2\u0255\u023c\3\2\2\2\u0255\u023d\3\2"+ - "\2\2\u0255\u023e\3\2\2\2\u0255\u023f\3\2\2\2\u0255\u0240\3\2\2\2\u0255"+ - "\u0241\3\2\2\2\u0255\u0242\3\2\2\2\u0255\u0243\3\2\2\2\u0255\u0244\3\2"+ - "\2\2\u0255\u0245\3\2\2\2\u0255\u0246\3\2\2\2\u0255\u0247\3\2\2\2\u0255"+ - "\u0248\3\2\2\2\u0255\u0249\3\2\2\2\u0255\u024a\3\2\2\2\u0255\u024b\3\2"+ - "\2\2\u0255\u024c\3\2\2\2\u0255\u024d\3\2\2\2\u0255\u024e\3\2\2\2\u0255"+ - "\u024f\3\2\2\2\u0255\u0250\3\2\2\2\u0255\u0251\3\2\2\2\u0255\u0252\3\2"+ - "\2\2\u0255\u0253\3\2\2\2\u0255\u0254\3\2\2\2\u0256\5\3\2\2\2\u0257\u0258"+ - "\5\u0202\u0102\2\u0258\7\3\2\2\2\u0259\u0282\5\n\6\2\u025a\u0282\5\f\7"+ - "\2\u025b\u0282\5\16\b\2\u025c\u0282\5\20\t\2\u025d\u0282\5\22\n\2\u025e"+ - "\u0282\5\24\13\2\u025f\u0282\5\26\f\2\u0260\u0282\5\30\r\2\u0261\u0282"+ - "\5\32\16\2\u0262\u0282\5 \21\2\u0263\u0282\5\"\22\2\u0264\u0282\5$\23"+ - "\2\u0265\u0282\5&\24\2\u0266\u0282\5(\25\2\u0267\u0282\5*\26\2\u0268\u0282"+ - "\5,\27\2\u0269\u0282\5.\30\2\u026a\u0282\5\60\31\2\u026b\u0282\5\62\32"+ - "\2\u026c\u0282\5\64\33\2\u026d\u0282\5\66\34\2\u026e\u0282\5:\36\2\u026f"+ - "\u0282\5<\37\2\u0270\u0282\5> \2\u0271\u0282\5@!\2\u0272\u0282\5D#\2\u0273"+ - "\u0282\5F$\2\u0274\u0282\5H%\2\u0275\u0282\5J&\2\u0276\u0282\5L\'\2\u0277"+ - "\u0282\5N(\2\u0278\u0282\5P)\2\u0279\u0282\5R*\2\u027a\u0282\5T+\2\u027b"+ - "\u0282\5V,\2\u027c\u0282\5X-\2\u027d\u0282\5Z.\2\u027e\u0282\5\\/\2\u027f"+ - "\u0282\5^\60\2\u0280\u0282\5`\61\2\u0281\u0259\3\2\2\2\u0281\u025a\3\2"+ - "\2\2\u0281\u025b\3\2\2\2\u0281\u025c\3\2\2\2\u0281\u025d\3\2\2\2\u0281"+ - "\u025e\3\2\2\2\u0281\u025f\3\2\2\2\u0281\u0260\3\2\2\2\u0281\u0261\3\2"+ - "\2\2\u0281\u0262\3\2\2\2\u0281\u0263\3\2\2\2\u0281\u0264\3\2\2\2\u0281"+ - "\u0265\3\2\2\2\u0281\u0266\3\2\2\2\u0281\u0267\3\2\2\2\u0281\u0268\3\2"+ - "\2\2\u0281\u0269\3\2\2\2\u0281\u026a\3\2\2\2\u0281\u026b\3\2\2\2\u0281"+ - "\u026c\3\2\2\2\u0281\u026d\3\2\2\2\u0281\u026e\3\2\2\2\u0281\u026f\3\2"+ - "\2\2\u0281\u0270\3\2\2\2\u0281\u0271\3\2\2\2\u0281\u0272\3\2\2\2\u0281"+ - "\u0273\3\2\2\2\u0281\u0274\3\2\2\2\u0281\u0275\3\2\2\2\u0281\u0276\3\2"+ - "\2\2\u0281\u0277\3\2\2\2\u0281\u0278\3\2\2\2\u0281\u0279\3\2\2\2\u0281"+ - "\u027a\3\2\2\2\u0281\u027b\3\2\2\2\u0281\u027c\3\2\2\2\u0281\u027d\3\2"+ - "\2\2\u0281\u027e\3\2\2\2\u0281\u027f\3\2\2\2\u0281\u0280\3\2\2\2\u0282"+ - "\t\3\2\2\2\u0283\u0284\7\25\2\2\u0284\u0285\7\20\2\2\u0285\u0286\5\u0202"+ - "\u0102\2\u0286\u0287\7\u02ff\2\2\u0287\u0288\5\u01ee\u00f8\2\u0288\u0289"+ - "\7\u0300\2\2\u0289\u028a\7\u01d6\2\2\u028a\u028b\7\u0249\2\2\u028b\u028c"+ - "\5\u0202\u0102\2\u028c\u02a2\3\2\2\2\u028d\u028e\7\25\2\2\u028e\u028f"+ - "\7\20\2\2\u028f\u0290\5\u0202\u0102\2\u0290\u0291\7\u02ff\2\2\u0291\u0292"+ - "\5\u01ee\u00f8\2\u0292\u0293\7\u0300\2\2\u0293\u0294\7\u0195\2\2\u0294"+ - "\u0295\7\u0249\2\2\u0295\u0296\5\u01fa\u00fe\2\u0296\u02a2\3\2\2\2\u0297"+ - "\u0298\7\25\2\2\u0298\u0299\7\20\2\2\u0299\u029a\5\u0202\u0102\2\u029a"+ - "\u029b\7\u02ff\2\2\u029b\u029c\5\u01ee\u00f8\2\u029c\u029d\7\u0300\2\2"+ - "\u029d\u029e\7\u0209\2\2\u029e\u029f\7\u01f5\2\2\u029f\u02a0\5\u0202\u0102"+ - "\2\u02a0\u02a2\3\2\2\2\u02a1\u0283\3\2\2\2\u02a1\u028d\3\2\2\2\u02a1\u0297"+ - "\3\2\2\2\u02a2\13\3\2\2\2\u02a3\u02a4\7\25\2\2\u02a4\u02a5\7[\2\2\u02a5"+ - "\u02a6\5\u01cc\u00e7\2\u02a6\u02a7\7\u01c9\2\2\u02a7\u02a8\7\u02b8\2\2"+ - "\u02a8\u02bf\3\2\2\2\u02a9\u02aa\7\25\2\2\u02aa\u02ab\7[\2\2\u02ab\u02ac"+ - "\5\u01cc\u00e7\2\u02ac\u02ad\7\u01d6\2\2\u02ad\u02ae\7\u0249\2\2\u02ae"+ - "\u02af\5\u0202\u0102\2\u02af\u02bf\3\2\2\2\u02b0\u02b1\7\25\2\2\u02b1"+ - "\u02b2\7[\2\2\u02b2\u02b3\5\u01cc\u00e7\2\u02b3\u02b4\7\u0195\2\2\u02b4"+ - "\u02b5\7\u0249\2\2\u02b5\u02b6\5\u01fa\u00fe\2\u02b6\u02bf\3\2\2\2\u02b7"+ - "\u02b8\7\25\2\2\u02b8\u02b9\7[\2\2\u02b9\u02ba\5\u01cc\u00e7\2\u02ba\u02bb"+ - "\7\u0209\2\2\u02bb\u02bc\7\u01f5\2\2\u02bc\u02bd\5\u0202\u0102\2\u02bd"+ - "\u02bf\3\2\2\2\u02be\u02a3\3\2\2\2\u02be\u02a9\3\2\2\2\u02be\u02b0\3\2"+ - "\2\2\u02be\u02b7\3\2\2\2\u02bf\r\3\2\2\2\u02c0\u02c1\7\25\2\2\u02c1\u02c2"+ - "\7w\2\2\u02c2\u02c3\5\u0202\u0102\2\u02c3\u02c4\7\u01d6\2\2\u02c4\u02c5"+ - "\7\u0249\2\2\u02c5\u02c6\5\u0202\u0102\2\u02c6\u02d6\3\2\2\2\u02c7\u02c8"+ - "\7\25\2\2\u02c8\u02c9\7w\2\2\u02c9\u02ca\5\u0202\u0102\2\u02ca\u02cb\7"+ - "\u0195\2\2\u02cb\u02cc\7\u0249\2\2\u02cc\u02cd\5\u01fa\u00fe\2\u02cd\u02d6"+ - "\3\2\2\2\u02ce\u02cf\7\25\2\2\u02cf\u02d0\7w\2\2\u02d0\u02d1\5\u0202\u0102"+ - "\2\u02d1\u02d2\7\u0209\2\2\u02d2\u02d3\7\u01f5\2\2\u02d3\u02d4\5\u0202"+ - "\u0102\2\u02d4\u02d6\3\2\2\2\u02d5\u02c0\3\2\2\2\u02d5\u02c7\3\2\2\2\u02d5"+ - "\u02ce\3\2\2\2\u02d6\17\3\2\2\2\u02d7\u02d8\5\u0206\u0104\2\u02d8\21\3"+ - "\2\2\2\u02d9\u02da\5\u0206\u0104\2\u02da\23\3\2\2\2\u02db\u02dc\7\25\2"+ - "\2\u02dc\u02dd\7\u00bc\2\2\u02dd\u02e3\5\u0202\u0102\2\u02de\u02df\7\u0209"+ - "\2\2\u02df\u02e0\7\u009d\2\2\u02e0\u02e4\5\u01b2\u00da\2\u02e1\u02e2\7"+ - "\u00be\2\2\u02e2\u02e4\7\u009d\2\2\u02e3\u02de\3\2\2\2\u02e3\u02e1\3\2"+ - "\2\2\u02e4\u0328\3\2\2\2\u02e5\u02e6\7\25\2\2\u02e6\u02e7\7\u00bc\2\2"+ - "\u02e7\u02e8\5\u0202\u0102\2\u02e8\u02e9\t\2\2\2\u02e9\u02ea\7\u016f\2"+ - "\2\u02ea\u02eb\7\u0174\2\2\u02eb\u0328\3\2\2\2\u02ec\u02ed\7\25\2\2\u02ed"+ - "\u02ee\7\u00bc\2\2\u02ee\u02ef\5\u0202\u0102\2\u02ef\u02f0\7\r\2\2\u02f0"+ - "\u02f3\5\u0082B\2\u02f1\u02f2\7\u016f\2\2\u02f2\u02f4\7\u0275\2\2\u02f3"+ - "\u02f1\3\2\2\2\u02f3\u02f4\3\2\2\2\u02f4\u0328\3\2\2\2\u02f5\u02f6\7\25"+ - "\2\2\u02f6\u02f7\7\u00bc\2\2\u02f7\u02f8\5\u0202\u0102\2\u02f8\u02f9\7"+ - "\u00be\2\2\u02f9\u02fc\7o\2\2\u02fa\u02fb\7\u02b3\2\2\u02fb\u02fd\7\u00d5"+ - "\2\2\u02fc\u02fa\3\2\2\2\u02fc\u02fd\3\2\2\2\u02fd\u02fe\3\2\2\2\u02fe"+ - "\u0300\5\u0202\u0102\2\u02ff\u0301\t\3\2\2\u0300\u02ff\3\2\2\2\u0300\u0301"+ - "\3\2\2\2\u0301\u0328\3\2\2\2\u0302\u0303\7\25\2\2\u0303\u0304\7\u00bc"+ - "\2\2\u0304\u0305\5\u0202\u0102\2\u0305\u0306\7\u01d6\2\2\u0306\u0307\7"+ - "o\2\2\u0307\u0308\5\u0202\u0102\2\u0308\u0309\7\u0249\2\2\u0309\u030a"+ - "\5\u0202\u0102\2\u030a\u0328\3\2\2\2\u030b\u030c\7\25\2\2\u030c\u030d"+ - "\7\u00bc\2\2\u030d\u030e\5\u0202\u0102\2\u030e\u030f\7\u0276\2\2\u030f"+ - "\u0310\7o\2\2\u0310\u0311\5\u0202\u0102\2\u0311\u0328\3\2\2\2\u0312\u0313"+ - "\7\25\2\2\u0313\u0314\7\u00bc\2\2\u0314\u0315\5\u0202\u0102\2\u0315\u0316"+ - "\7\u0195\2\2\u0316\u0317\7\u0249\2\2\u0317\u0318\5\u01fa\u00fe\2\u0318"+ - "\u0328\3\2\2\2\u0319\u031a\7\25\2\2\u031a\u031b\7\u00bc\2\2\u031b\u031c"+ - "\5\u0202\u0102\2\u031c\u031d\7\u01d6\2\2\u031d\u031e\7\u0249\2\2\u031e"+ - "\u031f\5\u0202\u0102\2\u031f\u0328\3\2\2\2\u0320\u0321\7\25\2\2\u0321"+ - "\u0322\7\u00bc\2\2\u0322\u0323\5\u0202\u0102\2\u0323\u0324\7\u0209\2\2"+ - "\u0324\u0325\7\u01f5\2\2\u0325\u0326\5\u0202\u0102\2\u0326\u0328\3\2\2"+ - "\2\u0327\u02db\3\2\2\2\u0327\u02e5\3\2\2\2\u0327\u02ec\3\2\2\2\u0327\u02f5"+ - "\3\2\2\2\u0327\u0302\3\2\2\2\u0327\u030b\3\2\2\2\u0327\u0312\3\2\2\2\u0327"+ - "\u0319\3\2\2\2\u0327\u0320\3\2\2\2\u0328\25\3\2\2\2\u0329\u032a\7\25\2"+ - "\2\u032a\u032b\7\u02bb\2\2\u032b\u032c\7\u0256\2\2\u032c\u032d\5\u0202"+ - "\u0102\2\u032d\u032e\7\u00b5\2\2\u032e\u034b\3\2\2\2\u032f\u0330\7\25"+ - "\2\2\u0330\u0331\7\u02bb\2\2\u0331\u0332\7\u0256\2\2\u0332\u0333\5\u0202"+ - "\u0102\2\u0333\u0335\7\u00c5\2\2\u0334\u0336\t\4\2\2\u0335\u0334\3\2\2"+ - "\2\u0335\u0336\3\2\2\2\u0336\u034b\3\2\2\2\u0337\u0338\7\25\2\2\u0338"+ - "\u0339\7\u02bb\2\2\u0339\u033a\7\u0256\2\2\u033a\u033b\5\u0202\u0102\2"+ - "\u033b\u033c\7\u0195\2\2\u033c\u0340\7\u0249\2\2\u033d\u0341\5\u0202\u0102"+ - "\2\u033e\u0341\7\u008f\2\2\u033f\u0341\7\u0208\2\2\u0340\u033d\3\2\2\2"+ - "\u0340\u033e\3\2\2\2\u0340\u033f\3\2\2\2\u0341\u034b\3\2\2\2\u0342\u0343"+ - "\7\25\2\2\u0343\u0344\7\u02bb\2\2\u0344\u0345\7\u0256\2\2\u0345\u0346"+ - "\5\u0202\u0102\2\u0346\u0347\7\u01d6\2\2\u0347\u0348\7\u0249\2\2\u0348"+ - "\u0349\5\u0202\u0102\2\u0349\u034b\3\2\2\2\u034a\u0329\3\2\2\2\u034a\u032f"+ - "\3\2\2\2\u034a\u0337\3\2\2\2\u034a\u0342\3\2\2\2\u034b\27\3\2\2\2\u034c"+ - "\u034d\7\25\2\2\u034d\u034e\7\u00d9\2\2\u034e\u034f\5\u0202\u0102\2\u034f"+ - "\u0352\7\u026b\2\2\u0350\u0351\7\u0249\2\2\u0351\u0353\5\u0202\u0102\2"+ - "\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353\u035c\3\2\2\2\u0354\u0355"+ - "\7\25\2\2\u0355\u0356\7\u00d9\2\2\u0356\u0357\5\u0202\u0102\2\u0357\u0358"+ - "\7\u0209\2\2\u0358\u0359\7\u01f5\2\2\u0359\u035a\5\u0202\u0102\2\u035a"+ - "\u035c\3\2\2\2\u035b\u034c\3\2\2\2\u035b\u0354\3\2\2\2\u035c\31\3\2\2"+ - "\2\u035d\u035e\5\u0206\u0104\2\u035e\33\3\2\2\2\u035f\u0361\7\r\2\2\u0360"+ - "\u0362\7`\2\2\u0361\u0360\3\2\2\2\u0361\u0362\3\2\2\2\u0362\u0363\3\2"+ - "\2\2\u0363\u0364\5\u020a\u0106\2\u0364\u0367\5\u01d8\u00ed\2\u0365\u0366"+ - "\7Z\2\2\u0366\u0368\5\u0202\u0102\2\u0367\u0365\3\2\2\2\u0367\u0368\3"+ - "\2\2\2\u0368\u036a\3\2\2\2\u0369\u036b\5\u01f2\u00fa\2\u036a\u0369\3\2"+ - "\2\2\u036a\u036b\3\2\2\2\u036b\u040c\3\2\2\2\u036c\u036e\7\u00be\2\2\u036d"+ - "\u036f\7`\2\2\u036e\u036d\3\2\2\2\u036e\u036f\3\2\2\2\u036f\u0372\3\2"+ - "\2\2\u0370\u0371\7\u02b3\2\2\u0371\u0373\7\u00d5\2\2\u0372\u0370\3\2\2"+ - "\2\u0372\u0373\3\2\2\2\u0373\u0374\3\2\2\2\u0374\u0376\5\u020a\u0106\2"+ - "\u0375\u0377\t\3\2\2\u0376\u0375\3\2\2\2\u0376\u0377\3\2\2\2\u0377\u040c"+ - "\3\2\2\2\u0378\u037a\7\25\2\2\u0379\u037b\7`\2\2\u037a\u0379\3\2\2\2\u037a"+ - "\u037b\3\2\2\2\u037b\u037c\3\2\2\2\u037c\u037f\5\u020a\u0106\2\u037d\u037e"+ - "\7\u0209\2\2\u037e\u0380\7\u0093\2\2\u037f\u037d\3\2\2\2\u037f\u0380\3"+ - "\2\2\2\u0380\u0381\3\2\2\2\u0381\u0382\7\u025e\2\2\u0382\u0385\5\u01d8"+ - "\u00ed\2\u0383\u0384\7Z\2\2\u0384\u0386\5\u0202\u0102\2\u0385\u0383\3"+ - "\2\2\2\u0385\u0386\3\2\2\2\u0386\u040c\3\2\2\2\u0387\u0389\7\25\2\2\u0388"+ - "\u038a\7`\2\2\u0389\u0388\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u038b\3\2"+ - "\2\2\u038b\u038c\5\u020a\u0106\2\u038c\u038d\7\u0209\2\2\u038d\u038e\7"+ - "\u009d\2\2\u038e\u038f\5\u01b2\u00da\2\u038f\u040c\3\2\2\2\u0390\u0392"+ - "\7\25\2\2\u0391\u0393\7`\2\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2\2\2\u0393"+ - "\u0394\3\2\2\2\u0394\u0395\5\u020a\u0106\2\u0395\u0396\7\u00be\2\2\u0396"+ - "\u0397\7\u009d\2\2\u0397\u040c\3\2\2\2\u0398\u039a\7\25\2\2\u0399\u039b"+ - "\7`\2\2\u039a\u0399\3\2\2\2\u039a\u039b\3\2\2\2\u039b\u039c\3\2\2\2\u039c"+ - "\u039d\5\u020a\u0106\2\u039d\u039e\t\2\2\2\u039e\u039f\7\u016f\2\2\u039f"+ - "\u03a0\7\u0174\2\2\u03a0\u040c\3\2\2\2\u03a1\u03a3\7\25\2\2\u03a2\u03a4"+ - "\7`\2\2\u03a3\u03a2\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\3\2\2\2\u03a5"+ - "\u03a6\5\u020a\u0106\2\u03a6\u03a7\7\u0209\2\2\u03a7\u03a8\7\u0226\2\2"+ - "\u03a8\u03a9\7\u011d\2\2\u03a9\u040c\3\2\2\2\u03aa\u03ac\7\25\2\2\u03ab"+ - "\u03ad\7`\2\2\u03ac\u03ab\3\2\2\2\u03ac\u03ad\3\2\2\2\u03ad\u03ae\3\2"+ - "\2\2\u03ae\u03af\5\u020a\u0106\2\u03af\u03b0\7\u0209\2\2\u03b0\u03b1\7"+ - "\u02ff\2\2\u03b1\u03b2\5\u01d4\u00eb\2\u03b2\u03b3\7\u0300\2\2\u03b3\u040c"+ - "\3\2\2\2\u03b4\u03b6\7\25\2\2\u03b5\u03b7\7`\2\2\u03b6\u03b5\3\2\2\2\u03b6"+ - "\u03b7\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\5\u020a\u0106\2\u03b9\u03ba"+ - "\7\u01da\2\2\u03ba\u03bb\7\u02ff\2\2\u03bb\u03bc\5\u01d0\u00e9\2\u03bc"+ - "\u03bd\7\u0300\2\2\u03bd\u040c\3\2\2\2\u03be\u03c0\7\25\2\2\u03bf\u03c1"+ - "\7`\2\2\u03c0\u03bf\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2"+ - "\u03c3\5\u020a\u0106\2\u03c3\u03c4\7\u0209\2\2\u03c4\u03c5\7\u022b\2\2"+ - "\u03c5\u03c6\t\5\2\2\u03c6\u040c\3\2\2\2\u03c7\u03c9\7\25\2\2\u03c8\u03ca"+ - "\7`\2\2\u03c9\u03c8\3\2\2\2\u03c9\u03ca\3\2\2\2\u03ca\u03cb\3\2\2\2\u03cb"+ - "\u03cc\5\u020a\u0106\2\u03cc\u03ce\7\u0188\2\2\u03cd\u03cf\t\6\2\2\u03ce"+ - "\u03cd\3\2\2\2\u03ce\u03cf\3\2\2\2\u03cf\u040c\3\2\2\2\u03d0\u03d1\7\r"+ - "\2\2\u03d1\u03d4\5\u01f8\u00fd\2\u03d2\u03d3\7\u016f\2\2\u03d3\u03d5\7"+ - "\u0275\2\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u040c\3\2\2\2"+ - "\u03d6\u03d7\7\u0276\2\2\u03d7\u03d8\7o\2\2\u03d8\u040c\5\u0204\u0103"+ - "\2\u03d9\u03da\7\u00be\2\2\u03da\u03dd\7o\2\2\u03db\u03dc\7\u02b3\2\2"+ - "\u03dc\u03de\7\u00d5\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3\2\2\2\u03de"+ - "\u03df\3\2\2\2\u03df\u03e1\5\u0204\u0103\2\u03e0\u03e2\t\3\2\2\u03e1\u03e0"+ - "\3\2\2\2\u03e1\u03e2\3\2\2\2\u03e2\u040c\3\2\2\2\u03e3\u03e4\7\u00b5\2"+ - "\2\u03e4\u03e8\7\u0256\2\2\u03e5\u03e9\5\u0204\u0103\2\u03e6\u03e9\7\22"+ - "\2\2\u03e7\u03e9\7\u026e\2\2\u03e8\u03e5\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e8"+ - "\u03e7\3\2\2\2\u03e8\u03e9\3\2\2\2\u03e9\u040c\3\2\2\2\u03ea\u03eb\7\u00c5"+ - "\2\2\u03eb\u03ef\7\u0256\2\2\u03ec\u03f0\5\u0204\u0103\2\u03ed\u03f0\7"+ - "\22\2\2\u03ee\u03f0\7\u026e\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2"+ - "\2\u03ef\u03ee\3\2\2\2\u03ef\u03f0\3\2\2\2\u03f0\u040c\3\2\2\2\u03f1\u03f2"+ - "\7\u00c5\2\2\u03f2\u03f3\7\u01d9\2\2\u03f3\u03f4\7\u0256\2\2\u03f4\u040c"+ - "\5\u0204\u0103\2\u03f5\u03f6\7\u00c5\2\2\u03f6\u03f7\7\26\2\2\u03f7\u03f8"+ - "\7\u0256\2\2\u03f8\u040c\5\u0204\u0103\2\u03f9\u03fa\7\u0209\2\2\u03fa"+ - "\u03fb\7\u0288\2\2\u03fb\u040c\7\u0180\2\2\u03fc\u03fd\7\u0209\2\2\u03fd"+ - "\u03fe\7\u028a\2\2\u03fe\u040c\7\u0180\2\2\u03ff\u0400\7\u0295\2\2\u0400"+ - "\u040c\5\u0202\u0102\2\u0401\u0402\7\u0169\2\2\u0402\u0403\7\u0295\2\2"+ - "\u0403\u040c\5\u0202\u0102\2\u0404\u0405\7\u0195\2\2\u0405\u0406\7\u0249"+ - "\2\2\u0406\u040c\5\u01fa\u00fe\2\u0407\u0409\7\u0188\2\2\u0408\u040a\t"+ - "\6\2\2\u0409\u0408\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040c\3\2\2\2\u040b"+ - "\u035f\3\2\2\2\u040b\u036c\3\2\2\2\u040b\u0378\3\2\2\2\u040b\u0387\3\2"+ - "\2\2\u040b\u0390\3\2\2\2\u040b\u0398\3\2\2\2\u040b\u03a1\3\2\2\2\u040b"+ - "\u03aa\3\2\2\2\u040b\u03b4\3\2\2\2\u040b\u03be\3\2\2\2\u040b\u03c7\3\2"+ - "\2\2\u040b\u03d0\3\2\2\2\u040b\u03d6\3\2\2\2\u040b\u03d9\3\2\2\2\u040b"+ - "\u03e3\3\2\2\2\u040b\u03ea\3\2\2\2\u040b\u03f1\3\2\2\2\u040b\u03f5\3\2"+ - "\2\2\u040b\u03f9\3\2\2\2\u040b\u03fc\3\2\2\2\u040b\u03ff\3\2\2\2\u040b"+ - "\u0401\3\2\2\2\u040b\u0404\3\2\2\2\u040b\u0407\3\2\2\2\u040c\35\3\2\2"+ - "\2\u040d\u0412\5\34\17\2\u040e\u040f\7\u02f9\2\2\u040f\u0411\5\34\17\2"+ - "\u0410\u040e\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0410\3\2\2\2\u0412\u0413"+ - "\3\2\2\2\u0413\37\3\2\2\2\u0414\u0412\3\2\2\2\u0415\u0416\7\25\2\2\u0416"+ - "\u0417\7\u00e7\2\2\u0417\u041a\7\u0239\2\2\u0418\u0419\7\u02b3\2\2\u0419"+ - "\u041b\7\u00d5\2\2\u041a\u0418\3\2\2\2\u041a\u041b\3\2\2\2\u041b\u041d"+ - "\3\2\2\2\u041c\u041e\7\u0183\2\2\u041d\u041c\3\2\2\2\u041d\u041e\3\2\2"+ - "\2\u041e\u041f\3\2\2\2\u041f\u0421\5\u0202\u0102\2\u0420\u0422\7\u02fe"+ - "\2\2\u0421\u0420\3\2\2\2\u0421\u0422\3\2\2\2\u0422\u0423\3\2\2\2\u0423"+ - "\u0424\5\36\20\2\u0424\u0454\3\2\2\2\u0425\u0426\7\25\2\2\u0426\u0427"+ - "\7\u00e7\2\2\u0427\u042a\7\u0239\2\2\u0428\u0429\7\u02b3\2\2\u0429\u042b"+ - "\7\u00d5\2\2\u042a\u0428\3\2\2\2\u042a\u042b\3\2\2\2\u042b\u042d\3\2\2"+ - "\2\u042c\u042e\7\u0183\2\2\u042d\u042c\3\2\2\2\u042d\u042e\3\2\2\2\u042e"+ - "\u042f\3\2\2\2\u042f\u0431\5\u0202\u0102\2\u0430\u0432\7\u02fe\2\2\u0431"+ - "\u0430\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u0435\7\u01d6"+ - "\2\2\u0434\u0436\7`\2\2\u0435\u0434\3\2\2\2\u0435\u0436\3\2\2\2\u0436"+ - "\u0437\3\2\2\2\u0437\u0438\5\u020a\u0106\2\u0438\u0439\7\u0249\2\2\u0439"+ - "\u043a\5\u0202\u0102\2\u043a\u0454\3\2\2\2\u043b\u043c\7\25\2\2\u043c"+ - "\u043d\7\u00e7\2\2\u043d\u0440\7\u0239\2\2\u043e\u043f\7\u02b3\2\2\u043f"+ - "\u0441\7\u00d5\2\2\u0440\u043e\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442"+ - "\3\2\2\2\u0442\u0443\5\u0202\u0102\2\u0443\u0444\7\u01d6\2\2\u0444\u0445"+ - "\7\u0249\2\2\u0445\u0446\5\u0202\u0102\2\u0446\u0454\3\2\2\2\u0447\u0448"+ - "\7\25\2\2\u0448\u0449\7\u00e7\2\2\u0449\u044c\7\u0239\2\2\u044a\u044b"+ - "\7\u02b3\2\2\u044b\u044d\7\u00d5\2\2\u044c\u044a\3\2\2\2\u044c\u044d\3"+ - "\2\2\2\u044d\u044e\3\2\2\2\u044e\u044f\5\u0202\u0102\2\u044f\u0450\7\u0209"+ - "\2\2\u0450\u0451\7\u01f5\2\2\u0451\u0452\5\u0202\u0102\2\u0452\u0454\3"+ - "\2\2\2\u0453\u0415\3\2\2\2\u0453\u0425\3\2\2\2\u0453\u043b\3\2\2\2\u0453"+ - "\u0447\3\2\2\2\u0454!\3\2\2\2\u0455\u0456\5\u0206\u0104\2\u0456#\3\2\2"+ - "\2\u0457\u0458\7\25\2\2\u0458\u0459\7\u00fc\2\2\u0459\u045a\5\u01fa\u00fe"+ - "\2\u045a\u045b\7\r\2\2\u045b\u045c\7\u026e\2\2\u045c\u045d\5\u01d0\u00e9"+ - "\2\u045d\u046d\3\2\2\2\u045e\u045f\7\25\2\2\u045f\u0460\7\u00fc\2\2\u0460"+ - "\u0461\5\u01fa\u00fe\2\u0461\u0462\7\u00be\2\2\u0462\u0463\7\u026e\2\2"+ - "\u0463\u0464\5\u01d0\u00e9\2\u0464\u046d\3\2\2\2\u0465\u0466\7\25\2\2"+ - "\u0466\u0467\7\u00fc\2\2\u0467\u0468\5\u0202\u0102\2\u0468\u0469\7\u01d6"+ - "\2\2\u0469\u046a\7\u0249\2\2\u046a\u046b\5\u0202\u0102\2\u046b\u046d\3"+ - "\2\2\2\u046c\u0457\3\2\2\2\u046c\u045e\3\2\2\2\u046c\u0465\3\2\2\2\u046d"+ - "%\3\2\2\2\u046e\u046f\7\25\2\2\u046f\u0472\7\u010e\2\2\u0470\u0471\7\u02b3"+ - "\2\2\u0471\u0473\7\u00d5\2\2\u0472\u0470\3\2\2\2\u0472\u0473\3\2\2\2\u0473"+ - "\u0474\3\2\2\2\u0474\u0475\5\u0202\u0102\2\u0475\u0476\7\u01d6\2\2\u0476"+ - "\u0477\7\u0249\2\2\u0477\u0478\5\u0202\u0102\2\u0478\u04b5\3\2\2\2\u0479"+ - "\u047a\7\25\2\2\u047a\u047d\7\u010e\2\2\u047b\u047c\7\u02b3\2\2\u047c"+ - "\u047e\7\u00d5\2\2\u047d\u047b\3\2\2\2\u047d\u047e\3\2\2\2\u047e\u047f"+ - "\3\2\2\2\u047f\u0480\5\u0202\u0102\2\u0480\u0481\7\u0209\2\2\u0481\u0482"+ - "\7\u023c\2\2\u0482\u0483\5\u0202\u0102\2\u0483\u04b5\3\2\2\2\u0484\u0485"+ - "\7\25\2\2\u0485\u0486\7\u010e\2\2\u0486\u0487\5\u0202\u0102\2\u0487\u0488"+ - "\7\u00a9\2\2\u0488\u0489\7\u0182\2\2\u0489\u048a\7\u00d9\2\2\u048a\u048b"+ - "\5\u0202\u0102\2\u048b\u04b5\3\2\2\2\u048c\u048d\7\25\2\2\u048d\u0490"+ - "\7\u010e\2\2\u048e\u048f\7\u02b3\2\2\u048f\u0491\7\u00d5\2\2\u0490\u048e"+ - "\3\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\5\u0202\u0102"+ - "\2\u0493\u0494\7\u0209\2\2\u0494\u0495\7\u02ff\2\2\u0495\u0496\5\u01d4"+ - "\u00eb\2\u0496\u0497\7\u0300\2\2\u0497\u04b5\3\2\2\2\u0498\u0499\7\25"+ - "\2\2\u0499\u049c\7\u010e\2\2\u049a\u049b\7\u02b3\2\2\u049b\u049d\7\u00d5"+ - "\2\2\u049c\u049a\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2\2\u049e"+ - "\u049f\7\u01da\2\2\u049f\u04a0\7\u02ff\2\2\u04a0\u04a1\5\u01d0\u00e9\2"+ - "\u04a1\u04a2\7\u0300\2\2\u04a2\u04b5\3\2\2\2\u04a3\u04a4\7\25\2\2\u04a4"+ - "\u04a5\7\u010e\2\2\u04a5\u04a6\7\22\2\2\u04a6\u04a7\7\u010b\2\2\u04a7"+ - "\u04a8\7\u023c\2\2\u04a8\u04ac\5\u0202\u0102\2\u04a9\u04aa\7\u02cf\2\2"+ - "\u04aa\u04ab\78\2\2\u04ab\u04ad\5\u01d0\u00e9\2\u04ac\u04a9\3\2\2\2\u04ac"+ - "\u04ad\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae\u04af\7\u0209\2\2\u04af\u04b0"+ - "\7\u023c\2\2\u04b0\u04b2\5\u0202\u0102\2\u04b1\u04b3\7\u0173\2\2\u04b2"+ - "\u04b1\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b5\3\2\2\2\u04b4\u046e\3\2"+ - "\2\2\u04b4\u0479\3\2\2\2\u04b4\u0484\3\2\2\2\u04b4\u048c\3\2\2\2\u04b4"+ - "\u0498\3\2\2\2\u04b4\u04a3\3\2\2\2\u04b5\'\3\2\2\2\u04b6\u04b8\7\25\2"+ - "\2\u04b7\u04b9\7\u01b9\2\2\u04b8\u04b7\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9"+ - "\u04ba\3\2\2\2\u04ba\u04bb\7\u012d\2\2\u04bb\u04bc\5\u0202\u0102\2\u04bc"+ - "\u04bd\7\u01d6\2\2\u04bd\u04be\7\u0249\2\2\u04be\u04bf\5\u0202\u0102\2"+ - "\u04bf\u04ce\3\2\2\2\u04c0\u04c2\7\25\2\2\u04c1\u04c3\7\u01b9\2\2\u04c2"+ - "\u04c1\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4\u04c5\7\u012d"+ - "\2\2\u04c5\u04c6\5\u0202\u0102\2\u04c6\u04c7\7\u0195\2\2\u04c7\u04cb\7"+ - "\u0249\2\2\u04c8\u04cc\5\u0202\u0102\2\u04c9\u04cc\7\u008f\2\2\u04ca\u04cc"+ - "\7\u0208\2\2\u04cb\u04c8\3\2\2\2\u04cb\u04c9\3\2\2\2\u04cb\u04ca\3\2\2"+ - "\2\u04cc\u04ce\3\2\2\2\u04cd\u04b6\3\2\2\2\u04cd\u04c0\3\2\2\2\u04ce)"+ - "\3\2\2\2\u04cf\u04d0\7\25\2\2\u04d0\u04d1\7\u012e\2\2\u04d1\u04d2\7\u017a"+ - "\2\2\u04d2\u04d3\7\u0306\2\2\u04d3\u04d4\7\u0195\2\2\u04d4\u04d8\7\u0249"+ - "\2\2\u04d5\u04d9\5\u0202\u0102\2\u04d6\u04d9\7\u008f\2\2\u04d7\u04d9\7"+ - "\u0208\2\2\u04d8\u04d5\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8\u04d7\3\2\2\2"+ - "\u04d9+\3\2\2\2\u04da\u04db\5\u0206\u0104\2\u04db-\3\2\2\2\u04dc\u04dd"+ - "\5\u0206\u0104\2\u04dd/\3\2\2\2\u04de\u04df\7\25\2\2\u04df\u04e0\7\u0186"+ - "\2\2\u04e0\u04e1\7S\2\2\u04e1\u04e2\5\u0202\u0102\2\u04e2\u04e3\7\u0273"+ - "\2\2\u04e3\u04e4\5\u01dc\u00ef\2\u04e4\u04e5\7\u01d6\2\2\u04e5\u04e6\7"+ - "\u0249\2\2\u04e6\u04e7\5\u0202\u0102\2\u04e7\u0500\3\2\2\2\u04e8\u04e9"+ - "\7\25\2\2\u04e9\u04ea\7\u0186\2\2\u04ea\u04eb\7S\2\2\u04eb\u04ec\5\u0202"+ - "\u0102\2\u04ec\u04ed\7\u0273\2\2\u04ed\u04ee\5\u01dc\u00ef\2\u04ee\u04ef"+ - "\7\u0195\2\2\u04ef\u04f3\7\u0249\2\2\u04f0\u04f4\5\u0202\u0102\2\u04f1"+ - "\u04f4\7\u008f\2\2\u04f2\u04f4\7\u0208\2\2\u04f3\u04f0\3\2\2\2\u04f3\u04f1"+ - "\3\2\2\2\u04f3\u04f2\3\2\2\2\u04f4\u0500\3\2\2\2\u04f5\u04f6\7\25\2\2"+ - "\u04f6\u04f7\7\u0186\2\2\u04f7\u04f8\7S\2\2\u04f8\u04f9\5\u0202\u0102"+ - "\2\u04f9\u04fa\7\u0273\2\2\u04fa\u04fb\5\u01dc\u00ef\2\u04fb\u04fc\7\u0209"+ - "\2\2\u04fc\u04fd\7\u01f5\2\2\u04fd\u04fe\5\u0202\u0102\2\u04fe\u0500\3"+ - "\2\2\2\u04ff\u04de\3\2\2\2\u04ff\u04e8\3\2\2\2\u04ff\u04f5\3\2\2\2\u0500"+ - "\61\3\2\2\2\u0501\u0502\5\u0206\u0104\2\u0502\63\3\2\2\2\u0503\u0504\7"+ - "\25\2\2\u0504\u0505\7\u02ce\2\2\u0505\u0506\5\u0202\u0102\2\u0506\u0507"+ - "\7\u0182\2\2\u0507\u0508\5\u0202\u0102\2\u0508\u0509\7\u01d6\2\2\u0509"+ - "\u050a\7\u0249\2\2\u050a\u050b\5\u0202\u0102\2\u050b\u051f\3\2\2\2\u050c"+ - "\u050d\7\25\2\2\u050d\u050e\7\u02ce\2\2\u050e\u050f\5\u0202\u0102\2\u050f"+ - "\u0510\7\u0182\2\2\u0510\u0513\5\u0202\u0102\2\u0511\u0512\7\u0249\2\2"+ - "\u0512\u0514\5\u01fc\u00ff\2\u0513\u0511\3\2\2\2\u0513\u0514\3\2\2\2\u0514"+ - "\u0517\3\2\2\2\u0515\u0516\7\u0273\2\2\u0516\u0518\5\u01ec\u00f7\2\u0517"+ - "\u0515\3\2\2\2\u0517\u0518\3\2\2\2\u0518\u051c\3\2\2\2\u0519\u051a\7\u0288"+ - "\2\2\u051a\u051b\7P\2\2\u051b\u051d\5\u01ec\u00f7\2\u051c\u0519\3\2\2"+ - "\2\u051c\u051d\3\2\2\2\u051d\u051f\3\2\2\2\u051e\u0503\3\2\2\2\u051e\u050c"+ - "\3\2\2\2\u051f\65\3\2\2\2\u0520\u0521\7\25\2\2\u0521\u0522\7\u01bc\2\2"+ - "\u0522\u0523\5\u0202\u0102\2\u0523\u0524\7\r\2\2\u0524\u0526\7\u0239\2"+ - "\2\u0525\u0527\7\u0183\2\2\u0526\u0525\3\2\2\2\u0526\u0527\3\2\2\2\u0527"+ - "\u0528\3\2\2\2\u0528\u0529\5\u01d0\u00e9\2\u0529\u0555\3\2\2\2\u052a\u052b"+ - "\7\25\2\2\u052b\u052c\7\u01bc\2\2\u052c\u052d\5\u0202\u0102\2\u052d\u052e"+ - "\7\u0209\2\2\u052e\u0530\7\u0239\2\2\u052f\u0531\7\u0183\2\2\u0530\u052f"+ - "\3\2\2\2\u0530\u0531\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0533\5\u01d0\u00e9"+ - "\2\u0533\u0555\3\2\2\2\u0534\u0535\7\25\2\2\u0535\u0536\7\u01bc\2\2\u0536"+ - "\u0537\5\u0202\u0102\2\u0537\u0538\7\u00be\2\2\u0538\u053a\7\u0239\2\2"+ - "\u0539\u053b\7\u0183\2\2\u053a\u0539\3\2\2\2\u053a\u053b\3\2\2\2\u053b"+ - "\u053c\3\2\2\2\u053c\u053d\5\u01d0\u00e9\2\u053d\u0555\3\2\2\2\u053e\u053f"+ - "\7\25\2\2\u053f\u0540\7\u01bc\2\2\u0540\u0541\5\u0202\u0102\2\u0541\u0542"+ - "\7\u0209\2\2\u0542\u0543\7\u02ff\2\2\u0543\u0544\5\u01d4\u00eb\2\u0544"+ - "\u0545\7\u0300\2\2\u0545\u0555\3\2\2\2\u0546\u0547\7\25\2\2\u0547\u0548"+ - "\7\u01bc\2\2\u0548\u0549\5\u0202\u0102\2\u0549\u054a\7\u0195\2\2\u054a"+ - "\u054b\7\u0249\2\2\u054b\u054c\5\u01fa\u00fe\2\u054c\u0555\3\2\2\2\u054d"+ - "\u054e\7\25\2\2\u054e\u054f\7\u01bc\2\2\u054f\u0550\5\u0202\u0102\2\u0550"+ - "\u0551\7\u01d6\2\2\u0551\u0552\7\u0249\2\2\u0552\u0553\5\u01cc\u00e7\2"+ - "\u0553\u0555\3\2\2\2\u0554\u0520\3\2\2\2\u0554\u052a\3\2\2\2\u0554\u0534"+ - "\3\2\2\2\u0554\u053e\3\2\2\2\u0554\u0546\3\2\2\2\u0554\u054d\3\2\2\2\u0555"+ - "\67\3\2\2\2\u0556\u0570\7\u0291\2\2\u0557\u0570\7\u0292\2\2\u0558\u0570"+ - "\7\u0081\2\2\u0559\u0570\7\u016a\2\2\u055a\u0570\7\u0293\2\2\u055b\u0570"+ - "\7\u0294\2\2\u055c\u0570\7\u0295\2\2\u055d\u0570\7\u0296\2\2\u055e\u0570"+ - "\7\u0297\2\2\u055f\u0570\7\u0298\2\2\u0560\u0570\7\u0299\2\2\u0561\u0570"+ - "\7\u029a\2\2\u0562\u0570\7\u029b\2\2\u0563\u0570\7\u029c\2\2\u0564\u0565"+ - "\7m\2\2\u0565\u0566\7\u0138\2\2\u0566\u0570\7\u011d\2\2\u0567\u0569\7"+ - "\u00c7\2\2\u0568\u0567\3\2\2\2\u0568\u0569\3\2\2\2\u0569\u056a\3\2\2\2"+ - "\u056a\u056b\7\u01a3\2\2\u056b\u0570\7\u0309\2\2\u056c\u056d\7\u0275\2"+ - "\2\u056d\u056e\7\u026a\2\2\u056e\u0570\7\u0309\2\2\u056f\u0556\3\2\2\2"+ - "\u056f\u0557\3\2\2\2\u056f\u0558\3\2\2\2\u056f\u0559\3\2\2\2\u056f\u055a"+ - "\3\2\2\2\u056f\u055b\3\2\2\2\u056f\u055c\3\2\2\2\u056f\u055d\3\2\2\2\u056f"+ - "\u055e\3\2\2\2\u056f\u055f\3\2\2\2\u056f\u0560\3\2\2\2\u056f\u0561\3\2"+ - "\2\2\u056f\u0562\3\2\2\2\u056f\u0563\3\2\2\2\u056f\u0564\3\2\2\2\u056f"+ - "\u0568\3\2\2\2\u056f\u056c\3\2\2\2\u05709\3\2\2\2\u0571\u0572\7\25\2\2"+ - "\u0572\u0573\7\u01e7\2\2\u0573\u0575\5\u01fa\u00fe\2\u0574\u0576\7\u0288"+ - "\2\2\u0575\u0574\3\2\2\2\u0575\u0576\3\2\2\2\u0576\u0578\3\2\2\2\u0577"+ - "\u0579\58\35\2\u0578\u0577\3\2\2\2\u0579\u057a\3\2\2\2\u057a\u0578\3\2"+ - "\2\2\u057a\u057b\3\2\2\2\u057b\u05c0\3\2\2\2\u057c\u057d\7\25\2\2\u057d"+ - "\u057e\7\u01e7\2\2\u057e\u057f\5\u01cc\u00e7\2\u057f\u0580\7\u01d6\2\2"+ - "\u0580\u0581\7\u0249\2\2\u0581\u0582\5\u01cc\u00e7\2\u0582\u05c0\3\2\2"+ - "\2\u0583\u0584\7\25\2\2\u0584\u0587\7\u01e7\2\2\u0585\u0588\5\u01fa\u00fe"+ - "\2\u0586\u0588\7\22\2\2\u0587\u0585\3\2\2\2\u0587\u0586\3\2\2\2\u0588"+ - "\u058c\3\2\2\2\u0589\u058a\7\u010b\2\2\u058a\u058b\7\u0094\2\2\u058b\u058d"+ - "\5\u01cc\u00e7\2\u058c\u0589\3\2\2\2\u058c\u058d\3\2\2\2\u058d\u058e\3"+ - "\2\2\2\u058e\u058f\7\u0209\2\2\u058f\u0590\5\u0202\u0102\2\u0590\u0593"+ - "\t\7\2\2\u0591\u0594\5\u01fe\u0100\2\u0592\u0594\7\u009d\2\2\u0593\u0591"+ - "\3\2\2\2\u0593\u0592\3\2\2\2\u0594\u05c0\3\2\2\2\u0595\u0596\7\25\2\2"+ - "\u0596\u0599\7\u01e7\2\2\u0597\u059a\5\u01fa\u00fe\2\u0598\u059a\7\22"+ - "\2\2\u0599\u0597\3\2\2\2\u0599\u0598\3\2\2\2\u059a\u059e\3\2\2\2\u059b"+ - "\u059c\7\u010b\2\2\u059c\u059d\7\u0094\2\2\u059d\u059f\5\u01cc\u00e7\2"+ - "\u059e\u059b\3\2\2\2\u059e\u059f\3\2\2\2\u059f\u05a0\3\2\2\2\u05a0\u05a1"+ - "\7\u0209\2\2\u05a1\u05a2\5\u0202\u0102\2\u05a2\u05a3\7\u00ee\2\2\u05a3"+ - "\u05a4\7\u0087\2\2\u05a4\u05c0\3\2\2\2\u05a5\u05a6\7\25\2\2\u05a6\u05a9"+ - "\7\u01e7\2\2\u05a7\u05aa\5\u01fa\u00fe\2\u05a8\u05aa\7\22\2\2\u05a9\u05a7"+ - "\3\2\2\2\u05a9\u05a8\3\2\2\2\u05aa\u05ae\3\2\2\2\u05ab\u05ac\7\u010b\2"+ - "\2\u05ac\u05ad\7\u0094\2\2\u05ad\u05af\5\u01cc\u00e7\2\u05ae\u05ab\3\2"+ - "\2\2\u05ae\u05af\3\2\2\2\u05af\u05b0\3\2\2\2\u05b0\u05b1\7\u01da\2\2\u05b1"+ - "\u05c0\5\u0202\u0102\2\u05b2\u05b3\7\25\2\2\u05b3\u05b6\7\u01e7\2\2\u05b4"+ - "\u05b7\5\u01fa\u00fe\2\u05b5\u05b7\7\22\2\2\u05b6\u05b4\3\2\2\2\u05b6"+ - "\u05b5\3\2\2\2\u05b7\u05bb\3\2\2\2\u05b8\u05b9\7\u010b\2\2\u05b9\u05ba"+ - "\7\u0094\2\2\u05ba\u05bc\5\u01cc\u00e7\2\u05bb\u05b8\3\2\2\2\u05bb\u05bc"+ - "\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05be\7\u01da\2\2\u05be\u05c0\7\22"+ - "\2\2\u05bf\u0571\3\2\2\2\u05bf\u057c\3\2\2\2\u05bf\u0583\3\2\2\2\u05bf"+ - "\u0595\3\2\2\2\u05bf\u05a5\3\2\2\2\u05bf\u05b2\3\2\2\2\u05c0;\3\2\2\2"+ - "\u05c1\u05c2\7\25\2\2\u05c2\u05c3\7\u01f2\2\2\u05c3\u05c4\5\u01cc\u00e7"+ - "\2\u05c4\u05c5\7\u0182\2\2\u05c5\u05c6\5\u0202\u0102\2\u05c6\u05c7\7\u01d6"+ - "\2\2\u05c7\u05c8\7\u0249\2\2\u05c8\u05c9\5\u01cc\u00e7\2\u05c9=\3\2\2"+ - "\2\u05ca\u05cb\7\25\2\2\u05cb\u05cc\7\u01f5\2\2\u05cc\u05cd\5\u0202\u0102"+ - "\2\u05cd\u05ce\7\u01d6\2\2\u05ce\u05cf\7\u0249\2\2\u05cf\u05d0\5\u0202"+ - "\u0102\2\u05d0\u05dc\3\2\2\2\u05d1\u05d2\7\25\2\2\u05d2\u05d3\7\u01f5"+ - "\2\2\u05d3\u05d4\5\u0202\u0102\2\u05d4\u05d5\7\u0195\2\2\u05d5\u05d9\7"+ - "\u0249\2\2\u05d6\u05da\5\u0202\u0102\2\u05d7\u05da\7\u008f\2\2\u05d8\u05da"+ - "\7\u0208\2\2\u05d9\u05d6\3\2\2\2\u05d9\u05d7\3\2\2\2\u05d9\u05d8\3\2\2"+ - "\2\u05da\u05dc\3\2\2\2\u05db\u05ca\3\2\2\2\u05db\u05d1\3\2\2\2\u05dc?"+ - "\3\2\2\2\u05dd\u05de\7\25\2\2\u05de\u05e1\7\u0203\2"; + "\u0289\u028c\u028e\u028e\u0290\u0290\u02b8\u02b8\u02f0\u02f0\2\u19b8\2"+ + "\u0214\3\2\2\2\4\u0255\3\2\2\2\6\u0257\3\2\2\2\b\u0281\3\2\2\2\n\u02a1"+ + "\3\2\2\2\f\u02be\3\2\2\2\16\u02d5\3\2\2\2\20\u02d7\3\2\2\2\22\u02d9\3"+ + "\2\2\2\24\u0327\3\2\2\2\26\u034a\3\2\2\2\30\u035b\3\2\2\2\32\u035d\3\2"+ + "\2\2\34\u040b\3\2\2\2\36\u040d\3\2\2\2 \u0453\3\2\2\2\"\u0455\3\2\2\2"+ + "$\u046c\3\2\2\2&\u04b4\3\2\2\2(\u04cd\3\2\2\2*\u04cf\3\2\2\2,\u04da\3"+ + "\2\2\2.\u04dc\3\2\2\2\60\u04ff\3\2\2\2\62\u0501\3\2\2\2\64\u051e\3\2\2"+ + "\2\66\u0554\3\2\2\28\u056f\3\2\2\2:\u05bf\3\2\2\2<\u05c1\3\2\2\2>\u05db"+ + "\3\2\2\2@\u05dd\3\2\2\2B\u05e6\3\2\2\2D\u0617\3\2\2\2F\u0631\3\2\2\2H"+ + "\u0672\3\2\2\2J\u0682\3\2\2\2L\u0684\3\2\2\2N\u06a7\3\2\2\2P\u0704\3\2"+ + "\2\2R\u0706\3\2\2\2T\u0708\3\2\2\2V\u071c\3\2\2\2X\u0731\3\2\2\2Z\u0733"+ + "\3\2\2\2\\\u0735\3\2\2\2^\u0737\3\2\2\2`\u0743\3\2\2\2b\u0745\3\2\2\2"+ + "d\u0750\3\2\2\2f\u0752\3\2\2\2h\u0754\3\2\2\2j\u0756\3\2\2\2l\u0758\3"+ + "\2\2\2n\u075a\3\2\2\2p\u0783\3\2\2\2r\u0785\3\2\2\2t\u08a8\3\2\2\2v\u08aa"+ + "\3\2\2\2x\u08d8\3\2\2\2z\u08da\3\2\2\2|\u08f9\3\2\2\2~\u08fb\3\2\2\2\u0080"+ + "\u0908\3\2\2\2\u0082\u093e\3\2\2\2\u0084\u094a\3\2\2\2\u0086\u095b\3\2"+ + "\2\2\u0088\u096e\3\2\2\2\u008a\u097e\3\2\2\2\u008c\u0987\3\2\2\2\u008e"+ + "\u09a2\3\2\2\2\u0090\u09c7\3\2\2\2\u0092\u09cf\3\2\2\2\u0094\u09fd\3\2"+ + "\2\2\u0096\u0a3c\3\2\2\2\u0098\u0a3e\3\2\2\2\u009a\u0a5d\3\2\2\2\u009c"+ + "\u0ab0\3\2\2\2\u009e\u0ab2\3\2\2\2\u00a0\u0acb\3\2\2\2\u00a2\u0ad2\3\2"+ + "\2\2\u00a4\u0aee\3\2\2\2\u00a6\u0b21\3\2\2\2\u00a8\u0b23\3\2\2\2\u00aa"+ + "\u0b5d\3\2\2\2\u00ac\u0b5f\3\2\2\2\u00ae\u0b99\3\2\2\2\u00b0\u0b9b\3\2"+ + "\2\2\u00b2\u0b9d\3\2\2\2\u00b4\u0b9f\3\2\2\2\u00b6\u0ba1\3\2\2\2\u00b8"+ + "\u0ba3\3\2\2\2\u00ba\u0ba5\3\2\2\2\u00bc\u0ba7\3\2\2\2\u00be\u0ba9\3\2"+ + "\2\2\u00c0\u0bab\3\2\2\2\u00c2\u0bad\3\2\2\2\u00c4\u0baf\3\2\2\2\u00c6"+ + "\u0bb1\3\2\2\2\u00c8\u0bb3\3\2\2\2\u00ca\u0bb5\3\2\2\2\u00cc\u0bb7\3\2"+ + "\2\2\u00ce\u0bde\3\2\2\2\u00d0\u0be0\3\2\2\2\u00d2\u0be3\3\2\2\2\u00d4"+ + "\u0c02\3\2\2\2\u00d6\u0c2e\3\2\2\2\u00d8\u0c30\3\2\2\2\u00da\u0c3b\3\2"+ + "\2\2\u00dc\u0c46\3\2\2\2\u00de\u0c54\3\2\2\2\u00e0\u0c5e\3\2\2\2\u00e2"+ + "\u0c68\3\2\2\2\u00e4\u0c70\3\2\2\2\u00e6\u0c7a\3\2\2\2\u00e8\u0c85\3\2"+ + "\2\2\u00ea\u0c8f\3\2\2\2\u00ec\u0c9b\3\2\2\2\u00ee\u0ca6\3\2\2\2\u00f0"+ + "\u0cb0\3\2\2\2\u00f2\u0cb8\3\2\2\2\u00f4\u0cc5\3\2\2\2\u00f6\u0cd2\3\2"+ + "\2\2\u00f8\u0cdd\3\2\2\2\u00fa\u0cdf\3\2\2\2\u00fc\u0cec\3\2\2\2\u00fe"+ + "\u0cf9\3\2\2\2\u0100\u0d00\3\2\2\2\u0102\u0d0c\3\2\2\2\u0104\u0d16\3\2"+ + "\2\2\u0106\u0d1e\3\2\2\2\u0108\u0d2a\3\2\2\2\u010a\u0d34\3\2\2\2\u010c"+ + "\u0d3e\3\2\2\2\u010e\u0d48\3\2\2\2\u0110\u0d50\3\2\2\2\u0112\u0d5a\3\2"+ + "\2\2\u0114\u0d64\3\2\2\2\u0116\u0d6c\3\2\2\2\u0118\u0d78\3\2\2\2\u011a"+ + "\u0d84\3\2\2\2\u011c\u0d90\3\2\2\2\u011e\u0d9c\3\2\2\2\u0120\u0da8\3\2"+ + "\2\2\u0122\u0db4\3\2\2\2\u0124\u0dbe\3\2\2\2\u0126\u0dc6\3\2\2\2\u0128"+ + "\u0dd8\3\2\2\2\u012a\u0de2\3\2\2\2\u012c\u0dfa\3\2\2\2\u012e\u0e07\3\2"+ + "\2\2\u0130\u0e09\3\2\2\2\u0132\u0e0b\3\2\2\2\u0134\u0e0e\3\2\2\2\u0136"+ + "\u0e4a\3\2\2\2\u0138\u0e4d\3\2\2\2\u013a\u0e4f\3\2\2\2\u013c\u0e73\3\2"+ + "\2\2\u013e\u0e8f\3\2\2\2\u0140\u0e95\3\2\2\2\u0142\u0ea5\3\2\2\2\u0144"+ + "\u0ea9\3\2\2\2\u0146\u0ec2\3\2\2\2\u0148\u0ec4\3\2\2\2\u014a\u0ecd\3\2"+ + "\2\2\u014c\u0ed3\3\2\2\2\u014e\u0ed8\3\2\2\2\u0150\u0eda\3\2\2\2\u0152"+ + "\u0ede\3\2\2\2\u0154\u0ee2\3\2\2\2\u0156\u0eec\3\2\2\2\u0158\u0eef\3\2"+ + "\2\2\u015a\u0f32\3\2\2\2\u015c\u0f6f\3\2\2\2\u015e\u0fb3\3\2\2\2\u0160"+ + "\u0fbf\3\2\2\2\u0162\u0fe6\3\2\2\2\u0164\u0fe8\3\2\2\2\u0166\u0ffb\3\2"+ + "\2\2\u0168\u0ffd\3\2\2\2\u016a\u1012\3\2\2\2\u016c\u1014\3\2\2\2\u016e"+ + "\u1029\3\2\2\2\u0170\u102b\3\2\2\2\u0172\u1032\3\2\2\2\u0174\u104b\3\2"+ + "\2\2\u0176\u1051\3\2\2\2\u0178\u1070\3\2\2\2\u017a\u1072\3\2\2\2\u017c"+ + "\u10a9\3\2\2\2\u017e\u10ac\3\2\2\2\u0180\u10d4\3\2\2\2\u0182\u10d8\3\2"+ + "\2\2\u0184\u10e1\3\2\2\2\u0186\u10e4\3\2\2\2\u0188\u1107\3\2\2\2\u018a"+ + "\u1109\3\2\2\2\u018c\u1114\3\2\2\2\u018e\u1125\3\2\2\2\u0190\u113d\3\2"+ + "\2\2\u0192\u1149\3\2\2\2\u0194\u114b\3\2\2\2\u0196\u114d\3\2\2\2\u0198"+ + "\u1157\3\2\2\2\u019a\u1165\3\2\2\2\u019c\u1167\3\2\2\2\u019e\u116e\3\2"+ + "\2\2\u01a0\u1185\3\2\2\2\u01a2\u1191\3\2\2\2\u01a4\u11a6\3\2\2\2\u01a6"+ + "\u11ac\3\2\2\2\u01a8\u11b1\3\2\2\2\u01aa\u11b9\3\2\2\2\u01ac\u11d6\3\2"+ + "\2\2\u01ae\u11e7\3\2\2\2\u01b0\u11e9\3\2\2\2\u01b2\u1236\3\2\2\2\u01b4"+ + "\u12a3\3\2\2\2\u01b6\u12d1\3\2\2\2\u01b8\u12d3\3\2\2\2\u01ba\u12df\3\2"+ + "\2\2\u01bc\u12f3\3\2\2\2\u01be\u12f5\3\2\2\2\u01c0\u12fd\3\2\2\2\u01c2"+ + "\u1304\3\2\2\2\u01c4\u139c\3\2\2\2\u01c6\u139e\3\2\2\2\u01c8\u13a4\3\2"+ + "\2\2\u01ca\u13e5\3\2\2\2\u01cc\u13e9\3\2\2\2\u01ce\u13eb\3\2\2\2\u01d0"+ + "\u13f3\3\2\2\2\u01d2\u13fb\3\2\2\2\u01d4\u1400\3\2\2\2\u01d6\u1408\3\2"+ + "\2\2\u01d8\u140c\3\2\2\2\u01da\u1418\3\2\2\2\u01dc\u1422\3\2\2\2\u01de"+ + "\u1424\3\2\2\2\u01e0\u144a\3\2\2\2\u01e2\u144c\3\2\2\2\u01e4\u14c4\3\2"+ + "\2\2\u01e6\u14f0\3\2\2\2\u01e8\u1507\3\2\2\2\u01ea\u1517\3\2\2\2\u01ec"+ + "\u1525\3\2\2\2\u01ee\u154c\3\2\2\2\u01f0\u154e\3\2\2\2\u01f2\u1552\3\2"+ + "\2\2\u01f4\u155b\3\2\2\2\u01f6\u1568\3\2\2\2\u01f8\u1576\3\2\2\2\u01fa"+ + "\u15c9\3\2\2\2\u01fc\u15cb\3\2\2\2\u01fe\u15de\3\2\2\2\u0200\u15e0\3\2"+ + "\2\2\u0202\u15e8\3\2\2\2\u0204\u15f2\3\2\2\2\u0206\u15f4\3\2\2\2\u0208"+ + "\u15f6\3\2\2\2\u020a\u15f8\3\2\2\2\u020c\u15fa\3\2\2\2\u020e\u15fc\3\2"+ + "\2\2\u0210\u15fe\3\2\2\2\u0212\u1600\3\2\2\2\u0214\u021d\5\4\3\2\u0215"+ + "\u0216\7\u0343\2\2\u0216\u0218\5\4\3\2\u0217\u0215\3\2\2\2\u0218\u0219"+ + "\3\2\2\2\u0219\u0217\3\2\2\2\u0219\u021a\3\2\2\2\u021a\u021b\3\2\2\2\u021b"+ + "\u021c\7\u0343\2\2\u021c\u021e\3\2\2\2\u021d\u0217\3\2\2\2\u021d\u021e"+ + "\3\2\2\2\u021e\u021f\3\2\2\2\u021f\u0220\7\2\2\3\u0220\3\3\2\2\2\u0221"+ + "\u0256\5\6\4\2\u0222\u0256\5\b\5\2\u0223\u0256\5b\62\2\u0224\u0256\5p"+ + "9\2\u0225\u0256\5d\63\2\u0226\u0256\5f\64\2\u0227\u0256\5h\65\2\u0228"+ + "\u0256\5j\66\2\u0229\u0256\5l\67\2\u022a\u0256\5n8\2\u022b\u0256\5\u00ce"+ + "h\2\u022c\u0256\5\u00d0i\2\u022d\u0256\5\u00d2j\2\u022e\u0256\5\u00d4"+ + "k\2\u022f\u0256\5\u00d6l\2\u0230\u0256\5\u012a\u0096\2\u0231\u0256\5\u012c"+ + "\u0097\2\u0232\u0256\5\u012e\u0098\2\u0233\u0256\5\u0130\u0099\2\u0234"+ + "\u0256\5\u0132\u009a\2\u0235\u0256\5\u0134\u009b\2\u0236\u0256\5\u0136"+ + "\u009c\2\u0237\u0256\5\u0138\u009d\2\u0238\u0256\5\u013a\u009e\2\u0239"+ + "\u0256\5\u013c\u009f\2\u023a\u0256\5\u013e\u00a0\2\u023b\u0256\5\u0140"+ + "\u00a1\2\u023c\u0256\5\u0142\u00a2\2\u023d\u0256\5\u0144\u00a3\2\u023e"+ + "\u0256\5\u0146\u00a4\2\u023f\u0256\5\u0148\u00a5\2\u0240\u0256\5\u014a"+ + "\u00a6\2\u0241\u0256\5\u014c\u00a7\2\u0242\u0256\5\u014e\u00a8\2\u0243"+ + "\u0256\5\u0150\u00a9\2\u0244\u0256\5\u0152\u00aa\2\u0245\u0256\5\u0154"+ + "\u00ab\2\u0246\u0256\5\u0156\u00ac\2\u0247\u0256\5\u0158\u00ad\2\u0248"+ + "\u0256\5\u015a\u00ae\2\u0249\u0256\5\u015c\u00af\2\u024a\u0256\5\u0162"+ + "\u00b2\2\u024b\u0256\5\u0164\u00b3\2\u024c\u0256\5\u0166\u00b4\2\u024d"+ + "\u0256\5\u0168\u00b5\2\u024e\u0256\5\u016e\u00b8\2\u024f\u0256\5\u0170"+ + "\u00b9\2\u0250\u0256\5\u0172\u00ba\2\u0251\u0256\5\u0174\u00bb\2\u0252"+ + "\u0256\5\u0176\u00bc\2\u0253\u0256\5\u017c\u00bf\2\u0254\u0256\5\u017e"+ + "\u00c0\2\u0255\u0221\3\2\2\2\u0255\u0222\3\2\2\2\u0255\u0223\3\2\2\2\u0255"+ + "\u0224\3\2\2\2\u0255\u0225\3\2\2\2\u0255\u0226\3\2\2\2\u0255\u0227\3\2"+ + "\2\2\u0255\u0228\3\2\2\2\u0255\u0229\3\2\2\2\u0255\u022a\3\2\2\2\u0255"+ + "\u022b\3\2\2\2\u0255\u022c\3\2\2\2\u0255\u022d\3\2\2\2\u0255\u022e\3\2"+ + "\2\2\u0255\u022f\3\2\2\2\u0255\u0230\3\2\2\2\u0255\u0231\3\2\2\2\u0255"+ + "\u0232\3\2\2\2\u0255\u0233\3\2\2\2\u0255\u0234\3\2\2\2\u0255\u0235\3\2"+ + "\2\2\u0255\u0236\3\2\2\2\u0255\u0237\3\2\2\2\u0255\u0238\3\2\2\2\u0255"+ + "\u0239\3\2\2\2\u0255\u023a\3\2\2\2\u0255\u023b\3\2\2\2\u0255\u023c\3\2"+ + "\2\2\u0255\u023d\3\2\2\2\u0255\u023e\3\2\2\2\u0255\u023f\3\2\2\2\u0255"+ + "\u0240\3\2\2\2\u0255\u0241\3\2\2\2\u0255\u0242\3\2\2\2\u0255\u0243\3\2"+ + "\2\2\u0255\u0244\3\2\2\2\u0255\u0245\3\2\2\2\u0255\u0246\3\2\2\2\u0255"+ + "\u0247\3\2\2\2\u0255\u0248\3\2\2\2\u0255\u0249\3\2\2\2\u0255\u024a\3\2"+ + "\2\2\u0255\u024b\3\2\2\2\u0255\u024c\3\2\2\2\u0255\u024d\3\2\2\2\u0255"+ + "\u024e\3\2\2\2\u0255\u024f\3\2\2\2\u0255\u0250\3\2\2\2\u0255\u0251\3\2"+ + "\2\2\u0255\u0252\3\2\2\2\u0255\u0253\3\2\2\2\u0255\u0254\3\2\2\2\u0256"+ + "\5\3\2\2\2\u0257\u0258\5\u0202\u0102\2\u0258\7\3\2\2\2\u0259\u0282\5\n"+ + "\6\2\u025a\u0282\5\f\7\2\u025b\u0282\5\16\b\2\u025c\u0282\5\20\t\2\u025d"+ + "\u0282\5\22\n\2\u025e\u0282\5\24\13\2\u025f\u0282\5\26\f\2\u0260\u0282"+ + "\5\30\r\2\u0261\u0282\5\32\16\2\u0262\u0282\5 \21\2\u0263\u0282\5\"\22"+ + "\2\u0264\u0282\5$\23\2\u0265\u0282\5&\24\2\u0266\u0282\5(\25\2\u0267\u0282"+ + "\5*\26\2\u0268\u0282\5,\27\2\u0269\u0282\5.\30\2\u026a\u0282\5\60\31\2"+ + "\u026b\u0282\5\62\32\2\u026c\u0282\5\64\33\2\u026d\u0282\5\66\34\2\u026e"+ + "\u0282\5:\36\2\u026f\u0282\5<\37\2\u0270\u0282\5> \2\u0271\u0282\5@!\2"+ + "\u0272\u0282\5D#\2\u0273\u0282\5F$\2\u0274\u0282\5H%\2\u0275\u0282\5J"+ + "&\2\u0276\u0282\5L\'\2\u0277\u0282\5N(\2\u0278\u0282\5P)\2\u0279\u0282"+ + "\5R*\2\u027a\u0282\5T+\2\u027b\u0282\5V,\2\u027c\u0282\5X-\2\u027d\u0282"+ + "\5Z.\2\u027e\u0282\5\\/\2\u027f\u0282\5^\60\2\u0280\u0282\5`\61\2\u0281"+ + "\u0259\3\2\2\2\u0281\u025a\3\2\2\2\u0281\u025b\3\2\2\2\u0281\u025c\3\2"+ + "\2\2\u0281\u025d\3\2\2\2\u0281\u025e\3\2\2\2\u0281\u025f\3\2\2\2\u0281"+ + "\u0260\3\2\2\2\u0281\u0261\3\2\2\2\u0281\u0262\3\2\2\2\u0281\u0263\3\2"+ + "\2\2\u0281\u0264\3\2\2\2\u0281\u0265\3\2\2\2\u0281\u0266\3\2\2\2\u0281"+ + "\u0267\3\2\2\2\u0281\u0268\3\2\2\2\u0281\u0269\3\2\2\2\u0281\u026a\3\2"+ + "\2\2\u0281\u026b\3\2\2\2\u0281\u026c\3\2\2\2\u0281\u026d\3\2\2\2\u0281"+ + "\u026e\3\2\2\2\u0281\u026f\3\2\2\2\u0281\u0270\3\2\2\2\u0281\u0271\3\2"+ + "\2\2\u0281\u0272\3\2\2\2\u0281\u0273\3\2\2\2\u0281\u0274\3\2\2\2\u0281"+ + "\u0275\3\2\2\2\u0281\u0276\3\2\2\2\u0281\u0277\3\2\2\2\u0281\u0278\3\2"+ + "\2\2\u0281\u0279\3\2\2\2\u0281\u027a\3\2\2\2\u0281\u027b\3\2\2\2\u0281"+ + "\u027c\3\2\2\2\u0281\u027d\3\2\2\2\u0281\u027e\3\2\2\2\u0281\u027f\3\2"+ + "\2\2\u0281\u0280\3\2\2\2\u0282\t\3\2\2\2\u0283\u0284\7\25\2\2\u0284\u0285"+ + "\7\20\2\2\u0285\u0286\5\u0202\u0102\2\u0286\u0287\7\u02ff\2\2\u0287\u0288"+ + "\5\u01ee\u00f8\2\u0288\u0289\7\u0300\2\2\u0289\u028a\7\u01d6\2\2\u028a"+ + "\u028b\7\u0249\2\2\u028b\u028c\5\u0202\u0102\2\u028c\u02a2\3\2\2\2\u028d"+ + "\u028e\7\25\2\2\u028e\u028f\7\20\2\2\u028f\u0290\5\u0202\u0102\2\u0290"+ + "\u0291\7\u02ff\2\2\u0291\u0292\5\u01ee\u00f8\2\u0292\u0293\7\u0300\2\2"+ + "\u0293\u0294\7\u0195\2\2\u0294\u0295\7\u0249\2\2\u0295\u0296\5\u01fa\u00fe"+ + "\2\u0296\u02a2\3\2\2\2\u0297\u0298\7\25\2\2\u0298\u0299\7\20\2\2\u0299"+ + "\u029a\5\u0202\u0102\2\u029a\u029b\7\u02ff\2\2\u029b\u029c\5\u01ee\u00f8"+ + "\2\u029c\u029d\7\u0300\2\2\u029d\u029e\7\u0209\2\2\u029e\u029f\7\u01f5"+ + "\2\2\u029f\u02a0\5\u0202\u0102\2\u02a0\u02a2\3\2\2\2\u02a1\u0283\3\2\2"+ + "\2\u02a1\u028d\3\2\2\2\u02a1\u0297\3\2\2\2\u02a2\13\3\2\2\2\u02a3\u02a4"+ + "\7\25\2\2\u02a4\u02a5\7[\2\2\u02a5\u02a6\5\u01cc\u00e7\2\u02a6\u02a7\7"+ + "\u01c9\2\2\u02a7\u02a8\7\u02b8\2\2\u02a8\u02bf\3\2\2\2\u02a9\u02aa\7\25"+ + "\2\2\u02aa\u02ab\7[\2\2\u02ab\u02ac\5\u01cc\u00e7\2\u02ac\u02ad\7\u01d6"+ + "\2\2\u02ad\u02ae\7\u0249\2\2\u02ae\u02af\5\u0202\u0102\2\u02af\u02bf\3"+ + "\2\2\2\u02b0\u02b1\7\25\2\2\u02b1\u02b2\7[\2\2\u02b2\u02b3\5\u01cc\u00e7"+ + "\2\u02b3\u02b4\7\u0195\2\2\u02b4\u02b5\7\u0249\2\2\u02b5\u02b6\5\u01fa"+ + "\u00fe\2\u02b6\u02bf\3\2\2\2\u02b7\u02b8\7\25\2\2\u02b8\u02b9\7[\2\2\u02b9"+ + "\u02ba\5\u01cc\u00e7\2\u02ba\u02bb\7\u0209\2\2\u02bb\u02bc\7\u01f5\2\2"+ + "\u02bc\u02bd\5\u0202\u0102\2\u02bd\u02bf\3\2\2\2\u02be\u02a3\3\2\2\2\u02be"+ + "\u02a9\3\2\2\2\u02be\u02b0\3\2\2\2\u02be\u02b7\3\2\2\2\u02bf\r\3\2\2\2"+ + "\u02c0\u02c1\7\25\2\2\u02c1\u02c2\7w\2\2\u02c2\u02c3\5\u0202\u0102\2\u02c3"+ + "\u02c4\7\u01d6\2\2\u02c4\u02c5\7\u0249\2\2\u02c5\u02c6\5\u0202\u0102\2"+ + "\u02c6\u02d6\3\2\2\2\u02c7\u02c8\7\25\2\2\u02c8\u02c9\7w\2\2\u02c9\u02ca"+ + "\5\u0202\u0102\2\u02ca\u02cb\7\u0195\2\2\u02cb\u02cc\7\u0249\2\2\u02cc"+ + "\u02cd\5\u01fa\u00fe\2\u02cd\u02d6\3\2\2\2\u02ce\u02cf\7\25\2\2\u02cf"+ + "\u02d0\7w\2\2\u02d0\u02d1\5\u0202\u0102\2\u02d1\u02d2\7\u0209\2\2\u02d2"+ + "\u02d3\7\u01f5\2\2\u02d3\u02d4\5\u0202\u0102\2\u02d4\u02d6\3\2\2\2\u02d5"+ + "\u02c0\3\2\2\2\u02d5\u02c7\3\2\2\2\u02d5\u02ce\3\2\2\2\u02d6\17\3\2\2"+ + "\2\u02d7\u02d8\5\u0206\u0104\2\u02d8\21\3\2\2\2\u02d9\u02da\5\u0206\u0104"+ + "\2\u02da\23\3\2\2\2\u02db\u02dc\7\25\2\2\u02dc\u02dd\7\u00bc\2\2\u02dd"+ + "\u02e3\5\u0202\u0102\2\u02de\u02df\7\u0209\2\2\u02df\u02e0\7\u009d\2\2"+ + "\u02e0\u02e4\5\u01b2\u00da\2\u02e1\u02e2\7\u00be\2\2\u02e2\u02e4\7\u009d"+ + "\2\2\u02e3\u02de\3\2\2\2\u02e3\u02e1\3\2\2\2\u02e4\u0328\3\2\2\2\u02e5"+ + "\u02e6\7\25\2\2\u02e6\u02e7\7\u00bc\2\2\u02e7\u02e8\5\u0202\u0102\2\u02e8"+ + "\u02e9\t\2\2\2\u02e9\u02ea\7\u016f\2\2\u02ea\u02eb\7\u0174\2\2\u02eb\u0328"+ + "\3\2\2\2\u02ec\u02ed\7\25\2\2\u02ed\u02ee\7\u00bc\2\2\u02ee\u02ef\5\u0202"+ + "\u0102\2\u02ef\u02f0\7\r\2\2\u02f0\u02f3\5\u0082B\2\u02f1\u02f2\7\u016f"+ + "\2\2\u02f2\u02f4\7\u0275\2\2\u02f3\u02f1\3\2\2\2\u02f3\u02f4\3\2\2\2\u02f4"+ + "\u0328\3\2\2\2\u02f5\u02f6\7\25\2\2\u02f6\u02f7\7\u00bc\2\2\u02f7\u02f8"+ + "\5\u0202\u0102\2\u02f8\u02f9\7\u00be\2\2\u02f9\u02fc\7o\2\2\u02fa\u02fb"+ + "\7\u02b3\2\2\u02fb\u02fd\7\u00d5\2\2\u02fc\u02fa\3\2\2\2\u02fc\u02fd\3"+ + "\2\2\2\u02fd\u02fe\3\2\2\2\u02fe\u0300\5\u0202\u0102\2\u02ff\u0301\t\3"+ + "\2\2\u0300\u02ff\3\2\2\2\u0300\u0301\3\2\2\2\u0301\u0328\3\2\2\2\u0302"+ + "\u0303\7\25\2\2\u0303\u0304\7\u00bc\2\2\u0304\u0305\5\u0202\u0102\2\u0305"+ + "\u0306\7\u01d6\2\2\u0306\u0307\7o\2\2\u0307\u0308\5\u0202\u0102\2\u0308"+ + "\u0309\7\u0249\2\2\u0309\u030a\5\u0202\u0102\2\u030a\u0328\3\2\2\2\u030b"+ + "\u030c\7\25\2\2\u030c\u030d\7\u00bc\2\2\u030d\u030e\5\u0202\u0102\2\u030e"+ + "\u030f\7\u0276\2\2\u030f\u0310\7o\2\2\u0310\u0311\5\u0202\u0102\2\u0311"+ + "\u0328\3\2\2\2\u0312\u0313\7\25\2\2\u0313\u0314\7\u00bc\2\2\u0314\u0315"+ + "\5\u0202\u0102\2\u0315\u0316\7\u0195\2\2\u0316\u0317\7\u0249\2\2\u0317"+ + "\u0318\5\u01fa\u00fe\2\u0318\u0328\3\2\2\2\u0319\u031a\7\25\2\2\u031a"+ + "\u031b\7\u00bc\2\2\u031b\u031c\5\u0202\u0102\2\u031c\u031d\7\u01d6\2\2"+ + "\u031d\u031e\7\u0249\2\2\u031e\u031f\5\u0202\u0102\2\u031f\u0328\3\2\2"+ + "\2\u0320\u0321\7\25\2\2\u0321\u0322\7\u00bc\2\2\u0322\u0323\5\u0202\u0102"+ + "\2\u0323\u0324\7\u0209\2\2\u0324\u0325\7\u01f5\2\2\u0325\u0326\5\u0202"+ + "\u0102\2\u0326\u0328\3\2\2\2\u0327\u02db\3\2\2\2\u0327\u02e5\3\2\2\2\u0327"+ + "\u02ec\3\2\2\2\u0327\u02f5\3\2\2\2\u0327\u0302\3\2\2\2\u0327\u030b\3\2"+ + "\2\2\u0327\u0312\3\2\2\2\u0327\u0319\3\2\2\2\u0327\u0320\3\2\2\2\u0328"+ + "\25\3\2\2\2\u0329\u032a\7\25\2\2\u032a\u032b\7\u02bb\2\2\u032b\u032c\7"+ + "\u0256\2\2\u032c\u032d\5\u0202\u0102\2\u032d\u032e\7\u00b5\2\2\u032e\u034b"+ + "\3\2\2\2\u032f\u0330\7\25\2\2\u0330\u0331\7\u02bb\2\2\u0331\u0332\7\u0256"+ + "\2\2\u0332\u0333\5\u0202\u0102\2\u0333\u0335\7\u00c5\2\2\u0334\u0336\t"+ + "\4\2\2\u0335\u0334\3\2\2\2\u0335\u0336\3\2\2\2\u0336\u034b\3\2\2\2\u0337"+ + "\u0338\7\25\2\2\u0338\u0339\7\u02bb\2\2\u0339\u033a\7\u0256\2\2\u033a"+ + "\u033b\5\u0202\u0102\2\u033b\u033c\7\u0195\2\2\u033c\u0340\7\u0249\2\2"+ + "\u033d\u0341\5\u0202\u0102\2\u033e\u0341\7\u008f\2\2\u033f\u0341\7\u0208"+ + "\2\2\u0340\u033d\3\2\2\2\u0340\u033e\3\2\2\2\u0340\u033f\3\2\2\2\u0341"+ + "\u034b\3\2\2\2\u0342\u0343\7\25\2\2\u0343\u0344\7\u02bb\2\2\u0344\u0345"+ + "\7\u0256\2\2\u0345\u0346\5\u0202\u0102\2\u0346\u0347\7\u01d6\2\2\u0347"+ + "\u0348\7\u0249\2\2\u0348\u0349\5\u0202\u0102\2\u0349\u034b\3\2\2\2\u034a"+ + "\u0329\3\2\2\2\u034a\u032f\3\2\2\2\u034a\u0337\3\2\2\2\u034a\u0342\3\2"+ + "\2\2\u034b\27\3\2\2\2\u034c\u034d\7\25\2\2\u034d\u034e\7\u00d9\2\2\u034e"+ + "\u034f\5\u0202\u0102\2\u034f\u0352\7\u026b\2\2\u0350\u0351\7\u0249\2\2"+ + "\u0351\u0353\5\u0202\u0102\2\u0352\u0350\3\2\2\2\u0352\u0353\3\2\2\2\u0353"+ + "\u035c\3\2\2\2\u0354\u0355\7\25\2\2\u0355\u0356\7\u00d9\2\2\u0356\u0357"+ + "\5\u0202\u0102\2\u0357\u0358\7\u0209\2\2\u0358\u0359\7\u01f5\2\2\u0359"+ + "\u035a\5\u0202\u0102\2\u035a\u035c\3\2\2\2\u035b\u034c\3\2\2\2\u035b\u0354"+ + "\3\2\2\2\u035c\31\3\2\2\2\u035d\u035e\5\u0206\u0104\2\u035e\33\3\2\2\2"+ + "\u035f\u0361\7\r\2\2\u0360\u0362\7`\2\2\u0361\u0360\3\2\2\2\u0361\u0362"+ + "\3\2\2\2\u0362\u0363\3\2\2\2\u0363\u0364\5\u020a\u0106\2\u0364\u0367\5"+ + "\u01d8\u00ed\2\u0365\u0366\7Z\2\2\u0366\u0368\5\u0202\u0102\2\u0367\u0365"+ + "\3\2\2\2\u0367\u0368\3\2\2\2\u0368\u036a\3\2\2\2\u0369\u036b\5\u01f2\u00fa"+ + "\2\u036a\u0369\3\2\2\2\u036a\u036b\3\2\2\2\u036b\u040c\3\2\2\2\u036c\u036e"+ + "\7\u00be\2\2\u036d\u036f\7`\2\2\u036e\u036d\3\2\2\2\u036e\u036f\3\2\2"+ + "\2\u036f\u0372\3\2\2\2\u0370\u0371\7\u02b3\2\2\u0371\u0373\7\u00d5\2\2"+ + "\u0372\u0370\3\2\2\2\u0372\u0373\3\2\2\2\u0373\u0374\3\2\2\2\u0374\u0376"+ + "\5\u020a\u0106\2\u0375\u0377\t\3\2\2\u0376\u0375\3\2\2\2\u0376\u0377\3"+ + "\2\2\2\u0377\u040c\3\2\2\2\u0378\u037a\7\25\2\2\u0379\u037b\7`\2\2\u037a"+ + "\u0379\3\2\2\2\u037a\u037b\3\2\2\2\u037b\u037c\3\2\2\2\u037c\u037f\5\u020a"+ + "\u0106\2\u037d\u037e\7\u0209\2\2\u037e\u0380\7\u0093\2\2\u037f\u037d\3"+ + "\2\2\2\u037f\u0380\3\2\2\2\u0380\u0381\3\2\2\2\u0381\u0382\7\u025e\2\2"+ + "\u0382\u0385\5\u01d8\u00ed\2\u0383\u0384\7Z\2\2\u0384\u0386\5\u0202\u0102"+ + "\2\u0385\u0383\3\2\2\2\u0385\u0386\3\2\2\2\u0386\u040c\3\2\2\2\u0387\u0389"+ + "\7\25\2\2\u0388\u038a\7`\2\2\u0389\u0388\3\2\2\2\u0389\u038a\3\2\2\2\u038a"+ + "\u038b\3\2\2\2\u038b\u038c\5\u020a\u0106\2\u038c\u038d\7\u0209\2\2\u038d"+ + "\u038e\7\u009d\2\2\u038e\u038f\5\u01b2\u00da\2\u038f\u040c\3\2\2\2\u0390"+ + "\u0392\7\25\2\2\u0391\u0393\7`\2\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2"+ + "\2\2\u0393\u0394\3\2\2\2\u0394\u0395\5\u020a\u0106\2\u0395\u0396\7\u00be"+ + "\2\2\u0396\u0397\7\u009d\2\2\u0397\u040c\3\2\2\2\u0398\u039a\7\25\2\2"+ + "\u0399\u039b\7`\2\2\u039a\u0399\3\2\2\2\u039a\u039b\3\2\2\2\u039b\u039c"+ + "\3\2\2\2\u039c\u039d\5\u020a\u0106\2\u039d\u039e\t\2\2\2\u039e\u039f\7"+ + "\u016f\2\2\u039f\u03a0\7\u0174\2\2\u03a0\u040c\3\2\2\2\u03a1\u03a3\7\25"+ + "\2\2\u03a2\u03a4\7`\2\2\u03a3\u03a2\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4"+ + "\u03a5\3\2\2\2\u03a5\u03a6\5\u020a\u0106\2\u03a6\u03a7\7\u0209\2\2\u03a7"+ + "\u03a8\7\u0226\2\2\u03a8\u03a9\7\u011d\2\2\u03a9\u040c\3\2\2\2\u03aa\u03ac"+ + "\7\25\2\2\u03ab\u03ad\7`\2\2\u03ac\u03ab\3\2\2\2\u03ac\u03ad\3\2\2\2\u03ad"+ + "\u03ae\3\2\2\2\u03ae\u03af\5\u020a\u0106\2\u03af\u03b0\7\u0209\2\2\u03b0"+ + "\u03b1\7\u02ff\2\2\u03b1\u03b2\5\u01d4\u00eb\2\u03b2\u03b3\7\u0300\2\2"+ + "\u03b3\u040c\3\2\2\2\u03b4\u03b6\7\25\2\2\u03b5\u03b7\7`\2\2\u03b6\u03b5"+ + "\3\2\2\2\u03b6\u03b7\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\5\u020a\u0106"+ + "\2\u03b9\u03ba\7\u01da\2\2\u03ba\u03bb\7\u02ff\2\2\u03bb\u03bc\5\u01d0"+ + "\u00e9\2\u03bc\u03bd\7\u0300\2\2\u03bd\u040c\3\2\2\2\u03be\u03c0\7\25"+ + "\2\2\u03bf\u03c1\7`\2\2\u03c0\u03bf\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1"+ + "\u03c2\3\2\2\2\u03c2\u03c3\5\u020a\u0106\2\u03c3\u03c4\7\u0209\2\2\u03c4"+ + "\u03c5\7\u022b\2\2\u03c5\u03c6\t\5\2\2\u03c6\u040c\3\2\2\2\u03c7\u03c9"+ + "\7\25\2\2\u03c8\u03ca\7`\2\2\u03c9\u03c8\3\2\2\2\u03c9\u03ca\3\2\2\2\u03ca"+ + "\u03cb\3\2\2\2\u03cb\u03cc\5\u020a\u0106\2\u03cc\u03ce\7\u0188\2\2\u03cd"+ + "\u03cf\t\6\2\2\u03ce\u03cd\3\2\2\2\u03ce\u03cf\3\2\2\2\u03cf\u040c\3\2"+ + "\2\2\u03d0\u03d1\7\r\2\2\u03d1\u03d4\5\u01f8\u00fd\2\u03d2\u03d3\7\u016f"+ + "\2\2\u03d3\u03d5\7\u0275\2\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5"+ + "\u040c\3\2\2\2\u03d6\u03d7\7\u0276\2\2\u03d7\u03d8\7o\2\2\u03d8\u040c"+ + "\5\u0204\u0103\2\u03d9\u03da\7\u00be\2\2\u03da\u03dd\7o\2\2\u03db\u03dc"+ + "\7\u02b3\2\2\u03dc\u03de\7\u00d5\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3"+ + "\2\2\2\u03de\u03df\3\2\2\2\u03df\u03e1\5\u0204\u0103\2\u03e0\u03e2\t\3"+ + "\2\2\u03e1\u03e0\3\2\2\2\u03e1\u03e2\3\2\2\2\u03e2\u040c\3\2\2\2\u03e3"+ + "\u03e4\7\u00b5\2\2\u03e4\u03e8\7\u0256\2\2\u03e5\u03e9\5\u0204\u0103\2"+ + "\u03e6\u03e9\7\22\2\2\u03e7\u03e9\7\u026e\2\2\u03e8\u03e5\3\2\2\2\u03e8"+ + "\u03e6\3\2\2\2\u03e8\u03e7\3\2\2\2\u03e8\u03e9\3\2\2\2\u03e9\u040c\3\2"+ + "\2\2\u03ea\u03eb\7\u00c5\2\2\u03eb\u03ef\7\u0256\2\2\u03ec\u03f0\5\u0204"+ + "\u0103\2\u03ed\u03f0\7\22\2\2\u03ee\u03f0\7\u026e\2\2\u03ef\u03ec\3\2"+ + "\2\2\u03ef\u03ed\3\2\2\2\u03ef\u03ee\3\2\2\2\u03ef\u03f0\3\2\2\2\u03f0"+ + "\u040c\3\2\2\2\u03f1\u03f2\7\u00c5\2\2\u03f2\u03f3\7\u01d9\2\2\u03f3\u03f4"+ + "\7\u0256\2\2\u03f4\u040c\5\u0204\u0103\2\u03f5\u03f6\7\u00c5\2\2\u03f6"+ + "\u03f7\7\26\2\2\u03f7\u03f8\7\u0256\2\2\u03f8\u040c\5\u0204\u0103\2\u03f9"+ + "\u03fa\7\u0209\2\2\u03fa\u03fb\7\u0288\2\2\u03fb\u040c\7\u0180\2\2\u03fc"+ + "\u03fd\7\u0209\2\2\u03fd\u03fe\7\u028a\2\2\u03fe\u040c\7\u0180\2\2\u03ff"+ + "\u0400\7\u0295\2\2\u0400\u040c\5\u0202\u0102\2\u0401\u0402\7\u0169\2\2"+ + "\u0402\u0403\7\u0295\2\2\u0403\u040c\5\u0202\u0102\2\u0404\u0405\7\u0195"+ + "\2\2\u0405\u0406\7\u0249\2\2\u0406\u040c\5\u01fa\u00fe\2\u0407\u0409\7"+ + "\u0188\2\2\u0408\u040a\t\6\2\2\u0409\u0408\3\2\2\2\u0409\u040a\3\2\2\2"+ + "\u040a\u040c\3\2\2\2\u040b\u035f\3\2\2\2\u040b\u036c\3\2\2\2\u040b\u0378"+ + "\3\2\2\2\u040b\u0387\3\2\2\2\u040b\u0390\3\2\2\2\u040b\u0398\3\2\2\2\u040b"+ + "\u03a1\3\2\2\2\u040b\u03aa\3\2\2\2\u040b\u03b4\3\2\2\2\u040b\u03be\3\2"+ + "\2\2\u040b\u03c7\3\2\2\2\u040b\u03d0\3\2\2\2\u040b\u03d6\3\2\2\2\u040b"+ + "\u03d9\3\2\2\2\u040b\u03e3\3\2\2\2\u040b\u03ea\3\2\2\2\u040b\u03f1\3\2"+ + "\2\2\u040b\u03f5\3\2\2\2\u040b\u03f9\3\2\2\2\u040b\u03fc\3\2\2\2\u040b"+ + "\u03ff\3\2\2\2\u040b\u0401\3\2\2\2\u040b\u0404\3\2\2\2\u040b\u0407\3\2"+ + "\2\2\u040c\35\3\2\2\2\u040d\u0412\5\34\17\2\u040e\u040f\7\u02f9\2\2\u040f"+ + "\u0411\5\34\17\2\u0410\u040e\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0410\3"+ + "\2\2\2\u0412\u0413\3\2\2\2\u0413\37\3\2\2\2\u0414\u0412\3\2\2\2\u0415"+ + "\u0416\7\25\2\2\u0416\u0417\7\u00e7\2\2\u0417\u041a\7\u0239\2\2\u0418"+ + "\u0419\7\u02b3\2\2\u0419\u041b\7\u00d5\2\2\u041a\u0418\3\2\2\2\u041a\u041b"+ + "\3\2\2\2\u041b\u041d\3\2\2\2\u041c\u041e\7\u0183\2\2\u041d\u041c\3\2\2"+ + "\2\u041d\u041e\3\2\2\2\u041e\u041f\3\2\2\2\u041f\u0421\5\u0202\u0102\2"+ + "\u0420\u0422\7\u02fe\2\2\u0421\u0420\3\2\2\2\u0421\u0422\3\2\2\2\u0422"+ + "\u0423\3\2\2\2\u0423\u0424\5\36\20\2\u0424\u0454\3\2\2\2\u0425\u0426\7"+ + "\25\2\2\u0426\u0427\7\u00e7\2\2\u0427\u042a\7\u0239\2\2\u0428\u0429\7"+ + "\u02b3\2\2\u0429\u042b\7\u00d5\2\2\u042a\u0428\3\2\2\2\u042a\u042b\3\2"+ + "\2\2\u042b\u042d\3\2\2\2\u042c\u042e\7\u0183\2\2\u042d\u042c\3\2\2\2\u042d"+ + "\u042e\3\2\2\2\u042e\u042f\3\2\2\2\u042f\u0431\5\u0202\u0102\2\u0430\u0432"+ + "\7\u02fe\2\2\u0431\u0430\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2"+ + "\2\u0433\u0435\7\u01d6\2\2\u0434\u0436\7`\2\2\u0435\u0434\3\2\2\2\u0435"+ + "\u0436\3\2\2\2\u0436\u0437\3\2\2\2\u0437\u0438\5\u020a\u0106\2\u0438\u0439"+ + "\7\u0249\2\2\u0439\u043a\5\u0202\u0102\2\u043a\u0454\3\2\2\2\u043b\u043c"+ + "\7\25\2\2\u043c\u043d\7\u00e7\2\2\u043d\u0440\7\u0239\2\2\u043e\u043f"+ + "\7\u02b3\2\2\u043f\u0441\7\u00d5\2\2\u0440\u043e\3\2\2\2\u0440\u0441\3"+ + "\2\2\2\u0441\u0442\3\2\2\2\u0442\u0443\5\u0202\u0102\2\u0443\u0444\7\u01d6"+ + "\2\2\u0444\u0445\7\u0249\2\2\u0445\u0446\5\u0202\u0102\2\u0446\u0454\3"+ + "\2\2\2\u0447\u0448\7\25\2\2\u0448\u0449\7\u00e7\2\2\u0449\u044c\7\u0239"+ + "\2\2\u044a\u044b\7\u02b3\2\2\u044b\u044d\7\u00d5\2\2\u044c\u044a\3\2\2"+ + "\2\u044c\u044d\3\2\2\2\u044d\u044e\3\2\2\2\u044e\u044f\5\u0202\u0102\2"+ + "\u044f\u0450\7\u0209\2\2\u0450\u0451\7\u01f5\2\2\u0451\u0452\5\u0202\u0102"+ + "\2\u0452\u0454\3\2\2\2\u0453\u0415\3\2\2\2\u0453\u0425\3\2\2\2\u0453\u043b"+ + "\3\2\2\2\u0453\u0447\3\2\2\2\u0454!\3\2\2\2\u0455\u0456\5\u0206\u0104"+ + "\2\u0456#\3\2\2\2\u0457\u0458\7\25\2\2\u0458\u0459\7\u00fc\2\2\u0459\u045a"+ + "\5\u01fa\u00fe\2\u045a\u045b\7\r\2\2\u045b\u045c\7\u026e\2\2\u045c\u045d"+ + "\5\u01d0\u00e9\2\u045d\u046d\3\2\2\2\u045e\u045f\7\25\2\2\u045f\u0460"+ + "\7\u00fc\2\2\u0460\u0461\5\u01fa\u00fe\2\u0461\u0462\7\u00be\2\2\u0462"+ + "\u0463\7\u026e\2\2\u0463\u0464\5\u01d0\u00e9\2\u0464\u046d\3\2\2\2\u0465"+ + "\u0466\7\25\2\2\u0466\u0467\7\u00fc\2\2\u0467\u0468\5\u0202\u0102\2\u0468"+ + "\u0469\7\u01d6\2\2\u0469\u046a\7\u0249\2\2\u046a\u046b\5\u0202\u0102\2"+ + "\u046b\u046d\3\2\2\2\u046c\u0457\3\2\2\2\u046c\u045e\3\2\2\2\u046c\u0465"+ + "\3\2\2\2\u046d%\3\2\2\2\u046e\u046f\7\25\2\2\u046f\u0472\7\u010e\2\2\u0470"+ + "\u0471\7\u02b3\2\2\u0471\u0473\7\u00d5\2\2\u0472\u0470\3\2\2\2\u0472\u0473"+ + "\3\2\2\2\u0473\u0474\3\2\2\2\u0474\u0475\5\u0202\u0102\2\u0475\u0476\7"+ + "\u01d6\2\2\u0476\u0477\7\u0249\2\2\u0477\u0478\5\u0202\u0102\2\u0478\u04b5"+ + "\3\2\2\2\u0479\u047a\7\25\2\2\u047a\u047d\7\u010e\2\2\u047b\u047c\7\u02b3"+ + "\2\2\u047c\u047e\7\u00d5\2\2\u047d\u047b\3\2\2\2\u047d\u047e\3\2\2\2\u047e"+ + "\u047f\3\2\2\2\u047f\u0480\5\u0202\u0102\2\u0480\u0481\7\u0209\2\2\u0481"+ + "\u0482\7\u023c\2\2\u0482\u0483\5\u0202\u0102\2\u0483\u04b5\3\2\2\2\u0484"+ + "\u0485\7\25\2\2\u0485\u0486\7\u010e\2\2\u0486\u0487\5\u0202\u0102\2\u0487"+ + "\u0488\7\u00a9\2\2\u0488\u0489\7\u0182\2\2\u0489\u048a\7\u00d9\2\2\u048a"+ + "\u048b\5\u0202\u0102\2\u048b\u04b5\3\2\2\2\u048c\u048d\7\25\2\2\u048d"+ + "\u0490\7\u010e\2\2\u048e\u048f\7\u02b3\2\2\u048f\u0491\7\u00d5\2\2\u0490"+ + "\u048e\3\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\5\u0202"+ + "\u0102\2\u0493\u0494\7\u0209\2\2\u0494\u0495\7\u02ff\2\2\u0495\u0496\5"+ + "\u01d4\u00eb\2\u0496\u0497\7\u0300\2\2\u0497\u04b5\3\2\2\2\u0498\u0499"+ + "\7\25\2\2\u0499\u049c\7\u010e\2\2\u049a\u049b\7\u02b3\2\2\u049b\u049d"+ + "\7\u00d5\2\2\u049c\u049a\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2"+ + "\2\u049e\u049f\7\u01da\2\2\u049f\u04a0\7\u02ff\2\2\u04a0\u04a1\5\u01d0"+ + "\u00e9\2\u04a1\u04a2\7\u0300\2\2\u04a2\u04b5\3\2\2\2\u04a3\u04a4\7\25"+ + "\2\2\u04a4\u04a5\7\u010e\2\2\u04a5\u04a6\7\22\2\2\u04a6\u04a7\7\u010b"+ + "\2\2\u04a7\u04a8\7\u023c\2\2\u04a8\u04ac\5\u0202\u0102\2\u04a9\u04aa\7"+ + "\u02cf\2\2\u04aa\u04ab\78\2\2\u04ab\u04ad\5\u01d0\u00e9\2\u04ac\u04a9"+ + "\3\2\2\2\u04ac\u04ad\3\2\2\2\u04ad\u04ae\3\2\2\2\u04ae\u04af\7\u0209\2"+ + "\2\u04af\u04b0\7\u023c\2\2\u04b0\u04b2\5\u0202\u0102\2\u04b1\u04b3\7\u0173"+ + "\2\2\u04b2\u04b1\3\2\2\2\u04b2\u04b3\3\2\2\2\u04b3\u04b5\3\2\2\2\u04b4"+ + "\u046e\3\2\2\2\u04b4\u0479\3\2\2\2\u04b4\u0484\3\2\2\2\u04b4\u048c\3\2"+ + "\2\2\u04b4\u0498\3\2\2\2\u04b4\u04a3\3\2\2\2\u04b5\'\3\2\2\2\u04b6\u04b8"+ + "\7\25\2\2\u04b7\u04b9\7\u01b9\2\2\u04b8\u04b7\3\2\2\2\u04b8\u04b9\3\2"+ + "\2\2\u04b9\u04ba\3\2\2\2\u04ba\u04bb\7\u012d\2\2\u04bb\u04bc\5\u0202\u0102"+ + "\2\u04bc\u04bd\7\u01d6\2\2\u04bd\u04be\7\u0249\2\2\u04be\u04bf\5\u0202"+ + "\u0102\2\u04bf\u04ce\3\2\2\2\u04c0\u04c2\7\25\2\2\u04c1\u04c3\7\u01b9"+ + "\2\2\u04c2\u04c1\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4"+ + "\u04c5\7\u012d\2\2\u04c5\u04c6\5\u0202\u0102\2\u04c6\u04c7\7\u0195\2\2"+ + "\u04c7\u04cb\7\u0249\2\2\u04c8\u04cc\5\u0202\u0102\2\u04c9\u04cc\7\u008f"+ + "\2\2\u04ca\u04cc\7\u0208\2\2\u04cb\u04c8\3\2\2\2\u04cb\u04c9\3\2\2\2\u04cb"+ + "\u04ca\3\2\2\2\u04cc\u04ce\3\2\2\2\u04cd\u04b6\3\2\2\2\u04cd\u04c0\3\2"+ + "\2\2\u04ce)\3\2\2\2\u04cf\u04d0\7\25\2\2\u04d0\u04d1\7\u012e\2\2\u04d1"+ + "\u04d2\7\u017a\2\2\u04d2\u04d3\7\u0306\2\2\u04d3\u04d4\7\u0195\2\2\u04d4"+ + "\u04d8\7\u0249\2\2\u04d5\u04d9\5\u0202\u0102\2\u04d6\u04d9\7\u008f\2\2"+ + "\u04d7\u04d9\7\u0208\2\2\u04d8\u04d5\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8"+ + "\u04d7\3\2\2\2\u04d9+\3\2\2\2\u04da\u04db\5\u0206\u0104\2\u04db-\3\2\2"+ + "\2\u04dc\u04dd\5\u0206\u0104\2\u04dd/\3\2\2\2\u04de\u04df\7\25\2\2\u04df"+ + "\u04e0\7\u0186\2\2\u04e0\u04e1\7S\2\2\u04e1\u04e2\5\u0202\u0102\2\u04e2"+ + "\u04e3\7\u0273\2\2\u04e3\u04e4\5\u01dc\u00ef\2\u04e4\u04e5\7\u01d6\2\2"+ + "\u04e5\u04e6\7\u0249\2\2\u04e6\u04e7\5\u0202\u0102\2\u04e7\u0500\3\2\2"+ + "\2\u04e8\u04e9\7\25\2\2\u04e9\u04ea\7\u0186\2\2\u04ea\u04eb\7S\2\2\u04eb"+ + "\u04ec\5\u0202\u0102\2\u04ec\u04ed\7\u0273\2\2\u04ed\u04ee\5\u01dc\u00ef"+ + "\2\u04ee\u04ef\7\u0195\2\2\u04ef\u04f3\7\u0249\2\2\u04f0\u04f4\5\u0202"+ + "\u0102\2\u04f1\u04f4\7\u008f\2\2\u04f2\u04f4\7\u0208\2\2\u04f3\u04f0\3"+ + "\2\2\2\u04f3\u04f1\3\2\2\2\u04f3\u04f2\3\2\2\2\u04f4\u0500\3\2\2\2\u04f5"+ + "\u04f6\7\25\2\2\u04f6\u04f7\7\u0186\2\2\u04f7\u04f8\7S\2\2\u04f8\u04f9"+ + "\5\u0202\u0102\2\u04f9\u04fa\7\u0273\2\2\u04fa\u04fb\5\u01dc\u00ef\2\u04fb"+ + "\u04fc\7\u0209\2\2\u04fc\u04fd\7\u01f5\2\2\u04fd\u04fe\5\u0202\u0102\2"+ + "\u04fe\u0500\3\2\2\2\u04ff\u04de\3\2\2\2\u04ff\u04e8\3\2\2\2\u04ff\u04f5"+ + "\3\2\2\2\u0500\61\3\2\2\2\u0501\u0502\5\u0206\u0104\2\u0502\63\3\2\2\2"+ + "\u0503\u0504\7\25\2\2\u0504\u0505\7\u02ce\2\2\u0505\u0506\5\u0202\u0102"+ + "\2\u0506\u0507\7\u0182\2\2\u0507\u0508\5\u0202\u0102\2\u0508\u0509\7\u01d6"+ + "\2\2\u0509\u050a\7\u0249\2\2\u050a\u050b\5\u0202\u0102\2\u050b\u051f\3"+ + "\2\2\2\u050c\u050d\7\25\2\2\u050d\u050e\7\u02ce\2\2\u050e\u050f\5\u0202"+ + "\u0102\2\u050f\u0510\7\u0182\2\2\u0510\u0513\5\u0202\u0102\2\u0511\u0512"+ + "\7\u0249\2\2\u0512\u0514\5\u01fc\u00ff\2\u0513\u0511\3\2\2\2\u0513\u0514"+ + "\3\2\2\2\u0514\u0517\3\2\2\2\u0515\u0516\7\u0273\2\2\u0516\u0518\5\u01ec"+ + "\u00f7\2\u0517\u0515\3\2\2\2\u0517\u0518\3\2\2\2\u0518\u051c\3\2\2\2\u0519"+ + "\u051a\7\u0288\2\2\u051a\u051b\7P\2\2\u051b\u051d\5\u01ec\u00f7\2\u051c"+ + "\u0519\3\2\2\2\u051c\u051d\3\2\2\2\u051d\u051f\3\2\2\2\u051e\u0503\3\2"+ + "\2\2\u051e\u050c\3\2\2\2\u051f\65\3\2\2\2\u0520\u0521\7\25\2\2\u0521\u0522"+ + "\7\u01bc\2\2\u0522\u0523\5\u0202\u0102\2\u0523\u0524\7\r\2\2\u0524\u0526"+ + "\7\u0239\2\2\u0525\u0527\7\u0183\2\2\u0526\u0525\3\2\2\2\u0526\u0527\3"+ + "\2\2\2\u0527\u0528\3\2\2\2\u0528\u0529\5\u01d0\u00e9\2\u0529\u0555\3\2"+ + "\2\2\u052a\u052b\7\25\2\2\u052b\u052c\7\u01bc\2\2\u052c\u052d\5\u0202"+ + "\u0102\2\u052d\u052e\7\u0209\2\2\u052e\u0530\7\u0239\2\2\u052f\u0531\7"+ + "\u0183\2\2\u0530\u052f\3\2\2\2\u0530\u0531\3\2\2\2\u0531\u0532\3\2\2\2"+ + "\u0532\u0533\5\u01d0\u00e9\2\u0533\u0555\3\2\2\2\u0534\u0535\7\25\2\2"+ + "\u0535\u0536\7\u01bc\2\2\u0536\u0537\5\u0202\u0102\2\u0537\u0538\7\u00be"+ + "\2\2\u0538\u053a\7\u0239\2\2\u0539\u053b\7\u0183\2\2\u053a\u0539\3\2\2"+ + "\2\u053a\u053b\3\2\2\2\u053b\u053c\3\2\2\2\u053c\u053d\5\u01d0\u00e9\2"+ + "\u053d\u0555\3\2\2\2\u053e\u053f\7\25\2\2\u053f\u0540\7\u01bc\2\2\u0540"+ + "\u0541\5\u0202\u0102\2\u0541\u0542\7\u0209\2\2\u0542\u0543\7\u02ff\2\2"+ + "\u0543\u0544\5\u01d4\u00eb\2\u0544\u0545\7\u0300\2\2\u0545\u0555\3\2\2"+ + "\2\u0546\u0547\7\25\2\2\u0547\u0548\7\u01bc\2\2\u0548\u0549\5\u0202\u0102"+ + "\2\u0549\u054a\7\u0195\2\2\u054a\u054b\7\u0249\2\2\u054b\u054c\5\u01fa"+ + "\u00fe\2\u054c\u0555\3\2\2\2\u054d\u054e\7\25\2\2\u054e\u054f\7\u01bc"+ + "\2\2\u054f\u0550\5\u0202\u0102\2\u0550\u0551\7\u01d6\2\2\u0551\u0552\7"+ + "\u0249\2\2\u0552\u0553\5\u01cc\u00e7\2\u0553\u0555\3\2\2\2\u0554\u0520"+ + "\3\2\2\2\u0554\u052a\3\2\2\2\u0554\u0534\3\2\2\2\u0554\u053e\3\2\2\2\u0554"+ + "\u0546\3\2\2\2\u0554\u054d\3\2\2\2\u0555\67\3\2\2\2\u0556\u0570\7\u0291"+ + "\2\2\u0557\u0570\7\u0292\2\2\u0558\u0570\7\u0081\2\2\u0559\u0570\7\u016a"+ + "\2\2\u055a\u0570\7\u0293\2\2\u055b\u0570\7\u0294\2\2\u055c\u0570\7\u0295"+ + "\2\2\u055d\u0570\7\u0296\2\2\u055e\u0570\7\u0297\2\2\u055f\u0570\7\u0298"+ + "\2\2\u0560\u0570\7\u0299\2\2\u0561\u0570\7\u029a\2\2\u0562\u0570\7\u029b"+ + "\2\2\u0563\u0570\7\u029c\2\2\u0564\u0565\7m\2\2\u0565\u0566\7\u0138\2"+ + "\2\u0566\u0570\7\u011d\2\2\u0567\u0569\7\u00c7\2\2\u0568\u0567\3\2\2\2"+ + "\u0568\u0569\3\2\2\2\u0569\u056a\3\2\2\2\u056a\u056b\7\u01a3\2\2\u056b"+ + "\u0570\7\u0309\2\2\u056c\u056d\7\u0275\2\2\u056d\u056e\7\u026a\2\2\u056e"+ + "\u0570\7\u0309\2\2\u056f\u0556\3\2\2\2\u056f\u0557\3\2\2\2\u056f\u0558"+ + "\3\2\2\2\u056f\u0559\3\2\2\2\u056f\u055a\3\2\2\2\u056f\u055b\3\2\2\2\u056f"+ + "\u055c\3\2\2\2\u056f\u055d\3\2\2\2\u056f\u055e\3\2\2\2\u056f\u055f\3\2"+ + "\2\2\u056f\u0560\3\2\2\2\u056f\u0561\3\2\2\2\u056f\u0562\3\2\2\2\u056f"+ + "\u0563\3\2\2\2\u056f\u0564\3\2\2\2\u056f\u0568\3\2\2\2\u056f\u056c\3\2"+ + "\2\2\u05709\3\2\2\2\u0571\u0572\7\25\2\2\u0572\u0573\7\u01e7\2\2\u0573"+ + "\u0575\5\u01fa\u00fe\2\u0574\u0576\7\u0288\2\2\u0575\u0574\3\2\2\2\u0575"+ + "\u0576\3\2\2\2\u0576\u0578\3\2\2\2\u0577\u0579\58\35\2\u0578\u0577\3\2"+ + "\2\2\u0579\u057a\3\2\2\2\u057a\u0578\3\2\2\2\u057a\u057b\3\2\2\2\u057b"+ + "\u05c0\3\2\2\2\u057c\u057d\7\25\2\2\u057d\u057e\7\u01e7\2\2\u057e\u057f"+ + "\5\u01cc\u00e7\2\u057f\u0580\7\u01d6\2\2\u0580\u0581\7\u0249\2\2\u0581"+ + "\u0582\5\u01cc\u00e7\2\u0582\u05c0\3\2\2\2\u0583\u0584\7\25\2\2\u0584"+ + "\u0587\7\u01e7\2\2\u0585\u0588\5\u01fa\u00fe\2\u0586\u0588\7\22\2\2\u0587"+ + "\u0585\3\2\2\2\u0587\u0586\3\2\2\2\u0588\u058c\3\2\2\2\u0589\u058a\7\u010b"+ + "\2\2\u058a\u058b\7\u0094\2\2\u058b\u058d\5\u01cc\u00e7\2\u058c\u0589\3"+ + "\2\2\2\u058c\u058d\3\2\2\2\u058d\u058e\3\2\2\2\u058e\u058f\7\u0209\2\2"+ + "\u058f\u0590\5\u0202\u0102\2\u0590\u0593\t\7\2\2\u0591\u0594\5\u01fe\u0100"+ + "\2\u0592\u0594\7\u009d\2\2\u0593\u0591\3\2\2\2\u0593\u0592\3\2\2\2\u0594"+ + "\u05c0\3\2\2\2\u0595\u0596\7\25\2\2\u0596\u0599\7\u01e7\2\2\u0597\u059a"+ + "\5\u01fa\u00fe\2\u0598\u059a\7\22\2\2\u0599\u0597\3\2\2\2\u0599\u0598"+ + "\3\2\2\2\u059a\u059e\3\2\2\2\u059b\u059c\7\u010b\2\2\u059c\u059d\7\u0094"+ + "\2\2\u059d\u059f\5\u01cc\u00e7\2\u059e\u059b\3\2\2\2\u059e\u059f\3\2\2"+ + "\2\u059f\u05a0\3\2\2\2\u05a0\u05a1\7\u0209\2\2\u05a1\u05a2\5\u0202\u0102"+ + "\2\u05a2\u05a3\7\u00ee\2\2\u05a3\u05a4\7\u0087\2\2\u05a4\u05c0\3\2\2\2"+ + "\u05a5\u05a6\7\25\2\2\u05a6\u05a9\7\u01e7\2\2\u05a7\u05aa\5\u01fa\u00fe"+ + "\2\u05a8\u05aa\7\22\2\2\u05a9\u05a7\3\2\2\2\u05a9\u05a8\3\2\2\2\u05aa"+ + "\u05ae\3\2\2\2\u05ab\u05ac\7\u010b\2\2\u05ac\u05ad\7\u0094\2\2\u05ad\u05af"+ + "\5\u01cc\u00e7\2\u05ae\u05ab\3\2\2\2\u05ae\u05af\3\2\2\2\u05af\u05b0\3"+ + "\2\2\2\u05b0\u05b1\7\u01da\2\2\u05b1\u05c0\5\u0202\u0102\2\u05b2\u05b3"+ + "\7\25\2\2\u05b3\u05b6\7\u01e7\2\2\u05b4\u05b7\5\u01fa\u00fe\2\u05b5\u05b7"+ + "\7\22\2\2\u05b6\u05b4\3\2\2\2\u05b6\u05b5\3\2\2\2\u05b7\u05bb\3\2\2\2"+ + "\u05b8\u05b9\7\u010b\2\2\u05b9\u05ba\7\u0094\2\2\u05ba\u05bc\5\u01cc\u00e7"+ + "\2\u05bb\u05b8\3\2\2\2\u05bb\u05bc\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u05be"+ + "\7\u01da\2\2\u05be\u05c0\7\22\2\2\u05bf\u0571\3\2\2\2\u05bf\u057c\3\2"+ + "\2\2\u05bf\u0583\3\2\2\2\u05bf\u0595\3\2\2\2\u05bf\u05a5\3\2\2\2\u05bf"+ + "\u05b2\3\2\2\2\u05c0;\3\2\2\2\u05c1\u05c2\7\25\2\2\u05c2\u05c3\7\u01f2"+ + "\2\2\u05c3\u05c4\5\u01cc\u00e7\2\u05c4\u05c5\7\u0182\2\2\u05c5\u05c6\5"+ + "\u0202\u0102\2\u05c6\u05c7\7\u01d6\2\2\u05c7\u05c8\7\u0249\2\2\u05c8\u05c9"+ + "\5\u01cc\u00e7\2\u05c9=\3\2\2\2\u05ca\u05cb\7\25\2\2\u05cb\u05cc\7\u01f5"+ + "\2\2\u05cc\u05cd\5\u0202\u0102\2\u05cd\u05ce\7\u01d6\2\2\u05ce\u05cf\7"+ + "\u0249\2\2\u05cf\u05d0\5\u0202\u0102\2\u05d0\u05dc\3\2\2\2\u05d1\u05d2"+ + "\7\25\2\2\u05d2\u05d3\7\u01f5\2\2\u05d3\u05d4\5\u0202\u0102\2\u05d4\u05d5"+ + "\7\u0195\2\2\u05d5\u05d9\7\u0249\2\2\u05d6\u05da\5\u0202\u0102\2\u05d7"+ + "\u05da\7\u008f\2\2\u05d8\u05da\7\u0208\2\2\u05d9\u05d6\3\2\2\2\u05d9\u05d7"+ + "\3\2\2\2\u05d9\u05d8\3\2\2\2\u05da\u05dc\3\2\2\2\u05db\u05ca\3\2\2\2\u05db"+ + "\u05d1\3\2\2\2\u05dc?\3\2\2\2\u05dd\u05de\7\25\2\2\u05de\u05e1\7"; private static final String _serializedATNSegment1 = - "\2\u05df\u05e0\7\u02b3\2\2\u05e0\u05e2\7\u00d5\2\2\u05e1\u05df\3\2\2\2"+ - "\u05e1\u05e2\3\2\2\2\u05e2\u05e3\3\2\2\2\u05e3\u05e4\5\u01cc\u00e7\2\u05e4"+ - "A\3\2\2\2\u05e5\u05e7\t\6\2\2\u05e6\u05e5\3\2\2\2\u05e6\u05e7\3\2\2\2"+ - "\u05e7\u05e8\3\2\2\2\u05e8\u05ea\5\u0202\u0102\2\u05e9\u05eb\5\u01fe\u0100"+ - "\2\u05ea\u05e9\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05f6\3\2\2\2\u05ec\u05ee"+ - "\7\u02f9\2\2\u05ed\u05ef\t\6\2\2\u05ee\u05ed\3\2\2\2\u05ee\u05ef\3\2\2"+ - "\2\u05ef\u05f0\3\2\2\2\u05f0\u05f2\5\u0202\u0102\2\u05f1\u05f3\5\u01fe"+ - "\u0100\2\u05f2\u05f1\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3\u05f5\3\2\2\2\u05f4"+ - "\u05ec\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6\u05f4\3\2\2\2\u05f6\u05f7\3\2"+ - "\2\2\u05f7C\3\2\2\2\u05f8\u05f6\3\2\2\2\u05f9\u05fa\7\25\2\2\u05fa\u05fb"+ - "\7\u02bd\2\2\u05fb\u0607\5\u0202\u0102\2\u05fc\u05fd\7\u02b8\2\2\u05fd"+ - "\u0608\7\u0309\2\2\u05fe\u05ff\7\u02b8\2\2\u05ff\u0601\7\u0309\2\2\u0600"+ - "\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601\u0602\3\2\2\2\u0602\u0603\7\u0188"+ - "\2\2\u0603\u0604\7\u02ff\2\2\u0604\u0605\5B\"\2\u0605\u0606\7\u0300\2"+ - "\2\u0606\u0608\3\2\2\2\u0607\u05fc\3\2\2\2\u0607\u0600\3\2\2\2\u0608\u0618"+ - "\3\2\2\2\u0609\u060a\7\25\2\2\u060a\u060b\7\u02bd\2\2\u060b\u060c\5\u0202"+ - "\u0102\2\u060c\u060d\7\u0195\2\2\u060d\u060e\7\u0249\2\2\u060e\u060f\5"+ - "\u01fa\u00fe\2\u060f\u0618\3\2\2\2\u0610\u0611\7\25\2\2\u0611\u0612\7"+ - "\u02bd\2\2\u0612\u0613\5\u0202\u0102\2\u0613\u0614\7\u01d6\2\2\u0614\u0615"+ - "\7\u0249\2\2\u0615\u0616\5\u01cc\u00e7\2\u0616\u0618\3\2\2\2\u0617\u05f9"+ - "\3\2\2\2\u0617\u0609\3\2\2\2\u0617\u0610\3\2\2\2\u0618E\3\2\2\2\u0619"+ - "\u061a\7\25\2\2\u061a\u061b\7\u0226\2\2\u061b\u061c\5\u0202\u0102\2\u061c"+ - "\u061d\7\u0195\2\2\u061d\u0621\7\u0249\2\2\u061e\u0622\5\u0202\u0102\2"+ - "\u061f\u0622\7\u008f\2\2\u0620\u0622\7\u0208\2\2\u0621\u061e\3\2\2\2\u0621"+ - "\u061f\3\2\2\2\u0621\u0620\3\2\2\2\u0622\u0632\3\2\2\2\u0623\u0624\7\25"+ - "\2\2\u0624\u0625\7\u0226\2\2\u0625\u0626\5\u0202\u0102\2\u0626\u0627\7"+ - "\u01d6\2\2\u0627\u0628\7\u0249\2\2\u0628\u0629\5\u0202\u0102\2\u0629\u0632"+ - "\3\2\2\2\u062a\u062b\7\25\2\2\u062b\u062c\7\u0226\2\2\u062c\u062d\5\u0202"+ - "\u0102\2\u062d\u062e\7\u0209\2\2\u062e\u062f\7\u01f5\2\2\u062f\u0630\5"+ - "\u0202\u0102\2\u0630\u0632\3\2\2\2\u0631\u0619\3\2\2\2\u0631\u0623\3\2"+ - "\2\2\u0631\u062a\3\2\2\2\u0632G\3\2\2\2\u0633\u0634\7\25\2\2\u0634\u0635"+ - "\7\u0232\2\2\u0635\u0636\5\u0202\u0102\2\u0636\u0637\7m\2\2\u0637\u0638"+ - "\5\u01fe\u0100\2\u0638\u0673\3\2\2\2\u0639\u063a\7\25\2\2\u063a\u063b"+ - "\7\u0232\2\2\u063b\u063c\5\u0202\u0102\2\u063c\u063d\7\u0209\2\2\u063d"+ - "\u063e\7\u01bc\2\2\u063e\u0644\5\u01ce\u00e8\2\u063f\u0640\7\u0288\2\2"+ - "\u0640\u0641\7\u02ff\2\2\u0641\u0642\5\u01d4\u00eb\2\u0642\u0643\7\u0300"+ - "\2\2\u0643\u0645\3\2\2\2\u0644\u063f\3\2\2\2\u0644\u0645\3\2\2\2\u0645"+ - "\u0673\3\2\2\2\u0646\u0647\7\25\2\2\u0647\u0648\7\u0232\2\2\u0648\u0649"+ - "\5\u0202\u0102\2\u0649\u064a\7\u01c9\2\2\u064a\u0650\7\u01bc\2\2\u064b"+ - "\u064c\7\u0288\2\2\u064c\u064d\7\u02ff\2\2\u064d\u064e\5\u01d4\u00eb\2"+ - "\u064e\u064f\7\u0300\2\2\u064f\u0651\3\2\2\2\u0650\u064b\3\2\2\2\u0650"+ + "\u0203\2\2\u05df\u05e0\7\u02b3\2\2\u05e0\u05e2\7\u00d5\2\2\u05e1\u05df"+ + "\3\2\2\2\u05e1\u05e2\3\2\2\2\u05e2\u05e3\3\2\2\2\u05e3\u05e4\5\u01cc\u00e7"+ + "\2\u05e4A\3\2\2\2\u05e5\u05e7\t\6\2\2\u05e6\u05e5\3\2\2\2\u05e6\u05e7"+ + "\3\2\2\2\u05e7\u05e8\3\2\2\2\u05e8\u05ea\5\u0202\u0102\2\u05e9\u05eb\5"+ + "\u01fe\u0100\2\u05ea\u05e9\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05f6\3\2"+ + "\2\2\u05ec\u05ee\7\u02f9\2\2\u05ed\u05ef\t\6\2\2\u05ee\u05ed\3\2\2\2\u05ee"+ + "\u05ef\3\2\2\2\u05ef\u05f0\3\2\2\2\u05f0\u05f2\5\u0202\u0102\2\u05f1\u05f3"+ + "\5\u01fe\u0100\2\u05f2\u05f1\3\2\2\2\u05f2\u05f3\3\2\2\2\u05f3\u05f5\3"+ + "\2\2\2\u05f4\u05ec\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6\u05f4\3\2\2\2\u05f6"+ + "\u05f7\3\2\2\2\u05f7C\3\2\2\2\u05f8\u05f6\3\2\2\2\u05f9\u05fa\7\25\2\2"+ + "\u05fa\u05fb\7\u02bd\2\2\u05fb\u0607\5\u0202\u0102\2\u05fc\u05fd\7\u02b8"+ + "\2\2\u05fd\u0608\7\u0309\2\2\u05fe\u05ff\7\u02b8\2\2\u05ff\u0601\7\u0309"+ + "\2\2\u0600\u05fe\3\2\2\2\u0600\u0601\3\2\2\2\u0601\u0602\3\2\2\2\u0602"+ + "\u0603\7\u0188\2\2\u0603\u0604\7\u02ff\2\2\u0604\u0605\5B\"\2\u0605\u0606"+ + "\7\u0300\2\2\u0606\u0608\3\2\2\2\u0607\u05fc\3\2\2\2\u0607\u0600\3\2\2"+ + "\2\u0608\u0618\3\2\2\2\u0609\u060a\7\25\2\2\u060a\u060b\7\u02bd\2\2\u060b"+ + "\u060c\5\u0202\u0102\2\u060c\u060d\7\u0195\2\2\u060d\u060e\7\u0249\2\2"+ + "\u060e\u060f\5\u01fa\u00fe\2\u060f\u0618\3\2\2\2\u0610\u0611\7\25\2\2"+ + "\u0611\u0612\7\u02bd\2\2\u0612\u0613\5\u0202\u0102\2\u0613\u0614\7\u01d6"+ + "\2\2\u0614\u0615\7\u0249\2\2\u0615\u0616\5\u01cc\u00e7\2\u0616\u0618\3"+ + "\2\2\2\u0617\u05f9\3\2\2\2\u0617\u0609\3\2\2\2\u0617\u0610\3\2\2\2\u0618"+ + "E\3\2\2\2\u0619\u061a\7\25\2\2\u061a\u061b\7\u0226\2\2\u061b\u061c\5\u0202"+ + "\u0102\2\u061c\u061d\7\u0195\2\2\u061d\u0621\7\u0249\2\2\u061e\u0622\5"+ + "\u0202\u0102\2\u061f\u0622\7\u008f\2\2\u0620\u0622\7\u0208\2\2\u0621\u061e"+ + "\3\2\2\2\u0621\u061f\3\2\2\2\u0621\u0620\3\2\2\2\u0622\u0632\3\2\2\2\u0623"+ + "\u0624\7\25\2\2\u0624\u0625\7\u0226\2\2\u0625\u0626\5\u0202\u0102\2\u0626"+ + "\u0627\7\u01d6\2\2\u0627\u0628\7\u0249\2\2\u0628\u0629\5\u0202\u0102\2"+ + "\u0629\u0632\3\2\2\2\u062a\u062b\7\25\2\2\u062b\u062c\7\u0226\2\2\u062c"+ + "\u062d\5\u0202\u0102\2\u062d\u062e\7\u0209\2\2\u062e\u062f\7\u01f5\2\2"+ + "\u062f\u0630\5\u0202\u0102\2\u0630\u0632\3\2\2\2\u0631\u0619\3\2\2\2\u0631"+ + "\u0623\3\2\2\2\u0631\u062a\3\2\2\2\u0632G\3\2\2\2\u0633\u0634\7\25\2\2"+ + "\u0634\u0635\7\u0232\2\2\u0635\u0636\5\u0202\u0102\2\u0636\u0637\7m\2"+ + "\2\u0637\u0638\5\u01fe\u0100\2\u0638\u0673\3\2\2\2\u0639\u063a\7\25\2"+ + "\2\u063a\u063b\7\u0232\2\2\u063b\u063c\5\u0202\u0102\2\u063c\u063d\7\u0209"+ + "\2\2\u063d\u063e\7\u01bc\2\2\u063e\u0644\5\u01ce\u00e8\2\u063f\u0640\7"+ + "\u0288\2\2\u0640\u0641\7\u02ff\2\2\u0641\u0642\5\u01d4\u00eb\2\u0642\u0643"+ + "\7\u0300\2\2\u0643\u0645\3\2\2\2\u0644\u063f\3\2\2\2\u0644\u0645\3\2\2"+ + "\2\u0645\u0673\3\2\2\2\u0646\u0647\7\25\2\2\u0647\u0648\7\u0232\2\2\u0648"+ + "\u0649\5\u0202\u0102\2\u0649\u064a\7\u01c9\2\2\u064a\u0650\7\u01bc\2\2"+ + "\u064b\u064c\7\u0288\2\2\u064c\u064d\7\u02ff\2\2\u064d\u064e\5\u01d4\u00eb"+ + "\2\u064e\u064f\7\u0300\2\2\u064f\u0651\3\2\2\2\u0650\u064b\3\2\2\2\u0650"+ "\u0651\3\2\2\2\u0651\u0673\3\2\2\2\u0652\u0653\7\25\2\2\u0653\u0654\7"+ "\u0232\2\2\u0654\u0655\5\u0202\u0102\2\u0655\u0656\7\u00c5\2\2\u0656\u0673"+ "\3\2\2\2\u0657\u0658\7\25\2\2\u0658\u0659\7\u0232\2\2\u0659\u065a\5\u0202"+ @@ -49541,186 +49568,186 @@ private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { "\3\2\2\2\u117e\u1181\3\2\2\2\u117f\u117d\3\2\2\2\u117f\u1180\3\2\2\2\u1180"+ "\u1183\3\2\2\2\u1181\u117f\3\2\2\2\u1182\u1184\5\u019e\u00d0\2\u1183\u1182"+ "\3\2\2\2\u1183\u1184\3\2\2\2\u1184\u019f\3\2\2\2\u1185\u1186\7\u018a\2"+ - "\2\u1186\u1187\78\2\2\u1187\u118c\5\u01a2"; + "\2\u1186\u1187\78\2\2\u1187\u118c"; private static final String _serializedATNSegment2 = - "\u00d2\2\u1188\u1189\7\u02f9\2\2\u1189\u118b\5\u01a2\u00d2\2\u118a\u1188"+ - "\3\2\2\2\u118b\u118e\3\2\2\2\u118c\u118a\3\2\2\2\u118c\u118d\3\2\2\2\u118d"+ - "\u01a1\3\2\2\2\u118e\u118c\3\2\2\2\u118f\u1192\5\u01b2\u00da\2\u1190\u1192"+ - "\7\u030a\2\2\u1191\u118f\3\2\2\2\u1191\u1190\3\2\2\2\u1192\u1197\3\2\2"+ - "\2\u1193\u1198\7\36\2\2\u1194\u1198\7\u00ad\2\2\u1195\u1196\7\u0273\2"+ - "\2\u1196\u1198\5\u01b2\u00da\2\u1197\u1193\3\2\2\2\u1197\u1194\3\2\2\2"+ - "\u1197\u1195\3\2\2\2\u1197\u1198\3\2\2\2\u1198\u11a4\3\2\2\2\u1199\u119a"+ - "\7\u0177\2\2\u119a\u119b\t\"\2\2\u119b\u11a1\3\2\2\2\u119c\u119d\7\u02f9"+ - "\2\2\u119d\u119e\7\u0177\2\2\u119e\u11a0\t\"\2\2\u119f\u119c\3\2\2\2\u11a0"+ - "\u11a3\3\2\2\2\u11a1\u119f\3\2\2\2\u11a1\u11a2\3\2\2\2\u11a2\u11a5\3\2"+ - "\2\2\u11a3\u11a1\3\2\2\2\u11a4\u1199\3\2\2\2\u11a4\u11a5\3\2\2\2\u11a5"+ - "\u01a3\3\2\2\2\u11a6\u11aa\7\u0138\2\2\u11a7\u11ab\7\u0306\2\2\u11a8\u11ab"+ - "\7\22\2\2\u11a9\u11ab\5\u01e0\u00f1\2\u11aa\u11a7\3\2\2\2\u11aa\u11a8"+ - "\3\2\2\2\u11aa\u11a9\3\2\2\2\u11ab\u01a5\3\2\2\2\u11ac\u11ad\7\u017f\2"+ - "\2\u11ad\u11af\7\u0306\2\2\u11ae\u11b0\t#\2\2\u11af\u11ae\3\2\2\2\u11af"+ - "\u11b0\3\2\2\2\u11b0\u01a7\3\2\2\2\u11b1\u11b2\7\u00dd\2\2\u11b2\u11b4"+ - "\t$\2\2\u11b3\u11b5\7\u0306\2\2\u11b4\u11b3\3\2\2\2\u11b4\u11b5\3\2\2"+ - "\2\u11b5\u11b6\3\2\2\2\u11b6\u11b7\t#\2\2\u11b7\u11b8\7\u0183\2\2\u11b8"+ - "\u01a9\3\2\2\2\u11b9\u11c1\7\u00e5\2\2\u11ba\u11c2\7\u026b\2\2\u11bb\u11bc"+ - "\7\u0169\2\2\u11bc\u11bd\7\u0128\2\2\u11bd\u11c2\7\u026b\2\2\u11be\u11c2"+ - "\7\u020c\2\2\u11bf\u11c0\7\u0128\2\2\u11c0\u11c2\7\u020c\2\2\u11c1\u11ba"+ - "\3\2\2\2\u11c1\u11bb\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1\u11bf\3\2\2\2\u11c2"+ - "\u11cc\3\2\2\2\u11c3\u11c4\7\u017d\2\2\u11c4\u11c9\5\u01d6\u00ec\2\u11c5"+ - "\u11c6\7\u02f9\2\2\u11c6\u11c8\5\u01d6\u00ec\2\u11c7\u11c5\3\2\2\2\u11c8"+ - "\u11cb\3\2\2\2\u11c9\u11c7\3\2\2\2\u11c9\u11ca\3\2\2\2\u11ca\u11cd\3\2"+ - "\2\2\u11cb\u11c9\3\2\2\2\u11cc\u11c3\3\2\2\2\u11cc\u11cd\3\2\2\2\u11cd"+ - "\u11d3\3\2\2\2\u11ce\u11d2\7\u0173\2\2\u11cf\u11d0\7\u0211\2\2\u11d0\u11d2"+ - "\7\u0142\2\2\u11d1\u11ce\3\2\2\2\u11d1\u11cf\3\2\2\2\u11d2\u11d5\3\2\2"+ - "\2\u11d3\u11d1\3\2\2\2\u11d3\u11d4\3\2\2\2\u11d4\u01ab\3\2\2\2\u11d5\u11d3"+ - "\3\2\2\2\u11d6\u11db\5\u01ae\u00d8\2\u11d7\u11d8\7\u02f9\2\2\u11d8\u11da"+ - "\5\u01ae\u00d8\2\u11d9\u11d7\3\2\2\2\u11da\u11dd\3\2\2\2\u11db\u11d9\3"+ - "\2\2\2\u11db\u11dc\3\2\2\2\u11dc\u01ad\3\2\2\2\u11dd\u11db\3\2\2\2\u11de"+ - "\u11e8\5\u01b2\u00da\2\u11df\u11e0\7\u02ff\2\2\u11e0\u11e1\5\u01ce\u00e8"+ - "\2\u11e1\u11e2\7\u0300\2\2\u11e2\u11e5\7\u0318\2\2\u11e3\u11e6\5\u01b2"+ - "\u00da\2\u11e4\u11e6\5\u01b8\u00dd\2\u11e5\u11e3\3\2\2\2\u11e5\u11e4\3"+ - "\2\2\2\u11e6\u11e8\3\2\2\2\u11e7\u11de\3\2\2\2\u11e7\u11df\3\2\2\2\u11e8"+ - "\u01af\3\2\2\2\u11e9\u11ea\7\u01e3\2\2\u11ea\u11eb\5\u018e\u00c8\2\u11eb"+ - "\u01b1\3\2\2\2\u11ec\u11ed\b\u00da\1\2\u11ed\u1237\7\u0174\2\2\u11ee\u1237"+ - "\7\u0088\2\2\u11ef\u1237\7\u008b\2\2\u11f0\u1237\7\u008c\2\2\u11f1\u1237"+ - "\7\u008d\2\2\u11f2\u1237\7\u008f\2\2\u11f3\u1237\7\u009d\2\2\u11f4\u1237"+ - "\7\u0306\2\2\u11f5\u1237\7\u0307\2\2\u11f6\u1237\7\u0305\2\2\u11f7\u1237"+ - "\7\u0309\2\2\u11f8\u1237\7\u0303\2\2\u11f9\u1237\7\u0304\2\2\u11fa\u11fc"+ - "\7\u02fd\2\2\u11fb\u11fd\n%\2\2\u11fc\u11fb\3\2\2\2\u11fd\u11fe\3\2\2"+ - "\2\u11fe\u11fc\3\2\2\2\u11fe\u11ff\3\2\2\2\u11ff\u1200\3\2\2\2\u1200\u1237"+ - "\7\u02fd\2\2\u1201\u1202\7\u02fc\2\2\u1202\u1204\5\u0202\u0102\2\u1203"+ - "\u1205\n%\2\2\u1204\u1203\3\2\2\2\u1205\u1206\3\2\2\2\u1206\u1204\3\2"+ - "\2\2\u1206\u1207\3\2\2\2\u1207\u1208\3\2\2\2\u1208\u1209\7\u02fc\2\2\u1209"+ - "\u120a\5\u0202\u0102\2\u120a\u120b\7\u02fc\2\2\u120b\u1237\3\2\2\2\u120c"+ - "\u1237\5\u01b4\u00db\2\u120d\u1237\5\u017e\u00c0\2\u120e\u1237\5\u01b8"+ - "\u00dd\2\u120f\u1210\7\u02ff\2\2\u1210\u1211\5\u01b2\u00da\2\u1211\u1212"+ - "\7\u0300\2\2\u1212\u1237\3\2\2\2\u1213\u1214\5\u01c4\u00e3\2\u1214\u1215"+ - "\7\u0309\2\2\u1215\u1237\3\2\2\2\u1216\u1217\t&\2\2\u1217\u1237\5\u01b2"+ - "\u00da \u1218\u1219\t\'\2\2\u1219\u1237\5\u01b2\u00da\37\u121a\u121b\t"+ - "(\2\2\u121b\u1237\5\u01b2\u00da\23\u121c\u1237\5\u01e0\u00f1\2\u121d\u1237"+ - "\5\u0202\u0102\2\u121e\u121f\7A\2\2\u121f\u1220\7\u02ff\2\2\u1220\u1221"+ - "\5\u01b2\u00da\2\u1221\u1222\7\35\2\2\u1222\u1223\5\u01d8\u00ed\2\u1223"+ - "\u1224\7\u0300\2\2\u1224\u1237\3\2\2\2\u1225\u1226\5\u0208\u0105\2\u1226"+ - "\u1227\7\u0308\2\2\u1227\u1228\5\u020a\u0106\2\u1228\u1237\3\2\2\2\u1229"+ - "\u1237\5\u01b6\u00dc\2\u122a\u122b\5\u01d8\u00ed\2\u122b\u122c\5\u01b2"+ - "\u00da\13\u122c\u1237\3\2\2\2\u122d\u1237\5\u01ca\u00e6\2\u122e\u1237"+ - "\5\u01e2\u00f2\2\u122f\u1230\7\u00d5\2\2\u1230\u1237\5\u01b2\u00da\5\u1231"+ - "\u1237\7\u030c\2\2\u1232\u1233\7\u02ff\2\2\u1233\u1234\5\u015a\u00ae\2"+ - "\u1234\u1235\7\u0300\2\2\u1235\u1237\3\2\2\2\u1236\u11ec\3\2\2\2\u1236"+ - "\u11ee\3\2\2\2\u1236\u11ef\3\2\2\2\u1236\u11f0\3\2\2\2\u1236\u11f1\3\2"+ - "\2\2\u1236\u11f2\3\2\2\2\u1236\u11f3\3\2\2\2\u1236\u11f4\3\2\2\2\u1236"+ - "\u11f5\3\2\2\2\u1236\u11f6\3\2\2\2\u1236\u11f7\3\2\2\2\u1236\u11f8\3\2"+ - "\2\2\u1236\u11f9\3\2\2\2\u1236\u11fa\3\2\2\2\u1236\u1201\3\2\2\2\u1236"+ - "\u120c\3\2\2\2\u1236\u120d\3\2\2\2\u1236\u120e\3\2\2\2\u1236\u120f\3\2"+ - "\2\2\u1236\u1213\3\2\2\2\u1236\u1216\3\2\2\2\u1236\u1218\3\2\2\2\u1236"+ - "\u121a\3\2\2\2\u1236\u121c\3\2\2\2\u1236\u121d\3\2\2\2\u1236\u121e\3\2"+ - "\2\2\u1236\u1225\3\2\2\2\u1236\u1229\3\2\2\2\u1236\u122a\3\2\2\2\u1236"+ - "\u122d\3\2\2\2\u1236\u122e\3\2\2\2\u1236\u122f\3\2\2\2\u1236\u1231\3\2"+ - "\2\2\u1236\u1232\3\2\2\2\u1237\u129b\3\2\2\2\u1238\u1239\f\35\2\2\u1239"+ - "\u123a\t)\2\2\u123a\u129a\5\u01b2\u00da\36\u123b\u123c\f\34\2\2\u123c"+ - "\u123d\t*\2\2\u123d\u129a\5\u01b2\u00da\35\u123e\u123f\f\33\2\2\u123f"+ - "\u1240\t+\2\2\u1240\u129a\5\u01b2\u00da\34\u1241\u1242\f\32\2\2\u1242"+ - "\u1243\t,\2\2\u1243\u129a\5\u01b2\u00da\33\u1244\u1248\f\31\2\2\u1245"+ - "\u1246\7\u016f\2\2\u1246\u1249\7\u0137\2\2\u1247\u1249\7\u0137\2\2\u1248"+ - "\u1245\3\2\2\2\u1248\u1247\3\2\2\2\u1249\u124a\3\2\2\2\u124a\u129a\5\u01b2"+ - "\u00da\32\u124b\u124d\f\30\2\2\u124c\u124e\7\u016f\2\2\u124d\u124c\3\2"+ - "\2\2\u124d\u124e\3\2\2\2\u124e\u124f\3\2\2\2\u124f\u1250\7-\2\2\u1250"+ - "\u1251\5\u01b2\u00da\2\u1251\u1252\7\31\2\2\u1252\u1253\5\u01b2\u00da"+ - "\31\u1253\u129a\3\2\2\2\u1254\u1255\f\27\2\2\u1255\u1256\7\u010b\2\2\u1256"+ - "\u129a\5\u01b2\u00da\30\u1257\u1258\f\26\2\2\u1258\u1259\t-\2\2\u1259"+ - "\u129a\5\u01b2\u00da\27\u125a\u125b\f\24\2\2\u125b\u125d\7\u0123\2\2\u125c"+ - "\u125e\7\u016f\2\2\u125d\u125c\3\2\2\2\u125d\u125e\3\2\2\2\u125e\u125f"+ - "\3\2\2\2\u125f\u1260\7\u00ba\2\2\u1260\u1261\7\u00ee\2\2\u1261\u129a\5"+ - "\u01b2\u00da\25\u1262\u1263\f#\2\2\u1263\u1264\7\u0301\2\2\u1264\u1265"+ - "\5\u01b2\u00da\2\u1265\u1266\7\u0302\2\2\u1266\u129a\3\2\2\2\u1267\u1268"+ - "\f\36\2\2\u1268\u129a\7\u0314\2\2\u1269\u126a\f\25\2\2\u126a\u126f\7\u0123"+ - "\2\2\u126b\u1270\5\u01b4\u00db\2\u126c\u1270\7\u0174\2\2\u126d\u126e\7"+ - "\u016f\2\2\u126e\u1270\7\u0174\2\2\u126f\u126b\3\2\2\2\u126f\u126c\3\2"+ - "\2\2\u126f\u126d\3\2\2\2\u1270\u129a\3\2\2\2\u1271\u127b\f\r\2\2\u1272"+ - "\u1274\7\u0301\2\2\u1273\u1275\5\u01b2\u00da\2\u1274\u1273\3\2\2\2\u1274"+ - "\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278\7\u02fa\2\2\u1277\u1279"+ - "\5\u01b2\u00da\2\u1278\u1277\3\2\2\2\u1278\u1279\3\2\2\2\u1279\u127a\3"+ - "\2\2\2\u127a\u127c\7\u0302\2\2\u127b\u1272\3\2\2\2\u127c\u127d\3\2\2\2"+ - "\u127d\u127b\3\2\2\2\u127d\u127e\3\2\2\2\u127e\u129a\3\2\2\2\u127f\u1282"+ - "\f\f\2\2\u1280\u1281\7\u02fb\2\2\u1281\u1283\5\u01d8\u00ed\2\u1282\u1280"+ - "\3\2\2\2\u1283\u1284\3\2\2\2\u1284\u1282\3\2\2\2\u1284\u1285\3\2\2\2\u1285"+ - "\u129a\3\2\2\2\u1286\u1287\f\n\2\2\u1287\u1288\7\u0123\2\2\u1288\u1289"+ - "\7\u017d\2\2\u1289\u128a\7\u02ff\2\2\u128a\u128b\5\u01d8\u00ed\2\u128b"+ - "\u128c\7\u0300\2\2\u128c\u129a\3\2\2\2\u128d\u128e\f\t\2\2\u128e\u1291"+ - "\7\u0308\2\2\u128f\u1292\5\u0202\u0102\2\u1290\u1292\7\u02fe\2\2\u1291"+ - "\u128f\3\2\2\2\u1291\u1290\3\2\2\2\u1292\u129a\3\2\2\2\u1293\u1294\f\6"+ - "\2\2\u1294\u1295\7#\2\2\u1295\u1296\7\u0244\2\2\u1296\u1297\7\u0290\2"+ - "\2\u1297\u1298\3\2\2\2\u1298\u129a\7\u0309\2\2\u1299\u1238\3\2\2\2\u1299"+ - "\u123b\3\2\2\2\u1299\u123e\3\2\2\2\u1299\u1241\3\2\2\2\u1299\u1244\3\2"+ - "\2\2\u1299\u124b\3\2\2\2\u1299\u1254\3\2\2\2\u1299\u1257\3\2\2\2\u1299"+ - "\u125a\3\2\2\2\u1299\u1262\3\2\2\2\u1299\u1267\3\2\2\2\u1299\u1269\3\2"+ - "\2\2\u1299\u1271\3\2\2\2\u1299\u127f\3\2\2\2\u1299\u1286\3\2\2\2\u1299"+ - "\u128d\3\2\2\2\u1299\u1293\3\2\2\2\u129a\u129d\3\2\2\2\u129b\u1299\3\2"+ - "\2\2\u129b\u129c\3\2\2\2\u129c\u01b3\3\2\2\2\u129d\u129b\3\2\2\2\u129e"+ - "\u129f\b\u00db\1\2\u129f\u12a4\7\u025b\2\2\u12a0\u12a4\7\u00dc\2\2\u12a1"+ - "\u12a2\7\u016f\2\2\u12a2\u12a4\5\u01b4\u00db\5\u12a3\u129e\3\2\2\2\u12a3"+ - "\u12a0\3\2\2\2\u12a3\u12a1\3\2\2\2\u12a4\u12ad\3\2\2\2\u12a5\u12a6\f\4"+ - "\2\2\u12a6\u12a7\7\31\2\2\u12a7\u12ac\5\u01b4\u00db\5\u12a8\u12a9\f\3"+ - "\2\2\u12a9\u12aa\7\u0189\2\2\u12aa\u12ac\5\u01b4\u00db\4\u12ab\u12a5\3"+ - "\2\2\2\u12ab\u12a8\3\2\2\2\u12ac\u12af\3\2\2\2\u12ad\u12ab\3\2\2\2\u12ad"+ - "\u12ae\3\2\2\2\u12ae\u01b5\3\2\2\2\u12af\u12ad\3\2\2\2\u12b0\u12b1\7@"+ - "\2\2\u12b1\u12b7\5\u01b2\u00da\2\u12b2\u12b3\7\u0283\2\2\u12b3\u12b4\5"+ - "\u01b2\u00da\2\u12b4\u12b5\7\u0242\2\2\u12b5\u12b6\5\u01b2\u00da\2\u12b6"+ - "\u12b8\3\2\2\2\u12b7\u12b2\3\2\2\2\u12b8\u12b9\3\2\2\2\u12b9\u12b7\3\2"+ - "\2\2\u12b9\u12ba\3\2\2\2\u12ba\u12bd\3\2\2\2\u12bb\u12bc\7\u00c4\2\2\u12bc"+ - "\u12be\5\u01b2\u00da\2\u12bd\u12bb\3\2\2\2\u12bd\u12be\3\2\2\2\u12be\u12bf"+ - "\3\2\2\2\u12bf\u12c0\7\u00c8\2\2\u12c0\u12d2\3\2\2\2\u12c1\u12c7\7@\2"+ - "\2\u12c2\u12c3\7\u0283\2\2\u12c3\u12c4\5\u01ec\u00f7\2\u12c4\u12c5\7\u0242"+ - "\2\2\u12c5\u12c6\5\u01b2\u00da\2\u12c6\u12c8\3\2\2\2\u12c7\u12c2\3\2\2"+ - "\2\u12c8\u12c9\3\2\2\2\u12c9\u12c7\3\2\2\2\u12c9\u12ca\3\2\2\2\u12ca\u12cd"+ - "\3\2\2\2\u12cb\u12cc\7\u00c4\2\2\u12cc\u12ce\5\u01b2\u00da\2\u12cd\u12cb"+ - "\3\2\2\2\u12cd\u12ce\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf\u12d0\7\u00c8\2"+ - "\2\u12d0\u12d2\3\2\2\2\u12d1\u12b0\3\2\2\2\u12d1\u12c1\3\2\2\2\u12d2\u01b7"+ - "\3\2\2\2\u12d3\u12d4\7\u02ff\2\2\u12d4\u12d9\5\u01b2\u00da\2\u12d5\u12d6"+ - "\7\u02f9\2\2\u12d6\u12d8\5\u01b2\u00da\2\u12d7\u12d5\3\2\2\2\u12d8\u12db"+ - "\3\2\2\2\u12d9\u12d7\3\2\2\2\u12d9\u12da\3\2\2\2\u12da\u12dc\3\2\2\2\u12db"+ - "\u12d9\3\2\2\2\u12dc\u12dd\7\u0300\2\2\u12dd\u01b9\3\2\2\2\u12de\u12e0"+ - "\7\u02ff\2\2\u12df\u12de\3\2\2\2\u12df\u12e0\3\2\2\2\u12e0\u12e1\3\2\2"+ - "\2\u12e1\u12e6\5\u01b8\u00dd\2\u12e2\u12e3\7\u02f9\2\2\u12e3\u12e5\5\u01b8"+ - "\u00dd\2\u12e4\u12e2\3\2\2\2\u12e5\u12e8\3\2\2\2\u12e6\u12e4\3\2\2\2\u12e6"+ - "\u12e7\3\2\2\2\u12e7\u12ea\3\2\2\2\u12e8\u12e6\3\2\2\2\u12e9\u12eb\7\u0300"+ - "\2\2\u12ea\u12e9\3\2\2\2\u12ea\u12eb\3\2\2\2\u12eb\u01bb\3\2\2\2\u12ec"+ - "\u12ee\t.\2\2\u12ed\u12ec\3\2\2\2\u12ed\u12ee\3\2\2\2\u12ee\u12f0\3\2"+ - "\2\2\u12ef\u12f1\5\u0202\u0102\2\u12f0\u12ef\3\2\2\2\u12f0\u12f1\3\2\2"+ - "\2\u12f1\u12f2\3\2\2\2\u12f2\u12f4\5\u01d8\u00ed\2\u12f3\u12ed\3\2\2\2"+ - "\u12f3\u12f4\3\2\2\2\u12f4\u01bd\3\2\2\2\u12f5\u12fa\5\u01bc\u00df\2\u12f6"+ - "\u12f7\7\u02f9\2\2\u12f7\u12f9\5\u01bc\u00df\2\u12f8\u12f6\3\2\2\2\u12f9"+ - "\u12fc\3\2\2\2\u12fa\u12f8\3\2\2\2\u12fa\u12fb\3\2\2\2\u12fb\u01bf\3\2"+ - "\2\2\u12fc\u12fa\3\2\2\2\u12fd\u1302\5\u0202\u0102\2\u12fe\u12ff\7\u02ff"+ - "\2\2\u12ff\u1300\5\u01be\u00e0\2\u1300\u1301\7\u0300\2\2\u1301\u1303\3"+ - "\2\2\2\u1302\u12fe\3\2\2\2\u1302\u1303\3\2\2\2\u1303\u01c1\3\2\2\2\u1304"+ - "\u1309\5\u01c0\u00e1\2\u1305\u1306\7\u02f9\2\2\u1306\u1308\5\u01c0\u00e1"+ - "\2\u1307\u1305\3\2\2\2\u1308\u130b\3\2\2\2\u1309\u1307\3\2\2\2\u1309\u130a"+ - "\3\2\2\2\u130a\u01c3\3\2\2\2\u130b\u1309\3\2\2\2\u130c\u139d\7\u02d0\2"+ - "\2\u130d\u139d\7\u02e9\2\2\u130e\u139d\7.\2\2\u130f\u139d\7\u02d1\2\2"+ - "\u1310\u1314\7\60\2\2\u1311\u1312\7\u02ff\2\2\u1312\u1313\7\u0306\2\2"+ - "\u1313\u1315\7\u0300\2\2\u1314\u1311\3\2\2\2\u1314\u1315\3\2\2\2\u1315"+ - "\u139d\3\2\2\2\u1316\u131a\7\u02d2\2\2\u1317\u1318\7\u02ff\2\2\u1318\u1319"+ - "\7\u0306\2\2\u1319\u131b\7\u0300\2\2\u131a\u1317\3\2\2\2\u131a\u131b\3"+ - "\2\2\2\u131b\u139d\3\2\2\2\u131c\u139d\7\u02d3\2\2\u131d\u139d\7\64\2"+ - "\2\u131e\u139d\7\u02d4\2\2\u131f\u139d\7\u02d5\2\2\u1320\u1324\7G\2\2"+ - "\u1321\u1322\7\u02ff\2\2\u1322\u1323\7\u0306\2\2\u1323\u1325\7\u0300\2"+ - "\2\u1324\u1321\3\2\2\2\u1324\u1325\3\2\2\2\u1325\u139d\3\2\2\2\u1326\u132a"+ - "\7I\2\2\u1327\u1328\7\u02ff\2\2\u1328\u1329\7\u0306\2\2\u1329\u132b\7"+ - "\u0300\2\2\u132a\u1327\3\2\2\2\u132a\u132b\3\2\2\2\u132b\u139d\3\2\2\2"+ - "\u132c\u1330\7\u02d6\2\2\u132d\u132e\7\u02ff\2\2\u132e\u132f\7\u0306\2"+ - "\2\u132f\u1331\7\u0300\2\2\u1330\u132d\3\2\2\2\u1330\u1331\3\2\2\2\u1331"+ - "\u139d\3\2\2\2\u1332\u139d\7\u02d7\2\2\u1333\u139d\7\u02d8\2\2\u1334\u139d"+ - "\7\u0095\2\2\u1335\u133b\7\u009b\2\2\u1336\u1337\7\u02ff\2\2\u1337\u1338"+ - "\7\u0306\2\2\u1338\u1339\7\u02f9\2\2\u1339\u133a\7\u0306\2\2\u133a\u133c"+ - "\7\u0300\2\2\u133b\u1336\3\2\2\2\u133b\u133c\3\2\2\2\u133c\u139d\3\2\2"+ - "\2\u133d\u133e\7\u00bd\2\2\u133e\u139d\7\u01b0\2\2\u133f\u139d\7\u02d9"+ - "\2\2\u1340\u139d\7\u02da\2\2\u1341\u139d\7\u02db\2\2\u1342\u139d\7\u011c"+ - "\2\2\u1343\u139d\7\u02dd\2\2\u1344\u139d\7\u02dc\2\2\u1345\u139d\7\u02de"+ - "\2\2\u1346\u139d\7\u011d\2\2\u1347\u1349\7\u0120\2\2\u1348\u134a\7\u00de"+ - "\2\2\u1349\u1348\3\2\2\2\u1349\u134a\3\2\2\2\u134a\u134c\3\2\2\2\u134b"+ - "\u134d\7\u0306\2\2\u134c\u134b\3\2\2\2\u134c\u134d\3\2\2\2\u134d\u139d"+ - "\3\2\2\2\u134e\u139d\7\u02df\2\2\u134f\u139d\7\u02e0\2\2\u1350\u139d\7"+ - "\u02e1\2\2\u1351\u139d\7\u02e2\2\2\u1352\u139d\7\u02e3\2\2\u1353\u139d"+ + "\5\u01a2\u00d2\2\u1188\u1189\7\u02f9\2\2\u1189\u118b\5\u01a2\u00d2\2\u118a"+ + "\u1188\3\2\2\2\u118b\u118e\3\2\2\2\u118c\u118a\3\2\2\2\u118c\u118d\3\2"+ + "\2\2\u118d\u01a1\3\2\2\2\u118e\u118c\3\2\2\2\u118f\u1192\5\u01b2\u00da"+ + "\2\u1190\u1192\7\u030a\2\2\u1191\u118f\3\2\2\2\u1191\u1190\3\2\2\2\u1192"+ + "\u1197\3\2\2\2\u1193\u1198\7\36\2\2\u1194\u1198\7\u00ad\2\2\u1195\u1196"+ + "\7\u0273\2\2\u1196\u1198\5\u01b2\u00da\2\u1197\u1193\3\2\2\2\u1197\u1194"+ + "\3\2\2\2\u1197\u1195\3\2\2\2\u1197\u1198\3\2\2\2\u1198\u11a4\3\2\2\2\u1199"+ + "\u119a\7\u0177\2\2\u119a\u119b\t\"\2\2\u119b\u11a1\3\2\2\2\u119c\u119d"+ + "\7\u02f9\2\2\u119d\u119e\7\u0177\2\2\u119e\u11a0\t\"\2\2\u119f\u119c\3"+ + "\2\2\2\u11a0\u11a3\3\2\2\2\u11a1\u119f\3\2\2\2\u11a1\u11a2\3\2\2\2\u11a2"+ + "\u11a5\3\2\2\2\u11a3\u11a1\3\2\2\2\u11a4\u1199\3\2\2\2\u11a4\u11a5\3\2"+ + "\2\2\u11a5\u01a3\3\2\2\2\u11a6\u11aa\7\u0138\2\2\u11a7\u11ab\7\u0306\2"+ + "\2\u11a8\u11ab\7\22\2\2\u11a9\u11ab\5\u01e0\u00f1\2\u11aa\u11a7\3\2\2"+ + "\2\u11aa\u11a8\3\2\2\2\u11aa\u11a9\3\2\2\2\u11ab\u01a5\3\2\2\2\u11ac\u11ad"+ + "\7\u017f\2\2\u11ad\u11af\7\u0306\2\2\u11ae\u11b0\t#\2\2\u11af\u11ae\3"+ + "\2\2\2\u11af\u11b0\3\2\2\2\u11b0\u01a7\3\2\2\2\u11b1\u11b2\7\u00dd\2\2"+ + "\u11b2\u11b4\t$\2\2\u11b3\u11b5\7\u0306\2\2\u11b4\u11b3\3\2\2\2\u11b4"+ + "\u11b5\3\2\2\2\u11b5\u11b6\3\2\2\2\u11b6\u11b7\t#\2\2\u11b7\u11b8\7\u0183"+ + "\2\2\u11b8\u01a9\3\2\2\2\u11b9\u11c1\7\u00e5\2\2\u11ba\u11c2\7\u026b\2"+ + "\2\u11bb\u11bc\7\u0169\2\2\u11bc\u11bd\7\u0128\2\2\u11bd\u11c2\7\u026b"+ + "\2\2\u11be\u11c2\7\u020c\2\2\u11bf\u11c0\7\u0128\2\2\u11c0\u11c2\7\u020c"+ + "\2\2\u11c1\u11ba\3\2\2\2\u11c1\u11bb\3\2\2\2\u11c1\u11be\3\2\2\2\u11c1"+ + "\u11bf\3\2\2\2\u11c2\u11cc\3\2\2\2\u11c3\u11c4\7\u017d\2\2\u11c4\u11c9"+ + "\5\u01d6\u00ec\2\u11c5\u11c6\7\u02f9\2\2\u11c6\u11c8\5\u01d6\u00ec\2\u11c7"+ + "\u11c5\3\2\2\2\u11c8\u11cb\3\2\2\2\u11c9\u11c7\3\2\2\2\u11c9\u11ca\3\2"+ + "\2\2\u11ca\u11cd\3\2\2\2\u11cb\u11c9\3\2\2\2\u11cc\u11c3\3\2\2\2\u11cc"+ + "\u11cd\3\2\2\2\u11cd\u11d3\3\2\2\2\u11ce\u11d2\7\u0173\2\2\u11cf\u11d0"+ + "\7\u0211\2\2\u11d0\u11d2\7\u0142\2\2\u11d1\u11ce\3\2\2\2\u11d1\u11cf\3"+ + "\2\2\2\u11d2\u11d5\3\2\2\2\u11d3\u11d1\3\2\2\2\u11d3\u11d4\3\2\2\2\u11d4"+ + "\u01ab\3\2\2\2\u11d5\u11d3\3\2\2\2\u11d6\u11db\5\u01ae\u00d8\2\u11d7\u11d8"+ + "\7\u02f9\2\2\u11d8\u11da\5\u01ae\u00d8\2\u11d9\u11d7\3\2\2\2\u11da\u11dd"+ + "\3\2\2\2\u11db\u11d9\3\2\2\2\u11db\u11dc\3\2\2\2\u11dc\u01ad\3\2\2\2\u11dd"+ + "\u11db\3\2\2\2\u11de\u11e8\5\u01b2\u00da\2\u11df\u11e0\7\u02ff\2\2\u11e0"+ + "\u11e1\5\u01ce\u00e8\2\u11e1\u11e2\7\u0300\2\2\u11e2\u11e5\7\u0318\2\2"+ + "\u11e3\u11e6\5\u01b2\u00da\2\u11e4\u11e6\5\u01b8\u00dd\2\u11e5\u11e3\3"+ + "\2\2\2\u11e5\u11e4\3\2\2\2\u11e6\u11e8\3\2\2\2\u11e7\u11de\3\2\2\2\u11e7"+ + "\u11df\3\2\2\2\u11e8\u01af\3\2\2\2\u11e9\u11ea\7\u01e3\2\2\u11ea\u11eb"+ + "\5\u018e\u00c8\2\u11eb\u01b1\3\2\2\2\u11ec\u11ed\b\u00da\1\2\u11ed\u1237"+ + "\7\u0174\2\2\u11ee\u1237\7\u0088\2\2\u11ef\u1237\7\u008b\2\2\u11f0\u1237"+ + "\7\u008c\2\2\u11f1\u1237\7\u008d\2\2\u11f2\u1237\7\u008f\2\2\u11f3\u1237"+ + "\7\u009d\2\2\u11f4\u1237\7\u0306\2\2\u11f5\u1237\7\u0307\2\2\u11f6\u1237"+ + "\7\u0305\2\2\u11f7\u1237\7\u0309\2\2\u11f8\u1237\7\u0303\2\2\u11f9\u1237"+ + "\7\u0304\2\2\u11fa\u11fc\7\u02fd\2\2\u11fb\u11fd\n%\2\2\u11fc\u11fb\3"+ + "\2\2\2\u11fd\u11fe\3\2\2\2\u11fe\u11fc\3\2\2\2\u11fe\u11ff\3\2\2\2\u11ff"+ + "\u1200\3\2\2\2\u1200\u1237\7\u02fd\2\2\u1201\u1202\7\u02fc\2\2\u1202\u1204"+ + "\5\u0202\u0102\2\u1203\u1205\n%\2\2\u1204\u1203\3\2\2\2\u1205\u1206\3"+ + "\2\2\2\u1206\u1204\3\2\2\2\u1206\u1207\3\2\2\2\u1207\u1208\3\2\2\2\u1208"+ + "\u1209\7\u02fc\2\2\u1209\u120a\5\u0202\u0102\2\u120a\u120b\7\u02fc\2\2"+ + "\u120b\u1237\3\2\2\2\u120c\u1237\5\u01b4\u00db\2\u120d\u1237\5\u017e\u00c0"+ + "\2\u120e\u1237\5\u01b8\u00dd\2\u120f\u1210\7\u02ff\2\2\u1210\u1211\5\u01b2"+ + "\u00da\2\u1211\u1212\7\u0300\2\2\u1212\u1237\3\2\2\2\u1213\u1214\5\u01c4"+ + "\u00e3\2\u1214\u1215\7\u0309\2\2\u1215\u1237\3\2\2\2\u1216\u1217\t&\2"+ + "\2\u1217\u1237\5\u01b2\u00da \u1218\u1219\t\'\2\2\u1219\u1237\5\u01b2"+ + "\u00da\37\u121a\u121b\t(\2\2\u121b\u1237\5\u01b2\u00da\23\u121c\u1237"+ + "\5\u01e0\u00f1\2\u121d\u1237\5\u0202\u0102\2\u121e\u121f\7A\2\2\u121f"+ + "\u1220\7\u02ff\2\2\u1220\u1221\5\u01b2\u00da\2\u1221\u1222\7\35\2\2\u1222"+ + "\u1223\5\u01d8\u00ed\2\u1223\u1224\7\u0300\2\2\u1224\u1237\3\2\2\2\u1225"+ + "\u1226\5\u0208\u0105\2\u1226\u1227\7\u0308\2\2\u1227\u1228\5\u020a\u0106"+ + "\2\u1228\u1237\3\2\2\2\u1229\u1237\5\u01b6\u00dc\2\u122a\u122b\5\u01d8"+ + "\u00ed\2\u122b\u122c\5\u01b2\u00da\13\u122c\u1237\3\2\2\2\u122d\u1237"+ + "\5\u01ca\u00e6\2\u122e\u1237\5\u01e2\u00f2\2\u122f\u1230\7\u00d5\2\2\u1230"+ + "\u1237\5\u01b2\u00da\5\u1231\u1237\7\u030c\2\2\u1232\u1233\7\u02ff\2\2"+ + "\u1233\u1234\5\u015a\u00ae\2\u1234\u1235\7\u0300\2\2\u1235\u1237\3\2\2"+ + "\2\u1236\u11ec\3\2\2\2\u1236\u11ee\3\2\2\2\u1236\u11ef\3\2\2\2\u1236\u11f0"+ + "\3\2\2\2\u1236\u11f1\3\2\2\2\u1236\u11f2\3\2\2\2\u1236\u11f3\3\2\2\2\u1236"+ + "\u11f4\3\2\2\2\u1236\u11f5\3\2\2\2\u1236\u11f6\3\2\2\2\u1236\u11f7\3\2"+ + "\2\2\u1236\u11f8\3\2\2\2\u1236\u11f9\3\2\2\2\u1236\u11fa\3\2\2\2\u1236"+ + "\u1201\3\2\2\2\u1236\u120c\3\2\2\2\u1236\u120d\3\2\2\2\u1236\u120e\3\2"+ + "\2\2\u1236\u120f\3\2\2\2\u1236\u1213\3\2\2\2\u1236\u1216\3\2\2\2\u1236"+ + "\u1218\3\2\2\2\u1236\u121a\3\2\2\2\u1236\u121c\3\2\2\2\u1236\u121d\3\2"+ + "\2\2\u1236\u121e\3\2\2\2\u1236\u1225\3\2\2\2\u1236\u1229\3\2\2\2\u1236"+ + "\u122a\3\2\2\2\u1236\u122d\3\2\2\2\u1236\u122e\3\2\2\2\u1236\u122f\3\2"+ + "\2\2\u1236\u1231\3\2\2\2\u1236\u1232\3\2\2\2\u1237\u129b\3\2\2\2\u1238"+ + "\u1239\f\35\2\2\u1239\u123a\t)\2\2\u123a\u129a\5\u01b2\u00da\36\u123b"+ + "\u123c\f\34\2\2\u123c\u123d\t*\2\2\u123d\u129a\5\u01b2\u00da\35\u123e"+ + "\u123f\f\33\2\2\u123f\u1240\t+\2\2\u1240\u129a\5\u01b2\u00da\34\u1241"+ + "\u1242\f\32\2\2\u1242\u1243\t,\2\2\u1243\u129a\5\u01b2\u00da\33\u1244"+ + "\u1248\f\31\2\2\u1245\u1246\7\u016f\2\2\u1246\u1249\7\u0137\2\2\u1247"+ + "\u1249\7\u0137\2\2\u1248\u1245\3\2\2\2\u1248\u1247\3\2\2\2\u1249\u124a"+ + "\3\2\2\2\u124a\u129a\5\u01b2\u00da\32\u124b\u124d\f\30\2\2\u124c\u124e"+ + "\7\u016f\2\2\u124d\u124c\3\2\2\2\u124d\u124e\3\2\2\2\u124e\u124f\3\2\2"+ + "\2\u124f\u1250\7-\2\2\u1250\u1251\5\u01b2\u00da\2\u1251\u1252\7\31\2\2"+ + "\u1252\u1253\5\u01b2\u00da\31\u1253\u129a\3\2\2\2\u1254\u1255\f\27\2\2"+ + "\u1255\u1256\7\u010b\2\2\u1256\u129a\5\u01b2\u00da\30\u1257\u1258\f\26"+ + "\2\2\u1258\u1259\t-\2\2\u1259\u129a\5\u01b2\u00da\27\u125a\u125b\f\24"+ + "\2\2\u125b\u125d\7\u0123\2\2\u125c\u125e\7\u016f\2\2\u125d\u125c\3\2\2"+ + "\2\u125d\u125e\3\2\2\2\u125e\u125f\3\2\2\2\u125f\u1260\7\u00ba\2\2\u1260"+ + "\u1261\7\u00ee\2\2\u1261\u129a\5\u01b2\u00da\25\u1262\u1263\f#\2\2\u1263"+ + "\u1264\7\u0301\2\2\u1264\u1265\5\u01b2\u00da\2\u1265\u1266\7\u0302\2\2"+ + "\u1266\u129a\3\2\2\2\u1267\u1268\f\36\2\2\u1268\u129a\7\u0314\2\2\u1269"+ + "\u126a\f\25\2\2\u126a\u126f\7\u0123\2\2\u126b\u1270\5\u01b4\u00db\2\u126c"+ + "\u1270\7\u0174\2\2\u126d\u126e\7\u016f\2\2\u126e\u1270\7\u0174\2\2\u126f"+ + "\u126b\3\2\2\2\u126f\u126c\3\2\2\2\u126f\u126d\3\2\2\2\u1270\u129a\3\2"+ + "\2\2\u1271\u127b\f\r\2\2\u1272\u1274\7\u0301\2\2\u1273\u1275\5\u01b2\u00da"+ + "\2\u1274\u1273\3\2\2\2\u1274\u1275\3\2\2\2\u1275\u1276\3\2\2\2\u1276\u1278"+ + "\7\u02fa\2\2\u1277\u1279\5\u01b2\u00da\2\u1278\u1277\3\2\2\2\u1278\u1279"+ + "\3\2\2\2\u1279\u127a\3\2\2\2\u127a\u127c\7\u0302\2\2\u127b\u1272\3\2\2"+ + "\2\u127c\u127d\3\2\2\2\u127d\u127b\3\2\2\2\u127d\u127e\3\2\2\2\u127e\u129a"+ + "\3\2\2\2\u127f\u1282\f\f\2\2\u1280\u1281\7\u02fb\2\2\u1281\u1283\5\u01d8"+ + "\u00ed\2\u1282\u1280\3\2\2\2\u1283\u1284\3\2\2\2\u1284\u1282\3\2\2\2\u1284"+ + "\u1285\3\2\2\2\u1285\u129a\3\2\2\2\u1286\u1287\f\n\2\2\u1287\u1288\7\u0123"+ + "\2\2\u1288\u1289\7\u017d\2\2\u1289\u128a\7\u02ff\2\2\u128a\u128b\5\u01d8"+ + "\u00ed\2\u128b\u128c\7\u0300\2\2\u128c\u129a\3\2\2\2\u128d\u128e\f\t\2"+ + "\2\u128e\u1291\7\u0308\2\2\u128f\u1292\5\u0202\u0102\2\u1290\u1292\7\u02fe"+ + "\2\2\u1291\u128f\3\2\2\2\u1291\u1290\3\2\2\2\u1292\u129a\3\2\2\2\u1293"+ + "\u1294\f\6\2\2\u1294\u1295\7#\2\2\u1295\u1296\7\u0244\2\2\u1296\u1297"+ + "\7\u0290\2\2\u1297\u1298\3\2\2\2\u1298\u129a\7\u0309\2\2\u1299\u1238\3"+ + "\2\2\2\u1299\u123b\3\2\2\2\u1299\u123e\3\2\2\2\u1299\u1241\3\2\2\2\u1299"+ + "\u1244\3\2\2\2\u1299\u124b\3\2\2\2\u1299\u1254\3\2\2\2\u1299\u1257\3\2"+ + "\2\2\u1299\u125a\3\2\2\2\u1299\u1262\3\2\2\2\u1299\u1267\3\2\2\2\u1299"+ + "\u1269\3\2\2\2\u1299\u1271\3\2\2\2\u1299\u127f\3\2\2\2\u1299\u1286\3\2"+ + "\2\2\u1299\u128d\3\2\2\2\u1299\u1293\3\2\2\2\u129a\u129d\3\2\2\2\u129b"+ + "\u1299\3\2\2\2\u129b\u129c\3\2\2\2\u129c\u01b3\3\2\2\2\u129d\u129b\3\2"+ + "\2\2\u129e\u129f\b\u00db\1\2\u129f\u12a4\7\u025b\2\2\u12a0\u12a4\7\u00dc"+ + "\2\2\u12a1\u12a2\7\u016f\2\2\u12a2\u12a4\5\u01b4\u00db\5\u12a3\u129e\3"+ + "\2\2\2\u12a3\u12a0\3\2\2\2\u12a3\u12a1\3\2\2\2\u12a4\u12ad\3\2\2\2\u12a5"+ + "\u12a6\f\4\2\2\u12a6\u12a7\7\31\2\2\u12a7\u12ac\5\u01b4\u00db\5\u12a8"+ + "\u12a9\f\3\2\2\u12a9\u12aa\7\u0189\2\2\u12aa\u12ac\5\u01b4\u00db\4\u12ab"+ + "\u12a5\3\2\2\2\u12ab\u12a8\3\2\2\2\u12ac\u12af\3\2\2\2\u12ad\u12ab\3\2"+ + "\2\2\u12ad\u12ae\3\2\2\2\u12ae\u01b5\3\2\2\2\u12af\u12ad\3\2\2\2\u12b0"+ + "\u12b1\7@\2\2\u12b1\u12b7\5\u01b2\u00da\2\u12b2\u12b3\7\u0283\2\2\u12b3"+ + "\u12b4\5\u01b2\u00da\2\u12b4\u12b5\7\u0242\2\2\u12b5\u12b6\5\u01b2\u00da"+ + "\2\u12b6\u12b8\3\2\2\2\u12b7\u12b2\3\2\2\2\u12b8\u12b9\3\2\2\2\u12b9\u12b7"+ + "\3\2\2\2\u12b9\u12ba\3\2\2\2\u12ba\u12bd\3\2\2\2\u12bb\u12bc\7\u00c4\2"+ + "\2\u12bc\u12be\5\u01b2\u00da\2\u12bd\u12bb\3\2\2\2\u12bd\u12be\3\2\2\2"+ + "\u12be\u12bf\3\2\2\2\u12bf\u12c0\7\u00c8\2\2\u12c0\u12d2\3\2\2\2\u12c1"+ + "\u12c7\7@\2\2\u12c2\u12c3\7\u0283\2\2\u12c3\u12c4\5\u01ec\u00f7\2\u12c4"+ + "\u12c5\7\u0242\2\2\u12c5\u12c6\5\u01b2\u00da\2\u12c6\u12c8\3\2\2\2\u12c7"+ + "\u12c2\3\2\2\2\u12c8\u12c9\3\2\2\2\u12c9\u12c7\3\2\2\2\u12c9\u12ca\3\2"+ + "\2\2\u12ca\u12cd\3\2\2\2\u12cb\u12cc\7\u00c4\2\2\u12cc\u12ce\5\u01b2\u00da"+ + "\2\u12cd\u12cb\3\2\2\2\u12cd\u12ce\3\2\2\2\u12ce\u12cf\3\2\2\2\u12cf\u12d0"+ + "\7\u00c8\2\2\u12d0\u12d2\3\2\2\2\u12d1\u12b0\3\2\2\2\u12d1\u12c1\3\2\2"+ + "\2\u12d2\u01b7\3\2\2\2\u12d3\u12d4\7\u02ff\2\2\u12d4\u12d9\5\u01b2\u00da"+ + "\2\u12d5\u12d6\7\u02f9\2\2\u12d6\u12d8\5\u01b2\u00da\2\u12d7\u12d5\3\2"+ + "\2\2\u12d8\u12db\3\2\2\2\u12d9\u12d7\3\2\2\2\u12d9\u12da\3\2\2\2\u12da"+ + "\u12dc\3\2\2\2\u12db\u12d9\3\2\2\2\u12dc\u12dd\7\u0300\2\2\u12dd\u01b9"+ + "\3\2\2\2\u12de\u12e0\7\u02ff\2\2\u12df\u12de\3\2\2\2\u12df\u12e0\3\2\2"+ + "\2\u12e0\u12e1\3\2\2\2\u12e1\u12e6\5\u01b8\u00dd\2\u12e2\u12e3\7\u02f9"+ + "\2\2\u12e3\u12e5\5\u01b8\u00dd\2\u12e4\u12e2\3\2\2\2\u12e5\u12e8\3\2\2"+ + "\2\u12e6\u12e4\3\2\2\2\u12e6\u12e7\3\2\2\2\u12e7\u12ea\3\2\2\2\u12e8\u12e6"+ + "\3\2\2\2\u12e9\u12eb\7\u0300\2\2\u12ea\u12e9\3\2\2\2\u12ea\u12eb\3\2\2"+ + "\2\u12eb\u01bb\3\2\2\2\u12ec\u12ee\t.\2\2\u12ed\u12ec\3\2\2\2\u12ed\u12ee"+ + "\3\2\2\2\u12ee\u12f0\3\2\2\2\u12ef\u12f1\5\u0202\u0102\2\u12f0\u12ef\3"+ + "\2\2\2\u12f0\u12f1\3\2\2\2\u12f1\u12f2\3\2\2\2\u12f2\u12f4\5\u01d8\u00ed"+ + "\2\u12f3\u12ed\3\2\2\2\u12f3\u12f4\3\2\2\2\u12f4\u01bd\3\2\2\2\u12f5\u12fa"+ + "\5\u01bc\u00df\2\u12f6\u12f7\7\u02f9\2\2\u12f7\u12f9\5\u01bc\u00df\2\u12f8"+ + "\u12f6\3\2\2\2\u12f9\u12fc\3\2\2\2\u12fa\u12f8\3\2\2\2\u12fa\u12fb\3\2"+ + "\2\2\u12fb\u01bf\3\2\2\2\u12fc\u12fa\3\2\2\2\u12fd\u1302\5\u0202\u0102"+ + "\2\u12fe\u12ff\7\u02ff\2\2\u12ff\u1300\5\u01be\u00e0\2\u1300\u1301\7\u0300"+ + "\2\2\u1301\u1303\3\2\2\2\u1302\u12fe\3\2\2\2\u1302\u1303\3\2\2\2\u1303"+ + "\u01c1\3\2\2\2\u1304\u1309\5\u01c0\u00e1\2\u1305\u1306\7\u02f9\2\2\u1306"+ + "\u1308\5\u01c0\u00e1\2\u1307\u1305\3\2\2\2\u1308\u130b\3\2\2\2\u1309\u1307"+ + "\3\2\2\2\u1309\u130a\3\2\2\2\u130a\u01c3\3\2\2\2\u130b\u1309\3\2\2\2\u130c"+ + "\u139d\7\u02d0\2\2\u130d\u139d\7\u02e9\2\2\u130e\u139d\7.\2\2\u130f\u139d"+ + "\7\u02d1\2\2\u1310\u1314\7\60\2\2\u1311\u1312\7\u02ff\2\2\u1312\u1313"+ + "\7\u0306\2\2\u1313\u1315\7\u0300\2\2\u1314\u1311\3\2\2\2\u1314\u1315\3"+ + "\2\2\2\u1315\u139d\3\2\2\2\u1316\u131a\7\u02d2\2\2\u1317\u1318\7\u02ff"+ + "\2\2\u1318\u1319\7\u0306\2\2\u1319\u131b\7\u0300\2\2\u131a\u1317\3\2\2"+ + "\2\u131a\u131b\3\2\2\2\u131b\u139d\3\2\2\2\u131c\u139d\7\u02d3\2\2\u131d"+ + "\u139d\7\64\2\2\u131e\u139d\7\u02d4\2\2\u131f\u139d\7\u02d5\2\2\u1320"+ + "\u1324\7G\2\2\u1321\u1322\7\u02ff\2\2\u1322\u1323\7\u0306\2\2\u1323\u1325"+ + "\7\u0300\2\2\u1324\u1321\3\2\2\2\u1324\u1325\3\2\2\2\u1325\u139d\3\2\2"+ + "\2\u1326\u132a\7I\2\2\u1327\u1328\7\u02ff\2\2\u1328\u1329\7\u0306\2\2"+ + "\u1329\u132b\7\u0300\2\2\u132a\u1327\3\2\2\2\u132a\u132b\3\2\2\2\u132b"+ + "\u139d\3\2\2\2\u132c\u1330\7\u02d6\2\2\u132d\u132e\7\u02ff\2\2\u132e\u132f"+ + "\7\u0306\2\2\u132f\u1331\7\u0300\2\2\u1330\u132d\3\2\2\2\u1330\u1331\3"+ + "\2\2\2\u1331\u139d\3\2\2\2\u1332\u139d\7\u02d7\2\2\u1333\u139d\7\u02d8"+ + "\2\2\u1334\u139d\7\u0095\2\2\u1335\u133b\7\u009b\2\2\u1336\u1337\7\u02ff"+ + "\2\2\u1337\u1338\7\u0306\2\2\u1338\u1339\7\u02f9\2\2\u1339\u133a\7\u0306"+ + "\2\2\u133a\u133c\7\u0300\2\2\u133b\u1336\3\2\2\2\u133b\u133c\3\2\2\2\u133c"+ + "\u139d\3\2\2\2\u133d\u133e\7\u00bd\2\2\u133e\u139d\7\u01b0\2\2\u133f\u139d"+ + "\7\u02d9\2\2\u1340\u139d\7\u02da\2\2\u1341\u139d\7\u02db\2\2\u1342\u139d"+ + "\7\u011c\2\2\u1343\u139d\7\u02dd\2\2\u1344\u139d\7\u02dc\2\2\u1345\u139d"+ + "\7\u02de\2\2\u1346\u139d\7\u011d\2\2\u1347\u1349\7\u0120\2\2\u1348\u134a"+ + "\7\u00de\2\2\u1349\u1348\3\2\2\2\u1349\u134a\3\2\2\2\u134a\u134c\3\2\2"+ + "\2\u134b\u134d\7\u0306\2\2\u134c\u134b\3\2\2\2\u134c\u134d\3\2\2\2\u134d"+ + "\u139d\3\2\2\2\u134e\u139d\7\u02df\2\2\u134f\u139d\7\u02e0\2\2\u1350\u139d"+ + "\7\u02e1\2\2\u1351\u139d\7\u02e2\2\2\u1352\u139d\7\u02e3\2\2\u1353\u139d"+ "\7\u02e4\2\2\u1354\u139d\7\u02e5\2\2\u1355\u135b\7\u0179\2\2\u1356\u1357"+ "\7\u02ff\2\2\u1357\u1358\7\u0306\2\2\u1358\u1359\7\u02f9\2\2\u1359\u135a"+ "\7\u0306\2\2\u135a\u135c\7\u0300\2\2\u135b\u1356\3\2\2\2\u135b\u135c\3"+ From 3b0c8e463969af8c90a5462a6362c33a6d7c3faf Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 4 Apr 2023 11:38:26 +0800 Subject: [PATCH 54/56] querySql --- .../com/github/bigdata/sql/parser/datax/reader/DBReader.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt index 52c36e3..6f61ca2 100644 --- a/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt +++ b/src/main/kotlin/com/github/bigdata/sql/parser/datax/reader/DBReader.kt @@ -81,7 +81,7 @@ class DBReader { @Throws(Exception::class) private fun db(connection: JSONObject) { - if (!reader!!.containsKey("column")) { + if (connection!!.containsKey("querySql")) { val querySql = connection.getJSONArray("querySql").getStr(0) val statement = getStatementData(querySql).statement val tableData: TableData From e82a0a5f7e07b002d275ee91929f2120c331e619 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 4 Apr 2023 11:39:25 +0800 Subject: [PATCH 55/56] prefix --- .../bigdata/sql/antlr4/pg/PostgreSQLParser.g4 | 1 + .../sql/antlr4/pg/PostgreSQLParser.java | 59 ++++++++++++++----- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 index 48ee791..690b1ab 100644 --- a/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 +++ b/src/main/antlr4/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.g4 @@ -1877,6 +1877,7 @@ non_reserved_keyword | VAR_POP | VAR_SAMP | VIEW | VOLATILE | WHENEVER | WHITESPACE | WIDTH_BUCKET | WITHIN | WITHOUT | WORK | WRITE | YEAR | ZONE | DISABLE_P | ALIAS | ENABLE | VERSION + | PREFIX ; identifier diff --git a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java index f23405c..f15c1f1 100644 --- a/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java +++ b/src/main/java/com/github/bigdata/sql/antlr4/pg/PostgreSQLParser.java @@ -2870,6 +2870,7 @@ public final Alter_event_trigger_stmtContext alter_event_trigger_stmt() throws R case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -5186,6 +5187,7 @@ public final Alter_language_stmtContext alter_language_stmt() throws Recognition case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -5825,6 +5827,7 @@ public final Alter_large_object_stmtContext alter_large_object_stmt() throws Rec case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -6592,6 +6595,7 @@ public final Alter_operator_class_stmtContext alter_operator_class_stmt() throws case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -7934,6 +7938,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -8533,6 +8538,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -9114,6 +9120,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -9715,6 +9722,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -10312,6 +10320,7 @@ public final Alter_role_stmtContext alter_role_stmt() throws RecognitionExceptio case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -11059,6 +11068,7 @@ public final Alter_schema_stmtContext alter_schema_stmt() throws RecognitionExce case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -11468,7 +11478,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1512); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1511); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -11507,7 +11517,7 @@ public final Alter_server_options_listContext alter_server_options_list() throws setState(1520); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(1519); ((Alter_server_options_listContext)_localctx).value = param_value(); @@ -12071,6 +12081,7 @@ public final Alter_statistics_stmtContext alter_statistics_stmt() throws Recogni case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -13161,6 +13172,7 @@ public final Alter_tablespace_stmtContext alter_tablespace_stmt() throws Recogni case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -15541,7 +15553,7 @@ public final Create_aggregate_stmtContext create_aggregate_stmt() throws Recogni setState(2057); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2051); _errHandler.sync(this); @@ -18129,7 +18141,7 @@ public final Create_index_stmtContext create_index_stmt() throws RecognitionExce setState(2569); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (IF - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (IF - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(2566); _errHandler.sync(this); @@ -21329,7 +21341,7 @@ public final Delete_stmtContext delete_stmt() throws RecognitionException { setState(3056); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << AS) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(3053); _errHandler.sync(this); @@ -27198,6 +27210,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -27779,6 +27792,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -28361,6 +28375,7 @@ public final Reassign_owned_stmtContext reassign_owned_stmt() throws Recognition case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -29165,6 +29180,7 @@ public final Reset_stmtContext reset_stmt() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -31292,6 +31308,7 @@ public final Set_stmtContext set_stmt() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -31980,6 +31997,7 @@ public final Set_constraints_stmtContext set_constraints_stmt() throws Recogniti case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -33263,6 +33281,7 @@ public final Unlisten_stmtContext unlisten_stmt() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -33944,7 +33963,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4241); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4240); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -33993,7 +34012,7 @@ public final Vacuum_stmtContext vacuum_stmt() throws RecognitionException { setState(4261); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4254); ((Vacuum_stmtContext)_localctx).table_name = table_name_(); @@ -35208,6 +35227,7 @@ public final Column_listContext column_list() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -35836,6 +35856,7 @@ public final Column_listContext column_list() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -36197,7 +36218,7 @@ public final Explain_parameterContext explain_parameter() throws RecognitionExce setState(4407); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (ON - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (YES - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4406); param_value(); @@ -37425,6 +37446,7 @@ public final Limit_clauseContext limit_clause() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -39010,7 +39032,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4722); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4721); expr(0); @@ -39022,7 +39044,7 @@ private ExprContext expr(int _p) throws RecognitionException { setState(4726); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(4725); expr(0); @@ -39425,6 +39447,7 @@ private ExprContext expr(int _p) throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -40191,7 +40214,7 @@ public final Func_sig_argContext func_sig_arg() throws RecognitionException { setState(4849); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (IN - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARIADIC - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0)) { { setState(4843); _errHandler.sync(this); @@ -41515,7 +41538,7 @@ public final AggregateContext aggregate() throws RecognitionException { setState(5075); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5067); expr(0); @@ -41944,6 +41967,7 @@ public final Name_Context name_() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -43059,6 +43083,7 @@ public final Index_methodContext index_method() throws RecognitionException { case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -43426,7 +43451,7 @@ public final Func_callContext func_call() throws RecognitionException { setState(5177); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5164); expr(0); @@ -43558,7 +43583,7 @@ public final Array_cons_exprContext array_cons_expr() throws RecognitionExceptio setState(5204); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALL) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ARRAY) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED) | (1L << CASE) | (1L << CAST))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DATE - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_ROLE - 130)) | (1L << (CURRENT_TIME - 130)) | (1L << (CURRENT_TIMESTAMP - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURRENT_USER - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULT - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FALSE - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOT - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULL - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITH - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || ((((_la - 718)) & ~0x3f) == 0 && ((1L << (_la - 718)) & ((1L << (ABSTIME - 718)) | (1L << (BIGSERIAL - 718)) | (1L << (BIT_VARYING - 718)) | (1L << (BOOL - 718)) | (1L << (BOX - 718)) | (1L << (BYTEA - 718)) | (1L << (CHARACTER_VARYING - 718)) | (1L << (CIDR - 718)) | (1L << (CIRCLE - 718)) | (1L << (FLOAT4 - 718)) | (1L << (FLOAT8 - 718)) | (1L << (INET - 718)) | (1L << (INT2 - 718)) | (1L << (INT4 - 718)) | (1L << (INT8 - 718)) | (1L << (JSON - 718)) | (1L << (JSONB - 718)) | (1L << (LINE - 718)) | (1L << (LSEG - 718)) | (1L << (MACADDR - 718)) | (1L << (MACADDR8 - 718)) | (1L << (MONEY - 718)) | (1L << (PG_LSN - 718)) | (1L << (POINT - 718)) | (1L << (POLYGON - 718)) | (1L << (RELTIME - 718)) | (1L << (SERIAL - 718)) | (1L << (SERIAL2 - 718)) | (1L << (SERIAL4 - 718)) | (1L << (SERIAL8 - 718)) | (1L << (SMALLSERIAL - 718)) | (1L << (TEXT - 718)) | (1L << (TIMESTAMPTZ - 718)) | (1L << (TIMETZ - 718)) | (1L << (TSQUERY - 718)) | (1L << (TSVECTOR - 718)) | (1L << (TXID_SNAPSHOT - 718)) | (1L << (UUID - 718)) | (1L << (VARBIT - 718)) | (1L << (XML - 718)) | (1L << (DOLLAR - 718)) | (1L << (DOLLAR_DOLLAR - 718)) | (1L << (OPEN_PAREN - 718)) | (1L << (BIT_STRING - 718)) | (1L << (REGEX_STRING - 718)) | (1L << (NUMERIC_LITERAL - 718)) | (1L << (INTEGER_LITERAL - 718)) | (1L << (HEX_INTEGER_LITERAL - 718)) | (1L << (SINGLEQ_STRING_LITERAL - 718)) | (1L << (DOUBLEQ_STRING_LITERAL - 718)) | (1L << (IDENTIFIER - 718)) | (1L << (DOLLAR_DEC - 718)) | (1L << (IDENTIFIER_UNICODE - 718)))) != 0) || ((((_la - 785)) & ~0x3f) == 0 && ((1L << (_la - 785)) & ((1L << (AT_SIGN - 785)) | (1L << (BANG_BANG - 785)) | (1L << (MINUS - 785)) | (1L << (PLUS - 785)) | (1L << (QMARK_HYPHEN - 785)) | (1L << (TIL - 785)))) != 0)) { { setState(5196); expr(0); @@ -45326,6 +45351,7 @@ public final Exclude_elementContext exclude_element() throws RecognitionExceptio case POWER: case PRECEDING: case PRECISION: + case PREFIX: case PREPARE: case PRESERVE: case PRIOR: @@ -46780,6 +46806,7 @@ public static class Non_reserved_keywordContext extends ParserRuleContext { public TerminalNode ALIAS() { return getToken(PostgreSQLParser.ALIAS, 0); } public TerminalNode ENABLE() { return getToken(PostgreSQLParser.ENABLE, 0); } public TerminalNode VERSION() { return getToken(PostgreSQLParser.VERSION, 0); } + public TerminalNode PREFIX() { return getToken(PostgreSQLParser.PREFIX, 0); } public Non_reserved_keywordContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -46808,7 +46835,7 @@ public final Non_reserved_keywordContext non_reserved_keyword() throws Recogniti { setState(5598); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || _la==TEXT) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WHITESPACE) | (1L << A_) | (1L << ABORT) | (1L << ABS) | (1L << ABSOLUTE) | (1L << ACCESS) | (1L << ACTION) | (1L << ADA) | (1L << ADD) | (1L << ADMIN) | (1L << AFTER) | (1L << AGGREGATE) | (1L << ALIAS) | (1L << ALLOCATE) | (1L << ALSO) | (1L << ALTER) | (1L << ALWAYS) | (1L << ANY) | (1L << ARE) | (1L << ASENSITIVE) | (1L << ASSERTION) | (1L << ASSIGNMENT) | (1L << AT) | (1L << ATOMIC) | (1L << ATTRIBUTE) | (1L << ATTRIBUTES) | (1L << AVG) | (1L << BACKWARD) | (1L << BEFORE) | (1L << BEGIN) | (1L << BERNOULLI) | (1L << BETWEEN) | (1L << BIGINT) | (1L << BIT) | (1L << BIT_LENGTH) | (1L << BLOB) | (1L << BOOLEAN) | (1L << BREADTH) | (1L << BY) | (1L << C_) | (1L << CACHE) | (1L << CALL) | (1L << CALLED) | (1L << CARDINALITY) | (1L << CASCADE) | (1L << CASCADED))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CATALOG - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CEIL - 64)) | (1L << (CEILING - 64)) | (1L << (CHAIN - 64)) | (1L << (CHAR - 64)) | (1L << (CHAR_LENGTH - 64)) | (1L << (CHARACTER - 64)) | (1L << (CHARACTER_LENGTH - 64)) | (1L << (CHARACTER_SET_CATALOG - 64)) | (1L << (CHARACTER_SET_NAME - 64)) | (1L << (CHARACTER_SET_SCHEMA - 64)) | (1L << (CHARACTERISTICS - 64)) | (1L << (CHARACTERS - 64)) | (1L << (CHECKPOINT - 64)) | (1L << (CLASS - 64)) | (1L << (CLASS_ORIGIN - 64)) | (1L << (CLOB - 64)) | (1L << (CLOSE - 64)) | (1L << (CLUSTER - 64)) | (1L << (COALESCE - 64)) | (1L << (COBOL - 64)) | (1L << (COLLATION_CATALOG - 64)) | (1L << (COLLATION_NAME - 64)) | (1L << (COLLATION_SCHEMA - 64)) | (1L << (COLLECT - 64)) | (1L << (COLUMN_NAME - 64)) | (1L << (COMMAND_FUNCTION - 64)) | (1L << (COMMAND_FUNCTION_CODE - 64)) | (1L << (COMMENT - 64)) | (1L << (COMMIT - 64)) | (1L << (COMMITTED - 64)) | (1L << (CONDITION - 64)) | (1L << (CONDITION_NUMBER - 64)) | (1L << (CONNECT - 64)) | (1L << (CONNECTION - 64)) | (1L << (CONNECTION_NAME - 64)) | (1L << (CONSTRAINT_CATALOG - 64)) | (1L << (CONSTRAINT_NAME - 64)) | (1L << (CONSTRAINT_SCHEMA - 64)) | (1L << (CONSTRAINTS - 64)) | (1L << (CONSTRUCTOR - 64)) | (1L << (CONTAINS - 64)) | (1L << (CONTINUE - 64)) | (1L << (CONVERSION - 64)) | (1L << (CONVERT - 64)) | (1L << (COPY - 64)) | (1L << (CORR - 64)) | (1L << (CORRESPONDING - 64)) | (1L << (COUNT - 64)) | (1L << (COVAR_POP - 64)) | (1L << (COVAR_SAMP - 64)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (CSV - 130)) | (1L << (CUBE - 130)) | (1L << (CUME_DIST - 130)) | (1L << (CURRENT - 130)) | (1L << (CURRENT_DEFAULT_TRANSFORM_GROUP - 130)) | (1L << (CURRENT_PATH - 130)) | (1L << (CURRENT_TRANSFORM_GROUP_FOR_TYPE - 130)) | (1L << (CURSOR - 130)) | (1L << (CURSOR_NAME - 130)) | (1L << (CYCLE - 130)) | (1L << (DATA - 130)) | (1L << (DATABASE - 130)) | (1L << (DATE - 130)) | (1L << (DATETIME_INTERVAL_CODE - 130)) | (1L << (DATETIME_INTERVAL_PRECISION - 130)) | (1L << (DAY - 130)) | (1L << (DEALLOCATE - 130)) | (1L << (DEC - 130)) | (1L << (DECIMAL - 130)) | (1L << (DECLARE - 130)) | (1L << (DEFAULTS - 130)) | (1L << (DEFERRED - 130)) | (1L << (DEFINED - 130)) | (1L << (DEFINER - 130)) | (1L << (DEGREE - 130)) | (1L << (DELETE - 130)) | (1L << (DELIMITER - 130)) | (1L << (DELIMITERS - 130)) | (1L << (DENSE_RANK - 130)) | (1L << (DEPTH - 130)) | (1L << (DEREF - 130)) | (1L << (DERIVED - 130)) | (1L << (DESCRIBE - 130)) | (1L << (DESCRIPTOR - 130)) | (1L << (DETERMINISTIC - 130)) | (1L << (DIAGNOSTICS - 130)) | (1L << (DICTIONARY - 130)) | (1L << (DISABLE_P - 130)) | (1L << (DISCONNECT - 130)) | (1L << (DISPATCH - 130)) | (1L << (DOMAIN - 130)) | (1L << (DOUBLE - 130)) | (1L << (DYNAMIC - 130)) | (1L << (DYNAMIC_FUNCTION - 130)) | (1L << (DYNAMIC_FUNCTION_CODE - 130)) | (1L << (EACH - 130)) | (1L << (ELEMENT - 130)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (ENABLE - 195)) | (1L << (ENCODING - 195)) | (1L << (ENCRYPTED - 195)) | (1L << (END - 195)) | (1L << (EQUALS - 195)) | (1L << (ESCAPE - 195)) | (1L << (EVERY - 195)) | (1L << (EXCEPTION - 195)) | (1L << (EXCLUDE - 195)) | (1L << (EXCLUDING - 195)) | (1L << (EXCLUSIVE - 195)) | (1L << (EXEC - 195)) | (1L << (EXECUTE - 195)) | (1L << (EXISTS - 195)) | (1L << (EXP - 195)) | (1L << (EXPLAIN - 195)) | (1L << (EXTENSION - 195)) | (1L << (EXTERNAL - 195)) | (1L << (EXTRACT - 195)) | (1L << (FILTER - 195)) | (1L << (FINAL - 195)) | (1L << (FIRST - 195)) | (1L << (FLOAT - 195)) | (1L << (FLOOR - 195)) | (1L << (FOLLOWING - 195)) | (1L << (FORCE - 195)) | (1L << (FORMAT - 195)) | (1L << (FORTRAN - 195)) | (1L << (FORWARD - 195)) | (1L << (FOUND - 195)) | (1L << (FREE - 195)) | (1L << (FUNCTION - 195)) | (1L << (FUSION - 195)) | (1L << (G_ - 195)) | (1L << (GENERAL - 195)) | (1L << (GENERATED - 195)) | (1L << (GET - 195)) | (1L << (GLOBAL - 195)) | (1L << (GO - 195)) | (1L << (GOTO - 195)) | (1L << (GRANTED - 195)) | (1L << (GREATEST - 195)) | (1L << (GROUPING - 195)) | (1L << (HANDLER - 195)) | (1L << (HIERARCHY - 195)) | (1L << (HOLD - 195)) | (1L << (HOST - 195)) | (1L << (HOUR - 195)) | (1L << (IDENTITY - 195)))) != 0) || ((((_la - 259)) & ~0x3f) == 0 && ((1L << (_la - 259)) & ((1L << (IGNORE - 259)) | (1L << (IMMEDIATE - 259)) | (1L << (IMMUTABLE - 259)) | (1L << (IMPLEMENTATION - 259)) | (1L << (IMPLICIT - 259)) | (1L << (INCLUDING - 259)) | (1L << (INCREMENT - 259)) | (1L << (INDEX - 259)) | (1L << (INDICATOR - 259)) | (1L << (INHERITS - 259)) | (1L << (INOUT - 259)) | (1L << (INPUT - 259)) | (1L << (INSENSITIVE - 259)) | (1L << (INSERT - 259)) | (1L << (INSTANCE - 259)) | (1L << (INSTANTIABLE - 259)) | (1L << (INSTEAD - 259)) | (1L << (INT - 259)) | (1L << (INTEGER - 259)) | (1L << (INTERSECTION - 259)) | (1L << (INTERVAL - 259)) | (1L << (INVOKER - 259)) | (1L << (ISOLATION - 259)) | (1L << (K_ - 259)) | (1L << (KEY - 259)) | (1L << (KEY_MEMBER - 259)) | (1L << (KEY_TYPE - 259)) | (1L << (LANGUAGE - 259)) | (1L << (LARGE - 259)) | (1L << (LAST - 259)) | (1L << (LEAST - 259)) | (1L << (LEFT - 259)) | (1L << (LENGTH - 259)) | (1L << (LEVEL - 259)) | (1L << (LISTEN - 259)) | (1L << (LN - 259)) | (1L << (LOAD - 259)) | (1L << (LOCAL - 259)) | (1L << (LOCATION - 259)) | (1L << (LOCATOR - 259)) | (1L << (LOCK - 259)) | (1L << (LOCKED - 259)) | (1L << (LOWER - 259)) | (1L << (M_ - 259)))) != 0) || ((((_la - 324)) & ~0x3f) == 0 && ((1L << (_la - 324)) & ((1L << (MAP - 324)) | (1L << (MATCH - 324)) | (1L << (MATCHED - 324)) | (1L << (MAX - 324)) | (1L << (MAXVALUE - 324)) | (1L << (MEMBER - 324)) | (1L << (MERGE - 324)) | (1L << (MESSAGE_LENGTH - 324)) | (1L << (MESSAGE_OCTET_LENGTH - 324)) | (1L << (MESSAGE_TEXT - 324)) | (1L << (METHOD - 324)) | (1L << (MIN - 324)) | (1L << (MINUTE - 324)) | (1L << (MINVALUE - 324)) | (1L << (MOD - 324)) | (1L << (MODE - 324)) | (1L << (MODIFIES - 324)) | (1L << (MODULE - 324)) | (1L << (MONTH - 324)) | (1L << (MORE_ - 324)) | (1L << (MOVE - 324)) | (1L << (MULTISET - 324)) | (1L << (MUMPS - 324)) | (1L << (NAME - 324)) | (1L << (NAMES - 324)) | (1L << (NATIONAL - 324)) | (1L << (NCHAR - 324)) | (1L << (NCLOB - 324)) | (1L << (NESTING - 324)) | (1L << (NEW - 324)) | (1L << (NEXT - 324)) | (1L << (NO - 324)) | (1L << (NONE - 324)) | (1L << (NORMALIZE - 324)) | (1L << (NORMALIZED - 324)) | (1L << (NOTHING - 324)) | (1L << (NOTIFY - 324)) | (1L << (NOWAIT - 324)) | (1L << (NULLABLE - 324)) | (1L << (NULLIF - 324)) | (1L << (NULLS - 324)) | (1L << (NUMBER - 324)) | (1L << (NUMERIC - 324)) | (1L << (OBJECT - 324)) | (1L << (OCTET_LENGTH - 324)) | (1L << (OCTETS - 324)) | (1L << (OF - 324)) | (1L << (OFF - 324)) | (1L << (OIDS - 324)) | (1L << (OLD - 324)) | (1L << (OPEN - 324)))) != 0) || ((((_la - 388)) & ~0x3f) == 0 && ((1L << (_la - 388)) & ((1L << (OPERATOR - 388)) | (1L << (OPTION - 388)) | (1L << (OPTIONS - 388)) | (1L << (ORDERING - 388)) | (1L << (ORDINALITY - 388)) | (1L << (OTHERS - 388)) | (1L << (OUT - 388)) | (1L << (OUTPUT - 388)) | (1L << (OVER - 388)) | (1L << (OVERLAY - 388)) | (1L << (OVERRIDING - 388)) | (1L << (OWNER - 388)) | (1L << (PAD - 388)) | (1L << (PARAMETER - 388)) | (1L << (PARAMETER_MODE - 388)) | (1L << (PARAMETER_NAME - 388)) | (1L << (PARAMETER_ORDINAL_POSITION - 388)) | (1L << (PARAMETER_SPECIFIC_CATALOG - 388)) | (1L << (PARAMETER_SPECIFIC_NAME - 388)) | (1L << (PARAMETER_SPECIFIC_SCHEMA - 388)) | (1L << (PARTIAL - 388)) | (1L << (PARTITION - 388)) | (1L << (PASCAL - 388)) | (1L << (PASSWORD - 388)) | (1L << (PATH - 388)) | (1L << (PERCENT_RANK - 388)) | (1L << (PERCENTILE_CONT - 388)) | (1L << (PERCENTILE_DISC - 388)) | (1L << (PLAIN - 388)) | (1L << (PLI - 388)) | (1L << (POSITION - 388)) | (1L << (POWER - 388)) | (1L << (PRECEDING - 388)) | (1L << (PRECISION - 388)) | (1L << (PREFIX - 388)) | (1L << (PREPARE - 388)) | (1L << (PRESERVE - 388)) | (1L << (PRIOR - 388)) | (1L << (PRIVILEGES - 388)) | (1L << (PROCEDURAL - 388)) | (1L << (PROCEDURE - 388)) | (1L << (PUBLIC - 388)) | (1L << (QUOTE - 388)) | (1L << (RANGE - 388)) | (1L << (RANK - 388)) | (1L << (READ - 388)) | (1L << (READS - 388)) | (1L << (REAL - 388)) | (1L << (RECHECK - 388)) | (1L << (RECURSIVE - 388)))) != 0) || ((((_la - 452)) & ~0x3f) == 0 && ((1L << (_la - 452)) & ((1L << (REF - 452)) | (1L << (REFERENCING - 452)) | (1L << (REFRESH - 452)) | (1L << (REGR_AVGX - 452)) | (1L << (REGR_AVGY - 452)) | (1L << (REGR_COUNT - 452)) | (1L << (REGR_INTERCEPT - 452)) | (1L << (REGR_SLOPE - 452)) | (1L << (REGR_SXX - 452)) | (1L << (REGR_SXY - 452)) | (1L << (REGR_SYY - 452)) | (1L << (REINDEX - 452)) | (1L << (RELATIVE - 452)) | (1L << (RELEASE - 452)) | (1L << (RENAME - 452)) | (1L << (REPEATABLE - 452)) | (1L << (REPLACE - 452)) | (1L << (RESET - 452)) | (1L << (RESTART - 452)) | (1L << (RESTRICT - 452)) | (1L << (RESULT - 452)) | (1L << (RETURN - 452)) | (1L << (RETURNED_CARDINALITY - 452)) | (1L << (RETURNED_LENGTH - 452)) | (1L << (RETURNED_OCTET_LENGTH - 452)) | (1L << (RETURNED_SQLSTATE - 452)) | (1L << (RETURNS - 452)) | (1L << (REVOKE - 452)) | (1L << (RIGHT - 452)) | (1L << (ROLE - 452)) | (1L << (ROLLBACK - 452)) | (1L << (ROLLUP - 452)) | (1L << (ROUTINE - 452)) | (1L << (ROUTINE_CATALOG - 452)) | (1L << (ROUTINE_NAME - 452)) | (1L << (ROUTINE_SCHEMA - 452)) | (1L << (ROW - 452)) | (1L << (ROW_COUNT - 452)) | (1L << (ROW_NUMBER - 452)) | (1L << (ROWS - 452)) | (1L << (RULE - 452)) | (1L << (SAVEPOINT - 452)) | (1L << (SCALE - 452)) | (1L << (SCHEMA - 452)) | (1L << (SCHEMA_NAME - 452)) | (1L << (SCOPE - 452)) | (1L << (SCOPE_CATALOG - 452)) | (1L << (SCOPE_NAME - 452)) | (1L << (SCOPE_SCHEMA - 452)) | (1L << (SCROLL - 452)) | (1L << (SEARCH - 452)) | (1L << (SECOND - 452)) | (1L << (SECTION - 452)) | (1L << (SECURITY - 452)) | (1L << (SELF - 452)) | (1L << (SENSITIVE - 452)) | (1L << (SEQUENCE - 452)) | (1L << (SEQUENCES - 452)) | (1L << (SERIALIZABLE - 452)))) != 0) || ((((_la - 516)) & ~0x3f) == 0 && ((1L << (_la - 516)) & ((1L << (SERVER_NAME - 516)) | (1L << (SESSION - 516)) | (1L << (SET - 516)) | (1L << (SETOF - 516)) | (1L << (SETS - 516)) | (1L << (SHARE - 516)) | (1L << (SHOW - 516)) | (1L << (SIMPLE - 516)) | (1L << (SIZE - 516)) | (1L << (SMALLINT - 516)) | (1L << (SOME - 516)) | (1L << (SOURCE - 516)) | (1L << (SPACE - 516)) | (1L << (SPECIFIC - 516)) | (1L << (SPECIFIC_NAME - 516)) | (1L << (SPECIFICTYPE - 516)) | (1L << (SQL - 516)) | (1L << (SQLCODE - 516)) | (1L << (SQLERROR - 516)) | (1L << (SQLEXCEPTION - 516)) | (1L << (SQLSTATE - 516)) | (1L << (SQLWARNING - 516)) | (1L << (SQRT - 516)) | (1L << (STABLE - 516)) | (1L << (START - 516)) | (1L << (STATE - 516)) | (1L << (STATEMENT - 516)) | (1L << (STATIC - 516)) | (1L << (STATISTICS - 516)) | (1L << (STDDEV_POP - 516)) | (1L << (STDDEV_SAMP - 516)) | (1L << (STDIN - 516)) | (1L << (STDOUT - 516)) | (1L << (STORAGE - 516)) | (1L << (STRICT - 516)) | (1L << (STRUCTURE - 516)) | (1L << (STYLE - 516)) | (1L << (SUBCLASS_ORIGIN - 516)) | (1L << (SUBMULTISET - 516)) | (1L << (SUBSTRING - 516)) | (1L << (SUM - 516)) | (1L << (SYSID - 516)) | (1L << (SYSTEM - 516)) | (1L << (SYSTEM_USER - 516)) | (1L << (TABLE_NAME - 516)) | (1L << (TABLESPACE - 516)) | (1L << (TEMP - 516)) | (1L << (TEMPLATE - 516)) | (1L << (TEMPORARY - 516)) | (1L << (TIES - 516)) | (1L << (TIME - 516)) | (1L << (TIMESTAMP - 516)))) != 0) || ((((_la - 580)) & ~0x3f) == 0 && ((1L << (_la - 580)) & ((1L << (TIMEZONE_HOUR - 580)) | (1L << (TIMEZONE_MINUTE - 580)) | (1L << (TOP_LEVEL_COUNT - 580)) | (1L << (TRANSACTION - 580)) | (1L << (TRANSACTION_ACTIVE - 580)) | (1L << (TRANSACTIONS_COMMITTED - 580)) | (1L << (TRANSACTIONS_ROLLED_BACK - 580)) | (1L << (TRANSFORM - 580)) | (1L << (TRANSFORMS - 580)) | (1L << (TRANSLATE - 580)) | (1L << (TRANSLATION - 580)) | (1L << (TREAT - 580)) | (1L << (TRIGGER - 580)) | (1L << (TRIGGER_CATALOG - 580)) | (1L << (TRIGGER_NAME - 580)) | (1L << (TRIGGER_SCHEMA - 580)) | (1L << (TRIM - 580)) | (1L << (TRUE - 580)) | (1L << (TRUNCATE - 580)) | (1L << (TRUSTED - 580)) | (1L << (TYPE - 580)) | (1L << (UESCAPE - 580)) | (1L << (UNBOUNDED - 580)) | (1L << (UNCOMMITTED - 580)) | (1L << (UNDER - 580)) | (1L << (UNENCRYPTED - 580)) | (1L << (UNKNOWN - 580)) | (1L << (UNLISTEN - 580)) | (1L << (UNNAMED - 580)) | (1L << (UNNEST - 580)) | (1L << (UNTIL - 580)) | (1L << (UPDATE - 580)) | (1L << (UPPER - 580)) | (1L << (USAGE - 580)) | (1L << (USER_DEFINED_TYPE_CATALOG - 580)) | (1L << (USER_DEFINED_TYPE_CODE - 580)) | (1L << (USER_DEFINED_TYPE_NAME - 580)) | (1L << (USER_DEFINED_TYPE_SCHEMA - 580)) | (1L << (VACUUM - 580)) | (1L << (VALID - 580)) | (1L << (VALIDATOR - 580)) | (1L << (VALUE - 580)) | (1L << (VALUES - 580)) | (1L << (VAR_POP - 580)) | (1L << (VAR_SAMP - 580)) | (1L << (VARCHAR - 580)) | (1L << (VARYING - 580)) | (1L << (VIEW - 580)) | (1L << (VOLATILE - 580)) | (1L << (WHENEVER - 580)))) != 0) || ((((_la - 644)) & ~0x3f) == 0 && ((1L << (_la - 644)) & ((1L << (WIDTH_BUCKET - 644)) | (1L << (WITHIN - 644)) | (1L << (WITHOUT - 644)) | (1L << (WORK - 644)) | (1L << (WRITE - 644)) | (1L << (YEAR - 644)) | (1L << (ZONE - 644)) | (1L << (VERSION - 644)))) != 0) || _la==TEXT) ) { _errHandler.recoverInline(this); } else { @@ -47960,7 +47987,7 @@ private boolean identifier_sempred(IdentifierContext _localctx, int predIndex) { "\u012d\u012f\u0132\u0134\u0136\u0136\u0139\u013c\u013f\u0144\u0146\u0146"+ "\u0148\u0148\u014a\u0158\u015a\u0162\u0164\u0169\u016c\u016e\u0170\u0171"+ "\u0173\u0173\u0175\u017e\u0180\u0181\u0184\u0184\u0186\u0188\u018b\u018e"+ - "\u0190\u0191\u0193\u019d\u01a0\u01a7\u01a9\u01a9\u01ab\u01ac\u01ae\u01b0"+ + "\u0190\u0191\u0193\u019d\u01a0\u01a7\u01a9\u01a9\u01ab\u01ac\u01ae\u01b1"+ "\u01b3\u01b3\u01b5\u01b5\u01b7\u01bb\u01bd\u01c2\u01c4\u01c6\u01c8\u01cd"+ "\u01cf\u01d8\u01da\u01e2\u01e4\u01ff\u0201\u0207\u0209\u020d\u020f\u0210"+ "\u0212\u0212\u0214\u022f\u0231\u0231\u0233\u0234\u0236\u0238\u023a\u023a"+ From f17fb991cce435d77c2231845fb5329ef3dc6d43 Mon Sep 17 00:00:00 2001 From: duhanmin Date: Tue, 25 Apr 2023 10:40:58 +0800 Subject: [PATCH 56/56] prefix --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6715719..3760ca6 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.bigdata.sql.parser bigdata-sql-parser - 1.0.0 + 1.0.1 1.3.72